diff --git a/3rd/jsmn/LICENSE b/3rd/jsmn/LICENSE new file mode 100755 index 0000000..c84fb2e --- /dev/null +++ b/3rd/jsmn/LICENSE @@ -0,0 +1,20 @@ +Copyright (c) 2010 Serge A. Zaitsev + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/3rd/jsmn/Makefile b/3rd/jsmn/Makefile new file mode 100755 index 0000000..f89701f --- /dev/null +++ b/3rd/jsmn/Makefile @@ -0,0 +1,41 @@ +# You can put your build options here +-include config.mk + +all: libjsmn.a + +libjsmn.a: jsmn.o + $(AR) rc $@ $^ + +%.o: %.c jsmn.h + $(CC) -c $(CFLAGS) $< -o $@ + +test: test_default test_strict test_links test_strict_links +test_default: test/tests.c + $(CC) $(CFLAGS) $(LDFLAGS) $< -o test/$@ + ./test/$@ +test_strict: test/tests.c + $(CC) -DJSMN_STRICT=1 $(CFLAGS) $(LDFLAGS) $< -o test/$@ + ./test/$@ +test_links: test/tests.c + $(CC) -DJSMN_PARENT_LINKS=1 $(CFLAGS) $(LDFLAGS) $< -o test/$@ + ./test/$@ +test_strict_links: test/tests.c + $(CC) -DJSMN_STRICT=1 -DJSMN_PARENT_LINKS=1 $(CFLAGS) $(LDFLAGS) $< -o test/$@ + ./test/$@ + +jsmn_test.o: jsmn_test.c libjsmn.a + +simple_example: example/simple.o libjsmn.a + $(CC) $(LDFLAGS) $^ -o $@ + +jsondump: example/jsondump.o libjsmn.a + $(CC) $(LDFLAGS) $^ -o $@ + +clean: + rm -f *.o example/*.o + rm -f *.a *.so + rm -f simple_example + rm -f jsondump + +.PHONY: all clean test + diff --git a/3rd/jsmn/README.md b/3rd/jsmn/README.md new file mode 100755 index 0000000..105897b --- /dev/null +++ b/3rd/jsmn/README.md @@ -0,0 +1,167 @@ + +JSMN +==== + +jsmn (pronounced like 'jasmine') is a minimalistic JSON parser in C. It can be +easily integrated into resource-limited or embedded projects. + +You can find more information about JSON format at [json.org][1] + +Library sources are available at https://github.com/zserge/jsmn + +The web page with some information about jsmn can be found at +[http://zserge.com/jsmn.html][2] + +Philosophy +---------- + +Most JSON parsers offer you a bunch of functions to load JSON data, parse it +and extract any value by its name. jsmn proves that checking the correctness of +every JSON packet or allocating temporary objects to store parsed JSON fields +often is an overkill. + +JSON format itself is extremely simple, so why should we complicate it? + +jsmn is designed to be **robust** (it should work fine even with erroneous +data), **fast** (it should parse data on the fly), **portable** (no superfluous +dependencies or non-standard C extensions). And of course, **simplicity** is a +key feature - simple code style, simple algorithm, simple integration into +other projects. + +Features +-------- + +* compatible with C89 +* no dependencies (even libc!) +* highly portable (tested on x86/amd64, ARM, AVR) +* about 200 lines of code +* extremely small code footprint +* API contains only 2 functions +* no dynamic memory allocation +* incremental single-pass parsing +* library code is covered with unit-tests + +Design +------ + +The rudimentary jsmn object is a **token**. Let's consider a JSON string: + + '{ "name" : "Jack", "age" : 27 }' + +It holds the following tokens: + +* Object: `{ "name" : "Jack", "age" : 27}` (the whole object) +* Strings: `"name"`, `"Jack"`, `"age"` (keys and some values) +* Number: `27` + +In jsmn, tokens do not hold any data, but point to token boundaries in JSON +string instead. In the example above jsmn will create tokens like: Object +[0..31], String [3..7], String [12..16], String [20..23], Number [27..29]. + +Every jsmn token has a type, which indicates the type of corresponding JSON +token. jsmn supports the following token types: + +* Object - a container of key-value pairs, e.g.: + `{ "foo":"bar", "x":0.3 }` +* Array - a sequence of values, e.g.: + `[ 1, 2, 3 ]` +* String - a quoted sequence of chars, e.g.: `"foo"` +* Primitive - a number, a boolean (`true`, `false`) or `null` + +Besides start/end positions, jsmn tokens for complex types (like arrays +or objects) also contain a number of child items, so you can easily follow +object hierarchy. + +This approach provides enough information for parsing any JSON data and makes +it possible to use zero-copy techniques. + +Install +------- + +To clone the repository you should have Git installed. Just run: + + $ git clone https://github.com/zserge/jsmn + +Repository layout is simple: jsmn.c and jsmn.h are library files, tests are in +the jsmn\_test.c, you will also find README, LICENSE and Makefile files inside. + +To build the library, run `make`. It is also recommended to run `make test`. +Let me know, if some tests fail. + +If build was successful, you should get a `libjsmn.a` library. +The header file you should include is called `"jsmn.h"`. + +API +--- + +Token types are described by `jsmntype_t`: + + typedef enum { + JSMN_UNDEFINED = 0, + JSMN_OBJECT = 1, + JSMN_ARRAY = 2, + JSMN_STRING = 3, + JSMN_PRIMITIVE = 4 + } jsmntype_t; + +**Note:** Unlike JSON data types, primitive tokens are not divided into +numbers, booleans and null, because one can easily tell the type using the +first character: + +* 't', 'f' - boolean +* 'n' - null +* '-', '0'..'9' - number + +Token is an object of `jsmntok_t` type: + + typedef struct { + jsmntype_t type; // Token type + int start; // Token start position + int end; // Token end position + int size; // Number of child (nested) tokens + } jsmntok_t; + +**Note:** string tokens point to the first character after +the opening quote and the previous symbol before final quote. This was made +to simplify string extraction from JSON data. + +All job is done by `jsmn_parser` object. You can initialize a new parser using: + + jsmn_parser parser; + jsmntok_t tokens[10]; + + jsmn_init(&parser); + + // js - pointer to JSON string + // tokens - an array of tokens available + // 10 - number of tokens available + jsmn_parse(&parser, js, strlen(js), tokens, 10); + +This will create a parser, and then it tries to parse up to 10 JSON tokens from +the `js` string. + +A non-negative return value of `jsmn_parse` is the number of tokens actually +used by the parser. +Passing NULL instead of the tokens array would not store parsing results, but +instead the function will return the value of tokens needed to parse the given +string. This can be useful if you don't know yet how many tokens to allocate. + +If something goes wrong, you will get an error. Error will be one of these: + +* `JSMN_ERROR_INVAL` - bad token, JSON string is corrupted +* `JSMN_ERROR_NOMEM` - not enough tokens, JSON string is too large +* `JSMN_ERROR_PART` - JSON string is too short, expecting more JSON data + +If you get `JSON_ERROR_NOMEM`, you can re-allocate more tokens and call +`jsmn_parse` once more. If you read json data from the stream, you can +periodically call `jsmn_parse` and check if return value is `JSON_ERROR_PART`. +You will get this error until you reach the end of JSON data. + +Other info +---------- + +This software is distributed under [MIT license](http://www.opensource.org/licenses/mit-license.php), + so feel free to integrate it in your commercial products. + +[1]: http://www.json.org/ +[2]: http://zserge.com/jsmn.html diff --git a/3rd/jsmn/example/jsondump.c b/3rd/jsmn/example/jsondump.c new file mode 100755 index 0000000..4fb10fd --- /dev/null +++ b/3rd/jsmn/example/jsondump.c @@ -0,0 +1,126 @@ +#include +#include +#include +#include +#include +#include "../jsmn.h" + +/* Function realloc_it() is a wrapper function for standart realloc() + * with one difference - it frees old memory pointer in case of realloc + * failure. Thus, DO NOT use old data pointer in anyway after call to + * realloc_it(). If your code has some kind of fallback algorithm if + * memory can't be re-allocated - use standart realloc() instead. + */ +static inline void *realloc_it(void *ptrmem, size_t size) { + void *p = realloc(ptrmem, size); + if (!p) { + free (ptrmem); + fprintf(stderr, "realloc(): errno=%d\n", errno); + } + return p; +} + +/* + * An example of reading JSON from stdin and printing its content to stdout. + * The output looks like YAML, but I'm not sure if it's really compatible. + */ + +static int dump(const char *js, jsmntok_t *t, size_t count, int indent) { + int i, j, k; + if (count == 0) { + return 0; + } + if (t->type == JSMN_PRIMITIVE) { + printf("%.*s", t->end - t->start, js+t->start); + return 1; + } else if (t->type == JSMN_STRING) { + printf("'%.*s'", t->end - t->start, js+t->start); + return 1; + } else if (t->type == JSMN_OBJECT) { + printf("\n"); + j = 0; + for (i = 0; i < t->size; i++) { + for (k = 0; k < indent; k++) printf(" "); + j += dump(js, t+1+j, count-j, indent+1); + printf(": "); + j += dump(js, t+1+j, count-j, indent+1); + printf("\n"); + } + return j+1; + } else if (t->type == JSMN_ARRAY) { + j = 0; + printf("\n"); + for (i = 0; i < t->size; i++) { + for (k = 0; k < indent-1; k++) printf(" "); + printf(" - "); + j += dump(js, t+1+j, count-j, indent+1); + printf("\n"); + } + return j+1; + } + return 0; +} + +int main() { + int r; + int eof_expected = 0; + char *js = NULL; + size_t jslen = 0; + char buf[BUFSIZ]; + + jsmn_parser p; + jsmntok_t *tok; + size_t tokcount = 2; + + /* Prepare parser */ + jsmn_init(&p); + + /* Allocate some tokens as a start */ + tok = malloc(sizeof(*tok) * tokcount); + if (tok == NULL) { + fprintf(stderr, "malloc(): errno=%d\n", errno); + return 3; + } + + for (;;) { + /* Read another chunk */ + r = fread(buf, 1, sizeof(buf), stdin); + if (r < 0) { + fprintf(stderr, "fread(): %d, errno=%d\n", r, errno); + return 1; + } + if (r == 0) { + if (eof_expected != 0) { + return 0; + } else { + fprintf(stderr, "fread(): unexpected EOF\n"); + return 2; + } + } + + js = realloc_it(js, jslen + r + 1); + if (js == NULL) { + return 3; + } + strncpy(js + jslen, buf, r); + jslen = jslen + r; + +again: + r = jsmn_parse(&p, js, jslen, tok, tokcount); + if (r < 0) { + if (r == JSMN_ERROR_NOMEM) { + tokcount = tokcount * 2; + tok = realloc_it(tok, sizeof(*tok) * tokcount); + if (tok == NULL) { + return 3; + } + goto again; + } + } else { + dump(js, tok, p.toknext, 0); + eof_expected = 1; + } + } + + return EXIT_SUCCESS; +} diff --git a/3rd/jsmn/example/simple.c b/3rd/jsmn/example/simple.c new file mode 100755 index 0000000..aeb9cf4 --- /dev/null +++ b/3rd/jsmn/example/simple.c @@ -0,0 +1,76 @@ +#include +#include +#include +#include "../jsmn.h" + +/* + * A small example of jsmn parsing when JSON structure is known and number of + * tokens is predictable. + */ + +static const char *JSON_STRING = + "{\"user\": \"johndoe\", \"admin\": false, \"uid\": 1000,\n " + "\"groups\": [\"users\", \"wheel\", \"audio\", \"video\"]}"; + +static int jsoneq(const char *json, jsmntok_t *tok, const char *s) { + if (tok->type == JSMN_STRING && (int) strlen(s) == tok->end - tok->start && + strncmp(json + tok->start, s, tok->end - tok->start) == 0) { + return 0; + } + return -1; +} + +int main() { + int i; + int r; + jsmn_parser p; + jsmntok_t t[128]; /* We expect no more than 128 tokens */ + + jsmn_init(&p); + r = jsmn_parse(&p, JSON_STRING, strlen(JSON_STRING), t, sizeof(t)/sizeof(t[0])); + if (r < 0) { + printf("Failed to parse JSON: %d\n", r); + return 1; + } + + /* Assume the top-level element is an object */ + if (r < 1 || t[0].type != JSMN_OBJECT) { + printf("Object expected\n"); + return 1; + } + + /* Loop over all keys of the root object */ + for (i = 1; i < r; i++) { + if (jsoneq(JSON_STRING, &t[i], "user") == 0) { + /* We may use strndup() to fetch string value */ + printf("- User: %.*s\n", t[i+1].end-t[i+1].start, + JSON_STRING + t[i+1].start); + i++; + } else if (jsoneq(JSON_STRING, &t[i], "admin") == 0) { + /* We may additionally check if the value is either "true" or "false" */ + printf("- Admin: %.*s\n", t[i+1].end-t[i+1].start, + JSON_STRING + t[i+1].start); + i++; + } else if (jsoneq(JSON_STRING, &t[i], "uid") == 0) { + /* We may want to do strtol() here to get numeric value */ + printf("- UID: %.*s\n", t[i+1].end-t[i+1].start, + JSON_STRING + t[i+1].start); + i++; + } else if (jsoneq(JSON_STRING, &t[i], "groups") == 0) { + int j; + printf("- Groups:\n"); + if (t[i+1].type != JSMN_ARRAY) { + continue; /* We expect groups to be an array of strings */ + } + for (j = 0; j < t[i+1].size; j++) { + jsmntok_t *g = &t[i+j+2]; + printf(" * %.*s\n", g->end - g->start, JSON_STRING + g->start); + } + i += t[i+1].size + 1; + } else { + printf("Unexpected key: %.*s\n", t[i].end-t[i].start, + JSON_STRING + t[i].start); + } + } + return EXIT_SUCCESS; +} diff --git a/3rd/jsmn/jsmn.c b/3rd/jsmn/jsmn.c new file mode 100755 index 0000000..bcd6392 --- /dev/null +++ b/3rd/jsmn/jsmn.c @@ -0,0 +1,314 @@ +#include "jsmn.h" + +/** + * Allocates a fresh unused token from the token pull. + */ +static jsmntok_t *jsmn_alloc_token(jsmn_parser *parser, + jsmntok_t *tokens, size_t num_tokens) { + jsmntok_t *tok; + if (parser->toknext >= num_tokens) { + return NULL; + } + tok = &tokens[parser->toknext++]; + tok->start = tok->end = -1; + tok->size = 0; +#ifdef JSMN_PARENT_LINKS + tok->parent = -1; +#endif + return tok; +} + +/** + * Fills token type and boundaries. + */ +static void jsmn_fill_token(jsmntok_t *token, jsmntype_t type, + int start, int end) { + token->type = type; + token->start = start; + token->end = end; + token->size = 0; +} + +/** + * Fills next available token with JSON primitive. + */ +static int jsmn_parse_primitive(jsmn_parser *parser, const char *js, + size_t len, jsmntok_t *tokens, size_t num_tokens) { + jsmntok_t *token; + int start; + + start = parser->pos; + + for (; parser->pos < len && js[parser->pos] != '\0'; parser->pos++) { + switch (js[parser->pos]) { +#ifndef JSMN_STRICT + /* In strict mode primitive must be followed by "," or "}" or "]" */ + case ':': +#endif + case '\t' : case '\r' : case '\n' : case ' ' : + case ',' : case ']' : case '}' : + goto found; + } + if (js[parser->pos] < 32 || js[parser->pos] >= 127) { + parser->pos = start; + return JSMN_ERROR_INVAL; + } + } +#ifdef JSMN_STRICT + /* In strict mode primitive must be followed by a comma/object/array */ + parser->pos = start; + return JSMN_ERROR_PART; +#endif + +found: + if (tokens == NULL) { + parser->pos--; + return 0; + } + token = jsmn_alloc_token(parser, tokens, num_tokens); + if (token == NULL) { + parser->pos = start; + return JSMN_ERROR_NOMEM; + } + jsmn_fill_token(token, JSMN_PRIMITIVE, start, parser->pos); +#ifdef JSMN_PARENT_LINKS + token->parent = parser->toksuper; +#endif + parser->pos--; + return 0; +} + +/** + * Fills next token with JSON string. + */ +static int jsmn_parse_string(jsmn_parser *parser, const char *js, + size_t len, jsmntok_t *tokens, size_t num_tokens) { + jsmntok_t *token; + + int start = parser->pos; + + parser->pos++; + + /* Skip starting quote */ + for (; parser->pos < len && js[parser->pos] != '\0'; parser->pos++) { + char c = js[parser->pos]; + + /* Quote: end of string */ + if (c == '\"') { + if (tokens == NULL) { + return 0; + } + token = jsmn_alloc_token(parser, tokens, num_tokens); + if (token == NULL) { + parser->pos = start; + return JSMN_ERROR_NOMEM; + } + jsmn_fill_token(token, JSMN_STRING, start+1, parser->pos); +#ifdef JSMN_PARENT_LINKS + token->parent = parser->toksuper; +#endif + return 0; + } + + /* Backslash: Quoted symbol expected */ + if (c == '\\' && parser->pos + 1 < len) { + int i; + parser->pos++; + switch (js[parser->pos]) { + /* Allowed escaped symbols */ + case '\"': case '/' : case '\\' : case 'b' : + case 'f' : case 'r' : case 'n' : case 't' : + break; + /* Allows escaped symbol \uXXXX */ + case 'u': + parser->pos++; + for(i = 0; i < 4 && parser->pos < len && js[parser->pos] != '\0'; i++) { + /* If it isn't a hex character we have an error */ + if(!((js[parser->pos] >= 48 && js[parser->pos] <= 57) || /* 0-9 */ + (js[parser->pos] >= 65 && js[parser->pos] <= 70) || /* A-F */ + (js[parser->pos] >= 97 && js[parser->pos] <= 102))) { /* a-f */ + parser->pos = start; + return JSMN_ERROR_INVAL; + } + parser->pos++; + } + parser->pos--; + break; + /* Unexpected symbol */ + default: + parser->pos = start; + return JSMN_ERROR_INVAL; + } + } + } + parser->pos = start; + return JSMN_ERROR_PART; +} + +/** + * Parse JSON string and fill tokens. + */ +int jsmn_parse(jsmn_parser *parser, const char *js, size_t len, + jsmntok_t *tokens, unsigned int num_tokens) { + int r; + int i; + jsmntok_t *token; + int count = parser->toknext; + + for (; parser->pos < len && js[parser->pos] != '\0'; parser->pos++) { + char c; + jsmntype_t type; + + c = js[parser->pos]; + switch (c) { + case '{': case '[': + count++; + if (tokens == NULL) { + break; + } + token = jsmn_alloc_token(parser, tokens, num_tokens); + if (token == NULL) + return JSMN_ERROR_NOMEM; + if (parser->toksuper != -1) { + tokens[parser->toksuper].size++; +#ifdef JSMN_PARENT_LINKS + token->parent = parser->toksuper; +#endif + } + token->type = (c == '{' ? JSMN_OBJECT : JSMN_ARRAY); + token->start = parser->pos; + parser->toksuper = parser->toknext - 1; + break; + case '}': case ']': + if (tokens == NULL) + break; + type = (c == '}' ? JSMN_OBJECT : JSMN_ARRAY); +#ifdef JSMN_PARENT_LINKS + if (parser->toknext < 1) { + return JSMN_ERROR_INVAL; + } + token = &tokens[parser->toknext - 1]; + for (;;) { + if (token->start != -1 && token->end == -1) { + if (token->type != type) { + return JSMN_ERROR_INVAL; + } + token->end = parser->pos + 1; + parser->toksuper = token->parent; + break; + } + if (token->parent == -1) { + if(token->type != type || parser->toksuper == -1) { + return JSMN_ERROR_INVAL; + } + break; + } + token = &tokens[token->parent]; + } +#else + for (i = parser->toknext - 1; i >= 0; i--) { + token = &tokens[i]; + if (token->start != -1 && token->end == -1) { + if (token->type != type) { + return JSMN_ERROR_INVAL; + } + parser->toksuper = -1; + token->end = parser->pos + 1; + break; + } + } + /* Error if unmatched closing bracket */ + if (i == -1) return JSMN_ERROR_INVAL; + for (; i >= 0; i--) { + token = &tokens[i]; + if (token->start != -1 && token->end == -1) { + parser->toksuper = i; + break; + } + } +#endif + break; + case '\"': + r = jsmn_parse_string(parser, js, len, tokens, num_tokens); + if (r < 0) return r; + count++; + if (parser->toksuper != -1 && tokens != NULL) + tokens[parser->toksuper].size++; + break; + case '\t' : case '\r' : case '\n' : case ' ': + break; + case ':': + parser->toksuper = parser->toknext - 1; + break; + case ',': + if (tokens != NULL && parser->toksuper != -1 && + tokens[parser->toksuper].type != JSMN_ARRAY && + tokens[parser->toksuper].type != JSMN_OBJECT) { +#ifdef JSMN_PARENT_LINKS + parser->toksuper = tokens[parser->toksuper].parent; +#else + for (i = parser->toknext - 1; i >= 0; i--) { + if (tokens[i].type == JSMN_ARRAY || tokens[i].type == JSMN_OBJECT) { + if (tokens[i].start != -1 && tokens[i].end == -1) { + parser->toksuper = i; + break; + } + } + } +#endif + } + break; +#ifdef JSMN_STRICT + /* In strict mode primitives are: numbers and booleans */ + case '-': case '0': case '1' : case '2': case '3' : case '4': + case '5': case '6': case '7' : case '8': case '9': + case 't': case 'f': case 'n' : + /* And they must not be keys of the object */ + if (tokens != NULL && parser->toksuper != -1) { + jsmntok_t *t = &tokens[parser->toksuper]; + if (t->type == JSMN_OBJECT || + (t->type == JSMN_STRING && t->size != 0)) { + return JSMN_ERROR_INVAL; + } + } +#else + /* In non-strict mode every unquoted value is a primitive */ + default: +#endif + r = jsmn_parse_primitive(parser, js, len, tokens, num_tokens); + if (r < 0) return r; + count++; + if (parser->toksuper != -1 && tokens != NULL) + tokens[parser->toksuper].size++; + break; + +#ifdef JSMN_STRICT + /* Unexpected char in strict mode */ + default: + return JSMN_ERROR_INVAL; +#endif + } + } + + if (tokens != NULL) { + for (i = parser->toknext - 1; i >= 0; i--) { + /* Unmatched opened object or array */ + if (tokens[i].start != -1 && tokens[i].end == -1) { + return JSMN_ERROR_PART; + } + } + } + + return count; +} + +/** + * Creates a new parser based over a given buffer with an array of tokens + * available. + */ +void jsmn_init(jsmn_parser *parser) { + parser->pos = 0; + parser->toknext = 0; + parser->toksuper = -1; +} + diff --git a/3rd/jsmn/jsmn.h b/3rd/jsmn/jsmn.h new file mode 100755 index 0000000..5a5200e --- /dev/null +++ b/3rd/jsmn/jsmn.h @@ -0,0 +1,76 @@ +#ifndef __JSMN_H_ +#define __JSMN_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * JSON type identifier. Basic types are: + * o Object + * o Array + * o String + * o Other primitive: number, boolean (true/false) or null + */ +typedef enum { + JSMN_UNDEFINED = 0, + JSMN_OBJECT = 1, + JSMN_ARRAY = 2, + JSMN_STRING = 3, + JSMN_PRIMITIVE = 4 +} jsmntype_t; + +enum jsmnerr { + /* Not enough tokens were provided */ + JSMN_ERROR_NOMEM = -1, + /* Invalid character inside JSON string */ + JSMN_ERROR_INVAL = -2, + /* The string is not a full JSON packet, more bytes expected */ + JSMN_ERROR_PART = -3 +}; + +/** + * JSON token description. + * type type (object, array, string etc.) + * start start position in JSON data string + * end end position in JSON data string + */ +typedef struct { + jsmntype_t type; + int start; + int end; + int size; +#ifdef JSMN_PARENT_LINKS + int parent; +#endif +} jsmntok_t; + +/** + * JSON parser. Contains an array of token blocks available. Also stores + * the string being parsed now and current position in that string + */ +typedef struct { + unsigned int pos; /* offset in the JSON string */ + unsigned int toknext; /* next token to allocate */ + int toksuper; /* superior token node, e.g parent object or array */ +} jsmn_parser; + +/** + * Create JSON parser over an array of tokens + */ +void jsmn_init(jsmn_parser *parser); + +/** + * Run JSON parser. It parses a JSON data string into and array of tokens, each describing + * a single JSON object. + */ +int jsmn_parse(jsmn_parser *parser, const char *js, size_t len, + jsmntok_t *tokens, unsigned int num_tokens); + +#ifdef __cplusplus +} +#endif + +#endif /* __JSMN_H_ */ diff --git a/3rd/jsmn/library.json b/3rd/jsmn/library.json new file mode 100755 index 0000000..8e2f5c2 --- /dev/null +++ b/3rd/jsmn/library.json @@ -0,0 +1,16 @@ +{ + "name": "jsmn", + "keywords": "json", + "description": "Minimalistic JSON parser/tokenizer in C. It can be easily integrated into resource-limited or embedded projects", + "repository": + { + "type": "git", + "url": "https://github.com/zserge/jsmn.git" + }, + "frameworks": "*", + "platforms": "*", + "examples": [ + "example/*.c" + ], + "exclude": "test" +} diff --git a/3rd/jsmn/test/test.h b/3rd/jsmn/test/test.h new file mode 100755 index 0000000..35f704f --- /dev/null +++ b/3rd/jsmn/test/test.h @@ -0,0 +1,27 @@ +#ifndef __TEST_H__ +#define __TEST_H__ + +static int test_passed = 0; +static int test_failed = 0; + +/* Terminate current test with error */ +#define fail() return __LINE__ + +/* Successful end of the test case */ +#define done() return 0 + +/* Check single condition */ +#define check(cond) do { if (!(cond)) fail(); } while (0) + +/* Test runner */ +static void test(int (*func)(void), const char *name) { + int r = func(); + if (r == 0) { + test_passed++; + } else { + test_failed++; + printf("FAILED: %s (at line %d)\n", name, r); + } +} + +#endif /* __TEST_H__ */ diff --git a/3rd/jsmn/test/tests.c b/3rd/jsmn/test/tests.c new file mode 100755 index 0000000..d5f0c53 --- /dev/null +++ b/3rd/jsmn/test/tests.c @@ -0,0 +1,398 @@ +#include +#include +#include +#include + +#include "test.h" +#include "testutil.h" + +int test_empty(void) { + check(parse("{}", 1, 1, + JSMN_OBJECT, 0, 2, 0)); + check(parse("[]", 1, 1, + JSMN_ARRAY, 0, 2, 0)); + check(parse("[{},{}]", 3, 3, + JSMN_ARRAY, 0, 7, 2, + JSMN_OBJECT, 1, 3, 0, + JSMN_OBJECT, 4, 6, 0)); + return 0; +} + +int test_object(void) { + check(parse("{\"a\":0}", 3, 3, + JSMN_OBJECT, 0, 7, 1, + JSMN_STRING, "a", 1, + JSMN_PRIMITIVE, "0")); + check(parse("{\"a\":[]}", 3, 3, + JSMN_OBJECT, 0, 8, 1, + JSMN_STRING, "a", 1, + JSMN_ARRAY, 5, 7, 0)); + check(parse("{\"a\":{},\"b\":{}}", 5, 5, + JSMN_OBJECT, -1, -1, 2, + JSMN_STRING, "a", 1, + JSMN_OBJECT, -1, -1, 0, + JSMN_STRING, "b", 1, + JSMN_OBJECT, -1, -1, 0)); + check(parse("{\n \"Day\": 26,\n \"Month\": 9,\n \"Year\": 12\n }", 7, 7, + JSMN_OBJECT, -1, -1, 3, + JSMN_STRING, "Day", 1, + JSMN_PRIMITIVE, "26", + JSMN_STRING, "Month", 1, + JSMN_PRIMITIVE, "9", + JSMN_STRING, "Year", 1, + JSMN_PRIMITIVE, "12")); + check(parse("{\"a\": 0, \"b\": \"c\"}", 5, 5, + JSMN_OBJECT, -1, -1, 2, + JSMN_STRING, "a", 1, + JSMN_PRIMITIVE, "0", + JSMN_STRING, "b", 1, + JSMN_STRING, "c", 0)); + +#ifdef JSMN_STRICT + check(parse("{\"a\"\n0}", JSMN_ERROR_INVAL, 3)); + check(parse("{\"a\", 0}", JSMN_ERROR_INVAL, 3)); + check(parse("{\"a\": {2}}", JSMN_ERROR_INVAL, 3)); + check(parse("{\"a\": {2: 3}}", JSMN_ERROR_INVAL, 3)); + check(parse("{\"a\": {\"a\": 2 3}}", JSMN_ERROR_INVAL, 5)); + /* FIXME */ + /*check(parse("{\"a\"}", JSMN_ERROR_INVAL, 2));*/ + /*check(parse("{\"a\": 1, \"b\"}", JSMN_ERROR_INVAL, 4));*/ + /*check(parse("{\"a\",\"b\":1}", JSMN_ERROR_INVAL, 4));*/ + /*check(parse("{\"a\":1,}", JSMN_ERROR_INVAL, 4));*/ + /*check(parse("{\"a\":\"b\":\"c\"}", JSMN_ERROR_INVAL, 4));*/ + /*check(parse("{,}", JSMN_ERROR_INVAL, 4));*/ +#endif + return 0; +} + +int test_array(void) { + /* FIXME */ + /*check(parse("[10}", JSMN_ERROR_INVAL, 3));*/ + /*check(parse("[1,,3]", JSMN_ERROR_INVAL, 3)*/ + check(parse("[10]", 2, 2, + JSMN_ARRAY, -1, -1, 1, + JSMN_PRIMITIVE, "10")); + check(parse("{\"a\": 1]", JSMN_ERROR_INVAL, 3)); + /* FIXME */ + /*check(parse("[\"a\": 1]", JSMN_ERROR_INVAL, 3));*/ + return 0; +} + +int test_primitive(void) { + check(parse("{\"boolVar\" : true }", 3, 3, + JSMN_OBJECT, -1, -1, 1, + JSMN_STRING, "boolVar", 1, + JSMN_PRIMITIVE, "true")); + check(parse("{\"boolVar\" : false }", 3, 3, + JSMN_OBJECT, -1, -1, 1, + JSMN_STRING, "boolVar", 1, + JSMN_PRIMITIVE, "false")); + check(parse("{\"nullVar\" : null }", 3, 3, + JSMN_OBJECT, -1, -1, 1, + JSMN_STRING, "nullVar", 1, + JSMN_PRIMITIVE, "null")); + check(parse("{\"intVar\" : 12}", 3, 3, + JSMN_OBJECT, -1, -1, 1, + JSMN_STRING, "intVar", 1, + JSMN_PRIMITIVE, "12")); + check(parse("{\"floatVar\" : 12.345}", 3, 3, + JSMN_OBJECT, -1, -1, 1, + JSMN_STRING, "floatVar", 1, + JSMN_PRIMITIVE, "12.345")); + return 0; +} + +int test_string(void) { + check(parse("{\"strVar\" : \"hello world\"}", 3, 3, + JSMN_OBJECT, -1, -1, 1, + JSMN_STRING, "strVar", 1, + JSMN_STRING, "hello world", 0)); + check(parse("{\"strVar\" : \"escapes: \\/\\r\\n\\t\\b\\f\\\"\\\\\"}", 3, 3, + JSMN_OBJECT, -1, -1, 1, + JSMN_STRING, "strVar", 1, + JSMN_STRING, "escapes: \\/\\r\\n\\t\\b\\f\\\"\\\\", 0)); + check(parse("{\"strVar\": \"\"}", 3, 3, + JSMN_OBJECT, -1, -1, 1, + JSMN_STRING, "strVar", 1, + JSMN_STRING, "", 0)); + check(parse("{\"a\":\"\\uAbcD\"}", 3, 3, + JSMN_OBJECT, -1, -1, 1, + JSMN_STRING, "a", 1, + JSMN_STRING, "\\uAbcD", 0)); + check(parse("{\"a\":\"str\\u0000\"}", 3, 3, + JSMN_OBJECT, -1, -1, 1, + JSMN_STRING, "a", 1, + JSMN_STRING, "str\\u0000", 0)); + check(parse("{\"a\":\"\\uFFFFstr\"}", 3, 3, + JSMN_OBJECT, -1, -1, 1, + JSMN_STRING, "a", 1, + JSMN_STRING, "\\uFFFFstr", 0)); + check(parse("{\"a\":[\"\\u0280\"]}", 4, 4, + JSMN_OBJECT, -1, -1, 1, + JSMN_STRING, "a", 1, + JSMN_ARRAY, -1, -1, 1, + JSMN_STRING, "\\u0280", 0)); + + check(parse("{\"a\":\"str\\uFFGFstr\"}", JSMN_ERROR_INVAL, 3)); + check(parse("{\"a\":\"str\\u@FfF\"}", JSMN_ERROR_INVAL, 3)); + check(parse("{{\"a\":[\"\\u028\"]}", JSMN_ERROR_INVAL, 4)); + return 0; +} + +int test_partial_string(void) { + int i; + int r; + jsmn_parser p; + jsmntok_t tok[5]; + const char *js = "{\"x\": \"va\\\\ue\", \"y\": \"value y\"}"; + + jsmn_init(&p); + for (i = 1; i <= strlen(js); i++) { + r = jsmn_parse(&p, js, i, tok, sizeof(tok)/sizeof(tok[0])); + if (i == strlen(js)) { + check(r == 5); + check(tokeq(js, tok, 5, + JSMN_OBJECT, -1, -1, 2, + JSMN_STRING, "x", 1, + JSMN_STRING, "va\\\\ue", 0, + JSMN_STRING, "y", 1, + JSMN_STRING, "value y", 0)); + } else { + check(r == JSMN_ERROR_PART); + } + } + return 0; +} + +int test_partial_array(void) { +#ifdef JSMN_STRICT + int r; + int i; + jsmn_parser p; + jsmntok_t tok[10]; + const char *js = "[ 1, true, [123, \"hello\"]]"; + + jsmn_init(&p); + for (i = 1; i <= strlen(js); i++) { + r = jsmn_parse(&p, js, i, tok, sizeof(tok)/sizeof(tok[0])); + if (i == strlen(js)) { + check(r == 6); + check(tokeq(js, tok, 6, + JSMN_ARRAY, -1, -1, 3, + JSMN_PRIMITIVE, "1", + JSMN_PRIMITIVE, "true", + JSMN_ARRAY, -1, -1, 2, + JSMN_PRIMITIVE, "123", + JSMN_STRING, "hello", 0)); + } else { + check(r == JSMN_ERROR_PART); + } + } +#endif + return 0; +} + +int test_array_nomem(void) { + int i; + int r; + jsmn_parser p; + jsmntok_t toksmall[10], toklarge[10]; + const char *js; + + js = " [ 1, true, [123, \"hello\"]]"; + + for (i = 0; i < 6; i++) { + jsmn_init(&p); + memset(toksmall, 0, sizeof(toksmall)); + memset(toklarge, 0, sizeof(toklarge)); + r = jsmn_parse(&p, js, strlen(js), toksmall, i); + check(r == JSMN_ERROR_NOMEM); + + memcpy(toklarge, toksmall, sizeof(toksmall)); + + r = jsmn_parse(&p, js, strlen(js), toklarge, 10); + check(r >= 0); + check(tokeq(js, toklarge, 4, + JSMN_ARRAY, -1, -1, 3, + JSMN_PRIMITIVE, "1", + JSMN_PRIMITIVE, "true", + JSMN_ARRAY, -1, -1, 2, + JSMN_PRIMITIVE, "123", + JSMN_STRING, "hello", 0)); + } + return 0; +} + +int test_unquoted_keys(void) { +#ifndef JSMN_STRICT + int r; + jsmn_parser p; + jsmntok_t tok[10]; + const char *js; + + jsmn_init(&p); + js = "key1: \"value\"\nkey2 : 123"; + + r = jsmn_parse(&p, js, strlen(js), tok, 10); + check(r >= 0); + check(tokeq(js, tok, 4, + JSMN_PRIMITIVE, "key1", + JSMN_STRING, "value", 0, + JSMN_PRIMITIVE, "key2", + JSMN_PRIMITIVE, "123")); +#endif + return 0; +} + +int test_issue_22(void) { + int r; + jsmn_parser p; + jsmntok_t tokens[128]; + const char *js; + + js = "{ \"height\":10, \"layers\":[ { \"data\":[6,6], \"height\":10, " + "\"name\":\"Calque de Tile 1\", \"opacity\":1, \"type\":\"tilelayer\", " + "\"visible\":true, \"width\":10, \"x\":0, \"y\":0 }], " + "\"orientation\":\"orthogonal\", \"properties\": { }, \"tileheight\":32, " + "\"tilesets\":[ { \"firstgid\":1, \"image\":\"..\\/images\\/tiles.png\", " + "\"imageheight\":64, \"imagewidth\":160, \"margin\":0, \"name\":\"Tiles\", " + "\"properties\":{}, \"spacing\":0, \"tileheight\":32, \"tilewidth\":32 }], " + "\"tilewidth\":32, \"version\":1, \"width\":10 }"; + jsmn_init(&p); + r = jsmn_parse(&p, js, strlen(js), tokens, 128); + check(r >= 0); + return 0; +} + +int test_issue_27(void) { + const char *js = + "{ \"name\" : \"Jack\", \"age\" : 27 } { \"name\" : \"Anna\", "; + check(parse(js, JSMN_ERROR_PART, 8)); + return 0; +} + +int test_input_length(void) { + const char *js; + int r; + jsmn_parser p; + jsmntok_t tokens[10]; + + js = "{\"a\": 0}garbage"; + + jsmn_init(&p); + r = jsmn_parse(&p, js, 8, tokens, 10); + check(r == 3); + check(tokeq(js, tokens, 3, + JSMN_OBJECT, -1, -1, 1, + JSMN_STRING, "a", 1, + JSMN_PRIMITIVE, "0")); + return 0; +} + +int test_count(void) { + jsmn_parser p; + const char *js; + + js = "{}"; + jsmn_init(&p); + check(jsmn_parse(&p, js, strlen(js), NULL, 0) == 1); + + js = "[]"; + jsmn_init(&p); + check(jsmn_parse(&p, js, strlen(js), NULL, 0) == 1); + + js = "[[]]"; + jsmn_init(&p); + check(jsmn_parse(&p, js, strlen(js), NULL, 0) == 2); + + js = "[[], []]"; + jsmn_init(&p); + check(jsmn_parse(&p, js, strlen(js), NULL, 0) == 3); + + js = "[[], []]"; + jsmn_init(&p); + check(jsmn_parse(&p, js, strlen(js), NULL, 0) == 3); + + js = "[[], [[]], [[], []]]"; + jsmn_init(&p); + check(jsmn_parse(&p, js, strlen(js), NULL, 0) == 7); + + js = "[\"a\", [[], []]]"; + jsmn_init(&p); + check(jsmn_parse(&p, js, strlen(js), NULL, 0) == 5); + + js = "[[], \"[], [[]]\", [[]]]"; + jsmn_init(&p); + check(jsmn_parse(&p, js, strlen(js), NULL, 0) == 5); + + js = "[1, 2, 3]"; + jsmn_init(&p); + check(jsmn_parse(&p, js, strlen(js), NULL, 0) == 4); + + js = "[1, 2, [3, \"a\"], null]"; + jsmn_init(&p); + check(jsmn_parse(&p, js, strlen(js), NULL, 0) == 7); + + return 0; +} + + +int test_nonstrict(void) { +#ifndef JSMN_STRICT + const char *js; + js = "a: 0garbage"; + check(parse(js, 2, 2, + JSMN_PRIMITIVE, "a", + JSMN_PRIMITIVE, "0garbage")); + + js = "Day : 26\nMonth : Sep\n\nYear: 12"; + check(parse(js, 6, 6, + JSMN_PRIMITIVE, "Day", + JSMN_PRIMITIVE, "26", + JSMN_PRIMITIVE, "Month", + JSMN_PRIMITIVE, "Sep", + JSMN_PRIMITIVE, "Year", + JSMN_PRIMITIVE, "12")); +#endif + return 0; +} + +int test_unmatched_brackets(void) { + const char *js; + js = "\"key 1\": 1234}"; + check(parse(js, JSMN_ERROR_INVAL, 2)); + js = "{\"key 1\": 1234"; + check(parse(js, JSMN_ERROR_PART, 3)); + js = "{\"key 1\": 1234}}"; + check(parse(js, JSMN_ERROR_INVAL, 3)); + js = "\"key 1\"}: 1234"; + check(parse(js, JSMN_ERROR_INVAL, 3)); + js = "\"key {1\": 1234"; + check(parse(js, 2, 2, + JSMN_STRING, "key {1", 1, + JSMN_PRIMITIVE, "1234")); + js = "{{\"key 1\": 1234}"; + check(parse(js, JSMN_ERROR_PART, 4)); + return 0; +} + +int main(void) { + test(test_empty, "test for a empty JSON objects/arrays"); + test(test_object, "test for a JSON objects"); + test(test_array, "test for a JSON arrays"); + test(test_primitive, "test primitive JSON data types"); + test(test_string, "test string JSON data types"); + + test(test_partial_string, "test partial JSON string parsing"); + test(test_partial_array, "test partial array reading"); + test(test_array_nomem, "test array reading with a smaller number of tokens"); + test(test_unquoted_keys, "test unquoted keys (like in JavaScript)"); + test(test_input_length, "test strings that are not null-terminated"); + test(test_issue_22, "test issue #22"); + test(test_issue_27, "test issue #27"); + test(test_count, "test tokens count estimation"); + test(test_nonstrict, "test for non-strict mode"); + test(test_unmatched_brackets, "test for unmatched brackets"); + printf("\nPASSED: %d\nFAILED: %d\n", test_passed, test_failed); + return (test_failed > 0); +} diff --git a/3rd/jsmn/test/testutil.h b/3rd/jsmn/test/testutil.h new file mode 100755 index 0000000..9a1eb2d --- /dev/null +++ b/3rd/jsmn/test/testutil.h @@ -0,0 +1,94 @@ +#ifndef __TEST_UTIL_H__ +#define __TEST_UTIL_H__ + +#include "../jsmn.c" + +static int vtokeq(const char *s, jsmntok_t *t, int numtok, va_list ap) { + if (numtok > 0) { + int i, start, end, size; + int type; + char *value; + + size = -1; + value = NULL; + for (i = 0; i < numtok; i++) { + type = va_arg(ap, int); + if (type == JSMN_STRING) { + value = va_arg(ap, char *); + size = va_arg(ap, int); + start = end = -1; + } else if (type == JSMN_PRIMITIVE) { + value = va_arg(ap, char *); + start = end = size = -1; + } else { + start = va_arg(ap, int); + end = va_arg(ap, int); + size = va_arg(ap, int); + value = NULL; + } + if (t[i].type != type) { + printf("token %d type is %d, not %d\n", i, t[i].type, type); + return 0; + } + if (start != -1 && end != -1) { + if (t[i].start != start) { + printf("token %d start is %d, not %d\n", i, t[i].start, start); + return 0; + } + if (t[i].end != end ) { + printf("token %d end is %d, not %d\n", i, t[i].end, end); + return 0; + } + } + if (size != -1 && t[i].size != size) { + printf("token %d size is %d, not %d\n", i, t[i].size, size); + return 0; + } + + if (s != NULL && value != NULL) { + const char *p = s + t[i].start; + if (strlen(value) != t[i].end - t[i].start || + strncmp(p, value, t[i].end - t[i].start) != 0) { + printf("token %d value is %.*s, not %s\n", i, t[i].end-t[i].start, + s+t[i].start, value); + return 0; + } + } + } + } + return 1; +} + +static int tokeq(const char *s, jsmntok_t *tokens, int numtok, ...) { + int ok; + va_list args; + va_start(args, numtok); + ok = vtokeq(s, tokens, numtok, args); + va_end(args); + return ok; +} + +static int parse(const char *s, int status, int numtok, ...) { + int r; + int ok = 1; + va_list args; + jsmn_parser p; + jsmntok_t *t = malloc(numtok * sizeof(jsmntok_t)); + + jsmn_init(&p); + r = jsmn_parse(&p, s, strlen(s), t, numtok); + if (r != status) { + printf("status is %d, not %d\n", r, status); + return 0; + } + + if (status >= 0) { + va_start(args, numtok); + ok = vtokeq(s, t, numtok, args); + va_end(args); + } + free(t); + return ok; +} + +#endif /* __TEST_UTIL_H__ */ diff --git a/3rd/lua-5.3.4/Makefile b/3rd/lua-5.3.4/Makefile new file mode 100644 index 0000000..7288746 --- /dev/null +++ b/3rd/lua-5.3.4/Makefile @@ -0,0 +1,197 @@ +# Makefile for building Lua +# See ../doc/readme.html for installation and customization instructions. + +# == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT ======================= + +# Your platform. See PLATS for possible values. +PLAT= none + +CC= gcc -std=gnu99 +CFLAGS= -O2 -g -Wall -Wextra -DLUA_COMPAT_5_2 -fPIC $(SYSCFLAGS) $(MYCFLAGS) +LDFLAGS= $(SYSLDFLAGS) $(MYLDFLAGS) +LIBS= -lm $(SYSLIBS) $(MYLIBS) + +AR= ar rcu +RANLIB= ranlib +RM= rm -f + +SYSCFLAGS= +SYSLDFLAGS= +SYSLIBS= + +MYCFLAGS= +MYLDFLAGS= +MYLIBS= +MYOBJS= + +# == END OF USER SETTINGS -- NO NEED TO CHANGE ANYTHING BELOW THIS LINE ======= + +PLATS= aix bsd c89 freebsd generic linux macosx mingw posix solaris + +LUA_A= liblua.a +CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o \ + lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o \ + ltm.o lundump.o lvm.o lzio.o +LIB_O= lauxlib.o lbaselib.o lbitlib.o lcorolib.o ldblib.o liolib.o \ + lmathlib.o loslib.o lstrlib.o ltablib.o lutf8lib.o loadlib.o linit.o +BASE_O= $(CORE_O) $(LIB_O) $(MYOBJS) + +LUA_T= lua +LUA_O= lua.o + +LUAC_T= luac +LUAC_O= luac.o + +ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O) +ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) +ALL_A= $(LUA_A) + +# Targets start here. +default: $(PLAT) + +all: $(ALL_T) + +o: $(ALL_O) + +a: $(ALL_A) + +$(LUA_A): $(BASE_O) + $(AR) $@ $(BASE_O) + $(RANLIB) $@ + +$(LUA_T): $(LUA_O) $(LUA_A) + $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) + +$(LUAC_T): $(LUAC_O) $(LUA_A) + $(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS) + +clean: + $(RM) $(ALL_T) $(ALL_O) + +depend: + @$(CC) $(CFLAGS) -MM l*.c + +echo: + @echo "PLAT= $(PLAT)" + @echo "CC= $(CC)" + @echo "CFLAGS= $(CFLAGS)" + @echo "LDFLAGS= $(SYSLDFLAGS)" + @echo "LIBS= $(LIBS)" + @echo "AR= $(AR)" + @echo "RANLIB= $(RANLIB)" + @echo "RM= $(RM)" + +# Convenience targets for popular platforms +ALL= all + +none: + @echo "Please do 'make PLATFORM' where PLATFORM is one of these:" + @echo " $(PLATS)" + +aix: + $(MAKE) $(ALL) CC="xlc" CFLAGS="-O2 -DLUA_USE_POSIX -DLUA_USE_DLOPEN" SYSLIBS="-ldl" SYSLDFLAGS="-brtl -bexpall" + +bsd: + $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN" SYSLIBS="-Wl,-E" + +c89: + $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_C89" CC="gcc -std=c89" + @echo '' + @echo '*** C89 does not guarantee 64-bit integers for Lua.' + @echo '' + + +freebsd: + $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -lreadline" + +generic: $(ALL) + +linux: + $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline" + +macosx: + $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_MACOSX" SYSLIBS="-lreadline" CC=cc + +mingw: + $(MAKE) "LUA_A=lua53.dll" "LUA_T=lua.exe" \ + "AR=$(CC) -shared -o" "RANLIB=strip --strip-unneeded" \ + "SYSCFLAGS=-DLUA_BUILD_AS_DLL" "SYSLIBS=" "SYSLDFLAGS=-s" lua.exe + $(MAKE) "LUAC_T=luac.exe" luac.exe + +posix: + $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX" + +solaris: + $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN -D_REENTRANT" SYSLIBS="-ldl" + +# list targets that do not create files (but not all makes understand .PHONY) +.PHONY: all $(PLATS) default o a clean depend echo none + +# DO NOT DELETE + +lapi.o: lapi.c lprefix.h lua.h luaconf.h lapi.h llimits.h lstate.h \ + lobject.h ltm.h lzio.h lmem.h ldebug.h ldo.h lfunc.h lgc.h lstring.h \ + ltable.h lundump.h lvm.h +lauxlib.o: lauxlib.c lprefix.h lua.h luaconf.h lauxlib.h +lbaselib.o: lbaselib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h +lbitlib.o: lbitlib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h +lcode.o: lcode.c lprefix.h lua.h luaconf.h lcode.h llex.h lobject.h \ + llimits.h lzio.h lmem.h lopcodes.h lparser.h ldebug.h lstate.h ltm.h \ + ldo.h lgc.h lstring.h ltable.h lvm.h +lcorolib.o: lcorolib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h +lctype.o: lctype.c lprefix.h lctype.h lua.h luaconf.h llimits.h +ldblib.o: ldblib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h +ldebug.o: ldebug.c lprefix.h lua.h luaconf.h lapi.h llimits.h lstate.h \ + lobject.h ltm.h lzio.h lmem.h lcode.h llex.h lopcodes.h lparser.h \ + ldebug.h ldo.h lfunc.h lstring.h lgc.h ltable.h lvm.h +ldo.o: ldo.c lprefix.h lua.h luaconf.h lapi.h llimits.h lstate.h \ + lobject.h ltm.h lzio.h lmem.h ldebug.h ldo.h lfunc.h lgc.h lopcodes.h \ + lparser.h lstring.h ltable.h lundump.h lvm.h +ldump.o: ldump.c lprefix.h lua.h luaconf.h lobject.h llimits.h lstate.h \ + ltm.h lzio.h lmem.h lundump.h +lfunc.o: lfunc.c lprefix.h lua.h luaconf.h lfunc.h lobject.h llimits.h \ + lgc.h lstate.h ltm.h lzio.h lmem.h +lgc.o: lgc.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \ + llimits.h ltm.h lzio.h lmem.h ldo.h lfunc.h lgc.h lstring.h ltable.h +linit.o: linit.c lprefix.h lua.h luaconf.h lualib.h lauxlib.h +liolib.o: liolib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h +llex.o: llex.c lprefix.h lua.h luaconf.h lctype.h llimits.h ldebug.h \ + lstate.h lobject.h ltm.h lzio.h lmem.h ldo.h lgc.h llex.h lparser.h \ + lstring.h ltable.h +lmathlib.o: lmathlib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h +lmem.o: lmem.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \ + llimits.h ltm.h lzio.h lmem.h ldo.h lgc.h +loadlib.o: loadlib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h +lobject.o: lobject.c lprefix.h lua.h luaconf.h lctype.h llimits.h \ + ldebug.h lstate.h lobject.h ltm.h lzio.h lmem.h ldo.h lstring.h lgc.h \ + lvm.h +lopcodes.o: lopcodes.c lprefix.h lopcodes.h llimits.h lua.h luaconf.h +loslib.o: loslib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h +lparser.o: lparser.c lprefix.h lua.h luaconf.h lcode.h llex.h lobject.h \ + llimits.h lzio.h lmem.h lopcodes.h lparser.h ldebug.h lstate.h ltm.h \ + ldo.h lfunc.h lstring.h lgc.h ltable.h +lstate.o: lstate.c lprefix.h lua.h luaconf.h lapi.h llimits.h lstate.h \ + lobject.h ltm.h lzio.h lmem.h ldebug.h ldo.h lfunc.h lgc.h llex.h \ + lstring.h ltable.h +lstring.o: lstring.c lprefix.h lua.h luaconf.h ldebug.h lstate.h \ + lobject.h llimits.h ltm.h lzio.h lmem.h ldo.h lstring.h lgc.h +lstrlib.o: lstrlib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h +ltable.o: ltable.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \ + llimits.h ltm.h lzio.h lmem.h ldo.h lgc.h lstring.h ltable.h lvm.h +ltablib.o: ltablib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h +ltm.o: ltm.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \ + llimits.h ltm.h lzio.h lmem.h ldo.h lstring.h lgc.h ltable.h lvm.h +lua.o: lua.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h +luac.o: luac.c lprefix.h lua.h luaconf.h lauxlib.h lobject.h llimits.h \ + lstate.h ltm.h lzio.h lmem.h lundump.h ldebug.h lopcodes.h +lundump.o: lundump.c lprefix.h lua.h luaconf.h ldebug.h lstate.h \ + lobject.h llimits.h ltm.h lzio.h lmem.h ldo.h lfunc.h lstring.h lgc.h \ + lundump.h +lutf8lib.o: lutf8lib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h +lvm.o: lvm.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \ + llimits.h ltm.h lzio.h lmem.h ldo.h lfunc.h lgc.h lopcodes.h lstring.h \ + ltable.h lvm.h +lzio.o: lzio.c lprefix.h lua.h luaconf.h llimits.h lmem.h lstate.h \ + lobject.h ltm.h lzio.h + +# (end of Makefile) diff --git a/3rd/lua-5.3.4/lapi.c b/3rd/lua-5.3.4/lapi.c new file mode 100644 index 0000000..c9455a5 --- /dev/null +++ b/3rd/lua-5.3.4/lapi.c @@ -0,0 +1,1298 @@ +/* +** $Id: lapi.c,v 2.259 2016/02/29 14:27:14 roberto Exp $ +** Lua API +** See Copyright Notice in lua.h +*/ + +#define lapi_c +#define LUA_CORE + +#include "lprefix.h" + + +#include +#include + +#include "lua.h" + +#include "lapi.h" +#include "ldebug.h" +#include "ldo.h" +#include "lfunc.h" +#include "lgc.h" +#include "lmem.h" +#include "lobject.h" +#include "lstate.h" +#include "lstring.h" +#include "ltable.h" +#include "ltm.h" +#include "lundump.h" +#include "lvm.h" + + + +const char lua_ident[] = + "$LuaVersion: " LUA_COPYRIGHT " $" + "$LuaAuthors: " LUA_AUTHORS " $"; + + +/* value at a non-valid index */ +#define NONVALIDVALUE cast(TValue *, luaO_nilobject) + +/* corresponding test */ +#define isvalid(o) ((o) != luaO_nilobject) + +/* test for pseudo index */ +#define ispseudo(i) ((i) <= LUA_REGISTRYINDEX) + +/* test for upvalue */ +#define isupvalue(i) ((i) < LUA_REGISTRYINDEX) + +/* test for valid but not pseudo index */ +#define isstackindex(i, o) (isvalid(o) && !ispseudo(i)) + +#define api_checkvalidindex(l,o) api_check(l, isvalid(o), "invalid index") + +#define api_checkstackindex(l, i, o) \ + api_check(l, isstackindex(i, o), "index not in the stack") + + +static TValue *index2addr (lua_State *L, int idx) { + CallInfo *ci = L->ci; + if (idx > 0) { + TValue *o = ci->func + idx; + api_check(L, idx <= ci->top - (ci->func + 1), "unacceptable index"); + if (o >= L->top) return NONVALIDVALUE; + else return o; + } + else if (!ispseudo(idx)) { /* negative index */ + api_check(L, idx != 0 && -idx <= L->top - (ci->func + 1), "invalid index"); + return L->top + idx; + } + else if (idx == LUA_REGISTRYINDEX) + return &G(L)->l_registry; + else { /* upvalues */ + idx = LUA_REGISTRYINDEX - idx; + api_check(L, idx <= MAXUPVAL + 1, "upvalue index too large"); + if (ttislcf(ci->func)) /* light C function? */ + return NONVALIDVALUE; /* it has no upvalues */ + else { + CClosure *func = clCvalue(ci->func); + return (idx <= func->nupvalues) ? &func->upvalue[idx-1] : NONVALIDVALUE; + } + } +} + + +/* +** to be called by 'lua_checkstack' in protected mode, to grow stack +** capturing memory errors +*/ +static void growstack (lua_State *L, void *ud) { + int size = *(int *)ud; + luaD_growstack(L, size); +} + + +LUA_API int lua_checkstack (lua_State *L, int n) { + int res; + CallInfo *ci = L->ci; + lua_lock(L); + api_check(L, n >= 0, "negative 'n'"); + if (L->stack_last - L->top > n) /* stack large enough? */ + res = 1; /* yes; check is OK */ + else { /* no; need to grow stack */ + int inuse = cast_int(L->top - L->stack) + EXTRA_STACK; + if (inuse > LUAI_MAXSTACK - n) /* can grow without overflow? */ + res = 0; /* no */ + else /* try to grow stack */ + res = (luaD_rawrunprotected(L, &growstack, &n) == LUA_OK); + } + if (res && ci->top < L->top + n) + ci->top = L->top + n; /* adjust frame top */ + lua_unlock(L); + return res; +} + + +LUA_API void lua_xmove (lua_State *from, lua_State *to, int n) { + int i; + if (from == to) return; + lua_lock(to); + api_checknelems(from, n); + api_check(from, G(from) == G(to), "moving among independent states"); + api_check(from, to->ci->top - to->top >= n, "stack overflow"); + from->top -= n; + for (i = 0; i < n; i++) { + setobj2s(to, to->top, from->top + i); + to->top++; /* stack already checked by previous 'api_check' */ + } + lua_unlock(to); +} + + +LUA_API lua_CFunction lua_atpanic (lua_State *L, lua_CFunction panicf) { + lua_CFunction old; + lua_lock(L); + old = G(L)->panic; + G(L)->panic = panicf; + lua_unlock(L); + return old; +} + + +LUA_API const lua_Number *lua_version (lua_State *L) { + static const lua_Number version = LUA_VERSION_NUM; + if (L == NULL) return &version; + else return G(L)->version; +} + + + +/* +** basic stack manipulation +*/ + + +/* +** convert an acceptable stack index into an absolute index +*/ +LUA_API int lua_absindex (lua_State *L, int idx) { + return (idx > 0 || ispseudo(idx)) + ? idx + : cast_int(L->top - L->ci->func) + idx; +} + + +LUA_API int lua_gettop (lua_State *L) { + return cast_int(L->top - (L->ci->func + 1)); +} + + +LUA_API void lua_settop (lua_State *L, int idx) { + StkId func = L->ci->func; + lua_lock(L); + if (idx >= 0) { + api_check(L, idx <= L->stack_last - (func + 1), "new top too large"); + while (L->top < (func + 1) + idx) + setnilvalue(L->top++); + L->top = (func + 1) + idx; + } + else { + api_check(L, -(idx+1) <= (L->top - (func + 1)), "invalid new top"); + L->top += idx+1; /* 'subtract' index (index is negative) */ + } + lua_unlock(L); +} + + +/* +** Reverse the stack segment from 'from' to 'to' +** (auxiliary to 'lua_rotate') +*/ +static void reverse (lua_State *L, StkId from, StkId to) { + for (; from < to; from++, to--) { + TValue temp; + setobj(L, &temp, from); + setobjs2s(L, from, to); + setobj2s(L, to, &temp); + } +} + + +/* +** Let x = AB, where A is a prefix of length 'n'. Then, +** rotate x n == BA. But BA == (A^r . B^r)^r. +*/ +LUA_API void lua_rotate (lua_State *L, int idx, int n) { + StkId p, t, m; + lua_lock(L); + t = L->top - 1; /* end of stack segment being rotated */ + p = index2addr(L, idx); /* start of segment */ + api_checkstackindex(L, idx, p); + api_check(L, (n >= 0 ? n : -n) <= (t - p + 1), "invalid 'n'"); + m = (n >= 0 ? t - n : p - n - 1); /* end of prefix */ + reverse(L, p, m); /* reverse the prefix with length 'n' */ + reverse(L, m + 1, t); /* reverse the suffix */ + reverse(L, p, t); /* reverse the entire segment */ + lua_unlock(L); +} + + +LUA_API void lua_copy (lua_State *L, int fromidx, int toidx) { + TValue *fr, *to; + lua_lock(L); + fr = index2addr(L, fromidx); + to = index2addr(L, toidx); + api_checkvalidindex(L, to); + setobj(L, to, fr); + if (isupvalue(toidx)) /* function upvalue? */ + luaC_barrier(L, clCvalue(L->ci->func), fr); + /* LUA_REGISTRYINDEX does not need gc barrier + (collector revisits it before finishing collection) */ + lua_unlock(L); +} + + +LUA_API void lua_pushvalue (lua_State *L, int idx) { + lua_lock(L); + setobj2s(L, L->top, index2addr(L, idx)); + api_incr_top(L); + lua_unlock(L); +} + + + +/* +** access functions (stack -> C) +*/ + + +LUA_API int lua_type (lua_State *L, int idx) { + StkId o = index2addr(L, idx); + return (isvalid(o) ? ttnov(o) : LUA_TNONE); +} + + +LUA_API const char *lua_typename (lua_State *L, int t) { + UNUSED(L); + api_check(L, LUA_TNONE <= t && t < LUA_NUMTAGS, "invalid tag"); + return ttypename(t); +} + + +LUA_API int lua_iscfunction (lua_State *L, int idx) { + StkId o = index2addr(L, idx); + return (ttislcf(o) || (ttisCclosure(o))); +} + + +LUA_API int lua_isinteger (lua_State *L, int idx) { + StkId o = index2addr(L, idx); + return ttisinteger(o); +} + + +LUA_API int lua_isnumber (lua_State *L, int idx) { + lua_Number n; + const TValue *o = index2addr(L, idx); + return tonumber(o, &n); +} + + +LUA_API int lua_isstring (lua_State *L, int idx) { + const TValue *o = index2addr(L, idx); + return (ttisstring(o) || cvt2str(o)); +} + + +LUA_API int lua_isuserdata (lua_State *L, int idx) { + const TValue *o = index2addr(L, idx); + return (ttisfulluserdata(o) || ttislightuserdata(o)); +} + + +LUA_API int lua_rawequal (lua_State *L, int index1, int index2) { + StkId o1 = index2addr(L, index1); + StkId o2 = index2addr(L, index2); + return (isvalid(o1) && isvalid(o2)) ? luaV_rawequalobj(o1, o2) : 0; +} + + +LUA_API void lua_arith (lua_State *L, int op) { + lua_lock(L); + if (op != LUA_OPUNM && op != LUA_OPBNOT) + api_checknelems(L, 2); /* all other operations expect two operands */ + else { /* for unary operations, add fake 2nd operand */ + api_checknelems(L, 1); + setobjs2s(L, L->top, L->top - 1); + api_incr_top(L); + } + /* first operand at top - 2, second at top - 1; result go to top - 2 */ + luaO_arith(L, op, L->top - 2, L->top - 1, L->top - 2); + L->top--; /* remove second operand */ + lua_unlock(L); +} + + +LUA_API int lua_compare (lua_State *L, int index1, int index2, int op) { + StkId o1, o2; + int i = 0; + lua_lock(L); /* may call tag method */ + o1 = index2addr(L, index1); + o2 = index2addr(L, index2); + if (isvalid(o1) && isvalid(o2)) { + switch (op) { + case LUA_OPEQ: i = luaV_equalobj(L, o1, o2); break; + case LUA_OPLT: i = luaV_lessthan(L, o1, o2); break; + case LUA_OPLE: i = luaV_lessequal(L, o1, o2); break; + default: api_check(L, 0, "invalid option"); + } + } + lua_unlock(L); + return i; +} + + +LUA_API size_t lua_stringtonumber (lua_State *L, const char *s) { + size_t sz = luaO_str2num(s, L->top); + if (sz != 0) + api_incr_top(L); + return sz; +} + + +LUA_API lua_Number lua_tonumberx (lua_State *L, int idx, int *pisnum) { + lua_Number n; + const TValue *o = index2addr(L, idx); + int isnum = tonumber(o, &n); + if (!isnum) + n = 0; /* call to 'tonumber' may change 'n' even if it fails */ + if (pisnum) *pisnum = isnum; + return n; +} + + +LUA_API lua_Integer lua_tointegerx (lua_State *L, int idx, int *pisnum) { + lua_Integer res; + const TValue *o = index2addr(L, idx); + int isnum = tointeger(o, &res); + if (!isnum) + res = 0; /* call to 'tointeger' may change 'n' even if it fails */ + if (pisnum) *pisnum = isnum; + return res; +} + + +LUA_API int lua_toboolean (lua_State *L, int idx) { + const TValue *o = index2addr(L, idx); + return !l_isfalse(o); +} + + +LUA_API const char *lua_tolstring (lua_State *L, int idx, size_t *len) { + StkId o = index2addr(L, idx); + if (!ttisstring(o)) { + if (!cvt2str(o)) { /* not convertible? */ + if (len != NULL) *len = 0; + return NULL; + } + lua_lock(L); /* 'luaO_tostring' may create a new string */ + luaO_tostring(L, o); + luaC_checkGC(L); + o = index2addr(L, idx); /* previous call may reallocate the stack */ + lua_unlock(L); + } + if (len != NULL) + *len = vslen(o); + return svalue(o); +} + + +LUA_API size_t lua_rawlen (lua_State *L, int idx) { + StkId o = index2addr(L, idx); + switch (ttype(o)) { + case LUA_TSHRSTR: return tsvalue(o)->shrlen; + case LUA_TLNGSTR: return tsvalue(o)->u.lnglen; + case LUA_TUSERDATA: return uvalue(o)->len; + case LUA_TTABLE: return luaH_getn(hvalue(o)); + default: return 0; + } +} + + +LUA_API lua_CFunction lua_tocfunction (lua_State *L, int idx) { + StkId o = index2addr(L, idx); + if (ttislcf(o)) return fvalue(o); + else if (ttisCclosure(o)) + return clCvalue(o)->f; + else return NULL; /* not a C function */ +} + + +LUA_API void *lua_touserdata (lua_State *L, int idx) { + StkId o = index2addr(L, idx); + switch (ttnov(o)) { + case LUA_TUSERDATA: return getudatamem(uvalue(o)); + case LUA_TLIGHTUSERDATA: return pvalue(o); + default: return NULL; + } +} + + +LUA_API lua_State *lua_tothread (lua_State *L, int idx) { + StkId o = index2addr(L, idx); + return (!ttisthread(o)) ? NULL : thvalue(o); +} + + +LUA_API const void *lua_topointer (lua_State *L, int idx) { + StkId o = index2addr(L, idx); + switch (ttype(o)) { + case LUA_TTABLE: return hvalue(o); + case LUA_TLCL: return clLvalue(o); + case LUA_TCCL: return clCvalue(o); + case LUA_TLCF: return cast(void *, cast(size_t, fvalue(o))); + case LUA_TTHREAD: return thvalue(o); + case LUA_TUSERDATA: return getudatamem(uvalue(o)); + case LUA_TLIGHTUSERDATA: return pvalue(o); + default: return NULL; + } +} + + + +/* +** push functions (C -> stack) +*/ + + +LUA_API void lua_pushnil (lua_State *L) { + lua_lock(L); + setnilvalue(L->top); + api_incr_top(L); + lua_unlock(L); +} + + +LUA_API void lua_pushnumber (lua_State *L, lua_Number n) { + lua_lock(L); + setfltvalue(L->top, n); + api_incr_top(L); + lua_unlock(L); +} + + +LUA_API void lua_pushinteger (lua_State *L, lua_Integer n) { + lua_lock(L); + setivalue(L->top, n); + api_incr_top(L); + lua_unlock(L); +} + + +/* +** Pushes on the stack a string with given length. Avoid using 's' when +** 'len' == 0 (as 's' can be NULL in that case), due to later use of +** 'memcmp' and 'memcpy'. +*/ +LUA_API const char *lua_pushlstring (lua_State *L, const char *s, size_t len) { + TString *ts; + lua_lock(L); + ts = (len == 0) ? luaS_new(L, "") : luaS_newlstr(L, s, len); + setsvalue2s(L, L->top, ts); + api_incr_top(L); + luaC_checkGC(L); + lua_unlock(L); + return getstr(ts); +} + + +LUA_API const char *lua_pushstring (lua_State *L, const char *s) { + lua_lock(L); + if (s == NULL) + setnilvalue(L->top); + else { + TString *ts; + ts = luaS_new(L, s); + setsvalue2s(L, L->top, ts); + s = getstr(ts); /* internal copy's address */ + } + api_incr_top(L); + luaC_checkGC(L); + lua_unlock(L); + return s; +} + + +LUA_API const char *lua_pushvfstring (lua_State *L, const char *fmt, + va_list argp) { + const char *ret; + lua_lock(L); + ret = luaO_pushvfstring(L, fmt, argp); + luaC_checkGC(L); + lua_unlock(L); + return ret; +} + + +LUA_API const char *lua_pushfstring (lua_State *L, const char *fmt, ...) { + const char *ret; + va_list argp; + lua_lock(L); + va_start(argp, fmt); + ret = luaO_pushvfstring(L, fmt, argp); + va_end(argp); + luaC_checkGC(L); + lua_unlock(L); + return ret; +} + + +LUA_API void lua_pushcclosure (lua_State *L, lua_CFunction fn, int n) { + lua_lock(L); + if (n == 0) { + setfvalue(L->top, fn); + } + else { + CClosure *cl; + api_checknelems(L, n); + api_check(L, n <= MAXUPVAL, "upvalue index too large"); + cl = luaF_newCclosure(L, n); + cl->f = fn; + L->top -= n; + while (n--) { + setobj2n(L, &cl->upvalue[n], L->top + n); + /* does not need barrier because closure is white */ + } + setclCvalue(L, L->top, cl); + } + api_incr_top(L); + luaC_checkGC(L); + lua_unlock(L); +} + + +LUA_API void lua_pushboolean (lua_State *L, int b) { + lua_lock(L); + setbvalue(L->top, (b != 0)); /* ensure that true is 1 */ + api_incr_top(L); + lua_unlock(L); +} + + +LUA_API void lua_pushlightuserdata (lua_State *L, void *p) { + lua_lock(L); + setpvalue(L->top, p); + api_incr_top(L); + lua_unlock(L); +} + + +LUA_API int lua_pushthread (lua_State *L) { + lua_lock(L); + setthvalue(L, L->top, L); + api_incr_top(L); + lua_unlock(L); + return (G(L)->mainthread == L); +} + + + +/* +** get functions (Lua -> stack) +*/ + + +static int auxgetstr (lua_State *L, const TValue *t, const char *k) { + const TValue *slot; + TString *str = luaS_new(L, k); + if (luaV_fastget(L, t, str, slot, luaH_getstr)) { + setobj2s(L, L->top, slot); + api_incr_top(L); + } + else { + setsvalue2s(L, L->top, str); + api_incr_top(L); + luaV_finishget(L, t, L->top - 1, L->top - 1, slot); + } + lua_unlock(L); + return ttnov(L->top - 1); +} + + +LUA_API int lua_getglobal (lua_State *L, const char *name) { + Table *reg = hvalue(&G(L)->l_registry); + lua_lock(L); + return auxgetstr(L, luaH_getint(reg, LUA_RIDX_GLOBALS), name); +} + + +LUA_API int lua_gettable (lua_State *L, int idx) { + StkId t; + lua_lock(L); + t = index2addr(L, idx); + luaV_gettable(L, t, L->top - 1, L->top - 1); + lua_unlock(L); + return ttnov(L->top - 1); +} + + +LUA_API int lua_getfield (lua_State *L, int idx, const char *k) { + lua_lock(L); + return auxgetstr(L, index2addr(L, idx), k); +} + + +LUA_API int lua_geti (lua_State *L, int idx, lua_Integer n) { + StkId t; + const TValue *slot; + lua_lock(L); + t = index2addr(L, idx); + if (luaV_fastget(L, t, n, slot, luaH_getint)) { + setobj2s(L, L->top, slot); + api_incr_top(L); + } + else { + setivalue(L->top, n); + api_incr_top(L); + luaV_finishget(L, t, L->top - 1, L->top - 1, slot); + } + lua_unlock(L); + return ttnov(L->top - 1); +} + + +LUA_API int lua_rawget (lua_State *L, int idx) { + StkId t; + lua_lock(L); + t = index2addr(L, idx); + api_check(L, ttistable(t), "table expected"); + setobj2s(L, L->top - 1, luaH_get(hvalue(t), L->top - 1)); + lua_unlock(L); + return ttnov(L->top - 1); +} + + +LUA_API int lua_rawgeti (lua_State *L, int idx, lua_Integer n) { + StkId t; + lua_lock(L); + t = index2addr(L, idx); + api_check(L, ttistable(t), "table expected"); + setobj2s(L, L->top, luaH_getint(hvalue(t), n)); + api_incr_top(L); + lua_unlock(L); + return ttnov(L->top - 1); +} + + +LUA_API int lua_rawgetp (lua_State *L, int idx, const void *p) { + StkId t; + TValue k; + lua_lock(L); + t = index2addr(L, idx); + api_check(L, ttistable(t), "table expected"); + setpvalue(&k, cast(void *, p)); + setobj2s(L, L->top, luaH_get(hvalue(t), &k)); + api_incr_top(L); + lua_unlock(L); + return ttnov(L->top - 1); +} + + +LUA_API void lua_createtable (lua_State *L, int narray, int nrec) { + Table *t; + lua_lock(L); + t = luaH_new(L); + sethvalue(L, L->top, t); + api_incr_top(L); + if (narray > 0 || nrec > 0) + luaH_resize(L, t, narray, nrec); + luaC_checkGC(L); + lua_unlock(L); +} + + +LUA_API int lua_getmetatable (lua_State *L, int objindex) { + const TValue *obj; + Table *mt; + int res = 0; + lua_lock(L); + obj = index2addr(L, objindex); + switch (ttnov(obj)) { + case LUA_TTABLE: + mt = hvalue(obj)->metatable; + break; + case LUA_TUSERDATA: + mt = uvalue(obj)->metatable; + break; + default: + mt = G(L)->mt[ttnov(obj)]; + break; + } + if (mt != NULL) { + sethvalue(L, L->top, mt); + api_incr_top(L); + res = 1; + } + lua_unlock(L); + return res; +} + + +LUA_API int lua_getuservalue (lua_State *L, int idx) { + StkId o; + lua_lock(L); + o = index2addr(L, idx); + api_check(L, ttisfulluserdata(o), "full userdata expected"); + getuservalue(L, uvalue(o), L->top); + api_incr_top(L); + lua_unlock(L); + return ttnov(L->top - 1); +} + + +/* +** set functions (stack -> Lua) +*/ + +/* +** t[k] = value at the top of the stack (where 'k' is a string) +*/ +static void auxsetstr (lua_State *L, const TValue *t, const char *k) { + const TValue *slot; + TString *str = luaS_new(L, k); + api_checknelems(L, 1); + if (luaV_fastset(L, t, str, slot, luaH_getstr, L->top - 1)) + L->top--; /* pop value */ + else { + setsvalue2s(L, L->top, str); /* push 'str' (to make it a TValue) */ + api_incr_top(L); + luaV_finishset(L, t, L->top - 1, L->top - 2, slot); + L->top -= 2; /* pop value and key */ + } + lua_unlock(L); /* lock done by caller */ +} + + +LUA_API void lua_setglobal (lua_State *L, const char *name) { + Table *reg = hvalue(&G(L)->l_registry); + lua_lock(L); /* unlock done in 'auxsetstr' */ + auxsetstr(L, luaH_getint(reg, LUA_RIDX_GLOBALS), name); +} + + +LUA_API void lua_settable (lua_State *L, int idx) { + StkId t; + lua_lock(L); + api_checknelems(L, 2); + t = index2addr(L, idx); + luaV_settable(L, t, L->top - 2, L->top - 1); + L->top -= 2; /* pop index and value */ + lua_unlock(L); +} + + +LUA_API void lua_setfield (lua_State *L, int idx, const char *k) { + lua_lock(L); /* unlock done in 'auxsetstr' */ + auxsetstr(L, index2addr(L, idx), k); +} + + +LUA_API void lua_seti (lua_State *L, int idx, lua_Integer n) { + StkId t; + const TValue *slot; + lua_lock(L); + api_checknelems(L, 1); + t = index2addr(L, idx); + if (luaV_fastset(L, t, n, slot, luaH_getint, L->top - 1)) + L->top--; /* pop value */ + else { + setivalue(L->top, n); + api_incr_top(L); + luaV_finishset(L, t, L->top - 1, L->top - 2, slot); + L->top -= 2; /* pop value and key */ + } + lua_unlock(L); +} + + +LUA_API void lua_rawset (lua_State *L, int idx) { + StkId o; + TValue *slot; + lua_lock(L); + api_checknelems(L, 2); + o = index2addr(L, idx); + api_check(L, ttistable(o), "table expected"); + slot = luaH_set(L, hvalue(o), L->top - 2); + setobj2t(L, slot, L->top - 1); + invalidateTMcache(hvalue(o)); + luaC_barrierback(L, hvalue(o), L->top-1); + L->top -= 2; + lua_unlock(L); +} + + +LUA_API void lua_rawseti (lua_State *L, int idx, lua_Integer n) { + StkId o; + lua_lock(L); + api_checknelems(L, 1); + o = index2addr(L, idx); + api_check(L, ttistable(o), "table expected"); + luaH_setint(L, hvalue(o), n, L->top - 1); + luaC_barrierback(L, hvalue(o), L->top-1); + L->top--; + lua_unlock(L); +} + + +LUA_API void lua_rawsetp (lua_State *L, int idx, const void *p) { + StkId o; + TValue k, *slot; + lua_lock(L); + api_checknelems(L, 1); + o = index2addr(L, idx); + api_check(L, ttistable(o), "table expected"); + setpvalue(&k, cast(void *, p)); + slot = luaH_set(L, hvalue(o), &k); + setobj2t(L, slot, L->top - 1); + luaC_barrierback(L, hvalue(o), L->top - 1); + L->top--; + lua_unlock(L); +} + + +LUA_API int lua_setmetatable (lua_State *L, int objindex) { + TValue *obj; + Table *mt; + lua_lock(L); + api_checknelems(L, 1); + obj = index2addr(L, objindex); + if (ttisnil(L->top - 1)) + mt = NULL; + else { + api_check(L, ttistable(L->top - 1), "table expected"); + mt = hvalue(L->top - 1); + } + switch (ttnov(obj)) { + case LUA_TTABLE: { + hvalue(obj)->metatable = mt; + if (mt) { + luaC_objbarrier(L, gcvalue(obj), mt); + luaC_checkfinalizer(L, gcvalue(obj), mt); + } + break; + } + case LUA_TUSERDATA: { + uvalue(obj)->metatable = mt; + if (mt) { + luaC_objbarrier(L, uvalue(obj), mt); + luaC_checkfinalizer(L, gcvalue(obj), mt); + } + break; + } + default: { + G(L)->mt[ttnov(obj)] = mt; + break; + } + } + L->top--; + lua_unlock(L); + return 1; +} + + +LUA_API void lua_setuservalue (lua_State *L, int idx) { + StkId o; + lua_lock(L); + api_checknelems(L, 1); + o = index2addr(L, idx); + api_check(L, ttisfulluserdata(o), "full userdata expected"); + setuservalue(L, uvalue(o), L->top - 1); + luaC_barrier(L, gcvalue(o), L->top - 1); + L->top--; + lua_unlock(L); +} + + +/* +** 'load' and 'call' functions (run Lua code) +*/ + + +#define checkresults(L,na,nr) \ + api_check(L, (nr) == LUA_MULTRET || (L->ci->top - L->top >= (nr) - (na)), \ + "results from function overflow current stack size") + + +LUA_API void lua_callk (lua_State *L, int nargs, int nresults, + lua_KContext ctx, lua_KFunction k) { + StkId func; + lua_lock(L); + api_check(L, k == NULL || !isLua(L->ci), + "cannot use continuations inside hooks"); + api_checknelems(L, nargs+1); + api_check(L, L->status == LUA_OK, "cannot do calls on non-normal thread"); + checkresults(L, nargs, nresults); + func = L->top - (nargs+1); + if (k != NULL && L->nny == 0) { /* need to prepare continuation? */ + L->ci->u.c.k = k; /* save continuation */ + L->ci->u.c.ctx = ctx; /* save context */ + luaD_call(L, func, nresults); /* do the call */ + } + else /* no continuation or no yieldable */ + luaD_callnoyield(L, func, nresults); /* just do the call */ + adjustresults(L, nresults); + lua_unlock(L); +} + + + +/* +** Execute a protected call. +*/ +struct CallS { /* data to 'f_call' */ + StkId func; + int nresults; +}; + + +static void f_call (lua_State *L, void *ud) { + struct CallS *c = cast(struct CallS *, ud); + luaD_callnoyield(L, c->func, c->nresults); +} + + + +LUA_API int lua_pcallk (lua_State *L, int nargs, int nresults, int errfunc, + lua_KContext ctx, lua_KFunction k) { + struct CallS c; + int status; + ptrdiff_t func; + lua_lock(L); + api_check(L, k == NULL || !isLua(L->ci), + "cannot use continuations inside hooks"); + api_checknelems(L, nargs+1); + api_check(L, L->status == LUA_OK, "cannot do calls on non-normal thread"); + checkresults(L, nargs, nresults); + if (errfunc == 0) + func = 0; + else { + StkId o = index2addr(L, errfunc); + api_checkstackindex(L, errfunc, o); + func = savestack(L, o); + } + c.func = L->top - (nargs+1); /* function to be called */ + if (k == NULL || L->nny > 0) { /* no continuation or no yieldable? */ + c.nresults = nresults; /* do a 'conventional' protected call */ + status = luaD_pcall(L, f_call, &c, savestack(L, c.func), func); + } + else { /* prepare continuation (call is already protected by 'resume') */ + CallInfo *ci = L->ci; + ci->u.c.k = k; /* save continuation */ + ci->u.c.ctx = ctx; /* save context */ + /* save information for error recovery */ + ci->extra = savestack(L, c.func); + ci->u.c.old_errfunc = L->errfunc; + L->errfunc = func; + setoah(ci->callstatus, L->allowhook); /* save value of 'allowhook' */ + ci->callstatus |= CIST_YPCALL; /* function can do error recovery */ + luaD_call(L, c.func, nresults); /* do the call */ + ci->callstatus &= ~CIST_YPCALL; + L->errfunc = ci->u.c.old_errfunc; + status = LUA_OK; /* if it is here, there were no errors */ + } + adjustresults(L, nresults); + lua_unlock(L); + return status; +} + + +LUA_API int lua_load (lua_State *L, lua_Reader reader, void *data, + const char *chunkname, const char *mode) { + ZIO z; + int status; + lua_lock(L); + if (!chunkname) chunkname = "?"; + luaZ_init(L, &z, reader, data); + status = luaD_protectedparser(L, &z, chunkname, mode); + if (status == LUA_OK) { /* no errors? */ + LClosure *f = clLvalue(L->top - 1); /* get newly created function */ + if (f->nupvalues >= 1) { /* does it have an upvalue? */ + /* get global table from registry */ + Table *reg = hvalue(&G(L)->l_registry); + const TValue *gt = luaH_getint(reg, LUA_RIDX_GLOBALS); + /* set global table as 1st upvalue of 'f' (may be LUA_ENV) */ + setobj(L, f->upvals[0]->v, gt); + luaC_upvalbarrier(L, f->upvals[0]); + } + } + lua_unlock(L); + return status; +} + + +LUA_API int lua_dump (lua_State *L, lua_Writer writer, void *data, int strip) { + int status; + TValue *o; + lua_lock(L); + api_checknelems(L, 1); + o = L->top - 1; + if (isLfunction(o)) + status = luaU_dump(L, getproto(o), writer, data, strip); + else + status = 1; + lua_unlock(L); + return status; +} + + +LUA_API int lua_status (lua_State *L) { + return L->status; +} + + +/* +** Garbage-collection function +*/ + +LUA_API int lua_gc (lua_State *L, int what, int data) { + int res = 0; + global_State *g; + lua_lock(L); + g = G(L); + switch (what) { + case LUA_GCSTOP: { + g->gcrunning = 0; + break; + } + case LUA_GCRESTART: { + luaE_setdebt(g, 0); + g->gcrunning = 1; + break; + } + case LUA_GCCOLLECT: { + luaC_fullgc(L, 0); + break; + } + case LUA_GCCOUNT: { + /* GC values are expressed in Kbytes: #bytes/2^10 */ + res = cast_int(gettotalbytes(g) >> 10); + break; + } + case LUA_GCCOUNTB: { + res = cast_int(gettotalbytes(g) & 0x3ff); + break; + } + case LUA_GCSTEP: { + l_mem debt = 1; /* =1 to signal that it did an actual step */ + lu_byte oldrunning = g->gcrunning; + g->gcrunning = 1; /* allow GC to run */ + if (data == 0) { + luaE_setdebt(g, -GCSTEPSIZE); /* to do a "small" step */ + luaC_step(L); + } + else { /* add 'data' to total debt */ + debt = cast(l_mem, data) * 1024 + g->GCdebt; + luaE_setdebt(g, debt); + luaC_checkGC(L); + } + g->gcrunning = oldrunning; /* restore previous state */ + if (debt > 0 && g->gcstate == GCSpause) /* end of cycle? */ + res = 1; /* signal it */ + break; + } + case LUA_GCSETPAUSE: { + res = g->gcpause; + g->gcpause = data; + break; + } + case LUA_GCSETSTEPMUL: { + res = g->gcstepmul; + if (data < 40) data = 40; /* avoid ridiculous low values (and 0) */ + g->gcstepmul = data; + break; + } + case LUA_GCISRUNNING: { + res = g->gcrunning; + break; + } + default: res = -1; /* invalid option */ + } + lua_unlock(L); + return res; +} + + + +/* +** miscellaneous functions +*/ + + +LUA_API int lua_error (lua_State *L) { + lua_lock(L); + api_checknelems(L, 1); + luaG_errormsg(L); + /* code unreachable; will unlock when control actually leaves the kernel */ + return 0; /* to avoid warnings */ +} + + +LUA_API int lua_next (lua_State *L, int idx) { + StkId t; + int more; + lua_lock(L); + t = index2addr(L, idx); + api_check(L, ttistable(t), "table expected"); + more = luaH_next(L, hvalue(t), L->top - 1); + if (more) { + api_incr_top(L); + } + else /* no more elements */ + L->top -= 1; /* remove key */ + lua_unlock(L); + return more; +} + + +LUA_API void lua_concat (lua_State *L, int n) { + lua_lock(L); + api_checknelems(L, n); + if (n >= 2) { + luaV_concat(L, n); + } + else if (n == 0) { /* push empty string */ + setsvalue2s(L, L->top, luaS_newlstr(L, "", 0)); + api_incr_top(L); + } + /* else n == 1; nothing to do */ + luaC_checkGC(L); + lua_unlock(L); +} + + +LUA_API void lua_len (lua_State *L, int idx) { + StkId t; + lua_lock(L); + t = index2addr(L, idx); + luaV_objlen(L, L->top, t); + api_incr_top(L); + lua_unlock(L); +} + + +LUA_API lua_Alloc lua_getallocf (lua_State *L, void **ud) { + lua_Alloc f; + lua_lock(L); + if (ud) *ud = G(L)->ud; + f = G(L)->frealloc; + lua_unlock(L); + return f; +} + + +LUA_API void lua_setallocf (lua_State *L, lua_Alloc f, void *ud) { + lua_lock(L); + G(L)->ud = ud; + G(L)->frealloc = f; + lua_unlock(L); +} + + +LUA_API void *lua_newuserdata (lua_State *L, size_t size) { + Udata *u; + lua_lock(L); + u = luaS_newudata(L, size); + setuvalue(L, L->top, u); + api_incr_top(L); + luaC_checkGC(L); + lua_unlock(L); + return getudatamem(u); +} + + + +static const char *aux_upvalue (StkId fi, int n, TValue **val, + CClosure **owner, UpVal **uv) { + switch (ttype(fi)) { + case LUA_TCCL: { /* C closure */ + CClosure *f = clCvalue(fi); + if (!(1 <= n && n <= f->nupvalues)) return NULL; + *val = &f->upvalue[n-1]; + if (owner) *owner = f; + return ""; + } + case LUA_TLCL: { /* Lua closure */ + LClosure *f = clLvalue(fi); + TString *name; + Proto *p = f->p; + if (!(1 <= n && n <= p->sizeupvalues)) return NULL; + *val = f->upvals[n-1]->v; + if (uv) *uv = f->upvals[n - 1]; + name = p->upvalues[n-1].name; + return (name == NULL) ? "(*no name)" : getstr(name); + } + default: return NULL; /* not a closure */ + } +} + + +LUA_API const char *lua_getupvalue (lua_State *L, int funcindex, int n) { + const char *name; + TValue *val = NULL; /* to avoid warnings */ + lua_lock(L); + name = aux_upvalue(index2addr(L, funcindex), n, &val, NULL, NULL); + if (name) { + setobj2s(L, L->top, val); + api_incr_top(L); + } + lua_unlock(L); + return name; +} + + +LUA_API const char *lua_setupvalue (lua_State *L, int funcindex, int n) { + const char *name; + TValue *val = NULL; /* to avoid warnings */ + CClosure *owner = NULL; + UpVal *uv = NULL; + StkId fi; + lua_lock(L); + fi = index2addr(L, funcindex); + api_checknelems(L, 1); + name = aux_upvalue(fi, n, &val, &owner, &uv); + if (name) { + L->top--; + setobj(L, val, L->top); + if (owner) { luaC_barrier(L, owner, L->top); } + else if (uv) { luaC_upvalbarrier(L, uv); } + } + lua_unlock(L); + return name; +} + + +static UpVal **getupvalref (lua_State *L, int fidx, int n, LClosure **pf) { + LClosure *f; + StkId fi = index2addr(L, fidx); + api_check(L, ttisLclosure(fi), "Lua function expected"); + f = clLvalue(fi); + api_check(L, (1 <= n && n <= f->p->sizeupvalues), "invalid upvalue index"); + if (pf) *pf = f; + return &f->upvals[n - 1]; /* get its upvalue pointer */ +} + + +LUA_API void *lua_upvalueid (lua_State *L, int fidx, int n) { + StkId fi = index2addr(L, fidx); + switch (ttype(fi)) { + case LUA_TLCL: { /* lua closure */ + return *getupvalref(L, fidx, n, NULL); + } + case LUA_TCCL: { /* C closure */ + CClosure *f = clCvalue(fi); + api_check(L, 1 <= n && n <= f->nupvalues, "invalid upvalue index"); + return &f->upvalue[n - 1]; + } + default: { + api_check(L, 0, "closure expected"); + return NULL; + } + } +} + + +LUA_API void lua_upvaluejoin (lua_State *L, int fidx1, int n1, + int fidx2, int n2) { + LClosure *f1; + UpVal **up1 = getupvalref(L, fidx1, n1, &f1); + UpVal **up2 = getupvalref(L, fidx2, n2, NULL); + luaC_upvdeccount(L, *up1); + *up1 = *up2; + (*up1)->refcount++; + if (upisopen(*up1)) (*up1)->u.open.touched = 1; + luaC_upvalbarrier(L, *up1); +} + + diff --git a/3rd/lua-5.3.4/lapi.h b/3rd/lua-5.3.4/lapi.h new file mode 100644 index 0000000..6d36dee --- /dev/null +++ b/3rd/lua-5.3.4/lapi.h @@ -0,0 +1,24 @@ +/* +** $Id: lapi.h,v 2.9 2015/03/06 19:49:50 roberto Exp $ +** Auxiliary functions from Lua API +** See Copyright Notice in lua.h +*/ + +#ifndef lapi_h +#define lapi_h + + +#include "llimits.h" +#include "lstate.h" + +#define api_incr_top(L) {L->top++; api_check(L, L->top <= L->ci->top, \ + "stack overflow");} + +#define adjustresults(L,nres) \ + { if ((nres) == LUA_MULTRET && L->ci->top < L->top) L->ci->top = L->top; } + +#define api_checknelems(L,n) api_check(L, (n) < (L->top - L->ci->func), \ + "not enough elements in the stack") + + +#endif diff --git a/3rd/lua-5.3.4/lauxlib.c b/3rd/lua-5.3.4/lauxlib.c new file mode 100644 index 0000000..f7a3836 --- /dev/null +++ b/3rd/lua-5.3.4/lauxlib.c @@ -0,0 +1,1043 @@ +/* +** $Id: lauxlib.c,v 1.289 2016/12/20 18:37:00 roberto Exp $ +** Auxiliary functions for building Lua libraries +** See Copyright Notice in lua.h +*/ + +#define lauxlib_c +#define LUA_LIB + +#include "lprefix.h" + + +#include +#include +#include +#include +#include + + +/* +** This file uses only the official API of Lua. +** Any function declared here could be written as an application function. +*/ + +#include "lua.h" + +#include "lauxlib.h" + + +/* +** {====================================================== +** Traceback +** ======================================================= +*/ + + +#define LEVELS1 10 /* size of the first part of the stack */ +#define LEVELS2 11 /* size of the second part of the stack */ + + + +/* +** search for 'objidx' in table at index -1. +** return 1 + string at top if find a good name. +*/ +static int findfield (lua_State *L, int objidx, int level) { + if (level == 0 || !lua_istable(L, -1)) + return 0; /* not found */ + lua_pushnil(L); /* start 'next' loop */ + while (lua_next(L, -2)) { /* for each pair in table */ + if (lua_type(L, -2) == LUA_TSTRING) { /* ignore non-string keys */ + if (lua_rawequal(L, objidx, -1)) { /* found object? */ + lua_pop(L, 1); /* remove value (but keep name) */ + return 1; + } + else if (findfield(L, objidx, level - 1)) { /* try recursively */ + lua_remove(L, -2); /* remove table (but keep name) */ + lua_pushliteral(L, "."); + lua_insert(L, -2); /* place '.' between the two names */ + lua_concat(L, 3); + return 1; + } + } + lua_pop(L, 1); /* remove value */ + } + return 0; /* not found */ +} + + +/* +** Search for a name for a function in all loaded modules +*/ +static int pushglobalfuncname (lua_State *L, lua_Debug *ar) { + int top = lua_gettop(L); + lua_getinfo(L, "f", ar); /* push function */ + lua_getfield(L, LUA_REGISTRYINDEX, LUA_LOADED_TABLE); + if (findfield(L, top + 1, 2)) { + const char *name = lua_tostring(L, -1); + if (strncmp(name, "_G.", 3) == 0) { /* name start with '_G.'? */ + lua_pushstring(L, name + 3); /* push name without prefix */ + lua_remove(L, -2); /* remove original name */ + } + lua_copy(L, -1, top + 1); /* move name to proper place */ + lua_pop(L, 2); /* remove pushed values */ + return 1; + } + else { + lua_settop(L, top); /* remove function and global table */ + return 0; + } +} + + +static void pushfuncname (lua_State *L, lua_Debug *ar) { + if (pushglobalfuncname(L, ar)) { /* try first a global name */ + lua_pushfstring(L, "function '%s'", lua_tostring(L, -1)); + lua_remove(L, -2); /* remove name */ + } + else if (*ar->namewhat != '\0') /* is there a name from code? */ + lua_pushfstring(L, "%s '%s'", ar->namewhat, ar->name); /* use it */ + else if (*ar->what == 'm') /* main? */ + lua_pushliteral(L, "main chunk"); + else if (*ar->what != 'C') /* for Lua functions, use */ + lua_pushfstring(L, "function <%s:%d>", ar->short_src, ar->linedefined); + else /* nothing left... */ + lua_pushliteral(L, "?"); +} + + +static int lastlevel (lua_State *L) { + lua_Debug ar; + int li = 1, le = 1; + /* find an upper bound */ + while (lua_getstack(L, le, &ar)) { li = le; le *= 2; } + /* do a binary search */ + while (li < le) { + int m = (li + le)/2; + if (lua_getstack(L, m, &ar)) li = m + 1; + else le = m; + } + return le - 1; +} + + +LUALIB_API void luaL_traceback (lua_State *L, lua_State *L1, + const char *msg, int level) { + lua_Debug ar; + int top = lua_gettop(L); + int last = lastlevel(L1); + int n1 = (last - level > LEVELS1 + LEVELS2) ? LEVELS1 : -1; + if (msg) + lua_pushfstring(L, "%s\n", msg); + luaL_checkstack(L, 10, NULL); + lua_pushliteral(L, "stack traceback:"); + while (lua_getstack(L1, level++, &ar)) { + if (n1-- == 0) { /* too many levels? */ + lua_pushliteral(L, "\n\t..."); /* add a '...' */ + level = last - LEVELS2 + 1; /* and skip to last ones */ + } + else { + lua_getinfo(L1, "Slnt", &ar); + lua_pushfstring(L, "\n\t%s:", ar.short_src); + if (ar.currentline > 0) + lua_pushfstring(L, "%d:", ar.currentline); + lua_pushliteral(L, " in "); + pushfuncname(L, &ar); + if (ar.istailcall) + lua_pushliteral(L, "\n\t(...tail calls...)"); + lua_concat(L, lua_gettop(L) - top); + } + } + lua_concat(L, lua_gettop(L) - top); +} + +/* }====================================================== */ + + +/* +** {====================================================== +** Error-report functions +** ======================================================= +*/ + +LUALIB_API int luaL_argerror (lua_State *L, int arg, const char *extramsg) { + lua_Debug ar; + if (!lua_getstack(L, 0, &ar)) /* no stack frame? */ + return luaL_error(L, "bad argument #%d (%s)", arg, extramsg); + lua_getinfo(L, "n", &ar); + if (strcmp(ar.namewhat, "method") == 0) { + arg--; /* do not count 'self' */ + if (arg == 0) /* error is in the self argument itself? */ + return luaL_error(L, "calling '%s' on bad self (%s)", + ar.name, extramsg); + } + if (ar.name == NULL) + ar.name = (pushglobalfuncname(L, &ar)) ? lua_tostring(L, -1) : "?"; + return luaL_error(L, "bad argument #%d to '%s' (%s)", + arg, ar.name, extramsg); +} + + +static int typeerror (lua_State *L, int arg, const char *tname) { + const char *msg; + const char *typearg; /* name for the type of the actual argument */ + if (luaL_getmetafield(L, arg, "__name") == LUA_TSTRING) + typearg = lua_tostring(L, -1); /* use the given type name */ + else if (lua_type(L, arg) == LUA_TLIGHTUSERDATA) + typearg = "light userdata"; /* special name for messages */ + else + typearg = luaL_typename(L, arg); /* standard name */ + msg = lua_pushfstring(L, "%s expected, got %s", tname, typearg); + return luaL_argerror(L, arg, msg); +} + + +static void tag_error (lua_State *L, int arg, int tag) { + typeerror(L, arg, lua_typename(L, tag)); +} + + +/* +** The use of 'lua_pushfstring' ensures this function does not +** need reserved stack space when called. +*/ +LUALIB_API void luaL_where (lua_State *L, int level) { + lua_Debug ar; + if (lua_getstack(L, level, &ar)) { /* check function at level */ + lua_getinfo(L, "Sl", &ar); /* get info about it */ + if (ar.currentline > 0) { /* is there info? */ + lua_pushfstring(L, "%s:%d: ", ar.short_src, ar.currentline); + return; + } + } + lua_pushfstring(L, ""); /* else, no information available... */ +} + + +/* +** Again, the use of 'lua_pushvfstring' ensures this function does +** not need reserved stack space when called. (At worst, it generates +** an error with "stack overflow" instead of the given message.) +*/ +LUALIB_API int luaL_error (lua_State *L, const char *fmt, ...) { + va_list argp; + va_start(argp, fmt); + luaL_where(L, 1); + lua_pushvfstring(L, fmt, argp); + va_end(argp); + lua_concat(L, 2); + return lua_error(L); +} + + +LUALIB_API int luaL_fileresult (lua_State *L, int stat, const char *fname) { + int en = errno; /* calls to Lua API may change this value */ + if (stat) { + lua_pushboolean(L, 1); + return 1; + } + else { + lua_pushnil(L); + if (fname) + lua_pushfstring(L, "%s: %s", fname, strerror(en)); + else + lua_pushstring(L, strerror(en)); + lua_pushinteger(L, en); + return 3; + } +} + + +#if !defined(l_inspectstat) /* { */ + +#if defined(LUA_USE_POSIX) + +#include + +/* +** use appropriate macros to interpret 'pclose' return status +*/ +#define l_inspectstat(stat,what) \ + if (WIFEXITED(stat)) { stat = WEXITSTATUS(stat); } \ + else if (WIFSIGNALED(stat)) { stat = WTERMSIG(stat); what = "signal"; } + +#else + +#define l_inspectstat(stat,what) /* no op */ + +#endif + +#endif /* } */ + + +LUALIB_API int luaL_execresult (lua_State *L, int stat) { + const char *what = "exit"; /* type of termination */ + if (stat == -1) /* error? */ + return luaL_fileresult(L, 0, NULL); + else { + l_inspectstat(stat, what); /* interpret result */ + if (*what == 'e' && stat == 0) /* successful termination? */ + lua_pushboolean(L, 1); + else + lua_pushnil(L); + lua_pushstring(L, what); + lua_pushinteger(L, stat); + return 3; /* return true/nil,what,code */ + } +} + +/* }====================================================== */ + + +/* +** {====================================================== +** Userdata's metatable manipulation +** ======================================================= +*/ + +LUALIB_API int luaL_newmetatable (lua_State *L, const char *tname) { + if (luaL_getmetatable(L, tname) != LUA_TNIL) /* name already in use? */ + return 0; /* leave previous value on top, but return 0 */ + lua_pop(L, 1); + lua_createtable(L, 0, 2); /* create metatable */ + lua_pushstring(L, tname); + lua_setfield(L, -2, "__name"); /* metatable.__name = tname */ + lua_pushvalue(L, -1); + lua_setfield(L, LUA_REGISTRYINDEX, tname); /* registry.name = metatable */ + return 1; +} + + +LUALIB_API void luaL_setmetatable (lua_State *L, const char *tname) { + luaL_getmetatable(L, tname); + lua_setmetatable(L, -2); +} + + +LUALIB_API void *luaL_testudata (lua_State *L, int ud, const char *tname) { + void *p = lua_touserdata(L, ud); + if (p != NULL) { /* value is a userdata? */ + if (lua_getmetatable(L, ud)) { /* does it have a metatable? */ + luaL_getmetatable(L, tname); /* get correct metatable */ + if (!lua_rawequal(L, -1, -2)) /* not the same? */ + p = NULL; /* value is a userdata with wrong metatable */ + lua_pop(L, 2); /* remove both metatables */ + return p; + } + } + return NULL; /* value is not a userdata with a metatable */ +} + + +LUALIB_API void *luaL_checkudata (lua_State *L, int ud, const char *tname) { + void *p = luaL_testudata(L, ud, tname); + if (p == NULL) typeerror(L, ud, tname); + return p; +} + +/* }====================================================== */ + + +/* +** {====================================================== +** Argument check functions +** ======================================================= +*/ + +LUALIB_API int luaL_checkoption (lua_State *L, int arg, const char *def, + const char *const lst[]) { + const char *name = (def) ? luaL_optstring(L, arg, def) : + luaL_checkstring(L, arg); + int i; + for (i=0; lst[i]; i++) + if (strcmp(lst[i], name) == 0) + return i; + return luaL_argerror(L, arg, + lua_pushfstring(L, "invalid option '%s'", name)); +} + + +/* +** Ensures the stack has at least 'space' extra slots, raising an error +** if it cannot fulfill the request. (The error handling needs a few +** extra slots to format the error message. In case of an error without +** this extra space, Lua will generate the same 'stack overflow' error, +** but without 'msg'.) +*/ +LUALIB_API void luaL_checkstack (lua_State *L, int space, const char *msg) { + if (!lua_checkstack(L, space)) { + if (msg) + luaL_error(L, "stack overflow (%s)", msg); + else + luaL_error(L, "stack overflow"); + } +} + + +LUALIB_API void luaL_checktype (lua_State *L, int arg, int t) { + if (lua_type(L, arg) != t) + tag_error(L, arg, t); +} + + +LUALIB_API void luaL_checkany (lua_State *L, int arg) { + if (lua_type(L, arg) == LUA_TNONE) + luaL_argerror(L, arg, "value expected"); +} + + +LUALIB_API const char *luaL_checklstring (lua_State *L, int arg, size_t *len) { + const char *s = lua_tolstring(L, arg, len); + if (!s) tag_error(L, arg, LUA_TSTRING); + return s; +} + + +LUALIB_API const char *luaL_optlstring (lua_State *L, int arg, + const char *def, size_t *len) { + if (lua_isnoneornil(L, arg)) { + if (len) + *len = (def ? strlen(def) : 0); + return def; + } + else return luaL_checklstring(L, arg, len); +} + + +LUALIB_API lua_Number luaL_checknumber (lua_State *L, int arg) { + int isnum; + lua_Number d = lua_tonumberx(L, arg, &isnum); + if (!isnum) + tag_error(L, arg, LUA_TNUMBER); + return d; +} + + +LUALIB_API lua_Number luaL_optnumber (lua_State *L, int arg, lua_Number def) { + return luaL_opt(L, luaL_checknumber, arg, def); +} + + +static void interror (lua_State *L, int arg) { + if (lua_isnumber(L, arg)) + luaL_argerror(L, arg, "number has no integer representation"); + else + tag_error(L, arg, LUA_TNUMBER); +} + + +LUALIB_API lua_Integer luaL_checkinteger (lua_State *L, int arg) { + int isnum; + lua_Integer d = lua_tointegerx(L, arg, &isnum); + if (!isnum) { + interror(L, arg); + } + return d; +} + + +LUALIB_API lua_Integer luaL_optinteger (lua_State *L, int arg, + lua_Integer def) { + return luaL_opt(L, luaL_checkinteger, arg, def); +} + +/* }====================================================== */ + + +/* +** {====================================================== +** Generic Buffer manipulation +** ======================================================= +*/ + +/* userdata to box arbitrary data */ +typedef struct UBox { + void *box; + size_t bsize; +} UBox; + + +static void *resizebox (lua_State *L, int idx, size_t newsize) { + void *ud; + lua_Alloc allocf = lua_getallocf(L, &ud); + UBox *box = (UBox *)lua_touserdata(L, idx); + void *temp = allocf(ud, box->box, box->bsize, newsize); + if (temp == NULL && newsize > 0) { /* allocation error? */ + resizebox(L, idx, 0); /* free buffer */ + luaL_error(L, "not enough memory for buffer allocation"); + } + box->box = temp; + box->bsize = newsize; + return temp; +} + + +static int boxgc (lua_State *L) { + resizebox(L, 1, 0); + return 0; +} + + +static void *newbox (lua_State *L, size_t newsize) { + UBox *box = (UBox *)lua_newuserdata(L, sizeof(UBox)); + box->box = NULL; + box->bsize = 0; + if (luaL_newmetatable(L, "LUABOX")) { /* creating metatable? */ + lua_pushcfunction(L, boxgc); + lua_setfield(L, -2, "__gc"); /* metatable.__gc = boxgc */ + } + lua_setmetatable(L, -2); + return resizebox(L, -1, newsize); +} + + +/* +** check whether buffer is using a userdata on the stack as a temporary +** buffer +*/ +#define buffonstack(B) ((B)->b != (B)->initb) + + +/* +** returns a pointer to a free area with at least 'sz' bytes +*/ +LUALIB_API char *luaL_prepbuffsize (luaL_Buffer *B, size_t sz) { + lua_State *L = B->L; + if (B->size - B->n < sz) { /* not enough space? */ + char *newbuff; + size_t newsize = B->size * 2; /* double buffer size */ + if (newsize - B->n < sz) /* not big enough? */ + newsize = B->n + sz; + if (newsize < B->n || newsize - B->n < sz) + luaL_error(L, "buffer too large"); + /* create larger buffer */ + if (buffonstack(B)) + newbuff = (char *)resizebox(L, -1, newsize); + else { /* no buffer yet */ + newbuff = (char *)newbox(L, newsize); + memcpy(newbuff, B->b, B->n * sizeof(char)); /* copy original content */ + } + B->b = newbuff; + B->size = newsize; + } + return &B->b[B->n]; +} + + +LUALIB_API void luaL_addlstring (luaL_Buffer *B, const char *s, size_t l) { + if (l > 0) { /* avoid 'memcpy' when 's' can be NULL */ + char *b = luaL_prepbuffsize(B, l); + memcpy(b, s, l * sizeof(char)); + luaL_addsize(B, l); + } +} + + +LUALIB_API void luaL_addstring (luaL_Buffer *B, const char *s) { + luaL_addlstring(B, s, strlen(s)); +} + + +LUALIB_API void luaL_pushresult (luaL_Buffer *B) { + lua_State *L = B->L; + lua_pushlstring(L, B->b, B->n); + if (buffonstack(B)) { + resizebox(L, -2, 0); /* delete old buffer */ + lua_remove(L, -2); /* remove its header from the stack */ + } +} + + +LUALIB_API void luaL_pushresultsize (luaL_Buffer *B, size_t sz) { + luaL_addsize(B, sz); + luaL_pushresult(B); +} + + +LUALIB_API void luaL_addvalue (luaL_Buffer *B) { + lua_State *L = B->L; + size_t l; + const char *s = lua_tolstring(L, -1, &l); + if (buffonstack(B)) + lua_insert(L, -2); /* put value below buffer */ + luaL_addlstring(B, s, l); + lua_remove(L, (buffonstack(B)) ? -2 : -1); /* remove value */ +} + + +LUALIB_API void luaL_buffinit (lua_State *L, luaL_Buffer *B) { + B->L = L; + B->b = B->initb; + B->n = 0; + B->size = LUAL_BUFFERSIZE; +} + + +LUALIB_API char *luaL_buffinitsize (lua_State *L, luaL_Buffer *B, size_t sz) { + luaL_buffinit(L, B); + return luaL_prepbuffsize(B, sz); +} + +/* }====================================================== */ + + +/* +** {====================================================== +** Reference system +** ======================================================= +*/ + +/* index of free-list header */ +#define freelist 0 + + +LUALIB_API int luaL_ref (lua_State *L, int t) { + int ref; + if (lua_isnil(L, -1)) { + lua_pop(L, 1); /* remove from stack */ + return LUA_REFNIL; /* 'nil' has a unique fixed reference */ + } + t = lua_absindex(L, t); + lua_rawgeti(L, t, freelist); /* get first free element */ + ref = (int)lua_tointeger(L, -1); /* ref = t[freelist] */ + lua_pop(L, 1); /* remove it from stack */ + if (ref != 0) { /* any free element? */ + lua_rawgeti(L, t, ref); /* remove it from list */ + lua_rawseti(L, t, freelist); /* (t[freelist] = t[ref]) */ + } + else /* no free elements */ + ref = (int)lua_rawlen(L, t) + 1; /* get a new reference */ + lua_rawseti(L, t, ref); + return ref; +} + + +LUALIB_API void luaL_unref (lua_State *L, int t, int ref) { + if (ref >= 0) { + t = lua_absindex(L, t); + lua_rawgeti(L, t, freelist); + lua_rawseti(L, t, ref); /* t[ref] = t[freelist] */ + lua_pushinteger(L, ref); + lua_rawseti(L, t, freelist); /* t[freelist] = ref */ + } +} + +/* }====================================================== */ + + +/* +** {====================================================== +** Load functions +** ======================================================= +*/ + +typedef struct LoadF { + int n; /* number of pre-read characters */ + FILE *f; /* file being read */ + char buff[BUFSIZ]; /* area for reading file */ +} LoadF; + + +static const char *getF (lua_State *L, void *ud, size_t *size) { + LoadF *lf = (LoadF *)ud; + (void)L; /* not used */ + if (lf->n > 0) { /* are there pre-read characters to be read? */ + *size = lf->n; /* return them (chars already in buffer) */ + lf->n = 0; /* no more pre-read characters */ + } + else { /* read a block from file */ + /* 'fread' can return > 0 *and* set the EOF flag. If next call to + 'getF' called 'fread', it might still wait for user input. + The next check avoids this problem. */ + if (feof(lf->f)) return NULL; + *size = fread(lf->buff, 1, sizeof(lf->buff), lf->f); /* read block */ + } + return lf->buff; +} + + +static int errfile (lua_State *L, const char *what, int fnameindex) { + const char *serr = strerror(errno); + const char *filename = lua_tostring(L, fnameindex) + 1; + lua_pushfstring(L, "cannot %s %s: %s", what, filename, serr); + lua_remove(L, fnameindex); + return LUA_ERRFILE; +} + + +static int skipBOM (LoadF *lf) { + const char *p = "\xEF\xBB\xBF"; /* UTF-8 BOM mark */ + int c; + lf->n = 0; + do { + c = getc(lf->f); + if (c == EOF || c != *(const unsigned char *)p++) return c; + lf->buff[lf->n++] = c; /* to be read by the parser */ + } while (*p != '\0'); + lf->n = 0; /* prefix matched; discard it */ + return getc(lf->f); /* return next character */ +} + + +/* +** reads the first character of file 'f' and skips an optional BOM mark +** in its beginning plus its first line if it starts with '#'. Returns +** true if it skipped the first line. In any case, '*cp' has the +** first "valid" character of the file (after the optional BOM and +** a first-line comment). +*/ +static int skipcomment (LoadF *lf, int *cp) { + int c = *cp = skipBOM(lf); + if (c == '#') { /* first line is a comment (Unix exec. file)? */ + do { /* skip first line */ + c = getc(lf->f); + } while (c != EOF && c != '\n'); + *cp = getc(lf->f); /* skip end-of-line, if present */ + return 1; /* there was a comment */ + } + else return 0; /* no comment */ +} + + +LUALIB_API int luaL_loadfilex (lua_State *L, const char *filename, + const char *mode) { + LoadF lf; + int status, readstatus; + int c; + int fnameindex = lua_gettop(L) + 1; /* index of filename on the stack */ + if (filename == NULL) { + lua_pushliteral(L, "=stdin"); + lf.f = stdin; + } + else { + lua_pushfstring(L, "@%s", filename); + lf.f = fopen(filename, "r"); + if (lf.f == NULL) return errfile(L, "open", fnameindex); + } + if (skipcomment(&lf, &c)) /* read initial portion */ + lf.buff[lf.n++] = '\n'; /* add line to correct line numbers */ + if (c == LUA_SIGNATURE[0] && filename) { /* binary file? */ + lf.f = freopen(filename, "rb", lf.f); /* reopen in binary mode */ + if (lf.f == NULL) return errfile(L, "reopen", fnameindex); + skipcomment(&lf, &c); /* re-read initial portion */ + } + if (c != EOF) + lf.buff[lf.n++] = c; /* 'c' is the first character of the stream */ + status = lua_load(L, getF, &lf, lua_tostring(L, -1), mode); + readstatus = ferror(lf.f); + if (filename) fclose(lf.f); /* close file (even in case of errors) */ + if (readstatus) { + lua_settop(L, fnameindex); /* ignore results from 'lua_load' */ + return errfile(L, "read", fnameindex); + } + lua_remove(L, fnameindex); + return status; +} + + +typedef struct LoadS { + const char *s; + size_t size; +} LoadS; + + +static const char *getS (lua_State *L, void *ud, size_t *size) { + LoadS *ls = (LoadS *)ud; + (void)L; /* not used */ + if (ls->size == 0) return NULL; + *size = ls->size; + ls->size = 0; + return ls->s; +} + + +LUALIB_API int luaL_loadbufferx (lua_State *L, const char *buff, size_t size, + const char *name, const char *mode) { + LoadS ls; + ls.s = buff; + ls.size = size; + return lua_load(L, getS, &ls, name, mode); +} + + +LUALIB_API int luaL_loadstring (lua_State *L, const char *s) { + return luaL_loadbuffer(L, s, strlen(s), s); +} + +/* }====================================================== */ + + + +LUALIB_API int luaL_getmetafield (lua_State *L, int obj, const char *event) { + if (!lua_getmetatable(L, obj)) /* no metatable? */ + return LUA_TNIL; + else { + int tt; + lua_pushstring(L, event); + tt = lua_rawget(L, -2); + if (tt == LUA_TNIL) /* is metafield nil? */ + lua_pop(L, 2); /* remove metatable and metafield */ + else + lua_remove(L, -2); /* remove only metatable */ + return tt; /* return metafield type */ + } +} + + +LUALIB_API int luaL_callmeta (lua_State *L, int obj, const char *event) { + obj = lua_absindex(L, obj); + if (luaL_getmetafield(L, obj, event) == LUA_TNIL) /* no metafield? */ + return 0; + lua_pushvalue(L, obj); + lua_call(L, 1, 1); + return 1; +} + + +LUALIB_API lua_Integer luaL_len (lua_State *L, int idx) { + lua_Integer l; + int isnum; + lua_len(L, idx); + l = lua_tointegerx(L, -1, &isnum); + if (!isnum) + luaL_error(L, "object length is not an integer"); + lua_pop(L, 1); /* remove object */ + return l; +} + + +LUALIB_API const char *luaL_tolstring (lua_State *L, int idx, size_t *len) { + if (luaL_callmeta(L, idx, "__tostring")) { /* metafield? */ + if (!lua_isstring(L, -1)) + luaL_error(L, "'__tostring' must return a string"); + } + else { + switch (lua_type(L, idx)) { + case LUA_TNUMBER: { + if (lua_isinteger(L, idx)) + lua_pushfstring(L, "%I", (LUAI_UACINT)lua_tointeger(L, idx)); + else + lua_pushfstring(L, "%f", (LUAI_UACNUMBER)lua_tonumber(L, idx)); + break; + } + case LUA_TSTRING: + lua_pushvalue(L, idx); + break; + case LUA_TBOOLEAN: + lua_pushstring(L, (lua_toboolean(L, idx) ? "true" : "false")); + break; + case LUA_TNIL: + lua_pushliteral(L, "nil"); + break; + default: { + int tt = luaL_getmetafield(L, idx, "__name"); /* try name */ + const char *kind = (tt == LUA_TSTRING) ? lua_tostring(L, -1) : + luaL_typename(L, idx); + lua_pushfstring(L, "%s: %p", kind, lua_topointer(L, idx)); + if (tt != LUA_TNIL) + lua_remove(L, -2); /* remove '__name' */ + break; + } + } + } + return lua_tolstring(L, -1, len); +} + + +/* +** {====================================================== +** Compatibility with 5.1 module functions +** ======================================================= +*/ +#if defined(LUA_COMPAT_MODULE) + +static const char *luaL_findtable (lua_State *L, int idx, + const char *fname, int szhint) { + const char *e; + if (idx) lua_pushvalue(L, idx); + do { + e = strchr(fname, '.'); + if (e == NULL) e = fname + strlen(fname); + lua_pushlstring(L, fname, e - fname); + if (lua_rawget(L, -2) == LUA_TNIL) { /* no such field? */ + lua_pop(L, 1); /* remove this nil */ + lua_createtable(L, 0, (*e == '.' ? 1 : szhint)); /* new table for field */ + lua_pushlstring(L, fname, e - fname); + lua_pushvalue(L, -2); + lua_settable(L, -4); /* set new table into field */ + } + else if (!lua_istable(L, -1)) { /* field has a non-table value? */ + lua_pop(L, 2); /* remove table and value */ + return fname; /* return problematic part of the name */ + } + lua_remove(L, -2); /* remove previous table */ + fname = e + 1; + } while (*e == '.'); + return NULL; +} + + +/* +** Count number of elements in a luaL_Reg list. +*/ +static int libsize (const luaL_Reg *l) { + int size = 0; + for (; l && l->name; l++) size++; + return size; +} + + +/* +** Find or create a module table with a given name. The function +** first looks at the LOADED table and, if that fails, try a +** global variable with that name. In any case, leaves on the stack +** the module table. +*/ +LUALIB_API void luaL_pushmodule (lua_State *L, const char *modname, + int sizehint) { + luaL_findtable(L, LUA_REGISTRYINDEX, LUA_LOADED_TABLE, 1); + if (lua_getfield(L, -1, modname) != LUA_TTABLE) { /* no LOADED[modname]? */ + lua_pop(L, 1); /* remove previous result */ + /* try global variable (and create one if it does not exist) */ + lua_pushglobaltable(L); + if (luaL_findtable(L, 0, modname, sizehint) != NULL) + luaL_error(L, "name conflict for module '%s'", modname); + lua_pushvalue(L, -1); + lua_setfield(L, -3, modname); /* LOADED[modname] = new table */ + } + lua_remove(L, -2); /* remove LOADED table */ +} + + +LUALIB_API void luaL_openlib (lua_State *L, const char *libname, + const luaL_Reg *l, int nup) { + luaL_checkversion(L); + if (libname) { + luaL_pushmodule(L, libname, libsize(l)); /* get/create library table */ + lua_insert(L, -(nup + 1)); /* move library table to below upvalues */ + } + if (l) + luaL_setfuncs(L, l, nup); + else + lua_pop(L, nup); /* remove upvalues */ +} + +#endif +/* }====================================================== */ + +/* +** set functions from list 'l' into table at top - 'nup'; each +** function gets the 'nup' elements at the top as upvalues. +** Returns with only the table at the stack. +*/ +LUALIB_API void luaL_setfuncs (lua_State *L, const luaL_Reg *l, int nup) { + luaL_checkstack(L, nup, "too many upvalues"); + for (; l->name != NULL; l++) { /* fill the table with given functions */ + int i; + for (i = 0; i < nup; i++) /* copy upvalues to the top */ + lua_pushvalue(L, -nup); + lua_pushcclosure(L, l->func, nup); /* closure with those upvalues */ + lua_setfield(L, -(nup + 2), l->name); + } + lua_pop(L, nup); /* remove upvalues */ +} + + +/* +** ensure that stack[idx][fname] has a table and push that table +** into the stack +*/ +LUALIB_API int luaL_getsubtable (lua_State *L, int idx, const char *fname) { + if (lua_getfield(L, idx, fname) == LUA_TTABLE) + return 1; /* table already there */ + else { + lua_pop(L, 1); /* remove previous result */ + idx = lua_absindex(L, idx); + lua_newtable(L); + lua_pushvalue(L, -1); /* copy to be left at top */ + lua_setfield(L, idx, fname); /* assign new table to field */ + return 0; /* false, because did not find table there */ + } +} + + +/* +** Stripped-down 'require': After checking "loaded" table, calls 'openf' +** to open a module, registers the result in 'package.loaded' table and, +** if 'glb' is true, also registers the result in the global table. +** Leaves resulting module on the top. +*/ +LUALIB_API void luaL_requiref (lua_State *L, const char *modname, + lua_CFunction openf, int glb) { + luaL_getsubtable(L, LUA_REGISTRYINDEX, LUA_LOADED_TABLE); + lua_getfield(L, -1, modname); /* LOADED[modname] */ + if (!lua_toboolean(L, -1)) { /* package not already loaded? */ + lua_pop(L, 1); /* remove field */ + lua_pushcfunction(L, openf); + lua_pushstring(L, modname); /* argument to open function */ + lua_call(L, 1, 1); /* call 'openf' to open module */ + lua_pushvalue(L, -1); /* make copy of module (call result) */ + lua_setfield(L, -3, modname); /* LOADED[modname] = module */ + } + lua_remove(L, -2); /* remove LOADED table */ + if (glb) { + lua_pushvalue(L, -1); /* copy of module */ + lua_setglobal(L, modname); /* _G[modname] = module */ + } +} + + +LUALIB_API const char *luaL_gsub (lua_State *L, const char *s, const char *p, + const char *r) { + const char *wild; + size_t l = strlen(p); + luaL_Buffer b; + luaL_buffinit(L, &b); + while ((wild = strstr(s, p)) != NULL) { + luaL_addlstring(&b, s, wild - s); /* push prefix */ + luaL_addstring(&b, r); /* push replacement in place of pattern */ + s = wild + l; /* continue after 'p' */ + } + luaL_addstring(&b, s); /* push last suffix */ + luaL_pushresult(&b); + return lua_tostring(L, -1); +} + + +static void *l_alloc (void *ud, void *ptr, size_t osize, size_t nsize) { + (void)ud; (void)osize; /* not used */ + if (nsize == 0) { + free(ptr); + return NULL; + } + else + return realloc(ptr, nsize); +} + + +static int panic (lua_State *L) { + lua_writestringerror("PANIC: unprotected error in call to Lua API (%s)\n", + lua_tostring(L, -1)); + return 0; /* return to Lua to abort */ +} + + +LUALIB_API lua_State *luaL_newstate (void) { + lua_State *L = lua_newstate(l_alloc, NULL); + if (L) lua_atpanic(L, &panic); + return L; +} + + +LUALIB_API void luaL_checkversion_ (lua_State *L, lua_Number ver, size_t sz) { + const lua_Number *v = lua_version(L); + if (sz != LUAL_NUMSIZES) /* check numeric types */ + luaL_error(L, "core and library have incompatible numeric types"); + if (v != lua_version(NULL)) + luaL_error(L, "multiple Lua VMs detected"); + else if (*v != ver) + luaL_error(L, "version mismatch: app. needs %f, Lua core provides %f", + (LUAI_UACNUMBER)ver, (LUAI_UACNUMBER)*v); +} + diff --git a/3rd/lua-5.3.4/lauxlib.h b/3rd/lua-5.3.4/lauxlib.h new file mode 100644 index 0000000..9a2e66a --- /dev/null +++ b/3rd/lua-5.3.4/lauxlib.h @@ -0,0 +1,264 @@ +/* +** $Id: lauxlib.h,v 1.131 2016/12/06 14:54:31 roberto Exp $ +** Auxiliary functions for building Lua libraries +** See Copyright Notice in lua.h +*/ + + +#ifndef lauxlib_h +#define lauxlib_h + + +#include +#include + +#include "lua.h" + + + +/* extra error code for 'luaL_loadfilex' */ +#define LUA_ERRFILE (LUA_ERRERR+1) + + +/* key, in the registry, for table of loaded modules */ +#define LUA_LOADED_TABLE "_LOADED" + + +/* key, in the registry, for table of preloaded loaders */ +#define LUA_PRELOAD_TABLE "_PRELOAD" + + +typedef struct luaL_Reg { + const char *name; + lua_CFunction func; +} luaL_Reg; + + +#define LUAL_NUMSIZES (sizeof(lua_Integer)*16 + sizeof(lua_Number)) + +LUALIB_API void (luaL_checkversion_) (lua_State *L, lua_Number ver, size_t sz); +#define luaL_checkversion(L) \ + luaL_checkversion_(L, LUA_VERSION_NUM, LUAL_NUMSIZES) + +LUALIB_API int (luaL_getmetafield) (lua_State *L, int obj, const char *e); +LUALIB_API int (luaL_callmeta) (lua_State *L, int obj, const char *e); +LUALIB_API const char *(luaL_tolstring) (lua_State *L, int idx, size_t *len); +LUALIB_API int (luaL_argerror) (lua_State *L, int arg, const char *extramsg); +LUALIB_API const char *(luaL_checklstring) (lua_State *L, int arg, + size_t *l); +LUALIB_API const char *(luaL_optlstring) (lua_State *L, int arg, + const char *def, size_t *l); +LUALIB_API lua_Number (luaL_checknumber) (lua_State *L, int arg); +LUALIB_API lua_Number (luaL_optnumber) (lua_State *L, int arg, lua_Number def); + +LUALIB_API lua_Integer (luaL_checkinteger) (lua_State *L, int arg); +LUALIB_API lua_Integer (luaL_optinteger) (lua_State *L, int arg, + lua_Integer def); + +LUALIB_API void (luaL_checkstack) (lua_State *L, int sz, const char *msg); +LUALIB_API void (luaL_checktype) (lua_State *L, int arg, int t); +LUALIB_API void (luaL_checkany) (lua_State *L, int arg); + +LUALIB_API int (luaL_newmetatable) (lua_State *L, const char *tname); +LUALIB_API void (luaL_setmetatable) (lua_State *L, const char *tname); +LUALIB_API void *(luaL_testudata) (lua_State *L, int ud, const char *tname); +LUALIB_API void *(luaL_checkudata) (lua_State *L, int ud, const char *tname); + +LUALIB_API void (luaL_where) (lua_State *L, int lvl); +LUALIB_API int (luaL_error) (lua_State *L, const char *fmt, ...); + +LUALIB_API int (luaL_checkoption) (lua_State *L, int arg, const char *def, + const char *const lst[]); + +LUALIB_API int (luaL_fileresult) (lua_State *L, int stat, const char *fname); +LUALIB_API int (luaL_execresult) (lua_State *L, int stat); + +/* predefined references */ +#define LUA_NOREF (-2) +#define LUA_REFNIL (-1) + +LUALIB_API int (luaL_ref) (lua_State *L, int t); +LUALIB_API void (luaL_unref) (lua_State *L, int t, int ref); + +LUALIB_API int (luaL_loadfilex) (lua_State *L, const char *filename, + const char *mode); + +#define luaL_loadfile(L,f) luaL_loadfilex(L,f,NULL) + +LUALIB_API int (luaL_loadbufferx) (lua_State *L, const char *buff, size_t sz, + const char *name, const char *mode); +LUALIB_API int (luaL_loadstring) (lua_State *L, const char *s); + +LUALIB_API lua_State *(luaL_newstate) (void); + +LUALIB_API lua_Integer (luaL_len) (lua_State *L, int idx); + +LUALIB_API const char *(luaL_gsub) (lua_State *L, const char *s, const char *p, + const char *r); + +LUALIB_API void (luaL_setfuncs) (lua_State *L, const luaL_Reg *l, int nup); + +LUALIB_API int (luaL_getsubtable) (lua_State *L, int idx, const char *fname); + +LUALIB_API void (luaL_traceback) (lua_State *L, lua_State *L1, + const char *msg, int level); + +LUALIB_API void (luaL_requiref) (lua_State *L, const char *modname, + lua_CFunction openf, int glb); + +/* +** =============================================================== +** some useful macros +** =============================================================== +*/ + + +#define luaL_newlibtable(L,l) \ + lua_createtable(L, 0, sizeof(l)/sizeof((l)[0]) - 1) + +#define luaL_newlib(L,l) \ + (luaL_checkversion(L), luaL_newlibtable(L,l), luaL_setfuncs(L,l,0)) + +#define luaL_argcheck(L, cond,arg,extramsg) \ + ((void)((cond) || luaL_argerror(L, (arg), (extramsg)))) +#define luaL_checkstring(L,n) (luaL_checklstring(L, (n), NULL)) +#define luaL_optstring(L,n,d) (luaL_optlstring(L, (n), (d), NULL)) + +#define luaL_typename(L,i) lua_typename(L, lua_type(L,(i))) + +#define luaL_dofile(L, fn) \ + (luaL_loadfile(L, fn) || lua_pcall(L, 0, LUA_MULTRET, 0)) + +#define luaL_dostring(L, s) \ + (luaL_loadstring(L, s) || lua_pcall(L, 0, LUA_MULTRET, 0)) + +#define luaL_getmetatable(L,n) (lua_getfield(L, LUA_REGISTRYINDEX, (n))) + +#define luaL_opt(L,f,n,d) (lua_isnoneornil(L,(n)) ? (d) : f(L,(n))) + +#define luaL_loadbuffer(L,s,sz,n) luaL_loadbufferx(L,s,sz,n,NULL) + + +/* +** {====================================================== +** Generic Buffer manipulation +** ======================================================= +*/ + +typedef struct luaL_Buffer { + char *b; /* buffer address */ + size_t size; /* buffer size */ + size_t n; /* number of characters in buffer */ + lua_State *L; + char initb[LUAL_BUFFERSIZE]; /* initial buffer */ +} luaL_Buffer; + + +#define luaL_addchar(B,c) \ + ((void)((B)->n < (B)->size || luaL_prepbuffsize((B), 1)), \ + ((B)->b[(B)->n++] = (c))) + +#define luaL_addsize(B,s) ((B)->n += (s)) + +LUALIB_API void (luaL_buffinit) (lua_State *L, luaL_Buffer *B); +LUALIB_API char *(luaL_prepbuffsize) (luaL_Buffer *B, size_t sz); +LUALIB_API void (luaL_addlstring) (luaL_Buffer *B, const char *s, size_t l); +LUALIB_API void (luaL_addstring) (luaL_Buffer *B, const char *s); +LUALIB_API void (luaL_addvalue) (luaL_Buffer *B); +LUALIB_API void (luaL_pushresult) (luaL_Buffer *B); +LUALIB_API void (luaL_pushresultsize) (luaL_Buffer *B, size_t sz); +LUALIB_API char *(luaL_buffinitsize) (lua_State *L, luaL_Buffer *B, size_t sz); + +#define luaL_prepbuffer(B) luaL_prepbuffsize(B, LUAL_BUFFERSIZE) + +/* }====================================================== */ + + + +/* +** {====================================================== +** File handles for IO library +** ======================================================= +*/ + +/* +** A file handle is a userdata with metatable 'LUA_FILEHANDLE' and +** initial structure 'luaL_Stream' (it may contain other fields +** after that initial structure). +*/ + +#define LUA_FILEHANDLE "FILE*" + + +typedef struct luaL_Stream { + FILE *f; /* stream (NULL for incompletely created streams) */ + lua_CFunction closef; /* to close stream (NULL for closed streams) */ +} luaL_Stream; + +/* }====================================================== */ + + + +/* compatibility with old module system */ +#if defined(LUA_COMPAT_MODULE) + +LUALIB_API void (luaL_pushmodule) (lua_State *L, const char *modname, + int sizehint); +LUALIB_API void (luaL_openlib) (lua_State *L, const char *libname, + const luaL_Reg *l, int nup); + +#define luaL_register(L,n,l) (luaL_openlib(L,(n),(l),0)) + +#endif + + +/* +** {================================================================== +** "Abstraction Layer" for basic report of messages and errors +** =================================================================== +*/ + +/* print a string */ +#if !defined(lua_writestring) +#define lua_writestring(s,l) fwrite((s), sizeof(char), (l), stdout) +#endif + +/* print a newline and flush the output */ +#if !defined(lua_writeline) +#define lua_writeline() (lua_writestring("\n", 1), fflush(stdout)) +#endif + +/* print an error message */ +#if !defined(lua_writestringerror) +#define lua_writestringerror(s,p) \ + (fprintf(stderr, (s), (p)), fflush(stderr)) +#endif + +/* }================================================================== */ + + +/* +** {============================================================ +** Compatibility with deprecated conversions +** ============================================================= +*/ +#if defined(LUA_COMPAT_APIINTCASTS) + +#define luaL_checkunsigned(L,a) ((lua_Unsigned)luaL_checkinteger(L,a)) +#define luaL_optunsigned(L,a,d) \ + ((lua_Unsigned)luaL_optinteger(L,a,(lua_Integer)(d))) + +#define luaL_checkint(L,n) ((int)luaL_checkinteger(L, (n))) +#define luaL_optint(L,n,d) ((int)luaL_optinteger(L, (n), (d))) + +#define luaL_checklong(L,n) ((long)luaL_checkinteger(L, (n))) +#define luaL_optlong(L,n,d) ((long)luaL_optinteger(L, (n), (d))) + +#endif +/* }============================================================ */ + + + +#endif + + diff --git a/3rd/lua-5.3.4/lbaselib.c b/3rd/lua-5.3.4/lbaselib.c new file mode 100644 index 0000000..08523e6 --- /dev/null +++ b/3rd/lua-5.3.4/lbaselib.c @@ -0,0 +1,498 @@ +/* +** $Id: lbaselib.c,v 1.314 2016/09/05 19:06:34 roberto Exp $ +** Basic library +** See Copyright Notice in lua.h +*/ + +#define lbaselib_c +#define LUA_LIB + +#include "lprefix.h" + + +#include +#include +#include +#include + +#include "lua.h" + +#include "lauxlib.h" +#include "lualib.h" + + +static int luaB_print (lua_State *L) { + int n = lua_gettop(L); /* number of arguments */ + int i; + lua_getglobal(L, "tostring"); + for (i=1; i<=n; i++) { + const char *s; + size_t l; + lua_pushvalue(L, -1); /* function to be called */ + lua_pushvalue(L, i); /* value to print */ + lua_call(L, 1, 1); + s = lua_tolstring(L, -1, &l); /* get result */ + if (s == NULL) + return luaL_error(L, "'tostring' must return a string to 'print'"); + if (i>1) lua_writestring("\t", 1); + lua_writestring(s, l); + lua_pop(L, 1); /* pop result */ + } + lua_writeline(); + return 0; +} + + +#define SPACECHARS " \f\n\r\t\v" + +static const char *b_str2int (const char *s, int base, lua_Integer *pn) { + lua_Unsigned n = 0; + int neg = 0; + s += strspn(s, SPACECHARS); /* skip initial spaces */ + if (*s == '-') { s++; neg = 1; } /* handle signal */ + else if (*s == '+') s++; + if (!isalnum((unsigned char)*s)) /* no digit? */ + return NULL; + do { + int digit = (isdigit((unsigned char)*s)) ? *s - '0' + : (toupper((unsigned char)*s) - 'A') + 10; + if (digit >= base) return NULL; /* invalid numeral */ + n = n * base + digit; + s++; + } while (isalnum((unsigned char)*s)); + s += strspn(s, SPACECHARS); /* skip trailing spaces */ + *pn = (lua_Integer)((neg) ? (0u - n) : n); + return s; +} + + +static int luaB_tonumber (lua_State *L) { + if (lua_isnoneornil(L, 2)) { /* standard conversion? */ + luaL_checkany(L, 1); + if (lua_type(L, 1) == LUA_TNUMBER) { /* already a number? */ + lua_settop(L, 1); /* yes; return it */ + return 1; + } + else { + size_t l; + const char *s = lua_tolstring(L, 1, &l); + if (s != NULL && lua_stringtonumber(L, s) == l + 1) + return 1; /* successful conversion to number */ + /* else not a number */ + } + } + else { + size_t l; + const char *s; + lua_Integer n = 0; /* to avoid warnings */ + lua_Integer base = luaL_checkinteger(L, 2); + luaL_checktype(L, 1, LUA_TSTRING); /* no numbers as strings */ + s = lua_tolstring(L, 1, &l); + luaL_argcheck(L, 2 <= base && base <= 36, 2, "base out of range"); + if (b_str2int(s, (int)base, &n) == s + l) { + lua_pushinteger(L, n); + return 1; + } /* else not a number */ + } /* else not a number */ + lua_pushnil(L); /* not a number */ + return 1; +} + + +static int luaB_error (lua_State *L) { + int level = (int)luaL_optinteger(L, 2, 1); + lua_settop(L, 1); + if (lua_type(L, 1) == LUA_TSTRING && level > 0) { + luaL_where(L, level); /* add extra information */ + lua_pushvalue(L, 1); + lua_concat(L, 2); + } + return lua_error(L); +} + + +static int luaB_getmetatable (lua_State *L) { + luaL_checkany(L, 1); + if (!lua_getmetatable(L, 1)) { + lua_pushnil(L); + return 1; /* no metatable */ + } + luaL_getmetafield(L, 1, "__metatable"); + return 1; /* returns either __metatable field (if present) or metatable */ +} + + +static int luaB_setmetatable (lua_State *L) { + int t = lua_type(L, 2); + luaL_checktype(L, 1, LUA_TTABLE); + luaL_argcheck(L, t == LUA_TNIL || t == LUA_TTABLE, 2, + "nil or table expected"); + if (luaL_getmetafield(L, 1, "__metatable") != LUA_TNIL) + return luaL_error(L, "cannot change a protected metatable"); + lua_settop(L, 2); + lua_setmetatable(L, 1); + return 1; +} + + +static int luaB_rawequal (lua_State *L) { + luaL_checkany(L, 1); + luaL_checkany(L, 2); + lua_pushboolean(L, lua_rawequal(L, 1, 2)); + return 1; +} + + +static int luaB_rawlen (lua_State *L) { + int t = lua_type(L, 1); + luaL_argcheck(L, t == LUA_TTABLE || t == LUA_TSTRING, 1, + "table or string expected"); + lua_pushinteger(L, lua_rawlen(L, 1)); + return 1; +} + + +static int luaB_rawget (lua_State *L) { + luaL_checktype(L, 1, LUA_TTABLE); + luaL_checkany(L, 2); + lua_settop(L, 2); + lua_rawget(L, 1); + return 1; +} + +static int luaB_rawset (lua_State *L) { + luaL_checktype(L, 1, LUA_TTABLE); + luaL_checkany(L, 2); + luaL_checkany(L, 3); + lua_settop(L, 3); + lua_rawset(L, 1); + return 1; +} + + +static int luaB_collectgarbage (lua_State *L) { + static const char *const opts[] = {"stop", "restart", "collect", + "count", "step", "setpause", "setstepmul", + "isrunning", NULL}; + static const int optsnum[] = {LUA_GCSTOP, LUA_GCRESTART, LUA_GCCOLLECT, + LUA_GCCOUNT, LUA_GCSTEP, LUA_GCSETPAUSE, LUA_GCSETSTEPMUL, + LUA_GCISRUNNING}; + int o = optsnum[luaL_checkoption(L, 1, "collect", opts)]; + int ex = (int)luaL_optinteger(L, 2, 0); + int res = lua_gc(L, o, ex); + switch (o) { + case LUA_GCCOUNT: { + int b = lua_gc(L, LUA_GCCOUNTB, 0); + lua_pushnumber(L, (lua_Number)res + ((lua_Number)b/1024)); + return 1; + } + case LUA_GCSTEP: case LUA_GCISRUNNING: { + lua_pushboolean(L, res); + return 1; + } + default: { + lua_pushinteger(L, res); + return 1; + } + } +} + + +static int luaB_type (lua_State *L) { + int t = lua_type(L, 1); + luaL_argcheck(L, t != LUA_TNONE, 1, "value expected"); + lua_pushstring(L, lua_typename(L, t)); + return 1; +} + + +static int pairsmeta (lua_State *L, const char *method, int iszero, + lua_CFunction iter) { + luaL_checkany(L, 1); + if (luaL_getmetafield(L, 1, method) == LUA_TNIL) { /* no metamethod? */ + lua_pushcfunction(L, iter); /* will return generator, */ + lua_pushvalue(L, 1); /* state, */ + if (iszero) lua_pushinteger(L, 0); /* and initial value */ + else lua_pushnil(L); + } + else { + lua_pushvalue(L, 1); /* argument 'self' to metamethod */ + lua_call(L, 1, 3); /* get 3 values from metamethod */ + } + return 3; +} + + +static int luaB_next (lua_State *L) { + luaL_checktype(L, 1, LUA_TTABLE); + lua_settop(L, 2); /* create a 2nd argument if there isn't one */ + if (lua_next(L, 1)) + return 2; + else { + lua_pushnil(L); + return 1; + } +} + + +static int luaB_pairs (lua_State *L) { + return pairsmeta(L, "__pairs", 0, luaB_next); +} + + +/* +** Traversal function for 'ipairs' +*/ +static int ipairsaux (lua_State *L) { + lua_Integer i = luaL_checkinteger(L, 2) + 1; + lua_pushinteger(L, i); + return (lua_geti(L, 1, i) == LUA_TNIL) ? 1 : 2; +} + + +/* +** 'ipairs' function. Returns 'ipairsaux', given "table", 0. +** (The given "table" may not be a table.) +*/ +static int luaB_ipairs (lua_State *L) { +#if defined(LUA_COMPAT_IPAIRS) + return pairsmeta(L, "__ipairs", 1, ipairsaux); +#else + luaL_checkany(L, 1); + lua_pushcfunction(L, ipairsaux); /* iteration function */ + lua_pushvalue(L, 1); /* state */ + lua_pushinteger(L, 0); /* initial value */ + return 3; +#endif +} + + +static int load_aux (lua_State *L, int status, int envidx) { + if (status == LUA_OK) { + if (envidx != 0) { /* 'env' parameter? */ + lua_pushvalue(L, envidx); /* environment for loaded function */ + if (!lua_setupvalue(L, -2, 1)) /* set it as 1st upvalue */ + lua_pop(L, 1); /* remove 'env' if not used by previous call */ + } + return 1; + } + else { /* error (message is on top of the stack) */ + lua_pushnil(L); + lua_insert(L, -2); /* put before error message */ + return 2; /* return nil plus error message */ + } +} + + +static int luaB_loadfile (lua_State *L) { + const char *fname = luaL_optstring(L, 1, NULL); + const char *mode = luaL_optstring(L, 2, NULL); + int env = (!lua_isnone(L, 3) ? 3 : 0); /* 'env' index or 0 if no 'env' */ + int status = luaL_loadfilex(L, fname, mode); + return load_aux(L, status, env); +} + + +/* +** {====================================================== +** Generic Read function +** ======================================================= +*/ + + +/* +** reserved slot, above all arguments, to hold a copy of the returned +** string to avoid it being collected while parsed. 'load' has four +** optional arguments (chunk, source name, mode, and environment). +*/ +#define RESERVEDSLOT 5 + + +/* +** Reader for generic 'load' function: 'lua_load' uses the +** stack for internal stuff, so the reader cannot change the +** stack top. Instead, it keeps its resulting string in a +** reserved slot inside the stack. +*/ +static const char *generic_reader (lua_State *L, void *ud, size_t *size) { + (void)(ud); /* not used */ + luaL_checkstack(L, 2, "too many nested functions"); + lua_pushvalue(L, 1); /* get function */ + lua_call(L, 0, 1); /* call it */ + if (lua_isnil(L, -1)) { + lua_pop(L, 1); /* pop result */ + *size = 0; + return NULL; + } + else if (!lua_isstring(L, -1)) + luaL_error(L, "reader function must return a string"); + lua_replace(L, RESERVEDSLOT); /* save string in reserved slot */ + return lua_tolstring(L, RESERVEDSLOT, size); +} + + +static int luaB_load (lua_State *L) { + int status; + size_t l; + const char *s = lua_tolstring(L, 1, &l); + const char *mode = luaL_optstring(L, 3, "bt"); + int env = (!lua_isnone(L, 4) ? 4 : 0); /* 'env' index or 0 if no 'env' */ + if (s != NULL) { /* loading a string? */ + const char *chunkname = luaL_optstring(L, 2, s); + status = luaL_loadbufferx(L, s, l, chunkname, mode); + } + else { /* loading from a reader function */ + const char *chunkname = luaL_optstring(L, 2, "=(load)"); + luaL_checktype(L, 1, LUA_TFUNCTION); + lua_settop(L, RESERVEDSLOT); /* create reserved slot */ + status = lua_load(L, generic_reader, NULL, chunkname, mode); + } + return load_aux(L, status, env); +} + +/* }====================================================== */ + + +static int dofilecont (lua_State *L, int d1, lua_KContext d2) { + (void)d1; (void)d2; /* only to match 'lua_Kfunction' prototype */ + return lua_gettop(L) - 1; +} + + +static int luaB_dofile (lua_State *L) { + const char *fname = luaL_optstring(L, 1, NULL); + lua_settop(L, 1); + if (luaL_loadfile(L, fname) != LUA_OK) + return lua_error(L); + lua_callk(L, 0, LUA_MULTRET, 0, dofilecont); + return dofilecont(L, 0, 0); +} + + +static int luaB_assert (lua_State *L) { + if (lua_toboolean(L, 1)) /* condition is true? */ + return lua_gettop(L); /* return all arguments */ + else { /* error */ + luaL_checkany(L, 1); /* there must be a condition */ + lua_remove(L, 1); /* remove it */ + lua_pushliteral(L, "assertion failed!"); /* default message */ + lua_settop(L, 1); /* leave only message (default if no other one) */ + return luaB_error(L); /* call 'error' */ + } +} + + +static int luaB_select (lua_State *L) { + int n = lua_gettop(L); + if (lua_type(L, 1) == LUA_TSTRING && *lua_tostring(L, 1) == '#') { + lua_pushinteger(L, n-1); + return 1; + } + else { + lua_Integer i = luaL_checkinteger(L, 1); + if (i < 0) i = n + i; + else if (i > n) i = n; + luaL_argcheck(L, 1 <= i, 1, "index out of range"); + return n - (int)i; + } +} + + +/* +** Continuation function for 'pcall' and 'xpcall'. Both functions +** already pushed a 'true' before doing the call, so in case of success +** 'finishpcall' only has to return everything in the stack minus +** 'extra' values (where 'extra' is exactly the number of items to be +** ignored). +*/ +static int finishpcall (lua_State *L, int status, lua_KContext extra) { + if (status != LUA_OK && status != LUA_YIELD) { /* error? */ + lua_pushboolean(L, 0); /* first result (false) */ + lua_pushvalue(L, -2); /* error message */ + return 2; /* return false, msg */ + } + else + return lua_gettop(L) - (int)extra; /* return all results */ +} + + +static int luaB_pcall (lua_State *L) { + int status; + luaL_checkany(L, 1); + lua_pushboolean(L, 1); /* first result if no errors */ + lua_insert(L, 1); /* put it in place */ + status = lua_pcallk(L, lua_gettop(L) - 2, LUA_MULTRET, 0, 0, finishpcall); + return finishpcall(L, status, 0); +} + + +/* +** Do a protected call with error handling. After 'lua_rotate', the +** stack will have ; so, the function passes +** 2 to 'finishpcall' to skip the 2 first values when returning results. +*/ +static int luaB_xpcall (lua_State *L) { + int status; + int n = lua_gettop(L); + luaL_checktype(L, 2, LUA_TFUNCTION); /* check error function */ + lua_pushboolean(L, 1); /* first result */ + lua_pushvalue(L, 1); /* function */ + lua_rotate(L, 3, 2); /* move them below function's arguments */ + status = lua_pcallk(L, n - 2, LUA_MULTRET, 2, 2, finishpcall); + return finishpcall(L, status, 2); +} + + +static int luaB_tostring (lua_State *L) { + luaL_checkany(L, 1); + luaL_tolstring(L, 1, NULL); + return 1; +} + + +static const luaL_Reg base_funcs[] = { + {"assert", luaB_assert}, + {"collectgarbage", luaB_collectgarbage}, + {"dofile", luaB_dofile}, + {"error", luaB_error}, + {"getmetatable", luaB_getmetatable}, + {"ipairs", luaB_ipairs}, + {"loadfile", luaB_loadfile}, + {"load", luaB_load}, +#if defined(LUA_COMPAT_LOADSTRING) + {"loadstring", luaB_load}, +#endif + {"next", luaB_next}, + {"pairs", luaB_pairs}, + {"pcall", luaB_pcall}, + {"print", luaB_print}, + {"rawequal", luaB_rawequal}, + {"rawlen", luaB_rawlen}, + {"rawget", luaB_rawget}, + {"rawset", luaB_rawset}, + {"select", luaB_select}, + {"setmetatable", luaB_setmetatable}, + {"tonumber", luaB_tonumber}, + {"tostring", luaB_tostring}, + {"type", luaB_type}, + {"xpcall", luaB_xpcall}, + /* placeholders */ + {"_G", NULL}, + {"_VERSION", NULL}, + {NULL, NULL} +}; + + +LUAMOD_API int luaopen_base (lua_State *L) { + /* open lib into global table */ + lua_pushglobaltable(L); + luaL_setfuncs(L, base_funcs, 0); + /* set global _G */ + lua_pushvalue(L, -1); + lua_setfield(L, -2, "_G"); + /* set global _VERSION */ + lua_pushliteral(L, LUA_VERSION); + lua_setfield(L, -2, "_VERSION"); + return 1; +} + diff --git a/3rd/lua-5.3.4/lbitlib.c b/3rd/lua-5.3.4/lbitlib.c new file mode 100644 index 0000000..1cb1d5b --- /dev/null +++ b/3rd/lua-5.3.4/lbitlib.c @@ -0,0 +1,233 @@ +/* +** $Id: lbitlib.c,v 1.30 2015/11/11 19:08:09 roberto Exp $ +** Standard library for bitwise operations +** See Copyright Notice in lua.h +*/ + +#define lbitlib_c +#define LUA_LIB + +#include "lprefix.h" + + +#include "lua.h" + +#include "lauxlib.h" +#include "lualib.h" + + +#if defined(LUA_COMPAT_BITLIB) /* { */ + + +#define pushunsigned(L,n) lua_pushinteger(L, (lua_Integer)(n)) +#define checkunsigned(L,i) ((lua_Unsigned)luaL_checkinteger(L,i)) + + +/* number of bits to consider in a number */ +#if !defined(LUA_NBITS) +#define LUA_NBITS 32 +#endif + + +/* +** a lua_Unsigned with its first LUA_NBITS bits equal to 1. (Shift must +** be made in two parts to avoid problems when LUA_NBITS is equal to the +** number of bits in a lua_Unsigned.) +*/ +#define ALLONES (~(((~(lua_Unsigned)0) << (LUA_NBITS - 1)) << 1)) + + +/* macro to trim extra bits */ +#define trim(x) ((x) & ALLONES) + + +/* builds a number with 'n' ones (1 <= n <= LUA_NBITS) */ +#define mask(n) (~((ALLONES << 1) << ((n) - 1))) + + + +static lua_Unsigned andaux (lua_State *L) { + int i, n = lua_gettop(L); + lua_Unsigned r = ~(lua_Unsigned)0; + for (i = 1; i <= n; i++) + r &= checkunsigned(L, i); + return trim(r); +} + + +static int b_and (lua_State *L) { + lua_Unsigned r = andaux(L); + pushunsigned(L, r); + return 1; +} + + +static int b_test (lua_State *L) { + lua_Unsigned r = andaux(L); + lua_pushboolean(L, r != 0); + return 1; +} + + +static int b_or (lua_State *L) { + int i, n = lua_gettop(L); + lua_Unsigned r = 0; + for (i = 1; i <= n; i++) + r |= checkunsigned(L, i); + pushunsigned(L, trim(r)); + return 1; +} + + +static int b_xor (lua_State *L) { + int i, n = lua_gettop(L); + lua_Unsigned r = 0; + for (i = 1; i <= n; i++) + r ^= checkunsigned(L, i); + pushunsigned(L, trim(r)); + return 1; +} + + +static int b_not (lua_State *L) { + lua_Unsigned r = ~checkunsigned(L, 1); + pushunsigned(L, trim(r)); + return 1; +} + + +static int b_shift (lua_State *L, lua_Unsigned r, lua_Integer i) { + if (i < 0) { /* shift right? */ + i = -i; + r = trim(r); + if (i >= LUA_NBITS) r = 0; + else r >>= i; + } + else { /* shift left */ + if (i >= LUA_NBITS) r = 0; + else r <<= i; + r = trim(r); + } + pushunsigned(L, r); + return 1; +} + + +static int b_lshift (lua_State *L) { + return b_shift(L, checkunsigned(L, 1), luaL_checkinteger(L, 2)); +} + + +static int b_rshift (lua_State *L) { + return b_shift(L, checkunsigned(L, 1), -luaL_checkinteger(L, 2)); +} + + +static int b_arshift (lua_State *L) { + lua_Unsigned r = checkunsigned(L, 1); + lua_Integer i = luaL_checkinteger(L, 2); + if (i < 0 || !(r & ((lua_Unsigned)1 << (LUA_NBITS - 1)))) + return b_shift(L, r, -i); + else { /* arithmetic shift for 'negative' number */ + if (i >= LUA_NBITS) r = ALLONES; + else + r = trim((r >> i) | ~(trim(~(lua_Unsigned)0) >> i)); /* add signal bit */ + pushunsigned(L, r); + return 1; + } +} + + +static int b_rot (lua_State *L, lua_Integer d) { + lua_Unsigned r = checkunsigned(L, 1); + int i = d & (LUA_NBITS - 1); /* i = d % NBITS */ + r = trim(r); + if (i != 0) /* avoid undefined shift of LUA_NBITS when i == 0 */ + r = (r << i) | (r >> (LUA_NBITS - i)); + pushunsigned(L, trim(r)); + return 1; +} + + +static int b_lrot (lua_State *L) { + return b_rot(L, luaL_checkinteger(L, 2)); +} + + +static int b_rrot (lua_State *L) { + return b_rot(L, -luaL_checkinteger(L, 2)); +} + + +/* +** get field and width arguments for field-manipulation functions, +** checking whether they are valid. +** ('luaL_error' called without 'return' to avoid later warnings about +** 'width' being used uninitialized.) +*/ +static int fieldargs (lua_State *L, int farg, int *width) { + lua_Integer f = luaL_checkinteger(L, farg); + lua_Integer w = luaL_optinteger(L, farg + 1, 1); + luaL_argcheck(L, 0 <= f, farg, "field cannot be negative"); + luaL_argcheck(L, 0 < w, farg + 1, "width must be positive"); + if (f + w > LUA_NBITS) + luaL_error(L, "trying to access non-existent bits"); + *width = (int)w; + return (int)f; +} + + +static int b_extract (lua_State *L) { + int w; + lua_Unsigned r = trim(checkunsigned(L, 1)); + int f = fieldargs(L, 2, &w); + r = (r >> f) & mask(w); + pushunsigned(L, r); + return 1; +} + + +static int b_replace (lua_State *L) { + int w; + lua_Unsigned r = trim(checkunsigned(L, 1)); + lua_Unsigned v = trim(checkunsigned(L, 2)); + int f = fieldargs(L, 3, &w); + lua_Unsigned m = mask(w); + r = (r & ~(m << f)) | ((v & m) << f); + pushunsigned(L, r); + return 1; +} + + +static const luaL_Reg bitlib[] = { + {"arshift", b_arshift}, + {"band", b_and}, + {"bnot", b_not}, + {"bor", b_or}, + {"bxor", b_xor}, + {"btest", b_test}, + {"extract", b_extract}, + {"lrotate", b_lrot}, + {"lshift", b_lshift}, + {"replace", b_replace}, + {"rrotate", b_rrot}, + {"rshift", b_rshift}, + {NULL, NULL} +}; + + + +LUAMOD_API int luaopen_bit32 (lua_State *L) { + luaL_newlib(L, bitlib); + return 1; +} + + +#else /* }{ */ + + +LUAMOD_API int luaopen_bit32 (lua_State *L) { + return luaL_error(L, "library 'bit32' has been deprecated"); +} + +#endif /* } */ diff --git a/3rd/lua-5.3.4/lcode.c b/3rd/lua-5.3.4/lcode.c new file mode 100644 index 0000000..0bb4142 --- /dev/null +++ b/3rd/lua-5.3.4/lcode.c @@ -0,0 +1,1203 @@ +/* +** $Id: lcode.c,v 2.112 2016/12/22 13:08:50 roberto Exp $ +** Code generator for Lua +** See Copyright Notice in lua.h +*/ + +#define lcode_c +#define LUA_CORE + +#include "lprefix.h" + + +#include +#include + +#include "lua.h" + +#include "lcode.h" +#include "ldebug.h" +#include "ldo.h" +#include "lgc.h" +#include "llex.h" +#include "lmem.h" +#include "lobject.h" +#include "lopcodes.h" +#include "lparser.h" +#include "lstring.h" +#include "ltable.h" +#include "lvm.h" + + +/* Maximum number of registers in a Lua function (must fit in 8 bits) */ +#define MAXREGS 255 + + +#define hasjumps(e) ((e)->t != (e)->f) + + +/* +** If expression is a numeric constant, fills 'v' with its value +** and returns 1. Otherwise, returns 0. +*/ +static int tonumeral(const expdesc *e, TValue *v) { + if (hasjumps(e)) + return 0; /* not a numeral */ + switch (e->k) { + case VKINT: + if (v) setivalue(v, e->u.ival); + return 1; + case VKFLT: + if (v) setfltvalue(v, e->u.nval); + return 1; + default: return 0; + } +} + + +/* +** Create a OP_LOADNIL instruction, but try to optimize: if the previous +** instruction is also OP_LOADNIL and ranges are compatible, adjust +** range of previous instruction instead of emitting a new one. (For +** instance, 'local a; local b' will generate a single opcode.) +*/ +void luaK_nil (FuncState *fs, int from, int n) { + Instruction *previous; + int l = from + n - 1; /* last register to set nil */ + if (fs->pc > fs->lasttarget) { /* no jumps to current position? */ + previous = &fs->f->code[fs->pc-1]; + if (GET_OPCODE(*previous) == OP_LOADNIL) { /* previous is LOADNIL? */ + int pfrom = GETARG_A(*previous); /* get previous range */ + int pl = pfrom + GETARG_B(*previous); + if ((pfrom <= from && from <= pl + 1) || + (from <= pfrom && pfrom <= l + 1)) { /* can connect both? */ + if (pfrom < from) from = pfrom; /* from = min(from, pfrom) */ + if (pl > l) l = pl; /* l = max(l, pl) */ + SETARG_A(*previous, from); + SETARG_B(*previous, l - from); + return; + } + } /* else go through */ + } + luaK_codeABC(fs, OP_LOADNIL, from, n - 1, 0); /* else no optimization */ +} + + +/* +** Gets the destination address of a jump instruction. Used to traverse +** a list of jumps. +*/ +static int getjump (FuncState *fs, int pc) { + int offset = GETARG_sBx(fs->f->code[pc]); + if (offset == NO_JUMP) /* point to itself represents end of list */ + return NO_JUMP; /* end of list */ + else + return (pc+1)+offset; /* turn offset into absolute position */ +} + + +/* +** Fix jump instruction at position 'pc' to jump to 'dest'. +** (Jump addresses are relative in Lua) +*/ +static void fixjump (FuncState *fs, int pc, int dest) { + Instruction *jmp = &fs->f->code[pc]; + int offset = dest - (pc + 1); + lua_assert(dest != NO_JUMP); + if (abs(offset) > MAXARG_sBx) + luaX_syntaxerror(fs->ls, "control structure too long"); + SETARG_sBx(*jmp, offset); +} + + +/* +** Concatenate jump-list 'l2' into jump-list 'l1' +*/ +void luaK_concat (FuncState *fs, int *l1, int l2) { + if (l2 == NO_JUMP) return; /* nothing to concatenate? */ + else if (*l1 == NO_JUMP) /* no original list? */ + *l1 = l2; /* 'l1' points to 'l2' */ + else { + int list = *l1; + int next; + while ((next = getjump(fs, list)) != NO_JUMP) /* find last element */ + list = next; + fixjump(fs, list, l2); /* last element links to 'l2' */ + } +} + + +/* +** Create a jump instruction and return its position, so its destination +** can be fixed later (with 'fixjump'). If there are jumps to +** this position (kept in 'jpc'), link them all together so that +** 'patchlistaux' will fix all them directly to the final destination. +*/ +int luaK_jump (FuncState *fs) { + int jpc = fs->jpc; /* save list of jumps to here */ + int j; + fs->jpc = NO_JUMP; /* no more jumps to here */ + j = luaK_codeAsBx(fs, OP_JMP, 0, NO_JUMP); + luaK_concat(fs, &j, jpc); /* keep them on hold */ + return j; +} + + +/* +** Code a 'return' instruction +*/ +void luaK_ret (FuncState *fs, int first, int nret) { + luaK_codeABC(fs, OP_RETURN, first, nret+1, 0); +} + + +/* +** Code a "conditional jump", that is, a test or comparison opcode +** followed by a jump. Return jump position. +*/ +static int condjump (FuncState *fs, OpCode op, int A, int B, int C) { + luaK_codeABC(fs, op, A, B, C); + return luaK_jump(fs); +} + + +/* +** returns current 'pc' and marks it as a jump target (to avoid wrong +** optimizations with consecutive instructions not in the same basic block). +*/ +int luaK_getlabel (FuncState *fs) { + fs->lasttarget = fs->pc; + return fs->pc; +} + + +/* +** Returns the position of the instruction "controlling" a given +** jump (that is, its condition), or the jump itself if it is +** unconditional. +*/ +static Instruction *getjumpcontrol (FuncState *fs, int pc) { + Instruction *pi = &fs->f->code[pc]; + if (pc >= 1 && testTMode(GET_OPCODE(*(pi-1)))) + return pi-1; + else + return pi; +} + + +/* +** Patch destination register for a TESTSET instruction. +** If instruction in position 'node' is not a TESTSET, return 0 ("fails"). +** Otherwise, if 'reg' is not 'NO_REG', set it as the destination +** register. Otherwise, change instruction to a simple 'TEST' (produces +** no register value) +*/ +static int patchtestreg (FuncState *fs, int node, int reg) { + Instruction *i = getjumpcontrol(fs, node); + if (GET_OPCODE(*i) != OP_TESTSET) + return 0; /* cannot patch other instructions */ + if (reg != NO_REG && reg != GETARG_B(*i)) + SETARG_A(*i, reg); + else { + /* no register to put value or register already has the value; + change instruction to simple test */ + *i = CREATE_ABC(OP_TEST, GETARG_B(*i), 0, GETARG_C(*i)); + } + return 1; +} + + +/* +** Traverse a list of tests ensuring no one produces a value +*/ +static void removevalues (FuncState *fs, int list) { + for (; list != NO_JUMP; list = getjump(fs, list)) + patchtestreg(fs, list, NO_REG); +} + + +/* +** Traverse a list of tests, patching their destination address and +** registers: tests producing values jump to 'vtarget' (and put their +** values in 'reg'), other tests jump to 'dtarget'. +*/ +static void patchlistaux (FuncState *fs, int list, int vtarget, int reg, + int dtarget) { + while (list != NO_JUMP) { + int next = getjump(fs, list); + if (patchtestreg(fs, list, reg)) + fixjump(fs, list, vtarget); + else + fixjump(fs, list, dtarget); /* jump to default target */ + list = next; + } +} + + +/* +** Ensure all pending jumps to current position are fixed (jumping +** to current position with no values) and reset list of pending +** jumps +*/ +static void dischargejpc (FuncState *fs) { + patchlistaux(fs, fs->jpc, fs->pc, NO_REG, fs->pc); + fs->jpc = NO_JUMP; +} + + +/* +** Add elements in 'list' to list of pending jumps to "here" +** (current position) +*/ +void luaK_patchtohere (FuncState *fs, int list) { + luaK_getlabel(fs); /* mark "here" as a jump target */ + luaK_concat(fs, &fs->jpc, list); +} + + +/* +** Path all jumps in 'list' to jump to 'target'. +** (The assert means that we cannot fix a jump to a forward address +** because we only know addresses once code is generated.) +*/ +void luaK_patchlist (FuncState *fs, int list, int target) { + if (target == fs->pc) /* 'target' is current position? */ + luaK_patchtohere(fs, list); /* add list to pending jumps */ + else { + lua_assert(target < fs->pc); + patchlistaux(fs, list, target, NO_REG, target); + } +} + + +/* +** Path all jumps in 'list' to close upvalues up to given 'level' +** (The assertion checks that jumps either were closing nothing +** or were closing higher levels, from inner blocks.) +*/ +void luaK_patchclose (FuncState *fs, int list, int level) { + level++; /* argument is +1 to reserve 0 as non-op */ + for (; list != NO_JUMP; list = getjump(fs, list)) { + lua_assert(GET_OPCODE(fs->f->code[list]) == OP_JMP && + (GETARG_A(fs->f->code[list]) == 0 || + GETARG_A(fs->f->code[list]) >= level)); + SETARG_A(fs->f->code[list], level); + } +} + + +/* +** Emit instruction 'i', checking for array sizes and saving also its +** line information. Return 'i' position. +*/ +static int luaK_code (FuncState *fs, Instruction i) { + Proto *f = fs->f; + dischargejpc(fs); /* 'pc' will change */ + /* put new instruction in code array */ + luaM_growvector(fs->ls->L, f->code, fs->pc, f->sizecode, Instruction, + MAX_INT, "opcodes"); + f->code[fs->pc] = i; + /* save corresponding line information */ + luaM_growvector(fs->ls->L, f->lineinfo, fs->pc, f->sizelineinfo, int, + MAX_INT, "opcodes"); + f->lineinfo[fs->pc] = fs->ls->lastline; + return fs->pc++; +} + + +/* +** Format and emit an 'iABC' instruction. (Assertions check consistency +** of parameters versus opcode.) +*/ +int luaK_codeABC (FuncState *fs, OpCode o, int a, int b, int c) { + lua_assert(getOpMode(o) == iABC); + lua_assert(getBMode(o) != OpArgN || b == 0); + lua_assert(getCMode(o) != OpArgN || c == 0); + lua_assert(a <= MAXARG_A && b <= MAXARG_B && c <= MAXARG_C); + return luaK_code(fs, CREATE_ABC(o, a, b, c)); +} + + +/* +** Format and emit an 'iABx' instruction. +*/ +int luaK_codeABx (FuncState *fs, OpCode o, int a, unsigned int bc) { + lua_assert(getOpMode(o) == iABx || getOpMode(o) == iAsBx); + lua_assert(getCMode(o) == OpArgN); + lua_assert(a <= MAXARG_A && bc <= MAXARG_Bx); + return luaK_code(fs, CREATE_ABx(o, a, bc)); +} + + +/* +** Emit an "extra argument" instruction (format 'iAx') +*/ +static int codeextraarg (FuncState *fs, int a) { + lua_assert(a <= MAXARG_Ax); + return luaK_code(fs, CREATE_Ax(OP_EXTRAARG, a)); +} + + +/* +** Emit a "load constant" instruction, using either 'OP_LOADK' +** (if constant index 'k' fits in 18 bits) or an 'OP_LOADKX' +** instruction with "extra argument". +*/ +int luaK_codek (FuncState *fs, int reg, int k) { + if (k <= MAXARG_Bx) + return luaK_codeABx(fs, OP_LOADK, reg, k); + else { + int p = luaK_codeABx(fs, OP_LOADKX, reg, 0); + codeextraarg(fs, k); + return p; + } +} + + +/* +** Check register-stack level, keeping track of its maximum size +** in field 'maxstacksize' +*/ +void luaK_checkstack (FuncState *fs, int n) { + int newstack = fs->freereg + n; + if (newstack > fs->f->maxstacksize) { + if (newstack >= MAXREGS) + luaX_syntaxerror(fs->ls, + "function or expression needs too many registers"); + fs->f->maxstacksize = cast_byte(newstack); + } +} + + +/* +** Reserve 'n' registers in register stack +*/ +void luaK_reserveregs (FuncState *fs, int n) { + luaK_checkstack(fs, n); + fs->freereg += n; +} + + +/* +** Free register 'reg', if it is neither a constant index nor +** a local variable. +) +*/ +static void freereg (FuncState *fs, int reg) { + if (!ISK(reg) && reg >= fs->nactvar) { + fs->freereg--; + lua_assert(reg == fs->freereg); + } +} + + +/* +** Free register used by expression 'e' (if any) +*/ +static void freeexp (FuncState *fs, expdesc *e) { + if (e->k == VNONRELOC) + freereg(fs, e->u.info); +} + + +/* +** Free registers used by expressions 'e1' and 'e2' (if any) in proper +** order. +*/ +static void freeexps (FuncState *fs, expdesc *e1, expdesc *e2) { + int r1 = (e1->k == VNONRELOC) ? e1->u.info : -1; + int r2 = (e2->k == VNONRELOC) ? e2->u.info : -1; + if (r1 > r2) { + freereg(fs, r1); + freereg(fs, r2); + } + else { + freereg(fs, r2); + freereg(fs, r1); + } +} + + +/* +** Add constant 'v' to prototype's list of constants (field 'k'). +** Use scanner's table to cache position of constants in constant list +** and try to reuse constants. Because some values should not be used +** as keys (nil cannot be a key, integer keys can collapse with float +** keys), the caller must provide a useful 'key' for indexing the cache. +*/ +static int addk (FuncState *fs, TValue *key, TValue *v) { + lua_State *L = fs->ls->L; + Proto *f = fs->f; + TValue *idx = luaH_set(L, fs->ls->h, key); /* index scanner table */ + int k, oldsize; + if (ttisinteger(idx)) { /* is there an index there? */ + k = cast_int(ivalue(idx)); + /* correct value? (warning: must distinguish floats from integers!) */ + if (k < fs->nk && ttype(&f->k[k]) == ttype(v) && + luaV_rawequalobj(&f->k[k], v)) + return k; /* reuse index */ + } + /* constant not found; create a new entry */ + oldsize = f->sizek; + k = fs->nk; + /* numerical value does not need GC barrier; + table has no metatable, so it does not need to invalidate cache */ + setivalue(idx, k); + luaM_growvector(L, f->k, k, f->sizek, TValue, MAXARG_Ax, "constants"); + while (oldsize < f->sizek) setnilvalue(&f->k[oldsize++]); + setobj(L, &f->k[k], v); + fs->nk++; + luaC_barrier(L, f, v); + return k; +} + + +/* +** Add a string to list of constants and return its index. +*/ +int luaK_stringK (FuncState *fs, TString *s) { + TValue o; + setsvalue(fs->ls->L, &o, s); + return addk(fs, &o, &o); /* use string itself as key */ +} + + +/* +** Add an integer to list of constants and return its index. +** Integers use userdata as keys to avoid collision with floats with +** same value; conversion to 'void*' is used only for hashing, so there +** are no "precision" problems. +*/ +int luaK_intK (FuncState *fs, lua_Integer n) { + TValue k, o; + setpvalue(&k, cast(void*, cast(size_t, n))); + setivalue(&o, n); + return addk(fs, &k, &o); +} + +/* +** Add a float to list of constants and return its index. +*/ +static int luaK_numberK (FuncState *fs, lua_Number r) { + TValue o; + setfltvalue(&o, r); + return addk(fs, &o, &o); /* use number itself as key */ +} + + +/* +** Add a boolean to list of constants and return its index. +*/ +static int boolK (FuncState *fs, int b) { + TValue o; + setbvalue(&o, b); + return addk(fs, &o, &o); /* use boolean itself as key */ +} + + +/* +** Add nil to list of constants and return its index. +*/ +static int nilK (FuncState *fs) { + TValue k, v; + setnilvalue(&v); + /* cannot use nil as key; instead use table itself to represent nil */ + sethvalue(fs->ls->L, &k, fs->ls->h); + return addk(fs, &k, &v); +} + + +/* +** Fix an expression to return the number of results 'nresults'. +** Either 'e' is a multi-ret expression (function call or vararg) +** or 'nresults' is LUA_MULTRET (as any expression can satisfy that). +*/ +void luaK_setreturns (FuncState *fs, expdesc *e, int nresults) { + if (e->k == VCALL) { /* expression is an open function call? */ + SETARG_C(getinstruction(fs, e), nresults + 1); + } + else if (e->k == VVARARG) { + Instruction *pc = &getinstruction(fs, e); + SETARG_B(*pc, nresults + 1); + SETARG_A(*pc, fs->freereg); + luaK_reserveregs(fs, 1); + } + else lua_assert(nresults == LUA_MULTRET); +} + + +/* +** Fix an expression to return one result. +** If expression is not a multi-ret expression (function call or +** vararg), it already returns one result, so nothing needs to be done. +** Function calls become VNONRELOC expressions (as its result comes +** fixed in the base register of the call), while vararg expressions +** become VRELOCABLE (as OP_VARARG puts its results where it wants). +** (Calls are created returning one result, so that does not need +** to be fixed.) +*/ +void luaK_setoneret (FuncState *fs, expdesc *e) { + if (e->k == VCALL) { /* expression is an open function call? */ + /* already returns 1 value */ + lua_assert(GETARG_C(getinstruction(fs, e)) == 2); + e->k = VNONRELOC; /* result has fixed position */ + e->u.info = GETARG_A(getinstruction(fs, e)); + } + else if (e->k == VVARARG) { + SETARG_B(getinstruction(fs, e), 2); + e->k = VRELOCABLE; /* can relocate its simple result */ + } +} + + +/* +** Ensure that expression 'e' is not a variable. +*/ +void luaK_dischargevars (FuncState *fs, expdesc *e) { + switch (e->k) { + case VLOCAL: { /* already in a register */ + e->k = VNONRELOC; /* becomes a non-relocatable value */ + break; + } + case VUPVAL: { /* move value to some (pending) register */ + e->u.info = luaK_codeABC(fs, OP_GETUPVAL, 0, e->u.info, 0); + e->k = VRELOCABLE; + break; + } + case VINDEXED: { + OpCode op; + freereg(fs, e->u.ind.idx); + if (e->u.ind.vt == VLOCAL) { /* is 't' in a register? */ + freereg(fs, e->u.ind.t); + op = OP_GETTABLE; + } + else { + lua_assert(e->u.ind.vt == VUPVAL); + op = OP_GETTABUP; /* 't' is in an upvalue */ + } + e->u.info = luaK_codeABC(fs, op, 0, e->u.ind.t, e->u.ind.idx); + e->k = VRELOCABLE; + break; + } + case VVARARG: case VCALL: { + luaK_setoneret(fs, e); + break; + } + default: break; /* there is one value available (somewhere) */ + } +} + + +/* +** Ensures expression value is in register 'reg' (and therefore +** 'e' will become a non-relocatable expression). +*/ +static void discharge2reg (FuncState *fs, expdesc *e, int reg) { + luaK_dischargevars(fs, e); + switch (e->k) { + case VNIL: { + luaK_nil(fs, reg, 1); + break; + } + case VFALSE: case VTRUE: { + luaK_codeABC(fs, OP_LOADBOOL, reg, e->k == VTRUE, 0); + break; + } + case VK: { + luaK_codek(fs, reg, e->u.info); + break; + } + case VKFLT: { + luaK_codek(fs, reg, luaK_numberK(fs, e->u.nval)); + break; + } + case VKINT: { + luaK_codek(fs, reg, luaK_intK(fs, e->u.ival)); + break; + } + case VRELOCABLE: { + Instruction *pc = &getinstruction(fs, e); + SETARG_A(*pc, reg); /* instruction will put result in 'reg' */ + break; + } + case VNONRELOC: { + if (reg != e->u.info) + luaK_codeABC(fs, OP_MOVE, reg, e->u.info, 0); + break; + } + default: { + lua_assert(e->k == VJMP); + return; /* nothing to do... */ + } + } + e->u.info = reg; + e->k = VNONRELOC; +} + + +/* +** Ensures expression value is in any register. +*/ +static void discharge2anyreg (FuncState *fs, expdesc *e) { + if (e->k != VNONRELOC) { /* no fixed register yet? */ + luaK_reserveregs(fs, 1); /* get a register */ + discharge2reg(fs, e, fs->freereg-1); /* put value there */ + } +} + + +static int code_loadbool (FuncState *fs, int A, int b, int jump) { + luaK_getlabel(fs); /* those instructions may be jump targets */ + return luaK_codeABC(fs, OP_LOADBOOL, A, b, jump); +} + + +/* +** check whether list has any jump that do not produce a value +** or produce an inverted value +*/ +static int need_value (FuncState *fs, int list) { + for (; list != NO_JUMP; list = getjump(fs, list)) { + Instruction i = *getjumpcontrol(fs, list); + if (GET_OPCODE(i) != OP_TESTSET) return 1; + } + return 0; /* not found */ +} + + +/* +** Ensures final expression result (including results from its jump +** lists) is in register 'reg'. +** If expression has jumps, need to patch these jumps either to +** its final position or to "load" instructions (for those tests +** that do not produce values). +*/ +static void exp2reg (FuncState *fs, expdesc *e, int reg) { + discharge2reg(fs, e, reg); + if (e->k == VJMP) /* expression itself is a test? */ + luaK_concat(fs, &e->t, e->u.info); /* put this jump in 't' list */ + if (hasjumps(e)) { + int final; /* position after whole expression */ + int p_f = NO_JUMP; /* position of an eventual LOAD false */ + int p_t = NO_JUMP; /* position of an eventual LOAD true */ + if (need_value(fs, e->t) || need_value(fs, e->f)) { + int fj = (e->k == VJMP) ? NO_JUMP : luaK_jump(fs); + p_f = code_loadbool(fs, reg, 0, 1); + p_t = code_loadbool(fs, reg, 1, 0); + luaK_patchtohere(fs, fj); + } + final = luaK_getlabel(fs); + patchlistaux(fs, e->f, final, reg, p_f); + patchlistaux(fs, e->t, final, reg, p_t); + } + e->f = e->t = NO_JUMP; + e->u.info = reg; + e->k = VNONRELOC; +} + + +/* +** Ensures final expression result (including results from its jump +** lists) is in next available register. +*/ +void luaK_exp2nextreg (FuncState *fs, expdesc *e) { + luaK_dischargevars(fs, e); + freeexp(fs, e); + luaK_reserveregs(fs, 1); + exp2reg(fs, e, fs->freereg - 1); +} + + +/* +** Ensures final expression result (including results from its jump +** lists) is in some (any) register and return that register. +*/ +int luaK_exp2anyreg (FuncState *fs, expdesc *e) { + luaK_dischargevars(fs, e); + if (e->k == VNONRELOC) { /* expression already has a register? */ + if (!hasjumps(e)) /* no jumps? */ + return e->u.info; /* result is already in a register */ + if (e->u.info >= fs->nactvar) { /* reg. is not a local? */ + exp2reg(fs, e, e->u.info); /* put final result in it */ + return e->u.info; + } + } + luaK_exp2nextreg(fs, e); /* otherwise, use next available register */ + return e->u.info; +} + + +/* +** Ensures final expression result is either in a register or in an +** upvalue. +*/ +void luaK_exp2anyregup (FuncState *fs, expdesc *e) { + if (e->k != VUPVAL || hasjumps(e)) + luaK_exp2anyreg(fs, e); +} + + +/* +** Ensures final expression result is either in a register or it is +** a constant. +*/ +void luaK_exp2val (FuncState *fs, expdesc *e) { + if (hasjumps(e)) + luaK_exp2anyreg(fs, e); + else + luaK_dischargevars(fs, e); +} + + +/* +** Ensures final expression result is in a valid R/K index +** (that is, it is either in a register or in 'k' with an index +** in the range of R/K indices). +** Returns R/K index. +*/ +int luaK_exp2RK (FuncState *fs, expdesc *e) { + luaK_exp2val(fs, e); + switch (e->k) { /* move constants to 'k' */ + case VTRUE: e->u.info = boolK(fs, 1); goto vk; + case VFALSE: e->u.info = boolK(fs, 0); goto vk; + case VNIL: e->u.info = nilK(fs); goto vk; + case VKINT: e->u.info = luaK_intK(fs, e->u.ival); goto vk; + case VKFLT: e->u.info = luaK_numberK(fs, e->u.nval); goto vk; + case VK: + vk: + e->k = VK; + if (e->u.info <= MAXINDEXRK) /* constant fits in 'argC'? */ + return RKASK(e->u.info); + else break; + default: break; + } + /* not a constant in the right range: put it in a register */ + return luaK_exp2anyreg(fs, e); +} + + +/* +** Generate code to store result of expression 'ex' into variable 'var'. +*/ +void luaK_storevar (FuncState *fs, expdesc *var, expdesc *ex) { + switch (var->k) { + case VLOCAL: { + freeexp(fs, ex); + exp2reg(fs, ex, var->u.info); /* compute 'ex' into proper place */ + return; + } + case VUPVAL: { + int e = luaK_exp2anyreg(fs, ex); + luaK_codeABC(fs, OP_SETUPVAL, e, var->u.info, 0); + break; + } + case VINDEXED: { + OpCode op = (var->u.ind.vt == VLOCAL) ? OP_SETTABLE : OP_SETTABUP; + int e = luaK_exp2RK(fs, ex); + luaK_codeABC(fs, op, var->u.ind.t, var->u.ind.idx, e); + break; + } + default: lua_assert(0); /* invalid var kind to store */ + } + freeexp(fs, ex); +} + + +/* +** Emit SELF instruction (convert expression 'e' into 'e:key(e,'). +*/ +void luaK_self (FuncState *fs, expdesc *e, expdesc *key) { + int ereg; + luaK_exp2anyreg(fs, e); + ereg = e->u.info; /* register where 'e' was placed */ + freeexp(fs, e); + e->u.info = fs->freereg; /* base register for op_self */ + e->k = VNONRELOC; /* self expression has a fixed register */ + luaK_reserveregs(fs, 2); /* function and 'self' produced by op_self */ + luaK_codeABC(fs, OP_SELF, e->u.info, ereg, luaK_exp2RK(fs, key)); + freeexp(fs, key); +} + + +/* +** Negate condition 'e' (where 'e' is a comparison). +*/ +static void negatecondition (FuncState *fs, expdesc *e) { + Instruction *pc = getjumpcontrol(fs, e->u.info); + lua_assert(testTMode(GET_OPCODE(*pc)) && GET_OPCODE(*pc) != OP_TESTSET && + GET_OPCODE(*pc) != OP_TEST); + SETARG_A(*pc, !(GETARG_A(*pc))); +} + + +/* +** Emit instruction to jump if 'e' is 'cond' (that is, if 'cond' +** is true, code will jump if 'e' is true.) Return jump position. +** Optimize when 'e' is 'not' something, inverting the condition +** and removing the 'not'. +*/ +static int jumponcond (FuncState *fs, expdesc *e, int cond) { + if (e->k == VRELOCABLE) { + Instruction ie = getinstruction(fs, e); + if (GET_OPCODE(ie) == OP_NOT) { + fs->pc--; /* remove previous OP_NOT */ + return condjump(fs, OP_TEST, GETARG_B(ie), 0, !cond); + } + /* else go through */ + } + discharge2anyreg(fs, e); + freeexp(fs, e); + return condjump(fs, OP_TESTSET, NO_REG, e->u.info, cond); +} + + +/* +** Emit code to go through if 'e' is true, jump otherwise. +*/ +void luaK_goiftrue (FuncState *fs, expdesc *e) { + int pc; /* pc of new jump */ + luaK_dischargevars(fs, e); + switch (e->k) { + case VJMP: { /* condition? */ + negatecondition(fs, e); /* jump when it is false */ + pc = e->u.info; /* save jump position */ + break; + } + case VK: case VKFLT: case VKINT: case VTRUE: { + pc = NO_JUMP; /* always true; do nothing */ + break; + } + default: { + pc = jumponcond(fs, e, 0); /* jump when false */ + break; + } + } + luaK_concat(fs, &e->f, pc); /* insert new jump in false list */ + luaK_patchtohere(fs, e->t); /* true list jumps to here (to go through) */ + e->t = NO_JUMP; +} + + +/* +** Emit code to go through if 'e' is false, jump otherwise. +*/ +void luaK_goiffalse (FuncState *fs, expdesc *e) { + int pc; /* pc of new jump */ + luaK_dischargevars(fs, e); + switch (e->k) { + case VJMP: { + pc = e->u.info; /* already jump if true */ + break; + } + case VNIL: case VFALSE: { + pc = NO_JUMP; /* always false; do nothing */ + break; + } + default: { + pc = jumponcond(fs, e, 1); /* jump if true */ + break; + } + } + luaK_concat(fs, &e->t, pc); /* insert new jump in 't' list */ + luaK_patchtohere(fs, e->f); /* false list jumps to here (to go through) */ + e->f = NO_JUMP; +} + + +/* +** Code 'not e', doing constant folding. +*/ +static void codenot (FuncState *fs, expdesc *e) { + luaK_dischargevars(fs, e); + switch (e->k) { + case VNIL: case VFALSE: { + e->k = VTRUE; /* true == not nil == not false */ + break; + } + case VK: case VKFLT: case VKINT: case VTRUE: { + e->k = VFALSE; /* false == not "x" == not 0.5 == not 1 == not true */ + break; + } + case VJMP: { + negatecondition(fs, e); + break; + } + case VRELOCABLE: + case VNONRELOC: { + discharge2anyreg(fs, e); + freeexp(fs, e); + e->u.info = luaK_codeABC(fs, OP_NOT, 0, e->u.info, 0); + e->k = VRELOCABLE; + break; + } + default: lua_assert(0); /* cannot happen */ + } + /* interchange true and false lists */ + { int temp = e->f; e->f = e->t; e->t = temp; } + removevalues(fs, e->f); /* values are useless when negated */ + removevalues(fs, e->t); +} + + +/* +** Create expression 't[k]'. 't' must have its final result already in a +** register or upvalue. +*/ +void luaK_indexed (FuncState *fs, expdesc *t, expdesc *k) { + lua_assert(!hasjumps(t) && (vkisinreg(t->k) || t->k == VUPVAL)); + t->u.ind.t = t->u.info; /* register or upvalue index */ + t->u.ind.idx = luaK_exp2RK(fs, k); /* R/K index for key */ + t->u.ind.vt = (t->k == VUPVAL) ? VUPVAL : VLOCAL; + t->k = VINDEXED; +} + + +/* +** Return false if folding can raise an error. +** Bitwise operations need operands convertible to integers; division +** operations cannot have 0 as divisor. +*/ +static int validop (int op, TValue *v1, TValue *v2) { + switch (op) { + case LUA_OPBAND: case LUA_OPBOR: case LUA_OPBXOR: + case LUA_OPSHL: case LUA_OPSHR: case LUA_OPBNOT: { /* conversion errors */ + lua_Integer i; + return (tointeger(v1, &i) && tointeger(v2, &i)); + } + case LUA_OPDIV: case LUA_OPIDIV: case LUA_OPMOD: /* division by 0 */ + return (nvalue(v2) != 0); + default: return 1; /* everything else is valid */ + } +} + + +/* +** Try to "constant-fold" an operation; return 1 iff successful. +** (In this case, 'e1' has the final result.) +*/ +static int constfolding (FuncState *fs, int op, expdesc *e1, + const expdesc *e2) { + TValue v1, v2, res; + if (!tonumeral(e1, &v1) || !tonumeral(e2, &v2) || !validop(op, &v1, &v2)) + return 0; /* non-numeric operands or not safe to fold */ + luaO_arith(fs->ls->L, op, &v1, &v2, &res); /* does operation */ + if (ttisinteger(&res)) { + e1->k = VKINT; + e1->u.ival = ivalue(&res); + } + else { /* folds neither NaN nor 0.0 (to avoid problems with -0.0) */ + lua_Number n = fltvalue(&res); + if (luai_numisnan(n) || n == 0) + return 0; + e1->k = VKFLT; + e1->u.nval = n; + } + return 1; +} + + +/* +** Emit code for unary expressions that "produce values" +** (everything but 'not'). +** Expression to produce final result will be encoded in 'e'. +*/ +static void codeunexpval (FuncState *fs, OpCode op, expdesc *e, int line) { + int r = luaK_exp2anyreg(fs, e); /* opcodes operate only on registers */ + freeexp(fs, e); + e->u.info = luaK_codeABC(fs, op, 0, r, 0); /* generate opcode */ + e->k = VRELOCABLE; /* all those operations are relocatable */ + luaK_fixline(fs, line); +} + + +/* +** Emit code for binary expressions that "produce values" +** (everything but logical operators 'and'/'or' and comparison +** operators). +** Expression to produce final result will be encoded in 'e1'. +** Because 'luaK_exp2RK' can free registers, its calls must be +** in "stack order" (that is, first on 'e2', which may have more +** recent registers to be released). +*/ +static void codebinexpval (FuncState *fs, OpCode op, + expdesc *e1, expdesc *e2, int line) { + int rk2 = luaK_exp2RK(fs, e2); /* both operands are "RK" */ + int rk1 = luaK_exp2RK(fs, e1); + freeexps(fs, e1, e2); + e1->u.info = luaK_codeABC(fs, op, 0, rk1, rk2); /* generate opcode */ + e1->k = VRELOCABLE; /* all those operations are relocatable */ + luaK_fixline(fs, line); +} + + +/* +** Emit code for comparisons. +** 'e1' was already put in R/K form by 'luaK_infix'. +*/ +static void codecomp (FuncState *fs, BinOpr opr, expdesc *e1, expdesc *e2) { + int rk1 = (e1->k == VK) ? RKASK(e1->u.info) + : check_exp(e1->k == VNONRELOC, e1->u.info); + int rk2 = luaK_exp2RK(fs, e2); + freeexps(fs, e1, e2); + switch (opr) { + case OPR_NE: { /* '(a ~= b)' ==> 'not (a == b)' */ + e1->u.info = condjump(fs, OP_EQ, 0, rk1, rk2); + break; + } + case OPR_GT: case OPR_GE: { + /* '(a > b)' ==> '(b < a)'; '(a >= b)' ==> '(b <= a)' */ + OpCode op = cast(OpCode, (opr - OPR_NE) + OP_EQ); + e1->u.info = condjump(fs, op, 1, rk2, rk1); /* invert operands */ + break; + } + default: { /* '==', '<', '<=' use their own opcodes */ + OpCode op = cast(OpCode, (opr - OPR_EQ) + OP_EQ); + e1->u.info = condjump(fs, op, 1, rk1, rk2); + break; + } + } + e1->k = VJMP; +} + + +/* +** Aplly prefix operation 'op' to expression 'e'. +*/ +void luaK_prefix (FuncState *fs, UnOpr op, expdesc *e, int line) { + static const expdesc ef = {VKINT, {0}, NO_JUMP, NO_JUMP}; + switch (op) { + case OPR_MINUS: case OPR_BNOT: /* use 'ef' as fake 2nd operand */ + if (constfolding(fs, op + LUA_OPUNM, e, &ef)) + break; + /* FALLTHROUGH */ + case OPR_LEN: + codeunexpval(fs, cast(OpCode, op + OP_UNM), e, line); + break; + case OPR_NOT: codenot(fs, e); break; + default: lua_assert(0); + } +} + + +/* +** Process 1st operand 'v' of binary operation 'op' before reading +** 2nd operand. +*/ +void luaK_infix (FuncState *fs, BinOpr op, expdesc *v) { + switch (op) { + case OPR_AND: { + luaK_goiftrue(fs, v); /* go ahead only if 'v' is true */ + break; + } + case OPR_OR: { + luaK_goiffalse(fs, v); /* go ahead only if 'v' is false */ + break; + } + case OPR_CONCAT: { + luaK_exp2nextreg(fs, v); /* operand must be on the 'stack' */ + break; + } + case OPR_ADD: case OPR_SUB: + case OPR_MUL: case OPR_DIV: case OPR_IDIV: + case OPR_MOD: case OPR_POW: + case OPR_BAND: case OPR_BOR: case OPR_BXOR: + case OPR_SHL: case OPR_SHR: { + if (!tonumeral(v, NULL)) + luaK_exp2RK(fs, v); + /* else keep numeral, which may be folded with 2nd operand */ + break; + } + default: { + luaK_exp2RK(fs, v); + break; + } + } +} + + +/* +** Finalize code for binary operation, after reading 2nd operand. +** For '(a .. b .. c)' (which is '(a .. (b .. c))', because +** concatenation is right associative), merge second CONCAT into first +** one. +*/ +void luaK_posfix (FuncState *fs, BinOpr op, + expdesc *e1, expdesc *e2, int line) { + switch (op) { + case OPR_AND: { + lua_assert(e1->t == NO_JUMP); /* list closed by 'luK_infix' */ + luaK_dischargevars(fs, e2); + luaK_concat(fs, &e2->f, e1->f); + *e1 = *e2; + break; + } + case OPR_OR: { + lua_assert(e1->f == NO_JUMP); /* list closed by 'luK_infix' */ + luaK_dischargevars(fs, e2); + luaK_concat(fs, &e2->t, e1->t); + *e1 = *e2; + break; + } + case OPR_CONCAT: { + luaK_exp2val(fs, e2); + if (e2->k == VRELOCABLE && + GET_OPCODE(getinstruction(fs, e2)) == OP_CONCAT) { + lua_assert(e1->u.info == GETARG_B(getinstruction(fs, e2))-1); + freeexp(fs, e1); + SETARG_B(getinstruction(fs, e2), e1->u.info); + e1->k = VRELOCABLE; e1->u.info = e2->u.info; + } + else { + luaK_exp2nextreg(fs, e2); /* operand must be on the 'stack' */ + codebinexpval(fs, OP_CONCAT, e1, e2, line); + } + break; + } + case OPR_ADD: case OPR_SUB: case OPR_MUL: case OPR_DIV: + case OPR_IDIV: case OPR_MOD: case OPR_POW: + case OPR_BAND: case OPR_BOR: case OPR_BXOR: + case OPR_SHL: case OPR_SHR: { + if (!constfolding(fs, op + LUA_OPADD, e1, e2)) + codebinexpval(fs, cast(OpCode, op + OP_ADD), e1, e2, line); + break; + } + case OPR_EQ: case OPR_LT: case OPR_LE: + case OPR_NE: case OPR_GT: case OPR_GE: { + codecomp(fs, op, e1, e2); + break; + } + default: lua_assert(0); + } +} + + +/* +** Change line information associated with current position. +*/ +void luaK_fixline (FuncState *fs, int line) { + fs->f->lineinfo[fs->pc - 1] = line; +} + + +/* +** Emit a SETLIST instruction. +** 'base' is register that keeps table; +** 'nelems' is #table plus those to be stored now; +** 'tostore' is number of values (in registers 'base + 1',...) to add to +** table (or LUA_MULTRET to add up to stack top). +*/ +void luaK_setlist (FuncState *fs, int base, int nelems, int tostore) { + int c = (nelems - 1)/LFIELDS_PER_FLUSH + 1; + int b = (tostore == LUA_MULTRET) ? 0 : tostore; + lua_assert(tostore != 0 && tostore <= LFIELDS_PER_FLUSH); + if (c <= MAXARG_C) + luaK_codeABC(fs, OP_SETLIST, base, b, c); + else if (c <= MAXARG_Ax) { + luaK_codeABC(fs, OP_SETLIST, base, b, 0); + codeextraarg(fs, c); + } + else + luaX_syntaxerror(fs->ls, "constructor too long"); + fs->freereg = base + 1; /* free registers with list values */ +} + diff --git a/3rd/lua-5.3.4/lcode.h b/3rd/lua-5.3.4/lcode.h new file mode 100644 index 0000000..cd306d5 --- /dev/null +++ b/3rd/lua-5.3.4/lcode.h @@ -0,0 +1,88 @@ +/* +** $Id: lcode.h,v 1.64 2016/01/05 16:22:37 roberto Exp $ +** Code generator for Lua +** See Copyright Notice in lua.h +*/ + +#ifndef lcode_h +#define lcode_h + +#include "llex.h" +#include "lobject.h" +#include "lopcodes.h" +#include "lparser.h" + + +/* +** Marks the end of a patch list. It is an invalid value both as an absolute +** address, and as a list link (would link an element to itself). +*/ +#define NO_JUMP (-1) + + +/* +** grep "ORDER OPR" if you change these enums (ORDER OP) +*/ +typedef enum BinOpr { + OPR_ADD, OPR_SUB, OPR_MUL, OPR_MOD, OPR_POW, + OPR_DIV, + OPR_IDIV, + OPR_BAND, OPR_BOR, OPR_BXOR, + OPR_SHL, OPR_SHR, + OPR_CONCAT, + OPR_EQ, OPR_LT, OPR_LE, + OPR_NE, OPR_GT, OPR_GE, + OPR_AND, OPR_OR, + OPR_NOBINOPR +} BinOpr; + + +typedef enum UnOpr { OPR_MINUS, OPR_BNOT, OPR_NOT, OPR_LEN, OPR_NOUNOPR } UnOpr; + + +/* get (pointer to) instruction of given 'expdesc' */ +#define getinstruction(fs,e) ((fs)->f->code[(e)->u.info]) + +#define luaK_codeAsBx(fs,o,A,sBx) luaK_codeABx(fs,o,A,(sBx)+MAXARG_sBx) + +#define luaK_setmultret(fs,e) luaK_setreturns(fs, e, LUA_MULTRET) + +#define luaK_jumpto(fs,t) luaK_patchlist(fs, luaK_jump(fs), t) + +LUAI_FUNC int luaK_codeABx (FuncState *fs, OpCode o, int A, unsigned int Bx); +LUAI_FUNC int luaK_codeABC (FuncState *fs, OpCode o, int A, int B, int C); +LUAI_FUNC int luaK_codek (FuncState *fs, int reg, int k); +LUAI_FUNC void luaK_fixline (FuncState *fs, int line); +LUAI_FUNC void luaK_nil (FuncState *fs, int from, int n); +LUAI_FUNC void luaK_reserveregs (FuncState *fs, int n); +LUAI_FUNC void luaK_checkstack (FuncState *fs, int n); +LUAI_FUNC int luaK_stringK (FuncState *fs, TString *s); +LUAI_FUNC int luaK_intK (FuncState *fs, lua_Integer n); +LUAI_FUNC void luaK_dischargevars (FuncState *fs, expdesc *e); +LUAI_FUNC int luaK_exp2anyreg (FuncState *fs, expdesc *e); +LUAI_FUNC void luaK_exp2anyregup (FuncState *fs, expdesc *e); +LUAI_FUNC void luaK_exp2nextreg (FuncState *fs, expdesc *e); +LUAI_FUNC void luaK_exp2val (FuncState *fs, expdesc *e); +LUAI_FUNC int luaK_exp2RK (FuncState *fs, expdesc *e); +LUAI_FUNC void luaK_self (FuncState *fs, expdesc *e, expdesc *key); +LUAI_FUNC void luaK_indexed (FuncState *fs, expdesc *t, expdesc *k); +LUAI_FUNC void luaK_goiftrue (FuncState *fs, expdesc *e); +LUAI_FUNC void luaK_goiffalse (FuncState *fs, expdesc *e); +LUAI_FUNC void luaK_storevar (FuncState *fs, expdesc *var, expdesc *e); +LUAI_FUNC void luaK_setreturns (FuncState *fs, expdesc *e, int nresults); +LUAI_FUNC void luaK_setoneret (FuncState *fs, expdesc *e); +LUAI_FUNC int luaK_jump (FuncState *fs); +LUAI_FUNC void luaK_ret (FuncState *fs, int first, int nret); +LUAI_FUNC void luaK_patchlist (FuncState *fs, int list, int target); +LUAI_FUNC void luaK_patchtohere (FuncState *fs, int list); +LUAI_FUNC void luaK_patchclose (FuncState *fs, int list, int level); +LUAI_FUNC void luaK_concat (FuncState *fs, int *l1, int l2); +LUAI_FUNC int luaK_getlabel (FuncState *fs); +LUAI_FUNC void luaK_prefix (FuncState *fs, UnOpr op, expdesc *v, int line); +LUAI_FUNC void luaK_infix (FuncState *fs, BinOpr op, expdesc *v); +LUAI_FUNC void luaK_posfix (FuncState *fs, BinOpr op, expdesc *v1, + expdesc *v2, int line); +LUAI_FUNC void luaK_setlist (FuncState *fs, int base, int nelems, int tostore); + + +#endif diff --git a/3rd/lua-5.3.4/lcorolib.c b/3rd/lua-5.3.4/lcorolib.c new file mode 100644 index 0000000..2303429 --- /dev/null +++ b/3rd/lua-5.3.4/lcorolib.c @@ -0,0 +1,168 @@ +/* +** $Id: lcorolib.c,v 1.10 2016/04/11 19:19:55 roberto Exp $ +** Coroutine Library +** See Copyright Notice in lua.h +*/ + +#define lcorolib_c +#define LUA_LIB + +#include "lprefix.h" + + +#include + +#include "lua.h" + +#include "lauxlib.h" +#include "lualib.h" + + +static lua_State *getco (lua_State *L) { + lua_State *co = lua_tothread(L, 1); + luaL_argcheck(L, co, 1, "thread expected"); + return co; +} + + +static int auxresume (lua_State *L, lua_State *co, int narg) { + int status; + if (!lua_checkstack(co, narg)) { + lua_pushliteral(L, "too many arguments to resume"); + return -1; /* error flag */ + } + if (lua_status(co) == LUA_OK && lua_gettop(co) == 0) { + lua_pushliteral(L, "cannot resume dead coroutine"); + return -1; /* error flag */ + } + lua_xmove(L, co, narg); + status = lua_resume(co, L, narg); + if (status == LUA_OK || status == LUA_YIELD) { + int nres = lua_gettop(co); + if (!lua_checkstack(L, nres + 1)) { + lua_pop(co, nres); /* remove results anyway */ + lua_pushliteral(L, "too many results to resume"); + return -1; /* error flag */ + } + lua_xmove(co, L, nres); /* move yielded values */ + return nres; + } + else { + lua_xmove(co, L, 1); /* move error message */ + return -1; /* error flag */ + } +} + + +static int luaB_coresume (lua_State *L) { + lua_State *co = getco(L); + int r; + r = auxresume(L, co, lua_gettop(L) - 1); + if (r < 0) { + lua_pushboolean(L, 0); + lua_insert(L, -2); + return 2; /* return false + error message */ + } + else { + lua_pushboolean(L, 1); + lua_insert(L, -(r + 1)); + return r + 1; /* return true + 'resume' returns */ + } +} + + +static int luaB_auxwrap (lua_State *L) { + lua_State *co = lua_tothread(L, lua_upvalueindex(1)); + int r = auxresume(L, co, lua_gettop(L)); + if (r < 0) { + if (lua_type(L, -1) == LUA_TSTRING) { /* error object is a string? */ + luaL_where(L, 1); /* add extra info */ + lua_insert(L, -2); + lua_concat(L, 2); + } + return lua_error(L); /* propagate error */ + } + return r; +} + + +static int luaB_cocreate (lua_State *L) { + lua_State *NL; + luaL_checktype(L, 1, LUA_TFUNCTION); + NL = lua_newthread(L); + lua_pushvalue(L, 1); /* move function to top */ + lua_xmove(L, NL, 1); /* move function from L to NL */ + return 1; +} + + +static int luaB_cowrap (lua_State *L) { + luaB_cocreate(L); + lua_pushcclosure(L, luaB_auxwrap, 1); + return 1; +} + + +static int luaB_yield (lua_State *L) { + return lua_yield(L, lua_gettop(L)); +} + + +static int luaB_costatus (lua_State *L) { + lua_State *co = getco(L); + if (L == co) lua_pushliteral(L, "running"); + else { + switch (lua_status(co)) { + case LUA_YIELD: + lua_pushliteral(L, "suspended"); + break; + case LUA_OK: { + lua_Debug ar; + if (lua_getstack(co, 0, &ar) > 0) /* does it have frames? */ + lua_pushliteral(L, "normal"); /* it is running */ + else if (lua_gettop(co) == 0) + lua_pushliteral(L, "dead"); + else + lua_pushliteral(L, "suspended"); /* initial state */ + break; + } + default: /* some error occurred */ + lua_pushliteral(L, "dead"); + break; + } + } + return 1; +} + + +static int luaB_yieldable (lua_State *L) { + lua_pushboolean(L, lua_isyieldable(L)); + return 1; +} + + +static int luaB_corunning (lua_State *L) { + int ismain = lua_pushthread(L); + lua_pushboolean(L, ismain); + return 2; +} + + +static const luaL_Reg co_funcs[] = { + {"create", luaB_cocreate}, + {"resume", luaB_coresume}, + {"running", luaB_corunning}, + {"status", luaB_costatus}, + {"wrap", luaB_cowrap}, + {"yield", luaB_yield}, + {"isyieldable", luaB_yieldable}, + {NULL, NULL} +}; + + + +LUAMOD_API int luaopen_coroutine (lua_State *L) { + luaL_newlib(L, co_funcs); + return 1; +} + diff --git a/3rd/lua-5.3.4/lctype.c b/3rd/lua-5.3.4/lctype.c new file mode 100644 index 0000000..ae9367e --- /dev/null +++ b/3rd/lua-5.3.4/lctype.c @@ -0,0 +1,55 @@ +/* +** $Id: lctype.c,v 1.12 2014/11/02 19:19:04 roberto Exp $ +** 'ctype' functions for Lua +** See Copyright Notice in lua.h +*/ + +#define lctype_c +#define LUA_CORE + +#include "lprefix.h" + + +#include "lctype.h" + +#if !LUA_USE_CTYPE /* { */ + +#include + +LUAI_DDEF const lu_byte luai_ctype_[UCHAR_MAX + 2] = { + 0x00, /* EOZ */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0. */ + 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 1. */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0c, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, /* 2. */ + 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, + 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, /* 3. */ + 0x16, 0x16, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, + 0x04, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x05, /* 4. */ + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, /* 5. */ + 0x05, 0x05, 0x05, 0x04, 0x04, 0x04, 0x04, 0x05, + 0x04, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x05, /* 6. */ + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, /* 7. */ + 0x05, 0x05, 0x05, 0x04, 0x04, 0x04, 0x04, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 8. */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 9. */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* a. */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* b. */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* c. */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* d. */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* e. */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* f. */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +#endif /* } */ diff --git a/3rd/lua-5.3.4/lctype.h b/3rd/lua-5.3.4/lctype.h new file mode 100644 index 0000000..99c7d12 --- /dev/null +++ b/3rd/lua-5.3.4/lctype.h @@ -0,0 +1,95 @@ +/* +** $Id: lctype.h,v 1.12 2011/07/15 12:50:29 roberto Exp $ +** 'ctype' functions for Lua +** See Copyright Notice in lua.h +*/ + +#ifndef lctype_h +#define lctype_h + +#include "lua.h" + + +/* +** WARNING: the functions defined here do not necessarily correspond +** to the similar functions in the standard C ctype.h. They are +** optimized for the specific needs of Lua +*/ + +#if !defined(LUA_USE_CTYPE) + +#if 'A' == 65 && '0' == 48 +/* ASCII case: can use its own tables; faster and fixed */ +#define LUA_USE_CTYPE 0 +#else +/* must use standard C ctype */ +#define LUA_USE_CTYPE 1 +#endif + +#endif + + +#if !LUA_USE_CTYPE /* { */ + +#include + +#include "llimits.h" + + +#define ALPHABIT 0 +#define DIGITBIT 1 +#define PRINTBIT 2 +#define SPACEBIT 3 +#define XDIGITBIT 4 + + +#define MASK(B) (1 << (B)) + + +/* +** add 1 to char to allow index -1 (EOZ) +*/ +#define testprop(c,p) (luai_ctype_[(c)+1] & (p)) + +/* +** 'lalpha' (Lua alphabetic) and 'lalnum' (Lua alphanumeric) both include '_' +*/ +#define lislalpha(c) testprop(c, MASK(ALPHABIT)) +#define lislalnum(c) testprop(c, (MASK(ALPHABIT) | MASK(DIGITBIT))) +#define lisdigit(c) testprop(c, MASK(DIGITBIT)) +#define lisspace(c) testprop(c, MASK(SPACEBIT)) +#define lisprint(c) testprop(c, MASK(PRINTBIT)) +#define lisxdigit(c) testprop(c, MASK(XDIGITBIT)) + +/* +** this 'ltolower' only works for alphabetic characters +*/ +#define ltolower(c) ((c) | ('A' ^ 'a')) + + +/* two more entries for 0 and -1 (EOZ) */ +LUAI_DDEC const lu_byte luai_ctype_[UCHAR_MAX + 2]; + + +#else /* }{ */ + +/* +** use standard C ctypes +*/ + +#include + + +#define lislalpha(c) (isalpha(c) || (c) == '_') +#define lislalnum(c) (isalnum(c) || (c) == '_') +#define lisdigit(c) (isdigit(c)) +#define lisspace(c) (isspace(c)) +#define lisprint(c) (isprint(c)) +#define lisxdigit(c) (isxdigit(c)) + +#define ltolower(c) (tolower(c)) + +#endif /* } */ + +#endif + diff --git a/3rd/lua-5.3.4/ldblib.c b/3rd/lua-5.3.4/ldblib.c new file mode 100644 index 0000000..786f6cd --- /dev/null +++ b/3rd/lua-5.3.4/ldblib.c @@ -0,0 +1,456 @@ +/* +** $Id: ldblib.c,v 1.151 2015/11/23 11:29:43 roberto Exp $ +** Interface from Lua to its debug API +** See Copyright Notice in lua.h +*/ + +#define ldblib_c +#define LUA_LIB + +#include "lprefix.h" + + +#include +#include +#include + +#include "lua.h" + +#include "lauxlib.h" +#include "lualib.h" + + +/* +** The hook table at registry[&HOOKKEY] maps threads to their current +** hook function. (We only need the unique address of 'HOOKKEY'.) +*/ +static const int HOOKKEY = 0; + + +/* +** If L1 != L, L1 can be in any state, and therefore there are no +** guarantees about its stack space; any push in L1 must be +** checked. +*/ +static void checkstack (lua_State *L, lua_State *L1, int n) { + if (L != L1 && !lua_checkstack(L1, n)) + luaL_error(L, "stack overflow"); +} + + +static int db_getregistry (lua_State *L) { + lua_pushvalue(L, LUA_REGISTRYINDEX); + return 1; +} + + +static int db_getmetatable (lua_State *L) { + luaL_checkany(L, 1); + if (!lua_getmetatable(L, 1)) { + lua_pushnil(L); /* no metatable */ + } + return 1; +} + + +static int db_setmetatable (lua_State *L) { + int t = lua_type(L, 2); + luaL_argcheck(L, t == LUA_TNIL || t == LUA_TTABLE, 2, + "nil or table expected"); + lua_settop(L, 2); + lua_setmetatable(L, 1); + return 1; /* return 1st argument */ +} + + +static int db_getuservalue (lua_State *L) { + if (lua_type(L, 1) != LUA_TUSERDATA) + lua_pushnil(L); + else + lua_getuservalue(L, 1); + return 1; +} + + +static int db_setuservalue (lua_State *L) { + luaL_checktype(L, 1, LUA_TUSERDATA); + luaL_checkany(L, 2); + lua_settop(L, 2); + lua_setuservalue(L, 1); + return 1; +} + + +/* +** Auxiliary function used by several library functions: check for +** an optional thread as function's first argument and set 'arg' with +** 1 if this argument is present (so that functions can skip it to +** access their other arguments) +*/ +static lua_State *getthread (lua_State *L, int *arg) { + if (lua_isthread(L, 1)) { + *arg = 1; + return lua_tothread(L, 1); + } + else { + *arg = 0; + return L; /* function will operate over current thread */ + } +} + + +/* +** Variations of 'lua_settable', used by 'db_getinfo' to put results +** from 'lua_getinfo' into result table. Key is always a string; +** value can be a string, an int, or a boolean. +*/ +static void settabss (lua_State *L, const char *k, const char *v) { + lua_pushstring(L, v); + lua_setfield(L, -2, k); +} + +static void settabsi (lua_State *L, const char *k, int v) { + lua_pushinteger(L, v); + lua_setfield(L, -2, k); +} + +static void settabsb (lua_State *L, const char *k, int v) { + lua_pushboolean(L, v); + lua_setfield(L, -2, k); +} + + +/* +** In function 'db_getinfo', the call to 'lua_getinfo' may push +** results on the stack; later it creates the result table to put +** these objects. Function 'treatstackoption' puts the result from +** 'lua_getinfo' on top of the result table so that it can call +** 'lua_setfield'. +*/ +static void treatstackoption (lua_State *L, lua_State *L1, const char *fname) { + if (L == L1) + lua_rotate(L, -2, 1); /* exchange object and table */ + else + lua_xmove(L1, L, 1); /* move object to the "main" stack */ + lua_setfield(L, -2, fname); /* put object into table */ +} + + +/* +** Calls 'lua_getinfo' and collects all results in a new table. +** L1 needs stack space for an optional input (function) plus +** two optional outputs (function and line table) from function +** 'lua_getinfo'. +*/ +static int db_getinfo (lua_State *L) { + lua_Debug ar; + int arg; + lua_State *L1 = getthread(L, &arg); + const char *options = luaL_optstring(L, arg+2, "flnStu"); + checkstack(L, L1, 3); + if (lua_isfunction(L, arg + 1)) { /* info about a function? */ + options = lua_pushfstring(L, ">%s", options); /* add '>' to 'options' */ + lua_pushvalue(L, arg + 1); /* move function to 'L1' stack */ + lua_xmove(L, L1, 1); + } + else { /* stack level */ + if (!lua_getstack(L1, (int)luaL_checkinteger(L, arg + 1), &ar)) { + lua_pushnil(L); /* level out of range */ + return 1; + } + } + if (!lua_getinfo(L1, options, &ar)) + return luaL_argerror(L, arg+2, "invalid option"); + lua_newtable(L); /* table to collect results */ + if (strchr(options, 'S')) { + settabss(L, "source", ar.source); + settabss(L, "short_src", ar.short_src); + settabsi(L, "linedefined", ar.linedefined); + settabsi(L, "lastlinedefined", ar.lastlinedefined); + settabss(L, "what", ar.what); + } + if (strchr(options, 'l')) + settabsi(L, "currentline", ar.currentline); + if (strchr(options, 'u')) { + settabsi(L, "nups", ar.nups); + settabsi(L, "nparams", ar.nparams); + settabsb(L, "isvararg", ar.isvararg); + } + if (strchr(options, 'n')) { + settabss(L, "name", ar.name); + settabss(L, "namewhat", ar.namewhat); + } + if (strchr(options, 't')) + settabsb(L, "istailcall", ar.istailcall); + if (strchr(options, 'L')) + treatstackoption(L, L1, "activelines"); + if (strchr(options, 'f')) + treatstackoption(L, L1, "func"); + return 1; /* return table */ +} + + +static int db_getlocal (lua_State *L) { + int arg; + lua_State *L1 = getthread(L, &arg); + lua_Debug ar; + const char *name; + int nvar = (int)luaL_checkinteger(L, arg + 2); /* local-variable index */ + if (lua_isfunction(L, arg + 1)) { /* function argument? */ + lua_pushvalue(L, arg + 1); /* push function */ + lua_pushstring(L, lua_getlocal(L, NULL, nvar)); /* push local name */ + return 1; /* return only name (there is no value) */ + } + else { /* stack-level argument */ + int level = (int)luaL_checkinteger(L, arg + 1); + if (!lua_getstack(L1, level, &ar)) /* out of range? */ + return luaL_argerror(L, arg+1, "level out of range"); + checkstack(L, L1, 1); + name = lua_getlocal(L1, &ar, nvar); + if (name) { + lua_xmove(L1, L, 1); /* move local value */ + lua_pushstring(L, name); /* push name */ + lua_rotate(L, -2, 1); /* re-order */ + return 2; + } + else { + lua_pushnil(L); /* no name (nor value) */ + return 1; + } + } +} + + +static int db_setlocal (lua_State *L) { + int arg; + const char *name; + lua_State *L1 = getthread(L, &arg); + lua_Debug ar; + int level = (int)luaL_checkinteger(L, arg + 1); + int nvar = (int)luaL_checkinteger(L, arg + 2); + if (!lua_getstack(L1, level, &ar)) /* out of range? */ + return luaL_argerror(L, arg+1, "level out of range"); + luaL_checkany(L, arg+3); + lua_settop(L, arg+3); + checkstack(L, L1, 1); + lua_xmove(L, L1, 1); + name = lua_setlocal(L1, &ar, nvar); + if (name == NULL) + lua_pop(L1, 1); /* pop value (if not popped by 'lua_setlocal') */ + lua_pushstring(L, name); + return 1; +} + + +/* +** get (if 'get' is true) or set an upvalue from a closure +*/ +static int auxupvalue (lua_State *L, int get) { + const char *name; + int n = (int)luaL_checkinteger(L, 2); /* upvalue index */ + luaL_checktype(L, 1, LUA_TFUNCTION); /* closure */ + name = get ? lua_getupvalue(L, 1, n) : lua_setupvalue(L, 1, n); + if (name == NULL) return 0; + lua_pushstring(L, name); + lua_insert(L, -(get+1)); /* no-op if get is false */ + return get + 1; +} + + +static int db_getupvalue (lua_State *L) { + return auxupvalue(L, 1); +} + + +static int db_setupvalue (lua_State *L) { + luaL_checkany(L, 3); + return auxupvalue(L, 0); +} + + +/* +** Check whether a given upvalue from a given closure exists and +** returns its index +*/ +static int checkupval (lua_State *L, int argf, int argnup) { + int nup = (int)luaL_checkinteger(L, argnup); /* upvalue index */ + luaL_checktype(L, argf, LUA_TFUNCTION); /* closure */ + luaL_argcheck(L, (lua_getupvalue(L, argf, nup) != NULL), argnup, + "invalid upvalue index"); + return nup; +} + + +static int db_upvalueid (lua_State *L) { + int n = checkupval(L, 1, 2); + lua_pushlightuserdata(L, lua_upvalueid(L, 1, n)); + return 1; +} + + +static int db_upvaluejoin (lua_State *L) { + int n1 = checkupval(L, 1, 2); + int n2 = checkupval(L, 3, 4); + luaL_argcheck(L, !lua_iscfunction(L, 1), 1, "Lua function expected"); + luaL_argcheck(L, !lua_iscfunction(L, 3), 3, "Lua function expected"); + lua_upvaluejoin(L, 1, n1, 3, n2); + return 0; +} + + +/* +** Call hook function registered at hook table for the current +** thread (if there is one) +*/ +static void hookf (lua_State *L, lua_Debug *ar) { + static const char *const hooknames[] = + {"call", "return", "line", "count", "tail call"}; + lua_rawgetp(L, LUA_REGISTRYINDEX, &HOOKKEY); + lua_pushthread(L); + if (lua_rawget(L, -2) == LUA_TFUNCTION) { /* is there a hook function? */ + lua_pushstring(L, hooknames[(int)ar->event]); /* push event name */ + if (ar->currentline >= 0) + lua_pushinteger(L, ar->currentline); /* push current line */ + else lua_pushnil(L); + lua_assert(lua_getinfo(L, "lS", ar)); + lua_call(L, 2, 0); /* call hook function */ + } +} + + +/* +** Convert a string mask (for 'sethook') into a bit mask +*/ +static int makemask (const char *smask, int count) { + int mask = 0; + if (strchr(smask, 'c')) mask |= LUA_MASKCALL; + if (strchr(smask, 'r')) mask |= LUA_MASKRET; + if (strchr(smask, 'l')) mask |= LUA_MASKLINE; + if (count > 0) mask |= LUA_MASKCOUNT; + return mask; +} + + +/* +** Convert a bit mask (for 'gethook') into a string mask +*/ +static char *unmakemask (int mask, char *smask) { + int i = 0; + if (mask & LUA_MASKCALL) smask[i++] = 'c'; + if (mask & LUA_MASKRET) smask[i++] = 'r'; + if (mask & LUA_MASKLINE) smask[i++] = 'l'; + smask[i] = '\0'; + return smask; +} + + +static int db_sethook (lua_State *L) { + int arg, mask, count; + lua_Hook func; + lua_State *L1 = getthread(L, &arg); + if (lua_isnoneornil(L, arg+1)) { /* no hook? */ + lua_settop(L, arg+1); + func = NULL; mask = 0; count = 0; /* turn off hooks */ + } + else { + const char *smask = luaL_checkstring(L, arg+2); + luaL_checktype(L, arg+1, LUA_TFUNCTION); + count = (int)luaL_optinteger(L, arg + 3, 0); + func = hookf; mask = makemask(smask, count); + } + if (lua_rawgetp(L, LUA_REGISTRYINDEX, &HOOKKEY) == LUA_TNIL) { + lua_createtable(L, 0, 2); /* create a hook table */ + lua_pushvalue(L, -1); + lua_rawsetp(L, LUA_REGISTRYINDEX, &HOOKKEY); /* set it in position */ + lua_pushstring(L, "k"); + lua_setfield(L, -2, "__mode"); /** hooktable.__mode = "k" */ + lua_pushvalue(L, -1); + lua_setmetatable(L, -2); /* setmetatable(hooktable) = hooktable */ + } + checkstack(L, L1, 1); + lua_pushthread(L1); lua_xmove(L1, L, 1); /* key (thread) */ + lua_pushvalue(L, arg + 1); /* value (hook function) */ + lua_rawset(L, -3); /* hooktable[L1] = new Lua hook */ + lua_sethook(L1, func, mask, count); + return 0; +} + + +static int db_gethook (lua_State *L) { + int arg; + lua_State *L1 = getthread(L, &arg); + char buff[5]; + int mask = lua_gethookmask(L1); + lua_Hook hook = lua_gethook(L1); + if (hook == NULL) /* no hook? */ + lua_pushnil(L); + else if (hook != hookf) /* external hook? */ + lua_pushliteral(L, "external hook"); + else { /* hook table must exist */ + lua_rawgetp(L, LUA_REGISTRYINDEX, &HOOKKEY); + checkstack(L, L1, 1); + lua_pushthread(L1); lua_xmove(L1, L, 1); + lua_rawget(L, -2); /* 1st result = hooktable[L1] */ + lua_remove(L, -2); /* remove hook table */ + } + lua_pushstring(L, unmakemask(mask, buff)); /* 2nd result = mask */ + lua_pushinteger(L, lua_gethookcount(L1)); /* 3rd result = count */ + return 3; +} + + +static int db_debug (lua_State *L) { + for (;;) { + char buffer[250]; + lua_writestringerror("%s", "lua_debug> "); + if (fgets(buffer, sizeof(buffer), stdin) == 0 || + strcmp(buffer, "cont\n") == 0) + return 0; + if (luaL_loadbuffer(L, buffer, strlen(buffer), "=(debug command)") || + lua_pcall(L, 0, 0, 0)) + lua_writestringerror("%s\n", lua_tostring(L, -1)); + lua_settop(L, 0); /* remove eventual returns */ + } +} + + +static int db_traceback (lua_State *L) { + int arg; + lua_State *L1 = getthread(L, &arg); + const char *msg = lua_tostring(L, arg + 1); + if (msg == NULL && !lua_isnoneornil(L, arg + 1)) /* non-string 'msg'? */ + lua_pushvalue(L, arg + 1); /* return it untouched */ + else { + int level = (int)luaL_optinteger(L, arg + 2, (L == L1) ? 1 : 0); + luaL_traceback(L, L1, msg, level); + } + return 1; +} + + +static const luaL_Reg dblib[] = { + {"debug", db_debug}, + {"getuservalue", db_getuservalue}, + {"gethook", db_gethook}, + {"getinfo", db_getinfo}, + {"getlocal", db_getlocal}, + {"getregistry", db_getregistry}, + {"getmetatable", db_getmetatable}, + {"getupvalue", db_getupvalue}, + {"upvaluejoin", db_upvaluejoin}, + {"upvalueid", db_upvalueid}, + {"setuservalue", db_setuservalue}, + {"sethook", db_sethook}, + {"setlocal", db_setlocal}, + {"setmetatable", db_setmetatable}, + {"setupvalue", db_setupvalue}, + {"traceback", db_traceback}, + {NULL, NULL} +}; + + +LUAMOD_API int luaopen_debug (lua_State *L) { + luaL_newlib(L, dblib); + return 1; +} + diff --git a/3rd/lua-5.3.4/ldebug.c b/3rd/lua-5.3.4/ldebug.c new file mode 100644 index 0000000..239affb --- /dev/null +++ b/3rd/lua-5.3.4/ldebug.c @@ -0,0 +1,698 @@ +/* +** $Id: ldebug.c,v 2.121 2016/10/19 12:32:10 roberto Exp $ +** Debug Interface +** See Copyright Notice in lua.h +*/ + +#define ldebug_c +#define LUA_CORE + +#include "lprefix.h" + + +#include +#include +#include + +#include "lua.h" + +#include "lapi.h" +#include "lcode.h" +#include "ldebug.h" +#include "ldo.h" +#include "lfunc.h" +#include "lobject.h" +#include "lopcodes.h" +#include "lstate.h" +#include "lstring.h" +#include "ltable.h" +#include "ltm.h" +#include "lvm.h" + + + +#define noLuaClosure(f) ((f) == NULL || (f)->c.tt == LUA_TCCL) + + +/* Active Lua function (given call info) */ +#define ci_func(ci) (clLvalue((ci)->func)) + + +static const char *funcnamefromcode (lua_State *L, CallInfo *ci, + const char **name); + + +static int currentpc (CallInfo *ci) { + lua_assert(isLua(ci)); + return pcRel(ci->u.l.savedpc, ci_func(ci)->p); +} + + +static int currentline (CallInfo *ci) { + return getfuncline(ci_func(ci)->p, currentpc(ci)); +} + + +/* +** If function yielded, its 'func' can be in the 'extra' field. The +** next function restores 'func' to its correct value for debugging +** purposes. (It exchanges 'func' and 'extra'; so, when called again, +** after debugging, it also "re-restores" ** 'func' to its altered value. +*/ +static void swapextra (lua_State *L) { + if (L->status == LUA_YIELD) { + CallInfo *ci = L->ci; /* get function that yielded */ + StkId temp = ci->func; /* exchange its 'func' and 'extra' values */ + ci->func = restorestack(L, ci->extra); + ci->extra = savestack(L, temp); + } +} + + +/* +** This function can be called asynchronously (e.g. during a signal). +** Fields 'oldpc', 'basehookcount', and 'hookcount' (set by +** 'resethookcount') are for debug only, and it is no problem if they +** get arbitrary values (causes at most one wrong hook call). 'hookmask' +** is an atomic value. We assume that pointers are atomic too (e.g., gcc +** ensures that for all platforms where it runs). Moreover, 'hook' is +** always checked before being called (see 'luaD_hook'). +*/ +LUA_API void lua_sethook (lua_State *L, lua_Hook func, int mask, int count) { + if (func == NULL || mask == 0) { /* turn off hooks? */ + mask = 0; + func = NULL; + } + if (isLua(L->ci)) + L->oldpc = L->ci->u.l.savedpc; + L->hook = func; + L->basehookcount = count; + resethookcount(L); + L->hookmask = cast_byte(mask); +} + + +LUA_API lua_Hook lua_gethook (lua_State *L) { + return L->hook; +} + + +LUA_API int lua_gethookmask (lua_State *L) { + return L->hookmask; +} + + +LUA_API int lua_gethookcount (lua_State *L) { + return L->basehookcount; +} + + +LUA_API int lua_getstack (lua_State *L, int level, lua_Debug *ar) { + int status; + CallInfo *ci; + if (level < 0) return 0; /* invalid (negative) level */ + lua_lock(L); + for (ci = L->ci; level > 0 && ci != &L->base_ci; ci = ci->previous) + level--; + if (level == 0 && ci != &L->base_ci) { /* level found? */ + status = 1; + ar->i_ci = ci; + } + else status = 0; /* no such level */ + lua_unlock(L); + return status; +} + + +static const char *upvalname (Proto *p, int uv) { + TString *s = check_exp(uv < p->sizeupvalues, p->upvalues[uv].name); + if (s == NULL) return "?"; + else return getstr(s); +} + + +static const char *findvararg (CallInfo *ci, int n, StkId *pos) { + int nparams = clLvalue(ci->func)->p->numparams; + if (n >= cast_int(ci->u.l.base - ci->func) - nparams) + return NULL; /* no such vararg */ + else { + *pos = ci->func + nparams + n; + return "(*vararg)"; /* generic name for any vararg */ + } +} + + +static const char *findlocal (lua_State *L, CallInfo *ci, int n, + StkId *pos) { + const char *name = NULL; + StkId base; + if (isLua(ci)) { + if (n < 0) /* access to vararg values? */ + return findvararg(ci, -n, pos); + else { + base = ci->u.l.base; + name = luaF_getlocalname(ci_func(ci)->p, n, currentpc(ci)); + } + } + else + base = ci->func + 1; + if (name == NULL) { /* no 'standard' name? */ + StkId limit = (ci == L->ci) ? L->top : ci->next->func; + if (limit - base >= n && n > 0) /* is 'n' inside 'ci' stack? */ + name = "(*temporary)"; /* generic name for any valid slot */ + else + return NULL; /* no name */ + } + *pos = base + (n - 1); + return name; +} + + +LUA_API const char *lua_getlocal (lua_State *L, const lua_Debug *ar, int n) { + const char *name; + lua_lock(L); + swapextra(L); + if (ar == NULL) { /* information about non-active function? */ + if (!isLfunction(L->top - 1)) /* not a Lua function? */ + name = NULL; + else /* consider live variables at function start (parameters) */ + name = luaF_getlocalname(clLvalue(L->top - 1)->p, n, 0); + } + else { /* active function; get information through 'ar' */ + StkId pos = NULL; /* to avoid warnings */ + name = findlocal(L, ar->i_ci, n, &pos); + if (name) { + setobj2s(L, L->top, pos); + api_incr_top(L); + } + } + swapextra(L); + lua_unlock(L); + return name; +} + + +LUA_API const char *lua_setlocal (lua_State *L, const lua_Debug *ar, int n) { + StkId pos = NULL; /* to avoid warnings */ + const char *name; + lua_lock(L); + swapextra(L); + name = findlocal(L, ar->i_ci, n, &pos); + if (name) { + setobjs2s(L, pos, L->top - 1); + L->top--; /* pop value */ + } + swapextra(L); + lua_unlock(L); + return name; +} + + +static void funcinfo (lua_Debug *ar, Closure *cl) { + if (noLuaClosure(cl)) { + ar->source = "=[C]"; + ar->linedefined = -1; + ar->lastlinedefined = -1; + ar->what = "C"; + } + else { + Proto *p = cl->l.p; + ar->source = p->source ? getstr(p->source) : "=?"; + ar->linedefined = p->linedefined; + ar->lastlinedefined = p->lastlinedefined; + ar->what = (ar->linedefined == 0) ? "main" : "Lua"; + } + luaO_chunkid(ar->short_src, ar->source, LUA_IDSIZE); +} + + +static void collectvalidlines (lua_State *L, Closure *f) { + if (noLuaClosure(f)) { + setnilvalue(L->top); + api_incr_top(L); + } + else { + int i; + TValue v; + int *lineinfo = f->l.p->lineinfo; + Table *t = luaH_new(L); /* new table to store active lines */ + sethvalue(L, L->top, t); /* push it on stack */ + api_incr_top(L); + setbvalue(&v, 1); /* boolean 'true' to be the value of all indices */ + for (i = 0; i < f->l.p->sizelineinfo; i++) /* for all lines with code */ + luaH_setint(L, t, lineinfo[i], &v); /* table[line] = true */ + } +} + + +static const char *getfuncname (lua_State *L, CallInfo *ci, const char **name) { + if (ci == NULL) /* no 'ci'? */ + return NULL; /* no info */ + else if (ci->callstatus & CIST_FIN) { /* is this a finalizer? */ + *name = "__gc"; + return "metamethod"; /* report it as such */ + } + /* calling function is a known Lua function? */ + else if (!(ci->callstatus & CIST_TAIL) && isLua(ci->previous)) + return funcnamefromcode(L, ci->previous, name); + else return NULL; /* no way to find a name */ +} + + +static int auxgetinfo (lua_State *L, const char *what, lua_Debug *ar, + Closure *f, CallInfo *ci) { + int status = 1; + for (; *what; what++) { + switch (*what) { + case 'S': { + funcinfo(ar, f); + break; + } + case 'l': { + ar->currentline = (ci && isLua(ci)) ? currentline(ci) : -1; + break; + } + case 'u': { + ar->nups = (f == NULL) ? 0 : f->c.nupvalues; + if (noLuaClosure(f)) { + ar->isvararg = 1; + ar->nparams = 0; + } + else { + ar->isvararg = f->l.p->is_vararg; + ar->nparams = f->l.p->numparams; + } + break; + } + case 't': { + ar->istailcall = (ci) ? ci->callstatus & CIST_TAIL : 0; + break; + } + case 'n': { + ar->namewhat = getfuncname(L, ci, &ar->name); + if (ar->namewhat == NULL) { + ar->namewhat = ""; /* not found */ + ar->name = NULL; + } + break; + } + case 'L': + case 'f': /* handled by lua_getinfo */ + break; + default: status = 0; /* invalid option */ + } + } + return status; +} + + +LUA_API int lua_getinfo (lua_State *L, const char *what, lua_Debug *ar) { + int status; + Closure *cl; + CallInfo *ci; + StkId func; + lua_lock(L); + swapextra(L); + if (*what == '>') { + ci = NULL; + func = L->top - 1; + api_check(L, ttisfunction(func), "function expected"); + what++; /* skip the '>' */ + L->top--; /* pop function */ + } + else { + ci = ar->i_ci; + func = ci->func; + lua_assert(ttisfunction(ci->func)); + } + cl = ttisclosure(func) ? clvalue(func) : NULL; + status = auxgetinfo(L, what, ar, cl, ci); + if (strchr(what, 'f')) { + setobjs2s(L, L->top, func); + api_incr_top(L); + } + swapextra(L); /* correct before option 'L', which can raise a mem. error */ + if (strchr(what, 'L')) + collectvalidlines(L, cl); + lua_unlock(L); + return status; +} + + +/* +** {====================================================== +** Symbolic Execution +** ======================================================= +*/ + +static const char *getobjname (Proto *p, int lastpc, int reg, + const char **name); + + +/* +** find a "name" for the RK value 'c' +*/ +static void kname (Proto *p, int pc, int c, const char **name) { + if (ISK(c)) { /* is 'c' a constant? */ + TValue *kvalue = &p->k[INDEXK(c)]; + if (ttisstring(kvalue)) { /* literal constant? */ + *name = svalue(kvalue); /* it is its own name */ + return; + } + /* else no reasonable name found */ + } + else { /* 'c' is a register */ + const char *what = getobjname(p, pc, c, name); /* search for 'c' */ + if (what && *what == 'c') { /* found a constant name? */ + return; /* 'name' already filled */ + } + /* else no reasonable name found */ + } + *name = "?"; /* no reasonable name found */ +} + + +static int filterpc (int pc, int jmptarget) { + if (pc < jmptarget) /* is code conditional (inside a jump)? */ + return -1; /* cannot know who sets that register */ + else return pc; /* current position sets that register */ +} + + +/* +** try to find last instruction before 'lastpc' that modified register 'reg' +*/ +static int findsetreg (Proto *p, int lastpc, int reg) { + int pc; + int setreg = -1; /* keep last instruction that changed 'reg' */ + int jmptarget = 0; /* any code before this address is conditional */ + for (pc = 0; pc < lastpc; pc++) { + Instruction i = p->code[pc]; + OpCode op = GET_OPCODE(i); + int a = GETARG_A(i); + switch (op) { + case OP_LOADNIL: { + int b = GETARG_B(i); + if (a <= reg && reg <= a + b) /* set registers from 'a' to 'a+b' */ + setreg = filterpc(pc, jmptarget); + break; + } + case OP_TFORCALL: { + if (reg >= a + 2) /* affect all regs above its base */ + setreg = filterpc(pc, jmptarget); + break; + } + case OP_CALL: + case OP_TAILCALL: { + if (reg >= a) /* affect all registers above base */ + setreg = filterpc(pc, jmptarget); + break; + } + case OP_JMP: { + int b = GETARG_sBx(i); + int dest = pc + 1 + b; + /* jump is forward and do not skip 'lastpc'? */ + if (pc < dest && dest <= lastpc) { + if (dest > jmptarget) + jmptarget = dest; /* update 'jmptarget' */ + } + break; + } + default: + if (testAMode(op) && reg == a) /* any instruction that set A */ + setreg = filterpc(pc, jmptarget); + break; + } + } + return setreg; +} + + +static const char *getobjname (Proto *p, int lastpc, int reg, + const char **name) { + int pc; + *name = luaF_getlocalname(p, reg + 1, lastpc); + if (*name) /* is a local? */ + return "local"; + /* else try symbolic execution */ + pc = findsetreg(p, lastpc, reg); + if (pc != -1) { /* could find instruction? */ + Instruction i = p->code[pc]; + OpCode op = GET_OPCODE(i); + switch (op) { + case OP_MOVE: { + int b = GETARG_B(i); /* move from 'b' to 'a' */ + if (b < GETARG_A(i)) + return getobjname(p, pc, b, name); /* get name for 'b' */ + break; + } + case OP_GETTABUP: + case OP_GETTABLE: { + int k = GETARG_C(i); /* key index */ + int t = GETARG_B(i); /* table index */ + const char *vn = (op == OP_GETTABLE) /* name of indexed variable */ + ? luaF_getlocalname(p, t + 1, pc) + : upvalname(p, t); + kname(p, pc, k, name); + return (vn && strcmp(vn, LUA_ENV) == 0) ? "global" : "field"; + } + case OP_GETUPVAL: { + *name = upvalname(p, GETARG_B(i)); + return "upvalue"; + } + case OP_LOADK: + case OP_LOADKX: { + int b = (op == OP_LOADK) ? GETARG_Bx(i) + : GETARG_Ax(p->code[pc + 1]); + if (ttisstring(&p->k[b])) { + *name = svalue(&p->k[b]); + return "constant"; + } + break; + } + case OP_SELF: { + int k = GETARG_C(i); /* key index */ + kname(p, pc, k, name); + return "method"; + } + default: break; /* go through to return NULL */ + } + } + return NULL; /* could not find reasonable name */ +} + + +/* +** Try to find a name for a function based on the code that called it. +** (Only works when function was called by a Lua function.) +** Returns what the name is (e.g., "for iterator", "method", +** "metamethod") and sets '*name' to point to the name. +*/ +static const char *funcnamefromcode (lua_State *L, CallInfo *ci, + const char **name) { + TMS tm = (TMS)0; /* (initial value avoids warnings) */ + Proto *p = ci_func(ci)->p; /* calling function */ + int pc = currentpc(ci); /* calling instruction index */ + Instruction i = p->code[pc]; /* calling instruction */ + if (ci->callstatus & CIST_HOOKED) { /* was it called inside a hook? */ + *name = "?"; + return "hook"; + } + switch (GET_OPCODE(i)) { + case OP_CALL: + case OP_TAILCALL: + return getobjname(p, pc, GETARG_A(i), name); /* get function name */ + case OP_TFORCALL: { /* for iterator */ + *name = "for iterator"; + return "for iterator"; + } + /* other instructions can do calls through metamethods */ + case OP_SELF: case OP_GETTABUP: case OP_GETTABLE: + tm = TM_INDEX; + break; + case OP_SETTABUP: case OP_SETTABLE: + tm = TM_NEWINDEX; + break; + case OP_ADD: case OP_SUB: case OP_MUL: case OP_MOD: + case OP_POW: case OP_DIV: case OP_IDIV: case OP_BAND: + case OP_BOR: case OP_BXOR: case OP_SHL: case OP_SHR: { + int offset = cast_int(GET_OPCODE(i)) - cast_int(OP_ADD); /* ORDER OP */ + tm = cast(TMS, offset + cast_int(TM_ADD)); /* ORDER TM */ + break; + } + case OP_UNM: tm = TM_UNM; break; + case OP_BNOT: tm = TM_BNOT; break; + case OP_LEN: tm = TM_LEN; break; + case OP_CONCAT: tm = TM_CONCAT; break; + case OP_EQ: tm = TM_EQ; break; + case OP_LT: tm = TM_LT; break; + case OP_LE: tm = TM_LE; break; + default: + return NULL; /* cannot find a reasonable name */ + } + *name = getstr(G(L)->tmname[tm]); + return "metamethod"; +} + +/* }====================================================== */ + + + +/* +** The subtraction of two potentially unrelated pointers is +** not ISO C, but it should not crash a program; the subsequent +** checks are ISO C and ensure a correct result. +*/ +static int isinstack (CallInfo *ci, const TValue *o) { + ptrdiff_t i = o - ci->u.l.base; + return (0 <= i && i < (ci->top - ci->u.l.base) && ci->u.l.base + i == o); +} + + +/* +** Checks whether value 'o' came from an upvalue. (That can only happen +** with instructions OP_GETTABUP/OP_SETTABUP, which operate directly on +** upvalues.) +*/ +static const char *getupvalname (CallInfo *ci, const TValue *o, + const char **name) { + LClosure *c = ci_func(ci); + int i; + for (i = 0; i < c->nupvalues; i++) { + if (c->upvals[i]->v == o) { + *name = upvalname(c->p, i); + return "upvalue"; + } + } + return NULL; +} + + +static const char *varinfo (lua_State *L, const TValue *o) { + const char *name = NULL; /* to avoid warnings */ + CallInfo *ci = L->ci; + const char *kind = NULL; + if (isLua(ci)) { + kind = getupvalname(ci, o, &name); /* check whether 'o' is an upvalue */ + if (!kind && isinstack(ci, o)) /* no? try a register */ + kind = getobjname(ci_func(ci)->p, currentpc(ci), + cast_int(o - ci->u.l.base), &name); + } + return (kind) ? luaO_pushfstring(L, " (%s '%s')", kind, name) : ""; +} + + +l_noret luaG_typeerror (lua_State *L, const TValue *o, const char *op) { + const char *t = luaT_objtypename(L, o); + luaG_runerror(L, "attempt to %s a %s value%s", op, t, varinfo(L, o)); +} + + +l_noret luaG_concaterror (lua_State *L, const TValue *p1, const TValue *p2) { + if (ttisstring(p1) || cvt2str(p1)) p1 = p2; + luaG_typeerror(L, p1, "concatenate"); +} + + +l_noret luaG_opinterror (lua_State *L, const TValue *p1, + const TValue *p2, const char *msg) { + lua_Number temp; + if (!tonumber(p1, &temp)) /* first operand is wrong? */ + p2 = p1; /* now second is wrong */ + luaG_typeerror(L, p2, msg); +} + + +/* +** Error when both values are convertible to numbers, but not to integers +*/ +l_noret luaG_tointerror (lua_State *L, const TValue *p1, const TValue *p2) { + lua_Integer temp; + if (!tointeger(p1, &temp)) + p2 = p1; + luaG_runerror(L, "number%s has no integer representation", varinfo(L, p2)); +} + + +l_noret luaG_ordererror (lua_State *L, const TValue *p1, const TValue *p2) { + const char *t1 = luaT_objtypename(L, p1); + const char *t2 = luaT_objtypename(L, p2); + if (strcmp(t1, t2) == 0) + luaG_runerror(L, "attempt to compare two %s values", t1); + else + luaG_runerror(L, "attempt to compare %s with %s", t1, t2); +} + + +/* add src:line information to 'msg' */ +const char *luaG_addinfo (lua_State *L, const char *msg, TString *src, + int line) { + char buff[LUA_IDSIZE]; + if (src) + luaO_chunkid(buff, getstr(src), LUA_IDSIZE); + else { /* no source available; use "?" instead */ + buff[0] = '?'; buff[1] = '\0'; + } + return luaO_pushfstring(L, "%s:%d: %s", buff, line, msg); +} + + +l_noret luaG_errormsg (lua_State *L) { + if (L->errfunc != 0) { /* is there an error handling function? */ + StkId errfunc = restorestack(L, L->errfunc); + setobjs2s(L, L->top, L->top - 1); /* move argument */ + setobjs2s(L, L->top - 1, errfunc); /* push function */ + L->top++; /* assume EXTRA_STACK */ + luaD_callnoyield(L, L->top - 2, 1); /* call it */ + } + luaD_throw(L, LUA_ERRRUN); +} + + +l_noret luaG_runerror (lua_State *L, const char *fmt, ...) { + CallInfo *ci = L->ci; + const char *msg; + va_list argp; + va_start(argp, fmt); + msg = luaO_pushvfstring(L, fmt, argp); /* format message */ + va_end(argp); + if (isLua(ci)) /* if Lua function, add source:line information */ + luaG_addinfo(L, msg, ci_func(ci)->p->source, currentline(ci)); + luaG_errormsg(L); +} + + +void luaG_traceexec (lua_State *L) { + CallInfo *ci = L->ci; + lu_byte mask = L->hookmask; + int counthook = (--L->hookcount == 0 && (mask & LUA_MASKCOUNT)); + if (counthook) + resethookcount(L); /* reset count */ + else if (!(mask & LUA_MASKLINE)) + return; /* no line hook and count != 0; nothing to be done */ + if (ci->callstatus & CIST_HOOKYIELD) { /* called hook last time? */ + ci->callstatus &= ~CIST_HOOKYIELD; /* erase mark */ + return; /* do not call hook again (VM yielded, so it did not move) */ + } + if (counthook) + luaD_hook(L, LUA_HOOKCOUNT, -1); /* call count hook */ + if (mask & LUA_MASKLINE) { + Proto *p = ci_func(ci)->p; + int npc = pcRel(ci->u.l.savedpc, p); + int newline = getfuncline(p, npc); + if (npc == 0 || /* call linehook when enter a new function, */ + ci->u.l.savedpc <= L->oldpc || /* when jump back (loop), or when */ + newline != getfuncline(p, pcRel(L->oldpc, p))) /* enter a new line */ + luaD_hook(L, LUA_HOOKLINE, newline); /* call line hook */ + } + L->oldpc = ci->u.l.savedpc; + if (L->status == LUA_YIELD) { /* did hook yield? */ + if (counthook) + L->hookcount = 1; /* undo decrement to zero */ + ci->u.l.savedpc--; /* undo increment (resume will increment it again) */ + ci->callstatus |= CIST_HOOKYIELD; /* mark that it yielded */ + ci->func = L->top - 1; /* protect stack below results */ + luaD_throw(L, LUA_YIELD); + } +} + diff --git a/3rd/lua-5.3.4/ldebug.h b/3rd/lua-5.3.4/ldebug.h new file mode 100644 index 0000000..0e31546 --- /dev/null +++ b/3rd/lua-5.3.4/ldebug.h @@ -0,0 +1,39 @@ +/* +** $Id: ldebug.h,v 2.14 2015/05/22 17:45:56 roberto Exp $ +** Auxiliary functions from Debug Interface module +** See Copyright Notice in lua.h +*/ + +#ifndef ldebug_h +#define ldebug_h + + +#include "lstate.h" + + +#define pcRel(pc, p) (cast(int, (pc) - (p)->code) - 1) + +#define getfuncline(f,pc) (((f)->lineinfo) ? (f)->lineinfo[pc] : -1) + +#define resethookcount(L) (L->hookcount = L->basehookcount) + + +LUAI_FUNC l_noret luaG_typeerror (lua_State *L, const TValue *o, + const char *opname); +LUAI_FUNC l_noret luaG_concaterror (lua_State *L, const TValue *p1, + const TValue *p2); +LUAI_FUNC l_noret luaG_opinterror (lua_State *L, const TValue *p1, + const TValue *p2, + const char *msg); +LUAI_FUNC l_noret luaG_tointerror (lua_State *L, const TValue *p1, + const TValue *p2); +LUAI_FUNC l_noret luaG_ordererror (lua_State *L, const TValue *p1, + const TValue *p2); +LUAI_FUNC l_noret luaG_runerror (lua_State *L, const char *fmt, ...); +LUAI_FUNC const char *luaG_addinfo (lua_State *L, const char *msg, + TString *src, int line); +LUAI_FUNC l_noret luaG_errormsg (lua_State *L); +LUAI_FUNC void luaG_traceexec (lua_State *L); + + +#endif diff --git a/3rd/lua-5.3.4/ldo.c b/3rd/lua-5.3.4/ldo.c new file mode 100644 index 0000000..90b695f --- /dev/null +++ b/3rd/lua-5.3.4/ldo.c @@ -0,0 +1,802 @@ +/* +** $Id: ldo.c,v 2.157 2016/12/13 15:52:21 roberto Exp $ +** Stack and Call structure of Lua +** See Copyright Notice in lua.h +*/ + +#define ldo_c +#define LUA_CORE + +#include "lprefix.h" + + +#include +#include +#include + +#include "lua.h" + +#include "lapi.h" +#include "ldebug.h" +#include "ldo.h" +#include "lfunc.h" +#include "lgc.h" +#include "lmem.h" +#include "lobject.h" +#include "lopcodes.h" +#include "lparser.h" +#include "lstate.h" +#include "lstring.h" +#include "ltable.h" +#include "ltm.h" +#include "lundump.h" +#include "lvm.h" +#include "lzio.h" + + + +#define errorstatus(s) ((s) > LUA_YIELD) + + +/* +** {====================================================== +** Error-recovery functions +** ======================================================= +*/ + +/* +** LUAI_THROW/LUAI_TRY define how Lua does exception handling. By +** default, Lua handles errors with exceptions when compiling as +** C++ code, with _longjmp/_setjmp when asked to use them, and with +** longjmp/setjmp otherwise. +*/ +#if !defined(LUAI_THROW) /* { */ + +#if defined(__cplusplus) && !defined(LUA_USE_LONGJMP) /* { */ + +/* C++ exceptions */ +#define LUAI_THROW(L,c) throw(c) +#define LUAI_TRY(L,c,a) \ + try { a } catch(...) { if ((c)->status == 0) (c)->status = -1; } +#define luai_jmpbuf int /* dummy variable */ + +#elif defined(LUA_USE_POSIX) /* }{ */ + +/* in POSIX, try _longjmp/_setjmp (more efficient) */ +#define LUAI_THROW(L,c) _longjmp((c)->b, 1) +#define LUAI_TRY(L,c,a) if (_setjmp((c)->b) == 0) { a } +#define luai_jmpbuf jmp_buf + +#else /* }{ */ + +/* ISO C handling with long jumps */ +#define LUAI_THROW(L,c) longjmp((c)->b, 1) +#define LUAI_TRY(L,c,a) if (setjmp((c)->b) == 0) { a } +#define luai_jmpbuf jmp_buf + +#endif /* } */ + +#endif /* } */ + + + +/* chain list of long jump buffers */ +struct lua_longjmp { + struct lua_longjmp *previous; + luai_jmpbuf b; + volatile int status; /* error code */ +}; + + +static void seterrorobj (lua_State *L, int errcode, StkId oldtop) { + switch (errcode) { + case LUA_ERRMEM: { /* memory error? */ + setsvalue2s(L, oldtop, G(L)->memerrmsg); /* reuse preregistered msg. */ + break; + } + case LUA_ERRERR: { + setsvalue2s(L, oldtop, luaS_newliteral(L, "error in error handling")); + break; + } + default: { + setobjs2s(L, oldtop, L->top - 1); /* error message on current top */ + break; + } + } + L->top = oldtop + 1; +} + + +l_noret luaD_throw (lua_State *L, int errcode) { + if (L->errorJmp) { /* thread has an error handler? */ + L->errorJmp->status = errcode; /* set status */ + LUAI_THROW(L, L->errorJmp); /* jump to it */ + } + else { /* thread has no error handler */ + global_State *g = G(L); + L->status = cast_byte(errcode); /* mark it as dead */ + if (g->mainthread->errorJmp) { /* main thread has a handler? */ + setobjs2s(L, g->mainthread->top++, L->top - 1); /* copy error obj. */ + luaD_throw(g->mainthread, errcode); /* re-throw in main thread */ + } + else { /* no handler at all; abort */ + if (g->panic) { /* panic function? */ + seterrorobj(L, errcode, L->top); /* assume EXTRA_STACK */ + if (L->ci->top < L->top) + L->ci->top = L->top; /* pushing msg. can break this invariant */ + lua_unlock(L); + g->panic(L); /* call panic function (last chance to jump out) */ + } + abort(); + } + } +} + + +int luaD_rawrunprotected (lua_State *L, Pfunc f, void *ud) { + unsigned short oldnCcalls = L->nCcalls; + struct lua_longjmp lj; + lj.status = LUA_OK; + lj.previous = L->errorJmp; /* chain new error handler */ + L->errorJmp = &lj; + LUAI_TRY(L, &lj, + (*f)(L, ud); + ); + L->errorJmp = lj.previous; /* restore old error handler */ + L->nCcalls = oldnCcalls; + return lj.status; +} + +/* }====================================================== */ + + +/* +** {================================================================== +** Stack reallocation +** =================================================================== +*/ +static void correctstack (lua_State *L, TValue *oldstack) { + CallInfo *ci; + UpVal *up; + L->top = (L->top - oldstack) + L->stack; + for (up = L->openupval; up != NULL; up = up->u.open.next) + up->v = (up->v - oldstack) + L->stack; + for (ci = L->ci; ci != NULL; ci = ci->previous) { + ci->top = (ci->top - oldstack) + L->stack; + ci->func = (ci->func - oldstack) + L->stack; + if (isLua(ci)) + ci->u.l.base = (ci->u.l.base - oldstack) + L->stack; + } +} + + +/* some space for error handling */ +#define ERRORSTACKSIZE (LUAI_MAXSTACK + 200) + + +void luaD_reallocstack (lua_State *L, int newsize) { + TValue *oldstack = L->stack; + int lim = L->stacksize; + lua_assert(newsize <= LUAI_MAXSTACK || newsize == ERRORSTACKSIZE); + lua_assert(L->stack_last - L->stack == L->stacksize - EXTRA_STACK); + luaM_reallocvector(L, L->stack, L->stacksize, newsize, TValue); + for (; lim < newsize; lim++) + setnilvalue(L->stack + lim); /* erase new segment */ + L->stacksize = newsize; + L->stack_last = L->stack + newsize - EXTRA_STACK; + correctstack(L, oldstack); +} + + +void luaD_growstack (lua_State *L, int n) { + int size = L->stacksize; + if (size > LUAI_MAXSTACK) /* error after extra size? */ + luaD_throw(L, LUA_ERRERR); + else { + int needed = cast_int(L->top - L->stack) + n + EXTRA_STACK; + int newsize = 2 * size; + if (newsize > LUAI_MAXSTACK) newsize = LUAI_MAXSTACK; + if (newsize < needed) newsize = needed; + if (newsize > LUAI_MAXSTACK) { /* stack overflow? */ + luaD_reallocstack(L, ERRORSTACKSIZE); + luaG_runerror(L, "stack overflow"); + } + else + luaD_reallocstack(L, newsize); + } +} + + +static int stackinuse (lua_State *L) { + CallInfo *ci; + StkId lim = L->top; + for (ci = L->ci; ci != NULL; ci = ci->previous) { + if (lim < ci->top) lim = ci->top; + } + lua_assert(lim <= L->stack_last); + return cast_int(lim - L->stack) + 1; /* part of stack in use */ +} + + +void luaD_shrinkstack (lua_State *L) { + int inuse = stackinuse(L); + int goodsize = inuse + (inuse / 8) + 2*EXTRA_STACK; + if (goodsize > LUAI_MAXSTACK) + goodsize = LUAI_MAXSTACK; /* respect stack limit */ + if (L->stacksize > LUAI_MAXSTACK) /* had been handling stack overflow? */ + luaE_freeCI(L); /* free all CIs (list grew because of an error) */ + else + luaE_shrinkCI(L); /* shrink list */ + /* if thread is currently not handling a stack overflow and its + good size is smaller than current size, shrink its stack */ + if (inuse <= (LUAI_MAXSTACK - EXTRA_STACK) && + goodsize < L->stacksize) + luaD_reallocstack(L, goodsize); + else /* don't change stack */ + condmovestack(L,{},{}); /* (change only for debugging) */ +} + + +void luaD_inctop (lua_State *L) { + luaD_checkstack(L, 1); + L->top++; +} + +/* }================================================================== */ + + +/* +** Call a hook for the given event. Make sure there is a hook to be +** called. (Both 'L->hook' and 'L->hookmask', which triggers this +** function, can be changed asynchronously by signals.) +*/ +void luaD_hook (lua_State *L, int event, int line) { + lua_Hook hook = L->hook; + if (hook && L->allowhook) { /* make sure there is a hook */ + CallInfo *ci = L->ci; + ptrdiff_t top = savestack(L, L->top); + ptrdiff_t ci_top = savestack(L, ci->top); + lua_Debug ar; + ar.event = event; + ar.currentline = line; + ar.i_ci = ci; + luaD_checkstack(L, LUA_MINSTACK); /* ensure minimum stack size */ + ci->top = L->top + LUA_MINSTACK; + lua_assert(ci->top <= L->stack_last); + L->allowhook = 0; /* cannot call hooks inside a hook */ + ci->callstatus |= CIST_HOOKED; + lua_unlock(L); + (*hook)(L, &ar); + lua_lock(L); + lua_assert(!L->allowhook); + L->allowhook = 1; + ci->top = restorestack(L, ci_top); + L->top = restorestack(L, top); + ci->callstatus &= ~CIST_HOOKED; + } +} + + +static void callhook (lua_State *L, CallInfo *ci) { + int hook = LUA_HOOKCALL; + ci->u.l.savedpc++; /* hooks assume 'pc' is already incremented */ + if (isLua(ci->previous) && + GET_OPCODE(*(ci->previous->u.l.savedpc - 1)) == OP_TAILCALL) { + ci->callstatus |= CIST_TAIL; + hook = LUA_HOOKTAILCALL; + } + luaD_hook(L, hook, -1); + ci->u.l.savedpc--; /* correct 'pc' */ +} + + +static StkId adjust_varargs (lua_State *L, Proto *p, int actual) { + int i; + int nfixargs = p->numparams; + StkId base, fixed; + /* move fixed parameters to final position */ + fixed = L->top - actual; /* first fixed argument */ + base = L->top; /* final position of first argument */ + for (i = 0; i < nfixargs && i < actual; i++) { + setobjs2s(L, L->top++, fixed + i); + setnilvalue(fixed + i); /* erase original copy (for GC) */ + } + for (; i < nfixargs; i++) + setnilvalue(L->top++); /* complete missing arguments */ + return base; +} + + +/* +** Check whether __call metafield of 'func' is a function. If so, put +** it in stack below original 'func' so that 'luaD_precall' can call +** it. Raise an error if __call metafield is not a function. +*/ +static void tryfuncTM (lua_State *L, StkId func) { + const TValue *tm = luaT_gettmbyobj(L, func, TM_CALL); + StkId p; + if (!ttisfunction(tm)) + luaG_typeerror(L, func, "call"); + /* Open a hole inside the stack at 'func' */ + for (p = L->top; p > func; p--) + setobjs2s(L, p, p-1); + L->top++; /* slot ensured by caller */ + setobj2s(L, func, tm); /* tag method is the new function to be called */ +} + + +/* +** Given 'nres' results at 'firstResult', move 'wanted' of them to 'res'. +** Handle most typical cases (zero results for commands, one result for +** expressions, multiple results for tail calls/single parameters) +** separated. +*/ +static int moveresults (lua_State *L, const TValue *firstResult, StkId res, + int nres, int wanted) { + switch (wanted) { /* handle typical cases separately */ + case 0: break; /* nothing to move */ + case 1: { /* one result needed */ + if (nres == 0) /* no results? */ + firstResult = luaO_nilobject; /* adjust with nil */ + setobjs2s(L, res, firstResult); /* move it to proper place */ + break; + } + case LUA_MULTRET: { + int i; + for (i = 0; i < nres; i++) /* move all results to correct place */ + setobjs2s(L, res + i, firstResult + i); + L->top = res + nres; + return 0; /* wanted == LUA_MULTRET */ + } + default: { + int i; + if (wanted <= nres) { /* enough results? */ + for (i = 0; i < wanted; i++) /* move wanted results to correct place */ + setobjs2s(L, res + i, firstResult + i); + } + else { /* not enough results; use all of them plus nils */ + for (i = 0; i < nres; i++) /* move all results to correct place */ + setobjs2s(L, res + i, firstResult + i); + for (; i < wanted; i++) /* complete wanted number of results */ + setnilvalue(res + i); + } + break; + } + } + L->top = res + wanted; /* top points after the last result */ + return 1; +} + + +/* +** Finishes a function call: calls hook if necessary, removes CallInfo, +** moves current number of results to proper place; returns 0 iff call +** wanted multiple (variable number of) results. +*/ +int luaD_poscall (lua_State *L, CallInfo *ci, StkId firstResult, int nres) { + StkId res; + int wanted = ci->nresults; + if (L->hookmask & (LUA_MASKRET | LUA_MASKLINE)) { + if (L->hookmask & LUA_MASKRET) { + ptrdiff_t fr = savestack(L, firstResult); /* hook may change stack */ + luaD_hook(L, LUA_HOOKRET, -1); + firstResult = restorestack(L, fr); + } + L->oldpc = ci->previous->u.l.savedpc; /* 'oldpc' for caller function */ + } + res = ci->func; /* res == final position of 1st result */ + L->ci = ci->previous; /* back to caller */ + /* move results to proper place */ + return moveresults(L, firstResult, res, nres, wanted); +} + + + +#define next_ci(L) (L->ci = (L->ci->next ? L->ci->next : luaE_extendCI(L))) + + +/* macro to check stack size, preserving 'p' */ +#define checkstackp(L,n,p) \ + luaD_checkstackaux(L, n, \ + ptrdiff_t t__ = savestack(L, p); /* save 'p' */ \ + luaC_checkGC(L), /* stack grow uses memory */ \ + p = restorestack(L, t__)) /* 'pos' part: restore 'p' */ + + +/* +** Prepares a function call: checks the stack, creates a new CallInfo +** entry, fills in the relevant information, calls hook if needed. +** If function is a C function, does the call, too. (Otherwise, leave +** the execution ('luaV_execute') to the caller, to allow stackless +** calls.) Returns true iff function has been executed (C function). +*/ +int luaD_precall (lua_State *L, StkId func, int nresults) { + lua_CFunction f; + CallInfo *ci; + switch (ttype(func)) { + case LUA_TCCL: /* C closure */ + f = clCvalue(func)->f; + goto Cfunc; + case LUA_TLCF: /* light C function */ + f = fvalue(func); + Cfunc: { + int n; /* number of returns */ + checkstackp(L, LUA_MINSTACK, func); /* ensure minimum stack size */ + ci = next_ci(L); /* now 'enter' new function */ + ci->nresults = nresults; + ci->func = func; + ci->top = L->top + LUA_MINSTACK; + lua_assert(ci->top <= L->stack_last); + ci->callstatus = 0; + if (L->hookmask & LUA_MASKCALL) + luaD_hook(L, LUA_HOOKCALL, -1); + lua_unlock(L); + n = (*f)(L); /* do the actual call */ + lua_lock(L); + api_checknelems(L, n); + luaD_poscall(L, ci, L->top - n, n); + return 1; + } + case LUA_TLCL: { /* Lua function: prepare its call */ + StkId base; + Proto *p = clLvalue(func)->p; + int n = cast_int(L->top - func) - 1; /* number of real arguments */ + int fsize = p->maxstacksize; /* frame size */ + checkstackp(L, fsize, func); + if (p->is_vararg) + base = adjust_varargs(L, p, n); + else { /* non vararg function */ + for (; n < p->numparams; n++) + setnilvalue(L->top++); /* complete missing arguments */ + base = func + 1; + } + ci = next_ci(L); /* now 'enter' new function */ + ci->nresults = nresults; + ci->func = func; + ci->u.l.base = base; + L->top = ci->top = base + fsize; + lua_assert(ci->top <= L->stack_last); + ci->u.l.savedpc = p->code; /* starting point */ + ci->callstatus = CIST_LUA; + if (L->hookmask & LUA_MASKCALL) + callhook(L, ci); + return 0; + } + default: { /* not a function */ + checkstackp(L, 1, func); /* ensure space for metamethod */ + tryfuncTM(L, func); /* try to get '__call' metamethod */ + return luaD_precall(L, func, nresults); /* now it must be a function */ + } + } +} + + +/* +** Check appropriate error for stack overflow ("regular" overflow or +** overflow while handling stack overflow). If 'nCalls' is larger than +** LUAI_MAXCCALLS (which means it is handling a "regular" overflow) but +** smaller than 9/8 of LUAI_MAXCCALLS, does not report an error (to +** allow overflow handling to work) +*/ +static void stackerror (lua_State *L) { + if (L->nCcalls == LUAI_MAXCCALLS) + luaG_runerror(L, "C stack overflow"); + else if (L->nCcalls >= (LUAI_MAXCCALLS + (LUAI_MAXCCALLS>>3))) + luaD_throw(L, LUA_ERRERR); /* error while handing stack error */ +} + + +/* +** Call a function (C or Lua). The function to be called is at *func. +** The arguments are on the stack, right after the function. +** When returns, all the results are on the stack, starting at the original +** function position. +*/ +void luaD_call (lua_State *L, StkId func, int nResults) { + if (++L->nCcalls >= LUAI_MAXCCALLS) + stackerror(L); + if (!luaD_precall(L, func, nResults)) /* is a Lua function? */ + luaV_execute(L); /* call it */ + L->nCcalls--; +} + + +/* +** Similar to 'luaD_call', but does not allow yields during the call +*/ +void luaD_callnoyield (lua_State *L, StkId func, int nResults) { + L->nny++; + luaD_call(L, func, nResults); + L->nny--; +} + + +/* +** Completes the execution of an interrupted C function, calling its +** continuation function. +*/ +static void finishCcall (lua_State *L, int status) { + CallInfo *ci = L->ci; + int n; + /* must have a continuation and must be able to call it */ + lua_assert(ci->u.c.k != NULL && L->nny == 0); + /* error status can only happen in a protected call */ + lua_assert((ci->callstatus & CIST_YPCALL) || status == LUA_YIELD); + if (ci->callstatus & CIST_YPCALL) { /* was inside a pcall? */ + ci->callstatus &= ~CIST_YPCALL; /* continuation is also inside it */ + L->errfunc = ci->u.c.old_errfunc; /* with the same error function */ + } + /* finish 'lua_callk'/'lua_pcall'; CIST_YPCALL and 'errfunc' already + handled */ + adjustresults(L, ci->nresults); + lua_unlock(L); + n = (*ci->u.c.k)(L, status, ci->u.c.ctx); /* call continuation function */ + lua_lock(L); + api_checknelems(L, n); + luaD_poscall(L, ci, L->top - n, n); /* finish 'luaD_precall' */ +} + + +/* +** Executes "full continuation" (everything in the stack) of a +** previously interrupted coroutine until the stack is empty (or another +** interruption long-jumps out of the loop). If the coroutine is +** recovering from an error, 'ud' points to the error status, which must +** be passed to the first continuation function (otherwise the default +** status is LUA_YIELD). +*/ +static void unroll (lua_State *L, void *ud) { + if (ud != NULL) /* error status? */ + finishCcall(L, *(int *)ud); /* finish 'lua_pcallk' callee */ + while (L->ci != &L->base_ci) { /* something in the stack */ + if (!isLua(L->ci)) /* C function? */ + finishCcall(L, LUA_YIELD); /* complete its execution */ + else { /* Lua function */ + luaV_finishOp(L); /* finish interrupted instruction */ + luaV_execute(L); /* execute down to higher C 'boundary' */ + } + } +} + + +/* +** Try to find a suspended protected call (a "recover point") for the +** given thread. +*/ +static CallInfo *findpcall (lua_State *L) { + CallInfo *ci; + for (ci = L->ci; ci != NULL; ci = ci->previous) { /* search for a pcall */ + if (ci->callstatus & CIST_YPCALL) + return ci; + } + return NULL; /* no pending pcall */ +} + + +/* +** Recovers from an error in a coroutine. Finds a recover point (if +** there is one) and completes the execution of the interrupted +** 'luaD_pcall'. If there is no recover point, returns zero. +*/ +static int recover (lua_State *L, int status) { + StkId oldtop; + CallInfo *ci = findpcall(L); + if (ci == NULL) return 0; /* no recovery point */ + /* "finish" luaD_pcall */ + oldtop = restorestack(L, ci->extra); + luaF_close(L, oldtop); + seterrorobj(L, status, oldtop); + L->ci = ci; + L->allowhook = getoah(ci->callstatus); /* restore original 'allowhook' */ + L->nny = 0; /* should be zero to be yieldable */ + luaD_shrinkstack(L); + L->errfunc = ci->u.c.old_errfunc; + return 1; /* continue running the coroutine */ +} + + +/* +** Signal an error in the call to 'lua_resume', not in the execution +** of the coroutine itself. (Such errors should not be handled by any +** coroutine error handler and should not kill the coroutine.) +*/ +static int resume_error (lua_State *L, const char *msg, int narg) { + L->top -= narg; /* remove args from the stack */ + setsvalue2s(L, L->top, luaS_new(L, msg)); /* push error message */ + api_incr_top(L); + lua_unlock(L); + return LUA_ERRRUN; +} + + +/* +** Do the work for 'lua_resume' in protected mode. Most of the work +** depends on the status of the coroutine: initial state, suspended +** inside a hook, or regularly suspended (optionally with a continuation +** function), plus erroneous cases: non-suspended coroutine or dead +** coroutine. +*/ +static void resume (lua_State *L, void *ud) { + int n = *(cast(int*, ud)); /* number of arguments */ + StkId firstArg = L->top - n; /* first argument */ + CallInfo *ci = L->ci; + if (L->status == LUA_OK) { /* starting a coroutine? */ + if (!luaD_precall(L, firstArg - 1, LUA_MULTRET)) /* Lua function? */ + luaV_execute(L); /* call it */ + } + else { /* resuming from previous yield */ + lua_assert(L->status == LUA_YIELD); + L->status = LUA_OK; /* mark that it is running (again) */ + ci->func = restorestack(L, ci->extra); + if (isLua(ci)) /* yielded inside a hook? */ + luaV_execute(L); /* just continue running Lua code */ + else { /* 'common' yield */ + if (ci->u.c.k != NULL) { /* does it have a continuation function? */ + lua_unlock(L); + n = (*ci->u.c.k)(L, LUA_YIELD, ci->u.c.ctx); /* call continuation */ + lua_lock(L); + api_checknelems(L, n); + firstArg = L->top - n; /* yield results come from continuation */ + } + luaD_poscall(L, ci, firstArg, n); /* finish 'luaD_precall' */ + } + unroll(L, NULL); /* run continuation */ + } +} + + +LUA_API int lua_resume (lua_State *L, lua_State *from, int nargs) { + int status; + unsigned short oldnny = L->nny; /* save "number of non-yieldable" calls */ + lua_lock(L); + if (L->status == LUA_OK) { /* may be starting a coroutine */ + if (L->ci != &L->base_ci) /* not in base level? */ + return resume_error(L, "cannot resume non-suspended coroutine", nargs); + } + else if (L->status != LUA_YIELD) + return resume_error(L, "cannot resume dead coroutine", nargs); + L->nCcalls = (from) ? from->nCcalls + 1 : 1; + if (L->nCcalls >= LUAI_MAXCCALLS) + return resume_error(L, "C stack overflow", nargs); + luai_userstateresume(L, nargs); + L->nny = 0; /* allow yields */ + api_checknelems(L, (L->status == LUA_OK) ? nargs + 1 : nargs); + status = luaD_rawrunprotected(L, resume, &nargs); + if (status == -1) /* error calling 'lua_resume'? */ + status = LUA_ERRRUN; + else { /* continue running after recoverable errors */ + while (errorstatus(status) && recover(L, status)) { + /* unroll continuation */ + status = luaD_rawrunprotected(L, unroll, &status); + } + if (errorstatus(status)) { /* unrecoverable error? */ + L->status = cast_byte(status); /* mark thread as 'dead' */ + seterrorobj(L, status, L->top); /* push error message */ + L->ci->top = L->top; + } + else lua_assert(status == L->status); /* normal end or yield */ + } + L->nny = oldnny; /* restore 'nny' */ + L->nCcalls--; + lua_assert(L->nCcalls == ((from) ? from->nCcalls : 0)); + lua_unlock(L); + return status; +} + + +LUA_API int lua_isyieldable (lua_State *L) { + return (L->nny == 0); +} + + +LUA_API int lua_yieldk (lua_State *L, int nresults, lua_KContext ctx, + lua_KFunction k) { + CallInfo *ci = L->ci; + luai_userstateyield(L, nresults); + lua_lock(L); + api_checknelems(L, nresults); + if (L->nny > 0) { + if (L != G(L)->mainthread) + luaG_runerror(L, "attempt to yield across a C-call boundary"); + else + luaG_runerror(L, "attempt to yield from outside a coroutine"); + } + L->status = LUA_YIELD; + ci->extra = savestack(L, ci->func); /* save current 'func' */ + if (isLua(ci)) { /* inside a hook? */ + api_check(L, k == NULL, "hooks cannot continue after yielding"); + } + else { + if ((ci->u.c.k = k) != NULL) /* is there a continuation? */ + ci->u.c.ctx = ctx; /* save context */ + ci->func = L->top - nresults - 1; /* protect stack below results */ + luaD_throw(L, LUA_YIELD); + } + lua_assert(ci->callstatus & CIST_HOOKED); /* must be inside a hook */ + lua_unlock(L); + return 0; /* return to 'luaD_hook' */ +} + + +int luaD_pcall (lua_State *L, Pfunc func, void *u, + ptrdiff_t old_top, ptrdiff_t ef) { + int status; + CallInfo *old_ci = L->ci; + lu_byte old_allowhooks = L->allowhook; + unsigned short old_nny = L->nny; + ptrdiff_t old_errfunc = L->errfunc; + L->errfunc = ef; + status = luaD_rawrunprotected(L, func, u); + if (status != LUA_OK) { /* an error occurred? */ + StkId oldtop = restorestack(L, old_top); + luaF_close(L, oldtop); /* close possible pending closures */ + seterrorobj(L, status, oldtop); + L->ci = old_ci; + L->allowhook = old_allowhooks; + L->nny = old_nny; + luaD_shrinkstack(L); + } + L->errfunc = old_errfunc; + return status; +} + + + +/* +** Execute a protected parser. +*/ +struct SParser { /* data to 'f_parser' */ + ZIO *z; + Mbuffer buff; /* dynamic structure used by the scanner */ + Dyndata dyd; /* dynamic structures used by the parser */ + const char *mode; + const char *name; +}; + + +static void checkmode (lua_State *L, const char *mode, const char *x) { + if (mode && strchr(mode, x[0]) == NULL) { + luaO_pushfstring(L, + "attempt to load a %s chunk (mode is '%s')", x, mode); + luaD_throw(L, LUA_ERRSYNTAX); + } +} + + +static void f_parser (lua_State *L, void *ud) { + LClosure *cl; + struct SParser *p = cast(struct SParser *, ud); + int c = zgetc(p->z); /* read first character */ + if (c == LUA_SIGNATURE[0]) { + checkmode(L, p->mode, "binary"); + cl = luaU_undump(L, p->z, p->name); + } + else { + checkmode(L, p->mode, "text"); + cl = luaY_parser(L, p->z, &p->buff, &p->dyd, p->name, c); + } + lua_assert(cl->nupvalues == cl->p->sizeupvalues); + luaF_initupvals(L, cl); +} + + +int luaD_protectedparser (lua_State *L, ZIO *z, const char *name, + const char *mode) { + struct SParser p; + int status; + L->nny++; /* cannot yield during parsing */ + p.z = z; p.name = name; p.mode = mode; + p.dyd.actvar.arr = NULL; p.dyd.actvar.size = 0; + p.dyd.gt.arr = NULL; p.dyd.gt.size = 0; + p.dyd.label.arr = NULL; p.dyd.label.size = 0; + luaZ_initbuffer(L, &p.buff); + status = luaD_pcall(L, f_parser, &p, savestack(L, L->top), L->errfunc); + luaZ_freebuffer(L, &p.buff); + luaM_freearray(L, p.dyd.actvar.arr, p.dyd.actvar.size); + luaM_freearray(L, p.dyd.gt.arr, p.dyd.gt.size); + luaM_freearray(L, p.dyd.label.arr, p.dyd.label.size); + L->nny--; + return status; +} + + diff --git a/3rd/lua-5.3.4/ldo.h b/3rd/lua-5.3.4/ldo.h new file mode 100644 index 0000000..4f5d51c --- /dev/null +++ b/3rd/lua-5.3.4/ldo.h @@ -0,0 +1,58 @@ +/* +** $Id: ldo.h,v 2.29 2015/12/21 13:02:14 roberto Exp $ +** Stack and Call structure of Lua +** See Copyright Notice in lua.h +*/ + +#ifndef ldo_h +#define ldo_h + + +#include "lobject.h" +#include "lstate.h" +#include "lzio.h" + + +/* +** Macro to check stack size and grow stack if needed. Parameters +** 'pre'/'pos' allow the macro to preserve a pointer into the +** stack across reallocations, doing the work only when needed. +** 'condmovestack' is used in heavy tests to force a stack reallocation +** at every check. +*/ +#define luaD_checkstackaux(L,n,pre,pos) \ + if (L->stack_last - L->top <= (n)) \ + { pre; luaD_growstack(L, n); pos; } else { condmovestack(L,pre,pos); } + +/* In general, 'pre'/'pos' are empty (nothing to save) */ +#define luaD_checkstack(L,n) luaD_checkstackaux(L,n,(void)0,(void)0) + + + +#define savestack(L,p) ((char *)(p) - (char *)L->stack) +#define restorestack(L,n) ((TValue *)((char *)L->stack + (n))) + + +/* type of protected functions, to be ran by 'runprotected' */ +typedef void (*Pfunc) (lua_State *L, void *ud); + +LUAI_FUNC int luaD_protectedparser (lua_State *L, ZIO *z, const char *name, + const char *mode); +LUAI_FUNC void luaD_hook (lua_State *L, int event, int line); +LUAI_FUNC int luaD_precall (lua_State *L, StkId func, int nresults); +LUAI_FUNC void luaD_call (lua_State *L, StkId func, int nResults); +LUAI_FUNC void luaD_callnoyield (lua_State *L, StkId func, int nResults); +LUAI_FUNC int luaD_pcall (lua_State *L, Pfunc func, void *u, + ptrdiff_t oldtop, ptrdiff_t ef); +LUAI_FUNC int luaD_poscall (lua_State *L, CallInfo *ci, StkId firstResult, + int nres); +LUAI_FUNC void luaD_reallocstack (lua_State *L, int newsize); +LUAI_FUNC void luaD_growstack (lua_State *L, int n); +LUAI_FUNC void luaD_shrinkstack (lua_State *L); +LUAI_FUNC void luaD_inctop (lua_State *L); + +LUAI_FUNC l_noret luaD_throw (lua_State *L, int errcode); +LUAI_FUNC int luaD_rawrunprotected (lua_State *L, Pfunc f, void *ud); + +#endif + diff --git a/3rd/lua-5.3.4/ldump.c b/3rd/lua-5.3.4/ldump.c new file mode 100644 index 0000000..016e300 --- /dev/null +++ b/3rd/lua-5.3.4/ldump.c @@ -0,0 +1,215 @@ +/* +** $Id: ldump.c,v 2.37 2015/10/08 15:53:49 roberto Exp $ +** save precompiled Lua chunks +** See Copyright Notice in lua.h +*/ + +#define ldump_c +#define LUA_CORE + +#include "lprefix.h" + + +#include + +#include "lua.h" + +#include "lobject.h" +#include "lstate.h" +#include "lundump.h" + + +typedef struct { + lua_State *L; + lua_Writer writer; + void *data; + int strip; + int status; +} DumpState; + + +/* +** All high-level dumps go through DumpVector; you can change it to +** change the endianness of the result +*/ +#define DumpVector(v,n,D) DumpBlock(v,(n)*sizeof((v)[0]),D) + +#define DumpLiteral(s,D) DumpBlock(s, sizeof(s) - sizeof(char), D) + + +static void DumpBlock (const void *b, size_t size, DumpState *D) { + if (D->status == 0 && size > 0) { + lua_unlock(D->L); + D->status = (*D->writer)(D->L, b, size, D->data); + lua_lock(D->L); + } +} + + +#define DumpVar(x,D) DumpVector(&x,1,D) + + +static void DumpByte (int y, DumpState *D) { + lu_byte x = (lu_byte)y; + DumpVar(x, D); +} + + +static void DumpInt (int x, DumpState *D) { + DumpVar(x, D); +} + + +static void DumpNumber (lua_Number x, DumpState *D) { + DumpVar(x, D); +} + + +static void DumpInteger (lua_Integer x, DumpState *D) { + DumpVar(x, D); +} + + +static void DumpString (const TString *s, DumpState *D) { + if (s == NULL) + DumpByte(0, D); + else { + size_t size = tsslen(s) + 1; /* include trailing '\0' */ + const char *str = getstr(s); + if (size < 0xFF) + DumpByte(cast_int(size), D); + else { + DumpByte(0xFF, D); + DumpVar(size, D); + } + DumpVector(str, size - 1, D); /* no need to save '\0' */ + } +} + + +static void DumpCode (const Proto *f, DumpState *D) { + DumpInt(f->sizecode, D); + DumpVector(f->code, f->sizecode, D); +} + + +static void DumpFunction(const Proto *f, TString *psource, DumpState *D); + +static void DumpConstants (const Proto *f, DumpState *D) { + int i; + int n = f->sizek; + DumpInt(n, D); + for (i = 0; i < n; i++) { + const TValue *o = &f->k[i]; + DumpByte(ttype(o), D); + switch (ttype(o)) { + case LUA_TNIL: + break; + case LUA_TBOOLEAN: + DumpByte(bvalue(o), D); + break; + case LUA_TNUMFLT: + DumpNumber(fltvalue(o), D); + break; + case LUA_TNUMINT: + DumpInteger(ivalue(o), D); + break; + case LUA_TSHRSTR: + case LUA_TLNGSTR: + DumpString(tsvalue(o), D); + break; + default: + lua_assert(0); + } + } +} + + +static void DumpProtos (const Proto *f, DumpState *D) { + int i; + int n = f->sizep; + DumpInt(n, D); + for (i = 0; i < n; i++) + DumpFunction(f->p[i], f->source, D); +} + + +static void DumpUpvalues (const Proto *f, DumpState *D) { + int i, n = f->sizeupvalues; + DumpInt(n, D); + for (i = 0; i < n; i++) { + DumpByte(f->upvalues[i].instack, D); + DumpByte(f->upvalues[i].idx, D); + } +} + + +static void DumpDebug (const Proto *f, DumpState *D) { + int i, n; + n = (D->strip) ? 0 : f->sizelineinfo; + DumpInt(n, D); + DumpVector(f->lineinfo, n, D); + n = (D->strip) ? 0 : f->sizelocvars; + DumpInt(n, D); + for (i = 0; i < n; i++) { + DumpString(f->locvars[i].varname, D); + DumpInt(f->locvars[i].startpc, D); + DumpInt(f->locvars[i].endpc, D); + } + n = (D->strip) ? 0 : f->sizeupvalues; + DumpInt(n, D); + for (i = 0; i < n; i++) + DumpString(f->upvalues[i].name, D); +} + + +static void DumpFunction (const Proto *f, TString *psource, DumpState *D) { + if (D->strip || f->source == psource) + DumpString(NULL, D); /* no debug info or same source as its parent */ + else + DumpString(f->source, D); + DumpInt(f->linedefined, D); + DumpInt(f->lastlinedefined, D); + DumpByte(f->numparams, D); + DumpByte(f->is_vararg, D); + DumpByte(f->maxstacksize, D); + DumpCode(f, D); + DumpConstants(f, D); + DumpUpvalues(f, D); + DumpProtos(f, D); + DumpDebug(f, D); +} + + +static void DumpHeader (DumpState *D) { + DumpLiteral(LUA_SIGNATURE, D); + DumpByte(LUAC_VERSION, D); + DumpByte(LUAC_FORMAT, D); + DumpLiteral(LUAC_DATA, D); + DumpByte(sizeof(int), D); + DumpByte(sizeof(size_t), D); + DumpByte(sizeof(Instruction), D); + DumpByte(sizeof(lua_Integer), D); + DumpByte(sizeof(lua_Number), D); + DumpInteger(LUAC_INT, D); + DumpNumber(LUAC_NUM, D); +} + + +/* +** dump Lua function as precompiled chunk +*/ +int luaU_dump(lua_State *L, const Proto *f, lua_Writer w, void *data, + int strip) { + DumpState D; + D.L = L; + D.writer = w; + D.data = data; + D.strip = strip; + D.status = 0; + DumpHeader(&D); + DumpByte(f->sizeupvalues, &D); + DumpFunction(f, NULL, &D); + return D.status; +} + diff --git a/3rd/lua-5.3.4/lfunc.c b/3rd/lua-5.3.4/lfunc.c new file mode 100644 index 0000000..67967da --- /dev/null +++ b/3rd/lua-5.3.4/lfunc.c @@ -0,0 +1,151 @@ +/* +** $Id: lfunc.c,v 2.45 2014/11/02 19:19:04 roberto Exp $ +** Auxiliary functions to manipulate prototypes and closures +** See Copyright Notice in lua.h +*/ + +#define lfunc_c +#define LUA_CORE + +#include "lprefix.h" + + +#include + +#include "lua.h" + +#include "lfunc.h" +#include "lgc.h" +#include "lmem.h" +#include "lobject.h" +#include "lstate.h" + + + +CClosure *luaF_newCclosure (lua_State *L, int n) { + GCObject *o = luaC_newobj(L, LUA_TCCL, sizeCclosure(n)); + CClosure *c = gco2ccl(o); + c->nupvalues = cast_byte(n); + return c; +} + + +LClosure *luaF_newLclosure (lua_State *L, int n) { + GCObject *o = luaC_newobj(L, LUA_TLCL, sizeLclosure(n)); + LClosure *c = gco2lcl(o); + c->p = NULL; + c->nupvalues = cast_byte(n); + while (n--) c->upvals[n] = NULL; + return c; +} + +/* +** fill a closure with new closed upvalues +*/ +void luaF_initupvals (lua_State *L, LClosure *cl) { + int i; + for (i = 0; i < cl->nupvalues; i++) { + UpVal *uv = luaM_new(L, UpVal); + uv->refcount = 1; + uv->v = &uv->u.value; /* make it closed */ + setnilvalue(uv->v); + cl->upvals[i] = uv; + } +} + + +UpVal *luaF_findupval (lua_State *L, StkId level) { + UpVal **pp = &L->openupval; + UpVal *p; + UpVal *uv; + lua_assert(isintwups(L) || L->openupval == NULL); + while (*pp != NULL && (p = *pp)->v >= level) { + lua_assert(upisopen(p)); + if (p->v == level) /* found a corresponding upvalue? */ + return p; /* return it */ + pp = &p->u.open.next; + } + /* not found: create a new upvalue */ + uv = luaM_new(L, UpVal); + uv->refcount = 0; + uv->u.open.next = *pp; /* link it to list of open upvalues */ + uv->u.open.touched = 1; + *pp = uv; + uv->v = level; /* current value lives in the stack */ + if (!isintwups(L)) { /* thread not in list of threads with upvalues? */ + L->twups = G(L)->twups; /* link it to the list */ + G(L)->twups = L; + } + return uv; +} + + +void luaF_close (lua_State *L, StkId level) { + UpVal *uv; + while (L->openupval != NULL && (uv = L->openupval)->v >= level) { + lua_assert(upisopen(uv)); + L->openupval = uv->u.open.next; /* remove from 'open' list */ + if (uv->refcount == 0) /* no references? */ + luaM_free(L, uv); /* free upvalue */ + else { + setobj(L, &uv->u.value, uv->v); /* move value to upvalue slot */ + uv->v = &uv->u.value; /* now current value lives here */ + luaC_upvalbarrier(L, uv); + } + } +} + + +Proto *luaF_newproto (lua_State *L) { + GCObject *o = luaC_newobj(L, LUA_TPROTO, sizeof(Proto)); + Proto *f = gco2p(o); + f->k = NULL; + f->sizek = 0; + f->p = NULL; + f->sizep = 0; + f->code = NULL; + f->cache = NULL; + f->sizecode = 0; + f->lineinfo = NULL; + f->sizelineinfo = 0; + f->upvalues = NULL; + f->sizeupvalues = 0; + f->numparams = 0; + f->is_vararg = 0; + f->maxstacksize = 0; + f->locvars = NULL; + f->sizelocvars = 0; + f->linedefined = 0; + f->lastlinedefined = 0; + f->source = NULL; + return f; +} + + +void luaF_freeproto (lua_State *L, Proto *f) { + luaM_freearray(L, f->code, f->sizecode); + luaM_freearray(L, f->p, f->sizep); + luaM_freearray(L, f->k, f->sizek); + luaM_freearray(L, f->lineinfo, f->sizelineinfo); + luaM_freearray(L, f->locvars, f->sizelocvars); + luaM_freearray(L, f->upvalues, f->sizeupvalues); + luaM_free(L, f); +} + + +/* +** Look for n-th local variable at line 'line' in function 'func'. +** Returns NULL if not found. +*/ +const char *luaF_getlocalname (const Proto *f, int local_number, int pc) { + int i; + for (i = 0; isizelocvars && f->locvars[i].startpc <= pc; i++) { + if (pc < f->locvars[i].endpc) { /* is variable active? */ + local_number--; + if (local_number == 0) + return getstr(f->locvars[i].varname); + } + } + return NULL; /* not found */ +} + diff --git a/3rd/lua-5.3.4/lfunc.h b/3rd/lua-5.3.4/lfunc.h new file mode 100644 index 0000000..2eeb0d5 --- /dev/null +++ b/3rd/lua-5.3.4/lfunc.h @@ -0,0 +1,61 @@ +/* +** $Id: lfunc.h,v 2.15 2015/01/13 15:49:11 roberto Exp $ +** Auxiliary functions to manipulate prototypes and closures +** See Copyright Notice in lua.h +*/ + +#ifndef lfunc_h +#define lfunc_h + + +#include "lobject.h" + + +#define sizeCclosure(n) (cast(int, sizeof(CClosure)) + \ + cast(int, sizeof(TValue)*((n)-1))) + +#define sizeLclosure(n) (cast(int, sizeof(LClosure)) + \ + cast(int, sizeof(TValue *)*((n)-1))) + + +/* test whether thread is in 'twups' list */ +#define isintwups(L) (L->twups != L) + + +/* +** maximum number of upvalues in a closure (both C and Lua). (Value +** must fit in a VM register.) +*/ +#define MAXUPVAL 255 + + +/* +** Upvalues for Lua closures +*/ +struct UpVal { + TValue *v; /* points to stack or to its own value */ + lu_mem refcount; /* reference counter */ + union { + struct { /* (when open) */ + UpVal *next; /* linked list */ + int touched; /* mark to avoid cycles with dead threads */ + } open; + TValue value; /* the value (when closed) */ + } u; +}; + +#define upisopen(up) ((up)->v != &(up)->u.value) + + +LUAI_FUNC Proto *luaF_newproto (lua_State *L); +LUAI_FUNC CClosure *luaF_newCclosure (lua_State *L, int nelems); +LUAI_FUNC LClosure *luaF_newLclosure (lua_State *L, int nelems); +LUAI_FUNC void luaF_initupvals (lua_State *L, LClosure *cl); +LUAI_FUNC UpVal *luaF_findupval (lua_State *L, StkId level); +LUAI_FUNC void luaF_close (lua_State *L, StkId level); +LUAI_FUNC void luaF_freeproto (lua_State *L, Proto *f); +LUAI_FUNC const char *luaF_getlocalname (const Proto *func, int local_number, + int pc); + + +#endif diff --git a/3rd/lua-5.3.4/lgc.c b/3rd/lua-5.3.4/lgc.c new file mode 100644 index 0000000..ba2c19e --- /dev/null +++ b/3rd/lua-5.3.4/lgc.c @@ -0,0 +1,1178 @@ +/* +** $Id: lgc.c,v 2.215 2016/12/22 13:08:50 roberto Exp $ +** Garbage Collector +** See Copyright Notice in lua.h +*/ + +#define lgc_c +#define LUA_CORE + +#include "lprefix.h" + + +#include + +#include "lua.h" + +#include "ldebug.h" +#include "ldo.h" +#include "lfunc.h" +#include "lgc.h" +#include "lmem.h" +#include "lobject.h" +#include "lstate.h" +#include "lstring.h" +#include "ltable.h" +#include "ltm.h" + + +/* +** internal state for collector while inside the atomic phase. The +** collector should never be in this state while running regular code. +*/ +#define GCSinsideatomic (GCSpause + 1) + +/* +** cost of sweeping one element (the size of a small object divided +** by some adjust for the sweep speed) +*/ +#define GCSWEEPCOST ((sizeof(TString) + 4) / 4) + +/* maximum number of elements to sweep in each single step */ +#define GCSWEEPMAX (cast_int((GCSTEPSIZE / GCSWEEPCOST) / 4)) + +/* cost of calling one finalizer */ +#define GCFINALIZECOST GCSWEEPCOST + + +/* +** macro to adjust 'stepmul': 'stepmul' is actually used like +** 'stepmul / STEPMULADJ' (value chosen by tests) +*/ +#define STEPMULADJ 200 + + +/* +** macro to adjust 'pause': 'pause' is actually used like +** 'pause / PAUSEADJ' (value chosen by tests) +*/ +#define PAUSEADJ 100 + + +/* +** 'makewhite' erases all color bits then sets only the current white +** bit +*/ +#define maskcolors (~(bitmask(BLACKBIT) | WHITEBITS)) +#define makewhite(g,x) \ + (x->marked = cast_byte((x->marked & maskcolors) | luaC_white(g))) + +#define white2gray(x) resetbits(x->marked, WHITEBITS) +#define black2gray(x) resetbit(x->marked, BLACKBIT) + + +#define valiswhite(x) (iscollectable(x) && iswhite(gcvalue(x))) + +#define checkdeadkey(n) lua_assert(!ttisdeadkey(gkey(n)) || ttisnil(gval(n))) + + +#define checkconsistency(obj) \ + lua_longassert(!iscollectable(obj) || righttt(obj)) + + +#define markvalue(g,o) { checkconsistency(o); \ + if (valiswhite(o)) reallymarkobject(g,gcvalue(o)); } + +#define markobject(g,t) { if (iswhite(t)) reallymarkobject(g, obj2gco(t)); } + +/* +** mark an object that can be NULL (either because it is really optional, +** or it was stripped as debug info, or inside an uncompleted structure) +*/ +#define markobjectN(g,t) { if (t) markobject(g,t); } + +static void reallymarkobject (global_State *g, GCObject *o); + + +/* +** {====================================================== +** Generic functions +** ======================================================= +*/ + + +/* +** one after last element in a hash array +*/ +#define gnodelast(h) gnode(h, cast(size_t, sizenode(h))) + + +/* +** link collectable object 'o' into list pointed by 'p' +*/ +#define linkgclist(o,p) ((o)->gclist = (p), (p) = obj2gco(o)) + + +/* +** If key is not marked, mark its entry as dead. This allows key to be +** collected, but keeps its entry in the table. A dead node is needed +** when Lua looks up for a key (it may be part of a chain) and when +** traversing a weak table (key might be removed from the table during +** traversal). Other places never manipulate dead keys, because its +** associated nil value is enough to signal that the entry is logically +** empty. +*/ +static void removeentry (Node *n) { + lua_assert(ttisnil(gval(n))); + if (valiswhite(gkey(n))) + setdeadvalue(wgkey(n)); /* unused and unmarked key; remove it */ +} + + +/* +** tells whether a key or value can be cleared from a weak +** table. Non-collectable objects are never removed from weak +** tables. Strings behave as 'values', so are never removed too. for +** other objects: if really collected, cannot keep them; for objects +** being finalized, keep them in keys, but not in values +*/ +static int iscleared (global_State *g, const TValue *o) { + if (!iscollectable(o)) return 0; + else if (ttisstring(o)) { + markobject(g, tsvalue(o)); /* strings are 'values', so are never weak */ + return 0; + } + else return iswhite(gcvalue(o)); +} + + +/* +** barrier that moves collector forward, that is, mark the white object +** being pointed by a black object. (If in sweep phase, clear the black +** object to white [sweep it] to avoid other barrier calls for this +** same object.) +*/ +void luaC_barrier_ (lua_State *L, GCObject *o, GCObject *v) { + global_State *g = G(L); + lua_assert(isblack(o) && iswhite(v) && !isdead(g, v) && !isdead(g, o)); + if (keepinvariant(g)) /* must keep invariant? */ + reallymarkobject(g, v); /* restore invariant */ + else { /* sweep phase */ + lua_assert(issweepphase(g)); + makewhite(g, o); /* mark main obj. as white to avoid other barriers */ + } +} + + +/* +** barrier that moves collector backward, that is, mark the black object +** pointing to a white object as gray again. +*/ +void luaC_barrierback_ (lua_State *L, Table *t) { + global_State *g = G(L); + lua_assert(isblack(t) && !isdead(g, t)); + black2gray(t); /* make table gray (again) */ + linkgclist(t, g->grayagain); +} + + +/* +** barrier for assignments to closed upvalues. Because upvalues are +** shared among closures, it is impossible to know the color of all +** closures pointing to it. So, we assume that the object being assigned +** must be marked. +*/ +void luaC_upvalbarrier_ (lua_State *L, UpVal *uv) { + global_State *g = G(L); + GCObject *o = gcvalue(uv->v); + lua_assert(!upisopen(uv)); /* ensured by macro luaC_upvalbarrier */ + if (keepinvariant(g)) + markobject(g, o); +} + + +void luaC_fix (lua_State *L, GCObject *o) { + global_State *g = G(L); + lua_assert(g->allgc == o); /* object must be 1st in 'allgc' list! */ + white2gray(o); /* they will be gray forever */ + g->allgc = o->next; /* remove object from 'allgc' list */ + o->next = g->fixedgc; /* link it to 'fixedgc' list */ + g->fixedgc = o; +} + + +/* +** create a new collectable object (with given type and size) and link +** it to 'allgc' list. +*/ +GCObject *luaC_newobj (lua_State *L, int tt, size_t sz) { + global_State *g = G(L); + GCObject *o = cast(GCObject *, luaM_newobject(L, novariant(tt), sz)); + o->marked = luaC_white(g); + o->tt = tt; + o->next = g->allgc; + g->allgc = o; + return o; +} + +/* }====================================================== */ + + + +/* +** {====================================================== +** Mark functions +** ======================================================= +*/ + + +/* +** mark an object. Userdata, strings, and closed upvalues are visited +** and turned black here. Other objects are marked gray and added +** to appropriate list to be visited (and turned black) later. (Open +** upvalues are already linked in 'headuv' list.) +*/ +static void reallymarkobject (global_State *g, GCObject *o) { + reentry: + white2gray(o); + switch (o->tt) { + case LUA_TSHRSTR: { + gray2black(o); + g->GCmemtrav += sizelstring(gco2ts(o)->shrlen); + break; + } + case LUA_TLNGSTR: { + gray2black(o); + g->GCmemtrav += sizelstring(gco2ts(o)->u.lnglen); + break; + } + case LUA_TUSERDATA: { + TValue uvalue; + markobjectN(g, gco2u(o)->metatable); /* mark its metatable */ + gray2black(o); + g->GCmemtrav += sizeudata(gco2u(o)); + getuservalue(g->mainthread, gco2u(o), &uvalue); + if (valiswhite(&uvalue)) { /* markvalue(g, &uvalue); */ + o = gcvalue(&uvalue); + goto reentry; + } + break; + } + case LUA_TLCL: { + linkgclist(gco2lcl(o), g->gray); + break; + } + case LUA_TCCL: { + linkgclist(gco2ccl(o), g->gray); + break; + } + case LUA_TTABLE: { + linkgclist(gco2t(o), g->gray); + break; + } + case LUA_TTHREAD: { + linkgclist(gco2th(o), g->gray); + break; + } + case LUA_TPROTO: { + linkgclist(gco2p(o), g->gray); + break; + } + default: lua_assert(0); break; + } +} + + +/* +** mark metamethods for basic types +*/ +static void markmt (global_State *g) { + int i; + for (i=0; i < LUA_NUMTAGS; i++) + markobjectN(g, g->mt[i]); +} + + +/* +** mark all objects in list of being-finalized +*/ +static void markbeingfnz (global_State *g) { + GCObject *o; + for (o = g->tobefnz; o != NULL; o = o->next) + markobject(g, o); +} + + +/* +** Mark all values stored in marked open upvalues from non-marked threads. +** (Values from marked threads were already marked when traversing the +** thread.) Remove from the list threads that no longer have upvalues and +** not-marked threads. +*/ +static void remarkupvals (global_State *g) { + lua_State *thread; + lua_State **p = &g->twups; + while ((thread = *p) != NULL) { + lua_assert(!isblack(thread)); /* threads are never black */ + if (isgray(thread) && thread->openupval != NULL) + p = &thread->twups; /* keep marked thread with upvalues in the list */ + else { /* thread is not marked or without upvalues */ + UpVal *uv; + *p = thread->twups; /* remove thread from the list */ + thread->twups = thread; /* mark that it is out of list */ + for (uv = thread->openupval; uv != NULL; uv = uv->u.open.next) { + if (uv->u.open.touched) { + markvalue(g, uv->v); /* remark upvalue's value */ + uv->u.open.touched = 0; + } + } + } + } +} + + +/* +** mark root set and reset all gray lists, to start a new collection +*/ +static void restartcollection (global_State *g) { + g->gray = g->grayagain = NULL; + g->weak = g->allweak = g->ephemeron = NULL; + markobject(g, g->mainthread); + markvalue(g, &g->l_registry); + markmt(g); + markbeingfnz(g); /* mark any finalizing object left from previous cycle */ +} + +/* }====================================================== */ + + +/* +** {====================================================== +** Traverse functions +** ======================================================= +*/ + +/* +** Traverse a table with weak values and link it to proper list. During +** propagate phase, keep it in 'grayagain' list, to be revisited in the +** atomic phase. In the atomic phase, if table has any white value, +** put it in 'weak' list, to be cleared. +*/ +static void traverseweakvalue (global_State *g, Table *h) { + Node *n, *limit = gnodelast(h); + /* if there is array part, assume it may have white values (it is not + worth traversing it now just to check) */ + int hasclears = (h->sizearray > 0); + for (n = gnode(h, 0); n < limit; n++) { /* traverse hash part */ + checkdeadkey(n); + if (ttisnil(gval(n))) /* entry is empty? */ + removeentry(n); /* remove it */ + else { + lua_assert(!ttisnil(gkey(n))); + markvalue(g, gkey(n)); /* mark key */ + if (!hasclears && iscleared(g, gval(n))) /* is there a white value? */ + hasclears = 1; /* table will have to be cleared */ + } + } + if (g->gcstate == GCSpropagate) + linkgclist(h, g->grayagain); /* must retraverse it in atomic phase */ + else if (hasclears) + linkgclist(h, g->weak); /* has to be cleared later */ +} + + +/* +** Traverse an ephemeron table and link it to proper list. Returns true +** iff any object was marked during this traversal (which implies that +** convergence has to continue). During propagation phase, keep table +** in 'grayagain' list, to be visited again in the atomic phase. In +** the atomic phase, if table has any white->white entry, it has to +** be revisited during ephemeron convergence (as that key may turn +** black). Otherwise, if it has any white key, table has to be cleared +** (in the atomic phase). +*/ +static int traverseephemeron (global_State *g, Table *h) { + int marked = 0; /* true if an object is marked in this traversal */ + int hasclears = 0; /* true if table has white keys */ + int hasww = 0; /* true if table has entry "white-key -> white-value" */ + Node *n, *limit = gnodelast(h); + unsigned int i; + /* traverse array part */ + for (i = 0; i < h->sizearray; i++) { + if (valiswhite(&h->array[i])) { + marked = 1; + reallymarkobject(g, gcvalue(&h->array[i])); + } + } + /* traverse hash part */ + for (n = gnode(h, 0); n < limit; n++) { + checkdeadkey(n); + if (ttisnil(gval(n))) /* entry is empty? */ + removeentry(n); /* remove it */ + else if (iscleared(g, gkey(n))) { /* key is not marked (yet)? */ + hasclears = 1; /* table must be cleared */ + if (valiswhite(gval(n))) /* value not marked yet? */ + hasww = 1; /* white-white entry */ + } + else if (valiswhite(gval(n))) { /* value not marked yet? */ + marked = 1; + reallymarkobject(g, gcvalue(gval(n))); /* mark it now */ + } + } + /* link table into proper list */ + if (g->gcstate == GCSpropagate) + linkgclist(h, g->grayagain); /* must retraverse it in atomic phase */ + else if (hasww) /* table has white->white entries? */ + linkgclist(h, g->ephemeron); /* have to propagate again */ + else if (hasclears) /* table has white keys? */ + linkgclist(h, g->allweak); /* may have to clean white keys */ + return marked; +} + + +static void traversestrongtable (global_State *g, Table *h) { + Node *n, *limit = gnodelast(h); + unsigned int i; + for (i = 0; i < h->sizearray; i++) /* traverse array part */ + markvalue(g, &h->array[i]); + for (n = gnode(h, 0); n < limit; n++) { /* traverse hash part */ + checkdeadkey(n); + if (ttisnil(gval(n))) /* entry is empty? */ + removeentry(n); /* remove it */ + else { + lua_assert(!ttisnil(gkey(n))); + markvalue(g, gkey(n)); /* mark key */ + markvalue(g, gval(n)); /* mark value */ + } + } +} + + +static lu_mem traversetable (global_State *g, Table *h) { + const char *weakkey, *weakvalue; + const TValue *mode = gfasttm(g, h->metatable, TM_MODE); + markobjectN(g, h->metatable); + if (mode && ttisstring(mode) && /* is there a weak mode? */ + ((weakkey = strchr(svalue(mode), 'k')), + (weakvalue = strchr(svalue(mode), 'v')), + (weakkey || weakvalue))) { /* is really weak? */ + black2gray(h); /* keep table gray */ + if (!weakkey) /* strong keys? */ + traverseweakvalue(g, h); + else if (!weakvalue) /* strong values? */ + traverseephemeron(g, h); + else /* all weak */ + linkgclist(h, g->allweak); /* nothing to traverse now */ + } + else /* not weak */ + traversestrongtable(g, h); + return sizeof(Table) + sizeof(TValue) * h->sizearray + + sizeof(Node) * cast(size_t, allocsizenode(h)); +} + + +/* +** Traverse a prototype. (While a prototype is being build, its +** arrays can be larger than needed; the extra slots are filled with +** NULL, so the use of 'markobjectN') +*/ +static int traverseproto (global_State *g, Proto *f) { + int i; + if (f->cache && iswhite(f->cache)) + f->cache = NULL; /* allow cache to be collected */ + markobjectN(g, f->source); + for (i = 0; i < f->sizek; i++) /* mark literals */ + markvalue(g, &f->k[i]); + for (i = 0; i < f->sizeupvalues; i++) /* mark upvalue names */ + markobjectN(g, f->upvalues[i].name); + for (i = 0; i < f->sizep; i++) /* mark nested protos */ + markobjectN(g, f->p[i]); + for (i = 0; i < f->sizelocvars; i++) /* mark local-variable names */ + markobjectN(g, f->locvars[i].varname); + return sizeof(Proto) + sizeof(Instruction) * f->sizecode + + sizeof(Proto *) * f->sizep + + sizeof(TValue) * f->sizek + + sizeof(int) * f->sizelineinfo + + sizeof(LocVar) * f->sizelocvars + + sizeof(Upvaldesc) * f->sizeupvalues; +} + + +static lu_mem traverseCclosure (global_State *g, CClosure *cl) { + int i; + for (i = 0; i < cl->nupvalues; i++) /* mark its upvalues */ + markvalue(g, &cl->upvalue[i]); + return sizeCclosure(cl->nupvalues); +} + +/* +** open upvalues point to values in a thread, so those values should +** be marked when the thread is traversed except in the atomic phase +** (because then the value cannot be changed by the thread and the +** thread may not be traversed again) +*/ +static lu_mem traverseLclosure (global_State *g, LClosure *cl) { + int i; + markobjectN(g, cl->p); /* mark its prototype */ + for (i = 0; i < cl->nupvalues; i++) { /* mark its upvalues */ + UpVal *uv = cl->upvals[i]; + if (uv != NULL) { + if (upisopen(uv) && g->gcstate != GCSinsideatomic) + uv->u.open.touched = 1; /* can be marked in 'remarkupvals' */ + else + markvalue(g, uv->v); + } + } + return sizeLclosure(cl->nupvalues); +} + + +static lu_mem traversethread (global_State *g, lua_State *th) { + StkId o = th->stack; + if (o == NULL) + return 1; /* stack not completely built yet */ + lua_assert(g->gcstate == GCSinsideatomic || + th->openupval == NULL || isintwups(th)); + for (; o < th->top; o++) /* mark live elements in the stack */ + markvalue(g, o); + if (g->gcstate == GCSinsideatomic) { /* final traversal? */ + StkId lim = th->stack + th->stacksize; /* real end of stack */ + for (; o < lim; o++) /* clear not-marked stack slice */ + setnilvalue(o); + /* 'remarkupvals' may have removed thread from 'twups' list */ + if (!isintwups(th) && th->openupval != NULL) { + th->twups = g->twups; /* link it back to the list */ + g->twups = th; + } + } + else if (g->gckind != KGC_EMERGENCY) + luaD_shrinkstack(th); /* do not change stack in emergency cycle */ + return (sizeof(lua_State) + sizeof(TValue) * th->stacksize + + sizeof(CallInfo) * th->nci); +} + + +/* +** traverse one gray object, turning it to black (except for threads, +** which are always gray). +*/ +static void propagatemark (global_State *g) { + lu_mem size; + GCObject *o = g->gray; + lua_assert(isgray(o)); + gray2black(o); + switch (o->tt) { + case LUA_TTABLE: { + Table *h = gco2t(o); + g->gray = h->gclist; /* remove from 'gray' list */ + size = traversetable(g, h); + break; + } + case LUA_TLCL: { + LClosure *cl = gco2lcl(o); + g->gray = cl->gclist; /* remove from 'gray' list */ + size = traverseLclosure(g, cl); + break; + } + case LUA_TCCL: { + CClosure *cl = gco2ccl(o); + g->gray = cl->gclist; /* remove from 'gray' list */ + size = traverseCclosure(g, cl); + break; + } + case LUA_TTHREAD: { + lua_State *th = gco2th(o); + g->gray = th->gclist; /* remove from 'gray' list */ + linkgclist(th, g->grayagain); /* insert into 'grayagain' list */ + black2gray(o); + size = traversethread(g, th); + break; + } + case LUA_TPROTO: { + Proto *p = gco2p(o); + g->gray = p->gclist; /* remove from 'gray' list */ + size = traverseproto(g, p); + break; + } + default: lua_assert(0); return; + } + g->GCmemtrav += size; +} + + +static void propagateall (global_State *g) { + while (g->gray) propagatemark(g); +} + + +static void convergeephemerons (global_State *g) { + int changed; + do { + GCObject *w; + GCObject *next = g->ephemeron; /* get ephemeron list */ + g->ephemeron = NULL; /* tables may return to this list when traversed */ + changed = 0; + while ((w = next) != NULL) { + next = gco2t(w)->gclist; + if (traverseephemeron(g, gco2t(w))) { /* traverse marked some value? */ + propagateall(g); /* propagate changes */ + changed = 1; /* will have to revisit all ephemeron tables */ + } + } + } while (changed); +} + +/* }====================================================== */ + + +/* +** {====================================================== +** Sweep Functions +** ======================================================= +*/ + + +/* +** clear entries with unmarked keys from all weaktables in list 'l' up +** to element 'f' +*/ +static void clearkeys (global_State *g, GCObject *l, GCObject *f) { + for (; l != f; l = gco2t(l)->gclist) { + Table *h = gco2t(l); + Node *n, *limit = gnodelast(h); + for (n = gnode(h, 0); n < limit; n++) { + if (!ttisnil(gval(n)) && (iscleared(g, gkey(n)))) { + setnilvalue(gval(n)); /* remove value ... */ + removeentry(n); /* and remove entry from table */ + } + } + } +} + + +/* +** clear entries with unmarked values from all weaktables in list 'l' up +** to element 'f' +*/ +static void clearvalues (global_State *g, GCObject *l, GCObject *f) { + for (; l != f; l = gco2t(l)->gclist) { + Table *h = gco2t(l); + Node *n, *limit = gnodelast(h); + unsigned int i; + for (i = 0; i < h->sizearray; i++) { + TValue *o = &h->array[i]; + if (iscleared(g, o)) /* value was collected? */ + setnilvalue(o); /* remove value */ + } + for (n = gnode(h, 0); n < limit; n++) { + if (!ttisnil(gval(n)) && iscleared(g, gval(n))) { + setnilvalue(gval(n)); /* remove value ... */ + removeentry(n); /* and remove entry from table */ + } + } + } +} + + +void luaC_upvdeccount (lua_State *L, UpVal *uv) { + lua_assert(uv->refcount > 0); + uv->refcount--; + if (uv->refcount == 0 && !upisopen(uv)) + luaM_free(L, uv); +} + + +static void freeLclosure (lua_State *L, LClosure *cl) { + int i; + for (i = 0; i < cl->nupvalues; i++) { + UpVal *uv = cl->upvals[i]; + if (uv) + luaC_upvdeccount(L, uv); + } + luaM_freemem(L, cl, sizeLclosure(cl->nupvalues)); +} + + +static void freeobj (lua_State *L, GCObject *o) { + switch (o->tt) { + case LUA_TPROTO: luaF_freeproto(L, gco2p(o)); break; + case LUA_TLCL: { + freeLclosure(L, gco2lcl(o)); + break; + } + case LUA_TCCL: { + luaM_freemem(L, o, sizeCclosure(gco2ccl(o)->nupvalues)); + break; + } + case LUA_TTABLE: luaH_free(L, gco2t(o)); break; + case LUA_TTHREAD: luaE_freethread(L, gco2th(o)); break; + case LUA_TUSERDATA: luaM_freemem(L, o, sizeudata(gco2u(o))); break; + case LUA_TSHRSTR: + luaS_remove(L, gco2ts(o)); /* remove it from hash table */ + luaM_freemem(L, o, sizelstring(gco2ts(o)->shrlen)); + break; + case LUA_TLNGSTR: { + luaM_freemem(L, o, sizelstring(gco2ts(o)->u.lnglen)); + break; + } + default: lua_assert(0); + } +} + + +#define sweepwholelist(L,p) sweeplist(L,p,MAX_LUMEM) +static GCObject **sweeplist (lua_State *L, GCObject **p, lu_mem count); + + +/* +** sweep at most 'count' elements from a list of GCObjects erasing dead +** objects, where a dead object is one marked with the old (non current) +** white; change all non-dead objects back to white, preparing for next +** collection cycle. Return where to continue the traversal or NULL if +** list is finished. +*/ +static GCObject **sweeplist (lua_State *L, GCObject **p, lu_mem count) { + global_State *g = G(L); + int ow = otherwhite(g); + int white = luaC_white(g); /* current white */ + while (*p != NULL && count-- > 0) { + GCObject *curr = *p; + int marked = curr->marked; + if (isdeadm(ow, marked)) { /* is 'curr' dead? */ + *p = curr->next; /* remove 'curr' from list */ + freeobj(L, curr); /* erase 'curr' */ + } + else { /* change mark to 'white' */ + curr->marked = cast_byte((marked & maskcolors) | white); + p = &curr->next; /* go to next element */ + } + } + return (*p == NULL) ? NULL : p; +} + + +/* +** sweep a list until a live object (or end of list) +*/ +static GCObject **sweeptolive (lua_State *L, GCObject **p) { + GCObject **old = p; + do { + p = sweeplist(L, p, 1); + } while (p == old); + return p; +} + +/* }====================================================== */ + + +/* +** {====================================================== +** Finalization +** ======================================================= +*/ + +/* +** If possible, shrink string table +*/ +static void checkSizes (lua_State *L, global_State *g) { + if (g->gckind != KGC_EMERGENCY) { + l_mem olddebt = g->GCdebt; + if (g->strt.nuse < g->strt.size / 4) /* string table too big? */ + luaS_resize(L, g->strt.size / 2); /* shrink it a little */ + g->GCestimate += g->GCdebt - olddebt; /* update estimate */ + } +} + + +static GCObject *udata2finalize (global_State *g) { + GCObject *o = g->tobefnz; /* get first element */ + lua_assert(tofinalize(o)); + g->tobefnz = o->next; /* remove it from 'tobefnz' list */ + o->next = g->allgc; /* return it to 'allgc' list */ + g->allgc = o; + resetbit(o->marked, FINALIZEDBIT); /* object is "normal" again */ + if (issweepphase(g)) + makewhite(g, o); /* "sweep" object */ + return o; +} + + +static void dothecall (lua_State *L, void *ud) { + UNUSED(ud); + luaD_callnoyield(L, L->top - 2, 0); +} + + +static void GCTM (lua_State *L, int propagateerrors) { + global_State *g = G(L); + const TValue *tm; + TValue v; + setgcovalue(L, &v, udata2finalize(g)); + tm = luaT_gettmbyobj(L, &v, TM_GC); + if (tm != NULL && ttisfunction(tm)) { /* is there a finalizer? */ + int status; + lu_byte oldah = L->allowhook; + int running = g->gcrunning; + L->allowhook = 0; /* stop debug hooks during GC metamethod */ + g->gcrunning = 0; /* avoid GC steps */ + setobj2s(L, L->top, tm); /* push finalizer... */ + setobj2s(L, L->top + 1, &v); /* ... and its argument */ + L->top += 2; /* and (next line) call the finalizer */ + L->ci->callstatus |= CIST_FIN; /* will run a finalizer */ + status = luaD_pcall(L, dothecall, NULL, savestack(L, L->top - 2), 0); + L->ci->callstatus &= ~CIST_FIN; /* not running a finalizer anymore */ + L->allowhook = oldah; /* restore hooks */ + g->gcrunning = running; /* restore state */ + if (status != LUA_OK && propagateerrors) { /* error while running __gc? */ + if (status == LUA_ERRRUN) { /* is there an error object? */ + const char *msg = (ttisstring(L->top - 1)) + ? svalue(L->top - 1) + : "no message"; + luaO_pushfstring(L, "error in __gc metamethod (%s)", msg); + status = LUA_ERRGCMM; /* error in __gc metamethod */ + } + luaD_throw(L, status); /* re-throw error */ + } + } +} + + +/* +** call a few (up to 'g->gcfinnum') finalizers +*/ +static int runafewfinalizers (lua_State *L) { + global_State *g = G(L); + unsigned int i; + lua_assert(!g->tobefnz || g->gcfinnum > 0); + for (i = 0; g->tobefnz && i < g->gcfinnum; i++) + GCTM(L, 1); /* call one finalizer */ + g->gcfinnum = (!g->tobefnz) ? 0 /* nothing more to finalize? */ + : g->gcfinnum * 2; /* else call a few more next time */ + return i; +} + + +/* +** call all pending finalizers +*/ +static void callallpendingfinalizers (lua_State *L) { + global_State *g = G(L); + while (g->tobefnz) + GCTM(L, 0); +} + + +/* +** find last 'next' field in list 'p' list (to add elements in its end) +*/ +static GCObject **findlast (GCObject **p) { + while (*p != NULL) + p = &(*p)->next; + return p; +} + + +/* +** move all unreachable objects (or 'all' objects) that need +** finalization from list 'finobj' to list 'tobefnz' (to be finalized) +*/ +static void separatetobefnz (global_State *g, int all) { + GCObject *curr; + GCObject **p = &g->finobj; + GCObject **lastnext = findlast(&g->tobefnz); + while ((curr = *p) != NULL) { /* traverse all finalizable objects */ + lua_assert(tofinalize(curr)); + if (!(iswhite(curr) || all)) /* not being collected? */ + p = &curr->next; /* don't bother with it */ + else { + *p = curr->next; /* remove 'curr' from 'finobj' list */ + curr->next = *lastnext; /* link at the end of 'tobefnz' list */ + *lastnext = curr; + lastnext = &curr->next; + } + } +} + + +/* +** if object 'o' has a finalizer, remove it from 'allgc' list (must +** search the list to find it) and link it in 'finobj' list. +*/ +void luaC_checkfinalizer (lua_State *L, GCObject *o, Table *mt) { + global_State *g = G(L); + if (tofinalize(o) || /* obj. is already marked... */ + gfasttm(g, mt, TM_GC) == NULL) /* or has no finalizer? */ + return; /* nothing to be done */ + else { /* move 'o' to 'finobj' list */ + GCObject **p; + if (issweepphase(g)) { + makewhite(g, o); /* "sweep" object 'o' */ + if (g->sweepgc == &o->next) /* should not remove 'sweepgc' object */ + g->sweepgc = sweeptolive(L, g->sweepgc); /* change 'sweepgc' */ + } + /* search for pointer pointing to 'o' */ + for (p = &g->allgc; *p != o; p = &(*p)->next) { /* empty */ } + *p = o->next; /* remove 'o' from 'allgc' list */ + o->next = g->finobj; /* link it in 'finobj' list */ + g->finobj = o; + l_setbit(o->marked, FINALIZEDBIT); /* mark it as such */ + } +} + +/* }====================================================== */ + + + +/* +** {====================================================== +** GC control +** ======================================================= +*/ + + +/* +** Set a reasonable "time" to wait before starting a new GC cycle; cycle +** will start when memory use hits threshold. (Division by 'estimate' +** should be OK: it cannot be zero (because Lua cannot even start with +** less than PAUSEADJ bytes). +*/ +static void setpause (global_State *g) { + l_mem threshold, debt; + l_mem estimate = g->GCestimate / PAUSEADJ; /* adjust 'estimate' */ + lua_assert(estimate > 0); + threshold = (g->gcpause < MAX_LMEM / estimate) /* overflow? */ + ? estimate * g->gcpause /* no overflow */ + : MAX_LMEM; /* overflow; truncate to maximum */ + debt = gettotalbytes(g) - threshold; + luaE_setdebt(g, debt); +} + + +/* +** Enter first sweep phase. +** The call to 'sweeplist' tries to make pointer point to an object +** inside the list (instead of to the header), so that the real sweep do +** not need to skip objects created between "now" and the start of the +** real sweep. +*/ +static void entersweep (lua_State *L) { + global_State *g = G(L); + g->gcstate = GCSswpallgc; + lua_assert(g->sweepgc == NULL); + g->sweepgc = sweeplist(L, &g->allgc, 1); +} + + +void luaC_freeallobjects (lua_State *L) { + global_State *g = G(L); + separatetobefnz(g, 1); /* separate all objects with finalizers */ + lua_assert(g->finobj == NULL); + callallpendingfinalizers(L); + lua_assert(g->tobefnz == NULL); + g->currentwhite = WHITEBITS; /* this "white" makes all objects look dead */ + g->gckind = KGC_NORMAL; + sweepwholelist(L, &g->finobj); + sweepwholelist(L, &g->allgc); + sweepwholelist(L, &g->fixedgc); /* collect fixed objects */ + lua_assert(g->strt.nuse == 0); +} + + +static l_mem atomic (lua_State *L) { + global_State *g = G(L); + l_mem work; + GCObject *origweak, *origall; + GCObject *grayagain = g->grayagain; /* save original list */ + lua_assert(g->ephemeron == NULL && g->weak == NULL); + lua_assert(!iswhite(g->mainthread)); + g->gcstate = GCSinsideatomic; + g->GCmemtrav = 0; /* start counting work */ + markobject(g, L); /* mark running thread */ + /* registry and global metatables may be changed by API */ + markvalue(g, &g->l_registry); + markmt(g); /* mark global metatables */ + /* remark occasional upvalues of (maybe) dead threads */ + remarkupvals(g); + propagateall(g); /* propagate changes */ + work = g->GCmemtrav; /* stop counting (do not recount 'grayagain') */ + g->gray = grayagain; + propagateall(g); /* traverse 'grayagain' list */ + g->GCmemtrav = 0; /* restart counting */ + convergeephemerons(g); + /* at this point, all strongly accessible objects are marked. */ + /* Clear values from weak tables, before checking finalizers */ + clearvalues(g, g->weak, NULL); + clearvalues(g, g->allweak, NULL); + origweak = g->weak; origall = g->allweak; + work += g->GCmemtrav; /* stop counting (objects being finalized) */ + separatetobefnz(g, 0); /* separate objects to be finalized */ + g->gcfinnum = 1; /* there may be objects to be finalized */ + markbeingfnz(g); /* mark objects that will be finalized */ + propagateall(g); /* remark, to propagate 'resurrection' */ + g->GCmemtrav = 0; /* restart counting */ + convergeephemerons(g); + /* at this point, all resurrected objects are marked. */ + /* remove dead objects from weak tables */ + clearkeys(g, g->ephemeron, NULL); /* clear keys from all ephemeron tables */ + clearkeys(g, g->allweak, NULL); /* clear keys from all 'allweak' tables */ + /* clear values from resurrected weak tables */ + clearvalues(g, g->weak, origweak); + clearvalues(g, g->allweak, origall); + luaS_clearcache(g); + g->currentwhite = cast_byte(otherwhite(g)); /* flip current white */ + work += g->GCmemtrav; /* complete counting */ + return work; /* estimate of memory marked by 'atomic' */ +} + + +static lu_mem sweepstep (lua_State *L, global_State *g, + int nextstate, GCObject **nextlist) { + if (g->sweepgc) { + l_mem olddebt = g->GCdebt; + g->sweepgc = sweeplist(L, g->sweepgc, GCSWEEPMAX); + g->GCestimate += g->GCdebt - olddebt; /* update estimate */ + if (g->sweepgc) /* is there still something to sweep? */ + return (GCSWEEPMAX * GCSWEEPCOST); + } + /* else enter next state */ + g->gcstate = nextstate; + g->sweepgc = nextlist; + return 0; +} + + +static lu_mem singlestep (lua_State *L) { + global_State *g = G(L); + switch (g->gcstate) { + case GCSpause: { + g->GCmemtrav = g->strt.size * sizeof(GCObject*); + restartcollection(g); + g->gcstate = GCSpropagate; + return g->GCmemtrav; + } + case GCSpropagate: { + g->GCmemtrav = 0; + lua_assert(g->gray); + propagatemark(g); + if (g->gray == NULL) /* no more gray objects? */ + g->gcstate = GCSatomic; /* finish propagate phase */ + return g->GCmemtrav; /* memory traversed in this step */ + } + case GCSatomic: { + lu_mem work; + propagateall(g); /* make sure gray list is empty */ + work = atomic(L); /* work is what was traversed by 'atomic' */ + entersweep(L); + g->GCestimate = gettotalbytes(g); /* first estimate */; + return work; + } + case GCSswpallgc: { /* sweep "regular" objects */ + return sweepstep(L, g, GCSswpfinobj, &g->finobj); + } + case GCSswpfinobj: { /* sweep objects with finalizers */ + return sweepstep(L, g, GCSswptobefnz, &g->tobefnz); + } + case GCSswptobefnz: { /* sweep objects to be finalized */ + return sweepstep(L, g, GCSswpend, NULL); + } + case GCSswpend: { /* finish sweeps */ + makewhite(g, g->mainthread); /* sweep main thread */ + checkSizes(L, g); + g->gcstate = GCScallfin; + return 0; + } + case GCScallfin: { /* call remaining finalizers */ + if (g->tobefnz && g->gckind != KGC_EMERGENCY) { + int n = runafewfinalizers(L); + return (n * GCFINALIZECOST); + } + else { /* emergency mode or no more finalizers */ + g->gcstate = GCSpause; /* finish collection */ + return 0; + } + } + default: lua_assert(0); return 0; + } +} + + +/* +** advances the garbage collector until it reaches a state allowed +** by 'statemask' +*/ +void luaC_runtilstate (lua_State *L, int statesmask) { + global_State *g = G(L); + while (!testbit(statesmask, g->gcstate)) + singlestep(L); +} + + +/* +** get GC debt and convert it from Kb to 'work units' (avoid zero debt +** and overflows) +*/ +static l_mem getdebt (global_State *g) { + l_mem debt = g->GCdebt; + int stepmul = g->gcstepmul; + if (debt <= 0) return 0; /* minimal debt */ + else { + debt = (debt / STEPMULADJ) + 1; + debt = (debt < MAX_LMEM / stepmul) ? debt * stepmul : MAX_LMEM; + return debt; + } +} + +/* +** performs a basic GC step when collector is running +*/ +void luaC_step (lua_State *L) { + global_State *g = G(L); + l_mem debt = getdebt(g); /* GC deficit (be paid now) */ + if (!g->gcrunning) { /* not running? */ + luaE_setdebt(g, -GCSTEPSIZE * 10); /* avoid being called too often */ + return; + } + do { /* repeat until pause or enough "credit" (negative debt) */ + lu_mem work = singlestep(L); /* perform one single step */ + debt -= work; + } while (debt > -GCSTEPSIZE && g->gcstate != GCSpause); + if (g->gcstate == GCSpause) + setpause(g); /* pause until next cycle */ + else { + debt = (debt / g->gcstepmul) * STEPMULADJ; /* convert 'work units' to Kb */ + luaE_setdebt(g, debt); + runafewfinalizers(L); + } +} + + +/* +** Performs a full GC cycle; if 'isemergency', set a flag to avoid +** some operations which could change the interpreter state in some +** unexpected ways (running finalizers and shrinking some structures). +** Before running the collection, check 'keepinvariant'; if it is true, +** there may be some objects marked as black, so the collector has +** to sweep all objects to turn them back to white (as white has not +** changed, nothing will be collected). +*/ +void luaC_fullgc (lua_State *L, int isemergency) { + global_State *g = G(L); + lua_assert(g->gckind == KGC_NORMAL); + if (isemergency) g->gckind = KGC_EMERGENCY; /* set flag */ + if (keepinvariant(g)) { /* black objects? */ + entersweep(L); /* sweep everything to turn them back to white */ + } + /* finish any pending sweep phase to start a new cycle */ + luaC_runtilstate(L, bitmask(GCSpause)); + luaC_runtilstate(L, ~bitmask(GCSpause)); /* start new collection */ + luaC_runtilstate(L, bitmask(GCScallfin)); /* run up to finalizers */ + /* estimate must be correct after a full GC cycle */ + lua_assert(g->GCestimate == gettotalbytes(g)); + luaC_runtilstate(L, bitmask(GCSpause)); /* finish collection */ + g->gckind = KGC_NORMAL; + setpause(g); +} + +/* }====================================================== */ + + diff --git a/3rd/lua-5.3.4/lgc.h b/3rd/lua-5.3.4/lgc.h new file mode 100644 index 0000000..aed3e18 --- /dev/null +++ b/3rd/lua-5.3.4/lgc.h @@ -0,0 +1,147 @@ +/* +** $Id: lgc.h,v 2.91 2015/12/21 13:02:14 roberto Exp $ +** Garbage Collector +** See Copyright Notice in lua.h +*/ + +#ifndef lgc_h +#define lgc_h + + +#include "lobject.h" +#include "lstate.h" + +/* +** Collectable objects may have one of three colors: white, which +** means the object is not marked; gray, which means the +** object is marked, but its references may be not marked; and +** black, which means that the object and all its references are marked. +** The main invariant of the garbage collector, while marking objects, +** is that a black object can never point to a white one. Moreover, +** any gray object must be in a "gray list" (gray, grayagain, weak, +** allweak, ephemeron) so that it can be visited again before finishing +** the collection cycle. These lists have no meaning when the invariant +** is not being enforced (e.g., sweep phase). +*/ + + + +/* how much to allocate before next GC step */ +#if !defined(GCSTEPSIZE) +/* ~100 small strings */ +#define GCSTEPSIZE (cast_int(100 * sizeof(TString))) +#endif + + +/* +** Possible states of the Garbage Collector +*/ +#define GCSpropagate 0 +#define GCSatomic 1 +#define GCSswpallgc 2 +#define GCSswpfinobj 3 +#define GCSswptobefnz 4 +#define GCSswpend 5 +#define GCScallfin 6 +#define GCSpause 7 + + +#define issweepphase(g) \ + (GCSswpallgc <= (g)->gcstate && (g)->gcstate <= GCSswpend) + + +/* +** macro to tell when main invariant (white objects cannot point to black +** ones) must be kept. During a collection, the sweep +** phase may break the invariant, as objects turned white may point to +** still-black objects. The invariant is restored when sweep ends and +** all objects are white again. +*/ + +#define keepinvariant(g) ((g)->gcstate <= GCSatomic) + + +/* +** some useful bit tricks +*/ +#define resetbits(x,m) ((x) &= cast(lu_byte, ~(m))) +#define setbits(x,m) ((x) |= (m)) +#define testbits(x,m) ((x) & (m)) +#define bitmask(b) (1<<(b)) +#define bit2mask(b1,b2) (bitmask(b1) | bitmask(b2)) +#define l_setbit(x,b) setbits(x, bitmask(b)) +#define resetbit(x,b) resetbits(x, bitmask(b)) +#define testbit(x,b) testbits(x, bitmask(b)) + + +/* Layout for bit use in 'marked' field: */ +#define WHITE0BIT 0 /* object is white (type 0) */ +#define WHITE1BIT 1 /* object is white (type 1) */ +#define BLACKBIT 2 /* object is black */ +#define FINALIZEDBIT 3 /* object has been marked for finalization */ +/* bit 7 is currently used by tests (luaL_checkmemory) */ + +#define WHITEBITS bit2mask(WHITE0BIT, WHITE1BIT) + + +#define iswhite(x) testbits((x)->marked, WHITEBITS) +#define isblack(x) testbit((x)->marked, BLACKBIT) +#define isgray(x) /* neither white nor black */ \ + (!testbits((x)->marked, WHITEBITS | bitmask(BLACKBIT))) + +#define tofinalize(x) testbit((x)->marked, FINALIZEDBIT) + +#define otherwhite(g) ((g)->currentwhite ^ WHITEBITS) +#define isdeadm(ow,m) (!(((m) ^ WHITEBITS) & (ow))) +#define isdead(g,v) isdeadm(otherwhite(g), (v)->marked) + +#define changewhite(x) ((x)->marked ^= WHITEBITS) +#define gray2black(x) l_setbit((x)->marked, BLACKBIT) + +#define luaC_white(g) cast(lu_byte, (g)->currentwhite & WHITEBITS) + + +/* +** Does one step of collection when debt becomes positive. 'pre'/'pos' +** allows some adjustments to be done only when needed. macro +** 'condchangemem' is used only for heavy tests (forcing a full +** GC cycle on every opportunity) +*/ +#define luaC_condGC(L,pre,pos) \ + { if (G(L)->GCdebt > 0) { pre; luaC_step(L); pos;}; \ + condchangemem(L,pre,pos); } + +/* more often than not, 'pre'/'pos' are empty */ +#define luaC_checkGC(L) luaC_condGC(L,(void)0,(void)0) + + +#define luaC_barrier(L,p,v) ( \ + (iscollectable(v) && isblack(p) && iswhite(gcvalue(v))) ? \ + luaC_barrier_(L,obj2gco(p),gcvalue(v)) : cast_void(0)) + +#define luaC_barrierback(L,p,v) ( \ + (iscollectable(v) && isblack(p) && iswhite(gcvalue(v))) ? \ + luaC_barrierback_(L,p) : cast_void(0)) + +#define luaC_objbarrier(L,p,o) ( \ + (isblack(p) && iswhite(o)) ? \ + luaC_barrier_(L,obj2gco(p),obj2gco(o)) : cast_void(0)) + +#define luaC_upvalbarrier(L,uv) ( \ + (iscollectable((uv)->v) && !upisopen(uv)) ? \ + luaC_upvalbarrier_(L,uv) : cast_void(0)) + +LUAI_FUNC void luaC_fix (lua_State *L, GCObject *o); +LUAI_FUNC void luaC_freeallobjects (lua_State *L); +LUAI_FUNC void luaC_step (lua_State *L); +LUAI_FUNC void luaC_runtilstate (lua_State *L, int statesmask); +LUAI_FUNC void luaC_fullgc (lua_State *L, int isemergency); +LUAI_FUNC GCObject *luaC_newobj (lua_State *L, int tt, size_t sz); +LUAI_FUNC void luaC_barrier_ (lua_State *L, GCObject *o, GCObject *v); +LUAI_FUNC void luaC_barrierback_ (lua_State *L, Table *o); +LUAI_FUNC void luaC_upvalbarrier_ (lua_State *L, UpVal *uv); +LUAI_FUNC void luaC_checkfinalizer (lua_State *L, GCObject *o, Table *mt); +LUAI_FUNC void luaC_upvdeccount (lua_State *L, UpVal *uv); + + +#endif diff --git a/3rd/lua-5.3.4/linit.c b/3rd/lua-5.3.4/linit.c new file mode 100644 index 0000000..afcaf98 --- /dev/null +++ b/3rd/lua-5.3.4/linit.c @@ -0,0 +1,68 @@ +/* +** $Id: linit.c,v 1.39 2016/12/04 20:17:24 roberto Exp $ +** Initialization of libraries for lua.c and other clients +** See Copyright Notice in lua.h +*/ + + +#define linit_c +#define LUA_LIB + +/* +** If you embed Lua in your program and need to open the standard +** libraries, call luaL_openlibs in your program. If you need a +** different set of libraries, copy this file to your project and edit +** it to suit your needs. +** +** You can also *preload* libraries, so that a later 'require' can +** open the library, which is already linked to the application. +** For that, do the following code: +** +** luaL_getsubtable(L, LUA_REGISTRYINDEX, LUA_PRELOAD_TABLE); +** lua_pushcfunction(L, luaopen_modname); +** lua_setfield(L, -2, modname); +** lua_pop(L, 1); // remove PRELOAD table +*/ + +#include "lprefix.h" + + +#include + +#include "lua.h" + +#include "lualib.h" +#include "lauxlib.h" + + +/* +** these libs are loaded by lua.c and are readily available to any Lua +** program +*/ +static const luaL_Reg loadedlibs[] = { + {"_G", luaopen_base}, + {LUA_LOADLIBNAME, luaopen_package}, + {LUA_COLIBNAME, luaopen_coroutine}, + {LUA_TABLIBNAME, luaopen_table}, + {LUA_IOLIBNAME, luaopen_io}, + {LUA_OSLIBNAME, luaopen_os}, + {LUA_STRLIBNAME, luaopen_string}, + {LUA_MATHLIBNAME, luaopen_math}, + {LUA_UTF8LIBNAME, luaopen_utf8}, + {LUA_DBLIBNAME, luaopen_debug}, +#if defined(LUA_COMPAT_BITLIB) + {LUA_BITLIBNAME, luaopen_bit32}, +#endif + {NULL, NULL} +}; + + +LUALIB_API void luaL_openlibs (lua_State *L) { + const luaL_Reg *lib; + /* "require" functions from 'loadedlibs' and set results to global table */ + for (lib = loadedlibs; lib->func; lib++) { + luaL_requiref(L, lib->name, lib->func, 1); + lua_pop(L, 1); /* remove lib */ + } +} + diff --git a/3rd/lua-5.3.4/liolib.c b/3rd/lua-5.3.4/liolib.c new file mode 100644 index 0000000..1568403 --- /dev/null +++ b/3rd/lua-5.3.4/liolib.c @@ -0,0 +1,771 @@ +/* +** $Id: liolib.c,v 2.151 2016/12/20 18:37:00 roberto Exp $ +** Standard I/O (and system) library +** See Copyright Notice in lua.h +*/ + +#define liolib_c +#define LUA_LIB + +#include "lprefix.h" + + +#include +#include +#include +#include +#include +#include + +#include "lua.h" + +#include "lauxlib.h" +#include "lualib.h" + + + + +/* +** Change this macro to accept other modes for 'fopen' besides +** the standard ones. +*/ +#if !defined(l_checkmode) + +/* accepted extensions to 'mode' in 'fopen' */ +#if !defined(L_MODEEXT) +#define L_MODEEXT "b" +#endif + +/* Check whether 'mode' matches '[rwa]%+?[L_MODEEXT]*' */ +static int l_checkmode (const char *mode) { + return (*mode != '\0' && strchr("rwa", *(mode++)) != NULL && + (*mode != '+' || (++mode, 1)) && /* skip if char is '+' */ + (strspn(mode, L_MODEEXT) == strlen(mode))); /* check extensions */ +} + +#endif + +/* +** {====================================================== +** l_popen spawns a new process connected to the current +** one through the file streams. +** ======================================================= +*/ + +#if !defined(l_popen) /* { */ + +#if defined(LUA_USE_POSIX) /* { */ + +#define l_popen(L,c,m) (fflush(NULL), popen(c,m)) +#define l_pclose(L,file) (pclose(file)) + +#elif defined(LUA_USE_WINDOWS) /* }{ */ + +#define l_popen(L,c,m) (_popen(c,m)) +#define l_pclose(L,file) (_pclose(file)) + +#else /* }{ */ + +/* ISO C definitions */ +#define l_popen(L,c,m) \ + ((void)((void)c, m), \ + luaL_error(L, "'popen' not supported"), \ + (FILE*)0) +#define l_pclose(L,file) ((void)L, (void)file, -1) + +#endif /* } */ + +#endif /* } */ + +/* }====================================================== */ + + +#if !defined(l_getc) /* { */ + +#if defined(LUA_USE_POSIX) +#define l_getc(f) getc_unlocked(f) +#define l_lockfile(f) flockfile(f) +#define l_unlockfile(f) funlockfile(f) +#else +#define l_getc(f) getc(f) +#define l_lockfile(f) ((void)0) +#define l_unlockfile(f) ((void)0) +#endif + +#endif /* } */ + + +/* +** {====================================================== +** l_fseek: configuration for longer offsets +** ======================================================= +*/ + +#if !defined(l_fseek) /* { */ + +#if defined(LUA_USE_POSIX) /* { */ + +#include + +#define l_fseek(f,o,w) fseeko(f,o,w) +#define l_ftell(f) ftello(f) +#define l_seeknum off_t + +#elif defined(LUA_USE_WINDOWS) && !defined(_CRTIMP_TYPEINFO) \ + && defined(_MSC_VER) && (_MSC_VER >= 1400) /* }{ */ + +/* Windows (but not DDK) and Visual C++ 2005 or higher */ +#define l_fseek(f,o,w) _fseeki64(f,o,w) +#define l_ftell(f) _ftelli64(f) +#define l_seeknum __int64 + +#else /* }{ */ + +/* ISO C definitions */ +#define l_fseek(f,o,w) fseek(f,o,w) +#define l_ftell(f) ftell(f) +#define l_seeknum long + +#endif /* } */ + +#endif /* } */ + +/* }====================================================== */ + + +#define IO_PREFIX "_IO_" +#define IOPREF_LEN (sizeof(IO_PREFIX)/sizeof(char) - 1) +#define IO_INPUT (IO_PREFIX "input") +#define IO_OUTPUT (IO_PREFIX "output") + + +typedef luaL_Stream LStream; + + +#define tolstream(L) ((LStream *)luaL_checkudata(L, 1, LUA_FILEHANDLE)) + +#define isclosed(p) ((p)->closef == NULL) + + +static int io_type (lua_State *L) { + LStream *p; + luaL_checkany(L, 1); + p = (LStream *)luaL_testudata(L, 1, LUA_FILEHANDLE); + if (p == NULL) + lua_pushnil(L); /* not a file */ + else if (isclosed(p)) + lua_pushliteral(L, "closed file"); + else + lua_pushliteral(L, "file"); + return 1; +} + + +static int f_tostring (lua_State *L) { + LStream *p = tolstream(L); + if (isclosed(p)) + lua_pushliteral(L, "file (closed)"); + else + lua_pushfstring(L, "file (%p)", p->f); + return 1; +} + + +static FILE *tofile (lua_State *L) { + LStream *p = tolstream(L); + if (isclosed(p)) + luaL_error(L, "attempt to use a closed file"); + lua_assert(p->f); + return p->f; +} + + +/* +** When creating file handles, always creates a 'closed' file handle +** before opening the actual file; so, if there is a memory error, the +** handle is in a consistent state. +*/ +static LStream *newprefile (lua_State *L) { + LStream *p = (LStream *)lua_newuserdata(L, sizeof(LStream)); + p->closef = NULL; /* mark file handle as 'closed' */ + luaL_setmetatable(L, LUA_FILEHANDLE); + return p; +} + + +/* +** Calls the 'close' function from a file handle. The 'volatile' avoids +** a bug in some versions of the Clang compiler (e.g., clang 3.0 for +** 32 bits). +*/ +static int aux_close (lua_State *L) { + LStream *p = tolstream(L); + volatile lua_CFunction cf = p->closef; + p->closef = NULL; /* mark stream as closed */ + return (*cf)(L); /* close it */ +} + + +static int io_close (lua_State *L) { + if (lua_isnone(L, 1)) /* no argument? */ + lua_getfield(L, LUA_REGISTRYINDEX, IO_OUTPUT); /* use standard output */ + tofile(L); /* make sure argument is an open stream */ + return aux_close(L); +} + + +static int f_gc (lua_State *L) { + LStream *p = tolstream(L); + if (!isclosed(p) && p->f != NULL) + aux_close(L); /* ignore closed and incompletely open files */ + return 0; +} + + +/* +** function to close regular files +*/ +static int io_fclose (lua_State *L) { + LStream *p = tolstream(L); + int res = fclose(p->f); + return luaL_fileresult(L, (res == 0), NULL); +} + + +static LStream *newfile (lua_State *L) { + LStream *p = newprefile(L); + p->f = NULL; + p->closef = &io_fclose; + return p; +} + + +static void opencheck (lua_State *L, const char *fname, const char *mode) { + LStream *p = newfile(L); + p->f = fopen(fname, mode); + if (p->f == NULL) + luaL_error(L, "cannot open file '%s' (%s)", fname, strerror(errno)); +} + + +static int io_open (lua_State *L) { + const char *filename = luaL_checkstring(L, 1); + const char *mode = luaL_optstring(L, 2, "r"); + LStream *p = newfile(L); + const char *md = mode; /* to traverse/check mode */ + luaL_argcheck(L, l_checkmode(md), 2, "invalid mode"); + p->f = fopen(filename, mode); + return (p->f == NULL) ? luaL_fileresult(L, 0, filename) : 1; +} + + +/* +** function to close 'popen' files +*/ +static int io_pclose (lua_State *L) { + LStream *p = tolstream(L); + return luaL_execresult(L, l_pclose(L, p->f)); +} + + +static int io_popen (lua_State *L) { + const char *filename = luaL_checkstring(L, 1); + const char *mode = luaL_optstring(L, 2, "r"); + LStream *p = newprefile(L); + p->f = l_popen(L, filename, mode); + p->closef = &io_pclose; + return (p->f == NULL) ? luaL_fileresult(L, 0, filename) : 1; +} + + +static int io_tmpfile (lua_State *L) { + LStream *p = newfile(L); + p->f = tmpfile(); + return (p->f == NULL) ? luaL_fileresult(L, 0, NULL) : 1; +} + + +static FILE *getiofile (lua_State *L, const char *findex) { + LStream *p; + lua_getfield(L, LUA_REGISTRYINDEX, findex); + p = (LStream *)lua_touserdata(L, -1); + if (isclosed(p)) + luaL_error(L, "standard %s file is closed", findex + IOPREF_LEN); + return p->f; +} + + +static int g_iofile (lua_State *L, const char *f, const char *mode) { + if (!lua_isnoneornil(L, 1)) { + const char *filename = lua_tostring(L, 1); + if (filename) + opencheck(L, filename, mode); + else { + tofile(L); /* check that it's a valid file handle */ + lua_pushvalue(L, 1); + } + lua_setfield(L, LUA_REGISTRYINDEX, f); + } + /* return current value */ + lua_getfield(L, LUA_REGISTRYINDEX, f); + return 1; +} + + +static int io_input (lua_State *L) { + return g_iofile(L, IO_INPUT, "r"); +} + + +static int io_output (lua_State *L) { + return g_iofile(L, IO_OUTPUT, "w"); +} + + +static int io_readline (lua_State *L); + + +/* +** maximum number of arguments to 'f:lines'/'io.lines' (it + 3 must fit +** in the limit for upvalues of a closure) +*/ +#define MAXARGLINE 250 + +static void aux_lines (lua_State *L, int toclose) { + int n = lua_gettop(L) - 1; /* number of arguments to read */ + luaL_argcheck(L, n <= MAXARGLINE, MAXARGLINE + 2, "too many arguments"); + lua_pushinteger(L, n); /* number of arguments to read */ + lua_pushboolean(L, toclose); /* close/not close file when finished */ + lua_rotate(L, 2, 2); /* move 'n' and 'toclose' to their positions */ + lua_pushcclosure(L, io_readline, 3 + n); +} + + +static int f_lines (lua_State *L) { + tofile(L); /* check that it's a valid file handle */ + aux_lines(L, 0); + return 1; +} + + +static int io_lines (lua_State *L) { + int toclose; + if (lua_isnone(L, 1)) lua_pushnil(L); /* at least one argument */ + if (lua_isnil(L, 1)) { /* no file name? */ + lua_getfield(L, LUA_REGISTRYINDEX, IO_INPUT); /* get default input */ + lua_replace(L, 1); /* put it at index 1 */ + tofile(L); /* check that it's a valid file handle */ + toclose = 0; /* do not close it after iteration */ + } + else { /* open a new file */ + const char *filename = luaL_checkstring(L, 1); + opencheck(L, filename, "r"); + lua_replace(L, 1); /* put file at index 1 */ + toclose = 1; /* close it after iteration */ + } + aux_lines(L, toclose); + return 1; +} + + +/* +** {====================================================== +** READ +** ======================================================= +*/ + + +/* maximum length of a numeral */ +#if !defined (L_MAXLENNUM) +#define L_MAXLENNUM 200 +#endif + + +/* auxiliary structure used by 'read_number' */ +typedef struct { + FILE *f; /* file being read */ + int c; /* current character (look ahead) */ + int n; /* number of elements in buffer 'buff' */ + char buff[L_MAXLENNUM + 1]; /* +1 for ending '\0' */ +} RN; + + +/* +** Add current char to buffer (if not out of space) and read next one +*/ +static int nextc (RN *rn) { + if (rn->n >= L_MAXLENNUM) { /* buffer overflow? */ + rn->buff[0] = '\0'; /* invalidate result */ + return 0; /* fail */ + } + else { + rn->buff[rn->n++] = rn->c; /* save current char */ + rn->c = l_getc(rn->f); /* read next one */ + return 1; + } +} + + +/* +** Accept current char if it is in 'set' (of size 2) +*/ +static int test2 (RN *rn, const char *set) { + if (rn->c == set[0] || rn->c == set[1]) + return nextc(rn); + else return 0; +} + + +/* +** Read a sequence of (hex)digits +*/ +static int readdigits (RN *rn, int hex) { + int count = 0; + while ((hex ? isxdigit(rn->c) : isdigit(rn->c)) && nextc(rn)) + count++; + return count; +} + + +/* +** Read a number: first reads a valid prefix of a numeral into a buffer. +** Then it calls 'lua_stringtonumber' to check whether the format is +** correct and to convert it to a Lua number +*/ +static int read_number (lua_State *L, FILE *f) { + RN rn; + int count = 0; + int hex = 0; + char decp[2]; + rn.f = f; rn.n = 0; + decp[0] = lua_getlocaledecpoint(); /* get decimal point from locale */ + decp[1] = '.'; /* always accept a dot */ + l_lockfile(rn.f); + do { rn.c = l_getc(rn.f); } while (isspace(rn.c)); /* skip spaces */ + test2(&rn, "-+"); /* optional signal */ + if (test2(&rn, "00")) { + if (test2(&rn, "xX")) hex = 1; /* numeral is hexadecimal */ + else count = 1; /* count initial '0' as a valid digit */ + } + count += readdigits(&rn, hex); /* integral part */ + if (test2(&rn, decp)) /* decimal point? */ + count += readdigits(&rn, hex); /* fractional part */ + if (count > 0 && test2(&rn, (hex ? "pP" : "eE"))) { /* exponent mark? */ + test2(&rn, "-+"); /* exponent signal */ + readdigits(&rn, 0); /* exponent digits */ + } + ungetc(rn.c, rn.f); /* unread look-ahead char */ + l_unlockfile(rn.f); + rn.buff[rn.n] = '\0'; /* finish string */ + if (lua_stringtonumber(L, rn.buff)) /* is this a valid number? */ + return 1; /* ok */ + else { /* invalid format */ + lua_pushnil(L); /* "result" to be removed */ + return 0; /* read fails */ + } +} + + +static int test_eof (lua_State *L, FILE *f) { + int c = getc(f); + ungetc(c, f); /* no-op when c == EOF */ + lua_pushliteral(L, ""); + return (c != EOF); +} + + +static int read_line (lua_State *L, FILE *f, int chop) { + luaL_Buffer b; + int c = '\0'; + luaL_buffinit(L, &b); + while (c != EOF && c != '\n') { /* repeat until end of line */ + char *buff = luaL_prepbuffer(&b); /* preallocate buffer */ + int i = 0; + l_lockfile(f); /* no memory errors can happen inside the lock */ + while (i < LUAL_BUFFERSIZE && (c = l_getc(f)) != EOF && c != '\n') + buff[i++] = c; + l_unlockfile(f); + luaL_addsize(&b, i); + } + if (!chop && c == '\n') /* want a newline and have one? */ + luaL_addchar(&b, c); /* add ending newline to result */ + luaL_pushresult(&b); /* close buffer */ + /* return ok if read something (either a newline or something else) */ + return (c == '\n' || lua_rawlen(L, -1) > 0); +} + + +static void read_all (lua_State *L, FILE *f) { + size_t nr; + luaL_Buffer b; + luaL_buffinit(L, &b); + do { /* read file in chunks of LUAL_BUFFERSIZE bytes */ + char *p = luaL_prepbuffer(&b); + nr = fread(p, sizeof(char), LUAL_BUFFERSIZE, f); + luaL_addsize(&b, nr); + } while (nr == LUAL_BUFFERSIZE); + luaL_pushresult(&b); /* close buffer */ +} + + +static int read_chars (lua_State *L, FILE *f, size_t n) { + size_t nr; /* number of chars actually read */ + char *p; + luaL_Buffer b; + luaL_buffinit(L, &b); + p = luaL_prepbuffsize(&b, n); /* prepare buffer to read whole block */ + nr = fread(p, sizeof(char), n, f); /* try to read 'n' chars */ + luaL_addsize(&b, nr); + luaL_pushresult(&b); /* close buffer */ + return (nr > 0); /* true iff read something */ +} + + +static int g_read (lua_State *L, FILE *f, int first) { + int nargs = lua_gettop(L) - 1; + int success; + int n; + clearerr(f); + if (nargs == 0) { /* no arguments? */ + success = read_line(L, f, 1); + n = first+1; /* to return 1 result */ + } + else { /* ensure stack space for all results and for auxlib's buffer */ + luaL_checkstack(L, nargs+LUA_MINSTACK, "too many arguments"); + success = 1; + for (n = first; nargs-- && success; n++) { + if (lua_type(L, n) == LUA_TNUMBER) { + size_t l = (size_t)luaL_checkinteger(L, n); + success = (l == 0) ? test_eof(L, f) : read_chars(L, f, l); + } + else { + const char *p = luaL_checkstring(L, n); + if (*p == '*') p++; /* skip optional '*' (for compatibility) */ + switch (*p) { + case 'n': /* number */ + success = read_number(L, f); + break; + case 'l': /* line */ + success = read_line(L, f, 1); + break; + case 'L': /* line with end-of-line */ + success = read_line(L, f, 0); + break; + case 'a': /* file */ + read_all(L, f); /* read entire file */ + success = 1; /* always success */ + break; + default: + return luaL_argerror(L, n, "invalid format"); + } + } + } + } + if (ferror(f)) + return luaL_fileresult(L, 0, NULL); + if (!success) { + lua_pop(L, 1); /* remove last result */ + lua_pushnil(L); /* push nil instead */ + } + return n - first; +} + + +static int io_read (lua_State *L) { + return g_read(L, getiofile(L, IO_INPUT), 1); +} + + +static int f_read (lua_State *L) { + return g_read(L, tofile(L), 2); +} + + +static int io_readline (lua_State *L) { + LStream *p = (LStream *)lua_touserdata(L, lua_upvalueindex(1)); + int i; + int n = (int)lua_tointeger(L, lua_upvalueindex(2)); + if (isclosed(p)) /* file is already closed? */ + return luaL_error(L, "file is already closed"); + lua_settop(L , 1); + luaL_checkstack(L, n, "too many arguments"); + for (i = 1; i <= n; i++) /* push arguments to 'g_read' */ + lua_pushvalue(L, lua_upvalueindex(3 + i)); + n = g_read(L, p->f, 2); /* 'n' is number of results */ + lua_assert(n > 0); /* should return at least a nil */ + if (lua_toboolean(L, -n)) /* read at least one value? */ + return n; /* return them */ + else { /* first result is nil: EOF or error */ + if (n > 1) { /* is there error information? */ + /* 2nd result is error message */ + return luaL_error(L, "%s", lua_tostring(L, -n + 1)); + } + if (lua_toboolean(L, lua_upvalueindex(3))) { /* generator created file? */ + lua_settop(L, 0); + lua_pushvalue(L, lua_upvalueindex(1)); + aux_close(L); /* close it */ + } + return 0; + } +} + +/* }====================================================== */ + + +static int g_write (lua_State *L, FILE *f, int arg) { + int nargs = lua_gettop(L) - arg; + int status = 1; + for (; nargs--; arg++) { + if (lua_type(L, arg) == LUA_TNUMBER) { + /* optimization: could be done exactly as for strings */ + int len = lua_isinteger(L, arg) + ? fprintf(f, LUA_INTEGER_FMT, + (LUAI_UACINT)lua_tointeger(L, arg)) + : fprintf(f, LUA_NUMBER_FMT, + (LUAI_UACNUMBER)lua_tonumber(L, arg)); + status = status && (len > 0); + } + else { + size_t l; + const char *s = luaL_checklstring(L, arg, &l); + status = status && (fwrite(s, sizeof(char), l, f) == l); + } + } + if (status) return 1; /* file handle already on stack top */ + else return luaL_fileresult(L, status, NULL); +} + + +static int io_write (lua_State *L) { + return g_write(L, getiofile(L, IO_OUTPUT), 1); +} + + +static int f_write (lua_State *L) { + FILE *f = tofile(L); + lua_pushvalue(L, 1); /* push file at the stack top (to be returned) */ + return g_write(L, f, 2); +} + + +static int f_seek (lua_State *L) { + static const int mode[] = {SEEK_SET, SEEK_CUR, SEEK_END}; + static const char *const modenames[] = {"set", "cur", "end", NULL}; + FILE *f = tofile(L); + int op = luaL_checkoption(L, 2, "cur", modenames); + lua_Integer p3 = luaL_optinteger(L, 3, 0); + l_seeknum offset = (l_seeknum)p3; + luaL_argcheck(L, (lua_Integer)offset == p3, 3, + "not an integer in proper range"); + op = l_fseek(f, offset, mode[op]); + if (op) + return luaL_fileresult(L, 0, NULL); /* error */ + else { + lua_pushinteger(L, (lua_Integer)l_ftell(f)); + return 1; + } +} + + +static int f_setvbuf (lua_State *L) { + static const int mode[] = {_IONBF, _IOFBF, _IOLBF}; + static const char *const modenames[] = {"no", "full", "line", NULL}; + FILE *f = tofile(L); + int op = luaL_checkoption(L, 2, NULL, modenames); + lua_Integer sz = luaL_optinteger(L, 3, LUAL_BUFFERSIZE); + int res = setvbuf(f, NULL, mode[op], (size_t)sz); + return luaL_fileresult(L, res == 0, NULL); +} + + + +static int io_flush (lua_State *L) { + return luaL_fileresult(L, fflush(getiofile(L, IO_OUTPUT)) == 0, NULL); +} + + +static int f_flush (lua_State *L) { + return luaL_fileresult(L, fflush(tofile(L)) == 0, NULL); +} + + +/* +** functions for 'io' library +*/ +static const luaL_Reg iolib[] = { + {"close", io_close}, + {"flush", io_flush}, + {"input", io_input}, + {"lines", io_lines}, + {"open", io_open}, + {"output", io_output}, + {"popen", io_popen}, + {"read", io_read}, + {"tmpfile", io_tmpfile}, + {"type", io_type}, + {"write", io_write}, + {NULL, NULL} +}; + + +/* +** methods for file handles +*/ +static const luaL_Reg flib[] = { + {"close", io_close}, + {"flush", f_flush}, + {"lines", f_lines}, + {"read", f_read}, + {"seek", f_seek}, + {"setvbuf", f_setvbuf}, + {"write", f_write}, + {"__gc", f_gc}, + {"__tostring", f_tostring}, + {NULL, NULL} +}; + + +static void createmeta (lua_State *L) { + luaL_newmetatable(L, LUA_FILEHANDLE); /* create metatable for file handles */ + lua_pushvalue(L, -1); /* push metatable */ + lua_setfield(L, -2, "__index"); /* metatable.__index = metatable */ + luaL_setfuncs(L, flib, 0); /* add file methods to new metatable */ + lua_pop(L, 1); /* pop new metatable */ +} + + +/* +** function to (not) close the standard files stdin, stdout, and stderr +*/ +static int io_noclose (lua_State *L) { + LStream *p = tolstream(L); + p->closef = &io_noclose; /* keep file opened */ + lua_pushnil(L); + lua_pushliteral(L, "cannot close standard file"); + return 2; +} + + +static void createstdfile (lua_State *L, FILE *f, const char *k, + const char *fname) { + LStream *p = newprefile(L); + p->f = f; + p->closef = &io_noclose; + if (k != NULL) { + lua_pushvalue(L, -1); + lua_setfield(L, LUA_REGISTRYINDEX, k); /* add file to registry */ + } + lua_setfield(L, -2, fname); /* add file to module */ +} + + +LUAMOD_API int luaopen_io (lua_State *L) { + luaL_newlib(L, iolib); /* new module */ + createmeta(L); + /* create (and set) default files */ + createstdfile(L, stdin, IO_INPUT, "stdin"); + createstdfile(L, stdout, IO_OUTPUT, "stdout"); + createstdfile(L, stderr, NULL, "stderr"); + return 1; +} + diff --git a/3rd/lua-5.3.4/llex.c b/3rd/lua-5.3.4/llex.c new file mode 100644 index 0000000..7032827 --- /dev/null +++ b/3rd/lua-5.3.4/llex.c @@ -0,0 +1,565 @@ +/* +** $Id: llex.c,v 2.96 2016/05/02 14:02:12 roberto Exp $ +** Lexical Analyzer +** See Copyright Notice in lua.h +*/ + +#define llex_c +#define LUA_CORE + +#include "lprefix.h" + + +#include +#include + +#include "lua.h" + +#include "lctype.h" +#include "ldebug.h" +#include "ldo.h" +#include "lgc.h" +#include "llex.h" +#include "lobject.h" +#include "lparser.h" +#include "lstate.h" +#include "lstring.h" +#include "ltable.h" +#include "lzio.h" + + + +#define next(ls) (ls->current = zgetc(ls->z)) + + + +#define currIsNewline(ls) (ls->current == '\n' || ls->current == '\r') + + +/* ORDER RESERVED */ +static const char *const luaX_tokens [] = { + "and", "break", "do", "else", "elseif", + "end", "false", "for", "function", "goto", "if", + "in", "local", "nil", "not", "or", "repeat", + "return", "then", "true", "until", "while", + "//", "..", "...", "==", ">=", "<=", "~=", + "<<", ">>", "::", "", + "", "", "", "" +}; + + +#define save_and_next(ls) (save(ls, ls->current), next(ls)) + + +static l_noret lexerror (LexState *ls, const char *msg, int token); + + +static void save (LexState *ls, int c) { + Mbuffer *b = ls->buff; + if (luaZ_bufflen(b) + 1 > luaZ_sizebuffer(b)) { + size_t newsize; + if (luaZ_sizebuffer(b) >= MAX_SIZE/2) + lexerror(ls, "lexical element too long", 0); + newsize = luaZ_sizebuffer(b) * 2; + luaZ_resizebuffer(ls->L, b, newsize); + } + b->buffer[luaZ_bufflen(b)++] = cast(char, c); +} + + +void luaX_init (lua_State *L) { + int i; + TString *e = luaS_newliteral(L, LUA_ENV); /* create env name */ + luaC_fix(L, obj2gco(e)); /* never collect this name */ + for (i=0; iextra = cast_byte(i+1); /* reserved word */ + } +} + + +const char *luaX_token2str (LexState *ls, int token) { + if (token < FIRST_RESERVED) { /* single-byte symbols? */ + lua_assert(token == cast_uchar(token)); + return luaO_pushfstring(ls->L, "'%c'", token); + } + else { + const char *s = luaX_tokens[token - FIRST_RESERVED]; + if (token < TK_EOS) /* fixed format (symbols and reserved words)? */ + return luaO_pushfstring(ls->L, "'%s'", s); + else /* names, strings, and numerals */ + return s; + } +} + + +static const char *txtToken (LexState *ls, int token) { + switch (token) { + case TK_NAME: case TK_STRING: + case TK_FLT: case TK_INT: + save(ls, '\0'); + return luaO_pushfstring(ls->L, "'%s'", luaZ_buffer(ls->buff)); + default: + return luaX_token2str(ls, token); + } +} + + +static l_noret lexerror (LexState *ls, const char *msg, int token) { + msg = luaG_addinfo(ls->L, msg, ls->source, ls->linenumber); + if (token) + luaO_pushfstring(ls->L, "%s near %s", msg, txtToken(ls, token)); + luaD_throw(ls->L, LUA_ERRSYNTAX); +} + + +l_noret luaX_syntaxerror (LexState *ls, const char *msg) { + lexerror(ls, msg, ls->t.token); +} + + +/* +** creates a new string and anchors it in scanner's table so that +** it will not be collected until the end of the compilation +** (by that time it should be anchored somewhere) +*/ +TString *luaX_newstring (LexState *ls, const char *str, size_t l) { + lua_State *L = ls->L; + TValue *o; /* entry for 'str' */ + TString *ts = luaS_newlstr(L, str, l); /* create new string */ + setsvalue2s(L, L->top++, ts); /* temporarily anchor it in stack */ + o = luaH_set(L, ls->h, L->top - 1); + if (ttisnil(o)) { /* not in use yet? */ + /* boolean value does not need GC barrier; + table has no metatable, so it does not need to invalidate cache */ + setbvalue(o, 1); /* t[string] = true */ + luaC_checkGC(L); + } + else { /* string already present */ + ts = tsvalue(keyfromval(o)); /* re-use value previously stored */ + } + L->top--; /* remove string from stack */ + return ts; +} + + +/* +** increment line number and skips newline sequence (any of +** \n, \r, \n\r, or \r\n) +*/ +static void inclinenumber (LexState *ls) { + int old = ls->current; + lua_assert(currIsNewline(ls)); + next(ls); /* skip '\n' or '\r' */ + if (currIsNewline(ls) && ls->current != old) + next(ls); /* skip '\n\r' or '\r\n' */ + if (++ls->linenumber >= MAX_INT) + lexerror(ls, "chunk has too many lines", 0); +} + + +void luaX_setinput (lua_State *L, LexState *ls, ZIO *z, TString *source, + int firstchar) { + ls->t.token = 0; + ls->L = L; + ls->current = firstchar; + ls->lookahead.token = TK_EOS; /* no look-ahead token */ + ls->z = z; + ls->fs = NULL; + ls->linenumber = 1; + ls->lastline = 1; + ls->source = source; + ls->envn = luaS_newliteral(L, LUA_ENV); /* get env name */ + luaZ_resizebuffer(ls->L, ls->buff, LUA_MINBUFFER); /* initialize buffer */ +} + + + +/* +** ======================================================= +** LEXICAL ANALYZER +** ======================================================= +*/ + + +static int check_next1 (LexState *ls, int c) { + if (ls->current == c) { + next(ls); + return 1; + } + else return 0; +} + + +/* +** Check whether current char is in set 'set' (with two chars) and +** saves it +*/ +static int check_next2 (LexState *ls, const char *set) { + lua_assert(set[2] == '\0'); + if (ls->current == set[0] || ls->current == set[1]) { + save_and_next(ls); + return 1; + } + else return 0; +} + + +/* LUA_NUMBER */ +/* +** this function is quite liberal in what it accepts, as 'luaO_str2num' +** will reject ill-formed numerals. +*/ +static int read_numeral (LexState *ls, SemInfo *seminfo) { + TValue obj; + const char *expo = "Ee"; + int first = ls->current; + lua_assert(lisdigit(ls->current)); + save_and_next(ls); + if (first == '0' && check_next2(ls, "xX")) /* hexadecimal? */ + expo = "Pp"; + for (;;) { + if (check_next2(ls, expo)) /* exponent part? */ + check_next2(ls, "-+"); /* optional exponent sign */ + if (lisxdigit(ls->current)) + save_and_next(ls); + else if (ls->current == '.') + save_and_next(ls); + else break; + } + save(ls, '\0'); + if (luaO_str2num(luaZ_buffer(ls->buff), &obj) == 0) /* format error? */ + lexerror(ls, "malformed number", TK_FLT); + if (ttisinteger(&obj)) { + seminfo->i = ivalue(&obj); + return TK_INT; + } + else { + lua_assert(ttisfloat(&obj)); + seminfo->r = fltvalue(&obj); + return TK_FLT; + } +} + + +/* +** skip a sequence '[=*[' or ']=*]'; if sequence is well formed, return +** its number of '='s; otherwise, return a negative number (-1 iff there +** are no '='s after initial bracket) +*/ +static int skip_sep (LexState *ls) { + int count = 0; + int s = ls->current; + lua_assert(s == '[' || s == ']'); + save_and_next(ls); + while (ls->current == '=') { + save_and_next(ls); + count++; + } + return (ls->current == s) ? count : (-count) - 1; +} + + +static void read_long_string (LexState *ls, SemInfo *seminfo, int sep) { + int line = ls->linenumber; /* initial line (for error message) */ + save_and_next(ls); /* skip 2nd '[' */ + if (currIsNewline(ls)) /* string starts with a newline? */ + inclinenumber(ls); /* skip it */ + for (;;) { + switch (ls->current) { + case EOZ: { /* error */ + const char *what = (seminfo ? "string" : "comment"); + const char *msg = luaO_pushfstring(ls->L, + "unfinished long %s (starting at line %d)", what, line); + lexerror(ls, msg, TK_EOS); + break; /* to avoid warnings */ + } + case ']': { + if (skip_sep(ls) == sep) { + save_and_next(ls); /* skip 2nd ']' */ + goto endloop; + } + break; + } + case '\n': case '\r': { + save(ls, '\n'); + inclinenumber(ls); + if (!seminfo) luaZ_resetbuffer(ls->buff); /* avoid wasting space */ + break; + } + default: { + if (seminfo) save_and_next(ls); + else next(ls); + } + } + } endloop: + if (seminfo) + seminfo->ts = luaX_newstring(ls, luaZ_buffer(ls->buff) + (2 + sep), + luaZ_bufflen(ls->buff) - 2*(2 + sep)); +} + + +static void esccheck (LexState *ls, int c, const char *msg) { + if (!c) { + if (ls->current != EOZ) + save_and_next(ls); /* add current to buffer for error message */ + lexerror(ls, msg, TK_STRING); + } +} + + +static int gethexa (LexState *ls) { + save_and_next(ls); + esccheck (ls, lisxdigit(ls->current), "hexadecimal digit expected"); + return luaO_hexavalue(ls->current); +} + + +static int readhexaesc (LexState *ls) { + int r = gethexa(ls); + r = (r << 4) + gethexa(ls); + luaZ_buffremove(ls->buff, 2); /* remove saved chars from buffer */ + return r; +} + + +static unsigned long readutf8esc (LexState *ls) { + unsigned long r; + int i = 4; /* chars to be removed: '\', 'u', '{', and first digit */ + save_and_next(ls); /* skip 'u' */ + esccheck(ls, ls->current == '{', "missing '{'"); + r = gethexa(ls); /* must have at least one digit */ + while ((save_and_next(ls), lisxdigit(ls->current))) { + i++; + r = (r << 4) + luaO_hexavalue(ls->current); + esccheck(ls, r <= 0x10FFFF, "UTF-8 value too large"); + } + esccheck(ls, ls->current == '}', "missing '}'"); + next(ls); /* skip '}' */ + luaZ_buffremove(ls->buff, i); /* remove saved chars from buffer */ + return r; +} + + +static void utf8esc (LexState *ls) { + char buff[UTF8BUFFSZ]; + int n = luaO_utf8esc(buff, readutf8esc(ls)); + for (; n > 0; n--) /* add 'buff' to string */ + save(ls, buff[UTF8BUFFSZ - n]); +} + + +static int readdecesc (LexState *ls) { + int i; + int r = 0; /* result accumulator */ + for (i = 0; i < 3 && lisdigit(ls->current); i++) { /* read up to 3 digits */ + r = 10*r + ls->current - '0'; + save_and_next(ls); + } + esccheck(ls, r <= UCHAR_MAX, "decimal escape too large"); + luaZ_buffremove(ls->buff, i); /* remove read digits from buffer */ + return r; +} + + +static void read_string (LexState *ls, int del, SemInfo *seminfo) { + save_and_next(ls); /* keep delimiter (for error messages) */ + while (ls->current != del) { + switch (ls->current) { + case EOZ: + lexerror(ls, "unfinished string", TK_EOS); + break; /* to avoid warnings */ + case '\n': + case '\r': + lexerror(ls, "unfinished string", TK_STRING); + break; /* to avoid warnings */ + case '\\': { /* escape sequences */ + int c; /* final character to be saved */ + save_and_next(ls); /* keep '\\' for error messages */ + switch (ls->current) { + case 'a': c = '\a'; goto read_save; + case 'b': c = '\b'; goto read_save; + case 'f': c = '\f'; goto read_save; + case 'n': c = '\n'; goto read_save; + case 'r': c = '\r'; goto read_save; + case 't': c = '\t'; goto read_save; + case 'v': c = '\v'; goto read_save; + case 'x': c = readhexaesc(ls); goto read_save; + case 'u': utf8esc(ls); goto no_save; + case '\n': case '\r': + inclinenumber(ls); c = '\n'; goto only_save; + case '\\': case '\"': case '\'': + c = ls->current; goto read_save; + case EOZ: goto no_save; /* will raise an error next loop */ + case 'z': { /* zap following span of spaces */ + luaZ_buffremove(ls->buff, 1); /* remove '\\' */ + next(ls); /* skip the 'z' */ + while (lisspace(ls->current)) { + if (currIsNewline(ls)) inclinenumber(ls); + else next(ls); + } + goto no_save; + } + default: { + esccheck(ls, lisdigit(ls->current), "invalid escape sequence"); + c = readdecesc(ls); /* digital escape '\ddd' */ + goto only_save; + } + } + read_save: + next(ls); + /* go through */ + only_save: + luaZ_buffremove(ls->buff, 1); /* remove '\\' */ + save(ls, c); + /* go through */ + no_save: break; + } + default: + save_and_next(ls); + } + } + save_and_next(ls); /* skip delimiter */ + seminfo->ts = luaX_newstring(ls, luaZ_buffer(ls->buff) + 1, + luaZ_bufflen(ls->buff) - 2); +} + + +static int llex (LexState *ls, SemInfo *seminfo) { + luaZ_resetbuffer(ls->buff); + for (;;) { + switch (ls->current) { + case '\n': case '\r': { /* line breaks */ + inclinenumber(ls); + break; + } + case ' ': case '\f': case '\t': case '\v': { /* spaces */ + next(ls); + break; + } + case '-': { /* '-' or '--' (comment) */ + next(ls); + if (ls->current != '-') return '-'; + /* else is a comment */ + next(ls); + if (ls->current == '[') { /* long comment? */ + int sep = skip_sep(ls); + luaZ_resetbuffer(ls->buff); /* 'skip_sep' may dirty the buffer */ + if (sep >= 0) { + read_long_string(ls, NULL, sep); /* skip long comment */ + luaZ_resetbuffer(ls->buff); /* previous call may dirty the buff. */ + break; + } + } + /* else short comment */ + while (!currIsNewline(ls) && ls->current != EOZ) + next(ls); /* skip until end of line (or end of file) */ + break; + } + case '[': { /* long string or simply '[' */ + int sep = skip_sep(ls); + if (sep >= 0) { + read_long_string(ls, seminfo, sep); + return TK_STRING; + } + else if (sep != -1) /* '[=...' missing second bracket */ + lexerror(ls, "invalid long string delimiter", TK_STRING); + return '['; + } + case '=': { + next(ls); + if (check_next1(ls, '=')) return TK_EQ; + else return '='; + } + case '<': { + next(ls); + if (check_next1(ls, '=')) return TK_LE; + else if (check_next1(ls, '<')) return TK_SHL; + else return '<'; + } + case '>': { + next(ls); + if (check_next1(ls, '=')) return TK_GE; + else if (check_next1(ls, '>')) return TK_SHR; + else return '>'; + } + case '/': { + next(ls); + if (check_next1(ls, '/')) return TK_IDIV; + else return '/'; + } + case '~': { + next(ls); + if (check_next1(ls, '=')) return TK_NE; + else return '~'; + } + case ':': { + next(ls); + if (check_next1(ls, ':')) return TK_DBCOLON; + else return ':'; + } + case '"': case '\'': { /* short literal strings */ + read_string(ls, ls->current, seminfo); + return TK_STRING; + } + case '.': { /* '.', '..', '...', or number */ + save_and_next(ls); + if (check_next1(ls, '.')) { + if (check_next1(ls, '.')) + return TK_DOTS; /* '...' */ + else return TK_CONCAT; /* '..' */ + } + else if (!lisdigit(ls->current)) return '.'; + else return read_numeral(ls, seminfo); + } + case '0': case '1': case '2': case '3': case '4': + case '5': case '6': case '7': case '8': case '9': { + return read_numeral(ls, seminfo); + } + case EOZ: { + return TK_EOS; + } + default: { + if (lislalpha(ls->current)) { /* identifier or reserved word? */ + TString *ts; + do { + save_and_next(ls); + } while (lislalnum(ls->current)); + ts = luaX_newstring(ls, luaZ_buffer(ls->buff), + luaZ_bufflen(ls->buff)); + seminfo->ts = ts; + if (isreserved(ts)) /* reserved word? */ + return ts->extra - 1 + FIRST_RESERVED; + else { + return TK_NAME; + } + } + else { /* single-char tokens (+ - / ...) */ + int c = ls->current; + next(ls); + return c; + } + } + } + } +} + + +void luaX_next (LexState *ls) { + ls->lastline = ls->linenumber; + if (ls->lookahead.token != TK_EOS) { /* is there a look-ahead token? */ + ls->t = ls->lookahead; /* use this one */ + ls->lookahead.token = TK_EOS; /* and discharge it */ + } + else + ls->t.token = llex(ls, &ls->t.seminfo); /* read next token */ +} + + +int luaX_lookahead (LexState *ls) { + lua_assert(ls->lookahead.token == TK_EOS); + ls->lookahead.token = llex(ls, &ls->lookahead.seminfo); + return ls->lookahead.token; +} + diff --git a/3rd/lua-5.3.4/llex.h b/3rd/lua-5.3.4/llex.h new file mode 100644 index 0000000..2363d87 --- /dev/null +++ b/3rd/lua-5.3.4/llex.h @@ -0,0 +1,85 @@ +/* +** $Id: llex.h,v 1.79 2016/05/02 14:02:12 roberto Exp $ +** Lexical Analyzer +** See Copyright Notice in lua.h +*/ + +#ifndef llex_h +#define llex_h + +#include "lobject.h" +#include "lzio.h" + + +#define FIRST_RESERVED 257 + + +#if !defined(LUA_ENV) +#define LUA_ENV "_ENV" +#endif + + +/* +* WARNING: if you change the order of this enumeration, +* grep "ORDER RESERVED" +*/ +enum RESERVED { + /* terminal symbols denoted by reserved words */ + TK_AND = FIRST_RESERVED, TK_BREAK, + TK_DO, TK_ELSE, TK_ELSEIF, TK_END, TK_FALSE, TK_FOR, TK_FUNCTION, + TK_GOTO, TK_IF, TK_IN, TK_LOCAL, TK_NIL, TK_NOT, TK_OR, TK_REPEAT, + TK_RETURN, TK_THEN, TK_TRUE, TK_UNTIL, TK_WHILE, + /* other terminal symbols */ + TK_IDIV, TK_CONCAT, TK_DOTS, TK_EQ, TK_GE, TK_LE, TK_NE, + TK_SHL, TK_SHR, + TK_DBCOLON, TK_EOS, + TK_FLT, TK_INT, TK_NAME, TK_STRING +}; + +/* number of reserved words */ +#define NUM_RESERVED (cast(int, TK_WHILE-FIRST_RESERVED+1)) + + +typedef union { + lua_Number r; + lua_Integer i; + TString *ts; +} SemInfo; /* semantics information */ + + +typedef struct Token { + int token; + SemInfo seminfo; +} Token; + + +/* state of the lexer plus state of the parser when shared by all + functions */ +typedef struct LexState { + int current; /* current character (charint) */ + int linenumber; /* input line counter */ + int lastline; /* line of last token 'consumed' */ + Token t; /* current token */ + Token lookahead; /* look ahead token */ + struct FuncState *fs; /* current function (parser) */ + struct lua_State *L; + ZIO *z; /* input stream */ + Mbuffer *buff; /* buffer for tokens */ + Table *h; /* to avoid collection/reuse strings */ + struct Dyndata *dyd; /* dynamic structures used by the parser */ + TString *source; /* current source name */ + TString *envn; /* environment variable name */ +} LexState; + + +LUAI_FUNC void luaX_init (lua_State *L); +LUAI_FUNC void luaX_setinput (lua_State *L, LexState *ls, ZIO *z, + TString *source, int firstchar); +LUAI_FUNC TString *luaX_newstring (LexState *ls, const char *str, size_t l); +LUAI_FUNC void luaX_next (LexState *ls); +LUAI_FUNC int luaX_lookahead (LexState *ls); +LUAI_FUNC l_noret luaX_syntaxerror (LexState *ls, const char *s); +LUAI_FUNC const char *luaX_token2str (LexState *ls, int token); + + +#endif diff --git a/3rd/lua-5.3.4/llimits.h b/3rd/lua-5.3.4/llimits.h new file mode 100644 index 0000000..f21377f --- /dev/null +++ b/3rd/lua-5.3.4/llimits.h @@ -0,0 +1,323 @@ +/* +** $Id: llimits.h,v 1.141 2015/11/19 19:16:22 roberto Exp $ +** Limits, basic types, and some other 'installation-dependent' definitions +** See Copyright Notice in lua.h +*/ + +#ifndef llimits_h +#define llimits_h + + +#include +#include + + +#include "lua.h" + +/* +** 'lu_mem' and 'l_mem' are unsigned/signed integers big enough to count +** the total memory used by Lua (in bytes). Usually, 'size_t' and +** 'ptrdiff_t' should work, but we use 'long' for 16-bit machines. +*/ +#if defined(LUAI_MEM) /* { external definitions? */ +typedef LUAI_UMEM lu_mem; +typedef LUAI_MEM l_mem; +#elif LUAI_BITSINT >= 32 /* }{ */ +typedef size_t lu_mem; +typedef ptrdiff_t l_mem; +#else /* 16-bit ints */ /* }{ */ +typedef unsigned long lu_mem; +typedef long l_mem; +#endif /* } */ + + +/* chars used as small naturals (so that 'char' is reserved for characters) */ +typedef unsigned char lu_byte; + + +/* maximum value for size_t */ +#define MAX_SIZET ((size_t)(~(size_t)0)) + +/* maximum size visible for Lua (must be representable in a lua_Integer */ +#define MAX_SIZE (sizeof(size_t) < sizeof(lua_Integer) ? MAX_SIZET \ + : (size_t)(LUA_MAXINTEGER)) + + +#define MAX_LUMEM ((lu_mem)(~(lu_mem)0)) + +#define MAX_LMEM ((l_mem)(MAX_LUMEM >> 1)) + + +#define MAX_INT INT_MAX /* maximum value of an int */ + + +/* +** conversion of pointer to unsigned integer: +** this is for hashing only; there is no problem if the integer +** cannot hold the whole pointer value +*/ +#define point2uint(p) ((unsigned int)((size_t)(p) & UINT_MAX)) + + + +/* type to ensure maximum alignment */ +#if defined(LUAI_USER_ALIGNMENT_T) +typedef LUAI_USER_ALIGNMENT_T L_Umaxalign; +#else +typedef union { + lua_Number n; + double u; + void *s; + lua_Integer i; + long l; +} L_Umaxalign; +#endif + + + +/* types of 'usual argument conversions' for lua_Number and lua_Integer */ +typedef LUAI_UACNUMBER l_uacNumber; +typedef LUAI_UACINT l_uacInt; + + +/* internal assertions for in-house debugging */ +#if defined(lua_assert) +#define check_exp(c,e) (lua_assert(c), (e)) +/* to avoid problems with conditions too long */ +#define lua_longassert(c) ((c) ? (void)0 : lua_assert(0)) +#else +#define lua_assert(c) ((void)0) +#define check_exp(c,e) (e) +#define lua_longassert(c) ((void)0) +#endif + +/* +** assertion for checking API calls +*/ +#if !defined(luai_apicheck) +#define luai_apicheck(l,e) lua_assert(e) +#endif + +#define api_check(l,e,msg) luai_apicheck(l,(e) && msg) + + +/* macro to avoid warnings about unused variables */ +#if !defined(UNUSED) +#define UNUSED(x) ((void)(x)) +#endif + + +/* type casts (a macro highlights casts in the code) */ +#define cast(t, exp) ((t)(exp)) + +#define cast_void(i) cast(void, (i)) +#define cast_byte(i) cast(lu_byte, (i)) +#define cast_num(i) cast(lua_Number, (i)) +#define cast_int(i) cast(int, (i)) +#define cast_uchar(i) cast(unsigned char, (i)) + + +/* cast a signed lua_Integer to lua_Unsigned */ +#if !defined(l_castS2U) +#define l_castS2U(i) ((lua_Unsigned)(i)) +#endif + +/* +** cast a lua_Unsigned to a signed lua_Integer; this cast is +** not strict ISO C, but two-complement architectures should +** work fine. +*/ +#if !defined(l_castU2S) +#define l_castU2S(i) ((lua_Integer)(i)) +#endif + + +/* +** non-return type +*/ +#if defined(__GNUC__) +#define l_noret void __attribute__((noreturn)) +#elif defined(_MSC_VER) && _MSC_VER >= 1200 +#define l_noret void __declspec(noreturn) +#else +#define l_noret void +#endif + + + +/* +** maximum depth for nested C calls and syntactical nested non-terminals +** in a program. (Value must fit in an unsigned short int.) +*/ +#if !defined(LUAI_MAXCCALLS) +#define LUAI_MAXCCALLS 200 +#endif + + + +/* +** type for virtual-machine instructions; +** must be an unsigned with (at least) 4 bytes (see details in lopcodes.h) +*/ +#if LUAI_BITSINT >= 32 +typedef unsigned int Instruction; +#else +typedef unsigned long Instruction; +#endif + + + +/* +** Maximum length for short strings, that is, strings that are +** internalized. (Cannot be smaller than reserved words or tags for +** metamethods, as these strings must be internalized; +** #("function") = 8, #("__newindex") = 10.) +*/ +#if !defined(LUAI_MAXSHORTLEN) +#define LUAI_MAXSHORTLEN 40 +#endif + + +/* +** Initial size for the string table (must be power of 2). +** The Lua core alone registers ~50 strings (reserved words + +** metaevent keys + a few others). Libraries would typically add +** a few dozens more. +*/ +#if !defined(MINSTRTABSIZE) +#define MINSTRTABSIZE 128 +#endif + + +/* +** Size of cache for strings in the API. 'N' is the number of +** sets (better be a prime) and "M" is the size of each set (M == 1 +** makes a direct cache.) +*/ +#if !defined(STRCACHE_N) +#define STRCACHE_N 53 +#define STRCACHE_M 2 +#endif + + +/* minimum size for string buffer */ +#if !defined(LUA_MINBUFFER) +#define LUA_MINBUFFER 32 +#endif + + +/* +** macros that are executed whenever program enters the Lua core +** ('lua_lock') and leaves the core ('lua_unlock') +*/ +#if !defined(lua_lock) +#define lua_lock(L) ((void) 0) +#define lua_unlock(L) ((void) 0) +#endif + +/* +** macro executed during Lua functions at points where the +** function can yield. +*/ +#if !defined(luai_threadyield) +#define luai_threadyield(L) {lua_unlock(L); lua_lock(L);} +#endif + + +/* +** these macros allow user-specific actions on threads when you defined +** LUAI_EXTRASPACE and need to do something extra when a thread is +** created/deleted/resumed/yielded. +*/ +#if !defined(luai_userstateopen) +#define luai_userstateopen(L) ((void)L) +#endif + +#if !defined(luai_userstateclose) +#define luai_userstateclose(L) ((void)L) +#endif + +#if !defined(luai_userstatethread) +#define luai_userstatethread(L,L1) ((void)L) +#endif + +#if !defined(luai_userstatefree) +#define luai_userstatefree(L,L1) ((void)L) +#endif + +#if !defined(luai_userstateresume) +#define luai_userstateresume(L,n) ((void)L) +#endif + +#if !defined(luai_userstateyield) +#define luai_userstateyield(L,n) ((void)L) +#endif + + + +/* +** The luai_num* macros define the primitive operations over numbers. +*/ + +/* floor division (defined as 'floor(a/b)') */ +#if !defined(luai_numidiv) +#define luai_numidiv(L,a,b) ((void)L, l_floor(luai_numdiv(L,a,b))) +#endif + +/* float division */ +#if !defined(luai_numdiv) +#define luai_numdiv(L,a,b) ((a)/(b)) +#endif + +/* +** modulo: defined as 'a - floor(a/b)*b'; this definition gives NaN when +** 'b' is huge, but the result should be 'a'. 'fmod' gives the result of +** 'a - trunc(a/b)*b', and therefore must be corrected when 'trunc(a/b) +** ~= floor(a/b)'. That happens when the division has a non-integer +** negative result, which is equivalent to the test below. +*/ +#if !defined(luai_nummod) +#define luai_nummod(L,a,b,m) \ + { (m) = l_mathop(fmod)(a,b); if ((m)*(b) < 0) (m) += (b); } +#endif + +/* exponentiation */ +#if !defined(luai_numpow) +#define luai_numpow(L,a,b) ((void)L, l_mathop(pow)(a,b)) +#endif + +/* the others are quite standard operations */ +#if !defined(luai_numadd) +#define luai_numadd(L,a,b) ((a)+(b)) +#define luai_numsub(L,a,b) ((a)-(b)) +#define luai_nummul(L,a,b) ((a)*(b)) +#define luai_numunm(L,a) (-(a)) +#define luai_numeq(a,b) ((a)==(b)) +#define luai_numlt(a,b) ((a)<(b)) +#define luai_numle(a,b) ((a)<=(b)) +#define luai_numisnan(a) (!luai_numeq((a), (a))) +#endif + + + + + +/* +** macro to control inclusion of some hard tests on stack reallocation +*/ +#if !defined(HARDSTACKTESTS) +#define condmovestack(L,pre,pos) ((void)0) +#else +/* realloc stack keeping its size */ +#define condmovestack(L,pre,pos) \ + { int sz_ = (L)->stacksize; pre; luaD_reallocstack((L), sz_); pos; } +#endif + +#if !defined(HARDMEMTESTS) +#define condchangemem(L,pre,pos) ((void)0) +#else +#define condchangemem(L,pre,pos) \ + { if (G(L)->gcrunning) { pre; luaC_fullgc(L, 0); pos; } } +#endif + +#endif diff --git a/3rd/lua-5.3.4/lmathlib.c b/3rd/lua-5.3.4/lmathlib.c new file mode 100644 index 0000000..b7f8bae --- /dev/null +++ b/3rd/lua-5.3.4/lmathlib.c @@ -0,0 +1,410 @@ +/* +** $Id: lmathlib.c,v 1.119 2016/12/22 13:08:50 roberto Exp $ +** Standard mathematical library +** See Copyright Notice in lua.h +*/ + +#define lmathlib_c +#define LUA_LIB + +#include "lprefix.h" + + +#include +#include + +#include "lua.h" + +#include "lauxlib.h" +#include "lualib.h" + + +#undef PI +#define PI (l_mathop(3.141592653589793238462643383279502884)) + + +#if !defined(l_rand) /* { */ +#if defined(LUA_USE_POSIX) +#define l_rand() random() +#define l_srand(x) srandom(x) +#define L_RANDMAX 2147483647 /* (2^31 - 1), following POSIX */ +#else +#define l_rand() rand() +#define l_srand(x) srand(x) +#define L_RANDMAX RAND_MAX +#endif +#endif /* } */ + + +static int math_abs (lua_State *L) { + if (lua_isinteger(L, 1)) { + lua_Integer n = lua_tointeger(L, 1); + if (n < 0) n = (lua_Integer)(0u - (lua_Unsigned)n); + lua_pushinteger(L, n); + } + else + lua_pushnumber(L, l_mathop(fabs)(luaL_checknumber(L, 1))); + return 1; +} + +static int math_sin (lua_State *L) { + lua_pushnumber(L, l_mathop(sin)(luaL_checknumber(L, 1))); + return 1; +} + +static int math_cos (lua_State *L) { + lua_pushnumber(L, l_mathop(cos)(luaL_checknumber(L, 1))); + return 1; +} + +static int math_tan (lua_State *L) { + lua_pushnumber(L, l_mathop(tan)(luaL_checknumber(L, 1))); + return 1; +} + +static int math_asin (lua_State *L) { + lua_pushnumber(L, l_mathop(asin)(luaL_checknumber(L, 1))); + return 1; +} + +static int math_acos (lua_State *L) { + lua_pushnumber(L, l_mathop(acos)(luaL_checknumber(L, 1))); + return 1; +} + +static int math_atan (lua_State *L) { + lua_Number y = luaL_checknumber(L, 1); + lua_Number x = luaL_optnumber(L, 2, 1); + lua_pushnumber(L, l_mathop(atan2)(y, x)); + return 1; +} + + +static int math_toint (lua_State *L) { + int valid; + lua_Integer n = lua_tointegerx(L, 1, &valid); + if (valid) + lua_pushinteger(L, n); + else { + luaL_checkany(L, 1); + lua_pushnil(L); /* value is not convertible to integer */ + } + return 1; +} + + +static void pushnumint (lua_State *L, lua_Number d) { + lua_Integer n; + if (lua_numbertointeger(d, &n)) /* does 'd' fit in an integer? */ + lua_pushinteger(L, n); /* result is integer */ + else + lua_pushnumber(L, d); /* result is float */ +} + + +static int math_floor (lua_State *L) { + if (lua_isinteger(L, 1)) + lua_settop(L, 1); /* integer is its own floor */ + else { + lua_Number d = l_mathop(floor)(luaL_checknumber(L, 1)); + pushnumint(L, d); + } + return 1; +} + + +static int math_ceil (lua_State *L) { + if (lua_isinteger(L, 1)) + lua_settop(L, 1); /* integer is its own ceil */ + else { + lua_Number d = l_mathop(ceil)(luaL_checknumber(L, 1)); + pushnumint(L, d); + } + return 1; +} + + +static int math_fmod (lua_State *L) { + if (lua_isinteger(L, 1) && lua_isinteger(L, 2)) { + lua_Integer d = lua_tointeger(L, 2); + if ((lua_Unsigned)d + 1u <= 1u) { /* special cases: -1 or 0 */ + luaL_argcheck(L, d != 0, 2, "zero"); + lua_pushinteger(L, 0); /* avoid overflow with 0x80000... / -1 */ + } + else + lua_pushinteger(L, lua_tointeger(L, 1) % d); + } + else + lua_pushnumber(L, l_mathop(fmod)(luaL_checknumber(L, 1), + luaL_checknumber(L, 2))); + return 1; +} + + +/* +** next function does not use 'modf', avoiding problems with 'double*' +** (which is not compatible with 'float*') when lua_Number is not +** 'double'. +*/ +static int math_modf (lua_State *L) { + if (lua_isinteger(L ,1)) { + lua_settop(L, 1); /* number is its own integer part */ + lua_pushnumber(L, 0); /* no fractional part */ + } + else { + lua_Number n = luaL_checknumber(L, 1); + /* integer part (rounds toward zero) */ + lua_Number ip = (n < 0) ? l_mathop(ceil)(n) : l_mathop(floor)(n); + pushnumint(L, ip); + /* fractional part (test needed for inf/-inf) */ + lua_pushnumber(L, (n == ip) ? l_mathop(0.0) : (n - ip)); + } + return 2; +} + + +static int math_sqrt (lua_State *L) { + lua_pushnumber(L, l_mathop(sqrt)(luaL_checknumber(L, 1))); + return 1; +} + + +static int math_ult (lua_State *L) { + lua_Integer a = luaL_checkinteger(L, 1); + lua_Integer b = luaL_checkinteger(L, 2); + lua_pushboolean(L, (lua_Unsigned)a < (lua_Unsigned)b); + return 1; +} + +static int math_log (lua_State *L) { + lua_Number x = luaL_checknumber(L, 1); + lua_Number res; + if (lua_isnoneornil(L, 2)) + res = l_mathop(log)(x); + else { + lua_Number base = luaL_checknumber(L, 2); +#if !defined(LUA_USE_C89) + if (base == l_mathop(2.0)) + res = l_mathop(log2)(x); else +#endif + if (base == l_mathop(10.0)) + res = l_mathop(log10)(x); + else + res = l_mathop(log)(x)/l_mathop(log)(base); + } + lua_pushnumber(L, res); + return 1; +} + +static int math_exp (lua_State *L) { + lua_pushnumber(L, l_mathop(exp)(luaL_checknumber(L, 1))); + return 1; +} + +static int math_deg (lua_State *L) { + lua_pushnumber(L, luaL_checknumber(L, 1) * (l_mathop(180.0) / PI)); + return 1; +} + +static int math_rad (lua_State *L) { + lua_pushnumber(L, luaL_checknumber(L, 1) * (PI / l_mathop(180.0))); + return 1; +} + + +static int math_min (lua_State *L) { + int n = lua_gettop(L); /* number of arguments */ + int imin = 1; /* index of current minimum value */ + int i; + luaL_argcheck(L, n >= 1, 1, "value expected"); + for (i = 2; i <= n; i++) { + if (lua_compare(L, i, imin, LUA_OPLT)) + imin = i; + } + lua_pushvalue(L, imin); + return 1; +} + + +static int math_max (lua_State *L) { + int n = lua_gettop(L); /* number of arguments */ + int imax = 1; /* index of current maximum value */ + int i; + luaL_argcheck(L, n >= 1, 1, "value expected"); + for (i = 2; i <= n; i++) { + if (lua_compare(L, imax, i, LUA_OPLT)) + imax = i; + } + lua_pushvalue(L, imax); + return 1; +} + +/* +** This function uses 'double' (instead of 'lua_Number') to ensure that +** all bits from 'l_rand' can be represented, and that 'RANDMAX + 1.0' +** will keep full precision (ensuring that 'r' is always less than 1.0.) +*/ +static int math_random (lua_State *L) { + lua_Integer low, up; + double r = (double)l_rand() * (1.0 / ((double)L_RANDMAX + 1.0)); + switch (lua_gettop(L)) { /* check number of arguments */ + case 0: { /* no arguments */ + lua_pushnumber(L, (lua_Number)r); /* Number between 0 and 1 */ + return 1; + } + case 1: { /* only upper limit */ + low = 1; + up = luaL_checkinteger(L, 1); + break; + } + case 2: { /* lower and upper limits */ + low = luaL_checkinteger(L, 1); + up = luaL_checkinteger(L, 2); + break; + } + default: return luaL_error(L, "wrong number of arguments"); + } + /* random integer in the interval [low, up] */ + luaL_argcheck(L, low <= up, 1, "interval is empty"); + luaL_argcheck(L, low >= 0 || up <= LUA_MAXINTEGER + low, 1, + "interval too large"); + r *= (double)(up - low) + 1.0; + lua_pushinteger(L, (lua_Integer)r + low); + return 1; +} + + +static int math_randomseed (lua_State *L) { + l_srand((unsigned int)(lua_Integer)luaL_checknumber(L, 1)); + (void)l_rand(); /* discard first value to avoid undesirable correlations */ + return 0; +} + + +static int math_type (lua_State *L) { + if (lua_type(L, 1) == LUA_TNUMBER) { + if (lua_isinteger(L, 1)) + lua_pushliteral(L, "integer"); + else + lua_pushliteral(L, "float"); + } + else { + luaL_checkany(L, 1); + lua_pushnil(L); + } + return 1; +} + + +/* +** {================================================================== +** Deprecated functions (for compatibility only) +** =================================================================== +*/ +#if defined(LUA_COMPAT_MATHLIB) + +static int math_cosh (lua_State *L) { + lua_pushnumber(L, l_mathop(cosh)(luaL_checknumber(L, 1))); + return 1; +} + +static int math_sinh (lua_State *L) { + lua_pushnumber(L, l_mathop(sinh)(luaL_checknumber(L, 1))); + return 1; +} + +static int math_tanh (lua_State *L) { + lua_pushnumber(L, l_mathop(tanh)(luaL_checknumber(L, 1))); + return 1; +} + +static int math_pow (lua_State *L) { + lua_Number x = luaL_checknumber(L, 1); + lua_Number y = luaL_checknumber(L, 2); + lua_pushnumber(L, l_mathop(pow)(x, y)); + return 1; +} + +static int math_frexp (lua_State *L) { + int e; + lua_pushnumber(L, l_mathop(frexp)(luaL_checknumber(L, 1), &e)); + lua_pushinteger(L, e); + return 2; +} + +static int math_ldexp (lua_State *L) { + lua_Number x = luaL_checknumber(L, 1); + int ep = (int)luaL_checkinteger(L, 2); + lua_pushnumber(L, l_mathop(ldexp)(x, ep)); + return 1; +} + +static int math_log10 (lua_State *L) { + lua_pushnumber(L, l_mathop(log10)(luaL_checknumber(L, 1))); + return 1; +} + +#endif +/* }================================================================== */ + + + +static const luaL_Reg mathlib[] = { + {"abs", math_abs}, + {"acos", math_acos}, + {"asin", math_asin}, + {"atan", math_atan}, + {"ceil", math_ceil}, + {"cos", math_cos}, + {"deg", math_deg}, + {"exp", math_exp}, + {"tointeger", math_toint}, + {"floor", math_floor}, + {"fmod", math_fmod}, + {"ult", math_ult}, + {"log", math_log}, + {"max", math_max}, + {"min", math_min}, + {"modf", math_modf}, + {"rad", math_rad}, + {"random", math_random}, + {"randomseed", math_randomseed}, + {"sin", math_sin}, + {"sqrt", math_sqrt}, + {"tan", math_tan}, + {"type", math_type}, +#if defined(LUA_COMPAT_MATHLIB) + {"atan2", math_atan}, + {"cosh", math_cosh}, + {"sinh", math_sinh}, + {"tanh", math_tanh}, + {"pow", math_pow}, + {"frexp", math_frexp}, + {"ldexp", math_ldexp}, + {"log10", math_log10}, +#endif + /* placeholders */ + {"pi", NULL}, + {"huge", NULL}, + {"maxinteger", NULL}, + {"mininteger", NULL}, + {NULL, NULL} +}; + + +/* +** Open math library +*/ +LUAMOD_API int luaopen_math (lua_State *L) { + luaL_newlib(L, mathlib); + lua_pushnumber(L, PI); + lua_setfield(L, -2, "pi"); + lua_pushnumber(L, (lua_Number)HUGE_VAL); + lua_setfield(L, -2, "huge"); + lua_pushinteger(L, LUA_MAXINTEGER); + lua_setfield(L, -2, "maxinteger"); + lua_pushinteger(L, LUA_MININTEGER); + lua_setfield(L, -2, "mininteger"); + return 1; +} + diff --git a/3rd/lua-5.3.4/lmem.c b/3rd/lua-5.3.4/lmem.c new file mode 100644 index 0000000..0a0476c --- /dev/null +++ b/3rd/lua-5.3.4/lmem.c @@ -0,0 +1,100 @@ +/* +** $Id: lmem.c,v 1.91 2015/03/06 19:45:54 roberto Exp $ +** Interface to Memory Manager +** See Copyright Notice in lua.h +*/ + +#define lmem_c +#define LUA_CORE + +#include "lprefix.h" + + +#include + +#include "lua.h" + +#include "ldebug.h" +#include "ldo.h" +#include "lgc.h" +#include "lmem.h" +#include "lobject.h" +#include "lstate.h" + + + +/* +** About the realloc function: +** void * frealloc (void *ud, void *ptr, size_t osize, size_t nsize); +** ('osize' is the old size, 'nsize' is the new size) +** +** * frealloc(ud, NULL, x, s) creates a new block of size 's' (no +** matter 'x'). +** +** * frealloc(ud, p, x, 0) frees the block 'p' +** (in this specific case, frealloc must return NULL); +** particularly, frealloc(ud, NULL, 0, 0) does nothing +** (which is equivalent to free(NULL) in ISO C) +** +** frealloc returns NULL if it cannot create or reallocate the area +** (any reallocation to an equal or smaller size cannot fail!) +*/ + + + +#define MINSIZEARRAY 4 + + +void *luaM_growaux_ (lua_State *L, void *block, int *size, size_t size_elems, + int limit, const char *what) { + void *newblock; + int newsize; + if (*size >= limit/2) { /* cannot double it? */ + if (*size >= limit) /* cannot grow even a little? */ + luaG_runerror(L, "too many %s (limit is %d)", what, limit); + newsize = limit; /* still have at least one free place */ + } + else { + newsize = (*size)*2; + if (newsize < MINSIZEARRAY) + newsize = MINSIZEARRAY; /* minimum size */ + } + newblock = luaM_reallocv(L, block, *size, newsize, size_elems); + *size = newsize; /* update only when everything else is OK */ + return newblock; +} + + +l_noret luaM_toobig (lua_State *L) { + luaG_runerror(L, "memory allocation error: block too big"); +} + + + +/* +** generic allocation routine. +*/ +void *luaM_realloc_ (lua_State *L, void *block, size_t osize, size_t nsize) { + void *newblock; + global_State *g = G(L); + size_t realosize = (block) ? osize : 0; + lua_assert((realosize == 0) == (block == NULL)); +#if defined(HARDMEMTESTS) + if (nsize > realosize && g->gcrunning) + luaC_fullgc(L, 1); /* force a GC whenever possible */ +#endif + newblock = (*g->frealloc)(g->ud, block, osize, nsize); + if (newblock == NULL && nsize > 0) { + lua_assert(nsize > realosize); /* cannot fail when shrinking a block */ + if (g->version) { /* is state fully built? */ + luaC_fullgc(L, 1); /* try to free some memory... */ + newblock = (*g->frealloc)(g->ud, block, osize, nsize); /* try again */ + } + if (newblock == NULL) + luaD_throw(L, LUA_ERRMEM); + } + lua_assert((nsize == 0) == (newblock == NULL)); + g->GCdebt = (g->GCdebt + nsize) - realosize; + return newblock; +} + diff --git a/3rd/lua-5.3.4/lmem.h b/3rd/lua-5.3.4/lmem.h new file mode 100644 index 0000000..30f4848 --- /dev/null +++ b/3rd/lua-5.3.4/lmem.h @@ -0,0 +1,69 @@ +/* +** $Id: lmem.h,v 1.43 2014/12/19 17:26:14 roberto Exp $ +** Interface to Memory Manager +** See Copyright Notice in lua.h +*/ + +#ifndef lmem_h +#define lmem_h + + +#include + +#include "llimits.h" +#include "lua.h" + + +/* +** This macro reallocs a vector 'b' from 'on' to 'n' elements, where +** each element has size 'e'. In case of arithmetic overflow of the +** product 'n'*'e', it raises an error (calling 'luaM_toobig'). Because +** 'e' is always constant, it avoids the runtime division MAX_SIZET/(e). +** +** (The macro is somewhat complex to avoid warnings: The 'sizeof' +** comparison avoids a runtime comparison when overflow cannot occur. +** The compiler should be able to optimize the real test by itself, but +** when it does it, it may give a warning about "comparison is always +** false due to limited range of data type"; the +1 tricks the compiler, +** avoiding this warning but also this optimization.) +*/ +#define luaM_reallocv(L,b,on,n,e) \ + (((sizeof(n) >= sizeof(size_t) && cast(size_t, (n)) + 1 > MAX_SIZET/(e)) \ + ? luaM_toobig(L) : cast_void(0)) , \ + luaM_realloc_(L, (b), (on)*(e), (n)*(e))) + +/* +** Arrays of chars do not need any test +*/ +#define luaM_reallocvchar(L,b,on,n) \ + cast(char *, luaM_realloc_(L, (b), (on)*sizeof(char), (n)*sizeof(char))) + +#define luaM_freemem(L, b, s) luaM_realloc_(L, (b), (s), 0) +#define luaM_free(L, b) luaM_realloc_(L, (b), sizeof(*(b)), 0) +#define luaM_freearray(L, b, n) luaM_realloc_(L, (b), (n)*sizeof(*(b)), 0) + +#define luaM_malloc(L,s) luaM_realloc_(L, NULL, 0, (s)) +#define luaM_new(L,t) cast(t *, luaM_malloc(L, sizeof(t))) +#define luaM_newvector(L,n,t) \ + cast(t *, luaM_reallocv(L, NULL, 0, n, sizeof(t))) + +#define luaM_newobject(L,tag,s) luaM_realloc_(L, NULL, tag, (s)) + +#define luaM_growvector(L,v,nelems,size,t,limit,e) \ + if ((nelems)+1 > (size)) \ + ((v)=cast(t *, luaM_growaux_(L,v,&(size),sizeof(t),limit,e))) + +#define luaM_reallocvector(L, v,oldn,n,t) \ + ((v)=cast(t *, luaM_reallocv(L, v, oldn, n, sizeof(t)))) + +LUAI_FUNC l_noret luaM_toobig (lua_State *L); + +/* not to be called directly */ +LUAI_FUNC void *luaM_realloc_ (lua_State *L, void *block, size_t oldsize, + size_t size); +LUAI_FUNC void *luaM_growaux_ (lua_State *L, void *block, int *size, + size_t size_elem, int limit, + const char *what); + +#endif + diff --git a/3rd/lua-5.3.4/loadlib.c b/3rd/lua-5.3.4/loadlib.c new file mode 100644 index 0000000..4791e74 --- /dev/null +++ b/3rd/lua-5.3.4/loadlib.c @@ -0,0 +1,790 @@ +/* +** $Id: loadlib.c,v 1.130 2017/01/12 17:14:26 roberto Exp $ +** Dynamic library loader for Lua +** See Copyright Notice in lua.h +** +** This module contains an implementation of loadlib for Unix systems +** that have dlfcn, an implementation for Windows, and a stub for other +** systems. +*/ + +#define loadlib_c +#define LUA_LIB + +#include "lprefix.h" + + +#include +#include +#include + +#include "lua.h" + +#include "lauxlib.h" +#include "lualib.h" + + +/* +** LUA_IGMARK is a mark to ignore all before it when building the +** luaopen_ function name. +*/ +#if !defined (LUA_IGMARK) +#define LUA_IGMARK "-" +#endif + + +/* +** LUA_CSUBSEP is the character that replaces dots in submodule names +** when searching for a C loader. +** LUA_LSUBSEP is the character that replaces dots in submodule names +** when searching for a Lua loader. +*/ +#if !defined(LUA_CSUBSEP) +#define LUA_CSUBSEP LUA_DIRSEP +#endif + +#if !defined(LUA_LSUBSEP) +#define LUA_LSUBSEP LUA_DIRSEP +#endif + + +/* prefix for open functions in C libraries */ +#define LUA_POF "luaopen_" + +/* separator for open functions in C libraries */ +#define LUA_OFSEP "_" + + +/* +** unique key for table in the registry that keeps handles +** for all loaded C libraries +*/ +static const int CLIBS = 0; + +#define LIB_FAIL "open" + + +#define setprogdir(L) ((void)0) + + +/* +** system-dependent functions +*/ + +/* +** unload library 'lib' +*/ +static void lsys_unloadlib (void *lib); + +/* +** load C library in file 'path'. If 'seeglb', load with all names in +** the library global. +** Returns the library; in case of error, returns NULL plus an +** error string in the stack. +*/ +static void *lsys_load (lua_State *L, const char *path, int seeglb); + +/* +** Try to find a function named 'sym' in library 'lib'. +** Returns the function; in case of error, returns NULL plus an +** error string in the stack. +*/ +static lua_CFunction lsys_sym (lua_State *L, void *lib, const char *sym); + + + + +#if defined(LUA_USE_DLOPEN) /* { */ +/* +** {======================================================================== +** This is an implementation of loadlib based on the dlfcn interface. +** The dlfcn interface is available in Linux, SunOS, Solaris, IRIX, FreeBSD, +** NetBSD, AIX 4.2, HPUX 11, and probably most other Unix flavors, at least +** as an emulation layer on top of native functions. +** ========================================================================= +*/ + +#include + +/* +** Macro to convert pointer-to-void* to pointer-to-function. This cast +** is undefined according to ISO C, but POSIX assumes that it works. +** (The '__extension__' in gnu compilers is only to avoid warnings.) +*/ +#if defined(__GNUC__) +#define cast_func(p) (__extension__ (lua_CFunction)(p)) +#else +#define cast_func(p) ((lua_CFunction)(p)) +#endif + + +static void lsys_unloadlib (void *lib) { + dlclose(lib); +} + + +static void *lsys_load (lua_State *L, const char *path, int seeglb) { + void *lib = dlopen(path, RTLD_NOW | (seeglb ? RTLD_GLOBAL : RTLD_LOCAL)); + if (lib == NULL) lua_pushstring(L, dlerror()); + return lib; +} + + +static lua_CFunction lsys_sym (lua_State *L, void *lib, const char *sym) { + lua_CFunction f = cast_func(dlsym(lib, sym)); + if (f == NULL) lua_pushstring(L, dlerror()); + return f; +} + +/* }====================================================== */ + + + +#elif defined(LUA_DL_DLL) /* }{ */ +/* +** {====================================================================== +** This is an implementation of loadlib for Windows using native functions. +** ======================================================================= +*/ + +#include + + +/* +** optional flags for LoadLibraryEx +*/ +#if !defined(LUA_LLE_FLAGS) +#define LUA_LLE_FLAGS 0 +#endif + + +#undef setprogdir + + +/* +** Replace in the path (on the top of the stack) any occurrence +** of LUA_EXEC_DIR with the executable's path. +*/ +static void setprogdir (lua_State *L) { + char buff[MAX_PATH + 1]; + char *lb; + DWORD nsize = sizeof(buff)/sizeof(char); + DWORD n = GetModuleFileNameA(NULL, buff, nsize); /* get exec. name */ + if (n == 0 || n == nsize || (lb = strrchr(buff, '\\')) == NULL) + luaL_error(L, "unable to get ModuleFileName"); + else { + *lb = '\0'; /* cut name on the last '\\' to get the path */ + luaL_gsub(L, lua_tostring(L, -1), LUA_EXEC_DIR, buff); + lua_remove(L, -2); /* remove original string */ + } +} + + + + +static void pusherror (lua_State *L) { + int error = GetLastError(); + char buffer[128]; + if (FormatMessageA(FORMAT_MESSAGE_IGNORE_INSERTS | FORMAT_MESSAGE_FROM_SYSTEM, + NULL, error, 0, buffer, sizeof(buffer)/sizeof(char), NULL)) + lua_pushstring(L, buffer); + else + lua_pushfstring(L, "system error %d\n", error); +} + +static void lsys_unloadlib (void *lib) { + FreeLibrary((HMODULE)lib); +} + + +static void *lsys_load (lua_State *L, const char *path, int seeglb) { + HMODULE lib = LoadLibraryExA(path, NULL, LUA_LLE_FLAGS); + (void)(seeglb); /* not used: symbols are 'global' by default */ + if (lib == NULL) pusherror(L); + return lib; +} + + +static lua_CFunction lsys_sym (lua_State *L, void *lib, const char *sym) { + lua_CFunction f = (lua_CFunction)GetProcAddress((HMODULE)lib, sym); + if (f == NULL) pusherror(L); + return f; +} + +/* }====================================================== */ + + +#else /* }{ */ +/* +** {====================================================== +** Fallback for other systems +** ======================================================= +*/ + +#undef LIB_FAIL +#define LIB_FAIL "absent" + + +#define DLMSG "dynamic libraries not enabled; check your Lua installation" + + +static void lsys_unloadlib (void *lib) { + (void)(lib); /* not used */ +} + + +static void *lsys_load (lua_State *L, const char *path, int seeglb) { + (void)(path); (void)(seeglb); /* not used */ + lua_pushliteral(L, DLMSG); + return NULL; +} + + +static lua_CFunction lsys_sym (lua_State *L, void *lib, const char *sym) { + (void)(lib); (void)(sym); /* not used */ + lua_pushliteral(L, DLMSG); + return NULL; +} + +/* }====================================================== */ +#endif /* } */ + + +/* +** {================================================================== +** Set Paths +** =================================================================== +*/ + +/* +** LUA_PATH_VAR and LUA_CPATH_VAR are the names of the environment +** variables that Lua check to set its paths. +*/ +#if !defined(LUA_PATH_VAR) +#define LUA_PATH_VAR "LUA_PATH" +#endif + +#if !defined(LUA_CPATH_VAR) +#define LUA_CPATH_VAR "LUA_CPATH" +#endif + + +#define AUXMARK "\1" /* auxiliary mark */ + + +/* +** return registry.LUA_NOENV as a boolean +*/ +static int noenv (lua_State *L) { + int b; + lua_getfield(L, LUA_REGISTRYINDEX, "LUA_NOENV"); + b = lua_toboolean(L, -1); + lua_pop(L, 1); /* remove value */ + return b; +} + + +/* +** Set a path +*/ +static void setpath (lua_State *L, const char *fieldname, + const char *envname, + const char *dft) { + const char *nver = lua_pushfstring(L, "%s%s", envname, LUA_VERSUFFIX); + const char *path = getenv(nver); /* use versioned name */ + if (path == NULL) /* no environment variable? */ + path = getenv(envname); /* try unversioned name */ + if (path == NULL || noenv(L)) /* no environment variable? */ + lua_pushstring(L, dft); /* use default */ + else { + /* replace ";;" by ";AUXMARK;" and then AUXMARK by default path */ + path = luaL_gsub(L, path, LUA_PATH_SEP LUA_PATH_SEP, + LUA_PATH_SEP AUXMARK LUA_PATH_SEP); + luaL_gsub(L, path, AUXMARK, dft); + lua_remove(L, -2); /* remove result from 1st 'gsub' */ + } + setprogdir(L); + lua_setfield(L, -3, fieldname); /* package[fieldname] = path value */ + lua_pop(L, 1); /* pop versioned variable name */ +} + +/* }================================================================== */ + + +/* +** return registry.CLIBS[path] +*/ +static void *checkclib (lua_State *L, const char *path) { + void *plib; + lua_rawgetp(L, LUA_REGISTRYINDEX, &CLIBS); + lua_getfield(L, -1, path); + plib = lua_touserdata(L, -1); /* plib = CLIBS[path] */ + lua_pop(L, 2); /* pop CLIBS table and 'plib' */ + return plib; +} + + +/* +** registry.CLIBS[path] = plib -- for queries +** registry.CLIBS[#CLIBS + 1] = plib -- also keep a list of all libraries +*/ +static void addtoclib (lua_State *L, const char *path, void *plib) { + lua_rawgetp(L, LUA_REGISTRYINDEX, &CLIBS); + lua_pushlightuserdata(L, plib); + lua_pushvalue(L, -1); + lua_setfield(L, -3, path); /* CLIBS[path] = plib */ + lua_rawseti(L, -2, luaL_len(L, -2) + 1); /* CLIBS[#CLIBS + 1] = plib */ + lua_pop(L, 1); /* pop CLIBS table */ +} + + +/* +** __gc tag method for CLIBS table: calls 'lsys_unloadlib' for all lib +** handles in list CLIBS +*/ +static int gctm (lua_State *L) { + lua_Integer n = luaL_len(L, 1); + for (; n >= 1; n--) { /* for each handle, in reverse order */ + lua_rawgeti(L, 1, n); /* get handle CLIBS[n] */ + lsys_unloadlib(lua_touserdata(L, -1)); + lua_pop(L, 1); /* pop handle */ + } + return 0; +} + + + +/* error codes for 'lookforfunc' */ +#define ERRLIB 1 +#define ERRFUNC 2 + +/* +** Look for a C function named 'sym' in a dynamically loaded library +** 'path'. +** First, check whether the library is already loaded; if not, try +** to load it. +** Then, if 'sym' is '*', return true (as library has been loaded). +** Otherwise, look for symbol 'sym' in the library and push a +** C function with that symbol. +** Return 0 and 'true' or a function in the stack; in case of +** errors, return an error code and an error message in the stack. +*/ +static int lookforfunc (lua_State *L, const char *path, const char *sym) { + void *reg = checkclib(L, path); /* check loaded C libraries */ + if (reg == NULL) { /* must load library? */ + reg = lsys_load(L, path, *sym == '*'); /* global symbols if 'sym'=='*' */ + if (reg == NULL) return ERRLIB; /* unable to load library */ + addtoclib(L, path, reg); + } + if (*sym == '*') { /* loading only library (no function)? */ + lua_pushboolean(L, 1); /* return 'true' */ + return 0; /* no errors */ + } + else { + lua_CFunction f = lsys_sym(L, reg, sym); + if (f == NULL) + return ERRFUNC; /* unable to find function */ + lua_pushcfunction(L, f); /* else create new function */ + return 0; /* no errors */ + } +} + + +static int ll_loadlib (lua_State *L) { + const char *path = luaL_checkstring(L, 1); + const char *init = luaL_checkstring(L, 2); + int stat = lookforfunc(L, path, init); + if (stat == 0) /* no errors? */ + return 1; /* return the loaded function */ + else { /* error; error message is on stack top */ + lua_pushnil(L); + lua_insert(L, -2); + lua_pushstring(L, (stat == ERRLIB) ? LIB_FAIL : "init"); + return 3; /* return nil, error message, and where */ + } +} + + + +/* +** {====================================================== +** 'require' function +** ======================================================= +*/ + + +static int readable (const char *filename) { + FILE *f = fopen(filename, "r"); /* try to open file */ + if (f == NULL) return 0; /* open failed */ + fclose(f); + return 1; +} + + +static const char *pushnexttemplate (lua_State *L, const char *path) { + const char *l; + while (*path == *LUA_PATH_SEP) path++; /* skip separators */ + if (*path == '\0') return NULL; /* no more templates */ + l = strchr(path, *LUA_PATH_SEP); /* find next separator */ + if (l == NULL) l = path + strlen(path); + lua_pushlstring(L, path, l - path); /* template */ + return l; +} + + +static const char *searchpath (lua_State *L, const char *name, + const char *path, + const char *sep, + const char *dirsep) { + luaL_Buffer msg; /* to build error message */ + luaL_buffinit(L, &msg); + if (*sep != '\0') /* non-empty separator? */ + name = luaL_gsub(L, name, sep, dirsep); /* replace it by 'dirsep' */ + while ((path = pushnexttemplate(L, path)) != NULL) { + const char *filename = luaL_gsub(L, lua_tostring(L, -1), + LUA_PATH_MARK, name); + lua_remove(L, -2); /* remove path template */ + if (readable(filename)) /* does file exist and is readable? */ + return filename; /* return that file name */ + lua_pushfstring(L, "\n\tno file '%s'", filename); + lua_remove(L, -2); /* remove file name */ + luaL_addvalue(&msg); /* concatenate error msg. entry */ + } + luaL_pushresult(&msg); /* create error message */ + return NULL; /* not found */ +} + + +static int ll_searchpath (lua_State *L) { + const char *f = searchpath(L, luaL_checkstring(L, 1), + luaL_checkstring(L, 2), + luaL_optstring(L, 3, "."), + luaL_optstring(L, 4, LUA_DIRSEP)); + if (f != NULL) return 1; + else { /* error message is on top of the stack */ + lua_pushnil(L); + lua_insert(L, -2); + return 2; /* return nil + error message */ + } +} + + +static const char *findfile (lua_State *L, const char *name, + const char *pname, + const char *dirsep) { + const char *path; + lua_getfield(L, lua_upvalueindex(1), pname); + path = lua_tostring(L, -1); + if (path == NULL) + luaL_error(L, "'package.%s' must be a string", pname); + return searchpath(L, name, path, ".", dirsep); +} + + +static int checkload (lua_State *L, int stat, const char *filename) { + if (stat) { /* module loaded successfully? */ + lua_pushstring(L, filename); /* will be 2nd argument to module */ + return 2; /* return open function and file name */ + } + else + return luaL_error(L, "error loading module '%s' from file '%s':\n\t%s", + lua_tostring(L, 1), filename, lua_tostring(L, -1)); +} + + +static int searcher_Lua (lua_State *L) { + const char *filename; + const char *name = luaL_checkstring(L, 1); + filename = findfile(L, name, "path", LUA_LSUBSEP); + if (filename == NULL) return 1; /* module not found in this path */ + return checkload(L, (luaL_loadfile(L, filename) == LUA_OK), filename); +} + + +/* +** Try to find a load function for module 'modname' at file 'filename'. +** First, change '.' to '_' in 'modname'; then, if 'modname' has +** the form X-Y (that is, it has an "ignore mark"), build a function +** name "luaopen_X" and look for it. (For compatibility, if that +** fails, it also tries "luaopen_Y".) If there is no ignore mark, +** look for a function named "luaopen_modname". +*/ +static int loadfunc (lua_State *L, const char *filename, const char *modname) { + const char *openfunc; + const char *mark; + modname = luaL_gsub(L, modname, ".", LUA_OFSEP); + mark = strchr(modname, *LUA_IGMARK); + if (mark) { + int stat; + openfunc = lua_pushlstring(L, modname, mark - modname); + openfunc = lua_pushfstring(L, LUA_POF"%s", openfunc); + stat = lookforfunc(L, filename, openfunc); + if (stat != ERRFUNC) return stat; + modname = mark + 1; /* else go ahead and try old-style name */ + } + openfunc = lua_pushfstring(L, LUA_POF"%s", modname); + return lookforfunc(L, filename, openfunc); +} + + +static int searcher_C (lua_State *L) { + const char *name = luaL_checkstring(L, 1); + const char *filename = findfile(L, name, "cpath", LUA_CSUBSEP); + if (filename == NULL) return 1; /* module not found in this path */ + return checkload(L, (loadfunc(L, filename, name) == 0), filename); +} + + +static int searcher_Croot (lua_State *L) { + const char *filename; + const char *name = luaL_checkstring(L, 1); + const char *p = strchr(name, '.'); + int stat; + if (p == NULL) return 0; /* is root */ + lua_pushlstring(L, name, p - name); + filename = findfile(L, lua_tostring(L, -1), "cpath", LUA_CSUBSEP); + if (filename == NULL) return 1; /* root not found */ + if ((stat = loadfunc(L, filename, name)) != 0) { + if (stat != ERRFUNC) + return checkload(L, 0, filename); /* real error */ + else { /* open function not found */ + lua_pushfstring(L, "\n\tno module '%s' in file '%s'", name, filename); + return 1; + } + } + lua_pushstring(L, filename); /* will be 2nd argument to module */ + return 2; +} + + +static int searcher_preload (lua_State *L) { + const char *name = luaL_checkstring(L, 1); + lua_getfield(L, LUA_REGISTRYINDEX, LUA_PRELOAD_TABLE); + if (lua_getfield(L, -1, name) == LUA_TNIL) /* not found? */ + lua_pushfstring(L, "\n\tno field package.preload['%s']", name); + return 1; +} + + +static void findloader (lua_State *L, const char *name) { + int i; + luaL_Buffer msg; /* to build error message */ + luaL_buffinit(L, &msg); + /* push 'package.searchers' to index 3 in the stack */ + if (lua_getfield(L, lua_upvalueindex(1), "searchers") != LUA_TTABLE) + luaL_error(L, "'package.searchers' must be a table"); + /* iterate over available searchers to find a loader */ + for (i = 1; ; i++) { + if (lua_rawgeti(L, 3, i) == LUA_TNIL) { /* no more searchers? */ + lua_pop(L, 1); /* remove nil */ + luaL_pushresult(&msg); /* create error message */ + luaL_error(L, "module '%s' not found:%s", name, lua_tostring(L, -1)); + } + lua_pushstring(L, name); + lua_call(L, 1, 2); /* call it */ + if (lua_isfunction(L, -2)) /* did it find a loader? */ + return; /* module loader found */ + else if (lua_isstring(L, -2)) { /* searcher returned error message? */ + lua_pop(L, 1); /* remove extra return */ + luaL_addvalue(&msg); /* concatenate error message */ + } + else + lua_pop(L, 2); /* remove both returns */ + } +} + + +static int ll_require (lua_State *L) { + const char *name = luaL_checkstring(L, 1); + lua_settop(L, 1); /* LOADED table will be at index 2 */ + lua_getfield(L, LUA_REGISTRYINDEX, LUA_LOADED_TABLE); + lua_getfield(L, 2, name); /* LOADED[name] */ + if (lua_toboolean(L, -1)) /* is it there? */ + return 1; /* package is already loaded */ + /* else must load package */ + lua_pop(L, 1); /* remove 'getfield' result */ + findloader(L, name); + lua_pushstring(L, name); /* pass name as argument to module loader */ + lua_insert(L, -2); /* name is 1st argument (before search data) */ + lua_call(L, 2, 1); /* run loader to load module */ + if (!lua_isnil(L, -1)) /* non-nil return? */ + lua_setfield(L, 2, name); /* LOADED[name] = returned value */ + if (lua_getfield(L, 2, name) == LUA_TNIL) { /* module set no value? */ + lua_pushboolean(L, 1); /* use true as result */ + lua_pushvalue(L, -1); /* extra copy to be returned */ + lua_setfield(L, 2, name); /* LOADED[name] = true */ + } + return 1; +} + +/* }====================================================== */ + + + +/* +** {====================================================== +** 'module' function +** ======================================================= +*/ +#if defined(LUA_COMPAT_MODULE) + +/* +** changes the environment variable of calling function +*/ +static void set_env (lua_State *L) { + lua_Debug ar; + if (lua_getstack(L, 1, &ar) == 0 || + lua_getinfo(L, "f", &ar) == 0 || /* get calling function */ + lua_iscfunction(L, -1)) + luaL_error(L, "'module' not called from a Lua function"); + lua_pushvalue(L, -2); /* copy new environment table to top */ + lua_setupvalue(L, -2, 1); + lua_pop(L, 1); /* remove function */ +} + + +static void dooptions (lua_State *L, int n) { + int i; + for (i = 2; i <= n; i++) { + if (lua_isfunction(L, i)) { /* avoid 'calling' extra info. */ + lua_pushvalue(L, i); /* get option (a function) */ + lua_pushvalue(L, -2); /* module */ + lua_call(L, 1, 0); + } + } +} + + +static void modinit (lua_State *L, const char *modname) { + const char *dot; + lua_pushvalue(L, -1); + lua_setfield(L, -2, "_M"); /* module._M = module */ + lua_pushstring(L, modname); + lua_setfield(L, -2, "_NAME"); + dot = strrchr(modname, '.'); /* look for last dot in module name */ + if (dot == NULL) dot = modname; + else dot++; + /* set _PACKAGE as package name (full module name minus last part) */ + lua_pushlstring(L, modname, dot - modname); + lua_setfield(L, -2, "_PACKAGE"); +} + + +static int ll_module (lua_State *L) { + const char *modname = luaL_checkstring(L, 1); + int lastarg = lua_gettop(L); /* last parameter */ + luaL_pushmodule(L, modname, 1); /* get/create module table */ + /* check whether table already has a _NAME field */ + if (lua_getfield(L, -1, "_NAME") != LUA_TNIL) + lua_pop(L, 1); /* table is an initialized module */ + else { /* no; initialize it */ + lua_pop(L, 1); + modinit(L, modname); + } + lua_pushvalue(L, -1); + set_env(L); + dooptions(L, lastarg); + return 1; +} + + +static int ll_seeall (lua_State *L) { + luaL_checktype(L, 1, LUA_TTABLE); + if (!lua_getmetatable(L, 1)) { + lua_createtable(L, 0, 1); /* create new metatable */ + lua_pushvalue(L, -1); + lua_setmetatable(L, 1); + } + lua_pushglobaltable(L); + lua_setfield(L, -2, "__index"); /* mt.__index = _G */ + return 0; +} + +#endif +/* }====================================================== */ + + + +static const luaL_Reg pk_funcs[] = { + {"loadlib", ll_loadlib}, + {"searchpath", ll_searchpath}, +#if defined(LUA_COMPAT_MODULE) + {"seeall", ll_seeall}, +#endif + /* placeholders */ + {"preload", NULL}, + {"cpath", NULL}, + {"path", NULL}, + {"searchers", NULL}, + {"loaded", NULL}, + {NULL, NULL} +}; + + +static const luaL_Reg ll_funcs[] = { +#if defined(LUA_COMPAT_MODULE) + {"module", ll_module}, +#endif + {"require", ll_require}, + {NULL, NULL} +}; + + +static void createsearcherstable (lua_State *L) { + static const lua_CFunction searchers[] = + {searcher_preload, searcher_Lua, searcher_C, searcher_Croot, NULL}; + int i; + /* create 'searchers' table */ + lua_createtable(L, sizeof(searchers)/sizeof(searchers[0]) - 1, 0); + /* fill it with predefined searchers */ + for (i=0; searchers[i] != NULL; i++) { + lua_pushvalue(L, -2); /* set 'package' as upvalue for all searchers */ + lua_pushcclosure(L, searchers[i], 1); + lua_rawseti(L, -2, i+1); + } +#if defined(LUA_COMPAT_LOADERS) + lua_pushvalue(L, -1); /* make a copy of 'searchers' table */ + lua_setfield(L, -3, "loaders"); /* put it in field 'loaders' */ +#endif + lua_setfield(L, -2, "searchers"); /* put it in field 'searchers' */ +} + + +/* +** create table CLIBS to keep track of loaded C libraries, +** setting a finalizer to close all libraries when closing state. +*/ +static void createclibstable (lua_State *L) { + lua_newtable(L); /* create CLIBS table */ + lua_createtable(L, 0, 1); /* create metatable for CLIBS */ + lua_pushcfunction(L, gctm); + lua_setfield(L, -2, "__gc"); /* set finalizer for CLIBS table */ + lua_setmetatable(L, -2); + lua_rawsetp(L, LUA_REGISTRYINDEX, &CLIBS); /* set CLIBS table in registry */ +} + + +LUAMOD_API int luaopen_package (lua_State *L) { + createclibstable(L); + luaL_newlib(L, pk_funcs); /* create 'package' table */ + createsearcherstable(L); + /* set paths */ + setpath(L, "path", LUA_PATH_VAR, LUA_PATH_DEFAULT); + setpath(L, "cpath", LUA_CPATH_VAR, LUA_CPATH_DEFAULT); + /* store config information */ + lua_pushliteral(L, LUA_DIRSEP "\n" LUA_PATH_SEP "\n" LUA_PATH_MARK "\n" + LUA_EXEC_DIR "\n" LUA_IGMARK "\n"); + lua_setfield(L, -2, "config"); + /* set field 'loaded' */ + luaL_getsubtable(L, LUA_REGISTRYINDEX, LUA_LOADED_TABLE); + lua_setfield(L, -2, "loaded"); + /* set field 'preload' */ + luaL_getsubtable(L, LUA_REGISTRYINDEX, LUA_PRELOAD_TABLE); + lua_setfield(L, -2, "preload"); + lua_pushglobaltable(L); + lua_pushvalue(L, -2); /* set 'package' as upvalue for next lib */ + luaL_setfuncs(L, ll_funcs, 1); /* open lib into global table */ + lua_pop(L, 1); /* pop global table */ + return 1; /* return 'package' table */ +} + diff --git a/3rd/lua-5.3.4/lobject.c b/3rd/lua-5.3.4/lobject.c new file mode 100644 index 0000000..2da7689 --- /dev/null +++ b/3rd/lua-5.3.4/lobject.c @@ -0,0 +1,521 @@ +/* +** $Id: lobject.c,v 2.113 2016/12/22 13:08:50 roberto Exp $ +** Some generic functions over Lua objects +** See Copyright Notice in lua.h +*/ + +#define lobject_c +#define LUA_CORE + +#include "lprefix.h" + + +#include +#include +#include +#include +#include +#include + +#include "lua.h" + +#include "lctype.h" +#include "ldebug.h" +#include "ldo.h" +#include "lmem.h" +#include "lobject.h" +#include "lstate.h" +#include "lstring.h" +#include "lvm.h" + + + +LUAI_DDEF const TValue luaO_nilobject_ = {NILCONSTANT}; + + +/* +** converts an integer to a "floating point byte", represented as +** (eeeeexxx), where the real value is (1xxx) * 2^(eeeee - 1) if +** eeeee != 0 and (xxx) otherwise. +*/ +int luaO_int2fb (unsigned int x) { + int e = 0; /* exponent */ + if (x < 8) return x; + while (x >= (8 << 4)) { /* coarse steps */ + x = (x + 0xf) >> 4; /* x = ceil(x / 16) */ + e += 4; + } + while (x >= (8 << 1)) { /* fine steps */ + x = (x + 1) >> 1; /* x = ceil(x / 2) */ + e++; + } + return ((e+1) << 3) | (cast_int(x) - 8); +} + + +/* converts back */ +int luaO_fb2int (int x) { + return (x < 8) ? x : ((x & 7) + 8) << ((x >> 3) - 1); +} + + +/* +** Computes ceil(log2(x)) +*/ +int luaO_ceillog2 (unsigned int x) { + static const lu_byte log_2[256] = { /* log_2[i] = ceil(log2(i - 1)) */ + 0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, + 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 + }; + int l = 0; + x--; + while (x >= 256) { l += 8; x >>= 8; } + return l + log_2[x]; +} + + +static lua_Integer intarith (lua_State *L, int op, lua_Integer v1, + lua_Integer v2) { + switch (op) { + case LUA_OPADD: return intop(+, v1, v2); + case LUA_OPSUB:return intop(-, v1, v2); + case LUA_OPMUL:return intop(*, v1, v2); + case LUA_OPMOD: return luaV_mod(L, v1, v2); + case LUA_OPIDIV: return luaV_div(L, v1, v2); + case LUA_OPBAND: return intop(&, v1, v2); + case LUA_OPBOR: return intop(|, v1, v2); + case LUA_OPBXOR: return intop(^, v1, v2); + case LUA_OPSHL: return luaV_shiftl(v1, v2); + case LUA_OPSHR: return luaV_shiftl(v1, -v2); + case LUA_OPUNM: return intop(-, 0, v1); + case LUA_OPBNOT: return intop(^, ~l_castS2U(0), v1); + default: lua_assert(0); return 0; + } +} + + +static lua_Number numarith (lua_State *L, int op, lua_Number v1, + lua_Number v2) { + switch (op) { + case LUA_OPADD: return luai_numadd(L, v1, v2); + case LUA_OPSUB: return luai_numsub(L, v1, v2); + case LUA_OPMUL: return luai_nummul(L, v1, v2); + case LUA_OPDIV: return luai_numdiv(L, v1, v2); + case LUA_OPPOW: return luai_numpow(L, v1, v2); + case LUA_OPIDIV: return luai_numidiv(L, v1, v2); + case LUA_OPUNM: return luai_numunm(L, v1); + case LUA_OPMOD: { + lua_Number m; + luai_nummod(L, v1, v2, m); + return m; + } + default: lua_assert(0); return 0; + } +} + + +void luaO_arith (lua_State *L, int op, const TValue *p1, const TValue *p2, + TValue *res) { + switch (op) { + case LUA_OPBAND: case LUA_OPBOR: case LUA_OPBXOR: + case LUA_OPSHL: case LUA_OPSHR: + case LUA_OPBNOT: { /* operate only on integers */ + lua_Integer i1; lua_Integer i2; + if (tointeger(p1, &i1) && tointeger(p2, &i2)) { + setivalue(res, intarith(L, op, i1, i2)); + return; + } + else break; /* go to the end */ + } + case LUA_OPDIV: case LUA_OPPOW: { /* operate only on floats */ + lua_Number n1; lua_Number n2; + if (tonumber(p1, &n1) && tonumber(p2, &n2)) { + setfltvalue(res, numarith(L, op, n1, n2)); + return; + } + else break; /* go to the end */ + } + default: { /* other operations */ + lua_Number n1; lua_Number n2; + if (ttisinteger(p1) && ttisinteger(p2)) { + setivalue(res, intarith(L, op, ivalue(p1), ivalue(p2))); + return; + } + else if (tonumber(p1, &n1) && tonumber(p2, &n2)) { + setfltvalue(res, numarith(L, op, n1, n2)); + return; + } + else break; /* go to the end */ + } + } + /* could not perform raw operation; try metamethod */ + lua_assert(L != NULL); /* should not fail when folding (compile time) */ + luaT_trybinTM(L, p1, p2, res, cast(TMS, (op - LUA_OPADD) + TM_ADD)); +} + + +int luaO_hexavalue (int c) { + if (lisdigit(c)) return c - '0'; + else return (ltolower(c) - 'a') + 10; +} + + +static int isneg (const char **s) { + if (**s == '-') { (*s)++; return 1; } + else if (**s == '+') (*s)++; + return 0; +} + + + +/* +** {================================================================== +** Lua's implementation for 'lua_strx2number' +** =================================================================== +*/ + +#if !defined(lua_strx2number) + +/* maximum number of significant digits to read (to avoid overflows + even with single floats) */ +#define MAXSIGDIG 30 + +/* +** convert an hexadecimal numeric string to a number, following +** C99 specification for 'strtod' +*/ +static lua_Number lua_strx2number (const char *s, char **endptr) { + int dot = lua_getlocaledecpoint(); + lua_Number r = 0.0; /* result (accumulator) */ + int sigdig = 0; /* number of significant digits */ + int nosigdig = 0; /* number of non-significant digits */ + int e = 0; /* exponent correction */ + int neg; /* 1 if number is negative */ + int hasdot = 0; /* true after seen a dot */ + *endptr = cast(char *, s); /* nothing is valid yet */ + while (lisspace(cast_uchar(*s))) s++; /* skip initial spaces */ + neg = isneg(&s); /* check signal */ + if (!(*s == '0' && (*(s + 1) == 'x' || *(s + 1) == 'X'))) /* check '0x' */ + return 0.0; /* invalid format (no '0x') */ + for (s += 2; ; s++) { /* skip '0x' and read numeral */ + if (*s == dot) { + if (hasdot) break; /* second dot? stop loop */ + else hasdot = 1; + } + else if (lisxdigit(cast_uchar(*s))) { + if (sigdig == 0 && *s == '0') /* non-significant digit (zero)? */ + nosigdig++; + else if (++sigdig <= MAXSIGDIG) /* can read it without overflow? */ + r = (r * cast_num(16.0)) + luaO_hexavalue(*s); + else e++; /* too many digits; ignore, but still count for exponent */ + if (hasdot) e--; /* decimal digit? correct exponent */ + } + else break; /* neither a dot nor a digit */ + } + if (nosigdig + sigdig == 0) /* no digits? */ + return 0.0; /* invalid format */ + *endptr = cast(char *, s); /* valid up to here */ + e *= 4; /* each digit multiplies/divides value by 2^4 */ + if (*s == 'p' || *s == 'P') { /* exponent part? */ + int exp1 = 0; /* exponent value */ + int neg1; /* exponent signal */ + s++; /* skip 'p' */ + neg1 = isneg(&s); /* signal */ + if (!lisdigit(cast_uchar(*s))) + return 0.0; /* invalid; must have at least one digit */ + while (lisdigit(cast_uchar(*s))) /* read exponent */ + exp1 = exp1 * 10 + *(s++) - '0'; + if (neg1) exp1 = -exp1; + e += exp1; + *endptr = cast(char *, s); /* valid up to here */ + } + if (neg) r = -r; + return l_mathop(ldexp)(r, e); +} + +#endif +/* }====================================================== */ + + +/* maximum length of a numeral */ +#if !defined (L_MAXLENNUM) +#define L_MAXLENNUM 200 +#endif + +static const char *l_str2dloc (const char *s, lua_Number *result, int mode) { + char *endptr; + *result = (mode == 'x') ? lua_strx2number(s, &endptr) /* try to convert */ + : lua_str2number(s, &endptr); + if (endptr == s) return NULL; /* nothing recognized? */ + while (lisspace(cast_uchar(*endptr))) endptr++; /* skip trailing spaces */ + return (*endptr == '\0') ? endptr : NULL; /* OK if no trailing characters */ +} + + +/* +** Convert string 's' to a Lua number (put in 'result'). Return NULL +** on fail or the address of the ending '\0' on success. +** 'pmode' points to (and 'mode' contains) special things in the string: +** - 'x'/'X' means an hexadecimal numeral +** - 'n'/'N' means 'inf' or 'nan' (which should be rejected) +** - '.' just optimizes the search for the common case (nothing special) +** This function accepts both the current locale or a dot as the radix +** mark. If the convertion fails, it may mean number has a dot but +** locale accepts something else. In that case, the code copies 's' +** to a buffer (because 's' is read-only), changes the dot to the +** current locale radix mark, and tries to convert again. +*/ +static const char *l_str2d (const char *s, lua_Number *result) { + const char *endptr; + const char *pmode = strpbrk(s, ".xXnN"); + int mode = pmode ? ltolower(cast_uchar(*pmode)) : 0; + if (mode == 'n') /* reject 'inf' and 'nan' */ + return NULL; + endptr = l_str2dloc(s, result, mode); /* try to convert */ + if (endptr == NULL) { /* failed? may be a different locale */ + char buff[L_MAXLENNUM + 1]; + const char *pdot = strchr(s, '.'); + if (strlen(s) > L_MAXLENNUM || pdot == NULL) + return NULL; /* string too long or no dot; fail */ + strcpy(buff, s); /* copy string to buffer */ + buff[pdot - s] = lua_getlocaledecpoint(); /* correct decimal point */ + endptr = l_str2dloc(buff, result, mode); /* try again */ + if (endptr != NULL) + endptr = s + (endptr - buff); /* make relative to 's' */ + } + return endptr; +} + + +#define MAXBY10 cast(lua_Unsigned, LUA_MAXINTEGER / 10) +#define MAXLASTD cast_int(LUA_MAXINTEGER % 10) + +static const char *l_str2int (const char *s, lua_Integer *result) { + lua_Unsigned a = 0; + int empty = 1; + int neg; + while (lisspace(cast_uchar(*s))) s++; /* skip initial spaces */ + neg = isneg(&s); + if (s[0] == '0' && + (s[1] == 'x' || s[1] == 'X')) { /* hex? */ + s += 2; /* skip '0x' */ + for (; lisxdigit(cast_uchar(*s)); s++) { + a = a * 16 + luaO_hexavalue(*s); + empty = 0; + } + } + else { /* decimal */ + for (; lisdigit(cast_uchar(*s)); s++) { + int d = *s - '0'; + if (a >= MAXBY10 && (a > MAXBY10 || d > MAXLASTD + neg)) /* overflow? */ + return NULL; /* do not accept it (as integer) */ + a = a * 10 + d; + empty = 0; + } + } + while (lisspace(cast_uchar(*s))) s++; /* skip trailing spaces */ + if (empty || *s != '\0') return NULL; /* something wrong in the numeral */ + else { + *result = l_castU2S((neg) ? 0u - a : a); + return s; + } +} + + +size_t luaO_str2num (const char *s, TValue *o) { + lua_Integer i; lua_Number n; + const char *e; + if ((e = l_str2int(s, &i)) != NULL) { /* try as an integer */ + setivalue(o, i); + } + else if ((e = l_str2d(s, &n)) != NULL) { /* else try as a float */ + setfltvalue(o, n); + } + else + return 0; /* conversion failed */ + return (e - s) + 1; /* success; return string size */ +} + + +int luaO_utf8esc (char *buff, unsigned long x) { + int n = 1; /* number of bytes put in buffer (backwards) */ + lua_assert(x <= 0x10FFFF); + if (x < 0x80) /* ascii? */ + buff[UTF8BUFFSZ - 1] = cast(char, x); + else { /* need continuation bytes */ + unsigned int mfb = 0x3f; /* maximum that fits in first byte */ + do { /* add continuation bytes */ + buff[UTF8BUFFSZ - (n++)] = cast(char, 0x80 | (x & 0x3f)); + x >>= 6; /* remove added bits */ + mfb >>= 1; /* now there is one less bit available in first byte */ + } while (x > mfb); /* still needs continuation byte? */ + buff[UTF8BUFFSZ - n] = cast(char, (~mfb << 1) | x); /* add first byte */ + } + return n; +} + + +/* maximum length of the conversion of a number to a string */ +#define MAXNUMBER2STR 50 + + +/* +** Convert a number object to a string +*/ +void luaO_tostring (lua_State *L, StkId obj) { + char buff[MAXNUMBER2STR]; + size_t len; + lua_assert(ttisnumber(obj)); + if (ttisinteger(obj)) + len = lua_integer2str(buff, sizeof(buff), ivalue(obj)); + else { + len = lua_number2str(buff, sizeof(buff), fltvalue(obj)); +#if !defined(LUA_COMPAT_FLOATSTRING) + if (buff[strspn(buff, "-0123456789")] == '\0') { /* looks like an int? */ + buff[len++] = lua_getlocaledecpoint(); + buff[len++] = '0'; /* adds '.0' to result */ + } +#endif + } + setsvalue2s(L, obj, luaS_newlstr(L, buff, len)); +} + + +static void pushstr (lua_State *L, const char *str, size_t l) { + setsvalue2s(L, L->top, luaS_newlstr(L, str, l)); + luaD_inctop(L); +} + + +/* +** this function handles only '%d', '%c', '%f', '%p', and '%s' + conventional formats, plus Lua-specific '%I' and '%U' +*/ +const char *luaO_pushvfstring (lua_State *L, const char *fmt, va_list argp) { + int n = 0; + for (;;) { + const char *e = strchr(fmt, '%'); + if (e == NULL) break; + pushstr(L, fmt, e - fmt); + switch (*(e+1)) { + case 's': { /* zero-terminated string */ + const char *s = va_arg(argp, char *); + if (s == NULL) s = "(null)"; + pushstr(L, s, strlen(s)); + break; + } + case 'c': { /* an 'int' as a character */ + char buff = cast(char, va_arg(argp, int)); + if (lisprint(cast_uchar(buff))) + pushstr(L, &buff, 1); + else /* non-printable character; print its code */ + luaO_pushfstring(L, "<\\%d>", cast_uchar(buff)); + break; + } + case 'd': { /* an 'int' */ + setivalue(L->top, va_arg(argp, int)); + goto top2str; + } + case 'I': { /* a 'lua_Integer' */ + setivalue(L->top, cast(lua_Integer, va_arg(argp, l_uacInt))); + goto top2str; + } + case 'f': { /* a 'lua_Number' */ + setfltvalue(L->top, cast_num(va_arg(argp, l_uacNumber))); + top2str: /* convert the top element to a string */ + luaD_inctop(L); + luaO_tostring(L, L->top - 1); + break; + } + case 'p': { /* a pointer */ + char buff[4*sizeof(void *) + 8]; /* should be enough space for a '%p' */ + int l = l_sprintf(buff, sizeof(buff), "%p", va_arg(argp, void *)); + pushstr(L, buff, l); + break; + } + case 'U': { /* an 'int' as a UTF-8 sequence */ + char buff[UTF8BUFFSZ]; + int l = luaO_utf8esc(buff, cast(long, va_arg(argp, long))); + pushstr(L, buff + UTF8BUFFSZ - l, l); + break; + } + case '%': { + pushstr(L, "%", 1); + break; + } + default: { + luaG_runerror(L, "invalid option '%%%c' to 'lua_pushfstring'", + *(e + 1)); + } + } + n += 2; + fmt = e+2; + } + luaD_checkstack(L, 1); + pushstr(L, fmt, strlen(fmt)); + if (n > 0) luaV_concat(L, n + 1); + return svalue(L->top - 1); +} + + +const char *luaO_pushfstring (lua_State *L, const char *fmt, ...) { + const char *msg; + va_list argp; + va_start(argp, fmt); + msg = luaO_pushvfstring(L, fmt, argp); + va_end(argp); + return msg; +} + + +/* number of chars of a literal string without the ending \0 */ +#define LL(x) (sizeof(x)/sizeof(char) - 1) + +#define RETS "..." +#define PRE "[string \"" +#define POS "\"]" + +#define addstr(a,b,l) ( memcpy(a,b,(l) * sizeof(char)), a += (l) ) + +void luaO_chunkid (char *out, const char *source, size_t bufflen) { + size_t l = strlen(source); + if (*source == '=') { /* 'literal' source */ + if (l <= bufflen) /* small enough? */ + memcpy(out, source + 1, l * sizeof(char)); + else { /* truncate it */ + addstr(out, source + 1, bufflen - 1); + *out = '\0'; + } + } + else if (*source == '@') { /* file name */ + if (l <= bufflen) /* small enough? */ + memcpy(out, source + 1, l * sizeof(char)); + else { /* add '...' before rest of name */ + addstr(out, RETS, LL(RETS)); + bufflen -= LL(RETS); + memcpy(out, source + 1 + l - bufflen, bufflen * sizeof(char)); + } + } + else { /* string; format as [string "source"] */ + const char *nl = strchr(source, '\n'); /* find first new line (if any) */ + addstr(out, PRE, LL(PRE)); /* add prefix */ + bufflen -= LL(PRE RETS POS) + 1; /* save space for prefix+suffix+'\0' */ + if (l < bufflen && nl == NULL) { /* small one-line source? */ + addstr(out, source, l); /* keep it */ + } + else { + if (nl != NULL) l = nl - source; /* stop at first newline */ + if (l > bufflen) l = bufflen; + addstr(out, source, l); + addstr(out, RETS, LL(RETS)); + } + memcpy(out, POS, (LL(POS) + 1) * sizeof(char)); + } +} + diff --git a/3rd/lua-5.3.4/lobject.h b/3rd/lua-5.3.4/lobject.h new file mode 100644 index 0000000..3c04228 --- /dev/null +++ b/3rd/lua-5.3.4/lobject.h @@ -0,0 +1,549 @@ +/* +** $Id: lobject.h,v 2.117 2016/08/01 19:51:24 roberto Exp $ +** Type definitions for Lua objects +** See Copyright Notice in lua.h +*/ + + +#ifndef lobject_h +#define lobject_h + + +#include + + +#include "llimits.h" +#include "lua.h" + + +/* +** Extra tags for non-values +*/ +#define LUA_TPROTO LUA_NUMTAGS /* function prototypes */ +#define LUA_TDEADKEY (LUA_NUMTAGS+1) /* removed keys in tables */ + +/* +** number of all possible tags (including LUA_TNONE but excluding DEADKEY) +*/ +#define LUA_TOTALTAGS (LUA_TPROTO + 2) + + +/* +** tags for Tagged Values have the following use of bits: +** bits 0-3: actual tag (a LUA_T* value) +** bits 4-5: variant bits +** bit 6: whether value is collectable +*/ + + +/* +** LUA_TFUNCTION variants: +** 0 - Lua function +** 1 - light C function +** 2 - regular C function (closure) +*/ + +/* Variant tags for functions */ +#define LUA_TLCL (LUA_TFUNCTION | (0 << 4)) /* Lua closure */ +#define LUA_TLCF (LUA_TFUNCTION | (1 << 4)) /* light C function */ +#define LUA_TCCL (LUA_TFUNCTION | (2 << 4)) /* C closure */ + + +/* Variant tags for strings */ +#define LUA_TSHRSTR (LUA_TSTRING | (0 << 4)) /* short strings */ +#define LUA_TLNGSTR (LUA_TSTRING | (1 << 4)) /* long strings */ + + +/* Variant tags for numbers */ +#define LUA_TNUMFLT (LUA_TNUMBER | (0 << 4)) /* float numbers */ +#define LUA_TNUMINT (LUA_TNUMBER | (1 << 4)) /* integer numbers */ + + +/* Bit mark for collectable types */ +#define BIT_ISCOLLECTABLE (1 << 6) + +/* mark a tag as collectable */ +#define ctb(t) ((t) | BIT_ISCOLLECTABLE) + + +/* +** Common type for all collectable objects +*/ +typedef struct GCObject GCObject; + + +/* +** Common Header for all collectable objects (in macro form, to be +** included in other objects) +*/ +#define CommonHeader GCObject *next; lu_byte tt; lu_byte marked + + +/* +** Common type has only the common header +*/ +struct GCObject { + CommonHeader; +}; + + + + +/* +** Tagged Values. This is the basic representation of values in Lua, +** an actual value plus a tag with its type. +*/ + +/* +** Union of all Lua values +*/ +typedef union Value { + GCObject *gc; /* collectable objects */ + void *p; /* light userdata */ + int b; /* booleans */ + lua_CFunction f; /* light C functions */ + lua_Integer i; /* integer numbers */ + lua_Number n; /* float numbers */ +} Value; + + +#define TValuefields Value value_; int tt_ + + +typedef struct lua_TValue { + TValuefields; +} TValue; + + + +/* macro defining a nil value */ +#define NILCONSTANT {NULL}, LUA_TNIL + + +#define val_(o) ((o)->value_) + + +/* raw type tag of a TValue */ +#define rttype(o) ((o)->tt_) + +/* tag with no variants (bits 0-3) */ +#define novariant(x) ((x) & 0x0F) + +/* type tag of a TValue (bits 0-3 for tags + variant bits 4-5) */ +#define ttype(o) (rttype(o) & 0x3F) + +/* type tag of a TValue with no variants (bits 0-3) */ +#define ttnov(o) (novariant(rttype(o))) + + +/* Macros to test type */ +#define checktag(o,t) (rttype(o) == (t)) +#define checktype(o,t) (ttnov(o) == (t)) +#define ttisnumber(o) checktype((o), LUA_TNUMBER) +#define ttisfloat(o) checktag((o), LUA_TNUMFLT) +#define ttisinteger(o) checktag((o), LUA_TNUMINT) +#define ttisnil(o) checktag((o), LUA_TNIL) +#define ttisboolean(o) checktag((o), LUA_TBOOLEAN) +#define ttislightuserdata(o) checktag((o), LUA_TLIGHTUSERDATA) +#define ttisstring(o) checktype((o), LUA_TSTRING) +#define ttisshrstring(o) checktag((o), ctb(LUA_TSHRSTR)) +#define ttislngstring(o) checktag((o), ctb(LUA_TLNGSTR)) +#define ttistable(o) checktag((o), ctb(LUA_TTABLE)) +#define ttisfunction(o) checktype(o, LUA_TFUNCTION) +#define ttisclosure(o) ((rttype(o) & 0x1F) == LUA_TFUNCTION) +#define ttisCclosure(o) checktag((o), ctb(LUA_TCCL)) +#define ttisLclosure(o) checktag((o), ctb(LUA_TLCL)) +#define ttislcf(o) checktag((o), LUA_TLCF) +#define ttisfulluserdata(o) checktag((o), ctb(LUA_TUSERDATA)) +#define ttisthread(o) checktag((o), ctb(LUA_TTHREAD)) +#define ttisdeadkey(o) checktag((o), LUA_TDEADKEY) + + +/* Macros to access values */ +#define ivalue(o) check_exp(ttisinteger(o), val_(o).i) +#define fltvalue(o) check_exp(ttisfloat(o), val_(o).n) +#define nvalue(o) check_exp(ttisnumber(o), \ + (ttisinteger(o) ? cast_num(ivalue(o)) : fltvalue(o))) +#define gcvalue(o) check_exp(iscollectable(o), val_(o).gc) +#define pvalue(o) check_exp(ttislightuserdata(o), val_(o).p) +#define tsvalue(o) check_exp(ttisstring(o), gco2ts(val_(o).gc)) +#define uvalue(o) check_exp(ttisfulluserdata(o), gco2u(val_(o).gc)) +#define clvalue(o) check_exp(ttisclosure(o), gco2cl(val_(o).gc)) +#define clLvalue(o) check_exp(ttisLclosure(o), gco2lcl(val_(o).gc)) +#define clCvalue(o) check_exp(ttisCclosure(o), gco2ccl(val_(o).gc)) +#define fvalue(o) check_exp(ttislcf(o), val_(o).f) +#define hvalue(o) check_exp(ttistable(o), gco2t(val_(o).gc)) +#define bvalue(o) check_exp(ttisboolean(o), val_(o).b) +#define thvalue(o) check_exp(ttisthread(o), gco2th(val_(o).gc)) +/* a dead value may get the 'gc' field, but cannot access its contents */ +#define deadvalue(o) check_exp(ttisdeadkey(o), cast(void *, val_(o).gc)) + +#define l_isfalse(o) (ttisnil(o) || (ttisboolean(o) && bvalue(o) == 0)) + + +#define iscollectable(o) (rttype(o) & BIT_ISCOLLECTABLE) + + +/* Macros for internal tests */ +#define righttt(obj) (ttype(obj) == gcvalue(obj)->tt) + +#define checkliveness(L,obj) \ + lua_longassert(!iscollectable(obj) || \ + (righttt(obj) && (L == NULL || !isdead(G(L),gcvalue(obj))))) + + +/* Macros to set values */ +#define settt_(o,t) ((o)->tt_=(t)) + +#define setfltvalue(obj,x) \ + { TValue *io=(obj); val_(io).n=(x); settt_(io, LUA_TNUMFLT); } + +#define chgfltvalue(obj,x) \ + { TValue *io=(obj); lua_assert(ttisfloat(io)); val_(io).n=(x); } + +#define setivalue(obj,x) \ + { TValue *io=(obj); val_(io).i=(x); settt_(io, LUA_TNUMINT); } + +#define chgivalue(obj,x) \ + { TValue *io=(obj); lua_assert(ttisinteger(io)); val_(io).i=(x); } + +#define setnilvalue(obj) settt_(obj, LUA_TNIL) + +#define setfvalue(obj,x) \ + { TValue *io=(obj); val_(io).f=(x); settt_(io, LUA_TLCF); } + +#define setpvalue(obj,x) \ + { TValue *io=(obj); val_(io).p=(x); settt_(io, LUA_TLIGHTUSERDATA); } + +#define setbvalue(obj,x) \ + { TValue *io=(obj); val_(io).b=(x); settt_(io, LUA_TBOOLEAN); } + +#define setgcovalue(L,obj,x) \ + { TValue *io = (obj); GCObject *i_g=(x); \ + val_(io).gc = i_g; settt_(io, ctb(i_g->tt)); } + +#define setsvalue(L,obj,x) \ + { TValue *io = (obj); TString *x_ = (x); \ + val_(io).gc = obj2gco(x_); settt_(io, ctb(x_->tt)); \ + checkliveness(L,io); } + +#define setuvalue(L,obj,x) \ + { TValue *io = (obj); Udata *x_ = (x); \ + val_(io).gc = obj2gco(x_); settt_(io, ctb(LUA_TUSERDATA)); \ + checkliveness(L,io); } + +#define setthvalue(L,obj,x) \ + { TValue *io = (obj); lua_State *x_ = (x); \ + val_(io).gc = obj2gco(x_); settt_(io, ctb(LUA_TTHREAD)); \ + checkliveness(L,io); } + +#define setclLvalue(L,obj,x) \ + { TValue *io = (obj); LClosure *x_ = (x); \ + val_(io).gc = obj2gco(x_); settt_(io, ctb(LUA_TLCL)); \ + checkliveness(L,io); } + +#define setclCvalue(L,obj,x) \ + { TValue *io = (obj); CClosure *x_ = (x); \ + val_(io).gc = obj2gco(x_); settt_(io, ctb(LUA_TCCL)); \ + checkliveness(L,io); } + +#define sethvalue(L,obj,x) \ + { TValue *io = (obj); Table *x_ = (x); \ + val_(io).gc = obj2gco(x_); settt_(io, ctb(LUA_TTABLE)); \ + checkliveness(L,io); } + +#define setdeadvalue(obj) settt_(obj, LUA_TDEADKEY) + + + +#define setobj(L,obj1,obj2) \ + { TValue *io1=(obj1); *io1 = *(obj2); \ + (void)L; checkliveness(L,io1); } + + +/* +** different types of assignments, according to destination +*/ + +/* from stack to (same) stack */ +#define setobjs2s setobj +/* to stack (not from same stack) */ +#define setobj2s setobj +#define setsvalue2s setsvalue +#define sethvalue2s sethvalue +#define setptvalue2s setptvalue +/* from table to same table */ +#define setobjt2t setobj +/* to new object */ +#define setobj2n setobj +#define setsvalue2n setsvalue + +/* to table (define it as an expression to be used in macros) */ +#define setobj2t(L,o1,o2) ((void)L, *(o1)=*(o2), checkliveness(L,(o1))) + + + + +/* +** {====================================================== +** types and prototypes +** ======================================================= +*/ + + +typedef TValue *StkId; /* index to stack elements */ + + + + +/* +** Header for string value; string bytes follow the end of this structure +** (aligned according to 'UTString'; see next). +*/ +typedef struct TString { + CommonHeader; + lu_byte extra; /* reserved words for short strings; "has hash" for longs */ + lu_byte shrlen; /* length for short strings */ + unsigned int hash; + union { + size_t lnglen; /* length for long strings */ + struct TString *hnext; /* linked list for hash table */ + } u; +} TString; + + +/* +** Ensures that address after this type is always fully aligned. +*/ +typedef union UTString { + L_Umaxalign dummy; /* ensures maximum alignment for strings */ + TString tsv; +} UTString; + + +/* +** Get the actual string (array of bytes) from a 'TString'. +** (Access to 'extra' ensures that value is really a 'TString'.) +*/ +#define getstr(ts) \ + check_exp(sizeof((ts)->extra), cast(char *, (ts)) + sizeof(UTString)) + + +/* get the actual string (array of bytes) from a Lua value */ +#define svalue(o) getstr(tsvalue(o)) + +/* get string length from 'TString *s' */ +#define tsslen(s) ((s)->tt == LUA_TSHRSTR ? (s)->shrlen : (s)->u.lnglen) + +/* get string length from 'TValue *o' */ +#define vslen(o) tsslen(tsvalue(o)) + + +/* +** Header for userdata; memory area follows the end of this structure +** (aligned according to 'UUdata'; see next). +*/ +typedef struct Udata { + CommonHeader; + lu_byte ttuv_; /* user value's tag */ + struct Table *metatable; + size_t len; /* number of bytes */ + union Value user_; /* user value */ +} Udata; + + +/* +** Ensures that address after this type is always fully aligned. +*/ +typedef union UUdata { + L_Umaxalign dummy; /* ensures maximum alignment for 'local' udata */ + Udata uv; +} UUdata; + + +/* +** Get the address of memory block inside 'Udata'. +** (Access to 'ttuv_' ensures that value is really a 'Udata'.) +*/ +#define getudatamem(u) \ + check_exp(sizeof((u)->ttuv_), (cast(char*, (u)) + sizeof(UUdata))) + +#define setuservalue(L,u,o) \ + { const TValue *io=(o); Udata *iu = (u); \ + iu->user_ = io->value_; iu->ttuv_ = rttype(io); \ + checkliveness(L,io); } + + +#define getuservalue(L,u,o) \ + { TValue *io=(o); const Udata *iu = (u); \ + io->value_ = iu->user_; settt_(io, iu->ttuv_); \ + checkliveness(L,io); } + + +/* +** Description of an upvalue for function prototypes +*/ +typedef struct Upvaldesc { + TString *name; /* upvalue name (for debug information) */ + lu_byte instack; /* whether it is in stack (register) */ + lu_byte idx; /* index of upvalue (in stack or in outer function's list) */ +} Upvaldesc; + + +/* +** Description of a local variable for function prototypes +** (used for debug information) +*/ +typedef struct LocVar { + TString *varname; + int startpc; /* first point where variable is active */ + int endpc; /* first point where variable is dead */ +} LocVar; + + +/* +** Function Prototypes +*/ +typedef struct Proto { + CommonHeader; + lu_byte numparams; /* number of fixed parameters */ + lu_byte is_vararg; + lu_byte maxstacksize; /* number of registers needed by this function */ + int sizeupvalues; /* size of 'upvalues' */ + int sizek; /* size of 'k' */ + int sizecode; + int sizelineinfo; + int sizep; /* size of 'p' */ + int sizelocvars; + int linedefined; /* debug information */ + int lastlinedefined; /* debug information */ + TValue *k; /* constants used by the function */ + Instruction *code; /* opcodes */ + struct Proto **p; /* functions defined inside the function */ + int *lineinfo; /* map from opcodes to source lines (debug information) */ + LocVar *locvars; /* information about local variables (debug information) */ + Upvaldesc *upvalues; /* upvalue information */ + struct LClosure *cache; /* last-created closure with this prototype */ + TString *source; /* used for debug information */ + GCObject *gclist; +} Proto; + + + +/* +** Lua Upvalues +*/ +typedef struct UpVal UpVal; + + +/* +** Closures +*/ + +#define ClosureHeader \ + CommonHeader; lu_byte nupvalues; GCObject *gclist + +typedef struct CClosure { + ClosureHeader; + lua_CFunction f; + TValue upvalue[1]; /* list of upvalues */ +} CClosure; + + +typedef struct LClosure { + ClosureHeader; + struct Proto *p; + UpVal *upvals[1]; /* list of upvalues */ +} LClosure; + + +typedef union Closure { + CClosure c; + LClosure l; +} Closure; + + +#define isLfunction(o) ttisLclosure(o) + +#define getproto(o) (clLvalue(o)->p) + + +/* +** Tables +*/ + +typedef union TKey { + struct { + TValuefields; + int next; /* for chaining (offset for next node) */ + } nk; + TValue tvk; +} TKey; + + +/* copy a value into a key without messing up field 'next' */ +#define setnodekey(L,key,obj) \ + { TKey *k_=(key); const TValue *io_=(obj); \ + k_->nk.value_ = io_->value_; k_->nk.tt_ = io_->tt_; \ + (void)L; checkliveness(L,io_); } + + +typedef struct Node { + TValue i_val; + TKey i_key; +} Node; + + +typedef struct Table { + CommonHeader; + lu_byte flags; /* 1<

lsizenode)) + + +/* +** (address of) a fixed nil value +*/ +#define luaO_nilobject (&luaO_nilobject_) + + +LUAI_DDEC const TValue luaO_nilobject_; + +/* size of buffer for 'luaO_utf8esc' function */ +#define UTF8BUFFSZ 8 + +LUAI_FUNC int luaO_int2fb (unsigned int x); +LUAI_FUNC int luaO_fb2int (int x); +LUAI_FUNC int luaO_utf8esc (char *buff, unsigned long x); +LUAI_FUNC int luaO_ceillog2 (unsigned int x); +LUAI_FUNC void luaO_arith (lua_State *L, int op, const TValue *p1, + const TValue *p2, TValue *res); +LUAI_FUNC size_t luaO_str2num (const char *s, TValue *o); +LUAI_FUNC int luaO_hexavalue (int c); +LUAI_FUNC void luaO_tostring (lua_State *L, StkId obj); +LUAI_FUNC const char *luaO_pushvfstring (lua_State *L, const char *fmt, + va_list argp); +LUAI_FUNC const char *luaO_pushfstring (lua_State *L, const char *fmt, ...); +LUAI_FUNC void luaO_chunkid (char *out, const char *source, size_t len); + + +#endif + diff --git a/3rd/lua-5.3.4/lopcodes.c b/3rd/lua-5.3.4/lopcodes.c new file mode 100644 index 0000000..a1cbef8 --- /dev/null +++ b/3rd/lua-5.3.4/lopcodes.c @@ -0,0 +1,124 @@ +/* +** $Id: lopcodes.c,v 1.55 2015/01/05 13:48:33 roberto Exp $ +** Opcodes for Lua virtual machine +** See Copyright Notice in lua.h +*/ + +#define lopcodes_c +#define LUA_CORE + +#include "lprefix.h" + + +#include + +#include "lopcodes.h" + + +/* ORDER OP */ + +LUAI_DDEF const char *const luaP_opnames[NUM_OPCODES+1] = { + "MOVE", + "LOADK", + "LOADKX", + "LOADBOOL", + "LOADNIL", + "GETUPVAL", + "GETTABUP", + "GETTABLE", + "SETTABUP", + "SETUPVAL", + "SETTABLE", + "NEWTABLE", + "SELF", + "ADD", + "SUB", + "MUL", + "MOD", + "POW", + "DIV", + "IDIV", + "BAND", + "BOR", + "BXOR", + "SHL", + "SHR", + "UNM", + "BNOT", + "NOT", + "LEN", + "CONCAT", + "JMP", + "EQ", + "LT", + "LE", + "TEST", + "TESTSET", + "CALL", + "TAILCALL", + "RETURN", + "FORLOOP", + "FORPREP", + "TFORCALL", + "TFORLOOP", + "SETLIST", + "CLOSURE", + "VARARG", + "EXTRAARG", + NULL +}; + + +#define opmode(t,a,b,c,m) (((t)<<7) | ((a)<<6) | ((b)<<4) | ((c)<<2) | (m)) + +LUAI_DDEF const lu_byte luaP_opmodes[NUM_OPCODES] = { +/* T A B C mode opcode */ + opmode(0, 1, OpArgR, OpArgN, iABC) /* OP_MOVE */ + ,opmode(0, 1, OpArgK, OpArgN, iABx) /* OP_LOADK */ + ,opmode(0, 1, OpArgN, OpArgN, iABx) /* OP_LOADKX */ + ,opmode(0, 1, OpArgU, OpArgU, iABC) /* OP_LOADBOOL */ + ,opmode(0, 1, OpArgU, OpArgN, iABC) /* OP_LOADNIL */ + ,opmode(0, 1, OpArgU, OpArgN, iABC) /* OP_GETUPVAL */ + ,opmode(0, 1, OpArgU, OpArgK, iABC) /* OP_GETTABUP */ + ,opmode(0, 1, OpArgR, OpArgK, iABC) /* OP_GETTABLE */ + ,opmode(0, 0, OpArgK, OpArgK, iABC) /* OP_SETTABUP */ + ,opmode(0, 0, OpArgU, OpArgN, iABC) /* OP_SETUPVAL */ + ,opmode(0, 0, OpArgK, OpArgK, iABC) /* OP_SETTABLE */ + ,opmode(0, 1, OpArgU, OpArgU, iABC) /* OP_NEWTABLE */ + ,opmode(0, 1, OpArgR, OpArgK, iABC) /* OP_SELF */ + ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_ADD */ + ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_SUB */ + ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_MUL */ + ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_MOD */ + ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_POW */ + ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_DIV */ + ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_IDIV */ + ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_BAND */ + ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_BOR */ + ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_BXOR */ + ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_SHL */ + ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_SHR */ + ,opmode(0, 1, OpArgR, OpArgN, iABC) /* OP_UNM */ + ,opmode(0, 1, OpArgR, OpArgN, iABC) /* OP_BNOT */ + ,opmode(0, 1, OpArgR, OpArgN, iABC) /* OP_NOT */ + ,opmode(0, 1, OpArgR, OpArgN, iABC) /* OP_LEN */ + ,opmode(0, 1, OpArgR, OpArgR, iABC) /* OP_CONCAT */ + ,opmode(0, 0, OpArgR, OpArgN, iAsBx) /* OP_JMP */ + ,opmode(1, 0, OpArgK, OpArgK, iABC) /* OP_EQ */ + ,opmode(1, 0, OpArgK, OpArgK, iABC) /* OP_LT */ + ,opmode(1, 0, OpArgK, OpArgK, iABC) /* OP_LE */ + ,opmode(1, 0, OpArgN, OpArgU, iABC) /* OP_TEST */ + ,opmode(1, 1, OpArgR, OpArgU, iABC) /* OP_TESTSET */ + ,opmode(0, 1, OpArgU, OpArgU, iABC) /* OP_CALL */ + ,opmode(0, 1, OpArgU, OpArgU, iABC) /* OP_TAILCALL */ + ,opmode(0, 0, OpArgU, OpArgN, iABC) /* OP_RETURN */ + ,opmode(0, 1, OpArgR, OpArgN, iAsBx) /* OP_FORLOOP */ + ,opmode(0, 1, OpArgR, OpArgN, iAsBx) /* OP_FORPREP */ + ,opmode(0, 0, OpArgN, OpArgU, iABC) /* OP_TFORCALL */ + ,opmode(0, 1, OpArgR, OpArgN, iAsBx) /* OP_TFORLOOP */ + ,opmode(0, 0, OpArgU, OpArgU, iABC) /* OP_SETLIST */ + ,opmode(0, 1, OpArgU, OpArgN, iABx) /* OP_CLOSURE */ + ,opmode(0, 1, OpArgU, OpArgN, iABC) /* OP_VARARG */ + ,opmode(0, 0, OpArgU, OpArgU, iAx) /* OP_EXTRAARG */ +}; + diff --git a/3rd/lua-5.3.4/lopcodes.h b/3rd/lua-5.3.4/lopcodes.h new file mode 100644 index 0000000..bbc4b61 --- /dev/null +++ b/3rd/lua-5.3.4/lopcodes.h @@ -0,0 +1,297 @@ +/* +** $Id: lopcodes.h,v 1.149 2016/07/19 17:12:21 roberto Exp $ +** Opcodes for Lua virtual machine +** See Copyright Notice in lua.h +*/ + +#ifndef lopcodes_h +#define lopcodes_h + +#include "llimits.h" + + +/*=========================================================================== + We assume that instructions are unsigned numbers. + All instructions have an opcode in the first 6 bits. + Instructions can have the following fields: + 'A' : 8 bits + 'B' : 9 bits + 'C' : 9 bits + 'Ax' : 26 bits ('A', 'B', and 'C' together) + 'Bx' : 18 bits ('B' and 'C' together) + 'sBx' : signed Bx + + A signed argument is represented in excess K; that is, the number + value is the unsigned value minus K. K is exactly the maximum value + for that argument (so that -max is represented by 0, and +max is + represented by 2*max), which is half the maximum for the corresponding + unsigned argument. +===========================================================================*/ + + +enum OpMode {iABC, iABx, iAsBx, iAx}; /* basic instruction format */ + + +/* +** size and position of opcode arguments. +*/ +#define SIZE_C 9 +#define SIZE_B 9 +#define SIZE_Bx (SIZE_C + SIZE_B) +#define SIZE_A 8 +#define SIZE_Ax (SIZE_C + SIZE_B + SIZE_A) + +#define SIZE_OP 6 + +#define POS_OP 0 +#define POS_A (POS_OP + SIZE_OP) +#define POS_C (POS_A + SIZE_A) +#define POS_B (POS_C + SIZE_C) +#define POS_Bx POS_C +#define POS_Ax POS_A + + +/* +** limits for opcode arguments. +** we use (signed) int to manipulate most arguments, +** so they must fit in LUAI_BITSINT-1 bits (-1 for sign) +*/ +#if SIZE_Bx < LUAI_BITSINT-1 +#define MAXARG_Bx ((1<>1) /* 'sBx' is signed */ +#else +#define MAXARG_Bx MAX_INT +#define MAXARG_sBx MAX_INT +#endif + +#if SIZE_Ax < LUAI_BITSINT-1 +#define MAXARG_Ax ((1<>POS_OP) & MASK1(SIZE_OP,0))) +#define SET_OPCODE(i,o) ((i) = (((i)&MASK0(SIZE_OP,POS_OP)) | \ + ((cast(Instruction, o)<>pos) & MASK1(size,0))) +#define setarg(i,v,pos,size) ((i) = (((i)&MASK0(size,pos)) | \ + ((cast(Instruction, v)<> RK(C) */ +OP_UNM,/* A B R(A) := -R(B) */ +OP_BNOT,/* A B R(A) := ~R(B) */ +OP_NOT,/* A B R(A) := not R(B) */ +OP_LEN,/* A B R(A) := length of R(B) */ + +OP_CONCAT,/* A B C R(A) := R(B).. ... ..R(C) */ + +OP_JMP,/* A sBx pc+=sBx; if (A) close all upvalues >= R(A - 1) */ +OP_EQ,/* A B C if ((RK(B) == RK(C)) ~= A) then pc++ */ +OP_LT,/* A B C if ((RK(B) < RK(C)) ~= A) then pc++ */ +OP_LE,/* A B C if ((RK(B) <= RK(C)) ~= A) then pc++ */ + +OP_TEST,/* A C if not (R(A) <=> C) then pc++ */ +OP_TESTSET,/* A B C if (R(B) <=> C) then R(A) := R(B) else pc++ */ + +OP_CALL,/* A B C R(A), ... ,R(A+C-2) := R(A)(R(A+1), ... ,R(A+B-1)) */ +OP_TAILCALL,/* A B C return R(A)(R(A+1), ... ,R(A+B-1)) */ +OP_RETURN,/* A B return R(A), ... ,R(A+B-2) (see note) */ + +OP_FORLOOP,/* A sBx R(A)+=R(A+2); + if R(A) > 4) & 3)) +#define getCMode(m) (cast(enum OpArgMask, (luaP_opmodes[m] >> 2) & 3)) +#define testAMode(m) (luaP_opmodes[m] & (1 << 6)) +#define testTMode(m) (luaP_opmodes[m] & (1 << 7)) + + +LUAI_DDEC const char *const luaP_opnames[NUM_OPCODES+1]; /* opcode names */ + + +/* number of list items to accumulate before a SETLIST instruction */ +#define LFIELDS_PER_FLUSH 50 + + +#endif diff --git a/3rd/lua-5.3.4/loslib.c b/3rd/lua-5.3.4/loslib.c new file mode 100644 index 0000000..5a94eb9 --- /dev/null +++ b/3rd/lua-5.3.4/loslib.c @@ -0,0 +1,407 @@ +/* +** $Id: loslib.c,v 1.65 2016/07/18 17:58:58 roberto Exp $ +** Standard Operating System library +** See Copyright Notice in lua.h +*/ + +#define loslib_c +#define LUA_LIB + +#include "lprefix.h" + + +#include +#include +#include +#include +#include + +#include "lua.h" + +#include "lauxlib.h" +#include "lualib.h" + + +/* +** {================================================================== +** List of valid conversion specifiers for the 'strftime' function; +** options are grouped by length; group of length 2 start with '||'. +** =================================================================== +*/ +#if !defined(LUA_STRFTIMEOPTIONS) /* { */ + +/* options for ANSI C 89 (only 1-char options) */ +#define L_STRFTIMEC89 "aAbBcdHIjmMpSUwWxXyYZ%" + +/* options for ISO C 99 and POSIX */ +#define L_STRFTIMEC99 "aAbBcCdDeFgGhHIjmMnprRStTuUVwWxXyYzZ%" \ + "||" "EcECExEXEyEY" "OdOeOHOIOmOMOSOuOUOVOwOWOy" /* two-char options */ + +/* options for Windows */ +#define L_STRFTIMEWIN "aAbBcdHIjmMpSUwWxXyYzZ%" \ + "||" "#c#x#d#H#I#j#m#M#S#U#w#W#y#Y" /* two-char options */ + +#if defined(LUA_USE_WINDOWS) +#define LUA_STRFTIMEOPTIONS L_STRFTIMEWIN +#elif defined(LUA_USE_C89) +#define LUA_STRFTIMEOPTIONS L_STRFTIMEC89 +#else /* C99 specification */ +#define LUA_STRFTIMEOPTIONS L_STRFTIMEC99 +#endif + +#endif /* } */ +/* }================================================================== */ + + +/* +** {================================================================== +** Configuration for time-related stuff +** =================================================================== +*/ + +#if !defined(l_time_t) /* { */ +/* +** type to represent time_t in Lua +*/ +#define l_timet lua_Integer +#define l_pushtime(L,t) lua_pushinteger(L,(lua_Integer)(t)) + +static time_t l_checktime (lua_State *L, int arg) { + lua_Integer t = luaL_checkinteger(L, arg); + luaL_argcheck(L, (time_t)t == t, arg, "time out-of-bounds"); + return (time_t)t; +} + +#endif /* } */ + + +#if !defined(l_gmtime) /* { */ +/* +** By default, Lua uses gmtime/localtime, except when POSIX is available, +** where it uses gmtime_r/localtime_r +*/ + +#if defined(LUA_USE_POSIX) /* { */ + +#define l_gmtime(t,r) gmtime_r(t,r) +#define l_localtime(t,r) localtime_r(t,r) + +#else /* }{ */ + +/* ISO C definitions */ +#define l_gmtime(t,r) ((void)(r)->tm_sec, gmtime(t)) +#define l_localtime(t,r) ((void)(r)->tm_sec, localtime(t)) + +#endif /* } */ + +#endif /* } */ + +/* }================================================================== */ + + +/* +** {================================================================== +** Configuration for 'tmpnam': +** By default, Lua uses tmpnam except when POSIX is available, where +** it uses mkstemp. +** =================================================================== +*/ +#if !defined(lua_tmpnam) /* { */ + +#if defined(LUA_USE_POSIX) /* { */ + +#include + +#define LUA_TMPNAMBUFSIZE 32 + +#if !defined(LUA_TMPNAMTEMPLATE) +#define LUA_TMPNAMTEMPLATE "/tmp/lua_XXXXXX" +#endif + +#define lua_tmpnam(b,e) { \ + strcpy(b, LUA_TMPNAMTEMPLATE); \ + e = mkstemp(b); \ + if (e != -1) close(e); \ + e = (e == -1); } + +#else /* }{ */ + +/* ISO C definitions */ +#define LUA_TMPNAMBUFSIZE L_tmpnam +#define lua_tmpnam(b,e) { e = (tmpnam(b) == NULL); } + +#endif /* } */ + +#endif /* } */ +/* }================================================================== */ + + + + +static int os_execute (lua_State *L) { + const char *cmd = luaL_optstring(L, 1, NULL); + int stat = system(cmd); + if (cmd != NULL) + return luaL_execresult(L, stat); + else { + lua_pushboolean(L, stat); /* true if there is a shell */ + return 1; + } +} + + +static int os_remove (lua_State *L) { + const char *filename = luaL_checkstring(L, 1); + return luaL_fileresult(L, remove(filename) == 0, filename); +} + + +static int os_rename (lua_State *L) { + const char *fromname = luaL_checkstring(L, 1); + const char *toname = luaL_checkstring(L, 2); + return luaL_fileresult(L, rename(fromname, toname) == 0, NULL); +} + + +static int os_tmpname (lua_State *L) { + char buff[LUA_TMPNAMBUFSIZE]; + int err; + lua_tmpnam(buff, err); + if (err) + return luaL_error(L, "unable to generate a unique filename"); + lua_pushstring(L, buff); + return 1; +} + + +static int os_getenv (lua_State *L) { + lua_pushstring(L, getenv(luaL_checkstring(L, 1))); /* if NULL push nil */ + return 1; +} + + +static int os_clock (lua_State *L) { + lua_pushnumber(L, ((lua_Number)clock())/(lua_Number)CLOCKS_PER_SEC); + return 1; +} + + +/* +** {====================================================== +** Time/Date operations +** { year=%Y, month=%m, day=%d, hour=%H, min=%M, sec=%S, +** wday=%w+1, yday=%j, isdst=? } +** ======================================================= +*/ + +static void setfield (lua_State *L, const char *key, int value) { + lua_pushinteger(L, value); + lua_setfield(L, -2, key); +} + +static void setboolfield (lua_State *L, const char *key, int value) { + if (value < 0) /* undefined? */ + return; /* does not set field */ + lua_pushboolean(L, value); + lua_setfield(L, -2, key); +} + + +/* +** Set all fields from structure 'tm' in the table on top of the stack +*/ +static void setallfields (lua_State *L, struct tm *stm) { + setfield(L, "sec", stm->tm_sec); + setfield(L, "min", stm->tm_min); + setfield(L, "hour", stm->tm_hour); + setfield(L, "day", stm->tm_mday); + setfield(L, "month", stm->tm_mon + 1); + setfield(L, "year", stm->tm_year + 1900); + setfield(L, "wday", stm->tm_wday + 1); + setfield(L, "yday", stm->tm_yday + 1); + setboolfield(L, "isdst", stm->tm_isdst); +} + + +static int getboolfield (lua_State *L, const char *key) { + int res; + res = (lua_getfield(L, -1, key) == LUA_TNIL) ? -1 : lua_toboolean(L, -1); + lua_pop(L, 1); + return res; +} + + +/* maximum value for date fields (to avoid arithmetic overflows with 'int') */ +#if !defined(L_MAXDATEFIELD) +#define L_MAXDATEFIELD (INT_MAX / 2) +#endif + +static int getfield (lua_State *L, const char *key, int d, int delta) { + int isnum; + int t = lua_getfield(L, -1, key); /* get field and its type */ + lua_Integer res = lua_tointegerx(L, -1, &isnum); + if (!isnum) { /* field is not an integer? */ + if (t != LUA_TNIL) /* some other value? */ + return luaL_error(L, "field '%s' is not an integer", key); + else if (d < 0) /* absent field; no default? */ + return luaL_error(L, "field '%s' missing in date table", key); + res = d; + } + else { + if (!(-L_MAXDATEFIELD <= res && res <= L_MAXDATEFIELD)) + return luaL_error(L, "field '%s' is out-of-bound", key); + res -= delta; + } + lua_pop(L, 1); + return (int)res; +} + + +static const char *checkoption (lua_State *L, const char *conv, + ptrdiff_t convlen, char *buff) { + const char *option = LUA_STRFTIMEOPTIONS; + int oplen = 1; /* length of options being checked */ + for (; *option != '\0' && oplen <= convlen; option += oplen) { + if (*option == '|') /* next block? */ + oplen++; /* will check options with next length (+1) */ + else if (memcmp(conv, option, oplen) == 0) { /* match? */ + memcpy(buff, conv, oplen); /* copy valid option to buffer */ + buff[oplen] = '\0'; + return conv + oplen; /* return next item */ + } + } + luaL_argerror(L, 1, + lua_pushfstring(L, "invalid conversion specifier '%%%s'", conv)); + return conv; /* to avoid warnings */ +} + + +/* maximum size for an individual 'strftime' item */ +#define SIZETIMEFMT 250 + + +static int os_date (lua_State *L) { + size_t slen; + const char *s = luaL_optlstring(L, 1, "%c", &slen); + time_t t = luaL_opt(L, l_checktime, 2, time(NULL)); + const char *se = s + slen; /* 's' end */ + struct tm tmr, *stm; + if (*s == '!') { /* UTC? */ + stm = l_gmtime(&t, &tmr); + s++; /* skip '!' */ + } + else + stm = l_localtime(&t, &tmr); + if (stm == NULL) /* invalid date? */ + luaL_error(L, "time result cannot be represented in this installation"); + if (strcmp(s, "*t") == 0) { + lua_createtable(L, 0, 9); /* 9 = number of fields */ + setallfields(L, stm); + } + else { + char cc[4]; /* buffer for individual conversion specifiers */ + luaL_Buffer b; + cc[0] = '%'; + luaL_buffinit(L, &b); + while (s < se) { + if (*s != '%') /* not a conversion specifier? */ + luaL_addchar(&b, *s++); + else { + size_t reslen; + char *buff = luaL_prepbuffsize(&b, SIZETIMEFMT); + s++; /* skip '%' */ + s = checkoption(L, s, se - s, cc + 1); /* copy specifier to 'cc' */ + reslen = strftime(buff, SIZETIMEFMT, cc, stm); + luaL_addsize(&b, reslen); + } + } + luaL_pushresult(&b); + } + return 1; +} + + +static int os_time (lua_State *L) { + time_t t; + if (lua_isnoneornil(L, 1)) /* called without args? */ + t = time(NULL); /* get current time */ + else { + struct tm ts; + luaL_checktype(L, 1, LUA_TTABLE); + lua_settop(L, 1); /* make sure table is at the top */ + ts.tm_sec = getfield(L, "sec", 0, 0); + ts.tm_min = getfield(L, "min", 0, 0); + ts.tm_hour = getfield(L, "hour", 12, 0); + ts.tm_mday = getfield(L, "day", -1, 0); + ts.tm_mon = getfield(L, "month", -1, 1); + ts.tm_year = getfield(L, "year", -1, 1900); + ts.tm_isdst = getboolfield(L, "isdst"); + t = mktime(&ts); + setallfields(L, &ts); /* update fields with normalized values */ + } + if (t != (time_t)(l_timet)t || t == (time_t)(-1)) + luaL_error(L, "time result cannot be represented in this installation"); + l_pushtime(L, t); + return 1; +} + + +static int os_difftime (lua_State *L) { + time_t t1 = l_checktime(L, 1); + time_t t2 = l_checktime(L, 2); + lua_pushnumber(L, (lua_Number)difftime(t1, t2)); + return 1; +} + +/* }====================================================== */ + + +static int os_setlocale (lua_State *L) { + static const int cat[] = {LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, + LC_NUMERIC, LC_TIME}; + static const char *const catnames[] = {"all", "collate", "ctype", "monetary", + "numeric", "time", NULL}; + const char *l = luaL_optstring(L, 1, NULL); + int op = luaL_checkoption(L, 2, "all", catnames); + lua_pushstring(L, setlocale(cat[op], l)); + return 1; +} + + +static int os_exit (lua_State *L) { + int status; + if (lua_isboolean(L, 1)) + status = (lua_toboolean(L, 1) ? EXIT_SUCCESS : EXIT_FAILURE); + else + status = (int)luaL_optinteger(L, 1, EXIT_SUCCESS); + if (lua_toboolean(L, 2)) + lua_close(L); + if (L) exit(status); /* 'if' to avoid warnings for unreachable 'return' */ + return 0; +} + + +static const luaL_Reg syslib[] = { + {"clock", os_clock}, + {"date", os_date}, + {"difftime", os_difftime}, + {"execute", os_execute}, + {"exit", os_exit}, + {"getenv", os_getenv}, + {"remove", os_remove}, + {"rename", os_rename}, + {"setlocale", os_setlocale}, + {"time", os_time}, + {"tmpname", os_tmpname}, + {NULL, NULL} +}; + +/* }====================================================== */ + + + +LUAMOD_API int luaopen_os (lua_State *L) { + luaL_newlib(L, syslib); + return 1; +} + diff --git a/3rd/lua-5.3.4/lparser.c b/3rd/lua-5.3.4/lparser.c new file mode 100644 index 0000000..cd4512d --- /dev/null +++ b/3rd/lua-5.3.4/lparser.c @@ -0,0 +1,1650 @@ +/* +** $Id: lparser.c,v 2.155 2016/08/01 19:51:24 roberto Exp $ +** Lua Parser +** See Copyright Notice in lua.h +*/ + +#define lparser_c +#define LUA_CORE + +#include "lprefix.h" + + +#include + +#include "lua.h" + +#include "lcode.h" +#include "ldebug.h" +#include "ldo.h" +#include "lfunc.h" +#include "llex.h" +#include "lmem.h" +#include "lobject.h" +#include "lopcodes.h" +#include "lparser.h" +#include "lstate.h" +#include "lstring.h" +#include "ltable.h" + + + +/* maximum number of local variables per function (must be smaller + than 250, due to the bytecode format) */ +#define MAXVARS 200 + + +#define hasmultret(k) ((k) == VCALL || (k) == VVARARG) + + +/* because all strings are unified by the scanner, the parser + can use pointer equality for string equality */ +#define eqstr(a,b) ((a) == (b)) + + +/* +** nodes for block list (list of active blocks) +*/ +typedef struct BlockCnt { + struct BlockCnt *previous; /* chain */ + int firstlabel; /* index of first label in this block */ + int firstgoto; /* index of first pending goto in this block */ + lu_byte nactvar; /* # active locals outside the block */ + lu_byte upval; /* true if some variable in the block is an upvalue */ + lu_byte isloop; /* true if 'block' is a loop */ +} BlockCnt; + + + +/* +** prototypes for recursive non-terminal functions +*/ +static void statement (LexState *ls); +static void expr (LexState *ls, expdesc *v); + + +/* semantic error */ +static l_noret semerror (LexState *ls, const char *msg) { + ls->t.token = 0; /* remove "near " from final message */ + luaX_syntaxerror(ls, msg); +} + + +static l_noret error_expected (LexState *ls, int token) { + luaX_syntaxerror(ls, + luaO_pushfstring(ls->L, "%s expected", luaX_token2str(ls, token))); +} + + +static l_noret errorlimit (FuncState *fs, int limit, const char *what) { + lua_State *L = fs->ls->L; + const char *msg; + int line = fs->f->linedefined; + const char *where = (line == 0) + ? "main function" + : luaO_pushfstring(L, "function at line %d", line); + msg = luaO_pushfstring(L, "too many %s (limit is %d) in %s", + what, limit, where); + luaX_syntaxerror(fs->ls, msg); +} + + +static void checklimit (FuncState *fs, int v, int l, const char *what) { + if (v > l) errorlimit(fs, l, what); +} + + +static int testnext (LexState *ls, int c) { + if (ls->t.token == c) { + luaX_next(ls); + return 1; + } + else return 0; +} + + +static void check (LexState *ls, int c) { + if (ls->t.token != c) + error_expected(ls, c); +} + + +static void checknext (LexState *ls, int c) { + check(ls, c); + luaX_next(ls); +} + + +#define check_condition(ls,c,msg) { if (!(c)) luaX_syntaxerror(ls, msg); } + + + +static void check_match (LexState *ls, int what, int who, int where) { + if (!testnext(ls, what)) { + if (where == ls->linenumber) + error_expected(ls, what); + else { + luaX_syntaxerror(ls, luaO_pushfstring(ls->L, + "%s expected (to close %s at line %d)", + luaX_token2str(ls, what), luaX_token2str(ls, who), where)); + } + } +} + + +static TString *str_checkname (LexState *ls) { + TString *ts; + check(ls, TK_NAME); + ts = ls->t.seminfo.ts; + luaX_next(ls); + return ts; +} + + +static void init_exp (expdesc *e, expkind k, int i) { + e->f = e->t = NO_JUMP; + e->k = k; + e->u.info = i; +} + + +static void codestring (LexState *ls, expdesc *e, TString *s) { + init_exp(e, VK, luaK_stringK(ls->fs, s)); +} + + +static void checkname (LexState *ls, expdesc *e) { + codestring(ls, e, str_checkname(ls)); +} + + +static int registerlocalvar (LexState *ls, TString *varname) { + FuncState *fs = ls->fs; + Proto *f = fs->f; + int oldsize = f->sizelocvars; + luaM_growvector(ls->L, f->locvars, fs->nlocvars, f->sizelocvars, + LocVar, SHRT_MAX, "local variables"); + while (oldsize < f->sizelocvars) + f->locvars[oldsize++].varname = NULL; + f->locvars[fs->nlocvars].varname = varname; + luaC_objbarrier(ls->L, f, varname); + return fs->nlocvars++; +} + + +static void new_localvar (LexState *ls, TString *name) { + FuncState *fs = ls->fs; + Dyndata *dyd = ls->dyd; + int reg = registerlocalvar(ls, name); + checklimit(fs, dyd->actvar.n + 1 - fs->firstlocal, + MAXVARS, "local variables"); + luaM_growvector(ls->L, dyd->actvar.arr, dyd->actvar.n + 1, + dyd->actvar.size, Vardesc, MAX_INT, "local variables"); + dyd->actvar.arr[dyd->actvar.n++].idx = cast(short, reg); +} + + +static void new_localvarliteral_ (LexState *ls, const char *name, size_t sz) { + new_localvar(ls, luaX_newstring(ls, name, sz)); +} + +#define new_localvarliteral(ls,v) \ + new_localvarliteral_(ls, "" v, (sizeof(v)/sizeof(char))-1) + + +static LocVar *getlocvar (FuncState *fs, int i) { + int idx = fs->ls->dyd->actvar.arr[fs->firstlocal + i].idx; + lua_assert(idx < fs->nlocvars); + return &fs->f->locvars[idx]; +} + + +static void adjustlocalvars (LexState *ls, int nvars) { + FuncState *fs = ls->fs; + fs->nactvar = cast_byte(fs->nactvar + nvars); + for (; nvars; nvars--) { + getlocvar(fs, fs->nactvar - nvars)->startpc = fs->pc; + } +} + + +static void removevars (FuncState *fs, int tolevel) { + fs->ls->dyd->actvar.n -= (fs->nactvar - tolevel); + while (fs->nactvar > tolevel) + getlocvar(fs, --fs->nactvar)->endpc = fs->pc; +} + + +static int searchupvalue (FuncState *fs, TString *name) { + int i; + Upvaldesc *up = fs->f->upvalues; + for (i = 0; i < fs->nups; i++) { + if (eqstr(up[i].name, name)) return i; + } + return -1; /* not found */ +} + + +static int newupvalue (FuncState *fs, TString *name, expdesc *v) { + Proto *f = fs->f; + int oldsize = f->sizeupvalues; + checklimit(fs, fs->nups + 1, MAXUPVAL, "upvalues"); + luaM_growvector(fs->ls->L, f->upvalues, fs->nups, f->sizeupvalues, + Upvaldesc, MAXUPVAL, "upvalues"); + while (oldsize < f->sizeupvalues) + f->upvalues[oldsize++].name = NULL; + f->upvalues[fs->nups].instack = (v->k == VLOCAL); + f->upvalues[fs->nups].idx = cast_byte(v->u.info); + f->upvalues[fs->nups].name = name; + luaC_objbarrier(fs->ls->L, f, name); + return fs->nups++; +} + + +static int searchvar (FuncState *fs, TString *n) { + int i; + for (i = cast_int(fs->nactvar) - 1; i >= 0; i--) { + if (eqstr(n, getlocvar(fs, i)->varname)) + return i; + } + return -1; /* not found */ +} + + +/* + Mark block where variable at given level was defined + (to emit close instructions later). +*/ +static void markupval (FuncState *fs, int level) { + BlockCnt *bl = fs->bl; + while (bl->nactvar > level) + bl = bl->previous; + bl->upval = 1; +} + + +/* + Find variable with given name 'n'. If it is an upvalue, add this + upvalue into all intermediate functions. +*/ +static void singlevaraux (FuncState *fs, TString *n, expdesc *var, int base) { + if (fs == NULL) /* no more levels? */ + init_exp(var, VVOID, 0); /* default is global */ + else { + int v = searchvar(fs, n); /* look up locals at current level */ + if (v >= 0) { /* found? */ + init_exp(var, VLOCAL, v); /* variable is local */ + if (!base) + markupval(fs, v); /* local will be used as an upval */ + } + else { /* not found as local at current level; try upvalues */ + int idx = searchupvalue(fs, n); /* try existing upvalues */ + if (idx < 0) { /* not found? */ + singlevaraux(fs->prev, n, var, 0); /* try upper levels */ + if (var->k == VVOID) /* not found? */ + return; /* it is a global */ + /* else was LOCAL or UPVAL */ + idx = newupvalue(fs, n, var); /* will be a new upvalue */ + } + init_exp(var, VUPVAL, idx); /* new or old upvalue */ + } + } +} + + +static void singlevar (LexState *ls, expdesc *var) { + TString *varname = str_checkname(ls); + FuncState *fs = ls->fs; + singlevaraux(fs, varname, var, 1); + if (var->k == VVOID) { /* global name? */ + expdesc key; + singlevaraux(fs, ls->envn, var, 1); /* get environment variable */ + lua_assert(var->k != VVOID); /* this one must exist */ + codestring(ls, &key, varname); /* key is variable name */ + luaK_indexed(fs, var, &key); /* env[varname] */ + } +} + + +static void adjust_assign (LexState *ls, int nvars, int nexps, expdesc *e) { + FuncState *fs = ls->fs; + int extra = nvars - nexps; + if (hasmultret(e->k)) { + extra++; /* includes call itself */ + if (extra < 0) extra = 0; + luaK_setreturns(fs, e, extra); /* last exp. provides the difference */ + if (extra > 1) luaK_reserveregs(fs, extra-1); + } + else { + if (e->k != VVOID) luaK_exp2nextreg(fs, e); /* close last expression */ + if (extra > 0) { + int reg = fs->freereg; + luaK_reserveregs(fs, extra); + luaK_nil(fs, reg, extra); + } + } + if (nexps > nvars) + ls->fs->freereg -= nexps - nvars; /* remove extra values */ +} + + +static void enterlevel (LexState *ls) { + lua_State *L = ls->L; + ++L->nCcalls; + checklimit(ls->fs, L->nCcalls, LUAI_MAXCCALLS, "C levels"); +} + + +#define leavelevel(ls) ((ls)->L->nCcalls--) + + +static void closegoto (LexState *ls, int g, Labeldesc *label) { + int i; + FuncState *fs = ls->fs; + Labellist *gl = &ls->dyd->gt; + Labeldesc *gt = &gl->arr[g]; + lua_assert(eqstr(gt->name, label->name)); + if (gt->nactvar < label->nactvar) { + TString *vname = getlocvar(fs, gt->nactvar)->varname; + const char *msg = luaO_pushfstring(ls->L, + " at line %d jumps into the scope of local '%s'", + getstr(gt->name), gt->line, getstr(vname)); + semerror(ls, msg); + } + luaK_patchlist(fs, gt->pc, label->pc); + /* remove goto from pending list */ + for (i = g; i < gl->n - 1; i++) + gl->arr[i] = gl->arr[i + 1]; + gl->n--; +} + + +/* +** try to close a goto with existing labels; this solves backward jumps +*/ +static int findlabel (LexState *ls, int g) { + int i; + BlockCnt *bl = ls->fs->bl; + Dyndata *dyd = ls->dyd; + Labeldesc *gt = &dyd->gt.arr[g]; + /* check labels in current block for a match */ + for (i = bl->firstlabel; i < dyd->label.n; i++) { + Labeldesc *lb = &dyd->label.arr[i]; + if (eqstr(lb->name, gt->name)) { /* correct label? */ + if (gt->nactvar > lb->nactvar && + (bl->upval || dyd->label.n > bl->firstlabel)) + luaK_patchclose(ls->fs, gt->pc, lb->nactvar); + closegoto(ls, g, lb); /* close it */ + return 1; + } + } + return 0; /* label not found; cannot close goto */ +} + + +static int newlabelentry (LexState *ls, Labellist *l, TString *name, + int line, int pc) { + int n = l->n; + luaM_growvector(ls->L, l->arr, n, l->size, + Labeldesc, SHRT_MAX, "labels/gotos"); + l->arr[n].name = name; + l->arr[n].line = line; + l->arr[n].nactvar = ls->fs->nactvar; + l->arr[n].pc = pc; + l->n = n + 1; + return n; +} + + +/* +** check whether new label 'lb' matches any pending gotos in current +** block; solves forward jumps +*/ +static void findgotos (LexState *ls, Labeldesc *lb) { + Labellist *gl = &ls->dyd->gt; + int i = ls->fs->bl->firstgoto; + while (i < gl->n) { + if (eqstr(gl->arr[i].name, lb->name)) + closegoto(ls, i, lb); + else + i++; + } +} + + +/* +** export pending gotos to outer level, to check them against +** outer labels; if the block being exited has upvalues, and +** the goto exits the scope of any variable (which can be the +** upvalue), close those variables being exited. +*/ +static void movegotosout (FuncState *fs, BlockCnt *bl) { + int i = bl->firstgoto; + Labellist *gl = &fs->ls->dyd->gt; + /* correct pending gotos to current block and try to close it + with visible labels */ + while (i < gl->n) { + Labeldesc *gt = &gl->arr[i]; + if (gt->nactvar > bl->nactvar) { + if (bl->upval) + luaK_patchclose(fs, gt->pc, bl->nactvar); + gt->nactvar = bl->nactvar; + } + if (!findlabel(fs->ls, i)) + i++; /* move to next one */ + } +} + + +static void enterblock (FuncState *fs, BlockCnt *bl, lu_byte isloop) { + bl->isloop = isloop; + bl->nactvar = fs->nactvar; + bl->firstlabel = fs->ls->dyd->label.n; + bl->firstgoto = fs->ls->dyd->gt.n; + bl->upval = 0; + bl->previous = fs->bl; + fs->bl = bl; + lua_assert(fs->freereg == fs->nactvar); +} + + +/* +** create a label named 'break' to resolve break statements +*/ +static void breaklabel (LexState *ls) { + TString *n = luaS_new(ls->L, "break"); + int l = newlabelentry(ls, &ls->dyd->label, n, 0, ls->fs->pc); + findgotos(ls, &ls->dyd->label.arr[l]); +} + +/* +** generates an error for an undefined 'goto'; choose appropriate +** message when label name is a reserved word (which can only be 'break') +*/ +static l_noret undefgoto (LexState *ls, Labeldesc *gt) { + const char *msg = isreserved(gt->name) + ? "<%s> at line %d not inside a loop" + : "no visible label '%s' for at line %d"; + msg = luaO_pushfstring(ls->L, msg, getstr(gt->name), gt->line); + semerror(ls, msg); +} + + +static void leaveblock (FuncState *fs) { + BlockCnt *bl = fs->bl; + LexState *ls = fs->ls; + if (bl->previous && bl->upval) { + /* create a 'jump to here' to close upvalues */ + int j = luaK_jump(fs); + luaK_patchclose(fs, j, bl->nactvar); + luaK_patchtohere(fs, j); + } + if (bl->isloop) + breaklabel(ls); /* close pending breaks */ + fs->bl = bl->previous; + removevars(fs, bl->nactvar); + lua_assert(bl->nactvar == fs->nactvar); + fs->freereg = fs->nactvar; /* free registers */ + ls->dyd->label.n = bl->firstlabel; /* remove local labels */ + if (bl->previous) /* inner block? */ + movegotosout(fs, bl); /* update pending gotos to outer block */ + else if (bl->firstgoto < ls->dyd->gt.n) /* pending gotos in outer block? */ + undefgoto(ls, &ls->dyd->gt.arr[bl->firstgoto]); /* error */ +} + + +/* +** adds a new prototype into list of prototypes +*/ +static Proto *addprototype (LexState *ls) { + Proto *clp; + lua_State *L = ls->L; + FuncState *fs = ls->fs; + Proto *f = fs->f; /* prototype of current function */ + if (fs->np >= f->sizep) { + int oldsize = f->sizep; + luaM_growvector(L, f->p, fs->np, f->sizep, Proto *, MAXARG_Bx, "functions"); + while (oldsize < f->sizep) + f->p[oldsize++] = NULL; + } + f->p[fs->np++] = clp = luaF_newproto(L); + luaC_objbarrier(L, f, clp); + return clp; +} + + +/* +** codes instruction to create new closure in parent function. +** The OP_CLOSURE instruction must use the last available register, +** so that, if it invokes the GC, the GC knows which registers +** are in use at that time. +*/ +static void codeclosure (LexState *ls, expdesc *v) { + FuncState *fs = ls->fs->prev; + init_exp(v, VRELOCABLE, luaK_codeABx(fs, OP_CLOSURE, 0, fs->np - 1)); + luaK_exp2nextreg(fs, v); /* fix it at the last register */ +} + + +static void open_func (LexState *ls, FuncState *fs, BlockCnt *bl) { + Proto *f; + fs->prev = ls->fs; /* linked list of funcstates */ + fs->ls = ls; + ls->fs = fs; + fs->pc = 0; + fs->lasttarget = 0; + fs->jpc = NO_JUMP; + fs->freereg = 0; + fs->nk = 0; + fs->np = 0; + fs->nups = 0; + fs->nlocvars = 0; + fs->nactvar = 0; + fs->firstlocal = ls->dyd->actvar.n; + fs->bl = NULL; + f = fs->f; + f->source = ls->source; + f->maxstacksize = 2; /* registers 0/1 are always valid */ + enterblock(fs, bl, 0); +} + + +static void close_func (LexState *ls) { + lua_State *L = ls->L; + FuncState *fs = ls->fs; + Proto *f = fs->f; + luaK_ret(fs, 0, 0); /* final return */ + leaveblock(fs); + luaM_reallocvector(L, f->code, f->sizecode, fs->pc, Instruction); + f->sizecode = fs->pc; + luaM_reallocvector(L, f->lineinfo, f->sizelineinfo, fs->pc, int); + f->sizelineinfo = fs->pc; + luaM_reallocvector(L, f->k, f->sizek, fs->nk, TValue); + f->sizek = fs->nk; + luaM_reallocvector(L, f->p, f->sizep, fs->np, Proto *); + f->sizep = fs->np; + luaM_reallocvector(L, f->locvars, f->sizelocvars, fs->nlocvars, LocVar); + f->sizelocvars = fs->nlocvars; + luaM_reallocvector(L, f->upvalues, f->sizeupvalues, fs->nups, Upvaldesc); + f->sizeupvalues = fs->nups; + lua_assert(fs->bl == NULL); + ls->fs = fs->prev; + luaC_checkGC(L); +} + + + +/*============================================================*/ +/* GRAMMAR RULES */ +/*============================================================*/ + + +/* +** check whether current token is in the follow set of a block. +** 'until' closes syntactical blocks, but do not close scope, +** so it is handled in separate. +*/ +static int block_follow (LexState *ls, int withuntil) { + switch (ls->t.token) { + case TK_ELSE: case TK_ELSEIF: + case TK_END: case TK_EOS: + return 1; + case TK_UNTIL: return withuntil; + default: return 0; + } +} + + +static void statlist (LexState *ls) { + /* statlist -> { stat [';'] } */ + while (!block_follow(ls, 1)) { + if (ls->t.token == TK_RETURN) { + statement(ls); + return; /* 'return' must be last statement */ + } + statement(ls); + } +} + + +static void fieldsel (LexState *ls, expdesc *v) { + /* fieldsel -> ['.' | ':'] NAME */ + FuncState *fs = ls->fs; + expdesc key; + luaK_exp2anyregup(fs, v); + luaX_next(ls); /* skip the dot or colon */ + checkname(ls, &key); + luaK_indexed(fs, v, &key); +} + + +static void yindex (LexState *ls, expdesc *v) { + /* index -> '[' expr ']' */ + luaX_next(ls); /* skip the '[' */ + expr(ls, v); + luaK_exp2val(ls->fs, v); + checknext(ls, ']'); +} + + +/* +** {====================================================================== +** Rules for Constructors +** ======================================================================= +*/ + + +struct ConsControl { + expdesc v; /* last list item read */ + expdesc *t; /* table descriptor */ + int nh; /* total number of 'record' elements */ + int na; /* total number of array elements */ + int tostore; /* number of array elements pending to be stored */ +}; + + +static void recfield (LexState *ls, struct ConsControl *cc) { + /* recfield -> (NAME | '['exp1']') = exp1 */ + FuncState *fs = ls->fs; + int reg = ls->fs->freereg; + expdesc key, val; + int rkkey; + if (ls->t.token == TK_NAME) { + checklimit(fs, cc->nh, MAX_INT, "items in a constructor"); + checkname(ls, &key); + } + else /* ls->t.token == '[' */ + yindex(ls, &key); + cc->nh++; + checknext(ls, '='); + rkkey = luaK_exp2RK(fs, &key); + expr(ls, &val); + luaK_codeABC(fs, OP_SETTABLE, cc->t->u.info, rkkey, luaK_exp2RK(fs, &val)); + fs->freereg = reg; /* free registers */ +} + + +static void closelistfield (FuncState *fs, struct ConsControl *cc) { + if (cc->v.k == VVOID) return; /* there is no list item */ + luaK_exp2nextreg(fs, &cc->v); + cc->v.k = VVOID; + if (cc->tostore == LFIELDS_PER_FLUSH) { + luaK_setlist(fs, cc->t->u.info, cc->na, cc->tostore); /* flush */ + cc->tostore = 0; /* no more items pending */ + } +} + + +static void lastlistfield (FuncState *fs, struct ConsControl *cc) { + if (cc->tostore == 0) return; + if (hasmultret(cc->v.k)) { + luaK_setmultret(fs, &cc->v); + luaK_setlist(fs, cc->t->u.info, cc->na, LUA_MULTRET); + cc->na--; /* do not count last expression (unknown number of elements) */ + } + else { + if (cc->v.k != VVOID) + luaK_exp2nextreg(fs, &cc->v); + luaK_setlist(fs, cc->t->u.info, cc->na, cc->tostore); + } +} + + +static void listfield (LexState *ls, struct ConsControl *cc) { + /* listfield -> exp */ + expr(ls, &cc->v); + checklimit(ls->fs, cc->na, MAX_INT, "items in a constructor"); + cc->na++; + cc->tostore++; +} + + +static void field (LexState *ls, struct ConsControl *cc) { + /* field -> listfield | recfield */ + switch(ls->t.token) { + case TK_NAME: { /* may be 'listfield' or 'recfield' */ + if (luaX_lookahead(ls) != '=') /* expression? */ + listfield(ls, cc); + else + recfield(ls, cc); + break; + } + case '[': { + recfield(ls, cc); + break; + } + default: { + listfield(ls, cc); + break; + } + } +} + + +static void constructor (LexState *ls, expdesc *t) { + /* constructor -> '{' [ field { sep field } [sep] ] '}' + sep -> ',' | ';' */ + FuncState *fs = ls->fs; + int line = ls->linenumber; + int pc = luaK_codeABC(fs, OP_NEWTABLE, 0, 0, 0); + struct ConsControl cc; + cc.na = cc.nh = cc.tostore = 0; + cc.t = t; + init_exp(t, VRELOCABLE, pc); + init_exp(&cc.v, VVOID, 0); /* no value (yet) */ + luaK_exp2nextreg(ls->fs, t); /* fix it at stack top */ + checknext(ls, '{'); + do { + lua_assert(cc.v.k == VVOID || cc.tostore > 0); + if (ls->t.token == '}') break; + closelistfield(fs, &cc); + field(ls, &cc); + } while (testnext(ls, ',') || testnext(ls, ';')); + check_match(ls, '}', '{', line); + lastlistfield(fs, &cc); + SETARG_B(fs->f->code[pc], luaO_int2fb(cc.na)); /* set initial array size */ + SETARG_C(fs->f->code[pc], luaO_int2fb(cc.nh)); /* set initial table size */ +} + +/* }====================================================================== */ + + + +static void parlist (LexState *ls) { + /* parlist -> [ param { ',' param } ] */ + FuncState *fs = ls->fs; + Proto *f = fs->f; + int nparams = 0; + f->is_vararg = 0; + if (ls->t.token != ')') { /* is 'parlist' not empty? */ + do { + switch (ls->t.token) { + case TK_NAME: { /* param -> NAME */ + new_localvar(ls, str_checkname(ls)); + nparams++; + break; + } + case TK_DOTS: { /* param -> '...' */ + luaX_next(ls); + f->is_vararg = 1; /* declared vararg */ + break; + } + default: luaX_syntaxerror(ls, " or '...' expected"); + } + } while (!f->is_vararg && testnext(ls, ',')); + } + adjustlocalvars(ls, nparams); + f->numparams = cast_byte(fs->nactvar); + luaK_reserveregs(fs, fs->nactvar); /* reserve register for parameters */ +} + + +static void body (LexState *ls, expdesc *e, int ismethod, int line) { + /* body -> '(' parlist ')' block END */ + FuncState new_fs; + BlockCnt bl; + new_fs.f = addprototype(ls); + new_fs.f->linedefined = line; + open_func(ls, &new_fs, &bl); + checknext(ls, '('); + if (ismethod) { + new_localvarliteral(ls, "self"); /* create 'self' parameter */ + adjustlocalvars(ls, 1); + } + parlist(ls); + checknext(ls, ')'); + statlist(ls); + new_fs.f->lastlinedefined = ls->linenumber; + check_match(ls, TK_END, TK_FUNCTION, line); + codeclosure(ls, e); + close_func(ls); +} + + +static int explist (LexState *ls, expdesc *v) { + /* explist -> expr { ',' expr } */ + int n = 1; /* at least one expression */ + expr(ls, v); + while (testnext(ls, ',')) { + luaK_exp2nextreg(ls->fs, v); + expr(ls, v); + n++; + } + return n; +} + + +static void funcargs (LexState *ls, expdesc *f, int line) { + FuncState *fs = ls->fs; + expdesc args; + int base, nparams; + switch (ls->t.token) { + case '(': { /* funcargs -> '(' [ explist ] ')' */ + luaX_next(ls); + if (ls->t.token == ')') /* arg list is empty? */ + args.k = VVOID; + else { + explist(ls, &args); + luaK_setmultret(fs, &args); + } + check_match(ls, ')', '(', line); + break; + } + case '{': { /* funcargs -> constructor */ + constructor(ls, &args); + break; + } + case TK_STRING: { /* funcargs -> STRING */ + codestring(ls, &args, ls->t.seminfo.ts); + luaX_next(ls); /* must use 'seminfo' before 'next' */ + break; + } + default: { + luaX_syntaxerror(ls, "function arguments expected"); + } + } + lua_assert(f->k == VNONRELOC); + base = f->u.info; /* base register for call */ + if (hasmultret(args.k)) + nparams = LUA_MULTRET; /* open call */ + else { + if (args.k != VVOID) + luaK_exp2nextreg(fs, &args); /* close last argument */ + nparams = fs->freereg - (base+1); + } + init_exp(f, VCALL, luaK_codeABC(fs, OP_CALL, base, nparams+1, 2)); + luaK_fixline(fs, line); + fs->freereg = base+1; /* call remove function and arguments and leaves + (unless changed) one result */ +} + + + + +/* +** {====================================================================== +** Expression parsing +** ======================================================================= +*/ + + +static void primaryexp (LexState *ls, expdesc *v) { + /* primaryexp -> NAME | '(' expr ')' */ + switch (ls->t.token) { + case '(': { + int line = ls->linenumber; + luaX_next(ls); + expr(ls, v); + check_match(ls, ')', '(', line); + luaK_dischargevars(ls->fs, v); + return; + } + case TK_NAME: { + singlevar(ls, v); + return; + } + default: { + luaX_syntaxerror(ls, "unexpected symbol"); + } + } +} + + +static void suffixedexp (LexState *ls, expdesc *v) { + /* suffixedexp -> + primaryexp { '.' NAME | '[' exp ']' | ':' NAME funcargs | funcargs } */ + FuncState *fs = ls->fs; + int line = ls->linenumber; + primaryexp(ls, v); + for (;;) { + switch (ls->t.token) { + case '.': { /* fieldsel */ + fieldsel(ls, v); + break; + } + case '[': { /* '[' exp1 ']' */ + expdesc key; + luaK_exp2anyregup(fs, v); + yindex(ls, &key); + luaK_indexed(fs, v, &key); + break; + } + case ':': { /* ':' NAME funcargs */ + expdesc key; + luaX_next(ls); + checkname(ls, &key); + luaK_self(fs, v, &key); + funcargs(ls, v, line); + break; + } + case '(': case TK_STRING: case '{': { /* funcargs */ + luaK_exp2nextreg(fs, v); + funcargs(ls, v, line); + break; + } + default: return; + } + } +} + + +static void simpleexp (LexState *ls, expdesc *v) { + /* simpleexp -> FLT | INT | STRING | NIL | TRUE | FALSE | ... | + constructor | FUNCTION body | suffixedexp */ + switch (ls->t.token) { + case TK_FLT: { + init_exp(v, VKFLT, 0); + v->u.nval = ls->t.seminfo.r; + break; + } + case TK_INT: { + init_exp(v, VKINT, 0); + v->u.ival = ls->t.seminfo.i; + break; + } + case TK_STRING: { + codestring(ls, v, ls->t.seminfo.ts); + break; + } + case TK_NIL: { + init_exp(v, VNIL, 0); + break; + } + case TK_TRUE: { + init_exp(v, VTRUE, 0); + break; + } + case TK_FALSE: { + init_exp(v, VFALSE, 0); + break; + } + case TK_DOTS: { /* vararg */ + FuncState *fs = ls->fs; + check_condition(ls, fs->f->is_vararg, + "cannot use '...' outside a vararg function"); + init_exp(v, VVARARG, luaK_codeABC(fs, OP_VARARG, 0, 1, 0)); + break; + } + case '{': { /* constructor */ + constructor(ls, v); + return; + } + case TK_FUNCTION: { + luaX_next(ls); + body(ls, v, 0, ls->linenumber); + return; + } + default: { + suffixedexp(ls, v); + return; + } + } + luaX_next(ls); +} + + +static UnOpr getunopr (int op) { + switch (op) { + case TK_NOT: return OPR_NOT; + case '-': return OPR_MINUS; + case '~': return OPR_BNOT; + case '#': return OPR_LEN; + default: return OPR_NOUNOPR; + } +} + + +static BinOpr getbinopr (int op) { + switch (op) { + case '+': return OPR_ADD; + case '-': return OPR_SUB; + case '*': return OPR_MUL; + case '%': return OPR_MOD; + case '^': return OPR_POW; + case '/': return OPR_DIV; + case TK_IDIV: return OPR_IDIV; + case '&': return OPR_BAND; + case '|': return OPR_BOR; + case '~': return OPR_BXOR; + case TK_SHL: return OPR_SHL; + case TK_SHR: return OPR_SHR; + case TK_CONCAT: return OPR_CONCAT; + case TK_NE: return OPR_NE; + case TK_EQ: return OPR_EQ; + case '<': return OPR_LT; + case TK_LE: return OPR_LE; + case '>': return OPR_GT; + case TK_GE: return OPR_GE; + case TK_AND: return OPR_AND; + case TK_OR: return OPR_OR; + default: return OPR_NOBINOPR; + } +} + + +static const struct { + lu_byte left; /* left priority for each binary operator */ + lu_byte right; /* right priority */ +} priority[] = { /* ORDER OPR */ + {10, 10}, {10, 10}, /* '+' '-' */ + {11, 11}, {11, 11}, /* '*' '%' */ + {14, 13}, /* '^' (right associative) */ + {11, 11}, {11, 11}, /* '/' '//' */ + {6, 6}, {4, 4}, {5, 5}, /* '&' '|' '~' */ + {7, 7}, {7, 7}, /* '<<' '>>' */ + {9, 8}, /* '..' (right associative) */ + {3, 3}, {3, 3}, {3, 3}, /* ==, <, <= */ + {3, 3}, {3, 3}, {3, 3}, /* ~=, >, >= */ + {2, 2}, {1, 1} /* and, or */ +}; + +#define UNARY_PRIORITY 12 /* priority for unary operators */ + + +/* +** subexpr -> (simpleexp | unop subexpr) { binop subexpr } +** where 'binop' is any binary operator with a priority higher than 'limit' +*/ +static BinOpr subexpr (LexState *ls, expdesc *v, int limit) { + BinOpr op; + UnOpr uop; + enterlevel(ls); + uop = getunopr(ls->t.token); + if (uop != OPR_NOUNOPR) { + int line = ls->linenumber; + luaX_next(ls); + subexpr(ls, v, UNARY_PRIORITY); + luaK_prefix(ls->fs, uop, v, line); + } + else simpleexp(ls, v); + /* expand while operators have priorities higher than 'limit' */ + op = getbinopr(ls->t.token); + while (op != OPR_NOBINOPR && priority[op].left > limit) { + expdesc v2; + BinOpr nextop; + int line = ls->linenumber; + luaX_next(ls); + luaK_infix(ls->fs, op, v); + /* read sub-expression with higher priority */ + nextop = subexpr(ls, &v2, priority[op].right); + luaK_posfix(ls->fs, op, v, &v2, line); + op = nextop; + } + leavelevel(ls); + return op; /* return first untreated operator */ +} + + +static void expr (LexState *ls, expdesc *v) { + subexpr(ls, v, 0); +} + +/* }==================================================================== */ + + + +/* +** {====================================================================== +** Rules for Statements +** ======================================================================= +*/ + + +static void block (LexState *ls) { + /* block -> statlist */ + FuncState *fs = ls->fs; + BlockCnt bl; + enterblock(fs, &bl, 0); + statlist(ls); + leaveblock(fs); +} + + +/* +** structure to chain all variables in the left-hand side of an +** assignment +*/ +struct LHS_assign { + struct LHS_assign *prev; + expdesc v; /* variable (global, local, upvalue, or indexed) */ +}; + + +/* +** check whether, in an assignment to an upvalue/local variable, the +** upvalue/local variable is begin used in a previous assignment to a +** table. If so, save original upvalue/local value in a safe place and +** use this safe copy in the previous assignment. +*/ +static void check_conflict (LexState *ls, struct LHS_assign *lh, expdesc *v) { + FuncState *fs = ls->fs; + int extra = fs->freereg; /* eventual position to save local variable */ + int conflict = 0; + for (; lh; lh = lh->prev) { /* check all previous assignments */ + if (lh->v.k == VINDEXED) { /* assigning to a table? */ + /* table is the upvalue/local being assigned now? */ + if (lh->v.u.ind.vt == v->k && lh->v.u.ind.t == v->u.info) { + conflict = 1; + lh->v.u.ind.vt = VLOCAL; + lh->v.u.ind.t = extra; /* previous assignment will use safe copy */ + } + /* index is the local being assigned? (index cannot be upvalue) */ + if (v->k == VLOCAL && lh->v.u.ind.idx == v->u.info) { + conflict = 1; + lh->v.u.ind.idx = extra; /* previous assignment will use safe copy */ + } + } + } + if (conflict) { + /* copy upvalue/local value to a temporary (in position 'extra') */ + OpCode op = (v->k == VLOCAL) ? OP_MOVE : OP_GETUPVAL; + luaK_codeABC(fs, op, extra, v->u.info, 0); + luaK_reserveregs(fs, 1); + } +} + + +static void assignment (LexState *ls, struct LHS_assign *lh, int nvars) { + expdesc e; + check_condition(ls, vkisvar(lh->v.k), "syntax error"); + if (testnext(ls, ',')) { /* assignment -> ',' suffixedexp assignment */ + struct LHS_assign nv; + nv.prev = lh; + suffixedexp(ls, &nv.v); + if (nv.v.k != VINDEXED) + check_conflict(ls, lh, &nv.v); + checklimit(ls->fs, nvars + ls->L->nCcalls, LUAI_MAXCCALLS, + "C levels"); + assignment(ls, &nv, nvars+1); + } + else { /* assignment -> '=' explist */ + int nexps; + checknext(ls, '='); + nexps = explist(ls, &e); + if (nexps != nvars) + adjust_assign(ls, nvars, nexps, &e); + else { + luaK_setoneret(ls->fs, &e); /* close last expression */ + luaK_storevar(ls->fs, &lh->v, &e); + return; /* avoid default */ + } + } + init_exp(&e, VNONRELOC, ls->fs->freereg-1); /* default assignment */ + luaK_storevar(ls->fs, &lh->v, &e); +} + + +static int cond (LexState *ls) { + /* cond -> exp */ + expdesc v; + expr(ls, &v); /* read condition */ + if (v.k == VNIL) v.k = VFALSE; /* 'falses' are all equal here */ + luaK_goiftrue(ls->fs, &v); + return v.f; +} + + +static void gotostat (LexState *ls, int pc) { + int line = ls->linenumber; + TString *label; + int g; + if (testnext(ls, TK_GOTO)) + label = str_checkname(ls); + else { + luaX_next(ls); /* skip break */ + label = luaS_new(ls->L, "break"); + } + g = newlabelentry(ls, &ls->dyd->gt, label, line, pc); + findlabel(ls, g); /* close it if label already defined */ +} + + +/* check for repeated labels on the same block */ +static void checkrepeated (FuncState *fs, Labellist *ll, TString *label) { + int i; + for (i = fs->bl->firstlabel; i < ll->n; i++) { + if (eqstr(label, ll->arr[i].name)) { + const char *msg = luaO_pushfstring(fs->ls->L, + "label '%s' already defined on line %d", + getstr(label), ll->arr[i].line); + semerror(fs->ls, msg); + } + } +} + + +/* skip no-op statements */ +static void skipnoopstat (LexState *ls) { + while (ls->t.token == ';' || ls->t.token == TK_DBCOLON) + statement(ls); +} + + +static void labelstat (LexState *ls, TString *label, int line) { + /* label -> '::' NAME '::' */ + FuncState *fs = ls->fs; + Labellist *ll = &ls->dyd->label; + int l; /* index of new label being created */ + checkrepeated(fs, ll, label); /* check for repeated labels */ + checknext(ls, TK_DBCOLON); /* skip double colon */ + /* create new entry for this label */ + l = newlabelentry(ls, ll, label, line, luaK_getlabel(fs)); + skipnoopstat(ls); /* skip other no-op statements */ + if (block_follow(ls, 0)) { /* label is last no-op statement in the block? */ + /* assume that locals are already out of scope */ + ll->arr[l].nactvar = fs->bl->nactvar; + } + findgotos(ls, &ll->arr[l]); +} + + +static void whilestat (LexState *ls, int line) { + /* whilestat -> WHILE cond DO block END */ + FuncState *fs = ls->fs; + int whileinit; + int condexit; + BlockCnt bl; + luaX_next(ls); /* skip WHILE */ + whileinit = luaK_getlabel(fs); + condexit = cond(ls); + enterblock(fs, &bl, 1); + checknext(ls, TK_DO); + block(ls); + luaK_jumpto(fs, whileinit); + check_match(ls, TK_END, TK_WHILE, line); + leaveblock(fs); + luaK_patchtohere(fs, condexit); /* false conditions finish the loop */ +} + + +static void repeatstat (LexState *ls, int line) { + /* repeatstat -> REPEAT block UNTIL cond */ + int condexit; + FuncState *fs = ls->fs; + int repeat_init = luaK_getlabel(fs); + BlockCnt bl1, bl2; + enterblock(fs, &bl1, 1); /* loop block */ + enterblock(fs, &bl2, 0); /* scope block */ + luaX_next(ls); /* skip REPEAT */ + statlist(ls); + check_match(ls, TK_UNTIL, TK_REPEAT, line); + condexit = cond(ls); /* read condition (inside scope block) */ + if (bl2.upval) /* upvalues? */ + luaK_patchclose(fs, condexit, bl2.nactvar); + leaveblock(fs); /* finish scope */ + luaK_patchlist(fs, condexit, repeat_init); /* close the loop */ + leaveblock(fs); /* finish loop */ +} + + +static int exp1 (LexState *ls) { + expdesc e; + int reg; + expr(ls, &e); + luaK_exp2nextreg(ls->fs, &e); + lua_assert(e.k == VNONRELOC); + reg = e.u.info; + return reg; +} + + +static void forbody (LexState *ls, int base, int line, int nvars, int isnum) { + /* forbody -> DO block */ + BlockCnt bl; + FuncState *fs = ls->fs; + int prep, endfor; + adjustlocalvars(ls, 3); /* control variables */ + checknext(ls, TK_DO); + prep = isnum ? luaK_codeAsBx(fs, OP_FORPREP, base, NO_JUMP) : luaK_jump(fs); + enterblock(fs, &bl, 0); /* scope for declared variables */ + adjustlocalvars(ls, nvars); + luaK_reserveregs(fs, nvars); + block(ls); + leaveblock(fs); /* end of scope for declared variables */ + luaK_patchtohere(fs, prep); + if (isnum) /* numeric for? */ + endfor = luaK_codeAsBx(fs, OP_FORLOOP, base, NO_JUMP); + else { /* generic for */ + luaK_codeABC(fs, OP_TFORCALL, base, 0, nvars); + luaK_fixline(fs, line); + endfor = luaK_codeAsBx(fs, OP_TFORLOOP, base + 2, NO_JUMP); + } + luaK_patchlist(fs, endfor, prep + 1); + luaK_fixline(fs, line); +} + + +static void fornum (LexState *ls, TString *varname, int line) { + /* fornum -> NAME = exp1,exp1[,exp1] forbody */ + FuncState *fs = ls->fs; + int base = fs->freereg; + new_localvarliteral(ls, "(for index)"); + new_localvarliteral(ls, "(for limit)"); + new_localvarliteral(ls, "(for step)"); + new_localvar(ls, varname); + checknext(ls, '='); + exp1(ls); /* initial value */ + checknext(ls, ','); + exp1(ls); /* limit */ + if (testnext(ls, ',')) + exp1(ls); /* optional step */ + else { /* default step = 1 */ + luaK_codek(fs, fs->freereg, luaK_intK(fs, 1)); + luaK_reserveregs(fs, 1); + } + forbody(ls, base, line, 1, 1); +} + + +static void forlist (LexState *ls, TString *indexname) { + /* forlist -> NAME {,NAME} IN explist forbody */ + FuncState *fs = ls->fs; + expdesc e; + int nvars = 4; /* gen, state, control, plus at least one declared var */ + int line; + int base = fs->freereg; + /* create control variables */ + new_localvarliteral(ls, "(for generator)"); + new_localvarliteral(ls, "(for state)"); + new_localvarliteral(ls, "(for control)"); + /* create declared variables */ + new_localvar(ls, indexname); + while (testnext(ls, ',')) { + new_localvar(ls, str_checkname(ls)); + nvars++; + } + checknext(ls, TK_IN); + line = ls->linenumber; + adjust_assign(ls, 3, explist(ls, &e), &e); + luaK_checkstack(fs, 3); /* extra space to call generator */ + forbody(ls, base, line, nvars - 3, 0); +} + + +static void forstat (LexState *ls, int line) { + /* forstat -> FOR (fornum | forlist) END */ + FuncState *fs = ls->fs; + TString *varname; + BlockCnt bl; + enterblock(fs, &bl, 1); /* scope for loop and control variables */ + luaX_next(ls); /* skip 'for' */ + varname = str_checkname(ls); /* first variable name */ + switch (ls->t.token) { + case '=': fornum(ls, varname, line); break; + case ',': case TK_IN: forlist(ls, varname); break; + default: luaX_syntaxerror(ls, "'=' or 'in' expected"); + } + check_match(ls, TK_END, TK_FOR, line); + leaveblock(fs); /* loop scope ('break' jumps to this point) */ +} + + +static void test_then_block (LexState *ls, int *escapelist) { + /* test_then_block -> [IF | ELSEIF] cond THEN block */ + BlockCnt bl; + FuncState *fs = ls->fs; + expdesc v; + int jf; /* instruction to skip 'then' code (if condition is false) */ + luaX_next(ls); /* skip IF or ELSEIF */ + expr(ls, &v); /* read condition */ + checknext(ls, TK_THEN); + if (ls->t.token == TK_GOTO || ls->t.token == TK_BREAK) { + luaK_goiffalse(ls->fs, &v); /* will jump to label if condition is true */ + enterblock(fs, &bl, 0); /* must enter block before 'goto' */ + gotostat(ls, v.t); /* handle goto/break */ + skipnoopstat(ls); /* skip other no-op statements */ + if (block_follow(ls, 0)) { /* 'goto' is the entire block? */ + leaveblock(fs); + return; /* and that is it */ + } + else /* must skip over 'then' part if condition is false */ + jf = luaK_jump(fs); + } + else { /* regular case (not goto/break) */ + luaK_goiftrue(ls->fs, &v); /* skip over block if condition is false */ + enterblock(fs, &bl, 0); + jf = v.f; + } + statlist(ls); /* 'then' part */ + leaveblock(fs); + if (ls->t.token == TK_ELSE || + ls->t.token == TK_ELSEIF) /* followed by 'else'/'elseif'? */ + luaK_concat(fs, escapelist, luaK_jump(fs)); /* must jump over it */ + luaK_patchtohere(fs, jf); +} + + +static void ifstat (LexState *ls, int line) { + /* ifstat -> IF cond THEN block {ELSEIF cond THEN block} [ELSE block] END */ + FuncState *fs = ls->fs; + int escapelist = NO_JUMP; /* exit list for finished parts */ + test_then_block(ls, &escapelist); /* IF cond THEN block */ + while (ls->t.token == TK_ELSEIF) + test_then_block(ls, &escapelist); /* ELSEIF cond THEN block */ + if (testnext(ls, TK_ELSE)) + block(ls); /* 'else' part */ + check_match(ls, TK_END, TK_IF, line); + luaK_patchtohere(fs, escapelist); /* patch escape list to 'if' end */ +} + + +static void localfunc (LexState *ls) { + expdesc b; + FuncState *fs = ls->fs; + new_localvar(ls, str_checkname(ls)); /* new local variable */ + adjustlocalvars(ls, 1); /* enter its scope */ + body(ls, &b, 0, ls->linenumber); /* function created in next register */ + /* debug information will only see the variable after this point! */ + getlocvar(fs, b.u.info)->startpc = fs->pc; +} + + +static void localstat (LexState *ls) { + /* stat -> LOCAL NAME {',' NAME} ['=' explist] */ + int nvars = 0; + int nexps; + expdesc e; + do { + new_localvar(ls, str_checkname(ls)); + nvars++; + } while (testnext(ls, ',')); + if (testnext(ls, '=')) + nexps = explist(ls, &e); + else { + e.k = VVOID; + nexps = 0; + } + adjust_assign(ls, nvars, nexps, &e); + adjustlocalvars(ls, nvars); +} + + +static int funcname (LexState *ls, expdesc *v) { + /* funcname -> NAME {fieldsel} [':' NAME] */ + int ismethod = 0; + singlevar(ls, v); + while (ls->t.token == '.') + fieldsel(ls, v); + if (ls->t.token == ':') { + ismethod = 1; + fieldsel(ls, v); + } + return ismethod; +} + + +static void funcstat (LexState *ls, int line) { + /* funcstat -> FUNCTION funcname body */ + int ismethod; + expdesc v, b; + luaX_next(ls); /* skip FUNCTION */ + ismethod = funcname(ls, &v); + body(ls, &b, ismethod, line); + luaK_storevar(ls->fs, &v, &b); + luaK_fixline(ls->fs, line); /* definition "happens" in the first line */ +} + + +static void exprstat (LexState *ls) { + /* stat -> func | assignment */ + FuncState *fs = ls->fs; + struct LHS_assign v; + suffixedexp(ls, &v.v); + if (ls->t.token == '=' || ls->t.token == ',') { /* stat -> assignment ? */ + v.prev = NULL; + assignment(ls, &v, 1); + } + else { /* stat -> func */ + check_condition(ls, v.v.k == VCALL, "syntax error"); + SETARG_C(getinstruction(fs, &v.v), 1); /* call statement uses no results */ + } +} + + +static void retstat (LexState *ls) { + /* stat -> RETURN [explist] [';'] */ + FuncState *fs = ls->fs; + expdesc e; + int first, nret; /* registers with returned values */ + if (block_follow(ls, 1) || ls->t.token == ';') + first = nret = 0; /* return no values */ + else { + nret = explist(ls, &e); /* optional return values */ + if (hasmultret(e.k)) { + luaK_setmultret(fs, &e); + if (e.k == VCALL && nret == 1) { /* tail call? */ + SET_OPCODE(getinstruction(fs,&e), OP_TAILCALL); + lua_assert(GETARG_A(getinstruction(fs,&e)) == fs->nactvar); + } + first = fs->nactvar; + nret = LUA_MULTRET; /* return all values */ + } + else { + if (nret == 1) /* only one single value? */ + first = luaK_exp2anyreg(fs, &e); + else { + luaK_exp2nextreg(fs, &e); /* values must go to the stack */ + first = fs->nactvar; /* return all active values */ + lua_assert(nret == fs->freereg - first); + } + } + } + luaK_ret(fs, first, nret); + testnext(ls, ';'); /* skip optional semicolon */ +} + + +static void statement (LexState *ls) { + int line = ls->linenumber; /* may be needed for error messages */ + enterlevel(ls); + switch (ls->t.token) { + case ';': { /* stat -> ';' (empty statement) */ + luaX_next(ls); /* skip ';' */ + break; + } + case TK_IF: { /* stat -> ifstat */ + ifstat(ls, line); + break; + } + case TK_WHILE: { /* stat -> whilestat */ + whilestat(ls, line); + break; + } + case TK_DO: { /* stat -> DO block END */ + luaX_next(ls); /* skip DO */ + block(ls); + check_match(ls, TK_END, TK_DO, line); + break; + } + case TK_FOR: { /* stat -> forstat */ + forstat(ls, line); + break; + } + case TK_REPEAT: { /* stat -> repeatstat */ + repeatstat(ls, line); + break; + } + case TK_FUNCTION: { /* stat -> funcstat */ + funcstat(ls, line); + break; + } + case TK_LOCAL: { /* stat -> localstat */ + luaX_next(ls); /* skip LOCAL */ + if (testnext(ls, TK_FUNCTION)) /* local function? */ + localfunc(ls); + else + localstat(ls); + break; + } + case TK_DBCOLON: { /* stat -> label */ + luaX_next(ls); /* skip double colon */ + labelstat(ls, str_checkname(ls), line); + break; + } + case TK_RETURN: { /* stat -> retstat */ + luaX_next(ls); /* skip RETURN */ + retstat(ls); + break; + } + case TK_BREAK: /* stat -> breakstat */ + case TK_GOTO: { /* stat -> 'goto' NAME */ + gotostat(ls, luaK_jump(ls->fs)); + break; + } + default: { /* stat -> func | assignment */ + exprstat(ls); + break; + } + } + lua_assert(ls->fs->f->maxstacksize >= ls->fs->freereg && + ls->fs->freereg >= ls->fs->nactvar); + ls->fs->freereg = ls->fs->nactvar; /* free registers */ + leavelevel(ls); +} + +/* }====================================================================== */ + + +/* +** compiles the main function, which is a regular vararg function with an +** upvalue named LUA_ENV +*/ +static void mainfunc (LexState *ls, FuncState *fs) { + BlockCnt bl; + expdesc v; + open_func(ls, fs, &bl); + fs->f->is_vararg = 1; /* main function is always declared vararg */ + init_exp(&v, VLOCAL, 0); /* create and... */ + newupvalue(fs, ls->envn, &v); /* ...set environment upvalue */ + luaX_next(ls); /* read first token */ + statlist(ls); /* parse main body */ + check(ls, TK_EOS); + close_func(ls); +} + + +LClosure *luaY_parser (lua_State *L, ZIO *z, Mbuffer *buff, + Dyndata *dyd, const char *name, int firstchar) { + LexState lexstate; + FuncState funcstate; + LClosure *cl = luaF_newLclosure(L, 1); /* create main closure */ + setclLvalue(L, L->top, cl); /* anchor it (to avoid being collected) */ + luaD_inctop(L); + lexstate.h = luaH_new(L); /* create table for scanner */ + sethvalue(L, L->top, lexstate.h); /* anchor it */ + luaD_inctop(L); + funcstate.f = cl->p = luaF_newproto(L); + funcstate.f->source = luaS_new(L, name); /* create and anchor TString */ + lua_assert(iswhite(funcstate.f)); /* do not need barrier here */ + lexstate.buff = buff; + lexstate.dyd = dyd; + dyd->actvar.n = dyd->gt.n = dyd->label.n = 0; + luaX_setinput(L, &lexstate, z, funcstate.f->source, firstchar); + mainfunc(&lexstate, &funcstate); + lua_assert(!funcstate.prev && funcstate.nups == 1 && !lexstate.fs); + /* all scopes should be correctly finished */ + lua_assert(dyd->actvar.n == 0 && dyd->gt.n == 0 && dyd->label.n == 0); + L->top--; /* remove scanner's table */ + return cl; /* closure is on the stack, too */ +} + diff --git a/3rd/lua-5.3.4/lparser.h b/3rd/lua-5.3.4/lparser.h new file mode 100644 index 0000000..02e9b03 --- /dev/null +++ b/3rd/lua-5.3.4/lparser.h @@ -0,0 +1,133 @@ +/* +** $Id: lparser.h,v 1.76 2015/12/30 18:16:13 roberto Exp $ +** Lua Parser +** See Copyright Notice in lua.h +*/ + +#ifndef lparser_h +#define lparser_h + +#include "llimits.h" +#include "lobject.h" +#include "lzio.h" + + +/* +** Expression and variable descriptor. +** Code generation for variables and expressions can be delayed to allow +** optimizations; An 'expdesc' structure describes a potentially-delayed +** variable/expression. It has a description of its "main" value plus a +** list of conditional jumps that can also produce its value (generated +** by short-circuit operators 'and'/'or'). +*/ + +/* kinds of variables/expressions */ +typedef enum { + VVOID, /* when 'expdesc' describes the last expression a list, + this kind means an empty list (so, no expression) */ + VNIL, /* constant nil */ + VTRUE, /* constant true */ + VFALSE, /* constant false */ + VK, /* constant in 'k'; info = index of constant in 'k' */ + VKFLT, /* floating constant; nval = numerical float value */ + VKINT, /* integer constant; nval = numerical integer value */ + VNONRELOC, /* expression has its value in a fixed register; + info = result register */ + VLOCAL, /* local variable; info = local register */ + VUPVAL, /* upvalue variable; info = index of upvalue in 'upvalues' */ + VINDEXED, /* indexed variable; + ind.vt = whether 't' is register or upvalue; + ind.t = table register or upvalue; + ind.idx = key's R/K index */ + VJMP, /* expression is a test/comparison; + info = pc of corresponding jump instruction */ + VRELOCABLE, /* expression can put result in any register; + info = instruction pc */ + VCALL, /* expression is a function call; info = instruction pc */ + VVARARG /* vararg expression; info = instruction pc */ +} expkind; + + +#define vkisvar(k) (VLOCAL <= (k) && (k) <= VINDEXED) +#define vkisinreg(k) ((k) == VNONRELOC || (k) == VLOCAL) + +typedef struct expdesc { + expkind k; + union { + lua_Integer ival; /* for VKINT */ + lua_Number nval; /* for VKFLT */ + int info; /* for generic use */ + struct { /* for indexed variables (VINDEXED) */ + short idx; /* index (R/K) */ + lu_byte t; /* table (register or upvalue) */ + lu_byte vt; /* whether 't' is register (VLOCAL) or upvalue (VUPVAL) */ + } ind; + } u; + int t; /* patch list of 'exit when true' */ + int f; /* patch list of 'exit when false' */ +} expdesc; + + +/* description of active local variable */ +typedef struct Vardesc { + short idx; /* variable index in stack */ +} Vardesc; + + +/* description of pending goto statements and label statements */ +typedef struct Labeldesc { + TString *name; /* label identifier */ + int pc; /* position in code */ + int line; /* line where it appeared */ + lu_byte nactvar; /* local level where it appears in current block */ +} Labeldesc; + + +/* list of labels or gotos */ +typedef struct Labellist { + Labeldesc *arr; /* array */ + int n; /* number of entries in use */ + int size; /* array size */ +} Labellist; + + +/* dynamic structures used by the parser */ +typedef struct Dyndata { + struct { /* list of active local variables */ + Vardesc *arr; + int n; + int size; + } actvar; + Labellist gt; /* list of pending gotos */ + Labellist label; /* list of active labels */ +} Dyndata; + + +/* control of blocks */ +struct BlockCnt; /* defined in lparser.c */ + + +/* state needed to generate code for a given function */ +typedef struct FuncState { + Proto *f; /* current function header */ + struct FuncState *prev; /* enclosing function */ + struct LexState *ls; /* lexical state */ + struct BlockCnt *bl; /* chain of current blocks */ + int pc; /* next position to code (equivalent to 'ncode') */ + int lasttarget; /* 'label' of last 'jump label' */ + int jpc; /* list of pending jumps to 'pc' */ + int nk; /* number of elements in 'k' */ + int np; /* number of elements in 'p' */ + int firstlocal; /* index of first local var (in Dyndata array) */ + short nlocvars; /* number of elements in 'f->locvars' */ + lu_byte nactvar; /* number of active local variables */ + lu_byte nups; /* number of upvalues */ + lu_byte freereg; /* first free register */ +} FuncState; + + +LUAI_FUNC LClosure *luaY_parser (lua_State *L, ZIO *z, Mbuffer *buff, + Dyndata *dyd, const char *name, int firstchar); + + +#endif diff --git a/3rd/lua-5.3.4/lprefix.h b/3rd/lua-5.3.4/lprefix.h new file mode 100644 index 0000000..02daa83 --- /dev/null +++ b/3rd/lua-5.3.4/lprefix.h @@ -0,0 +1,45 @@ +/* +** $Id: lprefix.h,v 1.2 2014/12/29 16:54:13 roberto Exp $ +** Definitions for Lua code that must come before any other header file +** See Copyright Notice in lua.h +*/ + +#ifndef lprefix_h +#define lprefix_h + + +/* +** Allows POSIX/XSI stuff +*/ +#if !defined(LUA_USE_C89) /* { */ + +#if !defined(_XOPEN_SOURCE) +#define _XOPEN_SOURCE 600 +#elif _XOPEN_SOURCE == 0 +#undef _XOPEN_SOURCE /* use -D_XOPEN_SOURCE=0 to undefine it */ +#endif + +/* +** Allows manipulation of large files in gcc and some other compilers +*/ +#if !defined(LUA_32BITS) && !defined(_FILE_OFFSET_BITS) +#define _LARGEFILE_SOURCE 1 +#define _FILE_OFFSET_BITS 64 +#endif + +#endif /* } */ + + +/* +** Windows stuff +*/ +#if defined(_WIN32) /* { */ + +#if !defined(_CRT_SECURE_NO_WARNINGS) +#define _CRT_SECURE_NO_WARNINGS /* avoid warnings about ISO C functions */ +#endif + +#endif /* } */ + +#endif + diff --git a/3rd/lua-5.3.4/lstate.c b/3rd/lua-5.3.4/lstate.c new file mode 100644 index 0000000..9194ac3 --- /dev/null +++ b/3rd/lua-5.3.4/lstate.c @@ -0,0 +1,347 @@ +/* +** $Id: lstate.c,v 2.133 2015/11/13 12:16:51 roberto Exp $ +** Global State +** See Copyright Notice in lua.h +*/ + +#define lstate_c +#define LUA_CORE + +#include "lprefix.h" + + +#include +#include + +#include "lua.h" + +#include "lapi.h" +#include "ldebug.h" +#include "ldo.h" +#include "lfunc.h" +#include "lgc.h" +#include "llex.h" +#include "lmem.h" +#include "lstate.h" +#include "lstring.h" +#include "ltable.h" +#include "ltm.h" + + +#if !defined(LUAI_GCPAUSE) +#define LUAI_GCPAUSE 200 /* 200% */ +#endif + +#if !defined(LUAI_GCMUL) +#define LUAI_GCMUL 200 /* GC runs 'twice the speed' of memory allocation */ +#endif + + +/* +** a macro to help the creation of a unique random seed when a state is +** created; the seed is used to randomize hashes. +*/ +#if !defined(luai_makeseed) +#include +#define luai_makeseed() cast(unsigned int, time(NULL)) +#endif + + + +/* +** thread state + extra space +*/ +typedef struct LX { + lu_byte extra_[LUA_EXTRASPACE]; + lua_State l; +} LX; + + +/* +** Main thread combines a thread state and the global state +*/ +typedef struct LG { + LX l; + global_State g; +} LG; + + + +#define fromstate(L) (cast(LX *, cast(lu_byte *, (L)) - offsetof(LX, l))) + + +/* +** Compute an initial seed as random as possible. Rely on Address Space +** Layout Randomization (if present) to increase randomness.. +*/ +#define addbuff(b,p,e) \ + { size_t t = cast(size_t, e); \ + memcpy(b + p, &t, sizeof(t)); p += sizeof(t); } + +static unsigned int makeseed (lua_State *L) { + char buff[4 * sizeof(size_t)]; + unsigned int h = luai_makeseed(); + int p = 0; + addbuff(buff, p, L); /* heap variable */ + addbuff(buff, p, &h); /* local variable */ + addbuff(buff, p, luaO_nilobject); /* global variable */ + addbuff(buff, p, &lua_newstate); /* public function */ + lua_assert(p == sizeof(buff)); + return luaS_hash(buff, p, h); +} + + +/* +** set GCdebt to a new value keeping the value (totalbytes + GCdebt) +** invariant (and avoiding underflows in 'totalbytes') +*/ +void luaE_setdebt (global_State *g, l_mem debt) { + l_mem tb = gettotalbytes(g); + lua_assert(tb > 0); + if (debt < tb - MAX_LMEM) + debt = tb - MAX_LMEM; /* will make 'totalbytes == MAX_LMEM' */ + g->totalbytes = tb - debt; + g->GCdebt = debt; +} + + +CallInfo *luaE_extendCI (lua_State *L) { + CallInfo *ci = luaM_new(L, CallInfo); + lua_assert(L->ci->next == NULL); + L->ci->next = ci; + ci->previous = L->ci; + ci->next = NULL; + L->nci++; + return ci; +} + + +/* +** free all CallInfo structures not in use by a thread +*/ +void luaE_freeCI (lua_State *L) { + CallInfo *ci = L->ci; + CallInfo *next = ci->next; + ci->next = NULL; + while ((ci = next) != NULL) { + next = ci->next; + luaM_free(L, ci); + L->nci--; + } +} + + +/* +** free half of the CallInfo structures not in use by a thread +*/ +void luaE_shrinkCI (lua_State *L) { + CallInfo *ci = L->ci; + CallInfo *next2; /* next's next */ + /* while there are two nexts */ + while (ci->next != NULL && (next2 = ci->next->next) != NULL) { + luaM_free(L, ci->next); /* free next */ + L->nci--; + ci->next = next2; /* remove 'next' from the list */ + next2->previous = ci; + ci = next2; /* keep next's next */ + } +} + + +static void stack_init (lua_State *L1, lua_State *L) { + int i; CallInfo *ci; + /* initialize stack array */ + L1->stack = luaM_newvector(L, BASIC_STACK_SIZE, TValue); + L1->stacksize = BASIC_STACK_SIZE; + for (i = 0; i < BASIC_STACK_SIZE; i++) + setnilvalue(L1->stack + i); /* erase new stack */ + L1->top = L1->stack; + L1->stack_last = L1->stack + L1->stacksize - EXTRA_STACK; + /* initialize first ci */ + ci = &L1->base_ci; + ci->next = ci->previous = NULL; + ci->callstatus = 0; + ci->func = L1->top; + setnilvalue(L1->top++); /* 'function' entry for this 'ci' */ + ci->top = L1->top + LUA_MINSTACK; + L1->ci = ci; +} + + +static void freestack (lua_State *L) { + if (L->stack == NULL) + return; /* stack not completely built yet */ + L->ci = &L->base_ci; /* free the entire 'ci' list */ + luaE_freeCI(L); + lua_assert(L->nci == 0); + luaM_freearray(L, L->stack, L->stacksize); /* free stack array */ +} + + +/* +** Create registry table and its predefined values +*/ +static void init_registry (lua_State *L, global_State *g) { + TValue temp; + /* create registry */ + Table *registry = luaH_new(L); + sethvalue(L, &g->l_registry, registry); + luaH_resize(L, registry, LUA_RIDX_LAST, 0); + /* registry[LUA_RIDX_MAINTHREAD] = L */ + setthvalue(L, &temp, L); /* temp = L */ + luaH_setint(L, registry, LUA_RIDX_MAINTHREAD, &temp); + /* registry[LUA_RIDX_GLOBALS] = table of globals */ + sethvalue(L, &temp, luaH_new(L)); /* temp = new table (global table) */ + luaH_setint(L, registry, LUA_RIDX_GLOBALS, &temp); +} + + +/* +** open parts of the state that may cause memory-allocation errors. +** ('g->version' != NULL flags that the state was completely build) +*/ +static void f_luaopen (lua_State *L, void *ud) { + global_State *g = G(L); + UNUSED(ud); + stack_init(L, L); /* init stack */ + init_registry(L, g); + luaS_init(L); + luaT_init(L); + luaX_init(L); + g->gcrunning = 1; /* allow gc */ + g->version = lua_version(NULL); + luai_userstateopen(L); +} + + +/* +** preinitialize a thread with consistent values without allocating +** any memory (to avoid errors) +*/ +static void preinit_thread (lua_State *L, global_State *g) { + G(L) = g; + L->stack = NULL; + L->ci = NULL; + L->nci = 0; + L->stacksize = 0; + L->twups = L; /* thread has no upvalues */ + L->errorJmp = NULL; + L->nCcalls = 0; + L->hook = NULL; + L->hookmask = 0; + L->basehookcount = 0; + L->allowhook = 1; + resethookcount(L); + L->openupval = NULL; + L->nny = 1; + L->status = LUA_OK; + L->errfunc = 0; +} + + +static void close_state (lua_State *L) { + global_State *g = G(L); + luaF_close(L, L->stack); /* close all upvalues for this thread */ + luaC_freeallobjects(L); /* collect all objects */ + if (g->version) /* closing a fully built state? */ + luai_userstateclose(L); + luaM_freearray(L, G(L)->strt.hash, G(L)->strt.size); + freestack(L); + lua_assert(gettotalbytes(g) == sizeof(LG)); + (*g->frealloc)(g->ud, fromstate(L), sizeof(LG), 0); /* free main block */ +} + + +LUA_API lua_State *lua_newthread (lua_State *L) { + global_State *g = G(L); + lua_State *L1; + lua_lock(L); + luaC_checkGC(L); + /* create new thread */ + L1 = &cast(LX *, luaM_newobject(L, LUA_TTHREAD, sizeof(LX)))->l; + L1->marked = luaC_white(g); + L1->tt = LUA_TTHREAD; + /* link it on list 'allgc' */ + L1->next = g->allgc; + g->allgc = obj2gco(L1); + /* anchor it on L stack */ + setthvalue(L, L->top, L1); + api_incr_top(L); + preinit_thread(L1, g); + L1->hookmask = L->hookmask; + L1->basehookcount = L->basehookcount; + L1->hook = L->hook; + resethookcount(L1); + /* initialize L1 extra space */ + memcpy(lua_getextraspace(L1), lua_getextraspace(g->mainthread), + LUA_EXTRASPACE); + luai_userstatethread(L, L1); + stack_init(L1, L); /* init stack */ + lua_unlock(L); + return L1; +} + + +void luaE_freethread (lua_State *L, lua_State *L1) { + LX *l = fromstate(L1); + luaF_close(L1, L1->stack); /* close all upvalues for this thread */ + lua_assert(L1->openupval == NULL); + luai_userstatefree(L, L1); + freestack(L1); + luaM_free(L, l); +} + + +LUA_API lua_State *lua_newstate (lua_Alloc f, void *ud) { + int i; + lua_State *L; + global_State *g; + LG *l = cast(LG *, (*f)(ud, NULL, LUA_TTHREAD, sizeof(LG))); + if (l == NULL) return NULL; + L = &l->l.l; + g = &l->g; + L->next = NULL; + L->tt = LUA_TTHREAD; + g->currentwhite = bitmask(WHITE0BIT); + L->marked = luaC_white(g); + preinit_thread(L, g); + g->frealloc = f; + g->ud = ud; + g->mainthread = L; + g->seed = makeseed(L); + g->gcrunning = 0; /* no GC while building state */ + g->GCestimate = 0; + g->strt.size = g->strt.nuse = 0; + g->strt.hash = NULL; + setnilvalue(&g->l_registry); + g->panic = NULL; + g->version = NULL; + g->gcstate = GCSpause; + g->gckind = KGC_NORMAL; + g->allgc = g->finobj = g->tobefnz = g->fixedgc = NULL; + g->sweepgc = NULL; + g->gray = g->grayagain = NULL; + g->weak = g->ephemeron = g->allweak = NULL; + g->twups = NULL; + g->totalbytes = sizeof(LG); + g->GCdebt = 0; + g->gcfinnum = 0; + g->gcpause = LUAI_GCPAUSE; + g->gcstepmul = LUAI_GCMUL; + for (i=0; i < LUA_NUMTAGS; i++) g->mt[i] = NULL; + if (luaD_rawrunprotected(L, f_luaopen, NULL) != LUA_OK) { + /* memory allocation error: free partial state */ + close_state(L); + L = NULL; + } + return L; +} + + +LUA_API void lua_close (lua_State *L) { + L = G(L)->mainthread; /* only the main thread can be closed */ + lua_lock(L); + close_state(L); +} + + diff --git a/3rd/lua-5.3.4/lstate.h b/3rd/lua-5.3.4/lstate.h new file mode 100644 index 0000000..a469466 --- /dev/null +++ b/3rd/lua-5.3.4/lstate.h @@ -0,0 +1,235 @@ +/* +** $Id: lstate.h,v 2.133 2016/12/22 13:08:50 roberto Exp $ +** Global State +** See Copyright Notice in lua.h +*/ + +#ifndef lstate_h +#define lstate_h + +#include "lua.h" + +#include "lobject.h" +#include "ltm.h" +#include "lzio.h" + + +/* + +** Some notes about garbage-collected objects: All objects in Lua must +** be kept somehow accessible until being freed, so all objects always +** belong to one (and only one) of these lists, using field 'next' of +** the 'CommonHeader' for the link: +** +** 'allgc': all objects not marked for finalization; +** 'finobj': all objects marked for finalization; +** 'tobefnz': all objects ready to be finalized; +** 'fixedgc': all objects that are not to be collected (currently +** only small strings, such as reserved words). + +*/ + + +struct lua_longjmp; /* defined in ldo.c */ + + +/* +** Atomic type (relative to signals) to better ensure that 'lua_sethook' +** is thread safe +*/ +#if !defined(l_signalT) +#include +#define l_signalT sig_atomic_t +#endif + + +/* extra stack space to handle TM calls and some other extras */ +#define EXTRA_STACK 5 + + +#define BASIC_STACK_SIZE (2*LUA_MINSTACK) + + +/* kinds of Garbage Collection */ +#define KGC_NORMAL 0 +#define KGC_EMERGENCY 1 /* gc was forced by an allocation failure */ + + +typedef struct stringtable { + TString **hash; + int nuse; /* number of elements */ + int size; +} stringtable; + + +/* +** Information about a call. +** When a thread yields, 'func' is adjusted to pretend that the +** top function has only the yielded values in its stack; in that +** case, the actual 'func' value is saved in field 'extra'. +** When a function calls another with a continuation, 'extra' keeps +** the function index so that, in case of errors, the continuation +** function can be called with the correct top. +*/ +typedef struct CallInfo { + StkId func; /* function index in the stack */ + StkId top; /* top for this function */ + struct CallInfo *previous, *next; /* dynamic call link */ + union { + struct { /* only for Lua functions */ + StkId base; /* base for this function */ + const Instruction *savedpc; + } l; + struct { /* only for C functions */ + lua_KFunction k; /* continuation in case of yields */ + ptrdiff_t old_errfunc; + lua_KContext ctx; /* context info. in case of yields */ + } c; + } u; + ptrdiff_t extra; + short nresults; /* expected number of results from this function */ + unsigned short callstatus; +} CallInfo; + + +/* +** Bits in CallInfo status +*/ +#define CIST_OAH (1<<0) /* original value of 'allowhook' */ +#define CIST_LUA (1<<1) /* call is running a Lua function */ +#define CIST_HOOKED (1<<2) /* call is running a debug hook */ +#define CIST_FRESH (1<<3) /* call is running on a fresh invocation + of luaV_execute */ +#define CIST_YPCALL (1<<4) /* call is a yieldable protected call */ +#define CIST_TAIL (1<<5) /* call was tail called */ +#define CIST_HOOKYIELD (1<<6) /* last hook called yielded */ +#define CIST_LEQ (1<<7) /* using __lt for __le */ +#define CIST_FIN (1<<8) /* call is running a finalizer */ + +#define isLua(ci) ((ci)->callstatus & CIST_LUA) + +/* assume that CIST_OAH has offset 0 and that 'v' is strictly 0/1 */ +#define setoah(st,v) ((st) = ((st) & ~CIST_OAH) | (v)) +#define getoah(st) ((st) & CIST_OAH) + + +/* +** 'global state', shared by all threads of this state +*/ +typedef struct global_State { + lua_Alloc frealloc; /* function to reallocate memory */ + void *ud; /* auxiliary data to 'frealloc' */ + l_mem totalbytes; /* number of bytes currently allocated - GCdebt */ + l_mem GCdebt; /* bytes allocated not yet compensated by the collector */ + lu_mem GCmemtrav; /* memory traversed by the GC */ + lu_mem GCestimate; /* an estimate of the non-garbage memory in use */ + stringtable strt; /* hash table for strings */ + TValue l_registry; + unsigned int seed; /* randomized seed for hashes */ + lu_byte currentwhite; + lu_byte gcstate; /* state of garbage collector */ + lu_byte gckind; /* kind of GC running */ + lu_byte gcrunning; /* true if GC is running */ + GCObject *allgc; /* list of all collectable objects */ + GCObject **sweepgc; /* current position of sweep in list */ + GCObject *finobj; /* list of collectable objects with finalizers */ + GCObject *gray; /* list of gray objects */ + GCObject *grayagain; /* list of objects to be traversed atomically */ + GCObject *weak; /* list of tables with weak values */ + GCObject *ephemeron; /* list of ephemeron tables (weak keys) */ + GCObject *allweak; /* list of all-weak tables */ + GCObject *tobefnz; /* list of userdata to be GC */ + GCObject *fixedgc; /* list of objects not to be collected */ + struct lua_State *twups; /* list of threads with open upvalues */ + unsigned int gcfinnum; /* number of finalizers to call in each GC step */ + int gcpause; /* size of pause between successive GCs */ + int gcstepmul; /* GC 'granularity' */ + lua_CFunction panic; /* to be called in unprotected errors */ + struct lua_State *mainthread; + const lua_Number *version; /* pointer to version number */ + TString *memerrmsg; /* memory-error message */ + TString *tmname[TM_N]; /* array with tag-method names */ + struct Table *mt[LUA_NUMTAGS]; /* metatables for basic types */ + TString *strcache[STRCACHE_N][STRCACHE_M]; /* cache for strings in API */ +} global_State; + + +/* +** 'per thread' state +*/ +struct lua_State { + CommonHeader; + unsigned short nci; /* number of items in 'ci' list */ + lu_byte status; + StkId top; /* first free slot in the stack */ + global_State *l_G; + CallInfo *ci; /* call info for current function */ + const Instruction *oldpc; /* last pc traced */ + StkId stack_last; /* last free slot in the stack */ + StkId stack; /* stack base */ + UpVal *openupval; /* list of open upvalues in this stack */ + GCObject *gclist; + struct lua_State *twups; /* list of threads with open upvalues */ + struct lua_longjmp *errorJmp; /* current error recover point */ + CallInfo base_ci; /* CallInfo for first level (C calling Lua) */ + volatile lua_Hook hook; + ptrdiff_t errfunc; /* current error handling function (stack index) */ + int stacksize; + int basehookcount; + int hookcount; + unsigned short nny; /* number of non-yieldable calls in stack */ + unsigned short nCcalls; /* number of nested C calls */ + l_signalT hookmask; + lu_byte allowhook; +}; + + +#define G(L) (L->l_G) + + +/* +** Union of all collectable objects (only for conversions) +*/ +union GCUnion { + GCObject gc; /* common header */ + struct TString ts; + struct Udata u; + union Closure cl; + struct Table h; + struct Proto p; + struct lua_State th; /* thread */ +}; + + +#define cast_u(o) cast(union GCUnion *, (o)) + +/* macros to convert a GCObject into a specific value */ +#define gco2ts(o) \ + check_exp(novariant((o)->tt) == LUA_TSTRING, &((cast_u(o))->ts)) +#define gco2u(o) check_exp((o)->tt == LUA_TUSERDATA, &((cast_u(o))->u)) +#define gco2lcl(o) check_exp((o)->tt == LUA_TLCL, &((cast_u(o))->cl.l)) +#define gco2ccl(o) check_exp((o)->tt == LUA_TCCL, &((cast_u(o))->cl.c)) +#define gco2cl(o) \ + check_exp(novariant((o)->tt) == LUA_TFUNCTION, &((cast_u(o))->cl)) +#define gco2t(o) check_exp((o)->tt == LUA_TTABLE, &((cast_u(o))->h)) +#define gco2p(o) check_exp((o)->tt == LUA_TPROTO, &((cast_u(o))->p)) +#define gco2th(o) check_exp((o)->tt == LUA_TTHREAD, &((cast_u(o))->th)) + + +/* macro to convert a Lua object into a GCObject */ +#define obj2gco(v) \ + check_exp(novariant((v)->tt) < LUA_TDEADKEY, (&(cast_u(v)->gc))) + + +/* actual number of total bytes allocated */ +#define gettotalbytes(g) cast(lu_mem, (g)->totalbytes + (g)->GCdebt) + +LUAI_FUNC void luaE_setdebt (global_State *g, l_mem debt); +LUAI_FUNC void luaE_freethread (lua_State *L, lua_State *L1); +LUAI_FUNC CallInfo *luaE_extendCI (lua_State *L); +LUAI_FUNC void luaE_freeCI (lua_State *L); +LUAI_FUNC void luaE_shrinkCI (lua_State *L); + + +#endif + diff --git a/3rd/lua-5.3.4/lstring.c b/3rd/lua-5.3.4/lstring.c new file mode 100644 index 0000000..9351766 --- /dev/null +++ b/3rd/lua-5.3.4/lstring.c @@ -0,0 +1,248 @@ +/* +** $Id: lstring.c,v 2.56 2015/11/23 11:32:51 roberto Exp $ +** String table (keeps all strings handled by Lua) +** See Copyright Notice in lua.h +*/ + +#define lstring_c +#define LUA_CORE + +#include "lprefix.h" + + +#include + +#include "lua.h" + +#include "ldebug.h" +#include "ldo.h" +#include "lmem.h" +#include "lobject.h" +#include "lstate.h" +#include "lstring.h" + + +#define MEMERRMSG "not enough memory" + + +/* +** Lua will use at most ~(2^LUAI_HASHLIMIT) bytes from a string to +** compute its hash +*/ +#if !defined(LUAI_HASHLIMIT) +#define LUAI_HASHLIMIT 5 +#endif + + +/* +** equality for long strings +*/ +int luaS_eqlngstr (TString *a, TString *b) { + size_t len = a->u.lnglen; + lua_assert(a->tt == LUA_TLNGSTR && b->tt == LUA_TLNGSTR); + return (a == b) || /* same instance or... */ + ((len == b->u.lnglen) && /* equal length and ... */ + (memcmp(getstr(a), getstr(b), len) == 0)); /* equal contents */ +} + + +unsigned int luaS_hash (const char *str, size_t l, unsigned int seed) { + unsigned int h = seed ^ cast(unsigned int, l); + size_t step = (l >> LUAI_HASHLIMIT) + 1; + for (; l >= step; l -= step) + h ^= ((h<<5) + (h>>2) + cast_byte(str[l - 1])); + return h; +} + + +unsigned int luaS_hashlongstr (TString *ts) { + lua_assert(ts->tt == LUA_TLNGSTR); + if (ts->extra == 0) { /* no hash? */ + ts->hash = luaS_hash(getstr(ts), ts->u.lnglen, ts->hash); + ts->extra = 1; /* now it has its hash */ + } + return ts->hash; +} + + +/* +** resizes the string table +*/ +void luaS_resize (lua_State *L, int newsize) { + int i; + stringtable *tb = &G(L)->strt; + if (newsize > tb->size) { /* grow table if needed */ + luaM_reallocvector(L, tb->hash, tb->size, newsize, TString *); + for (i = tb->size; i < newsize; i++) + tb->hash[i] = NULL; + } + for (i = 0; i < tb->size; i++) { /* rehash */ + TString *p = tb->hash[i]; + tb->hash[i] = NULL; + while (p) { /* for each node in the list */ + TString *hnext = p->u.hnext; /* save next */ + unsigned int h = lmod(p->hash, newsize); /* new position */ + p->u.hnext = tb->hash[h]; /* chain it */ + tb->hash[h] = p; + p = hnext; + } + } + if (newsize < tb->size) { /* shrink table if needed */ + /* vanishing slice should be empty */ + lua_assert(tb->hash[newsize] == NULL && tb->hash[tb->size - 1] == NULL); + luaM_reallocvector(L, tb->hash, tb->size, newsize, TString *); + } + tb->size = newsize; +} + + +/* +** Clear API string cache. (Entries cannot be empty, so fill them with +** a non-collectable string.) +*/ +void luaS_clearcache (global_State *g) { + int i, j; + for (i = 0; i < STRCACHE_N; i++) + for (j = 0; j < STRCACHE_M; j++) { + if (iswhite(g->strcache[i][j])) /* will entry be collected? */ + g->strcache[i][j] = g->memerrmsg; /* replace it with something fixed */ + } +} + + +/* +** Initialize the string table and the string cache +*/ +void luaS_init (lua_State *L) { + global_State *g = G(L); + int i, j; + luaS_resize(L, MINSTRTABSIZE); /* initial size of string table */ + /* pre-create memory-error message */ + g->memerrmsg = luaS_newliteral(L, MEMERRMSG); + luaC_fix(L, obj2gco(g->memerrmsg)); /* it should never be collected */ + for (i = 0; i < STRCACHE_N; i++) /* fill cache with valid strings */ + for (j = 0; j < STRCACHE_M; j++) + g->strcache[i][j] = g->memerrmsg; +} + + + +/* +** creates a new string object +*/ +static TString *createstrobj (lua_State *L, size_t l, int tag, unsigned int h) { + TString *ts; + GCObject *o; + size_t totalsize; /* total size of TString object */ + totalsize = sizelstring(l); + o = luaC_newobj(L, tag, totalsize); + ts = gco2ts(o); + ts->hash = h; + ts->extra = 0; + getstr(ts)[l] = '\0'; /* ending 0 */ + return ts; +} + + +TString *luaS_createlngstrobj (lua_State *L, size_t l) { + TString *ts = createstrobj(L, l, LUA_TLNGSTR, G(L)->seed); + ts->u.lnglen = l; + return ts; +} + + +void luaS_remove (lua_State *L, TString *ts) { + stringtable *tb = &G(L)->strt; + TString **p = &tb->hash[lmod(ts->hash, tb->size)]; + while (*p != ts) /* find previous element */ + p = &(*p)->u.hnext; + *p = (*p)->u.hnext; /* remove element from its list */ + tb->nuse--; +} + + +/* +** checks whether short string exists and reuses it or creates a new one +*/ +static TString *internshrstr (lua_State *L, const char *str, size_t l) { + TString *ts; + global_State *g = G(L); + unsigned int h = luaS_hash(str, l, g->seed); + TString **list = &g->strt.hash[lmod(h, g->strt.size)]; + lua_assert(str != NULL); /* otherwise 'memcmp'/'memcpy' are undefined */ + for (ts = *list; ts != NULL; ts = ts->u.hnext) { + if (l == ts->shrlen && + (memcmp(str, getstr(ts), l * sizeof(char)) == 0)) { + /* found! */ + if (isdead(g, ts)) /* dead (but not collected yet)? */ + changewhite(ts); /* resurrect it */ + return ts; + } + } + if (g->strt.nuse >= g->strt.size && g->strt.size <= MAX_INT/2) { + luaS_resize(L, g->strt.size * 2); + list = &g->strt.hash[lmod(h, g->strt.size)]; /* recompute with new size */ + } + ts = createstrobj(L, l, LUA_TSHRSTR, h); + memcpy(getstr(ts), str, l * sizeof(char)); + ts->shrlen = cast_byte(l); + ts->u.hnext = *list; + *list = ts; + g->strt.nuse++; + return ts; +} + + +/* +** new string (with explicit length) +*/ +TString *luaS_newlstr (lua_State *L, const char *str, size_t l) { + if (l <= LUAI_MAXSHORTLEN) /* short string? */ + return internshrstr(L, str, l); + else { + TString *ts; + if (l >= (MAX_SIZE - sizeof(TString))/sizeof(char)) + luaM_toobig(L); + ts = luaS_createlngstrobj(L, l); + memcpy(getstr(ts), str, l * sizeof(char)); + return ts; + } +} + + +/* +** Create or reuse a zero-terminated string, first checking in the +** cache (using the string address as a key). The cache can contain +** only zero-terminated strings, so it is safe to use 'strcmp' to +** check hits. +*/ +TString *luaS_new (lua_State *L, const char *str) { + unsigned int i = point2uint(str) % STRCACHE_N; /* hash */ + int j; + TString **p = G(L)->strcache[i]; + for (j = 0; j < STRCACHE_M; j++) { + if (strcmp(str, getstr(p[j])) == 0) /* hit? */ + return p[j]; /* that is it */ + } + /* normal route */ + for (j = STRCACHE_M - 1; j > 0; j--) + p[j] = p[j - 1]; /* move out last element */ + /* new element is first in the list */ + p[0] = luaS_newlstr(L, str, strlen(str)); + return p[0]; +} + + +Udata *luaS_newudata (lua_State *L, size_t s) { + Udata *u; + GCObject *o; + if (s > MAX_SIZE - sizeof(Udata)) + luaM_toobig(L); + o = luaC_newobj(L, LUA_TUSERDATA, sizeludata(s)); + u = gco2u(o); + u->len = s; + u->metatable = NULL; + setuservalue(L, u, luaO_nilobject); + return u; +} + diff --git a/3rd/lua-5.3.4/lstring.h b/3rd/lua-5.3.4/lstring.h new file mode 100644 index 0000000..27efd20 --- /dev/null +++ b/3rd/lua-5.3.4/lstring.h @@ -0,0 +1,49 @@ +/* +** $Id: lstring.h,v 1.61 2015/11/03 15:36:01 roberto Exp $ +** String table (keep all strings handled by Lua) +** See Copyright Notice in lua.h +*/ + +#ifndef lstring_h +#define lstring_h + +#include "lgc.h" +#include "lobject.h" +#include "lstate.h" + + +#define sizelstring(l) (sizeof(union UTString) + ((l) + 1) * sizeof(char)) + +#define sizeludata(l) (sizeof(union UUdata) + (l)) +#define sizeudata(u) sizeludata((u)->len) + +#define luaS_newliteral(L, s) (luaS_newlstr(L, "" s, \ + (sizeof(s)/sizeof(char))-1)) + + +/* +** test whether a string is a reserved word +*/ +#define isreserved(s) ((s)->tt == LUA_TSHRSTR && (s)->extra > 0) + + +/* +** equality for short strings, which are always internalized +*/ +#define eqshrstr(a,b) check_exp((a)->tt == LUA_TSHRSTR, (a) == (b)) + + +LUAI_FUNC unsigned int luaS_hash (const char *str, size_t l, unsigned int seed); +LUAI_FUNC unsigned int luaS_hashlongstr (TString *ts); +LUAI_FUNC int luaS_eqlngstr (TString *a, TString *b); +LUAI_FUNC void luaS_resize (lua_State *L, int newsize); +LUAI_FUNC void luaS_clearcache (global_State *g); +LUAI_FUNC void luaS_init (lua_State *L); +LUAI_FUNC void luaS_remove (lua_State *L, TString *ts); +LUAI_FUNC Udata *luaS_newudata (lua_State *L, size_t s); +LUAI_FUNC TString *luaS_newlstr (lua_State *L, const char *str, size_t l); +LUAI_FUNC TString *luaS_new (lua_State *L, const char *str); +LUAI_FUNC TString *luaS_createlngstrobj (lua_State *L, size_t l); + + +#endif diff --git a/3rd/lua-5.3.4/lstrlib.c b/3rd/lua-5.3.4/lstrlib.c new file mode 100644 index 0000000..c7aa755 --- /dev/null +++ b/3rd/lua-5.3.4/lstrlib.c @@ -0,0 +1,1584 @@ +/* +** $Id: lstrlib.c,v 1.254 2016/12/22 13:08:50 roberto Exp $ +** Standard library for string operations and pattern-matching +** See Copyright Notice in lua.h +*/ + +#define lstrlib_c +#define LUA_LIB + +#include "lprefix.h" + + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "lua.h" + +#include "lauxlib.h" +#include "lualib.h" + + +/* +** maximum number of captures that a pattern can do during +** pattern-matching. This limit is arbitrary, but must fit in +** an unsigned char. +*/ +#if !defined(LUA_MAXCAPTURES) +#define LUA_MAXCAPTURES 32 +#endif + + +/* macro to 'unsign' a character */ +#define uchar(c) ((unsigned char)(c)) + + +/* +** Some sizes are better limited to fit in 'int', but must also fit in +** 'size_t'. (We assume that 'lua_Integer' cannot be smaller than 'int'.) +*/ +#define MAX_SIZET ((size_t)(~(size_t)0)) + +#define MAXSIZE \ + (sizeof(size_t) < sizeof(int) ? MAX_SIZET : (size_t)(INT_MAX)) + + + + +static int str_len (lua_State *L) { + size_t l; + luaL_checklstring(L, 1, &l); + lua_pushinteger(L, (lua_Integer)l); + return 1; +} + + +/* translate a relative string position: negative means back from end */ +static lua_Integer posrelat (lua_Integer pos, size_t len) { + if (pos >= 0) return pos; + else if (0u - (size_t)pos > len) return 0; + else return (lua_Integer)len + pos + 1; +} + + +static int str_sub (lua_State *L) { + size_t l; + const char *s = luaL_checklstring(L, 1, &l); + lua_Integer start = posrelat(luaL_checkinteger(L, 2), l); + lua_Integer end = posrelat(luaL_optinteger(L, 3, -1), l); + if (start < 1) start = 1; + if (end > (lua_Integer)l) end = l; + if (start <= end) + lua_pushlstring(L, s + start - 1, (size_t)(end - start) + 1); + else lua_pushliteral(L, ""); + return 1; +} + + +static int str_reverse (lua_State *L) { + size_t l, i; + luaL_Buffer b; + const char *s = luaL_checklstring(L, 1, &l); + char *p = luaL_buffinitsize(L, &b, l); + for (i = 0; i < l; i++) + p[i] = s[l - i - 1]; + luaL_pushresultsize(&b, l); + return 1; +} + + +static int str_lower (lua_State *L) { + size_t l; + size_t i; + luaL_Buffer b; + const char *s = luaL_checklstring(L, 1, &l); + char *p = luaL_buffinitsize(L, &b, l); + for (i=0; i MAXSIZE / n) /* may overflow? */ + return luaL_error(L, "resulting string too large"); + else { + size_t totallen = (size_t)n * l + (size_t)(n - 1) * lsep; + luaL_Buffer b; + char *p = luaL_buffinitsize(L, &b, totallen); + while (n-- > 1) { /* first n-1 copies (followed by separator) */ + memcpy(p, s, l * sizeof(char)); p += l; + if (lsep > 0) { /* empty 'memcpy' is not that cheap */ + memcpy(p, sep, lsep * sizeof(char)); + p += lsep; + } + } + memcpy(p, s, l * sizeof(char)); /* last copy (not followed by separator) */ + luaL_pushresultsize(&b, totallen); + } + return 1; +} + + +static int str_byte (lua_State *L) { + size_t l; + const char *s = luaL_checklstring(L, 1, &l); + lua_Integer posi = posrelat(luaL_optinteger(L, 2, 1), l); + lua_Integer pose = posrelat(luaL_optinteger(L, 3, posi), l); + int n, i; + if (posi < 1) posi = 1; + if (pose > (lua_Integer)l) pose = l; + if (posi > pose) return 0; /* empty interval; return no values */ + if (pose - posi >= INT_MAX) /* arithmetic overflow? */ + return luaL_error(L, "string slice too long"); + n = (int)(pose - posi) + 1; + luaL_checkstack(L, n, "string slice too long"); + for (i=0; i= ms->level || ms->capture[l].len == CAP_UNFINISHED) + return luaL_error(ms->L, "invalid capture index %%%d", l + 1); + return l; +} + + +static int capture_to_close (MatchState *ms) { + int level = ms->level; + for (level--; level>=0; level--) + if (ms->capture[level].len == CAP_UNFINISHED) return level; + return luaL_error(ms->L, "invalid pattern capture"); +} + + +static const char *classend (MatchState *ms, const char *p) { + switch (*p++) { + case L_ESC: { + if (p == ms->p_end) + luaL_error(ms->L, "malformed pattern (ends with '%%')"); + return p+1; + } + case '[': { + if (*p == '^') p++; + do { /* look for a ']' */ + if (p == ms->p_end) + luaL_error(ms->L, "malformed pattern (missing ']')"); + if (*(p++) == L_ESC && p < ms->p_end) + p++; /* skip escapes (e.g. '%]') */ + } while (*p != ']'); + return p+1; + } + default: { + return p; + } + } +} + + +static int match_class (int c, int cl) { + int res; + switch (tolower(cl)) { + case 'a' : res = isalpha(c); break; + case 'c' : res = iscntrl(c); break; + case 'd' : res = isdigit(c); break; + case 'g' : res = isgraph(c); break; + case 'l' : res = islower(c); break; + case 'p' : res = ispunct(c); break; + case 's' : res = isspace(c); break; + case 'u' : res = isupper(c); break; + case 'w' : res = isalnum(c); break; + case 'x' : res = isxdigit(c); break; + case 'z' : res = (c == 0); break; /* deprecated option */ + default: return (cl == c); + } + return (islower(cl) ? res : !res); +} + + +static int matchbracketclass (int c, const char *p, const char *ec) { + int sig = 1; + if (*(p+1) == '^') { + sig = 0; + p++; /* skip the '^' */ + } + while (++p < ec) { + if (*p == L_ESC) { + p++; + if (match_class(c, uchar(*p))) + return sig; + } + else if ((*(p+1) == '-') && (p+2 < ec)) { + p+=2; + if (uchar(*(p-2)) <= c && c <= uchar(*p)) + return sig; + } + else if (uchar(*p) == c) return sig; + } + return !sig; +} + + +static int singlematch (MatchState *ms, const char *s, const char *p, + const char *ep) { + if (s >= ms->src_end) + return 0; + else { + int c = uchar(*s); + switch (*p) { + case '.': return 1; /* matches any char */ + case L_ESC: return match_class(c, uchar(*(p+1))); + case '[': return matchbracketclass(c, p, ep-1); + default: return (uchar(*p) == c); + } + } +} + + +static const char *matchbalance (MatchState *ms, const char *s, + const char *p) { + if (p >= ms->p_end - 1) + luaL_error(ms->L, "malformed pattern (missing arguments to '%%b')"); + if (*s != *p) return NULL; + else { + int b = *p; + int e = *(p+1); + int cont = 1; + while (++s < ms->src_end) { + if (*s == e) { + if (--cont == 0) return s+1; + } + else if (*s == b) cont++; + } + } + return NULL; /* string ends out of balance */ +} + + +static const char *max_expand (MatchState *ms, const char *s, + const char *p, const char *ep) { + ptrdiff_t i = 0; /* counts maximum expand for item */ + while (singlematch(ms, s + i, p, ep)) + i++; + /* keeps trying to match with the maximum repetitions */ + while (i>=0) { + const char *res = match(ms, (s+i), ep+1); + if (res) return res; + i--; /* else didn't match; reduce 1 repetition to try again */ + } + return NULL; +} + + +static const char *min_expand (MatchState *ms, const char *s, + const char *p, const char *ep) { + for (;;) { + const char *res = match(ms, s, ep+1); + if (res != NULL) + return res; + else if (singlematch(ms, s, p, ep)) + s++; /* try with one more repetition */ + else return NULL; + } +} + + +static const char *start_capture (MatchState *ms, const char *s, + const char *p, int what) { + const char *res; + int level = ms->level; + if (level >= LUA_MAXCAPTURES) luaL_error(ms->L, "too many captures"); + ms->capture[level].init = s; + ms->capture[level].len = what; + ms->level = level+1; + if ((res=match(ms, s, p)) == NULL) /* match failed? */ + ms->level--; /* undo capture */ + return res; +} + + +static const char *end_capture (MatchState *ms, const char *s, + const char *p) { + int l = capture_to_close(ms); + const char *res; + ms->capture[l].len = s - ms->capture[l].init; /* close capture */ + if ((res = match(ms, s, p)) == NULL) /* match failed? */ + ms->capture[l].len = CAP_UNFINISHED; /* undo capture */ + return res; +} + + +static const char *match_capture (MatchState *ms, const char *s, int l) { + size_t len; + l = check_capture(ms, l); + len = ms->capture[l].len; + if ((size_t)(ms->src_end-s) >= len && + memcmp(ms->capture[l].init, s, len) == 0) + return s+len; + else return NULL; +} + + +static const char *match (MatchState *ms, const char *s, const char *p) { + if (ms->matchdepth-- == 0) + luaL_error(ms->L, "pattern too complex"); + init: /* using goto's to optimize tail recursion */ + if (p != ms->p_end) { /* end of pattern? */ + switch (*p) { + case '(': { /* start capture */ + if (*(p + 1) == ')') /* position capture? */ + s = start_capture(ms, s, p + 2, CAP_POSITION); + else + s = start_capture(ms, s, p + 1, CAP_UNFINISHED); + break; + } + case ')': { /* end capture */ + s = end_capture(ms, s, p + 1); + break; + } + case '$': { + if ((p + 1) != ms->p_end) /* is the '$' the last char in pattern? */ + goto dflt; /* no; go to default */ + s = (s == ms->src_end) ? s : NULL; /* check end of string */ + break; + } + case L_ESC: { /* escaped sequences not in the format class[*+?-]? */ + switch (*(p + 1)) { + case 'b': { /* balanced string? */ + s = matchbalance(ms, s, p + 2); + if (s != NULL) { + p += 4; goto init; /* return match(ms, s, p + 4); */ + } /* else fail (s == NULL) */ + break; + } + case 'f': { /* frontier? */ + const char *ep; char previous; + p += 2; + if (*p != '[') + luaL_error(ms->L, "missing '[' after '%%f' in pattern"); + ep = classend(ms, p); /* points to what is next */ + previous = (s == ms->src_init) ? '\0' : *(s - 1); + if (!matchbracketclass(uchar(previous), p, ep - 1) && + matchbracketclass(uchar(*s), p, ep - 1)) { + p = ep; goto init; /* return match(ms, s, ep); */ + } + s = NULL; /* match failed */ + break; + } + case '0': case '1': case '2': case '3': + case '4': case '5': case '6': case '7': + case '8': case '9': { /* capture results (%0-%9)? */ + s = match_capture(ms, s, uchar(*(p + 1))); + if (s != NULL) { + p += 2; goto init; /* return match(ms, s, p + 2) */ + } + break; + } + default: goto dflt; + } + break; + } + default: dflt: { /* pattern class plus optional suffix */ + const char *ep = classend(ms, p); /* points to optional suffix */ + /* does not match at least once? */ + if (!singlematch(ms, s, p, ep)) { + if (*ep == '*' || *ep == '?' || *ep == '-') { /* accept empty? */ + p = ep + 1; goto init; /* return match(ms, s, ep + 1); */ + } + else /* '+' or no suffix */ + s = NULL; /* fail */ + } + else { /* matched once */ + switch (*ep) { /* handle optional suffix */ + case '?': { /* optional */ + const char *res; + if ((res = match(ms, s + 1, ep + 1)) != NULL) + s = res; + else { + p = ep + 1; goto init; /* else return match(ms, s, ep + 1); */ + } + break; + } + case '+': /* 1 or more repetitions */ + s++; /* 1 match already done */ + /* FALLTHROUGH */ + case '*': /* 0 or more repetitions */ + s = max_expand(ms, s, p, ep); + break; + case '-': /* 0 or more repetitions (minimum) */ + s = min_expand(ms, s, p, ep); + break; + default: /* no suffix */ + s++; p = ep; goto init; /* return match(ms, s + 1, ep); */ + } + } + break; + } + } + } + ms->matchdepth++; + return s; +} + + + +static const char *lmemfind (const char *s1, size_t l1, + const char *s2, size_t l2) { + if (l2 == 0) return s1; /* empty strings are everywhere */ + else if (l2 > l1) return NULL; /* avoids a negative 'l1' */ + else { + const char *init; /* to search for a '*s2' inside 's1' */ + l2--; /* 1st char will be checked by 'memchr' */ + l1 = l1-l2; /* 's2' cannot be found after that */ + while (l1 > 0 && (init = (const char *)memchr(s1, *s2, l1)) != NULL) { + init++; /* 1st char is already checked */ + if (memcmp(init, s2+1, l2) == 0) + return init-1; + else { /* correct 'l1' and 's1' to try again */ + l1 -= init-s1; + s1 = init; + } + } + return NULL; /* not found */ + } +} + + +static void push_onecapture (MatchState *ms, int i, const char *s, + const char *e) { + if (i >= ms->level) { + if (i == 0) /* ms->level == 0, too */ + lua_pushlstring(ms->L, s, e - s); /* add whole match */ + else + luaL_error(ms->L, "invalid capture index %%%d", i + 1); + } + else { + ptrdiff_t l = ms->capture[i].len; + if (l == CAP_UNFINISHED) luaL_error(ms->L, "unfinished capture"); + if (l == CAP_POSITION) + lua_pushinteger(ms->L, (ms->capture[i].init - ms->src_init) + 1); + else + lua_pushlstring(ms->L, ms->capture[i].init, l); + } +} + + +static int push_captures (MatchState *ms, const char *s, const char *e) { + int i; + int nlevels = (ms->level == 0 && s) ? 1 : ms->level; + luaL_checkstack(ms->L, nlevels, "too many captures"); + for (i = 0; i < nlevels; i++) + push_onecapture(ms, i, s, e); + return nlevels; /* number of strings pushed */ +} + + +/* check whether pattern has no special characters */ +static int nospecials (const char *p, size_t l) { + size_t upto = 0; + do { + if (strpbrk(p + upto, SPECIALS)) + return 0; /* pattern has a special character */ + upto += strlen(p + upto) + 1; /* may have more after \0 */ + } while (upto <= l); + return 1; /* no special chars found */ +} + + +static void prepstate (MatchState *ms, lua_State *L, + const char *s, size_t ls, const char *p, size_t lp) { + ms->L = L; + ms->matchdepth = MAXCCALLS; + ms->src_init = s; + ms->src_end = s + ls; + ms->p_end = p + lp; +} + + +static void reprepstate (MatchState *ms) { + ms->level = 0; + lua_assert(ms->matchdepth == MAXCCALLS); +} + + +static int str_find_aux (lua_State *L, int find) { + size_t ls, lp; + const char *s = luaL_checklstring(L, 1, &ls); + const char *p = luaL_checklstring(L, 2, &lp); + lua_Integer init = posrelat(luaL_optinteger(L, 3, 1), ls); + if (init < 1) init = 1; + else if (init > (lua_Integer)ls + 1) { /* start after string's end? */ + lua_pushnil(L); /* cannot find anything */ + return 1; + } + /* explicit request or no special characters? */ + if (find && (lua_toboolean(L, 4) || nospecials(p, lp))) { + /* do a plain search */ + const char *s2 = lmemfind(s + init - 1, ls - (size_t)init + 1, p, lp); + if (s2) { + lua_pushinteger(L, (s2 - s) + 1); + lua_pushinteger(L, (s2 - s) + lp); + return 2; + } + } + else { + MatchState ms; + const char *s1 = s + init - 1; + int anchor = (*p == '^'); + if (anchor) { + p++; lp--; /* skip anchor character */ + } + prepstate(&ms, L, s, ls, p, lp); + do { + const char *res; + reprepstate(&ms); + if ((res=match(&ms, s1, p)) != NULL) { + if (find) { + lua_pushinteger(L, (s1 - s) + 1); /* start */ + lua_pushinteger(L, res - s); /* end */ + return push_captures(&ms, NULL, 0) + 2; + } + else + return push_captures(&ms, s1, res); + } + } while (s1++ < ms.src_end && !anchor); + } + lua_pushnil(L); /* not found */ + return 1; +} + + +static int str_find (lua_State *L) { + return str_find_aux(L, 1); +} + + +static int str_match (lua_State *L) { + return str_find_aux(L, 0); +} + + +/* state for 'gmatch' */ +typedef struct GMatchState { + const char *src; /* current position */ + const char *p; /* pattern */ + const char *lastmatch; /* end of last match */ + MatchState ms; /* match state */ +} GMatchState; + + +static int gmatch_aux (lua_State *L) { + GMatchState *gm = (GMatchState *)lua_touserdata(L, lua_upvalueindex(3)); + const char *src; + gm->ms.L = L; + for (src = gm->src; src <= gm->ms.src_end; src++) { + const char *e; + reprepstate(&gm->ms); + if ((e = match(&gm->ms, src, gm->p)) != NULL && e != gm->lastmatch) { + gm->src = gm->lastmatch = e; + return push_captures(&gm->ms, src, e); + } + } + return 0; /* not found */ +} + + +static int gmatch (lua_State *L) { + size_t ls, lp; + const char *s = luaL_checklstring(L, 1, &ls); + const char *p = luaL_checklstring(L, 2, &lp); + GMatchState *gm; + lua_settop(L, 2); /* keep them on closure to avoid being collected */ + gm = (GMatchState *)lua_newuserdata(L, sizeof(GMatchState)); + prepstate(&gm->ms, L, s, ls, p, lp); + gm->src = s; gm->p = p; gm->lastmatch = NULL; + lua_pushcclosure(L, gmatch_aux, 3); + return 1; +} + + +static void add_s (MatchState *ms, luaL_Buffer *b, const char *s, + const char *e) { + size_t l, i; + lua_State *L = ms->L; + const char *news = lua_tolstring(L, 3, &l); + for (i = 0; i < l; i++) { + if (news[i] != L_ESC) + luaL_addchar(b, news[i]); + else { + i++; /* skip ESC */ + if (!isdigit(uchar(news[i]))) { + if (news[i] != L_ESC) + luaL_error(L, "invalid use of '%c' in replacement string", L_ESC); + luaL_addchar(b, news[i]); + } + else if (news[i] == '0') + luaL_addlstring(b, s, e - s); + else { + push_onecapture(ms, news[i] - '1', s, e); + luaL_tolstring(L, -1, NULL); /* if number, convert it to string */ + lua_remove(L, -2); /* remove original value */ + luaL_addvalue(b); /* add capture to accumulated result */ + } + } + } +} + + +static void add_value (MatchState *ms, luaL_Buffer *b, const char *s, + const char *e, int tr) { + lua_State *L = ms->L; + switch (tr) { + case LUA_TFUNCTION: { + int n; + lua_pushvalue(L, 3); + n = push_captures(ms, s, e); + lua_call(L, n, 1); + break; + } + case LUA_TTABLE: { + push_onecapture(ms, 0, s, e); + lua_gettable(L, 3); + break; + } + default: { /* LUA_TNUMBER or LUA_TSTRING */ + add_s(ms, b, s, e); + return; + } + } + if (!lua_toboolean(L, -1)) { /* nil or false? */ + lua_pop(L, 1); + lua_pushlstring(L, s, e - s); /* keep original text */ + } + else if (!lua_isstring(L, -1)) + luaL_error(L, "invalid replacement value (a %s)", luaL_typename(L, -1)); + luaL_addvalue(b); /* add result to accumulator */ +} + + +static int str_gsub (lua_State *L) { + size_t srcl, lp; + const char *src = luaL_checklstring(L, 1, &srcl); /* subject */ + const char *p = luaL_checklstring(L, 2, &lp); /* pattern */ + const char *lastmatch = NULL; /* end of last match */ + int tr = lua_type(L, 3); /* replacement type */ + lua_Integer max_s = luaL_optinteger(L, 4, srcl + 1); /* max replacements */ + int anchor = (*p == '^'); + lua_Integer n = 0; /* replacement count */ + MatchState ms; + luaL_Buffer b; + luaL_argcheck(L, tr == LUA_TNUMBER || tr == LUA_TSTRING || + tr == LUA_TFUNCTION || tr == LUA_TTABLE, 3, + "string/function/table expected"); + luaL_buffinit(L, &b); + if (anchor) { + p++; lp--; /* skip anchor character */ + } + prepstate(&ms, L, src, srcl, p, lp); + while (n < max_s) { + const char *e; + reprepstate(&ms); /* (re)prepare state for new match */ + if ((e = match(&ms, src, p)) != NULL && e != lastmatch) { /* match? */ + n++; + add_value(&ms, &b, src, e, tr); /* add replacement to buffer */ + src = lastmatch = e; + } + else if (src < ms.src_end) /* otherwise, skip one character */ + luaL_addchar(&b, *src++); + else break; /* end of subject */ + if (anchor) break; + } + luaL_addlstring(&b, src, ms.src_end-src); + luaL_pushresult(&b); + lua_pushinteger(L, n); /* number of substitutions */ + return 2; +} + +/* }====================================================== */ + + + +/* +** {====================================================== +** STRING FORMAT +** ======================================================= +*/ + +#if !defined(lua_number2strx) /* { */ + +/* +** Hexadecimal floating-point formatter +*/ + +#include + +#define SIZELENMOD (sizeof(LUA_NUMBER_FRMLEN)/sizeof(char)) + + +/* +** Number of bits that goes into the first digit. It can be any value +** between 1 and 4; the following definition tries to align the number +** to nibble boundaries by making what is left after that first digit a +** multiple of 4. +*/ +#define L_NBFD ((l_mathlim(MANT_DIG) - 1)%4 + 1) + + +/* +** Add integer part of 'x' to buffer and return new 'x' +*/ +static lua_Number adddigit (char *buff, int n, lua_Number x) { + lua_Number dd = l_mathop(floor)(x); /* get integer part from 'x' */ + int d = (int)dd; + buff[n] = (d < 10 ? d + '0' : d - 10 + 'a'); /* add to buffer */ + return x - dd; /* return what is left */ +} + + +static int num2straux (char *buff, int sz, lua_Number x) { + /* if 'inf' or 'NaN', format it like '%g' */ + if (x != x || x == (lua_Number)HUGE_VAL || x == -(lua_Number)HUGE_VAL) + return l_sprintf(buff, sz, LUA_NUMBER_FMT, (LUAI_UACNUMBER)x); + else if (x == 0) { /* can be -0... */ + /* create "0" or "-0" followed by exponent */ + return l_sprintf(buff, sz, LUA_NUMBER_FMT "x0p+0", (LUAI_UACNUMBER)x); + } + else { + int e; + lua_Number m = l_mathop(frexp)(x, &e); /* 'x' fraction and exponent */ + int n = 0; /* character count */ + if (m < 0) { /* is number negative? */ + buff[n++] = '-'; /* add signal */ + m = -m; /* make it positive */ + } + buff[n++] = '0'; buff[n++] = 'x'; /* add "0x" */ + m = adddigit(buff, n++, m * (1 << L_NBFD)); /* add first digit */ + e -= L_NBFD; /* this digit goes before the radix point */ + if (m > 0) { /* more digits? */ + buff[n++] = lua_getlocaledecpoint(); /* add radix point */ + do { /* add as many digits as needed */ + m = adddigit(buff, n++, m * 16); + } while (m > 0); + } + n += l_sprintf(buff + n, sz - n, "p%+d", e); /* add exponent */ + lua_assert(n < sz); + return n; + } +} + + +static int lua_number2strx (lua_State *L, char *buff, int sz, + const char *fmt, lua_Number x) { + int n = num2straux(buff, sz, x); + if (fmt[SIZELENMOD] == 'A') { + int i; + for (i = 0; i < n; i++) + buff[i] = toupper(uchar(buff[i])); + } + else if (fmt[SIZELENMOD] != 'a') + luaL_error(L, "modifiers for format '%%a'/'%%A' not implemented"); + return n; +} + +#endif /* } */ + + +/* +** Maximum size of each formatted item. This maximum size is produced +** by format('%.99f', -maxfloat), and is equal to 99 + 3 ('-', '.', +** and '\0') + number of decimal digits to represent maxfloat (which +** is maximum exponent + 1). (99+3+1 then rounded to 120 for "extra +** expenses", such as locale-dependent stuff) +*/ +#define MAX_ITEM (120 + l_mathlim(MAX_10_EXP)) + + +/* valid flags in a format specification */ +#define FLAGS "-+ #0" + +/* +** maximum size of each format specification (such as "%-099.99d") +*/ +#define MAX_FORMAT 32 + + +static void addquoted (luaL_Buffer *b, const char *s, size_t len) { + luaL_addchar(b, '"'); + while (len--) { + if (*s == '"' || *s == '\\' || *s == '\n') { + luaL_addchar(b, '\\'); + luaL_addchar(b, *s); + } + else if (iscntrl(uchar(*s))) { + char buff[10]; + if (!isdigit(uchar(*(s+1)))) + l_sprintf(buff, sizeof(buff), "\\%d", (int)uchar(*s)); + else + l_sprintf(buff, sizeof(buff), "\\%03d", (int)uchar(*s)); + luaL_addstring(b, buff); + } + else + luaL_addchar(b, *s); + s++; + } + luaL_addchar(b, '"'); +} + + +/* +** Ensures the 'buff' string uses a dot as the radix character. +*/ +static void checkdp (char *buff, int nb) { + if (memchr(buff, '.', nb) == NULL) { /* no dot? */ + char point = lua_getlocaledecpoint(); /* try locale point */ + char *ppoint = (char *)memchr(buff, point, nb); + if (ppoint) *ppoint = '.'; /* change it to a dot */ + } +} + + +static void addliteral (lua_State *L, luaL_Buffer *b, int arg) { + switch (lua_type(L, arg)) { + case LUA_TSTRING: { + size_t len; + const char *s = lua_tolstring(L, arg, &len); + addquoted(b, s, len); + break; + } + case LUA_TNUMBER: { + char *buff = luaL_prepbuffsize(b, MAX_ITEM); + int nb; + if (!lua_isinteger(L, arg)) { /* float? */ + lua_Number n = lua_tonumber(L, arg); /* write as hexa ('%a') */ + nb = lua_number2strx(L, buff, MAX_ITEM, "%" LUA_NUMBER_FRMLEN "a", n); + checkdp(buff, nb); /* ensure it uses a dot */ + } + else { /* integers */ + lua_Integer n = lua_tointeger(L, arg); + const char *format = (n == LUA_MININTEGER) /* corner case? */ + ? "0x%" LUA_INTEGER_FRMLEN "x" /* use hexa */ + : LUA_INTEGER_FMT; /* else use default format */ + nb = l_sprintf(buff, MAX_ITEM, format, (LUAI_UACINT)n); + } + luaL_addsize(b, nb); + break; + } + case LUA_TNIL: case LUA_TBOOLEAN: { + luaL_tolstring(L, arg, NULL); + luaL_addvalue(b); + break; + } + default: { + luaL_argerror(L, arg, "value has no literal form"); + } + } +} + + +static const char *scanformat (lua_State *L, const char *strfrmt, char *form) { + const char *p = strfrmt; + while (*p != '\0' && strchr(FLAGS, *p) != NULL) p++; /* skip flags */ + if ((size_t)(p - strfrmt) >= sizeof(FLAGS)/sizeof(char)) + luaL_error(L, "invalid format (repeated flags)"); + if (isdigit(uchar(*p))) p++; /* skip width */ + if (isdigit(uchar(*p))) p++; /* (2 digits at most) */ + if (*p == '.') { + p++; + if (isdigit(uchar(*p))) p++; /* skip precision */ + if (isdigit(uchar(*p))) p++; /* (2 digits at most) */ + } + if (isdigit(uchar(*p))) + luaL_error(L, "invalid format (width or precision too long)"); + *(form++) = '%'; + memcpy(form, strfrmt, ((p - strfrmt) + 1) * sizeof(char)); + form += (p - strfrmt) + 1; + *form = '\0'; + return p; +} + + +/* +** add length modifier into formats +*/ +static void addlenmod (char *form, const char *lenmod) { + size_t l = strlen(form); + size_t lm = strlen(lenmod); + char spec = form[l - 1]; + strcpy(form + l - 1, lenmod); + form[l + lm - 1] = spec; + form[l + lm] = '\0'; +} + + +static int str_format (lua_State *L) { + int top = lua_gettop(L); + int arg = 1; + size_t sfl; + const char *strfrmt = luaL_checklstring(L, arg, &sfl); + const char *strfrmt_end = strfrmt+sfl; + luaL_Buffer b; + luaL_buffinit(L, &b); + while (strfrmt < strfrmt_end) { + if (*strfrmt != L_ESC) + luaL_addchar(&b, *strfrmt++); + else if (*++strfrmt == L_ESC) + luaL_addchar(&b, *strfrmt++); /* %% */ + else { /* format item */ + char form[MAX_FORMAT]; /* to store the format ('%...') */ + char *buff = luaL_prepbuffsize(&b, MAX_ITEM); /* to put formatted item */ + int nb = 0; /* number of bytes in added item */ + if (++arg > top) + luaL_argerror(L, arg, "no value"); + strfrmt = scanformat(L, strfrmt, form); + switch (*strfrmt++) { + case 'c': { + nb = l_sprintf(buff, MAX_ITEM, form, (int)luaL_checkinteger(L, arg)); + break; + } + case 'd': case 'i': + case 'o': case 'u': case 'x': case 'X': { + lua_Integer n = luaL_checkinteger(L, arg); + addlenmod(form, LUA_INTEGER_FRMLEN); + nb = l_sprintf(buff, MAX_ITEM, form, (LUAI_UACINT)n); + break; + } + case 'a': case 'A': + addlenmod(form, LUA_NUMBER_FRMLEN); + nb = lua_number2strx(L, buff, MAX_ITEM, form, + luaL_checknumber(L, arg)); + break; + case 'e': case 'E': case 'f': + case 'g': case 'G': { + lua_Number n = luaL_checknumber(L, arg); + addlenmod(form, LUA_NUMBER_FRMLEN); + nb = l_sprintf(buff, MAX_ITEM, form, (LUAI_UACNUMBER)n); + break; + } + case 'q': { + addliteral(L, &b, arg); + break; + } + case 's': { + size_t l; + const char *s = luaL_tolstring(L, arg, &l); + if (form[2] == '\0') /* no modifiers? */ + luaL_addvalue(&b); /* keep entire string */ + else { + luaL_argcheck(L, l == strlen(s), arg, "string contains zeros"); + if (!strchr(form, '.') && l >= 100) { + /* no precision and string is too long to be formatted */ + luaL_addvalue(&b); /* keep entire string */ + } + else { /* format the string into 'buff' */ + nb = l_sprintf(buff, MAX_ITEM, form, s); + lua_pop(L, 1); /* remove result from 'luaL_tolstring' */ + } + } + break; + } + default: { /* also treat cases 'pnLlh' */ + return luaL_error(L, "invalid option '%%%c' to 'format'", + *(strfrmt - 1)); + } + } + lua_assert(nb < MAX_ITEM); + luaL_addsize(&b, nb); + } + } + luaL_pushresult(&b); + return 1; +} + +/* }====================================================== */ + + +/* +** {====================================================== +** PACK/UNPACK +** ======================================================= +*/ + + +/* value used for padding */ +#if !defined(LUAL_PACKPADBYTE) +#define LUAL_PACKPADBYTE 0x00 +#endif + +/* maximum size for the binary representation of an integer */ +#define MAXINTSIZE 16 + +/* number of bits in a character */ +#define NB CHAR_BIT + +/* mask for one character (NB 1's) */ +#define MC ((1 << NB) - 1) + +/* size of a lua_Integer */ +#define SZINT ((int)sizeof(lua_Integer)) + + +/* dummy union to get native endianness */ +static const union { + int dummy; + char little; /* true iff machine is little endian */ +} nativeendian = {1}; + + +/* dummy structure to get native alignment requirements */ +struct cD { + char c; + union { double d; void *p; lua_Integer i; lua_Number n; } u; +}; + +#define MAXALIGN (offsetof(struct cD, u)) + + +/* +** Union for serializing floats +*/ +typedef union Ftypes { + float f; + double d; + lua_Number n; + char buff[5 * sizeof(lua_Number)]; /* enough for any float type */ +} Ftypes; + + +/* +** information to pack/unpack stuff +*/ +typedef struct Header { + lua_State *L; + int islittle; + int maxalign; +} Header; + + +/* +** options for pack/unpack +*/ +typedef enum KOption { + Kint, /* signed integers */ + Kuint, /* unsigned integers */ + Kfloat, /* floating-point numbers */ + Kchar, /* fixed-length strings */ + Kstring, /* strings with prefixed length */ + Kzstr, /* zero-terminated strings */ + Kpadding, /* padding */ + Kpaddalign, /* padding for alignment */ + Knop /* no-op (configuration or spaces) */ +} KOption; + + +/* +** Read an integer numeral from string 'fmt' or return 'df' if +** there is no numeral +*/ +static int digit (int c) { return '0' <= c && c <= '9'; } + +static int getnum (const char **fmt, int df) { + if (!digit(**fmt)) /* no number? */ + return df; /* return default value */ + else { + int a = 0; + do { + a = a*10 + (*((*fmt)++) - '0'); + } while (digit(**fmt) && a <= ((int)MAXSIZE - 9)/10); + return a; + } +} + + +/* +** Read an integer numeral and raises an error if it is larger +** than the maximum size for integers. +*/ +static int getnumlimit (Header *h, const char **fmt, int df) { + int sz = getnum(fmt, df); + if (sz > MAXINTSIZE || sz <= 0) + luaL_error(h->L, "integral size (%d) out of limits [1,%d]", + sz, MAXINTSIZE); + return sz; +} + + +/* +** Initialize Header +*/ +static void initheader (lua_State *L, Header *h) { + h->L = L; + h->islittle = nativeendian.little; + h->maxalign = 1; +} + + +/* +** Read and classify next option. 'size' is filled with option's size. +*/ +static KOption getoption (Header *h, const char **fmt, int *size) { + int opt = *((*fmt)++); + *size = 0; /* default */ + switch (opt) { + case 'b': *size = sizeof(char); return Kint; + case 'B': *size = sizeof(char); return Kuint; + case 'h': *size = sizeof(short); return Kint; + case 'H': *size = sizeof(short); return Kuint; + case 'l': *size = sizeof(long); return Kint; + case 'L': *size = sizeof(long); return Kuint; + case 'j': *size = sizeof(lua_Integer); return Kint; + case 'J': *size = sizeof(lua_Integer); return Kuint; + case 'T': *size = sizeof(size_t); return Kuint; + case 'f': *size = sizeof(float); return Kfloat; + case 'd': *size = sizeof(double); return Kfloat; + case 'n': *size = sizeof(lua_Number); return Kfloat; + case 'i': *size = getnumlimit(h, fmt, sizeof(int)); return Kint; + case 'I': *size = getnumlimit(h, fmt, sizeof(int)); return Kuint; + case 's': *size = getnumlimit(h, fmt, sizeof(size_t)); return Kstring; + case 'c': + *size = getnum(fmt, -1); + if (*size == -1) + luaL_error(h->L, "missing size for format option 'c'"); + return Kchar; + case 'z': return Kzstr; + case 'x': *size = 1; return Kpadding; + case 'X': return Kpaddalign; + case ' ': break; + case '<': h->islittle = 1; break; + case '>': h->islittle = 0; break; + case '=': h->islittle = nativeendian.little; break; + case '!': h->maxalign = getnumlimit(h, fmt, MAXALIGN); break; + default: luaL_error(h->L, "invalid format option '%c'", opt); + } + return Knop; +} + + +/* +** Read, classify, and fill other details about the next option. +** 'psize' is filled with option's size, 'notoalign' with its +** alignment requirements. +** Local variable 'size' gets the size to be aligned. (Kpadal option +** always gets its full alignment, other options are limited by +** the maximum alignment ('maxalign'). Kchar option needs no alignment +** despite its size. +*/ +static KOption getdetails (Header *h, size_t totalsize, + const char **fmt, int *psize, int *ntoalign) { + KOption opt = getoption(h, fmt, psize); + int align = *psize; /* usually, alignment follows size */ + if (opt == Kpaddalign) { /* 'X' gets alignment from following option */ + if (**fmt == '\0' || getoption(h, fmt, &align) == Kchar || align == 0) + luaL_argerror(h->L, 1, "invalid next option for option 'X'"); + } + if (align <= 1 || opt == Kchar) /* need no alignment? */ + *ntoalign = 0; + else { + if (align > h->maxalign) /* enforce maximum alignment */ + align = h->maxalign; + if ((align & (align - 1)) != 0) /* is 'align' not a power of 2? */ + luaL_argerror(h->L, 1, "format asks for alignment not power of 2"); + *ntoalign = (align - (int)(totalsize & (align - 1))) & (align - 1); + } + return opt; +} + + +/* +** Pack integer 'n' with 'size' bytes and 'islittle' endianness. +** The final 'if' handles the case when 'size' is larger than +** the size of a Lua integer, correcting the extra sign-extension +** bytes if necessary (by default they would be zeros). +*/ +static void packint (luaL_Buffer *b, lua_Unsigned n, + int islittle, int size, int neg) { + char *buff = luaL_prepbuffsize(b, size); + int i; + buff[islittle ? 0 : size - 1] = (char)(n & MC); /* first byte */ + for (i = 1; i < size; i++) { + n >>= NB; + buff[islittle ? i : size - 1 - i] = (char)(n & MC); + } + if (neg && size > SZINT) { /* negative number need sign extension? */ + for (i = SZINT; i < size; i++) /* correct extra bytes */ + buff[islittle ? i : size - 1 - i] = (char)MC; + } + luaL_addsize(b, size); /* add result to buffer */ +} + + +/* +** Copy 'size' bytes from 'src' to 'dest', correcting endianness if +** given 'islittle' is different from native endianness. +*/ +static void copywithendian (volatile char *dest, volatile const char *src, + int size, int islittle) { + if (islittle == nativeendian.little) { + while (size-- != 0) + *(dest++) = *(src++); + } + else { + dest += size - 1; + while (size-- != 0) + *(dest--) = *(src++); + } +} + + +static int str_pack (lua_State *L) { + luaL_Buffer b; + Header h; + const char *fmt = luaL_checkstring(L, 1); /* format string */ + int arg = 1; /* current argument to pack */ + size_t totalsize = 0; /* accumulate total size of result */ + initheader(L, &h); + lua_pushnil(L); /* mark to separate arguments from string buffer */ + luaL_buffinit(L, &b); + while (*fmt != '\0') { + int size, ntoalign; + KOption opt = getdetails(&h, totalsize, &fmt, &size, &ntoalign); + totalsize += ntoalign + size; + while (ntoalign-- > 0) + luaL_addchar(&b, LUAL_PACKPADBYTE); /* fill alignment */ + arg++; + switch (opt) { + case Kint: { /* signed integers */ + lua_Integer n = luaL_checkinteger(L, arg); + if (size < SZINT) { /* need overflow check? */ + lua_Integer lim = (lua_Integer)1 << ((size * NB) - 1); + luaL_argcheck(L, -lim <= n && n < lim, arg, "integer overflow"); + } + packint(&b, (lua_Unsigned)n, h.islittle, size, (n < 0)); + break; + } + case Kuint: { /* unsigned integers */ + lua_Integer n = luaL_checkinteger(L, arg); + if (size < SZINT) /* need overflow check? */ + luaL_argcheck(L, (lua_Unsigned)n < ((lua_Unsigned)1 << (size * NB)), + arg, "unsigned overflow"); + packint(&b, (lua_Unsigned)n, h.islittle, size, 0); + break; + } + case Kfloat: { /* floating-point options */ + volatile Ftypes u; + char *buff = luaL_prepbuffsize(&b, size); + lua_Number n = luaL_checknumber(L, arg); /* get argument */ + if (size == sizeof(u.f)) u.f = (float)n; /* copy it into 'u' */ + else if (size == sizeof(u.d)) u.d = (double)n; + else u.n = n; + /* move 'u' to final result, correcting endianness if needed */ + copywithendian(buff, u.buff, size, h.islittle); + luaL_addsize(&b, size); + break; + } + case Kchar: { /* fixed-size string */ + size_t len; + const char *s = luaL_checklstring(L, arg, &len); + luaL_argcheck(L, len <= (size_t)size, arg, + "string longer than given size"); + luaL_addlstring(&b, s, len); /* add string */ + while (len++ < (size_t)size) /* pad extra space */ + luaL_addchar(&b, LUAL_PACKPADBYTE); + break; + } + case Kstring: { /* strings with length count */ + size_t len; + const char *s = luaL_checklstring(L, arg, &len); + luaL_argcheck(L, size >= (int)sizeof(size_t) || + len < ((size_t)1 << (size * NB)), + arg, "string length does not fit in given size"); + packint(&b, (lua_Unsigned)len, h.islittle, size, 0); /* pack length */ + luaL_addlstring(&b, s, len); + totalsize += len; + break; + } + case Kzstr: { /* zero-terminated string */ + size_t len; + const char *s = luaL_checklstring(L, arg, &len); + luaL_argcheck(L, strlen(s) == len, arg, "string contains zeros"); + luaL_addlstring(&b, s, len); + luaL_addchar(&b, '\0'); /* add zero at the end */ + totalsize += len + 1; + break; + } + case Kpadding: luaL_addchar(&b, LUAL_PACKPADBYTE); /* FALLTHROUGH */ + case Kpaddalign: case Knop: + arg--; /* undo increment */ + break; + } + } + luaL_pushresult(&b); + return 1; +} + + +static int str_packsize (lua_State *L) { + Header h; + const char *fmt = luaL_checkstring(L, 1); /* format string */ + size_t totalsize = 0; /* accumulate total size of result */ + initheader(L, &h); + while (*fmt != '\0') { + int size, ntoalign; + KOption opt = getdetails(&h, totalsize, &fmt, &size, &ntoalign); + size += ntoalign; /* total space used by option */ + luaL_argcheck(L, totalsize <= MAXSIZE - size, 1, + "format result too large"); + totalsize += size; + switch (opt) { + case Kstring: /* strings with length count */ + case Kzstr: /* zero-terminated string */ + luaL_argerror(L, 1, "variable-length format"); + /* call never return, but to avoid warnings: *//* FALLTHROUGH */ + default: break; + } + } + lua_pushinteger(L, (lua_Integer)totalsize); + return 1; +} + + +/* +** Unpack an integer with 'size' bytes and 'islittle' endianness. +** If size is smaller than the size of a Lua integer and integer +** is signed, must do sign extension (propagating the sign to the +** higher bits); if size is larger than the size of a Lua integer, +** it must check the unread bytes to see whether they do not cause an +** overflow. +*/ +static lua_Integer unpackint (lua_State *L, const char *str, + int islittle, int size, int issigned) { + lua_Unsigned res = 0; + int i; + int limit = (size <= SZINT) ? size : SZINT; + for (i = limit - 1; i >= 0; i--) { + res <<= NB; + res |= (lua_Unsigned)(unsigned char)str[islittle ? i : size - 1 - i]; + } + if (size < SZINT) { /* real size smaller than lua_Integer? */ + if (issigned) { /* needs sign extension? */ + lua_Unsigned mask = (lua_Unsigned)1 << (size*NB - 1); + res = ((res ^ mask) - mask); /* do sign extension */ + } + } + else if (size > SZINT) { /* must check unread bytes */ + int mask = (!issigned || (lua_Integer)res >= 0) ? 0 : MC; + for (i = limit; i < size; i++) { + if ((unsigned char)str[islittle ? i : size - 1 - i] != mask) + luaL_error(L, "%d-byte integer does not fit into Lua Integer", size); + } + } + return (lua_Integer)res; +} + + +static int str_unpack (lua_State *L) { + Header h; + const char *fmt = luaL_checkstring(L, 1); + size_t ld; + const char *data = luaL_checklstring(L, 2, &ld); + size_t pos = (size_t)posrelat(luaL_optinteger(L, 3, 1), ld) - 1; + int n = 0; /* number of results */ + luaL_argcheck(L, pos <= ld, 3, "initial position out of string"); + initheader(L, &h); + while (*fmt != '\0') { + int size, ntoalign; + KOption opt = getdetails(&h, pos, &fmt, &size, &ntoalign); + if ((size_t)ntoalign + size > ~pos || pos + ntoalign + size > ld) + luaL_argerror(L, 2, "data string too short"); + pos += ntoalign; /* skip alignment */ + /* stack space for item + next position */ + luaL_checkstack(L, 2, "too many results"); + n++; + switch (opt) { + case Kint: + case Kuint: { + lua_Integer res = unpackint(L, data + pos, h.islittle, size, + (opt == Kint)); + lua_pushinteger(L, res); + break; + } + case Kfloat: { + volatile Ftypes u; + lua_Number num; + copywithendian(u.buff, data + pos, size, h.islittle); + if (size == sizeof(u.f)) num = (lua_Number)u.f; + else if (size == sizeof(u.d)) num = (lua_Number)u.d; + else num = u.n; + lua_pushnumber(L, num); + break; + } + case Kchar: { + lua_pushlstring(L, data + pos, size); + break; + } + case Kstring: { + size_t len = (size_t)unpackint(L, data + pos, h.islittle, size, 0); + luaL_argcheck(L, pos + len + size <= ld, 2, "data string too short"); + lua_pushlstring(L, data + pos + size, len); + pos += len; /* skip string */ + break; + } + case Kzstr: { + size_t len = (int)strlen(data + pos); + lua_pushlstring(L, data + pos, len); + pos += len + 1; /* skip string plus final '\0' */ + break; + } + case Kpaddalign: case Kpadding: case Knop: + n--; /* undo increment */ + break; + } + pos += size; + } + lua_pushinteger(L, pos + 1); /* next position */ + return n + 1; +} + +/* }====================================================== */ + + +static const luaL_Reg strlib[] = { + {"byte", str_byte}, + {"char", str_char}, + {"dump", str_dump}, + {"find", str_find}, + {"format", str_format}, + {"gmatch", gmatch}, + {"gsub", str_gsub}, + {"len", str_len}, + {"lower", str_lower}, + {"match", str_match}, + {"rep", str_rep}, + {"reverse", str_reverse}, + {"sub", str_sub}, + {"upper", str_upper}, + {"pack", str_pack}, + {"packsize", str_packsize}, + {"unpack", str_unpack}, + {NULL, NULL} +}; + + +static void createmetatable (lua_State *L) { + lua_createtable(L, 0, 1); /* table to be metatable for strings */ + lua_pushliteral(L, ""); /* dummy string */ + lua_pushvalue(L, -2); /* copy table */ + lua_setmetatable(L, -2); /* set table as metatable for strings */ + lua_pop(L, 1); /* pop dummy string */ + lua_pushvalue(L, -2); /* get string library */ + lua_setfield(L, -2, "__index"); /* metatable.__index = string */ + lua_pop(L, 1); /* pop metatable */ +} + + +/* +** Open string library +*/ +LUAMOD_API int luaopen_string (lua_State *L) { + luaL_newlib(L, strlib); + createmetatable(L); + return 1; +} + diff --git a/3rd/lua-5.3.4/ltable.c b/3rd/lua-5.3.4/ltable.c new file mode 100644 index 0000000..d080189 --- /dev/null +++ b/3rd/lua-5.3.4/ltable.c @@ -0,0 +1,669 @@ +/* +** $Id: ltable.c,v 2.118 2016/11/07 12:38:35 roberto Exp $ +** Lua tables (hash) +** See Copyright Notice in lua.h +*/ + +#define ltable_c +#define LUA_CORE + +#include "lprefix.h" + + +/* +** Implementation of tables (aka arrays, objects, or hash tables). +** Tables keep its elements in two parts: an array part and a hash part. +** Non-negative integer keys are all candidates to be kept in the array +** part. The actual size of the array is the largest 'n' such that +** more than half the slots between 1 and n are in use. +** Hash uses a mix of chained scatter table with Brent's variation. +** A main invariant of these tables is that, if an element is not +** in its main position (i.e. the 'original' position that its hash gives +** to it), then the colliding element is in its own main position. +** Hence even when the load factor reaches 100%, performance remains good. +*/ + +#include +#include + +#include "lua.h" + +#include "ldebug.h" +#include "ldo.h" +#include "lgc.h" +#include "lmem.h" +#include "lobject.h" +#include "lstate.h" +#include "lstring.h" +#include "ltable.h" +#include "lvm.h" + + +/* +** Maximum size of array part (MAXASIZE) is 2^MAXABITS. MAXABITS is +** the largest integer such that MAXASIZE fits in an unsigned int. +*/ +#define MAXABITS cast_int(sizeof(int) * CHAR_BIT - 1) +#define MAXASIZE (1u << MAXABITS) + +/* +** Maximum size of hash part is 2^MAXHBITS. MAXHBITS is the largest +** integer such that 2^MAXHBITS fits in a signed int. (Note that the +** maximum number of elements in a table, 2^MAXABITS + 2^MAXHBITS, still +** fits comfortably in an unsigned int.) +*/ +#define MAXHBITS (MAXABITS - 1) + + +#define hashpow2(t,n) (gnode(t, lmod((n), sizenode(t)))) + +#define hashstr(t,str) hashpow2(t, (str)->hash) +#define hashboolean(t,p) hashpow2(t, p) +#define hashint(t,i) hashpow2(t, i) + + +/* +** for some types, it is better to avoid modulus by power of 2, as +** they tend to have many 2 factors. +*/ +#define hashmod(t,n) (gnode(t, ((n) % ((sizenode(t)-1)|1)))) + + +#define hashpointer(t,p) hashmod(t, point2uint(p)) + + +#define dummynode (&dummynode_) + +static const Node dummynode_ = { + {NILCONSTANT}, /* value */ + {{NILCONSTANT, 0}} /* key */ +}; + + +/* +** Hash for floating-point numbers. +** The main computation should be just +** n = frexp(n, &i); return (n * INT_MAX) + i +** but there are some numerical subtleties. +** In a two-complement representation, INT_MAX does not has an exact +** representation as a float, but INT_MIN does; because the absolute +** value of 'frexp' is smaller than 1 (unless 'n' is inf/NaN), the +** absolute value of the product 'frexp * -INT_MIN' is smaller or equal +** to INT_MAX. Next, the use of 'unsigned int' avoids overflows when +** adding 'i'; the use of '~u' (instead of '-u') avoids problems with +** INT_MIN. +*/ +#if !defined(l_hashfloat) +static int l_hashfloat (lua_Number n) { + int i; + lua_Integer ni; + n = l_mathop(frexp)(n, &i) * -cast_num(INT_MIN); + if (!lua_numbertointeger(n, &ni)) { /* is 'n' inf/-inf/NaN? */ + lua_assert(luai_numisnan(n) || l_mathop(fabs)(n) == cast_num(HUGE_VAL)); + return 0; + } + else { /* normal case */ + unsigned int u = cast(unsigned int, i) + cast(unsigned int, ni); + return cast_int(u <= cast(unsigned int, INT_MAX) ? u : ~u); + } +} +#endif + + +/* +** returns the 'main' position of an element in a table (that is, the index +** of its hash value) +*/ +static Node *mainposition (const Table *t, const TValue *key) { + switch (ttype(key)) { + case LUA_TNUMINT: + return hashint(t, ivalue(key)); + case LUA_TNUMFLT: + return hashmod(t, l_hashfloat(fltvalue(key))); + case LUA_TSHRSTR: + return hashstr(t, tsvalue(key)); + case LUA_TLNGSTR: + return hashpow2(t, luaS_hashlongstr(tsvalue(key))); + case LUA_TBOOLEAN: + return hashboolean(t, bvalue(key)); + case LUA_TLIGHTUSERDATA: + return hashpointer(t, pvalue(key)); + case LUA_TLCF: + return hashpointer(t, fvalue(key)); + default: + lua_assert(!ttisdeadkey(key)); + return hashpointer(t, gcvalue(key)); + } +} + + +/* +** returns the index for 'key' if 'key' is an appropriate key to live in +** the array part of the table, 0 otherwise. +*/ +static unsigned int arrayindex (const TValue *key) { + if (ttisinteger(key)) { + lua_Integer k = ivalue(key); + if (0 < k && (lua_Unsigned)k <= MAXASIZE) + return cast(unsigned int, k); /* 'key' is an appropriate array index */ + } + return 0; /* 'key' did not match some condition */ +} + + +/* +** returns the index of a 'key' for table traversals. First goes all +** elements in the array part, then elements in the hash part. The +** beginning of a traversal is signaled by 0. +*/ +static unsigned int findindex (lua_State *L, Table *t, StkId key) { + unsigned int i; + if (ttisnil(key)) return 0; /* first iteration */ + i = arrayindex(key); + if (i != 0 && i <= t->sizearray) /* is 'key' inside array part? */ + return i; /* yes; that's the index */ + else { + int nx; + Node *n = mainposition(t, key); + for (;;) { /* check whether 'key' is somewhere in the chain */ + /* key may be dead already, but it is ok to use it in 'next' */ + if (luaV_rawequalobj(gkey(n), key) || + (ttisdeadkey(gkey(n)) && iscollectable(key) && + deadvalue(gkey(n)) == gcvalue(key))) { + i = cast_int(n - gnode(t, 0)); /* key index in hash table */ + /* hash elements are numbered after array ones */ + return (i + 1) + t->sizearray; + } + nx = gnext(n); + if (nx == 0) + luaG_runerror(L, "invalid key to 'next'"); /* key not found */ + else n += nx; + } + } +} + + +int luaH_next (lua_State *L, Table *t, StkId key) { + unsigned int i = findindex(L, t, key); /* find original element */ + for (; i < t->sizearray; i++) { /* try first array part */ + if (!ttisnil(&t->array[i])) { /* a non-nil value? */ + setivalue(key, i + 1); + setobj2s(L, key+1, &t->array[i]); + return 1; + } + } + for (i -= t->sizearray; cast_int(i) < sizenode(t); i++) { /* hash part */ + if (!ttisnil(gval(gnode(t, i)))) { /* a non-nil value? */ + setobj2s(L, key, gkey(gnode(t, i))); + setobj2s(L, key+1, gval(gnode(t, i))); + return 1; + } + } + return 0; /* no more elements */ +} + + +/* +** {============================================================= +** Rehash +** ============================================================== +*/ + +/* +** Compute the optimal size for the array part of table 't'. 'nums' is a +** "count array" where 'nums[i]' is the number of integers in the table +** between 2^(i - 1) + 1 and 2^i. 'pna' enters with the total number of +** integer keys in the table and leaves with the number of keys that +** will go to the array part; return the optimal size. +*/ +static unsigned int computesizes (unsigned int nums[], unsigned int *pna) { + int i; + unsigned int twotoi; /* 2^i (candidate for optimal size) */ + unsigned int a = 0; /* number of elements smaller than 2^i */ + unsigned int na = 0; /* number of elements to go to array part */ + unsigned int optimal = 0; /* optimal size for array part */ + /* loop while keys can fill more than half of total size */ + for (i = 0, twotoi = 1; *pna > twotoi / 2; i++, twotoi *= 2) { + if (nums[i] > 0) { + a += nums[i]; + if (a > twotoi/2) { /* more than half elements present? */ + optimal = twotoi; /* optimal size (till now) */ + na = a; /* all elements up to 'optimal' will go to array part */ + } + } + } + lua_assert((optimal == 0 || optimal / 2 < na) && na <= optimal); + *pna = na; + return optimal; +} + + +static int countint (const TValue *key, unsigned int *nums) { + unsigned int k = arrayindex(key); + if (k != 0) { /* is 'key' an appropriate array index? */ + nums[luaO_ceillog2(k)]++; /* count as such */ + return 1; + } + else + return 0; +} + + +/* +** Count keys in array part of table 't': Fill 'nums[i]' with +** number of keys that will go into corresponding slice and return +** total number of non-nil keys. +*/ +static unsigned int numusearray (const Table *t, unsigned int *nums) { + int lg; + unsigned int ttlg; /* 2^lg */ + unsigned int ause = 0; /* summation of 'nums' */ + unsigned int i = 1; /* count to traverse all array keys */ + /* traverse each slice */ + for (lg = 0, ttlg = 1; lg <= MAXABITS; lg++, ttlg *= 2) { + unsigned int lc = 0; /* counter */ + unsigned int lim = ttlg; + if (lim > t->sizearray) { + lim = t->sizearray; /* adjust upper limit */ + if (i > lim) + break; /* no more elements to count */ + } + /* count elements in range (2^(lg - 1), 2^lg] */ + for (; i <= lim; i++) { + if (!ttisnil(&t->array[i-1])) + lc++; + } + nums[lg] += lc; + ause += lc; + } + return ause; +} + + +static int numusehash (const Table *t, unsigned int *nums, unsigned int *pna) { + int totaluse = 0; /* total number of elements */ + int ause = 0; /* elements added to 'nums' (can go to array part) */ + int i = sizenode(t); + while (i--) { + Node *n = &t->node[i]; + if (!ttisnil(gval(n))) { + ause += countint(gkey(n), nums); + totaluse++; + } + } + *pna += ause; + return totaluse; +} + + +static void setarrayvector (lua_State *L, Table *t, unsigned int size) { + unsigned int i; + luaM_reallocvector(L, t->array, t->sizearray, size, TValue); + for (i=t->sizearray; iarray[i]); + t->sizearray = size; +} + + +static void setnodevector (lua_State *L, Table *t, unsigned int size) { + if (size == 0) { /* no elements to hash part? */ + t->node = cast(Node *, dummynode); /* use common 'dummynode' */ + t->lsizenode = 0; + t->lastfree = NULL; /* signal that it is using dummy node */ + } + else { + int i; + int lsize = luaO_ceillog2(size); + if (lsize > MAXHBITS) + luaG_runerror(L, "table overflow"); + size = twoto(lsize); + t->node = luaM_newvector(L, size, Node); + for (i = 0; i < (int)size; i++) { + Node *n = gnode(t, i); + gnext(n) = 0; + setnilvalue(wgkey(n)); + setnilvalue(gval(n)); + } + t->lsizenode = cast_byte(lsize); + t->lastfree = gnode(t, size); /* all positions are free */ + } +} + + +void luaH_resize (lua_State *L, Table *t, unsigned int nasize, + unsigned int nhsize) { + unsigned int i; + int j; + unsigned int oldasize = t->sizearray; + int oldhsize = allocsizenode(t); + Node *nold = t->node; /* save old hash ... */ + if (nasize > oldasize) /* array part must grow? */ + setarrayvector(L, t, nasize); + /* create new hash part with appropriate size */ + setnodevector(L, t, nhsize); + if (nasize < oldasize) { /* array part must shrink? */ + t->sizearray = nasize; + /* re-insert elements from vanishing slice */ + for (i=nasize; iarray[i])) + luaH_setint(L, t, i + 1, &t->array[i]); + } + /* shrink array */ + luaM_reallocvector(L, t->array, oldasize, nasize, TValue); + } + /* re-insert elements from hash part */ + for (j = oldhsize - 1; j >= 0; j--) { + Node *old = nold + j; + if (!ttisnil(gval(old))) { + /* doesn't need barrier/invalidate cache, as entry was + already present in the table */ + setobjt2t(L, luaH_set(L, t, gkey(old)), gval(old)); + } + } + if (oldhsize > 0) /* not the dummy node? */ + luaM_freearray(L, nold, cast(size_t, oldhsize)); /* free old hash */ +} + + +void luaH_resizearray (lua_State *L, Table *t, unsigned int nasize) { + int nsize = allocsizenode(t); + luaH_resize(L, t, nasize, nsize); +} + +/* +** nums[i] = number of keys 'k' where 2^(i - 1) < k <= 2^i +*/ +static void rehash (lua_State *L, Table *t, const TValue *ek) { + unsigned int asize; /* optimal size for array part */ + unsigned int na; /* number of keys in the array part */ + unsigned int nums[MAXABITS + 1]; + int i; + int totaluse; + for (i = 0; i <= MAXABITS; i++) nums[i] = 0; /* reset counts */ + na = numusearray(t, nums); /* count keys in array part */ + totaluse = na; /* all those keys are integer keys */ + totaluse += numusehash(t, nums, &na); /* count keys in hash part */ + /* count extra key */ + na += countint(ek, nums); + totaluse++; + /* compute new size for array part */ + asize = computesizes(nums, &na); + /* resize the table to new computed sizes */ + luaH_resize(L, t, asize, totaluse - na); +} + + + +/* +** }============================================================= +*/ + + +Table *luaH_new (lua_State *L) { + GCObject *o = luaC_newobj(L, LUA_TTABLE, sizeof(Table)); + Table *t = gco2t(o); + t->metatable = NULL; + t->flags = cast_byte(~0); + t->array = NULL; + t->sizearray = 0; + setnodevector(L, t, 0); + return t; +} + + +void luaH_free (lua_State *L, Table *t) { + if (!isdummy(t)) + luaM_freearray(L, t->node, cast(size_t, sizenode(t))); + luaM_freearray(L, t->array, t->sizearray); + luaM_free(L, t); +} + + +static Node *getfreepos (Table *t) { + if (!isdummy(t)) { + while (t->lastfree > t->node) { + t->lastfree--; + if (ttisnil(gkey(t->lastfree))) + return t->lastfree; + } + } + return NULL; /* could not find a free place */ +} + + + +/* +** inserts a new key into a hash table; first, check whether key's main +** position is free. If not, check whether colliding node is in its main +** position or not: if it is not, move colliding node to an empty place and +** put new key in its main position; otherwise (colliding node is in its main +** position), new key goes to an empty position. +*/ +TValue *luaH_newkey (lua_State *L, Table *t, const TValue *key) { + Node *mp; + TValue aux; + if (ttisnil(key)) luaG_runerror(L, "table index is nil"); + else if (ttisfloat(key)) { + lua_Integer k; + if (luaV_tointeger(key, &k, 0)) { /* does index fit in an integer? */ + setivalue(&aux, k); + key = &aux; /* insert it as an integer */ + } + else if (luai_numisnan(fltvalue(key))) + luaG_runerror(L, "table index is NaN"); + } + mp = mainposition(t, key); + if (!ttisnil(gval(mp)) || isdummy(t)) { /* main position is taken? */ + Node *othern; + Node *f = getfreepos(t); /* get a free place */ + if (f == NULL) { /* cannot find a free place? */ + rehash(L, t, key); /* grow table */ + /* whatever called 'newkey' takes care of TM cache */ + return luaH_set(L, t, key); /* insert key into grown table */ + } + lua_assert(!isdummy(t)); + othern = mainposition(t, gkey(mp)); + if (othern != mp) { /* is colliding node out of its main position? */ + /* yes; move colliding node into free position */ + while (othern + gnext(othern) != mp) /* find previous */ + othern += gnext(othern); + gnext(othern) = cast_int(f - othern); /* rechain to point to 'f' */ + *f = *mp; /* copy colliding node into free pos. (mp->next also goes) */ + if (gnext(mp) != 0) { + gnext(f) += cast_int(mp - f); /* correct 'next' */ + gnext(mp) = 0; /* now 'mp' is free */ + } + setnilvalue(gval(mp)); + } + else { /* colliding node is in its own main position */ + /* new node will go into free position */ + if (gnext(mp) != 0) + gnext(f) = cast_int((mp + gnext(mp)) - f); /* chain new position */ + else lua_assert(gnext(f) == 0); + gnext(mp) = cast_int(f - mp); + mp = f; + } + } + setnodekey(L, &mp->i_key, key); + luaC_barrierback(L, t, key); + lua_assert(ttisnil(gval(mp))); + return gval(mp); +} + + +/* +** search function for integers +*/ +const TValue *luaH_getint (Table *t, lua_Integer key) { + /* (1 <= key && key <= t->sizearray) */ + if (l_castS2U(key) - 1 < t->sizearray) + return &t->array[key - 1]; + else { + Node *n = hashint(t, key); + for (;;) { /* check whether 'key' is somewhere in the chain */ + if (ttisinteger(gkey(n)) && ivalue(gkey(n)) == key) + return gval(n); /* that's it */ + else { + int nx = gnext(n); + if (nx == 0) break; + n += nx; + } + } + return luaO_nilobject; + } +} + + +/* +** search function for short strings +*/ +const TValue *luaH_getshortstr (Table *t, TString *key) { + Node *n = hashstr(t, key); + lua_assert(key->tt == LUA_TSHRSTR); + for (;;) { /* check whether 'key' is somewhere in the chain */ + const TValue *k = gkey(n); + if (ttisshrstring(k) && eqshrstr(tsvalue(k), key)) + return gval(n); /* that's it */ + else { + int nx = gnext(n); + if (nx == 0) + return luaO_nilobject; /* not found */ + n += nx; + } + } +} + + +/* +** "Generic" get version. (Not that generic: not valid for integers, +** which may be in array part, nor for floats with integral values.) +*/ +static const TValue *getgeneric (Table *t, const TValue *key) { + Node *n = mainposition(t, key); + for (;;) { /* check whether 'key' is somewhere in the chain */ + if (luaV_rawequalobj(gkey(n), key)) + return gval(n); /* that's it */ + else { + int nx = gnext(n); + if (nx == 0) + return luaO_nilobject; /* not found */ + n += nx; + } + } +} + + +const TValue *luaH_getstr (Table *t, TString *key) { + if (key->tt == LUA_TSHRSTR) + return luaH_getshortstr(t, key); + else { /* for long strings, use generic case */ + TValue ko; + setsvalue(cast(lua_State *, NULL), &ko, key); + return getgeneric(t, &ko); + } +} + + +/* +** main search function +*/ +const TValue *luaH_get (Table *t, const TValue *key) { + switch (ttype(key)) { + case LUA_TSHRSTR: return luaH_getshortstr(t, tsvalue(key)); + case LUA_TNUMINT: return luaH_getint(t, ivalue(key)); + case LUA_TNIL: return luaO_nilobject; + case LUA_TNUMFLT: { + lua_Integer k; + if (luaV_tointeger(key, &k, 0)) /* index is int? */ + return luaH_getint(t, k); /* use specialized version */ + /* else... */ + } /* FALLTHROUGH */ + default: + return getgeneric(t, key); + } +} + + +/* +** beware: when using this function you probably need to check a GC +** barrier and invalidate the TM cache. +*/ +TValue *luaH_set (lua_State *L, Table *t, const TValue *key) { + const TValue *p = luaH_get(t, key); + if (p != luaO_nilobject) + return cast(TValue *, p); + else return luaH_newkey(L, t, key); +} + + +void luaH_setint (lua_State *L, Table *t, lua_Integer key, TValue *value) { + const TValue *p = luaH_getint(t, key); + TValue *cell; + if (p != luaO_nilobject) + cell = cast(TValue *, p); + else { + TValue k; + setivalue(&k, key); + cell = luaH_newkey(L, t, &k); + } + setobj2t(L, cell, value); +} + + +static int unbound_search (Table *t, unsigned int j) { + unsigned int i = j; /* i is zero or a present index */ + j++; + /* find 'i' and 'j' such that i is present and j is not */ + while (!ttisnil(luaH_getint(t, j))) { + i = j; + if (j > cast(unsigned int, MAX_INT)/2) { /* overflow? */ + /* table was built with bad purposes: resort to linear search */ + i = 1; + while (!ttisnil(luaH_getint(t, i))) i++; + return i - 1; + } + j *= 2; + } + /* now do a binary search between them */ + while (j - i > 1) { + unsigned int m = (i+j)/2; + if (ttisnil(luaH_getint(t, m))) j = m; + else i = m; + } + return i; +} + + +/* +** Try to find a boundary in table 't'. A 'boundary' is an integer index +** such that t[i] is non-nil and t[i+1] is nil (and 0 if t[1] is nil). +*/ +int luaH_getn (Table *t) { + unsigned int j = t->sizearray; + if (j > 0 && ttisnil(&t->array[j - 1])) { + /* there is a boundary in the array part: (binary) search for it */ + unsigned int i = 0; + while (j - i > 1) { + unsigned int m = (i+j)/2; + if (ttisnil(&t->array[m - 1])) j = m; + else i = m; + } + return i; + } + /* else must find a boundary in hash part */ + else if (isdummy(t)) /* hash part is empty? */ + return j; /* that is easy... */ + else return unbound_search(t, j); +} + + + +#if defined(LUA_DEBUG) + +Node *luaH_mainposition (const Table *t, const TValue *key) { + return mainposition(t, key); +} + +int luaH_isdummy (const Table *t) { return isdummy(t); } + +#endif diff --git a/3rd/lua-5.3.4/ltable.h b/3rd/lua-5.3.4/ltable.h new file mode 100644 index 0000000..6da9024 --- /dev/null +++ b/3rd/lua-5.3.4/ltable.h @@ -0,0 +1,66 @@ +/* +** $Id: ltable.h,v 2.23 2016/12/22 13:08:50 roberto Exp $ +** Lua tables (hash) +** See Copyright Notice in lua.h +*/ + +#ifndef ltable_h +#define ltable_h + +#include "lobject.h" + + +#define gnode(t,i) (&(t)->node[i]) +#define gval(n) (&(n)->i_val) +#define gnext(n) ((n)->i_key.nk.next) + + +/* 'const' to avoid wrong writings that can mess up field 'next' */ +#define gkey(n) cast(const TValue*, (&(n)->i_key.tvk)) + +/* +** writable version of 'gkey'; allows updates to individual fields, +** but not to the whole (which has incompatible type) +*/ +#define wgkey(n) (&(n)->i_key.nk) + +#define invalidateTMcache(t) ((t)->flags = 0) + + +/* true when 't' is using 'dummynode' as its hash part */ +#define isdummy(t) ((t)->lastfree == NULL) + + +/* allocated size for hash nodes */ +#define allocsizenode(t) (isdummy(t) ? 0 : sizenode(t)) + + +/* returns the key, given the value of a table entry */ +#define keyfromval(v) \ + (gkey(cast(Node *, cast(char *, (v)) - offsetof(Node, i_val)))) + + +LUAI_FUNC const TValue *luaH_getint (Table *t, lua_Integer key); +LUAI_FUNC void luaH_setint (lua_State *L, Table *t, lua_Integer key, + TValue *value); +LUAI_FUNC const TValue *luaH_getshortstr (Table *t, TString *key); +LUAI_FUNC const TValue *luaH_getstr (Table *t, TString *key); +LUAI_FUNC const TValue *luaH_get (Table *t, const TValue *key); +LUAI_FUNC TValue *luaH_newkey (lua_State *L, Table *t, const TValue *key); +LUAI_FUNC TValue *luaH_set (lua_State *L, Table *t, const TValue *key); +LUAI_FUNC Table *luaH_new (lua_State *L); +LUAI_FUNC void luaH_resize (lua_State *L, Table *t, unsigned int nasize, + unsigned int nhsize); +LUAI_FUNC void luaH_resizearray (lua_State *L, Table *t, unsigned int nasize); +LUAI_FUNC void luaH_free (lua_State *L, Table *t); +LUAI_FUNC int luaH_next (lua_State *L, Table *t, StkId key); +LUAI_FUNC int luaH_getn (Table *t); + + +#if defined(LUA_DEBUG) +LUAI_FUNC Node *luaH_mainposition (const Table *t, const TValue *key); +LUAI_FUNC int luaH_isdummy (const Table *t); +#endif + + +#endif diff --git a/3rd/lua-5.3.4/ltablib.c b/3rd/lua-5.3.4/ltablib.c new file mode 100644 index 0000000..98b2f87 --- /dev/null +++ b/3rd/lua-5.3.4/ltablib.c @@ -0,0 +1,450 @@ +/* +** $Id: ltablib.c,v 1.93 2016/02/25 19:41:54 roberto Exp $ +** Library for Table Manipulation +** See Copyright Notice in lua.h +*/ + +#define ltablib_c +#define LUA_LIB + +#include "lprefix.h" + + +#include +#include +#include + +#include "lua.h" + +#include "lauxlib.h" +#include "lualib.h" + + +/* +** Operations that an object must define to mimic a table +** (some functions only need some of them) +*/ +#define TAB_R 1 /* read */ +#define TAB_W 2 /* write */ +#define TAB_L 4 /* length */ +#define TAB_RW (TAB_R | TAB_W) /* read/write */ + + +#define aux_getn(L,n,w) (checktab(L, n, (w) | TAB_L), luaL_len(L, n)) + + +static int checkfield (lua_State *L, const char *key, int n) { + lua_pushstring(L, key); + return (lua_rawget(L, -n) != LUA_TNIL); +} + + +/* +** Check that 'arg' either is a table or can behave like one (that is, +** has a metatable with the required metamethods) +*/ +static void checktab (lua_State *L, int arg, int what) { + if (lua_type(L, arg) != LUA_TTABLE) { /* is it not a table? */ + int n = 1; /* number of elements to pop */ + if (lua_getmetatable(L, arg) && /* must have metatable */ + (!(what & TAB_R) || checkfield(L, "__index", ++n)) && + (!(what & TAB_W) || checkfield(L, "__newindex", ++n)) && + (!(what & TAB_L) || checkfield(L, "__len", ++n))) { + lua_pop(L, n); /* pop metatable and tested metamethods */ + } + else + luaL_checktype(L, arg, LUA_TTABLE); /* force an error */ + } +} + + +#if defined(LUA_COMPAT_MAXN) +static int maxn (lua_State *L) { + lua_Number max = 0; + luaL_checktype(L, 1, LUA_TTABLE); + lua_pushnil(L); /* first key */ + while (lua_next(L, 1)) { + lua_pop(L, 1); /* remove value */ + if (lua_type(L, -1) == LUA_TNUMBER) { + lua_Number v = lua_tonumber(L, -1); + if (v > max) max = v; + } + } + lua_pushnumber(L, max); + return 1; +} +#endif + + +static int tinsert (lua_State *L) { + lua_Integer e = aux_getn(L, 1, TAB_RW) + 1; /* first empty element */ + lua_Integer pos; /* where to insert new element */ + switch (lua_gettop(L)) { + case 2: { /* called with only 2 arguments */ + pos = e; /* insert new element at the end */ + break; + } + case 3: { + lua_Integer i; + pos = luaL_checkinteger(L, 2); /* 2nd argument is the position */ + luaL_argcheck(L, 1 <= pos && pos <= e, 2, "position out of bounds"); + for (i = e; i > pos; i--) { /* move up elements */ + lua_geti(L, 1, i - 1); + lua_seti(L, 1, i); /* t[i] = t[i - 1] */ + } + break; + } + default: { + return luaL_error(L, "wrong number of arguments to 'insert'"); + } + } + lua_seti(L, 1, pos); /* t[pos] = v */ + return 0; +} + + +static int tremove (lua_State *L) { + lua_Integer size = aux_getn(L, 1, TAB_RW); + lua_Integer pos = luaL_optinteger(L, 2, size); + if (pos != size) /* validate 'pos' if given */ + luaL_argcheck(L, 1 <= pos && pos <= size + 1, 1, "position out of bounds"); + lua_geti(L, 1, pos); /* result = t[pos] */ + for ( ; pos < size; pos++) { + lua_geti(L, 1, pos + 1); + lua_seti(L, 1, pos); /* t[pos] = t[pos + 1] */ + } + lua_pushnil(L); + lua_seti(L, 1, pos); /* t[pos] = nil */ + return 1; +} + + +/* +** Copy elements (1[f], ..., 1[e]) into (tt[t], tt[t+1], ...). Whenever +** possible, copy in increasing order, which is better for rehashing. +** "possible" means destination after original range, or smaller +** than origin, or copying to another table. +*/ +static int tmove (lua_State *L) { + lua_Integer f = luaL_checkinteger(L, 2); + lua_Integer e = luaL_checkinteger(L, 3); + lua_Integer t = luaL_checkinteger(L, 4); + int tt = !lua_isnoneornil(L, 5) ? 5 : 1; /* destination table */ + checktab(L, 1, TAB_R); + checktab(L, tt, TAB_W); + if (e >= f) { /* otherwise, nothing to move */ + lua_Integer n, i; + luaL_argcheck(L, f > 0 || e < LUA_MAXINTEGER + f, 3, + "too many elements to move"); + n = e - f + 1; /* number of elements to move */ + luaL_argcheck(L, t <= LUA_MAXINTEGER - n + 1, 4, + "destination wrap around"); + if (t > e || t <= f || (tt != 1 && !lua_compare(L, 1, tt, LUA_OPEQ))) { + for (i = 0; i < n; i++) { + lua_geti(L, 1, f + i); + lua_seti(L, tt, t + i); + } + } + else { + for (i = n - 1; i >= 0; i--) { + lua_geti(L, 1, f + i); + lua_seti(L, tt, t + i); + } + } + } + lua_pushvalue(L, tt); /* return destination table */ + return 1; +} + + +static void addfield (lua_State *L, luaL_Buffer *b, lua_Integer i) { + lua_geti(L, 1, i); + if (!lua_isstring(L, -1)) + luaL_error(L, "invalid value (%s) at index %d in table for 'concat'", + luaL_typename(L, -1), i); + luaL_addvalue(b); +} + + +static int tconcat (lua_State *L) { + luaL_Buffer b; + lua_Integer last = aux_getn(L, 1, TAB_R); + size_t lsep; + const char *sep = luaL_optlstring(L, 2, "", &lsep); + lua_Integer i = luaL_optinteger(L, 3, 1); + last = luaL_optinteger(L, 4, last); + luaL_buffinit(L, &b); + for (; i < last; i++) { + addfield(L, &b, i); + luaL_addlstring(&b, sep, lsep); + } + if (i == last) /* add last value (if interval was not empty) */ + addfield(L, &b, i); + luaL_pushresult(&b); + return 1; +} + + +/* +** {====================================================== +** Pack/unpack +** ======================================================= +*/ + +static int pack (lua_State *L) { + int i; + int n = lua_gettop(L); /* number of elements to pack */ + lua_createtable(L, n, 1); /* create result table */ + lua_insert(L, 1); /* put it at index 1 */ + for (i = n; i >= 1; i--) /* assign elements */ + lua_seti(L, 1, i); + lua_pushinteger(L, n); + lua_setfield(L, 1, "n"); /* t.n = number of elements */ + return 1; /* return table */ +} + + +static int unpack (lua_State *L) { + lua_Unsigned n; + lua_Integer i = luaL_optinteger(L, 2, 1); + lua_Integer e = luaL_opt(L, luaL_checkinteger, 3, luaL_len(L, 1)); + if (i > e) return 0; /* empty range */ + n = (lua_Unsigned)e - i; /* number of elements minus 1 (avoid overflows) */ + if (n >= (unsigned int)INT_MAX || !lua_checkstack(L, (int)(++n))) + return luaL_error(L, "too many results to unpack"); + for (; i < e; i++) { /* push arg[i..e - 1] (to avoid overflows) */ + lua_geti(L, 1, i); + } + lua_geti(L, 1, e); /* push last element */ + return (int)n; +} + +/* }====================================================== */ + + + +/* +** {====================================================== +** Quicksort +** (based on 'Algorithms in MODULA-3', Robert Sedgewick; +** Addison-Wesley, 1993.) +** ======================================================= +*/ + + +/* type for array indices */ +typedef unsigned int IdxT; + + +/* +** Produce a "random" 'unsigned int' to randomize pivot choice. This +** macro is used only when 'sort' detects a big imbalance in the result +** of a partition. (If you don't want/need this "randomness", ~0 is a +** good choice.) +*/ +#if !defined(l_randomizePivot) /* { */ + +#include + +/* size of 'e' measured in number of 'unsigned int's */ +#define sof(e) (sizeof(e) / sizeof(unsigned int)) + +/* +** Use 'time' and 'clock' as sources of "randomness". Because we don't +** know the types 'clock_t' and 'time_t', we cannot cast them to +** anything without risking overflows. A safe way to use their values +** is to copy them to an array of a known type and use the array values. +*/ +static unsigned int l_randomizePivot (void) { + clock_t c = clock(); + time_t t = time(NULL); + unsigned int buff[sof(c) + sof(t)]; + unsigned int i, rnd = 0; + memcpy(buff, &c, sof(c) * sizeof(unsigned int)); + memcpy(buff + sof(c), &t, sof(t) * sizeof(unsigned int)); + for (i = 0; i < sof(buff); i++) + rnd += buff[i]; + return rnd; +} + +#endif /* } */ + + +/* arrays larger than 'RANLIMIT' may use randomized pivots */ +#define RANLIMIT 100u + + +static void set2 (lua_State *L, IdxT i, IdxT j) { + lua_seti(L, 1, i); + lua_seti(L, 1, j); +} + + +/* +** Return true iff value at stack index 'a' is less than the value at +** index 'b' (according to the order of the sort). +*/ +static int sort_comp (lua_State *L, int a, int b) { + if (lua_isnil(L, 2)) /* no function? */ + return lua_compare(L, a, b, LUA_OPLT); /* a < b */ + else { /* function */ + int res; + lua_pushvalue(L, 2); /* push function */ + lua_pushvalue(L, a-1); /* -1 to compensate function */ + lua_pushvalue(L, b-2); /* -2 to compensate function and 'a' */ + lua_call(L, 2, 1); /* call function */ + res = lua_toboolean(L, -1); /* get result */ + lua_pop(L, 1); /* pop result */ + return res; + } +} + + +/* +** Does the partition: Pivot P is at the top of the stack. +** precondition: a[lo] <= P == a[up-1] <= a[up], +** so it only needs to do the partition from lo + 1 to up - 2. +** Pos-condition: a[lo .. i - 1] <= a[i] == P <= a[i + 1 .. up] +** returns 'i'. +*/ +static IdxT partition (lua_State *L, IdxT lo, IdxT up) { + IdxT i = lo; /* will be incremented before first use */ + IdxT j = up - 1; /* will be decremented before first use */ + /* loop invariant: a[lo .. i] <= P <= a[j .. up] */ + for (;;) { + /* next loop: repeat ++i while a[i] < P */ + while (lua_geti(L, 1, ++i), sort_comp(L, -1, -2)) { + if (i == up - 1) /* a[i] < P but a[up - 1] == P ?? */ + luaL_error(L, "invalid order function for sorting"); + lua_pop(L, 1); /* remove a[i] */ + } + /* after the loop, a[i] >= P and a[lo .. i - 1] < P */ + /* next loop: repeat --j while P < a[j] */ + while (lua_geti(L, 1, --j), sort_comp(L, -3, -1)) { + if (j < i) /* j < i but a[j] > P ?? */ + luaL_error(L, "invalid order function for sorting"); + lua_pop(L, 1); /* remove a[j] */ + } + /* after the loop, a[j] <= P and a[j + 1 .. up] >= P */ + if (j < i) { /* no elements out of place? */ + /* a[lo .. i - 1] <= P <= a[j + 1 .. i .. up] */ + lua_pop(L, 1); /* pop a[j] */ + /* swap pivot (a[up - 1]) with a[i] to satisfy pos-condition */ + set2(L, up - 1, i); + return i; + } + /* otherwise, swap a[i] - a[j] to restore invariant and repeat */ + set2(L, i, j); + } +} + + +/* +** Choose an element in the middle (2nd-3th quarters) of [lo,up] +** "randomized" by 'rnd' +*/ +static IdxT choosePivot (IdxT lo, IdxT up, unsigned int rnd) { + IdxT r4 = (up - lo) / 4; /* range/4 */ + IdxT p = rnd % (r4 * 2) + (lo + r4); + lua_assert(lo + r4 <= p && p <= up - r4); + return p; +} + + +/* +** QuickSort algorithm (recursive function) +*/ +static void auxsort (lua_State *L, IdxT lo, IdxT up, + unsigned int rnd) { + while (lo < up) { /* loop for tail recursion */ + IdxT p; /* Pivot index */ + IdxT n; /* to be used later */ + /* sort elements 'lo', 'p', and 'up' */ + lua_geti(L, 1, lo); + lua_geti(L, 1, up); + if (sort_comp(L, -1, -2)) /* a[up] < a[lo]? */ + set2(L, lo, up); /* swap a[lo] - a[up] */ + else + lua_pop(L, 2); /* remove both values */ + if (up - lo == 1) /* only 2 elements? */ + return; /* already sorted */ + if (up - lo < RANLIMIT || rnd == 0) /* small interval or no randomize? */ + p = (lo + up)/2; /* middle element is a good pivot */ + else /* for larger intervals, it is worth a random pivot */ + p = choosePivot(lo, up, rnd); + lua_geti(L, 1, p); + lua_geti(L, 1, lo); + if (sort_comp(L, -2, -1)) /* a[p] < a[lo]? */ + set2(L, p, lo); /* swap a[p] - a[lo] */ + else { + lua_pop(L, 1); /* remove a[lo] */ + lua_geti(L, 1, up); + if (sort_comp(L, -1, -2)) /* a[up] < a[p]? */ + set2(L, p, up); /* swap a[up] - a[p] */ + else + lua_pop(L, 2); + } + if (up - lo == 2) /* only 3 elements? */ + return; /* already sorted */ + lua_geti(L, 1, p); /* get middle element (Pivot) */ + lua_pushvalue(L, -1); /* push Pivot */ + lua_geti(L, 1, up - 1); /* push a[up - 1] */ + set2(L, p, up - 1); /* swap Pivot (a[p]) with a[up - 1] */ + p = partition(L, lo, up); + /* a[lo .. p - 1] <= a[p] == P <= a[p + 1 .. up] */ + if (p - lo < up - p) { /* lower interval is smaller? */ + auxsort(L, lo, p - 1, rnd); /* call recursively for lower interval */ + n = p - lo; /* size of smaller interval */ + lo = p + 1; /* tail call for [p + 1 .. up] (upper interval) */ + } + else { + auxsort(L, p + 1, up, rnd); /* call recursively for upper interval */ + n = up - p; /* size of smaller interval */ + up = p - 1; /* tail call for [lo .. p - 1] (lower interval) */ + } + if ((up - lo) / 128 > n) /* partition too imbalanced? */ + rnd = l_randomizePivot(); /* try a new randomization */ + } /* tail call auxsort(L, lo, up, rnd) */ +} + + +static int sort (lua_State *L) { + lua_Integer n = aux_getn(L, 1, TAB_RW); + if (n > 1) { /* non-trivial interval? */ + luaL_argcheck(L, n < INT_MAX, 1, "array too big"); + if (!lua_isnoneornil(L, 2)) /* is there a 2nd argument? */ + luaL_checktype(L, 2, LUA_TFUNCTION); /* must be a function */ + lua_settop(L, 2); /* make sure there are two arguments */ + auxsort(L, 1, (IdxT)n, 0); + } + return 0; +} + +/* }====================================================== */ + + +static const luaL_Reg tab_funcs[] = { + {"concat", tconcat}, +#if defined(LUA_COMPAT_MAXN) + {"maxn", maxn}, +#endif + {"insert", tinsert}, + {"pack", pack}, + {"unpack", unpack}, + {"remove", tremove}, + {"move", tmove}, + {"sort", sort}, + {NULL, NULL} +}; + + +LUAMOD_API int luaopen_table (lua_State *L) { + luaL_newlib(L, tab_funcs); +#if defined(LUA_COMPAT_UNPACK) + /* _G.unpack = table.unpack */ + lua_getfield(L, -1, "unpack"); + lua_setglobal(L, "unpack"); +#endif + return 1; +} + diff --git a/3rd/lua-5.3.4/ltm.c b/3rd/lua-5.3.4/ltm.c new file mode 100644 index 0000000..14e5257 --- /dev/null +++ b/3rd/lua-5.3.4/ltm.c @@ -0,0 +1,165 @@ +/* +** $Id: ltm.c,v 2.38 2016/12/22 13:08:50 roberto Exp $ +** Tag methods +** See Copyright Notice in lua.h +*/ + +#define ltm_c +#define LUA_CORE + +#include "lprefix.h" + + +#include + +#include "lua.h" + +#include "ldebug.h" +#include "ldo.h" +#include "lobject.h" +#include "lstate.h" +#include "lstring.h" +#include "ltable.h" +#include "ltm.h" +#include "lvm.h" + + +static const char udatatypename[] = "userdata"; + +LUAI_DDEF const char *const luaT_typenames_[LUA_TOTALTAGS] = { + "no value", + "nil", "boolean", udatatypename, "number", + "string", "table", "function", udatatypename, "thread", + "proto" /* this last case is used for tests only */ +}; + + +void luaT_init (lua_State *L) { + static const char *const luaT_eventname[] = { /* ORDER TM */ + "__index", "__newindex", + "__gc", "__mode", "__len", "__eq", + "__add", "__sub", "__mul", "__mod", "__pow", + "__div", "__idiv", + "__band", "__bor", "__bxor", "__shl", "__shr", + "__unm", "__bnot", "__lt", "__le", + "__concat", "__call" + }; + int i; + for (i=0; itmname[i] = luaS_new(L, luaT_eventname[i]); + luaC_fix(L, obj2gco(G(L)->tmname[i])); /* never collect these names */ + } +} + + +/* +** function to be used with macro "fasttm": optimized for absence of +** tag methods +*/ +const TValue *luaT_gettm (Table *events, TMS event, TString *ename) { + const TValue *tm = luaH_getshortstr(events, ename); + lua_assert(event <= TM_EQ); + if (ttisnil(tm)) { /* no tag method? */ + events->flags |= cast_byte(1u<metatable; + break; + case LUA_TUSERDATA: + mt = uvalue(o)->metatable; + break; + default: + mt = G(L)->mt[ttnov(o)]; + } + return (mt ? luaH_getshortstr(mt, G(L)->tmname[event]) : luaO_nilobject); +} + + +/* +** Return the name of the type of an object. For tables and userdata +** with metatable, use their '__name' metafield, if present. +*/ +const char *luaT_objtypename (lua_State *L, const TValue *o) { + Table *mt; + if ((ttistable(o) && (mt = hvalue(o)->metatable) != NULL) || + (ttisfulluserdata(o) && (mt = uvalue(o)->metatable) != NULL)) { + const TValue *name = luaH_getshortstr(mt, luaS_new(L, "__name")); + if (ttisstring(name)) /* is '__name' a string? */ + return getstr(tsvalue(name)); /* use it as type name */ + } + return ttypename(ttnov(o)); /* else use standard type name */ +} + + +void luaT_callTM (lua_State *L, const TValue *f, const TValue *p1, + const TValue *p2, TValue *p3, int hasres) { + ptrdiff_t result = savestack(L, p3); + StkId func = L->top; + setobj2s(L, func, f); /* push function (assume EXTRA_STACK) */ + setobj2s(L, func + 1, p1); /* 1st argument */ + setobj2s(L, func + 2, p2); /* 2nd argument */ + L->top += 3; + if (!hasres) /* no result? 'p3' is third argument */ + setobj2s(L, L->top++, p3); /* 3rd argument */ + /* metamethod may yield only when called from Lua code */ + if (isLua(L->ci)) + luaD_call(L, func, hasres); + else + luaD_callnoyield(L, func, hasres); + if (hasres) { /* if has result, move it to its place */ + p3 = restorestack(L, result); + setobjs2s(L, p3, --L->top); + } +} + + +int luaT_callbinTM (lua_State *L, const TValue *p1, const TValue *p2, + StkId res, TMS event) { + const TValue *tm = luaT_gettmbyobj(L, p1, event); /* try first operand */ + if (ttisnil(tm)) + tm = luaT_gettmbyobj(L, p2, event); /* try second operand */ + if (ttisnil(tm)) return 0; + luaT_callTM(L, tm, p1, p2, res, 1); + return 1; +} + + +void luaT_trybinTM (lua_State *L, const TValue *p1, const TValue *p2, + StkId res, TMS event) { + if (!luaT_callbinTM(L, p1, p2, res, event)) { + switch (event) { + case TM_CONCAT: + luaG_concaterror(L, p1, p2); + /* call never returns, but to avoid warnings: *//* FALLTHROUGH */ + case TM_BAND: case TM_BOR: case TM_BXOR: + case TM_SHL: case TM_SHR: case TM_BNOT: { + lua_Number dummy; + if (tonumber(p1, &dummy) && tonumber(p2, &dummy)) + luaG_tointerror(L, p1, p2); + else + luaG_opinterror(L, p1, p2, "perform bitwise operation on"); + } + /* calls never return, but to avoid warnings: *//* FALLTHROUGH */ + default: + luaG_opinterror(L, p1, p2, "perform arithmetic on"); + } + } +} + + +int luaT_callorderTM (lua_State *L, const TValue *p1, const TValue *p2, + TMS event) { + if (!luaT_callbinTM(L, p1, p2, L->top, event)) + return -1; /* no metamethod */ + else + return !l_isfalse(L->top); +} + diff --git a/3rd/lua-5.3.4/ltm.h b/3rd/lua-5.3.4/ltm.h new file mode 100644 index 0000000..63db726 --- /dev/null +++ b/3rd/lua-5.3.4/ltm.h @@ -0,0 +1,76 @@ +/* +** $Id: ltm.h,v 2.22 2016/02/26 19:20:15 roberto Exp $ +** Tag methods +** See Copyright Notice in lua.h +*/ + +#ifndef ltm_h +#define ltm_h + + +#include "lobject.h" + + +/* +* WARNING: if you change the order of this enumeration, +* grep "ORDER TM" and "ORDER OP" +*/ +typedef enum { + TM_INDEX, + TM_NEWINDEX, + TM_GC, + TM_MODE, + TM_LEN, + TM_EQ, /* last tag method with fast access */ + TM_ADD, + TM_SUB, + TM_MUL, + TM_MOD, + TM_POW, + TM_DIV, + TM_IDIV, + TM_BAND, + TM_BOR, + TM_BXOR, + TM_SHL, + TM_SHR, + TM_UNM, + TM_BNOT, + TM_LT, + TM_LE, + TM_CONCAT, + TM_CALL, + TM_N /* number of elements in the enum */ +} TMS; + + + +#define gfasttm(g,et,e) ((et) == NULL ? NULL : \ + ((et)->flags & (1u<<(e))) ? NULL : luaT_gettm(et, e, (g)->tmname[e])) + +#define fasttm(l,et,e) gfasttm(G(l), et, e) + +#define ttypename(x) luaT_typenames_[(x) + 1] + +LUAI_DDEC const char *const luaT_typenames_[LUA_TOTALTAGS]; + + +LUAI_FUNC const char *luaT_objtypename (lua_State *L, const TValue *o); + +LUAI_FUNC const TValue *luaT_gettm (Table *events, TMS event, TString *ename); +LUAI_FUNC const TValue *luaT_gettmbyobj (lua_State *L, const TValue *o, + TMS event); +LUAI_FUNC void luaT_init (lua_State *L); + +LUAI_FUNC void luaT_callTM (lua_State *L, const TValue *f, const TValue *p1, + const TValue *p2, TValue *p3, int hasres); +LUAI_FUNC int luaT_callbinTM (lua_State *L, const TValue *p1, const TValue *p2, + StkId res, TMS event); +LUAI_FUNC void luaT_trybinTM (lua_State *L, const TValue *p1, const TValue *p2, + StkId res, TMS event); +LUAI_FUNC int luaT_callorderTM (lua_State *L, const TValue *p1, + const TValue *p2, TMS event); + + + +#endif diff --git a/3rd/lua-5.3.4/lua b/3rd/lua-5.3.4/lua new file mode 100755 index 0000000..7acf7b9 Binary files /dev/null and b/3rd/lua-5.3.4/lua differ diff --git a/3rd/lua-5.3.4/lua.c b/3rd/lua-5.3.4/lua.c new file mode 100644 index 0000000..3f082da --- /dev/null +++ b/3rd/lua-5.3.4/lua.c @@ -0,0 +1,612 @@ +/* +** $Id: lua.c,v 1.230 2017/01/12 17:14:26 roberto Exp $ +** Lua stand-alone interpreter +** See Copyright Notice in lua.h +*/ + +#define lua_c + +#include "lprefix.h" + + +#include +#include +#include +#include + +#include "lua.h" + +#include "lauxlib.h" +#include "lualib.h" + + + +#if !defined(LUA_PROMPT) +#define LUA_PROMPT "> " +#define LUA_PROMPT2 ">> " +#endif + +#if !defined(LUA_PROGNAME) +#define LUA_PROGNAME "lua" +#endif + +#if !defined(LUA_MAXINPUT) +#define LUA_MAXINPUT 512 +#endif + +#if !defined(LUA_INIT_VAR) +#define LUA_INIT_VAR "LUA_INIT" +#endif + +#define LUA_INITVARVERSION LUA_INIT_VAR LUA_VERSUFFIX + + +/* +** lua_stdin_is_tty detects whether the standard input is a 'tty' (that +** is, whether we're running lua interactively). +*/ +#if !defined(lua_stdin_is_tty) /* { */ + +#if defined(LUA_USE_POSIX) /* { */ + +#include +#define lua_stdin_is_tty() isatty(0) + +#elif defined(LUA_USE_WINDOWS) /* }{ */ + +#include +#include + +#define lua_stdin_is_tty() _isatty(_fileno(stdin)) + +#else /* }{ */ + +/* ISO C definition */ +#define lua_stdin_is_tty() 1 /* assume stdin is a tty */ + +#endif /* } */ + +#endif /* } */ + + +/* +** lua_readline defines how to show a prompt and then read a line from +** the standard input. +** lua_saveline defines how to "save" a read line in a "history". +** lua_freeline defines how to free a line read by lua_readline. +*/ +#if !defined(lua_readline) /* { */ + +#if defined(LUA_USE_READLINE) /* { */ + +#include +#include +#define lua_readline(L,b,p) ((void)L, ((b)=readline(p)) != NULL) +#define lua_saveline(L,line) ((void)L, add_history(line)) +#define lua_freeline(L,b) ((void)L, free(b)) + +#else /* }{ */ + +#define lua_readline(L,b,p) \ + ((void)L, fputs(p, stdout), fflush(stdout), /* show prompt */ \ + fgets(b, LUA_MAXINPUT, stdin) != NULL) /* get line */ +#define lua_saveline(L,line) { (void)L; (void)line; } +#define lua_freeline(L,b) { (void)L; (void)b; } + +#endif /* } */ + +#endif /* } */ + + + + +static lua_State *globalL = NULL; + +static const char *progname = LUA_PROGNAME; + + +/* +** Hook set by signal function to stop the interpreter. +*/ +static void lstop (lua_State *L, lua_Debug *ar) { + (void)ar; /* unused arg. */ + lua_sethook(L, NULL, 0, 0); /* reset hook */ + luaL_error(L, "interrupted!"); +} + + +/* +** Function to be called at a C signal. Because a C signal cannot +** just change a Lua state (as there is no proper synchronization), +** this function only sets a hook that, when called, will stop the +** interpreter. +*/ +static void laction (int i) { + signal(i, SIG_DFL); /* if another SIGINT happens, terminate process */ + lua_sethook(globalL, lstop, LUA_MASKCALL | LUA_MASKRET | LUA_MASKCOUNT, 1); +} + + +static void print_usage (const char *badoption) { + lua_writestringerror("%s: ", progname); + if (badoption[1] == 'e' || badoption[1] == 'l') + lua_writestringerror("'%s' needs argument\n", badoption); + else + lua_writestringerror("unrecognized option '%s'\n", badoption); + lua_writestringerror( + "usage: %s [options] [script [args]]\n" + "Available options are:\n" + " -e stat execute string 'stat'\n" + " -i enter interactive mode after executing 'script'\n" + " -l name require library 'name'\n" + " -v show version information\n" + " -E ignore environment variables\n" + " -- stop handling options\n" + " - stop handling options and execute stdin\n" + , + progname); +} + + +/* +** Prints an error message, adding the program name in front of it +** (if present) +*/ +static void l_message (const char *pname, const char *msg) { + if (pname) lua_writestringerror("%s: ", pname); + lua_writestringerror("%s\n", msg); +} + + +/* +** Check whether 'status' is not OK and, if so, prints the error +** message on the top of the stack. It assumes that the error object +** is a string, as it was either generated by Lua or by 'msghandler'. +*/ +static int report (lua_State *L, int status) { + if (status != LUA_OK) { + const char *msg = lua_tostring(L, -1); + l_message(progname, msg); + lua_pop(L, 1); /* remove message */ + } + return status; +} + + +/* +** Message handler used to run all chunks +*/ +static int msghandler (lua_State *L) { + const char *msg = lua_tostring(L, 1); + if (msg == NULL) { /* is error object not a string? */ + if (luaL_callmeta(L, 1, "__tostring") && /* does it have a metamethod */ + lua_type(L, -1) == LUA_TSTRING) /* that produces a string? */ + return 1; /* that is the message */ + else + msg = lua_pushfstring(L, "(error object is a %s value)", + luaL_typename(L, 1)); + } + luaL_traceback(L, L, msg, 1); /* append a standard traceback */ + return 1; /* return the traceback */ +} + + +/* +** Interface to 'lua_pcall', which sets appropriate message function +** and C-signal handler. Used to run all chunks. +*/ +static int docall (lua_State *L, int narg, int nres) { + int status; + int base = lua_gettop(L) - narg; /* function index */ + lua_pushcfunction(L, msghandler); /* push message handler */ + lua_insert(L, base); /* put it under function and args */ + globalL = L; /* to be available to 'laction' */ + signal(SIGINT, laction); /* set C-signal handler */ + status = lua_pcall(L, narg, nres, base); + signal(SIGINT, SIG_DFL); /* reset C-signal handler */ + lua_remove(L, base); /* remove message handler from the stack */ + return status; +} + + +static void print_version (void) { + lua_writestring(LUA_COPYRIGHT, strlen(LUA_COPYRIGHT)); + lua_writeline(); +} + + +/* +** Create the 'arg' table, which stores all arguments from the +** command line ('argv'). It should be aligned so that, at index 0, +** it has 'argv[script]', which is the script name. The arguments +** to the script (everything after 'script') go to positive indices; +** other arguments (before the script name) go to negative indices. +** If there is no script name, assume interpreter's name as base. +*/ +static void createargtable (lua_State *L, char **argv, int argc, int script) { + int i, narg; + if (script == argc) script = 0; /* no script name? */ + narg = argc - (script + 1); /* number of positive indices */ + lua_createtable(L, narg, script + 1); + for (i = 0; i < argc; i++) { + lua_pushstring(L, argv[i]); + lua_rawseti(L, -2, i - script); + } + lua_setglobal(L, "arg"); +} + + +static int dochunk (lua_State *L, int status) { + if (status == LUA_OK) status = docall(L, 0, 0); + return report(L, status); +} + + +static int dofile (lua_State *L, const char *name) { + return dochunk(L, luaL_loadfile(L, name)); +} + + +static int dostring (lua_State *L, const char *s, const char *name) { + return dochunk(L, luaL_loadbuffer(L, s, strlen(s), name)); +} + + +/* +** Calls 'require(name)' and stores the result in a global variable +** with the given name. +*/ +static int dolibrary (lua_State *L, const char *name) { + int status; + lua_getglobal(L, "require"); + lua_pushstring(L, name); + status = docall(L, 1, 1); /* call 'require(name)' */ + if (status == LUA_OK) + lua_setglobal(L, name); /* global[name] = require return */ + return report(L, status); +} + + +/* +** Returns the string to be used as a prompt by the interpreter. +*/ +static const char *get_prompt (lua_State *L, int firstline) { + const char *p; + lua_getglobal(L, firstline ? "_PROMPT" : "_PROMPT2"); + p = lua_tostring(L, -1); + if (p == NULL) p = (firstline ? LUA_PROMPT : LUA_PROMPT2); + return p; +} + +/* mark in error messages for incomplete statements */ +#define EOFMARK "" +#define marklen (sizeof(EOFMARK)/sizeof(char) - 1) + + +/* +** Check whether 'status' signals a syntax error and the error +** message at the top of the stack ends with the above mark for +** incomplete statements. +*/ +static int incomplete (lua_State *L, int status) { + if (status == LUA_ERRSYNTAX) { + size_t lmsg; + const char *msg = lua_tolstring(L, -1, &lmsg); + if (lmsg >= marklen && strcmp(msg + lmsg - marklen, EOFMARK) == 0) { + lua_pop(L, 1); + return 1; + } + } + return 0; /* else... */ +} + + +/* +** Prompt the user, read a line, and push it into the Lua stack. +*/ +static int pushline (lua_State *L, int firstline) { + char buffer[LUA_MAXINPUT]; + char *b = buffer; + size_t l; + const char *prmt = get_prompt(L, firstline); + int readstatus = lua_readline(L, b, prmt); + if (readstatus == 0) + return 0; /* no input (prompt will be popped by caller) */ + lua_pop(L, 1); /* remove prompt */ + l = strlen(b); + if (l > 0 && b[l-1] == '\n') /* line ends with newline? */ + b[--l] = '\0'; /* remove it */ + if (firstline && b[0] == '=') /* for compatibility with 5.2, ... */ + lua_pushfstring(L, "return %s", b + 1); /* change '=' to 'return' */ + else + lua_pushlstring(L, b, l); + lua_freeline(L, b); + return 1; +} + + +/* +** Try to compile line on the stack as 'return ;'; on return, stack +** has either compiled chunk or original line (if compilation failed). +*/ +static int addreturn (lua_State *L) { + const char *line = lua_tostring(L, -1); /* original line */ + const char *retline = lua_pushfstring(L, "return %s;", line); + int status = luaL_loadbuffer(L, retline, strlen(retline), "=stdin"); + if (status == LUA_OK) { + lua_remove(L, -2); /* remove modified line */ + if (line[0] != '\0') /* non empty? */ + lua_saveline(L, line); /* keep history */ + } + else + lua_pop(L, 2); /* pop result from 'luaL_loadbuffer' and modified line */ + return status; +} + + +/* +** Read multiple lines until a complete Lua statement +*/ +static int multiline (lua_State *L) { + for (;;) { /* repeat until gets a complete statement */ + size_t len; + const char *line = lua_tolstring(L, 1, &len); /* get what it has */ + int status = luaL_loadbuffer(L, line, len, "=stdin"); /* try it */ + if (!incomplete(L, status) || !pushline(L, 0)) { + lua_saveline(L, line); /* keep history */ + return status; /* cannot or should not try to add continuation line */ + } + lua_pushliteral(L, "\n"); /* add newline... */ + lua_insert(L, -2); /* ...between the two lines */ + lua_concat(L, 3); /* join them */ + } +} + + +/* +** Read a line and try to load (compile) it first as an expression (by +** adding "return " in front of it) and second as a statement. Return +** the final status of load/call with the resulting function (if any) +** in the top of the stack. +*/ +static int loadline (lua_State *L) { + int status; + lua_settop(L, 0); + if (!pushline(L, 1)) + return -1; /* no input */ + if ((status = addreturn(L)) != LUA_OK) /* 'return ...' did not work? */ + status = multiline(L); /* try as command, maybe with continuation lines */ + lua_remove(L, 1); /* remove line from the stack */ + lua_assert(lua_gettop(L) == 1); + return status; +} + + +/* +** Prints (calling the Lua 'print' function) any values on the stack +*/ +static void l_print (lua_State *L) { + int n = lua_gettop(L); + if (n > 0) { /* any result to be printed? */ + luaL_checkstack(L, LUA_MINSTACK, "too many results to print"); + lua_getglobal(L, "print"); + lua_insert(L, 1); + if (lua_pcall(L, n, 0, 0) != LUA_OK) + l_message(progname, lua_pushfstring(L, "error calling 'print' (%s)", + lua_tostring(L, -1))); + } +} + + +/* +** Do the REPL: repeatedly read (load) a line, evaluate (call) it, and +** print any results. +*/ +static void doREPL (lua_State *L) { + int status; + const char *oldprogname = progname; + progname = NULL; /* no 'progname' on errors in interactive mode */ + while ((status = loadline(L)) != -1) { + if (status == LUA_OK) + status = docall(L, 0, LUA_MULTRET); + if (status == LUA_OK) l_print(L); + else report(L, status); + } + lua_settop(L, 0); /* clear stack */ + lua_writeline(); + progname = oldprogname; +} + + +/* +** Push on the stack the contents of table 'arg' from 1 to #arg +*/ +static int pushargs (lua_State *L) { + int i, n; + if (lua_getglobal(L, "arg") != LUA_TTABLE) + luaL_error(L, "'arg' is not a table"); + n = (int)luaL_len(L, -1); + luaL_checkstack(L, n + 3, "too many arguments to script"); + for (i = 1; i <= n; i++) + lua_rawgeti(L, -i, i); + lua_remove(L, -i); /* remove table from the stack */ + return n; +} + + +static int handle_script (lua_State *L, char **argv) { + int status; + const char *fname = argv[0]; + if (strcmp(fname, "-") == 0 && strcmp(argv[-1], "--") != 0) + fname = NULL; /* stdin */ + status = luaL_loadfile(L, fname); + if (status == LUA_OK) { + int n = pushargs(L); /* push arguments to script */ + status = docall(L, n, LUA_MULTRET); + } + return report(L, status); +} + + + +/* bits of various argument indicators in 'args' */ +#define has_error 1 /* bad option */ +#define has_i 2 /* -i */ +#define has_v 4 /* -v */ +#define has_e 8 /* -e */ +#define has_E 16 /* -E */ + +/* +** Traverses all arguments from 'argv', returning a mask with those +** needed before running any Lua code (or an error code if it finds +** any invalid argument). 'first' returns the first not-handled argument +** (either the script name or a bad argument in case of error). +*/ +static int collectargs (char **argv, int *first) { + int args = 0; + int i; + for (i = 1; argv[i] != NULL; i++) { + *first = i; + if (argv[i][0] != '-') /* not an option? */ + return args; /* stop handling options */ + switch (argv[i][1]) { /* else check option */ + case '-': /* '--' */ + if (argv[i][2] != '\0') /* extra characters after '--'? */ + return has_error; /* invalid option */ + *first = i + 1; + return args; + case '\0': /* '-' */ + return args; /* script "name" is '-' */ + case 'E': + if (argv[i][2] != '\0') /* extra characters after 1st? */ + return has_error; /* invalid option */ + args |= has_E; + break; + case 'i': + args |= has_i; /* (-i implies -v) *//* FALLTHROUGH */ + case 'v': + if (argv[i][2] != '\0') /* extra characters after 1st? */ + return has_error; /* invalid option */ + args |= has_v; + break; + case 'e': + args |= has_e; /* FALLTHROUGH */ + case 'l': /* both options need an argument */ + if (argv[i][2] == '\0') { /* no concatenated argument? */ + i++; /* try next 'argv' */ + if (argv[i] == NULL || argv[i][0] == '-') + return has_error; /* no next argument or it is another option */ + } + break; + default: /* invalid option */ + return has_error; + } + } + *first = i; /* no script name */ + return args; +} + + +/* +** Processes options 'e' and 'l', which involve running Lua code. +** Returns 0 if some code raises an error. +*/ +static int runargs (lua_State *L, char **argv, int n) { + int i; + for (i = 1; i < n; i++) { + int option = argv[i][1]; + lua_assert(argv[i][0] == '-'); /* already checked */ + if (option == 'e' || option == 'l') { + int status; + const char *extra = argv[i] + 2; /* both options need an argument */ + if (*extra == '\0') extra = argv[++i]; + lua_assert(extra != NULL); + status = (option == 'e') + ? dostring(L, extra, "=(command line)") + : dolibrary(L, extra); + if (status != LUA_OK) return 0; + } + } + return 1; +} + + + +static int handle_luainit (lua_State *L) { + const char *name = "=" LUA_INITVARVERSION; + const char *init = getenv(name + 1); + if (init == NULL) { + name = "=" LUA_INIT_VAR; + init = getenv(name + 1); /* try alternative name */ + } + if (init == NULL) return LUA_OK; + else if (init[0] == '@') + return dofile(L, init+1); + else + return dostring(L, init, name); +} + + +/* +** Main body of stand-alone interpreter (to be called in protected mode). +** Reads the options and handles them all. +*/ +static int pmain (lua_State *L) { + int argc = (int)lua_tointeger(L, 1); + char **argv = (char **)lua_touserdata(L, 2); + int script; + int args = collectargs(argv, &script); + luaL_checkversion(L); /* check that interpreter has correct version */ + if (argv[0] && argv[0][0]) progname = argv[0]; + if (args == has_error) { /* bad arg? */ + print_usage(argv[script]); /* 'script' has index of bad arg. */ + return 0; + } + if (args & has_v) /* option '-v'? */ + print_version(); + if (args & has_E) { /* option '-E'? */ + lua_pushboolean(L, 1); /* signal for libraries to ignore env. vars. */ + lua_setfield(L, LUA_REGISTRYINDEX, "LUA_NOENV"); + } + luaL_openlibs(L); /* open standard libraries */ + createargtable(L, argv, argc, script); /* create table 'arg' */ + if (!(args & has_E)) { /* no option '-E'? */ + if (handle_luainit(L) != LUA_OK) /* run LUA_INIT */ + return 0; /* error running LUA_INIT */ + } + if (!runargs(L, argv, script)) /* execute arguments -e and -l */ + return 0; /* something failed */ + if (script < argc && /* execute main script (if there is one) */ + handle_script(L, argv + script) != LUA_OK) + return 0; + if (args & has_i) /* -i option? */ + doREPL(L); /* do read-eval-print loop */ + else if (script == argc && !(args & (has_e | has_v))) { /* no arguments? */ + if (lua_stdin_is_tty()) { /* running in interactive mode? */ + print_version(); + doREPL(L); /* do read-eval-print loop */ + } + else dofile(L, NULL); /* executes stdin as a file */ + } + lua_pushboolean(L, 1); /* signal no errors */ + return 1; +} + + +int main (int argc, char **argv) { + int status, result; + lua_State *L = luaL_newstate(); /* create state */ + if (L == NULL) { + l_message(argv[0], "cannot create state: not enough memory"); + return EXIT_FAILURE; + } + lua_pushcfunction(L, &pmain); /* to call 'pmain' in protected mode */ + lua_pushinteger(L, argc); /* 1st argument */ + lua_pushlightuserdata(L, argv); /* 2nd argument */ + status = lua_pcall(L, 2, 1, 0); /* do the call */ + result = lua_toboolean(L, -1); /* get result */ + report(L, status); + lua_close(L); + return (result && status == LUA_OK) ? EXIT_SUCCESS : EXIT_FAILURE; +} + diff --git a/3rd/lua-5.3.4/lua.h b/3rd/lua-5.3.4/lua.h new file mode 100644 index 0000000..26c0e2d --- /dev/null +++ b/3rd/lua-5.3.4/lua.h @@ -0,0 +1,486 @@ +/* +** $Id: lua.h,v 1.332 2016/12/22 15:51:20 roberto Exp $ +** Lua - A Scripting Language +** Lua.org, PUC-Rio, Brazil (http://www.lua.org) +** See Copyright Notice at the end of this file +*/ + + +#ifndef lua_h +#define lua_h + +#include +#include + + +#include "luaconf.h" + + +#define LUA_VERSION_MAJOR "5" +#define LUA_VERSION_MINOR "3" +#define LUA_VERSION_NUM 503 +#define LUA_VERSION_RELEASE "4" + +#define LUA_VERSION "Lua " LUA_VERSION_MAJOR "." LUA_VERSION_MINOR +#define LUA_RELEASE LUA_VERSION "." LUA_VERSION_RELEASE +#define LUA_COPYRIGHT LUA_RELEASE " Copyright (C) 1994-2017 Lua.org, PUC-Rio" +#define LUA_AUTHORS "R. Ierusalimschy, L. H. de Figueiredo, W. Celes" + + +/* mark for precompiled code ('Lua') */ +#define LUA_SIGNATURE "\x1bLua" + +/* option for multiple returns in 'lua_pcall' and 'lua_call' */ +#define LUA_MULTRET (-1) + + +/* +** Pseudo-indices +** (-LUAI_MAXSTACK is the minimum valid index; we keep some free empty +** space after that to help overflow detection) +*/ +#define LUA_REGISTRYINDEX (-LUAI_MAXSTACK - 1000) +#define lua_upvalueindex(i) (LUA_REGISTRYINDEX - (i)) + + +/* thread status */ +#define LUA_OK 0 +#define LUA_YIELD 1 +#define LUA_ERRRUN 2 +#define LUA_ERRSYNTAX 3 +#define LUA_ERRMEM 4 +#define LUA_ERRGCMM 5 +#define LUA_ERRERR 6 + + +typedef struct lua_State lua_State; + + +/* +** basic types +*/ +#define LUA_TNONE (-1) + +#define LUA_TNIL 0 +#define LUA_TBOOLEAN 1 +#define LUA_TLIGHTUSERDATA 2 +#define LUA_TNUMBER 3 +#define LUA_TSTRING 4 +#define LUA_TTABLE 5 +#define LUA_TFUNCTION 6 +#define LUA_TUSERDATA 7 +#define LUA_TTHREAD 8 + +#define LUA_NUMTAGS 9 + + + +/* minimum Lua stack available to a C function */ +#define LUA_MINSTACK 20 + + +/* predefined values in the registry */ +#define LUA_RIDX_MAINTHREAD 1 +#define LUA_RIDX_GLOBALS 2 +#define LUA_RIDX_LAST LUA_RIDX_GLOBALS + + +/* type of numbers in Lua */ +typedef LUA_NUMBER lua_Number; + + +/* type for integer functions */ +typedef LUA_INTEGER lua_Integer; + +/* unsigned integer type */ +typedef LUA_UNSIGNED lua_Unsigned; + +/* type for continuation-function contexts */ +typedef LUA_KCONTEXT lua_KContext; + + +/* +** Type for C functions registered with Lua +*/ +typedef int (*lua_CFunction) (lua_State *L); + +/* +** Type for continuation functions +*/ +typedef int (*lua_KFunction) (lua_State *L, int status, lua_KContext ctx); + + +/* +** Type for functions that read/write blocks when loading/dumping Lua chunks +*/ +typedef const char * (*lua_Reader) (lua_State *L, void *ud, size_t *sz); + +typedef int (*lua_Writer) (lua_State *L, const void *p, size_t sz, void *ud); + + +/* +** Type for memory-allocation functions +*/ +typedef void * (*lua_Alloc) (void *ud, void *ptr, size_t osize, size_t nsize); + + + +/* +** generic extra include file +*/ +#if defined(LUA_USER_H) +#include LUA_USER_H +#endif + + +/* +** RCS ident string +*/ +extern const char lua_ident[]; + + +/* +** state manipulation +*/ +LUA_API lua_State *(lua_newstate) (lua_Alloc f, void *ud); +LUA_API void (lua_close) (lua_State *L); +LUA_API lua_State *(lua_newthread) (lua_State *L); + +LUA_API lua_CFunction (lua_atpanic) (lua_State *L, lua_CFunction panicf); + + +LUA_API const lua_Number *(lua_version) (lua_State *L); + + +/* +** basic stack manipulation +*/ +LUA_API int (lua_absindex) (lua_State *L, int idx); +LUA_API int (lua_gettop) (lua_State *L); +LUA_API void (lua_settop) (lua_State *L, int idx); +LUA_API void (lua_pushvalue) (lua_State *L, int idx); +LUA_API void (lua_rotate) (lua_State *L, int idx, int n); +LUA_API void (lua_copy) (lua_State *L, int fromidx, int toidx); +LUA_API int (lua_checkstack) (lua_State *L, int n); + +LUA_API void (lua_xmove) (lua_State *from, lua_State *to, int n); + + +/* +** access functions (stack -> C) +*/ + +LUA_API int (lua_isnumber) (lua_State *L, int idx); +LUA_API int (lua_isstring) (lua_State *L, int idx); +LUA_API int (lua_iscfunction) (lua_State *L, int idx); +LUA_API int (lua_isinteger) (lua_State *L, int idx); +LUA_API int (lua_isuserdata) (lua_State *L, int idx); +LUA_API int (lua_type) (lua_State *L, int idx); +LUA_API const char *(lua_typename) (lua_State *L, int tp); + +LUA_API lua_Number (lua_tonumberx) (lua_State *L, int idx, int *isnum); +LUA_API lua_Integer (lua_tointegerx) (lua_State *L, int idx, int *isnum); +LUA_API int (lua_toboolean) (lua_State *L, int idx); +LUA_API const char *(lua_tolstring) (lua_State *L, int idx, size_t *len); +LUA_API size_t (lua_rawlen) (lua_State *L, int idx); +LUA_API lua_CFunction (lua_tocfunction) (lua_State *L, int idx); +LUA_API void *(lua_touserdata) (lua_State *L, int idx); +LUA_API lua_State *(lua_tothread) (lua_State *L, int idx); +LUA_API const void *(lua_topointer) (lua_State *L, int idx); + + +/* +** Comparison and arithmetic functions +*/ + +#define LUA_OPADD 0 /* ORDER TM, ORDER OP */ +#define LUA_OPSUB 1 +#define LUA_OPMUL 2 +#define LUA_OPMOD 3 +#define LUA_OPPOW 4 +#define LUA_OPDIV 5 +#define LUA_OPIDIV 6 +#define LUA_OPBAND 7 +#define LUA_OPBOR 8 +#define LUA_OPBXOR 9 +#define LUA_OPSHL 10 +#define LUA_OPSHR 11 +#define LUA_OPUNM 12 +#define LUA_OPBNOT 13 + +LUA_API void (lua_arith) (lua_State *L, int op); + +#define LUA_OPEQ 0 +#define LUA_OPLT 1 +#define LUA_OPLE 2 + +LUA_API int (lua_rawequal) (lua_State *L, int idx1, int idx2); +LUA_API int (lua_compare) (lua_State *L, int idx1, int idx2, int op); + + +/* +** push functions (C -> stack) +*/ +LUA_API void (lua_pushnil) (lua_State *L); +LUA_API void (lua_pushnumber) (lua_State *L, lua_Number n); +LUA_API void (lua_pushinteger) (lua_State *L, lua_Integer n); +LUA_API const char *(lua_pushlstring) (lua_State *L, const char *s, size_t len); +LUA_API const char *(lua_pushstring) (lua_State *L, const char *s); +LUA_API const char *(lua_pushvfstring) (lua_State *L, const char *fmt, + va_list argp); +LUA_API const char *(lua_pushfstring) (lua_State *L, const char *fmt, ...); +LUA_API void (lua_pushcclosure) (lua_State *L, lua_CFunction fn, int n); +LUA_API void (lua_pushboolean) (lua_State *L, int b); +LUA_API void (lua_pushlightuserdata) (lua_State *L, void *p); +LUA_API int (lua_pushthread) (lua_State *L); + + +/* +** get functions (Lua -> stack) +*/ +LUA_API int (lua_getglobal) (lua_State *L, const char *name); +LUA_API int (lua_gettable) (lua_State *L, int idx); +LUA_API int (lua_getfield) (lua_State *L, int idx, const char *k); +LUA_API int (lua_geti) (lua_State *L, int idx, lua_Integer n); +LUA_API int (lua_rawget) (lua_State *L, int idx); +LUA_API int (lua_rawgeti) (lua_State *L, int idx, lua_Integer n); +LUA_API int (lua_rawgetp) (lua_State *L, int idx, const void *p); + +LUA_API void (lua_createtable) (lua_State *L, int narr, int nrec); +LUA_API void *(lua_newuserdata) (lua_State *L, size_t sz); +LUA_API int (lua_getmetatable) (lua_State *L, int objindex); +LUA_API int (lua_getuservalue) (lua_State *L, int idx); + + +/* +** set functions (stack -> Lua) +*/ +LUA_API void (lua_setglobal) (lua_State *L, const char *name); +LUA_API void (lua_settable) (lua_State *L, int idx); +LUA_API void (lua_setfield) (lua_State *L, int idx, const char *k); +LUA_API void (lua_seti) (lua_State *L, int idx, lua_Integer n); +LUA_API void (lua_rawset) (lua_State *L, int idx); +LUA_API void (lua_rawseti) (lua_State *L, int idx, lua_Integer n); +LUA_API void (lua_rawsetp) (lua_State *L, int idx, const void *p); +LUA_API int (lua_setmetatable) (lua_State *L, int objindex); +LUA_API void (lua_setuservalue) (lua_State *L, int idx); + + +/* +** 'load' and 'call' functions (load and run Lua code) +*/ +LUA_API void (lua_callk) (lua_State *L, int nargs, int nresults, + lua_KContext ctx, lua_KFunction k); +#define lua_call(L,n,r) lua_callk(L, (n), (r), 0, NULL) + +LUA_API int (lua_pcallk) (lua_State *L, int nargs, int nresults, int errfunc, + lua_KContext ctx, lua_KFunction k); +#define lua_pcall(L,n,r,f) lua_pcallk(L, (n), (r), (f), 0, NULL) + +LUA_API int (lua_load) (lua_State *L, lua_Reader reader, void *dt, + const char *chunkname, const char *mode); + +LUA_API int (lua_dump) (lua_State *L, lua_Writer writer, void *data, int strip); + + +/* +** coroutine functions +*/ +LUA_API int (lua_yieldk) (lua_State *L, int nresults, lua_KContext ctx, + lua_KFunction k); +LUA_API int (lua_resume) (lua_State *L, lua_State *from, int narg); +LUA_API int (lua_status) (lua_State *L); +LUA_API int (lua_isyieldable) (lua_State *L); + +#define lua_yield(L,n) lua_yieldk(L, (n), 0, NULL) + + +/* +** garbage-collection function and options +*/ + +#define LUA_GCSTOP 0 +#define LUA_GCRESTART 1 +#define LUA_GCCOLLECT 2 +#define LUA_GCCOUNT 3 +#define LUA_GCCOUNTB 4 +#define LUA_GCSTEP 5 +#define LUA_GCSETPAUSE 6 +#define LUA_GCSETSTEPMUL 7 +#define LUA_GCISRUNNING 9 + +LUA_API int (lua_gc) (lua_State *L, int what, int data); + + +/* +** miscellaneous functions +*/ + +LUA_API int (lua_error) (lua_State *L); + +LUA_API int (lua_next) (lua_State *L, int idx); + +LUA_API void (lua_concat) (lua_State *L, int n); +LUA_API void (lua_len) (lua_State *L, int idx); + +LUA_API size_t (lua_stringtonumber) (lua_State *L, const char *s); + +LUA_API lua_Alloc (lua_getallocf) (lua_State *L, void **ud); +LUA_API void (lua_setallocf) (lua_State *L, lua_Alloc f, void *ud); + + + +/* +** {============================================================== +** some useful macros +** =============================================================== +*/ + +#define lua_getextraspace(L) ((void *)((char *)(L) - LUA_EXTRASPACE)) + +#define lua_tonumber(L,i) lua_tonumberx(L,(i),NULL) +#define lua_tointeger(L,i) lua_tointegerx(L,(i),NULL) + +#define lua_pop(L,n) lua_settop(L, -(n)-1) + +#define lua_newtable(L) lua_createtable(L, 0, 0) + +#define lua_register(L,n,f) (lua_pushcfunction(L, (f)), lua_setglobal(L, (n))) + +#define lua_pushcfunction(L,f) lua_pushcclosure(L, (f), 0) + +#define lua_isfunction(L,n) (lua_type(L, (n)) == LUA_TFUNCTION) +#define lua_istable(L,n) (lua_type(L, (n)) == LUA_TTABLE) +#define lua_islightuserdata(L,n) (lua_type(L, (n)) == LUA_TLIGHTUSERDATA) +#define lua_isnil(L,n) (lua_type(L, (n)) == LUA_TNIL) +#define lua_isboolean(L,n) (lua_type(L, (n)) == LUA_TBOOLEAN) +#define lua_isthread(L,n) (lua_type(L, (n)) == LUA_TTHREAD) +#define lua_isnone(L,n) (lua_type(L, (n)) == LUA_TNONE) +#define lua_isnoneornil(L, n) (lua_type(L, (n)) <= 0) + +#define lua_pushliteral(L, s) lua_pushstring(L, "" s) + +#define lua_pushglobaltable(L) \ + ((void)lua_rawgeti(L, LUA_REGISTRYINDEX, LUA_RIDX_GLOBALS)) + +#define lua_tostring(L,i) lua_tolstring(L, (i), NULL) + + +#define lua_insert(L,idx) lua_rotate(L, (idx), 1) + +#define lua_remove(L,idx) (lua_rotate(L, (idx), -1), lua_pop(L, 1)) + +#define lua_replace(L,idx) (lua_copy(L, -1, (idx)), lua_pop(L, 1)) + +/* }============================================================== */ + + +/* +** {============================================================== +** compatibility macros for unsigned conversions +** =============================================================== +*/ +#if defined(LUA_COMPAT_APIINTCASTS) + +#define lua_pushunsigned(L,n) lua_pushinteger(L, (lua_Integer)(n)) +#define lua_tounsignedx(L,i,is) ((lua_Unsigned)lua_tointegerx(L,i,is)) +#define lua_tounsigned(L,i) lua_tounsignedx(L,(i),NULL) + +#endif +/* }============================================================== */ + +/* +** {====================================================================== +** Debug API +** ======================================================================= +*/ + + +/* +** Event codes +*/ +#define LUA_HOOKCALL 0 +#define LUA_HOOKRET 1 +#define LUA_HOOKLINE 2 +#define LUA_HOOKCOUNT 3 +#define LUA_HOOKTAILCALL 4 + + +/* +** Event masks +*/ +#define LUA_MASKCALL (1 << LUA_HOOKCALL) +#define LUA_MASKRET (1 << LUA_HOOKRET) +#define LUA_MASKLINE (1 << LUA_HOOKLINE) +#define LUA_MASKCOUNT (1 << LUA_HOOKCOUNT) + +typedef struct lua_Debug lua_Debug; /* activation record */ + + +/* Functions to be called by the debugger in specific events */ +typedef void (*lua_Hook) (lua_State *L, lua_Debug *ar); + + +LUA_API int (lua_getstack) (lua_State *L, int level, lua_Debug *ar); +LUA_API int (lua_getinfo) (lua_State *L, const char *what, lua_Debug *ar); +LUA_API const char *(lua_getlocal) (lua_State *L, const lua_Debug *ar, int n); +LUA_API const char *(lua_setlocal) (lua_State *L, const lua_Debug *ar, int n); +LUA_API const char *(lua_getupvalue) (lua_State *L, int funcindex, int n); +LUA_API const char *(lua_setupvalue) (lua_State *L, int funcindex, int n); + +LUA_API void *(lua_upvalueid) (lua_State *L, int fidx, int n); +LUA_API void (lua_upvaluejoin) (lua_State *L, int fidx1, int n1, + int fidx2, int n2); + +LUA_API void (lua_sethook) (lua_State *L, lua_Hook func, int mask, int count); +LUA_API lua_Hook (lua_gethook) (lua_State *L); +LUA_API int (lua_gethookmask) (lua_State *L); +LUA_API int (lua_gethookcount) (lua_State *L); + + +struct lua_Debug { + int event; + const char *name; /* (n) */ + const char *namewhat; /* (n) 'global', 'local', 'field', 'method' */ + const char *what; /* (S) 'Lua', 'C', 'main', 'tail' */ + const char *source; /* (S) */ + int currentline; /* (l) */ + int linedefined; /* (S) */ + int lastlinedefined; /* (S) */ + unsigned char nups; /* (u) number of upvalues */ + unsigned char nparams;/* (u) number of parameters */ + char isvararg; /* (u) */ + char istailcall; /* (t) */ + char short_src[LUA_IDSIZE]; /* (S) */ + /* private part */ + struct CallInfo *i_ci; /* active function */ +}; + +/* }====================================================================== */ + + +/****************************************************************************** +* Copyright (C) 1994-2017 Lua.org, PUC-Rio. +* +* Permission is hereby granted, free of charge, to any person obtaining +* a copy of this software and associated documentation files (the +* "Software"), to deal in the Software without restriction, including +* without limitation the rights to use, copy, modify, merge, publish, +* distribute, sublicense, and/or sell copies of the Software, and to +* permit persons to whom the Software is furnished to do so, subject to +* the following conditions: +* +* The above copyright notice and this permission notice shall be +* included in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +******************************************************************************/ + + +#endif diff --git a/3rd/lua-5.3.4/lua.hpp b/3rd/lua-5.3.4/lua.hpp new file mode 100644 index 0000000..ec417f5 --- /dev/null +++ b/3rd/lua-5.3.4/lua.hpp @@ -0,0 +1,9 @@ +// lua.hpp +// Lua header files for C++ +// <> not supplied automatically because Lua also compiles as C++ + +extern "C" { +#include "lua.h" +#include "lualib.h" +#include "lauxlib.h" +} diff --git a/3rd/lua-5.3.4/luac b/3rd/lua-5.3.4/luac new file mode 100755 index 0000000..484e6af Binary files /dev/null and b/3rd/lua-5.3.4/luac differ diff --git a/3rd/lua-5.3.4/luac.c b/3rd/lua-5.3.4/luac.c new file mode 100644 index 0000000..c0c91d0 --- /dev/null +++ b/3rd/lua-5.3.4/luac.c @@ -0,0 +1,449 @@ +/* +** $Id: luac.c,v 1.75 2015/03/12 01:58:27 lhf Exp $ +** Lua compiler (saves bytecodes to files; also lists bytecodes) +** See Copyright Notice in lua.h +*/ + +#define luac_c +#define LUA_CORE + +#include "lprefix.h" + +#include +#include +#include +#include +#include + +#include "lua.h" +#include "lauxlib.h" + +#include "lobject.h" +#include "lstate.h" +#include "lundump.h" + +static void PrintFunction(const Proto* f, int full); +#define luaU_print PrintFunction + +#define PROGNAME "luac" /* default program name */ +#define OUTPUT PROGNAME ".out" /* default output file */ + +static int listing=0; /* list bytecodes? */ +static int dumping=1; /* dump bytecodes? */ +static int stripping=0; /* strip debug information? */ +static char Output[]={ OUTPUT }; /* default output file name */ +static const char* output=Output; /* actual output file name */ +static const char* progname=PROGNAME; /* actual program name */ + +static void fatal(const char* message) +{ + fprintf(stderr,"%s: %s\n",progname,message); + exit(EXIT_FAILURE); +} + +static void cannot(const char* what) +{ + fprintf(stderr,"%s: cannot %s %s: %s\n",progname,what,output,strerror(errno)); + exit(EXIT_FAILURE); +} + +static void usage(const char* message) +{ + if (*message=='-') + fprintf(stderr,"%s: unrecognized option '%s'\n",progname,message); + else + fprintf(stderr,"%s: %s\n",progname,message); + fprintf(stderr, + "usage: %s [options] [filenames]\n" + "Available options are:\n" + " -l list (use -l -l for full listing)\n" + " -o name output to file 'name' (default is \"%s\")\n" + " -p parse only\n" + " -s strip debug information\n" + " -v show version information\n" + " -- stop handling options\n" + " - stop handling options and process stdin\n" + ,progname,Output); + exit(EXIT_FAILURE); +} + +#define IS(s) (strcmp(argv[i],s)==0) + +static int doargs(int argc, char* argv[]) +{ + int i; + int version=0; + if (argv[0]!=NULL && *argv[0]!=0) progname=argv[0]; + for (i=1; itop+(i)) + +static const Proto* combine(lua_State* L, int n) +{ + if (n==1) + return toproto(L,-1); + else + { + Proto* f; + int i=n; + if (lua_load(L,reader,&i,"=(" PROGNAME ")",NULL)!=LUA_OK) fatal(lua_tostring(L,-1)); + f=toproto(L,-1); + for (i=0; ip[i]=toproto(L,i-n-1); + if (f->p[i]->sizeupvalues>0) f->p[i]->upvalues[0].instack=0; + } + f->sizelineinfo=0; + return f; + } +} + +static int writer(lua_State* L, const void* p, size_t size, void* u) +{ + UNUSED(L); + return (fwrite(p,size,1,(FILE*)u)!=1) && (size!=0); +} + +static int pmain(lua_State* L) +{ + int argc=(int)lua_tointeger(L,1); + char** argv=(char**)lua_touserdata(L,2); + const Proto* f; + int i; + if (!lua_checkstack(L,argc)) fatal("too many input files"); + for (i=0; i1); + if (dumping) + { + FILE* D= (output==NULL) ? stdout : fopen(output,"wb"); + if (D==NULL) cannot("open"); + lua_lock(L); + luaU_dump(L,f,writer,D,stripping); + lua_unlock(L); + if (ferror(D)) cannot("write"); + if (fclose(D)) cannot("close"); + } + return 0; +} + +int main(int argc, char* argv[]) +{ + lua_State* L; + int i=doargs(argc,argv); + argc-=i; argv+=i; + if (argc<=0) usage("no input files given"); + L=luaL_newstate(); + if (L==NULL) fatal("cannot create state: not enough memory"); + lua_pushcfunction(L,&pmain); + lua_pushinteger(L,argc); + lua_pushlightuserdata(L,argv); + if (lua_pcall(L,2,0,0)!=LUA_OK) fatal(lua_tostring(L,-1)); + lua_close(L); + return EXIT_SUCCESS; +} + +/* +** $Id: luac.c,v 1.75 2015/03/12 01:58:27 lhf Exp $ +** print bytecodes +** See Copyright Notice in lua.h +*/ + +#include +#include + +#define luac_c +#define LUA_CORE + +#include "ldebug.h" +#include "lobject.h" +#include "lopcodes.h" + +#define VOID(p) ((const void*)(p)) + +static void PrintString(const TString* ts) +{ + const char* s=getstr(ts); + size_t i,n=tsslen(ts); + printf("%c",'"'); + for (i=0; ik[i]; + switch (ttype(o)) + { + case LUA_TNIL: + printf("nil"); + break; + case LUA_TBOOLEAN: + printf(bvalue(o) ? "true" : "false"); + break; + case LUA_TNUMFLT: + { + char buff[100]; + sprintf(buff,LUA_NUMBER_FMT,fltvalue(o)); + printf("%s",buff); + if (buff[strspn(buff,"-0123456789")]=='\0') printf(".0"); + break; + } + case LUA_TNUMINT: + printf(LUA_INTEGER_FMT,ivalue(o)); + break; + case LUA_TSHRSTR: case LUA_TLNGSTR: + PrintString(tsvalue(o)); + break; + default: /* cannot happen */ + printf("? type=%d",ttype(o)); + break; + } +} + +#define UPVALNAME(x) ((f->upvalues[x].name) ? getstr(f->upvalues[x].name) : "-") +#define MYK(x) (-1-(x)) + +static void PrintCode(const Proto* f) +{ + const Instruction* code=f->code; + int pc,n=f->sizecode; + for (pc=0; pc0) printf("[%d]\t",line); else printf("[-]\t"); + printf("%-9s\t",luaP_opnames[o]); + switch (getOpMode(o)) + { + case iABC: + printf("%d",a); + if (getBMode(o)!=OpArgN) printf(" %d",ISK(b) ? (MYK(INDEXK(b))) : b); + if (getCMode(o)!=OpArgN) printf(" %d",ISK(c) ? (MYK(INDEXK(c))) : c); + break; + case iABx: + printf("%d",a); + if (getBMode(o)==OpArgK) printf(" %d",MYK(bx)); + if (getBMode(o)==OpArgU) printf(" %d",bx); + break; + case iAsBx: + printf("%d %d",a,sbx); + break; + case iAx: + printf("%d",MYK(ax)); + break; + } + switch (o) + { + case OP_LOADK: + printf("\t; "); PrintConstant(f,bx); + break; + case OP_GETUPVAL: + case OP_SETUPVAL: + printf("\t; %s",UPVALNAME(b)); + break; + case OP_GETTABUP: + printf("\t; %s",UPVALNAME(b)); + if (ISK(c)) { printf(" "); PrintConstant(f,INDEXK(c)); } + break; + case OP_SETTABUP: + printf("\t; %s",UPVALNAME(a)); + if (ISK(b)) { printf(" "); PrintConstant(f,INDEXK(b)); } + if (ISK(c)) { printf(" "); PrintConstant(f,INDEXK(c)); } + break; + case OP_GETTABLE: + case OP_SELF: + if (ISK(c)) { printf("\t; "); PrintConstant(f,INDEXK(c)); } + break; + case OP_SETTABLE: + case OP_ADD: + case OP_SUB: + case OP_MUL: + case OP_POW: + case OP_DIV: + case OP_IDIV: + case OP_BAND: + case OP_BOR: + case OP_BXOR: + case OP_SHL: + case OP_SHR: + case OP_EQ: + case OP_LT: + case OP_LE: + if (ISK(b) || ISK(c)) + { + printf("\t; "); + if (ISK(b)) PrintConstant(f,INDEXK(b)); else printf("-"); + printf(" "); + if (ISK(c)) PrintConstant(f,INDEXK(c)); else printf("-"); + } + break; + case OP_JMP: + case OP_FORLOOP: + case OP_FORPREP: + case OP_TFORLOOP: + printf("\t; to %d",sbx+pc+2); + break; + case OP_CLOSURE: + printf("\t; %p",VOID(f->p[bx])); + break; + case OP_SETLIST: + if (c==0) printf("\t; %d",(int)code[++pc]); else printf("\t; %d",c); + break; + case OP_EXTRAARG: + printf("\t; "); PrintConstant(f,ax); + break; + default: + break; + } + printf("\n"); + } +} + +#define SS(x) ((x==1)?"":"s") +#define S(x) (int)(x),SS(x) + +static void PrintHeader(const Proto* f) +{ + const char* s=f->source ? getstr(f->source) : "=?"; + if (*s=='@' || *s=='=') + s++; + else if (*s==LUA_SIGNATURE[0]) + s="(bstring)"; + else + s="(string)"; + printf("\n%s <%s:%d,%d> (%d instruction%s at %p)\n", + (f->linedefined==0)?"main":"function",s, + f->linedefined,f->lastlinedefined, + S(f->sizecode),VOID(f)); + printf("%d%s param%s, %d slot%s, %d upvalue%s, ", + (int)(f->numparams),f->is_vararg?"+":"",SS(f->numparams), + S(f->maxstacksize),S(f->sizeupvalues)); + printf("%d local%s, %d constant%s, %d function%s\n", + S(f->sizelocvars),S(f->sizek),S(f->sizep)); +} + +static void PrintDebug(const Proto* f) +{ + int i,n; + n=f->sizek; + printf("constants (%d) for %p:\n",n,VOID(f)); + for (i=0; isizelocvars; + printf("locals (%d) for %p:\n",n,VOID(f)); + for (i=0; ilocvars[i].varname),f->locvars[i].startpc+1,f->locvars[i].endpc+1); + } + n=f->sizeupvalues; + printf("upvalues (%d) for %p:\n",n,VOID(f)); + for (i=0; iupvalues[i].instack,f->upvalues[i].idx); + } +} + +static void PrintFunction(const Proto* f, int full) +{ + int i,n=f->sizep; + PrintHeader(f); + PrintCode(f); + if (full) PrintDebug(f); + for (i=0; ip[i],full); +} diff --git a/3rd/lua-5.3.4/luaconf.h b/3rd/lua-5.3.4/luaconf.h new file mode 100644 index 0000000..f37bea0 --- /dev/null +++ b/3rd/lua-5.3.4/luaconf.h @@ -0,0 +1,783 @@ +/* +** $Id: luaconf.h,v 1.259 2016/12/22 13:08:50 roberto Exp $ +** Configuration file for Lua +** See Copyright Notice in lua.h +*/ + + +#ifndef luaconf_h +#define luaconf_h + +#include +#include + + +/* +** =================================================================== +** Search for "@@" to find all configurable definitions. +** =================================================================== +*/ + + +/* +** {==================================================================== +** System Configuration: macros to adapt (if needed) Lua to some +** particular platform, for instance compiling it with 32-bit numbers or +** restricting it to C89. +** ===================================================================== +*/ + +/* +@@ LUA_32BITS enables Lua with 32-bit integers and 32-bit floats. You +** can also define LUA_32BITS in the make file, but changing here you +** ensure that all software connected to Lua will be compiled with the +** same configuration. +*/ +/* #define LUA_32BITS */ + + +/* +@@ LUA_USE_C89 controls the use of non-ISO-C89 features. +** Define it if you want Lua to avoid the use of a few C99 features +** or Windows-specific features on Windows. +*/ +/* #define LUA_USE_C89 */ + + +/* +** By default, Lua on Windows use (some) specific Windows features +*/ +#if !defined(LUA_USE_C89) && defined(_WIN32) && !defined(_WIN32_WCE) +#define LUA_USE_WINDOWS /* enable goodies for regular Windows */ +#endif + + +#if defined(LUA_USE_WINDOWS) +#define LUA_DL_DLL /* enable support for DLL */ +#define LUA_USE_C89 /* broadly, Windows is C89 */ +#endif + + +#if defined(LUA_USE_LINUX) +#define LUA_USE_POSIX +#define LUA_USE_DLOPEN /* needs an extra library: -ldl */ +#define LUA_USE_READLINE /* needs some extra libraries */ +#endif + + +#if defined(LUA_USE_MACOSX) +#define LUA_USE_POSIX +#define LUA_USE_DLOPEN /* MacOS does not need -ldl */ +#define LUA_USE_READLINE /* needs an extra library: -lreadline */ +#endif + + +/* +@@ LUA_C89_NUMBERS ensures that Lua uses the largest types available for +** C89 ('long' and 'double'); Windows always has '__int64', so it does +** not need to use this case. +*/ +#if defined(LUA_USE_C89) && !defined(LUA_USE_WINDOWS) +#define LUA_C89_NUMBERS +#endif + + + +/* +@@ LUAI_BITSINT defines the (minimum) number of bits in an 'int'. +*/ +/* avoid undefined shifts */ +#if ((INT_MAX >> 15) >> 15) >= 1 +#define LUAI_BITSINT 32 +#else +/* 'int' always must have at least 16 bits */ +#define LUAI_BITSINT 16 +#endif + + +/* +@@ LUA_INT_TYPE defines the type for Lua integers. +@@ LUA_FLOAT_TYPE defines the type for Lua floats. +** Lua should work fine with any mix of these options (if supported +** by your C compiler). The usual configurations are 64-bit integers +** and 'double' (the default), 32-bit integers and 'float' (for +** restricted platforms), and 'long'/'double' (for C compilers not +** compliant with C99, which may not have support for 'long long'). +*/ + +/* predefined options for LUA_INT_TYPE */ +#define LUA_INT_INT 1 +#define LUA_INT_LONG 2 +#define LUA_INT_LONGLONG 3 + +/* predefined options for LUA_FLOAT_TYPE */ +#define LUA_FLOAT_FLOAT 1 +#define LUA_FLOAT_DOUBLE 2 +#define LUA_FLOAT_LONGDOUBLE 3 + +#if defined(LUA_32BITS) /* { */ +/* +** 32-bit integers and 'float' +*/ +#if LUAI_BITSINT >= 32 /* use 'int' if big enough */ +#define LUA_INT_TYPE LUA_INT_INT +#else /* otherwise use 'long' */ +#define LUA_INT_TYPE LUA_INT_LONG +#endif +#define LUA_FLOAT_TYPE LUA_FLOAT_FLOAT + +#elif defined(LUA_C89_NUMBERS) /* }{ */ +/* +** largest types available for C89 ('long' and 'double') +*/ +#define LUA_INT_TYPE LUA_INT_LONG +#define LUA_FLOAT_TYPE LUA_FLOAT_DOUBLE + +#endif /* } */ + + +/* +** default configuration for 64-bit Lua ('long long' and 'double') +*/ +#if !defined(LUA_INT_TYPE) +#define LUA_INT_TYPE LUA_INT_LONGLONG +#endif + +#if !defined(LUA_FLOAT_TYPE) +#define LUA_FLOAT_TYPE LUA_FLOAT_DOUBLE +#endif + +/* }================================================================== */ + + + + +/* +** {================================================================== +** Configuration for Paths. +** =================================================================== +*/ + +/* +** LUA_PATH_SEP is the character that separates templates in a path. +** LUA_PATH_MARK is the string that marks the substitution points in a +** template. +** LUA_EXEC_DIR in a Windows path is replaced by the executable's +** directory. +*/ +#define LUA_PATH_SEP ";" +#define LUA_PATH_MARK "?" +#define LUA_EXEC_DIR "!" + + +/* +@@ LUA_PATH_DEFAULT is the default path that Lua uses to look for +** Lua libraries. +@@ LUA_CPATH_DEFAULT is the default path that Lua uses to look for +** C libraries. +** CHANGE them if your machine has a non-conventional directory +** hierarchy or if you want to install your libraries in +** non-conventional directories. +*/ +#define LUA_VDIR LUA_VERSION_MAJOR "." LUA_VERSION_MINOR +#if defined(_WIN32) /* { */ +/* +** In Windows, any exclamation mark ('!') in the path is replaced by the +** path of the directory of the executable file of the current process. +*/ +#define LUA_LDIR "!\\lua\\" +#define LUA_CDIR "!\\" +#define LUA_SHRDIR "!\\..\\share\\lua\\" LUA_VDIR "\\" +#define LUA_PATH_DEFAULT \ + LUA_LDIR"?.lua;" LUA_LDIR"?\\init.lua;" \ + LUA_CDIR"?.lua;" LUA_CDIR"?\\init.lua;" \ + LUA_SHRDIR"?.lua;" LUA_SHRDIR"?\\init.lua;" \ + ".\\?.lua;" ".\\?\\init.lua" +#define LUA_CPATH_DEFAULT \ + LUA_CDIR"?.dll;" \ + LUA_CDIR"..\\lib\\lua\\" LUA_VDIR "\\?.dll;" \ + LUA_CDIR"loadall.dll;" ".\\?.dll" + +#else /* }{ */ + +#define LUA_ROOT "/usr/local/" +#define LUA_LDIR LUA_ROOT "share/lua/" LUA_VDIR "/" +#define LUA_CDIR LUA_ROOT "lib/lua/" LUA_VDIR "/" +#define LUA_PATH_DEFAULT \ + LUA_LDIR"?.lua;" LUA_LDIR"?/init.lua;" \ + LUA_CDIR"?.lua;" LUA_CDIR"?/init.lua;" \ + "./?.lua;" "./?/init.lua" +#define LUA_CPATH_DEFAULT \ + LUA_CDIR"?.so;" LUA_CDIR"loadall.so;" "./?.so" +#endif /* } */ + + +/* +@@ LUA_DIRSEP is the directory separator (for submodules). +** CHANGE it if your machine does not use "/" as the directory separator +** and is not Windows. (On Windows Lua automatically uses "\".) +*/ +#if defined(_WIN32) +#define LUA_DIRSEP "\\" +#else +#define LUA_DIRSEP "/" +#endif + +/* }================================================================== */ + + +/* +** {================================================================== +** Marks for exported symbols in the C code +** =================================================================== +*/ + +/* +@@ LUA_API is a mark for all core API functions. +@@ LUALIB_API is a mark for all auxiliary library functions. +@@ LUAMOD_API is a mark for all standard library opening functions. +** CHANGE them if you need to define those functions in some special way. +** For instance, if you want to create one Windows DLL with the core and +** the libraries, you may want to use the following definition (define +** LUA_BUILD_AS_DLL to get it). +*/ +#if defined(LUA_BUILD_AS_DLL) /* { */ + +#if defined(LUA_CORE) || defined(LUA_LIB) /* { */ +#define LUA_API __declspec(dllexport) +#else /* }{ */ +#define LUA_API __declspec(dllimport) +#endif /* } */ + +#else /* }{ */ + +#define LUA_API extern + +#endif /* } */ + + +/* more often than not the libs go together with the core */ +#define LUALIB_API LUA_API +#define LUAMOD_API LUALIB_API + + +/* +@@ LUAI_FUNC is a mark for all extern functions that are not to be +** exported to outside modules. +@@ LUAI_DDEF and LUAI_DDEC are marks for all extern (const) variables +** that are not to be exported to outside modules (LUAI_DDEF for +** definitions and LUAI_DDEC for declarations). +** CHANGE them if you need to mark them in some special way. Elf/gcc +** (versions 3.2 and later) mark them as "hidden" to optimize access +** when Lua is compiled as a shared library. Not all elf targets support +** this attribute. Unfortunately, gcc does not offer a way to check +** whether the target offers that support, and those without support +** give a warning about it. To avoid these warnings, change to the +** default definition. +*/ +#if defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 302) && \ + defined(__ELF__) /* { */ +#define LUAI_FUNC __attribute__((visibility("hidden"))) extern +#else /* }{ */ +#define LUAI_FUNC extern +#endif /* } */ + +#define LUAI_DDEC LUAI_FUNC +#define LUAI_DDEF /* empty */ + +/* }================================================================== */ + + +/* +** {================================================================== +** Compatibility with previous versions +** =================================================================== +*/ + +/* +@@ LUA_COMPAT_5_2 controls other macros for compatibility with Lua 5.2. +@@ LUA_COMPAT_5_1 controls other macros for compatibility with Lua 5.1. +** You can define it to get all options, or change specific options +** to fit your specific needs. +*/ +#if defined(LUA_COMPAT_5_2) /* { */ + +/* +@@ LUA_COMPAT_MATHLIB controls the presence of several deprecated +** functions in the mathematical library. +*/ +#define LUA_COMPAT_MATHLIB + +/* +@@ LUA_COMPAT_BITLIB controls the presence of library 'bit32'. +*/ +#define LUA_COMPAT_BITLIB + +/* +@@ LUA_COMPAT_IPAIRS controls the effectiveness of the __ipairs metamethod. +*/ +#define LUA_COMPAT_IPAIRS + +/* +@@ LUA_COMPAT_APIINTCASTS controls the presence of macros for +** manipulating other integer types (lua_pushunsigned, lua_tounsigned, +** luaL_checkint, luaL_checklong, etc.) +*/ +#define LUA_COMPAT_APIINTCASTS + +#endif /* } */ + + +#if defined(LUA_COMPAT_5_1) /* { */ + +/* Incompatibilities from 5.2 -> 5.3 */ +#define LUA_COMPAT_MATHLIB +#define LUA_COMPAT_APIINTCASTS + +/* +@@ LUA_COMPAT_UNPACK controls the presence of global 'unpack'. +** You can replace it with 'table.unpack'. +*/ +#define LUA_COMPAT_UNPACK + +/* +@@ LUA_COMPAT_LOADERS controls the presence of table 'package.loaders'. +** You can replace it with 'package.searchers'. +*/ +#define LUA_COMPAT_LOADERS + +/* +@@ macro 'lua_cpcall' emulates deprecated function lua_cpcall. +** You can call your C function directly (with light C functions). +*/ +#define lua_cpcall(L,f,u) \ + (lua_pushcfunction(L, (f)), \ + lua_pushlightuserdata(L,(u)), \ + lua_pcall(L,1,0,0)) + + +/* +@@ LUA_COMPAT_LOG10 defines the function 'log10' in the math library. +** You can rewrite 'log10(x)' as 'log(x, 10)'. +*/ +#define LUA_COMPAT_LOG10 + +/* +@@ LUA_COMPAT_LOADSTRING defines the function 'loadstring' in the base +** library. You can rewrite 'loadstring(s)' as 'load(s)'. +*/ +#define LUA_COMPAT_LOADSTRING + +/* +@@ LUA_COMPAT_MAXN defines the function 'maxn' in the table library. +*/ +#define LUA_COMPAT_MAXN + +/* +@@ The following macros supply trivial compatibility for some +** changes in the API. The macros themselves document how to +** change your code to avoid using them. +*/ +#define lua_strlen(L,i) lua_rawlen(L, (i)) + +#define lua_objlen(L,i) lua_rawlen(L, (i)) + +#define lua_equal(L,idx1,idx2) lua_compare(L,(idx1),(idx2),LUA_OPEQ) +#define lua_lessthan(L,idx1,idx2) lua_compare(L,(idx1),(idx2),LUA_OPLT) + +/* +@@ LUA_COMPAT_MODULE controls compatibility with previous +** module functions 'module' (Lua) and 'luaL_register' (C). +*/ +#define LUA_COMPAT_MODULE + +#endif /* } */ + + +/* +@@ LUA_COMPAT_FLOATSTRING makes Lua format integral floats without a +@@ a float mark ('.0'). +** This macro is not on by default even in compatibility mode, +** because this is not really an incompatibility. +*/ +/* #define LUA_COMPAT_FLOATSTRING */ + +/* }================================================================== */ + + + +/* +** {================================================================== +** Configuration for Numbers. +** Change these definitions if no predefined LUA_FLOAT_* / LUA_INT_* +** satisfy your needs. +** =================================================================== +*/ + +/* +@@ LUA_NUMBER is the floating-point type used by Lua. +@@ LUAI_UACNUMBER is the result of a 'default argument promotion' +@@ over a floating number. +@@ l_mathlim(x) corrects limit name 'x' to the proper float type +** by prefixing it with one of FLT/DBL/LDBL. +@@ LUA_NUMBER_FRMLEN is the length modifier for writing floats. +@@ LUA_NUMBER_FMT is the format for writing floats. +@@ lua_number2str converts a float to a string. +@@ l_mathop allows the addition of an 'l' or 'f' to all math operations. +@@ l_floor takes the floor of a float. +@@ lua_str2number converts a decimal numeric string to a number. +*/ + + +/* The following definitions are good for most cases here */ + +#define l_floor(x) (l_mathop(floor)(x)) + +#define lua_number2str(s,sz,n) \ + l_sprintf((s), sz, LUA_NUMBER_FMT, (LUAI_UACNUMBER)(n)) + +/* +@@ lua_numbertointeger converts a float number to an integer, or +** returns 0 if float is not within the range of a lua_Integer. +** (The range comparisons are tricky because of rounding. The tests +** here assume a two-complement representation, where MININTEGER always +** has an exact representation as a float; MAXINTEGER may not have one, +** and therefore its conversion to float may have an ill-defined value.) +*/ +#define lua_numbertointeger(n,p) \ + ((n) >= (LUA_NUMBER)(LUA_MININTEGER) && \ + (n) < -(LUA_NUMBER)(LUA_MININTEGER) && \ + (*(p) = (LUA_INTEGER)(n), 1)) + + +/* now the variable definitions */ + +#if LUA_FLOAT_TYPE == LUA_FLOAT_FLOAT /* { single float */ + +#define LUA_NUMBER float + +#define l_mathlim(n) (FLT_##n) + +#define LUAI_UACNUMBER double + +#define LUA_NUMBER_FRMLEN "" +#define LUA_NUMBER_FMT "%.7g" + +#define l_mathop(op) op##f + +#define lua_str2number(s,p) strtof((s), (p)) + + +#elif LUA_FLOAT_TYPE == LUA_FLOAT_LONGDOUBLE /* }{ long double */ + +#define LUA_NUMBER long double + +#define l_mathlim(n) (LDBL_##n) + +#define LUAI_UACNUMBER long double + +#define LUA_NUMBER_FRMLEN "L" +#define LUA_NUMBER_FMT "%.19Lg" + +#define l_mathop(op) op##l + +#define lua_str2number(s,p) strtold((s), (p)) + +#elif LUA_FLOAT_TYPE == LUA_FLOAT_DOUBLE /* }{ double */ + +#define LUA_NUMBER double + +#define l_mathlim(n) (DBL_##n) + +#define LUAI_UACNUMBER double + +#define LUA_NUMBER_FRMLEN "" +#define LUA_NUMBER_FMT "%.14g" + +#define l_mathop(op) op + +#define lua_str2number(s,p) strtod((s), (p)) + +#else /* }{ */ + +#error "numeric float type not defined" + +#endif /* } */ + + + +/* +@@ LUA_INTEGER is the integer type used by Lua. +** +@@ LUA_UNSIGNED is the unsigned version of LUA_INTEGER. +** +@@ LUAI_UACINT is the result of a 'default argument promotion' +@@ over a lUA_INTEGER. +@@ LUA_INTEGER_FRMLEN is the length modifier for reading/writing integers. +@@ LUA_INTEGER_FMT is the format for writing integers. +@@ LUA_MAXINTEGER is the maximum value for a LUA_INTEGER. +@@ LUA_MININTEGER is the minimum value for a LUA_INTEGER. +@@ lua_integer2str converts an integer to a string. +*/ + + +/* The following definitions are good for most cases here */ + +#define LUA_INTEGER_FMT "%" LUA_INTEGER_FRMLEN "d" + +#define LUAI_UACINT LUA_INTEGER + +#define lua_integer2str(s,sz,n) \ + l_sprintf((s), sz, LUA_INTEGER_FMT, (LUAI_UACINT)(n)) + +/* +** use LUAI_UACINT here to avoid problems with promotions (which +** can turn a comparison between unsigneds into a signed comparison) +*/ +#define LUA_UNSIGNED unsigned LUAI_UACINT + + +/* now the variable definitions */ + +#if LUA_INT_TYPE == LUA_INT_INT /* { int */ + +#define LUA_INTEGER int +#define LUA_INTEGER_FRMLEN "" + +#define LUA_MAXINTEGER INT_MAX +#define LUA_MININTEGER INT_MIN + +#elif LUA_INT_TYPE == LUA_INT_LONG /* }{ long */ + +#define LUA_INTEGER long +#define LUA_INTEGER_FRMLEN "l" + +#define LUA_MAXINTEGER LONG_MAX +#define LUA_MININTEGER LONG_MIN + +#elif LUA_INT_TYPE == LUA_INT_LONGLONG /* }{ long long */ + +/* use presence of macro LLONG_MAX as proxy for C99 compliance */ +#if defined(LLONG_MAX) /* { */ +/* use ISO C99 stuff */ + +#define LUA_INTEGER long long +#define LUA_INTEGER_FRMLEN "ll" + +#define LUA_MAXINTEGER LLONG_MAX +#define LUA_MININTEGER LLONG_MIN + +#elif defined(LUA_USE_WINDOWS) /* }{ */ +/* in Windows, can use specific Windows types */ + +#define LUA_INTEGER __int64 +#define LUA_INTEGER_FRMLEN "I64" + +#define LUA_MAXINTEGER _I64_MAX +#define LUA_MININTEGER _I64_MIN + +#else /* }{ */ + +#error "Compiler does not support 'long long'. Use option '-DLUA_32BITS' \ + or '-DLUA_C89_NUMBERS' (see file 'luaconf.h' for details)" + +#endif /* } */ + +#else /* }{ */ + +#error "numeric integer type not defined" + +#endif /* } */ + +/* }================================================================== */ + + +/* +** {================================================================== +** Dependencies with C99 and other C details +** =================================================================== +*/ + +/* +@@ l_sprintf is equivalent to 'snprintf' or 'sprintf' in C89. +** (All uses in Lua have only one format item.) +*/ +#if !defined(LUA_USE_C89) +#define l_sprintf(s,sz,f,i) snprintf(s,sz,f,i) +#else +#define l_sprintf(s,sz,f,i) ((void)(sz), sprintf(s,f,i)) +#endif + + +/* +@@ lua_strx2number converts an hexadecimal numeric string to a number. +** In C99, 'strtod' does that conversion. Otherwise, you can +** leave 'lua_strx2number' undefined and Lua will provide its own +** implementation. +*/ +#if !defined(LUA_USE_C89) +#define lua_strx2number(s,p) lua_str2number(s,p) +#endif + + +/* +@@ lua_number2strx converts a float to an hexadecimal numeric string. +** In C99, 'sprintf' (with format specifiers '%a'/'%A') does that. +** Otherwise, you can leave 'lua_number2strx' undefined and Lua will +** provide its own implementation. +*/ +#if !defined(LUA_USE_C89) +#define lua_number2strx(L,b,sz,f,n) \ + ((void)L, l_sprintf(b,sz,f,(LUAI_UACNUMBER)(n))) +#endif + + +/* +** 'strtof' and 'opf' variants for math functions are not valid in +** C89. Otherwise, the macro 'HUGE_VALF' is a good proxy for testing the +** availability of these variants. ('math.h' is already included in +** all files that use these macros.) +*/ +#if defined(LUA_USE_C89) || (defined(HUGE_VAL) && !defined(HUGE_VALF)) +#undef l_mathop /* variants not available */ +#undef lua_str2number +#define l_mathop(op) (lua_Number)op /* no variant */ +#define lua_str2number(s,p) ((lua_Number)strtod((s), (p))) +#endif + + +/* +@@ LUA_KCONTEXT is the type of the context ('ctx') for continuation +** functions. It must be a numerical type; Lua will use 'intptr_t' if +** available, otherwise it will use 'ptrdiff_t' (the nearest thing to +** 'intptr_t' in C89) +*/ +#define LUA_KCONTEXT ptrdiff_t + +#if !defined(LUA_USE_C89) && defined(__STDC_VERSION__) && \ + __STDC_VERSION__ >= 199901L +#include +#if defined(INTPTR_MAX) /* even in C99 this type is optional */ +#undef LUA_KCONTEXT +#define LUA_KCONTEXT intptr_t +#endif +#endif + + +/* +@@ lua_getlocaledecpoint gets the locale "radix character" (decimal point). +** Change that if you do not want to use C locales. (Code using this +** macro must include header 'locale.h'.) +*/ +#if !defined(lua_getlocaledecpoint) +#define lua_getlocaledecpoint() (localeconv()->decimal_point[0]) +#endif + +/* }================================================================== */ + + +/* +** {================================================================== +** Language Variations +** ===================================================================== +*/ + +/* +@@ LUA_NOCVTN2S/LUA_NOCVTS2N control how Lua performs some +** coercions. Define LUA_NOCVTN2S to turn off automatic coercion from +** numbers to strings. Define LUA_NOCVTS2N to turn off automatic +** coercion from strings to numbers. +*/ +/* #define LUA_NOCVTN2S */ +/* #define LUA_NOCVTS2N */ + + +/* +@@ LUA_USE_APICHECK turns on several consistency checks on the C API. +** Define it as a help when debugging C code. +*/ +#if defined(LUA_USE_APICHECK) +#include +#define luai_apicheck(l,e) assert(e) +#endif + +/* }================================================================== */ + + +/* +** {================================================================== +** Macros that affect the API and must be stable (that is, must be the +** same when you compile Lua and when you compile code that links to +** Lua). You probably do not want/need to change them. +** ===================================================================== +*/ + +/* +@@ LUAI_MAXSTACK limits the size of the Lua stack. +** CHANGE it if you need a different limit. This limit is arbitrary; +** its only purpose is to stop Lua from consuming unlimited stack +** space (and to reserve some numbers for pseudo-indices). +*/ +#if LUAI_BITSINT >= 32 +#define LUAI_MAXSTACK 1000000 +#else +#define LUAI_MAXSTACK 15000 +#endif + + +/* +@@ LUA_EXTRASPACE defines the size of a raw memory area associated with +** a Lua state with very fast access. +** CHANGE it if you need a different size. +*/ +#define LUA_EXTRASPACE (sizeof(void *)) + + +/* +@@ LUA_IDSIZE gives the maximum size for the description of the source +@@ of a function in debug information. +** CHANGE it if you want a different size. +*/ +#define LUA_IDSIZE 60 + + +/* +@@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system. +** CHANGE it if it uses too much C-stack space. (For long double, +** 'string.format("%.99f", -1e4932)' needs 5034 bytes, so a +** smaller buffer would force a memory allocation for each call to +** 'string.format'.) +*/ +#if LUA_FLOAT_TYPE == LUA_FLOAT_LONGDOUBLE +#define LUAL_BUFFERSIZE 8192 +#else +#define LUAL_BUFFERSIZE ((int)(0x80 * sizeof(void*) * sizeof(lua_Integer))) +#endif + +/* }================================================================== */ + + +/* +@@ LUA_QL describes how error messages quote program elements. +** Lua does not use these macros anymore; they are here for +** compatibility only. +*/ +#define LUA_QL(x) "'" x "'" +#define LUA_QS LUA_QL("%s") + + + + +/* =================================================================== */ + +/* +** Local configuration. You can use this space to add your redefinitions +** without modifying the main part of the file. +*/ + + + + + +#endif + diff --git a/3rd/lua-5.3.4/lualib.h b/3rd/lua-5.3.4/lualib.h new file mode 100644 index 0000000..6c0bc4c --- /dev/null +++ b/3rd/lua-5.3.4/lualib.h @@ -0,0 +1,61 @@ +/* +** $Id: lualib.h,v 1.45 2017/01/12 17:14:26 roberto Exp $ +** Lua standard libraries +** See Copyright Notice in lua.h +*/ + + +#ifndef lualib_h +#define lualib_h + +#include "lua.h" + + +/* version suffix for environment variable names */ +#define LUA_VERSUFFIX "_" LUA_VERSION_MAJOR "_" LUA_VERSION_MINOR + + +LUAMOD_API int (luaopen_base) (lua_State *L); + +#define LUA_COLIBNAME "coroutine" +LUAMOD_API int (luaopen_coroutine) (lua_State *L); + +#define LUA_TABLIBNAME "table" +LUAMOD_API int (luaopen_table) (lua_State *L); + +#define LUA_IOLIBNAME "io" +LUAMOD_API int (luaopen_io) (lua_State *L); + +#define LUA_OSLIBNAME "os" +LUAMOD_API int (luaopen_os) (lua_State *L); + +#define LUA_STRLIBNAME "string" +LUAMOD_API int (luaopen_string) (lua_State *L); + +#define LUA_UTF8LIBNAME "utf8" +LUAMOD_API int (luaopen_utf8) (lua_State *L); + +#define LUA_BITLIBNAME "bit32" +LUAMOD_API int (luaopen_bit32) (lua_State *L); + +#define LUA_MATHLIBNAME "math" +LUAMOD_API int (luaopen_math) (lua_State *L); + +#define LUA_DBLIBNAME "debug" +LUAMOD_API int (luaopen_debug) (lua_State *L); + +#define LUA_LOADLIBNAME "package" +LUAMOD_API int (luaopen_package) (lua_State *L); + + +/* open all previous libraries */ +LUALIB_API void (luaL_openlibs) (lua_State *L); + + + +#if !defined(lua_assert) +#define lua_assert(x) ((void)0) +#endif + + +#endif diff --git a/3rd/lua-5.3.4/lundump.c b/3rd/lua-5.3.4/lundump.c new file mode 100644 index 0000000..4080af9 --- /dev/null +++ b/3rd/lua-5.3.4/lundump.c @@ -0,0 +1,279 @@ +/* +** $Id: lundump.c,v 2.44 2015/11/02 16:09:30 roberto Exp $ +** load precompiled Lua chunks +** See Copyright Notice in lua.h +*/ + +#define lundump_c +#define LUA_CORE + +#include "lprefix.h" + + +#include + +#include "lua.h" + +#include "ldebug.h" +#include "ldo.h" +#include "lfunc.h" +#include "lmem.h" +#include "lobject.h" +#include "lstring.h" +#include "lundump.h" +#include "lzio.h" + + +#if !defined(luai_verifycode) +#define luai_verifycode(L,b,f) /* empty */ +#endif + + +typedef struct { + lua_State *L; + ZIO *Z; + const char *name; +} LoadState; + + +static l_noret error(LoadState *S, const char *why) { + luaO_pushfstring(S->L, "%s: %s precompiled chunk", S->name, why); + luaD_throw(S->L, LUA_ERRSYNTAX); +} + + +/* +** All high-level loads go through LoadVector; you can change it to +** adapt to the endianness of the input +*/ +#define LoadVector(S,b,n) LoadBlock(S,b,(n)*sizeof((b)[0])) + +static void LoadBlock (LoadState *S, void *b, size_t size) { + if (luaZ_read(S->Z, b, size) != 0) + error(S, "truncated"); +} + + +#define LoadVar(S,x) LoadVector(S,&x,1) + + +static lu_byte LoadByte (LoadState *S) { + lu_byte x; + LoadVar(S, x); + return x; +} + + +static int LoadInt (LoadState *S) { + int x; + LoadVar(S, x); + return x; +} + + +static lua_Number LoadNumber (LoadState *S) { + lua_Number x; + LoadVar(S, x); + return x; +} + + +static lua_Integer LoadInteger (LoadState *S) { + lua_Integer x; + LoadVar(S, x); + return x; +} + + +static TString *LoadString (LoadState *S) { + size_t size = LoadByte(S); + if (size == 0xFF) + LoadVar(S, size); + if (size == 0) + return NULL; + else if (--size <= LUAI_MAXSHORTLEN) { /* short string? */ + char buff[LUAI_MAXSHORTLEN]; + LoadVector(S, buff, size); + return luaS_newlstr(S->L, buff, size); + } + else { /* long string */ + TString *ts = luaS_createlngstrobj(S->L, size); + LoadVector(S, getstr(ts), size); /* load directly in final place */ + return ts; + } +} + + +static void LoadCode (LoadState *S, Proto *f) { + int n = LoadInt(S); + f->code = luaM_newvector(S->L, n, Instruction); + f->sizecode = n; + LoadVector(S, f->code, n); +} + + +static void LoadFunction(LoadState *S, Proto *f, TString *psource); + + +static void LoadConstants (LoadState *S, Proto *f) { + int i; + int n = LoadInt(S); + f->k = luaM_newvector(S->L, n, TValue); + f->sizek = n; + for (i = 0; i < n; i++) + setnilvalue(&f->k[i]); + for (i = 0; i < n; i++) { + TValue *o = &f->k[i]; + int t = LoadByte(S); + switch (t) { + case LUA_TNIL: + setnilvalue(o); + break; + case LUA_TBOOLEAN: + setbvalue(o, LoadByte(S)); + break; + case LUA_TNUMFLT: + setfltvalue(o, LoadNumber(S)); + break; + case LUA_TNUMINT: + setivalue(o, LoadInteger(S)); + break; + case LUA_TSHRSTR: + case LUA_TLNGSTR: + setsvalue2n(S->L, o, LoadString(S)); + break; + default: + lua_assert(0); + } + } +} + + +static void LoadProtos (LoadState *S, Proto *f) { + int i; + int n = LoadInt(S); + f->p = luaM_newvector(S->L, n, Proto *); + f->sizep = n; + for (i = 0; i < n; i++) + f->p[i] = NULL; + for (i = 0; i < n; i++) { + f->p[i] = luaF_newproto(S->L); + LoadFunction(S, f->p[i], f->source); + } +} + + +static void LoadUpvalues (LoadState *S, Proto *f) { + int i, n; + n = LoadInt(S); + f->upvalues = luaM_newvector(S->L, n, Upvaldesc); + f->sizeupvalues = n; + for (i = 0; i < n; i++) + f->upvalues[i].name = NULL; + for (i = 0; i < n; i++) { + f->upvalues[i].instack = LoadByte(S); + f->upvalues[i].idx = LoadByte(S); + } +} + + +static void LoadDebug (LoadState *S, Proto *f) { + int i, n; + n = LoadInt(S); + f->lineinfo = luaM_newvector(S->L, n, int); + f->sizelineinfo = n; + LoadVector(S, f->lineinfo, n); + n = LoadInt(S); + f->locvars = luaM_newvector(S->L, n, LocVar); + f->sizelocvars = n; + for (i = 0; i < n; i++) + f->locvars[i].varname = NULL; + for (i = 0; i < n; i++) { + f->locvars[i].varname = LoadString(S); + f->locvars[i].startpc = LoadInt(S); + f->locvars[i].endpc = LoadInt(S); + } + n = LoadInt(S); + for (i = 0; i < n; i++) + f->upvalues[i].name = LoadString(S); +} + + +static void LoadFunction (LoadState *S, Proto *f, TString *psource) { + f->source = LoadString(S); + if (f->source == NULL) /* no source in dump? */ + f->source = psource; /* reuse parent's source */ + f->linedefined = LoadInt(S); + f->lastlinedefined = LoadInt(S); + f->numparams = LoadByte(S); + f->is_vararg = LoadByte(S); + f->maxstacksize = LoadByte(S); + LoadCode(S, f); + LoadConstants(S, f); + LoadUpvalues(S, f); + LoadProtos(S, f); + LoadDebug(S, f); +} + + +static void checkliteral (LoadState *S, const char *s, const char *msg) { + char buff[sizeof(LUA_SIGNATURE) + sizeof(LUAC_DATA)]; /* larger than both */ + size_t len = strlen(s); + LoadVector(S, buff, len); + if (memcmp(s, buff, len) != 0) + error(S, msg); +} + + +static void fchecksize (LoadState *S, size_t size, const char *tname) { + if (LoadByte(S) != size) + error(S, luaO_pushfstring(S->L, "%s size mismatch in", tname)); +} + + +#define checksize(S,t) fchecksize(S,sizeof(t),#t) + +static void checkHeader (LoadState *S) { + checkliteral(S, LUA_SIGNATURE + 1, "not a"); /* 1st char already checked */ + if (LoadByte(S) != LUAC_VERSION) + error(S, "version mismatch in"); + if (LoadByte(S) != LUAC_FORMAT) + error(S, "format mismatch in"); + checkliteral(S, LUAC_DATA, "corrupted"); + checksize(S, int); + checksize(S, size_t); + checksize(S, Instruction); + checksize(S, lua_Integer); + checksize(S, lua_Number); + if (LoadInteger(S) != LUAC_INT) + error(S, "endianness mismatch in"); + if (LoadNumber(S) != LUAC_NUM) + error(S, "float format mismatch in"); +} + + +/* +** load precompiled chunk +*/ +LClosure *luaU_undump(lua_State *L, ZIO *Z, const char *name) { + LoadState S; + LClosure *cl; + if (*name == '@' || *name == '=') + S.name = name + 1; + else if (*name == LUA_SIGNATURE[0]) + S.name = "binary string"; + else + S.name = name; + S.L = L; + S.Z = Z; + checkHeader(&S); + cl = luaF_newLclosure(L, LoadByte(&S)); + setclLvalue(L, L->top, cl); + luaD_inctop(L); + cl->p = luaF_newproto(L); + LoadFunction(&S, cl->p, NULL); + lua_assert(cl->nupvalues == cl->p->sizeupvalues); + luai_verifycode(L, buff, cl->p); + return cl; +} + diff --git a/3rd/lua-5.3.4/lundump.h b/3rd/lua-5.3.4/lundump.h new file mode 100644 index 0000000..aa5cc82 --- /dev/null +++ b/3rd/lua-5.3.4/lundump.h @@ -0,0 +1,32 @@ +/* +** $Id: lundump.h,v 1.45 2015/09/08 15:41:05 roberto Exp $ +** load precompiled Lua chunks +** See Copyright Notice in lua.h +*/ + +#ifndef lundump_h +#define lundump_h + +#include "llimits.h" +#include "lobject.h" +#include "lzio.h" + + +/* data to catch conversion errors */ +#define LUAC_DATA "\x19\x93\r\n\x1a\n" + +#define LUAC_INT 0x5678 +#define LUAC_NUM cast_num(370.5) + +#define MYINT(s) (s[0]-'0') +#define LUAC_VERSION (MYINT(LUA_VERSION_MAJOR)*16+MYINT(LUA_VERSION_MINOR)) +#define LUAC_FORMAT 0 /* this is the official format */ + +/* load one chunk; from lundump.c */ +LUAI_FUNC LClosure* luaU_undump (lua_State* L, ZIO* Z, const char* name); + +/* dump one chunk; from ldump.c */ +LUAI_FUNC int luaU_dump (lua_State* L, const Proto* f, lua_Writer w, + void* data, int strip); + +#endif diff --git a/3rd/lua-5.3.4/lutf8lib.c b/3rd/lua-5.3.4/lutf8lib.c new file mode 100644 index 0000000..de9e3dc --- /dev/null +++ b/3rd/lua-5.3.4/lutf8lib.c @@ -0,0 +1,256 @@ +/* +** $Id: lutf8lib.c,v 1.16 2016/12/22 13:08:50 roberto Exp $ +** Standard library for UTF-8 manipulation +** See Copyright Notice in lua.h +*/ + +#define lutf8lib_c +#define LUA_LIB + +#include "lprefix.h" + + +#include +#include +#include +#include + +#include "lua.h" + +#include "lauxlib.h" +#include "lualib.h" + +#define MAXUNICODE 0x10FFFF + +#define iscont(p) ((*(p) & 0xC0) == 0x80) + + +/* from strlib */ +/* translate a relative string position: negative means back from end */ +static lua_Integer u_posrelat (lua_Integer pos, size_t len) { + if (pos >= 0) return pos; + else if (0u - (size_t)pos > len) return 0; + else return (lua_Integer)len + pos + 1; +} + + +/* +** Decode one UTF-8 sequence, returning NULL if byte sequence is invalid. +*/ +static const char *utf8_decode (const char *o, int *val) { + static const unsigned int limits[] = {0xFF, 0x7F, 0x7FF, 0xFFFF}; + const unsigned char *s = (const unsigned char *)o; + unsigned int c = s[0]; + unsigned int res = 0; /* final result */ + if (c < 0x80) /* ascii? */ + res = c; + else { + int count = 0; /* to count number of continuation bytes */ + while (c & 0x40) { /* still have continuation bytes? */ + int cc = s[++count]; /* read next byte */ + if ((cc & 0xC0) != 0x80) /* not a continuation byte? */ + return NULL; /* invalid byte sequence */ + res = (res << 6) | (cc & 0x3F); /* add lower 6 bits from cont. byte */ + c <<= 1; /* to test next bit */ + } + res |= ((c & 0x7F) << (count * 5)); /* add first byte */ + if (count > 3 || res > MAXUNICODE || res <= limits[count]) + return NULL; /* invalid byte sequence */ + s += count; /* skip continuation bytes read */ + } + if (val) *val = res; + return (const char *)s + 1; /* +1 to include first byte */ +} + + +/* +** utf8len(s [, i [, j]]) --> number of characters that start in the +** range [i,j], or nil + current position if 's' is not well formed in +** that interval +*/ +static int utflen (lua_State *L) { + int n = 0; + size_t len; + const char *s = luaL_checklstring(L, 1, &len); + lua_Integer posi = u_posrelat(luaL_optinteger(L, 2, 1), len); + lua_Integer posj = u_posrelat(luaL_optinteger(L, 3, -1), len); + luaL_argcheck(L, 1 <= posi && --posi <= (lua_Integer)len, 2, + "initial position out of string"); + luaL_argcheck(L, --posj < (lua_Integer)len, 3, + "final position out of string"); + while (posi <= posj) { + const char *s1 = utf8_decode(s + posi, NULL); + if (s1 == NULL) { /* conversion error? */ + lua_pushnil(L); /* return nil ... */ + lua_pushinteger(L, posi + 1); /* ... and current position */ + return 2; + } + posi = s1 - s; + n++; + } + lua_pushinteger(L, n); + return 1; +} + + +/* +** codepoint(s, [i, [j]]) -> returns codepoints for all characters +** that start in the range [i,j] +*/ +static int codepoint (lua_State *L) { + size_t len; + const char *s = luaL_checklstring(L, 1, &len); + lua_Integer posi = u_posrelat(luaL_optinteger(L, 2, 1), len); + lua_Integer pose = u_posrelat(luaL_optinteger(L, 3, posi), len); + int n; + const char *se; + luaL_argcheck(L, posi >= 1, 2, "out of range"); + luaL_argcheck(L, pose <= (lua_Integer)len, 3, "out of range"); + if (posi > pose) return 0; /* empty interval; return no values */ + if (pose - posi >= INT_MAX) /* (lua_Integer -> int) overflow? */ + return luaL_error(L, "string slice too long"); + n = (int)(pose - posi) + 1; + luaL_checkstack(L, n, "string slice too long"); + n = 0; + se = s + pose; + for (s += posi - 1; s < se;) { + int code; + s = utf8_decode(s, &code); + if (s == NULL) + return luaL_error(L, "invalid UTF-8 code"); + lua_pushinteger(L, code); + n++; + } + return n; +} + + +static void pushutfchar (lua_State *L, int arg) { + lua_Integer code = luaL_checkinteger(L, arg); + luaL_argcheck(L, 0 <= code && code <= MAXUNICODE, arg, "value out of range"); + lua_pushfstring(L, "%U", (long)code); +} + + +/* +** utfchar(n1, n2, ...) -> char(n1)..char(n2)... +*/ +static int utfchar (lua_State *L) { + int n = lua_gettop(L); /* number of arguments */ + if (n == 1) /* optimize common case of single char */ + pushutfchar(L, 1); + else { + int i; + luaL_Buffer b; + luaL_buffinit(L, &b); + for (i = 1; i <= n; i++) { + pushutfchar(L, i); + luaL_addvalue(&b); + } + luaL_pushresult(&b); + } + return 1; +} + + +/* +** offset(s, n, [i]) -> index where n-th character counting from +** position 'i' starts; 0 means character at 'i'. +*/ +static int byteoffset (lua_State *L) { + size_t len; + const char *s = luaL_checklstring(L, 1, &len); + lua_Integer n = luaL_checkinteger(L, 2); + lua_Integer posi = (n >= 0) ? 1 : len + 1; + posi = u_posrelat(luaL_optinteger(L, 3, posi), len); + luaL_argcheck(L, 1 <= posi && --posi <= (lua_Integer)len, 3, + "position out of range"); + if (n == 0) { + /* find beginning of current byte sequence */ + while (posi > 0 && iscont(s + posi)) posi--; + } + else { + if (iscont(s + posi)) + luaL_error(L, "initial position is a continuation byte"); + if (n < 0) { + while (n < 0 && posi > 0) { /* move back */ + do { /* find beginning of previous character */ + posi--; + } while (posi > 0 && iscont(s + posi)); + n++; + } + } + else { + n--; /* do not move for 1st character */ + while (n > 0 && posi < (lua_Integer)len) { + do { /* find beginning of next character */ + posi++; + } while (iscont(s + posi)); /* (cannot pass final '\0') */ + n--; + } + } + } + if (n == 0) /* did it find given character? */ + lua_pushinteger(L, posi + 1); + else /* no such character */ + lua_pushnil(L); + return 1; +} + + +static int iter_aux (lua_State *L) { + size_t len; + const char *s = luaL_checklstring(L, 1, &len); + lua_Integer n = lua_tointeger(L, 2) - 1; + if (n < 0) /* first iteration? */ + n = 0; /* start from here */ + else if (n < (lua_Integer)len) { + n++; /* skip current byte */ + while (iscont(s + n)) n++; /* and its continuations */ + } + if (n >= (lua_Integer)len) + return 0; /* no more codepoints */ + else { + int code; + const char *next = utf8_decode(s + n, &code); + if (next == NULL || iscont(next)) + return luaL_error(L, "invalid UTF-8 code"); + lua_pushinteger(L, n + 1); + lua_pushinteger(L, code); + return 2; + } +} + + +static int iter_codes (lua_State *L) { + luaL_checkstring(L, 1); + lua_pushcfunction(L, iter_aux); + lua_pushvalue(L, 1); + lua_pushinteger(L, 0); + return 3; +} + + +/* pattern to match a single UTF-8 character */ +#define UTF8PATT "[\0-\x7F\xC2-\xF4][\x80-\xBF]*" + + +static const luaL_Reg funcs[] = { + {"offset", byteoffset}, + {"codepoint", codepoint}, + {"char", utfchar}, + {"len", utflen}, + {"codes", iter_codes}, + /* placeholders */ + {"charpattern", NULL}, + {NULL, NULL} +}; + + +LUAMOD_API int luaopen_utf8 (lua_State *L) { + luaL_newlib(L, funcs); + lua_pushlstring(L, UTF8PATT, sizeof(UTF8PATT)/sizeof(char) - 1); + lua_setfield(L, -2, "charpattern"); + return 1; +} + diff --git a/3rd/lua-5.3.4/lvm.c b/3rd/lua-5.3.4/lvm.c new file mode 100644 index 0000000..84ade6b --- /dev/null +++ b/3rd/lua-5.3.4/lvm.c @@ -0,0 +1,1322 @@ +/* +** $Id: lvm.c,v 2.268 2016/02/05 19:59:14 roberto Exp $ +** Lua virtual machine +** See Copyright Notice in lua.h +*/ + +#define lvm_c +#define LUA_CORE + +#include "lprefix.h" + +#include +#include +#include +#include +#include +#include + +#include "lua.h" + +#include "ldebug.h" +#include "ldo.h" +#include "lfunc.h" +#include "lgc.h" +#include "lobject.h" +#include "lopcodes.h" +#include "lstate.h" +#include "lstring.h" +#include "ltable.h" +#include "ltm.h" +#include "lvm.h" + + +/* limit for table tag-method chains (to avoid loops) */ +#define MAXTAGLOOP 2000 + + + +/* +** 'l_intfitsf' checks whether a given integer can be converted to a +** float without rounding. Used in comparisons. Left undefined if +** all integers fit in a float precisely. +*/ +#if !defined(l_intfitsf) + +/* number of bits in the mantissa of a float */ +#define NBM (l_mathlim(MANT_DIG)) + +/* +** Check whether some integers may not fit in a float, that is, whether +** (maxinteger >> NBM) > 0 (that implies (1 << NBM) <= maxinteger). +** (The shifts are done in parts to avoid shifting by more than the size +** of an integer. In a worst case, NBM == 113 for long double and +** sizeof(integer) == 32.) +*/ +#if ((((LUA_MAXINTEGER >> (NBM / 4)) >> (NBM / 4)) >> (NBM / 4)) \ + >> (NBM - (3 * (NBM / 4)))) > 0 + +#define l_intfitsf(i) \ + (-((lua_Integer)1 << NBM) <= (i) && (i) <= ((lua_Integer)1 << NBM)) + +#endif + +#endif + + + +/* +** Try to convert a value to a float. The float case is already handled +** by the macro 'tonumber'. +*/ +int luaV_tonumber_ (const TValue *obj, lua_Number *n) { + TValue v; + if (ttisinteger(obj)) { + *n = cast_num(ivalue(obj)); + return 1; + } + else if (cvt2num(obj) && /* string convertible to number? */ + luaO_str2num(svalue(obj), &v) == vslen(obj) + 1) { + *n = nvalue(&v); /* convert result of 'luaO_str2num' to a float */ + return 1; + } + else + return 0; /* conversion failed */ +} + + +/* +** try to convert a value to an integer, rounding according to 'mode': +** mode == 0: accepts only integral values +** mode == 1: takes the floor of the number +** mode == 2: takes the ceil of the number +*/ +int luaV_tointeger (const TValue *obj, lua_Integer *p, int mode) { + TValue v; + again: + if (ttisfloat(obj)) { + lua_Number n = fltvalue(obj); + lua_Number f = l_floor(n); + if (n != f) { /* not an integral value? */ + if (mode == 0) return 0; /* fails if mode demands integral value */ + else if (mode > 1) /* needs ceil? */ + f += 1; /* convert floor to ceil (remember: n != f) */ + } + return lua_numbertointeger(f, p); + } + else if (ttisinteger(obj)) { + *p = ivalue(obj); + return 1; + } + else if (cvt2num(obj) && + luaO_str2num(svalue(obj), &v) == vslen(obj) + 1) { + obj = &v; + goto again; /* convert result from 'luaO_str2num' to an integer */ + } + return 0; /* conversion failed */ +} + + +/* +** Try to convert a 'for' limit to an integer, preserving the +** semantics of the loop. +** (The following explanation assumes a non-negative step; it is valid +** for negative steps mutatis mutandis.) +** If the limit can be converted to an integer, rounding down, that is +** it. +** Otherwise, check whether the limit can be converted to a number. If +** the number is too large, it is OK to set the limit as LUA_MAXINTEGER, +** which means no limit. If the number is too negative, the loop +** should not run, because any initial integer value is larger than the +** limit. So, it sets the limit to LUA_MININTEGER. 'stopnow' corrects +** the extreme case when the initial value is LUA_MININTEGER, in which +** case the LUA_MININTEGER limit would still run the loop once. +*/ +static int forlimit (const TValue *obj, lua_Integer *p, lua_Integer step, + int *stopnow) { + *stopnow = 0; /* usually, let loops run */ + if (!luaV_tointeger(obj, p, (step < 0 ? 2 : 1))) { /* not fit in integer? */ + lua_Number n; /* try to convert to float */ + if (!tonumber(obj, &n)) /* cannot convert to float? */ + return 0; /* not a number */ + if (luai_numlt(0, n)) { /* if true, float is larger than max integer */ + *p = LUA_MAXINTEGER; + if (step < 0) *stopnow = 1; + } + else { /* float is smaller than min integer */ + *p = LUA_MININTEGER; + if (step >= 0) *stopnow = 1; + } + } + return 1; +} + + +/* +** Finish the table access 'val = t[key]'. +** if 'slot' is NULL, 't' is not a table; otherwise, 'slot' points to +** t[k] entry (which must be nil). +*/ +void luaV_finishget (lua_State *L, const TValue *t, TValue *key, StkId val, + const TValue *slot) { + int loop; /* counter to avoid infinite loops */ + const TValue *tm; /* metamethod */ + for (loop = 0; loop < MAXTAGLOOP; loop++) { + if (slot == NULL) { /* 't' is not a table? */ + lua_assert(!ttistable(t)); + tm = luaT_gettmbyobj(L, t, TM_INDEX); + if (ttisnil(tm)) + luaG_typeerror(L, t, "index"); /* no metamethod */ + /* else will try the metamethod */ + } + else { /* 't' is a table */ + lua_assert(ttisnil(slot)); + tm = fasttm(L, hvalue(t)->metatable, TM_INDEX); /* table's metamethod */ + if (tm == NULL) { /* no metamethod? */ + setnilvalue(val); /* result is nil */ + return; + } + /* else will try the metamethod */ + } + if (ttisfunction(tm)) { /* is metamethod a function? */ + luaT_callTM(L, tm, t, key, val, 1); /* call it */ + return; + } + t = tm; /* else try to access 'tm[key]' */ + if (luaV_fastget(L,t,key,slot,luaH_get)) { /* fast track? */ + setobj2s(L, val, slot); /* done */ + return; + } + /* else repeat (tail call 'luaV_finishget') */ + } + luaG_runerror(L, "'__index' chain too long; possible loop"); +} + + +/* +** Finish a table assignment 't[key] = val'. +** If 'slot' is NULL, 't' is not a table. Otherwise, 'slot' points +** to the entry 't[key]', or to 'luaO_nilobject' if there is no such +** entry. (The value at 'slot' must be nil, otherwise 'luaV_fastset' +** would have done the job.) +*/ +void luaV_finishset (lua_State *L, const TValue *t, TValue *key, + StkId val, const TValue *slot) { + int loop; /* counter to avoid infinite loops */ + for (loop = 0; loop < MAXTAGLOOP; loop++) { + const TValue *tm; /* '__newindex' metamethod */ + if (slot != NULL) { /* is 't' a table? */ + Table *h = hvalue(t); /* save 't' table */ + lua_assert(ttisnil(slot)); /* old value must be nil */ + tm = fasttm(L, h->metatable, TM_NEWINDEX); /* get metamethod */ + if (tm == NULL) { /* no metamethod? */ + if (slot == luaO_nilobject) /* no previous entry? */ + slot = luaH_newkey(L, h, key); /* create one */ + /* no metamethod and (now) there is an entry with given key */ + setobj2t(L, cast(TValue *, slot), val); /* set its new value */ + invalidateTMcache(h); + luaC_barrierback(L, h, val); + return; + } + /* else will try the metamethod */ + } + else { /* not a table; check metamethod */ + if (ttisnil(tm = luaT_gettmbyobj(L, t, TM_NEWINDEX))) + luaG_typeerror(L, t, "index"); + } + /* try the metamethod */ + if (ttisfunction(tm)) { + luaT_callTM(L, tm, t, key, val, 0); + return; + } + t = tm; /* else repeat assignment over 'tm' */ + if (luaV_fastset(L, t, key, slot, luaH_get, val)) + return; /* done */ + /* else loop */ + } + luaG_runerror(L, "'__newindex' chain too long; possible loop"); +} + + +/* +** Compare two strings 'ls' x 'rs', returning an integer smaller-equal- +** -larger than zero if 'ls' is smaller-equal-larger than 'rs'. +** The code is a little tricky because it allows '\0' in the strings +** and it uses 'strcoll' (to respect locales) for each segments +** of the strings. +*/ +static int l_strcmp (const TString *ls, const TString *rs) { + const char *l = getstr(ls); + size_t ll = tsslen(ls); + const char *r = getstr(rs); + size_t lr = tsslen(rs); + for (;;) { /* for each segment */ + int temp = strcoll(l, r); + if (temp != 0) /* not equal? */ + return temp; /* done */ + else { /* strings are equal up to a '\0' */ + size_t len = strlen(l); /* index of first '\0' in both strings */ + if (len == lr) /* 'rs' is finished? */ + return (len == ll) ? 0 : 1; /* check 'ls' */ + else if (len == ll) /* 'ls' is finished? */ + return -1; /* 'ls' is smaller than 'rs' ('rs' is not finished) */ + /* both strings longer than 'len'; go on comparing after the '\0' */ + len++; + l += len; ll -= len; r += len; lr -= len; + } + } +} + + +/* +** Check whether integer 'i' is less than float 'f'. If 'i' has an +** exact representation as a float ('l_intfitsf'), compare numbers as +** floats. Otherwise, if 'f' is outside the range for integers, result +** is trivial. Otherwise, compare them as integers. (When 'i' has no +** float representation, either 'f' is "far away" from 'i' or 'f' has +** no precision left for a fractional part; either way, how 'f' is +** truncated is irrelevant.) When 'f' is NaN, comparisons must result +** in false. +*/ +static int LTintfloat (lua_Integer i, lua_Number f) { +#if defined(l_intfitsf) + if (!l_intfitsf(i)) { + if (f >= -cast_num(LUA_MININTEGER)) /* -minint == maxint + 1 */ + return 1; /* f >= maxint + 1 > i */ + else if (f > cast_num(LUA_MININTEGER)) /* minint < f <= maxint ? */ + return (i < cast(lua_Integer, f)); /* compare them as integers */ + else /* f <= minint <= i (or 'f' is NaN) --> not(i < f) */ + return 0; + } +#endif + return luai_numlt(cast_num(i), f); /* compare them as floats */ +} + + +/* +** Check whether integer 'i' is less than or equal to float 'f'. +** See comments on previous function. +*/ +static int LEintfloat (lua_Integer i, lua_Number f) { +#if defined(l_intfitsf) + if (!l_intfitsf(i)) { + if (f >= -cast_num(LUA_MININTEGER)) /* -minint == maxint + 1 */ + return 1; /* f >= maxint + 1 > i */ + else if (f >= cast_num(LUA_MININTEGER)) /* minint <= f <= maxint ? */ + return (i <= cast(lua_Integer, f)); /* compare them as integers */ + else /* f < minint <= i (or 'f' is NaN) --> not(i <= f) */ + return 0; + } +#endif + return luai_numle(cast_num(i), f); /* compare them as floats */ +} + + +/* +** Return 'l < r', for numbers. +*/ +static int LTnum (const TValue *l, const TValue *r) { + if (ttisinteger(l)) { + lua_Integer li = ivalue(l); + if (ttisinteger(r)) + return li < ivalue(r); /* both are integers */ + else /* 'l' is int and 'r' is float */ + return LTintfloat(li, fltvalue(r)); /* l < r ? */ + } + else { + lua_Number lf = fltvalue(l); /* 'l' must be float */ + if (ttisfloat(r)) + return luai_numlt(lf, fltvalue(r)); /* both are float */ + else if (luai_numisnan(lf)) /* 'r' is int and 'l' is float */ + return 0; /* NaN < i is always false */ + else /* without NaN, (l < r) <--> not(r <= l) */ + return !LEintfloat(ivalue(r), lf); /* not (r <= l) ? */ + } +} + + +/* +** Return 'l <= r', for numbers. +*/ +static int LEnum (const TValue *l, const TValue *r) { + if (ttisinteger(l)) { + lua_Integer li = ivalue(l); + if (ttisinteger(r)) + return li <= ivalue(r); /* both are integers */ + else /* 'l' is int and 'r' is float */ + return LEintfloat(li, fltvalue(r)); /* l <= r ? */ + } + else { + lua_Number lf = fltvalue(l); /* 'l' must be float */ + if (ttisfloat(r)) + return luai_numle(lf, fltvalue(r)); /* both are float */ + else if (luai_numisnan(lf)) /* 'r' is int and 'l' is float */ + return 0; /* NaN <= i is always false */ + else /* without NaN, (l <= r) <--> not(r < l) */ + return !LTintfloat(ivalue(r), lf); /* not (r < l) ? */ + } +} + + +/* +** Main operation less than; return 'l < r'. +*/ +int luaV_lessthan (lua_State *L, const TValue *l, const TValue *r) { + int res; + if (ttisnumber(l) && ttisnumber(r)) /* both operands are numbers? */ + return LTnum(l, r); + else if (ttisstring(l) && ttisstring(r)) /* both are strings? */ + return l_strcmp(tsvalue(l), tsvalue(r)) < 0; + else if ((res = luaT_callorderTM(L, l, r, TM_LT)) < 0) /* no metamethod? */ + luaG_ordererror(L, l, r); /* error */ + return res; +} + + +/* +** Main operation less than or equal to; return 'l <= r'. If it needs +** a metamethod and there is no '__le', try '__lt', based on +** l <= r iff !(r < l) (assuming a total order). If the metamethod +** yields during this substitution, the continuation has to know +** about it (to negate the result of r= 0) /* try 'le' */ + return res; + else { /* try 'lt': */ + L->ci->callstatus |= CIST_LEQ; /* mark it is doing 'lt' for 'le' */ + res = luaT_callorderTM(L, r, l, TM_LT); + L->ci->callstatus ^= CIST_LEQ; /* clear mark */ + if (res < 0) + luaG_ordererror(L, l, r); + return !res; /* result is negated */ + } +} + + +/* +** Main operation for equality of Lua values; return 't1 == t2'. +** L == NULL means raw equality (no metamethods) +*/ +int luaV_equalobj (lua_State *L, const TValue *t1, const TValue *t2) { + const TValue *tm; + if (ttype(t1) != ttype(t2)) { /* not the same variant? */ + if (ttnov(t1) != ttnov(t2) || ttnov(t1) != LUA_TNUMBER) + return 0; /* only numbers can be equal with different variants */ + else { /* two numbers with different variants */ + lua_Integer i1, i2; /* compare them as integers */ + return (tointeger(t1, &i1) && tointeger(t2, &i2) && i1 == i2); + } + } + /* values have same type and same variant */ + switch (ttype(t1)) { + case LUA_TNIL: return 1; + case LUA_TNUMINT: return (ivalue(t1) == ivalue(t2)); + case LUA_TNUMFLT: return luai_numeq(fltvalue(t1), fltvalue(t2)); + case LUA_TBOOLEAN: return bvalue(t1) == bvalue(t2); /* true must be 1 !! */ + case LUA_TLIGHTUSERDATA: return pvalue(t1) == pvalue(t2); + case LUA_TLCF: return fvalue(t1) == fvalue(t2); + case LUA_TSHRSTR: return eqshrstr(tsvalue(t1), tsvalue(t2)); + case LUA_TLNGSTR: return luaS_eqlngstr(tsvalue(t1), tsvalue(t2)); + case LUA_TUSERDATA: { + if (uvalue(t1) == uvalue(t2)) return 1; + else if (L == NULL) return 0; + tm = fasttm(L, uvalue(t1)->metatable, TM_EQ); + if (tm == NULL) + tm = fasttm(L, uvalue(t2)->metatable, TM_EQ); + break; /* will try TM */ + } + case LUA_TTABLE: { + if (hvalue(t1) == hvalue(t2)) return 1; + else if (L == NULL) return 0; + tm = fasttm(L, hvalue(t1)->metatable, TM_EQ); + if (tm == NULL) + tm = fasttm(L, hvalue(t2)->metatable, TM_EQ); + break; /* will try TM */ + } + default: + return gcvalue(t1) == gcvalue(t2); + } + if (tm == NULL) /* no TM? */ + return 0; /* objects are different */ + luaT_callTM(L, tm, t1, t2, L->top, 1); /* call TM */ + return !l_isfalse(L->top); +} + + +/* macro used by 'luaV_concat' to ensure that element at 'o' is a string */ +#define tostring(L,o) \ + (ttisstring(o) || (cvt2str(o) && (luaO_tostring(L, o), 1))) + +#define isemptystr(o) (ttisshrstring(o) && tsvalue(o)->shrlen == 0) + +/* copy strings in stack from top - n up to top - 1 to buffer */ +static void copy2buff (StkId top, int n, char *buff) { + size_t tl = 0; /* size already copied */ + do { + size_t l = vslen(top - n); /* length of string being copied */ + memcpy(buff + tl, svalue(top - n), l * sizeof(char)); + tl += l; + } while (--n > 0); +} + + +/* +** Main operation for concatenation: concat 'total' values in the stack, +** from 'L->top - total' up to 'L->top - 1'. +*/ +void luaV_concat (lua_State *L, int total) { + lua_assert(total >= 2); + do { + StkId top = L->top; + int n = 2; /* number of elements handled in this pass (at least 2) */ + if (!(ttisstring(top-2) || cvt2str(top-2)) || !tostring(L, top-1)) + luaT_trybinTM(L, top-2, top-1, top-2, TM_CONCAT); + else if (isemptystr(top - 1)) /* second operand is empty? */ + cast_void(tostring(L, top - 2)); /* result is first operand */ + else if (isemptystr(top - 2)) { /* first operand is an empty string? */ + setobjs2s(L, top - 2, top - 1); /* result is second op. */ + } + else { + /* at least two non-empty string values; get as many as possible */ + size_t tl = vslen(top - 1); + TString *ts; + /* collect total length and number of strings */ + for (n = 1; n < total && tostring(L, top - n - 1); n++) { + size_t l = vslen(top - n - 1); + if (l >= (MAX_SIZE/sizeof(char)) - tl) + luaG_runerror(L, "string length overflow"); + tl += l; + } + if (tl <= LUAI_MAXSHORTLEN) { /* is result a short string? */ + char buff[LUAI_MAXSHORTLEN]; + copy2buff(top, n, buff); /* copy strings to buffer */ + ts = luaS_newlstr(L, buff, tl); + } + else { /* long string; copy strings directly to final result */ + ts = luaS_createlngstrobj(L, tl); + copy2buff(top, n, getstr(ts)); + } + setsvalue2s(L, top - n, ts); /* create result */ + } + total -= n-1; /* got 'n' strings to create 1 new */ + L->top -= n-1; /* popped 'n' strings and pushed one */ + } while (total > 1); /* repeat until only 1 result left */ +} + + +/* +** Main operation 'ra' = #rb'. +*/ +void luaV_objlen (lua_State *L, StkId ra, const TValue *rb) { + const TValue *tm; + switch (ttype(rb)) { + case LUA_TTABLE: { + Table *h = hvalue(rb); + tm = fasttm(L, h->metatable, TM_LEN); + if (tm) break; /* metamethod? break switch to call it */ + setivalue(ra, luaH_getn(h)); /* else primitive len */ + return; + } + case LUA_TSHRSTR: { + setivalue(ra, tsvalue(rb)->shrlen); + return; + } + case LUA_TLNGSTR: { + setivalue(ra, tsvalue(rb)->u.lnglen); + return; + } + default: { /* try metamethod */ + tm = luaT_gettmbyobj(L, rb, TM_LEN); + if (ttisnil(tm)) /* no metamethod? */ + luaG_typeerror(L, rb, "get length of"); + break; + } + } + luaT_callTM(L, tm, rb, rb, ra, 1); +} + + +/* +** Integer division; return 'm // n', that is, floor(m/n). +** C division truncates its result (rounds towards zero). +** 'floor(q) == trunc(q)' when 'q >= 0' or when 'q' is integer, +** otherwise 'floor(q) == trunc(q) - 1'. +*/ +lua_Integer luaV_div (lua_State *L, lua_Integer m, lua_Integer n) { + if (l_castS2U(n) + 1u <= 1u) { /* special cases: -1 or 0 */ + if (n == 0) + luaG_runerror(L, "attempt to divide by zero"); + return intop(-, 0, m); /* n==-1; avoid overflow with 0x80000...//-1 */ + } + else { + lua_Integer q = m / n; /* perform C division */ + if ((m ^ n) < 0 && m % n != 0) /* 'm/n' would be negative non-integer? */ + q -= 1; /* correct result for different rounding */ + return q; + } +} + + +/* +** Integer modulus; return 'm % n'. (Assume that C '%' with +** negative operands follows C99 behavior. See previous comment +** about luaV_div.) +*/ +lua_Integer luaV_mod (lua_State *L, lua_Integer m, lua_Integer n) { + if (l_castS2U(n) + 1u <= 1u) { /* special cases: -1 or 0 */ + if (n == 0) + luaG_runerror(L, "attempt to perform 'n%%0'"); + return 0; /* m % -1 == 0; avoid overflow with 0x80000...%-1 */ + } + else { + lua_Integer r = m % n; + if (r != 0 && (m ^ n) < 0) /* 'm/n' would be non-integer negative? */ + r += n; /* correct result for different rounding */ + return r; + } +} + + +/* number of bits in an integer */ +#define NBITS cast_int(sizeof(lua_Integer) * CHAR_BIT) + +/* +** Shift left operation. (Shift right just negates 'y'.) +*/ +lua_Integer luaV_shiftl (lua_Integer x, lua_Integer y) { + if (y < 0) { /* shift right? */ + if (y <= -NBITS) return 0; + else return intop(>>, x, -y); + } + else { /* shift left */ + if (y >= NBITS) return 0; + else return intop(<<, x, y); + } +} + + +/* +** check whether cached closure in prototype 'p' may be reused, that is, +** whether there is a cached closure with the same upvalues needed by +** new closure to be created. +*/ +static LClosure *getcached (Proto *p, UpVal **encup, StkId base) { + LClosure *c = p->cache; + if (c != NULL) { /* is there a cached closure? */ + int nup = p->sizeupvalues; + Upvaldesc *uv = p->upvalues; + int i; + for (i = 0; i < nup; i++) { /* check whether it has right upvalues */ + TValue *v = uv[i].instack ? base + uv[i].idx : encup[uv[i].idx]->v; + if (c->upvals[i]->v != v) + return NULL; /* wrong upvalue; cannot reuse closure */ + } + } + return c; /* return cached closure (or NULL if no cached closure) */ +} + + +/* +** create a new Lua closure, push it in the stack, and initialize +** its upvalues. Note that the closure is not cached if prototype is +** already black (which means that 'cache' was already cleared by the +** GC). +*/ +static void pushclosure (lua_State *L, Proto *p, UpVal **encup, StkId base, + StkId ra) { + int nup = p->sizeupvalues; + Upvaldesc *uv = p->upvalues; + int i; + LClosure *ncl = luaF_newLclosure(L, nup); + ncl->p = p; + setclLvalue(L, ra, ncl); /* anchor new closure in stack */ + for (i = 0; i < nup; i++) { /* fill in its upvalues */ + if (uv[i].instack) /* upvalue refers to local variable? */ + ncl->upvals[i] = luaF_findupval(L, base + uv[i].idx); + else /* get upvalue from enclosing function */ + ncl->upvals[i] = encup[uv[i].idx]; + ncl->upvals[i]->refcount++; + /* new closure is white, so we do not need a barrier here */ + } + if (!isblack(p)) /* cache will not break GC invariant? */ + p->cache = ncl; /* save it on cache for reuse */ +} + + +/* +** finish execution of an opcode interrupted by an yield +*/ +void luaV_finishOp (lua_State *L) { + CallInfo *ci = L->ci; + StkId base = ci->u.l.base; + Instruction inst = *(ci->u.l.savedpc - 1); /* interrupted instruction */ + OpCode op = GET_OPCODE(inst); + switch (op) { /* finish its execution */ + case OP_ADD: case OP_SUB: case OP_MUL: case OP_DIV: case OP_IDIV: + case OP_BAND: case OP_BOR: case OP_BXOR: case OP_SHL: case OP_SHR: + case OP_MOD: case OP_POW: + case OP_UNM: case OP_BNOT: case OP_LEN: + case OP_GETTABUP: case OP_GETTABLE: case OP_SELF: { + setobjs2s(L, base + GETARG_A(inst), --L->top); + break; + } + case OP_LE: case OP_LT: case OP_EQ: { + int res = !l_isfalse(L->top - 1); + L->top--; + if (ci->callstatus & CIST_LEQ) { /* "<=" using "<" instead? */ + lua_assert(op == OP_LE); + ci->callstatus ^= CIST_LEQ; /* clear mark */ + res = !res; /* negate result */ + } + lua_assert(GET_OPCODE(*ci->u.l.savedpc) == OP_JMP); + if (res != GETARG_A(inst)) /* condition failed? */ + ci->u.l.savedpc++; /* skip jump instruction */ + break; + } + case OP_CONCAT: { + StkId top = L->top - 1; /* top when 'luaT_trybinTM' was called */ + int b = GETARG_B(inst); /* first element to concatenate */ + int total = cast_int(top - 1 - (base + b)); /* yet to concatenate */ + setobj2s(L, top - 2, top); /* put TM result in proper position */ + if (total > 1) { /* are there elements to concat? */ + L->top = top - 1; /* top is one after last element (at top-2) */ + luaV_concat(L, total); /* concat them (may yield again) */ + } + /* move final result to final position */ + setobj2s(L, ci->u.l.base + GETARG_A(inst), L->top - 1); + L->top = ci->top; /* restore top */ + break; + } + case OP_TFORCALL: { + lua_assert(GET_OPCODE(*ci->u.l.savedpc) == OP_TFORLOOP); + L->top = ci->top; /* correct top */ + break; + } + case OP_CALL: { + if (GETARG_C(inst) - 1 >= 0) /* nresults >= 0? */ + L->top = ci->top; /* adjust results */ + break; + } + case OP_TAILCALL: case OP_SETTABUP: case OP_SETTABLE: + break; + default: lua_assert(0); + } +} + + + + +/* +** {================================================================== +** Function 'luaV_execute': main interpreter loop +** =================================================================== +*/ + + +/* +** some macros for common tasks in 'luaV_execute' +*/ + + +#define RA(i) (base+GETARG_A(i)) +#define RB(i) check_exp(getBMode(GET_OPCODE(i)) == OpArgR, base+GETARG_B(i)) +#define RC(i) check_exp(getCMode(GET_OPCODE(i)) == OpArgR, base+GETARG_C(i)) +#define RKB(i) check_exp(getBMode(GET_OPCODE(i)) == OpArgK, \ + ISK(GETARG_B(i)) ? k+INDEXK(GETARG_B(i)) : base+GETARG_B(i)) +#define RKC(i) check_exp(getCMode(GET_OPCODE(i)) == OpArgK, \ + ISK(GETARG_C(i)) ? k+INDEXK(GETARG_C(i)) : base+GETARG_C(i)) + + +/* execute a jump instruction */ +#define dojump(ci,i,e) \ + { int a = GETARG_A(i); \ + if (a != 0) luaF_close(L, ci->u.l.base + a - 1); \ + ci->u.l.savedpc += GETARG_sBx(i) + e; } + +/* for test instructions, execute the jump instruction that follows it */ +#define donextjump(ci) { i = *ci->u.l.savedpc; dojump(ci, i, 1); } + + +#define Protect(x) { {x;}; base = ci->u.l.base; } + +#define checkGC(L,c) \ + { luaC_condGC(L, L->top = (c), /* limit of live values */ \ + Protect(L->top = ci->top)); /* restore top */ \ + luai_threadyield(L); } + + +/* fetch an instruction and prepare its execution */ +#define vmfetch() { \ + i = *(ci->u.l.savedpc++); \ + if (L->hookmask & (LUA_MASKLINE | LUA_MASKCOUNT)) \ + Protect(luaG_traceexec(L)); \ + ra = RA(i); /* WARNING: any stack reallocation invalidates 'ra' */ \ + lua_assert(base == ci->u.l.base); \ + lua_assert(base <= L->top && L->top < L->stack + L->stacksize); \ +} + +#define vmdispatch(o) switch(o) +#define vmcase(l) case l: +#define vmbreak break + + +/* +** copy of 'luaV_gettable', but protecting the call to potential +** metamethod (which can reallocate the stack) +*/ +#define gettableProtected(L,t,k,v) { const TValue *slot; \ + if (luaV_fastget(L,t,k,slot,luaH_get)) { setobj2s(L, v, slot); } \ + else Protect(luaV_finishget(L,t,k,v,slot)); } + + +/* same for 'luaV_settable' */ +#define settableProtected(L,t,k,v) { const TValue *slot; \ + if (!luaV_fastset(L,t,k,slot,luaH_get,v)) \ + Protect(luaV_finishset(L,t,k,v,slot)); } + + + +void luaV_execute (lua_State *L) { + CallInfo *ci = L->ci; + LClosure *cl; + TValue *k; + StkId base; + ci->callstatus |= CIST_FRESH; /* fresh invocation of 'luaV_execute" */ + newframe: /* reentry point when frame changes (call/return) */ + lua_assert(ci == L->ci); + cl = clLvalue(ci->func); /* local reference to function's closure */ + k = cl->p->k; /* local reference to function's constant table */ + base = ci->u.l.base; /* local copy of function's base */ + /* main loop of interpreter */ + for (;;) { + Instruction i; + StkId ra; + vmfetch(); + vmdispatch (GET_OPCODE(i)) { + vmcase(OP_MOVE) { + setobjs2s(L, ra, RB(i)); + vmbreak; + } + vmcase(OP_LOADK) { + TValue *rb = k + GETARG_Bx(i); + setobj2s(L, ra, rb); + vmbreak; + } + vmcase(OP_LOADKX) { + TValue *rb; + lua_assert(GET_OPCODE(*ci->u.l.savedpc) == OP_EXTRAARG); + rb = k + GETARG_Ax(*ci->u.l.savedpc++); + setobj2s(L, ra, rb); + vmbreak; + } + vmcase(OP_LOADBOOL) { + setbvalue(ra, GETARG_B(i)); + if (GETARG_C(i)) ci->u.l.savedpc++; /* skip next instruction (if C) */ + vmbreak; + } + vmcase(OP_LOADNIL) { + int b = GETARG_B(i); + do { + setnilvalue(ra++); + } while (b--); + vmbreak; + } + vmcase(OP_GETUPVAL) { + int b = GETARG_B(i); + setobj2s(L, ra, cl->upvals[b]->v); + vmbreak; + } + vmcase(OP_GETTABUP) { + TValue *upval = cl->upvals[GETARG_B(i)]->v; + TValue *rc = RKC(i); + gettableProtected(L, upval, rc, ra); + vmbreak; + } + vmcase(OP_GETTABLE) { + StkId rb = RB(i); + TValue *rc = RKC(i); + gettableProtected(L, rb, rc, ra); + vmbreak; + } + vmcase(OP_SETTABUP) { + TValue *upval = cl->upvals[GETARG_A(i)]->v; + TValue *rb = RKB(i); + TValue *rc = RKC(i); + settableProtected(L, upval, rb, rc); + vmbreak; + } + vmcase(OP_SETUPVAL) { + UpVal *uv = cl->upvals[GETARG_B(i)]; + setobj(L, uv->v, ra); + luaC_upvalbarrier(L, uv); + vmbreak; + } + vmcase(OP_SETTABLE) { + TValue *rb = RKB(i); + TValue *rc = RKC(i); + settableProtected(L, ra, rb, rc); + vmbreak; + } + vmcase(OP_NEWTABLE) { + int b = GETARG_B(i); + int c = GETARG_C(i); + Table *t = luaH_new(L); + sethvalue(L, ra, t); + if (b != 0 || c != 0) + luaH_resize(L, t, luaO_fb2int(b), luaO_fb2int(c)); + checkGC(L, ra + 1); + vmbreak; + } + vmcase(OP_SELF) { + const TValue *aux; + StkId rb = RB(i); + TValue *rc = RKC(i); + TString *key = tsvalue(rc); /* key must be a string */ + setobjs2s(L, ra + 1, rb); + if (luaV_fastget(L, rb, key, aux, luaH_getstr)) { + setobj2s(L, ra, aux); + } + else Protect(luaV_finishget(L, rb, rc, ra, aux)); + vmbreak; + } + vmcase(OP_ADD) { + TValue *rb = RKB(i); + TValue *rc = RKC(i); + lua_Number nb; lua_Number nc; + if (ttisinteger(rb) && ttisinteger(rc)) { + lua_Integer ib = ivalue(rb); lua_Integer ic = ivalue(rc); + setivalue(ra, intop(+, ib, ic)); + } + else if (tonumber(rb, &nb) && tonumber(rc, &nc)) { + setfltvalue(ra, luai_numadd(L, nb, nc)); + } + else { Protect(luaT_trybinTM(L, rb, rc, ra, TM_ADD)); } + vmbreak; + } + vmcase(OP_SUB) { + TValue *rb = RKB(i); + TValue *rc = RKC(i); + lua_Number nb; lua_Number nc; + if (ttisinteger(rb) && ttisinteger(rc)) { + lua_Integer ib = ivalue(rb); lua_Integer ic = ivalue(rc); + setivalue(ra, intop(-, ib, ic)); + } + else if (tonumber(rb, &nb) && tonumber(rc, &nc)) { + setfltvalue(ra, luai_numsub(L, nb, nc)); + } + else { Protect(luaT_trybinTM(L, rb, rc, ra, TM_SUB)); } + vmbreak; + } + vmcase(OP_MUL) { + TValue *rb = RKB(i); + TValue *rc = RKC(i); + lua_Number nb; lua_Number nc; + if (ttisinteger(rb) && ttisinteger(rc)) { + lua_Integer ib = ivalue(rb); lua_Integer ic = ivalue(rc); + setivalue(ra, intop(*, ib, ic)); + } + else if (tonumber(rb, &nb) && tonumber(rc, &nc)) { + setfltvalue(ra, luai_nummul(L, nb, nc)); + } + else { Protect(luaT_trybinTM(L, rb, rc, ra, TM_MUL)); } + vmbreak; + } + vmcase(OP_DIV) { /* float division (always with floats) */ + TValue *rb = RKB(i); + TValue *rc = RKC(i); + lua_Number nb; lua_Number nc; + if (tonumber(rb, &nb) && tonumber(rc, &nc)) { + setfltvalue(ra, luai_numdiv(L, nb, nc)); + } + else { Protect(luaT_trybinTM(L, rb, rc, ra, TM_DIV)); } + vmbreak; + } + vmcase(OP_BAND) { + TValue *rb = RKB(i); + TValue *rc = RKC(i); + lua_Integer ib; lua_Integer ic; + if (tointeger(rb, &ib) && tointeger(rc, &ic)) { + setivalue(ra, intop(&, ib, ic)); + } + else { Protect(luaT_trybinTM(L, rb, rc, ra, TM_BAND)); } + vmbreak; + } + vmcase(OP_BOR) { + TValue *rb = RKB(i); + TValue *rc = RKC(i); + lua_Integer ib; lua_Integer ic; + if (tointeger(rb, &ib) && tointeger(rc, &ic)) { + setivalue(ra, intop(|, ib, ic)); + } + else { Protect(luaT_trybinTM(L, rb, rc, ra, TM_BOR)); } + vmbreak; + } + vmcase(OP_BXOR) { + TValue *rb = RKB(i); + TValue *rc = RKC(i); + lua_Integer ib; lua_Integer ic; + if (tointeger(rb, &ib) && tointeger(rc, &ic)) { + setivalue(ra, intop(^, ib, ic)); + } + else { Protect(luaT_trybinTM(L, rb, rc, ra, TM_BXOR)); } + vmbreak; + } + vmcase(OP_SHL) { + TValue *rb = RKB(i); + TValue *rc = RKC(i); + lua_Integer ib; lua_Integer ic; + if (tointeger(rb, &ib) && tointeger(rc, &ic)) { + setivalue(ra, luaV_shiftl(ib, ic)); + } + else { Protect(luaT_trybinTM(L, rb, rc, ra, TM_SHL)); } + vmbreak; + } + vmcase(OP_SHR) { + TValue *rb = RKB(i); + TValue *rc = RKC(i); + lua_Integer ib; lua_Integer ic; + if (tointeger(rb, &ib) && tointeger(rc, &ic)) { + setivalue(ra, luaV_shiftl(ib, -ic)); + } + else { Protect(luaT_trybinTM(L, rb, rc, ra, TM_SHR)); } + vmbreak; + } + vmcase(OP_MOD) { + TValue *rb = RKB(i); + TValue *rc = RKC(i); + lua_Number nb; lua_Number nc; + if (ttisinteger(rb) && ttisinteger(rc)) { + lua_Integer ib = ivalue(rb); lua_Integer ic = ivalue(rc); + setivalue(ra, luaV_mod(L, ib, ic)); + } + else if (tonumber(rb, &nb) && tonumber(rc, &nc)) { + lua_Number m; + luai_nummod(L, nb, nc, m); + setfltvalue(ra, m); + } + else { Protect(luaT_trybinTM(L, rb, rc, ra, TM_MOD)); } + vmbreak; + } + vmcase(OP_IDIV) { /* floor division */ + TValue *rb = RKB(i); + TValue *rc = RKC(i); + lua_Number nb; lua_Number nc; + if (ttisinteger(rb) && ttisinteger(rc)) { + lua_Integer ib = ivalue(rb); lua_Integer ic = ivalue(rc); + setivalue(ra, luaV_div(L, ib, ic)); + } + else if (tonumber(rb, &nb) && tonumber(rc, &nc)) { + setfltvalue(ra, luai_numidiv(L, nb, nc)); + } + else { Protect(luaT_trybinTM(L, rb, rc, ra, TM_IDIV)); } + vmbreak; + } + vmcase(OP_POW) { + TValue *rb = RKB(i); + TValue *rc = RKC(i); + lua_Number nb; lua_Number nc; + if (tonumber(rb, &nb) && tonumber(rc, &nc)) { + setfltvalue(ra, luai_numpow(L, nb, nc)); + } + else { Protect(luaT_trybinTM(L, rb, rc, ra, TM_POW)); } + vmbreak; + } + vmcase(OP_UNM) { + TValue *rb = RB(i); + lua_Number nb; + if (ttisinteger(rb)) { + lua_Integer ib = ivalue(rb); + setivalue(ra, intop(-, 0, ib)); + } + else if (tonumber(rb, &nb)) { + setfltvalue(ra, luai_numunm(L, nb)); + } + else { + Protect(luaT_trybinTM(L, rb, rb, ra, TM_UNM)); + } + vmbreak; + } + vmcase(OP_BNOT) { + TValue *rb = RB(i); + lua_Integer ib; + if (tointeger(rb, &ib)) { + setivalue(ra, intop(^, ~l_castS2U(0), ib)); + } + else { + Protect(luaT_trybinTM(L, rb, rb, ra, TM_BNOT)); + } + vmbreak; + } + vmcase(OP_NOT) { + TValue *rb = RB(i); + int res = l_isfalse(rb); /* next assignment may change this value */ + setbvalue(ra, res); + vmbreak; + } + vmcase(OP_LEN) { + Protect(luaV_objlen(L, ra, RB(i))); + vmbreak; + } + vmcase(OP_CONCAT) { + int b = GETARG_B(i); + int c = GETARG_C(i); + StkId rb; + L->top = base + c + 1; /* mark the end of concat operands */ + Protect(luaV_concat(L, c - b + 1)); + ra = RA(i); /* 'luaV_concat' may invoke TMs and move the stack */ + rb = base + b; + setobjs2s(L, ra, rb); + checkGC(L, (ra >= rb ? ra + 1 : rb)); + L->top = ci->top; /* restore top */ + vmbreak; + } + vmcase(OP_JMP) { + dojump(ci, i, 0); + vmbreak; + } + vmcase(OP_EQ) { + TValue *rb = RKB(i); + TValue *rc = RKC(i); + Protect( + if (luaV_equalobj(L, rb, rc) != GETARG_A(i)) + ci->u.l.savedpc++; + else + donextjump(ci); + ) + vmbreak; + } + vmcase(OP_LT) { + Protect( + if (luaV_lessthan(L, RKB(i), RKC(i)) != GETARG_A(i)) + ci->u.l.savedpc++; + else + donextjump(ci); + ) + vmbreak; + } + vmcase(OP_LE) { + Protect( + if (luaV_lessequal(L, RKB(i), RKC(i)) != GETARG_A(i)) + ci->u.l.savedpc++; + else + donextjump(ci); + ) + vmbreak; + } + vmcase(OP_TEST) { + if (GETARG_C(i) ? l_isfalse(ra) : !l_isfalse(ra)) + ci->u.l.savedpc++; + else + donextjump(ci); + vmbreak; + } + vmcase(OP_TESTSET) { + TValue *rb = RB(i); + if (GETARG_C(i) ? l_isfalse(rb) : !l_isfalse(rb)) + ci->u.l.savedpc++; + else { + setobjs2s(L, ra, rb); + donextjump(ci); + } + vmbreak; + } + vmcase(OP_CALL) { + int b = GETARG_B(i); + int nresults = GETARG_C(i) - 1; + if (b != 0) L->top = ra+b; /* else previous instruction set top */ + if (luaD_precall(L, ra, nresults)) { /* C function? */ + if (nresults >= 0) + L->top = ci->top; /* adjust results */ + Protect((void)0); /* update 'base' */ + } + else { /* Lua function */ + ci = L->ci; + goto newframe; /* restart luaV_execute over new Lua function */ + } + vmbreak; + } + vmcase(OP_TAILCALL) { + int b = GETARG_B(i); + if (b != 0) L->top = ra+b; /* else previous instruction set top */ + lua_assert(GETARG_C(i) - 1 == LUA_MULTRET); + if (luaD_precall(L, ra, LUA_MULTRET)) { /* C function? */ + Protect((void)0); /* update 'base' */ + } + else { + /* tail call: put called frame (n) in place of caller one (o) */ + CallInfo *nci = L->ci; /* called frame */ + CallInfo *oci = nci->previous; /* caller frame */ + StkId nfunc = nci->func; /* called function */ + StkId ofunc = oci->func; /* caller function */ + /* last stack slot filled by 'precall' */ + StkId lim = nci->u.l.base + getproto(nfunc)->numparams; + int aux; + /* close all upvalues from previous call */ + if (cl->p->sizep > 0) luaF_close(L, oci->u.l.base); + /* move new frame into old one */ + for (aux = 0; nfunc + aux < lim; aux++) + setobjs2s(L, ofunc + aux, nfunc + aux); + oci->u.l.base = ofunc + (nci->u.l.base - nfunc); /* correct base */ + oci->top = L->top = ofunc + (L->top - nfunc); /* correct top */ + oci->u.l.savedpc = nci->u.l.savedpc; + oci->callstatus |= CIST_TAIL; /* function was tail called */ + ci = L->ci = oci; /* remove new frame */ + lua_assert(L->top == oci->u.l.base + getproto(ofunc)->maxstacksize); + goto newframe; /* restart luaV_execute over new Lua function */ + } + vmbreak; + } + vmcase(OP_RETURN) { + int b = GETARG_B(i); + if (cl->p->sizep > 0) luaF_close(L, base); + b = luaD_poscall(L, ci, ra, (b != 0 ? b - 1 : cast_int(L->top - ra))); + if (ci->callstatus & CIST_FRESH) /* local 'ci' still from callee */ + return; /* external invocation: return */ + else { /* invocation via reentry: continue execution */ + ci = L->ci; + if (b) L->top = ci->top; + lua_assert(isLua(ci)); + lua_assert(GET_OPCODE(*((ci)->u.l.savedpc - 1)) == OP_CALL); + goto newframe; /* restart luaV_execute over new Lua function */ + } + } + vmcase(OP_FORLOOP) { + if (ttisinteger(ra)) { /* integer loop? */ + lua_Integer step = ivalue(ra + 2); + lua_Integer idx = intop(+, ivalue(ra), step); /* increment index */ + lua_Integer limit = ivalue(ra + 1); + if ((0 < step) ? (idx <= limit) : (limit <= idx)) { + ci->u.l.savedpc += GETARG_sBx(i); /* jump back */ + chgivalue(ra, idx); /* update internal index... */ + setivalue(ra + 3, idx); /* ...and external index */ + } + } + else { /* floating loop */ + lua_Number step = fltvalue(ra + 2); + lua_Number idx = luai_numadd(L, fltvalue(ra), step); /* inc. index */ + lua_Number limit = fltvalue(ra + 1); + if (luai_numlt(0, step) ? luai_numle(idx, limit) + : luai_numle(limit, idx)) { + ci->u.l.savedpc += GETARG_sBx(i); /* jump back */ + chgfltvalue(ra, idx); /* update internal index... */ + setfltvalue(ra + 3, idx); /* ...and external index */ + } + } + vmbreak; + } + vmcase(OP_FORPREP) { + TValue *init = ra; + TValue *plimit = ra + 1; + TValue *pstep = ra + 2; + lua_Integer ilimit; + int stopnow; + if (ttisinteger(init) && ttisinteger(pstep) && + forlimit(plimit, &ilimit, ivalue(pstep), &stopnow)) { + /* all values are integer */ + lua_Integer initv = (stopnow ? 0 : ivalue(init)); + setivalue(plimit, ilimit); + setivalue(init, intop(-, initv, ivalue(pstep))); + } + else { /* try making all values floats */ + lua_Number ninit; lua_Number nlimit; lua_Number nstep; + if (!tonumber(plimit, &nlimit)) + luaG_runerror(L, "'for' limit must be a number"); + setfltvalue(plimit, nlimit); + if (!tonumber(pstep, &nstep)) + luaG_runerror(L, "'for' step must be a number"); + setfltvalue(pstep, nstep); + if (!tonumber(init, &ninit)) + luaG_runerror(L, "'for' initial value must be a number"); + setfltvalue(init, luai_numsub(L, ninit, nstep)); + } + ci->u.l.savedpc += GETARG_sBx(i); + vmbreak; + } + vmcase(OP_TFORCALL) { + StkId cb = ra + 3; /* call base */ + setobjs2s(L, cb+2, ra+2); + setobjs2s(L, cb+1, ra+1); + setobjs2s(L, cb, ra); + L->top = cb + 3; /* func. + 2 args (state and index) */ + Protect(luaD_call(L, cb, GETARG_C(i))); + L->top = ci->top; + i = *(ci->u.l.savedpc++); /* go to next instruction */ + ra = RA(i); + lua_assert(GET_OPCODE(i) == OP_TFORLOOP); + goto l_tforloop; + } + vmcase(OP_TFORLOOP) { + l_tforloop: + if (!ttisnil(ra + 1)) { /* continue loop? */ + setobjs2s(L, ra, ra + 1); /* save control variable */ + ci->u.l.savedpc += GETARG_sBx(i); /* jump back */ + } + vmbreak; + } + vmcase(OP_SETLIST) { + int n = GETARG_B(i); + int c = GETARG_C(i); + unsigned int last; + Table *h; + if (n == 0) n = cast_int(L->top - ra) - 1; + if (c == 0) { + lua_assert(GET_OPCODE(*ci->u.l.savedpc) == OP_EXTRAARG); + c = GETARG_Ax(*ci->u.l.savedpc++); + } + h = hvalue(ra); + last = ((c-1)*LFIELDS_PER_FLUSH) + n; + if (last > h->sizearray) /* needs more space? */ + luaH_resizearray(L, h, last); /* preallocate it at once */ + for (; n > 0; n--) { + TValue *val = ra+n; + luaH_setint(L, h, last--, val); + luaC_barrierback(L, h, val); + } + L->top = ci->top; /* correct top (in case of previous open call) */ + vmbreak; + } + vmcase(OP_CLOSURE) { + Proto *p = cl->p->p[GETARG_Bx(i)]; + LClosure *ncl = getcached(p, cl->upvals, base); /* cached closure */ + if (ncl == NULL) /* no match? */ + pushclosure(L, p, cl->upvals, base, ra); /* create a new one */ + else + setclLvalue(L, ra, ncl); /* push cashed closure */ + checkGC(L, ra + 1); + vmbreak; + } + vmcase(OP_VARARG) { + int b = GETARG_B(i) - 1; /* required results */ + int j; + int n = cast_int(base - ci->func) - cl->p->numparams - 1; + if (n < 0) /* less arguments than parameters? */ + n = 0; /* no vararg arguments */ + if (b < 0) { /* B == 0? */ + b = n; /* get all var. arguments */ + Protect(luaD_checkstack(L, n)); + ra = RA(i); /* previous call may change the stack */ + L->top = ra + n; + } + for (j = 0; j < b && j < n; j++) + setobjs2s(L, ra + j, base - n + j); + for (; j < b; j++) /* complete required results with nil */ + setnilvalue(ra + j); + vmbreak; + } + vmcase(OP_EXTRAARG) { + lua_assert(0); + vmbreak; + } + } + } +} + +/* }================================================================== */ + diff --git a/3rd/lua-5.3.4/lvm.h b/3rd/lua-5.3.4/lvm.h new file mode 100644 index 0000000..422f871 --- /dev/null +++ b/3rd/lua-5.3.4/lvm.h @@ -0,0 +1,113 @@ +/* +** $Id: lvm.h,v 2.41 2016/12/22 13:08:50 roberto Exp $ +** Lua virtual machine +** See Copyright Notice in lua.h +*/ + +#ifndef lvm_h +#define lvm_h + + +#include "ldo.h" +#include "lobject.h" +#include "ltm.h" + + +#if !defined(LUA_NOCVTN2S) +#define cvt2str(o) ttisnumber(o) +#else +#define cvt2str(o) 0 /* no conversion from numbers to strings */ +#endif + + +#if !defined(LUA_NOCVTS2N) +#define cvt2num(o) ttisstring(o) +#else +#define cvt2num(o) 0 /* no conversion from strings to numbers */ +#endif + + +/* +** You can define LUA_FLOORN2I if you want to convert floats to integers +** by flooring them (instead of raising an error if they are not +** integral values) +*/ +#if !defined(LUA_FLOORN2I) +#define LUA_FLOORN2I 0 +#endif + + +#define tonumber(o,n) \ + (ttisfloat(o) ? (*(n) = fltvalue(o), 1) : luaV_tonumber_(o,n)) + +#define tointeger(o,i) \ + (ttisinteger(o) ? (*(i) = ivalue(o), 1) : luaV_tointeger(o,i,LUA_FLOORN2I)) + +#define intop(op,v1,v2) l_castU2S(l_castS2U(v1) op l_castS2U(v2)) + +#define luaV_rawequalobj(t1,t2) luaV_equalobj(NULL,t1,t2) + + +/* +** fast track for 'gettable': if 't' is a table and 't[k]' is not nil, +** return 1 with 'slot' pointing to 't[k]' (final result). Otherwise, +** return 0 (meaning it will have to check metamethod) with 'slot' +** pointing to a nil 't[k]' (if 't' is a table) or NULL (otherwise). +** 'f' is the raw get function to use. +*/ +#define luaV_fastget(L,t,k,slot,f) \ + (!ttistable(t) \ + ? (slot = NULL, 0) /* not a table; 'slot' is NULL and result is 0 */ \ + : (slot = f(hvalue(t), k), /* else, do raw access */ \ + !ttisnil(slot))) /* result not nil? */ + +/* +** standard implementation for 'gettable' +*/ +#define luaV_gettable(L,t,k,v) { const TValue *slot; \ + if (luaV_fastget(L,t,k,slot,luaH_get)) { setobj2s(L, v, slot); } \ + else luaV_finishget(L,t,k,v,slot); } + + +/* +** Fast track for set table. If 't' is a table and 't[k]' is not nil, +** call GC barrier, do a raw 't[k]=v', and return true; otherwise, +** return false with 'slot' equal to NULL (if 't' is not a table) or +** 'nil'. (This is needed by 'luaV_finishget'.) Note that, if the macro +** returns true, there is no need to 'invalidateTMcache', because the +** call is not creating a new entry. +*/ +#define luaV_fastset(L,t,k,slot,f,v) \ + (!ttistable(t) \ + ? (slot = NULL, 0) \ + : (slot = f(hvalue(t), k), \ + ttisnil(slot) ? 0 \ + : (luaC_barrierback(L, hvalue(t), v), \ + setobj2t(L, cast(TValue *,slot), v), \ + 1))) + + +#define luaV_settable(L,t,k,v) { const TValue *slot; \ + if (!luaV_fastset(L,t,k,slot,luaH_get,v)) \ + luaV_finishset(L,t,k,v,slot); } + + + +LUAI_FUNC int luaV_equalobj (lua_State *L, const TValue *t1, const TValue *t2); +LUAI_FUNC int luaV_lessthan (lua_State *L, const TValue *l, const TValue *r); +LUAI_FUNC int luaV_lessequal (lua_State *L, const TValue *l, const TValue *r); +LUAI_FUNC int luaV_tonumber_ (const TValue *obj, lua_Number *n); +LUAI_FUNC int luaV_tointeger (const TValue *obj, lua_Integer *p, int mode); +LUAI_FUNC void luaV_finishget (lua_State *L, const TValue *t, TValue *key, + StkId val, const TValue *slot); +LUAI_FUNC void luaV_finishset (lua_State *L, const TValue *t, TValue *key, + StkId val, const TValue *slot); +LUAI_FUNC void luaV_finishOp (lua_State *L); +LUAI_FUNC void luaV_execute (lua_State *L); +LUAI_FUNC void luaV_concat (lua_State *L, int total); +LUAI_FUNC lua_Integer luaV_div (lua_State *L, lua_Integer x, lua_Integer y); +LUAI_FUNC lua_Integer luaV_mod (lua_State *L, lua_Integer x, lua_Integer y); +LUAI_FUNC lua_Integer luaV_shiftl (lua_Integer x, lua_Integer y); +LUAI_FUNC void luaV_objlen (lua_State *L, StkId ra, const TValue *rb); + +#endif diff --git a/3rd/lua-5.3.4/lzio.c b/3rd/lua-5.3.4/lzio.c new file mode 100644 index 0000000..c9e1f49 --- /dev/null +++ b/3rd/lua-5.3.4/lzio.c @@ -0,0 +1,68 @@ +/* +** $Id: lzio.c,v 1.37 2015/09/08 15:41:05 roberto Exp $ +** Buffered streams +** See Copyright Notice in lua.h +*/ + +#define lzio_c +#define LUA_CORE + +#include "lprefix.h" + + +#include + +#include "lua.h" + +#include "llimits.h" +#include "lmem.h" +#include "lstate.h" +#include "lzio.h" + + +int luaZ_fill (ZIO *z) { + size_t size; + lua_State *L = z->L; + const char *buff; + lua_unlock(L); + buff = z->reader(L, z->data, &size); + lua_lock(L); + if (buff == NULL || size == 0) + return EOZ; + z->n = size - 1; /* discount char being returned */ + z->p = buff; + return cast_uchar(*(z->p++)); +} + + +void luaZ_init (lua_State *L, ZIO *z, lua_Reader reader, void *data) { + z->L = L; + z->reader = reader; + z->data = data; + z->n = 0; + z->p = NULL; +} + + +/* --------------------------------------------------------------- read --- */ +size_t luaZ_read (ZIO *z, void *b, size_t n) { + while (n) { + size_t m; + if (z->n == 0) { /* no bytes in buffer? */ + if (luaZ_fill(z) == EOZ) /* try to read more */ + return n; /* no more input; return number of missing bytes */ + else { + z->n++; /* luaZ_fill consumed first byte; put it back */ + z->p--; + } + } + m = (n <= z->n) ? n : z->n; /* min. between n and z->n */ + memcpy(b, z->p, m); + z->n -= m; + z->p += m; + b = (char *)b + m; + n -= m; + } + return 0; +} + diff --git a/3rd/lua-5.3.4/lzio.h b/3rd/lua-5.3.4/lzio.h new file mode 100644 index 0000000..e7b6f34 --- /dev/null +++ b/3rd/lua-5.3.4/lzio.h @@ -0,0 +1,66 @@ +/* +** $Id: lzio.h,v 1.31 2015/09/08 15:41:05 roberto Exp $ +** Buffered streams +** See Copyright Notice in lua.h +*/ + + +#ifndef lzio_h +#define lzio_h + +#include "lua.h" + +#include "lmem.h" + + +#define EOZ (-1) /* end of stream */ + +typedef struct Zio ZIO; + +#define zgetc(z) (((z)->n--)>0 ? cast_uchar(*(z)->p++) : luaZ_fill(z)) + + +typedef struct Mbuffer { + char *buffer; + size_t n; + size_t buffsize; +} Mbuffer; + +#define luaZ_initbuffer(L, buff) ((buff)->buffer = NULL, (buff)->buffsize = 0) + +#define luaZ_buffer(buff) ((buff)->buffer) +#define luaZ_sizebuffer(buff) ((buff)->buffsize) +#define luaZ_bufflen(buff) ((buff)->n) + +#define luaZ_buffremove(buff,i) ((buff)->n -= (i)) +#define luaZ_resetbuffer(buff) ((buff)->n = 0) + + +#define luaZ_resizebuffer(L, buff, size) \ + ((buff)->buffer = luaM_reallocvchar(L, (buff)->buffer, \ + (buff)->buffsize, size), \ + (buff)->buffsize = size) + +#define luaZ_freebuffer(L, buff) luaZ_resizebuffer(L, buff, 0) + + +LUAI_FUNC void luaZ_init (lua_State *L, ZIO *z, lua_Reader reader, + void *data); +LUAI_FUNC size_t luaZ_read (ZIO* z, void *b, size_t n); /* read next n bytes */ + + + +/* --------- Private Part ------------------ */ + +struct Zio { + size_t n; /* bytes still unread */ + const char *p; /* current position in buffer */ + lua_Reader reader; /* reader function */ + void *data; /* additional data */ + lua_State *L; /* Lua state (for reader) */ +}; + + +LUAI_FUNC int luaZ_fill (ZIO *z); + +#endif diff --git a/APIs/OOP.lua b/APIs/OOP.lua new file mode 100644 index 0000000..182dacc --- /dev/null +++ b/APIs/OOP.lua @@ -0,0 +1,40 @@ +Object = {} + +function Object:prototype(o) + o = o or {} -- create table if user does not provide one + setmetatable(o, self) + self.__index = self + return o +end + +function Object:new(o) + local obj = self:prototype(o) + obj:initialize() + return obj +end + +function Object:print() + print('an Object') +end + +function Object:initialize() +end + +function Object:asJSON() + return '{}' +end + +function Object:inherit(o) + return self:prototype(o) +end + + +function Object:extends(o) + return self:inherit(o) +end + +Test = Object:inherit{dummy = 0} + +function Test:toWeb() + wio.t(self.dummy) +end \ No newline at end of file diff --git a/APIs/api.lua b/APIs/api.lua new file mode 100644 index 0000000..9d46f87 --- /dev/null +++ b/APIs/api.lua @@ -0,0 +1,145 @@ +-- root dir +__ROOT__ = __api__.root +-- set require path +package.path = __ROOT__ .. '/?.lua;'..__api__.apiroot..'/?.lua' +package.cpath = __api__.apiroot..'/?.llib' +-- set session +SESSION = {} +if REQUEST.query ~= nil and REQUEST.query.cookie ~= nil then + SESSION = REQUEST.query.cookie +end +HEADER = REQUEST.query.__xheader__ +HEADER.mobile = false + +if HEADER["User-Agent"] and HEADER["User-Agent"]:match("Mobi") then + HEADER.mobile = true +end + +require("std") +require("utils") +require("extra_mime") + +function has_module(m) + if utils.file_exists(__ROOT__..'/'..m) then + if m:find("%.ls$") then + return true, true, __ROOT__..'/'..m + else + return true, false, m:gsub(".lua$","") + end + elseif utils.file_exists(__ROOT__..'/'..string.gsub(m,'%.','/')..'.lua') then + return true, false, m + elseif utils.file_exists(__ROOT__..'/'..string.gsub(m,'%.','/')..'.ls') then + return true, true, __ROOT__..'/'..string.gsub(m,'%.','/')..'.ls' + end + return false, false, nil +end + +function echo(m) + if m then std.t(m) else std.t("Undefined value") end +end + +function loadscript(file, args) + local f = io.open(file, "rb") + local content = "" + if f then + local html = "" + local pro = "local fn = function(...)" + local s,e, mt + local mtbegin = true -- find begin of scrit, 0 end of scrit + local i = 1 + if args then + pro = "local fn = function("..table.concat( args, ",")..")" + end + for line in io.lines(file) do + line = std.trim(line, " ") + if(line ~= "") then + if(mtbegin) then + mt = "^%s*<%?lua" + else + mt = "%?>%s*$" + end + s,e = line:find(mt) + if(s) then + if mtbegin then + if html ~= "" then + pro= pro.."echo(\""..utils.escape(html).."\")\n" + html = "" + end + local b,f = line:find("%?>%s*$") + if b then + pro = pro..line:sub(e+1,b-1).."\n" + else + pro = pro..line:sub(e+1).."\n" + mtbegin = not mtbegin + end + else + pro = pro..line:sub(0,s-1).."\n" + mtbegin = not mtbegin + end + else -- no match + if mtbegin then + -- detect if we have inline lua with format + local b,f = line:find("<%?=") + if b then + local tmp = line + pro= pro.."echo(" + while(b) do + -- find the close + local x,y = tmp:find("%?>") + if x then + pro = pro.."\""..utils.escape(html..tmp:sub(0,b-1):gsub("%%","%%%%")).."\".." + pro = pro..tmp:sub(f+1,x-1)..".." + html = "" + tmp = tmp:sub(y+1) + b,f = tmp:find("<%?=") + else + error("Syntax error near line "..i) + end + end + pro = pro.."\""..utils.escape(tmp:gsub("%%","%%%%")).."\")\n" + --print(pro) + else + html = html..std.trim(line," "):gsub("%%","%%%%").."\n" + end + else + if line ~= "" then pro = pro..line.."\n" end + end + end + end + i = i+ 1 + end + f:close() + if(html ~= "") then + pro = pro.."echo(\""..utils.escape(html).."\")\n" + end + pro = pro.."\nend \n return fn" + --print(pro) + local r,e = load(pro) + if r then return r(), e else return nil,e end + end +end + +-- OOP support +--require("OOP") +-- load sqlite helper +--require("sqlite") +-- enable extra mime + +-- run the file + + +local m, s, p = has_module(REQUEST.path) +if m then + -- run the correct module + if s then + local r,e = loadscript(p) + if r then r() else unknow(e) end + else + require(p) + end +else + unknow("Resource not found for request "..REQUEST.path) +end + + +--require('router') diff --git a/APIs/bugbot.lua b/APIs/bugbot.lua new file mode 100644 index 0000000..557b0f5 --- /dev/null +++ b/APIs/bugbot.lua @@ -0,0 +1,90 @@ +local pibot = require("pibot") + +local bugbot = {} +local cmd = bytes.new(8) +--1 IRL R +--2 IRR R +--3 SNL R +--4 SNH R +--5 ML RW +--6 MR RW +--7 MLS RW +--8 MRL RW +bugbot.init = function() + return pibot.init() +end + +bugbot.scan = function() + local raw = pibot.read(64) + if raw then + local data = {} + data.leftIR = raw[0] + data.rightIR = raw[1] + data.sonar = raw[2] + bit32.lshift(raw[3], 8) + data.motors = {} + data.motors.left = {} + data.motors.right = {} + data.motors.left.status = raw[4] + data.motors.left.speed = raw[5] + data.motors.right.status = raw[6] + data.motors.right.speed = raw[7] + return data + end + return nil +end + + +bugbot.forward = function(sp) + cmd[5] = 1 -- fw + cmd[6] = sp -- fw + cmd[7] = 1 + cmd[8] = sp + pibot.write(cmd) +end + +bugbot.action = function(st1,sp1,st2,sp2) + + cmd[5] = st1 -- bw + cmd[6] = sp1 + cmd[7] = st2 -- bw + cmd[8] = sp2 + + pibot.write(cmd) +end + +bugbot.backward = function(sp) + cmd[5] = 2 -- bw + cmd[6] = sp -- bw + cmd[7] = 2 + cmd[8] = sp + pibot.write(cmd) +end + +bugbot.stop = function() + cmd[5] = 0 -- s + cmd[6] = 0 -- s + cmd[7] = 0 + cmd[8] = 0 + pibot.write(cmd) +end + +bugbot.rotateLeft = function(sp) + cmd[5] = 2 -- bw + cmd[6] = sp -- fw + cmd[7] = 1 + cmd[8] = sp + pibot.write(cmd) +end + +bugbot.rotateRight = function(sp) + cmd[5] = 1 -- fw + cmd[6] = sp -- bw + cmd[7] = 2 + cmd[8] = sp + pibot.write(cmd) +end + +bugbot.release = function() + return pibot.release() +end +return bugbot \ No newline at end of file diff --git a/APIs/extra_mime.lua b/APIs/extra_mime.lua new file mode 100644 index 0000000..3c219b4 --- /dev/null +++ b/APIs/extra_mime.lua @@ -0,0 +1,43 @@ +function std.extra_mime(name) + local ext = std.ext(name); + local mpath = __ROOT__.."/".."mimes.json" + local xmimes = {} + if utils.file_exists(mpath) then + local f = io.open(mpath, "r") + if f then + xmimes = JSON.decodeString(f:read("*all")) + f:close() + end + end + if(name:find("Makefile$")) then return "text/makefile",false + elseif ext == "php" then return "text/php",false + elseif ext == "c" or ext == "h" then return "text/c",false + elseif ext == "cpp" or ext == "hpp" then return "text/cpp",false + elseif ext == "md" then return "text/markdown",false + elseif ext == "lua" then return "text/lua",false + elseif ext == "yaml" then return "application/x-yaml", false + elseif xmimes[ext] then return xmimes[ext].mime, xmimes[ext].binary + --elseif ext == "pgm" then return "image/x-portable-graymap", true + else + return "application/octet-stream",true + end +end + +function std.mimeOf(name) + local mime = std.mime(name) + if mime ~= "application/octet-stream" then + return mime + else + return std.extra_mime(name) + end +end + +function std.isBinary(name) + local mime = std.mime(name) + if mime ~= "application/octet-stream" then + return std.is_bin(name) + else + local xmime,bin = std.extra_mime(name) + return bin + end +end diff --git a/APIs/sqlite.lua b/APIs/sqlite.lua new file mode 100644 index 0000000..319a538 --- /dev/null +++ b/APIs/sqlite.lua @@ -0,0 +1,157 @@ +sqlite = modules.sqlite() + +if sqlite == nil then return 0 end +require("OOP") +-- create class +DBModel = Object:inherit{db=nil, name=''} + +function DBModel:createTable(m) + if self:available() then return true end + local sql = "CREATE TABLE "..self.name.."(id INTEGER PRIMARY KEY" + for k, v in pairs(m) do + if k ~= "id" then + sql = sql..","..k.." "..v + end + end + sql = sql..");" + return sqlite.query(self.db,sql) == 1 +end + +function DBModel:insert(m) + local keys = {} + local values = {} + for k,v in pairs(m) do + if k ~= "id" then + table.insert(keys,k) + if type(v) == "number" then + table.insert(values, v) + elseif type(v) == "boolean" then + table.insert( values, v and 1 or 0 ) + else + local t = "\""..v:gsub('"', '""').."\"" + table.insert(values,t) + end + end + end + local sql = "INSERT INTO "..self.name.." ("..table.concat(keys,',')..') VALUES (' + sql = sql..table.concat(values,',')..');' + return sqlite.query(self.db, sql) == 1 +end + +function DBModel:get(id) + return sqlite.select(self.db, self.name, "*","id="..id)[1] +end + +function DBModel:getAll() + --local sql = "SELECT * FROM "..self.name + --return sqlite.select(self.db, self.name, "1=1") + local data = sqlite.select(self.db, self.name, "*", "1=1") + if data == nil then return nil end + local a = {} + for n in pairs(data) do table.insert(a, n) end + table.sort(a) + return data, a +end + +function DBModel:find(cond) + local cnd = "1=1" + local sel = "*" + if cond.exp then + cnd = self:gencond(cond.exp) + end + if cond.order then + cnd = cnd.." ORDER BY " + local l = {} + local i = 1 + for k,v in pairs(cond.order) do + l[i] = k.." "..v + i = i+1 + end + cnd = cnd..table.concat(l, ",") + end + if cond.limit then + cnd = cnd.." LIMIT "..cond.limit + end + if cond.fields then + sel = table.concat(cond.fields, ",") + --print(sel) + end + --print(cnd) + local data = sqlite.select(self.db, self.name, sel, cnd) + if data == nil then return nil end + local a = {} + for n in pairs(data) do table.insert(a, n) end + table.sort(a) + return data, a +end + +function DBModel:query(sql) + return sqlite.query(self.db, sql) == 1 +end + +function DBModel:update(m) + local id = m['id'] + if id ~= nil then + local lst = {} + for k,v in pairs(m) do + if(type(v)== "number") then + table.insert(lst,k.."="..v) + elseif type(v) == "boolean" then + table.insert( lst, k.."="..(v and 1 or 0) ) + else + table.insert(lst,k.."=\""..v:gsub('"', '""').."\"") + end + end + local sql = "UPDATE "..self.name.." SET "..table.concat(lst,",").." WHERE id="..id..";" + return sqlite.query(self.db, sql) == 1 + end + return false +end + +function DBModel:available() + return sqlite.hasTable(self.db, self.name) == 1 +end +function DBModel:deleteByID(id) + local sql = "DELETE FROM "..self.name.." WHERE id="..id..";" + return sqlite.query(self.db, sql) == 1 +end +function DBModel:gencond(o) + for k,v in pairs(o) do + if k == "and" or k == "or" then + local cnd = {} + local i = 1 + for k1,v1 in pairs(v) do + cnd[i] = self:gencond(v1) + i = i + 1 + end + return " ("..table.concat(cnd, " "..k.." ")..") " + else + for k1,v1 in pairs(v) do + local t = type(v1) + if(t == "string") then + return " ("..k1.." "..k..' "'..v1:gsub('"','""')..'") ' + end + return " ("..k1.." "..k.." "..v1..") " + end + end + end +end +function DBModel:delete(cond) + local sql = "DELETE FROM "..self.name.." WHERE "..self:gencond(cond)..";" + return sqlite.query(self.db, sql) == 1 +end + +function DBModel:lastInsertID() + return sqlite.lastInsertID(self.db) +end + +function DBModel:close() + if self.db then + sqlite.dbclose(self.db) + end +end +function DBModel:open() + if self.db ~= nil then + self.db = sqlite.getdb(self.db) + end +end \ No newline at end of file diff --git a/APIs/std.lua b/APIs/std.lua new file mode 100644 index 0000000..5deaf5d --- /dev/null +++ b/APIs/std.lua @@ -0,0 +1,122 @@ +std = modules.std() +bytes = modules.bytes() +array = modules.array() +function std.html() + std._html(REQUEST.id) +end +function std.text() + std._text(REQUEST.id) +end +function std.status(code, msg) + std._status(REQUEST.id, code, msg) +end +function std.custom_header(k,v) + --print(k..":"..v) + std.t(k..": "..v) +end +function std.header_flush() + std.t("") +end +--_redirect +function std.redirect(s) + std._redirect(REQUEST.id,s) +end +function std.json() + std._json(REQUEST.id) +end +function std.jpeg() + std._jpeg(REQUEST.id) +end +function std.header(s) + std._header(REQUEST.id,s) +end +function std.octstream(s) + std._octstream(REQUEST.id,s) +end +function std.textstream() + std._textstream(REQUEST.id) +end +function std.ti(v) + std._ti(REQUEST.id,v) +end +function std.t(s) + std._t(REQUEST.id,s) +end +function std.f(v) + std._f(REQUEST.id,v) +end +function std.fb(v) + std._fb(REQUEST.id,v) +end +function std.setCookie(t,v,p) + p = p or "" + std._setCookie(REQUEST.id,t,v,p) +end +function std.cjson(v, p) + + std.setCookie("application/json; charset=utf-8",v) +end +function std.chtml(v) + std.setCookie("text/html; charset=utf-8",v) +end +function std.ctext(v) + std.setCookie("text/plain; charset=utf-8",v) +end +--_upload +--_route +function std.unknow(s) + std._unknow(REQUEST.id,s) +end + +function std.readOnly(t) -- bugging + local proxy = {} + local mt = { -- create metatable + __index = t, + __newindex = function (t,k,v) + error("attempt to update a read-only table", 2) + end + } + setmetatable(proxy, mt) + return proxy + end + + +-- web socket +std.ws = {} +function std.ws.header() + local h = std.ws_header(REQUEST.id) + if(h) then + return h --std.readOnly(h) + else + return nil + end +end + +function std.ws.read(h) + return std.ws_read(REQUEST.id,h) +end +function std.ws.swrite(s) + std.ws_t(REQUEST.id,s) +end +function std.ws.fwrite(s) + std.ws_f(REQUEST.id,s) +end +function std.ws.write_bytes(arr) + std.ws_b(REQUEST.id,arr) +end +function std.ws.enable() + return REQUEST.query ~= nil and REQUEST.query["__web_socket__"] == "1" +end +function std.ws.close(code) + std.ws_close(REQUEST.id,code) +end +function std.basename(str) + local name = string.gsub(std.trim(str,"/"), "(.*/)(.*)", "%2") + return name +end +function std.is_file(f) + return std.is_dir(f) == false +end +std.ws.TEXT = 1 +std.ws.BIN = 2 +std.ws.CLOSE = 8 diff --git a/APIs/utils.lua b/APIs/utils.lua new file mode 100644 index 0000000..0d499b3 --- /dev/null +++ b/APIs/utils.lua @@ -0,0 +1,137 @@ +utils = {} + +function utils.is_array(table) + local max = 0 + local count = 0 + for k, v in pairs(table) do + if type(k) == "number" then + if k > max then max = k end + count = count + 1 + else + return false + end + end + if max > count * 2 then + return false + end + + return true +end + +function utils.escape(s) + local replacements = { + ["\\"] = "\\\\" , + ['"'] = '\\"', + ["\n"] = "\\n", + ["\t"] = "\\t", + ["\b"] = "\\b", + ["\f"] = "\\f", + ["\r"] = "\\r", + ["%"] = "%%" + } + return (s:gsub( "[\\'\"\n\t\b\f\r%%]", replacements )) +end + +function utils.escape_pattern(s) + return s:gsub("[%(%)%.%+%-%*%?%[%]%^%$%%]", "%%%1") +end + +function utils.unescape_pattern(s) + return s:gsub( "[%%]", "%%%%") +end + +function utils.hex_to_char(x) + return string.char(tonumber(x, 16)) +end + +function utils.decodeURI(url) + return url:gsub("%%(%x%x)", utils.hex_to_char) +end + +function utils.unescape(s) + local replacements = { + ["\\\\"] = "\\" , + ['\\"'] = '"' , + ["\\n"] = "\n" , + ["\\t"] = "\t" , + ["\\b"] = "\b" , + ["\\f"] = "\f" , + ["\\r"] = "\r" + } + local out = s + for k,v in pairs(replacements) do + out = out:gsub(k,v) + end + return out +end + +function utils.file_exists(name) + local f=io.open(name,"r") + if f~=nil then io.close(f) return true else return false end +end + +function utils.url_parser(uri) + local pattern = "^(https?)://([%.%w]+):?(%d*)(/?[^#]*)#?.*$" + local obj = {} + obj.protocol = uri:gsub(pattern, "%1") + obj.hostname = uri:gsub(pattern, "%2") + obj.port = uri:gsub(pattern, "%3") + obj.query = uri:gsub(pattern, "%4") + + if obj.port == "" then obj.port = 80 else obj.port = tonumber(obj.port) end + if obj.query == "" then obj.query="/" end + return obj +end + +JSON = modules.JSON() + +function JSON.encode(obj) + local t = type(obj) + if t == 'table' then + -- encode object + if utils.is_array(obj) == false then + local lst = {} + for k,v in pairs(obj) do + table.insert(lst,'"'..k..'":'..JSON.encode(v)) + end + return "{"..table.concat(lst,",").."}" + else + local lst = {} + local a = {} + for n in pairs(obj) do table.insert(a, n) end + table.sort(a) + for i,v in pairs(a) do + table.insert(lst,JSON.encode(obj[v])) + end + return "["..table.concat(lst,",").."]" + end + elseif t == 'string' then + --print('"'..utils.escape(obj)..'"') + return '"'..utils.escape(obj)..'"' + elseif t == 'boolean' or t == 'number' then + return tostring(obj) + elseif obj == nil then + return "null" + else + return '"'..tostring(obj)..'"' + end +end + +function explode(str, div) -- credit: http://richard.warburton.it + if (div=='') then return false end + local pos,arr = 0,{} + -- for each divider found + for st,sp in function() return string.find(str,div,pos,true) end do + table.insert(arr,string.sub(str,pos,st-1)) -- Attach chars left of current divider + pos = sp + 1 -- Jump past current divider + end + table.insert(arr,string.sub(str,pos)) -- Attach chars right of last divider + return arr + end +function implode(arr, div) + return table.concat(arr,div) +end + +function firstToUpper(str) + return (str:gsub("^%l", string.upper)) +end \ No newline at end of file diff --git a/APIs/web.lua b/APIs/web.lua new file mode 100644 index 0000000..b5dba59 --- /dev/null +++ b/APIs/web.lua @@ -0,0 +1,74 @@ +-- require the utils library to work +--require("utils") +-- require("std") +local wurl = require("wurl") + +local web = {} + +web.undestand = function(proto) + if proto == "http" or proto == "https" then + return true + else + return false + end +end + +web.get = function(url) + local obj = utils.url_parser(url) + if web.undestand(obj.protocol) then + return wurl._get(obj.hostname,obj.port, obj.query) + else + return nil,"Protocol is unsupported: "..obj.protocol + end +end + + +web.post = function(url,data) + local obj = utils.url_parser(url) + if web.undestand(obj.protocol) then + if type(data) == "string" then + return wurl._post(obj.hostname, + obj.port, + obj.query, + "application/x-www-form-urlencoded",data) + else + return wurl._post(obj.hostname, + obj.port, + obj.query, + data.contentType,data.value) + end + else + return nil,"Protocol is unsupported: "..obj.protocol + end +end + +web.download = function(url,to) + local obj = utils.url_parser(url) + if web.undestand(obj.protocol) then + local file + if std.is_dir(to) then + -- need to find file name here + local pattern = "^[^%?]*/([%w.]*)%??.*$" + local filename = string.gsub(obj.query,pattern,"%1") + if filename == "" then filename = "index" end + file = to.."/"..filename + else + file = to + end + local obj = utils.url_parser(url) + return wurl._download(obj.hostname,obj.port,obj.query,file) + else + return false,"Protocol is unsupported: "..obj.protocol + end +end + +web.upload = function(url,name,file) + local obj = utils.url_parser(url) + if web.undestand(obj.protocol) then + return wurl._upload(obj.hostname,obj.port,obj.query,name,file) + else + return nil,"Protocol is unsupported: "..obj.protocol + end +end + +return web \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..acd8089 --- /dev/null +++ b/Makefile @@ -0,0 +1,75 @@ +include ../../var.mk +ifeq ($(UNAME_S),Linux) + FL_LUA=linux + LUA_LIB=lua-api.dylib libantd.dylib -lm -lcrypt +endif +ifeq ($(UNAME_S),Darwin) + FL_LUA=macosx + LUA_LIB= lua-api.dylib libantd.dylib -lm +endif +LUA_H= -I../../3rd/lua-5.3.4/ + +PL_NAME=lua-api +PLUGINS=$(PL_NAME).$(EXT) +LLIBS=wurl.llib ulib.llib ann.llib stmr.llib #pibot.llib + +OBJS = $(PLUGINS_BASE)/plugin.o + +PLUGINSDEP = $(OBJS) \ + $(WRAPI) \ + plugin-wrapper.o\ + 3rd/jsmn/jsmn.o \ + array-wrapper.o \ + json-wrapper.o \ + db-wrapper.o + +PLUGINLIBS = -lm -lpthread -lsqlite3 libantd.$(EXT) + +PCFLAGS=-W -Wall -g -std=c99 -D DEBUG $(PPF_FLAG) -D USE_DB +main: lua $(PLUGINSDEP) $(PLUGINS) api lib +lua: + cd 3rd/lua-5.3.4 && make $(FL_LUA) +%.o: %.c + $(CC) $(PCFLAGS) -fPIC $(INCFLAG) -c $< -o $@ + +%.$(EXT): %.o + -ln -s $(PBUILDIRD)/libantd.$(EXT) . + $(CC) $(PCFLAGS) $(PLUGINLIBS) -shared -o $(PBUILDIRD)/$(basename $@).$(EXT) \ + $(PLUGINSDEP) $(basename $@).o 3rd/lua-5.3.4/liblua.a + +deepclean: luaclean clean + +clean: libclean + -rm -f *.o 3rd/jsmn/*.o *.$(EXT) $(PBUILDIRD)/$(PLUGINS) + -rm $(PLUGINS_BASE)/plugin.o + -rm $(PBUILDIRD)/$(PL_NAME)/*.$(LIB_EXT) + +libclean: + for file in lib/* ;do \ + if [ -d "$$file" ]; then \ + echo "Cleaning $$file" ;\ + make -C "$$file" clean; \ + fi \ + done + +luaclean: + - cd 3rd/lua-5.3.4 && make clean + +lib:$(LLIBS) + +%.llib: + -ln -s $(PBUILDIRD)/libantd.$(EXT) lib/$(basename $@) + -ln -s $(PBUILDIRD)/$(PLUGINS) lib/$(basename $@) + -cd lib/$(basename $@) && make + +api: + -mkdir $(PBUILDIRD)/$(PL_NAME) + cp APIs/*.lua $(PBUILDIRD)/$(PL_NAME) +app: + cp -rf example-app/* $(APP_DIR) +.PRECIOUS: %.o +.PHONY: lib clean +full: clean main + + + diff --git a/README.md b/README.md index c651cf8..981e722 100644 --- a/README.md +++ b/README.md @@ -1 +1,9 @@ -# antd-lua-plugin \ No newline at end of file +## LUA-plugin +Lua support for ANTD. When enabled, Lua can be used as server side script for ANTD. Database is also enable in Lua API, using sqlite. +## Dependencies +* lm +* libreadline +* sqlite3 (optional) +* libshadow for the shared library Ulib +### example +* git for version control application \ No newline at end of file diff --git a/array-wrapper.c b/array-wrapper.c new file mode 100644 index 0000000..263c77f --- /dev/null +++ b/array-wrapper.c @@ -0,0 +1,191 @@ +#include "lua-api.h" +// add a length field, and +void lua_new_byte_array(lua_State*L, int n) +{ + size_t nbytes = sizeof(byte_array_t) + (n-1)*sizeof(unsigned char); + byte_array_t *a = (byte_array_t *)lua_newuserdata(L, nbytes); + luaL_getmetatable(L, BYTEARRAY); + lua_setmetatable(L, -2); + a->size = n; +} +static int l_new_barray (lua_State *L) { + int n = luaL_checknumber(L, 1); + lua_new_byte_array(L,n); + return 1; /* new userdatum is already on the stack */ +} +byte_array_t *l_check_barray (lua_State *L,int idx) { + void *ud = luaL_checkudata(L, idx, BYTEARRAY); + luaL_argcheck(L, ud != NULL, idx, "`byte array' expected"); + return (byte_array_t *)ud; +} + +static unsigned char *get_bel(lua_State *L) { + byte_array_t *a = l_check_barray(L,1); + int index = luaL_checknumber(L, 2); + luaL_argcheck(L, 1 <= index && index <= a->size, 2, + "index out of range"); + + /* return element address */ + return &a->data[index - 1]; + } + +static int l_set_barray (lua_State *L) { + unsigned char value = luaL_checknumber(L, 3); + *get_bel(L) = value; + return 0; +} + +static int l_get_barray (lua_State *L) { + lua_pushnumber(L, *get_bel(L)); + return 1; +} + +static int l_get_barray_size (lua_State *L) { + byte_array_t *a = l_check_barray(L,1); + lua_pushnumber(L, a->size); + return 1; +} + +static int l_barray_to_string (lua_State *L) { + byte_array_t *a = l_check_barray(L,1); + char * d = (char*) malloc(a->size+1); + memcpy(d, a->data, a->size); + d[a->size] = '\0'; + lua_pushstring(L, d); + if(d) + free(d); + return 1; +} + +static int l_barray_write(lua_State* L) +{ + byte_array_t *a = l_check_barray(L,1); + const char* f = luaL_checkstring(L,2); + FILE *fp; + fp = fopen(f,"wb"); + + if(!fp) + lua_pushboolean(L,0); + else + { + fwrite(a->data ,1, a->size ,fp); + lua_pushboolean(L,1); + fclose(fp); + } + return 1; +} + +static const struct luaL_Reg barraylib[] = { + {"new", l_new_barray}, + {"set", l_set_barray}, + {"get", l_get_barray}, + {"size",l_get_barray_size}, + {"__tostring", l_barray_to_string}, + {"write", l_barray_write}, + {NULL, NULL} +}; + + + +// ARRAY +void lua_new_array(lua_State*L, int n) +{ + size_t nbytes = sizeof(array_t) + (n-1)*sizeof(double); + array_t *a = (array_t *)lua_newuserdata(L, nbytes); + luaL_getmetatable(L, ARRAY); + lua_setmetatable(L, -2); + a->size = n; +} +static int l_new_array (lua_State *L) { + int n = luaL_checknumber(L, 1); + lua_new_array(L,n); + return 1; /* new userdatum is already on the stack */ +} + +array_t *l_check_array (lua_State *L, int idx) { + void *ud = luaL_checkudata(L, idx, ARRAY); + luaL_argcheck(L, ud != NULL, idx, "`array' expected"); + return (array_t *)ud; +} + +static double *get_el(lua_State *L) { + array_t *a = l_check_array(L,1); + int index = luaL_checknumber(L, 2); + luaL_argcheck(L, 1 <= index && index <= a->size, 2, + "index out of range"); + + /* return element address */ + return &a->data[index - 1]; + } + +static int l_set_array (lua_State *L) { + double value = luaL_checknumber(L, 3); + *get_el(L) = value; + return 0; +} + +static int l_get_array (lua_State *L) { + lua_pushnumber(L, *get_el(L)); + return 1; +} + +static int l_get_array_size (lua_State *L) { + array_t *a = l_check_array(L,1); + lua_pushnumber(L, a->size); + return 1; +} +static int l_array_to_string (lua_State *L) { + array_t *a = l_check_array(L,1); + lua_pushfstring(L, "number array(%d)", a->size); + return 1; +} + +static const struct luaL_Reg arraylib [] = { + {"new", l_new_array}, + {"set", l_set_array}, + {"get", l_get_array}, + {"size",l_get_array_size}, + {"__tostring", l_array_to_string}, + {NULL, NULL} +}; +int luaopen_array (lua_State *L) { + luaL_newmetatable(L, ARRAY); + luaL_newlib(L, arraylib); + lua_pushstring(L, "__index"); + lua_pushstring(L, "get"); + lua_gettable(L, 2); /* get array.get */ + lua_settable(L, 1); /* metatable.__index = array.get */ + + lua_pushstring(L, "__newindex"); + lua_pushstring(L, "set"); + lua_gettable(L, 2); /* get array.set */ + lua_settable(L, 1); /* metatable.__newindex = array.set */ + + //lua_pushstring(L, "__index"); + //lua_pushvalue(L, -2); /* pushes the metatable */ + //lua_settable(L, -3); /* metatable.__index = metatable */ + // luaL_setfuncs(L, arraylib_m, 0); + // luaL_openlib(L, NULL, arraylib_m, 0); + // luaL_newlib(L, arraylib_f); + return 1; + } +int luaopen_barray (lua_State *L) { + luaL_newmetatable(L, BYTEARRAY); + luaL_newlib(L, barraylib); + lua_pushstring(L, "__index"); + lua_pushstring(L, "get"); + lua_gettable(L, 2); /* get array.get */ + lua_settable(L, 1); /* metatable.__index = array.get */ + + lua_pushstring(L, "__newindex"); + lua_pushstring(L, "set"); + lua_gettable(L, 2); /* get array.set */ + lua_settable(L, 1); + //lua_pushstring(L, "__index"); + //lua_pushvalue(L, -2); /* pushes the metatable */ + //lua_settable(L, -3); /* metatable.__index = metatable */ + //luaL_setfuncs(L, barraylib_m, 0); + //luaL_openlib(L, NULL, barraylib_m, 0); + //luaL_newlib(L, barraylib_f); + return 1; +} \ No newline at end of file diff --git a/db-wrapper.c b/db-wrapper.c new file mode 100644 index 0000000..3bafad3 --- /dev/null +++ b/db-wrapper.c @@ -0,0 +1,113 @@ +#include "lua-api.h" + +//sqldb db = NULL; + +static int l_getdb (lua_State *L) { + const char* s = luaL_checkstring(L,1); +// if(db) +// dbclose(db); + //printf("OPEN: %s\n",s); + sqldb db = __getdb(s); + if(db) + lua_pushlightuserdata(L, db); + else + lua_pushnil(L); + return 1; /* number of results */ +} +static int l_db_close(lua_State *L) +{ + sqldb db = (sqldb) lua_touserdata(L, 1); + if(db) + { + //printf("close database\n"); + dbclose(db); + } + db = NULL; + return 0; +} +static int l_db_query(lua_State *L) +{ + sqldb db = (sqldb) lua_touserdata(L, 1); + const char* s = luaL_checkstring(L,2); + int r = 0; + if(db) + r = dbquery(db,s,NULL); + lua_pushnumber(L,r); + return 1; +} +static int l_db_lastid(lua_State *L) +{ + sqldb db = (sqldb) lua_touserdata(L, 1); + + int idx = -1; + if(db) + idx = sqlite3_last_insert_rowid(db); + lua_pushnumber(L,idx); + return 1; +} +static int l_db_select(lua_State *L) +{ + sqldb db = (sqldb) lua_touserdata(L, 1); + const char* tbl = luaL_checkstring(L,2); + const char* fname = luaL_checkstring(L,3); + const char* cond = luaL_checkstring(L,4); + if(!db) + { + lua_pushnil(L); + return 1; + } + dbrecord records = dbselect(db,tbl, fname,cond); + int cnt = 1; + //new table for data + lua_newtable(L); + for(dbrecord r = records;r != NULL; r=r->next) + { + dbfield row = r-> fields; + if(row) + { + lua_pushnumber(L,cnt); + lua_newtable(L); + for(dbfield c = row; c != NULL; c= c->next) + { + if(c->name) + { + //LOG("%s->%s",c->name,c->value); + lua_pushstring(L,c->name); + lua_pushstring(L,c->value); + lua_settable(L, -3); + } + } + //free(row); + lua_settable(L, -3); + cnt++; + } + } + if(records) + freerecord(&records); + return 1; +} +static int l_hastable(lua_State *L) +{ + sqldb db = (sqldb) lua_touserdata(L, 1); + const char* tbl = luaL_checkstring(L,2); + if(db) + lua_pushnumber(L,hastable(db,tbl)); + else + lua_pushnumber(L,0); + return 1; +} +static const struct luaL_Reg sqlite [] = { + {"getdb", l_getdb}, + {"dbclose", l_db_close}, + {"query", l_db_query}, + {"lastInsertID", l_db_lastid}, + {"select", l_db_select}, + {"hasTable", l_hastable}, + {NULL,NULL} +}; + +int luaopen_sqlite(lua_State *L) +{ + luaL_newlib(L, sqlite); + return 1; +} \ No newline at end of file diff --git a/example-app/mimes.json b/example-app/mimes.json new file mode 100644 index 0000000..8efc9a6 --- /dev/null +++ b/example-app/mimes.json @@ -0,0 +1,18 @@ +{ + "viz": { + "mime": "text/vnd.graphviz", + "binary": false + }, + "py": { + "mime": "text/x-python", + "binary": false + }, + "coffee":{ + "mime": "text/vnd.coffeescript", + "binary": false + }, + "apj": { + "mime": "text/antos-project", + "binary": false + } +} \ No newline at end of file diff --git a/example-app/os/apigateway.lua b/example-app/os/apigateway.lua new file mode 100644 index 0000000..fd173ef --- /dev/null +++ b/example-app/os/apigateway.lua @@ -0,0 +1,97 @@ +local use_ws = false +if REQUEST.query and REQUEST.query.ws == "1" then + -- override the global echo command + echo = std.ws.swrite + use_ws = true +else + std.json() +end +local exec_with_user_priv = function(data) + local uid = unix.uid(SESSION.iotos_user) + if not unix.setgid(uid.gid) or not unix.setuid(uid.id) then + echo("Cannot set permission to execute the code") + return + end + local r,e + e = "{'error': 'Unknow function'}" + if data.code then + r,e = load(data.code) + if r then + local status,result = pcall(r) + if(status) then + echo(JSON.encode(result)) + else + echo(result) + end + else + echo(e) + end + elseif data.path then + r,e = loadfile(data.path) + if r then + local status,result = pcall(r, data.parameters) + if(status) then + echo(JSON.encode(result)) + else + echo(result) + end + else + echo(e) + end + else + echo(e) + end +end + +if(is_auth()) then + local pid = unix.fork() + if(pid == -1) then + echo("{'error':'Cannot create process'}") + elseif pid > 0 then -- parent + -- wait for the child exit + unix.waitpid(pid) + print("Parent exit") + else -- child + if use_ws then + if std.ws.enable() then + -- read header + local header = std.ws.header() + if header then + if header.mask == 0 then + print("Data is not masked") + std.ws.close(1012) + elseif header.opcode == std.ws.CLOSE then + print("Connection closed") + std.ws.close(1000) + elseif header.opcode == std.ws.TEXT then + -- read the file + local data = std.ws.read(header) + if data then + data = (JSON.decodeString(data)) + exec_with_user_priv(data) + std.ws.close(1011) + else + echo("Error: Invalid request") + std.ws.close(1011) + end + end + else + std.ws.close(1011) + end + else + print("Web socket is not available.") + end + else + if REQUEST.query.json then + data = JSON.decodeString(REQUEST.query.json) + std.json() + exec_with_user_priv(data) + else + fail("Unkown request") + end + end + print("Child exit") + end +else + echo('{"error":"User unauthorized. Please login"}') +end \ No newline at end of file diff --git a/example-app/os/db/delete.lua b/example-app/os/db/delete.lua new file mode 100644 index 0000000..276bae6 --- /dev/null +++ b/example-app/os/db/delete.lua @@ -0,0 +1,29 @@ +auth_or_die("User unauthorized. Please login") +local rq = (JSON.decodeString(REQUEST.query.json)) +if(rq ~= nil and rq.table ~= nil) then + local model = require("db.model").get(SESSION.iotos_user, rq.table, nil) + local ret + if model == nil then + fail("Cannot get table metadata:"..rq.table) + else + if(rq.id == nil ) then + if(rq.cond) then + ret = model:delete(rq.cond) + model:close() + else + model:close() + return fail("Unknow element to delete") + end + else + ret = model:deleteByID(rq.id) + model:close() + end + if ret then + result(ret) + else + fail("Querry error or database is locked") + end + end +else + fail("Unknown database request") +end \ No newline at end of file diff --git a/example-app/os/db/get.lua b/example-app/os/db/get.lua new file mode 100644 index 0000000..fbb83de --- /dev/null +++ b/example-app/os/db/get.lua @@ -0,0 +1,19 @@ +auth_or_die("User unauthorized. Please login") +local rq = (JSON.decodeString(REQUEST.query.json)) +if(rq ~= nil and rq.table ~= nil) then + local model = require("db.model").get(SESSION.iotos_user, rq.table, nil) + local ret + if model == nil then + fail("Cannot get table metadata:"..rq.table) + else + if(rq.id == nil ) then + ret = model:getAll() + else + ret = model:get(rq.id) + end + model:close() + result(ret) + end +else + fail("Unknown database request") +end \ No newline at end of file diff --git a/example-app/os/db/model.lua b/example-app/os/db/model.lua new file mode 100644 index 0000000..8dcad32 --- /dev/null +++ b/example-app/os/db/model.lua @@ -0,0 +1,20 @@ +local model = {} + +model.get = function(name, tbl, data) + local db = DBModel:new{db = name, name=tbl} + db:open() + if db:available() then return db end + if data == nil then return nil end + local meta = {} + --print(JSON.encode(data)) + for k,v in pairs(data) do + if type(v) == "number" then + meta[k] = "NUMERIC" + else + meta[k] = "TEXT" + end + end + db:createTable(meta) + return db +end +return model \ No newline at end of file diff --git a/example-app/os/db/save.lua b/example-app/os/db/save.lua new file mode 100644 index 0000000..a57b356 --- /dev/null +++ b/example-app/os/db/save.lua @@ -0,0 +1,24 @@ +auth_or_die("User unauthorized. Please login") +local rq = (JSON.decodeString(REQUEST.query.json)) +if(rq ~= nil and rq.table ~= nil) then + local model = require("db.model").get(SESSION.iotos_user,rq.table, rq.data) + local ret + if model == nil then + fail("Cannot get table metadata:"..rq.table) + else + if(rq.data.id ~= nil ) then + rq.data.id = tonumber(rq.data.id) + ret = model:update(rq.data) + else + ret = model:insert(rq.data) + end + model:close() + if ret == true then + result(ret) + else + fail("Cannot modify/update table "..rq.table) + end + end +else + fail("Unknown database request") +end \ No newline at end of file diff --git a/example-app/os/db/select.lua b/example-app/os/db/select.lua new file mode 100644 index 0000000..8441bd8 --- /dev/null +++ b/example-app/os/db/select.lua @@ -0,0 +1,20 @@ +auth_or_die("User unauthorized. Please login") +local rq = (JSON.decodeString(REQUEST.query.json)) +if(rq ~= nil and rq.table ~= nil) then + local model = require("db.model").get(SESSION.iotos_user,rq.table, nil) + local ret + if model == nil then + fail("Cannot get table metadata:"..rq.table) + else + if(rq.cond == nil ) then + model:close() + return fail("Unknow condition") + else + ret = model:find(rq.cond) + end + model:close() + result(ret) + end +else + fail("Unknown database request") +end \ No newline at end of file diff --git a/example-app/os/fs/delete.lua b/example-app/os/fs/delete.lua new file mode 100644 index 0000000..64638de --- /dev/null +++ b/example-app/os/fs/delete.lua @@ -0,0 +1,15 @@ +auth_or_die("User unauthorized. Please login") + +local vfs = require("fs.vfs") +local rq = (JSON.decodeString(REQUEST.query.json)) + +if rq ~= nil then + local r,e = vfs.delete(rq.path) + if r then + result(r) + else + fail(e) + end +else + fail("Uknown request") +end \ No newline at end of file diff --git a/example-app/os/fs/exists.lua b/example-app/os/fs/exists.lua new file mode 100644 index 0000000..522f8b3 --- /dev/null +++ b/example-app/os/fs/exists.lua @@ -0,0 +1,10 @@ +auth_or_die("User unauthorized. Please login") + +local vfs = require("fs.vfs") +local rq = (JSON.decodeString(REQUEST.query.json)) + +if rq ~= nil then + result(vfs.exists(rq.path)) +else + fail("Uknown request") +end diff --git a/example-app/os/fs/fileinfo.lua b/example-app/os/fs/fileinfo.lua new file mode 100644 index 0000000..9ddc6cf --- /dev/null +++ b/example-app/os/fs/fileinfo.lua @@ -0,0 +1,8 @@ +auth_or_die("User unauthorized. Please login") +local vfspath = (JSON.decodeString(REQUEST.query.json)).path +local r,m = require("fs.vfs").fileinfo(vfspath) +if r then + result(m) +else + fail(m) +end diff --git a/example-app/os/fs/fsconf.lua.tpl b/example-app/os/fs/fsconf.lua.tpl new file mode 100644 index 0000000..d3a53a3 --- /dev/null +++ b/example-app/os/fs/fsconf.lua.tpl @@ -0,0 +1,6 @@ + +local conf = { + home="/Users/%s/tmp/", + shared="/Users/%s/tmp/Public/" +} +return conf \ No newline at end of file diff --git a/example-app/os/fs/fsh.lua b/example-app/os/fs/fsh.lua new file mode 100644 index 0000000..1fc0998 --- /dev/null +++ b/example-app/os/fs/fsh.lua @@ -0,0 +1,14 @@ +local handler + +handler = function(str) + local func = str:match("^%a+/") + if func == "get/" then + require("fs.get")(str:gsub(func,"")) + elseif func == "shared/" then + require("fs.shared").get(str:gsub(func,"")) + else + fail("Action is not supported: "..func) + end +end + +return handler diff --git a/example-app/os/fs/get.lua b/example-app/os/fs/get.lua new file mode 100644 index 0000000..c4acad8 --- /dev/null +++ b/example-app/os/fs/get.lua @@ -0,0 +1,40 @@ +local get +get = function(uri) + vfsfile = utils.decodeURI(uri) + auth_or_die("User unauthorized. Please login") + local r,m = require("fs.vfs").checkperm(vfsfile,'read') + if r then + local mime = std.mimeOf(m) + if mime == "audio/mpeg" then + local finfo = unix.file_stat(m) + local len = tostring(math.floor(finfo.size)) + local len1 = tostring(math.floor(finfo.size-1)) + std.status(200, "OK") + std.custom_header("Pragma","public") + std.custom_header("Expires","0") + std.custom_header("Content-Type",mime) + std.custom_header("Content-Length",len) + std.custom_header("Content-Disposition","inline; filename="..std.basename(m)) + std.custom_header("Content-Range:","bytes 0-"..len1.."/"..len) + std.custom_header("Accept-Ranges","bytes") + std.custom_header("X-Pad", "avoid browser bug") + std.custom_header("Content-Transfer-Encoding", "binary") + std.custom_header("Cache-Control","no-cache, no-store") + std.custom_header("Connection", "Keep-Alive") + std.custom_header("Etag","a404b-c3f-47c3a14937c80") + std.header_flush() + else + std.header(mime) + end + + if std.is_bin(m) then + std.fb(m) + else + std.f(m) + end + else + fail(m) + end +end + +return get; diff --git a/example-app/os/fs/mkdir.lua b/example-app/os/fs/mkdir.lua new file mode 100644 index 0000000..5ce7334 --- /dev/null +++ b/example-app/os/fs/mkdir.lua @@ -0,0 +1,11 @@ +auth_or_die("User unauthorized. Please login") + +local rq = (JSON.decodeString(REQUEST.query.json)) + +if rq ~= nil then + local r,m = require("fs.vfs").mkdir(rq.path) + if r then result(r) else fail(m) end +else + fail("Uknown request") +end + diff --git a/example-app/os/fs/move.lua b/example-app/os/fs/move.lua new file mode 100644 index 0000000..d2ba6ac --- /dev/null +++ b/example-app/os/fs/move.lua @@ -0,0 +1,13 @@ +auth_or_die("User unauthorized. Please login") + +local rq = (JSON.decodeString(REQUEST.query.json)) + +if rq ~= nil then + local r,m = require("fs.vfs").move(rq.src,rq.dest) + if r then result(r) else fail(m) end +else + fail("Uknown request") +end + + + diff --git a/example-app/os/fs/publish.lua b/example-app/os/fs/publish.lua new file mode 100644 index 0000000..3006605 --- /dev/null +++ b/example-app/os/fs/publish.lua @@ -0,0 +1,36 @@ +auth_or_die("User unauthorized. Please login") + +local rq = (JSON.decodeString(REQUEST.query.json)) + +if rq ~= nil then + local p = nil + if rq.publish then + p = require("fs.vfs").ospath(rq.path) + else + p = require("fs.shared").ospath(rq.path) + end + local user = SESSION.iotos_user + local uid = unix.uid(user) + local st = unix.file_stat(p) + if uid.id ~= st.uid then die("Only the owner can share or unshare this file") end + local entry = { sid = std.sha1(p), user = SESSION.iotos_user, path = p, uid = uid.id } + local db = require("db.model").get("sysdb", "shared", entry) + if db == nil then die("Cannot get system database") end + local cond = nil + if rq.publish then + cond = { exp = { ["="] = { path = p } } } + local data = db:find(cond) + if data == nil or data[0] == nil then + -- insert entry + db:insert(entry) + end + else + cond = { ["="] = { sid = rq.path } } + db:delete(cond) + end + db:close() + result(entry.sid) + +else + fail("Uknown request") +end \ No newline at end of file diff --git a/example-app/os/fs/scandir.lua b/example-app/os/fs/scandir.lua new file mode 100644 index 0000000..65947b4 --- /dev/null +++ b/example-app/os/fs/scandir.lua @@ -0,0 +1,10 @@ +auth_or_die("User unauthorized. Please login") +local vfspath = (JSON.decodeString(REQUEST.query.json)).path +local r = require("fs.vfs").readDir(vfspath) +if r == nil then + fail("Resource not found") +else + --print(JSON.encode(readDir(ospath, vfspath))) + result(r) +end + diff --git a/example-app/os/fs/shared.lua b/example-app/os/fs/shared.lua new file mode 100644 index 0000000..d184abb --- /dev/null +++ b/example-app/os/fs/shared.lua @@ -0,0 +1,52 @@ +local shared = {} +shared.get = function(sharedid) + if sharedid == "all" then + -- get all shared files + local db = require("db.model").get("sysdb", "shared", nil) + if db == nil then die("Cannot get shared database") end + local data = db:getAll() + if data == nil then die("No file found") end + local i = 1 + local ret = {} + for k,v in pairs(data) do + if(unix.exists(v.path)) then + local r = unix.file_stat(v.path) + if(r.error == nil) then + r.path = "shared://"..v.sid + r.filename = std.basename(v.path) + if r.mime == "application/octet-stream" then + r.mime = std.extra_mime(r.filename) + end + ret[i] = r + i = i+1 + end + else + local cond = { ["="] = { sid = v.sid } } + db:delete(cond) + end + end + db:close() + --std.json() + result(ret) + else + + local p = shared.ospath(sharedid) + std.header(std.mimeOf(p)) + if std.is_bin(p) then + std.fb(p) + else + std.f(p) + end + end +end + +shared.ospath = function(sharedid) + local db = require("db.model").get("sysdb", "shared", nil) + if db == nil then die("Cannot get shared database") end + local cond = { exp = { ["="] = { sid = sharedid } } } + local data = db:find(cond) + db:close() + if data == nil or data[1] == nil then die("Cannot get shared file with: "..sharedid) end + return data[1].path +end +return shared; diff --git a/example-app/os/fs/upload.lua b/example-app/os/fs/upload.lua new file mode 100644 index 0000000..8f07c4d --- /dev/null +++ b/example-app/os/fs/upload.lua @@ -0,0 +1,8 @@ +auth_or_die("User unauthorized. Please login") +local vfs = require("fs.vfs") +if REQUEST.query then + local r,m = require("fs.vfs").upload(REQUEST.query.path) + if r then result(r) else fail(m) end +else + fail("Query not found") +end diff --git a/example-app/os/fs/vfs.lua b/example-app/os/fs/vfs.lua new file mode 100644 index 0000000..c9ccbe0 --- /dev/null +++ b/example-app/os/fs/vfs.lua @@ -0,0 +1,203 @@ +local vfs = {} + +vfs.ospath = function(path) + local user = SESSION.iotos_user + local conf = require("fs.fsconf") + local prefix = string.match(path, "%a+://") + if(prefix ~= nil) then + local suffix = string.gsub(path,prefix,"") + if prefix == "home://" then + return string.format(conf.home,user)..'/'..suffix + elseif prefix == "desktop://" then + return string.format(conf.home,user).."/.desktop/"..suffix + elseif prefix == "shared://" then + return require("fs.shared").ospath(std.trim(suffix,"/")) + elseif prefix == "os://" then + return OSROOT.."/"..suffix + else + return nil + end + else + return nil; + end +end + + +vfs.delete = function(path) + local r,m = vfs.checkperm(path,"write") + if r then + if unix.delete(m) then + -- change permission + return true,nil + else + return false,"Cant not delete the file" + end + else + return r,m + end +end + +vfs.exists = function(path) + local osfile = vfs.ospath(path) + return unix.exists(osfile) +end + +vfs.fileinfo = function(vfspath) + local ospath = vfs.ospath(vfspath) + if ospath then + if(unix.exists(ospath) == false) then return false,"File not found" end + local r = unix.file_stat(ospath) + if(r.error ~= nil) then return false,r.error end + r.path = vfspath + r.name = std.basename(vfspath) + if r.mime == "application/octet-stream" then + r.mime = std.extra_mime(r.name) + end + return true,r + else + return false,"Resource not found" + end +end + +vfs.mkdir = function(path) + local file = std.basename(path) + local folder = string.gsub(path, utils.escape_pattern(file),"") + local r,m = vfs.checkperm(folder,"write") + + if r then + local osfile = m.."/"..file + local uid = unix.uid(SESSION.iotos_user) + unix.mkdir(osfile) + -- change permission + unix.chown(osfile, uid.id, uid.gid) + return true,nil + else + return r,m + end +end + +vfs.move = function(src,dest) + local file = std.basename(dest) + local folder = string.gsub(dest, utils.escape_pattern(file),"") + + local sp,sm = vfs.checkperm(src,"write") + if sp then + local dp,dm = vfs.checkperm(folder,"write") + if dp then + unix.move(sm,dm.."/"..file) + -- change permission + return true,nil + else + return dp,dm + end + else + return sp,sm + end +end + +vfs.write = function(path,data) + local file = std.basename(path) + local folder = string.gsub(path, utils.escape_pattern(file),"") + + local r,m = vfs.checkperm(folder,"write") + if r then + local osfile = m.."/"..file + local uid = unix.uid(SESSION.iotos_user) + -- + if data ~= "" then + local header = string.match(data, "^data%:%w+%/%w+;base64,") + if header ~= nil then + local b64data = string.gsub(data, header,"") + local barr = std.b64decode(b64data) + if std.isBinary(osfile) then + bytes.write(barr,osfile) + else + local f = io.open(osfile, "w") + f:write(bytes.__tostring(barr)) + f:close() + end + end + else + bytes.write(bytes.new(0),osfile) + end + --f:close() + -- change permission + unix.chown(osfile, uid.id, uid.gid) + return true,nil + else + return r,m + end +end + +vfs.upload = function(path) + local r,m = vfs.checkperm(path,"write") + if(r) then + local uid = unix.uid(SESSION.iotos_user) + local file = m.."/"..REQUEST.query["upload.file"] + unix.move(REQUEST.query["upload.tmp"], file) + unix.chown(file, uid.id, uid.gid) + return true, nil + else + return r,m + end +end + +vfs.checkperm = function(path, right) + local osfile = vfs.ospath(path) + local perm = vfs.perm(osfile) + print(osfile) + -- check if user own the file + if perm ~= nil then + if perm[right] == true then + print("Permission granted") + return true,osfile + else + print("Permission denie") + return false,"You dont have "..right.." permission on this file" + end + else + return false,"User is unrecognized" + end +end + +vfs.perm = function(file) + local user = SESSION.iotos_user + local uid = unix.uid(user) + local st = unix.file_stat(file) + -- check if user own the file + if uid ~= nil and st ~= nil and st.perm ~= nil then + --print(JSON.encode({uid, st})) + if(uid.id == st.uid) then -- the user owned the file + print("file belong to user") + return st.perm.owner + elseif uid.groups and uid.groups[st.gid] then + print("User belong to this group") + return st.perm.group + else + print("User belong to other") + return st.perm.other + end + else + return nil + end +end + +vfs.readDir = function(vfspath) + if(string.sub(vfspath,-1) == "/") then + prefix = string.sub(vfspath,1,-2) + else + prefix = vfspath + end + local ospath = vfs.ospath(vfspath,SESSION.iotos_user) + local r = unix.read_dir(ospath, prefix) + if(r.error ~= nil) then return nil end + -- add extra mime type + for k,v in pairs(r) do + if v.mime == "application/octet-stream" then + v.mime = std.extra_mime(v.filename) + end + end + return r +end + +return vfs diff --git a/example-app/os/fs/write.lua b/example-app/os/fs/write.lua new file mode 100644 index 0000000..76046f5 --- /dev/null +++ b/example-app/os/fs/write.lua @@ -0,0 +1,13 @@ + +auth_or_die("User unauthorized. Please login") +local rq = (JSON.decodeString(REQUEST.query.json)) + +if rq ~= nil then + local r,m = require("fs.vfs").write(rq.path, rq.data) + sqlite.dbclose() + if r then result(r) else fail(m) end +else + fail("Uknown request") +end + + diff --git a/example-app/os/index.lua b/example-app/os/index.lua new file mode 100644 index 0000000..25c7a8b --- /dev/null +++ b/example-app/os/index.lua @@ -0,0 +1 @@ +result({r = "Welcome to antOS" }) \ No newline at end of file diff --git a/example-app/os/router.lua b/example-app/os/router.lua new file mode 100644 index 0000000..496ffc9 --- /dev/null +++ b/example-app/os/router.lua @@ -0,0 +1,10 @@ +local handle = function(p) + local hstr = p:match("^%a+/") + if hstr == "fs/" then + --print("require module") + require("fs.fsh")(p:gsub(hstr,"",1)) + else + fail("Resource not found for request "..p) + end +end +return handle \ No newline at end of file diff --git a/example-app/os/system/application.lua b/example-app/os/system/application.lua new file mode 100644 index 0000000..9da7ced --- /dev/null +++ b/example-app/os/system/application.lua @@ -0,0 +1,24 @@ +auth_or_die("User unauthorized. Please login") +local rq = nil +if REQUEST.query.json ~= nil then + rq = (JSON.decodeString(REQUEST.query.json)) +else + rq = REQUEST.query +end + +if rq.path ~= nil then + local pkg = require("fs.vfs").ospath(rq.path) + if pkg == nil then + pkg = OSROOT..'/packages/'..rq.path + --die("unkown request path:"..rq.path) + end + pkg = pkg.."/api.lua" + if unix.exists(pkg) then + dofile(pkg).exec(rq.method,rq.arguments) + else + fail("Uknown application handler: "..pkg) + end +else + fail("Uknown request") +end + diff --git a/example-app/os/system/auth.lua b/example-app/os/system/auth.lua new file mode 100644 index 0000000..5b2dc60 --- /dev/null +++ b/example-app/os/system/auth.lua @@ -0,0 +1,3 @@ +auth_or_die("User unauthorized. Please login") +local user = require("system.uman").userinfo(SESSION.iotos_user) +result(user) diff --git a/example-app/os/system/curl.lua b/example-app/os/system/curl.lua new file mode 100644 index 0000000..e08ef85 --- /dev/null +++ b/example-app/os/system/curl.lua @@ -0,0 +1,17 @@ +auth_or_die("User unauthorized. Please login") +local rq = (JSON.decodeString(REQUEST.query.json)) + +if rq ~= nil then + local r,m = require("web").get(rq.url) + if r then + if r.binary then + result({body="data:"..r.contentType..";base64,"..r.data}) + else + result({body=r.data}) + end + else + fail(m) + end +else + fail("Uknown request") +end \ No newline at end of file diff --git a/example-app/os/system/login.lua b/example-app/os/system/login.lua new file mode 100644 index 0000000..de9c40f --- /dev/null +++ b/example-app/os/system/login.lua @@ -0,0 +1,39 @@ +if REQUEST.query.json ~= nil then + local request = JSON.decodeString(REQUEST.query.json) + local r = unix.auth(request.username,request.password) + if r == true then + local cookie = {sessionid=std.sha1(request.username..request.password)} -- iotos_user = request.username + local db = sysdb(); + if db == nil then return fail("Cannot setup session") end + local cond = {exp= {["="] = { sessionid = cookie.sessionid }}} + local data = db:find(cond) + --print(data) + if data == nil or data[1] == nil then + --print("insert new data") + data = {sessionid = cookie.sessionid, username=request.username, stamp=os.time(os.date("!*t"))} + else + data = data[1] + --print("Update old data") + data.stamp = os.time(os.date("!*t")) + end + if data.id == nil then + db:insert(data) + else + db:update(data) + end + db:close() + std.cjson(cookie) + SESSION.iotos_user = request.username + local user = { + result = require("system.uman").userinfo(request.username), + error = false + } + std.t(JSON.encode(user)) + else + fail("Invalid login") + end +else + fail("Invalid request") +end + + diff --git a/example-app/os/system/logout.lua b/example-app/os/system/logout.lua new file mode 100644 index 0000000..cf68cbd --- /dev/null +++ b/example-app/os/system/logout.lua @@ -0,0 +1,17 @@ +if SESSION.sessionid ~= nil and SESSION.sessionid ~= '0' then + local cookie = {sessionid='0'} + local db = sysdb() + if db ~= nil then + --local data = db:find("sessionid ='"..SESSION.sessionid.."'") + --if data and data[0] ~= nil then + -- db:delete(data[0].id) + --end + local cond = {["="] = { sessionid = SESSION.sessionid }} + db:delete(cond) + db:close() + end + std.cjson(cookie) +else + std.json() +end +std.t(JSON.encode({error=false,result=true})) \ No newline at end of file diff --git a/example-app/os/system/packages.json b/example-app/os/system/packages.json new file mode 100644 index 0000000..9c3aab0 --- /dev/null +++ b/example-app/os/system/packages.json @@ -0,0 +1,21 @@ +[ + { + "className": "NotePad", + "name": "Source editor", + "description": "Advance text editor", + "category": "development", + "author": "xsang.le@gmail.com", + "version": "0.1", + "download": "http://192.168.1.49:9191/repo/AceEditor.zip" + }, + { + "className": "DummyApp", + "name": "Antos features", + "description": "Antos features show case", + "category": "utilities", + "author": "xsang.le@gmail.com", + "version": "1.0", + "download": "https://os.localhost:9195/repo/DummyApp.zip" + } + ] + \ No newline at end of file diff --git a/example-app/os/system/packages.json.tpl b/example-app/os/system/packages.json.tpl new file mode 100644 index 0000000..3f28bd3 --- /dev/null +++ b/example-app/os/system/packages.json.tpl @@ -0,0 +1,588 @@ +"default/About": { + "className": "ApplicationAbout", + "name": "About OS.js", + "description": "About OS.js", + "names": { + "bg_BG": " За OS.js", + "de_DE": "Ãœber OS.js", + "fr_FR": "À propos d'OS.js", + "it_IT": "Informazioni su OS.js", + "ko_KR": "OS.jsì— ëŒ€í•˜ì—¬", + "nl_NL": "Over OS.js", + "no_NO": "Om OS.js", + "pl_PL": "o OS.js", + "ru_RU": "Об OS.js", + "sk_SK": "o OS.js", + "tr_TR": "hakkında OS.js", + "vi_VN": "Thông tin vá» OS.js" + }, + "descriptions": { + "bg_BG": "За OS.js", + "de_DE": "Ãœber OS.js", + "fr_FR": "À propos d'OS.js", + "it_IT": "Informazioni su OS.js", + "ko_KR": "OS.jsì— ëŒ€í•˜ì—¬", + "nl_NL": "Over OS.js", + "no_NO": "Om OS.js", + "pl_PL": "o OS.js", + "ru_RU": "Об OS.js", + "sk_SK": "o OS.js", + "tr_TR": "hakkında OS.js", + "vi_VN": "Thông tin vá» OS.js" + }, + "singular": true, + "category": "system", + "icon": "apps/help-browser.png", + "preload": [{ + "type": "javascript", + "src": "combined.js" + }, { + "type": "stylesheet", + "src": "combined.css" + }, { + "src": "scheme.html", + "type": "scheme" + }], + "type": "application", + "path": "default/About", + "build": {}, + "repo": "default" +}, +"default/AceEditor": { + "className": "ApplicationAceEditor", + "name": "Source Editor", + "icon": "apps/accessories-text-editor.png", + "category": "development", + "mime": [ + "^text", + "inode\\/x\\-empty", + "application\\/x\\-empty", + "application\\/x\\-python", + "application\\/x\\-php", + "application\\/javascript" + ], + "build": { + "copy": [ + "metadata.json", + "scheme.html", + "main.css", + "main.js", + "vendor/ace" + ] + }, + "preload": [{ + "type": "javascript", + "src": "combined.js" + }, { + "type": "stylesheet", + "src": "combined.css" + }, { + "src": "scheme.html", + "type": "scheme" + }], + "type": "application", + "path": "default/AceEditor", + "repo": "default" +}, +"default/Archiver": { + "className": "ApplicationArchiver", + "name": "Archiver", + "mime": [ + "application/zip" + ], + "icon": "apps/system-software-install.png", + "category": "utilities", + "compability": [ + "file", + "blob" + ], + "preload": [{ + "type": "javascript", + "src": "combined.js" + }, { + "type": "stylesheet", + "src": "combined.css" + }, { + "src": "scheme.html", + "type": "scheme" + }], + "type": "application", + "path": "default/Archiver", + "build": {}, + "repo": "default" +}, +"default/Calculator": { + "className": "ApplicationCalculator", + "name": "Calculator", + "names": { + "bg_Bg": "Клакулатор", + "fr_FR": "Calculatrice", + "it_IT": "Calcolatrice", + "ko_KR": "계산기", + "nl_NL": "Rekenmachine", + "no_NO": "Kalkulator", + "pl_PL": "Kalkulator", + "ru_RU": "КалькулÑтор", + "sk_SK": "KalkulaÄka", + "tr_TR": "Hesap Makinesi", + "vi_VN": "Máy tính" + }, + "icon": "apps/calc.png", + "category": "office", + "preload": [{ + "type": "javascript", + "src": "combined.js" + }, { + "type": "stylesheet", + "src": "combined.css" + }, { + "src": "scheme.html", + "type": "scheme" + }], + "type": "application", + "path": "default/Calculator", + "build": {}, + "repo": "default" +}, +"default/CoreWM": { + "className": "CoreWM", + "name": "OS.js Window Manager", + "names": { + "bg_BG": "Мениджър на прозорци на OS.js", + "de_DE": "OS.js Fenster-Manager", + "es_ES": "OS.js Window Manager", + "fr_FR": "Gestionnaire de fenêtre OS.js", + "it_IT": "OS.js Gestore Finestre", + "ko_KR": "OS.js 윈ë„ìš° 관리ìž", + "nl_NL": "OS.js venster beheer", + "no_NO": "OS.js VinduhÃ¥ndterer", + "pl_PL": "Menedżer Okien OS.js", + "ru_RU": "OS.js Оконный менеджер", + "sk_SK": "Správca Okien OS.js", + "tr_TR": "OS.js Pencere Yöneticisi", + "vi_VN": "Quản lí cá»­a sổ OS.js" + }, + "singular": true, + "type": "windowmanager", + "icon": "apps/gnome-window-manager.png", + "splash": false, + "preload": [{ + "src": "scheme.html", + "type": "scheme" + }, { + "type": "javascript", + "src": "combined.js" + }, { + "type": "stylesheet", + "src": "combined.css" + }], + "panelItems": { + "AppMenu": { + "Name": "AppMenu", + "Description": "Application Menu", + "Icon": "actions/stock_about.png", + "HasOptions": false + }, + "Buttons": { + "Name": "Buttons", + "Description": "Button Bar", + "Icon": "actions/stock_about.png" + }, + "Clock": { + "Name": "Clock", + "Description": "View the time", + "Icon": "status/appointment-soon.png", + "HasOptions": true + }, + "NotificationArea": { + "Name": "NotificationArea", + "Description": "View notifications", + "Icon": "apps/gnome-panel-notification-area.png" + }, + "Search": { + "Name": "Search", + "Description": "Perform searches", + "Icon": "actions/find.png", + "HasOptions": true + }, + "Weather": { + "Name": "Weather", + "Description": "Weather notification", + "Icon": "status/weather-few-clouds.png" + }, + "WindowList": { + "Name": "Window List", + "Description": "Toggle between open windows", + "Icon": "apps/xfwm4.png" + } + }, + "path": "default/CoreWM", + "build": {}, + "repo": "default" +}, +"default/FileManager": { + "className": "ApplicationFileManager", + "name": "File Manager", + "description": "The default file manager", + "names": { + "bg_BG": "Файлов мениджър", + "de_DE": "Dateimanager", + "fr_FR": "Explorateur de fichier", + "it_IT": "Gestore File", + "nl_NL": "bestands beheer", + "no_NO": "Fil-hÃ¥ndtering", + "pl_PL": "Menedżer Plików", + "ko_KR": "íŒŒì¼ íƒìƒ‰ê¸°", + "sk_SK": "Správca súborov", + "ru_RU": "Файловый менеджер", + "tr_TR": "Dosya Yöneticisi", + "vi_VN": "Quản lí file" + }, + "descriptions": { + "bg_BG": "Ð¡Ñ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð² мениджър", + "de_DE": "Standardmäßiger Dateimanager", + "fr_FR": "Gestionnaire de fichier par défaut", + "it_IT": "Il gestore file predefinito", + "nl_NL": "Standaard bestands beheerder", + "no_NO": "Standard Fil-hÃ¥ndtering program", + "pl_PL": "DomyÅ›lny Menedżer Plików", + "ko_KR": "기본 íŒŒì¼ ê´€ë¦¬ìž", + "sk_SK": "Å tandardný správca súborov", + "ru_RU": "Стандартный файловый менеджер", + "tr_TR": "Varsayılan dosya yöneticisi", + "vi_VN": "Trình quản lí file mặc định" + }, + "category": "utilities", + "icon": "apps/file-manager.png", + "preload": [{ + "type": "javascript", + "src": "combined.js" + }, { + "type": "stylesheet", + "src": "combined.css" + }, { + "src": "scheme.html", + "type": "scheme" + }], + "type": "application", + "path": "default/FileManager", + "build": {}, + "repo": "default" +}, +"default/MarkOn": { + "className": "ApplicationMarkOn", + "name": "MarkOn", + "mime": [ + "^text", + "inode\\/x\\-empty", + "application\\/x\\-empty" + ], + "category": "office", + "icon": "apps/libreoffice34-writer.png", + "preload": [{ + "type": "javascript", + "src": "combined.js" + }, { + "type": "stylesheet", + "src": "combined.css" + }, { + "src": "scheme.html", + "type": "scheme" + }], + "type": "application", + "path": "default/MarkOn", + "build": {}, + "repo": "default" +}, +"default/PDFjs": { + "className": "ApplicationPDFjs", + "name": "PDF Viewer", + "description": "PDF Viewer", + "mime": [ + "application/pdf" + ], + "category": "office", + "icon": "mimetypes/gnome-mime-application-pdf.png", + "build": { + "copy": [ + "metadata.json", + "scheme.html", + "main.css", + "main.js", + "vendor/pdf.js" + ] + }, + "preload": [{ + "type": "javascript", + "src": "combined.js" + }, { + "type": "stylesheet", + "src": "combined.css" + }, { + "src": "scheme.html", + "type": "scheme" + }], + "type": "application", + "path": "default/PDFjs", + "repo": "default" +}, +"default/Preview": { + "className": "ApplicationPreview", + "name": "Preview", + "description": "Preview image files", + "names": { + "bg_BG": "Преглед на изображениÑ", + "de_DE": "Vorschau", + "fr_FR": "Visionneuse", + "it_IT": "Anteprima Immagini", + "ko_KR": "미리보기", + "nl_NL": "Foto viewer", + "no_NO": "ForhÃ¥ndsviser", + "pl_PL": "PodglÄ…d", + "ru_RU": "ПроÑмотрщик", + "sk_SK": "PrehliadaÄ obrázkov", + "tr_TR": "Önizle", + "vi_VN": "Trình xem ảnh" + }, + "descriptions": { + "bg_BG": "Преглед на изображениÑ", + "de_DE": "Bildervorschau", + "fr_FR": "Visionneuse de photos", + "it_IT": "Anteprima Immagini", + "ko_KR": "ì´ë¯¸ì§€ 파ì¼ì„ 미리 봅니다", + "nl_NL": "Foto viewer", + "no_NO": "ForhÃ¥ndsvisning av bilde-filer", + "pl_PL": "PodglÄ…d zdjęć", + "ru_RU": "ПроÑмотрщик изображений", + "sk_SK": "PrehliadaÄ obrázkov", + "tr_TR": "resim dosyalarını önizle", + "vi_VN": "Trình xem ảnh" + }, + "mime": [ + "^image", + "^video" + ], + "category": "multimedia", + "icon": "mimetypes/image.png", + "preload": [{ + "type": "javascript", + "src": "combined.js" + }, { + "type": "stylesheet", + "src": "combined.css" + }, { + "src": "scheme.html", + "type": "scheme" + }], + "type": "application", + "path": "default/Preview", + "build": {}, + "repo": "default" +}, +"default/ProcessViewer": { + "className": "ApplicationProcessViewer", + "name": "Process Viewer", + "description": "View running processes", + "names": { + "bg_BG": "ПроцеÑи", + "de_DE": "Prozess-Manager", + "fr_FR": "Gestionnaire de processus", + "it_IT": "Gestore Attività", + "ko_KR": "프로세스 관리ìž", + "nl_NL": "Proces manager", + "no_NO": "Prosess oversikt", + "pl_PL": "Procesy", + "ru_RU": "Менеджер процеÑÑов", + "sk_SK": "Správca procesov", + "tr_TR": "Ä°ÅŸlemleri Görüntüle", + "vi_VN": "Xem tiến trình" + }, + "descriptions": { + "bg_BG": "Преглед на процеÑи", + "de_DE": "Laufende Prozesse verwalten", + "fr_FR": "Visualiser les processus en cours", + "it_IT": "Mostri processi attivi", + "ko_KR": "실행 ì¤‘ì¸ í”„ë¡œì„¸ìŠ¤ë¥¼ 관리합니다", + "nl_NL": "Bekijk de lopende processen", + "no_NO": "Se oversikt over kjørende prosesser", + "pl_PL": "Zobacz dziaÅ‚ajÄ…ce procesy", + "ru_RU": "Менеджер запущенных процеÑÑов", + "sk_SK": "Spravovanie bežiacich procesov", + "tr_TR": "çalışan iÅŸlemleri görüntüle", + "vi_VN": "Xem các tiến trình Ä‘ang chạy" + }, + "singular": true, + "category": "system", + "icon": "apps/gnome-monitor.png", + "preload": [{ + "type": "javascript", + "src": "combined.js" + }, { + "type": "stylesheet", + "src": "combined.css" + }, { + "src": "scheme.html", + "type": "scheme" + }], + "type": "application", + "path": "default/ProcessViewer", + "build": {}, + "repo": "default" +}, +"default/Settings": { + "className": "ApplicationSettings", + "preloadParallel": true, + "name": "Settings", + "mime": null, + "icon": "categories/applications-system.png", + "category": "system", + "singular": true, + "names": { + "bg_BG": "ÐаÑтройки", + "de_DE": "Einstellungen", + "es_ES": "Settings", + "fr_FR": "Paramètres", + "it_IT": "Settaggi", + "ko_KR": "환경설정", + "nl_NL": "Instellingen", + "no_NO": "Instillinger", + "pl_PL": "Ustawienia", + "ru_RU": "ÐаÑтройки", + "sk_SK": "Nastavenia", + "tr_TR": "Ayarlar", + "vi_VN": "Cài đặt" + }, + "descriptions": { + "bg_BG": "ÐаÑтройки", + "de_DE": "Einstellungen", + "es_ES": "Settings", + "fr_FR": "Paramètres", + "it_IT": "Settaggi", + "ko_KR": "환경설정", + "nl_NL": "Instellingen", + "no_NO": "Instillinger", + "pl_PL": "Ustawienia", + "ru_RU": "ÐаÑтройки", + "sk_SK": "Nastavenia", + "tr_TR": "Program Ayarlarını düzenle", + "vi_VN": "Cài đặt" + }, + "preload": [{ + "type": "javascript", + "src": "combined.js" + }, { + "type": "stylesheet", + "src": "combined.css" + }, { + "src": "scheme.html", + "type": "scheme" + }], + "type": "application", + "path": "default/Settings", + "build": {}, + "repo": "default" +}, +"default/Textpad": { + "className": "ApplicationTextpad", + "name": "Textpad", + "description": "Simple text editor", + "names": { + "bg_BG": "ТекÑтов редактор", + "de_DE": "Texteditor", + "fr_FR": "Éditeur de texte", + "it_IT": "Editor Testi", + "ko_KR": "í…스트패드", + "nl_NL": "Notities", + "no_NO": "Tekstblokk", + "pl_PL": "Notatnik", + "ru_RU": "Редактор текÑта", + "sk_SK": "Poznámkový blok", + "tr_TR": "Basit Bir Metin Düzenleyicisi", + "vi_VN": "Trình sá»­a văn bản" + }, + "descriptions": { + "bg_BG": "Стандартен текÑтов редактор", + "de_DE": "Einfacher Texteditor", + "fr_FR": "Éditeur de texte simple", + "it_IT": "Semplice editor di testi", + "ko_KR": "간단한 í…스트 편집기", + "nl_NL": "Eenvoudige Tekstverwerker", + "no_NO": "Simpel tekst redigering", + "pl_PL": "Prosty edytor tekstu", + "ru_RU": "ПроÑтой текÑтовый редактор", + "sk_SK": "Jednoduchý textový editor", + "tr_TR": "Basit Bir Metin Düzenleyicisi", + "vi_VN": "Trình sá»­a văn bản Ä‘Æ¡n giản" + }, + "mime": [ + "^text", + "inode\\/x\\-empty", + "application\\/x\\-empty", + "application\\/x\\-lua", + "application\\/x\\-python", + "application\\/javascript", + "application\\/json" + ], + "category": "utilities", + "icon": "apps/accessories-text-editor.png", + "preload": [{ + "type": "javascript", + "src": "combined.js" + }, { + "type": "stylesheet", + "src": "combined.css" + }, { + "src": "scheme.html", + "type": "scheme" + }], + "type": "application", + "path": "default/Textpad", + "build": {}, + "repo": "default" +}, +"default/wTerm": { + "className": "ApplicationwTerm", + "name": "wTerm", + "mime": null, + "icon": "apps/terminal.png", + "category": "system", + "preload": [{ + "type": "stylesheet", + "src": "combined.css" + }, { + "type": "javascript", + "src": "combined.js" + }, { + "src": "scheme.html", + "type": "scheme" + }], + "type": "application", + "path": "default/wTerm", + "build": {}, + "repo": "default" +}, +"default/LuaPlayground": { + "className": "ApplicationLuaPlayground", + "name": "Lua Playground", + "mime": null, + "icon": "categories/preferences-other.png", + "category": "development", + "preload": [ + { + "type": "javascript", + "src": "combined.js" + }, + { + "type": "stylesheet", + "src": "combined.css" + }, + { + "src": "scheme.html", + "type": "scheme" + } + ], + "type": "application", + "path": "default/LuaPlayground", + "build": {}, + "repo": "default" +} \ No newline at end of file diff --git a/example-app/os/system/packages.lua b/example-app/os/system/packages.lua new file mode 100644 index 0000000..34734b1 --- /dev/null +++ b/example-app/os/system/packages.lua @@ -0,0 +1,140 @@ +auth_or_die("User unauthorized. Please login") + +local packages={} +local vfs = require("fs.vfs") +local uid = unix.uid(SESSION.iotos_user) + +packages._cache = function(y) + local p = vfs.ospath(y) + local f = io.open(p.."/packages.json", "w") + local has_cache = false + local i = 1 + local meta = {} + if f then + local files = vfs.readDir(y) + for k,v in pairs(files) do + if v.type == "dir" then + local f1 = io.open(vfs.ospath(v.path.."/package.json")) + if f1 then + + local name = std.basename(v.path) + local mt = JSON.decodeString(f1:read("*all")) + mt.path = v.path + meta[i] ='"'..name..'":'..JSON.encode(mt) + i = i+1 + f1:close() + has_cache = true; + end + end + end + f:write(table.concat(meta, ",")) + f:close() + if has_cache == false then + unix.delete(p.."/packages.json"); + end + end +end + +-- we will change this later +packages.list = function(paths) + std.json() + std.t("{\"result\" : { ") + local first = true + --std.f(__ROOT__.."/system/packages.json") + for k,v in pairs(paths) do + local osp = vfs.ospath(v.."/packages.json") + if unix.exists(osp) == false then + packages._cache(v) + end + if unix.exists(osp) then + if first == false then + std.t(",") + else + first = false + end + std.f(osp) + end + end + std.t("}, \"error\":false}") +end + +-- generate the packages caches +packages.cache = function(args) + -- perform a packages caches + for x,y in pairs(args.paths) do + packages._cache(y) + end + result(true) +end +-- install a function from zip file +packages.install = function(args) + local path = vfs.ospath(args.dest) + local zip = vfs.ospath(args.zip) + if(unix.exists(path) == false) then + -- create directory if not exist + unix.mkdir(path) + -- change permission + unix.chown(path, uid.id, uid.gid) + end + -- extract the zip file to it + if(unix.unzip(zip, path)) then + -- read metadata + local meta = JSON.decodeFile(path.."/metadata.json") + meta.path = args.dest + meta.scope = "user" + local f=io.open(path.."/package.json","w") + if f then + f:write(JSON.encode(meta)) + f:close() + end + result(true) + else + fail("Problem extracting zip file") + end + +end +-- uninstall the package +packages.uninstall = function(path) + local osf = vfs.ospath(path) + if(osf and unix.exists(osf) ) then + --remove it + unix.delete(osf) + result(true) + else + fail("Cannot find package") + end +end +-- set user packages environment +packages.init = function(paths) + if(paths) then + for k,v in pairs(paths) do + local p = vfs.ospath(v) + if p and (unix.exists(p) == false) then + unix.mkdir(p) + -- change permission + unix.chown(p, uid.id, uid.gid) + end + end + end +end + +-- main() + +local rq = (JSON.decodeString(REQUEST.query.json)) +packages.init(rq.args.paths) +if rq ~= nil then + -- check user command here + if(rq.command == "install") then + packages.install(rq.args) + elseif rq.command == "cache" then + packages.cache(rq.args) + elseif rq.command == "list" then + packages.list(rq.args.paths) + elseif rq.command == "uninstall" then + packages.uninstall(rq.args.path) + else + fail("Uknown packages command") + end +else + fail("Uknown request") +end diff --git a/example-app/os/system/settings.lua b/example-app/os/system/settings.lua new file mode 100644 index 0000000..151c5de --- /dev/null +++ b/example-app/os/system/settings.lua @@ -0,0 +1,19 @@ +auth_or_die("User unauthorized. Please login") +local user = SESSION.iotos_user +if user then + local ospath = require('fs.vfs').ospath("home:///",user) + if REQUEST.query and REQUEST.query.json then + local f = io.open(ospath.."/"..".settings.json", "w") + if f then + f:write(REQUEST.query.json) + f:close() + result(true) + else + fail("Cannot save setting") + end + else + fail("No setting founds") + end +else + fail("User not found") +end diff --git a/example-app/os/system/uman.lua b/example-app/os/system/uman.lua new file mode 100644 index 0000000..12f5115 --- /dev/null +++ b/example-app/os/system/uman.lua @@ -0,0 +1,27 @@ +local uman={} + +uman.userinfo = function(user) + local info = {} + local uid = unix.uid(user) + if uid then + -- read the setting + -- use the decodeFile function of JSON instead + local file = require('fs.vfs').ospath("home:///").."/.settings.json" + local st = JSON.decodeFile(file) + if(st) then + info = st + end + info.user = { + username = user, + id = uid.id, + name = user, + groups = uid.groups + } + --print(JSON.encode(info)) + return info + else + return {} + end +end + +return uman \ No newline at end of file diff --git a/example-app/os/system/users.lua b/example-app/os/system/users.lua new file mode 100644 index 0000000..541438d --- /dev/null +++ b/example-app/os/system/users.lua @@ -0,0 +1,23 @@ +auth_or_die("User unauthorized. Please login") +local rq = (JSON.decodeString(REQUEST.query.json)) +if rq then + if rq.command == "list" then + users = {} + local uid = unix.uid(SESSION.iotos_user) + if uid then + users[0] = { + username = SESSION.iotos_user, + id = uid.id, + name = SESSION.iotos_user, + groups = {"admin"} + } + result(users) + else + fail("Problem when retreive users") + end + else + fail("command "..rq.command.." is not supported yet") + end +else + fail("Unknow request") +end diff --git a/example-app/os/test.ls b/example-app/os/test.ls new file mode 100644 index 0000000..1e9cddf --- /dev/null +++ b/example-app/os/test.ls @@ -0,0 +1,28 @@ + + + + +Page Title + + + +

This is a Heading

+

This is a paragraph.

+
    + +
  • + +
  • + lua") +?> +
+ + \ No newline at end of file diff --git a/example-app/os/ws/filestream.lua b/example-app/os/ws/filestream.lua new file mode 100644 index 0000000..e01e78d --- /dev/null +++ b/example-app/os/ws/filestream.lua @@ -0,0 +1,62 @@ +auth_or_die("User unauthorized. Please login") +if std.ws.enable() then + -- read header + local streaming = true + while streaming do + local header = std.ws.header() + if header then + if header.mask == 0 then + print("Data is not masked") + std.ws.close(1012) + streaming = false + elseif header.opcode == std.ws.CLOSE then + print("Connection closed") + std.ws.close(1000) + streaming = false + elseif header.opcode == std.ws.BIN then + -- read the file + local data = std.ws.read(header) + local cmd = nil + if data then + local str = bytes.__tostring(data) + local b,e = str:find("^%d+") + if(b) then + local size = tonumber(str:sub(b,e)) + local path = require("fs.vfs").ospath(str:sub(e+1)) + local file = io.open(path, "rb") + if file then + local sum, len = 0,0 + repeat + local buffer = file:read(size) + if buffer then + len = len + #buffer + cmd = bytes.new(#buffer) + for i = 1, #buffer do + cmd[i] = buffer:byte(i) + end + std.ws.write_bytes(cmd) + end + until not buffer + file:close() + print("ospath is : "..path) + print("length:",len) + else + print(path.." is not found") + std.ws.close(1011) + end + else + std.ws.close(1011) + end + else + std.ws.close(1011) + streaming = false + end + end + else + streaming = false + end + end +else + print("Web socket is not available.") +end +print("Quit streaming") diff --git a/example-app/os/ws/sock.lua b/example-app/os/ws/sock.lua new file mode 100644 index 0000000..025c3ba --- /dev/null +++ b/example-app/os/ws/sock.lua @@ -0,0 +1,33 @@ +if std.ws.enable() then + -- read header + local streaming = true + while streaming do + local header = std.ws.header() + if header then + if header.mask == 0 then + print("Data is not masked") + std.ws.close(1012) + streaming = false + elseif header.opcode == std.ws.CLOSE then + print("Connection closed") + std.ws.close(1000) + streaming = false + elseif header.opcode == std.ws.BIN then + local data = std.ws.read(header) + if data then + local path = (__ROOT__.."/ws/img%d.jpg"):format(data[0]) + print("writing : "..path) + std.ws.fwrite(path) + else + std.ws.close(1011) + streaming = false + end + end + else + streaming = false + end + end +else + print("Web socket is not available.") +end +print("Quit streaming") diff --git a/example-app/proc.lua b/example-app/proc.lua new file mode 100644 index 0000000..6db6a41 --- /dev/null +++ b/example-app/proc.lua @@ -0,0 +1,17 @@ +std.html() +local pid = unix.fork() +if pid == -1 then + echo("Fail to fork") +elseif pid > 0 then + for i = 1,10 do + print("parent "..i) + end + unix.waitpid(pid) + print("Child finish") +else + for i = 1,20 do + print("child "..i) + end +end + +print "reach for both" \ No newline at end of file diff --git a/example-app/router.lua b/example-app/router.lua new file mode 100644 index 0000000..e09894d --- /dev/null +++ b/example-app/router.lua @@ -0,0 +1,82 @@ +OSROOT = __ROOT__.."/os" +package.path = package.path..";"..__ROOT__ .. '/os/?.lua' + +unix = require("ulib") +require("sqlite") + +if HEADER["User-Agent"] and HEADER["User-Agent"]:match("Mobi") then + HEADER.mobile = true +end + + +function fail(msg) + std.json() + std.t(JSON.encode({error=msg})) +end + +function result(obj) + std.json() + std.t(JSON.encode({result=obj, error=false})) +end + +function die (msg) + fail(msg) + debug.traceback=nil + error("Permission denied") +end + +-- test only +if REQUEST.path:match("^%/*router%.lua$") or REQUEST.path:match("^%/*router$") then + die("Recursive call to index.lua is not allown") +end + +-- check if the sysdb is create, otherwise create the table +function sysdb() + local meta = {} + meta.sessionid = "" + meta.username = "" + meta.stamp = 0 + return require("db.model").get("sysdb", "sessions", meta) +end + +function is_auth() + if SESSION.sessionid == nil or SESSION.sessionid == '0' then return false end + -- query session id from database + local db = sysdb() + if db == nil then return false end + local cond = {exp= {["="] = { sessionid = SESSION.sessionid }}} + local data = db:find(cond) + --print(JSON.encode(data)) + db:close() + if data == nil or data[1] == nil then die(msg) end + -- next time check the stamp + SESSION.iotos_user = data[1].username + return true +end + +function auth_or_die(msg) + if(is_auth() == false) then + die(msg) + end +end + +local m, s, p = has_module(REQUEST.path) +if m then + -- run the correct module + if s then + local r,e = loadscript(p) + if r then r() else fail(e) end + else + require(p) + end +else + local hstr = REQUEST.path:match("^%a+/") + if hstr == "os/" then + --print("require module") + require("os.router")(REQUEST.path:gsub(hstr,"",1)) + elseif hstr == "blog/" then + require("blog.router")(REQUEST.path:gsub(hstr,"",1)) + else + fail("Resource not found for request "..REQUEST.path) + end +end diff --git a/json-wrapper.c b/json-wrapper.c new file mode 100644 index 0000000..9f35ed0 --- /dev/null +++ b/json-wrapper.c @@ -0,0 +1,208 @@ +#include "lua-api.h" +#include "3rd/jsmn/jsmn.h" + +#define MAXTOKEN 1024 + +// define unescape sequence + +static int token_to_object(lua_State *L, jsmntok_t* t, const char* s, int cid); +static int l_json_parser(lua_State *L, const char* s); + +//void header(int,const char*); +static int l_json_decode_s (lua_State *L) { + const char* s = luaL_checkstring(L,1); + return l_json_parser(L,s); +} + +static int l_json_decode_f (lua_State *L) { + // read the entire file + char * buffer = 0; + long length; + const char* ph = luaL_checkstring(L,1); + FILE * f = fopen (ph, "rb"); + + if (f) + { + fseek (f, 0, SEEK_END); + length = ftell (f); + fseek (f, 0, SEEK_SET); + buffer = malloc (length+1); + if (buffer) + { + fread (buffer, 1, length, f); + } + fclose (f); + } + + if (buffer) + { + buffer[length] = '\0'; + l_json_parser(L,buffer); + free(buffer); + return 1; + } + else + { + lua_pushnil(L); + return 1; + } + +} +static int process_token_object(lua_State* L, jsmntok_t* t, const char* s, int cid) +{ + lua_newtable(L); + int id = cid+1; + //printf("%d\n", t[cid].size); + for(int i = 0; i < t[cid].size; i++) + { + char*str = strndup(s+t[id].start, t[id].end-t[id].start); + lua_pushstring(L,str); + free(str); + id = token_to_object(L,t,s,id+1); + lua_settable(L, -3); + } + return id; +} +static int process_token_array(lua_State* L, jsmntok_t* t, const char* s, int cid) +{ + lua_newtable(L); + int id = cid+1; + for(int i = 1; i <= t[cid].size; i++) + { + lua_pushnumber(L,i); + id = token_to_object(L,t,s,id); + lua_settable(L, -3); + } + return id; +} + +static void stackDump (lua_State *L) { + int i; + int top = lua_gettop(L); + for (i = 1; i <= top; i++) { /* repeat for each level */ + int t = lua_type(L, i); + switch (t) { + + case LUA_TSTRING: /* strings */ + printf("`%s' \n", lua_tostring(L, i)); + break; + + case LUA_TBOOLEAN: /* booleans */ + printf(lua_toboolean(L, i) ? "true\n" : "false\n"); + break; + + case LUA_TNUMBER: /* numbers */ + printf("%g\n", lua_tonumber(L, i)); + break; + + default: /* other values */ + printf("%s\n", lua_typename(L, t)); + break; + + } + printf(" "); /* put a separator */ + } + printf("\n"); /* end the listing */ + } + +static int process_token_string(lua_State* L, jsmntok_t* t, const char* s, int cid) +{ + // unescape a string + //const char* search_token[8] = {"\\\\","\\\"","\\n","\\t","\\b","\\f","\\r","\\/"}; + //const char* replace_token[8] = {"\\","\"","\n","\t","\b","\f","\r","/"}; + char * str = strndup(s+t[cid].start, t[cid].end-t[cid].start); + // un escape the string + lua_getglobal(L, "utils"); + lua_getfield(L, -1, "unescape"); + lua_pushstring(L,str); + if (lua_pcall(L, 1, 1, 0) != 0) + printf("Error running function `unescape': %s\n",lua_tostring(L, -1)); + if(str) free(str); + str = luaL_checkstring(L,-1); + lua_settop(L, -3); + lua_pushstring(L,str); + //stackDump(L); + //lua_pushstring(L, str); + //printf("%s\n",strndup(s+t[cid].start, t[cid].end-t[cid].start) ); + return cid+1; +} +static int process_token_primitive(lua_State* L, jsmntok_t* t, const char* s, int cid) +{ + //printf("%s\n",strndup(s+t[cid].start, t[cid].end-t[cid].start) ); + char c = s[t[cid].start]; + char *str; + switch(c) + { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case '+': + case '-': + str = strndup(s+t[cid].start, t[cid].end-t[cid].start); + lua_pushnumber(L,atof(str)); + free(str); + break; + + case 't': lua_pushboolean(L,1); break; + case 'f': lua_pushboolean(L,0); break; + default: lua_pushnil(L);break; + + } + return cid+1; +} +static int token_to_object(lua_State *L, jsmntok_t* t, const char* s, int cid) +{ + switch(t[cid].type) + { + case JSMN_OBJECT: + return process_token_object(L,t,s,cid); + break; + case JSMN_ARRAY: + return process_token_array(L,t,s,cid); + break; + case JSMN_STRING: + return process_token_string(L,t,s,cid); + break; + + case JSMN_PRIMITIVE: + return process_token_primitive(L,t,s,cid); + break; + + default: + return cid + t[cid].size; break; + + } +} + +static int l_json_parser(lua_State *L, const char* s) +{ + jsmn_parser p; + jsmntok_t t[MAXTOKEN]; + + jsmn_init(&p); + int r = jsmn_parse(&p, s, strlen(s), t, sizeof(t)/sizeof(t[0])); + if (r < 0) { + LOG("Failed to parse JSON: %d\n", r); + return 0; + } + token_to_object(L,t,s,0); + return 1; +} +static const struct luaL_Reg _json [] = { + {"decodeString", l_json_decode_s}, + {"decodeFile", l_json_decode_f}, + {NULL,NULL} +}; + +int luaopen_json(lua_State *L) +{ + luaL_newlib(L, _json); + return 1; +} \ No newline at end of file diff --git a/lib.mk b/lib.mk new file mode 100644 index 0000000..8a37b96 --- /dev/null +++ b/lib.mk @@ -0,0 +1,17 @@ +LUA_H= -I../../3rd/lua-5.3.4/ +REAL_PLUGINS_BASE=../../$(PLUGINS_BASE) +LIB_EXT=llib +LIB_BUILD_DIR=$(PBUILDIRD)/lua-api +main:$(LIB_OBJ) $(LIB_NAME) + +%.o: %.c + $(CC) $(LIB_CFLAGS) $(LIB_INC) -fPIC $(LUA_H) -I$(REAL_PLUGINS_BASE) -c $< -o $@ + +%.$(LIB_EXT): %.o + -mkdir $(LIB_BUILD_DIR) + $(CC) $(LIB_CFLAGS) $(LUA_LIB) -shared -o $(LIB_BUILD_DIR)/$(basename $@).$(LIB_EXT) $(LIB_OBJ) $(LIB_CONF) + +clean: + - rm $(LIB_BUILD_DIR)/$(LIB_NAME) *.o *.dylib +.PRECIOUS: %.o +.PHONY: clean diff --git a/lib/ann/Makefile b/lib/ann/Makefile new file mode 100644 index 0000000..0465158 --- /dev/null +++ b/lib/ann/Makefile @@ -0,0 +1,11 @@ +include ../../../../var.mk + +LIB_NAME=ann.$(LIB_EXT) +LIB_OBJ=ann.o + +LIB_INC=-I./fann/src/include/ +FANN_LIB_A=./fann/build/src/libdoublefann.a + +LIB_CONF = $(FANN_LIB_A) $(FANN_INC) + +include ../../lib.mk \ No newline at end of file diff --git a/lib/ann/ann.c b/lib/ann/ann.c new file mode 100644 index 0000000..57196cb --- /dev/null +++ b/lib/ann/ann.c @@ -0,0 +1,266 @@ +/* + This file is part of fann. + + fann is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + fann is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with fann. If not, see . + + Copyright (C) 2009 - 2013 Lucas Hermann Negri +*/ + +#include "lfann.h" +#include "net.c" +#include "data.c" +#include "extension.c" + +/* Interface */ + +static void priv_register(lua_State* L, const char* name, const char* mt, + const luaL_reg* methods, lua_CFunction gc, lua_CFunction tostring) +{ + /* Register the methods */ + luaL_register(L, name, methods); + + /* Register the metatable */ + luaL_newmetatable(L, mt); + + /* __index */ + lua_pushliteral(L, "__index"); + lua_pushvalue(L, -3); + lua_rawset(L, -3); + + /* __gc */ + lua_pushliteral(L, "__gc"); + lua_pushcfunction(L, gc); + lua_rawset(L, -3); + + /* __tostring */ + lua_pushliteral(L, "__tostring"); + lua_pushcfunction(L, tostring); + lua_rawset(L, -3); +} + +static const struct luaL_reg ann [] = +{ + {NULL, NULL} +}; + +static const struct luaL_reg data [] = +{ + {"read_from_file", lfann_data_read_from_file}, + {"create_from_callback", lfann_data_create_from_callback}, + {"save", lfann_data_save}, + {"save_to_fixed", lfann_data_save_to_fixed}, + {"shuffle", lfann_data_shuffle}, + {"scale", lfann_data_scale}, + {"scale_input", lfann_data_scale_input}, + {"scale_output", lfann_data_scale_output}, + {"merge", lfann_data_merge}, + {"duplicate", lfann_data_duplicate}, + {"subset", lfann_data_subset}, + {"length", lfann_data_length}, + {"num_input", lfann_data_num_input}, + {"num_output", lfann_data_num_output}, + {"get_row", lfann_data_get_row}, + {"get_bounds", lfann_data_get_bounds}, + {"get_bounds_input", lfann_data_get_bounds_input}, + {"get_bounds_output", lfann_data_get_bounds_output}, + {NULL, NULL} +}; + +static const struct luaL_reg net [] = +{ + {"copy", lfann_net_copy}, + {"create_standard", lfann_net_create_standard}, + {"create_sparse", lfann_net_create_sparse}, + {"create_shortcut", lfann_net_create_shortcut}, + {"create_from_file", lfann_net_create_from_file}, + {"print_connections", lfann_net_print_connections}, + {"train_on_file", lfann_net_train_on_file}, + {"train_on_data", lfann_net_train_on_data}, + {"train_epoch", lfann_net_train_epoch}, + {"save", lfann_net_save}, + {"save_to_fixed", lfann_net_save_to_fixed}, + {"run", lfann_net_run}, + {"init_weights", lfann_net_init_weights}, + {"randomize_weights", lfann_net_randomize_weights}, + {"print_parameters", lfann_net_print_parameters}, + {"set_weight", lfann_net_set_weight}, + {"get_MSE", lfann_net_get_MSE}, + {"get_training_algorithm", lfann_net_get_training_algorithm}, + {"set_training_algorithm", lfann_net_set_training_algorithm}, + {"reset_MSE", lfann_net_reset_MSE}, + {"get_bit_fail", lfann_net_get_bit_fail}, + {"set_callback", lfann_net_set_callback}, + {"test_data", lfann_net_test_data}, + {"get_network_type", lfann_net_get_network_type}, + {"set_learning_rate", lfann_net_set_learning_rate}, + {"get_learning_rate", lfann_net_get_learning_rate}, + {"set_learning_momentum", lfann_net_set_learning_momentum}, + {"get_learning_momentum", lfann_net_get_learning_momentum}, + {"set_activation_function", lfann_net_set_activation_function}, + {"get_activation_function", lfann_net_get_activation_function}, + {"set_activation_function_hidden", lfann_net_set_activation_function_hidden}, + {"set_activation_function_layer", lfann_net_set_activation_function_layer}, + {"set_activation_function_output", lfann_net_set_activation_function_output}, + {"set_activation_steepness", lfann_net_set_activation_steepness}, + {"get_activation_steepness", lfann_net_get_activation_steepness}, + {"set_activation_steepness_hidden", lfann_net_set_activation_steepness_hidden}, + {"set_activation_steepness_layer", lfann_net_set_activation_steepness_layer}, + {"set_activation_steepness_output", lfann_net_set_activation_steepness_output}, + {"set_train_error_function", lfann_net_set_train_error_function}, + {"get_train_error_function", lfann_net_get_train_error_function}, + {"set_train_stop_function", lfann_net_set_train_stop_function}, + {"get_train_stop_function", lfann_net_get_train_stop_function}, + {"set_bit_fail_limit", lfann_net_set_bit_fail_limit}, + {"get_bit_fail_limit", lfann_net_get_bit_fail_limit}, + {"set_quickprop_decay", lfann_net_set_quickprop_decay}, + {"get_quickprop_decay", lfann_net_get_quickprop_decay}, + {"set_quickprop_mu", lfann_net_set_quickprop_mu}, + {"get_quickprop_mu", lfann_net_get_quickprop_mu}, + {"set_rprop_increase_factor", lfann_net_set_rprop_increase_factor}, + {"get_rprop_increase_factor", lfann_net_get_rprop_increase_factor}, + {"set_rprop_decrease_factor", lfann_net_set_rprop_decrease_factor}, + {"get_rprop_decrease_factor", lfann_net_get_rprop_decrease_factor}, + {"get_rprop_delta_min", lfann_net_get_rprop_delta_min}, + {"set_rprop_delta_min", lfann_net_set_rprop_delta_min}, + {"get_rprop_delta_max", lfann_net_get_rprop_delta_max}, + {"set_rprop_delta_max", lfann_net_set_rprop_delta_max}, + {"set_rprop_delta_zero", lfann_net_set_rprop_delta_zero}, + {"get_rprop_delta_zero", lfann_net_get_rprop_delta_zero}, + {"get_num_input", lfann_net_get_num_input}, + {"get_num_output", lfann_net_get_num_output}, + {"get_total_neurons", lfann_net_get_total_neurons}, + {"get_total_connections", lfann_net_get_total_connections}, + {"get_connection_rate", lfann_net_get_connection_rate}, + {"get_num_layers", lfann_net_get_num_layers}, + {"get_layer_array", lfann_net_get_layer_array}, + {"get_bias_array", lfann_net_get_bias_array}, + {"get_connection_array", lfann_net_get_connection_array}, + {"cascade_train_on_data", lfann_net_cascade_train_on_data}, + {"cascade_train_on_file", lfann_net_cascade_train_on_file}, + {"set_cascade_output_change_fraction", lfann_net_set_cascade_output_change_fraction}, + {"get_cascade_output_change_fraction", lfann_net_get_cascade_output_change_fraction}, + {"set_cascade_output_stagnation_epochs", lfann_net_set_cascade_output_stagnation_epochs}, + {"get_cascade_output_stagnation_epochs", lfann_net_get_cascade_output_stagnation_epochs}, + {"set_cascade_candidate_change_fraction", lfann_net_set_cascade_candidate_change_fraction}, + {"get_cascade_candidate_change_fraction", lfann_net_get_cascade_candidate_change_fraction}, + {"set_cascade_candidate_stagnation_epochs", lfann_net_set_cascade_candidate_stagnation_epochs}, + {"get_cascade_candidate_stagnation_epochs", lfann_net_get_cascade_candidate_stagnation_epochs}, + {"set_cascade_weight_multiplier", lfann_net_set_cascade_weight_multiplier}, + {"get_cascade_weight_multiplier", lfann_net_get_cascade_weight_multiplier}, + {"set_cascade_candidate_limit", lfann_net_set_cascade_candidate_limit}, + {"get_cascade_candidate_limit", lfann_net_get_cascade_candidate_limit}, + {"get_cascade_max_cand_epochs", lfann_net_get_cascade_max_cand_epochs}, + {"set_cascade_max_cand_epochs", lfann_net_set_cascade_max_cand_epochs}, + {"get_cascade_max_out_epochs", lfann_net_get_cascade_max_out_epochs}, + {"set_cascade_max_out_epochs", lfann_net_set_cascade_max_out_epochs}, + {"get_cascade_num_candidates", lfann_net_get_cascade_num_candidates}, + {"get_cascade_activation_functions_count", lfann_net_get_cascade_activation_functions_count}, + {"get_cascade_activation_functions", lfann_net_get_cascade_activation_functions}, + {"set_cascade_activation_functions", lfann_net_set_cascade_activation_functions}, + {"get_cascade_activation_steepnesses_count", lfann_net_get_cascade_activation_steepnesses_count}, + {"get_cascade_activation_steepnesses", lfann_net_get_cascade_activation_steepnesses}, + {"set_cascade_activation_steepnesses", lfann_net_set_cascade_activation_steepnesses}, + {"get_cascade_activation_steepnesses_count", lfann_net_get_cascade_activation_steepnesses_count}, + {"set_cascade_num_candidate_groups", lfann_net_set_cascade_num_candidate_groups}, + {"get_cascade_num_candidate_groups", lfann_net_get_cascade_num_candidate_groups}, + {"get_cascade_min_out_epochs", lfann_net_get_cascade_min_out_epochs}, + {"set_cascade_min_out_epochs", lfann_net_set_cascade_min_out_epochs}, + {"get_cascade_min_cand_epochs", lfann_net_get_cascade_min_cand_epochs}, + {"set_cascade_min_cand_epochs", lfann_net_set_cascade_min_cand_epochs}, + {"get_sarprop_weight_decay_shift", lfann_net_get_sarprop_weight_decay_shift}, + {"set_sarprop_weight_decay_shift", lfann_net_set_sarprop_weight_decay_shift}, + {"get_sarprop_step_error_threshold_factor", lfann_net_get_sarprop_step_error_threshold_factor}, + {"set_sarprop_step_error_threshold_factor", lfann_net_set_sarprop_step_error_threshold_factor}, + {"get_sarprop_step_error_shift", lfann_net_get_sarprop_step_error_shift}, + {"set_sarprop_step_error_shift", lfann_net_set_sarprop_step_error_shift}, + {"get_sarprop_temperature", lfann_net_get_sarprop_temperature}, + {"set_sarprop_temperature", lfann_net_set_sarprop_temperature}, + {NULL, NULL} +}; + +#ifdef _MSC_VER +__declspec(dllexport) +#endif +int luaopen_lfann(lua_State *L) +{ + int top; + + fann_set_error_log(&err_handler, NULL); + + luaL_register(L, "fann", ann); + top = lua_gettop(L); + priv_register(L, "fann.Net", "lfannNeT", net, lfann_net_gc, lfann_net_tostring); + priv_register(L, "fann.Data", "lfannDaTa", data, lfann_data_gc, lfann_data_tostring); + lua_settop(L, top); + + /* activation_functipn_enum */ + lua_pushliteral(L, "LINEAR"); lua_pushnumber(L, FANN_LINEAR); lua_rawset(L, -3); + lua_pushliteral(L, "THRESHOLD"); lua_pushnumber(L, FANN_THRESHOLD); lua_rawset(L, -3); + lua_pushliteral(L, "THRESHOLD_SYMMETRIC"); lua_pushnumber(L, FANN_THRESHOLD_SYMMETRIC); lua_rawset(L, -3); + lua_pushliteral(L, "SIGMOID"); lua_pushnumber(L, FANN_SIGMOID); lua_rawset(L, -3); + lua_pushliteral(L, "SIGMOID_STEPWISE"); lua_pushnumber(L, FANN_SIGMOID_STEPWISE); lua_rawset(L, -3); + lua_pushliteral(L, "SIGMOID_SYMMETRIC"); lua_pushnumber(L, FANN_SIGMOID_SYMMETRIC); lua_rawset(L, -3); + lua_pushliteral(L, "GAUSSIAN"); lua_pushnumber(L, FANN_GAUSSIAN); lua_rawset(L, -3); + lua_pushliteral(L, "GAUSSIAN_SYMMETRIC"); lua_pushnumber(L, FANN_GAUSSIAN_SYMMETRIC); lua_rawset(L, -3); + lua_pushliteral(L, "ELLIOT"); lua_pushnumber(L, FANN_ELLIOT); lua_rawset(L, -3); + lua_pushliteral(L, "ELLIOT_SYMMETRIC"); lua_pushnumber(L, FANN_ELLIOT_SYMMETRIC); lua_rawset(L, -3); + lua_pushliteral(L, "LINEAR_PIECE"); lua_pushnumber(L, FANN_LINEAR_PIECE); lua_rawset(L, -3); + lua_pushliteral(L, "LINEAR_PIECE_SYMMETRIC"); lua_pushnumber(L, FANN_LINEAR_PIECE_SYMMETRIC); lua_rawset(L, -3); + lua_pushliteral(L, "SIN"); lua_pushnumber(L, FANN_SIN); lua_rawset(L, -3); + lua_pushliteral(L, "SIN_SYMMETRIC"); lua_pushnumber(L, FANN_SIN_SYMMETRIC); lua_rawset(L, -3); + lua_pushliteral(L, "COS"); lua_pushnumber(L, FANN_COS); lua_rawset(L, -3); + lua_pushliteral(L, "COS_SYMMETRIC"); lua_pushnumber(L, FANN_COS_SYMMETRIC); lua_rawset(L, -3); + + /* training_algorithm_enum */ + lua_pushliteral(L, "TRAIN_INCREMENTAL"); lua_pushnumber(L, FANN_TRAIN_INCREMENTAL); lua_rawset(L, -3); + lua_pushliteral(L, "TRAIN_BATCH"); lua_pushnumber(L, FANN_TRAIN_BATCH); lua_rawset(L, -3); + lua_pushliteral(L, "TRAIN_RPROP"); lua_pushnumber(L, FANN_TRAIN_RPROP); lua_rawset(L, -3); + lua_pushliteral(L, "TRAIN_QUICKPROP"); lua_pushnumber(L, FANN_TRAIN_QUICKPROP); lua_rawset(L, -3); + lua_pushliteral(L, "TRAIN_SARPROP"); lua_pushnumber(L, FANN_TRAIN_SARPROP); lua_rawset(L, -3); + + /* error_function_enum */ + lua_pushliteral(L, "ERRORFUNC_LINEAR"); lua_pushnumber(L, FANN_ERRORFUNC_LINEAR); lua_rawset(L, -3); + lua_pushliteral(L, "ERRORFUNC_TANH"); lua_pushnumber(L, FANN_ERRORFUNC_TANH); lua_rawset(L, -3); + + /* stop_function_enum */ + lua_pushliteral(L, "STOPFUNC_MSE"); lua_pushnumber(L, FANN_STOPFUNC_MSE); lua_rawset(L, -3); + lua_pushliteral(L, "STOPFUNC_BIT"); lua_pushnumber(L, FANN_STOPFUNC_BIT); lua_rawset(L, -3); + + /* network_type_enum */ + lua_pushliteral(L, "NETTYPE_LAYER"); lua_pushnumber(L, FANN_NETTYPE_LAYER); lua_rawset(L, -3); + lua_pushliteral(L, "NETTYPE_SHORTCUT"); lua_pushnumber(L, FANN_NETTYPE_SHORTCUT); lua_rawset(L, -3); + + /* lfann_errno_enum */ + lua_pushliteral(L, "E_NO_ERROR"); lua_pushnumber(L, FANN_E_NO_ERROR); lua_rawset(L, -3); + lua_pushliteral(L, "E_CANT_OPEN_CONFIG_R"); lua_pushnumber(L, FANN_E_CANT_OPEN_CONFIG_R); lua_rawset(L, -3); + lua_pushliteral(L, "E_CANT_OPEN_CONFIG_W"); lua_pushnumber(L, FANN_E_CANT_OPEN_CONFIG_W); lua_rawset(L, -3); + lua_pushliteral(L, "E_WRONG_CONFIG_VERSION"); lua_pushnumber(L, FANN_E_WRONG_CONFIG_VERSION); lua_rawset(L, -3); + lua_pushliteral(L, "E_CANT_READ_CONFIG"); lua_pushnumber(L, FANN_E_CANT_READ_CONFIG); lua_rawset(L, -3); + lua_pushliteral(L, "E_CANT_READ_NEURON"); lua_pushnumber(L, FANN_E_CANT_READ_NEURON); lua_rawset(L, -3); + lua_pushliteral(L, "E_CANT_READ_CONNECTIONS"); lua_pushnumber(L, FANN_E_CANT_READ_CONNECTIONS); lua_rawset(L, -3); + lua_pushliteral(L, "E_WRONG_NUM_CONNECTIONS"); lua_pushnumber(L, FANN_E_WRONG_NUM_CONNECTIONS); lua_rawset(L, -3); + lua_pushliteral(L, "E_CANT_OPEN_TD_W"); lua_pushnumber(L, FANN_E_CANT_OPEN_TD_W); lua_rawset(L, -3); + lua_pushliteral(L, "E_CANT_OPEN_TD_R"); lua_pushnumber(L, FANN_E_CANT_OPEN_TD_R); lua_rawset(L, -3); + lua_pushliteral(L, "E_CANT_READ_TD"); lua_pushnumber(L, FANN_E_CANT_READ_TD); lua_rawset(L, -3); + lua_pushliteral(L, "E_CANT_ALLOCATE_MEM"); lua_pushnumber(L, FANN_E_CANT_ALLOCATE_MEM); lua_rawset(L, -3); + lua_pushliteral(L, "E_CANT_TRAIN_ACTIVATION"); lua_pushnumber(L, FANN_E_CANT_TRAIN_ACTIVATION); lua_rawset(L, -3); + lua_pushliteral(L, "E_CANT_USE_ACTIVATION"); lua_pushnumber(L, FANN_E_CANT_USE_ACTIVATION); lua_rawset(L, -3); + lua_pushliteral(L, "E_TRAIN_DATA_MISMATCH"); lua_pushnumber(L, FANN_E_TRAIN_DATA_MISMATCH); lua_rawset(L, -3); + lua_pushliteral(L, "E_CANT_USE_TRAIN_ALG"); lua_pushnumber(L, FANN_E_CANT_USE_TRAIN_ALG); lua_rawset(L, -3); + lua_pushliteral(L, "E_TRAIN_DATA_SUBSET"); lua_pushnumber(L, FANN_E_TRAIN_DATA_SUBSET); lua_rawset(L, -3); + lua_pushliteral(L, "E_INDEX_OUT_OF_BOUND"); lua_pushnumber(L, FANN_E_INDEX_OUT_OF_BOUND); lua_rawset(L, -3); + lua_pushliteral(L, "E_SCALE_NOT_PRESENT"); lua_pushnumber(L, FANN_E_SCALE_NOT_PRESENT); lua_rawset(L, -3); + + return 1; +} diff --git a/lib/ann/data.c b/lib/ann/data.c new file mode 100644 index 0000000..98ac68d --- /dev/null +++ b/lib/ann/data.c @@ -0,0 +1,255 @@ +/* + This file is part of lfann. + + lfann is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + lfann is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with lfann. If not, see . + + Copyright (C) 2009 - 2013 Lucas Hermann Negri +*/ +static void priv_push_data(lua_State* L, struct fann_train_data* ptr) +{ + if(ptr) + { + Object* obj = lua_newuserdata(L, sizeof(Object)); + obj->pointer = ptr; + + luaL_getmetatable(L, "lfannDaTa"); + lua_setmetatable(L, -2); + } + else + lua_pushnil(L); +} + +static int lfann_data_read_from_file(lua_State* L) +{ + struct fann_train_data* ptr; + + luaL_checktype(L, 1, LUA_TSTRING); + ptr = fann_read_train_from_file(lua_tostring(L, 1)); + priv_push_data(L, ptr); + + return 1; +} + +static int lfann_data_merge(lua_State* L) +{ + Object* obj1; + Object* obj2; + struct fann_train_data* ptr; + + luaL_checktype(L, 1, LUA_TUSERDATA); + luaL_checktype(L, 2, LUA_TUSERDATA); + + obj1 = lua_touserdata(L, 1); + obj2 = lua_touserdata(L, 2); + + ptr = fann_merge_train_data(obj1->pointer, obj2->pointer); + priv_push_data(L, ptr); + + return 1; +} + +static int lfann_data_duplicate(lua_State* L) +{ + Object* obj; + struct fann_train_data* ptr; + + luaL_checktype(L, 1, LUA_TUSERDATA); + obj = lua_touserdata(L, 1); + + ptr = fann_duplicate_train_data(obj->pointer); + priv_push_data(L, ptr); + + return 1; +} + +static int lfann_data_subset(lua_State* L) +{ + Object* obj; + struct fann_train_data* ptr; + + luaL_checktype(L, 1, LUA_TUSERDATA); + luaL_checktype(L, 2, LUA_TNUMBER); + luaL_checktype(L, 3, LUA_TNUMBER); + + obj = lua_touserdata(L, 1); + ptr = fann_subset_train_data(obj->pointer, + lua_tointeger(L, 2), lua_tointeger(L, 3)); + priv_push_data(L, ptr); + + return 1; +} + +static int lfann_data_tostring(lua_State* L) +{ + Object* obj; + char name[41]; + + obj = lua_touserdata(L, 1); + +#ifndef _MSC_VER + snprintf(name, 40, "Training Data: %p", obj->pointer); +#else + _snprintf(name, 40, "Training Data: %p", obj->pointer); +#endif + lua_pushstring(L, name); + + return 1; +} + +static int lfann_data_gc(lua_State* L) +{ + Object* obj; + + #ifdef IDEBUG + fprintf(stderr, "Garbage collecting a Training Data\n"); + #endif + + obj = lua_touserdata(L, 1); + fann_destroy_train(obj->pointer); + + return 0; +} + +static int lfann_data_shuffle(lua_State* L) +{ + Object* obj; + + luaL_checktype(L, 1, LUA_TUSERDATA); + + obj = lua_touserdata(L, 1); + fann_shuffle_train_data(obj->pointer); + + return 0; +} + +static int lfann_data_save(lua_State* L) +{ + Object* obj; + int res; + + luaL_checktype(L, 1, LUA_TUSERDATA); + luaL_checktype(L, 2, LUA_TSTRING); + + obj = lua_touserdata(L, 1); + + res = fann_save_train(obj->pointer, lua_tostring(L, 2)); + lua_pushinteger(L, res); + + return 1; +} + +static int lfann_data_save_to_fixed(lua_State* L) +{ + Object* obj; + int res; + + luaL_checktype(L, 1, LUA_TUSERDATA); + luaL_checktype(L, 2, LUA_TSTRING); + luaL_checktype(L, 3, LUA_TNUMBER); + + obj = lua_touserdata(L, 1); + + res = fann_save_train_to_fixed(obj->pointer, lua_tostring(L, 2), + lua_tointeger(L, 3)); + lua_pushinteger(L, res); + + return 1; +} + +static int lfann_data_length(lua_State* L) +{ + Object* obj; + int res; + + luaL_checktype(L, 1, LUA_TUSERDATA); + obj = lua_touserdata(L, 1); + + res = fann_length_train_data(obj->pointer); + lua_pushinteger(L, res); + + return 1; +} + +static int lfann_data_num_input(lua_State* L) +{ + Object* obj; + int res; + + luaL_checktype(L, 1, LUA_TUSERDATA); + obj = lua_touserdata(L, 1); + + res = fann_num_input_train_data(obj->pointer); + lua_pushinteger(L, res); + + return 1; +} + +static int lfann_data_num_output(lua_State* L) +{ + Object* obj; + int res; + + luaL_checktype(L, 1, LUA_TUSERDATA); + obj = lua_touserdata(L, 1); + + res = fann_num_output_train_data(obj->pointer); + lua_pushinteger(L, res); + + return 1; +} + +/* + There's a bug in FANN 2.1beta that makes this unusable. lfann reimplements + the scaling functions in the file extension.c . +static int lfann_data_scale(lua_State* L) +{ + Object* obj; + + luaL_checktype(L, 1, LUA_TUSERDATA); + luaL_checktype(L, 2, LUA_TNUMBER); + luaL_checktype(L, 3, LUA_TNUMBER); + + obj = lua_touserdata(L, 1); + fann_scale_train_data(obj->pointer, lua_tonumber(L, 2), lua_tonumber(L, 3)); + + return 0; +} + +static int lfann_data_scale_input(lua_State* L) +{ + Object* obj; + + luaL_checktype(L, 1, LUA_TUSERDATA); + luaL_checktype(L, 2, LUA_TNUMBER); + luaL_checktype(L, 3, LUA_TNUMBER); + + obj = lua_touserdata(L, 1); + fann_scale_input_train_data(obj->pointer, lua_tonumber(L, 2), lua_tonumber(L, 3)); + + return 0; +} + +static int lfann_data_scale_output(lua_State* L) +{ + Object* obj; + + luaL_checktype(L, 1, LUA_TUSERDATA); + luaL_checktype(L, 2, LUA_TNUMBER); + luaL_checktype(L, 3, LUA_TNUMBER); + + obj = lua_touserdata(L, 1); + fann_scale_output_train_data(obj->pointer, lua_tonumber(L, 2), lua_tonumber(L, 3)); + + return 0; +} */ diff --git a/lib/ann/examples/cascade/test.lua b/lib/ann/examples/cascade/test.lua new file mode 100755 index 0000000..e833b11 --- /dev/null +++ b/lib/ann/examples/cascade/test.lua @@ -0,0 +1,14 @@ +#! /usr/bin/env lua + +require("lfann") + +-- Load the network from a file +local net = fann.Net.create_from_file("xor.net") + +-- Test using command line args +local input = {arg[1] and tonumber(arg[1]) or 1, arg[1] and tonumber(arg[2]) or 0} +local output = net:run(input) + +for i, j in ipairs(output) do + print(j) +end diff --git a/lib/ann/examples/cascade/train.data b/lib/ann/examples/cascade/train.data new file mode 100644 index 0000000..2c86bf3 --- /dev/null +++ b/lib/ann/examples/cascade/train.data @@ -0,0 +1,9 @@ +4 2 1 +1 1 +0 +1 0 +1 +0 1 +1 +0 0 +0 diff --git a/lib/ann/examples/cascade/train.lua b/lib/ann/examples/cascade/train.lua new file mode 100755 index 0000000..0c714cf --- /dev/null +++ b/lib/ann/examples/cascade/train.lua @@ -0,0 +1,13 @@ +#! /usr/bin/env lua + +require("lfann") + +-- Create a shortcut neural network to serve as base to the cascade training +local net = fann.Net.create_shortcut{2, 1} + +-- Train the net from a file +net:set_train_stop_function(fann.STOPFUNC_MSE) +net:cascade_train_on_file("train.data", 10, 1, 0.0001) + +-- Save the net to a file for a latter execution +net:save("xor.net"); diff --git a/lib/ann/examples/rpg/test.lua b/lib/ann/examples/rpg/test.lua new file mode 100755 index 0000000..b8da133 --- /dev/null +++ b/lib/ann/examples/rpg/test.lua @@ -0,0 +1,86 @@ +#! /usr/bin/env lua + +require("lfann") + +local classes = { + "Fighter", "Paladin", "Druid", "Cleric", "Monk", + "Thief", "Sorceress", "Mage", "Bard" +} + +-- Load the network from a file +local net = fann.Net.create_from_file("rpg.net") +math.randomseed(os.time()) + +while true do + print("Enter the character attributes or: -1 to exit, -2 to generate:") + + local input = {} + local aux = io.read("*n") + + if not aux or aux == -1 then + -- Quit + break + elseif aux == -2 then + -- Random + + for i = 1, 6 do + local d = {} + for i = 1, 4 do table.insert(d, math.random(1, 6)) end + table.sort(d) + table.insert(input, d[2] + d[3] + d[4]) + end + + print("Generated attributes:") + print(table.concat(input, " ")) + else + -- Read the attributes from stdin + table.insert(input, aux) + + for i = 2, 6 do + aux = io.read("*n") + table.insert(input, aux) + end + end + + -- Get the result and calculate suggest the character class + local output = net:run(input) + local maxClass, maxValue = -1, -1 + + -- Get the max value + for class, value in ipairs(output) do + if value > maxValue then + maxClass = class + maxValue = value + end + end + + -- Only check if there's a class with at least 0.4 fitting + if maxValue < 0.4 then + print("-> The attributes are too low to suggest a class") + else + -- Calculate the diff using the maxValue + local diff = maxValue / 6 + diff = math.max(diff, 0.1) + + -- Get the suggestions + local suggestions = {} + + for class, value in ipairs(output) do + if value > maxValue - diff then + table.insert(suggestions, {["class"] = class, ["value"] = value}) + end + end + + -- Sort the suggestions according to the fitness + table.sort(suggestions, function(a, b) return a.value > b.value end) + + -- Inform the user about the suggestions + print("\nClass suggestions:") + + for i, tbl in ipairs(suggestions) do + print(string.format("-> %s (%d%%)", classes[tbl.class], tbl.value * 100)) + end + end + + print() +end diff --git a/lib/ann/examples/rpg/train.data b/lib/ann/examples/rpg/train.data new file mode 100644 index 0000000..ce5dc89 --- /dev/null +++ b/lib/ann/examples/rpg/train.data @@ -0,0 +1,53 @@ +26 6 9 +18 13 15 10 9 10 +1.0 0.3 0.0 0.0 0.1 0.4 0.0 0.0 0.0 +15 10 14 10 14 14 +0.6 1.0 0.6 0.5 0.4 0.0 0.4 0.0 0.3 +10 12 10 14 16 12 +0.1 0.4 1.0 0.6 0.2 0.1 0.1 0.4 0.1 +14 8 12 10 16 12 +0.4 0.8 0.6 1.0 0.3 0.0 0.1 0.0 0.1 +14 14 14 10 16 10 +0.7 0.8 0.9 0.9 1.0 0.2 0.0 0.0 0.0 +10 18 11 14 10 12 +0.2 0.1 0.0 0.0 0.1 1.0 0.1 0.3 0.2 +10 12 14 12 10 17 +0.1 0.1 0.0 0.0 0.1 0.2 0.9 0.1 0.6 +12 14 12 12 10 18 +0.1 0.1 0.0 0.0 0.1 0.2 1.0 0.1 0.9 +8 11 16 18 10 10 +0.1 0.1 0.0 0.0 0.2 0.2 0.0 1.0 0.0 +18 10 16 10 10 10 +1.0 0.1 0.0 0.0 0.2 0.0 0.0 0.0 0.0 +16 14 14 10 18 10 +0.7 0.8 0.6 1.0 0.9 0.6 0.0 0.0 0.0 +10 12 14 16 10 10 +0.1 0.1 0.0 0.0 0.1 0.2 0.0 1.0 0.0 +10 12 14 20 10 10 +0.1 0.1 0.0 0.0 0.1 0.2 0.0 1.0 0.0 +12 12 14 12 16 10 +0.2 0.5 1.0 0.7 0.2 0.2 0.0 0.1 0.0 +3 3 3 3 3 3 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +18 18 18 18 18 18 +1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +14 10 9 9 11 15 +0.2 0.0 0.0 0.0 0.1 0.0 0.7 0.0 0.2 +13 15 14 14 14 16 +0.2 0.4 0.3 0.4 0.2 0.5 0.7 0.3 1.0 +12 16 12 10 16 11 +0.2 0.3 0.5 0.4 0.4 0.5 0.0 0.0 0.0 +15 17 12 12 12 13 +1.0 0.3 0.2 0.1 0.3 0.5 0.1 0.2 0.1 +16 12 14 10 16 15 +0.7 1.0 0.8 0.9 0.8 0.1 0.3 0.0 0.2 +10 16 14 18 10 14 +0.0 0.0 0.0 0.0 0.1 0.8 0.2 1.0 0.3 +12 12 12 12 12 12 +0.2 0.1 0.2 0.2 0.1 0.2 0.1 0.1 0.2 +14 14 14 14 13 14 +0.4 0.5 0.5 0.5 0.4 0.4 0.1 0.2 0.6 +8 8 8 18 18 18 +0.0 0.0 0.1 0.1 0.0 0.0 1.0 1.0 1.0 +18 18 18 8 8 8 +1.0 0.2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 diff --git a/lib/ann/examples/rpg/train.lua b/lib/ann/examples/rpg/train.lua new file mode 100755 index 0000000..349ab29 --- /dev/null +++ b/lib/ann/examples/rpg/train.lua @@ -0,0 +1,24 @@ +#! /usr/bin/env lua + +--[[ + This example classifies a RPG character in classes, according to its + attributes (strength, dexterity, constitution, intelligence, wisdom and + charisma). +--]] + +require("lfann") + +local net = fann.Net.create_standard{6, 18, 18, 9} + +-- Configure the activation function +net:set_activation_function_hidden(fann.SIGMOID_SYMMETRIC) +net:set_activation_function_output(fann.SIGMOID_SYMMETRIC) + +-- Configure other parameters +net:set_training_algorithm(fann.TRAIN_RPROP) + +-- Train the net from a file +net:train_on_file("train.data", 100000, 50, 0.001) + +-- Save the net to a file for a latter execution +net:save("rpg.net"); diff --git a/lib/ann/examples/xor/test.lua b/lib/ann/examples/xor/test.lua new file mode 100755 index 0000000..b82bd27 --- /dev/null +++ b/lib/ann/examples/xor/test.lua @@ -0,0 +1,41 @@ +#! /usr/bin/env lua + +-- load the library +require("lfann") + +-- load the network from the exported file +local net = fann.Net.create_from_file("xor.net") + +local n_input, n_output = 2, 1 +local input, output = {} +local write, sf = io.write, string.format + +-- test using the stdio (enter q to quit) +while true do + local cont = true + + -- input + for i = 1, n_input do + local aux = io.read("*n") + + if not aux then + cont = false + break + end + + input[i] = aux + end + + if not cont then break end + + -- run the network + output = net:run(input) + + -- output + for i = 1, n_output do + if i > 1 then write(" ") end + write( sf("%.6f", output[i]) ) + end + + write("\n") +end diff --git a/lib/ann/examples/xor/train.data b/lib/ann/examples/xor/train.data new file mode 100644 index 0000000..2fab611 --- /dev/null +++ b/lib/ann/examples/xor/train.data @@ -0,0 +1,9 @@ +4 2 1 +1 1 +-1 +1 -1 +1 +-1 1 +1 +-1 -1 +-1 diff --git a/lib/ann/examples/xor/train.lua b/lib/ann/examples/xor/train.lua new file mode 100755 index 0000000..a5011f4 --- /dev/null +++ b/lib/ann/examples/xor/train.lua @@ -0,0 +1,17 @@ +#! /usr/bin/env lua + +require("lfann") + +-- Create a Neural Network with tree layers, with 2, 3 and 1 neurons, plus one +-- bias neuron per layer +local net = fann.Net.create_standard{2, 3, 1} + +-- Configure the activation function +net:set_activation_function_hidden(fann.GAUSSIAN_SYMMETRIC) +net:set_activation_function_output(fann.GAUSSIAN_SYMMETRIC) + +-- Train the net from a file +net:train_on_file("train.data", 1000, 10, 0.0001) + +-- Save the net to a file for a latter execution +net:save("xor.net"); diff --git a/lib/ann/extension.c b/lib/ann/extension.c new file mode 100644 index 0000000..d9dd43a --- /dev/null +++ b/lib/ann/extension.c @@ -0,0 +1,309 @@ +/* + This file is part of lfann. + + lfann is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + lfann is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with lfann. If not, see . + + Copyright (C) 2009 - 2013 Lucas Hermann Negri +*/ + +static int lfann_data_create_from_callback(lua_State* L) +{ + unsigned int num_data, num_input, num_output; + unsigned int i, j; + struct fann_train_data* data; + int top, n_params; + + luaL_checktype(L, 1, LUA_TNUMBER); + luaL_checktype(L, 2, LUA_TNUMBER); + luaL_checktype(L, 3, LUA_TNUMBER); + luaL_checktype(L, 4, LUA_TFUNCTION); + + // Userdata? + top = lua_gettop(L); + if(top == 4) {lua_pushnil(L); ++top;} + + num_data = lua_tointeger(L, 1); + num_input = lua_tointeger(L, 2); + num_output = lua_tointeger(L, 3); + + data = fann_create_train(num_data, num_input, num_output); + + n_params = num_input + num_output; + + /* Get all the training data from the callback */ + for(i = 0; i < num_data; ++i) + { + /* Call the function */ + lua_pushvalue(L, 4); /* function */ + lua_pushvalue(L, 5); /* ud */ + lua_pushinteger(L, i + 1); + lua_pushinteger(L, num_input); + lua_pushinteger(L, num_output); + lua_call(L, 4, n_params); + + /* Get the input */ + for(j = 1; j <= num_input; ++j) + data->input[i][j - 1] = lua_tonumber(L, top + j); + + /* Get the output */ + for(j = 1; j <= num_output; ++j) + data->output[i][j - 1] = lua_tonumber(L, top + j + num_input); + + /* clear the stack */ + lua_settop(L, top); + } + + priv_push_data(L, data); + + return 1; +} + +static int lfann_data_get_row(lua_State* L) +{ + Object* obj; + struct fann_train_data* data; + unsigned int i, n_data; + + luaL_checktype(L, 1, LUA_TUSERDATA); + luaL_checktype(L, 2, LUA_TNUMBER); + obj = lua_touserdata(L, 1); + + data = obj->pointer; + n_data = lua_tonumber(L, 2) - 1; + if(n_data < 0 || n_data > data->num_data) luaL_error(L, "Invalid index\n"); + + lua_newtable(L); + + /* set the input */ + for(i = 0; i < data->num_input; ++i) + { + lua_pushinteger(L, i + 1); + lua_pushnumber(L, data->input[n_data][i]); + lua_rawset(L, -3); + } + + /* set the output */ + for(i = 0; i < data->num_output; ++i) + { + lua_pushinteger(L, i + data->num_input + 1); + lua_pushnumber(L, data->output[n_data][i]); + lua_rawset(L, -3); + } + + return 1; +} + +#define SMALL 0.000001 + +static void priv_data_get_bounds(fann_type** array, size_t rows, size_t cols, + fann_type* omin, fann_type* omax) +{ + fann_type rmin = array[0][0], rmax = array[0][0], aux; + size_t i, j; + + if(rows < 1 || cols < 1) + { + *omin = 0; + *omax = 0; + return; + } + + for(i = 0; i < rows; ++i) + for(j = 0; j < cols; ++j) + { + aux = array[i][j]; + if(aux < rmin) rmin = aux; + if(aux > rmax) rmax = aux; + } + + *omin = rmin; + *omax = rmax; +} + +static void priv_data_scale_array(fann_type** array, size_t rows, size_t cols, + fann_type rmin, fann_type rmax, fann_type dmin, fann_type dmax) +{ + fann_type rscale; + fann_type dscale; + fann_type mean; + + size_t i, j; + + rscale = rmax - rmin; + dscale = dmax - dmin; + + /* If the desired span is too close or the contents are too close, + * just set the values to the mean */ + if(rscale < SMALL || dscale < SMALL) + { + mean = (dmax + dmin) * 2; + + for(i = 0; i < rows; ++i) + for(j = 0; j < cols; ++j) + array[i][j] = mean; + } + else + { + /* Second pass: do the scaling */ + for(i = 0; i < rows; ++i) + for(j = 0; j < cols; ++j) + array[i][j] = ( (array[i][j] - rmin) / rscale ) * dscale + dmin; + } +} + +static int lfann_data_scale_input(lua_State* L) +{ + Object* obj = lua_touserdata(L, 1); + struct fann_train_data* data = obj->pointer; + + fann_type rmin, rmax; + + luaL_checktype(L, 1, LUA_TUSERDATA); + luaL_checktype(L, 2, LUA_TNUMBER); + luaL_checktype(L, 3, LUA_TNUMBER); + + obj = lua_touserdata(L, 1); + data = obj->pointer; + + priv_data_get_bounds(data->input, data->num_data, data->num_input, + &rmin, &rmax); + + priv_data_scale_array(data->input, data->num_data, data->num_input, + rmin, rmax, lua_tonumber(L, 2), lua_tonumber(L, 3)); + + return 0; +} + +static int lfann_data_scale_output(lua_State* L) +{ + Object* obj; + struct fann_train_data* data; + fann_type rmin, rmax; + + luaL_checktype(L, 1, LUA_TUSERDATA); + luaL_checktype(L, 2, LUA_TNUMBER); + luaL_checktype(L, 3, LUA_TNUMBER); + + obj = lua_touserdata(L, 1); + data = obj->pointer; + + priv_data_get_bounds(data->output, data->num_data, data->num_output, + &rmin, &rmax); + + priv_data_scale_array(data->output, data->num_data, data->num_output, + rmin, rmax, lua_tonumber(L, 2), lua_tonumber(L, 3)); + + return 0; +} + +static int lfann_data_scale(lua_State* L) +{ + Object* obj; + struct fann_train_data* data; + fann_type rmin_in, rmax_in; + fann_type rmin_out, rmax_out; + + luaL_checktype(L, 1, LUA_TUSERDATA); + luaL_checktype(L, 2, LUA_TNUMBER); + luaL_checktype(L, 3, LUA_TNUMBER); + + obj = lua_touserdata(L, 1); + data = obj->pointer; + + priv_data_get_bounds(data->input, data->num_data, data->num_input, + &rmin_in, &rmax_in); + + priv_data_get_bounds(data->output, data->num_data, data->num_output, + &rmin_out, &rmax_out); + + /* Scale them with the unified bounds */ + if(rmin_out < rmin_in) rmin_in = rmin_out; + if(rmax_out > rmax_in) rmax_in = rmax_out; + + priv_data_scale_array(data->input, data->num_data, data->num_input, + rmin_in, rmax_in, lua_tonumber(L, 2), lua_tonumber(L, 3)); + + priv_data_scale_array(data->output, data->num_data, data->num_output, + rmin_in, rmax_in, lua_tonumber(L, 2), lua_tonumber(L, 3)); + + return 0; +} + +static int lfann_data_get_bounds_input(lua_State* L) +{ + Object* obj; + struct fann_train_data* data; + fann_type rmin, rmax; + + luaL_checktype(L, 1, LUA_TUSERDATA); + + obj = lua_touserdata(L, 1); + data = obj->pointer; + + priv_data_get_bounds(data->input, data->num_data, data->num_input, + &rmin, &rmax); + + lua_pushnumber(L, rmin); + lua_pushnumber(L, rmax); + + return 2; +} + +static int lfann_data_get_bounds_output(lua_State* L) +{ + Object* obj; + struct fann_train_data* data; + fann_type rmin, rmax; + + luaL_checktype(L, 1, LUA_TUSERDATA); + + obj = lua_touserdata(L, 1); + data = obj->pointer; + + priv_data_get_bounds(data->output, data->num_data, data->num_output, + &rmin, &rmax); + + lua_pushnumber(L, rmin); + lua_pushnumber(L, rmax); + + return 2; +} + +static int lfann_data_get_bounds(lua_State* L) +{ + Object* obj; + struct fann_train_data* data; + fann_type rmin_in, rmax_in; + fann_type rmin_out, rmax_out; + + luaL_checktype(L, 1, LUA_TUSERDATA); + + obj = lua_touserdata(L, 1); + data = obj->pointer; + + priv_data_get_bounds(data->input, data->num_data, data->num_input, + &rmin_in, &rmax_in); + + priv_data_get_bounds(data->output, data->num_data, data->num_output, + &rmin_out, &rmax_out); + + /* Scale them with the unified bounds */ + if(rmin_out < rmin_in) rmin_in = rmin_out; + if(rmax_out > rmax_in) rmax_in = rmax_out; + + lua_pushnumber(L, rmin_in); + lua_pushnumber(L, rmax_in); + + return 2; +} diff --git a/lib/ann/fann/.gitignore b/lib/ann/fann/.gitignore new file mode 100644 index 0000000..d2b3b3f --- /dev/null +++ b/lib/ann/fann/.gitignore @@ -0,0 +1,36 @@ +*.sdf +*.suo +*.user +*.opensdf +ipch +Debug +Release +/bin/fanndoubled.dll +/bin/fanndoubled.lib +/bin/fannfixedd.dll +/bin/fannfixedd.lib +/bin/fannfloatd.dll +/bin/fannfloatd.lib +/bin/simple_train_doubled.exe +/bin/simple_train_floatd.exe +/bin/xor_test_fixedd.exe +/bin/xor_test_floatd.exe +/bin/xor_traind.exe +Makefile +CMakeFiles +CMakeCache.txt +cmake_install.cmake +install_manifest.txt +*~ +/bin/cascade_traind.exe +/bin/momentumsd.exe +/bin/mushroomd.exe +/bin/robotd.exe +/bin/scaling_testd.exe +/bin/scaling_traind.exe +/bin/steepness_traind.exe +/bin/xor_cpp_sampled.exe +*.sln +*.suo +*.filters +*.vcxproj diff --git a/lib/ann/fann/.idea/encodings.xml b/lib/ann/fann/.idea/encodings.xml new file mode 100644 index 0000000..97626ba --- /dev/null +++ b/lib/ann/fann/.idea/encodings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/lib/ann/fann/.idea/fann.iml b/lib/ann/fann/.idea/fann.iml new file mode 100644 index 0000000..9775278 --- /dev/null +++ b/lib/ann/fann/.idea/fann.iml @@ -0,0 +1,400 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lib/ann/fann/.idea/misc.xml b/lib/ann/fann/.idea/misc.xml new file mode 100644 index 0000000..79b3c94 --- /dev/null +++ b/lib/ann/fann/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/lib/ann/fann/.idea/modules.xml b/lib/ann/fann/.idea/modules.xml new file mode 100644 index 0000000..4e5d73e --- /dev/null +++ b/lib/ann/fann/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/lib/ann/fann/.idea/runConfigurations/Tests.xml b/lib/ann/fann/.idea/runConfigurations/Tests.xml new file mode 100644 index 0000000..a10d0d0 --- /dev/null +++ b/lib/ann/fann/.idea/runConfigurations/Tests.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/lib/ann/fann/.idea/vcs.xml b/lib/ann/fann/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/lib/ann/fann/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/lib/ann/fann/.travis.yml b/lib/ann/fann/.travis.yml new file mode 100644 index 0000000..79cc9c6 --- /dev/null +++ b/lib/ann/fann/.travis.yml @@ -0,0 +1,27 @@ +sudo: false + +language: cpp + +compiler: + - gcc + +addons: + apt: + sources: + - llvm-toolchain-precise + - ubuntu-toolchain-r-test + packages: + - clang-3.7 + - g++-5 + - gcc-5 +install: + - if [ "$CXX" = "g++" ]; then export CXX="g++-5" CC="gcc-5"; fi + - if [ "$CXX" = "clang++" ]; then export CXX="clang++-3.7" CC="clang-3.7"; fi + +before_script: + - cmake . + +script: + - make + - ./tests/fann_tests + diff --git a/lib/ann/fann/CMakeLists.txt b/lib/ann/fann/CMakeLists.txt new file mode 100644 index 0000000..bbe02fa --- /dev/null +++ b/lib/ann/fann/CMakeLists.txt @@ -0,0 +1,148 @@ +set(CMAKE_POSITION_INDEPENDENT_CODE ON) +IF(BIICODE) + # Initializes block variables + INIT_BIICODE_BLOCK() + + # Output folder for binaries + SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../bin/fann/examples) + SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_SOURCE_DIR}/../bin/fann/examples) + + # Copy datasets for examples if exists + if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/datasets) + file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/datasets DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/../bin/) + ENDIF() + + # Include recipes block for CPP11 activation + INCLUDE(biicode/cmake/tools) + + # Are examples present? + LIST(FIND BII_BLOCK_EXES examples_parallel_train examples_present) + SET(examples_present (NOT ${examples_present} EQUAL "-1")) # Depending on examples + IF(${examples_present} AND NOT WIN32 AND NOT APPLE) # Linux doesn't have GetTickCount + LIST(REMOVE_ITEM BII_BLOCK_EXES examples_parallel_train) + ENDIF() + + ADD_BIICODE_TARGETS() + + IF(${examples_present}) + # This example needs CPP11 + ACTIVATE_CPP11(lasote_fann_examples_xor_sample) + ENDIF() + + TARGET_COMPILE_OPTIONS(${BII_BLOCK_TARGET} INTERFACE -DGTEST_ENABLE_CATCH_EXCEPTIONS_=1) + + IF(MSVC) + TARGET_COMPILE_OPTIONS(${BII_LIB_TARGET} PUBLIC -DFANN_DLL_EXPORTS) + ELSE() + IF(${examples_present}) + TARGET_LINK_LIBRARIES(${BII_BLOCK_TARGET} INTERFACE gomp) + ENDIF() + ENDIF() +ELSE() +cmake_minimum_required (VERSION 2.8) + +if (NOT DEFINED CMAKE_BUILD_TYPE) + set (CMAKE_BUILD_TYPE Release CACHE STRING "Build type") +endif () + +project (FANN) + +list (APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules) + +set (FANN_VERSION_MAJOR 2) +set (FANN_VERSION_MINOR 2) +set (FANN_VERSION_PATCH 0) +set (FANN_VERSION_STRING ${FANN_VERSION_MAJOR}.${FANN_VERSION_MINOR}.${FANN_VERSION_PATCH}) + +option(BUILD_SHARED_LIBS "build shared/static libs" ON) + +INCLUDE(DefineInstallationPaths) + + +configure_file (cmake/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/src/include/config.h) +include_directories (${CMAKE_CURRENT_BINARY_DIR}/src/include/) + +configure_file (cmake/fann.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/fann.pc @ONLY) + +########### install files ############### + +install (FILES ${CMAKE_CURRENT_BINARY_DIR}/fann.pc DESTINATION ${PKGCONFIG_INSTALL_DIR}) + +ADD_SUBDIRECTORY( src ) + +################# cpack ################ + +SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Fast Artificial Neural Network Library (FANN)") +SET(CPACK_PACKAGE_VENDOR "Steffen Nissen") +SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.md") +SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.md") +SET(CPACK_PACKAGE_VERSION_MAJOR "${FANN_VERSION_MAJOR}") +SET(CPACK_PACKAGE_VERSION_MINOR "${FANN_VERSION_MINOR}") +SET(CPACK_PACKAGE_VERSION_PATCH "${FANN_VERSION_PATCH}") +SET(CPACK_GENERATOR "TGZ;ZIP") +SET(CPACK_SOURCE_GENERATOR "TGZ;ZIP") +SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "Steffen Nissen") +SET(CPACK_PACKAGE_INSTALL_DIRECTORY "CMake ${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}") +IF(WIN32 AND NOT UNIX) + # There is a bug in NSI that does not handle full unix paths properly. Make + # sure there is at least one set of four (4) backlasshes. +# SET(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/Utilities/Release\\\\InstallIcon.bmp") +# SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin\\\\MyExecutable.exe") +# SET(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY} My Famous Project") + SET(CPACK_NSIS_HELP_LINK "http:\\\\\\\\leenissen.dk/fann/") + SET(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\leenissen.dk/fann/") + SET(CPACK_NSIS_CONTACT "steffen.fann@gmail.com") + SET(CPACK_NSIS_MODIFY_PATH ON) +ELSE(WIN32 AND NOT UNIX) +# SET(CPACK_STRIP_FILES "bin/MyExecutable") +# SET(CPACK_SOURCE_STRIP_FILES "") +ENDIF(WIN32 AND NOT UNIX) +#SET(CPACK_PACKAGE_EXECUTABLES "MyExecutable" "My Executable") +INCLUDE(CPack) + +################# config ################ + +set (FANN_USE_FILE ${CMAKE_CONFIG_DIR}/fann-use.cmake) +set (FANN_ROOT_DIR ${CMAKE_INSTALL_PREFIX}) +set (FANN_INCLUDE_DIR ${CMAKE_INSTALL_PREFIX}/include) +set (FANN_INCLUDE_DIRS ${FANN_INCLUDE_DIR}) +set (FANN_LIBRARY_DIRS ${CMAKE_INSTALL_PREFIX}/lib) +set (FANN_LIBRARY fann) +set (FANN_LIBRARIES ${FANN_LIBRARY}) +if (UNIX) + list (APPEND FANN_LIBRARIES m) +endif () + +if (CMAKE_VERSION VERSION_LESS 2.8.8) + configure_file (cmake/fann-config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/fann-config.cmake @ONLY) +else () + + include (CMakePackageConfigHelpers) + + configure_package_config_file ( + cmake/fann-config.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/fann-config.cmake + INSTALL_DESTINATION FANN_CMAKE_CONFIG_DIR + PATH_VARS + FANN_USE_FILE + FANN_ROOT_DIR + FANN_INCLUDE_DIR + FANN_INCLUDE_DIRS + FANN_LIBRARY_DIRS + NO_CHECK_REQUIRED_COMPONENTS_MACRO + ) + +endif () + +install (FILES + ${CMAKE_CURRENT_BINARY_DIR}/fann-config.cmake + cmake/fann-use.cmake + DESTINATION ${CMAKE_CONFIG_DIR} + ) + +################# compile tests ################ + +ADD_SUBDIRECTORY( lib/googletest ) +ADD_SUBDIRECTORY( tests ) + +ENDIF() diff --git a/lib/ann/fann/LICENSE.md b/lib/ann/fann/LICENSE.md new file mode 100644 index 0000000..cbee875 --- /dev/null +++ b/lib/ann/fann/LICENSE.md @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/lib/ann/fann/README.md b/lib/ann/fann/README.md new file mode 100644 index 0000000..2208ee2 --- /dev/null +++ b/lib/ann/fann/README.md @@ -0,0 +1,63 @@ +# Fast Artificial Neural Network Library +## FANN + +**Fast Artificial Neural Network (FANN) Library** is a free open source neural network library, which implements multilayer artificial neural networks in C with support for both fully connected and sparsely connected networks. + +Cross-platform execution in both fixed and floating point are supported. It includes a framework for easy handling of training data sets. It is easy to use, versatile, well documented, and fast. + +Bindings to more than 15 programming languages are available. + +An easy to read introduction article and a reference manual accompanies the library with examples and recommendations on how to use the library. + +Several graphical user interfaces are also available for the library. + +## FANN Features + +* Multilayer Artificial Neural Network Library in C +* Backpropagation training (RPROP, Quickprop, Batch, Incremental) +* Evolving topology training which dynamically builds and trains the ANN (Cascade2) +* Easy to use (create, train and run an ANN with just three function calls) +* Fast (up to 150 times faster execution than other libraries) +* Versatile (possible to adjust many parameters and features on-the-fly) +* Well documented (An easy to read introduction article, a thorough reference manual, and a 50+ page university report describing the implementation considerations etc.) +* Cross-platform (configure script for linux and unix, dll files for windows, project files for MSVC++ and Borland compilers are also reported to work) +* Several different activation functions implemented (including stepwise linear functions for that extra bit of speed) +* Easy to save and load entire ANNs +* Several easy to use examples +* Can use both floating point and fixed point numbers (actually both float, double and int are available) +* Cache optimized (for that extra bit of speed) +* Open source, but can still be used in commercial applications (licenced under LGPL) +* Framework for easy handling of training data sets +* Graphical Interfaces +* Language Bindings to a large number of different programming languages +* Widely used (approximately 100 downloads a day) + +## To Install + +### On Linux + +#### From Source + +First you'll want to clone the repository: + +`git clone https://github.com/libfann/fann.git` + +Once that's finished, navigate to the Root directory. In this case it would be ./fann: + +`cd ./fann` + +Then run CMake + +`cmake .` + +After that, you'll need to use elevated priviledges to install the library: + +`sudo make install` + +That's it! If everything went right, you should see a lot of text, and FANN should be installed! + +## To Learn More + +To get started with FANN, go to the [FANN help site](http://leenissen.dk/fann/wp/help/), which will include links to all the available resources. + +For more information about FANN, please refer to the [FANN website](http://leenissen.dk/fann/wp/) diff --git a/lib/ann/fann/biicode.conf b/lib/ann/fann/biicode.conf new file mode 100644 index 0000000..43fa153 --- /dev/null +++ b/lib/ann/fann/biicode.conf @@ -0,0 +1,45 @@ +# Biicode configuration file + +[requirements] + biicode/cmake: 3 + google/gtest: 10 + +[parent] + # The parent version of this block. Must match folder name. E.g. + # user/block # No version number means not published yet + # You can change it to publish to a different track, and change version, e.g. + # user/block(track): 7 + lasote/fann: 0 + +[paths] + # Local directories to look for headers (within block) + # / + # include + src + src/include + + +[dependencies] + # Manual adjust file implicit dependencies, add (+), remove (-), or overwrite (=) + # hello.h + hello_imp.cpp hello_imp2.cpp + # *.h + *.cpp + +[mains] + # Manual adjust of files that define an executable + # !main.cpp # Do not build executable from this file + # main2.cpp # Build it (it doesnt have a main() function, but maybe it includes it) + +[hooks] + # These are defined equal to [dependencies],files names matching bii*stage*hook.py + # will be launched as python scripts at stage = {post_process, clean} + # CMakeLists.txt + bii/my_post_process1_hook.py bii_clean_hook.py + +[includes] + gtest/gtest.h: google/gtest/include + +[data] + # Manually define data files dependencies, that will be copied to bin for execution + # By default they are copied to bin/user/block/... which should be taken into account + # when loading from disk such data + # image.cpp + image.jpg # code should write open("user/block/image.jpg") + diff --git a/lib/ann/fann/bin/.gitignore b/lib/ann/fann/bin/.gitignore new file mode 100644 index 0000000..f40e65f --- /dev/null +++ b/lib/ann/fann/bin/.gitignore @@ -0,0 +1,4 @@ + +*.pdb +*.exp +*.ilk \ No newline at end of file diff --git a/lib/ann/fann/bin/Guitar.exe.config b/lib/ann/fann/bin/Guitar.exe.config new file mode 100644 index 0000000..8a05247 --- /dev/null +++ b/lib/ann/fann/bin/Guitar.exe.config @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/lib/ann/fann/bin/Win32/xor.data b/lib/ann/fann/bin/Win32/xor.data new file mode 100644 index 0000000..e831fc6 --- /dev/null +++ b/lib/ann/fann/bin/Win32/xor.data @@ -0,0 +1,9 @@ +4 2 1 +-1 -1 +-1 +-1 1 +1 +1 -1 +1 +1 1 +-1 diff --git a/lib/ann/fann/bin/x64/xor.data b/lib/ann/fann/bin/x64/xor.data new file mode 100644 index 0000000..e831fc6 --- /dev/null +++ b/lib/ann/fann/bin/x64/xor.data @@ -0,0 +1,9 @@ +4 2 1 +-1 -1 +-1 +-1 1 +1 +1 -1 +1 +1 1 +-1 diff --git a/lib/ann/fann/cmake/Modules/DefineInstallationPaths.cmake b/lib/ann/fann/cmake/Modules/DefineInstallationPaths.cmake new file mode 100644 index 0000000..2969533 --- /dev/null +++ b/lib/ann/fann/cmake/Modules/DefineInstallationPaths.cmake @@ -0,0 +1,141 @@ +if (UNIX OR MINGW OR WIN32) + IF (NOT APPLICATION_NAME) + MESSAGE(STATUS "${PROJECT_NAME} is used as APPLICATION_NAME") + SET(APPLICATION_NAME ${PROJECT_NAME}) + ENDIF (NOT APPLICATION_NAME) + + # Suffix for Linux + SET(LIB_SUFFIX + CACHE STRING "Define suffix of directory name (32/64)" + ) + + SET(EXEC_INSTALL_PREFIX + "${CMAKE_INSTALL_PREFIX}" + CACHE PATH "Base directory for executables and libraries" + FORCE + ) + + SET(SHARE_INSTALL_PREFIX + "${CMAKE_INSTALL_PREFIX}/share" + CACHE PATH "Base directory for files which go to share/" + FORCE + ) + + SET(DATA_INSTALL_PREFIX + "${SHARE_INSTALL_PREFIX}/${APPLICATION_NAME}" + CACHE PATH "The parent directory where applications can install their data" FORCE + ) + + # The following are directories where stuff will be installed to + SET(BIN_INSTALL_DIR + "${EXEC_INSTALL_PREFIX}/bin" + CACHE PATH "The ${APPLICATION_NAME} binary install dir (default prefix/bin)" + FORCE + ) + + SET(SBIN_INSTALL_DIR + "${EXEC_INSTALL_PREFIX}/sbin" + CACHE PATH "The ${APPLICATION_NAME} sbin install dir (default prefix/sbin)" + FORCE + ) + + SET(LIB_INSTALL_DIR + "${EXEC_INSTALL_PREFIX}/lib${LIB_SUFFIX}" + CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is prefix/lib)" + FORCE + ) + + SET(LIBEXEC_INSTALL_DIR + "${EXEC_INSTALL_PREFIX}/libexec" + CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is prefix/libexec)" + FORCE + ) + + SET(PLUGIN_INSTALL_DIR + "${LIB_INSTALL_DIR}/${APPLICATION_NAME}" + CACHE PATH "The subdirectory relative to the install prefix where plugins will be installed (default is prefix/lib/${APPLICATION_NAME})" + FORCE + ) + + SET(INCLUDE_INSTALL_DIR + "${CMAKE_INSTALL_PREFIX}/include" + CACHE PATH "The subdirectory to the header prefix (default prefix/include)" + FORCE + ) + + SET(DATA_INSTALL_DIR + "${DATA_INSTALL_PREFIX}" + CACHE PATH "The parent directory where applications can install their data (default prefix/share/${APPLICATION_NAME})" + FORCE + ) + + SET(HTML_INSTALL_DIR + "${DATA_INSTALL_PREFIX}/doc/HTML" + CACHE PATH "The HTML install dir for documentation (default data/doc/html)" + FORCE + ) + + SET(ICON_INSTALL_DIR + "${DATA_INSTALL_PREFIX}/icons" + CACHE PATH "The icon install dir (default data/icons/)" + FORCE + ) + + SET(SOUND_INSTALL_DIR + "${DATA_INSTALL_PREFIX}/sounds" + CACHE PATH "The install dir for sound files (default data/sounds)" + FORCE + ) + + SET(LOCALE_INSTALL_DIR + "${SHARE_INSTALL_PREFIX}/locale" + CACHE PATH "The install dir for translations (default prefix/share/locale)" + FORCE + ) + + SET(XDG_APPS_DIR + "${SHARE_INSTALL_PREFIX}/applications/" + CACHE PATH "The XDG apps dir" + FORCE + ) + + SET(XDG_DIRECTORY_DIR + "${SHARE_INSTALL_PREFIX}/desktop-directories" + CACHE PATH "The XDG directory" + FORCE + ) + + SET(SYSCONF_INSTALL_DIR + "${EXEC_INSTALL_PREFIX}/etc" + CACHE PATH "The ${APPLICATION_NAME} sysconfig install dir (default prefix/etc)" + FORCE + ) + + SET(MAN_INSTALL_DIR + "${SHARE_INSTALL_PREFIX}/man" + CACHE PATH "The ${APPLICATION_NAME} man install dir (default prefix/man)" + FORCE + ) + + SET(INFO_INSTALL_DIR + "${SHARE_INSTALL_PREFIX}/info" + CACHE PATH "The ${APPLICATION_NAME} info install dir (default prefix/info)" + FORCE + ) + + set (CMAKE_CONFIG_DIR "${LIB_INSTALL_DIR}/cmake/fann" CACHE PATH "config dir" FORCE) + set (PKGCONFIG_INSTALL_DIR "${LIB_INSTALL_DIR}/pkgconfig" CACHE PATH "pkgconfig dir" FORCE) +endif () + +if (MSCV) + # Same same + SET(BIN_INSTALL_DIR .) + SET(SBIN_INSTALL_DIR .) + SET(LIB_INSTALL_DIR .) + SET(PLUGIN_INSTALL_DIR plugins) + SET(HTML_INSTALL_DIR doc/HTML) + SET(ICON_INSTALL_DIR .) + SET(SOUND_INSTALL_DIR .) + SET(LOCALE_INSTALL_DIR lang) +endif (MSCV) + diff --git a/lib/ann/fann/cmake/config.h.in b/lib/ann/fann/cmake/config.h.in new file mode 100644 index 0000000..5a2c361 --- /dev/null +++ b/lib/ann/fann/cmake/config.h.in @@ -0,0 +1,8 @@ +/* Name of package */ +#cmakedefine PACKAGE "@PACKAGE@" + +/* Version number of package */ +#cmakedefine VERSION "@FANN_VERSION_STRING@" + +/* Define for the x86_64 CPU famyly */ +#cmakedefine X86_64 "@X86_64@" diff --git a/lib/ann/fann/cmake/fann-config.cmake.in b/lib/ann/fann/cmake/fann-config.cmake.in new file mode 100644 index 0000000..17194a7 --- /dev/null +++ b/lib/ann/fann/cmake/fann-config.cmake.in @@ -0,0 +1,38 @@ +# -*- cmake -*- +# +# fann-config.cmake(.in) +# + +# Use the following variables to compile and link against FANN: +# FANN_FOUND - True if FANN was found on your system +# FANN_USE_FILE - The file making FANN usable +# FANN_DEFINITIONS - Definitions needed to build with FANN +# FANN_INCLUDE_DIR - Directory where fann.h can be found +# FANN_INCLUDE_DIRS - List of directories of FANN and it's dependencies +# FANN_LIBRARY - FANN library location +# FANN_LIBRARIES - List of libraries to link against FANN library +# FANN_LIBRARY_DIRS - List of directories containing FANN' libraries +# FANN_ROOT_DIR - The base directory of FANN +# FANN_VERSION_STRING - A human-readable string containing the version +# FANN_VERSION_MAJOR - The major version of FANN +# FANN_VERSION_MINOR - The minor version of FANN +# FANN_VERSION_PATCH - The patch version of FANN + +@PACKAGE_INIT@ + +set ( FANN_FOUND 1 ) +set ( FANN_USE_FILE "@FANN_USE_FILE@" ) + +set ( FANN_DEFINITIONS "@FANN_DEFINITIONS@" ) +set ( FANN_INCLUDE_DIR "@FANN_INCLUDE_DIR@" ) +set ( FANN_INCLUDE_DIRS "@FANN_INCLUDE_DIRS@" ) +set ( FANN_LIBRARY "@FANN_LIBRARY@" ) +set ( FANN_LIBRARIES "@FANN_LIBRARIES@" ) +set ( FANN_LIBRARY_DIRS "@FANN_LIBRARY_DIRS@" ) +set ( FANN_ROOT_DIR "@FANN_ROOT_DIR@" ) + +set ( FANN_VERSION_STRING "@FANN_VERSION_STRING@" ) +set ( FANN_VERSION_MAJOR "@FANN_VERSION_MAJOR@" ) +set ( FANN_VERSION_MINOR "@FANN_VERSION_MINOR@" ) +set ( FANN_VERSION_PATCH "@FANN_VERSION_PATCH@" ) + diff --git a/lib/ann/fann/cmake/fann-use.cmake b/lib/ann/fann/cmake/fann-use.cmake new file mode 100644 index 0000000..7f04255 --- /dev/null +++ b/lib/ann/fann/cmake/fann-use.cmake @@ -0,0 +1,9 @@ +# -*- cmake -*- +# +# fann-use.cmake +# + +add_definitions ( ${FANN_DEFINITIONS} ) +include_directories ( ${FANN_INCLUDE_DIRS} ) +link_directories ( ${FANN_LIBRARY_DIRS} ) + diff --git a/lib/ann/fann/cmake/fann.pc.cmake b/lib/ann/fann/cmake/fann.pc.cmake new file mode 100644 index 0000000..4b55a22 --- /dev/null +++ b/lib/ann/fann/cmake/fann.pc.cmake @@ -0,0 +1,10 @@ +prefix=@CMAKE_INSTALL_PREFIX@ +exec_prefix=@BIN_INSTALL_DIR@ +libdir=@LIB_INSTALL_DIR@ +includedir=@INCLUDE_INSTALL_DIR@ + +Name: fann +Description: Fast Artificial Neural Network Library +Version: @VERSION@ +Libs: -L${libdir} -lm -lfann +Cflags: -I${includedir} diff --git a/lib/ann/fann/datasets/abelone.test b/lib/ann/fann/datasets/abelone.test new file mode 100644 index 0000000..b19d716 --- /dev/null +++ b/lib/ann/fann/datasets/abelone.test @@ -0,0 +1,4179 @@ +2089 10 1 +0 0 0.353920 0.148646 0.115024 0.040701 0.111131 0.045833 0.022474 0.035392 +0.250000 +0 0.353920 0 0.192886 0.145107 0.044240 0.231463 0.104229 0.046540 0.072554 +0.321429 +0.353920 0 0 0.222969 0.176960 0.061936 0.447531 0.199434 0.108476 0.121217 +0.321429 +0.353920 0 0 0.221200 0.164573 0.049549 0.422934 0.170766 0.072554 0.141568 +0.428571 +0.353920 0 0 0.199965 0.155725 0.040701 0.325075 0.142984 0.063175 0.102637 +0.357143 +0 0.353920 0 0.212352 0.166342 0.047779 0.343302 0.164750 0.069191 0.093435 +0.357143 +0 0.353920 0 0.159264 0.127411 0.037162 0.166873 0.072023 0.033091 0.052734 +0.285714 +0.353920 0 0 0.208813 0.143337 0.053088 0.301893 0.115378 0.092550 0.086710 +0.285714 +0 0 0.353920 0.079632 0.060166 0.024774 0.019996 0.008494 0.004601 0.005663 +0.107143 +0 0 0.353920 0.189347 0.141568 0.047779 0.213237 0.102460 0.042824 0.054504 +0.285714 +0.353920 0 0 0.233587 0.178729 0.067245 0.509113 0.239781 0.100867 0.062998 +0.357143 +0 0.353920 0 0.205273 0.150416 0.053088 0.298708 0.129004 0.065475 0.095735 +0.285714 +0 0.353920 0 0.161033 0.123872 0.044240 0.158733 0.056096 0.036100 0.047248 +0.535714 +0 0 0.353920 0.240665 0.187577 0.065475 0.392674 0.155371 0.086710 0.120333 +0.321429 +0 0 0.353920 0.136259 0.100867 0.030083 0.086356 0.043001 0.015749 0.024067 +0.250000 +0.353920 0 0 0.263670 0.207043 0.076093 0.884445 0.327907 0.167050 0.247744 +0.571429 +0 0.353920 0 0.205273 0.150416 0.054858 0.308972 0.127942 0.088126 0.084587 +0.321429 +0 0.353920 0 0.159264 0.125641 0.037162 0.184923 0.083879 0.041232 0.051318 +0.250000 +0.353920 0 0 0.217661 0.168112 0.067245 0.507344 0.258892 0.107945 0.116263 +0.285714 +0 0.353920 0 0.217661 0.175190 0.056627 0.444169 0.205804 0.113077 0.114139 +0.392857 +0 0 0.353920 0.102637 0.079632 0.026544 0.053796 0.025128 0.020881 0.015926 +0.285714 +0.353920 0 0 0.222969 0.180499 0.081402 0.544682 0.199434 0.099628 0.201734 +0.571429 +0 0.353920 0 0.210582 0.164573 0.053088 0.362945 0.145815 0.097151 0.102283 +0.357143 +0.353920 0 0 0.162803 0.123872 0.044240 0.182800 0.066714 0.040524 0.065475 +0.285714 +0 0.353920 0 0.215891 0.173421 0.060166 0.402407 0.162980 0.099982 0.121748 +0.392857 +0 0 0.353920 0.155725 0.122102 0.035392 0.129535 0.043178 0.032030 0.042470 +0.428571 +0 0.353920 0 0.203504 0.162803 0.065475 0.387188 0.158733 0.076801 0.122102 +0.500000 +0 0.353920 0 0.191117 0.150416 0.056627 0.334631 0.130065 0.070961 0.104406 +0.285714 +0 0 0.353920 0.169881 0.134489 0.044240 0.221023 0.120156 0.038400 0.058928 +0.250000 +0 0.353920 0 0.214121 0.168112 0.051318 0.360467 0.166165 0.079632 0.095558 +0.500000 +0 0 0.353920 0.194656 0.141568 0.047779 0.253760 0.117324 0.052911 0.078216 +0.285714 +0 0.353920 0 0.198195 0.157494 0.054858 0.433198 0.196956 0.114139 0.095381 +0.321429 +0 0 0.353920 0.081402 0.060166 0.017696 0.020173 0.009202 0.004601 0.005663 +0.142857 +0.353920 0 0 0.182269 0.161033 0.047779 0.255707 0.104406 0.057512 0.083171 +0.285714 +0.353920 0 0 0.205273 0.164573 0.053088 0.320828 0.131304 0.069545 0.102637 +0.250000 +0 0.353920 0 0.222969 0.176960 0.061936 0.393028 0.165280 0.094850 0.116440 +0.321429 +0.353920 0 0 0.189347 0.153955 0.053088 0.253760 0.122987 0.051141 0.068660 +0.285714 +0.353920 0 0 0.184038 0.136259 0.058397 0.279950 0.132720 0.063706 0.064236 +0.321429 +0 0.353920 0 0.184038 0.143337 0.049549 0.244735 0.097682 0.048487 0.076093 +0.357143 +0 0.353920 0 0.212352 0.168112 0.047779 0.509821 0.208282 0.067599 0.112369 +0.285714 +0 0 0.353920 0.122102 0.093789 0.035392 0.086887 0.039285 0.018935 0.023005 +0.214286 +0.353920 0 0 0.152185 0.118563 0.042470 0.140506 0.070253 0.030614 0.036631 +0.214286 +0 0.353920 0 0.221200 0.175190 0.056627 0.436737 0.224208 0.067953 0.123872 +0.428571 +0 0.353920 0 0.132720 0.102637 0.028314 0.099805 0.049726 0.025659 0.028314 +0.214286 +0 0.353920 0 0.187577 0.152185 0.053088 0.262254 0.115024 0.065652 0.069368 +0.285714 +0 0.353920 0 0.178729 0.168112 0.056627 0.394797 0.180145 0.084587 0.108476 +0.250000 +0 0 0.353920 0.097328 0.076093 0.026544 0.040878 0.017165 0.010264 0.012387 +0.214286 +0.353920 0 0 0.199965 0.152185 0.046010 0.277473 0.123695 0.066714 0.075385 +0.285714 +0 0.353920 0 0.222969 0.168112 0.053088 0.379402 0.153247 0.105291 0.111485 +0.250000 +0 0 0.353920 0.132720 0.099098 0.031853 0.076093 0.029729 0.021235 0.019466 +0.178571 +0.353920 0 0 0.242435 0.178729 0.067245 0.542559 0.236064 0.143514 0.145107 +0.321429 +0 0 0.353920 0.083171 0.061936 0.019466 0.023713 0.009556 0.004424 0.006371 +0.178571 +0 0 0.353920 0.159264 0.122102 0.038931 0.166342 0.083348 0.030260 0.040170 +0.214286 +0 0 0.353920 0.115024 0.084941 0.024774 0.053796 0.019996 0.010795 0.019112 +0.250000 +0 0.353920 0 0.238896 0.185808 0.060166 0.640418 0.277473 0.138383 0.161033 +0.392857 +0.353920 0 0 0.219430 0.176960 0.070784 0.432136 0.162980 0.093081 0.152185 +0.392857 +0 0 0.353920 0.166342 0.125641 0.042470 0.173952 0.062467 0.039816 0.046894 +0.285714 +0 0.353920 0 0.219430 0.171651 0.077862 0.534773 0.180322 0.100513 0.180499 +0.571429 +0.353920 0 0 0.205273 0.166342 0.058397 0.328084 0.113785 0.070253 0.111485 +0.357143 +0 0.353920 0 0.205273 0.157494 0.051318 0.314281 0.145107 0.064236 0.085826 +0.250000 +0 0 0.353920 0.127411 0.097328 0.033622 0.076801 0.029729 0.015396 0.031853 +0.214286 +0 0 0.353920 0.162803 0.123872 0.042470 0.172890 0.068306 0.037162 0.054858 +0.357143 +0 0.353920 0 0.185808 0.148646 0.056627 0.267563 0.097151 0.061228 0.097328 +0.285714 +0.353920 0 0 0.198195 0.157494 0.056627 0.317289 0.148646 0.076978 0.078393 +0.250000 +0.353920 0 0 0.166342 0.127411 0.037162 0.192532 0.095558 0.049372 0.045656 +0.214286 +0 0 0.353920 0.143337 0.100867 0.031853 0.093612 0.044771 0.017873 0.026544 +0.178571 +0.353920 0 0 0.123872 0.093789 0.038931 0.104937 0.048310 0.022297 0.030083 +0.214286 +0.353920 0 0 0.191117 0.153955 0.049549 0.259954 0.116793 0.056450 0.075385 +0.285714 +0 0.353920 0 0.221200 0.176960 0.061936 0.450540 0.199611 0.106884 0.132366 +0.285714 +0 0 0.353920 0.159264 0.123872 0.038931 0.181915 0.089542 0.036985 0.049549 +0.250000 +0 0 0.353920 0.164573 0.130950 0.038931 0.157494 0.057866 0.033976 0.058751 +0.214286 +0 0.353920 0 0.258361 0.196425 0.063706 0.597947 0.231994 0.069545 0.174659 +0.321429 +0.353920 0 0 0.180499 0.141568 0.049549 0.244382 0.091665 0.053442 0.081402 +0.321429 +0 0 0.353920 0.198195 0.155725 0.046010 0.256061 0.123518 0.052734 0.070784 +0.250000 +0.353920 0 0 0.217661 0.166342 0.054858 0.424704 0.179968 0.113254 0.103345 +0.250000 +0 0.353920 0 0.194656 0.152185 0.044240 0.326668 0.142807 0.061936 0.100159 +0.250000 +0.353920 0 0 0.122102 0.093789 0.031853 0.057689 0.021766 0.013095 0.017165 +0.321429 +0.353920 0 0 0.166342 0.138029 0.053088 0.224916 0.077331 0.031322 0.090250 +0.285714 +0 0 0.353920 0.168112 0.125641 0.047779 0.168997 0.075916 0.031853 0.050787 +0.250000 +0 0.353920 0 0.240665 0.176960 0.065475 0.616174 0.271279 0.115201 0.165811 +0.392857 +0 0.353920 0 0.219430 0.176960 0.061936 0.391789 0.173244 0.084941 0.121394 +0.357143 +0 0 0.353920 0.106176 0.081402 0.028314 0.045125 0.015396 0.009379 0.014157 +0.250000 +0 0.353920 0 0.132720 0.095558 0.047779 0.211290 0.096266 0.046363 0.059282 +0.214286 +0.353920 0 0 0.215891 0.171651 0.061936 0.440453 0.192532 0.105114 0.122102 +0.392857 +0 0.353920 0 0.231817 0.176960 0.063706 0.500973 0.179791 0.111131 0.157494 +0.607143 +0.353920 0 0 0.221200 0.169881 0.051318 0.384003 0.164396 0.086533 0.115732 +0.321429 +0 0 0.353920 0.146877 0.109715 0.031853 0.099628 0.044063 0.021766 0.030083 +0.178571 +0 0.353920 0 0.230048 0.192886 0.081402 0.620067 0.198372 0.102460 0.288445 +0.535714 +0.353920 0 0 0.157494 0.123872 0.040701 0.127942 0.055388 0.024597 0.041409 +0.250000 +0 0.353920 0 0.212352 0.169881 0.058397 0.401522 0.160503 0.095558 0.118563 +0.321429 +0 0 0.353920 0.191117 0.153955 0.051318 0.343302 0.151655 0.077862 0.093435 +0.571429 +0 0 0.353920 0.201734 0.148646 0.046010 0.274111 0.125111 0.053265 0.083702 +0.285714 +0 0 0.353920 0.056627 0.042470 0.012387 0.007432 0.002654 0.001593 0.001770 +0.142857 +0 0 0.353920 0.205273 0.162803 0.049549 0.327907 0.146346 0.065298 0.095558 +0.321429 +0.353920 0 0 0.194656 0.143337 0.053088 0.326845 0.145815 0.075562 0.084941 +0.214286 +0 0.353920 0 0.176960 0.136259 0.040701 0.240134 0.104229 0.048841 0.069014 +0.392857 +0.353920 0 0 0.185808 0.152185 0.058397 0.305964 0.133074 0.068837 0.089011 +0.535714 +0 0.353920 0 0.184038 0.150416 0.051318 0.247744 0.073261 0.067422 0.084941 +0.428571 +0 0 0.353920 0.168112 0.123872 0.035392 0.160856 0.076624 0.039285 0.040701 +0.214286 +0 0 0.353920 0.145107 0.115024 0.037162 0.127765 0.056804 0.023536 0.036454 +0.250000 +0.353920 0 0 0.245974 0.182269 0.061936 0.536719 0.204566 0.145284 0.138029 +0.500000 +0 0.353920 0 0.215891 0.162803 0.051318 0.395859 0.169174 0.104229 0.105645 +0.321429 +0.353920 0 0 0.180499 0.134489 0.047779 0.241019 0.121571 0.050257 0.060166 +0.285714 +0.353920 0 0 0.191117 0.161033 0.049549 0.344010 0.148292 0.090250 0.095204 +0.321429 +0.353920 0 0 0.212352 0.175190 0.061936 0.460273 0.219253 0.100513 0.116263 +0.357143 +0.353920 0 0 0.238896 0.182269 0.053088 0.464343 0.196779 0.100690 0.145638 +0.357143 +0 0 0.353920 0.138029 0.109715 0.035392 0.106884 0.041055 0.022651 0.040701 +0.357143 +0 0.353920 0 0.159264 0.127411 0.044240 0.176783 0.072023 0.035392 0.060166 +0.428571 +0.353920 0 0 0.210582 0.162803 0.060166 0.399752 0.201734 0.090426 0.093789 +0.321429 +0.353920 0 0 0.203504 0.157494 0.060166 0.361883 0.194302 0.076978 0.080694 +0.285714 +0 0 0.353920 0.111485 0.083171 0.026544 0.045479 0.018050 0.009910 0.014334 +0.107143 +0 0.353920 0 0.199965 0.159264 0.056627 0.281366 0.127588 0.055035 0.081402 +0.392857 +0 0.353920 0 0.228278 0.185808 0.070784 0.512830 0.212706 0.090780 0.178729 +0.428571 +0.353920 0 0 0.221200 0.176960 0.046010 0.382941 0.204743 0.072377 0.088480 +0.250000 +0 0 0.353920 0.194656 0.150416 0.053088 0.285259 0.133074 0.060520 0.086710 +0.464286 +0 0.353920 0 0.162803 0.125641 0.046010 0.182976 0.078039 0.040347 0.058397 +0.285714 +0.353920 0 0 0.095558 0.069014 0.024774 0.037515 0.016457 0.006371 0.012741 +0.214286 +0 0 0.353920 0.191117 0.148646 0.049549 0.235887 0.110600 0.048841 0.067068 +0.321429 +0 0 0.353920 0.139798 0.104406 0.031853 0.107061 0.050611 0.023536 0.027075 +0.142857 +0 0.353920 0 0.203504 0.166342 0.054858 0.394974 0.180145 0.084233 0.120333 +0.321429 +0 0.353920 0 0.233587 0.168112 0.063706 0.484693 0.226862 0.104052 0.118563 +0.178571 +0 0 0.353920 0.184038 0.139798 0.051318 0.272518 0.150062 0.050257 0.067068 +0.214286 +0 0 0.353920 0.155725 0.122102 0.042470 0.129181 0.058574 0.029375 0.038931 +0.214286 +0.353920 0 0 0.231817 0.182269 0.056627 0.463635 0.195718 0.130596 0.122102 +0.357143 +0 0 0.353920 0.175190 0.132720 0.042470 0.217307 0.101044 0.048310 0.056981 +0.250000 +0 0.353920 0 0.219430 0.191117 0.058397 0.403114 0.176783 0.086179 0.126349 +0.357143 +0 0 0.353920 0.143337 0.109715 0.023005 0.113431 0.055742 0.023359 0.031145 +0.178571 +0 0.353920 0 0.176960 0.139798 0.049549 0.253229 0.112016 0.062290 0.084941 +0.321429 +0.353920 0 0 0.228278 0.176960 0.056627 0.488940 0.237834 0.115378 0.111485 +0.285714 +0 0 0.353920 0.130950 0.097328 0.049549 0.078393 0.034330 0.016103 0.021766 +0.178571 +0 0 0.353920 0.199965 0.164573 0.053088 0.418156 0.205627 0.078393 0.109538 +0.285714 +0 0 0.353920 0.145107 0.116793 0.037162 0.118563 0.053973 0.026190 0.038931 +0.214286 +0 0 0.353920 0.123872 0.088480 0.024774 0.063706 0.023182 0.016988 0.019112 +0.178571 +0 0 0.353920 0.215891 0.164573 0.044240 0.326491 0.154309 0.067245 0.092019 +0.285714 +0 0.353920 0 0.207043 0.161033 0.058397 0.353212 0.122102 0.088303 0.111485 +0.392857 +0 0 0.353920 0.129181 0.095558 0.030083 0.066360 0.028667 0.014865 0.020527 +0.178571 +0.353920 0 0 0.201734 0.159264 0.054858 0.322067 0.115378 0.067068 0.125641 +0.464286 +0.353920 0 0 0.095558 0.070784 0.028314 0.042647 0.016457 0.009910 0.014157 +0.178571 +0.353920 0 0 0.221200 0.173421 0.058397 0.426473 0.183153 0.109892 0.122633 +0.321429 +0.353920 0 0 0.254822 0.199965 0.070784 0.632454 0.254114 0.136259 0.187223 +0.357143 +0 0 0.353920 0.130950 0.095558 0.033622 0.082109 0.046894 0.014511 0.021766 +0.178571 +0.353920 0 0 0.182269 0.141568 0.049549 0.260662 0.104583 0.065121 0.065475 +0.535714 +0.353920 0 0 0.217661 0.159264 0.053088 0.423996 0.250221 0.074146 0.088657 +0.214286 +0.353920 0 0 0.192886 0.145107 0.049549 0.221200 0.078924 0.056627 0.083171 +0.428571 +0 0 0.353920 0.198195 0.155725 0.049549 0.291984 0.142276 0.049195 0.086710 +0.321429 +0.353920 0 0 0.185808 0.143337 0.047779 0.268094 0.116970 0.076447 0.069014 +0.321429 +0 0.353920 0 0.169881 0.141568 0.044240 0.268625 0.075208 0.063352 0.084941 +0.500000 +0.353920 0 0 0.217661 0.161033 0.053088 0.330384 0.135197 0.087418 0.092550 +0.321429 +0.353920 0 0 0.092019 0.067245 0.026544 0.033445 0.015749 0.007078 0.010618 +0.178571 +0 0 0.353920 0.132720 0.097328 0.031853 0.084233 0.038046 0.019289 0.024774 +0.178571 +0 0.353920 0 0.228278 0.169881 0.060166 0.401522 0.186870 0.089896 0.107945 +0.321429 +0 0.353920 0 0.230048 0.178729 0.058397 0.410547 0.169351 0.096974 0.123518 +0.357143 +0.353920 0 0 0.217661 0.176960 0.060166 0.373031 0.171474 0.080694 0.104406 +0.321429 +0 0 0.353920 0.136259 0.093789 0.028314 0.088834 0.043886 0.013095 0.024774 +0.178571 +0.353920 0 0 0.230048 0.180499 0.061936 0.408777 0.175367 0.071669 0.136259 +0.392857 +0.353920 0 0 0.178729 0.134489 0.046010 0.232171 0.080340 0.063175 0.077862 +0.428571 +0 0.353920 0 0.198195 0.164573 0.056627 0.365068 0.152893 0.071669 0.119271 +0.285714 +0 0 0.353920 0.107945 0.081402 0.026544 0.051495 0.021058 0.010795 0.017696 +0.178571 +0 0.353920 0 0.164573 0.134489 0.047779 0.204919 0.073615 0.038754 0.077862 +0.464286 +0.353920 0 0 0.164573 0.127411 0.037162 0.152539 0.060874 0.037869 0.061936 +0.285714 +0 0.353920 0 0.222969 0.169881 0.058397 0.446470 0.194833 0.098036 0.137498 +0.321429 +0 0.353920 0 0.237126 0.178729 0.061936 0.359051 0.154840 0.095912 0.132543 +0.321429 +0 0.353920 0 0.207043 0.168112 0.058397 0.372677 0.162095 0.076801 0.106176 +0.357143 +0 0.353920 0 0.187577 0.148646 0.047779 0.239604 0.090780 0.050080 0.074323 +0.285714 +0 0.353920 0 0.265440 0.194656 0.069014 0.648558 0.293753 0.129535 0.155725 +0.357143 +0 0 0.353920 0.217661 0.168112 0.046010 0.298177 0.124934 0.067776 0.088834 +0.250000 +0 0.353920 0 0.224739 0.173421 0.061936 0.440099 0.205450 0.110777 0.107945 +0.321429 +0 0 0.353920 0.097328 0.069014 0.023005 0.037515 0.019112 0.007078 0.009910 +0.178571 +0.353920 0 0 0.240665 0.187577 0.072554 0.529464 0.206158 0.119271 0.164573 +0.464286 +0 0.353920 0 0.207043 0.148646 0.054858 0.365953 0.154663 0.078747 0.113254 +0.357143 +0.353920 0 0 0.240665 0.191117 0.054858 0.542913 0.237480 0.134136 0.135905 +0.321429 +0.353920 0 0 0.198195 0.146877 0.046010 0.269510 0.130773 0.060166 0.069191 +0.250000 +0 0.353920 0 0.198195 0.153955 0.044240 0.310564 0.118386 0.075916 0.102637 +0.428571 +0 0.353920 0 0.168112 0.132720 0.044240 0.208105 0.083879 0.060697 0.054858 +0.321429 +0 0 0.353920 0.076093 0.053088 0.019466 0.014511 0.005309 0.003185 0.004424 +0.071429 +0.353920 0 0 0.215891 0.168112 0.054858 0.413378 0.196071 0.084587 0.116617 +0.321429 +0 0.353920 0 0.238896 0.180499 0.053088 0.423465 0.168112 0.107592 0.136613 +0.357143 +0 0.353920 0 0.237126 0.191117 0.058397 0.531410 0.183330 0.126703 0.178729 +0.464286 +0.353920 0 0 0.210582 0.168112 0.058397 0.429305 0.219784 0.086179 0.096974 +0.285714 +0 0.353920 0 0.182269 0.146877 0.049549 0.245443 0.110246 0.053796 0.070784 +0.321429 +0 0 0.353920 0.166342 0.125641 0.042470 0.130419 0.044594 0.029552 0.048310 +0.178571 +0 0 0.353920 0.148646 0.111485 0.038931 0.142453 0.065652 0.029375 0.035923 +0.250000 +0.353920 0 0 0.222969 0.175190 0.061936 0.449301 0.214121 0.095912 0.116086 +0.357143 +0.353920 0 0 0.162803 0.134489 0.047779 0.170589 0.073261 0.043355 0.051318 +0.321429 +0 0.353920 0 0.189347 0.141568 0.053088 0.433198 0.218722 0.097328 0.101752 +0.321429 +0 0 0.353920 0.166342 0.130950 0.049549 0.176429 0.074146 0.043355 0.051318 +0.321429 +0.353920 0 0 0.217661 0.180499 0.053088 0.458680 0.192886 0.117324 0.113254 +0.285714 +0 0.353920 0 0.192886 0.155725 0.061936 0.274111 0.105645 0.066360 0.093789 +0.357143 +0.353920 0 0 0.173421 0.139798 0.047779 0.196248 0.075385 0.032738 0.076093 +0.464286 +0.353920 0 0 0.238896 0.182269 0.051318 0.447708 0.213237 0.105822 0.115024 +0.321429 +0 0 0.353920 0.153955 0.120333 0.040701 0.138913 0.064590 0.027606 0.040524 +0.178571 +0 0 0.353920 0.196425 0.161033 0.060166 0.298531 0.109361 0.067422 0.106176 +0.500000 +0 0.353920 0 0.166342 0.129181 0.042470 0.192178 0.081225 0.052911 0.053088 +0.285714 +0 0.353920 0 0.192886 0.145107 0.044240 0.245443 0.105291 0.051672 0.074323 +0.357143 +0 0.353920 0 0.194656 0.166342 0.053088 0.325783 0.134843 0.086179 0.094674 +0.321429 +0.353920 0 0 0.201734 0.164573 0.044240 0.300478 0.133959 0.062467 0.084941 +0.500000 +0.353920 0 0 0.192886 0.159264 0.053088 0.346133 0.119094 0.067422 0.106176 +0.357143 +0 0.353920 0 0.153955 0.123872 0.044240 0.162449 0.069722 0.040524 0.051318 +0.285714 +0 0 0.353920 0.157494 0.123872 0.046010 0.148469 0.059989 0.033445 0.042293 +0.214286 +0 0.353920 0 0.176960 0.141568 0.044240 0.204035 0.084764 0.044594 0.065475 +0.321429 +0.353920 0 0 0.095558 0.069014 0.028314 0.035392 0.013626 0.006901 0.010618 +0.178571 +0.353920 0 0 0.208813 0.162803 0.054858 0.320651 0.115732 0.052557 0.118563 +0.500000 +0.353920 0 0 0.238896 0.191117 0.061936 0.550168 0.235180 0.098390 0.181207 +0.392857 +0.353920 0 0 0.214121 0.164573 0.058397 0.373739 0.149177 0.087595 0.120333 +0.428571 +0 0.353920 0 0.240665 0.194656 0.061936 0.521324 0.252345 0.099805 0.152009 +0.357143 +0 0 0.353920 0.074323 0.053088 0.017696 0.014865 0.006194 0.004424 0.005309 +0.107143 +0 0 0.353920 0.116793 0.093789 0.031853 0.063706 0.024067 0.012741 0.021235 +0.178571 +0 0 0.353920 0.164573 0.134489 0.046010 0.160680 0.067068 0.028314 0.054858 +0.357143 +0 0.353920 0 0.238896 0.199965 0.069014 0.650327 0.270572 0.127942 0.195718 +0.392857 +0.353920 0 0 0.086710 0.063706 0.023005 0.022474 0.008671 0.004778 0.007078 +0.107143 +0 0.353920 0 0.139798 0.104406 0.033622 0.079455 0.027606 0.019112 0.028314 +0.321429 +0.353920 0 0 0.212352 0.159264 0.056627 0.404176 0.190763 0.079632 0.108653 +0.321429 +0 0.353920 0 0.245974 0.198195 0.077862 0.649089 0.299239 0.149354 0.161033 +0.357143 +0 0 0.353920 0.118563 0.086710 0.031853 0.071315 0.033976 0.014334 0.016988 +0.214286 +0.353920 0 0 0.210582 0.166342 0.061936 0.350734 0.135197 0.084764 0.176960 +0.392857 +0.353920 0 0 0.231817 0.192886 0.067245 0.504159 0.223854 0.117855 0.133782 +0.321429 +0 0 0.353920 0.132720 0.097328 0.035392 0.082286 0.041232 0.014865 0.023005 +0.178571 +0 0.353920 0 0.161033 0.123872 0.042470 0.161210 0.068837 0.036985 0.048664 +0.214286 +0 0.353920 0 0.198195 0.153955 0.065475 0.391435 0.149354 0.086179 0.116793 +0.500000 +0 0 0.353920 0.123872 0.099098 0.026544 0.069368 0.029021 0.014157 0.022651 +0.250000 +0.353920 0 0 0.212352 0.159264 0.069014 0.474252 0.218368 0.115201 0.127588 +0.321429 +0.353920 0 0 0.228278 0.176960 0.067245 0.551938 0.262254 0.131481 0.136082 +0.464286 +0 0 0.353920 0.150416 0.111485 0.033622 0.130065 0.066006 0.023890 0.034861 +0.214286 +0 0.353920 0 0.212352 0.162803 0.054858 0.344541 0.151124 0.072377 0.106176 +0.250000 +0 0 0.353920 0.187577 0.143337 0.042470 0.223677 0.096089 0.052380 0.066360 +0.285714 +0 0 0.353920 0.182269 0.139798 0.044240 0.196779 0.095381 0.033976 0.060166 +0.250000 +0.353920 0 0 0.215891 0.162803 0.056627 0.353920 0.174836 0.069722 0.097328 +0.321429 +0 0.353920 0 0.205273 0.161033 0.058397 0.402230 0.130596 0.106353 0.097328 +0.428571 +0 0 0.353920 0.130950 0.095558 0.033622 0.076978 0.034330 0.016280 0.023005 +0.178571 +0 0 0.353920 0.166342 0.132720 0.042470 0.172359 0.069368 0.035038 0.047779 +0.250000 +0 0.353920 0 0.238896 0.196425 0.072554 0.681295 0.252345 0.126703 0.160503 +0.428571 +0.353920 0 0 0.136259 0.109715 0.035392 0.100690 0.037692 0.026544 0.035392 +0.357143 +0.353920 0 0 0.201734 0.169881 0.063706 0.332508 0.141214 0.070784 0.104406 +0.464286 +0 0.353920 0 0.242435 0.192886 0.063706 0.625730 0.265263 0.138737 0.171651 +0.535714 +0.353920 0 0 0.245974 0.192886 0.065475 0.556185 0.235180 0.135728 0.159441 +0.428571 +0.353920 0 0 0.221200 0.166342 0.060166 0.412847 0.162980 0.090780 0.139621 +0.357143 +0 0 0.353920 0.171651 0.129181 0.049549 0.158379 0.067068 0.032738 0.081578 +0.250000 +0.353920 0 0 0.222969 0.166342 0.053088 0.401876 0.190763 0.082286 0.110246 +0.392857 +0 0.353920 0 0.176960 0.132720 0.049549 0.213767 0.085649 0.050080 0.063352 +0.500000 +0 0.353920 0 0.224739 0.180499 0.065475 0.455141 0.186162 0.104406 0.145284 +0.392857 +0 0.353920 0 0.224739 0.184038 0.058397 0.474429 0.179260 0.104760 0.145815 +0.357143 +0 0.353920 0 0.240665 0.178729 0.060166 0.475491 0.232525 0.105114 0.125641 +0.392857 +0 0 0.353920 0.171651 0.146877 0.049549 0.201911 0.088480 0.047425 0.065475 +0.250000 +0 0.353920 0 0.157494 0.118563 0.049549 0.161564 0.063175 0.040347 0.049549 +0.357143 +0 0.353920 0 0.178729 0.141568 0.058397 0.258007 0.094674 0.054858 0.088480 +0.285714 +0 0 0.353920 0.155725 0.120333 0.042470 0.155017 0.074854 0.029375 0.042470 +0.285714 +0 0.353920 0 0.233587 0.185808 0.067245 0.591046 0.230933 0.172536 0.173421 +0.357143 +0 0.353920 0 0.203504 0.159264 0.060166 0.370731 0.133605 0.060343 0.136259 +0.607143 +0 0 0.353920 0.194656 0.143337 0.053088 0.239073 0.106707 0.051849 0.074323 +0.321429 +0.353920 0 0 0.169881 0.134489 0.047779 0.186870 0.070784 0.049372 0.056627 +0.464286 +0 0 0.353920 0.129181 0.097328 0.030083 0.078924 0.034684 0.013272 0.026544 +0.214286 +0.353920 0 0 0.228278 0.185808 0.056627 0.533534 0.263847 0.086710 0.153070 +0.357143 +0 0.353920 0 0.203504 0.159264 0.056627 0.345956 0.110954 0.081755 0.116793 +0.392857 +0 0 0.353920 0.093789 0.070784 0.023005 0.034507 0.014157 0.007255 0.009910 +0.214286 +0.353920 0 0 0.226509 0.178729 0.054858 0.496372 0.249513 0.093966 0.118563 +0.321429 +0 0.353920 0 0.132720 0.102637 0.040701 0.095735 0.032915 0.023359 0.031322 +0.321429 +0.353920 0 0 0.182269 0.136259 0.038931 0.204743 0.089542 0.056627 0.049549 +0.250000 +0.353920 0 0 0.184038 0.148646 0.056627 0.263670 0.090250 0.055565 0.102106 +0.357143 +0 0 0.353920 0.132720 0.086710 0.035392 0.139444 0.058751 0.032207 0.039816 +0.178571 +0.353920 0 0 0.267209 0.205273 0.072554 0.710140 0.293576 0.142099 0.210582 +0.321429 +0.353920 0 0 0.182269 0.138029 0.042470 0.216776 0.106884 0.048310 0.050080 +0.250000 +0 0 0.353920 0.166342 0.122102 0.042470 0.130419 0.053973 0.021766 0.044240 +0.250000 +0.353920 0 0 0.175190 0.141568 0.047779 0.215891 0.096266 0.050787 0.050964 +0.214286 +0.353920 0 0 0.237126 0.182269 0.058397 0.415325 0.186162 0.100867 0.111839 +0.357143 +0.353920 0 0 0.210582 0.161033 0.053088 0.369492 0.183330 0.078039 0.095558 +0.285714 +0 0.353920 0 0.097328 0.069014 0.024774 0.028314 0.010972 0.007609 0.008848 +0.142857 +0 0.353920 0 0.207043 0.161033 0.046010 0.309857 0.145461 0.073084 0.079632 +0.250000 +0.353920 0 0 0.219430 0.162803 0.056627 0.336401 0.173952 0.070784 0.080694 +0.285714 +0 0.353920 0 0.176960 0.141568 0.051318 0.222969 0.082817 0.051849 0.081402 +0.392857 +0 0.353920 0 0.187577 0.155725 0.047779 0.277296 0.110777 0.060697 0.077331 +0.285714 +0.353920 0 0 0.109715 0.079632 0.026544 0.045833 0.016103 0.011856 0.015572 +0.285714 +0 0 0.353920 0.214121 0.175190 0.051318 0.373031 0.130596 0.079809 0.127411 +0.392857 +0 0.353920 0 0.199965 0.159264 0.061936 0.437622 0.187754 0.086887 0.109007 +0.321429 +0 0.353920 0 0.245974 0.189347 0.070784 0.561140 0.236064 0.118209 0.166696 +0.357143 +0 0.353920 0 0.203504 0.162803 0.067245 0.351796 0.138737 0.085826 0.120333 +0.428571 +0 0.353920 0 0.224739 0.176960 0.063706 0.444700 0.190763 0.103345 0.123872 +0.321429 +0 0.353920 0 0.219430 0.166342 0.049549 0.365422 0.127588 0.079278 0.127411 +0.500000 +0 0.353920 0 0.194656 0.150416 0.051318 0.282074 0.105114 0.053088 0.093789 +0.285714 +0 0 0.353920 0.175190 0.134489 0.042470 0.181207 0.082463 0.042647 0.048133 +0.214286 +0 0 0.353920 0.184038 0.143337 0.049549 0.239427 0.101398 0.051672 0.072554 +0.500000 +0.353920 0 0 0.185808 0.146877 0.051318 0.299062 0.124757 0.057866 0.101752 +0.250000 +0.353920 0 0 0.251283 0.194656 0.070784 0.674040 0.312157 0.155725 0.176960 +0.428571 +0 0 0.353920 0.182269 0.138029 0.038931 0.187931 0.085472 0.034684 0.057158 +0.250000 +0.353920 0 0 0.168112 0.130950 0.038931 0.173244 0.077331 0.037869 0.051672 +0.250000 +0.353920 0 0 0.208813 0.166342 0.063706 0.397629 0.148823 0.099274 0.127411 +0.428571 +0 0.353920 0 0.214121 0.168112 0.061936 0.380818 0.163865 0.077685 0.118563 +0.285714 +0.353920 0 0 0.217661 0.185808 0.054858 0.402584 0.129889 0.083525 0.130950 +0.678571 +0.353920 0 0 0.235357 0.176960 0.061936 0.459211 0.215006 0.111131 0.111485 +0.285714 +0.353920 0 0 0.187577 0.146877 0.049549 0.256238 0.109892 0.059282 0.072554 +0.321429 +0 0.353920 0 0.207043 0.159264 0.056627 0.381171 0.176783 0.101752 0.088480 +0.321429 +0 0 0.353920 0.106176 0.076093 0.017696 0.041939 0.016988 0.007963 0.014865 +0.107143 +0.353920 0 0 0.226509 0.175190 0.058397 0.462573 0.239958 0.103345 0.094143 +0.357143 +0 0.353920 0 0.168112 0.127411 0.042470 0.209343 0.114847 0.038931 0.044948 +0.178571 +0.353920 0 0 0.205273 0.155725 0.053088 0.370377 0.183330 0.077331 0.098921 +0.321429 +0 0.353920 0 0.235357 0.196425 0.069014 0.509113 0.205627 0.125288 0.127411 +0.571429 +0 0 0.353920 0.217661 0.173421 0.054858 0.349850 0.146700 0.069014 0.122102 +0.428571 +0.353920 0 0 0.201734 0.148646 0.049549 0.309503 0.147231 0.058397 0.088480 +0.250000 +0.353920 0 0 0.240665 0.189347 0.065475 0.568749 0.256415 0.113785 0.176252 +0.392857 +0 0 0.353920 0.203504 0.150416 0.047779 0.281897 0.128827 0.069368 0.084587 +0.321429 +0.353920 0 0 0.194656 0.136259 0.046010 0.257477 0.121394 0.057512 0.067245 +0.250000 +0 0 0.353920 0.210582 0.162803 0.053088 0.294992 0.133428 0.068130 0.083171 +0.250000 +0 0.353920 0 0.237126 0.184038 0.069014 0.639356 0.268271 0.132189 0.178906 +0.357143 +0 0 0.353920 0.070784 0.053088 0.014157 0.016280 0.007432 0.002477 0.002300 +0.107143 +0 0 0.353920 0.161033 0.122102 0.038931 0.153601 0.073261 0.030260 0.043001 +0.250000 +0 0 0.353920 0.219430 0.171651 0.063706 0.417094 0.165457 0.093966 0.138029 +0.428571 +0 0 0.353920 0.134489 0.097328 0.038931 0.090603 0.038931 0.018935 0.026721 +0.178571 +0 0 0.353920 0.184038 0.145107 0.038931 0.183507 0.076624 0.032384 0.065121 +0.250000 +0 0.353920 0 0.207043 0.148646 0.054858 0.348434 0.156432 0.076270 0.101752 +0.428571 +0 0 0.353920 0.173421 0.136259 0.049549 0.192001 0.070076 0.044948 0.061936 +0.357143 +0 0 0.353920 0.153955 0.116793 0.038931 0.146169 0.072730 0.033976 0.033976 +0.178571 +0 0 0.353920 0.152185 0.123872 0.037162 0.129535 0.060343 0.030260 0.038931 +0.178571 +0 0 0.353920 0.162803 0.122102 0.037162 0.146877 0.066183 0.030791 0.038931 +0.250000 +0 0 0.353920 0.132720 0.099098 0.030083 0.111662 0.066183 0.016280 0.023713 +0.214286 +0 0 0.353920 0.164573 0.127411 0.037162 0.176252 0.075739 0.041055 0.049549 +0.500000 +0 0.353920 0 0.212352 0.171651 0.051318 0.274642 0.125465 0.056096 0.084587 +0.285714 +0.353920 0 0 0.237126 0.185808 0.069014 0.509821 0.233410 0.094674 0.150416 +0.285714 +0.353920 0 0 0.150416 0.115024 0.035392 0.116617 0.048310 0.025659 0.038931 +0.214286 +0.353920 0 0 0.199965 0.159264 0.049549 0.355866 0.133959 0.086356 0.093789 +0.392857 +0 0.353920 0 0.205273 0.161033 0.054858 0.296054 0.111485 0.049018 0.113254 +0.607143 +0 0.353920 0 0.221200 0.175190 0.056627 0.393382 0.159087 0.099982 0.122102 +0.357143 +0 0.353920 0 0.194656 0.146877 0.047779 0.274288 0.106884 0.063352 0.092019 +0.785714 +0 0 0.353920 0.176960 0.138029 0.044240 0.206335 0.104052 0.046717 0.056804 +0.250000 +0.353920 0 0 0.221200 0.176960 0.061936 0.373916 0.163334 0.091311 0.107945 +0.321429 +0.353920 0 0 0.224739 0.180499 0.065475 0.462927 0.192532 0.112546 0.133428 +0.250000 +0 0 0.353920 0.198195 0.150416 0.047779 0.290391 0.131481 0.065475 0.083525 +0.285714 +0.353920 0 0 0.221200 0.178729 0.061936 0.400283 0.192001 0.080163 0.114316 +0.250000 +0.353920 0 0 0.196425 0.143337 0.067245 0.497611 0.216422 0.121041 0.137675 +0.321429 +0 0 0.353920 0.127411 0.093789 0.026544 0.065298 0.029375 0.012918 0.019466 +0.214286 +0 0 0.353920 0.198195 0.150416 0.051318 0.243497 0.109538 0.046187 0.076624 +0.285714 +0.353920 0 0 0.219430 0.178729 0.065475 0.540612 0.244205 0.130242 0.123872 +0.428571 +0.353920 0 0 0.171651 0.136259 0.044240 0.168997 0.070784 0.027783 0.060166 +0.392857 +0 0 0.353920 0.176960 0.139798 0.049549 0.219961 0.103521 0.042647 0.069014 +0.285714 +0 0.353920 0 0.201734 0.155725 0.042470 0.284197 0.135197 0.053973 0.082817 +0.285714 +0.353920 0 0 0.215891 0.169881 0.049549 0.376040 0.182623 0.079632 0.103168 +0.357143 +0 0 0.353920 0.100867 0.077862 0.023005 0.033976 0.014334 0.007255 0.010618 +0.142857 +0.353920 0 0 0.207043 0.166342 0.058397 0.498673 0.283136 0.081048 0.104406 +0.321429 +0 0.353920 0 0.176960 0.134489 0.049549 0.224916 0.098036 0.050611 0.063175 +0.250000 +0 0 0.353920 0.136259 0.099098 0.030083 0.076978 0.034330 0.013449 0.023713 +0.250000 +0 0 0.353920 0.145107 0.107945 0.033622 0.092904 0.035392 0.018227 0.031853 +0.178571 +0 0 0.353920 0.120333 0.090250 0.026544 0.063706 0.026367 0.014157 0.018581 +0.178571 +0 0 0.353920 0.148646 0.106176 0.037162 0.111839 0.044417 0.024774 0.036631 +0.214286 +0 0.353920 0 0.189347 0.145107 0.046010 0.252876 0.118563 0.050964 0.073438 +0.285714 +0 0.353920 0 0.194656 0.155725 0.044240 0.270749 0.116793 0.075208 0.086710 +0.285714 +0 0 0.353920 0.162803 0.122102 0.038931 0.132897 0.053973 0.020527 0.044240 +0.214286 +0 0 0.353920 0.118563 0.088480 0.026544 0.065829 0.033445 0.013449 0.015749 +0.214286 +0 0 0.353920 0.116793 0.072554 0.033622 0.056450 0.027252 0.011325 0.015396 +0.142857 +0 0 0.353920 0.175190 0.134489 0.047779 0.180322 0.073084 0.041232 0.058397 +0.250000 +0 0 0.353920 0.196425 0.139798 0.046010 0.197664 0.078570 0.044063 0.060166 +0.285714 +0.353920 0 0 0.178729 0.129181 0.040701 0.184392 0.088480 0.033976 0.053088 +0.250000 +0.353920 0 0 0.203504 0.155725 0.056627 0.340294 0.170943 0.058751 0.097328 +0.428571 +0 0.353920 0 0.180499 0.138029 0.047779 0.224208 0.081755 0.063352 0.070784 +0.285714 +0 0 0.353920 0.161033 0.118563 0.037162 0.143514 0.061936 0.032561 0.041939 +0.250000 +0 0 0.353920 0.132720 0.099098 0.028314 0.082994 0.039816 0.016103 0.023713 +0.178571 +0 0 0.353920 0.189347 0.159264 0.047779 0.257654 0.100690 0.065298 0.093789 +0.285714 +0 0.353920 0 0.159264 0.123872 0.044240 0.156963 0.065475 0.031853 0.051318 +0.357143 +0.353920 0 0 0.192886 0.155725 0.049549 0.297116 0.125995 0.067422 0.084410 +0.357143 +0.353920 0 0 0.176960 0.141568 0.058397 0.291984 0.089896 0.072554 0.100867 +0.428571 +0 0 0.353920 0.162803 0.118563 0.038931 0.157140 0.079632 0.026367 0.038931 +0.250000 +0.353920 0 0 0.203504 0.159264 0.058397 0.341709 0.176252 0.067245 0.081402 +0.250000 +0.353920 0 0 0.215891 0.168112 0.058397 0.394974 0.151478 0.078039 0.111485 +0.500000 +0.353920 0 0 0.226509 0.199965 0.081402 0.538312 0.227924 0.131658 0.143691 +0.500000 +0.353920 0 0 0.198195 0.150416 0.047779 0.300478 0.115555 0.078216 0.093612 +0.321429 +0 0.353920 0 0.222969 0.168112 0.053088 0.414794 0.189701 0.089896 0.111839 +0.357143 +0.353920 0 0 0.155725 0.125641 0.044240 0.168997 0.046717 0.028844 0.067245 +0.285714 +0 0.353920 0 0.224739 0.171651 0.058397 0.458149 0.236418 0.092196 0.096089 +0.285714 +0 0 0.353920 0.139798 0.106176 0.031853 0.098744 0.047425 0.017342 0.026544 +0.250000 +0 0 0.353920 0.155725 0.116793 0.038931 0.131127 0.054681 0.029729 0.042470 +0.214286 +0.353920 0 0 0.203504 0.141568 0.054858 0.330030 0.127588 0.086533 0.106176 +0.571429 +0.353920 0 0 0.208813 0.168112 0.051318 0.372677 0.156256 0.092727 0.115024 +0.500000 +0.353920 0 0 0.254822 0.203504 0.076093 0.769067 0.336755 0.199611 0.189878 +0.392857 +0 0.353920 0 0.130950 0.097328 0.028314 0.080340 0.032915 0.022120 0.024774 +0.250000 +0.353920 0 0 0.187577 0.145107 0.054858 0.253229 0.099274 0.059635 0.075739 +0.357143 +0 0.353920 0 0.168112 0.132720 0.053088 0.197841 0.069191 0.043001 0.068837 +0.392857 +0 0.353920 0 0.228278 0.176960 0.063706 0.452486 0.189170 0.105999 0.122102 +0.428571 +0 0.353920 0 0.164573 0.138029 0.049549 0.196602 0.075385 0.038046 0.076093 +0.500000 +0 0 0.353920 0.129181 0.095558 0.026544 0.078393 0.033622 0.015749 0.024774 +0.178571 +0 0.353920 0 0.198195 0.155725 0.054858 0.226686 0.118917 0.062467 0.086710 +0.250000 +0 0.353920 0 0.222969 0.180499 0.065475 0.437091 0.181030 0.123518 0.108476 +0.357143 +0.353920 0 0 0.192886 0.159264 0.056627 0.304902 0.103521 0.054681 0.129181 +0.535714 +0 0.353920 0 0.222969 0.176960 0.063706 0.423465 0.181915 0.082286 0.141391 +0.250000 +0 0.353920 0 0.187577 0.161033 0.058397 0.347018 0.111662 0.099628 0.104937 +0.357143 +0 0.353920 0 0.228278 0.185808 0.060166 0.484870 0.217130 0.100159 0.120333 +0.321429 +0 0.353920 0 0.198195 0.161033 0.056627 0.342240 0.160149 0.073261 0.096974 +0.285714 +0 0.353920 0 0.176960 0.139798 0.053088 0.252876 0.114493 0.061228 0.069014 +0.285714 +0 0 0.353920 0.118563 0.088480 0.033622 0.065475 0.028137 0.017519 0.019466 +0.250000 +0.353920 0 0 0.138029 0.106176 0.031853 0.108122 0.050611 0.022828 0.030083 +0.285714 +0.353920 0 0 0.192886 0.162803 0.056627 0.317643 0.120687 0.058574 0.122102 +0.321429 +0.353920 0 0 0.104406 0.081402 0.030083 0.044240 0.014865 0.010087 0.015219 +0.250000 +0 0 0.353920 0.205273 0.148646 0.056627 0.257654 0.096443 0.067245 0.067245 +0.464286 +0.353920 0 0 0.207043 0.169881 0.065475 0.368076 0.153601 0.093789 0.100867 +0.321429 +0 0.353920 0 0.199965 0.159264 0.061936 0.357282 0.158202 0.084056 0.093612 +0.285714 +0 0 0.353920 0.169881 0.130950 0.042470 0.181915 0.073438 0.046363 0.054858 +0.428571 +0 0 0.353920 0.171651 0.130950 0.040701 0.225447 0.134489 0.047248 0.045302 +0.214286 +0.353920 0 0 0.215891 0.176960 0.084941 0.581136 0.188285 0.118386 0.244205 +0.607143 +0 0 0.353920 0.159264 0.125641 0.040701 0.155194 0.065121 0.038223 0.039816 +0.357143 +0 0 0.353920 0.139798 0.095558 0.035392 0.105645 0.051141 0.021589 0.029021 +0.142857 +0 0.353920 0 0.208813 0.166342 0.060166 0.318528 0.125641 0.067422 0.088480 +0.357143 +0.353920 0 0 0.184038 0.141568 0.044240 0.197841 0.089896 0.049195 0.052734 +0.250000 +0 0.353920 0 0.212352 0.176960 0.056627 0.397098 0.180322 0.090603 0.109361 +0.321429 +0 0 0.353920 0.120333 0.088480 0.026544 0.062467 0.027783 0.014334 0.017696 +0.214286 +0 0 0.353920 0.145107 0.109715 0.038931 0.111485 0.043886 0.029021 0.033622 +0.285714 +0.353920 0 0 0.221200 0.161033 0.060166 0.382941 0.175367 0.082994 0.111485 +0.285714 +0.353920 0 0 0.187577 0.145107 0.049549 0.267032 0.123695 0.060697 0.074500 +0.250000 +0 0.353920 0 0.136259 0.107945 0.044240 0.111131 0.051672 0.019643 0.028314 +0.321429 +0 0.353920 0 0.164573 0.138029 0.038931 0.224916 0.064236 0.055565 0.079632 +0.428571 +0.353920 0 0 0.237126 0.192886 0.070784 0.602548 0.294815 0.132366 0.145107 +0.357143 +0 0.353920 0 0.134489 0.106176 0.031853 0.113785 0.054681 0.026544 0.033622 +0.285714 +0 0.353920 0 0.185808 0.141568 0.047779 0.252699 0.112546 0.048841 0.073615 +0.321429 +0.353920 0 0 0.221200 0.169881 0.063706 0.432844 0.199965 0.105291 0.119448 +0.321429 +0 0.353920 0 0.228278 0.185808 0.067245 0.640064 0.248982 0.137498 0.139798 +0.607143 +0.353920 0 0 0.208813 0.171651 0.042470 0.322421 0.138029 0.064413 0.102637 +0.535714 +0 0 0.353920 0.150416 0.111485 0.035392 0.133428 0.058220 0.025482 0.037162 +0.178571 +0 0 0.353920 0.155725 0.115024 0.038931 0.175721 0.091311 0.042293 0.038046 +0.250000 +0.353920 0 0 0.231817 0.187577 0.069014 0.491240 0.200672 0.096797 0.145107 +0.428571 +0 0 0.353920 0.123872 0.092019 0.033622 0.078216 0.034861 0.015219 0.024774 +0.250000 +0 0 0.353920 0.201734 0.157494 0.054858 0.306848 0.131127 0.060343 0.099098 +0.285714 +0.353920 0 0 0.230048 0.182269 0.063706 0.517784 0.232879 0.110954 0.145638 +0.357143 +0 0 0.353920 0.185808 0.138029 0.042470 0.235003 0.110246 0.052026 0.062998 +0.285714 +0.353920 0 0 0.242435 0.184038 0.058397 0.537604 0.247390 0.130419 0.141568 +0.321429 +0 0.353920 0 0.256592 0.201734 0.072554 0.573173 0.263316 0.111485 0.172713 +0.357143 +0.353920 0 0 0.196425 0.162803 0.056627 0.304371 0.118386 0.068483 0.097328 +0.321429 +0 0.353920 0 0.237126 0.184038 0.053088 0.497611 0.183684 0.123164 0.130950 +0.428571 +0.353920 0 0 0.118563 0.092019 0.026544 0.077862 0.030260 0.014157 0.030083 +0.178571 +0.353920 0 0 0.228278 0.176960 0.061936 0.473721 0.224031 0.105822 0.123518 +0.357143 +0.353920 0 0 0.219430 0.175190 0.061936 0.639179 0.227570 0.116263 0.256592 +0.571429 +0.353920 0 0 0.265440 0.196425 0.076093 0.778977 0.375686 0.185277 0.187047 +0.357143 +0.353920 0 0 0.214121 0.168112 0.063706 0.331446 0.139444 0.077508 0.104406 +0.500000 +0 0.353920 0 0.219430 0.180499 0.061936 0.449655 0.191647 0.114316 0.114139 +0.285714 +0.353920 0 0 0.226509 0.173421 0.054858 0.399398 0.168820 0.095204 0.120333 +0.285714 +0 0.353920 0 0.217661 0.162803 0.053088 0.363299 0.174659 0.071138 0.097151 +0.321429 +0 0 0.353920 0.116793 0.079632 0.026544 0.066183 0.033445 0.013980 0.015042 +0.214286 +0.353920 0 0 0.196425 0.159264 0.061936 0.309326 0.115909 0.071492 0.107945 +0.321429 +0 0.353920 0 0.194656 0.150416 0.047779 0.301363 0.128119 0.069368 0.095558 +0.464286 +0 0.353920 0 0.226509 0.178729 0.067245 0.451778 0.171120 0.116086 0.141568 +0.392857 +0.353920 0 0 0.240665 0.184038 0.061936 0.546098 0.266325 0.124226 0.132366 +0.357143 +0.353920 0 0 0.214121 0.168112 0.049549 0.395505 0.196425 0.090957 0.096974 +0.285714 +0 0.353920 0 0.230048 0.180499 0.054858 0.420810 0.170943 0.098390 0.129004 +0.428571 +0 0.353920 0 0.210582 0.162803 0.056627 0.325960 0.141745 0.071669 0.101752 +0.285714 +0.353920 0 0 0.237126 0.191117 0.069014 0.430720 0.188285 0.096797 0.117324 +0.357143 +0.353920 0 0 0.215891 0.169881 0.065475 0.462396 0.244028 0.103168 0.102637 +0.321429 +0 0.353920 0 0.205273 0.176960 0.058397 0.327376 0.130950 0.065475 0.106353 +0.321429 +0 0 0.353920 0.077862 0.056627 0.017696 0.017342 0.007609 0.003539 0.005309 +0.107143 +0 0 0.353920 0.182269 0.123872 0.037162 0.167935 0.075385 0.043532 0.045125 +0.321429 +0.353920 0 0 0.219430 0.169881 0.056627 0.380995 0.145815 0.089542 0.106176 +0.428571 +0 0.353920 0 0.194656 0.150416 0.044240 0.341179 0.193771 0.056273 0.076093 +0.250000 +0 0.353920 0 0.203504 0.168112 0.056627 0.316758 0.127588 0.078216 0.095912 +0.285714 +0 0 0.353920 0.129181 0.093789 0.047779 0.078393 0.037162 0.016634 0.021412 +0.214286 +0 0 0.353920 0.077862 0.058397 0.019466 0.019289 0.007609 0.004247 0.007078 +0.142857 +0.353920 0 0 0.130950 0.099098 0.035392 0.089188 0.037692 0.021058 0.026190 +0.250000 +0 0 0.353920 0.187577 0.150416 0.046010 0.271633 0.148292 0.042647 0.074323 +0.285714 +0.353920 0 0 0.146877 0.109715 0.031853 0.114847 0.046187 0.026013 0.040701 +0.250000 +0 0 0.353920 0.097328 0.072554 0.028314 0.033976 0.012741 0.006548 0.010618 +0.178571 +0 0.353920 0 0.230048 0.176960 0.065475 0.510175 0.262254 0.104583 0.120687 +0.285714 +0 0.353920 0 0.201734 0.155725 0.044240 0.306141 0.130065 0.061051 0.095558 +0.392857 +0.353920 0 0 0.226509 0.178729 0.063706 0.459034 0.208813 0.110600 0.128473 +0.357143 +0 0.353920 0 0.245974 0.189347 0.061936 0.650681 0.284374 0.140152 0.178022 +0.321429 +0.353920 0 0 0.145107 0.106176 0.035392 0.106530 0.043886 0.024420 0.031853 +0.285714 +0 0.353920 0 0.219430 0.171651 0.061936 0.430189 0.192886 0.089542 0.122102 +0.321429 +0.353920 0 0 0.187577 0.153955 0.054858 0.247390 0.101929 0.056450 0.072554 +0.321429 +0.353920 0 0 0.207043 0.164573 0.053088 0.346841 0.152716 0.090073 0.087418 +0.285714 +0 0 0.353920 0.155725 0.116793 0.047779 0.144930 0.057689 0.035569 0.042116 +0.178571 +0.353920 0 0 0.222969 0.182269 0.054858 0.445585 0.145284 0.069722 0.145107 +0.428571 +0.353920 0 0 0.192886 0.148646 0.051318 0.275349 0.132543 0.054681 0.072554 +0.214286 +0 0 0.353920 0.152185 0.115024 0.031853 0.150416 0.076801 0.030791 0.033622 +0.214286 +0 0.353920 0 0.173421 0.136259 0.056627 0.232171 0.086887 0.060520 0.072554 +0.285714 +0 0 0.353920 0.145107 0.111485 0.035392 0.106176 0.043886 0.020350 0.035392 +0.250000 +0.353920 0 0 0.203504 0.159264 0.054858 0.313573 0.127588 0.074677 0.091134 +0.285714 +0.353920 0 0 0.176960 0.134489 0.054858 0.233587 0.093966 0.048310 0.076093 +0.642857 +0 0 0.353920 0.111485 0.081402 0.024774 0.058043 0.022120 0.014157 0.015926 +0.178571 +0.353920 0 0 0.212352 0.166342 0.056627 0.422580 0.199080 0.107769 0.093258 +0.321429 +0 0.353920 0 0.231817 0.182269 0.063706 0.499735 0.219253 0.087949 0.175898 +0.357143 +0.353920 0 0 0.157494 0.123872 0.049549 0.208990 0.071669 0.055919 0.067245 +0.464286 +0 0 0.353920 0.169881 0.127411 0.044240 0.191824 0.098921 0.036277 0.052026 +0.214286 +0 0.353920 0 0.222969 0.168112 0.061936 0.503628 0.147054 0.119802 0.173421 +0.464286 +0 0.353920 0 0.199965 0.161033 0.046010 0.374447 0.155371 0.093612 0.106176 +0.321429 +0 0 0.353920 0.194656 0.153955 0.049549 0.282959 0.104406 0.067422 0.084233 +0.321429 +0.353920 0 0 0.222969 0.173421 0.063706 0.399929 0.162095 0.097859 0.111485 +0.392857 +0 0 0.353920 0.084941 0.060166 0.017696 0.019289 0.007255 0.005663 0.005486 +0.142857 +0 0.353920 0 0.251283 0.194656 0.060166 0.571226 0.262962 0.122102 0.159264 +0.357143 +0 0.353920 0 0.199965 0.155725 0.053088 0.347903 0.158379 0.083348 0.087949 +0.285714 +0.353920 0 0 0.184038 0.141568 0.051318 0.274819 0.124757 0.065298 0.065475 +0.285714 +0.353920 0 0 0.180499 0.139798 0.051318 0.218899 0.076447 0.049018 0.084941 +0.392857 +0.353920 0 0 0.254822 0.199965 0.051318 0.420103 0.244558 0.068837 0.095027 +0.250000 +0 0 0.353920 0.175190 0.141568 0.051318 0.204566 0.090073 0.046187 0.058220 +0.250000 +0 0.353920 0 0.228278 0.171651 0.053088 0.407362 0.210051 0.081932 0.103698 +0.392857 +0 0.353920 0 0.215891 0.171651 0.053088 0.439037 0.213237 0.103168 0.109184 +0.392857 +0.353920 0 0 0.185808 0.145107 0.046010 0.350380 0.136790 0.086002 0.104406 +0.500000 +0 0 0.353920 0.118563 0.092019 0.035392 0.067953 0.027783 0.020704 0.024774 +0.250000 +0 0.353920 0 0.226509 0.176960 0.060166 0.396390 0.175367 0.093612 0.113254 +0.392857 +0.353920 0 0 0.054858 0.040701 0.008848 0.008494 0.003185 0.001770 0.002654 +0.142857 +0.353920 0 0 0.184038 0.136259 0.049549 0.233410 0.087949 0.072023 0.056627 +0.285714 +0.353920 0 0 0.210582 0.168112 0.060166 0.388073 0.148292 0.081048 0.123872 +0.571429 +0 0.353920 0 0.182269 0.150416 0.047779 0.251991 0.094320 0.056804 0.088480 +0.357143 +0 0.353920 0 0.214121 0.173421 0.053088 0.401522 0.186339 0.093612 0.104406 +0.285714 +0 0.353920 0 0.192886 0.141568 0.049549 0.275349 0.130242 0.076093 0.063706 +0.285714 +0 0 0.353920 0.162803 0.127411 0.035392 0.164042 0.082286 0.032915 0.040701 +0.214286 +0.353920 0 0 0.207043 0.159264 0.061936 0.399044 0.174305 0.092727 0.118563 +0.357143 +0 0.353920 0 0.199965 0.159264 0.058397 0.345603 0.113962 0.086356 0.130950 +0.392857 +0.353920 0 0 0.251283 0.199965 0.072554 0.777915 0.358167 0.184923 0.193771 +0.357143 +0 0.353920 0 0.219430 0.168112 0.056627 0.468767 0.242966 0.082463 0.115909 +0.285714 +0 0 0.353920 0.159264 0.116793 0.035392 0.145461 0.068837 0.035392 0.034684 +0.178571 +0 0 0.353920 0.153955 0.115024 0.037162 0.118563 0.048133 0.023005 0.040701 +0.250000 +0 0.353920 0 0.210582 0.166342 0.058397 0.359405 0.173775 0.067422 0.102283 +0.285714 +0 0.353920 0 0.203504 0.164573 0.069014 0.352681 0.147584 0.087418 0.166342 +0.250000 +0.353920 0 0 0.194656 0.153955 0.049549 0.269864 0.115732 0.059635 0.091665 +0.321429 +0.353920 0 0 0.215891 0.169881 0.058397 0.440099 0.197310 0.094674 0.131658 +0.250000 +0 0.353920 0 0.222969 0.169881 0.061936 0.483985 0.177491 0.107415 0.182269 +0.571429 +0.353920 0 0 0.194656 0.153955 0.038931 0.285259 0.120864 0.071846 0.076093 +0.285714 +0 0 0.353920 0.086710 0.069014 0.021235 0.033622 0.015749 0.008671 0.009202 +0.107143 +0.353920 0 0 0.097328 0.070784 0.028314 0.035038 0.013095 0.008494 0.010618 +0.142857 +0.353920 0 0 0.242435 0.192886 0.072554 0.634401 0.288268 0.147231 0.163157 +0.285714 +0 0.353920 0 0.157494 0.118563 0.038931 0.154132 0.071669 0.038754 0.042293 +0.178571 +0.353920 0 0 0.238896 0.196425 0.070784 0.509113 0.192886 0.094320 0.164573 +0.714286 +0 0 0.353920 0.130950 0.097328 0.035392 0.099628 0.053265 0.017873 0.024067 +0.142857 +0.353920 0 0 0.219430 0.171651 0.051318 0.354981 0.164750 0.077685 0.099098 +0.357143 +0 0 0.353920 0.072554 0.049549 0.017696 0.016280 0.005840 0.004247 0.004778 +0.178571 +0 0.353920 0 0.173421 0.125641 0.056627 0.311272 0.123341 0.076093 0.099982 +0.250000 +0.353920 0 0 0.224739 0.185808 0.072554 0.525217 0.194656 0.110246 0.152185 +0.678571 +0.353920 0 0 0.212352 0.168112 0.061936 0.475845 0.194302 0.101752 0.127411 +0.357143 +0 0.353920 0 0.187577 0.139798 0.051318 0.274288 0.109007 0.059812 0.090250 +0.214286 +0.353920 0 0 0.194656 0.155725 0.056627 0.348611 0.164396 0.071138 0.095558 +0.250000 +0 0.353920 0 0.203504 0.159264 0.035392 0.329676 0.152539 0.078570 0.083171 +0.392857 +0 0 0.353920 0.150416 0.109715 0.033622 0.124049 0.058220 0.025128 0.035392 +0.250000 +0.353920 0 0 0.159264 0.118563 0.049549 0.169174 0.066006 0.040701 0.056627 +0.357143 +0 0.353920 0 0.192886 0.157494 0.053088 0.283136 0.125111 0.057689 0.073261 +0.285714 +0.353920 0 0 0.233587 0.185808 0.063706 0.523093 0.205804 0.134843 0.131658 +0.321429 +0 0.353920 0 0.203504 0.162803 0.056627 0.390373 0.190409 0.078216 0.088126 +0.285714 +0 0.353920 0 0.215891 0.162803 0.054858 0.338701 0.150593 0.069899 0.093789 +0.250000 +0.353920 0 0 0.205273 0.166342 0.058397 0.368430 0.191117 0.058751 0.098744 +0.285714 +0.353920 0 0 0.238896 0.178729 0.056627 0.542205 0.261901 0.126349 0.135020 +0.357143 +0.353920 0 0 0.187577 0.143337 0.053088 0.294284 0.124580 0.066183 0.089365 +0.321429 +0 0 0.353920 0.130950 0.102637 0.035392 0.088480 0.036277 0.017873 0.030083 +0.321429 +0.353920 0 0 0.171651 0.136259 0.037162 0.196779 0.104760 0.036808 0.047071 +0.214286 +0 0 0.353920 0.207043 0.162803 0.051318 0.299593 0.119979 0.059105 0.104406 +0.321429 +0 0.353920 0 0.141568 0.107945 0.056627 0.130242 0.061228 0.024951 0.037162 +0.214286 +0 0 0.353920 0.176960 0.132720 0.049549 0.194479 0.087772 0.039639 0.056096 +0.214286 +0 0.353920 0 0.238896 0.201734 0.079632 0.561670 0.261547 0.105999 0.153955 +0.321429 +0 0 0.353920 0.139798 0.104406 0.035392 0.103698 0.049549 0.021943 0.029021 +0.214286 +0 0 0.353920 0.067245 0.046010 0.010618 0.010441 0.005486 0.005309 0.003539 +0.178571 +0 0 0.353920 0.152185 0.113254 0.035392 0.122633 0.057866 0.028314 0.031853 +0.214286 +0 0.353920 0 0.226509 0.178729 0.067245 0.437268 0.156963 0.109892 0.129181 +0.464286 +0.353920 0 0 0.203504 0.159264 0.046010 0.277827 0.112546 0.068306 0.080163 +0.285714 +0.353920 0 0 0.182269 0.141568 0.056627 0.289329 0.089011 0.055211 0.106176 +0.785714 +0 0 0.353920 0.191117 0.145107 0.047779 0.248629 0.109715 0.062644 0.070784 +0.250000 +0 0.353920 0 0.116793 0.092019 0.028314 0.070784 0.022120 0.017696 0.024774 +0.285714 +0 0 0.353920 0.146877 0.109715 0.033622 0.120333 0.064059 0.020173 0.029375 +0.178571 +0.353920 0 0 0.228278 0.173421 0.061936 0.467174 0.230933 0.084056 0.119802 +0.357143 +0 0 0.353920 0.084941 0.065475 0.024774 0.025305 0.009202 0.006371 0.008848 +0.178571 +0.353920 0 0 0.118563 0.093789 0.033622 0.069899 0.028137 0.013272 0.024774 +0.285714 +0 0.353920 0 0.244205 0.205273 0.069014 0.586799 0.250575 0.127942 0.166873 +0.321429 +0.353920 0 0 0.205273 0.155725 0.061936 0.433729 0.191294 0.095735 0.115555 +0.321429 +0 0 0.353920 0.104406 0.077862 0.024774 0.044594 0.018227 0.009733 0.012387 +0.178571 +0.353920 0 0 0.237126 0.191117 0.061936 0.524509 0.261547 0.103521 0.129181 +0.321429 +0.353920 0 0 0.208813 0.166342 0.054858 0.415325 0.221023 0.082463 0.091842 +0.285714 +0 0 0.353920 0.153955 0.116793 0.037162 0.118563 0.055211 0.019643 0.037162 +0.250000 +0 0.353920 0 0.238896 0.189347 0.056627 0.499027 0.209520 0.112369 0.148646 +0.535714 +0.353920 0 0 0.235357 0.185808 0.058397 0.473545 0.195187 0.126526 0.123872 +0.607143 +0 0.353920 0 0.253053 0.199965 0.063706 0.633516 0.298708 0.125111 0.190586 +0.285714 +0 0.353920 0 0.173421 0.141568 0.051318 0.234826 0.074323 0.045833 0.089011 +0.428571 +0.353920 0 0 0.184038 0.150416 0.054858 0.273757 0.105114 0.043532 0.090250 +0.571429 +0 0.353920 0 0.205273 0.159264 0.083171 0.379048 0.106176 0.072907 0.139798 +0.464286 +0 0 0.353920 0.231817 0.182269 0.051318 0.442400 0.186339 0.100159 0.111485 +0.500000 +0 0 0.353920 0.136259 0.107945 0.033622 0.089188 0.032384 0.019466 0.031853 +0.464286 +0.353920 0 0 0.191117 0.143337 0.054858 0.343833 0.114139 0.068660 0.102637 +0.642857 +0.353920 0 0 0.244205 0.187577 0.067245 0.564679 0.239958 0.117147 0.169881 +0.321429 +0 0.353920 0 0.123872 0.093789 0.031853 0.065652 0.026367 0.014688 0.021235 +0.214286 +0 0 0.353920 0.176960 0.139798 0.042470 0.190055 0.076624 0.038400 0.063175 +0.285714 +0 0.353920 0 0.219430 0.171651 0.058397 0.412670 0.170943 0.084233 0.125641 +0.428571 +0 0.353920 0 0.178729 0.132720 0.063706 0.201026 0.082286 0.052911 0.060166 +0.392857 +0 0 0.353920 0.198195 0.155725 0.054858 0.287029 0.130419 0.062998 0.083171 +0.357143 +0.353920 0 0 0.230048 0.178729 0.067245 0.450894 0.208813 0.081402 0.138383 +0.357143 +0 0.353920 0 0.153955 0.123872 0.038931 0.135905 0.050611 0.035569 0.044240 +0.428571 +0 0.353920 0 0.214121 0.168112 0.058397 0.373739 0.153247 0.077685 0.126349 +0.285714 +0.353920 0 0 0.203504 0.157494 0.056627 0.296939 0.141745 0.070076 0.084587 +0.285714 +0 0.353920 0 0.178729 0.145107 0.053088 0.227924 0.100867 0.051318 0.074323 +0.357143 +0 0 0.353920 0.141568 0.106176 0.040701 0.112546 0.047248 0.025659 0.033091 +0.178571 +0 0.353920 0 0.214121 0.171651 0.058397 0.357636 0.153955 0.073969 0.106176 +0.642857 +0 0.353920 0 0.226509 0.175190 0.060166 0.434082 0.173421 0.133428 0.101752 +0.357143 +0 0.353920 0 0.245974 0.194656 0.054858 0.654574 0.271456 0.156432 0.147761 +0.321429 +0.353920 0 0 0.215891 0.129181 0.054858 0.380995 0.172713 0.088126 0.095558 +0.285714 +0 0.353920 0 0.228278 0.184038 0.060166 0.423642 0.186162 0.103521 0.112193 +0.357143 +0 0 0.353920 0.196425 0.150416 0.051318 0.279773 0.123341 0.062467 0.079632 +0.285714 +0 0 0.353920 0.210582 0.152185 0.058397 0.348434 0.160149 0.073261 0.096443 +0.250000 +0 0.353920 0 0.127411 0.093789 0.031853 0.073084 0.027606 0.020173 0.021235 +0.250000 +0.353920 0 0 0.205273 0.161033 0.053088 0.358167 0.176429 0.074854 0.100336 +0.321429 +0 0.353920 0 0.233587 0.187577 0.063706 0.537073 0.274819 0.106884 0.141922 +0.321429 +0 0 0.353920 0.176960 0.132720 0.049549 0.197841 0.084056 0.047779 0.059812 +0.285714 +0.353920 0 0 0.221200 0.175190 0.054858 0.371085 0.172359 0.075031 0.113785 +0.357143 +0.353920 0 0 0.201734 0.159264 0.051318 0.336224 0.141745 0.079101 0.100690 +0.321429 +0 0.353920 0 0.207043 0.164573 0.058397 0.331092 0.142807 0.080517 0.091665 +0.285714 +0.353920 0 0 0.191117 0.145107 0.046010 0.198195 0.084056 0.037692 0.061936 +0.214286 +0 0 0.353920 0.061936 0.046010 0.019466 0.011148 0.003716 0.002300 0.004424 +0.142857 +0.353920 0 0 0.214121 0.173421 0.058397 0.397983 0.174128 0.078570 0.125818 +0.357143 +0.353920 0 0 0.178729 0.136259 0.040701 0.170766 0.074323 0.036631 0.054327 +0.321429 +0 0.353920 0 0.184038 0.143337 0.042470 0.221908 0.093612 0.050080 0.064059 +0.357143 +0 0.353920 0 0.233587 0.182269 0.060166 0.473191 0.217661 0.110600 0.126526 +0.321429 +0.353920 0 0 0.219430 0.169881 0.054858 0.444346 0.186516 0.132366 0.112369 +0.357143 +0.353920 0 0 0.256592 0.194656 0.070784 0.534419 0.309149 0.150947 0.179968 +0.285714 +0.353920 0 0 0.169881 0.139798 0.053088 0.241196 0.075916 0.049726 0.088303 +0.607143 +0.353920 0 0 0.187577 0.143337 0.044240 0.230579 0.096089 0.056804 0.065829 +0.214286 +0.353920 0 0 0.178729 0.138029 0.042470 0.231110 0.117324 0.049018 0.059105 +0.285714 +0 0 0.353920 0.175190 0.141568 0.037162 0.213060 0.088657 0.044771 0.067245 +0.250000 +0.353920 0 0 0.139798 0.107945 0.037162 0.099805 0.034507 0.023005 0.033976 +0.285714 +0 0 0.353920 0.191117 0.146877 0.047779 0.250929 0.113077 0.061582 0.065475 +0.285714 +0 0 0.353920 0.178729 0.150416 0.044240 0.216422 0.086710 0.048664 0.070784 +0.285714 +0 0 0.353920 0.203504 0.161033 0.063706 0.301717 0.106707 0.064590 0.106176 +0.428571 +0 0.353920 0 0.176960 0.141568 0.049549 0.234118 0.090780 0.062113 0.077862 +0.250000 +0 0.353920 0 0.199965 0.159264 0.069014 0.355158 0.143691 0.088657 0.100867 +0.500000 +0 0 0.353920 0.208813 0.159264 0.056627 0.316050 0.097151 0.077331 0.122102 +0.464286 +0.353920 0 0 0.198195 0.153955 0.063706 0.314635 0.127411 0.072200 0.088480 +0.357143 +0 0.353920 0 0.224739 0.176960 0.067245 0.456556 0.209874 0.107769 0.124580 +0.250000 +0.353920 0 0 0.203504 0.153955 0.046010 0.357636 0.130242 0.078570 0.113254 +0.321429 +0 0.353920 0 0.210582 0.164573 0.051318 0.391789 0.142276 0.085472 0.109715 +0.392857 +0.353920 0 0 0.226509 0.187577 0.058397 0.420987 0.168643 0.106176 0.123872 +0.357143 +0 0.353920 0 0.217661 0.175190 0.054858 0.382410 0.184038 0.067245 0.113254 +0.285714 +0.353920 0 0 0.215891 0.166342 0.054858 0.365422 0.175898 0.076978 0.098567 +0.285714 +0 0 0.353920 0.153955 0.118563 0.038931 0.145461 0.071669 0.033445 0.035392 +0.214286 +0 0.353920 0 0.231817 0.180499 0.054858 0.456379 0.189170 0.101044 0.145107 +0.357143 +0 0 0.353920 0.143337 0.106176 0.037162 0.107592 0.051495 0.021589 0.028491 +0.178571 +0 0.353920 0 0.173421 0.141568 0.040701 0.201380 0.090603 0.046894 0.051318 +0.285714 +0.353920 0 0 0.240665 0.182269 0.056627 0.436914 0.218722 0.092904 0.115024 +0.357143 +0 0 0.353920 0.150416 0.115024 0.037162 0.140683 0.064236 0.028667 0.041586 +0.214286 +0 0.353920 0 0.157494 0.115024 0.044240 0.161033 0.063175 0.039816 0.049549 +0.285714 +0.353920 0 0 0.237126 0.185808 0.070784 0.615997 0.219607 0.105114 0.232525 +0.357143 +0 0 0.353920 0.169881 0.123872 0.037162 0.224739 0.124580 0.044948 0.047779 +0.178571 +0 0 0.353920 0.203504 0.159264 0.044240 0.276057 0.115909 0.066537 0.083171 +0.285714 +0.353920 0 0 0.261901 0.210582 0.067245 0.822332 0.406831 0.181030 0.178729 +0.357143 +0 0 0.353920 0.161033 0.129181 0.047779 0.156079 0.053619 0.041232 0.051318 +0.285714 +0 0 0.353920 0.157494 0.118563 0.035392 0.173244 0.097151 0.030437 0.039108 +0.214286 +0.353920 0 0 0.127411 0.095558 0.035392 0.076801 0.031322 0.017519 0.025305 +0.178571 +0 0.353920 0 0.228278 0.180499 0.056627 0.439391 0.205804 0.097682 0.111485 +0.285714 +0 0.353920 0 0.198195 0.155725 0.049549 0.328614 0.135374 0.066537 0.106176 +0.357143 +0.353920 0 0 0.251283 0.201734 0.069014 0.477084 0.317997 0.156963 0.160503 +0.357143 +0 0 0.353920 0.123872 0.093789 0.028314 0.067953 0.028667 0.016457 0.018758 +0.178571 +0 0.353920 0 0.224739 0.176960 0.053088 0.486993 0.229871 0.127765 0.109715 +0.321429 +0 0.353920 0 0.205273 0.159264 0.060166 0.343479 0.163334 0.082109 0.087772 +0.285714 +0.353920 0 0 0.189347 0.153955 0.053088 0.256592 0.095204 0.049018 0.088480 +0.285714 +0 0.353920 0 0.208813 0.162803 0.051318 0.350557 0.160326 0.078039 0.097328 +0.250000 +0 0 0.353920 0.097328 0.070784 0.024774 0.033976 0.013095 0.007963 0.010618 +0.178571 +0.353920 0 0 0.210582 0.161033 0.053088 0.313573 0.152716 0.071138 0.078924 +0.321429 +0.353920 0 0 0.268979 0.203504 0.067245 0.647319 0.248982 0.136613 0.198195 +0.464286 +0 0.353920 0 0.155725 0.116793 0.040701 0.141745 0.050611 0.039993 0.042470 +0.250000 +0 0.353920 0 0.205273 0.162803 0.061936 0.412316 0.230048 0.078039 0.108122 +0.285714 +0 0.353920 0 0.134489 0.115024 0.038931 0.109892 0.042470 0.026190 0.037162 +0.321429 +0 0.353920 0 0.164573 0.123872 0.040701 0.149000 0.055388 0.032207 0.047602 +0.285714 +0.353920 0 0 0.230048 0.192886 0.056627 0.439745 0.172359 0.104760 0.169881 +0.500000 +0 0 0.353920 0.184038 0.134489 0.049549 0.185808 0.062821 0.040701 0.065475 +0.357143 +0.353920 0 0 0.199965 0.164573 0.053088 0.399398 0.133428 0.124757 0.116793 +0.535714 +0 0.353920 0 0.203504 0.153955 0.053088 0.364714 0.162980 0.077154 0.127411 +0.250000 +0 0.353920 0 0.203504 0.159264 0.047779 0.293222 0.128119 0.058574 0.083525 +0.321429 +0 0 0.353920 0.166342 0.134489 0.044240 0.171474 0.074677 0.038046 0.050257 +0.178571 +0.353920 0 0 0.240665 0.191117 0.074323 0.632985 0.295346 0.144399 0.154663 +0.428571 +0.353920 0 0 0.162803 0.125641 0.049549 0.173775 0.073261 0.040701 0.061582 +0.321429 +0 0 0.353920 0.157494 0.122102 0.046010 0.144222 0.048310 0.022828 0.063706 +0.357143 +0.353920 0 0 0.260131 0.208813 0.072554 0.738630 0.321713 0.167758 0.221200 +0.392857 +0 0 0.353920 0.109715 0.084941 0.037162 0.102106 0.041763 0.023005 0.029375 +0.178571 +0 0 0.353920 0.159264 0.125641 0.037162 0.157317 0.069722 0.032915 0.047248 +0.250000 +0 0 0.353920 0.192886 0.132720 0.042470 0.192178 0.084056 0.040878 0.061051 +0.250000 +0.353920 0 0 0.210582 0.164573 0.061936 0.394620 0.142099 0.089896 0.138029 +0.428571 +0 0 0.353920 0.178729 0.136259 0.042470 0.212529 0.084587 0.050257 0.065475 +0.214286 +0 0 0.353920 0.132720 0.092019 0.028314 0.073438 0.031853 0.014688 0.024774 +0.178571 +0 0.353920 0 0.249513 0.192886 0.060166 0.559193 0.227747 0.161564 0.093789 +0.357143 +0 0.353920 0 0.203504 0.148646 0.067245 0.624314 0.323483 0.133428 0.144930 +0.321429 +0 0.353920 0 0.212352 0.159264 0.049549 0.296231 0.130950 0.062644 0.085826 +0.321429 +0 0.353920 0 0.244205 0.189347 0.065475 0.646257 0.282074 0.144753 0.176606 +0.357143 +0 0.353920 0 0.203504 0.164573 0.049549 0.339055 0.156432 0.064236 0.095735 +0.285714 +0 0 0.353920 0.113254 0.076093 0.033622 0.107945 0.049549 0.023713 0.031322 +0.178571 +0 0 0.353920 0.090250 0.069014 0.019466 0.025659 0.010087 0.006017 0.007432 +0.107143 +0 0 0.353920 0.219430 0.168112 0.056627 0.321005 0.131304 0.059105 0.108830 +0.357143 +0 0 0.353920 0.222969 0.164573 0.053088 0.365068 0.150947 0.084941 0.115024 +0.357143 +0 0 0.353920 0.168112 0.118563 0.035392 0.156609 0.067068 0.030437 0.047779 +0.285714 +0 0 0.353920 0.111485 0.081402 0.024774 0.040524 0.016280 0.008317 0.013626 +0.142857 +0 0.353920 0 0.228278 0.184038 0.074323 0.549814 0.218015 0.129358 0.167758 +0.535714 +0.353920 0 0 0.233587 0.180499 0.063706 0.446293 0.176960 0.082640 0.119979 +0.321429 +0 0.353920 0 0.238896 0.187577 0.061936 0.511945 0.239781 0.116793 0.137675 +0.321429 +0 0 0.353920 0.219430 0.171651 0.060166 0.427535 0.170058 0.107769 0.116793 +0.500000 +0 0 0.353920 0.058397 0.042470 0.010618 0.007609 0.002477 0.001770 0.001770 +0.071429 +0 0 0.353920 0.146877 0.115024 0.040701 0.116263 0.049726 0.018050 0.037515 +0.392857 +0 0 0.353920 0.063706 0.046010 0.015926 0.009733 0.004424 0.003539 0.003185 +0.071429 +0.353920 0 0 0.212352 0.175190 0.065475 0.394443 0.178906 0.093258 0.129889 +0.357143 +0 0.353920 0 0.226509 0.176960 0.053088 0.425234 0.197841 0.081755 0.118740 +0.285714 +0.353920 0 0 0.196425 0.157494 0.046010 0.305256 0.149531 0.054858 0.084941 +0.285714 +0 0.353920 0 0.201734 0.159264 0.063706 0.321359 0.142099 0.076801 0.090250 +0.285714 +0 0 0.353920 0.159264 0.123872 0.046010 0.193594 0.086710 0.049726 0.049726 +0.250000 +0.353920 0 0 0.214121 0.168112 0.056627 0.571934 0.194479 0.117501 0.120333 +0.607143 +0 0 0.353920 0.090250 0.065475 0.021235 0.031145 0.012918 0.007432 0.008140 +0.142857 +0 0 0.353920 0.168112 0.123872 0.042470 0.173598 0.072023 0.046010 0.047779 +0.214286 +0.353920 0 0 0.226509 0.180499 0.060166 0.485401 0.200672 0.108653 0.144753 +0.321429 +0 0.353920 0 0.141568 0.113254 0.038931 0.124934 0.049726 0.034861 0.035392 +0.250000 +0.353920 0 0 0.185808 0.141568 0.046010 0.293576 0.085118 0.064590 0.097328 +0.357143 +0 0 0.353920 0.141568 0.106176 0.038931 0.105645 0.048664 0.025128 0.026544 +0.178571 +0 0.353920 0 0.208813 0.155725 0.049549 0.356397 0.168997 0.074500 0.103521 +0.285714 +0 0.353920 0 0.222969 0.173421 0.060166 0.430189 0.163688 0.072377 0.109892 +0.321429 +0.353920 0 0 0.217661 0.168112 0.053088 0.367192 0.168466 0.082286 0.100159 +0.285714 +0 0.353920 0 0.143337 0.107945 0.033622 0.123341 0.051495 0.031676 0.035392 +0.285714 +0.353920 0 0 0.194656 0.162803 0.061936 0.307556 0.111662 0.064590 0.113254 +0.321429 +0.353920 0 0 0.063706 0.044240 0.017696 0.008140 0.003008 0.001947 0.003539 +0.071429 +0 0.353920 0 0.210582 0.162803 0.054858 0.370023 0.161564 0.084941 0.109184 +0.321429 +0 0.353920 0 0.210582 0.164573 0.054858 0.363122 0.164396 0.039639 0.107945 +0.392857 +0 0 0.353920 0.120333 0.093789 0.024774 0.065475 0.022120 0.013980 0.024774 +0.214286 +0 0 0.353920 0.079632 0.060166 0.017696 0.018227 0.006724 0.004247 0.006017 +0.107143 +0 0 0.353920 0.088480 0.067245 0.021235 0.027075 0.012741 0.004070 0.008671 +0.178571 +0 0 0.353920 0.111485 0.081402 0.031853 0.045479 0.015219 0.014157 0.014157 +0.214286 +0 0 0.353920 0.205273 0.148646 0.049549 0.248098 0.116263 0.036100 0.079809 +0.285714 +0.353920 0 0 0.189347 0.148646 0.044240 0.270395 0.110423 0.053265 0.093789 +0.357143 +0 0.353920 0 0.267209 0.221200 0.074323 0.886569 0.423465 0.181561 0.240134 +0.357143 +0 0 0.353920 0.145107 0.109715 0.031853 0.118032 0.057866 0.021589 0.032207 +0.178571 +0 0.353920 0 0.166342 0.123872 0.040701 0.172359 0.069191 0.044948 0.054858 +0.250000 +0 0 0.353920 0.150416 0.109715 0.033622 0.108830 0.049195 0.026367 0.032915 +0.214286 +0 0 0.353920 0.201734 0.155725 0.053088 0.267209 0.121217 0.056627 0.079278 +0.250000 +0.353920 0 0 0.074323 0.053088 0.017696 0.013626 0.005486 0.003008 0.003539 +0.071429 +0 0.353920 0 0.176960 0.143337 0.049549 0.238365 0.093789 0.043886 0.088480 +0.607143 +0 0 0.353920 0.097328 0.070784 0.019466 0.032738 0.013449 0.007432 0.009202 +0.107143 +0.353920 0 0 0.194656 0.159264 0.054858 0.279420 0.121394 0.056273 0.088480 +0.392857 +0.353920 0 0 0.171651 0.127411 0.046010 0.191647 0.091842 0.033976 0.056627 +0.321429 +0.353920 0 0 0.199965 0.146877 0.044240 0.236064 0.106884 0.054681 0.065475 +0.214286 +0.353920 0 0 0.187577 0.150416 0.054858 0.279773 0.108653 0.060520 0.091842 +0.285714 +0 0.353920 0 0.212352 0.161033 0.051318 0.314812 0.148292 0.060697 0.095204 +0.321429 +0.353920 0 0 0.219430 0.173421 0.053088 0.422934 0.162980 0.106884 0.125641 +0.285714 +0.353920 0 0 0.169881 0.134489 0.046010 0.218545 0.106176 0.050257 0.061936 +0.392857 +0 0.353920 0 0.130950 0.100867 0.037162 0.095558 0.039816 0.020704 0.029552 +0.285714 +0 0.353920 0 0.210582 0.153955 0.053088 0.318528 0.147761 0.060166 0.093789 +0.250000 +0 0 0.353920 0.159264 0.118563 0.037162 0.128119 0.055742 0.028137 0.038754 +0.214286 +0.353920 0 0 0.153955 0.118563 0.038931 0.155194 0.073438 0.025305 0.046540 +0.214286 +0 0.353920 0 0.254822 0.194656 0.069014 0.733675 0.379225 0.150947 0.177491 +0.285714 +0 0.353920 0 0.231817 0.180499 0.053088 0.369138 0.169704 0.078924 0.107945 +0.285714 +0 0.353920 0 0.238896 0.189347 0.077862 0.567687 0.218545 0.150593 0.160326 +0.464286 +0 0 0.353920 0.153955 0.115024 0.035392 0.129535 0.061582 0.025659 0.038577 +0.214286 +0 0.353920 0 0.217661 0.182269 0.060166 0.403468 0.152362 0.079455 0.148646 +0.535714 +0 0 0.353920 0.099098 0.074323 0.030083 0.037692 0.013803 0.010441 0.010618 +0.107143 +0.353920 0 0 0.212352 0.175190 0.069014 0.374270 0.135905 0.067245 0.132720 +0.892857 +0 0.353920 0 0.203504 0.159264 0.056627 0.377986 0.196779 0.075739 0.091134 +0.321429 +0 0 0.353920 0.178729 0.138029 0.065475 0.216776 0.094497 0.050257 0.060874 +0.214286 +0 0.353920 0 0.228278 0.173421 0.056627 0.404884 0.177491 0.102283 0.112900 +0.250000 +0.353920 0 0 0.150416 0.115024 0.033622 0.133959 0.060343 0.028314 0.035392 +0.214286 +0.353920 0 0 0.176960 0.136259 0.051318 0.269510 0.087064 0.069014 0.072200 +0.464286 +0 0 0.353920 0.157494 0.116793 0.042470 0.122810 0.042470 0.029729 0.037162 +0.357143 +0.353920 0 0 0.189347 0.143337 0.061936 0.449655 0.193948 0.115555 0.119271 +0.428571 +0 0.353920 0 0.212352 0.164573 0.056627 0.400991 0.164927 0.102106 0.105468 +0.357143 +0 0 0.353920 0.166342 0.125641 0.063706 0.169881 0.072730 0.037162 0.053265 +0.250000 +0 0.353920 0 0.214121 0.178729 0.063706 0.507521 0.257830 0.093435 0.152539 +0.357143 +0 0.353920 0 0.192886 0.145107 0.049549 0.262077 0.126172 0.062821 0.071846 +0.285714 +0 0 0.353920 0.214121 0.171651 0.053088 0.438153 0.223500 0.079986 0.116793 +0.357143 +0 0 0.353920 0.155725 0.120333 0.044240 0.173244 0.061405 0.030968 0.070784 +0.428571 +0 0.353920 0 0.230048 0.192886 0.065475 0.532826 0.232348 0.120687 0.152185 +0.321429 +0 0.353920 0 0.210582 0.155725 0.047779 0.341179 0.177137 0.060697 0.091134 +0.321429 +0 0.353920 0 0.198195 0.157494 0.069014 0.347195 0.107945 0.079455 0.118563 +0.535714 +0 0 0.353920 0.153955 0.120333 0.038931 0.144045 0.059635 0.025836 0.046010 +0.321429 +0.353920 0 0 0.208813 0.169881 0.056627 0.446647 0.201203 0.096443 0.118563 +0.285714 +0 0 0.353920 0.168112 0.125641 0.035392 0.178199 0.089719 0.032207 0.049549 +0.250000 +0 0 0.353920 0.194656 0.148646 0.046010 0.225093 0.104052 0.050964 0.062113 +0.250000 +0.353920 0 0 0.208813 0.176960 0.053088 0.404176 0.171651 0.093789 0.122102 +0.285714 +0 0.353920 0 0.238896 0.189347 0.065475 0.551230 0.248982 0.142276 0.141568 +0.357143 +0 0 0.353920 0.199965 0.162803 0.054858 0.308441 0.132897 0.076093 0.088480 +0.321429 +0.353920 0 0 0.178729 0.155725 0.049549 0.292868 0.120864 0.065652 0.084587 +0.250000 +0 0 0.353920 0.148646 0.122102 0.040701 0.121571 0.053619 0.028137 0.040701 +0.285714 +0 0 0.353920 0.146877 0.107945 0.042470 0.118917 0.058397 0.026898 0.028491 +0.214286 +0 0 0.353920 0.171651 0.127411 0.042470 0.182446 0.087241 0.036277 0.052026 +0.250000 +0 0 0.353920 0.146877 0.115024 0.035392 0.113785 0.054327 0.021058 0.037162 +0.321429 +0 0 0.353920 0.185808 0.141568 0.049549 0.214298 0.092196 0.038223 0.074323 +0.285714 +0 0.353920 0 0.215891 0.169881 0.067245 0.458503 0.184569 0.114139 0.129181 +0.392857 +0.353920 0 0 0.118563 0.090250 0.026544 0.057866 0.021766 0.012210 0.020173 +0.250000 +0 0.353920 0 0.222969 0.175190 0.067245 0.412493 0.189701 0.074854 0.057512 +0.321429 +0 0 0.353920 0.182269 0.141568 0.049549 0.253583 0.123695 0.056450 0.063175 +0.250000 +0.353920 0 0 0.253053 0.184038 0.063706 0.566271 0.250575 0.124757 0.157494 +0.392857 +0 0 0.353920 0.180499 0.161033 0.047779 0.242612 0.101752 0.054504 0.072023 +0.285714 +0 0.353920 0 0.230048 0.184038 0.069014 0.453371 0.211821 0.087064 0.135374 +0.321429 +0 0 0.353920 0.164573 0.125641 0.038931 0.167758 0.081402 0.035569 0.042470 +0.214286 +0.353920 0 0 0.194656 0.159264 0.060166 0.286675 0.112193 0.055565 0.077862 +0.357143 +0 0 0.353920 0.130950 0.102637 0.028314 0.090073 0.038223 0.019996 0.024774 +0.178571 +0.353920 0 0 0.058397 0.044240 0.014157 0.008671 0.003362 0.001593 0.002831 +0.107143 +0.353920 0 0 0.150416 0.107945 0.038931 0.127057 0.061228 0.030968 0.034507 +0.285714 +0 0.353920 0 0.221200 0.182269 0.054858 0.411786 0.172536 0.091665 0.125641 +0.357143 +0 0 0.353920 0.184038 0.146877 0.049549 0.225978 0.104229 0.049726 0.060520 +0.250000 +0 0 0.353920 0.194656 0.150416 0.046010 0.235003 0.095381 0.057689 0.074323 +0.250000 +0 0 0.353920 0.166342 0.132720 0.037162 0.165634 0.058928 0.038223 0.060166 +0.321429 +0.353920 0 0 0.175190 0.136259 0.047779 0.224208 0.070784 0.043355 0.092019 +0.464286 +0.353920 0 0 0.231817 0.208813 0.070784 0.546983 0.231463 0.133251 0.146877 +0.357143 +0 0.353920 0 0.276057 0.222969 0.076093 0.940365 0.526632 0.176429 0.207397 +0.357143 +0.353920 0 0 0.205273 0.159264 0.056627 0.307025 0.139267 0.078216 0.076093 +0.285714 +0.353920 0 0 0.235357 0.182269 0.070784 0.449301 0.181030 0.094674 0.154309 +0.392857 +0 0 0.353920 0.168112 0.127411 0.038931 0.161210 0.062644 0.034153 0.051318 +0.285714 +0.353920 0 0 0.244205 0.185808 0.070784 0.630862 0.324367 0.117678 0.163157 +0.392857 +0 0 0.353920 0.176960 0.130950 0.040701 0.203327 0.108299 0.039639 0.049903 +0.214286 +0 0.353920 0 0.256592 0.205273 0.065475 0.539020 0.284728 0.127234 0.154840 +0.285714 +0 0 0.353920 0.148646 0.113254 0.038931 0.128296 0.061582 0.022474 0.037162 +0.214286 +0.353920 0 0 0.235357 0.185808 0.054858 0.480446 0.188462 0.107769 0.158733 +0.321429 +0 0 0.353920 0.148646 0.113254 0.038931 0.109361 0.040701 0.022828 0.033445 +0.178571 +0 0 0.353920 0.065475 0.132720 0.042470 0.164396 0.069368 0.036985 0.053088 +0.178571 +0 0.353920 0 0.145107 0.115024 0.037162 0.128650 0.056273 0.027252 0.042470 +0.321429 +0 0.353920 0 0.212352 0.168112 0.054858 0.374801 0.156079 0.067245 0.138029 +0.357143 +0 0 0.353920 0.159264 0.116793 0.038931 0.130419 0.056627 0.031322 0.036100 +0.178571 +0 0 0.353920 0.125641 0.092019 0.031853 0.070253 0.025305 0.017519 0.020527 +0.214286 +0.353920 0 0 0.221200 0.166342 0.051318 0.631924 0.238896 0.087418 0.114847 +0.428571 +0 0 0.353920 0.143337 0.106176 0.042470 0.114670 0.044771 0.024774 0.038931 +0.214286 +0 0.353920 0 0.191117 0.146877 0.061936 0.317643 0.097328 0.085295 0.097328 +0.464286 +0 0 0.353920 0.145107 0.106176 0.035392 0.099805 0.044417 0.020173 0.030968 +0.214286 +0.353920 0 0 0.129181 0.104406 0.028314 0.090426 0.034330 0.015219 0.035392 +0.214286 +0 0 0.353920 0.122102 0.100867 0.035392 0.078747 0.030614 0.020527 0.026544 +0.250000 +0 0.353920 0 0.182269 0.141568 0.040701 0.204566 0.067599 0.051141 0.060166 +0.285714 +0 0 0.353920 0.184038 0.134489 0.040701 0.235180 0.116263 0.060166 0.050434 +0.214286 +0 0 0.353920 0.150416 0.120333 0.035392 0.131304 0.053088 0.030614 0.040701 +0.250000 +0 0.353920 0 0.157494 0.125641 0.053088 0.171651 0.064059 0.044240 0.054858 +0.357143 +0 0.353920 0 0.210582 0.166342 0.088480 0.454079 0.163511 0.087595 0.157494 +0.464286 +0.353920 0 0 0.221200 0.169881 0.061936 0.376924 0.172182 0.091665 0.100867 +0.321429 +0.353920 0 0 0.162803 0.120333 0.047779 0.175190 0.058574 0.041409 0.065475 +0.321429 +0.353920 0 0 0.164573 0.125641 0.044240 0.185985 0.071669 0.047779 0.051318 +0.428571 +0.353920 0 0 0.120333 0.090250 0.033622 0.075385 0.028667 0.012033 0.024774 +0.285714 +0.353920 0 0 0.168112 0.129181 0.049549 0.218545 0.071492 0.051141 0.067245 +0.535714 +0 0 0.353920 0.099098 0.074323 0.019466 0.037515 0.014688 0.009379 0.010972 +0.142857 +0 0.353920 0 0.214121 0.169881 0.053088 0.381879 0.159441 0.100336 0.103698 +0.321429 +0.353920 0 0 0.194656 0.150416 0.054858 0.324721 0.098213 0.086002 0.118563 +0.428571 +0.353920 0 0 0.247744 0.199965 0.063706 0.619713 0.316758 0.118740 0.157848 +0.285714 +0.353920 0 0 0.161033 0.125641 0.047779 0.167935 0.066006 0.033091 0.059459 +0.428571 +0 0 0.353920 0.178729 0.134489 0.042470 0.210228 0.091842 0.050787 0.063706 +0.214286 +0.353920 0 0 0.194656 0.150416 0.056627 0.280658 0.121394 0.072023 0.076093 +0.285714 +0 0 0.353920 0.169881 0.138029 0.053088 0.222085 0.097682 0.047425 0.065475 +0.428571 +0 0.353920 0 0.233587 0.182269 0.063706 0.539020 0.191117 0.119094 0.196425 +0.535714 +0 0 0.353920 0.182269 0.141568 0.047779 0.225093 0.108122 0.043001 0.065652 +0.285714 +0.353920 0 0 0.210582 0.159264 0.049549 0.296585 0.140329 0.068660 0.076801 +0.321429 +0.353920 0 0 0.217661 0.168112 0.054858 0.379933 0.154840 0.091488 0.109715 +0.357143 +0 0 0.353920 0.176960 0.136259 0.042470 0.182623 0.069722 0.046187 0.058397 +0.250000 +0 0 0.353920 0.175190 0.134489 0.051318 0.176960 0.072554 0.052380 0.053265 +0.250000 +0.353920 0 0 0.245974 0.194656 0.076093 0.692444 0.252168 0.191471 0.208813 +0.464286 +0.353920 0 0 0.212352 0.166342 0.053088 0.328437 0.149531 0.064767 0.097328 +0.250000 +0 0.353920 0 0.251283 0.203504 0.061936 0.550345 0.228809 0.131127 0.184038 +0.500000 +0 0.353920 0 0.219430 0.168112 0.061936 0.359759 0.154132 0.075739 0.115024 +0.321429 +0 0.353920 0 0.199965 0.159264 0.065475 0.328614 0.106884 0.063882 0.093789 +0.392857 +0.353920 0 0 0.205273 0.162803 0.046010 0.325960 0.126349 0.064059 0.102637 +0.428571 +0 0 0.353920 0.171651 0.125641 0.042470 0.179968 0.074323 0.043178 0.047779 +0.285714 +0.353920 0 0 0.242435 0.194656 0.067245 0.667139 0.314988 0.145107 0.173244 +0.321429 +0 0.353920 0 0.221200 0.166342 0.051318 0.348257 0.168112 0.070784 0.093789 +0.357143 +0.353920 0 0 0.210582 0.168112 0.056627 0.466289 0.144399 0.082817 0.205273 +0.714286 +0.353920 0 0 0.214121 0.168112 0.061936 0.443284 0.197310 0.108122 0.121394 +0.285714 +0 0 0.353920 0.176960 0.134489 0.044240 0.183684 0.087949 0.040170 0.047425 +0.250000 +0 0 0.353920 0.155725 0.122102 0.042470 0.172359 0.069545 0.038223 0.056627 +0.464286 +0 0 0.353920 0.201734 0.152185 0.051318 0.294815 0.125288 0.050964 0.099628 +0.321429 +0 0 0.353920 0.162803 0.123872 0.038931 0.165457 0.075208 0.035038 0.048664 +0.214286 +0 0.353920 0 0.146877 0.107945 0.037162 0.127588 0.042470 0.029021 0.035392 +0.321429 +0.353920 0 0 0.256592 0.201734 0.067245 0.902495 0.378871 0.170943 0.256592 +0.464286 +0.353920 0 0 0.217661 0.175190 0.070784 0.431428 0.199611 0.080340 0.137498 +0.321429 +0.353920 0 0 0.222969 0.187577 0.061936 0.500265 0.236064 0.104229 0.125818 +0.428571 +0 0 0.353920 0.138029 0.100867 0.035392 0.099451 0.045125 0.021943 0.027252 +0.214286 +0.353920 0 0 0.233587 0.192886 0.065475 0.467174 0.187754 0.093258 0.161033 +0.535714 +0 0.353920 0 0.212352 0.164573 0.058397 0.314104 0.109361 0.087064 0.092727 +0.392857 +0.353920 0 0 0.061936 0.047779 0.014157 0.010795 0.003893 0.002654 0.003539 +0.142857 +0 0.353920 0 0.175190 0.141568 0.054858 0.228101 0.085649 0.046894 0.072554 +0.571429 +0.353920 0 0 0.148646 0.115024 0.040701 0.102106 0.035392 0.020173 0.040170 +0.500000 +0 0.353920 0 0.217661 0.176960 0.058397 0.416386 0.172713 0.086356 0.122102 +0.571429 +0 0 0.353920 0.210582 0.168112 0.054858 0.348257 0.172182 0.065121 0.097505 +0.321429 +0 0 0.353920 0.107945 0.086710 0.026544 0.055211 0.023890 0.013449 0.015926 +0.214286 +0 0 0.353920 0.138029 0.106176 0.037162 0.091665 0.033799 0.013449 0.030083 +0.250000 +0 0.353920 0 0.198195 0.152185 0.053088 0.309503 0.160326 0.056981 0.077862 +0.250000 +0 0 0.353920 0.221200 0.164573 0.054858 0.344010 0.142984 0.065298 0.123872 +0.464286 +0.353920 0 0 0.221200 0.173421 0.061936 0.471598 0.201911 0.095912 0.143337 +0.321429 +0 0 0.353920 0.104406 0.079632 0.031853 0.039108 0.014334 0.008671 0.011325 +0.214286 +0.353920 0 0 0.247744 0.189347 0.056627 0.610688 0.222969 0.093258 0.191117 +0.642857 +0.353920 0 0 0.199965 0.161033 0.053088 0.339586 0.161564 0.084764 0.081402 +0.285714 +0 0 0.353920 0.129181 0.095558 0.030083 0.069722 0.028844 0.011502 0.023005 +0.178571 +0.353920 0 0 0.203504 0.164573 0.042470 0.372854 0.182623 0.077331 0.083171 +0.285714 +0 0 0.353920 0.191117 0.148646 0.049549 0.257123 0.113431 0.051141 0.081048 +0.285714 +0.353920 0 0 0.233587 0.171651 0.054858 0.434436 0.215891 0.096974 0.106176 +0.250000 +0 0 0.353920 0.159264 0.118563 0.038931 0.148469 0.064059 0.030083 0.047602 +0.214286 +0 0 0.353920 0.109715 0.081402 0.024774 0.044063 0.017873 0.009379 0.013449 +0.178571 +0.353920 0 0 0.196425 0.161033 0.047779 0.296231 0.135197 0.060520 0.083171 +0.285714 +0 0.353920 0 0.230048 0.180499 0.061936 0.477792 0.203504 0.111662 0.137498 +0.321429 +0.353920 0 0 0.212352 0.166342 0.054858 0.366661 0.154840 0.069368 0.115024 +0.678571 +0 0 0.353920 0.161033 0.115024 0.047779 0.290214 0.141745 0.060697 0.074677 +0.250000 +0.353920 0 0 0.217661 0.187577 0.060166 0.396390 0.204389 0.074146 0.101221 +0.285714 +0 0 0.353920 0.198195 0.153955 0.047779 0.254822 0.116440 0.036454 0.088834 +0.357143 +0 0 0.353920 0.102637 0.076093 0.023005 0.034861 0.015042 0.007432 0.010972 +0.142857 +0 0.353920 0 0.219430 0.169881 0.081402 0.387011 0.142630 0.086710 0.125641 +0.464286 +0.353920 0 0 0.217661 0.168112 0.060166 0.399575 0.169704 0.106884 0.106176 +0.321429 +0 0.353920 0 0.214121 0.175190 0.067245 0.508583 0.165988 0.093966 0.145107 +0.500000 +0.353920 0 0 0.228278 0.176960 0.067245 0.434967 0.185454 0.098390 0.139798 +0.571429 +0 0 0.353920 0.074323 0.060166 0.015926 0.016811 0.006724 0.003893 0.004601 +0.142857 +0 0.353920 0 0.244205 0.198195 0.076093 0.608388 0.240665 0.105822 0.166342 +0.571429 +0 0 0.353920 0.097328 0.072554 0.026544 0.039108 0.015926 0.010087 0.012387 +0.178571 +0 0 0.353920 0.093789 0.069014 0.021235 0.032561 0.012210 0.008848 0.008671 +0.178571 +0 0.353920 0 0.199965 0.161033 0.053088 0.290391 0.129181 0.056273 0.092019 +0.607143 +0.353920 0 0 0.176960 0.125641 0.049549 0.186870 0.075208 0.052734 0.049549 +0.285714 +0.353920 0 0 0.205273 0.162803 0.053088 0.359759 0.173775 0.078216 0.093789 +0.285714 +0 0.353920 0 0.233587 0.187577 0.065475 0.477261 0.174482 0.086710 0.173421 +0.392857 +0 0 0.353920 0.127411 0.099098 0.031853 0.079809 0.031322 0.014157 0.031853 +0.250000 +0 0.353920 0 0.184038 0.141568 0.042470 0.230579 0.092373 0.071315 0.058397 +0.500000 +0.353920 0 0 0.226509 0.182269 0.028314 0.368784 0.182269 0.062113 0.061936 +0.321429 +0 0 0.353920 0.180499 0.136259 0.053088 0.221200 0.109538 0.042116 0.061051 +0.250000 +0 0.353920 0 0.189347 0.146877 0.060166 0.311095 0.104406 0.069545 0.100867 +0.321429 +0.353920 0 0 0.222969 0.178729 0.054858 0.391081 0.174128 0.079986 0.115024 +0.357143 +0 0.353920 0 0.217661 0.168112 0.060166 0.373385 0.192178 0.087064 0.082994 +0.285714 +0 0.353920 0 0.215891 0.166342 0.056627 0.359936 0.150770 0.079809 0.113254 +0.392857 +0 0.353920 0 0.122102 0.090250 0.035392 0.069722 0.025128 0.018050 0.021235 +0.285714 +0 0 0.353920 0.221200 0.171651 0.056627 0.407008 0.185985 0.090957 0.117324 +0.357143 +0.353920 0 0 0.205273 0.161033 0.069014 0.657937 0.334454 0.150770 0.156079 +0.285714 +0 0.353920 0 0.254822 0.198195 0.061936 0.611042 0.225447 0.120864 0.185808 +0.571429 +0 0.353920 0 0.166342 0.132720 0.037162 0.181561 0.082109 0.050257 0.046010 +0.357143 +0.353920 0 0 0.180499 0.139798 0.044240 0.205450 0.086356 0.047248 0.066537 +0.357143 +0.353920 0 0 0.222969 0.180499 0.060166 0.420634 0.173952 0.108476 0.123164 +0.214286 +0.353920 0 0 0.162803 0.122102 0.038931 0.162626 0.083171 0.031322 0.041055 +0.214286 +0 0.353920 0 0.224739 0.178729 0.051318 0.401522 0.178729 0.093966 0.111485 +0.321429 +0 0 0.353920 0.127411 0.095558 0.031853 0.077508 0.034330 0.014334 0.023005 +0.178571 +0.353920 0 0 0.238896 0.180499 0.060166 0.540435 0.286321 0.112546 0.120687 +0.357143 +0 0 0.353920 0.189347 0.138029 0.044240 0.211998 0.091842 0.052734 0.059812 +0.285714 +0 0.353920 0 0.180499 0.130950 0.074323 0.418687 0.179791 0.103345 0.121394 +0.285714 +0.353920 0 0 0.254822 0.203504 0.081402 0.803221 0.312688 0.141037 0.235357 +0.535714 +0 0.353920 0 0.230048 0.192886 0.061936 0.539551 0.208813 0.115378 0.175190 +0.321429 +0 0 0.353920 0.100867 0.072554 0.024774 0.037515 0.013803 0.010087 0.012033 +0.142857 +0.353920 0 0 0.212352 0.166342 0.056627 0.358167 0.156079 0.071315 0.107945 +0.321429 +0 0.353920 0 0.164573 0.123872 0.044240 0.170589 0.081402 0.037515 0.038754 +0.178571 +0.353920 0 0 0.146877 0.113254 0.035392 0.106353 0.043001 0.020350 0.036808 +0.357143 +0 0.353920 0 0.249513 0.198195 0.060166 0.515838 0.214829 0.112546 0.155725 +0.357143 +0.353920 0 0 0.224739 0.176960 0.058397 0.450540 0.231286 0.075385 0.129181 +0.392857 +0 0.353920 0 0.231817 0.162803 0.056627 0.528756 0.244028 0.117147 0.064590 +0.285714 +0 0 0.353920 0.169881 0.125641 0.044240 0.174836 0.084410 0.029552 0.053088 +0.285714 +0 0.353920 0 0.254822 0.205273 0.069014 0.744293 0.363299 0.169881 0.190232 +0.321429 +0.353920 0 0 0.162803 0.125641 0.038931 0.146877 0.076093 0.029021 0.046010 +0.392857 +0.353920 0 0 0.182269 0.138029 0.054858 0.252168 0.130773 0.048487 0.054858 +0.214286 +0 0 0.353920 0.207043 0.159264 0.047779 0.302601 0.134313 0.066183 0.092019 +0.285714 +0 0 0.353920 0.222969 0.168112 0.051318 0.375332 0.182800 0.077685 0.099098 +0.321429 +0.353920 0 0 0.173421 0.136259 0.044240 0.229694 0.113254 0.043886 0.059989 +0.250000 +0.353920 0 0 0.198195 0.148646 0.053088 0.309857 0.155725 0.069545 0.081932 +0.250000 +0 0.353920 0 0.196425 0.148646 0.049549 0.307202 0.116793 0.086002 0.074323 +0.428571 +0 0.353920 0 0.214121 0.161033 0.051318 0.345956 0.165634 0.062821 0.097328 +0.285714 +0.353920 0 0 0.201734 0.161033 0.061936 0.360998 0.170058 0.075916 0.102637 +0.285714 +0.353920 0 0 0.162803 0.127411 0.044240 0.193594 0.076624 0.039108 0.067245 +0.250000 +0 0 0.353920 0.176960 0.134489 0.054858 0.236241 0.097151 0.055211 0.063706 +0.392857 +0 0 0.353920 0.120333 0.092019 0.031853 0.063352 0.026898 0.018581 0.019466 +0.178571 +0 0.353920 0 0.153955 0.123872 0.042470 0.162272 0.067953 0.035392 0.046010 +0.357143 +0 0.353920 0 0.207043 0.146877 0.054858 0.247213 0.106176 0.051672 0.069014 +0.392857 +0 0 0.353920 0.185808 0.138029 0.037162 0.200672 0.101752 0.038046 0.056627 +0.250000 +0 0.353920 0 0.162803 0.129181 0.040701 0.158733 0.058397 0.029375 0.060166 +0.464286 +0 0.353920 0 0.233587 0.178729 0.067245 0.497080 0.221377 0.119448 0.132543 +0.285714 +0 0.353920 0 0.194656 0.155725 0.053088 0.316581 0.111308 0.053442 0.113254 +0.642857 +0.353920 0 0 0.233587 0.176960 0.058397 0.466997 0.236064 0.095204 0.120687 +0.285714 +0 0 0.353920 0.123872 0.088480 0.026544 0.059989 0.029552 0.012564 0.014511 +0.178571 +0 0.353920 0 0.189347 0.148646 0.053088 0.260662 0.098567 0.065829 0.076093 +0.464286 +0.353920 0 0 0.230048 0.185808 0.067245 0.484339 0.211467 0.104760 0.141568 +0.357143 +0.353920 0 0 0.203504 0.159264 0.054858 0.335516 0.151832 0.072907 0.091665 +0.214286 +0 0 0.353920 0.084941 0.063706 0.019466 0.019643 0.008317 0.004601 0.006371 +0.107143 +0 0 0.353920 0.125641 0.095558 0.035392 0.079809 0.038931 0.014865 0.022651 +0.214286 +0 0.353920 0 0.178729 0.138029 0.040701 0.233587 0.107769 0.055035 0.061936 +0.250000 +0.353920 0 0 0.265440 0.194656 0.063706 0.669970 0.333392 0.140506 0.157494 +0.357143 +0 0.353920 0 0.171651 0.139798 0.056627 0.233587 0.087595 0.045302 0.083171 +0.464286 +0 0 0.353920 0.097328 0.072554 0.024774 0.037339 0.175190 0.006724 0.011148 +0.142857 +0 0 0.353920 0.134489 0.100867 0.033622 0.086002 0.031676 0.023536 0.026544 +0.214286 +0.353920 0 0 0.175190 0.146877 0.058397 0.264909 0.093435 0.047425 0.100867 +0.428571 +0 0 0.353920 0.169881 0.123872 0.047779 0.193417 0.096797 0.035215 0.055919 +0.250000 +0 0 0.353920 0.194656 0.150416 0.053088 0.271279 0.119979 0.062290 0.074323 +0.250000 +0.353920 0 0 0.242435 0.184038 0.053088 0.486109 0.254291 0.103698 0.113254 +0.357143 +0 0.353920 0 0.182269 0.152185 0.049549 0.295169 0.129889 0.070784 0.081402 +0.250000 +0 0 0.353920 0.205273 0.155725 0.051318 0.279773 0.124757 0.058220 0.085649 +0.321429 +0 0.353920 0 0.240665 0.194656 0.070784 0.564856 0.185808 0.144222 0.207043 +0.714286 +0.353920 0 0 0.208813 0.153955 0.058397 0.345603 0.160149 0.084764 0.083171 +0.285714 +0 0 0.353920 0.171651 0.125641 0.046010 0.205627 0.086710 0.046717 0.059459 +0.392857 +0.353920 0 0 0.260131 0.207043 0.065475 0.751725 0.336932 0.194656 0.176960 +0.357143 +0 0.353920 0 0.222969 0.169881 0.056627 0.424350 0.186339 0.118563 0.111485 +0.357143 +0.353920 0 0 0.212352 0.173421 0.074323 0.703415 0.355689 0.148292 0.173775 +0.321429 +0 0.353920 0 0.185808 0.150416 0.049549 0.309149 0.148823 0.064413 0.078747 +0.321429 +0.353920 0 0 0.222969 0.171651 0.054858 0.452309 0.225447 0.097328 0.109715 +0.250000 +0 0 0.353920 0.129181 0.090250 0.028314 0.070253 0.027783 0.012210 0.018758 +0.142857 +0 0.353920 0 0.208813 0.164573 0.056627 0.389489 0.179083 0.089365 0.104406 +0.428571 +0 0 0.353920 0.168112 0.134489 0.042470 0.156079 0.063175 0.031322 0.053265 +0.250000 +0.353920 0 0 0.187577 0.148646 0.058397 0.316581 0.112900 0.084587 0.086710 +0.357143 +0 0 0.353920 0.199965 0.155725 0.047779 0.271810 0.116970 0.049018 0.087595 +0.285714 +0 0 0.353920 0.187577 0.148646 0.054858 0.286675 0.167227 0.039285 0.067953 +0.321429 +0 0 0.353920 0.166342 0.132720 0.037162 0.156079 0.059105 0.030614 0.051318 +0.321429 +0 0 0.353920 0.176960 0.132720 0.042470 0.187223 0.079101 0.043532 0.056627 +0.250000 +0 0.353920 0 0.191117 0.136259 0.049549 0.270925 0.115555 0.041055 0.083702 +0.321429 +0 0 0.353920 0.118563 0.084941 0.033622 0.060166 0.021943 0.013803 0.019466 +0.285714 +0.353920 0 0 0.184038 0.150416 0.044240 0.279597 0.131658 0.072554 0.067245 +0.250000 +0.353920 0 0 0.233587 0.187577 0.069014 0.548752 0.230225 0.116617 0.175190 +0.321429 +0 0.353920 0 0.251283 0.196425 0.060166 0.520262 0.190232 0.134489 0.152539 +0.392857 +0 0.353920 0 0.208813 0.168112 0.054858 0.343833 0.131304 0.083171 0.099098 +0.357143 +0 0.353920 0 0.203504 0.162803 0.058397 0.376924 0.176429 0.075916 0.099628 +0.250000 +0 0.353920 0 0.205273 0.162803 0.053088 0.352327 0.151832 0.075031 0.092019 +0.642857 +0 0.353920 0 0.141568 0.118563 0.040701 0.153424 0.074500 0.042647 0.042470 +0.321429 +0 0.353920 0 0.136259 0.111485 0.038931 0.101221 0.043355 0.022474 0.029552 +0.321429 +0 0 0.353920 0.166342 0.125641 0.042470 0.139090 0.059105 0.031322 0.040701 +0.250000 +0 0.353920 0 0.237126 0.192886 0.061936 0.604141 0.247567 0.136967 0.203504 +0.428571 +0 0 0.353920 0.143337 0.109715 0.033622 0.121217 0.063175 0.022651 0.030260 +0.250000 +0.353920 0 0 0.226509 0.184038 0.070784 0.497965 0.200319 0.107592 0.161033 +0.571429 +0 0 0.353920 0.097328 0.070784 0.023005 0.041232 0.019996 0.004601 0.012387 +0.214286 +0.353920 0 0 0.159264 0.125641 0.042470 0.139975 0.052026 0.027075 0.051318 +0.285714 +0 0.353920 0 0.169881 0.134489 0.051318 0.208813 0.082109 0.049903 0.081402 +0.392857 +0.353920 0 0 0.221200 0.175190 0.061936 0.443815 0.205804 0.101221 0.112723 +0.285714 +0 0.353920 0 0.203504 0.150416 0.053088 0.310211 0.161033 0.063706 0.080694 +0.250000 +0.353920 0 0 0.136259 0.090250 0.035392 0.112369 0.048487 0.024067 0.032561 +0.250000 +0.353920 0 0 0.166342 0.132720 0.042470 0.205450 0.094143 0.033091 0.059812 +0.250000 +0 0 0.353920 0.100867 0.074323 0.024774 0.038577 0.015572 0.009379 0.011679 +0.142857 +0 0 0.353920 0.176960 0.136259 0.038931 0.210936 0.106707 0.036808 0.053442 +0.250000 +0.353920 0 0 0.182269 0.139798 0.042470 0.228632 0.100867 0.048310 0.060874 +0.285714 +0 0.353920 0 0.208813 0.162803 0.056627 0.357990 0.157494 0.092550 0.090780 +0.250000 +0.353920 0 0 0.228278 0.180499 0.067245 0.521855 0.214121 0.122102 0.169881 +0.285714 +0.353920 0 0 0.178729 0.136259 0.037162 0.195541 0.084587 0.044063 0.055035 +0.285714 +0 0 0.353920 0.164573 0.132720 0.042470 0.166696 0.078570 0.042116 0.049549 +0.285714 +0.353920 0 0 0.198195 0.162803 0.083171 0.297116 0.117678 0.055565 0.107945 +0.392857 +0 0 0.353920 0.049549 0.037162 0.012387 0.004955 0.001947 0.000885 0.001416 +0.071429 +0 0.353920 0 0.203504 0.157494 0.047779 0.312511 0.134843 0.072023 0.092019 +0.357143 +0.353920 0 0 0.217661 0.169881 0.061936 0.395682 0.157848 0.113077 0.106176 +0.285714 +0.353920 0 0 0.141568 0.111485 0.037162 0.101575 0.040170 0.013095 0.039993 +0.321429 +0 0 0.353920 0.153955 0.115024 0.035392 0.121041 0.047248 0.029552 0.037162 +0.178571 +0.353920 0 0 0.196425 0.155725 0.053088 0.296585 0.147054 0.051672 0.081402 +0.250000 +0 0.353920 0 0.199965 0.155725 0.056627 0.323837 0.125288 0.068483 0.113254 +0.392857 +0 0 0.353920 0.169881 0.134489 0.044240 0.185100 0.074500 0.036985 0.061936 +0.500000 +0 0.353920 0 0.205273 0.152185 0.060166 0.523801 0.231286 0.114670 0.147054 +0.321429 +0.353920 0 0 0.196425 0.155725 0.047779 0.319412 0.134666 0.074500 0.099098 +0.428571 +0.353920 0 0 0.212352 0.164573 0.070784 0.445585 0.226686 0.070253 0.126349 +0.285714 +0 0 0.353920 0.187577 0.150416 0.046010 0.276411 0.138206 0.070961 0.076093 +0.285714 +0.353920 0 0 0.205273 0.162803 0.058397 0.434436 0.167404 0.069545 0.153955 +0.535714 +0 0.353920 0 0.182269 0.143337 0.042470 0.228632 0.102460 0.049726 0.062644 +0.321429 +0 0 0.353920 0.120333 0.088480 0.031853 0.063352 0.027429 0.011679 0.019466 +0.178571 +0 0.353920 0 0.228278 0.178729 0.058397 0.506990 0.242081 0.109007 0.118917 +0.250000 +0 0.353920 0 0.207043 0.162803 0.060166 0.383472 0.132543 0.115378 0.115024 +0.464286 +0 0.353920 0 0.198195 0.161033 0.067245 0.252699 0.100159 0.045656 0.097328 +0.285714 +0 0 0.353920 0.076093 0.054858 0.021235 0.018581 0.007432 0.005840 0.005309 +0.142857 +0 0.353920 0 0.228278 0.173421 0.076093 0.497611 0.150947 0.080871 0.180499 +0.857143 +0.353920 0 0 0.166342 0.123872 0.035392 0.168997 0.066714 0.031322 0.061936 +0.250000 +0.353920 0 0 0.212352 0.168112 0.072554 0.416210 0.185985 0.101752 0.109007 +0.285714 +0 0.353920 0 0.219430 0.184038 0.079632 0.418864 0.133782 0.095558 0.139798 +0.785714 +0.353920 0 0 0.203504 0.159264 0.058397 0.326137 0.115909 0.079632 0.090603 +0.392857 +0.353920 0 0 0.168112 0.132720 0.042470 0.199257 0.089365 0.042647 0.065475 +0.321429 +0.353920 0 0 0.228278 0.180499 0.056627 0.418864 0.196779 0.084410 0.122102 +0.357143 +0.353920 0 0 0.152185 0.123872 0.038931 0.143691 0.059282 0.028667 0.047779 +0.321429 +0 0.353920 0 0.134489 0.107945 0.037162 0.099451 0.036985 0.021766 0.031853 +0.392857 +0 0.353920 0 0.152185 0.115024 0.042470 0.157494 0.058397 0.035215 0.054858 +0.250000 +0 0.353920 0 0.231817 0.192886 0.065475 0.622545 0.242966 0.110777 0.193594 +0.357143 +0 0 0.353920 0.201734 0.159264 0.047779 0.281012 0.135020 0.050080 0.086710 +0.250000 +0.353920 0 0 0.148646 0.120333 0.040701 0.149177 0.061936 0.032915 0.047779 +0.250000 +0 0 0.353920 0.185808 0.136259 0.046010 0.214829 0.083348 0.044240 0.069014 +0.250000 +0 0.353920 0 0.185808 0.138029 0.047779 0.212529 0.080163 0.046363 0.074323 +0.535714 +0 0 0.353920 0.155725 0.118563 0.040701 0.149177 0.061228 0.027075 0.039993 +0.214286 +0 0.353920 0 0.261901 0.203504 0.077862 0.712086 0.315519 0.186339 0.166696 +0.392857 +0.353920 0 0 0.130950 0.102637 0.031853 0.085295 0.038931 0.015926 0.024420 +0.321429 +0.353920 0 0 0.164573 0.127411 0.037162 0.172713 0.066537 0.029906 0.067245 +0.321429 +0.353920 0 0 0.143337 0.107945 0.042470 0.112723 0.043709 0.032030 0.033622 +0.214286 +0 0 0.353920 0.198195 0.152185 0.046010 0.257654 0.118740 0.050787 0.076978 +0.250000 +0 0 0.353920 0.063706 0.044240 0.012387 0.009379 0.003362 0.001947 0.003008 +0.107143 +0.353920 0 0 0.212352 0.169881 0.061936 0.434967 0.145992 0.096797 0.146877 +0.428571 +0 0 0.353920 0.090250 0.063706 0.019466 0.029375 0.010972 0.007609 0.007078 +0.107143 +0 0 0.353920 0.168112 0.127411 0.051318 0.223854 0.099982 0.048487 0.067245 +0.250000 +0 0.353920 0 0.178729 0.138029 0.056627 0.227924 0.087595 0.071669 0.057866 +0.285714 +0 0.353920 0 0.201734 0.175190 0.056627 0.386303 0.159972 0.097328 0.111485 +0.464286 +0 0.353920 0 0.185808 0.152185 0.047779 0.298531 0.153070 0.063706 0.064236 +0.285714 +0 0.353920 0 0.162803 0.127411 0.040701 0.168289 0.074500 0.037162 0.056627 +0.250000 +0.353920 0 0 0.212352 0.180499 0.065475 0.454787 0.215714 0.097151 0.111485 +0.285714 +0 0.353920 0 0.254822 0.203504 0.063706 0.591223 0.259069 0.127588 0.177314 +0.392857 +0 0.353920 0 0.153955 0.123872 0.037162 0.148469 0.068660 0.035569 0.046010 +0.214286 +0 0 0.353920 0.102637 0.074323 0.021235 0.042293 0.019820 0.008317 0.010618 +0.178571 +0.353920 0 0 0.122102 0.090250 0.028314 0.059812 0.021235 0.015042 0.019112 +0.321429 +0 0 0.353920 0.175190 0.132720 0.042470 0.208459 0.108830 0.043001 0.049726 +0.250000 +0 0 0.353920 0.191117 0.148646 0.049549 0.222085 0.088657 0.041586 0.083171 +0.285714 +0 0.353920 0 0.182269 0.150416 0.049549 0.271102 0.107592 0.061051 0.090250 +0.464286 +0.353920 0 0 0.224739 0.180499 0.054858 0.409131 0.151478 0.102283 0.111485 +0.607143 +0.353920 0 0 0.152185 0.118563 0.040701 0.143691 0.058751 0.033091 0.047779 +0.250000 +0 0 0.353920 0.132720 0.102637 0.030083 0.084410 0.041763 0.015926 0.024597 +0.214286 +0 0 0.353920 0.072554 0.053088 0.023005 0.014157 0.007078 0.003893 0.004601 +0.107143 +0.353920 0 0 0.233587 0.185808 0.070784 0.526986 0.214652 0.134313 0.149000 +0.321429 +0.353920 0 0 0.198195 0.152185 0.054858 0.307025 0.141568 0.060874 0.081048 +0.250000 +0.353920 0 0 0.171651 0.141568 0.047779 0.234649 0.110777 0.048487 0.070784 +0.321429 +0 0.353920 0 0.249513 0.189347 0.077862 0.660414 0.328791 0.135728 0.155548 +0.321429 +0 0.353920 0 0.173421 0.136259 0.053088 0.278358 0.085295 0.049549 0.084941 +0.785714 +0 0 0.353920 0.194656 0.150416 0.047779 0.232171 0.090957 0.060166 0.071846 +0.321429 +0 0.353920 0 0.173421 0.134489 0.051318 0.238011 0.088126 0.064059 0.074323 +0.321429 +0 0.353920 0 0.205273 0.169881 0.063706 0.442223 0.175013 0.095558 0.131304 +0.250000 +0.353920 0 0 0.185808 0.139798 0.058397 0.276765 0.100867 0.049726 0.100867 +0.642857 +0 0.353920 0 0.173421 0.134489 0.044240 0.194302 0.086710 0.038046 0.061582 +0.321429 +0 0.353920 0 0.228278 0.180499 0.070784 0.554769 0.219784 0.129889 0.162803 +0.392857 +0 0.353920 0 0.210582 0.161033 0.056627 0.368076 0.159972 0.093966 0.101929 +0.285714 +0 0.353920 0 0.251283 0.187577 0.069014 0.663422 0.239073 0.143868 0.242612 +0.392857 +0.353920 0 0 0.207043 0.173421 0.065475 0.414440 0.184746 0.089719 0.118563 +0.321429 +0 0.353920 0 0.139798 0.111485 0.037162 0.124403 0.041939 0.032207 0.042293 +0.535714 +0.353920 0 0 0.168112 0.132720 0.044240 0.209874 0.098036 0.040701 0.063706 +0.321429 +0.353920 0 0 0.199965 0.157494 0.051318 0.327553 0.153778 0.075031 0.087595 +0.285714 +0.353920 0 0 0.169881 0.130950 0.035392 0.181738 0.086002 0.035923 0.047779 +0.250000 +0 0 0.353920 0.123872 0.088480 0.024774 0.056804 0.025305 0.011856 0.016280 +0.178571 +0 0 0.353920 0.127411 0.093789 0.030083 0.067068 0.025659 0.018227 0.019466 +0.178571 +0 0 0.353920 0.132720 0.099098 0.035392 0.090780 0.041232 0.020704 0.025659 +0.392857 +0 0.353920 0 0.185808 0.143337 0.040701 0.254822 0.109892 0.067776 0.070784 +0.464286 +0 0.353920 0 0.217661 0.166342 0.054858 0.383649 0.208282 0.073969 0.087064 +0.285714 +0 0 0.353920 0.155725 0.116793 0.038931 0.134489 0.069722 0.027960 0.031853 +0.214286 +0 0 0.353920 0.169881 0.125641 0.040701 0.204743 0.088480 0.037515 0.065121 +0.250000 +0.353920 0 0 0.212352 0.168112 0.067245 0.384888 0.142630 0.093966 0.115024 +0.464286 +0 0.353920 0 0.210582 0.162803 0.049549 0.355512 0.164750 0.074146 0.089011 +0.285714 +0.353920 0 0 0.187577 0.150416 0.046010 0.248452 0.105291 0.049372 0.077862 +0.285714 +0.353920 0 0 0.203504 0.169881 0.053088 0.334985 0.154132 0.092196 0.088657 +0.285714 +0.353920 0 0 0.201734 0.153955 0.046010 0.266678 0.123518 0.062113 0.068660 +0.321429 +0 0 0.353920 0.192886 0.148646 0.058397 0.316227 0.149885 0.077685 0.080694 +0.250000 +0 0 0.353920 0.125641 0.097328 0.031853 0.088834 0.034330 0.018758 0.028314 +0.214286 +0 0 0.353920 0.166342 0.136259 0.046010 0.207751 0.093435 0.041409 0.061582 +0.250000 +0 0.353920 0 0.235357 0.176960 0.061936 0.616528 0.210582 0.107061 0.256592 +0.714286 +0 0.353920 0 0.224739 0.171651 0.067245 0.487170 0.224385 0.102106 0.143691 +0.357143 +0 0.353920 0 0.240665 0.198195 0.069014 0.629092 0.304725 0.113962 0.146877 +0.357143 +0 0 0.353920 0.187577 0.148646 0.046010 0.296054 0.132543 0.059105 0.088126 +0.357143 +0.353920 0 0 0.203504 0.161033 0.065475 0.409131 0.195541 0.086002 0.104406 +0.428571 +0 0 0.353920 0.153955 0.113254 0.028314 0.117678 0.052557 0.022474 0.037162 +0.285714 +0 0.353920 0 0.224739 0.173421 0.060166 0.446470 0.190586 0.094320 0.134489 +0.285714 +0 0 0.353920 0.187577 0.139798 0.046010 0.203504 0.087418 0.040701 0.064767 +0.285714 +0.353920 0 0 0.168112 0.127411 0.035392 0.151655 0.069545 0.035038 0.039639 +0.214286 +0 0 0.353920 0.065475 0.047779 0.015926 0.011325 0.003893 0.002300 0.003539 +0.107143 +0.353920 0 0 0.247744 0.205273 0.072554 0.753849 0.262431 0.173421 0.205273 +0.678571 +0 0.353920 0 0.267209 0.203504 0.070784 0.733675 0.358698 0.164750 0.169881 +0.357143 +0 0.353920 0 0.157494 0.116793 0.037162 0.160149 0.063706 0.036454 0.043532 +0.285714 +0 0.353920 0 0.258361 0.203504 0.065475 0.665192 0.329499 0.134489 0.170766 +0.392857 +0.353920 0 0 0.224739 0.176960 0.060166 0.507698 0.216245 0.109361 0.147938 +0.392857 +0 0 0.353920 0.171651 0.132720 0.044240 0.198903 0.088657 0.047602 0.053973 +0.250000 +0.353920 0 0 0.230048 0.184038 0.061936 0.447885 0.217661 0.098213 0.118917 +0.285714 +0 0 0.353920 0.152185 0.120333 0.038931 0.129004 0.056273 0.030260 0.037162 +0.214286 +0 0 0.353920 0.113254 0.090250 0.035392 0.062113 0.025836 0.014688 0.023005 +0.214286 +0.353920 0 0 0.207043 0.162803 0.058397 0.394090 0.206158 0.082994 0.096974 +0.321429 +0 0 0.353920 0.192886 0.148646 0.044240 0.253760 0.126703 0.039639 0.077862 +0.250000 +0.353920 0 0 0.164573 0.123872 0.049549 0.203681 0.071315 0.053265 0.067245 +0.500000 +0 0.353920 0 0.231817 0.182269 0.054858 0.463281 0.185454 0.122456 0.136259 +0.357143 +0 0 0.353920 0.150416 0.109715 0.037162 0.129181 0.056273 0.029198 0.037162 +0.178571 +0.353920 0 0 0.162803 0.122102 0.042470 0.174659 0.086179 0.041586 0.046717 +0.250000 +0.353920 0 0 0.166342 0.130950 0.042470 0.205096 0.103698 0.080340 0.049549 +0.285714 +0.353920 0 0 0.164573 0.125641 0.042470 0.188108 0.096443 0.034330 0.049372 +0.250000 +0 0.353920 0 0.221200 0.182269 0.053088 0.439391 0.185277 0.108476 0.127411 +0.500000 +0 0.353920 0 0.152185 0.115024 0.040701 0.136790 0.052203 0.037692 0.038931 +0.357143 +0 0 0.353920 0.180499 0.139798 0.054858 0.190940 0.087241 0.038400 0.059105 +0.250000 +0 0 0.353920 0.099098 0.074323 0.026544 0.042293 0.018758 0.009379 0.010618 +0.178571 +0 0.353920 0 0.203504 0.169881 0.060166 0.389312 0.179083 0.087949 0.109715 +0.321429 +0.353920 0 0 0.208813 0.155725 0.047779 0.341886 0.155371 0.075916 0.092196 +0.321429 +0 0 0.353920 0.176960 0.134489 0.038931 0.198372 0.099098 0.037515 0.053088 +0.285714 +0.353920 0 0 0.194656 0.152185 0.063706 0.292515 0.155902 0.056273 0.079632 +0.321429 +0.353920 0 0 0.150416 0.116793 0.028314 0.127765 0.047425 0.029198 0.044240 +0.214286 +0.353920 0 0 0.208813 0.161033 0.056627 0.385772 0.176960 0.078393 0.103345 +0.285714 +0 0 0.353920 0.099098 0.072554 0.019466 0.040170 0.015926 0.009733 0.011856 +0.214286 +0 0 0.353920 0.196425 0.152185 0.054858 0.261724 0.110954 0.050787 0.099098 +0.321429 +0.353920 0 0 0.161033 0.122102 0.053088 0.205096 0.059635 0.044240 0.076093 +0.428571 +0 0 0.353920 0.207043 0.168112 0.056627 0.371793 0.169881 0.082817 0.100867 +0.321429 +0.353920 0 0 0.184038 0.146877 0.061936 0.266502 0.091311 0.060520 0.090250 +0.250000 +0.353920 0 0 0.226509 0.178729 0.054858 0.423111 0.196956 0.074677 0.122456 +0.357143 +0.353920 0 0 0.203504 0.166342 0.053088 0.346310 0.159441 0.069368 0.097682 +0.285714 +0.353920 0 0 0.161033 0.123872 0.038931 0.162095 0.070784 0.039285 0.046187 +0.250000 +0 0.353920 0 0.194656 0.159264 0.051318 0.262254 0.104406 0.050787 0.094320 +0.321429 +0 0.353920 0 0.207043 0.162803 0.053088 0.355158 0.178022 0.074500 0.089011 +0.357143 +0 0 0.353920 0.125641 0.099098 0.030083 0.102814 0.033622 0.013980 0.040701 +0.214286 +0 0 0.353920 0.125641 0.100867 0.033622 0.080517 0.033799 0.016811 0.025305 +0.178571 +0 0.353920 0 0.244205 0.185808 0.067245 0.528048 0.227393 0.138206 0.148646 +0.392857 +0.353920 0 0 0.189347 0.145107 0.042470 0.241904 0.110600 0.058574 0.056273 +0.250000 +0 0 0.353920 0.191117 0.148646 0.049549 0.261901 0.127234 0.056273 0.070253 +0.250000 +0 0 0.353920 0.152185 0.120333 0 0.151478 0.073084 0.030437 0.040701 +0.250000 +0 0 0.353920 0.184038 0.141568 0.046010 0.206158 0.082463 0.048310 0.063706 +0.321429 +0.353920 0 0 0.116793 0.088480 0.031853 0.069722 0.030083 0.014511 0.021412 +0.321429 +0.353920 0 0 0.208813 0.164573 0.047779 0.350203 0.149885 0.070430 0.099098 +0.250000 +0 0.353920 0 0.184038 0.143337 0.049549 0.289329 0.098921 0.064767 0.092019 +0.571429 +0 0.353920 0 0.222969 0.178729 0.069014 0.462219 0.182623 0.116970 0.132720 +0.285714 +0.353920 0 0 0.162803 0.132720 0.049549 0.180676 0.067953 0.036985 0.072554 +0.285714 +0.353920 0 0 0.198195 0.159264 0.056627 0.326314 0.152893 0.062998 0.092019 +0.500000 +0 0.353920 0 0.212352 0.159264 0.049549 0.307556 0.121217 0.069014 0.102991 +0.357143 +0 0 0.353920 0.076093 0.060166 0.019466 0.021412 0.007255 0.004955 0.007078 +0.178571 +0.353920 0 0 0.173421 0.138029 0.047779 0.209520 0.085649 0.033976 0.064944 +0.500000 +0.353920 0 0 0.212352 0.166342 0.061936 0.391081 0.172182 0.087418 0.111485 +0.500000 +0 0.353920 0 0.221200 0.173421 0.054858 0.394620 0.171297 0.098036 0.109538 +0.285714 +0 0.353920 0 0.203504 0.162803 0.051318 0.351973 0.164927 0.081048 0.093789 +0.214286 +0 0.353920 0 0.215891 0.171651 0.060166 0.389489 0.181384 0.081048 0.107945 +0.357143 +0 0.353920 0 0.240665 0.201734 0.072554 0.651920 0.221200 0.144399 0.230048 +0.678571 +0.353920 0 0 0.083171 0.060166 0.019466 0.018227 0.006371 0.003716 0.006901 +0.214286 +0 0.353920 0 0.153955 0.115024 0.040701 0.138560 0.054504 0.033268 0.042470 +0.214286 +0 0 0.353920 0.180499 0.141568 0.051318 0.204389 0.081755 0.050611 0.062644 +0.285714 +0 0.353920 0 0.201734 0.162803 0.047779 0.346664 0.140506 0.089365 0.093966 +0.285714 +0.353920 0 0 0.171651 0.145107 0.053088 0.246328 0.085118 0.057512 0.093789 +0.428571 +0 0 0.353920 0.083171 0.060166 0.023005 0.022120 0.008140 0.004955 0.007786 +0.178571 +0.353920 0 0 0.224739 0.169881 0.067245 0.519200 0.206158 0.107238 0.148646 +0.500000 +0 0.353920 0 0.224739 0.185808 0.063706 0.484693 0.224385 0.112546 0.128473 +0.357143 +0 0.353920 0 0.219430 0.153955 0.054858 0.358167 0.168820 0.083525 0.097328 +0.250000 +0 0.353920 0 0.244205 0.187577 0.060166 0.549814 0.281189 0.123341 0.130773 +0.285714 +0.353920 0 0 0.228278 0.182269 0.065475 0.516900 0.206512 0.111662 0.145107 +0.642857 +0 0.353920 0 0.120333 0.090250 0.030083 0.072200 0.034330 0.007432 0.017696 +0.178571 +0.353920 0 0 0.254822 0.198195 0.063706 0.561494 0.244558 0.132720 0.156609 +0.357143 +0 0.353920 0 0.237126 0.185808 0.069014 0.502566 0.202796 0.130242 0.138206 +0.321429 +0 0.353920 0 0.231817 0.161033 0.060166 0.456379 0.207751 0.112016 0.120864 +0.357143 +0 0 0.353920 0.153955 0.115024 0.042470 0.122456 0.056273 0.029729 0.033622 +0.214286 +0 0 0.353920 0.136259 0.099098 0.035392 0.097505 0.046187 0.021589 0.025659 +0.250000 +0 0.353920 0 0.233587 0.187577 0.065475 0.476376 0.193240 0.095735 0.168466 +0.357143 +0.353920 0 0 0.226509 0.176960 0.061936 0.450540 0.179260 0.103521 0.143337 +0.428571 +0 0 0.353920 0.138029 0.106176 0.035392 0.109184 0.049018 0.026013 0.030083 +0.178571 +0.353920 0 0 0.166342 0.136259 0.047779 0.208636 0.097859 0.042470 0.060166 +0.250000 +0.353920 0 0 0.221200 0.166342 0.053088 0.397806 0.196779 0.081932 0.101575 +0.285714 +0 0 0.353920 0.127411 0.095558 0.030083 0.077331 0.037692 0.013449 0.021943 +0.178571 +0.353920 0 0 0.201734 0.159264 0.054858 0.422934 0.199080 0.090780 0.104406 +0.321429 +0.353920 0 0 0.120333 0.097328 0.031853 0.073084 0.025659 0.015219 0.024774 +0.321429 +0 0.353920 0 0.226509 0.176960 0.063706 0.530703 0.209874 0.111131 0.152539 +0.357143 +0.353920 0 0 0.208813 0.161033 0.051318 0.379756 0.168112 0.067245 0.100867 +0.464286 +0 0 0.353920 0.155725 0.120333 0.035392 0.144045 0.073969 0.026013 0.036454 +0.214286 +0 0 0.353920 0.152185 0.120333 0.035392 0.120510 0.049372 0.023536 0.042470 +0.250000 +0.353920 0 0 0.178729 0.136259 0.038931 0.231817 0.112723 0.053088 0.065475 +0.285714 +0 0 0.353920 0.161033 0.127411 0.040701 0.161741 0.073792 0.030260 0.052026 +0.321429 +0 0 0.353920 0.130950 0.099098 0.033622 0.093966 0.043178 0.018404 0.028314 +0.214286 +0.353920 0 0 0.254822 0.212352 0.083171 0.792249 0.348257 0.145461 0.219784 +0.392857 +0 0.353920 0 0.192886 0.150416 0.044240 0.271810 0.104052 0.052911 0.092019 +0.535714 +0 0 0.353920 0.138029 0.106176 0.035392 0.094320 0.039108 0.020881 0.029729 +0.214286 +0 0.353920 0 0.162803 0.132720 0.042470 0.173952 0.078039 0.031145 0.060166 +0.214286 +0.353920 0 0 0.212352 0.162803 0.054858 0.339586 0.157671 0.066891 0.104406 +0.357143 +0 0.353920 0 0.201734 0.155725 0.067245 0.360290 0.158202 0.073261 0.093789 +0.285714 +0.353920 0 0 0.185808 0.136259 0.035392 0.181030 0.087064 0.035569 0.051495 +0.250000 +0.353920 0 0 0.169881 0.127411 0.035392 0.155371 0.068660 0.035038 0.040701 +0.250000 +0 0 0.353920 0.176960 0.127411 0.042470 0.155371 0.066360 0.037339 0.046187 +0.250000 +0 0 0.353920 0.187577 0.148646 0.049549 0.239427 0.090603 0.065652 0.073615 +0.285714 +0 0.353920 0 0.224739 0.175190 0.005309 0.409308 0.181030 0.109007 0.102106 +0.285714 +0 0 0.353920 0.176960 0.134489 0.038931 0.174836 0.077154 0.031853 0.046894 +0.214286 +0.353920 0 0 0.109715 0.077862 0.030083 0.051672 0.021589 0.012918 0.015926 +0.178571 +0.353920 0 0 0.201734 0.157494 0.049549 0.376394 0.186339 0.077685 0.084941 +0.250000 +0 0 0.353920 0.113254 0.084941 0.024774 0.047071 0.020704 0.009025 0.014511 +0.178571 +0.353920 0 0 0.222969 0.182269 0.061936 0.423111 0.174128 0.087418 0.130950 +0.357143 +0.353920 0 0 0.159264 0.127411 0.056627 0.200672 0.061582 0.044063 0.079632 +0.392857 +0.353920 0 0 0.215891 0.169881 0.058397 0.440276 0.224562 0.090957 0.107945 +0.392857 +0.353920 0 0 0.203504 0.159264 0.056627 0.337993 0.155725 0.059635 0.095558 +0.535714 +0 0.353920 0 0.221200 0.182269 0.056627 0.447354 0.202265 0.115378 0.113608 +0.285714 +0 0.353920 0 0.233587 0.176960 0.061936 0.469828 0.196779 0.099274 0.144576 +0.285714 +0 0.353920 0 0.215891 0.168112 0.049549 0.400991 0.186693 0.083348 0.123872 +0.357143 +0.353920 0 0 0.212352 0.168112 0.056627 0.411962 0.178552 0.093258 0.118563 +0.392857 +0 0 0.353920 0.221200 0.152185 0.061936 0.499381 0.202442 0.105114 0.139798 +0.392857 +0 0 0.353920 0.169881 0.130950 0.042470 0.189701 0.088834 0.040347 0.053088 +0.250000 +0.353920 0 0 0.228278 0.175190 0.065475 0.528579 0.186339 0.098567 0.161033 +0.500000 +0 0.353920 0 0.192886 0.148646 0.061936 0.266855 0.090603 0.062821 0.097328 +0.321429 +0 0.353920 0 0.210582 0.161033 0.049549 0.323483 0.137852 0.078747 0.095912 +0.285714 +0 0.353920 0 0.166342 0.125641 0.046010 0.193417 0.070961 0.044594 0.065475 +0.464286 +0 0.353920 0 0.180499 0.141568 0.042470 0.247921 0.122810 0.039108 0.069014 +0.321429 +0 0.353920 0 0.189347 0.162803 0.051318 0.278712 0.120156 0.070961 0.070784 +0.250000 +0 0.353920 0 0.196425 0.150416 0.049549 0.278889 0.099805 0.056450 0.100867 +0.357143 +0 0 0.353920 0.113254 0.081402 0.021235 0.045656 0.021766 0.009733 0.012564 +0.214286 +0 0.353920 0 0.245974 0.194656 0.065475 0.594231 0.284905 0.142099 0.140329 +0.321429 +0 0.353920 0 0.187577 0.145107 0.058397 0.287206 0.084941 0.059812 0.084941 +0.642857 +0 0 0.353920 0.090250 0.069014 0.024774 0.026013 0.009025 0.007078 0.008848 +0.178571 +0 0.353920 0 0.230048 0.168112 0.058397 0.491064 0.205273 0.123341 0.109538 +0.285714 +0 0 0.353920 0.139798 0.106176 0.042470 0.105999 0.044771 0.024067 0.031676 +0.250000 +0 0 0.353920 0.166342 0.122102 0.049549 0.163334 0.081048 0.039108 0.041055 +0.285714 +0 0 0.353920 0.168112 0.127411 0.038931 0.159972 0.067599 0.035038 0.046010 +0.250000 +0.353920 0 0 0.240665 0.187577 0.063706 0.541143 0.270218 0.110246 0.142453 +0.357143 +0 0.353920 0 0.221200 0.173421 0.054858 0.470713 0.236241 0.091665 0.116793 +0.321429 +0.353920 0 0 0.219430 0.180499 0.061936 0.453548 0.202265 0.084410 0.138029 +0.321429 +0 0 0.353920 0.164573 0.130950 0.035392 0.178906 0.082817 0.038931 0.049549 +0.214286 +0 0 0.353920 0.107945 0.079632 0.031853 0.051849 0.022297 0.012033 0.014688 +0.178571 +0.353920 0 0 0.253053 0.185808 0.070784 0.668908 0.336224 0.154309 0.152362 +0.321429 +0 0.353920 0 0.235357 0.184038 0.058397 0.597593 0.258184 0.144045 0.150947 +0.357143 +0 0 0.353920 0.152185 0.115024 0.037162 0.109361 0.042116 0.028314 0.034684 +0.178571 +0 0 0.353920 0.161033 0.130950 0.038931 0.181915 0.084410 0.043709 0.044594 +0.250000 +0 0.353920 0 0.231817 0.185808 0.067245 0.481154 0.199611 0.113785 0.141037 +0.321429 +0.353920 0 0 0.182269 0.123872 0.054858 0.326491 0.148115 0.070076 0.096620 +0.285714 +0 0 0.353920 0.109715 0.079632 0.026544 0.054858 0.023005 0.013095 0.012918 +0.178571 +0 0 0.353920 0.176960 0.132720 0.042470 0.191824 0.076093 0.041055 0.060166 +0.285714 +0.353920 0 0 0.196425 0.153955 0.049549 0.265263 0.120687 0.058220 0.075739 +0.250000 +0.353920 0 0 0.123872 0.093789 0.031853 0.080163 0.035215 0.020350 0.023005 +0.178571 +0 0 0.353920 0.116793 0.086710 0.023005 0.051141 0.020527 0.011325 0.017873 +0.178571 +0 0.353920 0 0.201734 0.159264 0.058397 0.319589 0.116970 0.065298 0.104406 +0.464286 +0.353920 0 0 0.123872 0.092019 0.031853 0.069014 0.026367 0.014511 0.023182 +0.285714 +0 0 0.353920 0.079632 0.056627 0.015926 0.016457 0.008848 0.005309 0.005309 +0.107143 +0.353920 0 0 0.191117 0.146877 0.051318 0.261901 0.093258 0.059459 0.086710 +0.392857 +0.353920 0 0 0.203504 0.157494 0.051318 0.299770 0.146877 0.068837 0.077862 +0.285714 +0 0 0.353920 0.136259 0.099098 0.044240 0.086356 0.036100 0.013449 0.030083 +0.178571 +0 0 0.353920 0.194656 0.150416 0.047779 0.258538 0.117678 0.054681 0.076093 +0.285714 +0 0 0.353920 0.194656 0.155725 0.058397 0.304548 0.110423 0.059812 0.106176 +0.571429 +0 0 0.353920 0.139798 0.106176 0.031853 0.101044 0.049018 0.022120 0.027252 +0.142857 +0 0 0.353920 0.056627 0.042470 0.007078 0.006371 0.002654 0.001593 0.001770 +0.107143 +0 0.353920 0 0.238896 0.180499 0.065475 0.521324 0.222792 0.107061 0.150239 +0.357143 +0 0.353920 0 0.152185 0.123872 0.031853 0.140506 0.055742 0.031499 0.042470 +0.285714 +0 0 0.353920 0.168112 0.129181 0.040701 0.176606 0.082109 0.031322 0.055211 +0.321429 +0.353920 0 0 0.224739 0.176960 0.063706 0.408423 0.155902 0.081932 0.136967 +0.285714 +0 0 0.353920 0.146877 0.115024 0.035392 0.118032 0.051141 0.025305 0.033622 +0.214286 +0 0.353920 0 0.201734 0.164573 0.063706 0.458326 0.119979 0.078747 0.155725 +0.392857 +0 0 0.353920 0.116793 0.081402 0.028314 0.049549 0.019996 0.012918 0.016280 +0.214286 +0 0 0.353920 0.145107 0.115024 0.035392 0.139444 0.073615 0.023182 0.037515 +0.178571 +0 0.353920 0 0.258361 0.205273 0.067245 0.614935 0.240134 0.153778 0.184038 +0.357143 +0 0 0.353920 0.176960 0.138029 0.042470 0.210759 0.086887 0.052026 0.061228 +0.250000 +0 0 0.353920 0.145107 0.118563 0.037162 0.116970 0.049726 0.022651 0.037162 +0.214286 +0.353920 0 0 0.249513 0.194656 0.074323 0.509113 0.231817 0.115201 0.163511 +0.357143 +0 0 0.353920 0.192886 0.153955 0.047779 0.273049 0.131658 0.052380 0.080340 +0.250000 +0.353920 0 0 0.215891 0.169881 0.053088 0.424704 0.198195 0.086887 0.099098 +0.464286 +0.353920 0 0 0.182269 0.134489 0.061936 0.338524 0.115024 0.055919 0.109715 +0.464286 +0 0 0.353920 0.184038 0.134489 0.046010 0.189170 0.084056 0.043178 0.054327 +0.250000 +0.353920 0 0 0.214121 0.168112 0.054858 0.410901 0.202442 0.086887 0.097328 +0.285714 +0.353920 0 0 0.226509 0.185808 0.063706 0.464873 0.172182 0.105999 0.144222 +0.321429 +0 0 0.353920 0.180499 0.138029 0.044240 0.211290 0.103698 0.044771 0.055035 +0.250000 +0 0 0.353920 0.132720 0.099098 0.028314 0.071669 0.029198 0.016988 0.023005 +0.250000 +0 0.353920 0 0.226509 0.168112 0.067245 0.407362 0.154486 0.099451 0.134666 +0.428571 +0 0 0.353920 0.162803 0.129181 0.038931 0.159087 0.062113 0.036100 0.053088 +0.250000 +0 0 0.353920 0.076093 0.053088 0.010618 0.013626 0.004070 0.001770 0.003539 +0.142857 +0 0 0.353920 0.164573 0.122102 0.037162 0.142099 0.085649 0.012210 0.038577 +0.178571 +0 0 0.353920 0.106176 0.083171 0.028314 0.046363 0.017696 0.009379 0.015219 +0.107143 +0.353920 0 0 0.166342 0.127411 0.047779 0.177314 0.058928 0.040701 0.058397 +0.321429 +0 0.353920 0 0.178729 0.145107 0.053088 0.224562 0.086002 0.047248 0.076093 +0.571429 +0 0 0.353920 0.173421 0.129181 0.044240 0.197664 0.089188 0.044594 0.057158 +0.321429 +0 0.353920 0 0.251283 0.192886 0.061936 0.674925 0.308795 0.161564 0.168112 +0.357143 +0 0 0.353920 0.129181 0.095558 0.030083 0.078747 0.033091 0.018581 0.023359 +0.214286 +0 0 0.353920 0.122102 0.090250 0.030083 0.070961 0.037162 0.013095 0.017696 +0.142857 +0.353920 0 0 0.210582 0.159264 0.051318 0.339409 0.163865 0.073084 0.089719 +0.321429 +0 0.353920 0 0.169881 0.132720 0.037162 0.185808 0.077331 0.042293 0.054858 +0.392857 +0 0 0.353920 0.104406 0.076093 0.026544 0.041055 0.013095 0.010441 0.014157 +0.250000 +0 0 0.353920 0.184038 0.146877 0.049549 0.225624 0.109007 0.047248 0.059459 +0.285714 +0 0 0.353920 0.185808 0.141568 0.051318 0.215714 0.087772 0.056273 0.061936 +0.285714 +0 0 0.353920 0.153955 0.106176 0.042470 0.211113 0.091665 0.049195 0.058220 +0.250000 +0.353920 0 0 0.230048 0.182269 0.061936 0.523978 0.187400 0.096266 0.185808 +0.678571 +0.353920 0 0 0.260131 0.208813 0.079632 0.621483 0.225447 0.120510 0.205273 +0.714286 +0 0 0.353920 0.201734 0.150416 0.049549 0.270925 0.117147 0.049549 0.084941 +0.321429 +0.353920 0 0 0.217661 0.166342 0.061936 0.439568 0.200849 0.101575 0.112193 +0.357143 +0.353920 0 0 0.182269 0.134489 0.047779 0.234118 0.101752 0.074146 0.054858 +0.321429 +0 0 0.353920 0.152185 0.120333 0.044240 0.135905 0.048664 0.021589 0.051672 +0.464286 +0 0.353920 0 0.198195 0.162803 0.063706 0.343302 0.121041 0.069368 0.125641 +0.392857 +0.353920 0 0 0.210582 0.164573 0.044240 0.282782 0.114847 0.070784 0.081402 +0.321429 +0 0.353920 0 0.201734 0.161033 0.058397 0.374978 0.155725 0.077685 0.100867 +0.464286 +0 0.353920 0 0.224739 0.175190 0.063706 0.564856 0.218368 0.112193 0.130950 +0.357143 +0 0 0.353920 0.191117 0.150416 0.047779 0.242789 0.122987 0.054681 0.075385 +0.250000 +0 0.353920 0 0.230048 0.178729 0.061936 0.427358 0.180676 0.092727 0.138029 +0.321429 +0 0.353920 0 0.185808 0.152185 0.058397 0.253760 0.102283 0.061759 0.069014 +0.321429 +0 0.353920 0 0.258361 0.201734 0.058397 0.713679 0.378163 0.147938 0.153955 +0.321429 +0 0.353920 0 0.134489 0.113254 0.040701 0.229163 0.114316 0.046894 0.058043 +0.214286 +0 0.353920 0 0.173421 0.127411 0.038931 0.177137 0.056981 0.037869 0.069014 +0.571429 +0 0.353920 0 0.214121 0.173421 0.053088 0.401522 0.152362 0.089365 0.123872 +0.321429 +0.353920 0 0 0.199965 0.161033 0.053088 0.346664 0.157140 0.072554 0.097328 +0.250000 +0 0.353920 0 0.224739 0.178729 0.060166 0.500796 0.214121 0.105114 0.129181 +0.500000 +0.353920 0 0 0.233587 0.178729 0.058397 0.486286 0.208459 0.124226 0.122102 +0.321429 +0.353920 0 0 0.171651 0.138029 0.030083 0.227747 0.104229 0.036454 0.070076 +0.250000 +0.353920 0 0 0.254822 0.199965 0.070784 0.745178 0.359936 0.128473 0.174836 +0.392857 +0.353920 0 0 0.208813 0.164573 0.058397 0.394620 0.182800 0.096620 0.097328 +0.321429 +0.353920 0 0 0.203504 0.153955 0.047779 0.351088 0.152893 0.078747 0.084587 +0.321429 +0 0 0.353920 0.203504 0.159264 0.047779 0.285613 0.127942 0.062290 0.089896 +0.321429 +0 0 0.353920 0.178729 0.125641 0.044240 0.212706 0.088480 0.042647 0.065475 +0.250000 +0 0.353920 0 0.184038 0.139798 0.063706 0.226509 0.055919 0.038931 0.086710 +0.750000 +0.353920 0 0 0.222969 0.169881 0.065475 0.428243 0.187577 0.090426 0.113962 +0.357143 +0.353920 0 0 0.189347 0.148646 0.046010 0.285082 0.106530 0.064059 0.099098 +0.464286 +0 0 0.353920 0.090250 0.065475 0.021235 0.032738 0.013803 0.007432 0.008848 +0.178571 +0.353920 0 0 0.228278 0.180499 0.067245 0.526102 0.228101 0.104760 0.150416 +0.392857 +0.353920 0 0 0.150416 0.118563 0.035392 0.144576 0.062113 0.032561 0.047779 +0.285714 +0.353920 0 0 0.253053 0.194656 0.061936 0.645903 0.331977 0.134666 0.155725 +0.357143 +0 0 0.353920 0.125641 0.099098 0.035392 0.080517 0.033091 0.016103 0.030083 +0.357143 +0 0 0.353920 0.233587 0.185808 0.076093 0.632101 0.238011 0.127942 0.143868 +0.357143 +0.353920 0 0 0.231817 0.184038 0.058397 0.498850 0.207397 0.102991 0.143337 +0.285714 +0 0.353920 0 0.219430 0.180499 0.063706 0.436383 0.209520 0.096974 0.113962 +0.321429 +0 0.353920 0 0.205273 0.168112 0.058397 0.367546 0.146523 0.092019 0.107945 +0.428571 +0 0.353920 0 0.219430 0.173421 0.056627 0.373739 0.174482 0.086356 0.096443 +0.285714 +0 0.353920 0 0.238896 0.185808 0.054858 0.523270 0.222262 0.120510 0.148646 +0.285714 +0.353920 0 0 0.180499 0.141568 0.049549 0.230579 0.086887 0.058928 0.065475 +0.321429 +0 0 0.353920 0.161033 0.123872 0.037162 0.157317 0.075385 0.037869 0.039462 +0.214286 +0 0 0.353920 0.166342 0.125641 0.051318 0.158733 0.055211 0.036100 0.043532 +0.214286 +0 0.353920 0 0.228278 0.184038 0.061936 0.472306 0.236064 0.094320 0.125641 +0.321429 +0.353920 0 0 0.214121 0.173421 0.049549 0.345249 0.148292 0.072907 0.111485 +0.321429 +0 0 0.353920 0.182269 0.134489 0.042470 0.221200 0.115555 0.045833 0.056627 +0.214286 +0 0 0.353920 0.129181 0.104406 0.033622 0.088480 0.038046 0.019289 0.028314 +0.285714 +0 0.353920 0 0.191117 0.148646 0.046010 0.265617 0.130242 0.059282 0.065298 +0.285714 +0 0.353920 0 0.217661 0.168112 0.054858 0.355335 0.158379 0.068306 0.102460 +0.321429 +0 0 0.353920 0.102637 0.072554 0.024774 0.034507 0.012741 0.006724 0.012387 +0.250000 +0 0 0.353920 0.086710 0.063706 0.023005 0.025128 0.010618 0.004601 0.007609 +0.107143 +0 0 0.353920 0.166342 0.125641 0.044240 0.176606 0.074323 0.034861 0.054858 +0.250000 +0 0.353920 0 0.189347 0.150416 0.047779 0.272872 0.133251 0.064236 0.063529 +0.250000 +0 0.353920 0 0.198195 0.155725 0.054858 0.343479 0.152716 0.093081 0.090250 +0.285714 +0.353920 0 0 0.187577 0.148646 0.047779 0.238896 0.104052 0.055211 0.064590 +0.321429 +0.353920 0 0 0.226509 0.178729 0.058397 0.510883 0.217484 0.107415 0.138029 +0.607143 +0 0.353920 0 0.178729 0.143337 0.063706 0.214475 0.084587 0.043709 0.063706 +0.357143 +0.353920 0 0 0.210582 0.173421 0.065475 0.419395 0.170589 0.071315 0.127765 +0.321429 +0 0 0.353920 0.226509 0.173421 0.047779 0.389312 0.172713 0.088657 0.103521 +0.321429 +0.353920 0 0 0.072554 0.054858 0.015926 0.015042 0.006017 0.001947 0.005486 +0.214286 +0 0.353920 0 0.228278 0.173421 0.056627 0.412847 0.174659 0.111662 0.105822 +0.285714 +0 0.353920 0 0.215891 0.166342 0.069014 0.450717 0.165988 0.117324 0.140860 +0.392857 +0.353920 0 0 0.270749 0.212352 0.077862 0.814723 0.356397 0.180145 0.219607 +0.392857 +0.353920 0 0 0.212352 0.169881 0.058397 0.324367 0.146346 0.069545 0.096443 +0.285714 +0.353920 0 0 0.222969 0.182269 0.058397 0.478499 0.172713 0.123518 0.159264 +0.678571 +0 0 0.353920 0.097328 0.069014 0.024774 0.030968 0.012210 0.007786 0.009025 +0.107143 +0 0.353920 0 0.228278 0.178729 0.058397 0.466466 0.194656 0.106707 0.118563 +0.357143 +0 0 0.353920 0.120333 0.088480 0.026544 0.063175 0.023536 0.016103 0.015926 +0.142857 +0 0 0.353920 0.116793 0.092019 0.030083 0.069545 0.032384 0.015042 0.019466 +0.214286 +0 0.353920 0 0.231817 0.161033 0.060166 0.451248 0.206335 0.107238 0.117855 +0.250000 +0 0.353920 0 0.212352 0.168112 0.063706 0.417802 0.153778 0.087595 0.150416 +0.642857 +0 0 0.353920 0.143337 0.111485 0.037162 0.122810 0.056804 0.027783 0.035392 +0.285714 +0.353920 0 0 0.208813 0.168112 0.054858 0.303309 0.125995 0.061582 0.099098 +0.428571 +0 0.353920 0 0.191117 0.148646 0.049549 0.284374 0.134489 0.063882 0.074323 +0.285714 +0 0.353920 0 0.217661 0.166342 0.061936 0.459565 0.181738 0.121394 0.113254 +0.464286 +0.353920 0 0 0.221200 0.166342 0.061936 0.417271 0.214121 0.091311 0.095912 +0.285714 +0 0 0.353920 0.168112 0.129181 0.044240 0.193417 0.081048 0.041939 0.060874 +0.285714 +0 0.353920 0 0.176960 0.141568 0.053088 0.286144 0.096620 0.039639 0.104406 +0.428571 +0.353920 0 0 0.210582 0.168112 0.049549 0.364714 0.174305 0.076801 0.098390 +0.321429 +0 0 0.353920 0.175190 0.130950 0.044240 0.168997 0.065475 0.024951 0.059812 +0.607143 +0 0.353920 0 0.224739 0.178729 0.058397 0.442753 0.204212 0.080340 0.135374 +0.357143 +0.353920 0 0 0.222969 0.182269 0.060166 0.490179 0.224916 0.104583 0.134489 +0.357143 +0 0 0.353920 0.127411 0.095558 0.031853 0.073438 0.034684 0.013803 0.021943 +0.178571 +0 0.353920 0 0.205273 0.159264 0.054858 0.329145 0.136259 0.087064 0.093789 +0.285714 +0 0.353920 0 0.240665 0.184038 0.065475 0.528756 0.217661 0.139267 0.143691 +0.357143 +0 0.353920 0 0.235357 0.178729 0.058397 0.477438 0.211821 0.112369 0.127411 +0.285714 +0 0.353920 0 0.215891 0.169881 0.061936 0.377809 0.138383 0.076447 0.148646 +0.500000 +0 0.353920 0 0.219430 0.176960 0.053088 0.457618 0.210936 0.110954 0.125288 +0.321429 +0 0 0.353920 0.146877 0.109715 0.033622 0.110069 0.039816 0.022120 0.040701 +0.250000 +0.353920 0 0 0.134489 0.102637 0.042470 0.100159 0.041586 0.023182 0.030083 +0.285714 +0 0.353920 0 0.182269 0.153955 0.060166 0.223323 0.097859 0.039285 0.076447 +0.392857 +0.353920 0 0 0.161033 0.122102 0.044240 0.155725 0.059812 0.037692 0.047779 +0.392857 +0 0.353920 0 0.215891 0.173421 0.060166 0.416740 0.200142 0.084410 0.104406 +0.500000 +0 0 0.353920 0.146877 0.115024 0.038931 0.111839 0.049018 0.028137 0.032738 +0.250000 +0 0.353920 0 0.237126 0.191117 0.070784 0.516723 0.227747 0.116086 0.147408 +0.285714 +0.353920 0 0 0.203504 0.161033 0.047779 0.321005 0.150239 0.069722 0.092019 +0.285714 +0.353920 0 0 0.224739 0.176960 0.063706 0.457087 0.210228 0.095381 0.130950 +0.285714 +0 0.353920 0 0.185808 0.134489 0.049549 0.214652 0.068660 0.052203 0.074323 +0.464286 +0.353920 0 0 0.189347 0.148646 0.056627 0.264201 0.123164 0.053619 0.077331 +0.321429 +0.353920 0 0 0.185808 0.143337 0.046010 0.254291 0.115555 0.069899 0.061936 +0.250000 +0 0 0.353920 0.199965 0.153955 0.054858 0.276765 0.096089 0.059459 0.100867 +0.464286 +0 0 0.353920 0.168112 0.125641 0.044240 0.172182 0.076270 0.039108 0.050257 +0.285714 +0 0 0.353920 0.180499 0.141568 0.044240 0.210051 0.084587 0.046010 0.072200 +0.250000 +0.353920 0 0 0.228278 0.175190 0.053088 0.428066 0.213414 0.078747 0.119979 +0.285714 +0 0.353920 0 0.210582 0.175190 0.065475 0.454787 0.147231 0.079278 0.171651 +0.428571 +0.353920 0 0 0.118563 0.093789 0.037162 0.078570 0.033091 0.019820 0.026544 +0.214286 +0 0.353920 0 0.212352 0.166342 0.070784 0.364891 0.138737 0.072023 0.102637 +0.500000 +0 0 0.353920 0.210582 0.166342 0.047779 0.331446 0.153601 0.065121 0.101575 +0.321429 +0.353920 0 0 0.263670 0.203504 0.070784 0.666785 0.337639 0.118917 0.175190 +0.392857 +0.353920 0 0 0.122102 0.090250 0.031853 0.070961 0.033268 0.010441 0.022297 +0.285714 +0 0 0.353920 0.166342 0.130950 0.042470 0.166519 0.065298 0.037339 0.054858 +0.392857 +0 0.353920 0 0.185808 0.141568 0.046010 0.247567 0.110246 0.046363 0.078924 +0.285714 +0 0 0.353920 0.180499 0.132720 0.053088 0.297823 0.136082 0.055211 0.090250 +0.321429 +0.353920 0 0 0.221200 0.173421 0.042470 0.310211 0.161387 0.063706 0.082463 +0.321429 +0 0.353920 0 0.180499 0.139798 0.042470 0.218545 0.092727 0.043178 0.068306 +0.392857 +0.353920 0 0 0.199965 0.153955 0.065475 0.347372 0.116440 0.048133 0.138029 +0.428571 +0 0.353920 0 0.210582 0.159264 0.058397 0.382587 0.173421 0.089365 0.098744 +0.392857 +0 0 0.353920 0.153955 0.111485 0.038931 0.130419 0.057158 0.025305 0.042470 +0.214286 +0 0.353920 0 0.143337 0.115024 0.038931 0.126526 0.051318 0.025659 0.038931 +0.392857 +0 0.353920 0 0.265440 0.217661 0.072554 0.801097 0.290568 0.149708 0.256946 +0.392857 +0 0.353920 0 0.217661 0.168112 0.061936 0.422580 0.197841 0.091665 0.112016 +0.357143 +0.353920 0 0 0.247744 0.212352 0.081402 0.708901 0.286852 0.143161 0.203681 +0.321429 +0.353920 0 0 0.189347 0.152185 0.049549 0.253583 0.101044 0.056450 0.076270 +0.250000 +0.353920 0 0 0.150416 0.116793 0.046010 0.155902 0.053796 0.033091 0.054858 +0.285714 +0.353920 0 0 0.155725 0.113254 0.042470 0.161564 0.086179 0.032561 0.036277 +0.250000 +0.353920 0 0 0.205273 0.157494 0.056627 0.348257 0.173421 0.071138 0.095558 +0.285714 +0.353920 0 0 0.171651 0.138029 0.042470 0.211998 0.088834 0.047602 0.059812 +0.250000 +0 0 0.353920 0.111485 0.081402 0.024774 0.050964 0.018758 0.010795 0.014157 +0.250000 +0.353920 0 0 0.189347 0.152185 0.054858 0.277650 0.116263 0.059812 0.086710 +0.321429 +0 0.353920 0 0.215891 0.171651 0.063706 0.452840 0.202973 0.101044 0.125641 +0.214286 +0 0.353920 0 0.176960 0.136259 0.046010 0.271810 0.092904 0.033622 0.095558 +0.428571 +0 0.353920 0 0.203504 0.162803 0.058397 0.338878 0.170412 0.068837 0.083525 +0.321429 +0 0 0.353920 0.123872 0.088480 0.035392 0.142099 0.061051 0.022297 0.044417 +0.214286 +0 0 0.353920 0.127411 0.092019 0.028314 0.063529 0.026190 0.011148 0.021235 +0.142857 +0.353920 0 0 0.244205 0.182269 0.063706 0.652805 0.347372 0.164750 0.120687 +0.428571 +0.353920 0 0 0.244205 0.194656 0.070784 0.653513 0.259069 0.167050 0.201734 +0.642857 +0 0 0.353920 0.138029 0.099098 0.031853 0.076093 0.029906 0.012033 0.027960 +0.250000 +0 0 0.353920 0.189347 0.159264 0.060166 0.276411 0.108122 0.055035 0.104406 +0.357143 +0.353920 0 0 0.230048 0.184038 0.069014 0.593169 0.245266 0.155725 0.166342 +0.500000 +0 0 0.353920 0.166342 0.122102 0.040701 0.172890 0.070961 0.038223 0.058751 +0.357143 +0 0 0.353920 0.164573 0.127411 0.037162 0.159972 0.077862 0.056273 0.036631 +0.285714 +0 0.353920 0 0.215891 0.176960 0.063706 0.508936 0.183507 0.132189 0.118386 +0.285714 +0 0 0.353920 0.168112 0.129181 0.042470 0.187577 0.088657 0.034507 0.057512 +0.321429 +0 0 0.353920 0.127411 0.099098 0.028314 0.062113 0.028667 0.017873 0.024774 +0.178571 +0 0.353920 0 0.212352 0.169881 0.060166 0.373739 0.161918 0.086179 0.110954 +0.321429 +0 0 0.353920 0.132720 0.100867 0.028314 0.079986 0.034507 0.014157 0.025659 +0.214286 +0.353920 0 0 0.194656 0.146877 0.061936 0.368784 0.116617 0.082286 0.102814 +0.500000 +0 0 0.353920 0.143337 0.107945 0.035392 0.094850 0.040524 0.018758 0.030083 +0.214286 +0 0 0.353920 0.180499 0.143337 0.042470 0.215891 0.081048 0.046363 0.083171 +0.357143 +0 0 0.353920 0.164573 0.125641 0.031853 0.153070 0.070961 0.026190 0.045125 +0.285714 +0 0 0.353920 0.054858 0.037162 0.017696 0.006194 0.001770 0.001239 0.001770 +0.107143 +0.353920 0 0 0.159264 0.116793 0.037162 0.175367 0.091134 0.029021 0.045656 +0.250000 +0 0.353920 0 0.237126 0.207043 0.056627 0.463281 0.192709 0.104229 0.146169 +0.321429 +0 0.353920 0 0.228278 0.180499 0.063706 0.573173 0.276588 0.113962 0.165457 +0.392857 +0 0 0.353920 0.182269 0.138029 0.044240 0.201911 0.084233 0.044771 0.065475 +0.250000 +0 0 0.353920 0.194656 0.146877 0.047779 0.286498 0.105645 0.071315 0.099098 +0.392857 +0 0.353920 0 0.201734 0.153955 0.049549 0.303840 0.138206 0.069368 0.081225 +0.250000 +0 0.353920 0 0.237126 0.189347 0.065475 0.565210 0.222085 0.123872 0.166342 +0.714286 +0 0.353920 0 0.214121 0.175190 0.060166 0.386303 0.154486 0.096089 0.118563 +0.428571 +0.353920 0 0 0.222969 0.178729 0.058397 0.445939 0.160149 0.097505 0.143691 +0.464286 +0.353920 0 0 0.251283 0.196425 0.061936 0.757388 0.440807 0.131835 0.153601 +0.357143 +0 0 0.353920 0.201734 0.155725 0.046010 0.271279 0.122810 0.063175 0.071492 +0.321429 +0 0.353920 0 0.187577 0.152185 0.060166 0.274288 0.123872 0.053796 0.083171 +0.571429 +0 0 0.353920 0.178729 0.134489 0.047779 0.190586 0.093612 0.033622 0.058397 +0.285714 +0.353920 0 0 0.222969 0.171651 0.056627 0.439922 0.220492 0.097328 0.106176 +0.321429 +0 0 0.353920 0.083171 0.046010 0.026544 0.056096 0.024243 0.013095 0.016457 +0.142857 +0.353920 0 0 0.180499 0.143337 0.044240 0.245089 0.115732 0.054858 0.063882 +0.214286 +0.353920 0 0 0.214121 0.166342 0.040701 0.394266 0.138913 0.102991 0.109715 +0.500000 +0 0.353920 0 0.249513 0.198195 0.072554 0.842683 0.350911 0.177137 0.220846 +0.321429 +0.353920 0 0 0.231817 0.185808 0.065475 0.445585 0.172359 0.078393 0.157494 +0.678571 +0.353920 0 0 0.201734 0.155725 0.033622 0.292692 0.120156 0.078393 0.083171 +0.250000 +0 0 0.353920 0.208813 0.168112 0.051318 0.344895 0.165457 0.073261 0.091665 +0.321429 +0 0 0.353920 0.150416 0.109715 0.031853 0.106530 0.049018 0.023005 0.028314 +0.214286 +0.353920 0 0 0.230048 0.175190 0.056627 0.461511 0.201734 0.110423 0.131835 +0.285714 +0 0.353920 0 0.201734 0.161033 0.053088 0.391789 0.191117 0.090250 0.095558 +0.250000 +0 0 0.353920 0.146877 0.115024 0.035392 0.110777 0.049195 0.022120 0.034153 +0.214286 +0.353920 0 0 0.199965 0.150416 0.056627 0.333569 0.123695 0.077331 0.097328 +0.571429 +0.353920 0 0 0.125641 0.099098 0.033622 0.086887 0.033799 0.021943 0.026544 +0.357143 +0.353920 0 0 0.244205 0.194656 0.069014 0.628915 0.272164 0.134489 0.152362 +0.357143 +0 0.353920 0 0.201734 0.157494 0.053088 0.352150 0.178376 0.065475 0.088657 +0.285714 +0.353920 0 0 0.196425 0.152185 0.058397 0.268094 0.096797 0.057866 0.097328 +0.428571 +0.353920 0 0 0.212352 0.164573 0.054858 0.359759 0.181207 0.087241 0.079632 +0.321429 +0 0 0.353920 0.161033 0.116793 0.035392 0.131658 0.126703 0.027429 0.038931 +0.250000 +0 0.353920 0 0.187577 0.150416 0.053088 0.300655 0.116086 0.082109 0.071492 +0.250000 +0.353920 0 0 0.219430 0.164573 0.051318 0.322421 0.132720 0.075916 0.098390 +0.321429 +0 0 0.353920 0.166342 0.123872 0.047779 0.200672 0.081932 0.051849 0.053973 +0.357143 +0 0 0.353920 0.153955 0.132720 0.038931 0.147054 0.060166 0.026898 0.051318 +0.250000 +0 0 0.353920 0.143337 0.107945 0.035392 0.095912 0.034153 0.021589 0.032207 +0.214286 +0.353920 0 0 0.224739 0.168112 0.060166 0.422403 0.184215 0.095381 0.129712 +0.321429 +0.353920 0 0 0.217661 0.166342 0.056627 0.360113 0.167404 0.084764 0.099098 +0.321429 +0 0 0.353920 0.189347 0.141568 0.047779 0.274288 0.130242 0.073615 0.072730 +0.250000 +0 0 0.353920 0.153955 0.122102 0.042470 0.158379 0.078216 0.039639 0.044240 +0.214286 +0 0.353920 0 0.233587 0.187577 0.060166 0.506459 0.220138 0.109361 0.140860 +0.321429 +0.353920 0 0 0.184038 0.138029 0.042470 0.227747 0.102106 0.055565 0.056981 +0.214286 +0 0 0.353920 0.109715 0.084941 0.031853 0.051495 0.021412 0.011148 0.015926 +0.214286 +0.353920 0 0 0.203504 0.168112 0.056627 0.394266 0.175367 0.097151 0.102637 +0.285714 +0 0.353920 0 0.201734 0.159264 0.056627 0.343833 0.140329 0.090250 0.092019 +0.392857 +0.353920 0 0 0.221200 0.176960 0.065475 0.439745 0.212175 0.087772 0.118563 +0.321429 +0 0.353920 0 0.203504 0.162803 0.053088 0.328084 0.117855 0.073261 0.105645 +0.285714 +0 0.353920 0 0.205273 0.161033 0.056627 0.326137 0.110423 0.069368 0.106176 +0.571429 +0.353920 0 0 0.182269 0.143337 0.046010 0.255530 0.113254 0.046363 0.074323 +0.321429 +0 0.353920 0 0.231817 0.176960 0.072554 0.540789 0.219961 0.131835 0.160503 +0.357143 +0.353920 0 0 0.221200 0.175190 0.054858 0.362768 0.162803 0.068837 0.120333 +0.285714 +0 0 0.353920 0.187577 0.139798 0.040701 0.168112 0.071669 0.035746 0.052380 +0.250000 +0.353920 0 0 0.235357 0.189347 0.054858 0.489471 0.210936 0.090780 0.171651 +0.464286 +0 0 0.353920 0.130950 0.097328 0.033622 0.090957 0.035923 0.019466 0.029198 +0.178571 +0 0.353920 0 0.184038 0.132720 0.047779 0.190232 0.078216 0.041409 0.060166 +0.250000 +0 0 0.353920 0.130950 0.099098 0.031853 0.077154 0.035215 0.019289 0.021766 +0.214286 +0.353920 0 0 0.217661 0.175190 0.054858 0.455318 0.153955 0.103698 0.114847 +0.357143 +0 0 0.353920 0.176960 0.138029 0.046010 0.179614 0.074854 0.036808 0.062113 +0.285714 +0.353920 0 0 0.180499 0.138029 0.044240 0.232348 0.092727 0.064944 0.061936 +0.321429 +0 0.353920 0 0.235357 0.187577 0.063706 0.527694 0.224562 0.121041 0.153955 +0.321429 +0 0 0.353920 0.125641 0.095558 0.026544 0.072200 0.107769 0.016280 0.021058 +0.214286 +0.353920 0 0 0.247744 0.196425 0.070784 0.657583 0.258361 0.129712 0.210582 +0.357143 +0.353920 0 0 0.191117 0.148646 0.047779 0.285790 0.123341 0.063529 0.083171 +0.357143 +0 0 0.353920 0.127411 0.097328 0.030083 0.069899 0.026367 0.014688 0.024774 +0.285714 +0 0.353920 0 0.169881 0.130950 0.046010 0.208282 0.087595 0.053265 0.056450 +0.500000 +0 0.353920 0 0.233587 0.184038 0.070784 0.593169 0.238188 0.170058 0.159264 +0.571429 +0 0.353920 0 0.182269 0.139798 0.049549 0.242789 0.099451 0.044417 0.077862 +0.392857 +0 0 0.353920 0.153955 0.115024 0.042470 0.141391 0.064236 0.021589 0.039816 +0.250000 +0 0 0.353920 0.130950 0.099098 0.030083 0.070076 0.028491 0.016103 0.020527 +0.142857 +0 0.353920 0 0.155725 0.120333 0.035392 0.159618 0.066537 0.030791 0.046010 +0.321429 +0 0.353920 0 0.238896 0.191117 0.074323 0.563794 0.242789 0.112546 0.159264 +0.357143 +0 0 0.353920 0.166342 0.129181 0.035392 0.145461 0.061936 0.030260 0.047779 +0.250000 +0.353920 0 0 0.102637 0.079632 0.028314 0.045833 0.018935 0.009202 0.015926 +0.321429 +0.353920 0 0 0.208813 0.159264 0.056627 0.353212 0.157494 0.075739 0.106530 +0.285714 +0 0.353920 0 0.212352 0.159264 0.053088 0.340648 0.154840 0.078747 0.098213 +0.285714 +0 0.353920 0 0.155725 0.120333 0.049549 0.170589 0.065829 0.038400 0.056627 +0.285714 +0.353920 0 0 0.238896 0.184038 0.051318 0.482923 0.197133 0.120510 0.136259 +0.357143 +0 0.353920 0 0.168112 0.134489 0.049549 0.243851 0.112016 0.046540 0.069191 +0.214286 +0 0 0.353920 0.129181 0.093789 0.030083 0.075385 0.033445 0.017342 0.021235 +0.214286 +0 0.353920 0 0.194656 0.152185 0.049549 0.297293 0.132720 0.077154 0.068837 +0.250000 +0 0 0.353920 0.132720 0.097328 0.033622 0.081225 0.033622 0.019289 0.023359 +0.214286 +0 0 0.353920 0.145107 0.107945 0.031853 0.125111 0.055565 0.026367 0.035392 +0.214286 +0.353920 0 0 0.168112 0.139798 0.047779 0.209520 0.087241 0.058220 0.070784 +0.428571 +0 0 0.353920 0.138029 0.102637 0.035392 0.078747 0.033622 0.016457 0.025836 +0.214286 +0 0.353920 0 0.263670 0.207043 0.067245 0.695806 0.298531 0.154663 0.207220 +0.607143 +0.353920 0 0 0.201734 0.161033 0.053088 0.339763 0.136967 0.084410 0.097328 +0.357143 +0.353920 0 0 0.118563 0.083171 0.030083 0.054681 0.023359 0.012210 0.015926 +0.178571 +0 0 0.353920 0.102637 0.074323 0.024774 0.039462 0.016988 0.007255 0.010618 +0.142857 +0 0.353920 0 0.203504 0.171651 0.058397 0.368253 0.148292 0.093435 0.106176 +0.464286 +0 0 0.353920 0.192886 0.141568 0.046010 0.242789 0.116263 0.051495 0.063706 +0.285714 +0.353920 0 0 0.224739 0.182269 0.058397 0.434967 0.178906 0.105291 0.125111 +0.321429 +0 0.353920 0 0.215891 0.159264 0.056627 0.402053 0.146523 0.110069 0.106176 +0.285714 +0 0 0.353920 0.141568 0.111485 0.035392 0.114139 0.050611 0.026013 0.032207 +0.178571 +0 0.353920 0 0.240665 0.194656 0.061936 0.636348 0.288445 0.138913 0.161033 +0.642857 +0.353920 0 0 0.221200 0.169881 0.060166 0.479738 0.237480 0.094850 0.119802 +0.321429 +0.353920 0 0 0.205273 0.157494 0.053088 0.337108 0.152716 0.068837 0.101575 +0.357143 +0.353920 0 0 0.194656 0.159264 0.053088 0.359051 0.144045 0.071315 0.101752 +0.321429 +0 0.353920 0 0.221200 0.171651 0.053088 0.387365 0.187931 0.092373 0.104760 +0.321429 +0.353920 0 0 0.214121 0.168112 0.053088 0.407008 0.203504 0.082109 0.105114 +0.321429 +0.353920 0 0 0.207043 0.164573 0.054858 0.323660 0.161210 0.069545 0.083171 +0.285714 +0 0.353920 0 0.215891 0.166342 0.058397 0.417094 0.200319 0.098567 0.104052 +0.357143 +0 0 0.353920 0.113254 0.086710 0.028314 0.056096 0.022474 0.011502 0.017696 +0.428571 +0 0.353920 0 0.205273 0.159264 0.069014 0.292515 0.142807 0.061228 0.079632 +0.285714 +0 0.353920 0 0.180499 0.141568 0.044240 0.192886 0.092373 0.040701 0.049018 +0.178571 +0.353920 0 0 0.201734 0.155725 0.054858 0.394974 0.168997 0.081932 0.095558 +0.428571 +0 0 0.353920 0.115024 0.088480 0.028314 0.062290 0.021058 0.012564 0.022297 +0.214286 +0 0.353920 0 0.178729 0.141568 0.044240 0.206335 0.087064 0.046010 0.061936 +0.214286 +0.353920 0 0 0.176960 0.143337 0.054858 0.273226 0.122456 0.054327 0.086710 +0.392857 +0 0 0.353920 0.192886 0.143337 0.047779 0.210405 0.095558 0.041939 0.065475 +0.250000 +0 0 0.353920 0.166342 0.141568 0.056627 0.180499 0.057158 0.025836 0.070076 +0.464286 +0 0 0.353920 0.152185 0.116793 0.033622 0.113254 0.041763 0.023005 0.043532 +0.214286 +0 0 0.353920 0.123872 0.093789 0.038931 0.073969 0.023359 0.020881 0.026544 +0.285714 +0.353920 0 0 0.217661 0.166342 0.058397 0.399221 0.158025 0.077685 0.120333 +0.321429 +0.353920 0 0 0.219430 0.173421 0.060166 0.428420 0.183507 0.090426 0.118563 +0.428571 +0.353920 0 0 0.196425 0.145107 0.044240 0.211998 0.082994 0.051849 0.068660 +0.250000 +0.353920 0 0 0.222969 0.169881 0.051318 0.357990 0.149885 0.083879 0.107945 +0.392857 +0 0 0.353920 0.168112 0.120333 0.037162 0.160503 0.071846 0.028314 0.051849 +0.285714 +0 0 0.353920 0.180499 0.132720 0.035392 0.204743 0.084233 0.043355 0.061936 +0.214286 +0 0 0.353920 0.115024 0.084941 0.026544 0.066183 0.029198 0.015749 0.017696 +0.178571 +0 0 0.353920 0.166342 0.123872 0.046010 0.164927 0.065298 0.035038 0.051318 +0.357143 +0 0.353920 0 0.235357 0.201734 0.065475 0.538666 0.246505 0.107061 0.143337 +0.428571 +0.353920 0 0 0.258361 0.210582 0.081402 1 0.405769 0.148292 0.317466 +0.571429 +0.353920 0 0 0.228278 0.180499 0.056627 0.470713 0.235887 0.109361 0.112193 +0.285714 +0 0.353920 0 0.233587 0.178729 0.065475 0.540789 0.244205 0.107061 0.156079 +0.357143 +0 0.353920 0 0.203504 0.152185 0.054858 0.281543 0.123341 0.068130 0.077862 +0.285714 +0 0.353920 0 0.173421 0.136259 0.044240 0.190940 0.076978 0.045302 0.058397 +0.357143 +0 0.353920 0 0.247744 0.194656 0.060166 0.596001 0.266678 0.115555 0.113254 +0.357143 +0 0.353920 0 0.224739 0.175190 0.061936 0.428597 0.250221 0.096443 0.114316 +0.285714 +0 0 0.353920 0.157494 0.125641 0.033622 0.127942 0.050080 0.027783 0.042470 +0.250000 +0.353920 0 0 0.226509 0.182269 0.058397 0.484516 0.223677 0.120864 0.126703 +0.321429 +0 0.353920 0 0.226509 0.176960 0.053088 0.378871 0.131304 0.095735 0.127411 +0.250000 +0 0 0.353920 0.161033 0.125641 0.044240 0.188462 0.079632 0.044594 0.051849 +0.214286 +0 0.353920 0 0.245974 0.185808 0.072554 0.643603 0.289860 0.142453 0.160149 +0.428571 +0 0.353920 0 0.192886 0.146877 0.070784 0.480623 0.200672 0.112546 0.142630 +0.321429 +0 0 0.353920 0.090250 0.065475 0.024774 0.026544 0.009910 0.006371 0.008848 +0.178571 +0 0 0.353920 0.143337 0.106176 0.031853 0.102106 0.048841 0.022474 0.027075 +0.178571 +0 0.353920 0 0.222969 0.176960 0.056627 0.431782 0.173598 0.106176 0.122102 +0.464286 +0 0 0.353920 0.134489 0.097328 0.035392 0.079809 0.028314 0.017342 0.030083 +0.321429 +0.353920 0 0 0.205273 0.162803 0.056627 0.376217 0.181561 0.095735 0.092904 +0.285714 +0 0 0.353920 0.192886 0.143337 0.046010 0.232879 0.115732 0.051141 0.061582 +0.250000 +0 0 0.353920 0.168112 0.129181 0.040701 0.173421 0.078924 0.043709 0.047248 +0.285714 +0.353920 0 0 0.199965 0.152185 0.053088 0.294107 0.150239 0.061405 0.077508 +0.321429 +0 0.353920 0 0.198195 0.157494 0.063706 0.319589 0.126526 0.072377 0.104406 +0.285714 +0 0.353920 0 0.260131 0.199965 0.072554 0.752964 0.335870 0.162803 0.199965 +0.392857 +0 0 0.353920 0.125641 0.093789 0.030083 0.086179 0.043178 0.018581 0.021235 +0.178571 +0 0 0.353920 0.224739 0.169881 0.070784 0.483277 0.221377 0.091842 0.150416 +0.535714 +0 0.353920 0 0.208813 0.159264 0.056627 0.318528 0.126703 0.055211 0.111485 +0.642857 +0 0 0.353920 0.099098 0.074323 0.030083 0.038046 0.014688 0.008494 0.012033 +0.142857 +0 0 0.353920 0.090250 0.067245 0.021235 0.030437 0.014157 0.006548 0.008848 +0.142857 +0 0 0.353920 0.203504 0.157494 0.056627 0.324721 0.159264 0.068483 0.084941 +0.285714 +0 0 0.353920 0.194656 0.153955 0.044240 0.262254 0.123164 0.056096 0.072907 +0.285714 +0.353920 0 0 0.219430 0.173421 0.067245 0.431074 0.193063 0.104937 0.125641 +0.428571 +0 0.353920 0 0.226509 0.171651 0.051318 0.401168 0.195541 0.088657 0.106707 +0.357143 +0.353920 0 0 0.237126 0.176960 0.067245 0.537604 0.218015 0.137321 0.146877 +0.321429 +0.353920 0 0 0.226509 0.176960 0.065475 0.461334 0.157317 0.093258 0.164573 +0.535714 +0.353920 0 0 0.201734 0.153955 0.051318 0.320474 0.138913 0.083348 0.097328 +0.321429 +0 0 0.353920 0.180499 0.141568 0.044240 0.197310 0.092550 0.042293 0.053973 +0.285714 +0 0.353920 0 0.212352 0.178729 0.067245 0.399575 0.155194 0.090603 0.127411 +0.428571 +0 0 0.353920 0.153955 0.125641 0.044240 0.144222 0.054327 0.026190 0.058397 +0.285714 +0 0.353920 0 0.159264 0.115024 0.047779 0.155017 0.063882 0.041232 0.038931 +0.285714 +0 0.353920 0 0.240665 0.184038 0.065475 0.545390 0.211821 0.139798 0.161918 +0.321429 +0 0 0.353920 0.129181 0.092019 0.040701 0.077154 0.033091 0.015749 0.024774 +0.285714 +0 0.353920 0 0.161033 0.130950 0.037162 0.174305 0.076447 0.044063 0.047779 +0.285714 +0.353920 0 0 0.228278 0.178729 0.053088 0.410724 0.183684 0.092550 0.118563 +0.321429 +0 0.353920 0 0.254822 0.210582 0.079632 0.696868 0.284728 0.149708 0.233587 +0.535714 +0 0.353920 0 0.228278 0.185808 0.067245 0.517961 0.234118 0.121571 0.153955 +0.642857 +0.353920 0 0 0.127411 0.104406 0.037162 0.085295 0.030614 0.018758 0.033622 +0.250000 +0.353920 0 0 0.196425 0.150416 0.053088 0.308972 0.163688 0.065298 0.069545 +0.285714 +0 0.353920 0 0.194656 0.146877 0.047779 0.288268 0.151124 0.065652 0.061936 +0.250000 +0.353920 0 0 0.100867 0.076093 0.026544 0.037515 0.014688 0.008140 0.012387 +0.142857 +0.353920 0 0 0.217661 0.169881 0.063706 0.410370 0.171474 0.076624 0.115024 +0.428571 +0.353920 0 0 0.224739 0.185808 0.056627 0.422934 0.192355 0.087064 0.118563 +0.392857 +0.353920 0 0 0.178729 0.139798 0.047779 0.209343 0.101929 0.046540 0.065475 +0.392857 +0.353920 0 0 0.210582 0.168112 0.049549 0.334100 0.128296 0.066891 0.111485 +0.285714 +0 0 0.353920 0.155725 0.120333 0.035392 0.134136 0.061051 0.028844 0.035746 +0.214286 +0 0.353920 0 0.207043 0.159264 0.051318 0.348080 0.171474 0.085649 0.077862 +0.285714 +0.353920 0 0 0.198195 0.145107 0.058397 0.329145 0.124049 0.083879 0.106176 +0.428571 +0.353920 0 0 0.210582 0.171651 0.053088 0.383472 0.187754 0.081755 0.097682 +0.250000 +0 0.353920 0 0.194656 0.155725 0.054858 0.334808 0.110777 0.064590 0.118563 +0.535714 +0.353920 0 0 0.184038 0.134489 0.047779 0.206158 0.088657 0.055388 0.061936 +0.250000 +0 0 0.353920 0.136259 0.106176 0.044240 0.121394 0.060343 0.026013 0.028667 +0.214286 +0 0 0.353920 0.067245 0.051318 0.014157 0.013449 0.005840 0.002300 0.005309 +0.107143 +0 0.353920 0 0.210582 0.164573 0.049549 0.393913 0.183153 0.086356 0.107945 +0.392857 +0 0.353920 0 0.159264 0.127411 0.038931 0.158202 0.071846 0.029021 0.046010 +0.392857 +0.353920 0 0 0.215891 0.173421 0.056627 0.405592 0.211290 0.087064 0.093789 +0.250000 +0 0.353920 0 0.203504 0.157494 0.049549 0.333038 0.136082 0.089188 0.100867 +0.285714 +0.353920 0 0 0.205273 0.159264 0.061936 0.377986 0.150416 0.071846 0.113254 +0.428571 +0 0.353920 0 0.256592 0.198195 0.065475 0.634224 0.308972 0.129889 0.153955 +0.357143 +0.353920 0 0 0.221200 0.169881 0.065475 0.427004 0.207751 0.102637 0.101221 +0.250000 +0 0.353920 0 0.210582 0.176960 0.063706 0.372677 0.155902 0.067953 0.138029 +0.428571 +0 0.353920 0 0.221200 0.171651 0.058397 0.433729 0.179614 0.104760 0.127411 +0.321429 +0 0 0.353920 0.122102 0.090250 0.033622 0.068837 0.032738 0.013095 0.019466 +0.178571 +0.353920 0 0 0.182269 0.143337 0.051318 0.245974 0.076093 0.057866 0.082817 +0.500000 +0.353920 0 0 0.244205 0.178729 0.070784 0.662538 0.316050 0.142099 0.169881 +0.321429 +0.353920 0 0 0.199965 0.164573 0.061936 0.352150 0.137852 0.064767 0.130950 +0.500000 +0.353920 0 0 0.205273 0.168112 0.053088 0.343302 0.136259 0.076624 0.123872 +0.357143 +0 0 0.353920 0.215891 0.168112 0.060166 0.367546 0.156963 0.085295 0.113254 +0.464286 +0.353920 0 0 0.132720 0.100867 0.033622 0.089542 0.033976 0.020350 0.032738 +0.285714 +0 0.353920 0 0.201734 0.166342 0.049549 0.308264 0.136259 0.074677 0.081932 +0.321429 +0 0.353920 0 0.228278 0.176960 0.070784 0.505574 0.226155 0.107945 0.127411 +0.357143 +0.353920 0 0 0.219430 0.164573 0.067245 0.474783 0.201911 0.112369 0.125641 +0.357143 +0 0 0.353920 0.185808 0.141568 0.049549 0.231463 0.107945 0.056627 0.059812 +0.214286 +0 0 0.353920 0.152185 0.113254 0.035392 0.136436 0.067953 0.026367 0.035392 +0.214286 +0.353920 0 0 0.143337 0.109715 0.035392 0.136259 0.061228 0.032384 0.038931 +0.214286 +0.353920 0 0 0.146877 0.106176 0.035392 0.118740 0.054681 0.024243 0.033622 +0.214286 +0 0.353920 0 0.191117 0.153955 0.061936 0.315696 0.113962 0.061582 0.118563 +0.428571 +0.353920 0 0 0.145107 0.115024 0.035392 0.125818 0.051672 0.025482 0.037162 +0.285714 +0 0 0.353920 0.196425 0.152185 0.049549 0.271279 0.120687 0.058397 0.081402 +0.285714 +0.353920 0 0 0.201734 0.162803 0.054858 0.354097 0.160680 0.072554 0.093789 +0.357143 +0 0 0.353920 0.185808 0.139798 0.042470 0.215183 0.105114 0.049372 0.049726 +0.250000 +0 0 0.353920 0.219430 0.166342 0.054858 0.341886 0.158202 0.060520 0.100513 +0.357143 +0 0 0.353920 0.127411 0.093789 0.033622 0.081932 0.037162 0.016280 0.026544 +0.214286 +0 0.353920 0 0.221200 0.176960 0.056627 0.430720 0.202619 0.073261 0.125641 +0.357143 +0 0.353920 0 0.166342 0.127411 0.046010 0.167050 0.064413 0.040347 0.053088 +0.321429 +0.353920 0 0 0.196425 0.153955 0.047779 0.303663 0.133428 0.056096 0.102637 +0.500000 +0.353920 0 0 0.191117 0.148646 0.054858 0.261370 0.124403 0.053796 0.076093 +0.392857 +0 0 0.353920 0.219430 0.169881 0.063706 0.400106 0.187047 0.093966 0.108299 +0.392857 +0 0 0.353920 0.086710 0.061936 0.019466 0.027783 0.014157 0.006371 0.007078 +0.142857 +0 0.353920 0 0.217661 0.173421 0.067245 0.401522 0.166165 0.090957 0.123164 +0.357143 +0.353920 0 0 0.247744 0.192886 0.065475 0.571049 0.265440 0.142807 0.130419 +0.357143 +0.353920 0 0 0.166342 0.132720 0.046010 0.185100 0.075739 0.046717 0.051318 +0.250000 +0 0 0.353920 0.203504 0.159264 0.060166 0.329676 0.126703 0.075916 0.092019 +0.428571 +0 0.353920 0 0.238896 0.180499 0.069014 0.489117 0.213944 0.112369 0.140329 +0.321429 +0.353920 0 0 0.222969 0.178729 0.060166 0.386303 0.163334 0.094143 0.106176 +0.285714 +0 0 0.353920 0.205273 0.150416 0.051318 0.293753 0.134136 0.056804 0.091134 +0.357143 +0 0.353920 0 0.224739 0.171651 0.054858 0.379756 0.165280 0.069899 0.123872 +0.357143 +0 0.353920 0 0.221200 0.173421 0.067245 0.602194 0.264201 0.145284 0.136436 +0.357143 +0 0 0.353920 0.192886 0.152185 0.053088 0.262608 0.124757 0.055919 0.073615 +0.321429 +0.353920 0 0 0.164573 0.127411 0.044240 0.154486 0.059812 0.038046 0.051318 +0.357143 +0 0.353920 0 0.219430 0.168112 0.053088 0.337816 0.161033 0.066006 0.098036 +0.285714 +0 0 0.353920 0.148646 0.109715 0.035392 0.099274 0.039816 0.021766 0.032738 +0.250000 +0 0.353920 0 0.235357 0.180499 0.061936 0.488586 0.238896 0.105645 0.115024 +0.321429 +0 0 0.353920 0.155725 0.125641 0.058397 0.153955 0.056273 0.037162 0.049549 +0.535714 +0 0.353920 0 0.224739 0.180499 0.061936 0.429128 0.202973 0.092373 0.127411 +0.464286 +0.353920 0 0 0.212352 0.168112 0.053088 0.350380 0.136613 0.077685 0.109892 +0.321429 +0 0 0.353920 0.169881 0.125641 0.040701 0.167227 0.073084 0.039639 0.046717 +0.250000 +0 0.353920 0 0.249513 0.196425 0.070784 0.519731 0.166873 0.114493 0.184038 +0.642857 +0.353920 0 0 0.215891 0.166342 0.053088 0.411432 0.199965 0.091311 0.109184 +0.357143 +0 0.353920 0 0.245974 0.187577 0.070784 0.724650 0.265440 0.148469 0.215714 +0.464286 +0 0.353920 0 0.233587 0.187577 0.060166 0.469297 0.183684 0.092904 0.155725 +0.428571 +0.353920 0 0 0.230048 0.182269 0.061936 0.518846 0.239604 0.107769 0.141568 +0.321429 +0.353920 0 0 0.143337 0.107945 0.030083 0.092196 0.040524 0.021058 0.030083 +0.250000 +0 0 0.353920 0.198195 0.157494 0.054858 0.309149 0.106353 0.073969 0.097328 +0.535714 +0 0 0.353920 0.192886 0.150416 0.049549 0.288268 0.107945 0.081755 0.086356 +0.321429 +0 0 0.353920 0.159264 0.118563 0.040701 0.139267 0.069014 0.025128 0.038931 +0.214286 +0 0 0.353920 0.155725 0.115024 0.035392 0.147408 0.065475 0.030614 0.038931 +0.178571 +0 0.353920 0 0.185808 0.155725 0.044240 0.251814 0.113431 0.056273 0.067776 +0.214286 +0.353920 0 0 0.242435 0.189347 0.054858 0.490002 0.234118 0.075916 0.144222 +0.321429 +0.353920 0 0 0.208813 0.162803 0.049549 0.355335 0.175544 0.076624 0.092019 +0.285714 +0 0.353920 0 0.226509 0.176960 0.061936 0.493364 0.174659 0.102991 0.141568 +0.321429 +0.353920 0 0 0.192886 0.148646 0.042470 0.278358 0.142630 0.065475 0.060166 +0.214286 +0.353920 0 0 0.162803 0.123872 0.042470 0.182269 0.079278 0.038223 0.055388 +0.321429 +0 0 0.353920 0.168112 0.129181 0.037162 0.147761 0.058220 0.035038 0.044948 +0.214286 +0 0.353920 0 0.155725 0.120333 0.047779 0.140683 0.053265 0.033445 0.047779 +0.250000 +0 0 0.353920 0.185808 0.141568 0.044240 0.200142 0.086179 0.042116 0.061936 +0.250000 +0 0.353920 0 0.187577 0.143337 0.046010 0.224916 0.093258 0.055388 0.065475 +0.285714 +0 0 0.353920 0.132720 0.099098 0.028314 0.079986 0.037162 0.016634 0.023005 +0.178571 +0.353920 0 0 0.222969 0.169881 0.053088 0.417094 0.183507 0.087772 0.114493 +0.250000 +0 0.353920 0 0.192886 0.153955 0.053088 0.242612 0.102814 0.051318 0.079632 +0.321429 +0.353920 0 0 0.212352 0.169881 0.054858 0.358875 0.159618 0.066714 0.115024 +0.357143 +0 0.353920 0 0.176960 0.143337 0.053088 0.211113 0.089542 0.044594 0.065475 +0.392857 +0 0 0.353920 0.157494 0.118563 0.038931 0.145461 0.070253 0.033091 0.038577 +0.250000 +0.353920 0 0 0.207043 0.159264 0.053088 0.370554 0.152716 0.097682 0.111485 +0.464286 +0.353920 0 0 0.244205 0.187577 0.074323 0.560255 0.260308 0.143337 0.136790 +0.392857 +0 0.353920 0 0.207043 0.159264 0.060166 0.307379 0.117678 0.057866 0.095558 +0.750000 +0 0.353920 0 0.191117 0.155725 0.056627 0.385949 0.138383 0.081225 0.125641 +0.500000 +0 0.353920 0 0.203504 0.169881 0.058397 0.381525 0.180853 0.074146 0.108299 +0.285714 +0.353920 0 0 0.199965 0.155725 0.065475 0.321713 0.121748 0.082286 0.090250 +0.500000 +0.353920 0 0 0.208813 0.159264 0.054858 0.309326 0.130596 0.075562 0.084941 +0.250000 +0 0.353920 0 0.221200 0.169881 0.054858 0.425942 0.207574 0.084587 0.112723 +0.392857 +0.353920 0 0 0.207043 0.161033 0.079632 0.373385 0.135020 0.078216 0.129181 +0.500000 +0.353920 0 0 0.205273 0.155725 0.056627 0.293576 0.119094 0.070961 0.087949 +0.285714 +0 0.353920 0 0.212352 0.166342 0.060166 0.382410 0.176783 0.079455 0.113431 +0.285714 +0 0.353920 0 0.254822 0.194656 0.063706 0.537958 0.225447 0.115024 0.153955 +0.321429 +0 0 0.353920 0.116793 0.088480 0.026544 0.049726 0.019820 0.012387 0.017696 +0.142857 +0 0.353920 0 0.205273 0.162803 0.042470 0.351619 0.163688 0.084410 0.099098 +0.357143 +0 0.353920 0 0.171651 0.129181 0.053088 0.323660 0.146700 0.070430 0.096620 +0.214286 +0 0.353920 0 0.222969 0.169881 0.053088 0.372500 0.138737 0.118917 0.100867 +0.392857 +0.353920 0 0 0.217661 0.178729 0.058397 0.474252 0.188108 0.099628 0.145107 +0.392857 +0.353920 0 0 0.130950 0.093789 0.026544 0.075739 0.031853 0.018050 0.024774 +0.178571 +0.353920 0 0 0.194656 0.162803 0.046010 0.250752 0.107945 0.051495 0.072554 +0.392857 +0 0.353920 0 0.203504 0.164573 0.061936 0.388958 0.167581 0.071492 0.123872 +0.285714 +0 0 0.353920 0.097328 0.061936 0.031853 0.081932 0.033976 0.020173 0.024951 +0.142857 +0 0 0.353920 0.153955 0.120333 0.042470 0.140152 0.062821 0.028667 0.044240 +0.250000 +0 0 0.353920 0.125641 0.095558 0.035392 0.076447 0.029375 0.013095 0.026544 +0.321429 +0 0.353920 0 0.210582 0.168112 0.056627 0.403645 0.193594 0.081755 0.095912 +0.178571 +0.353920 0 0 0.222969 0.178729 0.053088 0.465935 0.223854 0.087241 0.130950 +0.357143 +0.353920 0 0 0.245974 0.191117 0.069014 0.598478 0.271810 0.128473 0.168289 +0.357143 +0 0.353920 0 0.247744 0.191117 0.076093 0.700053 0.236241 0.110600 0.251283 +0.821429 +0 0 0.353920 0.168112 0.132720 0.038931 0.161387 0.064413 0.035038 0.056627 +0.285714 +0 0.353920 0 0.199965 0.155725 0.054858 0.332508 0.151301 0.075739 0.095558 +0.392857 +0.353920 0 0 0.224739 0.184038 0.061936 0.457264 0.212352 0.095204 0.129889 +0.357143 +0 0.353920 0 0.247744 0.203504 0.072554 0.627500 0.214121 0.158202 0.190409 +0.428571 +0 0 0.353920 0.171651 0.129181 0.044240 0.150770 0.057689 0.034153 0.053442 +0.250000 +0 0 0.353920 0.150416 0.116793 0.040701 0.115555 0.046540 0.027252 0.036454 +0.178571 +0.353920 0 0 0.230048 0.180499 0.061936 0.465935 0.224562 0.092196 0.128827 +0.392857 +0.353920 0 0 0.141568 0.113254 0.033622 0.107238 0.047248 0.021235 0.035392 +0.214286 +0 0.353920 0 0.217661 0.168112 0.060166 0.390196 0.166165 0.083348 0.122102 +0.464286 +0.353920 0 0 0.226509 0.176960 0.060166 0.514776 0.227216 0.126526 0.125288 +0.285714 +0 0.353920 0 0.247744 0.185808 0.067245 0.566802 0.250221 0.129181 0.152185 +0.321429 +0 0 0.353920 0.099098 0.074323 0.023005 0.039285 0.015042 0.010087 0.010618 +0.178571 +0.353920 0 0 0.205273 0.173421 0.046010 0.401168 0.207397 0.090780 0.083879 +0.285714 +0 0 0.353920 0.207043 0.148646 0.051318 0.238365 0.102460 0.047602 0.077862 +0.285714 +0.353920 0 0 0.155725 0.120333 0.037162 0.142276 0.046187 0.033799 0.058397 +0.321429 +0 0.353920 0 0.173421 0.130950 0.040701 0.191471 0.060520 0.041586 0.065475 +0.357143 +0 0.353920 0 0.221200 0.169881 0.060166 0.478676 0.220669 0.098390 0.129181 +0.321429 +0.353920 0 0 0.198195 0.155725 0.046010 0.292161 0.085826 0.071492 0.100867 +0.321429 +0 0.353920 0 0.178729 0.145107 0.047779 0.232525 0.102991 0.047071 0.069014 +0.500000 +0 0 0.353920 0.132720 0.093789 0.033622 0.069368 0.030083 0.014865 0.020704 +0.142857 +0.353920 0 0 0.233587 0.178729 0.070784 0.577066 0.172182 0.105114 0.215891 +0.607143 +0 0.353920 0 0.256592 0.203504 0.061936 0.751725 0.270749 0.159795 0.300832 +0.678571 +0 0 0.353920 0.224739 0.176960 0.058397 0.526986 0.253053 0.121925 0.127942 +0.428571 +0 0 0.353920 0.185808 0.152185 0.053088 0.260662 0.114139 0.056981 0.076093 +0.357143 +0 0.353920 0 0.168112 0.132720 0.044240 0.204743 0.098213 0.030083 0.054858 +0.321429 +0 0 0.353920 0.136259 0.102637 0.031853 0.082109 0.030260 0.017519 0.028314 +0.214286 +0.353920 0 0 0.168112 0.130950 0.044240 0.190055 0.078570 0.043001 0.053088 +0.285714 +0 0 0.353920 0.182269 0.138029 0.049549 0.196602 0.070784 0.040170 0.079101 +0.392857 +0 0 0.353920 0.180499 0.139798 0.037162 0.195541 0.082817 0.044948 0.058397 +0.250000 +0 0 0.353920 0.113254 0.083171 0.031853 0.064767 0.034684 0.011856 0.014865 +0.214286 +0 0 0.353920 0.053088 0.035392 0.008848 0.005309 0.001593 0.001416 0.001770 +0.035714 +0 0.353920 0 0.221200 0.178729 0.061936 0.407008 0.193771 0.090603 0.107769 +0.357143 +0 0.353920 0 0.222969 0.176960 0.060166 0.464873 0.198018 0.094497 0.141568 +0.678571 +0.353920 0 0 0.228278 0.171651 0.054858 0.526986 0.209343 0.110423 0.134489 +0.607143 +0 0.353920 0 0.245974 0.198195 0.065475 0.626969 0.290037 0.117147 0.154663 +0.321429 +0.353920 0 0 0.146877 0.111485 0.042470 0.142099 0.070430 0.030791 0.034330 +0.250000 +0.353920 0 0 0.176960 0.130950 0.053088 0.375686 0.174836 0.078924 0.104760 +0.285714 +0 0 0.353920 0.100867 0.074323 0.019466 0.035746 0.014688 0.006017 0.011856 +0.142857 +0 0 0.353920 0.115024 0.084941 0.026544 0.053796 0.023005 0.010795 0.015926 +0.178571 +0 0 0.353920 0.185808 0.145107 0.061936 0.309326 0.126880 0.073261 0.072554 +0.607143 +0 0.353920 0 0.178729 0.134489 0.051318 0.230402 0.103875 0.067245 0.060166 +0.392857 +0 0.353920 0 0.235357 0.185808 0.074323 0.581844 0.289506 0.120156 0.151301 +0.321429 +0 0.353920 0 0.244205 0.191117 0.065475 0.556185 0.245443 0.112546 0.166342 +0.500000 +0.353920 0 0 0.141568 0.107945 0.046010 0.103875 0.033976 0.023890 0.037162 +0.285714 +0.353920 0 0 0.237126 0.180499 0.070784 0.564325 0.237303 0.136082 0.159441 +0.321429 +0 0 0.353920 0.148646 0.109715 0.033622 0.098744 0.044417 0.018050 0.031145 +0.178571 +0 0 0.353920 0.171651 0.132720 0.046010 0.213237 0.103875 0.045479 0.056627 +0.214286 +0.353920 0 0 0.187577 0.145107 0.058397 0.259069 0.066891 0.060166 0.109715 +0.357143 +0.353920 0 0 0.192886 0.148646 0.046010 0.311095 0.132366 0.059989 0.081402 +0.428571 +0 0 0.353920 0.123872 0.093789 0.030083 0.061405 0.027429 0.012033 0.019820 +0.178571 +0 0 0.353920 0.208813 0.157494 0.047779 0.273049 0.116086 0.061759 0.081402 +0.285714 +0 0 0.353920 0.157494 0.109715 0.031853 0.118917 0.055035 0.031853 0.030260 +0.214286 +0 0.353920 0 0.201734 0.159264 0.060166 0.388604 0.146523 0.066183 0.143337 +0.678571 +0 0.353920 0 0.187577 0.139798 0.040701 0.201203 0.088126 0.048664 0.056981 +0.285714 +0.353920 0 0 0.230048 0.184038 0.054858 0.484162 0.218899 0.101929 0.129181 +0.285714 +0 0.353920 0 0.153955 0.115024 0.038931 0.153424 0.062998 0.034861 0.054858 +0.214286 +0.353920 0 0 0.184038 0.139798 0.044240 0.205804 0.090780 0.044771 0.060166 +0.321429 +0 0 0.353920 0.194656 0.159264 0.046010 0.284551 0.119448 0.049726 0.081402 +0.178571 +0 0.353920 0 0.205273 0.168112 0.054858 0.344718 0.152362 0.081402 0.100867 +0.321429 +0.353920 0 0 0.230048 0.176960 0.049549 0.438153 0.218191 0.083348 0.113254 +0.250000 +0 0.353920 0 0.201734 0.159264 0.047779 0.276234 0.118386 0.065475 0.074323 +0.250000 +0.353920 0 0 0.208813 0.164573 0.049549 0.370200 0.166165 0.093081 0.093081 +0.214286 +0 0.353920 0 0.189347 0.150416 0.054858 0.274819 0.106884 0.055388 0.088480 +0.535714 +0 0 0.353920 0.070784 0.054858 0.014157 0.015396 0.005486 0.003185 0.002477 +0.107143 +0 0 0.353920 0.109715 0.079632 0.017696 0.051141 0.023890 0.013626 0.015926 +0.178571 +0 0 0.353920 0.182269 0.141568 0.044240 0.199080 0.088480 0.044063 0.060166 +0.214286 +0 0 0.353920 0.189347 0.159264 0.054858 0.285790 0.129358 0.052380 0.091842 +0.321429 +0 0 0.353920 0.171651 0.138029 0.044240 0.209167 0.101575 0.049903 0.042470 +0.285714 +0.353920 0 0 0.194656 0.148646 0.056627 0.474429 0.223854 0.110069 0.121748 +0.321429 +0 0 0.353920 0.086710 0.067245 0.021235 0.030437 0.014865 0.004955 0.008848 +0.107143 +0 0 0.353920 0.159264 0.120333 0.044240 0.143161 0.060520 0.024774 0.047602 +0.250000 +0.353920 0 0 0.159264 0.118563 0.044240 0.123518 0.042116 0.037339 0.040701 +0.321429 +0 0 0.353920 0.178729 0.141568 0.044240 0.198372 0.079809 0.050787 0.060166 +0.250000 +0.353920 0 0 0.198195 0.159264 0.051318 0.331092 0.150416 0.058220 0.096443 +0.357143 +0.353920 0 0 0.224739 0.180499 0.054858 0.348965 0.143337 0.079809 0.109715 +0.321429 +0 0.353920 0 0.226509 0.171651 0.065475 0.502389 0.238365 0.122633 0.115201 +0.357143 +0 0.353920 0 0.224739 0.178729 0.054858 0.456379 0.210228 0.111131 0.122102 +0.357143 +0.353920 0 0 0.217661 0.166342 0.053088 0.384888 0.176075 0.100159 0.095027 +0.285714 +0 0 0.353920 0.162803 0.123872 0.038931 0.141568 0.062290 0.029375 0.042647 +0.214286 +0.353920 0 0 0.148646 0.120333 0.044240 0.159087 0.058397 0.039816 0.050964 +0.357143 +0.353920 0 0 0.173421 0.134489 0.047779 0.191647 0.076978 0.033622 0.067245 +0.357143 +0.353920 0 0 0.201734 0.157494 0.053088 0.349496 0.178376 0.073261 0.088126 +0.250000 +0.353920 0 0 0.222969 0.180499 0.067245 0.530349 0.145992 0.108830 0.192886 +0.535714 +0 0.353920 0 0.217661 0.168112 0.054858 0.394620 0.171297 0.074854 0.125641 +0.321429 +0 0.353920 0 0.182269 0.141568 0.044240 0.217661 0.101398 0.043532 0.062467 +0.250000 +0 0 0.353920 0.146877 0.109715 0.035392 0.099274 0.040347 0.019996 0.034507 +0.178571 +0 0.353920 0 0.215891 0.169881 0.056627 0.436737 0.211644 0.084233 0.111485 +0.392857 +0 0 0.353920 0.047779 0.046010 0.014157 0.010264 0.004424 0.002300 0.002831 +0.107143 +0.353920 0 0 0.222969 0.173421 0.060166 0.415679 0.185985 0.096620 0.119979 +0.357143 +0 0.353920 0 0.208813 0.161033 0.053088 0.345426 0.164573 0.072730 0.097859 +0.321429 +0 0 0.353920 0.194656 0.146877 0.051318 0.276588 0.132012 0.056627 0.078393 +0.250000 +0 0.353920 0 0.222969 0.175190 0.058397 0.462750 0.211998 0.100513 0.111485 +0.357143 +0.353920 0 0 0.207043 0.164573 0.056627 0.338170 0.162626 0.083525 0.093789 +0.214286 +0.353920 0 0 0.164573 0.123872 0.042470 0.184215 0.071315 0.057512 0.065475 +0.357143 +0.353920 0 0 0.185808 0.143337 0.056627 0.280304 0.111839 0.051495 0.099098 +0.428571 +0 0 0.353920 0.164573 0.125641 0.042470 0.176075 0.084056 0.035038 0.049549 +0.250000 +0.353920 0 0 0.168112 0.132720 0.046010 0.183153 0.073438 0.041232 0.060166 +0.321429 +0 0 0.353920 0.178729 0.136259 0.044240 0.210936 0.086710 0.034330 0.074323 +0.285714 +0.353920 0 0 0.208813 0.164573 0.054858 0.402053 0.185631 0.092550 0.097328 +0.357143 +0.353920 0 0 0.240665 0.184038 0.058397 0.522916 0.256238 0.098744 0.143691 +0.357143 +0.353920 0 0 0.261901 0.201734 0.063706 0.662715 0.322598 0.151124 0.157848 +0.321429 +0 0 0.353920 0.102637 0.074323 0.021235 0.036985 0.014688 0.007786 0.012387 +0.142857 +0 0.353920 0 0.136259 0.106176 0.035392 0.096443 0.039462 0.020173 0.028314 +0.178571 +0.353920 0 0 0.221200 0.184038 0.061936 0.499204 0.244558 0.113962 0.122633 +0.321429 +0.353920 0 0 0.222969 0.173421 0.053088 0.423111 0.206866 0.090957 0.106176 +0.285714 +0.353920 0 0 0.194656 0.155725 0.054858 0.324013 0.129004 0.069014 0.088480 +0.250000 +0 0.353920 0 0.242435 0.189347 0.061936 0.560786 0.253937 0.133605 0.149177 +0.285714 +0.353920 0 0 0.237126 0.189347 0.067245 0.590692 0.264201 0.103875 0.179791 +0.357143 +0.353920 0 0 0.208813 0.176960 0.070784 0.420103 0.145815 0.095735 0.130950 +0.535714 +0.353920 0 0 0.205273 0.162803 0.054858 0.509467 0.237657 0.096620 0.104583 +0.321429 +0.353920 0 0 0.221200 0.176960 0.060166 0.388781 0.164396 0.077862 0.125288 +0.285714 +0.353920 0 0 0.249513 0.199965 0.182269 0.782162 0.391966 0.172182 0.181207 +0.321429 +0.353920 0 0 0.127411 0.095558 0.031853 0.078747 0.029375 0.018758 0.026544 +0.178571 +0.353920 0 0 0.231817 0.191117 0.058397 0.496549 0.246151 0.084410 0.148646 +0.357143 +0.353920 0 0 0.189347 0.153955 0.049549 0.309326 0.132189 0.081048 0.077685 +0.250000 +0.353920 0 0 0.125641 0.092019 0.030083 0.067422 0.028667 0.017165 0.019466 +0.178571 +0 0 0.353920 0.199965 0.152185 0.047779 0.302424 0.113608 0.062821 0.097328 +0.357143 +0 0.353920 0 0.118563 0.077862 0.024774 0.060166 0.026898 0.012918 0.017696 +0.178571 +0 0.353920 0 0.226509 0.191117 0.061936 0.432136 0.180499 0.091665 0.138029 +0.500000 +0 0.353920 0 0.194656 0.150416 0.049549 0.336932 0.173244 0.068837 0.077331 +0.214286 +0.353920 0 0 0.221200 0.166342 0.063706 0.402053 0.159618 0.114847 0.107945 +0.357143 +0 0.353920 0 0.184038 0.162803 0.053088 0.360644 0.185100 0.070253 0.089896 +0.214286 +0 0.353920 0 0.194656 0.153955 0.060166 0.312865 0.101752 0.058220 0.099098 +0.464286 +0 0 0.353920 0.106176 0.077862 0.028314 0.044417 0.019466 0.009379 0.013803 +0.178571 +0.353920 0 0 0.159264 0.123872 0.046010 0.162803 0.061582 0.039285 0.047779 +0.250000 +0.353920 0 0 0.194656 0.155725 0.056627 0.350734 0.123164 0.059459 0.132720 +0.678571 +0 0 0.353920 0.134489 0.095558 0.028314 0.074500 0.030614 0.014865 0.024774 +0.250000 +0 0.353920 0 0.221200 0.157494 0.056627 0.385772 0.162803 0.104937 0.107592 +0.357143 +0.353920 0 0 0.228278 0.171651 0.053088 0.432313 0.201557 0.096797 0.116793 +0.285714 +0 0.353920 0 0.178729 0.136259 0.047779 0.218899 0.088834 0.041586 0.070784 +0.392857 +0.353920 0 0 0.207043 0.162803 0.065475 0.326314 0.128650 0.075385 0.100867 +0.321429 +0.353920 0 0 0.233587 0.182269 0.069014 0.554061 0.259954 0.124934 0.136613 +0.285714 +0 0 0.353920 0.176960 0.139798 0.051318 0.278358 0.117501 0.064236 0.086887 +0.250000 +0.353920 0 0 0.214121 0.173421 0.063706 0.413024 0.161741 0.102637 0.132543 +0.285714 +0 0 0.353920 0.222969 0.173421 0.060166 0.430720 0.195187 0.075031 0.109715 +0.357143 +0 0 0.353920 0.095558 0.069014 0.023005 0.037692 0.016811 0.007963 0.010087 +0.142857 +0 0 0.353920 0.212352 0.169881 0.060166 0.324721 0.134489 0.078747 0.102637 +0.250000 +0.353920 0 0 0.201734 0.155725 0.061936 0.333215 0.134666 0.080871 0.100159 +0.285714 +0 0 0.353920 0.146877 0.111485 0.031853 0.128296 0.061936 0.029552 0.032915 +0.178571 +0 0.353920 0 0.159264 0.122102 0.042470 0.147408 0.058574 0.033622 0.047779 +0.285714 +0 0 0.353920 0.189347 0.148646 0.051318 0.327730 0.140860 0.069545 0.088480 +0.571429 +0 0.353920 0 0.185808 0.145107 0.047779 0.279773 0.143868 0.070076 0.062644 +0.250000 +0 0.353920 0 0.152185 0.120333 0.038931 0.135197 0.054504 0.033799 0.038577 +0.250000 +0 0 0.353920 0.148646 0.107945 0.035392 0.120864 0.058220 0.027429 0.030437 +0.214286 +0.353920 0 0 0.208813 0.159264 0.042470 0.264909 0.118386 0.046540 0.077862 +0.464286 +0 0.353920 0 0.231817 0.180499 0.056627 0.386480 0.140152 0.099982 0.130950 +0.464286 +0.353920 0 0 0.212352 0.176960 0.056627 0.359228 0.141391 0.061405 0.116793 +0.642857 +0 0.353920 0 0.221200 0.171651 0.056627 0.443815 0.209167 0.091665 0.123341 +0.285714 +0 0 0.353920 0.157494 0.120333 0.051318 0.153601 0.068837 0.032030 0.046010 +0.214286 +0 0.353920 0 0.184038 0.145107 0.044240 0.247213 0.104229 0.057512 0.076093 +0.321429 +0 0 0.353920 0.079632 0.058397 0.019466 0.020881 0.009556 0.004424 0.005309 +0.107143 +0 0.353920 0 0.185808 0.145107 0.040701 0.274111 0.147231 0.057689 0.063706 +0.214286 +0.353920 0 0 0.176960 0.141568 0.044240 0.238011 0.118917 0.042470 0.064590 +0.214286 +0.353920 0 0 0.198195 0.155725 0.056627 0.393382 0.178199 0.098567 0.092019 +0.321429 +0.353920 0 0 0.272518 0.214121 0.061936 0.725712 0.283313 0.186162 0.125641 +0.357143 +0 0 0.353920 0.129181 0.095558 0.030083 0.069368 0.029198 0.013272 0.021235 +0.214286 +0.353920 0 0 0.185808 0.145107 0.058397 0.283313 0.093258 0.070253 0.088480 +0.428571 +0 0 0.353920 0.130950 0.100867 0.033622 0.079986 0.040170 0.018227 0.023890 +0.250000 +0 0 0.353920 0.141568 0.102637 0.038931 0.116440 0.066537 0.016103 0.029198 +0.178571 +0 0 0.353920 0.118563 0.088480 0.028314 0.059105 0.023890 0.011502 0.020350 +0.178571 +0.353920 0 0 0.203504 0.150416 0.049549 0.305610 0.139090 0.080340 0.070784 +0.357143 +0 0.353920 0 0.201734 0.148646 0.056627 0.314104 0.152716 0.067776 0.078924 +0.250000 +0.353920 0 0 0.208813 0.155725 0.053088 0.338170 0.129535 0.085826 0.104406 +0.357143 +0 0.353920 0 0.178729 0.136259 0.040701 0.218015 0.086002 0.038046 0.074323 +0.357143 +0.353920 0 0 0.166342 0.132720 0.046010 0.205096 0.075916 0.058043 0.069014 +0.428571 +0.353920 0 0 0.203504 0.164573 0.053088 0.382233 0.210582 0.073084 0.084233 +0.285714 +0 0 0.353920 0.205273 0.157494 0.053088 0.313750 0.135551 0.073969 0.090250 +0.357143 +0 0.353920 0 0.215891 0.166342 0.056627 0.380287 0.174305 0.083525 0.102637 +0.250000 +0 0.353920 0 0.231817 0.178729 0.058397 0.483808 0.206512 0.124403 0.140152 +0.321429 +0 0 0.353920 0.187577 0.146877 0.038931 0.203327 0.089365 0.043709 0.066891 +0.285714 +0.353920 0 0 0.155725 0.115024 0.028314 0.146169 0.050964 0.035923 0.046010 +0.250000 +0 0.353920 0 0.201734 0.150416 0.046010 0.276765 0.130773 0.061759 0.069545 +0.250000 +0 0.353920 0 0.240665 0.205273 0.070784 0.632454 0.207043 0.160326 0.212352 +0.642857 +0 0 0.353920 0.153955 0.118563 0.038931 0.118209 0.047956 0.027429 0.034153 +0.214286 +0 0 0.353920 0.115024 0.086710 0.024774 0.056981 0.026721 0.009025 0.015926 +0.178571 +0 0.353920 0 0.228278 0.184038 0.067245 0.463812 0.205273 0.101929 0.130950 +0.392857 +0 0.353920 0 0.173421 0.132720 0.053088 0.203681 0.077862 0.050964 0.067245 +0.285714 +0 0 0.353920 0.134489 0.102637 0.030083 0.080871 0.031145 0.016457 0.026544 +0.214286 +0 0.353920 0 0.251283 0.191117 0.072554 0.559370 0.283844 0.101575 0.153955 +0.321429 +0 0.353920 0 0.217661 0.171651 0.056627 0.409662 0.177137 0.088303 0.111485 +0.321429 +0 0.353920 0 0.171651 0.138029 0.035392 0.196956 0.078393 0.040878 0.065475 +0.285714 +0 0 0.353920 0.171651 0.132720 0.038931 0.164219 0.071315 0.031853 0.052734 +0.250000 +0 0 0.353920 0.217661 0.162803 0.067245 0.377278 0.153424 0.079986 0.116793 +0.428571 +0.353920 0 0 0.230048 0.185808 0.067245 0.530703 0.221731 0.141745 0.139798 +0.464286 +0 0 0.353920 0.185808 0.143337 0.051318 0.246505 0.107769 0.054327 0.074323 +0.250000 +0.353920 0 0 0.217661 0.168112 0.061936 0.390373 0.164042 0.109538 0.096443 +0.321429 +0 0.353920 0 0.238896 0.194656 0.061936 0.597770 0.245620 0.131304 0.167758 +0.428571 +0.353920 0 0 0.247744 0.203504 0.067245 0.804459 0.387542 0.147938 0.225801 +0.392857 +0 0 0.353920 0.189347 0.161033 0.049549 0.354451 0.187577 0.062467 0.086356 +0.285714 +0 0 0.353920 0.184038 0.150416 0.060166 0.240842 0.099098 0.061582 0.069014 +0.321429 +0 0 0.353920 0.222969 0.178729 0.063706 0.450186 0.213237 0.104406 0.111485 +0.357143 +0.353920 0 0 0.210582 0.166342 0.053088 0.315519 0.127057 0.074500 0.086710 +0.392857 +0.353920 0 0 0.258361 0.207043 0.079632 0.789418 0.438683 0.149354 0.199257 +0.464286 +0 0 0.353920 0.155725 0.123872 0.047779 0.153955 0.064236 0.029375 0.044240 +0.392857 +0 0 0.353920 0.171651 0.129181 0.031853 0.230402 0.112016 0.046717 0.063706 +0.250000 +0 0 0.353920 0.201734 0.159264 0.051318 0.265794 0.099982 0.077685 0.078393 +0.321429 +0 0.353920 0 0.185808 0.141568 0.040701 0.222792 0.090426 0.050964 0.063706 +0.357143 +0 0.353920 0 0.247744 0.203504 0.072554 0.636171 0.258184 0.139267 0.182800 +0.428571 +0.353920 0 0 0.240665 0.191117 0.069014 0.630862 0.196956 0.114493 0.151655 +0.357143 +0.353920 0 0 0.240665 0.191117 0.067245 0.574412 0.253583 0.125288 0.166873 +0.392857 +0 0 0.353920 0.104406 0.077862 0.023005 0.045833 0.018404 0.009910 0.012387 +0.178571 +0 0 0.353920 0.155725 0.123872 0.038931 0.134666 0.055742 0.031676 0.040701 +0.178571 +0.353920 0 0 0.221200 0.175190 0.054858 0.416563 0.178906 0.098390 0.122102 +0.285714 +0.353920 0 0 0.152185 0.122102 0.040701 0.107769 0.032738 0.019466 0.042470 +0.357143 +0 0 0.353920 0.173421 0.132720 0.040701 0.197133 0.080517 0.047248 0.062467 +0.250000 +0 0 0.353920 0.175190 0.136259 0.044240 0.181384 0.073438 0.040878 0.060874 +0.321429 +0 0 0.353920 0.116793 0.090250 0.028314 0.072554 0.031676 0.013980 0.019466 +0.214286 +0 0.353920 0 0.230048 0.176960 0.056627 0.489294 0.248452 0.107592 0.113077 +0.285714 +0 0.353920 0 0.196425 0.152185 0.047779 0.287383 0.143514 0.057689 0.078393 +0.285714 +0 0.353920 0 0.176960 0.136259 0.037162 0.176252 0.063529 0.038754 0.060166 +0.571429 +0 0 0.353920 0.192886 0.152185 0.049549 0.273226 0.102283 0.067245 0.092550 +0.250000 +0 0.353920 0 0.168112 0.123872 0.040701 0.159972 0.060697 0.032561 0.054858 +0.357143 +0 0.353920 0 0.226509 0.176960 0.058397 0.411786 0.196071 0.084587 0.113254 +0.357143 +0 0 0.353920 0.256592 0.194656 0.077862 0.725358 0.273757 0.155902 0.231817 +0.321429 +0 0 0.353920 0.168112 0.129181 0.042470 0.183507 0.094850 0.038754 0.048310 +0.250000 +0 0.353920 0 0.208813 0.161033 0.058397 0.410901 0.134489 0.086887 0.099098 +0.392857 +0 0.353920 0 0.260131 0.199965 0.079632 0.720934 0.307910 0.182092 0.200849 +0.428571 +0 0 0.353920 0.196425 0.150416 0.046010 0.229340 0.100336 0.047071 0.074500 +0.250000 +0 0 0.353920 0.074323 0.053088 0.015926 0.014157 0.004778 0.002831 0.003716 +0.107143 +0.353920 0 0 0.171651 0.130950 0.046010 0.186162 0.087949 0.037162 0.055035 +0.178571 +0 0 0.353920 0.224739 0.176960 0.063706 0.466820 0.194125 0.103345 0.173421 +0.535714 +0 0 0.353920 0.046010 0.033622 0.012387 0.003716 0.001770 0.002300 0.001239 +0.107143 +0.353920 0 0 0.240665 0.192886 0.065475 0.591754 0.250398 0.128827 0.169881 +0.357143 +0.353920 0 0 0.171651 0.130950 0.054858 0.342594 0.148292 0.086887 0.083702 +0.285714 +0.353920 0 0 0.212352 0.161033 0.054858 0.334454 0.154486 0.073792 0.088480 +0.250000 +0.353920 0 0 0.173421 0.139798 0.042470 0.238542 0.117678 0.043709 0.065475 +0.285714 +0 0 0.353920 0.192886 0.152185 0.053088 0.257830 0.106884 0.046540 0.090073 +0.321429 +0 0.353920 0 0.219430 0.166342 0.070784 0.433729 0.134843 0.095558 0.153955 +0.785714 +0.353920 0 0 0.175190 0.138029 0.053088 0.301893 0.116263 0.066891 0.095558 +0.464286 +0 0 0.353920 0.074323 0.053088 0.019466 0.016103 0.007078 0.002300 0.004601 +0.107143 +0.353920 0 0 0.176960 0.138029 0.046010 0.250929 0.097328 0.059459 0.063706 +0.357143 +0 0.353920 0 0.184038 0.152185 0.053088 0.257654 0.106884 0.055742 0.083171 +0.357143 +0 0 0.353920 0.169881 0.138029 0.051318 0.206158 0.081932 0.042824 0.090250 +0.500000 +0.353920 0 0 0.191117 0.153955 0.063706 0.352504 0.135728 0.079986 0.115024 +0.571429 +0.353920 0 0 0.215891 0.166342 0.058397 0.372323 0.176252 0.085649 0.094497 +0.285714 +0.353920 0 0 0.205273 0.159264 0.049549 0.340294 0.172005 0.064236 0.089542 +0.285714 +0 0 0.353920 0.184038 0.145107 0.042470 0.210582 0.084410 0.039285 0.067245 +0.250000 +0 0 0.353920 0.115024 0.086710 0.026544 0.052911 0.021412 0.011679 0.015926 +0.142857 +0 0 0.353920 0.095558 0.067245 0.021235 0.035038 0.015749 0.006017 0.010618 +0.142857 +0 0 0.353920 0.203504 0.152185 0.046010 0.262785 0.102460 0.070961 0.077862 +0.250000 +0 0.353920 0 0.221200 0.168112 0.056627 0.471952 0.214121 0.101752 0.112900 +0.321429 +0 0 0.353920 0.155725 0.109715 0.040701 0.128296 0.047425 0.029021 0.042470 +0.357143 +0 0.353920 0 0.194656 0.143337 0.044240 0.230402 0.104937 0.048487 0.070784 +0.285714 +0 0.353920 0 0.185808 0.146877 0.049549 0.256238 0.122987 0.061228 0.061936 +0.250000 +0.353920 0 0 0.198195 0.159264 0.061936 0.357813 0.135728 0.073084 0.130950 +0.500000 +0 0.353920 0 0.176960 0.132720 0.040701 0.210405 0.065475 0.052380 0.067245 +0.357143 +0 0.353920 0 0.254822 0.194656 0.070784 0.706601 0.319766 0.165988 0.184569 +0.321429 +0 0.353920 0 0.231817 0.176960 0.077862 0.480977 0.227216 0.115201 0.143337 +0.428571 +0.353920 0 0 0.208813 0.166342 0.047779 0.413555 0.190763 0.098744 0.099098 +0.250000 +0 0.353920 0 0.265440 0.215891 0.083171 0.887807 0.436029 0.183684 0.216599 +0.464286 +0 0.353920 0 0.203504 0.162803 0.058397 0.397806 0.105645 0.063175 0.155725 +0.428571 +0 0 0.353920 0.153955 0.115024 0.038931 0.129889 0.056450 0.028314 0.037162 +0.178571 +0 0 0.353920 0.159264 0.123872 0.044240 0.168997 0.079101 0.031499 0.041763 +0.178571 +0 0 0.353920 0.164573 0.115024 0.049549 0.269510 0.128119 0.054327 0.073969 +0.321429 +0 0.353920 0 0.208813 0.164573 0.053088 0.407362 0.216953 0.084587 0.089011 +0.285714 +0.353920 0 0 0.230048 0.175190 0.063706 0.634578 0.283313 0.119979 0.187577 +0.464286 +0 0.353920 0 0.205273 0.157494 0.053088 0.303663 0.141568 0.055211 0.089542 +0.250000 +0 0.353920 0 0.201734 0.157494 0.051318 0.310564 0.145815 0.076801 0.077862 +0.250000 +0 0.353920 0 0.205273 0.153955 0.054858 0.310918 0.150416 0.059635 0.085826 +0.321429 +0.353920 0 0 0.157494 0.122102 0.031853 0.134313 0.050611 0.026190 0.044240 +0.321429 +0.353920 0 0 0.235357 0.185808 0.056627 0.482392 0.222615 0.098744 0.120333 +0.250000 +0.353920 0 0 0.238896 0.192886 0.065475 0.614935 0.310034 0.110954 0.165988 +0.428571 +0.353920 0 0 0.145107 0.118563 0.040701 0.155902 0.067245 0.030083 0.047779 +0.250000 +0 0 0.353920 0.182269 0.141568 0.047779 0.246505 0.113254 0.044417 0.061936 +0.285714 +0.353920 0 0 0.192886 0.146877 0.049549 0.290214 0.163334 0.044948 0.077154 +0.285714 +0 0.353920 0 0.210582 0.166342 0.054858 0.396744 0.159795 0.062998 0.054858 +0.357143 +0 0 0.353920 0.069014 0.047779 0.014157 0.011502 0.004778 0.001770 0.003362 +0.107143 +0 0 0.353920 0.116793 0.084941 0.026544 0.057689 0.026367 0.011679 0.016988 +0.178571 +0 0.353920 0 0.185808 0.146877 0.060166 0.294638 0.097505 0.059635 0.109715 +0.428571 +0.353920 0 0 0.201734 0.161033 0.054858 0.294461 0.126880 0.061582 0.098036 +0.357143 +0 0 0.353920 0.132720 0.100867 0.031853 0.090073 0.042116 0.021058 0.023890 +0.178571 +0 0 0.353920 0.136259 0.099098 0.031853 0.080694 0.036277 0.014865 0.023182 +0.142857 +0 0 0.353920 0.118563 0.092019 0.031853 0.064944 0.027606 0.008494 0.023005 +0.357143 +0 0.353920 0 0.205273 0.155725 0.063706 0.302247 0.129712 0.057866 0.086710 +0.392857 +0 0 0.353920 0.168112 0.125641 0.040701 0.183861 0.098744 0.031145 0.046894 +0.214286 +0 0.353920 0 0.175190 0.130950 0.042470 0.210228 0.099098 0.038931 0.048664 +0.214286 +0 0.353920 0 0.221200 0.171651 0.070784 0.488409 0.206866 0.106884 0.141922 +0.285714 +0 0.353920 0 0.187577 0.146877 0.056627 0.277119 0.103875 0.055919 0.086710 +0.500000 +0.353920 0 0 0.187577 0.153955 0.056627 0.312511 0.111839 0.058043 0.118563 +0.500000 +0 0 0.353920 0.173421 0.130950 0.038931 0.190409 0.095912 0.036631 0.049195 +0.250000 +0.353920 0 0 0.194656 0.150416 0.056627 0.343302 0.102106 0.049195 0.169881 +0.678571 +0 0.353920 0 0.212352 0.169881 0.053088 0.364183 0.144576 0.095735 0.104406 +0.535714 +0 0.353920 0 0.107945 0.079632 0.024774 0.052557 0.020704 0.011856 0.015926 +0.214286 +0 0 0.353920 0.102637 0.079632 0.024774 0.035746 0.012741 0.008317 0.012387 +0.250000 +0.353920 0 0 0.185808 0.148646 0.054858 0.298000 0.151478 0.050080 0.072377 +0.285714 +0 0.353920 0 0.221200 0.169881 0.070784 0.468413 0.215006 0.108122 0.125641 +0.285714 +0 0.353920 0 0.166342 0.123872 0.051318 0.183153 0.066183 0.043709 0.063706 +0.357143 +0 0.353920 0 0.146877 0.120333 0.046010 0.130065 0.051672 0.031322 0.042470 +0.321429 +0.353920 0 0 0.132720 0.107945 0.031853 0.114847 0.049372 0.019996 0.033622 +0.142857 +0.353920 0 0 0.168112 0.125641 0.042470 0.169881 0.082817 0.035923 0.047779 +0.250000 +0 0.353920 0 0.162803 0.129181 0.044240 0.169351 0.072907 0.036985 0.049903 +0.250000 +0 0 0.353920 0.184038 0.139798 0.044240 0.234649 0.106353 0.046363 0.067422 +0.285714 +0.353920 0 0 0.116793 0.090250 0.033622 0.066360 0.026013 0.015926 0.021235 +0.214286 +0.353920 0 0 0.222969 0.178729 0.061936 0.432136 0.196425 0.089188 0.120333 +0.392857 +0.353920 0 0 0.254822 0.194656 0.072554 0.752079 0.405415 0.156609 0.180853 +0.428571 +0 0 0.353920 0.187577 0.146877 0.046010 0.245620 0.138206 0.039285 0.059105 +0.285714 +0 0 0.353920 0.107945 0.076093 0.023005 0.038046 0.015572 0.007255 0.013449 +0.142857 +0 0 0.353920 0.088480 0.065475 0.023005 0.025128 0.009556 0.006548 0.007963 +0.142857 +0 0.353920 0 0.226509 0.176960 0.060166 0.537073 0.245266 0.115378 0.144753 +0.357143 +0.353920 0 0 0.166342 0.130950 0.037162 0.165104 0.071669 0.035923 0.054858 +0.321429 +0 0 0.353920 0.113254 0.090250 0.030083 0.061759 0.025482 0.011679 0.020173 +0.250000 +0 0 0.353920 0.171651 0.134489 0.049549 0.238188 0.076978 0.046010 0.069014 +0.607143 +0.353920 0 0 0.242435 0.187577 0.060166 0.552115 0.228986 0.135551 0.164573 +0.357143 +0 0 0.353920 0.136259 0.106176 0.035392 0.102460 0.043001 0.022297 0.031853 +0.214286 +0 0 0.353920 0.201734 0.153955 0.060166 0.300124 0.141568 0.058751 0.088480 +0.285714 +0 0 0.353920 0.185808 0.146877 0.042470 0.210936 0.099274 0.042470 0.059989 +0.285714 +0 0.353920 0 0.238896 0.184038 0.061936 0.528756 0.260662 0.108122 0.130950 +0.285714 +0.353920 0 0 0.219430 0.171651 0.072554 0.431428 0.137144 0.088657 0.136259 +0.464286 +0.353920 0 0 0.217661 0.162803 0.060166 0.373916 0.170412 0.096266 0.095558 +0.321429 +0.353920 0 0 0.242435 0.180499 0.063706 0.514776 0.223500 0.109892 0.131835 +0.285714 +0 0.353920 0 0.226509 0.180499 0.070784 0.492125 0.215891 0.117324 0.145107 +0.392857 +0 0.353920 0 0.184038 0.150416 0.053088 0.287737 0.136259 0.071315 0.081402 +0.321429 +0.353920 0 0 0.212352 0.162803 0.060166 0.417802 0.161387 0.119271 0.116440 +0.357143 +0 0.353920 0 0.254822 0.199965 0.063706 0.608388 0.299593 0.144045 0.137144 +0.357143 +0 0.353920 0 0.208813 0.161033 0.054858 0.377278 0.135197 0.080517 0.146877 +0.678571 +0.353920 0 0 0.217661 0.161033 0.046010 0.342771 0.173421 0.064413 0.093966 +0.321429 +0 0 0.353920 0.162803 0.127411 0.049549 0.158202 0.056981 0.030791 0.056627 +0.285714 +0.353920 0 0 0.231817 0.194656 0.063706 0.450894 0.207397 0.099451 0.129181 +0.321429 +0 0.353920 0 0.231817 0.184038 0.061936 0.520970 0.222085 0.095558 0.159264 +0.428571 +0 0.353920 0 0.173421 0.134489 0.054858 0.204566 0.084764 0.044417 0.063706 +0.285714 +0 0 0.353920 0.198195 0.148646 0.049549 0.296231 0.146523 0.075739 0.070784 +0.250000 +0.353920 0 0 0.161033 0.129181 0.033622 0.181915 0.079455 0.035746 0.053088 +0.500000 +0.353920 0 0 0.184038 0.136259 0.040701 0.236772 0.084410 0.060874 0.072554 +0.392857 +0.353920 0 0 0.201734 0.162803 0.049549 0.337462 0.158025 0.073084 0.086710 +0.392857 +0.353920 0 0 0.155725 0.129181 0.044240 0.182623 0.076270 0.040347 0.054858 +0.321429 +0 0.353920 0 0.201734 0.164573 0.054858 0.308618 0.114847 0.084587 0.100867 +0.464286 +0.353920 0 0 0.176960 0.134489 0.054858 0.210759 0.075562 0.056981 0.070784 +0.392857 +0.353920 0 0 0.217661 0.175190 0.070784 0.461511 0.205096 0.110246 0.131304 +0.464286 +0 0 0.353920 0.060166 0.037162 0.012387 0.012033 0.004247 0.003008 0.001770 +0.107143 +0 0.353920 0 0.139798 0.106176 0.037162 0.119448 0.050787 0.026721 0.034684 +0.392857 +0 0 0.353920 0.152185 0.120333 0.037162 0.155902 0.084410 0.026367 0.038046 +0.178571 +0 0.353920 0 0.196425 0.155725 0.049549 0.299416 0.122456 0.060697 0.096797 +0.321429 +0 0 0.353920 0.180499 0.141568 0.053088 0.263670 0.101398 0.059282 0.083171 +0.428571 +0 0.353920 0 0.217661 0.168112 0.054858 0.363475 0.158202 0.088480 0.100867 +0.285714 +0.353920 0 0 0.184038 0.164573 0.053088 0.336401 0.161387 0.070430 0.090250 +0.250000 +0 0 0.353920 0.162803 0.127411 0.037162 0.164927 0.078747 0.035038 0.038931 +0.214286 +0 0.353920 0 0.238896 0.194656 0.067245 0.548929 0.251460 0.130419 0.145815 +0.428571 +0 0.353920 0 0.214121 0.169881 0.061936 0.413555 0.170412 0.081578 0.125995 +0.285714 +0 0.353920 0 0.221200 0.173421 0.054858 0.427712 0.164573 0.057335 0.145461 +0.357143 +0 0.353920 0 0.235357 0.176960 0.061936 0.508052 0.227570 0.122102 0.130950 +0.285714 +0 0 0.353920 0.196425 0.152185 0.053088 0.277119 0.122102 0.062113 0.087418 +0.285714 +0 0.353920 0 0.166342 0.127411 0.051318 0.190055 0.061051 0.048664 0.069014 +0.500000 +0 0 0.353920 0.138029 0.104406 0.033622 0.071846 0.030968 0.015926 0.026544 +0.214286 +0 0.353920 0 0.155725 0.123872 0.044240 0.142807 0.061936 0.022297 0.045656 +0.285714 +0 0.353920 0 0.166342 0.127411 0.042470 0.168997 0.074500 0.037339 0.053088 +0.321429 +0 0 0.353920 0.196425 0.159264 0.061936 0.261193 0.107592 0.062113 0.077862 +0.285714 +0.353920 0 0 0.196425 0.155725 0.049549 0.308087 0.144045 0.055211 0.090250 +0.285714 +0.353920 0 0 0.228278 0.176960 0.069014 0.495841 0.218191 0.124403 0.131835 +0.321429 +0.353920 0 0 0.210582 0.164573 0.053088 0.325252 0.153424 0.062467 0.092727 +0.285714 +0 0 0.353920 0.153955 0.122102 0.042470 0.113785 0.046010 0.019820 0.041939 +0.214286 +0 0 0.353920 0.153955 0.116793 0.033622 0.139090 0.077508 0.026544 0.031322 +0.178571 +0.353920 0 0 0.237126 0.185808 0.058397 0.569280 0.241373 0.111308 0.141745 +0.357143 +0 0 0.353920 0.230048 0.184038 0.053088 0.438153 0.194479 0.104760 0.116970 +0.321429 +0 0 0.353920 0.148646 0.113254 0.035392 0.120333 0.061759 0.017696 0.033445 +0.250000 +0.353920 0 0 0.208813 0.159264 0.065475 0.454079 0.167404 0.097682 0.150416 +0.535714 +0.353920 0 0 0.201734 0.159264 0.047779 0.360998 0.193240 0.072200 0.088480 +0.285714 diff --git a/lib/ann/fann/datasets/abelone.train b/lib/ann/fann/datasets/abelone.train new file mode 100644 index 0000000..47d6b38 --- /dev/null +++ b/lib/ann/fann/datasets/abelone.train @@ -0,0 +1,4177 @@ +2088 10 1 +0 0 0.353920 0.148646 0.113254 0.040701 0.144753 0.072730 0.033091 0.037162 +0.250000 +0.353920 0 0 0.245974 0.201734 0.081402 0.667139 0.306671 0.153955 0.176960 +0.642857 +0 0.353920 0 0.161033 0.123872 0.049549 0.202619 0.069545 0.046894 0.061936 +0.321429 +0 0.353920 0 0.145107 0.113254 0.040701 0.136967 0.058397 0.035569 0.034861 +0.357143 +0 0 0.353920 0.092019 0.070784 0.024774 0.032561 0.013095 0.007078 0.010618 +0.178571 +0.353920 0 0 0.210582 0.176960 0.058397 0.375155 0.142276 0.099098 0.097328 +0.357143 +0 0.353920 0 0.205273 0.159264 0.065475 0.352327 0.139621 0.096266 0.100867 +0.357143 +0.353920 0 0 0.123872 0.097328 0.038931 0.103521 0.043355 0.022474 0.032030 +0.250000 +0 0 0.353920 0.203504 0.161033 0.056627 0.350203 0.175190 0.069014 0.087064 +0.285714 +0.353920 0 0 0.187577 0.145107 0.049549 0.241019 0.109538 0.050080 0.064944 +0.178571 +0.353920 0 0 0.192886 0.145107 0.049549 0.260839 0.123518 0.053088 0.075031 +0.285714 +0 0 0.353920 0.153955 0.116793 0.044240 0.143691 0.059635 0.037339 0.033976 +0.392857 +0 0 0.353920 0.115024 0.088480 0.028314 0.061405 0.027075 0.012210 0.017342 +0.214286 +0 0.353920 0 0.215891 0.171651 0.058397 0.384711 0.150593 0.082109 0.134489 +0.357143 +0 0.353920 0 0.215891 0.168112 0.053088 0.394090 0.183861 0.091134 0.106353 +0.357143 +0 0.353920 0 0.171651 0.141568 0.054858 0.258715 0.083525 0.064767 0.090250 +0.357143 +0 0.353920 0 0.210582 0.161033 0.054858 0.375332 0.181738 0.076624 0.106176 +0.392857 +0 0.353920 0 0.184038 0.150416 0.058397 0.349850 0.140152 0.079632 0.113254 +0.535714 +0 0.353920 0 0.207043 0.162803 0.058397 0.374447 0.172005 0.088480 0.104052 +0.285714 +0 0 0.353920 0.159264 0.125641 0.042470 0.145815 0.040524 0.023536 0.056627 +0.642857 +0 0.353920 0 0.226509 0.182269 0.058397 0.464166 0.175013 0.090426 0.145107 +0.321429 +0 0.353920 0 0.192886 0.155725 0.047779 0.325075 0.151832 0.071315 0.084056 +0.321429 +0 0.353920 0 0.214121 0.159264 0.069014 0.388604 0.170235 0.102460 0.111485 +0.428571 +0 0 0.353920 0.159264 0.118563 0.037162 0.158202 0.082640 0.054150 0.042116 +0.214286 +0 0 0.353920 0.155725 0.122102 0.046010 0.159087 0.073969 0.029552 0.047425 +0.178571 +0 0.353920 0 0.166342 0.132720 0.044240 0.198726 0.089188 0.048487 0.063706 +0.321429 +0 0 0.353920 0.164573 0.130950 0.042470 0.154486 0.066537 0.028844 0.052026 +0.285714 +0 0.353920 0 0.249513 0.196425 0.069014 0.620244 0.251460 0.149177 0.182623 +0.392857 +0 0.353920 0 0.162803 0.125641 0.046010 0.162095 0.067953 0.037339 0.046010 +0.428571 +0 0.353920 0 0.224739 0.171651 0.058397 0.449301 0.199434 0.108476 0.120156 +0.357143 +0 0.353920 0 0.102637 0.079632 0.026544 0.049549 0.018227 0.008317 0.014157 +0.142857 +0 0 0.353920 0.187577 0.141568 0.044240 0.218368 0.098744 0.044948 0.067245 +0.250000 +0 0.353920 0 0.219430 0.169881 0.058397 0.369138 0.171120 0.078216 0.109715 +0.321429 +0.353920 0 0 0.205273 0.164573 0.051318 0.313927 0.155902 0.058574 0.093789 +0.357143 +0 0.353920 0 0.249513 0.189347 0.063706 0.596355 0.245266 0.148646 0.143161 +0.392857 +0 0 0.353920 0.132720 0.107945 0.040701 0.096089 0.032561 0.026190 0.031853 +0.250000 +0 0.353920 0 0.161033 0.132720 0.044240 0.162095 0.070253 0.039285 0.042470 +0.321429 +0 0 0.353920 0.106176 0.077862 0.031853 0.050434 0.020173 0.011856 0.015219 +0.214286 +0 0.353920 0 0.205273 0.161033 0.060166 0.321182 0.132366 0.075562 0.100867 +0.428571 +0 0 0.353920 0.203504 0.161033 0.054858 0.308795 0.123518 0.074146 0.100867 +0.250000 +0 0.353920 0 0.226509 0.185808 0.076093 0.629623 0.160503 0.101044 0.194656 +0.750000 +0.353920 0 0 0.168112 0.136259 0.042470 0.198903 0.102283 0.032030 0.054150 +0.250000 +0 0.353920 0 0.203504 0.166342 0.058397 0.307556 0.153955 0.069722 0.084233 +0.285714 +0.353920 0 0 0.205273 0.161033 0.060166 0.329145 0.144399 0.091665 0.077862 +0.285714 +0 0.353920 0 0.205273 0.162803 0.063706 0.372147 0.144930 0.091842 0.097682 +0.250000 +0 0 0.353920 0.145107 0.115024 0.035392 0.114847 0.046717 0.025482 0.037515 +0.178571 +0 0 0.353920 0.178729 0.143337 0.046010 0.212883 0.106707 0.038931 0.063706 +0.250000 +0.353920 0 0 0.249513 0.198195 0.058397 0.592815 0.282074 0.144930 0.137321 +0.321429 +0 0 0.353920 0.162803 0.123872 0.035392 0.166696 0.089188 0.027252 0.043532 +0.250000 +0.353920 0 0 0.228278 0.171651 0.076093 0.535834 0.193240 0.092550 0.224739 +0.535714 +0.353920 0 0 0.150416 0.123872 0.037162 0.139090 0.046010 0.022297 0.058397 +0.285714 +0 0 0.353920 0.169881 0.130950 0.044240 0.167758 0.063352 0.036631 0.061936 +0.285714 +0.353920 0 0 0.173421 0.134489 0.049549 0.269156 0.086710 0.059105 0.065475 +0.321429 +0 0.353920 0 0.185808 0.145107 0.053088 0.250575 0.096974 0.053442 0.088480 +0.392857 +0.353920 0 0 0.274288 0.201734 0.077862 0.719165 0.260131 0.168289 0.233056 +0.571429 +0.353920 0 0 0.199965 0.159264 0.054858 0.374978 0.167581 0.084941 0.093789 +0.321429 +0 0.353920 0 0.196425 0.157494 0.061936 0.405769 0.195010 0.086356 0.098567 +0.250000 +0.353920 0 0 0.207043 0.159264 0.053088 0.352858 0.143514 0.100159 0.088834 +0.357143 +0 0.353920 0 0.222969 0.176960 0.054858 0.355689 0.129889 0.070430 0.127411 +0.535714 +0 0 0.353920 0.038931 0.031853 0.010618 0.002831 0.000885 0.000708 0.001062 +0.071429 +0 0 0.353920 0.187577 0.152185 0.047779 0.221377 0.086710 0.051495 0.075562 +0.321429 +0 0 0.353920 0.175190 0.132720 0.049549 0.174836 0.064059 0.034507 0.067599 +0.250000 +0 0 0.353920 0.127411 0.093789 0.031853 0.072730 0.033976 0.013095 0.020704 +0.214286 +0 0.353920 0 0.207043 0.159264 0.044240 0.309326 0.125465 0.073438 0.079632 +0.178571 +0 0 0.353920 0.099098 0.070784 0.023005 0.031676 0.012741 0.006548 0.010618 +0.214286 +0 0 0.353920 0.118563 0.086710 0.031853 0.058928 0.021058 0.014157 0.021235 +0.178571 +0 0 0.353920 0.215891 0.162803 0.060166 0.452309 0.145107 0.090957 0.130950 +0.571429 +0 0 0.353920 0.139798 0.102637 0.033622 0.107592 0.044948 0.029729 0.027252 +0.178571 +0 0.353920 0 0.214121 0.171651 0.056627 0.432490 0.187577 0.091134 0.099098 +0.428571 +0 0.353920 0 0.210582 0.168112 0.058397 0.406300 0.157140 0.075739 0.130950 +0.321429 +0.353920 0 0 0.212352 0.175190 0.058397 0.439391 0.171651 0.098213 0.120333 +0.500000 +0 0 0.353920 0.176960 0.132720 0.051318 0.205096 0.084587 0.048664 0.065475 +0.285714 +0 0 0.353920 0.152185 0.113254 0.038931 0.130065 0.059282 0.036100 0.037162 +0.250000 +0.353920 0 0 0.145107 0.109715 0.044240 0.127234 0.050080 0.031322 0.040701 +0.357143 +0 0.353920 0 0.247744 0.198195 0.061936 0.587684 0.304548 0.115909 0.140860 +0.357143 +0 0 0.353920 0.106176 0.081402 0.026544 0.053088 0.021412 0.014865 0.015926 +0.142857 +0.353920 0 0 0.256592 0.203504 0.084941 0.782162 0.478145 0.146169 0.177491 +0.428571 +0 0 0.353920 0.182269 0.148646 0.053088 0.238011 0.090426 0.047248 0.083171 +0.321429 +0 0.353920 0 0.219430 0.182269 0.054858 0.469121 0.236595 0.092196 0.118563 +0.392857 +0.353920 0 0 0.185808 0.141568 0.060166 0.258538 0.098744 0.072730 0.069014 +0.357143 +0 0 0.353920 0.099098 0.042470 0.026544 0.041409 0.016103 0.010264 0.012210 +0.107143 +0.353920 0 0 0.129181 0.100867 0.030083 0.078039 0.030260 0.018227 0.024774 +0.285714 +0.353920 0 0 0.201734 0.146877 0.046010 0.311449 0.151301 0.069191 0.084233 +0.428571 +0 0.353920 0 0.198195 0.155725 0.047779 0.284021 0.123872 0.057158 0.091665 +0.285714 +0.353920 0 0 0.187577 0.146877 0.042470 0.249867 0.118740 0.057866 0.047602 +0.285714 +0 0 0.353920 0.233587 0.185808 0.063706 0.599363 0.213237 0.141745 0.148646 +0.500000 +0.353920 0 0 0.219430 0.171651 0.054858 0.371262 0.163511 0.081755 0.088480 +0.321429 +0 0 0.353920 0.153955 0.118563 0.038931 0.135551 0.055035 0.023890 0.047779 +0.392857 +0 0.353920 0 0.134489 0.102637 0.037162 0.090957 0.035038 0.018050 0.030083 +0.321429 +0 0 0.353920 0.162803 0.130950 0.042470 0.188816 0.093612 0.038223 0.047602 +0.178571 +0 0.353920 0 0.233587 0.199965 0.069014 0.623076 0.244912 0.115555 0.176960 +0.535714 +0 0 0.353920 0.189347 0.146877 0.053088 0.204035 0.127234 0.047779 0.079632 +0.250000 +0 0 0.353920 0.141568 0.093789 0.035392 0.098213 0.044063 0.021412 0.028314 +0.285714 +0.353920 0 0 0.109715 0.083171 0.021235 0.042470 0.014688 0.011679 0.014157 +0.357143 +0 0.353920 0 0.256592 0.212352 0.070784 0.614758 0.246682 0.126880 0.210582 +0.357143 +0.353920 0 0 0.247744 0.199965 0.061936 0.657052 0.298885 0.139267 0.191117 +0.321429 +0 0 0.353920 0.171651 0.130950 0.040701 0.161741 0.066714 0.034153 0.053088 +0.285714 +0 0 0.353920 0.146877 0.109715 0.037162 0.127234 0.059105 0.029375 0.032384 +0.178571 +0 0.353920 0 0.134489 0.107945 0.033622 0.099628 0.044417 0.018581 0.031853 +0.250000 +0 0 0.353920 0.150416 0.120333 0.035392 0.124403 0.057512 0.029021 0.033268 +0.214286 +0 0.353920 0 0.212352 0.176960 0.054858 0.471421 0.220669 0.100336 0.123872 +0.250000 +0 0 0.353920 0.205273 0.153955 0.053088 0.315519 0.128473 0.068130 0.089011 +0.178571 +0.353920 0 0 0.237126 0.184038 0.061936 0.522208 0.222085 0.134136 0.132366 +0.321429 +0.353920 0 0 0.104406 0.076093 0.026544 0.045656 0.017696 0.010441 0.014157 +0.214286 +0.353920 0 0 0.192886 0.152185 0.054858 0.284374 0.144753 0.050964 0.080694 +0.214286 +0 0.353920 0 0.189347 0.159264 0.047779 0.285790 0.113962 0.064059 0.088480 +0.428571 +0 0.353920 0 0.107945 0.081402 0.028314 0.055211 0.023890 0.012210 0.016988 +0.214286 +0 0 0.353920 0.161033 0.118563 0.047779 0.177314 0.096974 0.035215 0.037692 +0.214286 +0.353920 0 0 0.175190 0.141568 0.049549 0.275173 0.071315 0.063706 0.088480 +0.500000 +0 0.353920 0 0.198195 0.152185 0.044240 0.284021 0.110777 0.060697 0.093081 +0.428571 +0.353920 0 0 0.169881 0.129181 0.042470 0.212883 0.110423 0.041409 0.049549 +0.214286 +0.353920 0 0 0.123872 0.093789 0.031853 0.079809 0.035215 0.017165 0.024774 +0.214286 +0.353920 0 0 0.253053 0.189347 0.067245 0.592992 0.314635 0.110777 0.148646 +0.321429 +0.353920 0 0 0.189347 0.145107 0.047779 0.305079 0.101044 0.053973 0.113254 +0.464286 +0.353920 0 0 0.162803 0.132720 0.047779 0.174659 0.065829 0.029906 0.060166 +0.392857 +0 0 0.353920 0.106176 0.081402 0.030083 0.041409 0.017696 0.006194 0.014688 +0.178571 +0.353920 0 0 0.192886 0.148646 0.049549 0.265617 0.087595 0.046010 0.090250 +0.750000 +0 0.353920 0 0.242435 0.191117 0.076093 0.602548 0.235003 0.129358 0.167581 +0.464286 +0 0 0.353920 0.176960 0.136259 0.054858 0.269687 0.134313 0.056981 0.067245 +0.464286 +0.353920 0 0 0.168112 0.127411 0.049549 0.181738 0.085295 0.036985 0.054858 +0.250000 +0 0 0.353920 0.143337 0.088480 0.031853 0.101752 0.045302 0.022297 0.028491 +0.214286 +0.353920 0 0 0.123872 0.093789 0.031853 0.069722 0.025836 0.012918 0.027252 +0.214286 +0.353920 0 0 0.166342 0.129181 0.042470 0.216599 0.115732 0.053088 0.049549 +0.250000 +0.353920 0 0 0.215891 0.168112 0.060166 0.363299 0.153955 0.082640 0.107415 +0.321429 +0.353920 0 0 0.115024 0.084941 0.030083 0.061228 0.028137 0.013449 0.017696 +0.214286 +0 0 0.353920 0.219430 0.173421 0.056627 0.377278 0.157848 0.087064 0.107945 +0.357143 +0 0 0.353920 0.187577 0.141568 0.051318 0.196425 0.068483 0.046187 0.069014 +0.285714 +0 0.353920 0 0.201734 0.164573 0.056627 0.316227 0.111308 0.091134 0.093081 +0.321429 +0 0 0.353920 0.143337 0.106176 0.030083 0.107415 0.053088 0.017873 0.031145 +0.214286 +0 0.353920 0 0.164573 0.123872 0.038931 0.144576 0.058397 0.036100 0.046363 +0.250000 +0 0 0.353920 0.060166 0.046010 0.033622 0.010618 0.004601 0.002831 0.003539 +0.107143 +0.353920 0 0 0.201734 0.162803 0.060166 0.319766 0.144222 0.068483 0.075739 +0.214286 +0.353920 0 0 0.192886 0.155725 0.058397 0.263316 0.101752 0.072200 0.088480 +0.500000 +0.353920 0 0 0.224739 0.173421 0.061936 0.486640 0.220492 0.095735 0.139798 +0.357143 +0 0 0.353920 0.175190 0.134489 0.051318 0.182269 0.061936 0.034684 0.075031 +0.428571 +0 0 0.353920 0.203504 0.159264 0.053088 0.303663 0.158910 0.058751 0.076093 +0.321429 +0 0.353920 0 0.208813 0.164573 0.060166 0.368961 0.164042 0.084941 0.095558 +0.321429 +0 0 0.353920 0.159264 0.120333 0.037162 0.155194 0.074323 0.032738 0.042470 +0.250000 +0 0 0.353920 0.141568 0.111485 0.031853 0.116793 0.053442 0.024067 0.028314 +0.178571 +0.353920 0 0 0.212352 0.168112 0.060166 0.400460 0.179791 0.096266 0.109361 +0.321429 +0.353920 0 0 0.134489 0.100867 0.035392 0.094320 0.040701 0.021589 0.026544 +0.357143 +0.353920 0 0 0.215891 0.171651 0.060166 0.361883 0.148292 0.085118 0.127411 +0.392857 +0 0 0.353920 0.173421 0.141568 0.047779 0.220846 0.107415 0.045479 0.059812 +0.250000 +0 0 0.353920 0.162803 0.125641 0.049549 0.174659 0.076447 0.047071 0.040701 +0.428571 +0 0 0.353920 0.199965 0.152185 0.044240 0.231640 0.099628 0.049195 0.074323 +0.285714 +0 0.353920 0 0.219430 0.166342 0.079632 0.394620 0.133782 0.075916 0.127411 +0.500000 +0 0 0.353920 0.161033 0.132720 0.044240 0.188639 0.082463 0.037515 0.065475 +0.250000 +0 0 0.353920 0.107945 0.077862 0.024774 0.049903 0.021943 0.010972 0.013095 +0.142857 +0.353920 0 0 0.208813 0.155725 0.053088 0.308795 0.136967 0.076093 0.086710 +0.250000 +0 0.353920 0 0.221200 0.176960 0.058397 0.455849 0.202796 0.107415 0.111485 +0.285714 +0 0 0.353920 0.102637 0.076093 0.021235 0.039462 0.018758 0.006548 0.011325 +0.142857 +0 0 0.353920 0.196425 0.150416 0.063706 0.309680 0.130773 0.070961 0.090250 +0.357143 +0.353920 0 0 0.178729 0.145107 0.044240 0.227216 0.102283 0.047071 0.054858 +0.285714 +0.353920 0 0 0.132720 0.106176 0.035392 0.087241 0.036808 0.016811 0.029375 +0.357143 +0 0 0.353920 0.132720 0.102637 0.033622 0.101752 0.043532 0.021412 0.028314 +0.178571 +0 0 0.353920 0.212352 0.157494 0.061936 0.374093 0.135551 0.076447 0.125641 +0.535714 +0 0.353920 0 0.166342 0.125641 0.035392 0.168289 0.059282 0.028491 0.065475 +0.321429 +0.353920 0 0 0.219430 0.169881 0.053088 0.389843 0.175721 0.086002 0.107945 +0.321429 +0 0.353920 0 0.224739 0.176960 0.061936 0.522739 0.242081 0.106353 0.138029 +0.392857 +0 0 0.353920 0.173421 0.132720 0.040701 0.163334 0.072200 0.033445 0.050611 +0.250000 +0.353920 0 0 0.187577 0.146877 0.046010 0.298177 0.097328 0.068837 0.093789 +0.678571 +0 0 0.353920 0.153955 0.118563 0.035392 0.114847 0.047779 0.027783 0.034684 +0.214286 +0.353920 0 0 0.132720 0.102637 0.035392 0.097682 0.041586 0.019996 0.030083 +0.285714 +0 0.353920 0 0.150416 0.116793 0.040701 0.143691 0.057866 0.028667 0.047956 +0.250000 +0 0.353920 0 0.242435 0.187577 0.060166 0.534596 0.261370 0.124757 0.131835 +0.321429 +0 0.353920 0 0.219430 0.180499 0.061936 0.398337 0.176429 0.080340 0.111485 +0.464286 +0.353920 0 0 0.233587 0.175190 0.069014 0.576004 0.210228 0.127234 0.171651 +0.321429 +0 0.353920 0 0.130950 0.097328 0.030083 0.085118 0.036808 0.018935 0.024774 +0.142857 +0 0.353920 0 0.230048 0.192886 0.058397 0.554238 0.235180 0.122279 0.146877 +0.535714 +0.353920 0 0 0.182269 0.138029 0.049549 0.239958 0.120687 0.046894 0.042116 +0.250000 +0 0.353920 0 0.254822 0.199965 0.060166 0.570872 0.255884 0.115201 0.175013 +0.392857 +0.353920 0 0 0.198195 0.159264 0.054858 0.322952 0.127234 0.095912 0.123872 +0.321429 +0 0.353920 0 0.173421 0.129181 0.051318 0.224562 0.070607 0.057512 0.077862 +0.321429 +0 0.353920 0 0.161033 0.123872 0.049549 0.183507 0.078216 0.044771 0.047779 +0.321429 +0.353920 0 0 0.247744 0.194656 0.069014 0.574942 0.238896 0.122810 0.189347 +0.428571 +0 0.353920 0 0.249513 0.194656 0.060166 0.431428 0.226332 0.083525 0.106530 +0.285714 +0 0 0.353920 0.141568 0.106176 0.031853 0.099628 0.041939 0.021589 0.028314 +0.214286 +0 0.353920 0 0.205273 0.164573 0.051318 0.349142 0.166342 0.076270 0.088480 +0.357143 +0 0 0.353920 0.081402 0.061936 0.023005 0.022828 0.009202 0.003716 0.007078 +0.142857 +0.353920 0 0 0.199965 0.159264 0.056627 0.316758 0.146877 0.069014 0.087064 +0.285714 +0.353920 0 0 0.214121 0.168112 0.067245 0.398337 0.208813 0.087418 0.092019 +0.321429 +0.353920 0 0 0.226509 0.180499 0.067245 0.570872 0.219961 0.127765 0.166342 +0.464286 +0 0 0.353920 0.180499 0.134489 0.040701 0.182446 0.076093 0.040170 0.058751 +0.250000 +0.353920 0 0 0.184038 0.153955 0.069014 0.344364 0.105645 0.075562 0.125641 +0.607143 +0 0 0.353920 0.141568 0.107945 0.035392 0.120864 0.062290 0.022120 0.030614 +0.214286 +0 0.353920 0 0.176960 0.130950 0.047779 0.159264 0.060697 0.037339 0.054858 +0.285714 +0.353920 0 0 0.208813 0.168112 0.056627 0.334631 0.135020 0.065121 0.095558 +0.642857 +0 0 0.353920 0.083171 0.063706 0.021235 0.020527 0.007786 0.005132 0.006371 +0.178571 +0 0.353920 0 0.212352 0.168112 0.063706 0.411255 0.180853 0.094674 0.113254 +0.607143 +0 0.353920 0 0.212352 0.176960 0.060166 0.399929 0.155902 0.094497 0.118563 +0.357143 +0 0.353920 0 0.233587 0.185808 0.063706 0.565033 0.274819 0.140506 0.127588 +0.321429 +0 0 0.353920 0.139798 0.106176 0.031853 0.089542 0.040878 0.017696 0.026544 +0.178571 +0.353920 0 0 0.136259 0.106176 0.033622 0.084941 0.031322 0.020881 0.030083 +0.285714 +0.353920 0 0 0.208813 0.162803 0.051318 0.328791 0.134489 0.084941 0.090250 +0.321429 +0.353920 0 0 0.176960 0.134489 0.042470 0.204035 0.096620 0.047779 0.051318 +0.285714 +0 0 0.353920 0.150416 0.115024 0.035392 0.140860 0.041939 0.022828 0.033445 +0.178571 +0 0 0.353920 0.123872 0.083171 0.028314 0.060166 0.025659 0.016457 0.017519 +0.214286 +0 0 0.353920 0.118563 0.088480 0.028314 0.064767 0.026013 0.014157 0.020350 +0.178571 +0 0.353920 0 0.187577 0.150416 0.060166 0.335870 0.123341 0.084764 0.098390 +0.571429 +0 0.353920 0 0.184038 0.146877 0.051318 0.284728 0.117678 0.061051 0.100867 +0.321429 +0.353920 0 0 0.221200 0.169881 0.056627 0.403999 0.205096 0.075916 0.102637 +0.285714 +0.353920 0 0 0.180499 0.145107 0.051318 0.281720 0.136790 0.064236 0.069191 +0.250000 +0 0 0.353920 0.161033 0.120333 0.040701 0.172005 0.092373 0.023182 0.046540 +0.250000 +0 0.353920 0 0.155725 0.120333 0.037162 0.128827 0.052380 0.028491 0.041586 +0.250000 +0 0 0.353920 0.152185 0.115024 0.035392 0.129004 0.055742 0.029198 0.037162 +0.214286 +0.353920 0 0 0.198195 0.155725 0.049549 0.343656 0.156786 0.072377 0.093789 +0.464286 +0 0.353920 0 0.219430 0.169881 0.063706 0.432313 0.205981 0.095381 0.110777 +0.392857 +0.353920 0 0 0.231817 0.171651 0.069014 0.573350 0.222085 0.126703 0.171651 +0.571429 +0.353920 0 0 0.194656 0.150416 0.053088 0.294284 0.145461 0.062467 0.076624 +0.321429 +0 0.353920 0 0.148646 0.116793 0.044240 0.163865 0.065829 0.038931 0.051318 +0.321429 +0 0.353920 0 0.155725 0.122102 0.037162 0.151655 0.058397 0.029375 0.046717 +0.357143 +0.353920 0 0 0.244205 0.194656 0.063706 0.598655 0.235534 0.142276 0.176960 +0.357143 +0 0.353920 0 0.247744 0.189347 0.061936 0.627500 0.240842 0.169881 0.181207 +0.500000 +0.353920 0 0 0.155725 0.123872 0.049549 0.159618 0.060520 0.024951 0.065121 +0.535714 +0 0 0.353920 0.145107 0.106176 0.040701 0.091842 0.034330 0.018227 0.028314 +0.321429 +0.353920 0 0 0.274288 0.222969 0.088480 0.983720 0.477261 0.268979 0.204566 +0.392857 +0.353920 0 0 0.168112 0.130950 0.044240 0.180322 0.076624 0.039816 0.058397 +0.285714 +0 0.353920 0 0.254822 0.208813 0.072554 0.619182 0.274465 0.149531 0.169881 +0.357143 +0 0.353920 0 0.138029 0.106176 0.035392 0.093789 0.038046 0.021235 0.030614 +0.428571 +0 0 0.353920 0.175190 0.130950 0.044240 0.166873 0.073438 0.032207 0.053088 +0.250000 +0.353920 0 0 0.235357 0.185808 0.063706 0.505751 0.237657 0.102637 0.141568 +0.392857 +0.353920 0 0 0.180499 0.138029 0.047779 0.272164 0.139267 0.051495 0.067245 +0.250000 +0 0.353920 0 0.228278 0.180499 0.067245 0.482392 0.202796 0.128119 0.127411 +0.321429 +0 0.353920 0 0.261901 0.212352 0.069014 0.698637 0.211644 0.144576 0.251283 +0.535714 +0 0 0.353920 0.214121 0.166342 0.051318 0.284021 0.134136 0.080163 0.077862 +0.285714 +0 0.353920 0 0.205273 0.164573 0.058397 0.389843 0.142984 0.074146 0.123872 +0.357143 +0 0.353920 0 0.217661 0.185808 0.054858 0.367546 0.151124 0.081932 0.122102 +0.357143 +0.353920 0 0 0.192886 0.159264 0.053088 0.311272 0.136967 0.053088 0.092904 +0.357143 +0 0 0.353920 0.109715 0.083171 0.026544 0.053619 0.019820 0.011148 0.017696 +0.214286 +0.353920 0 0 0.233587 0.189347 0.067245 0.562909 0.227393 0.105114 0.183153 +0.285714 +0 0 0.353920 0.138029 0.111485 0.031853 0.109538 0.052026 0.017696 0.031853 +0.214286 +0.353920 0 0 0.230048 0.185808 0.061936 0.520793 0.238896 0.111485 0.141214 +0.357143 +0 0 0.353920 0.184038 0.138029 0.046010 0.196248 0.083348 0.038754 0.067068 +0.214286 +0 0 0.353920 0.127411 0.088480 0.040701 0.164573 0.074323 0.037339 0.045302 +0.214286 +0 0.353920 0 0.231817 0.184038 0.070784 0.547691 0.252345 0.111131 0.164927 +0.285714 +0 0.353920 0 0.210582 0.152185 0.074323 0.539551 0.231110 0.140152 0.145107 +0.357143 +0.353920 0 0 0.192886 0.145107 0.042470 0.280658 0.153601 0.049726 0.067245 +0.285714 +0 0 0.353920 0.203504 0.159264 0.051318 0.281366 0.128827 0.053265 0.092019 +0.321429 +0.353920 0 0 0.136259 0.106176 0.040701 0.121571 0.058220 0.030083 0.036277 +0.178571 +0.353920 0 0 0.222969 0.176960 0.065475 0.482039 0.204743 0.110600 0.135905 +0.321429 +0 0 0.353920 0.161033 0.118563 0.037162 0.149354 0.081048 0.030614 0.035392 +0.178571 +0.353920 0 0 0.192886 0.148646 0.044240 0.344895 0.124934 0.061582 0.107945 +0.428571 +0.353920 0 0 0.138029 0.099098 0.044240 0.199611 0.107415 0.033799 0.050611 +0.214286 +0 0 0.353920 0.065475 0.047779 0.014157 0.009556 0.003716 0.001947 0.003185 +0.142857 +0.353920 0 0 0.192886 0.159264 0.053088 0.276234 0.134313 0.057512 0.076447 +0.250000 +0 0.353920 0 0.199965 0.159264 0.047779 0.349850 0.136967 0.052911 0.109715 +0.392857 +0.353920 0 0 0.208813 0.168112 0.058397 0.381171 0.160856 0.086356 0.109538 +0.285714 +0 0 0.353920 0.146877 0.113254 0.038931 0.132189 0.061936 0.026721 0.038577 +0.214286 +0 0.353920 0 0.214121 0.176960 0.065475 0.395859 0.165988 0.091488 0.118563 +0.285714 +0.353920 0 0 0.157494 0.130950 0.044240 0.182269 0.088303 0.030791 0.056273 +0.285714 +0 0 0.353920 0.123872 0.092019 0.030083 0.061582 0.024951 0.012210 0.021235 +0.321429 +0 0.353920 0 0.175190 0.136259 0.047779 0.234472 0.106353 0.057866 0.065475 +0.357143 +0 0.353920 0 0.164573 0.123872 0.046010 0.174836 0.068837 0.036454 0.054858 +0.607143 +0 0 0.353920 0.136259 0.106176 0.033622 0.106884 0.053796 0.021766 0.026013 +0.214286 +0.353920 0 0 0.169881 0.132720 0.040701 0.239427 0.113431 0.037692 0.060166 +0.178571 +0 0.353920 0 0.222969 0.171651 0.067245 0.440099 0.164042 0.108122 0.138029 +0.714286 +0 0 0.353920 0.115024 0.079632 0.026544 0.049195 0.019996 0.011325 0.031853 +0.178571 +0 0 0.353920 0.095558 0.069014 0.024774 0.036100 0.015926 0.004778 0.012033 +0.250000 +0.353920 0 0 0.245974 0.187577 0.074323 0.534419 0.235003 0.144930 0.136259 +0.321429 +0 0 0.353920 0.127411 0.093789 0.026544 0.063175 0.027783 0.012387 0.019112 +0.178571 +0 0 0.353920 0.106176 0.079632 0.026544 0.047602 0.020173 0.009910 0.015572 +0.142857 +0 0 0.353920 0.166342 0.127411 0.046010 0.184923 0.070076 0.037692 0.058397 +0.285714 +0.353920 0 0 0.224739 0.171651 0.063706 0.417448 0.169351 0.098213 0.125641 +0.321429 +0 0.353920 0 0.178729 0.143337 0.056627 0.241904 0.095912 0.051318 0.076093 +0.321429 +0 0 0.353920 0.198195 0.157494 0.058397 0.294461 0.122279 0.063352 0.098744 +0.285714 +0 0.353920 0 0.235357 0.182269 0.065475 0.474429 0.198018 0.103698 0.154840 +0.357143 +0 0.353920 0 0.242435 0.199965 0.061936 0.579720 0.275173 0.132720 0.155017 +0.357143 +0 0.353920 0 0.169881 0.143337 0.046010 0.225624 0.098036 0.051141 0.074323 +0.321429 +0 0 0.353920 0.130950 0.097328 0.030083 0.072377 0.033976 0.019820 0.028314 +0.178571 +0.353920 0 0 0.221200 0.171651 0.060166 0.508583 0.207220 0.103698 0.168112 +0.357143 +0 0 0.353920 0.171651 0.130950 0.046010 0.162095 0.064059 0.039993 0.048133 +0.321429 +0.353920 0 0 0.210582 0.162803 0.049549 0.301540 0.149177 0.079809 0.080340 +0.285714 +0 0.353920 0 0.240665 0.198195 0.069014 0.588922 0.205273 0.136436 0.192886 +0.357143 +0 0.353920 0 0.249513 0.201734 0.065475 0.623253 0.264378 0.131835 0.172713 +0.321429 +0 0.353920 0 0.205273 0.159264 0.053088 0.325606 0.139090 0.075031 0.102460 +0.285714 +0.353920 0 0 0.164573 0.127411 0.038931 0.175367 0.094320 0.030083 0.042824 +0.214286 +0 0 0.353920 0.143337 0.107945 0.037162 0.128296 0.055388 0.024951 0.044240 +0.321429 +0.353920 0 0 0.222969 0.175190 0.063706 0.463635 0.175190 0.104406 0.166165 +0.321429 +0 0 0.353920 0.159264 0.116793 0.037162 0.131481 0.066006 0.027783 0.034507 +0.214286 +0 0 0.353920 0.182269 0.139798 0.044240 0.205450 0.083702 0.038046 0.067245 +0.285714 +0.353920 0 0 0.099098 0.074323 0.023005 0.032030 0.012387 0.007078 0.010618 +0.142857 +0.353920 0 0 0.261901 0.214121 0.070784 0.882145 0.405415 0.203504 0.185277 +0.428571 +0 0.353920 0 0.194656 0.159264 0.053088 0.309680 0.128119 0.062113 0.097859 +0.321429 +0 0 0.353920 0.145107 0.106176 0.031853 0.107592 0.045656 0.025128 0.033799 +0.250000 +0.353920 0 0 0.221200 0.176960 0.069014 0.484516 0.207928 0.077331 0.130950 +0.571429 +0 0.353920 0 0.185808 0.155725 0.053088 0.298177 0.130419 0.070253 0.084941 +0.392857 +0 0 0.353920 0.184038 0.139798 0.044240 0.205450 0.086533 0.051672 0.058397 +0.285714 +0.353920 0 0 0.228278 0.176960 0.061936 0.534596 0.238365 0.132897 0.133605 +0.392857 +0 0 0.353920 0.141568 0.109715 0.035392 0.044948 0.037515 0.025128 0.030083 +0.214286 +0 0 0.353920 0.191117 0.152185 0.049549 0.290037 0.139267 0.061051 0.081225 +0.285714 +0 0.353920 0 0.199965 0.141568 0.046010 0.246859 0.108830 0.058928 0.063706 +0.250000 +0.353920 0 0 0.214121 0.176960 0.061936 0.388604 0.168643 0.082109 0.132720 +0.392857 +0 0.353920 0 0.219430 0.180499 0.072554 0.476907 0.168997 0.090780 0.169881 +0.464286 +0 0 0.353920 0.175190 0.125641 0.042470 0.175721 0.075739 0.036985 0.052911 +0.250000 +0.353920 0 0 0.215891 0.176960 0.058397 0.450009 0.173952 0.065475 0.173421 +0.392857 +0 0.353920 0 0.207043 0.168112 0.065475 0.339232 0.146700 0.057158 0.116793 +0.357143 +0.353920 0 0 0.109715 0.079632 0.028314 0.047602 0.019112 0.008494 0.017696 +0.214286 +0 0 0.353920 0.060166 0.044240 0.019466 0.008317 0.003185 0.001947 0.002831 +0.178571 +0 0 0.353920 0.184038 0.141568 0.038931 0.211290 0.103875 0.040878 0.056627 +0.250000 +0 0.353920 0 0.221200 0.166342 0.060166 0.444169 0.185808 0.085472 0.143337 +0.321429 +0.353920 0 0 0.235357 0.189347 0.079632 0.772784 0.266678 0.138383 0.313219 +0.928571 +0.353920 0 0 0.203504 0.155725 0.051318 0.307910 0.139621 0.077685 0.079632 +0.250000 +0.353920 0 0 0.120333 0.093789 0.030083 0.064944 0.027252 0.016280 0.023005 +0.321429 +0.353920 0 0 0.219430 0.164573 0.065475 0.450894 0.204919 0.108476 0.113254 +0.392857 +0 0.353920 0 0.208813 0.164573 0.053088 0.352858 0.138737 0.087064 0.120333 +0.392857 +0 0.353920 0 0.245974 0.189347 0.061936 0.481685 0.193417 0.099628 0.164573 +0.321429 +0.353920 0 0 0.182269 0.153955 0.051318 0.311980 0.103345 0.072907 0.090250 +0.321429 +0.353920 0 0 0.222969 0.178729 0.079632 0.539727 0.198195 0.118032 0.159264 +0.500000 +0 0 0.353920 0.148646 0.115024 0.040701 0.125288 0.057512 0.022651 0.037162 +0.250000 +0 0 0.353920 0.166342 0.130950 0.038931 0.196602 0.088480 0.040701 0.057689 +0.250000 +0.353920 0 0 0.249513 0.198195 0.077862 0.701115 0.289329 0.109184 0.268979 +0.464286 +0 0.353920 0 0.221200 0.173421 0.061936 0.436383 0.196956 0.087418 0.129181 +0.357143 +0.353920 0 0 0.228278 0.178729 0.065475 0.517784 0.209520 0.138206 0.147231 +0.321429 +0 0 0.353920 0.180499 0.143337 0.044240 0.240488 0.122633 0.049372 0.064413 +0.250000 +0 0.353920 0 0.219430 0.180499 0.063706 0.471244 0.210228 0.097682 0.137321 +0.357143 +0.353920 0 0 0.258361 0.203504 0.074323 0.732260 0.328614 0.144753 0.227570 +0.357143 +0 0.353920 0 0.187577 0.145107 0.051318 0.292161 0.132720 0.072200 0.086710 +0.285714 +0.353920 0 0 0.230048 0.182269 0.065475 0.486463 0.265440 0.063882 0.130596 +0.392857 +0.353920 0 0 0.199965 0.153955 0.053088 0.350380 0.205096 0.064590 0.072907 +0.250000 +0 0 0.353920 0.153955 0.118563 0.035392 0.116617 0.045656 0.024774 0.038931 +0.214286 +0 0 0.353920 0.198195 0.155725 0.058397 0.283136 0.118563 0.061405 0.088480 +0.392857 +0 0 0.353920 0.104406 0.076093 0.030083 0.045302 0.017342 0.012033 0.014157 +0.178571 +0.353920 0 0 0.141568 0.102637 0.040701 0.098921 0.039462 0.020350 0.026544 +0.285714 +0.353920 0 0 0.139798 0.104406 0.040701 0.111839 0.042647 0.021058 0.039108 +0.392857 +0.353920 0 0 0.097328 0.072554 0.024774 0.033268 0.011856 0.007078 0.011502 +0.142857 +0 0 0.353920 0.194656 0.153955 0.058397 0.284551 0.120333 0.068660 0.086356 +0.250000 +0 0 0.353920 0.196425 0.153955 0.049549 0.270749 0.139621 0.053088 0.072907 +0.250000 +0 0 0.353920 0.093789 0.074323 0.021235 0.034153 0.015042 0.007786 0.010618 +0.142857 +0.353920 0 0 0.222969 0.173421 0.067245 0.416740 0.174659 0.119094 0.100867 +0.357143 +0 0 0.353920 0.191117 0.138029 0.044240 0.221377 0.089365 0.055919 0.067245 +0.250000 +0.353920 0 0 0.205273 0.159264 0.049549 0.291630 0.122633 0.062467 0.093081 +0.321429 +0 0 0.353920 0.134489 0.102637 0.035392 0.083879 0.038223 0.013980 0.029021 +0.178571 +0 0 0.353920 0.127411 0.099098 0.037162 0.070430 0.024597 0.015926 0.028314 +0.285714 +0.353920 0 0 0.178729 0.141568 0.046010 0.270395 0.107415 0.066891 0.076978 +0.357143 +0.353920 0 0 0.226509 0.171651 0.056627 0.356043 0.161387 0.079455 0.100336 +0.285714 +0.353920 0 0 0.194656 0.153955 0.051318 0.298354 0.116086 0.067776 0.090250 +0.500000 +0 0.353920 0 0.219430 0.176960 0.060166 0.406300 0.193771 0.077862 0.117324 +0.321429 +0 0.353920 0 0.226509 0.173421 0.063706 0.481331 0.231110 0.122810 0.107945 +0.285714 +0 0.353920 0 0.207043 0.171651 0.053088 0.381879 0.146700 0.074854 0.125995 +0.357143 +0.353920 0 0 0.222969 0.182269 0.056627 0.359582 0.149177 0.086356 0.125641 +0.642857 +0 0.353920 0 0.150416 0.122102 0.038931 0.129712 0.044240 0.028667 0.041409 +0.357143 +0.353920 0 0 0.185808 0.150416 0.044240 0.287383 0.142807 0.060343 0.069014 +0.250000 +0 0.353920 0 0.214121 0.171651 0.056627 0.425058 0.147584 0.101752 0.134489 +0.285714 +0.353920 0 0 0.184038 0.145107 0.040701 0.272518 0.093081 0.055565 0.092019 +0.357143 +0.353920 0 0 0.219430 0.175190 0.063706 0.444346 0.204035 0.089896 0.125641 +0.392857 +0.353920 0 0 0.207043 0.161033 0.051318 0.337285 0.139621 0.095027 0.091311 +0.321429 +0 0 0.353920 0.189347 0.136259 0.063706 0.383472 0.175367 0.081225 0.107592 +0.250000 +0.353920 0 0 0.169881 0.125641 0.056627 0.164219 0.078216 0.037515 0.084587 +0.250000 +0 0.353920 0 0.146877 0.107945 0.046010 0.113254 0.046187 0.026721 0.037162 +0.250000 +0 0 0.353920 0.159264 0.120333 0.033622 0.114847 0.049018 0.022651 0.037162 +0.250000 +0 0.353920 0 0.215891 0.175190 0.067245 0.429305 0.164219 0.108299 0.129181 +0.500000 +0 0 0.353920 0.120333 0.093789 0.028314 0.071315 0.031853 0.016811 0.019466 +0.142857 +0.353920 0 0 0.157494 0.125641 0.038931 0.156256 0.063882 0.036631 0.053265 +0.321429 +0 0.353920 0 0.205273 0.153955 0.053088 0.295169 0.151478 0.053619 0.081402 +0.250000 +0.353920 0 0 0.235357 0.178729 0.056627 0.456202 0.217484 0.089542 0.129712 +0.357143 +0 0 0.353920 0.159264 0.127411 0.046010 0.169174 0.067599 0.044948 0.048487 +0.214286 +0 0.353920 0 0.222969 0.176960 0.065475 0.489471 0.191117 0.117324 0.134489 +0.321429 +0 0.353920 0 0.233587 0.185808 0.072554 0.483631 0.177137 0.102991 0.145107 +0.607143 +0.353920 0 0 0.230048 0.178729 0.063706 0.519908 0.251814 0.118032 0.134489 +0.285714 +0 0 0.353920 0.184038 0.134489 0.044240 0.196248 0.101929 0.045833 0.059105 +0.250000 +0 0 0.353920 0.214121 0.153955 0.046010 0.319412 0.152893 0.061582 0.092019 +0.357143 +0 0.353920 0 0.230048 0.176960 0.058397 0.405061 0.171651 0.077154 0.129181 +0.392857 +0 0.353920 0 0.194656 0.153955 0.049549 0.263670 0.122810 0.061582 0.080163 +0.285714 +0 0.353920 0 0.210582 0.164573 0.053088 0.380995 0.173775 0.077862 0.101575 +0.285714 +0 0 0.353920 0.187577 0.152185 0.056627 0.256415 0.113608 0.045125 0.084941 +0.285714 +0 0 0.353920 0.164573 0.122102 0.038931 0.139090 0.064590 0.026013 0.042470 +0.250000 +0 0 0.353920 0.118563 0.090250 0.028314 0.059459 0.027960 0.012564 0.017696 +0.142857 +0 0.353920 0 0.184038 0.145107 0.060166 0.308087 0.132189 0.077508 0.088480 +0.464286 +0 0.353920 0 0.228278 0.182269 0.061936 0.547160 0.248982 0.129181 0.146877 +0.321429 +0 0.353920 0 0.198195 0.148646 0.063706 0.589099 0.274465 0.123872 0.160149 +0.285714 +0 0.353920 0 0.212352 0.168112 0.056627 0.363299 0.171651 0.088303 0.090780 +0.285714 +0 0 0.353920 0.152185 0.118563 0.037162 0.133782 0.066537 0.027783 0.031853 +0.178571 +0.353920 0 0 0.176960 0.141568 0.051318 0.213237 0.076447 0.048841 0.074323 +0.357143 +0 0 0.353920 0.099098 0.072554 0.024774 0.035923 0.014511 0.010618 0.010618 +0.178571 +0.353920 0 0 0.136259 0.100867 0.037162 0.102814 0.043001 0.024243 0.030968 +0.392857 +0.353920 0 0 0.192886 0.138029 0.047779 0.277296 0.149531 0.064236 0.055211 +0.214286 +0 0 0.353920 0.150416 0.115024 0.038931 0.112193 0.047779 0.016988 0.031853 +0.250000 +0 0 0.353920 0.215891 0.168112 0.053088 0.342063 0.146700 0.070784 0.122102 +0.321429 +0.353920 0 0 0.247744 0.191117 0.072554 0.615820 0.279066 0.132012 0.172182 +0.428571 +0 0.353920 0 0.192886 0.136259 0.053088 0.395859 0.192001 0.086533 0.100690 +0.285714 +0.353920 0 0 0.203504 0.161033 0.058397 0.306848 0.133251 0.063882 0.094850 +0.250000 +0 0 0.353920 0.205273 0.157494 0.044240 0.251106 0.107238 0.049726 0.083171 +0.285714 +0 0.353920 0 0.247744 0.185808 0.067245 0.582729 0.302424 0.108653 0.141391 +0.285714 +0 0.353920 0 0.228278 0.176960 0.053088 0.410193 0.165457 0.118740 0.109715 +0.285714 +0 0 0.353920 0.178729 0.138029 0.053088 0.242435 0.128119 0.046363 0.055211 +0.250000 +0 0 0.353920 0.164573 0.130950 0.040701 0.144222 0.053619 0.033091 0.051495 +0.285714 +0 0 0.353920 0.120333 0.088480 0.024774 0.078747 0.036808 0.015042 0.019466 +0.214286 +0 0.353920 0 0.217661 0.168112 0.051318 0.337108 0.138560 0.069014 0.113254 +0.285714 +0.353920 0 0 0.166342 0.130950 0.046010 0.184923 0.071138 0.047071 0.058397 +0.214286 +0.353920 0 0 0.175190 0.139798 0.042470 0.195718 0.079278 0.048664 0.059105 +0.250000 +0.353920 0 0 0.221200 0.182269 0.060166 0.471067 0.202619 0.106353 0.127765 +0.285714 +0.353920 0 0 0.198195 0.155725 0.056627 0.305964 0.116970 0.073438 0.092019 +0.321429 +0.353920 0 0 0.157494 0.122102 0.049549 0.168466 0.072730 0.035923 0.038400 +0.500000 +0.353920 0 0 0.194656 0.145107 0.044240 0.269156 0.088657 0.057866 0.069014 +0.464286 +0 0.353920 0 0.189347 0.148646 0.046010 0.247390 0.110600 0.055388 0.072023 +0.250000 +0.353920 0 0 0.228278 0.176960 0.063706 0.517077 0.211821 0.085826 0.155371 +0.357143 +0.353920 0 0 0.212352 0.164573 0.063706 0.422226 0.182092 0.111485 0.108122 +0.250000 +0.353920 0 0 0.157494 0.123872 0.042470 0.156609 0.067953 0.033799 0.047779 +0.250000 +0 0 0.353920 0.129181 0.097328 0.047779 0.084941 0.038223 0.015749 0.026013 +0.214286 +0 0.353920 0 0.219430 0.175190 0.060166 0.375863 0.131658 0.075385 0.120333 +0.357143 +0.353920 0 0 0.185808 0.146877 0.047779 0.281189 0.139444 0.066891 0.071492 +0.214286 +0 0 0.353920 0.148646 0.111485 0.040701 0.125641 0.067068 0.023005 0.030791 +0.178571 +0.353920 0 0 0.219430 0.169881 0.058397 0.379579 0.170412 0.083171 0.110423 +0.285714 +0 0 0.353920 0.150416 0.120333 0.037162 0.137675 0.071315 0.032030 0.031145 +0.178571 +0 0 0.353920 0.130950 0.099098 0.030083 0.076801 0.038754 0.012387 0.021943 +0.178571 +0 0 0.353920 0.132720 0.095558 0.030083 0.077154 0.033445 0.013803 0.024774 +0.214286 +0.353920 0 0 0.245974 0.194656 0.077862 0.549106 0.200319 0.135728 0.157494 +0.428571 +0 0.353920 0 0.231817 0.176960 0.049549 0.414263 0.191294 0.112369 0.100867 +0.392857 +0 0.353920 0 0.210582 0.169881 0.056627 0.428066 0.184923 0.104760 0.113254 +0.250000 +0.353920 0 0 0.184038 0.141568 0.042470 0.291276 0.105468 0.063882 0.093789 +0.500000 +0 0.353920 0 0.187577 0.145107 0.046010 0.246505 0.106884 0.068483 0.070784 +0.321429 +0 0 0.353920 0.145107 0.109715 0.031853 0.119979 0.054858 0.024597 0.031853 +0.214286 +0 0.353920 0 0.127411 0.093789 0.031853 0.076624 0.033976 0.013095 0.026013 +0.321429 +0 0.353920 0 0.249513 0.187577 0.060166 0.553530 0.216599 0.139444 0.155725 +0.321429 +0 0.353920 0 0.192886 0.152185 0.049549 0.294461 0.154132 0.060166 0.071138 +0.285714 +0 0 0.353920 0.099098 0.076093 0.024774 0.043886 0.022297 0.007609 0.010618 +0.178571 +0.353920 0 0 0.235357 0.189347 0.069014 0.568395 0.203681 0.137321 0.169881 +0.464286 +0.353920 0 0 0.215891 0.168112 0.054858 0.347903 0.161564 0.080694 0.094143 +0.321429 +0.353920 0 0 0.217661 0.178729 0.067245 0.496549 0.237657 0.103521 0.129181 +0.250000 +0 0 0.353920 0.184038 0.145107 0.051318 0.228632 0.104937 0.056450 0.058397 +0.285714 +0 0.353920 0 0.201734 0.155725 0.049549 0.337462 0.133959 0.071138 0.107945 +0.571429 +0.353920 0 0 0.176960 0.141568 0.046010 0.235180 0.091311 0.047071 0.084941 +0.392857 +0 0.353920 0 0.251283 0.199965 0.069014 0.611042 0.225801 0.119094 0.199965 +0.571429 +0 0.353920 0 0.240665 0.182269 0.061936 0.572819 0.181384 0.144753 0.219430 +0.392857 +0 0.353920 0 0.237126 0.187577 0.072554 0.496018 0.227570 0.087241 0.147231 +0.392857 +0 0 0.353920 0.171651 0.130950 0.049549 0.179260 0.085826 0.031145 0.051849 +0.250000 +0 0.353920 0 0.166342 0.132720 0.042470 0.212883 0.097859 0.051495 0.047779 +0.250000 +0 0.353920 0 0.210582 0.168112 0.060166 0.441338 0.169881 0.079632 0.150416 +0.678571 +0 0 0.353920 0.148646 0.115024 0.038931 0.115024 0.044063 0.026721 0.036277 +0.214286 +0 0.353920 0 0.219430 0.169881 0.060166 0.390904 0.189347 0.088480 0.101575 +0.321429 +0 0.353920 0 0.153955 0.139798 0.037162 0.128650 0.048133 0.034684 0.046010 +0.285714 +0 0.353920 0 0.166342 0.129181 0.037162 0.148823 0.057689 0.036631 0.049549 +0.285714 +0 0 0.353920 0.088480 0.063706 0.023005 0.028491 0.012210 0.006548 0.007609 +0.107143 +0.353920 0 0 0.237126 0.180499 0.061936 0.540258 0.230402 0.158379 0.122102 +0.321429 +0.353920 0 0 0.238896 0.185808 0.061936 0.496195 0.170943 0.113431 0.164573 +0.535714 +0 0 0.353920 0.063706 0.047779 0.028314 0.011679 0.005132 0.002477 0.003539 +0.142857 +0 0 0.353920 0.168112 0.127411 0.038931 0.174128 0.074677 0.038931 0.053088 +0.250000 +0 0 0.353920 0.093789 0.072554 0.024774 0.037339 0.013803 0.014511 0.012387 +0.142857 +0.353920 0 0 0.187577 0.146877 0.061936 0.261724 0.092373 0.049372 0.093612 +0.571429 +0 0 0.353920 0.155725 0.115024 0.031853 0.123872 0.052380 0.023713 0.037162 +0.214286 +0.353920 0 0 0.205273 0.159264 0.053088 0.328084 0.097682 0.064236 0.127411 +0.464286 +0.353920 0 0 0.219430 0.173421 0.056627 0.366307 0.155725 0.089365 0.100867 +0.357143 +0 0 0.353920 0.155725 0.129181 0.038931 0.158025 0.075385 0.031499 0.040170 +0.285714 +0.353920 0 0 0.191117 0.146877 0.060166 0.311095 0.119979 0.073615 0.090250 +0.321429 +0 0 0.353920 0.136259 0.099098 0.033622 0.090957 0.042116 0.020881 0.024774 +0.214286 +0.353920 0 0 0.178729 0.138029 0.037162 0.231994 0.091842 0.063706 0.067245 +0.357143 +0 0.353920 0 0.143337 0.115024 0.038931 0.125818 0.053442 0.022297 0.041409 +0.285714 +0.353920 0 0 0.224739 0.180499 0.074323 0.565564 0.231286 0.100336 0.205273 +0.500000 +0.353920 0 0 0.226509 0.207043 0.069014 0.582906 0.255707 0.117147 0.166696 +0.392857 +0 0 0.353920 0.106176 0.077862 0.023005 0.043709 0.020881 0.009202 0.011148 +0.142857 +0.353920 0 0 0.226509 0.175190 0.060166 0.403114 0.190940 0.099805 0.100867 +0.321429 +0.353920 0 0 0.224739 0.180499 0.060166 0.479738 0.219076 0.107945 0.138029 +0.285714 +0.353920 0 0 0.222969 0.185808 0.069014 0.464873 0.174659 0.090780 0.164573 +0.321429 +0 0.353920 0 0.184038 0.143337 0.044240 0.227747 0.085472 0.061405 0.074323 +0.392857 +0 0.353920 0 0.205273 0.161033 0.042470 0.332684 0.141214 0.090957 0.093789 +0.357143 +0 0.353920 0 0.261901 0.199965 0.072554 0.749956 0.341709 0.183507 0.170589 +0.392857 +0 0 0.353920 0.196425 0.152185 0.044240 0.247921 0.120156 0.047956 0.074146 +0.250000 +0.353920 0 0 0.187577 0.141568 0.044240 0.268094 0.140860 0.053442 0.061936 +0.250000 +0 0.353920 0 0.161033 0.129181 0.040701 0.152362 0.065121 0.038223 0.044063 +0.250000 +0.353920 0 0 0.134489 0.095558 0.033622 0.077508 0.029552 0.018227 0.024774 +0.178571 +0 0 0.353920 0.127411 0.092019 0.031853 0.063175 0.022828 0.013095 0.026544 +0.214286 +0.353920 0 0 0.222969 0.173421 0.054858 0.443284 0.222969 0.087064 0.102283 +0.285714 +0.353920 0 0 0.224739 0.182269 0.060166 0.451248 0.180145 0.101221 0.120333 +0.535714 +0 0 0.353920 0.221200 0.166342 0.054858 0.423111 0.227570 0.072730 0.111308 +0.392857 +0 0.353920 0 0.130950 0.099098 0.038931 0.081578 0.033445 0.016457 0.026544 +0.321429 +0 0 0.353920 0.083171 0.061936 0.023005 0.021766 0.007255 0.007078 0.006724 +0.178571 +0.353920 0 0 0.205273 0.159264 0.051318 0.354804 0.193594 0.069899 0.081225 +0.250000 +0 0.353920 0 0.219430 0.176960 0.061936 0.419749 0.176429 0.106707 0.123872 +0.392857 +0.353920 0 0 0.123872 0.092019 0.031853 0.070076 0.025659 0.019820 0.021235 +0.321429 +0 0 0.353920 0.162803 0.123872 0.040701 0.147054 0.063706 0.034684 0.041586 +0.214286 +0.353920 0 0 0.235357 0.184038 0.061936 0.485755 0.214475 0.113254 0.139798 +0.392857 +0.353920 0 0 0.203504 0.161033 0.054858 0.358521 0.165811 0.073792 0.104406 +0.357143 +0 0 0.353920 0.136259 0.102637 0.030083 0.088657 0.039639 0.021589 0.028314 +0.250000 +0 0 0.353920 0.162803 0.122102 0.037162 0.158910 0.069368 0.033445 0.044771 +0.214286 +0 0 0.353920 0.136259 0.104406 0.030083 0.089719 0.036454 0.020350 0.030083 +0.214286 +0 0.353920 0 0.187577 0.136259 0.044240 0.236949 0.102283 0.053442 0.063706 +0.321429 +0.353920 0 0 0.207043 0.168112 0.042470 0.334454 0.145107 0.074854 0.099098 +0.464286 +0 0 0.353920 0.205273 0.157494 0.060166 0.416917 0.139267 0.076624 0.111485 +0.678571 +0.353920 0 0 0.228278 0.182269 0.084941 0.545567 0.166696 0.130596 0.189347 +0.428571 +0 0.353920 0 0.233587 0.176960 0.054858 0.487170 0.229517 0.101929 0.118563 +0.392857 +0.353920 0 0 0.185808 0.150416 0.042470 0.248452 0.118032 0.051849 0.077862 +0.392857 +0 0.353920 0 0.208813 0.161033 0.061936 0.341886 0.138383 0.086887 0.109715 +0.321429 +0.353920 0 0 0.215891 0.173421 0.053088 0.390373 0.150416 0.071669 0.127411 +0.785714 +0.353920 0 0 0.176960 0.136259 0.042470 0.224208 0.081578 0.044240 0.083171 +0.464286 +0 0 0.353920 0.171651 0.132720 0.046010 0.195895 0.094143 0.039639 0.055565 +0.250000 +0.353920 0 0 0.205273 0.164573 0.056627 0.366130 0.111485 0.092019 0.128650 +0.392857 +0 0.353920 0 0.214121 0.159264 0.058397 0.432667 0.126349 0.071492 0.136259 +0.428571 +0.353920 0 0 0.175190 0.141568 0.042470 0.233764 0.092196 0.056981 0.067245 +0.500000 +0.353920 0 0 0.199965 0.157494 0.053088 0.281720 0.128650 0.065121 0.077508 +0.250000 +0 0 0.353920 0.189347 0.141568 0.046010 0.232525 0.100336 0.057335 0.061936 +0.214286 +0.353920 0 0 0.253053 0.199965 0.061936 0.691028 0.270572 0.148115 0.146346 +0.321429 +0 0 0.353920 0.205273 0.173421 0.069014 0.465935 0.187754 0.089896 0.145107 +0.607143 +0 0 0.353920 0.125641 0.095558 0.026544 0.062821 0.027960 0.011148 0.019112 +0.178571 +0 0 0.353920 0.224739 0.178729 0.067245 0.471244 0.205450 0.089188 0.153955 +0.571429 +0 0.353920 0 0.196425 0.148646 0.038931 0.329499 0.157317 0.060520 0.079632 +0.250000 +0 0.353920 0 0.230048 0.175190 0.061936 0.434259 0.186870 0.091311 0.130950 +0.357143 +0 0 0.353920 0.143337 0.106176 0.031853 0.095204 0.036454 0.023713 0.038931 +0.178571 +0.353920 0 0 0.230048 0.180499 0.054858 0.497965 0.255353 0.105468 0.118563 +0.285714 +0 0 0.353920 0.097328 0.070784 0.026544 0.030437 0.010795 0.006724 0.010618 +0.214286 +0 0 0.353920 0.187577 0.148646 0.042470 0.211113 0.090426 0.049903 0.062644 +0.214286 +0 0 0.353920 0.221200 0.171651 0.053088 0.369492 0.155017 0.101398 0.098390 +0.285714 +0 0.353920 0 0.237126 0.187577 0.079632 0.552646 0.222969 0.172359 0.131835 +0.357143 +0 0 0.353920 0.189347 0.145107 0.046010 0.215006 0.094850 0.043355 0.069899 +0.285714 +0 0 0.353920 0.182269 0.138029 0.042470 0.199965 0.083171 0.047779 0.063352 +0.285714 +0 0 0.353920 0.134489 0.100867 0.030083 0.083879 0.040701 0.014334 0.024774 +0.178571 +0 0 0.353920 0.104406 0.077862 0.030083 0.045479 0.020704 0.009556 0.012918 +0.142857 +0.353920 0 0 0.099098 0.070784 0.028314 0.032384 0.011679 0.007609 0.010618 +0.142857 +0.353920 0 0 0.191117 0.148646 0.042470 0.287206 0.138737 0.051495 0.079101 +0.285714 +0.353920 0 0 0.109715 0.086710 0.033622 0.053088 0.018581 0.012033 0.016988 +0.214286 +0.353920 0 0 0.224739 0.169881 0.051318 0.417979 0.235357 0.081048 0.079632 +0.321429 +0.353920 0 0 0.199965 0.161033 0.060166 0.320828 0.121041 0.055211 0.113254 +0.607143 +0.353920 0 0 0.122102 0.095558 0.033622 0.069722 0.023536 0.017696 0.024774 +0.285714 +0.353920 0 0 0.265440 0.210582 0.072554 0.785879 0.383295 0.149000 0.222969 +0.392857 +0.353920 0 0 0.215891 0.169881 0.060166 0.402407 0.161564 0.102637 0.122810 +0.321429 +0 0 0.353920 0.120333 0.092019 0.028314 0.070784 0.028314 0.019643 0.019466 +0.178571 +0 0 0.353920 0.134489 0.099098 0.033622 0.102106 0.058397 0.015396 0.023713 +0.214286 +0.353920 0 0 0.185808 0.141568 0.049549 0.259246 0.118209 0.055742 0.060166 +0.357143 +0.353920 0 0 0.127411 0.104406 0.035392 0.074500 0.023359 0.018581 0.026544 +0.285714 +0 0.353920 0 0.196425 0.143337 0.042470 0.323129 0.162272 0.069368 0.073084 +0.285714 +0.353920 0 0 0.207043 0.161033 0.044240 0.363475 0.138383 0.075031 0.088480 +0.571429 +0 0.353920 0 0.224739 0.168112 0.053088 0.419218 0.188639 0.108653 0.102991 +0.321429 +0 0 0.353920 0.180499 0.136259 0.051318 0.271279 0.141037 0.049549 0.063882 +0.250000 +0 0.353920 0 0.187577 0.141568 0.058397 0.273226 0.101044 0.069899 0.081402 +0.392857 +0 0.353920 0 0.222969 0.171651 0.065475 0.413024 0.193948 0.087949 0.120333 +0.321429 +0 0 0.353920 0.176960 0.145107 0.049549 0.234118 0.091488 0.057512 0.069368 +0.285714 +0 0.353920 0 0.198195 0.159264 0.056627 0.362237 0.151832 0.094850 0.106176 +0.321429 +0 0 0.353920 0.138029 0.102637 0.031853 0.092904 0.041409 0.019112 0.027252 +0.214286 +0.353920 0 0 0.231817 0.205273 0.072554 0.736330 0.339409 0.120864 0.212706 +0.571429 +0.353920 0 0 0.176960 0.138029 0.051318 0.230402 0.096620 0.046717 0.077862 +0.357143 +0 0.353920 0 0.238896 0.194656 0.063706 0.597593 0.198903 0.131127 0.212352 +0.500000 +0 0.353920 0 0.219430 0.169881 0.061936 0.368253 0.164219 0.078747 0.106176 +0.285714 +0 0 0.353920 0.194656 0.150416 0.054858 0.308795 0.145815 0.066183 0.085826 +0.321429 +0 0.353920 0 0.196425 0.161033 0.063706 0.339055 0.104760 0.069014 0.138029 +0.464286 +0 0.353920 0 0.191117 0.146877 0.053088 0.287206 0.137144 0.066360 0.072023 +0.285714 +0 0 0.353920 0.127411 0.097328 0.026544 0.078039 0.034861 0.015572 0.023359 +0.214286 +0 0.353920 0 0.208813 0.157494 0.046010 0.400814 0.135374 0.082817 0.113254 +0.428571 +0 0 0.353920 0.139798 0.113254 0.035392 0.108830 0.052734 0.018935 0.031853 +0.250000 +0 0 0.353920 0.120333 0.092019 0.030083 0.066714 0.028844 0.011856 0.021235 +0.178571 +0.353920 0 0 0.194656 0.148646 0.051318 0.261370 0.113608 0.052557 0.089188 +0.357143 +0.353920 0 0 0.205273 0.152185 0.046010 0.282428 0.129181 0.061228 0.080871 +0.321429 +0 0 0.353920 0.162803 0.125641 0.038931 0.154309 0.069899 0.033976 0.044240 +0.250000 +0 0.353920 0 0.230048 0.185808 0.058397 0.438153 0.228986 0.087949 0.106353 +0.285714 +0.353920 0 0 0.189347 0.148646 0.053088 0.247567 0.091134 0.054150 0.084941 +0.392857 +0 0.353920 0 0.178729 0.134489 0.046010 0.245266 0.138383 0.042293 0.053619 +0.250000 +0.353920 0 0 0.146877 0.122102 0.047779 0.136790 0.045302 0.024774 0.052380 +0.428571 +0.353920 0 0 0.130950 0.099098 0.037162 0.082817 0.032030 0.020704 0.026544 +0.285714 +0 0.353920 0 0.187577 0.148646 0.060166 0.293045 0.145107 0.073615 0.053265 +0.178571 +0.353920 0 0 0.111485 0.088480 0.031853 0.071846 0.021766 0.013095 0.028137 +0.357143 +0.353920 0 0 0.210582 0.161033 0.054858 0.368430 0.147231 0.074500 0.129181 +0.464286 +0 0.353920 0 0.178729 0.132720 0.040701 0.208636 0.093258 0.042470 0.059105 +0.321429 +0 0 0.353920 0.132720 0.100867 0.035392 0.084587 0.037162 0.019643 0.024774 +0.250000 +0 0 0.353920 0.182269 0.141568 0.044240 0.209697 0.093789 0.041586 0.059459 +0.285714 +0 0 0.353920 0.061936 0.044240 0.017696 0.008317 0.002831 0.001239 0.002831 +0.142857 +0 0.353920 0 0.230048 0.199965 0.070784 0.589099 0.266502 0.129889 0.152185 +0.392857 +0.353920 0 0 0.199965 0.155725 0.061936 0.319412 0.109715 0.068306 0.115024 +0.464286 +0 0 0.353920 0.161033 0.123872 0.046010 0.167227 0.076093 0.026367 0.053088 +0.285714 +0 0.353920 0 0.210582 0.166342 0.054858 0.416740 0.191824 0.095204 0.109715 +0.285714 +0 0 0.353920 0.150416 0.106176 0.033622 0.124403 0.049903 0.027429 0.042470 +0.250000 +0.353920 0 0 0.196425 0.148646 0.051318 0.307733 0.108830 0.091134 0.088480 +0.464286 +0 0.353920 0 0.141568 0.106176 0.040701 0.107061 0.047248 0.016457 0.033091 +0.250000 +0.353920 0 0 0.254822 0.201734 0.070784 0.646788 0.325252 0.129535 0.171651 +0.321429 +0 0.353920 0 0.254822 0.203504 0.076093 0.787825 0.316935 0.143337 0.219430 +0.428571 +0 0 0.353920 0.155725 0.116793 0.047779 0.184746 0.060166 0.032030 0.069014 +0.535714 +0.353920 0 0 0.178729 0.141568 0.054858 0.297823 0.096089 0.062821 0.100867 +0.392857 +0.353920 0 0 0.178729 0.141568 0.053088 0.274288 0.121925 0.055565 0.065475 +0.214286 +0 0.353920 0 0.189347 0.143337 0.051318 0.242258 0.096443 0.060520 0.072554 +0.321429 +0 0 0.353920 0.199965 0.148646 0.054858 0.262962 0.109715 0.065829 0.081755 +0.285714 +0.353920 0 0 0.242435 0.180499 0.058397 0.546806 0.242789 0.133605 0.143514 +0.321429 +0 0.353920 0 0.182269 0.148646 0.047779 0.222792 0.099628 0.044948 0.076093 +0.285714 +0 0 0.353920 0.118563 0.088480 0.026544 0.064590 0.024951 0.015572 0.019466 +0.214286 +0 0 0.353920 0.159264 0.118563 0.033622 0.124049 0.057158 0.022120 0.041939 +0.214286 +0 0 0.353920 0.187577 0.143337 0.046010 0.234118 0.104229 0.049372 0.067245 +0.285714 +0 0 0.353920 0.180499 0.139798 0.046010 0.213237 0.099451 0.050611 0.057335 +0.214286 +0 0 0.353920 0.159264 0.129181 0.044240 0.163511 0.075562 0.034861 0.046540 +0.250000 +0 0 0.353920 0.203504 0.157494 0.060166 0.283667 0.122987 0.051849 0.088480 +0.285714 +0.353920 0 0 0.242435 0.194656 0.070784 0.627323 0.287737 0.136967 0.173421 +0.357143 +0 0 0.353920 0.235357 0.176960 0.060166 0.459211 0.213591 0.102991 0.127234 +0.285714 +0 0.353920 0 0.224739 0.180499 0.060166 0.433021 0.188285 0.095912 0.125288 +0.285714 +0.353920 0 0 0.237126 0.185808 0.060166 0.495665 0.253053 0.107061 0.136967 +0.285714 +0 0 0.353920 0.109715 0.079632 0.024774 0.037339 0.153955 0.005309 0.014157 +0.142857 +0 0 0.353920 0.205273 0.162803 0.049549 0.293576 0.138560 0.058397 0.084233 +0.321429 +0.353920 0 0 0.226509 0.185808 0.070784 0.487170 0.155725 0.108830 0.166342 +0.535714 +0 0 0.353920 0.153955 0.118563 0.037162 0.125111 0.055211 0.017696 0.040170 +0.214286 +0 0 0.353920 0.178729 0.141568 0.051318 0.249336 0.118209 0.050434 0.073261 +0.250000 +0 0.353920 0 0.171651 0.134489 0.053088 0.214121 0.076270 0.049549 0.063706 +0.500000 +0 0 0.353920 0.136259 0.102637 0.035392 0.091134 0.035392 0.021589 0.030437 +0.178571 +0 0 0.353920 0.212352 0.168112 0.053088 0.396390 0.199965 0.087241 0.095558 +0.321429 +0 0.353920 0 0.171651 0.129181 0.042470 0.208282 0.095558 0.046363 0.061936 +0.285714 +0.353920 0 0 0.217661 0.166342 0.051318 0.364006 0.156963 0.099982 0.100867 +0.357143 +0 0.353920 0 0.194656 0.152185 0.049549 0.252522 0.090780 0.065829 0.079632 +0.285714 +0.353920 0 0 0.270749 0.207043 0.063706 0.848699 0.399221 0.181207 0.188816 +0.392857 +0.353920 0 0 0.230048 0.182269 0.044240 0.417802 0.185277 0.100159 0.115909 +0.285714 +0 0 0.353920 0.141568 0.106176 0.038931 0.111485 0.038577 0.023713 0.042470 +0.285714 +0.353920 0 0 0.245974 0.187577 0.067245 0.610865 0.269864 0.154309 0.161033 +0.357143 +0.353920 0 0 0.173421 0.134489 0.038931 0.196071 0.103875 0.035569 0.053088 +0.250000 +0 0.353920 0 0.212352 0.164573 0.054858 0.368076 0.168289 0.088480 0.099098 +0.357143 +0 0.353920 0 0.235357 0.189347 0.067245 0.529464 0.204389 0.099628 0.168112 +0.571429 +0.353920 0 0 0.222969 0.187577 0.063706 0.452840 0.218722 0.090603 0.111485 +0.285714 +0.353920 0 0 0.169881 0.132720 0.042470 0.208636 0.089719 0.045302 0.060874 +0.357143 +0.353920 0 0 0.226509 0.173421 0.049549 0.422580 0.157317 0.084233 0.132720 +0.500000 +0 0.353920 0 0.201734 0.159264 0.061936 0.338170 0.134489 0.058928 0.104406 +0.607143 +0.353920 0 0 0.198195 0.159264 0.051318 0.316404 0.137498 0.074146 0.093435 +0.285714 +0 0.353920 0 0.237126 0.182269 0.060166 0.504866 0.233764 0.120156 0.130950 +0.357143 +0 0.353920 0 0.215891 0.168112 0.056627 0.394797 0.135728 0.078924 0.134136 +0.321429 +0.353920 0 0 0.222969 0.173421 0.056627 0.385772 0.144045 0.079278 0.125288 +0.392857 +0.353920 0 0 0.194656 0.152185 0.056627 0.328968 0.112193 0.061405 0.125641 +0.428571 +0.353920 0 0 0.191117 0.146877 0.046010 0.291807 0.096266 0.079986 0.084941 +0.428571 +0 0 0.353920 0.097328 0.069014 0.031853 0.039816 0.019289 0.010441 0.012564 +0.178571 +0 0 0.353920 0.130950 0.099098 0.035392 0.078216 0.041232 0.009379 0.022474 +0.178571 +0.353920 0 0 0.212352 0.162803 0.053088 0.441338 0.188816 0.096797 0.102637 +0.285714 +0.353920 0 0 0.173421 0.148646 0.044240 0.215537 0.084587 0.050787 0.077862 +0.464286 +0.353920 0 0 0.214121 0.168112 0.061936 0.425058 0.190940 0.097328 0.109361 +0.321429 +0.353920 0 0 0.178729 0.136259 0.051318 0.239781 0.083525 0.063352 0.070784 +0.500000 +0 0 0.353920 0.189347 0.141568 0.051318 0.249513 0.108476 0.048310 0.077862 +0.321429 +0.353920 0 0 0.168112 0.136259 0.051318 0.218545 0.083171 0.038223 0.076093 +0.464286 +0.353920 0 0 0.212352 0.164573 0.054858 0.446647 0.221023 0.086887 0.116793 +0.321429 +0 0.353920 0 0.201734 0.164573 0.054858 0.342771 0.157848 0.092373 0.090250 +0.285714 +0 0 0.353920 0.230048 0.185808 0.063706 0.575473 0.211290 0.121925 0.187577 +0.607143 +0 0.353920 0 0.233587 0.176960 0.058397 0.421341 0.162272 0.105468 0.130950 +0.392857 +0 0 0.353920 0.191117 0.150416 0.049549 0.262608 0.113254 0.049372 0.088480 +0.285714 +0 0.353920 0 0.192886 0.146877 0.056627 0.273049 0.096266 0.051495 0.097859 +0.321429 +0.353920 0 0 0.233587 0.184038 0.067245 0.551407 0.267209 0.105468 0.141568 +0.321429 +0.353920 0 0 0.194656 0.152185 0.046010 0.297116 0.111662 0.069191 0.085118 +0.321429 +0 0.353920 0 0.222969 0.178729 0.058397 0.376924 0.162626 0.076447 0.111485 +0.392857 +0.353920 0 0 0.228278 0.182269 0.061936 0.570342 0.238719 0.135905 0.136259 +0.464286 +0 0 0.353920 0.169881 0.129181 0.035392 0.163157 0.078039 0.029552 0.047779 +0.250000 +0 0 0.353920 0.194656 0.157494 0.051318 0.277119 0.107769 0.055565 0.093789 +0.357143 +0 0.353920 0 0.231817 0.180499 0.061936 0.500796 0.208282 0.131835 0.128827 +0.321429 +0 0 0.353920 0.118563 0.092019 0.030083 0.067953 0.034330 0.010618 0.019112 +0.178571 +0 0.353920 0 0.164573 0.125641 0.040701 0.166519 0.069191 0.041763 0.044594 +0.214286 +0.353920 0 0 0.134489 0.083171 0.035392 0.091311 0.037339 0.019112 0.028314 +0.214286 +0.353920 0 0 0.212352 0.145107 0.051318 0.332331 0.158379 0.069368 0.094850 +0.250000 +0 0 0.353920 0.130950 0.099098 0.033622 0.101398 0.053265 0.024420 0.028137 +0.214286 +0 0 0.353920 0.130950 0.095558 0.031853 0.065652 0.024774 0.015042 0.023005 +0.214286 +0 0.353920 0 0.215891 0.166342 0.051318 0.408069 0.142630 0.104760 0.113254 +0.464286 +0 0 0.353920 0.182269 0.136259 0.044240 0.202442 0.083879 0.050787 0.058397 +0.214286 +0 0.353920 0 0.231817 0.178729 0.069014 0.509821 0.243497 0.134666 0.128473 +0.357143 +0 0.353920 0 0.122102 0.088480 0.031853 0.071846 0.027606 0.020881 0.019466 +0.178571 +0.353920 0 0 0.100867 0.074323 0.026544 0.041939 0.019466 0.010087 0.014157 +0.214286 +0.353920 0 0 0.125641 0.102637 0.031853 0.115909 0.047425 0.030437 0.031853 +0.285714 +0 0 0.353920 0.150416 0.122102 0.044240 0.150416 0.056627 0.028137 0.054504 +0.428571 +0 0.353920 0 0.214121 0.161033 0.051318 0.305079 0.118209 0.070253 0.106176 +0.285714 +0 0.353920 0 0.231817 0.178729 0.061936 0.456733 0.219607 0.104937 0.115378 +0.321429 +0 0 0.353920 0.207043 0.162803 0.049549 0.270218 0.115378 0.054150 0.093789 +0.285714 +0 0 0.353920 0.153955 0.120333 0.038931 0.134313 0.052911 0.030083 0.042470 +0.250000 +0 0 0.353920 0.184038 0.136259 0.040701 0.205627 0.090426 0.055211 0.050611 +0.321429 +0 0 0.353920 0.191117 0.146877 0.038931 0.219076 0.097505 0.053088 0.062467 +0.321429 +0.353920 0 0 0.185808 0.134489 0.044240 0.230048 0.107238 0.054858 0.056273 +0.214286 +0.353920 0 0 0.201734 0.153955 0.044240 0.317289 0.135551 0.064944 0.097328 +0.285714 +0 0.353920 0 0.212352 0.164573 0.053088 0.390196 0.193063 0.092727 0.088480 +0.250000 +0.353920 0 0 0.215891 0.159264 0.053088 0.308264 0.144045 0.064944 0.088480 +0.321429 +0 0.353920 0 0.189347 0.141568 0.047779 0.290745 0.139267 0.069368 0.072554 +0.250000 +0 0 0.353920 0.146877 0.109715 0.038931 0.104937 0.043532 0.020173 0.035215 +0.321429 +0 0 0.353920 0.176960 0.136259 0.042470 0.198195 0.100336 0.036454 0.047779 +0.250000 +0 0 0.353920 0.155725 0.122102 0.040701 0.192886 0.095204 0.039285 0.046187 +0.178571 +0 0 0.353920 0.178729 0.139798 0.037162 0.195010 0.087772 0.036454 0.060520 +0.250000 +0 0.353920 0 0.166342 0.129181 0.042470 0.205981 0.102637 0.032561 0.051672 +0.250000 +0 0.353920 0 0.228278 0.176960 0.056627 0.441161 0.193771 0.115732 0.106176 +0.321429 +0 0 0.353920 0.153955 0.122102 0.040701 0.147938 0.078570 0.026013 0.037515 +0.214286 +0.353920 0 0 0.221200 0.168112 0.056627 0.383826 0.177137 0.083348 0.109892 +0.321429 +0.353920 0 0 0.228278 0.180499 0.069014 0.433905 0.208282 0.078393 0.132543 +0.321429 +0 0 0.353920 0.164573 0.125641 0.037162 0.156432 0.073792 0.034507 0.041939 +0.214286 +0 0 0.353920 0.115024 0.095558 0.035392 0.065475 0.028314 0.015396 0.023005 +0.178571 +0.353920 0 0 0.203504 0.166342 0.058397 0.301893 0.103345 0.063352 0.123872 +0.535714 +0.353920 0 0 0.260131 0.196425 0.077862 0.825695 0.438683 0.129004 0.219253 +0.392857 +0 0 0.353920 0.127411 0.095558 0.030083 0.069368 0.032030 0.012033 0.018758 +0.214286 +0.353920 0 0 0.226509 0.171651 0.053088 0.388604 0.183861 0.078570 0.112369 +0.321429 +0.353920 0 0 0.214121 0.169881 0.060166 0.418864 0.205981 0.083702 0.112193 +0.321429 +0 0 0.353920 0.198195 0.157494 0.053088 0.291099 0.130419 0.066183 0.083525 +0.321429 +0.353920 0 0 0.205273 0.162803 0.053088 0.371262 0.184215 0.068483 0.107945 +0.321429 +0.353920 0 0 0.219430 0.185808 0.054858 0.384003 0.160680 0.069545 0.123872 +0.321429 +0 0.353920 0 0.189347 0.143337 0.044240 0.328084 0.092019 0.050434 0.122102 +0.535714 +0 0.353920 0 0.168112 0.123872 0.040701 0.172359 0.068660 0.051495 0.044240 +0.428571 +0.353920 0 0 0.207043 0.166342 0.051318 0.338524 0.142453 0.083702 0.093789 +0.285714 +0 0 0.353920 0.138029 0.102637 0.031853 0.097151 0.047779 0.016103 0.027606 +0.250000 +0 0.353920 0 0.226509 0.168112 0.061936 0.408600 0.172182 0.120687 0.101929 +0.285714 +0 0 0.353920 0.095558 0.072554 0.017696 0.029729 0.010618 0.006548 0.010264 +0.178571 +0 0 0.353920 0.187577 0.146877 0.051318 0.334100 0.136082 0.065475 0.093789 +0.714286 +0 0 0.353920 0.088480 0.063706 0.023005 0.024243 0.008671 0.005486 0.007963 +0.142857 +0.353920 0 0 0.215891 0.169881 0.053088 0.406831 0.199611 0.096974 0.093435 +0.250000 +0 0.353920 0 0.180499 0.141568 0.049549 0.288268 0.162449 0.069545 0.069014 +0.321429 +0.353920 0 0 0.253053 0.192886 0.063706 0.615997 0.308264 0.122810 0.158910 +0.321429 +0 0.353920 0 0.168112 0.129181 0.040701 0.200319 0.099451 0.041409 0.047248 +0.214286 +0 0.353920 0 0.240665 0.194656 0.074323 0.617413 0.211467 0.107945 0.221200 +0.571429 +0 0 0.353920 0.123872 0.092019 0.031853 0.062467 0.025482 0.012564 0.020350 +0.214286 +0.353920 0 0 0.230048 0.185808 0.061936 0.543798 0.242966 0.126880 0.143337 +0.357143 +0.353920 0 0 0.184038 0.139798 0.044240 0.287206 0.142807 0.058751 0.070784 +0.214286 +0 0 0.353920 0.175190 0.132720 0.040701 0.203681 0.109715 0.040524 0.049372 +0.250000 +0.353920 0 0 0.215891 0.159264 0.067245 0.382410 0.182976 0.088303 0.103875 +0.321429 +0.353920 0 0 0.199965 0.138029 0.044240 0.263316 0.124580 0.046010 0.059635 +0.357143 +0 0 0.353920 0.194656 0.152185 0.051318 0.279420 0.132543 0.060520 0.078924 +0.357143 +0 0 0.353920 0.136259 0.106176 0.031853 0.087418 0.043355 0.015572 0.023890 +0.142857 +0 0 0.353920 0.155725 0.120333 0.037162 0.130596 0.058043 0.028314 0.035923 +0.142857 +0.353920 0 0 0.178729 0.136259 0.046010 0.227747 0.110954 0.052734 0.053619 +0.214286 +0.353920 0 0 0.166342 0.132720 0.042470 0.196956 0.079986 0.043178 0.069014 +0.392857 +0 0.353920 0 0.178729 0.150416 0.049549 0.300832 0.097328 0.057512 0.100867 +0.642857 +0 0.353920 0 0.161033 0.125641 0.042470 0.159087 0.062644 0.036808 0.053088 +0.285714 +0.353920 0 0 0.245974 0.194656 0.072554 0.769067 0.400991 0.165104 0.175544 +0.321429 +0.353920 0 0 0.210582 0.162803 0.054858 0.364537 0.151301 0.073261 0.116970 +0.321429 +0.353920 0 0 0.207043 0.168112 0.053088 0.376924 0.188108 0.070430 0.102106 +0.321429 +0 0.353920 0 0.228278 0.184038 0.063706 0.454787 0.204389 0.124580 0.112193 +0.285714 +0.353920 0 0 0.228278 0.173421 0.056627 0.442753 0.189524 0.118386 0.112016 +0.285714 +0.353920 0 0 0.254822 0.199965 0.067245 0.736507 0.382764 0.152362 0.178022 +0.357143 +0.353920 0 0 0.226509 0.203504 0.061936 0.516192 0.221200 0.094143 0.155548 +0.357143 +0 0 0.353920 0.152185 0.111485 0.033622 0.133782 0.061936 0.028314 0.036985 +0.250000 +0 0.353920 0 0.185808 0.146877 0.053088 0.253229 0.083348 0.060520 0.095558 +0.428571 +0 0.353920 0 0.221200 0.171651 0.061936 0.482039 0.239427 0.092550 0.131127 +0.321429 +0 0 0.353920 0.191117 0.143337 0.053088 0.268448 0.108653 0.073438 0.067245 +0.321429 +0.353920 0 0 0.215891 0.168112 0.061936 0.362414 0.144753 0.092373 0.113962 +0.285714 +0.353920 0 0 0.245974 0.185808 0.061936 0.616528 0.246328 0.137675 0.178729 +0.392857 +0 0.353920 0 0.168112 0.141568 0.040701 0.191471 0.065829 0.036277 0.074323 +0.428571 +0.353920 0 0 0.228278 0.184038 0.061936 0.552469 0.250929 0.125818 0.141568 +0.250000 +0.353920 0 0 0.219430 0.166342 0.047779 0.360821 0.188108 0.070961 0.087595 +0.250000 +0 0 0.353920 0.187577 0.145107 0.053088 0.216599 0.086179 0.053973 0.067068 +0.357143 +0 0 0.353920 0.130950 0.097328 0.035392 0.077862 0.033268 0.015926 0.023005 +0.214286 +0 0 0.353920 0.132720 0.097328 0.033622 0.087241 0.038931 0.014688 0.027429 +0.178571 +0.353920 0 0 0.208813 0.168112 0.049549 0.345780 0.163688 0.071669 0.097328 +0.321429 +0.353920 0 0 0.069014 0.051318 0.017696 0.011325 0.003539 0.002831 0.004247 +0.107143 +0.353920 0 0 0.164573 0.127411 0.046010 0.186339 0.074500 0.041939 0.058397 +0.321429 +0 0.353920 0 0.238896 0.187577 0.069014 0.530349 0.219430 0.132720 0.150416 +0.285714 +0 0 0.353920 0.230048 0.182269 0.056627 0.411432 0.175190 0.071846 0.116793 +0.571429 +0.353920 0 0 0.210582 0.161033 0.051318 0.333392 0.152185 0.064413 0.098036 +0.357143 +0.353920 0 0 0.189347 0.148646 0.051318 0.279950 0.116793 0.066891 0.088480 +0.321429 +0 0 0.353920 0.129181 0.095558 0.031853 0.076270 0.035569 0.017342 0.023182 +0.178571 +0 0.353920 0 0.184038 0.143337 0.051318 0.293399 0.125111 0.059635 0.072554 +0.500000 +0 0 0.353920 0.130950 0.099098 0.031853 0.090780 0.044417 0.022828 0.022828 +0.178571 +0 0.353920 0 0.173421 0.132720 0.047779 0.216776 0.090426 0.036100 0.077862 +0.357143 +0.353920 0 0 0.228278 0.176960 0.061936 0.473368 0.196071 0.109007 0.146877 +0.321429 +0.353920 0 0 0.198195 0.161033 0.054858 0.282074 0.120333 0.067245 0.085826 +0.357143 +0.353920 0 0 0.208813 0.173421 0.058397 0.427181 0.197841 0.083171 0.109361 +0.321429 +0 0.353920 0 0.215891 0.171651 0.058397 0.386303 0.139267 0.086179 0.116793 +0.607143 +0.353920 0 0 0.212352 0.159264 0.053088 0.306671 0.130773 0.069191 0.090250 +0.392857 +0.353920 0 0 0.235357 0.191117 0.061936 0.476730 0.175367 0.089896 0.146877 +0.571429 +0 0.353920 0 0.235357 0.178729 0.056627 0.457087 0.223323 0.103521 0.113254 +0.357143 +0 0.353920 0 0.228278 0.176960 0.054858 0.431959 0.217484 0.083525 0.112723 +0.321429 +0 0 0.353920 0.176960 0.132720 0.044240 0.201557 0.091665 0.043886 0.055565 +0.214286 +0.353920 0 0 0.194656 0.148646 0.060166 0.299593 0.118917 0.085118 0.086710 +0.428571 +0 0.353920 0 0.214121 0.169881 0.049549 0.350734 0.167581 0.082994 0.084941 +0.250000 +0.353920 0 0 0.176960 0.132720 0.053088 0.225093 0.089719 0.051318 0.067245 +0.321429 +0.353920 0 0 0.198195 0.150416 0.047779 0.333215 0.180145 0.071315 0.069899 +0.285714 +0.353920 0 0 0.214121 0.173421 0.051318 0.460096 0.182976 0.116263 0.109715 +0.464286 +0 0 0.353920 0.168112 0.127411 0.044240 0.173598 0.072554 0.046187 0.044240 +0.250000 +0 0.353920 0 0.247744 0.203504 0.070784 0.614581 0.274465 0.140329 0.163157 +0.357143 +0.353920 0 0 0.187577 0.150416 0.038931 0.261547 0.083879 0.056981 0.104406 +0.428571 +0 0.353920 0 0.210582 0.164573 0.051318 0.281543 0.121217 0.063529 0.085826 +0.321429 +0.353920 0 0 0.247744 0.192886 0.076093 0.676871 0.312334 0.155194 0.179083 +0.321429 +0 0 0.353920 0.136259 0.102637 0.033622 0.110423 0.050611 0.022474 0.030437 +0.178571 +0 0 0.353920 0.146877 0.115024 0.035392 0.136259 0.059105 0.028314 0.044240 +0.214286 +0 0.353920 0 0.230048 0.173421 0.054858 0.397098 0.192886 0.080694 0.108122 +0.285714 +0.353920 0 0 0.185808 0.146877 0.056627 0.228101 0.092019 0.055742 0.077862 +0.392857 +0 0 0.353920 0.161033 0.132720 0.042470 0.175898 0.083348 0.037339 0.045833 +0.178571 +0 0.353920 0 0.221200 0.171651 0.067245 0.415679 0.155194 0.081578 0.148646 +0.571429 +0.353920 0 0 0.201734 0.143337 0.056627 0.327199 0.121925 0.077331 0.104406 +0.642857 +0 0 0.353920 0.176960 0.134489 0.047779 0.187047 0.079986 0.043532 0.073969 +0.250000 +0 0 0.353920 0.049549 0.037162 0.012387 0.005132 0.001770 0.001239 0.001770 +0.107143 +0.353920 0 0 0.214121 0.161033 0.056627 0.396921 0.188639 0.096620 0.095912 +0.321429 +0 0 0.353920 0.088480 0.065475 0.023005 0.024243 0.010441 0.004955 0.007963 +0.142857 +0 0.353920 0 0.191117 0.168112 0.054858 0.328437 0.139444 0.068660 0.092019 +0.357143 +0 0 0.353920 0.162803 0.130950 0.038931 0.140329 0.052557 0.030260 0.051495 +0.250000 +0 0.353920 0 0.235357 0.185808 0.063706 0.558662 0.239958 0.081048 0.161387 +0.464286 +0.353920 0 0 0.224739 0.175190 0.060166 0.484693 0.232525 0.108122 0.129181 +0.321429 +0 0.353920 0 0.237126 0.185808 0.067245 0.540435 0.203681 0.124934 0.155725 +0.392857 +0.353920 0 0 0.203504 0.157494 0.051318 0.310034 0.134313 0.057158 0.095558 +0.321429 +0 0.353920 0 0.194656 0.152185 0.049549 0.286852 0.130242 0.056981 0.097328 +0.285714 +0.353920 0 0 0.201734 0.155725 0.051318 0.311980 0.127588 0.069191 0.096797 +0.321429 +0 0 0.353920 0.191117 0.139798 0.047779 0.231994 0.095735 0.054858 0.067953 +0.285714 +0 0.353920 0 0.184038 0.145107 0.054858 0.257300 0.102991 0.064944 0.083171 +0.392857 +0.353920 0 0 0.070784 0.049549 0.019466 0.012387 0.005132 0.002831 0.003539 +0.142857 +0 0.353920 0 0.169881 0.134489 0.047779 0.179437 0.067776 0.048310 0.054858 +0.392857 +0 0 0.353920 0.134489 0.099098 0.030083 0.096797 0.040701 0.021589 0.030083 +0.178571 +0.353920 0 0 0.237126 0.180499 0.063706 0.594585 0.327730 0.105291 0.139267 +0.428571 +0 0 0.353920 0.221200 0.162803 0.056627 0.438683 0.194656 0.096620 0.134489 +0.464286 +0 0.353920 0 0.221200 0.168112 0.046010 0.304194 0.113077 0.062821 0.084941 +0.428571 +0 0.353920 0 0.221200 0.173421 0.061936 0.391966 0.158733 0.076624 0.127234 +0.250000 +0.353920 0 0 0.256592 0.178729 0.065475 0.700053 0.363122 0.150593 0.159441 +0.392857 +0.353920 0 0 0.205273 0.161033 0.046010 0.301540 0.145107 0.061051 0.079632 +0.250000 +0 0.353920 0 0.162803 0.134489 0.046010 0.226155 0.106176 0.053973 0.056627 +0.357143 +0 0 0.353920 0.155725 0.125641 0.042470 0.175190 0.081755 0.038931 0.044240 +0.214286 +0 0 0.353920 0.155725 0.113254 0.033622 0.115909 0.052911 0.020881 0.035392 +0.250000 +0 0.353920 0 0.178729 0.139798 0.051318 0.230579 0.095381 0.054150 0.072554 +0.500000 +0 0.353920 0 0.203504 0.153955 0.054858 0.317643 0.145638 0.082286 0.081402 +0.285714 +0 0.353920 0 0.161033 0.129181 0.038931 0.136259 0.058751 0.016280 0.047602 +0.428571 +0 0 0.353920 0.157494 0.113254 0.042470 0.133782 0.053796 0.029198 0.042470 +0.250000 +0.353920 0 0 0.113254 0.086710 0.026544 0.055035 0.020704 0.013449 0.017342 +0.357143 +0.353920 0 0 0.231817 0.184038 0.060166 0.405061 0.187577 0.078924 0.123164 +0.285714 +0 0.353920 0 0.235357 0.187577 0.065475 0.493895 0.161387 0.113431 0.173421 +0.500000 +0 0.353920 0 0.148646 0.113254 0.046010 0.146346 0.058220 0.037515 0.042116 +0.321429 +0 0 0.353920 0.084941 0.061936 0.015926 0.024774 0.011148 0.008317 0.007078 +0.142857 +0 0 0.353920 0.184038 0.134489 0.047779 0.190940 0.081225 0.047071 0.055565 +0.250000 +0 0.353920 0 0.231817 0.191117 0.061936 0.551584 0.257830 0.142276 0.136259 +0.357143 +0.353920 0 0 0.201734 0.153955 0.060166 0.308972 0.135197 0.064767 0.095735 +0.321429 +0 0.353920 0 0.203504 0.148646 0.047779 0.303309 0.163157 0.052026 0.075208 +0.321429 +0 0.353920 0 0.182269 0.146877 0.046010 0.270395 0.097682 0.069368 0.088480 +0.428571 +0.353920 0 0 0.161033 0.123872 0.037162 0.141922 0.055742 0.029375 0.047779 +0.285714 +0 0 0.353920 0.153955 0.118563 0.033622 0.105468 0.038577 0.020527 0.040701 +0.214286 +0 0.353920 0 0.205273 0.159264 0.051318 0.402407 0.197664 0.077862 0.102637 +0.250000 +0 0.353920 0 0.228278 0.180499 0.054858 0.399575 0.177491 0.084941 0.121041 +0.321429 +0.353920 0 0 0.159264 0.120333 0.046010 0.131481 0.056804 0.028137 0.037162 +0.285714 +0.353920 0 0 0.180499 0.146877 0.051318 0.265794 0.116617 0.064944 0.071846 +0.250000 +0.353920 0 0 0.256592 0.201734 0.067245 0.824810 0.443461 0.191471 0.184038 +0.285714 +0 0 0.353920 0.207043 0.159264 0.053088 0.315519 0.140683 0.072023 0.089542 +0.250000 +0.353920 0 0 0.199965 0.166342 0.069014 0.404176 0.136967 0.091311 0.123872 +0.571429 +0 0.353920 0 0.196425 0.150416 0.049549 0.340825 0.155725 0.079278 0.084941 +0.214286 +0 0.353920 0 0.145107 0.111485 0.038931 0.113608 0.044417 0.023182 0.033622 +0.321429 +0 0 0.353920 0.194656 0.164573 0.053088 0.331269 0.170235 0.061582 0.086179 +0.285714 +0 0 0.353920 0.187577 0.148646 0.046010 0.232879 0.104760 0.044063 0.070076 +0.250000 +0.353920 0 0 0.219430 0.182269 0.061936 0.432136 0.189347 0.085295 0.139798 +0.428571 +0 0 0.353920 0.115024 0.088480 0.024774 0.061759 0.030968 0.012564 0.014157 +0.214286 +0 0.353920 0 0.226509 0.180499 0.058397 0.525925 0.268802 0.117501 0.113608 +0.250000 +0 0 0.353920 0.194656 0.153955 0.049549 0.266678 0.116263 0.055035 0.082286 +0.321429 +0.353920 0 0 0.244205 0.191117 0.065475 0.605203 0.273403 0.136436 0.153070 +0.250000 +0 0 0.353920 0.132720 0.099098 0.030083 0.075916 0.030260 0.017165 0.025482 +0.214286 +0 0.353920 0 0.219430 0.168112 0.056627 0.399752 0.163865 0.095027 0.116793 +0.321429 +0 0.353920 0 0.228278 0.173421 0.067245 0.462396 0.169528 0.126172 0.122102 +0.607143 +0.353920 0 0 0.198195 0.152185 0.051318 0.318351 0.164219 0.062821 0.082817 +0.285714 +0.353920 0 0 0.228278 0.182269 0.056627 0.419218 0.179083 0.110069 0.118563 +0.285714 +0.353920 0 0 0.203504 0.159264 0.047779 0.326137 0.125288 0.073969 0.083702 +0.285714 +0.353920 0 0 0.203504 0.157494 0.049549 0.260839 0.115024 0.049726 0.083879 +0.321429 +0.353920 0 0 0.168112 0.127411 0.042470 0.204566 0.099982 0.042470 0.060166 +0.250000 +0 0.353920 0 0.214121 0.168112 0.061936 0.489117 0.215537 0.082286 0.141037 +0.321429 +0 0 0.353920 0.198195 0.155725 0.060166 0.334277 0.125465 0.076978 0.106176 +0.392857 +0 0 0.353920 0.168112 0.123872 0.038931 0.161564 0.072907 0.035038 0.046010 +0.178571 +0 0 0.353920 0.189347 0.145107 0.054858 0.223500 0.097151 0.050080 0.064236 +0.392857 +0 0 0.353920 0.100867 0.079632 0.024774 0.035569 0.015042 0.006548 0.012387 +0.214286 +0.353920 0 0 0.106176 0.084941 0.031853 0.056981 0.025659 0.013803 0.017696 +0.178571 +0 0 0.353920 0.123872 0.095558 0.026544 0.076093 0.035392 0.012741 0.023005 +0.178571 +0 0.353920 0 0.221200 0.171651 0.047779 0.460980 0.215891 0.094674 0.127588 +0.464286 +0.353920 0 0 0.168112 0.125641 0.044240 0.163688 0.065829 0.037869 0.051318 +0.285714 +0 0 0.353920 0.159264 0.127411 0.044240 0.159264 0.067599 0.030614 0.051318 +0.392857 +0 0.353920 0 0.198195 0.161033 0.044240 0.333746 0.121748 0.045656 0.132720 +0.714286 +0 0.353920 0 0.194656 0.145107 0.051318 0.293222 0.109538 0.067422 0.088480 +0.428571 +0 0 0.353920 0.136259 0.100867 0.031853 0.087772 0.033091 0.023359 0.024774 +0.178571 +0 0 0.353920 0.196425 0.162803 0.051318 0.318705 0.136082 0.055919 0.097859 +0.357143 +0 0 0.353920 0.203504 0.159264 0.047779 0.291807 0.119448 0.074854 0.084587 +0.357143 +0.353920 0 0 0.244205 0.191117 0.065475 0.573173 0.188639 0.124934 0.196425 +0.821429 +0 0.353920 0 0.230048 0.208813 0.077862 0.588214 0.272518 0.133782 0.153955 +0.357143 +0 0 0.353920 0.113254 0.072554 0.028314 0.064059 0.031145 0.012033 0.017519 +0.142857 +0 0.353920 0 0.214121 0.162803 0.060166 0.397098 0.122810 0.107769 0.111485 +0.428571 +0 0.353920 0 0.185808 0.150416 0.051318 0.282959 0.118386 0.073969 0.084941 +0.500000 +0 0.353920 0 0.237126 0.184038 0.067245 0.467174 0.185277 0.109538 0.151301 +0.428571 +0.353920 0 0 0.215891 0.166342 0.060166 0.395859 0.184923 0.085118 0.109715 +0.285714 +0 0 0.353920 0.159264 0.120333 0.042470 0.174305 0.085295 0.038046 0.042470 +0.178571 +0 0 0.353920 0.090250 0.067245 0.024774 0.028844 0.009910 0.005663 0.010972 +0.142857 +0 0.353920 0 0.173421 0.130950 0.049549 0.207043 0.086002 0.040701 0.069014 +0.321429 +0.353920 0 0 0.187577 0.145107 0.044240 0.272164 0.122456 0.061228 0.076093 +0.285714 +0.353920 0 0 0.176960 0.148646 0.047779 0.239427 0.106884 0.050080 0.073084 +0.285714 +0 0.353920 0 0.217661 0.161033 0.051318 0.394797 0.178552 0.084233 0.111485 +0.321429 +0 0 0.353920 0.164573 0.125641 0.042470 0.205450 0.090250 0.032384 0.065121 +0.250000 +0 0 0.353920 0.199965 0.152185 0.053088 0.290745 0.117501 0.059635 0.102637 +0.357143 +0 0.353920 0 0.194656 0.152185 0.053088 0.231817 0.093258 0.043178 0.078216 +0.250000 +0.353920 0 0 0.178729 0.141568 0.047779 0.255884 0.133428 0.052734 0.062998 +0.214286 +0.353920 0 0 0.219430 0.180499 0.061936 0.407185 0.154840 0.080163 0.141568 +0.392857 +0 0 0.353920 0.171651 0.134489 0.042470 0.167227 0.073438 0.038046 0.052026 +0.178571 +0 0.353920 0 0.187577 0.146877 0.053088 0.275173 0.083879 0.050080 0.116793 +0.678571 +0.353920 0 0 0.235357 0.185808 0.061936 0.510706 0.234826 0.136082 0.124934 +0.357143 +0.353920 0 0 0.237126 0.178729 0.056627 0.445408 0.221377 0.110069 0.109007 +0.392857 +0 0 0.353920 0.138029 0.102637 0.035392 0.100690 0.044417 0.022474 0.028667 +0.214286 +0.353920 0 0 0.212352 0.168112 0.061936 0.392851 0.180676 0.090603 0.100867 +0.285714 +0 0.353920 0 0.224739 0.176960 0.058397 0.516546 0.249513 0.093612 0.138029 +0.285714 +0.353920 0 0 0.191117 0.150416 0.042470 0.289152 0.104229 0.054150 0.069014 +0.321429 +0 0.353920 0 0.205273 0.155725 0.061936 0.379756 0.141745 0.082994 0.118563 +0.642857 +0 0.353920 0 0.224739 0.178729 0.060166 0.447177 0.181207 0.113962 0.125641 +0.285714 +0 0.353920 0 0.230048 0.175190 0.056627 0.463812 0.204212 0.117324 0.125641 +0.285714 +0 0 0.353920 0.099098 0.070784 0.026544 0.043355 0.019289 0.004070 0.012387 +0.142857 +0.353920 0 0 0.162803 0.132720 0.046010 0.202973 0.088657 0.042116 0.069014 +0.285714 +0 0 0.353920 0.111485 0.074323 0.021235 0.044240 0.021235 0.013272 0.012387 +0.142857 +0 0 0.353920 0.152185 0.120333 0.042470 0.126526 0.053442 0.022828 0.036985 +0.285714 +0.353920 0 0 0.228278 0.180499 0.054858 0.544682 0.226686 0.126880 0.152185 +0.357143 +0 0 0.353920 0.192886 0.152185 0.049549 0.243143 0.092550 0.049726 0.088480 +0.285714 +0 0.353920 0 0.215891 0.159264 0.046010 0.308795 0.137675 0.060697 0.096266 +0.357143 +0 0.353920 0 0.244205 0.196425 0.072554 0.642895 0.275526 0.155548 0.182269 +0.642857 +0 0.353920 0 0.153955 0.118563 0.038931 0.134489 0.059989 0.030437 0.038931 +0.285714 +0 0 0.353920 0.145107 0.111485 0.033622 0.099274 0.040347 0.012210 0.038931 +0.214286 +0 0.353920 0 0.164573 0.132720 0.047779 0.212352 0.078747 0.045656 0.081402 +0.535714 +0 0 0.353920 0.084941 0.065475 0.021235 0.023182 0.010441 0.000177 0.007078 +0.107143 +0 0 0.353920 0.132720 0.099098 0.028314 0.079101 0.040701 0.015219 0.019466 +0.178571 +0 0.353920 0 0.226509 0.176960 0.060166 0.447531 0.199965 0.119448 0.111485 +0.285714 +0 0.353920 0 0.132720 0.104406 0.038931 0.106353 0.044417 0.020350 0.036631 +0.214286 +0 0 0.353920 0.175190 0.134489 0.046010 0.181384 0.077331 0.041055 0.056627 +0.214286 +0.353920 0 0 0.166342 0.130950 0.047779 0.193594 0.078570 0.046894 0.060166 +0.392857 +0 0 0.353920 0.171651 0.125641 0.037162 0.176252 0.076978 0.033976 0.053973 +0.285714 +0.353920 0 0 0.185808 0.150416 0.067245 0.308618 0.163688 0.061051 0.070430 +0.285714 +0 0.353920 0 0.214121 0.171651 0.058397 0.336755 0.160503 0.068306 0.097859 +0.357143 +0.353920 0 0 0.113254 0.084941 0.030083 0.060166 0.023182 0.016634 0.017342 +0.214286 +0 0.353920 0 0.226509 0.178729 0.058397 0.433021 0.184569 0.095381 0.127411 +0.321429 +0.353920 0 0 0.182269 0.136259 0.046010 0.220492 0.101044 0.045479 0.061936 +0.321429 +0.353920 0 0 0.090250 0.069014 0.023005 0.028314 0.011148 0.006371 0.009556 +0.250000 +0.353920 0 0 0.207043 0.161033 0.053088 0.349319 0.154132 0.073438 0.109715 +0.357143 +0.353920 0 0 0.219430 0.173421 0.054858 0.389312 0.178729 0.087595 0.109715 +0.285714 +0 0.353920 0 0.176960 0.141568 0.044240 0.236241 0.092373 0.046540 0.077862 +0.321429 +0 0.353920 0 0.212352 0.166342 0.067245 0.401522 0.174128 0.091842 0.119448 +0.321429 +0.353920 0 0 0.166342 0.129181 0.047779 0.184746 0.084764 0.053973 0.051318 +0.321429 +0.353920 0 0 0.155725 0.123872 0.038931 0.162272 0.070784 0.031322 0.046010 +0.285714 +0.353920 0 0 0.203504 0.161033 0.051318 0.412316 0.205627 0.080517 0.106176 +0.464286 +0 0.353920 0 0.198195 0.153955 0.053088 0.308441 0.168289 0.064944 0.064944 +0.285714 +0 0.353920 0 0.189347 0.153955 0.056627 0.286852 0.111662 0.063529 0.084941 +0.321429 +0 0.353920 0 0.130950 0.104406 0.035392 0.095027 0.041232 0.019820 0.029552 +0.214286 +0.353920 0 0 0.199965 0.157494 0.049549 0.295877 0.143691 0.056804 0.079455 +0.285714 +0.353920 0 0 0.215891 0.171651 0.051318 0.470890 0.277119 0.079809 0.101398 +0.285714 +0 0.353920 0 0.212352 0.168112 0.053088 0.399929 0.203504 0.069368 0.107945 +0.285714 +0.353920 0 0 0.230048 0.185808 0.067245 0.570695 0.274996 0.130419 0.140329 +0.357143 +0.353920 0 0 0.251283 0.196425 0.069014 0.689612 0.334631 0.133251 0.175190 +0.392857 +0.353920 0 0 0.233587 0.182269 0.070784 0.582729 0.265086 0.149354 0.141922 +0.357143 +0.353920 0 0 0.205273 0.157494 0.047779 0.288091 0.133605 0.067776 0.077862 +0.285714 +0 0.353920 0 0.210582 0.175190 0.083171 0.483454 0.179260 0.077508 0.184038 +0.428571 +0 0 0.353920 0.187577 0.152185 0.049549 0.239604 0.105468 0.034153 0.081402 +0.250000 +0.353920 0 0 0.180499 0.143337 0.053088 0.248982 0.122810 0.047425 0.066714 +0.250000 +0 0.353920 0 0.215891 0.164573 0.056627 0.379579 0.171120 0.089011 0.099098 +0.321429 +0.353920 0 0 0.176960 0.141568 0.044240 0.211467 0.095558 0.045125 0.058751 +0.285714 +0.353920 0 0 0.251283 0.199965 0.070784 0.566625 0.249867 0.113608 0.159264 +0.357143 +0.353920 0 0 0.244205 0.185808 0.061936 0.601840 0.292161 0.128119 0.143337 +0.250000 +0.353920 0 0 0.166342 0.132720 0.040701 0.150947 0.059635 0.026721 0.053088 +0.250000 +0 0 0.353920 0.207043 0.166342 0.060166 0.348611 0.130773 0.084764 0.111485 +0.321429 +0.353920 0 0 0.214121 0.166342 0.058397 0.435852 0.213237 0.092727 0.103521 +0.357143 +0.353920 0 0 0.201734 0.152185 0.042470 0.375686 0.123164 0.059105 0.109715 +0.500000 +0 0.353920 0 0.210582 0.169881 0.053088 0.392851 0.176252 0.080694 0.116793 +0.321429 +0 0 0.353920 0.187577 0.134489 0.044240 0.218015 0.103345 0.039993 0.065475 +0.250000 +0.353920 0 0 0.201734 0.162803 0.053088 0.367192 0.191647 0.072023 0.088480 +0.285714 +0 0.353920 0 0.222969 0.173421 0.079632 0.472837 0.240842 0.091665 0.114847 +0.321429 +0.353920 0 0 0.201734 0.157494 0.056627 0.359051 0.182623 0.058043 0.106176 +0.321429 +0 0.353920 0 0.224739 0.175190 0.061936 0.437268 0.184215 0.109184 0.122810 +0.321429 +0 0 0.353920 0.157494 0.122102 0.037162 0.144753 0.059282 0.035923 0.041409 +0.214286 +0 0.353920 0 0.159264 0.127411 0.044240 0.179260 0.078570 0.037162 0.056627 +0.321429 +0 0.353920 0 0.187577 0.148646 0.046010 0.354274 0.120333 0.079986 0.093789 +0.571429 +0 0 0.353920 0.138029 0.106176 0.033622 0.115555 0.058928 0.020350 0.031499 +0.214286 +0 0 0.353920 0.058397 0.040701 0.005309 0.005132 0.001947 0.001062 0.001770 +0.107143 +0.353920 0 0 0.116793 0.083171 0.031853 0.057689 0.021766 0.012033 0.019466 +0.321429 +0 0.353920 0 0.224739 0.189347 0.067245 0.439568 0.203858 0.087595 0.138029 +0.464286 +0 0 0.353920 0.145107 0.106176 0.031853 0.099098 0.049903 0.020350 0.026544 +0.250000 +0 0.353920 0 0.212352 0.162803 0.053088 0.437091 0.213237 0.096974 0.102637 +0.250000 +0.353920 0 0 0.214121 0.166342 0.063706 0.394797 0.169528 0.090780 0.113608 +0.321429 +0 0 0.353920 0.152185 0.115024 0.038931 0.130065 0.047956 0.033091 0.042470 +0.428571 +0 0.353920 0 0.175190 0.145107 0.044240 0.267386 0.118740 0.045656 0.075739 +0.285714 +0 0.353920 0 0.205273 0.153955 0.049549 0.337285 0.168112 0.076624 0.074146 +0.285714 +0 0 0.353920 0.173421 0.136259 0.040701 0.241727 0.115555 0.057158 0.058397 +0.428571 +0 0 0.353920 0.132720 0.097328 0.030083 0.077862 0.038577 0.017696 0.021412 +0.214286 +0 0 0.353920 0.164573 0.129181 0.040701 0.165280 0.081932 0.032738 0.039993 +0.214286 +0.353920 0 0 0.192886 0.155725 0.042470 0.303132 0.122987 0.060697 0.084941 +0.392857 +0.353920 0 0 0.127411 0.104406 0.046010 0.097859 0.031676 0.020173 0.035569 +0.321429 +0.353920 0 0 0.272518 0.212352 0.076093 0.776677 0.372147 0.170589 0.206689 +0.321429 +0 0 0.353920 0.168112 0.129181 0.040701 0.162449 0.076978 0.032915 0.041232 +0.214286 +0 0 0.353920 0.148646 0.107945 0.031853 0.116086 0.059459 0.021766 0.029021 +0.178571 +0.353920 0 0 0.272518 0.219430 0.069014 0.890285 0.394797 0.227039 0.227216 +0.392857 +0 0 0.353920 0.115024 0.088480 0.026544 0.056096 0.026544 0.010795 0.016103 +0.178571 +0 0.353920 0 0.230048 0.176960 0.060166 0.497080 0.245620 0.112546 0.114493 +0.357143 +0 0 0.353920 0.141568 0.109715 0.035392 0.101752 0.040524 0.022474 0.033622 +0.321429 +0.353920 0 0 0.199965 0.161033 0.054858 0.331092 0.149000 0.064767 0.092019 +0.357143 +0 0.353920 0 0.221200 0.173421 0.038931 0.402053 0.186339 0.067776 0.103521 +0.285714 +0.353920 0 0 0.182269 0.148646 0.049549 0.272164 0.088657 0.054504 0.102637 +0.428571 +0.353920 0 0 0.201734 0.168112 0.069014 0.364360 0.164042 0.067422 0.107945 +0.607143 +0 0 0.353920 0.125641 0.097328 0.030083 0.077862 0.032561 0.021235 0.053088 +0.250000 +0 0 0.353920 0.146877 0.118563 0.035392 0.126703 0.059812 0.023713 0.037162 +0.214286 +0 0.353920 0 0.201734 0.157494 0.054858 0.259423 0.099805 0.056273 0.083171 +0.464286 +0 0.353920 0 0.141568 0.109715 0.040701 0.122633 0.052203 0.024597 0.040701 +0.321429 +0.353920 0 0 0.242435 0.184038 0.053088 0.475314 0.164042 0.103345 0.141568 +0.428571 +0 0 0.353920 0.127411 0.095558 0.033622 0.070784 0.025836 0.019820 0.021589 +0.250000 +0.353920 0 0 0.171651 0.129181 0.054858 0.364183 0.149885 0.080871 0.110777 +0.250000 +0.353920 0 0 0.102637 0.081402 0.026544 0.041232 0.015219 0.009025 0.014157 +0.214286 +0.353920 0 0 0.175190 0.136259 0.047779 0.250929 0.074677 0.048664 0.092727 +0.392857 +0 0 0.353920 0.175190 0.116793 0.035392 0.155725 0.062644 0.033622 0.053088 +0.214286 +0 0.353920 0 0.253053 0.199965 0.084941 0.778446 0.256415 0.164573 0.313219 +0.571429 +0 0 0.353920 0.104406 0.074323 0.028314 0.035392 0.013449 0.009202 0.010972 +0.250000 +0 0.353920 0 0.253053 0.185808 0.065475 0.552115 0.235534 0.135551 0.143337 +0.357143 +0.353920 0 0 0.208813 0.166342 0.053088 0.304725 0.146169 0.058043 0.088126 +0.250000 +0 0.353920 0 0.102637 0.074323 0.026544 0.097328 0.039993 0.023890 0.012387 +0.178571 +0.353920 0 0 0.173421 0.125641 0.054858 0.347195 0.164573 0.071315 0.088657 +0.250000 +0.353920 0 0 0.198195 0.159264 0.049549 0.318528 0.167050 0.064413 0.077154 +0.214286 +0 0.353920 0 0.242435 0.185808 0.061936 0.605203 0.191647 0.109361 0.205273 +0.535714 +0 0 0.353920 0.122102 0.090250 0.033622 0.064767 0.026544 0.013626 0.021235 +0.178571 +0 0 0.353920 0.111485 0.084941 0.030083 0.060697 0.025128 0.012210 0.018935 +0.214286 +0 0 0.353920 0.185808 0.141568 0.038931 0.222085 0.106707 0.044594 0.063706 +0.250000 +0 0 0.353920 0.072554 0.054858 0.015926 0.017519 0.008317 0.003893 0.004955 +0.071429 +0.353920 0 0 0.219430 0.171651 0.058397 0.400814 0.185277 0.088657 0.099982 +0.285714 +0.353920 0 0 0.205273 0.164573 0.061936 0.366307 0.141922 0.066006 0.136259 +0.571429 +0 0 0.353920 0.132720 0.106176 0.026544 0.050964 0.020881 0.010618 0.015572 +0.214286 +0 0.353920 0 0.173421 0.138029 0.047779 0.208813 0.076093 0.044240 0.065298 +0.392857 +0 0 0.353920 0.171651 0.129181 0.037162 0.184215 0.069014 0.043532 0.064413 +0.250000 +0 0 0.353920 0.104406 0.081402 0.028314 0.057512 0.023005 0.017696 0.013626 +0.142857 +0 0.353920 0 0.159264 0.122102 0.040701 0.175544 0.067422 0.041409 0.049549 +0.392857 +0.353920 0 0 0.230048 0.171651 0.049549 0.415856 0.168112 0.086179 0.076093 +0.250000 +0 0.353920 0 0.191117 0.168112 0.054858 0.430720 0.187754 0.108830 0.120333 +0.535714 +0.353920 0 0 0.228278 0.176960 0.061936 0.455141 0.199788 0.101929 0.136613 +0.392857 +0 0.353920 0 0.199965 0.159264 0.051318 0.300655 0.149177 0.059635 0.079632 +0.250000 +0 0 0.353920 0.116793 0.088480 0.033622 0.073792 0.036100 0.013980 0.018404 +0.214286 +0 0.353920 0 0.221200 0.175190 0.058397 0.446647 0.179437 0.112546 0.138029 +0.321429 +0 0 0.353920 0.178729 0.143337 0.046010 0.211998 0.079455 0.041586 0.079632 +0.357143 +0.353920 0 0 0.214121 0.171651 0.061936 0.405238 0.153070 0.095558 0.143337 +0.535714 +0 0 0.353920 0.132720 0.097328 0.031853 0.077154 0.032915 0.014334 0.026721 +0.178571 +0.353920 0 0 0.231817 0.180499 0.076093 0.631216 0.314458 0.144930 0.148469 +0.357143 +0.353920 0 0 0.159264 0.125641 0.040701 0.169528 0.075208 0.036985 0.053088 +0.250000 +0 0.353920 0 0.194656 0.152185 0.053088 0.297293 0.139798 0.069014 0.078924 +0.250000 +0.353920 0 0 0.201734 0.166342 0.054858 0.419749 0.224916 0.081932 0.098036 +0.321429 +0 0 0.353920 0.074323 0.053088 0.019466 0.016457 0.006017 0.004247 0.005309 +0.142857 +0 0 0.353920 0.237126 0.171651 0.061936 0.444700 0.189524 0.113962 0.136613 +0.285714 +0 0.353920 0 0.221200 0.173421 0.058397 0.398867 0.168820 0.083702 0.112723 +0.285714 +0 0 0.353920 0.134489 0.106176 0.035392 0.101221 0.046187 0.019820 0.031853 +0.214286 +0.353920 0 0 0.118563 0.088480 0.031853 0.064059 0.026721 0.014688 0.021235 +0.214286 +0 0.353920 0 0.238896 0.192886 0.069014 0.613874 0.242258 0.130773 0.214121 +0.678571 +0 0.353920 0 0.194656 0.164573 0.063706 0.429128 0.114847 0.072554 0.185808 +0.928571 +0 0 0.353920 0.083171 0.061936 0.028314 0.022828 0.007609 0.006194 0.007609 +0.142857 +0 0.353920 0 0.153955 0.113254 0.042470 0.133959 0.053796 0.032384 0.044240 +0.357143 +0.353920 0 0 0.099098 0.074323 0.028314 0.038400 0.014511 0.009379 0.012210 +0.214286 +0 0 0.353920 0.203504 0.159264 0.046010 0.288268 0.142630 0.060697 0.075385 +0.321429 +0 0 0.353920 0.070784 0.051318 0.021235 0.013095 0.004424 0.003362 0.003893 +0.107143 +0 0.353920 0 0.215891 0.175190 0.065475 0.392320 0.131127 0.110954 0.116793 +0.392857 +0 0 0.353920 0.155725 0.129181 0.040701 0.177314 0.086179 0.029729 0.051849 +0.285714 +0 0 0.353920 0.182269 0.136259 0.044240 0.216422 0.112369 0.044771 0.053088 +0.250000 +0.353920 0 0 0.161033 0.120333 0.047779 0.163511 0.059282 0.055919 0.042470 +0.285714 +0 0 0.353920 0.201734 0.157494 0.051318 0.262077 0.108299 0.060874 0.064590 +0.392857 +0 0.353920 0 0.219430 0.176960 0.061936 0.405592 0.168820 0.081402 0.138029 +0.428571 +0 0.353920 0 0.194656 0.146877 0.063706 0.412493 0.177668 0.106530 0.110069 +0.285714 +0 0.353920 0 0.162803 0.123872 0.040701 0.162803 0.071669 0.039462 0.041232 +0.178571 +0 0 0.353920 0.162803 0.120333 0.035392 0.136613 0.063882 0.030968 0.034153 +0.250000 +0 0.353920 0 0.212352 0.168112 0.060166 0.385065 0.173598 0.087595 0.109715 +0.321429 +0 0.353920 0 0.178729 0.134489 0.047779 0.242612 0.127765 0.055388 0.056981 +0.285714 +0 0 0.353920 0.134489 0.097328 0.033622 0.088657 0.033445 0.023182 0.026544 +0.178571 +0.353920 0 0 0.230048 0.184038 0.060166 0.483277 0.217838 0.102106 0.127411 +0.357143 +0.353920 0 0 0.150416 0.120333 0.042470 0.137321 0.052734 0.030791 0.044240 +0.321429 +0.353920 0 0 0.196425 0.155725 0.051318 0.300832 0.147408 0.059635 0.081402 +0.250000 +0.353920 0 0 0.168112 0.130950 0.044240 0.229694 0.122810 0.048133 0.050257 +0.250000 +0 0.353920 0 0.207043 0.164573 0.051318 0.348788 0.153070 0.075916 0.100690 +0.321429 +0 0.353920 0 0.230048 0.180499 0.060166 0.554592 0.256415 0.123518 0.138383 +0.321429 +0.353920 0 0 0.196425 0.157494 0.047779 0.295877 0.118917 0.057512 0.097328 +0.428571 +0 0.353920 0 0.265440 0.199965 0.076093 0.685896 0.273757 0.170766 0.203504 +0.357143 +0.353920 0 0 0.189347 0.148646 0.056627 0.254822 0.097328 0.058043 0.079632 +0.500000 +0.353920 0 0 0.222969 0.166342 0.054858 0.400814 0.208459 0.074677 0.101575 +0.250000 +0.353920 0 0 0.212352 0.168112 0.081402 0.409485 0.184746 0.079101 0.127411 +0.357143 +0.353920 0 0 0.180499 0.146877 0.049549 0.289683 0.107061 0.076270 0.083171 +0.535714 +0 0 0.353920 0.184038 0.141568 0.049549 0.220138 0.098390 0.051495 0.059812 +0.250000 +0 0 0.353920 0.146877 0.116793 0.035392 0.138206 0.068130 0.026721 0.036277 +0.214286 +0.353920 0 0 0.198195 0.146877 0.051318 0.301540 0.152185 0.066714 0.072554 +0.250000 +0.353920 0 0 0.178729 0.141568 0.044240 0.272518 0.096797 0.056273 0.090250 +0.428571 +0 0 0.353920 0.134489 0.097328 0.033622 0.048664 0.030437 0.020704 0.021412 +0.214286 +0 0 0.353920 0.134489 0.100867 0.031853 0.081578 0.035569 0.013803 0.027429 +0.214286 +0 0 0.353920 0.148646 0.111485 0.035392 0.121571 0.055565 0.028137 0.031853 +0.178571 +0.353920 0 0 0.189347 0.145107 0.053088 0.286852 0.122102 0.066183 0.084941 +0.357143 +0 0.353920 0 0.166342 0.127411 0.038931 0.175721 0.083879 0.044948 0.046010 +0.178571 +0 0 0.353920 0.139798 0.107945 0.037162 0.100513 0.040170 0.021058 0.033445 +0.250000 +0 0.353920 0 0.185808 0.145107 0.047779 0.250752 0.103698 0.053973 0.083171 +0.357143 +0.353920 0 0 0.173421 0.134489 0.049549 0.225978 0.081578 0.050257 0.069014 +0.428571 +0 0 0.353920 0.097328 0.070784 0.023005 0.032561 0.013626 0.008317 0.009556 +0.142857 +0 0.353920 0 0.164573 0.127411 0.042470 0.168643 0.067953 0.039816 0.056627 +0.321429 +0 0 0.353920 0.138029 0.104406 0.035392 0.098744 0.040878 0.020881 0.028314 +0.214286 +0.353920 0 0 0.228278 0.175190 0.067245 0.544682 0.216422 0.144399 0.157494 +0.392857 +0 0 0.353920 0.026544 0.019466 0.003539 0.000708 0.000354 0.000177 0.000531 +0 +0 0 0.353920 0.125641 0.099098 0.038931 0.079101 0.028844 0.018581 0.028314 +0.214286 +0.353920 0 0 0.191117 0.143337 0.044240 0.315342 0.170412 0.067776 0.071492 +0.285714 +0 0.353920 0 0.230048 0.175190 0.054858 0.473191 0.217661 0.113077 0.118563 +0.285714 +0.353920 0 0 0.222969 0.161033 0.053088 0.400460 0.170235 0.097151 0.107945 +0.285714 +0.353920 0 0 0.093789 0.070784 0.023005 0.029729 0.012033 0.003716 0.010618 +0.214286 +0 0.353920 0 0.141568 0.115024 0.042470 0.112723 0.047425 0.019996 0.033622 +0.250000 +0 0 0.353920 0.145107 0.115024 0.038931 0.115378 0.046894 0.026544 0.035746 +0.250000 +0 0.353920 0 0.215891 0.152185 0.049549 0.321713 0.155017 0.070784 0.077862 +0.250000 +0.353920 0 0 0.221200 0.182269 0.058397 0.430720 0.236064 0.073084 0.110246 +0.321429 +0.353920 0 0 0.189347 0.143337 0.065475 0.295346 0.112369 0.061051 0.102637 +0.535714 +0 0.353920 0 0.224739 0.182269 0.067245 0.485401 0.179260 0.107945 0.159264 +0.321429 +0.353920 0 0 0.180499 0.145107 0.054858 0.453902 0.201380 0.102991 0.134313 +0.285714 +0 0.353920 0 0.214121 0.166342 0.056627 0.383472 0.191294 0.078393 0.097328 +0.392857 +0 0.353920 0 0.194656 0.164573 0.053088 0.382941 0.126526 0.068660 0.067245 +0.464286 +0.353920 0 0 0.260131 0.201734 0.061936 0.665369 0.321890 0.136967 0.172713 +0.357143 +0 0.353920 0 0.210582 0.164573 0.053088 0.389489 0.191647 0.058751 0.093789 +0.250000 +0.353920 0 0 0.194656 0.159264 0.061936 0.388781 0.133251 0.076093 0.141568 +0.464286 +0 0 0.353920 0.175190 0.138029 0.044240 0.235534 0.100513 0.057335 0.070784 +0.357143 +0.353920 0 0 0.242435 0.189347 0.061936 0.506813 0.225447 0.087418 0.162803 +0.357143 +0 0 0.353920 0.150416 0.113254 0.035392 0.108122 0.044594 0.021235 0.037515 +0.214286 +0 0.353920 0 0.198195 0.152185 0.051318 0.317820 0.137852 0.082286 0.086710 +0.285714 +0 0 0.353920 0.161033 0.125641 0.028314 0.159972 0.076624 0.035215 0.044240 +0.285714 +0 0.353920 0 0.184038 0.143337 0.040701 0.274642 0.113254 0.065298 0.077862 +0.250000 +0 0 0.353920 0.196425 0.153955 0.051318 0.246859 0.092727 0.055742 0.084941 +0.357143 +0 0 0.353920 0.150416 0.115024 0.040701 0.130419 0.057335 0.030614 0.036985 +0.214286 +0 0 0.353920 0.076093 0.058397 0.019466 0.020881 0.009379 0.004424 0.006548 +0.142857 +0 0.353920 0 0.194656 0.157494 0.054858 0.350557 0.192532 0.062998 0.077154 +0.285714 +0.353920 0 0 0.194656 0.152185 0.053088 0.309503 0.146169 0.067422 0.087772 +0.285714 +0 0.353920 0 0.215891 0.175190 0.065475 0.408069 0.189701 0.102814 0.086710 +0.250000 +0.353920 0 0 0.207043 0.161033 0.053088 0.320651 0.144930 0.081402 0.082640 +0.250000 +0.353920 0 0 0.173421 0.139798 0.049549 0.194302 0.078393 0.045125 0.053088 +0.357143 +0.353920 0 0 0.136259 0.097328 0.040701 0.095027 0.034507 0.029198 0.030083 +0.250000 +0 0 0.353920 0.143337 0.102637 0.031853 0.099982 0.039639 0.026544 0.028844 +0.214286 +0.353920 0 0 0.207043 0.161033 0.054858 0.400991 0.195187 0.078924 0.107945 +0.392857 +0 0.353920 0 0.283136 0.222969 0.069014 0.894001 0.330207 0.208813 0.219430 +0.785714 +0.353920 0 0 0.212352 0.161033 0.060166 0.421695 0.246328 0.084764 0.084941 +0.250000 +0 0.353920 0 0.182269 0.138029 0.046010 0.203681 0.069899 0.046010 0.065298 +0.285714 +0.353920 0 0 0.203504 0.159264 0.065475 0.327376 0.121041 0.069722 0.123872 +0.392857 +0.353920 0 0 0.219430 0.169881 0.058397 0.384180 0.170235 0.091134 0.107945 +0.321429 +0 0.353920 0 0.219430 0.180499 0.053088 0.515307 0.205627 0.101752 0.113254 +0.428571 +0 0 0.353920 0.106176 0.081402 0.033622 0.049018 0.019820 0.012918 0.013095 +0.178571 +0 0 0.353920 0.111485 0.081402 0.028314 0.048664 0.019289 0.010972 0.015749 +0.142857 +0.353920 0 0 0.221200 0.169881 0.056627 0.439391 0.232702 0.092904 0.098567 +0.285714 +0.353920 0 0 0.164573 0.143337 0.047779 0.275173 0.154309 0.060697 0.051495 +0.321429 +0 0 0.353920 0.084941 0.061936 0.023005 0.023536 0.010972 0.004778 0.006017 +0.071429 +0.353920 0 0 0.161033 0.132720 0.044240 0.171297 0.076270 0.036100 0.058397 +0.214286 +0 0.353920 0 0.194656 0.166342 0.053088 0.317466 0.133428 0.065121 0.102637 +0.285714 +0 0 0.353920 0.123872 0.093789 0.028314 0.070784 0.031853 0.014865 0.021235 +0.214286 +0.353920 0 0 0.176960 0.138029 0.047779 0.233410 0.111308 0.054327 0.055388 +0.178571 +0 0.353920 0 0.185808 0.152185 0.044240 0.287737 0.117324 0.058751 0.062821 +0.392857 +0.353920 0 0 0.233587 0.189347 0.070784 0.633870 0.259423 0.112546 0.191117 +0.500000 +0 0 0.353920 0.150416 0.134489 0.037162 0.115555 0.045479 0.027783 0.035392 +0.321429 +0.353920 0 0 0.176960 0.132720 0.046010 0.255176 0.108122 0.061051 0.077862 +0.464286 +0 0.353920 0 0.221200 0.185808 0.069014 0.478499 0.159441 0.086533 0.187577 +0.428571 +0 0 0.353920 0.111485 0.083171 0.026544 0.052557 0.020704 0.013272 0.015042 +0.178571 +0.353920 0 0 0.176960 0.132720 0.051318 0.219961 0.096974 0.058751 0.052557 +0.214286 +0.353920 0 0 0.184038 0.141568 0.042470 0.205273 0.082817 0.046540 0.065475 +0.250000 +0 0 0.353920 0.169881 0.130950 0.044240 0.192355 0.086356 0.035746 0.058397 +0.285714 +0 0.353920 0 0.222969 0.175190 0.070784 0.504512 0.233233 0.118917 0.134489 +0.357143 +0 0 0.353920 0.161033 0.123872 0.047779 0.189878 0.101044 0.030260 0.046894 +0.214286 +0 0 0.353920 0.185808 0.132720 0.042470 0.223500 0.107769 0.040347 0.067245 +0.285714 +0 0.353920 0 0.199965 0.155725 0.053088 0.305433 0.153955 0.052734 0.095558 +0.285714 +0.353920 0 0 0.260131 0.201734 0.074323 0.791187 0.414263 0.163865 0.188108 +0.321429 +0.353920 0 0 0.187577 0.155725 0.072554 0.295523 0.113254 0.076978 0.086710 +0.464286 +0 0.353920 0 0.198195 0.145107 0.056627 0.290745 0.121041 0.065121 0.089542 +0.285714 +0.353920 0 0 0.198195 0.161033 0.058397 0.304371 0.142099 0.059989 0.086710 +0.357143 +0.353920 0 0 0.139798 0.099098 0.028314 0.094143 0.035215 0.023359 0.031853 +0.392857 +0 0 0.353920 0.095558 0.072554 0.026544 0.041763 0.020881 0.010972 0.010795 +0.107143 +0.353920 0 0 0.219430 0.168112 0.069014 0.480800 0.210051 0.119094 0.132543 +0.321429 +0.353920 0 0 0.222969 0.173421 0.054858 0.434967 0.189347 0.102637 0.118563 +0.357143 +0.353920 0 0 0.162803 0.129181 0.044240 0.165280 0.067068 0.033445 0.055919 +0.321429 +0 0 0.353920 0.185808 0.141568 0.046010 0.228455 0.115024 0.044063 0.060166 +0.250000 +0 0.353920 0 0.230048 0.176960 0.067245 0.518138 0.227039 0.119979 0.150239 +0.285714 +0 0 0.353920 0.104406 0.079632 0.028314 0.043886 0.017165 0.011325 0.014157 +0.285714 +0.353920 0 0 0.238896 0.185808 0.056627 0.454256 0.202442 0.097505 0.125465 +0.428571 +0 0 0.353920 0.139798 0.102637 0.033622 0.112900 0.048841 0.028314 0.029021 +0.214286 +0 0 0.353920 0.159264 0.123872 0.042470 0.165634 0.070961 0.037692 0.046894 +0.250000 +0.353920 0 0 0.164573 0.132720 0.038931 0.176960 0.074323 0.039993 0.053265 +0.250000 +0 0 0.353920 0.123872 0.090250 0.031853 0.063175 0.030260 0.010795 0.018581 +0.250000 +0.353920 0 0 0.130950 0.100867 0.035392 0.080694 0.023890 0.023890 0.028667 +0.321429 +0 0.353920 0 0.208813 0.168112 0.056627 0.389843 0.168997 0.090426 0.104406 +0.428571 +0 0 0.353920 0.148646 0.116793 0.035392 0.124580 0.057866 0.031499 0.035392 +0.285714 +0.353920 0 0 0.187577 0.143337 0.046010 0.261193 0.100690 0.060166 0.068306 +0.285714 +0 0.353920 0 0.207043 0.164573 0.060166 0.350911 0.136790 0.079278 0.093789 +0.392857 +0.353920 0 0 0.184038 0.141568 0.058397 0.303132 0.097151 0.071138 0.074323 +0.392857 +0.353920 0 0 0.201734 0.159264 0.049549 0.328260 0.168820 0.056804 0.089011 +0.250000 +0 0 0.353920 0.134489 0.106176 0.031853 0.098036 0.058574 0.022120 0.029021 +0.178571 +0.353920 0 0 0.176960 0.129181 0.046010 0.210405 0.109361 0.038400 0.054327 +0.285714 +0 0 0.353920 0.150416 0.120333 0.035392 0.135197 0.058043 0.033976 0.035392 +0.178571 +0.353920 0 0 0.251283 0.198195 0.061936 0.610157 0.200319 0.161918 0.163688 +0.428571 +0.353920 0 0 0.230048 0.175190 0.060166 0.451601 0.219961 0.081578 0.141214 +0.357143 +0 0 0.353920 0.171651 0.130950 0.035392 0.181561 0.077508 0.038046 0.046010 +0.214286 +0 0.353920 0 0.224739 0.173421 0.054858 0.405238 0.168997 0.107415 0.111662 +0.285714 +0.353920 0 0 0.208813 0.161033 0.054858 0.313396 0.137321 0.066537 0.097328 +0.321429 +0 0.353920 0 0.226509 0.185808 0.061936 0.489117 0.228632 0.110246 0.130950 +0.285714 +0 0 0.353920 0.208813 0.164573 0.069014 0.385242 0.130419 0.066183 0.132720 +0.571429 +0 0.353920 0 0.237126 0.191117 0.069014 0.572996 0.261901 0.116970 0.164573 +0.357143 +0 0 0.353920 0.104406 0.077862 0.024774 0.048310 0.020350 0.010441 0.012387 +0.178571 +0 0 0.353920 0.169881 0.118563 0.044240 0.185454 0.087064 0.038754 0.051318 +0.214286 +0 0 0.353920 0.067245 0.049549 0.010618 0.011148 0.004424 0.001770 0.003716 +0.071429 +0.353920 0 0 0.230048 0.185808 0.072554 0.505220 0.244205 0.108299 0.154132 +0.428571 +0 0 0.353920 0.143337 0.109715 0.038931 0.322067 0.147231 0.073438 0.035215 +0.250000 +0.353920 0 0 0.230048 0.180499 0.067245 0.545744 0.253229 0.132189 0.132720 +0.285714 +0 0.353920 0 0.214121 0.166342 0.054858 0.344718 0.139090 0.079278 0.118386 +0.285714 +0 0.353920 0 0.226509 0.169881 0.069014 0.404707 0.173952 0.082994 0.124934 +0.285714 +0.353920 0 0 0.175190 0.134489 0.047779 0.222792 0.093081 0.050434 0.076093 +0.392857 +0 0 0.353920 0.155725 0.123872 0.044240 0.161387 0.074323 0.033799 0.046363 +0.250000 +0 0 0.353920 0.208813 0.162803 0.044240 0.267209 0.118209 0.053088 0.084233 +0.285714 +0 0.353920 0 0.205273 0.157494 0.047779 0.336224 0.171297 0.064413 0.082286 +0.250000 +0.353920 0 0 0.189347 0.155725 0.058397 0.309680 0.098744 0.063706 0.106176 +0.321429 +0 0 0.353920 0.159264 0.123872 0.049549 0.167758 0.074323 0.038577 0.045125 +0.535714 +0 0 0.353920 0.113254 0.084941 0.026544 0.061405 0.026898 0.012564 0.017696 +0.214286 +0.353920 0 0 0.176960 0.145107 0.053088 0.234295 0.099628 0.048487 0.077862 +0.357143 +0 0.353920 0 0.217661 0.168112 0.058397 0.362060 0.173598 0.069191 0.107415 +0.392857 +0 0 0.353920 0.176960 0.136259 0.053088 0.221731 0.092196 0.058928 0.056627 +0.321429 +0 0 0.353920 0.162803 0.123872 0.037162 0.131127 0.055742 0.027252 0.040347 +0.285714 +0 0.353920 0 0.207043 0.164573 0.049549 0.321359 0.134843 0.057158 0.111485 +0.428571 +0.353920 0 0 0.203504 0.166342 0.065475 0.348611 0.132543 0.076978 0.125641 +0.321429 +0 0.353920 0 0.207043 0.162803 0.060166 0.330030 0.129181 0.095912 0.102637 +0.285714 +0 0 0.353920 0.184038 0.141568 0.051318 0.233587 0.094497 0.037339 0.077862 +0.428571 +0 0.353920 0 0.251283 0.176960 0.053088 0.465935 0.241904 0.099628 0.099098 +0.321429 +0.353920 0 0 0.254822 0.205273 0.067245 0.739161 0.352327 0.169174 0.187754 +0.428571 +0 0.353920 0 0.203504 0.169881 0.053088 0.309503 0.132720 0.068306 0.102637 +0.392857 +0 0.353920 0 0.247744 0.203504 0.060166 0.463635 0.180322 0.111131 0.148646 +0.464286 +0 0.353920 0 0.258361 0.198195 0.067245 0.687489 0.282782 0.183861 0.200142 +0.357143 +0.353920 0 0 0.210582 0.169881 0.058397 0.446647 0.171120 0.100159 0.145107 +0.571429 +0.353920 0 0 0.196425 0.150416 0.046010 0.271279 0.093435 0.059459 0.097328 +0.428571 +0 0.353920 0 0.231817 0.192886 0.058397 0.574235 0.231994 0.105822 0.181561 +0.392857 +0 0.353920 0 0.231817 0.182269 0.060166 0.540435 0.300301 0.093258 0.117147 +0.357143 +0.353920 0 0 0.173421 0.136259 0.044240 0.215537 0.108476 0.033976 0.062821 +0.250000 +0.353920 0 0 0.203504 0.162803 0.054858 0.315696 0.156256 0.062290 0.077862 +0.321429 +0 0 0.353920 0.070784 0.051318 0.017696 0.012741 0.004424 0.002831 0.003893 +0.107143 +0.353920 0 0 0.194656 0.145107 0.046010 0.308087 0.157671 0.074854 0.075385 +0.285714 +0 0 0.353920 0.136259 0.102637 0.031853 0.092550 0.039285 0.021058 0.026367 +0.285714 +0 0.353920 0 0.222969 0.175190 0.051318 0.405946 0.193063 0.094143 0.102106 +0.285714 +0 0 0.353920 0.100867 0.076093 0.021235 0.033091 0.010972 0.008140 0.010618 +0.178571 +0 0.353920 0 0.175190 0.132720 0.053088 0.211290 0.092550 0.047779 0.062998 +0.357143 +0.353920 0 0 0.178729 0.143337 0.038931 0.221200 0.107945 0.056627 0.061936 +0.285714 +0 0.353920 0 0.146877 0.115024 0.040701 0.122279 0.049726 0.027075 0.038931 +0.285714 +0 0.353920 0 0.217661 0.175190 0.058397 0.423996 0.191647 0.101398 0.112723 +0.321429 +0.353920 0 0 0.210582 0.169881 0.049549 0.322952 0.144930 0.064590 0.102283 +0.285714 +0 0 0.353920 0.086710 0.072554 0.021235 0.027075 0.012033 0.004955 0.007609 +0.107143 +0.353920 0 0 0.237126 0.184038 0.067245 0.579897 0.287206 0.130596 0.138383 +0.285714 +0 0 0.353920 0.141568 0.113254 0.033622 0.123164 0.068660 0.018758 0.030791 +0.178571 +0.353920 0 0 0.208813 0.173421 0.047779 0.356751 0.149354 0.079455 0.100867 +0.357143 +0.353920 0 0 0.199965 0.155725 0.054858 0.307202 0.123164 0.076801 0.092019 +0.357143 +0 0 0.353920 0.184038 0.139798 0.047779 0.224031 0.105645 0.045833 0.061936 +0.285714 +0 0 0.353920 0.159264 0.122102 0.047779 0.156786 0.069899 0.030968 0.041586 +0.464286 +0.353920 0 0 0.221200 0.175190 0.063706 0.382764 0.166873 0.089896 0.110954 +0.321429 +0.353920 0 0 0.230048 0.185808 0.065475 0.476199 0.207397 0.098390 0.136790 +0.285714 +0 0.353920 0 0.180499 0.138029 0.037162 0.216599 0.066183 0.053088 0.069014 +0.428571 +0 0.353920 0 0.130950 0.097328 0.035392 0.078747 0.032915 0.009202 0.028314 +0.250000 +0.353920 0 0 0.199965 0.150416 0.035392 0.252876 0.108122 0.058751 0.063706 +0.392857 +0 0 0.353920 0.123872 0.093789 0.033622 0.070430 0.025836 0.017342 0.021235 +0.142857 +0 0.353920 0 0.210582 0.169881 0.070784 0.345072 0.126703 0.072023 0.120333 +0.500000 +0 0 0.353920 0.111485 0.083171 0.028314 0.063706 0.028314 0.015926 0.016634 +0.142857 +0 0 0.353920 0.111485 0.083171 0.024774 0.052734 0.020527 0.011502 0.016634 +0.214286 +0 0 0.353920 0.173421 0.132720 0.044240 0.192709 0.098744 0.040701 0.046010 +0.250000 +0.353920 0 0 0.194656 0.145107 0.053088 0.277827 0.099805 0.065829 0.097328 +0.392857 +0 0 0.353920 0.130950 0.102637 0.031853 0.086533 0.031499 0.023182 0.026544 +0.214286 +0.353920 0 0 0.136259 0.107945 0.031853 0.098213 0.038577 0.018227 0.035392 +0.285714 +0 0 0.353920 0.072554 0.053088 0.019466 0.014865 0.009025 0.005309 0.004247 +0.142857 +0 0 0.353920 0.168112 0.132720 0.040701 0.184215 0.082463 0.042116 0.051495 +0.214286 +0 0.353920 0 0.219430 0.171651 0.061936 0.449832 0.187931 0.108830 0.130950 +0.357143 +0 0 0.353920 0.191117 0.146877 0.054858 0.248452 0.113962 0.059105 0.067245 +0.321429 +0 0.353920 0 0.226509 0.168112 0.049549 0.379579 0.173244 0.081225 0.109715 +0.250000 +0 0.353920 0 0.184038 0.141568 0.046010 0.221023 0.076093 0.073084 0.060166 +0.500000 +0.353920 0 0 0.194656 0.159264 0.046010 0.325606 0.133782 0.084410 0.102637 +0.357143 +0.353920 0 0 0.226509 0.182269 0.063706 0.441338 0.193771 0.103521 0.130419 +0.321429 +0 0 0.353920 0.182269 0.143337 0.046010 0.202796 0.075385 0.047425 0.069014 +0.285714 +0.353920 0 0 0.201734 0.159264 0.056627 0.304902 0.131835 0.076978 0.090250 +0.392857 +0 0 0.353920 0.097328 0.072554 0.023005 0.035746 0.014511 0.007432 0.012033 +0.142857 +0 0 0.353920 0.127411 0.095558 0.030083 0.069368 0.030968 0.012387 0.022651 +0.107143 +0 0 0.353920 0.175190 0.132720 0.040701 0.179437 0.085295 0.036454 0.053088 +0.250000 +0.353920 0 0 0.146877 0.107945 0.035392 0.115024 0.055211 0.017873 0.032207 +0.178571 +0.353920 0 0 0.249513 0.196425 0.076093 0.757742 0.370377 0.135551 0.186870 +0.357143 +0.353920 0 0 0.125641 0.093789 0.030083 0.071138 0.024420 0.018758 0.024597 +0.250000 +0.353920 0 0 0.189347 0.146877 0.047779 0.276057 0.112016 0.059812 0.083702 +0.250000 +0 0.353920 0 0.240665 0.198195 0.058397 0.580074 0.214298 0.099274 0.162803 +0.500000 +0.353920 0 0 0.123872 0.090250 0.028314 0.067776 0.028314 0.013626 0.022297 +0.285714 +0 0.353920 0 0.217661 0.169881 0.058397 0.411078 0.181561 0.106530 0.107945 +0.321429 +0.353920 0 0 0.214121 0.173421 0.063706 0.434259 0.169881 0.101575 0.123872 +0.607143 +0 0.353920 0 0.176960 0.134489 0.054858 0.231817 0.085118 0.050611 0.072554 +0.571429 +0 0 0.353920 0.168112 0.148646 0.056627 0.251106 0.123872 0.053265 0.065298 +0.250000 +0 0 0.353920 0.199965 0.155725 0.061936 0.309149 0.146523 0.074323 0.074323 +0.357143 +0 0 0.353920 0.106176 0.081402 0.026544 0.044948 0.018404 0.010618 0.012210 +0.178571 +0 0 0.353920 0.161033 0.125641 0.037162 0.131658 0.048841 0.027075 0.047779 +0.285714 +0 0.353920 0 0.228278 0.176960 0.079632 0.575473 0.207751 0.143514 0.145107 +0.500000 +0 0 0.353920 0.150416 0.115024 0.038931 0.118032 0.061228 0.015926 0.035392 +0.214286 +0.353920 0 0 0.185808 0.150416 0.042470 0.306671 0.099982 0.062290 0.102637 +0.607143 +0.353920 0 0 0.208813 0.157494 0.049549 0.329499 0.125995 0.082817 0.099098 +0.392857 +0.353920 0 0 0.199965 0.161033 0.065475 0.327907 0.125288 0.055742 0.132720 +0.535714 +0.353920 0 0 0.185808 0.141568 0.054858 0.250221 0.099805 0.056804 0.079632 +0.285714 +0.353920 0 0 0.219430 0.176960 0.063706 0.492479 0.256946 0.098921 0.117501 +0.357143 +0 0 0.353920 0.141568 0.104406 0.033622 0.089188 0.039108 0.020350 0.023359 +0.178571 +0.353920 0 0 0.212352 0.166342 0.058397 0.374801 0.178376 0.085295 0.097328 +0.285714 +0.353920 0 0 0.203504 0.162803 0.058397 0.324013 0.141745 0.087241 0.084410 +0.250000 +0.353920 0 0 0.176960 0.138029 0.047779 0.276588 0.127765 0.055742 0.084410 +0.285714 +0.353920 0 0 0.123872 0.093789 0.031853 0.062821 0.020350 0.014865 0.024067 +0.392857 +0.353920 0 0 0.187577 0.150416 0.046010 0.263847 0.105999 0.047956 0.086710 +0.321429 +0.353920 0 0 0.203504 0.155725 0.065475 0.362768 0.179614 0.079455 0.087949 +0.321429 +0.353920 0 0 0.207043 0.164573 0.067245 0.414440 0.138206 0.083348 0.141568 +0.571429 +0.353920 0 0 0.205273 0.159264 0.054858 0.292868 0.113608 0.069899 0.086533 +0.250000 +0 0.353920 0 0.185808 0.150416 0.056627 0.295700 0.125465 0.075562 0.086710 +0.285714 +0.353920 0 0 0.208813 0.162803 0.046010 0.390019 0.161033 0.072730 0.116793 +0.392857 +0 0.353920 0 0.198195 0.150416 0.044240 0.329853 0.127765 0.075385 0.118563 +0.285714 +0 0 0.353920 0.169881 0.125641 0.038931 0.159087 0.071138 0.031499 0.049549 +0.250000 +0 0.353920 0 0.176960 0.138029 0.046010 0.224916 0.088657 0.057866 0.069014 +0.500000 +0.353920 0 0 0.130950 0.099098 0.037162 0.079278 0.028844 0.020350 0.026544 +0.250000 +0.353920 0 0 0.175190 0.139798 0.047779 0.224208 0.107415 0.045833 0.052911 +0.250000 +0 0 0.353920 0.148646 0.107945 0.038931 0.099098 0.033268 0.027783 0.033799 +0.285714 +0.353920 0 0 0.226509 0.185808 0.065475 0.604141 0.270041 0.148823 0.156963 +0.357143 +0.353920 0 0 0.176960 0.148646 0.044240 0.219430 0.090250 0.053088 0.072554 +0.357143 +0 0.353920 0 0.171651 0.132720 0.051318 0.208282 0.084410 0.040878 0.067245 +0.428571 +0 0.353920 0 0.224739 0.178729 0.065475 0.461334 0.177314 0.104406 0.145107 +0.571429 +0 0.353920 0 0.136259 0.107945 0.037162 0.117324 0.048310 0.026367 0.035392 +0.214286 +0 0 0.353920 0.148646 0.113254 0.040701 0.133074 0.059812 0.032561 0.035392 +0.142857 +0 0 0.353920 0.143337 0.107945 0.031853 0.099982 0.040347 0.020350 0.033622 +0.214286 +0 0 0.353920 0.159264 0.123872 0.047779 0.174836 0.078039 0.033445 0.049726 +0.214286 +0.353920 0 0 0.090250 0.063706 0.023005 0.027960 0.012033 0.004955 0.008848 +0.142857 +0 0.353920 0 0.244205 0.194656 0.070784 0.555300 0.243143 0.130065 0.162803 +0.392857 +0.353920 0 0 0.205273 0.161033 0.053088 0.394266 0.168643 0.076270 0.093789 +0.250000 +0 0.353920 0 0.256592 0.187577 0.067245 0.612812 0.293753 0.140860 0.143337 +0.357143 +0 0.353920 0 0.212352 0.168112 0.054858 0.428243 0.231110 0.059989 0.113431 +0.321429 +0 0.353920 0 0.207043 0.157494 0.049549 0.323129 0.152362 0.078039 0.089542 +0.321429 +0 0.353920 0 0.224739 0.175190 0.069014 0.459034 0.196779 0.105645 0.130950 +0.357143 +0 0 0.353920 0.116793 0.090250 0.030083 0.058574 0.022297 0.013803 0.021235 +0.250000 +0.353920 0 0 0.161033 0.125641 0.046010 0.182269 0.070784 0.045125 0.061936 +0.357143 +0.353920 0 0 0.138029 0.100867 0.033622 0.095912 0.038931 0.021235 0.028314 +0.250000 +0 0.353920 0 0.230048 0.189347 0.061936 0.456379 0.215714 0.097859 0.121748 +0.321429 +0.353920 0 0 0.214121 0.166342 0.063706 0.403645 0.132897 0.099274 0.136259 +0.500000 +0.353920 0 0 0.217661 0.169881 0.065475 0.431959 0.176429 0.111485 0.116793 +0.321429 +0 0 0.353920 0.212352 0.157494 0.047779 0.325783 0.157494 0.072023 0.089542 +0.285714 +0 0.353920 0 0.235357 0.191117 0.069014 0.624314 0.301009 0.127942 0.166342 +0.357143 +0 0 0.353920 0.081402 0.058397 0.021235 0.018227 0.006724 0.005132 0.012741 +0.107143 +0 0 0.353920 0.219430 0.159264 0.047779 0.327022 0.126703 0.080163 0.104937 +0.321429 +0 0 0.353920 0.069014 0.053088 0.015926 0.013272 0.006371 0.002124 0.003893 +0.071429 +0 0.353920 0 0.231817 0.184038 0.067245 0.514776 0.212352 0.136790 0.135551 +0.321429 +0.353920 0 0 0.198195 0.159264 0.065475 0.378694 0.134666 0.061936 0.145107 +0.642857 +0 0 0.353920 0.215891 0.164573 0.053088 0.339940 0.159087 0.061051 0.101221 +0.285714 +0.353920 0 0 0.215891 0.166342 0.061936 0.429658 0.188108 0.100336 0.115024 +0.321429 +0 0 0.353920 0.125641 0.092019 0.031853 0.068130 0.027252 0.013449 0.023005 +0.250000 +0.353920 0 0 0.231817 0.178729 0.058397 0.449478 0.213591 0.092727 0.118563 +0.321429 +0 0.353920 0 0.233587 0.184038 0.063706 0.535834 0.186162 0.105291 0.148646 +0.642857 +0 0 0.353920 0.070784 0.051318 0.008848 0.012210 0.003893 0.002654 0.003539 +0.142857 +0.353920 0 0 0.228278 0.169881 0.053088 0.421872 0.214298 0.091842 0.100867 +0.285714 +0.353920 0 0 0.253053 0.194656 0.067245 0.709432 0.370377 0.144045 0.179614 +0.392857 +0 0 0.353920 0.187577 0.152185 0.046010 0.249336 0.122456 0.050080 0.066891 +0.285714 +0 0 0.353920 0.141568 0.111485 0.030083 0.094674 0.041055 0.020704 0.027075 +0.178571 +0.353920 0 0 0.240665 0.182269 0.060166 0.570342 0.297823 0.108299 0.139798 +0.357143 +0.353920 0 0 0.185808 0.141568 0.046010 0.220138 0.093966 0.052026 0.065121 +0.285714 +0 0 0.353920 0.203504 0.155725 0.053088 0.347903 0.172005 0.076093 0.084587 +0.250000 +0 0 0.353920 0.113254 0.083171 0.028314 0.052557 0.022651 0.010972 0.015926 +0.178571 +0 0 0.353920 0.194656 0.148646 0.047779 0.288798 0.141391 0.052557 0.081402 +0.392857 +0 0.353920 0 0.182269 0.141568 0.060166 0.281720 0.091311 0.062113 0.099098 +0.535714 +0 0.353920 0 0.192886 0.152185 0.056627 0.298708 0.139621 0.065652 0.081755 +0.285714 +0.353920 0 0 0.199965 0.153955 0.065475 0.365245 0.125288 0.072377 0.109715 +0.678571 +0 0.353920 0 0.251283 0.198195 0.063706 0.584675 0.260131 0.134843 0.160149 +0.357143 +0 0 0.353920 0.214121 0.169881 0.054858 0.353743 0.150416 0.070253 0.106176 +0.321429 +0 0.353920 0 0.231817 0.180499 0.061936 0.584852 0.301363 0.119094 0.142630 +0.321429 +0 0.353920 0 0.214121 0.171651 0.056627 0.373916 0.130950 0.083348 0.125641 +0.321429 +0 0 0.353920 0.168112 0.127411 0.047779 0.154132 0.069368 0.032738 0.044240 +0.250000 +0 0 0.353920 0.129181 0.095558 0.037162 0.076270 0.032384 0.016811 0.022297 +0.178571 +0.353920 0 0 0.161033 0.123872 0.042470 0.171120 0.064236 0.050964 0.056627 +0.357143 +0.353920 0 0 0.245974 0.198195 0.067245 0.528756 0.208105 0.121217 0.171651 +0.500000 +0.353920 0 0 0.159264 0.113254 0.035392 0.134843 0.060343 0.026544 0.040701 +0.285714 +0 0.353920 0 0.244205 0.191117 0.054858 0.514599 0.220846 0.109892 0.138029 +0.285714 +0 0 0.353920 0.122102 0.097328 0.033622 0.070607 0.026721 0.018935 0.024774 +0.178571 +0 0 0.353920 0.171651 0.136259 0.046010 0.201026 0.088657 0.062998 0.054504 +0.214286 +0 0 0.353920 0.116793 0.090250 0.033622 0.060874 0.023359 0.009025 0.021235 +0.178571 +0 0 0.353920 0.162803 0.123872 0.038931 0.139621 0.059635 0.030614 0.044240 +0.285714 +0 0.353920 0 0.228278 0.189347 0.067245 0.438683 0.165634 0.084410 0.150062 +0.321429 +0 0 0.353920 0.123872 0.092019 0.033622 0.074677 0.030437 0.019820 0.024067 +0.214286 +0.353920 0 0 0.178729 0.143337 0.049549 0.309680 0.094320 0.061582 0.100867 +0.392857 +0 0 0.353920 0.138029 0.106176 0.031853 0.089188 0.037692 0.018758 0.028314 +0.214286 +0.353920 0 0 0.198195 0.148646 0.069014 0.286144 0.107061 0.063529 0.100867 +0.464286 +0 0.353920 0 0.215891 0.175190 0.061936 0.447177 0.187577 0.111485 0.122279 +0.321429 +0.353920 0 0 0.196425 0.153955 0.051318 0.325783 0.142984 0.080517 0.090250 +0.250000 +0 0.353920 0 0.260131 0.212352 0.077862 0.904265 0.401168 0.155725 0.212352 +0.357143 +0.353920 0 0 0.205273 0.162803 0.063706 0.405238 0.169881 0.098036 0.115024 +0.357143 +0 0.353920 0 0.230048 0.185808 0.061936 0.503451 0.215891 0.105999 0.157494 +0.678571 +0 0 0.353920 0.182269 0.132720 0.049549 0.230225 0.088303 0.049903 0.078393 +0.321429 +0 0.353920 0 0.230048 0.178729 0.058397 0.480269 0.202619 0.099451 0.152185 +0.357143 +0.353920 0 0 0.215891 0.171651 0.056627 0.359051 0.188108 0.075031 0.085472 +0.250000 +0.353920 0 0 0.207043 0.159264 0.063706 0.282959 0.118917 0.065652 0.083879 +0.250000 +0 0.353920 0 0.207043 0.153955 0.049549 0.246151 0.109184 0.045656 0.079455 +0.250000 +0.353920 0 0 0.164573 0.127411 0.028314 0.172713 0.067599 0.044240 0.054858 +0.357143 +0 0.353920 0 0.192886 0.146877 0.053088 0.259600 0.098921 0.057689 0.077331 +0.357143 +0.353920 0 0 0.222969 0.173421 0.058397 0.424881 0.203504 0.096620 0.104052 +0.321429 +0 0.353920 0 0.254822 0.203504 0.076093 0.743231 0.303132 0.170766 0.213060 +0.392857 +0 0.353920 0 0.175190 0.134489 0.042470 0.202796 0.093966 0.045479 0.050964 +0.214286 +0 0.353920 0 0.219430 0.164573 0.049549 0.410724 0.212529 0.077685 0.108653 +0.285714 +0.353920 0 0 0.185808 0.143337 0.042470 0.267386 0.132897 0.055035 0.071138 +0.285714 +0.353920 0 0 0.203504 0.153955 0.053088 0.284905 0.103698 0.057512 0.095558 +0.571429 +0 0 0.353920 0.090250 0.065475 0.023005 0.026190 0.010795 0.005840 0.007078 +0.107143 +0 0 0.353920 0.136259 0.106176 0.031853 0.109007 0.053973 0.019820 0.029552 +0.250000 +0 0 0.353920 0.155725 0.123872 0.042470 0.132720 0.050434 0.034153 0.040701 +0.285714 +0 0 0.353920 0.093789 0.069014 0.019466 0.029729 0.012918 0.006194 0.008848 +0.214286 +0.353920 0 0 0.212352 0.168112 0.053088 0.385419 0.183861 0.078924 0.103345 +0.357143 +0 0 0.353920 0.184038 0.139798 0.040701 0.228101 0.111662 0.044063 0.065829 +0.357143 +0 0.353920 0 0.219430 0.169881 0.058397 0.358344 0.188462 0.154486 0.114670 +0.321429 +0.353920 0 0 0.178729 0.139798 0.044240 0.224739 0.102637 0.055035 0.061936 +0.285714 +0 0 0.353920 0.141568 0.109715 0.040701 0.111131 0.054681 0.021058 0.030791 +0.178571 +0 0 0.353920 0.176960 0.129181 0.044240 0.186870 0.081048 0.036454 0.058220 +0.285714 +0.353920 0 0 0.222969 0.169881 0.058397 0.455141 0.213767 0.095912 0.123872 +0.250000 +0.353920 0 0 0.254822 0.207043 0.077862 0.677402 0.324013 0.158556 0.169528 +0.357143 +0 0.353920 0 0.182269 0.139798 0.047779 0.182623 0.071315 0.046717 0.057335 +0.285714 +0 0 0.353920 0.118563 0.092019 0.031853 0.069545 0.030968 0.014511 0.019820 +0.214286 +0.353920 0 0 0.224739 0.175190 0.069014 0.414794 0.157494 0.110246 0.122987 +0.357143 +0 0.353920 0 0.150416 0.115024 0.047779 0.135197 0.051849 0.027960 0.049549 +0.392857 +0 0.353920 0 0.221200 0.182269 0.063706 0.477261 0.185985 0.089188 0.138913 +0.464286 +0.353920 0 0 0.245974 0.198195 0.065475 0.615820 0.313219 0.131481 0.154840 +0.321429 +0.353920 0 0 0.215891 0.173421 0.056627 0.393559 0.164573 0.080694 0.120687 +0.321429 +0 0.353920 0 0.194656 0.146877 0.047779 0.270218 0.112546 0.074323 0.070784 +0.285714 +0 0 0.353920 0.109715 0.076093 0.026544 0.045125 0.019996 0.009733 0.012741 +0.214286 +0.353920 0 0 0.210582 0.166342 0.058397 0.392143 0.173952 0.082286 0.118386 +0.285714 +0 0 0.353920 0.153955 0.116793 0.038931 0.134489 0.053619 0.033445 0.038931 +0.214286 +0 0 0.353920 0.130950 0.099098 0.031853 0.082463 0.032030 0.019289 0.024774 +0.357143 +0.353920 0 0 0.235357 0.182269 0.067245 0.579897 0.294107 0.126526 0.131304 +0.357143 +0.353920 0 0 0.155725 0.115024 0.040701 0.138029 0.057689 0.030791 0.039993 +0.214286 +0.353920 0 0 0.141568 0.109715 0.038931 0.111131 0.048841 0.020173 0.035392 +0.357143 +0 0.353920 0 0.208813 0.146877 0.053088 0.311626 0.129004 0.082817 0.083171 +0.357143 +0 0.353920 0 0.233587 0.175190 0.074323 0.547868 0.256238 0.124757 0.138913 +0.321429 +0 0 0.353920 0.132720 0.102637 0.033622 0.075385 0.033976 0.014511 0.021589 +0.142857 +0.353920 0 0 0.184038 0.141568 0.037162 0.308618 0.159795 0.057158 0.070253 +0.285714 +0.353920 0 0 0.061936 0.044240 0.014157 0.008494 0.003362 0.002124 0.001770 +0.107143 +0 0.353920 0 0.162803 0.123872 0.040701 0.155725 0.067245 0.036277 0.046010 +0.250000 +0.353920 0 0 0.150416 0.111485 0.044240 0.124757 0.040170 0.019996 0.046010 +0.607143 +0 0.353920 0 0.162803 0.150416 0.054858 0.264024 0.106353 0.053796 0.084941 +0.250000 +0.353920 0 0 0.185808 0.129181 0.060166 0.339940 0.155017 0.078747 0.097682 +0.321429 +0 0.353920 0 0.199965 0.178729 0.074323 0.451778 0.177314 0.098744 0.125641 +0.392857 +0.353920 0 0 0.230048 0.180499 0.056627 0.489648 0.225978 0.102814 0.129712 +0.285714 +0 0.353920 0 0.155725 0.122102 0.060166 0.144576 0.053088 0.029198 0.053619 +0.392857 +0 0 0.353920 0.113254 0.084941 0.030083 0.046363 0.021766 0.009379 0.013449 +0.178571 +0 0 0.353920 0.203504 0.159264 0.047779 0.308441 0.159264 0.057335 0.079632 +0.321429 +0 0 0.353920 0.161033 0.153955 0.038931 0.150947 0.069014 0.031853 0.042647 +0.250000 +0 0 0.353920 0.113254 0.079632 0.030083 0.050080 0.023890 0.010441 0.014334 +0.178571 +0 0 0.353920 0.116793 0.088480 0.037162 0.060697 0.023182 0.012387 0.021235 +0.214286 +0 0 0.353920 0.145107 0.113254 0.033622 0.102814 0.049903 0.022297 0.025836 +0.142857 +0 0 0.353920 0.111485 0.086710 0.030083 0.050787 0.018758 0.016811 0.017696 +0.250000 +0 0 0.353920 0.130950 0.097328 0.028314 0.082286 0.032915 0.019820 0.025482 +0.178571 +0 0.353920 0 0.221200 0.185808 0.076093 0.557954 0.181030 0.091842 0.235357 +0.535714 +0 0.353920 0 0.288445 0.230048 0.088480 0.798089 0.315165 0.148646 0.282251 +0.464286 +0 0.353920 0 0.207043 0.153955 0.061936 0.347549 0.143514 0.088303 0.095558 +0.321429 +0.353920 0 0 0.214121 0.168112 0.051318 0.312865 0.135728 0.067422 0.095558 +0.250000 +0 0 0.353920 0.130950 0.097328 0.031853 0.073084 0.033976 0.013980 0.020527 +0.214286 +0.353920 0 0 0.212352 0.166342 0.046010 0.357636 0.149708 0.077508 0.105468 +0.285714 +0 0.353920 0 0.199965 0.173421 0.054858 0.327199 0.143337 0.077685 0.090250 +0.357143 +0 0.353920 0 0.222969 0.182269 0.056627 0.472837 0.195718 0.113431 0.123872 +0.357143 +0 0.353920 0 0.173421 0.130950 0.037162 0.186339 0.088126 0.035569 0.052380 +0.214286 +0 0.353920 0 0.201734 0.164573 0.063706 0.353743 0.143337 0.098036 0.104406 +0.535714 +0 0 0.353920 0.143337 0.106176 0.038931 0.113254 0.060874 0.015572 0.032915 +0.214286 +0 0.353920 0 0.230048 0.184038 0.069014 0.576004 0.243851 0.138206 0.152893 +0.357143 +0.353920 0 0 0.182269 0.139798 0.047779 0.356397 0.167050 0.088303 0.089188 +0.250000 +0 0.353920 0 0.199965 0.159264 0.058397 0.313927 0.130950 0.084587 0.088126 +0.357143 +0.353920 0 0 0.212352 0.169881 0.031853 0.371616 0.161741 0.095027 0.099098 +0.250000 +0 0 0.353920 0.168112 0.123872 0.044240 0.149531 0.067422 0.027960 0.047956 +0.285714 +0 0.353920 0 0.194656 0.155725 0.047779 0.298531 0.153601 0.070607 0.065475 +0.250000 +0 0.353920 0 0.226509 0.178729 0.061936 0.466643 0.218899 0.106884 0.117324 +0.285714 +0 0.353920 0 0.189347 0.141568 0.053088 0.284728 0.118386 0.075208 0.074323 +0.428571 +0 0 0.353920 0.139798 0.104406 0.033622 0.096443 0.040701 0.022120 0.030083 +0.250000 +0.353920 0 0 0.215891 0.168112 0.053088 0.404176 0.219430 0.083879 0.086710 +0.285714 +0 0.353920 0 0.162803 0.132720 0.042470 0.162980 0.062821 0.038931 0.053088 +0.214286 +0 0 0.353920 0.132720 0.100867 0.031853 0.090957 0.036985 0.021943 0.026544 +0.214286 +0.353920 0 0 0.159264 0.123872 0.035392 0.130065 0.051849 0.035923 0.042470 +0.321429 +0 0 0.353920 0.127411 0.106176 0.030083 0.095558 0.041939 0.022651 0.026367 +0.214286 +0 0.353920 0 0.222969 0.168112 0.054858 0.354097 0.159972 0.089188 0.093789 +0.321429 +0 0 0.353920 0.083171 0.056627 0.014157 0.016988 0.006548 0.006371 0.005309 +0.142857 +0 0.353920 0 0.201734 0.152185 0.056627 0.287029 0.137144 0.056273 0.080871 +0.285714 +0.353920 0 0 0.205273 0.166342 0.058397 0.353035 0.139267 0.085649 0.116793 +0.321429 +0 0.353920 0 0.217661 0.182269 0.047779 0.396921 0.192886 0.081578 0.102637 +0.285714 +0 0 0.353920 0.106176 0.077862 0.028314 0.042824 0.016811 0.014865 0.012387 +0.142857 +0 0 0.353920 0.132720 0.102637 0.049549 0.106176 0.049549 0.022120 0.029198 +0.250000 +0 0.353920 0 0.235357 0.182269 0.063706 0.491594 0.210405 0.114670 0.139798 +0.321429 +0.353920 0 0 0.212352 0.168112 0.054858 0.402938 0.177668 0.081225 0.109715 +0.285714 +0 0.353920 0 0.173421 0.134489 0.046010 0.190763 0.081048 0.047956 0.058397 +0.392857 +0.353920 0 0 0.217661 0.169881 0.067245 0.481331 0.187754 0.084056 0.166342 +0.607143 +0 0 0.353920 0.191117 0.141568 0.051318 0.267917 0.111485 0.064059 0.076093 +0.357143 +0 0.353920 0 0.205273 0.162803 0.047779 0.327730 0.142453 0.073615 0.097328 +0.250000 +0 0.353920 0 0.196425 0.155725 0.054858 0.359582 0.174659 0.065652 0.093081 +0.321429 +0 0.353920 0 0.240665 0.194656 0.067245 0.639533 0.291099 0.129358 0.182269 +0.357143 +0.353920 0 0 0.152185 0.116793 0.033622 0.120333 0.046540 0.030083 0.039639 +0.464286 +0 0 0.353920 0.171651 0.132720 0.049549 0.184392 0.070784 0.043532 0.060166 +0.250000 +0.353920 0 0 0.219430 0.169881 0.053088 0.448062 0.222438 0.091134 0.109361 +0.392857 +0 0 0.353920 0.171651 0.134489 0.044240 0.184569 0.078393 0.041763 0.056627 +0.250000 +0.353920 0 0 0.221200 0.176960 0.049549 0.387896 0.192709 0.076624 0.104406 +0.321429 +0 0 0.353920 0.132720 0.100867 0.031853 0.083879 0.037515 0.013980 0.028314 +0.250000 +0.353920 0 0 0.176960 0.136259 0.047779 0.195010 0.079455 0.025305 0.072907 +0.357143 +0 0.353920 0 0.251283 0.201734 0.069014 0.700938 0.351265 0.174305 0.169881 +0.392857 +0 0.353920 0 0.254822 0.185808 0.063706 0.511414 0.223323 0.113785 0.153955 +0.214286 +0.353920 0 0 0.203504 0.159264 0.054858 0.345603 0.175190 0.075916 0.083171 +0.285714 +0.353920 0 0 0.115024 0.084941 0.026544 0.054858 0.016811 0.012564 0.021235 +0.285714 +0.353920 0 0 0.217661 0.171651 0.076093 0.340294 0.149354 0.062290 0.102637 +0.357143 +0 0.353920 0 0.184038 0.145107 0.040701 0.285613 0.101044 0.063352 0.083171 +0.392857 +0 0 0.353920 0.097328 0.077862 0.028314 0.048310 0.019996 0.010087 0.014865 +0.178571 +0 0.353920 0 0.256592 0.198195 0.074323 0.757742 0.230048 0.140860 0.355689 +0.607143 +0 0 0.353920 0.171651 0.122102 0.056627 0.307556 0.109184 0.065475 0.112900 +0.285714 +0 0 0.353920 0.099098 0.072554 0.028314 0.044948 0.018404 0.013803 0.014865 +0.285714 +0 0.353920 0 0.254822 0.203504 0.069014 0.761104 0.380287 0.135197 0.207043 +0.321429 +0 0.353920 0 0.168112 0.134489 0.051318 0.201734 0.059105 0.041763 0.066183 +0.357143 +0 0 0.353920 0.191117 0.150416 0.046010 0.254999 0.104583 0.059812 0.079632 +0.321429 +0 0 0.353920 0.120333 0.086710 0.030083 0.071315 0.035569 0.013449 0.018758 +0.178571 +0 0.353920 0 0.251283 0.199965 0.069014 0.643072 0.277827 0.174128 0.173421 +0.357143 +0.353920 0 0 0.169881 0.130950 0.046010 0.227570 0.123518 0.040878 0.047779 +0.250000 +0 0.353920 0 0.249513 0.201734 0.063706 0.543090 0.339763 0.148469 0.152185 +0.392857 +0 0.353920 0 0.210582 0.164573 0.053088 0.346841 0.145638 0.069368 0.079809 +0.321429 +0 0.353920 0 0.212352 0.169881 0.063706 0.376747 0.159087 0.086887 0.115024 +0.321429 +0.353920 0 0 0.125641 0.093789 0.031853 0.059459 0.017696 0.014511 0.022297 +0.250000 +0 0.353920 0 0.217661 0.161033 0.047779 0.374801 0.167581 0.093081 0.096974 +0.285714 +0 0 0.353920 0.162803 0.120333 0.031853 0.135905 0.063529 0.024067 0.038931 +0.250000 +0 0 0.353920 0.214121 0.173421 0.058397 0.379048 0.170589 0.068483 0.124580 +0.321429 +0 0 0.353920 0.111485 0.081402 0 0.047425 0.020350 0.010087 0.124049 +0.178571 +0 0.353920 0 0.166342 0.125641 0.063706 0.156079 0.053973 0.041232 0.047779 +0.250000 +0 0 0.353920 0.215891 0.173421 0.056627 0.408600 0.207574 0.084410 0.103168 +0.357143 +0.353920 0 0 0.210582 0.166342 0.051318 0.350734 0.142807 0.053265 0.120333 +0.535714 +0 0 0.353920 0.118563 0.090250 0.030083 0.063175 0.025128 0.014334 0.019466 +0.285714 +0 0 0.353920 0.184038 0.145107 0.049549 0.212175 0.085649 0.048664 0.064413 +0.357143 +0.353920 0 0 0.205273 0.159264 0.042470 0.307379 0.147938 0.052203 0.092196 +0.250000 +0 0.353920 0 0.185808 0.146877 0.053088 0.249690 0.116440 0.052026 0.070430 +0.321429 +0 0.353920 0 0.192886 0.152185 0.058397 0.283844 0.103875 0.064767 0.099098 +0.357143 +0.353920 0 0 0.201734 0.169881 0.061936 0.419395 0.167758 0.092373 0.134489 +0.357143 +0.353920 0 0 0.146877 0.111485 0.040701 0.137852 0.071315 0.023005 0.036454 +0.285714 +0 0.353920 0 0.173421 0.138029 0.047779 0.204743 0.087241 0.043532 0.070784 +0.428571 +0.353920 0 0 0.182269 0.143337 0.049549 0.301009 0.110423 0.051672 0.111485 +0.571429 +0 0 0.353920 0.185808 0.141568 0.049549 0.212706 0.092904 0.045479 0.064944 +0.285714 +0 0 0.353920 0.157494 0.115024 0.035392 0.133782 0.063529 0.035392 0.031499 +0.214286 +0.353920 0 0 0.233587 0.187577 0.060166 0.492125 0.208990 0.075031 0.160326 +0.500000 +0 0.353920 0 0.233587 0.189347 0.061936 0.537073 0.251637 0.110600 0.146877 +0.392857 +0 0 0.353920 0.088480 0.067245 0.023005 0.029552 0.013803 0.005309 0.008848 +0.142857 +0 0.353920 0 0.122102 0.092019 0.031853 0.073261 0.027429 0.015396 0.027075 +0.321429 +0.353920 0 0 0.092019 0.070784 0.023005 0.033976 0.015572 0.009556 0.010618 +0.178571 +0.353920 0 0 0.198195 0.164573 0.051318 0.314104 0.118386 0.077862 0.095381 +0.285714 +0.353920 0 0 0.245974 0.187577 0.053088 0.522739 0.225624 0.107061 0.152185 +0.464286 +0.353920 0 0 0.208813 0.166342 0.056627 0.426827 0.169528 0.085826 0.109361 +0.250000 +0 0.353920 0 0.205273 0.153955 0.053088 0.296939 0.123341 0.073261 0.067953 +0.214286 +0 0.353920 0 0.219430 0.171651 0.054858 0.422757 0.180676 0.095912 0.124580 +0.285714 +0.353920 0 0 0.233587 0.187577 0.061936 0.560255 0.261724 0.124049 0.143337 +0.321429 +0 0 0.353920 0.113254 0.088480 0.028314 0.055388 0.020173 0.012033 0.021235 +0.285714 +0 0.353920 0 0.173421 0.129181 0.046010 0.241904 0.058397 0.046540 0.072554 +0.714286 +0 0.353920 0 0.178729 0.138029 0.044240 0.192709 0.087064 0.053088 0.049726 +0.214286 +0.353920 0 0 0.237126 0.194656 0.060166 0.441338 0.167050 0.086887 0.141568 +0.714286 +0.353920 0 0 0.164573 0.127411 0.040701 0.205096 0.104406 0.049372 0.042470 +0.214286 +0 0 0.353920 0.141568 0.102637 0.035392 0.091311 0.036808 0.020881 0.028844 +0.214286 +0.353920 0 0 0.231817 0.187577 0.061936 0.447177 0.172005 0.093258 0.146877 +0.500000 +0 0 0.353920 0.132720 0.099098 0.028314 0.076624 0.033091 0.032738 0.024774 +0.214286 +0.353920 0 0 0.196425 0.153955 0.051318 0.342771 0.176429 0.059459 0.084410 +0.285714 +0 0 0.353920 0.148646 0.115024 0.035392 0.130242 0.059282 0.022120 0.040170 +0.357143 +0 0 0.353920 0.191117 0.152185 0.060166 0.295877 0.131835 0.064236 0.084941 +0.285714 +0.353920 0 0 0.217661 0.168112 0.061936 0.433198 0.213591 0.092373 0.110069 +0.285714 +0 0.353920 0 0.231817 0.173421 0.056627 0.426119 0.193063 0.092550 0.114139 +0.285714 +0 0.353920 0 0.219430 0.164573 0.049549 0.357813 0.169528 0.084410 0.090250 +0.250000 +0.353920 0 0 0.192886 0.150416 0.047779 0.298885 0.132012 0.074323 0.083171 +0.321429 +0.353920 0 0 0.221200 0.178729 0.076093 0.511591 0.175544 0.101575 0.153955 +0.750000 +0 0.353920 0 0.169881 0.138029 0.044240 0.244382 0.077508 0.054858 0.070784 +0.392857 +0 0 0.353920 0.155725 0.113254 0.037162 0.137144 0.062113 0.026190 0.042470 +0.285714 +0 0.353920 0 0.184038 0.141568 0.044240 0.242966 0.104406 0.060697 0.065475 +0.285714 +0 0 0.353920 0.127411 0.093789 0.030083 0.066006 0.023890 0.013095 0.021766 +0.214286 +0.353920 0 0 0.221200 0.173421 0.065475 0.413732 0.186693 0.089719 0.121748 +0.357143 +0.353920 0 0 0.230048 0.171651 0.056627 0.615643 0.202265 0.098567 0.108830 +0.321429 +0 0.353920 0 0.208813 0.161033 0.051318 0.376217 0.182446 0.086533 0.088480 +0.250000 +0 0 0.353920 0.141568 0.109715 0.035392 0.108299 0.046010 0.021235 0.033268 +0.178571 +0 0.353920 0 0.263670 0.201734 0.076093 0.796319 0.409308 0.157848 0.197487 +0.285714 +0.353920 0 0 0.222969 0.166342 0.051318 0.389489 0.184038 0.092019 0.097682 +0.285714 +0 0 0.353920 0.127411 0.095558 0.031853 0.082109 0.042470 0.015396 0.019820 +0.250000 +0 0.353920 0 0.254822 0.192886 0.065475 0.608211 0.280481 0.141922 0.165634 +0.357143 +0 0.353920 0 0.127411 0.095558 0.031853 0.066714 0.029906 0.013626 0.019466 +0.142857 +0 0 0.353920 0.184038 0.143337 0.049549 0.204389 0.070784 0.051318 0.063352 +0.357143 +0 0 0.353920 0.109715 0.083171 0.031853 0.044948 0.016988 0.010972 0.014157 +0.178571 +0.353920 0 0 0.182269 0.141568 0.049549 0.224208 0.101929 0.051318 0.059459 +0.285714 +0.353920 0 0 0.157494 0.120333 0.042470 0.158379 0.068306 0.036631 0.046010 +0.285714 +0 0.353920 0 0.221200 0.184038 0.063706 0.479207 0.171474 0.124226 0.132720 +0.357143 +0.353920 0 0 0.169881 0.130950 0.047779 0.223500 0.121925 0.035923 0.056981 +0.214286 +0 0 0.353920 0.182269 0.148646 0.047779 0.251637 0.119271 0.050964 0.072554 +0.428571 +0 0.353920 0 0.249513 0.192886 0.063706 0.544859 0.215006 0.130065 0.164396 +0.428571 +0 0 0.353920 0.198195 0.150416 0.049549 0.324721 0.141745 0.069899 0.092019 +0.321429 +0 0.353920 0 0.182269 0.139798 0.058397 0.267740 0.067422 0.060166 0.113431 +0.321429 +0 0.353920 0 0.214121 0.164573 0.054858 0.389312 0.193594 0.094320 0.091488 +0.321429 +0 0.353920 0 0.199965 0.169881 0.061936 0.338701 0.137498 0.076093 0.097328 +0.607143 +0.353920 0 0 0.237126 0.185808 0.063706 0.527871 0.257654 0.121394 0.134843 +0.285714 +0 0 0.353920 0.157494 0.116793 0.038931 0.126703 0.053973 0.023713 0.041939 +0.250000 +0 0 0.353920 0.184038 0.146877 0.056627 0.210582 0.074500 0.050257 0.092019 +0.500000 +0.353920 0 0 0.221200 0.173421 0.058397 0.418864 0.182976 0.084056 0.138029 +0.357143 +0 0.353920 0 0.168112 0.129181 0.046010 0.170058 0.067422 0.040347 0.052203 +0.392857 +0 0.353920 0 0.169881 0.134489 0.042470 0.215183 0.095735 0.049726 0.065475 +0.250000 +0 0.353920 0 0.203504 0.159264 0.042470 0.339232 0.158202 0.059812 0.097328 +0.392857 +0 0 0.353920 0.130950 0.097328 0.035392 0.081225 0.031322 0.016457 0.024774 +0.214286 +0 0 0.353920 0.099098 0.076093 0.028314 0.046717 0.025482 0.007786 0.011679 +0.142857 +0 0.353920 0 0.194656 0.152185 0.054858 0.277827 0.102283 0.080340 0.082463 +0.357143 +0 0 0.353920 0.182269 0.127411 0.044240 0.167227 0.064236 0.044240 0.048841 +0.285714 +0.353920 0 0 0.247744 0.185808 0.061936 0.622368 0.309503 0.127942 0.166342 +0.321429 +0 0.353920 0 0.254822 0.203504 0.060166 0.684304 0.323129 0.137675 0.180499 +0.428571 +0.353920 0 0 0.205273 0.152185 0.044240 0.322598 0.157848 0.073438 0.042824 +0.321429 +0.353920 0 0 0.083171 0.056627 0.021235 0.019289 0.009379 0.003362 0.005309 +0.107143 +0 0 0.353920 0.215891 0.169881 0.058397 0.388250 0.149177 0.093435 0.118563 +0.428571 +0 0.353920 0 0.201734 0.153955 0.049549 0.286144 0.114493 0.064767 0.077862 +0.535714 +0 0.353920 0 0.228278 0.176960 0.060166 0.419218 0.170058 0.096974 0.125641 +0.428571 +0.353920 0 0 0.237126 0.184038 0.058397 0.491948 0.251637 0.101398 0.106176 +0.357143 +0 0.353920 0 0.189347 0.157494 0.044240 0.308795 0.147584 0.070430 0.084941 +0.250000 +0 0.353920 0 0.230048 0.180499 0.065475 0.486640 0.187931 0.135905 0.141037 +0.321429 +0 0 0.353920 0.116793 0.081402 0.030083 0.059989 0.027960 0.009202 0.017873 +0.178571 +0 0 0.353920 0.176960 0.141568 0.042470 0.218015 0.092373 0.050611 0.068483 +0.250000 +0.353920 0 0 0.169881 0.136259 0.051318 0.226509 0.103521 0.049726 0.055742 +0.178571 +0 0 0.353920 0.155725 0.118563 0.038931 0.137498 0.061936 0.029552 0.039285 +0.214286 +0.353920 0 0 0.194656 0.143337 0.049549 0.284021 0.086356 0.057866 0.090250 +0.321429 +0.353920 0 0 0.171651 0.139798 0.049549 0.222792 0.080871 0.044948 0.079632 +0.464286 +0 0.353920 0 0.247744 0.192886 0.046010 0.550699 0.238011 0.132366 0.069014 +0.392857 +0.353920 0 0 0.201734 0.159264 0.049549 0.281366 0.119802 0.052380 0.086710 +0.285714 +0 0 0.353920 0.130950 0.102637 0.033622 0.088126 0.036985 0.020527 0.023713 +0.178571 +0.353920 0 0 0.212352 0.164573 0.058397 0.367369 0.176075 0.078039 0.088834 +0.285714 +0.353920 0 0 0.214121 0.161033 0.056627 0.390550 0.149000 0.106707 0.115024 +0.285714 +0 0.353920 0 0.199965 0.162803 0.053088 0.310211 0.122279 0.068130 0.097328 +0.321429 +0.353920 0 0 0.222969 0.175190 0.056627 0.386834 0.175898 0.078216 0.111485 +0.392857 +0.353920 0 0 0.210582 0.166342 0.054858 0.425234 0.174128 0.136790 0.093789 +0.321429 +0 0.353920 0 0.178729 0.138029 0.061936 0.244912 0.094497 0.053088 0.076093 +0.392857 +0 0 0.353920 0.203504 0.153955 0.046010 0.284905 0.111662 0.076270 0.086710 +0.321429 +0.353920 0 0 0.221200 0.173421 0.058397 0.395151 0.173244 0.092550 0.117678 +0.357143 +0 0.353920 0 0.217661 0.176960 0.058397 0.469651 0.212352 0.106707 0.125641 +0.321429 +0.353920 0 0 0.194656 0.153955 0.056627 0.320651 0.121041 0.077508 0.104406 +0.428571 +0 0 0.353920 0.127411 0.097328 0.038931 0.082640 0.033622 0.018581 0.030083 +0.321429 +0 0 0.353920 0.184038 0.145107 0.049549 0.234472 0.098213 0.055035 0.069368 +0.357143 +0 0.353920 0 0.175190 0.136259 0.046010 0.244382 0.110600 0.063352 0.061936 +0.321429 +0.353920 0 0 0.178729 0.136259 0.053088 0.227039 0.087064 0.053796 0.076093 +0.392857 +0.353920 0 0 0.217661 0.168112 0.060166 0.418510 0.167758 0.102460 0.084941 +0.357143 +0 0.353920 0 0.184038 0.145107 0.056627 0.251991 0.100690 0.054150 0.079632 +0.321429 +0 0 0.353920 0.148646 0.109715 0.035392 0.101398 0.040701 0.026013 0.030083 +0.250000 +0.353920 0 0 0.201734 0.148646 0.054858 0.356751 0.133428 0.068306 0.120333 +0.428571 +0 0.353920 0 0.143337 0.109715 0.042470 0.109538 0.048841 0.020527 0.033622 +0.428571 +0 0.353920 0 0.247744 0.207043 0.065475 0.639710 0.249690 0.113785 0.168112 +1 +0 0 0.353920 0.185808 0.141568 0.046010 0.228101 0.122102 0.045479 0.070784 +0.250000 +0.353920 0 0 0.254822 0.194656 0.072554 0.766236 0.391258 0.185808 0.142984 +0.321429 +0.353920 0 0 0.251283 0.191117 0.058397 0.693329 0.271279 0.092373 0.276057 +0.607143 +0 0.353920 0 0.192886 0.157494 0.061936 0.301717 0.122633 0.066891 0.104406 +0.428571 +0 0 0.353920 0.168112 0.125641 0.037162 0.165634 0.071138 0.039462 0.042470 +0.250000 +0.353920 0 0 0.189347 0.153955 0.054858 0.315519 0.120864 0.062644 0.088480 +0.428571 +0 0.353920 0 0.237126 0.180499 0.054858 0.452309 0.198372 0.107769 0.126703 +0.357143 +0 0.353920 0 0.191117 0.148646 0.051318 0.306317 0.152716 0.057689 0.076978 +0.321429 +0.353920 0 0 0.261901 0.205273 0.072554 0.842683 0.288621 0.166165 0.172713 +0.392857 +0 0.353920 0 0.207043 0.161033 0.060166 0.351973 0.150593 0.093081 0.100690 +0.357143 +0 0 0.353920 0.095558 0.070784 0.024774 0.035392 0.012033 0.008671 0.012387 +0.142857 +0.353920 0 0 0.228278 0.184038 0.061936 0.579013 0.275703 0.121041 0.152893 +0.357143 +0 0 0.353920 0.118563 0.088480 0.028314 0.059989 0.024597 0.015572 0.017519 +0.178571 +0.353920 0 0 0.185808 0.139798 0.046010 0.270218 0.119448 0.050434 0.079632 +0.250000 +0 0 0.353920 0.194656 0.150416 0.053088 0.226155 0.095204 0.047602 0.076801 +0.285714 +0 0.353920 0 0.187577 0.150416 0.046010 0.268448 0.115024 0.069722 0.072554 +0.250000 +0 0 0.353920 0.046010 0.035392 0.010618 0.004601 0.001593 0.001062 0.001416 +0.071429 +0.353920 0 0 0.212352 0.175190 0.061936 0.456556 0.214475 0.097682 0.121925 +0.357143 +0.353920 0 0 0.196425 0.155725 0.053088 0.386480 0.147231 0.075031 0.155902 +0.500000 +0.353920 0 0 0.215891 0.169881 0.049549 0.364891 0.154840 0.092550 0.095558 +0.250000 +0 0 0.353920 0.161033 0.130950 0.044240 0.153247 0.071138 0.044771 0.051318 +0.285714 +0 0 0.353920 0.139798 0.102637 0.033622 0.106176 0.055919 0.024067 0.027606 +0.214286 +0.353920 0 0 0.189347 0.148646 0.044240 0.261193 0.125641 0.067068 0.063529 +0.250000 +0 0 0.353920 0.184038 0.138029 0.049549 0.259246 0.085472 0.050964 0.092019 +0.642857 +0.353920 0 0 0.192886 0.153955 0.051318 0.332154 0.130419 0.044063 0.122102 +0.357143 +0 0.353920 0 0.210582 0.171651 0.051318 0.442930 0.178199 0.103521 0.116793 +0.464286 +0 0 0.353920 0.208813 0.159264 0.051318 0.361706 0.151478 0.094850 0.093789 +0.321429 +0 0 0.353920 0.198195 0.161033 0.051318 0.344718 0.193594 0.057158 0.083171 +0.285714 +0 0.353920 0 0.214121 0.182269 0.060166 0.456202 0.212352 0.104229 0.117324 +0.285714 +0 0 0.353920 0.138029 0.109715 0.030083 0.121748 0.064059 0.024597 0.027960 +0.214286 +0 0 0.353920 0.146877 0.116793 0.031853 0.127234 0.060166 0.028667 0.031853 +0.178571 +0.353920 0 0 0.207043 0.152185 0.056627 0.337993 0.128296 0.062290 0.095558 +0.357143 +0 0.353920 0 0.240665 0.180499 0.070784 0.568926 0.252699 0.119979 0.166519 +0.357143 +0.353920 0 0 0.207043 0.164573 0.058397 0.313219 0.142453 0.057512 0.096974 +0.321429 +0 0 0.353920 0.123872 0.095558 0.031853 0.072730 0.026544 0.020350 0.021943 +0.178571 +0 0 0.353920 0.092019 0.076093 0.028314 0.035038 0.013095 0.009025 0.015926 +0.142857 +0 0.353920 0 0.150416 0.118563 0.033622 0.113962 0.042647 0.021589 0.044240 +0.321429 +0 0 0.353920 0.058397 0.042470 0.017696 0.007432 0.002654 0.001593 0.004955 +0.071429 +0.353920 0 0 0.222969 0.171651 0.058397 0.436383 0.232348 0.081932 0.107415 +0.321429 +0.353920 0 0 0.191117 0.148646 0.067245 0.242612 0.103698 0.057689 0.134489 +0.321429 +0 0.353920 0 0.185808 0.143337 0.056627 0.232879 0.093966 0.039816 0.079632 +0.392857 +0.353920 0 0 0.159264 0.118563 0.049549 0.163688 0.058043 0.026898 0.053088 +0.464286 +0.353920 0 0 0.182269 0.141568 0.044240 0.337993 0.120687 0.089719 0.092019 +0.428571 +0 0.353920 0 0.207043 0.166342 0.060166 0.388958 0.140683 0.082286 0.126703 +0.678571 +0 0 0.353920 0.145107 0.118563 0.038931 0.116793 0.055565 0.024951 0.060166 +0.214286 +0 0.353920 0 0.187577 0.146877 0.040701 0.209343 0.082463 0.056096 0.063706 +0.357143 +0.353920 0 0 0.141568 0.107945 0.030083 0.105114 0.038223 0.024951 0.035392 +0.321429 +0.353920 0 0 0.231817 0.185808 0.056627 0.516723 0.242789 0.110069 0.143337 +0.357143 +0 0 0.353920 0.113254 0.084941 0.031853 0.055742 0.024774 0.009379 0.015042 +0.142857 +0 0 0.353920 0.155725 0.120333 0.037162 0.121748 0.043532 0.028667 0.044240 +0.250000 +0.353920 0 0 0.230048 0.184038 0.067245 0.475845 0.183684 0.108299 0.158025 +0.535714 +0 0 0.353920 0.184038 0.145107 0.049549 0.247390 0.120156 0.045656 0.068837 +0.321429 +0 0 0.353920 0.168112 0.136259 0.038931 0.202973 0.110069 0.036277 0.048133 +0.214286 +0 0.353920 0 0.244205 0.191117 0.069014 0.443284 0.258361 0.140683 0.163511 +0.392857 +0.353920 0 0 0.173421 0.164573 0.044240 0.184923 0.083171 0.046010 0.049903 +0.214286 +0 0 0.353920 0.146877 0.111485 0.035392 0.129004 0.062467 0.028137 0.033622 +0.250000 +0 0.353920 0 0.214121 0.171651 0.058397 0.379933 0.154663 0.072554 0.116793 +0.464286 +0 0 0.353920 0.100867 0.076093 0.024774 0.038046 0.018050 0.007963 0.009556 +0.178571 +0.353920 0 0 0.176960 0.138029 0.044240 0.184569 0.087949 0.041409 0.046363 +0.178571 +0 0 0.353920 0.136259 0.102637 0.031853 0.083702 0.035392 0.017873 0.026898 +0.250000 +0.353920 0 0 0.230048 0.182269 0.063706 0.471244 0.200495 0.122810 0.143337 +0.428571 +0.353920 0 0 0.192886 0.153955 0.058397 0.352327 0.114847 0.094320 0.115024 +0.642857 +0.353920 0 0 0.176960 0.134489 0.044240 0.204212 0.095204 0.044771 0.054327 +0.285714 +0.353920 0 0 0.231817 0.191117 0.076093 0.652628 0.262785 0.115732 0.207043 +0.750000 +0 0 0.353920 0.194656 0.157494 0.038931 0.280835 0.133782 0.050257 0.092019 +0.321429 +0 0 0.353920 0.150416 0.113254 0.030083 0.092727 0.043709 0.023713 0.025659 +0.250000 +0 0 0.353920 0.106176 0.077862 0.023005 0.042293 0.018404 0.005486 0.012387 +0.142857 +0 0.353920 0 0.233587 0.185808 0.056627 0.451955 0.176075 0.112900 0.139444 +0.428571 +0.353920 0 0 0.145107 0.115024 0.042470 0.132543 0.055919 0.028667 0.044240 +0.392857 +0 0 0.353920 0.198195 0.157494 0.058397 0.364006 0.160503 0.089542 0.097328 +0.357143 +0 0.353920 0 0.244205 0.194656 0.063706 0.587153 0.308441 0.093966 0.155548 +0.285714 +0 0 0.353920 0.185808 0.141568 0.049549 0.246151 0.085118 0.056627 0.089542 +0.321429 +0 0.353920 0 0.258361 0.194656 0.072554 0.675279 0.191647 0.126172 0.211113 +0.464286 +0 0.353920 0 0.205273 0.161033 0.042470 0.379933 0.169528 0.096797 0.093789 +0.321429 +0 0.353920 0 0.212352 0.171651 0.058397 0.403645 0.207751 0.076978 0.101929 +0.285714 +0 0 0.353920 0.097328 0.070784 0.023005 0.036631 0.016811 0.007255 0.010618 +0.214286 +0 0 0.353920 0.194656 0.159264 0.049549 0.266502 0.121925 0.046894 0.084941 +0.250000 +0.353920 0 0 0.221200 0.178729 0.065475 0.409308 0.184038 0.085118 0.125111 +0.321429 +0.353920 0 0 0.212352 0.171651 0.061936 0.448593 0.176783 0.099628 0.134489 +0.428571 +0 0.353920 0 0.228278 0.169881 0.067245 0.485224 0.245089 0.102814 0.123872 +0.392857 +0.353920 0 0 0.185808 0.141568 0.049549 0.254999 0.130419 0.051318 0.061405 +0.250000 +0 0 0.353920 0.194656 0.150416 0.051318 0.314988 0.153070 0.060520 0.083525 +0.321429 +0 0.353920 0 0.222969 0.171651 0.060166 0.467351 0.210405 0.122102 0.122102 +0.285714 +0 0 0.353920 0.088480 0.061936 0.021235 0.022474 0.009733 0.002831 0.007078 +0.107143 +0 0.353920 0 0.249513 0.194656 0.070784 0.605026 0.224031 0.145638 0.173421 +0.428571 +0 0 0.353920 0.157494 0.127411 0.038931 0.149885 0.064413 0.027075 0.049549 +0.285714 +0 0.353920 0 0.217661 0.176960 0.072554 0.391258 0.157317 0.080340 0.138029 +0.535714 +0.353920 0 0 0.233587 0.182269 0.058397 0.511945 0.245620 0.105468 0.132897 +0.321429 +0.353920 0 0 0.150416 0.115024 0.042470 0.132897 0.050257 0.037692 0.037162 +0.285714 +0.353920 0 0 0.166342 0.130950 0.063706 0.180499 0.067776 0.045479 0.057512 +0.285714 +0.353920 0 0 0.261901 0.189347 0.065475 0.583967 0.259777 0.159441 0.118563 +0.428571 +0.353920 0 0 0.224739 0.185808 0.065475 0.497788 0.242081 0.106176 0.132543 +0.321429 +0 0.353920 0 0.237126 0.178729 0.072554 0.482923 0.215006 0.107061 0.124934 +0.285714 +0.353920 0 0 0.215891 0.166342 0.056627 0.361706 0.158910 0.082994 0.104229 +0.285714 +0.353920 0 0 0.187577 0.153955 0.047779 0.260662 0.115909 0.046540 0.077862 +0.392857 +0.353920 0 0 0.245974 0.205273 0.070784 0.672270 0.238896 0.169174 0.187400 +0.428571 +0 0.353920 0 0.180499 0.134489 0.046010 0.206689 0.079278 0.047956 0.065475 +0.428571 +0 0.353920 0 0.166342 0.127411 0.035392 0.166519 0.057866 0.031499 0.049018 +0.250000 +0 0.353920 0 0.205273 0.155725 0.044240 0.278004 0.128473 0.069191 0.069014 +0.357143 +0 0.353920 0 0.221200 0.148646 0.058397 0.374978 0.126703 0.058397 0.157494 +0.714286 +0.353920 0 0 0.214121 0.157494 0.049549 0.347549 0.152009 0.073792 0.104406 +0.392857 +0.353920 0 0 0.219430 0.171651 0.054858 0.364360 0.150416 0.081932 0.118563 +0.392857 +0.353920 0 0 0.224739 0.182269 0.056627 0.427358 0.190586 0.099805 0.122102 +0.357143 +0.353920 0 0 0.162803 0.127411 0.047779 0.216068 0.069191 0.037869 0.083171 +0.464286 +0 0.353920 0 0.212352 0.162803 0.051318 0.330030 0.141037 0.079455 0.087772 +0.250000 +0.353920 0 0 0.235357 0.182269 0.058397 0.490356 0.219784 0.106884 0.121925 +0.250000 +0.353920 0 0 0.251283 0.198195 0.077862 0.713148 0.326137 0.160680 0.200319 +0.357143 +0 0 0.353920 0.067245 0.046010 0.015926 0.009379 0.003185 0.001770 0.003185 +0.142857 +0.353920 0 0 0.251283 0.203504 0.076093 0.711025 0.350203 0.158379 0.177668 +0.357143 +0 0 0.353920 0.175190 0.136259 0.044240 0.207043 0.097505 0.043709 0.058397 +0.250000 +0 0.353920 0 0.226509 0.182269 0.072554 0.542736 0.234826 0.118386 0.142453 +0.285714 +0.353920 0 0 0.184038 0.159264 0.053088 0.316758 0.127942 0.065829 0.083171 +0.464286 +0 0 0.353920 0.182269 0.139798 0.044240 0.234826 0.113254 0.049549 0.060166 +0.250000 +0 0 0.353920 0.122102 0.095558 0.038931 0.075562 0.029021 0.019289 0.024774 +0.214286 +0.353920 0 0 0.116793 0.086710 0.030083 0.060520 0.023182 0.012918 0.019466 +0.357143 +0.353920 0 0 0.219430 0.176960 0.058397 0.462573 0.224916 0.090073 0.111485 +0.285714 +0.353920 0 0 0.189347 0.155725 0.053088 0.239427 0.090603 0.049195 0.092019 +0.392857 +0 0 0.353920 0.134489 0.097328 0.033622 0.085826 0.037515 0.017165 0.074323 +0.178571 +0 0.353920 0 0.199965 0.161033 0.061936 0.358521 0.121041 0.073261 0.123872 +0.642857 +0 0.353920 0 0.231817 0.187577 0.058397 0.454256 0.206335 0.044417 0.141568 +0.250000 +0.353920 0 0 0.276057 0.212352 0.074323 0.901787 0.422757 0.203327 0.238719 +0.357143 +0 0.353920 0 0.168112 0.132720 0.049549 0.177314 0.067953 0.041586 0.061936 +0.428571 +0 0 0.353920 0.164573 0.120333 0.038931 0.122456 0.050434 0.025836 0.039993 +0.357143 +0.353920 0 0 0.176960 0.136259 0.047779 0.227393 0.113077 0.045656 0.054327 +0.214286 +0 0.353920 0 0.201734 0.157494 0.054858 0.359936 0.186339 0.071669 0.093789 +0.321429 +0.353920 0 0 0.212352 0.159264 0.051318 0.310388 0.153070 0.054858 0.084941 +0.285714 +0.353920 0 0 0.247744 0.194656 0.061936 0.509821 0.232348 0.105645 0.132720 +0.392857 +0 0.353920 0 0.178729 0.138029 0.042470 0.202619 0.090426 0.046894 0.051672 +0.250000 +0.353920 0 0 0.221200 0.175190 0.065475 0.489648 0.251460 0.106353 0.122102 +0.357143 +0.353920 0 0 0.212352 0.162803 0.054858 0.235534 0.100867 0.052734 0.095204 +0.357143 +0.353920 0 0 0.134489 0.106176 0.035392 0.088657 0.037515 0.018935 0.027429 +0.250000 +0.353920 0 0 0.157494 0.113254 0.042470 0.146523 0.070430 0.031853 0.041409 +0.214286 +0 0 0.353920 0.116793 0.093789 0.030083 0.069368 0.027429 0.010795 0.015749 +0.178571 +0 0.353920 0 0.201734 0.162803 0.060166 0.389312 0.145992 0.078039 0.134489 +0.464286 +0 0.353920 0 0.231817 0.182269 0.070784 0.528756 0.256769 0.109361 0.143337 +0.392857 +0 0 0.353920 0.150416 0.115024 0.038931 0.143337 0.059989 0.032561 0.037692 +0.250000 +0.353920 0 0 0.182269 0.130950 0.040701 0.217484 0.120864 0.054858 0.051672 +0.285714 +0 0.353920 0 0.233587 0.185808 0.070784 0.517784 0.230933 0.105999 0.149354 +0.357143 +0 0 0.353920 0.152185 0.116793 0.035392 0.158910 0.089896 0.029198 0.034330 +0.178571 +0 0 0.353920 0.208813 0.166342 0.051318 0.344718 0.160326 0.083525 0.102283 +0.250000 +0.353920 0 0 0.122102 0.095558 0.031853 0.069014 0.027606 0.016103 0.020881 +0.285714 +0 0 0.353920 0.145107 0.107945 0.035392 0.093612 0.035392 0.023182 0.030083 +0.214286 +0 0 0.353920 0.191117 0.150416 0.046010 0.288621 0.130065 0.048310 0.087064 +0.357143 +0.353920 0 0 0.221200 0.175190 0.061936 0.457795 0.205450 0.112193 0.125641 +0.285714 +0 0.353920 0 0.201734 0.153955 0.053088 0.293576 0.137144 0.055211 0.086710 +0.321429 +0.353920 0 0 0.217661 0.173421 0.060166 0.405238 0.173952 0.073615 0.121394 +0.428571 +0 0.353920 0 0.164573 0.123872 0.047779 0.221731 0.091665 0.051141 0.061936 +0.250000 +0 0.353920 0 0.168112 0.138029 0.042470 0.187754 0.075562 0.040878 0.060166 +0.321429 +0 0.353920 0 0.187577 0.143337 0.053088 0.314635 0.143514 0.080517 0.076093 +0.250000 +0.353920 0 0 0.123872 0.090250 0.023005 0.063352 0.024951 0.013626 0.021235 +0.321429 +0 0 0.353920 0.146877 0.111485 0.037162 0.116793 0.049726 0.024951 0.033622 +0.178571 +0 0 0.353920 0.123872 0.092019 0.026544 0.063706 0.031853 0.008671 0.019466 +0.142857 +0 0.353920 0 0.230048 0.185808 0.067245 0.490179 0.314104 0.109538 0.143337 +0.357143 +0 0.353920 0 0.237126 0.192886 0.056627 0.545567 0.211821 0.090780 0.175190 +0.500000 +0 0 0.353920 0.113254 0.083171 0.023005 0.049018 0.020527 0.007963 0.017696 +0.142857 +0 0.353920 0 0.215891 0.173421 0.060166 0.476907 0.249336 0.088480 0.107769 +0.357143 +0.353920 0 0 0.203504 0.168112 0.051318 0.303309 0.129712 0.061228 0.095204 +0.285714 +0.353920 0 0 0.159264 0.123872 0.046010 0.164750 0.073438 0.036985 0.047779 +0.250000 +0.353920 0 0 0.185808 0.145107 0.046010 0.243320 0.121571 0.052911 0.062467 +0.285714 +0 0.353920 0 0.192886 0.155725 0.053088 0.335339 0.129535 0.084587 0.097328 +0.250000 +0 0.353920 0 0.219430 0.178729 0.056627 0.485755 0.222438 0.097328 0.130419 +0.357143 +0.353920 0 0 0.115024 0.081402 0.031853 0.052026 0.021235 0.012033 0.015926 +0.107143 +0 0.353920 0 0.207043 0.159264 0.056627 0.320120 0.143337 0.078393 0.082640 +0.250000 +0 0 0.353920 0.166342 0.125641 0.040701 0.147054 0.059105 0.029729 0.049195 +0.214286 +0 0.353920 0 0.217661 0.176960 0.061936 0.487347 0.197664 0.116793 0.103345 +0.392857 +0.353920 0 0 0.176960 0.143337 0.049549 0.217838 0.085295 0.047956 0.072554 +0.285714 +0.353920 0 0 0.268979 0.214121 0.076093 0.769067 0.283490 0.173952 0.228632 +0.428571 +0.353920 0 0 0.159264 0.115024 0.040701 0.152362 0.079101 0.027783 0.040878 +0.250000 +0 0 0.353920 0.192886 0.152185 0.046010 0.268802 0.126703 0.054150 0.072730 +0.250000 +0 0.353920 0 0.155725 0.120333 0.046010 0.148469 0.054150 0.040878 0.046010 +0.321429 +0.353920 0 0 0.214121 0.166342 0.056627 0.415325 0.176075 0.085118 0.122102 +0.392857 +0.353920 0 0 0.254822 0.192886 0.069014 0.618475 0.290745 0.135551 0.166519 +0.357143 +0.353920 0 0 0.256592 0.199965 0.076093 0.669262 0.246859 0.167227 0.205273 +0.535714 +0.353920 0 0 0.208813 0.166342 0.063706 0.420103 0.211821 0.080340 0.109715 +0.285714 +0.353920 0 0 0.245974 0.201734 0.070784 0.719519 0.265794 0.150593 0.242435 +0.500000 +0 0 0.353920 0.111485 0.084941 0.024774 0.048487 0.019289 0.011148 0.014157 +0.250000 +0 0.353920 0 0.182269 0.132720 0.038931 0.214652 0.106353 0.046363 0.053088 +0.178571 +0 0.353920 0 0.214121 0.166342 0.058397 0.416740 0.216245 0.080517 0.103345 +0.285714 +0 0 0.353920 0.141568 0.102637 0.035392 0.094674 0.042647 0.021412 0.027075 +0.142857 +0 0 0.353920 0.139798 0.104406 0.035392 0.096089 0.047425 0.011502 0.030083 +0.321429 +0 0.353920 0 0.180499 0.141568 0.046010 0.202973 0.077508 0.048310 0.069014 +0.428571 +0.353920 0 0 0.210582 0.161033 0.069014 0.470890 0.162626 0.114493 0.122102 +0.642857 +0 0 0.353920 0.205273 0.166342 0.053088 0.321005 0.157140 0.065652 0.086533 +0.357143 +0.353920 0 0 0.146877 0.111485 0.044240 0.137321 0.024067 0.031853 0.044240 +0.392857 +0 0 0.353920 0.092019 0.072554 0.024774 0.034330 0.014688 0.006724 0.010795 +0.107143 +0 0.353920 0 0.196425 0.153955 0.058397 0.343302 0.118917 0.081932 0.104406 +0.571429 +0.353920 0 0 0.231817 0.184038 0.063706 0.528048 0.254291 0.127411 0.125641 +0.357143 +0.353920 0 0 0.231817 0.189347 0.072554 0.582021 0.258538 0.127234 0.162803 +0.428571 +0 0 0.353920 0.132720 0.102637 0.035392 0.077508 0.032738 0.013449 0.026544 +0.178571 +0.353920 0 0 0.208813 0.176960 0.058397 0.390904 0.161564 0.085826 0.120333 +0.500000 +0.353920 0 0 0.247744 0.187577 0.067245 0.466643 0.193948 0.082463 0.148646 +0.607143 +0.353920 0 0 0.155725 0.118563 0.038931 0.139444 0.055565 0.033976 0.043178 +0.285714 +0.353920 0 0 0.226509 0.180499 0.061936 0.484162 0.182269 0.094143 0.201734 +0.714286 +0.353920 0 0 0.233587 0.180499 0.061936 0.431074 0.178906 0.107238 0.130950 +0.357143 +0 0.353920 0 0.162803 0.116793 0.053088 0.188462 0.073792 0.063882 0.044240 +0.321429 +0 0 0.353920 0.136259 0.102637 0.028314 0.087949 0.043178 0.017519 0.023005 +0.214286 +0 0.353920 0 0.226509 0.184038 0.061936 0.441692 0.150239 0.091842 0.169881 +0.392857 +0 0 0.353920 0.056627 0.038931 0.008848 0.006901 0.002654 0.001770 0.002124 +0.107143 +0.353920 0 0 0.210582 0.169881 0.065475 0.417094 0.186162 0.105291 0.111131 +0.321429 +0.353920 0 0 0.230048 0.184038 0.074323 0.594054 0.235887 0.109007 0.162803 +0.357143 +0 0.353920 0 0.215891 0.175190 0.056627 0.385419 0.165988 0.070076 0.135905 +0.357143 +0 0.353920 0 0.152185 0.118563 0.042470 0.157140 0.054858 0.040524 0.049549 +0.428571 +0 0 0.353920 0.155725 0.107945 0.040701 0.134136 0.057335 0.032207 0.038931 +0.285714 +0 0.353920 0 0.207043 0.159264 0.053088 0.331977 0.165280 0.071846 0.079632 +0.214286 +0 0.353920 0 0.171651 0.129181 0.049549 0.219253 0.091842 0.051141 0.062644 +0.464286 +0 0 0.353920 0.159264 0.116793 0.040701 0.129181 0.049549 0.029198 0.044063 +0.250000 +0 0 0.353920 0.146877 0.115024 0.035392 0.165104 0.080871 0.037692 0.040347 +0.214286 +0.353920 0 0 0.207043 0.162803 0.051318 0.330384 0.169174 0.064590 0.083171 +0.285714 +0.353920 0 0 0.141568 0.106176 0.044240 0.147584 0.067599 0.031853 0.041586 +0.285714 +0 0 0.353920 0.176960 0.130950 0.042470 0.192709 0.088126 0.037692 0.053796 +0.250000 +0 0.353920 0 0.161033 0.125641 0.399929 0.210228 0.117501 0.041055 0.047248 +0.250000 +0.353920 0 0 0.176960 0.134489 0.047779 0.206512 0.081225 0.044771 0.063706 +0.392857 +0 0 0.353920 0.056627 0.038931 0.008848 0.006371 0.002300 0.001947 0.001770 +0.071429 +0.353920 0 0 0.175190 0.132720 0.040701 0.221023 0.099805 0.050611 0.054858 +0.178571 +0 0 0.353920 0.164573 0.122102 0.038931 0.156256 0.062113 0.032030 0.042470 +0.214286 +0 0.353920 0 0.224739 0.176960 0.063706 0.464343 0.187223 0.087949 0.171651 +0.607143 +0 0.353920 0 0.130950 0.102637 0.040701 0.088480 0.039285 0.020173 0.026544 +0.285714 +0.353920 0 0 0.207043 0.180499 0.056627 0.431074 0.226155 0.085295 0.106176 +0.357143 +0.353920 0 0 0.203504 0.153955 0.049549 0.299239 0.141922 0.067599 0.078570 +0.285714 +0 0.353920 0 0.265440 0.201734 0.074323 0.791364 0.392497 0.183861 0.192886 +0.357143 +0 0.353920 0 0.244205 0.192886 0.072554 0.684127 0.278004 0.151832 0.176252 +0.428571 +0 0 0.353920 0.065475 0.046010 0.015926 0.010264 0.004247 0.002654 0.003362 +0.107143 +0 0 0.353920 0.214121 0.166342 0.049549 0.332331 0.119802 0.071138 0.113254 +0.428571 +0.353920 0 0 0.176960 0.141568 0.046010 0.273049 0.130950 0.056627 0.074677 +0.250000 +0 0.353920 0 0.191117 0.148646 0.049549 0.284905 0.130596 0.061051 0.074323 +0.357143 +0.353920 0 0 0.178729 0.138029 0.040701 0.197664 0.091134 0.042116 0.054327 +0.250000 +0 0.353920 0 0.196425 0.155725 0.051318 0.311980 0.152185 0.069899 0.076270 +0.250000 +0.353920 0 0 0.176960 0.146877 0.058397 0.243674 0.088126 0.048841 0.088480 +0.428571 +0 0.353920 0 0.217661 0.184038 0.053088 0.475491 0.222615 0.092196 0.122102 +0.321429 +0.353920 0 0 0.182269 0.150416 0.051318 0.331446 0.175898 0.064059 0.077331 +0.250000 +0 0.353920 0 0.226509 0.169881 0.051318 0.394443 0.179791 0.084941 0.120333 +0.321429 +0 0 0.353920 0.173421 0.138029 0.042470 0.180853 0.078039 0.036454 0.061759 +0.285714 +0 0 0.353920 0.185808 0.143337 0.044240 0.232525 0.105645 0.053265 0.059459 +0.321429 +0 0.353920 0 0.138029 0.102637 0.044240 0.108122 0.042824 0.029021 0.031853 +0.214286 +0 0.353920 0 0.205273 0.162803 0.053088 0.394797 0.197310 0.079809 0.102637 +0.214286 +0.353920 0 0 0.164573 0.120333 0.037162 0.172005 0.081755 0.036631 0.043355 +0.285714 +0 0 0.353920 0.083171 0.061936 0.014157 0.024951 0.011856 0.005309 0.007078 +0.142857 +0.353920 0 0 0.201734 0.159264 0.054858 0.422403 0.181561 0.074323 0.121394 +0.321429 +0 0 0.353920 0.152185 0.122102 0.040701 0.152009 0.075031 0.038223 0.038577 +0.250000 +0.353920 0 0 0.132720 0.099098 0.033622 0.078747 0.030968 0.015219 0.028314 +0.321429 +0.353920 0 0 0.182269 0.145107 0.049549 0.260308 0.108476 0.048487 0.070784 +0.214286 +0 0.353920 0 0.145107 0.107945 0.035392 0.128473 0.061405 0.023005 0.038931 +0.357143 +0 0.353920 0 0.245974 0.194656 0.056627 0.579190 0.245620 0.106353 0.155725 +0.428571 +0 0 0.353920 0.125641 0.095558 0.037162 0.095912 0.050434 0.018581 0.026013 +0.285714 +0.353920 0 0 0.247744 0.194656 0.070784 0.539020 0.245266 0.108299 0.155902 +0.428571 +0.353920 0 0 0.217661 0.178729 0.058397 0.413024 0.173244 0.104583 0.122102 +0.321429 +0 0.353920 0 0.159264 0.134489 0.058397 0.288975 0.088480 0.067776 0.093789 +0.785714 +0 0.353920 0 0.199965 0.157494 0.054858 0.292338 0.120687 0.072730 0.087595 +0.321429 +0 0 0.353920 0.162803 0.129181 0.040701 0.180853 0.083702 0.041763 0.043532 +0.214286 +0 0.353920 0 0.215891 0.171651 0.074323 0.475845 0.189347 0.078039 0.182269 +0.678571 +0 0 0.353920 0.125641 0.090250 0.028314 0.066183 0.027606 0.017873 0.020527 +0.214286 +0 0.353920 0 0.221200 0.171651 0.061936 0.486463 0.259600 0.096089 0.117501 +0.285714 +0 0 0.353920 0.164573 0.130950 0.040701 0.188993 0.092373 0.034684 0.050611 +0.214286 +0 0 0.353920 0.182269 0.146877 0.047779 0.252168 0.100867 0.053796 0.086710 +0.321429 +0 0 0.353920 0.208813 0.162803 0.051318 0.319059 0.148292 0.063175 0.092019 +0.357143 +0 0.353920 0 0.115024 0.092019 0.031853 0.067776 0.030083 0.012741 0.021943 +0.214286 +0 0.353920 0 0.231817 0.178729 0.067245 0.477261 0.210051 0.097151 0.150416 +0.392857 +0.353920 0 0 0.169881 0.132720 0.051318 0.274996 0.076447 0.046010 0.060166 +0.285714 +0.353920 0 0 0.189347 0.143337 0.049549 0.289506 0.142276 0.060697 0.066891 +0.214286 +0 0 0.353920 0.208813 0.159264 0.044240 0.304371 0.154663 0.053619 0.086710 +0.285714 +0.353920 0 0 0.210582 0.153955 0.056627 0.374093 0.150593 0.079278 0.109715 +0.285714 +0.353920 0 0 0.187577 0.152185 0.047779 0.311095 0.099098 0.076624 0.088480 +0.321429 +0 0.353920 0 0.233587 0.189347 0.072554 0.510175 0.209697 0.098213 0.173421 +0.321429 +0 0.353920 0 0.150416 0.123872 0.035392 0.156609 0.061936 0.026721 0.061936 +0.214286 +0 0 0.353920 0.139798 0.109715 0.030083 0.112193 0.054150 0.017873 0.033091 +0.214286 +0.353920 0 0 0.194656 0.155725 0.047779 0.311095 0.130242 0.074146 0.093789 +0.321429 +0 0.353920 0 0.235357 0.176960 0.053088 0.441515 0.163688 0.104583 0.127234 +0.321429 +0 0 0.353920 0.084941 0.061936 0.019466 0.024951 0.008848 0.004955 0.007432 +0.142857 +0.353920 0 0 0.180499 0.143337 0.046010 0.253937 0.131835 0.055919 0.060166 +0.285714 +0 0.353920 0 0.123872 0.097328 0.023005 0.072554 0.026367 0.016457 0.024774 +0.321429 +0 0.353920 0 0.237126 0.194656 0.054858 0.554238 0.303663 0.119979 0.125288 +0.321429 +0 0 0.353920 0.150416 0.111485 0.028314 0.107238 0.046363 0.020704 0.033622 +0.214286 +0 0.353920 0 0.189347 0.146877 0.065475 0.297823 0.111131 0.056096 0.106176 +0.500000 +0 0.353920 0 0.226509 0.191117 0.061936 0.556008 0.221908 0.095912 0.168112 +0.607143 +0.353920 0 0 0.180499 0.141568 0.046010 0.227747 0.095558 0.058928 0.072554 +0.392857 +0.353920 0 0 0.199965 0.150416 0.047779 0.287206 0.120687 0.059282 0.090250 +0.500000 +0 0 0.353920 0.157494 0.116793 0.035392 0.154663 0.057689 0.026721 0.060166 +0.428571 +0.353920 0 0 0.146877 0.115024 0.049549 0.147584 0.054327 0.035923 0.050964 +0.321429 +0 0 0.353920 0.168112 0.129181 0.035392 0.046540 0.071669 0.030968 0.043532 +0.214286 +0 0.353920 0 0.247744 0.196425 0.077862 0.589630 0.228986 0.151655 0.161033 +0.357143 +0 0 0.353920 0.138029 0.109715 0.037162 0.094320 0.041939 0.018581 0.028667 +0.250000 +0 0.353920 0 0.228278 0.182269 0.053088 0.428951 0.182269 0.072730 0.136259 +0.321429 +0 0.353920 0 0.230048 0.182269 0.069014 0.495665 0.183861 0.127411 0.155725 +0.428571 +0 0 0.353920 0.162803 0.122102 0.040701 0.149177 0.067068 0.036100 0.039285 +0.178571 +0 0 0.353920 0.189347 0.148646 0.051318 0.243674 0.096620 0.053619 0.083879 +0.285714 +0 0.353920 0 0.199965 0.157494 0.044240 0.293930 0.110954 0.063175 0.081402 +0.357143 +0 0 0.353920 0.194656 0.146877 0.053088 0.280127 0.125111 0.062290 0.083525 +0.321429 +0.353920 0 0 0.185808 0.153955 0.054858 0.376924 0.172005 0.082463 0.100867 +0.250000 +0.353920 0 0 0.217661 0.168112 0.072554 0.473191 0.212175 0.099628 0.130950 +0.357143 +0.353920 0 0 0.205273 0.161033 0.047779 0.281543 0.143337 0.059105 0.072200 +0.321429 +0.353920 0 0 0.224739 0.175190 0.053088 0.382587 0.170766 0.085649 0.109715 +0.357143 +0 0 0.353920 0.166342 0.132720 0.044240 0.184923 0.080163 0.036808 0.057335 +0.250000 +0 0 0.353920 0.166342 0.123872 0.044240 0.152716 0.067245 0.041232 0.041586 +0.178571 +0 0 0.353920 0.157494 0.122102 0.042470 0.142807 0.059812 0.029198 0.046010 +0.214286 +0 0.353920 0 0.176960 0.141568 0.058397 0.251460 0.095558 0.051495 0.079632 +0.678571 +0.353920 0 0 0.221200 0.168112 0.061936 0.474429 0.232171 0.100159 0.119271 +0.321429 +0 0 0.353920 0.198195 0.153955 0.046010 0.274996 0.125288 0.061228 0.078570 +0.285714 +0 0.353920 0 0.238896 0.185808 0.060166 0.605556 0.296054 0.124580 0.168112 +0.285714 +0.353920 0 0 0.208813 0.166342 0.053088 0.352327 0.170235 0.082109 0.084941 +0.250000 +0.353920 0 0 0.196425 0.141568 0.046010 0.250398 0.117501 0.056096 0.063706 +0.214286 +0 0 0.353920 0.162803 0.122102 0.042470 0.147054 0.070076 0.031322 0.037869 +0.214286 +0.353920 0 0 0.219430 0.159264 0.070784 0.303663 0.151655 0.053973 0.085118 +0.250000 +0 0.353920 0 0.159264 0.123872 0.047779 0.198195 0.081755 0.048487 0.051318 +0.428571 +0 0 0.353920 0.203504 0.168112 0.060166 0.342240 0.133605 0.100513 0.097328 +0.428571 +0.353920 0 0 0.231817 0.185808 0.063706 0.496195 0.220846 0.103875 0.129181 +0.428571 +0 0.353920 0 0.217661 0.164573 0.053088 0.326668 0.163334 0.064590 0.085472 +0.285714 +0.353920 0 0 0.215891 0.171651 0.060166 0.453371 0.211290 0.107415 0.116793 +0.285714 +0 0 0.353920 0.109715 0.083171 0.024774 0.053442 0.022297 0.014334 0.015926 +0.178571 +0.353920 0 0 0.159264 0.122102 0.037162 0.145638 0.063706 0.039816 0.047779 +0.214286 +0 0.353920 0 0.161033 0.127411 0.038931 0.155194 0.072907 0.034684 0.044240 +0.321429 +0.353920 0 0 0.189347 0.148646 0.058397 0.325429 0.118740 0.070253 0.092019 +0.535714 +0 0.353920 0 0.214121 0.175190 0.060166 0.438329 0.186870 0.087241 0.138029 +0.464286 +0.353920 0 0 0.175190 0.134489 0.042470 0.167758 0.069722 0.037692 0.054681 +0.321429 +0.353920 0 0 0.166342 0.134489 0.051318 0.207574 0.084410 0.050964 0.065475 +0.250000 +0 0.353920 0 0.245974 0.199965 0.067245 0.624137 0.264201 0.141214 0.176075 +0.357143 +0.353920 0 0 0.222969 0.171651 0.051318 0.375863 0.179260 0.063175 0.119094 +0.392857 +0.353920 0 0 0.196425 0.161033 0.056627 0.374270 0.138913 0.080694 0.103698 +0.428571 +0.353920 0 0 0.230048 0.175190 0.056627 0.427358 0.194656 0.095381 0.113254 +0.321429 +0 0.353920 0 0.180499 0.136259 0.047779 0.223677 0.099805 0.051318 0.060166 +0.250000 +0 0.353920 0 0.168112 0.134489 0.047779 0.172005 0.061405 0.024774 0.065475 +0.214286 +0 0.353920 0 0.217661 0.169881 0.056627 0.443284 0.207043 0.091842 0.116793 +0.250000 +0.353920 0 0 0.245974 0.194656 0.069014 0.589099 0.257300 0.127411 0.157494 +0.357143 +0 0.353920 0 0.221200 0.173421 0.070784 0.489294 0.208636 0.100867 0.134843 +0.357143 +0 0.353920 0 0.159264 0.118563 0.037162 0.150416 0.066006 0.032207 0.040701 +0.285714 +0 0.353920 0 0.228278 0.194656 0.061936 0.457087 0.201734 0.107769 0.116793 +0.464286 +0.353920 0 0 0.230048 0.185808 0.065475 0.574058 0.235180 0.114139 0.168820 +0.321429 +0 0 0.353920 0.148646 0.115024 0.044240 0.138560 0.055742 0.036277 0.040701 +0.285714 +0 0.353920 0 0.169881 0.136259 0.047779 0.189701 0.067068 0.050257 0.061228 +0.464286 +0 0 0.353920 0.155725 0.120333 0.042470 0.176783 0.104937 0.033445 0.041939 +0.178571 +0.353920 0 0 0.145107 0.111485 0.033622 0.108299 0.042824 0.026013 0.031853 +0.285714 +0.353920 0 0 0.219430 0.162803 0.060166 0.398867 0.189347 0.093258 0.104760 +0.214286 +0.353920 0 0 0.189347 0.143337 0.049549 0.258892 0.118917 0.055211 0.067245 +0.214286 +0.353920 0 0 0.175190 0.139798 0.044240 0.191647 0.084056 0.047602 0.054858 +0.285714 +0 0.353920 0 0.187577 0.148646 0.049549 0.221908 0.102814 0.041232 0.064767 +0.250000 +0.353920 0 0 0.233587 0.182269 0.054858 0.510175 0.249690 0.125818 0.118563 +0.321429 +0.353920 0 0 0.173421 0.138029 0.053088 0.202796 0.079632 0.043886 0.060166 +0.714286 +0.353920 0 0 0.219430 0.168112 0.065475 0.468944 0.213944 0.115024 0.116793 +0.428571 +0.353920 0 0 0.205273 0.159264 0.049549 0.358521 0.134489 0.076447 0.127411 +0.464286 +0 0 0.353920 0.168112 0.129181 0.049549 0.160856 0.060520 0.041763 0.055919 +0.250000 +0 0.353920 0 0.194656 0.134489 0.058397 0.426473 0.192178 0.104052 0.118386 +0.321429 +0 0 0.353920 0.061936 0.044240 0.014157 0.009910 0.003362 0.002831 0.003185 +0.107143 +0.353920 0 0 0.224739 0.173421 0.056627 0.389666 0.188993 0.066006 0.122279 +0.321429 +0 0.353920 0 0.166342 0.125641 0.049549 0.153247 0.053973 0.033622 0.053796 +0.392857 +0.353920 0 0 0.159264 0.125641 0.040701 0.169174 0.063706 0.041939 0.054858 +0.321429 +0.353920 0 0 0.240665 0.184038 0.069014 0.514422 0.209520 0.138383 0.145992 +0.321429 +0 0 0.353920 0.185808 0.134489 0.047779 0.217661 0.092373 0.056273 0.061936 +0.250000 +0.353920 0 0 0.260131 0.208813 0.076093 0.618298 0.257477 0.142630 0.197133 +0.357143 +0 0 0.353920 0.141568 0.111485 0.031853 0.114847 0.053442 0.025836 0.031145 +0.250000 +0 0.353920 0 0.180499 0.120333 0.063706 0.247921 0.110423 0.058397 0.070784 +0.357143 +0.353920 0 0 0.214121 0.173421 0.054858 0.408069 0.178022 0.088657 0.104406 +0.500000 +0 0.353920 0 0.231817 0.185808 0.061936 0.477084 0.207220 0.092196 0.139444 +0.321429 +0 0 0.353920 0.185808 0.141568 0.044240 0.246505 0.130596 0.049018 0.058043 +0.285714 +0.353920 0 0 0.205273 0.162803 0.054858 0.365776 0.165988 0.078747 0.104406 +0.321429 +0 0.353920 0 0.208813 0.171651 0.072554 0.435852 0.160149 0.084233 0.148646 +0.428571 +0 0 0.353920 0.203504 0.155725 0.044240 0.301363 0.161210 0.060697 0.069545 +0.285714 +0.353920 0 0 0.123872 0.090250 0.030083 0.075916 0.035392 0.016457 0.021235 +0.428571 +0 0.353920 0 0.207043 0.168112 0.065475 0.303486 0.122633 0.063175 0.097328 +0.392857 +0 0.353920 0 0.231817 0.191117 0.076093 0.550522 0.245974 0.104760 0.157140 +0.357143 +0 0.353920 0 0.242435 0.191117 0.056627 0.590161 0.294815 0.133605 0.168112 +0.357143 +0.353920 0 0 0.207043 0.162803 0.053088 0.426827 0.205627 0.076447 0.114316 +0.321429 +0.353920 0 0 0.196425 0.159264 0.051318 0.323837 0.141568 0.087064 0.100867 +0.357143 +0.353920 0 0 0.212352 0.162803 0.063706 0.403468 0.149708 0.091134 0.129181 +0.321429 +0.353920 0 0 0.054858 0.038931 0.014157 0.005486 0.002300 0.001062 0.001770 +0.071429 +0.353920 0 0 0.161033 0.123872 0.037162 0.147231 0.057512 0.034330 0.051318 +0.357143 +0 0.353920 0 0.169881 0.129181 0.047779 0.226332 0.104229 0.039993 0.061936 +0.250000 +0 0.353920 0 0.205273 0.162803 0.065475 0.359936 0.124403 0.070784 0.113254 +0.321429 +0 0.353920 0 0.203504 0.169881 0.053088 0.317466 0.149885 0.067422 0.087772 +0.250000 +0.353920 0 0 0.199965 0.155725 0.061936 0.397098 0.139090 0.070784 0.132720 +0.678571 +0.353920 0 0 0.164573 0.125641 0.037162 0.169704 0.080340 0.043886 0.044240 +0.250000 +0.353920 0 0 0.104406 0.079632 0.031853 0.049018 0.016988 0.016280 0.017696 +0.285714 +0 0.353920 0 0.171651 0.132720 0.047779 0.196779 0.068130 0.046540 0.059635 +0.321429 +0 0.353920 0 0.192886 0.145107 0.040701 0.239427 0.102637 0.055919 0.077862 +0.285714 +0 0 0.353920 0.187577 0.139798 0.044240 0.220669 0.105291 0.038223 0.069014 +0.357143 +0.353920 0 0 0.171651 0.130950 0.049549 0.202619 0.072200 0.050080 0.061936 +0.321429 +0 0 0.353920 0.187577 0.148646 0.065475 0.266148 0.105822 0.055211 0.072554 +0.678571 +0 0.353920 0 0.191117 0.155725 0.047779 0.339409 0.084410 0.078216 0.106176 +0.571429 +0.353920 0 0 0.116793 0.076093 0.026544 0.040524 0.015926 0.009379 0.012387 +0.178571 +0 0.353920 0 0.249513 0.191117 0.072554 0.621837 0.292515 0.147584 0.163157 +0.285714 +0.353920 0 0 0.222969 0.180499 0.061936 0.474783 0.232702 0.092727 0.132720 +0.321429 +0 0 0.353920 0.129181 0.099098 0.031853 0.069368 0.030614 0.012741 0.021412 +0.214286 +0.353920 0 0 0.152185 0.109715 0.046010 0.229517 0.096797 0.057689 0.065121 +0.285714 +0.353920 0 0 0.208813 0.166342 0.051318 0.326845 0.160856 0.061228 0.089896 +0.285714 +0 0.353920 0 0.155725 0.125641 0.040701 0.146877 0.056096 0.032738 0.046363 +0.357143 +0.353920 0 0 0.196425 0.155725 0.053088 0.267209 0.108653 0.053973 0.092019 +0.392857 +0.353920 0 0 0.148646 0.118563 0.040701 0.130596 0.060520 0.025128 0.042470 +0.250000 +0.353920 0 0 0.203504 0.166342 0.049549 0.296408 0.123341 0.061405 0.084941 +0.357143 +0 0 0.353920 0.159264 0.116793 0.037162 0.158556 0.073615 0.031499 0.042470 +0.285714 +0 0 0.353920 0.088480 0.063706 0.021235 0.025836 0.009910 0.006017 0.007963 +0.142857 +0 0.353920 0 0.253053 0.207043 0.081402 0.733498 0.306317 0.144930 0.199965 +0.321429 +0 0 0.353920 0.129181 0.095558 0.030083 0.072554 0.027606 0.017165 0.024774 +0.214286 +0 0 0.353920 0.180499 0.143337 0.047779 0.272164 0.129358 0.056096 0.063706 +0.214286 +0 0.353920 0 0.237126 0.185808 0.069014 0.484870 0.214652 0.104583 0.144045 +0.392857 +0.353920 0 0 0.219430 0.166342 0.051318 0.384534 0.180853 0.096089 0.090780 +0.321429 +0 0.353920 0 0.198195 0.152185 0.053088 0.312334 0.122633 0.060874 0.109715 +0.285714 +0.353920 0 0 0.155725 0.132720 0.046010 0.172359 0.079986 0.034153 0.054858 +0.285714 +0 0 0.353920 0.194656 0.157494 0.044240 0.237834 0.101929 0.048310 0.074323 +0.357143 +0.353920 0 0 0.175190 0.141568 0.054858 0.286144 0.082994 0.040878 0.123872 +0.178571 +0.353920 0 0 0.230048 0.180499 0.061936 0.511768 0.229517 0.095735 0.159264 +0.392857 +0.353920 0 0 0.231817 0.173421 0.061936 0.480800 0.226332 0.104052 0.129181 +0.321429 +0 0 0.353920 0.194656 0.152185 0.051318 0.251991 0.107061 0.053796 0.079632 +0.321429 +0 0 0.353920 0.058397 0.038931 0.007078 0.006724 0.002300 0.000885 0.001770 +0.107143 +0 0.353920 0 0.199965 0.155725 0.047779 0.293753 0.139090 0.061405 0.084233 +0.285714 +0.353920 0 0 0.263670 0.199965 0.076093 0.683419 0.317112 0.162272 0.176960 +0.357143 +0 0.353920 0 0.192886 0.143337 0.061936 0.346841 0.091488 0.073261 0.134489 +0.607143 +0 0.353920 0 0.201734 0.159264 0.053088 0.341356 0.187931 0.066891 0.073969 +0.285714 +0 0 0.353920 0.115024 0.070784 0.028314 0.035215 0.013980 0.007963 0.011325 +0.250000 +0.353920 0 0 0.222969 0.164573 0.053088 0.363475 0.190055 0.066537 0.062290 +0.250000 +0 0 0.353920 0.169881 0.123872 0.035392 0.183684 0.083702 0.045125 0.044594 +0.214286 +0.353920 0 0 0.222969 0.171651 0.063706 0.440099 0.183153 0.109007 0.130950 +0.357143 +0.353920 0 0 0.238896 0.185808 0.065475 0.561670 0.245443 0.118917 0.139798 +0.428571 +0 0 0.353920 0.102637 0.074323 0.023005 0.034330 0.013272 0.007786 0.010618 +0.178571 +0.353920 0 0 0.230048 0.185808 0.065475 0.526632 0.235357 0.119271 0.133782 +0.357143 +0 0.353920 0 0.180499 0.132720 0.038931 0.205450 0.101398 0.041763 0.052380 +0.214286 +0.353920 0 0 0.207043 0.143337 0.053088 0.444700 0.153955 0.071492 0.115024 +0.500000 +0 0 0.353920 0.182269 0.141568 0.042470 0.233233 0.095735 0.063352 0.060166 +0.428571 +0 0.353920 0 0.187577 0.153955 0.060166 0.288621 0.105645 0.054858 0.097328 +0.428571 +0 0.353920 0 0.212352 0.168112 0.053088 0.356574 0.156609 0.078216 0.099098 +0.500000 +0.353920 0 0 0.175190 0.132720 0.054858 0.345426 0.159264 0.080871 0.087595 +0.285714 +0 0 0.353920 0.219430 0.171651 0.063706 0.408423 0.174659 0.090603 0.111485 +0.392857 +0 0 0.353920 0.081402 0.063706 0.017696 0.022651 0.007609 0.004778 0.007078 +0.142857 +0 0 0.353920 0.139798 0.109715 0.033622 0.110777 0.046363 0.025482 0.032915 +0.214286 +0 0 0.353920 0.152185 0.111485 0.040701 0.135905 0.066714 0.025305 0.038931 +0.250000 +0.353920 0 0 0.212352 0.164573 0.058397 0.370731 0.164573 0.082994 0.111485 +0.357143 +0 0 0.353920 0.168112 0.132720 0.038931 0.174836 0.074677 0.038577 0.054681 +0.250000 +0 0.353920 0 0.210582 0.159264 0.053088 0.394266 0.207574 0.078039 0.088480 +0.357143 +0.353920 0 0 0.199965 0.159264 0.040701 0.321536 0.140860 0.069722 0.102637 +0.571429 +0 0 0.353920 0.176960 0.134489 0.047779 0.210228 0.104229 0.036808 0.055388 +0.285714 +0 0 0.353920 0.162803 0.125641 0.038931 0.150593 0.071315 0.028667 0.046010 +0.214286 +0 0.353920 0 0.215891 0.175190 0.058397 0.383472 0.160149 0.096620 0.112193 +0.285714 +0.353920 0 0 0.228278 0.187577 0.069014 0.491948 0.228809 0.104229 0.132189 +0.321429 +0.353920 0 0 0.207043 0.161033 0.049549 0.343302 0.163511 0.065475 0.104406 +0.285714 +0 0.353920 0 0.230048 0.182269 0.076093 0.530172 0.199611 0.114316 0.150416 +0.535714 +0.353920 0 0 0.222969 0.169881 0.053088 0.449832 0.233764 0.085826 0.109715 +0.357143 +0 0 0.353920 0.219430 0.166342 0.049549 0.303132 0.127234 0.056627 0.104406 +0.285714 +0 0 0.353920 0.143337 0.109715 0.031853 0.110423 0.048841 0.021235 0.030791 +0.250000 +0 0 0.353920 0.173421 0.136259 0.042470 0.209167 0.095912 0.039816 0.062821 +0.285714 +0.353920 0 0 0.221200 0.175190 0.061936 0.427358 0.187931 0.099451 0.124757 +0.357143 +0 0.353920 0 0.171651 0.130950 0.040701 0.169351 0.070607 0.033799 0.045656 +0.214286 +0.353920 0 0 0.113254 0.084941 0.028314 0.063706 0.028314 0.013626 0.019466 +0.178571 +0 0 0.353920 0.099098 0.077862 0.028314 0.046540 0.023359 0.008494 0.010618 +0.142857 +0.353920 0 0 0.228278 0.178729 0.058397 0.462573 0.153424 0.092727 0.184038 +0.321429 +0 0 0.353920 0.090250 0.067245 0.026544 0.030614 0.012210 0.007255 0.008848 +0.142857 +0 0.353920 0 0.159264 0.129181 0.040701 0.208282 0.112546 0.042824 0.046894 +0.250000 +0 0 0.353920 0.090250 0.067245 0.017696 0.029375 0.010441 0.007609 0.009556 +0.178571 +0.353920 0 0 0.191117 0.145107 0.051318 0.350027 0.099628 0.075385 0.125641 +0.642857 +0 0 0.353920 0.111485 0.083171 0.019466 0.053442 0.023005 0.009556 0.013803 +0.178571 +0 0 0.353920 0.159264 0.123872 0.051318 0.185808 0.073792 0.035392 0.058574 +0.500000 +0 0.353920 0 0.231817 0.187577 0.067245 0.505397 0.174482 0.112546 0.199965 +0.607143 +0 0 0.353920 0.115024 0.084941 0.026544 0.053973 0.025482 0.022828 0.015219 +0.178571 +0 0 0.353920 0.199965 0.153955 0.051318 0.298885 0.140683 0.055919 0.090250 +0.285714 +0 0.353920 0 0.219430 0.169881 0.056627 0.393736 0.199434 0.086533 0.099451 +0.250000 +0 0.353920 0 0.187577 0.150416 0.046010 0.253760 0.074854 0.058751 0.090250 +0.428571 +0.353920 0 0 0.228278 0.180499 0.058397 0.496549 0.203681 0.089011 0.160856 +0.357143 +0 0 0.353920 0.146877 0.113254 0.040701 0.107769 0.043001 0.026013 0.033268 +0.214286 +0.353920 0 0 0.099098 0.072554 0.035392 0.041232 0.019289 0.010087 0.010618 +0.142857 +0.353920 0 0 0.221200 0.171651 0.056627 0.429482 0.223323 0.079101 0.106884 +0.285714 +0 0 0.353920 0.095558 0.067245 0.028314 0.028667 0.009379 0.006901 0.010618 +0.178571 +0 0 0.353920 0.194656 0.148646 0.054858 0.322775 0.175190 0.063882 0.072554 +0.285714 +0.353920 0 0 0.224739 0.175190 0.054858 0.482569 0.206335 0.105645 0.104406 +0.321429 +0.353920 0 0 0.231817 0.182269 0.070784 0.485932 0.156786 0.119448 0.173421 +0.535714 +0 0 0.353920 0.161033 0.122102 0.037162 0.141745 0.058043 0.026721 0.044594 +0.250000 +0.353920 0 0 0.221200 0.176960 0.063706 0.485047 0.228278 0.107238 0.131127 +0.392857 +0.353920 0 0 0.148646 0.122102 0.037162 0.152185 0.061936 0.033976 0.046010 +0.214286 +0 0.353920 0 0.146877 0.115024 0.037162 0.134489 0.056450 0.027783 0.042470 +0.392857 +0.353920 0 0 0.130950 0.099098 0.033622 0.078747 0.028491 0.018050 0.026544 +0.214286 +0.353920 0 0 0.219430 0.166342 0.053088 0.463281 0.207751 0.155902 0.115024 +0.285714 +0 0.353920 0 0.237126 0.194656 0.067245 0.492125 0.192001 0.107415 0.141568 +0.392857 +0 0 0.353920 0.194656 0.148646 0.040701 0.236418 0.103521 0.048487 0.073969 +0.357143 +0.353920 0 0 0.168112 0.130950 0.044240 0.231817 0.094143 0.061051 0.065475 +0.321429 +0.353920 0 0 0.171651 0.138029 0.047779 0.218368 0.088480 0.047602 0.057866 +0.250000 +0.353920 0 0 0.199965 0.155725 0.044240 0.283844 0.127234 0.064590 0.076093 +0.285714 +0 0 0.353920 0.104406 0.076093 0.024774 0.042824 0.016634 0.005486 0.014334 +0.178571 +0 0 0.353920 0.127411 0.100867 0.037162 0.085472 0.032384 0.020173 0.026544 +0.214286 +0 0.353920 0 0.168112 0.127411 0.044240 0.158202 0.059989 0.028667 0.049549 +0.285714 +0 0.353920 0 0.221200 0.168112 0.061936 0.404707 0.168289 0.087595 0.123518 +0.321429 +0.353920 0 0 0.222969 0.171651 0.061936 0.460096 0.153424 0.104229 0.162803 +0.785714 +0 0.353920 0 0.159264 0.123872 0.051318 0.192001 0.062467 0.043532 0.061936 +0.428571 +0 0 0.353920 0.173421 0.134489 0.042470 0.187223 0.076624 0.049195 0.054858 +0.357143 +0 0 0.353920 0.139798 0.115024 0.037162 0.108299 0.039285 0.026013 0.033622 +0.250000 +0.353920 0 0 0.237126 0.176960 0.070784 0.449124 0.203858 0.105645 0.124226 +0.357143 +0.353920 0 0 0.159264 0.118563 0.044240 0.158379 0.076624 0.044594 0.038931 +0.178571 +0.353920 0 0 0.171651 0.125641 0.042470 0.193594 0.076093 0.057158 0.049549 +0.321429 +0 0.353920 0 0.176960 0.155725 0.054858 0.262608 0.071669 0.070961 0.074854 +0.464286 +0.353920 0 0 0.219430 0.175190 0.069014 0.536011 0.204919 0.122456 0.183861 +0.500000 +0.353920 0 0 0.192886 0.145107 0.051318 0.308972 0.107415 0.069368 0.109715 +0.607143 +0 0 0.353920 0.215891 0.150416 0.054858 0.371085 0.179437 0.069191 0.096974 +0.357143 +0 0.353920 0 0.178729 0.138029 0.046010 0.238542 0.112016 0.049903 0.063175 +0.285714 +0 0 0.353920 0.185808 0.143337 0.053088 0.281366 0.108830 0.072554 0.090250 +0.464286 +0.353920 0 0 0.233587 0.180499 0.058397 0.579543 0.271987 0.125465 0.138913 +0.464286 +0.353920 0 0 0.208813 0.171651 0.054858 0.381702 0.160503 0.086179 0.109715 +0.285714 +0 0 0.353920 0.116793 0.092019 0.028314 0.067245 0.027075 0.013626 0.023005 +0.214286 +0.353920 0 0 0.230048 0.178729 0.060166 0.551938 0.245974 0.124403 0.139798 +0.357143 +0 0 0.353920 0.115024 0.088480 0.019466 0.058751 0.026898 0.018050 0.015926 +0.142857 +0 0.353920 0 0.196425 0.152185 0.049549 0.267032 0.124757 0.064944 0.071315 +0.285714 +0.353920 0 0 0.224739 0.169881 0.083171 0.376571 0.146169 0.080694 0.127411 +0.535714 +0.353920 0 0 0.169881 0.129181 0.046010 0.187754 0.085118 0.044948 0.049195 +0.250000 +0 0 0.353920 0.095558 0.069014 0.021235 0.025836 0.010087 0.008317 0.010618 +0.142857 +0 0.353920 0 0.221200 0.173421 0.051318 0.325606 0.154663 0.061405 0.099098 +0.321429 +0 0 0.353920 0.168112 0.123872 0.040701 0.176252 0.084056 0.035038 0.049549 +0.214286 +0 0.353920 0 0.212352 0.166342 0.053088 0.326314 0.128473 0.068660 0.107945 +0.321429 +0.353920 0 0 0.230048 0.176960 0.054858 0.425411 0.199965 0.110954 0.104052 +0.357143 +0.353920 0 0 0.136259 0.104406 0.033622 0.118563 0.052026 0.033268 0.031853 +0.214286 +0 0 0.353920 0.203504 0.159264 0.051318 0.308618 0.165457 0.063706 0.076801 +0.285714 +0 0.353920 0 0.256592 0.199965 0.074323 0.758273 0.364537 0.172359 0.178022 +0.464286 +0 0.353920 0 0.221200 0.176960 0.053088 0.337285 0.121925 0.079101 0.107945 +0.500000 +0.353920 0 0 0.203504 0.166342 0.053088 0.403999 0.159795 0.072200 0.141568 +0.428571 +0 0 0.353920 0.180499 0.143337 0.046010 0.211998 0.108476 0.040878 0.052557 +0.250000 +0 0.353920 0 0.152185 0.120333 0.042470 0.138383 0.055035 0.033622 0.049726 +0.214286 +0.353920 0 0 0.201734 0.161033 0.053088 0.336932 0.137852 0.076270 0.097151 +0.285714 +0 0 0.353920 0.159264 0.125641 0.038931 0.162272 0.068660 0.023713 0.049549 +0.250000 +0 0.353920 0 0.205273 0.168112 0.047779 0.327376 0.138383 0.058397 0.097328 +0.464286 +0.353920 0 0 0.219430 0.180499 0.061936 0.571580 0.180676 0.067953 0.238896 +0.392857 +0.353920 0 0 0.237126 0.185808 0.063706 0.588037 0.283313 0.129004 0.152185 +0.321429 +0 0 0.353920 0.129181 0.097328 0.031853 0.082994 0.038223 0.018050 0.022120 +0.214286 +0.353920 0 0 0.173421 0.138029 0.049549 0.250221 0.098921 0.077331 0.063706 +0.428571 diff --git a/lib/ann/fann/datasets/bank32fm.test b/lib/ann/fann/datasets/bank32fm.test new file mode 100644 index 0000000..9521316 --- /dev/null +++ b/lib/ann/fann/datasets/bank32fm.test @@ -0,0 +1,4097 @@ +2048 32 1 +0.028821 0.037952 0.028875 0.032913 0.015877 0.156519 0.009585 0.036436 0.028828 0.031926 0.016715 0.128107 0.015295 0.015996 0.028893 0.028899 0.018377 0.017216 0.028855 0.018835 0.020463 0.063422 0.041259 0.014073 0.011321 0.133891 0.037837 0.001414 0.020625 0.086911 0.038775 0.204360 +0.309828 +0.029236 0.039006 0.031923 0.030627 0.014822 0.181186 0.010184 0.036333 0.028552 0.029307 0.016396 0.027752 0.015586 0.016000 0.030867 0.028573 0.016565 0.111026 0.026982 0.018847 0.020698 0.063422 0.037646 0.015958 0.011842 0.133891 0.041115 0.002070 0.019519 0.086911 0.037788 0.204360 +0.434157 +0.029985 0.036722 0.034857 0.039144 0.016990 0.139669 0.011708 0.036357 0.028782 0.028237 0.015788 0.174852 0.016235 0.016340 0.029257 0.030555 0.015993 0.058523 0.025882 0.019588 0.019985 0.157380 0.039078 0.015729 0.007691 0.157380 0.037621 0.000093 0.020806 0.086911 0.037675 0.204360 +0.442628 +0.028566 0.038408 0.028821 0.028576 0.017452 0.241329 0.010008 0.037416 0.029355 0.028995 0.018253 0.100675 0.015216 0.015556 0.033294 0.032023 0.016433 0.099122 0.027297 0.019195 0.021554 0.063422 0.039787 0.011807 0.006754 0.063422 0.039842 0.000215 0.021036 0.110401 0.041492 0.133891 +0.536149 +0.028384 0.038188 0.029571 0.029506 0.018476 0.026425 0.009794 0.036498 0.029353 0.028962 0.015271 0.046714 0.016432 0.015647 0.030821 0.028576 0.018050 0.041429 0.028228 0.020908 0.021349 0.110401 0.042204 0.015264 0.008831 0.063422 0.038086 0.001077 0.020284 0.110401 0.038032 0.133891 +0.058740 +0.030894 0.035340 0.030554 0.033163 0.018694 0.050246 0.009832 0.036674 0.037953 0.029953 0.017215 0.106271 0.015079 0.016024 0.028473 0.033091 0.018047 0.270033 0.026234 0.020355 0.019787 0.157380 0.039685 0.015305 0.004801 0.133891 0.040535 0.000497 0.018827 0.110401 0.040588 0.180870 +0.545816 +0.032504 0.035479 0.029945 0.032599 0.018775 0.106023 0.009930 0.037000 0.029188 0.036962 0.014957 0.160094 0.015578 0.016203 0.029814 0.033124 0.015703 0.061786 0.028230 0.020342 0.023286 0.133891 0.038847 0.013637 0.008414 0.086911 0.041669 0.000630 0.019618 0.110401 0.040528 0.157380 +0.384928 +0.031426 0.038347 0.028474 0.028617 0.016124 0.134301 0.011424 0.036817 0.034330 0.029767 0.014250 0.104242 0.015380 0.016437 0.030851 0.028856 0.016380 0.055801 0.027490 0.020040 0.019082 0.110401 0.039676 0.017484 0.006234 0.110401 0.041484 0.002120 0.020439 0.086911 0.040732 0.133891 +0.401881 +0.029028 0.036110 0.028645 0.031190 0.015745 0.088878 0.009875 0.035531 0.029969 0.034573 0.017100 0.049538 0.015118 0.015539 0.028867 0.032472 0.017684 0.123265 0.028036 0.020627 0.020431 0.063422 0.038903 0.013337 0.009980 0.110401 0.038997 0.000193 0.019853 0.063422 0.039150 0.133891 +0.302565 +0.030125 0.038417 0.028276 0.029213 0.016172 0.088465 0.011172 0.035575 0.029493 0.029611 0.014445 0.081028 0.015432 0.015527 0.030304 0.030315 0.017595 0.081185 0.029537 0.019492 0.020029 0.086911 0.039184 0.017452 0.010151 0.110401 0.039463 0.000100 0.020835 0.086911 0.041731 0.133891 +0.329177 +0.030666 0.034141 0.032039 0.028779 0.014230 0.025687 0.010503 0.037282 0.031049 0.034954 0.014904 0.071325 0.015097 0.016092 0.029630 0.030601 0.017104 0.020463 0.028829 0.020088 0.021175 0.086911 0.040785 0.015651 0.004863 0.086911 0.038763 0.000303 0.019502 0.063422 0.041882 0.157380 +0.002182 +0.032002 0.036865 0.028918 0.033289 0.015998 0.098970 0.010339 0.036781 0.029620 0.028421 0.018104 0.211409 0.015884 0.016207 0.030484 0.029881 0.015230 0.124252 0.028786 0.019689 0.021769 0.063422 0.042198 0.017056 0.010620 0.110401 0.039040 0.000956 0.020573 0.086911 0.039646 0.133891 +0.572769 +0.030473 0.034163 0.028513 0.029939 0.017114 0.156013 0.011340 0.036501 0.028821 0.029025 0.014825 0.232823 0.015810 0.015570 0.036974 0.030383 0.016217 0.038206 0.029356 0.018851 0.020513 0.110401 0.040727 0.015511 0.005285 0.063422 0.039400 0.002037 0.018913 0.063422 0.040610 0.204360 +0.524486 +0.030664 0.033179 0.028957 0.034251 0.016718 0.022902 0.010560 0.037321 0.028365 0.031293 0.018410 0.064649 0.015302 0.015647 0.030827 0.028249 0.015662 0.033931 0.029180 0.020487 0.020764 0.133891 0.037860 0.013851 0.009603 0.086911 0.037621 0.001107 0.020440 0.180870 0.037663 0.204360 +0.012343 +0.031444 0.038759 0.040197 0.033324 0.017636 0.071627 0.010743 0.036483 0.031877 0.031391 0.016905 0.040032 0.015067 0.016323 0.028704 0.032687 0.014716 0.113993 0.028853 0.020015 0.020924 0.063422 0.040782 0.016255 0.011953 0.110401 0.039727 0.000304 0.019901 0.086911 0.041343 0.133891 +0.239761 +0.031233 0.034629 0.034124 0.032140 0.018249 0.046880 0.010002 0.035963 0.033616 0.033784 0.014314 0.129005 0.015906 0.015973 0.031282 0.033506 0.017335 0.085863 0.027979 0.020716 0.021147 0.110401 0.041619 0.017196 0.011445 0.157380 0.040742 0.001853 0.019271 0.063422 0.039880 0.180870 +0.165599 +0.031764 0.035117 0.028610 0.029996 0.017431 0.110960 0.011002 0.036336 0.030351 0.029542 0.015094 0.063631 0.016136 0.015684 0.029810 0.028547 0.014543 0.166104 0.028861 0.019067 0.022254 0.063422 0.041132 0.017262 0.010775 0.063422 0.040124 0.000340 0.019969 0.110401 0.040070 0.133891 +0.445599 +0.030519 0.035792 0.031895 0.030938 0.017747 0.049226 0.010470 0.035950 0.031481 0.030641 0.015407 0.351548 0.015205 0.016121 0.029012 0.034696 0.017347 0.262778 0.026849 0.020487 0.019303 0.063422 0.041566 0.015257 0.006362 0.086911 0.039259 0.000393 0.019248 0.063422 0.040037 0.133891 +0.848682 +0.030880 0.036744 0.036693 0.033438 0.014516 0.120931 0.009861 0.035245 0.028444 0.028511 0.014690 0.035100 0.015613 0.016285 0.033865 0.028547 0.015638 0.032824 0.026792 0.019055 0.021050 0.063422 0.041775 0.014713 0.011215 0.086911 0.038835 0.001502 0.020116 0.086911 0.042172 0.133891 +0.160348 +0.028970 0.037315 0.029227 0.030391 0.017123 0.021623 0.011063 0.036547 0.030005 0.029424 0.014410 0.043626 0.015790 0.016384 0.028721 0.036002 0.017345 0.022585 0.027517 0.020988 0.019386 0.063422 0.041818 0.016807 0.007900 0.110401 0.041216 0.000793 0.019163 0.086911 0.039918 0.133891 +0 +0.030161 0.037537 0.032691 0.028277 0.016391 0.024777 0.010459 0.037050 0.044258 0.030115 0.018769 0.058252 0.015242 0.015831 0.028405 0.029797 0.015897 0.062937 0.029587 0.019591 0.019660 0.110401 0.038916 0.016513 0.009514 0.110401 0.039862 0.001761 0.020122 0.157380 0.040271 0.180870 +0.027681 +0.032780 0.037660 0.030230 0.028215 0.017202 0.085253 0.009971 0.036629 0.035055 0.029553 0.014722 0.018679 0.015720 0.015981 0.028529 0.028885 0.015793 0.067960 0.028413 0.019110 0.021252 0.086911 0.039411 0.015205 0.008116 0.063422 0.039070 0.000183 0.019562 0.110401 0.037639 0.180870 +0.058958 +0.032264 0.034764 0.033896 0.034280 0.017052 0.017771 0.011053 0.037432 0.030720 0.032399 0.017613 0.024279 0.016026 0.016273 0.029788 0.028330 0.016742 0.028224 0.028380 0.019232 0.019707 0.063422 0.040345 0.017183 0.008055 0.110401 0.037703 0.002101 0.020243 0.086911 0.040263 0.133891 +0 +0.032031 0.032950 0.029975 0.028415 0.015948 0.058940 0.009537 0.037029 0.030215 0.029404 0.014381 0.073672 0.015230 0.015861 0.028738 0.032699 0.015279 0.025469 0.027102 0.020122 0.023151 0.086911 0.039730 0.017839 0.007120 0.157380 0.039775 0.001587 0.019140 0.063422 0.040828 0.204360 +0.077509 +0.029833 0.038698 0.030261 0.028710 0.018062 0.045000 0.009483 0.037351 0.029494 0.032582 0.014331 0.130759 0.015708 0.015623 0.032115 0.029012 0.017210 0.035363 0.028760 0.020676 0.019988 0.133891 0.042258 0.012987 0.010065 0.086911 0.039195 0.001104 0.019670 0.086911 0.037775 0.180870 +0.111369 +0.028549 0.036077 0.028564 0.034950 0.016161 0.044774 0.011210 0.036013 0.033317 0.031544 0.018789 0.231784 0.016000 0.016066 0.028207 0.030962 0.018047 0.018577 0.028819 0.020612 0.021443 0.086911 0.038806 0.015994 0.011363 0.086911 0.040846 0.001241 0.020593 0.063422 0.040147 0.180870 +0.261696 +0.031016 0.037971 0.032151 0.028937 0.016580 0.018014 0.010667 0.037330 0.028730 0.030775 0.018582 0.101860 0.015812 0.016048 0.029209 0.028578 0.017133 0.098215 0.027999 0.021005 0.022006 0.086911 0.038004 0.016936 0.009092 0.110401 0.041609 0.000283 0.020625 0.086911 0.038732 0.157380 +0.210100 +0.029682 0.034803 0.029896 0.030804 0.018759 0.019048 0.010292 0.036943 0.028912 0.029598 0.016522 0.025194 0.016288 0.016131 0.028318 0.031624 0.015803 0.070097 0.027556 0.019198 0.023170 0.110401 0.042171 0.015474 0.013626 0.110401 0.040258 0.000328 0.020877 0.086911 0.041320 0.133891 +0.073060 +0.028354 0.033435 0.031108 0.030109 0.018191 0.145432 0.009620 0.035505 0.031079 0.028487 0.018777 0.108891 0.015686 0.015566 0.028647 0.032792 0.017831 0.022319 0.028111 0.020965 0.021578 0.133891 0.041699 0.012117 0.010034 0.133891 0.040797 0.001020 0.019378 0.110401 0.041518 0.180870 +0.327059 +0.030643 0.034454 0.037038 0.029967 0.016758 0.226889 0.011246 0.035935 0.030119 0.032459 0.015175 0.086862 0.015711 0.016284 0.028516 0.031524 0.015625 0.112087 0.027772 0.019261 0.019818 0.133891 0.038717 0.015544 0.011214 0.110401 0.039421 0.001433 0.020050 0.157380 0.041043 0.204360 +0.492692 +0.028686 0.035953 0.031119 0.029538 0.015698 0.040694 0.009451 0.037422 0.028291 0.030728 0.015568 0.204947 0.015180 0.015532 0.028756 0.028201 0.018218 0.029343 0.027954 0.019331 0.023476 0.110401 0.038035 0.018461 0.005198 0.180870 0.041711 0.000218 0.020733 0.157380 0.038735 0.204360 +0.335041 +0.031779 0.036368 0.031580 0.030495 0.014287 0.101891 0.011408 0.035951 0.031748 0.028349 0.014253 0.029289 0.015967 0.016435 0.031122 0.029028 0.017673 0.108144 0.030003 0.021085 0.022445 0.110401 0.037969 0.016735 0.009344 0.133891 0.039135 0.000663 0.019637 0.086911 0.037993 0.180870 +0.185989 +0.028695 0.035921 0.029171 0.032891 0.018137 0.068009 0.010477 0.035437 0.030044 0.029998 0.015214 0.176643 0.015978 0.015775 0.031893 0.033454 0.017114 0.119972 0.026413 0.020489 0.021784 0.063422 0.039905 0.013878 0.011134 0.110401 0.038134 0.000566 0.020832 0.133891 0.039293 0.157380 +0.480644 +0.031240 0.038027 0.030437 0.029977 0.015440 0.367860 0.011075 0.036610 0.031410 0.030471 0.014201 0.137225 0.015449 0.015834 0.028810 0.031760 0.016004 0.047954 0.025355 0.019344 0.022784 0.110401 0.040682 0.014782 0.009898 0.110401 0.041462 0.002336 0.020286 0.086911 0.037875 0.133891 +0.574538 +0.028272 0.035476 0.035540 0.028354 0.018588 0.063633 0.011277 0.036840 0.030828 0.029225 0.018261 0.334234 0.016060 0.015659 0.029945 0.028641 0.014730 0.125012 0.028729 0.020118 0.022063 0.133891 0.040183 0.018227 0.009522 0.086911 0.038056 0.002266 0.019047 0.086911 0.039164 0.180870 +0.686662 +0.030734 0.038584 0.032924 0.032380 0.017858 0.246642 0.010295 0.036794 0.031292 0.029867 0.018210 0.091589 0.015134 0.016148 0.034278 0.029448 0.015188 0.162754 0.029509 0.020614 0.021425 0.086911 0.039421 0.014590 0.005660 0.086911 0.041861 0.000106 0.019025 0.110401 0.038693 0.133891 +0.645527 +0.028965 0.033453 0.033462 0.028856 0.014491 0.093523 0.011720 0.035287 0.028683 0.028876 0.016065 0.053032 0.015749 0.015840 0.029673 0.032027 0.014305 0.085879 0.027224 0.018972 0.018800 0.157380 0.040851 0.016399 0.005210 0.063422 0.040892 0.000648 0.020010 0.157380 0.042056 0.180870 +0.259331 +0.030311 0.034836 0.030084 0.028463 0.016578 0.069938 0.011158 0.035493 0.030588 0.028593 0.017354 0.060280 0.015189 0.015551 0.028453 0.031107 0.018303 0.048285 0.028195 0.019281 0.019199 0.086911 0.041666 0.011830 0.005827 0.110401 0.041534 0.000048 0.020806 0.086911 0.039166 0.133891 +0.161108 +0.032390 0.037072 0.029326 0.028854 0.017946 0.206696 0.009776 0.037486 0.032104 0.030651 0.017157 0.018628 0.015175 0.016049 0.031330 0.028514 0.015685 0.043287 0.026645 0.018976 0.020891 0.110401 0.041091 0.018368 0.013240 0.086911 0.041648 0.000425 0.021004 0.110401 0.038681 0.133891 +0.269101 +0.029589 0.039791 0.030930 0.029969 0.015077 0.021678 0.010515 0.036557 0.031956 0.028627 0.017315 0.050295 0.015275 0.015566 0.035356 0.028345 0.015527 0.160234 0.028657 0.020418 0.019449 0.133891 0.039952 0.012947 0.005257 0.157380 0.037924 0.000972 0.019642 0.133891 0.041153 0.204360 +0.198156 +0.028255 0.037444 0.030949 0.028347 0.017835 0.090892 0.010896 0.037397 0.033122 0.030183 0.017612 0.076814 0.015801 0.016131 0.029819 0.028229 0.018396 0.061397 0.028903 0.020839 0.020840 0.110401 0.038923 0.014293 0.009583 0.086911 0.040112 0.000955 0.020096 0.086911 0.038939 0.133891 +0.250589 +0.032317 0.038940 0.032594 0.028188 0.016903 0.236827 0.011712 0.036294 0.028323 0.032126 0.017856 0.040227 0.015186 0.015756 0.029012 0.029437 0.015582 0.016578 0.028837 0.020533 0.020498 0.110401 0.039857 0.013063 0.013633 0.063422 0.037761 0.002129 0.020627 0.133891 0.038470 0.204360 +0.251815 +0.031546 0.038237 0.030620 0.029783 0.016400 0.034171 0.009838 0.036133 0.030641 0.029387 0.015397 0.064170 0.015771 0.015845 0.028693 0.030110 0.017275 0.142789 0.028326 0.019958 0.022004 0.110401 0.039728 0.015116 0.009396 0.063422 0.039914 0.000327 0.019363 0.086911 0.040291 0.157380 +0.145895 +0.029090 0.034243 0.029745 0.029500 0.018147 0.047265 0.011545 0.036763 0.030504 0.028905 0.018149 0.296403 0.016041 0.015993 0.028495 0.031450 0.018399 0.049129 0.029854 0.020684 0.019175 0.157380 0.042125 0.012109 0.008421 0.110401 0.038082 0.000380 0.018817 0.110401 0.037848 0.180870 +0.519915 +0.028671 0.034914 0.030009 0.035353 0.014969 0.061809 0.011623 0.036994 0.028461 0.032799 0.016190 0.095379 0.015809 0.015541 0.031318 0.034934 0.015715 0.062965 0.028004 0.019668 0.020561 0.063422 0.039815 0.016027 0.006693 0.063422 0.040691 0.000048 0.019501 0.110401 0.042174 0.133891 +0.199653 +0.030479 0.037801 0.029059 0.029745 0.015496 0.087265 0.009696 0.035648 0.028518 0.028355 0.018605 0.089622 0.015927 0.016003 0.031390 0.029613 0.015394 0.079383 0.029528 0.019045 0.022724 0.086911 0.042100 0.018086 0.009335 0.180870 0.038941 0.000172 0.020798 0.133891 0.040817 0.204360 +0.229538 +0.029596 0.033373 0.030555 0.028473 0.017220 0.065778 0.010625 0.036244 0.029203 0.028515 0.014150 0.099318 0.015535 0.016213 0.032123 0.028336 0.017875 0.025019 0.027798 0.020298 0.018793 0.110401 0.038241 0.013437 0.011104 0.157380 0.041375 0.000971 0.019469 0.133891 0.038893 0.180870 +0.099107 +0.028189 0.034759 0.033142 0.029969 0.015765 0.108444 0.010437 0.036108 0.029202 0.030401 0.017871 0.055011 0.015046 0.015758 0.028713 0.030272 0.016561 0.168124 0.028428 0.021112 0.019078 0.180870 0.041674 0.016834 0.012223 0.157380 0.041894 0.002093 0.019714 0.133891 0.039078 0.204360 +0.255776 +0.029231 0.034781 0.031647 0.030599 0.014559 0.034162 0.011050 0.035481 0.029425 0.028495 0.018704 0.021266 0.016244 0.016238 0.028758 0.030995 0.017625 0.269448 0.028666 0.019937 0.023033 0.110401 0.040798 0.015348 0.011955 0.086911 0.042241 0.002050 0.020253 0.086911 0.039560 0.133891 +0.415901 +0.030523 0.039237 0.030430 0.031057 0.015757 0.041983 0.010371 0.035506 0.028503 0.029866 0.017828 0.021008 0.015136 0.016140 0.030637 0.030291 0.017067 0.117615 0.028496 0.020449 0.021108 0.063422 0.039662 0.014697 0.008358 0.110401 0.038790 0.000981 0.020868 0.063422 0.039932 0.133891 +0.102988 +0.032817 0.039449 0.029866 0.031976 0.016028 0.053419 0.009738 0.037316 0.030054 0.039494 0.016996 0.054638 0.016202 0.016283 0.028733 0.033097 0.016387 0.034156 0.029116 0.019329 0.019211 0.180870 0.039967 0.012283 0.011387 0.063422 0.040769 0.001526 0.020567 0.086911 0.038488 0.204360 +0.038825 +0.029795 0.038162 0.030390 0.030695 0.014614 0.027225 0.010777 0.035641 0.029816 0.028539 0.016562 0.016526 0.015299 0.016105 0.030288 0.029135 0.016861 0.022778 0.028769 0.020967 0.021013 0.110401 0.038226 0.013879 0.004800 0.133891 0.039175 0.000451 0.020541 0.086911 0.040342 0.157380 +0 +0.031073 0.036500 0.029795 0.029399 0.015901 0.106665 0.011218 0.035860 0.032688 0.036903 0.018562 0.022503 0.016243 0.016042 0.028747 0.030106 0.015808 0.040016 0.026844 0.019623 0.023144 0.063422 0.038172 0.016757 0.009188 0.110401 0.041380 0.000103 0.020400 0.110401 0.042083 0.133891 +0.262200 +0.029460 0.038110 0.028363 0.031742 0.017754 0.025010 0.010410 0.037448 0.033582 0.036654 0.017346 0.115603 0.015490 0.015970 0.029455 0.028651 0.017794 0.017080 0.028983 0.020700 0.019715 0.110401 0.040546 0.015819 0.013980 0.133891 0.038506 0.000148 0.020157 0.110401 0.039993 0.157380 +0.069523 +0.030423 0.033470 0.028594 0.030824 0.015400 0.034559 0.010692 0.035416 0.030586 0.030626 0.015396 0.029846 0.015221 0.016074 0.031644 0.030280 0.015143 0.050637 0.028549 0.020204 0.019698 0.063422 0.041739 0.017636 0.008982 0.157380 0.040645 0.001985 0.019110 0.063422 0.041215 0.204360 +0 +0.029646 0.039076 0.031014 0.028397 0.014905 0.206095 0.011441 0.035440 0.034835 0.034463 0.017531 0.020868 0.016438 0.016077 0.028275 0.030553 0.017231 0.017132 0.025939 0.020311 0.019752 0.110401 0.040862 0.014289 0.005997 0.110401 0.042008 0.001546 0.019447 0.063422 0.037763 0.133891 +0.366910 +0.028916 0.035420 0.028661 0.031277 0.014931 0.114322 0.010004 0.035660 0.034009 0.029766 0.016593 0.047415 0.015357 0.016439 0.028722 0.029666 0.016238 0.044489 0.026769 0.020946 0.021011 0.063422 0.039580 0.012150 0.006133 0.110401 0.041980 0.002002 0.021086 0.086911 0.040057 0.133891 +0.213898 +0.028875 0.034675 0.029499 0.030531 0.014423 0.102786 0.010363 0.037091 0.028834 0.028784 0.014433 0.113190 0.016373 0.015537 0.034412 0.032582 0.018435 0.313907 0.028430 0.019405 0.020258 0.063422 0.042086 0.018767 0.011613 0.110401 0.037660 0.002330 0.018974 0.086911 0.039241 0.180870 +0.686804 +0.030151 0.036962 0.030911 0.028258 0.017696 0.086959 0.009927 0.037509 0.028878 0.032457 0.014234 0.058103 0.015442 0.015698 0.035996 0.031436 0.018599 0.057671 0.029731 0.021010 0.020958 0.063422 0.041627 0.013053 0.006072 0.063422 0.039220 0.000411 0.019834 0.110401 0.039691 0.157380 +0.126180 +0.032320 0.037501 0.028910 0.032369 0.015053 0.082233 0.011708 0.035586 0.034113 0.030551 0.015487 0.039326 0.015464 0.016379 0.028504 0.028670 0.014638 0.051808 0.028438 0.019866 0.020973 0.110401 0.042029 0.016662 0.007349 0.063422 0.040959 0.000222 0.019145 0.110401 0.040706 0.133891 +0.167429 +0.031699 0.036119 0.028457 0.034014 0.015498 0.196639 0.011014 0.036949 0.033119 0.030708 0.015115 0.431357 0.015545 0.015821 0.030704 0.028309 0.015204 0.082426 0.026028 0.019857 0.019404 0.063422 0.037726 0.014986 0.013723 0.086911 0.042237 0.002086 0.020664 0.063422 0.038793 0.157380 +0.872548 +0.030205 0.038034 0.028581 0.029238 0.014580 0.068735 0.011743 0.036859 0.028394 0.028258 0.016190 0.067471 0.015563 0.016276 0.033488 0.028340 0.018771 0.053289 0.028793 0.018913 0.021364 0.157380 0.039819 0.016150 0.009344 0.110401 0.038990 0.001843 0.019411 0.110401 0.038446 0.204360 +0.150772 +0.032310 0.034631 0.029258 0.030682 0.014905 0.207694 0.010909 0.036473 0.031790 0.036469 0.017901 0.022642 0.016129 0.016424 0.029359 0.029917 0.015916 0.106044 0.029478 0.018796 0.022446 0.086911 0.039401 0.018467 0.013904 0.086911 0.039454 0.001631 0.020313 0.086911 0.040370 0.133891 +0.480544 +0.030063 0.037610 0.030306 0.031703 0.017330 0.025103 0.011143 0.037128 0.032547 0.031746 0.017679 0.038477 0.015398 0.015634 0.028879 0.037292 0.017010 0.069161 0.027680 0.019691 0.022105 0.110401 0.038050 0.017821 0.006839 0.086911 0.040626 0.002163 0.021065 0.086911 0.040544 0.133891 +0.077165 +0.032715 0.035262 0.030322 0.031644 0.015217 0.027169 0.010655 0.035258 0.034903 0.029328 0.016854 0.080268 0.016296 0.016372 0.029528 0.028478 0.017585 0.102364 0.028241 0.019803 0.019834 0.110401 0.038417 0.017301 0.008363 0.110401 0.039612 0.000401 0.020668 0.086911 0.039141 0.204360 +0.168120 +0.032017 0.033206 0.030018 0.032209 0.016372 0.128718 0.009819 0.035655 0.030419 0.028918 0.018010 0.022172 0.016050 0.015778 0.028941 0.028363 0.017363 0.473240 0.028623 0.019572 0.020925 0.110401 0.040355 0.012815 0.009838 0.133891 0.038493 0.000488 0.018829 0.157380 0.039814 0.180870 +0.770990 +0.032801 0.035949 0.031995 0.036782 0.018110 0.037481 0.011062 0.037256 0.028410 0.028296 0.015827 0.066323 0.015449 0.015627 0.029045 0.029200 0.014451 0.064046 0.027488 0.019907 0.019477 0.110401 0.040780 0.017420 0.008826 0.086911 0.041316 0.001027 0.020016 0.110401 0.039214 0.133891 +0.140713 +0.030746 0.033086 0.033478 0.028426 0.016476 0.077942 0.010759 0.036422 0.033150 0.031193 0.015980 0.085418 0.015638 0.015561 0.028282 0.031587 0.018671 0.036815 0.029207 0.020883 0.019899 0.180870 0.039290 0.017332 0.009305 0.133891 0.038619 0.001560 0.019311 0.086911 0.039932 0.204360 +0.094984 +0.030062 0.033889 0.028427 0.033074 0.016628 0.144658 0.010442 0.036705 0.033705 0.028693 0.016885 0.254096 0.016313 0.015963 0.028760 0.028304 0.016647 0.156204 0.027783 0.020457 0.021954 0.133891 0.037900 0.012787 0.006405 0.180870 0.041746 0.000492 0.019958 0.063422 0.038717 0.204360 +0.711969 +0.031944 0.033125 0.031550 0.034039 0.015817 0.055528 0.011343 0.037214 0.028372 0.033099 0.018257 0.081956 0.016433 0.016043 0.028982 0.032013 0.014263 0.301001 0.027416 0.020369 0.022267 0.133891 0.038668 0.014995 0.012369 0.063422 0.040739 0.001078 0.020691 0.063422 0.041334 0.157380 +0.566257 +0.030860 0.038947 0.041281 0.029736 0.018085 0.040810 0.010739 0.036402 0.029077 0.029187 0.017152 0.066406 0.015781 0.016389 0.029325 0.029040 0.018521 0.218875 0.029115 0.020874 0.021188 0.157380 0.037799 0.018248 0.005538 0.157380 0.040195 0.001129 0.019786 0.063422 0.037842 0.180870 +0.402951 +0.028900 0.036627 0.030244 0.029393 0.018131 0.165274 0.011676 0.036242 0.028618 0.028976 0.015448 0.159656 0.016366 0.016016 0.040872 0.030370 0.015806 0.106551 0.027685 0.019740 0.020918 0.063422 0.041823 0.017382 0.013352 0.110401 0.041579 0.002040 0.020950 0.133891 0.039228 0.157380 +0.530599 +0.030908 0.036394 0.028879 0.031702 0.015585 0.054806 0.010280 0.036902 0.028746 0.030270 0.014778 0.361819 0.015942 0.015605 0.029608 0.029648 0.015839 0.293696 0.028122 0.020296 0.020220 0.133891 0.041355 0.011784 0.013612 0.086911 0.041610 0.001220 0.020766 0.110401 0.038303 0.180870 +0.863049 +0.030684 0.036871 0.032450 0.028512 0.014624 0.043515 0.009591 0.037567 0.028539 0.028273 0.016952 0.026399 0.015036 0.015559 0.029324 0.033351 0.015224 0.032309 0.028435 0.019130 0.021243 0.133891 0.042199 0.012115 0.011444 0.086911 0.040101 0.000942 0.020122 0.110401 0.041768 0.204360 +0 +0.031476 0.035824 0.036437 0.030933 0.016434 0.055608 0.010676 0.037474 0.028917 0.031304 0.017254 0.055562 0.016334 0.015812 0.028274 0.030886 0.016811 0.024367 0.027916 0.021068 0.021571 0.110401 0.037931 0.018650 0.007685 0.086911 0.041242 0.000331 0.020774 0.110401 0.041294 0.157380 +0 +0.032726 0.038800 0.031991 0.030924 0.017027 0.135424 0.011176 0.036677 0.032895 0.032686 0.018416 0.024808 0.015700 0.015888 0.034110 0.028438 0.017265 0.021943 0.028369 0.020379 0.021756 0.110401 0.041279 0.016046 0.012613 0.086911 0.039312 0.001986 0.019176 0.133891 0.041970 0.157380 +0.117668 +0.030320 0.036051 0.029082 0.030122 0.018021 0.299494 0.010007 0.037233 0.031276 0.029569 0.015107 0.070531 0.016082 0.015766 0.029034 0.034287 0.015248 0.090083 0.028403 0.020632 0.021827 0.110401 0.039702 0.018726 0.004812 0.086911 0.038846 0.000121 0.020871 0.086911 0.039915 0.157380 +0.541680 +0.031208 0.036646 0.031171 0.032553 0.016996 0.035726 0.011574 0.036759 0.031741 0.028585 0.016269 0.024215 0.015576 0.015872 0.028954 0.028787 0.014679 0.033720 0.027585 0.018997 0.021447 0.157380 0.041853 0.017449 0.006138 0.157380 0.038461 0.001253 0.020093 0.110401 0.041716 0.180870 +0.005427 +0.031985 0.039108 0.029646 0.028448 0.014208 0.056001 0.010681 0.037358 0.031070 0.028341 0.014927 0.020818 0.016433 0.015963 0.030004 0.029973 0.018641 0.112298 0.026694 0.020350 0.021018 0.110401 0.039522 0.012823 0.010594 0.086911 0.038257 0.001128 0.020207 0.086911 0.039383 0.133891 +0.163734 +0.032650 0.034467 0.028198 0.029925 0.018519 0.031546 0.011017 0.036257 0.028377 0.031790 0.016685 0.048157 0.015988 0.015759 0.028900 0.029398 0.015883 0.063197 0.029110 0.019473 0.022027 0.063422 0.041889 0.013033 0.005158 0.157380 0.041234 0.001208 0.020995 0.157380 0.038677 0.180870 +0.043913 +0.032094 0.033963 0.030807 0.028648 0.014858 0.089166 0.011340 0.035244 0.029015 0.029364 0.016940 0.022368 0.016267 0.016391 0.034695 0.031680 0.014305 0.068283 0.027449 0.019921 0.019808 0.086911 0.041889 0.017843 0.012123 0.063422 0.041649 0.001065 0.018793 0.110401 0.041125 0.133891 +0.096502 +0.028269 0.033642 0.033129 0.029836 0.014133 0.081240 0.010520 0.036115 0.035626 0.029297 0.017449 0.052242 0.015625 0.015932 0.028216 0.029678 0.014146 0.030768 0.028867 0.018834 0.022249 0.063422 0.040035 0.011874 0.005708 0.157380 0.039148 0.002046 0.019387 0.133891 0.041739 0.204360 +0.019588 +0.030671 0.035451 0.028974 0.030228 0.015186 0.098982 0.011201 0.036432 0.030959 0.029433 0.015822 0.025227 0.015753 0.016286 0.030843 0.030253 0.015135 0.127448 0.028210 0.019467 0.020504 0.086911 0.040237 0.012787 0.007091 0.133891 0.040656 0.000212 0.019628 0.133891 0.040665 0.204360 +0.211101 +0.030398 0.037812 0.035629 0.028313 0.017170 0.026976 0.010860 0.036210 0.031035 0.028476 0.015837 0.089493 0.015909 0.015578 0.029712 0.028345 0.014377 0.098788 0.029008 0.021116 0.020509 0.063422 0.039879 0.018768 0.011212 0.133891 0.039904 0.001665 0.018799 0.063422 0.040233 0.204360 +0.121990 +0.032853 0.039044 0.035112 0.028774 0.015046 0.052392 0.010916 0.037062 0.028490 0.041713 0.015333 0.099953 0.016318 0.015879 0.035455 0.035840 0.015703 0.043968 0.029036 0.019359 0.022492 0.110401 0.041576 0.013910 0.008101 0.110401 0.040661 0.001289 0.020490 0.086911 0.039870 0.133891 +0.159656 +0.032154 0.038793 0.043942 0.028578 0.018491 0.019961 0.009681 0.037220 0.029235 0.028880 0.015121 0.061392 0.015494 0.015972 0.032722 0.030710 0.015055 0.179514 0.028817 0.019071 0.019588 0.086911 0.041860 0.017594 0.011282 0.063422 0.042169 0.001870 0.020901 0.086911 0.039414 0.157380 +0.180685 +0.029051 0.039141 0.030319 0.031996 0.014106 0.170014 0.010270 0.035802 0.029523 0.028519 0.014638 0.030259 0.015503 0.016286 0.032737 0.030267 0.014670 0.023366 0.028050 0.019627 0.021324 0.063422 0.039077 0.011945 0.008307 0.133891 0.038749 0.002321 0.020425 0.086911 0.041389 0.180870 +0.180429 +0.028318 0.033600 0.029886 0.030559 0.015614 0.047148 0.011570 0.037412 0.028959 0.033623 0.017332 0.041721 0.015423 0.016132 0.032463 0.031614 0.018545 0.094169 0.029192 0.020275 0.019660 0.110401 0.041449 0.016387 0.013446 0.180870 0.039573 0.000919 0.021110 0.063422 0.040166 0.204360 +0.043315 +0.029761 0.036192 0.028540 0.034906 0.016248 0.024619 0.010037 0.037229 0.029480 0.031738 0.016249 0.198262 0.015995 0.016004 0.028766 0.028975 0.016469 0.023441 0.030143 0.020496 0.021846 0.133891 0.040347 0.017071 0.010476 0.063422 0.041600 0.000316 0.019150 0.110401 0.039837 0.157380 +0.197709 +0.030720 0.039694 0.029240 0.031616 0.017337 0.037178 0.010662 0.036458 0.028914 0.031975 0.015905 0.028029 0.016354 0.015833 0.028613 0.028994 0.015546 0.064071 0.028478 0.020500 0.019897 0.133891 0.038490 0.018311 0.007110 0.133891 0.038069 0.001016 0.020559 0.133891 0.039418 0.157380 +0.085740 +0.031139 0.036350 0.028324 0.028422 0.015023 0.123712 0.010776 0.036401 0.028927 0.030755 0.015151 0.028365 0.016342 0.015673 0.031731 0.030200 0.014545 0.118250 0.027041 0.020988 0.021965 0.086911 0.037606 0.017257 0.009982 0.133891 0.038372 0.001375 0.020213 0.110401 0.041875 0.157380 +0.306172 +0.028577 0.037108 0.028668 0.028309 0.017575 0.133985 0.011560 0.035682 0.028657 0.028795 0.016776 0.020970 0.015432 0.016213 0.032103 0.036445 0.014104 0.205439 0.027956 0.019736 0.019385 0.133891 0.041738 0.016388 0.008932 0.110401 0.040005 0.000730 0.020001 0.086911 0.040289 0.180870 +0.429824 +0.030493 0.034771 0.029863 0.028443 0.015572 0.026666 0.009773 0.036586 0.029998 0.031325 0.016185 0.164189 0.015035 0.016322 0.029026 0.029225 0.017119 0.072161 0.027171 0.019774 0.021936 0.110401 0.039601 0.013003 0.004798 0.086911 0.038667 0.000061 0.019530 0.063422 0.038084 0.133891 +0.316958 +0.032500 0.038520 0.029570 0.030720 0.015443 0.135909 0.011156 0.036212 0.029437 0.031485 0.015498 0.025173 0.015489 0.015954 0.029640 0.029548 0.014167 0.054757 0.029907 0.018995 0.021367 0.133891 0.037613 0.012715 0.007646 0.157380 0.038887 0.001646 0.019178 0.086911 0.039350 0.204360 +0.162492 +0.029762 0.037339 0.031236 0.028699 0.018450 0.028441 0.009658 0.036881 0.030567 0.029599 0.018181 0.104863 0.015823 0.015793 0.038063 0.029647 0.017724 0.039246 0.027953 0.019220 0.023250 0.086911 0.041931 0.015863 0.005253 0.086911 0.037768 0.002139 0.020738 0.086911 0.041658 0.133891 +0.089741 +0.032445 0.036100 0.028422 0.029739 0.016379 0.200720 0.011012 0.037400 0.028741 0.035311 0.015121 0.105940 0.015826 0.016189 0.029759 0.033537 0.016356 0.088637 0.029289 0.020470 0.021174 0.157380 0.038375 0.013998 0.008297 0.133891 0.040325 0.000005 0.020834 0.133891 0.039340 0.180870 +0.543999 +0.029929 0.034273 0.033787 0.030360 0.018197 0.443398 0.010203 0.036810 0.030817 0.036981 0.015335 0.137832 0.015721 0.016256 0.030111 0.029109 0.018479 0.112111 0.029703 0.019756 0.021319 0.063422 0.039692 0.015203 0.005292 0.086911 0.039772 0.001192 0.019614 0.063422 0.041807 0.157380 +0.737809 +0.032229 0.035444 0.030238 0.031171 0.016770 0.315661 0.011084 0.035978 0.029010 0.036473 0.016460 0.066142 0.015534 0.015733 0.031445 0.028417 0.017510 0.049269 0.027058 0.020573 0.022509 0.110401 0.041069 0.018652 0.010757 0.086911 0.038848 0.002113 0.020713 0.086911 0.042121 0.133891 +0.653111 +0.030740 0.034693 0.029227 0.031196 0.018687 0.031161 0.009968 0.036568 0.033989 0.029918 0.017909 0.037788 0.015702 0.015924 0.031417 0.030855 0.017488 0.082570 0.028133 0.020312 0.022805 0.133891 0.041357 0.013454 0.009202 0.180870 0.038575 0.000569 0.020129 0.180870 0.038206 0.204360 +0.091719 +0.031479 0.035890 0.029122 0.028472 0.017819 0.085550 0.009589 0.036416 0.028601 0.030360 0.014905 0.073470 0.015955 0.016314 0.028719 0.028387 0.014259 0.222009 0.026911 0.021061 0.018822 0.110401 0.039811 0.015656 0.007683 0.110401 0.038837 0.000735 0.018977 0.110401 0.040812 0.180870 +0.454438 +0.030087 0.032941 0.030125 0.033501 0.016227 0.049940 0.009702 0.036625 0.028920 0.029549 0.018045 0.028525 0.015743 0.016156 0.029246 0.029314 0.016341 0.020015 0.026497 0.020135 0.023426 0.110401 0.042217 0.014555 0.009069 0.063422 0.042137 0.000617 0.019456 0.110401 0.042211 0.180870 +0.004291 +0.030042 0.036650 0.028428 0.029641 0.017431 0.031629 0.010066 0.036793 0.030373 0.029289 0.018708 0.027818 0.016103 0.015879 0.029991 0.028532 0.016943 0.400527 0.029657 0.018987 0.018988 0.157380 0.040943 0.016425 0.006560 0.063422 0.038267 0.001222 0.019172 0.133891 0.041060 0.204360 +0.622621 +0.030692 0.036315 0.029106 0.030739 0.016607 0.023818 0.010848 0.036518 0.029457 0.031628 0.016456 0.059841 0.015558 0.016241 0.030687 0.029530 0.016470 0.101260 0.027626 0.019220 0.023015 0.063422 0.039482 0.016498 0.010960 0.063422 0.038283 0.001495 0.019077 0.180870 0.039758 0.204360 +0.087037 +0.030107 0.037001 0.028852 0.028885 0.017373 0.027236 0.011588 0.037275 0.028612 0.028206 0.014460 0.053593 0.016381 0.015895 0.035900 0.031381 0.014397 0.095033 0.030164 0.021003 0.023133 0.110401 0.038562 0.012257 0.010320 0.110401 0.041139 0.000514 0.018917 0.086911 0.038462 0.133891 +0.169454 +0.030055 0.033763 0.031389 0.028931 0.018235 0.020541 0.011723 0.037042 0.035565 0.030809 0.014859 0.057829 0.016362 0.016093 0.031180 0.028235 0.016242 0.098570 0.028282 0.019667 0.020082 0.110401 0.039880 0.017599 0.006629 0.110401 0.040444 0.000680 0.020249 0.086911 0.042204 0.133891 +0.176434 +0.028710 0.033874 0.028689 0.031574 0.017152 0.179961 0.011427 0.037352 0.031640 0.031063 0.014160 0.019514 0.015992 0.015971 0.031403 0.030046 0.016127 0.227847 0.027047 0.018898 0.021351 0.063422 0.038644 0.016732 0.006004 0.063422 0.039632 0.001317 0.020535 0.086911 0.040963 0.204360 +0.538457 +0.028499 0.037793 0.028790 0.034859 0.018486 0.074548 0.011657 0.036769 0.028532 0.028858 0.016096 0.054726 0.015153 0.015999 0.029986 0.028945 0.014374 0.110227 0.027751 0.020599 0.019789 0.086911 0.041398 0.012885 0.012751 0.110401 0.038781 0.001021 0.020593 0.110401 0.041704 0.133891 +0.236653 +0.030034 0.033870 0.028215 0.029951 0.015678 0.057365 0.010519 0.036896 0.030855 0.030950 0.015310 0.240014 0.016192 0.015812 0.033017 0.030317 0.017480 0.031746 0.030312 0.020075 0.019034 0.180870 0.037899 0.015535 0.005279 0.063422 0.039983 0.001312 0.021014 0.180870 0.038943 0.204360 +0.360414 +0.032116 0.039091 0.029188 0.033987 0.014194 0.063834 0.011516 0.035747 0.028915 0.028595 0.016942 0.022198 0.015375 0.015742 0.031754 0.031724 0.014813 0.053359 0.026749 0.020818 0.023345 0.180870 0.039309 0.013113 0.004912 0.133891 0.039532 0.001285 0.020384 0.110401 0.038490 0.204360 +0.046561 +0.029464 0.037796 0.029157 0.028347 0.016938 0.102238 0.011155 0.036043 0.028392 0.031078 0.016363 0.136151 0.015288 0.015944 0.028308 0.033631 0.017083 0.046729 0.029161 0.019677 0.020187 0.157380 0.039189 0.016515 0.008802 0.157380 0.041074 0.002048 0.019691 0.110401 0.041523 0.180870 +0.312220 +0.031284 0.034667 0.033202 0.030871 0.015744 0.139471 0.010689 0.036018 0.033326 0.035479 0.016221 0.150059 0.015515 0.016307 0.028963 0.031059 0.017380 0.331388 0.030317 0.019773 0.019089 0.157380 0.039935 0.016348 0.013649 0.086911 0.039296 0.001496 0.019766 0.133891 0.041131 0.180870 +0.769736 +0.031892 0.036656 0.030957 0.028650 0.015962 0.020733 0.011566 0.036575 0.029287 0.028337 0.015476 0.018736 0.016120 0.015672 0.030212 0.032539 0.014242 0.065982 0.029803 0.021031 0.023012 0.063422 0.038472 0.016183 0.005984 0.086911 0.041063 0.001364 0.019033 0.086911 0.038556 0.157380 +0 +0.029744 0.033317 0.032132 0.033923 0.016626 0.019919 0.010704 0.036594 0.036892 0.031061 0.017983 0.123048 0.016213 0.016250 0.030546 0.032636 0.017639 0.123717 0.027238 0.020168 0.022161 0.086911 0.039991 0.014247 0.011402 0.063422 0.039493 0.000447 0.019282 0.110401 0.039889 0.133891 +0.261845 +0.029063 0.038420 0.039149 0.028405 0.016255 0.115958 0.009901 0.035879 0.031639 0.030300 0.016942 0.088824 0.016431 0.015944 0.033717 0.033741 0.017040 0.136456 0.028259 0.018819 0.022873 0.063422 0.038231 0.014295 0.005148 0.110401 0.038472 0.000756 0.020848 0.110401 0.038008 0.133891 +0.473755 +0.029946 0.033552 0.028268 0.030903 0.015087 0.163284 0.010817 0.035981 0.029911 0.032302 0.017648 0.035116 0.016344 0.016258 0.032282 0.033986 0.014258 0.054046 0.027996 0.019800 0.022734 0.063422 0.038447 0.018315 0.005795 0.063422 0.038740 0.000978 0.019281 0.086911 0.040027 0.133891 +0.381223 +0.029405 0.038018 0.030494 0.029894 0.014338 0.279535 0.011677 0.037095 0.030935 0.031213 0.016974 0.062761 0.015814 0.015841 0.032057 0.029418 0.018252 0.074973 0.032043 0.019921 0.022219 0.063422 0.039758 0.018593 0.004782 0.086911 0.041021 0.001365 0.019098 0.063422 0.037673 0.157380 +0.396894 +0.030214 0.038990 0.028389 0.029118 0.014397 0.256067 0.010477 0.035564 0.032073 0.029190 0.015815 0.023978 0.015069 0.016179 0.030495 0.032432 0.015171 0.081341 0.029583 0.020245 0.019800 0.063422 0.041471 0.013221 0.010707 0.086911 0.041905 0.000392 0.019566 0.110401 0.041516 0.133891 +0.385928 +0.029005 0.036732 0.033681 0.034944 0.017770 0.188316 0.010368 0.036663 0.029039 0.031787 0.018355 0.063963 0.015514 0.016201 0.031895 0.028416 0.014645 0.352147 0.029732 0.020792 0.019262 0.063422 0.038533 0.013418 0.007696 0.157380 0.040134 0.001058 0.021120 0.110401 0.040228 0.180870 +0.732711 +0.032701 0.033545 0.029202 0.036243 0.016250 0.049308 0.011474 0.037552 0.029319 0.034199 0.017388 0.092853 0.015971 0.016067 0.028517 0.029666 0.017535 0.066315 0.026274 0.021081 0.023214 0.063422 0.039912 0.015378 0.012754 0.086911 0.038729 0.001000 0.019282 0.086911 0.041254 0.133891 +0.118004 +0.029155 0.035061 0.031171 0.028486 0.016001 0.022242 0.009918 0.035575 0.029337 0.031006 0.015008 0.037847 0.015442 0.016391 0.028885 0.029980 0.016911 0.609680 0.027846 0.019822 0.018836 0.110401 0.041168 0.018091 0.011926 0.110401 0.038320 0.002276 0.019098 0.110401 0.041823 0.133891 +0.834047 +0.030523 0.033636 0.030137 0.030333 0.016767 0.080573 0.009670 0.035959 0.028750 0.028846 0.016889 0.111214 0.015446 0.016001 0.033389 0.028730 0.015148 0.117040 0.028252 0.019614 0.020890 0.063422 0.040672 0.015592 0.008714 0.110401 0.038005 0.001761 0.020297 0.110401 0.041486 0.180870 +0.255107 +0.030188 0.035007 0.029051 0.031595 0.017316 0.032612 0.009922 0.035623 0.028249 0.028983 0.018613 0.056828 0.015070 0.015937 0.033681 0.029571 0.015453 0.046630 0.029962 0.018794 0.021840 0.133891 0.040809 0.012968 0.011780 0.110401 0.040780 0.001858 0.021134 0.086911 0.040848 0.180870 +0.015207 +0.029666 0.038930 0.029604 0.028395 0.016612 0.180957 0.011150 0.036127 0.030773 0.028813 0.014509 0.339375 0.015572 0.016032 0.033547 0.028355 0.017837 0.135291 0.028239 0.020964 0.019546 0.063422 0.041114 0.018343 0.010833 0.063422 0.039155 0.000329 0.019268 0.180870 0.038314 0.204360 +0.797374 +0.029773 0.034235 0.030022 0.029463 0.015991 0.093169 0.011359 0.036018 0.029093 0.028322 0.016208 0.045765 0.016103 0.015783 0.028584 0.028334 0.018651 0.097071 0.029717 0.019481 0.018867 0.086911 0.037993 0.011897 0.005552 0.086911 0.037753 0.002324 0.018983 0.157380 0.037875 0.180870 +0.343316 +0.029611 0.035791 0.028596 0.034989 0.014993 0.083554 0.011446 0.036532 0.031896 0.028256 0.016164 0.115197 0.016112 0.015765 0.028327 0.029899 0.014637 0.018193 0.027952 0.020139 0.018965 0.063422 0.041733 0.016703 0.006757 0.086911 0.039827 0.002271 0.020884 0.110401 0.038261 0.133891 +0.219750 +0.031755 0.034062 0.034191 0.028208 0.016688 0.078415 0.009854 0.035856 0.032390 0.028653 0.015887 0.061854 0.015076 0.015949 0.031077 0.030580 0.014568 0.034761 0.028537 0.019748 0.019598 0.157380 0.040544 0.016339 0.010135 0.086911 0.041174 0.000914 0.020962 0.110401 0.038102 0.204360 +0.023813 +0.030213 0.035537 0.029909 0.028753 0.014113 0.072856 0.010483 0.035744 0.034955 0.031629 0.017486 0.040073 0.015585 0.016315 0.029459 0.039100 0.018484 0.020656 0.026975 0.020506 0.019274 0.157380 0.040703 0.015931 0.004934 0.110401 0.040532 0.001217 0.019954 0.133891 0.039026 0.180870 +0.067018 +0.032860 0.033428 0.029910 0.029259 0.018523 0.039726 0.009946 0.036594 0.039972 0.032629 0.016624 0.085174 0.015393 0.016397 0.029525 0.032117 0.014151 0.035058 0.028509 0.020418 0.020492 0.110401 0.039049 0.014767 0.008464 0.086911 0.041588 0.001452 0.019048 0.157380 0.041606 0.204360 +0.037999 +0.032410 0.035061 0.030737 0.029666 0.017392 0.018585 0.009530 0.036146 0.028807 0.028857 0.014520 0.027938 0.015131 0.015586 0.032286 0.037404 0.016062 0.105000 0.027639 0.019775 0.019442 0.063422 0.038622 0.014428 0.007514 0.110401 0.039906 0.000049 0.019352 0.133891 0.041219 0.157380 +0.068788 +0.028996 0.036031 0.029091 0.035172 0.016783 0.045374 0.010313 0.037171 0.028649 0.030769 0.018695 0.033290 0.015161 0.015932 0.031137 0.028560 0.016926 0.082632 0.028869 0.019063 0.022270 0.086911 0.041359 0.011852 0.007531 0.157380 0.041572 0.000062 0.020274 0.086911 0.038246 0.180870 +0.069807 +0.030383 0.035929 0.028934 0.031694 0.015174 0.188874 0.011084 0.037304 0.028630 0.030535 0.015433 0.027729 0.015929 0.015518 0.038828 0.031236 0.015150 0.024611 0.028775 0.020057 0.022036 0.086911 0.039895 0.017481 0.012680 0.063422 0.041503 0.001132 0.020079 0.063422 0.037599 0.133891 +0.266962 +0.028909 0.038150 0.028266 0.028229 0.014111 0.069656 0.010294 0.035389 0.029140 0.028309 0.014974 0.032909 0.015892 0.016166 0.028313 0.031594 0.018339 0.057443 0.027839 0.020322 0.021930 0.063422 0.041031 0.017299 0.007428 0.086911 0.040109 0.002160 0.020574 0.110401 0.041628 0.133891 +0.080882 +0.030769 0.035439 0.028561 0.029812 0.017440 0.145820 0.010266 0.035784 0.028433 0.029626 0.016908 0.106131 0.015097 0.015624 0.030430 0.028480 0.014661 0.187895 0.029261 0.019384 0.022338 0.133891 0.042206 0.018273 0.008583 0.063422 0.041097 0.001983 0.020252 0.086911 0.042136 0.157380 +0.530412 +0.029974 0.033481 0.028656 0.030256 0.015560 0.137444 0.010823 0.035937 0.030108 0.028549 0.017733 0.064037 0.016149 0.015706 0.028524 0.028358 0.017608 0.083951 0.028269 0.019465 0.021416 0.086911 0.038628 0.013994 0.011270 0.110401 0.040376 0.000451 0.020597 0.110401 0.037851 0.204360 +0.211281 +0.031558 0.036922 0.029618 0.029589 0.017273 0.077490 0.011256 0.037315 0.029135 0.037293 0.015982 0.018561 0.016043 0.016385 0.030843 0.031332 0.016398 0.030022 0.025178 0.018827 0.022408 0.133891 0.037602 0.018762 0.013052 0.063422 0.041639 0.000652 0.021061 0.086911 0.040998 0.157380 +0.057553 +0.032586 0.036249 0.028266 0.033984 0.014929 0.072711 0.010865 0.037024 0.032203 0.029048 0.016471 0.088636 0.015994 0.015878 0.030980 0.030468 0.015094 0.044510 0.026604 0.020523 0.021150 0.110401 0.041238 0.014245 0.007096 0.063422 0.041067 0.000276 0.020242 0.133891 0.041864 0.157380 +0.194286 +0.031922 0.037149 0.030614 0.029209 0.015962 0.035121 0.010845 0.036219 0.028589 0.028654 0.015557 0.053387 0.016226 0.016140 0.030098 0.033533 0.018476 0.065198 0.028717 0.020229 0.019833 0.063422 0.041783 0.017026 0.009643 0.110401 0.039838 0.001655 0.018823 0.086911 0.039073 0.157380 +0.024540 +0.028822 0.036390 0.028617 0.028544 0.014848 0.045006 0.009602 0.036328 0.036215 0.028495 0.016001 0.025599 0.015199 0.015844 0.031088 0.028264 0.015409 0.102918 0.028902 0.019135 0.021377 0.063422 0.042163 0.017481 0.009541 0.133891 0.042267 0.001616 0.020461 0.133891 0.038235 0.157380 +0.091251 +0.028842 0.039626 0.031313 0.033608 0.014297 0.077010 0.011057 0.037501 0.028486 0.032521 0.017885 0.023678 0.016220 0.016364 0.028780 0.035729 0.016510 0.056457 0.027329 0.019816 0.023052 0.063422 0.041720 0.011926 0.005447 0.063422 0.041705 0.001757 0.020135 0.110401 0.038872 0.133891 +0.043712 +0.032621 0.034850 0.038629 0.028457 0.017732 0.020519 0.009786 0.036836 0.029669 0.029709 0.018129 0.136316 0.016298 0.015609 0.029836 0.029225 0.017490 0.094668 0.027267 0.020435 0.018988 0.133891 0.038958 0.013075 0.008324 0.157380 0.037930 0.001800 0.020075 0.063422 0.039101 0.180870 +0.267373 +0.029124 0.038632 0.030321 0.030064 0.016367 0.019572 0.010187 0.035695 0.028558 0.028264 0.015143 0.184634 0.016081 0.016233 0.028229 0.028609 0.016470 0.333619 0.026663 0.018997 0.023238 0.133891 0.038816 0.018181 0.010508 0.133891 0.039061 0.001293 0.020779 0.086911 0.039109 0.157380 +0.753239 +0.028211 0.038184 0.029516 0.030688 0.015867 0.052162 0.010657 0.035914 0.029358 0.032878 0.014956 0.431026 0.015549 0.015504 0.028619 0.030471 0.018453 0.027590 0.027273 0.019106 0.021653 0.157380 0.037965 0.016070 0.012725 0.063422 0.038010 0.001173 0.018851 0.086911 0.041162 0.204360 +0.695554 +0.032841 0.033460 0.032667 0.030416 0.016123 0.041693 0.009476 0.036126 0.029017 0.029069 0.015428 0.023721 0.016393 0.015665 0.028827 0.030163 0.016785 0.115726 0.026184 0.020081 0.019106 0.086911 0.042109 0.012716 0.005934 0.086911 0.041412 0.001521 0.019470 0.110401 0.041940 0.180870 +0.137731 +0.029100 0.033493 0.035177 0.028607 0.018369 0.331822 0.009511 0.037301 0.031105 0.028804 0.014940 0.033659 0.015443 0.015539 0.028807 0.028578 0.014260 0.216552 0.029260 0.019961 0.019286 0.086911 0.038894 0.017259 0.005614 0.063422 0.040621 0.000032 0.019298 0.086911 0.042080 0.133891 +0.763545 +0.029747 0.035638 0.028841 0.036909 0.018560 0.054160 0.009983 0.035392 0.029425 0.032601 0.014655 0.186897 0.016338 0.015755 0.032726 0.029216 0.015880 0.098834 0.029370 0.020727 0.021011 0.063422 0.040114 0.013300 0.013672 0.110401 0.039141 0.000491 0.019272 0.063422 0.040588 0.133891 +0.364832 +0.030499 0.036233 0.039764 0.033421 0.016506 0.060231 0.010696 0.036616 0.028568 0.029868 0.014633 0.064354 0.015034 0.016080 0.029196 0.029631 0.016271 0.095746 0.026349 0.019642 0.019993 0.086911 0.038748 0.014718 0.010380 0.063422 0.040844 0.000830 0.020100 0.133891 0.041851 0.157380 +0.193401 +0.029944 0.034667 0.029586 0.029427 0.018370 0.057038 0.011119 0.035825 0.028305 0.031869 0.018124 0.037648 0.015772 0.015949 0.029110 0.032473 0.016640 0.128340 0.027327 0.019712 0.022073 0.110401 0.039551 0.017869 0.010189 0.133891 0.041941 0.001232 0.020033 0.086911 0.038052 0.157380 +0.164050 +0.032344 0.035847 0.028212 0.030031 0.018274 0.022407 0.011540 0.037187 0.028933 0.032893 0.017517 0.078589 0.016337 0.015572 0.031457 0.037706 0.016736 0.073585 0.028245 0.020320 0.021507 0.133891 0.038854 0.014823 0.004862 0.133891 0.038122 0.000266 0.020942 0.063422 0.037753 0.204360 +0.067761 +0.029929 0.036851 0.029381 0.028530 0.017891 0.091157 0.011137 0.036985 0.034601 0.034511 0.017503 0.040544 0.015259 0.015759 0.029420 0.032490 0.018741 0.034788 0.028662 0.020026 0.019695 0.133891 0.040364 0.018675 0.010645 0.063422 0.040681 0.001684 0.020713 0.063422 0.040150 0.204360 +0.006037 +0.028624 0.035738 0.028586 0.028936 0.018512 0.055428 0.010072 0.037023 0.032049 0.034071 0.015059 0.021116 0.015434 0.016421 0.030732 0.032641 0.014337 0.089826 0.027576 0.019725 0.020205 0.110401 0.040295 0.017200 0.004775 0.063422 0.038599 0.000202 0.019845 0.063422 0.040409 0.133891 +0.144415 +0.032491 0.038999 0.028225 0.028979 0.017920 0.206003 0.009541 0.036750 0.030044 0.030751 0.017790 0.184045 0.015595 0.015576 0.028407 0.029915 0.015057 0.126433 0.026278 0.020504 0.021460 0.110401 0.039472 0.014442 0.005032 0.180870 0.038175 0.000645 0.020488 0.180870 0.040146 0.204360 +0.570026 +0.031670 0.035808 0.035406 0.033257 0.015867 0.064488 0.010531 0.035844 0.029257 0.029176 0.016626 0.046760 0.015155 0.015739 0.028778 0.032381 0.015571 0.073572 0.028453 0.019703 0.020592 0.110401 0.039797 0.013569 0.010431 0.063422 0.041571 0.002168 0.019045 0.086911 0.041765 0.133891 +0.124762 +0.030781 0.033579 0.029177 0.030881 0.017321 0.019829 0.010410 0.036907 0.029981 0.029657 0.015121 0.047155 0.015213 0.015958 0.028459 0.030081 0.018753 0.136662 0.027662 0.018875 0.019939 0.157380 0.040251 0.012263 0.010967 0.133891 0.041877 0.000750 0.019090 0.110401 0.042212 0.180870 +0.115070 +0.031365 0.036907 0.029225 0.028574 0.014860 0.080755 0.010209 0.035390 0.028984 0.028562 0.015768 0.041432 0.015226 0.016221 0.028902 0.031335 0.014793 0.114534 0.028894 0.021008 0.020908 0.180870 0.037605 0.014347 0.005483 0.110401 0.039359 0.000071 0.018914 0.133891 0.041669 0.204360 +0.198417 +0.031829 0.036486 0.032097 0.031218 0.016432 0.072174 0.011712 0.035971 0.032230 0.030128 0.014779 0.056902 0.016142 0.016215 0.028291 0.029590 0.014746 0.075470 0.028463 0.019550 0.021122 0.110401 0.040195 0.015044 0.009400 0.180870 0.038870 0.002105 0.020061 0.180870 0.041854 0.204360 +0.113200 +0.030338 0.037008 0.028231 0.030923 0.014784 0.033821 0.011041 0.037418 0.031457 0.028234 0.016758 0.250534 0.015224 0.016308 0.034135 0.032960 0.014474 0.024690 0.027624 0.018802 0.021757 0.086911 0.041132 0.011945 0.005626 0.110401 0.040155 0.000813 0.019477 0.086911 0.040354 0.133891 +0.437091 +0.031406 0.038159 0.028966 0.034916 0.017995 0.083497 0.011067 0.036263 0.029352 0.031387 0.017956 0.127965 0.015832 0.016142 0.030218 0.029442 0.015793 0.184519 0.027418 0.020943 0.019973 0.157380 0.038469 0.017521 0.012255 0.133891 0.040096 0.000497 0.019451 0.063422 0.040749 0.180870 +0.492184 +0.031291 0.038201 0.028838 0.035115 0.014467 0.022704 0.010095 0.037423 0.028444 0.031026 0.014185 0.069181 0.015836 0.016378 0.030511 0.032523 0.018681 0.027634 0.027320 0.019095 0.020224 0.110401 0.041918 0.013098 0.012401 0.063422 0.039121 0.000531 0.020734 0.086911 0.041266 0.133891 +0.052169 +0.028672 0.035365 0.037224 0.028830 0.016934 0.066779 0.011594 0.035426 0.037628 0.031913 0.018110 0.024334 0.015070 0.015685 0.028655 0.029084 0.014355 0.073685 0.028384 0.019848 0.020070 0.110401 0.039057 0.016761 0.008777 0.063422 0.038257 0.001531 0.020869 0.133891 0.042217 0.157380 +0.051544 +0.031229 0.039206 0.031229 0.033999 0.014197 0.107293 0.011310 0.036773 0.030269 0.029101 0.014289 0.029856 0.015167 0.015819 0.029653 0.032692 0.015494 0.210649 0.028322 0.019784 0.021259 0.110401 0.040105 0.018757 0.010950 0.110401 0.041832 0.002063 0.020855 0.133891 0.041230 0.180870 +0.322876 +0.029514 0.038925 0.028391 0.029664 0.016305 0.062047 0.011445 0.036469 0.036051 0.031553 0.014881 0.180074 0.016034 0.016313 0.029347 0.030009 0.014167 0.033311 0.027241 0.019696 0.018857 0.063422 0.039076 0.016993 0.011028 0.133891 0.039742 0.000130 0.019346 0.133891 0.038661 0.157380 +0.275630 +0.032099 0.036699 0.034909 0.028434 0.014929 0.040438 0.011448 0.036942 0.029420 0.029991 0.017084 0.162851 0.015136 0.016183 0.030135 0.035849 0.018132 0.027486 0.026995 0.019330 0.018818 0.157380 0.042074 0.014761 0.011623 0.157380 0.038136 0.001288 0.020365 0.133891 0.040166 0.204360 +0.095826 +0.032524 0.036352 0.033752 0.030838 0.017492 0.052043 0.011603 0.037295 0.031933 0.031630 0.014100 0.081977 0.015158 0.016109 0.039486 0.029808 0.015123 0.043942 0.026864 0.020388 0.019855 0.086911 0.042044 0.017099 0.004901 0.086911 0.041632 0.000391 0.021006 0.086911 0.039550 0.133891 +0.134199 +0.030740 0.033984 0.032003 0.028708 0.016188 0.043427 0.009467 0.035483 0.030040 0.029788 0.018346 0.091273 0.016168 0.015984 0.028842 0.035140 0.017030 0.052042 0.028491 0.019666 0.023416 0.086911 0.038521 0.015007 0.007081 0.110401 0.039714 0.000845 0.020274 0.110401 0.037942 0.157380 +0.130395 +0.029820 0.035961 0.031031 0.030432 0.014484 0.194373 0.010664 0.037330 0.028968 0.033115 0.014238 0.140644 0.016349 0.015907 0.030874 0.028465 0.018137 0.036885 0.027027 0.020964 0.020172 0.110401 0.041883 0.016802 0.011927 0.110401 0.042133 0.001777 0.020470 0.063422 0.038641 0.157380 +0.422407 +0.032627 0.033184 0.032252 0.029029 0.017447 0.020187 0.009895 0.036338 0.028330 0.031412 0.018033 0.065430 0.015357 0.015886 0.030975 0.033125 0.014642 0.029080 0.029190 0.020887 0.021804 0.086911 0.037962 0.012064 0.012504 0.110401 0.040535 0.002074 0.021126 0.133891 0.040402 0.204360 +0.001127 +0.029306 0.033827 0.032030 0.029003 0.016332 0.107648 0.010107 0.035978 0.028604 0.028410 0.017449 0.121862 0.016250 0.015871 0.029446 0.032835 0.015221 0.044766 0.029185 0.019378 0.021428 0.133891 0.041670 0.014370 0.011164 0.157380 0.042016 0.000124 0.020727 0.110401 0.040521 0.180870 +0.198090 +0.030276 0.036232 0.029054 0.029658 0.018601 0.302024 0.009880 0.036941 0.029117 0.029382 0.016652 0.140250 0.015159 0.015627 0.033425 0.029280 0.016933 0.023604 0.030078 0.018858 0.021036 0.063422 0.042271 0.015215 0.010791 0.133891 0.041579 0.001582 0.019533 0.157380 0.037910 0.204360 +0.542785 +0.030126 0.033351 0.028772 0.030432 0.017884 0.036827 0.010847 0.036652 0.030134 0.031977 0.017200 0.122739 0.016383 0.015798 0.028598 0.029177 0.016861 0.022493 0.027885 0.020826 0.021217 0.180870 0.041768 0.016102 0.007807 0.133891 0.039904 0.000795 0.020697 0.180870 0.038795 0.204360 +0.101577 +0.029199 0.032916 0.030197 0.028233 0.016556 0.049213 0.010434 0.036404 0.029008 0.028550 0.015515 0.078278 0.015354 0.015737 0.035392 0.030309 0.016219 0.146223 0.028488 0.019791 0.022597 0.086911 0.041620 0.016294 0.008005 0.133891 0.041656 0.000046 0.020613 0.086911 0.039494 0.180870 +0.255554 +0.029296 0.035806 0.028426 0.032075 0.014152 0.039248 0.009761 0.037215 0.036149 0.030804 0.018694 0.064075 0.015271 0.016326 0.028998 0.035692 0.017591 0.141017 0.028356 0.020032 0.018925 0.157380 0.037855 0.018696 0.010413 0.086911 0.042085 0.001135 0.019937 0.133891 0.037635 0.180870 +0.197648 +0.029759 0.033794 0.030910 0.028207 0.015091 0.088853 0.011174 0.035711 0.029683 0.028849 0.017015 0.112586 0.015660 0.016168 0.028293 0.028622 0.017641 0.320341 0.029087 0.019392 0.019213 0.157380 0.041134 0.015281 0.012502 0.086911 0.041663 0.000458 0.020351 0.157380 0.040230 0.180870 +0.632533 +0.028877 0.034294 0.032005 0.040230 0.017307 0.089485 0.011417 0.036113 0.028464 0.030721 0.014184 0.034873 0.015280 0.015898 0.028329 0.029392 0.014777 0.041984 0.028134 0.019770 0.019433 0.110401 0.039167 0.016155 0.010642 0.086911 0.041260 0.001464 0.021031 0.110401 0.039799 0.133891 +0.093164 +0.031542 0.037614 0.028687 0.032332 0.018253 0.126826 0.009822 0.037465 0.029267 0.029587 0.015356 0.053091 0.016283 0.015759 0.029152 0.029375 0.017158 0.033857 0.027496 0.020620 0.023210 0.110401 0.040205 0.017512 0.009621 0.133891 0.040708 0.001891 0.019606 0.110401 0.040530 0.180870 +0.160583 +0.031033 0.035826 0.032075 0.029265 0.018358 0.051269 0.011668 0.037014 0.028222 0.034211 0.016973 0.108491 0.015809 0.016171 0.028486 0.028724 0.014246 0.036660 0.028657 0.019130 0.019320 0.063422 0.038304 0.015441 0.009234 0.110401 0.039574 0.000902 0.019255 0.086911 0.041660 0.180870 +0.134144 +0.031573 0.038413 0.029158 0.029833 0.014874 0.023645 0.010578 0.037549 0.029910 0.028749 0.015244 0.028394 0.015038 0.016256 0.029143 0.031981 0.017670 0.025299 0.027355 0.020870 0.019722 0.063422 0.038345 0.013565 0.007815 0.110401 0.039406 0.001111 0.018819 0.086911 0.041674 0.133891 +0 +0.030536 0.038403 0.034422 0.037467 0.017194 0.068552 0.010833 0.036136 0.029808 0.029743 0.016804 0.160009 0.016306 0.015955 0.030169 0.028487 0.016264 0.099337 0.030738 0.020414 0.020843 0.110401 0.040634 0.014331 0.006702 0.063422 0.041954 0.002254 0.020321 0.110401 0.038341 0.133891 +0.361785 +0.031198 0.039072 0.028576 0.028708 0.015339 0.026756 0.009528 0.035933 0.032370 0.030322 0.017036 0.045270 0.015526 0.015758 0.030180 0.028555 0.018467 0.056974 0.028344 0.019653 0.020810 0.133891 0.040974 0.012630 0.012052 0.133891 0.040102 0.000111 0.019826 0.110401 0.038928 0.180870 +0.016617 +0.031815 0.033679 0.037410 0.030788 0.015368 0.096557 0.011595 0.036423 0.028642 0.030649 0.017597 0.041973 0.015704 0.015884 0.031840 0.030265 0.018524 0.043473 0.028360 0.018998 0.021459 0.086911 0.041703 0.012459 0.011114 0.157380 0.039766 0.000564 0.020072 0.157380 0.040066 0.204360 +0.075672 +0.029648 0.039155 0.029181 0.030517 0.016455 0.043471 0.011744 0.036471 0.028535 0.028554 0.018584 0.030976 0.015184 0.016275 0.028641 0.029053 0.014161 0.028611 0.028407 0.019137 0.023421 0.063422 0.040007 0.013496 0.013746 0.086911 0.038526 0.001677 0.019390 0.133891 0.041097 0.157380 +0.002790 +0.029029 0.036697 0.028424 0.031390 0.016561 0.207766 0.009917 0.036155 0.028213 0.028313 0.016005 0.025912 0.016221 0.016197 0.030834 0.030854 0.014213 0.143081 0.028296 0.020459 0.021044 0.133891 0.040533 0.013120 0.006487 0.063422 0.040970 0.000434 0.019610 0.063422 0.038938 0.180870 +0.442131 +0.029101 0.036436 0.028818 0.029520 0.018595 0.038205 0.009405 0.036055 0.029847 0.034905 0.018489 0.038704 0.015563 0.016317 0.030718 0.030275 0.017028 0.203495 0.026960 0.019061 0.020428 0.063422 0.039519 0.015722 0.012976 0.157380 0.040028 0.001541 0.018861 0.086911 0.038901 0.204360 +0.312969 +0.029101 0.034465 0.037767 0.028705 0.017885 0.037438 0.011441 0.036782 0.029007 0.030286 0.018248 0.131629 0.015510 0.015876 0.028878 0.030121 0.018421 0.040449 0.028657 0.019792 0.019513 0.110401 0.038459 0.017179 0.006534 0.110401 0.037602 0.001182 0.019614 0.110401 0.037781 0.133891 +0.254400 +0.028707 0.037436 0.031722 0.033341 0.016580 0.059210 0.011393 0.035527 0.031817 0.032086 0.017207 0.049151 0.015212 0.015772 0.030241 0.028208 0.017460 0.024323 0.028511 0.020118 0.019482 0.110401 0.038773 0.012565 0.009472 0.110401 0.039282 0.000197 0.020189 0.063422 0.040497 0.157380 +0.063762 +0.032406 0.036489 0.032210 0.034460 0.014663 0.027087 0.010902 0.037224 0.033001 0.031036 0.015547 0.235828 0.015930 0.016229 0.037686 0.028819 0.018173 0.093192 0.028793 0.019213 0.021616 0.063422 0.040150 0.014623 0.007205 0.110401 0.037893 0.000111 0.019469 0.110401 0.041011 0.204360 +0.421605 +0.028925 0.033789 0.032773 0.028341 0.018099 0.107101 0.009636 0.036989 0.032969 0.028654 0.017408 0.044241 0.015400 0.016345 0.029288 0.029134 0.014829 0.214467 0.027230 0.019899 0.019976 0.086911 0.040316 0.014577 0.012019 0.110401 0.042256 0.000457 0.019877 0.063422 0.040740 0.133891 +0.501149 +0.032710 0.038508 0.028366 0.031704 0.014510 0.157179 0.009639 0.035875 0.028813 0.031533 0.016349 0.111220 0.015670 0.015815 0.031023 0.028265 0.017845 0.022331 0.029371 0.020481 0.019455 0.180870 0.040245 0.013341 0.006325 0.086911 0.041671 0.001896 0.019183 0.133891 0.042269 0.204360 +0.194077 +0.032097 0.038576 0.028592 0.029424 0.016077 0.033942 0.010832 0.036116 0.030376 0.032642 0.015531 0.097636 0.015965 0.015617 0.028223 0.031100 0.015348 0.140304 0.028291 0.020659 0.021942 0.063422 0.039840 0.016521 0.006527 0.133891 0.039134 0.001085 0.020228 0.110401 0.040833 0.180870 +0.257791 +0.031050 0.039783 0.029967 0.029303 0.017980 0.090246 0.010667 0.037361 0.036918 0.028889 0.014516 0.030968 0.015847 0.015527 0.028307 0.029000 0.018583 0.061952 0.028813 0.020725 0.020149 0.133891 0.038979 0.012805 0.007523 0.110401 0.041575 0.000528 0.019124 0.157380 0.040570 0.180870 +0.141534 +0.028224 0.038371 0.028638 0.030109 0.015774 0.023692 0.010503 0.037204 0.030209 0.031889 0.015095 0.183727 0.015099 0.015882 0.032821 0.029730 0.018088 0.158043 0.029272 0.020060 0.023242 0.133891 0.040355 0.014647 0.007580 0.063422 0.040971 0.001808 0.019824 0.180870 0.040718 0.204360 +0.413717 +0.028571 0.034502 0.032617 0.033084 0.016653 0.078288 0.011373 0.036527 0.028394 0.032222 0.018621 0.238533 0.015249 0.016027 0.029713 0.028950 0.016485 0.120870 0.026557 0.020610 0.018801 0.063422 0.038682 0.016590 0.006926 0.086911 0.037833 0.001219 0.019862 0.063422 0.039264 0.157380 +0.629858 +0.031854 0.039265 0.032215 0.028379 0.016408 0.066741 0.011621 0.036010 0.029234 0.028251 0.018131 0.029014 0.015484 0.016366 0.030000 0.028343 0.014154 0.044391 0.026646 0.021097 0.022918 0.110401 0.041886 0.015505 0.007257 0.110401 0.039865 0.001236 0.020044 0.086911 0.039833 0.133891 +0.085347 +0.028845 0.033186 0.028565 0.028691 0.016452 0.138409 0.010603 0.035281 0.029631 0.037446 0.016442 0.130760 0.015071 0.016022 0.028942 0.028213 0.017516 0.054889 0.028064 0.020494 0.023412 0.086911 0.040012 0.015893 0.004794 0.110401 0.041250 0.002044 0.019112 0.110401 0.039339 0.157380 +0.407364 +0.028451 0.039185 0.029814 0.028738 0.016777 0.094132 0.010398 0.035766 0.028457 0.030070 0.016713 0.245405 0.015304 0.015755 0.028479 0.032327 0.014651 0.046222 0.028679 0.019562 0.022800 0.063422 0.041515 0.012935 0.008520 0.133891 0.041035 0.000689 0.020945 0.086911 0.039935 0.157380 +0.459572 +0.031384 0.034558 0.031534 0.028943 0.018689 0.188322 0.009826 0.035366 0.028213 0.031553 0.016151 0.028122 0.016080 0.015744 0.028513 0.028581 0.015923 0.036056 0.027673 0.019626 0.019141 0.110401 0.040580 0.014848 0.012472 0.110401 0.041901 0.001163 0.020585 0.110401 0.038158 0.133891 +0.318271 +0.029852 0.034322 0.032448 0.029311 0.018289 0.049862 0.010641 0.035828 0.032764 0.028687 0.014226 0.064938 0.015194 0.016334 0.035300 0.030212 0.016859 0.044975 0.030201 0.020302 0.021716 0.086911 0.041451 0.017848 0.005066 0.110401 0.039084 0.001234 0.018966 0.157380 0.040582 0.204360 +0.021383 +0.029653 0.034126 0.036173 0.033297 0.018165 0.020072 0.010794 0.037108 0.032512 0.028874 0.017442 0.157603 0.016315 0.015886 0.029707 0.030795 0.018143 0.171956 0.026799 0.020013 0.021868 0.086911 0.039529 0.018115 0.010689 0.157380 0.038532 0.001884 0.020120 0.180870 0.038265 0.204360 +0.445654 +0.031830 0.039700 0.030089 0.032020 0.014325 0.021570 0.009536 0.037199 0.028905 0.029488 0.017558 0.020095 0.016335 0.016402 0.030475 0.029644 0.017498 0.033616 0.027811 0.019364 0.021510 0.157380 0.041131 0.012588 0.006368 0.157380 0.038113 0.001518 0.019156 0.157380 0.040953 0.180870 +0 +0.032279 0.037371 0.030202 0.030640 0.017195 0.028164 0.011460 0.036209 0.034943 0.028881 0.014392 0.056193 0.015816 0.016431 0.030516 0.029438 0.017735 0.030306 0.027524 0.020065 0.020974 0.086911 0.039321 0.015751 0.013979 0.133891 0.037819 0.002103 0.019647 0.063422 0.040770 0.180870 +0.004571 +0.031898 0.035956 0.032732 0.030002 0.014638 0.045425 0.009567 0.036840 0.031175 0.030658 0.016855 0.030281 0.015571 0.015531 0.032145 0.031303 0.018668 0.031303 0.028767 0.019939 0.020548 0.133891 0.037691 0.014862 0.006232 0.157380 0.038459 0.001962 0.020389 0.086911 0.040583 0.180870 +0.006147 +0.031609 0.034762 0.028932 0.028268 0.017649 0.072035 0.009904 0.036334 0.028517 0.032908 0.018068 0.308627 0.016165 0.016022 0.028330 0.029128 0.017852 0.157957 0.027383 0.020925 0.022430 0.063422 0.039579 0.014324 0.013570 0.110401 0.037729 0.002078 0.019837 0.133891 0.041305 0.180870 +0.725163 +0.032301 0.034266 0.028799 0.029579 0.018036 0.174406 0.009968 0.037538 0.029624 0.028826 0.014395 0.065882 0.015151 0.016020 0.032727 0.030409 0.015867 0.146080 0.028480 0.019142 0.022148 0.063422 0.040040 0.012333 0.012296 0.180870 0.038247 0.002269 0.019341 0.063422 0.037694 0.204360 +0.500602 +0.031371 0.036520 0.031662 0.030521 0.015004 0.256088 0.011437 0.036833 0.028244 0.029648 0.016261 0.209906 0.015994 0.016054 0.035058 0.034652 0.014196 0.022032 0.028734 0.020304 0.022927 0.133891 0.041305 0.013496 0.009134 0.110401 0.038266 0.000670 0.020569 0.110401 0.038487 0.180870 +0.614955 +0.031774 0.036596 0.030268 0.030040 0.017279 0.066081 0.011322 0.037065 0.035454 0.032464 0.015683 0.085695 0.015785 0.016164 0.028722 0.029864 0.018378 0.092466 0.027971 0.020711 0.022738 0.086911 0.040482 0.017741 0.011779 0.157380 0.037756 0.001155 0.019735 0.133891 0.037613 0.180870 +0.228759 +0.032144 0.034618 0.029388 0.028373 0.017017 0.090901 0.011058 0.037456 0.029433 0.028348 0.014439 0.142681 0.016054 0.015647 0.031246 0.038550 0.015195 0.051139 0.028139 0.019114 0.018863 0.133891 0.038754 0.016270 0.005206 0.133891 0.040132 0.000394 0.019310 0.110401 0.041721 0.157380 +0.296155 +0.028209 0.036348 0.030338 0.031263 0.016037 0.057190 0.010453 0.035356 0.039301 0.033069 0.016156 0.187365 0.016367 0.016287 0.033318 0.028451 0.018249 0.040682 0.025664 0.019433 0.021976 0.086911 0.039773 0.013627 0.004810 0.157380 0.042127 0.002117 0.019554 0.157380 0.040332 0.180870 +0.316059 +0.030170 0.038393 0.029211 0.030174 0.017939 0.090710 0.009950 0.036702 0.031496 0.028767 0.016443 0.051639 0.016402 0.016380 0.028301 0.031936 0.016862 0.036707 0.028831 0.019406 0.022083 0.110401 0.041454 0.015194 0.006119 0.133891 0.040863 0.000816 0.019046 0.086911 0.041118 0.157380 +0.194592 +0.030221 0.034291 0.030241 0.030354 0.018148 0.037004 0.010933 0.035772 0.028514 0.031656 0.015517 0.045507 0.016322 0.016387 0.032773 0.029900 0.017370 0.212603 0.028577 0.019415 0.020059 0.157380 0.040268 0.015046 0.009687 0.110401 0.039606 0.000404 0.018960 0.063422 0.040812 0.180870 +0.363884 +0.028455 0.039402 0.029059 0.028252 0.018383 0.199792 0.011484 0.035651 0.030649 0.028248 0.018331 0.108239 0.016311 0.015759 0.029763 0.028339 0.016087 0.026875 0.028153 0.021006 0.020983 0.063422 0.042081 0.012914 0.008449 0.063422 0.037684 0.000260 0.019743 0.063422 0.041368 0.133891 +0.392088 +0.032238 0.036521 0.031278 0.029037 0.017050 0.269632 0.010599 0.036310 0.029739 0.029606 0.015797 0.079254 0.015386 0.015765 0.032324 0.028701 0.016865 0.026887 0.028889 0.020673 0.022243 0.086911 0.037955 0.014463 0.008788 0.133891 0.041042 0.001483 0.019069 0.063422 0.038058 0.204360 +0.507235 +0.030096 0.036687 0.028399 0.028491 0.016495 0.100299 0.011305 0.036448 0.028200 0.028619 0.014690 0.053383 0.015192 0.015508 0.030810 0.028783 0.016076 0.168610 0.028268 0.020210 0.019312 0.133891 0.039318 0.016038 0.005057 0.086911 0.038307 0.001093 0.020540 0.086911 0.039120 0.157380 +0.406650 +0.032837 0.035103 0.030107 0.028965 0.015712 0.055958 0.009915 0.035933 0.029298 0.034273 0.016597 0.045809 0.015619 0.015739 0.030259 0.031295 0.018461 0.122439 0.028809 0.019293 0.022790 0.133891 0.040165 0.018698 0.012662 0.133891 0.041880 0.001457 0.020247 0.180870 0.040323 0.204360 +0.153782 +0.029628 0.038915 0.030542 0.029759 0.017123 0.147379 0.010012 0.036624 0.033953 0.028467 0.016060 0.156003 0.015687 0.016110 0.032639 0.030693 0.017048 0.061574 0.027245 0.019185 0.020254 0.086911 0.038584 0.013678 0.013788 0.133891 0.037882 0.000285 0.019117 0.110401 0.040060 0.180870 +0.360636 +0.032100 0.036332 0.029696 0.032297 0.016223 0.246216 0.009482 0.035650 0.029208 0.028646 0.016377 0.528528 0.016082 0.015555 0.028921 0.033212 0.014732 0.076843 0.027196 0.019735 0.021940 0.063422 0.039560 0.016463 0.009597 0.063422 0.038326 0.000703 0.019521 0.063422 0.039468 0.133891 +0.921864 +0.031780 0.038688 0.032105 0.030211 0.016037 0.081963 0.010755 0.036957 0.032010 0.034863 0.017496 0.133067 0.015348 0.015823 0.030628 0.029501 0.017760 0.039237 0.028412 0.019022 0.022183 0.086911 0.038193 0.011971 0.005504 0.063422 0.041436 0.000411 0.020484 0.110401 0.039665 0.133891 +0.306682 +0.031389 0.036346 0.030664 0.032183 0.016679 0.066836 0.010335 0.035326 0.028355 0.030195 0.015097 0.051230 0.015379 0.015888 0.030210 0.032868 0.017637 0.090472 0.028394 0.019782 0.019586 0.157380 0.040453 0.012933 0.008816 0.063422 0.040981 0.000687 0.020301 0.133891 0.041580 0.204360 +0.079315 +0.030194 0.037017 0.029928 0.032902 0.016216 0.086268 0.010652 0.036543 0.031473 0.029331 0.014531 0.022259 0.015610 0.016131 0.032160 0.030640 0.015530 0.078814 0.030885 0.020822 0.020932 0.110401 0.039589 0.017939 0.008666 0.157380 0.039775 0.000609 0.020967 0.086911 0.039007 0.180870 +0.196556 +0.030713 0.039383 0.029970 0.028239 0.014940 0.073371 0.010955 0.035304 0.033350 0.029988 0.017382 0.116037 0.015858 0.015542 0.030425 0.038762 0.017781 0.027067 0.030961 0.020231 0.023232 0.133891 0.039940 0.014427 0.009939 0.063422 0.040460 0.000687 0.019912 0.086911 0.042139 0.180870 +0.190916 +0.032035 0.036573 0.030711 0.032539 0.017008 0.269130 0.010604 0.037306 0.028850 0.028750 0.015277 0.083707 0.015774 0.016159 0.035409 0.029369 0.014324 0.019204 0.027210 0.018798 0.020589 0.063422 0.038445 0.011817 0.009035 0.157380 0.039045 0.002082 0.018959 0.063422 0.041531 0.204360 +0.549090 +0.029981 0.034808 0.030560 0.030197 0.016989 0.156135 0.011011 0.035470 0.031569 0.029050 0.015401 0.077662 0.015312 0.016010 0.032001 0.029689 0.017542 0.129470 0.027192 0.020358 0.019681 0.110401 0.041574 0.018038 0.010436 0.110401 0.041676 0.001568 0.018881 0.086911 0.041424 0.133891 +0.419399 +0.029766 0.033987 0.028854 0.029172 0.014340 0.017172 0.009628 0.036951 0.028941 0.033494 0.015712 0.021094 0.015827 0.016329 0.030303 0.028824 0.016454 0.198585 0.028366 0.019684 0.021841 0.063422 0.038480 0.015557 0.012562 0.063422 0.041868 0.000052 0.019868 0.063422 0.039643 0.133891 +0.209686 +0.029508 0.039733 0.029015 0.029772 0.017498 0.076234 0.011371 0.036405 0.029002 0.030130 0.015020 0.183304 0.015528 0.016074 0.028977 0.031748 0.014425 0.069463 0.027937 0.019487 0.022407 0.063422 0.040685 0.012405 0.004724 0.063422 0.042042 0.000095 0.018804 0.063422 0.040079 0.133891 +0.369977 +0.029692 0.034822 0.028255 0.030784 0.017280 0.121959 0.010706 0.036580 0.032628 0.029151 0.015661 0.071171 0.015712 0.016106 0.032464 0.028202 0.015892 0.053787 0.029772 0.021093 0.020719 0.063422 0.038442 0.014772 0.013356 0.157380 0.039040 0.001432 0.021051 0.133891 0.040712 0.180870 +0.168743 +0.031913 0.038636 0.031487 0.028609 0.018664 0.062565 0.009978 0.035932 0.028833 0.028622 0.016821 0.139888 0.015625 0.015639 0.031846 0.029008 0.017667 0.156169 0.029427 0.019143 0.019419 0.086911 0.037777 0.016879 0.013180 0.157380 0.038370 0.002043 0.020338 0.086911 0.037943 0.180870 +0.463237 +0.030110 0.037001 0.028694 0.028917 0.015141 0.169228 0.011045 0.036380 0.028209 0.029821 0.015336 0.031785 0.015718 0.016094 0.031399 0.028586 0.018189 0.030117 0.028495 0.020218 0.019001 0.086911 0.038515 0.014757 0.008351 0.110401 0.038597 0.001534 0.020605 0.110401 0.038241 0.133891 +0.183494 +0.032101 0.035071 0.032492 0.028370 0.015545 0.047840 0.010897 0.036172 0.041139 0.030444 0.014111 0.045046 0.015381 0.015736 0.028896 0.031300 0.016938 0.070622 0.028280 0.019112 0.021324 0.086911 0.040641 0.016349 0.010949 0.063422 0.040829 0.000961 0.020946 0.110401 0.042086 0.157380 +0.032705 +0.031233 0.035149 0.034085 0.030769 0.014640 0.095926 0.011642 0.036181 0.037006 0.032282 0.015393 0.118714 0.015918 0.016185 0.028861 0.029598 0.015432 0.218822 0.024886 0.019235 0.020534 0.110401 0.040640 0.016476 0.009557 0.110401 0.040928 0.001412 0.019198 0.086911 0.041602 0.133891 +0.479975 +0.032745 0.038527 0.029308 0.029338 0.018003 0.079298 0.009905 0.036743 0.030039 0.028241 0.015455 0.102044 0.016329 0.015775 0.029142 0.028593 0.018032 0.035233 0.029604 0.020729 0.022421 0.063422 0.041177 0.015190 0.006518 0.133891 0.038056 0.000592 0.019287 0.157380 0.039242 0.180870 +0.251128 +0.029549 0.038927 0.028780 0.028502 0.014865 0.114805 0.010283 0.037365 0.029322 0.030402 0.015448 0.053516 0.015963 0.016002 0.032324 0.030357 0.016385 0.017265 0.027608 0.019357 0.020282 0.110401 0.041478 0.015984 0.012823 0.063422 0.042137 0.001675 0.020413 0.133891 0.041225 0.157380 +0.117264 +0.032492 0.035904 0.034243 0.028346 0.017498 0.026577 0.011205 0.035852 0.029162 0.028281 0.017901 0.021179 0.015649 0.016060 0.028870 0.037803 0.016826 0.084769 0.027403 0.018935 0.021101 0.133891 0.040390 0.013449 0.011234 0.086911 0.039771 0.001176 0.019477 0.086911 0.041280 0.157380 +0.044383 +0.028264 0.034144 0.028367 0.030137 0.018240 0.021837 0.010363 0.035786 0.032843 0.029629 0.017911 0.021101 0.015910 0.016382 0.031010 0.028606 0.017983 0.119936 0.029010 0.020235 0.020298 0.133891 0.041296 0.016544 0.005558 0.110401 0.038796 0.000324 0.019262 0.110401 0.040835 0.157380 +0.122749 +0.030610 0.035857 0.028979 0.034135 0.018031 0.067799 0.010273 0.036684 0.029744 0.028194 0.018238 0.143338 0.015255 0.016177 0.035387 0.029121 0.015227 0.077090 0.024544 0.020630 0.020488 0.086911 0.041426 0.013943 0.006247 0.110401 0.040864 0.000240 0.018793 0.110401 0.041561 0.133891 +0.302409 +0.031157 0.035434 0.028272 0.031412 0.016613 0.178719 0.010997 0.037170 0.031058 0.035408 0.014830 0.247608 0.016435 0.015594 0.033669 0.029841 0.016415 0.122213 0.029806 0.021013 0.021287 0.110401 0.042107 0.016696 0.006512 0.086911 0.039714 0.001919 0.019151 0.110401 0.041246 0.157380 +0.641005 +0.029200 0.035914 0.028481 0.034840 0.017889 0.128799 0.011033 0.036280 0.030292 0.030145 0.018623 0.030536 0.015176 0.016066 0.028280 0.030547 0.015011 0.162870 0.029138 0.020181 0.023362 0.086911 0.038428 0.013053 0.006840 0.063422 0.037762 0.000437 0.019032 0.110401 0.039283 0.157380 +0.400657 +0.030088 0.039416 0.028433 0.028584 0.016760 0.018362 0.010103 0.037265 0.030451 0.031307 0.016563 0.135573 0.016157 0.015692 0.028964 0.029748 0.017476 0.157005 0.029078 0.019389 0.023029 0.086911 0.038583 0.018615 0.009082 0.086911 0.038937 0.000404 0.019559 0.086911 0.037661 0.133891 +0.392441 +0.032535 0.033396 0.029197 0.031689 0.014775 0.073380 0.011607 0.037302 0.029897 0.030368 0.014232 0.047370 0.015365 0.016237 0.029871 0.029492 0.015347 0.040378 0.027867 0.019263 0.020637 0.086911 0.040405 0.013922 0.010219 0.110401 0.038939 0.002253 0.020516 0.086911 0.038806 0.133891 +0.088047 +0.030877 0.035058 0.029051 0.029619 0.015961 0.036393 0.011093 0.035509 0.029332 0.028776 0.018696 0.029869 0.015876 0.016350 0.031629 0.034293 0.015249 0.059982 0.027341 0.019929 0.021067 0.063422 0.040060 0.018496 0.007381 0.086911 0.040335 0.001684 0.018847 0.133891 0.041987 0.204360 +0.002105 +0.029135 0.039246 0.028708 0.031765 0.017641 0.124429 0.009904 0.036226 0.028590 0.028405 0.016525 0.030727 0.016068 0.016292 0.032976 0.031257 0.016197 0.073879 0.030478 0.020743 0.022686 0.133891 0.040333 0.012624 0.013908 0.086911 0.039322 0.001246 0.019818 0.133891 0.041306 0.157380 +0.211414 +0.032644 0.037000 0.034578 0.035202 0.014961 0.020443 0.011731 0.035936 0.028937 0.028968 0.016243 0.051691 0.016367 0.016362 0.028715 0.033487 0.015563 0.089516 0.027105 0.019730 0.021764 0.086911 0.039776 0.011797 0.005620 0.110401 0.038910 0.001110 0.020660 0.110401 0.038004 0.157380 +0.083788 +0.029819 0.039900 0.030953 0.029907 0.016475 0.186484 0.010471 0.037070 0.030566 0.028650 0.017755 0.019898 0.016312 0.015876 0.031788 0.034202 0.015934 0.028967 0.028616 0.020396 0.021196 0.063422 0.039950 0.012171 0.007500 0.133891 0.037893 0.000089 0.018834 0.063422 0.037958 0.157380 +0.379374 +0.030851 0.035845 0.028500 0.035466 0.016186 0.066296 0.011736 0.037251 0.028244 0.030128 0.014910 0.066656 0.015630 0.016297 0.030612 0.029619 0.016926 0.050137 0.029067 0.020694 0.022398 0.086911 0.038580 0.014255 0.013717 0.086911 0.039423 0.000798 0.019059 0.086911 0.039613 0.133891 +0.183676 +0.029996 0.037074 0.035673 0.032346 0.015403 0.091595 0.009677 0.037255 0.033844 0.028192 0.015098 0.044829 0.015277 0.015717 0.030897 0.033474 0.018030 0.057037 0.026876 0.020340 0.020823 0.063422 0.037740 0.013532 0.013864 0.086911 0.038923 0.000948 0.020555 0.086911 0.039245 0.157380 +0.184376 +0.030613 0.038343 0.028397 0.030601 0.015185 0.089513 0.009631 0.035269 0.030205 0.030988 0.015370 0.051294 0.016104 0.016429 0.030932 0.028390 0.015400 0.034161 0.026258 0.020241 0.022541 0.110401 0.042144 0.011907 0.010756 0.110401 0.041231 0.001316 0.019589 0.063422 0.039020 0.133891 +0.216070 +0.030910 0.038373 0.028929 0.028423 0.018405 0.068864 0.011627 0.035823 0.029293 0.028573 0.016767 0.136717 0.016371 0.015908 0.030496 0.028868 0.015953 0.029313 0.028913 0.020182 0.022145 0.086911 0.041032 0.015458 0.007992 0.157380 0.042061 0.000849 0.019812 0.157380 0.038101 0.180870 +0.272797 +0.032683 0.038302 0.029154 0.028905 0.016580 0.023746 0.011608 0.037329 0.028654 0.033079 0.015616 0.028053 0.016010 0.016189 0.028876 0.036387 0.014275 0.121399 0.030694 0.020478 0.020686 0.086911 0.041377 0.016583 0.005471 0.063422 0.040933 0.001517 0.019662 0.157380 0.039514 0.204360 +0.065162 +0.030382 0.037498 0.031119 0.028204 0.014385 0.072047 0.011286 0.035403 0.036314 0.030828 0.017177 0.131000 0.015120 0.015821 0.035163 0.031801 0.015519 0.044217 0.028879 0.019403 0.022872 0.086911 0.040904 0.016148 0.008057 0.133891 0.041832 0.001323 0.020405 0.063422 0.039444 0.157380 +0.207954 +0.028227 0.036555 0.030743 0.032208 0.018026 0.152336 0.011330 0.037284 0.032346 0.030482 0.017067 0.056321 0.015806 0.016289 0.029226 0.037241 0.015081 0.016648 0.027725 0.020941 0.021513 0.086911 0.040642 0.013055 0.008399 0.086911 0.038452 0.001019 0.019008 0.086911 0.037591 0.157380 +0.254554 +0.030703 0.033531 0.028901 0.030674 0.017899 0.034479 0.011641 0.037556 0.028337 0.028437 0.017786 0.260133 0.015479 0.016154 0.036251 0.030219 0.017396 0.271744 0.027881 0.020876 0.020812 0.086911 0.039114 0.016029 0.007384 0.110401 0.037829 0.001562 0.019172 0.133891 0.039668 0.204360 +0.797897 +0.031188 0.036895 0.031940 0.029789 0.016737 0.072898 0.010109 0.036856 0.028289 0.029384 0.015439 0.026085 0.015427 0.016255 0.029932 0.031185 0.016064 0.039625 0.028440 0.018859 0.020945 0.110401 0.037609 0.016081 0.009976 0.110401 0.038727 0.001305 0.019225 0.063422 0.040571 0.157380 +0.040468 +0.031344 0.034036 0.028464 0.030855 0.016998 0.043870 0.009559 0.035827 0.029696 0.028498 0.018782 0.120376 0.015144 0.015785 0.029673 0.032032 0.017564 0.184515 0.028124 0.018859 0.021214 0.086911 0.040309 0.012047 0.007291 0.110401 0.038104 0.001530 0.020044 0.086911 0.042251 0.204360 +0.430152 +0.028445 0.033794 0.028838 0.030993 0.015585 0.079346 0.011721 0.035610 0.029452 0.032046 0.016278 0.116710 0.016186 0.015643 0.028646 0.029231 0.018265 0.031326 0.028780 0.019549 0.020648 0.157380 0.041055 0.017990 0.004709 0.133891 0.040048 0.001674 0.020814 0.157380 0.037854 0.180870 +0.220497 +0.029181 0.035563 0.033354 0.028566 0.015670 0.034285 0.010106 0.035872 0.028817 0.028214 0.015839 0.124981 0.015403 0.015559 0.029528 0.029289 0.016930 0.024433 0.025535 0.019315 0.021416 0.086911 0.037764 0.015286 0.006585 0.086911 0.040597 0.001625 0.019951 0.086911 0.038834 0.204360 +0.133969 +0.032038 0.039021 0.032333 0.031368 0.017745 0.047202 0.010784 0.036139 0.032008 0.028538 0.014283 0.092451 0.015049 0.015979 0.029833 0.028912 0.016435 0.040879 0.028845 0.019758 0.020132 0.157380 0.039858 0.018502 0.007071 0.157380 0.038350 0.001680 0.020399 0.157380 0.040043 0.180870 +0.136865 +0.030024 0.035924 0.029564 0.029157 0.016370 0.259705 0.010948 0.037161 0.030405 0.028321 0.014960 0.078086 0.015849 0.016245 0.029296 0.028923 0.014154 0.043438 0.028322 0.020556 0.022336 0.110401 0.040959 0.018389 0.006859 0.063422 0.040474 0.000085 0.021119 0.063422 0.039401 0.157380 +0.378900 +0.029394 0.035252 0.029910 0.028949 0.015480 0.303647 0.010692 0.036482 0.028750 0.031364 0.016510 0.024148 0.015960 0.016049 0.031891 0.030460 0.014588 0.164200 0.029427 0.020053 0.020658 0.086911 0.040853 0.017513 0.013274 0.110401 0.039836 0.000550 0.020954 0.063422 0.038688 0.157380 +0.656034 +0.028619 0.037433 0.032463 0.034538 0.014337 0.060757 0.009816 0.036241 0.029161 0.038486 0.015707 0.102227 0.016268 0.016373 0.030680 0.033346 0.017116 0.157902 0.030675 0.020055 0.021661 0.157380 0.038448 0.018625 0.006609 0.133891 0.041994 0.002201 0.020359 0.157380 0.037956 0.180870 +0.373143 +0.031925 0.036816 0.030488 0.028566 0.018486 0.063968 0.010156 0.035341 0.028523 0.029825 0.015421 0.027289 0.015049 0.015758 0.028205 0.029528 0.016736 0.116739 0.029178 0.020644 0.019402 0.133891 0.040942 0.014778 0.009807 0.063422 0.040993 0.002088 0.019696 0.110401 0.041273 0.157380 +0.114553 +0.028842 0.039226 0.029688 0.032751 0.014569 0.081399 0.010496 0.037041 0.028214 0.031431 0.015878 0.045680 0.015649 0.016281 0.032640 0.028306 0.014183 0.163372 0.029314 0.020183 0.020356 0.063422 0.040631 0.017002 0.008688 0.133891 0.041756 0.001740 0.019616 0.133891 0.041050 0.157380 +0.224725 +0.028239 0.037647 0.028219 0.036683 0.017622 0.074022 0.010954 0.035698 0.032153 0.029278 0.015898 0.121226 0.016176 0.015973 0.031652 0.028901 0.016394 0.066574 0.029611 0.020462 0.023097 0.086911 0.039834 0.016375 0.012305 0.063422 0.039527 0.000959 0.019955 0.063422 0.039996 0.180870 +0.230382 +0.028214 0.035791 0.028782 0.028499 0.018160 0.178627 0.010824 0.037378 0.032061 0.029351 0.017762 0.053678 0.015528 0.015967 0.029391 0.035359 0.015325 0.075898 0.027686 0.019910 0.020598 0.063422 0.039509 0.015740 0.008331 0.086911 0.041252 0.001156 0.020088 0.086911 0.039525 0.133891 +0.398301 +0.032806 0.038055 0.028418 0.028970 0.017440 0.109847 0.009631 0.035604 0.029291 0.029816 0.015133 0.040753 0.015875 0.016367 0.028973 0.030002 0.017902 0.071854 0.026028 0.020994 0.022494 0.063422 0.041020 0.018624 0.007709 0.110401 0.041856 0.001044 0.020854 0.110401 0.041681 0.133891 +0.414399 +0.028224 0.038446 0.029196 0.029466 0.015378 0.158807 0.010526 0.036741 0.029548 0.032683 0.014982 0.102954 0.015542 0.016374 0.029500 0.030590 0.014864 0.094434 0.029618 0.020040 0.022220 0.110401 0.038533 0.014147 0.010257 0.133891 0.038485 0.000737 0.019262 0.133891 0.038784 0.157380 +0.395751 +0.028219 0.035029 0.031047 0.029371 0.014947 0.181682 0.009851 0.036334 0.033595 0.031617 0.014569 0.050885 0.015802 0.015815 0.028354 0.029000 0.018653 0.065675 0.028355 0.019592 0.023177 0.110401 0.041245 0.015010 0.014054 0.110401 0.037985 0.002153 0.019942 0.110401 0.040942 0.157380 +0.354231 +0.032723 0.036875 0.029029 0.031555 0.014738 0.036667 0.011023 0.035898 0.030080 0.035517 0.016794 0.047677 0.015986 0.016426 0.032289 0.030003 0.015196 0.022167 0.029241 0.020805 0.019196 0.133891 0.038464 0.012364 0.005570 0.063422 0.042099 0.000555 0.020248 0.086911 0.041104 0.157380 +0.017491 +0.031833 0.034098 0.030970 0.030447 0.016660 0.046537 0.010404 0.037054 0.028546 0.029376 0.018632 0.061660 0.015889 0.016201 0.029837 0.034005 0.018358 0.283021 0.030154 0.020208 0.019056 0.063422 0.039443 0.014948 0.009881 0.157380 0.037976 0 0.020490 0.110401 0.039155 0.180870 +0.530043 +0.032595 0.033113 0.029298 0.028549 0.016951 0.108359 0.009567 0.036798 0.029020 0.030126 0.018548 0.160893 0.016173 0.015963 0.028699 0.031209 0.015144 0.338057 0.031390 0.020763 0.020592 0.133891 0.040462 0.013971 0.005564 0.110401 0.038404 0.000661 0.019798 0.110401 0.039258 0.180870 +0.813690 +0.031176 0.034332 0.028352 0.030679 0.014136 0.030373 0.011690 0.036717 0.028779 0.029225 0.017677 0.086022 0.015917 0.015824 0.030564 0.028190 0.015412 0.362166 0.027894 0.019327 0.021431 0.133891 0.041443 0.013973 0.008431 0.110401 0.041931 0.000960 0.018908 0.110401 0.041474 0.157380 +0.607371 +0.032420 0.034235 0.029614 0.029906 0.016646 0.130985 0.009549 0.036385 0.029152 0.030004 0.018406 0.026686 0.016035 0.015998 0.028872 0.033212 0.017396 0.113738 0.028375 0.019969 0.019327 0.157380 0.039569 0.017686 0.009209 0.110401 0.042049 0.000958 0.019328 0.133891 0.039699 0.204360 +0.256143 +0.028668 0.033498 0.034445 0.030770 0.018477 0.169231 0.011126 0.037537 0.028465 0.028496 0.017775 0.024078 0.016161 0.016231 0.028458 0.028649 0.015806 0.051329 0.028194 0.019876 0.020330 0.086911 0.039518 0.014877 0.012672 0.110401 0.039123 0.000935 0.019804 0.063422 0.041532 0.180870 +0.280864 +0.028312 0.033717 0.037698 0.029362 0.015115 0.064027 0.010928 0.036025 0.029860 0.032586 0.018261 0.095234 0.015427 0.015720 0.029891 0.029030 0.017730 0.017072 0.027808 0.019812 0.023488 0.063422 0.038333 0.015833 0.005210 0.110401 0.041013 0.001934 0.020109 0.110401 0.038040 0.133891 +0.204277 +0.031764 0.037348 0.038510 0.029620 0.015217 0.154317 0.009656 0.037342 0.028302 0.030425 0.015539 0.024918 0.015262 0.015760 0.031969 0.030303 0.015257 0.059135 0.031126 0.020043 0.022132 0.110401 0.040557 0.014598 0.011011 0.133891 0.041820 0.001037 0.018992 0.063422 0.040611 0.204360 +0.116218 +0.031478 0.039688 0.030226 0.028951 0.017719 0.033812 0.010543 0.037275 0.029172 0.039451 0.015535 0.162745 0.016092 0.015973 0.028647 0.031049 0.016133 0.069560 0.026595 0.020799 0.020705 0.110401 0.041395 0.012479 0.005999 0.110401 0.040890 0.001345 0.019089 0.063422 0.040100 0.133891 +0.282664 +0.028602 0.033906 0.031034 0.038198 0.015374 0.071661 0.010922 0.036500 0.028281 0.030703 0.015152 0.026973 0.015109 0.015775 0.029057 0.030535 0.014132 0.169540 0.027098 0.021106 0.019133 0.063422 0.039540 0.014874 0.005398 0.180870 0.041676 0.000082 0.021104 0.133891 0.037591 0.204360 +0.232599 +0.030764 0.035295 0.032268 0.030427 0.016248 0.049099 0.009668 0.036051 0.034371 0.030799 0.016568 0.071023 0.016033 0.016158 0.028765 0.029943 0.014782 0.116894 0.027374 0.020263 0.022608 0.180870 0.038943 0.012453 0.008865 0.110401 0.039864 0.000792 0.019825 0.086911 0.039886 0.204360 +0.231433 +0.028973 0.038493 0.031139 0.028396 0.014376 0.041368 0.010321 0.037124 0.028745 0.034041 0.015982 0.144077 0.015279 0.015903 0.031863 0.034095 0.015109 0.077468 0.029264 0.019070 0.020572 0.133891 0.039569 0.018506 0.006228 0.110401 0.039685 0.001994 0.020250 0.133891 0.037927 0.180870 +0.237801 +0.029251 0.034835 0.033383 0.029455 0.014882 0.034301 0.011032 0.035364 0.028321 0.030715 0.018506 0.200629 0.016144 0.016382 0.028887 0.029807 0.017793 0.039430 0.028461 0.019228 0.023167 0.086911 0.041210 0.013835 0.013894 0.063422 0.040091 0.001203 0.020276 0.180870 0.042272 0.204360 +0.223255 +0.029784 0.033587 0.028441 0.029932 0.018158 0.151119 0.010264 0.037214 0.029661 0.036664 0.015194 0.066681 0.015952 0.015821 0.029287 0.028959 0.018592 0.111108 0.027166 0.020337 0.023262 0.133891 0.038643 0.017944 0.005990 0.086911 0.038424 0.001698 0.020616 0.133891 0.040256 0.157380 +0.458852 +0.029307 0.038855 0.028637 0.030064 0.017444 0.231998 0.009954 0.036903 0.028577 0.034271 0.015199 0.083835 0.015073 0.015702 0.028585 0.028646 0.016100 0.061471 0.028587 0.020729 0.021094 0.110401 0.039315 0.016805 0.010736 0.133891 0.039115 0.000156 0.020291 0.086911 0.037709 0.204360 +0.533913 +0.032592 0.038590 0.035124 0.028699 0.015926 0.038687 0.011505 0.035752 0.028783 0.030135 0.015297 0.071770 0.016298 0.016410 0.030665 0.039054 0.017035 0.032494 0.026525 0.019213 0.021886 0.110401 0.037717 0.018425 0.009519 0.063422 0.040145 0.001325 0.020149 0.110401 0.039514 0.133891 +0.097712 +0.028449 0.034529 0.029886 0.032150 0.014756 0.200347 0.011360 0.035504 0.033225 0.035357 0.015505 0.020233 0.015899 0.015972 0.028962 0.028420 0.014822 0.080844 0.028663 0.019601 0.022251 0.110401 0.041534 0.017500 0.007140 0.063422 0.037985 0.001470 0.019472 0.110401 0.041769 0.133891 +0.433174 +0.031274 0.038469 0.035882 0.028900 0.018257 0.169183 0.010046 0.035627 0.031603 0.029384 0.015365 0.147388 0.016002 0.016396 0.029027 0.028499 0.014107 0.043243 0.028841 0.020046 0.019613 0.063422 0.039710 0.018297 0.009174 0.133891 0.041772 0.001410 0.020646 0.063422 0.041393 0.157380 +0.323826 +0.029449 0.037386 0.034805 0.033441 0.018460 0.121759 0.011069 0.036304 0.032050 0.028972 0.018498 0.102087 0.015485 0.015824 0.032361 0.030545 0.017956 0.091920 0.029714 0.020512 0.021194 0.110401 0.038948 0.013978 0.007092 0.110401 0.038516 0.001021 0.020973 0.086911 0.038143 0.133891 +0.379281 +0.029962 0.037552 0.028627 0.028898 0.017833 0.071979 0.009942 0.035900 0.028297 0.028321 0.015877 0.034990 0.015759 0.015679 0.030707 0.030064 0.016809 0.541143 0.025716 0.020048 0.019521 0.133891 0.041878 0.012722 0.007199 0.110401 0.041242 0.000091 0.019157 0.086911 0.041685 0.180870 +0.795671 +0.032396 0.035397 0.028257 0.028500 0.015279 0.089045 0.010415 0.035728 0.029444 0.029136 0.014271 0.122963 0.016384 0.016407 0.030950 0.028693 0.017451 0.032286 0.027670 0.019458 0.022346 0.180870 0.041356 0.016433 0.014045 0.133891 0.037985 0.002250 0.020143 0.133891 0.038659 0.204360 +0.195614 +0.032048 0.036445 0.032933 0.031046 0.015129 0.019932 0.011299 0.037542 0.034020 0.030211 0.016947 0.019417 0.015793 0.016306 0.031762 0.029496 0.018766 0.034258 0.027509 0.020005 0.019670 0.063422 0.041427 0.016748 0.006521 0.110401 0.039733 0.000765 0.019894 0.063422 0.041394 0.133891 +0 +0.032268 0.038577 0.029252 0.028510 0.018646 0.174330 0.011161 0.036361 0.028621 0.028249 0.014355 0.246375 0.015671 0.015697 0.028257 0.030451 0.018354 0.019817 0.029943 0.020666 0.021432 0.063422 0.041980 0.012293 0.005789 0.086911 0.041324 0.001998 0.019866 0.110401 0.037945 0.180870 +0.521798 +0.031264 0.039700 0.033785 0.030526 0.014807 0.077812 0.011354 0.036350 0.030193 0.029131 0.014748 0.060027 0.015876 0.016298 0.030033 0.033024 0.015576 0.173946 0.028801 0.020744 0.020728 0.133891 0.040269 0.013604 0.005843 0.110401 0.039129 0.001943 0.018934 0.086911 0.037886 0.180870 +0.358057 +0.032604 0.032992 0.029721 0.029365 0.014808 0.061492 0.011283 0.036763 0.029055 0.030163 0.016479 0.215727 0.015426 0.016155 0.028460 0.030063 0.016322 0.085913 0.029324 0.019072 0.021120 0.110401 0.040515 0.017000 0.007203 0.110401 0.038878 0.001947 0.019160 0.133891 0.039098 0.157380 +0.422814 +0.028496 0.039380 0.029108 0.030045 0.014903 0.106384 0.010606 0.035880 0.032625 0.034484 0.017961 0.107676 0.015528 0.015698 0.028890 0.030077 0.015075 0.076189 0.029659 0.021008 0.021935 0.063422 0.041495 0.014938 0.013409 0.110401 0.040666 0.001690 0.020050 0.086911 0.039020 0.180870 +0.161224 +0.032120 0.039900 0.035435 0.031723 0.018386 0.181919 0.011687 0.037035 0.029706 0.031769 0.016421 0.046350 0.015927 0.015683 0.030499 0.028349 0.014377 0.075924 0.027907 0.019545 0.020528 0.086911 0.040308 0.014781 0.012980 0.086911 0.039536 0.002045 0.020615 0.110401 0.041424 0.133891 +0.429781 +0.031539 0.034608 0.029204 0.031161 0.015670 0.102369 0.010135 0.036942 0.028321 0.028914 0.014248 0.114249 0.015106 0.015979 0.029872 0.030700 0.017838 0.020548 0.028004 0.020261 0.021372 0.110401 0.040631 0.018006 0.006794 0.086911 0.041067 0.000580 0.019850 0.086911 0.038435 0.157380 +0.262268 +0.029285 0.033463 0.028898 0.028679 0.017854 0.095004 0.010751 0.036307 0.033511 0.030397 0.014317 0.034982 0.016347 0.016090 0.030613 0.028302 0.015804 0.093695 0.029434 0.019816 0.019684 0.086911 0.041756 0.016183 0.008083 0.063422 0.041218 0.000607 0.019787 0.110401 0.040104 0.133891 +0.155371 +0.030863 0.037333 0.031026 0.028999 0.015268 0.078978 0.009574 0.036450 0.028612 0.028838 0.018095 0.183192 0.016082 0.015573 0.029250 0.032246 0.015479 0.054561 0.028145 0.019087 0.018869 0.110401 0.041237 0.014236 0.008486 0.110401 0.040045 0.001805 0.020082 0.086911 0.040695 0.133891 +0.366900 +0.032385 0.037601 0.030485 0.028671 0.018434 0.031538 0.010509 0.036883 0.028245 0.028748 0.018426 0.036246 0.016442 0.015529 0.037223 0.028410 0.016868 0.115597 0.028341 0.020460 0.020566 0.086911 0.040206 0.012639 0.012829 0.086911 0.041564 0.001098 0.019091 0.110401 0.038796 0.204360 +0.056077 +0.029821 0.035357 0.032382 0.029585 0.017175 0.115752 0.011690 0.037105 0.028488 0.030096 0.015668 0.103333 0.016429 0.016265 0.028202 0.029325 0.014750 0.018178 0.027276 0.019464 0.019625 0.133891 0.037967 0.014486 0.007687 0.133891 0.041747 0.001454 0.020954 0.063422 0.039431 0.157380 +0.384019 +0.029817 0.038409 0.028670 0.029682 0.015212 0.074292 0.011508 0.035512 0.030413 0.030042 0.014482 0.052595 0.015382 0.016291 0.028549 0.034131 0.016799 0.078225 0.025754 0.019060 0.021260 0.157380 0.038694 0.018623 0.013475 0.086911 0.041893 0.001692 0.020334 0.157380 0.039008 0.204360 +0.078178 +0.030644 0.037908 0.031336 0.028206 0.015458 0.059831 0.009812 0.037012 0.035156 0.029097 0.014505 0.047345 0.016179 0.015827 0.028506 0.029306 0.018336 0.021793 0.027570 0.018824 0.023125 0.133891 0.038032 0.016504 0.005862 0.110401 0.039941 0.002201 0.019595 0.133891 0.039598 0.157380 +0.095408 +0.032730 0.037226 0.028557 0.028701 0.015307 0.081548 0.009594 0.037216 0.031424 0.030913 0.014147 0.195642 0.015426 0.015683 0.030071 0.030527 0.015272 0.038776 0.028463 0.019146 0.023049 0.110401 0.037737 0.013590 0.009180 0.063422 0.037593 0.000186 0.020666 0.086911 0.037737 0.180870 +0.399742 +0.031405 0.035611 0.039812 0.028868 0.015858 0.112383 0.010848 0.037129 0.029113 0.030377 0.016100 0.059814 0.015976 0.015677 0.029869 0.030159 0.016720 0.037581 0.027526 0.020079 0.022380 0.110401 0.041256 0.012863 0.009874 0.086911 0.039019 0.000690 0.020869 0.063422 0.040154 0.133891 +0.215070 +0.032535 0.035696 0.031968 0.031686 0.015793 0.053860 0.010407 0.037106 0.031602 0.028984 0.016276 0.054161 0.015345 0.015617 0.029373 0.028391 0.016878 0.062948 0.028293 0.021117 0.021162 0.063422 0.040244 0.018662 0.006823 0.063422 0.040902 0.000478 0.019000 0.133891 0.040054 0.157380 +0.071625 +0.031576 0.034513 0.028641 0.030963 0.017849 0.143844 0.010871 0.036366 0.029066 0.031107 0.014198 0.038707 0.015836 0.015511 0.031857 0.028711 0.014424 0.028584 0.029260 0.020149 0.020728 0.110401 0.037987 0.016807 0.013878 0.110401 0.040235 0.001190 0.020634 0.133891 0.039527 0.180870 +0.203059 +0.031318 0.034180 0.028197 0.031502 0.015146 0.061493 0.010361 0.036011 0.029344 0.028895 0.015516 0.032221 0.015273 0.015977 0.028786 0.028659 0.015448 0.085120 0.029034 0.019651 0.020002 0.110401 0.040289 0.017910 0.009066 0.110401 0.040933 0.001514 0.020778 0.063422 0.040465 0.180870 +0.079492 +0.031257 0.038629 0.028348 0.029904 0.017991 0.220974 0.010650 0.035681 0.031526 0.036710 0.016713 0.137762 0.015985 0.016140 0.033923 0.028785 0.017336 0.076805 0.026698 0.019480 0.019799 0.086911 0.038357 0.012434 0.013212 0.110401 0.041767 0.000444 0.019847 0.063422 0.041480 0.133891 +0.478901 +0.030364 0.036149 0.028436 0.029018 0.017832 0.274613 0.011257 0.036849 0.028251 0.029023 0.016534 0.094351 0.015274 0.016237 0.033432 0.029739 0.015049 0.048336 0.026715 0.020457 0.019653 0.086911 0.039442 0.015612 0.005228 0.086911 0.038052 0.001710 0.020767 0.157380 0.037947 0.180870 +0.429850 +0.030157 0.034461 0.028266 0.029629 0.016042 0.124152 0.010675 0.036296 0.031171 0.032692 0.015856 0.171131 0.016172 0.015783 0.041056 0.031640 0.017277 0.267743 0.029295 0.020869 0.020932 0.110401 0.038872 0.016857 0.011787 0.086911 0.041081 0.001378 0.021131 0.063422 0.039597 0.133891 +0.714333 +0.031626 0.038433 0.028196 0.031928 0.017526 0.137470 0.010872 0.037192 0.028546 0.030040 0.016125 0.044598 0.016273 0.015552 0.028619 0.028778 0.017235 0.040196 0.028609 0.019557 0.022702 0.063422 0.040398 0.013497 0.008180 0.180870 0.038295 0.001415 0.020484 0.157380 0.037782 0.204360 +0.239394 +0.029299 0.036232 0.032068 0.039742 0.015736 0.154824 0.011287 0.036322 0.029279 0.037462 0.015014 0.065556 0.015531 0.016166 0.029167 0.029753 0.015356 0.043307 0.027315 0.018797 0.022784 0.133891 0.041883 0.014366 0.011892 0.157380 0.038276 0.000171 0.020427 0.086911 0.041271 0.204360 +0.250422 +0.030827 0.039625 0.028812 0.032279 0.015342 0.021560 0.011296 0.036166 0.028601 0.029371 0.017603 0.053677 0.016179 0.016227 0.030398 0.030028 0.018765 0.438208 0.029048 0.020924 0.022941 0.086911 0.037615 0.016740 0.011842 0.086911 0.038005 0.000270 0.019358 0.086911 0.040530 0.157380 +0.725109 +0.031764 0.037811 0.031549 0.028383 0.016477 0.019399 0.011212 0.036044 0.029119 0.028327 0.014710 0.185890 0.015174 0.015874 0.028291 0.032364 0.014690 0.376453 0.027398 0.018808 0.022629 0.086911 0.041911 0.016630 0.005102 0.063422 0.039065 0.001334 0.019283 0.086911 0.039252 0.157380 +0.787638 +0.031589 0.034078 0.029188 0.029944 0.015879 0.025070 0.011649 0.037353 0.028390 0.034574 0.017458 0.115434 0.015108 0.015670 0.031284 0.034195 0.018317 0.334469 0.028052 0.020132 0.023301 0.086911 0.038907 0.013714 0.005682 0.133891 0.040366 0.002269 0.020028 0.157380 0.040013 0.180870 +0.622736 +0.031397 0.039255 0.037981 0.029280 0.015884 0.032127 0.009534 0.037529 0.029652 0.028377 0.018306 0.039524 0.015366 0.016216 0.039862 0.028360 0.014319 0.082558 0.027745 0.020792 0.023199 0.086911 0.038828 0.015669 0.009035 0.063422 0.040702 0.000675 0.020368 0.110401 0.040982 0.157380 +0.027948 +0.030752 0.034405 0.029012 0.028312 0.014644 0.066401 0.011043 0.036300 0.030945 0.032029 0.015885 0.176260 0.015623 0.016124 0.028215 0.028224 0.015713 0.048875 0.028837 0.021079 0.022662 0.086911 0.038768 0.013277 0.006954 0.063422 0.037955 0.000617 0.020560 0.063422 0.038019 0.133891 +0.348241 +0.028632 0.034285 0.038776 0.031402 0.018464 0.150827 0.011328 0.036728 0.028895 0.028611 0.014233 0.017613 0.015677 0.015583 0.029464 0.028570 0.016848 0.111227 0.028339 0.019899 0.022914 0.063422 0.040259 0.014372 0.006397 0.110401 0.042186 0.001224 0.020316 0.086911 0.042127 0.157380 +0.282176 +0.028803 0.032951 0.033249 0.028444 0.017595 0.127186 0.009950 0.035472 0.029445 0.031532 0.018249 0.083880 0.015082 0.016359 0.034937 0.028365 0.016219 0.026518 0.029072 0.019940 0.021475 0.086911 0.037836 0.017755 0.006749 0.063422 0.040072 0.002162 0.018882 0.086911 0.038121 0.133891 +0.270418 +0.030648 0.034610 0.029632 0.028527 0.018203 0.150316 0.010451 0.036252 0.034923 0.028541 0.016943 0.233052 0.016329 0.015713 0.028837 0.031931 0.017166 0.255276 0.027810 0.019183 0.021629 0.180870 0.040231 0.014473 0.013710 0.110401 0.039710 0.001908 0.020866 0.180870 0.039959 0.204360 +0.796056 +0.030665 0.038846 0.032108 0.028563 0.017844 0.111385 0.010396 0.036520 0.028467 0.030609 0.017134 0.035080 0.015650 0.016150 0.031295 0.028941 0.016519 0.127297 0.029918 0.020587 0.020064 0.110401 0.039580 0.015007 0.004935 0.063422 0.040920 0.001905 0.019394 0.110401 0.041433 0.133891 +0.318455 +0.030699 0.036106 0.029463 0.029321 0.015176 0.121539 0.011684 0.037353 0.030725 0.030538 0.017440 0.099727 0.015235 0.015939 0.029799 0.029480 0.016060 0.154597 0.027336 0.019508 0.020080 0.110401 0.040159 0.013411 0.012116 0.063422 0.041731 0.000956 0.019759 0.110401 0.041471 0.133891 +0.465053 +0.030730 0.034871 0.030785 0.036718 0.017940 0.056034 0.011234 0.035698 0.028482 0.029663 0.018565 0.039851 0.015710 0.015948 0.029282 0.032085 0.017623 0.019381 0.029005 0.020008 0.022793 0.133891 0.040667 0.017065 0.005111 0.133891 0.040042 0.000423 0.019679 0.086911 0.037801 0.180870 +0.018970 +0.028984 0.033139 0.028839 0.031761 0.016543 0.070817 0.011356 0.037003 0.030763 0.029170 0.017880 0.041872 0.015040 0.015965 0.028300 0.029300 0.017071 0.035683 0.027666 0.019806 0.019341 0.063422 0.041618 0.017026 0.010452 0.063422 0.038306 0.001608 0.019829 0.086911 0.037654 0.133891 +0.053062 +0.031865 0.038100 0.028713 0.033070 0.018332 0.252862 0.010041 0.036724 0.029316 0.028431 0.016257 0.213765 0.015859 0.015822 0.030903 0.029545 0.015139 0.047287 0.029976 0.019923 0.020480 0.133891 0.041224 0.011916 0.011654 0.063422 0.039478 0.001397 0.021135 0.133891 0.041437 0.157380 +0.627629 +0.031666 0.035002 0.028822 0.028722 0.018177 0.036534 0.011175 0.035862 0.029998 0.028337 0.017455 0.036788 0.015056 0.015527 0.028277 0.028943 0.017051 0.063688 0.028018 0.020776 0.020886 0.086911 0.041479 0.016277 0.012134 0.063422 0.040334 0.001652 0.019429 0.063422 0.038139 0.133891 +0.048137 +0.030178 0.033676 0.028292 0.028388 0.018550 0.109863 0.009970 0.036657 0.033589 0.028254 0.017265 0.479729 0.015071 0.015775 0.031598 0.029793 0.018497 0.018873 0.025468 0.019153 0.019643 0.110401 0.038178 0.016774 0.005351 0.086911 0.040072 0.000723 0.021095 0.063422 0.039635 0.133891 +0.798884 +0.030848 0.035756 0.028891 0.029097 0.016702 0.099931 0.010889 0.037500 0.029456 0.030000 0.016490 0.039661 0.015688 0.015733 0.029185 0.033880 0.015426 0.078342 0.027961 0.019467 0.021462 0.086911 0.041280 0.016190 0.012658 0.063422 0.038677 0.001710 0.019212 0.086911 0.038525 0.133891 +0.226589 +0.032467 0.038098 0.032195 0.028839 0.018303 0.039371 0.011677 0.036347 0.028585 0.034307 0.015448 0.080366 0.015903 0.015669 0.028486 0.030786 0.017467 0.059034 0.025181 0.019953 0.021575 0.063422 0.040651 0.016316 0.008776 0.086911 0.038944 0.001192 0.019084 0.110401 0.040592 0.157380 +0.131857 +0.028898 0.034110 0.028255 0.030877 0.017417 0.064621 0.010149 0.035687 0.028441 0.028392 0.014781 0.042607 0.015387 0.016364 0.028628 0.028870 0.018758 0.030000 0.025629 0.020359 0.021916 0.086911 0.042278 0.013497 0.006003 0.133891 0.041137 0.001368 0.019683 0.180870 0.040481 0.204360 +0.003384 +0.029770 0.034004 0.033143 0.028380 0.015838 0.048141 0.011132 0.035546 0.028566 0.031532 0.016148 0.089696 0.015250 0.016427 0.029116 0.029300 0.014492 0.041681 0.028986 0.019642 0.022763 0.063422 0.041268 0.018361 0.011281 0.063422 0.038923 0.002332 0.019997 0.133891 0.042096 0.180870 +0.037359 +0.029625 0.039407 0.031950 0.038647 0.015640 0.056296 0.011578 0.037129 0.029523 0.029413 0.015744 0.137801 0.015977 0.016168 0.030456 0.028354 0.014588 0.054351 0.029718 0.020859 0.019134 0.110401 0.037702 0.018310 0.010479 0.063422 0.037850 0.000441 0.018847 0.063422 0.041812 0.157380 +0.251104 +0.031154 0.035925 0.030503 0.028773 0.016083 0.028309 0.010455 0.036095 0.028193 0.030265 0.017458 0.039340 0.015632 0.015586 0.028421 0.034063 0.017145 0.040470 0.027969 0.019047 0.020443 0.110401 0.041567 0.011891 0.011983 0.063422 0.042090 0.000325 0.019109 0.110401 0.040418 0.180870 +0.003778 +0.029848 0.039060 0.031701 0.029779 0.014291 0.046000 0.009933 0.036501 0.033149 0.028736 0.018538 0.125493 0.015725 0.016154 0.035435 0.031571 0.014348 0.230457 0.028515 0.020718 0.019515 0.180870 0.040899 0.016453 0.010548 0.110401 0.041655 0.001687 0.020180 0.157380 0.038056 0.204360 +0.481583 +0.028669 0.039251 0.033112 0.032226 0.016460 0.091927 0.010449 0.035854 0.029150 0.031120 0.016435 0.032364 0.015445 0.015913 0.029549 0.035013 0.015437 0.068280 0.029814 0.020250 0.021971 0.086911 0.040101 0.015895 0.010770 0.110401 0.039344 0.000111 0.018928 0.086911 0.039493 0.133891 +0.211787 +0.031269 0.038374 0.029979 0.028648 0.018002 0.089650 0.009405 0.036694 0.030511 0.033638 0.017232 0.019908 0.016357 0.016315 0.030427 0.030042 0.015165 0.091770 0.028007 0.018961 0.023353 0.086911 0.039055 0.016865 0.014019 0.086911 0.038980 0.000252 0.020674 0.063422 0.039228 0.133891 +0.166914 +0.031670 0.039904 0.028360 0.032090 0.014393 0.194856 0.011124 0.036551 0.031277 0.033887 0.018066 0.040080 0.015946 0.016442 0.031667 0.034606 0.016575 0.032523 0.026407 0.018961 0.020507 0.086911 0.039216 0.017785 0.009088 0.110401 0.039530 0.000022 0.020756 0.133891 0.039580 0.180870 +0.250847 +0.028226 0.037874 0.028878 0.028629 0.015989 0.097225 0.011540 0.036233 0.032561 0.028930 0.017650 0.137513 0.016014 0.016093 0.028642 0.036127 0.018110 0.037449 0.030553 0.019989 0.022873 0.180870 0.038183 0.012605 0.005295 0.133891 0.037597 0.001585 0.019616 0.180870 0.039020 0.204360 +0.236016 +0.028361 0.037025 0.028279 0.030989 0.017354 0.027081 0.009902 0.037068 0.029590 0.030301 0.017223 0.190040 0.015454 0.016121 0.029497 0.029107 0.014498 0.016533 0.027914 0.019050 0.022473 0.086911 0.040916 0.013047 0.012860 0.110401 0.041041 0.001473 0.021054 0.086911 0.037679 0.133891 +0.194898 +0.029429 0.038454 0.029640 0.031805 0.015477 0.021313 0.011675 0.037261 0.030489 0.028373 0.016017 0.069870 0.015560 0.015767 0.037588 0.032545 0.018539 0.058991 0.029422 0.019544 0.022566 0.063422 0.037664 0.012796 0.010587 0.063422 0.040244 0.000997 0.020890 0.110401 0.040152 0.133891 +0.072894 +0.032267 0.036810 0.029449 0.028908 0.015471 0.022643 0.010424 0.035764 0.029943 0.032526 0.014872 0.038926 0.015658 0.015676 0.028632 0.028248 0.014310 0.202590 0.026119 0.020057 0.023127 0.133891 0.042280 0.012250 0.006929 0.086911 0.039858 0.002178 0.019518 0.063422 0.039986 0.180870 +0.102775 +0.031947 0.035970 0.028331 0.030619 0.016646 0.035873 0.011277 0.036334 0.030412 0.039472 0.015622 0.061212 0.016086 0.015609 0.032184 0.028313 0.017104 0.486539 0.029192 0.018815 0.023239 0.157380 0.037688 0.013115 0.008495 0.110401 0.040287 0.001341 0.020449 0.110401 0.042082 0.180870 +0.737522 +0.030969 0.034311 0.028624 0.032750 0.015499 0.106108 0.010024 0.037075 0.031736 0.028396 0.017184 0.101618 0.015822 0.016288 0.028290 0.029562 0.015345 0.026388 0.029165 0.021051 0.023250 0.133891 0.038607 0.015317 0.011719 0.157380 0.042113 0.002249 0.019775 0.086911 0.039237 0.180870 +0.196335 +0.029773 0.033637 0.029844 0.030862 0.015634 0.365102 0.011569 0.035249 0.036135 0.031141 0.016573 0.103602 0.016390 0.016134 0.029437 0.028248 0.016163 0.114119 0.028135 0.020649 0.019041 0.086911 0.042088 0.013656 0.010832 0.110401 0.039557 0.002048 0.020995 0.063422 0.041239 0.157380 +0.628412 +0.029577 0.038407 0.029346 0.030660 0.015680 0.032100 0.009615 0.035581 0.035725 0.031310 0.015244 0.197766 0.016235 0.015595 0.028408 0.028533 0.016263 0.018676 0.027008 0.020297 0.020153 0.110401 0.037820 0.012129 0.007485 0.086911 0.038119 0.000230 0.020850 0.110401 0.037699 0.180870 +0.227549 +0.028704 0.035031 0.028304 0.028825 0.018585 0.160479 0.011491 0.035368 0.028384 0.029559 0.016405 0.208013 0.016135 0.016163 0.028811 0.029185 0.018358 0.076274 0.027089 0.020705 0.020284 0.063422 0.040756 0.013213 0.012964 0.110401 0.041757 0.002271 0.019450 0.110401 0.040805 0.133891 +0.532683 +0.029801 0.036732 0.030715 0.031456 0.014121 0.126400 0.011247 0.035305 0.028213 0.030066 0.016100 0.036442 0.016143 0.016314 0.029421 0.031294 0.015095 0.053746 0.029302 0.019752 0.019095 0.086911 0.038967 0.015408 0.011037 0.110401 0.039208 0.001769 0.020846 0.133891 0.039219 0.180870 +0.079858 +0.029546 0.036224 0.028531 0.029529 0.017907 0.054410 0.010031 0.037561 0.031520 0.030639 0.018202 0.051498 0.016190 0.015812 0.029884 0.028372 0.016865 0.074233 0.029231 0.020443 0.021769 0.063422 0.037939 0.015317 0.007833 0.157380 0.039720 0.000730 0.020645 0.157380 0.039053 0.204360 +0.098033 +0.028316 0.037591 0.033978 0.029479 0.018093 0.057539 0.011275 0.036635 0.030788 0.035358 0.014503 0.034680 0.015888 0.016245 0.032948 0.028209 0.018606 0.037389 0.028246 0.019563 0.019753 0.086911 0.041372 0.014239 0.005433 0.110401 0.038042 0.002316 0.020488 0.133891 0.038778 0.180870 +0.008190 +0.028659 0.037552 0.028329 0.028356 0.015303 0.046853 0.011344 0.035387 0.028923 0.029536 0.015314 0.043690 0.016369 0.016055 0.029943 0.029695 0.015084 0.139955 0.027916 0.020835 0.021830 0.110401 0.040259 0.013448 0.010048 0.110401 0.040791 0.001443 0.020595 0.110401 0.039901 0.133891 +0.245929 +0.030897 0.032890 0.029849 0.028390 0.016808 0.071448 0.010447 0.036392 0.029356 0.029256 0.014654 0.064926 0.016386 0.016340 0.028865 0.028623 0.015545 0.039720 0.029024 0.020321 0.019533 0.157380 0.039035 0.017852 0.013238 0.133891 0.041205 0.000609 0.018847 0.063422 0.038255 0.204360 +0.040512 +0.031216 0.034015 0.030109 0.035664 0.016505 0.018268 0.011222 0.037329 0.028461 0.028470 0.017449 0.073579 0.015398 0.016263 0.030911 0.035336 0.018693 0.098603 0.026899 0.019348 0.019912 0.133891 0.039628 0.013781 0.011988 0.063422 0.041920 0.000043 0.019021 0.133891 0.038621 0.157380 +0.126203 +0.029000 0.039544 0.028696 0.028741 0.018061 0.119637 0.009699 0.035690 0.030934 0.030084 0.018436 0.063704 0.015343 0.015826 0.028885 0.033738 0.015736 0.073452 0.028348 0.019540 0.019825 0.110401 0.038680 0.016379 0.013959 0.063422 0.038100 0.000408 0.020865 0.133891 0.041875 0.157380 +0.254839 +0.032350 0.035940 0.029312 0.029145 0.018567 0.065333 0.011666 0.037530 0.031654 0.029008 0.017545 0.131534 0.015984 0.016111 0.030576 0.031999 0.016939 0.170886 0.028473 0.020459 0.023259 0.086911 0.039111 0.018508 0.013022 0.110401 0.042272 0.002079 0.019551 0.133891 0.039464 0.157380 +0.423879 +0.029013 0.039483 0.029781 0.028271 0.018722 0.028488 0.010567 0.036628 0.029695 0.037103 0.017689 0.029714 0.016428 0.016328 0.028918 0.028370 0.014554 0.049470 0.029949 0.021001 0.019127 0.086911 0.039641 0.016926 0.013712 0.086911 0.040662 0.001100 0.019910 0.110401 0.041876 0.157380 +0.001355 +0.030672 0.036485 0.028405 0.030993 0.014429 0.076247 0.010465 0.036396 0.033927 0.034968 0.015265 0.032906 0.015122 0.016374 0.030036 0.033713 0.017111 0.021311 0.027162 0.020814 0.023358 0.110401 0.040308 0.018281 0.009542 0.157380 0.039210 0.001823 0.019615 0.180870 0.040570 0.204360 +0.022594 +0.029046 0.034516 0.031301 0.028798 0.014433 0.018133 0.009617 0.035238 0.028350 0.028373 0.014339 0.094923 0.015222 0.016254 0.037121 0.030359 0.014254 0.052759 0.030270 0.020014 0.022888 0.086911 0.039957 0.017630 0.009998 0.133891 0.038369 0.000572 0.020632 0.133891 0.041222 0.157380 +0.103765 +0.030455 0.039148 0.029034 0.030711 0.015614 0.073579 0.009477 0.037529 0.030542 0.029967 0.014899 0.083076 0.016033 0.016359 0.033113 0.032242 0.015927 0.087214 0.029481 0.021026 0.019305 0.086911 0.038709 0.013939 0.005358 0.086911 0.038547 0.001977 0.020800 0.063422 0.040633 0.133891 +0.230755 +0.032120 0.039674 0.036444 0.032403 0.014357 0.101488 0.011294 0.037401 0.029367 0.032770 0.014612 0.270939 0.015693 0.015771 0.029590 0.028763 0.014433 0.094279 0.029149 0.020589 0.023271 0.180870 0.038480 0.011995 0.006020 0.157380 0.038698 0.000594 0.020064 0.063422 0.041956 0.204360 +0.566144 +0.032462 0.038863 0.028682 0.029192 0.014885 0.021590 0.010394 0.036363 0.028224 0.028549 0.014483 0.155290 0.016006 0.015800 0.028337 0.028194 0.017716 0.062307 0.028273 0.019986 0.022187 0.086911 0.042166 0.014422 0.008003 0.086911 0.038909 0.001983 0.018887 0.110401 0.039814 0.157380 +0.181476 +0.032281 0.034143 0.028578 0.030049 0.018515 0.128336 0.011533 0.035751 0.029878 0.031658 0.018249 0.031614 0.015047 0.015760 0.028206 0.030754 0.018418 0.066636 0.027702 0.020064 0.019142 0.086911 0.037877 0.013047 0.008090 0.063422 0.041790 0.000589 0.020296 0.063422 0.041773 0.133891 +0.183746 +0.028864 0.039422 0.029873 0.028452 0.016328 0.029886 0.010275 0.036167 0.030948 0.030811 0.014501 0.032956 0.016281 0.016204 0.028329 0.029522 0.018696 0.085430 0.028129 0.019487 0.022557 0.063422 0.041969 0.016549 0.006568 0.180870 0.038608 0.000664 0.018815 0.157380 0.040652 0.204360 +0.041518 +0.032625 0.039740 0.031388 0.031567 0.018129 0.043548 0.011733 0.036418 0.030488 0.032145 0.016917 0.135549 0.016183 0.015591 0.028797 0.028308 0.016696 0.039141 0.027682 0.019352 0.021143 0.110401 0.038157 0.015027 0.013318 0.133891 0.039269 0.001345 0.019625 0.086911 0.041184 0.180870 +0.171691 +0.030713 0.033567 0.032600 0.029440 0.014786 0.105848 0.010154 0.036795 0.032129 0.029730 0.017424 0.245075 0.015856 0.015634 0.029369 0.030211 0.017198 0.019201 0.029010 0.020657 0.022704 0.086911 0.038056 0.012336 0.011928 0.063422 0.038565 0.000294 0.021034 0.086911 0.040443 0.180870 +0.426737 +0.029152 0.037522 0.028962 0.035921 0.016477 0.052474 0.010525 0.036714 0.029231 0.035011 0.017090 0.057412 0.015689 0.016062 0.029408 0.028399 0.014541 0.055467 0.029385 0.020780 0.021371 0.063422 0.040075 0.012472 0.005310 0.086911 0.039615 0.001612 0.018979 0.180870 0.039516 0.204360 +0.057186 +0.028913 0.038043 0.033084 0.031726 0.015201 0.038161 0.011393 0.036959 0.028340 0.028560 0.018567 0.024547 0.015479 0.015641 0.029565 0.031303 0.015013 0.152372 0.025763 0.019089 0.023134 0.063422 0.038285 0.014372 0.005699 0.086911 0.040290 0.000066 0.020101 0.086911 0.039593 0.133891 +0.214118 +0.030020 0.035563 0.029350 0.031331 0.018507 0.026410 0.009894 0.036811 0.028316 0.029742 0.016076 0.158639 0.015934 0.016036 0.030572 0.028642 0.017004 0.041397 0.027998 0.019214 0.021348 0.086911 0.041452 0.012547 0.012103 0.110401 0.038909 0.001410 0.020564 0.086911 0.039832 0.133891 +0.185474 +0.032039 0.034543 0.031289 0.029062 0.015781 0.037686 0.010378 0.035874 0.028835 0.030927 0.016073 0.059428 0.016195 0.016118 0.034473 0.030978 0.016316 0.085338 0.029776 0.021070 0.022064 0.180870 0.040137 0.011905 0.006531 0.086911 0.039917 0.000727 0.018945 0.157380 0.037999 0.204360 +0.076298 +0.030017 0.033090 0.028418 0.037409 0.016025 0.147540 0.011115 0.035997 0.029459 0.030283 0.017333 0.128941 0.015060 0.015537 0.028849 0.033818 0.016087 0.213655 0.028637 0.019363 0.022773 0.086911 0.040540 0.013841 0.011818 0.063422 0.040571 0.001866 0.019346 0.133891 0.037585 0.157380 +0.654142 +0.030292 0.039904 0.029575 0.035429 0.014982 0.030817 0.011186 0.037081 0.030044 0.037087 0.018172 0.050135 0.016101 0.015743 0.031994 0.029481 0.014487 0.273245 0.028912 0.019538 0.021168 0.110401 0.038738 0.013093 0.006828 0.086911 0.037822 0.000036 0.021041 0.063422 0.040925 0.133891 +0.497765 +0.030110 0.034579 0.035102 0.028404 0.017318 0.038024 0.009951 0.036891 0.028842 0.034777 0.015810 0.108739 0.015833 0.016368 0.029392 0.028814 0.015036 0.034303 0.029057 0.019547 0.021900 0.086911 0.041301 0.015746 0.013459 0.063422 0.040435 0.000447 0.019783 0.063422 0.040701 0.133891 +0.077301 +0.028647 0.036496 0.030680 0.028728 0.014318 0.063032 0.011304 0.036783 0.029209 0.028922 0.016908 0.027543 0.015151 0.015829 0.029267 0.030447 0.014499 0.053300 0.030772 0.019394 0.022848 0.063422 0.039907 0.015775 0.006128 0.157380 0.040543 0.000443 0.020283 0.180870 0.040286 0.204360 +0.013483 +0.030830 0.039099 0.030619 0.039224 0.017424 0.043132 0.011642 0.036475 0.032547 0.030549 0.014202 0.086703 0.016110 0.015715 0.031530 0.029107 0.018231 0.118716 0.028979 0.019860 0.019274 0.110401 0.040642 0.018329 0.012789 0.110401 0.041259 0.000642 0.020192 0.063422 0.038766 0.180870 +0.198945 +0.032198 0.033581 0.028322 0.029029 0.016413 0.273596 0.009879 0.036738 0.029421 0.028860 0.014481 0.063942 0.015078 0.015920 0.028506 0.030712 0.016931 0.017777 0.027870 0.019886 0.019259 0.063422 0.038714 0.013174 0.004827 0.110401 0.040616 0.001480 0.020699 0.133891 0.038662 0.157380 +0.502480 +0.031509 0.037415 0.028977 0.029971 0.016848 0.040188 0.010695 0.036075 0.032304 0.029399 0.014920 0.028866 0.016303 0.015937 0.028839 0.028189 0.016350 0.112313 0.029305 0.019175 0.022236 0.133891 0.041488 0.017677 0.006535 0.133891 0.040656 0.000307 0.020038 0.086911 0.038500 0.204360 +0.092440 +0.029169 0.037375 0.028545 0.028229 0.014774 0.190050 0.011569 0.036053 0.028594 0.028713 0.014690 0.193178 0.015317 0.016152 0.028290 0.030303 0.017101 0.125463 0.025951 0.019633 0.020035 0.086911 0.041897 0.013021 0.011896 0.110401 0.038147 0.000411 0.018966 0.063422 0.038145 0.157380 +0.656325 +0.029531 0.034930 0.031668 0.030529 0.016660 0.075981 0.009888 0.035669 0.029340 0.030897 0.014873 0.043413 0.016056 0.015603 0.029563 0.031372 0.017779 0.111781 0.028398 0.019009 0.019900 0.063422 0.038627 0.015119 0.009845 0.063422 0.038932 0.002005 0.020894 0.063422 0.040151 0.133891 +0.240454 +0.029695 0.037693 0.030292 0.031494 0.014972 0.122200 0.009408 0.036779 0.032776 0.028292 0.017672 0.060713 0.015403 0.015917 0.031771 0.032910 0.014160 0.020508 0.027973 0.019678 0.020045 0.063422 0.040808 0.017509 0.006106 0.086911 0.038405 0.001637 0.020093 0.133891 0.039621 0.180870 +0.099928 +0.030219 0.033781 0.029159 0.030609 0.018140 0.075523 0.011628 0.036515 0.029873 0.029115 0.016337 0.035320 0.015542 0.016005 0.030004 0.030471 0.017971 0.023348 0.029500 0.019667 0.020697 0.133891 0.040311 0.012857 0.008229 0.157380 0.038373 0.000435 0.019545 0.110401 0.041371 0.204360 +0.003282 +0.031197 0.035840 0.030066 0.031716 0.014286 0.089013 0.011261 0.037126 0.029127 0.029371 0.016252 0.040470 0.015907 0.016214 0.032868 0.029702 0.017184 0.040307 0.028409 0.019435 0.022414 0.133891 0.039299 0.016373 0.010628 0.063422 0.038785 0.002231 0.019137 0.110401 0.040667 0.157380 +0.099774 +0.032747 0.036236 0.028792 0.028998 0.016116 0.033229 0.010455 0.036484 0.028259 0.029723 0.014569 0.030505 0.016345 0.015839 0.030343 0.032982 0.015502 0.035781 0.030604 0.019878 0.019300 0.157380 0.037619 0.016604 0.013664 0.063422 0.039874 0.001269 0.019421 0.110401 0.039473 0.180870 +0.008705 +0.030924 0.032997 0.028611 0.028758 0.016498 0.105872 0.010576 0.037583 0.028648 0.028236 0.018024 0.065459 0.015817 0.015635 0.031356 0.029209 0.018651 0.049588 0.029977 0.020334 0.022021 0.063422 0.040199 0.017704 0.006743 0.110401 0.038841 0.001651 0.019736 0.133891 0.038267 0.157380 +0.249856 +0.031121 0.035409 0.032014 0.029389 0.017124 0.106736 0.010347 0.036583 0.031569 0.028616 0.017676 0.105892 0.015092 0.016173 0.029725 0.035042 0.016238 0.054911 0.028640 0.018863 0.021791 0.086911 0.038813 0.017076 0.011365 0.063422 0.040524 0.000072 0.019864 0.063422 0.038247 0.133891 +0.281057 +0.032614 0.034216 0.042854 0.029239 0.017552 0.027623 0.010602 0.035981 0.030516 0.030484 0.016230 0.043184 0.015549 0.016279 0.031743 0.030516 0.016651 0.040001 0.028632 0.021055 0.018971 0.063422 0.038114 0.015415 0.012669 0.086911 0.040918 0.001411 0.019602 0.086911 0.040433 0.157380 +0 +0.030723 0.037309 0.029109 0.028889 0.017042 0.290551 0.009477 0.036865 0.041360 0.028928 0.017968 0.051055 0.015519 0.015541 0.033474 0.029887 0.016269 0.059284 0.029315 0.019453 0.023123 0.133891 0.040025 0.013530 0.005036 0.133891 0.040480 0.001337 0.020293 0.110401 0.040260 0.157380 +0.492176 +0.030810 0.039599 0.031757 0.029774 0.018278 0.033349 0.010242 0.035566 0.028596 0.029063 0.015087 0.020739 0.015937 0.016316 0.028812 0.029973 0.015957 0.099850 0.028846 0.020406 0.021743 0.086911 0.041801 0.013832 0.007473 0.110401 0.037708 0.000788 0.019554 0.133891 0.042037 0.157380 +0.056334 +0.031351 0.037546 0.028273 0.030112 0.015966 0.071310 0.011366 0.036499 0.031584 0.030423 0.014715 0.075042 0.015983 0.016180 0.030156 0.033082 0.015622 0.035950 0.026073 0.019510 0.023062 0.086911 0.038592 0.012421 0.006724 0.086911 0.039060 0.000011 0.019247 0.133891 0.042248 0.204360 +0.205525 +0.032206 0.037265 0.028874 0.030955 0.017985 0.074879 0.011376 0.035607 0.029709 0.033622 0.017942 0.102483 0.015196 0.015788 0.029565 0.029189 0.018419 0.073356 0.027920 0.019935 0.021554 0.063422 0.039702 0.018772 0.012937 0.110401 0.041040 0.001339 0.021114 0.086911 0.039939 0.157380 +0.240442 +0.032675 0.039205 0.031671 0.037341 0.014884 0.078978 0.011634 0.035782 0.028977 0.028564 0.016060 0.044468 0.015772 0.015519 0.029421 0.030141 0.016376 0.167404 0.026597 0.020222 0.019399 0.110401 0.039393 0.013998 0.005610 0.086911 0.038988 0.000571 0.020921 0.063422 0.041741 0.133891 +0.368879 +0.032139 0.037504 0.031249 0.030768 0.015791 0.038504 0.009502 0.035962 0.030036 0.028934 0.015190 0.018072 0.015160 0.016181 0.037820 0.031828 0.017969 0.118418 0.028102 0.018821 0.023171 0.133891 0.038380 0.017481 0.011904 0.086911 0.039667 0.002174 0.019028 0.063422 0.038181 0.204360 +0.055579 +0.032204 0.038787 0.032488 0.030803 0.015482 0.092804 0.010469 0.035835 0.029618 0.032216 0.018516 0.036667 0.015762 0.016177 0.030538 0.030112 0.014236 0.045611 0.029179 0.019911 0.023203 0.133891 0.038991 0.012293 0.004830 0.110401 0.041061 0.000441 0.019270 0.086911 0.041864 0.180870 +0.051819 +0.031491 0.037975 0.031399 0.029955 0.016015 0.028485 0.011366 0.035935 0.030206 0.031472 0.017298 0.108612 0.015070 0.016199 0.029622 0.029582 0.015331 0.412478 0.028102 0.019481 0.020204 0.063422 0.038254 0.017109 0.007451 0.063422 0.039672 0.000551 0.018906 0.086911 0.039980 0.133891 +0.779642 +0.029426 0.033827 0.033343 0.031367 0.015758 0.404716 0.011193 0.036592 0.030260 0.031066 0.015687 0.043405 0.015171 0.015761 0.028400 0.028880 0.017170 0.040443 0.027862 0.020532 0.022777 0.157380 0.042135 0.018387 0.007084 0.110401 0.041228 0.001390 0.020192 0.063422 0.040245 0.204360 +0.578507 +0.031633 0.037034 0.032461 0.028359 0.014696 0.097446 0.010259 0.037128 0.033045 0.028994 0.016429 0.093458 0.015302 0.016243 0.028731 0.034649 0.017807 0.028613 0.028713 0.019417 0.020723 0.063422 0.041165 0.015066 0.004809 0.110401 0.039027 0.001236 0.018831 0.063422 0.037932 0.157380 +0.243035 +0.028780 0.036731 0.029137 0.030977 0.015745 0.024770 0.011540 0.036000 0.028475 0.029321 0.018567 0.021124 0.016275 0.015809 0.028214 0.028386 0.016388 0.055528 0.028643 0.020443 0.018918 0.086911 0.041960 0.012368 0.010258 0.086911 0.041248 0.001322 0.019208 0.063422 0.039595 0.133891 +0.014207 +0.028421 0.038158 0.029730 0.031168 0.017952 0.035392 0.010101 0.037399 0.043935 0.031240 0.017622 0.026212 0.015231 0.016048 0.029395 0.035351 0.014697 0.055319 0.028748 0.019529 0.020376 0.063422 0.039923 0.017469 0.012335 0.110401 0.040044 0.001167 0.018975 0.110401 0.040576 0.133891 +0.047427 +0.029703 0.037614 0.030907 0.031633 0.018309 0.111350 0.010944 0.036629 0.030084 0.033910 0.017575 0.018283 0.015977 0.016026 0.033813 0.034695 0.016282 0.025300 0.028089 0.018968 0.021919 0.157380 0.038131 0.013512 0.010547 0.133891 0.040869 0.001468 0.020025 0.110401 0.039536 0.180870 +0.118194 +0.032473 0.038183 0.034136 0.031850 0.015766 0.070649 0.009597 0.035667 0.031842 0.028458 0.016366 0.068499 0.015578 0.015511 0.029115 0.029549 0.015019 0.175647 0.027150 0.019998 0.020376 0.133891 0.039829 0.015689 0.012023 0.063422 0.039392 0.001104 0.020876 0.133891 0.042186 0.157380 +0.309275 +0.032097 0.034661 0.035491 0.029880 0.016126 0.034824 0.010540 0.035695 0.028228 0.032433 0.017742 0.075398 0.015417 0.015939 0.030203 0.029259 0.016454 0.024921 0.030314 0.020409 0.021929 0.133891 0.040879 0.018485 0.012063 0.086911 0.040312 0.000478 0.020390 0.110401 0.041219 0.157380 +0.063775 +0.028344 0.035579 0.028593 0.029138 0.018581 0.041873 0.011608 0.037222 0.030227 0.031291 0.015196 0.076538 0.016201 0.015709 0.028648 0.028502 0.016310 0.077470 0.029468 0.019752 0.019345 0.086911 0.040291 0.018631 0.009564 0.157380 0.039244 0.000906 0.020091 0.063422 0.039200 0.204360 +0.090001 +0.031108 0.037774 0.029728 0.037642 0.014410 0.079823 0.010773 0.035677 0.029224 0.029838 0.015401 0.075663 0.016197 0.016091 0.032671 0.034478 0.015026 0.065840 0.025663 0.020665 0.019032 0.086911 0.037838 0.014888 0.009269 0.110401 0.039635 0.001252 0.019473 0.110401 0.038504 0.133891 +0.342654 +0.031770 0.036272 0.034083 0.028714 0.014193 0.111350 0.010697 0.035690 0.029286 0.033353 0.016507 0.085228 0.015344 0.016121 0.028717 0.031489 0.018719 0.048715 0.027888 0.019319 0.021606 0.110401 0.039518 0.013235 0.006186 0.110401 0.038910 0.000575 0.019904 0.133891 0.040792 0.204360 +0.356654 +0.030484 0.035716 0.030022 0.034472 0.015984 0.051030 0.010431 0.036130 0.029845 0.032495 0.014222 0.270779 0.015955 0.015696 0.030260 0.030364 0.016213 0.051405 0.028214 0.020578 0.021750 0.110401 0.040652 0.015255 0.004831 0.063422 0.041642 0.000956 0.018960 0.063422 0.040340 0.133891 +0.449243 +0.030417 0.035974 0.029453 0.028296 0.014615 0.108170 0.009935 0.036698 0.028517 0.029381 0.016427 0.024365 0.015430 0.015793 0.028672 0.029634 0.015318 0.056472 0.028470 0.021088 0.020806 0.157380 0.040323 0.013022 0.010941 0.063422 0.041952 0.001888 0.020780 0.063422 0.038218 0.204360 +0.128164 +0.032773 0.034433 0.028724 0.030625 0.014462 0.049254 0.011125 0.037226 0.028741 0.029290 0.018645 0.195401 0.015778 0.015680 0.030218 0.032957 0.017427 0.134759 0.028106 0.019382 0.023113 0.110401 0.039375 0.018369 0.007236 0.086911 0.041495 0.000380 0.020056 0.086911 0.038526 0.133891 +0.497612 +0.030231 0.038837 0.028207 0.029721 0.018149 0.036516 0.011599 0.036057 0.029795 0.031780 0.016300 0.292364 0.015149 0.015949 0.042011 0.034171 0.016715 0.065537 0.027852 0.020171 0.019433 0.063422 0.041785 0.018007 0.005328 0.110401 0.039973 0.002155 0.020504 0.133891 0.041763 0.157380 +0.444016 +0.029568 0.035107 0.035184 0.029979 0.014434 0.137271 0.009926 0.037058 0.036378 0.030020 0.014738 0.143692 0.015709 0.016396 0.035626 0.031934 0.014843 0.097262 0.026515 0.020088 0.021703 0.180870 0.039535 0.012185 0.013094 0.086911 0.041572 0.000954 0.019739 0.133891 0.038691 0.204360 +0.353276 +0.030392 0.037849 0.028406 0.028840 0.016219 0.118832 0.010172 0.036029 0.030944 0.028204 0.015102 0.177891 0.016208 0.016347 0.034392 0.028719 0.018520 0.041842 0.029339 0.020483 0.021793 0.086911 0.042224 0.015502 0.006797 0.063422 0.040742 0.000659 0.019338 0.086911 0.040989 0.180870 +0.373311 +0.030500 0.035394 0.028982 0.041494 0.018074 0.123485 0.009831 0.035380 0.030459 0.028733 0.016910 0.062135 0.016355 0.015792 0.035691 0.028320 0.017105 0.018282 0.028578 0.019062 0.021999 0.133891 0.040712 0.014090 0.013046 0.133891 0.041049 0.001644 0.018847 0.110401 0.037942 0.157380 +0.127282 +0.032064 0.036655 0.029171 0.031635 0.018409 0.156626 0.011096 0.037581 0.030799 0.033681 0.016771 0.073033 0.016318 0.016114 0.028487 0.028601 0.016955 0.119939 0.027895 0.019857 0.021227 0.157380 0.039412 0.015242 0.013906 0.180870 0.042217 0.001028 0.020254 0.133891 0.038558 0.204360 +0.363817 +0.029841 0.033691 0.029593 0.030171 0.018292 0.025301 0.011071 0.036917 0.030672 0.028743 0.015820 0.045073 0.015919 0.015963 0.029570 0.031461 0.018419 0.030057 0.027635 0.020277 0.022239 0.133891 0.038515 0.016746 0.007100 0.110401 0.040349 0.000969 0.019446 0.063422 0.038247 0.157380 +0.019097 +0.031102 0.034369 0.037403 0.029472 0.014665 0.092947 0.010063 0.037044 0.028438 0.029355 0.014919 0.191318 0.015862 0.016354 0.028991 0.042101 0.017392 0.038657 0.027403 0.019853 0.022190 0.063422 0.039398 0.016303 0.013254 0.063422 0.037649 0.001507 0.018990 0.157380 0.041988 0.204360 +0.352956 +0.029063 0.039321 0.032546 0.031183 0.014958 0.059158 0.010785 0.035839 0.031894 0.031524 0.016366 0.057793 0.016185 0.016280 0.029314 0.030722 0.017155 0.031272 0.027873 0.020809 0.022643 0.133891 0.042183 0.014341 0.010580 0.063422 0.037652 0.000743 0.019978 0.063422 0.038751 0.157380 +0.106578 +0.029461 0.037132 0.029916 0.029512 0.014742 0.019740 0.011347 0.037266 0.029759 0.029093 0.014473 0.256518 0.015680 0.015924 0.032016 0.028954 0.017547 0.048748 0.027120 0.019255 0.018801 0.157380 0.037936 0.018045 0.013335 0.110401 0.040093 0.002229 0.021011 0.086911 0.040989 0.180870 +0.341596 +0.031993 0.034958 0.028783 0.031099 0.017827 0.190756 0.009805 0.036010 0.031327 0.031938 0.014614 0.029943 0.016169 0.015949 0.031292 0.029998 0.014572 0.017088 0.028758 0.020468 0.020100 0.086911 0.041145 0.015096 0.007450 0.110401 0.038509 0.001878 0.020357 0.133891 0.041064 0.157380 +0.345419 +0.031191 0.034581 0.029429 0.037513 0.016246 0.137482 0.011340 0.035425 0.030304 0.030254 0.014872 0.176840 0.016132 0.015531 0.028270 0.030451 0.016607 0.120860 0.029307 0.018828 0.022714 0.157380 0.039719 0.014321 0.009142 0.063422 0.039278 0.002181 0.020609 0.157380 0.039998 0.180870 +0.559844 +0.030192 0.033138 0.032212 0.029010 0.018783 0.199321 0.011313 0.037292 0.029170 0.028352 0.014328 0.026296 0.016219 0.015606 0.030485 0.031595 0.014268 0.036449 0.028331 0.020981 0.023160 0.157380 0.041049 0.014670 0.006504 0.157380 0.040387 0.001117 0.020706 0.133891 0.039467 0.204360 +0.309884 +0.028564 0.034340 0.029432 0.028298 0.016174 0.084572 0.009804 0.037188 0.031532 0.029106 0.015108 0.074067 0.015442 0.016358 0.028319 0.029043 0.015783 0.100802 0.027967 0.019128 0.022223 0.110401 0.038757 0.014928 0.009024 0.086911 0.038417 0.001613 0.020791 0.086911 0.041111 0.133891 +0.279721 +0.032514 0.035786 0.030061 0.031651 0.017235 0.102620 0.009918 0.035478 0.029389 0.036738 0.014740 0.064810 0.015637 0.016268 0.033661 0.028755 0.018594 0.046944 0.027122 0.019152 0.018806 0.110401 0.040358 0.014893 0.005033 0.110401 0.041120 0.000037 0.021100 0.086911 0.040950 0.133891 +0.198857 +0.029769 0.037729 0.041087 0.028485 0.017076 0.040438 0.010647 0.037107 0.030982 0.029827 0.014866 0.121351 0.015039 0.016085 0.030629 0.029612 0.018059 0.316306 0.028766 0.019352 0.020541 0.110401 0.037864 0.011746 0.011017 0.110401 0.041426 0.000863 0.020745 0.086911 0.041540 0.133891 +0.622975 +0.028787 0.039775 0.028966 0.032141 0.016181 0.019128 0.009493 0.036025 0.029947 0.030575 0.015872 0.168782 0.016324 0.015839 0.031378 0.029465 0.018239 0.039679 0.027814 0.019032 0.021591 0.063422 0.038037 0.016091 0.013579 0.086911 0.038306 0.001307 0.020633 0.063422 0.038771 0.180870 +0.127574 +0.030064 0.034404 0.028676 0.030278 0.017614 0.179981 0.010701 0.037514 0.030619 0.042321 0.018762 0.017321 0.015057 0.015789 0.030110 0.032123 0.016818 0.035220 0.026125 0.019230 0.021781 0.063422 0.040476 0.016143 0.011872 0.133891 0.041313 0.002075 0.020111 0.157380 0.040551 0.204360 +0.142778 +0.030638 0.038474 0.029696 0.028240 0.014993 0.066907 0.010225 0.037479 0.028319 0.028591 0.018672 0.032734 0.016170 0.015843 0.033690 0.028516 0.015481 0.117866 0.030291 0.020903 0.020669 0.063422 0.041173 0.014655 0.005343 0.086911 0.040396 0.002035 0.019279 0.086911 0.038884 0.204360 +0.155889 +0.029520 0.036018 0.030427 0.028272 0.018374 0.051490 0.010228 0.037064 0.036476 0.029117 0.017456 0.218998 0.016394 0.016338 0.031249 0.029525 0.017971 0.092551 0.029333 0.020681 0.022039 0.086911 0.038085 0.016733 0.006703 0.063422 0.042257 0.000102 0.019434 0.086911 0.039936 0.133891 +0.440227 +0.030133 0.038215 0.028628 0.040889 0.018073 0.057837 0.010054 0.036416 0.028471 0.028554 0.016042 0.116211 0.016288 0.015741 0.030385 0.030655 0.015445 0.065338 0.029219 0.019653 0.019747 0.110401 0.040052 0.016550 0.011164 0.110401 0.040740 0.001980 0.020409 0.086911 0.037849 0.133891 +0.250922 +0.031514 0.033466 0.030387 0.031684 0.015338 0.022176 0.010686 0.035475 0.029158 0.030739 0.018370 0.034144 0.016154 0.015965 0.035819 0.028269 0.016551 0.056308 0.028140 0.019013 0.021120 0.110401 0.039319 0.014919 0.004908 0.086911 0.040752 0.000936 0.020134 0.180870 0.041152 0.204360 +0.002365 +0.030171 0.033326 0.028698 0.034245 0.018416 0.100639 0.010507 0.035609 0.028948 0.034512 0.015968 0.040165 0.015700 0.016251 0.034729 0.028901 0.014243 0.025419 0.029655 0.018973 0.021982 0.133891 0.041204 0.013167 0.008582 0.063422 0.040109 0.002060 0.020947 0.133891 0.041993 0.180870 +0.074044 +0.030148 0.035868 0.030654 0.030098 0.017248 0.035191 0.011436 0.036945 0.037142 0.028676 0.016873 0.034919 0.015059 0.015657 0.028796 0.028217 0.017154 0.023011 0.027994 0.020078 0.022456 0.110401 0.038193 0.018089 0.010173 0.180870 0.040590 0.001113 0.019761 0.133891 0.041519 0.204360 +0 +0.028241 0.037802 0.028376 0.030261 0.016482 0.057346 0.011730 0.035906 0.029366 0.031161 0.018120 0.058348 0.015517 0.016001 0.030206 0.029307 0.014610 0.079718 0.026074 0.019199 0.022284 0.086911 0.039178 0.017436 0.010696 0.063422 0.040354 0.001031 0.019970 0.086911 0.041067 0.133891 +0.158392 +0.029463 0.034214 0.032925 0.028449 0.017249 0.274194 0.011357 0.037374 0.036762 0.040784 0.016812 0.074508 0.015856 0.016254 0.029352 0.029021 0.017109 0.115100 0.029263 0.020541 0.020107 0.180870 0.038156 0.018157 0.007959 0.157380 0.039546 0.000632 0.018854 0.063422 0.039083 0.204360 +0.645645 +0.032532 0.038005 0.036843 0.029283 0.016123 0.027481 0.010380 0.036457 0.029650 0.031483 0.017168 0.063059 0.015574 0.015865 0.028288 0.030054 0.016752 0.052213 0.027451 0.019986 0.019313 0.133891 0.039481 0.013197 0.011910 0.086911 0.039894 0.000723 0.019748 0.133891 0.040901 0.180870 +0.020341 +0.030121 0.034654 0.028298 0.028330 0.015867 0.022205 0.009819 0.037371 0.029715 0.028398 0.015114 0.053817 0.015853 0.015689 0.028236 0.028392 0.015928 0.031337 0.026495 0.019361 0.022929 0.086911 0.039663 0.016272 0.004878 0.086911 0.038230 0.001209 0.020755 0.110401 0.040159 0.133891 +0.022206 +0.029488 0.039472 0.028657 0.029079 0.017727 0.046635 0.010570 0.037389 0.028494 0.028534 0.014425 0.044129 0.015937 0.016280 0.028214 0.028989 0.014390 0.156472 0.028304 0.020182 0.020049 0.063422 0.040824 0.015999 0.013340 0.063422 0.040785 0.000041 0.019109 0.086911 0.041428 0.180870 +0.197599 +0.030330 0.033711 0.029455 0.033055 0.017572 0.024418 0.009949 0.036649 0.028318 0.028518 0.016492 0.027808 0.015612 0.015726 0.028712 0.029562 0.018649 0.031075 0.027636 0.018979 0.022166 0.110401 0.041379 0.014309 0.006371 0.133891 0.040037 0.001632 0.019253 0.110401 0.038210 0.157380 +0.002292 +0.032386 0.036277 0.029083 0.030131 0.018643 0.030290 0.009873 0.035411 0.030230 0.028656 0.015705 0.048113 0.015694 0.015980 0.031273 0.029405 0.016855 0.105612 0.028286 0.020587 0.022351 0.063422 0.038114 0.013306 0.005775 0.110401 0.039223 0.000236 0.018990 0.133891 0.038871 0.157380 +0.119102 +0.029320 0.038845 0.032467 0.033071 0.016980 0.336900 0.011628 0.035749 0.028847 0.033634 0.018171 0.115060 0.015729 0.016376 0.031363 0.028255 0.017661 0.104316 0.027731 0.019753 0.019264 0.086911 0.039478 0.014188 0.005414 0.086911 0.038441 0.002290 0.019609 0.063422 0.039527 0.133891 +0.560343 +0.031300 0.037165 0.032608 0.028522 0.018663 0.235854 0.009952 0.035745 0.029869 0.031078 0.014596 0.080793 0.015706 0.016027 0.034638 0.029970 0.014323 0.051567 0.031090 0.019463 0.020821 0.086911 0.041605 0.015539 0.008068 0.133891 0.037936 0.002296 0.019705 0.063422 0.040295 0.157380 +0.295435 +0.029933 0.034226 0.028767 0.031459 0.015100 0.019877 0.010280 0.035607 0.028388 0.031444 0.018371 0.087902 0.015210 0.015675 0.028812 0.034607 0.014687 0.145452 0.029415 0.019222 0.021029 0.110401 0.039764 0.018670 0.012037 0.063422 0.040989 0.001224 0.021086 0.110401 0.041086 0.157380 +0.164678 +0.029148 0.037121 0.029132 0.028490 0.017207 0.116940 0.010966 0.035652 0.031306 0.035326 0.015513 0.019547 0.016268 0.015726 0.028558 0.029291 0.014978 0.038594 0.028774 0.019923 0.019978 0.086911 0.039102 0.014894 0.009704 0.110401 0.039242 0.000850 0.020240 0.086911 0.040945 0.133891 +0.139157 +0.030958 0.037974 0.029048 0.029442 0.018768 0.028421 0.011168 0.035575 0.032417 0.028959 0.017289 0.046244 0.016044 0.015957 0.031570 0.029046 0.018732 0.042943 0.030069 0.019314 0.018945 0.063422 0.041231 0.018330 0.005176 0.110401 0.040387 0.001177 0.020699 0.110401 0.040250 0.133891 +0.022402 +0.032155 0.034408 0.029244 0.033086 0.017877 0.040825 0.010144 0.037126 0.028610 0.028911 0.014642 0.040084 0.015116 0.015966 0.028909 0.028759 0.017077 0.160153 0.027664 0.019562 0.022558 0.157380 0.037641 0.018330 0.013190 0.133891 0.038980 0.001586 0.019180 0.110401 0.041295 0.204360 +0.254326 +0.030850 0.034965 0.032838 0.031540 0.018173 0.076415 0.010401 0.036938 0.029326 0.028552 0.016093 0.034694 0.016343 0.015635 0.028906 0.028662 0.015970 0.068196 0.028166 0.018978 0.019584 0.063422 0.040770 0.012572 0.005348 0.110401 0.037657 0.000156 0.019343 0.133891 0.039813 0.180870 +0.034512 +0.029792 0.037332 0.029821 0.031038 0.018601 0.062565 0.011490 0.035999 0.028560 0.031698 0.015557 0.229164 0.015612 0.016183 0.029256 0.032399 0.015799 0.144947 0.027972 0.019274 0.021673 0.157380 0.041261 0.016519 0.007741 0.110401 0.041897 0.000265 0.019684 0.086911 0.038900 0.180870 +0.564040 +0.030604 0.039368 0.034878 0.029536 0.014610 0.101382 0.009469 0.037048 0.031789 0.032205 0.018263 0.025037 0.015785 0.015657 0.029998 0.029645 0.018564 0.050793 0.028206 0.019347 0.022212 0.157380 0.042110 0.012840 0.007405 0.133891 0.042264 0.001901 0.019853 0.180870 0.038628 0.204360 +0.188151 +0.028296 0.033786 0.028800 0.028618 0.017829 0.049596 0.010499 0.036816 0.030014 0.032376 0.015466 0.092177 0.015653 0.015820 0.029979 0.028700 0.015987 0.064868 0.027868 0.020805 0.021465 0.086911 0.041315 0.015661 0.006085 0.086911 0.037697 0.001173 0.019380 0.063422 0.039263 0.204360 +0.109030 +0.030059 0.033022 0.028458 0.028250 0.016747 0.281177 0.010381 0.037245 0.028941 0.030952 0.018447 0.065440 0.015680 0.015635 0.031107 0.031570 0.015456 0.074460 0.027088 0.020283 0.021440 0.133891 0.040617 0.016814 0.009758 0.133891 0.040701 0.001109 0.019125 0.063422 0.037881 0.157380 +0.488289 +0.030788 0.038409 0.034635 0.029966 0.016052 0.044951 0.010824 0.035951 0.029601 0.028420 0.015884 0.163451 0.015862 0.016429 0.028913 0.029014 0.017386 0.120416 0.026729 0.018827 0.021016 0.110401 0.037973 0.014776 0.006639 0.063422 0.038838 0.002247 0.019708 0.086911 0.040180 0.133891 +0.404349 +0.029903 0.033640 0.028479 0.033556 0.018454 0.019289 0.010764 0.037087 0.030375 0.033072 0.016529 0.036914 0.015260 0.015775 0.030091 0.029963 0.016863 0.018342 0.026469 0.021008 0.020634 0.157380 0.038641 0.015625 0.006747 0.157380 0.041968 0.001595 0.019188 0.086911 0.039379 0.204360 +0 +0.032642 0.037773 0.029632 0.032245 0.015325 0.104240 0.010475 0.035305 0.028318 0.030846 0.015522 0.060423 0.015879 0.015873 0.030904 0.028514 0.014891 0.074127 0.027414 0.019898 0.019629 0.063422 0.042015 0.017244 0.008790 0.133891 0.038753 0.000759 0.020949 0.133891 0.041271 0.157380 +0.188606 +0.031132 0.039368 0.028634 0.031768 0.016803 0.055698 0.010611 0.037409 0.029256 0.032019 0.017515 0.091044 0.015271 0.015565 0.029489 0.030090 0.018052 0.057059 0.027110 0.018864 0.023082 0.063422 0.039793 0.013454 0.012336 0.063422 0.042016 0.001181 0.020860 0.110401 0.042254 0.180870 +0.122989 +0.028214 0.034922 0.028330 0.029736 0.014414 0.058789 0.009783 0.036967 0.030148 0.028501 0.015964 0.032691 0.015824 0.015849 0.029697 0.028476 0.016131 0.305003 0.028100 0.019410 0.021958 0.110401 0.038932 0.017951 0.009806 0.063422 0.038695 0.001527 0.018985 0.063422 0.040764 0.133891 +0.576643 +0.031095 0.039427 0.031913 0.035616 0.017247 0.093739 0.010201 0.036897 0.028529 0.028497 0.016985 0.025553 0.015122 0.016261 0.029084 0.034882 0.015229 0.054619 0.029360 0.020971 0.020249 0.086911 0.040527 0.015788 0.012864 0.157380 0.039943 0.001673 0.020758 0.157380 0.037917 0.180870 +0.178846 +0.032685 0.037530 0.028291 0.028338 0.014485 0.017145 0.009991 0.035392 0.029223 0.030737 0.014981 0.080045 0.015484 0.016225 0.028343 0.039662 0.015668 0.038655 0.029870 0.020121 0.021888 0.110401 0.041888 0.012023 0.011494 0.063422 0.040196 0.001168 0.019546 0.110401 0.041988 0.180870 +0.014919 +0.028300 0.034988 0.028209 0.029485 0.016901 0.057280 0.009605 0.036338 0.028550 0.029883 0.017687 0.034697 0.016238 0.015832 0.029875 0.028699 0.016710 0.028542 0.026071 0.019509 0.020299 0.110401 0.041642 0.012777 0.004754 0.063422 0.040541 0.001565 0.019015 0.086911 0.040855 0.157380 +0.025941 +0.031148 0.034160 0.030261 0.029318 0.016998 0.027898 0.011090 0.036297 0.032196 0.030954 0.014203 0.357996 0.015536 0.015744 0.028304 0.028209 0.015056 0.053145 0.029275 0.020106 0.021361 0.086911 0.037818 0.014839 0.008923 0.086911 0.040282 0.000720 0.019263 0.180870 0.039536 0.204360 +0.624436 +0.028634 0.035459 0.031314 0.028337 0.016227 0.058896 0.011378 0.036387 0.028933 0.029001 0.017675 0.027395 0.016393 0.016018 0.028672 0.030721 0.017132 0.076308 0.029329 0.020833 0.020171 0.110401 0.039768 0.015594 0.011778 0.063422 0.041772 0.000907 0.020083 0.110401 0.037670 0.133891 +0.106044 +0.028783 0.037008 0.028237 0.030215 0.017297 0.053292 0.010393 0.036895 0.029307 0.043328 0.014411 0.068225 0.015374 0.015693 0.029025 0.028467 0.017157 0.188646 0.025188 0.020662 0.020912 0.133891 0.037742 0.015379 0.012826 0.063422 0.041239 0.000006 0.019475 0.110401 0.039747 0.157380 +0.425642 +0.032604 0.036688 0.035511 0.032262 0.018779 0.043831 0.010019 0.035415 0.031661 0.030006 0.016209 0.082832 0.015853 0.016135 0.029959 0.030918 0.014980 0.100600 0.026336 0.019559 0.022339 0.133891 0.040040 0.013346 0.008316 0.110401 0.041602 0.001914 0.021010 0.110401 0.037601 0.204360 +0.135050 +0.031106 0.035622 0.031372 0.030679 0.017791 0.057577 0.010421 0.036847 0.032707 0.033696 0.014544 0.080777 0.015541 0.016431 0.029369 0.032790 0.014860 0.052678 0.028419 0.019775 0.021794 0.110401 0.039868 0.016237 0.009068 0.133891 0.039796 0.000636 0.019613 0.110401 0.040369 0.157380 +0.139692 +0.028356 0.035983 0.031601 0.030155 0.014278 0.025075 0.010067 0.035523 0.029691 0.028862 0.015607 0.068021 0.016155 0.015766 0.028551 0.028516 0.014250 0.152860 0.026863 0.020593 0.020231 0.086911 0.039523 0.016810 0.007174 0.086911 0.041186 0.001664 0.020135 0.157380 0.040383 0.180870 +0.237887 +0.028500 0.036787 0.029224 0.029363 0.017677 0.266368 0.010073 0.036445 0.029577 0.031523 0.016994 0.100569 0.016252 0.016229 0.033790 0.034221 0.014482 0.036631 0.028061 0.020814 0.020631 0.157380 0.039616 0.018623 0.008642 0.157380 0.041765 0.000830 0.018980 0.157380 0.038448 0.180870 +0.450341 +0.029855 0.034373 0.029888 0.028843 0.015376 0.040472 0.011134 0.036601 0.029673 0.030536 0.015718 0.179939 0.015470 0.015736 0.031269 0.031892 0.016702 0.061455 0.028383 0.019135 0.020264 0.110401 0.040629 0.012119 0.009110 0.157380 0.038181 0.001511 0.019502 0.110401 0.040762 0.180870 +0.273970 +0.028638 0.036600 0.028248 0.028443 0.017725 0.125802 0.010742 0.036202 0.028639 0.028216 0.017314 0.023157 0.015103 0.016210 0.035973 0.028241 0.017631 0.063354 0.028595 0.018921 0.021503 0.063422 0.039917 0.012845 0.012321 0.133891 0.040232 0.001618 0.019056 0.110401 0.041479 0.180870 +0.175847 +0.032802 0.036689 0.032992 0.030147 0.016741 0.089698 0.010220 0.036180 0.029100 0.029806 0.014605 0.019151 0.016441 0.016321 0.028592 0.030969 0.015817 0.046827 0.026466 0.019015 0.020644 0.086911 0.039539 0.018554 0.008535 0.110401 0.039660 0.001983 0.019896 0.110401 0.039735 0.133891 +0.144031 +0.032847 0.037552 0.035457 0.028410 0.016969 0.027928 0.010733 0.036989 0.028265 0.028896 0.016491 0.144196 0.015563 0.015980 0.030923 0.028481 0.017938 0.035191 0.027520 0.018954 0.020028 0.133891 0.042276 0.016846 0.005750 0.063422 0.039397 0.001018 0.020515 0.180870 0.039367 0.204360 +0.096753 +0.028952 0.038824 0.030939 0.028923 0.017088 0.083298 0.009862 0.036058 0.029345 0.030192 0.017919 0.034568 0.015839 0.015984 0.031650 0.028712 0.014976 0.020777 0.028704 0.020160 0.020684 0.086911 0.037941 0.014746 0.005246 0.086911 0.040530 0.001795 0.019795 0.110401 0.038095 0.180870 +0 +0.030113 0.037539 0.028756 0.037393 0.017487 0.124260 0.011628 0.036803 0.032403 0.031449 0.015375 0.092115 0.016216 0.016079 0.029324 0.029805 0.014607 0.099945 0.027138 0.020489 0.020187 0.110401 0.041200 0.012554 0.007820 0.086911 0.041298 0.002198 0.018901 0.063422 0.038803 0.133891 +0.343176 +0.030764 0.038096 0.030332 0.028728 0.017729 0.054578 0.011276 0.035775 0.033133 0.036706 0.018604 0.050761 0.015166 0.016095 0.029263 0.033645 0.017610 0.065056 0.026678 0.020557 0.022907 0.086911 0.038796 0.013920 0.009124 0.086911 0.041862 0.001238 0.019701 0.133891 0.039214 0.157380 +0.154828 +0.030986 0.033081 0.028838 0.028879 0.017799 0.085513 0.011242 0.037103 0.028450 0.038046 0.017309 0.128504 0.015110 0.015548 0.030495 0.031307 0.018266 0.063553 0.027596 0.020232 0.020411 0.086911 0.042206 0.016253 0.010895 0.110401 0.039600 0.000850 0.020916 0.110401 0.038222 0.204360 +0.174626 +0.032095 0.035988 0.028362 0.030483 0.015100 0.087672 0.010742 0.035613 0.028513 0.029354 0.018543 0.084622 0.016429 0.016053 0.030892 0.030342 0.015730 0.124177 0.027273 0.020094 0.020770 0.133891 0.040823 0.013547 0.013304 0.086911 0.038671 0.001065 0.020617 0.110401 0.037707 0.204360 +0.300550 +0.031360 0.034193 0.031223 0.029691 0.016988 0.142813 0.011108 0.035605 0.028230 0.036810 0.018732 0.050259 0.016399 0.015772 0.030855 0.028223 0.016506 0.171403 0.028921 0.020870 0.019999 0.086911 0.039214 0.013463 0.009227 0.110401 0.041495 0.000734 0.020708 0.086911 0.040585 0.133891 +0.490963 +0.030317 0.038271 0.031308 0.029602 0.015376 0.042101 0.011626 0.035540 0.028313 0.029230 0.016173 0.085420 0.015422 0.016181 0.032048 0.029716 0.018503 0.072683 0.028586 0.020403 0.020901 0.063422 0.038470 0.013988 0.006437 0.086911 0.038252 0.000136 0.018858 0.133891 0.039829 0.157380 +0.182985 +0.029861 0.035775 0.031270 0.030900 0.015755 0.018519 0.011276 0.035901 0.030099 0.028474 0.015164 0.062705 0.016266 0.015909 0.033609 0.035565 0.016768 0.124702 0.026712 0.018891 0.020284 0.086911 0.041158 0.014696 0.012978 0.133891 0.039826 0.000804 0.020645 0.110401 0.042111 0.180870 +0.066695 +0.030206 0.034398 0.033904 0.030282 0.015656 0.070917 0.011512 0.036295 0.028846 0.030521 0.017003 0.111152 0.016133 0.016433 0.028498 0.028481 0.016051 0.181296 0.028568 0.019493 0.022029 0.110401 0.038031 0.012719 0.010832 0.086911 0.041150 0.002046 0.020495 0.110401 0.041701 0.180870 +0.466896 +0.028901 0.034325 0.028522 0.031429 0.014756 0.040277 0.009763 0.036849 0.028934 0.028646 0.017506 0.050838 0.015346 0.015968 0.029104 0.029599 0.015951 0.078403 0.025224 0.019284 0.020399 0.063422 0.038925 0.017712 0.014017 0.063422 0.039545 0.001646 0.020416 0.157380 0.040013 0.204360 +0.028240 +0.029671 0.037584 0.031862 0.030472 0.017373 0.054526 0.011580 0.037236 0.029832 0.029627 0.014911 0.113137 0.015121 0.016386 0.030455 0.036022 0.014492 0.210667 0.026397 0.019390 0.023472 0.063422 0.039290 0.012983 0.012087 0.133891 0.040342 0.001259 0.019063 0.086911 0.037792 0.180870 +0.435487 +0.029019 0.037480 0.032322 0.029395 0.015496 0.146449 0.011562 0.036722 0.032675 0.030012 0.015510 0.059159 0.015332 0.015564 0.028964 0.039361 0.015491 0.121231 0.025925 0.019329 0.019611 0.063422 0.040045 0.011755 0.010273 0.133891 0.040486 0.000040 0.020632 0.133891 0.038760 0.157380 +0.420275 +0.030861 0.038166 0.028541 0.031410 0.017244 0.024480 0.010100 0.037010 0.036795 0.034411 0.016315 0.261037 0.015843 0.016112 0.031580 0.030610 0.018340 0.202767 0.027078 0.018850 0.022356 0.086911 0.041972 0.013266 0.007135 0.110401 0.040230 0.001997 0.020465 0.157380 0.038014 0.180870 +0.686938 +0.031526 0.033699 0.028191 0.029749 0.015691 0.257013 0.010559 0.035249 0.031152 0.028247 0.017784 0.102623 0.016252 0.016366 0.032753 0.032815 0.016245 0.073506 0.026827 0.019377 0.019156 0.180870 0.037953 0.013401 0.013607 0.133891 0.041637 0.000599 0.018904 0.063422 0.040039 0.204360 +0.479835 +0.032048 0.034318 0.028708 0.029852 0.015979 0.034809 0.011544 0.035547 0.030085 0.029673 0.014676 0.026558 0.016306 0.016007 0.028885 0.029102 0.018400 0.042981 0.026516 0.019384 0.023280 0.110401 0.038689 0.012239 0.005350 0.086911 0.038397 0.001517 0.020085 0.157380 0.037679 0.180870 +0.010664 +0.032635 0.039030 0.031273 0.028847 0.015249 0.028024 0.011576 0.036906 0.029168 0.032765 0.016533 0.026770 0.015833 0.015916 0.028348 0.030430 0.014821 0.099403 0.026525 0.020847 0.020019 0.086911 0.041777 0.017990 0.009500 0.157380 0.039714 0.000063 0.020613 0.157380 0.040877 0.180870 +0.076995 +0.028366 0.035347 0.029524 0.029995 0.016983 0.223553 0.011714 0.036431 0.029658 0.028372 0.018338 0.029599 0.015217 0.016418 0.030292 0.028951 0.014891 0.159387 0.027922 0.019045 0.023106 0.157380 0.040261 0.012380 0.013554 0.157380 0.039721 0.000545 0.019670 0.133891 0.041247 0.180870 +0.533323 +0.031209 0.036806 0.029192 0.030062 0.014943 0.061211 0.011644 0.036143 0.028677 0.034200 0.018073 0.143801 0.015574 0.015768 0.028410 0.029745 0.016015 0.179345 0.027350 0.020147 0.022758 0.063422 0.040909 0.015170 0.008430 0.063422 0.042253 0.000138 0.020566 0.110401 0.041242 0.133891 +0.527548 +0.029403 0.033804 0.028316 0.031263 0.018686 0.354337 0.009421 0.037118 0.036676 0.032040 0.017581 0.024968 0.015748 0.016418 0.028420 0.030250 0.016974 0.025349 0.029669 0.020699 0.022127 0.063422 0.040570 0.018353 0.009337 0.086911 0.040427 0.002297 0.020114 0.086911 0.041998 0.204360 +0.346198 +0.030618 0.039477 0.028452 0.035512 0.015660 0.016612 0.011607 0.035584 0.030987 0.029482 0.014646 0.066169 0.015048 0.016283 0.029133 0.028338 0.017246 0.017640 0.026723 0.019452 0.022785 0.180870 0.038185 0.012151 0.008298 0.157380 0.041833 0.001295 0.020482 0.133891 0.038020 0.204360 +0.028285 +0.028927 0.039385 0.030200 0.030654 0.018142 0.064348 0.009631 0.035815 0.036011 0.028478 0.017304 0.048108 0.016305 0.016140 0.030711 0.029981 0.018669 0.024701 0.027069 0.018865 0.018800 0.086911 0.039271 0.015136 0.012778 0.086911 0.038836 0.000823 0.019021 0.110401 0.039008 0.133891 +0.048762 +0.029329 0.036859 0.029355 0.028563 0.018403 0.018382 0.011340 0.035737 0.029846 0.029962 0.016306 0.198808 0.015931 0.016192 0.032723 0.028506 0.014114 0.031240 0.027105 0.020628 0.022580 0.157380 0.040491 0.017723 0.005105 0.133891 0.042058 0.000360 0.019926 0.157380 0.041267 0.204360 +0.246104 +0.030309 0.033858 0.028619 0.030215 0.018282 0.041693 0.010901 0.037103 0.029821 0.028913 0.014495 0.066752 0.016165 0.015846 0.032162 0.039116 0.017531 0.189686 0.027849 0.018805 0.018955 0.063422 0.041035 0.012767 0.008699 0.110401 0.038005 0.000246 0.019760 0.086911 0.038574 0.133891 +0.363011 +0.031546 0.035086 0.030973 0.031418 0.016081 0.117137 0.011556 0.035947 0.029544 0.029551 0.017926 0.164197 0.015598 0.015520 0.028318 0.029013 0.014676 0.017410 0.028427 0.018980 0.019979 0.063422 0.038795 0.012720 0.009153 0.063422 0.041060 0.001697 0.021022 0.086911 0.038432 0.204360 +0.321774 +0.031602 0.036692 0.030897 0.029012 0.015946 0.092106 0.009814 0.036381 0.028715 0.029730 0.015221 0.129435 0.015778 0.016421 0.032948 0.029665 0.017623 0.037263 0.027922 0.020501 0.020324 0.110401 0.039600 0.014178 0.007238 0.180870 0.039731 0.002082 0.019926 0.110401 0.038636 0.204360 +0.259118 +0.028650 0.039436 0.037075 0.028541 0.017109 0.037047 0.011698 0.037222 0.034191 0.030840 0.016601 0.018313 0.015406 0.016168 0.035572 0.030423 0.015462 0.041335 0.026852 0.020037 0.019278 0.063422 0.038272 0.017461 0.013473 0.110401 0.042060 0.001682 0.019702 0.063422 0.040517 0.133891 +0.003832 +0.028806 0.035259 0.028835 0.030801 0.016272 0.075849 0.010728 0.035779 0.040128 0.037195 0.014439 0.046702 0.015849 0.015855 0.032631 0.030123 0.018195 0.217423 0.028725 0.020051 0.019380 0.110401 0.039498 0.015182 0.008465 0.110401 0.038379 0.000504 0.020066 0.063422 0.041123 0.157380 +0.302464 +0.032789 0.036966 0.029018 0.028972 0.016295 0.099594 0.011620 0.036669 0.037529 0.034039 0.015186 0.084359 0.016349 0.015514 0.029344 0.029624 0.015165 0.099186 0.028979 0.020325 0.022584 0.063422 0.037763 0.013773 0.012502 0.063422 0.038590 0.001749 0.020514 0.063422 0.042023 0.133891 +0.345304 +0.032813 0.033199 0.028258 0.029767 0.015221 0.102899 0.011195 0.036762 0.029298 0.031759 0.017711 0.035799 0.016032 0.015601 0.034301 0.038011 0.018633 0.092581 0.027602 0.019861 0.019111 0.063422 0.039536 0.017883 0.008951 0.133891 0.040096 0.002252 0.019693 0.086911 0.039955 0.157380 +0.316616 +0.032700 0.038520 0.032595 0.028554 0.017711 0.031202 0.010266 0.037437 0.028894 0.030027 0.015679 0.055870 0.015154 0.015939 0.029972 0.035197 0.017060 0.037570 0.026924 0.020173 0.021049 0.063422 0.041576 0.018068 0.006295 0.063422 0.039368 0.000950 0.019630 0.086911 0.041560 0.157380 +0.003043 +0.028948 0.033374 0.031043 0.028927 0.014407 0.024205 0.011166 0.037452 0.028192 0.028464 0.016015 0.026594 0.015409 0.016366 0.028521 0.028693 0.016635 0.023225 0.029529 0.020867 0.022306 0.086911 0.039050 0.015024 0.013472 0.157380 0.038743 0.001799 0.021119 0.133891 0.042247 0.180870 +0 +0.031057 0.039025 0.029020 0.034289 0.016511 0.099450 0.011741 0.035369 0.033112 0.029596 0.016927 0.051173 0.016204 0.016185 0.029333 0.030620 0.017464 0.016941 0.027879 0.020942 0.020672 0.110401 0.039673 0.012230 0.006916 0.086911 0.040186 0.000349 0.020233 0.063422 0.038729 0.133891 +0.161758 +0.029047 0.037037 0.029169 0.030436 0.016413 0.022621 0.010032 0.037076 0.028386 0.029117 0.016387 0.229118 0.016323 0.016019 0.028460 0.031056 0.014963 0.034060 0.027809 0.020464 0.020063 0.157380 0.041121 0.015728 0.011164 0.180870 0.038812 0.000138 0.019222 0.063422 0.040131 0.204360 +0.210526 +0.029437 0.035218 0.028547 0.030325 0.016701 0.071862 0.010647 0.037489 0.031414 0.029762 0.015916 0.044317 0.015118 0.016081 0.030707 0.028861 0.015817 0.192740 0.027216 0.020590 0.020682 0.063422 0.037725 0.018499 0.014085 0.133891 0.042020 0.001635 0.019981 0.110401 0.038759 0.180870 +0.301017 +0.028253 0.033939 0.028926 0.030998 0.017188 0.202837 0.010143 0.036505 0.029383 0.029577 0.015805 0.038632 0.015856 0.016101 0.030351 0.030950 0.014784 0.096283 0.026764 0.018824 0.019070 0.110401 0.038312 0.012484 0.009673 0.086911 0.038716 0.000710 0.020035 0.086911 0.041999 0.133891 +0.331929 +0.032398 0.038701 0.029689 0.032867 0.014937 0.056329 0.009554 0.035572 0.028277 0.031820 0.015925 0.031501 0.015606 0.016060 0.034216 0.028721 0.014440 0.100866 0.028079 0.019588 0.021266 0.133891 0.041752 0.017273 0.009724 0.063422 0.038358 0.000255 0.020558 0.157380 0.038480 0.204360 +0.050666 +0.028957 0.039363 0.029992 0.028960 0.017923 0.079987 0.009509 0.035327 0.028321 0.043495 0.017925 0.042580 0.015432 0.015930 0.031426 0.031310 0.014528 0.092064 0.027178 0.020607 0.019233 0.133891 0.039442 0.012131 0.006975 0.063422 0.037813 0.000236 0.020632 0.086911 0.041207 0.157380 +0.149082 +0.028337 0.034938 0.033085 0.032903 0.014586 0.080303 0.010167 0.035939 0.028652 0.031350 0.014790 0.327917 0.015831 0.016186 0.031730 0.030634 0.017673 0.079404 0.029230 0.020029 0.020341 0.133891 0.038399 0.012757 0.008224 0.110401 0.040804 0.001749 0.020506 0.157380 0.040206 0.180870 +0.642441 +0.031499 0.034348 0.028317 0.032695 0.014273 0.041113 0.010779 0.036301 0.033090 0.028329 0.014485 0.045101 0.015662 0.015895 0.028367 0.028392 0.015734 0.029660 0.028458 0.020915 0.022344 0.063422 0.041242 0.011836 0.007376 0.063422 0.040485 0.000189 0.021084 0.086911 0.041633 0.133891 +0.002259 +0.031198 0.036745 0.032809 0.029305 0.016033 0.020573 0.011692 0.037013 0.030510 0.031171 0.014224 0.042696 0.015502 0.016114 0.033200 0.028942 0.014572 0.156375 0.028120 0.019242 0.019359 0.110401 0.038891 0.015214 0.008778 0.180870 0.039550 0.002284 0.019868 0.063422 0.041181 0.204360 +0.185112 +0.031943 0.039177 0.030287 0.028640 0.018060 0.050807 0.009768 0.037496 0.029648 0.030139 0.016914 0.058016 0.015429 0.016204 0.028482 0.028674 0.016334 0.105977 0.028209 0.018954 0.021295 0.086911 0.039598 0.016436 0.013440 0.063422 0.038808 0.002084 0.019581 0.110401 0.041971 0.157380 +0.106595 +0.032328 0.039738 0.029623 0.029607 0.018243 0.055266 0.010555 0.035274 0.028255 0.028311 0.014837 0.095520 0.015797 0.016305 0.028252 0.032035 0.017403 0.105874 0.026967 0.020221 0.019309 0.110401 0.038857 0.017839 0.013207 0.110401 0.040653 0.001434 0.019705 0.110401 0.038786 0.157380 +0.218550 +0.032744 0.036195 0.030205 0.029117 0.016654 0.244456 0.010413 0.036735 0.028351 0.032174 0.016708 0.053344 0.015384 0.015607 0.028767 0.029837 0.016165 0.037754 0.029632 0.019198 0.023188 0.133891 0.040662 0.014806 0.005761 0.086911 0.039324 0.000907 0.020335 0.110401 0.040994 0.204360 +0.374173 +0.029450 0.034244 0.028369 0.032453 0.015572 0.039992 0.010804 0.037513 0.028496 0.029317 0.017337 0.085141 0.016420 0.015686 0.029175 0.029978 0.014290 0.048367 0.029764 0.021089 0.020363 0.063422 0.038406 0.012372 0.013388 0.133891 0.042170 0.001194 0.019193 0.133891 0.038548 0.157380 +0.119211 +0.028888 0.033024 0.030231 0.028726 0.015612 0.176586 0.010617 0.036965 0.035195 0.028229 0.014437 0.028992 0.015325 0.016216 0.030162 0.029381 0.014854 0.110995 0.027787 0.019528 0.019030 0.086911 0.040139 0.014797 0.006277 0.086911 0.037652 0.000193 0.019104 0.133891 0.038328 0.204360 +0.434350 +0.029541 0.037171 0.028232 0.028259 0.016000 0.028778 0.011379 0.035335 0.028703 0.030750 0.014551 0.053831 0.015644 0.015806 0.028284 0.029343 0.015958 0.026037 0.029084 0.020344 0.021987 0.086911 0.039918 0.013351 0.006517 0.110401 0.041688 0.001860 0.019871 0.063422 0.039402 0.180870 +0 +0.031335 0.034079 0.028415 0.031163 0.014884 0.112728 0.011502 0.036012 0.028614 0.032343 0.014932 0.081218 0.016306 0.015968 0.030746 0.029748 0.017155 0.081786 0.028795 0.019763 0.023009 0.063422 0.041556 0.013822 0.010009 0.133891 0.040335 0.000258 0.019807 0.110401 0.039739 0.157380 +0.360402 +0.030278 0.034920 0.030315 0.029793 0.018674 0.143447 0.011085 0.036843 0.028507 0.034534 0.017646 0.030838 0.015625 0.016429 0.030215 0.028350 0.014948 0.048605 0.027039 0.019266 0.022917 0.133891 0.039770 0.012132 0.005139 0.063422 0.040179 0.002155 0.018997 0.110401 0.038958 0.157380 +0.347437 +0.028384 0.039305 0.029842 0.028766 0.018286 0.020891 0.011329 0.036081 0.031422 0.032591 0.017102 0.059803 0.015997 0.015667 0.029014 0.029714 0.014742 0.034291 0.028457 0.018988 0.020980 0.063422 0.042048 0.017655 0.005333 0.063422 0.040969 0.001165 0.018834 0.063422 0.041635 0.133891 +0.005139 +0.029264 0.038699 0.029732 0.037324 0.018085 0.023092 0.010802 0.036714 0.031165 0.030317 0.018116 0.055263 0.015681 0.015649 0.033800 0.033565 0.016754 0.084868 0.027432 0.020680 0.018818 0.086911 0.038763 0.015186 0.012624 0.110401 0.040868 0.001684 0.021134 0.086911 0.037769 0.133891 +0.115650 +0.030340 0.034760 0.034632 0.028469 0.018143 0.049706 0.011582 0.035739 0.031566 0.028688 0.016637 0.038404 0.015500 0.015511 0.030982 0.028482 0.016682 0.088217 0.027881 0.020801 0.019370 0.133891 0.038434 0.014699 0.007793 0.063422 0.039282 0.000929 0.019697 0.063422 0.041526 0.157380 +0.174250 +0.032160 0.032991 0.028945 0.029578 0.018670 0.043195 0.009992 0.037562 0.034914 0.029643 0.015943 0.027674 0.015766 0.016421 0.032872 0.031546 0.015395 0.060109 0.028912 0.018929 0.019476 0.110401 0.040515 0.016027 0.005160 0.086911 0.040463 0.001109 0.019486 0.110401 0.038393 0.133891 +0.101589 +0.028981 0.033734 0.029902 0.031977 0.015469 0.024998 0.009848 0.036875 0.028577 0.031016 0.016018 0.051127 0.015232 0.015969 0.030799 0.028309 0.018609 0.080576 0.028793 0.019107 0.023124 0.110401 0.041406 0.016225 0.007443 0.133891 0.038289 0.001147 0.020434 0.063422 0.039189 0.204360 +0.006046 +0.028794 0.034390 0.031315 0.030187 0.017063 0.129541 0.010805 0.036576 0.028607 0.029731 0.014581 0.039510 0.015402 0.015547 0.034257 0.030173 0.018305 0.100316 0.028507 0.020734 0.022250 0.086911 0.038496 0.013560 0.010376 0.063422 0.038655 0.000988 0.020508 0.110401 0.040210 0.133891 +0.331712 +0.031161 0.033820 0.030275 0.030157 0.016816 0.041080 0.009604 0.036539 0.030523 0.030520 0.015356 0.222345 0.016203 0.016074 0.028703 0.029330 0.015034 0.124308 0.027066 0.020117 0.022543 0.063422 0.039467 0.013194 0.007676 0.086911 0.037847 0.000536 0.020561 0.086911 0.041114 0.180870 +0.471680 +0.028332 0.037094 0.030747 0.031514 0.016275 0.186001 0.010672 0.036696 0.029892 0.029902 0.016923 0.046845 0.015985 0.016119 0.031213 0.028320 0.016864 0.320709 0.027938 0.018943 0.019506 0.063422 0.041709 0.018730 0.012697 0.110401 0.040340 0.000778 0.020028 0.063422 0.040132 0.157380 +0.657719 +0.029380 0.036799 0.032721 0.030156 0.016953 0.034445 0.011079 0.036573 0.029099 0.032577 0.017672 0.054657 0.016249 0.016227 0.030833 0.036238 0.017425 0.213895 0.030651 0.020330 0.023465 0.110401 0.038144 0.017761 0.005133 0.110401 0.039680 0.001896 0.018895 0.110401 0.041022 0.133891 +0.410589 +0.028299 0.039655 0.028780 0.035949 0.015872 0.043934 0.010866 0.037013 0.029568 0.028980 0.017658 0.062038 0.015720 0.016050 0.031245 0.028361 0.015047 0.199558 0.029891 0.019934 0.020058 0.180870 0.040282 0.017325 0.006552 0.133891 0.039427 0.001525 0.019830 0.063422 0.038735 0.204360 +0.292736 +0.029680 0.039390 0.028749 0.030018 0.014651 0.191665 0.009747 0.037109 0.032172 0.032137 0.014886 0.188509 0.016077 0.015578 0.029217 0.028411 0.016746 0.077994 0.026132 0.018917 0.020546 0.086911 0.041826 0.015358 0.006922 0.063422 0.042175 0.000045 0.020373 0.133891 0.039343 0.157380 +0.509917 +0.030293 0.039392 0.029120 0.028397 0.018560 0.055733 0.011742 0.037298 0.028845 0.029711 0.018720 0.061937 0.016212 0.015803 0.033362 0.028398 0.017883 0.023363 0.027235 0.020823 0.021793 0.110401 0.038542 0.018084 0.005922 0.063422 0.040882 0.000095 0.020675 0.110401 0.041863 0.204360 +0.032092 +0.028997 0.037274 0.029901 0.029881 0.014843 0.408810 0.011206 0.036224 0.028244 0.028413 0.014505 0.111698 0.015891 0.016198 0.031235 0.030390 0.017250 0.207721 0.029655 0.019403 0.023482 0.086911 0.039980 0.016689 0.010480 0.110401 0.041761 0.002238 0.019702 0.063422 0.039217 0.157380 +0.825105 +0.031617 0.037969 0.031114 0.030826 0.014729 0.242369 0.010707 0.037563 0.029249 0.030585 0.017384 0.026689 0.015935 0.015766 0.030501 0.028955 0.015134 0.018942 0.028472 0.020781 0.021011 0.110401 0.041045 0.017738 0.006086 0.086911 0.040945 0.002181 0.019885 0.063422 0.039192 0.157380 +0.312729 +0.030752 0.034396 0.030749 0.030890 0.017239 0.035918 0.009969 0.037400 0.030086 0.029499 0.017121 0.037932 0.015764 0.015858 0.030151 0.029931 0.018434 0.021878 0.026574 0.020617 0.022481 0.110401 0.038220 0.012854 0.009549 0.063422 0.040031 0.001955 0.019207 0.063422 0.040570 0.133891 +0.023764 +0.031475 0.039187 0.029094 0.029260 0.015587 0.063193 0.011656 0.037157 0.033697 0.030335 0.015403 0.157574 0.015256 0.015984 0.029400 0.030075 0.016313 0.020374 0.025981 0.019363 0.019067 0.157380 0.039192 0.015625 0.006090 0.063422 0.039920 0.000198 0.019848 0.086911 0.041119 0.204360 +0.235346 +0.029005 0.038608 0.030055 0.032064 0.014888 0.040491 0.009666 0.036376 0.033415 0.028908 0.015773 0.353608 0.015176 0.015643 0.032086 0.028193 0.016678 0.131554 0.025845 0.020810 0.019999 0.063422 0.040425 0.016399 0.008206 0.063422 0.041567 0.001429 0.019135 0.110401 0.039320 0.133891 +0.715787 +0.032223 0.033967 0.028860 0.031297 0.015199 0.101192 0.010917 0.037430 0.029413 0.031452 0.018602 0.035427 0.015498 0.016197 0.029352 0.028314 0.018323 0.094310 0.028184 0.019863 0.020718 0.133891 0.041542 0.012032 0.005506 0.063422 0.039887 0.001085 0.018811 0.086911 0.041417 0.180870 +0.214586 +0.028690 0.036777 0.028636 0.032554 0.017220 0.084595 0.010048 0.035330 0.028756 0.029673 0.018747 0.134850 0.015513 0.016160 0.029052 0.031831 0.017026 0.094604 0.028181 0.020465 0.022506 0.063422 0.042007 0.013643 0.011989 0.110401 0.039445 0.000706 0.019114 0.157380 0.040921 0.180870 +0.327634 +0.028468 0.036593 0.030659 0.029676 0.018204 0.036988 0.010439 0.037327 0.033786 0.030009 0.016886 0.036322 0.015903 0.016320 0.028640 0.030804 0.016714 0.099051 0.029208 0.019335 0.021909 0.086911 0.039774 0.013298 0.008811 0.110401 0.040687 0.000319 0.020213 0.180870 0.039151 0.204360 +0.064528 +0.029424 0.039622 0.030372 0.029783 0.014193 0.164236 0.009645 0.036361 0.030946 0.028810 0.014530 0.020921 0.015914 0.015735 0.032991 0.032097 0.018175 0.093839 0.028225 0.019549 0.020398 0.086911 0.039436 0.015222 0.010275 0.086911 0.039787 0.000960 0.019023 0.133891 0.040001 0.157380 +0.298972 +0.032543 0.038198 0.028383 0.028719 0.018288 0.116672 0.009827 0.037327 0.030092 0.029377 0.014334 0.063278 0.016141 0.015796 0.028745 0.030388 0.016760 0.125374 0.029467 0.019132 0.019396 0.110401 0.041016 0.016433 0.012827 0.086911 0.040065 0.001161 0.020694 0.110401 0.038324 0.157380 +0.261042 +0.032648 0.037079 0.033476 0.028682 0.016527 0.075325 0.011634 0.036986 0.030036 0.028849 0.017158 0.025992 0.015362 0.016272 0.028963 0.030525 0.016622 0.027804 0.027497 0.020952 0.019709 0.063422 0.040192 0.018035 0.012780 0.063422 0.038441 0.001422 0.020551 0.086911 0.037648 0.133891 +0.006090 +0.029804 0.035989 0.028981 0.031343 0.018639 0.097383 0.009707 0.035507 0.031097 0.030001 0.017203 0.059444 0.016200 0.015851 0.029375 0.031371 0.015039 0.021859 0.029496 0.020850 0.021677 0.133891 0.039863 0.014205 0.012524 0.086911 0.040582 0.001492 0.019430 0.110401 0.037922 0.157380 +0.128909 +0.032240 0.038593 0.030332 0.028616 0.015057 0.025511 0.010167 0.036263 0.028878 0.028351 0.015654 0.167040 0.016224 0.016314 0.028266 0.030530 0.015123 0.058373 0.027656 0.019142 0.020828 0.086911 0.038224 0.016767 0.006113 0.063422 0.039289 0.000560 0.018930 0.086911 0.041117 0.133891 +0.271495 +0.028548 0.037436 0.037081 0.033151 0.014933 0.021818 0.009833 0.036076 0.028476 0.030178 0.015259 0.027578 0.015065 0.016426 0.029271 0.031595 0.014182 0.032670 0.025897 0.018985 0.019193 0.063422 0.040236 0.012536 0.013088 0.086911 0.037778 0.001073 0.020042 0.133891 0.041605 0.157380 +0.002236 +0.029021 0.035004 0.028210 0.028659 0.017352 0.074487 0.010478 0.037370 0.028246 0.031071 0.017216 0.105860 0.015283 0.015736 0.033963 0.028672 0.017744 0.115977 0.028722 0.020893 0.018813 0.063422 0.042061 0.014177 0.007524 0.157380 0.040576 0.001736 0.020687 0.157380 0.037723 0.204360 +0.248602 +0.030198 0.039789 0.029264 0.033409 0.016542 0.075103 0.011166 0.035949 0.034667 0.028702 0.015734 0.083271 0.016223 0.015655 0.028543 0.030540 0.018060 0.089365 0.028497 0.019323 0.022146 0.110401 0.040920 0.016898 0.008108 0.157380 0.039437 0.000045 0.020190 0.180870 0.040686 0.204360 +0.230072 +0.028702 0.039130 0.031409 0.028970 0.016026 0.079398 0.011563 0.036443 0.028993 0.029576 0.017931 0.336442 0.015662 0.016204 0.038898 0.028349 0.014991 0.079957 0.028824 0.020619 0.022030 0.133891 0.040181 0.013365 0.013907 0.157380 0.041820 0.002184 0.019569 0.110401 0.039180 0.180870 +0.665016 +0.028227 0.038538 0.029671 0.028290 0.014640 0.049468 0.010160 0.036095 0.031126 0.030036 0.015232 0.066080 0.015340 0.015683 0.029497 0.028634 0.014462 0.047858 0.026112 0.018982 0.020287 0.110401 0.041092 0.015762 0.009608 0.157380 0.038139 0.000041 0.019071 0.110401 0.037687 0.204360 +0.025179 +0.030033 0.033906 0.029639 0.030472 0.015342 0.100000 0.011007 0.036889 0.028944 0.034635 0.016403 0.113678 0.015724 0.015743 0.028283 0.029636 0.014577 0.125089 0.027325 0.020933 0.023135 0.157380 0.040218 0.015932 0.008601 0.157380 0.038009 0.001615 0.019663 0.157380 0.039567 0.180870 +0.417295 +0.029383 0.037288 0.030910 0.028706 0.015817 0.063487 0.009850 0.035900 0.033898 0.036521 0.014530 0.039858 0.016376 0.016232 0.028834 0.028647 0.016380 0.068853 0.027134 0.019219 0.021210 0.133891 0.039849 0.017825 0.013866 0.180870 0.041597 0.001335 0.020786 0.110401 0.040390 0.204360 +0.108612 +0.029181 0.034779 0.032706 0.033690 0.017163 0.027947 0.010912 0.036209 0.029270 0.030132 0.016688 0.057184 0.015774 0.016362 0.035672 0.028293 0.015344 0.034178 0.026965 0.020419 0.023437 0.110401 0.040544 0.015941 0.009775 0.110401 0.038363 0.000316 0.019326 0.086911 0.040286 0.157380 +0.012613 +0.030318 0.039264 0.029549 0.030987 0.015900 0.054147 0.010013 0.037579 0.029830 0.029891 0.014304 0.192467 0.015680 0.015565 0.033172 0.028708 0.017481 0.020744 0.030239 0.018933 0.020297 0.063422 0.041202 0.017827 0.007756 0.086911 0.038835 0.000410 0.018968 0.086911 0.039775 0.204360 +0.200455 +0.030871 0.038559 0.028873 0.028362 0.014726 0.067035 0.010925 0.037507 0.033337 0.031810 0.017261 0.049880 0.015057 0.015733 0.028340 0.031464 0.016045 0.093053 0.026387 0.020960 0.020706 0.110401 0.039096 0.016414 0.008587 0.086911 0.039298 0.002329 0.020520 0.110401 0.039355 0.133891 +0.277052 +0.031045 0.033499 0.031602 0.028631 0.014305 0.028780 0.009636 0.036236 0.030346 0.031359 0.018265 0.028591 0.015869 0.015758 0.028533 0.029878 0.017467 0.046853 0.029707 0.020610 0.019603 0.063422 0.040139 0.014072 0.009785 0.086911 0.039701 0.000466 0.019804 0.157380 0.038635 0.204360 +0 +0.030120 0.035390 0.030419 0.028285 0.014362 0.061167 0.010713 0.037434 0.028936 0.028746 0.016997 0.028195 0.015647 0.015639 0.033321 0.037596 0.018131 0.112009 0.028032 0.020913 0.019099 0.110401 0.038376 0.015612 0.008480 0.086911 0.041771 0.001930 0.018835 0.063422 0.041570 0.133891 +0.179601 +0.031585 0.033765 0.028793 0.031336 0.017789 0.124925 0.010865 0.035417 0.029190 0.029299 0.018050 0.034354 0.016384 0.015573 0.032750 0.036141 0.015918 0.122396 0.028358 0.020561 0.022496 0.063422 0.039358 0.014135 0.010753 0.086911 0.038559 0.001060 0.019745 0.086911 0.041331 0.133891 +0.280406 +0.031271 0.036593 0.029062 0.028995 0.014853 0.045260 0.010168 0.035583 0.029048 0.030622 0.014439 0.116492 0.015175 0.015512 0.029821 0.030524 0.018617 0.230637 0.028400 0.020202 0.021418 0.110401 0.039224 0.013368 0.013236 0.110401 0.038386 0.002224 0.020045 0.086911 0.039740 0.157380 +0.484719 +0.032029 0.037216 0.029810 0.028624 0.017295 0.024675 0.011630 0.035592 0.032030 0.028545 0.017895 0.046890 0.015948 0.016034 0.028747 0.030143 0.014619 0.060746 0.028691 0.019196 0.021057 0.086911 0.037779 0.013264 0.004853 0.110401 0.039505 0.001631 0.020690 0.133891 0.040407 0.157380 +0.058064 +0.032456 0.037495 0.028209 0.029556 0.016299 0.177694 0.009669 0.035835 0.036441 0.032988 0.016462 0.029949 0.016158 0.016046 0.029590 0.030362 0.015746 0.018400 0.027492 0.020925 0.023476 0.133891 0.037591 0.012598 0.011087 0.110401 0.041282 0.000616 0.020004 0.157380 0.042111 0.204360 +0.259275 +0.032824 0.038126 0.032011 0.028571 0.017607 0.033161 0.009402 0.035456 0.031712 0.028911 0.015266 0.142507 0.015888 0.016396 0.028476 0.030787 0.015359 0.042896 0.028679 0.018923 0.019149 0.133891 0.037761 0.016313 0.010655 0.063422 0.041352 0.001273 0.019897 0.086911 0.038793 0.157380 +0.137858 +0.031221 0.033233 0.029363 0.032701 0.017426 0.180557 0.011289 0.035290 0.028683 0.028223 0.017540 0.118001 0.015994 0.015654 0.029869 0.028628 0.016989 0.031203 0.027421 0.021062 0.019188 0.110401 0.040848 0.017291 0.013943 0.110401 0.038336 0.000938 0.019859 0.110401 0.041107 0.133891 +0.395921 +0.030386 0.034667 0.029557 0.034131 0.014156 0.108311 0.010452 0.036493 0.028352 0.029188 0.014426 0.043491 0.015653 0.015585 0.033175 0.029075 0.016362 0.035124 0.029384 0.019782 0.021423 0.086911 0.040242 0.018219 0.011744 0.110401 0.039814 0.000948 0.020829 0.086911 0.037949 0.133891 +0.111177 +0.032314 0.037091 0.033885 0.029178 0.016567 0.035624 0.010197 0.037185 0.028987 0.033965 0.015516 0.172501 0.015353 0.016430 0.029156 0.028644 0.016891 0.057032 0.029344 0.018959 0.019259 0.063422 0.039293 0.017956 0.012527 0.063422 0.039886 0.001261 0.020625 0.110401 0.041117 0.133891 +0.257380 +0.031515 0.037374 0.030575 0.034672 0.016053 0.182927 0.011218 0.035716 0.031311 0.028507 0.014603 0.039285 0.015325 0.016125 0.031968 0.029553 0.016580 0.061801 0.028771 0.019612 0.023115 0.133891 0.039698 0.014527 0.010860 0.180870 0.040560 0.000486 0.019710 0.133891 0.038558 0.204360 +0.336521 +0.031739 0.034331 0.032298 0.029623 0.014758 0.030964 0.009568 0.037015 0.028784 0.032935 0.016167 0.154995 0.015434 0.016291 0.029401 0.031675 0.016305 0.031629 0.028634 0.019747 0.022312 0.157380 0.041529 0.018780 0.005871 0.157380 0.037800 0.001984 0.020072 0.133891 0.041118 0.204360 +0.115858 +0.032693 0.038968 0.036329 0.028472 0.014386 0.075580 0.009678 0.035956 0.031717 0.036252 0.017518 0.032073 0.015946 0.015706 0.028313 0.030557 0.014890 0.178117 0.028081 0.020564 0.019967 0.110401 0.040544 0.016197 0.013353 0.133891 0.038319 0.001605 0.020146 0.133891 0.039640 0.157380 +0.364009 +0.030436 0.039451 0.030421 0.028921 0.018642 0.073280 0.011681 0.036687 0.033893 0.032022 0.016911 0.065684 0.016115 0.016349 0.029530 0.031834 0.017026 0.044452 0.026227 0.020329 0.019901 0.063422 0.038501 0.013434 0.007559 0.110401 0.041684 0.001149 0.020976 0.110401 0.038466 0.157380 +0.188265 +0.028435 0.037315 0.029480 0.028963 0.014123 0.122048 0.010223 0.036223 0.031567 0.029348 0.015726 0.069320 0.015552 0.015524 0.028498 0.028299 0.017209 0.046404 0.028138 0.020514 0.019995 0.063422 0.039483 0.017912 0.010751 0.110401 0.040035 0.000454 0.020646 0.086911 0.041303 0.157380 +0.136804 +0.030415 0.035864 0.030525 0.028233 0.015300 0.222062 0.010329 0.036401 0.031671 0.031357 0.018304 0.060683 0.015774 0.015902 0.033209 0.028502 0.015332 0.019664 0.029837 0.018846 0.022668 0.063422 0.037905 0.017246 0.013209 0.133891 0.037659 0.000907 0.020759 0.133891 0.039749 0.180870 +0.268914 +0.031856 0.035338 0.028453 0.030426 0.015884 0.142242 0.011725 0.037207 0.029282 0.029481 0.016309 0.028347 0.015338 0.015511 0.029524 0.032312 0.017813 0.044372 0.030020 0.020701 0.022720 0.086911 0.042003 0.015479 0.013425 0.180870 0.041999 0.001898 0.019870 0.157380 0.041407 0.204360 +0.162318 +0.028463 0.038458 0.030696 0.030320 0.015148 0.035447 0.009954 0.037130 0.028799 0.036161 0.015740 0.075404 0.015434 0.015507 0.035712 0.028449 0.018048 0.024729 0.027732 0.019838 0.023221 0.110401 0.039160 0.014934 0.005427 0.157380 0.038639 0.001252 0.019620 0.086911 0.039757 0.180870 +0.024212 +0.031520 0.036031 0.028740 0.028317 0.017728 0.082287 0.011229 0.036479 0.037028 0.032553 0.016936 0.098828 0.015043 0.016247 0.034120 0.028709 0.016296 0.043954 0.027212 0.020119 0.019330 0.157380 0.039958 0.017097 0.011235 0.110401 0.041509 0.001199 0.020650 0.063422 0.039195 0.180870 +0.111260 +0.031493 0.039366 0.028734 0.029288 0.016240 0.037419 0.009653 0.036717 0.031072 0.029299 0.016572 0.032876 0.015938 0.016379 0.029032 0.031560 0.015048 0.056360 0.028673 0.020907 0.023423 0.110401 0.037815 0.014831 0.008472 0.110401 0.041011 0.000024 0.019914 0.086911 0.039262 0.180870 +0.005505 +0.028294 0.037960 0.028450 0.035045 0.018264 0.053426 0.010431 0.037380 0.032800 0.035842 0.016605 0.077020 0.015916 0.015697 0.029806 0.028526 0.015852 0.043793 0.028773 0.020845 0.021019 0.110401 0.041752 0.011865 0.007443 0.086911 0.040502 0.002298 0.021041 0.086911 0.040065 0.204360 +0.026158 +0.030020 0.038524 0.031574 0.028831 0.018082 0.187579 0.011322 0.037324 0.028592 0.032832 0.015984 0.110502 0.015640 0.015922 0.029364 0.028700 0.018291 0.030748 0.027885 0.020158 0.021370 0.110401 0.039269 0.016000 0.013564 0.086911 0.041727 0.001638 0.019907 0.110401 0.042257 0.133891 +0.365220 +0.031108 0.034591 0.029888 0.029459 0.016605 0.114604 0.009962 0.036933 0.028678 0.032680 0.015354 0.068722 0.015109 0.016075 0.030177 0.029416 0.015189 0.107852 0.028330 0.018923 0.020824 0.086911 0.040594 0.017446 0.012199 0.180870 0.037711 0.002127 0.018816 0.133891 0.037720 0.204360 +0.306370 +0.029849 0.036825 0.030170 0.028494 0.016570 0.044900 0.010575 0.035347 0.034323 0.035784 0.017161 0.051425 0.016425 0.015656 0.031898 0.028689 0.018075 0.055717 0.028510 0.019969 0.022810 0.133891 0.038631 0.013359 0.008428 0.133891 0.037720 0.000643 0.020290 0.110401 0.040345 0.204360 +0.023215 +0.028942 0.037734 0.030911 0.031887 0.018171 0.048821 0.011316 0.035596 0.029856 0.029285 0.018140 0.067846 0.015919 0.016108 0.028533 0.032405 0.017324 0.295441 0.028187 0.019219 0.022340 0.110401 0.042110 0.017197 0.005445 0.063422 0.039492 0.001745 0.020250 0.063422 0.039536 0.133891 +0.507290 +0.029546 0.038283 0.033784 0.030075 0.015962 0.118296 0.010605 0.037427 0.035770 0.037445 0.016806 0.046169 0.016100 0.016181 0.030040 0.037418 0.017793 0.150975 0.025967 0.019269 0.021368 0.110401 0.037703 0.017632 0.010732 0.110401 0.041132 0.001242 0.019767 0.157380 0.042090 0.180870 +0.365306 +0.028562 0.035113 0.029016 0.031297 0.017290 0.021896 0.010497 0.037409 0.032596 0.028632 0.014482 0.051562 0.015585 0.015952 0.028962 0.028286 0.016684 0.217353 0.027797 0.019372 0.023341 0.063422 0.039679 0.014712 0.006987 0.133891 0.037974 0.000848 0.019344 0.063422 0.037875 0.204360 +0.278050 +0.031381 0.035489 0.037345 0.029375 0.014861 0.076925 0.010384 0.037273 0.028946 0.028243 0.014733 0.044759 0.015443 0.015702 0.029487 0.028204 0.016578 0.032457 0.027907 0.019346 0.022784 0.133891 0.040384 0.016699 0.008162 0.063422 0.040358 0.000175 0.019362 0.133891 0.038817 0.157380 +0.101730 +0.032816 0.032936 0.028810 0.030578 0.017781 0.023517 0.009471 0.037326 0.032411 0.028474 0.017571 0.081256 0.015667 0.016112 0.028277 0.028221 0.015332 0.076302 0.028172 0.020040 0.019307 0.133891 0.041710 0.013689 0.005988 0.133891 0.039464 0.001254 0.020471 0.133891 0.041937 0.157380 +0.174820 +0.031740 0.033614 0.029687 0.028637 0.015437 0.029600 0.010829 0.037472 0.038243 0.029983 0.014474 0.024366 0.015448 0.015720 0.030104 0.028494 0.014571 0.027054 0.026715 0.019810 0.022779 0.133891 0.039535 0.015176 0.008422 0.063422 0.037685 0.001369 0.019115 0.086911 0.040869 0.157380 +0.002620 +0.032410 0.037184 0.028629 0.034595 0.018659 0.141681 0.010258 0.037338 0.034916 0.028840 0.014471 0.022682 0.015777 0.016115 0.031446 0.036553 0.014434 0.059783 0.027622 0.020341 0.021901 0.063422 0.037719 0.014863 0.006499 0.063422 0.041042 0.000119 0.019054 0.086911 0.037735 0.133891 +0.365775 +0.028756 0.033138 0.029795 0.029419 0.017550 0.115683 0.009492 0.037509 0.030800 0.029669 0.015395 0.072917 0.015841 0.015737 0.030144 0.030203 0.015976 0.040948 0.027988 0.021123 0.022950 0.086911 0.037964 0.013502 0.009595 0.086911 0.040460 0.001139 0.021094 0.110401 0.037966 0.133891 +0.258710 +0.030970 0.037722 0.028977 0.032117 0.017889 0.051579 0.010703 0.036457 0.028557 0.034666 0.016111 0.041076 0.016397 0.015650 0.028650 0.031445 0.014130 0.114891 0.028423 0.018939 0.022807 0.086911 0.041531 0.017978 0.012835 0.063422 0.037672 0.002078 0.020925 0.086911 0.039873 0.133891 +0.071215 +0.029610 0.037484 0.028780 0.030031 0.014550 0.091924 0.009615 0.036207 0.028556 0.030132 0.015862 0.019596 0.015667 0.015832 0.030981 0.034784 0.015964 0.041791 0.028048 0.019578 0.022899 0.110401 0.037972 0.013289 0.007896 0.063422 0.039873 0.000187 0.021002 0.086911 0.041833 0.204360 +0.072725 +0.031243 0.038377 0.029962 0.028485 0.014680 0.046006 0.010139 0.037420 0.030983 0.030908 0.016727 0.071124 0.016051 0.015536 0.028834 0.028668 0.016744 0.190153 0.029647 0.020295 0.021770 0.086911 0.039813 0.015121 0.009342 0.110401 0.040749 0.000698 0.019637 0.063422 0.041481 0.157380 +0.238955 +0.030458 0.037022 0.031305 0.033309 0.016078 0.061593 0.010393 0.036391 0.031127 0.035658 0.016978 0.068145 0.016228 0.016176 0.029136 0.031887 0.018776 0.025106 0.028154 0.018883 0.020730 0.086911 0.041622 0.017429 0.009060 0.110401 0.038781 0.000343 0.019686 0.133891 0.040465 0.157380 +0.035816 +0.032356 0.034698 0.030611 0.031809 0.016418 0.034225 0.010667 0.036400 0.035454 0.030126 0.014890 0.019795 0.015752 0.016006 0.028377 0.034757 0.015304 0.071482 0.028423 0.018848 0.023460 0.063422 0.041050 0.011862 0.004698 0.086911 0.041932 0.000527 0.021054 0.063422 0.041344 0.157380 +0.008558 +0.029366 0.034474 0.032680 0.028792 0.016799 0.056533 0.010002 0.036005 0.029063 0.030705 0.018039 0.188723 0.015947 0.015543 0.030671 0.032055 0.016041 0.023831 0.027496 0.020593 0.019387 0.063422 0.038966 0.012497 0.004780 0.110401 0.038495 0.000055 0.019806 0.086911 0.038817 0.133891 +0.307274 +0.030015 0.036684 0.029494 0.030727 0.017977 0.039125 0.010193 0.037049 0.028710 0.029717 0.014471 0.021464 0.016126 0.016374 0.030231 0.030363 0.017112 0.102134 0.028067 0.020446 0.020838 0.157380 0.041992 0.016087 0.009847 0.086911 0.042122 0.000398 0.019876 0.180870 0.040276 0.204360 +0.050238 +0.030416 0.034309 0.030263 0.029708 0.014927 0.057074 0.009733 0.035540 0.029151 0.029680 0.016847 0.278200 0.015605 0.016417 0.028294 0.028603 0.014580 0.024320 0.029083 0.019715 0.022656 0.157380 0.041093 0.017245 0.009543 0.086911 0.041635 0.001863 0.020106 0.133891 0.037927 0.180870 +0.402121 +0.030582 0.039928 0.035362 0.032253 0.015595 0.113993 0.010022 0.037097 0.029926 0.029394 0.017450 0.110015 0.015978 0.016129 0.029017 0.031457 0.015145 0.084153 0.028525 0.019582 0.019663 0.086911 0.041319 0.017869 0.009117 0.063422 0.041527 0.002105 0.020335 0.180870 0.037881 0.204360 +0.219909 +0.032809 0.033733 0.029316 0.029936 0.016218 0.152292 0.010097 0.035586 0.029368 0.029693 0.015535 0.200977 0.016369 0.015970 0.029444 0.028709 0.015929 0.024471 0.028955 0.019739 0.019155 0.086911 0.042042 0.013646 0.006791 0.133891 0.038872 0.000696 0.020289 0.063422 0.038627 0.204360 +0.389494 +0.032680 0.038100 0.032009 0.028833 0.014858 0.039395 0.010836 0.036854 0.030991 0.028714 0.017077 0.021185 0.015879 0.015825 0.029231 0.031687 0.014160 0.084316 0.028759 0.020978 0.020285 0.063422 0.040465 0.016185 0.010426 0.063422 0.038309 0.001648 0.020047 0.157380 0.038298 0.180870 +0.024020 +0.031952 0.035514 0.033906 0.028589 0.016009 0.028004 0.010639 0.037262 0.031693 0.028363 0.018526 0.041088 0.015752 0.015504 0.030429 0.032040 0.015891 0.036291 0.028935 0.019574 0.021681 0.110401 0.037617 0.015039 0.011950 0.063422 0.039462 0.002230 0.020816 0.110401 0.041879 0.157380 +0.008807 +0.032767 0.036477 0.029008 0.028644 0.015644 0.124951 0.011481 0.037028 0.031764 0.031219 0.014718 0.167346 0.015497 0.016188 0.034082 0.030729 0.017678 0.210847 0.028574 0.020397 0.018885 0.063422 0.042031 0.016545 0.009640 0.133891 0.040479 0.000963 0.019854 0.063422 0.041879 0.157380 +0.650034 +0.030109 0.034245 0.032225 0.030157 0.018566 0.119678 0.009887 0.035629 0.028733 0.028601 0.014286 0.080373 0.015224 0.016192 0.033173 0.029144 0.018046 0.022721 0.029568 0.020695 0.019577 0.086911 0.038097 0.012330 0.009591 0.110401 0.038770 0.002010 0.020017 0.063422 0.042272 0.133891 +0.285192 +0.029151 0.035724 0.029923 0.028604 0.014252 0.055759 0.011515 0.037563 0.031063 0.031209 0.017527 0.021431 0.015271 0.015966 0.028564 0.028718 0.014384 0.181399 0.030172 0.020989 0.020606 0.086911 0.038141 0.016995 0.011768 0.157380 0.041465 0.001713 0.020014 0.180870 0.038492 0.204360 +0.232797 +0.031375 0.038558 0.029165 0.032996 0.014260 0.088663 0.011108 0.036752 0.029385 0.034346 0.016222 0.027492 0.015641 0.015744 0.029198 0.031456 0.014319 0.080468 0.027575 0.020269 0.019240 0.086911 0.038514 0.011891 0.013114 0.063422 0.038671 0.001653 0.020550 0.133891 0.038816 0.157380 +0.123971 +0.032741 0.034929 0.033516 0.032684 0.016247 0.037046 0.011679 0.037023 0.028722 0.031003 0.015328 0.105653 0.015677 0.015718 0.032803 0.029602 0.018206 0.106948 0.028700 0.019973 0.020444 0.133891 0.040472 0.015638 0.011292 0.157380 0.040039 0.001480 0.020791 0.157380 0.037812 0.204360 +0.157462 +0.028287 0.039369 0.035078 0.031453 0.015383 0.112981 0.010511 0.035368 0.032013 0.029665 0.015167 0.039115 0.015288 0.015756 0.041222 0.028991 0.015342 0.016921 0.028602 0.019115 0.021408 0.110401 0.038279 0.018390 0.010898 0.157380 0.040446 0.001812 0.019843 0.157380 0.040044 0.204360 +0.097814 +0.032305 0.035990 0.029240 0.030289 0.015184 0.198342 0.009843 0.037213 0.029458 0.028623 0.018717 0.144133 0.016073 0.016312 0.032728 0.028566 0.018759 0.106920 0.030092 0.019384 0.023447 0.157380 0.039854 0.012306 0.004899 0.180870 0.041426 0.000503 0.018935 0.063422 0.038521 0.204360 +0.541254 +0.031011 0.036206 0.030037 0.028442 0.015173 0.017033 0.010642 0.036394 0.028696 0.028312 0.018261 0.260015 0.016311 0.015538 0.032214 0.028803 0.017396 0.106231 0.026797 0.018940 0.019202 0.063422 0.041704 0.015156 0.005400 0.157380 0.039513 0.000559 0.020346 0.157380 0.039283 0.180870 +0.480169 +0.029418 0.036001 0.029502 0.031779 0.015595 0.148475 0.009581 0.037215 0.029140 0.028483 0.018333 0.183997 0.016274 0.015675 0.028751 0.028578 0.014141 0.087883 0.028706 0.020836 0.019859 0.063422 0.041452 0.014476 0.010404 0.133891 0.040965 0.000499 0.020006 0.086911 0.040615 0.204360 +0.516997 +0.029239 0.036912 0.033895 0.029126 0.015701 0.062022 0.010038 0.035982 0.032730 0.031379 0.018174 0.250003 0.016040 0.016147 0.028336 0.031178 0.017327 0.159008 0.027699 0.020315 0.023216 0.086911 0.041797 0.014866 0.008728 0.133891 0.041195 0.001680 0.019668 0.063422 0.038173 0.180870 +0.599499 +0.028347 0.039623 0.030398 0.028733 0.016248 0.042243 0.010209 0.035875 0.028559 0.034583 0.018483 0.027616 0.015412 0.015973 0.033243 0.033385 0.018282 0.069002 0.028401 0.020101 0.021227 0.180870 0.037774 0.013131 0.013355 0.133891 0.038293 0.000995 0.019497 0.110401 0.040166 0.204360 +0.046924 +0.029031 0.039781 0.029531 0.029053 0.016834 0.128529 0.009676 0.036865 0.028588 0.030887 0.018181 0.017860 0.016090 0.015959 0.036173 0.032576 0.018620 0.160965 0.027674 0.020396 0.022304 0.110401 0.040515 0.016129 0.006400 0.133891 0.039417 0.000991 0.021035 0.157380 0.039043 0.204360 +0.327768 +0.031916 0.035566 0.028800 0.028828 0.017294 0.083520 0.011475 0.036086 0.033751 0.031269 0.016847 0.253539 0.016383 0.016009 0.028559 0.033897 0.016172 0.260614 0.029010 0.020491 0.019936 0.086911 0.042166 0.011913 0.012547 0.086911 0.038221 0.001174 0.019698 0.086911 0.038943 0.133891 +0.800692 +0.030199 0.034104 0.028636 0.031856 0.017028 0.053043 0.011619 0.035772 0.033626 0.031016 0.015955 0.023739 0.015102 0.015596 0.028797 0.030266 0.017131 0.156293 0.026773 0.019577 0.021593 0.110401 0.040424 0.016297 0.011635 0.133891 0.042007 0.001273 0.019539 0.086911 0.041298 0.157380 +0.182036 +0.029180 0.037298 0.030408 0.030104 0.015800 0.023434 0.011370 0.035747 0.034018 0.033657 0.017626 0.024462 0.016317 0.015569 0.030663 0.028617 0.015918 0.025068 0.029531 0.019014 0.019975 0.086911 0.040438 0.014132 0.013133 0.110401 0.037667 0.001982 0.019135 0.110401 0.040075 0.157380 +0 +0.031029 0.038592 0.036109 0.029196 0.014209 0.046974 0.010927 0.036901 0.031843 0.028237 0.017723 0.071497 0.016024 0.016034 0.033990 0.028636 0.017691 0.051314 0.028060 0.020995 0.021072 0.063422 0.039916 0.015022 0.008645 0.110401 0.039124 0.000990 0.019403 0.063422 0.042260 0.133891 +0.125482 +0.029642 0.037644 0.031931 0.029174 0.016289 0.106273 0.011253 0.035731 0.028264 0.028886 0.016657 0.029834 0.015612 0.015719 0.030828 0.029297 0.018116 0.119505 0.029003 0.019095 0.020660 0.063422 0.039550 0.015796 0.006872 0.157380 0.040406 0.001607 0.019481 0.180870 0.042173 0.204360 +0.206451 +0.030178 0.036828 0.028845 0.029811 0.014579 0.234461 0.010944 0.036930 0.030690 0.028200 0.015207 0.146015 0.015696 0.016169 0.030087 0.036133 0.016507 0.132964 0.028752 0.020916 0.020393 0.086911 0.038293 0.016407 0.010067 0.110401 0.041464 0.001957 0.019675 0.133891 0.041957 0.180870 +0.532952 +0.032162 0.033434 0.032108 0.029713 0.014148 0.071257 0.010581 0.035500 0.028974 0.028497 0.015941 0.022874 0.015374 0.016232 0.031936 0.031075 0.016021 0.044422 0.028082 0.020440 0.021087 0.086911 0.037645 0.015937 0.014053 0.110401 0.040700 0.000666 0.020247 0.133891 0.037651 0.180870 +0.007952 +0.031945 0.036728 0.029557 0.029971 0.015157 0.026724 0.011452 0.036042 0.032951 0.033893 0.014596 0.020393 0.015925 0.016073 0.028818 0.029379 0.016293 0.082955 0.028265 0.020487 0.019665 0.133891 0.042134 0.012297 0.006407 0.133891 0.041287 0.000876 0.019625 0.110401 0.037773 0.180870 +0.023489 +0.028909 0.034297 0.032201 0.028391 0.017526 0.151488 0.010801 0.037042 0.031121 0.029114 0.017950 0.094891 0.016133 0.016415 0.028625 0.028989 0.015017 0.154314 0.028831 0.019086 0.022623 0.063422 0.040396 0.014265 0.006845 0.133891 0.041498 0.001522 0.019067 0.133891 0.038871 0.157380 +0.510379 +0.028568 0.035997 0.030160 0.028997 0.014559 0.083402 0.009722 0.037107 0.029535 0.028676 0.015209 0.100201 0.015914 0.015809 0.031430 0.030638 0.017326 0.018336 0.027567 0.020871 0.022034 0.086911 0.039640 0.016551 0.007990 0.110401 0.038747 0.001932 0.020652 0.086911 0.041797 0.157380 +0.116155 +0.028630 0.039826 0.029253 0.029841 0.015367 0.040034 0.011285 0.036678 0.029109 0.028796 0.016003 0.061674 0.015168 0.016199 0.030927 0.030254 0.018135 0.102165 0.030401 0.020098 0.020073 0.063422 0.041853 0.016437 0.005939 0.063422 0.040009 0.000016 0.020220 0.063422 0.039470 0.133891 +0.126484 +0.030490 0.039618 0.028394 0.034881 0.017724 0.055296 0.009489 0.037316 0.028588 0.032426 0.014782 0.230886 0.015775 0.015986 0.028692 0.031715 0.017686 0.075446 0.028663 0.020991 0.021396 0.110401 0.039190 0.018299 0.005341 0.063422 0.041878 0.001163 0.019743 0.086911 0.039423 0.133891 +0.448918 +0.030644 0.033636 0.030392 0.030550 0.016928 0.018353 0.010091 0.035546 0.029472 0.030619 0.015388 0.026436 0.015352 0.016434 0.028299 0.028821 0.016001 0.257309 0.026998 0.019958 0.020686 0.063422 0.040987 0.015521 0.008072 0.086911 0.040799 0.002199 0.020575 0.063422 0.041955 0.133891 +0.230551 +0.028518 0.034516 0.028444 0.030417 0.014173 0.059640 0.011629 0.037444 0.028719 0.032528 0.016351 0.148688 0.015055 0.015883 0.029179 0.030573 0.016837 0.068903 0.029579 0.019786 0.019171 0.157380 0.038582 0.016561 0.011633 0.157380 0.038991 0.002246 0.018800 0.133891 0.042281 0.180870 +0.265041 +0.031471 0.037224 0.029219 0.032413 0.014632 0.086196 0.010368 0.036292 0.028906 0.029691 0.016919 0.098056 0.016329 0.016029 0.030447 0.028551 0.015224 0.072534 0.027899 0.020110 0.019801 0.133891 0.038400 0.014887 0.010539 0.110401 0.041396 0.000423 0.019734 0.063422 0.038330 0.157380 +0.285375 +0.028810 0.036492 0.029215 0.029133 0.015268 0.082612 0.010166 0.035803 0.029583 0.029127 0.014169 0.163546 0.015367 0.016228 0.034953 0.028874 0.014263 0.136860 0.027566 0.020871 0.022910 0.063422 0.041531 0.013558 0.011990 0.110401 0.039955 0.001452 0.019293 0.110401 0.041908 0.157380 +0.394947 +0.029537 0.036171 0.031283 0.028672 0.018100 0.026284 0.010771 0.035290 0.034291 0.028742 0.017543 0.064093 0.015752 0.015955 0.030351 0.031956 0.016763 0.060878 0.028815 0.019252 0.023198 0.157380 0.037871 0.014740 0.010233 0.063422 0.039133 0.000877 0.019179 0.157380 0.040286 0.204360 +0.033763 +0.028964 0.033554 0.034979 0.028571 0.016254 0.079662 0.011339 0.035689 0.028886 0.029378 0.018013 0.115541 0.015705 0.016354 0.030975 0.030316 0.018529 0.032350 0.028555 0.020765 0.021975 0.157380 0.038025 0.012583 0.009516 0.180870 0.041310 0.000729 0.019998 0.086911 0.040524 0.204360 +0.237421 +0.029240 0.038139 0.037258 0.033296 0.018021 0.017564 0.010974 0.036528 0.029064 0.028529 0.014548 0.192668 0.016144 0.015924 0.041594 0.033553 0.016909 0.267283 0.027267 0.020411 0.020502 0.086911 0.040216 0.018756 0.011689 0.133891 0.039219 0.001613 0.020441 0.063422 0.038847 0.157380 +0.666961 +0.030222 0.039060 0.029358 0.029923 0.015119 0.076741 0.011100 0.035875 0.029725 0.028767 0.015912 0.398560 0.015659 0.016417 0.033778 0.028717 0.017691 0.036313 0.029407 0.019459 0.021596 0.110401 0.039896 0.014765 0.014004 0.086911 0.040767 0.000688 0.018943 0.086911 0.040204 0.133891 +0.669188 +0.031681 0.039085 0.029305 0.031526 0.016550 0.102745 0.010442 0.035769 0.032724 0.028704 0.016706 0.035070 0.015270 0.015936 0.043688 0.038237 0.015700 0.074327 0.030477 0.020234 0.021391 0.063422 0.039636 0.013843 0.008159 0.110401 0.038472 0.000758 0.020950 0.133891 0.041429 0.180870 +0.204915 +0.029935 0.034912 0.030676 0.029827 0.016504 0.049051 0.011034 0.035645 0.037433 0.034134 0.014624 0.129376 0.016012 0.016410 0.028556 0.028434 0.018281 0.179417 0.031310 0.020587 0.023275 0.063422 0.040291 0.015449 0.006858 0.063422 0.039501 0.000175 0.020689 0.110401 0.041966 0.133891 +0.444038 +0.029966 0.035030 0.029019 0.028530 0.014320 0.135638 0.010102 0.036934 0.028539 0.033261 0.015968 0.062203 0.015103 0.016323 0.028556 0.031816 0.014777 0.082414 0.028508 0.019697 0.022009 0.110401 0.038033 0.014032 0.006150 0.110401 0.038019 0.001225 0.021073 0.063422 0.037934 0.133891 +0.320552 +0.030154 0.034174 0.032155 0.028583 0.014781 0.026392 0.010263 0.035679 0.028365 0.029041 0.015682 0.150242 0.015677 0.015517 0.031477 0.028679 0.018335 0.053770 0.027731 0.020472 0.019871 0.063422 0.039677 0.013783 0.006007 0.086911 0.041715 0.002322 0.019924 0.086911 0.041155 0.133891 +0.192457 +0.031663 0.039834 0.035015 0.031907 0.015951 0.055893 0.011181 0.035817 0.035020 0.030634 0.014518 0.036463 0.015035 0.015988 0.031169 0.035577 0.015306 0.038133 0.028312 0.020385 0.023277 0.133891 0.038540 0.012199 0.008494 0.157380 0.041903 0.002256 0.020960 0.157380 0.037601 0.204360 +0.014181 +0.031015 0.038095 0.028831 0.029402 0.016284 0.032255 0.009727 0.035994 0.028775 0.028487 0.017455 0.136236 0.015320 0.015807 0.028857 0.028809 0.018297 0.062579 0.026953 0.019736 0.021499 0.063422 0.041180 0.012063 0.011936 0.110401 0.039594 0.001826 0.019688 0.063422 0.037781 0.133891 +0.204988 +0.028442 0.039789 0.028440 0.029415 0.017883 0.065633 0.009659 0.037487 0.033675 0.029813 0.016152 0.052065 0.016018 0.015997 0.032268 0.028488 0.017592 0.031405 0.029619 0.019450 0.019380 0.110401 0.039199 0.012262 0.011852 0.063422 0.038827 0.001276 0.020037 0.110401 0.038099 0.204360 +0 +0.031157 0.034507 0.029368 0.031465 0.017684 0.026766 0.010121 0.037446 0.032187 0.029140 0.015296 0.101972 0.015788 0.016422 0.030551 0.029180 0.015727 0.101741 0.029641 0.018976 0.023003 0.063422 0.038616 0.012347 0.012648 0.110401 0.039033 0.001144 0.020364 0.086911 0.039332 0.157380 +0.151505 +0.031880 0.039822 0.029312 0.028928 0.017029 0.143360 0.011100 0.036303 0.038116 0.038081 0.016947 0.031515 0.016243 0.015830 0.033312 0.033818 0.014689 0.221843 0.027797 0.019761 0.019195 0.086911 0.040986 0.016462 0.006462 0.063422 0.039092 0.000304 0.019124 0.133891 0.038332 0.180870 +0.456301 +0.031494 0.039848 0.029810 0.034679 0.015079 0.022151 0.011605 0.035822 0.029857 0.029723 0.018308 0.023069 0.015791 0.015618 0.029387 0.036984 0.016671 0.122713 0.029014 0.020816 0.023089 0.133891 0.040739 0.013606 0.012618 0.133891 0.041925 0.000356 0.020477 0.133891 0.038684 0.180870 +0.030792 +0.029591 0.033440 0.029302 0.035354 0.018761 0.168495 0.010374 0.037408 0.028222 0.033854 0.015483 0.054195 0.016263 0.016046 0.030952 0.028933 0.014324 0.066715 0.027707 0.020947 0.021838 0.110401 0.038492 0.012040 0.007236 0.063422 0.039851 0.002072 0.019759 0.063422 0.038950 0.180870 +0.268972 +0.032462 0.039501 0.030151 0.028841 0.014673 0.096961 0.010233 0.035852 0.029303 0.034092 0.014377 0.154153 0.015894 0.015871 0.031908 0.028797 0.017609 0.022411 0.029167 0.020979 0.023106 0.086911 0.038557 0.015342 0.012762 0.086911 0.037755 0.000249 0.019025 0.063422 0.040553 0.133891 +0.312553 +0.030061 0.033600 0.029489 0.032778 0.016629 0.131624 0.009547 0.036900 0.029502 0.032666 0.016479 0.017517 0.015395 0.015709 0.030360 0.029371 0.018570 0.046961 0.027630 0.020348 0.021743 0.110401 0.038595 0.013355 0.012954 0.086911 0.039368 0.001715 0.020148 0.110401 0.041386 0.157380 +0.283371 +0.030951 0.037709 0.028752 0.031084 0.016011 0.111790 0.010950 0.036267 0.029890 0.030928 0.016408 0.029735 0.015401 0.016057 0.028324 0.028386 0.015350 0.024617 0.027533 0.019073 0.021290 0.086911 0.040492 0.018304 0.007492 0.063422 0.042272 0.001909 0.019859 0.180870 0.040098 0.204360 +0.059294 +0.030424 0.038882 0.030901 0.030165 0.017543 0.124373 0.010748 0.036184 0.031477 0.029687 0.016472 0.240177 0.015547 0.016282 0.033634 0.028775 0.015514 0.131690 0.027649 0.019919 0.020219 0.063422 0.038254 0.013264 0.010001 0.110401 0.041194 0.002108 0.019950 0.157380 0.037849 0.204360 +0.685387 +0.030562 0.037231 0.029911 0.031085 0.014680 0.117786 0.010716 0.036714 0.031130 0.028488 0.015142 0.174349 0.015125 0.016088 0.035942 0.028434 0.015241 0.023367 0.029835 0.019809 0.018861 0.063422 0.039056 0.012062 0.013441 0.180870 0.037780 0.001216 0.020139 0.110401 0.041464 0.204360 +0.352027 +0.032799 0.035091 0.029014 0.029441 0.014215 0.021782 0.011397 0.037266 0.028686 0.029496 0.018739 0.028206 0.015090 0.015890 0.029104 0.031848 0.018688 0.071098 0.030179 0.020487 0.020217 0.063422 0.041563 0.015173 0.011329 0.063422 0.040400 0.000082 0.020585 0.086911 0.041813 0.157380 +0.001973 +0.031686 0.038466 0.038134 0.031691 0.017977 0.357332 0.010082 0.035634 0.031935 0.028911 0.016561 0.041668 0.015185 0.015537 0.033421 0.028520 0.015440 0.085866 0.028550 0.019627 0.020436 0.086911 0.041441 0.016627 0.013130 0.110401 0.039627 0.002256 0.020182 0.086911 0.037897 0.204360 +0.557389 +0.030781 0.039818 0.029080 0.032120 0.014162 0.022124 0.010016 0.037060 0.030396 0.029642 0.017806 0.089659 0.016138 0.015996 0.028597 0.029448 0.018165 0.039289 0.029417 0.019991 0.019644 0.063422 0.039391 0.016046 0.009859 0.063422 0.038850 0.000569 0.019030 0.180870 0.038605 0.204360 +0.039819 +0.032408 0.033494 0.028626 0.029594 0.016575 0.044624 0.010835 0.037091 0.028939 0.030015 0.018280 0.022655 0.015936 0.015562 0.028450 0.029663 0.015810 0.064796 0.027105 0.020659 0.021923 0.110401 0.040905 0.014180 0.013144 0.063422 0.039916 0.000117 0.020951 0.086911 0.039098 0.133891 +0.073438 +0.028648 0.036565 0.028818 0.032266 0.017712 0.055510 0.009885 0.037144 0.031442 0.033632 0.015458 0.147107 0.015706 0.015660 0.028494 0.031967 0.016478 0.027157 0.028109 0.019337 0.023387 0.110401 0.041275 0.013983 0.006919 0.063422 0.038796 0.000108 0.020465 0.086911 0.041248 0.133891 +0.224426 +0.031168 0.039079 0.028646 0.029202 0.017282 0.029605 0.009597 0.035991 0.029082 0.035756 0.014454 0.506967 0.015502 0.015908 0.028307 0.031424 0.016308 0.124497 0.026643 0.020049 0.022343 0.157380 0.037901 0.016935 0.010256 0.133891 0.039742 0.001548 0.019879 0.157380 0.040687 0.180870 +0.844533 +0.032741 0.034263 0.029390 0.031642 0.015964 0.043955 0.010010 0.035928 0.037868 0.030586 0.016211 0.110559 0.015683 0.016041 0.028296 0.028239 0.017569 0.111979 0.028737 0.019567 0.020334 0.110401 0.039285 0.014031 0.012223 0.086911 0.038867 0.000587 0.020898 0.063422 0.040633 0.133891 +0.240513 +0.028985 0.035805 0.029428 0.028274 0.014178 0.124878 0.009406 0.036444 0.034988 0.031430 0.015182 0.119916 0.015321 0.015791 0.030180 0.029364 0.014438 0.032682 0.029653 0.020316 0.022941 0.086911 0.040996 0.013943 0.007412 0.180870 0.040414 0.000301 0.020118 0.110401 0.041254 0.204360 +0.243251 +0.031547 0.036033 0.029020 0.029487 0.017208 0.027067 0.011457 0.035780 0.031530 0.028985 0.016509 0.018736 0.015247 0.016208 0.029543 0.033776 0.015023 0.027695 0.027736 0.019708 0.022968 0.063422 0.041808 0.015532 0.006081 0.110401 0.037951 0.000969 0.020648 0.110401 0.041811 0.204360 +0 +0.028642 0.034244 0.034084 0.029564 0.018679 0.041616 0.010226 0.035546 0.029515 0.029670 0.017477 0.020276 0.016309 0.015533 0.028421 0.033059 0.016337 0.269753 0.029002 0.019287 0.020264 0.133891 0.040242 0.014025 0.008553 0.086911 0.038348 0.000942 0.019897 0.063422 0.038582 0.204360 +0.370015 +0.031899 0.033495 0.030985 0.029169 0.015315 0.058899 0.011649 0.037431 0.033074 0.030650 0.017425 0.060112 0.016091 0.015709 0.028432 0.031950 0.017567 0.142525 0.028819 0.021139 0.022830 0.063422 0.040484 0.013780 0.013763 0.157380 0.041722 0.001226 0.018874 0.133891 0.038753 0.180870 +0.288278 +0.030966 0.034401 0.028669 0.032898 0.018746 0.160019 0.010154 0.036591 0.030308 0.029752 0.016522 0.048352 0.015764 0.016149 0.029365 0.030174 0.017298 0.035762 0.028773 0.018839 0.021875 0.110401 0.039675 0.016610 0.009819 0.086911 0.039001 0.000738 0.019530 0.133891 0.041347 0.157380 +0.324883 +0.028999 0.035915 0.031741 0.030292 0.018145 0.044652 0.009773 0.037114 0.029220 0.034503 0.016042 0.180718 0.015215 0.015953 0.029497 0.030981 0.017926 0.017618 0.027107 0.019713 0.019438 0.063422 0.042092 0.017142 0.008764 0.133891 0.041475 0.000635 0.020568 0.133891 0.041313 0.157380 +0.201635 +0.031957 0.038384 0.033532 0.031584 0.017824 0.063690 0.010927 0.036265 0.029799 0.028867 0.017636 0.031921 0.015888 0.015901 0.032349 0.030248 0.018776 0.060546 0.027183 0.019416 0.022577 0.063422 0.041816 0.017413 0.007122 0.086911 0.040763 0.000893 0.020474 0.063422 0.038429 0.133891 +0.072223 +0.031326 0.036521 0.029335 0.028655 0.016331 0.031653 0.009745 0.037129 0.037789 0.029389 0.016304 0.034024 0.015061 0.016016 0.029317 0.028194 0.018074 0.130419 0.027355 0.019112 0.019259 0.110401 0.039964 0.018500 0.008352 0.110401 0.041365 0.001404 0.020532 0.110401 0.041112 0.157380 +0.138609 +0.029072 0.034103 0.035990 0.028408 0.017281 0.035044 0.009587 0.036220 0.029331 0.030728 0.014171 0.121222 0.015419 0.015536 0.031361 0.037824 0.015803 0.031452 0.029010 0.020846 0.022785 0.086911 0.038598 0.017514 0.005170 0.110401 0.042215 0.002132 0.020039 0.110401 0.041978 0.133891 +0.207939 +0.032017 0.036410 0.028928 0.032840 0.016402 0.402830 0.011572 0.036644 0.028964 0.030521 0.018082 0.033179 0.015924 0.016290 0.038054 0.028426 0.018492 0.024951 0.028368 0.020928 0.023383 0.086911 0.039651 0.014841 0.006366 0.063422 0.038893 0.001060 0.019314 0.063422 0.041563 0.180870 +0.644965 +0.031792 0.038204 0.031139 0.029690 0.018197 0.064885 0.011634 0.035508 0.029730 0.028705 0.014922 0.083642 0.015827 0.015688 0.030562 0.032740 0.015066 0.146852 0.029221 0.020703 0.018861 0.157380 0.041205 0.012501 0.005227 0.157380 0.038800 0.000091 0.018944 0.110401 0.041203 0.204360 +0.326308 +0.031235 0.036331 0.029015 0.031127 0.014956 0.023769 0.009709 0.035500 0.032502 0.028356 0.016060 0.034256 0.016418 0.016213 0.028612 0.032355 0.015465 0.081018 0.028387 0.020775 0.020264 0.063422 0.038899 0.013121 0.006687 0.086911 0.039659 0.000338 0.020245 0.063422 0.041280 0.157380 +0.021372 +0.032066 0.032943 0.033503 0.028631 0.016061 0.513530 0.010350 0.036025 0.029867 0.028861 0.017148 0.276871 0.015420 0.016080 0.029095 0.031324 0.018298 0.050101 0.028469 0.020973 0.022774 0.133891 0.039928 0.013524 0.009376 0.133891 0.041446 0.002042 0.019958 0.110401 0.041345 0.180870 +0.904710 +0.030951 0.036081 0.028953 0.029036 0.015072 0.212866 0.010450 0.036944 0.030737 0.028614 0.015375 0.069692 0.015052 0.016037 0.033114 0.037647 0.014571 0.050090 0.026294 0.020056 0.021695 0.157380 0.038155 0.018302 0.010777 0.157380 0.038827 0.001407 0.020402 0.110401 0.041723 0.204360 +0.480667 +0.029160 0.038599 0.028764 0.032860 0.015458 0.081075 0.009683 0.035459 0.032384 0.029759 0.018562 0.097289 0.015136 0.016175 0.028566 0.030355 0.015987 0.139280 0.027854 0.018860 0.019418 0.086911 0.038218 0.018791 0.012705 0.110401 0.041905 0.000231 0.018898 0.110401 0.039610 0.180870 +0.306407 +0.029062 0.037724 0.028426 0.028805 0.015508 0.099950 0.009823 0.035828 0.028432 0.032564 0.016592 0.112961 0.015201 0.015759 0.029342 0.029241 0.015976 0.101804 0.028095 0.020905 0.021212 0.110401 0.038455 0.012593 0.013878 0.133891 0.039354 0.001166 0.019782 0.180870 0.039127 0.204360 +0.349009 +0.031950 0.036737 0.028202 0.036254 0.015015 0.233219 0.011716 0.035818 0.031356 0.031633 0.017941 0.080951 0.015740 0.015980 0.031162 0.030056 0.016174 0.023994 0.028787 0.020228 0.021096 0.086911 0.041331 0.018648 0.013782 0.086911 0.041543 0.001273 0.019382 0.133891 0.038487 0.157380 +0.368687 +0.029671 0.035767 0.032916 0.030136 0.018642 0.054017 0.009467 0.036025 0.028292 0.028919 0.018506 0.182388 0.015122 0.015529 0.028420 0.034031 0.017406 0.020871 0.028952 0.021003 0.019101 0.157380 0.040072 0.012946 0.011595 0.133891 0.039051 0.001405 0.020375 0.133891 0.040745 0.180870 +0.201330 +0.030097 0.036755 0.028445 0.032526 0.015738 0.085911 0.010667 0.035403 0.037669 0.028587 0.016452 0.022006 0.015137 0.015692 0.029255 0.028482 0.015530 0.030425 0.027046 0.019647 0.021626 0.086911 0.038816 0.015341 0.004922 0.133891 0.037834 0.001876 0.019180 0.086911 0.041127 0.204360 +0.016510 +0.031334 0.036961 0.035337 0.033306 0.014784 0.042052 0.010901 0.035641 0.049209 0.030977 0.015391 0.049763 0.015523 0.015562 0.029422 0.029550 0.018126 0.066877 0.028422 0.018929 0.021197 0.110401 0.038613 0.018573 0.009904 0.110401 0.041478 0.002022 0.020341 0.063422 0.041784 0.157380 +0.038590 +0.031041 0.033805 0.028211 0.030313 0.017108 0.124834 0.011672 0.035749 0.030979 0.033657 0.018281 0.077207 0.016103 0.015988 0.028964 0.029495 0.014389 0.101007 0.026366 0.020015 0.018949 0.110401 0.039619 0.013423 0.010114 0.110401 0.042133 0.000486 0.020739 0.110401 0.039919 0.133891 +0.389884 +0.032404 0.032987 0.028855 0.029180 0.015461 0.019691 0.010454 0.035688 0.029488 0.029918 0.016283 0.037502 0.016389 0.015549 0.028681 0.028494 0.015584 0.068580 0.029940 0.020193 0.021503 0.110401 0.038895 0.018409 0.005424 0.063422 0.041543 0.001780 0.019416 0.133891 0.040622 0.180870 +0.009121 +0.028218 0.037122 0.030542 0.031014 0.016768 0.041609 0.010790 0.036288 0.029403 0.032579 0.015289 0.076765 0.015619 0.016283 0.029888 0.028399 0.016830 0.016509 0.029813 0.019811 0.022170 0.110401 0.038486 0.012793 0.010572 0.086911 0.038559 0.001438 0.020534 0.110401 0.041593 0.157380 +0.031373 +0.030030 0.037888 0.029811 0.028782 0.014132 0.103310 0.010697 0.037363 0.034905 0.028836 0.014155 0.040616 0.015666 0.016314 0.028836 0.031766 0.015905 0.154895 0.027584 0.019663 0.021576 0.157380 0.037880 0.016693 0.006609 0.110401 0.039017 0.000249 0.020657 0.133891 0.039594 0.180870 +0.382227 +0.032814 0.036118 0.031298 0.029308 0.014347 0.057622 0.010194 0.036271 0.028984 0.028189 0.017413 0.028634 0.015292 0.015857 0.028802 0.028652 0.017256 0.043485 0.027667 0.020094 0.020376 0.086911 0.040986 0.012233 0.012314 0.063422 0.037711 0.001883 0.020670 0.086911 0.041194 0.133891 +0.016112 +0.028519 0.033798 0.033066 0.028984 0.017707 0.036611 0.009764 0.035274 0.031939 0.029570 0.018268 0.119770 0.016143 0.016105 0.034672 0.029646 0.015260 0.053556 0.030642 0.019259 0.022492 0.180870 0.041005 0.017130 0.010216 0.110401 0.040681 0.002014 0.018826 0.133891 0.039748 0.204360 +0.084790 +0.031869 0.033422 0.032398 0.035440 0.014579 0.020933 0.010499 0.037187 0.029212 0.037876 0.016010 0.202041 0.015971 0.015543 0.034942 0.029584 0.018000 0.085987 0.027471 0.020772 0.023235 0.086911 0.041883 0.015695 0.006842 0.086911 0.040844 0.000025 0.020342 0.086911 0.039789 0.180870 +0.293537 +0.030846 0.035222 0.031892 0.029841 0.015695 0.150563 0.010231 0.035500 0.029525 0.028278 0.017996 0.094846 0.015663 0.015985 0.030132 0.029987 0.018453 0.064550 0.028064 0.019760 0.023240 0.086911 0.037846 0.018024 0.009150 0.063422 0.042162 0.001158 0.020567 0.086911 0.039632 0.204360 +0.280359 +0.030459 0.034110 0.028951 0.028190 0.015181 0.057587 0.010242 0.035794 0.030456 0.031639 0.017010 0.164750 0.015682 0.015954 0.030807 0.030729 0.016494 0.235696 0.028934 0.020578 0.021700 0.110401 0.039567 0.017100 0.008310 0.086911 0.041091 0.000646 0.021032 0.063422 0.038261 0.133891 +0.636397 +0.029944 0.033472 0.029520 0.028334 0.018198 0.074419 0.010372 0.036060 0.034136 0.028692 0.017117 0.034834 0.015317 0.015858 0.030463 0.030866 0.015601 0.212618 0.028473 0.018834 0.019483 0.063422 0.040174 0.017357 0.004980 0.110401 0.039823 0.001089 0.019111 0.086911 0.039410 0.133891 +0.397417 +0.031251 0.039439 0.029463 0.029722 0.017479 0.228901 0.010436 0.036690 0.029021 0.029080 0.015431 0.067028 0.016427 0.016111 0.030193 0.028341 0.014945 0.061729 0.026836 0.020688 0.020566 0.086911 0.037710 0.013601 0.011732 0.086911 0.038354 0.001242 0.019975 0.110401 0.039603 0.133891 +0.507712 +0.028798 0.038041 0.031559 0.029208 0.015504 0.096088 0.010288 0.036388 0.029591 0.028373 0.016833 0.057823 0.015738 0.015756 0.032936 0.028435 0.015404 0.256557 0.028112 0.020497 0.022827 0.063422 0.038774 0.013025 0.012880 0.086911 0.041541 0.001836 0.018813 0.157380 0.041041 0.180870 +0.503026 +0.032191 0.034205 0.034690 0.029489 0.015146 0.020762 0.010322 0.036450 0.030082 0.032428 0.016168 0.061601 0.016046 0.015923 0.031152 0.029246 0.016599 0.036553 0.029505 0.020663 0.023061 0.110401 0.041236 0.016991 0.010925 0.063422 0.042078 0.002243 0.020746 0.110401 0.041321 0.157380 +0.017160 +0.029833 0.038726 0.029721 0.031378 0.015796 0.105891 0.010913 0.035770 0.030719 0.029046 0.016183 0.192638 0.015891 0.015814 0.033069 0.029068 0.018196 0.028149 0.026646 0.019729 0.023336 0.086911 0.041320 0.017888 0.007910 0.063422 0.038865 0.001733 0.019373 0.110401 0.039226 0.133891 +0.395169 +0.029543 0.038459 0.032190 0.028838 0.014777 0.027664 0.011253 0.036643 0.030093 0.029818 0.016459 0.039270 0.015508 0.016245 0.029048 0.033246 0.016304 0.120851 0.028956 0.018995 0.020845 0.133891 0.041390 0.011766 0.009356 0.133891 0.041131 0.001350 0.019978 0.110401 0.039173 0.204360 +0.116672 +0.030240 0.035334 0.030152 0.030471 0.014537 0.059252 0.011142 0.035835 0.030902 0.029600 0.016041 0.143790 0.015972 0.015526 0.028196 0.030856 0.017969 0.037399 0.027678 0.019269 0.021438 0.063422 0.038882 0.018402 0.007250 0.086911 0.040347 0.001587 0.020718 0.086911 0.038648 0.204360 +0.219397 +0.029778 0.038762 0.037072 0.037029 0.016809 0.030012 0.011537 0.035241 0.028440 0.033813 0.018038 0.109257 0.015529 0.016031 0.029098 0.031422 0.017186 0.203162 0.028839 0.020750 0.020022 0.180870 0.041949 0.013923 0.007179 0.180870 0.040383 0.001431 0.019575 0.157380 0.040511 0.204360 +0.366651 +0.031772 0.034705 0.028637 0.031999 0.014578 0.054958 0.010162 0.037246 0.031170 0.031071 0.015812 0.053400 0.016235 0.016426 0.033117 0.031818 0.017998 0.062698 0.027910 0.019928 0.020227 0.157380 0.039449 0.015158 0.013483 0.133891 0.041353 0.001171 0.020958 0.063422 0.041066 0.180870 +0.085556 +0.032181 0.037746 0.028670 0.035420 0.018012 0.125284 0.010835 0.037242 0.029031 0.028232 0.014825 0.157594 0.015053 0.016285 0.029857 0.030210 0.018073 0.192301 0.029054 0.019306 0.023243 0.110401 0.037948 0.013743 0.009579 0.086911 0.041521 0.001976 0.018932 0.110401 0.038896 0.133891 +0.630909 +0.028564 0.037588 0.028891 0.029994 0.016660 0.199022 0.009537 0.036553 0.029003 0.029966 0.016954 0.138207 0.016234 0.016169 0.032533 0.032081 0.018551 0.097907 0.028929 0.020243 0.023282 0.110401 0.041415 0.017558 0.009846 0.110401 0.038392 0.000208 0.020601 0.086911 0.039693 0.133891 +0.507808 +0.029558 0.034759 0.029073 0.028347 0.016881 0.082959 0.011375 0.035659 0.028562 0.032233 0.016031 0.054394 0.015478 0.015935 0.028240 0.031380 0.015369 0.091416 0.027540 0.020839 0.021379 0.086911 0.041977 0.013395 0.005482 0.110401 0.041966 0.000491 0.018830 0.063422 0.039707 0.133891 +0.252708 +0.032077 0.034937 0.028299 0.028420 0.018211 0.035032 0.009927 0.035831 0.030356 0.028766 0.018675 0.139788 0.016200 0.015830 0.029792 0.030452 0.017600 0.132052 0.027922 0.019655 0.021479 0.086911 0.040320 0.015572 0.012688 0.086911 0.042114 0.001362 0.021067 0.157380 0.040183 0.180870 +0.321288 +0.031035 0.033065 0.029649 0.030176 0.018457 0.101940 0.011645 0.037407 0.028796 0.028465 0.015864 0.039725 0.016387 0.015959 0.028838 0.032493 0.016925 0.070725 0.026355 0.019618 0.021858 0.180870 0.040098 0.015095 0.008858 0.086911 0.039824 0.000527 0.020482 0.133891 0.041201 0.204360 +0.223466 +0.031221 0.034405 0.030311 0.028574 0.018300 0.042240 0.010830 0.035831 0.029196 0.028422 0.017100 0.056478 0.016286 0.016022 0.029214 0.030549 0.018378 0.141360 0.027205 0.020027 0.022161 0.063422 0.039229 0.013823 0.004965 0.110401 0.039826 0.000766 0.020326 0.063422 0.042002 0.133891 +0.301486 +0.031334 0.038735 0.031030 0.029477 0.014555 0.164882 0.010176 0.035273 0.028943 0.029606 0.018445 0.228579 0.015624 0.016376 0.028437 0.029308 0.018146 0.020489 0.030196 0.019021 0.021458 0.063422 0.039528 0.018113 0.005713 0.063422 0.037833 0.000160 0.019678 0.086911 0.041730 0.133891 +0.472794 +0.030211 0.033840 0.028462 0.030186 0.017262 0.085007 0.011186 0.036114 0.028488 0.032756 0.015406 0.092555 0.015352 0.015705 0.031470 0.034674 0.015505 0.085957 0.030312 0.020247 0.023286 0.086911 0.040687 0.012540 0.012933 0.086911 0.038026 0.001596 0.020552 0.063422 0.039784 0.133891 +0.273416 +0.031587 0.038050 0.033248 0.028396 0.014508 0.017028 0.011308 0.036993 0.029233 0.032118 0.015453 0.166716 0.016281 0.015813 0.029140 0.028202 0.015108 0.067849 0.028467 0.020670 0.020944 0.063422 0.040583 0.016291 0.006674 0.086911 0.037836 0.000585 0.020754 0.063422 0.041978 0.133891 +0.254708 +0.032250 0.034230 0.034919 0.033186 0.018326 0.165076 0.009799 0.037060 0.031364 0.031302 0.014663 0.074752 0.015310 0.015691 0.028747 0.030688 0.016304 0.078368 0.028779 0.020385 0.021098 0.086911 0.038859 0.016897 0.008460 0.133891 0.039247 0.000108 0.018834 0.133891 0.040347 0.180870 +0.311687 +0.029079 0.036442 0.033171 0.029995 0.014528 0.276218 0.011378 0.035731 0.029042 0.029811 0.014709 0.044577 0.015657 0.015580 0.036038 0.028944 0.015935 0.044997 0.027919 0.020800 0.022875 0.157380 0.042139 0.012261 0.008799 0.110401 0.039891 0.000964 0.019531 0.063422 0.040438 0.204360 +0.450024 +0.031162 0.036956 0.029395 0.030331 0.016590 0.090474 0.009771 0.036068 0.031053 0.033284 0.015998 0.057404 0.016149 0.015558 0.035815 0.029515 0.015548 0.122172 0.026968 0.020434 0.020087 0.133891 0.038585 0.013261 0.011440 0.086911 0.040777 0.001282 0.019152 0.086911 0.041299 0.204360 +0.238133 +0.031130 0.034121 0.028244 0.035664 0.016147 0.206620 0.010990 0.037188 0.031589 0.035382 0.015491 0.109579 0.015888 0.015910 0.035078 0.032844 0.017615 0.213422 0.028802 0.020590 0.019287 0.063422 0.041478 0.017623 0.008509 0.086911 0.039668 0.000800 0.020750 0.110401 0.039159 0.180870 +0.665504 +0.032444 0.037775 0.031503 0.030455 0.017999 0.084436 0.010484 0.037089 0.028672 0.029136 0.015830 0.080800 0.015613 0.015686 0.029427 0.031496 0.017708 0.109970 0.029320 0.020739 0.019225 0.133891 0.038688 0.017483 0.006381 0.086911 0.037673 0.000638 0.019361 0.086911 0.041273 0.157380 +0.205052 +0.030214 0.038214 0.029391 0.031300 0.016368 0.084379 0.010081 0.036524 0.032282 0.031923 0.017783 0.051888 0.015388 0.015830 0.032394 0.028409 0.016261 0.132502 0.027323 0.019589 0.020562 0.086911 0.039651 0.016210 0.009394 0.133891 0.041628 0.000454 0.020153 0.063422 0.039323 0.157380 +0.273802 +0.030193 0.035198 0.028281 0.029754 0.017760 0.051578 0.011500 0.037297 0.031138 0.038150 0.014902 0.082000 0.016404 0.015548 0.028307 0.031258 0.015150 0.167329 0.026855 0.019160 0.022963 0.063422 0.037722 0.018385 0.005597 0.063422 0.042066 0.000762 0.018833 0.086911 0.038050 0.133891 +0.301351 +0.029026 0.038048 0.036715 0.030848 0.017292 0.107968 0.010573 0.037131 0.029422 0.031366 0.015010 0.036831 0.015643 0.015572 0.028288 0.030986 0.017752 0.249983 0.029600 0.019863 0.018972 0.133891 0.037709 0.017540 0.011386 0.086911 0.041230 0.000910 0.019644 0.086911 0.038594 0.180870 +0.517820 +0.028525 0.035520 0.035247 0.032017 0.014930 0.035384 0.010629 0.035955 0.029132 0.028630 0.016657 0.084792 0.016130 0.015680 0.029496 0.032133 0.016512 0.073239 0.028357 0.018912 0.021702 0.063422 0.041461 0.017087 0.008599 0.133891 0.042012 0.000111 0.020076 0.063422 0.041953 0.157380 +0.112005 +0.032272 0.036363 0.028792 0.031501 0.015806 0.018444 0.010576 0.036536 0.029088 0.029852 0.015144 0.087793 0.016247 0.016372 0.028611 0.028569 0.014795 0.044915 0.027350 0.019822 0.022426 0.110401 0.038377 0.014021 0.011788 0.157380 0.038790 0.000263 0.020350 0.133891 0.039387 0.180870 +0.065976 +0.029686 0.038351 0.028230 0.034207 0.014526 0.071035 0.009806 0.035707 0.033615 0.028408 0.017261 0.024581 0.016429 0.016264 0.029279 0.029584 0.016117 0.084315 0.028535 0.020891 0.018948 0.110401 0.041980 0.013938 0.004921 0.110401 0.040082 0.002137 0.021014 0.133891 0.038710 0.157380 +0.116457 +0.029363 0.039580 0.028364 0.030206 0.015550 0.020341 0.009803 0.037030 0.028428 0.028191 0.014981 0.019156 0.015717 0.016140 0.028318 0.029608 0.014929 0.025317 0.027113 0.019969 0.022381 0.063422 0.038347 0.016348 0.005738 0.086911 0.038552 0.000746 0.019814 0.133891 0.039087 0.157380 +0 +0.031626 0.034791 0.031621 0.028531 0.016889 0.031322 0.010410 0.035346 0.028766 0.029166 0.015373 0.035380 0.016391 0.015682 0.030999 0.029112 0.015511 0.069363 0.027112 0.020208 0.019519 0.086911 0.038536 0.017538 0.010193 0.086911 0.039999 0.000621 0.019295 0.086911 0.038102 0.180870 +0.003524 +0.032870 0.034062 0.028958 0.032522 0.016859 0.256083 0.009812 0.037475 0.028663 0.030246 0.017166 0.119927 0.015641 0.015977 0.030444 0.030834 0.017160 0.022389 0.030013 0.020945 0.019448 0.180870 0.040422 0.013762 0.007768 0.180870 0.038314 0.000323 0.021133 0.110401 0.041739 0.204360 +0.518696 +0.029686 0.039716 0.028576 0.028995 0.014232 0.056652 0.010781 0.036607 0.029232 0.029948 0.014427 0.120163 0.016018 0.015870 0.029717 0.028905 0.016210 0.092988 0.029043 0.018809 0.019898 0.086911 0.039935 0.016711 0.011397 0.110401 0.040172 0.001304 0.019612 0.063422 0.041098 0.133891 +0.248014 +0.028201 0.033534 0.028245 0.029057 0.015486 0.034129 0.011424 0.035443 0.028774 0.030758 0.017952 0.077176 0.015890 0.016040 0.030133 0.031490 0.018147 0.016748 0.029752 0.020838 0.019498 0.063422 0.040021 0.018088 0.007746 0.133891 0.039952 0.002096 0.018897 0.110401 0.040236 0.157380 +0.017567 +0.031617 0.035723 0.029183 0.028899 0.016051 0.054805 0.010854 0.035481 0.028869 0.032145 0.018191 0.297323 0.015057 0.016110 0.033675 0.030616 0.017148 0.030508 0.028655 0.020388 0.019643 0.086911 0.041243 0.012697 0.013463 0.063422 0.040902 0.002051 0.020682 0.063422 0.039401 0.133891 +0.423175 +0.031363 0.035287 0.032078 0.028562 0.018007 0.035868 0.011231 0.035239 0.035596 0.028725 0.016291 0.048039 0.016159 0.015998 0.028729 0.032003 0.018082 0.148773 0.028188 0.020342 0.020445 0.086911 0.041253 0.014399 0.008644 0.063422 0.038463 0.000378 0.020490 0.063422 0.041411 0.180870 +0.113903 +0.030642 0.034610 0.029186 0.029209 0.016871 0.074436 0.010793 0.036919 0.029766 0.029189 0.015637 0.086405 0.016220 0.016248 0.029220 0.032054 0.014322 0.021402 0.026970 0.020116 0.019853 0.110401 0.041945 0.013246 0.007821 0.086911 0.040888 0.002317 0.020800 0.110401 0.039187 0.133891 +0.179624 +0.031745 0.039523 0.032617 0.028688 0.017179 0.019410 0.010062 0.037389 0.029521 0.028504 0.014716 0.020786 0.016158 0.016422 0.028211 0.033226 0.016231 0.070441 0.028742 0.019151 0.022699 0.086911 0.039424 0.012846 0.007226 0.063422 0.038762 0.000825 0.019494 0.063422 0.040280 0.133891 +0.002402 +0.030020 0.037190 0.029624 0.031247 0.014798 0.029437 0.011440 0.036653 0.028646 0.028338 0.016034 0.148952 0.015856 0.015944 0.033064 0.028317 0.015013 0.080138 0.027310 0.020588 0.019971 0.110401 0.040323 0.012516 0.010676 0.157380 0.038505 0.001203 0.020942 0.157380 0.039092 0.180870 +0.204364 +0.030012 0.037027 0.028975 0.029266 0.018151 0.024134 0.010550 0.037211 0.028427 0.029776 0.017296 0.030448 0.015600 0.015757 0.028711 0.033370 0.018159 0.223403 0.029200 0.020260 0.019268 0.063422 0.040247 0.016612 0.005435 0.157380 0.039778 0.000211 0.019626 0.133891 0.041133 0.180870 +0.363480 +0.031962 0.034052 0.030340 0.029911 0.017309 0.082235 0.010911 0.036167 0.031064 0.030822 0.016908 0.065765 0.015603 0.015811 0.029234 0.043277 0.016494 0.018024 0.029150 0.020026 0.019993 0.110401 0.040062 0.014001 0.004699 0.063422 0.039749 0.001769 0.019242 0.110401 0.038279 0.157380 +0.118166 +0.031022 0.039638 0.034600 0.032670 0.014709 0.073240 0.009942 0.036440 0.033645 0.029096 0.015771 0.028292 0.015699 0.016286 0.029481 0.032957 0.018741 0.091100 0.029107 0.021066 0.020872 0.133891 0.037775 0.014845 0.009078 0.180870 0.039609 0.001051 0.020850 0.133891 0.040377 0.204360 +0.185598 +0.031254 0.033765 0.028916 0.028721 0.014119 0.059635 0.011590 0.037214 0.028223 0.030781 0.015659 0.023694 0.016082 0.016049 0.029847 0.029392 0.016107 0.090862 0.027902 0.021028 0.022862 0.063422 0.041361 0.016437 0.008341 0.086911 0.041329 0.001044 0.020604 0.133891 0.040534 0.204360 +0.035397 +0.029522 0.035492 0.032308 0.034050 0.016885 0.023457 0.011330 0.037059 0.029096 0.033317 0.016412 0.160177 0.016352 0.015838 0.028297 0.035907 0.016325 0.078027 0.028342 0.020711 0.019004 0.133891 0.039519 0.015814 0.005949 0.110401 0.040853 0.001927 0.020816 0.133891 0.041942 0.204360 +0.174120 +0.029058 0.036716 0.029462 0.028742 0.017369 0.026656 0.011471 0.036377 0.028539 0.033456 0.015736 0.233380 0.016148 0.015939 0.028891 0.031488 0.015483 0.092046 0.027778 0.019612 0.022444 0.110401 0.038969 0.018167 0.008761 0.180870 0.041191 0.000526 0.019384 0.133891 0.038411 0.204360 +0.435360 +0.031545 0.034204 0.029010 0.029563 0.018254 0.021879 0.009861 0.036659 0.028916 0.031345 0.017948 0.061867 0.016123 0.015678 0.030253 0.036390 0.016194 0.072084 0.027386 0.019709 0.023431 0.133891 0.040029 0.016315 0.009322 0.133891 0.040530 0.000308 0.020155 0.110401 0.037672 0.157380 +0.127328 +0.031614 0.039212 0.042405 0.029683 0.017159 0.056046 0.010964 0.036340 0.029430 0.029841 0.018178 0.057932 0.015162 0.015878 0.036883 0.032096 0.016972 0.034726 0.028283 0.020750 0.020435 0.133891 0.040071 0.015355 0.007432 0.133891 0.038172 0.002020 0.020443 0.110401 0.042141 0.157380 +0.122492 +0.031086 0.035398 0.029682 0.028764 0.018612 0.055931 0.011010 0.036143 0.032282 0.028944 0.018687 0.105140 0.016295 0.015607 0.033401 0.028995 0.015525 0.039731 0.028435 0.020982 0.021553 0.110401 0.038475 0.012595 0.013113 0.063422 0.037940 0.002251 0.019006 0.063422 0.040219 0.157380 +0.160492 +0.028228 0.038610 0.031704 0.028346 0.014732 0.246146 0.010283 0.036129 0.031943 0.031180 0.018424 0.111457 0.016191 0.015698 0.028865 0.032049 0.014889 0.060526 0.029203 0.019789 0.020370 0.110401 0.041552 0.013009 0.012921 0.063422 0.037623 0.001399 0.020841 0.086911 0.038866 0.204360 +0.561404 +0.031837 0.039518 0.032405 0.031480 0.018417 0.030551 0.010382 0.037160 0.028610 0.030852 0.017910 0.023703 0.016377 0.015753 0.028829 0.036535 0.018034 0.023211 0.027624 0.019033 0.021952 0.063422 0.040540 0.016524 0.009045 0.157380 0.040933 0.001086 0.020605 0.157380 0.039551 0.204360 +0 +0.032515 0.038741 0.030958 0.029601 0.017608 0.051416 0.010716 0.035667 0.028538 0.028312 0.018579 0.079308 0.015218 0.016109 0.029071 0.028794 0.017883 0.190090 0.028524 0.018933 0.019528 0.110401 0.038556 0.017218 0.013739 0.063422 0.040053 0.001481 0.019174 0.086911 0.041762 0.133891 +0.431022 +0.031662 0.036067 0.032960 0.028288 0.014721 0.046271 0.011177 0.037078 0.031321 0.042945 0.018304 0.114545 0.015178 0.015644 0.028555 0.028840 0.015106 0.068134 0.029545 0.019975 0.020428 0.063422 0.039294 0.014819 0.008153 0.063422 0.040929 0.001592 0.019132 0.110401 0.038306 0.180870 +0.141648 +0.028893 0.035076 0.028457 0.031545 0.018088 0.083082 0.011597 0.035988 0.030505 0.032951 0.015142 0.134233 0.015988 0.015942 0.028220 0.028419 0.018072 0.073490 0.026312 0.019282 0.020206 0.180870 0.037662 0.015183 0.009500 0.157380 0.040523 0.002311 0.018985 0.133891 0.042000 0.204360 +0.263589 +0.032023 0.036582 0.030034 0.031811 0.015171 0.096055 0.009425 0.036144 0.029938 0.029214 0.017710 0.420802 0.015340 0.016360 0.029587 0.029704 0.016739 0.026914 0.028039 0.019360 0.023015 0.133891 0.042098 0.011820 0.009316 0.180870 0.041860 0.000880 0.020623 0.133891 0.041408 0.204360 +0.637699 +0.028507 0.038252 0.032852 0.028478 0.016447 0.034617 0.010779 0.035381 0.028492 0.032359 0.015671 0.057188 0.015973 0.016231 0.028309 0.034969 0.016056 0.024497 0.029360 0.019224 0.020935 0.110401 0.040952 0.017627 0.008136 0.133891 0.040145 0.001131 0.020726 0.133891 0.041454 0.157380 +0.028595 +0.029688 0.033412 0.031667 0.034429 0.016321 0.019486 0.011055 0.036659 0.030473 0.029780 0.017912 0.032504 0.015089 0.015613 0.034466 0.035151 0.015400 0.038107 0.028270 0.019456 0.019829 0.063422 0.040813 0.017566 0.009774 0.110401 0.041239 0.000969 0.021029 0.086911 0.041781 0.204360 +0 +0.031485 0.036086 0.028876 0.043063 0.016759 0.191710 0.010397 0.036500 0.030332 0.030329 0.014515 0.138287 0.016418 0.015700 0.031700 0.028461 0.017947 0.042517 0.028457 0.018815 0.021092 0.086911 0.040868 0.013057 0.013996 0.133891 0.039457 0.002078 0.018988 0.086911 0.039071 0.157380 +0.414308 +0.032778 0.034077 0.028485 0.029326 0.016182 0.031021 0.009511 0.035378 0.029772 0.028758 0.017191 0.111204 0.016402 0.016349 0.033519 0.028480 0.016317 0.061812 0.028794 0.020202 0.021638 0.063422 0.040082 0.018480 0.010824 0.063422 0.041904 0.000691 0.019940 0.086911 0.040247 0.180870 +0.094634 +0.029982 0.034003 0.029637 0.028640 0.016282 0.062503 0.009515 0.035461 0.028830 0.031168 0.016946 0.064991 0.016321 0.015894 0.029499 0.028943 0.017587 0.071902 0.028267 0.019480 0.022313 0.063422 0.042221 0.018036 0.008100 0.063422 0.038250 0.000170 0.020349 0.063422 0.038033 0.133891 +0.135299 +0.032869 0.035299 0.028746 0.029578 0.017551 0.063621 0.009985 0.037266 0.036461 0.028449 0.018499 0.031284 0.016360 0.015795 0.029759 0.032529 0.016796 0.037906 0.027449 0.020792 0.019269 0.110401 0.039013 0.017042 0.012066 0.063422 0.038264 0.002128 0.020463 0.133891 0.038529 0.180870 +0.011470 +0.031599 0.038465 0.029333 0.031705 0.018357 0.194953 0.010495 0.035819 0.030788 0.030727 0.016591 0.067208 0.015744 0.015982 0.029868 0.029505 0.014643 0.152992 0.028273 0.019901 0.019938 0.063422 0.040054 0.012029 0.011006 0.133891 0.041103 0.000599 0.019465 0.110401 0.040783 0.157380 +0.519056 +0.031594 0.037643 0.036212 0.030929 0.017781 0.041450 0.010330 0.036329 0.029765 0.034589 0.015233 0.052685 0.015449 0.016237 0.028649 0.028300 0.014727 0.034532 0.027380 0.021058 0.020379 0.063422 0.041307 0.013404 0.004767 0.086911 0.039341 0.002284 0.018935 0.086911 0.040792 0.180870 +0 +0.031188 0.034263 0.028785 0.028354 0.017490 0.249680 0.010558 0.035263 0.028387 0.028655 0.014315 0.039696 0.016329 0.016252 0.029842 0.028724 0.015777 0.051869 0.027930 0.019824 0.020992 0.086911 0.040145 0.018249 0.012784 0.086911 0.040370 0.001344 0.020532 0.110401 0.041465 0.157380 +0.464772 +0.032859 0.036794 0.028719 0.028459 0.018228 0.065672 0.010832 0.036776 0.031277 0.028875 0.017972 0.080488 0.016122 0.016266 0.032961 0.031022 0.014371 0.028065 0.027207 0.020264 0.020535 0.063422 0.039522 0.016781 0.009213 0.063422 0.040264 0.001330 0.020881 0.157380 0.040111 0.180870 +0.083262 +0.028578 0.037374 0.028629 0.028736 0.016376 0.034277 0.009952 0.035616 0.028890 0.028564 0.014971 0.035456 0.015897 0.016240 0.031799 0.028242 0.014440 0.074499 0.027423 0.020463 0.022174 0.133891 0.039926 0.016154 0.005161 0.063422 0.038026 0.000306 0.020899 0.133891 0.039904 0.180870 +0.030036 +0.029339 0.038905 0.028388 0.033993 0.015430 0.025836 0.009645 0.035684 0.034258 0.029078 0.016298 0.137914 0.015401 0.015588 0.029299 0.028553 0.016171 0.075423 0.026850 0.020221 0.021795 0.157380 0.038147 0.012407 0.006432 0.086911 0.041437 0.000863 0.020635 0.110401 0.039161 0.180870 +0.288068 +0.032743 0.033282 0.033207 0.030891 0.014281 0.103943 0.010853 0.036046 0.028773 0.028469 0.014498 0.051693 0.016160 0.016430 0.029677 0.030366 0.016307 0.023790 0.028565 0.019738 0.022198 0.157380 0.040559 0.017211 0.011219 0.110401 0.041996 0.002061 0.019785 0.063422 0.040899 0.204360 +0.069556 +0.031616 0.032960 0.028711 0.030156 0.017771 0.103463 0.010930 0.035642 0.029019 0.028539 0.017656 0.042846 0.015226 0.016096 0.029229 0.028661 0.015398 0.020091 0.027050 0.019068 0.019407 0.110401 0.040076 0.012048 0.012900 0.063422 0.040953 0.001634 0.019309 0.110401 0.040418 0.180870 +0.082102 +0.031868 0.033261 0.031462 0.028789 0.015450 0.034458 0.010779 0.035527 0.028575 0.029512 0.015806 0.142116 0.016192 0.016367 0.028325 0.031921 0.018260 0.097933 0.028931 0.019035 0.020161 0.086911 0.041464 0.012737 0.008703 0.133891 0.038108 0.000578 0.020304 0.110401 0.039966 0.204360 +0.242080 +0.032092 0.035408 0.030359 0.028439 0.016547 0.067202 0.010659 0.036038 0.029390 0.030637 0.017677 0.084793 0.015938 0.015568 0.032324 0.032794 0.014442 0.085578 0.029522 0.019385 0.023225 0.133891 0.038828 0.012859 0.007214 0.157380 0.038617 0.000868 0.019466 0.063422 0.038538 0.204360 +0.216389 +0.028653 0.034265 0.032061 0.031158 0.016126 0.052627 0.010329 0.035669 0.028935 0.028398 0.015005 0.026836 0.015191 0.016042 0.035552 0.029171 0.015446 0.148021 0.027908 0.020443 0.021429 0.133891 0.039289 0.014172 0.008100 0.086911 0.041762 0.001424 0.020929 0.110401 0.039917 0.180870 +0.110710 +0.029708 0.036710 0.028531 0.029325 0.017435 0.113159 0.011112 0.035891 0.031581 0.036045 0.014104 0.020297 0.015157 0.015740 0.028253 0.030403 0.015090 0.022151 0.028998 0.020674 0.021409 0.063422 0.039223 0.012135 0.010983 0.063422 0.038001 0.001044 0.021015 0.133891 0.039862 0.157380 +0.004357 +0.032570 0.034122 0.029279 0.030424 0.016338 0.159687 0.011342 0.036718 0.033452 0.031423 0.016598 0.075702 0.016316 0.015986 0.032323 0.028331 0.014572 0.374023 0.028866 0.020625 0.020725 0.110401 0.038998 0.014552 0.012368 0.133891 0.037812 0.002309 0.020525 0.110401 0.042078 0.157380 +0.755088 +0.030102 0.038911 0.028892 0.029421 0.017986 0.030084 0.010763 0.036444 0.028192 0.028910 0.017000 0.019435 0.015611 0.016187 0.029641 0.030094 0.015722 0.101122 0.029298 0.020479 0.020838 0.063422 0.038947 0.013062 0.011142 0.110401 0.037666 0.001603 0.019313 0.110401 0.039173 0.133891 +0.098915 +0.031602 0.033334 0.030554 0.029679 0.017823 0.091311 0.010219 0.036773 0.028367 0.029797 0.018658 0.183927 0.015699 0.016354 0.030355 0.028731 0.014316 0.039180 0.027081 0.021138 0.020727 0.086911 0.041571 0.016174 0.012913 0.086911 0.038741 0.001126 0.019457 0.110401 0.040131 0.157380 +0.327444 +0.028801 0.037521 0.034780 0.028744 0.017598 0.087756 0.009840 0.035496 0.033174 0.030338 0.017538 0.131218 0.016250 0.016187 0.030499 0.029365 0.015602 0.166854 0.027173 0.019811 0.020750 0.110401 0.040122 0.015805 0.010117 0.110401 0.039564 0.001879 0.019827 0.063422 0.041376 0.180870 +0.430038 +0.031216 0.034828 0.029596 0.031867 0.014835 0.213045 0.011145 0.035546 0.032963 0.029176 0.014536 0.203853 0.015825 0.015553 0.029557 0.028765 0.014115 0.127688 0.027518 0.020330 0.021988 0.063422 0.040441 0.012957 0.005590 0.063422 0.040483 0.000967 0.020687 0.110401 0.040870 0.204360 +0.716090 +0.030330 0.033948 0.030806 0.033722 0.014869 0.037544 0.011152 0.037459 0.031217 0.029418 0.018453 0.033399 0.015314 0.016398 0.029751 0.030422 0.017922 0.179532 0.026548 0.019956 0.018910 0.086911 0.039877 0.015642 0.009637 0.086911 0.038807 0.002180 0.019380 0.086911 0.037587 0.133891 +0.248275 +0.030274 0.035716 0.028757 0.029136 0.018686 0.023239 0.010275 0.035955 0.033637 0.031186 0.016141 0.050750 0.015581 0.016048 0.028600 0.034646 0.016374 0.053528 0.027828 0.020794 0.018861 0.063422 0.039411 0.014703 0.010924 0.133891 0.038636 0.001228 0.019329 0.133891 0.042162 0.157380 +0.038527 +0.028614 0.034564 0.029056 0.028580 0.014169 0.086404 0.010688 0.036355 0.028786 0.028553 0.017281 0.032925 0.016355 0.015771 0.030454 0.029021 0.016655 0.105583 0.028252 0.019445 0.021076 0.110401 0.041090 0.014995 0.010994 0.110401 0.041805 0.000647 0.020639 0.063422 0.040881 0.133891 +0.290016 +0.029311 0.034809 0.028300 0.030931 0.018212 0.045065 0.009849 0.037382 0.031415 0.034279 0.014262 0.139316 0.016252 0.015842 0.029152 0.029619 0.015074 0.029668 0.026283 0.019746 0.019553 0.086911 0.042223 0.014168 0.007448 0.133891 0.040470 0.002295 0.018907 0.133891 0.042185 0.180870 +0.122150 +0.029565 0.033768 0.028695 0.029094 0.018679 0.273471 0.010284 0.036311 0.030444 0.031900 0.017385 0.032016 0.015236 0.015520 0.028325 0.029541 0.014353 0.084546 0.027549 0.020510 0.020661 0.063422 0.040863 0.018536 0.008094 0.086911 0.040694 0.000895 0.020329 0.110401 0.038876 0.133891 +0.400090 +0.031357 0.033541 0.031100 0.030257 0.015744 0.123128 0.010305 0.037232 0.033143 0.032119 0.014186 0.088423 0.016285 0.016015 0.028981 0.035755 0.017184 0.024270 0.027862 0.018838 0.021971 0.086911 0.041536 0.014987 0.006134 0.063422 0.038267 0.001600 0.020593 0.133891 0.039737 0.157380 +0.227609 +0.032383 0.039514 0.029096 0.030018 0.016676 0.026594 0.010422 0.037416 0.028810 0.031156 0.014130 0.246999 0.015129 0.016223 0.036423 0.030111 0.016502 0.048558 0.026376 0.019386 0.023239 0.086911 0.042180 0.011812 0.006784 0.063422 0.038286 0.001053 0.020482 0.133891 0.040778 0.157380 +0.396978 +0.029706 0.038090 0.037497 0.029544 0.017520 0.048835 0.010336 0.037483 0.028778 0.030710 0.016027 0.096024 0.015087 0.015685 0.038127 0.029206 0.018527 0.044060 0.027543 0.020573 0.019144 0.133891 0.037678 0.013521 0.010908 0.133891 0.038961 0.000168 0.019194 0.157380 0.038370 0.180870 +0.112541 +0.029429 0.033683 0.030135 0.035111 0.015133 0.035316 0.009712 0.035386 0.034228 0.034436 0.017966 0.019415 0.015433 0.015671 0.028740 0.029089 0.018672 0.068823 0.030024 0.019236 0.018942 0.063422 0.041430 0.018470 0.013957 0.110401 0.041370 0.001273 0.019397 0.063422 0.040684 0.133891 +0.049816 +0.032031 0.032992 0.028523 0.029708 0.014292 0.059485 0.011346 0.036430 0.029770 0.030303 0.015565 0.069614 0.015276 0.015675 0.031577 0.028260 0.014432 0.024177 0.029085 0.020360 0.020341 0.063422 0.038139 0.012306 0.013097 0.133891 0.040615 0.000933 0.019287 0.157380 0.038810 0.204360 +0.085851 +0.032848 0.035466 0.032409 0.038588 0.014931 0.034703 0.011253 0.035272 0.030938 0.029109 0.014543 0.109557 0.015408 0.015816 0.029602 0.031610 0.017507 0.061287 0.027433 0.021049 0.018906 0.157380 0.039143 0.011875 0.005983 0.157380 0.039873 0.001540 0.019944 0.110401 0.041530 0.180870 +0.124390 +0.028789 0.037499 0.038048 0.033358 0.018548 0.161576 0.010685 0.037420 0.033257 0.029194 0.017318 0.093590 0.016084 0.015908 0.028511 0.029491 0.014259 0.016752 0.026757 0.020811 0.023087 0.086911 0.038121 0.012994 0.007929 0.133891 0.040068 0.002080 0.020927 0.133891 0.039517 0.204360 +0.342142 +0.031557 0.038361 0.040125 0.030533 0.015460 0.048074 0.010636 0.035533 0.033562 0.028440 0.016564 0.091252 0.015375 0.015631 0.033759 0.028399 0.015951 0.029579 0.030319 0.020666 0.019708 0.063422 0.040354 0.015822 0.010352 0.086911 0.041456 0.000193 0.018924 0.110401 0.038704 0.204360 +0.011086 +0.028347 0.035605 0.028190 0.028482 0.016862 0.078547 0.011648 0.035815 0.031070 0.031299 0.018745 0.152626 0.016076 0.016335 0.030252 0.029541 0.016740 0.057262 0.027012 0.018894 0.023449 0.086911 0.038007 0.018089 0.006881 0.063422 0.037907 0.001538 0.020643 0.063422 0.039031 0.133891 +0.341492 +0.031746 0.034527 0.028200 0.029941 0.015609 0.067264 0.010381 0.037042 0.034624 0.030519 0.014285 0.144382 0.015122 0.016118 0.030702 0.028761 0.014292 0.025790 0.029202 0.020011 0.022242 0.133891 0.039513 0.014639 0.010127 0.110401 0.040282 0.001797 0.020816 0.133891 0.041954 0.180870 +0.206901 +0.029687 0.039494 0.029914 0.029101 0.014274 0.185419 0.009836 0.035763 0.028614 0.028198 0.018250 0.145015 0.015734 0.016233 0.032907 0.028734 0.015795 0.021492 0.027887 0.020302 0.020672 0.157380 0.041109 0.016384 0.005370 0.133891 0.040878 0.000402 0.019548 0.133891 0.039452 0.180870 +0.471524 +0.028382 0.035237 0.030976 0.028544 0.015030 0.099798 0.010174 0.036608 0.029762 0.028657 0.014626 0.207381 0.015110 0.015729 0.030164 0.031592 0.015478 0.033934 0.025019 0.019054 0.018868 0.063422 0.040755 0.015508 0.005432 0.086911 0.039193 0.001981 0.019744 0.133891 0.039771 0.180870 +0.372282 +0.028796 0.039683 0.029338 0.033161 0.015487 0.133557 0.011032 0.036687 0.031473 0.029903 0.016003 0.543957 0.015655 0.015737 0.030257 0.031158 0.015663 0.044133 0.028676 0.019056 0.020401 0.133891 0.037691 0.015779 0.005269 0.086911 0.041331 0.000868 0.020437 0.180870 0.038684 0.204360 +0.881588 +0.028676 0.034962 0.033589 0.031224 0.016892 0.085080 0.011138 0.035436 0.029569 0.028406 0.015726 0.065982 0.015519 0.015550 0.035709 0.031554 0.016680 0.383019 0.028736 0.019644 0.021648 0.086911 0.042096 0.012589 0.007820 0.110401 0.039895 0.000464 0.020144 0.063422 0.037663 0.204360 +0.749293 +0.029684 0.034548 0.038856 0.029745 0.017902 0.049019 0.010639 0.035855 0.029214 0.029251 0.014156 0.103276 0.015999 0.015965 0.035512 0.028908 0.017972 0.018800 0.028535 0.019640 0.021345 0.086911 0.040110 0.013327 0.013306 0.086911 0.042006 0.002126 0.020340 0.110401 0.042119 0.133891 +0.102941 +0.028400 0.036317 0.028604 0.029041 0.017183 0.171912 0.009591 0.035333 0.031065 0.028721 0.018405 0.023135 0.015493 0.016146 0.028502 0.030367 0.015495 0.064938 0.026994 0.018870 0.018868 0.086911 0.039680 0.014612 0.010900 0.086911 0.041022 0.001631 0.021101 0.086911 0.039557 0.204360 +0.172770 +0.030195 0.034171 0.029031 0.035354 0.018008 0.037991 0.010063 0.036754 0.031104 0.031174 0.016399 0.098927 0.015401 0.015803 0.028883 0.030424 0.016647 0.031957 0.030047 0.019733 0.019874 0.086911 0.040638 0.012230 0.009923 0.133891 0.038038 0.001846 0.019656 0.110401 0.038822 0.180870 +0.034765 +0.031342 0.038310 0.028222 0.029834 0.015665 0.134670 0.009473 0.037111 0.032720 0.032337 0.016061 0.040654 0.015811 0.015808 0.028745 0.029340 0.016514 0.057268 0.029348 0.020808 0.021581 0.063422 0.041233 0.017374 0.010994 0.086911 0.037793 0.001777 0.019101 0.063422 0.041978 0.180870 +0.096485 +0.029784 0.034645 0.030778 0.030127 0.014594 0.017981 0.011519 0.036589 0.028198 0.028656 0.015093 0.106132 0.015083 0.015646 0.034996 0.029660 0.015412 0.104424 0.026948 0.018898 0.020721 0.180870 0.040099 0.015768 0.009944 0.133891 0.040046 0.002275 0.019200 0.063422 0.039076 0.204360 +0.181994 +0.028509 0.037554 0.029862 0.029761 0.014636 0.091985 0.010398 0.035662 0.033164 0.031946 0.017056 0.053634 0.015494 0.016248 0.029072 0.033967 0.018695 0.202319 0.028719 0.020893 0.019463 0.086911 0.041120 0.012230 0.004954 0.063422 0.040089 0.002201 0.019357 0.110401 0.041652 0.133891 +0.450320 +0.031611 0.037726 0.029691 0.032328 0.015921 0.044899 0.009621 0.036910 0.030694 0.033387 0.015696 0.070447 0.015654 0.016108 0.028964 0.030303 0.016566 0.056715 0.029159 0.020404 0.019356 0.133891 0.038227 0.016675 0.005773 0.086911 0.039878 0.001385 0.019524 0.110401 0.039483 0.204360 +0.053787 +0.029131 0.037446 0.029177 0.029070 0.015288 0.227579 0.011194 0.036078 0.032567 0.036829 0.016889 0.060349 0.016319 0.015845 0.028839 0.033311 0.014309 0.030236 0.026640 0.018885 0.021926 0.063422 0.038946 0.018004 0.005758 0.110401 0.039055 0.000762 0.020409 0.063422 0.038057 0.157380 +0.356843 +0.031947 0.036527 0.028473 0.028807 0.017812 0.095389 0.010494 0.035535 0.028715 0.034914 0.014643 0.068742 0.015686 0.016012 0.028225 0.028493 0.014302 0.019637 0.028385 0.019260 0.020678 0.133891 0.039110 0.015101 0.011255 0.133891 0.038079 0.001798 0.020402 0.157380 0.039266 0.180870 +0.052289 +0.031073 0.033634 0.028298 0.028744 0.018629 0.067805 0.009636 0.035356 0.030271 0.028634 0.015903 0.124542 0.015555 0.015869 0.032694 0.029756 0.017883 0.077823 0.029989 0.020262 0.023397 0.063422 0.038474 0.016090 0.008032 0.157380 0.039479 0.000812 0.021033 0.110401 0.037973 0.180870 +0.243673 +0.031782 0.038019 0.028434 0.030702 0.017263 0.133787 0.011664 0.036269 0.029529 0.030714 0.015863 0.028664 0.016431 0.015801 0.030227 0.028617 0.016408 0.078987 0.028197 0.020718 0.023093 0.157380 0.040327 0.014033 0.012665 0.086911 0.042206 0.000294 0.019051 0.180870 0.037783 0.204360 +0.264759 +0.032423 0.033773 0.031547 0.035054 0.015178 0.125734 0.009924 0.037101 0.031304 0.030347 0.015919 0.038001 0.015983 0.016312 0.032831 0.029386 0.018656 0.020038 0.029085 0.019962 0.021913 0.063422 0.040648 0.017389 0.007455 0.133891 0.038762 0.000338 0.019232 0.133891 0.037914 0.157380 +0.087950 +0.032082 0.036986 0.031095 0.028604 0.016295 0.236168 0.009826 0.035669 0.028397 0.029529 0.014127 0.026761 0.015766 0.016350 0.030307 0.028878 0.018187 0.138533 0.028698 0.019399 0.022292 0.110401 0.038335 0.013478 0.012714 0.063422 0.040673 0.000570 0.019966 0.086911 0.040901 0.157380 +0.599764 +0.028754 0.033914 0.032681 0.029596 0.016955 0.121584 0.011656 0.036996 0.033860 0.029332 0.016647 0.103215 0.015797 0.015616 0.029844 0.031410 0.014804 0.019109 0.027022 0.020216 0.021568 0.110401 0.038036 0.018297 0.005527 0.086911 0.037666 0.002231 0.020949 0.110401 0.039605 0.133891 +0.329638 +0.032861 0.035747 0.028397 0.033320 0.017930 0.120814 0.010919 0.035370 0.033946 0.030383 0.014401 0.074368 0.016140 0.016088 0.028999 0.040371 0.015706 0.307112 0.027985 0.020959 0.020658 0.110401 0.041570 0.013429 0.012708 0.110401 0.039902 0.000181 0.019889 0.110401 0.038078 0.133891 +0.698724 +0.029420 0.039105 0.030515 0.028624 0.016740 0.061914 0.010568 0.036919 0.028971 0.028413 0.017199 0.022043 0.015838 0.016348 0.029322 0.028599 0.018119 0.027300 0.026934 0.020294 0.021470 0.086911 0.037584 0.015875 0.013508 0.110401 0.039686 0.002254 0.019461 0.180870 0.040131 0.204360 +0 +0.032113 0.039521 0.030177 0.028292 0.016162 0.027638 0.010202 0.037398 0.029694 0.030939 0.016380 0.030373 0.015423 0.016166 0.030816 0.032793 0.017639 0.125573 0.027780 0.018867 0.020831 0.086911 0.040492 0.016506 0.009769 0.133891 0.040848 0.001586 0.020845 0.086911 0.041656 0.180870 +0.054093 +0.031047 0.034817 0.028815 0.029428 0.018062 0.051215 0.011615 0.035553 0.030121 0.028393 0.016751 0.047617 0.016129 0.016054 0.029154 0.031214 0.016809 0.159387 0.026906 0.019401 0.020604 0.086911 0.042152 0.018784 0.007609 0.063422 0.040831 0.000986 0.020999 0.086911 0.040362 0.133891 +0.185839 +0.030352 0.033421 0.028209 0.031874 0.015038 0.089249 0.009451 0.036911 0.028346 0.030538 0.015994 0.021070 0.015175 0.015992 0.029477 0.028619 0.016040 0.177277 0.028040 0.020724 0.020990 0.063422 0.038742 0.016599 0.010769 0.086911 0.040353 0.000943 0.020885 0.063422 0.041717 0.157380 +0.240888 +0.028588 0.032928 0.029159 0.029154 0.018758 0.083687 0.010763 0.037553 0.036150 0.029195 0.016348 0.060915 0.016130 0.015706 0.028530 0.032816 0.015036 0.104987 0.029029 0.021095 0.022027 0.110401 0.038838 0.015690 0.009448 0.110401 0.042242 0.000598 0.020336 0.133891 0.038386 0.180870 +0.247060 +0.030931 0.038450 0.030172 0.036912 0.017466 0.085678 0.010695 0.035296 0.028246 0.033875 0.018059 0.142283 0.015203 0.015731 0.029603 0.030752 0.015521 0.072756 0.028318 0.021092 0.019843 0.133891 0.039586 0.014313 0.009176 0.180870 0.040924 0.002086 0.019393 0.133891 0.038946 0.204360 +0.226846 +0.031686 0.035016 0.028514 0.029437 0.017672 0.125799 0.010241 0.036333 0.035389 0.028654 0.018416 0.059501 0.016105 0.015603 0.029360 0.029227 0.015695 0.343083 0.029347 0.020404 0.019705 0.110401 0.038210 0.013282 0.007904 0.110401 0.038710 0.002146 0.020088 0.063422 0.042275 0.133891 +0.662077 +0.028596 0.039717 0.037071 0.032320 0.018252 0.206643 0.011675 0.036101 0.031721 0.033832 0.018444 0.317996 0.015786 0.015812 0.033487 0.028870 0.017125 0.026874 0.028893 0.020928 0.019082 0.133891 0.039953 0.012977 0.010681 0.133891 0.039049 0.001346 0.019545 0.086911 0.039314 0.180870 +0.732076 +0.032239 0.037092 0.030015 0.034271 0.018658 0.147338 0.010779 0.037343 0.038544 0.030441 0.016144 0.062152 0.016284 0.015561 0.028259 0.038846 0.016021 0.164174 0.026505 0.019010 0.019239 0.110401 0.038249 0.017613 0.006038 0.063422 0.039842 0.000614 0.019769 0.063422 0.038088 0.133891 +0.465205 +0.031274 0.036194 0.029880 0.029865 0.016805 0.021998 0.009440 0.037505 0.029421 0.030112 0.018717 0.071619 0.016298 0.015590 0.028297 0.034284 0.015222 0.030768 0.026781 0.020064 0.020356 0.133891 0.040638 0.016170 0.005401 0.110401 0.040572 0.000161 0.018933 0.157380 0.041748 0.204360 +0.018447 +0.031804 0.035707 0.030409 0.028194 0.014854 0.099575 0.011700 0.036096 0.034024 0.030205 0.018588 0.025053 0.015480 0.016376 0.028995 0.030010 0.017971 0.059901 0.027955 0.019815 0.020142 0.063422 0.037732 0.016066 0.007962 0.110401 0.040181 0.000290 0.018957 0.086911 0.038099 0.204360 +0.093893 +0.030322 0.033783 0.029462 0.028868 0.014770 0.021727 0.009670 0.036140 0.031141 0.028485 0.015134 0.101233 0.015981 0.015756 0.038052 0.029115 0.015963 0.024398 0.030415 0.020490 0.018963 0.110401 0.041845 0.015064 0.012725 0.086911 0.037870 0.001878 0.020473 0.086911 0.041811 0.133891 +0.088758 +0.030106 0.035405 0.028386 0.033452 0.016892 0.060064 0.010959 0.036498 0.029760 0.028468 0.017414 0.096156 0.015632 0.016289 0.030913 0.028707 0.018089 0.163293 0.028500 0.019430 0.018984 0.157380 0.042161 0.013456 0.006079 0.110401 0.040905 0.002241 0.019527 0.133891 0.038792 0.204360 +0.327842 +0.028309 0.037339 0.029859 0.028764 0.017029 0.020848 0.009686 0.035775 0.029252 0.030832 0.017819 0.017079 0.015657 0.015629 0.029398 0.031154 0.016568 0.158998 0.025424 0.019749 0.022748 0.063422 0.039900 0.017517 0.005199 0.110401 0.039771 0.002080 0.020476 0.063422 0.041211 0.133891 +0.235741 +0.028966 0.036335 0.030475 0.030470 0.014251 0.102647 0.011450 0.037292 0.035162 0.037554 0.018761 0.113208 0.016271 0.016014 0.029774 0.030700 0.018537 0.040513 0.027722 0.020906 0.022988 0.063422 0.037833 0.016290 0.007493 0.110401 0.039217 0.000732 0.019056 0.133891 0.041677 0.157380 +0.405288 +0.032790 0.034967 0.028355 0.028764 0.017634 0.046243 0.010967 0.037225 0.028587 0.029139 0.017638 0.097111 0.016346 0.016287 0.032187 0.028676 0.016010 0.089410 0.027870 0.019246 0.019089 0.133891 0.040434 0.017550 0.011524 0.157380 0.037676 0.002163 0.018891 0.133891 0.041919 0.180870 +0.151938 +0.030071 0.038277 0.032923 0.028300 0.015616 0.049891 0.010653 0.035385 0.030689 0.030281 0.016704 0.333558 0.016088 0.016209 0.028807 0.028985 0.015115 0.025534 0.027827 0.020711 0.023341 0.086911 0.041380 0.016828 0.008531 0.110401 0.041115 0.001540 0.020671 0.110401 0.038161 0.133891 +0.546003 +0.031915 0.035238 0.030539 0.028235 0.014491 0.019836 0.010774 0.036737 0.028613 0.028816 0.018451 0.156826 0.016328 0.015698 0.028487 0.028860 0.017552 0.285753 0.029178 0.020420 0.023188 0.110401 0.042155 0.015329 0.013915 0.157380 0.040710 0.000595 0.020391 0.110401 0.042110 0.180870 +0.568453 +0.031750 0.035609 0.030342 0.031143 0.016284 0.214844 0.010861 0.035903 0.029347 0.030387 0.016281 0.129510 0.015765 0.016343 0.028825 0.030758 0.018153 0.038582 0.027088 0.020343 0.020538 0.086911 0.041704 0.017840 0.013374 0.086911 0.040772 0.001489 0.020295 0.110401 0.039265 0.180870 +0.403397 +0.028863 0.036289 0.028843 0.033888 0.015013 0.038152 0.010057 0.035900 0.030032 0.028387 0.014643 0.210139 0.015364 0.015943 0.038379 0.033970 0.016192 0.075959 0.029571 0.020713 0.020896 0.133891 0.039801 0.012363 0.011608 0.110401 0.037846 0.001096 0.020888 0.110401 0.040422 0.204360 +0.329191 +0.028376 0.036442 0.031799 0.028728 0.015157 0.102324 0.010324 0.036955 0.029313 0.032606 0.015023 0.087199 0.016100 0.015768 0.032501 0.029193 0.015029 0.263508 0.027054 0.020933 0.020394 0.133891 0.039537 0.015585 0.012280 0.086911 0.042084 0.000658 0.021121 0.133891 0.038661 0.157380 +0.581181 +0.031094 0.036341 0.029905 0.028898 0.014555 0.181312 0.010644 0.035373 0.029667 0.028703 0.016805 0.132315 0.015428 0.015503 0.028239 0.031149 0.014246 0.035798 0.025505 0.018997 0.020679 0.133891 0.041928 0.015305 0.013246 0.133891 0.041197 0.000886 0.020406 0.110401 0.042008 0.180870 +0.273014 +0.030823 0.032922 0.028868 0.032117 0.016272 0.091558 0.009413 0.035331 0.028673 0.031493 0.016637 0.034865 0.015687 0.016042 0.033733 0.029834 0.014690 0.051818 0.027373 0.020938 0.018994 0.063422 0.041111 0.012572 0.006484 0.180870 0.039803 0.001892 0.019038 0.157380 0.039819 0.204360 +0.017896 +0.029750 0.034832 0.031154 0.028878 0.014834 0.046147 0.009927 0.036835 0.029069 0.032382 0.014814 0.025624 0.015577 0.016347 0.028551 0.028252 0.017710 0.049856 0.029108 0.019217 0.022556 0.110401 0.042120 0.018570 0.007811 0.110401 0.040326 0.000940 0.018829 0.110401 0.037678 0.133891 +0.102241 +0.030656 0.038942 0.028284 0.028454 0.015781 0.101786 0.010641 0.036277 0.028509 0.029973 0.017964 0.147565 0.015433 0.015752 0.028597 0.029560 0.017325 0.122259 0.026860 0.018935 0.020311 0.063422 0.039417 0.017113 0.010273 0.086911 0.041591 0.000589 0.020242 0.086911 0.037810 0.157380 +0.387438 +0.032239 0.036601 0.028429 0.028741 0.018189 0.051176 0.010131 0.036514 0.033676 0.029166 0.016064 0.167772 0.015754 0.016343 0.028250 0.030440 0.015004 0.074911 0.028621 0.019199 0.019692 0.063422 0.038790 0.015085 0.011772 0.086911 0.037623 0.001200 0.020975 0.063422 0.039405 0.133891 +0.323335 +0.030233 0.035314 0.028464 0.030330 0.018160 0.105561 0.010116 0.036928 0.029559 0.028504 0.015471 0.271759 0.016340 0.015629 0.029659 0.031877 0.014885 0.065836 0.028286 0.019515 0.019049 0.180870 0.039552 0.014954 0.009818 0.086911 0.040596 0.000391 0.021118 0.086911 0.041712 0.204360 +0.508544 +0.028817 0.039070 0.030777 0.030539 0.017620 0.261291 0.011274 0.035811 0.029326 0.033854 0.017420 0.104932 0.015963 0.015510 0.028911 0.029380 0.014107 0.066549 0.028726 0.019594 0.020930 0.133891 0.042219 0.013399 0.010776 0.086911 0.037622 0.000894 0.019955 0.063422 0.038104 0.157380 +0.597201 +0.030680 0.034846 0.029956 0.029258 0.015072 0.093260 0.009443 0.036257 0.030264 0.028303 0.017234 0.129790 0.015396 0.016077 0.030194 0.033438 0.014765 0.025707 0.029802 0.020404 0.023127 0.180870 0.041845 0.016704 0.004921 0.180870 0.038396 0.000359 0.020848 0.063422 0.041175 0.204360 +0.250304 +0.030410 0.037523 0.028221 0.028978 0.018229 0.083236 0.010367 0.036328 0.028817 0.030685 0.014929 0.071863 0.015339 0.016051 0.030102 0.032836 0.016867 0.140296 0.027677 0.020166 0.022567 0.086911 0.041660 0.015099 0.013493 0.086911 0.040040 0.001526 0.021095 0.110401 0.040767 0.157380 +0.257890 +0.032283 0.038603 0.029923 0.029408 0.017635 0.068555 0.011197 0.037451 0.035340 0.028475 0.016796 0.024242 0.015208 0.015650 0.031184 0.028915 0.018086 0.110159 0.028152 0.019517 0.021987 0.063422 0.041445 0.017661 0.007279 0.180870 0.037962 0.000796 0.019557 0.157380 0.039429 0.204360 +0.077570 +0.030832 0.035714 0.029173 0.029727 0.018376 0.092455 0.009668 0.035439 0.033381 0.030982 0.015861 0.037820 0.015167 0.015575 0.028846 0.037607 0.018767 0.125861 0.026068 0.020183 0.019327 0.086911 0.037585 0.013759 0.011551 0.063422 0.040197 0.000322 0.019564 0.157380 0.039827 0.204360 +0.335422 +0.032672 0.035295 0.030842 0.029235 0.016632 0.062967 0.011402 0.035970 0.030037 0.029311 0.015273 0.043740 0.016079 0.016203 0.028475 0.029326 0.018500 0.129386 0.030010 0.020097 0.022330 0.086911 0.037933 0.018423 0.009041 0.110401 0.040881 0.002182 0.020175 0.157380 0.041090 0.180870 +0.217195 +0.032408 0.034228 0.029497 0.031356 0.017513 0.055196 0.009399 0.036874 0.030147 0.028855 0.017758 0.048423 0.015875 0.016180 0.030508 0.028534 0.017783 0.090530 0.027535 0.018926 0.020418 0.110401 0.038746 0.012827 0.011150 0.063422 0.040854 0.001604 0.020001 0.086911 0.041356 0.133891 +0.141060 +0.030809 0.036663 0.029299 0.031439 0.018465 0.065943 0.009855 0.036490 0.033371 0.031813 0.018388 0.037194 0.015673 0.015969 0.029586 0.031317 0.014624 0.122449 0.027950 0.019800 0.020685 0.133891 0.037983 0.013836 0.006483 0.063422 0.039986 0.001851 0.020367 0.063422 0.037753 0.157380 +0.242024 +0.030582 0.034743 0.028513 0.030074 0.017221 0.063400 0.010931 0.036176 0.029439 0.031500 0.015667 0.018219 0.015146 0.016253 0.028538 0.028374 0.014260 0.037123 0.028172 0.020578 0.019526 0.110401 0.038253 0.012731 0.010272 0.086911 0.039885 0.000378 0.019223 0.133891 0.042159 0.157380 +0.008140 +0.032500 0.034754 0.029421 0.028258 0.016697 0.158591 0.011246 0.036334 0.037300 0.029603 0.015853 0.185094 0.016046 0.016255 0.028410 0.035130 0.015971 0.169797 0.026476 0.020438 0.019027 0.110401 0.039454 0.017375 0.009865 0.157380 0.040092 0.002036 0.019674 0.110401 0.041634 0.204360 +0.625126 +0.032470 0.035712 0.028425 0.028351 0.015209 0.077149 0.011539 0.036788 0.029250 0.037573 0.016334 0.040084 0.016345 0.016003 0.030110 0.035432 0.014655 0.099794 0.027881 0.020471 0.020615 0.110401 0.039585 0.015624 0.006075 0.133891 0.039682 0.000633 0.019056 0.063422 0.041117 0.157380 +0.259593 +0.028549 0.033213 0.028699 0.030562 0.016169 0.048023 0.010561 0.035459 0.030459 0.034804 0.015331 0.166375 0.015621 0.016024 0.030298 0.028798 0.016050 0.045383 0.028966 0.019280 0.022811 0.157380 0.041531 0.017630 0.012334 0.180870 0.041822 0.000005 0.019866 0.133891 0.037770 0.204360 +0.212651 +0.028608 0.037681 0.028750 0.029649 0.015224 0.034016 0.009750 0.035270 0.032993 0.028750 0.015283 0.045283 0.016267 0.015513 0.028298 0.029832 0.017165 0.054375 0.028544 0.020613 0.023221 0.086911 0.039574 0.015921 0.013543 0.063422 0.038113 0.001429 0.020294 0.086911 0.039929 0.133891 +0.024870 +0.029671 0.037809 0.035005 0.030432 0.016349 0.024519 0.011298 0.036201 0.028989 0.029855 0.016036 0.175456 0.015173 0.015652 0.031130 0.029175 0.017585 0.041650 0.027477 0.019773 0.020700 0.110401 0.038511 0.016631 0.013527 0.063422 0.040995 0.001003 0.021000 0.086911 0.038517 0.133891 +0.183156 +0.028923 0.039808 0.028731 0.028339 0.017348 0.174468 0.009696 0.037273 0.032115 0.029486 0.017204 0.096984 0.015482 0.016009 0.032900 0.029007 0.018327 0.035733 0.028185 0.019584 0.019630 0.110401 0.041834 0.018752 0.006330 0.110401 0.039525 0.001984 0.020024 0.110401 0.041341 0.133891 +0.442316 +0.028270 0.036469 0.030950 0.028348 0.016358 0.043427 0.011163 0.037141 0.033459 0.036697 0.017945 0.117106 0.015958 0.015835 0.028338 0.031005 0.014592 0.363665 0.026221 0.020410 0.022379 0.063422 0.038138 0.012535 0.009952 0.063422 0.038628 0.002033 0.020011 0.086911 0.039386 0.180870 +0.721550 +0.031551 0.034845 0.028679 0.029103 0.016443 0.089459 0.011114 0.036644 0.028386 0.030378 0.016970 0.206935 0.016083 0.015593 0.029045 0.037273 0.016555 0.103728 0.028550 0.020035 0.020737 0.063422 0.039512 0.012745 0.004985 0.133891 0.041122 0.000201 0.018848 0.110401 0.038820 0.157380 +0.555268 +0.029603 0.035135 0.031546 0.028490 0.014558 0.117367 0.010356 0.037292 0.031597 0.028421 0.016238 0.087558 0.015044 0.016228 0.033320 0.030778 0.016143 0.101571 0.029566 0.020974 0.019401 0.063422 0.040142 0.013590 0.007443 0.063422 0.042123 0.001207 0.019978 0.063422 0.037705 0.133891 +0.258945 +0.029699 0.039534 0.029143 0.031725 0.018228 0.098857 0.009656 0.036239 0.035194 0.030789 0.014538 0.100431 0.016305 0.016368 0.030160 0.030342 0.018282 0.271310 0.028143 0.019730 0.023044 0.133891 0.040574 0.012946 0.005413 0.110401 0.039159 0.000473 0.021104 0.110401 0.041446 0.157380 +0.619575 +0.030933 0.035739 0.032864 0.031580 0.016049 0.192831 0.009628 0.035373 0.028668 0.028499 0.017677 0.195543 0.015117 0.015525 0.035010 0.029233 0.017382 0.039466 0.029193 0.019275 0.021885 0.086911 0.039417 0.014073 0.011382 0.157380 0.041884 0.001228 0.020547 0.110401 0.039396 0.204360 +0.380372 +0.032128 0.037187 0.031094 0.029536 0.015289 0.059872 0.011495 0.035772 0.032775 0.028651 0.014946 0.040791 0.016390 0.016155 0.028921 0.028905 0.016227 0.030928 0.028367 0.018912 0.022547 0.157380 0.040689 0.016603 0.010119 0.157380 0.041627 0.000270 0.020024 0.086911 0.041560 0.204360 +0.012949 +0.031804 0.036507 0.028892 0.033333 0.014347 0.086043 0.011691 0.037436 0.029097 0.032044 0.016017 0.034114 0.015894 0.016030 0.030008 0.028926 0.017907 0.029673 0.025643 0.019359 0.022919 0.110401 0.038041 0.015230 0.013740 0.063422 0.037799 0.000489 0.020980 0.157380 0.039126 0.204360 +0.015940 +0.032115 0.039920 0.030646 0.029921 0.015400 0.085064 0.009406 0.036935 0.030131 0.031675 0.017609 0.116435 0.015822 0.015721 0.029821 0.031057 0.015235 0.091871 0.027563 0.021022 0.021953 0.133891 0.041939 0.018291 0.007885 0.086911 0.042224 0.000402 0.019481 0.157380 0.038215 0.180870 +0.325662 +0.028338 0.037730 0.031135 0.028654 0.018331 0.016474 0.010294 0.035913 0.029054 0.028710 0.015261 0.234928 0.015480 0.016139 0.035003 0.028768 0.016263 0.020030 0.027923 0.020444 0.020372 0.110401 0.040672 0.017412 0.010830 0.086911 0.041995 0.000659 0.020503 0.086911 0.038166 0.133891 +0.288786 +0.028387 0.038120 0.028514 0.030337 0.015383 0.079752 0.009611 0.037568 0.028749 0.028579 0.014404 0.222640 0.015889 0.015712 0.030357 0.033505 0.018454 0.076093 0.027438 0.020793 0.019631 0.086911 0.038998 0.018118 0.013150 0.086911 0.039560 0.001877 0.020754 0.133891 0.039277 0.157380 +0.417367 +0.028249 0.037366 0.029847 0.029452 0.017486 0.019509 0.010616 0.037231 0.032241 0.030775 0.016403 0.295602 0.015251 0.015989 0.028882 0.029060 0.015424 0.050049 0.029864 0.020972 0.022346 0.133891 0.040533 0.014462 0.009110 0.086911 0.037974 0.000944 0.019934 0.110401 0.042206 0.204360 +0.438051 +0.032864 0.038321 0.029525 0.029673 0.016073 0.052821 0.011401 0.035376 0.029525 0.029468 0.016006 0.021045 0.015970 0.015876 0.032469 0.034326 0.016868 0.140324 0.028582 0.019973 0.019154 0.086911 0.038723 0.017555 0.009583 0.063422 0.042032 0.000796 0.020498 0.063422 0.041063 0.133891 +0.194927 +0.032194 0.033062 0.031004 0.034477 0.015511 0.020289 0.009429 0.036658 0.032181 0.028643 0.016260 0.049267 0.015994 0.016428 0.028310 0.030977 0.017794 0.034657 0.030035 0.019842 0.020849 0.157380 0.039011 0.014412 0.009269 0.157380 0.038579 0.000014 0.018922 0.063422 0.040407 0.180870 +0.016488 +0.031850 0.038826 0.031698 0.030329 0.015248 0.033427 0.010155 0.035269 0.028872 0.029093 0.016045 0.172667 0.016276 0.016441 0.029406 0.029160 0.016026 0.042404 0.026614 0.020244 0.022813 0.086911 0.042005 0.015247 0.006220 0.063422 0.042221 0.000238 0.019226 0.086911 0.039561 0.180870 +0.193631 +0.030174 0.038037 0.029362 0.028998 0.018033 0.078665 0.010620 0.037207 0.029383 0.030675 0.014995 0.034455 0.015211 0.016055 0.028298 0.029109 0.017070 0.096861 0.029312 0.019349 0.020487 0.180870 0.039661 0.015543 0.005836 0.157380 0.041040 0.000749 0.021060 0.063422 0.041477 0.204360 +0.185701 +0.032131 0.037387 0.029132 0.028598 0.014675 0.156443 0.011354 0.037148 0.033171 0.033740 0.017854 0.114799 0.015352 0.015744 0.029932 0.031470 0.018052 0.255145 0.029092 0.019345 0.021517 0.133891 0.041046 0.014034 0.008858 0.180870 0.039896 0.000533 0.019357 0.157380 0.041235 0.204360 +0.607750 +0.030069 0.033648 0.031549 0.028399 0.015228 0.038592 0.010726 0.035438 0.029346 0.028422 0.017460 0.257518 0.015772 0.015614 0.031015 0.030570 0.018706 0.200572 0.029506 0.020944 0.022368 0.133891 0.040860 0.013730 0.006453 0.133891 0.040626 0.001324 0.019659 0.063422 0.037595 0.157380 +0.709069 +0.032340 0.037077 0.029768 0.028433 0.016878 0.032599 0.009819 0.035404 0.029102 0.034265 0.017677 0.083287 0.015230 0.015946 0.028369 0.028548 0.017923 0.028758 0.028740 0.020646 0.022599 0.133891 0.039946 0.017851 0.012399 0.133891 0.038343 0.000767 0.019494 0.086911 0.038432 0.157380 +0.085067 +0.028879 0.034251 0.029282 0.029389 0.018603 0.054429 0.010398 0.037391 0.029469 0.028677 0.016179 0.067221 0.016225 0.015902 0.029859 0.028743 0.018235 0.152143 0.030594 0.019459 0.022698 0.180870 0.038874 0.012729 0.009584 0.063422 0.038525 0.001715 0.019607 0.157380 0.041839 0.204360 +0.231160 +0.031982 0.037248 0.029620 0.028345 0.015242 0.082813 0.010733 0.036197 0.030909 0.028236 0.014396 0.046380 0.016433 0.015721 0.032432 0.030808 0.016980 0.415653 0.027441 0.020142 0.023015 0.110401 0.040863 0.017613 0.010061 0.086911 0.038178 0.000186 0.019547 0.180870 0.039946 0.204360 +0.750551 +0.030085 0.038691 0.028700 0.028199 0.015881 0.051671 0.009573 0.036538 0.029667 0.032289 0.014431 0.036387 0.015635 0.015859 0.031057 0.029004 0.017621 0.076713 0.028598 0.020657 0.022798 0.180870 0.041112 0.012483 0.013162 0.133891 0.041652 0.000023 0.019803 0.086911 0.038551 0.204360 +0.072093 +0.031737 0.038126 0.030323 0.029306 0.017482 0.039128 0.011011 0.035656 0.032374 0.029098 0.014871 0.047777 0.015693 0.016418 0.030574 0.028302 0.016359 0.049015 0.028730 0.019401 0.020553 0.063422 0.041454 0.012548 0.008338 0.086911 0.042035 0.000568 0.019396 0.133891 0.039478 0.157380 +0.015617 +0.032712 0.039455 0.029660 0.032705 0.014209 0.032867 0.011080 0.035352 0.028574 0.032325 0.018583 0.024344 0.016245 0.015871 0.032265 0.030560 0.014681 0.221864 0.028304 0.021123 0.022506 0.063422 0.040102 0.018025 0.012365 0.086911 0.040725 0.000491 0.019781 0.086911 0.041196 0.133891 +0.224231 +0.032691 0.039022 0.030949 0.029860 0.017595 0.019510 0.010247 0.035936 0.032986 0.039115 0.017166 0.077707 0.015329 0.015593 0.031398 0.032174 0.015631 0.017447 0.027831 0.020512 0.020529 0.180870 0.038692 0.013910 0.004926 0.180870 0.041887 0.000510 0.019021 0.180870 0.039440 0.204360 +0.044766 +0.030185 0.033968 0.034047 0.028768 0.015139 0.026219 0.009926 0.035739 0.032277 0.028224 0.015060 0.084467 0.016194 0.015737 0.028521 0.036265 0.018223 0.032516 0.027187 0.021051 0.021760 0.180870 0.039164 0.015051 0.010252 0.110401 0.041292 0.001211 0.019510 0.180870 0.039822 0.204360 +0.066875 +0.029986 0.039444 0.030909 0.030587 0.017532 0.054998 0.011319 0.035506 0.030346 0.030501 0.017844 0.055036 0.015546 0.015881 0.029342 0.030635 0.018277 0.199962 0.027598 0.019843 0.021236 0.063422 0.037803 0.018193 0.006463 0.086911 0.042261 0.001245 0.020264 0.110401 0.040090 0.157380 +0.321739 +0.029933 0.033565 0.033455 0.029266 0.016760 0.043419 0.011475 0.035873 0.028655 0.028649 0.015931 0.080957 0.015590 0.015657 0.031302 0.031782 0.017821 0.067845 0.028620 0.020393 0.023064 0.133891 0.041956 0.015071 0.012509 0.110401 0.040817 0.002118 0.019442 0.110401 0.039658 0.157380 +0.135883 +0.028793 0.039243 0.031910 0.031089 0.016673 0.046288 0.011662 0.036011 0.029454 0.029178 0.018665 0.080317 0.015220 0.016165 0.029256 0.030742 0.017252 0.078091 0.028250 0.020595 0.022942 0.133891 0.039508 0.017435 0.005169 0.110401 0.038150 0.002000 0.020053 0.110401 0.041407 0.180870 +0.172155 +0.030558 0.039259 0.032943 0.032744 0.015520 0.072765 0.010838 0.036324 0.030073 0.038178 0.018483 0.135149 0.016274 0.016404 0.030186 0.030363 0.014130 0.110711 0.027766 0.020970 0.021245 0.110401 0.039373 0.013599 0.007091 0.063422 0.037989 0.000555 0.020173 0.110401 0.040119 0.204360 +0.316650 +0.030999 0.035894 0.030134 0.028202 0.014929 0.038235 0.011246 0.036241 0.029366 0.029215 0.015674 0.022581 0.016380 0.015881 0.032402 0.034219 0.015076 0.037931 0.030121 0.020263 0.021196 0.063422 0.040320 0.017968 0.007946 0.086911 0.038436 0.000834 0.019645 0.110401 0.039747 0.157380 +0 +0.032409 0.034503 0.034738 0.028707 0.016647 0.039486 0.011217 0.035522 0.028297 0.031415 0.017515 0.328814 0.016391 0.016252 0.030839 0.030493 0.016950 0.026284 0.027208 0.019935 0.021324 0.086911 0.040373 0.016068 0.011114 0.063422 0.039328 0.001911 0.020747 0.063422 0.038258 0.180870 +0.483858 +0.032492 0.035389 0.028756 0.032067 0.016182 0.055695 0.011369 0.035874 0.034029 0.028770 0.017165 0.089458 0.015729 0.015732 0.029779 0.028900 0.014152 0.025013 0.026891 0.019619 0.018904 0.110401 0.040660 0.014227 0.007813 0.086911 0.039370 0.001704 0.019200 0.110401 0.040349 0.157380 +0.067171 +0.029834 0.033982 0.028276 0.028407 0.015507 0.048101 0.010272 0.036475 0.031733 0.028714 0.015231 0.103439 0.015572 0.016391 0.029136 0.028415 0.018696 0.128353 0.027922 0.021060 0.022934 0.110401 0.038880 0.014854 0.008452 0.086911 0.041945 0.001706 0.019352 0.086911 0.040496 0.180870 +0.257780 +0.029120 0.037156 0.028502 0.028797 0.016621 0.137029 0.011374 0.035514 0.033404 0.028755 0.018191 0.143468 0.016097 0.015885 0.029433 0.028373 0.015544 0.024811 0.027260 0.021126 0.022175 0.157380 0.038284 0.014372 0.012909 0.180870 0.041388 0.000923 0.019171 0.157380 0.039620 0.204360 +0.353213 +0.031672 0.038313 0.034788 0.032524 0.015439 0.171482 0.009735 0.037155 0.029975 0.029348 0.016530 0.026895 0.016323 0.015808 0.031074 0.030807 0.015201 0.045915 0.028657 0.019229 0.021327 0.086911 0.039894 0.015816 0.005794 0.110401 0.037717 0.001030 0.019297 0.133891 0.038815 0.157380 +0.169072 +0.032304 0.038071 0.029218 0.028432 0.018396 0.057952 0.010589 0.036201 0.033140 0.030289 0.014282 0.017140 0.015689 0.015504 0.029704 0.028189 0.018604 0.041058 0.030747 0.020872 0.020340 0.086911 0.038177 0.013453 0.008471 0.157380 0.039402 0.002125 0.019729 0.063422 0.038657 0.180870 +0.007965 +0.030933 0.034755 0.028229 0.028681 0.016851 0.075122 0.010898 0.037519 0.031000 0.029181 0.014627 0.037712 0.015033 0.015507 0.030335 0.034319 0.015658 0.018457 0.029311 0.020070 0.019083 0.086911 0.038127 0.017628 0.005016 0.086911 0.041796 0.001711 0.020229 0.110401 0.041670 0.133891 +0.077501 +0.032809 0.037390 0.028494 0.028558 0.017232 0.076778 0.010594 0.036365 0.033321 0.029236 0.017429 0.034153 0.015057 0.016418 0.032591 0.041146 0.018171 0.055952 0.030695 0.019561 0.020496 0.063422 0.041874 0.016876 0.005639 0.086911 0.038935 0.000253 0.020029 0.086911 0.040920 0.133891 +0.084379 +0.028397 0.038894 0.029469 0.028523 0.018108 0.025543 0.010271 0.037293 0.029087 0.029969 0.018256 0.162942 0.016166 0.015895 0.029174 0.037817 0.016182 0.081930 0.029289 0.020237 0.023047 0.086911 0.039198 0.016633 0.011934 0.157380 0.041031 0.000059 0.020195 0.063422 0.037922 0.204360 +0.252938 +0.032734 0.034309 0.030637 0.033005 0.015765 0.043222 0.010342 0.035702 0.032577 0.030248 0.014263 0.053031 0.015765 0.015562 0.030706 0.034425 0.018699 0.213025 0.027236 0.020652 0.019132 0.110401 0.039977 0.012355 0.012231 0.086911 0.041142 0.001086 0.019368 0.110401 0.037896 0.157380 +0.347195 +0.032838 0.037073 0.029776 0.028567 0.014802 0.114863 0.009729 0.035276 0.032226 0.032887 0.018140 0.126203 0.015133 0.015826 0.028188 0.031343 0.017441 0.065356 0.027496 0.020957 0.023252 0.110401 0.038948 0.018053 0.005934 0.110401 0.038120 0.002235 0.019741 0.086911 0.041969 0.180870 +0.375442 +0.032763 0.033660 0.029470 0.028409 0.016235 0.034124 0.011126 0.036384 0.030061 0.030120 0.017989 0.114743 0.015900 0.015606 0.028467 0.028396 0.017746 0.145279 0.028273 0.019705 0.023355 0.133891 0.040389 0.013920 0.005034 0.086911 0.041191 0.000875 0.019078 0.157380 0.038726 0.180870 +0.299871 +0.032570 0.034229 0.028754 0.030085 0.017159 0.032385 0.011508 0.036155 0.029507 0.028367 0.015488 0.092587 0.015466 0.015728 0.032001 0.030535 0.016391 0.224726 0.026989 0.018992 0.022343 0.110401 0.038984 0.012247 0.005929 0.110401 0.040684 0.001237 0.020233 0.133891 0.041718 0.157380 +0.409920 +0.029864 0.036145 0.033059 0.032736 0.014604 0.139092 0.011140 0.035309 0.029828 0.028691 0.016489 0.102046 0.015748 0.016343 0.029666 0.028423 0.018248 0.030005 0.027379 0.019603 0.022053 0.063422 0.038638 0.016459 0.012311 0.110401 0.041961 0.000377 0.019101 0.086911 0.040889 0.133891 +0.303142 +0.031566 0.036494 0.029472 0.038146 0.018437 0.062573 0.010827 0.037348 0.033409 0.030040 0.017727 0.050732 0.015315 0.016281 0.031371 0.029796 0.018785 0.078925 0.027819 0.019297 0.022619 0.110401 0.039030 0.015041 0.010924 0.086911 0.041837 0.000086 0.021068 0.086911 0.039297 0.204360 +0.133612 +0.028521 0.037072 0.030150 0.028428 0.014165 0.035800 0.009664 0.035306 0.030639 0.028527 0.015046 0.018843 0.015201 0.016193 0.032533 0.036262 0.015525 0.037185 0.027223 0.020510 0.022297 0.110401 0.042270 0.014967 0.005055 0.180870 0.041644 0.001047 0.019573 0.063422 0.037827 0.204360 +0 +0.029766 0.038235 0.035266 0.029183 0.016588 0.062325 0.009747 0.035513 0.028879 0.031019 0.016311 0.291231 0.015356 0.016000 0.028650 0.029579 0.014778 0.067061 0.028816 0.018838 0.021725 0.157380 0.042105 0.016832 0.011007 0.157380 0.039003 0.000168 0.020321 0.110401 0.040447 0.180870 +0.576278 +0.030239 0.036726 0.028447 0.029829 0.016421 0.222728 0.010120 0.037218 0.028440 0.029719 0.014661 0.056961 0.015350 0.016040 0.031637 0.028274 0.016735 0.133784 0.027333 0.020368 0.022357 0.133891 0.038721 0.016949 0.014032 0.133891 0.038234 0.002030 0.019627 0.133891 0.038894 0.157380 +0.579391 +0.032043 0.038678 0.030167 0.034123 0.018480 0.027148 0.009787 0.036889 0.030126 0.029962 0.015675 0.052803 0.016017 0.016399 0.028256 0.029650 0.014094 0.089141 0.028653 0.021071 0.020378 0.086911 0.039696 0.014181 0.010460 0.086911 0.037871 0.001300 0.019249 0.063422 0.040957 0.133891 +0.048888 +0.031502 0.035218 0.031639 0.030159 0.016606 0.046146 0.010997 0.035439 0.029565 0.030783 0.018607 0.069315 0.015072 0.016066 0.029817 0.028307 0.015487 0.050832 0.026592 0.020862 0.022796 0.110401 0.038171 0.016895 0.006253 0.063422 0.039726 0.001769 0.020827 0.110401 0.042238 0.133891 +0.194560 +0.029980 0.036564 0.031454 0.028698 0.016778 0.170046 0.010548 0.037307 0.028553 0.033946 0.016312 0.097649 0.015633 0.016407 0.030609 0.032867 0.014646 0.028052 0.029435 0.019818 0.021819 0.133891 0.041047 0.017059 0.006855 0.133891 0.037740 0.001922 0.020188 0.086911 0.038570 0.204360 +0.351569 +0.029102 0.036900 0.031524 0.029010 0.015290 0.139032 0.011531 0.037383 0.028431 0.030247 0.016023 0.079858 0.015220 0.016193 0.030459 0.029175 0.014540 0.033494 0.026560 0.019402 0.019708 0.133891 0.042010 0.016996 0.012171 0.086911 0.039781 0.002185 0.019459 0.086911 0.038978 0.180870 +0.211250 +0.028453 0.034757 0.029459 0.033132 0.017747 0.091099 0.011317 0.036722 0.029988 0.033543 0.014608 0.057294 0.016433 0.015810 0.034171 0.028733 0.018528 0.177036 0.025285 0.019865 0.022928 0.086911 0.038209 0.016469 0.005018 0.110401 0.041775 0.002127 0.020910 0.063422 0.039032 0.180870 +0.389089 +0.031823 0.038450 0.029811 0.029712 0.017381 0.045794 0.010735 0.037316 0.029860 0.033749 0.014771 0.079578 0.016023 0.016282 0.028685 0.028564 0.016951 0.057905 0.029090 0.018792 0.023476 0.110401 0.040045 0.013304 0.014038 0.110401 0.040758 0.001785 0.020905 0.110401 0.041742 0.204360 +0.025001 +0.031270 0.037537 0.028641 0.028643 0.015455 0.038917 0.010977 0.036511 0.028784 0.029123 0.014619 0.151461 0.015866 0.016041 0.028304 0.029525 0.014691 0.103980 0.029625 0.020652 0.020774 0.086911 0.042274 0.015625 0.010502 0.157380 0.039464 0.001843 0.020500 0.086911 0.042103 0.180870 +0.234071 +0.028219 0.039222 0.031954 0.029639 0.017617 0.063932 0.010159 0.035858 0.032413 0.029432 0.014464 0.027852 0.015301 0.016428 0.031721 0.030248 0.015342 0.054870 0.027822 0.019641 0.019831 0.063422 0.039289 0.017846 0.010155 0.110401 0.040128 0.001152 0.019997 0.063422 0.039038 0.157380 +0.022898 +0.032124 0.035221 0.029619 0.028471 0.018362 0.068623 0.010872 0.037140 0.036814 0.034250 0.018496 0.060985 0.015854 0.015504 0.029578 0.029807 0.017354 0.110645 0.030701 0.019452 0.022256 0.063422 0.040869 0.011837 0.008199 0.157380 0.041207 0.001011 0.019103 0.180870 0.042114 0.204360 +0.250141 +0.030176 0.034013 0.035216 0.028277 0.015292 0.026642 0.010235 0.035433 0.028560 0.029636 0.014545 0.101513 0.015574 0.015970 0.028316 0.030172 0.018107 0.155706 0.027265 0.018866 0.019307 0.086911 0.039143 0.013206 0.007615 0.110401 0.037723 0.000553 0.020064 0.063422 0.039461 0.133891 +0.326636 +0.032047 0.038990 0.030082 0.029186 0.017318 0.028823 0.010200 0.036268 0.031044 0.030395 0.016724 0.043802 0.016345 0.015856 0.028419 0.029357 0.017918 0.059722 0.029141 0.020295 0.019755 0.086911 0.041225 0.016898 0.006617 0.063422 0.037730 0.000449 0.020878 0.086911 0.041971 0.133891 +0.034624 +0.031099 0.038404 0.029412 0.028432 0.017192 0.139958 0.009822 0.036534 0.028506 0.028450 0.014814 0.073930 0.016360 0.016046 0.029425 0.031297 0.014444 0.041435 0.026855 0.020107 0.019067 0.063422 0.040477 0.013519 0.013482 0.110401 0.039296 0.002134 0.020991 0.086911 0.037913 0.133891 +0.279673 +0.030160 0.036656 0.028192 0.028215 0.016289 0.036594 0.010210 0.037149 0.029736 0.028537 0.018569 0.043463 0.015299 0.015800 0.033409 0.031830 0.017834 0.330357 0.028680 0.018814 0.023089 0.157380 0.041851 0.015709 0.007217 0.180870 0.038391 0.000464 0.019529 0.133891 0.040585 0.204360 +0.520434 +0.029547 0.039570 0.028700 0.029718 0.017641 0.021454 0.009585 0.036487 0.037701 0.034607 0.017928 0.158012 0.015185 0.015651 0.030094 0.029432 0.016829 0.022981 0.027843 0.021095 0.018901 0.133891 0.040830 0.017318 0.008767 0.086911 0.039174 0.000174 0.019072 0.086911 0.041020 0.204360 +0.050632 +0.030698 0.033622 0.032315 0.029315 0.015557 0.020724 0.009505 0.036623 0.030877 0.029597 0.014608 0.050082 0.015982 0.016265 0.029277 0.028528 0.016622 0.017756 0.029303 0.019220 0.020994 0.063422 0.038175 0.016881 0.012928 0.063422 0.042038 0.001598 0.019126 0.180870 0.038064 0.204360 +0 +0.031079 0.038045 0.029285 0.029520 0.015906 0.084890 0.009846 0.035838 0.037405 0.034079 0.017072 0.033483 0.015169 0.016160 0.028576 0.028444 0.018131 0.082451 0.028339 0.019423 0.023052 0.086911 0.040370 0.014805 0.011403 0.086911 0.039804 0.001282 0.020344 0.086911 0.040003 0.204360 +0.039492 +0.032620 0.035621 0.028496 0.032241 0.014346 0.058019 0.009427 0.037065 0.028746 0.029515 0.018053 0.099520 0.015512 0.015938 0.030156 0.028353 0.017282 0.086487 0.027967 0.019597 0.022980 0.110401 0.038945 0.016093 0.006380 0.086911 0.039014 0.001371 0.019193 0.086911 0.038204 0.133891 +0.232281 +0.032501 0.035072 0.028572 0.030184 0.016244 0.041331 0.011296 0.035914 0.029814 0.031011 0.015694 0.359435 0.015035 0.016209 0.028631 0.030545 0.018213 0.110794 0.027115 0.020587 0.019816 0.110401 0.039638 0.013114 0.008208 0.063422 0.041671 0.001538 0.019266 0.133891 0.039021 0.180870 +0.710973 +0.031309 0.037404 0.033831 0.031767 0.014694 0.127824 0.011394 0.037122 0.033625 0.028431 0.015601 0.104208 0.015284 0.015597 0.029037 0.028380 0.017143 0.082389 0.028318 0.019551 0.022336 0.157380 0.039921 0.018581 0.011531 0.133891 0.039507 0.001048 0.020440 0.110401 0.039737 0.180870 +0.298571 +0.030480 0.038570 0.028949 0.033091 0.017414 0.028643 0.010703 0.036903 0.028607 0.028261 0.017416 0.018525 0.015370 0.016041 0.029778 0.028427 0.016492 0.071051 0.027414 0.019113 0.019191 0.086911 0.040977 0.016786 0.008569 0.110401 0.037963 0.000911 0.020741 0.063422 0.040253 0.204360 +0 +0.032177 0.039138 0.028240 0.029608 0.016973 0.158435 0.010758 0.036002 0.030949 0.030174 0.018445 0.095951 0.015087 0.015630 0.030163 0.029202 0.018706 0.050790 0.027430 0.021082 0.022254 0.110401 0.041848 0.016925 0.008338 0.086911 0.041168 0.000771 0.019088 0.110401 0.041838 0.133891 +0.342271 +0.029366 0.035448 0.029143 0.028457 0.018462 0.025271 0.011074 0.035790 0.032273 0.029913 0.014134 0.026745 0.015199 0.015517 0.028751 0.028976 0.014125 0.082662 0.026251 0.019989 0.019648 0.086911 0.039989 0.013972 0.011814 0.133891 0.040139 0.002275 0.020183 0.133891 0.038704 0.157380 +0.068965 +0.031173 0.039701 0.028575 0.028676 0.017018 0.149464 0.010972 0.036124 0.028490 0.028780 0.016278 0.246097 0.015104 0.016084 0.028286 0.031957 0.018040 0.039900 0.025830 0.020368 0.020176 0.086911 0.041884 0.017480 0.009802 0.110401 0.040560 0.000150 0.019535 0.063422 0.039714 0.157380 +0.479421 +0.030116 0.036980 0.028412 0.029716 0.016010 0.138059 0.010300 0.037352 0.028213 0.031582 0.018731 0.046979 0.015251 0.016092 0.029659 0.028254 0.015467 0.028476 0.028331 0.019767 0.023330 0.063422 0.040212 0.015791 0.010981 0.110401 0.040129 0.000814 0.019581 0.086911 0.038759 0.204360 +0.298212 +0.030935 0.033381 0.030181 0.029109 0.015694 0.133816 0.011378 0.036630 0.028268 0.029797 0.015296 0.368979 0.015768 0.016331 0.031095 0.029801 0.015197 0.062890 0.029735 0.019602 0.022119 0.110401 0.040193 0.016417 0.009950 0.086911 0.038098 0.001685 0.020000 0.063422 0.041563 0.133891 +0.758514 +0.032055 0.036848 0.030204 0.028234 0.018542 0.160949 0.009438 0.037538 0.028878 0.030448 0.017609 0.080465 0.015403 0.016000 0.028573 0.028268 0.017563 0.052442 0.027185 0.020417 0.020003 0.110401 0.040916 0.016066 0.013466 0.133891 0.039859 0.000697 0.020835 0.133891 0.038720 0.157380 +0.378939 +0.031416 0.039922 0.029548 0.029482 0.017193 0.059669 0.011570 0.035731 0.030102 0.028510 0.014267 0.054294 0.015578 0.016130 0.031022 0.028787 0.015974 0.037589 0.028140 0.019778 0.021548 0.110401 0.038210 0.016290 0.009963 0.180870 0.039197 0.002346 0.019087 0.110401 0.042229 0.204360 +0.052770 +0.030018 0.037633 0.028751 0.029450 0.018149 0.034134 0.010485 0.037034 0.029232 0.028528 0.014183 0.034054 0.015928 0.016313 0.031963 0.028289 0.016868 0.171009 0.025817 0.020056 0.021064 0.063422 0.040618 0.014521 0.013253 0.063422 0.039856 0.000319 0.020613 0.133891 0.040684 0.157380 +0.212118 +0.031156 0.035128 0.029928 0.032349 0.017794 0.143045 0.010168 0.037306 0.031648 0.032591 0.015271 0.034185 0.015805 0.015537 0.029065 0.028201 0.015469 0.050597 0.026061 0.020268 0.020470 0.110401 0.041335 0.012109 0.004842 0.157380 0.041773 0.001934 0.019726 0.133891 0.040767 0.204360 +0.364437 +0.028708 0.035379 0.031275 0.028236 0.018499 0.024549 0.010669 0.035257 0.029687 0.028627 0.015862 0.099354 0.016155 0.015584 0.030917 0.029270 0.015264 0.043596 0.026347 0.020508 0.020477 0.110401 0.039613 0.018471 0.012725 0.063422 0.041665 0.001602 0.020349 0.086911 0.040592 0.157380 +0.062210 +0.029086 0.032926 0.028428 0.029066 0.016442 0.109717 0.011269 0.035603 0.031288 0.028447 0.014818 0.064825 0.016342 0.016054 0.031687 0.033200 0.015620 0.081227 0.029657 0.020465 0.021619 0.133891 0.038965 0.011908 0.012240 0.133891 0.039532 0.000882 0.021121 0.063422 0.039773 0.157380 +0.290457 +0.029583 0.036464 0.028436 0.030054 0.015807 0.035229 0.010213 0.037562 0.030142 0.031888 0.015319 0.120575 0.016253 0.015652 0.030672 0.028283 0.017320 0.050209 0.026215 0.020607 0.020705 0.157380 0.041825 0.014913 0.006073 0.063422 0.040944 0.000253 0.019840 0.133891 0.038842 0.180870 +0.132343 +0.031933 0.038842 0.028808 0.028192 0.015021 0.390656 0.009880 0.035263 0.028466 0.029649 0.015334 0.054707 0.016403 0.016153 0.032896 0.028395 0.016766 0.031774 0.027470 0.020871 0.021084 0.086911 0.040966 0.014609 0.005989 0.063422 0.040779 0.001561 0.020173 0.063422 0.041666 0.157380 +0.477709 +0.031845 0.035145 0.030364 0.028848 0.014898 0.120067 0.011567 0.035547 0.032800 0.031909 0.015380 0.093870 0.016091 0.016330 0.030522 0.030388 0.014257 0.046662 0.027911 0.019689 0.019074 0.063422 0.039539 0.013701 0.010678 0.110401 0.038118 0.001076 0.020066 0.133891 0.040361 0.157380 +0.301379 +0.030416 0.034204 0.031996 0.030282 0.016943 0.029912 0.010182 0.036318 0.030445 0.028574 0.015045 0.057954 0.015878 0.016022 0.028893 0.028986 0.018617 0.241157 0.028865 0.020108 0.021933 0.157380 0.041960 0.013116 0.009442 0.110401 0.037753 0.000622 0.020029 0.133891 0.040668 0.180870 +0.355437 +0.031195 0.033393 0.033210 0.030625 0.014649 0.091619 0.009937 0.035838 0.029830 0.029359 0.014672 0.165579 0.016187 0.015514 0.028433 0.028195 0.015356 0.029890 0.027933 0.019449 0.020918 0.110401 0.039681 0.012540 0.009224 0.063422 0.039327 0.001495 0.021029 0.063422 0.039470 0.133891 +0.272044 +0.030761 0.035295 0.028656 0.030321 0.016844 0.136930 0.010671 0.036616 0.028455 0.032264 0.015069 0.173463 0.015618 0.016377 0.032508 0.028205 0.017295 0.031625 0.025959 0.019565 0.022256 0.133891 0.039533 0.017547 0.011474 0.157380 0.041219 0.001545 0.019634 0.086911 0.037793 0.180870 +0.402946 +0.032103 0.039761 0.029480 0.029570 0.015007 0.071509 0.011695 0.036368 0.030141 0.029348 0.016047 0.035022 0.015478 0.016046 0.028367 0.029572 0.017868 0.063980 0.027734 0.020455 0.021033 0.133891 0.038425 0.013455 0.008160 0.133891 0.040863 0.000527 0.020033 0.157380 0.037734 0.180870 +0.142573 +0.029719 0.037176 0.031333 0.031201 0.016128 0.020326 0.010611 0.037514 0.028427 0.029855 0.016411 0.036765 0.015517 0.015721 0.028837 0.031279 0.017169 0.048381 0.030201 0.019576 0.019579 0.063422 0.039410 0.015336 0.012336 0.110401 0.039608 0.001354 0.020993 0.133891 0.037752 0.180870 +0 +0.031233 0.035330 0.028337 0.029239 0.015654 0.067516 0.009716 0.035397 0.029519 0.036097 0.017050 0.105988 0.015319 0.015638 0.030829 0.037103 0.015706 0.116884 0.027114 0.021119 0.019973 0.110401 0.039985 0.012862 0.004887 0.086911 0.041450 0.002157 0.021018 0.063422 0.040398 0.204360 +0.212205 +0.032709 0.036657 0.032683 0.030905 0.014687 0.033829 0.010724 0.036315 0.029585 0.035335 0.018290 0.060714 0.015895 0.015696 0.031427 0.033956 0.016607 0.034007 0.027573 0.020443 0.022877 0.133891 0.038876 0.013947 0.009064 0.157380 0.037836 0.000333 0.019374 0.133891 0.042181 0.180870 +0.030497 +0.030094 0.039079 0.031262 0.028578 0.014242 0.021665 0.010374 0.036670 0.029233 0.029081 0.016186 0.275965 0.015987 0.015788 0.029266 0.029259 0.018634 0.023125 0.027346 0.018967 0.020542 0.180870 0.040253 0.017126 0.006037 0.110401 0.041154 0.000657 0.020432 0.133891 0.041437 0.204360 +0.285428 +0.029875 0.034170 0.030844 0.033898 0.014791 0.023034 0.010888 0.036526 0.031067 0.029862 0.014656 0.052823 0.015974 0.016226 0.031621 0.028274 0.015470 0.087321 0.027856 0.020779 0.020423 0.110401 0.041001 0.018188 0.008154 0.063422 0.039540 0.001189 0.019803 0.110401 0.042164 0.157380 +0.074065 +0.029726 0.038734 0.028246 0.028526 0.016373 0.164270 0.009581 0.036655 0.034868 0.028493 0.015351 0.094667 0.015527 0.016180 0.034837 0.028376 0.015860 0.034977 0.026922 0.020158 0.023320 0.133891 0.041088 0.016780 0.006311 0.157380 0.042195 0.001459 0.020779 0.110401 0.038537 0.204360 +0.406377 +0.029047 0.038210 0.028947 0.029071 0.016321 0.353448 0.010327 0.035391 0.029300 0.030685 0.014274 0.069578 0.016356 0.016136 0.031461 0.028968 0.016192 0.045269 0.029465 0.019445 0.018796 0.086911 0.037843 0.018704 0.012700 0.086911 0.038664 0.001720 0.019421 0.157380 0.037829 0.180870 +0.573951 +0.028208 0.037760 0.037322 0.030729 0.017865 0.080418 0.009613 0.036785 0.029213 0.030121 0.016913 0.062578 0.015118 0.015801 0.028961 0.029946 0.017164 0.116458 0.029832 0.019852 0.020967 0.110401 0.039892 0.017307 0.010117 0.180870 0.041132 0.000327 0.020869 0.133891 0.041966 0.204360 +0.197844 +0.032557 0.033795 0.034461 0.028372 0.016275 0.049041 0.009493 0.035420 0.029122 0.030711 0.018497 0.043254 0.015303 0.016407 0.034006 0.028776 0.015238 0.040966 0.027846 0.020940 0.023180 0.157380 0.039299 0.018616 0.010893 0.180870 0.039739 0.001129 0.021056 0.086911 0.041764 0.204360 +0.014423 +0.030373 0.033345 0.028559 0.033102 0.016311 0.024862 0.011101 0.035603 0.030425 0.029468 0.014502 0.031135 0.016352 0.016386 0.031347 0.029608 0.016691 0.039545 0.026688 0.019815 0.021188 0.086911 0.038025 0.014199 0.008551 0.063422 0.042014 0.000606 0.020659 0.110401 0.039262 0.133891 +0.017006 +0.030270 0.038031 0.031480 0.030637 0.017562 0.078736 0.009519 0.035924 0.028598 0.028225 0.016738 0.344450 0.016268 0.015756 0.032299 0.028540 0.015991 0.097034 0.028085 0.020943 0.023347 0.133891 0.041997 0.016204 0.007636 0.133891 0.042139 0.002046 0.019608 0.063422 0.039281 0.157380 +0.644726 +0.029958 0.033471 0.030867 0.030083 0.014984 0.026231 0.009903 0.036762 0.030523 0.028783 0.014981 0.034389 0.016288 0.016304 0.031192 0.031215 0.018448 0.031613 0.026202 0.018797 0.021630 0.063422 0.040896 0.014946 0.006764 0.063422 0.039328 0.001470 0.020830 0.086911 0.041380 0.133891 +0 +0.028214 0.038205 0.032385 0.030893 0.016755 0.048408 0.010119 0.036940 0.028230 0.028753 0.016299 0.044658 0.016219 0.016332 0.028998 0.031325 0.017842 0.172999 0.027908 0.020157 0.020897 0.180870 0.037651 0.014045 0.008919 0.157380 0.041289 0.000001 0.020091 0.180870 0.037734 0.204360 +0.186267 +0.029108 0.038502 0.028239 0.031140 0.015624 0.019474 0.011312 0.037095 0.031421 0.028236 0.014447 0.042968 0.015278 0.015819 0.028894 0.030442 0.015740 0.222819 0.028848 0.019864 0.020604 0.133891 0.038079 0.018143 0.005548 0.157380 0.038435 0.002244 0.020597 0.063422 0.040313 0.204360 +0.277476 +0.030134 0.039521 0.031704 0.029352 0.015859 0.032575 0.010834 0.036635 0.029613 0.031002 0.017050 0.061727 0.015479 0.015937 0.029149 0.028669 0.018081 0.094772 0.028186 0.019074 0.023192 0.063422 0.037616 0.017672 0.013462 0.157380 0.039212 0.001943 0.020543 0.157380 0.037626 0.180870 +0.126494 +0.031600 0.036481 0.031573 0.029607 0.018032 0.016726 0.010950 0.037121 0.032373 0.030156 0.015979 0.030911 0.015614 0.015677 0.028413 0.029350 0.018271 0.046457 0.028381 0.020754 0.019563 0.063422 0.040872 0.013488 0.007032 0.086911 0.039176 0.001955 0.018844 0.063422 0.038096 0.133891 +0 +0.032165 0.038413 0.030367 0.032046 0.017340 0.084357 0.011385 0.036197 0.028235 0.031435 0.017642 0.104046 0.016215 0.016308 0.029047 0.038665 0.015963 0.024982 0.029114 0.020668 0.022919 0.063422 0.039553 0.012048 0.009412 0.086911 0.039069 0.001968 0.019713 0.110401 0.039342 0.157380 +0.130932 +0.030626 0.032928 0.031233 0.028338 0.015766 0.178641 0.009770 0.036141 0.028686 0.028944 0.018029 0.090696 0.015185 0.015797 0.040145 0.028751 0.017778 0.230896 0.026056 0.020413 0.023144 0.110401 0.039550 0.016952 0.005655 0.063422 0.041946 0.000425 0.019828 0.063422 0.039395 0.133891 +0.649373 +0.028224 0.039108 0.029322 0.028601 0.014695 0.045363 0.009931 0.036876 0.028613 0.028329 0.014747 0.143552 0.016434 0.016062 0.029001 0.028495 0.014896 0.032169 0.024967 0.019953 0.021794 0.133891 0.038885 0.016479 0.008408 0.110401 0.038834 0.001180 0.020537 0.086911 0.038496 0.157380 +0.183697 +0.031588 0.035850 0.029969 0.029532 0.015064 0.150620 0.011308 0.036927 0.028852 0.030750 0.018251 0.033414 0.015883 0.015876 0.029396 0.030757 0.015781 0.032970 0.027781 0.020155 0.023323 0.086911 0.039989 0.012509 0.012998 0.110401 0.041071 0.000314 0.020099 0.063422 0.038982 0.180870 +0.223668 +0.031483 0.035273 0.029058 0.031111 0.016099 0.037835 0.011415 0.035341 0.029002 0.031606 0.016821 0.113538 0.015080 0.016300 0.030934 0.032312 0.017213 0.044342 0.028312 0.018959 0.018954 0.133891 0.042234 0.015502 0.010921 0.086911 0.039339 0.000286 0.020564 0.063422 0.040376 0.157380 +0.099452 +0.031790 0.036970 0.030569 0.028801 0.014297 0.038720 0.010771 0.037250 0.028206 0.030408 0.016912 0.132391 0.015303 0.015595 0.028953 0.031566 0.015736 0.047158 0.027086 0.019892 0.020880 0.063422 0.041412 0.013743 0.012251 0.063422 0.038190 0.002045 0.020832 0.110401 0.038667 0.180870 +0.094255 +0.031727 0.039009 0.028636 0.031494 0.016074 0.148965 0.009454 0.037113 0.033323 0.029138 0.014247 0.049848 0.015964 0.015698 0.029390 0.032668 0.016599 0.048125 0.025787 0.020486 0.022847 0.063422 0.038075 0.015523 0.011051 0.063422 0.038036 0.000052 0.020494 0.086911 0.039752 0.180870 +0.266196 +0.031589 0.038966 0.028806 0.032955 0.014171 0.080478 0.010028 0.037149 0.028534 0.034828 0.018117 0.088211 0.016003 0.015543 0.033015 0.028507 0.016347 0.048605 0.026271 0.020855 0.019713 0.110401 0.040713 0.016114 0.009679 0.063422 0.039324 0.000830 0.020683 0.063422 0.040132 0.180870 +0.109796 +0.031284 0.039782 0.029289 0.028209 0.018641 0.085206 0.010136 0.036599 0.030562 0.030985 0.016039 0.189948 0.015342 0.015954 0.028807 0.028910 0.017538 0.024525 0.028855 0.020198 0.023366 0.086911 0.041493 0.018421 0.009360 0.086911 0.039591 0.001627 0.019911 0.086911 0.038273 0.204360 +0.235654 +0.029214 0.037522 0.036521 0.036470 0.015569 0.107942 0.010928 0.036000 0.030162 0.028947 0.018554 0.032343 0.015290 0.016128 0.028961 0.033096 0.018226 0.054340 0.027922 0.019080 0.021206 0.110401 0.039549 0.015249 0.011049 0.157380 0.039413 0.000668 0.020899 0.133891 0.040720 0.180870 +0.145371 +0.031556 0.034304 0.030173 0.029993 0.018064 0.044061 0.009490 0.035298 0.032127 0.029044 0.016774 0.057946 0.016221 0.016084 0.033952 0.037515 0.016178 0.185131 0.029582 0.018885 0.019494 0.110401 0.042280 0.017613 0.012982 0.063422 0.041511 0.001124 0.018988 0.086911 0.041276 0.180870 +0.216916 +0.029800 0.032962 0.031922 0.029543 0.014484 0.023079 0.011373 0.035857 0.029501 0.029657 0.015088 0.043844 0.016333 0.015573 0.029690 0.028816 0.016412 0.096335 0.029145 0.020052 0.021988 0.110401 0.038539 0.016263 0.013738 0.180870 0.041002 0.001039 0.021026 0.110401 0.042219 0.204360 +0.060819 +0.028493 0.039050 0.032060 0.028441 0.014178 0.029128 0.011447 0.036270 0.029018 0.030459 0.017038 0.049000 0.015243 0.015595 0.028569 0.032653 0.018568 0.024994 0.026519 0.018874 0.020168 0.063422 0.039561 0.013347 0.012779 0.133891 0.037727 0.001769 0.019601 0.086911 0.038461 0.157380 +0.004562 +0.032058 0.037252 0.028770 0.032017 0.015586 0.028825 0.009598 0.036789 0.028922 0.031369 0.014895 0.019918 0.016332 0.016028 0.033807 0.029494 0.017609 0.029402 0.029825 0.020633 0.021490 0.157380 0.041593 0.017618 0.011496 0.133891 0.040966 0.000237 0.020370 0.086911 0.041821 0.180870 +0 +0.032033 0.037163 0.028670 0.031260 0.017074 0.019680 0.010849 0.035862 0.028514 0.032744 0.017636 0.019560 0.016197 0.016330 0.029283 0.028205 0.015709 0.067733 0.027527 0.021119 0.020572 0.063422 0.040697 0.013616 0.005242 0.086911 0.039777 0.000003 0.020599 0.086911 0.038388 0.133891 +0.012605 +0.030331 0.036575 0.034027 0.029113 0.015917 0.072310 0.009777 0.037501 0.028742 0.029561 0.017652 0.120163 0.015968 0.016076 0.034028 0.032531 0.017942 0.036482 0.027742 0.019369 0.019436 0.133891 0.039331 0.013081 0.013085 0.133891 0.039045 0.001038 0.020850 0.110401 0.039749 0.157380 +0.170340 +0.032121 0.037973 0.031568 0.029530 0.015703 0.046581 0.010910 0.036235 0.028255 0.035554 0.015930 0.042882 0.016256 0.016414 0.028824 0.049208 0.018709 0.152269 0.028925 0.019274 0.022340 0.086911 0.040697 0.013430 0.006835 0.110401 0.040631 0.000721 0.020087 0.086911 0.037655 0.133891 +0.263348 +0.030316 0.038914 0.032394 0.028534 0.016559 0.076579 0.009672 0.037538 0.028673 0.032660 0.015710 0.067606 0.015599 0.015838 0.029300 0.034621 0.014795 0.086938 0.027715 0.019166 0.019277 0.110401 0.039356 0.014487 0.013378 0.063422 0.041708 0.001530 0.019713 0.133891 0.041989 0.180870 +0.205172 +0.028899 0.034960 0.033729 0.028465 0.014397 0.075844 0.010106 0.035728 0.029210 0.030671 0.016620 0.063016 0.016125 0.015972 0.028600 0.030854 0.015620 0.268676 0.029062 0.020343 0.019097 0.063422 0.038490 0.013043 0.005944 0.086911 0.040333 0.001223 0.019345 0.110401 0.038363 0.133891 +0.576990 +0.029851 0.035585 0.028860 0.028840 0.015216 0.028885 0.009847 0.035361 0.028938 0.028538 0.014527 0.029027 0.015775 0.016281 0.028425 0.029334 0.016680 0.051238 0.027905 0.020328 0.021656 0.063422 0.038047 0.018394 0.011456 0.063422 0.040949 0.000529 0.018912 0.063422 0.037763 0.133891 +0.002499 +0.029518 0.036623 0.028534 0.028438 0.016770 0.066578 0.011326 0.036629 0.033967 0.030045 0.014459 0.090752 0.015422 0.015650 0.033410 0.031532 0.018530 0.068205 0.027864 0.020112 0.021696 0.063422 0.041409 0.016376 0.010883 0.063422 0.038110 0.001564 0.019132 0.133891 0.041806 0.204360 +0.119060 +0.032124 0.037492 0.035532 0.030016 0.018385 0.045308 0.011219 0.036874 0.033332 0.028610 0.014256 0.047917 0.015093 0.015548 0.030479 0.030357 0.018006 0.022326 0.028064 0.019083 0.020548 0.110401 0.037839 0.015812 0.012858 0.063422 0.038778 0.001008 0.019785 0.110401 0.039324 0.133891 +0.058447 +0.031234 0.034117 0.028785 0.031146 0.015777 0.033051 0.011443 0.037358 0.029137 0.028589 0.014227 0.045071 0.015798 0.016426 0.033657 0.029094 0.016817 0.036994 0.028529 0.020467 0.020794 0.110401 0.038444 0.018384 0.008759 0.086911 0.038156 0.002050 0.020117 0.086911 0.038121 0.133891 +0.035857 +0.032206 0.036194 0.028459 0.028317 0.018191 0.027181 0.010744 0.036852 0.032725 0.028895 0.016494 0.053893 0.015578 0.015665 0.029556 0.034169 0.015812 0.173211 0.027260 0.021019 0.022449 0.086911 0.042158 0.018710 0.013873 0.133891 0.039702 0.000317 0.020223 0.133891 0.039526 0.204360 +0.168164 +0.032096 0.034074 0.029896 0.028802 0.017050 0.038770 0.011393 0.036455 0.028249 0.029744 0.014600 0.035811 0.015498 0.016089 0.030473 0.030127 0.016230 0.032432 0.025465 0.020010 0.018837 0.110401 0.042101 0.016964 0.008212 0.086911 0.040064 0.000984 0.019491 0.133891 0.038165 0.157380 +0.014285 +0.032746 0.035225 0.029291 0.033026 0.016002 0.095793 0.011215 0.036868 0.030338 0.032214 0.018624 0.104044 0.016241 0.016407 0.029947 0.029005 0.016424 0.296679 0.028804 0.020117 0.020827 0.110401 0.038377 0.016400 0.007752 0.086911 0.041060 0.000252 0.020488 0.133891 0.041273 0.157380 +0.658693 +0.032789 0.037119 0.033435 0.032270 0.017643 0.030620 0.010729 0.035520 0.031578 0.037013 0.014918 0.043968 0.015949 0.015571 0.029565 0.028722 0.017115 0.038450 0.027274 0.020709 0.023014 0.157380 0.039719 0.013234 0.009861 0.086911 0.040191 0.000773 0.020246 0.180870 0.040446 0.204360 +0.015744 +0.030732 0.037934 0.028484 0.030283 0.015343 0.197277 0.010818 0.036345 0.030154 0.030126 0.018768 0.032973 0.015964 0.015796 0.033688 0.029508 0.017547 0.200931 0.026905 0.019663 0.020787 0.133891 0.038763 0.013425 0.012719 0.063422 0.042097 0.000788 0.020656 0.157380 0.040248 0.204360 +0.568647 +0.028268 0.034714 0.028492 0.028539 0.014534 0.076029 0.011307 0.035794 0.028794 0.029917 0.017505 0.169511 0.016287 0.015748 0.030808 0.034143 0.017978 0.250972 0.026442 0.021095 0.022365 0.133891 0.038900 0.015758 0.013165 0.063422 0.039460 0.000054 0.018884 0.110401 0.040637 0.157380 +0.664940 +0.030311 0.038323 0.028553 0.028359 0.015878 0.074089 0.010417 0.036986 0.031010 0.029266 0.015039 0.028994 0.015343 0.015683 0.029362 0.029086 0.018701 0.181733 0.028758 0.019397 0.022146 0.063422 0.038785 0.012418 0.007757 0.110401 0.041693 0.001599 0.018823 0.110401 0.039928 0.180870 +0.291283 +0.029929 0.036218 0.034492 0.031228 0.018045 0.090593 0.011507 0.035333 0.029616 0.028755 0.016747 0.089216 0.015955 0.015864 0.028858 0.030760 0.014790 0.072867 0.027904 0.019038 0.023488 0.133891 0.042041 0.016689 0.012106 0.086911 0.041252 0.001760 0.020916 0.133891 0.037615 0.204360 +0.184081 +0.031221 0.035505 0.032719 0.028608 0.014187 0.123184 0.010181 0.035339 0.030249 0.029893 0.015768 0.111796 0.015508 0.016058 0.032088 0.030733 0.017163 0.065806 0.027662 0.019068 0.020269 0.180870 0.038168 0.015256 0.005875 0.133891 0.041978 0.000604 0.019384 0.133891 0.040320 0.204360 +0.371702 +0.031528 0.036990 0.034256 0.035536 0.017438 0.059101 0.011618 0.037314 0.029957 0.029347 0.017726 0.041825 0.016380 0.016155 0.028961 0.030296 0.017126 0.147941 0.029255 0.020983 0.021424 0.157380 0.039750 0.017289 0.008333 0.180870 0.037955 0.001650 0.019993 0.086911 0.041843 0.204360 +0.202574 +0.031867 0.035371 0.028817 0.030202 0.017560 0.050512 0.011215 0.035794 0.028455 0.028261 0.017585 0.023312 0.016252 0.016118 0.029757 0.029603 0.017566 0.048924 0.029046 0.020901 0.023104 0.063422 0.040885 0.015244 0.011266 0.086911 0.039821 0.002173 0.018911 0.157380 0.042240 0.204360 +0.001021 +0.028500 0.034119 0.028684 0.033679 0.014436 0.042056 0.010376 0.037199 0.029992 0.029034 0.017652 0.122547 0.015704 0.015933 0.029142 0.028752 0.015410 0.182179 0.030189 0.019993 0.020909 0.063422 0.039681 0.013767 0.013042 0.133891 0.041717 0.000231 0.020799 0.133891 0.039085 0.157380 +0.377752 +0.031436 0.033364 0.029317 0.031730 0.017862 0.118299 0.010779 0.035835 0.029340 0.031205 0.014139 0.064246 0.015165 0.016230 0.028299 0.038254 0.017244 0.117660 0.027992 0.019064 0.020369 0.110401 0.039068 0.015486 0.008806 0.110401 0.041041 0.000989 0.019400 0.086911 0.041402 0.157380 +0.315323 +0.029624 0.033261 0.032928 0.029369 0.015784 0.040000 0.010083 0.035699 0.034827 0.029899 0.017790 0.143540 0.015671 0.015640 0.028649 0.028262 0.017545 0.083339 0.027640 0.020941 0.022454 0.086911 0.039687 0.014257 0.010728 0.063422 0.039304 0.001363 0.020771 0.133891 0.041887 0.204360 +0.212779 +0.030535 0.037456 0.029576 0.031790 0.014637 0.016739 0.010289 0.037408 0.030808 0.028885 0.017155 0.018539 0.015528 0.015735 0.031298 0.035063 0.016440 0.146091 0.026302 0.019693 0.022033 0.110401 0.039366 0.015109 0.007626 0.086911 0.042073 0.001414 0.019403 0.110401 0.041450 0.133891 +0.113405 +0.030592 0.037722 0.036910 0.028741 0.016307 0.226446 0.010467 0.036868 0.029423 0.029969 0.017362 0.016496 0.016323 0.015980 0.030140 0.028995 0.015250 0.086330 0.026803 0.018998 0.021391 0.110401 0.040993 0.018315 0.009148 0.133891 0.039844 0.000701 0.020144 0.063422 0.041104 0.180870 +0.315900 +0.030413 0.035436 0.031399 0.029128 0.018342 0.041431 0.011033 0.035619 0.030179 0.029198 0.018580 0.121485 0.016110 0.016412 0.034983 0.029032 0.016201 0.090597 0.028407 0.018958 0.020420 0.086911 0.037912 0.016168 0.011827 0.133891 0.039920 0.000342 0.019302 0.133891 0.040689 0.157380 +0.308294 +0.029217 0.038028 0.028746 0.029539 0.015315 0.024564 0.010825 0.037038 0.030099 0.029212 0.016142 0.056530 0.016135 0.015563 0.029156 0.030098 0.017275 0.046113 0.028404 0.019536 0.022546 0.086911 0.040432 0.015361 0.007480 0.063422 0.041370 0.001485 0.020896 0.063422 0.042218 0.133891 +0.031021 +0.029028 0.033110 0.029703 0.028757 0.017090 0.049308 0.011380 0.035287 0.028796 0.028839 0.014385 0.041249 0.015405 0.016144 0.033597 0.029807 0.017305 0.131282 0.029214 0.019806 0.018873 0.157380 0.039585 0.012840 0.006932 0.180870 0.040774 0.000265 0.020609 0.157380 0.042188 0.204360 +0.245831 +0.031378 0.034234 0.029134 0.032143 0.018378 0.081664 0.010570 0.036549 0.028327 0.028626 0.017831 0.018074 0.016269 0.015645 0.029151 0.029503 0.016936 0.064576 0.027300 0.019710 0.019550 0.063422 0.040592 0.012761 0.013957 0.063422 0.041129 0.001937 0.020810 0.110401 0.040256 0.180870 +0.002228 +0.028220 0.033010 0.029618 0.028634 0.014834 0.018200 0.011713 0.036648 0.029916 0.031992 0.018004 0.167407 0.015081 0.016165 0.028569 0.029850 0.017288 0.335896 0.028632 0.018899 0.019264 0.063422 0.041440 0.012342 0.013035 0.133891 0.038093 0.000786 0.019238 0.110401 0.042183 0.204360 +0.679844 +0.031772 0.035443 0.031837 0.031007 0.017097 0.024879 0.010471 0.036296 0.031955 0.028325 0.017756 0.027585 0.015641 0.016033 0.028327 0.029454 0.014354 0.021830 0.028204 0.021092 0.022484 0.086911 0.040534 0.017428 0.007162 0.157380 0.041600 0.000319 0.021124 0.133891 0.039290 0.180870 +0 +0.032383 0.037400 0.035918 0.033916 0.014277 0.062299 0.011354 0.036930 0.029492 0.033953 0.015536 0.046172 0.015819 0.016031 0.030057 0.029315 0.015928 0.214947 0.026669 0.019722 0.022403 0.063422 0.041350 0.012550 0.005348 0.086911 0.038476 0.000914 0.019557 0.110401 0.041177 0.133891 +0.365075 +0.031779 0.033625 0.029128 0.031757 0.016656 0.027811 0.010786 0.035362 0.030015 0.030955 0.015615 0.127607 0.016049 0.015575 0.028213 0.029435 0.015217 0.078575 0.029398 0.020267 0.020372 0.133891 0.041321 0.015428 0.013924 0.086911 0.038742 0.000675 0.019582 0.086911 0.041942 0.157380 +0.156762 +0.029598 0.034354 0.028594 0.035806 0.017811 0.080161 0.010896 0.035309 0.028870 0.030793 0.017350 0.185081 0.015052 0.016247 0.028901 0.031367 0.018393 0.147586 0.029631 0.019334 0.021513 0.133891 0.038193 0.017242 0.008464 0.063422 0.040539 0.001164 0.020498 0.063422 0.038529 0.204360 +0.493952 +0.031185 0.035170 0.029135 0.029340 0.015220 0.119314 0.010621 0.036308 0.029635 0.030072 0.015083 0.036963 0.015243 0.016234 0.029922 0.032030 0.018414 0.162740 0.029467 0.019281 0.019779 0.063422 0.038161 0.011914 0.011363 0.086911 0.038427 0.002320 0.020919 0.086911 0.039875 0.157380 +0.293109 +0.032385 0.034058 0.032366 0.033107 0.017693 0.067067 0.010416 0.037036 0.029672 0.028880 0.016259 0.092203 0.015770 0.016105 0.028863 0.029270 0.017530 0.064041 0.025104 0.019604 0.020257 0.086911 0.041239 0.012967 0.012535 0.086911 0.038119 0.001174 0.020107 0.086911 0.038738 0.204360 +0.124482 +0.028550 0.037873 0.028649 0.028652 0.016024 0.106521 0.011231 0.035738 0.028910 0.030214 0.014962 0.068649 0.016126 0.015606 0.030000 0.030010 0.014270 0.037014 0.028063 0.020211 0.020841 0.086911 0.037830 0.012331 0.005573 0.063422 0.039377 0.000405 0.019281 0.086911 0.041613 0.133891 +0.247944 +0.032394 0.039650 0.041762 0.033780 0.014238 0.204025 0.011612 0.036739 0.034179 0.030223 0.014289 0.035849 0.015320 0.015813 0.029400 0.031459 0.017751 0.018293 0.028786 0.019078 0.021723 0.086911 0.038849 0.013372 0.009387 0.063422 0.041172 0.000253 0.020802 0.063422 0.041929 0.157380 +0.170552 +0.028746 0.033338 0.030703 0.029633 0.018110 0.162990 0.009661 0.035741 0.029567 0.030058 0.014716 0.168051 0.015563 0.015824 0.029960 0.030647 0.014603 0.032541 0.028499 0.019926 0.019664 0.157380 0.038352 0.015876 0.009276 0.133891 0.042055 0.000372 0.020800 0.063422 0.040422 0.204360 +0.431593 +0.030046 0.033343 0.028644 0.028978 0.016518 0.105838 0.011001 0.036479 0.030508 0.030724 0.016136 0.078681 0.016114 0.015996 0.029475 0.029279 0.014892 0.078182 0.029568 0.019512 0.021199 0.133891 0.041429 0.014053 0.012222 0.063422 0.042246 0.000638 0.020231 0.110401 0.038522 0.180870 +0.209484 +0.032035 0.038156 0.028327 0.030344 0.018274 0.032340 0.011673 0.037134 0.028202 0.028321 0.014731 0.034342 0.015822 0.016437 0.030455 0.028959 0.016444 0.022552 0.030199 0.020215 0.021099 0.110401 0.041437 0.017734 0.012054 0.063422 0.038160 0.000151 0.018886 0.086911 0.040254 0.133891 +0.009947 +0.028531 0.038017 0.028190 0.032139 0.015764 0.173485 0.010824 0.037164 0.031160 0.028654 0.016835 0.036063 0.016004 0.016432 0.037449 0.029712 0.017513 0.040281 0.029624 0.018942 0.019444 0.086911 0.041683 0.012268 0.012162 0.110401 0.041801 0.000663 0.020095 0.086911 0.041025 0.133891 +0.165102 +0.030531 0.037557 0.037919 0.028307 0.015259 0.041274 0.010541 0.035284 0.030380 0.029593 0.018253 0.031619 0.015906 0.016150 0.028252 0.029854 0.016856 0.026688 0.027673 0.021112 0.020747 0.157380 0.040649 0.018628 0.012110 0.086911 0.039660 0.000122 0.020299 0.157380 0.038646 0.180870 +0 +0.030925 0.036141 0.028387 0.029389 0.015166 0.461534 0.009694 0.036787 0.030090 0.029933 0.016001 0.050447 0.015396 0.015705 0.028392 0.028460 0.014483 0.032027 0.026763 0.020977 0.022725 0.086911 0.038621 0.011804 0.009217 0.086911 0.039031 0.001484 0.020274 0.063422 0.041167 0.133891 +0.644480 +0.030031 0.034881 0.030749 0.030419 0.016449 0.106353 0.009540 0.036081 0.029546 0.031979 0.016936 0.024176 0.015261 0.016224 0.029061 0.034471 0.017060 0.196194 0.027959 0.020769 0.021500 0.063422 0.039231 0.012948 0.009859 0.157380 0.040269 0.001887 0.019407 0.086911 0.038293 0.180870 +0.371847 +0.030001 0.037904 0.028417 0.033088 0.016834 0.338801 0.011203 0.037037 0.028908 0.030061 0.014812 0.065533 0.016267 0.016073 0.030451 0.029895 0.014896 0.220389 0.029695 0.019173 0.020919 0.110401 0.039577 0.017160 0.007090 0.110401 0.041007 0.001287 0.019239 0.063422 0.038318 0.133891 +0.656642 +0.030077 0.039514 0.031333 0.029379 0.015401 0.062442 0.010106 0.037482 0.029735 0.028991 0.015454 0.041543 0.015456 0.016278 0.029376 0.033971 0.017110 0.039103 0.027760 0.019015 0.020428 0.063422 0.041396 0.015084 0.009629 0.110401 0.038464 0.001804 0.019770 0.086911 0.041161 0.133891 +0.040212 +0.030548 0.034414 0.032345 0.028840 0.018313 0.234349 0.011741 0.036820 0.031564 0.030165 0.017121 0.161901 0.015351 0.015984 0.029575 0.029379 0.015835 0.108285 0.028739 0.019836 0.022419 0.086911 0.042107 0.015452 0.005438 0.086911 0.040281 0.001216 0.020673 0.086911 0.039296 0.180870 +0.648278 +0.032467 0.039468 0.029202 0.030584 0.017170 0.027560 0.010235 0.036543 0.037095 0.030985 0.017659 0.091914 0.015722 0.016252 0.028549 0.030155 0.014908 0.056589 0.029207 0.019032 0.023384 0.157380 0.040746 0.015048 0.012525 0.110401 0.040352 0.000089 0.020812 0.063422 0.038538 0.180870 +0.085364 +0.028765 0.039360 0.028411 0.029669 0.014295 0.028601 0.011356 0.036532 0.033203 0.028742 0.018493 0.096301 0.015145 0.015557 0.031274 0.028193 0.017992 0.037929 0.030129 0.019225 0.021100 0.086911 0.038619 0.012725 0.011067 0.086911 0.038062 0.001564 0.019630 0.063422 0.037852 0.133891 +0.074332 +0.028771 0.036288 0.029412 0.031488 0.017784 0.019996 0.010847 0.035916 0.031419 0.030886 0.015398 0.184900 0.016232 0.015520 0.029458 0.029802 0.018373 0.068144 0.028197 0.019361 0.021376 0.133891 0.038919 0.012090 0.013778 0.133891 0.038572 0.000396 0.020748 0.063422 0.041736 0.157380 +0.294701 +0.029201 0.039637 0.029402 0.029082 0.015096 0.042114 0.010382 0.037174 0.036123 0.030812 0.018418 0.020051 0.015436 0.015740 0.029786 0.028592 0.017759 0.128938 0.029412 0.020039 0.023037 0.063422 0.038629 0.013267 0.006734 0.133891 0.039337 0.001691 0.019513 0.133891 0.038754 0.157380 +0.193399 +0.028755 0.036231 0.031362 0.031130 0.017716 0.048385 0.010172 0.036998 0.028929 0.034762 0.015406 0.080695 0.016056 0.015741 0.037318 0.029066 0.014580 0.123202 0.029267 0.019116 0.018874 0.110401 0.040066 0.012484 0.006637 0.063422 0.039346 0.000577 0.021136 0.063422 0.040080 0.157380 +0.188377 +0.030992 0.037498 0.029572 0.033136 0.016533 0.045576 0.009575 0.036355 0.036399 0.029451 0.014694 0.023024 0.015105 0.015516 0.030533 0.028208 0.015761 0.024959 0.030674 0.019310 0.021706 0.133891 0.041098 0.015426 0.007652 0.133891 0.039158 0.000487 0.020984 0.110401 0.038924 0.157380 +0.008734 +0.029974 0.039603 0.031107 0.029460 0.015437 0.166021 0.009806 0.037023 0.031777 0.029700 0.017682 0.071380 0.015423 0.016341 0.031385 0.028706 0.018199 0.030961 0.027910 0.021132 0.022020 0.180870 0.040250 0.015797 0.012426 0.157380 0.042107 0.002280 0.019069 0.063422 0.039485 0.204360 +0.344460 +0.031048 0.036506 0.028789 0.038225 0.018726 0.025691 0.011648 0.037252 0.030243 0.032047 0.017354 0.163776 0.016324 0.015778 0.028669 0.031833 0.015989 0.264574 0.027552 0.019565 0.022756 0.110401 0.038321 0.013245 0.006761 0.157380 0.040144 0.000366 0.019902 0.180870 0.041582 0.204360 +0.589344 +0.031997 0.037805 0.030943 0.028740 0.015460 0.051361 0.010979 0.036609 0.033065 0.033460 0.014226 0.301794 0.015071 0.015568 0.031979 0.030252 0.018712 0.041113 0.029367 0.019897 0.022885 0.086911 0.042009 0.015584 0.012102 0.086911 0.040135 0.000057 0.019221 0.063422 0.038427 0.133891 +0.463571 +0.029474 0.032939 0.029455 0.031269 0.016700 0.223476 0.011621 0.036533 0.030432 0.035138 0.015082 0.029200 0.016126 0.016356 0.031626 0.030029 0.016812 0.091795 0.029540 0.020465 0.021368 0.063422 0.038213 0.012896 0.012574 0.157380 0.037742 0.001440 0.020239 0.180870 0.039740 0.204360 +0.538582 +0.030783 0.036351 0.029187 0.034094 0.016502 0.089947 0.011512 0.035321 0.030279 0.028531 0.016026 0.161161 0.015241 0.016365 0.033193 0.032060 0.014458 0.036265 0.028865 0.019394 0.020610 0.063422 0.037756 0.018514 0.009589 0.086911 0.037730 0.002273 0.019014 0.063422 0.038846 0.157380 +0.292204 +0.028330 0.034280 0.028215 0.031396 0.017223 0.102361 0.009944 0.037374 0.029337 0.030415 0.016428 0.051064 0.015065 0.015719 0.030528 0.028896 0.015964 0.174149 0.030040 0.020882 0.023223 0.063422 0.039222 0.016365 0.010206 0.110401 0.037649 0.002020 0.019470 0.110401 0.037786 0.133891 +0.456988 +0.031839 0.035545 0.031130 0.031635 0.016275 0.314887 0.010318 0.036503 0.030755 0.028962 0.018569 0.064172 0.016218 0.015796 0.028856 0.029296 0.017030 0.259374 0.026727 0.020123 0.019683 0.157380 0.041825 0.017950 0.008338 0.157380 0.038121 0.001992 0.019336 0.133891 0.039726 0.204360 +0.827815 +0.032512 0.035963 0.029423 0.028381 0.015262 0.115528 0.011619 0.035316 0.028723 0.030796 0.017476 0.106384 0.015945 0.015638 0.030215 0.029027 0.016968 0.040271 0.027574 0.021032 0.021479 0.157380 0.038677 0.012245 0.006507 0.133891 0.038214 0.001018 0.018808 0.180870 0.039846 0.204360 +0.370980 +0.031699 0.037306 0.029588 0.032207 0.016217 0.021054 0.011111 0.036586 0.029024 0.029404 0.018705 0.028876 0.015878 0.015506 0.032018 0.029287 0.017245 0.052365 0.026168 0.020472 0.020621 0.180870 0.039570 0.014537 0.004892 0.110401 0.040196 0.002250 0.020202 0.157380 0.038919 0.204360 +0.011914 +0.031256 0.033321 0.030413 0.029640 0.014680 0.096416 0.011399 0.036401 0.029049 0.034652 0.017089 0.046857 0.015721 0.015871 0.033210 0.028205 0.018197 0.164641 0.027097 0.018956 0.021012 0.086911 0.039794 0.013754 0.006286 0.063422 0.040341 0.001816 0.019009 0.086911 0.038910 0.133891 +0.391366 +0.030641 0.039119 0.030772 0.033001 0.015123 0.108825 0.009688 0.036193 0.028548 0.029032 0.015981 0.069018 0.015147 0.015903 0.028439 0.035926 0.015691 0.081270 0.025828 0.019775 0.022387 0.133891 0.040276 0.012624 0.008409 0.086911 0.039480 0.001460 0.018863 0.133891 0.042169 0.157380 +0.430674 +0.030827 0.039839 0.036891 0.029071 0.018224 0.048655 0.010361 0.036654 0.029634 0.030450 0.014281 0.150534 0.015940 0.016149 0.032097 0.035029 0.014461 0.032652 0.028197 0.020592 0.020021 0.086911 0.040164 0.011954 0.005918 0.133891 0.040357 0.001099 0.019797 0.133891 0.040555 0.157380 +0.239175 +0.029183 0.039463 0.028199 0.028734 0.014423 0.033082 0.011035 0.035309 0.031976 0.029411 0.015207 0.090510 0.016273 0.015991 0.031954 0.028300 0.017119 0.027579 0.026538 0.020007 0.020628 0.063422 0.037663 0.013603 0.012814 0.110401 0.041528 0.000683 0.020905 0.133891 0.040294 0.157380 +0.075767 +0.031876 0.033833 0.029867 0.034779 0.014514 0.216577 0.011594 0.036570 0.029826 0.032988 0.016959 0.027380 0.016370 0.015507 0.030060 0.028636 0.014307 0.025513 0.026937 0.019675 0.020964 0.086911 0.038001 0.015241 0.008237 0.063422 0.039224 0.000452 0.020912 0.063422 0.038317 0.133891 +0.454218 +0.030759 0.034008 0.029270 0.028567 0.016961 0.139128 0.011270 0.035586 0.028943 0.029498 0.015757 0.137673 0.016039 0.016304 0.029384 0.028636 0.017401 0.148506 0.028140 0.019363 0.022545 0.086911 0.039345 0.018581 0.013569 0.086911 0.042035 0.000982 0.020364 0.063422 0.040424 0.180870 +0.537244 +0.028773 0.033531 0.028243 0.028960 0.017946 0.109215 0.009549 0.037065 0.032280 0.028386 0.017576 0.030383 0.016051 0.016228 0.033879 0.029310 0.016759 0.368988 0.028999 0.019938 0.022975 0.063422 0.038551 0.012370 0.005370 0.063422 0.038123 0.002157 0.018895 0.086911 0.039320 0.133891 +0.700601 +0.030307 0.035627 0.030073 0.029794 0.017565 0.078835 0.009945 0.037260 0.033953 0.029485 0.018273 0.149661 0.015592 0.015727 0.029188 0.030949 0.015742 0.114508 0.029791 0.018795 0.022693 0.157380 0.037595 0.012707 0.012491 0.086911 0.039141 0.001347 0.019204 0.110401 0.037691 0.180870 +0.441383 +0.029913 0.037843 0.030682 0.028348 0.017903 0.040629 0.009791 0.035421 0.029863 0.033071 0.018661 0.179584 0.015133 0.016071 0.028458 0.031412 0.018779 0.025788 0.026499 0.019752 0.018856 0.063422 0.038281 0.015267 0.009090 0.086911 0.041248 0.001511 0.021043 0.063422 0.040393 0.133891 +0.203681 +0.028960 0.036052 0.029237 0.037140 0.016048 0.021845 0.010180 0.036479 0.031822 0.028990 0.018508 0.042238 0.015441 0.015691 0.029790 0.029168 0.018027 0.029863 0.025126 0.018932 0.020322 0.086911 0.041497 0.016862 0.008748 0.133891 0.039017 0.001893 0.020323 0.110401 0.041520 0.157380 +0 +0.030204 0.036655 0.029376 0.029427 0.014343 0.169662 0.011034 0.036863 0.031206 0.029501 0.014821 0.110002 0.015265 0.015799 0.031575 0.033724 0.017082 0.186811 0.026746 0.019495 0.019645 0.086911 0.038583 0.014628 0.014006 0.086911 0.040134 0.000955 0.020498 0.157380 0.040918 0.204360 +0.540973 +0.031704 0.038079 0.031612 0.030284 0.016172 0.062610 0.009894 0.035482 0.032405 0.028491 0.016716 0.219325 0.015428 0.016159 0.030825 0.029395 0.017880 0.061875 0.029130 0.019389 0.020317 0.063422 0.037923 0.018599 0.007450 0.086911 0.042197 0.001261 0.020374 0.110401 0.037802 0.157380 +0.434462 +0.028969 0.039803 0.029117 0.030487 0.014726 0.018211 0.011471 0.035321 0.029720 0.037505 0.018585 0.016453 0.016059 0.016390 0.030062 0.028869 0.017873 0.036738 0.027148 0.019828 0.019978 0.063422 0.040542 0.017483 0.005693 0.110401 0.039555 0.001744 0.020879 0.110401 0.039310 0.133891 +0 +0.030152 0.038968 0.029723 0.029699 0.016290 0.106208 0.010443 0.037511 0.028688 0.028957 0.016964 0.227370 0.016031 0.016313 0.030852 0.036309 0.015227 0.098780 0.029912 0.020010 0.021636 0.063422 0.037979 0.012084 0.014066 0.110401 0.041492 0.000749 0.020801 0.063422 0.038150 0.133891 +0.612795 +0.030483 0.035779 0.029285 0.030401 0.015154 0.021768 0.011232 0.037503 0.029668 0.033320 0.016953 0.099188 0.016176 0.015619 0.030220 0.031496 0.015332 0.058245 0.027599 0.020693 0.020386 0.063422 0.041798 0.015800 0.012941 0.063422 0.041324 0.000115 0.020650 0.086911 0.040357 0.157380 +0.052976 +0.031279 0.033246 0.029291 0.029392 0.016310 0.042279 0.011152 0.036105 0.029092 0.028958 0.017556 0.104584 0.015121 0.015776 0.029162 0.031381 0.018713 0.016598 0.029882 0.021041 0.021265 0.110401 0.039910 0.016038 0.005569 0.086911 0.040386 0.001318 0.018974 0.157380 0.041768 0.180870 +0.066694 +0.031330 0.037541 0.029319 0.028703 0.016520 0.140017 0.011488 0.037378 0.029104 0.029873 0.017104 0.061706 0.015084 0.015797 0.029312 0.035335 0.017632 0.233246 0.028883 0.019874 0.021015 0.063422 0.041914 0.014860 0.008071 0.180870 0.042264 0.001747 0.020437 0.063422 0.038381 0.204360 +0.555159 +0.030588 0.038499 0.030857 0.032262 0.017329 0.340619 0.011673 0.036039 0.029890 0.028815 0.015711 0.129285 0.015125 0.015509 0.029971 0.030731 0.015161 0.102103 0.028545 0.019800 0.021485 0.133891 0.041583 0.014792 0.012840 0.133891 0.042057 0.001808 0.019300 0.110401 0.041519 0.204360 +0.726295 +0.028343 0.039125 0.031614 0.029735 0.015758 0.046744 0.009990 0.037227 0.028589 0.030942 0.017497 0.052478 0.015748 0.016095 0.029357 0.030943 0.015740 0.053756 0.027540 0.018973 0.021062 0.063422 0.037661 0.013678 0.008184 0.133891 0.039426 0.001848 0.019657 0.063422 0.038209 0.180870 +0.060463 +0.028297 0.038047 0.028927 0.029439 0.016610 0.101564 0.009624 0.036837 0.028514 0.029767 0.015159 0.105754 0.015382 0.015884 0.028805 0.029150 0.014665 0.042311 0.027650 0.020813 0.021169 0.110401 0.041236 0.013165 0.006323 0.110401 0.038663 0.002249 0.018970 0.180870 0.038586 0.204360 +0.292226 +0.030164 0.039841 0.031615 0.030524 0.017768 0.063802 0.010281 0.037550 0.028612 0.029958 0.014633 0.058004 0.015492 0.015785 0.028330 0.028958 0.015404 0.063772 0.027636 0.019587 0.021081 0.086911 0.037999 0.018095 0.007986 0.086911 0.041949 0.000014 0.019888 0.063422 0.040620 0.157380 +0.136080 +0.032192 0.037019 0.028283 0.028406 0.018401 0.110332 0.011402 0.035384 0.036190 0.028532 0.016699 0.081331 0.015889 0.015717 0.028250 0.030080 0.017633 0.143686 0.026101 0.020917 0.018834 0.110401 0.038920 0.018750 0.010420 0.110401 0.040286 0.000105 0.019202 0.063422 0.039369 0.133891 +0.347029 +0.032132 0.038488 0.032700 0.031447 0.016793 0.133487 0.009894 0.037166 0.029116 0.028703 0.015452 0.046078 0.015376 0.015800 0.029795 0.028601 0.014160 0.071302 0.030888 0.019958 0.019793 0.086911 0.037634 0.018243 0.005841 0.110401 0.040637 0.000621 0.020234 0.110401 0.038869 0.157380 +0.242673 +0.030555 0.034575 0.028721 0.028230 0.014614 0.033151 0.011702 0.035608 0.033761 0.028334 0.018126 0.057519 0.015774 0.016150 0.028421 0.029308 0.015440 0.029000 0.026759 0.020129 0.023243 0.157380 0.041673 0.013162 0.008543 0.110401 0.039158 0.001931 0.019840 0.180870 0.042007 0.204360 +0.014279 +0.032056 0.039002 0.028456 0.028701 0.018201 0.035435 0.009544 0.036856 0.029376 0.029173 0.018091 0.058608 0.015360 0.016141 0.031831 0.043241 0.018332 0.027851 0.029149 0.020217 0.019254 0.063422 0.042007 0.013198 0.007738 0.063422 0.039777 0.001535 0.021021 0.110401 0.041054 0.157380 +0.009696 +0.030603 0.038279 0.038880 0.029082 0.017887 0.224297 0.010964 0.035705 0.029467 0.032754 0.016225 0.344552 0.015643 0.015608 0.029797 0.028598 0.018706 0.025422 0.030578 0.020248 0.019701 0.110401 0.042176 0.012113 0.013230 0.086911 0.040997 0.000728 0.020387 0.086911 0.038981 0.133891 +0.779963 +0.028649 0.036110 0.030196 0.032187 0.018123 0.040608 0.010068 0.035525 0.028239 0.035072 0.018186 0.087237 0.016064 0.016376 0.028238 0.030196 0.017374 0.029054 0.029040 0.019153 0.021550 0.180870 0.041956 0.018629 0.011565 0.180870 0.037665 0.001048 0.020957 0.110401 0.037626 0.204360 +0.054666 +0.030206 0.036366 0.028599 0.031588 0.016951 0.085696 0.009876 0.035832 0.028867 0.030830 0.015692 0.028790 0.015190 0.016230 0.029677 0.029286 0.016110 0.051050 0.027797 0.020255 0.021146 0.086911 0.038557 0.013602 0.013432 0.063422 0.041740 0.001598 0.020570 0.110401 0.037986 0.157380 +0.153017 +0.031059 0.037816 0.030752 0.029169 0.018431 0.021760 0.011158 0.035310 0.029369 0.031444 0.016252 0.050509 0.016245 0.016238 0.030093 0.029236 0.015052 0.066232 0.030767 0.020189 0.019765 0.133891 0.039716 0.016795 0.005487 0.086911 0.040123 0.001667 0.020178 0.133891 0.041545 0.157380 +0.084309 +0.028384 0.036710 0.039512 0.029109 0.014747 0.017828 0.009610 0.035298 0.028289 0.029018 0.016821 0.245968 0.016399 0.015849 0.029931 0.028994 0.017403 0.017950 0.026631 0.019743 0.020132 0.110401 0.041095 0.018149 0.009150 0.086911 0.042002 0.000165 0.021081 0.110401 0.039722 0.157380 +0.265455 +0.032539 0.039613 0.028456 0.028475 0.016016 0.082591 0.010077 0.035490 0.029575 0.028687 0.018342 0.062347 0.015547 0.016314 0.031374 0.035520 0.014166 0.210497 0.026453 0.020669 0.023161 0.063422 0.040828 0.014643 0.011199 0.086911 0.040964 0.000606 0.020189 0.063422 0.041937 0.204360 +0.411470 +0.028749 0.039053 0.028583 0.030615 0.014741 0.094273 0.011197 0.036519 0.030100 0.031674 0.018689 0.060287 0.016419 0.015756 0.028779 0.032185 0.014569 0.028373 0.027504 0.020379 0.022023 0.063422 0.040335 0.015199 0.010330 0.157380 0.038020 0.000791 0.020927 0.133891 0.037883 0.180870 +0.092370 +0.030411 0.035985 0.029827 0.028755 0.018768 0.054677 0.010405 0.036186 0.028261 0.030974 0.016456 0.080691 0.015271 0.015615 0.028544 0.029757 0.017732 0.072455 0.029129 0.020995 0.020073 0.086911 0.039570 0.013819 0.010745 0.086911 0.041519 0.000889 0.020571 0.086911 0.040094 0.133891 +0.159093 +0.029994 0.037541 0.028512 0.028391 0.018628 0.079703 0.011697 0.036535 0.028639 0.029139 0.014238 0.023895 0.016187 0.015565 0.028451 0.034886 0.015557 0.017684 0.028722 0.020174 0.018988 0.110401 0.038202 0.012998 0.005484 0.086911 0.038687 0.002315 0.019459 0.063422 0.042151 0.157380 +0.038558 +0.032650 0.035322 0.028562 0.032762 0.018340 0.022178 0.010307 0.036138 0.031389 0.028287 0.016471 0.185773 0.015515 0.016420 0.040685 0.030569 0.018708 0.036712 0.027742 0.019785 0.022994 0.110401 0.040401 0.017583 0.010198 0.063422 0.039343 0.000227 0.021079 0.110401 0.039772 0.180870 +0.231835 +0.029958 0.035608 0.029582 0.028875 0.018679 0.165307 0.011396 0.036372 0.029116 0.028213 0.017688 0.032596 0.015446 0.015947 0.029513 0.031647 0.014680 0.029887 0.026651 0.019426 0.021400 0.063422 0.037661 0.015420 0.013220 0.110401 0.041956 0.000580 0.019671 0.063422 0.039754 0.133891 +0.197776 +0.028916 0.034333 0.029271 0.029811 0.017191 0.215684 0.010649 0.037265 0.028233 0.028408 0.018025 0.179144 0.015188 0.016073 0.029013 0.028761 0.016187 0.175231 0.029086 0.019687 0.020891 0.063422 0.038596 0.016778 0.013306 0.157380 0.038523 0.000674 0.019442 0.133891 0.038528 0.180870 +0.721854 +0.031054 0.038656 0.028260 0.035413 0.014340 0.179782 0.011387 0.037531 0.028415 0.031273 0.017271 0.031283 0.015369 0.016258 0.029210 0.029558 0.017018 0.255048 0.027657 0.020088 0.021573 0.157380 0.039571 0.017115 0.004822 0.086911 0.039403 0.002265 0.020220 0.110401 0.040101 0.180870 +0.597616 +0.031227 0.037252 0.028855 0.031147 0.018235 0.036063 0.011297 0.037456 0.028912 0.029426 0.014575 0.120862 0.016283 0.016022 0.031661 0.028624 0.018128 0.027366 0.025958 0.020189 0.023153 0.110401 0.040072 0.016305 0.013472 0.133891 0.041113 0.000660 0.020931 0.110401 0.041253 0.157380 +0.194185 +0.030944 0.035647 0.028368 0.028380 0.016940 0.027328 0.011665 0.035905 0.038097 0.029070 0.018061 0.165205 0.016313 0.016025 0.034809 0.038375 0.015931 0.026946 0.029142 0.020962 0.022957 0.063422 0.040057 0.016410 0.010851 0.110401 0.040656 0.000179 0.019010 0.086911 0.041334 0.133891 +0.233601 +0.029164 0.033834 0.028830 0.030141 0.015825 0.055397 0.010696 0.037076 0.029810 0.030720 0.016927 0.102312 0.015388 0.015931 0.028807 0.029942 0.017307 0.140133 0.029570 0.020607 0.021153 0.086911 0.041876 0.017852 0.005663 0.063422 0.040026 0.001198 0.020046 0.063422 0.039732 0.133891 +0.259283 +0.030779 0.034509 0.031972 0.028983 0.015555 0.071500 0.009920 0.035796 0.030189 0.034140 0.017131 0.168722 0.016268 0.015514 0.029150 0.033118 0.014468 0.035534 0.028967 0.020669 0.021568 0.086911 0.039567 0.016311 0.013397 0.086911 0.039312 0.000347 0.021076 0.063422 0.040950 0.157380 +0.190470 +0.030249 0.039075 0.031741 0.029177 0.015757 0.114744 0.010003 0.036487 0.028836 0.028708 0.016235 0.018998 0.015855 0.015583 0.028575 0.031210 0.018211 0.025599 0.028530 0.020763 0.019412 0.110401 0.041100 0.015831 0.008305 0.063422 0.040865 0.001060 0.018888 0.110401 0.038627 0.133891 +0.104187 +0.032064 0.039110 0.035947 0.028326 0.016764 0.033422 0.010770 0.035248 0.029151 0.032552 0.017040 0.054616 0.016427 0.015845 0.032949 0.031118 0.014571 0.169521 0.026449 0.020908 0.021528 0.063422 0.039082 0.018315 0.005972 0.063422 0.041573 0.001955 0.020898 0.086911 0.040092 0.157380 +0.189606 +0.031697 0.037058 0.031200 0.029317 0.016667 0.034922 0.010257 0.035301 0.029470 0.028535 0.015981 0.036328 0.015071 0.015567 0.029173 0.033071 0.018301 0.302092 0.028530 0.019628 0.022670 0.063422 0.041204 0.017891 0.009324 0.063422 0.041953 0.001143 0.020579 0.133891 0.042222 0.180870 +0.401440 +0.032335 0.036610 0.036040 0.030818 0.017166 0.171341 0.009512 0.035434 0.031236 0.029268 0.017840 0.090113 0.016406 0.016359 0.028647 0.031490 0.015901 0.025747 0.027554 0.019008 0.018888 0.086911 0.039313 0.016824 0.010683 0.063422 0.040636 0.000579 0.019397 0.063422 0.041189 0.133891 +0.276478 +0.028460 0.035825 0.029642 0.028830 0.014250 0.035223 0.011423 0.035769 0.029650 0.028284 0.014967 0.069806 0.015471 0.016080 0.038393 0.028481 0.017363 0.061534 0.027533 0.019536 0.019068 0.157380 0.038410 0.013441 0.007569 0.086911 0.039661 0.000247 0.020100 0.110401 0.040959 0.180870 +0.072324 +0.028321 0.033350 0.029990 0.029754 0.016644 0.133616 0.009584 0.035266 0.030680 0.029405 0.017010 0.102692 0.016399 0.016268 0.030490 0.028405 0.016512 0.020725 0.028124 0.020700 0.018891 0.063422 0.041128 0.017358 0.010416 0.063422 0.041592 0.001846 0.019698 0.063422 0.039595 0.133891 +0.238717 +0.030184 0.037719 0.028632 0.032089 0.017190 0.097886 0.010052 0.035348 0.029071 0.029174 0.017603 0.029573 0.015407 0.016087 0.028467 0.031692 0.015917 0.048096 0.028001 0.019584 0.019156 0.086911 0.037761 0.018743 0.012415 0.133891 0.041275 0.000656 0.019138 0.110401 0.041434 0.180870 +0.020399 +0.032779 0.037702 0.029512 0.031596 0.015412 0.025704 0.010099 0.037102 0.030726 0.029939 0.014793 0.154311 0.015140 0.015541 0.030350 0.029146 0.015345 0.119449 0.026677 0.020436 0.018861 0.157380 0.039983 0.014911 0.013213 0.110401 0.038047 0.002332 0.021122 0.110401 0.039003 0.180870 +0.249957 +0.030977 0.038322 0.028497 0.028789 0.017794 0.203523 0.011722 0.036767 0.028520 0.028939 0.015264 0.045226 0.016220 0.015640 0.029131 0.034148 0.018039 0.087808 0.028545 0.019130 0.020169 0.110401 0.038144 0.012193 0.004849 0.086911 0.042216 0.000716 0.018808 0.086911 0.038765 0.204360 +0.373059 +0.032884 0.039626 0.028975 0.028260 0.015355 0.067820 0.011076 0.037251 0.029537 0.029968 0.018185 0.024648 0.015306 0.015699 0.028482 0.030648 0.017224 0.057663 0.027491 0.020928 0.022945 0.086911 0.040707 0.016878 0.011690 0.110401 0.037977 0.002260 0.020127 0.063422 0.041721 0.133891 +0.093827 +0.030600 0.035745 0.030007 0.028347 0.017299 0.047967 0.011743 0.035380 0.029285 0.029906 0.018064 0.039909 0.016439 0.015759 0.028467 0.029596 0.018367 0.038334 0.030434 0.020078 0.019885 0.086911 0.041116 0.016877 0.010092 0.157380 0.037818 0.001727 0.019209 0.133891 0.037598 0.204360 +0.005860 +0.029126 0.035438 0.028661 0.036553 0.016266 0.125662 0.009691 0.035254 0.028468 0.029488 0.015871 0.052515 0.016062 0.016180 0.039714 0.031756 0.015903 0.061514 0.027254 0.020629 0.021935 0.086911 0.039567 0.016578 0.012817 0.063422 0.038496 0.001065 0.021066 0.086911 0.040583 0.133891 +0.185156 +0.032387 0.037251 0.029995 0.029205 0.014257 0.022804 0.009859 0.036174 0.031541 0.031616 0.018148 0.080670 0.015341 0.016379 0.030426 0.028556 0.015603 0.069374 0.026761 0.019575 0.018990 0.063422 0.040353 0.018482 0.009112 0.133891 0.041848 0.001031 0.019907 0.133891 0.038003 0.157380 +0.113260 +0.030484 0.033007 0.033347 0.031758 0.015248 0.071463 0.010956 0.037134 0.028553 0.032744 0.017318 0.052009 0.015577 0.016306 0.030269 0.030701 0.016761 0.680521 0.027863 0.019152 0.020713 0.086911 0.038457 0.015345 0.007886 0.086911 0.041334 0.000681 0.020645 0.063422 0.040180 0.157380 +0.903118 +0.030816 0.039197 0.030739 0.030273 0.017323 0.260014 0.011498 0.036315 0.039788 0.028655 0.016332 0.135314 0.015526 0.016432 0.029391 0.030675 0.014737 0.038535 0.027554 0.021117 0.023466 0.157380 0.040207 0.016654 0.012818 0.086911 0.038124 0.002062 0.020522 0.063422 0.039989 0.204360 +0.618048 +0.031049 0.034582 0.028281 0.028471 0.017068 0.109597 0.011409 0.035346 0.028556 0.028466 0.018571 0.047960 0.016028 0.015716 0.028694 0.028333 0.018379 0.064159 0.029824 0.020828 0.020632 0.110401 0.038700 0.018306 0.005059 0.110401 0.038870 0.002075 0.019839 0.133891 0.040206 0.157380 +0.259020 +0.030322 0.034226 0.029160 0.029187 0.014430 0.033562 0.010908 0.035396 0.040329 0.029429 0.016219 0.119847 0.015114 0.015915 0.028758 0.029587 0.015847 0.018411 0.028460 0.020129 0.019823 0.157380 0.040720 0.018700 0.009325 0.180870 0.038388 0.001339 0.021004 0.063422 0.040181 0.204360 +0.049208 +0.030639 0.035167 0.032376 0.030256 0.015489 0.162573 0.011167 0.036479 0.033089 0.030467 0.016144 0.055711 0.015848 0.015715 0.030643 0.029316 0.015083 0.089264 0.030591 0.020493 0.019044 0.086911 0.038496 0.015076 0.012833 0.133891 0.040011 0.000704 0.019408 0.086911 0.039667 0.157380 +0.339427 +0.032272 0.034610 0.030725 0.029967 0.018707 0.058896 0.011326 0.036174 0.036312 0.029243 0.016222 0.132775 0.015261 0.015678 0.029434 0.033001 0.017566 0.069891 0.027310 0.019658 0.022208 0.133891 0.039574 0.011889 0.011020 0.133891 0.038383 0.002089 0.018992 0.110401 0.040009 0.157380 +0.322349 +0.029133 0.034145 0.035993 0.029866 0.014192 0.022712 0.010823 0.036898 0.029858 0.035072 0.016534 0.060652 0.015499 0.015920 0.030117 0.032357 0.014967 0.030019 0.025653 0.019632 0.019802 0.157380 0.039812 0.013424 0.009428 0.086911 0.039485 0.001128 0.019937 0.063422 0.038756 0.204360 +0.004612 +0.029922 0.035540 0.028297 0.032057 0.014688 0.044879 0.011379 0.037428 0.028202 0.030547 0.017859 0.122008 0.015093 0.015538 0.030041 0.033335 0.017650 0.196704 0.027517 0.020825 0.023011 0.110401 0.039216 0.018540 0.006910 0.110401 0.042140 0.000124 0.020516 0.063422 0.040076 0.133891 +0.427056 +0.029300 0.035413 0.028256 0.029712 0.014100 0.055753 0.009515 0.035702 0.028364 0.032181 0.018570 0.105846 0.015631 0.016248 0.029343 0.029251 0.015643 0.022647 0.027377 0.020162 0.021270 0.086911 0.037965 0.015875 0.011917 0.086911 0.040204 0.001683 0.019158 0.063422 0.040475 0.133891 +0.115111 +0.030190 0.034819 0.029542 0.032243 0.016234 0.204474 0.010158 0.035753 0.029436 0.041343 0.016617 0.100232 0.016109 0.016299 0.029886 0.028610 0.016375 0.172752 0.029952 0.020461 0.019541 0.110401 0.040523 0.012480 0.008491 0.110401 0.040078 0.000472 0.020895 0.063422 0.041508 0.133891 +0.476716 +0.031230 0.035059 0.029978 0.029035 0.016755 0.035078 0.011017 0.036033 0.037042 0.028923 0.018346 0.058044 0.015938 0.015564 0.029120 0.038810 0.014211 0.039598 0.027145 0.019184 0.019125 0.110401 0.039510 0.013543 0.010603 0.086911 0.039035 0.000708 0.020226 0.086911 0.039923 0.157380 +0.021370 +0.031903 0.036082 0.028196 0.028710 0.017741 0.050261 0.010138 0.036316 0.028328 0.028574 0.015460 0.078279 0.016324 0.016262 0.029944 0.029238 0.016827 0.127901 0.029776 0.020920 0.023315 0.086911 0.037604 0.012481 0.006611 0.063422 0.040862 0.001999 0.019003 0.133891 0.039543 0.204360 +0.326952 +0.032572 0.039252 0.035226 0.028447 0.018144 0.144787 0.011085 0.036652 0.032028 0.035169 0.014677 0.033634 0.015696 0.015755 0.030002 0.029487 0.017315 0.022733 0.027236 0.019869 0.019489 0.063422 0.041688 0.016154 0.006671 0.133891 0.041754 0.001401 0.020391 0.110401 0.039091 0.180870 +0.062552 +0.031724 0.035268 0.028967 0.029500 0.016854 0.067089 0.010989 0.036621 0.033129 0.028346 0.016632 0.044132 0.016349 0.016085 0.028359 0.031198 0.016126 0.025941 0.028759 0.020060 0.018810 0.086911 0.037922 0.017489 0.005843 0.063422 0.038189 0.002148 0.020646 0.086911 0.041620 0.133891 +0.019207 +0.032274 0.037657 0.028514 0.030261 0.014395 0.055450 0.010720 0.036681 0.028192 0.030084 0.016769 0.211949 0.015148 0.015692 0.028220 0.028476 0.018709 0.033365 0.029277 0.018839 0.022343 0.086911 0.041356 0.013790 0.012485 0.133891 0.041726 0.000071 0.019998 0.063422 0.041079 0.157380 +0.306788 +0.028424 0.033015 0.028325 0.031247 0.014213 0.181845 0.010037 0.036980 0.030255 0.028387 0.015231 0.069517 0.015532 0.016078 0.029897 0.029855 0.017813 0.131598 0.026949 0.019224 0.022475 0.086911 0.040839 0.014669 0.010383 0.110401 0.041377 0.000262 0.020429 0.133891 0.040165 0.204360 +0.379230 +0.032486 0.039473 0.029482 0.034559 0.014168 0.032856 0.011487 0.037094 0.033554 0.030717 0.014298 0.142116 0.015921 0.015527 0.029062 0.030474 0.016989 0.074742 0.029031 0.021017 0.019656 0.063422 0.040639 0.016266 0.010414 0.110401 0.042266 0.001991 0.020902 0.063422 0.039448 0.133891 +0.227847 +0.028363 0.038617 0.029983 0.028273 0.017414 0.049604 0.009832 0.036341 0.028770 0.028868 0.017927 0.145585 0.015343 0.016289 0.028691 0.029750 0.018512 0.056420 0.026454 0.020889 0.020098 0.086911 0.040647 0.014144 0.007159 0.063422 0.038098 0.001812 0.020827 0.086911 0.041975 0.133891 +0.249860 +0.031205 0.036459 0.030999 0.030819 0.014835 0.102132 0.010578 0.035312 0.030628 0.028473 0.016624 0.039393 0.015131 0.016348 0.029525 0.030683 0.016868 0.069837 0.027318 0.020850 0.021948 0.180870 0.038111 0.017828 0.011022 0.157380 0.038421 0.001079 0.020228 0.110401 0.041445 0.204360 +0.232086 +0.030144 0.039309 0.031738 0.030942 0.015623 0.036103 0.010778 0.036036 0.030477 0.028375 0.017145 0.067296 0.015955 0.016245 0.028600 0.030132 0.017375 0.063072 0.026211 0.020970 0.022177 0.063422 0.038310 0.014163 0.010638 0.063422 0.040080 0.000789 0.020645 0.086911 0.041666 0.133891 +0.138740 +0.030535 0.039797 0.028504 0.029759 0.017933 0.022874 0.011500 0.037365 0.029040 0.031738 0.018326 0.029632 0.015438 0.016361 0.031673 0.029380 0.014980 0.237744 0.028346 0.019443 0.021312 0.086911 0.038762 0.012430 0.011659 0.063422 0.039475 0.001291 0.020303 0.086911 0.039371 0.133891 +0.363651 +0.032503 0.034701 0.029104 0.030856 0.016948 0.016499 0.009533 0.036622 0.028239 0.028467 0.016943 0.032840 0.015345 0.015947 0.028858 0.029943 0.015872 0.061443 0.030073 0.019800 0.021565 0.133891 0.038710 0.015620 0.011535 0.110401 0.039598 0.001261 0.019718 0.063422 0.040421 0.180870 +0.002415 +0.030678 0.034090 0.035871 0.030644 0.015845 0.038733 0.011369 0.035706 0.029165 0.030350 0.015905 0.037920 0.015204 0.015630 0.029744 0.032004 0.015775 0.038184 0.026182 0.021111 0.022949 0.063422 0.040490 0.017566 0.013227 0.133891 0.042052 0.001591 0.021000 0.063422 0.041375 0.204360 +0 +0.029709 0.037037 0.029302 0.030303 0.015277 0.036731 0.010214 0.036729 0.037772 0.029555 0.016866 0.026235 0.016171 0.016399 0.030063 0.029139 0.015318 0.047918 0.030682 0.019166 0.021249 0.110401 0.042120 0.012712 0.007012 0.133891 0.039295 0.000527 0.019213 0.110401 0.039211 0.157380 +0.027854 +0.032560 0.036370 0.028190 0.030635 0.017867 0.027773 0.010348 0.036985 0.028952 0.028927 0.016654 0.052830 0.015664 0.016185 0.031781 0.041898 0.017800 0.034689 0.029147 0.020492 0.019491 0.110401 0.042164 0.017294 0.012853 0.063422 0.041150 0.000844 0.019927 0.110401 0.039737 0.133891 +0.061278 +0.032260 0.033237 0.029163 0.030874 0.017617 0.039737 0.011060 0.036286 0.029112 0.029759 0.017079 0.017677 0.016171 0.016186 0.028664 0.034467 0.018496 0.151603 0.027696 0.019166 0.019642 0.063422 0.037943 0.014676 0.009286 0.063422 0.040888 0.001377 0.020929 0.133891 0.037860 0.157380 +0.279506 +0.032555 0.038423 0.028812 0.028843 0.018419 0.051403 0.010310 0.037142 0.029616 0.028950 0.015539 0.021433 0.016092 0.015533 0.029995 0.031228 0.016476 0.206134 0.028262 0.018851 0.023287 0.110401 0.042227 0.014035 0.007386 0.086911 0.041408 0.001934 0.018987 0.157380 0.039242 0.204360 +0.152380 +0.032735 0.035467 0.036189 0.030423 0.016416 0.139788 0.011639 0.035463 0.028946 0.029932 0.016129 0.100688 0.016397 0.016333 0.029168 0.032620 0.014482 0.151330 0.028929 0.020196 0.019678 0.133891 0.038358 0.016627 0.012028 0.133891 0.040490 0.002133 0.019333 0.086911 0.038830 0.204360 +0.469599 +0.029520 0.033236 0.030434 0.033086 0.015977 0.038269 0.010774 0.035607 0.034161 0.029783 0.015650 0.168362 0.015613 0.015611 0.030332 0.028712 0.015566 0.066419 0.029360 0.021001 0.020770 0.157380 0.039984 0.014565 0.013703 0.063422 0.040095 0.000481 0.020480 0.133891 0.040192 0.204360 +0.248233 +0.029613 0.034905 0.038597 0.030313 0.015926 0.097159 0.010052 0.035706 0.033539 0.029062 0.018371 0.317402 0.015087 0.016099 0.028579 0.029925 0.016847 0.120673 0.030387 0.020599 0.023289 0.157380 0.037927 0.014639 0.008209 0.086911 0.039806 0.002129 0.018808 0.180870 0.039927 0.204360 +0.710014 +0.032846 0.036478 0.034883 0.029797 0.015371 0.051396 0.009982 0.035808 0.031500 0.032170 0.016174 0.092455 0.015485 0.015536 0.029015 0.032931 0.016256 0.029150 0.028237 0.020945 0.021482 0.133891 0.038104 0.016334 0.005317 0.157380 0.039699 0.001523 0.020173 0.086911 0.041965 0.204360 +0.113756 +0.029367 0.037011 0.029020 0.031333 0.018417 0.073274 0.009594 0.036905 0.028954 0.029345 0.018476 0.077224 0.015644 0.016315 0.029405 0.028256 0.015214 0.036296 0.029190 0.019809 0.020815 0.133891 0.039688 0.012721 0.011345 0.110401 0.038463 0.000153 0.019463 0.133891 0.040405 0.180870 +0.059751 +0.029570 0.034754 0.030160 0.028410 0.016832 0.038377 0.010774 0.035931 0.031018 0.028291 0.016622 0.058259 0.015692 0.015638 0.029828 0.029994 0.015627 0.033693 0.026560 0.018965 0.023004 0.180870 0.040888 0.011983 0.007237 0.180870 0.040328 0.000320 0.018841 0.180870 0.039979 0.204360 +0.061097 +0.028492 0.035763 0.034278 0.029218 0.017687 0.034076 0.009737 0.035713 0.028602 0.029293 0.017850 0.192603 0.015406 0.016027 0.030169 0.030114 0.017021 0.067598 0.028099 0.020066 0.019692 0.133891 0.038619 0.016631 0.012482 0.063422 0.039944 0.001993 0.019012 0.110401 0.040177 0.157380 +0.298565 +0.032102 0.039706 0.033340 0.030853 0.018045 0.045758 0.009955 0.035648 0.028272 0.033662 0.018309 0.036331 0.016181 0.016062 0.031204 0.031655 0.015818 0.078678 0.029313 0.019176 0.021609 0.157380 0.042280 0.016452 0.009653 0.180870 0.040962 0.000023 0.018879 0.133891 0.041415 0.204360 +0.055255 +0.031267 0.035468 0.031863 0.028270 0.015324 0.032424 0.009518 0.035394 0.030652 0.030178 0.018323 0.097014 0.016171 0.016150 0.028613 0.028938 0.018044 0.016678 0.028752 0.020682 0.022703 0.133891 0.041205 0.014397 0.010697 0.180870 0.039335 0.000361 0.020423 0.086911 0.039669 0.204360 +0.023176 +0.029417 0.032919 0.030413 0.038579 0.017718 0.274992 0.010210 0.036098 0.039324 0.028499 0.015829 0.047609 0.016279 0.016324 0.030727 0.030186 0.017616 0.071760 0.029066 0.020516 0.021025 0.063422 0.037633 0.017474 0.012026 0.133891 0.040333 0.000984 0.020295 0.157380 0.041883 0.204360 +0.584233 +0.030202 0.034754 0.028905 0.028867 0.016709 0.134455 0.010029 0.036046 0.030775 0.031381 0.017732 0.073819 0.015619 0.016135 0.029576 0.029255 0.017766 0.067676 0.028351 0.020878 0.022821 0.063422 0.038294 0.015235 0.008725 0.110401 0.040821 0.001597 0.019452 0.063422 0.038266 0.133891 +0.409682 +0.030008 0.034713 0.033978 0.029054 0.016866 0.050344 0.010985 0.035880 0.028929 0.029843 0.016633 0.327202 0.015089 0.015937 0.031078 0.028416 0.017187 0.073883 0.029538 0.020837 0.022081 0.180870 0.040989 0.017667 0.008213 0.086911 0.039136 0.001363 0.020220 0.180870 0.039107 0.204360 +0.595832 +0.029250 0.037602 0.030381 0.034042 0.015266 0.114341 0.011071 0.036207 0.032052 0.030296 0.017413 0.083341 0.015510 0.015952 0.029033 0.030300 0.017131 0.171472 0.028381 0.018909 0.019822 0.157380 0.038663 0.017025 0.007928 0.133891 0.038018 0.001140 0.019693 0.063422 0.039875 0.180870 +0.415862 +0.031552 0.036844 0.029644 0.030192 0.015769 0.024352 0.010779 0.036969 0.028593 0.029645 0.017978 0.092658 0.015041 0.016015 0.028969 0.033290 0.014379 0.073140 0.028219 0.020375 0.023100 0.180870 0.040752 0.018695 0.007042 0.133891 0.038619 0.002127 0.020858 0.063422 0.038363 0.204360 +0.111868 +0.032680 0.035023 0.028506 0.028427 0.014974 0.250470 0.009638 0.035566 0.028832 0.028416 0.016372 0.105860 0.015324 0.016078 0.028953 0.032666 0.018590 0.043911 0.028055 0.020017 0.023097 0.180870 0.040965 0.013154 0.013592 0.086911 0.037650 0.000284 0.020439 0.063422 0.042197 0.204360 +0.361267 +0.031505 0.039285 0.032064 0.028687 0.017503 0.195068 0.011189 0.036642 0.028553 0.031686 0.017781 0.019012 0.015922 0.015568 0.028425 0.028842 0.015735 0.033839 0.027497 0.018951 0.022669 0.063422 0.042193 0.013832 0.005143 0.063422 0.038313 0.000872 0.018975 0.110401 0.040378 0.133891 +0.316884 +0.029701 0.035509 0.029463 0.028391 0.014234 0.044553 0.010611 0.037332 0.028343 0.028940 0.016887 0.024425 0.015664 0.015982 0.030802 0.030628 0.017276 0.047017 0.029258 0.020555 0.019832 0.086911 0.038182 0.014138 0.009593 0.086911 0.038123 0.000092 0.019948 0.110401 0.041649 0.133891 +0.030574 +0.030130 0.036698 0.028933 0.031881 0.017445 0.024258 0.010616 0.035968 0.030793 0.028439 0.015892 0.110626 0.015559 0.015573 0.028498 0.029438 0.018628 0.077550 0.026638 0.018907 0.021382 0.063422 0.039960 0.018658 0.010317 0.063422 0.039374 0.000859 0.020577 0.063422 0.041132 0.157380 +0.210582 +0.032507 0.036022 0.029899 0.028784 0.017543 0.071332 0.011390 0.035925 0.033620 0.030586 0.015254 0.088851 0.016232 0.016070 0.029488 0.028382 0.014815 0.026529 0.027508 0.019554 0.019368 0.063422 0.041646 0.017422 0.006791 0.157380 0.038391 0.000194 0.019671 0.063422 0.041633 0.180870 +0.091977 +0.030044 0.039433 0.029685 0.032517 0.017528 0.169794 0.009461 0.036987 0.028238 0.029273 0.016506 0.067769 0.015909 0.016164 0.029233 0.030652 0.016628 0.160461 0.027569 0.020086 0.022841 0.086911 0.041179 0.016090 0.011393 0.133891 0.038491 0.000545 0.019591 0.133891 0.039976 0.157380 +0.449530 +0.030695 0.037225 0.028684 0.030054 0.017880 0.044882 0.011531 0.035348 0.029431 0.033531 0.018574 0.038075 0.015480 0.015755 0.032035 0.028593 0.016945 0.072779 0.028950 0.019198 0.019412 0.157380 0.038457 0.013639 0.007246 0.180870 0.041499 0.000744 0.020561 0.180870 0.042165 0.204360 +0.062229 +0.031937 0.036533 0.030761 0.031611 0.016806 0.105952 0.009409 0.037008 0.030449 0.028333 0.015461 0.232803 0.016144 0.015888 0.028352 0.030175 0.014220 0.103244 0.026406 0.019856 0.018902 0.133891 0.038421 0.016312 0.010255 0.180870 0.038661 0.000162 0.020529 0.180870 0.038207 0.204360 +0.586160 +0.031241 0.039014 0.028469 0.028455 0.014130 0.064786 0.011558 0.036833 0.028559 0.028523 0.017508 0.132044 0.016018 0.015568 0.030960 0.031181 0.014148 0.068397 0.029716 0.019672 0.021293 0.063422 0.039958 0.018150 0.013252 0.086911 0.042219 0.001254 0.018891 0.086911 0.038132 0.133891 +0.238059 +0.030221 0.036204 0.028437 0.030277 0.014153 0.100075 0.009517 0.037074 0.031336 0.030584 0.017757 0.049469 0.015591 0.015723 0.028230 0.030832 0.014878 0.062887 0.027668 0.019387 0.022108 0.063422 0.042068 0.013408 0.007194 0.086911 0.038309 0.000081 0.020442 0.180870 0.038887 0.204360 +0.219616 +0.029317 0.033826 0.031957 0.030015 0.018656 0.029621 0.010677 0.035609 0.032414 0.029072 0.018738 0.074900 0.015830 0.015953 0.031258 0.029136 0.015552 0.116545 0.027895 0.019157 0.022319 0.086911 0.039133 0.018019 0.009189 0.110401 0.039891 0.002181 0.020120 0.110401 0.039546 0.157380 +0.132027 +0.032205 0.036447 0.034211 0.034432 0.017938 0.137227 0.010545 0.037028 0.028869 0.032689 0.014618 0.034460 0.015537 0.015648 0.028229 0.032848 0.017485 0.263870 0.027260 0.021103 0.021173 0.133891 0.041910 0.013273 0.008698 0.110401 0.040074 0.000735 0.020910 0.110401 0.040070 0.157380 +0.562356 +0.028383 0.034130 0.029693 0.030040 0.015189 0.029897 0.010888 0.035449 0.028353 0.029516 0.016706 0.233384 0.016312 0.015985 0.028810 0.037508 0.015279 0.104552 0.024008 0.020040 0.023115 0.133891 0.037944 0.015377 0.012312 0.157380 0.042210 0.000442 0.020873 0.063422 0.041783 0.204360 +0.383122 +0.031362 0.035742 0.031503 0.028349 0.014374 0.043998 0.011666 0.035882 0.031657 0.031785 0.015676 0.048729 0.015898 0.015748 0.028409 0.028228 0.014170 0.082121 0.026513 0.020816 0.021851 0.086911 0.040050 0.018636 0.009669 0.063422 0.042081 0.000019 0.020733 0.086911 0.039177 0.133891 +0.131304 +0.032834 0.036124 0.028479 0.030295 0.017715 0.049259 0.011367 0.036307 0.031617 0.028429 0.015287 0.070299 0.016090 0.016169 0.029021 0.028412 0.016097 0.247788 0.029209 0.019880 0.018902 0.086911 0.037937 0.012353 0.006616 0.180870 0.041524 0.000230 0.020697 0.086911 0.038441 0.204360 +0.488824 +0.029445 0.038058 0.028420 0.034524 0.014559 0.091971 0.009569 0.035428 0.038451 0.029392 0.016909 0.439606 0.016385 0.015623 0.031505 0.030742 0.014403 0.065251 0.027850 0.018867 0.019231 0.086911 0.039406 0.015359 0.005543 0.110401 0.040831 0.001404 0.019175 0.110401 0.041411 0.204360 +0.760724 +0.031345 0.038672 0.033213 0.030144 0.014471 0.042311 0.011416 0.035974 0.028896 0.029089 0.015667 0.251006 0.016424 0.015535 0.029256 0.032825 0.016679 0.041144 0.027500 0.019074 0.019700 0.157380 0.039258 0.015794 0.008983 0.063422 0.041615 0.001083 0.019143 0.133891 0.042095 0.180870 +0.342616 +0.028459 0.035339 0.028582 0.029931 0.015586 0.034918 0.011735 0.035402 0.028201 0.028922 0.017625 0.067190 0.015159 0.016415 0.028457 0.030246 0.016005 0.150409 0.027295 0.019333 0.020475 0.063422 0.040641 0.014731 0.004731 0.110401 0.039933 0.000571 0.020279 0.086911 0.041069 0.133891 +0.321517 +0.030353 0.033965 0.029751 0.033583 0.016076 0.049111 0.011221 0.035696 0.028962 0.029356 0.016165 0.178301 0.015772 0.015582 0.035706 0.028941 0.017537 0.086728 0.027175 0.020168 0.019143 0.063422 0.041931 0.011751 0.012149 0.086911 0.040988 0.001458 0.019934 0.157380 0.040940 0.204360 +0.238443 +0.028536 0.037791 0.030274 0.038274 0.015505 0.110394 0.009416 0.037159 0.030182 0.030649 0.016696 0.025538 0.016391 0.016277 0.029910 0.033063 0.015495 0.033742 0.027361 0.020714 0.022181 0.180870 0.038080 0.013859 0.005198 0.180870 0.040836 0.000788 0.018994 0.133891 0.038950 0.204360 +0.164095 +0.031939 0.033493 0.029997 0.029887 0.016697 0.147836 0.010343 0.035796 0.030433 0.034156 0.015546 0.098448 0.015092 0.015830 0.028640 0.030817 0.016847 0.028589 0.029191 0.020522 0.022029 0.063422 0.037744 0.017508 0.009962 0.110401 0.038649 0.000232 0.019591 0.063422 0.039280 0.133891 +0.349020 +0.029765 0.035747 0.029202 0.031644 0.017913 0.085459 0.011592 0.035459 0.029142 0.029640 0.014316 0.058233 0.016322 0.015904 0.028379 0.031784 0.016972 0.018144 0.028262 0.020033 0.021749 0.157380 0.041123 0.018071 0.006862 0.110401 0.040286 0.000102 0.020139 0.157380 0.042079 0.180870 +0.136984 +0.032672 0.038607 0.029954 0.035228 0.014916 0.166844 0.011208 0.035729 0.029163 0.030348 0.014978 0.080042 0.016369 0.015629 0.029232 0.029202 0.016709 0.091106 0.028649 0.019376 0.021450 0.157380 0.041678 0.015545 0.004965 0.133891 0.039902 0.001772 0.020029 0.086911 0.038521 0.204360 +0.344609 +0.028899 0.038622 0.029767 0.028957 0.017880 0.026514 0.011552 0.037304 0.030858 0.028205 0.015742 0.041955 0.015141 0.016039 0.029298 0.029650 0.015006 0.059369 0.028977 0.019978 0.022544 0.110401 0.041002 0.013614 0.011242 0.110401 0.040231 0.001047 0.019697 0.086911 0.038278 0.133891 +0.070493 +0.029688 0.034551 0.029801 0.030877 0.017881 0.044990 0.010689 0.036101 0.029397 0.028503 0.017460 0.069299 0.015859 0.015677 0.029285 0.036365 0.014273 0.079696 0.027166 0.019637 0.023337 0.063422 0.041080 0.015098 0.009691 0.086911 0.041091 0.000199 0.020917 0.110401 0.041772 0.157380 +0.102219 +0.031898 0.037334 0.032608 0.030280 0.017171 0.043168 0.009540 0.035904 0.029729 0.030611 0.015956 0.082681 0.015750 0.016262 0.029752 0.032348 0.015778 0.084087 0.028038 0.019221 0.019447 0.063422 0.040621 0.014402 0.004700 0.110401 0.041470 0.000160 0.019347 0.086911 0.038885 0.133891 +0.185503 +0.030391 0.033634 0.029410 0.030385 0.018233 0.059957 0.011728 0.035551 0.030169 0.028609 0.015885 0.266539 0.015979 0.015557 0.029050 0.031007 0.015601 0.233785 0.026039 0.021119 0.018858 0.110401 0.041800 0.013448 0.012402 0.110401 0.042100 0.001876 0.021005 0.086911 0.040120 0.133891 +0.712646 +0.029274 0.039134 0.028633 0.030320 0.016028 0.157707 0.010593 0.036588 0.034344 0.028616 0.015046 0.074019 0.015526 0.016146 0.028972 0.029604 0.015971 0.056158 0.027964 0.020800 0.021748 0.110401 0.037991 0.018363 0.008908 0.157380 0.038711 0.000186 0.019545 0.133891 0.040616 0.180870 +0.352895 +0.028354 0.033929 0.032477 0.029823 0.017922 0.119426 0.010056 0.037280 0.028513 0.029142 0.016393 0.082062 0.015495 0.015828 0.030184 0.032973 0.016454 0.165894 0.028610 0.019545 0.018871 0.133891 0.039194 0.014924 0.006171 0.133891 0.038630 0.000348 0.021036 0.063422 0.038282 0.204360 +0.410447 +0.031092 0.035832 0.028719 0.029635 0.016279 0.168058 0.010527 0.037176 0.029009 0.028516 0.016352 0.066375 0.015576 0.016235 0.033325 0.028858 0.018132 0.027934 0.029058 0.018890 0.021126 0.133891 0.039874 0.013172 0.013803 0.063422 0.040517 0.000280 0.021105 0.086911 0.037779 0.180870 +0.160054 +0.029596 0.035111 0.029477 0.028563 0.017828 0.167257 0.009452 0.037185 0.030559 0.029287 0.015534 0.297833 0.016245 0.015587 0.030017 0.028698 0.018191 0.080175 0.024992 0.018794 0.019472 0.063422 0.041413 0.013155 0.006217 0.063422 0.041476 0.001579 0.020602 0.110401 0.038749 0.133891 +0.688409 +0.030397 0.037596 0.030047 0.029079 0.014758 0.069210 0.011357 0.037281 0.031438 0.029079 0.017299 0.031851 0.016349 0.016170 0.035110 0.028927 0.016018 0.242504 0.030505 0.020616 0.020135 0.086911 0.041987 0.015009 0.010906 0.086911 0.042230 0.001702 0.020929 0.110401 0.042111 0.133891 +0.388641 +0.029583 0.033964 0.029101 0.032582 0.017622 0.024082 0.010019 0.036004 0.031527 0.031222 0.015407 0.046005 0.015832 0.015706 0.030145 0.028501 0.015044 0.023243 0.028579 0.019141 0.022869 0.063422 0.040843 0.015069 0.004920 0.110401 0.041722 0.002332 0.018886 0.063422 0.040979 0.133891 +0.001716 +0.030308 0.034780 0.028674 0.035214 0.014604 0.172398 0.009552 0.035417 0.028431 0.030222 0.018116 0.021412 0.015191 0.015882 0.028195 0.030260 0.018504 0.030809 0.028563 0.019172 0.020244 0.110401 0.038427 0.014103 0.007785 0.063422 0.041216 0.000385 0.020714 0.086911 0.040394 0.133891 +0.337254 +0.028773 0.034733 0.028502 0.028750 0.018535 0.031941 0.010145 0.035422 0.031317 0.028608 0.018779 0.064392 0.015214 0.016320 0.029259 0.036813 0.014314 0.045675 0.027012 0.020459 0.021908 0.180870 0.040018 0.014195 0.006006 0.180870 0.040721 0.001933 0.020138 0.086911 0.041811 0.204360 +0.040423 +0.028385 0.034063 0.033753 0.028306 0.014460 0.034574 0.011210 0.037282 0.033452 0.032430 0.017909 0.105366 0.015884 0.016050 0.031245 0.029654 0.015778 0.139401 0.029275 0.020968 0.020536 0.133891 0.039264 0.014416 0.006709 0.063422 0.039677 0.000393 0.020643 0.086911 0.038878 0.180870 +0.225378 +0.030015 0.036338 0.030257 0.028509 0.017400 0.049602 0.011326 0.037202 0.030394 0.029459 0.015455 0.204543 0.016303 0.016042 0.031580 0.033146 0.015622 0.027135 0.029912 0.019320 0.022952 0.086911 0.041417 0.017802 0.007760 0.086911 0.041248 0.001223 0.020706 0.180870 0.041430 0.204360 +0.235954 +0.028883 0.038625 0.029713 0.029696 0.015168 0.099107 0.010699 0.035883 0.028480 0.028348 0.016637 0.048641 0.015914 0.015647 0.032392 0.029910 0.015602 0.049865 0.028119 0.020772 0.021112 0.086911 0.038150 0.013773 0.007640 0.157380 0.039184 0.000495 0.019118 0.063422 0.041157 0.204360 +0.167957 +0.030671 0.035461 0.028862 0.031106 0.017764 0.094699 0.011677 0.036424 0.032153 0.028340 0.014945 0.069885 0.016226 0.016086 0.029469 0.031547 0.018200 0.103660 0.029571 0.020447 0.021844 0.133891 0.039275 0.016007 0.013406 0.110401 0.039657 0.001401 0.020012 0.110401 0.038174 0.157380 +0.217892 +0.029130 0.037767 0.029571 0.028196 0.014186 0.311002 0.010126 0.036286 0.028468 0.028454 0.016768 0.024596 0.015345 0.015723 0.039398 0.028505 0.014479 0.026700 0.030263 0.019129 0.021076 0.133891 0.038831 0.016472 0.007148 0.063422 0.039377 0.001627 0.019833 0.180870 0.037654 0.204360 +0.401127 +0.030997 0.038599 0.030087 0.028479 0.018201 0.045631 0.010227 0.035507 0.028216 0.028618 0.015623 0.136985 0.015315 0.015617 0.028715 0.032694 0.015943 0.056033 0.028773 0.019264 0.020039 0.086911 0.041424 0.014410 0.011381 0.063422 0.037709 0.001749 0.020029 0.110401 0.039624 0.133891 +0.223242 +0.032279 0.037009 0.029960 0.028265 0.014571 0.045116 0.011485 0.035621 0.029901 0.028323 0.018130 0.018550 0.016365 0.016313 0.028606 0.029506 0.018117 0.069086 0.027794 0.019245 0.018903 0.110401 0.038990 0.014296 0.005772 0.110401 0.041431 0.001653 0.020562 0.063422 0.038554 0.204360 +0.020804 +0.031622 0.032938 0.028362 0.029495 0.017116 0.024121 0.011153 0.037151 0.040149 0.029108 0.016673 0.034750 0.015176 0.015883 0.028830 0.029250 0.018660 0.137631 0.026677 0.020466 0.020730 0.063422 0.041484 0.011974 0.005828 0.110401 0.039188 0.001954 0.019415 0.110401 0.037978 0.180870 +0.073331 +0.031956 0.038210 0.028791 0.029475 0.017174 0.107898 0.011466 0.035475 0.028823 0.032032 0.015285 0.142014 0.015424 0.016009 0.032829 0.029949 0.017118 0.117093 0.028314 0.019399 0.022485 0.110401 0.038465 0.014769 0.006556 0.063422 0.041054 0.000561 0.020603 0.086911 0.038195 0.157380 +0.411675 +0.031836 0.038902 0.028339 0.028953 0.017608 0.142311 0.010129 0.036431 0.030308 0.032705 0.015038 0.020549 0.015588 0.016270 0.028935 0.031025 0.016924 0.048467 0.026440 0.019987 0.023196 0.086911 0.039608 0.017724 0.012927 0.086911 0.038765 0.001596 0.019554 0.063422 0.040807 0.133891 +0.203079 +0.028870 0.038120 0.028392 0.032668 0.014659 0.117162 0.010192 0.036768 0.030841 0.028205 0.017960 0.054492 0.015781 0.015578 0.028804 0.031455 0.017237 0.100741 0.027514 0.018846 0.023147 0.110401 0.039971 0.017698 0.006572 0.133891 0.039666 0.001063 0.021003 0.133891 0.040243 0.157380 +0.361346 +0.028518 0.033516 0.028197 0.032734 0.018217 0.118560 0.010091 0.035890 0.031937 0.028349 0.017351 0.081909 0.015137 0.015597 0.036249 0.031017 0.014676 0.045725 0.029735 0.019892 0.022254 0.110401 0.040433 0.013015 0.008746 0.110401 0.041719 0.000344 0.019381 0.086911 0.039417 0.133891 +0.336665 +0.029062 0.038153 0.031115 0.029148 0.016809 0.021457 0.010336 0.036718 0.030369 0.028950 0.017867 0.083591 0.015216 0.016415 0.029511 0.029456 0.014703 0.025888 0.027110 0.020694 0.021061 0.110401 0.038065 0.012104 0.006544 0.110401 0.037878 0.001349 0.020330 0.086911 0.038663 0.133891 +0.110560 +0.030590 0.039890 0.029741 0.030410 0.015844 0.131616 0.011655 0.037222 0.028633 0.029787 0.014451 0.305507 0.015164 0.015722 0.028684 0.031418 0.018615 0.164898 0.027666 0.020199 0.022191 0.063422 0.041852 0.018386 0.006967 0.086911 0.040288 0.000524 0.020691 0.180870 0.041533 0.204360 +0.745117 +0.032788 0.038834 0.030628 0.032468 0.017523 0.071978 0.010324 0.037213 0.033406 0.031251 0.016656 0.066623 0.015729 0.016043 0.032331 0.030025 0.018507 0.069114 0.028542 0.020814 0.020011 0.086911 0.040184 0.014368 0.008586 0.086911 0.038215 0.000691 0.019735 0.063422 0.041677 0.157380 +0.120050 +0.032650 0.039196 0.028197 0.033081 0.016073 0.035584 0.009706 0.035909 0.028805 0.030275 0.015070 0.205663 0.016140 0.015557 0.039382 0.029399 0.014580 0.021531 0.029022 0.020291 0.021466 0.133891 0.041439 0.012637 0.013508 0.110401 0.041029 0.001894 0.019107 0.133891 0.039845 0.204360 +0.135794 +0.028866 0.033435 0.033843 0.028587 0.018082 0.016854 0.011206 0.037168 0.028475 0.028267 0.014580 0.073574 0.015862 0.015984 0.033433 0.029147 0.016071 0.045910 0.027877 0.019803 0.021361 0.086911 0.037987 0.013374 0.011016 0.063422 0.041575 0.002330 0.019374 0.110401 0.037848 0.180870 +0.008012 +0.029294 0.038136 0.028442 0.029340 0.018055 0.041150 0.011189 0.036949 0.031269 0.029850 0.016877 0.023724 0.015200 0.015737 0.028346 0.034075 0.017622 0.022016 0.025615 0.020677 0.020324 0.086911 0.040895 0.012392 0.009901 0.157380 0.040043 0.001270 0.019258 0.086911 0.040192 0.204360 +0 +0.030087 0.036893 0.028227 0.029955 0.018119 0.026063 0.011371 0.036819 0.029183 0.029481 0.017466 0.051500 0.015276 0.016353 0.029956 0.029869 0.015838 0.086029 0.028790 0.019134 0.019758 0.086911 0.042227 0.011780 0.013817 0.086911 0.038976 0.001293 0.019375 0.063422 0.039206 0.133891 +0.042117 +0.029591 0.036408 0.031288 0.028822 0.018072 0.084232 0.010606 0.036748 0.030278 0.029938 0.014537 0.176467 0.016293 0.016335 0.028947 0.029701 0.014132 0.050841 0.027520 0.020370 0.021374 0.110401 0.040313 0.014575 0.005104 0.157380 0.039236 0.001742 0.019797 0.110401 0.040275 0.180870 +0.326097 +0.029198 0.034360 0.028826 0.030299 0.018327 0.065291 0.010800 0.036982 0.030230 0.030427 0.016781 0.092623 0.015145 0.016173 0.038322 0.032301 0.014448 0.070027 0.027789 0.020841 0.019040 0.133891 0.042136 0.016659 0.006028 0.063422 0.038433 0.002160 0.019020 0.086911 0.038817 0.180870 +0.151889 +0.030663 0.036882 0.036874 0.031987 0.014575 0.030555 0.010129 0.036007 0.029562 0.028666 0.014922 0.162913 0.015763 0.015694 0.028565 0.033519 0.015514 0.088360 0.027671 0.020091 0.021024 0.133891 0.040850 0.015369 0.006686 0.110401 0.040307 0.001814 0.020840 0.157380 0.042148 0.204360 +0.244817 +0.031681 0.035677 0.030720 0.029325 0.018519 0.219783 0.011244 0.037248 0.029007 0.031346 0.015325 0.064696 0.015036 0.015795 0.030284 0.029619 0.018523 0.117279 0.027217 0.019230 0.019073 0.063422 0.038266 0.014711 0.010500 0.086911 0.039043 0.000614 0.020676 0.063422 0.041826 0.133891 +0.521023 +0.032793 0.034053 0.028769 0.033183 0.015600 0.103932 0.009617 0.037134 0.028325 0.028576 0.014252 0.100639 0.016191 0.016294 0.030434 0.031701 0.018430 0.043335 0.028119 0.019579 0.021429 0.133891 0.041137 0.012341 0.013700 0.133891 0.039056 0.000474 0.019080 0.133891 0.038909 0.157380 +0.262741 +0.032222 0.032932 0.028316 0.029384 0.014508 0.228522 0.010896 0.035681 0.030465 0.028572 0.014968 0.026188 0.015343 0.016189 0.028710 0.029551 0.015005 0.040582 0.028187 0.021017 0.019947 0.063422 0.037879 0.017358 0.007006 0.110401 0.041754 0.001567 0.019995 0.110401 0.038265 0.133891 +0.364366 +0.028752 0.034945 0.033365 0.028700 0.017200 0.037541 0.010943 0.036566 0.029700 0.029289 0.017510 0.201425 0.015857 0.015977 0.028781 0.028419 0.015234 0.026034 0.029531 0.019739 0.021837 0.133891 0.038297 0.014331 0.013552 0.086911 0.040835 0.001960 0.019641 0.086911 0.041716 0.180870 +0.218725 +0.028483 0.036304 0.028283 0.029360 0.018519 0.129862 0.010813 0.036843 0.028680 0.028623 0.017974 0.103739 0.016418 0.015684 0.030015 0.030008 0.017102 0.095289 0.029343 0.020061 0.018955 0.063422 0.039563 0.011838 0.004870 0.086911 0.037936 0.000076 0.020994 0.110401 0.040575 0.133891 +0.385183 +0.029676 0.037009 0.028618 0.030217 0.017799 0.244508 0.010431 0.037029 0.029477 0.029486 0.016441 0.122941 0.015183 0.016124 0.028244 0.028203 0.014714 0.032381 0.028696 0.020215 0.019806 0.063422 0.040926 0.013480 0.009832 0.086911 0.041456 0.000618 0.019038 0.086911 0.040815 0.157380 +0.401125 +0.029378 0.038046 0.030165 0.028488 0.015417 0.018377 0.009994 0.035872 0.028797 0.029821 0.014314 0.099779 0.015706 0.016276 0.029717 0.029550 0.016232 0.026482 0.028406 0.019891 0.022910 0.157380 0.038133 0.017756 0.011878 0.086911 0.042223 0.000293 0.020810 0.157380 0.038189 0.180870 +0.081846 +0.028266 0.037882 0.030163 0.030748 0.015782 0.042167 0.011101 0.035905 0.028625 0.031400 0.018304 0.019014 0.016352 0.015860 0.032958 0.031018 0.017560 0.121491 0.030828 0.021127 0.020256 0.133891 0.041629 0.017097 0.008704 0.086911 0.037867 0.001584 0.020136 0.086911 0.039331 0.157380 +0.114264 +0.030803 0.039104 0.030403 0.030284 0.016167 0.076715 0.011069 0.035839 0.029807 0.030967 0.016820 0.030904 0.016065 0.015676 0.032299 0.028192 0.016131 0.058425 0.028554 0.019999 0.018944 0.063422 0.039682 0.012488 0.011501 0.157380 0.042276 0.000176 0.020959 0.086911 0.038035 0.180870 +0.067991 +0.031408 0.037414 0.030587 0.029732 0.014886 0.020575 0.011012 0.036043 0.029278 0.030902 0.015211 0.021632 0.016352 0.015810 0.028670 0.030021 0.014237 0.103225 0.028661 0.020415 0.020425 0.110401 0.042181 0.012107 0.012434 0.063422 0.039154 0.000234 0.019002 0.110401 0.040510 0.133891 +0.087030 +0.030788 0.038124 0.029272 0.028200 0.015404 0.062714 0.009439 0.036157 0.034475 0.046910 0.017562 0.042212 0.016364 0.015883 0.043889 0.030633 0.015699 0.074118 0.029993 0.019208 0.020212 0.063422 0.039127 0.015453 0.009312 0.063422 0.039808 0.002299 0.021034 0.086911 0.039230 0.157380 +0.078313 +0.030723 0.039697 0.029681 0.029560 0.014731 0.219472 0.011664 0.037046 0.028997 0.033369 0.014766 0.083349 0.016297 0.015890 0.031556 0.033126 0.014634 0.108704 0.028298 0.018850 0.019052 0.110401 0.041181 0.017082 0.010785 0.157380 0.038156 0.000896 0.020486 0.063422 0.038917 0.180870 +0.508542 +0.028425 0.036497 0.028872 0.031717 0.017572 0.028293 0.011290 0.035800 0.029177 0.029056 0.016728 0.026536 0.015839 0.015654 0.030033 0.029192 0.017285 0.055164 0.026696 0.019826 0.019528 0.110401 0.041552 0.017309 0.009798 0.063422 0.038736 0.000233 0.019817 0.086911 0.038696 0.133891 +0.030944 +0.032746 0.039675 0.032415 0.033599 0.018133 0.050945 0.010391 0.036415 0.029065 0.028285 0.017953 0.026490 0.015688 0.015673 0.029728 0.029563 0.014349 0.116959 0.026270 0.020754 0.022509 0.133891 0.038029 0.013832 0.009787 0.110401 0.040489 0.001496 0.020125 0.063422 0.037789 0.157380 +0.140870 +0.031959 0.034712 0.029165 0.031039 0.016744 0.074434 0.009992 0.037556 0.028923 0.028728 0.016792 0.017552 0.015857 0.016333 0.030034 0.030309 0.017430 0.262117 0.028188 0.019578 0.020833 0.110401 0.038693 0.012739 0.010527 0.063422 0.038291 0.002333 0.020902 0.086911 0.039215 0.133891 +0.513930 +0.028547 0.036928 0.028536 0.030430 0.017970 0.023562 0.009712 0.037156 0.028770 0.029324 0.014485 0.036449 0.016188 0.016381 0.031604 0.030586 0.015099 0.104754 0.028492 0.018938 0.021706 0.133891 0.039774 0.017697 0.012637 0.063422 0.040000 0.001110 0.019811 0.110401 0.039312 0.157380 +0.100730 +0.031661 0.039896 0.028856 0.028354 0.016859 0.054416 0.010319 0.037457 0.032829 0.030524 0.018621 0.058973 0.015343 0.015612 0.028791 0.028698 0.015603 0.055539 0.029983 0.021006 0.022770 0.086911 0.038618 0.018738 0.004883 0.133891 0.039335 0.001523 0.019313 0.110401 0.037809 0.204360 +0.077811 +0.032819 0.033402 0.033115 0.028629 0.017056 0.025562 0.009588 0.036564 0.040213 0.030358 0.018429 0.023827 0.015906 0.016423 0.028963 0.029386 0.018595 0.045093 0.028098 0.020188 0.020839 0.110401 0.038458 0.017944 0.012103 0.063422 0.038555 0.001178 0.019197 0.086911 0.040273 0.133891 +0.014851 +0.030425 0.037978 0.028905 0.030585 0.016839 0.081936 0.009596 0.035770 0.028323 0.028437 0.018035 0.191860 0.016336 0.015745 0.031388 0.031035 0.016511 0.258000 0.029316 0.019274 0.021907 0.180870 0.040271 0.015706 0.008419 0.180870 0.038572 0.000680 0.019595 0.110401 0.037985 0.204360 +0.748956 +0.029663 0.035709 0.028452 0.029217 0.017314 0.074650 0.011510 0.036953 0.029645 0.028626 0.017104 0.118975 0.016234 0.015694 0.028904 0.033685 0.016341 0.049956 0.028788 0.020546 0.021430 0.086911 0.040218 0.015510 0.006638 0.133891 0.038032 0.002131 0.020764 0.133891 0.039896 0.204360 +0.216655 +0.030687 0.036044 0.030304 0.029542 0.018767 0.171967 0.010743 0.036479 0.031985 0.028718 0.017517 0.044773 0.015640 0.016208 0.028771 0.029985 0.016046 0.028001 0.027989 0.019684 0.019438 0.063422 0.040378 0.014669 0.007932 0.063422 0.040471 0.001713 0.020705 0.086911 0.041356 0.180870 +0.201198 +0.031156 0.036309 0.029075 0.029661 0.015449 0.108022 0.009474 0.036601 0.028539 0.030201 0.016208 0.046933 0.016303 0.015876 0.028284 0.030724 0.015717 0.026802 0.028341 0.019564 0.021859 0.086911 0.041049 0.015770 0.009000 0.110401 0.037754 0.001453 0.019754 0.110401 0.038793 0.133891 +0.256363 +0.031100 0.038612 0.030552 0.029438 0.015013 0.177095 0.009762 0.035419 0.028267 0.029452 0.017980 0.123749 0.015506 0.015894 0.034180 0.029336 0.018303 0.078984 0.027654 0.020440 0.020183 0.110401 0.037805 0.014453 0.011943 0.110401 0.039908 0.000370 0.020406 0.063422 0.039640 0.180870 +0.419378 +0.029549 0.035155 0.029099 0.028347 0.016398 0.078794 0.009792 0.036597 0.028433 0.031229 0.014918 0.146118 0.015695 0.016020 0.028845 0.028497 0.018478 0.022875 0.027105 0.019066 0.023219 0.063422 0.037773 0.016536 0.009808 0.086911 0.037806 0.001911 0.019028 0.086911 0.040034 0.133891 +0.327414 +0.032547 0.035938 0.029942 0.034199 0.014268 0.109510 0.010870 0.035254 0.030404 0.029614 0.016156 0.042004 0.016254 0.015814 0.031719 0.031018 0.017716 0.103195 0.030967 0.020723 0.019043 0.086911 0.038658 0.016035 0.004879 0.110401 0.039451 0.000355 0.019919 0.063422 0.037778 0.133891 +0.331404 +0.030625 0.038840 0.029143 0.029659 0.015211 0.180347 0.011302 0.035906 0.031320 0.028486 0.015477 0.023775 0.015038 0.015684 0.031090 0.031231 0.018075 0.141028 0.028424 0.020949 0.023027 0.063422 0.039135 0.013512 0.011312 0.110401 0.042236 0.001012 0.020750 0.110401 0.039402 0.157380 +0.399965 +0.029492 0.034002 0.029953 0.032335 0.015500 0.048088 0.011359 0.037552 0.028812 0.028588 0.018244 0.043381 0.015999 0.015572 0.034896 0.032479 0.016189 0.085469 0.027311 0.020519 0.021660 0.110401 0.038095 0.016509 0.012948 0.110401 0.041854 0.001888 0.020687 0.086911 0.038574 0.133891 +0.216466 +0.032354 0.033174 0.029043 0.029223 0.017521 0.360759 0.009901 0.037232 0.029483 0.031587 0.017875 0.039659 0.015894 0.015754 0.028313 0.029823 0.016993 0.017493 0.027081 0.019634 0.020286 0.086911 0.041477 0.014622 0.010043 0.086911 0.037648 0.000435 0.019979 0.063422 0.039073 0.157380 +0.493491 +0.029897 0.035584 0.032961 0.028899 0.016372 0.020214 0.009785 0.035294 0.033014 0.032949 0.018198 0.133207 0.015403 0.016197 0.028343 0.028842 0.016926 0.131111 0.027824 0.020226 0.020017 0.133891 0.041654 0.012170 0.012611 0.133891 0.039301 0.000383 0.019348 0.063422 0.039026 0.180870 +0.299600 +0.029771 0.037445 0.030599 0.028833 0.015889 0.092103 0.011189 0.036667 0.028457 0.028592 0.014260 0.047201 0.015581 0.016308 0.029591 0.030140 0.017541 0.111674 0.029054 0.020044 0.019819 0.086911 0.042198 0.016804 0.005133 0.110401 0.039448 0.001312 0.019604 0.133891 0.039469 0.204360 +0.216576 +0.029089 0.036880 0.033132 0.031616 0.016762 0.036594 0.010441 0.035991 0.029167 0.029608 0.018152 0.016654 0.015833 0.016363 0.028581 0.037216 0.015747 0.165730 0.026922 0.018950 0.021378 0.157380 0.039491 0.016039 0.012304 0.157380 0.039921 0.001396 0.019281 0.086911 0.039373 0.204360 +0.131229 +0.028402 0.037410 0.032901 0.033898 0.014508 0.149611 0.010407 0.037268 0.029456 0.028514 0.018438 0.094051 0.016004 0.015623 0.032616 0.032243 0.015354 0.028006 0.027316 0.020397 0.020633 0.133891 0.039800 0.012701 0.010602 0.133891 0.039229 0.001183 0.019963 0.063422 0.040111 0.157380 +0.354934 +0.032511 0.032931 0.031831 0.029576 0.016149 0.127492 0.011242 0.036869 0.028964 0.031285 0.014221 0.067973 0.015484 0.015616 0.028243 0.028628 0.016605 0.189147 0.028373 0.019834 0.021891 0.086911 0.039745 0.018573 0.007509 0.063422 0.041275 0.000080 0.019769 0.086911 0.038296 0.180870 +0.499514 +0.030752 0.034183 0.033587 0.030318 0.015572 0.194149 0.009601 0.035717 0.029534 0.029541 0.017521 0.184787 0.016383 0.016423 0.031333 0.029686 0.017113 0.193099 0.027624 0.019067 0.021912 0.063422 0.040166 0.013974 0.005296 0.086911 0.039158 0.000394 0.020562 0.086911 0.040330 0.133891 +0.685405 +0.028781 0.033121 0.032832 0.034252 0.016490 0.020731 0.010628 0.036660 0.033425 0.028705 0.014130 0.044685 0.016098 0.016261 0.031878 0.031579 0.015842 0.215224 0.029013 0.020382 0.021126 0.086911 0.042250 0.013959 0.011495 0.086911 0.037708 0.000106 0.019087 0.110401 0.041823 0.133891 +0.301571 +0.029539 0.034214 0.028563 0.028790 0.015193 0.026970 0.011695 0.036998 0.029038 0.029560 0.014940 0.151958 0.015624 0.016414 0.030946 0.028772 0.014503 0.137238 0.028621 0.020544 0.023459 0.063422 0.038817 0.015409 0.012245 0.110401 0.039397 0.002179 0.018924 0.086911 0.039657 0.157380 +0.354766 +0.029394 0.035516 0.030275 0.030774 0.015269 0.043587 0.009545 0.036182 0.029586 0.028321 0.014963 0.068677 0.015062 0.015697 0.030316 0.028851 0.017143 0.061347 0.030193 0.019024 0.023487 0.086911 0.038684 0.012511 0.013329 0.063422 0.039596 0.001753 0.020852 0.133891 0.042048 0.157380 +0.075487 +0.032786 0.035194 0.028856 0.028626 0.017631 0.025558 0.009521 0.036700 0.028455 0.028612 0.018321 0.102220 0.016372 0.015678 0.029569 0.031567 0.017318 0.053647 0.028577 0.018798 0.023094 0.157380 0.039262 0.013042 0.010487 0.063422 0.041496 0.001590 0.020124 0.157380 0.037992 0.180870 +0.159905 +0.031733 0.035917 0.028813 0.029913 0.016331 0.055371 0.011035 0.036651 0.028826 0.028912 0.017133 0.057181 0.015312 0.016076 0.030697 0.029007 0.015869 0.194047 0.028510 0.018965 0.023294 0.110401 0.038027 0.015984 0.008182 0.110401 0.042133 0.002332 0.021030 0.157380 0.041645 0.180870 +0.281262 +0.029686 0.036321 0.029480 0.033813 0.015142 0.130602 0.010367 0.036405 0.033645 0.029907 0.017637 0.076219 0.016423 0.015715 0.031031 0.029192 0.017484 0.056170 0.026056 0.019701 0.020367 0.133891 0.040640 0.016029 0.011138 0.110401 0.041927 0.001260 0.020451 0.086911 0.039609 0.157380 +0.327503 +0.029031 0.038451 0.028440 0.028889 0.018641 0.101539 0.009565 0.035813 0.030392 0.030364 0.016212 0.026478 0.015237 0.016181 0.028865 0.030479 0.015592 0.113299 0.028813 0.020822 0.021586 0.086911 0.040058 0.014793 0.013132 0.086911 0.039671 0.001563 0.020678 0.063422 0.038455 0.133891 +0.269648 +0.032542 0.035748 0.036033 0.028224 0.015334 0.044587 0.009449 0.035303 0.028420 0.031855 0.016269 0.016677 0.016211 0.016052 0.030176 0.036793 0.015596 0.074700 0.027369 0.018808 0.020132 0.110401 0.041540 0.018724 0.008640 0.063422 0.040738 0.001523 0.019980 0.133891 0.041041 0.180870 +0.011248 +0.029164 0.039232 0.031393 0.028302 0.017199 0.043145 0.010857 0.036858 0.029122 0.034533 0.016665 0.257006 0.015101 0.016385 0.028895 0.028873 0.016482 0.061873 0.027904 0.019951 0.020191 0.110401 0.041246 0.018416 0.005909 0.110401 0.040741 0.000875 0.018800 0.133891 0.037732 0.157380 +0.459485 +0.030075 0.033296 0.030729 0.029015 0.016438 0.094456 0.010840 0.037545 0.029169 0.029420 0.015293 0.026257 0.015896 0.015605 0.029484 0.044395 0.017146 0.239518 0.026799 0.019625 0.021606 0.086911 0.037946 0.012168 0.008079 0.110401 0.038571 0.001747 0.020968 0.086911 0.041553 0.133891 +0.439178 +0.032623 0.033328 0.028491 0.039972 0.017624 0.058607 0.011262 0.037136 0.029020 0.030006 0.014258 0.030041 0.015437 0.016430 0.032099 0.031415 0.014560 0.047485 0.027206 0.019910 0.022785 0.063422 0.039535 0.013054 0.010748 0.133891 0.042115 0.000976 0.019043 0.086911 0.040455 0.180870 +0.038324 +0.030596 0.035342 0.028426 0.028457 0.018406 0.018918 0.009952 0.036281 0.030991 0.028716 0.018569 0.057681 0.015915 0.015651 0.029078 0.028298 0.016310 0.065206 0.027380 0.019491 0.018975 0.063422 0.041274 0.015283 0.013597 0.063422 0.041452 0.000585 0.019408 0.086911 0.039542 0.180870 +0 +0.028634 0.033844 0.030212 0.031761 0.017896 0.056205 0.011572 0.036894 0.032064 0.028714 0.017448 0.079147 0.015514 0.015576 0.030500 0.028903 0.016511 0.022268 0.029098 0.020569 0.021097 0.110401 0.038689 0.012485 0.007479 0.086911 0.040809 0.000322 0.020059 0.110401 0.037957 0.204360 +0.067506 +0.030099 0.033466 0.032934 0.028196 0.018000 0.153866 0.010679 0.036076 0.031781 0.030485 0.014230 0.062176 0.016042 0.016304 0.028526 0.029241 0.017910 0.040634 0.028938 0.018911 0.021283 0.133891 0.042226 0.014392 0.005956 0.133891 0.041268 0.000530 0.020915 0.110401 0.039594 0.204360 +0.307771 +0.030793 0.034131 0.030022 0.028848 0.017226 0.106846 0.010368 0.037507 0.028238 0.029048 0.015970 0.133355 0.016058 0.016167 0.032671 0.030823 0.016537 0.025741 0.027645 0.019515 0.021404 0.110401 0.039333 0.017052 0.011703 0.110401 0.040308 0.000524 0.020991 0.086911 0.041442 0.133891 +0.371864 +0.029640 0.035239 0.028255 0.028234 0.014389 0.020097 0.011462 0.036488 0.031594 0.029144 0.014765 0.028963 0.016217 0.015975 0.028514 0.028362 0.015902 0.019524 0.029066 0.019686 0.020391 0.063422 0.039755 0.017239 0.007361 0.063422 0.039526 0.000579 0.020884 0.086911 0.039922 0.157380 +0 +0.029379 0.039572 0.030376 0.030433 0.015760 0.023998 0.009576 0.036880 0.029106 0.035366 0.017270 0.069373 0.015963 0.016359 0.028783 0.034399 0.018516 0.031664 0.027393 0.019670 0.021967 0.063422 0.039312 0.013504 0.007691 0.063422 0.040469 0.001230 0.020202 0.110401 0.038748 0.133891 +0.044823 +0.029485 0.033243 0.028311 0.030425 0.016231 0.094580 0.009623 0.036882 0.028974 0.034808 0.014635 0.118436 0.016136 0.015604 0.029172 0.030758 0.016319 0.030415 0.030134 0.019182 0.021514 0.133891 0.037792 0.016802 0.006448 0.110401 0.041223 0.001076 0.018847 0.133891 0.041347 0.180870 +0.172026 +0.029027 0.037503 0.028633 0.028233 0.016344 0.029953 0.009872 0.037489 0.028829 0.034165 0.016609 0.126052 0.016106 0.016153 0.029308 0.030165 0.018466 0.260770 0.027789 0.020354 0.019191 0.110401 0.040864 0.018358 0.013238 0.157380 0.039085 0.000438 0.020162 0.180870 0.039045 0.204360 +0.561911 +0.030269 0.035073 0.029112 0.035174 0.014267 0.113793 0.009414 0.036189 0.029653 0.028810 0.016161 0.040011 0.016387 0.016093 0.029375 0.029089 0.016257 0.077123 0.027960 0.019392 0.020246 0.086911 0.038413 0.017985 0.006802 0.086911 0.037598 0.001915 0.020863 0.110401 0.039851 0.133891 +0.235234 +0.028588 0.036352 0.028366 0.028257 0.018270 0.090133 0.010096 0.035988 0.028527 0.028329 0.015566 0.029543 0.016291 0.016045 0.030512 0.028861 0.014797 0.019891 0.027860 0.018832 0.022459 0.086911 0.037801 0.015335 0.010038 0.157380 0.041528 0.000086 0.020553 0.110401 0.040420 0.180870 +0.081758 +0.032245 0.038050 0.028574 0.033804 0.016979 0.045937 0.010441 0.035576 0.033106 0.034499 0.015191 0.049271 0.016427 0.015517 0.028359 0.029295 0.016386 0.082802 0.027661 0.020148 0.020060 0.063422 0.040204 0.017426 0.012200 0.110401 0.040944 0.000397 0.019713 0.110401 0.039310 0.133891 +0.133865 +0.028937 0.035010 0.031574 0.028781 0.017221 0.095804 0.011623 0.035893 0.028242 0.030203 0.017729 0.238707 0.015364 0.015869 0.030311 0.029076 0.017437 0.021431 0.028538 0.020798 0.019448 0.086911 0.037724 0.016222 0.012859 0.110401 0.040934 0.001917 0.020369 0.086911 0.038134 0.157380 +0.441754 +0.028214 0.032905 0.029104 0.029145 0.014638 0.073844 0.010656 0.037489 0.035400 0.041713 0.018514 0.126826 0.015928 0.015970 0.031812 0.028741 0.014814 0.112166 0.028978 0.020846 0.021281 0.063422 0.037983 0.012662 0.010923 0.110401 0.038032 0.002280 0.018828 0.110401 0.039663 0.204360 +0.311723 +0.031231 0.038138 0.029783 0.034924 0.016893 0.072514 0.009533 0.036721 0.029904 0.029373 0.016850 0.045416 0.015491 0.016100 0.034279 0.029625 0.015118 0.098626 0.029017 0.019841 0.019272 0.133891 0.041887 0.013597 0.006735 0.133891 0.040562 0.001919 0.019320 0.086911 0.037698 0.157380 +0.178503 +0.031120 0.038054 0.030453 0.032301 0.017666 0.189419 0.010333 0.036689 0.029165 0.030459 0.017362 0.049758 0.015834 0.015571 0.031680 0.030623 0.017819 0.017107 0.030663 0.019726 0.020706 0.180870 0.041434 0.014567 0.010333 0.133891 0.041655 0.001533 0.019125 0.063422 0.037678 0.204360 +0.264087 +0.029372 0.033210 0.029755 0.030844 0.017896 0.028447 0.010851 0.036873 0.031033 0.030965 0.016949 0.056688 0.016345 0.016370 0.028282 0.032523 0.018727 0.142338 0.026835 0.020232 0.018940 0.110401 0.037603 0.014850 0.006764 0.157380 0.041720 0.001487 0.018901 0.063422 0.042117 0.204360 +0.228409 +0.031866 0.034624 0.029262 0.036176 0.018057 0.187070 0.010784 0.035883 0.028306 0.032498 0.018060 0.035863 0.016353 0.016344 0.032028 0.028938 0.016693 0.059635 0.029780 0.020772 0.020716 0.086911 0.042271 0.017707 0.009446 0.133891 0.041589 0.001140 0.018899 0.086911 0.037944 0.157380 +0.259326 +0.029593 0.036557 0.030626 0.032641 0.017038 0.174119 0.010567 0.035647 0.031711 0.029899 0.014919 0.055832 0.015422 0.016057 0.034330 0.030459 0.018036 0.114282 0.028068 0.018923 0.019505 0.110401 0.040672 0.018126 0.005733 0.110401 0.039221 0.001869 0.020649 0.110401 0.040106 0.157380 +0.379051 +0.028890 0.036200 0.031300 0.032465 0.014536 0.114891 0.009882 0.036348 0.031067 0.029494 0.016493 0.117516 0.015060 0.015779 0.029234 0.028393 0.018172 0.174141 0.027576 0.020683 0.022976 0.157380 0.041122 0.014469 0.013757 0.180870 0.041707 0.000028 0.019234 0.086911 0.041802 0.204360 +0.506433 +0.030910 0.036655 0.029556 0.038668 0.017036 0.135127 0.010246 0.035789 0.028353 0.030363 0.015049 0.036466 0.015266 0.016011 0.030106 0.030700 0.015208 0.194586 0.028690 0.020591 0.020837 0.086911 0.040341 0.014588 0.011683 0.086911 0.038128 0.000721 0.019371 0.086911 0.040372 0.157380 +0.417671 +0.031689 0.036547 0.032904 0.031106 0.018578 0.087732 0.010494 0.037016 0.033256 0.030379 0.014897 0.092752 0.015347 0.015983 0.028385 0.037743 0.015398 0.053324 0.026366 0.021082 0.022459 0.133891 0.038154 0.018133 0.013897 0.133891 0.042063 0.000267 0.021129 0.086911 0.037705 0.180870 +0.140459 +0.029774 0.037004 0.029295 0.031274 0.017932 0.183308 0.011642 0.035945 0.028278 0.028342 0.016899 0.063002 0.016022 0.016205 0.030189 0.029813 0.014432 0.092879 0.026657 0.020707 0.020291 0.086911 0.039779 0.015180 0.011967 0.133891 0.040772 0.002074 0.019638 0.110401 0.041999 0.157380 +0.461058 +0.030775 0.039498 0.028436 0.029255 0.017459 0.101925 0.010817 0.036117 0.028575 0.034279 0.018128 0.026888 0.015615 0.016161 0.031542 0.030720 0.015017 0.104781 0.028039 0.021050 0.019961 0.157380 0.039360 0.012878 0.009607 0.157380 0.041875 0.001574 0.018895 0.157380 0.039354 0.180870 +0.226185 +0.031391 0.036739 0.030786 0.029033 0.018190 0.059843 0.010329 0.036647 0.032257 0.029425 0.016414 0.126525 0.016012 0.015672 0.028808 0.028239 0.018025 0.048252 0.029449 0.021012 0.020106 0.180870 0.037621 0.014796 0.005996 0.086911 0.041399 0.001695 0.020569 0.180870 0.039145 0.204360 +0.213131 +0.032649 0.033282 0.028442 0.031316 0.017163 0.050421 0.010991 0.037232 0.028611 0.033815 0.014355 0.180909 0.015339 0.015764 0.031657 0.029338 0.017102 0.151635 0.027004 0.020638 0.021555 0.063422 0.039251 0.011843 0.010857 0.110401 0.042209 0.002060 0.019009 0.063422 0.038212 0.180870 +0.465770 +0.028233 0.036003 0.031943 0.028610 0.018560 0.082682 0.011569 0.035501 0.031218 0.028465 0.016825 0.079079 0.015131 0.016173 0.032945 0.029482 0.015993 0.215946 0.027568 0.020059 0.022189 0.157380 0.040182 0.014191 0.006551 0.180870 0.041498 0.001600 0.018796 0.180870 0.039145 0.204360 +0.404277 +0.028566 0.039285 0.035232 0.031105 0.017457 0.292903 0.010657 0.037061 0.029479 0.030528 0.016265 0.036164 0.016325 0.016217 0.029510 0.028652 0.016100 0.095376 0.028492 0.020224 0.023424 0.110401 0.040978 0.016744 0.009275 0.086911 0.038878 0.001258 0.019787 0.110401 0.038880 0.180870 +0.526860 +0.029074 0.034605 0.030157 0.028485 0.017641 0.085012 0.010273 0.036139 0.030552 0.036772 0.014524 0.111371 0.015238 0.016171 0.028944 0.030657 0.014369 0.148051 0.028134 0.020127 0.022651 0.110401 0.038832 0.018476 0.004730 0.086911 0.040886 0.000489 0.018852 0.086911 0.042061 0.157380 +0.314559 +0.030368 0.036375 0.029922 0.032712 0.018725 0.037249 0.009858 0.035794 0.029070 0.028975 0.018726 0.283997 0.016408 0.016283 0.028189 0.029240 0.014274 0.061462 0.027566 0.020680 0.021554 0.157380 0.039143 0.017009 0.012158 0.086911 0.040239 0.001540 0.019915 0.063422 0.041277 0.180870 +0.425303 +0.032595 0.037834 0.030147 0.029937 0.016615 0.029512 0.009923 0.035574 0.030575 0.032716 0.016221 0.041172 0.015329 0.016153 0.028464 0.031011 0.014807 0.157262 0.027967 0.019827 0.019421 0.110401 0.040517 0.013667 0.009639 0.180870 0.038713 0.000469 0.020969 0.157380 0.042242 0.204360 +0.146101 +0.031246 0.034047 0.029835 0.030359 0.018770 0.018896 0.010802 0.036001 0.033125 0.030668 0.017125 0.038139 0.015109 0.016071 0.028854 0.031369 0.014759 0.088149 0.026370 0.018906 0.021488 0.110401 0.041858 0.016493 0.010893 0.086911 0.041956 0.002008 0.020264 0.086911 0.040735 0.133891 +0.088257 +0.028602 0.035769 0.028262 0.031474 0.014600 0.017071 0.009620 0.036122 0.029656 0.032971 0.014691 0.060467 0.016328 0.016256 0.032425 0.029504 0.015156 0.114743 0.026283 0.019959 0.020453 0.110401 0.040394 0.016894 0.005928 0.086911 0.042003 0.001175 0.019719 0.063422 0.040101 0.133891 +0.158713 +0.032237 0.035740 0.028223 0.029531 0.016801 0.071698 0.009706 0.035320 0.029990 0.028828 0.015513 0.080089 0.016149 0.016045 0.033631 0.032859 0.017373 0.141130 0.027336 0.020508 0.020211 0.180870 0.039945 0.012740 0.012441 0.180870 0.040988 0.001038 0.020178 0.086911 0.039721 0.204360 +0.371187 +0.028643 0.039028 0.038245 0.032875 0.017722 0.016492 0.010465 0.035411 0.030017 0.029372 0.014191 0.037706 0.015674 0.016325 0.030580 0.030657 0.017721 0.048521 0.030218 0.020823 0.022415 0.157380 0.038826 0.012044 0.006571 0.110401 0.038050 0.001713 0.018987 0.180870 0.041762 0.204360 +0.012249 +0.032303 0.037388 0.029182 0.028442 0.015908 0.153779 0.010045 0.035838 0.029191 0.030550 0.016158 0.040327 0.015602 0.015843 0.028372 0.031103 0.016298 0.023487 0.027024 0.019070 0.019270 0.133891 0.039360 0.013258 0.006363 0.086911 0.040863 0.001672 0.021108 0.157380 0.040861 0.204360 +0.233234 +0.028293 0.034703 0.034116 0.031099 0.016663 0.019270 0.009719 0.036822 0.029869 0.031666 0.016040 0.027173 0.015862 0.015872 0.029544 0.032547 0.014810 0.065190 0.025980 0.020578 0.020803 0.133891 0.038075 0.018719 0.009459 0.063422 0.041957 0.001559 0.019641 0.133891 0.038386 0.204360 +0 +0.032162 0.036639 0.041641 0.029437 0.016470 0.130548 0.010376 0.035828 0.033717 0.028755 0.015392 0.135773 0.015124 0.016230 0.028243 0.030777 0.014261 0.054286 0.028568 0.020826 0.023072 0.180870 0.040256 0.014921 0.012510 0.180870 0.041913 0.001036 0.019027 0.157380 0.039541 0.204360 +0.342750 +0.031539 0.038732 0.028821 0.038131 0.017805 0.016582 0.011242 0.036952 0.037557 0.028425 0.014344 0.078556 0.015656 0.015935 0.030606 0.042076 0.016471 0.125387 0.029575 0.021049 0.021919 0.110401 0.039426 0.014730 0.005660 0.086911 0.041213 0.001848 0.020200 0.063422 0.041953 0.157380 +0.139389 +0.029705 0.034218 0.033689 0.029122 0.014658 0.041050 0.011386 0.037361 0.040684 0.028756 0.015281 0.115975 0.015155 0.015823 0.029381 0.036256 0.015805 0.018720 0.026793 0.020980 0.021864 0.063422 0.039789 0.013857 0.013950 0.180870 0.041277 0.001163 0.020614 0.180870 0.041491 0.204360 +0.106204 +0.032112 0.039172 0.031539 0.028193 0.014765 0.087440 0.009803 0.035428 0.028836 0.029618 0.015079 0.054749 0.015725 0.015981 0.029442 0.038147 0.018135 0.061157 0.028749 0.020240 0.019875 0.133891 0.039862 0.018145 0.009997 0.063422 0.041731 0.001509 0.019655 0.086911 0.040032 0.180870 +0.111411 +0.030014 0.038179 0.029787 0.032919 0.014411 0.063113 0.011179 0.036068 0.029102 0.028514 0.017611 0.091431 0.015142 0.016243 0.032661 0.028478 0.017219 0.042409 0.027836 0.019749 0.020801 0.063422 0.038479 0.012722 0.006938 0.157380 0.038453 0.001978 0.019490 0.110401 0.038031 0.180870 +0.185738 +0.030975 0.039837 0.032006 0.031833 0.017624 0.190572 0.009404 0.037502 0.032280 0.028266 0.017791 0.075602 0.015970 0.015716 0.029564 0.030555 0.015512 0.066512 0.027039 0.020639 0.020841 0.157380 0.039641 0.016148 0.011884 0.157380 0.038977 0.001223 0.019936 0.157380 0.039817 0.180870 +0.466463 +0.031894 0.036660 0.028611 0.039781 0.016202 0.047231 0.011391 0.036434 0.029921 0.030750 0.017472 0.150095 0.016345 0.016216 0.030001 0.029643 0.016594 0.040613 0.028005 0.020328 0.020585 0.086911 0.041814 0.017447 0.005608 0.063422 0.040892 0.001170 0.019514 0.086911 0.040701 0.180870 +0.156195 +0.031463 0.034346 0.028445 0.030022 0.014721 0.041839 0.009668 0.036001 0.034014 0.028955 0.016871 0.056014 0.015460 0.015776 0.032247 0.032568 0.015512 0.049726 0.030493 0.021039 0.019705 0.133891 0.038478 0.012513 0.014060 0.110401 0.040312 0.000317 0.019510 0.086911 0.038907 0.157380 +0.067261 +0.028418 0.039200 0.031625 0.031733 0.014910 0.116615 0.010806 0.035297 0.029314 0.030989 0.015809 0.017847 0.016324 0.016360 0.028760 0.036719 0.015249 0.035047 0.029256 0.019486 0.022950 0.086911 0.040188 0.013073 0.010382 0.133891 0.039776 0.001995 0.019855 0.110401 0.038234 0.157380 +0.082436 +0.032346 0.038616 0.033864 0.028362 0.016718 0.051845 0.011158 0.036741 0.030859 0.035435 0.016038 0.139999 0.015143 0.015682 0.029375 0.037807 0.015420 0.056675 0.027376 0.019963 0.022317 0.086911 0.040820 0.018030 0.006939 0.086911 0.037908 0.001488 0.019400 0.063422 0.038710 0.133891 +0.197037 +0.032489 0.036508 0.035134 0.030609 0.016353 0.123953 0.010162 0.036798 0.034187 0.028739 0.017046 0.135325 0.016329 0.015575 0.028825 0.030213 0.014478 0.030988 0.026716 0.019929 0.022326 0.110401 0.041107 0.017878 0.010517 0.133891 0.040748 0.001981 0.019976 0.086911 0.039205 0.180870 +0.240381 +0.032504 0.034280 0.028289 0.032673 0.014668 0.017487 0.010830 0.035601 0.031105 0.028700 0.018444 0.068352 0.015567 0.016251 0.031157 0.029523 0.018339 0.089690 0.029172 0.019237 0.023054 0.063422 0.040476 0.015404 0.004818 0.063422 0.038596 0.000308 0.019052 0.063422 0.038584 0.133891 +0.103718 +0.031979 0.039636 0.028373 0.028750 0.014554 0.058642 0.010627 0.036901 0.028209 0.029005 0.014331 0.024431 0.016400 0.016129 0.031643 0.028915 0.014148 0.045882 0.027316 0.019241 0.022270 0.063422 0.038792 0.018403 0.011038 0.110401 0.039785 0.001148 0.019173 0.110401 0.041520 0.157380 +0.011338 +0.031819 0.037807 0.029660 0.030430 0.018382 0.075275 0.011682 0.037442 0.028808 0.029340 0.017264 0.075129 0.016113 0.016182 0.031468 0.031361 0.017018 0.018408 0.027468 0.020532 0.023336 0.063422 0.038251 0.017377 0.007622 0.063422 0.041061 0.000563 0.019653 0.086911 0.037668 0.157380 +0.106512 +0.029990 0.035908 0.028617 0.029502 0.017995 0.109121 0.011266 0.035926 0.035489 0.030103 0.016385 0.091748 0.015537 0.016042 0.028685 0.029559 0.017247 0.132574 0.027496 0.019217 0.021975 0.133891 0.039986 0.012984 0.005867 0.110401 0.038846 0.000216 0.021050 0.133891 0.037963 0.204360 +0.427792 +0.032445 0.034698 0.029562 0.028471 0.017854 0.040011 0.010501 0.037126 0.031471 0.034150 0.015217 0.020222 0.015801 0.015598 0.031588 0.028629 0.018229 0.260116 0.026980 0.020620 0.020972 0.110401 0.040188 0.012295 0.007376 0.086911 0.038299 0.000027 0.019551 0.110401 0.039227 0.133891 +0.407125 +0.032848 0.037498 0.029462 0.041388 0.017243 0.147986 0.011730 0.037447 0.029417 0.028315 0.014762 0.017066 0.015335 0.015621 0.029859 0.031863 0.017796 0.069897 0.027916 0.018854 0.021683 0.086911 0.037641 0.015018 0.012285 0.110401 0.040769 0.001274 0.019021 0.086911 0.040246 0.180870 +0.213964 +0.032411 0.033473 0.030511 0.034991 0.014695 0.027794 0.011560 0.036073 0.028788 0.032964 0.014703 0.113926 0.015431 0.015691 0.029788 0.028453 0.017154 0.075051 0.026439 0.020933 0.021210 0.133891 0.040367 0.017743 0.008527 0.133891 0.039365 0.001772 0.019818 0.063422 0.041593 0.204360 +0.135647 +0.028626 0.039671 0.029623 0.030346 0.016501 0.052464 0.011587 0.037298 0.029631 0.028363 0.014848 0.068786 0.015740 0.016236 0.031414 0.031992 0.017359 0.272286 0.028718 0.019150 0.021034 0.086911 0.041955 0.013610 0.008412 0.180870 0.037821 0.002119 0.019882 0.133891 0.039005 0.204360 +0.524105 +0.028858 0.036497 0.030692 0.029215 0.015327 0.248958 0.011739 0.036354 0.034561 0.032086 0.016024 0.130004 0.015169 0.016102 0.035074 0.028915 0.017317 0.042910 0.027499 0.019687 0.022032 0.086911 0.039141 0.012596 0.013391 0.086911 0.038891 0.000748 0.021069 0.110401 0.039726 0.133891 +0.575252 +0.030394 0.034134 0.028845 0.029496 0.017250 0.067147 0.010661 0.036983 0.029226 0.029634 0.016911 0.020852 0.016247 0.015865 0.039928 0.031762 0.014525 0.030407 0.028600 0.019231 0.022338 0.063422 0.040071 0.015303 0.008219 0.110401 0.041677 0.000182 0.020709 0.086911 0.041426 0.133891 +0.004488 +0.028324 0.034092 0.031335 0.031422 0.018743 0.037155 0.010155 0.036556 0.038849 0.030077 0.018079 0.172962 0.015798 0.015835 0.028488 0.036128 0.015598 0.041856 0.029590 0.018855 0.023069 0.110401 0.039367 0.016907 0.013076 0.063422 0.041677 0.001722 0.020183 0.133891 0.041665 0.180870 +0.201229 +0.031480 0.039557 0.028507 0.030566 0.017184 0.040954 0.010480 0.035404 0.031150 0.029961 0.014902 0.061596 0.016314 0.015683 0.028659 0.031394 0.014931 0.124906 0.026449 0.020785 0.019228 0.110401 0.038309 0.012835 0.013909 0.063422 0.041651 0.001757 0.019511 0.086911 0.038489 0.157380 +0.230781 +0.031027 0.037754 0.028911 0.032103 0.014606 0.132654 0.011451 0.035591 0.030910 0.030134 0.016778 0.068005 0.015511 0.016354 0.028467 0.030362 0.017606 0.023420 0.030018 0.020791 0.020525 0.063422 0.040126 0.013741 0.012834 0.133891 0.040757 0.000112 0.019542 0.133891 0.037701 0.180870 +0.197167 +0.031199 0.035844 0.029046 0.040148 0.014410 0.056601 0.011165 0.036381 0.029551 0.032554 0.016130 0.100385 0.016065 0.015605 0.029741 0.028666 0.015145 0.072399 0.029396 0.020325 0.019323 0.110401 0.041241 0.015360 0.006847 0.063422 0.039189 0.001857 0.019529 0.133891 0.040785 0.204360 +0.095981 +0.029883 0.035459 0.030653 0.029052 0.016926 0.069092 0.010002 0.035357 0.030826 0.031620 0.015210 0.055393 0.015544 0.016090 0.028496 0.031687 0.015767 0.038599 0.027819 0.020927 0.022565 0.063422 0.038306 0.012248 0.008102 0.086911 0.037908 0.002089 0.020907 0.086911 0.041206 0.133891 +0.087416 +0.032239 0.032904 0.028286 0.031149 0.015103 0.159413 0.011382 0.035441 0.029246 0.029895 0.016508 0.167051 0.016002 0.016168 0.030242 0.034615 0.017783 0.063383 0.029966 0.020870 0.022413 0.086911 0.039671 0.017473 0.013935 0.133891 0.040479 0.001889 0.020227 0.110401 0.040311 0.157380 +0.470418 +0.029383 0.037953 0.028764 0.029451 0.014149 0.016854 0.010020 0.036624 0.028857 0.029691 0.018494 0.058634 0.015738 0.016329 0.028926 0.028877 0.014963 0.033126 0.026332 0.020150 0.020275 0.110401 0.039689 0.013570 0.013185 0.086911 0.039236 0.001566 0.020533 0.157380 0.040538 0.204360 +0 +0.032344 0.032899 0.030710 0.028638 0.014122 0.027308 0.010175 0.035813 0.029314 0.031567 0.016294 0.068981 0.015587 0.016303 0.029556 0.029527 0.018141 0.044949 0.029097 0.020751 0.021393 0.110401 0.040721 0.015432 0.013714 0.086911 0.040684 0.002283 0.020963 0.086911 0.041750 0.133891 +0.068729 +0.032094 0.038985 0.029376 0.032501 0.015343 0.080202 0.011042 0.035641 0.036630 0.029249 0.017556 0.075027 0.015443 0.016067 0.028615 0.035933 0.014463 0.042955 0.029104 0.020175 0.021862 0.110401 0.041236 0.013801 0.005407 0.110401 0.041546 0.001401 0.019460 0.086911 0.037605 0.133891 +0.235529 +0.032546 0.037016 0.029304 0.030880 0.018061 0.083887 0.011497 0.036922 0.032713 0.029427 0.017584 0.018396 0.016070 0.015800 0.029322 0.031973 0.015132 0.072611 0.026936 0.019372 0.021065 0.133891 0.038262 0.012729 0.012033 0.133891 0.040347 0.001311 0.018820 0.157380 0.039516 0.180870 +0.123530 +0.030905 0.035361 0.032232 0.034345 0.016826 0.181497 0.009615 0.037025 0.028965 0.029487 0.016599 0.187498 0.015357 0.015615 0.028650 0.031956 0.015044 0.062947 0.029030 0.020413 0.021277 0.063422 0.041653 0.018303 0.007073 0.063422 0.038268 0.001024 0.019458 0.110401 0.040920 0.157380 +0.448536 +0.029266 0.034556 0.029627 0.031877 0.017082 0.037206 0.011323 0.037476 0.028258 0.030950 0.016941 0.180714 0.015082 0.016214 0.028667 0.029564 0.017905 0.016781 0.029031 0.019501 0.022019 0.133891 0.042153 0.016511 0.009122 0.133891 0.041652 0.001229 0.020674 0.086911 0.041476 0.157380 +0.175069 +0.031919 0.034089 0.029769 0.037978 0.018707 0.143758 0.011134 0.036523 0.029181 0.028681 0.015374 0.116050 0.016130 0.015676 0.032686 0.035059 0.016047 0.063931 0.027528 0.019690 0.022750 0.063422 0.040582 0.015913 0.009114 0.110401 0.040461 0.002271 0.020877 0.110401 0.040891 0.157380 +0.380029 +0.029478 0.033796 0.033680 0.031432 0.014506 0.049793 0.010133 0.037181 0.033380 0.029751 0.017072 0.029340 0.015735 0.015556 0.029392 0.028664 0.015470 0.105626 0.027581 0.020391 0.022861 0.063422 0.037849 0.012074 0.012833 0.110401 0.041168 0.001174 0.020804 0.086911 0.039833 0.133891 +0.140025 +0.029903 0.037185 0.029766 0.028243 0.018002 0.178923 0.010721 0.037333 0.031611 0.029272 0.014952 0.095709 0.015932 0.015558 0.032634 0.029938 0.015514 0.259817 0.029195 0.020248 0.021234 0.063422 0.039584 0.014354 0.004842 0.063422 0.041604 0.001956 0.020819 0.086911 0.039329 0.157380 +0.684003 +0.031832 0.037804 0.034620 0.031058 0.018479 0.229516 0.010924 0.037283 0.028769 0.035329 0.015398 0.023972 0.015079 0.015824 0.028298 0.035898 0.014194 0.048064 0.028408 0.019437 0.020711 0.063422 0.039717 0.013239 0.005663 0.157380 0.041738 0.000690 0.020345 0.063422 0.041344 0.204360 +0.393777 +0.030386 0.035855 0.030971 0.028241 0.016537 0.081936 0.011459 0.036247 0.029337 0.031273 0.014220 0.213826 0.016090 0.016380 0.030829 0.028421 0.014131 0.064291 0.027003 0.020050 0.021822 0.086911 0.040680 0.018425 0.007722 0.157380 0.041625 0.002276 0.019186 0.086911 0.038268 0.204360 +0.417652 +0.028343 0.035002 0.029620 0.028248 0.014273 0.065161 0.010399 0.035838 0.030111 0.030756 0.016693 0.435941 0.015837 0.016031 0.029395 0.029717 0.014477 0.105536 0.027513 0.020020 0.019798 0.063422 0.039799 0.012367 0.012565 0.110401 0.039416 0.001516 0.019963 0.086911 0.039512 0.133891 +0.800253 +0.028870 0.035716 0.033778 0.029659 0.016529 0.205131 0.010504 0.037447 0.028304 0.029981 0.017486 0.036506 0.015846 0.016176 0.031462 0.033059 0.014817 0.097240 0.028242 0.021016 0.021037 0.063422 0.041458 0.016582 0.007213 0.133891 0.041411 0.002209 0.020806 0.133891 0.039587 0.180870 +0.272564 +0.030036 0.038033 0.028662 0.029835 0.018529 0.112806 0.010246 0.037342 0.032621 0.028515 0.016733 0.162781 0.015221 0.015915 0.028899 0.028986 0.016041 0.018716 0.029086 0.019874 0.020942 0.086911 0.037970 0.015321 0.005405 0.063422 0.040810 0.000186 0.018792 0.063422 0.040712 0.157380 +0.304544 +0.029460 0.037128 0.030161 0.028901 0.016255 0.034798 0.010806 0.035753 0.028383 0.028640 0.015448 0.147025 0.016196 0.015741 0.031267 0.028599 0.014248 0.097836 0.027598 0.019373 0.020467 0.157380 0.039420 0.016034 0.004973 0.110401 0.040825 0.000107 0.019177 0.086911 0.038557 0.180870 +0.260768 +0.028220 0.034102 0.030207 0.029632 0.018450 0.190925 0.011193 0.036831 0.028423 0.031398 0.016631 0.066681 0.015283 0.015656 0.029214 0.032473 0.016081 0.179390 0.029156 0.020808 0.021501 0.063422 0.038169 0.014153 0.012634 0.086911 0.039676 0.000428 0.019521 0.180870 0.038644 0.204360 +0.605297 +0.029186 0.036569 0.029422 0.029706 0.016883 0.053687 0.011694 0.037316 0.032176 0.029525 0.015591 0.163329 0.016348 0.016337 0.028815 0.028746 0.015024 0.482344 0.030076 0.021048 0.018793 0.180870 0.040446 0.015047 0.006525 0.180870 0.039794 0.000730 0.020225 0.086911 0.041863 0.204360 +0.861625 +0.032371 0.033327 0.029511 0.034817 0.015978 0.052469 0.009976 0.035339 0.028531 0.030626 0.015078 0.069154 0.015200 0.015567 0.030565 0.030766 0.015912 0.130404 0.030470 0.019137 0.018797 0.086911 0.038921 0.013751 0.008945 0.110401 0.039680 0.002070 0.020006 0.086911 0.040449 0.204360 +0.110843 +0.030252 0.034518 0.030411 0.030425 0.014830 0.023648 0.009686 0.036850 0.032968 0.028489 0.017888 0.019302 0.015988 0.016342 0.033524 0.028842 0.015393 0.305049 0.028710 0.020013 0.019722 0.063422 0.038770 0.015299 0.006873 0.110401 0.038537 0.001344 0.020678 0.110401 0.039207 0.180870 +0.416132 +0.032121 0.038819 0.029197 0.034598 0.015731 0.023545 0.010970 0.035243 0.028412 0.040362 0.016929 0.054602 0.015508 0.015768 0.030161 0.028514 0.015601 0.036827 0.028309 0.019133 0.019563 0.086911 0.038135 0.015648 0.010380 0.063422 0.038501 0.000878 0.019683 0.133891 0.041461 0.157380 +0.022123 +0.030199 0.039113 0.030845 0.033411 0.015487 0.057223 0.010136 0.037147 0.034631 0.028371 0.017472 0.037191 0.015180 0.015722 0.028256 0.031223 0.015774 0.041300 0.028660 0.019500 0.021329 0.110401 0.041471 0.012925 0.012295 0.086911 0.041335 0.001008 0.019595 0.086911 0.040630 0.133891 +0.066316 +0.030808 0.035577 0.028315 0.029286 0.014170 0.039076 0.009859 0.037522 0.028671 0.033650 0.016269 0.024445 0.016160 0.016294 0.028393 0.028557 0.015697 0.017260 0.028468 0.019497 0.020996 0.063422 0.040977 0.012180 0.009941 0.063422 0.039537 0.001931 0.019490 0.063422 0.041696 0.157380 +0 +0.031047 0.037243 0.028934 0.035770 0.016536 0.333871 0.011463 0.035843 0.035726 0.029646 0.015472 0.237404 0.015332 0.015628 0.028230 0.029882 0.014207 0.053653 0.030860 0.019968 0.019509 0.086911 0.040873 0.015124 0.010840 0.110401 0.039095 0.000086 0.018851 0.086911 0.040258 0.204360 +0.802925 +0.031390 0.038848 0.033430 0.030418 0.017597 0.027368 0.009607 0.035316 0.029333 0.032205 0.017813 0.043082 0.015746 0.015983 0.028258 0.030541 0.018317 0.429801 0.026939 0.020137 0.022112 0.157380 0.039094 0.013970 0.006726 0.133891 0.039160 0.000397 0.019145 0.110401 0.041418 0.180870 +0.689554 +0.030374 0.039156 0.030755 0.033014 0.017294 0.030277 0.010149 0.036637 0.029922 0.031507 0.014209 0.031977 0.015354 0.015552 0.034340 0.033070 0.016075 0.168553 0.027884 0.020619 0.019361 0.110401 0.038913 0.012869 0.011040 0.110401 0.037864 0.002097 0.020154 0.086911 0.038538 0.157380 +0.234424 +0.032182 0.039580 0.029891 0.035412 0.018322 0.223884 0.011502 0.035807 0.028190 0.029561 0.016771 0.062354 0.015814 0.015654 0.030202 0.028332 0.014696 0.261178 0.026316 0.018825 0.022262 0.133891 0.038811 0.012767 0.011374 0.110401 0.039326 0.002226 0.018879 0.063422 0.041652 0.157380 +0.639382 +0.029979 0.039231 0.029699 0.029548 0.017030 0.195033 0.010305 0.036306 0.038604 0.031212 0.017615 0.092721 0.015303 0.016027 0.031212 0.029397 0.017726 0.023938 0.028631 0.019652 0.021342 0.110401 0.038802 0.018107 0.004801 0.133891 0.037862 0.002024 0.019833 0.133891 0.038180 0.157380 +0.359978 +0.030793 0.036924 0.029060 0.032903 0.014358 0.037773 0.011563 0.035309 0.034020 0.030448 0.014192 0.019327 0.016386 0.015969 0.029542 0.029612 0.015509 0.113825 0.027007 0.020881 0.020004 0.063422 0.040023 0.014627 0.011340 0.086911 0.039899 0.001125 0.019037 0.063422 0.042232 0.180870 +0.086705 +0.031822 0.037846 0.028592 0.029878 0.017618 0.122347 0.009467 0.035991 0.029487 0.028223 0.018569 0.020628 0.015849 0.016102 0.033221 0.029028 0.016814 0.078805 0.028441 0.018951 0.021870 0.086911 0.041209 0.014806 0.013863 0.086911 0.041949 0.000752 0.019050 0.063422 0.037732 0.180870 +0.083772 +0.030090 0.037486 0.028606 0.030496 0.014126 0.169329 0.011165 0.036082 0.028586 0.034821 0.018461 0.058133 0.015348 0.016034 0.031761 0.028233 0.018170 0.183317 0.026441 0.020198 0.020437 0.086911 0.041661 0.017137 0.008634 0.133891 0.041228 0.000084 0.018828 0.110401 0.038278 0.157380 +0.392904 +0.032426 0.036816 0.034982 0.033448 0.014553 0.050479 0.010025 0.035847 0.028416 0.032958 0.015780 0.138366 0.015335 0.015798 0.029990 0.035217 0.014775 0.020140 0.026387 0.019920 0.021096 0.063422 0.038926 0.012664 0.013687 0.110401 0.039638 0.000668 0.020447 0.110401 0.039338 0.133891 +0.237132 +0.029605 0.033965 0.028909 0.031785 0.014954 0.057451 0.011696 0.035301 0.028394 0.028391 0.016632 0.020191 0.015726 0.016062 0.029021 0.030819 0.017804 0.094982 0.028845 0.019478 0.023451 0.063422 0.039181 0.012313 0.006531 0.086911 0.039182 0.000318 0.020421 0.063422 0.042109 0.133891 +0.055719 +0.032638 0.034602 0.042529 0.029819 0.017987 0.109660 0.010491 0.035949 0.029161 0.030313 0.017611 0.039189 0.015355 0.015749 0.029827 0.032157 0.018515 0.076195 0.027843 0.019879 0.019074 0.063422 0.038877 0.013839 0.011076 0.110401 0.038788 0.000425 0.020725 0.180870 0.040145 0.204360 +0.165961 +0.028656 0.033008 0.028582 0.029110 0.014490 0.140295 0.010634 0.037111 0.029795 0.028269 0.016442 0.064408 0.015677 0.015613 0.028275 0.031690 0.018365 0.087600 0.027914 0.020562 0.022837 0.063422 0.039588 0.013847 0.007969 0.133891 0.041363 0.000240 0.019517 0.157380 0.040844 0.204360 +0.383757 +0.030065 0.039036 0.030358 0.030658 0.016605 0.020020 0.011513 0.037093 0.029500 0.028205 0.016681 0.038269 0.015669 0.015515 0.029272 0.030755 0.015813 0.372555 0.028090 0.019335 0.020760 0.157380 0.038037 0.014113 0.012801 0.063422 0.037743 0.000615 0.020083 0.086911 0.040799 0.180870 +0.614299 +0.032226 0.034806 0.032517 0.029233 0.016857 0.051922 0.011281 0.035768 0.035981 0.028907 0.016434 0.021738 0.015152 0.015620 0.028237 0.029193 0.014655 0.201441 0.027813 0.019624 0.019811 0.110401 0.039627 0.014576 0.005154 0.133891 0.041936 0.001431 0.021118 0.063422 0.038506 0.157380 +0.344140 +0.031037 0.038107 0.036664 0.028207 0.014584 0.345568 0.010800 0.035488 0.029767 0.028701 0.014627 0.027539 0.016114 0.016136 0.029171 0.033068 0.016103 0.027940 0.028211 0.020777 0.021462 0.086911 0.037750 0.013940 0.005625 0.063422 0.040486 0.001049 0.019218 0.063422 0.037602 0.157380 +0.510565 +0.032268 0.035725 0.031802 0.032412 0.018218 0.048182 0.010982 0.036296 0.030807 0.029559 0.018060 0.132345 0.015475 0.015612 0.028190 0.029181 0.016445 0.067290 0.026221 0.020364 0.020544 0.133891 0.038795 0.014679 0.004824 0.086911 0.041444 0.001610 0.018871 0.063422 0.040927 0.157380 +0.283877 +0.028578 0.033450 0.029687 0.028189 0.016944 0.159906 0.009716 0.036041 0.029367 0.028543 0.014344 0.032452 0.016184 0.016095 0.033768 0.032724 0.014561 0.167395 0.025396 0.018941 0.022448 0.063422 0.041283 0.014512 0.008020 0.133891 0.038796 0.001949 0.020319 0.063422 0.040220 0.157380 +0.394460 +0.032472 0.037609 0.028425 0.031582 0.015765 0.074492 0.010353 0.035491 0.029281 0.034099 0.017499 0.154868 0.015530 0.016015 0.033714 0.034547 0.017522 0.153283 0.026132 0.019708 0.019124 0.086911 0.041664 0.013359 0.004963 0.133891 0.040766 0.000046 0.018965 0.133891 0.040028 0.157380 +0.441266 +0.028836 0.033089 0.031225 0.029976 0.018408 0.139160 0.010809 0.035561 0.029446 0.028213 0.015332 0.044407 0.015250 0.016252 0.040050 0.029538 0.017999 0.192895 0.029016 0.020438 0.021669 0.086911 0.041155 0.016911 0.011429 0.110401 0.040340 0.000767 0.020054 0.133891 0.039094 0.157380 +0.430602 +0.029192 0.035447 0.029283 0.028469 0.018741 0.114643 0.010677 0.036230 0.028873 0.029626 0.016014 0.116973 0.015642 0.016127 0.028776 0.031106 0.015400 0.048835 0.028807 0.020342 0.021892 0.133891 0.042108 0.014172 0.008693 0.063422 0.041955 0.000296 0.020173 0.086911 0.040145 0.204360 +0.239953 +0.030526 0.036294 0.028547 0.031865 0.018238 0.110990 0.011565 0.037457 0.033350 0.028867 0.018256 0.019982 0.015552 0.015850 0.030855 0.037625 0.015650 0.020630 0.027293 0.020264 0.018904 0.133891 0.039785 0.012173 0.008723 0.110401 0.040373 0.001563 0.020613 0.086911 0.038245 0.157380 +0.057382 +0.031452 0.035049 0.031650 0.028891 0.017060 0.023928 0.010513 0.035513 0.028584 0.031929 0.014782 0.023356 0.016333 0.016198 0.029851 0.030555 0.014256 0.116412 0.029290 0.020613 0.020274 0.133891 0.039252 0.018110 0.009096 0.110401 0.040150 0.000552 0.020734 0.110401 0.040413 0.180870 +0.077786 +0.031978 0.034883 0.029064 0.033012 0.016573 0.131343 0.011591 0.036370 0.031347 0.028302 0.018622 0.145672 0.015812 0.016116 0.029659 0.030197 0.018083 0.080390 0.027737 0.019217 0.020829 0.157380 0.040417 0.018360 0.005606 0.086911 0.040703 0.000472 0.020919 0.063422 0.040905 0.180870 +0.363280 +0.028312 0.037178 0.036130 0.030143 0.016105 0.087154 0.010365 0.035280 0.031755 0.030295 0.018487 0.088630 0.015791 0.016041 0.029609 0.028971 0.014607 0.096609 0.027977 0.019253 0.021018 0.086911 0.040672 0.014867 0.013458 0.133891 0.042002 0.002057 0.020892 0.086911 0.041276 0.204360 +0.146532 +0.031580 0.033493 0.028504 0.028946 0.016785 0.107500 0.010643 0.037554 0.029613 0.029868 0.014938 0.273521 0.015711 0.015643 0.031360 0.029945 0.018354 0.028987 0.026760 0.020802 0.019158 0.157380 0.038224 0.013692 0.005443 0.086911 0.042233 0.002285 0.019066 0.110401 0.039390 0.180870 +0.489895 +0.029134 0.038090 0.029603 0.033941 0.015448 0.044466 0.010292 0.035574 0.029350 0.029176 0.017770 0.135087 0.015718 0.015699 0.031725 0.028991 0.016236 0.104556 0.027900 0.019848 0.020481 0.063422 0.038640 0.012722 0.012085 0.110401 0.041946 0.002138 0.018983 0.110401 0.039055 0.133891 +0.373678 +0.032166 0.035776 0.037544 0.029726 0.017900 0.027119 0.010889 0.035658 0.030488 0.031474 0.015148 0.065764 0.015733 0.015881 0.029838 0.029549 0.017437 0.028156 0.026985 0.020422 0.019142 0.157380 0.040786 0.016001 0.007679 0.157380 0.040548 0.002232 0.019497 0.133891 0.039325 0.180870 +0.057933 +0.028314 0.036268 0.028745 0.031031 0.014687 0.020533 0.009701 0.036289 0.029393 0.033419 0.016674 0.026367 0.015435 0.015576 0.028325 0.032220 0.015816 0.215481 0.028456 0.020541 0.023024 0.180870 0.039305 0.017147 0.013562 0.180870 0.041277 0.000107 0.019252 0.133891 0.040126 0.204360 +0.184318 +0.029638 0.034986 0.029617 0.028442 0.016538 0.118526 0.009769 0.036956 0.030328 0.028326 0.018105 0.078802 0.015802 0.015981 0.028896 0.028318 0.018481 0.064289 0.027323 0.020983 0.019754 0.133891 0.040731 0.017546 0.012294 0.063422 0.041512 0.002020 0.020522 0.063422 0.040515 0.180870 +0.234874 +0.028998 0.039532 0.028403 0.028572 0.017367 0.026946 0.010109 0.035620 0.029748 0.033031 0.014782 0.028439 0.015814 0.015752 0.042262 0.031386 0.016552 0.246286 0.029114 0.021070 0.019810 0.086911 0.037991 0.015918 0.007821 0.110401 0.039232 0.000495 0.019504 0.063422 0.037967 0.133891 +0.410947 +0.029819 0.035805 0.030803 0.028617 0.018241 0.040277 0.011331 0.037155 0.033427 0.028397 0.016617 0.051514 0.016056 0.015637 0.030988 0.030416 0.017026 0.120998 0.028887 0.020331 0.023254 0.110401 0.039627 0.017136 0.004939 0.133891 0.042085 0.001895 0.018858 0.110401 0.037915 0.157380 +0.281172 +0.030734 0.033330 0.035114 0.029478 0.016256 0.031385 0.011682 0.037554 0.032241 0.028222 0.015546 0.163370 0.015615 0.015758 0.028449 0.028212 0.014279 0.017921 0.028356 0.019245 0.019374 0.110401 0.039162 0.012000 0.010188 0.180870 0.040109 0.002021 0.020633 0.086911 0.037823 0.204360 +0.140298 +0.029357 0.037313 0.028670 0.029568 0.014784 0.056588 0.011717 0.036458 0.028521 0.028908 0.018517 0.021685 0.015333 0.016253 0.028565 0.033840 0.017502 0.137573 0.028033 0.020957 0.020598 0.133891 0.040882 0.016112 0.008523 0.133891 0.041663 0.000085 0.020293 0.133891 0.039803 0.204360 +0.058574 +0.029724 0.034924 0.030987 0.030064 0.014793 0.154815 0.010052 0.037462 0.034349 0.028787 0.014319 0.108273 0.015209 0.015743 0.030891 0.031829 0.017432 0.034387 0.028798 0.020275 0.021464 0.133891 0.040557 0.012449 0.013304 0.063422 0.039978 0.000793 0.020620 0.086911 0.040225 0.204360 +0.232426 +0.030244 0.038769 0.030935 0.028929 0.014704 0.098319 0.009944 0.037168 0.029191 0.029977 0.018430 0.099017 0.015103 0.015848 0.028968 0.028854 0.017264 0.024725 0.027375 0.020131 0.019483 0.180870 0.039730 0.014940 0.010646 0.110401 0.038823 0.001301 0.019089 0.086911 0.041229 0.204360 +0.146027 +0.028335 0.035504 0.028836 0.029384 0.015622 0.175758 0.009602 0.035355 0.028799 0.028630 0.017761 0.021053 0.016439 0.015584 0.028249 0.029268 0.016503 0.039315 0.028779 0.019127 0.019423 0.086911 0.040719 0.012841 0.008599 0.063422 0.037912 0.002302 0.020591 0.063422 0.039293 0.180870 +0.143099 +0.029691 0.039085 0.029172 0.029451 0.017601 0.055194 0.010357 0.036150 0.028760 0.032493 0.015619 0.045070 0.016152 0.015761 0.033143 0.031458 0.015285 0.039636 0.026839 0.019321 0.021151 0.110401 0.041985 0.015615 0.006362 0.110401 0.041656 0.001894 0.021086 0.110401 0.039716 0.133891 +0.138248 +0.031837 0.035629 0.029126 0.028853 0.015970 0.041655 0.010243 0.035835 0.028273 0.028510 0.016799 0.021427 0.016429 0.015846 0.033580 0.033031 0.015172 0.144783 0.028528 0.019508 0.019862 0.157380 0.039688 0.012213 0.006267 0.110401 0.039099 0.001238 0.019749 0.133891 0.038103 0.204360 +0.085357 +0.030897 0.034381 0.028442 0.031850 0.015928 0.035126 0.010893 0.035260 0.030323 0.029982 0.017938 0.072480 0.015448 0.015930 0.029066 0.028391 0.014222 0.020530 0.028262 0.021066 0.022836 0.063422 0.040192 0.012680 0.006220 0.157380 0.041392 0.002346 0.021129 0.110401 0.041599 0.204360 +0 +0.029937 0.033576 0.028477 0.029746 0.016846 0.045833 0.010020 0.036393 0.030663 0.031659 0.017411 0.033136 0.015675 0.016441 0.028215 0.029777 0.015333 0.036820 0.027362 0.020568 0.019195 0.063422 0.038623 0.015190 0.008521 0.063422 0.038936 0.001898 0.019270 0.063422 0.039986 0.133891 +0.011134 +0.031157 0.036417 0.028328 0.032801 0.014353 0.436783 0.010167 0.036812 0.036722 0.028348 0.015565 0.220588 0.015298 0.016147 0.028473 0.028538 0.014401 0.185048 0.029686 0.020640 0.020709 0.110401 0.040537 0.015596 0.010271 0.110401 0.039141 0.001394 0.019368 0.063422 0.040848 0.133891 +0.889227 +0.032744 0.035113 0.031003 0.029909 0.015611 0.082660 0.010480 0.037455 0.030769 0.029191 0.016065 0.221872 0.015261 0.015830 0.029594 0.030886 0.017342 0.104557 0.030681 0.019779 0.022067 0.180870 0.041126 0.013515 0.004962 0.157380 0.040779 0.000082 0.018805 0.086911 0.038498 0.204360 +0.495923 +0.032327 0.038247 0.028631 0.032198 0.014704 0.085114 0.009946 0.035967 0.032635 0.029735 0.015163 0.093014 0.016276 0.016271 0.028681 0.030801 0.018460 0.027519 0.029765 0.019881 0.020773 0.110401 0.040645 0.015159 0.006955 0.086911 0.040525 0.000456 0.019409 0.063422 0.041244 0.180870 +0.087339 +0.032245 0.039559 0.028980 0.028653 0.018677 0.024456 0.011057 0.035501 0.029582 0.031167 0.015117 0.121031 0.015847 0.015782 0.029495 0.029242 0.016224 0.044063 0.028916 0.019979 0.018936 0.063422 0.038976 0.018037 0.006803 0.063422 0.039006 0.000080 0.019880 0.063422 0.041873 0.133891 +0.134107 +0.032473 0.036591 0.028334 0.030371 0.016309 0.019209 0.010460 0.037207 0.028640 0.030537 0.015426 0.035453 0.015996 0.016026 0.030372 0.029058 0.014213 0.259541 0.028341 0.020615 0.021748 0.086911 0.041651 0.017310 0.005528 0.063422 0.042071 0.001945 0.020606 0.086911 0.040986 0.133891 +0.342692 +0.030071 0.033024 0.028275 0.030310 0.015051 0.067018 0.011489 0.037430 0.028497 0.032249 0.015099 0.164345 0.016002 0.015591 0.029223 0.030648 0.015758 0.018633 0.028398 0.018807 0.023424 0.110401 0.041269 0.018358 0.011707 0.110401 0.039365 0.000519 0.020345 0.086911 0.040613 0.133891 +0.220785 +0.031412 0.035436 0.029135 0.031611 0.014248 0.026302 0.011306 0.035515 0.028208 0.030964 0.018454 0.021550 0.016196 0.016269 0.029559 0.028919 0.015876 0.199541 0.027783 0.020096 0.019489 0.063422 0.038695 0.015921 0.007504 0.110401 0.040462 0.000334 0.018981 0.063422 0.040076 0.133891 +0.321323 +0.029311 0.034678 0.028466 0.031360 0.015827 0.208274 0.009852 0.035274 0.029630 0.030460 0.015095 0.049803 0.015863 0.015997 0.029652 0.028761 0.014789 0.016849 0.027197 0.020968 0.019310 0.133891 0.040699 0.014671 0.013658 0.086911 0.039367 0.001786 0.019359 0.133891 0.037684 0.157380 +0.280997 +0.032204 0.033296 0.029813 0.029153 0.017280 0.101092 0.010511 0.037214 0.028566 0.028690 0.017514 0.045215 0.015910 0.015985 0.029225 0.028818 0.016370 0.039378 0.028659 0.019649 0.019839 0.110401 0.038155 0.013285 0.006952 0.180870 0.037665 0.000025 0.021036 0.180870 0.040297 0.204360 +0.139604 +0.029433 0.033898 0.028629 0.030848 0.014190 0.136288 0.009688 0.035722 0.029170 0.029670 0.014135 0.087159 0.015923 0.015664 0.032474 0.035517 0.015378 0.019543 0.027704 0.020459 0.021475 0.086911 0.041451 0.013255 0.013095 0.063422 0.040604 0.001330 0.019952 0.063422 0.040399 0.133891 +0.284437 +0.032676 0.034041 0.031217 0.028805 0.017676 0.054629 0.009566 0.036472 0.029563 0.028764 0.017597 0.071134 0.016070 0.015560 0.028215 0.030326 0.017725 0.035541 0.028348 0.020229 0.023349 0.063422 0.040855 0.012650 0.006656 0.110401 0.038061 0.001125 0.020171 0.063422 0.042115 0.133891 +0.051477 +0.032393 0.034802 0.031876 0.030824 0.017431 0.256382 0.010626 0.035516 0.029860 0.029837 0.015647 0.046803 0.016215 0.015761 0.031672 0.029176 0.014806 0.051751 0.028567 0.020980 0.019520 0.063422 0.042161 0.017784 0.010966 0.086911 0.038647 0.001455 0.018968 0.086911 0.039841 0.133891 +0.283392 +0.029416 0.036159 0.028269 0.029149 0.015333 0.149946 0.009961 0.037053 0.031878 0.028588 0.014205 0.043047 0.016306 0.015775 0.030716 0.029618 0.018109 0.025458 0.029574 0.020507 0.020364 0.063422 0.039936 0.014951 0.009096 0.133891 0.040193 0.000209 0.019395 0.086911 0.039256 0.180870 +0.214873 +0.030235 0.039330 0.039666 0.028666 0.016776 0.080233 0.010638 0.036639 0.028441 0.029558 0.016294 0.143688 0.015372 0.016318 0.029330 0.031604 0.014569 0.077296 0.026881 0.020800 0.020412 0.133891 0.037820 0.012122 0.010703 0.086911 0.039634 0.000056 0.019955 0.063422 0.041566 0.157380 +0.313159 +0.032146 0.034470 0.031385 0.030346 0.017126 0.187916 0.011179 0.035274 0.031648 0.028720 0.017049 0.072671 0.016300 0.016077 0.028201 0.030398 0.017747 0.043995 0.028999 0.019732 0.021899 0.110401 0.038831 0.014828 0.011798 0.086911 0.039894 0.001321 0.018808 0.086911 0.040459 0.133891 +0.434963 +0.031286 0.038245 0.028230 0.028805 0.016544 0.022531 0.010219 0.036157 0.028818 0.031377 0.017881 0.080919 0.015284 0.016347 0.032500 0.032507 0.016116 0.062893 0.028695 0.018973 0.019604 0.110401 0.038552 0.017108 0.011203 0.063422 0.041778 0.000108 0.020241 0.086911 0.040014 0.157380 +0.037446 +0.029535 0.038453 0.028850 0.029146 0.014392 0.062621 0.010896 0.037495 0.028914 0.029851 0.015148 0.042823 0.016357 0.015722 0.028634 0.031589 0.018760 0.051582 0.029669 0.020049 0.022235 0.180870 0.039418 0.017394 0.006931 0.180870 0.041034 0.001368 0.019344 0.157380 0.038134 0.204360 +0.096435 +0.030293 0.037155 0.029879 0.028512 0.016703 0.132699 0.010809 0.036011 0.033152 0.029837 0.016219 0.186830 0.015584 0.015943 0.031400 0.028680 0.014546 0.038947 0.027712 0.019373 0.021880 0.063422 0.039426 0.016640 0.010991 0.063422 0.039950 0.000689 0.019680 0.110401 0.040835 0.133891 +0.434011 +0.031646 0.033554 0.028539 0.029458 0.015501 0.172713 0.011199 0.036965 0.035561 0.028562 0.016492 0.018343 0.015589 0.016114 0.028763 0.028522 0.015908 0.074350 0.027848 0.019729 0.018849 0.133891 0.040680 0.013287 0.014075 0.110401 0.038704 0.001680 0.020249 0.133891 0.040692 0.157380 +0.225513 +0.028318 0.032890 0.030434 0.028698 0.016359 0.079223 0.009879 0.035375 0.032580 0.028971 0.015670 0.021378 0.015563 0.015920 0.029260 0.028574 0.018488 0.073137 0.028058 0.020645 0.021726 0.110401 0.041114 0.011800 0.012088 0.157380 0.039751 0.000506 0.019963 0.110401 0.040140 0.180870 +0.072891 +0.028250 0.033339 0.032604 0.029448 0.014556 0.052874 0.010836 0.036926 0.028906 0.029411 0.015952 0.058479 0.015227 0.016398 0.029139 0.028685 0.016382 0.046098 0.029256 0.019556 0.022244 0.110401 0.038166 0.018477 0.007671 0.110401 0.041600 0.000430 0.020471 0.086911 0.040087 0.133891 +0.150443 +0.030482 0.034075 0.029026 0.030576 0.014902 0.170834 0.009514 0.037407 0.030438 0.029013 0.016985 0.052258 0.016211 0.015616 0.030446 0.031117 0.016681 0.104621 0.028365 0.020068 0.020975 0.063422 0.038732 0.012571 0.009755 0.063422 0.041565 0.001853 0.020146 0.110401 0.040407 0.133891 +0.477635 +0.031915 0.035424 0.028576 0.031142 0.014688 0.056115 0.011490 0.036698 0.034152 0.029273 0.016234 0.080609 0.016074 0.016068 0.029681 0.028286 0.017587 0.101665 0.027248 0.020690 0.021562 0.086911 0.038564 0.015379 0.011338 0.086911 0.039400 0.000996 0.020313 0.063422 0.038006 0.180870 +0.232836 +0.032013 0.034025 0.032026 0.031262 0.017763 0.202148 0.011214 0.036609 0.029388 0.031678 0.017297 0.024857 0.015280 0.016044 0.032876 0.030721 0.014971 0.052378 0.027696 0.020163 0.018992 0.063422 0.039471 0.016781 0.007020 0.110401 0.038246 0.000961 0.018937 0.110401 0.041856 0.133891 +0.462398 +0.032452 0.039437 0.030851 0.028241 0.015052 0.028129 0.011160 0.036813 0.031252 0.029471 0.017563 0.066853 0.016065 0.015745 0.029531 0.028928 0.014973 0.017034 0.030374 0.019988 0.022613 0.086911 0.041081 0.012056 0.006286 0.110401 0.040153 0.001169 0.019136 0.086911 0.041352 0.133891 +0.027906 +0.030606 0.038822 0.029722 0.031873 0.014980 0.058194 0.011545 0.037072 0.032276 0.029082 0.016091 0.049867 0.015740 0.016111 0.031796 0.028734 0.017210 0.379918 0.026967 0.019322 0.022934 0.086911 0.041116 0.014388 0.012527 0.086911 0.037973 0.002022 0.019229 0.133891 0.039271 0.157380 +0.675805 +0.031364 0.038594 0.028898 0.028510 0.016809 0.019059 0.010654 0.036571 0.030766 0.030382 0.014925 0.175945 0.015721 0.015891 0.028562 0.028679 0.018579 0.023769 0.028528 0.020403 0.019388 0.086911 0.037709 0.011773 0.004702 0.086911 0.041273 0.000453 0.020170 0.086911 0.038936 0.133891 +0.220314 +0.030229 0.033178 0.031325 0.030111 0.015464 0.075052 0.011144 0.036618 0.030585 0.032515 0.017925 0.028249 0.016177 0.015717 0.029358 0.028421 0.014624 0.233532 0.029602 0.019349 0.018904 0.063422 0.037714 0.017275 0.013746 0.086911 0.040636 0.001665 0.019845 0.086911 0.039994 0.133891 +0.466326 +0.031442 0.033965 0.029759 0.029025 0.016267 0.063642 0.010332 0.036365 0.031232 0.030525 0.014822 0.147372 0.016239 0.016057 0.028374 0.029215 0.018511 0.201418 0.027989 0.019916 0.022414 0.133891 0.038203 0.013401 0.007306 0.133891 0.040904 0.002061 0.019764 0.086911 0.039443 0.180870 +0.552291 +0.032214 0.034725 0.029509 0.029543 0.015388 0.049524 0.011088 0.036097 0.032572 0.028211 0.015344 0.064884 0.016185 0.016034 0.028750 0.029108 0.018485 0.025183 0.031861 0.020663 0.022240 0.133891 0.039321 0.012636 0.010188 0.063422 0.040714 0.001958 0.020022 0.157380 0.038946 0.180870 +0.034428 +0.029855 0.037640 0.029973 0.028561 0.016327 0.028548 0.009891 0.036184 0.028646 0.028529 0.017017 0.231452 0.015845 0.016314 0.030275 0.028533 0.016065 0.161321 0.029660 0.020660 0.020466 0.086911 0.041019 0.013974 0.008333 0.086911 0.042096 0.000612 0.020634 0.086911 0.039539 0.157380 +0.517360 +0.032076 0.036664 0.030679 0.029310 0.016498 0.076005 0.011660 0.036610 0.030688 0.036545 0.017745 0.123582 0.015435 0.016154 0.031076 0.029255 0.014783 0.043207 0.028577 0.018890 0.020262 0.063422 0.041394 0.013395 0.005497 0.086911 0.041428 0.002315 0.020652 0.110401 0.040721 0.133891 +0.278176 +0.031233 0.037115 0.029124 0.036686 0.014989 0.102420 0.010550 0.035938 0.030569 0.029011 0.017693 0.041306 0.015134 0.015674 0.028867 0.032469 0.015738 0.123881 0.030888 0.019975 0.022678 0.086911 0.038840 0.014199 0.007400 0.086911 0.040834 0.001142 0.021071 0.110401 0.041486 0.133891 +0.315672 +0.032556 0.036143 0.030707 0.034829 0.014725 0.185108 0.009856 0.036389 0.028989 0.028328 0.014335 0.047025 0.016391 0.016415 0.030441 0.028846 0.017973 0.031174 0.028154 0.020424 0.022478 0.110401 0.039756 0.012475 0.005817 0.110401 0.038213 0.001036 0.020052 0.157380 0.039797 0.180870 +0.391673 +0.030150 0.034309 0.029374 0.029924 0.014586 0.022875 0.009702 0.035351 0.033831 0.028933 0.016312 0.211250 0.015570 0.015919 0.034130 0.036803 0.017412 0.133236 0.028350 0.020402 0.019457 0.063422 0.041837 0.013772 0.005184 0.086911 0.040927 0.001674 0.020076 0.180870 0.041950 0.204360 +0.409660 +0.030432 0.038195 0.029467 0.029392 0.018500 0.164676 0.009827 0.037154 0.028247 0.028588 0.016808 0.280911 0.015797 0.015857 0.028340 0.032194 0.018541 0.055430 0.025274 0.020648 0.023003 0.133891 0.039164 0.013304 0.012298 0.157380 0.037644 0.000061 0.019461 0.063422 0.039643 0.204360 +0.616622 +0.028941 0.035417 0.030409 0.028188 0.014634 0.043714 0.011724 0.035279 0.029024 0.033103 0.018618 0.051286 0.015537 0.015786 0.028195 0.032793 0.014274 0.058155 0.028085 0.018966 0.022125 0.110401 0.040170 0.011769 0.011662 0.086911 0.038811 0.001245 0.020899 0.063422 0.040735 0.133891 +0.096936 +0.028261 0.038746 0.029173 0.028696 0.016645 0.040368 0.010127 0.036016 0.028476 0.032294 0.016107 0.017630 0.016148 0.016286 0.029487 0.029666 0.018512 0.046971 0.026690 0.019234 0.019880 0.110401 0.038864 0.017414 0.007962 0.133891 0.038520 0.000655 0.019608 0.063422 0.040592 0.157380 +0.003088 +0.032506 0.035447 0.030226 0.031604 0.016709 0.020659 0.010976 0.036142 0.028566 0.034113 0.017492 0.135218 0.015954 0.015673 0.040980 0.037126 0.015875 0.324891 0.031894 0.020408 0.021821 0.086911 0.041404 0.014473 0.009781 0.063422 0.039058 0.000802 0.019337 0.110401 0.039050 0.133891 +0.673414 +0.030264 0.034581 0.028487 0.028644 0.017042 0.185559 0.010246 0.035671 0.028437 0.030930 0.016151 0.018976 0.015395 0.016140 0.031618 0.028217 0.014235 0.195930 0.028553 0.020848 0.022187 0.086911 0.039183 0.013834 0.004703 0.110401 0.039206 0.000669 0.019534 0.086911 0.041841 0.133891 +0.529386 +0.032517 0.033808 0.030949 0.029864 0.016838 0.019076 0.010060 0.035665 0.031290 0.028537 0.016187 0.153951 0.015833 0.016425 0.030510 0.029709 0.014527 0.038043 0.026364 0.020031 0.020109 0.110401 0.038311 0.013296 0.010513 0.110401 0.039494 0.000925 0.019649 0.110401 0.039622 0.133891 +0.224430 +0.028320 0.033559 0.034457 0.031319 0.014452 0.026119 0.011650 0.036189 0.030746 0.028500 0.018638 0.085773 0.015221 0.015805 0.033204 0.031216 0.018332 0.299586 0.026920 0.020931 0.019926 0.133891 0.041056 0.017615 0.005197 0.110401 0.039710 0.000203 0.019730 0.157380 0.041780 0.180870 +0.512746 +0.028271 0.034913 0.028942 0.029005 0.017676 0.024979 0.009753 0.036899 0.029004 0.033574 0.015577 0.124345 0.016151 0.016262 0.033232 0.028718 0.018614 0.188798 0.028105 0.019058 0.022927 0.063422 0.042280 0.012992 0.006611 0.110401 0.037811 0.001919 0.020113 0.086911 0.038155 0.180870 +0.355015 +0.032784 0.033545 0.033697 0.028779 0.014555 0.028786 0.010155 0.037348 0.029279 0.028582 0.015675 0.153054 0.016139 0.015541 0.035538 0.028751 0.015484 0.025184 0.026664 0.019169 0.021354 0.063422 0.039713 0.013880 0.006237 0.110401 0.039418 0.000044 0.020331 0.063422 0.041347 0.133891 +0.209617 +0.029631 0.034336 0.030370 0.030306 0.016026 0.054175 0.009659 0.036566 0.028222 0.031738 0.016480 0.099164 0.015339 0.016415 0.031193 0.033043 0.014200 0.099777 0.027607 0.018836 0.021170 0.086911 0.038359 0.016036 0.013715 0.133891 0.038557 0.001133 0.019790 0.086911 0.040256 0.157380 +0.250135 +0.031118 0.037537 0.030126 0.028361 0.017930 0.122306 0.010965 0.037229 0.030114 0.028413 0.018360 0.073228 0.015467 0.015760 0.032462 0.035229 0.017397 0.024828 0.030660 0.019802 0.022108 0.157380 0.040639 0.014055 0.006603 0.086911 0.039496 0.000125 0.019677 0.063422 0.038194 0.180870 +0.191353 +0.031445 0.037719 0.028196 0.034278 0.018063 0.038253 0.009508 0.036865 0.028403 0.030438 0.014536 0.032896 0.015088 0.015962 0.030035 0.029111 0.018239 0.106433 0.026706 0.020152 0.018873 0.133891 0.040222 0.015017 0.012667 0.180870 0.041813 0.000258 0.020400 0.133891 0.037671 0.204360 +0.107938 +0.028692 0.039600 0.029088 0.028748 0.018481 0.112883 0.009953 0.036052 0.029733 0.029264 0.017199 0.061439 0.015870 0.015900 0.029570 0.029960 0.014974 0.138767 0.030499 0.020442 0.020674 0.086911 0.038982 0.018342 0.006464 0.086911 0.038840 0.001573 0.020910 0.063422 0.042279 0.157380 +0.346875 +0.029571 0.039538 0.030393 0.035513 0.016700 0.030316 0.009738 0.036336 0.029490 0.028932 0.014410 0.034312 0.016209 0.016426 0.028304 0.028633 0.017258 0.045059 0.028516 0.019650 0.019756 0.086911 0.040250 0.016780 0.008390 0.133891 0.041376 0.000341 0.019732 0.063422 0.039547 0.157380 +0.001307 +0.029123 0.034323 0.030330 0.030988 0.015927 0.052908 0.011400 0.036887 0.028885 0.031583 0.018012 0.277985 0.016349 0.015579 0.030521 0.028600 0.016430 0.211724 0.029015 0.019913 0.019311 0.063422 0.041808 0.015848 0.004873 0.063422 0.040344 0.001559 0.020130 0.180870 0.038480 0.204360 +0.726118 +0.032639 0.035946 0.035837 0.028960 0.014338 0.207805 0.010178 0.035815 0.029571 0.032289 0.017286 0.048057 0.015530 0.015955 0.028772 0.028324 0.015254 0.061424 0.027154 0.019344 0.019427 0.180870 0.038329 0.015817 0.012822 0.180870 0.041334 0.001888 0.020235 0.180870 0.042163 0.204360 +0.334949 +0.030695 0.034530 0.030464 0.030019 0.017731 0.098934 0.011067 0.036534 0.028269 0.031311 0.017059 0.026406 0.016289 0.015932 0.030171 0.029899 0.014507 0.086106 0.026384 0.020412 0.020602 0.110401 0.040393 0.018017 0.010864 0.063422 0.039848 0.001432 0.020454 0.157380 0.041147 0.204360 +0.087043 +0.032808 0.039197 0.035501 0.031212 0.014404 0.085400 0.010102 0.035391 0.031118 0.030906 0.015433 0.021455 0.016255 0.016031 0.029673 0.028238 0.018373 0.080592 0.026322 0.020861 0.023437 0.110401 0.039308 0.017110 0.004950 0.110401 0.041954 0.001983 0.019208 0.180870 0.041932 0.204360 +0.080721 +0.028833 0.035734 0.031834 0.031281 0.018588 0.109105 0.011496 0.035660 0.029612 0.034413 0.017024 0.047338 0.016193 0.016410 0.028683 0.032319 0.015609 0.042015 0.028978 0.019218 0.019626 0.133891 0.037787 0.017492 0.007342 0.063422 0.038606 0.002284 0.019105 0.110401 0.037658 0.157380 +0.120535 +0.032364 0.033130 0.029512 0.038644 0.014696 0.103811 0.009544 0.037303 0.030029 0.028669 0.017062 0.034359 0.015154 0.016260 0.030573 0.029738 0.014997 0.108547 0.030257 0.019920 0.020703 0.157380 0.040055 0.014951 0.009913 0.157380 0.041263 0.001396 0.020216 0.063422 0.038536 0.204360 +0.253284 +0.030025 0.036630 0.028255 0.032080 0.017757 0.025300 0.011284 0.037225 0.032117 0.031682 0.017942 0.066803 0.015196 0.015768 0.032197 0.029525 0.016985 0.017417 0.030675 0.019872 0.022461 0.110401 0.040870 0.018282 0.004966 0.110401 0.040267 0.001973 0.020391 0.110401 0.040897 0.157380 +0.008200 +0.031840 0.034531 0.029323 0.028635 0.015231 0.227958 0.009510 0.036709 0.028838 0.028563 0.014310 0.131806 0.015902 0.015619 0.028880 0.034707 0.015807 0.019123 0.028827 0.019870 0.022059 0.063422 0.039474 0.012844 0.008976 0.133891 0.040115 0.001726 0.020113 0.110401 0.037813 0.180870 +0.388279 +0.030893 0.038795 0.030439 0.028997 0.016254 0.067228 0.010063 0.037006 0.031255 0.028283 0.017777 0.041313 0.015512 0.015589 0.032486 0.028476 0.014231 0.124582 0.026986 0.020086 0.021395 0.110401 0.038413 0.015871 0.013857 0.063422 0.037791 0.000675 0.020782 0.063422 0.037907 0.180870 +0.243652 +0.032710 0.037938 0.029885 0.028499 0.014613 0.076710 0.011661 0.036724 0.030609 0.028448 0.014723 0.060037 0.016198 0.016020 0.028938 0.031520 0.017679 0.048141 0.029458 0.019767 0.018849 0.110401 0.042018 0.013917 0.005740 0.110401 0.041390 0.001086 0.020828 0.110401 0.041005 0.157380 +0.106084 +0.030105 0.037415 0.029764 0.028250 0.017297 0.071904 0.011464 0.035870 0.030411 0.028929 0.018371 0.044490 0.016430 0.015866 0.030315 0.028305 0.014250 0.060410 0.026746 0.020376 0.020208 0.133891 0.041583 0.018743 0.011102 0.133891 0.039475 0.002308 0.019269 0.063422 0.039286 0.157380 +0.121257 +0.030454 0.039125 0.028560 0.029439 0.014761 0.057148 0.009945 0.035324 0.033175 0.028237 0.015769 0.178660 0.015189 0.016388 0.031566 0.035804 0.018631 0.087531 0.028265 0.020830 0.021569 0.063422 0.038676 0.011892 0.005737 0.110401 0.040013 0.002186 0.020359 0.063422 0.040497 0.133891 +0.380655 +0.029832 0.039391 0.031380 0.031583 0.014315 0.208552 0.010448 0.036134 0.030752 0.028721 0.015837 0.020345 0.016241 0.016091 0.028225 0.030104 0.016067 0.091571 0.028103 0.019683 0.021833 0.110401 0.040892 0.013671 0.012351 0.110401 0.040363 0.001664 0.019365 0.110401 0.040052 0.133891 +0.417454 +0.029220 0.036145 0.031510 0.031791 0.017565 0.075075 0.010597 0.037139 0.028656 0.029221 0.017223 0.042526 0.015541 0.016352 0.028413 0.028746 0.016501 0.021538 0.029633 0.018836 0.018987 0.110401 0.038571 0.013579 0.013928 0.110401 0.041755 0.000662 0.019395 0.086911 0.039260 0.180870 +0.002282 +0.029362 0.035585 0.029093 0.030169 0.016562 0.019019 0.010770 0.035521 0.028811 0.030620 0.016914 0.038410 0.015243 0.016321 0.029847 0.029507 0.018472 0.143662 0.028053 0.019453 0.020833 0.110401 0.041412 0.018117 0.011278 0.110401 0.039803 0.001214 0.019333 0.086911 0.040069 0.157380 +0.090268 +0.031930 0.039068 0.030286 0.028377 0.016781 0.032465 0.011650 0.037309 0.031629 0.030901 0.018653 0.123398 0.016237 0.015635 0.029720 0.035771 0.015725 0.236603 0.027361 0.020099 0.022870 0.133891 0.041771 0.014973 0.012273 0.180870 0.040562 0.001455 0.019434 0.157380 0.038097 0.204360 +0.506235 +0.029449 0.033451 0.029412 0.030649 0.015134 0.059124 0.010749 0.035962 0.036490 0.030955 0.015593 0.135495 0.015772 0.016439 0.030118 0.029389 0.016461 0.035315 0.028971 0.019259 0.019990 0.110401 0.039981 0.014263 0.011480 0.063422 0.038012 0.000252 0.019903 0.133891 0.040870 0.157380 +0.189478 +0.028974 0.034792 0.033094 0.032726 0.015801 0.143113 0.010357 0.036028 0.034113 0.035353 0.014230 0.060963 0.015126 0.016178 0.032037 0.039204 0.015129 0.083125 0.028258 0.020048 0.019621 0.157380 0.038621 0.013450 0.006514 0.110401 0.040166 0.000610 0.020384 0.133891 0.041788 0.180870 +0.314198 +0.028243 0.035912 0.028478 0.028732 0.015214 0.023600 0.011525 0.035653 0.029013 0.038781 0.018306 0.095399 0.016124 0.016120 0.032173 0.030447 0.015404 0.231878 0.027241 0.019887 0.022654 0.110401 0.038587 0.016555 0.006790 0.133891 0.039230 0.000661 0.020429 0.133891 0.042074 0.204360 +0.386856 +0.029342 0.039401 0.028230 0.031567 0.014919 0.063341 0.010844 0.036030 0.030276 0.030085 0.016187 0.078049 0.016400 0.015794 0.030419 0.032202 0.015184 0.030062 0.027304 0.020794 0.020327 0.110401 0.039554 0.018630 0.007717 0.157380 0.039393 0.001707 0.020911 0.110401 0.041232 0.180870 +0.052513 +0.029905 0.035662 0.030104 0.032571 0.016493 0.066139 0.010182 0.036664 0.029310 0.029463 0.018015 0.036739 0.015473 0.015948 0.028234 0.029344 0.014987 0.024588 0.027348 0.018888 0.018923 0.063422 0.040692 0.013728 0.006155 0.086911 0.039264 0.001456 0.020909 0.133891 0.039901 0.157380 +0.020632 +0.029699 0.038519 0.029423 0.029602 0.017699 0.114040 0.011514 0.035993 0.028293 0.030919 0.016775 0.080210 0.015457 0.015661 0.031104 0.032795 0.015296 0.131319 0.027861 0.018971 0.019590 0.157380 0.041768 0.017981 0.009010 0.180870 0.041591 0.000192 0.019392 0.157380 0.038591 0.204360 +0.241321 +0.031455 0.033693 0.028725 0.029885 0.016402 0.035859 0.010184 0.037353 0.028244 0.031279 0.016685 0.141399 0.016102 0.016361 0.032066 0.028263 0.015855 0.230535 0.029176 0.019855 0.018943 0.086911 0.041093 0.013639 0.011040 0.110401 0.042213 0.000642 0.018912 0.110401 0.041262 0.133891 +0.512297 +0.032720 0.039276 0.035558 0.028242 0.017531 0.054666 0.011596 0.036425 0.032861 0.030921 0.015413 0.051741 0.015321 0.015966 0.028268 0.030636 0.017698 0.127253 0.027112 0.019950 0.019646 0.110401 0.038599 0.012923 0.005208 0.157380 0.038590 0.000817 0.020572 0.157380 0.041024 0.204360 +0.233583 +0.030484 0.038876 0.032122 0.028614 0.017702 0.052759 0.010292 0.035766 0.029960 0.029202 0.015593 0.339580 0.015852 0.016200 0.029386 0.032775 0.015894 0.072544 0.028851 0.019018 0.020925 0.110401 0.039910 0.016757 0.009986 0.086911 0.041873 0.002162 0.019731 0.063422 0.037792 0.133891 +0.625505 +0.030646 0.035968 0.028634 0.032152 0.014409 0.102251 0.009655 0.037343 0.031979 0.029676 0.014663 0.048037 0.015250 0.015674 0.036221 0.029251 0.018563 0.124841 0.027926 0.019579 0.023223 0.063422 0.041749 0.012520 0.007902 0.086911 0.041832 0.001162 0.020314 0.086911 0.038219 0.204360 +0.171146 +0.028418 0.036469 0.029233 0.028745 0.018099 0.078017 0.011384 0.037338 0.029135 0.030745 0.016506 0.025436 0.015988 0.015762 0.030574 0.029846 0.018390 0.030068 0.028586 0.020778 0.019995 0.110401 0.041219 0.016529 0.011577 0.133891 0.038761 0.002195 0.020740 0.110401 0.037739 0.157380 +0.051644 +0.028389 0.036669 0.030894 0.030777 0.017227 0.149816 0.011525 0.037226 0.030332 0.031370 0.017007 0.050611 0.015877 0.015823 0.030219 0.031320 0.018178 0.022223 0.028028 0.019720 0.019973 0.063422 0.038284 0.017379 0.014088 0.110401 0.040497 0.001705 0.021115 0.063422 0.039917 0.133891 +0.191399 +0.031567 0.034829 0.031516 0.029149 0.015450 0.040386 0.009935 0.037223 0.028663 0.032364 0.018414 0.074226 0.016377 0.015962 0.029433 0.029006 0.015322 0.023530 0.028810 0.021121 0.022466 0.133891 0.041721 0.013812 0.006868 0.110401 0.042190 0.001438 0.020483 0.086911 0.041869 0.204360 +0.005926 +0.028586 0.035062 0.030727 0.030748 0.014945 0.190109 0.009644 0.035603 0.030949 0.028235 0.018098 0.148201 0.015794 0.016223 0.029223 0.029142 0.017889 0.176578 0.028248 0.019653 0.020970 0.110401 0.037864 0.013878 0.013947 0.086911 0.040951 0.001876 0.020921 0.133891 0.039961 0.157380 +0.583736 +0.029774 0.035110 0.029835 0.028196 0.015855 0.159985 0.010137 0.037499 0.028731 0.037305 0.015519 0.031482 0.015388 0.016012 0.031142 0.031518 0.017903 0.040526 0.028446 0.019858 0.022934 0.110401 0.037655 0.017075 0.005672 0.110401 0.039035 0.000148 0.019922 0.133891 0.039194 0.157380 +0.253449 +0.029021 0.038188 0.029480 0.029111 0.016131 0.041297 0.011263 0.037078 0.028729 0.032354 0.018013 0.127422 0.015981 0.016401 0.029842 0.030550 0.018089 0.253101 0.028179 0.020004 0.019101 0.133891 0.037804 0.011785 0.010950 0.133891 0.041932 0.000922 0.019547 0.110401 0.040012 0.157380 +0.572917 +0.031558 0.035450 0.030598 0.029840 0.018356 0.072509 0.010517 0.036441 0.035184 0.029703 0.015611 0.042329 0.015084 0.016348 0.032693 0.030598 0.017247 0.100544 0.027975 0.020286 0.021279 0.180870 0.038448 0.015576 0.012095 0.157380 0.041576 0.000611 0.019459 0.086911 0.038223 0.204360 +0.097190 +0.029496 0.037799 0.029551 0.033712 0.017494 0.385967 0.010134 0.035388 0.029988 0.031097 0.017185 0.030773 0.015136 0.015743 0.033660 0.028379 0.018753 0.030806 0.026704 0.019008 0.022188 0.086911 0.038930 0.012359 0.013456 0.063422 0.039879 0.000090 0.020247 0.086911 0.039430 0.133891 +0.481394 +0.031596 0.033299 0.031299 0.029400 0.018046 0.026856 0.011121 0.037580 0.032267 0.029113 0.014134 0.025580 0.015147 0.015726 0.028776 0.030707 0.014336 0.410187 0.028706 0.019396 0.023388 0.086911 0.040308 0.014717 0.008184 0.110401 0.040588 0.000490 0.019441 0.110401 0.041228 0.133891 +0.609052 +0.030107 0.036966 0.031744 0.028631 0.016444 0.034626 0.010597 0.035570 0.028456 0.031811 0.015520 0.050554 0.015270 0.016429 0.030354 0.029974 0.017312 0.035623 0.028566 0.020355 0.022205 0.086911 0.041196 0.017824 0.005715 0.086911 0.038174 0.001635 0.019831 0.086911 0.038166 0.133891 +0.044727 +0.030091 0.039216 0.032194 0.030833 0.016266 0.045373 0.010048 0.036002 0.028262 0.030214 0.017273 0.033076 0.016412 0.015610 0.029412 0.033357 0.017203 0.038704 0.028673 0.021092 0.020449 0.157380 0.039037 0.013958 0.006975 0.133891 0.038152 0.002037 0.020764 0.133891 0.038355 0.180870 +0.032760 +0.030521 0.036355 0.028589 0.028436 0.018326 0.120778 0.010684 0.037242 0.028921 0.030709 0.016697 0.077544 0.015708 0.015894 0.029081 0.029315 0.015564 0.145621 0.027041 0.020366 0.021574 0.086911 0.042223 0.018290 0.010392 0.086911 0.041407 0.002276 0.019586 0.110401 0.038546 0.133891 +0.338986 +0.031276 0.036826 0.028770 0.030044 0.016453 0.122700 0.009788 0.037194 0.028697 0.033388 0.015728 0.223819 0.015586 0.015614 0.029674 0.032984 0.017602 0.046524 0.029478 0.018948 0.022188 0.110401 0.039540 0.013594 0.013779 0.086911 0.041699 0.002294 0.019518 0.086911 0.039804 0.157380 +0.419080 +0.031599 0.039671 0.028469 0.029133 0.015056 0.050635 0.010264 0.036081 0.032123 0.030754 0.017428 0.023484 0.016033 0.015980 0.030554 0.028388 0.015375 0.068459 0.030285 0.019669 0.022425 0.063422 0.039908 0.014221 0.012836 0.086911 0.038232 0.000646 0.019267 0.086911 0.040235 0.204360 +0.003996 +0.029065 0.036689 0.031693 0.032944 0.014978 0.028323 0.010080 0.036423 0.028609 0.028985 0.018081 0.162266 0.015461 0.016186 0.031454 0.029189 0.015805 0.048321 0.028201 0.019144 0.019448 0.157380 0.041169 0.013435 0.013295 0.086911 0.037846 0.000452 0.020362 0.086911 0.041906 0.180870 +0.165608 +0.032411 0.038616 0.032766 0.032194 0.018637 0.048913 0.009700 0.037173 0.029940 0.034336 0.018417 0.109774 0.015264 0.015852 0.028778 0.028518 0.016999 0.054161 0.027078 0.019111 0.020453 0.063422 0.038509 0.018226 0.010069 0.086911 0.041997 0.001557 0.020833 0.110401 0.038258 0.133891 +0.167883 +0.029929 0.036500 0.029979 0.028554 0.016027 0.173187 0.009631 0.035764 0.029379 0.029200 0.014770 0.102432 0.015155 0.015525 0.028284 0.029639 0.014723 0.018108 0.025355 0.020834 0.022278 0.063422 0.041147 0.017397 0.011469 0.063422 0.041500 0.000491 0.020042 0.063422 0.040195 0.133891 +0.319421 +0.029815 0.039125 0.028976 0.031674 0.016958 0.084007 0.010374 0.035389 0.028835 0.033114 0.017608 0.033149 0.016343 0.015868 0.029835 0.034162 0.015935 0.083314 0.029602 0.020245 0.020644 0.133891 0.040079 0.014136 0.007656 0.133891 0.040737 0.001281 0.020132 0.086911 0.041552 0.157380 +0.226517 +0.031280 0.039468 0.029072 0.031296 0.015614 0.195807 0.010272 0.035517 0.028278 0.031539 0.015876 0.168735 0.015767 0.015651 0.032039 0.028947 0.018202 0.032847 0.030492 0.020698 0.023268 0.063422 0.041256 0.012712 0.013733 0.063422 0.038671 0.000713 0.019084 0.086911 0.040416 0.133891 +0.475265 +0.032488 0.033730 0.028845 0.030750 0.016766 0.128271 0.010084 0.037446 0.028937 0.033930 0.015748 0.078790 0.015474 0.015849 0.032217 0.028296 0.014263 0.046735 0.029263 0.020707 0.021112 0.086911 0.038612 0.018175 0.011514 0.133891 0.040242 0.000312 0.021106 0.063422 0.039677 0.157380 +0.265556 +0.030826 0.037163 0.041458 0.030096 0.014175 0.044408 0.010446 0.035712 0.029510 0.029889 0.018370 0.095757 0.015104 0.015532 0.029604 0.030898 0.015727 0.209796 0.029770 0.019081 0.022873 0.063422 0.040786 0.015601 0.005077 0.157380 0.041252 0.002209 0.019570 0.133891 0.039738 0.180870 +0.414242 +0.030781 0.035026 0.034460 0.030583 0.016645 0.077541 0.011002 0.035326 0.032519 0.031901 0.016653 0.067115 0.016255 0.016079 0.028805 0.031965 0.017665 0.022083 0.029210 0.019199 0.023249 0.157380 0.039958 0.014593 0.006703 0.133891 0.039620 0.001828 0.021051 0.133891 0.037888 0.204360 +0.065515 +0.028247 0.038460 0.032171 0.028376 0.015899 0.053706 0.009773 0.036090 0.032417 0.039488 0.014535 0.050119 0.015802 0.015555 0.029518 0.029171 0.014249 0.107775 0.026096 0.020109 0.019326 0.063422 0.041006 0.018416 0.013064 0.133891 0.039098 0.000673 0.018810 0.133891 0.040283 0.157380 +0.168634 +0.028694 0.038179 0.030900 0.028230 0.016579 0.060116 0.010001 0.035560 0.028417 0.028931 0.015143 0.093607 0.016009 0.015667 0.030237 0.029507 0.017264 0.098902 0.028255 0.020247 0.019697 0.110401 0.038663 0.015627 0.013051 0.063422 0.041167 0.000848 0.020166 0.110401 0.040740 0.157380 +0.164428 +0.032252 0.033440 0.028792 0.038921 0.014803 0.033489 0.011180 0.037310 0.028385 0.031899 0.015612 0.714283 0.015581 0.015958 0.029827 0.036289 0.017677 0.117760 0.030037 0.018869 0.022224 0.063422 0.038237 0.017534 0.010305 0.110401 0.039445 0.000331 0.019930 0.157380 0.041844 0.180870 +0.958476 +0.030390 0.034446 0.034672 0.028423 0.018644 0.118239 0.009727 0.035321 0.032168 0.031837 0.014516 0.137925 0.015578 0.016117 0.031269 0.030537 0.015271 0.028580 0.028266 0.019706 0.023191 0.086911 0.040135 0.013033 0.008093 0.110401 0.038302 0.001143 0.020044 0.063422 0.039122 0.157380 +0.288842 +0.030138 0.036974 0.032067 0.032885 0.017798 0.038796 0.009556 0.036079 0.028194 0.028289 0.015843 0.087649 0.015715 0.015752 0.030081 0.029858 0.015758 0.067684 0.026967 0.020995 0.022674 0.133891 0.040838 0.016819 0.011338 0.157380 0.040177 0.001093 0.021106 0.063422 0.040019 0.180870 +0.070938 +0.032403 0.039258 0.028281 0.028275 0.018394 0.062635 0.010691 0.036288 0.028478 0.028468 0.017288 0.017788 0.015423 0.016147 0.029047 0.030927 0.018531 0.079211 0.030075 0.019834 0.020217 0.063422 0.041600 0.017079 0.011404 0.110401 0.042141 0.001578 0.020450 0.086911 0.041945 0.133891 +0.072739 +0.031119 0.037124 0.031218 0.028445 0.018702 0.051224 0.011602 0.037168 0.030372 0.029789 0.014624 0.049315 0.015580 0.016119 0.029413 0.029085 0.015011 0.042356 0.028627 0.020678 0.021502 0.133891 0.042101 0.016696 0.012828 0.110401 0.040833 0.000638 0.019198 0.063422 0.039854 0.157380 +0.070276 +0.031135 0.038500 0.032018 0.029230 0.016878 0.175537 0.011434 0.036379 0.032987 0.028273 0.015878 0.030129 0.015529 0.015801 0.029672 0.028884 0.018055 0.032100 0.027973 0.020705 0.021857 0.063422 0.038037 0.013702 0.008824 0.063422 0.039646 0.002199 0.020870 0.110401 0.040657 0.180870 +0.132193 +0.030420 0.033913 0.030745 0.031095 0.017475 0.032507 0.009480 0.037424 0.030231 0.029089 0.018402 0.111564 0.015314 0.015912 0.031319 0.029317 0.015186 0.045227 0.028614 0.019694 0.020558 0.133891 0.038424 0.017530 0.008464 0.110401 0.038462 0.000995 0.020679 0.110401 0.038810 0.157380 +0.107459 +0.031596 0.035981 0.030956 0.028404 0.015997 0.136275 0.009837 0.036803 0.029677 0.031479 0.014392 0.099659 0.016130 0.015981 0.031929 0.028700 0.017290 0.266371 0.027875 0.020025 0.019898 0.063422 0.040565 0.014484 0.012448 0.086911 0.038449 0.000753 0.019180 0.180870 0.040215 0.204360 +0.587374 +0.028624 0.037588 0.030012 0.028291 0.018705 0.131831 0.010729 0.036645 0.028488 0.030277 0.018152 0.083006 0.016068 0.015977 0.029156 0.028580 0.015601 0.058684 0.027144 0.020859 0.021535 0.086911 0.041327 0.015406 0.010580 0.063422 0.037737 0.001644 0.019600 0.086911 0.041273 0.157380 +0.291156 +0.028253 0.039577 0.028793 0.029664 0.015230 0.059198 0.011349 0.036770 0.033995 0.030628 0.016419 0.024794 0.016015 0.016271 0.031230 0.032424 0.016494 0.198241 0.027309 0.021096 0.021521 0.063422 0.037699 0.014995 0.010063 0.086911 0.039597 0.002239 0.019337 0.063422 0.041024 0.133891 +0.293843 +0.028845 0.037758 0.029157 0.030732 0.018063 0.102927 0.010819 0.035468 0.033501 0.032427 0.018225 0.117206 0.015224 0.016305 0.028434 0.028608 0.014245 0.031993 0.027756 0.019380 0.019849 0.063422 0.040129 0.012192 0.005540 0.157380 0.037648 0.000067 0.019969 0.157380 0.041750 0.204360 +0.225024 +0.030079 0.039524 0.030263 0.029824 0.017627 0.019149 0.010660 0.035790 0.031772 0.032700 0.017296 0.063368 0.015281 0.015867 0.029336 0.029996 0.014643 0.115406 0.030472 0.021118 0.020671 0.063422 0.040625 0.015890 0.008928 0.110401 0.038829 0.000092 0.019858 0.063422 0.041034 0.180870 +0.090168 +0.031793 0.034406 0.029122 0.029176 0.016881 0.071526 0.011091 0.035283 0.030246 0.030212 0.018134 0.136399 0.016140 0.016301 0.030010 0.028347 0.016369 0.065143 0.028384 0.018838 0.019164 0.110401 0.040097 0.017875 0.010074 0.086911 0.041913 0.001911 0.020180 0.110401 0.038510 0.157380 +0.186344 +0.032197 0.038695 0.028646 0.028265 0.016203 0.037426 0.010198 0.036601 0.029052 0.030212 0.016411 0.024161 0.016306 0.016225 0.029965 0.028761 0.016303 0.082598 0.029791 0.019464 0.020375 0.157380 0.039054 0.012429 0.010536 0.157380 0.038459 0.000079 0.020220 0.157380 0.040948 0.204360 +0.020588 +0.030180 0.034004 0.032472 0.028392 0.015546 0.083283 0.010152 0.037391 0.028322 0.031889 0.016653 0.024471 0.015401 0.016012 0.028637 0.028598 0.017909 0.032507 0.027803 0.019362 0.018907 0.157380 0.038211 0.017284 0.007702 0.063422 0.038963 0.000612 0.021109 0.063422 0.040293 0.180870 +0.050045 +0.028419 0.038537 0.031168 0.031056 0.014146 0.064258 0.009679 0.036126 0.029896 0.030321 0.017552 0.090688 0.015131 0.015657 0.030963 0.028738 0.016983 0.036219 0.028033 0.019688 0.021767 0.063422 0.040558 0.014654 0.008268 0.063422 0.038151 0.001619 0.020677 0.157380 0.041999 0.180870 +0.120257 +0.032750 0.034094 0.029059 0.029779 0.016904 0.085233 0.011179 0.036671 0.028233 0.028880 0.016912 0.032049 0.015736 0.015694 0.032629 0.028705 0.016367 0.022140 0.027456 0.020727 0.022859 0.157380 0.038584 0.011956 0.007400 0.063422 0.042276 0.002323 0.019790 0.157380 0.039651 0.180870 +0.060538 +0.032785 0.033478 0.028416 0.028194 0.016664 0.017628 0.010517 0.036014 0.030084 0.029860 0.016641 0.068469 0.015233 0.016332 0.030132 0.028344 0.015743 0.026177 0.028870 0.019768 0.020764 0.086911 0.039152 0.016160 0.010813 0.110401 0.041968 0.001723 0.020059 0.086911 0.042160 0.133891 +0.017999 +0.028461 0.035730 0.029292 0.032417 0.017578 0.128105 0.009952 0.037347 0.030795 0.030543 0.017902 0.341397 0.015038 0.015726 0.028260 0.029654 0.018073 0.157228 0.029195 0.019191 0.023213 0.157380 0.041903 0.012432 0.012598 0.157380 0.039246 0.000711 0.020346 0.063422 0.041299 0.180870 +0.764624 +0.030812 0.034376 0.031367 0.030800 0.017094 0.193998 0.011580 0.037396 0.029465 0.034657 0.016111 0.156606 0.015944 0.015848 0.029665 0.030832 0.018603 0.023009 0.028243 0.019674 0.022240 0.110401 0.040786 0.017241 0.009673 0.063422 0.042086 0.000453 0.020278 0.110401 0.040212 0.133891 +0.420691 +0.029923 0.037670 0.028325 0.028758 0.018181 0.071198 0.009624 0.036570 0.031854 0.028564 0.014905 0.057770 0.015682 0.016069 0.031570 0.028332 0.016810 0.033041 0.029069 0.020203 0.020965 0.133891 0.041817 0.014742 0.012667 0.157380 0.040017 0.000177 0.020465 0.110401 0.037610 0.204360 +0.044338 +0.031024 0.035516 0.031441 0.031274 0.017316 0.113886 0.011715 0.035892 0.028768 0.029643 0.018660 0.029859 0.015367 0.015582 0.028540 0.029951 0.016511 0.145575 0.027088 0.019076 0.020167 0.063422 0.041938 0.014841 0.007503 0.086911 0.038679 0.002245 0.020228 0.063422 0.038693 0.133891 +0.368594 +0.032396 0.036042 0.029388 0.033283 0.018276 0.067090 0.011372 0.036531 0.028263 0.029817 0.015051 0.097541 0.015706 0.016423 0.034299 0.039184 0.014354 0.048192 0.028548 0.021020 0.023055 0.157380 0.037739 0.016465 0.005161 0.157380 0.037678 0.000504 0.020497 0.133891 0.039484 0.180870 +0.287322 +0.028959 0.033129 0.029434 0.031362 0.014633 0.041294 0.011541 0.036018 0.028975 0.028379 0.018681 0.126138 0.015769 0.016419 0.032234 0.032032 0.015256 0.153350 0.028550 0.020054 0.023119 0.133891 0.040790 0.015534 0.009533 0.110401 0.037961 0.000925 0.019337 0.157380 0.039470 0.180870 +0.348052 +0.029308 0.033897 0.029925 0.030345 0.016848 0.291243 0.009451 0.036967 0.038664 0.028877 0.016455 0.066384 0.015161 0.015933 0.030160 0.029851 0.014904 0.052349 0.029638 0.018821 0.021997 0.086911 0.040031 0.013754 0.007455 0.110401 0.041932 0.000793 0.019684 0.063422 0.038133 0.133891 +0.530905 +0.032314 0.033872 0.031031 0.029904 0.016800 0.079834 0.010858 0.035651 0.030226 0.028540 0.015925 0.065940 0.016254 0.015519 0.033818 0.033994 0.016437 0.166623 0.027721 0.020997 0.020675 0.086911 0.040975 0.011859 0.007329 0.133891 0.039527 0.002003 0.020010 0.133891 0.041861 0.157380 +0.405243 +0.030264 0.035973 0.033922 0.028190 0.017942 0.029441 0.010278 0.036785 0.028560 0.028907 0.015524 0.031993 0.015194 0.016093 0.033021 0.036413 0.017987 0.120895 0.026879 0.019283 0.020538 0.110401 0.040465 0.018147 0.012723 0.110401 0.039985 0.001550 0.020388 0.086911 0.040358 0.157380 +0.070388 +0.028247 0.037856 0.029784 0.033939 0.016088 0.060521 0.011605 0.037139 0.033004 0.029854 0.014841 0.130840 0.015666 0.016340 0.031190 0.032639 0.016537 0.061046 0.027666 0.019805 0.019260 0.110401 0.041738 0.014100 0.012650 0.063422 0.040253 0.000031 0.019329 0.157380 0.039872 0.180870 +0.195951 +0.032371 0.033407 0.029978 0.034221 0.016741 0.044234 0.011648 0.036063 0.028874 0.030207 0.017141 0.037364 0.016338 0.015693 0.031212 0.030867 0.017277 0.113738 0.028981 0.021031 0.021966 0.110401 0.039895 0.016692 0.011259 0.133891 0.039547 0.001220 0.018974 0.086911 0.041729 0.157380 +0.092608 +0.029544 0.036254 0.031217 0.036694 0.014411 0.089416 0.010334 0.036824 0.029331 0.030402 0.017639 0.056555 0.015684 0.015512 0.028867 0.030153 0.017513 0.017179 0.027534 0.021091 0.022714 0.133891 0.038937 0.017140 0.012168 0.063422 0.038294 0.001751 0.018821 0.110401 0.039413 0.180870 +0.120657 +0.031918 0.036816 0.030554 0.033930 0.014536 0.077430 0.010197 0.037415 0.028363 0.028697 0.018339 0.029428 0.015339 0.016034 0.033273 0.033030 0.018198 0.205877 0.026704 0.018906 0.019744 0.086911 0.039069 0.012350 0.004736 0.157380 0.038587 0.001934 0.021059 0.157380 0.040200 0.180870 +0.343265 +0.032099 0.038255 0.028580 0.032346 0.018640 0.016566 0.011469 0.035997 0.029077 0.031054 0.016269 0.056792 0.015383 0.016414 0.030715 0.029645 0.014990 0.035057 0.028238 0.020300 0.023169 0.180870 0.040482 0.014269 0.007119 0.110401 0.042257 0.000834 0.019428 0.063422 0.041779 0.204360 +0.025137 +0.031595 0.036774 0.030003 0.032161 0.015551 0.048564 0.010047 0.037577 0.034269 0.029446 0.015184 0.121082 0.015435 0.015827 0.029655 0.029967 0.018072 0.114663 0.027877 0.019889 0.018863 0.110401 0.040469 0.013384 0.012793 0.110401 0.041121 0.000402 0.018978 0.110401 0.039535 0.133891 +0.295212 +0.030948 0.038850 0.028654 0.031022 0.016308 0.039530 0.011183 0.036637 0.032224 0.030457 0.015392 0.035216 0.015723 0.016256 0.029038 0.028554 0.016702 0.070225 0.027196 0.019569 0.020274 0.086911 0.040295 0.012347 0.008279 0.063422 0.039256 0.000088 0.019107 0.180870 0.038134 0.204360 +0.020836 +0.032421 0.033793 0.028488 0.028755 0.017477 0.439902 0.010774 0.036772 0.029465 0.028198 0.018728 0.098173 0.015341 0.015591 0.030422 0.029402 0.018183 0.021885 0.028225 0.020364 0.020382 0.110401 0.039534 0.011851 0.008846 0.086911 0.040511 0.000192 0.019428 0.110401 0.040348 0.133891 +0.634438 +0.031643 0.036066 0.029608 0.029003 0.017874 0.043634 0.010761 0.036490 0.035554 0.030421 0.015947 0.033561 0.015562 0.015541 0.042662 0.028923 0.014339 0.096714 0.027973 0.020298 0.020108 0.133891 0.041419 0.016365 0.007173 0.180870 0.039712 0.001677 0.020673 0.110401 0.040102 0.204360 +0.070589 +0.028588 0.036686 0.029248 0.033913 0.014420 0.030590 0.010317 0.036981 0.032721 0.029330 0.016256 0.085800 0.016034 0.015561 0.029483 0.034754 0.014339 0.147430 0.030633 0.020632 0.021198 0.063422 0.041908 0.012317 0.013438 0.086911 0.037663 0.001348 0.019853 0.086911 0.038533 0.180870 +0.219008 +0.031865 0.036515 0.029057 0.029179 0.014289 0.072827 0.011698 0.035247 0.030652 0.029501 0.014737 0.017751 0.015390 0.015759 0.029138 0.028471 0.015153 0.033566 0.028834 0.020869 0.022922 0.063422 0.039415 0.015606 0.007023 0.110401 0.040288 0.000250 0.019142 0.063422 0.039823 0.204360 +0 +0.028437 0.036954 0.028443 0.030158 0.017618 0.021232 0.010660 0.037247 0.034196 0.032700 0.015337 0.042211 0.016279 0.016175 0.028403 0.028611 0.015276 0.126730 0.028056 0.019302 0.019158 0.086911 0.041033 0.012665 0.013457 0.063422 0.039840 0.001430 0.020062 0.063422 0.041057 0.133891 +0.082032 +0.031345 0.038303 0.035437 0.028934 0.015172 0.018732 0.009628 0.035488 0.029241 0.034207 0.016026 0.150342 0.016125 0.015514 0.028791 0.031258 0.018590 0.122577 0.026436 0.019434 0.020175 0.063422 0.041531 0.013018 0.012734 0.063422 0.041552 0.000678 0.019804 0.110401 0.041460 0.133891 +0.239219 +0.029352 0.033286 0.032179 0.030330 0.018707 0.034783 0.010106 0.036809 0.028913 0.028457 0.014956 0.055114 0.015897 0.015639 0.029304 0.028218 0.016190 0.070588 0.027402 0.020665 0.022663 0.063422 0.038377 0.018761 0.012818 0.063422 0.038243 0.001319 0.020041 0.110401 0.041163 0.133891 +0.077714 +0.029826 0.032915 0.029919 0.029670 0.016764 0.169664 0.009493 0.035940 0.030904 0.032839 0.014745 0.182255 0.015822 0.015804 0.035457 0.030186 0.016246 0.094183 0.029877 0.018926 0.021973 0.180870 0.041669 0.016822 0.005623 0.157380 0.039955 0.000615 0.020401 0.063422 0.041972 0.204360 +0.429759 +0.031713 0.034996 0.033780 0.036172 0.017826 0.079967 0.010518 0.035494 0.029008 0.029824 0.014425 0.021863 0.016313 0.016113 0.035587 0.031444 0.015688 0.025689 0.026136 0.019355 0.022227 0.133891 0.042083 0.017649 0.011927 0.086911 0.038913 0.001460 0.018975 0.086911 0.041126 0.180870 +0.020411 +0.031546 0.036391 0.029735 0.028202 0.014887 0.029225 0.009450 0.037024 0.028548 0.028849 0.017572 0.046602 0.016224 0.015880 0.028851 0.028614 0.015319 0.023525 0.027460 0.019657 0.021993 0.086911 0.040845 0.014740 0.010503 0.086911 0.038173 0.002296 0.019910 0.110401 0.038331 0.133891 +0.018388 +0.029141 0.034546 0.028746 0.032463 0.016058 0.110849 0.010795 0.036227 0.030350 0.029919 0.017618 0.094685 0.015803 0.015620 0.028407 0.030468 0.018791 0.091319 0.026064 0.019514 0.018953 0.180870 0.041473 0.016463 0.008790 0.133891 0.040938 0.000403 0.020503 0.086911 0.040143 0.204360 +0.311886 +0.030509 0.033890 0.029693 0.028549 0.016827 0.029120 0.011415 0.035484 0.028988 0.028840 0.017590 0.179136 0.016276 0.016432 0.032665 0.032423 0.016641 0.059856 0.027140 0.019805 0.019476 0.063422 0.038029 0.014380 0.008803 0.086911 0.040212 0.001991 0.019648 0.086911 0.041673 0.133891 +0.286058 +0.032044 0.034902 0.030806 0.028220 0.014541 0.028723 0.010509 0.035529 0.029154 0.028932 0.016347 0.029063 0.015541 0.016269 0.028250 0.031657 0.014350 0.067132 0.028913 0.020906 0.019625 0.063422 0.038726 0.018479 0.011751 0.110401 0.039122 0.002341 0.019746 0.110401 0.042220 0.133891 +0.057990 +0.030142 0.036734 0.034168 0.030222 0.016837 0.059777 0.011505 0.035720 0.032786 0.029903 0.016229 0.052444 0.016034 0.015581 0.031186 0.028816 0.014411 0.050728 0.026702 0.020887 0.021289 0.063422 0.038610 0.017296 0.011451 0.180870 0.039576 0.002173 0.019029 0.157380 0.040148 0.204360 +0.056306 +0.032018 0.039431 0.029072 0.031305 0.018108 0.048636 0.010162 0.035652 0.031185 0.028422 0.018052 0.046691 0.015810 0.016122 0.030708 0.029174 0.014907 0.102065 0.026830 0.019495 0.022959 0.063422 0.037959 0.014769 0.011094 0.110401 0.039958 0.002237 0.019034 0.110401 0.041711 0.133891 +0.234906 +0.029531 0.032972 0.028243 0.028398 0.017673 0.033412 0.011513 0.036471 0.028656 0.028310 0.017960 0.113182 0.016398 0.016361 0.028216 0.028235 0.015539 0.038357 0.027638 0.020053 0.020622 0.063422 0.038003 0.018128 0.007059 0.157380 0.038527 0.000842 0.020022 0.086911 0.039574 0.180870 +0.121457 +0.030738 0.036378 0.031332 0.031255 0.016169 0.033943 0.010487 0.035646 0.035957 0.029442 0.015894 0.082723 0.015329 0.016110 0.028781 0.029742 0.017682 0.125671 0.027005 0.019563 0.020604 0.110401 0.039643 0.013337 0.010527 0.063422 0.038939 0.000868 0.019742 0.110401 0.041562 0.133891 +0.270368 +0.031832 0.034705 0.028802 0.031159 0.014778 0.019620 0.009455 0.036859 0.029945 0.031060 0.018329 0.172489 0.015994 0.016239 0.033373 0.030968 0.014503 0.029848 0.027771 0.020598 0.020469 0.110401 0.039961 0.017897 0.013468 0.086911 0.039497 0.001874 0.020831 0.063422 0.038893 0.133891 +0.130086 +0.029569 0.033213 0.028281 0.029392 0.017118 0.095475 0.010737 0.036267 0.028349 0.028316 0.016755 0.030528 0.016141 0.015513 0.035048 0.028847 0.017646 0.017034 0.029767 0.019692 0.020320 0.133891 0.038892 0.016523 0.013140 0.086911 0.040727 0.001324 0.019468 0.133891 0.037599 0.157380 +0.093691 +0.031640 0.038154 0.028659 0.029452 0.016656 0.052977 0.009418 0.037492 0.029758 0.028979 0.014095 0.157790 0.015797 0.016308 0.030609 0.028210 0.015134 0.034063 0.028341 0.020495 0.019394 0.110401 0.039185 0.017055 0.013979 0.086911 0.038037 0.001532 0.021123 0.086911 0.037844 0.157380 +0.181891 +0.029827 0.032991 0.029917 0.028397 0.015003 0.055464 0.010852 0.036780 0.028189 0.030787 0.017808 0.096379 0.015844 0.016345 0.028502 0.029581 0.017572 0.019110 0.026708 0.019510 0.021472 0.110401 0.038404 0.012704 0.008188 0.086911 0.039879 0.002206 0.018936 0.110401 0.041113 0.157380 +0.135877 +0.029276 0.035594 0.028298 0.028936 0.017458 0.031822 0.011678 0.035297 0.031481 0.034270 0.014542 0.038680 0.016391 0.015644 0.028898 0.035573 0.014233 0.078920 0.029422 0.019008 0.019529 0.063422 0.037877 0.017853 0.006182 0.110401 0.037837 0.001928 0.019357 0.063422 0.039022 0.180870 +0.019426 +0.029813 0.033024 0.032981 0.030047 0.014604 0.036540 0.011130 0.036445 0.030901 0.033710 0.017395 0.025723 0.016097 0.016013 0.029798 0.028480 0.015871 0.098297 0.029591 0.020243 0.019230 0.086911 0.038980 0.013738 0.008522 0.063422 0.039492 0.000029 0.019921 0.110401 0.039971 0.133891 +0.109416 +0.029247 0.037108 0.028607 0.029892 0.016872 0.126027 0.009496 0.035718 0.030380 0.032480 0.016926 0.306736 0.016193 0.016211 0.037815 0.029355 0.016566 0.049174 0.028202 0.020509 0.019374 0.063422 0.038036 0.015740 0.005533 0.086911 0.040212 0.000146 0.018943 0.110401 0.041338 0.180870 +0.629125 +0.030411 0.035438 0.032472 0.030612 0.017188 0.031680 0.010860 0.036954 0.029110 0.033296 0.016904 0.112869 0.016368 0.015849 0.033287 0.033528 0.016337 0.017564 0.028429 0.019766 0.023245 0.110401 0.039255 0.015187 0.010710 0.157380 0.039531 0.000413 0.021030 0.063422 0.038611 0.180870 +0.048295 +0.028455 0.034685 0.029030 0.031822 0.014990 0.182558 0.010129 0.037316 0.030194 0.028655 0.017425 0.055346 0.015368 0.016015 0.028619 0.028968 0.017826 0.017574 0.026354 0.020778 0.022473 0.180870 0.042105 0.013748 0.012485 0.063422 0.042124 0.000303 0.018894 0.180870 0.041749 0.204360 +0.432593 +0.032684 0.034911 0.028726 0.035117 0.015378 0.051886 0.010541 0.036309 0.028759 0.029228 0.015648 0.102909 0.015276 0.016135 0.029982 0.029815 0.014313 0.131069 0.027539 0.018910 0.021295 0.110401 0.041784 0.012534 0.005497 0.063422 0.040211 0.001757 0.019719 0.133891 0.038771 0.180870 +0.241900 +0.032265 0.035510 0.028667 0.029539 0.017243 0.036357 0.010677 0.036188 0.029555 0.028290 0.016064 0.029715 0.016239 0.016170 0.028469 0.029570 0.014193 0.216443 0.029585 0.018850 0.020821 0.180870 0.038469 0.015268 0.009697 0.133891 0.040830 0.001163 0.020891 0.180870 0.039441 0.204360 +0.283629 +0.032188 0.033664 0.028707 0.032175 0.015999 0.096249 0.011127 0.035817 0.029183 0.028622 0.018607 0.072078 0.015238 0.015814 0.028425 0.030309 0.014325 0.039222 0.028122 0.018978 0.022287 0.086911 0.038535 0.017164 0.008198 0.133891 0.042107 0.000171 0.019504 0.157380 0.039765 0.180870 +0.159172 +0.030329 0.034133 0.029380 0.033022 0.018146 0.140077 0.010054 0.035865 0.030289 0.028475 0.017558 0.044324 0.015188 0.016282 0.030243 0.028305 0.015431 0.046462 0.030140 0.018914 0.020553 0.157380 0.039282 0.017285 0.007618 0.157380 0.040413 0.001019 0.019456 0.063422 0.040568 0.180870 +0.190607 +0.032040 0.034333 0.028424 0.028577 0.015175 0.175284 0.011451 0.036087 0.029227 0.028669 0.018087 0.055622 0.016187 0.015555 0.029202 0.032852 0.018750 0.041790 0.028114 0.020008 0.022691 0.180870 0.040079 0.012461 0.005065 0.180870 0.042113 0.002023 0.020201 0.180870 0.041513 0.204360 +0.477901 +0.029413 0.034001 0.031930 0.033311 0.016784 0.028868 0.010052 0.035843 0.029730 0.028456 0.015429 0.024248 0.016322 0.015656 0.028783 0.028946 0.015602 0.061376 0.028175 0.020146 0.020136 0.063422 0.039249 0.012335 0.010123 0.063422 0.039486 0.000189 0.019383 0.157380 0.039166 0.180870 +0.003570 +0.028509 0.037014 0.028528 0.030757 0.016083 0.080055 0.010382 0.037069 0.031492 0.030549 0.016717 0.049900 0.015619 0.015628 0.028496 0.028307 0.015341 0.470167 0.026298 0.019343 0.020764 0.110401 0.039813 0.016693 0.006238 0.063422 0.040237 0.000562 0.020327 0.086911 0.037948 0.180870 +0.761929 +0.031088 0.037715 0.033806 0.029394 0.016137 0.075494 0.010152 0.036180 0.029859 0.028779 0.017517 0.040553 0.015493 0.016209 0.028283 0.030586 0.015941 0.194124 0.027883 0.019329 0.022757 0.157380 0.038640 0.013914 0.009637 0.110401 0.040358 0.000913 0.020576 0.157380 0.042142 0.204360 +0.387450 +0.031786 0.033318 0.036129 0.029794 0.014829 0.068847 0.010791 0.036433 0.029666 0.028465 0.014814 0.239439 0.015475 0.016029 0.028951 0.030134 0.014387 0.047392 0.027890 0.020757 0.022289 0.133891 0.041976 0.016082 0.005840 0.180870 0.039014 0.000722 0.019329 0.086911 0.040539 0.204360 +0.397182 +0.032445 0.035886 0.028479 0.028640 0.014910 0.149875 0.009623 0.035913 0.029244 0.029571 0.015346 0.039576 0.015843 0.015631 0.032107 0.034294 0.015603 0.030368 0.028422 0.020139 0.023433 0.086911 0.039934 0.018555 0.005010 0.063422 0.038319 0.001697 0.019111 0.133891 0.042038 0.157380 +0.430642 +0.028969 0.035330 0.031007 0.029242 0.015821 0.040809 0.009457 0.036905 0.030987 0.029721 0.017255 0.031762 0.016094 0.015631 0.030100 0.030942 0.014932 0.173899 0.028671 0.020927 0.022220 0.063422 0.038584 0.012097 0.013932 0.086911 0.041154 0.001029 0.020979 0.110401 0.039727 0.133891 +0.201998 +0.028377 0.035718 0.029780 0.032149 0.015686 0.027086 0.009848 0.036209 0.032569 0.034969 0.014376 0.147579 0.015673 0.016193 0.030339 0.029894 0.015720 0.050221 0.026888 0.021092 0.022755 0.086911 0.039481 0.012574 0.008755 0.063422 0.037667 0.001846 0.020995 0.086911 0.040042 0.133891 +0.190091 +0.030350 0.036782 0.029185 0.029616 0.018621 0.047870 0.010369 0.035393 0.032222 0.028462 0.016575 0.121657 0.015689 0.016076 0.030680 0.034806 0.017862 0.214985 0.028500 0.019890 0.023414 0.063422 0.038264 0.014778 0.013568 0.110401 0.041390 0.000125 0.020226 0.133891 0.041654 0.204360 +0.442102 +0.031694 0.034495 0.028671 0.029612 0.016996 0.048634 0.009966 0.036217 0.030034 0.031416 0.014578 0.018493 0.015457 0.015767 0.029436 0.039382 0.017617 0.144910 0.027383 0.020359 0.020432 0.086911 0.039264 0.012377 0.012839 0.063422 0.038266 0.001407 0.019072 0.110401 0.041422 0.133891 +0.124102 +0.031132 0.034350 0.029814 0.029391 0.015265 0.165838 0.009500 0.037582 0.030194 0.030101 0.014868 0.098653 0.015712 0.016329 0.030528 0.031440 0.015068 0.235278 0.027496 0.019000 0.021346 0.157380 0.040526 0.013519 0.008644 0.157380 0.038915 0.001442 0.020125 0.133891 0.038044 0.180870 +0.640320 +0.031670 0.039582 0.029435 0.033800 0.017121 0.121153 0.011604 0.037479 0.029085 0.028360 0.016477 0.034390 0.016286 0.015765 0.030990 0.029639 0.016110 0.027652 0.028896 0.021072 0.023126 0.086911 0.039907 0.016866 0.011178 0.063422 0.038074 0.002036 0.021110 0.110401 0.038047 0.133891 +0.236739 +0.030927 0.037494 0.034770 0.031180 0.015897 0.021416 0.011731 0.035511 0.028265 0.029046 0.016068 0.181275 0.015859 0.015611 0.033595 0.030916 0.018552 0.046369 0.027847 0.020262 0.019700 0.086911 0.042072 0.016042 0.014048 0.063422 0.039782 0.000995 0.018796 0.110401 0.040525 0.157380 +0.147964 +0.029973 0.033762 0.030628 0.029356 0.015690 0.205492 0.011412 0.035517 0.028903 0.029028 0.017357 0.076934 0.016405 0.016144 0.036222 0.028691 0.016598 0.017593 0.026694 0.019203 0.019706 0.086911 0.037895 0.018241 0.013714 0.110401 0.040308 0.000263 0.020401 0.086911 0.041480 0.133891 +0.383009 +0.032137 0.037962 0.030189 0.035202 0.014133 0.018467 0.011577 0.037326 0.029365 0.030223 0.017292 0.023702 0.015824 0.016421 0.029999 0.029321 0.014145 0.021933 0.030345 0.019751 0.020526 0.086911 0.040404 0.017791 0.010736 0.086911 0.037765 0.000184 0.020514 0.086911 0.039838 0.133891 +0 +0.031916 0.038690 0.028614 0.029381 0.015049 0.129285 0.010204 0.036198 0.030752 0.030576 0.015966 0.032753 0.016121 0.016231 0.029474 0.030393 0.016706 0.062618 0.028888 0.018792 0.021535 0.086911 0.040877 0.015851 0.008547 0.063422 0.040277 0.000409 0.019783 0.110401 0.039696 0.157380 +0.289267 +0.028831 0.035653 0.031934 0.028353 0.017414 0.401070 0.010947 0.037011 0.031306 0.029882 0.014436 0.027424 0.016296 0.015967 0.030912 0.029520 0.016747 0.127747 0.028900 0.018863 0.020818 0.086911 0.037684 0.018733 0.006807 0.086911 0.040191 0.002205 0.020691 0.110401 0.041160 0.204360 +0.537593 +0.032243 0.035897 0.030823 0.028424 0.018583 0.183257 0.010566 0.035969 0.032148 0.032691 0.017625 0.201664 0.015549 0.015882 0.033063 0.030484 0.017393 0.130701 0.028727 0.020822 0.020213 0.086911 0.039390 0.014719 0.013485 0.063422 0.037858 0.001475 0.019325 0.110401 0.041143 0.133891 +0.699746 +0.031334 0.036654 0.031985 0.028367 0.014634 0.074735 0.011496 0.036073 0.029775 0.031902 0.015198 0.082871 0.016309 0.015799 0.029859 0.028717 0.014662 0.049742 0.027434 0.021021 0.022697 0.086911 0.039595 0.016078 0.011726 0.063422 0.038355 0.001989 0.018916 0.086911 0.040569 0.133891 +0.171395 +0.032301 0.037060 0.029012 0.033747 0.015016 0.036468 0.009632 0.036906 0.029489 0.028698 0.016909 0.040614 0.015448 0.016102 0.030615 0.031714 0.016075 0.114102 0.027970 0.020139 0.022100 0.110401 0.040366 0.012149 0.008695 0.110401 0.039279 0.001043 0.020317 0.086911 0.040898 0.133891 +0.240529 +0.030116 0.035969 0.030043 0.032298 0.018525 0.097838 0.010818 0.036172 0.031589 0.030992 0.018340 0.043335 0.016399 0.016319 0.030478 0.034233 0.018208 0.017570 0.027269 0.020198 0.023206 0.086911 0.037742 0.013734 0.007630 0.086911 0.039717 0.000129 0.020741 0.157380 0.040432 0.180870 +0.213005 +0.031758 0.039885 0.031087 0.028419 0.015934 0.107919 0.009897 0.035275 0.029976 0.030502 0.017646 0.042488 0.015764 0.016023 0.031743 0.030326 0.016167 0.038999 0.028304 0.020680 0.023134 0.110401 0.040810 0.015729 0.013592 0.063422 0.040510 0.002260 0.020679 0.110401 0.039358 0.133891 +0.160929 +0.030885 0.033341 0.028670 0.030283 0.015657 0.048373 0.011404 0.035285 0.029303 0.038785 0.017828 0.030091 0.015726 0.016201 0.030306 0.028337 0.014731 0.044107 0.028972 0.020482 0.020343 0.110401 0.040530 0.012833 0.007566 0.110401 0.041316 0.001961 0.021105 0.157380 0.038974 0.180870 +0.022479 +0.029537 0.036320 0.029299 0.029432 0.014903 0.080821 0.010510 0.036524 0.029931 0.031182 0.016091 0.106906 0.015426 0.016056 0.028205 0.031479 0.015402 0.031313 0.027599 0.020050 0.022854 0.110401 0.039446 0.015542 0.005163 0.063422 0.041146 0.000528 0.020750 0.063422 0.040224 0.133891 +0.309334 +0.032655 0.033674 0.028378 0.035518 0.014619 0.159139 0.010864 0.036049 0.028376 0.030315 0.014326 0.071119 0.015739 0.016427 0.028849 0.028896 0.016590 0.232691 0.028211 0.019104 0.022482 0.086911 0.040840 0.013165 0.010560 0.086911 0.041871 0.000596 0.020032 0.086911 0.039538 0.157380 +0.602135 +0.028733 0.033224 0.029031 0.028630 0.014608 0.033476 0.010067 0.037394 0.028235 0.031593 0.015880 0.027727 0.016231 0.015557 0.028600 0.028551 0.017044 0.106359 0.027020 0.020781 0.023459 0.063422 0.041014 0.016526 0.012181 0.110401 0.038655 0.002047 0.020519 0.086911 0.038592 0.133891 +0.087427 +0.028508 0.039076 0.028924 0.031999 0.016675 0.351091 0.011111 0.037153 0.028937 0.040473 0.018246 0.068535 0.015590 0.016026 0.030643 0.032895 0.017092 0.106594 0.026449 0.020892 0.021894 0.133891 0.039289 0.015199 0.013145 0.063422 0.041186 0.000345 0.019237 0.063422 0.040943 0.180870 +0.519693 +0.031727 0.036018 0.034361 0.031590 0.015173 0.283413 0.010151 0.037334 0.029311 0.030542 0.014782 0.050073 0.015822 0.015705 0.028580 0.030600 0.018498 0.112215 0.028917 0.019182 0.020432 0.157380 0.040058 0.017535 0.006435 0.110401 0.037741 0.000504 0.019566 0.133891 0.040999 0.180870 +0.613212 +0.031515 0.035987 0.029159 0.032461 0.016221 0.052381 0.010825 0.036101 0.029482 0.029352 0.017273 0.033061 0.015413 0.016212 0.028465 0.044193 0.018184 0.231597 0.028208 0.020445 0.021502 0.133891 0.041937 0.012779 0.007093 0.133891 0.040186 0.000202 0.019856 0.086911 0.039716 0.157380 +0.413843 +0.030657 0.037227 0.030593 0.029314 0.016764 0.016643 0.010773 0.036435 0.029164 0.030759 0.016017 0.049268 0.015750 0.016352 0.028320 0.032874 0.016671 0.035214 0.027568 0.019508 0.022186 0.086911 0.038142 0.018238 0.009572 0.110401 0.041851 0.001353 0.019791 0.110401 0.040995 0.133891 +0.026634 +0.030741 0.035583 0.029096 0.038745 0.015144 0.135685 0.010696 0.035889 0.028228 0.030634 0.016005 0.021279 0.016334 0.016323 0.029211 0.028412 0.014979 0.160328 0.029329 0.019263 0.021109 0.110401 0.041655 0.017600 0.009110 0.086911 0.041955 0.001985 0.021129 0.063422 0.042025 0.133891 +0.320595 +0.032060 0.038648 0.032651 0.029695 0.014243 0.019169 0.010097 0.036684 0.031175 0.029071 0.015048 0.105979 0.016329 0.015657 0.028771 0.030688 0.018641 0.066971 0.029665 0.020263 0.023227 0.133891 0.040217 0.014854 0.012028 0.086911 0.039887 0.001869 0.021025 0.086911 0.040056 0.157380 +0.086099 +0.032210 0.037260 0.028781 0.033249 0.015233 0.167407 0.010782 0.036674 0.033279 0.032699 0.014790 0.118633 0.016328 0.015957 0.031733 0.028190 0.014343 0.068052 0.027238 0.019369 0.019490 0.063422 0.039081 0.015128 0.009251 0.063422 0.038433 0.001178 0.020848 0.110401 0.037881 0.133891 +0.431819 +0.028548 0.036907 0.031324 0.031504 0.015417 0.086324 0.010149 0.037390 0.032736 0.030525 0.015993 0.039081 0.015851 0.016141 0.029321 0.029326 0.015731 0.038515 0.027410 0.020471 0.023348 0.110401 0.042131 0.012221 0.011193 0.086911 0.042225 0.001239 0.019966 0.086911 0.041636 0.133891 +0.139328 +0.029250 0.033822 0.029452 0.032662 0.015923 0.049134 0.010675 0.035420 0.030082 0.029243 0.017681 0.047644 0.016356 0.016112 0.031800 0.028810 0.018353 0.126918 0.029115 0.020134 0.023003 0.157380 0.037791 0.014715 0.010895 0.063422 0.041986 0.000563 0.019952 0.110401 0.041795 0.204360 +0.190323 +0.031334 0.033998 0.032220 0.029611 0.015861 0.113002 0.011353 0.035813 0.029480 0.028632 0.014498 0.040777 0.015159 0.015994 0.028265 0.029042 0.015829 0.049673 0.027762 0.019551 0.022901 0.086911 0.041824 0.012562 0.012340 0.063422 0.038684 0.001663 0.019562 0.086911 0.040450 0.133891 +0.077685 +0.031330 0.036377 0.028298 0.028402 0.016566 0.034762 0.010388 0.037535 0.028280 0.028646 0.016154 0.103606 0.016393 0.015857 0.030102 0.030193 0.014106 0.050533 0.026714 0.019455 0.023107 0.063422 0.040900 0.017949 0.008631 0.110401 0.041863 0.002082 0.020691 0.086911 0.039482 0.133891 +0.146356 +0.031405 0.038427 0.029885 0.031415 0.015915 0.251569 0.009876 0.035344 0.028806 0.028971 0.018743 0.065293 0.016288 0.016078 0.028963 0.028651 0.016888 0.026845 0.027729 0.020758 0.019945 0.063422 0.041090 0.017864 0.006498 0.110401 0.038394 0.001099 0.020116 0.063422 0.038435 0.157380 +0.347845 +0.029179 0.035951 0.031167 0.030251 0.015853 0.036816 0.010742 0.035544 0.031410 0.037438 0.018394 0.070852 0.015304 0.015946 0.031436 0.028382 0.017268 0.069178 0.029958 0.019193 0.020019 0.180870 0.042202 0.016665 0.006568 0.110401 0.042239 0.001263 0.020619 0.086911 0.038142 0.204360 +0.034196 +0.028581 0.032913 0.029092 0.033963 0.015960 0.095365 0.010525 0.036111 0.030186 0.029889 0.015240 0.027902 0.016063 0.015927 0.028979 0.030319 0.018320 0.143558 0.027166 0.019594 0.021583 0.110401 0.041985 0.017190 0.013199 0.110401 0.040345 0.001356 0.018827 0.086911 0.042058 0.180870 +0.173516 +0.028934 0.035522 0.029184 0.028554 0.015013 0.033227 0.011703 0.035474 0.029800 0.028927 0.016470 0.038486 0.015488 0.015546 0.030864 0.029477 0.018184 0.031913 0.027242 0.019454 0.021378 0.110401 0.038441 0.017313 0.007435 0.157380 0.038316 0.000445 0.020460 0.086911 0.041318 0.204360 +0 +0.031849 0.039608 0.029878 0.028715 0.014300 0.051539 0.010608 0.036597 0.029924 0.028965 0.015258 0.087901 0.015512 0.015912 0.028545 0.028967 0.017202 0.126948 0.028339 0.020438 0.020772 0.110401 0.040895 0.011804 0.012840 0.086911 0.041428 0.000912 0.021041 0.063422 0.038544 0.133891 +0.205646 +0.029596 0.036506 0.030259 0.029267 0.014201 0.058696 0.010308 0.035316 0.028423 0.030262 0.017598 0.049335 0.015491 0.016242 0.032859 0.031283 0.015195 0.070110 0.028831 0.019712 0.021240 0.086911 0.039935 0.017631 0.009542 0.063422 0.039328 0.002344 0.020631 0.086911 0.040213 0.133891 +0.111855 +0.032527 0.039528 0.028474 0.028404 0.016258 0.022193 0.010232 0.035407 0.028639 0.028621 0.016145 0.062845 0.015929 0.015950 0.030171 0.029095 0.014697 0.063718 0.025978 0.018797 0.022873 0.110401 0.039299 0.017673 0.011318 0.063422 0.037685 0.000968 0.019725 0.180870 0.040667 0.204360 +0.053315 +0.032205 0.037212 0.029976 0.034145 0.018240 0.122431 0.011266 0.037049 0.030184 0.029189 0.017428 0.039181 0.016313 0.016406 0.029601 0.037763 0.016045 0.066973 0.027934 0.020006 0.022757 0.086911 0.038110 0.017135 0.007981 0.110401 0.040903 0.001758 0.019034 0.086911 0.040265 0.133891 +0.363758 +0.032519 0.035122 0.029002 0.028189 0.015641 0.162495 0.010314 0.037100 0.029304 0.029626 0.017604 0.042327 0.016036 0.016236 0.033670 0.031310 0.015770 0.101370 0.028832 0.019768 0.019650 0.110401 0.039466 0.016184 0.012014 0.063422 0.037811 0.001245 0.020482 0.086911 0.040648 0.133891 +0.362008 +0.029222 0.033359 0.028518 0.028435 0.014507 0.040453 0.011279 0.035795 0.032219 0.037116 0.018407 0.018499 0.016361 0.015644 0.031955 0.031791 0.015114 0.049522 0.027396 0.020284 0.020156 0.086911 0.041333 0.012431 0.009058 0.086911 0.038599 0.001787 0.019631 0.157380 0.039767 0.204360 +0 +0.031764 0.038564 0.030498 0.029864 0.017396 0.089740 0.011458 0.036018 0.030105 0.030588 0.014745 0.063210 0.016308 0.015694 0.032445 0.030486 0.014756 0.024469 0.027328 0.020512 0.023451 0.086911 0.040264 0.012596 0.010710 0.086911 0.039064 0.001463 0.018837 0.063422 0.038247 0.204360 +0.031919 +0.031685 0.035666 0.028685 0.031044 0.018436 0.049838 0.010539 0.036800 0.030421 0.036942 0.017613 0.024617 0.015410 0.015808 0.029105 0.028402 0.016019 0.016830 0.030082 0.019066 0.020168 0.133891 0.038648 0.014053 0.004789 0.086911 0.040461 0.001403 0.019644 0.110401 0.040114 0.204360 +0 +0.032009 0.039113 0.032114 0.029150 0.017350 0.085295 0.011654 0.036841 0.030236 0.028558 0.015648 0.116022 0.016315 0.015549 0.029302 0.028679 0.014384 0.244493 0.026959 0.020664 0.022223 0.133891 0.041686 0.013980 0.010581 0.063422 0.041399 0.001070 0.020498 0.110401 0.041690 0.157380 +0.543745 +0.028360 0.036432 0.029479 0.030284 0.017985 0.093454 0.010912 0.036226 0.029151 0.029513 0.015575 0.139120 0.015866 0.015554 0.030256 0.037978 0.016592 0.093677 0.026632 0.020497 0.023098 0.086911 0.041165 0.017867 0.013544 0.110401 0.040677 0.001867 0.020966 0.086911 0.039575 0.133891 +0.391111 +0.031092 0.038712 0.031442 0.029716 0.018734 0.087030 0.010737 0.036610 0.028288 0.028747 0.018025 0.112194 0.015521 0.016028 0.032761 0.028356 0.014869 0.033541 0.028367 0.020164 0.020893 0.133891 0.037862 0.015635 0.008445 0.180870 0.038311 0.001486 0.019780 0.110401 0.038366 0.204360 +0.266405 +0.028341 0.034386 0.030295 0.033636 0.018065 0.064637 0.011570 0.035731 0.030514 0.030777 0.018368 0.040745 0.015906 0.016242 0.028803 0.028209 0.018455 0.055007 0.028169 0.020487 0.023476 0.063422 0.038979 0.018366 0.006326 0.086911 0.038023 0.001903 0.019771 0.086911 0.039826 0.157380 +0.062841 +0.032046 0.033833 0.029280 0.031476 0.014200 0.032660 0.009897 0.037556 0.028496 0.030509 0.017822 0.100506 0.015657 0.016036 0.029148 0.029131 0.014617 0.229512 0.027705 0.020461 0.021574 0.063422 0.041449 0.017834 0.007107 0.086911 0.039273 0.001247 0.020879 0.110401 0.039346 0.133891 +0.466262 +0.028324 0.034217 0.030954 0.028293 0.014681 0.025533 0.009560 0.036622 0.028810 0.028874 0.015806 0.198255 0.015742 0.016243 0.029126 0.028553 0.017045 0.075824 0.026943 0.020775 0.019052 0.063422 0.040668 0.015029 0.010597 0.063422 0.037749 0.001457 0.019273 0.063422 0.037681 0.133891 +0.331339 +0.029496 0.036548 0.032592 0.029178 0.016456 0.072516 0.010143 0.035525 0.032352 0.029345 0.015919 0.110333 0.015276 0.016021 0.028344 0.032755 0.015449 0.163264 0.028744 0.020289 0.021851 0.157380 0.038968 0.014079 0.013383 0.133891 0.038811 0.001183 0.020637 0.180870 0.039063 0.204360 +0.416815 +0.029827 0.037242 0.028424 0.030113 0.016997 0.158778 0.010165 0.036831 0.029030 0.030923 0.017230 0.062703 0.016185 0.016268 0.028738 0.028986 0.015780 0.134546 0.029695 0.019397 0.021742 0.063422 0.041485 0.013032 0.013692 0.157380 0.040846 0.001254 0.020453 0.063422 0.038768 0.180870 +0.321556 +0.031289 0.038603 0.030180 0.029669 0.016623 0.146750 0.009913 0.036870 0.029618 0.030604 0.016825 0.179015 0.015815 0.016188 0.028661 0.028278 0.014239 0.037460 0.029650 0.019531 0.022831 0.157380 0.041420 0.014877 0.012045 0.133891 0.041214 0.000707 0.020953 0.086911 0.038995 0.180870 +0.407827 +0.030505 0.035843 0.028505 0.031872 0.017924 0.074531 0.011305 0.036048 0.028630 0.031780 0.014902 0.016483 0.015819 0.016009 0.028554 0.028812 0.018385 0.114855 0.027437 0.020039 0.022276 0.086911 0.040554 0.017013 0.011020 0.063422 0.039043 0.000871 0.020832 0.110401 0.041429 0.133891 +0.239179 +0.032598 0.037620 0.036837 0.028834 0.017873 0.183898 0.009710 0.036211 0.028383 0.028607 0.015543 0.134734 0.016240 0.015770 0.030700 0.031052 0.014293 0.082982 0.026514 0.020793 0.018825 0.063422 0.040617 0.012876 0.011071 0.110401 0.042039 0.000757 0.020280 0.086911 0.038084 0.157380 +0.360266 +0.031582 0.039821 0.032570 0.030069 0.018505 0.038264 0.010436 0.036383 0.028625 0.030887 0.016203 0.202511 0.015909 0.016093 0.029742 0.028618 0.017548 0.274857 0.028599 0.019929 0.019574 0.063422 0.041522 0.012957 0.014052 0.157380 0.040374 0.000125 0.020893 0.110401 0.040006 0.180870 +0.676770 +0.029684 0.036934 0.030907 0.037127 0.018363 0.108020 0.010910 0.036866 0.029416 0.028468 0.017654 0.099378 0.015690 0.016310 0.029765 0.028791 0.017730 0.016472 0.024376 0.019089 0.018794 0.063422 0.039271 0.014874 0.005814 0.110401 0.038777 0.000611 0.021106 0.086911 0.040608 0.157380 +0.319686 +0.030265 0.037673 0.029333 0.029066 0.014856 0.026709 0.009769 0.036177 0.030071 0.031506 0.017673 0.051663 0.016110 0.015954 0.029040 0.029248 0.017125 0.059354 0.025799 0.019601 0.023265 0.086911 0.038247 0.014997 0.012795 0.110401 0.041931 0.000237 0.020910 0.086911 0.039437 0.180870 +0.015141 +0.029984 0.033347 0.029121 0.028340 0.017409 0.088286 0.011560 0.037118 0.033722 0.032390 0.015540 0.129616 0.016247 0.016133 0.028265 0.028552 0.015786 0.066141 0.027160 0.020392 0.020524 0.133891 0.038223 0.017112 0.011609 0.110401 0.039089 0.001185 0.020573 0.110401 0.041664 0.180870 +0.270661 +0.028974 0.035342 0.029718 0.028408 0.015246 0.025220 0.011264 0.035670 0.030575 0.030098 0.015640 0.047208 0.015313 0.015823 0.028974 0.028340 0.015574 0.083778 0.030151 0.020309 0.020870 0.063422 0.041056 0.014925 0.007721 0.063422 0.038774 0.001747 0.019275 0.110401 0.038548 0.157380 +0.030454 +0.028618 0.036111 0.029578 0.029604 0.018693 0.388619 0.010718 0.036352 0.029124 0.029148 0.015823 0.027037 0.015241 0.016141 0.029485 0.029284 0.014488 0.029047 0.027222 0.020400 0.020405 0.086911 0.037661 0.014557 0.005500 0.063422 0.040186 0.000687 0.020612 0.110401 0.038700 0.180870 +0.633839 +0.031828 0.036478 0.029869 0.030130 0.016194 0.055711 0.010759 0.036210 0.029070 0.028935 0.018508 0.112304 0.015584 0.016086 0.028307 0.028623 0.017457 0.097434 0.028466 0.020340 0.019928 0.110401 0.039427 0.014859 0.007213 0.133891 0.039266 0.000537 0.019318 0.157380 0.040071 0.180870 +0.235954 +0.032205 0.035367 0.029503 0.030152 0.017658 0.114343 0.010730 0.036351 0.029132 0.030964 0.015363 0.060973 0.015686 0.015718 0.031683 0.031390 0.015822 0.033744 0.028769 0.020437 0.022680 0.110401 0.040657 0.014720 0.012730 0.110401 0.039967 0.000551 0.019254 0.063422 0.038217 0.133891 +0.294414 +0.028679 0.033381 0.032821 0.029267 0.018393 0.039143 0.010054 0.036189 0.030664 0.031879 0.014610 0.238983 0.015163 0.015642 0.030941 0.031158 0.015600 0.154205 0.028769 0.018840 0.021707 0.110401 0.037686 0.015293 0.011641 0.133891 0.037777 0.000515 0.019690 0.063422 0.042032 0.157380 +0.550435 +0.031408 0.034309 0.030750 0.034128 0.017461 0.021798 0.011321 0.036940 0.030575 0.028816 0.015964 0.160918 0.015699 0.016077 0.031054 0.029801 0.014171 0.080394 0.030279 0.020228 0.020103 0.110401 0.041010 0.012378 0.010308 0.110401 0.041057 0.000801 0.020577 0.086911 0.039149 0.157380 +0.192270 +0.031564 0.035780 0.029536 0.034032 0.014926 0.086426 0.010573 0.035519 0.030833 0.029456 0.017714 0.044827 0.016428 0.015776 0.028583 0.030721 0.017457 0.186540 0.027366 0.021020 0.022264 0.063422 0.041042 0.015981 0.008065 0.063422 0.040508 0.001255 0.019412 0.063422 0.039690 0.157380 +0.229313 +0.030412 0.036259 0.032922 0.030806 0.016632 0.123932 0.010408 0.035455 0.030365 0.037441 0.018281 0.181301 0.016410 0.016333 0.028671 0.029384 0.016579 0.018611 0.029690 0.020540 0.019684 0.063422 0.040461 0.017482 0.004919 0.110401 0.040128 0.001329 0.019595 0.110401 0.038276 0.180870 +0.370510 +0.032221 0.039582 0.031723 0.028415 0.015911 0.026263 0.010945 0.035304 0.029347 0.028239 0.016205 0.022156 0.015286 0.016132 0.031883 0.028988 0.015295 0.162752 0.028622 0.020469 0.023034 0.063422 0.038039 0.015287 0.009765 0.086911 0.038548 0.002325 0.020852 0.157380 0.039252 0.204360 +0.164958 +0.030660 0.037400 0.029299 0.029087 0.016756 0.158474 0.011599 0.035314 0.035783 0.029849 0.015944 0.057269 0.016293 0.016201 0.029610 0.032975 0.015138 0.050269 0.027588 0.019460 0.022904 0.133891 0.038566 0.017959 0.011421 0.133891 0.039873 0.001760 0.021094 0.110401 0.039983 0.180870 +0.357580 +0.031675 0.036518 0.030378 0.028577 0.015172 0.058610 0.010410 0.036136 0.029755 0.028611 0.016770 0.362758 0.015270 0.015506 0.028205 0.028597 0.017760 0.075342 0.028558 0.020797 0.022477 0.063422 0.040380 0.012097 0.009793 0.086911 0.039648 0.001378 0.020006 0.063422 0.039104 0.157380 +0.644719 +0.030560 0.033804 0.029104 0.028245 0.017730 0.054515 0.010189 0.036534 0.028708 0.034578 0.018757 0.075532 0.015309 0.015809 0.029619 0.028341 0.014973 0.019681 0.027876 0.020777 0.021014 0.110401 0.039101 0.014219 0.008635 0.157380 0.038625 0.000379 0.019694 0.157380 0.040358 0.204360 +0.067438 +0.031013 0.036216 0.030024 0.029221 0.015850 0.019368 0.011545 0.035691 0.028346 0.030949 0.015819 0.247866 0.015359 0.016349 0.029277 0.030709 0.015758 0.071964 0.027273 0.019528 0.020889 0.063422 0.041988 0.016469 0.010773 0.086911 0.038880 0.000181 0.020675 0.086911 0.038308 0.133891 +0.415700 +0.028671 0.036833 0.030803 0.030511 0.016445 0.067054 0.010007 0.037398 0.031272 0.029320 0.017548 0.074499 0.015711 0.016329 0.028754 0.029158 0.017650 0.029417 0.027747 0.019924 0.019661 0.110401 0.040843 0.012624 0.004798 0.086911 0.038398 0.000790 0.019427 0.133891 0.037641 0.157380 +0.091211 +0.031700 0.038130 0.028444 0.029755 0.017098 0.094399 0.010499 0.036925 0.028693 0.030480 0.014546 0.086517 0.015641 0.015827 0.031080 0.038617 0.017015 0.027786 0.030016 0.020857 0.022307 0.110401 0.041672 0.017368 0.011172 0.086911 0.040323 0.000638 0.018996 0.063422 0.040995 0.133891 +0.129364 +0.029662 0.038493 0.029065 0.032647 0.018381 0.080887 0.010817 0.036352 0.028569 0.029509 0.014797 0.067037 0.015127 0.016213 0.031386 0.028924 0.016982 0.022741 0.027454 0.020263 0.021590 0.086911 0.039391 0.012096 0.007077 0.110401 0.038132 0.002186 0.020872 0.063422 0.039320 0.133891 +0.069297 +0.031027 0.033921 0.029440 0.029013 0.016354 0.088696 0.011181 0.035932 0.032309 0.043440 0.014864 0.110804 0.016033 0.016047 0.030730 0.030785 0.017411 0.016992 0.028897 0.019463 0.021518 0.133891 0.038615 0.013931 0.008890 0.133891 0.037750 0.000097 0.019454 0.133891 0.038843 0.180870 +0.220611 +0.028780 0.035287 0.030977 0.028234 0.014468 0.274134 0.010020 0.037369 0.028787 0.029639 0.016423 0.140583 0.015912 0.015791 0.031496 0.034803 0.017734 0.046983 0.030768 0.019917 0.019077 0.157380 0.041638 0.011926 0.013032 0.063422 0.038429 0.000799 0.020712 0.063422 0.039250 0.180870 +0.615079 +0.032218 0.039473 0.028416 0.029570 0.016337 0.322145 0.011398 0.036803 0.036435 0.035105 0.016123 0.110303 0.015132 0.015751 0.029608 0.028964 0.016418 0.021118 0.026371 0.020693 0.020945 0.110401 0.039773 0.012912 0.007602 0.110401 0.039869 0.000414 0.019886 0.133891 0.038183 0.157380 +0.539773 +0.029481 0.033720 0.028888 0.030906 0.015893 0.136732 0.009441 0.036206 0.028573 0.029838 0.015601 0.071255 0.015872 0.016129 0.029103 0.028481 0.015502 0.039033 0.029439 0.019749 0.019835 0.110401 0.041808 0.015958 0.014027 0.086911 0.037687 0.000321 0.019428 0.110401 0.039859 0.133891 +0.245018 +0.032202 0.033458 0.032443 0.028508 0.018314 0.159782 0.011027 0.035561 0.042695 0.030316 0.015161 0.069151 0.015940 0.016198 0.034176 0.037290 0.016083 0.052969 0.029640 0.020173 0.022577 0.086911 0.040018 0.013670 0.013344 0.086911 0.041282 0.001808 0.018920 0.063422 0.037762 0.157380 +0.311381 +0.031332 0.035327 0.032896 0.031998 0.015939 0.027373 0.009691 0.035437 0.033229 0.030073 0.017670 0.019607 0.015469 0.016046 0.028643 0.028280 0.014106 0.102366 0.030738 0.019978 0.023047 0.157380 0.041993 0.013153 0.011812 0.133891 0.039098 0.001606 0.019297 0.157380 0.039092 0.180870 +0.073791 +0.029612 0.035463 0.029327 0.030086 0.015586 0.116751 0.009748 0.035704 0.029120 0.028336 0.014939 0.044213 0.015734 0.015895 0.032098 0.029985 0.015327 0.037334 0.027738 0.020767 0.020048 0.110401 0.040492 0.015412 0.008239 0.110401 0.039592 0.000609 0.020269 0.086911 0.038085 0.133891 +0.228701 +0.032045 0.039712 0.029571 0.028895 0.017950 0.057600 0.010114 0.036911 0.030082 0.031142 0.018288 0.136130 0.015970 0.016009 0.032364 0.028360 0.018658 0.034487 0.029511 0.020864 0.021293 0.133891 0.039723 0.012046 0.008714 0.086911 0.040814 0.000268 0.019281 0.133891 0.041908 0.180870 +0.160497 +0.028964 0.039426 0.029124 0.029775 0.018489 0.043480 0.010297 0.035908 0.029511 0.034031 0.015479 0.024456 0.016248 0.015602 0.031794 0.032153 0.015782 0.019367 0.027279 0.020710 0.020592 0.063422 0.038722 0.018516 0.011821 0.110401 0.040470 0.001447 0.019783 0.063422 0.042033 0.133891 +0.004157 +0.032862 0.037995 0.028294 0.030226 0.016412 0.058101 0.010954 0.036411 0.028915 0.028888 0.018172 0.305826 0.015807 0.016046 0.031749 0.028782 0.016491 0.078309 0.028595 0.019762 0.022434 0.180870 0.039489 0.012909 0.007498 0.157380 0.041632 0.000289 0.019636 0.133891 0.038294 0.204360 +0.598393 +0.032592 0.038053 0.031147 0.028379 0.015970 0.043482 0.010166 0.036538 0.028590 0.030874 0.016010 0.024736 0.016243 0.015759 0.028226 0.028336 0.018058 0.123595 0.026076 0.019730 0.018893 0.063422 0.039524 0.012538 0.011270 0.180870 0.041281 0.001778 0.018981 0.133891 0.038263 0.204360 +0.127696 +0.030763 0.037127 0.032146 0.028915 0.015062 0.084176 0.009854 0.035255 0.028981 0.029112 0.017757 0.020489 0.016193 0.015946 0.028692 0.031252 0.016993 0.045182 0.028903 0.019007 0.022984 0.133891 0.039117 0.015429 0.013072 0.180870 0.042173 0.000079 0.020201 0.063422 0.041872 0.204360 +0.053552 +0.028561 0.038788 0.028230 0.029778 0.015734 0.036369 0.011252 0.036699 0.031583 0.028965 0.015755 0.073230 0.016148 0.016317 0.030405 0.030649 0.016309 0.082938 0.028564 0.019239 0.022854 0.133891 0.037742 0.016317 0.009983 0.133891 0.038511 0.000313 0.019908 0.063422 0.038479 0.157380 +0.162726 +0.031149 0.036228 0.030076 0.028882 0.018724 0.086691 0.010798 0.036490 0.030756 0.029312 0.014409 0.142319 0.015558 0.016314 0.032881 0.028676 0.017442 0.043500 0.030072 0.020283 0.020158 0.063422 0.040234 0.011790 0.012742 0.086911 0.038677 0.000375 0.019016 0.180870 0.040726 0.204360 +0.215804 +0.032065 0.032999 0.030602 0.034180 0.018077 0.145077 0.010841 0.036135 0.028379 0.028820 0.017528 0.026576 0.016021 0.016441 0.029074 0.029545 0.017910 0.051982 0.027068 0.019928 0.021423 0.133891 0.037746 0.015068 0.010222 0.110401 0.038725 0.000880 0.020715 0.133891 0.040832 0.157380 +0.345854 +0.030860 0.039791 0.030670 0.032225 0.017592 0.065857 0.009619 0.035507 0.028907 0.028400 0.016749 0.024405 0.016128 0.016003 0.028472 0.030847 0.014453 0.073826 0.028118 0.019375 0.019103 0.157380 0.040333 0.015523 0.009587 0.157380 0.039435 0.001235 0.019542 0.086911 0.040785 0.180870 +0.104748 +0.031551 0.032892 0.031237 0.028265 0.016724 0.039417 0.010994 0.037551 0.030011 0.028696 0.018545 0.040217 0.015173 0.015545 0.028628 0.032954 0.016750 0.047280 0.029688 0.019136 0.020461 0.086911 0.040888 0.014867 0.012956 0.180870 0.039739 0.001263 0.019965 0.133891 0.039777 0.204360 +0.017320 +0.031696 0.033455 0.028440 0.029636 0.017942 0.066005 0.009596 0.036859 0.028661 0.028555 0.017204 0.020277 0.015832 0.015679 0.031466 0.029454 0.015085 0.291445 0.027058 0.020303 0.020205 0.063422 0.040182 0.012384 0.009006 0.063422 0.040010 0.000083 0.020363 0.063422 0.039004 0.133891 +0.536633 +0.029625 0.035980 0.029083 0.031422 0.017798 0.085697 0.011088 0.036279 0.028947 0.028762 0.016115 0.175098 0.015396 0.015687 0.029782 0.028405 0.016010 0.040278 0.027868 0.019264 0.019437 0.133891 0.040765 0.017754 0.004875 0.086911 0.039243 0.002339 0.019367 0.133891 0.039893 0.157380 +0.330877 +0.028313 0.038825 0.032769 0.028201 0.015170 0.044927 0.011149 0.035731 0.029171 0.029436 0.018597 0.074501 0.015662 0.016428 0.033182 0.031820 0.015512 0.074118 0.030529 0.019140 0.021362 0.086911 0.039835 0.016926 0.005324 0.086911 0.038569 0.000222 0.019924 0.063422 0.041022 0.133891 +0.142816 +0.028782 0.036651 0.030309 0.028193 0.015438 0.020227 0.010795 0.037533 0.028682 0.030500 0.017451 0.048013 0.015528 0.015512 0.028474 0.032769 0.014986 0.119299 0.029593 0.019738 0.019725 0.133891 0.038820 0.017312 0.005043 0.157380 0.038101 0.000377 0.019881 0.157380 0.037870 0.180870 +0.135111 +0.032093 0.038907 0.029579 0.029918 0.017844 0.045519 0.010594 0.036006 0.028995 0.032481 0.015212 0.021607 0.016093 0.015648 0.033942 0.028520 0.014185 0.066877 0.030261 0.019074 0.023218 0.110401 0.039529 0.018395 0.012235 0.086911 0.041661 0.002342 0.018861 0.157380 0.037771 0.180870 +0.018134 +0.028448 0.039514 0.031690 0.030641 0.018511 0.036726 0.010233 0.036001 0.029354 0.029821 0.014412 0.051680 0.015840 0.015987 0.028707 0.029236 0.016786 0.212290 0.029652 0.019887 0.019557 0.086911 0.041953 0.013992 0.009153 0.133891 0.037824 0.000671 0.020481 0.133891 0.039192 0.157380 +0.359030 +0.032509 0.033303 0.030123 0.029975 0.014786 0.084645 0.010402 0.035673 0.028651 0.030346 0.017678 0.271228 0.015618 0.015779 0.029303 0.030333 0.018517 0.031405 0.028715 0.019431 0.019707 0.110401 0.037818 0.017619 0.008092 0.110401 0.038830 0.000043 0.019908 0.063422 0.041844 0.133891 +0.461996 +0.032475 0.039648 0.029871 0.035045 0.017585 0.176277 0.009589 0.035778 0.032507 0.032392 0.015096 0.124532 0.016282 0.016217 0.031789 0.029704 0.017620 0.110433 0.027118 0.020995 0.019484 0.086911 0.041803 0.012227 0.010140 0.063422 0.041929 0.000596 0.019541 0.063422 0.042223 0.133891 +0.460407 +0.030688 0.034705 0.028548 0.031437 0.018369 0.030324 0.009569 0.036742 0.031470 0.029519 0.018106 0.064860 0.015543 0.015836 0.031288 0.029173 0.018487 0.204156 0.026654 0.019101 0.019685 0.133891 0.039608 0.012446 0.009400 0.086911 0.038116 0.000354 0.020652 0.063422 0.038882 0.157380 +0.375990 +0.030595 0.036742 0.028812 0.037187 0.017177 0.207083 0.010410 0.036563 0.028893 0.028383 0.014242 0.035879 0.015752 0.015801 0.031392 0.032788 0.017097 0.043603 0.028973 0.020681 0.023028 0.086911 0.038537 0.015081 0.005813 0.086911 0.039514 0.000754 0.020384 0.086911 0.039519 0.133891 +0.350736 +0.029803 0.033798 0.028987 0.029273 0.016215 0.068949 0.010388 0.035428 0.029311 0.029853 0.016119 0.032059 0.015675 0.015619 0.032152 0.029497 0.016320 0.066681 0.028549 0.020287 0.020353 0.110401 0.039214 0.016627 0.012705 0.063422 0.041626 0.000822 0.019654 0.063422 0.041332 0.204360 +0.018071 +0.030065 0.039231 0.030790 0.029986 0.018256 0.069575 0.010461 0.036316 0.028252 0.032997 0.016861 0.036012 0.016147 0.015603 0.031899 0.031204 0.015299 0.073528 0.028467 0.020140 0.021363 0.157380 0.042272 0.013551 0.008227 0.133891 0.039205 0.000929 0.020542 0.133891 0.041821 0.180870 +0.070270 +0.032843 0.035156 0.032067 0.028932 0.018273 0.047173 0.010777 0.037038 0.028237 0.029030 0.014471 0.043362 0.016029 0.015989 0.028773 0.028872 0.017118 0.190734 0.027382 0.019128 0.022261 0.063422 0.040305 0.012200 0.010403 0.110401 0.040453 0.000487 0.019596 0.110401 0.040809 0.133891 +0.389817 +0.032586 0.036634 0.028266 0.028425 0.016865 0.025603 0.009901 0.036625 0.028204 0.033383 0.015224 0.161732 0.015288 0.016282 0.029324 0.033066 0.017923 0.056114 0.028600 0.019647 0.021551 0.157380 0.038130 0.012896 0.006377 0.063422 0.040877 0.000962 0.021090 0.133891 0.038312 0.204360 +0.189851 +0.029675 0.034530 0.031840 0.030234 0.016219 0.057025 0.010039 0.036178 0.031584 0.029053 0.014966 0.029471 0.015706 0.015519 0.029206 0.028846 0.016258 0.097651 0.028571 0.020689 0.022675 0.063422 0.040498 0.015980 0.010393 0.086911 0.038299 0.001565 0.020914 0.086911 0.042272 0.133891 +0.087927 +0.032235 0.037901 0.030149 0.030171 0.016206 0.175255 0.010655 0.037418 0.031736 0.029091 0.015731 0.152777 0.015085 0.016244 0.028650 0.029615 0.017328 0.063069 0.028180 0.019125 0.021151 0.133891 0.040683 0.017623 0.006831 0.110401 0.042279 0.001834 0.019389 0.110401 0.040224 0.204360 +0.395953 +0.032500 0.036681 0.029122 0.028660 0.018586 0.139263 0.010944 0.035628 0.033524 0.031991 0.014746 0.157476 0.015777 0.015745 0.029845 0.030305 0.018391 0.097522 0.028923 0.018844 0.021062 0.157380 0.038851 0.011974 0.005954 0.133891 0.039645 0.001446 0.019186 0.086911 0.039323 0.180870 +0.557845 +0.029604 0.039537 0.030862 0.029248 0.014244 0.051948 0.011023 0.035762 0.030701 0.028739 0.014128 0.067518 0.016080 0.016008 0.031596 0.028866 0.016183 0.158366 0.027744 0.020866 0.020320 0.110401 0.038284 0.012453 0.010178 0.157380 0.038101 0.001586 0.019717 0.110401 0.038790 0.204360 +0.353953 +0.032828 0.039080 0.029201 0.028651 0.015317 0.090605 0.011376 0.036331 0.030747 0.034243 0.014321 0.187802 0.016373 0.016344 0.029355 0.030667 0.014183 0.070879 0.029403 0.020616 0.020154 0.086911 0.041566 0.015025 0.009490 0.086911 0.038670 0.000497 0.021124 0.110401 0.037779 0.133891 +0.433195 +0.030927 0.033469 0.031329 0.032506 0.016529 0.054386 0.011710 0.036331 0.029628 0.028379 0.015463 0.117078 0.015206 0.016170 0.032466 0.031451 0.014982 0.057163 0.031502 0.020879 0.023437 0.086911 0.040594 0.014638 0.011224 0.133891 0.037680 0.001791 0.020847 0.110401 0.040211 0.180870 +0.100587 +0.032461 0.035499 0.028828 0.030775 0.014763 0.044474 0.010996 0.037080 0.035017 0.028642 0.015725 0.036857 0.015459 0.016015 0.028339 0.029792 0.016658 0.100878 0.028458 0.018916 0.020518 0.086911 0.040885 0.013611 0.009396 0.063422 0.039358 0.001048 0.019991 0.086911 0.040832 0.133891 +0.089216 +0.029398 0.035418 0.029920 0.031123 0.016257 0.019412 0.010936 0.037088 0.029125 0.034043 0.018754 0.080715 0.015851 0.015984 0.028876 0.029811 0.016625 0.022066 0.027134 0.019164 0.023456 0.086911 0.037953 0.011810 0.010845 0.086911 0.038957 0.002003 0.020565 0.086911 0.039537 0.133891 +0.026803 +0.030559 0.036443 0.030522 0.029140 0.015818 0.037585 0.009712 0.035419 0.029916 0.029127 0.015508 0.023158 0.015346 0.015734 0.028468 0.028781 0.018109 0.041649 0.027585 0.018951 0.019244 0.086911 0.040440 0.017958 0.011714 0.086911 0.041867 0.001608 0.020311 0.086911 0.042036 0.133891 +0.006274 +0.029848 0.033036 0.028605 0.030636 0.016035 0.199704 0.010525 0.036847 0.029851 0.029962 0.018217 0.129445 0.015795 0.016171 0.028723 0.030533 0.016553 0.017419 0.028009 0.020647 0.020216 0.086911 0.038043 0.014438 0.007952 0.086911 0.039684 0.001205 0.020323 0.086911 0.038099 0.157380 +0.419116 +0.031620 0.036516 0.031326 0.028645 0.015535 0.143084 0.010443 0.035520 0.035293 0.029030 0.016129 0.317865 0.015930 0.016346 0.028398 0.031094 0.016642 0.174390 0.028417 0.020803 0.020316 0.063422 0.037629 0.013908 0.005647 0.063422 0.041408 0.000409 0.018847 0.086911 0.040464 0.133891 +0.787913 +0.032068 0.033028 0.028475 0.028332 0.016638 0.029737 0.009926 0.035699 0.029182 0.029826 0.017034 0.069024 0.015083 0.015776 0.030884 0.029410 0.018278 0.186518 0.026765 0.018895 0.020931 0.063422 0.041880 0.017893 0.012210 0.110401 0.040509 0.001654 0.019153 0.063422 0.038225 0.133891 +0.270555 +0.029476 0.036609 0.035189 0.030755 0.016803 0.036462 0.010458 0.035942 0.031199 0.029796 0.014733 0.058719 0.015780 0.015843 0.029525 0.029513 0.015607 0.045687 0.030086 0.019426 0.022449 0.110401 0.038366 0.016250 0.012165 0.133891 0.038596 0.001757 0.019299 0.086911 0.039987 0.157380 +0.061272 +0.030034 0.039160 0.032268 0.029932 0.018414 0.026290 0.011470 0.036616 0.031175 0.030921 0.016520 0.079024 0.016431 0.015721 0.028580 0.029607 0.017455 0.027438 0.027563 0.018808 0.019825 0.110401 0.039679 0.015856 0.011448 0.110401 0.040382 0.001444 0.019060 0.133891 0.037941 0.157380 +0.047386 +0.030701 0.038274 0.031024 0.029398 0.014466 0.101142 0.009758 0.036686 0.029886 0.029530 0.014875 0.247390 0.015291 0.016325 0.028851 0.028342 0.015787 0.050692 0.027180 0.020059 0.021316 0.086911 0.041580 0.015158 0.006720 0.086911 0.038717 0.001740 0.019594 0.063422 0.040616 0.133891 +0.521879 +0.032479 0.037410 0.028969 0.028876 0.016951 0.133689 0.010982 0.036538 0.029361 0.029871 0.015521 0.023336 0.016381 0.016239 0.029240 0.028402 0.016122 0.050053 0.029133 0.020336 0.020571 0.063422 0.038660 0.016552 0.012492 0.086911 0.039865 0.002326 0.020012 0.063422 0.038972 0.133891 +0.174062 +0.031916 0.037047 0.030371 0.032346 0.017843 0.131265 0.010345 0.035254 0.029716 0.028582 0.014806 0.145633 0.016401 0.016234 0.036498 0.031346 0.017195 0.140910 0.028952 0.019058 0.022956 0.063422 0.041197 0.016027 0.006090 0.110401 0.041842 0.000650 0.019449 0.180870 0.041672 0.204360 +0.441785 +0.029569 0.036599 0.032001 0.028921 0.015281 0.099993 0.009445 0.036838 0.031052 0.030253 0.018533 0.079429 0.016440 0.015578 0.028688 0.029598 0.016454 0.020386 0.027615 0.020390 0.021235 0.110401 0.038276 0.015533 0.014017 0.133891 0.040331 0.000652 0.020208 0.063422 0.040721 0.157380 +0.158593 +0.028692 0.036429 0.028761 0.028509 0.015282 0.164671 0.010157 0.036535 0.028721 0.030362 0.017502 0.031648 0.015861 0.016235 0.028911 0.028231 0.014261 0.056494 0.026880 0.020206 0.020223 0.063422 0.039626 0.017390 0.007962 0.063422 0.038498 0.000413 0.019518 0.110401 0.039508 0.180870 +0.318600 +0.028673 0.033690 0.029101 0.030248 0.016634 0.036640 0.011428 0.036600 0.031979 0.030716 0.016529 0.053072 0.015896 0.016349 0.036772 0.029444 0.015296 0.023209 0.028462 0.019862 0.018975 0.086911 0.037666 0.015743 0.006874 0.086911 0.039683 0.000467 0.020472 0.086911 0.039885 0.133891 +0.019234 +0.030221 0.035849 0.029793 0.037399 0.014791 0.059428 0.010693 0.036935 0.030132 0.031873 0.014715 0.039559 0.015913 0.016434 0.029772 0.029823 0.018541 0.016622 0.027534 0.019238 0.022688 0.180870 0.041148 0.013200 0.014069 0.063422 0.041257 0.001933 0.021070 0.133891 0.040811 0.204360 +0.028921 +0.029807 0.033340 0.030731 0.029439 0.015672 0.042861 0.010573 0.037492 0.028718 0.031679 0.016853 0.021822 0.015850 0.015904 0.028750 0.035373 0.015779 0.146708 0.029121 0.019429 0.020360 0.133891 0.039449 0.015611 0.006032 0.180870 0.041514 0.000200 0.020043 0.063422 0.039838 0.204360 +0.151388 +0.028990 0.038930 0.028485 0.028502 0.016333 0.080275 0.009971 0.037089 0.028244 0.028612 0.016440 0.106203 0.016373 0.016150 0.028467 0.028816 0.016306 0.050714 0.027131 0.020723 0.021173 0.063422 0.041640 0.013803 0.009784 0.133891 0.042034 0.002145 0.019326 0.086911 0.041023 0.180870 +0.259644 +0.032243 0.033536 0.029361 0.029002 0.014166 0.204866 0.011493 0.036139 0.034960 0.033153 0.014457 0.058404 0.015319 0.015693 0.028309 0.030264 0.015443 0.231983 0.030138 0.020325 0.020800 0.110401 0.040840 0.012446 0.010874 0.063422 0.039300 0.001032 0.018995 0.110401 0.038289 0.133891 +0.626207 +0.032139 0.033032 0.033256 0.028497 0.015994 0.093182 0.010013 0.035361 0.029362 0.032667 0.018345 0.086296 0.015870 0.015732 0.029799 0.028849 0.017541 0.020094 0.029044 0.020504 0.020218 0.063422 0.041648 0.013697 0.007757 0.157380 0.040424 0.001908 0.021008 0.157380 0.040830 0.180870 +0.103368 +0.032347 0.034225 0.030466 0.029122 0.016343 0.041182 0.011164 0.035775 0.031703 0.030230 0.017782 0.033935 0.016049 0.015743 0.035124 0.029076 0.014254 0.102895 0.027112 0.021002 0.020609 0.063422 0.041394 0.014437 0.007756 0.110401 0.041695 0.000372 0.019991 0.086911 0.038855 0.133891 +0.138818 +0.031137 0.033340 0.028605 0.032428 0.016183 0.037729 0.010442 0.037022 0.039457 0.029992 0.018207 0.178209 0.015905 0.015644 0.028327 0.028993 0.015080 0.032177 0.027333 0.020533 0.020707 0.157380 0.042033 0.012917 0.012890 0.063422 0.041245 0.000643 0.020066 0.133891 0.038318 0.180870 +0.144031 +0.029015 0.034800 0.030622 0.031352 0.014389 0.030027 0.009905 0.035955 0.033401 0.030703 0.014663 0.026781 0.015093 0.015881 0.030625 0.029629 0.016226 0.048486 0.028105 0.019261 0.019711 0.063422 0.039142 0.018597 0.012419 0.086911 0.040758 0.001569 0.020022 0.086911 0.040045 0.157380 +0.001427 +0.032208 0.035637 0.031228 0.029005 0.014278 0.035095 0.011655 0.037334 0.040267 0.031029 0.017365 0.076308 0.015801 0.016315 0.029615 0.034435 0.018302 0.083227 0.026638 0.019357 0.020945 0.086911 0.039495 0.014105 0.011173 0.157380 0.038792 0.000860 0.019928 0.086911 0.040660 0.180870 +0.096716 +0.029594 0.035757 0.029727 0.034368 0.015314 0.291016 0.011151 0.036163 0.029557 0.028263 0.016962 0.031630 0.016215 0.015960 0.029532 0.029270 0.017136 0.388796 0.027559 0.020608 0.020440 0.063422 0.039365 0.011988 0.004924 0.086911 0.039590 0.001442 0.019377 0.063422 0.039180 0.180870 +0.789511 +0.029362 0.036274 0.034932 0.029125 0.018299 0.162743 0.009687 0.036928 0.030257 0.028563 0.014721 0.022272 0.015037 0.015814 0.033912 0.030523 0.017224 0.042679 0.030419 0.020357 0.020396 0.086911 0.041679 0.016468 0.008189 0.063422 0.039973 0.001686 0.019326 0.110401 0.038065 0.204360 +0.149623 +0.032086 0.038332 0.028659 0.029882 0.015669 0.065034 0.010697 0.036485 0.028859 0.028923 0.017472 0.033232 0.015996 0.016389 0.028467 0.032172 0.018269 0.033121 0.026530 0.020611 0.022340 0.086911 0.039385 0.013808 0.012440 0.110401 0.041477 0.000425 0.019427 0.110401 0.041837 0.133891 +0.107188 +0.029954 0.039871 0.028307 0.029210 0.017685 0.060459 0.009818 0.036446 0.030151 0.030072 0.015884 0.153820 0.016428 0.015786 0.029336 0.031248 0.016112 0.030000 0.027818 0.020290 0.022756 0.086911 0.037607 0.014348 0.005933 0.110401 0.037851 0.001918 0.019433 0.110401 0.039800 0.133891 +0.305881 +0.028897 0.034434 0.034401 0.029113 0.017522 0.117605 0.009923 0.036096 0.028287 0.029025 0.015148 0.026379 0.016342 0.016006 0.031916 0.035318 0.017855 0.065949 0.028024 0.020208 0.018920 0.133891 0.038858 0.014427 0.005433 0.133891 0.040439 0.001708 0.019519 0.133891 0.041018 0.157380 +0.234234 +0.032123 0.032898 0.032207 0.029282 0.014150 0.029308 0.011287 0.037161 0.029515 0.028889 0.015954 0.129440 0.015756 0.015594 0.028427 0.031445 0.018258 0.310641 0.027811 0.021006 0.022628 0.086911 0.041533 0.015920 0.008871 0.063422 0.038905 0.001859 0.020189 0.133891 0.037797 0.204360 +0.656448 +0.028955 0.038572 0.031679 0.030731 0.018036 0.024786 0.010865 0.037551 0.037415 0.030630 0.014918 0.110857 0.015837 0.015512 0.029398 0.035015 0.016113 0.090081 0.027361 0.020210 0.019539 0.063422 0.038564 0.015846 0.009814 0.086911 0.038101 0.001705 0.020213 0.086911 0.040330 0.133891 +0.216594 +0.029998 0.033209 0.029225 0.031868 0.015739 0.019985 0.010656 0.037292 0.032580 0.029432 0.018630 0.091720 0.016379 0.015596 0.029944 0.033616 0.015459 0.211304 0.028349 0.020853 0.022927 0.157380 0.041159 0.014294 0.006207 0.133891 0.040211 0.001201 0.019480 0.133891 0.042173 0.180870 +0.371348 +0.029271 0.035680 0.029819 0.031204 0.017962 0.054129 0.011010 0.037256 0.030254 0.028999 0.017979 0.054729 0.016298 0.016204 0.028482 0.033093 0.015060 0.046123 0.029661 0.019058 0.019797 0.063422 0.042092 0.015428 0.014022 0.133891 0.041425 0.000823 0.020108 0.110401 0.040949 0.157380 +0.033586 +0.028708 0.033231 0.034410 0.031161 0.017704 0.033441 0.009642 0.035456 0.031996 0.033090 0.015229 0.020026 0.015431 0.016081 0.029004 0.028476 0.014905 0.130933 0.027441 0.018875 0.021992 0.063422 0.040253 0.018712 0.008686 0.063422 0.037638 0.001954 0.018920 0.086911 0.039190 0.133891 +0.077672 +0.030053 0.033017 0.028353 0.028350 0.017057 0.111603 0.011413 0.035791 0.029487 0.030068 0.018396 0.144826 0.016126 0.016155 0.031323 0.028821 0.016566 0.063119 0.027755 0.020604 0.021169 0.086911 0.037652 0.012500 0.005172 0.063422 0.041933 0.001254 0.019611 0.086911 0.041034 0.133891 +0.427131 +0.032626 0.035215 0.029919 0.031779 0.017724 0.182169 0.011132 0.035637 0.031879 0.031629 0.014874 0.113141 0.015211 0.015631 0.028698 0.033404 0.015307 0.025787 0.030125 0.020354 0.021732 0.063422 0.041374 0.017329 0.007948 0.086911 0.039643 0.001480 0.019380 0.110401 0.041268 0.133891 +0.345176 +0.032289 0.036754 0.028282 0.028663 0.015625 0.150626 0.009921 0.035704 0.034320 0.035672 0.015846 0.046382 0.015650 0.015555 0.028726 0.029039 0.014538 0.299569 0.027512 0.020412 0.021868 0.063422 0.038445 0.012307 0.005256 0.110401 0.038350 0.001581 0.020761 0.086911 0.041979 0.157380 +0.723859 +0.030047 0.034271 0.030385 0.028781 0.015940 0.111403 0.010036 0.037017 0.032942 0.036130 0.017149 0.099579 0.015752 0.015910 0.028720 0.029552 0.015614 0.072414 0.029318 0.020802 0.020593 0.133891 0.041606 0.013517 0.005655 0.133891 0.039325 0.001971 0.019935 0.133891 0.038388 0.180870 +0.234252 +0.031566 0.035725 0.030612 0.030102 0.016818 0.020026 0.011689 0.036110 0.028784 0.028502 0.018485 0.209338 0.015199 0.015591 0.031815 0.031197 0.016892 0.239652 0.027460 0.021135 0.022477 0.157380 0.040684 0.018221 0.013507 0.110401 0.040267 0.000336 0.018876 0.157380 0.037949 0.180870 +0.656770 +0.031728 0.036071 0.029975 0.033832 0.018374 0.129837 0.009999 0.035433 0.035170 0.030486 0.016290 0.037172 0.016010 0.015549 0.028536 0.029929 0.016634 0.086242 0.029060 0.019119 0.019628 0.063422 0.040761 0.017230 0.007662 0.086911 0.041137 0.000184 0.019426 0.086911 0.042220 0.157380 +0.168255 +0.032507 0.036454 0.029591 0.028292 0.016881 0.061432 0.010867 0.036989 0.032645 0.032047 0.014805 0.048496 0.015543 0.015763 0.028328 0.033159 0.018646 0.056192 0.027070 0.021086 0.019108 0.133891 0.040767 0.016349 0.011191 0.180870 0.040777 0.001432 0.018892 0.180870 0.038665 0.204360 +0.073446 +0.031592 0.036368 0.029792 0.028537 0.018432 0.320591 0.010932 0.035317 0.031095 0.031546 0.017459 0.182975 0.015926 0.015582 0.028779 0.031494 0.016121 0.054666 0.026861 0.020597 0.022181 0.063422 0.040289 0.017407 0.011655 0.157380 0.040172 0.001189 0.020714 0.157380 0.038166 0.180870 +0.600019 +0.029015 0.037324 0.032436 0.031380 0.016568 0.066563 0.009826 0.037529 0.031387 0.028195 0.016596 0.042547 0.015876 0.015893 0.030160 0.029261 0.017196 0.038355 0.027337 0.019723 0.020751 0.180870 0.038562 0.011863 0.007097 0.133891 0.039843 0.001631 0.019646 0.157380 0.041145 0.204360 +0.061688 +0.030867 0.033553 0.028202 0.031903 0.018064 0.021353 0.011069 0.036655 0.035425 0.028259 0.017427 0.101343 0.015691 0.015779 0.028828 0.028564 0.018567 0.031115 0.026783 0.019725 0.020149 0.086911 0.039032 0.018598 0.014093 0.157380 0.040068 0.000883 0.021014 0.110401 0.040662 0.180870 +0.034811 +0.032812 0.038079 0.028970 0.030822 0.015019 0.162364 0.011665 0.035984 0.031775 0.032621 0.014915 0.155008 0.015559 0.016223 0.028339 0.030381 0.018404 0.083432 0.027297 0.020141 0.019056 0.086911 0.041677 0.014472 0.009030 0.086911 0.038351 0.002210 0.019499 0.110401 0.041001 0.133891 +0.504292 +0.031734 0.036164 0.031713 0.028632 0.016844 0.150994 0.011040 0.036592 0.028936 0.030809 0.014248 0.051762 0.015142 0.015907 0.030095 0.029754 0.017637 0.096429 0.027545 0.021007 0.021747 0.133891 0.041539 0.017724 0.010432 0.063422 0.040476 0.001880 0.021111 0.157380 0.039270 0.180870 +0.386285 +0.031709 0.034009 0.030627 0.038461 0.014258 0.026737 0.010319 0.035792 0.030815 0.031637 0.015154 0.031667 0.015540 0.016198 0.030347 0.030923 0.016189 0.122057 0.029055 0.020236 0.020547 0.133891 0.040341 0.016405 0.011237 0.086911 0.038550 0.002169 0.019739 0.063422 0.040762 0.157380 +0.073509 +0.032019 0.034255 0.031960 0.030351 0.015913 0.211146 0.010215 0.036996 0.029163 0.029892 0.015654 0.140814 0.015524 0.016036 0.030764 0.029318 0.017495 0.021981 0.027827 0.019514 0.021410 0.110401 0.037952 0.015657 0.006121 0.133891 0.038094 0.001569 0.020507 0.086911 0.040356 0.204360 +0.419362 +0.030035 0.036836 0.028893 0.029097 0.017777 0.040561 0.011461 0.035374 0.028525 0.029395 0.018203 0.065412 0.016381 0.015745 0.029614 0.029995 0.014316 0.036287 0.027773 0.020313 0.022766 0.133891 0.039660 0.017767 0.010236 0.133891 0.040905 0.001426 0.019991 0.133891 0.039013 0.157380 +0.104979 +0.028623 0.035718 0.030491 0.029357 0.014791 0.067647 0.010114 0.035360 0.028210 0.031062 0.017749 0.088241 0.016262 0.015726 0.030529 0.031466 0.017704 0.042029 0.030676 0.020039 0.020314 0.157380 0.037639 0.014057 0.012462 0.086911 0.040372 0.001832 0.020026 0.086911 0.041268 0.180870 +0.056810 +0.030043 0.036377 0.028267 0.028813 0.015790 0.032461 0.010875 0.035666 0.032988 0.030829 0.017378 0.030728 0.015882 0.015789 0.029373 0.033343 0.017115 0.142180 0.029507 0.019420 0.022753 0.063422 0.039601 0.016731 0.005721 0.157380 0.039878 0.000850 0.019833 0.157380 0.038202 0.204360 +0.095128 +0.030757 0.035608 0.028522 0.028465 0.018099 0.035760 0.010774 0.037274 0.028593 0.030330 0.016020 0.142765 0.015633 0.016181 0.029207 0.031439 0.017791 0.178800 0.029773 0.020466 0.020730 0.110401 0.039817 0.017798 0.008980 0.110401 0.037958 0.000243 0.019616 0.180870 0.040512 0.204360 +0.488848 +0.030944 0.037037 0.028307 0.035432 0.016970 0.047701 0.011155 0.037401 0.029533 0.030278 0.017677 0.070362 0.015334 0.015834 0.028191 0.029087 0.016080 0.059995 0.026700 0.019138 0.019769 0.110401 0.040392 0.018039 0.013983 0.133891 0.041468 0.001989 0.020060 0.133891 0.041285 0.157380 +0.163735 +0.029920 0.033001 0.028232 0.028278 0.015677 0.042771 0.011036 0.035930 0.029531 0.037084 0.015785 0.135519 0.016085 0.015885 0.028541 0.029518 0.015164 0.091840 0.027922 0.019063 0.020389 0.086911 0.040360 0.016555 0.010925 0.063422 0.041885 0.000634 0.020077 0.086911 0.037793 0.157380 +0.213946 +0.028698 0.034861 0.035658 0.029643 0.017989 0.186191 0.010655 0.035597 0.029213 0.029179 0.017239 0.094633 0.015232 0.016336 0.028285 0.031014 0.018479 0.024534 0.029229 0.019276 0.019975 0.086911 0.041988 0.017317 0.006917 0.110401 0.037836 0.000323 0.019745 0.086911 0.038428 0.133891 +0.352083 +0.028506 0.038225 0.028845 0.034043 0.018300 0.479893 0.011367 0.037423 0.032491 0.029753 0.017366 0.232539 0.015805 0.016382 0.028301 0.044670 0.015205 0.086170 0.028883 0.019192 0.022466 0.133891 0.040980 0.012462 0.010727 0.110401 0.039767 0.000288 0.019712 0.133891 0.039543 0.157380 +0.850103 +0.028885 0.035508 0.032694 0.028901 0.017956 0.322159 0.009634 0.036620 0.031336 0.029895 0.017188 0.116530 0.016198 0.016032 0.040671 0.032406 0.017406 0.167736 0.030594 0.019212 0.021796 0.063422 0.042100 0.011751 0.012784 0.110401 0.039782 0.001780 0.020048 0.086911 0.041977 0.204360 +0.702564 +0.031577 0.034503 0.028217 0.029644 0.017008 0.081071 0.009592 0.036311 0.029607 0.028902 0.015911 0.034345 0.015436 0.016122 0.028426 0.028593 0.014897 0.055077 0.029203 0.019340 0.021595 0.063422 0.039315 0.015958 0.011122 0.133891 0.038449 0.000988 0.020023 0.063422 0.041586 0.180870 +0.093011 +0.030379 0.037343 0.032041 0.029579 0.016876 0.048253 0.009757 0.037188 0.029277 0.029238 0.016405 0.157832 0.016254 0.015955 0.028754 0.033995 0.017599 0.176850 0.026807 0.020524 0.022414 0.110401 0.039523 0.015293 0.011641 0.086911 0.040255 0.000691 0.020647 0.063422 0.038106 0.133891 +0.517849 +0.029934 0.039351 0.031411 0.033978 0.017481 0.112142 0.010902 0.036095 0.028352 0.028716 0.017016 0.110516 0.016343 0.016176 0.028469 0.033864 0.014321 0.165377 0.028625 0.021024 0.020589 0.063422 0.040892 0.012390 0.006147 0.180870 0.041734 0.000744 0.020560 0.086911 0.039338 0.204360 +0.368766 +0.029686 0.037992 0.028282 0.029280 0.016520 0.105000 0.010103 0.036327 0.034817 0.029065 0.014106 0.018922 0.015683 0.016098 0.032191 0.031479 0.015634 0.028243 0.029003 0.018798 0.020188 0.110401 0.038153 0.015475 0.006025 0.063422 0.041511 0.001551 0.018808 0.133891 0.038309 0.204360 +0.001285 +0.031429 0.033809 0.029117 0.028213 0.014173 0.067611 0.010155 0.035502 0.028190 0.029307 0.014547 0.020034 0.015690 0.016307 0.031531 0.029288 0.015225 0.093830 0.029776 0.021104 0.019092 0.157380 0.042100 0.012678 0.008998 0.086911 0.038308 0.001304 0.020483 0.063422 0.040026 0.204360 +0.015221 +0.031280 0.036951 0.029341 0.031478 0.016468 0.088494 0.009618 0.035472 0.028569 0.028888 0.015757 0.037553 0.016336 0.015508 0.030744 0.031073 0.017592 0.064991 0.027650 0.018930 0.019051 0.086911 0.039194 0.015243 0.008994 0.086911 0.038894 0.000934 0.021105 0.157380 0.039080 0.180870 +0.174778 +0.032164 0.034186 0.028239 0.029663 0.015252 0.032746 0.011502 0.036751 0.028881 0.032918 0.017578 0.041635 0.015884 0.015552 0.036564 0.037860 0.017746 0.063028 0.028245 0.020565 0.020552 0.133891 0.037693 0.011851 0.011398 0.133891 0.040962 0.001363 0.020889 0.110401 0.040479 0.204360 +0.013119 +0.032544 0.037141 0.033257 0.033512 0.014541 0.017553 0.010107 0.036407 0.032605 0.030042 0.014478 0.060758 0.015957 0.015575 0.032522 0.029516 0.014150 0.211077 0.027817 0.020351 0.022813 0.180870 0.040076 0.016928 0.006891 0.086911 0.042187 0.001559 0.019718 0.180870 0.040449 0.204360 +0.176428 +0.030216 0.035132 0.037132 0.031252 0.015133 0.062604 0.011275 0.037184 0.042337 0.030247 0.016551 0.161108 0.015230 0.015844 0.031651 0.028271 0.015898 0.025069 0.027794 0.020032 0.023350 0.110401 0.040873 0.013275 0.009867 0.086911 0.041319 0.000061 0.020980 0.086911 0.041790 0.133891 +0.279644 +0.028688 0.036269 0.031685 0.028670 0.018729 0.164461 0.009938 0.036886 0.028948 0.029042 0.015682 0.077218 0.016278 0.016435 0.028218 0.028551 0.017603 0.354782 0.029244 0.020144 0.020588 0.157380 0.041851 0.016816 0.011587 0.063422 0.038580 0.000655 0.020892 0.086911 0.040467 0.180870 +0.755828 +0.029266 0.033102 0.035189 0.028234 0.014122 0.026871 0.009654 0.037488 0.029500 0.029615 0.015874 0.027091 0.015237 0.015951 0.030315 0.029410 0.017774 0.024913 0.027622 0.019092 0.023450 0.110401 0.040557 0.015278 0.007917 0.157380 0.037708 0.000621 0.018806 0.157380 0.041112 0.204360 +0 +0.030997 0.039782 0.033159 0.033783 0.017684 0.087651 0.011615 0.036106 0.030462 0.044719 0.016267 0.066914 0.015698 0.015889 0.029615 0.032016 0.016724 0.174602 0.026520 0.019187 0.022900 0.086911 0.040943 0.014874 0.006777 0.063422 0.041853 0.000148 0.021083 0.086911 0.041403 0.157380 +0.333262 +0.030324 0.035207 0.030789 0.028370 0.015170 0.057439 0.010165 0.036404 0.028273 0.032057 0.017819 0.087733 0.015099 0.016383 0.028874 0.029310 0.016426 0.020407 0.029560 0.020819 0.023328 0.063422 0.039347 0.013769 0.006651 0.063422 0.041353 0.001637 0.020403 0.086911 0.041005 0.133891 +0.132719 +0.028473 0.038660 0.029781 0.029535 0.018452 0.037441 0.009628 0.036531 0.028248 0.031262 0.015804 0.061232 0.015182 0.015942 0.028736 0.028938 0.018438 0.220503 0.029349 0.020833 0.020157 0.110401 0.037697 0.012528 0.013318 0.110401 0.040582 0.000924 0.019681 0.157380 0.038220 0.180870 +0.325506 +0.030738 0.035928 0.028204 0.028263 0.018649 0.022376 0.011111 0.036175 0.030722 0.029802 0.015726 0.045809 0.016073 0.016086 0.034752 0.030237 0.016683 0.191509 0.028217 0.019340 0.018922 0.086911 0.039313 0.013260 0.008111 0.063422 0.038989 0.000177 0.020722 0.086911 0.039859 0.133891 +0.281574 +0.031639 0.035437 0.029296 0.029819 0.017589 0.025058 0.010196 0.036117 0.028502 0.029159 0.018219 0.063400 0.015517 0.016413 0.033529 0.028563 0.017623 0.039690 0.026887 0.019182 0.022912 0.063422 0.041665 0.012719 0.007750 0.157380 0.040389 0.001237 0.019183 0.157380 0.040387 0.180870 +0.035805 +0.030728 0.037988 0.028453 0.039801 0.014976 0.033760 0.009775 0.035439 0.029086 0.029047 0.014864 0.076399 0.015477 0.015924 0.029037 0.032957 0.014695 0.055157 0.027295 0.019323 0.022133 0.086911 0.041239 0.014503 0.008805 0.086911 0.040257 0.001567 0.019721 0.086911 0.038296 0.133891 +0.109013 +0.031843 0.038077 0.035519 0.033819 0.016894 0.024190 0.011456 0.037469 0.031678 0.028564 0.018037 0.070073 0.015202 0.016056 0.029299 0.029874 0.018356 0.044058 0.028394 0.018997 0.023479 0.180870 0.040514 0.017116 0.012054 0.063422 0.040474 0.000049 0.019644 0.180870 0.038423 0.204360 +0.061439 +0.030649 0.037573 0.029924 0.028488 0.014494 0.065672 0.010976 0.035420 0.029951 0.029720 0.017136 0.078529 0.016100 0.015957 0.028955 0.031365 0.018644 0.034912 0.028586 0.020214 0.020547 0.133891 0.040979 0.015518 0.009295 0.063422 0.039010 0.000720 0.020691 0.063422 0.037838 0.180870 +0.104680 +0.032045 0.037060 0.029030 0.029721 0.015266 0.055280 0.011734 0.035979 0.032448 0.031349 0.014836 0.061213 0.015626 0.016333 0.032034 0.028271 0.015345 0.069058 0.028931 0.020840 0.020193 0.086911 0.042181 0.012943 0.009913 0.157380 0.039839 0.001380 0.020450 0.110401 0.038038 0.204360 +0.039964 +0.032388 0.038797 0.029112 0.034514 0.017485 0.112769 0.009709 0.036031 0.029545 0.029745 0.014620 0.087485 0.016243 0.016082 0.032105 0.036399 0.015155 0.073966 0.028895 0.019220 0.020513 0.133891 0.039008 0.013304 0.013756 0.157380 0.038195 0.000038 0.020220 0.157380 0.042255 0.180870 +0.266536 +0.028797 0.037967 0.028408 0.031743 0.016514 0.073779 0.009611 0.035749 0.031926 0.029341 0.017001 0.231313 0.016300 0.016103 0.028253 0.030182 0.017449 0.048028 0.027264 0.019553 0.021902 0.086911 0.038353 0.018569 0.009144 0.133891 0.040286 0.001495 0.020690 0.180870 0.037749 0.204360 +0.427595 +0.032589 0.034135 0.028457 0.030199 0.017787 0.072590 0.009913 0.035632 0.029202 0.028909 0.014778 0.020113 0.016179 0.015869 0.030447 0.028627 0.015553 0.035730 0.027911 0.020089 0.021088 0.086911 0.042196 0.016739 0.007027 0.063422 0.042005 0.001339 0.020979 0.110401 0.037623 0.204360 +0 +0.028256 0.039140 0.029934 0.028681 0.016832 0.089764 0.011577 0.036968 0.028567 0.031806 0.015999 0.029967 0.015205 0.015908 0.028684 0.030776 0.014647 0.026905 0.027993 0.020770 0.020439 0.063422 0.037911 0.012189 0.007571 0.110401 0.041538 0.001748 0.020123 0.063422 0.040464 0.133891 +0.037493 +0.032567 0.039305 0.037425 0.029286 0.015059 0.038643 0.009584 0.035780 0.028237 0.028930 0.018249 0.103676 0.015672 0.016398 0.030055 0.029534 0.018594 0.060461 0.027581 0.019688 0.021289 0.063422 0.039536 0.017442 0.008699 0.110401 0.040106 0.000231 0.020821 0.086911 0.038777 0.133891 +0.140807 +0.030155 0.034496 0.031276 0.029043 0.016077 0.024559 0.011156 0.035668 0.031417 0.030448 0.018246 0.034376 0.015084 0.016261 0.030370 0.031714 0.016016 0.206799 0.029897 0.018796 0.019070 0.110401 0.038816 0.018489 0.012788 0.157380 0.039906 0.001998 0.019631 0.086911 0.037764 0.180870 +0.197661 +0.028312 0.039852 0.029602 0.028804 0.015226 0.037957 0.011662 0.036993 0.029788 0.030707 0.015258 0.056543 0.016262 0.015879 0.028617 0.032892 0.015170 0.041660 0.028006 0.019035 0.019236 0.086911 0.042034 0.013428 0.010449 0.063422 0.040268 0.000103 0.018995 0.063422 0.037901 0.133891 +0.042003 +0.032027 0.036268 0.028746 0.032043 0.017566 0.031672 0.009430 0.036191 0.033419 0.029024 0.014672 0.022466 0.016270 0.015709 0.029759 0.028547 0.015385 0.072044 0.026845 0.019403 0.021669 0.063422 0.040645 0.015914 0.008401 0.086911 0.041731 0.000583 0.019475 0.063422 0.038604 0.133891 +0.012198 +0.028430 0.033709 0.029099 0.031143 0.016012 0.018380 0.009960 0.036360 0.028541 0.028284 0.015346 0.049535 0.015189 0.015610 0.029742 0.030391 0.015877 0.116259 0.029181 0.020114 0.021266 0.110401 0.041395 0.016410 0.013632 0.110401 0.040024 0.001529 0.020055 0.063422 0.037727 0.157380 +0.078483 +0.029328 0.033579 0.032081 0.028951 0.018424 0.125336 0.010919 0.035362 0.032955 0.034555 0.014465 0.133791 0.015205 0.015795 0.028633 0.031477 0.018032 0.033176 0.027231 0.019027 0.021533 0.063422 0.040554 0.011777 0.008780 0.133891 0.041605 0.002262 0.020428 0.110401 0.040382 0.157380 +0.285564 +0.031713 0.038225 0.029965 0.029673 0.014218 0.016622 0.010930 0.037282 0.030879 0.030124 0.016314 0.031179 0.016306 0.015982 0.029271 0.029246 0.017524 0.122849 0.030250 0.020661 0.019305 0.180870 0.037615 0.016901 0.012589 0.086911 0.042186 0.001591 0.020771 0.110401 0.038687 0.204360 +0.054464 +0.031649 0.034384 0.032426 0.035170 0.015840 0.054345 0.011127 0.037184 0.035887 0.028908 0.016326 0.117710 0.016333 0.016203 0.029290 0.033205 0.015202 0.036770 0.027613 0.019745 0.019801 0.133891 0.038502 0.017150 0.009928 0.110401 0.041921 0.001522 0.019776 0.063422 0.041169 0.204360 +0.123032 +0.031776 0.034528 0.029865 0.031180 0.014659 0.113620 0.010631 0.035650 0.028278 0.030884 0.017685 0.023783 0.015581 0.015761 0.029428 0.033599 0.017544 0.119241 0.026608 0.019418 0.023447 0.086911 0.038545 0.016464 0.008820 0.086911 0.037738 0.000003 0.019258 0.110401 0.041441 0.180870 +0.296484 +0.031774 0.038467 0.030858 0.030111 0.014445 0.022680 0.011044 0.036444 0.029642 0.028258 0.015968 0.187520 0.016068 0.015742 0.032426 0.029967 0.018459 0.030229 0.029784 0.021109 0.020548 0.063422 0.041798 0.013358 0.010103 0.110401 0.040073 0.002279 0.020670 0.063422 0.040466 0.157380 +0.186300 +0.030554 0.039629 0.031814 0.037474 0.016141 0.023683 0.010242 0.035394 0.029488 0.030649 0.015311 0.103867 0.015581 0.016037 0.028451 0.035790 0.018068 0.225510 0.028285 0.018834 0.019538 0.086911 0.040016 0.012429 0.008115 0.157380 0.041300 0.001313 0.020368 0.157380 0.040029 0.180870 +0.380019 +0.031871 0.039909 0.028914 0.031300 0.015188 0.027151 0.010862 0.036007 0.030792 0.031726 0.014817 0.017370 0.015650 0.015962 0.032177 0.030392 0.014374 0.284546 0.028868 0.020043 0.023010 0.086911 0.039189 0.014250 0.013108 0.157380 0.039716 0.002231 0.020493 0.110401 0.038978 0.204360 +0.367997 +0.031889 0.039750 0.030058 0.028485 0.014957 0.273206 0.010145 0.036146 0.028680 0.029590 0.018686 0.100848 0.015330 0.015635 0.030410 0.028237 0.017600 0.040303 0.027656 0.020788 0.022144 0.063422 0.037726 0.016613 0.006860 0.110401 0.042126 0.000190 0.020425 0.063422 0.041144 0.204360 +0.555129 +0.030393 0.037609 0.029456 0.029179 0.017160 0.038069 0.009675 0.036314 0.028945 0.030868 0.018746 0.021298 0.015932 0.016436 0.031128 0.030863 0.016413 0.027293 0.029201 0.018882 0.020823 0.063422 0.038541 0.015242 0.010045 0.086911 0.040980 0.000141 0.020647 0.133891 0.038332 0.180870 +0 +0.029169 0.036821 0.028654 0.028291 0.014846 0.091821 0.011152 0.036216 0.028220 0.031381 0.015131 0.021559 0.015662 0.015783 0.028998 0.030674 0.014892 0.400493 0.029303 0.019338 0.022370 0.110401 0.039641 0.015185 0.008328 0.063422 0.040250 0.000894 0.019657 0.133891 0.041579 0.157380 +0.641770 +0.029774 0.037789 0.032994 0.030263 0.016684 0.019117 0.011200 0.035435 0.035367 0.028845 0.015065 0.019296 0.015922 0.016201 0.028949 0.029408 0.016021 0.173855 0.029768 0.020953 0.021656 0.063422 0.038077 0.011846 0.009300 0.133891 0.042271 0.001726 0.020834 0.110401 0.040976 0.180870 +0.192239 +0.030997 0.033153 0.029352 0.035278 0.015898 0.058015 0.011390 0.036175 0.034353 0.029541 0.018429 0.090924 0.016165 0.015797 0.030731 0.028618 0.018763 0.203961 0.028824 0.019579 0.021203 0.063422 0.037746 0.017371 0.007249 0.157380 0.041181 0.002228 0.020629 0.133891 0.037799 0.180870 +0.402441 +0.029967 0.038527 0.029535 0.032466 0.015560 0.017337 0.011011 0.035637 0.029163 0.029009 0.014650 0.071808 0.015462 0.015867 0.028547 0.030038 0.017155 0.042878 0.027878 0.019800 0.021612 0.133891 0.041791 0.012172 0.005470 0.110401 0.038253 0.001685 0.019545 0.086911 0.038292 0.157380 +0.068689 +0.030672 0.039807 0.033555 0.029267 0.017797 0.063929 0.010090 0.037132 0.028736 0.029277 0.018144 0.161649 0.015806 0.015579 0.028188 0.029607 0.016850 0.111167 0.028456 0.020176 0.020470 0.157380 0.042134 0.013797 0.008803 0.063422 0.039063 0.001365 0.019808 0.063422 0.039060 0.204360 +0.261370 +0.032622 0.033776 0.029366 0.029475 0.018097 0.051155 0.010825 0.037538 0.029605 0.028568 0.015120 0.071187 0.015757 0.015896 0.030618 0.029868 0.018340 0.016474 0.028220 0.019351 0.022088 0.086911 0.039695 0.015416 0.012304 0.133891 0.038042 0.001452 0.019851 0.133891 0.038609 0.180870 +0.023431 +0.030121 0.037810 0.029302 0.029187 0.016313 0.123397 0.010111 0.037566 0.031502 0.032076 0.014502 0.044608 0.016437 0.015620 0.031960 0.028884 0.017374 0.068499 0.028899 0.020827 0.019321 0.063422 0.040127 0.013687 0.005933 0.110401 0.041226 0.001390 0.018873 0.063422 0.041179 0.204360 +0.251900 +0.031446 0.037846 0.029091 0.029638 0.014675 0.039843 0.009705 0.036563 0.033150 0.035536 0.015439 0.215974 0.015557 0.016441 0.029291 0.030130 0.015388 0.026326 0.028039 0.021101 0.022919 0.086911 0.040707 0.016516 0.007259 0.133891 0.041336 0.001474 0.019252 0.086911 0.041471 0.157380 +0.285048 +0.029456 0.035472 0.028267 0.031477 0.014408 0.056762 0.009622 0.037018 0.029587 0.029137 0.014324 0.083254 0.016151 0.016422 0.031746 0.029565 0.015282 0.203332 0.027243 0.020275 0.022313 0.110401 0.041224 0.017550 0.012334 0.133891 0.042245 0.001923 0.019756 0.133891 0.041570 0.204360 +0.334959 +0.032669 0.039552 0.029260 0.028806 0.018051 0.133239 0.009997 0.037473 0.028728 0.028740 0.014936 0.091828 0.015800 0.015738 0.031488 0.033453 0.018411 0.030845 0.027661 0.019816 0.021942 0.110401 0.042271 0.013323 0.005438 0.063422 0.040307 0.001953 0.019441 0.110401 0.040455 0.180870 +0.298256 +0.029608 0.036169 0.029569 0.034724 0.016225 0.167850 0.010898 0.037394 0.031611 0.028476 0.014340 0.089741 0.015205 0.015858 0.029564 0.028734 0.015783 0.053020 0.028893 0.019538 0.021345 0.063422 0.037953 0.013733 0.009267 0.086911 0.041730 0.001748 0.020456 0.086911 0.039751 0.133891 +0.367392 +0.028630 0.034295 0.029415 0.029069 0.014776 0.097000 0.010658 0.037163 0.029530 0.046210 0.014614 0.020872 0.016290 0.015686 0.028364 0.029145 0.017198 0.052305 0.027628 0.019837 0.023454 0.157380 0.038142 0.012376 0.007606 0.110401 0.038007 0.000599 0.018959 0.157380 0.040415 0.180870 +0.222048 +0.029257 0.034155 0.029330 0.028670 0.018078 0.051876 0.011062 0.036885 0.030416 0.035039 0.017233 0.062155 0.015876 0.015735 0.028443 0.032396 0.014297 0.323400 0.028782 0.020341 0.022666 0.133891 0.039738 0.016394 0.008787 0.157380 0.039492 0.001654 0.018956 0.133891 0.039951 0.180870 +0.583950 +0.032302 0.036092 0.028782 0.028280 0.015019 0.108982 0.010856 0.035495 0.028448 0.031222 0.018524 0.042238 0.015592 0.016277 0.028254 0.028372 0.017216 0.034511 0.025927 0.019394 0.019782 0.086911 0.038380 0.014634 0.005250 0.086911 0.040326 0.000418 0.019218 0.063422 0.042279 0.157380 +0.329098 +0.028854 0.034146 0.028649 0.028675 0.017694 0.042211 0.009770 0.037317 0.029763 0.030625 0.018449 0.162616 0.015249 0.016132 0.030077 0.029746 0.016946 0.072293 0.028178 0.020245 0.018832 0.063422 0.037655 0.018721 0.010656 0.063422 0.041755 0.000583 0.019973 0.133891 0.039425 0.180870 +0.233036 +0.028326 0.038162 0.028572 0.030143 0.017308 0.023071 0.011520 0.035332 0.029269 0.035828 0.014539 0.027698 0.016276 0.016000 0.031120 0.029729 0.014475 0.063551 0.028835 0.019626 0.019629 0.110401 0.041536 0.016744 0.009572 0.180870 0.037640 0.000002 0.020338 0.063422 0.041158 0.204360 +0.009103 +0.028607 0.037545 0.028514 0.029944 0.015401 0.313245 0.011648 0.035702 0.028669 0.031392 0.015957 0.046332 0.016283 0.016162 0.028343 0.033967 0.017350 0.216214 0.029006 0.019135 0.020053 0.110401 0.039297 0.017896 0.008092 0.086911 0.040972 0.001742 0.020231 0.110401 0.042132 0.157380 +0.664182 +0.029077 0.034394 0.029395 0.029746 0.018589 0.049399 0.010982 0.035241 0.029336 0.029964 0.015733 0.243507 0.016101 0.015895 0.035704 0.030715 0.017081 0.018816 0.030344 0.019605 0.020586 0.157380 0.040262 0.013280 0.013897 0.086911 0.038420 0.001255 0.020036 0.110401 0.041698 0.180870 +0.301901 +0.031922 0.037624 0.028729 0.029777 0.017567 0.110552 0.010841 0.036931 0.029518 0.031298 0.014908 0.047331 0.015780 0.016089 0.029661 0.029618 0.017602 0.027749 0.028162 0.019353 0.019886 0.086911 0.039605 0.018267 0.006142 0.133891 0.038144 0.002056 0.020104 0.157380 0.042279 0.204360 +0.130016 +0.030957 0.036238 0.031166 0.033882 0.016326 0.020812 0.009544 0.037527 0.029631 0.029084 0.014940 0.219372 0.015694 0.015563 0.029759 0.028232 0.014117 0.214788 0.027233 0.019450 0.019824 0.110401 0.039889 0.013824 0.008022 0.063422 0.042253 0.001296 0.020836 0.110401 0.041706 0.133891 +0.576214 +0.030942 0.033876 0.032987 0.030281 0.014350 0.018946 0.010557 0.036693 0.040501 0.028630 0.018411 0.082544 0.016390 0.016279 0.039893 0.028414 0.018472 0.237820 0.027898 0.021111 0.019119 0.063422 0.039564 0.011974 0.011229 0.133891 0.038910 0.000529 0.020646 0.086911 0.039398 0.180870 +0.415355 +0.029941 0.037329 0.028763 0.028609 0.018146 0.044054 0.009894 0.037201 0.037718 0.028227 0.016618 0.061816 0.016394 0.016244 0.033252 0.030309 0.018727 0.194213 0.028128 0.020442 0.022168 0.180870 0.040335 0.016335 0.007219 0.086911 0.040708 0.001888 0.019416 0.157380 0.039259 0.204360 +0.257588 +0.029949 0.034493 0.031085 0.028559 0.018042 0.113108 0.010456 0.035928 0.033002 0.030396 0.014382 0.040152 0.015610 0.015739 0.032321 0.029145 0.016025 0.288600 0.029442 0.019066 0.020148 0.063422 0.039691 0.016698 0.012436 0.086911 0.038526 0.000380 0.018806 0.133891 0.038545 0.157380 +0.594736 +0.028794 0.035247 0.029604 0.030694 0.017947 0.027914 0.011310 0.035377 0.031430 0.029697 0.016027 0.032853 0.015589 0.015887 0.028529 0.028593 0.016026 0.121667 0.026077 0.020838 0.019426 0.086911 0.037610 0.013593 0.009195 0.086911 0.039450 0.002082 0.020985 0.110401 0.040830 0.157380 +0.058421 +0.029838 0.038121 0.033030 0.036419 0.018232 0.052914 0.009401 0.035329 0.028262 0.030987 0.017844 0.034571 0.015768 0.015523 0.030031 0.033604 0.018024 0.021259 0.028682 0.019033 0.022382 0.133891 0.039659 0.012039 0.008676 0.133891 0.037635 0.000653 0.021095 0.086911 0.041706 0.180870 +0.004804 +0.029192 0.036685 0.028258 0.029004 0.015848 0.124021 0.010095 0.035841 0.028275 0.028209 0.016898 0.031448 0.016437 0.016078 0.032639 0.028481 0.017276 0.088573 0.028622 0.020843 0.019453 0.086911 0.041706 0.014477 0.013084 0.110401 0.039346 0.000891 0.019797 0.086911 0.041708 0.133891 +0.297557 +0.031525 0.037991 0.029993 0.029522 0.017911 0.047006 0.011665 0.036597 0.028398 0.038570 0.017005 0.144998 0.015822 0.016174 0.028312 0.030847 0.018504 0.121492 0.027972 0.020819 0.021740 0.086911 0.040333 0.011917 0.005110 0.110401 0.040539 0.001134 0.020180 0.063422 0.039470 0.133891 +0.355533 +0.028579 0.039359 0.029402 0.030131 0.016235 0.102285 0.009397 0.036277 0.029931 0.028423 0.017746 0.121803 0.016117 0.015879 0.029782 0.037892 0.014469 0.022935 0.027700 0.019993 0.022538 0.086911 0.037938 0.017230 0.007714 0.063422 0.039726 0.000784 0.019048 0.110401 0.038951 0.157380 +0.342741 +0.031520 0.036971 0.028601 0.031677 0.015817 0.109149 0.010854 0.037035 0.029043 0.029207 0.017155 0.021269 0.015116 0.015702 0.028804 0.028342 0.015313 0.067180 0.029599 0.019392 0.022937 0.110401 0.042269 0.013562 0.006758 0.086911 0.040470 0.001422 0.020345 0.133891 0.040515 0.157380 +0.180821 +0.029859 0.038916 0.029788 0.039017 0.015967 0.118991 0.009404 0.036612 0.031539 0.035616 0.015984 0.170033 0.016342 0.015639 0.035346 0.028779 0.018501 0.028595 0.026422 0.019480 0.023182 0.133891 0.041645 0.016677 0.012505 0.063422 0.039688 0.001755 0.020759 0.063422 0.039948 0.157380 +0.323754 +0.029346 0.036172 0.028296 0.030119 0.015948 0.051077 0.009745 0.035367 0.034870 0.030109 0.015920 0.203119 0.015056 0.016234 0.028508 0.029181 0.015776 0.071500 0.030311 0.020430 0.018884 0.110401 0.040593 0.013611 0.008749 0.110401 0.041280 0.000197 0.020599 0.086911 0.039422 0.133891 +0.356987 +0.030288 0.034133 0.030441 0.028194 0.014869 0.020694 0.009757 0.035712 0.033437 0.028842 0.014282 0.111713 0.015734 0.016300 0.032716 0.029811 0.016613 0.017631 0.028232 0.019375 0.020666 0.086911 0.040240 0.013942 0.005662 0.180870 0.038731 0.001692 0.020438 0.063422 0.040985 0.204360 +0.021085 +0.031432 0.037022 0.031176 0.031123 0.017758 0.035964 0.011321 0.037125 0.029216 0.030904 0.014914 0.042130 0.016205 0.016431 0.033112 0.033129 0.016205 0.042389 0.030357 0.020481 0.019271 0.110401 0.038182 0.017052 0.011584 0.133891 0.039836 0.002250 0.019878 0.157380 0.042229 0.204360 +0.002153 +0.031117 0.034815 0.032451 0.028473 0.014326 0.144016 0.009572 0.037453 0.029888 0.031623 0.016098 0.346892 0.016250 0.015839 0.036340 0.028911 0.016360 0.112354 0.030567 0.019780 0.021403 0.063422 0.042244 0.014000 0.012976 0.157380 0.041288 0.000466 0.020322 0.110401 0.037682 0.180870 +0.747078 +0.028573 0.034271 0.034000 0.031598 0.016191 0.071590 0.009860 0.035738 0.029239 0.030589 0.018148 0.179913 0.015153 0.015916 0.028305 0.029880 0.015341 0.038143 0.027712 0.019002 0.019593 0.063422 0.041742 0.012568 0.008446 0.063422 0.040828 0.001167 0.020573 0.110401 0.038744 0.133891 +0.246153 +0.028765 0.035375 0.036169 0.031063 0.014810 0.089488 0.011715 0.035247 0.032794 0.031358 0.016507 0.103455 0.015706 0.015722 0.031336 0.031935 0.016280 0.049275 0.029863 0.020976 0.020471 0.157380 0.038843 0.012498 0.006678 0.133891 0.038733 0.001324 0.019106 0.086911 0.040251 0.180870 +0.209258 +0.030999 0.038794 0.037419 0.028387 0.016950 0.133983 0.010322 0.036509 0.030066 0.028216 0.015897 0.069362 0.016173 0.016417 0.028983 0.034383 0.016656 0.026612 0.028213 0.020840 0.019981 0.086911 0.038303 0.018305 0.013673 0.110401 0.040150 0.000049 0.019964 0.086911 0.040904 0.180870 +0.169909 +0.028194 0.037800 0.029962 0.028275 0.014888 0.028228 0.009419 0.037241 0.030700 0.038912 0.017425 0.092215 0.016108 0.016202 0.031072 0.029361 0.016786 0.099985 0.027429 0.020307 0.023032 0.110401 0.038812 0.016135 0.004705 0.063422 0.040052 0.000856 0.019131 0.063422 0.040442 0.133891 +0.174344 +0.029736 0.035882 0.035813 0.028521 0.016012 0.042210 0.011197 0.035735 0.029175 0.028794 0.016233 0.183419 0.015982 0.015711 0.028242 0.028576 0.015435 0.178492 0.029017 0.018936 0.019815 0.110401 0.039209 0.017247 0.008061 0.063422 0.041002 0.000050 0.019461 0.086911 0.038801 0.133891 +0.552216 +0.029709 0.039268 0.029908 0.028689 0.014538 0.064204 0.010312 0.035390 0.030119 0.028412 0.015578 0.067073 0.015290 0.015957 0.029408 0.031723 0.018524 0.137741 0.026666 0.020848 0.020140 0.157380 0.040269 0.012942 0.012074 0.157380 0.041871 0.002048 0.020463 0.133891 0.042095 0.204360 +0.221715 +0.031422 0.039606 0.028873 0.041059 0.017264 0.029930 0.010032 0.037579 0.030504 0.029973 0.014580 0.040473 0.016231 0.015793 0.029007 0.030796 0.015369 0.098115 0.027800 0.020411 0.021307 0.110401 0.038713 0.016969 0.012042 0.086911 0.041254 0.001428 0.019702 0.063422 0.037811 0.204360 +0.069332 +0.031178 0.034429 0.028829 0.030212 0.014934 0.069379 0.009439 0.037254 0.029790 0.028206 0.014960 0.114112 0.016105 0.016160 0.029523 0.029238 0.016689 0.057261 0.028665 0.020648 0.019956 0.133891 0.038606 0.013100 0.004738 0.086911 0.038245 0.000009 0.018951 0.110401 0.041472 0.180870 +0.253605 +0.030943 0.039919 0.032461 0.030458 0.018688 0.026377 0.010434 0.035600 0.030373 0.030249 0.015698 0.029618 0.015207 0.015870 0.029055 0.028210 0.018736 0.095273 0.027390 0.019100 0.019429 0.063422 0.040438 0.015609 0.009921 0.133891 0.038006 0.000946 0.019808 0.133891 0.040572 0.180870 +0.030354 +0.032006 0.033395 0.029331 0.030038 0.014150 0.069361 0.011375 0.035940 0.028873 0.031016 0.018169 0.022580 0.016118 0.016302 0.029300 0.028806 0.015844 0.084062 0.029137 0.019555 0.022920 0.110401 0.038821 0.016540 0.005136 0.063422 0.038485 0.000155 0.019963 0.063422 0.038509 0.180870 +0.148025 +0.030882 0.037296 0.029529 0.029592 0.018625 0.017269 0.010138 0.036549 0.030291 0.028519 0.017389 0.075201 0.015049 0.015971 0.029319 0.032899 0.014426 0.056524 0.028637 0.019372 0.022800 0.086911 0.040366 0.011828 0.011305 0.133891 0.039530 0.001929 0.020912 0.180870 0.040715 0.204360 +0.043834 +0.032295 0.034313 0.029210 0.028354 0.016934 0.095704 0.011678 0.035518 0.030814 0.030839 0.018376 0.288389 0.016206 0.015887 0.031319 0.028660 0.014864 0.025902 0.028871 0.019222 0.022935 0.110401 0.040592 0.017242 0.005987 0.110401 0.039512 0.000789 0.019739 0.063422 0.038027 0.133891 +0.565495 +0.030341 0.033143 0.032797 0.029621 0.015232 0.068759 0.009429 0.036476 0.033145 0.035703 0.016657 0.081846 0.015888 0.016138 0.030931 0.031621 0.017184 0.092486 0.028943 0.019317 0.022664 0.133891 0.038748 0.017204 0.007707 0.133891 0.039354 0.000400 0.020756 0.086911 0.040865 0.157380 +0.247836 +0.030500 0.037755 0.032612 0.033177 0.018617 0.195811 0.011152 0.035668 0.028929 0.030337 0.016309 0.090334 0.016106 0.015983 0.029676 0.028592 0.015120 0.037886 0.028351 0.020909 0.020469 0.086911 0.039027 0.012243 0.010640 0.086911 0.041173 0.001463 0.020879 0.110401 0.041836 0.133891 +0.479705 +0.029597 0.036765 0.028604 0.028308 0.016198 0.099983 0.010304 0.036891 0.033195 0.029193 0.014726 0.151963 0.015784 0.016122 0.030160 0.029100 0.017636 0.108626 0.028865 0.019781 0.021217 0.063422 0.038571 0.016983 0.010626 0.110401 0.038801 0.001385 0.020811 0.110401 0.038755 0.133891 +0.470078 +0.030392 0.038185 0.031346 0.032376 0.015297 0.020269 0.011431 0.036311 0.029248 0.029137 0.016185 0.059127 0.015454 0.015910 0.028225 0.029415 0.018318 0.083792 0.027598 0.019036 0.023197 0.086911 0.038628 0.017358 0.011748 0.110401 0.039949 0.000435 0.020318 0.110401 0.037931 0.157380 +0.051050 +0.031362 0.037876 0.032419 0.029371 0.016549 0.063566 0.010535 0.036469 0.030334 0.029893 0.016202 0.138106 0.015424 0.016070 0.030440 0.030978 0.018193 0.022441 0.028741 0.020432 0.022270 0.063422 0.041813 0.015857 0.006342 0.110401 0.038129 0.000440 0.019304 0.086911 0.038847 0.133891 +0.260091 +0.030654 0.038363 0.032476 0.028864 0.015639 0.057122 0.010832 0.035705 0.030359 0.028381 0.015951 0.278472 0.015556 0.015507 0.030328 0.028222 0.016076 0.063356 0.027587 0.019200 0.020812 0.086911 0.041412 0.017900 0.005654 0.086911 0.042033 0.001502 0.020604 0.063422 0.039487 0.133891 +0.481008 +0.029274 0.039914 0.029499 0.031259 0.018172 0.069899 0.011293 0.036026 0.028305 0.029736 0.015266 0.047597 0.015516 0.015710 0.030660 0.030414 0.016486 0.078646 0.027390 0.019820 0.021414 0.110401 0.037735 0.018777 0.004741 0.110401 0.041980 0.001790 0.019904 0.086911 0.040921 0.133891 +0.264396 +0.030918 0.039835 0.030260 0.028911 0.015577 0.200229 0.009776 0.035240 0.030527 0.033938 0.014415 0.141913 0.015264 0.016415 0.031564 0.028684 0.014113 0.061723 0.029066 0.020652 0.020813 0.086911 0.038154 0.015750 0.011275 0.063422 0.037986 0.002134 0.019790 0.063422 0.041307 0.157380 +0.373772 +0.030496 0.036799 0.029811 0.028814 0.014170 0.022062 0.009730 0.036755 0.029535 0.028600 0.015624 0.084835 0.015741 0.015979 0.028239 0.028378 0.017621 0.029106 0.028816 0.019579 0.020994 0.086911 0.038436 0.013423 0.005764 0.133891 0.040040 0.000788 0.019126 0.133891 0.038646 0.204360 +0.002598 +0.029009 0.039045 0.044838 0.028251 0.014524 0.136888 0.011178 0.036960 0.028498 0.028696 0.016302 0.154380 0.015293 0.015724 0.031518 0.034302 0.014353 0.053597 0.027933 0.020425 0.021690 0.110401 0.040316 0.012936 0.010873 0.063422 0.038790 0.001159 0.020332 0.110401 0.040331 0.133891 +0.438335 +0.029136 0.038158 0.028342 0.028804 0.018638 0.024257 0.011516 0.036592 0.031433 0.028521 0.017406 0.042336 0.016381 0.015723 0.030157 0.029909 0.016207 0.081752 0.029072 0.019557 0.021260 0.157380 0.041326 0.012583 0.006484 0.063422 0.040831 0.000143 0.019838 0.157380 0.039018 0.180870 +0.084737 +0.028778 0.039054 0.030988 0.029669 0.017671 0.026171 0.010200 0.036748 0.032046 0.030499 0.017258 0.130969 0.016227 0.015556 0.029747 0.029558 0.015894 0.060603 0.028723 0.020809 0.022640 0.063422 0.040414 0.017838 0.007825 0.063422 0.040637 0.000250 0.019465 0.110401 0.038048 0.133891 +0.211213 +0.029560 0.038594 0.031334 0.033371 0.016435 0.111240 0.011548 0.035492 0.028444 0.028811 0.015122 0.020848 0.016151 0.016227 0.028218 0.029282 0.017411 0.082605 0.028636 0.019266 0.020684 0.063422 0.040878 0.017368 0.013907 0.133891 0.041893 0.001456 0.020417 0.063422 0.039212 0.180870 +0.082177 +0.029697 0.033086 0.030018 0.029649 0.016463 0.147281 0.011332 0.036409 0.028729 0.029306 0.014810 0.124891 0.015488 0.016336 0.029237 0.028543 0.016558 0.026036 0.028185 0.019046 0.021950 0.110401 0.041205 0.018609 0.008515 0.157380 0.039134 0.000451 0.019853 0.063422 0.040124 0.180870 +0.215981 +0.032546 0.036201 0.029808 0.029097 0.018744 0.138651 0.011565 0.036343 0.029504 0.029622 0.018097 0.191442 0.015472 0.016389 0.035022 0.035563 0.014982 0.084937 0.027769 0.020159 0.018933 0.063422 0.041039 0.014254 0.013484 0.133891 0.040365 0.000464 0.021086 0.157380 0.039891 0.180870 +0.427025 +0.031701 0.034196 0.028640 0.031147 0.018613 0.018021 0.011679 0.036466 0.029993 0.030332 0.017185 0.055071 0.015459 0.015707 0.035326 0.029603 0.017897 0.051569 0.029425 0.020622 0.023409 0.086911 0.041336 0.016937 0.007912 0.063422 0.037666 0.000188 0.021041 0.133891 0.041499 0.157380 +0.020032 +0.030838 0.039624 0.028770 0.029337 0.014314 0.060098 0.010220 0.036765 0.034900 0.028535 0.016400 0.106749 0.016252 0.015563 0.029701 0.031360 0.018131 0.070264 0.028129 0.018822 0.019111 0.086911 0.038242 0.013795 0.006732 0.110401 0.040668 0.000079 0.020483 0.110401 0.041392 0.133891 +0.317484 +0.031560 0.039833 0.028292 0.034118 0.017404 0.229803 0.010511 0.036165 0.030580 0.034816 0.014120 0.179680 0.016313 0.015946 0.029261 0.029377 0.016369 0.021061 0.026725 0.019274 0.023356 0.063422 0.037841 0.015532 0.009694 0.063422 0.038171 0.002030 0.019786 0.086911 0.039407 0.133891 +0.447900 +0.031368 0.035091 0.029431 0.029908 0.016916 0.038945 0.010973 0.036030 0.028549 0.028314 0.015127 0.094932 0.015973 0.015533 0.031714 0.028281 0.015430 0.061243 0.028832 0.019027 0.022869 0.110401 0.040095 0.014399 0.013655 0.110401 0.038064 0.001459 0.019556 0.086911 0.041984 0.133891 +0.160112 +0.029822 0.035294 0.029606 0.030040 0.016649 0.033580 0.009734 0.036044 0.030999 0.030270 0.017997 0.287746 0.015612 0.015973 0.028773 0.028904 0.017003 0.087913 0.029417 0.018805 0.021827 0.086911 0.038857 0.017188 0.013054 0.133891 0.041522 0.000349 0.019100 0.133891 0.039151 0.157380 +0.565643 +0.031478 0.039290 0.028343 0.032000 0.014498 0.039151 0.010367 0.036943 0.029041 0.030134 0.015091 0.059913 0.015694 0.015790 0.032897 0.031052 0.017660 0.139465 0.028836 0.019992 0.021590 0.110401 0.038179 0.016065 0.010968 0.063422 0.041869 0.001217 0.019465 0.110401 0.038407 0.204360 +0.214634 +0.030322 0.036448 0.029469 0.029963 0.017557 0.042294 0.009948 0.037362 0.030133 0.029340 0.018132 0.045915 0.016336 0.016380 0.028734 0.034901 0.017491 0.186215 0.027782 0.020850 0.018830 0.086911 0.038088 0.015575 0.008740 0.086911 0.038130 0.000066 0.019054 0.157380 0.042100 0.180870 +0.394032 +0.031273 0.033139 0.029487 0.031085 0.015880 0.100127 0.011510 0.036793 0.032084 0.029568 0.014099 0.085428 0.015187 0.016007 0.032215 0.031093 0.016799 0.149218 0.029133 0.019276 0.018816 0.110401 0.037789 0.014726 0.006332 0.133891 0.042149 0.002171 0.019983 0.086911 0.038450 0.157380 +0.426274 +0.031653 0.036981 0.030690 0.031008 0.015515 0.032515 0.011700 0.036709 0.028475 0.028259 0.016983 0.076654 0.016385 0.015806 0.032597 0.030856 0.017696 0.568820 0.027755 0.020693 0.019617 0.086911 0.040221 0.017359 0.006508 0.086911 0.037754 0.000836 0.020541 0.110401 0.040020 0.133891 +0.867374 +0.029838 0.039760 0.029108 0.029296 0.018111 0.083389 0.011015 0.037547 0.030763 0.030787 0.016231 0.201230 0.015309 0.016147 0.029307 0.030927 0.017563 0.114862 0.026857 0.019368 0.018939 0.086911 0.040850 0.014604 0.007587 0.063422 0.042184 0.001887 0.019739 0.086911 0.040742 0.157380 +0.462809 +0.032472 0.037978 0.029225 0.031812 0.015878 0.079535 0.010162 0.037514 0.029034 0.028786 0.017927 0.174581 0.016144 0.015905 0.028222 0.029324 0.018733 0.107862 0.027526 0.020693 0.021500 0.063422 0.038777 0.016135 0.007158 0.086911 0.040090 0.001134 0.020439 0.110401 0.040376 0.133891 +0.432271 +0.032286 0.039574 0.028725 0.031967 0.016770 0.042394 0.010770 0.037369 0.033718 0.028971 0.015806 0.033246 0.015708 0.015547 0.028569 0.028511 0.018520 0.076196 0.029006 0.019327 0.019994 0.180870 0.038863 0.012044 0.011662 0.086911 0.041971 0.001272 0.020663 0.133891 0.038917 0.204360 +0.052519 +0.028436 0.036110 0.029106 0.032045 0.018628 0.122747 0.010034 0.035902 0.029939 0.037076 0.014567 0.107943 0.015115 0.016055 0.028251 0.029643 0.018070 0.081628 0.026558 0.021032 0.019703 0.086911 0.040833 0.016365 0.012617 0.110401 0.039847 0.001564 0.019346 0.133891 0.041815 0.157380 +0.358288 +0.029528 0.038304 0.031119 0.029018 0.016848 0.060591 0.009932 0.036942 0.032465 0.034281 0.015910 0.020091 0.015160 0.015897 0.028666 0.029086 0.015210 0.153442 0.027232 0.020001 0.020376 0.157380 0.042189 0.012153 0.012208 0.063422 0.041510 0.001482 0.019710 0.063422 0.039509 0.180870 +0.130096 +0.029475 0.036908 0.028564 0.028885 0.018009 0.041073 0.010648 0.035983 0.029505 0.028407 0.016313 0.023665 0.016247 0.015832 0.028481 0.028983 0.016739 0.202809 0.029725 0.020199 0.021662 0.133891 0.040224 0.017328 0.010242 0.133891 0.041055 0.001340 0.020532 0.180870 0.038505 0.204360 +0.290073 +0.030009 0.033084 0.028839 0.029362 0.018140 0.082133 0.010764 0.037350 0.031563 0.029447 0.014588 0.068319 0.015579 0.015659 0.028583 0.029011 0.014585 0.043147 0.029138 0.019794 0.022232 0.086911 0.040305 0.013683 0.007852 0.063422 0.039835 0.000737 0.019304 0.063422 0.038959 0.133891 +0.133572 +0.030892 0.037107 0.030062 0.029009 0.014420 0.172456 0.011681 0.035878 0.030099 0.030405 0.015531 0.130904 0.015771 0.015537 0.028864 0.035449 0.018699 0.027681 0.028959 0.019804 0.022292 0.133891 0.042186 0.012287 0.005856 0.110401 0.039683 0.000506 0.020009 0.110401 0.041926 0.157380 +0.353826 +0.032212 0.036984 0.030843 0.033081 0.018277 0.151475 0.011573 0.036115 0.032002 0.028230 0.016220 0.078117 0.016194 0.016076 0.031069 0.033637 0.017406 0.019250 0.029989 0.019520 0.019792 0.110401 0.038688 0.018402 0.011838 0.086911 0.041636 0.001589 0.021067 0.110401 0.038260 0.157380 +0.156056 +0.031392 0.039806 0.033495 0.028260 0.017873 0.056043 0.009542 0.035685 0.032190 0.029013 0.018297 0.072568 0.015774 0.015647 0.034935 0.031745 0.016268 0.096680 0.028035 0.019158 0.022649 0.063422 0.037985 0.013987 0.010030 0.157380 0.040684 0.001289 0.019115 0.133891 0.042254 0.180870 +0.275048 +0.032792 0.033980 0.028984 0.034389 0.014740 0.038166 0.011669 0.037304 0.032807 0.034905 0.015462 0.025992 0.015365 0.015673 0.028659 0.028267 0.014868 0.120034 0.028572 0.019168 0.020589 0.180870 0.040619 0.018652 0.006789 0.180870 0.038189 0.001093 0.020392 0.063422 0.039251 0.204360 +0.085445 +0.028319 0.035462 0.033187 0.032870 0.016717 0.088155 0.010135 0.037279 0.029201 0.029020 0.017437 0.072120 0.016155 0.016369 0.028546 0.030894 0.014680 0.055842 0.029549 0.019491 0.018952 0.086911 0.039976 0.013577 0.009914 0.063422 0.040209 0.000677 0.018941 0.063422 0.039821 0.133891 +0.147256 +0.032011 0.033029 0.030844 0.030588 0.017285 0.120400 0.010929 0.035301 0.029944 0.028582 0.014773 0.074546 0.015558 0.016336 0.038062 0.034469 0.017357 0.134024 0.029695 0.019710 0.020814 0.110401 0.039484 0.018597 0.007152 0.086911 0.041751 0.002158 0.019524 0.086911 0.038492 0.157380 +0.291178 +0.028957 0.038698 0.028769 0.030034 0.017179 0.031593 0.010001 0.035692 0.029528 0.028535 0.018507 0.128111 0.016098 0.015503 0.029256 0.028794 0.017308 0.019304 0.028793 0.020828 0.020678 0.110401 0.039012 0.013436 0.012108 0.063422 0.041038 0.000423 0.020533 0.063422 0.041724 0.133891 +0.105310 +0.028614 0.034108 0.028362 0.035682 0.016326 0.067549 0.010534 0.036274 0.034894 0.028734 0.014648 0.140964 0.015435 0.015902 0.028433 0.029350 0.017643 0.117272 0.029798 0.020707 0.020355 0.063422 0.038597 0.014251 0.010675 0.086911 0.039944 0.001253 0.020573 0.110401 0.041060 0.204360 +0.357086 +0.029988 0.033109 0.030235 0.035846 0.016678 0.025065 0.011320 0.035500 0.028927 0.030619 0.016055 0.065985 0.015120 0.016239 0.029122 0.031325 0.017006 0.323454 0.027240 0.019092 0.021747 0.063422 0.037614 0.014976 0.006327 0.063422 0.041060 0.000941 0.019725 0.133891 0.040930 0.157380 +0.552604 +0.031004 0.033573 0.030022 0.030806 0.018337 0.024398 0.011538 0.036267 0.030344 0.030071 0.015958 0.103358 0.015333 0.016050 0.033457 0.029390 0.018479 0.128813 0.029186 0.019219 0.022486 0.063422 0.038179 0.017255 0.007213 0.157380 0.042188 0.000397 0.019999 0.063422 0.038837 0.204360 +0.257266 +0.032150 0.035695 0.029852 0.030656 0.014612 0.177292 0.010374 0.035439 0.031934 0.029930 0.016818 0.023911 0.015943 0.016119 0.030022 0.028249 0.016842 0.043873 0.030113 0.020493 0.022899 0.157380 0.042147 0.012190 0.010073 0.110401 0.038119 0.001319 0.018914 0.157380 0.040287 0.204360 +0.184271 +0.031845 0.034112 0.031855 0.028534 0.016910 0.029704 0.010072 0.036170 0.030715 0.028306 0.016132 0.021061 0.015490 0.016270 0.032844 0.030143 0.015043 0.028198 0.026984 0.020122 0.022733 0.133891 0.038956 0.012216 0.011643 0.063422 0.040582 0.002333 0.020181 0.133891 0.037756 0.157380 +0 +0.032708 0.039391 0.028999 0.029154 0.015961 0.328639 0.009976 0.036848 0.030293 0.029137 0.015124 0.192748 0.015969 0.016103 0.029319 0.037475 0.015114 0.131467 0.028922 0.019731 0.020172 0.110401 0.040552 0.015439 0.012141 0.063422 0.041028 0.000932 0.020499 0.063422 0.037715 0.157380 +0.816063 +0.031924 0.038955 0.028594 0.031024 0.017322 0.195283 0.011119 0.035321 0.038501 0.032349 0.017233 0.071384 0.015751 0.015829 0.035681 0.028594 0.017313 0.061414 0.028317 0.020587 0.022195 0.110401 0.041786 0.012232 0.014031 0.110401 0.037601 0.000432 0.018927 0.086911 0.038083 0.133891 +0.447089 +0.031340 0.036371 0.028706 0.037031 0.018407 0.074673 0.011252 0.035945 0.032594 0.030959 0.017578 0.050997 0.015164 0.015709 0.028797 0.032804 0.014208 0.038521 0.028562 0.019765 0.019865 0.063422 0.038705 0.012867 0.013211 0.086911 0.040713 0.000796 0.019910 0.133891 0.039407 0.204360 +0.006251 +0.028980 0.039127 0.031686 0.033355 0.014723 0.065091 0.009624 0.036301 0.028808 0.031037 0.017917 0.059579 0.015611 0.015875 0.031455 0.037424 0.017393 0.033587 0.028855 0.019396 0.019006 0.180870 0.038832 0.017391 0.006609 0.086911 0.040135 0.001701 0.019335 0.157380 0.041169 0.204360 +0.044592 +0.031892 0.035743 0.028337 0.030324 0.015601 0.023643 0.011087 0.035702 0.028689 0.028635 0.014706 0.097650 0.015871 0.015804 0.028328 0.031287 0.016804 0.098661 0.027162 0.020532 0.022983 0.110401 0.042227 0.015592 0.007312 0.133891 0.040435 0.001826 0.019641 0.133891 0.037790 0.157380 +0.201524 +0.029426 0.038380 0.029280 0.028719 0.016327 0.143048 0.009482 0.036430 0.029454 0.032902 0.015308 0.074422 0.015511 0.015806 0.028895 0.028605 0.015361 0.097814 0.027552 0.020461 0.022922 0.110401 0.038474 0.013525 0.013583 0.086911 0.038699 0.000936 0.020356 0.086911 0.039943 0.133891 +0.414805 +0.028401 0.036643 0.029692 0.028826 0.014431 0.016666 0.011184 0.035857 0.029648 0.030868 0.015523 0.062980 0.015087 0.016144 0.028850 0.030912 0.014486 0.051774 0.026658 0.019819 0.021509 0.157380 0.041828 0.017265 0.013277 0.133891 0.038299 0.000200 0.021058 0.180870 0.042044 0.204360 +0.038983 +0.030479 0.035918 0.031828 0.028332 0.015452 0.035100 0.010841 0.035612 0.034938 0.031495 0.014307 0.041615 0.016075 0.015573 0.029422 0.032757 0.018097 0.032377 0.028364 0.019092 0.020882 0.063422 0.037647 0.012944 0.008597 0.086911 0.041401 0.001465 0.019900 0.086911 0.039597 0.133891 +0.017545 +0.030140 0.033097 0.029697 0.029689 0.018070 0.156383 0.011033 0.036254 0.033591 0.035953 0.014518 0.180315 0.015623 0.016108 0.029262 0.034563 0.017790 0.143095 0.028249 0.019616 0.020174 0.133891 0.038429 0.015244 0.008471 0.180870 0.039943 0.001445 0.019414 0.180870 0.038222 0.204360 +0.632760 +0.030954 0.037174 0.028930 0.029078 0.017307 0.142724 0.011576 0.036580 0.034024 0.030330 0.018416 0.295851 0.015714 0.016402 0.028785 0.031842 0.016117 0.087968 0.026221 0.019447 0.020368 0.157380 0.038195 0.013262 0.010544 0.133891 0.038041 0.000102 0.018950 0.180870 0.042074 0.204360 +0.661890 +0.029718 0.036290 0.029197 0.032162 0.014158 0.076994 0.010731 0.037350 0.029770 0.031698 0.017347 0.111498 0.015974 0.015728 0.028716 0.028652 0.014288 0.017258 0.026448 0.020474 0.019662 0.110401 0.038324 0.013848 0.008612 0.063422 0.037764 0.000525 0.020037 0.086911 0.038791 0.133891 +0.203627 +0.030164 0.039522 0.028443 0.028586 0.014106 0.022687 0.010465 0.036187 0.030347 0.028391 0.014773 0.096731 0.015293 0.015890 0.028666 0.031843 0.017230 0.036152 0.027713 0.018863 0.022154 0.086911 0.037894 0.016157 0.007526 0.063422 0.038322 0.001012 0.018894 0.110401 0.042055 0.157380 +0.097193 +0.030505 0.038618 0.030238 0.032403 0.017018 0.031682 0.011548 0.035965 0.032136 0.028887 0.018683 0.221097 0.015555 0.016225 0.029653 0.032079 0.018328 0.018614 0.028632 0.019632 0.021610 0.157380 0.040717 0.018281 0.008175 0.063422 0.038538 0.001787 0.020256 0.086911 0.040695 0.180870 +0.274195 +0.032135 0.034902 0.029142 0.030940 0.018501 0.059973 0.009755 0.037155 0.029613 0.029477 0.017253 0.100732 0.015867 0.015555 0.032683 0.028357 0.017662 0.204208 0.028619 0.021092 0.022129 0.063422 0.038347 0.016497 0.013232 0.110401 0.038094 0.001365 0.020814 0.110401 0.042082 0.133891 +0.502065 +0.030149 0.035659 0.029368 0.036251 0.016356 0.203139 0.011402 0.036108 0.033543 0.028358 0.015330 0.109573 0.015895 0.016056 0.028991 0.028740 0.016500 0.017152 0.030848 0.018822 0.020752 0.063422 0.039379 0.017236 0.013416 0.063422 0.040720 0.001344 0.020081 0.110401 0.039247 0.133891 +0.420921 +0.029121 0.036556 0.028379 0.035139 0.018339 0.063970 0.009505 0.036303 0.030332 0.028203 0.014271 0.106435 0.016269 0.015965 0.029979 0.029256 0.016413 0.069822 0.025358 0.020278 0.020561 0.086911 0.041360 0.013319 0.011402 0.110401 0.041151 0.002312 0.019859 0.086911 0.040839 0.133891 +0.193228 +0.030606 0.039116 0.028637 0.037551 0.015804 0.213172 0.010161 0.037456 0.035784 0.031998 0.015643 0.283042 0.015260 0.015516 0.033945 0.028260 0.014396 0.060043 0.028834 0.019080 0.019203 0.157380 0.037855 0.015947 0.009253 0.157380 0.041229 0.001421 0.021056 0.133891 0.039403 0.180870 +0.694490 +0.028419 0.039724 0.029236 0.029160 0.017035 0.095804 0.010468 0.035828 0.029634 0.029139 0.015002 0.147461 0.015238 0.015525 0.029470 0.029255 0.016360 0.057974 0.028693 0.020406 0.021464 0.157380 0.039004 0.014995 0.012404 0.180870 0.037865 0.002094 0.018839 0.157380 0.041750 0.204360 +0.333399 +0.032357 0.037804 0.032507 0.031646 0.018037 0.018514 0.010898 0.037167 0.033610 0.028300 0.015824 0.051641 0.015881 0.016103 0.029001 0.028508 0.016620 0.214303 0.028215 0.019081 0.019241 0.133891 0.041193 0.012647 0.013919 0.133891 0.037987 0.002059 0.020824 0.086911 0.041970 0.157380 +0.362186 +0.028700 0.039642 0.031613 0.028565 0.015467 0.045400 0.010364 0.036068 0.028354 0.035908 0.016253 0.086383 0.016323 0.015915 0.030346 0.032125 0.014223 0.097677 0.028221 0.019917 0.022174 0.157380 0.039325 0.016878 0.008866 0.110401 0.040149 0.000888 0.019778 0.157380 0.037643 0.180870 +0.195713 +0.032442 0.033947 0.030409 0.033062 0.016193 0.041056 0.010653 0.036234 0.029074 0.034909 0.016724 0.041288 0.015072 0.015839 0.034817 0.028278 0.016557 0.276931 0.027367 0.019153 0.020284 0.133891 0.039895 0.012685 0.006874 0.063422 0.038762 0.001925 0.019285 0.063422 0.039497 0.157380 +0.436572 +0.028869 0.037286 0.035852 0.028223 0.014598 0.036726 0.010176 0.036476 0.031545 0.029760 0.014671 0.016672 0.016022 0.016150 0.029272 0.042918 0.015933 0.166049 0.028153 0.020359 0.020268 0.133891 0.041350 0.013847 0.009455 0.157380 0.039878 0.002170 0.019167 0.133891 0.040758 0.204360 +0.084109 +0.030621 0.034669 0.029178 0.028866 0.017433 0.021034 0.010045 0.036162 0.028680 0.029430 0.017516 0.246875 0.015914 0.016399 0.031853 0.029434 0.018362 0.021862 0.029787 0.021007 0.021485 0.063422 0.038376 0.016878 0.010479 0.086911 0.039167 0.002277 0.018837 0.133891 0.038100 0.180870 +0.290490 +0.028576 0.036009 0.028924 0.030461 0.015662 0.099478 0.010677 0.036173 0.030865 0.028879 0.016541 0.029058 0.015457 0.015839 0.030756 0.035199 0.017919 0.122853 0.028391 0.019584 0.019448 0.133891 0.040247 0.013745 0.011365 0.110401 0.039962 0.001505 0.018934 0.110401 0.040444 0.157380 +0.279922 +0.030476 0.036638 0.028404 0.029779 0.018676 0.133305 0.010247 0.037213 0.032808 0.030269 0.016743 0.019489 0.015619 0.015991 0.029814 0.028953 0.017830 0.078423 0.026328 0.019294 0.019444 0.063422 0.039348 0.014885 0.010669 0.063422 0.037588 0.000537 0.019670 0.110401 0.041019 0.133891 +0.318824 +0.028311 0.032988 0.035183 0.031775 0.016674 0.051194 0.009830 0.037123 0.030275 0.028287 0.016355 0.089993 0.015154 0.016314 0.029422 0.030494 0.016436 0.113808 0.028957 0.019478 0.019256 0.063422 0.040479 0.014404 0.005752 0.063422 0.037980 0.001228 0.019662 0.133891 0.041486 0.204360 +0.129485 +0.030518 0.032949 0.033769 0.033928 0.018750 0.018696 0.010720 0.035942 0.034872 0.034249 0.016778 0.132224 0.015517 0.016416 0.031544 0.028768 0.015623 0.023452 0.027864 0.021121 0.020478 0.086911 0.040585 0.018585 0.007142 0.063422 0.041774 0.000472 0.020387 0.086911 0.038417 0.133891 +0.082985 +0.032029 0.034758 0.031454 0.030276 0.015884 0.139321 0.010190 0.036830 0.028659 0.029244 0.017704 0.018455 0.015513 0.015778 0.032245 0.034988 0.018775 0.087981 0.026861 0.019252 0.021450 0.110401 0.038952 0.014138 0.012907 0.133891 0.042038 0.000410 0.019292 0.063422 0.042027 0.180870 +0.228628 +0.032391 0.035962 0.028508 0.030325 0.016298 0.059413 0.011214 0.037136 0.028633 0.029337 0.015840 0.097359 0.015358 0.015855 0.031292 0.029176 0.017929 0.024582 0.027761 0.019077 0.020383 0.086911 0.041058 0.015580 0.005337 0.063422 0.042250 0.001905 0.020656 0.086911 0.039798 0.133891 +0.188803 +0.031569 0.034831 0.032657 0.030170 0.015364 0.035538 0.009488 0.035544 0.029441 0.030197 0.017130 0.066431 0.015105 0.015735 0.029145 0.030210 0.016025 0.016832 0.029030 0.020861 0.021527 0.063422 0.041633 0.016608 0.006000 0.086911 0.041978 0.000575 0.019990 0.063422 0.042011 0.157380 +0.001223 +0.031175 0.034931 0.031955 0.028711 0.018422 0.172274 0.011708 0.036260 0.028718 0.028265 0.018183 0.113662 0.016415 0.015652 0.030301 0.028212 0.014153 0.078177 0.028445 0.018855 0.022203 0.086911 0.041446 0.018349 0.010795 0.157380 0.040963 0.001615 0.019516 0.063422 0.038368 0.180870 +0.393729 +0.029671 0.037408 0.031511 0.031768 0.016354 0.056410 0.010999 0.035681 0.031731 0.028418 0.014183 0.290794 0.016376 0.015765 0.036205 0.035286 0.014362 0.025475 0.030577 0.019744 0.019785 0.110401 0.040494 0.017782 0.006552 0.110401 0.038366 0.000479 0.021077 0.063422 0.041935 0.133891 +0.465537 +0.029796 0.036028 0.028592 0.028203 0.017428 0.056710 0.010079 0.037489 0.028326 0.030670 0.015461 0.261393 0.015808 0.015571 0.032230 0.030135 0.014328 0.151717 0.028179 0.021019 0.023063 0.157380 0.038941 0.012968 0.007812 0.180870 0.041967 0.000121 0.020698 0.086911 0.040036 0.204360 +0.604835 +0.032182 0.037053 0.031304 0.030051 0.017165 0.081747 0.011129 0.036254 0.029648 0.032481 0.018328 0.021353 0.015343 0.016062 0.033788 0.028193 0.017300 0.052014 0.029572 0.019539 0.022658 0.110401 0.039067 0.012542 0.010552 0.157380 0.039138 0.001759 0.019039 0.133891 0.037977 0.204360 +0.009633 +0.029132 0.037595 0.031014 0.030392 0.016037 0.070438 0.011738 0.035803 0.033071 0.029196 0.015257 0.112525 0.015165 0.015989 0.028481 0.029016 0.014875 0.103238 0.028946 0.019007 0.022267 0.063422 0.037891 0.014767 0.011232 0.157380 0.038752 0.001385 0.020230 0.133891 0.040296 0.204360 +0.305522 +0.030944 0.033261 0.032537 0.029101 0.014274 0.133691 0.009940 0.037110 0.029034 0.029969 0.016191 0.033389 0.015180 0.015736 0.030491 0.029045 0.016932 0.074763 0.028326 0.019566 0.019497 0.110401 0.037813 0.012388 0.010412 0.133891 0.038197 0.000913 0.020732 0.086911 0.038351 0.204360 +0.283290 +0.032414 0.039541 0.028973 0.032552 0.016177 0.053480 0.011675 0.035465 0.029887 0.033076 0.017651 0.027482 0.015741 0.016353 0.028564 0.030847 0.014156 0.087110 0.026116 0.019356 0.021448 0.133891 0.041901 0.013961 0.004881 0.086911 0.039909 0.000058 0.018793 0.086911 0.042229 0.180870 +0.104332 +0.029124 0.035545 0.028855 0.031752 0.014245 0.419617 0.009709 0.037028 0.031032 0.029801 0.017232 0.044656 0.016035 0.015732 0.031962 0.032378 0.017172 0.100116 0.028827 0.020922 0.021886 0.133891 0.038443 0.018592 0.013857 0.133891 0.038817 0.002331 0.019759 0.133891 0.041233 0.157380 +0.706891 +0.029122 0.037938 0.034005 0.035236 0.018229 0.020818 0.011591 0.037424 0.028368 0.030959 0.015966 0.047723 0.015278 0.016385 0.028301 0.029471 0.016026 0.080069 0.030204 0.020212 0.020397 0.157380 0.041350 0.015308 0.011347 0.133891 0.041058 0.002021 0.020885 0.157380 0.038919 0.180870 +0.060259 +0.031466 0.033160 0.028909 0.032222 0.015200 0.256341 0.009756 0.035260 0.032004 0.029948 0.014843 0.065280 0.015111 0.015509 0.029252 0.030065 0.015168 0.041124 0.029385 0.018938 0.023014 0.133891 0.041292 0.012040 0.008984 0.086911 0.039256 0.002152 0.019190 0.110401 0.037933 0.204360 +0.314451 +0.030405 0.035930 0.038510 0.031569 0.014353 0.019285 0.010474 0.036855 0.031546 0.033001 0.018275 0.036974 0.015772 0.016188 0.029252 0.028761 0.014756 0.026464 0.030161 0.020659 0.019308 0.063422 0.039712 0.016662 0.012723 0.133891 0.039899 0.002289 0.020008 0.063422 0.042183 0.157380 +0 +0.031732 0.037009 0.035580 0.029204 0.018463 0.023603 0.011472 0.035969 0.028468 0.029167 0.014586 0.153306 0.016384 0.016438 0.030021 0.028532 0.017229 0.019410 0.027761 0.020089 0.022524 0.157380 0.038344 0.015028 0.008358 0.157380 0.041372 0.000938 0.020294 0.157380 0.040560 0.180870 +0.194586 +0.030304 0.037966 0.030037 0.030598 0.015587 0.144805 0.009708 0.036996 0.028549 0.034104 0.018354 0.095985 0.015075 0.016043 0.028337 0.029600 0.016471 0.026490 0.030273 0.018940 0.022495 0.110401 0.038702 0.017732 0.009111 0.133891 0.041982 0.001326 0.019483 0.063422 0.038114 0.157380 +0.245440 +0.031368 0.039185 0.029207 0.028836 0.017463 0.016517 0.009748 0.036591 0.028843 0.029074 0.014771 0.051421 0.015394 0.016042 0.028889 0.033029 0.016472 0.039312 0.026094 0.019880 0.021675 0.133891 0.041595 0.016346 0.009332 0.110401 0.038183 0.001692 0.019148 0.133891 0.038726 0.157380 +0.030975 +0.028703 0.039623 0.034714 0.029675 0.018611 1 0.011287 0.035750 0.031217 0.032566 0.014150 0.029888 0.016220 0.016305 0.028326 0.031015 0.014952 0.061384 0.027685 0.020148 0.022996 0.086911 0.040590 0.017020 0.008247 0.086911 0.039345 0.001484 0.019237 0.063422 0.039124 0.133891 +1 +0.028564 0.034137 0.028745 0.031994 0.018388 0.053081 0.010054 0.035783 0.028430 0.029977 0.016366 0.041273 0.015847 0.016329 0.028989 0.029823 0.018548 0.032534 0.028978 0.019834 0.023153 0.157380 0.038238 0.018643 0.006776 0.063422 0.041315 0.000294 0.020036 0.086911 0.037616 0.180870 +0.037582 +0.028673 0.036664 0.029037 0.028485 0.017464 0.032709 0.010074 0.036536 0.029391 0.028422 0.015768 0.049334 0.015486 0.016181 0.028322 0.029416 0.017789 0.129724 0.029640 0.019632 0.018810 0.110401 0.039992 0.014390 0.008450 0.086911 0.041182 0.001938 0.020292 0.063422 0.037862 0.133891 +0.219608 +0.030709 0.039630 0.029943 0.031780 0.015305 0.204351 0.009865 0.035932 0.030714 0.031353 0.018302 0.016463 0.015969 0.016160 0.028464 0.029722 0.017983 0.023209 0.029369 0.019515 0.021540 0.086911 0.038344 0.013859 0.013758 0.086911 0.041612 0.000287 0.021012 0.157380 0.040030 0.204360 +0.368724 +0.028642 0.037924 0.029411 0.028938 0.018760 0.073415 0.010308 0.036918 0.028553 0.032365 0.017664 0.035037 0.016393 0.015621 0.031898 0.028382 0.018001 0.036822 0.028845 0.019809 0.022727 0.063422 0.037846 0.012771 0.005259 0.063422 0.039934 0.001303 0.019793 0.086911 0.038325 0.180870 +0.021316 +0.029840 0.036595 0.031898 0.038126 0.017636 0.047201 0.010685 0.037567 0.028710 0.031650 0.015818 0.118068 0.015620 0.015657 0.029146 0.032112 0.014578 0.055195 0.025781 0.018889 0.020411 0.110401 0.039517 0.012416 0.009855 0.063422 0.037953 0.002264 0.019556 0.086911 0.042232 0.133891 +0.210334 +0.031310 0.038548 0.031828 0.029701 0.018075 0.101247 0.011072 0.035702 0.030551 0.030512 0.017014 0.035724 0.016112 0.016055 0.030836 0.028416 0.014386 0.018160 0.029688 0.019065 0.019889 0.063422 0.038256 0.017600 0.009373 0.110401 0.042063 0.001287 0.020019 0.063422 0.038572 0.133891 +0.142879 +0.032521 0.038726 0.031265 0.031946 0.014360 0.146361 0.010087 0.037188 0.029965 0.030139 0.018203 0.062014 0.016354 0.016314 0.032615 0.030923 0.016575 0.062671 0.028613 0.019456 0.021406 0.086911 0.041104 0.016376 0.009931 0.157380 0.038486 0.000209 0.019854 0.110401 0.041425 0.204360 +0.281370 +0.030464 0.039719 0.030754 0.030551 0.018149 0.174499 0.010062 0.037079 0.034312 0.028356 0.016787 0.022986 0.016150 0.016440 0.029152 0.029298 0.017431 0.158258 0.027096 0.019973 0.020194 0.063422 0.041191 0.015588 0.008319 0.133891 0.037890 0.001223 0.019829 0.133891 0.041620 0.157380 +0.452337 +0.028711 0.035808 0.031768 0.029320 0.015632 0.020794 0.010292 0.036608 0.029933 0.029701 0.017723 0.107090 0.016085 0.016389 0.030820 0.029625 0.018189 0.063677 0.027226 0.019017 0.022358 0.063422 0.037767 0.016236 0.008183 0.086911 0.040630 0.000658 0.020105 0.063422 0.039135 0.133891 +0.148356 +0.029011 0.039120 0.040175 0.029400 0.016477 0.054026 0.009882 0.037086 0.028655 0.028697 0.015932 0.020521 0.015512 0.015509 0.029808 0.029174 0.014741 0.029770 0.026538 0.020181 0.022674 0.063422 0.041286 0.016546 0.005404 0.180870 0.039201 0.002113 0.021019 0.063422 0.040192 0.204360 +0 +0.028191 0.037098 0.028589 0.031215 0.014789 0.141382 0.010111 0.037390 0.032816 0.028738 0.015171 0.026069 0.015480 0.015876 0.029064 0.028830 0.017259 0.058180 0.030072 0.019067 0.021225 0.133891 0.038854 0.018644 0.009498 0.180870 0.038939 0.000374 0.019598 0.063422 0.041006 0.204360 +0.214263 +0.032260 0.038946 0.029901 0.032675 0.015154 0.088197 0.009831 0.036741 0.029250 0.028208 0.016032 0.127488 0.015569 0.015801 0.030901 0.029305 0.014402 0.095791 0.028667 0.019355 0.021151 0.086911 0.039169 0.014767 0.010242 0.063422 0.040180 0.001279 0.020314 0.086911 0.038990 0.204360 +0.291825 +0.030247 0.033857 0.028212 0.033858 0.017019 0.062267 0.010797 0.036961 0.028634 0.029456 0.017640 0.129085 0.015550 0.015570 0.028436 0.033294 0.018569 0.071766 0.026037 0.019740 0.019839 0.133891 0.040739 0.015427 0.006778 0.086911 0.039605 0.002310 0.018794 0.063422 0.040972 0.180870 +0.207183 +0.032016 0.037468 0.028355 0.028317 0.018376 0.021212 0.010013 0.037336 0.032158 0.029333 0.016713 0.020288 0.016335 0.016293 0.028881 0.029933 0.014352 0.052260 0.027536 0.020732 0.022542 0.086911 0.040757 0.012390 0.011347 0.180870 0.039029 0.002180 0.019063 0.157380 0.038954 0.204360 +0 +0.030360 0.037434 0.028620 0.028269 0.017978 0.024196 0.011043 0.035749 0.029248 0.029495 0.014919 0.034920 0.016085 0.016264 0.028330 0.032255 0.016857 0.071955 0.026049 0.019740 0.019778 0.063422 0.039630 0.013259 0.005137 0.133891 0.040099 0.000805 0.021061 0.133891 0.041894 0.157380 +0.038096 +0.028552 0.039899 0.028648 0.029951 0.016302 0.061543 0.010348 0.036151 0.030148 0.029608 0.016985 0.082584 0.015316 0.016325 0.031394 0.028556 0.015351 0.176432 0.026021 0.018948 0.022722 0.110401 0.039525 0.012930 0.011921 0.110401 0.038902 0.002178 0.020189 0.110401 0.040738 0.133891 +0.469100 +0.032139 0.037070 0.029760 0.034542 0.014227 0.074176 0.010388 0.036416 0.029330 0.031878 0.017494 0.224595 0.015852 0.016132 0.031314 0.029642 0.016739 0.052395 0.027533 0.020476 0.021553 0.133891 0.041224 0.014344 0.007922 0.086911 0.041583 0.001621 0.020594 0.086911 0.041944 0.157380 +0.319885 +0.029950 0.033927 0.034587 0.028827 0.016040 0.042472 0.011506 0.037481 0.028546 0.029356 0.018385 0.085437 0.015285 0.015512 0.029096 0.029169 0.014908 0.032692 0.026701 0.019198 0.019148 0.110401 0.039820 0.017655 0.011098 0.157380 0.038175 0.000152 0.019021 0.110401 0.040096 0.180870 +0.060853 +0.032409 0.037575 0.028406 0.030325 0.017812 0.018452 0.009456 0.037240 0.028800 0.031899 0.016367 0.025131 0.015540 0.015577 0.029530 0.028697 0.016071 0.102047 0.028645 0.019973 0.019597 0.133891 0.040222 0.011882 0.007162 0.110401 0.041393 0.001483 0.019099 0.110401 0.041601 0.157380 +0.052351 +0.028632 0.038660 0.028290 0.032583 0.016806 0.022868 0.010202 0.037210 0.030408 0.028532 0.014658 0.078763 0.015237 0.016024 0.030827 0.030378 0.016473 0.051347 0.026658 0.020377 0.020087 0.110401 0.041329 0.014319 0.009859 0.110401 0.037997 0.002082 0.020060 0.110401 0.040606 0.157380 +0.039283 +0.032170 0.038490 0.033826 0.029432 0.018353 0.154343 0.010308 0.037297 0.031523 0.031639 0.018243 0.269219 0.016316 0.015967 0.028264 0.033718 0.016029 0.074390 0.029044 0.019962 0.020568 0.157380 0.041926 0.012214 0.010781 0.086911 0.039993 0.001914 0.019317 0.063422 0.041253 0.180870 +0.660342 +0.030626 0.039827 0.034187 0.029577 0.016775 0.204890 0.010317 0.035679 0.028480 0.030333 0.015143 0.114575 0.015841 0.015672 0.028420 0.031624 0.016821 0.178053 0.028410 0.019651 0.020575 0.110401 0.039500 0.018098 0.009212 0.086911 0.038681 0.000333 0.019121 0.063422 0.038499 0.133891 +0.590473 +0.029315 0.035394 0.032879 0.029863 0.014507 0.096568 0.011161 0.035423 0.029673 0.031098 0.016763 0.103595 0.016053 0.016181 0.029126 0.030717 0.015010 0.078548 0.027414 0.020824 0.021298 0.086911 0.039683 0.015924 0.008412 0.063422 0.039565 0.001640 0.019821 0.133891 0.038152 0.157380 +0.327466 +0.029675 0.039759 0.028743 0.036948 0.015903 0.092848 0.011245 0.036503 0.029188 0.029951 0.016200 0.024721 0.016197 0.016266 0.031135 0.029541 0.018156 0.021445 0.029103 0.018834 0.019879 0.110401 0.040501 0.016580 0.008288 0.133891 0.038711 0.000511 0.019261 0.157380 0.040073 0.204360 +0.002013 +0.032829 0.037223 0.028731 0.029809 0.018050 0.048390 0.011136 0.035929 0.030342 0.029967 0.018747 0.045210 0.015412 0.015766 0.031618 0.035668 0.017767 0.038528 0.029621 0.019398 0.020009 0.086911 0.041201 0.017296 0.009040 0.110401 0.038417 0.001913 0.020617 0.086911 0.040839 0.133891 +0.060184 +0.029706 0.034539 0.030314 0.028274 0.015480 0.092707 0.011367 0.036535 0.028855 0.030295 0.016985 0.082001 0.016246 0.015572 0.028980 0.030747 0.016770 0.130152 0.029316 0.020030 0.020517 0.157380 0.038433 0.017443 0.010285 0.063422 0.037772 0.001959 0.020176 0.133891 0.040498 0.180870 +0.359924 +0.030768 0.034822 0.029132 0.036415 0.018068 0.057106 0.011454 0.037136 0.031805 0.030755 0.015672 0.139413 0.015866 0.015621 0.031023 0.028909 0.015096 0.313499 0.029738 0.020874 0.022565 0.086911 0.042007 0.012371 0.004796 0.063422 0.040715 0.000641 0.021133 0.063422 0.038227 0.133891 +0.708978 +0.029423 0.037079 0.031877 0.029910 0.015760 0.211599 0.010726 0.036677 0.031976 0.030089 0.017770 0.043255 0.015257 0.016176 0.032597 0.031076 0.018528 0.034052 0.028617 0.019720 0.019269 0.063422 0.040843 0.012058 0.013499 0.086911 0.041402 0.002304 0.018896 0.110401 0.039369 0.133891 +0.318904 +0.029516 0.033958 0.028843 0.033361 0.016864 0.066070 0.011447 0.037135 0.032273 0.031236 0.014513 0.017557 0.015730 0.015818 0.030242 0.036917 0.018040 0.119137 0.027083 0.020022 0.022109 0.157380 0.039140 0.016020 0.011110 0.180870 0.040246 0.000886 0.020767 0.086911 0.038788 0.204360 +0.117210 +0.032379 0.039031 0.028907 0.033713 0.017457 0.093249 0.009968 0.035623 0.029230 0.028693 0.018718 0.017775 0.016351 0.016436 0.029314 0.028994 0.016308 0.175634 0.028312 0.020461 0.022373 0.063422 0.041420 0.016527 0.004990 0.063422 0.037721 0.001237 0.020752 0.110401 0.038348 0.157380 +0.329227 +0.028327 0.038955 0.028308 0.028211 0.018318 0.022180 0.010549 0.036058 0.030917 0.028273 0.018620 0.062206 0.015269 0.015711 0.029331 0.028869 0.015639 0.075335 0.026962 0.019129 0.022150 0.063422 0.038422 0.013035 0.011985 0.063422 0.040381 0.001368 0.019287 0.133891 0.039111 0.204360 +0.017119 +0.029991 0.036434 0.032525 0.028887 0.014564 0.341567 0.010345 0.037160 0.031359 0.029049 0.015188 0.073074 0.015614 0.016197 0.034847 0.032251 0.018318 0.042175 0.026411 0.019238 0.021623 0.180870 0.039069 0.015380 0.004755 0.157380 0.039927 0.000046 0.018924 0.063422 0.038531 0.204360 +0.508548 +0.030752 0.033504 0.028473 0.031848 0.016526 0.023195 0.010197 0.035895 0.030537 0.030723 0.015462 0.034413 0.016097 0.016154 0.035446 0.028943 0.017121 0.027820 0.026120 0.020544 0.020144 0.180870 0.038493 0.014319 0.005199 0.133891 0.040814 0.002227 0.019256 0.157380 0.042019 0.204360 +0.005860 +0.031317 0.037574 0.028460 0.029922 0.015963 0.045309 0.009969 0.035624 0.030233 0.028491 0.017821 0.179291 0.016121 0.015603 0.031562 0.033551 0.018197 0.021198 0.026781 0.019710 0.018885 0.110401 0.039785 0.015931 0.012031 0.086911 0.040976 0.001933 0.020828 0.133891 0.037659 0.157380 +0.171843 +0.030878 0.035791 0.032148 0.029056 0.014547 0.080868 0.011120 0.037052 0.033244 0.032904 0.015997 0.079826 0.016071 0.015731 0.029608 0.028795 0.015647 0.126031 0.029745 0.018802 0.022814 0.180870 0.039558 0.016811 0.013904 0.157380 0.038121 0.000579 0.019687 0.063422 0.041711 0.204360 +0.313237 +0.028436 0.036821 0.028755 0.029023 0.015032 0.073668 0.009886 0.036432 0.029231 0.028651 0.014646 0.035779 0.015905 0.015921 0.029079 0.029068 0.018335 0.139599 0.027325 0.020066 0.021403 0.086911 0.039703 0.012436 0.006789 0.063422 0.039640 0.000230 0.019593 0.157380 0.040286 0.204360 +0.210015 +0.029960 0.033144 0.028895 0.033406 0.018564 0.067474 0.011023 0.037316 0.028568 0.030221 0.014495 0.058070 0.015506 0.016028 0.030462 0.032520 0.018285 0.154632 0.028589 0.021109 0.019056 0.086911 0.040456 0.018621 0.013032 0.086911 0.041805 0.000470 0.018859 0.086911 0.038246 0.133891 +0.235438 +0.030163 0.039921 0.031173 0.028224 0.018719 0.122834 0.009535 0.035852 0.031851 0.031368 0.014421 0.047011 0.015654 0.015889 0.034611 0.030250 0.014509 0.046037 0.029116 0.020381 0.020749 0.133891 0.039598 0.015922 0.012492 0.063422 0.040009 0.002179 0.020090 0.133891 0.041886 0.180870 +0.208329 +0.031000 0.035319 0.030896 0.029810 0.015612 0.056934 0.009709 0.036164 0.028664 0.031064 0.015946 0.039507 0.016267 0.016416 0.028959 0.029441 0.014824 0.069434 0.030291 0.020090 0.021711 0.110401 0.037826 0.016133 0.004911 0.110401 0.038071 0.000711 0.019137 0.086911 0.041395 0.157380 +0.102053 +0.029531 0.034895 0.028711 0.029134 0.015796 0.045376 0.011064 0.035401 0.028938 0.028425 0.016945 0.030159 0.015911 0.015691 0.029413 0.029648 0.015167 0.029736 0.026510 0.020936 0.019626 0.086911 0.038255 0.013258 0.005680 0.157380 0.040537 0.001287 0.020365 0.086911 0.040680 0.204360 +0 +0.030047 0.033385 0.028685 0.028685 0.018754 0.177022 0.011627 0.037451 0.032726 0.028435 0.018134 0.021001 0.015664 0.015882 0.030383 0.028208 0.016785 0.088305 0.029199 0.020989 0.019313 0.133891 0.041156 0.018519 0.005440 0.133891 0.038901 0.002237 0.020359 0.133891 0.042000 0.157380 +0.298668 +0.030655 0.037828 0.028602 0.029200 0.014369 0.152966 0.010016 0.035504 0.029749 0.029479 0.016115 0.031345 0.015599 0.015597 0.029387 0.030698 0.014996 0.236169 0.029050 0.018847 0.020107 0.133891 0.040455 0.016453 0.012435 0.086911 0.040436 0.002292 0.019705 0.110401 0.039720 0.157380 +0.513087 +0.032710 0.039370 0.029006 0.033623 0.017359 0.394417 0.010597 0.037205 0.028858 0.028611 0.015021 0.056002 0.015509 0.016168 0.032533 0.035924 0.015579 0.021822 0.027925 0.018897 0.023117 0.063422 0.042258 0.016322 0.010542 0.063422 0.038311 0.002029 0.019848 0.110401 0.040604 0.133891 +0.536208 +0.029257 0.039617 0.029746 0.032953 0.015721 0.024058 0.011118 0.035986 0.030378 0.028421 0.016421 0.128705 0.016269 0.015569 0.028611 0.028697 0.018393 0.044442 0.027751 0.021113 0.023324 0.086911 0.038978 0.015590 0.005819 0.063422 0.038522 0.001288 0.020856 0.110401 0.040221 0.180870 +0.117959 +0.032742 0.039288 0.032924 0.029798 0.017160 0.045001 0.009973 0.036328 0.029175 0.030757 0.016362 0.028125 0.015231 0.015670 0.029718 0.031979 0.015968 0.048313 0.028315 0.020411 0.022053 0.133891 0.039182 0.015262 0.010978 0.086911 0.038323 0.001440 0.021102 0.063422 0.039249 0.157380 +0.038719 +0.031072 0.035499 0.032208 0.029636 0.017494 0.028353 0.011701 0.036296 0.033225 0.028427 0.015439 0.032941 0.015097 0.016154 0.029890 0.030392 0.015039 0.091342 0.028003 0.019308 0.019787 0.086911 0.039346 0.015848 0.013575 0.063422 0.039695 0.000760 0.019738 0.110401 0.039082 0.157380 +0.021782 +0.028490 0.039781 0.029108 0.029057 0.014372 0.100930 0.009858 0.035484 0.038305 0.032428 0.014214 0.024015 0.015689 0.015746 0.030741 0.028872 0.015722 0.122245 0.026631 0.018905 0.021288 0.133891 0.038888 0.016382 0.010629 0.157380 0.041026 0.000649 0.019662 0.133891 0.040266 0.180870 +0.275661 +0.031066 0.034789 0.030811 0.032174 0.016670 0.019618 0.009788 0.035433 0.028522 0.029030 0.014740 0.067709 0.015703 0.015703 0.029698 0.031196 0.014639 0.072002 0.026515 0.018955 0.022794 0.086911 0.040309 0.015474 0.009824 0.063422 0.042136 0.000535 0.020712 0.110401 0.039887 0.133891 +0.102471 +0.031224 0.035070 0.029250 0.031037 0.015062 0.044191 0.011374 0.036501 0.028219 0.029906 0.018530 0.130280 0.016001 0.016198 0.028471 0.029715 0.018254 0.045955 0.029659 0.019475 0.020443 0.180870 0.038536 0.012867 0.005055 0.133891 0.038187 0.000665 0.020813 0.063422 0.037755 0.204360 +0.201874 +0.028908 0.034498 0.036617 0.029797 0.018075 0.298514 0.010086 0.035304 0.028758 0.028622 0.016529 0.022624 0.015478 0.016343 0.030096 0.033314 0.017895 0.111412 0.028054 0.021130 0.022219 0.133891 0.039661 0.013195 0.010847 0.063422 0.041313 0.002225 0.020319 0.180870 0.042129 0.204360 +0.435619 +0.032629 0.038367 0.029351 0.030567 0.016146 0.184398 0.010326 0.036435 0.036298 0.031570 0.015507 0.044583 0.016093 0.015796 0.028632 0.031037 0.014842 0.135256 0.028519 0.019313 0.021618 0.063422 0.037973 0.015462 0.012317 0.157380 0.040578 0.000968 0.021006 0.133891 0.041049 0.180870 +0.356336 +0.032585 0.035729 0.034066 0.032419 0.018075 0.044249 0.009754 0.037304 0.028724 0.032558 0.016561 0.022344 0.015349 0.016192 0.030789 0.028727 0.016772 0.106147 0.028075 0.020242 0.020073 0.063422 0.039243 0.017674 0.011375 0.063422 0.040212 0.002295 0.020066 0.063422 0.041860 0.133891 +0.032394 +0.032690 0.036809 0.031112 0.029976 0.017943 0.082423 0.010043 0.036722 0.028744 0.028942 0.014677 0.034654 0.015858 0.015688 0.030453 0.028319 0.018062 0.127698 0.029602 0.020942 0.020678 0.157380 0.038146 0.013470 0.009545 0.180870 0.041866 0.000917 0.021034 0.157380 0.038461 0.204360 +0.204284 +0.031979 0.035318 0.028507 0.032202 0.015985 0.087238 0.010332 0.036370 0.028737 0.028479 0.018215 0.060042 0.015848 0.016243 0.029702 0.031667 0.017532 0.180735 0.028314 0.020669 0.021472 0.063422 0.038807 0.018726 0.009173 0.133891 0.041217 0.000886 0.020352 0.086911 0.039818 0.180870 +0.283938 +0.029504 0.039288 0.029615 0.028306 0.016356 0.228349 0.011548 0.037166 0.032600 0.029541 0.017665 0.146000 0.015818 0.016252 0.028489 0.034531 0.014181 0.034224 0.028424 0.020244 0.019941 0.086911 0.037956 0.016321 0.013685 0.157380 0.039918 0.001779 0.019646 0.133891 0.041159 0.204360 +0.450731 +0.029555 0.036318 0.028740 0.031045 0.016318 0.060851 0.011412 0.035928 0.029551 0.028316 0.015172 0.058055 0.015299 0.016248 0.033799 0.032491 0.017808 0.141363 0.027377 0.019857 0.021914 0.133891 0.040494 0.016672 0.006738 0.157380 0.038336 0.001746 0.019550 0.063422 0.038425 0.204360 +0.251669 +0.031712 0.038447 0.030021 0.028282 0.018173 0.117053 0.009844 0.037106 0.032344 0.029293 0.018559 0.052076 0.016078 0.016215 0.028337 0.028929 0.014882 0.086922 0.026714 0.021097 0.019607 0.086911 0.040781 0.013956 0.005875 0.157380 0.037666 0.002252 0.020614 0.086911 0.041165 0.180870 +0.289000 +0.031812 0.033392 0.029409 0.034729 0.015530 0.027816 0.010337 0.036520 0.036262 0.028375 0.018508 0.103462 0.016411 0.016136 0.031047 0.028667 0.014458 0.026194 0.027188 0.019242 0.020882 0.110401 0.042127 0.015327 0.012288 0.086911 0.038137 0.001455 0.020737 0.110401 0.041169 0.157380 +0.039820 +0.029188 0.035929 0.029451 0.030968 0.016106 0.054307 0.011190 0.035512 0.028432 0.029017 0.016136 0.048948 0.016064 0.016142 0.030012 0.030385 0.014672 0.019106 0.029851 0.019472 0.021284 0.063422 0.039472 0.011791 0.007821 0.133891 0.041426 0.002213 0.019890 0.086911 0.038268 0.157380 +0.017095 +0.030425 0.034869 0.028967 0.033054 0.014328 0.097740 0.009628 0.037504 0.028860 0.031988 0.017785 0.055835 0.015665 0.015817 0.029911 0.035650 0.015791 0.119032 0.028397 0.018875 0.021696 0.086911 0.037739 0.016884 0.010168 0.063422 0.037824 0.001642 0.020615 0.133891 0.041989 0.180870 +0.264303 +0.030802 0.035236 0.028305 0.031450 0.018065 0.042422 0.011434 0.035338 0.028456 0.028222 0.015477 0.154941 0.015391 0.015865 0.029645 0.028627 0.015468 0.028313 0.027988 0.021073 0.023443 0.063422 0.042034 0.013027 0.006256 0.110401 0.042025 0.000458 0.020754 0.110401 0.041969 0.133891 +0.296354 +0.032058 0.036880 0.028428 0.029186 0.014701 0.162628 0.010350 0.036774 0.028265 0.028832 0.016794 0.072942 0.015543 0.016024 0.028441 0.029954 0.017823 0.223976 0.029924 0.020648 0.019623 0.063422 0.041818 0.016708 0.011575 0.086911 0.039316 0.001949 0.020919 0.157380 0.040830 0.204360 +0.607460 +0.028193 0.038763 0.036299 0.032454 0.016968 0.163479 0.009800 0.035326 0.028631 0.028621 0.014819 0.086186 0.015580 0.016198 0.028775 0.028595 0.014556 0.061251 0.031033 0.019806 0.020216 0.157380 0.038385 0.018426 0.006092 0.086911 0.038881 0.002322 0.019834 0.133891 0.039952 0.204360 +0.248891 +0.028271 0.037740 0.030774 0.028939 0.016119 0.179113 0.011693 0.037270 0.028819 0.031951 0.015601 0.140382 0.016376 0.015958 0.029564 0.034620 0.016148 0.199051 0.027282 0.020569 0.019086 0.086911 0.041991 0.013065 0.009356 0.110401 0.037635 0.001375 0.019207 0.133891 0.038683 0.204360 +0.709421 +0.028651 0.037072 0.028691 0.029229 0.018076 0.134735 0.009702 0.036809 0.028316 0.028523 0.017048 0.038097 0.015187 0.016108 0.028777 0.031607 0.017182 0.017714 0.029901 0.019255 0.019172 0.110401 0.039076 0.011793 0.010901 0.133891 0.038783 0.002277 0.019892 0.157380 0.038293 0.204360 +0.151707 +0.029757 0.036863 0.028870 0.030058 0.018366 0.109894 0.009471 0.037570 0.033311 0.030209 0.018558 0.023952 0.015162 0.016066 0.028867 0.028791 0.014974 0.152730 0.029008 0.019356 0.022088 0.063422 0.039319 0.013435 0.006217 0.086911 0.038204 0.001421 0.019842 0.063422 0.038728 0.133891 +0.374355 +0.030978 0.038318 0.029035 0.029988 0.015318 0.194948 0.009627 0.036170 0.034136 0.032397 0.015014 0.040554 0.015344 0.015940 0.028321 0.034877 0.015209 0.049444 0.028506 0.018822 0.022147 0.110401 0.042277 0.014677 0.008171 0.110401 0.040643 0.002263 0.018950 0.086911 0.041738 0.133891 +0.445876 +0.031880 0.039545 0.029698 0.029445 0.016513 0.084968 0.010914 0.037359 0.031736 0.028501 0.018367 0.197220 0.015608 0.016379 0.028973 0.028825 0.014708 0.089216 0.029031 0.019623 0.020292 0.133891 0.039078 0.015246 0.006167 0.063422 0.038216 0.000737 0.020433 0.063422 0.039467 0.204360 +0.477578 +0.032146 0.035512 0.035296 0.032314 0.016505 0.097382 0.010777 0.036653 0.030341 0.030265 0.015935 0.020853 0.015669 0.015534 0.028967 0.028575 0.014680 0.028017 0.028351 0.020819 0.019863 0.133891 0.038005 0.015671 0.011924 0.180870 0.041133 0.000475 0.020167 0.110401 0.038107 0.204360 +0.055382 +0.031209 0.037712 0.030573 0.032170 0.018349 0.082035 0.011053 0.037169 0.037194 0.028520 0.016712 0.031092 0.015679 0.015834 0.029277 0.028609 0.018065 0.050822 0.028223 0.019404 0.022361 0.133891 0.041216 0.014701 0.012823 0.180870 0.041019 0.002330 0.018803 0.133891 0.039189 0.204360 +0.110225 +0.030672 0.033214 0.029133 0.031474 0.016286 0.044864 0.011696 0.037309 0.031109 0.029669 0.017542 0.081991 0.015421 0.015606 0.029664 0.030135 0.014711 0.259615 0.028516 0.020747 0.022200 0.063422 0.042070 0.013206 0.007979 0.157380 0.039078 0.000696 0.019697 0.110401 0.038166 0.204360 +0.468353 +0.030775 0.035238 0.032440 0.029817 0.015852 0.021382 0.011146 0.036018 0.029580 0.029571 0.014148 0.163721 0.015274 0.016194 0.029509 0.029137 0.018742 0.043286 0.027627 0.021079 0.020716 0.086911 0.040039 0.016846 0.005499 0.180870 0.039864 0.001684 0.020571 0.086911 0.041795 0.204360 +0.219960 +0.030683 0.035894 0.029300 0.032773 0.018059 0.058354 0.010329 0.037558 0.028560 0.029608 0.016996 0.056433 0.016347 0.015880 0.029808 0.029492 0.016468 0.026576 0.027183 0.020217 0.019404 0.063422 0.040986 0.013317 0.011473 0.086911 0.038689 0.001135 0.019333 0.110401 0.041555 0.133891 +0.037218 +0.031290 0.037716 0.030107 0.028382 0.014451 0.032679 0.009796 0.037370 0.028773 0.037331 0.016419 0.033648 0.015877 0.015532 0.032338 0.028771 0.014474 0.131630 0.029795 0.020092 0.022124 0.086911 0.041091 0.013158 0.013250 0.063422 0.041968 0.002146 0.018960 0.110401 0.041938 0.157380 +0.093968 +0.030859 0.039408 0.030732 0.028325 0.016355 0.297053 0.009682 0.036929 0.033598 0.028407 0.016764 0.051373 0.015593 0.015622 0.028679 0.033543 0.016360 0.105179 0.028577 0.020513 0.019470 0.133891 0.042091 0.017198 0.014056 0.110401 0.042175 0.000038 0.019375 0.086911 0.040089 0.204360 +0.414736 +0.029570 0.035605 0.029064 0.030575 0.017761 0.139901 0.009552 0.036292 0.028682 0.029995 0.017362 0.039138 0.015596 0.015851 0.029119 0.030367 0.015332 0.082700 0.029537 0.020431 0.019809 0.157380 0.041446 0.013046 0.005835 0.086911 0.041155 0.001210 0.020350 0.110401 0.038890 0.180870 +0.290418 +0.032797 0.033178 0.031208 0.031672 0.014294 0.050532 0.009445 0.037037 0.029937 0.029554 0.016459 0.126855 0.016254 0.015529 0.030223 0.028465 0.015419 0.115815 0.028470 0.019245 0.020220 0.157380 0.040528 0.012531 0.010816 0.110401 0.041969 0.001289 0.019127 0.157380 0.040202 0.204360 +0.189814 +0.028199 0.036331 0.028328 0.032391 0.015739 0.122581 0.011590 0.036619 0.030541 0.031576 0.017845 0.088931 0.015861 0.015694 0.028822 0.029849 0.014944 0.202159 0.029089 0.020213 0.021821 0.063422 0.040237 0.014815 0.010473 0.063422 0.041644 0.001839 0.020888 0.133891 0.041617 0.157380 +0.506586 +0.031308 0.037044 0.028369 0.036135 0.015412 0.041762 0.011719 0.037565 0.028986 0.030107 0.018294 0.041453 0.015722 0.016051 0.031373 0.028247 0.014717 0.027952 0.029796 0.019101 0.019829 0.063422 0.041934 0.017373 0.012911 0.063422 0.041785 0.001600 0.020329 0.133891 0.039463 0.157380 +0.005629 +0.029909 0.039631 0.035770 0.032130 0.016306 0.049247 0.009817 0.035450 0.036428 0.031057 0.017901 0.018274 0.015314 0.015949 0.039494 0.031069 0.017828 0.023490 0.029574 0.019141 0.022610 0.063422 0.041769 0.015655 0.007868 0.063422 0.040992 0.000139 0.021026 0.110401 0.041631 0.133891 +0.007957 +0.029006 0.037149 0.030816 0.028841 0.015860 0.138649 0.009967 0.036354 0.028617 0.029049 0.017612 0.059765 0.016331 0.015543 0.030760 0.030763 0.015775 0.019783 0.025893 0.019783 0.021831 0.110401 0.041533 0.018687 0.009302 0.110401 0.039313 0.000119 0.019936 0.063422 0.041812 0.204360 +0.211852 +0.030312 0.032902 0.029621 0.028705 0.015693 0.242541 0.011572 0.037167 0.031252 0.029024 0.018479 0.069709 0.015299 0.016350 0.029332 0.028339 0.014560 0.190256 0.027504 0.020844 0.020101 0.063422 0.039384 0.012766 0.008743 0.063422 0.039767 0.001181 0.020379 0.063422 0.038200 0.180870 +0.600569 +0.030439 0.035380 0.030106 0.031100 0.016926 0.108066 0.009797 0.036837 0.032746 0.038771 0.017500 0.051753 0.016283 0.016323 0.029044 0.028850 0.016741 0.358158 0.027975 0.020547 0.018894 0.063422 0.039324 0.018269 0.012792 0.110401 0.040732 0.000831 0.021077 0.063422 0.040307 0.157380 +0.679598 +0.029867 0.033763 0.028411 0.031610 0.014746 0.100419 0.010649 0.036634 0.028692 0.033764 0.018338 0.020223 0.016367 0.015928 0.031102 0.029230 0.015008 0.047211 0.028401 0.020433 0.020157 0.110401 0.041863 0.017210 0.013005 0.063422 0.040640 0.001206 0.018846 0.110401 0.041730 0.157380 +0.054666 +0.032518 0.035365 0.037227 0.028464 0.015101 0.071758 0.010058 0.035568 0.028354 0.028856 0.017039 0.067145 0.015626 0.016238 0.028969 0.031913 0.014441 0.042338 0.028335 0.020277 0.020005 0.133891 0.042076 0.015895 0.005953 0.157380 0.040535 0.001846 0.020833 0.133891 0.039537 0.180870 +0.115048 +0.029143 0.034466 0.028630 0.028205 0.015360 0.098449 0.009728 0.036393 0.032003 0.028492 0.018607 0.391168 0.016401 0.015669 0.030678 0.031573 0.016611 0.109850 0.028202 0.019456 0.020795 0.063422 0.039104 0.016520 0.013229 0.086911 0.041240 0.002208 0.020349 0.063422 0.038033 0.180870 +0.761450 +0.031460 0.039179 0.029181 0.028406 0.015432 0.102078 0.009482 0.035236 0.029165 0.031061 0.015392 0.033740 0.015715 0.015954 0.029543 0.029969 0.016177 0.053594 0.029205 0.019627 0.022396 0.157380 0.040698 0.013524 0.010625 0.157380 0.041833 0.001458 0.019701 0.063422 0.041099 0.180870 +0.190307 +0.030268 0.034769 0.031178 0.029247 0.015177 0.052708 0.010527 0.036245 0.029367 0.028209 0.018494 0.116607 0.016337 0.015746 0.028639 0.030234 0.017933 0.103474 0.026036 0.019779 0.020496 0.133891 0.040968 0.016006 0.010312 0.063422 0.041392 0.000230 0.020322 0.063422 0.040882 0.204360 +0.260853 +0.030979 0.036690 0.028303 0.031943 0.017103 0.034660 0.011692 0.035626 0.031066 0.032284 0.015401 0.043489 0.016054 0.016105 0.031834 0.033110 0.017771 0.111381 0.027648 0.020476 0.023225 0.180870 0.040754 0.017630 0.010578 0.133891 0.037868 0.000047 0.019381 0.086911 0.037947 0.204360 +0.084375 +0.032143 0.039486 0.028358 0.031084 0.018136 0.059849 0.010439 0.036574 0.029219 0.033144 0.014835 0.035652 0.015331 0.015693 0.033677 0.030673 0.018002 0.100145 0.028052 0.019798 0.020762 0.086911 0.041693 0.012929 0.009766 0.086911 0.040087 0.001622 0.019332 0.063422 0.040199 0.133891 +0.160299 +0.029268 0.039312 0.029594 0.030688 0.017011 0.132622 0.010506 0.036354 0.035248 0.028389 0.015460 0.121514 0.016296 0.016136 0.033882 0.032936 0.014731 0.202042 0.026900 0.019105 0.018917 0.110401 0.038407 0.016454 0.010194 0.157380 0.039168 0.000558 0.019028 0.157380 0.040791 0.204360 +0.559383 +0.029464 0.038544 0.031169 0.032170 0.014497 0.162610 0.010075 0.036455 0.028865 0.035103 0.018181 0.045653 0.015145 0.016044 0.030180 0.028486 0.016635 0.077198 0.028269 0.019353 0.018804 0.063422 0.038789 0.015795 0.013338 0.063422 0.039930 0.001980 0.020169 0.063422 0.038566 0.180870 +0.258092 +0.031990 0.036436 0.032240 0.031545 0.015431 0.024786 0.009809 0.035479 0.030855 0.033394 0.014660 0.059780 0.015314 0.016252 0.030613 0.030977 0.017511 0.136570 0.028381 0.019558 0.022192 0.110401 0.040324 0.017430 0.005372 0.086911 0.041939 0.000461 0.019707 0.110401 0.039110 0.133891 +0.217260 +0.031851 0.034355 0.033161 0.030978 0.017710 0.175530 0.009483 0.037247 0.043436 0.033053 0.015670 0.114981 0.016094 0.016144 0.028469 0.031990 0.017697 0.233392 0.027291 0.020161 0.019181 0.063422 0.039709 0.012846 0.009932 0.086911 0.039442 0.000839 0.020851 0.086911 0.040714 0.204360 +0.593926 +0.030748 0.037370 0.028714 0.029837 0.018387 0.168274 0.011409 0.037440 0.028850 0.028544 0.018392 0.099215 0.016422 0.015703 0.031019 0.031583 0.016925 0.264233 0.029037 0.019142 0.022347 0.133891 0.042083 0.012748 0.008261 0.086911 0.040719 0.000489 0.020164 0.110401 0.039616 0.157380 +0.662307 +0.032675 0.035693 0.032715 0.029246 0.015089 0.018409 0.010912 0.036964 0.029146 0.032798 0.017572 0.029046 0.015057 0.015939 0.029568 0.034667 0.015822 0.027212 0.027443 0.018868 0.022453 0.133891 0.040463 0.013132 0.007200 0.133891 0.040724 0.000787 0.021139 0.086911 0.038418 0.204360 +0 +0.032289 0.039185 0.028833 0.029006 0.014511 0.207749 0.009987 0.037162 0.031353 0.030667 0.017536 0.110837 0.015541 0.015928 0.030559 0.030856 0.016054 0.024072 0.026038 0.019519 0.022423 0.110401 0.039431 0.013596 0.013902 0.086911 0.042090 0.001777 0.020828 0.110401 0.039056 0.133891 +0.453376 +0.031810 0.038384 0.039293 0.028599 0.014328 0.110225 0.011313 0.036808 0.028499 0.028272 0.014603 0.154099 0.016056 0.016419 0.028583 0.029207 0.018297 0.144480 0.027584 0.019728 0.019959 0.063422 0.040604 0.016759 0.010337 0.086911 0.040132 0.001624 0.020366 0.110401 0.039845 0.133891 +0.490874 +0.030805 0.033446 0.038867 0.030823 0.016518 0.018970 0.010326 0.036985 0.028560 0.028929 0.017416 0.097059 0.015659 0.016308 0.030534 0.028195 0.015683 0.053543 0.029708 0.020310 0.020534 0.086911 0.040100 0.018588 0.010655 0.086911 0.040151 0.000692 0.019935 0.086911 0.041752 0.133891 +0.103716 +0.032404 0.037541 0.029840 0.032834 0.014739 0.118253 0.011140 0.035878 0.029471 0.028708 0.016124 0.136945 0.015180 0.016263 0.033335 0.028697 0.015800 0.329340 0.028389 0.020285 0.021111 0.157380 0.041544 0.015961 0.013237 0.133891 0.041181 0.001875 0.020157 0.063422 0.038189 0.180870 +0.749929 +0.032884 0.033463 0.030449 0.028952 0.016286 0.024328 0.010537 0.036725 0.028384 0.032926 0.015477 0.133068 0.015527 0.015735 0.031404 0.028899 0.014178 0.220925 0.028464 0.020775 0.019639 0.086911 0.039388 0.017199 0.013813 0.086911 0.038511 0.000631 0.020426 0.180870 0.038833 0.204360 +0.508771 +0.032388 0.039606 0.029584 0.030472 0.014430 0.218450 0.011668 0.036864 0.029960 0.031499 0.016965 0.157371 0.015401 0.015519 0.031329 0.028968 0.018741 0.016775 0.027854 0.018868 0.022258 0.086911 0.041720 0.013694 0.007662 0.133891 0.041695 0.001243 0.020654 0.086911 0.038605 0.180870 +0.479234 +0.032744 0.038354 0.029931 0.029116 0.015001 0.026966 0.010457 0.035272 0.031815 0.028655 0.018773 0.034115 0.016290 0.015944 0.028604 0.028786 0.017978 0.048553 0.026981 0.019737 0.023382 0.086911 0.040984 0.016681 0.013426 0.110401 0.040848 0.001309 0.019337 0.110401 0.042014 0.133891 +0.014544 +0.032361 0.034575 0.034049 0.030612 0.014873 0.085714 0.009399 0.036438 0.028869 0.028365 0.017631 0.100522 0.015264 0.015761 0.028684 0.030057 0.017605 0.089160 0.028717 0.019519 0.022498 0.133891 0.040434 0.016707 0.008078 0.086911 0.038410 0.000309 0.020540 0.086911 0.039886 0.157380 +0.183584 +0.029848 0.037537 0.028239 0.031566 0.015389 0.025145 0.010357 0.037025 0.030653 0.028375 0.016185 0.052016 0.015601 0.016135 0.028501 0.029121 0.017304 0.031148 0.029223 0.020327 0.022538 0.180870 0.042145 0.017604 0.012407 0.110401 0.039844 0.001248 0.018820 0.063422 0.041601 0.204360 +0.016879 +0.032420 0.039475 0.038951 0.030076 0.015635 0.055726 0.011475 0.035775 0.029822 0.029389 0.017061 0.029260 0.016080 0.015733 0.030923 0.036667 0.017488 0.132146 0.026486 0.019885 0.023009 0.133891 0.041407 0.013561 0.008213 0.110401 0.040646 0.002147 0.018918 0.063422 0.039537 0.157380 +0.213890 +0.028196 0.036193 0.029033 0.030478 0.014452 0.132738 0.009547 0.035735 0.028474 0.029937 0.016372 0.108983 0.016056 0.016287 0.029505 0.028787 0.015305 0.043243 0.029572 0.019477 0.021914 0.086911 0.039903 0.012229 0.011077 0.110401 0.038079 0.001829 0.019310 0.063422 0.039987 0.157380 +0.298781 +0.031240 0.035106 0.030223 0.031548 0.018667 0.242949 0.011088 0.036984 0.030155 0.028265 0.015045 0.026275 0.015864 0.016108 0.028523 0.029250 0.015012 0.104272 0.028938 0.019577 0.020293 0.110401 0.041912 0.018494 0.012146 0.086911 0.041826 0.000265 0.020327 0.110401 0.039100 0.157380 +0.341224 +0.030889 0.038537 0.032418 0.032932 0.018523 0.106588 0.010408 0.036840 0.029350 0.028618 0.014700 0.057825 0.016059 0.015863 0.030067 0.030733 0.016274 0.053247 0.027621 0.020165 0.021415 0.133891 0.039556 0.018469 0.007539 0.180870 0.037928 0.001188 0.020469 0.063422 0.039531 0.204360 +0.216340 +0.028815 0.037415 0.028601 0.029399 0.017739 0.017633 0.010894 0.037224 0.031421 0.029850 0.017581 0.019929 0.016212 0.015643 0.028255 0.029187 0.015587 0.027366 0.026996 0.020637 0.020082 0.157380 0.039491 0.014800 0.012355 0.063422 0.039293 0.002165 0.019970 0.133891 0.042276 0.180870 +0 +0.028894 0.037852 0.028342 0.028577 0.014202 0.643170 0.010286 0.035363 0.035142 0.028374 0.017974 0.075544 0.016401 0.015965 0.028621 0.028715 0.014579 0.047409 0.029152 0.019051 0.022690 0.157380 0.041287 0.017004 0.012802 0.133891 0.037650 0.000235 0.019354 0.157380 0.042020 0.204360 +0.751082 +0.030437 0.037327 0.030204 0.029797 0.018197 0.165560 0.009529 0.036368 0.028228 0.032048 0.018468 0.051283 0.015308 0.015753 0.028548 0.034202 0.017487 0.075079 0.027707 0.020947 0.022789 0.110401 0.040809 0.018560 0.009805 0.086911 0.040995 0.001758 0.019866 0.086911 0.037629 0.133891 +0.402474 +0.029950 0.037180 0.034438 0.031169 0.018012 0.030559 0.009483 0.036201 0.032864 0.029545 0.016007 0.038222 0.015122 0.015652 0.032393 0.029767 0.015139 0.142200 0.026241 0.019378 0.023293 0.086911 0.041001 0.016655 0.007765 0.086911 0.041200 0.001691 0.020077 0.063422 0.039170 0.133891 +0.132259 +0.032700 0.033763 0.029966 0.029187 0.017512 0.092582 0.010002 0.036579 0.029587 0.028356 0.017386 0.051499 0.015543 0.015608 0.029676 0.034951 0.014372 0.102554 0.027729 0.021111 0.021619 0.063422 0.039101 0.017442 0.008543 0.110401 0.038914 0.000206 0.020512 0.086911 0.038166 0.157380 +0.255262 +0.028250 0.033488 0.028397 0.028401 0.015519 0.028675 0.010942 0.036823 0.028698 0.028422 0.015032 0.105695 0.015958 0.015992 0.029601 0.033657 0.014394 0.158657 0.031098 0.019652 0.018910 0.110401 0.037598 0.017639 0.009787 0.063422 0.040304 0.000521 0.020164 0.086911 0.041870 0.133891 +0.343149 +0.030363 0.036633 0.032273 0.029505 0.015994 0.155516 0.011719 0.036192 0.030287 0.028744 0.017749 0.065724 0.016371 0.016194 0.031762 0.029435 0.018220 0.035898 0.027531 0.020209 0.022024 0.086911 0.039894 0.015043 0.006118 0.063422 0.040791 0.002118 0.019086 0.086911 0.039556 0.133891 +0.363935 +0.028686 0.038911 0.037694 0.029456 0.015630 0.119934 0.011041 0.036607 0.032600 0.028833 0.017503 0.037088 0.015960 0.016005 0.029052 0.029694 0.015322 0.022781 0.027349 0.020142 0.022593 0.086911 0.040331 0.017762 0.014038 0.086911 0.042042 0.000938 0.019613 0.086911 0.038546 0.157380 +0.032318 +0.029248 0.036791 0.029115 0.029539 0.018469 0.033543 0.011173 0.036042 0.031098 0.030150 0.014357 0.042458 0.015266 0.016437 0.033554 0.029104 0.018505 0.134409 0.028376 0.020917 0.022168 0.086911 0.040885 0.011766 0.008552 0.063422 0.038033 0.002031 0.020277 0.110401 0.042088 0.133891 +0.197462 +0.031147 0.037781 0.032878 0.029155 0.016568 0.108744 0.011425 0.037024 0.028226 0.029540 0.017117 0.202950 0.015177 0.015737 0.029724 0.031371 0.018185 0.075861 0.027372 0.019040 0.023337 0.110401 0.039086 0.012601 0.010079 0.133891 0.039750 0.001162 0.019895 0.063422 0.037944 0.204360 +0.472878 +0.030525 0.039129 0.037127 0.028900 0.015413 0.159144 0.010284 0.036099 0.028360 0.028901 0.016406 0.096410 0.015374 0.016430 0.035462 0.029335 0.014933 0.188791 0.027732 0.020728 0.022580 0.086911 0.037977 0.015650 0.008654 0.133891 0.042032 0.000207 0.020471 0.157380 0.040008 0.204360 +0.516583 +0.032038 0.036919 0.029139 0.030321 0.017196 0.038774 0.009669 0.036446 0.029579 0.030154 0.018644 0.030989 0.016112 0.015789 0.032151 0.028456 0.017339 0.036253 0.027320 0.019373 0.021658 0.110401 0.037928 0.018712 0.012691 0.110401 0.040176 0.001677 0.019991 0.110401 0.040844 0.133891 +0.036239 +0.032019 0.039540 0.031382 0.032918 0.018470 0.105449 0.010199 0.035581 0.030046 0.031948 0.015810 0.017028 0.016325 0.016077 0.030422 0.029961 0.018088 0.017761 0.026211 0.018813 0.020181 0.086911 0.037890 0.018168 0.010976 0.110401 0.039987 0.002202 0.019807 0.133891 0.039143 0.204360 +0.018299 +0.032424 0.036199 0.030556 0.031082 0.016912 0.095784 0.011467 0.037186 0.030037 0.029441 0.015732 0.066262 0.015617 0.016329 0.028765 0.031385 0.016227 0.039315 0.028555 0.020800 0.020106 0.157380 0.041967 0.012257 0.006896 0.086911 0.040934 0.001831 0.019370 0.063422 0.041255 0.204360 +0.081213 +0.029192 0.033137 0.028679 0.028660 0.014174 0.162102 0.011262 0.036258 0.032394 0.028586 0.017987 0.101908 0.015696 0.015964 0.028276 0.035830 0.014907 0.151130 0.028362 0.018949 0.022620 0.180870 0.040948 0.016437 0.009093 0.133891 0.041370 0.002208 0.020675 0.086911 0.041624 0.204360 +0.480988 +0.029257 0.038903 0.029269 0.028200 0.014380 0.045209 0.009780 0.036014 0.032138 0.030719 0.018218 0.082546 0.016327 0.016073 0.030667 0.029561 0.015470 0.056604 0.028007 0.021001 0.018990 0.063422 0.039098 0.015644 0.005087 0.133891 0.041821 0.000396 0.019723 0.086911 0.039349 0.157380 +0.182053 +0.030798 0.037937 0.031210 0.028720 0.014609 0.020229 0.010994 0.035689 0.032162 0.028833 0.018358 0.071386 0.015122 0.015582 0.028941 0.029165 0.014105 0.054419 0.030160 0.019364 0.019737 0.133891 0.038248 0.017939 0.010002 0.063422 0.040461 0.000122 0.019237 0.063422 0.041995 0.157380 +0.053152 +0.032293 0.036118 0.028404 0.030567 0.015571 0.132680 0.009527 0.035525 0.028718 0.030129 0.016456 0.113822 0.016254 0.015590 0.028244 0.028757 0.017010 0.043324 0.028667 0.019553 0.021015 0.110401 0.039550 0.016531 0.007387 0.086911 0.041620 0.001453 0.018949 0.086911 0.038129 0.157380 +0.325549 +0.032549 0.034740 0.032375 0.028756 0.016110 0.044844 0.011516 0.036873 0.032151 0.030356 0.018129 0.035405 0.016281 0.016123 0.032445 0.030647 0.017282 0.024016 0.027290 0.019274 0.019931 0.110401 0.039763 0.014271 0.006017 0.063422 0.040486 0.000035 0.019201 0.086911 0.041719 0.157380 +0.003322 +0.032795 0.037645 0.031470 0.028883 0.016216 0.123726 0.010112 0.036708 0.029449 0.032654 0.016157 0.084088 0.016039 0.015655 0.028337 0.029072 0.014602 0.054706 0.029294 0.020654 0.022323 0.063422 0.041628 0.013072 0.006103 0.086911 0.037834 0.000033 0.018980 0.063422 0.038793 0.133891 +0.267543 +0.031038 0.034815 0.034178 0.029146 0.017084 0.017301 0.009912 0.036586 0.028285 0.032150 0.018187 0.236063 0.015076 0.016032 0.028484 0.028450 0.015009 0.169521 0.029767 0.020254 0.019308 0.110401 0.040782 0.015659 0.005112 0.063422 0.038937 0.000363 0.020009 0.063422 0.040606 0.133891 +0.573217 +0.029912 0.036555 0.032590 0.030994 0.015192 0.022516 0.010345 0.037519 0.028912 0.028477 0.016667 0.045955 0.016377 0.016292 0.029036 0.029848 0.018140 0.055686 0.028098 0.019744 0.022539 0.110401 0.038584 0.017690 0.010867 0.180870 0.041800 0.000236 0.020096 0.180870 0.038245 0.204360 +0.022629 +0.032342 0.039064 0.033410 0.030083 0.017318 0.054118 0.009809 0.037354 0.028736 0.029509 0.016996 0.063260 0.016389 0.016281 0.033324 0.031320 0.018048 0.019692 0.029827 0.020664 0.023308 0.133891 0.037938 0.018399 0.008807 0.133891 0.039040 0.000852 0.019494 0.133891 0.038147 0.157380 +0.134784 +0.028415 0.036823 0.028786 0.034539 0.018325 0.034568 0.010391 0.036791 0.037694 0.035774 0.018142 0.086438 0.015369 0.015582 0.028638 0.029006 0.014997 0.017402 0.028508 0.019474 0.023344 0.157380 0.042096 0.015948 0.007664 0.086911 0.039214 0.002100 0.020400 0.063422 0.041375 0.180870 +0.047453 +0.028242 0.039091 0.037736 0.029920 0.016721 0.123433 0.010537 0.035924 0.031075 0.032242 0.016184 0.044651 0.016268 0.016086 0.028387 0.028471 0.014962 0.181318 0.028074 0.021120 0.019640 0.180870 0.041497 0.013205 0.008324 0.110401 0.039900 0.000055 0.019645 0.180870 0.040286 0.204360 +0.332467 +0.028542 0.034842 0.028701 0.028376 0.014827 0.032422 0.011121 0.036088 0.029051 0.032787 0.014341 0.029014 0.015148 0.015763 0.034716 0.028473 0.015375 0.166561 0.027000 0.020407 0.023256 0.133891 0.041201 0.015642 0.012678 0.086911 0.037936 0.000570 0.019099 0.133891 0.037856 0.157380 +0.231530 +0.032667 0.039204 0.028477 0.028633 0.018258 0.051161 0.010190 0.037043 0.028240 0.034326 0.014420 0.114939 0.016083 0.015918 0.028859 0.039614 0.017301 0.089329 0.027641 0.019648 0.020233 0.110401 0.039871 0.015459 0.012795 0.086911 0.038250 0.002298 0.020947 0.133891 0.038580 0.157380 +0.189242 +0.028527 0.039137 0.028524 0.028383 0.016943 0.032969 0.009433 0.035327 0.033504 0.029080 0.016889 0.090013 0.015153 0.016058 0.033003 0.029272 0.017439 0.063398 0.027624 0.020153 0.023075 0.133891 0.040873 0.017240 0.013322 0.086911 0.037750 0.000203 0.020896 0.086911 0.041223 0.157380 +0.062455 +0.029290 0.038182 0.030256 0.030251 0.016934 0.060308 0.010567 0.036642 0.029785 0.028817 0.014721 0.091401 0.015852 0.016213 0.028226 0.028452 0.015237 0.201712 0.027480 0.020840 0.021231 0.133891 0.039528 0.012750 0.011553 0.110401 0.040433 0.000669 0.020176 0.086911 0.042058 0.180870 +0.460489 +0.031649 0.034831 0.028423 0.033171 0.014205 0.143981 0.011248 0.036722 0.031778 0.029765 0.018702 0.264806 0.016052 0.016297 0.032020 0.033415 0.017891 0.035214 0.028062 0.021044 0.021002 0.133891 0.037642 0.017517 0.008367 0.086911 0.037864 0.001404 0.020654 0.086911 0.040833 0.180870 +0.548679 +0.029547 0.039357 0.031334 0.030350 0.014728 0.126824 0.011298 0.037435 0.029022 0.033456 0.014462 0.039728 0.015266 0.016146 0.034865 0.028652 0.018728 0.067543 0.029886 0.018858 0.019077 0.063422 0.039207 0.013765 0.012654 0.180870 0.038399 0.001709 0.019162 0.157380 0.039990 0.204360 +0.271189 +0.030187 0.037001 0.028730 0.029584 0.016468 0.096348 0.009939 0.036355 0.030518 0.034619 0.017226 0.033626 0.015283 0.016426 0.029025 0.029949 0.017495 0.051665 0.028095 0.020024 0.023161 0.086911 0.040503 0.012759 0.009743 0.110401 0.040988 0.000939 0.020306 0.086911 0.037822 0.133891 +0.197495 +0.031714 0.033667 0.030466 0.028365 0.018237 0.096869 0.011325 0.037501 0.030909 0.028387 0.017629 0.085200 0.016162 0.015648 0.028379 0.030310 0.015674 0.132238 0.028393 0.018877 0.021495 0.110401 0.040705 0.016222 0.007760 0.157380 0.037896 0.001088 0.020339 0.157380 0.038185 0.204360 +0.287339 +0.032514 0.034120 0.031071 0.028813 0.014447 0.042794 0.011502 0.036027 0.028260 0.035484 0.018643 0.071430 0.015942 0.016215 0.028255 0.028585 0.018008 0.051858 0.027384 0.019743 0.020253 0.133891 0.040513 0.017622 0.011700 0.133891 0.040655 0.000776 0.020595 0.063422 0.037668 0.204360 +0.039859 +0.029602 0.037371 0.028751 0.028713 0.016716 0.060507 0.010856 0.037395 0.028800 0.028643 0.015357 0.033041 0.016126 0.015679 0.029110 0.034397 0.015325 0.054531 0.029003 0.019731 0.022094 0.086911 0.040980 0.012085 0.008243 0.063422 0.040188 0.001318 0.019711 0.133891 0.041065 0.157380 +0.078610 +0.028890 0.034963 0.029215 0.029838 0.017249 0.045678 0.011598 0.037092 0.031682 0.028325 0.016925 0.094240 0.016209 0.015731 0.032585 0.028500 0.016188 0.056775 0.026855 0.020218 0.023415 0.086911 0.039481 0.013580 0.012775 0.063422 0.039330 0.002277 0.019088 0.063422 0.038751 0.157380 +0.133701 +0.032322 0.036637 0.030533 0.033251 0.018400 0.078250 0.010532 0.035390 0.028893 0.028702 0.015804 0.084457 0.015996 0.015892 0.030068 0.032067 0.017347 0.123762 0.027994 0.019269 0.022673 0.157380 0.039965 0.016938 0.006336 0.110401 0.037759 0.001183 0.020062 0.063422 0.040055 0.180870 +0.303792 +0.032341 0.036817 0.030835 0.028649 0.014123 0.017393 0.010272 0.035394 0.032463 0.031032 0.017083 0.124030 0.015161 0.015981 0.029037 0.032801 0.016202 0.018239 0.027422 0.021089 0.022620 0.157380 0.037969 0.014845 0.007604 0.133891 0.038814 0.001359 0.018851 0.063422 0.038748 0.204360 +0.033725 +0.030816 0.039447 0.030349 0.028727 0.014139 0.054943 0.011439 0.036873 0.038604 0.033311 0.017895 0.149173 0.015424 0.015865 0.029930 0.028338 0.016335 0.093593 0.030739 0.021118 0.021945 0.110401 0.038716 0.012666 0.013842 0.086911 0.039483 0.001169 0.019025 0.086911 0.041170 0.180870 +0.292906 +0.029459 0.038914 0.029350 0.033254 0.017115 0.099094 0.011075 0.037000 0.029637 0.030260 0.014305 0.119731 0.016239 0.015748 0.032312 0.028857 0.015412 0.081825 0.027480 0.019614 0.019009 0.133891 0.040993 0.018188 0.010677 0.110401 0.041490 0.001483 0.019593 0.110401 0.039333 0.157380 +0.274176 +0.029814 0.034803 0.028858 0.029887 0.018289 0.065470 0.010016 0.035900 0.032066 0.031854 0.016432 0.038927 0.015352 0.015598 0.029898 0.033619 0.015380 0.038956 0.029837 0.019328 0.022430 0.133891 0.038753 0.016198 0.013033 0.133891 0.041110 0.001902 0.020001 0.086911 0.039621 0.180870 +0.026701 +0.032504 0.035877 0.030084 0.028261 0.018113 0.026731 0.010627 0.036943 0.031630 0.029775 0.018465 0.325932 0.015276 0.015848 0.035560 0.030783 0.017506 0.321096 0.027283 0.020442 0.023031 0.086911 0.038683 0.014569 0.008513 0.086911 0.041605 0.000807 0.020229 0.063422 0.039182 0.133891 +0.847096 +0.029681 0.037034 0.031854 0.029580 0.014473 0.035867 0.009723 0.037157 0.028342 0.030256 0.014227 0.086856 0.015518 0.015804 0.028794 0.030240 0.016493 0.039612 0.026736 0.021138 0.021504 0.133891 0.039097 0.012326 0.013235 0.110401 0.040068 0.001221 0.020866 0.110401 0.038488 0.157380 +0.087995 +0.029237 0.037479 0.029195 0.029215 0.018287 0.141005 0.010989 0.036893 0.032902 0.030492 0.015884 0.072448 0.015853 0.015737 0.030767 0.031187 0.017342 0.090210 0.027138 0.020992 0.022009 0.063422 0.039159 0.016094 0.012020 0.063422 0.040213 0.001814 0.019062 0.110401 0.038310 0.180870 +0.335339 +0.028930 0.038346 0.033044 0.028224 0.017044 0.050673 0.009703 0.037098 0.029075 0.033375 0.014639 0.035651 0.015059 0.016319 0.028464 0.029979 0.017942 0.044239 0.028851 0.020384 0.020067 0.086911 0.042103 0.017542 0.007933 0.110401 0.039703 0.002211 0.019536 0.110401 0.039388 0.133891 +0.058577 +0.029398 0.035923 0.037270 0.028701 0.016062 0.028843 0.010804 0.036755 0.028716 0.033341 0.014123 0.160233 0.015794 0.015656 0.028671 0.030606 0.016688 0.253175 0.027771 0.020889 0.021206 0.086911 0.039567 0.012080 0.006694 0.086911 0.041271 0.001511 0.018997 0.110401 0.042027 0.133891 +0.588619 +0.032515 0.032941 0.028888 0.030485 0.018653 0.059972 0.010069 0.037014 0.029683 0.030220 0.017881 0.076340 0.015752 0.015580 0.029919 0.029998 0.017725 0.172853 0.028039 0.019117 0.020993 0.133891 0.041002 0.014270 0.005739 0.133891 0.037748 0.001141 0.020261 0.133891 0.040597 0.180870 +0.388537 +0.031461 0.035132 0.033055 0.036026 0.014539 0.060780 0.010365 0.035770 0.030302 0.028803 0.018314 0.121009 0.015807 0.016127 0.030188 0.028723 0.016966 0.066669 0.026550 0.019730 0.021973 0.086911 0.038387 0.014379 0.005297 0.110401 0.039649 0.002309 0.020214 0.063422 0.040940 0.133891 +0.272902 +0.030925 0.036152 0.028525 0.028497 0.017796 0.207280 0.011086 0.037312 0.038402 0.031094 0.018358 0.031205 0.016103 0.015764 0.028565 0.028629 0.018694 0.038591 0.027367 0.019081 0.018835 0.133891 0.041521 0.014549 0.013433 0.110401 0.040478 0.001936 0.020697 0.063422 0.041339 0.157380 +0.327952 +0.031961 0.035285 0.028218 0.031629 0.016424 0.036100 0.009788 0.036941 0.029891 0.028659 0.017950 0.084328 0.015098 0.015688 0.029567 0.029440 0.016326 0.068183 0.026349 0.020731 0.022647 0.086911 0.041353 0.017040 0.010771 0.157380 0.042118 0.002151 0.020003 0.180870 0.038974 0.204360 +0.097727 +0.029340 0.033999 0.029885 0.030239 0.015908 0.212046 0.011244 0.036292 0.031399 0.033111 0.018407 0.035599 0.015614 0.015667 0.031476 0.028736 0.015653 0.029943 0.028661 0.020285 0.020262 0.063422 0.042260 0.014425 0.007831 0.086911 0.037845 0.001068 0.019528 0.110401 0.041377 0.133891 +0.295990 +0.031244 0.036168 0.029160 0.030300 0.016832 0.049742 0.010107 0.036499 0.028667 0.028670 0.018017 0.235669 0.016115 0.015547 0.030759 0.029175 0.015359 0.156290 0.028044 0.019952 0.020602 0.157380 0.040290 0.013603 0.004778 0.063422 0.040391 0.001717 0.019016 0.157380 0.041571 0.180870 +0.535192 +0.028209 0.033033 0.028351 0.030498 0.017727 0.128463 0.011734 0.035606 0.029867 0.028427 0.016551 0.016927 0.015323 0.016136 0.030128 0.028684 0.018271 0.033513 0.028139 0.019387 0.022786 0.110401 0.039625 0.015369 0.010439 0.063422 0.041582 0.001026 0.020964 0.110401 0.040362 0.133891 +0.163283 +0.031086 0.039538 0.032634 0.030371 0.015839 0.051285 0.010218 0.037258 0.030263 0.028968 0.018482 0.016536 0.015610 0.016388 0.029600 0.032065 0.015042 0.143633 0.028033 0.020705 0.023210 0.157380 0.041706 0.018071 0.005612 0.157380 0.040213 0.000594 0.020069 0.157380 0.039745 0.204360 +0.106817 +0.032245 0.036911 0.028648 0.030643 0.017880 0.223240 0.010077 0.035646 0.033250 0.032691 0.017481 0.086927 0.016251 0.015517 0.030171 0.028435 0.015954 0.042479 0.028696 0.019206 0.019848 0.133891 0.040153 0.013285 0.012371 0.133891 0.038000 0.000628 0.019912 0.063422 0.039463 0.180870 +0.438194 +0.032727 0.039064 0.028411 0.033915 0.015672 0.027450 0.009934 0.036217 0.029902 0.029801 0.016176 0.053688 0.015308 0.015511 0.039038 0.032278 0.016466 0.061981 0.028368 0.019933 0.021898 0.180870 0.040954 0.013113 0.005238 0.180870 0.040602 0.001817 0.019048 0.133891 0.041278 0.204360 +0.035826 +0.030956 0.035617 0.037706 0.029495 0.016011 0.081838 0.011388 0.035459 0.028384 0.031122 0.014824 0.082987 0.015249 0.015549 0.029895 0.028913 0.018060 0.040801 0.030238 0.019757 0.022674 0.086911 0.041390 0.013916 0.013472 0.133891 0.038265 0.001083 0.019678 0.133891 0.038085 0.157380 +0.121986 +0.028921 0.037313 0.031646 0.028940 0.015379 0.030945 0.010589 0.037129 0.028546 0.033764 0.015185 0.157261 0.015395 0.015890 0.036064 0.030886 0.018108 0.080275 0.028363 0.020217 0.019804 0.110401 0.038885 0.012536 0.012333 0.063422 0.039715 0.001100 0.019264 0.110401 0.041573 0.133891 +0.315358 +0.029406 0.036979 0.029868 0.034762 0.018004 0.038664 0.010196 0.036748 0.035823 0.029354 0.016710 0.044096 0.016394 0.015811 0.029274 0.032119 0.016363 0.019964 0.028075 0.019456 0.020785 0.110401 0.038007 0.012374 0.010781 0.063422 0.040234 0.001718 0.020204 0.063422 0.040254 0.157380 +0.007230 +0.029455 0.035820 0.039476 0.031257 0.016022 0.050383 0.009764 0.035882 0.028871 0.033100 0.017348 0.048794 0.016362 0.016417 0.030246 0.030568 0.018503 0.069693 0.027793 0.020587 0.021358 0.133891 0.039321 0.015428 0.006087 0.086911 0.041901 0.001443 0.018802 0.110401 0.041106 0.157380 +0.111995 +0.029863 0.033869 0.031554 0.029715 0.015459 0.086917 0.011655 0.035765 0.028639 0.028572 0.016686 0.141490 0.016158 0.015867 0.028475 0.029846 0.016009 0.063092 0.028878 0.019714 0.023334 0.063422 0.038581 0.014716 0.009253 0.063422 0.038677 0.001542 0.020544 0.063422 0.040003 0.157380 +0.311965 +0.029502 0.037444 0.029414 0.028324 0.018257 0.035810 0.010902 0.036607 0.029914 0.029381 0.014283 0.018267 0.016160 0.015511 0.030748 0.029372 0.015086 0.122755 0.027368 0.019101 0.020204 0.110401 0.040240 0.017045 0.004806 0.110401 0.041544 0.001341 0.020812 0.063422 0.040173 0.180870 +0.122813 +0.030194 0.038495 0.028492 0.030986 0.018396 0.304345 0.011523 0.036183 0.028321 0.028758 0.015526 0.124129 0.015420 0.015933 0.033512 0.028528 0.015940 0.205357 0.029762 0.020385 0.019021 0.086911 0.039167 0.013036 0.006052 0.063422 0.041140 0.000556 0.019735 0.086911 0.039549 0.157380 +0.699496 +0.029034 0.037043 0.029373 0.034461 0.014576 0.201019 0.011073 0.037461 0.031839 0.030910 0.017247 0.061836 0.015207 0.015631 0.032547 0.032235 0.017109 0.052332 0.029072 0.020420 0.023146 0.086911 0.040778 0.018273 0.012141 0.063422 0.042241 0.000210 0.020942 0.063422 0.038933 0.157380 +0.348520 +0.031394 0.033939 0.029266 0.028689 0.014854 0.110900 0.009561 0.037461 0.033406 0.029286 0.016443 0.024016 0.015064 0.015918 0.029244 0.032124 0.018578 0.047862 0.026585 0.020089 0.021237 0.157380 0.042048 0.013045 0.008903 0.133891 0.038914 0.001149 0.021074 0.063422 0.039663 0.204360 +0.150453 +0.028484 0.033145 0.030030 0.030003 0.018766 0.032886 0.011015 0.037134 0.034800 0.028208 0.018241 0.177845 0.016367 0.015747 0.030122 0.029849 0.014960 0.059236 0.030055 0.019652 0.022485 0.063422 0.039639 0.015227 0.006640 0.063422 0.037628 0.000409 0.021123 0.110401 0.039337 0.133891 +0.317264 +0.031987 0.035584 0.033065 0.028342 0.016656 0.149419 0.010349 0.036638 0.030261 0.029554 0.017609 0.063661 0.015465 0.015866 0.031986 0.029324 0.015821 0.038096 0.027531 0.019830 0.023459 0.110401 0.040409 0.014057 0.005984 0.063422 0.039785 0.001889 0.019888 0.086911 0.039831 0.133891 +0.400216 +0.029170 0.037689 0.033422 0.032858 0.015406 0.124726 0.010970 0.035571 0.029242 0.029212 0.014336 0.256295 0.016175 0.015717 0.029654 0.028926 0.016273 0.101293 0.028690 0.019710 0.019154 0.063422 0.039426 0.012251 0.010175 0.110401 0.041711 0.000398 0.020054 0.110401 0.041133 0.180870 +0.602750 +0.029571 0.038137 0.029053 0.029899 0.017491 0.055758 0.011531 0.035415 0.028468 0.030456 0.018504 0.129800 0.015141 0.015873 0.028419 0.028803 0.014391 0.025590 0.025230 0.018901 0.021489 0.086911 0.038716 0.015344 0.005404 0.086911 0.040752 0.001715 0.019180 0.086911 0.041339 0.133891 +0.239962 +0.031493 0.039588 0.030332 0.028580 0.014336 0.031719 0.010122 0.035313 0.031629 0.032662 0.015053 0.067203 0.015566 0.015938 0.033793 0.029374 0.016878 0.042542 0.027683 0.020451 0.021734 0.063422 0.038807 0.015428 0.005680 0.180870 0.038065 0.002286 0.020111 0.086911 0.038518 0.204360 +0.017702 +0.032850 0.035976 0.030559 0.030287 0.018167 0.016658 0.011413 0.035259 0.028733 0.031620 0.015568 0.022147 0.015788 0.016250 0.035598 0.029833 0.017911 0.099412 0.025010 0.019568 0.021300 0.063422 0.037905 0.016897 0.007800 0.180870 0.041112 0.001148 0.020891 0.086911 0.040977 0.204360 +0.024565 +0.028208 0.034195 0.030069 0.028226 0.015406 0.026813 0.011193 0.036204 0.040706 0.038954 0.018550 0.212002 0.015959 0.016423 0.029273 0.032735 0.017006 0.043802 0.026423 0.020500 0.021671 0.157380 0.038932 0.017185 0.012635 0.110401 0.040421 0.000725 0.021062 0.110401 0.038777 0.180870 +0.269728 +0.031121 0.035090 0.035553 0.031067 0.016767 0.042852 0.010090 0.036111 0.033948 0.028325 0.016511 0.078221 0.015525 0.016295 0.030492 0.028355 0.017095 0.064484 0.028773 0.020680 0.021868 0.086911 0.039489 0.014335 0.011649 0.086911 0.040876 0.001346 0.020794 0.063422 0.041168 0.157380 +0.115780 +0.029288 0.037188 0.035861 0.029308 0.017086 0.042281 0.011554 0.036469 0.028293 0.029727 0.015265 0.030598 0.015189 0.016198 0.029642 0.030592 0.015363 0.094317 0.029831 0.020733 0.020996 0.063422 0.039345 0.015712 0.006559 0.063422 0.037756 0.000913 0.019751 0.063422 0.038845 0.157380 +0.045352 +0.030492 0.034547 0.035244 0.030752 0.014629 0.079018 0.011548 0.036555 0.029780 0.030906 0.018204 0.074657 0.015730 0.016026 0.029564 0.040985 0.016462 0.133641 0.027270 0.019915 0.019875 0.086911 0.041876 0.012226 0.007087 0.133891 0.040027 0.000867 0.020748 0.086911 0.041182 0.157380 +0.209515 +0.032106 0.035526 0.028656 0.029278 0.017207 0.042363 0.009845 0.037253 0.030792 0.034868 0.014841 0.097201 0.016418 0.016242 0.033681 0.028412 0.016752 0.019414 0.029848 0.020332 0.020560 0.086911 0.041625 0.016904 0.010464 0.063422 0.038949 0.002038 0.019313 0.110401 0.038724 0.133891 +0.092095 +0.029724 0.037747 0.030486 0.031792 0.017056 0.029024 0.011348 0.035723 0.030741 0.031965 0.015862 0.038312 0.015728 0.015638 0.035925 0.028414 0.016174 0.028684 0.028442 0.019781 0.022570 0.086911 0.040638 0.011854 0.008972 0.086911 0.041843 0.000864 0.019217 0.110401 0.042097 0.157380 +0.001579 +0.028202 0.034347 0.029541 0.029579 0.017981 0.137731 0.011660 0.035374 0.028483 0.029927 0.015215 0.040436 0.015276 0.015638 0.029313 0.029087 0.018108 0.143655 0.029193 0.019510 0.022543 0.063422 0.041781 0.012406 0.013014 0.063422 0.040256 0.000231 0.020611 0.110401 0.041776 0.133891 +0.452529 +0.032262 0.037787 0.029576 0.030531 0.018593 0.400936 0.009697 0.036435 0.028554 0.033741 0.016581 0.027985 0.015205 0.016036 0.033072 0.030570 0.018030 0.036356 0.026658 0.019413 0.019083 0.063422 0.038139 0.016928 0.013659 0.063422 0.040729 0.001163 0.019590 0.086911 0.039939 0.133891 +0.625863 +0.032314 0.035758 0.036962 0.034798 0.016497 0.174509 0.011372 0.035664 0.031682 0.031210 0.017241 0.191928 0.016132 0.016253 0.030101 0.030466 0.015145 0.035186 0.028322 0.020962 0.019843 0.110401 0.039421 0.015801 0.010942 0.063422 0.041426 0.000594 0.020754 0.110401 0.042094 0.180870 +0.348067 +0.030601 0.033969 0.029535 0.034827 0.014259 0.025296 0.010368 0.036749 0.029567 0.030298 0.014543 0.204227 0.015265 0.016194 0.029430 0.030841 0.016216 0.148384 0.028908 0.020597 0.021016 0.063422 0.040179 0.018390 0.009843 0.063422 0.040888 0.001981 0.020243 0.086911 0.040743 0.133891 +0.460198 +0.030775 0.036417 0.029276 0.030074 0.018633 0.128540 0.010694 0.037314 0.029369 0.031598 0.017435 0.086709 0.015226 0.015543 0.029233 0.028353 0.015672 0.145426 0.028083 0.020349 0.022695 0.133891 0.040174 0.012999 0.010939 0.180870 0.041407 0.000624 0.020454 0.063422 0.040383 0.204360 +0.419407 +0.032048 0.034817 0.031446 0.035085 0.017829 0.121802 0.010678 0.037522 0.028242 0.030782 0.017832 0.140981 0.015704 0.015734 0.028852 0.029070 0.017816 0.039600 0.029293 0.018834 0.021421 0.063422 0.041826 0.015233 0.012441 0.086911 0.040936 0.001397 0.020474 0.133891 0.039050 0.157380 +0.302711 +0.030619 0.039006 0.029076 0.036286 0.016005 0.133485 0.011544 0.036099 0.028859 0.031092 0.016926 0.067087 0.016108 0.015839 0.029070 0.033937 0.018318 0.018040 0.028306 0.019668 0.021982 0.110401 0.041421 0.014213 0.011767 0.133891 0.041439 0.000245 0.021025 0.110401 0.041178 0.204360 +0.243799 +0.028950 0.035346 0.029476 0.032779 0.017344 0.122392 0.011166 0.035854 0.033919 0.028979 0.016198 0.278086 0.015487 0.016026 0.029227 0.029184 0.014385 0.117020 0.026676 0.020463 0.021841 0.086911 0.040438 0.012244 0.009639 0.133891 0.039899 0.002262 0.020659 0.157380 0.038012 0.180870 +0.691537 +0.032384 0.039417 0.040638 0.032946 0.014696 0.055809 0.010506 0.037410 0.031282 0.033271 0.016728 0.084626 0.015639 0.015841 0.028257 0.030909 0.018244 0.024343 0.028022 0.019881 0.022108 0.133891 0.038717 0.013957 0.005069 0.086911 0.038269 0.002033 0.020547 0.086911 0.041604 0.157380 +0.108454 +0.029335 0.033230 0.028979 0.031449 0.015584 0.065132 0.010296 0.036235 0.028419 0.028545 0.017961 0.051688 0.016185 0.015912 0.030119 0.030562 0.015235 0.065550 0.027945 0.019267 0.019321 0.157380 0.038616 0.013350 0.008742 0.110401 0.038705 0.001450 0.020039 0.157380 0.040513 0.204360 +0.110694 +0.028685 0.035057 0.029404 0.029196 0.016326 0.033162 0.011110 0.036398 0.031469 0.029675 0.018699 0.079385 0.015411 0.016435 0.033443 0.029766 0.014142 0.035550 0.027807 0.019785 0.021144 0.086911 0.040939 0.013001 0.008255 0.063422 0.037706 0.000895 0.019827 0.063422 0.040048 0.133891 +0.035962 +0.030994 0.034756 0.028411 0.028764 0.018574 0.037850 0.009651 0.037092 0.028910 0.030597 0.018478 0.134288 0.015318 0.015680 0.030861 0.030733 0.016227 0.084209 0.028141 0.020768 0.021949 0.110401 0.038434 0.016776 0.006658 0.086911 0.038163 0.001660 0.019991 0.110401 0.037641 0.133891 +0.276646 +0.030713 0.037948 0.028611 0.029296 0.015343 0.156349 0.011419 0.035358 0.028743 0.029692 0.018081 0.038079 0.016100 0.015689 0.028721 0.028303 0.016534 0.080185 0.026883 0.021100 0.021773 0.110401 0.040545 0.015581 0.004907 0.133891 0.039196 0.000848 0.019566 0.133891 0.042128 0.204360 +0.442118 +0.029362 0.037060 0.028651 0.034016 0.015825 0.028144 0.010235 0.036203 0.031939 0.029353 0.017450 0.066309 0.015799 0.016203 0.032233 0.032162 0.018184 0.025124 0.028857 0.020188 0.020620 0.063422 0.040085 0.011892 0.005424 0.086911 0.038742 0.001026 0.019094 0.157380 0.042273 0.180870 +0.008712 +0.031744 0.033578 0.031190 0.030379 0.017967 0.048945 0.011727 0.037529 0.028821 0.029972 0.018573 0.178755 0.015662 0.015825 0.032832 0.029357 0.016431 0.235292 0.029029 0.019946 0.020438 0.133891 0.040948 0.018491 0.012240 0.110401 0.039641 0.002018 0.019414 0.110401 0.038802 0.157380 +0.657914 +0.031239 0.039539 0.030067 0.028733 0.015500 0.038079 0.011153 0.036534 0.028325 0.031261 0.018353 0.129644 0.016060 0.016316 0.029319 0.029868 0.015955 0.063726 0.027435 0.020222 0.019083 0.180870 0.041418 0.013220 0.008020 0.110401 0.041103 0.000188 0.020822 0.157380 0.040581 0.204360 +0.166158 +0.029070 0.037401 0.031901 0.029549 0.015231 0.026313 0.010277 0.037258 0.032592 0.029692 0.014229 0.096479 0.015998 0.016124 0.028302 0.029535 0.016864 0.040762 0.027741 0.019057 0.022535 0.133891 0.037666 0.012323 0.011905 0.063422 0.042204 0.000840 0.019279 0.133891 0.041904 0.157380 +0.112987 +0.032835 0.034332 0.030741 0.036974 0.017692 0.220115 0.010384 0.035696 0.028999 0.029850 0.018219 0.294172 0.015343 0.016281 0.030433 0.032239 0.014138 0.019939 0.028852 0.019178 0.019736 0.110401 0.039867 0.014608 0.010939 0.133891 0.041514 0.001235 0.019495 0.133891 0.039489 0.180870 +0.703246 +0.032608 0.039510 0.033428 0.029236 0.018466 0.110280 0.009574 0.036130 0.029282 0.032452 0.014573 0.040045 0.015819 0.016422 0.031421 0.030287 0.015319 0.030164 0.026382 0.019032 0.022686 0.063422 0.041987 0.017847 0.007987 0.157380 0.042066 0.001647 0.019850 0.063422 0.037753 0.180870 +0.068340 +0.030671 0.039899 0.029711 0.028227 0.017342 0.019758 0.011347 0.035707 0.030054 0.031787 0.016644 0.140094 0.015646 0.015578 0.028347 0.035884 0.015409 0.017787 0.027078 0.019577 0.019909 0.063422 0.039194 0.013833 0.010935 0.133891 0.041334 0.002055 0.021016 0.110401 0.041607 0.204360 +0.045279 +0.028519 0.038052 0.028388 0.033117 0.016718 0.025116 0.011005 0.037478 0.028426 0.029316 0.015370 0.048024 0.016031 0.015570 0.028723 0.028980 0.015651 0.070188 0.029279 0.019143 0.021397 0.133891 0.040567 0.017000 0.010088 0.133891 0.040021 0.000651 0.020284 0.110401 0.039223 0.204360 +0.002546 +0.030360 0.034146 0.028795 0.030019 0.016167 0.157954 0.011206 0.036008 0.031828 0.032103 0.017728 0.069929 0.015792 0.015862 0.030719 0.031140 0.018238 0.046971 0.027024 0.018919 0.022990 0.086911 0.041199 0.018573 0.007973 0.086911 0.038230 0.000570 0.020593 0.086911 0.039299 0.133891 +0.330895 +0.031332 0.036054 0.028458 0.029744 0.014250 0.056953 0.010421 0.036752 0.038203 0.035187 0.015136 0.073128 0.015781 0.015794 0.034403 0.029285 0.015186 0.043033 0.027707 0.019331 0.021030 0.110401 0.037691 0.013009 0.009578 0.086911 0.039764 0.000187 0.019419 0.063422 0.041525 0.133891 +0.195672 +0.029016 0.034624 0.028410 0.029278 0.015292 0.022948 0.010788 0.036240 0.030575 0.031178 0.014425 0.020810 0.015820 0.015639 0.029487 0.032404 0.014250 0.246087 0.030385 0.019179 0.022236 0.133891 0.039598 0.018237 0.008079 0.157380 0.040447 0.001630 0.019691 0.086911 0.040134 0.204360 +0.383237 +0.032579 0.035779 0.028989 0.031281 0.016668 0.065413 0.011009 0.036166 0.030162 0.029048 0.016128 0.018617 0.015933 0.016088 0.028391 0.031329 0.017345 0.067803 0.027882 0.019417 0.021654 0.086911 0.041414 0.017056 0.006251 0.086911 0.037988 0.001797 0.020732 0.157380 0.037683 0.180870 +0.039909 +0.029034 0.033635 0.031329 0.031726 0.017311 0.086713 0.010597 0.037277 0.029003 0.031505 0.014593 0.118709 0.015704 0.016410 0.029210 0.034151 0.016767 0.131676 0.027620 0.020090 0.023409 0.110401 0.041698 0.018666 0.009788 0.133891 0.040947 0.001375 0.020961 0.157380 0.038751 0.180870 +0.387487 +0.028396 0.039893 0.031506 0.028322 0.014790 0.086224 0.009601 0.035602 0.030532 0.029432 0.016302 0.024423 0.016365 0.015753 0.032573 0.028830 0.014719 0.030765 0.026304 0.021027 0.020986 0.133891 0.040875 0.017508 0.007187 0.133891 0.038072 0.001926 0.019615 0.157380 0.040025 0.204360 +0.010854 +0.030321 0.034277 0.028243 0.028769 0.017703 0.050665 0.010271 0.037453 0.028627 0.034953 0.017624 0.046375 0.015283 0.015726 0.036392 0.031543 0.015599 0.039592 0.028321 0.020521 0.021960 0.063422 0.039385 0.012273 0.004784 0.063422 0.038351 0.001203 0.018944 0.110401 0.039069 0.133891 +0.066779 diff --git a/lib/ann/fann/datasets/bank32fm.train b/lib/ann/fann/datasets/bank32fm.train new file mode 100644 index 0000000..8bf8160 --- /dev/null +++ b/lib/ann/fann/datasets/bank32fm.train @@ -0,0 +1,4097 @@ +2048 32 1 +0.031033 0.033563 0.030325 0.029705 0.014498 0.056337 0.011697 0.035937 0.029669 0.028296 0.014981 0.026507 0.015139 0.015841 0.035542 0.030916 0.017335 0.033760 0.027308 0.020122 0.023476 0.110401 0.038743 0.014973 0.005865 0.086911 0.038549 0.001030 0.019641 0.133891 0.038088 0.157380 +0.022003 +0.030249 0.036863 0.039441 0.030137 0.014111 0.076007 0.010243 0.036789 0.030535 0.028421 0.015253 0.296459 0.015696 0.015785 0.028779 0.028557 0.017179 0.043167 0.028323 0.019929 0.019998 0.086911 0.040675 0.017373 0.011225 0.110401 0.040196 0.001465 0.020852 0.063422 0.038767 0.133891 +0.519877 +0.028589 0.036605 0.029532 0.029749 0.015252 0.061082 0.010387 0.035319 0.029050 0.028214 0.017086 0.021992 0.015369 0.015986 0.029061 0.029313 0.018673 0.111868 0.027775 0.018840 0.020921 0.063422 0.040003 0.014746 0.013529 0.063422 0.041850 0.001167 0.020732 0.086911 0.040455 0.133891 +0.063963 +0.030383 0.034602 0.030025 0.029651 0.015688 0.030042 0.011073 0.036375 0.028861 0.031564 0.017388 0.016639 0.015206 0.015901 0.030164 0.030754 0.014852 0.133966 0.029436 0.020275 0.019876 0.110401 0.042255 0.018621 0.006526 0.157380 0.038223 0.000510 0.020177 0.157380 0.042036 0.204360 +0.040393 +0.030168 0.039581 0.028254 0.028666 0.015313 0.043351 0.010830 0.036878 0.028809 0.033987 0.016052 0.058732 0.015082 0.015904 0.029832 0.030328 0.014823 0.027040 0.028249 0.019336 0.019426 0.110401 0.039830 0.014700 0.010282 0.157380 0.038729 0.000207 0.020229 0.157380 0.040187 0.180870 +0.045906 +0.032529 0.037337 0.030292 0.028568 0.017068 0.183725 0.010317 0.036304 0.028885 0.028343 0.016337 0.024087 0.015887 0.015551 0.029801 0.033225 0.018751 0.073518 0.027370 0.020256 0.021472 0.133891 0.040514 0.013858 0.007330 0.157380 0.038319 0.001114 0.020891 0.063422 0.038442 0.204360 +0.394383 +0.031998 0.039115 0.031158 0.029862 0.016578 0.018920 0.009981 0.036115 0.038510 0.028566 0.018092 0.079237 0.015616 0.016312 0.028984 0.029236 0.016984 0.072081 0.025662 0.019756 0.023139 0.086911 0.040878 0.012813 0.010253 0.086911 0.038584 0.002252 0.019802 0.063422 0.038712 0.204360 +0.008505 +0.029965 0.035112 0.028879 0.028613 0.016402 0.106509 0.010965 0.035614 0.031615 0.028523 0.014569 0.060406 0.015777 0.015654 0.030314 0.029634 0.018228 0.149814 0.027006 0.021065 0.018809 0.086911 0.041137 0.018250 0.013289 0.157380 0.041149 0.002284 0.020367 0.110401 0.042035 0.180870 +0.280764 +0.030994 0.035400 0.028799 0.030651 0.017059 0.323085 0.011133 0.035749 0.029131 0.029012 0.017691 0.051616 0.015544 0.015570 0.031235 0.037993 0.018761 0.066224 0.027584 0.020679 0.019526 0.133891 0.039377 0.015881 0.011349 0.063422 0.039741 0.002168 0.019022 0.063422 0.037592 0.204360 +0.532608 +0.028917 0.038940 0.029379 0.029556 0.015302 0.034194 0.011243 0.035890 0.029278 0.030062 0.014741 0.046389 0.016320 0.015533 0.032306 0.029231 0.014475 0.031156 0.028833 0.020637 0.022479 0.110401 0.038409 0.012613 0.011419 0.110401 0.038895 0.000395 0.020540 0.180870 0.040221 0.204360 +0 +0.030676 0.036951 0.029552 0.032898 0.014834 0.269831 0.009434 0.036783 0.029585 0.028291 0.015591 0.237704 0.016086 0.015508 0.028701 0.030856 0.015663 0.048540 0.029859 0.020890 0.022571 0.133891 0.041055 0.013033 0.013617 0.133891 0.037660 0.000951 0.020759 0.063422 0.041410 0.157380 +0.678191 +0.031978 0.034299 0.028911 0.041692 0.018394 0.035170 0.010106 0.036968 0.028468 0.029083 0.014744 0.130475 0.015919 0.015888 0.029170 0.031878 0.015820 0.121976 0.026900 0.020856 0.020239 0.110401 0.038556 0.012140 0.004761 0.133891 0.039694 0.001670 0.020769 0.086911 0.037995 0.157380 +0.335395 +0.031128 0.038568 0.028600 0.031100 0.014568 0.080904 0.009408 0.037150 0.034877 0.029332 0.016527 0.048166 0.015972 0.016361 0.030021 0.029565 0.016201 0.154277 0.027410 0.019810 0.023307 0.180870 0.041078 0.014508 0.012136 0.110401 0.038428 0.001033 0.018811 0.133891 0.037818 0.204360 +0.256760 +0.031744 0.038800 0.034330 0.028578 0.014987 0.137399 0.011600 0.037435 0.029867 0.031046 0.017550 0.027640 0.015957 0.015819 0.029960 0.029325 0.014212 0.025006 0.028104 0.020781 0.023010 0.180870 0.041922 0.013927 0.012031 0.063422 0.038741 0.001120 0.019055 0.157380 0.038452 0.204360 +0.048480 +0.028272 0.036015 0.031007 0.029120 0.018118 0.093917 0.010950 0.036539 0.033320 0.028225 0.017508 0.134341 0.015954 0.016223 0.030105 0.032635 0.014624 0.019143 0.026516 0.019906 0.023398 0.133891 0.041532 0.015603 0.005964 0.157380 0.039433 0.000325 0.020125 0.133891 0.041524 0.204360 +0.181691 +0.031997 0.038998 0.030290 0.031097 0.016137 0.068677 0.011734 0.035646 0.032364 0.028220 0.015495 0.028919 0.015436 0.015729 0.033290 0.036007 0.014452 0.184611 0.029406 0.020021 0.019568 0.063422 0.037609 0.017904 0.008377 0.086911 0.039741 0.001860 0.020398 0.110401 0.039650 0.133891 +0.361420 +0.029011 0.037139 0.037448 0.029574 0.017975 0.026611 0.010791 0.035725 0.028598 0.035694 0.014608 0.325896 0.015662 0.015684 0.028984 0.033475 0.015264 0.086482 0.028316 0.021014 0.023449 0.180870 0.040116 0.015553 0.013488 0.180870 0.041074 0.000808 0.020594 0.110401 0.039984 0.204360 +0.570634 +0.031667 0.037029 0.042756 0.028517 0.016715 0.124405 0.011719 0.036020 0.028651 0.030450 0.018649 0.041760 0.015465 0.016283 0.028544 0.028810 0.015879 0.149329 0.028559 0.019252 0.020414 0.086911 0.038762 0.016390 0.013950 0.133891 0.038294 0.001202 0.018986 0.063422 0.040056 0.157380 +0.341545 +0.028513 0.038449 0.031611 0.028459 0.015143 0.112190 0.010651 0.037412 0.044782 0.029292 0.016850 0.208860 0.016127 0.016258 0.032590 0.031306 0.016946 0.124546 0.027790 0.020770 0.022300 0.063422 0.039972 0.013879 0.004723 0.157380 0.039231 0.001093 0.020521 0.063422 0.039236 0.204360 +0.592093 +0.028888 0.035725 0.036591 0.028953 0.015804 0.119882 0.010472 0.037388 0.031674 0.029075 0.018220 0.094142 0.016134 0.016301 0.031598 0.032676 0.017304 0.032790 0.028124 0.018807 0.020471 0.063422 0.040250 0.014266 0.008037 0.086911 0.040621 0.000466 0.019736 0.157380 0.040355 0.180870 +0.228648 +0.029558 0.033430 0.032007 0.030384 0.015485 0.028277 0.010222 0.036433 0.029254 0.029940 0.016592 0.290020 0.015872 0.016352 0.028463 0.029539 0.018694 0.040959 0.030019 0.020800 0.022313 0.086911 0.040156 0.013443 0.013417 0.110401 0.041334 0.000836 0.019123 0.063422 0.039967 0.157380 +0.363832 +0.032048 0.036489 0.030201 0.029045 0.015654 0.186905 0.009688 0.037563 0.038527 0.036028 0.014898 0.021226 0.015504 0.016031 0.031489 0.029542 0.016007 0.104572 0.027265 0.019244 0.023457 0.133891 0.040341 0.014369 0.009959 0.110401 0.039457 0.001993 0.020873 0.063422 0.038726 0.180870 +0.300723 +0.030929 0.038082 0.030920 0.028360 0.015492 0.065927 0.010463 0.035575 0.030096 0.028561 0.015429 0.031466 0.015148 0.015878 0.028344 0.028511 0.018764 0.106633 0.028851 0.019526 0.021610 0.110401 0.041921 0.014525 0.008034 0.133891 0.039941 0.001576 0.019698 0.086911 0.041337 0.157380 +0.148267 +0.029658 0.033800 0.029930 0.029702 0.016489 0.023616 0.010623 0.037350 0.028398 0.030159 0.017894 0.042649 0.015972 0.016232 0.030731 0.028277 0.017656 0.022349 0.028192 0.020949 0.021578 0.133891 0.038123 0.015874 0.011959 0.110401 0.041671 0.002247 0.019938 0.110401 0.039731 0.157380 +0.003937 +0.029709 0.036944 0.029442 0.030371 0.017732 0.037383 0.011698 0.036876 0.028316 0.028733 0.016208 0.111015 0.016019 0.015936 0.029027 0.029684 0.017212 0.074589 0.026619 0.019048 0.019854 0.133891 0.038855 0.015174 0.012589 0.063422 0.041748 0.001623 0.020704 0.110401 0.037673 0.180870 +0.177438 +0.028855 0.039025 0.028521 0.030118 0.015456 0.016905 0.011702 0.037116 0.029116 0.030885 0.016272 0.028500 0.016305 0.016095 0.039178 0.032251 0.014515 0.166484 0.029470 0.020493 0.021290 0.110401 0.038619 0.018287 0.006601 0.063422 0.041657 0.001896 0.020329 0.110401 0.040260 0.157380 +0.160220 +0.032500 0.035933 0.029919 0.028898 0.016393 0.070662 0.010119 0.035454 0.031524 0.029196 0.014792 0.019516 0.015296 0.015867 0.028229 0.029069 0.015433 0.070958 0.028049 0.020100 0.019538 0.180870 0.039750 0.017566 0.009718 0.133891 0.041158 0.000643 0.019833 0.157380 0.042081 0.204360 +0.104211 +0.030641 0.032934 0.030550 0.030618 0.017050 0.018457 0.009483 0.035917 0.028585 0.028826 0.015680 0.044434 0.015459 0.015728 0.028979 0.030434 0.014927 0.016532 0.027758 0.019964 0.022354 0.133891 0.039835 0.015717 0.012610 0.110401 0.041427 0.001246 0.019205 0.157380 0.038917 0.204360 +0 +0.030190 0.039867 0.028341 0.029635 0.016076 0.075975 0.011679 0.037571 0.028409 0.031306 0.016925 0.110862 0.015768 0.015565 0.031648 0.034215 0.014293 0.048624 0.030555 0.020342 0.019187 0.086911 0.038497 0.015222 0.008186 0.063422 0.038569 0.001779 0.019699 0.086911 0.037784 0.133891 +0.210642 +0.028597 0.037843 0.030254 0.031668 0.018742 0.036384 0.010816 0.037308 0.029471 0.028923 0.015234 0.152080 0.015118 0.015678 0.030153 0.030529 0.018588 0.053526 0.031312 0.018997 0.023390 0.110401 0.039925 0.018537 0.006755 0.110401 0.038766 0.000778 0.019594 0.110401 0.039068 0.204360 +0.230346 +0.029213 0.033819 0.030421 0.028544 0.017832 0.168109 0.009978 0.037452 0.030389 0.029429 0.018256 0.204875 0.015675 0.015892 0.028499 0.028499 0.018765 0.032432 0.029234 0.019332 0.020018 0.157380 0.039105 0.017098 0.006852 0.180870 0.040417 0.001987 0.019380 0.063422 0.037922 0.204360 +0.473419 +0.028936 0.037662 0.033145 0.035560 0.014157 0.030063 0.010019 0.036881 0.032665 0.029003 0.018295 0.036898 0.015406 0.015945 0.028513 0.032046 0.017043 0.158892 0.029065 0.018867 0.023409 0.110401 0.040931 0.015466 0.012255 0.086911 0.040428 0.001914 0.021006 0.063422 0.040291 0.133891 +0.208207 +0.029768 0.036258 0.028671 0.029200 0.015523 0.091006 0.010440 0.036198 0.034079 0.029809 0.014737 0.158394 0.015975 0.015832 0.029384 0.028322 0.014438 0.045772 0.029613 0.019429 0.021273 0.086911 0.039786 0.017809 0.005719 0.086911 0.040771 0.000462 0.020299 0.086911 0.041239 0.133891 +0.285694 +0.030633 0.039376 0.037289 0.031645 0.015891 0.041431 0.011411 0.036323 0.028465 0.028333 0.016882 0.030377 0.015532 0.016378 0.030789 0.028424 0.017015 0.052910 0.028293 0.019196 0.020867 0.133891 0.038601 0.017150 0.012339 0.110401 0.041257 0.001993 0.020740 0.063422 0.039636 0.157380 +0.040631 +0.028242 0.036767 0.028999 0.028246 0.017854 0.336907 0.010949 0.035480 0.029461 0.029579 0.017294 0.034004 0.015575 0.016201 0.028253 0.029262 0.014763 0.047924 0.027941 0.021089 0.019353 0.133891 0.041341 0.017003 0.012192 0.063422 0.038601 0.001469 0.020593 0.180870 0.041568 0.204360 +0.577638 +0.032818 0.039178 0.030271 0.028823 0.017721 0.422187 0.009543 0.037204 0.029062 0.038888 0.014530 0.097968 0.015493 0.015575 0.028574 0.030319 0.016167 0.043975 0.028696 0.019083 0.019512 0.110401 0.040891 0.016602 0.005701 0.110401 0.042235 0.000119 0.020824 0.063422 0.037751 0.133891 +0.704926 +0.029989 0.039728 0.028362 0.030807 0.015937 0.078150 0.010007 0.036309 0.031747 0.029360 0.015918 0.124583 0.015670 0.015684 0.029016 0.032271 0.016252 0.046275 0.028658 0.021059 0.021691 0.133891 0.040875 0.014835 0.012011 0.086911 0.041936 0.001247 0.020972 0.110401 0.040903 0.157380 +0.155683 +0.032149 0.036320 0.034108 0.030444 0.015750 0.061406 0.010426 0.036770 0.030921 0.029156 0.016316 0.081110 0.015126 0.015880 0.031141 0.033875 0.015121 0.094851 0.028240 0.018896 0.020789 0.133891 0.039909 0.013718 0.010288 0.086911 0.041591 0.000508 0.019858 0.133891 0.041830 0.157380 +0.189600 +0.030797 0.036795 0.032717 0.028978 0.017458 0.029729 0.010680 0.036850 0.029316 0.031062 0.018402 0.076667 0.015654 0.016058 0.028745 0.032095 0.015165 0.147919 0.028968 0.019115 0.021455 0.110401 0.040069 0.017039 0.011500 0.110401 0.040004 0.001707 0.019233 0.086911 0.042245 0.157380 +0.177860 +0.031409 0.035150 0.031032 0.033639 0.014902 0.069716 0.011462 0.037166 0.031630 0.028693 0.014285 0.026453 0.015426 0.015777 0.030868 0.029619 0.017748 0.133686 0.029248 0.021001 0.019488 0.063422 0.040658 0.014670 0.012632 0.110401 0.041021 0.001615 0.019779 0.110401 0.038215 0.133891 +0.195234 +0.028810 0.035629 0.030651 0.028191 0.016032 0.160138 0.010982 0.037297 0.035930 0.028804 0.016168 0.061987 0.015163 0.016156 0.028872 0.030276 0.014623 0.105084 0.026591 0.020397 0.022676 0.133891 0.037818 0.013293 0.007600 0.157380 0.037848 0.001445 0.019888 0.063422 0.041813 0.180870 +0.436068 +0.032207 0.038835 0.031145 0.034035 0.014445 0.225532 0.011033 0.036867 0.028668 0.032354 0.018615 0.026941 0.015260 0.015671 0.028393 0.029531 0.017247 0.025311 0.027600 0.020131 0.021626 0.110401 0.040340 0.018711 0.007919 0.063422 0.041328 0.001096 0.019860 0.086911 0.039911 0.157380 +0.262187 +0.032590 0.038665 0.028280 0.038968 0.017526 0.023269 0.010598 0.036740 0.029034 0.031464 0.015445 0.026653 0.016347 0.015957 0.031501 0.031155 0.015964 0.139907 0.029153 0.021043 0.018827 0.157380 0.041758 0.013638 0.010992 0.110401 0.039487 0.000589 0.020675 0.133891 0.041744 0.204360 +0.092827 +0.032803 0.034704 0.028872 0.029721 0.016880 0.071232 0.010390 0.037085 0.029055 0.033611 0.016150 0.020601 0.016007 0.015922 0.028237 0.033969 0.014676 0.025624 0.028721 0.020719 0.018887 0.086911 0.041900 0.011823 0.011826 0.063422 0.040747 0.000978 0.019476 0.086911 0.038298 0.133891 +0.014112 +0.030788 0.037334 0.032234 0.028824 0.014677 0.118380 0.011640 0.037095 0.029358 0.029211 0.014880 0.061412 0.015694 0.016366 0.030578 0.030127 0.015694 0.146260 0.028734 0.020085 0.021240 0.086911 0.041863 0.013043 0.010673 0.110401 0.041569 0.000638 0.019566 0.063422 0.040780 0.157380 +0.372265 +0.031682 0.034784 0.030064 0.028613 0.018026 0.087125 0.011024 0.037345 0.029150 0.028967 0.016748 0.341922 0.016395 0.016261 0.028736 0.030782 0.015818 0.058929 0.029287 0.019166 0.020780 0.086911 0.040199 0.014745 0.010373 0.086911 0.040339 0.001601 0.019784 0.110401 0.038890 0.157380 +0.645502 +0.028247 0.033994 0.030775 0.030659 0.015288 0.100520 0.010295 0.037356 0.029236 0.030877 0.016155 0.111616 0.016166 0.015687 0.028502 0.031171 0.017613 0.081389 0.027205 0.020673 0.022881 0.086911 0.038459 0.015888 0.008571 0.110401 0.041891 0.000133 0.019904 0.157380 0.041566 0.204360 +0.336061 +0.031973 0.033428 0.028266 0.030320 0.014728 0.198424 0.011497 0.036434 0.032391 0.028743 0.014960 0.143320 0.015212 0.015928 0.033757 0.029016 0.017048 0.054871 0.027295 0.018989 0.021806 0.063422 0.041609 0.016826 0.013168 0.133891 0.039730 0.002175 0.020809 0.110401 0.038300 0.180870 +0.505396 +0.032119 0.035160 0.029096 0.029310 0.017438 0.045826 0.011736 0.037350 0.030593 0.031767 0.015669 0.019707 0.015666 0.015578 0.032191 0.030094 0.018705 0.131926 0.028467 0.018803 0.023309 0.063422 0.040839 0.013438 0.005868 0.110401 0.041774 0.001938 0.019528 0.063422 0.041474 0.133891 +0.144850 +0.031077 0.033708 0.030398 0.029734 0.014956 0.127009 0.010012 0.035659 0.030892 0.029422 0.016452 0.185299 0.016054 0.016068 0.032601 0.030908 0.017646 0.076907 0.029594 0.020533 0.023299 0.133891 0.039944 0.014640 0.011052 0.157380 0.040253 0.001681 0.019721 0.110401 0.039501 0.180870 +0.375010 +0.030351 0.037563 0.028255 0.032475 0.016442 0.055974 0.011244 0.037192 0.028554 0.028434 0.015582 0.032154 0.015243 0.015826 0.028702 0.028936 0.016579 0.150471 0.026127 0.021042 0.019062 0.063422 0.040169 0.017871 0.005299 0.086911 0.042036 0.001155 0.018956 0.086911 0.040847 0.180870 +0.242305 +0.031669 0.035730 0.028314 0.029095 0.017284 0.090256 0.011518 0.037301 0.032391 0.028421 0.015554 0.018854 0.015710 0.015953 0.034853 0.030448 0.017567 0.042341 0.029456 0.020677 0.019321 0.110401 0.038313 0.014232 0.009814 0.110401 0.039174 0.000776 0.020271 0.086911 0.040947 0.133891 +0.112358 +0.031915 0.037081 0.028912 0.030939 0.016967 0.094186 0.011611 0.036707 0.030241 0.028561 0.015899 0.021451 0.015567 0.015566 0.028549 0.028423 0.015093 0.070192 0.027336 0.018808 0.021823 0.110401 0.038323 0.016546 0.013700 0.110401 0.041723 0.002074 0.020076 0.086911 0.037611 0.180870 +0.155803 +0.032191 0.034438 0.028345 0.031545 0.015386 0.066305 0.011484 0.036687 0.030903 0.030434 0.014750 0.017025 0.016320 0.015903 0.028764 0.029620 0.015957 0.061848 0.027443 0.019947 0.019969 0.110401 0.040776 0.018017 0.006788 0.133891 0.038800 0.000638 0.020015 0.157380 0.040383 0.204360 +0.002772 +0.031962 0.035009 0.029635 0.028620 0.015002 0.051988 0.010784 0.036073 0.028687 0.031600 0.018773 0.061929 0.015524 0.015730 0.030108 0.031057 0.015532 0.069931 0.026588 0.020820 0.019839 0.086911 0.040050 0.012234 0.010516 0.063422 0.039473 0.001846 0.020673 0.086911 0.038389 0.204360 +0.092486 +0.031141 0.037302 0.032983 0.028833 0.018160 0.105578 0.011202 0.036306 0.028526 0.030309 0.015626 0.020693 0.016356 0.016307 0.028268 0.029228 0.016817 0.036247 0.026696 0.019883 0.023107 0.063422 0.039867 0.014608 0.005537 0.086911 0.041920 0.001148 0.020081 0.063422 0.041670 0.180870 +0.053097 +0.032432 0.039580 0.032561 0.031044 0.015385 0.076758 0.011685 0.035360 0.028571 0.031619 0.017392 0.127455 0.015825 0.016231 0.029807 0.028280 0.016104 0.044779 0.030386 0.019871 0.022177 0.086911 0.038858 0.015803 0.010905 0.086911 0.040948 0.001227 0.018853 0.063422 0.040460 0.157380 +0.232010 +0.030063 0.035081 0.030782 0.030401 0.018381 0.247541 0.010699 0.037309 0.029141 0.028766 0.015000 0.026290 0.015595 0.016312 0.037156 0.028778 0.014701 0.031676 0.028861 0.020211 0.022130 0.110401 0.040039 0.014273 0.009225 0.063422 0.037589 0.000032 0.019407 0.086911 0.037645 0.133891 +0.386368 +0.030579 0.035299 0.030273 0.032630 0.014290 0.052004 0.010824 0.035949 0.029372 0.029539 0.015248 0.027843 0.015844 0.015712 0.028400 0.029890 0.014473 0.058222 0.029581 0.020287 0.023000 0.110401 0.038192 0.012731 0.008187 0.133891 0.041627 0.001676 0.020422 0.086911 0.041982 0.204360 +0.000912 +0.028444 0.035593 0.028830 0.028600 0.018154 0.064855 0.011701 0.035278 0.028668 0.030256 0.014741 0.216470 0.015565 0.016421 0.030790 0.029468 0.014796 0.041006 0.029153 0.019872 0.020940 0.086911 0.038333 0.017336 0.008885 0.086911 0.040675 0.000333 0.021089 0.086911 0.040087 0.180870 +0.292562 +0.029254 0.038828 0.029138 0.028851 0.015560 0.097234 0.010964 0.036795 0.040374 0.031946 0.017920 0.037448 0.015875 0.016256 0.031126 0.028796 0.016311 0.025602 0.027449 0.019344 0.019217 0.086911 0.040259 0.014819 0.007080 0.110401 0.040156 0.001631 0.018835 0.063422 0.042092 0.133891 +0.085723 +0.030757 0.035124 0.029118 0.031648 0.016297 0.144123 0.010794 0.036739 0.030489 0.030869 0.015655 0.102918 0.015796 0.016092 0.033237 0.029181 0.018095 0.092436 0.029528 0.019171 0.020749 0.086911 0.040565 0.012048 0.007313 0.063422 0.041024 0.000763 0.019222 0.133891 0.039935 0.157380 +0.324799 +0.030130 0.033264 0.038890 0.031061 0.014391 0.170638 0.009863 0.036450 0.028823 0.031086 0.018719 0.047547 0.016198 0.015592 0.030962 0.035054 0.015228 0.162668 0.027427 0.020819 0.022907 0.063422 0.039737 0.015133 0.005835 0.063422 0.040266 0.001891 0.020985 0.157380 0.038125 0.180870 +0.461554 +0.029335 0.038709 0.029438 0.034033 0.015006 0.155139 0.009957 0.035908 0.028826 0.028384 0.018770 0.016794 0.015723 0.015755 0.028267 0.028219 0.015731 0.028104 0.027831 0.020298 0.020063 0.063422 0.038827 0.017190 0.012018 0.063422 0.038385 0.002232 0.020974 0.063422 0.041727 0.133891 +0.050492 +0.030201 0.035086 0.029921 0.034792 0.017361 0.017843 0.010911 0.035425 0.028655 0.032003 0.018301 0.044303 0.015623 0.016177 0.030138 0.028498 0.016478 0.018111 0.026741 0.020547 0.022034 0.133891 0.039239 0.015105 0.012587 0.086911 0.039126 0.001333 0.020780 0.063422 0.037851 0.204360 +0 +0.032672 0.033171 0.031383 0.029198 0.017605 0.047307 0.011266 0.035755 0.034052 0.028437 0.014957 0.087117 0.015863 0.015934 0.029592 0.034545 0.014828 0.337776 0.028819 0.020451 0.023324 0.133891 0.041581 0.012116 0.010228 0.157380 0.038059 0.000233 0.019590 0.157380 0.037631 0.180870 +0.682999 +0.030631 0.036938 0.028822 0.029037 0.017825 0.105393 0.009604 0.036867 0.031900 0.029235 0.018379 0.031045 0.015412 0.016442 0.028851 0.033502 0.016408 0.034735 0.029774 0.019603 0.020191 0.063422 0.039302 0.014883 0.012518 0.110401 0.040120 0.000653 0.020696 0.086911 0.039829 0.133891 +0.091194 +0.029559 0.038858 0.028686 0.028279 0.016407 0.055382 0.011552 0.035627 0.030645 0.030062 0.014557 0.028278 0.015041 0.015959 0.033677 0.028726 0.015861 0.112296 0.028697 0.019363 0.021901 0.157380 0.042188 0.012736 0.012479 0.110401 0.039024 0.000639 0.021022 0.086911 0.039341 0.204360 +0.030087 +0.029732 0.037405 0.033694 0.031029 0.014566 0.020308 0.009794 0.036466 0.030978 0.028802 0.014861 0.020896 0.015643 0.015835 0.029630 0.030208 0.015144 0.048766 0.028663 0.020846 0.021678 0.157380 0.040508 0.013017 0.007102 0.110401 0.040627 0.001238 0.020568 0.086911 0.040632 0.204360 +0 +0.029687 0.035096 0.029618 0.030725 0.016310 0.025756 0.009843 0.036107 0.030326 0.028655 0.016400 0.067958 0.015576 0.016155 0.028903 0.035510 0.017394 0.106314 0.028672 0.020960 0.021287 0.086911 0.038119 0.018408 0.012580 0.133891 0.040213 0.001642 0.020837 0.086911 0.038019 0.180870 +0.107502 +0.031635 0.037144 0.030352 0.029011 0.014618 0.059552 0.011417 0.036225 0.030185 0.030976 0.016601 0.048732 0.016247 0.015811 0.031438 0.029213 0.015449 0.069059 0.025546 0.021102 0.021875 0.133891 0.041171 0.013280 0.009080 0.063422 0.040307 0.000520 0.019186 0.133891 0.038916 0.157380 +0.245621 +0.032005 0.035647 0.030933 0.031721 0.015850 0.053061 0.010134 0.036331 0.028312 0.030215 0.016954 0.023232 0.015446 0.015801 0.030140 0.030384 0.017958 0.120388 0.028585 0.020153 0.020450 0.086911 0.040738 0.017987 0.013311 0.086911 0.038558 0.000368 0.021016 0.133891 0.041226 0.157380 +0.085924 +0.032000 0.035267 0.029912 0.034443 0.015742 0.069431 0.010526 0.036038 0.028499 0.028489 0.015405 0.051583 0.015838 0.015578 0.031233 0.028855 0.016260 0.045927 0.028161 0.019345 0.020624 0.110401 0.040243 0.016411 0.007481 0.133891 0.040526 0.001155 0.018823 0.110401 0.038904 0.157380 +0.073706 +0.029090 0.033760 0.033232 0.029630 0.015317 0.061827 0.011726 0.035913 0.032516 0.028610 0.017903 0.023908 0.015532 0.015576 0.030769 0.035541 0.014623 0.032740 0.029116 0.020009 0.020000 0.157380 0.038171 0.012652 0.009300 0.133891 0.042006 0.000289 0.020140 0.133891 0.038298 0.180870 +0.048499 +0.030841 0.038029 0.028842 0.031431 0.014728 0.029455 0.010623 0.036684 0.028279 0.029515 0.016377 0.032937 0.015507 0.016194 0.034385 0.030023 0.017791 0.059302 0.028278 0.018911 0.020597 0.133891 0.037827 0.012740 0.008266 0.110401 0.039650 0.000802 0.020219 0.110401 0.040076 0.157380 +0.041523 +0.031546 0.034181 0.028626 0.028353 0.017438 0.088977 0.009579 0.037223 0.028485 0.031267 0.017002 0.162597 0.015693 0.015823 0.030687 0.029772 0.017120 0.091910 0.030530 0.019886 0.023213 0.157380 0.041343 0.017634 0.012143 0.133891 0.040350 0.000575 0.019441 0.133891 0.039808 0.204360 +0.401392 +0.032028 0.039111 0.029360 0.029013 0.016235 0.211584 0.011130 0.037216 0.035000 0.028370 0.017305 0.172639 0.016399 0.016430 0.028457 0.031148 0.014640 0.087624 0.025958 0.019549 0.021772 0.157380 0.039867 0.018752 0.007603 0.133891 0.041973 0.000395 0.019568 0.133891 0.038675 0.180870 +0.491254 +0.029602 0.034405 0.030814 0.030592 0.017091 0.113881 0.011218 0.035874 0.028204 0.029030 0.014394 0.222357 0.015759 0.016168 0.028374 0.028385 0.018088 0.138826 0.030456 0.019007 0.021280 0.063422 0.039140 0.013282 0.010577 0.133891 0.038232 0.000544 0.020441 0.110401 0.040550 0.157380 +0.572433 +0.032317 0.036510 0.036268 0.029354 0.015552 0.028503 0.009748 0.035792 0.031645 0.032266 0.016994 0.241076 0.016249 0.016022 0.030578 0.028793 0.017624 0.192818 0.026850 0.019221 0.023219 0.110401 0.040291 0.012401 0.012511 0.110401 0.038090 0.002346 0.019405 0.063422 0.040560 0.133891 +0.639643 +0.031225 0.033574 0.033535 0.028326 0.018091 0.161800 0.010279 0.037123 0.028592 0.029082 0.016691 0.017790 0.015131 0.016024 0.030662 0.028853 0.015080 0.079211 0.027730 0.018842 0.019989 0.157380 0.038112 0.015496 0.010594 0.180870 0.041217 0.001817 0.020266 0.180870 0.039837 0.204360 +0.378568 +0.029073 0.034760 0.031191 0.028450 0.016472 0.061498 0.010914 0.036502 0.028534 0.029406 0.017030 0.169954 0.015242 0.016388 0.029004 0.032171 0.017081 0.055173 0.025837 0.020744 0.019296 0.180870 0.037755 0.018631 0.013059 0.063422 0.038622 0.000525 0.019776 0.063422 0.039748 0.204360 +0.246547 +0.029795 0.035892 0.029539 0.030746 0.017883 0.094391 0.011584 0.037297 0.029611 0.028242 0.016972 0.169261 0.016312 0.016324 0.028850 0.028578 0.014718 0.023084 0.028194 0.019040 0.021213 0.133891 0.041645 0.017044 0.004792 0.086911 0.040902 0.002111 0.019902 0.133891 0.037985 0.204360 +0.282756 +0.029221 0.039459 0.028699 0.029837 0.014753 0.113968 0.010518 0.035650 0.029265 0.030188 0.014129 0.035357 0.015575 0.016254 0.030210 0.034160 0.018577 0.019012 0.029101 0.018912 0.020320 0.063422 0.039675 0.014098 0.013866 0.133891 0.041938 0.001211 0.019061 0.133891 0.040169 0.157380 +0.096843 +0.029968 0.037253 0.029228 0.030232 0.014722 0.019152 0.010588 0.037085 0.033042 0.031473 0.016990 0.084184 0.016372 0.015994 0.033311 0.028272 0.015700 0.027214 0.027499 0.019723 0.020918 0.086911 0.041676 0.014958 0.008933 0.157380 0.039315 0.002329 0.020862 0.110401 0.040180 0.180870 +0.008256 +0.031728 0.039170 0.029899 0.028236 0.017676 0.028705 0.010246 0.035289 0.034523 0.028572 0.016695 0.233376 0.016202 0.015801 0.029102 0.031428 0.015097 0.048689 0.026558 0.019886 0.023028 0.063422 0.042218 0.017732 0.011358 0.086911 0.037751 0.001377 0.020700 0.133891 0.037933 0.157380 +0.289301 +0.029375 0.033545 0.031390 0.029476 0.014816 0.067740 0.010270 0.036273 0.029141 0.033223 0.015208 0.183084 0.016412 0.015656 0.031196 0.028369 0.015071 0.116730 0.029837 0.019135 0.020274 0.133891 0.038270 0.015519 0.011696 0.086911 0.038538 0.002189 0.019261 0.086911 0.038976 0.157380 +0.438991 +0.031503 0.039138 0.030264 0.029920 0.017780 0.041931 0.011605 0.036320 0.029954 0.029819 0.014612 0.029290 0.015044 0.015846 0.032704 0.028986 0.018048 0.062016 0.028176 0.020281 0.020941 0.133891 0.040585 0.012425 0.005805 0.133891 0.041379 0.000106 0.019041 0.086911 0.040733 0.157380 +0.069052 +0.029916 0.038082 0.029808 0.036774 0.017312 0.272302 0.010502 0.036100 0.032102 0.029048 0.014750 0.030250 0.016317 0.016415 0.029977 0.029942 0.015323 0.038022 0.028190 0.020748 0.019608 0.110401 0.040549 0.017778 0.011288 0.063422 0.040027 0.000178 0.019166 0.063422 0.041411 0.157380 +0.396774 +0.030613 0.036269 0.033422 0.028307 0.017848 0.049845 0.010984 0.035357 0.030679 0.029639 0.018501 0.021501 0.016436 0.015503 0.031865 0.030573 0.016574 0.068052 0.027897 0.019720 0.021111 0.086911 0.039262 0.016637 0.010824 0.110401 0.038807 0.001372 0.020795 0.110401 0.040971 0.157380 +0.031927 +0.029529 0.038885 0.029128 0.028531 0.017037 0.031353 0.010452 0.036785 0.034556 0.029545 0.016323 0.018244 0.015529 0.016416 0.030773 0.030873 0.018355 0.153771 0.027981 0.021068 0.021548 0.086911 0.038668 0.016395 0.008453 0.110401 0.038733 0.000935 0.019770 0.063422 0.038112 0.157380 +0.198142 +0.028707 0.037148 0.032575 0.032621 0.015197 0.303194 0.010847 0.036247 0.040470 0.032199 0.014855 0.053456 0.015167 0.016220 0.029837 0.030478 0.015542 0.070532 0.027935 0.020329 0.020752 0.110401 0.041696 0.012793 0.005876 0.110401 0.038551 0.000898 0.020876 0.157380 0.040673 0.180870 +0.456821 +0.030052 0.038930 0.028924 0.028356 0.015402 0.022393 0.009671 0.035379 0.037513 0.030778 0.016013 0.065487 0.015878 0.016424 0.029445 0.031039 0.015950 0.067909 0.027919 0.020256 0.021749 0.110401 0.040613 0.014229 0.009938 0.086911 0.040609 0.000979 0.020146 0.086911 0.041978 0.204360 +0.018398 +0.031516 0.036447 0.031454 0.030377 0.015418 0.127865 0.011078 0.036405 0.032011 0.035365 0.015759 0.162677 0.016060 0.015588 0.030822 0.037387 0.015286 0.038225 0.029873 0.021103 0.021866 0.063422 0.038456 0.017690 0.012323 0.063422 0.039365 0.001183 0.020768 0.133891 0.042072 0.157380 +0.310832 +0.030391 0.036605 0.030968 0.028267 0.017488 0.071509 0.011069 0.036720 0.031592 0.029102 0.015390 0.050905 0.015842 0.015763 0.033938 0.029107 0.018624 0.202120 0.028330 0.021109 0.021210 0.133891 0.038505 0.017147 0.009655 0.133891 0.042154 0.000402 0.020030 0.063422 0.039344 0.157380 +0.398813 +0.030515 0.033284 0.031025 0.028539 0.018526 0.133827 0.011744 0.037434 0.028216 0.028667 0.016242 0.021949 0.016058 0.015739 0.029847 0.030216 0.015003 0.090041 0.027534 0.020053 0.019277 0.063422 0.037993 0.017629 0.008854 0.133891 0.039350 0.002347 0.019705 0.110401 0.038348 0.157380 +0.305566 +0.032594 0.038065 0.033477 0.031057 0.018254 0.149390 0.011609 0.035246 0.030083 0.030364 0.017330 0.085759 0.016133 0.016231 0.028585 0.030780 0.015513 0.064941 0.028747 0.020100 0.022000 0.157380 0.039901 0.018297 0.008708 0.110401 0.041419 0.000857 0.020915 0.086911 0.038165 0.204360 +0.216365 +0.032219 0.038751 0.029599 0.030235 0.015073 0.052830 0.011101 0.036975 0.029374 0.029619 0.015531 0.028440 0.015589 0.015544 0.030326 0.029588 0.018629 0.085229 0.028438 0.020294 0.021179 0.063422 0.040398 0.015680 0.012169 0.086911 0.038178 0.001761 0.019154 0.110401 0.040612 0.133891 +0.099874 +0.030028 0.037747 0.029403 0.030360 0.014141 0.111449 0.009604 0.035609 0.029562 0.029480 0.017244 0.102963 0.015704 0.016322 0.028917 0.032653 0.014694 0.029426 0.027038 0.019677 0.021896 0.157380 0.041993 0.016299 0.006723 0.063422 0.038341 0.000490 0.020335 0.063422 0.042096 0.180870 +0.272551 +0.030403 0.035136 0.028596 0.028881 0.014523 0.045081 0.010625 0.037042 0.029246 0.028444 0.016071 0.043484 0.015578 0.015799 0.028856 0.029503 0.015595 0.109853 0.028183 0.020793 0.021221 0.180870 0.040239 0.017719 0.011545 0.157380 0.041575 0.001044 0.019992 0.086911 0.038161 0.204360 +0.063799 +0.031401 0.036182 0.028758 0.037402 0.014110 0.056972 0.011270 0.036569 0.035190 0.028430 0.017529 0.035436 0.015659 0.015795 0.028668 0.029399 0.014397 0.209494 0.028758 0.020120 0.021854 0.133891 0.041515 0.015290 0.010988 0.110401 0.037808 0.000298 0.019148 0.063422 0.041180 0.204360 +0.204243 +0.031398 0.036535 0.029037 0.028707 0.018645 0.085909 0.010860 0.036509 0.030203 0.037446 0.014508 0.249071 0.015501 0.016206 0.033545 0.032353 0.014733 0.046086 0.027013 0.021010 0.019475 0.110401 0.038458 0.017276 0.010149 0.086911 0.038438 0.000091 0.020365 0.110401 0.038031 0.180870 +0.441436 +0.028931 0.034454 0.028351 0.030763 0.015152 0.023423 0.010828 0.036684 0.029889 0.030819 0.015010 0.275641 0.015305 0.015753 0.036936 0.029003 0.016425 0.047184 0.030269 0.019993 0.021856 0.086911 0.039575 0.014746 0.006467 0.063422 0.039973 0.001095 0.019896 0.063422 0.038091 0.133891 +0.455149 +0.030348 0.038676 0.035144 0.028524 0.018167 0.022165 0.010442 0.035796 0.033468 0.030405 0.014666 0.022627 0.015223 0.015986 0.038526 0.030108 0.014268 0.034807 0.028706 0.020013 0.019435 0.063422 0.040216 0.012583 0.007996 0.086911 0.040904 0.001012 0.019493 0.110401 0.042046 0.133891 +0 +0.029644 0.038366 0.034356 0.028676 0.014119 0.040988 0.011024 0.035918 0.029434 0.028994 0.016636 0.032204 0.015174 0.015889 0.030269 0.033609 0.018011 0.123079 0.027699 0.020548 0.022985 0.086911 0.040397 0.015831 0.010445 0.157380 0.039755 0.000501 0.020152 0.086911 0.038584 0.204360 +0.066791 +0.032790 0.033217 0.029288 0.041836 0.014566 0.042165 0.010368 0.035551 0.029166 0.032469 0.017048 0.061913 0.016177 0.016440 0.029228 0.030191 0.017692 0.089301 0.027108 0.019173 0.022845 0.063422 0.038245 0.017790 0.012276 0.086911 0.040107 0.000458 0.020215 0.110401 0.037684 0.157380 +0.150810 +0.030482 0.034909 0.028902 0.028243 0.015019 0.146014 0.009662 0.036872 0.028722 0.029039 0.014208 0.031330 0.016238 0.015881 0.035264 0.031118 0.017738 0.129285 0.028420 0.019182 0.019450 0.110401 0.042019 0.017159 0.006093 0.133891 0.038666 0.000889 0.019441 0.086911 0.037868 0.180870 +0.262115 +0.032806 0.036232 0.028750 0.030886 0.015926 0.032392 0.010701 0.035984 0.029968 0.036095 0.015276 0.027304 0.015943 0.015556 0.034399 0.028289 0.014273 0.066576 0.030051 0.021058 0.018886 0.086911 0.040511 0.016008 0.006549 0.086911 0.039479 0.002291 0.019965 0.110401 0.041861 0.133891 +0.050809 +0.032883 0.036664 0.029835 0.031244 0.018604 0.053487 0.009508 0.036241 0.031199 0.031195 0.016084 0.019818 0.015055 0.016074 0.029601 0.030491 0.015658 0.060966 0.028578 0.020594 0.022670 0.063422 0.038679 0.016641 0.009258 0.063422 0.040472 0.001836 0.020645 0.110401 0.037599 0.133891 +0.041841 +0.030438 0.033500 0.034320 0.029175 0.014722 0.024283 0.011258 0.037444 0.034934 0.029523 0.014689 0.126504 0.016192 0.016286 0.030358 0.028200 0.016049 0.030510 0.027063 0.021001 0.021730 0.063422 0.041199 0.014007 0.012454 0.110401 0.039183 0.000010 0.019860 0.063422 0.041986 0.133891 +0.120408 +0.029289 0.033664 0.028264 0.034273 0.015147 0.022298 0.010772 0.035249 0.029732 0.032481 0.015458 0.031911 0.015200 0.016069 0.028730 0.028884 0.014924 0.159814 0.029564 0.020311 0.018948 0.110401 0.038408 0.014609 0.009131 0.133891 0.037980 0.001718 0.020120 0.110401 0.041471 0.157380 +0.204636 +0.031270 0.039080 0.029033 0.031232 0.014792 0.060376 0.010192 0.036744 0.030895 0.028694 0.018123 0.144498 0.015772 0.015600 0.028311 0.033056 0.016573 0.278709 0.029274 0.020327 0.020772 0.063422 0.041202 0.013055 0.011390 0.133891 0.039307 0.001146 0.020498 0.063422 0.040429 0.157380 +0.617015 +0.029956 0.034373 0.028984 0.028915 0.014370 0.174701 0.010328 0.035781 0.037850 0.029290 0.016453 0.147179 0.015948 0.015906 0.028627 0.029068 0.015442 0.022310 0.028098 0.019206 0.020013 0.157380 0.039288 0.015584 0.008267 0.110401 0.037792 0.000076 0.020738 0.133891 0.040831 0.180870 +0.420027 +0.029929 0.039180 0.029448 0.030658 0.018636 0.132111 0.009816 0.035436 0.029331 0.031508 0.015415 0.029882 0.015639 0.015862 0.031695 0.030320 0.017634 0.141702 0.030157 0.018809 0.023226 0.110401 0.040816 0.011853 0.013274 0.157380 0.039063 0.001410 0.020066 0.110401 0.037932 0.204360 +0.317053 +0.028775 0.038513 0.030392 0.028333 0.015852 0.069168 0.011350 0.036930 0.029492 0.029981 0.018367 0.036292 0.015100 0.015889 0.030786 0.029346 0.015276 0.124425 0.027746 0.018962 0.019064 0.157380 0.039371 0.013392 0.008464 0.133891 0.038732 0.001701 0.018877 0.157380 0.038860 0.180870 +0.206644 +0.030636 0.039733 0.032246 0.028210 0.015739 0.053233 0.010606 0.036673 0.028676 0.029521 0.017359 0.148008 0.015722 0.015898 0.032895 0.032905 0.017494 0.040963 0.028971 0.021035 0.021188 0.063422 0.040340 0.017916 0.005509 0.086911 0.039958 0.001457 0.019610 0.110401 0.039449 0.180870 +0.171403 +0.030732 0.039049 0.029257 0.031820 0.014228 0.127556 0.011696 0.036769 0.034580 0.028868 0.016969 0.058343 0.016026 0.015942 0.028332 0.028471 0.016385 0.306349 0.027278 0.019794 0.021677 0.157380 0.040914 0.015104 0.006211 0.063422 0.037626 0.001324 0.019215 0.063422 0.040472 0.180870 +0.598688 +0.030985 0.034462 0.028988 0.030134 0.018612 0.069223 0.009619 0.037201 0.029775 0.031589 0.018323 0.048226 0.015856 0.015698 0.029399 0.029104 0.015206 0.104732 0.027139 0.020709 0.021553 0.157380 0.037698 0.015201 0.009103 0.063422 0.038464 0.001762 0.019392 0.063422 0.037730 0.204360 +0.149370 +0.032782 0.037879 0.030386 0.030326 0.017937 0.036017 0.009642 0.036757 0.029952 0.029002 0.016242 0.029553 0.015496 0.016365 0.028940 0.030170 0.014111 0.128597 0.029497 0.020085 0.023122 0.086911 0.038778 0.014249 0.005729 0.086911 0.039036 0.000492 0.019265 0.063422 0.040207 0.180870 +0.169604 +0.031529 0.038729 0.031567 0.028563 0.015544 0.125456 0.009402 0.037146 0.030718 0.034943 0.016732 0.016982 0.016089 0.015838 0.030566 0.031511 0.015284 0.034483 0.028441 0.021120 0.019449 0.180870 0.040216 0.017347 0.011383 0.133891 0.039850 0.001890 0.019664 0.180870 0.041787 0.204360 +0.078536 +0.032418 0.038194 0.033154 0.030148 0.016622 0.084045 0.010693 0.037579 0.029721 0.029880 0.017474 0.027096 0.015205 0.015965 0.030435 0.028196 0.014475 0.095602 0.028626 0.020643 0.023471 0.110401 0.037704 0.011875 0.008174 0.086911 0.042253 0.000294 0.018911 0.133891 0.038136 0.157380 +0.257764 +0.029548 0.033480 0.030583 0.034282 0.015055 0.018655 0.011153 0.037341 0.028576 0.028489 0.015413 0.280927 0.015426 0.015809 0.033799 0.028615 0.015017 0.019563 0.028942 0.020209 0.020368 0.133891 0.038078 0.012826 0.009708 0.086911 0.040323 0.001560 0.019903 0.063422 0.037725 0.180870 +0.391756 +0.028216 0.035810 0.036436 0.028370 0.017326 0.128283 0.010298 0.035790 0.029873 0.028444 0.015034 0.187079 0.016320 0.015808 0.028954 0.028501 0.015372 0.036213 0.029108 0.020856 0.020347 0.086911 0.039280 0.014325 0.010792 0.133891 0.041661 0.000190 0.021087 0.063422 0.040434 0.157380 +0.417284 +0.029784 0.033556 0.036368 0.030488 0.017034 0.188581 0.011182 0.036701 0.028953 0.029577 0.014485 0.080086 0.015733 0.015894 0.033673 0.029607 0.018375 0.117038 0.029185 0.020307 0.021801 0.086911 0.040995 0.014253 0.010018 0.086911 0.038636 0.000481 0.020991 0.063422 0.041635 0.133891 +0.489902 +0.030070 0.036458 0.028640 0.028652 0.017791 0.138709 0.011462 0.037245 0.028997 0.028569 0.016617 0.033562 0.015476 0.015916 0.028553 0.035275 0.016658 0.017744 0.028848 0.019559 0.023091 0.086911 0.041695 0.014450 0.008595 0.063422 0.039572 0.001812 0.019571 0.086911 0.040383 0.133891 +0.116654 +0.029639 0.035402 0.033063 0.033475 0.017544 0.017439 0.009904 0.036647 0.030718 0.035060 0.018385 0.095049 0.016325 0.016326 0.032032 0.028633 0.018668 0.046420 0.027191 0.020259 0.021413 0.063422 0.039403 0.014205 0.010157 0.133891 0.038863 0.001653 0.018990 0.063422 0.040783 0.157380 +0.045825 +0.030909 0.038807 0.028431 0.029794 0.017456 0.029460 0.011108 0.037403 0.034739 0.035982 0.016304 0.037108 0.015512 0.015578 0.028234 0.028697 0.015177 0.052732 0.029545 0.020331 0.021202 0.063422 0.037675 0.015989 0.011279 0.086911 0.041802 0.000389 0.020024 0.063422 0.042195 0.180870 +0 +0.030516 0.038644 0.028466 0.028837 0.018246 0.132688 0.010030 0.037219 0.030783 0.029601 0.017219 0.089217 0.015475 0.016366 0.032753 0.028424 0.015983 0.091335 0.028899 0.020809 0.020226 0.133891 0.038597 0.017360 0.006716 0.133891 0.038558 0.001336 0.019959 0.086911 0.039774 0.157380 +0.278535 +0.028744 0.033996 0.030398 0.028490 0.017398 0.132186 0.011123 0.035389 0.028415 0.028521 0.016949 0.221369 0.016186 0.016125 0.040601 0.028834 0.016125 0.152361 0.027176 0.020419 0.021480 0.063422 0.039823 0.013284 0.007724 0.063422 0.040411 0.001324 0.019399 0.110401 0.040762 0.204360 +0.644007 +0.028630 0.036242 0.028961 0.034717 0.017603 0.075781 0.010673 0.035889 0.028452 0.028585 0.014221 0.068174 0.016008 0.016042 0.036904 0.029199 0.017309 0.065771 0.028126 0.019858 0.020358 0.157380 0.040972 0.015515 0.008927 0.086911 0.037670 0.000059 0.019353 0.086911 0.041812 0.180870 +0.202466 +0.031313 0.036957 0.031913 0.028370 0.018393 0.022062 0.011473 0.035547 0.033271 0.030486 0.016243 0.158281 0.015965 0.016354 0.031282 0.028562 0.017831 0.108288 0.028784 0.019316 0.021573 0.133891 0.041968 0.018418 0.004960 0.110401 0.041544 0.000407 0.019755 0.157380 0.040537 0.180870 +0.298356 +0.030088 0.037514 0.029105 0.034763 0.014945 0.066016 0.009462 0.035470 0.028217 0.028427 0.017630 0.135142 0.016101 0.015700 0.030403 0.029135 0.016232 0.018432 0.030078 0.019752 0.019219 0.157380 0.042239 0.015608 0.005931 0.063422 0.037803 0.001082 0.019223 0.180870 0.038503 0.204360 +0.095269 +0.031031 0.036276 0.031296 0.031634 0.016508 0.313334 0.009802 0.035281 0.031948 0.029551 0.014228 0.182649 0.015991 0.015997 0.033180 0.032993 0.018383 0.108196 0.030179 0.020802 0.020931 0.086911 0.040023 0.013578 0.005309 0.180870 0.039526 0.001214 0.019226 0.180870 0.041161 0.204360 +0.738594 +0.028439 0.039768 0.032444 0.031764 0.017544 0.114122 0.010118 0.035264 0.029773 0.028714 0.014448 0.045372 0.015803 0.015715 0.033287 0.030102 0.017443 0.101058 0.029821 0.019964 0.021422 0.063422 0.039655 0.016194 0.012899 0.110401 0.041404 0.001995 0.019612 0.063422 0.038690 0.133891 +0.293878 +0.029518 0.039400 0.030461 0.029593 0.014901 0.244152 0.010911 0.035862 0.028600 0.028276 0.014163 0.017651 0.015384 0.015600 0.028456 0.028585 0.016745 0.068751 0.027445 0.020841 0.023109 0.063422 0.037917 0.016733 0.009000 0.157380 0.037862 0.000998 0.021016 0.110401 0.041561 0.180870 +0.549156 +0.029359 0.038021 0.029737 0.030298 0.016101 0.106899 0.009793 0.037229 0.029710 0.029412 0.015380 0.043642 0.015377 0.015693 0.031775 0.033730 0.017172 0.087653 0.027268 0.018904 0.018893 0.133891 0.040488 0.011914 0.005449 0.110401 0.039522 0.001303 0.019867 0.086911 0.040847 0.157380 +0.208504 +0.028868 0.038695 0.030940 0.029403 0.018224 0.016550 0.010251 0.035720 0.030190 0.028727 0.017574 0.018968 0.015929 0.016241 0.031989 0.034611 0.016624 0.063805 0.029514 0.019861 0.022564 0.157380 0.037970 0.014626 0.005806 0.157380 0.041039 0.000032 0.020227 0.180870 0.039689 0.204360 +0.012744 +0.032311 0.033770 0.029950 0.031357 0.014961 0.139837 0.010211 0.036849 0.029000 0.028282 0.014450 0.030569 0.016121 0.016298 0.028638 0.028524 0.017527 0.048173 0.028839 0.019018 0.023000 0.063422 0.039255 0.017784 0.010681 0.086911 0.037667 0.001915 0.019919 0.063422 0.037625 0.133891 +0.204072 +0.030696 0.037988 0.029721 0.028882 0.015139 0.024247 0.011636 0.036465 0.033116 0.029717 0.017447 0.029475 0.016375 0.016170 0.033433 0.029791 0.015786 0.028144 0.028817 0.020395 0.019450 0.086911 0.037947 0.014773 0.008572 0.133891 0.041348 0.000189 0.020956 0.180870 0.041300 0.204360 +0 +0.031387 0.039106 0.028450 0.033192 0.018389 0.108416 0.010235 0.035889 0.028475 0.030679 0.016693 0.220053 0.016279 0.015956 0.028948 0.031310 0.014883 0.182798 0.027616 0.019600 0.021090 0.086911 0.042126 0.013298 0.005300 0.063422 0.039889 0.000333 0.020449 0.086911 0.041113 0.133891 +0.663823 +0.032236 0.034826 0.029744 0.030164 0.015470 0.138102 0.011323 0.036792 0.032282 0.030265 0.018524 0.063902 0.016011 0.016253 0.032786 0.030947 0.017126 0.023509 0.028043 0.020999 0.019717 0.063422 0.037722 0.013446 0.010645 0.063422 0.039433 0.002264 0.019991 0.086911 0.040514 0.157380 +0.266457 +0.030773 0.037180 0.029027 0.030788 0.014750 0.032089 0.011338 0.036045 0.037458 0.032807 0.014874 0.040663 0.015036 0.016006 0.033383 0.030439 0.016127 0.105738 0.026940 0.019669 0.020229 0.063422 0.040027 0.017769 0.012900 0.133891 0.039259 0.000594 0.018933 0.110401 0.041174 0.157380 +0.069641 +0.030447 0.036929 0.030473 0.036160 0.016852 0.045735 0.009454 0.036589 0.028961 0.032602 0.016305 0.139388 0.015985 0.016120 0.029188 0.032959 0.016160 0.067417 0.026173 0.018989 0.022116 0.133891 0.041636 0.013246 0.011678 0.086911 0.039646 0.000198 0.020681 0.086911 0.037588 0.157380 +0.191272 +0.031027 0.034619 0.028392 0.030020 0.016589 0.134341 0.010646 0.037292 0.032361 0.028358 0.016868 0.031428 0.015604 0.016287 0.033109 0.028837 0.015754 0.017646 0.027883 0.020936 0.020231 0.180870 0.041373 0.012020 0.007057 0.110401 0.039413 0.002147 0.019978 0.063422 0.041603 0.204360 +0.096582 +0.031352 0.038712 0.031690 0.030080 0.016347 0.051229 0.009665 0.035804 0.028723 0.031204 0.017502 0.136893 0.015859 0.015637 0.030198 0.029076 0.015819 0.066645 0.024861 0.019703 0.023225 0.133891 0.042239 0.018673 0.007252 0.086911 0.040512 0.001040 0.018897 0.180870 0.038962 0.204360 +0.231925 +0.029550 0.034119 0.028412 0.028489 0.016975 0.018309 0.010911 0.036823 0.032897 0.028326 0.015286 0.093302 0.015479 0.015631 0.030904 0.028458 0.016161 0.096339 0.026543 0.020232 0.022682 0.133891 0.041446 0.014690 0.007947 0.086911 0.038436 0.000552 0.021045 0.086911 0.038291 0.157380 +0.098758 +0.031741 0.033709 0.035134 0.034905 0.014347 0.024422 0.010867 0.035473 0.030199 0.028739 0.017525 0.044454 0.016008 0.015599 0.029843 0.029091 0.015492 0.028984 0.028134 0.019059 0.021809 0.086911 0.038652 0.011937 0.008998 0.086911 0.041487 0.002067 0.020539 0.110401 0.038345 0.133891 +0.020488 +0.032310 0.033957 0.030813 0.031322 0.018736 0.106742 0.009896 0.036320 0.031094 0.028918 0.016927 0.057790 0.015511 0.015978 0.029588 0.029443 0.016177 0.190491 0.027210 0.020952 0.020839 0.157380 0.041258 0.018676 0.006117 0.086911 0.042093 0.000865 0.020816 0.110401 0.038669 0.204360 +0.369936 +0.029753 0.035420 0.029354 0.030174 0.014600 0.034373 0.009603 0.037204 0.029974 0.029425 0.015286 0.249228 0.015556 0.016157 0.028584 0.032779 0.014418 0.112893 0.026844 0.019708 0.023487 0.133891 0.039082 0.012031 0.011165 0.133891 0.039437 0.000613 0.020387 0.086911 0.038757 0.204360 +0.534514 +0.030172 0.033538 0.028927 0.038788 0.016883 0.207433 0.011057 0.036800 0.028194 0.031701 0.017941 0.068088 0.015682 0.015742 0.031140 0.037176 0.017029 0.019860 0.026012 0.019673 0.022142 0.110401 0.039643 0.017242 0.006992 0.063422 0.037938 0.001660 0.018951 0.086911 0.039009 0.157380 +0.447602 +0.031970 0.034485 0.030565 0.029095 0.015320 0.023918 0.009621 0.035817 0.029241 0.030787 0.015456 0.121706 0.015250 0.016108 0.031309 0.029186 0.015674 0.054117 0.026914 0.019694 0.022495 0.086911 0.039406 0.016938 0.005287 0.086911 0.039892 0.002250 0.020597 0.063422 0.037887 0.180870 +0.094260 +0.029938 0.039149 0.032423 0.030368 0.017668 0.026573 0.010623 0.035396 0.037730 0.031953 0.016323 0.027678 0.016239 0.015528 0.028764 0.031928 0.014367 0.098045 0.028247 0.020258 0.020702 0.086911 0.041528 0.016422 0.007546 0.063422 0.040558 0.000707 0.020654 0.063422 0.040018 0.157380 +0.011086 +0.029237 0.033327 0.029173 0.028905 0.014116 0.044550 0.010218 0.037103 0.030200 0.028361 0.014252 0.056299 0.015263 0.016277 0.030619 0.028517 0.017929 0.265205 0.030184 0.020201 0.019156 0.133891 0.038674 0.017880 0.008737 0.110401 0.037873 0.000757 0.020270 0.110401 0.037714 0.157380 +0.517586 +0.031863 0.037096 0.029407 0.030398 0.018469 0.059241 0.011347 0.035541 0.044598 0.028228 0.018227 0.039076 0.015761 0.015902 0.030414 0.037288 0.018091 0.017205 0.029515 0.020574 0.019533 0.086911 0.038631 0.016023 0.012512 0.086911 0.037903 0.001492 0.019865 0.063422 0.039029 0.180870 +0 +0.031520 0.039135 0.030168 0.028664 0.017764 0.021637 0.010412 0.035903 0.029717 0.032809 0.015348 0.107970 0.015856 0.015938 0.029907 0.028672 0.014464 0.040209 0.028143 0.020725 0.019092 0.110401 0.037869 0.018604 0.007952 0.133891 0.041334 0.001500 0.021140 0.086911 0.038052 0.180870 +0.042707 +0.032489 0.035539 0.032836 0.031630 0.014112 0.097922 0.011241 0.035894 0.032517 0.028647 0.017930 0.162176 0.016186 0.016192 0.028693 0.029594 0.017336 0.146730 0.029047 0.019913 0.021531 0.063422 0.041285 0.013448 0.004937 0.157380 0.037900 0.001666 0.021063 0.110401 0.040100 0.180870 +0.518867 +0.032061 0.037651 0.028587 0.029719 0.015276 0.055256 0.010228 0.037381 0.030273 0.028195 0.018617 0.243951 0.015367 0.016003 0.028356 0.028393 0.016249 0.025103 0.027684 0.019900 0.020203 0.086911 0.039026 0.014579 0.005741 0.063422 0.038292 0.000994 0.021005 0.086911 0.038466 0.204360 +0.420315 +0.030247 0.033156 0.029324 0.030849 0.015216 0.101709 0.010691 0.037100 0.030565 0.029971 0.016941 0.075391 0.016418 0.015593 0.028480 0.030097 0.018414 0.087627 0.029104 0.019253 0.021219 0.063422 0.038452 0.017844 0.005685 0.133891 0.037853 0.000014 0.019984 0.110401 0.039057 0.180870 +0.266656 +0.028257 0.037456 0.031778 0.029149 0.015111 0.030352 0.010519 0.036354 0.028783 0.028371 0.015994 0.057186 0.015481 0.015859 0.032013 0.031357 0.015272 0.056719 0.027289 0.020704 0.020332 0.133891 0.040405 0.012014 0.013389 0.063422 0.042263 0.001564 0.020201 0.086911 0.040529 0.157380 +0.063118 +0.029638 0.037281 0.028473 0.028301 0.016829 0.044571 0.010646 0.036837 0.033630 0.031294 0.015587 0.045752 0.015836 0.015968 0.028364 0.032548 0.014428 0.021862 0.026930 0.020254 0.020560 0.133891 0.041883 0.014972 0.012218 0.063422 0.040866 0.000061 0.020978 0.110401 0.037802 0.204360 +0.001385 +0.030125 0.034814 0.029204 0.028534 0.018293 0.185360 0.009889 0.035855 0.030159 0.028646 0.017521 0.026985 0.015103 0.016299 0.029344 0.028533 0.018212 0.028839 0.028417 0.018992 0.019589 0.063422 0.039370 0.018369 0.005993 0.110401 0.041870 0.001739 0.021009 0.063422 0.041717 0.133891 +0.396623 +0.032497 0.033616 0.028893 0.029409 0.017475 0.116077 0.009654 0.037258 0.029704 0.028611 0.017849 0.022920 0.015426 0.015909 0.028196 0.034415 0.014476 0.101888 0.029044 0.020226 0.020730 0.063422 0.040621 0.018056 0.007178 0.110401 0.038761 0.000612 0.019646 0.110401 0.038335 0.133891 +0.225068 +0.032746 0.032897 0.030473 0.036450 0.015083 0.100548 0.010351 0.035490 0.032926 0.028433 0.018298 0.219252 0.016171 0.016425 0.029350 0.029706 0.017862 0.042960 0.029280 0.018856 0.021342 0.086911 0.039305 0.016078 0.005187 0.063422 0.038256 0.002239 0.019593 0.086911 0.039670 0.133891 +0.432848 +0.029764 0.037928 0.029647 0.030440 0.015879 0.082186 0.011383 0.037166 0.034040 0.030708 0.017447 0.287802 0.016378 0.015818 0.030202 0.028468 0.015814 0.018754 0.028466 0.020533 0.019984 0.086911 0.038398 0.017814 0.007954 0.110401 0.040668 0.000066 0.020183 0.063422 0.041624 0.180870 +0.465508 +0.029320 0.037931 0.029762 0.029148 0.015891 0.101374 0.010514 0.036779 0.030944 0.031906 0.014650 0.147285 0.015171 0.016207 0.028363 0.030117 0.015558 0.033319 0.027326 0.019284 0.021665 0.110401 0.039629 0.016809 0.009868 0.086911 0.040860 0.001239 0.020639 0.086911 0.039779 0.180870 +0.214288 +0.032860 0.037686 0.028729 0.028750 0.016874 0.098832 0.010238 0.035826 0.029530 0.032187 0.014667 0.019139 0.016282 0.015604 0.028496 0.030580 0.014993 0.050439 0.028122 0.020394 0.020829 0.110401 0.039304 0.015093 0.012180 0.133891 0.038381 0.000965 0.018887 0.110401 0.037860 0.157380 +0.158014 +0.032790 0.035696 0.031849 0.030947 0.018595 0.054434 0.009440 0.036315 0.032622 0.029280 0.015812 0.169909 0.016413 0.016317 0.029316 0.029771 0.015583 0.150145 0.028578 0.021126 0.021384 0.063422 0.039461 0.016837 0.009366 0.086911 0.037713 0.000867 0.020271 0.063422 0.039170 0.133891 +0.461449 +0.029174 0.035713 0.032277 0.028420 0.018026 0.221523 0.011544 0.036227 0.031034 0.029080 0.014728 0.061256 0.015501 0.015899 0.029812 0.029357 0.018415 0.072755 0.028090 0.019038 0.023294 0.110401 0.039801 0.016325 0.005063 0.086911 0.041620 0.001277 0.020864 0.110401 0.040024 0.157380 +0.435549 +0.031094 0.035675 0.030465 0.028792 0.018112 0.045112 0.010913 0.036258 0.029384 0.031437 0.018002 0.041229 0.015667 0.015661 0.028344 0.029420 0.016511 0.055767 0.028876 0.020397 0.021175 0.063422 0.039086 0.014021 0.012492 0.063422 0.038152 0.000209 0.021004 0.110401 0.042158 0.180870 +0.013168 +0.029356 0.038944 0.032541 0.028193 0.016878 0.020456 0.010176 0.035386 0.031998 0.029678 0.017750 0.045899 0.015923 0.016017 0.029935 0.031749 0.016057 0.022232 0.027877 0.020575 0.019126 0.086911 0.042059 0.013707 0.013814 0.086911 0.038279 0.001422 0.019111 0.086911 0.041852 0.133891 +0 +0.029409 0.037031 0.031320 0.030783 0.018770 0.136416 0.011050 0.037298 0.032954 0.030131 0.017224 0.054284 0.015087 0.016324 0.029608 0.030158 0.017265 0.132362 0.029039 0.020518 0.023462 0.086911 0.040656 0.015914 0.010950 0.086911 0.041883 0.000415 0.020515 0.063422 0.039720 0.133891 +0.309129 +0.032366 0.035320 0.028684 0.029777 0.015468 0.083138 0.009740 0.035854 0.028562 0.029243 0.017328 0.029959 0.015848 0.015523 0.030114 0.028704 0.015773 0.250342 0.029092 0.019521 0.022982 0.086911 0.038244 0.016565 0.014049 0.086911 0.037722 0.000595 0.019189 0.063422 0.039044 0.180870 +0.479640 +0.030403 0.037744 0.035858 0.037543 0.015994 0.022181 0.011253 0.037080 0.029637 0.029846 0.018731 0.122828 0.016426 0.015790 0.028262 0.039269 0.016375 0.162733 0.028733 0.019461 0.020436 0.063422 0.039440 0.013843 0.010233 0.086911 0.040520 0.001229 0.019291 0.063422 0.040812 0.157380 +0.317886 +0.028192 0.039425 0.029572 0.029062 0.017622 0.070589 0.010377 0.036893 0.028238 0.029310 0.016468 0.095798 0.015725 0.016377 0.035259 0.031040 0.015737 0.363580 0.028411 0.020419 0.021362 0.063422 0.039524 0.012513 0.008093 0.110401 0.038253 0.000759 0.020818 0.086911 0.040871 0.133891 +0.716957 +0.030443 0.034787 0.028697 0.036828 0.015026 0.036583 0.011422 0.035696 0.028989 0.028379 0.017833 0.064778 0.016184 0.016407 0.030785 0.028613 0.016509 0.281300 0.027844 0.019106 0.020806 0.180870 0.040361 0.014518 0.006980 0.063422 0.037803 0.001042 0.020543 0.180870 0.037594 0.204360 +0.530922 +0.031106 0.035972 0.032224 0.031075 0.018197 0.039452 0.010142 0.037298 0.030000 0.030520 0.016083 0.082843 0.016241 0.016088 0.029977 0.030015 0.018432 0.208485 0.026784 0.019945 0.021514 0.157380 0.040180 0.017427 0.007365 0.063422 0.041532 0.001234 0.018841 0.180870 0.039980 0.204360 +0.335875 +0.030896 0.037752 0.029087 0.028328 0.015035 0.032979 0.010709 0.036517 0.029880 0.033392 0.016404 0.054878 0.015783 0.016089 0.030075 0.028484 0.015006 0.017382 0.027634 0.020964 0.021813 0.157380 0.037721 0.015311 0.008481 0.157380 0.041714 0.000691 0.019330 0.110401 0.037619 0.204360 +0.010798 +0.032034 0.037907 0.030967 0.028405 0.018577 0.201111 0.011632 0.036148 0.030747 0.029754 0.018109 0.062560 0.015739 0.015933 0.028845 0.031187 0.017613 0.120611 0.029403 0.019898 0.023162 0.110401 0.040658 0.012017 0.010036 0.133891 0.040208 0.000093 0.018864 0.157380 0.038916 0.204360 +0.353115 +0.028475 0.037947 0.030337 0.030668 0.017993 0.058773 0.010416 0.035313 0.029095 0.033230 0.016255 0.053073 0.016337 0.015752 0.029958 0.028597 0.017436 0.064052 0.028512 0.019679 0.019918 0.086911 0.038765 0.017431 0.008282 0.063422 0.040158 0.001447 0.019486 0.086911 0.042164 0.180870 +0.045820 +0.028789 0.035739 0.036496 0.029622 0.016480 0.023040 0.009845 0.035613 0.030122 0.028531 0.018009 0.046041 0.015818 0.015793 0.028509 0.028397 0.014804 0.189974 0.028231 0.019099 0.023000 0.133891 0.039025 0.013968 0.005361 0.157380 0.041711 0.001365 0.019294 0.133891 0.040295 0.180870 +0.284669 +0.029767 0.035036 0.031192 0.029233 0.015963 0.030023 0.011497 0.035758 0.030430 0.035966 0.014999 0.202322 0.015110 0.015794 0.035108 0.030676 0.017828 0.024486 0.026272 0.020647 0.020442 0.086911 0.039254 0.017378 0.011202 0.157380 0.042150 0.000241 0.020830 0.110401 0.040127 0.204360 +0.193017 +0.030202 0.037166 0.031389 0.028206 0.015828 0.232320 0.009503 0.035780 0.029020 0.028816 0.017140 0.036252 0.015840 0.016094 0.028946 0.035277 0.018348 0.083604 0.027786 0.020107 0.021464 0.180870 0.039300 0.017262 0.007875 0.133891 0.040107 0.000234 0.018829 0.157380 0.040577 0.204360 +0.452878 +0.030505 0.038967 0.028361 0.028769 0.016082 0.101036 0.010238 0.037338 0.030401 0.031668 0.017963 0.082668 0.016158 0.016431 0.032771 0.030558 0.015695 0.057703 0.028629 0.020330 0.019169 0.063422 0.038907 0.015272 0.006941 0.110401 0.039383 0.002175 0.019391 0.086911 0.041904 0.133891 +0.260901 +0.031937 0.033335 0.028800 0.029742 0.018546 0.069858 0.009744 0.036716 0.030949 0.031074 0.015719 0.075277 0.015961 0.015591 0.035728 0.032607 0.016389 0.110364 0.027237 0.020404 0.022738 0.133891 0.037871 0.014802 0.006584 0.133891 0.041959 0.001333 0.020265 0.133891 0.038299 0.157380 +0.348136 +0.030062 0.036255 0.030202 0.028301 0.015771 0.045128 0.009653 0.037506 0.031218 0.028804 0.015999 0.025918 0.015929 0.015676 0.029848 0.028695 0.018467 0.083412 0.028058 0.020548 0.019809 0.063422 0.039652 0.013086 0.008622 0.133891 0.039477 0.001675 0.019353 0.133891 0.038186 0.157380 +0.060194 +0.030768 0.034565 0.029491 0.035908 0.018202 0.044308 0.010473 0.036382 0.028828 0.028745 0.018187 0.023186 0.015333 0.015532 0.028730 0.028465 0.017117 0.032478 0.028387 0.020779 0.022325 0.063422 0.038914 0.015731 0.006827 0.063422 0.037787 0.001317 0.020355 0.157380 0.041684 0.204360 +0 +0.032214 0.039504 0.032792 0.028836 0.016617 0.075041 0.010573 0.036475 0.028657 0.028733 0.018485 0.127607 0.015294 0.015782 0.030406 0.031017 0.015506 0.049829 0.026076 0.018932 0.019267 0.063422 0.039735 0.017536 0.008792 0.063422 0.041792 0.001339 0.019373 0.086911 0.037779 0.133891 +0.275035 +0.032115 0.035057 0.028220 0.035551 0.015144 0.037288 0.011075 0.036213 0.029200 0.031583 0.016050 0.018878 0.016045 0.016155 0.029806 0.031245 0.018171 0.175930 0.030317 0.020440 0.023436 0.157380 0.037721 0.017272 0.006555 0.086911 0.039850 0.001859 0.020120 0.157380 0.038199 0.180870 +0.184436 +0.031604 0.033223 0.028692 0.029536 0.015990 0.016855 0.011554 0.036927 0.029818 0.028437 0.015037 0.018966 0.015052 0.015904 0.029769 0.028215 0.018543 0.074962 0.027173 0.020223 0.022246 0.086911 0.042280 0.012813 0.008658 0.063422 0.039796 0.000070 0.020054 0.133891 0.039347 0.180870 +0.001195 +0.029289 0.033197 0.028970 0.031105 0.015296 0.155211 0.009713 0.037287 0.028538 0.030756 0.016921 0.118032 0.015119 0.015503 0.028424 0.028276 0.017244 0.018943 0.027216 0.019703 0.021814 0.110401 0.041690 0.018381 0.008554 0.063422 0.040142 0.000231 0.020386 0.133891 0.038961 0.204360 +0.306626 +0.028582 0.034243 0.029045 0.032778 0.018339 0.047908 0.010663 0.035355 0.029532 0.029391 0.017403 0.052045 0.015229 0.015767 0.028933 0.028950 0.014327 0.104763 0.028468 0.019772 0.023235 0.063422 0.038501 0.012322 0.010457 0.086911 0.038670 0.001077 0.020946 0.110401 0.039635 0.157380 +0.093098 +0.032513 0.036374 0.028815 0.028911 0.017017 0.039341 0.011246 0.035687 0.028684 0.028706 0.016441 0.141730 0.015111 0.015713 0.030379 0.028386 0.014420 0.022559 0.028343 0.019396 0.018976 0.086911 0.040162 0.015445 0.004730 0.133891 0.040503 0.000794 0.020097 0.063422 0.041346 0.204360 +0.152993 +0.031866 0.036929 0.032066 0.029257 0.017752 0.022391 0.011350 0.036436 0.030348 0.031065 0.018060 0.023771 0.015285 0.015989 0.029687 0.028404 0.014526 0.072072 0.028153 0.019118 0.021429 0.063422 0.040726 0.013333 0.005373 0.157380 0.039167 0.001676 0.020854 0.063422 0.038147 0.204360 +0 +0.032585 0.039734 0.029504 0.028681 0.018301 0.095179 0.010675 0.037272 0.028618 0.036852 0.015760 0.134245 0.015357 0.015729 0.032524 0.030240 0.017967 0.045172 0.029607 0.019144 0.021131 0.063422 0.041585 0.018177 0.012134 0.086911 0.040289 0.000777 0.020340 0.110401 0.041169 0.180870 +0.184366 +0.029071 0.037605 0.034001 0.030564 0.017410 0.080882 0.009480 0.036258 0.033702 0.029994 0.015732 0.162556 0.015843 0.015952 0.028289 0.028683 0.014170 0.059320 0.026258 0.020119 0.022864 0.063422 0.039888 0.016207 0.013734 0.110401 0.038094 0.001088 0.019859 0.086911 0.040785 0.133891 +0.338390 +0.030465 0.037177 0.031555 0.028261 0.016281 0.088409 0.009719 0.037069 0.035815 0.030466 0.015797 0.073621 0.015089 0.016193 0.034337 0.029859 0.016227 0.083811 0.027371 0.019039 0.022084 0.110401 0.038719 0.017912 0.013959 0.157380 0.037723 0.001343 0.020109 0.180870 0.037881 0.204360 +0.249379 +0.032137 0.036378 0.030564 0.031751 0.015480 0.042895 0.011636 0.035942 0.030377 0.028668 0.018630 0.117035 0.015728 0.015755 0.029357 0.029194 0.018705 0.024433 0.027457 0.019817 0.020465 0.086911 0.041674 0.015976 0.010747 0.110401 0.041170 0.001904 0.020849 0.063422 0.040489 0.133891 +0.144960 +0.030001 0.038129 0.029895 0.033393 0.016121 0.101546 0.011323 0.037208 0.031156 0.034049 0.018266 0.054093 0.016023 0.015871 0.028947 0.031797 0.015553 0.053129 0.028864 0.019509 0.021170 0.110401 0.040849 0.018490 0.012768 0.133891 0.040536 0.000380 0.019979 0.133891 0.039794 0.180870 +0.140044 +0.028289 0.035319 0.033789 0.029364 0.018213 0.197969 0.010414 0.035721 0.030009 0.028624 0.018385 0.019702 0.015389 0.015793 0.030001 0.029347 0.016839 0.073630 0.029078 0.019353 0.018868 0.157380 0.040807 0.014854 0.007418 0.133891 0.037862 0.001796 0.020953 0.157380 0.038659 0.204360 +0.229007 +0.029873 0.036674 0.029125 0.029368 0.015250 0.053310 0.010718 0.036376 0.031250 0.029483 0.015411 0.054490 0.016210 0.016423 0.031940 0.028928 0.014632 0.023982 0.029295 0.019250 0.022697 0.086911 0.041407 0.014606 0.008894 0.063422 0.041021 0.002149 0.018988 0.086911 0.040212 0.157380 +0.006686 +0.031716 0.038493 0.030396 0.033204 0.018611 0.044198 0.010281 0.035795 0.031143 0.032441 0.015826 0.026107 0.016038 0.015744 0.031529 0.030249 0.018499 0.102927 0.026555 0.019717 0.022398 0.110401 0.040743 0.011795 0.008749 0.086911 0.039447 0.001890 0.019205 0.063422 0.038888 0.180870 +0.038630 +0.029688 0.036844 0.028831 0.029960 0.015436 0.018185 0.010187 0.036133 0.030675 0.030508 0.014368 0.139329 0.016351 0.015592 0.029073 0.032729 0.014688 0.052751 0.027810 0.018853 0.022240 0.110401 0.040450 0.018750 0.010807 0.086911 0.040769 0.002004 0.019448 0.110401 0.038626 0.157380 +0.143220 +0.031187 0.035285 0.029563 0.028365 0.015580 0.075927 0.010358 0.036768 0.029954 0.032163 0.017937 0.047039 0.016025 0.015536 0.029733 0.030112 0.016557 0.130406 0.028642 0.019612 0.022567 0.133891 0.037877 0.012707 0.012865 0.110401 0.037591 0.002055 0.019922 0.063422 0.040489 0.180870 +0.328550 +0.030019 0.039856 0.038741 0.029554 0.016666 0.025254 0.010619 0.036144 0.028203 0.030103 0.018660 0.043353 0.016239 0.015646 0.029702 0.031059 0.017109 0.030163 0.028784 0.018992 0.020434 0.063422 0.041012 0.012838 0.013305 0.110401 0.042106 0.001256 0.019057 0.086911 0.039581 0.133891 +0.008066 +0.030079 0.037140 0.031970 0.029699 0.015668 0.022330 0.010441 0.035663 0.029315 0.029023 0.017575 0.080925 0.015958 0.015988 0.031976 0.029848 0.016991 0.039648 0.028332 0.020157 0.020791 0.063422 0.037762 0.017093 0.007203 0.086911 0.040237 0.001915 0.020631 0.110401 0.041426 0.157380 +0.039837 +0.030150 0.036321 0.028864 0.029603 0.017371 0.172841 0.009674 0.036450 0.030231 0.034728 0.015989 0.023206 0.016119 0.015977 0.028724 0.034825 0.018774 0.060231 0.028442 0.020609 0.019775 0.086911 0.037616 0.014813 0.013336 0.063422 0.038744 0.000621 0.019810 0.110401 0.041277 0.133891 +0.317547 +0.030635 0.038643 0.029822 0.029476 0.018462 0.017123 0.011613 0.036321 0.030665 0.031954 0.016059 0.046866 0.015291 0.015753 0.031763 0.031247 0.018017 0.100526 0.028380 0.019633 0.023140 0.086911 0.038950 0.013609 0.011925 0.110401 0.037808 0.000234 0.019681 0.086911 0.037916 0.133891 +0.102266 +0.029523 0.034835 0.029382 0.028278 0.017553 0.034634 0.011279 0.036429 0.036380 0.029918 0.016505 0.166500 0.016388 0.015576 0.028644 0.030026 0.018555 0.032818 0.025799 0.019522 0.019045 0.133891 0.040743 0.015952 0.013795 0.086911 0.038984 0.000550 0.020303 0.063422 0.041845 0.204360 +0.108681 +0.029837 0.037393 0.031419 0.035731 0.017702 0.022403 0.009842 0.035571 0.029528 0.031227 0.017648 0.031543 0.016155 0.015663 0.029114 0.028792 0.016097 0.064082 0.028510 0.020732 0.021053 0.110401 0.041426 0.015270 0.011909 0.110401 0.039020 0.001257 0.019532 0.110401 0.038281 0.133891 +0.056889 +0.029637 0.033014 0.032189 0.033172 0.016936 0.061803 0.009431 0.037403 0.032103 0.031773 0.017555 0.043060 0.016017 0.016066 0.032545 0.029455 0.018453 0.023883 0.026534 0.018968 0.023429 0.086911 0.041257 0.013938 0.009007 0.110401 0.041159 0.000960 0.018847 0.110401 0.040374 0.133891 +0.055721 +0.028598 0.038706 0.031778 0.028621 0.018500 0.055050 0.010152 0.036703 0.031534 0.029754 0.015942 0.372433 0.015253 0.015547 0.031003 0.032739 0.016618 0.050457 0.028301 0.020187 0.018817 0.086911 0.040589 0.013377 0.006089 0.133891 0.038681 0.002005 0.019515 0.086911 0.041416 0.180870 +0.614161 +0.030556 0.036228 0.032849 0.028427 0.014935 0.093218 0.011031 0.036113 0.029802 0.028365 0.018077 0.135572 0.015115 0.015544 0.030113 0.029879 0.017399 0.062419 0.027815 0.019501 0.019171 0.063422 0.039792 0.015705 0.011352 0.157380 0.042087 0.001292 0.021029 0.063422 0.037788 0.180870 +0.234819 +0.031819 0.034346 0.028434 0.029713 0.015570 0.121335 0.010789 0.037025 0.029379 0.028492 0.018726 0.087375 0.015288 0.016305 0.033803 0.032673 0.016313 0.178966 0.029539 0.018895 0.022584 0.133891 0.038817 0.017142 0.010943 0.110401 0.039455 0.001536 0.019515 0.110401 0.040512 0.157380 +0.483880 +0.031035 0.038204 0.035449 0.028523 0.015071 0.024000 0.011270 0.036493 0.029572 0.033546 0.017581 0.094834 0.016188 0.016271 0.028976 0.033356 0.017209 0.030578 0.026785 0.018995 0.021307 0.133891 0.039167 0.014929 0.009129 0.110401 0.041810 0.000924 0.019583 0.086911 0.041618 0.157380 +0.061976 +0.029411 0.038782 0.028669 0.028249 0.016822 0.092726 0.011522 0.035411 0.037974 0.033232 0.018374 0.041223 0.015156 0.015573 0.029584 0.030436 0.016131 0.175372 0.027816 0.021115 0.021953 0.180870 0.037594 0.013164 0.012304 0.133891 0.041660 0.000379 0.020788 0.063422 0.038466 0.204360 +0.289330 +0.031557 0.034836 0.029479 0.028795 0.017215 0.105777 0.010403 0.035568 0.034411 0.029585 0.017665 0.019947 0.015152 0.015847 0.028212 0.035011 0.014888 0.121322 0.029283 0.021134 0.022086 0.086911 0.040418 0.017811 0.014027 0.110401 0.039335 0.001151 0.019854 0.110401 0.039214 0.133891 +0.291819 +0.032047 0.035046 0.030285 0.030017 0.015738 0.046731 0.011184 0.036025 0.030157 0.030323 0.017408 0.029649 0.015883 0.016418 0.033783 0.030026 0.017185 0.043588 0.030595 0.020502 0.021485 0.086911 0.039470 0.016617 0.011530 0.086911 0.039807 0.000429 0.019896 0.063422 0.040073 0.133891 +0.026256 +0.028314 0.037237 0.028417 0.031618 0.018169 0.018123 0.011055 0.036599 0.029712 0.034894 0.016060 0.026821 0.015301 0.016076 0.030757 0.030266 0.015375 0.223684 0.029880 0.020512 0.019448 0.086911 0.040109 0.011942 0.007561 0.063422 0.040776 0.001037 0.018993 0.086911 0.040965 0.133891 +0.248686 +0.030083 0.034622 0.029072 0.029103 0.016288 0.054535 0.011461 0.035385 0.028980 0.034023 0.015708 0.039891 0.015875 0.016099 0.028210 0.031759 0.015983 0.024691 0.027575 0.020416 0.021524 0.063422 0.039860 0.013034 0.006448 0.110401 0.040884 0.001135 0.020298 0.110401 0.039154 0.204360 +0.003148 +0.031414 0.036093 0.030380 0.029628 0.017661 0.198901 0.010922 0.037136 0.028779 0.030846 0.017335 0.018999 0.015505 0.015688 0.039196 0.029334 0.018704 0.075434 0.029285 0.019444 0.020531 0.110401 0.038150 0.017361 0.006570 0.133891 0.039774 0.002228 0.020126 0.133891 0.039061 0.157380 +0.381061 +0.028846 0.036886 0.033424 0.031933 0.018085 0.524814 0.010821 0.035960 0.028804 0.028973 0.016360 0.021383 0.015177 0.016421 0.028736 0.031432 0.016703 0.108126 0.026515 0.019657 0.020141 0.086911 0.037859 0.011946 0.007235 0.180870 0.039127 0.000535 0.019082 0.110401 0.040281 0.204360 +0.844420 +0.032026 0.035408 0.029067 0.031905 0.014098 0.062455 0.011480 0.035710 0.034803 0.030900 0.016050 0.036584 0.015160 0.015926 0.030063 0.030966 0.016632 0.048102 0.029479 0.019226 0.023235 0.110401 0.038715 0.015246 0.005958 0.063422 0.040853 0.000754 0.019964 0.133891 0.038836 0.157380 +0.095965 +0.029523 0.037464 0.030352 0.032003 0.016244 0.070659 0.011447 0.037539 0.030134 0.029707 0.015353 0.098309 0.016095 0.016304 0.034392 0.036168 0.018227 0.080555 0.028056 0.019346 0.020372 0.110401 0.039634 0.014444 0.012354 0.086911 0.037729 0.001019 0.019606 0.086911 0.041513 0.133891 +0.292536 +0.029216 0.033452 0.030823 0.032903 0.018002 0.145854 0.009841 0.035568 0.033028 0.029949 0.015096 0.242063 0.016000 0.016079 0.031881 0.029659 0.014306 0.100644 0.028744 0.020986 0.021527 0.133891 0.039443 0.013396 0.007213 0.133891 0.040489 0.000893 0.019987 0.110401 0.040162 0.157380 +0.618488 +0.031815 0.033015 0.032797 0.030926 0.016180 0.143057 0.009739 0.037029 0.028272 0.032532 0.014598 0.078077 0.015223 0.015845 0.028450 0.030722 0.016432 0.056129 0.027587 0.020596 0.020794 0.086911 0.039096 0.016295 0.011305 0.086911 0.038441 0.001069 0.019155 0.086911 0.040086 0.133891 +0.376382 +0.028576 0.034506 0.029816 0.029443 0.015153 0.022556 0.011388 0.036962 0.032495 0.028441 0.018703 0.105144 0.015374 0.015861 0.033662 0.028456 0.017709 0.085836 0.027594 0.019527 0.019681 0.086911 0.038976 0.012010 0.004996 0.063422 0.041020 0.000775 0.020034 0.063422 0.039649 0.133891 +0.209852 +0.028970 0.039148 0.029331 0.030314 0.015643 0.019724 0.010875 0.035863 0.029377 0.028652 0.016225 0.218458 0.015069 0.015973 0.028717 0.028483 0.018468 0.038443 0.029573 0.019417 0.020628 0.133891 0.038287 0.013795 0.004894 0.157380 0.038435 0.000881 0.020915 0.157380 0.041447 0.204360 +0.279104 +0.028940 0.036927 0.028336 0.031158 0.017734 0.021413 0.011254 0.036487 0.029533 0.030611 0.016994 0.111337 0.015916 0.015956 0.037504 0.033591 0.018778 0.051986 0.027836 0.019637 0.019734 0.086911 0.041803 0.014277 0.008914 0.063422 0.041785 0.002261 0.018964 0.180870 0.038576 0.204360 +0.090739 +0.031247 0.035789 0.029298 0.028920 0.016205 0.051570 0.011307 0.036085 0.028786 0.029625 0.017539 0.192311 0.015109 0.015610 0.029780 0.028554 0.016983 0.124923 0.028153 0.021072 0.023287 0.110401 0.042269 0.016133 0.006203 0.063422 0.041608 0.000066 0.018913 0.110401 0.040133 0.204360 +0.381342 +0.032220 0.035221 0.031127 0.028359 0.015774 0.044263 0.009628 0.037345 0.028975 0.035171 0.016391 0.029388 0.015064 0.016303 0.030954 0.030441 0.017492 0.046620 0.027087 0.020557 0.019028 0.110401 0.037861 0.012916 0.006059 0.110401 0.040236 0.000766 0.018977 0.110401 0.041927 0.157380 +0.022322 +0.031300 0.033133 0.028564 0.028779 0.017484 0.035938 0.011149 0.037454 0.034359 0.028575 0.018649 0.170402 0.015521 0.016368 0.029867 0.029179 0.014181 0.074416 0.028128 0.019178 0.020330 0.063422 0.040606 0.011756 0.012777 0.110401 0.040706 0.001930 0.019781 0.180870 0.039982 0.204360 +0.230353 +0.032649 0.033124 0.030787 0.028931 0.014622 0.018434 0.011663 0.035865 0.031336 0.029002 0.015129 0.127893 0.016204 0.016315 0.030460 0.030975 0.015131 0.039972 0.029350 0.020697 0.018900 0.063422 0.041847 0.015488 0.012328 0.086911 0.038992 0.001597 0.019745 0.180870 0.038433 0.204360 +0.041446 +0.030451 0.038551 0.028454 0.029881 0.016778 0.016626 0.009608 0.035934 0.031316 0.028291 0.018163 0.024211 0.015169 0.016227 0.029279 0.028589 0.018125 0.029004 0.027272 0.019566 0.020887 0.157380 0.038894 0.013634 0.006419 0.157380 0.041272 0.001070 0.021094 0.133891 0.042101 0.180870 +0 +0.028359 0.035663 0.028188 0.033866 0.014547 0.047737 0.010536 0.037168 0.028269 0.033924 0.017786 0.038548 0.015950 0.015529 0.043194 0.030077 0.015385 0.217343 0.028545 0.019413 0.021350 0.110401 0.041112 0.013869 0.011336 0.110401 0.039631 0.001615 0.021059 0.133891 0.038999 0.204360 +0.284591 +0.028831 0.034947 0.028858 0.028946 0.016282 0.171099 0.010845 0.035936 0.036900 0.029309 0.018582 0.059922 0.015902 0.016153 0.028336 0.028992 0.016285 0.017359 0.027664 0.019771 0.021671 0.086911 0.039983 0.016202 0.009121 0.063422 0.040027 0.001082 0.019423 0.086911 0.041088 0.133891 +0.398925 +0.028773 0.039538 0.029699 0.032789 0.016443 0.058201 0.010019 0.036961 0.028851 0.030740 0.014611 0.017513 0.016217 0.015936 0.029202 0.029445 0.015678 0.162848 0.028561 0.019567 0.021902 0.110401 0.042024 0.017331 0.006425 0.110401 0.038219 0.000595 0.021012 0.086911 0.040016 0.133891 +0.234910 +0.031153 0.036357 0.029098 0.029567 0.018521 0.134830 0.009723 0.036572 0.029326 0.028691 0.014911 0.040290 0.015899 0.015936 0.029503 0.035179 0.016560 0.043474 0.027824 0.020231 0.021549 0.063422 0.041043 0.012624 0.011397 0.110401 0.041482 0.001778 0.019317 0.086911 0.041296 0.133891 +0.277511 +0.031052 0.033051 0.028516 0.030601 0.016657 0.120776 0.010493 0.037045 0.031729 0.029036 0.018773 0.028865 0.016192 0.016098 0.028508 0.029706 0.018603 0.143721 0.029057 0.019509 0.019577 0.086911 0.038634 0.014946 0.006448 0.086911 0.040375 0.000062 0.019239 0.086911 0.040551 0.133891 +0.401313 +0.031829 0.036510 0.030019 0.029633 0.017192 0.033722 0.011325 0.036812 0.029921 0.028493 0.018675 0.049173 0.015502 0.015574 0.029871 0.028389 0.017024 0.048589 0.027633 0.019112 0.020369 0.086911 0.038835 0.016253 0.006951 0.063422 0.037888 0.001968 0.020093 0.063422 0.038029 0.180870 +0.001799 +0.029413 0.034890 0.030013 0.028196 0.014175 0.090410 0.009444 0.036676 0.029840 0.030147 0.014278 0.235672 0.016085 0.016192 0.028769 0.030521 0.014846 0.029239 0.027280 0.020914 0.022833 0.110401 0.040448 0.016117 0.012212 0.086911 0.042165 0.001943 0.019076 0.063422 0.038512 0.133891 +0.417710 +0.028434 0.035704 0.029533 0.028658 0.016467 0.031473 0.011499 0.035977 0.028273 0.030026 0.017914 0.045689 0.015820 0.015829 0.032787 0.028275 0.016958 0.083467 0.029870 0.020738 0.022146 0.063422 0.042037 0.017427 0.005609 0.086911 0.039980 0.001319 0.020583 0.086911 0.039375 0.157380 +0.038502 +0.031756 0.034076 0.029889 0.028213 0.015436 0.111389 0.010549 0.036657 0.035079 0.028464 0.016313 0.234084 0.015590 0.016003 0.034892 0.028801 0.017865 0.024313 0.029939 0.019456 0.023464 0.110401 0.041853 0.014251 0.005604 0.157380 0.041196 0.000275 0.020743 0.110401 0.040217 0.180870 +0.428390 +0.029199 0.034109 0.029115 0.031111 0.018530 0.016630 0.011220 0.035733 0.028404 0.028848 0.017872 0.054601 0.015368 0.015878 0.031740 0.033122 0.017015 0.123728 0.026731 0.019612 0.022810 0.110401 0.041234 0.012754 0.007079 0.133891 0.037896 0.002202 0.019357 0.063422 0.038644 0.180870 +0.056006 +0.031793 0.036395 0.029590 0.033699 0.016639 0.057062 0.010331 0.036093 0.029448 0.031389 0.014426 0.076285 0.016257 0.015546 0.030536 0.028674 0.015654 0.060497 0.029093 0.019795 0.022396 0.110401 0.041009 0.016642 0.012330 0.133891 0.039709 0.000251 0.020549 0.133891 0.038663 0.157380 +0.163171 +0.029072 0.034283 0.029986 0.028930 0.014574 0.034548 0.011047 0.035463 0.031894 0.028643 0.018363 0.051183 0.016086 0.015804 0.033882 0.030128 0.017372 0.074511 0.028787 0.019118 0.020207 0.063422 0.040693 0.016603 0.009853 0.110401 0.040796 0.001622 0.020378 0.110401 0.040594 0.133891 +0.116777 +0.031209 0.035394 0.028332 0.029448 0.014824 0.056135 0.011592 0.035857 0.035029 0.029680 0.016047 0.101728 0.015819 0.015834 0.028392 0.028339 0.016158 0.169894 0.027170 0.019817 0.020042 0.110401 0.039839 0.018529 0.012300 0.086911 0.039934 0.000774 0.019111 0.157380 0.038473 0.180870 +0.399663 +0.029036 0.037875 0.029686 0.032899 0.014272 0.062675 0.009442 0.036492 0.028348 0.030760 0.018389 0.065625 0.016009 0.016004 0.029085 0.030010 0.016246 0.078551 0.027772 0.018857 0.020927 0.063422 0.038300 0.014591 0.008486 0.063422 0.041553 0.001275 0.020165 0.063422 0.041742 0.180870 +0.189733 +0.032655 0.039317 0.035332 0.028375 0.017323 0.040458 0.009734 0.037237 0.029186 0.030592 0.014581 0.053054 0.015658 0.016200 0.031120 0.029015 0.014382 0.033006 0.029549 0.019005 0.022825 0.063422 0.039977 0.012504 0.010498 0.086911 0.037805 0.000930 0.020742 0.086911 0.040790 0.157380 +0.003955 +0.031373 0.039906 0.029982 0.030770 0.018252 0.027742 0.010641 0.036313 0.030486 0.028822 0.017369 0.092749 0.015273 0.016052 0.029074 0.028605 0.018572 0.044655 0.027316 0.019223 0.019937 0.110401 0.039259 0.012131 0.011927 0.157380 0.041344 0.000480 0.019967 0.133891 0.040938 0.180870 +0.044322 +0.032241 0.034314 0.028221 0.029876 0.017085 0.096387 0.010841 0.035373 0.033388 0.028746 0.018331 0.032051 0.015803 0.016199 0.029838 0.032200 0.015847 0.152679 0.028484 0.020276 0.022875 0.110401 0.040192 0.014521 0.006905 0.110401 0.040093 0.001866 0.020047 0.063422 0.039882 0.180870 +0.221409 +0.031329 0.036132 0.028309 0.034653 0.014387 0.081582 0.011728 0.036265 0.028202 0.028907 0.015787 0.030965 0.015456 0.015866 0.028931 0.028942 0.014566 0.086514 0.026460 0.020881 0.022187 0.086911 0.041961 0.018041 0.011387 0.086911 0.041065 0.002062 0.020808 0.086911 0.041874 0.180870 +0.042064 +0.028722 0.035030 0.032910 0.036916 0.017337 0.054229 0.010708 0.035834 0.028199 0.031319 0.017691 0.050877 0.015492 0.015574 0.030697 0.028498 0.017630 0.021031 0.028587 0.020261 0.019696 0.110401 0.041330 0.018676 0.008304 0.086911 0.040107 0.000020 0.020526 0.110401 0.039431 0.157380 +0.027022 +0.031532 0.037712 0.029769 0.040624 0.014552 0.039392 0.011476 0.036884 0.031505 0.031161 0.016074 0.040960 0.015972 0.015946 0.028339 0.033446 0.016267 0.070507 0.027315 0.020306 0.023133 0.110401 0.040861 0.013830 0.011912 0.063422 0.039931 0.001870 0.019216 0.063422 0.037703 0.157380 +0.060413 +0.030442 0.034320 0.029556 0.029097 0.015207 0.062922 0.010236 0.036083 0.028642 0.029355 0.018756 0.054330 0.015953 0.015961 0.032441 0.029283 0.015580 0.306925 0.026843 0.020714 0.023235 0.133891 0.038746 0.016575 0.007509 0.157380 0.038454 0.000632 0.020186 0.157380 0.039569 0.180870 +0.615681 +0.031261 0.039204 0.030141 0.028647 0.014317 0.029357 0.009939 0.035634 0.029023 0.028407 0.014660 0.017229 0.015768 0.015840 0.033728 0.028261 0.015025 0.024250 0.027583 0.018821 0.022699 0.063422 0.039899 0.016298 0.008401 0.063422 0.037987 0.001425 0.020047 0.063422 0.040813 0.133891 +0 +0.031835 0.037665 0.033244 0.030207 0.018297 0.051195 0.010434 0.036311 0.028706 0.028399 0.018012 0.020953 0.015362 0.015875 0.030598 0.036358 0.014736 0.062376 0.026736 0.021129 0.019920 0.086911 0.041776 0.013421 0.005961 0.157380 0.039941 0.001732 0.019697 0.110401 0.040106 0.204360 +0.007092 +0.028383 0.038771 0.032204 0.028864 0.015737 0.157700 0.011021 0.036648 0.029159 0.033333 0.018719 0.088720 0.015347 0.016134 0.029646 0.029062 0.017508 0.052971 0.028616 0.019727 0.021070 0.110401 0.038516 0.013782 0.004723 0.063422 0.041381 0.002305 0.019988 0.063422 0.039328 0.133891 +0.354586 +0.029178 0.036011 0.033569 0.030279 0.014317 0.024237 0.011366 0.035758 0.029361 0.029140 0.017524 0.132093 0.016297 0.015530 0.029915 0.031192 0.018028 0.044853 0.025046 0.020108 0.019448 0.110401 0.041082 0.017296 0.009363 0.157380 0.042183 0.001595 0.020285 0.086911 0.041990 0.204360 +0.138650 +0.029090 0.039181 0.028769 0.035572 0.015528 0.264520 0.010750 0.037069 0.030087 0.029979 0.015485 0.019544 0.016198 0.015625 0.028993 0.028979 0.014985 0.134174 0.027888 0.021122 0.022577 0.063422 0.039374 0.013684 0.010770 0.110401 0.042251 0.002147 0.020347 0.086911 0.040555 0.157380 +0.512788 +0.032431 0.034303 0.029036 0.031141 0.015355 0.057146 0.010323 0.036881 0.028974 0.028708 0.016237 0.067249 0.015381 0.015723 0.028233 0.032884 0.018242 0.066891 0.027792 0.020162 0.021901 0.110401 0.041794 0.011771 0.010161 0.063422 0.041262 0.000339 0.020151 0.133891 0.038269 0.157380 +0.125691 +0.028699 0.037177 0.033620 0.029282 0.014816 0.060158 0.010859 0.036609 0.030259 0.031843 0.015392 0.127035 0.015117 0.016046 0.031505 0.028324 0.014159 0.199991 0.028480 0.020700 0.021815 0.086911 0.041570 0.016057 0.008105 0.063422 0.040372 0.000288 0.019127 0.086911 0.041738 0.180870 +0.477923 +0.031878 0.034554 0.030831 0.030279 0.014879 0.098147 0.011272 0.036325 0.028780 0.045043 0.017207 0.221687 0.015887 0.016100 0.030808 0.030714 0.014393 0.047229 0.027573 0.019870 0.020088 0.157380 0.037761 0.015702 0.005999 0.133891 0.039603 0.000321 0.020793 0.063422 0.042048 0.180870 +0.368255 +0.030580 0.033157 0.028752 0.029492 0.016737 0.061118 0.010015 0.037007 0.028189 0.029775 0.015217 0.060965 0.016166 0.016190 0.028409 0.029526 0.014349 0.058103 0.028193 0.020335 0.018903 0.157380 0.039936 0.017731 0.013098 0.063422 0.038232 0.000012 0.019345 0.157380 0.040950 0.180870 +0.122159 +0.030474 0.035081 0.028514 0.029551 0.015720 0.037033 0.010995 0.036117 0.031706 0.031241 0.016392 0.195370 0.016304 0.015634 0.029782 0.033752 0.014871 0.417040 0.030046 0.020118 0.021410 0.110401 0.039885 0.011888 0.004931 0.110401 0.041972 0.001245 0.020900 0.063422 0.038798 0.180870 +0.819632 +0.029119 0.039910 0.031989 0.035975 0.016019 0.073477 0.009939 0.035449 0.031958 0.031348 0.016083 0.134815 0.015801 0.015725 0.032707 0.028546 0.016180 0.051813 0.028056 0.020107 0.022193 0.133891 0.040200 0.015469 0.010354 0.063422 0.041759 0.000712 0.019520 0.133891 0.040342 0.157380 +0.266243 +0.029436 0.038325 0.029434 0.028370 0.015220 0.052897 0.010328 0.036058 0.030596 0.029111 0.018649 0.357175 0.016375 0.016413 0.028941 0.028405 0.016797 0.034198 0.028135 0.021134 0.022193 0.086911 0.040903 0.013554 0.007702 0.063422 0.042011 0.001830 0.019524 0.110401 0.042236 0.133891 +0.523778 +0.032448 0.037889 0.036057 0.032262 0.018367 0.028198 0.011149 0.036902 0.028220 0.030555 0.016246 0.028273 0.016353 0.016176 0.031390 0.029059 0.018664 0.043676 0.026921 0.020953 0.023330 0.180870 0.041163 0.016575 0.005104 0.086911 0.037701 0.001996 0.020186 0.110401 0.042240 0.204360 +0.010745 +0.032831 0.039039 0.028558 0.029731 0.014588 0.068633 0.010689 0.036817 0.028254 0.039656 0.014412 0.037459 0.015274 0.016318 0.033339 0.028770 0.014136 0.140335 0.029794 0.019183 0.019928 0.086911 0.042096 0.011865 0.006668 0.086911 0.038596 0.000152 0.019414 0.133891 0.039541 0.157380 +0.304922 +0.031122 0.034872 0.028964 0.030177 0.015940 0.036541 0.011438 0.036575 0.028867 0.029103 0.014716 0.073555 0.015521 0.015981 0.028444 0.035506 0.018134 0.077243 0.026774 0.020077 0.023205 0.086911 0.038652 0.012443 0.013622 0.086911 0.038873 0.001844 0.020210 0.110401 0.038482 0.133891 +0.152893 +0.029391 0.033836 0.030006 0.029680 0.015182 0.075783 0.011434 0.037371 0.036267 0.032707 0.018389 0.084917 0.015978 0.015937 0.030702 0.029079 0.016843 0.034528 0.027601 0.019945 0.019844 0.157380 0.038492 0.017402 0.007724 0.133891 0.041250 0.000910 0.021075 0.086911 0.042231 0.204360 +0.161337 +0.031904 0.035014 0.030205 0.033890 0.018417 0.038017 0.010377 0.035294 0.028825 0.032609 0.017336 0.318075 0.015940 0.016171 0.028912 0.029095 0.016537 0.301264 0.029305 0.019186 0.022266 0.110401 0.037794 0.018590 0.008430 0.110401 0.037863 0.001558 0.019973 0.063422 0.041834 0.157380 +0.839560 +0.030084 0.035065 0.031966 0.029059 0.016178 0.049245 0.010401 0.035359 0.029959 0.029258 0.017728 0.104676 0.016089 0.015792 0.029635 0.029815 0.014490 0.080622 0.027636 0.019919 0.020444 0.063422 0.040937 0.018063 0.005842 0.086911 0.040937 0.001362 0.019059 0.110401 0.038343 0.133891 +0.226471 +0.030774 0.035258 0.032672 0.029907 0.017265 0.086366 0.010612 0.036147 0.031294 0.029459 0.015013 0.026325 0.015315 0.015833 0.039938 0.028996 0.017024 0.080458 0.028664 0.021022 0.019193 0.110401 0.037731 0.012767 0.010711 0.110401 0.041852 0.000498 0.018947 0.086911 0.041658 0.204360 +0.090829 +0.031368 0.037712 0.034608 0.029435 0.015281 0.082208 0.011104 0.036684 0.030535 0.030684 0.018707 0.301296 0.016411 0.016312 0.035076 0.028982 0.015024 0.153963 0.028754 0.020406 0.020494 0.086911 0.038640 0.012342 0.005267 0.086911 0.038795 0.000866 0.018824 0.110401 0.038790 0.133891 +0.763327 +0.031816 0.035610 0.031883 0.029720 0.015683 0.032293 0.009647 0.035409 0.032542 0.030100 0.016208 0.063628 0.016082 0.016265 0.029109 0.028468 0.017940 0.057655 0.029787 0.020729 0.023035 0.086911 0.040463 0.013309 0.013209 0.110401 0.041063 0.001665 0.020028 0.063422 0.041733 0.133891 +0.066438 +0.030840 0.036218 0.029556 0.031749 0.016122 0.131369 0.010987 0.036791 0.028555 0.032739 0.016311 0.061836 0.015515 0.016402 0.034985 0.030537 0.018771 0.029874 0.029646 0.019930 0.021933 0.110401 0.038039 0.014295 0.005938 0.157380 0.041035 0.001683 0.019566 0.157380 0.037618 0.180870 +0.324013 +0.030239 0.035637 0.030996 0.029190 0.016617 0.095529 0.011570 0.035990 0.033027 0.029461 0.018064 0.031056 0.016033 0.016180 0.028999 0.030337 0.016873 0.059661 0.029856 0.019782 0.019047 0.063422 0.041728 0.017569 0.006918 0.110401 0.041817 0.000517 0.020806 0.086911 0.037995 0.133891 +0.175668 +0.029057 0.039349 0.028626 0.029938 0.018532 0.186424 0.010598 0.036391 0.029075 0.028811 0.018554 0.018025 0.015312 0.016290 0.029461 0.028239 0.018712 0.031791 0.027706 0.021140 0.023193 0.086911 0.040079 0.017826 0.010679 0.063422 0.040094 0.001349 0.019456 0.110401 0.040653 0.133891 +0.289808 +0.028885 0.033728 0.028418 0.028920 0.015854 0.134772 0.009403 0.036396 0.031874 0.030719 0.014978 0.107964 0.015097 0.016259 0.028728 0.029102 0.016983 0.046748 0.028986 0.019803 0.020394 0.086911 0.041200 0.013810 0.007337 0.086911 0.038202 0.000148 0.020143 0.110401 0.041979 0.133891 +0.390896 +0.029978 0.033148 0.032346 0.028569 0.014723 0.072211 0.009774 0.037116 0.029112 0.030447 0.014591 0.087594 0.016341 0.015837 0.029269 0.029714 0.017547 0.022295 0.028601 0.019712 0.022443 0.063422 0.038589 0.012662 0.013960 0.063422 0.038315 0.002017 0.019786 0.086911 0.038735 0.133891 +0.146116 +0.030042 0.034749 0.028648 0.033801 0.018587 0.022732 0.010068 0.036046 0.028678 0.034615 0.014358 0.030255 0.015817 0.015952 0.031821 0.028446 0.018159 0.100049 0.031042 0.020367 0.019523 0.086911 0.039609 0.017676 0.011337 0.133891 0.040935 0.001574 0.019629 0.110401 0.038215 0.157380 +0.068595 +0.030265 0.038354 0.029326 0.032012 0.016386 0.044238 0.010648 0.035299 0.028896 0.030050 0.018012 0.060261 0.016160 0.016234 0.029312 0.029233 0.017803 0.152032 0.028033 0.019956 0.018945 0.110401 0.038526 0.014465 0.010786 0.133891 0.038719 0.000015 0.019522 0.086911 0.040112 0.157380 +0.196927 +0.028791 0.033996 0.030236 0.028234 0.017352 0.205128 0.010091 0.036283 0.033215 0.028632 0.014818 0.024939 0.015073 0.016276 0.028806 0.029896 0.016692 0.102966 0.027582 0.019498 0.022412 0.063422 0.038925 0.015350 0.012475 0.086911 0.039750 0.001195 0.019867 0.063422 0.038556 0.157380 +0.454349 +0.029083 0.034177 0.029638 0.029588 0.016042 0.262454 0.010463 0.036472 0.031073 0.028404 0.016363 0.128855 0.015371 0.016350 0.028356 0.028842 0.014547 0.046596 0.026620 0.020767 0.020379 0.133891 0.041573 0.017838 0.011766 0.133891 0.038618 0.001370 0.018963 0.086911 0.038782 0.180870 +0.596712 +0.032352 0.035563 0.033035 0.028707 0.014826 0.334888 0.009706 0.035909 0.028643 0.029754 0.014188 0.077199 0.016283 0.015706 0.031027 0.029212 0.015681 0.223130 0.029045 0.019224 0.021717 0.063422 0.038061 0.014141 0.004747 0.086911 0.040904 0.001107 0.019696 0.110401 0.039355 0.157380 +0.691916 +0.030349 0.037475 0.032090 0.029653 0.014795 0.079627 0.011240 0.035626 0.030235 0.028876 0.018430 0.110492 0.015089 0.015826 0.033601 0.028922 0.016116 0.026218 0.028257 0.020993 0.022438 0.110401 0.041154 0.011913 0.005004 0.086911 0.038567 0.001121 0.019593 0.110401 0.039758 0.133891 +0.236110 +0.032038 0.039436 0.029393 0.028224 0.018179 0.065032 0.010157 0.036562 0.028824 0.028966 0.016939 0.048285 0.016120 0.016048 0.029272 0.028908 0.018293 0.096115 0.028923 0.019558 0.019735 0.086911 0.039529 0.018631 0.010991 0.110401 0.038970 0.002148 0.019059 0.086911 0.038946 0.133891 +0.159307 +0.028751 0.034713 0.032437 0.030055 0.018073 0.047738 0.010005 0.036595 0.032100 0.029914 0.017895 0.287924 0.016150 0.015698 0.030147 0.032279 0.016401 0.053398 0.027930 0.019177 0.023179 0.086911 0.038451 0.014317 0.008683 0.063422 0.038628 0.001186 0.019369 0.110401 0.038692 0.133891 +0.542177 +0.029132 0.033476 0.031932 0.029340 0.015457 0.024780 0.010898 0.036952 0.030643 0.028483 0.014842 0.120912 0.015115 0.015740 0.032007 0.031687 0.014929 0.140786 0.027472 0.019235 0.022851 0.110401 0.041180 0.014800 0.007698 0.110401 0.042263 0.000672 0.020623 0.086911 0.040185 0.157380 +0.235272 +0.032778 0.037753 0.030770 0.033059 0.015263 0.052252 0.010626 0.035383 0.029909 0.028822 0.017559 0.126062 0.015113 0.016209 0.031913 0.030227 0.017262 0.106448 0.030875 0.020362 0.023406 0.110401 0.038202 0.014904 0.011261 0.133891 0.039724 0.000960 0.020131 0.063422 0.040538 0.180870 +0.259478 +0.028690 0.034198 0.031081 0.029765 0.014970 0.067447 0.009524 0.036692 0.028317 0.029872 0.016830 0.081659 0.015564 0.015513 0.029100 0.030978 0.018056 0.190992 0.028054 0.019941 0.020912 0.157380 0.038123 0.011897 0.012911 0.180870 0.040016 0.002199 0.019970 0.133891 0.038267 0.204360 +0.357339 +0.029303 0.038282 0.034942 0.032131 0.015744 0.137029 0.010385 0.035633 0.033828 0.031394 0.017386 0.099965 0.015404 0.015723 0.034642 0.030033 0.015695 0.211765 0.029544 0.020549 0.021300 0.110401 0.041267 0.015977 0.007140 0.110401 0.040650 0.000767 0.020461 0.063422 0.037923 0.133891 +0.551003 +0.031608 0.035384 0.033669 0.028230 0.016027 0.095661 0.011066 0.036507 0.028465 0.037554 0.016777 0.076301 0.015241 0.016066 0.032680 0.028767 0.017504 0.028772 0.027750 0.020440 0.021123 0.157380 0.038585 0.013793 0.007478 0.157380 0.041573 0.002305 0.019294 0.086911 0.038813 0.204360 +0.119550 +0.031290 0.039503 0.029071 0.028689 0.017939 0.229819 0.010009 0.036035 0.032590 0.030398 0.015109 0.047696 0.016272 0.016013 0.029661 0.028661 0.014754 0.099298 0.027860 0.019852 0.020505 0.157380 0.041571 0.012187 0.011030 0.086911 0.038857 0.001624 0.021115 0.157380 0.039728 0.204360 +0.468459 +0.030785 0.032906 0.028688 0.029834 0.016330 0.085021 0.010860 0.035727 0.030969 0.031317 0.017930 0.088926 0.015988 0.015619 0.028638 0.029390 0.017776 0.051360 0.025856 0.020213 0.023309 0.157380 0.041033 0.015018 0.011312 0.110401 0.037991 0.000364 0.019627 0.086911 0.041485 0.180870 +0.135258 +0.030178 0.037365 0.032191 0.029090 0.016449 0.109767 0.010458 0.036425 0.028316 0.029435 0.015998 0.072877 0.015036 0.016357 0.029128 0.035758 0.018295 0.096206 0.027278 0.019174 0.020296 0.063422 0.040982 0.013761 0.006263 0.063422 0.042066 0.002210 0.019197 0.133891 0.042081 0.157380 +0.325023 +0.031394 0.033101 0.030585 0.031144 0.014945 0.216573 0.011001 0.037529 0.029474 0.029302 0.015637 0.078348 0.015313 0.016193 0.028878 0.028389 0.016729 0.065458 0.029915 0.018847 0.023203 0.063422 0.038620 0.017328 0.012880 0.086911 0.037820 0.001833 0.019873 0.063422 0.040670 0.133891 +0.484088 +0.030705 0.033529 0.028669 0.030823 0.017956 0.087085 0.011489 0.035381 0.028881 0.028917 0.018351 0.222512 0.016224 0.016150 0.031099 0.028493 0.014953 0.030709 0.028433 0.018912 0.019975 0.110401 0.040402 0.014155 0.006299 0.133891 0.039832 0.000446 0.020373 0.133891 0.039314 0.157380 +0.436327 +0.032548 0.035554 0.034570 0.029954 0.015010 0.078592 0.010022 0.037026 0.028844 0.030767 0.018236 0.134300 0.016364 0.016169 0.031449 0.030173 0.018411 0.195500 0.026216 0.020685 0.022896 0.086911 0.040792 0.017374 0.008628 0.063422 0.038654 0.002185 0.019152 0.086911 0.039053 0.133891 +0.520411 +0.031697 0.034389 0.029016 0.029009 0.018463 0.186255 0.010412 0.036872 0.030222 0.028816 0.017552 0.186825 0.016356 0.015746 0.028758 0.032367 0.017273 0.280314 0.028455 0.019974 0.023075 0.063422 0.040771 0.014266 0.007982 0.133891 0.039216 0.000091 0.020262 0.110401 0.038748 0.180870 +0.742508 +0.029672 0.036531 0.028808 0.030526 0.016532 0.047289 0.010868 0.035433 0.030372 0.028760 0.015881 0.147852 0.016183 0.015858 0.033028 0.028302 0.014783 0.039340 0.029380 0.021130 0.020429 0.133891 0.038752 0.012645 0.006949 0.063422 0.038600 0.002018 0.018823 0.180870 0.040739 0.204360 +0.259258 +0.030852 0.039467 0.029089 0.029178 0.017178 0.052720 0.009421 0.036883 0.028946 0.030580 0.018108 0.038229 0.016163 0.016148 0.028412 0.029972 0.015547 0.020551 0.026711 0.019779 0.019975 0.086911 0.039366 0.014506 0.008534 0.110401 0.040306 0.002169 0.019599 0.110401 0.041487 0.133891 +0.012670 +0.029507 0.038732 0.032567 0.031312 0.018662 0.110612 0.010446 0.036457 0.028433 0.038539 0.017900 0.096615 0.015459 0.015776 0.030796 0.031349 0.015019 0.028727 0.026156 0.019902 0.020362 0.086911 0.041437 0.014011 0.010709 0.133891 0.039101 0.001762 0.018883 0.086911 0.037635 0.157380 +0.241996 +0.031573 0.037137 0.028188 0.029333 0.017353 0.026099 0.009759 0.035282 0.029058 0.029756 0.016632 0.330063 0.016332 0.016195 0.028404 0.036454 0.018074 0.271791 0.027155 0.020124 0.020127 0.063422 0.038052 0.014575 0.007958 0.110401 0.042200 0.000030 0.020735 0.157380 0.038354 0.180870 +0.826337 +0.032302 0.038018 0.028212 0.029542 0.014705 0.140960 0.011352 0.037462 0.030359 0.034527 0.016327 0.019315 0.016400 0.016407 0.028467 0.028962 0.017032 0.027034 0.027240 0.019571 0.019061 0.133891 0.037895 0.015945 0.011882 0.157380 0.041710 0.001791 0.021022 0.063422 0.039181 0.204360 +0.237255 +0.032816 0.039860 0.028557 0.040754 0.014645 0.109796 0.010788 0.036968 0.028967 0.028423 0.016571 0.094374 0.015765 0.015616 0.030970 0.029911 0.016194 0.119661 0.027591 0.019166 0.020577 0.133891 0.039871 0.015019 0.011219 0.110401 0.039263 0.001311 0.019480 0.086911 0.039383 0.180870 +0.313319 +0.032733 0.035906 0.028427 0.029528 0.018269 0.100528 0.009675 0.037565 0.029357 0.035925 0.018576 0.138026 0.015034 0.015689 0.029969 0.028994 0.017768 0.382939 0.027791 0.019415 0.019043 0.086911 0.041001 0.013482 0.011672 0.063422 0.038873 0.002255 0.018955 0.110401 0.042183 0.180870 +0.778586 +0.030764 0.033525 0.033893 0.035865 0.014507 0.201019 0.010380 0.037127 0.031292 0.028257 0.018699 0.149267 0.015863 0.016323 0.033829 0.028851 0.015207 0.052324 0.029856 0.020521 0.019992 0.063422 0.038486 0.012734 0.009129 0.133891 0.038451 0.001142 0.019941 0.133891 0.037946 0.204360 +0.540606 +0.029706 0.034428 0.032305 0.029156 0.016021 0.031215 0.009644 0.036619 0.028404 0.028681 0.016559 0.285386 0.015778 0.016199 0.029846 0.031104 0.014974 0.356183 0.029154 0.020706 0.021460 0.133891 0.041007 0.012519 0.011120 0.086911 0.039011 0.001903 0.020438 0.110401 0.041843 0.157380 +0.849343 +0.031343 0.032985 0.030394 0.028700 0.015489 0.106357 0.009635 0.035318 0.028706 0.029855 0.016469 0.033100 0.016117 0.015979 0.029363 0.030185 0.015781 0.288132 0.028357 0.019639 0.022560 0.086911 0.040555 0.012448 0.008583 0.063422 0.038988 0.000965 0.019825 0.063422 0.038681 0.157380 +0.539435 +0.029319 0.035840 0.029706 0.035419 0.017330 0.096028 0.011576 0.035592 0.028631 0.031780 0.016069 0.049946 0.016268 0.016229 0.035665 0.029809 0.016395 0.104865 0.026978 0.018975 0.022138 0.110401 0.038896 0.013911 0.013830 0.086911 0.039147 0.001889 0.019302 0.063422 0.038779 0.204360 +0.213926 +0.028194 0.035852 0.028539 0.028520 0.016798 0.120863 0.009866 0.037038 0.030760 0.029859 0.014948 0.050029 0.015391 0.016231 0.032513 0.028234 0.015157 0.026842 0.027429 0.020730 0.023237 0.110401 0.042042 0.015747 0.008608 0.110401 0.040009 0.001112 0.019646 0.063422 0.038953 0.133891 +0.252192 +0.030715 0.037523 0.034600 0.029317 0.015331 0.154969 0.011152 0.035968 0.029347 0.028335 0.018129 0.108573 0.015123 0.015519 0.029838 0.029400 0.014295 0.043519 0.027919 0.020214 0.022129 0.086911 0.041292 0.017482 0.010415 0.133891 0.039429 0.001361 0.021047 0.180870 0.038192 0.204360 +0.275889 +0.032030 0.036160 0.030525 0.029413 0.015182 0.030262 0.011042 0.036042 0.031416 0.039132 0.016802 0.064367 0.015510 0.015563 0.028540 0.029952 0.017981 0.050301 0.027456 0.020313 0.022274 0.063422 0.040460 0.016282 0.007716 0.086911 0.037820 0.002125 0.021086 0.110401 0.037633 0.133891 +0.089344 +0.030020 0.033344 0.028218 0.029266 0.015194 0.017651 0.011630 0.036521 0.030051 0.030260 0.018163 0.040563 0.015263 0.016048 0.028611 0.028379 0.014714 0.048645 0.027053 0.020315 0.022792 0.063422 0.039302 0.015043 0.005597 0.133891 0.040767 0.000038 0.021062 0.133891 0.040524 0.204360 +0 +0.032066 0.039921 0.029223 0.032842 0.017186 0.020290 0.010468 0.037255 0.029265 0.033348 0.018651 0.045990 0.016070 0.015916 0.033717 0.028771 0.018302 0.077898 0.029756 0.018864 0.021200 0.180870 0.038857 0.016940 0.006319 0.063422 0.039011 0.000340 0.019153 0.157380 0.040004 0.204360 +0.045980 +0.028310 0.038290 0.028852 0.029524 0.016513 0.076829 0.009469 0.036419 0.030241 0.032794 0.016675 0.081698 0.015907 0.015805 0.031401 0.030032 0.018729 0.037424 0.028604 0.019611 0.020924 0.086911 0.040739 0.016861 0.005239 0.086911 0.042273 0.000153 0.018992 0.063422 0.042008 0.157380 +0.089309 +0.028726 0.033604 0.030076 0.028622 0.015061 0.035447 0.011553 0.037062 0.028626 0.033111 0.017249 0.022854 0.015503 0.016203 0.028409 0.032341 0.017073 0.108654 0.029596 0.019605 0.020146 0.110401 0.040706 0.011933 0.010788 0.063422 0.038514 0.000715 0.019081 0.110401 0.041498 0.157380 +0.066283 +0.029314 0.036035 0.028917 0.032007 0.015632 0.063415 0.010574 0.036178 0.028385 0.029521 0.017745 0.130712 0.015049 0.015725 0.032670 0.028420 0.017964 0.187157 0.028279 0.019900 0.023193 0.110401 0.037818 0.016286 0.007391 0.110401 0.039259 0.002016 0.021061 0.110401 0.039978 0.133891 +0.510413 +0.032604 0.034841 0.028548 0.028383 0.018001 0.162337 0.010315 0.037137 0.029545 0.030417 0.015895 0.296238 0.015353 0.015977 0.028223 0.029198 0.016532 0.037994 0.028785 0.020338 0.021951 0.086911 0.041726 0.015847 0.008249 0.133891 0.041108 0.001132 0.020544 0.180870 0.042111 0.204360 +0.565008 +0.028200 0.037850 0.029521 0.028940 0.017953 0.072961 0.010400 0.035367 0.028205 0.028839 0.017763 0.090921 0.016191 0.015635 0.028645 0.029835 0.017841 0.162905 0.029285 0.018824 0.020253 0.110401 0.037639 0.014053 0.011729 0.086911 0.040930 0.001724 0.018821 0.063422 0.038345 0.157380 +0.358288 +0.031163 0.037990 0.030749 0.032825 0.015441 0.076215 0.011434 0.037021 0.034957 0.031040 0.017860 0.112422 0.015179 0.015544 0.028199 0.032861 0.016933 0.108316 0.027423 0.019105 0.023119 0.086911 0.041413 0.017747 0.006876 0.063422 0.040839 0.002080 0.021021 0.086911 0.040960 0.157380 +0.285789 +0.030570 0.037820 0.035799 0.029331 0.017205 0.037767 0.011234 0.035469 0.037872 0.034065 0.014510 0.028640 0.015739 0.016399 0.028417 0.030122 0.015750 0.029147 0.027676 0.018986 0.020348 0.110401 0.037709 0.015441 0.005111 0.133891 0.041598 0.001310 0.020015 0.086911 0.038085 0.180870 +0 +0.029590 0.034482 0.032505 0.030804 0.015698 0.165828 0.010630 0.036468 0.031887 0.028647 0.018372 0.030791 0.015716 0.016234 0.029679 0.029349 0.015704 0.020362 0.026718 0.021117 0.022785 0.063422 0.038605 0.015709 0.005315 0.180870 0.041650 0.001161 0.020052 0.180870 0.040121 0.204360 +0.392590 +0.032768 0.036321 0.028188 0.028882 0.016178 0.101000 0.010019 0.035291 0.029805 0.030401 0.014153 0.027773 0.015091 0.016244 0.029298 0.029875 0.016105 0.044019 0.028723 0.019514 0.021755 0.157380 0.039570 0.018228 0.008265 0.133891 0.039032 0.001866 0.019315 0.063422 0.040161 0.204360 +0.077344 +0.030827 0.034261 0.029349 0.042909 0.016741 0.032047 0.011141 0.036931 0.033308 0.029150 0.016884 0.063163 0.016439 0.016203 0.033041 0.033321 0.015435 0.074175 0.029043 0.019013 0.020363 0.157380 0.038564 0.017565 0.008701 0.063422 0.037605 0.002196 0.019310 0.086911 0.038990 0.180870 +0.069159 +0.028570 0.033104 0.029839 0.028428 0.018284 0.113901 0.011604 0.037573 0.029462 0.029179 0.015859 0.042383 0.016003 0.015986 0.028232 0.028811 0.018319 0.078889 0.028271 0.019518 0.018854 0.086911 0.040669 0.012847 0.007235 0.086911 0.041684 0.000425 0.021035 0.133891 0.041836 0.157380 +0.254998 +0.031679 0.036444 0.035466 0.028554 0.014390 0.190981 0.011196 0.037070 0.028782 0.036479 0.016166 0.018708 0.015167 0.015569 0.033354 0.028228 0.014545 0.037879 0.028660 0.019296 0.022335 0.086911 0.039608 0.013269 0.005954 0.086911 0.040375 0.000127 0.019562 0.086911 0.041683 0.133891 +0.221494 +0.032548 0.039380 0.030865 0.031440 0.016749 0.024554 0.010575 0.035481 0.029476 0.033289 0.017519 0.043852 0.015520 0.015865 0.031432 0.029035 0.018581 0.083642 0.028045 0.019623 0.020525 0.133891 0.038828 0.016054 0.006324 0.133891 0.042018 0.001849 0.020336 0.063422 0.039569 0.157380 +0.071678 +0.030202 0.033044 0.030214 0.028585 0.016767 0.026612 0.010122 0.037324 0.031232 0.033157 0.016648 0.109293 0.015464 0.015988 0.029281 0.033867 0.017391 0.084027 0.028721 0.020651 0.019054 0.133891 0.038861 0.014757 0.007063 0.110401 0.041915 0.000648 0.019452 0.110401 0.037781 0.180870 +0.143454 +0.032215 0.039518 0.028529 0.032079 0.015915 0.029135 0.010999 0.037061 0.032752 0.029762 0.014294 0.065974 0.016220 0.015791 0.031413 0.028893 0.014616 0.022885 0.028040 0.019346 0.021415 0.157380 0.039931 0.014121 0.004821 0.086911 0.037715 0.000263 0.020164 0.157380 0.038739 0.204360 +0.005961 +0.032562 0.034946 0.028319 0.028198 0.014304 0.030093 0.011563 0.036298 0.028193 0.031183 0.015801 0.222922 0.016369 0.016312 0.030376 0.030304 0.018344 0.100975 0.027447 0.020074 0.022688 0.086911 0.040068 0.018439 0.013138 0.133891 0.038138 0.001857 0.021007 0.063422 0.040865 0.157380 +0.396737 +0.029840 0.039757 0.029454 0.037229 0.016223 0.052831 0.010644 0.035559 0.032796 0.029760 0.016622 0.077924 0.015718 0.015713 0.030233 0.029302 0.015648 0.103411 0.027396 0.020916 0.021188 0.133891 0.040088 0.018353 0.005366 0.110401 0.041619 0.000615 0.020209 0.157380 0.039408 0.180870 +0.174654 +0.029685 0.036649 0.039624 0.028571 0.018503 0.135165 0.011372 0.037167 0.028773 0.028674 0.016465 0.028485 0.016224 0.015896 0.030215 0.028211 0.015700 0.023075 0.027273 0.020547 0.023395 0.086911 0.037800 0.017877 0.010276 0.063422 0.041290 0.000495 0.020457 0.086911 0.038615 0.180870 +0.148256 +0.030870 0.033848 0.029017 0.030412 0.017192 0.117820 0.010341 0.036480 0.036904 0.030494 0.018204 0.027009 0.015798 0.015885 0.033914 0.032852 0.015677 0.025366 0.030714 0.018864 0.021411 0.110401 0.037614 0.012627 0.011142 0.110401 0.040823 0.001572 0.021127 0.157380 0.040581 0.180870 +0.034280 +0.030621 0.034826 0.029910 0.028900 0.018389 0.039375 0.011478 0.037190 0.030618 0.032178 0.015797 0.087211 0.015604 0.015929 0.028697 0.031241 0.014428 0.080422 0.029059 0.020881 0.019895 0.110401 0.038490 0.016312 0.012687 0.157380 0.041517 0.000779 0.020465 0.180870 0.039969 0.204360 +0.180783 +0.031125 0.037768 0.032098 0.029604 0.018431 0.031826 0.011251 0.036307 0.031642 0.031270 0.014407 0.052361 0.015345 0.016343 0.028226 0.029519 0.017752 0.275017 0.028755 0.019360 0.018811 0.086911 0.041854 0.012423 0.013812 0.110401 0.041911 0.001064 0.020905 0.086911 0.038740 0.133891 +0.444491 +0.029817 0.036765 0.030450 0.030460 0.016722 0.020218 0.010128 0.036227 0.028723 0.029464 0.015482 0.036192 0.016345 0.015977 0.028726 0.029339 0.016627 0.079910 0.029209 0.020543 0.022823 0.157380 0.038768 0.016975 0.012398 0.133891 0.041046 0.001252 0.019238 0.063422 0.039030 0.180870 +0.063685 +0.029576 0.035954 0.028240 0.035924 0.017672 0.097356 0.010271 0.036084 0.028231 0.028264 0.016754 0.076515 0.015070 0.015539 0.032149 0.032334 0.014602 0.035461 0.028307 0.019938 0.021268 0.110401 0.041819 0.014429 0.010270 0.086911 0.041740 0.000955 0.020850 0.063422 0.041046 0.204360 +0.077048 +0.031411 0.039348 0.031512 0.035110 0.014962 0.160889 0.009964 0.035250 0.030468 0.028698 0.018093 0.019154 0.015108 0.015631 0.028393 0.028242 0.017655 0.052872 0.027968 0.019801 0.022655 0.063422 0.041542 0.015695 0.011894 0.157380 0.039224 0.001477 0.019939 0.063422 0.037921 0.180870 +0.219057 +0.029090 0.036758 0.044844 0.030076 0.015233 0.048784 0.011370 0.035515 0.028457 0.029318 0.017069 0.080267 0.015243 0.015658 0.029238 0.029371 0.014536 0.072350 0.028620 0.019120 0.021690 0.157380 0.042095 0.015073 0.011356 0.110401 0.041155 0.002073 0.020949 0.110401 0.041450 0.204360 +0.083421 +0.032725 0.033809 0.028615 0.031614 0.018555 0.080530 0.010615 0.036401 0.029406 0.029097 0.015786 0.106550 0.015750 0.015724 0.040870 0.029861 0.015034 0.081820 0.029160 0.019350 0.022588 0.133891 0.038453 0.014697 0.011583 0.133891 0.038913 0.001177 0.020721 0.157380 0.041959 0.204360 +0.244918 +0.028225 0.038312 0.028433 0.028239 0.018728 0.017118 0.010395 0.037023 0.030316 0.033614 0.014515 0.046954 0.016418 0.015830 0.028517 0.031953 0.017833 0.046942 0.028268 0.020662 0.019616 0.110401 0.041550 0.012707 0.005647 0.157380 0.041342 0.001612 0.021119 0.110401 0.042063 0.180870 +0 +0.032099 0.033766 0.028313 0.033096 0.014410 0.048173 0.011185 0.037543 0.028215 0.029635 0.016145 0.045485 0.016113 0.016388 0.028540 0.030047 0.016958 0.040243 0.028148 0.019224 0.021801 0.063422 0.040972 0.015810 0.012817 0.110401 0.038237 0.002029 0.020303 0.157380 0.039165 0.180870 +0.018232 +0.032835 0.038472 0.032303 0.029948 0.016396 0.062147 0.009473 0.036385 0.034130 0.043088 0.014530 0.104869 0.016166 0.016106 0.029663 0.031522 0.016542 0.255172 0.027882 0.020878 0.019202 0.086911 0.038341 0.014646 0.006515 0.063422 0.041127 0.002049 0.019731 0.063422 0.039368 0.204360 +0.561716 +0.032730 0.033582 0.028544 0.028611 0.017470 0.058968 0.011493 0.035738 0.030485 0.030310 0.018124 0.039040 0.015603 0.015630 0.030215 0.030893 0.017591 0.049363 0.028146 0.020059 0.023318 0.133891 0.040735 0.018084 0.008781 0.110401 0.039669 0.002161 0.020580 0.086911 0.039461 0.157380 +0.089425 +0.030256 0.033954 0.029049 0.028760 0.014656 0.115905 0.010142 0.037113 0.029841 0.029019 0.017248 0.057666 0.016254 0.015992 0.028777 0.029839 0.017447 0.045052 0.027735 0.020792 0.020626 0.133891 0.039022 0.018244 0.007421 0.063422 0.040006 0.001865 0.019120 0.157380 0.037593 0.180870 +0.241428 +0.028977 0.036102 0.028931 0.030011 0.017731 0.042622 0.010795 0.035603 0.029532 0.028582 0.014888 0.040454 0.015349 0.016321 0.029352 0.032085 0.016446 0.026780 0.027784 0.020327 0.021790 0.086911 0.041295 0.014757 0.010730 0.110401 0.041223 0.001497 0.018949 0.110401 0.042145 0.157380 +0.002506 +0.030857 0.035551 0.036222 0.032731 0.017398 0.026984 0.009824 0.035303 0.031530 0.032530 0.015776 0.022106 0.015132 0.016291 0.028809 0.028315 0.016099 0.048549 0.026690 0.020503 0.020271 0.086911 0.039513 0.016016 0.011594 0.110401 0.039823 0.000143 0.020025 0.133891 0.039950 0.180870 +0 +0.032010 0.034022 0.030752 0.029492 0.016932 0.066562 0.009585 0.037141 0.029292 0.029153 0.014787 0.078967 0.016174 0.016265 0.029653 0.028632 0.018517 0.146426 0.025571 0.018997 0.019265 0.086911 0.039205 0.018495 0.011002 0.086911 0.037685 0.001030 0.020300 0.086911 0.038349 0.133891 +0.339416 +0.030019 0.037478 0.028223 0.038207 0.016378 0.116877 0.010327 0.037426 0.029725 0.033941 0.015059 0.029019 0.015977 0.016184 0.032779 0.028324 0.018486 0.215991 0.027392 0.018966 0.021400 0.110401 0.040912 0.014082 0.013298 0.086911 0.039476 0.001160 0.019766 0.086911 0.039465 0.157380 +0.439418 +0.031469 0.039111 0.030858 0.028467 0.016324 0.114607 0.010210 0.037340 0.029990 0.028385 0.016033 0.057055 0.015459 0.015978 0.030363 0.033365 0.016020 0.138874 0.028210 0.018964 0.020344 0.086911 0.042136 0.018767 0.006477 0.086911 0.038271 0.002195 0.020790 0.110401 0.042213 0.180870 +0.328271 +0.030757 0.033103 0.028414 0.028881 0.015227 0.075041 0.010856 0.037488 0.029335 0.028763 0.017740 0.203167 0.015225 0.015528 0.031084 0.028245 0.015718 0.104331 0.026771 0.018887 0.023095 0.157380 0.040433 0.012762 0.013070 0.157380 0.041669 0.000507 0.018941 0.157380 0.037787 0.180870 +0.453678 +0.032509 0.038179 0.028915 0.029318 0.017626 0.021735 0.011061 0.036060 0.032103 0.028228 0.014626 0.098570 0.015944 0.015936 0.029178 0.031293 0.015816 0.023344 0.028483 0.020456 0.019607 0.063422 0.040283 0.015188 0.010522 0.110401 0.040422 0.002113 0.019386 0.086911 0.038256 0.133891 +0.069227 +0.029857 0.037693 0.029578 0.028849 0.016771 0.066196 0.011611 0.035884 0.028393 0.029336 0.014187 0.169449 0.016417 0.015878 0.028250 0.028297 0.014111 0.058054 0.028037 0.018955 0.019996 0.086911 0.041483 0.013596 0.011678 0.086911 0.038965 0.000696 0.019002 0.110401 0.039709 0.133891 +0.359297 +0.030580 0.034605 0.035045 0.028473 0.017645 0.143216 0.010755 0.036914 0.030380 0.028684 0.017568 0.060392 0.015181 0.015692 0.028712 0.028416 0.014121 0.077651 0.028066 0.020996 0.020634 0.110401 0.041712 0.018069 0.013114 0.110401 0.037732 0.000275 0.020194 0.086911 0.041528 0.133891 +0.336640 +0.031710 0.038802 0.030647 0.028640 0.014993 0.091472 0.011420 0.036963 0.030592 0.028993 0.016031 0.222263 0.016253 0.015746 0.031204 0.029160 0.016091 0.048720 0.027823 0.019481 0.020772 0.063422 0.039706 0.016102 0.006593 0.063422 0.038796 0.000253 0.020003 0.110401 0.038271 0.204360 +0.376841 +0.031494 0.039179 0.032812 0.028328 0.017209 0.098421 0.010755 0.035536 0.029015 0.029290 0.014386 0.037219 0.015965 0.015545 0.028837 0.029687 0.017243 0.094830 0.028081 0.019018 0.023288 0.110401 0.037586 0.016624 0.005705 0.063422 0.041346 0.000753 0.020015 0.110401 0.041632 0.157380 +0.240717 +0.028483 0.037108 0.029390 0.029043 0.016838 0.110930 0.009765 0.036331 0.031121 0.032019 0.016201 0.117903 0.016416 0.015530 0.028843 0.031124 0.016516 0.055866 0.026729 0.020022 0.020906 0.063422 0.040785 0.014908 0.012192 0.063422 0.038995 0.002178 0.018933 0.086911 0.039377 0.133891 +0.321371 +0.030502 0.039165 0.031192 0.037714 0.018718 0.083682 0.009731 0.036180 0.034759 0.035150 0.016347 0.025189 0.016090 0.016301 0.028642 0.034501 0.015934 0.020534 0.027853 0.019760 0.019522 0.086911 0.040973 0.012658 0.013006 0.110401 0.040775 0.000220 0.021116 0.063422 0.037948 0.180870 +0 +0.029647 0.036207 0.032163 0.028969 0.018159 0.033974 0.011420 0.036818 0.028778 0.028859 0.015818 0.028182 0.015450 0.016367 0.028250 0.029762 0.018522 0.024545 0.028577 0.019389 0.019653 0.086911 0.040680 0.017846 0.006074 0.133891 0.041764 0.001003 0.019165 0.157380 0.040210 0.180870 +0 +0.032691 0.033362 0.030018 0.030718 0.014139 0.061596 0.009467 0.037063 0.031368 0.028792 0.016923 0.022019 0.015065 0.015822 0.028678 0.033984 0.015367 0.191485 0.027603 0.020739 0.018957 0.180870 0.040861 0.017158 0.010011 0.063422 0.040934 0.000951 0.020471 0.157380 0.040827 0.204360 +0.357733 +0.029153 0.036035 0.029715 0.028282 0.015573 0.072189 0.009760 0.037130 0.032340 0.029802 0.014926 0.049944 0.016427 0.015564 0.029491 0.031043 0.018376 0.129688 0.029174 0.018991 0.019765 0.133891 0.040698 0.012163 0.010414 0.110401 0.040689 0.001926 0.018862 0.180870 0.041849 0.204360 +0.247814 +0.029389 0.034860 0.031479 0.033368 0.016081 0.124302 0.009816 0.036428 0.036924 0.032450 0.016009 0.065760 0.015683 0.015665 0.030088 0.028303 0.017221 0.219791 0.027843 0.019565 0.020786 0.110401 0.040677 0.011842 0.005354 0.086911 0.039407 0.000787 0.020883 0.110401 0.038937 0.133891 +0.552687 +0.029438 0.036761 0.030747 0.028715 0.017039 0.041246 0.010939 0.036524 0.031025 0.032904 0.017488 0.025765 0.015223 0.016396 0.030654 0.028403 0.016940 0.053979 0.030065 0.019022 0.018894 0.110401 0.039911 0.012295 0.008713 0.086911 0.041479 0.000475 0.020732 0.110401 0.041936 0.157380 +0.012842 +0.028590 0.033189 0.028837 0.029094 0.015310 0.128606 0.010353 0.036357 0.028667 0.031122 0.017374 0.097887 0.015733 0.015664 0.032089 0.028192 0.016794 0.285144 0.026354 0.019460 0.022992 0.063422 0.037756 0.016698 0.005342 0.063422 0.039188 0.001419 0.020798 0.063422 0.038001 0.133891 +0.697124 +0.028194 0.037253 0.035596 0.030013 0.017506 0.066894 0.010067 0.036579 0.030971 0.032439 0.018168 0.063874 0.015570 0.016139 0.030206 0.029371 0.015319 0.031047 0.026565 0.020646 0.022564 0.133891 0.041013 0.017837 0.012369 0.086911 0.040490 0.001413 0.020259 0.086911 0.039275 0.180870 +0.028135 +0.031744 0.039924 0.029613 0.032806 0.015506 0.085862 0.009540 0.036675 0.029682 0.030835 0.014521 0.081870 0.015649 0.015672 0.029178 0.034689 0.015196 0.039540 0.029238 0.021054 0.019506 0.157380 0.038523 0.011768 0.009083 0.086911 0.041936 0.000857 0.019829 0.086911 0.038998 0.180870 +0.114003 +0.032205 0.037004 0.029101 0.030681 0.015918 0.065463 0.010771 0.036415 0.029413 0.030276 0.015306 0.050225 0.015864 0.016090 0.031740 0.028779 0.018289 0.163649 0.030266 0.020092 0.021160 0.063422 0.038084 0.013934 0.009320 0.110401 0.041423 0.001746 0.021095 0.157380 0.041286 0.204360 +0.301134 +0.031263 0.035821 0.032270 0.029675 0.015733 0.025959 0.009614 0.036067 0.029410 0.028195 0.014333 0.042687 0.016410 0.015922 0.029415 0.028265 0.017326 0.071554 0.029162 0.018868 0.022098 0.157380 0.037618 0.018410 0.010161 0.157380 0.041435 0.000549 0.019954 0.133891 0.039083 0.204360 +0.016055 +0.031699 0.033634 0.028570 0.029950 0.017275 0.202568 0.010595 0.037146 0.030705 0.028642 0.016808 0.022939 0.015763 0.015811 0.028619 0.030461 0.015538 0.045556 0.028587 0.019255 0.019144 0.110401 0.042196 0.011982 0.006742 0.110401 0.038010 0.000690 0.020272 0.086911 0.040368 0.133891 +0.351218 +0.032346 0.034286 0.032164 0.028545 0.014515 0.076740 0.011205 0.036096 0.029391 0.029445 0.016032 0.022696 0.015507 0.015860 0.032713 0.029189 0.014736 0.036848 0.029127 0.020970 0.021936 0.063422 0.039309 0.013934 0.009971 0.133891 0.041196 0.001025 0.020946 0.063422 0.041844 0.180870 +0.031740 +0.028867 0.034964 0.030822 0.032339 0.014704 0.108980 0.011247 0.035986 0.030514 0.037226 0.016810 0.023817 0.015850 0.015664 0.032573 0.030241 0.014443 0.039748 0.029888 0.019008 0.019886 0.086911 0.038405 0.012250 0.013601 0.086911 0.037635 0.000396 0.020827 0.110401 0.039421 0.157380 +0.031656 +0.030768 0.039325 0.029556 0.028305 0.015267 0.042061 0.009965 0.035516 0.029366 0.028491 0.016182 0.047339 0.015692 0.015532 0.034763 0.028795 0.014357 0.046031 0.027485 0.019156 0.019270 0.086911 0.038752 0.017237 0.008173 0.063422 0.040741 0.002111 0.020280 0.110401 0.041489 0.157380 +0.010083 +0.030043 0.036083 0.031268 0.028436 0.017133 0.180129 0.011697 0.037399 0.034084 0.029666 0.014855 0.034536 0.015435 0.016435 0.030156 0.028735 0.017706 0.121494 0.029304 0.021058 0.019557 0.180870 0.037589 0.018776 0.005046 0.133891 0.039189 0.000115 0.020222 0.157380 0.041885 0.204360 +0.301596 +0.031740 0.034540 0.031108 0.030902 0.015904 0.053245 0.009701 0.036787 0.028382 0.028646 0.016090 0.075171 0.015616 0.015742 0.029570 0.028311 0.017909 0.027568 0.029021 0.019088 0.021631 0.133891 0.041321 0.012494 0.010746 0.157380 0.041503 0.000408 0.019690 0.133891 0.041309 0.204360 +0.024586 +0.028641 0.036523 0.035540 0.028362 0.018176 0.187314 0.010398 0.037377 0.035223 0.038706 0.018686 0.068005 0.015495 0.016134 0.033413 0.028501 0.017909 0.046102 0.026337 0.020869 0.018961 0.110401 0.037668 0.018201 0.012692 0.157380 0.039269 0.000279 0.019486 0.157380 0.038764 0.180870 +0.375254 +0.028921 0.036015 0.033057 0.028853 0.015732 0.311395 0.011478 0.035287 0.031316 0.035820 0.015226 0.035354 0.015979 0.016130 0.028945 0.028198 0.015619 0.018157 0.028446 0.020151 0.023344 0.110401 0.040461 0.017923 0.011046 0.110401 0.038747 0.001690 0.020240 0.086911 0.040483 0.157380 +0.355676 +0.030271 0.039770 0.028666 0.031046 0.015635 0.218312 0.010416 0.035835 0.034370 0.032231 0.017093 0.041181 0.015177 0.015531 0.028399 0.035676 0.014477 0.227790 0.026425 0.019084 0.021164 0.110401 0.039097 0.014022 0.012608 0.110401 0.037649 0.001714 0.019162 0.110401 0.040775 0.133891 +0.680686 +0.032813 0.036738 0.030547 0.030182 0.014605 0.042836 0.011006 0.036495 0.029320 0.030669 0.017636 0.141449 0.015508 0.015658 0.029830 0.034347 0.016404 0.049769 0.028137 0.019303 0.019003 0.086911 0.040149 0.013868 0.009838 0.086911 0.040534 0.000081 0.019109 0.063422 0.039050 0.204360 +0.147274 +0.031069 0.036147 0.028331 0.039691 0.016408 0.050710 0.011116 0.037061 0.028956 0.033500 0.014684 0.064347 0.015801 0.016312 0.028251 0.033245 0.018741 0.045576 0.029032 0.021087 0.021852 0.063422 0.038971 0.013915 0.009801 0.063422 0.038563 0.001863 0.020770 0.110401 0.038668 0.133891 +0.063124 +0.031236 0.033666 0.030410 0.029576 0.014290 0.057229 0.010630 0.037447 0.028394 0.029640 0.016113 0.079300 0.015889 0.015927 0.028603 0.030797 0.015369 0.082746 0.028153 0.019139 0.020736 0.133891 0.040746 0.016156 0.011244 0.180870 0.039040 0.000705 0.019501 0.133891 0.041629 0.204360 +0.114864 +0.032432 0.033746 0.029771 0.035705 0.015665 0.065801 0.009554 0.035511 0.028961 0.030112 0.017403 0.091244 0.015809 0.015680 0.028400 0.030487 0.014824 0.025396 0.028432 0.020760 0.020162 0.180870 0.040466 0.018053 0.009910 0.133891 0.041625 0.001728 0.019068 0.063422 0.041190 0.204360 +0.083434 +0.030694 0.035655 0.029334 0.034437 0.018305 0.048925 0.009715 0.037184 0.031703 0.030434 0.015901 0.055298 0.016096 0.015880 0.028255 0.030240 0.014140 0.033658 0.028630 0.020187 0.020239 0.110401 0.039816 0.014775 0.010811 0.063422 0.039277 0.000094 0.020868 0.133891 0.039707 0.157380 +0.051561 +0.031375 0.036751 0.028438 0.032187 0.014364 0.064157 0.011060 0.036155 0.034680 0.029177 0.016478 0.069718 0.015510 0.015599 0.029507 0.031191 0.015410 0.044367 0.030024 0.018913 0.022517 0.086911 0.041711 0.015384 0.006446 0.110401 0.040293 0.001507 0.018927 0.110401 0.041646 0.157380 +0.085656 +0.030713 0.037548 0.034691 0.035167 0.016789 0.167209 0.009641 0.037004 0.028787 0.028711 0.015140 0.024844 0.015220 0.016196 0.033877 0.029768 0.017906 0.052051 0.028791 0.019035 0.019575 0.086911 0.041260 0.016772 0.011342 0.110401 0.038393 0.002297 0.020950 0.063422 0.041131 0.157380 +0.208943 +0.032251 0.039255 0.028832 0.031498 0.017230 0.090098 0.011235 0.035687 0.028604 0.029029 0.015042 0.039720 0.015934 0.015894 0.030352 0.029326 0.014855 0.253817 0.026589 0.019539 0.019055 0.133891 0.040623 0.018538 0.012624 0.110401 0.037667 0.001242 0.019815 0.110401 0.039514 0.180870 +0.547803 +0.029588 0.033759 0.028648 0.028919 0.016923 0.115324 0.011228 0.036274 0.033077 0.030024 0.018762 0.021683 0.015207 0.016014 0.028608 0.031257 0.014541 0.017735 0.026697 0.020184 0.021954 0.110401 0.038155 0.012992 0.013482 0.063422 0.038489 0.002214 0.019196 0.063422 0.042225 0.133891 +0.249250 +0.032815 0.038322 0.031502 0.028291 0.016059 0.037870 0.011190 0.037299 0.029042 0.033749 0.018238 0.018348 0.015256 0.015978 0.033736 0.028439 0.018386 0.111302 0.029094 0.018910 0.021290 0.180870 0.039551 0.014772 0.009255 0.133891 0.042089 0.001850 0.020154 0.086911 0.039526 0.204360 +0.047431 +0.032445 0.034105 0.028541 0.028920 0.014315 0.050365 0.009550 0.037250 0.034049 0.032778 0.018643 0.046049 0.015587 0.015720 0.029132 0.029332 0.018487 0.047616 0.029542 0.018887 0.019058 0.110401 0.041501 0.013966 0.009023 0.086911 0.039753 0.000387 0.019117 0.063422 0.037713 0.133891 +0.062928 +0.029317 0.034729 0.030226 0.032951 0.014607 0.057778 0.011068 0.035368 0.028276 0.030765 0.015392 0.026263 0.016241 0.015640 0.032264 0.030365 0.014359 0.164521 0.029392 0.020676 0.022924 0.110401 0.040387 0.014457 0.010034 0.133891 0.041304 0.001672 0.019668 0.063422 0.041987 0.204360 +0.142389 +0.029941 0.037175 0.030948 0.031126 0.015818 0.047731 0.011664 0.037546 0.029417 0.028578 0.015547 0.116475 0.016227 0.015682 0.028754 0.028489 0.016445 0.064995 0.026741 0.020657 0.023194 0.133891 0.040259 0.015448 0.013104 0.063422 0.041284 0.001617 0.019063 0.180870 0.039882 0.204360 +0.176813 +0.029446 0.035119 0.028843 0.028536 0.015759 0.257228 0.011456 0.037414 0.028921 0.029069 0.016587 0.144345 0.015033 0.015969 0.033920 0.031923 0.017291 0.035422 0.027923 0.019623 0.019883 0.086911 0.039493 0.012522 0.008419 0.063422 0.042086 0.000679 0.018794 0.110401 0.042055 0.133891 +0.486704 +0.032264 0.039242 0.029398 0.031210 0.014730 0.064434 0.011389 0.037552 0.032533 0.031204 0.018226 0.071854 0.015888 0.016192 0.033781 0.030505 0.015434 0.028167 0.028633 0.018966 0.019143 0.063422 0.039732 0.016786 0.008821 0.133891 0.039935 0.000648 0.020264 0.110401 0.041483 0.157380 +0.051413 +0.028485 0.037305 0.029177 0.028428 0.016241 0.044581 0.011524 0.035665 0.030801 0.029241 0.016210 0.061365 0.015679 0.016031 0.029635 0.030267 0.015677 0.043223 0.027376 0.020065 0.019185 0.133891 0.038569 0.013796 0.007688 0.063422 0.041541 0.000750 0.020098 0.086911 0.038786 0.180870 +0.059343 +0.030387 0.035367 0.028804 0.029618 0.017039 0.033641 0.009923 0.035783 0.029677 0.032286 0.018772 0.036729 0.016061 0.016210 0.028880 0.028865 0.018365 0.227486 0.028421 0.020056 0.020612 0.063422 0.040411 0.012902 0.008056 0.063422 0.041988 0.000806 0.019232 0.086911 0.039766 0.157380 +0.351233 +0.030467 0.038261 0.030332 0.028722 0.014326 0.027052 0.009782 0.037325 0.028604 0.028449 0.014291 0.072715 0.016289 0.016351 0.029935 0.033431 0.015200 0.031832 0.028585 0.021044 0.018958 0.110401 0.037618 0.013089 0.005135 0.133891 0.039170 0.000753 0.020672 0.133891 0.038431 0.157380 +0.055194 +0.028901 0.034988 0.029007 0.028424 0.015074 0.077409 0.010873 0.035939 0.029697 0.028558 0.015475 0.036010 0.015709 0.016373 0.030533 0.028635 0.016810 0.026706 0.027141 0.019242 0.021588 0.157380 0.041875 0.017484 0.005345 0.133891 0.040387 0.001587 0.020783 0.110401 0.038239 0.180870 +0.058867 +0.030760 0.033162 0.029531 0.029297 0.018443 0.060654 0.009999 0.035960 0.032231 0.032059 0.014785 0.045601 0.015162 0.015536 0.028710 0.031847 0.016265 0.148542 0.028751 0.019970 0.021967 0.086911 0.039763 0.012841 0.013989 0.086911 0.041542 0.000409 0.020974 0.063422 0.038720 0.133891 +0.172586 +0.031518 0.038009 0.033703 0.032740 0.014112 0.069683 0.010036 0.036009 0.030841 0.030327 0.017750 0.132608 0.016408 0.016402 0.030559 0.037051 0.018558 0.035805 0.027650 0.020892 0.020420 0.157380 0.042047 0.013255 0.006386 0.133891 0.039490 0.000757 0.019770 0.110401 0.040820 0.204360 +0.195798 +0.032275 0.035210 0.029056 0.029426 0.014759 0.016590 0.011631 0.036105 0.030578 0.028686 0.015324 0.083933 0.015848 0.016319 0.032718 0.030792 0.017905 0.045677 0.026183 0.018966 0.021377 0.157380 0.038324 0.018754 0.007599 0.180870 0.039025 0.002090 0.020223 0.086911 0.040572 0.204360 +0.045875 +0.029825 0.034111 0.028757 0.028502 0.018261 0.018847 0.011462 0.036835 0.028747 0.029397 0.014298 0.074171 0.015200 0.015569 0.029858 0.030232 0.018236 0.033612 0.026614 0.020886 0.023312 0.133891 0.040270 0.013757 0.009278 0.063422 0.038074 0.000566 0.020879 0.133891 0.041249 0.157380 +0.072429 +0.030736 0.035392 0.034451 0.030272 0.014459 0.076296 0.010886 0.036064 0.031793 0.029827 0.015097 0.122323 0.015750 0.016393 0.031467 0.029937 0.018298 0.037436 0.027245 0.020253 0.020204 0.133891 0.040205 0.017541 0.009365 0.157380 0.040936 0.000132 0.020630 0.110401 0.038156 0.180870 +0.204823 +0.029278 0.035736 0.029074 0.028533 0.015706 0.198878 0.011492 0.037008 0.030920 0.029069 0.017384 0.028732 0.015116 0.016357 0.032730 0.028900 0.015916 0.090484 0.030317 0.019923 0.020220 0.086911 0.039796 0.013846 0.007798 0.063422 0.040926 0.001901 0.020753 0.086911 0.040970 0.133891 +0.436175 +0.028365 0.035810 0.028632 0.028645 0.016201 0.111056 0.010531 0.036218 0.029678 0.029537 0.016042 0.035194 0.015451 0.015869 0.029126 0.029385 0.018440 0.021321 0.026282 0.020472 0.020392 0.133891 0.040925 0.018497 0.010000 0.110401 0.037965 0.000798 0.020216 0.180870 0.039276 0.204360 +0.111583 +0.030111 0.035093 0.028373 0.029660 0.017711 0.423150 0.010376 0.036333 0.033065 0.030564 0.016313 0.056507 0.016391 0.015722 0.038111 0.033564 0.017798 0.057570 0.027453 0.019792 0.022779 0.063422 0.037920 0.016147 0.009248 0.133891 0.040039 0.001216 0.020638 0.180870 0.040591 0.204360 +0.541881 +0.032354 0.033007 0.029840 0.029407 0.017952 0.421346 0.010094 0.035469 0.028421 0.030135 0.017678 0.059575 0.015365 0.015700 0.029233 0.031785 0.015265 0.057453 0.027772 0.020414 0.021159 0.180870 0.041895 0.016343 0.014020 0.133891 0.041232 0.001611 0.019823 0.133891 0.040612 0.204360 +0.628146 +0.030877 0.038808 0.028228 0.031184 0.016224 0.024113 0.009766 0.037370 0.029560 0.032460 0.018280 0.111367 0.015236 0.016200 0.030183 0.031067 0.018527 0.104729 0.028294 0.021131 0.020893 0.110401 0.040015 0.017820 0.005884 0.157380 0.042208 0.001230 0.020856 0.133891 0.038396 0.204360 +0.171659 +0.032403 0.037251 0.030517 0.028685 0.018077 0.102775 0.009492 0.035758 0.030013 0.030647 0.018684 0.239924 0.015467 0.015751 0.034438 0.031530 0.016148 0.162166 0.029666 0.018984 0.023096 0.157380 0.041126 0.012227 0.008464 0.110401 0.041184 0.000944 0.020030 0.180870 0.040444 0.204360 +0.651472 +0.030507 0.036297 0.029301 0.034291 0.017034 0.062888 0.009680 0.036156 0.030154 0.028340 0.015682 0.034369 0.016014 0.015943 0.043234 0.028222 0.014451 0.111740 0.028348 0.019593 0.020836 0.063422 0.038203 0.014339 0.007043 0.110401 0.039285 0.001716 0.020554 0.063422 0.038663 0.133891 +0.174218 +0.029052 0.039618 0.030024 0.030512 0.015879 0.101763 0.009884 0.035975 0.029449 0.028210 0.017059 0.139393 0.016143 0.015635 0.032595 0.029713 0.018382 0.077039 0.026663 0.020342 0.022668 0.133891 0.040881 0.015722 0.012167 0.086911 0.038578 0.001385 0.019069 0.063422 0.041285 0.204360 +0.223542 +0.029089 0.034391 0.033341 0.028257 0.018612 0.066052 0.010595 0.036288 0.031881 0.029842 0.018750 0.017541 0.015816 0.015558 0.028635 0.028604 0.017074 0.060448 0.026805 0.020477 0.020661 0.110401 0.039056 0.013186 0.008553 0.110401 0.038148 0.001059 0.020066 0.133891 0.039222 0.157380 +0.073895 +0.032746 0.036767 0.028338 0.029045 0.014192 0.176984 0.011207 0.035787 0.030253 0.031178 0.015599 0.134812 0.015371 0.015867 0.028313 0.032983 0.018717 0.017234 0.027965 0.019147 0.021314 0.157380 0.040962 0.016704 0.012807 0.063422 0.041068 0.000936 0.021069 0.110401 0.041444 0.180870 +0.320375 +0.030383 0.035222 0.028523 0.033342 0.015868 0.022348 0.010255 0.037395 0.032231 0.030284 0.017690 0.068457 0.015541 0.015807 0.028360 0.029316 0.017040 0.047017 0.025351 0.020666 0.020813 0.086911 0.038388 0.015746 0.009980 0.063422 0.038649 0.001914 0.019923 0.063422 0.037649 0.133891 +0.031846 +0.030268 0.039151 0.028946 0.029945 0.018412 0.093073 0.010370 0.037252 0.028266 0.028951 0.017743 0.080813 0.015383 0.016084 0.035073 0.029981 0.016851 0.065049 0.025896 0.020104 0.020966 0.110401 0.042178 0.012736 0.012610 0.063422 0.041486 0.001200 0.019860 0.110401 0.038723 0.133891 +0.223709 +0.031922 0.036094 0.028545 0.031978 0.016730 0.019226 0.011528 0.035606 0.030603 0.029234 0.014180 0.112059 0.015298 0.015979 0.028861 0.028985 0.018049 0.263321 0.026352 0.020295 0.022613 0.063422 0.039487 0.014238 0.012499 0.086911 0.038801 0.001137 0.019952 0.063422 0.040040 0.133891 +0.559893 +0.028199 0.039732 0.028411 0.029065 0.014181 0.048270 0.010025 0.036140 0.031443 0.029142 0.015232 0.067442 0.015593 0.015688 0.029282 0.028796 0.016132 0.037125 0.027903 0.020166 0.022889 0.086911 0.039786 0.017093 0.010384 0.086911 0.039729 0.001230 0.018991 0.086911 0.038483 0.157380 +0.057761 +0.030921 0.034295 0.028753 0.032711 0.014522 0.057302 0.010619 0.036006 0.031528 0.028267 0.016355 0.020793 0.015593 0.015704 0.034030 0.036368 0.017975 0.085647 0.030157 0.020375 0.021698 0.133891 0.040293 0.014932 0.013273 0.133891 0.037678 0.001635 0.019642 0.086911 0.038542 0.204360 +0.021723 +0.030969 0.037817 0.036543 0.030102 0.017174 0.076207 0.010301 0.035586 0.029563 0.030017 0.017984 0.060670 0.016033 0.016187 0.033887 0.028533 0.017243 0.149861 0.028350 0.021050 0.018905 0.133891 0.038967 0.016426 0.008686 0.133891 0.041193 0.001702 0.019280 0.063422 0.039066 0.180870 +0.205005 +0.030153 0.039683 0.029315 0.028848 0.015034 0.059874 0.010627 0.036050 0.030416 0.029461 0.016133 0.400392 0.015569 0.015977 0.035394 0.029851 0.018269 0.083731 0.028678 0.020787 0.022183 0.110401 0.040038 0.016834 0.007930 0.063422 0.040524 0.000640 0.020879 0.063422 0.040653 0.133891 +0.723939 +0.029678 0.035540 0.028672 0.029180 0.018668 0.065614 0.009865 0.035662 0.028260 0.028464 0.016243 0.298490 0.016397 0.016343 0.028234 0.030974 0.017612 0.050086 0.027529 0.019022 0.019152 0.086911 0.040461 0.013366 0.013783 0.110401 0.038356 0.001216 0.020732 0.086911 0.041066 0.133891 +0.501026 +0.030389 0.037060 0.033495 0.030027 0.015006 0.031605 0.010600 0.037414 0.036110 0.028421 0.018610 0.039753 0.016439 0.016252 0.028619 0.028507 0.017981 0.109939 0.026717 0.019416 0.022837 0.086911 0.041232 0.015249 0.009797 0.063422 0.041511 0.002084 0.019084 0.063422 0.039360 0.157380 +0.081316 +0.028974 0.038801 0.035176 0.028952 0.017580 0.173806 0.011546 0.037503 0.038980 0.031741 0.018358 0.030964 0.016265 0.016348 0.028424 0.029909 0.016615 0.021215 0.029099 0.021067 0.021968 0.110401 0.037613 0.013920 0.008750 0.110401 0.038132 0.001330 0.019871 0.086911 0.039170 0.157380 +0.161526 +0.030246 0.036008 0.034697 0.032314 0.015887 0.050798 0.010682 0.037097 0.029067 0.031342 0.015933 0.062580 0.016164 0.016390 0.029921 0.030720 0.014189 0.157948 0.028966 0.019145 0.020104 0.133891 0.040173 0.014336 0.008353 0.063422 0.041334 0.001796 0.019256 0.110401 0.039699 0.204360 +0.195317 +0.030441 0.039020 0.031084 0.028279 0.018408 0.027431 0.009761 0.035893 0.029440 0.028538 0.014481 0.227741 0.015601 0.015664 0.031376 0.028780 0.014520 0.020650 0.025331 0.019725 0.019595 0.063422 0.037775 0.015828 0.010755 0.133891 0.041097 0.000804 0.019909 0.133891 0.039893 0.204360 +0.254978 +0.029671 0.035462 0.028237 0.030220 0.016346 0.103388 0.010608 0.037081 0.030090 0.032583 0.016814 0.032514 0.016159 0.015655 0.030133 0.030243 0.015616 0.047914 0.028476 0.018880 0.019407 0.086911 0.040295 0.017135 0.012979 0.110401 0.040278 0.002126 0.019179 0.110401 0.039362 0.204360 +0.017204 +0.030001 0.036696 0.028903 0.030374 0.015882 0.044165 0.010434 0.037164 0.029079 0.029595 0.017402 0.137005 0.015341 0.016026 0.030100 0.029307 0.015836 0.243197 0.029347 0.019946 0.019815 0.063422 0.038189 0.016992 0.006515 0.063422 0.038597 0.000552 0.019882 0.110401 0.038594 0.157380 +0.615806 +0.030264 0.036100 0.028204 0.030138 0.015540 0.270700 0.009452 0.037198 0.029269 0.028836 0.016562 0.188043 0.015880 0.016261 0.028602 0.035716 0.017840 0.123569 0.030564 0.019093 0.020075 0.110401 0.040987 0.014119 0.008985 0.086911 0.041356 0.001276 0.019868 0.086911 0.037626 0.180870 +0.777958 +0.032660 0.034086 0.030314 0.034533 0.014737 0.215127 0.010618 0.036466 0.034311 0.029991 0.018137 0.117516 0.015149 0.016298 0.038981 0.028397 0.015776 0.083950 0.027391 0.019395 0.021832 0.086911 0.039251 0.016558 0.007804 0.133891 0.042214 0.001621 0.019396 0.063422 0.039058 0.157380 +0.408160 +0.031793 0.033220 0.029113 0.028445 0.014755 0.197618 0.011623 0.035254 0.033345 0.031471 0.018233 0.049819 0.015076 0.015623 0.030286 0.030426 0.017675 0.021056 0.026947 0.020719 0.021948 0.086911 0.038889 0.014200 0.011942 0.133891 0.038462 0.001560 0.021005 0.133891 0.041160 0.157380 +0.450605 +0.030391 0.037380 0.030578 0.031618 0.016382 0.056593 0.011113 0.036876 0.033664 0.029109 0.015449 0.056751 0.015244 0.015763 0.028344 0.029682 0.017632 0.059046 0.029267 0.020583 0.022454 0.063422 0.037681 0.014168 0.013349 0.133891 0.039881 0.002021 0.019977 0.110401 0.038858 0.157380 +0.172161 +0.029226 0.034178 0.028466 0.029579 0.015686 0.059764 0.009915 0.036985 0.034462 0.029647 0.016207 0.018761 0.015964 0.015825 0.028371 0.029422 0.017905 0.114529 0.027511 0.019868 0.021465 0.063422 0.038869 0.016043 0.005195 0.110401 0.037871 0.001259 0.019587 0.063422 0.040022 0.133891 +0.207315 +0.032602 0.038979 0.030892 0.028259 0.017049 0.243548 0.010184 0.036088 0.030512 0.028520 0.014376 0.220585 0.015350 0.015632 0.029356 0.028334 0.015391 0.066639 0.029469 0.020094 0.019544 0.110401 0.040036 0.017363 0.012018 0.063422 0.040957 0.001925 0.019264 0.063422 0.042093 0.133891 +0.599420 +0.029947 0.039839 0.031700 0.032099 0.016368 0.087971 0.009415 0.036138 0.028887 0.028840 0.014725 0.158298 0.016301 0.015677 0.029221 0.035320 0.014124 0.186933 0.027346 0.018836 0.020873 0.110401 0.040470 0.018282 0.009521 0.063422 0.038822 0.000555 0.020084 0.063422 0.042129 0.157380 +0.515390 +0.032277 0.034904 0.032006 0.028265 0.015837 0.301533 0.010836 0.037139 0.028790 0.029748 0.014655 0.016969 0.015324 0.015816 0.032652 0.030011 0.016277 0.032856 0.026386 0.020339 0.019358 0.133891 0.040740 0.017121 0.013716 0.133891 0.041539 0.000017 0.018840 0.110401 0.039599 0.157380 +0.541068 +0.029832 0.037246 0.032772 0.034744 0.016306 0.039931 0.009537 0.035496 0.028437 0.028560 0.014469 0.056951 0.016222 0.016262 0.028450 0.028357 0.014752 0.024085 0.029884 0.019994 0.022883 0.110401 0.038193 0.014054 0.008035 0.063422 0.039171 0.001966 0.018802 0.063422 0.040681 0.133891 +0.063900 +0.032824 0.036527 0.028913 0.028242 0.016823 0.087807 0.010189 0.035380 0.029827 0.031800 0.014229 0.033326 0.015904 0.015926 0.028709 0.028364 0.016927 0.031713 0.026722 0.020730 0.023208 0.086911 0.041490 0.018002 0.013559 0.133891 0.039213 0.001226 0.020023 0.086911 0.039632 0.157380 +0.058441 +0.029980 0.034878 0.029422 0.028847 0.016833 0.151560 0.011280 0.037385 0.029870 0.031000 0.017634 0.109249 0.016221 0.015523 0.032919 0.028997 0.015053 0.018937 0.028121 0.018837 0.021107 0.086911 0.037934 0.015131 0.005245 0.157380 0.037976 0.002209 0.019709 0.110401 0.040596 0.204360 +0.307651 +0.031105 0.038466 0.028943 0.036181 0.018247 0.105473 0.011596 0.036563 0.029287 0.033503 0.017339 0.126569 0.016016 0.015642 0.028498 0.028422 0.015699 0.072996 0.026667 0.020768 0.021454 0.157380 0.041972 0.018010 0.012542 0.086911 0.041226 0.000867 0.019808 0.086911 0.040813 0.204360 +0.248629 +0.029543 0.038588 0.029001 0.030014 0.018013 0.034168 0.009420 0.035291 0.030151 0.028394 0.017820 0.026404 0.015275 0.016374 0.029344 0.036292 0.017778 0.025874 0.031793 0.020492 0.022573 0.110401 0.038792 0.012715 0.007431 0.086911 0.041601 0.001460 0.019562 0.086911 0.039048 0.204360 +0 +0.032661 0.037830 0.038600 0.029686 0.016464 0.024828 0.011589 0.035556 0.031475 0.036532 0.015350 0.041079 0.015883 0.016438 0.029051 0.030760 0.015143 0.073920 0.027861 0.021024 0.019802 0.110401 0.038913 0.014365 0.012669 0.110401 0.039333 0.000107 0.020140 0.110401 0.041473 0.133891 +0.098490 +0.030415 0.037139 0.028237 0.029117 0.016649 0.034851 0.010379 0.035390 0.030124 0.033377 0.014847 0.033492 0.016396 0.016235 0.030047 0.028857 0.018231 0.101875 0.027495 0.019295 0.020570 0.157380 0.037962 0.015698 0.011701 0.086911 0.039382 0.001103 0.019257 0.157380 0.039469 0.204360 +0.069943 +0.029471 0.035320 0.029872 0.028495 0.018543 0.357163 0.010462 0.035345 0.030018 0.030901 0.016150 0.095594 0.015431 0.016185 0.028439 0.028386 0.016559 0.117596 0.027952 0.020603 0.020710 0.133891 0.038284 0.017334 0.009336 0.180870 0.040784 0.001889 0.019166 0.180870 0.038660 0.204360 +0.576472 +0.031945 0.035811 0.037802 0.033773 0.016348 0.261948 0.011443 0.036295 0.031481 0.029278 0.014307 0.039536 0.015497 0.015886 0.028749 0.029001 0.014984 0.062207 0.027548 0.019980 0.020250 0.086911 0.041544 0.018318 0.008390 0.110401 0.041054 0.002241 0.019145 0.133891 0.039842 0.157380 +0.463962 +0.032796 0.037050 0.037855 0.031265 0.015052 0.208723 0.009407 0.035861 0.028381 0.028306 0.015654 0.026947 0.015776 0.015921 0.030455 0.031710 0.018360 0.293504 0.026217 0.019977 0.021272 0.133891 0.041592 0.014772 0.006641 0.110401 0.037827 0.001414 0.019708 0.133891 0.037951 0.157380 +0.688295 +0.032270 0.034306 0.030231 0.028602 0.016013 0.042393 0.011261 0.035721 0.032787 0.028348 0.017526 0.031639 0.015615 0.015794 0.028242 0.032464 0.017873 0.047995 0.027600 0.020080 0.019486 0.110401 0.038205 0.015288 0.005385 0.086911 0.038551 0.000917 0.020043 0.110401 0.040024 0.133891 +0.111865 +0.032195 0.034898 0.030717 0.028233 0.014476 0.115355 0.009835 0.036746 0.028458 0.028206 0.016855 0.149184 0.015417 0.016406 0.029608 0.028859 0.015233 0.087576 0.029325 0.019017 0.021781 0.086911 0.039102 0.018647 0.006331 0.063422 0.040375 0.001478 0.019975 0.086911 0.037820 0.133891 +0.449500 +0.028409 0.037629 0.028290 0.028221 0.016590 0.040157 0.009760 0.037504 0.028713 0.029781 0.014339 0.044594 0.016241 0.016212 0.033949 0.028406 0.016924 0.141083 0.029781 0.020407 0.020655 0.157380 0.041147 0.017220 0.010370 0.110401 0.039750 0.000270 0.019930 0.157380 0.037914 0.180870 +0.180414 +0.031031 0.037396 0.030682 0.028606 0.017084 0.028373 0.009605 0.036990 0.029015 0.028721 0.016919 0.221549 0.015651 0.015559 0.029273 0.029894 0.014395 0.158060 0.030309 0.020664 0.022724 0.110401 0.040290 0.017417 0.009422 0.110401 0.038919 0.000890 0.019684 0.133891 0.039645 0.204360 +0.546945 +0.031866 0.039083 0.031143 0.028450 0.017658 0.202951 0.010451 0.035887 0.029402 0.029480 0.016923 0.068370 0.016180 0.016438 0.035660 0.030648 0.018334 0.173975 0.025459 0.019955 0.021229 0.110401 0.038273 0.012239 0.006291 0.110401 0.041887 0.002172 0.020120 0.063422 0.038266 0.133891 +0.610780 +0.032339 0.034959 0.031716 0.032320 0.015151 0.072954 0.011266 0.036088 0.028808 0.031203 0.014715 0.127551 0.015572 0.016439 0.028223 0.028505 0.015893 0.031541 0.028319 0.019848 0.021626 0.110401 0.038373 0.013248 0.005361 0.086911 0.037637 0.000604 0.020791 0.133891 0.040412 0.180870 +0.259679 +0.029260 0.033630 0.030122 0.029080 0.017576 0.145368 0.010323 0.035642 0.030553 0.029805 0.017865 0.032048 0.015355 0.015633 0.029638 0.034176 0.014734 0.083970 0.028005 0.019636 0.021878 0.133891 0.038020 0.015783 0.008279 0.110401 0.039377 0.001381 0.020502 0.110401 0.042062 0.157380 +0.241857 +0.030869 0.032918 0.028856 0.033378 0.018096 0.350021 0.010287 0.035886 0.031033 0.028250 0.014686 0.067196 0.016057 0.016350 0.028900 0.029242 0.017120 0.050759 0.026707 0.020505 0.023381 0.110401 0.037675 0.014947 0.008977 0.086911 0.038918 0.000651 0.020883 0.086911 0.039442 0.157380 +0.627536 +0.030295 0.036512 0.029126 0.029303 0.014539 0.050002 0.010750 0.035405 0.039942 0.030482 0.018065 0.025079 0.015203 0.016263 0.032348 0.031547 0.014206 0.057019 0.027204 0.019686 0.023227 0.063422 0.040575 0.016619 0.012438 0.110401 0.040025 0.001633 0.020936 0.180870 0.041875 0.204360 +0.018662 +0.028936 0.033021 0.029164 0.029780 0.017623 0.037156 0.011071 0.035354 0.029763 0.029155 0.017839 0.022831 0.016004 0.015557 0.028302 0.031659 0.015463 0.186493 0.026398 0.020829 0.020428 0.063422 0.039887 0.015815 0.004742 0.110401 0.038820 0.002075 0.019183 0.086911 0.040817 0.157380 +0.268953 +0.030793 0.033619 0.029025 0.047503 0.015024 0.049624 0.009895 0.037534 0.029207 0.028412 0.018319 0.051643 0.015697 0.015631 0.031579 0.029490 0.015080 0.041448 0.027280 0.020740 0.022868 0.157380 0.040946 0.018423 0.013143 0.063422 0.038526 0.001545 0.019474 0.086911 0.041919 0.180870 +0.039256 +0.028428 0.038880 0.028518 0.029969 0.015949 0.104070 0.009581 0.035372 0.033037 0.030019 0.017404 0.032517 0.015772 0.016066 0.033363 0.030821 0.017971 0.027442 0.030331 0.019876 0.021525 0.110401 0.039800 0.014430 0.013370 0.110401 0.041447 0.001596 0.020792 0.086911 0.040511 0.133891 +0.102372 +0.029793 0.035624 0.030417 0.031629 0.016185 0.072853 0.010007 0.036690 0.029137 0.033544 0.018130 0.165068 0.016360 0.015508 0.028702 0.029844 0.017009 0.040042 0.028102 0.019176 0.019104 0.110401 0.038606 0.016321 0.005088 0.133891 0.042224 0.000054 0.020461 0.086911 0.040347 0.157380 +0.369253 +0.030574 0.038156 0.032631 0.028304 0.017348 0.142245 0.009897 0.036583 0.030783 0.031467 0.016550 0.047235 0.015425 0.016296 0.028329 0.033089 0.018501 0.158735 0.028051 0.020108 0.019018 0.133891 0.042237 0.017112 0.009190 0.110401 0.038834 0.001197 0.019672 0.086911 0.041348 0.157380 +0.430188 +0.028996 0.035507 0.032034 0.031064 0.017428 0.016962 0.010204 0.035454 0.035885 0.030201 0.014122 0.033446 0.015817 0.016184 0.029162 0.029199 0.017911 0.038092 0.029096 0.020581 0.019290 0.133891 0.040643 0.016166 0.011388 0.063422 0.041983 0.000137 0.019289 0.063422 0.038809 0.157380 +0.011086 +0.030113 0.033103 0.029879 0.030279 0.017475 0.208018 0.010543 0.035997 0.030051 0.034524 0.018656 0.062929 0.016357 0.015834 0.030201 0.028586 0.014896 0.140193 0.029656 0.018967 0.023406 0.063422 0.037794 0.015794 0.007576 0.063422 0.041747 0.002056 0.020376 0.110401 0.041919 0.180870 +0.393608 +0.032171 0.038371 0.030758 0.033157 0.018464 0.041935 0.011366 0.036178 0.028561 0.029272 0.014191 0.020744 0.015858 0.015842 0.029077 0.029098 0.018530 0.114409 0.027351 0.020139 0.019173 0.180870 0.039020 0.017983 0.006452 0.063422 0.040107 0.000067 0.018793 0.110401 0.039111 0.204360 +0.090732 +0.031996 0.033793 0.029113 0.028839 0.017522 0.064945 0.011038 0.035562 0.028542 0.028854 0.016561 0.053464 0.016023 0.016223 0.036628 0.030340 0.015085 0.218647 0.026538 0.019005 0.020582 0.133891 0.037754 0.012626 0.005733 0.110401 0.038350 0.001133 0.019090 0.133891 0.039256 0.180870 +0.339780 +0.032437 0.036894 0.032802 0.029401 0.015908 0.125629 0.010133 0.035474 0.028822 0.028481 0.015680 0.258067 0.015785 0.015821 0.028494 0.029981 0.018486 0.064772 0.029366 0.018843 0.022307 0.086911 0.041325 0.015910 0.008070 0.133891 0.038281 0.001862 0.020779 0.063422 0.039697 0.157380 +0.571991 +0.032321 0.034282 0.031559 0.031872 0.018106 0.058630 0.009680 0.036506 0.028342 0.036561 0.014351 0.042925 0.016350 0.016058 0.030821 0.028733 0.015682 0.361570 0.027208 0.019857 0.022435 0.110401 0.038648 0.017097 0.006063 0.157380 0.038909 0.001957 0.020202 0.063422 0.038478 0.180870 +0.651452 +0.032210 0.037204 0.030013 0.028874 0.015323 0.095443 0.010803 0.037318 0.028414 0.030294 0.017081 0.192516 0.015230 0.016088 0.032566 0.028802 0.017628 0.022592 0.026272 0.020623 0.019502 0.110401 0.038559 0.013814 0.005029 0.110401 0.038644 0.001770 0.020363 0.063422 0.038536 0.133891 +0.390820 +0.028393 0.038311 0.029806 0.029794 0.015322 0.095925 0.010889 0.036063 0.032026 0.029555 0.017394 0.040668 0.015401 0.015895 0.030266 0.030086 0.014984 0.019377 0.027349 0.021133 0.023196 0.180870 0.040519 0.017403 0.007758 0.063422 0.039420 0.000952 0.019928 0.133891 0.038807 0.204360 +0.102506 +0.028586 0.036830 0.028962 0.028707 0.014514 0.027265 0.010542 0.037565 0.031574 0.031844 0.014280 0.107026 0.015907 0.016205 0.028315 0.032885 0.017706 0.142338 0.029157 0.020679 0.021640 0.110401 0.042205 0.012950 0.013004 0.133891 0.041516 0.002022 0.019128 0.063422 0.038962 0.157380 +0.267512 +0.032383 0.033267 0.032191 0.031482 0.015115 0.070242 0.009858 0.037191 0.030185 0.028706 0.018217 0.115762 0.015632 0.015804 0.029152 0.029053 0.014275 0.402504 0.027233 0.018812 0.018836 0.086911 0.039550 0.012092 0.008076 0.086911 0.038753 0.001784 0.020081 0.086911 0.039498 0.133891 +0.776754 +0.032535 0.033161 0.028648 0.028763 0.014590 0.054554 0.011024 0.036936 0.034686 0.032763 0.016844 0.067645 0.015694 0.016040 0.028486 0.035920 0.015149 0.019985 0.028265 0.020401 0.022762 0.133891 0.041155 0.017257 0.011558 0.133891 0.042145 0.001429 0.020581 0.110401 0.041300 0.157380 +0.076298 +0.028904 0.038519 0.029170 0.028728 0.016475 0.043800 0.011222 0.036028 0.028853 0.031548 0.018566 0.036391 0.016169 0.015984 0.033223 0.031265 0.017979 0.031728 0.029348 0.020823 0.021716 0.063422 0.041163 0.013010 0.008974 0.110401 0.039734 0.001012 0.019379 0.063422 0.039375 0.157380 +0 +0.032434 0.039398 0.028612 0.029283 0.016642 0.161411 0.011583 0.036963 0.028475 0.029663 0.016262 0.104020 0.015217 0.016419 0.028483 0.031587 0.017514 0.154896 0.028284 0.018801 0.022070 0.180870 0.040396 0.017711 0.010957 0.133891 0.041018 0.001121 0.021000 0.180870 0.038436 0.204360 +0.553289 +0.032854 0.033702 0.028211 0.028344 0.016966 0.213909 0.009589 0.035520 0.031773 0.032204 0.017633 0.181384 0.015745 0.016057 0.033294 0.036229 0.015843 0.241725 0.028473 0.019171 0.021605 0.110401 0.041122 0.015032 0.010673 0.110401 0.038844 0.000193 0.020659 0.063422 0.038179 0.133891 +0.830546 +0.032254 0.038449 0.028782 0.028456 0.018044 0.303947 0.009913 0.037117 0.029149 0.029343 0.017506 0.113401 0.016426 0.016378 0.029371 0.037559 0.017478 0.033199 0.029299 0.020696 0.022943 0.086911 0.039289 0.013687 0.010642 0.086911 0.040142 0.001078 0.019908 0.086911 0.038590 0.133891 +0.541389 +0.031036 0.037490 0.030698 0.028693 0.017991 0.017047 0.011344 0.036398 0.029279 0.028364 0.016153 0.020171 0.015749 0.016058 0.029037 0.029080 0.018330 0.021288 0.027154 0.020935 0.022295 0.110401 0.039609 0.017124 0.012205 0.133891 0.040775 0.001811 0.020373 0.063422 0.041679 0.180870 +0 +0.031753 0.035753 0.036582 0.029657 0.017670 0.147558 0.011148 0.036592 0.034062 0.033078 0.018731 0.095556 0.015786 0.015857 0.029852 0.028517 0.018592 0.130854 0.028118 0.020372 0.019694 0.110401 0.038148 0.013129 0.009392 0.086911 0.041062 0.000314 0.019494 0.110401 0.041597 0.133891 +0.484520 +0.029403 0.036859 0.040018 0.030914 0.017826 0.016841 0.009399 0.037479 0.028940 0.032325 0.015456 0.099630 0.016410 0.015709 0.028210 0.032629 0.018136 0.048737 0.028408 0.020895 0.023374 0.063422 0.039525 0.016553 0.006582 0.086911 0.037903 0.001271 0.020227 0.110401 0.041880 0.157380 +0.048794 +0.030912 0.034519 0.032088 0.029604 0.016122 0.088769 0.011654 0.037239 0.035139 0.028641 0.016620 0.096152 0.016335 0.015891 0.031232 0.029649 0.016042 0.105536 0.026782 0.019914 0.019636 0.110401 0.038740 0.013476 0.008199 0.063422 0.038011 0.000350 0.019999 0.110401 0.039962 0.133891 +0.390108 +0.030747 0.038359 0.029179 0.031789 0.016217 0.041541 0.009638 0.036688 0.029889 0.031721 0.017573 0.038449 0.015394 0.015876 0.028435 0.028842 0.015137 0.087166 0.030203 0.019361 0.023286 0.063422 0.037637 0.017859 0.010580 0.063422 0.038553 0.000343 0.019801 0.086911 0.038937 0.133891 +0.056839 +0.030223 0.037415 0.030486 0.029707 0.015511 0.044605 0.009578 0.037369 0.029795 0.028725 0.015548 0.056145 0.015381 0.016407 0.034259 0.036529 0.014267 0.267896 0.026756 0.020467 0.020138 0.133891 0.038771 0.012887 0.011075 0.157380 0.037812 0.000729 0.019420 0.110401 0.037796 0.180870 +0.490895 +0.029785 0.035237 0.032526 0.031720 0.015671 0.120783 0.009746 0.035528 0.030928 0.030186 0.018202 0.032306 0.015823 0.015972 0.028548 0.029726 0.014831 0.062087 0.028242 0.021083 0.020762 0.063422 0.039069 0.017481 0.006737 0.110401 0.040365 0.002072 0.019757 0.086911 0.038159 0.133891 +0.175200 +0.029690 0.036409 0.029176 0.028751 0.017595 0.082508 0.011330 0.036166 0.030077 0.028463 0.018655 0.331181 0.015871 0.015603 0.028490 0.031397 0.015938 0.185879 0.026276 0.019549 0.021985 0.110401 0.037930 0.016570 0.008115 0.086911 0.042128 0.000837 0.019955 0.063422 0.040162 0.180870 +0.778004 +0.031405 0.034971 0.045568 0.028617 0.014614 0.079241 0.011742 0.037131 0.028980 0.029923 0.017248 0.078971 0.015201 0.015659 0.030390 0.028486 0.014354 0.035613 0.027822 0.018967 0.021447 0.110401 0.037669 0.015712 0.007031 0.063422 0.039698 0.000324 0.020735 0.133891 0.039639 0.180870 +0.117751 +0.032361 0.038220 0.030535 0.028543 0.015146 0.067910 0.010524 0.035990 0.028356 0.033875 0.017870 0.036493 0.015499 0.015890 0.029145 0.028656 0.016285 0.038293 0.028512 0.019512 0.023329 0.133891 0.037952 0.012087 0.005229 0.086911 0.041819 0.002174 0.020369 0.133891 0.039160 0.157380 +0.156959 +0.030958 0.038376 0.031062 0.028714 0.014541 0.036930 0.009609 0.037069 0.028724 0.029666 0.016523 0.263323 0.015468 0.016310 0.030261 0.029199 0.018291 0.048003 0.029021 0.019431 0.023236 0.063422 0.038284 0.015174 0.005282 0.063422 0.039184 0.001584 0.019229 0.110401 0.040841 0.133891 +0.426045 +0.032305 0.038708 0.031004 0.029533 0.015217 0.277847 0.010848 0.035822 0.031123 0.033964 0.015211 0.206454 0.015869 0.015775 0.028355 0.029118 0.017983 0.111317 0.028789 0.019489 0.022790 0.063422 0.040217 0.011951 0.010954 0.086911 0.039551 0.001066 0.019858 0.110401 0.040634 0.204360 +0.609106 +0.031707 0.038228 0.028435 0.029834 0.017071 0.064097 0.010920 0.035975 0.031517 0.029502 0.016329 0.073294 0.016124 0.015811 0.030528 0.032835 0.014951 0.067915 0.028016 0.020857 0.022540 0.063422 0.037891 0.014332 0.009585 0.063422 0.041959 0.000812 0.020986 0.110401 0.037778 0.133891 +0.309679 +0.031655 0.039074 0.028325 0.028847 0.017380 0.088431 0.009455 0.036136 0.031682 0.031382 0.015907 0.125569 0.015386 0.016405 0.029045 0.029256 0.017380 0.178743 0.028733 0.020835 0.021506 0.157380 0.042251 0.012236 0.013899 0.063422 0.040429 0.002090 0.020092 0.086911 0.041210 0.204360 +0.431987 +0.031831 0.037105 0.028415 0.038943 0.016130 0.098464 0.011497 0.037337 0.028503 0.029861 0.018791 0.021134 0.016124 0.015808 0.032432 0.043061 0.018186 0.051073 0.028564 0.020267 0.022111 0.063422 0.039436 0.017971 0.009092 0.180870 0.040932 0.002068 0.019463 0.110401 0.041612 0.204360 +0.051152 +0.029558 0.034280 0.029425 0.030249 0.018168 0.239192 0.011047 0.036354 0.035535 0.028824 0.016137 0.068342 0.016000 0.016062 0.029664 0.028287 0.016238 0.019136 0.027907 0.019879 0.018963 0.063422 0.038516 0.014088 0.012856 0.133891 0.040851 0.002221 0.020442 0.063422 0.041599 0.157380 +0.344988 +0.031639 0.038268 0.029554 0.029029 0.015593 0.026333 0.011109 0.035511 0.035366 0.029608 0.016928 0.084688 0.016440 0.016131 0.031117 0.031819 0.018314 0.029792 0.027502 0.019094 0.020170 0.110401 0.040306 0.014020 0.005071 0.157380 0.041421 0.001145 0.019292 0.110401 0.037893 0.180870 +0.019014 +0.032391 0.034644 0.028206 0.029857 0.017862 0.055506 0.010677 0.037333 0.028303 0.029462 0.016100 0.033160 0.016181 0.016106 0.030839 0.030012 0.014164 0.045870 0.029175 0.019962 0.020602 0.063422 0.041235 0.014972 0.005341 0.063422 0.040738 0.001098 0.019848 0.063422 0.041590 0.133891 +0.020935 +0.030386 0.037189 0.031795 0.028885 0.014976 0.066576 0.011403 0.035320 0.029940 0.028527 0.014587 0.195348 0.015161 0.016255 0.032070 0.028644 0.018770 0.045570 0.027618 0.020940 0.019704 0.086911 0.041359 0.015583 0.005990 0.110401 0.038455 0.000217 0.019583 0.133891 0.039943 0.157380 +0.335829 +0.032209 0.033745 0.029095 0.029092 0.016916 0.028469 0.010465 0.036723 0.031740 0.030012 0.017850 0.029824 0.015076 0.015834 0.028397 0.028691 0.016783 0.182230 0.026486 0.020117 0.020892 0.133891 0.038180 0.013936 0.007182 0.110401 0.039156 0.000632 0.019919 0.133891 0.037920 0.180870 +0.194973 +0.028811 0.034232 0.030488 0.029264 0.016896 0.072838 0.010753 0.037276 0.033827 0.031790 0.017455 0.040835 0.015437 0.016062 0.028352 0.028462 0.017324 0.020073 0.027313 0.019614 0.019904 0.157380 0.040819 0.017252 0.012422 0.180870 0.039455 0.000125 0.021084 0.157380 0.040452 0.204360 +0.023464 +0.030929 0.038379 0.031010 0.034920 0.016071 0.076455 0.009937 0.037177 0.028314 0.030224 0.017327 0.047523 0.015496 0.015950 0.031718 0.030306 0.017510 0.075252 0.028807 0.019337 0.019812 0.110401 0.039216 0.015492 0.010309 0.157380 0.037648 0.000882 0.020741 0.157380 0.042041 0.204360 +0.165961 +0.028706 0.033941 0.031085 0.030193 0.015139 0.043516 0.010849 0.036903 0.028729 0.029873 0.015102 0.224077 0.015800 0.016155 0.041901 0.029257 0.017429 0.446747 0.028313 0.020570 0.019938 0.110401 0.038568 0.015273 0.013524 0.086911 0.040506 0.002050 0.020008 0.133891 0.041741 0.157380 +0.850369 +0.030490 0.035843 0.032945 0.028721 0.016719 0.093187 0.009611 0.036796 0.031564 0.030356 0.018608 0.092842 0.015597 0.015986 0.028581 0.032517 0.017703 0.033958 0.026540 0.021013 0.023032 0.063422 0.041064 0.016524 0.011615 0.086911 0.038568 0.001705 0.019305 0.063422 0.041471 0.133891 +0.143538 +0.031096 0.033831 0.035594 0.028285 0.018740 0.091416 0.010590 0.036672 0.029017 0.028876 0.014150 0.051182 0.016299 0.016350 0.028994 0.030148 0.014439 0.061351 0.027489 0.020600 0.021942 0.110401 0.042167 0.012046 0.011210 0.063422 0.040766 0.002145 0.020350 0.063422 0.038901 0.133891 +0.133452 +0.029043 0.036561 0.034197 0.028363 0.017831 0.018456 0.009609 0.036139 0.028499 0.034706 0.017318 0.068379 0.016032 0.015544 0.028945 0.033954 0.015874 0.081446 0.027582 0.020188 0.019430 0.180870 0.039134 0.013523 0.012848 0.063422 0.039792 0.001189 0.021043 0.110401 0.040475 0.204360 +0.052977 +0.030136 0.039534 0.028897 0.034288 0.018713 0.086922 0.010986 0.035689 0.033498 0.029460 0.018054 0.135887 0.015940 0.015727 0.029367 0.030938 0.015392 0.136754 0.025790 0.019389 0.019865 0.063422 0.038709 0.015266 0.010031 0.133891 0.042064 0.000615 0.019021 0.063422 0.039429 0.157380 +0.404755 +0.029894 0.039244 0.035368 0.032828 0.016494 0.069707 0.010292 0.037152 0.030486 0.028488 0.018719 0.117075 0.015476 0.016086 0.043732 0.031167 0.017460 0.098272 0.029184 0.019613 0.020424 0.133891 0.039161 0.014106 0.006709 0.110401 0.041921 0.000616 0.018946 0.110401 0.038181 0.157380 +0.286214 +0.030970 0.039222 0.030834 0.030618 0.015123 0.043180 0.010330 0.037564 0.028458 0.029815 0.017706 0.031280 0.015468 0.015912 0.028360 0.028863 0.014957 0.026507 0.028886 0.020035 0.022311 0.086911 0.041773 0.014703 0.013401 0.063422 0.038589 0.000038 0.020011 0.086911 0.038583 0.204360 +0 +0.031899 0.038185 0.030999 0.031321 0.017262 0.146480 0.011153 0.036556 0.034209 0.032774 0.015894 0.022858 0.015335 0.015864 0.031383 0.028556 0.017779 0.171997 0.029393 0.020883 0.020068 0.110401 0.038589 0.013941 0.007199 0.063422 0.038228 0.000581 0.020240 0.086911 0.038651 0.133891 +0.450670 +0.031233 0.034294 0.033195 0.028615 0.014777 0.110343 0.011658 0.036825 0.028604 0.029640 0.017946 0.044986 0.015544 0.015669 0.028856 0.032046 0.017409 0.072935 0.026947 0.019932 0.020698 0.157380 0.038580 0.015221 0.009304 0.086911 0.038023 0.001435 0.019996 0.086911 0.039945 0.204360 +0.148835 +0.031978 0.038677 0.028302 0.033544 0.014951 0.109359 0.010035 0.036338 0.034350 0.033790 0.015101 0.183561 0.016244 0.016272 0.038752 0.031134 0.014990 0.068028 0.028625 0.020012 0.019296 0.086911 0.038448 0.015209 0.006873 0.063422 0.037962 0.001768 0.019826 0.180870 0.041562 0.204360 +0.366825 +0.030428 0.035745 0.028665 0.033557 0.018149 0.017541 0.011105 0.036922 0.029055 0.030309 0.016067 0.020827 0.015567 0.015826 0.031647 0.029735 0.018662 0.023159 0.028521 0.018934 0.018827 0.133891 0.037895 0.011972 0.007741 0.110401 0.037612 0.002315 0.019330 0.063422 0.039800 0.157380 +0 +0.032630 0.034187 0.028418 0.031238 0.016161 0.041066 0.009722 0.037383 0.028776 0.029179 0.016528 0.146495 0.016129 0.015562 0.029281 0.030525 0.017274 0.195742 0.027581 0.020443 0.019891 0.110401 0.040545 0.015456 0.013103 0.086911 0.041557 0.002163 0.020579 0.086911 0.041640 0.133891 +0.472511 +0.031443 0.035413 0.028771 0.028974 0.018681 0.118262 0.011495 0.036080 0.029301 0.031399 0.016961 0.094345 0.015087 0.015668 0.028506 0.028246 0.016029 0.136581 0.027627 0.019632 0.022168 0.086911 0.040987 0.016273 0.005686 0.063422 0.040819 0.000069 0.020169 0.180870 0.040239 0.204360 +0.420190 +0.030341 0.035021 0.031024 0.030902 0.016554 0.046827 0.011127 0.035649 0.034768 0.028445 0.014633 0.101754 0.016189 0.015715 0.029952 0.030877 0.014589 0.083558 0.027935 0.020343 0.022173 0.063422 0.040373 0.014017 0.009040 0.133891 0.039361 0.000828 0.019360 0.086911 0.041368 0.180870 +0.132145 +0.028728 0.033010 0.031323 0.031245 0.016406 0.196437 0.010065 0.035396 0.035161 0.028858 0.016785 0.044824 0.015536 0.016082 0.030847 0.029717 0.017427 0.029881 0.028964 0.020415 0.019166 0.110401 0.038391 0.016133 0.006739 0.110401 0.038026 0.000760 0.020559 0.133891 0.038470 0.157380 +0.285274 +0.032319 0.036991 0.029443 0.029003 0.014287 0.047892 0.011718 0.035747 0.028345 0.033519 0.015767 0.023710 0.015980 0.015672 0.031420 0.030541 0.015882 0.034774 0.028348 0.019869 0.019169 0.063422 0.040207 0.013334 0.011468 0.063422 0.040079 0.001320 0.020044 0.086911 0.041970 0.157380 +0 +0.032596 0.033732 0.030735 0.035021 0.018542 0.019218 0.011152 0.037375 0.028505 0.028521 0.017705 0.044626 0.016276 0.015844 0.029727 0.029068 0.016008 0.035105 0.027964 0.019696 0.019548 0.110401 0.040750 0.018134 0.006314 0.086911 0.038099 0.001183 0.019654 0.110401 0.037924 0.180870 +0.001534 +0.029300 0.033083 0.030192 0.029423 0.017829 0.295246 0.010113 0.035837 0.029199 0.030536 0.015570 0.057843 0.016430 0.015718 0.035541 0.032603 0.017492 0.069506 0.026002 0.020836 0.020192 0.133891 0.039222 0.016217 0.008155 0.086911 0.041152 0.000238 0.020126 0.133891 0.037716 0.204360 +0.522350 +0.032280 0.033725 0.028466 0.031330 0.015895 0.070271 0.011152 0.035326 0.029044 0.029822 0.015555 0.140864 0.015306 0.016147 0.030102 0.032322 0.018614 0.148517 0.027176 0.020829 0.021744 0.086911 0.038274 0.018319 0.009912 0.110401 0.038394 0.000700 0.019816 0.157380 0.039470 0.180870 +0.416241 +0.029413 0.037143 0.028826 0.030373 0.017061 0.109613 0.010570 0.037538 0.029656 0.032529 0.014588 0.058822 0.016422 0.016314 0.031156 0.028654 0.016214 0.052556 0.028328 0.019676 0.023255 0.157380 0.038880 0.015661 0.009842 0.086911 0.037664 0.000836 0.020808 0.063422 0.041959 0.180870 +0.126111 +0.029341 0.034088 0.042275 0.028680 0.018462 0.101397 0.010598 0.036725 0.032448 0.028483 0.017976 0.104023 0.016108 0.015998 0.029792 0.028206 0.014892 0.085402 0.028407 0.019909 0.022773 0.110401 0.038026 0.016828 0.006203 0.063422 0.041055 0.000724 0.020925 0.110401 0.041584 0.180870 +0.292030 +0.029566 0.034569 0.028473 0.029409 0.014108 0.112435 0.010039 0.037030 0.028382 0.033230 0.016729 0.017108 0.015207 0.015869 0.029493 0.033135 0.016136 0.235822 0.025987 0.020828 0.019090 0.063422 0.040310 0.014617 0.007171 0.086911 0.039379 0.001409 0.020966 0.133891 0.039390 0.157380 +0.438313 +0.031851 0.037747 0.034204 0.032303 0.017565 0.026345 0.010496 0.037040 0.028296 0.029769 0.017506 0.104711 0.016215 0.015552 0.031703 0.028605 0.017642 0.078814 0.028826 0.020327 0.019867 0.157380 0.040814 0.012937 0.013262 0.063422 0.040108 0.001367 0.019595 0.086911 0.040810 0.180870 +0.122663 +0.029576 0.037474 0.034618 0.030568 0.014982 0.018446 0.010570 0.037505 0.028976 0.028389 0.017968 0.046603 0.016407 0.016234 0.034227 0.031759 0.015240 0.059921 0.029753 0.019044 0.023367 0.133891 0.038569 0.011774 0.008277 0.086911 0.038174 0.001774 0.019923 0.086911 0.038179 0.157380 +0.042986 +0.032345 0.036192 0.028988 0.028839 0.017067 0.035464 0.011511 0.036577 0.033090 0.028264 0.016280 0.032926 0.015820 0.015923 0.030115 0.030170 0.018112 0.039767 0.030264 0.020340 0.021450 0.063422 0.042173 0.013734 0.006214 0.133891 0.041778 0.002180 0.019371 0.110401 0.038238 0.157380 +0.006236 +0.030846 0.034882 0.030245 0.028980 0.017919 0.028223 0.011429 0.035990 0.033832 0.029334 0.015806 0.065147 0.016107 0.015763 0.028861 0.028916 0.014110 0.038984 0.028477 0.020856 0.022227 0.110401 0.037835 0.013334 0.005463 0.063422 0.039201 0.000408 0.020698 0.110401 0.037887 0.180870 +0.006527 +0.032435 0.037889 0.030431 0.028406 0.015128 0.022667 0.010664 0.036102 0.028667 0.029279 0.015353 0.162435 0.015568 0.016299 0.029340 0.029181 0.018629 0.128116 0.027579 0.019913 0.020583 0.086911 0.038245 0.012025 0.012470 0.157380 0.040639 0.000007 0.018803 0.133891 0.038439 0.180870 +0.359153 +0.031696 0.039002 0.030858 0.030125 0.015334 0.048862 0.011702 0.036452 0.028239 0.028470 0.015012 0.076469 0.015482 0.015624 0.029121 0.028495 0.015045 0.032002 0.027158 0.020351 0.020424 0.133891 0.038741 0.013705 0.013984 0.110401 0.039044 0.000504 0.020239 0.110401 0.042136 0.180870 +0.042479 +0.029239 0.035352 0.031869 0.029693 0.016000 0.025360 0.011037 0.036188 0.030044 0.028232 0.017025 0.126718 0.015805 0.015596 0.031870 0.035607 0.015601 0.030924 0.027346 0.019952 0.023024 0.133891 0.040487 0.017588 0.006095 0.110401 0.038781 0.001569 0.018946 0.133891 0.041547 0.157380 +0.195124 +0.031134 0.034362 0.028556 0.033923 0.017219 0.190072 0.010813 0.036746 0.029613 0.028994 0.014457 0.038483 0.015921 0.015753 0.030186 0.028735 0.016611 0.042158 0.027869 0.020443 0.023034 0.110401 0.039964 0.013602 0.005621 0.063422 0.038718 0.001770 0.019994 0.063422 0.041999 0.133891 +0.433938 +0.029448 0.035242 0.028919 0.029397 0.014367 0.249478 0.009680 0.036965 0.029140 0.029776 0.015613 0.086854 0.015351 0.016296 0.031321 0.028955 0.018649 0.083371 0.029879 0.019193 0.022212 0.133891 0.040364 0.015190 0.010117 0.086911 0.041674 0.000480 0.020793 0.086911 0.040196 0.157380 +0.486597 +0.032612 0.035565 0.031532 0.029146 0.018181 0.028006 0.010922 0.035549 0.033520 0.029991 0.018226 0.022795 0.016374 0.015716 0.032087 0.029165 0.015716 0.025910 0.026069 0.019378 0.021002 0.110401 0.039798 0.017490 0.006566 0.063422 0.042213 0.001601 0.021120 0.086911 0.041091 0.157380 +0 +0.031232 0.035460 0.031769 0.028740 0.014663 0.045918 0.011108 0.037142 0.028703 0.034091 0.017927 0.033343 0.016442 0.015691 0.028815 0.028548 0.018364 0.164723 0.025829 0.019191 0.020934 0.110401 0.039496 0.015193 0.007750 0.086911 0.041047 0.002147 0.020809 0.086911 0.040984 0.133891 +0.267111 +0.030767 0.039849 0.029331 0.029002 0.015021 0.066721 0.009766 0.035662 0.029323 0.029546 0.014660 0.041902 0.015609 0.016141 0.030602 0.030476 0.016604 0.020920 0.028712 0.020047 0.019205 0.063422 0.038120 0.017186 0.013828 0.110401 0.040622 0.001720 0.020476 0.157380 0.039559 0.204360 +0 +0.030871 0.038255 0.029434 0.032263 0.017551 0.086325 0.009766 0.036509 0.031442 0.030044 0.015560 0.772993 0.015657 0.016430 0.028204 0.029118 0.017958 0.054149 0.028328 0.020602 0.019667 0.133891 0.041478 0.014215 0.007258 0.110401 0.041242 0.000795 0.020786 0.086911 0.041708 0.157380 +0.952918 +0.031534 0.039139 0.031251 0.029322 0.017942 0.068832 0.010516 0.037232 0.030726 0.029214 0.017515 0.069014 0.016234 0.015931 0.030622 0.030113 0.015778 0.036186 0.028205 0.019007 0.019930 0.133891 0.037847 0.016913 0.006552 0.086911 0.039707 0.000418 0.019603 0.063422 0.037705 0.180870 +0.133747 +0.032837 0.035444 0.030315 0.031622 0.017887 0.096271 0.009523 0.036338 0.030046 0.028419 0.015464 0.095934 0.015271 0.016354 0.029451 0.030172 0.016162 0.048569 0.030481 0.018956 0.020707 0.157380 0.041604 0.018453 0.007320 0.157380 0.040407 0.001675 0.019115 0.180870 0.040584 0.204360 +0.170569 +0.029600 0.036497 0.028577 0.028678 0.014462 0.034029 0.010202 0.036604 0.028416 0.029444 0.015625 0.149207 0.015918 0.016166 0.029612 0.028657 0.015144 0.083380 0.029604 0.020959 0.021474 0.063422 0.040548 0.014495 0.012170 0.086911 0.038365 0.000406 0.019322 0.086911 0.039742 0.157380 +0.207192 +0.031992 0.035680 0.028737 0.029967 0.014832 0.342210 0.010499 0.035687 0.034029 0.029627 0.015647 0.045515 0.016323 0.016325 0.028890 0.029503 0.014863 0.156041 0.029507 0.018976 0.021964 0.086911 0.042124 0.018544 0.010935 0.110401 0.041871 0.000973 0.020880 0.086911 0.039212 0.157380 +0.703413 +0.028473 0.036576 0.032370 0.030702 0.017092 0.176970 0.009443 0.036998 0.031646 0.028954 0.015439 0.064919 0.015457 0.016007 0.029529 0.028526 0.016820 0.184613 0.030658 0.020005 0.020213 0.110401 0.037904 0.012353 0.012123 0.133891 0.039163 0.000997 0.019005 0.110401 0.037741 0.180870 +0.605047 +0.030021 0.038170 0.028840 0.028539 0.014198 0.125524 0.011059 0.037146 0.029483 0.031846 0.014993 0.044067 0.016181 0.016249 0.028507 0.030252 0.014418 0.069350 0.028273 0.020934 0.022687 0.086911 0.040598 0.014697 0.012145 0.133891 0.041941 0.002166 0.019442 0.133891 0.040858 0.180870 +0.314377 +0.032625 0.035759 0.032142 0.028302 0.014362 0.265858 0.011680 0.035434 0.031690 0.028541 0.015927 0.063876 0.015528 0.015869 0.029188 0.031815 0.018385 0.146571 0.025381 0.019386 0.020034 0.086911 0.039346 0.013735 0.005742 0.086911 0.038157 0.002211 0.020001 0.133891 0.038458 0.204360 +0.458040 +0.030386 0.036179 0.030757 0.029679 0.017019 0.033444 0.010988 0.036390 0.028651 0.028609 0.014439 0.038509 0.016245 0.015944 0.028322 0.030081 0.016880 0.043444 0.030244 0.020649 0.020302 0.133891 0.038394 0.017179 0.011285 0.110401 0.039682 0.001709 0.018796 0.133891 0.039882 0.157380 +0.044435 +0.031034 0.036855 0.034192 0.029415 0.017299 0.082894 0.011275 0.036575 0.028549 0.028245 0.015194 0.058562 0.015569 0.015620 0.032047 0.030191 0.018546 0.176464 0.027684 0.019971 0.020563 0.063422 0.038484 0.012892 0.010392 0.086911 0.041639 0.000296 0.019040 0.110401 0.041211 0.157380 +0.367662 +0.029783 0.036432 0.028278 0.028763 0.016452 0.052823 0.010988 0.036395 0.028509 0.030636 0.018757 0.068576 0.015179 0.015666 0.031327 0.030579 0.015251 0.150005 0.026521 0.020236 0.020518 0.086911 0.041489 0.012570 0.013136 0.086911 0.040588 0.001177 0.020651 0.063422 0.040328 0.133891 +0.257532 +0.032727 0.038573 0.031144 0.031428 0.016427 0.033010 0.010749 0.035304 0.032218 0.029745 0.017505 0.317236 0.015693 0.015595 0.031341 0.028482 0.016659 0.018068 0.027160 0.019132 0.021715 0.063422 0.038397 0.015039 0.010369 0.110401 0.040219 0.000319 0.020653 0.110401 0.040035 0.133891 +0.486856 +0.032436 0.039815 0.029065 0.038814 0.016591 0.107370 0.010846 0.035840 0.032397 0.029922 0.016677 0.079596 0.015046 0.016272 0.028399 0.029150 0.017121 0.253526 0.030375 0.019938 0.020694 0.157380 0.041674 0.015156 0.005485 0.133891 0.040967 0.000527 0.020038 0.180870 0.039012 0.204360 +0.498554 +0.028634 0.033344 0.028728 0.031619 0.015731 0.110642 0.011370 0.035830 0.029742 0.030395 0.016171 0.313455 0.015199 0.015628 0.031591 0.028787 0.016894 0.083693 0.027564 0.019019 0.021959 0.086911 0.039769 0.017098 0.010970 0.063422 0.039967 0.001776 0.019893 0.086911 0.037706 0.180870 +0.663440 +0.031244 0.034031 0.031517 0.029337 0.014646 0.126139 0.011565 0.036890 0.029810 0.030512 0.018619 0.022632 0.015278 0.015557 0.029793 0.031143 0.015641 0.102205 0.026914 0.019279 0.022519 0.063422 0.038281 0.015460 0.012323 0.063422 0.042031 0.000343 0.019745 0.133891 0.042109 0.204360 +0.303492 +0.032873 0.034726 0.031407 0.030484 0.018527 0.062157 0.009488 0.035534 0.031257 0.029000 0.014633 0.055386 0.015949 0.015892 0.030523 0.029340 0.015982 0.087772 0.029932 0.020862 0.018846 0.063422 0.041552 0.014562 0.010567 0.086911 0.040938 0.000853 0.020481 0.063422 0.040618 0.133891 +0.171181 +0.032111 0.035737 0.033451 0.029226 0.016592 0.162663 0.010926 0.035462 0.039855 0.028949 0.016505 0.021436 0.015314 0.015512 0.031154 0.029115 0.015529 0.139610 0.025541 0.019364 0.019906 0.133891 0.040017 0.012870 0.006305 0.086911 0.042242 0.000903 0.020509 0.086911 0.040216 0.157380 +0.340924 +0.030086 0.037984 0.028955 0.029697 0.018142 0.086189 0.010464 0.035931 0.032479 0.028448 0.017629 0.113519 0.016066 0.015721 0.030412 0.034580 0.014250 0.082741 0.028668 0.018996 0.022648 0.133891 0.041229 0.016701 0.008478 0.063422 0.039280 0.001538 0.019544 0.133891 0.042188 0.180870 +0.223003 +0.030621 0.034279 0.035312 0.028488 0.014862 0.102845 0.010958 0.037420 0.029955 0.030821 0.018050 0.068658 0.015956 0.016329 0.028892 0.030781 0.015369 0.051827 0.028257 0.020818 0.020798 0.063422 0.039302 0.012875 0.005783 0.133891 0.040396 0.000571 0.020310 0.110401 0.038494 0.157380 +0.238377 +0.029875 0.036323 0.028608 0.028414 0.017869 0.087627 0.010645 0.035814 0.028477 0.034424 0.017256 0.020483 0.016268 0.015743 0.028572 0.029545 0.018223 0.066817 0.028765 0.019617 0.023066 0.133891 0.037702 0.015969 0.013888 0.133891 0.041292 0.000782 0.020321 0.063422 0.038709 0.157380 +0.220132 +0.029189 0.032959 0.029468 0.044469 0.016924 0.022573 0.010726 0.037569 0.029728 0.029070 0.014115 0.075750 0.016360 0.015535 0.031653 0.028212 0.017245 0.083356 0.029111 0.018893 0.019942 0.086911 0.038248 0.013341 0.009551 0.110401 0.041149 0.001917 0.019363 0.063422 0.038735 0.204360 +0.084099 +0.030597 0.039722 0.028729 0.031239 0.017674 0.203236 0.010813 0.037374 0.028775 0.029982 0.016641 0.024990 0.015362 0.015767 0.037666 0.031663 0.015668 0.021664 0.026863 0.020231 0.021732 0.157380 0.040058 0.018081 0.004924 0.110401 0.038448 0.002255 0.020429 0.110401 0.041601 0.180870 +0.284588 +0.030046 0.039662 0.029447 0.028490 0.017953 0.065776 0.010281 0.035964 0.031687 0.028873 0.016510 0.092428 0.015366 0.015714 0.028534 0.029653 0.018335 0.019879 0.029653 0.018947 0.021295 0.086911 0.039823 0.015171 0.012135 0.110401 0.039811 0.000533 0.020451 0.063422 0.037822 0.157380 +0.035184 +0.028291 0.036382 0.029228 0.028458 0.017316 0.127120 0.010796 0.037547 0.035231 0.028820 0.014325 0.028777 0.016041 0.015736 0.028749 0.028344 0.016018 0.065062 0.027046 0.021118 0.021323 0.063422 0.039076 0.015952 0.012135 0.110401 0.040017 0.002050 0.019524 0.086911 0.038271 0.133891 +0.218446 +0.030962 0.032987 0.028714 0.028890 0.015082 0.101852 0.010992 0.036029 0.029577 0.033122 0.016669 0.182273 0.015542 0.016313 0.035770 0.031065 0.014109 0.061892 0.028779 0.019881 0.020082 0.086911 0.040406 0.016269 0.008413 0.133891 0.041165 0.001304 0.020904 0.063422 0.040775 0.157380 +0.408056 +0.028271 0.039792 0.028446 0.030494 0.017940 0.053436 0.011192 0.036801 0.029669 0.032925 0.015448 0.022521 0.015349 0.015695 0.040285 0.028683 0.017280 0.144200 0.028282 0.019899 0.020187 0.063422 0.039420 0.012485 0.008189 0.110401 0.041082 0.001466 0.019373 0.086911 0.040497 0.157380 +0.238933 +0.030034 0.037185 0.030382 0.030164 0.014631 0.092174 0.010653 0.035307 0.030949 0.028214 0.015017 0.051808 0.016147 0.016151 0.028497 0.029679 0.014723 0.097069 0.028281 0.020572 0.022887 0.133891 0.038008 0.017871 0.008512 0.110401 0.041145 0.001275 0.018941 0.180870 0.039699 0.204360 +0.266810 +0.031599 0.037899 0.028783 0.030560 0.016036 0.193060 0.010577 0.037140 0.029703 0.032841 0.014920 0.048920 0.016021 0.015647 0.029037 0.031129 0.017485 0.091670 0.029076 0.020579 0.020016 0.086911 0.038394 0.012803 0.005641 0.063422 0.040980 0.001752 0.020287 0.086911 0.039735 0.157380 +0.369157 +0.032474 0.038785 0.028329 0.028336 0.018649 0.211602 0.011269 0.036841 0.028640 0.028912 0.014133 0.176041 0.015813 0.016279 0.032537 0.030077 0.015766 0.287297 0.028094 0.020083 0.021975 0.063422 0.041926 0.014002 0.012667 0.110401 0.039802 0.000759 0.020534 0.110401 0.040972 0.133891 +0.819818 +0.031376 0.039879 0.030230 0.030403 0.017740 0.121087 0.009879 0.036121 0.032290 0.028682 0.017176 0.068491 0.015300 0.016058 0.035817 0.029847 0.018691 0.107410 0.026815 0.018952 0.021363 0.063422 0.038128 0.016244 0.005258 0.086911 0.041609 0.001964 0.019815 0.063422 0.040162 0.133891 +0.388482 +0.030612 0.033556 0.030914 0.029192 0.016891 0.019071 0.009620 0.037219 0.028529 0.031899 0.018343 0.020993 0.015142 0.016220 0.029231 0.030061 0.018133 0.116439 0.027763 0.020519 0.020735 0.063422 0.040607 0.016305 0.009588 0.133891 0.040119 0.001842 0.020972 0.086911 0.039319 0.157380 +0.067290 +0.032720 0.037405 0.028245 0.028630 0.014914 0.041081 0.011530 0.036086 0.034764 0.032578 0.015958 0.222136 0.015382 0.016202 0.032288 0.030713 0.016976 0.114354 0.025819 0.020818 0.019073 0.110401 0.041013 0.016475 0.006669 0.110401 0.042010 0.000711 0.020330 0.180870 0.039894 0.204360 +0.461995 +0.031590 0.038009 0.029032 0.028881 0.017032 0.033553 0.009472 0.036685 0.030023 0.031739 0.017202 0.064005 0.016289 0.015963 0.029041 0.028407 0.015544 0.016830 0.030136 0.020372 0.019732 0.063422 0.041531 0.012339 0.005971 0.063422 0.037880 0.000007 0.019769 0.110401 0.038386 0.133891 +0.032699 +0.029851 0.033723 0.030560 0.028660 0.014731 0.022547 0.009649 0.036444 0.030596 0.028664 0.015609 0.174623 0.015108 0.015875 0.029612 0.030815 0.016959 0.035744 0.029500 0.020016 0.021211 0.133891 0.040954 0.015267 0.012067 0.110401 0.038620 0.001259 0.019346 0.086911 0.038260 0.157380 +0.156287 +0.029576 0.037546 0.041893 0.030722 0.017263 0.050078 0.010361 0.035344 0.041302 0.029121 0.014490 0.089809 0.016388 0.016285 0.032465 0.032257 0.016747 0.091413 0.027470 0.020162 0.023060 0.063422 0.038771 0.017878 0.013323 0.110401 0.040999 0.002273 0.020633 0.133891 0.041340 0.157380 +0.223335 +0.032472 0.034595 0.030869 0.036301 0.017782 0.240279 0.011084 0.036551 0.029546 0.030557 0.016481 0.034125 0.016122 0.016032 0.029638 0.028752 0.014923 0.157353 0.026542 0.019505 0.022983 0.133891 0.042020 0.014753 0.012627 0.133891 0.039788 0.002130 0.020138 0.086911 0.040231 0.157380 +0.558827 +0.029510 0.039848 0.028658 0.030220 0.015737 0.033468 0.011557 0.036499 0.028302 0.032337 0.014975 0.112049 0.015820 0.015641 0.029343 0.031288 0.018299 0.073320 0.027334 0.020486 0.019223 0.157380 0.039132 0.015551 0.011204 0.086911 0.039425 0.000069 0.020497 0.157380 0.038362 0.204360 +0.126097 +0.029264 0.038628 0.029897 0.032891 0.016207 0.239756 0.010229 0.035500 0.028341 0.029523 0.018494 0.019276 0.015279 0.016309 0.031088 0.034067 0.017958 0.090278 0.026531 0.020656 0.021571 0.133891 0.041292 0.015256 0.005027 0.157380 0.040566 0.000144 0.019746 0.086911 0.041012 0.180870 +0.502772 +0.029989 0.036604 0.037987 0.049010 0.014750 0.030766 0.010971 0.035273 0.028306 0.028229 0.016637 0.059349 0.016418 0.015885 0.031460 0.032153 0.014647 0.024401 0.027362 0.019935 0.022878 0.086911 0.040744 0.016911 0.008811 0.110401 0.039378 0.000751 0.019380 0.086911 0.038315 0.133891 +0.028823 +0.029535 0.038044 0.028676 0.028230 0.016916 0.060890 0.011010 0.036452 0.029776 0.028219 0.015384 0.047421 0.016108 0.015737 0.029828 0.028853 0.017594 0.134396 0.027175 0.020023 0.020421 0.086911 0.038887 0.013626 0.013953 0.086911 0.037930 0.002313 0.020185 0.086911 0.040897 0.133891 +0.260967 +0.030530 0.037212 0.031175 0.030422 0.016820 0.157412 0.011632 0.035747 0.028817 0.030520 0.014357 0.101119 0.015238 0.015679 0.035191 0.028333 0.018533 0.027399 0.027414 0.020316 0.022625 0.086911 0.042140 0.018152 0.010584 0.086911 0.041351 0.000366 0.019722 0.110401 0.039565 0.180870 +0.338824 +0.028738 0.037206 0.029739 0.028306 0.018371 0.057243 0.010391 0.036080 0.028438 0.037873 0.015679 0.037271 0.015247 0.016386 0.029269 0.028423 0.016223 0.080349 0.026577 0.019897 0.020026 0.086911 0.041585 0.011958 0.013230 0.180870 0.040359 0.000920 0.020105 0.133891 0.042026 0.204360 +0.087121 +0.028260 0.039632 0.029199 0.033513 0.014336 0.093012 0.010503 0.036163 0.030667 0.029948 0.016611 0.144235 0.015810 0.016374 0.028437 0.028820 0.015188 0.031083 0.027092 0.019921 0.020396 0.086911 0.040586 0.013232 0.011716 0.133891 0.040033 0.001670 0.019887 0.133891 0.040539 0.180870 +0.234478 +0.031922 0.039074 0.030098 0.031724 0.017072 0.064281 0.010490 0.036199 0.028686 0.034823 0.014393 0.073703 0.015292 0.016178 0.034150 0.031875 0.015113 0.048737 0.029188 0.018871 0.019264 0.063422 0.040757 0.016196 0.011153 0.133891 0.041711 0.001166 0.021097 0.133891 0.040656 0.204360 +0.040462 +0.029758 0.034154 0.034370 0.032344 0.015629 0.286565 0.009484 0.035683 0.029992 0.028806 0.014360 0.020278 0.015751 0.015589 0.029415 0.030039 0.015325 0.161341 0.030607 0.020193 0.020066 0.063422 0.039487 0.015054 0.011940 0.180870 0.041944 0.001854 0.020200 0.110401 0.039930 0.204360 +0.444630 +0.031057 0.035525 0.030668 0.029230 0.017003 0.083220 0.011494 0.035401 0.029072 0.031468 0.014369 0.022509 0.015262 0.015925 0.028804 0.028431 0.016462 0.030177 0.026811 0.020487 0.019879 0.063422 0.041006 0.015270 0.013370 0.110401 0.038085 0.000050 0.020020 0.086911 0.038919 0.157380 +0.053130 +0.029976 0.034696 0.032516 0.030467 0.014396 0.134016 0.011098 0.036265 0.033760 0.028607 0.017611 0.029469 0.015183 0.015640 0.028877 0.032649 0.017269 0.022361 0.026864 0.020599 0.019259 0.086911 0.041488 0.014571 0.010050 0.133891 0.038205 0.000497 0.020557 0.063422 0.041903 0.204360 +0.019510 +0.028930 0.037955 0.030374 0.030180 0.016622 0.055508 0.010556 0.037087 0.031996 0.030601 0.018461 0.077635 0.016206 0.016020 0.029934 0.030838 0.017420 0.086794 0.026443 0.021108 0.022696 0.063422 0.039125 0.012907 0.013000 0.063422 0.040776 0.000258 0.019155 0.110401 0.041912 0.204360 +0.182400 +0.031723 0.034846 0.029281 0.033303 0.018660 0.067819 0.011047 0.037024 0.030183 0.028719 0.017723 0.209231 0.016245 0.015922 0.029693 0.031664 0.015179 0.059663 0.027173 0.019724 0.023250 0.086911 0.039291 0.013052 0.008782 0.063422 0.039839 0.000417 0.020935 0.086911 0.040912 0.157380 +0.338666 +0.028611 0.037844 0.033374 0.028941 0.018715 0.059552 0.011453 0.036761 0.033094 0.035959 0.018243 0.032474 0.015098 0.015808 0.029546 0.032221 0.018146 0.032568 0.030152 0.019755 0.020944 0.063422 0.041371 0.018561 0.009892 0.063422 0.041367 0.001718 0.020219 0.086911 0.040091 0.180870 +0 +0.028667 0.038027 0.032403 0.029801 0.016787 0.296542 0.010100 0.036549 0.028965 0.034913 0.017149 0.078038 0.015876 0.016410 0.028350 0.029647 0.017099 0.058721 0.029061 0.019869 0.019827 0.133891 0.039328 0.017970 0.006209 0.157380 0.039387 0.000347 0.019938 0.133891 0.038663 0.180870 +0.622098 +0.028386 0.036457 0.030424 0.029867 0.016337 0.035216 0.011189 0.037021 0.030256 0.030945 0.016296 0.118232 0.016441 0.016384 0.028743 0.028382 0.014154 0.083272 0.029583 0.019006 0.021123 0.110401 0.039327 0.013771 0.012138 0.180870 0.039610 0.001276 0.019796 0.110401 0.041939 0.204360 +0.195050 +0.031758 0.038845 0.031140 0.028601 0.018397 0.099920 0.009891 0.036650 0.033244 0.028572 0.016248 0.268688 0.015809 0.016093 0.032456 0.028749 0.016079 0.018958 0.030451 0.019278 0.023363 0.086911 0.039601 0.014982 0.012590 0.110401 0.042028 0.001724 0.018806 0.063422 0.041351 0.133891 +0.483867 +0.028673 0.033823 0.028463 0.028562 0.015600 0.075881 0.010386 0.035389 0.028510 0.033318 0.016838 0.272718 0.015735 0.016013 0.028367 0.031148 0.018033 0.039357 0.026937 0.019884 0.021200 0.086911 0.041629 0.016335 0.011007 0.180870 0.037626 0.002200 0.020852 0.133891 0.038202 0.204360 +0.476925 +0.030880 0.036372 0.029852 0.028856 0.014557 0.119870 0.010839 0.035720 0.028840 0.029386 0.016497 0.060888 0.015827 0.016338 0.029440 0.030224 0.014964 0.053569 0.027068 0.019779 0.022682 0.110401 0.040142 0.012390 0.009483 0.133891 0.040105 0.000556 0.020656 0.180870 0.040977 0.204360 +0.283179 +0.032622 0.032962 0.028930 0.031770 0.018609 0.040089 0.010362 0.036006 0.028905 0.028256 0.017144 0.202238 0.016198 0.015969 0.035637 0.029027 0.017141 0.077553 0.027800 0.020337 0.020349 0.063422 0.039258 0.017561 0.010271 0.110401 0.039311 0.001688 0.021096 0.110401 0.039552 0.133891 +0.378154 +0.029299 0.034533 0.028984 0.035533 0.018637 0.158396 0.010304 0.036764 0.028414 0.028193 0.014148 0.041432 0.016426 0.015537 0.033127 0.028456 0.016169 0.034380 0.028059 0.019879 0.020929 0.086911 0.041158 0.016855 0.006100 0.086911 0.039390 0.001207 0.020000 0.086911 0.040512 0.180870 +0.259916 +0.029119 0.036333 0.028920 0.030377 0.015095 0.033456 0.009828 0.036092 0.028977 0.030347 0.014428 0.021679 0.015970 0.015633 0.028976 0.029318 0.015009 0.045197 0.029415 0.020100 0.019222 0.063422 0.041991 0.013921 0.011177 0.133891 0.038229 0.001944 0.019257 0.110401 0.039798 0.157380 +0.003052 +0.030731 0.036000 0.033480 0.030789 0.016474 0.103431 0.010503 0.037550 0.029024 0.029946 0.018649 0.055368 0.016411 0.015719 0.030592 0.035548 0.015154 0.129155 0.026695 0.021082 0.021907 0.133891 0.041180 0.015315 0.011311 0.133891 0.038951 0.001142 0.020121 0.063422 0.040070 0.157380 +0.272357 +0.031977 0.032921 0.034762 0.028847 0.015952 0.059478 0.009685 0.037493 0.039798 0.028193 0.018272 0.047166 0.015375 0.015639 0.029093 0.030759 0.014943 0.170022 0.029077 0.020085 0.020438 0.086911 0.041834 0.017914 0.011651 0.180870 0.038514 0.000570 0.020255 0.157380 0.039002 0.204360 +0.148306 +0.031905 0.035212 0.028964 0.030409 0.016040 0.138967 0.010454 0.035818 0.029122 0.031710 0.015277 0.094847 0.016419 0.016267 0.031717 0.028451 0.016462 0.049470 0.027139 0.020852 0.019382 0.063422 0.038307 0.016654 0.009862 0.086911 0.041837 0.001845 0.020737 0.063422 0.037815 0.133891 +0.280816 +0.030793 0.034774 0.029070 0.030775 0.015382 0.285930 0.011056 0.037206 0.034289 0.029684 0.017617 0.091709 0.015840 0.015505 0.031557 0.031225 0.016140 0.107113 0.027917 0.019372 0.021574 0.110401 0.039159 0.015733 0.013567 0.110401 0.040850 0.001520 0.019915 0.063422 0.041173 0.133891 +0.556091 +0.030504 0.036960 0.030796 0.029133 0.015734 0.063299 0.011586 0.036168 0.029433 0.029522 0.018027 0.030528 0.015353 0.015774 0.031553 0.035376 0.014722 0.049374 0.029506 0.020555 0.021471 0.110401 0.039286 0.014211 0.012677 0.110401 0.042117 0.001888 0.019478 0.063422 0.039396 0.133891 +0.094015 +0.029602 0.038809 0.030560 0.028473 0.018048 0.030235 0.009844 0.036144 0.028661 0.035440 0.015728 0.170999 0.015387 0.016096 0.028729 0.029042 0.016825 0.041116 0.025255 0.020802 0.022441 0.133891 0.040209 0.011861 0.006998 0.063422 0.038420 0.002080 0.019819 0.133891 0.037650 0.157380 +0.172197 +0.028733 0.037520 0.039182 0.035713 0.018207 0.081843 0.009480 0.037261 0.059051 0.031083 0.016702 0.193974 0.015519 0.015505 0.028446 0.028868 0.017440 0.147464 0.027984 0.018900 0.021459 0.180870 0.039796 0.018001 0.009234 0.110401 0.041339 0.001455 0.019603 0.063422 0.041964 0.204360 +0.468263 +0.030694 0.038186 0.031289 0.028236 0.016734 0.054427 0.011517 0.035299 0.028330 0.028604 0.014564 0.151595 0.016035 0.015977 0.031791 0.034403 0.015935 0.032743 0.027935 0.021003 0.021150 0.086911 0.038653 0.014128 0.007189 0.133891 0.039715 0.001756 0.020851 0.063422 0.038431 0.157380 +0.274535 +0.032558 0.036081 0.028891 0.029736 0.014819 0.053220 0.009708 0.037129 0.030734 0.029647 0.016103 0.067753 0.015226 0.015884 0.028439 0.028543 0.014365 0.051825 0.026161 0.021008 0.021360 0.110401 0.038246 0.013935 0.006868 0.063422 0.039364 0.001388 0.019474 0.110401 0.040325 0.180870 +0.050061 +0.030543 0.035981 0.028738 0.033540 0.014406 0.140706 0.010102 0.037027 0.028387 0.029390 0.014172 0.023605 0.015139 0.015744 0.028366 0.031556 0.018739 0.104332 0.028233 0.020259 0.020873 0.133891 0.037955 0.016741 0.013344 0.133891 0.040723 0.001226 0.019667 0.086911 0.038738 0.157380 +0.276892 +0.031054 0.033652 0.029960 0.031304 0.017546 0.179095 0.010850 0.037117 0.029125 0.029648 0.017719 0.072034 0.015699 0.016350 0.028234 0.031936 0.016709 0.240864 0.026977 0.019354 0.019012 0.133891 0.041476 0.014677 0.009874 0.180870 0.038751 0.001008 0.020186 0.110401 0.039097 0.204360 +0.691680 +0.029492 0.033080 0.028403 0.031116 0.017786 0.038793 0.011026 0.037316 0.028489 0.032944 0.014727 0.022395 0.016392 0.015944 0.036195 0.032060 0.018034 0.073053 0.029706 0.019679 0.022317 0.110401 0.040011 0.016176 0.008012 0.133891 0.039332 0.002239 0.019163 0.063422 0.037775 0.180870 +0.007504 +0.030470 0.033927 0.030880 0.030429 0.016291 0.273224 0.011207 0.036667 0.028583 0.029532 0.015698 0.034859 0.015386 0.016068 0.031003 0.028343 0.015031 0.035645 0.027250 0.018809 0.019878 0.086911 0.041433 0.013427 0.006918 0.063422 0.039423 0.001358 0.019785 0.110401 0.039816 0.133891 +0.544111 +0.032700 0.033167 0.030190 0.032285 0.017845 0.033408 0.011442 0.036704 0.028343 0.030053 0.015175 0.231127 0.015438 0.015731 0.032963 0.029720 0.015350 0.016751 0.026129 0.021008 0.021256 0.086911 0.040173 0.016572 0.009430 0.086911 0.038155 0.002150 0.020785 0.063422 0.040757 0.133891 +0.279576 +0.028283 0.036756 0.028890 0.031819 0.016609 0.091194 0.010175 0.035644 0.030657 0.030869 0.016234 0.051786 0.015137 0.015627 0.029086 0.029376 0.014177 0.160408 0.027962 0.019522 0.021676 0.086911 0.039579 0.014829 0.012630 0.110401 0.039683 0.000935 0.019785 0.110401 0.038041 0.204360 +0.346010 +0.031234 0.033345 0.028533 0.028575 0.016003 0.021334 0.010010 0.036909 0.030384 0.033662 0.018417 0.093115 0.015842 0.016433 0.029174 0.028951 0.016173 0.062010 0.027683 0.020997 0.019159 0.086911 0.040195 0.015087 0.008736 0.063422 0.042118 0.001817 0.019033 0.063422 0.040464 0.204360 +0.066189 +0.028761 0.034552 0.028674 0.038199 0.015219 0.067303 0.010331 0.035882 0.029629 0.028408 0.018420 0.112765 0.015551 0.015895 0.028250 0.028243 0.014774 0.200671 0.026899 0.019059 0.020116 0.133891 0.039868 0.011798 0.013664 0.063422 0.041574 0.000240 0.018856 0.133891 0.038653 0.157380 +0.481159 +0.029567 0.035250 0.031421 0.034536 0.016292 0.039579 0.011323 0.037378 0.030106 0.030574 0.018421 0.072402 0.015323 0.016411 0.028634 0.030515 0.016546 0.034015 0.027136 0.019505 0.021971 0.086911 0.037947 0.015671 0.007483 0.063422 0.038161 0.000467 0.019595 0.063422 0.038385 0.180870 +0.024179 +0.032673 0.037663 0.031426 0.029215 0.015925 0.031986 0.011406 0.035244 0.030001 0.029995 0.015267 0.100586 0.016018 0.016217 0.029420 0.029380 0.016413 0.092258 0.026723 0.019008 0.022845 0.133891 0.041969 0.014393 0.009179 0.110401 0.039174 0.001089 0.021068 0.133891 0.041565 0.204360 +0.134421 +0.032761 0.037111 0.030995 0.028974 0.017069 0.036267 0.011582 0.037571 0.031935 0.029094 0.017396 0.208611 0.015989 0.016081 0.030570 0.028789 0.016876 0.116148 0.028548 0.020714 0.021137 0.063422 0.039412 0.017446 0.013506 0.086911 0.041444 0.000316 0.020422 0.110401 0.039311 0.133891 +0.491155 +0.028971 0.038975 0.035352 0.031005 0.017137 0.047600 0.009900 0.036001 0.029729 0.031560 0.016883 0.247432 0.016106 0.016350 0.032773 0.029111 0.017117 0.031877 0.028704 0.019034 0.022999 0.110401 0.037747 0.015974 0.007925 0.110401 0.040368 0.000008 0.018964 0.086911 0.041380 0.133891 +0.378389 +0.032468 0.037679 0.030858 0.028326 0.018617 0.060322 0.011744 0.037090 0.028643 0.029044 0.016300 0.030362 0.016292 0.015980 0.028378 0.029122 0.014878 0.094859 0.027035 0.021065 0.022800 0.133891 0.041569 0.017662 0.012991 0.157380 0.038515 0.001128 0.020151 0.063422 0.037666 0.180870 +0.094033 +0.028191 0.035686 0.028518 0.029195 0.017078 0.106454 0.011567 0.037349 0.028908 0.028345 0.015273 0.031853 0.015588 0.016435 0.030581 0.036587 0.014491 0.085312 0.028524 0.019912 0.020519 0.086911 0.041068 0.018054 0.006254 0.133891 0.038323 0.001540 0.020553 0.086911 0.039611 0.204360 +0.136371 +0.031001 0.033657 0.028982 0.030364 0.018327 0.197600 0.011618 0.036723 0.031146 0.041773 0.016207 0.071205 0.015707 0.015840 0.031847 0.029235 0.014936 0.067418 0.030076 0.020320 0.019445 0.110401 0.037644 0.013498 0.006512 0.063422 0.041914 0.002304 0.020614 0.110401 0.039541 0.133891 +0.325953 +0.030547 0.034567 0.029253 0.030064 0.018325 0.060986 0.011728 0.036483 0.032641 0.030598 0.015209 0.118397 0.015619 0.016349 0.028273 0.031546 0.017666 0.047268 0.027290 0.018858 0.020311 0.086911 0.041720 0.016175 0.004893 0.110401 0.039857 0.001438 0.020142 0.133891 0.039158 0.180870 +0.212101 +0.031527 0.039574 0.036234 0.030762 0.014766 0.038094 0.010636 0.037468 0.028649 0.034433 0.014708 0.037452 0.016229 0.015628 0.029715 0.030491 0.014951 0.069100 0.028256 0.019043 0.019651 0.133891 0.040903 0.015690 0.008065 0.086911 0.040099 0.000342 0.019670 0.110401 0.039020 0.204360 +0.022687 +0.031805 0.034992 0.028767 0.031000 0.017266 0.190239 0.010294 0.035814 0.028214 0.028862 0.015904 0.034893 0.016279 0.015567 0.030548 0.029868 0.015918 0.182308 0.027530 0.019929 0.019793 0.086911 0.037778 0.018605 0.012452 0.063422 0.039249 0.001266 0.019689 0.063422 0.039212 0.204360 +0.492445 +0.029399 0.036084 0.029394 0.029330 0.014543 0.138918 0.011535 0.037149 0.030007 0.028512 0.017695 0.051705 0.016295 0.016307 0.028812 0.030484 0.015638 0.117298 0.028670 0.019862 0.022952 0.063422 0.040249 0.014159 0.005260 0.086911 0.038515 0.000445 0.020750 0.110401 0.042193 0.133891 +0.432741 +0.030780 0.034424 0.029301 0.029166 0.017045 0.071668 0.011533 0.035483 0.034872 0.028878 0.014744 0.036410 0.016367 0.015680 0.031155 0.028702 0.014469 0.056273 0.028547 0.020003 0.021289 0.133891 0.040285 0.012851 0.005358 0.086911 0.039536 0.000688 0.019934 0.133891 0.039103 0.157380 +0.161639 +0.032349 0.032951 0.030248 0.028778 0.018449 0.044059 0.009792 0.037502 0.030346 0.028961 0.015895 0.192488 0.016098 0.016193 0.029001 0.029047 0.017579 0.027327 0.027121 0.020189 0.021484 0.110401 0.039606 0.012851 0.011610 0.063422 0.038863 0.000588 0.020895 0.063422 0.040104 0.180870 +0.186919 +0.029252 0.033194 0.028523 0.032458 0.017912 0.214795 0.011387 0.036020 0.029819 0.031101 0.018724 0.029050 0.016088 0.016092 0.028875 0.030909 0.014401 0.060629 0.027219 0.019812 0.020764 0.063422 0.038331 0.018247 0.007942 0.110401 0.037946 0.001167 0.020290 0.063422 0.040417 0.133891 +0.517277 +0.031682 0.033468 0.031950 0.029825 0.017944 0.138034 0.009860 0.036541 0.030175 0.029519 0.014186 0.095868 0.015483 0.016146 0.032325 0.029180 0.014200 0.125824 0.028424 0.019952 0.020570 0.086911 0.042182 0.016466 0.009305 0.133891 0.040975 0.000955 0.020666 0.110401 0.039004 0.204360 +0.358741 +0.032524 0.037704 0.029905 0.030232 0.014165 0.030705 0.009538 0.036773 0.030221 0.032151 0.017468 0.117618 0.015629 0.015990 0.028487 0.031813 0.014521 0.090953 0.026071 0.018801 0.019679 0.110401 0.041300 0.016061 0.007427 0.133891 0.041900 0.001395 0.019793 0.086911 0.041447 0.180870 +0.216689 +0.029381 0.034921 0.032246 0.028621 0.017897 0.079283 0.009783 0.036030 0.029650 0.031324 0.018509 0.051603 0.016418 0.016290 0.028857 0.030238 0.015721 0.035095 0.028500 0.020511 0.021190 0.110401 0.040753 0.015617 0.012356 0.086911 0.041110 0.001883 0.020964 0.110401 0.038370 0.157380 +0.048988 +0.032355 0.039730 0.028195 0.030469 0.018452 0.163172 0.011352 0.037576 0.028453 0.030241 0.015708 0.183603 0.016384 0.016037 0.028552 0.030190 0.014180 0.017981 0.028602 0.018827 0.019679 0.086911 0.039811 0.012389 0.006515 0.086911 0.040552 0.001234 0.020316 0.133891 0.041314 0.204360 +0.376213 +0.028761 0.034909 0.032023 0.028209 0.016308 0.161067 0.010788 0.037318 0.038188 0.030970 0.016102 0.023047 0.015284 0.015534 0.028385 0.028446 0.016078 0.064280 0.027879 0.021077 0.021104 0.086911 0.041764 0.015914 0.008000 0.063422 0.039127 0.001233 0.019988 0.157380 0.040913 0.180870 +0.346413 +0.028975 0.035064 0.028192 0.030481 0.016974 0.144432 0.010721 0.035828 0.029729 0.028353 0.018299 0.155755 0.016059 0.015704 0.028600 0.028317 0.015299 0.089474 0.028056 0.020599 0.021382 0.063422 0.038676 0.017373 0.010616 0.157380 0.039711 0.001617 0.021140 0.110401 0.038612 0.204360 +0.456408 +0.028331 0.035630 0.031038 0.028384 0.016229 0.025435 0.009691 0.035797 0.029358 0.030381 0.014412 0.079864 0.015546 0.015981 0.032459 0.031062 0.018614 0.331508 0.029670 0.019935 0.022400 0.133891 0.042090 0.017040 0.012065 0.063422 0.039612 0.001325 0.018813 0.086911 0.038687 0.157380 +0.616533 +0.032165 0.032984 0.031760 0.030853 0.015727 0.326468 0.011677 0.037468 0.029757 0.028859 0.017288 0.019867 0.015443 0.015889 0.028643 0.030083 0.014159 0.032109 0.028736 0.018831 0.019321 0.063422 0.040095 0.016134 0.011480 0.133891 0.041223 0.001468 0.021115 0.086911 0.041937 0.180870 +0.454572 +0.030765 0.035745 0.032559 0.029027 0.016558 0.026912 0.009979 0.036604 0.029864 0.032106 0.017621 0.101872 0.016347 0.015585 0.028723 0.029736 0.017038 0.171305 0.027292 0.019204 0.019357 0.157380 0.040145 0.012023 0.005576 0.110401 0.038273 0.002343 0.020895 0.110401 0.039697 0.180870 +0.295515 +0.031106 0.034406 0.030436 0.031463 0.014317 0.307289 0.010929 0.035646 0.029841 0.030123 0.018039 0.101163 0.015048 0.016095 0.028942 0.028393 0.015021 0.056711 0.028352 0.019704 0.020937 0.063422 0.040302 0.017297 0.006501 0.110401 0.041119 0.001601 0.019233 0.110401 0.039479 0.157380 +0.540633 +0.032170 0.037090 0.028569 0.029566 0.015572 0.112497 0.010939 0.035833 0.039076 0.030278 0.014376 0.033507 0.015280 0.015546 0.031009 0.028648 0.015698 0.117274 0.027977 0.020029 0.022159 0.086911 0.038525 0.016473 0.010263 0.110401 0.039038 0.000542 0.020281 0.110401 0.041465 0.133891 +0.422516 +0.029996 0.039246 0.031960 0.030841 0.018444 0.070214 0.009627 0.035265 0.028582 0.028514 0.015029 0.104265 0.015278 0.015974 0.029559 0.030922 0.017490 0.472832 0.029316 0.021072 0.019608 0.157380 0.037711 0.013081 0.005746 0.157380 0.042240 0.001834 0.019263 0.086911 0.040436 0.180870 +0.812312 +0.031285 0.033570 0.030263 0.028797 0.018747 0.020401 0.009609 0.036165 0.029427 0.028556 0.014813 0.060237 0.015951 0.016295 0.030413 0.031764 0.015593 0.117591 0.028736 0.019031 0.021198 0.110401 0.039317 0.018643 0.012457 0.157380 0.041901 0.000198 0.020471 0.133891 0.038590 0.180870 +0.106829 +0.029477 0.036898 0.032900 0.032200 0.017228 0.048641 0.009990 0.036232 0.028489 0.030945 0.018142 0.029642 0.015884 0.016420 0.033086 0.032864 0.016354 0.243063 0.025997 0.019488 0.020668 0.063422 0.041997 0.013165 0.011169 0.180870 0.038509 0.000749 0.020482 0.133891 0.040657 0.204360 +0.351342 +0.029337 0.036211 0.029476 0.028418 0.018544 0.023530 0.011513 0.036741 0.033530 0.029025 0.016408 0.228176 0.015909 0.015546 0.028639 0.032068 0.015308 0.162869 0.028219 0.020182 0.021930 0.133891 0.041665 0.016210 0.009998 0.133891 0.040214 0.000549 0.020955 0.110401 0.038027 0.180870 +0.534344 +0.031601 0.033979 0.028658 0.033372 0.016012 0.093997 0.011694 0.037022 0.029286 0.028441 0.016027 0.145959 0.016179 0.015718 0.035857 0.029222 0.016862 0.039207 0.029503 0.019945 0.019222 0.063422 0.038792 0.016502 0.008702 0.086911 0.037835 0.001780 0.019462 0.110401 0.038162 0.157380 +0.238169 +0.031557 0.035346 0.031003 0.028359 0.016067 0.064959 0.011002 0.037459 0.029363 0.035426 0.014215 0.036768 0.015514 0.016278 0.030918 0.028492 0.016456 0.063131 0.027640 0.021072 0.023126 0.110401 0.041235 0.017795 0.013752 0.133891 0.039849 0.001228 0.018927 0.063422 0.042030 0.157380 +0.059264 +0.029992 0.036475 0.028486 0.028297 0.018310 0.021178 0.010523 0.036504 0.030248 0.030358 0.017232 0.131612 0.015113 0.015825 0.028488 0.031758 0.014764 0.072969 0.028287 0.020502 0.019080 0.086911 0.040319 0.013520 0.013052 0.063422 0.039646 0.001327 0.018910 0.086911 0.038023 0.133891 +0.149955 +0.028592 0.033994 0.029318 0.029898 0.017024 0.149851 0.010116 0.037279 0.030653 0.030421 0.016836 0.044645 0.016244 0.016336 0.029135 0.029037 0.018730 0.077030 0.027335 0.020358 0.023194 0.157380 0.039844 0.017465 0.005362 0.063422 0.038063 0.002226 0.019461 0.086911 0.037829 0.180870 +0.329680 +0.031065 0.039104 0.029550 0.031010 0.016582 0.087895 0.010718 0.035849 0.029269 0.032578 0.016221 0.035291 0.016385 0.015761 0.030902 0.031932 0.015883 0.069482 0.029728 0.020353 0.022840 0.086911 0.042193 0.015265 0.012247 0.063422 0.038488 0.000300 0.020709 0.086911 0.038698 0.133891 +0.147760 +0.029055 0.036472 0.032116 0.029129 0.018197 0.165844 0.011205 0.036238 0.031164 0.031314 0.018660 0.101293 0.016442 0.015908 0.028669 0.028551 0.014466 0.141468 0.028265 0.019405 0.023085 0.086911 0.038145 0.012094 0.007847 0.133891 0.040241 0.001534 0.020365 0.180870 0.042063 0.204360 +0.445972 +0.029101 0.037801 0.031289 0.029156 0.014139 0.101660 0.009562 0.036868 0.028912 0.035659 0.016904 0.041755 0.015947 0.015900 0.029748 0.029959 0.016560 0.041125 0.028010 0.019294 0.019874 0.133891 0.041174 0.015578 0.005055 0.157380 0.041109 0.000943 0.018909 0.133891 0.039176 0.204360 +0.169062 +0.032171 0.033308 0.031913 0.030573 0.018194 0.342580 0.010892 0.036996 0.030603 0.030304 0.016137 0.020882 0.015943 0.016037 0.028502 0.028692 0.018454 0.054202 0.030135 0.020754 0.019846 0.063422 0.041524 0.017779 0.005249 0.133891 0.040055 0.000614 0.019949 0.110401 0.041453 0.157380 +0.535804 +0.029417 0.034758 0.034433 0.032477 0.015391 0.264539 0.009810 0.036661 0.031198 0.028237 0.016673 0.107943 0.016421 0.015898 0.028735 0.031376 0.015806 0.043859 0.027564 0.020445 0.020006 0.086911 0.038164 0.012241 0.010810 0.086911 0.040250 0.001906 0.020093 0.110401 0.040955 0.133891 +0.437004 +0.029816 0.039284 0.031545 0.028613 0.014555 0.029257 0.009980 0.036698 0.029509 0.032611 0.016681 0.021797 0.016062 0.015777 0.029194 0.036934 0.014978 0.037096 0.027273 0.019249 0.023302 0.110401 0.040232 0.018439 0.009318 0.133891 0.041064 0.001664 0.020150 0.110401 0.041305 0.157380 +0 +0.031925 0.039800 0.032391 0.030082 0.016108 0.043348 0.011186 0.036286 0.030474 0.028428 0.015897 0.169470 0.016339 0.016362 0.035278 0.029407 0.018466 0.072476 0.028681 0.020007 0.021478 0.063422 0.038065 0.012084 0.006133 0.180870 0.038595 0.001994 0.020048 0.110401 0.041030 0.204360 +0.280176 +0.030772 0.034709 0.029285 0.028641 0.018615 0.063329 0.011566 0.035853 0.029210 0.028776 0.015689 0.155816 0.016332 0.016206 0.037199 0.029025 0.017467 0.121100 0.028180 0.019806 0.023340 0.180870 0.037641 0.013355 0.006945 0.063422 0.040906 0.002337 0.019403 0.180870 0.037742 0.204360 +0.393003 +0.030842 0.039000 0.028292 0.029064 0.018117 0.084287 0.011594 0.036766 0.030728 0.032591 0.018032 0.091854 0.016384 0.015827 0.030545 0.028317 0.014795 0.055794 0.028877 0.020995 0.019411 0.086911 0.041115 0.013081 0.011481 0.110401 0.039381 0.001891 0.019168 0.063422 0.040260 0.180870 +0.177615 +0.028844 0.035084 0.028318 0.030118 0.018200 0.260860 0.010296 0.036327 0.031179 0.029481 0.018644 0.018525 0.015925 0.016159 0.029168 0.029132 0.018599 0.268884 0.029681 0.020525 0.021711 0.110401 0.038107 0.017406 0.012897 0.110401 0.040532 0.000989 0.020641 0.086911 0.041472 0.133891 +0.581283 +0.030783 0.036885 0.029597 0.030928 0.017276 0.083404 0.010670 0.036223 0.028282 0.029658 0.014642 0.110298 0.016005 0.015655 0.029404 0.028919 0.015661 0.050792 0.028111 0.019939 0.023317 0.086911 0.041160 0.013549 0.011266 0.063422 0.038099 0.002242 0.019558 0.063422 0.037957 0.133891 +0.186443 +0.030733 0.039658 0.029069 0.030423 0.017625 0.105663 0.010516 0.035559 0.033717 0.030799 0.018389 0.036912 0.015485 0.016026 0.028987 0.034349 0.014369 0.061301 0.027578 0.020249 0.023184 0.063422 0.039070 0.013694 0.010151 0.086911 0.041067 0.000204 0.020841 0.086911 0.040985 0.157380 +0.145108 +0.030953 0.038621 0.037813 0.037925 0.017567 0.064176 0.010962 0.036619 0.030350 0.031661 0.014983 0.026158 0.016335 0.015551 0.031057 0.028663 0.018732 0.030519 0.028092 0.020945 0.022399 0.063422 0.041223 0.013741 0.008886 0.157380 0.041097 0.001066 0.020447 0.110401 0.040463 0.204360 +0 +0.029173 0.036258 0.030380 0.030956 0.017742 0.062921 0.010307 0.036957 0.029361 0.029969 0.014179 0.105921 0.015798 0.015505 0.031516 0.028622 0.017517 0.021498 0.027123 0.020378 0.021146 0.110401 0.040588 0.018467 0.008375 0.110401 0.038159 0.002269 0.019952 0.063422 0.041639 0.133891 +0.202834 +0.028849 0.039159 0.029995 0.029439 0.016636 0.119756 0.009640 0.037070 0.028366 0.028649 0.018330 0.111598 0.016206 0.016335 0.028972 0.033323 0.017854 0.252304 0.028098 0.019582 0.019209 0.086911 0.041004 0.012166 0.006883 0.086911 0.038081 0.000028 0.020366 0.157380 0.039616 0.204360 +0.679144 +0.030033 0.033906 0.030432 0.028491 0.014366 0.305278 0.010993 0.037048 0.028209 0.028383 0.018009 0.204223 0.015916 0.015846 0.028592 0.028846 0.015019 0.020640 0.029158 0.019194 0.021026 0.133891 0.041100 0.015463 0.014092 0.063422 0.040552 0.000833 0.018792 0.157380 0.039528 0.180870 +0.577911 +0.029427 0.034079 0.028504 0.029954 0.015961 0.093081 0.010399 0.037532 0.028255 0.029415 0.018510 0.111798 0.016105 0.016113 0.030227 0.031606 0.018257 0.051880 0.027300 0.020100 0.020755 0.157380 0.041665 0.016348 0.007081 0.086911 0.038706 0.001246 0.019510 0.133891 0.039437 0.180870 +0.280267 +0.030057 0.035327 0.028601 0.031267 0.018129 0.033212 0.010435 0.035512 0.032168 0.029214 0.017722 0.286231 0.016377 0.016162 0.029529 0.029131 0.016248 0.035614 0.028193 0.019651 0.021571 0.133891 0.038076 0.018095 0.008769 0.133891 0.039841 0.001025 0.020681 0.110401 0.040220 0.157380 +0.431803 +0.032802 0.036555 0.029352 0.028396 0.015258 0.046345 0.011098 0.035922 0.030099 0.030172 0.016409 0.112113 0.015873 0.016343 0.041495 0.028827 0.014469 0.033347 0.027973 0.019526 0.022082 0.110401 0.038632 0.017774 0.011290 0.063422 0.038079 0.000064 0.020721 0.063422 0.040308 0.133891 +0.166277 +0.030589 0.038064 0.030414 0.037845 0.015115 0.036260 0.009935 0.035343 0.034307 0.029853 0.016657 0.048777 0.015728 0.015514 0.030231 0.029070 0.016944 0.034210 0.026736 0.020065 0.018798 0.133891 0.040047 0.016077 0.006990 0.180870 0.039244 0.001652 0.020318 0.157380 0.040642 0.204360 +0.009406 +0.029765 0.033701 0.033623 0.034473 0.016821 0.019549 0.011661 0.035278 0.029788 0.028532 0.018000 0.084958 0.015801 0.015798 0.029081 0.030304 0.015630 0.162635 0.027511 0.019828 0.018913 0.133891 0.040599 0.018741 0.010526 0.086911 0.041854 0.001337 0.019512 0.086911 0.041711 0.180870 +0.183843 +0.031598 0.033321 0.029294 0.029697 0.014285 0.057394 0.010329 0.037468 0.031404 0.029666 0.015422 0.357397 0.016071 0.015929 0.028492 0.028954 0.014342 0.040181 0.027843 0.020278 0.021279 0.063422 0.038886 0.018414 0.009538 0.063422 0.041996 0.002316 0.019252 0.063422 0.039590 0.133891 +0.601118 +0.029093 0.033474 0.029222 0.034830 0.014429 0.076414 0.009881 0.035609 0.028918 0.029682 0.016751 0.023315 0.015771 0.015772 0.030021 0.028323 0.017249 0.122522 0.028739 0.019358 0.023332 0.180870 0.037616 0.014646 0.007869 0.157380 0.039502 0.001184 0.019428 0.157380 0.041908 0.204360 +0.240132 +0.030459 0.039181 0.029665 0.031658 0.016488 0.155722 0.010776 0.036343 0.028922 0.028604 0.015659 0.132069 0.016064 0.015532 0.029812 0.032278 0.016541 0.026331 0.028717 0.019836 0.023157 0.110401 0.039559 0.012590 0.010180 0.063422 0.041366 0.001472 0.019375 0.086911 0.041442 0.133891 +0.410317 +0.032825 0.036550 0.031825 0.030570 0.018523 0.072925 0.011405 0.037293 0.028456 0.030920 0.014545 0.024750 0.015440 0.016320 0.028400 0.028622 0.015431 0.584772 0.030488 0.019289 0.019096 0.110401 0.041359 0.017669 0.011499 0.063422 0.039747 0.001146 0.020071 0.110401 0.040482 0.133891 +0.840260 +0.029018 0.039226 0.030177 0.031082 0.016362 0.057065 0.011361 0.035678 0.029043 0.028521 0.015118 0.101819 0.015439 0.016089 0.028684 0.029879 0.015228 0.025225 0.028435 0.019886 0.021123 0.110401 0.040533 0.014474 0.008961 0.063422 0.038455 0.000195 0.020678 0.133891 0.040748 0.157380 +0.138076 +0.031736 0.033425 0.028988 0.028612 0.017646 0.218822 0.011681 0.035572 0.033032 0.032311 0.017359 0.118806 0.015342 0.015635 0.035573 0.029807 0.016187 0.069129 0.027542 0.021134 0.020443 0.110401 0.042002 0.012855 0.011267 0.063422 0.042039 0.001656 0.020810 0.110401 0.038130 0.180870 +0.416939 +0.029805 0.039577 0.028858 0.028268 0.017716 0.112950 0.011248 0.036552 0.033135 0.029264 0.014710 0.043966 0.015655 0.015859 0.028286 0.029124 0.016831 0.079367 0.028934 0.018894 0.020758 0.157380 0.041371 0.014709 0.004788 0.180870 0.037810 0.001538 0.020490 0.110401 0.038341 0.204360 +0.200862 +0.028993 0.038917 0.028647 0.029403 0.015514 0.035335 0.010936 0.037324 0.029942 0.028545 0.017573 0.054712 0.015183 0.015575 0.029321 0.029872 0.018517 0.140486 0.028595 0.020351 0.020251 0.133891 0.038232 0.016654 0.009744 0.110401 0.038790 0.000562 0.019184 0.086911 0.039518 0.204360 +0.138124 +0.030490 0.039628 0.029129 0.032008 0.018282 0.166429 0.009906 0.035812 0.028469 0.031206 0.016523 0.140595 0.015630 0.015789 0.030042 0.028894 0.018193 0.156171 0.028936 0.021102 0.023146 0.180870 0.040214 0.018617 0.004955 0.086911 0.039017 0.000593 0.020645 0.086911 0.040639 0.204360 +0.555272 +0.028239 0.037717 0.029175 0.031307 0.016397 0.183750 0.009559 0.036266 0.032098 0.032339 0.018029 0.062042 0.015656 0.016333 0.035217 0.030107 0.014185 0.204504 0.027242 0.020897 0.022659 0.063422 0.037701 0.013688 0.010030 0.086911 0.038397 0.000671 0.019410 0.063422 0.037787 0.133891 +0.629747 +0.029824 0.035759 0.029610 0.032340 0.015071 0.032443 0.011632 0.035628 0.028919 0.028513 0.015448 0.022203 0.015270 0.015954 0.028280 0.030086 0.018029 0.271112 0.026936 0.020489 0.020349 0.110401 0.040704 0.016178 0.005881 0.133891 0.037722 0.000898 0.020922 0.063422 0.039181 0.204360 +0.323991 +0.030146 0.039838 0.028664 0.032098 0.017730 0.232232 0.009648 0.035771 0.028249 0.029909 0.017198 0.178784 0.015935 0.015742 0.030460 0.030269 0.016327 0.016847 0.029031 0.021100 0.022487 0.133891 0.037863 0.014883 0.011351 0.157380 0.038883 0.001071 0.019803 0.110401 0.038656 0.180870 +0.483043 +0.028373 0.035611 0.030887 0.033503 0.018548 0.123937 0.010923 0.036059 0.029562 0.029554 0.016742 0.099882 0.015232 0.015612 0.028391 0.028219 0.014927 0.057566 0.026917 0.018928 0.019447 0.180870 0.041882 0.017645 0.011211 0.180870 0.040362 0.001547 0.018959 0.063422 0.040515 0.204360 +0.261029 +0.030227 0.033414 0.029474 0.028421 0.014916 0.047779 0.011274 0.035496 0.028633 0.033257 0.017434 0.057712 0.016067 0.016239 0.029220 0.028679 0.016647 0.063595 0.026342 0.018848 0.018983 0.133891 0.041814 0.016207 0.009962 0.086911 0.038275 0.002064 0.019364 0.063422 0.041159 0.180870 +0.048466 +0.032007 0.036846 0.028903 0.030317 0.014777 0.029511 0.009576 0.037191 0.029147 0.031678 0.016111 0.137772 0.015767 0.015996 0.028503 0.030174 0.015841 0.134175 0.027104 0.019285 0.020730 0.086911 0.039822 0.013171 0.011575 0.133891 0.038742 0.001359 0.020148 0.110401 0.041256 0.204360 +0.285412 +0.028417 0.034890 0.030809 0.036111 0.014624 0.041185 0.009834 0.036884 0.030164 0.031618 0.014860 0.157845 0.015412 0.016301 0.029703 0.029430 0.014513 0.135781 0.024725 0.020728 0.021431 0.157380 0.039185 0.018359 0.007503 0.157380 0.037815 0.000787 0.020807 0.157380 0.040820 0.180870 +0.423704 +0.031126 0.035673 0.031428 0.030407 0.015265 0.069880 0.011571 0.036516 0.029875 0.036018 0.014163 0.021016 0.015153 0.015979 0.030783 0.028439 0.016737 0.021682 0.027859 0.019049 0.020615 0.063422 0.038464 0.018550 0.013505 0.157380 0.040360 0.000693 0.021139 0.086911 0.038242 0.204360 +0 +0.030256 0.034923 0.028785 0.028797 0.014466 0.196121 0.010261 0.037392 0.030898 0.030024 0.015149 0.043775 0.016186 0.015890 0.028366 0.029679 0.017567 0.032596 0.029233 0.020002 0.020717 0.086911 0.041476 0.017404 0.008048 0.133891 0.040841 0.001879 0.019275 0.086911 0.038646 0.157380 +0.322789 +0.029924 0.036477 0.028950 0.028582 0.018665 0.096625 0.010401 0.036664 0.031735 0.036715 0.015042 0.220444 0.015907 0.015655 0.030811 0.028614 0.016487 0.092385 0.025674 0.019349 0.019239 0.063422 0.040800 0.012564 0.011329 0.063422 0.039833 0.001610 0.019707 0.110401 0.042201 0.133891 +0.514912 +0.028234 0.035393 0.033271 0.028563 0.015662 0.058809 0.009964 0.036468 0.029064 0.031279 0.016952 0.140371 0.015678 0.016244 0.030062 0.030248 0.014162 0.028556 0.028349 0.020338 0.019740 0.063422 0.040093 0.013596 0.010816 0.133891 0.041166 0.000293 0.020300 0.063422 0.041151 0.157380 +0.144170 +0.029457 0.036209 0.031063 0.039075 0.017190 0.017215 0.010349 0.035653 0.029795 0.028597 0.017959 0.040228 0.015874 0.015759 0.029630 0.032173 0.018296 0.077165 0.028235 0.019157 0.019282 0.110401 0.039006 0.011940 0.009865 0.086911 0.039793 0.000574 0.020078 0.086911 0.037744 0.204360 +0.007445 +0.029417 0.037512 0.028422 0.029788 0.017726 0.050046 0.009741 0.035788 0.030587 0.028916 0.014225 0.090912 0.016110 0.016077 0.029963 0.029389 0.016544 0.045445 0.027705 0.020758 0.020710 0.086911 0.040189 0.017590 0.006004 0.086911 0.038121 0.001887 0.020363 0.157380 0.041902 0.204360 +0.077324 +0.028749 0.036796 0.028259 0.041468 0.017059 0.039564 0.010337 0.035272 0.028728 0.032474 0.018396 0.037676 0.015383 0.015517 0.029008 0.030265 0.014430 0.109292 0.026985 0.020683 0.021664 0.157380 0.040093 0.013500 0.010369 0.133891 0.040808 0.001023 0.020035 0.063422 0.038717 0.180870 +0.105927 +0.030705 0.033727 0.035899 0.036798 0.017412 0.630853 0.011514 0.035842 0.029517 0.031000 0.014537 0.092487 0.015132 0.015767 0.028245 0.028726 0.017710 0.074347 0.026303 0.019463 0.020501 0.110401 0.042051 0.014185 0.010983 0.086911 0.042092 0.002221 0.018795 0.180870 0.038893 0.204360 +0.856869 +0.028545 0.034676 0.036528 0.030444 0.016402 0.126765 0.010889 0.035370 0.028896 0.030381 0.015184 0.110811 0.015258 0.016203 0.028298 0.028503 0.014562 0.159984 0.025929 0.020943 0.021621 0.086911 0.042128 0.012343 0.010500 0.063422 0.038221 0.001042 0.019927 0.086911 0.037784 0.204360 +0.467633 +0.032438 0.035648 0.029120 0.037695 0.016062 0.053247 0.009514 0.037338 0.035082 0.030634 0.015791 0.062562 0.016031 0.015628 0.031473 0.028240 0.018304 0.182509 0.029317 0.019271 0.023215 0.086911 0.039363 0.015769 0.008511 0.086911 0.041089 0.000197 0.018847 0.086911 0.040909 0.157380 +0.357240 +0.032057 0.038420 0.032766 0.035391 0.017899 0.054556 0.011198 0.036018 0.034316 0.029382 0.014526 0.023763 0.015705 0.015546 0.036026 0.029005 0.016862 0.025678 0.028583 0.020443 0.019251 0.063422 0.038823 0.015221 0.004952 0.063422 0.041653 0.001025 0.018811 0.110401 0.037989 0.133891 +0 +0.030088 0.037803 0.028352 0.029614 0.015017 0.338794 0.010581 0.035896 0.030591 0.028270 0.015965 0.045025 0.016045 0.015875 0.033104 0.036385 0.018450 0.083074 0.029517 0.020147 0.021490 0.180870 0.039369 0.018480 0.007894 0.086911 0.038989 0.000206 0.020918 0.157380 0.039655 0.204360 +0.489342 +0.031185 0.038581 0.029019 0.028498 0.017313 0.163344 0.011060 0.035321 0.029411 0.044212 0.014395 0.031265 0.015788 0.016140 0.029751 0.031522 0.017744 0.568401 0.029065 0.019434 0.021084 0.110401 0.041655 0.014713 0.005351 0.086911 0.039181 0.001903 0.020295 0.086911 0.037774 0.133891 +0.874788 +0.030487 0.033575 0.030424 0.030349 0.016982 0.095637 0.009601 0.035675 0.029544 0.028725 0.014798 0.066597 0.015699 0.016088 0.028650 0.030789 0.016322 0.049406 0.028554 0.020561 0.020011 0.110401 0.041901 0.017262 0.012711 0.086911 0.042093 0.000901 0.020889 0.063422 0.038518 0.133891 +0.156196 +0.032766 0.034398 0.028679 0.033900 0.017886 0.036160 0.009973 0.036709 0.028372 0.028493 0.018228 0.115808 0.015405 0.015739 0.029078 0.034218 0.017057 0.038614 0.030646 0.019039 0.021290 0.063422 0.039352 0.016770 0.013391 0.110401 0.040512 0.001848 0.019420 0.063422 0.041996 0.157380 +0.087277 +0.031354 0.037084 0.028820 0.029741 0.017985 0.073609 0.010984 0.036595 0.029373 0.030913 0.017392 0.023226 0.015699 0.016201 0.033907 0.030988 0.015544 0.067074 0.030311 0.020772 0.021914 0.086911 0.039514 0.011946 0.011962 0.110401 0.041461 0.000636 0.020444 0.086911 0.041410 0.133891 +0.100072 +0.028766 0.032911 0.030746 0.028860 0.017190 0.028762 0.010880 0.036988 0.030167 0.028359 0.018187 0.024205 0.015198 0.015983 0.028432 0.032819 0.018097 0.076860 0.028099 0.018947 0.020273 0.063422 0.042246 0.012561 0.007008 0.133891 0.041382 0.000074 0.019307 0.086911 0.037713 0.157380 +0.028040 +0.029703 0.037922 0.029239 0.029250 0.015480 0.049468 0.010181 0.036805 0.033829 0.032439 0.018151 0.017893 0.015888 0.015795 0.028385 0.033217 0.016156 0.018529 0.026685 0.018853 0.019620 0.110401 0.042215 0.016750 0.013160 0.110401 0.038468 0.001950 0.019294 0.086911 0.038457 0.133891 +0 +0.032087 0.033810 0.028384 0.030408 0.017927 0.152715 0.011718 0.036273 0.034437 0.029589 0.016182 0.093358 0.015606 0.015673 0.028716 0.028953 0.016089 0.232110 0.027406 0.020373 0.022307 0.086911 0.041807 0.012570 0.013482 0.110401 0.040607 0.000203 0.018854 0.086911 0.038070 0.204360 +0.553491 +0.029404 0.034375 0.029949 0.028645 0.018388 0.066141 0.010034 0.036586 0.029276 0.029176 0.017770 0.123693 0.015551 0.016392 0.029603 0.030603 0.017503 0.229748 0.029549 0.019516 0.021047 0.157380 0.041742 0.016481 0.012510 0.086911 0.038731 0.001510 0.018882 0.133891 0.038377 0.180870 +0.529114 +0.028978 0.039553 0.032991 0.030578 0.017855 0.028248 0.010224 0.037094 0.029158 0.033455 0.017840 0.024583 0.015324 0.016270 0.030933 0.029929 0.014701 0.118607 0.027229 0.019667 0.018936 0.063422 0.038518 0.015922 0.004860 0.063422 0.042183 0.000790 0.019307 0.063422 0.040522 0.180870 +0.091527 +0.031466 0.038663 0.029807 0.032210 0.015905 0.048570 0.009670 0.037221 0.032883 0.028841 0.018082 0.064743 0.015199 0.015841 0.031766 0.030278 0.014668 0.129139 0.028411 0.019588 0.021281 0.180870 0.039998 0.013485 0.007223 0.110401 0.041213 0.000438 0.019167 0.157380 0.042278 0.204360 +0.172772 +0.031982 0.034263 0.029485 0.028912 0.016102 0.140572 0.009884 0.036190 0.031079 0.030784 0.018006 0.021051 0.016032 0.015792 0.028408 0.028405 0.015147 0.103687 0.026343 0.020779 0.020273 0.133891 0.040524 0.016066 0.008261 0.110401 0.039179 0.001185 0.020486 0.086911 0.040638 0.180870 +0.325571 +0.029434 0.033644 0.029540 0.028796 0.017591 0.104883 0.009859 0.037011 0.028636 0.031808 0.014994 0.017413 0.015868 0.015943 0.029633 0.030412 0.016781 0.091814 0.025770 0.021097 0.022915 0.063422 0.039873 0.017722 0.010396 0.110401 0.038920 0.000690 0.020871 0.063422 0.038259 0.133891 +0.259300 +0.032295 0.037318 0.028681 0.029842 0.016153 0.181128 0.010949 0.037510 0.028198 0.031194 0.014642 0.045267 0.015511 0.016298 0.036088 0.030001 0.017155 0.047834 0.028025 0.020053 0.018853 0.086911 0.040746 0.017512 0.007075 0.063422 0.038364 0.001925 0.019798 0.110401 0.038860 0.133891 +0.373811 +0.032283 0.034271 0.028694 0.031070 0.014606 0.074308 0.009583 0.036267 0.032187 0.028453 0.017344 0.024261 0.015056 0.016092 0.029452 0.030626 0.015214 0.051556 0.028822 0.019252 0.023206 0.110401 0.040325 0.018018 0.008845 0.133891 0.039009 0.000199 0.020665 0.133891 0.039628 0.157380 +0.111134 +0.032372 0.035980 0.028598 0.031650 0.015523 0.108511 0.011613 0.035957 0.029580 0.030587 0.014416 0.020473 0.016292 0.015593 0.030647 0.031579 0.016899 0.039619 0.025709 0.020662 0.020713 0.063422 0.039781 0.014514 0.011609 0.133891 0.041835 0.001150 0.020584 0.063422 0.038801 0.157380 +0.119094 +0.029096 0.036305 0.030489 0.037405 0.015091 0.050744 0.011204 0.035278 0.029907 0.028796 0.018047 0.120399 0.016248 0.016007 0.033156 0.028757 0.018725 0.073863 0.029844 0.019138 0.021189 0.157380 0.042016 0.018629 0.005148 0.086911 0.040240 0.001663 0.020647 0.180870 0.038758 0.204360 +0.187292 +0.029737 0.037498 0.028674 0.029282 0.014675 0.021628 0.010313 0.036635 0.032195 0.028365 0.015226 0.133660 0.016045 0.016144 0.029879 0.030031 0.015890 0.117924 0.027931 0.021124 0.019070 0.133891 0.038178 0.015976 0.013702 0.086911 0.038285 0.001322 0.020595 0.063422 0.040145 0.180870 +0.198103 +0.030275 0.039387 0.029161 0.030484 0.015431 0.079884 0.011309 0.036094 0.028822 0.028399 0.015251 0.016555 0.015610 0.015953 0.034210 0.029563 0.015596 0.023783 0.030348 0.019199 0.019938 0.110401 0.040508 0.012376 0.008776 0.086911 0.041968 0.001697 0.021026 0.110401 0.038902 0.157380 +0.011364 +0.029016 0.039918 0.028463 0.028425 0.016416 0.074204 0.009855 0.036521 0.029955 0.029255 0.015100 0.023553 0.016301 0.015837 0.028782 0.028600 0.017815 0.222086 0.027435 0.020567 0.022617 0.133891 0.040542 0.018479 0.005607 0.063422 0.039135 0.002031 0.020046 0.133891 0.038316 0.157380 +0.316613 +0.031358 0.034507 0.029799 0.028274 0.018784 0.076189 0.010611 0.036903 0.028224 0.028243 0.017027 0.167402 0.015616 0.015563 0.034055 0.030163 0.017337 0.098270 0.028929 0.019221 0.022066 0.086911 0.038737 0.013960 0.007580 0.086911 0.039277 0.001337 0.020987 0.063422 0.041198 0.157380 +0.382675 +0.031600 0.034948 0.030944 0.032473 0.014862 0.087904 0.010877 0.037215 0.029748 0.032250 0.016304 0.100449 0.015082 0.016430 0.029483 0.029573 0.015619 0.016446 0.027249 0.019385 0.019742 0.110401 0.038461 0.014914 0.005116 0.063422 0.039168 0.002281 0.019873 0.110401 0.038330 0.157380 +0.199322 +0.030458 0.036653 0.030477 0.033178 0.018146 0.072440 0.011398 0.036338 0.028569 0.030361 0.018733 0.072194 0.016039 0.016143 0.030437 0.031154 0.017765 0.180710 0.027967 0.019067 0.021372 0.063422 0.041777 0.016811 0.009868 0.086911 0.040775 0.001051 0.020503 0.110401 0.039947 0.157380 +0.319708 +0.030656 0.039097 0.031107 0.028454 0.018521 0.313230 0.011385 0.037341 0.029049 0.030970 0.018040 0.043866 0.016096 0.016022 0.030493 0.029375 0.017984 0.155429 0.028399 0.018974 0.020077 0.086911 0.040041 0.016959 0.009567 0.110401 0.038698 0.002078 0.019177 0.086911 0.041765 0.133891 +0.650025 +0.029237 0.039840 0.029680 0.029035 0.018667 0.081158 0.010473 0.036429 0.030371 0.030578 0.017879 0.087832 0.016373 0.016333 0.029824 0.029817 0.014388 0.053057 0.028523 0.020957 0.020119 0.110401 0.040543 0.013734 0.006775 0.180870 0.039797 0.000582 0.019438 0.133891 0.039351 0.204360 +0.226556 +0.029902 0.038936 0.033869 0.030016 0.018398 0.082220 0.011130 0.035388 0.028284 0.028439 0.017436 0.018235 0.015846 0.015870 0.030564 0.029049 0.016239 0.061706 0.026221 0.020448 0.020828 0.110401 0.041086 0.016575 0.004888 0.110401 0.038301 0.000436 0.020020 0.110401 0.037708 0.157380 +0.147725 +0.031403 0.037348 0.036069 0.031566 0.016939 0.181198 0.009628 0.035468 0.030143 0.028701 0.016273 0.145602 0.015832 0.016081 0.029667 0.030402 0.017377 0.070619 0.028220 0.019482 0.023049 0.180870 0.039852 0.017774 0.006616 0.180870 0.038838 0.002113 0.020874 0.133891 0.040882 0.204360 +0.473910 +0.032360 0.037001 0.030523 0.030760 0.014124 0.027926 0.011627 0.035597 0.028333 0.029242 0.017993 0.150815 0.016190 0.016070 0.029756 0.028902 0.014447 0.203697 0.027899 0.019071 0.021410 0.063422 0.040961 0.015541 0.010910 0.086911 0.038879 0.001827 0.019701 0.086911 0.042011 0.157380 +0.485569 +0.032412 0.037740 0.031702 0.037355 0.015113 0.030246 0.010451 0.037129 0.029055 0.028230 0.017388 0.137921 0.015380 0.015926 0.028626 0.030330 0.015192 0.332317 0.027009 0.020923 0.020053 0.157380 0.041589 0.018363 0.006758 0.086911 0.041048 0.000612 0.020014 0.063422 0.040334 0.180870 +0.656233 +0.032583 0.032888 0.039591 0.030481 0.018551 0.122062 0.009804 0.037200 0.030713 0.030705 0.016016 0.029535 0.016151 0.015963 0.030931 0.028249 0.018131 0.098684 0.028539 0.018829 0.020631 0.133891 0.041523 0.017074 0.012690 0.063422 0.038717 0.002326 0.020186 0.133891 0.041263 0.157380 +0.167049 +0.029167 0.033145 0.028337 0.030520 0.014377 0.216564 0.011679 0.036245 0.028218 0.028651 0.014359 0.195535 0.015852 0.016435 0.029768 0.030374 0.017032 0.032342 0.028711 0.018925 0.020943 0.086911 0.041183 0.015359 0.013685 0.086911 0.041818 0.000912 0.020036 0.110401 0.042248 0.133891 +0.488718 +0.031257 0.039866 0.036145 0.029346 0.017491 0.203070 0.011517 0.035833 0.029885 0.029556 0.014458 0.084005 0.016333 0.015649 0.028801 0.029981 0.018177 0.087281 0.026862 0.019145 0.021988 0.110401 0.039361 0.013045 0.004948 0.086911 0.038005 0.000062 0.020412 0.133891 0.039817 0.204360 +0.453817 +0.031225 0.034669 0.029483 0.030418 0.016424 0.070452 0.009478 0.036612 0.028711 0.030420 0.015273 0.022717 0.016157 0.016103 0.028211 0.031251 0.014308 0.098386 0.028995 0.019318 0.019899 0.063422 0.040850 0.014931 0.006178 0.110401 0.042150 0.001759 0.020654 0.110401 0.041541 0.133891 +0.170891 +0.030295 0.034529 0.028398 0.030134 0.017862 0.033757 0.010169 0.036341 0.029516 0.028383 0.014246 0.135371 0.015554 0.016358 0.030876 0.030623 0.014158 0.046902 0.030183 0.019161 0.023063 0.157380 0.037882 0.014987 0.009738 0.063422 0.038871 0.000477 0.018853 0.063422 0.038287 0.180870 +0.149409 +0.029022 0.039282 0.029496 0.030333 0.015054 0.112948 0.011401 0.035433 0.034890 0.034980 0.015254 0.121571 0.015073 0.015671 0.028543 0.029093 0.018688 0.074496 0.028889 0.020261 0.019546 0.063422 0.040472 0.014685 0.008596 0.086911 0.040428 0.001361 0.019401 0.110401 0.041384 0.133891 +0.314825 +0.032452 0.035220 0.032382 0.030175 0.017471 0.053538 0.011122 0.036244 0.030756 0.028520 0.015882 0.177009 0.016120 0.015912 0.032007 0.028451 0.016348 0.070124 0.028268 0.019395 0.021195 0.063422 0.037878 0.018724 0.011343 0.110401 0.041557 0.001026 0.020204 0.157380 0.037726 0.204360 +0.279565 +0.030576 0.033829 0.031269 0.028933 0.017330 0.061562 0.009507 0.036395 0.030204 0.030633 0.018722 0.019068 0.015532 0.016126 0.028408 0.029220 0.015205 0.116847 0.027581 0.019593 0.021747 0.063422 0.038461 0.014051 0.010208 0.110401 0.037697 0.001898 0.018993 0.063422 0.040603 0.133891 +0.198872 +0.028310 0.037502 0.031419 0.028249 0.014609 0.117987 0.010665 0.036443 0.036210 0.032170 0.017269 0.020394 0.016385 0.015916 0.029290 0.032789 0.015573 0.022843 0.029407 0.020391 0.021480 0.133891 0.038118 0.012201 0.009168 0.110401 0.038670 0.000889 0.020860 0.063422 0.042203 0.180870 +0.038149 +0.029450 0.035838 0.029247 0.034873 0.014312 0.105461 0.009570 0.037021 0.031596 0.031708 0.016049 0.097062 0.015492 0.015719 0.031454 0.029477 0.017948 0.046630 0.028349 0.019766 0.022849 0.180870 0.037848 0.018591 0.008938 0.133891 0.040234 0.001159 0.019836 0.157380 0.038213 0.204360 +0.208545 +0.028603 0.039003 0.028732 0.029774 0.015963 0.109125 0.010950 0.036844 0.029120 0.029203 0.014624 0.115180 0.015495 0.015541 0.029370 0.042055 0.016335 0.168978 0.027317 0.018839 0.021171 0.110401 0.039661 0.015896 0.008483 0.110401 0.038104 0.000843 0.020265 0.086911 0.042208 0.133891 +0.480403 +0.028222 0.039703 0.028211 0.033380 0.014864 0.125567 0.009924 0.036460 0.035836 0.028665 0.018425 0.370757 0.016355 0.016088 0.030423 0.032678 0.014700 0.199983 0.026670 0.020565 0.022541 0.086911 0.041237 0.017007 0.012107 0.110401 0.040297 0.001785 0.019823 0.110401 0.039792 0.204360 +0.853380 +0.032069 0.038044 0.028334 0.029866 0.017366 0.120411 0.009502 0.035996 0.034722 0.031867 0.017060 0.157440 0.015616 0.016405 0.033019 0.035127 0.014791 0.017068 0.028235 0.020740 0.021507 0.110401 0.039047 0.011886 0.010214 0.086911 0.040852 0.001746 0.020174 0.063422 0.042127 0.133891 +0.299047 +0.029390 0.034414 0.028889 0.029020 0.014395 0.050961 0.011434 0.036426 0.030248 0.030243 0.014509 0.073603 0.015635 0.016108 0.031609 0.030199 0.014171 0.106158 0.025074 0.019743 0.022051 0.063422 0.039441 0.013428 0.009942 0.063422 0.040560 0.000225 0.020363 0.086911 0.038555 0.157380 +0.234186 +0.031855 0.035200 0.037667 0.029026 0.014245 0.022194 0.010685 0.035829 0.031083 0.032818 0.015833 0.079929 0.015984 0.015952 0.030018 0.030308 0.016559 0.041461 0.027419 0.020865 0.023283 0.086911 0.038491 0.016356 0.009656 0.063422 0.039671 0.001361 0.019918 0.157380 0.039148 0.180870 +0.045760 +0.032131 0.036772 0.029690 0.029384 0.014462 0.055785 0.011499 0.036805 0.029295 0.028488 0.014504 0.121519 0.015535 0.015928 0.033492 0.032232 0.016897 0.019956 0.027534 0.021119 0.019653 0.110401 0.042056 0.013125 0.008548 0.063422 0.037701 0.000261 0.020386 0.063422 0.038849 0.133891 +0.127376 +0.031192 0.037839 0.030052 0.034463 0.017740 0.115727 0.010647 0.037079 0.031869 0.028490 0.016672 0.233485 0.016187 0.016214 0.034752 0.029208 0.015456 0.019586 0.029214 0.018878 0.019822 0.133891 0.038907 0.011912 0.008614 0.110401 0.038735 0.001304 0.018844 0.133891 0.038360 0.157380 +0.443351 +0.029213 0.038598 0.028706 0.028653 0.014184 0.038667 0.010251 0.036719 0.029149 0.028274 0.015770 0.115247 0.015892 0.015804 0.030815 0.032202 0.018420 0.037353 0.030006 0.019296 0.019759 0.133891 0.039096 0.017585 0.006170 0.110401 0.039590 0.001376 0.019561 0.133891 0.039828 0.157380 +0.163203 +0.031913 0.039630 0.029378 0.029035 0.016092 0.044194 0.010602 0.035949 0.030069 0.028671 0.017256 0.037655 0.016137 0.016116 0.031668 0.028576 0.018305 0.018185 0.026849 0.020457 0.022463 0.110401 0.038384 0.016060 0.007451 0.063422 0.039720 0.000220 0.020112 0.086911 0.039684 0.133891 +0.049823 +0.030261 0.034782 0.038273 0.029778 0.015106 0.153360 0.010879 0.035422 0.030600 0.028282 0.014486 0.043392 0.016324 0.015798 0.031958 0.032546 0.017829 0.026857 0.027271 0.019652 0.020765 0.086911 0.039684 0.012874 0.011359 0.063422 0.038498 0.000970 0.019102 0.110401 0.040153 0.180870 +0.135660 +0.032725 0.036721 0.030335 0.028440 0.018204 0.425518 0.011231 0.037080 0.029592 0.029672 0.016555 0.122214 0.015165 0.016200 0.028944 0.030046 0.017112 0.066626 0.028925 0.020070 0.019090 0.063422 0.041347 0.018491 0.009685 0.110401 0.039597 0.002290 0.020030 0.157380 0.040433 0.180870 +0.671346 +0.030939 0.034844 0.028418 0.028697 0.016170 0.118872 0.010476 0.037019 0.028529 0.032824 0.018080 0.197981 0.015500 0.016412 0.029383 0.029221 0.015054 0.186944 0.028419 0.020666 0.019339 0.180870 0.038662 0.011912 0.013621 0.157380 0.040189 0.000343 0.019668 0.133891 0.038253 0.204360 +0.632093 +0.029294 0.036606 0.031000 0.028942 0.015321 0.058519 0.009888 0.035425 0.028986 0.031019 0.016285 0.082194 0.015654 0.016126 0.029289 0.034572 0.018028 0.030206 0.026105 0.019021 0.019830 0.063422 0.037785 0.013702 0.005841 0.063422 0.040792 0.001360 0.021044 0.086911 0.039502 0.157380 +0.071385 +0.031364 0.034520 0.030809 0.032009 0.018207 0.017220 0.010234 0.035697 0.028379 0.028534 0.018395 0.263553 0.015125 0.016373 0.033371 0.031116 0.015080 0.047393 0.030211 0.018973 0.019751 0.063422 0.041299 0.015416 0.013027 0.086911 0.041452 0.001710 0.019906 0.086911 0.038198 0.157380 +0.328599 +0.032418 0.038650 0.030833 0.031097 0.016593 0.053745 0.011609 0.035339 0.028211 0.028403 0.017708 0.070711 0.015779 0.015806 0.032499 0.029133 0.015507 0.090142 0.030068 0.020678 0.018818 0.063422 0.039941 0.018587 0.011626 0.086911 0.041474 0.000965 0.020200 0.086911 0.039396 0.133891 +0.142791 +0.030380 0.036184 0.029966 0.032198 0.015913 0.019862 0.009739 0.036897 0.028797 0.030607 0.018194 0.023396 0.016344 0.015729 0.028425 0.028255 0.017161 0.124388 0.026210 0.020490 0.020810 0.086911 0.041796 0.012584 0.007946 0.110401 0.041296 0.001030 0.021131 0.133891 0.040079 0.180870 +0.040122 +0.029375 0.039675 0.028241 0.028263 0.018656 0.059971 0.009791 0.036408 0.030481 0.028568 0.016285 0.140030 0.016106 0.016004 0.028724 0.031901 0.018527 0.134662 0.026262 0.019509 0.018956 0.063422 0.040866 0.012527 0.006137 0.063422 0.038675 0.000586 0.020771 0.110401 0.038845 0.133891 +0.445357 +0.031880 0.034383 0.028927 0.028340 0.017347 0.033471 0.009837 0.037082 0.030853 0.028766 0.018242 0.063072 0.015879 0.016222 0.033159 0.028699 0.017013 0.023854 0.026348 0.020797 0.021808 0.086911 0.042060 0.015923 0.008552 0.110401 0.040388 0.000325 0.019319 0.063422 0.037829 0.133891 +0.027022 +0.031189 0.036793 0.032060 0.033546 0.016613 0.036686 0.009903 0.036330 0.030143 0.028957 0.015575 0.270217 0.015946 0.015771 0.030312 0.028716 0.018301 0.048172 0.027628 0.019549 0.022295 0.133891 0.041981 0.015535 0.005658 0.063422 0.037935 0.000564 0.019908 0.110401 0.039632 0.157380 +0.409918 +0.028367 0.039895 0.028939 0.028307 0.015817 0.277711 0.010021 0.036454 0.028940 0.031111 0.017475 0.055075 0.016218 0.016034 0.028393 0.030312 0.016808 0.041877 0.027013 0.018840 0.022041 0.086911 0.038321 0.018105 0.011543 0.063422 0.040511 0.000232 0.021023 0.133891 0.038965 0.180870 +0.419089 +0.028769 0.033901 0.029999 0.030232 0.017759 0.136003 0.009908 0.036404 0.036180 0.029703 0.018087 0.033024 0.015540 0.015656 0.028977 0.031058 0.014243 0.051975 0.028360 0.018800 0.021934 0.063422 0.041930 0.014806 0.005634 0.180870 0.039706 0.002090 0.019658 0.157380 0.037894 0.204360 +0.264060 +0.030765 0.036486 0.028872 0.029213 0.014583 0.062143 0.009825 0.037472 0.029161 0.029389 0.015288 0.063704 0.016073 0.015867 0.028643 0.028983 0.016642 0.051812 0.030415 0.020970 0.020173 0.133891 0.038096 0.014155 0.006034 0.086911 0.041402 0.000032 0.019805 0.133891 0.038098 0.204360 +0.180946 +0.028521 0.039086 0.028404 0.033299 0.018514 0.056649 0.010528 0.036604 0.030584 0.035252 0.017890 0.038244 0.016301 0.015777 0.028948 0.028214 0.014137 0.091050 0.028672 0.020967 0.021642 0.086911 0.038863 0.014581 0.010395 0.063422 0.040652 0.001765 0.019242 0.063422 0.039672 0.133891 +0.108947 +0.029771 0.034131 0.029638 0.029307 0.017900 0.074325 0.010387 0.035307 0.028230 0.028689 0.017228 0.245635 0.016325 0.016202 0.028694 0.031244 0.016963 0.022295 0.027202 0.020324 0.018819 0.063422 0.041999 0.013731 0.011070 0.086911 0.038321 0.001579 0.021021 0.086911 0.039682 0.157380 +0.345201 +0.028242 0.034732 0.036280 0.030063 0.015511 0.021688 0.009399 0.036584 0.028287 0.028830 0.016078 0.018265 0.015354 0.016148 0.028393 0.028745 0.016635 0.059907 0.027155 0.019273 0.019520 0.086911 0.039673 0.013710 0.006618 0.133891 0.038061 0.000367 0.020671 0.133891 0.041071 0.204360 +0 +0.030112 0.034850 0.032711 0.028708 0.017956 0.204655 0.009775 0.036135 0.028519 0.030574 0.016658 0.092126 0.015216 0.016066 0.032295 0.028547 0.016175 0.044177 0.030954 0.020648 0.021744 0.063422 0.041426 0.016864 0.011794 0.063422 0.037881 0.001036 0.019881 0.063422 0.037745 0.133891 +0.417875 +0.031161 0.035929 0.029708 0.035634 0.018671 0.122551 0.009568 0.035276 0.028204 0.030541 0.018621 0.081208 0.016330 0.015886 0.030379 0.029208 0.015800 0.097000 0.027661 0.018826 0.020886 0.157380 0.038869 0.015943 0.006181 0.086911 0.037841 0.000320 0.020021 0.133891 0.040961 0.180870 +0.319658 +0.031611 0.038571 0.028287 0.028548 0.016481 0.039987 0.009511 0.036849 0.028583 0.028320 0.014526 0.057702 0.015335 0.015862 0.029088 0.028568 0.015813 0.065421 0.028176 0.020628 0.018899 0.110401 0.041182 0.015420 0.007158 0.110401 0.039787 0.000869 0.020525 0.086911 0.038978 0.204360 +0.013999 +0.028394 0.033534 0.028234 0.029656 0.016361 0.060519 0.009876 0.036489 0.029612 0.029798 0.016810 0.026691 0.015538 0.015528 0.030864 0.031851 0.016334 0.179626 0.027746 0.018938 0.020895 0.086911 0.040698 0.013962 0.012407 0.110401 0.039197 0.001003 0.019937 0.110401 0.041124 0.133891 +0.365166 +0.030017 0.038367 0.029217 0.029226 0.015041 0.068221 0.009640 0.036296 0.028527 0.029988 0.018540 0.188309 0.015802 0.015896 0.028976 0.036915 0.016483 0.054559 0.028115 0.019805 0.021563 0.157380 0.042104 0.012166 0.007847 0.133891 0.040764 0.001623 0.019027 0.063422 0.038936 0.204360 +0.280244 +0.028732 0.035832 0.028274 0.035045 0.016857 0.132247 0.011021 0.036958 0.028845 0.029657 0.016306 0.169100 0.015253 0.016038 0.028437 0.029114 0.015486 0.035329 0.028555 0.020955 0.020120 0.063422 0.038053 0.012144 0.008497 0.110401 0.041461 0.000948 0.020128 0.133891 0.040009 0.180870 +0.351011 +0.028784 0.036475 0.028657 0.030310 0.015078 0.062817 0.010243 0.035424 0.031416 0.029985 0.017239 0.020906 0.015822 0.016083 0.036743 0.034670 0.016326 0.245047 0.028263 0.020857 0.023060 0.063422 0.038578 0.018648 0.010363 0.063422 0.040051 0.001666 0.021000 0.086911 0.041510 0.133891 +0.318572 +0.029863 0.033201 0.028731 0.028976 0.018084 0.099361 0.009699 0.036455 0.029564 0.028777 0.014770 0.030166 0.015750 0.016406 0.029087 0.032093 0.018525 0.043055 0.029630 0.019028 0.022912 0.157380 0.039519 0.013228 0.007987 0.063422 0.039410 0.001887 0.020222 0.110401 0.041033 0.180870 +0.160538 +0.029048 0.036982 0.036121 0.028740 0.017901 0.050060 0.009854 0.037138 0.028677 0.028403 0.014797 0.086342 0.015319 0.016375 0.029641 0.028841 0.015239 0.068470 0.029527 0.019471 0.021323 0.180870 0.038458 0.014825 0.008091 0.110401 0.041420 0.000606 0.020370 0.063422 0.038737 0.204360 +0.144337 +0.029343 0.035027 0.029624 0.028837 0.018169 0.016525 0.011325 0.036262 0.031715 0.030430 0.016399 0.092447 0.016357 0.015658 0.028396 0.029781 0.014196 0.016915 0.028282 0.019858 0.020374 0.086911 0.038606 0.012469 0.013659 0.063422 0.037621 0.001382 0.020889 0.086911 0.038139 0.133891 +0.038719 +0.032561 0.033754 0.029121 0.030176 0.016759 0.211512 0.011490 0.036042 0.030131 0.031958 0.018684 0.035486 0.016082 0.015543 0.029464 0.029032 0.015623 0.071015 0.028502 0.018834 0.021278 0.110401 0.038307 0.014149 0.006738 0.086911 0.039357 0.002089 0.018829 0.110401 0.039311 0.180870 +0.426228 +0.029695 0.038580 0.029212 0.031226 0.016714 0.067924 0.009794 0.036645 0.028202 0.033379 0.015177 0.138937 0.015432 0.016393 0.029222 0.029560 0.015474 0.117152 0.029173 0.019847 0.022143 0.110401 0.041351 0.013733 0.007126 0.086911 0.039874 0.000568 0.020880 0.063422 0.040034 0.180870 +0.289257 +0.028331 0.035760 0.035159 0.030270 0.018196 0.035886 0.011408 0.036459 0.031033 0.029420 0.015366 0.047419 0.016301 0.015513 0.030067 0.031702 0.014100 0.040961 0.029452 0.020936 0.020750 0.110401 0.038377 0.013350 0.009812 0.133891 0.039558 0.001267 0.019882 0.063422 0.040188 0.157380 +0.026001 +0.030456 0.039232 0.032439 0.031460 0.016783 0.146827 0.010467 0.036353 0.029354 0.029073 0.014845 0.239256 0.016105 0.016072 0.028451 0.030969 0.016509 0.027807 0.028407 0.021071 0.023069 0.086911 0.039126 0.013387 0.013603 0.063422 0.041502 0.000385 0.019784 0.086911 0.040810 0.133891 +0.424568 +0.030170 0.036353 0.028724 0.028421 0.015089 0.094159 0.010716 0.036389 0.029601 0.029795 0.016713 0.058656 0.016430 0.016173 0.029587 0.033252 0.017895 0.128945 0.027915 0.019567 0.022189 0.063422 0.040277 0.018639 0.012661 0.133891 0.038814 0.001605 0.020393 0.110401 0.037727 0.157380 +0.342876 +0.030348 0.036920 0.028760 0.034667 0.017231 0.061940 0.009425 0.036190 0.028821 0.030335 0.015756 0.040328 0.015125 0.015766 0.029608 0.030127 0.015697 0.047537 0.028334 0.020528 0.019687 0.157380 0.040548 0.017440 0.009985 0.133891 0.040730 0.000122 0.020729 0.180870 0.037988 0.204360 +0.053604 +0.028884 0.038014 0.029495 0.030538 0.016973 0.032860 0.011501 0.036569 0.028923 0.029567 0.017799 0.036861 0.016423 0.016248 0.029450 0.029702 0.017844 0.035925 0.027827 0.018814 0.020703 0.180870 0.039126 0.012480 0.007956 0.110401 0.038344 0.001047 0.020840 0.180870 0.040338 0.204360 +0.022387 +0.032092 0.034914 0.028689 0.028644 0.015756 0.043720 0.009459 0.036798 0.028348 0.029620 0.014615 0.048241 0.016431 0.016348 0.030072 0.029314 0.014393 0.018194 0.027659 0.020364 0.023186 0.133891 0.040144 0.013722 0.007887 0.133891 0.041085 0.001011 0.020081 0.110401 0.040163 0.157380 +0.054099 +0.031501 0.035222 0.029194 0.028350 0.015090 0.119580 0.010106 0.035341 0.031092 0.031034 0.017246 0.092825 0.015551 0.016354 0.031590 0.034678 0.017167 0.105570 0.026115 0.019090 0.022535 0.157380 0.041545 0.017235 0.009809 0.110401 0.042083 0.002100 0.019548 0.157380 0.039079 0.180870 +0.341348 +0.028354 0.038203 0.028484 0.030434 0.018364 0.165364 0.010459 0.036622 0.029856 0.034129 0.017427 0.027377 0.015639 0.016276 0.028257 0.029280 0.018488 0.069439 0.028405 0.019136 0.019087 0.110401 0.037637 0.016883 0.006207 0.180870 0.038140 0.000461 0.019522 0.157380 0.040626 0.204360 +0.294934 +0.028895 0.037850 0.032045 0.030052 0.014195 0.038209 0.010586 0.035872 0.031678 0.030638 0.018238 0.035718 0.015547 0.015581 0.033301 0.029673 0.016237 0.044935 0.029749 0.020896 0.019320 0.086911 0.040392 0.016729 0.007744 0.180870 0.041158 0.001461 0.021008 0.063422 0.038154 0.204360 +0.001240 +0.029174 0.033922 0.031079 0.029102 0.017995 0.123772 0.011184 0.035871 0.029175 0.030719 0.015486 0.041095 0.015361 0.015931 0.034499 0.028814 0.015770 0.182095 0.029219 0.019665 0.019639 0.063422 0.039818 0.011947 0.010093 0.133891 0.040630 0.001579 0.019113 0.086911 0.041655 0.157380 +0.350036 +0.029277 0.035244 0.028763 0.028249 0.014482 0.065794 0.011068 0.036498 0.031582 0.028495 0.016676 0.230925 0.015670 0.016400 0.030480 0.029094 0.014843 0.025067 0.027196 0.020226 0.023376 0.086911 0.039746 0.013952 0.012349 0.086911 0.040895 0.002258 0.019800 0.157380 0.038265 0.204360 +0.338493 +0.030004 0.034498 0.028783 0.028876 0.018362 0.079029 0.010339 0.036641 0.032944 0.028515 0.015599 0.065305 0.016031 0.016176 0.029022 0.029610 0.017570 0.075627 0.027524 0.020312 0.021033 0.133891 0.040202 0.015957 0.012509 0.110401 0.042107 0.002110 0.021102 0.133891 0.039192 0.157380 +0.206944 +0.030510 0.036555 0.038349 0.029010 0.015562 0.155352 0.010550 0.037294 0.028554 0.030851 0.016455 0.031028 0.015474 0.016025 0.028777 0.030845 0.017824 0.052548 0.029548 0.020638 0.021570 0.110401 0.037637 0.011855 0.007765 0.110401 0.041198 0.000981 0.019937 0.133891 0.038491 0.157380 +0.367995 +0.028753 0.036910 0.028990 0.031528 0.018206 0.152347 0.011490 0.037299 0.032727 0.032031 0.014710 0.067625 0.016111 0.016133 0.033998 0.028265 0.018130 0.093681 0.027599 0.020882 0.019172 0.086911 0.040941 0.014029 0.012409 0.086911 0.040014 0.000597 0.019604 0.086911 0.038008 0.133891 +0.348598 +0.030567 0.036341 0.030139 0.029979 0.016756 0.042035 0.010362 0.037478 0.029522 0.031118 0.018595 0.071290 0.015509 0.015873 0.033643 0.033696 0.015341 0.042908 0.028585 0.020301 0.018839 0.086911 0.040863 0.017881 0.012578 0.063422 0.040658 0.001856 0.019559 0.086911 0.039516 0.133891 +0.045666 +0.030696 0.036407 0.029723 0.028625 0.014733 0.169852 0.010675 0.037580 0.031264 0.029256 0.016079 0.049276 0.015931 0.015887 0.031469 0.031591 0.017101 0.018183 0.026084 0.020489 0.022705 0.133891 0.040928 0.018254 0.008239 0.086911 0.037760 0.000294 0.020930 0.133891 0.042096 0.180870 +0.292034 +0.030407 0.038207 0.029840 0.030387 0.016558 0.165692 0.011396 0.036418 0.031765 0.032437 0.017433 0.050531 0.016136 0.016325 0.032363 0.030364 0.015968 0.053068 0.031511 0.019772 0.023001 0.133891 0.041612 0.012200 0.008347 0.063422 0.041951 0.002258 0.019303 0.110401 0.039851 0.157380 +0.201841 +0.030376 0.039381 0.036212 0.028540 0.014719 0.238180 0.011565 0.035991 0.029882 0.035634 0.017027 0.040410 0.016407 0.015794 0.028567 0.032188 0.014815 0.249277 0.025051 0.018927 0.020526 0.110401 0.039985 0.012559 0.005227 0.063422 0.041956 0.000544 0.020291 0.110401 0.042257 0.133891 +0.621726 +0.031402 0.038770 0.038027 0.030178 0.016091 0.078865 0.009538 0.035463 0.029329 0.029394 0.018397 0.036194 0.015202 0.016047 0.029034 0.028579 0.014876 0.030487 0.030075 0.021044 0.020396 0.086911 0.042100 0.014235 0.010987 0.063422 0.040426 0.001107 0.018818 0.063422 0.039454 0.180870 +0.008759 +0.029227 0.039342 0.031690 0.029217 0.017141 0.128047 0.010712 0.036882 0.031573 0.030698 0.014581 0.317678 0.015622 0.015607 0.028801 0.029136 0.016219 0.039088 0.026463 0.020660 0.021652 0.133891 0.038272 0.012089 0.013086 0.086911 0.039093 0.002111 0.020928 0.063422 0.037638 0.180870 +0.623643 +0.031603 0.036399 0.028371 0.030939 0.015916 0.339108 0.010645 0.035298 0.028445 0.033049 0.016811 0.022844 0.016094 0.016034 0.028878 0.031752 0.016974 0.017782 0.028799 0.020415 0.020625 0.086911 0.041322 0.013679 0.013909 0.086911 0.041881 0.002037 0.020160 0.086911 0.039079 0.133891 +0.544912 +0.032648 0.038030 0.030985 0.032870 0.014649 0.285992 0.010079 0.036185 0.031535 0.028887 0.015381 0.195630 0.015907 0.016054 0.032272 0.029245 0.014777 0.076691 0.029265 0.019256 0.020350 0.063422 0.037992 0.018594 0.011981 0.063422 0.038116 0.000780 0.019217 0.086911 0.039441 0.133891 +0.786926 +0.030660 0.039292 0.028715 0.031568 0.015374 0.038461 0.011377 0.036298 0.029916 0.030624 0.018011 0.020787 0.015770 0.015796 0.028199 0.029739 0.018584 0.225339 0.028963 0.019532 0.022262 0.086911 0.039213 0.016115 0.008592 0.063422 0.039784 0.001031 0.019495 0.110401 0.039338 0.180870 +0.319590 +0.028875 0.034705 0.029580 0.028597 0.015873 0.089006 0.010400 0.035950 0.035027 0.028641 0.018249 0.027336 0.016032 0.015679 0.028801 0.029444 0.015603 0.111388 0.029338 0.019964 0.022574 0.086911 0.041453 0.014269 0.012004 0.110401 0.038832 0.002145 0.019927 0.086911 0.041592 0.133891 +0.214717 +0.031528 0.037740 0.030839 0.033684 0.017217 0.207962 0.011461 0.036659 0.030463 0.033084 0.016029 0.056010 0.015700 0.015505 0.032914 0.029483 0.014596 0.038190 0.028878 0.019416 0.023284 0.133891 0.039481 0.018444 0.009964 0.180870 0.037613 0.001999 0.019602 0.180870 0.040326 0.204360 +0.448259 +0.031299 0.035609 0.032473 0.028870 0.017585 0.032326 0.010014 0.036788 0.033246 0.029072 0.017933 0.044778 0.015901 0.016250 0.028522 0.030025 0.017462 0.336126 0.030010 0.019322 0.019671 0.133891 0.042077 0.013866 0.012456 0.110401 0.040440 0.000349 0.020083 0.086911 0.042019 0.157380 +0.497574 +0.028929 0.039836 0.033946 0.029117 0.017135 0.029054 0.009866 0.035353 0.028542 0.031091 0.015004 0.146582 0.016401 0.015714 0.029304 0.028258 0.017393 0.078901 0.027348 0.019261 0.020928 0.133891 0.038526 0.014559 0.011566 0.086911 0.037700 0.000858 0.020483 0.157380 0.040529 0.180870 +0.267478 +0.029363 0.034590 0.030840 0.029487 0.018629 0.034104 0.010219 0.035240 0.028273 0.031492 0.014658 0.120038 0.016143 0.016000 0.031968 0.030889 0.016520 0.081375 0.027068 0.019058 0.019770 0.063422 0.037898 0.012085 0.006911 0.086911 0.041611 0.001666 0.019165 0.086911 0.041891 0.133891 +0.311828 +0.029086 0.037785 0.028972 0.033233 0.017367 0.030553 0.009788 0.035821 0.029743 0.029865 0.017909 0.120712 0.015873 0.015818 0.028383 0.031295 0.015531 0.026130 0.029773 0.020610 0.020168 0.157380 0.041579 0.011992 0.010833 0.133891 0.040561 0.001642 0.020696 0.110401 0.038359 0.204360 +0.020830 +0.031265 0.035871 0.037097 0.028832 0.016320 0.031390 0.011128 0.036065 0.028412 0.033509 0.014345 0.019756 0.015257 0.015574 0.028233 0.031703 0.018653 0.173379 0.030005 0.020652 0.019749 0.133891 0.038011 0.011890 0.013791 0.133891 0.039465 0.002230 0.020486 0.133891 0.041046 0.204360 +0.242327 +0.028624 0.033249 0.029566 0.030269 0.018736 0.072931 0.011692 0.037427 0.029026 0.029069 0.016607 0.056609 0.016353 0.015773 0.029625 0.029383 0.015840 0.024293 0.028240 0.019760 0.021470 0.086911 0.037893 0.013789 0.012516 0.063422 0.038678 0.000629 0.019407 0.086911 0.040888 0.133891 +0.105428 +0.031911 0.035501 0.029734 0.031734 0.016397 0.048339 0.010451 0.036212 0.031643 0.029489 0.016566 0.054465 0.015085 0.016268 0.029271 0.028508 0.018600 0.047301 0.028983 0.018980 0.022936 0.133891 0.041458 0.012667 0.011093 0.063422 0.037646 0.000028 0.019156 0.133891 0.039570 0.157380 +0.108978 +0.029140 0.035034 0.029639 0.032138 0.018309 0.061341 0.010823 0.037345 0.028249 0.029272 0.014416 0.085047 0.016364 0.015769 0.028653 0.030182 0.018702 0.037622 0.028793 0.020293 0.022396 0.133891 0.042043 0.017162 0.013619 0.063422 0.040111 0.000993 0.019116 0.063422 0.042272 0.157380 +0.124239 +0.031019 0.033431 0.029790 0.028616 0.015372 0.160850 0.011563 0.035325 0.030103 0.028907 0.017212 0.200424 0.015870 0.016043 0.030850 0.031123 0.017152 0.251369 0.029062 0.020104 0.020638 0.157380 0.039378 0.014890 0.010424 0.180870 0.039716 0.000174 0.018885 0.063422 0.041662 0.204360 +0.735242 +0.028528 0.034211 0.033812 0.028213 0.014697 0.148245 0.010421 0.037241 0.037052 0.028940 0.015058 0.294967 0.015970 0.016095 0.031339 0.029012 0.018008 0.081286 0.029001 0.020103 0.022735 0.133891 0.039994 0.012864 0.006669 0.086911 0.041580 0.000746 0.020286 0.110401 0.041156 0.204360 +0.648858 +0.030546 0.035437 0.032392 0.028477 0.015023 0.079671 0.010130 0.036631 0.028308 0.028540 0.015594 0.204568 0.015802 0.015549 0.028427 0.029021 0.014839 0.050070 0.028946 0.019505 0.022617 0.133891 0.038332 0.015676 0.011444 0.133891 0.041211 0.001628 0.020032 0.110401 0.038650 0.157380 +0.374390 +0.029318 0.036052 0.028347 0.031863 0.017301 0.053220 0.010081 0.037388 0.028494 0.032891 0.017736 0.085637 0.015238 0.015693 0.033278 0.029421 0.018329 0.047723 0.029301 0.018826 0.022519 0.133891 0.038120 0.013317 0.005970 0.157380 0.041239 0.000801 0.020161 0.133891 0.039532 0.180870 +0.115143 +0.031971 0.036673 0.028828 0.029017 0.015891 0.046170 0.011071 0.035522 0.032087 0.030588 0.016693 0.044201 0.015819 0.016009 0.032329 0.028577 0.015297 0.053040 0.028246 0.020597 0.018919 0.133891 0.038037 0.017905 0.006716 0.133891 0.040227 0.001712 0.020781 0.063422 0.041809 0.157380 +0.072012 +0.031513 0.038444 0.029643 0.028328 0.015964 0.125122 0.011021 0.037058 0.031077 0.030608 0.017489 0.082619 0.015432 0.015809 0.032411 0.031907 0.015752 0.049823 0.028325 0.019056 0.019568 0.086911 0.039209 0.015119 0.006405 0.157380 0.038565 0.002305 0.020920 0.063422 0.041153 0.180870 +0.178054 +0.028663 0.033475 0.034694 0.034170 0.018598 0.213888 0.011522 0.037498 0.029175 0.036416 0.015764 0.145638 0.015984 0.015788 0.029995 0.028790 0.017521 0.132695 0.028052 0.019696 0.020543 0.063422 0.039800 0.015605 0.005692 0.110401 0.039176 0.001689 0.020512 0.063422 0.041487 0.133891 +0.535521 +0.032777 0.035791 0.029417 0.031032 0.016761 0.111147 0.010280 0.035603 0.028781 0.028564 0.017132 0.076097 0.016081 0.015528 0.029287 0.028525 0.018017 0.154682 0.027346 0.019853 0.022881 0.086911 0.040622 0.018307 0.011865 0.133891 0.037585 0.000913 0.020354 0.086911 0.041268 0.157380 +0.413587 +0.032280 0.037246 0.028623 0.028544 0.014407 0.041541 0.009554 0.036753 0.032467 0.029026 0.016903 0.057340 0.016109 0.015639 0.028323 0.031971 0.014547 0.035066 0.026196 0.019558 0.020261 0.086911 0.038865 0.017275 0.005115 0.086911 0.038150 0.000338 0.020685 0.133891 0.040770 0.204360 +0.001909 +0.031587 0.036521 0.030583 0.029032 0.017416 0.180339 0.009901 0.037037 0.038457 0.032813 0.015200 0.038129 0.015338 0.015814 0.034118 0.033347 0.017249 0.358357 0.028894 0.021086 0.020094 0.063422 0.039735 0.012951 0.007023 0.086911 0.040066 0.001636 0.020527 0.157380 0.039128 0.180870 +0.703770 +0.029970 0.035049 0.035289 0.029966 0.016982 0.058876 0.010353 0.036244 0.032926 0.029443 0.016534 0.371356 0.016161 0.016137 0.031697 0.035837 0.014319 0.025761 0.026810 0.021123 0.020431 0.157380 0.041818 0.016341 0.005273 0.086911 0.038762 0.001414 0.020662 0.086911 0.040745 0.204360 +0.602635 +0.031510 0.036444 0.032737 0.029730 0.018270 0.040365 0.009973 0.036010 0.028518 0.029449 0.017482 0.044486 0.016388 0.015851 0.029363 0.030055 0.018486 0.019118 0.028510 0.021100 0.022366 0.133891 0.037735 0.018593 0.007302 0.110401 0.041948 0.000124 0.020942 0.063422 0.037987 0.157380 +0.018355 +0.029452 0.034161 0.031300 0.029421 0.014782 0.037578 0.009570 0.035609 0.029598 0.030374 0.015786 0.025785 0.015581 0.016029 0.028602 0.033279 0.015376 0.017941 0.027556 0.021033 0.023478 0.133891 0.040254 0.012201 0.011193 0.157380 0.038178 0.001343 0.020124 0.063422 0.040420 0.204360 +0 +0.029678 0.033726 0.028831 0.034681 0.015729 0.047403 0.011378 0.037122 0.028716 0.028584 0.015490 0.041250 0.015739 0.016259 0.028673 0.028482 0.016573 0.033919 0.027646 0.020281 0.019409 0.063422 0.040732 0.014810 0.009386 0.157380 0.040444 0.000718 0.019706 0.063422 0.040378 0.180870 +0.007030 +0.031042 0.035499 0.033236 0.030439 0.014299 0.137572 0.010247 0.035838 0.030201 0.032795 0.014195 0.030555 0.015175 0.015748 0.030924 0.028812 0.018444 0.157862 0.027103 0.020294 0.021988 0.063422 0.041366 0.018584 0.008880 0.086911 0.041186 0.002019 0.019741 0.063422 0.040776 0.133891 +0.353482 +0.029793 0.036067 0.031869 0.032433 0.016991 0.110545 0.009782 0.037425 0.028233 0.040072 0.018369 0.098619 0.015350 0.015847 0.028534 0.028766 0.017827 0.041871 0.028667 0.020929 0.019749 0.063422 0.038143 0.011821 0.008466 0.110401 0.039066 0.001752 0.019550 0.063422 0.041719 0.133891 +0.264128 +0.031988 0.037179 0.028198 0.029024 0.016840 0.020732 0.010829 0.036526 0.028999 0.028778 0.018304 0.074375 0.015732 0.016259 0.028338 0.029952 0.018502 0.052587 0.027899 0.018792 0.021027 0.086911 0.039693 0.016451 0.012135 0.110401 0.037806 0.000660 0.019190 0.063422 0.038138 0.204360 +0.003926 +0.029326 0.037925 0.030291 0.029123 0.015715 0.214360 0.011587 0.037442 0.030986 0.033359 0.018217 0.018778 0.015416 0.016165 0.028450 0.028241 0.015398 0.032471 0.028586 0.019191 0.021979 0.086911 0.037610 0.017153 0.009242 0.063422 0.038014 0.000190 0.019952 0.063422 0.037862 0.157380 +0.355986 +0.031481 0.039442 0.029985 0.031503 0.017130 0.188294 0.010280 0.037511 0.028454 0.028891 0.018224 0.017949 0.015298 0.016370 0.028701 0.028390 0.017656 0.068937 0.029161 0.019777 0.020014 0.110401 0.038273 0.017378 0.013305 0.086911 0.040643 0.001534 0.019947 0.133891 0.040491 0.204360 +0.284469 +0.030810 0.034553 0.031044 0.028729 0.016589 0.130497 0.009758 0.036185 0.030511 0.028271 0.015263 0.241953 0.015082 0.016259 0.028196 0.039907 0.016394 0.039658 0.027544 0.019483 0.019339 0.063422 0.038138 0.012243 0.013158 0.086911 0.038974 0.002148 0.019209 0.063422 0.038034 0.133891 +0.563171 +0.030560 0.038478 0.028198 0.028205 0.014741 0.035311 0.009779 0.037403 0.028511 0.029673 0.015912 0.089823 0.015681 0.016255 0.028369 0.028575 0.016660 0.214668 0.027893 0.020500 0.022403 0.110401 0.040528 0.013419 0.012129 0.180870 0.041810 0.000204 0.019406 0.180870 0.039150 0.204360 +0.394166 +0.028243 0.037379 0.031086 0.029654 0.015699 0.043575 0.010011 0.035824 0.028869 0.038592 0.014172 0.046215 0.015757 0.015781 0.031173 0.028280 0.016663 0.205436 0.026709 0.020336 0.021970 0.063422 0.040059 0.018197 0.007662 0.157380 0.040932 0.001825 0.019910 0.133891 0.038084 0.204360 +0.201127 +0.028964 0.034963 0.029853 0.028842 0.014451 0.016526 0.011535 0.037556 0.028981 0.030323 0.014198 0.088917 0.016414 0.015526 0.028604 0.030627 0.015739 0.149837 0.026377 0.020350 0.020952 0.110401 0.040027 0.012308 0.009201 0.133891 0.040824 0.000617 0.020304 0.133891 0.039881 0.180870 +0.188059 +0.028241 0.039282 0.030584 0.028442 0.016363 0.047133 0.009683 0.037039 0.030553 0.030664 0.016405 0.058323 0.015911 0.015936 0.028756 0.028942 0.015778 0.031563 0.028673 0.020222 0.023173 0.063422 0.041222 0.016898 0.011241 0.063422 0.038523 0.001191 0.020309 0.110401 0.041831 0.133891 +0.055128 +0.031287 0.035079 0.035514 0.032346 0.018777 0.076810 0.009407 0.035457 0.031683 0.028945 0.017827 0.125407 0.015793 0.015946 0.034028 0.034083 0.017723 0.037999 0.028443 0.020491 0.018983 0.063422 0.041508 0.017444 0.006841 0.110401 0.038832 0.001435 0.018961 0.110401 0.039144 0.157380 +0.184950 +0.032085 0.034623 0.029382 0.029089 0.014894 0.196059 0.011604 0.036966 0.028681 0.029367 0.018436 0.061266 0.015632 0.015549 0.029475 0.029883 0.016049 0.060904 0.029610 0.019834 0.021106 0.086911 0.039646 0.013303 0.013846 0.063422 0.038649 0.000058 0.020718 0.110401 0.037890 0.133891 +0.343208 +0.030937 0.034219 0.028507 0.038973 0.014224 0.026118 0.011162 0.037432 0.029467 0.031422 0.015001 0.089732 0.015651 0.016370 0.028635 0.028430 0.017807 0.026729 0.029764 0.020407 0.018862 0.133891 0.042230 0.013210 0.009347 0.063422 0.038092 0.000777 0.020524 0.110401 0.042110 0.157380 +0.050833 +0.032501 0.036732 0.028675 0.029293 0.017692 0.024105 0.011574 0.035794 0.032152 0.029209 0.017696 0.106514 0.015736 0.016412 0.030794 0.028622 0.017849 0.109671 0.029738 0.020419 0.022729 0.086911 0.037878 0.018220 0.008841 0.110401 0.040679 0.000428 0.020100 0.063422 0.038601 0.157380 +0.150749 +0.030587 0.034606 0.029041 0.029343 0.014680 0.081942 0.010436 0.035748 0.030498 0.028896 0.015497 0.064309 0.015543 0.015893 0.031367 0.029922 0.015552 0.064486 0.028427 0.019396 0.022972 0.110401 0.041729 0.016463 0.010155 0.133891 0.040003 0.001228 0.019231 0.086911 0.038424 0.180870 +0.173979 +0.028690 0.036284 0.028749 0.046470 0.017219 0.023601 0.010826 0.035794 0.030817 0.028493 0.016879 0.017396 0.016118 0.015683 0.029482 0.028948 0.015530 0.090140 0.027940 0.019149 0.021232 0.110401 0.040580 0.014429 0.011030 0.110401 0.038508 0.001638 0.020238 0.110401 0.039382 0.157380 +0.035598 +0.031624 0.037840 0.028433 0.029044 0.015238 0.150333 0.011452 0.036860 0.028757 0.031815 0.014187 0.062726 0.015253 0.016302 0.029472 0.031205 0.015842 0.052224 0.029399 0.020776 0.021794 0.086911 0.041182 0.015491 0.009251 0.086911 0.041402 0.001230 0.020140 0.110401 0.039483 0.157380 +0.319110 +0.031949 0.036829 0.029113 0.030896 0.016269 0.074980 0.009941 0.036366 0.032995 0.030157 0.016869 0.120968 0.015916 0.016322 0.029600 0.028691 0.017987 0.142176 0.028381 0.020929 0.022913 0.133891 0.042031 0.011785 0.012682 0.086911 0.042213 0.000342 0.019947 0.063422 0.041334 0.180870 +0.266859 +0.031164 0.034317 0.031207 0.028370 0.018090 0.020945 0.009433 0.037340 0.032348 0.030462 0.017458 0.017013 0.015376 0.015618 0.029344 0.028259 0.014456 0.350405 0.029831 0.020593 0.021813 0.063422 0.041203 0.016437 0.005087 0.086911 0.040167 0.001433 0.020517 0.063422 0.040342 0.157380 +0.468218 +0.029666 0.039111 0.034397 0.031179 0.017934 0.094194 0.010839 0.036092 0.029694 0.028265 0.015333 0.137948 0.015123 0.016302 0.034811 0.029556 0.014451 0.137635 0.031277 0.020358 0.022313 0.110401 0.040332 0.018051 0.008202 0.063422 0.041351 0.002042 0.019299 0.063422 0.038909 0.133891 +0.428301 +0.031870 0.035628 0.030431 0.033043 0.014144 0.086558 0.011047 0.035612 0.028241 0.028547 0.018232 0.043346 0.015545 0.015705 0.028285 0.028913 0.014848 0.054897 0.028165 0.020967 0.019698 0.086911 0.042035 0.014683 0.013814 0.063422 0.038169 0.000353 0.019267 0.086911 0.038462 0.133891 +0.100534 +0.028925 0.037023 0.032761 0.028342 0.014850 0.098583 0.011638 0.036818 0.034755 0.029613 0.017422 0.068519 0.015898 0.016402 0.030193 0.031641 0.017281 0.091526 0.026546 0.019147 0.021569 0.063422 0.040889 0.012700 0.007265 0.086911 0.039769 0.001500 0.019760 0.157380 0.041196 0.180870 +0.266338 +0.028423 0.038323 0.030229 0.040525 0.015376 0.153185 0.011013 0.035388 0.029701 0.029917 0.016279 0.036968 0.016403 0.015766 0.028730 0.030031 0.015853 0.020352 0.028898 0.020886 0.023166 0.063422 0.038978 0.016263 0.007941 0.110401 0.039478 0.000629 0.019285 0.086911 0.038345 0.133891 +0.382740 +0.028959 0.036223 0.029813 0.028344 0.014503 0.034367 0.009429 0.035746 0.028994 0.031367 0.014535 0.048511 0.015737 0.015534 0.029984 0.029243 0.014583 0.043390 0.028593 0.020451 0.019820 0.133891 0.037895 0.013530 0.010792 0.157380 0.041937 0.002177 0.020437 0.133891 0.038544 0.204360 +0.006182 +0.029566 0.036152 0.028488 0.028279 0.018161 0.102386 0.009888 0.035809 0.028375 0.028205 0.016845 0.038372 0.016071 0.016080 0.028683 0.033551 0.016257 0.098444 0.027400 0.020778 0.019128 0.110401 0.037990 0.014329 0.013833 0.063422 0.039954 0.000057 0.020980 0.157380 0.038073 0.204360 +0.153246 +0.028886 0.034848 0.029247 0.028642 0.017848 0.132814 0.010237 0.037380 0.028405 0.028364 0.015853 0.031299 0.016102 0.015878 0.035775 0.028970 0.016937 0.064358 0.028125 0.021047 0.022807 0.063422 0.041039 0.015654 0.006181 0.110401 0.041419 0.001586 0.021095 0.063422 0.041340 0.157380 +0.126887 +0.031553 0.036209 0.043398 0.029032 0.018710 0.043844 0.010499 0.036671 0.028915 0.032837 0.015233 0.169181 0.016217 0.015887 0.032518 0.029165 0.017832 0.023905 0.029511 0.019763 0.018918 0.086911 0.038033 0.014555 0.008482 0.133891 0.038109 0.001548 0.019463 0.110401 0.041532 0.180870 +0.218191 +0.031254 0.038605 0.030942 0.028845 0.018484 0.097831 0.009581 0.036351 0.028305 0.033594 0.017799 0.038508 0.015990 0.016148 0.028809 0.028994 0.014136 0.033709 0.027661 0.020974 0.022110 0.133891 0.038976 0.016864 0.006920 0.086911 0.040679 0.002314 0.020377 0.063422 0.038647 0.157380 +0.191255 +0.032028 0.035273 0.029220 0.031610 0.014485 0.023718 0.011226 0.037338 0.034516 0.032244 0.016150 0.066289 0.015672 0.015746 0.028454 0.028804 0.016532 0.180574 0.029301 0.020726 0.020155 0.086911 0.040286 0.014755 0.012728 0.063422 0.041546 0.001414 0.020202 0.180870 0.039579 0.204360 +0.294920 +0.032026 0.033961 0.029151 0.029035 0.016462 0.037461 0.010009 0.036186 0.029734 0.030963 0.014620 0.054348 0.015293 0.016392 0.030896 0.028941 0.017088 0.028314 0.027635 0.020788 0.021859 0.133891 0.040297 0.014593 0.007762 0.063422 0.041853 0.002034 0.019611 0.133891 0.041873 0.180870 +0.016889 +0.030970 0.037761 0.028654 0.029476 0.015720 0.036961 0.011744 0.035577 0.029933 0.030279 0.015437 0.020178 0.015739 0.016234 0.029223 0.034170 0.017512 0.032518 0.025993 0.020195 0.019153 0.110401 0.038904 0.013308 0.009771 0.157380 0.041174 0.001662 0.018866 0.110401 0.042069 0.180870 +0 +0.032355 0.037246 0.031374 0.030549 0.017101 0.020442 0.009989 0.036763 0.031675 0.028709 0.015614 0.108728 0.016009 0.015557 0.030917 0.028848 0.018623 0.140130 0.027825 0.018876 0.021552 0.110401 0.039922 0.016254 0.012314 0.110401 0.041822 0.001922 0.019483 0.110401 0.041879 0.133891 +0.338106 +0.029564 0.036352 0.028238 0.028309 0.018405 0.054574 0.010483 0.036886 0.035815 0.028850 0.015598 0.067066 0.015231 0.015548 0.029515 0.032959 0.017880 0.101326 0.028595 0.019555 0.020875 0.133891 0.039778 0.011950 0.005943 0.133891 0.038932 0.000911 0.020757 0.086911 0.042278 0.180870 +0.217429 +0.032472 0.034067 0.028407 0.028393 0.014957 0.023733 0.010729 0.035605 0.029236 0.028792 0.014979 0.055134 0.015549 0.016262 0.030428 0.028960 0.015293 0.022387 0.028090 0.020452 0.020644 0.063422 0.039056 0.015387 0.004728 0.157380 0.040643 0.001256 0.019032 0.086911 0.038046 0.204360 +0 +0.030067 0.039167 0.034731 0.028963 0.014312 0.033022 0.010889 0.035669 0.028368 0.029757 0.014718 0.031695 0.015270 0.015612 0.030536 0.029004 0.017162 0.161352 0.028340 0.019406 0.019828 0.086911 0.040397 0.013458 0.005444 0.063422 0.039287 0.001462 0.019505 0.133891 0.039954 0.157380 +0.180160 +0.030545 0.036520 0.028297 0.029976 0.017347 0.202847 0.011682 0.037450 0.028934 0.032930 0.017350 0.055351 0.015036 0.016231 0.028270 0.029538 0.014855 0.029706 0.027723 0.019188 0.021137 0.086911 0.040437 0.012311 0.013103 0.063422 0.039937 0.000496 0.019418 0.110401 0.040614 0.133891 +0.411063 +0.028357 0.037256 0.033462 0.031560 0.018508 0.075515 0.009603 0.037408 0.031553 0.029370 0.015590 0.162245 0.015194 0.015837 0.028312 0.028262 0.016600 0.041438 0.027907 0.019415 0.021597 0.063422 0.042181 0.012960 0.006341 0.157380 0.037747 0.000970 0.019985 0.133891 0.038275 0.204360 +0.293472 +0.028615 0.039012 0.028897 0.028658 0.014684 0.052508 0.010682 0.037277 0.032917 0.028719 0.017085 0.050986 0.016086 0.016115 0.029794 0.028348 0.017691 0.142020 0.028495 0.020009 0.019487 0.110401 0.038065 0.015757 0.013327 0.086911 0.040910 0.001977 0.019127 0.063422 0.040093 0.157380 +0.232666 +0.028728 0.039322 0.028954 0.031128 0.014389 0.073307 0.009982 0.035608 0.031017 0.030683 0.016862 0.028037 0.015445 0.016038 0.034850 0.028210 0.018045 0.080410 0.028216 0.020763 0.022573 0.133891 0.041612 0.011961 0.011400 0.086911 0.040230 0.002280 0.019351 0.063422 0.041996 0.180870 +0.069508 +0.030424 0.033407 0.030005 0.028271 0.014275 0.018475 0.009774 0.036123 0.032229 0.028955 0.017417 0.194858 0.015755 0.015535 0.030429 0.031731 0.015930 0.017298 0.027788 0.020001 0.023111 0.086911 0.038830 0.018310 0.005734 0.086911 0.042188 0.001024 0.019850 0.063422 0.038813 0.133891 +0.200618 +0.028791 0.035598 0.039449 0.034306 0.015553 0.156946 0.009481 0.037297 0.030840 0.028980 0.014439 0.033737 0.016196 0.016404 0.028669 0.028517 0.016759 0.051701 0.027629 0.019502 0.022573 0.086911 0.037716 0.012777 0.013393 0.110401 0.040792 0.000401 0.021037 0.133891 0.040639 0.157380 +0.334418 +0.029309 0.035281 0.028578 0.028748 0.018385 0.164210 0.011518 0.037503 0.035159 0.028525 0.018233 0.058049 0.015846 0.016293 0.028310 0.028277 0.014252 0.023445 0.027103 0.019401 0.019154 0.063422 0.039720 0.017668 0.009569 0.063422 0.040484 0.000675 0.019740 0.110401 0.038178 0.133891 +0.336339 +0.031579 0.035290 0.030478 0.031465 0.015077 0.037336 0.009679 0.036492 0.035797 0.029869 0.018220 0.091563 0.015914 0.015667 0.028462 0.030261 0.015360 0.047230 0.028581 0.020640 0.021219 0.110401 0.039589 0.015494 0.008609 0.086911 0.041505 0.002127 0.019705 0.086911 0.038463 0.157380 +0.080913 +0.028209 0.036422 0.028286 0.029827 0.017755 0.096576 0.011044 0.036141 0.028388 0.028537 0.017012 0.135340 0.015505 0.016060 0.029442 0.028300 0.017586 0.024643 0.027294 0.020173 0.023395 0.110401 0.038515 0.012126 0.012315 0.063422 0.040014 0.000667 0.020692 0.157380 0.041376 0.204360 +0.379920 +0.030691 0.033215 0.028822 0.032331 0.014352 0.116650 0.010661 0.036421 0.029438 0.028521 0.015013 0.104850 0.015748 0.015733 0.032075 0.028261 0.014927 0.077195 0.026950 0.018975 0.022103 0.110401 0.040496 0.012578 0.005477 0.063422 0.041004 0.000748 0.020273 0.086911 0.037767 0.133891 +0.299537 +0.029159 0.037575 0.030517 0.028342 0.015372 0.099986 0.009528 0.037384 0.028990 0.030420 0.015104 0.095624 0.016009 0.016288 0.028558 0.029983 0.018569 0.044945 0.030239 0.020587 0.022995 0.063422 0.041415 0.016921 0.010538 0.110401 0.041383 0.002047 0.018942 0.063422 0.038293 0.133891 +0.221664 +0.032334 0.033013 0.040337 0.030729 0.016009 0.021673 0.011583 0.037534 0.030467 0.033113 0.015990 0.127552 0.015989 0.016353 0.029214 0.031792 0.017087 0.045263 0.027757 0.019792 0.021080 0.157380 0.038137 0.015492 0.009085 0.086911 0.041418 0.001236 0.020791 0.157380 0.039781 0.180870 +0.168424 +0.029834 0.038622 0.028645 0.030382 0.015280 0.083907 0.010070 0.035813 0.031571 0.033212 0.014530 0.043208 0.015677 0.016033 0.028243 0.035942 0.014213 0.113815 0.026863 0.020969 0.021183 0.110401 0.040362 0.012109 0.012241 0.063422 0.041578 0.002266 0.020796 0.063422 0.038799 0.133891 +0.166804 +0.030219 0.036488 0.030830 0.031138 0.015315 0.112990 0.010715 0.036635 0.028324 0.030301 0.014702 0.133888 0.016101 0.015557 0.028796 0.028851 0.016559 0.088581 0.029739 0.019250 0.019394 0.110401 0.038916 0.013260 0.007250 0.086911 0.040618 0.001033 0.020441 0.063422 0.040640 0.133891 +0.317794 +0.032847 0.039790 0.030710 0.032895 0.015109 0.187875 0.009569 0.035730 0.037141 0.028643 0.014482 0.156166 0.015428 0.015966 0.030562 0.028851 0.016769 0.049006 0.030901 0.019491 0.019830 0.086911 0.041376 0.018444 0.009939 0.063422 0.040713 0.001432 0.019329 0.086911 0.039306 0.133891 +0.398527 +0.032426 0.036922 0.033623 0.028491 0.014482 0.159401 0.010739 0.036525 0.030059 0.030821 0.016174 0.334144 0.015243 0.016348 0.029335 0.028709 0.016836 0.045125 0.028508 0.018862 0.022403 0.110401 0.037913 0.015110 0.006426 0.133891 0.040044 0.002286 0.018837 0.086911 0.041903 0.157380 +0.638804 +0.030966 0.039708 0.028723 0.031479 0.018573 0.073138 0.010171 0.037548 0.028559 0.032167 0.015116 0.133188 0.015413 0.015906 0.033369 0.028261 0.017005 0.085436 0.028543 0.020183 0.022227 0.086911 0.038261 0.013876 0.013373 0.063422 0.039024 0.002318 0.018870 0.110401 0.040923 0.180870 +0.237404 +0.030755 0.038478 0.030061 0.030816 0.014820 0.023903 0.010529 0.035497 0.033958 0.029766 0.016833 0.110487 0.015611 0.016049 0.028412 0.029908 0.018556 0.031560 0.027486 0.018907 0.022576 0.086911 0.037933 0.012445 0.007087 0.110401 0.041339 0.000554 0.020975 0.133891 0.037586 0.180870 +0.119410 +0.030700 0.037187 0.028241 0.029203 0.018640 0.314383 0.010537 0.036772 0.028662 0.028657 0.014600 0.030550 0.015780 0.015740 0.028597 0.030490 0.018401 0.025703 0.028462 0.020613 0.018969 0.086911 0.040153 0.016444 0.010303 0.110401 0.041400 0.001286 0.020126 0.063422 0.040058 0.133891 +0.461044 +0.031713 0.037232 0.028417 0.030511 0.014919 0.027073 0.010620 0.036167 0.032009 0.031489 0.016185 0.063675 0.016058 0.016309 0.029964 0.032145 0.017520 0.063505 0.027346 0.019436 0.022746 0.063422 0.041656 0.017582 0.007740 0.110401 0.040480 0.000660 0.020853 0.063422 0.039572 0.133891 +0.066678 +0.030272 0.037880 0.028508 0.029159 0.017438 0.048307 0.010583 0.036180 0.029123 0.030220 0.018035 0.092225 0.015879 0.016415 0.028839 0.029155 0.014970 0.103353 0.029792 0.020206 0.018876 0.110401 0.042153 0.014848 0.013353 0.110401 0.038766 0.001991 0.020243 0.063422 0.041595 0.133891 +0.229474 +0.030953 0.039473 0.032742 0.032497 0.014680 0.043172 0.009992 0.035462 0.031825 0.033199 0.018423 0.111157 0.015785 0.016016 0.028286 0.032072 0.018115 0.049824 0.027097 0.020395 0.023278 0.157380 0.038317 0.016295 0.004760 0.086911 0.037794 0.001488 0.020937 0.133891 0.042170 0.180870 +0.206483 +0.031552 0.039487 0.035038 0.028223 0.014718 0.046409 0.009552 0.037488 0.031101 0.029363 0.014306 0.143646 0.015374 0.016010 0.028845 0.034725 0.018307 0.225155 0.028936 0.020719 0.019212 0.086911 0.039049 0.015742 0.013396 0.110401 0.040737 0.001654 0.020127 0.110401 0.038855 0.157380 +0.534204 +0.032221 0.039010 0.033218 0.031208 0.015948 0.050584 0.010760 0.035649 0.028656 0.032529 0.016154 0.022244 0.015805 0.016273 0.029478 0.030442 0.017137 0.057446 0.028611 0.019936 0.022398 0.157380 0.040108 0.018339 0.010771 0.133891 0.038958 0.001538 0.020721 0.086911 0.040097 0.204360 +0.010109 +0.030174 0.038141 0.028242 0.033049 0.016890 0.040127 0.010682 0.036053 0.029167 0.030910 0.014337 0.247350 0.016349 0.015975 0.030125 0.028278 0.016435 0.088406 0.028051 0.019124 0.019151 0.086911 0.038515 0.013310 0.006500 0.133891 0.040817 0.002324 0.019146 0.063422 0.039539 0.157380 +0.475936 +0.031937 0.038699 0.029785 0.028334 0.016071 0.250030 0.009476 0.037155 0.030546 0.028975 0.018503 0.024154 0.015922 0.015909 0.030070 0.033475 0.016494 0.049804 0.028309 0.018846 0.019414 0.180870 0.038989 0.016792 0.010740 0.110401 0.038621 0.001362 0.018893 0.133891 0.042114 0.204360 +0.416246 +0.029374 0.035518 0.030699 0.031243 0.018081 0.017001 0.010272 0.036743 0.028316 0.030233 0.016359 0.139654 0.015552 0.015977 0.030502 0.029082 0.014642 0.139512 0.027805 0.018824 0.022772 0.086911 0.038583 0.016239 0.009495 0.063422 0.038554 0.000078 0.020897 0.110401 0.040626 0.204360 +0.377307 +0.032294 0.034522 0.031829 0.030050 0.015419 0.106940 0.011072 0.037417 0.030504 0.028592 0.018716 0.028046 0.016036 0.016369 0.032356 0.034662 0.016448 0.043280 0.027727 0.020579 0.020892 0.086911 0.039533 0.017965 0.008712 0.133891 0.037606 0.001809 0.019615 0.110401 0.040144 0.157380 +0.046261 +0.032266 0.033705 0.028880 0.031546 0.014709 0.077511 0.010351 0.035316 0.030902 0.032091 0.015457 0.035918 0.015752 0.015754 0.029263 0.028291 0.015706 0.121841 0.028558 0.020674 0.019952 0.086911 0.041873 0.012600 0.011388 0.086911 0.040917 0.001210 0.020698 0.110401 0.042045 0.133891 +0.203092 +0.032126 0.037040 0.031233 0.030161 0.017638 0.023137 0.010078 0.036888 0.036984 0.035060 0.014607 0.102009 0.016074 0.015640 0.030326 0.030458 0.018607 0.164624 0.028556 0.019359 0.021528 0.063422 0.039216 0.013810 0.004940 0.086911 0.041071 0.001496 0.020210 0.063422 0.040189 0.180870 +0.294114 +0.029081 0.038282 0.029287 0.028208 0.014742 0.067271 0.011374 0.036138 0.031850 0.028547 0.014425 0.084223 0.015659 0.016057 0.028364 0.036584 0.015147 0.024255 0.026416 0.020762 0.021340 0.063422 0.038632 0.017379 0.013959 0.110401 0.040275 0.001694 0.018898 0.110401 0.039162 0.133891 +0.106904 +0.030534 0.038096 0.029087 0.028793 0.016612 0.121080 0.010262 0.036010 0.028595 0.035441 0.014199 0.170064 0.015551 0.016359 0.029636 0.032047 0.016630 0.085401 0.026510 0.019915 0.019810 0.086911 0.040096 0.017366 0.011471 0.133891 0.038096 0.000357 0.019088 0.157380 0.039599 0.204360 +0.369816 +0.028612 0.038424 0.030150 0.028401 0.015195 0.079353 0.009538 0.037414 0.030645 0.029571 0.018655 0.074288 0.015734 0.015708 0.029132 0.032378 0.014873 0.025782 0.027378 0.019617 0.020436 0.063422 0.041743 0.015362 0.005501 0.063422 0.038825 0.000327 0.020493 0.110401 0.041362 0.180870 +0.086859 +0.031799 0.038345 0.034047 0.029243 0.018391 0.076298 0.011127 0.037524 0.028224 0.028603 0.017274 0.019205 0.015658 0.016142 0.028240 0.028700 0.018721 0.157316 0.027929 0.019702 0.022853 0.110401 0.038868 0.015346 0.006073 0.157380 0.038508 0.001919 0.019078 0.157380 0.041437 0.180870 +0.291929 +0.032074 0.037710 0.029449 0.029887 0.015619 0.019495 0.011542 0.036444 0.029147 0.032050 0.015714 0.164711 0.015797 0.015646 0.028433 0.028772 0.017611 0.088286 0.029306 0.020211 0.020597 0.133891 0.039019 0.012697 0.006115 0.133891 0.038895 0.001238 0.019721 0.110401 0.038966 0.180870 +0.265576 +0.032239 0.033375 0.029467 0.029833 0.017435 0.183416 0.009634 0.036796 0.031344 0.028412 0.016159 0.360655 0.015935 0.015918 0.030250 0.031008 0.017714 0.087017 0.028064 0.021128 0.019539 0.133891 0.041787 0.018664 0.008679 0.180870 0.037938 0.000823 0.020934 0.063422 0.040279 0.204360 +0.761339 +0.029601 0.035706 0.028661 0.029939 0.015200 0.052147 0.009932 0.035443 0.029071 0.028412 0.018229 0.043712 0.016172 0.015592 0.029509 0.029169 0.018388 0.063622 0.027708 0.020742 0.022995 0.086911 0.039243 0.016644 0.006028 0.063422 0.042214 0.000877 0.020551 0.063422 0.038090 0.157380 +0.052029 +0.029121 0.037644 0.028742 0.028637 0.018326 0.062781 0.010215 0.036786 0.031785 0.030875 0.016715 0.041944 0.015913 0.016229 0.033245 0.029969 0.018045 0.051182 0.028978 0.020509 0.021938 0.063422 0.039542 0.018363 0.006570 0.063422 0.039679 0.001171 0.019871 0.133891 0.039732 0.157380 +0.057540 +0.028890 0.035677 0.031914 0.028903 0.014875 0.078814 0.010482 0.035741 0.031866 0.029030 0.014130 0.070277 0.016262 0.015614 0.031216 0.029506 0.018484 0.017315 0.028488 0.019140 0.022446 0.063422 0.038594 0.012462 0.006142 0.063422 0.039138 0.001936 0.018980 0.063422 0.041324 0.157380 +0.122436 +0.032688 0.032996 0.033693 0.029857 0.016595 0.197986 0.010647 0.035307 0.029531 0.028724 0.017498 0.035300 0.015439 0.016321 0.031091 0.029933 0.016173 0.092869 0.029684 0.019476 0.021939 0.110401 0.040554 0.016422 0.009759 0.086911 0.039439 0.000394 0.018818 0.063422 0.037980 0.180870 +0.354773 +0.032665 0.037322 0.030770 0.029983 0.016970 0.149412 0.010344 0.035985 0.028640 0.029171 0.015110 0.060378 0.015379 0.016125 0.029818 0.028232 0.016417 0.037041 0.028331 0.019528 0.020002 0.086911 0.040766 0.017818 0.006777 0.110401 0.039302 0.000482 0.019707 0.086911 0.040431 0.133891 +0.324707 +0.029607 0.036844 0.029390 0.028442 0.016967 0.087084 0.010522 0.036938 0.028408 0.028725 0.018739 0.377547 0.015793 0.016042 0.028209 0.030923 0.015643 0.067868 0.028908 0.019538 0.022966 0.086911 0.038953 0.013936 0.008333 0.086911 0.038589 0.001008 0.020063 0.063422 0.038617 0.157380 +0.719908 +0.028909 0.035847 0.032116 0.030546 0.014503 0.075521 0.011006 0.035589 0.033114 0.033800 0.016766 0.075636 0.016071 0.016122 0.029168 0.028190 0.015934 0.044369 0.026921 0.018875 0.019108 0.063422 0.037678 0.012444 0.010699 0.157380 0.041940 0.001842 0.020593 0.086911 0.039808 0.180870 +0.118737 +0.031867 0.035229 0.028901 0.029593 0.017790 0.080183 0.010585 0.037102 0.028330 0.029157 0.017708 0.019614 0.016086 0.016119 0.029999 0.028981 0.018315 0.051518 0.030108 0.019569 0.020517 0.110401 0.039198 0.012720 0.012693 0.110401 0.038475 0.001302 0.019896 0.110401 0.040356 0.133891 +0.111206 +0.029181 0.037122 0.028547 0.032327 0.016847 0.081404 0.010459 0.035324 0.029227 0.032863 0.017277 0.083877 0.016104 0.015848 0.030877 0.030249 0.015817 0.363103 0.028097 0.020350 0.019073 0.086911 0.037824 0.016490 0.008798 0.133891 0.037953 0.000048 0.019256 0.110401 0.038204 0.157380 +0.730790 +0.029851 0.034334 0.028304 0.035858 0.014482 0.036357 0.011550 0.036354 0.029552 0.033115 0.017179 0.088412 0.016288 0.016018 0.032576 0.031613 0.017811 0.146530 0.029207 0.019372 0.021850 0.157380 0.040879 0.014269 0.006942 0.110401 0.039431 0.001647 0.020718 0.063422 0.040206 0.180870 +0.306648 +0.029818 0.036182 0.030219 0.029666 0.018325 0.081163 0.011091 0.035848 0.029193 0.029268 0.016944 0.133389 0.015145 0.016429 0.030681 0.031222 0.016821 0.228304 0.027367 0.020973 0.020697 0.157380 0.040485 0.013232 0.010596 0.110401 0.038941 0.001059 0.020204 0.133891 0.039540 0.204360 +0.590391 +0.028912 0.036882 0.029248 0.029904 0.016885 0.076236 0.010876 0.035468 0.040030 0.028942 0.018194 0.034160 0.016073 0.015553 0.028327 0.028638 0.014416 0.273033 0.026541 0.020223 0.021892 0.086911 0.038973 0.014138 0.006211 0.086911 0.040464 0.000395 0.018829 0.063422 0.039063 0.133891 +0.479012 +0.029965 0.036576 0.028434 0.028942 0.014245 0.032410 0.010271 0.036796 0.031197 0.028895 0.015972 0.029008 0.015442 0.015892 0.028593 0.032175 0.017258 0.121982 0.029235 0.019395 0.022634 0.063422 0.037619 0.018104 0.012386 0.157380 0.039784 0.001535 0.020214 0.180870 0.040793 0.204360 +0.092444 +0.029548 0.035229 0.028255 0.030436 0.018666 0.248987 0.009550 0.036168 0.028218 0.030531 0.018500 0.189821 0.015122 0.015529 0.030121 0.028571 0.016407 0.085822 0.028498 0.018884 0.022272 0.110401 0.042096 0.016060 0.013040 0.133891 0.041236 0.000838 0.019220 0.086911 0.041662 0.157380 +0.635417 +0.030241 0.034950 0.032066 0.029886 0.015793 0.041451 0.011699 0.035498 0.029428 0.031480 0.016397 0.032192 0.016288 0.016088 0.031018 0.030683 0.016534 0.039610 0.027028 0.019760 0.021010 0.110401 0.039609 0.017478 0.004918 0.086911 0.037615 0.000798 0.019813 0.063422 0.038749 0.133891 +0.057066 +0.031409 0.033309 0.030189 0.036044 0.015592 0.026799 0.009651 0.035256 0.031678 0.031901 0.016892 0.100830 0.016154 0.015752 0.032229 0.031851 0.016344 0.020922 0.029947 0.020628 0.023336 0.157380 0.037856 0.017032 0.010784 0.133891 0.038263 0.001298 0.018952 0.133891 0.040109 0.180870 +0.066951 +0.030373 0.034965 0.029556 0.030946 0.017351 0.055739 0.010506 0.037274 0.028680 0.028278 0.016293 0.018319 0.015981 0.015762 0.030930 0.037414 0.015729 0.040899 0.028957 0.019950 0.022275 0.086911 0.040433 0.016838 0.013695 0.157380 0.038457 0.000819 0.020239 0.133891 0.041900 0.180870 +0.008685 +0.031563 0.036236 0.028373 0.029066 0.015078 0.035423 0.010048 0.036810 0.030548 0.037110 0.015770 0.042149 0.015907 0.015534 0.034368 0.031989 0.014641 0.016780 0.025859 0.019873 0.020200 0.063422 0.040593 0.018575 0.010366 0.110401 0.039949 0.000964 0.020636 0.086911 0.038725 0.133891 +0.006854 +0.032863 0.037095 0.036370 0.030352 0.015260 0.026785 0.011448 0.036583 0.032743 0.029715 0.014897 0.039541 0.015646 0.015932 0.028644 0.029868 0.018705 0.106121 0.028330 0.020740 0.021618 0.063422 0.039412 0.012274 0.008654 0.063422 0.040610 0.000766 0.019416 0.133891 0.038913 0.180870 +0.050696 +0.030286 0.037581 0.033131 0.029122 0.015997 0.087364 0.011099 0.036553 0.029818 0.030402 0.017978 0.158454 0.015484 0.015874 0.029120 0.032712 0.015805 0.072997 0.027414 0.020954 0.021282 0.063422 0.038543 0.013665 0.013834 0.110401 0.041976 0.001770 0.019555 0.063422 0.037628 0.133891 +0.349967 +0.030786 0.036867 0.029576 0.032535 0.018252 0.034979 0.011247 0.035710 0.029766 0.028330 0.015728 0.119034 0.016433 0.015919 0.028826 0.028954 0.014916 0.077195 0.028639 0.019789 0.020074 0.110401 0.040415 0.012552 0.012371 0.086911 0.038119 0.001971 0.019190 0.086911 0.041049 0.180870 +0.137146 +0.031589 0.033590 0.031747 0.031042 0.018306 0.175888 0.011439 0.037195 0.029523 0.029179 0.014496 0.055978 0.016148 0.016374 0.031903 0.028634 0.014806 0.249359 0.028477 0.019508 0.022551 0.110401 0.038231 0.017667 0.010115 0.157380 0.038804 0.000026 0.020396 0.110401 0.038910 0.180870 +0.592949 +0.029135 0.036985 0.028906 0.028704 0.014374 0.152536 0.009794 0.036482 0.029168 0.028592 0.018646 0.270845 0.015961 0.015777 0.029236 0.029874 0.016094 0.068507 0.026573 0.020728 0.021131 0.086911 0.038494 0.013121 0.012241 0.110401 0.040479 0.001927 0.020945 0.086911 0.039001 0.133891 +0.646955 +0.029566 0.038511 0.031461 0.029996 0.016571 0.168700 0.011335 0.036602 0.028318 0.030084 0.016031 0.096607 0.016325 0.015740 0.029600 0.033764 0.015067 0.118938 0.029790 0.021114 0.020542 0.063422 0.039561 0.017700 0.008919 0.086911 0.038841 0.000083 0.019929 0.063422 0.040140 0.133891 +0.471183 +0.032773 0.039526 0.029213 0.029312 0.014642 0.062891 0.010200 0.035667 0.030818 0.029332 0.018623 0.052489 0.016033 0.016044 0.030692 0.033574 0.017887 0.166479 0.027684 0.018934 0.023278 0.110401 0.041022 0.015407 0.008476 0.110401 0.038405 0.000326 0.019204 0.086911 0.039280 0.133891 +0.312633 +0.031333 0.034315 0.028626 0.029141 0.018095 0.028614 0.010442 0.035727 0.029340 0.029355 0.015621 0.184991 0.015669 0.016249 0.032926 0.030180 0.017223 0.085845 0.029683 0.019255 0.022055 0.110401 0.037902 0.016390 0.010693 0.086911 0.039778 0.000776 0.019048 0.063422 0.039295 0.157380 +0.280838 +0.029091 0.034681 0.029064 0.028215 0.014725 0.085059 0.010380 0.035574 0.028925 0.029603 0.014723 0.170013 0.015659 0.015598 0.029421 0.034797 0.015138 0.174247 0.029870 0.019975 0.021148 0.180870 0.038259 0.012892 0.010895 0.110401 0.040970 0.002281 0.019058 0.180870 0.041051 0.204360 +0.499940 +0.028218 0.039870 0.029650 0.029479 0.015443 0.049879 0.010538 0.035870 0.032205 0.029560 0.015275 0.080725 0.015936 0.016379 0.029707 0.030933 0.015390 0.291738 0.027307 0.018860 0.020315 0.157380 0.038510 0.016169 0.011563 0.157380 0.039659 0.002287 0.019547 0.063422 0.039359 0.204360 +0.566355 +0.028333 0.039884 0.032102 0.032239 0.017383 0.075341 0.010127 0.035933 0.029307 0.037213 0.017567 0.085180 0.016375 0.016225 0.033354 0.028541 0.018754 0.136793 0.026011 0.020828 0.022595 0.110401 0.039210 0.015364 0.005757 0.133891 0.038830 0.000769 0.019292 0.063422 0.041368 0.157380 +0.347893 +0.029731 0.036581 0.029232 0.031281 0.016562 0.030405 0.010872 0.035496 0.028198 0.036348 0.018755 0.075824 0.015494 0.016031 0.030850 0.030101 0.015332 0.283591 0.028520 0.020576 0.021874 0.110401 0.041316 0.017414 0.010040 0.063422 0.039232 0.002187 0.019954 0.086911 0.040083 0.133891 +0.520983 +0.032803 0.033806 0.029852 0.029158 0.015746 0.061473 0.010198 0.036816 0.030648 0.030311 0.016874 0.086757 0.015638 0.016036 0.029450 0.030355 0.016549 0.059914 0.027332 0.019328 0.023050 0.110401 0.039724 0.014554 0.009119 0.063422 0.039495 0.001857 0.020467 0.133891 0.039186 0.157380 +0.227654 +0.032762 0.036227 0.029615 0.028599 0.016239 0.018735 0.011642 0.035873 0.028341 0.032585 0.016570 0.147588 0.015594 0.015654 0.028394 0.029885 0.014311 0.034332 0.030310 0.019341 0.023080 0.110401 0.039966 0.018599 0.009351 0.180870 0.038710 0.001286 0.020950 0.086911 0.040491 0.204360 +0.105843 +0.031989 0.036644 0.034290 0.028969 0.015953 0.040736 0.010147 0.035256 0.030238 0.028517 0.014736 0.061739 0.015121 0.015597 0.028308 0.030092 0.015561 0.114703 0.025940 0.019728 0.020555 0.086911 0.038247 0.014995 0.010751 0.110401 0.038645 0.001262 0.018886 0.063422 0.038558 0.180870 +0.223293 +0.031290 0.034016 0.030315 0.029959 0.017897 0.043791 0.010661 0.036194 0.029052 0.028534 0.015964 0.041762 0.015824 0.016124 0.029166 0.029013 0.016937 0.116545 0.027579 0.020411 0.019356 0.086911 0.038464 0.017065 0.013626 0.133891 0.041349 0.001706 0.018838 0.063422 0.041054 0.157380 +0.152031 +0.028845 0.033989 0.030751 0.030556 0.016188 0.025998 0.010156 0.037481 0.029349 0.028366 0.015168 0.049033 0.015297 0.015767 0.028240 0.028982 0.014702 0.085109 0.029009 0.019911 0.022863 0.063422 0.041635 0.015845 0.012479 0.063422 0.039227 0.001477 0.020766 0.157380 0.038489 0.204360 +0.011200 +0.032174 0.039479 0.030071 0.035000 0.016841 0.222395 0.010581 0.035408 0.028717 0.028928 0.016489 0.048464 0.015418 0.016369 0.031868 0.028974 0.014182 0.309332 0.025456 0.019747 0.023113 0.086911 0.042201 0.012001 0.006829 0.157380 0.038393 0.000056 0.020946 0.157380 0.041879 0.180870 +0.693989 +0.029253 0.034771 0.031052 0.029311 0.016480 0.188767 0.009732 0.036345 0.028569 0.032990 0.016736 0.137642 0.016185 0.015927 0.028385 0.033844 0.017520 0.154551 0.028844 0.019598 0.022433 0.063422 0.039423 0.012397 0.006379 0.063422 0.038031 0.000474 0.020561 0.086911 0.039968 0.133891 +0.548797 +0.032117 0.033453 0.034417 0.028454 0.014725 0.219056 0.009825 0.036246 0.031894 0.029694 0.015243 0.080027 0.015151 0.016345 0.028577 0.028222 0.018782 0.030178 0.028044 0.020487 0.019896 0.133891 0.040288 0.017794 0.008263 0.086911 0.038042 0.002226 0.018971 0.063422 0.040977 0.157380 +0.415600 +0.031821 0.036098 0.029921 0.029714 0.014746 0.021770 0.011627 0.035766 0.030719 0.032703 0.017968 0.080476 0.015204 0.015639 0.029032 0.029416 0.016586 0.130355 0.027075 0.019200 0.020156 0.110401 0.041231 0.013606 0.013584 0.110401 0.037920 0.001007 0.019956 0.086911 0.038457 0.180870 +0.159226 +0.030625 0.034679 0.032534 0.028840 0.014748 0.030885 0.011580 0.037527 0.033433 0.028546 0.016677 0.158290 0.015538 0.016289 0.028966 0.032997 0.016856 0.132826 0.028043 0.020829 0.019730 0.086911 0.042207 0.014699 0.012637 0.063422 0.039015 0.001794 0.020970 0.110401 0.038440 0.204360 +0.290147 +0.031091 0.034330 0.031437 0.031474 0.018277 0.178928 0.011250 0.036775 0.031509 0.028730 0.017738 0.145762 0.015051 0.015691 0.030817 0.030373 0.016269 0.019682 0.028811 0.019060 0.021098 0.063422 0.040512 0.016448 0.011903 0.063422 0.038627 0.000197 0.018874 0.110401 0.037915 0.180870 +0.416552 +0.031379 0.034463 0.028232 0.028591 0.015991 0.099728 0.010444 0.037427 0.031622 0.028721 0.015192 0.302164 0.015078 0.016364 0.029069 0.031523 0.014702 0.290751 0.028571 0.019838 0.021574 0.063422 0.038194 0.012156 0.010661 0.086911 0.041509 0.000336 0.020192 0.110401 0.039658 0.133891 +0.863756 +0.029864 0.037310 0.030256 0.029520 0.016509 0.021060 0.009700 0.036589 0.031053 0.031863 0.015730 0.038599 0.016099 0.015864 0.030636 0.028278 0.017286 0.061662 0.029739 0.020649 0.021203 0.063422 0.038705 0.017209 0.009056 0.110401 0.040813 0.002159 0.019702 0.086911 0.037609 0.157380 +0.008044 +0.029545 0.034112 0.029255 0.028664 0.014588 0.052937 0.011321 0.035343 0.030958 0.030104 0.017969 0.089142 0.015321 0.015882 0.031825 0.035763 0.014269 0.031772 0.027436 0.018983 0.023295 0.063422 0.039013 0.014713 0.013017 0.086911 0.039757 0.001277 0.019553 0.133891 0.037739 0.157380 +0.149492 +0.031544 0.035554 0.028540 0.030661 0.015538 0.081442 0.011307 0.036592 0.028867 0.028866 0.015020 0.062152 0.015787 0.015900 0.029873 0.028533 0.016410 0.080393 0.026625 0.018835 0.020454 0.133891 0.041485 0.017502 0.013263 0.086911 0.039582 0.001293 0.020392 0.110401 0.040917 0.180870 +0.115344 +0.028261 0.038972 0.029338 0.028878 0.017788 0.090775 0.011668 0.036546 0.028576 0.030753 0.015917 0.042335 0.015173 0.016048 0.031450 0.040258 0.016265 0.145952 0.028381 0.018805 0.019960 0.086911 0.038614 0.016023 0.010066 0.063422 0.038647 0.000827 0.020220 0.180870 0.041747 0.204360 +0.318034 +0.030238 0.033964 0.031355 0.028881 0.016914 0.131275 0.010473 0.035846 0.029871 0.028501 0.018396 0.099584 0.015411 0.016203 0.028667 0.029803 0.016601 0.018651 0.028218 0.019773 0.019408 0.086911 0.038434 0.014793 0.009737 0.110401 0.039120 0.000031 0.019806 0.133891 0.040083 0.204360 +0.237491 +0.031456 0.035575 0.028331 0.031488 0.014828 0.064164 0.011152 0.035334 0.029948 0.032857 0.015047 0.138643 0.016397 0.015576 0.033085 0.030568 0.015146 0.066665 0.027561 0.020976 0.022309 0.063422 0.039433 0.014958 0.010663 0.110401 0.039374 0.000697 0.021070 0.086911 0.040496 0.180870 +0.274425 +0.032603 0.035333 0.029035 0.029544 0.015276 0.052573 0.009598 0.035401 0.034247 0.028807 0.015475 0.106341 0.015355 0.016408 0.030312 0.029002 0.015079 0.097132 0.027749 0.019839 0.018999 0.063422 0.039602 0.012698 0.010661 0.110401 0.038212 0.002000 0.018874 0.110401 0.038093 0.157380 +0.251126 +0.032866 0.034863 0.028320 0.029268 0.018534 0.051544 0.010010 0.036586 0.031613 0.030299 0.014901 0.037544 0.015805 0.015947 0.029669 0.028321 0.018022 0.036421 0.029159 0.020962 0.021368 0.086911 0.039910 0.012501 0.008137 0.133891 0.038335 0.001993 0.019031 0.110401 0.041303 0.204360 +0 +0.030820 0.038817 0.028413 0.028518 0.015322 0.038037 0.010242 0.035935 0.030786 0.029213 0.017219 0.102952 0.015942 0.015601 0.029330 0.030297 0.018398 0.039108 0.028577 0.021094 0.018945 0.086911 0.041107 0.011978 0.011004 0.110401 0.040888 0.001372 0.019396 0.086911 0.040035 0.133891 +0.126614 +0.030555 0.039330 0.029394 0.032035 0.017144 0.024544 0.009470 0.036607 0.030074 0.033179 0.015290 0.099432 0.015513 0.015803 0.030239 0.028502 0.014102 0.130843 0.026593 0.020397 0.023338 0.063422 0.040059 0.014538 0.012395 0.063422 0.039763 0.000234 0.020591 0.063422 0.037853 0.133891 +0.205087 +0.029659 0.037009 0.030498 0.029513 0.014179 0.058811 0.011212 0.036509 0.029662 0.030745 0.016174 0.035520 0.016191 0.015937 0.028534 0.028873 0.014213 0.118918 0.027495 0.020222 0.021756 0.063422 0.038835 0.018571 0.013396 0.063422 0.041082 0.000077 0.018878 0.110401 0.041641 0.133891 +0.169888 +0.029880 0.035560 0.031259 0.036907 0.017676 0.076607 0.010422 0.035369 0.029765 0.028707 0.014976 0.310639 0.015578 0.016080 0.028267 0.029359 0.018173 0.030519 0.028524 0.021129 0.022278 0.086911 0.041932 0.015780 0.006229 0.157380 0.038348 0.000321 0.019130 0.063422 0.038180 0.204360 +0.547528 +0.031287 0.034965 0.032142 0.028849 0.015151 0.076693 0.010322 0.035321 0.030626 0.028603 0.015178 0.055301 0.015574 0.016175 0.031604 0.028835 0.015441 0.047938 0.028479 0.020104 0.023116 0.086911 0.042139 0.016105 0.005345 0.086911 0.042275 0.002148 0.020018 0.086911 0.041456 0.204360 +0.055125 +0.029560 0.034267 0.029871 0.031866 0.018012 0.068191 0.010476 0.036835 0.030029 0.031259 0.017730 0.093633 0.016168 0.016237 0.028927 0.029148 0.016821 0.052648 0.027284 0.020452 0.020690 0.086911 0.038091 0.012122 0.010088 0.086911 0.037872 0.000510 0.020041 0.063422 0.038243 0.133891 +0.237597 +0.032778 0.032997 0.029350 0.029245 0.014506 0.175179 0.010176 0.037425 0.032206 0.030522 0.014574 0.220120 0.015653 0.015895 0.031329 0.029600 0.015903 0.128092 0.029800 0.020615 0.023335 0.086911 0.042087 0.018404 0.006864 0.063422 0.040753 0.001616 0.020682 0.086911 0.040100 0.133891 +0.677226 +0.032833 0.035554 0.029687 0.028572 0.016984 0.055305 0.009775 0.035393 0.028838 0.034945 0.015627 0.044371 0.015114 0.015893 0.028852 0.029253 0.016105 0.122013 0.026021 0.020288 0.019463 0.063422 0.039922 0.011806 0.007267 0.086911 0.038455 0.002230 0.018834 0.110401 0.038954 0.133891 +0.216178 +0.028686 0.038035 0.030669 0.028288 0.015166 0.023560 0.010861 0.035966 0.033458 0.028683 0.016889 0.109300 0.015226 0.015932 0.028365 0.029100 0.015316 0.125277 0.028738 0.019213 0.019879 0.180870 0.040405 0.012541 0.012907 0.157380 0.041731 0.001695 0.021135 0.063422 0.039246 0.204360 +0.126654 +0.028393 0.037504 0.028435 0.034724 0.014307 0.051856 0.009735 0.037164 0.032860 0.028422 0.015636 0.079149 0.015907 0.016231 0.028237 0.029273 0.016588 0.107855 0.025338 0.020577 0.018966 0.063422 0.038090 0.012585 0.012430 0.157380 0.038128 0.002085 0.021095 0.133891 0.040839 0.204360 +0.177685 +0.032773 0.038644 0.029206 0.029603 0.016650 0.024160 0.011056 0.036776 0.029846 0.028860 0.015645 0.157815 0.015939 0.015604 0.029070 0.028454 0.017739 0.023109 0.028566 0.020602 0.021856 0.063422 0.042231 0.017557 0.007084 0.133891 0.038096 0.002048 0.020792 0.110401 0.039839 0.180870 +0.129797 +0.031795 0.038435 0.028511 0.029414 0.018275 0.053441 0.011492 0.035519 0.030521 0.029304 0.017788 0.043181 0.015138 0.015889 0.029227 0.030160 0.016278 0.224925 0.028578 0.019212 0.019576 0.180870 0.040277 0.013483 0.006670 0.180870 0.042239 0.001024 0.020287 0.180870 0.040795 0.204360 +0.336881 +0.029592 0.035635 0.031481 0.028199 0.016094 0.051112 0.009595 0.037247 0.029121 0.030666 0.015764 0.034544 0.015761 0.016198 0.028353 0.028816 0.016177 0.056271 0.028640 0.019040 0.022477 0.110401 0.037893 0.018655 0.011706 0.086911 0.040453 0.000304 0.018887 0.110401 0.040660 0.133891 +0.093197 +0.028674 0.035474 0.029553 0.029533 0.014902 0.229377 0.010049 0.037347 0.032354 0.029572 0.014443 0.024550 0.015147 0.015666 0.030189 0.029017 0.018015 0.265748 0.027260 0.020654 0.022493 0.110401 0.041745 0.018582 0.012763 0.086911 0.038994 0.002051 0.019939 0.110401 0.039540 0.133891 +0.646466 +0.029289 0.034998 0.028936 0.031331 0.015508 0.177365 0.010672 0.036347 0.030222 0.033323 0.017701 0.078382 0.015789 0.015900 0.028343 0.031634 0.015236 0.105483 0.025970 0.019961 0.021780 0.133891 0.039076 0.016385 0.006551 0.063422 0.041902 0.000309 0.020629 0.110401 0.041249 0.204360 +0.419630 +0.030125 0.037143 0.028233 0.028690 0.015232 0.152238 0.009439 0.037304 0.030253 0.029948 0.015254 0.111623 0.015778 0.015574 0.029421 0.029295 0.015715 0.066664 0.026006 0.019517 0.021758 0.086911 0.041830 0.014285 0.007261 0.157380 0.041447 0.001253 0.019538 0.157380 0.039450 0.204360 +0.334282 +0.032414 0.034707 0.028562 0.028204 0.017761 0.047938 0.010558 0.035782 0.029495 0.032528 0.017616 0.178410 0.015220 0.015868 0.028628 0.028708 0.018282 0.018300 0.030685 0.019302 0.021228 0.086911 0.039064 0.012768 0.011342 0.086911 0.039783 0.000105 0.019392 0.063422 0.040995 0.180870 +0.200299 +0.031920 0.036737 0.028693 0.030357 0.015252 0.152080 0.009552 0.037440 0.028490 0.028338 0.017947 0.127382 0.015723 0.016120 0.029411 0.031547 0.017512 0.054516 0.027649 0.019678 0.022251 0.110401 0.041084 0.013306 0.010532 0.063422 0.041564 0.001102 0.020651 0.133891 0.039934 0.157380 +0.416651 +0.031950 0.033996 0.028266 0.028338 0.015203 0.242612 0.011042 0.036199 0.029467 0.032115 0.015319 0.025678 0.015048 0.016423 0.029079 0.028558 0.014499 0.057458 0.029281 0.020039 0.019905 0.086911 0.041523 0.012247 0.009609 0.086911 0.041909 0.001299 0.019810 0.086911 0.040021 0.157380 +0.384137 +0.031710 0.034252 0.030786 0.029351 0.015272 0.023241 0.010779 0.036780 0.029470 0.029620 0.016732 0.022353 0.016205 0.016362 0.028705 0.034700 0.014292 0.051404 0.029374 0.019494 0.022723 0.086911 0.041264 0.013800 0.013991 0.086911 0.040249 0.000058 0.019571 0.110401 0.038184 0.133891 +0.009146 +0.031239 0.036874 0.028926 0.033390 0.017425 0.136392 0.009610 0.036332 0.035079 0.028749 0.014406 0.068462 0.015222 0.016425 0.036045 0.030463 0.018399 0.135005 0.029277 0.019076 0.023445 0.110401 0.041509 0.016320 0.012916 0.063422 0.038848 0.001979 0.019003 0.110401 0.039850 0.157380 +0.354897 +0.032554 0.036813 0.031483 0.033803 0.016692 0.058731 0.010652 0.036647 0.031868 0.029814 0.015727 0.025392 0.016258 0.015877 0.030054 0.031781 0.018567 0.017602 0.028541 0.020053 0.023429 0.086911 0.040117 0.015845 0.006611 0.110401 0.039658 0.000403 0.020654 0.063422 0.042128 0.157380 +0 +0.032257 0.038008 0.028707 0.028972 0.017857 0.037126 0.011122 0.035280 0.028813 0.029232 0.014778 0.025769 0.015173 0.016393 0.029727 0.029702 0.018782 0.027600 0.029066 0.019229 0.023332 0.180870 0.039836 0.016926 0.006088 0.180870 0.038569 0.000691 0.019260 0.133891 0.038425 0.204360 +0.001866 +0.031699 0.036525 0.029814 0.028621 0.018195 0.037922 0.009480 0.035442 0.029129 0.028651 0.014452 0.178794 0.016375 0.016126 0.030118 0.028738 0.015957 0.131327 0.029495 0.019561 0.021210 0.063422 0.041252 0.012905 0.007731 0.110401 0.041184 0.000240 0.021054 0.133891 0.040963 0.157380 +0.379476 +0.030538 0.033897 0.030230 0.029998 0.015322 0.032680 0.011445 0.035235 0.034572 0.030039 0.016348 0.120623 0.015729 0.015640 0.032960 0.028717 0.016172 0.038181 0.028984 0.020873 0.021622 0.063422 0.039468 0.016956 0.010801 0.063422 0.038731 0.000703 0.020446 0.086911 0.041618 0.133891 +0.120400 +0.032865 0.037331 0.029146 0.032124 0.017977 0.026312 0.011274 0.036406 0.028695 0.029658 0.016835 0.087225 0.016389 0.016270 0.028415 0.033875 0.016750 0.058876 0.028275 0.020726 0.022977 0.063422 0.038588 0.015070 0.013523 0.133891 0.038407 0.001891 0.020358 0.133891 0.041274 0.180870 +0.046017 +0.031356 0.039279 0.035157 0.029646 0.017975 0.054486 0.010728 0.037284 0.029150 0.034692 0.016738 0.122188 0.015660 0.015808 0.035031 0.028282 0.018212 0.062941 0.027022 0.019057 0.020309 0.157380 0.039135 0.016212 0.011508 0.110401 0.041988 0.000638 0.020071 0.157380 0.037637 0.204360 +0.126199 +0.028644 0.036911 0.028423 0.029074 0.014230 0.098317 0.011712 0.037488 0.034019 0.028705 0.018631 0.077255 0.015752 0.015897 0.028493 0.031752 0.016078 0.194492 0.029252 0.019392 0.022924 0.110401 0.040500 0.016523 0.012067 0.110401 0.041866 0.000771 0.019886 0.110401 0.039186 0.157380 +0.431876 +0.032340 0.033403 0.028975 0.028262 0.015520 0.025773 0.009595 0.037561 0.028960 0.028695 0.014664 0.039609 0.016108 0.015559 0.028462 0.028288 0.018156 0.161631 0.026706 0.019203 0.023135 0.110401 0.038236 0.012767 0.005455 0.063422 0.041942 0.001762 0.020064 0.133891 0.040003 0.157380 +0.263351 +0.028549 0.038762 0.029623 0.030556 0.017669 0.064367 0.010123 0.035786 0.032159 0.029693 0.015923 0.054452 0.015585 0.016324 0.029380 0.031235 0.016756 0.068812 0.029021 0.021125 0.022304 0.133891 0.038278 0.018027 0.006353 0.063422 0.038979 0.000375 0.019397 0.063422 0.040293 0.157380 +0.188476 +0.030215 0.036318 0.029443 0.030918 0.014178 0.053527 0.010898 0.036389 0.028902 0.029155 0.014740 0.113026 0.015806 0.015980 0.034470 0.028661 0.016090 0.121969 0.026701 0.021082 0.019762 0.133891 0.038541 0.017244 0.008849 0.157380 0.041627 0.001883 0.019535 0.086911 0.037722 0.204360 +0.244318 +0.029788 0.036203 0.029700 0.028805 0.018133 0.051572 0.010621 0.036362 0.029579 0.029585 0.017967 0.052848 0.015894 0.015929 0.028217 0.035761 0.015355 0.110616 0.027503 0.021008 0.020432 0.086911 0.041982 0.016845 0.007387 0.110401 0.037900 0.000535 0.020646 0.063422 0.037919 0.133891 +0.184653 +0.029231 0.035488 0.028362 0.036552 0.016496 0.031599 0.009429 0.037270 0.028539 0.034434 0.017635 0.034637 0.015880 0.016427 0.035028 0.029511 0.017222 0.218040 0.027951 0.020372 0.020851 0.086911 0.041288 0.017488 0.005462 0.110401 0.038795 0.000039 0.019720 0.133891 0.040029 0.157380 +0.249722 +0.030788 0.033033 0.029768 0.029547 0.018684 0.042624 0.011551 0.037418 0.029517 0.029395 0.017611 0.124796 0.016032 0.015708 0.032974 0.029723 0.018727 0.021053 0.026473 0.019491 0.021256 0.180870 0.039861 0.013717 0.011791 0.063422 0.041411 0.001769 0.020607 0.086911 0.038973 0.204360 +0.088583 +0.030831 0.037495 0.031581 0.035297 0.016352 0.018453 0.010146 0.035854 0.031026 0.031943 0.014861 0.022327 0.015335 0.016182 0.034432 0.031488 0.017940 0.101790 0.028339 0.020446 0.023153 0.086911 0.041664 0.017050 0.009203 0.157380 0.039045 0.001080 0.020134 0.063422 0.041043 0.204360 +0.009803 +0.029455 0.035596 0.029087 0.030090 0.017540 0.077334 0.009514 0.035431 0.028328 0.029476 0.016770 0.149499 0.015574 0.016081 0.028238 0.029133 0.016248 0.038403 0.030085 0.020192 0.021657 0.063422 0.037648 0.012501 0.013969 0.133891 0.041481 0.000428 0.019186 0.063422 0.038501 0.157380 +0.255235 +0.028243 0.037803 0.029081 0.028681 0.017199 0.053670 0.010879 0.035455 0.035585 0.030275 0.016389 0.069400 0.015119 0.015756 0.034671 0.031036 0.016274 0.158552 0.027255 0.020610 0.021748 0.110401 0.040539 0.017328 0.010085 0.110401 0.039879 0.001702 0.020784 0.086911 0.037599 0.133891 +0.262622 +0.028304 0.036675 0.030960 0.028409 0.016114 0.021318 0.009881 0.036326 0.028741 0.038137 0.014120 0.097131 0.015350 0.016300 0.028705 0.029303 0.016224 0.108974 0.026602 0.020935 0.019891 0.063422 0.038860 0.013218 0.009318 0.110401 0.038072 0.000321 0.021026 0.086911 0.038644 0.157380 +0.159316 +0.031963 0.034823 0.029416 0.032513 0.016379 0.034883 0.009846 0.037527 0.029766 0.028492 0.015344 0.073312 0.016219 0.016296 0.029132 0.029370 0.016246 0.123902 0.028331 0.020377 0.019157 0.063422 0.038653 0.014085 0.013796 0.063422 0.039611 0.000861 0.020363 0.063422 0.039574 0.133891 +0.160425 +0.031770 0.039824 0.028612 0.031547 0.017238 0.314521 0.011557 0.036767 0.029220 0.038491 0.015033 0.020480 0.015241 0.016127 0.031658 0.028661 0.015371 0.139864 0.029009 0.019895 0.020807 0.086911 0.038877 0.011957 0.011027 0.110401 0.039949 0.000030 0.019426 0.063422 0.041519 0.204360 +0.614754 +0.029873 0.035317 0.029877 0.028573 0.014476 0.016602 0.010859 0.037184 0.032785 0.033620 0.014113 0.086649 0.015372 0.016427 0.028921 0.032328 0.014783 0.113829 0.028836 0.019119 0.022900 0.110401 0.037718 0.017481 0.012114 0.086911 0.038595 0.000229 0.021016 0.110401 0.038507 0.204360 +0.168416 +0.029254 0.032995 0.031473 0.028529 0.016266 0.050500 0.009664 0.037343 0.029097 0.029443 0.014774 0.066348 0.016367 0.015633 0.029590 0.029014 0.016689 0.070332 0.027599 0.019022 0.022606 0.110401 0.038426 0.016910 0.005439 0.180870 0.038931 0.002334 0.019540 0.086911 0.039191 0.204360 +0.166389 +0.031970 0.034776 0.028889 0.031771 0.016166 0.158540 0.010751 0.036300 0.029092 0.030133 0.014186 0.037673 0.015110 0.015938 0.028223 0.032479 0.017084 0.342627 0.027645 0.020848 0.020971 0.063422 0.039606 0.014692 0.013773 0.063422 0.038855 0.000845 0.020422 0.086911 0.040909 0.133891 +0.684057 +0.029474 0.035081 0.030780 0.030285 0.016955 0.020782 0.011032 0.036035 0.029016 0.031011 0.014778 0.122290 0.015204 0.015712 0.030773 0.030233 0.018615 0.025017 0.029474 0.020239 0.019285 0.110401 0.037662 0.016790 0.010669 0.086911 0.039167 0.001424 0.019335 0.110401 0.039371 0.157380 +0.076816 +0.031505 0.033253 0.029566 0.033268 0.016781 0.026601 0.009911 0.035812 0.029548 0.030261 0.017702 0.107056 0.015764 0.015976 0.030851 0.030772 0.014095 0.049293 0.028482 0.019862 0.022952 0.157380 0.038297 0.013003 0.007391 0.110401 0.037857 0.000134 0.020842 0.063422 0.038676 0.180870 +0.113777 +0.028981 0.036906 0.029979 0.028702 0.015699 0.084127 0.010801 0.037563 0.028730 0.028788 0.015433 0.045300 0.015786 0.015726 0.032148 0.030376 0.015708 0.041113 0.027850 0.019547 0.019612 0.063422 0.038711 0.016121 0.011981 0.063422 0.042130 0.001775 0.019668 0.110401 0.039476 0.204360 +0.006350 +0.028820 0.032929 0.030276 0.029381 0.016371 0.115576 0.009863 0.036497 0.029585 0.041464 0.017987 0.040091 0.015603 0.015643 0.029223 0.029758 0.017909 0.181868 0.027429 0.019821 0.022993 0.086911 0.041965 0.017275 0.006937 0.063422 0.040951 0.002046 0.020109 0.063422 0.038478 0.133891 +0.373682 +0.031860 0.037786 0.029949 0.032659 0.016959 0.051008 0.011099 0.035366 0.033610 0.029718 0.017042 0.064254 0.015725 0.016401 0.030192 0.028667 0.018100 0.212290 0.028687 0.020929 0.019994 0.157380 0.039549 0.017459 0.013330 0.110401 0.041868 0.001634 0.019708 0.157380 0.039447 0.180870 +0.304713 +0.029123 0.036054 0.028926 0.028794 0.017333 0.018055 0.010448 0.035801 0.028708 0.031658 0.015698 0.082062 0.016310 0.015896 0.028700 0.029928 0.016920 0.218507 0.029484 0.020791 0.020539 0.110401 0.041341 0.018014 0.005988 0.180870 0.038193 0.002276 0.019727 0.086911 0.040055 0.204360 +0.329216 +0.032316 0.033715 0.030649 0.028897 0.014967 0.036093 0.010764 0.035880 0.029503 0.029048 0.015002 0.050019 0.015228 0.016112 0.030250 0.028704 0.017752 0.024446 0.027721 0.020701 0.020790 0.063422 0.041664 0.013654 0.008502 0.180870 0.041374 0.000938 0.020949 0.133891 0.040808 0.204360 +0 +0.032059 0.033641 0.033929 0.028917 0.018241 0.091664 0.010509 0.036168 0.033871 0.028782 0.014574 0.039825 0.016215 0.016228 0.028429 0.034666 0.016514 0.084974 0.027976 0.020277 0.022843 0.110401 0.040789 0.015644 0.006313 0.086911 0.041153 0.000899 0.019478 0.086911 0.038987 0.133891 +0.204512 +0.029748 0.035193 0.030989 0.033704 0.016383 0.085018 0.011245 0.037310 0.032815 0.029231 0.015461 0.087347 0.015968 0.015623 0.034610 0.030479 0.014128 0.119208 0.028432 0.020091 0.018872 0.063422 0.039573 0.014571 0.006105 0.063422 0.039136 0.000985 0.020243 0.063422 0.042112 0.133891 +0.315735 +0.031076 0.033781 0.030245 0.028745 0.016632 0.047269 0.011384 0.037479 0.030577 0.034342 0.014772 0.059914 0.015812 0.016083 0.028376 0.028749 0.017772 0.028095 0.026831 0.019375 0.023006 0.086911 0.039613 0.012616 0.005283 0.110401 0.042174 0.000114 0.019905 0.063422 0.037947 0.133891 +0.052776 +0.028900 0.035840 0.029121 0.029738 0.015043 0.191665 0.009502 0.036084 0.028939 0.031467 0.018663 0.085273 0.016180 0.016215 0.028978 0.031551 0.018281 0.220789 0.031628 0.019546 0.021950 0.157380 0.040594 0.012008 0.009194 0.086911 0.041846 0.001002 0.020349 0.086911 0.038464 0.180870 +0.628510 +0.030178 0.039011 0.029318 0.034099 0.018460 0.426614 0.010325 0.036998 0.032101 0.030855 0.018512 0.030594 0.016176 0.016317 0.028657 0.030632 0.014849 0.022548 0.026967 0.020477 0.022005 0.133891 0.041406 0.015915 0.006656 0.086911 0.037638 0.000672 0.020591 0.110401 0.037868 0.157380 +0.577907 +0.029473 0.038947 0.028897 0.030251 0.016580 0.123278 0.009870 0.036319 0.029775 0.031722 0.014281 0.024000 0.015708 0.016117 0.031182 0.033493 0.014580 0.048113 0.026586 0.020110 0.019603 0.063422 0.038764 0.015702 0.011558 0.133891 0.039945 0.002027 0.019272 0.086911 0.040147 0.157380 +0.174696 +0.030561 0.036725 0.035024 0.030661 0.015167 0.049704 0.009717 0.035514 0.035522 0.028423 0.016321 0.125905 0.016251 0.016272 0.028503 0.028432 0.015583 0.075421 0.027156 0.020428 0.020648 0.133891 0.038135 0.018161 0.012439 0.063422 0.037844 0.000280 0.020891 0.086911 0.040747 0.157380 +0.200189 +0.030856 0.038079 0.030962 0.028904 0.014857 0.056008 0.011530 0.036838 0.029352 0.032046 0.014466 0.016527 0.015350 0.015558 0.029372 0.032208 0.017161 0.061660 0.029569 0.020151 0.022213 0.157380 0.041767 0.017797 0.009732 0.086911 0.042279 0.000004 0.018874 0.086911 0.038105 0.180870 +0.058092 +0.029935 0.036666 0.029540 0.029919 0.018685 0.156471 0.009563 0.035304 0.031850 0.028912 0.017900 0.096135 0.015593 0.015620 0.031604 0.028494 0.015104 0.289965 0.026067 0.020267 0.020792 0.063422 0.041754 0.018782 0.008208 0.086911 0.040770 0.001642 0.019939 0.086911 0.042265 0.133891 +0.615548 +0.032564 0.036726 0.029782 0.029448 0.017215 0.034917 0.011723 0.035742 0.028880 0.039702 0.016978 0.081801 0.016105 0.015660 0.034996 0.030751 0.016491 0.050182 0.027417 0.019161 0.021292 0.110401 0.041318 0.016848 0.007751 0.157380 0.041882 0.000243 0.019427 0.157380 0.042097 0.180870 +0.088505 +0.028664 0.037056 0.029772 0.028602 0.015471 0.026543 0.009421 0.035961 0.031658 0.031912 0.014363 0.091527 0.015523 0.016333 0.029364 0.031365 0.017967 0.047049 0.029007 0.019504 0.020683 0.086911 0.042066 0.013929 0.013130 0.110401 0.038007 0.001338 0.019291 0.110401 0.039014 0.133891 +0.130978 +0.031069 0.039014 0.029842 0.029245 0.014466 0.141305 0.010028 0.037399 0.028584 0.028383 0.014629 0.172054 0.015147 0.015773 0.032732 0.028801 0.016999 0.035866 0.027525 0.019272 0.022551 0.157380 0.038933 0.018467 0.011008 0.180870 0.040493 0.000768 0.019747 0.086911 0.041754 0.204360 +0.391892 +0.029013 0.035128 0.029498 0.033736 0.017095 0.039528 0.010962 0.036403 0.029320 0.031334 0.017912 0.148470 0.015897 0.015658 0.029839 0.028500 0.015846 0.025011 0.027472 0.020294 0.021600 0.157380 0.037937 0.016852 0.005062 0.063422 0.039384 0.001025 0.019842 0.110401 0.039005 0.180870 +0.179353 +0.028612 0.034005 0.034783 0.031386 0.014239 0.064284 0.010176 0.036696 0.029766 0.033096 0.015630 0.081556 0.015509 0.015913 0.028280 0.030477 0.018746 0.116529 0.029290 0.019504 0.020746 0.133891 0.039638 0.016132 0.010194 0.063422 0.041758 0.000777 0.019647 0.063422 0.039936 0.180870 +0.181612 +0.031934 0.038600 0.028653 0.029284 0.017233 0.031495 0.011541 0.036392 0.028290 0.028325 0.015945 0.037733 0.015912 0.015916 0.028223 0.032177 0.018013 0.022401 0.028768 0.019458 0.020446 0.110401 0.039274 0.017841 0.009589 0.063422 0.038171 0.001266 0.020406 0.063422 0.039432 0.157380 +0 +0.032498 0.033393 0.035287 0.028763 0.018094 0.083140 0.011014 0.037529 0.033844 0.028849 0.018326 0.089925 0.015563 0.015668 0.028455 0.030054 0.015729 0.036543 0.028274 0.021121 0.022584 0.157380 0.042161 0.017773 0.008743 0.110401 0.041086 0.000543 0.019937 0.086911 0.040569 0.204360 +0.104479 +0.028686 0.038120 0.028300 0.030024 0.018518 0.051207 0.010937 0.036689 0.030007 0.033325 0.016538 0.188151 0.016324 0.016305 0.030852 0.029270 0.017528 0.115062 0.028615 0.020218 0.019149 0.133891 0.040328 0.012474 0.012664 0.110401 0.038024 0.001747 0.021047 0.133891 0.041960 0.157380 +0.461589 +0.029749 0.039543 0.029774 0.035022 0.015279 0.020910 0.011560 0.035820 0.029245 0.033751 0.015763 0.034405 0.016345 0.015626 0.030648 0.029236 0.018722 0.070434 0.028698 0.019080 0.018798 0.086911 0.041959 0.018652 0.010625 0.110401 0.039693 0.002121 0.019940 0.110401 0.042225 0.133891 +0.076885 +0.028321 0.035307 0.030772 0.028888 0.017416 0.027866 0.010082 0.036236 0.031809 0.033969 0.018465 0.134443 0.015776 0.015871 0.030071 0.030351 0.014517 0.057225 0.027237 0.019918 0.019127 0.063422 0.038280 0.013065 0.010467 0.086911 0.040852 0.001327 0.019930 0.086911 0.037663 0.133891 +0.205480 +0.029613 0.036857 0.028772 0.029850 0.016978 0.095994 0.011301 0.037328 0.031749 0.028849 0.014378 0.055663 0.015793 0.016007 0.028189 0.028234 0.015915 0.055055 0.027906 0.020044 0.022324 0.063422 0.039229 0.016591 0.009845 0.086911 0.041439 0.001188 0.020135 0.086911 0.041579 0.157380 +0.131749 +0.031389 0.035910 0.028501 0.032905 0.016603 0.021337 0.011379 0.035973 0.029459 0.030992 0.017258 0.084397 0.016283 0.015838 0.029255 0.031287 0.017320 0.136725 0.028667 0.018957 0.022134 0.110401 0.040447 0.017995 0.012413 0.110401 0.041124 0.001033 0.019360 0.157380 0.039527 0.180870 +0.194462 +0.030667 0.038477 0.029833 0.029593 0.014373 0.026051 0.011432 0.037507 0.030889 0.028321 0.015146 0.135261 0.016227 0.016081 0.029567 0.030248 0.015240 0.157983 0.028468 0.020319 0.019862 0.063422 0.040972 0.018361 0.010489 0.063422 0.040252 0.000741 0.020815 0.063422 0.041721 0.157380 +0.283438 +0.029717 0.032967 0.029956 0.032756 0.014637 0.048097 0.009522 0.036082 0.029346 0.028490 0.016197 0.029795 0.016118 0.015865 0.028254 0.029665 0.018304 0.113164 0.030182 0.019823 0.023072 0.110401 0.039252 0.012144 0.009060 0.063422 0.040915 0.001237 0.021090 0.086911 0.041490 0.133891 +0.140800 +0.029442 0.036591 0.029790 0.029413 0.018620 0.078433 0.009726 0.035448 0.028228 0.028558 0.016303 0.035957 0.015523 0.015980 0.028940 0.030399 0.018409 0.148689 0.027621 0.019728 0.021600 0.086911 0.039709 0.015615 0.011193 0.086911 0.037911 0.001631 0.019134 0.063422 0.039998 0.180870 +0.175708 +0.031031 0.037925 0.028225 0.031680 0.014175 0.046987 0.010759 0.037048 0.029157 0.031579 0.016091 0.036295 0.016130 0.016173 0.028450 0.035721 0.018542 0.040906 0.028204 0.019086 0.019983 0.063422 0.038849 0.018689 0.008078 0.086911 0.040776 0.002292 0.019100 0.063422 0.041622 0.157380 +0.002114 +0.028204 0.033404 0.028803 0.028574 0.015513 0.018464 0.011181 0.037441 0.031209 0.038047 0.016303 0.090318 0.015589 0.015962 0.028596 0.029896 0.015440 0.054877 0.029541 0.020750 0.018798 0.063422 0.040280 0.014450 0.010920 0.110401 0.041476 0.000528 0.019115 0.110401 0.041496 0.157380 +0.046413 +0.030500 0.032952 0.030978 0.031987 0.017406 0.076280 0.011398 0.035938 0.028435 0.031828 0.016479 0.042644 0.015831 0.015525 0.028369 0.030900 0.014687 0.053411 0.027257 0.019998 0.020063 0.110401 0.042091 0.014922 0.013021 0.110401 0.042245 0.001711 0.019707 0.110401 0.040627 0.204360 +0.009527 +0.029458 0.036914 0.031956 0.029140 0.014389 0.033432 0.009892 0.035548 0.030519 0.030212 0.017097 0.470859 0.015882 0.016288 0.032220 0.028426 0.015799 0.033621 0.030570 0.020621 0.021134 0.110401 0.041526 0.013516 0.009724 0.063422 0.040140 0.001633 0.019981 0.110401 0.038010 0.133891 +0.748682 +0.028238 0.037604 0.028462 0.028235 0.014884 0.031849 0.011353 0.035760 0.030569 0.030684 0.015627 0.027490 0.015148 0.015813 0.028314 0.033561 0.018483 0.208255 0.027168 0.019037 0.021749 0.133891 0.040426 0.013007 0.010411 0.063422 0.040552 0.000474 0.019587 0.110401 0.041338 0.157380 +0.209698 +0.031091 0.039052 0.036145 0.031397 0.016587 0.023653 0.011207 0.037131 0.028827 0.028774 0.018319 0.214260 0.015565 0.016284 0.032990 0.030475 0.015272 0.124257 0.027035 0.019043 0.019657 0.133891 0.040762 0.012100 0.010629 0.110401 0.042197 0.001286 0.019807 0.063422 0.038515 0.180870 +0.423006 +0.030781 0.034421 0.029307 0.028603 0.015995 0.245467 0.010349 0.035733 0.029285 0.029243 0.017031 0.018984 0.016083 0.016146 0.028380 0.030150 0.014608 0.058985 0.027287 0.019771 0.022351 0.110401 0.038698 0.017176 0.004717 0.110401 0.038527 0.002055 0.019326 0.110401 0.039660 0.133891 +0.384214 +0.029095 0.036207 0.029821 0.029238 0.018284 0.026867 0.009880 0.035977 0.028461 0.028203 0.017466 0.040469 0.016345 0.015665 0.030042 0.028961 0.016317 0.181132 0.028557 0.020124 0.020926 0.133891 0.041515 0.012937 0.007551 0.063422 0.040072 0.000492 0.018902 0.086911 0.038434 0.157380 +0.129597 +0.028328 0.034923 0.031358 0.031027 0.014937 0.023276 0.010083 0.037079 0.030986 0.028651 0.015553 0.186824 0.015394 0.016140 0.035863 0.030286 0.018691 0.045267 0.027760 0.020444 0.019710 0.110401 0.038810 0.012219 0.010689 0.157380 0.042274 0.000431 0.020507 0.110401 0.038619 0.204360 +0.225941 +0.029531 0.033758 0.031075 0.028675 0.017821 0.024648 0.010216 0.035527 0.030981 0.034566 0.016247 0.017343 0.016015 0.015970 0.029918 0.028731 0.015674 0.028360 0.027087 0.020053 0.021957 0.086911 0.040024 0.013943 0.009400 0.110401 0.040045 0.002228 0.020262 0.063422 0.041331 0.157380 +0 +0.031981 0.037938 0.035764 0.028250 0.016131 0.092179 0.011645 0.036607 0.029190 0.031897 0.017700 0.027209 0.015792 0.015594 0.031015 0.029619 0.016403 0.040737 0.027553 0.019516 0.020366 0.110401 0.041278 0.012378 0.013986 0.133891 0.041735 0.001050 0.019429 0.086911 0.037779 0.180870 +0.030958 +0.031755 0.038023 0.029629 0.029858 0.014657 0.156291 0.010299 0.036655 0.028818 0.032289 0.016075 0.085194 0.015428 0.016373 0.030012 0.033298 0.017642 0.026433 0.027370 0.020858 0.019079 0.063422 0.039316 0.017217 0.011124 0.063422 0.037699 0.000684 0.019251 0.110401 0.038231 0.157380 +0.175035 +0.030867 0.039050 0.030444 0.028462 0.014700 0.130406 0.011365 0.036813 0.029292 0.028394 0.016993 0.091743 0.016018 0.015523 0.028492 0.029527 0.014446 0.020833 0.029322 0.018824 0.021394 0.086911 0.040604 0.014451 0.012993 0.086911 0.038467 0.001413 0.019051 0.133891 0.040149 0.157380 +0.216027 +0.030408 0.033869 0.039494 0.029010 0.015641 0.227280 0.010845 0.036128 0.029439 0.031509 0.016627 0.018573 0.016241 0.015564 0.029730 0.028202 0.014941 0.094762 0.027087 0.019945 0.019839 0.110401 0.038110 0.012923 0.012025 0.157380 0.041195 0.001003 0.019333 0.110401 0.041176 0.180870 +0.462945 +0.030174 0.037385 0.039005 0.032667 0.014941 0.137900 0.010164 0.037233 0.028399 0.029428 0.016934 0.039780 0.015437 0.015710 0.029736 0.030746 0.014569 0.047365 0.027024 0.019564 0.021596 0.110401 0.042093 0.014084 0.012847 0.086911 0.040544 0.001459 0.020056 0.110401 0.038160 0.133891 +0.181538 +0.030295 0.039831 0.029213 0.028232 0.016388 0.025406 0.010335 0.036947 0.031030 0.032431 0.018261 0.071718 0.015235 0.015641 0.029477 0.028540 0.015683 0.027012 0.027972 0.020751 0.021345 0.110401 0.037813 0.016597 0.011926 0.110401 0.042030 0.000488 0.019848 0.063422 0.038085 0.133891 +0.067801 +0.030652 0.037451 0.029841 0.032939 0.016740 0.154379 0.009449 0.035494 0.030739 0.035321 0.015396 0.043666 0.015683 0.016295 0.028272 0.031182 0.016346 0.143126 0.027925 0.020533 0.019215 0.110401 0.039675 0.012251 0.011135 0.063422 0.039685 0.001055 0.020398 0.086911 0.041843 0.180870 +0.356111 +0.032616 0.038865 0.031966 0.035678 0.015702 0.091804 0.009528 0.036395 0.030294 0.029700 0.017705 0.101796 0.015811 0.015789 0.032850 0.029902 0.016299 0.024401 0.029050 0.019184 0.021904 0.063422 0.039033 0.016314 0.008339 0.063422 0.041637 0.001546 0.019373 0.110401 0.038288 0.133891 +0.171532 +0.030865 0.035518 0.037220 0.029759 0.018164 0.310339 0.009481 0.036037 0.032628 0.030892 0.015889 0.043365 0.015266 0.015580 0.030001 0.033038 0.015827 0.016823 0.030613 0.020801 0.023319 0.063422 0.039790 0.013802 0.010550 0.086911 0.038217 0.001392 0.020580 0.110401 0.041039 0.133891 +0.442353 +0.028385 0.037687 0.029165 0.028476 0.017185 0.089095 0.010364 0.035446 0.028919 0.028290 0.016201 0.044655 0.015277 0.016123 0.031294 0.031698 0.015692 0.161707 0.027828 0.020436 0.023391 0.133891 0.039073 0.012057 0.009874 0.180870 0.039614 0.000688 0.020395 0.133891 0.039239 0.204360 +0.330913 +0.029889 0.034414 0.029113 0.029264 0.017898 0.022160 0.011163 0.036319 0.028554 0.028272 0.015189 0.057795 0.016129 0.016303 0.028501 0.028484 0.018554 0.065897 0.028483 0.020666 0.020175 0.086911 0.039736 0.016334 0.008104 0.110401 0.041625 0.001844 0.019719 0.063422 0.037938 0.204360 +0.019370 +0.029210 0.033405 0.029567 0.029481 0.015673 0.069051 0.011064 0.035280 0.029014 0.032629 0.015444 0.054506 0.015807 0.016058 0.028385 0.028261 0.018764 0.087954 0.028066 0.019534 0.021214 0.063422 0.037925 0.017040 0.010311 0.086911 0.039615 0.001213 0.019556 0.133891 0.038639 0.157380 +0.212178 +0.030380 0.033818 0.030070 0.029537 0.017517 0.096726 0.009607 0.037126 0.029104 0.032813 0.018747 0.071175 0.015360 0.016046 0.029555 0.031403 0.014741 0.156668 0.027330 0.020849 0.022412 0.133891 0.039703 0.015565 0.007455 0.133891 0.040502 0.001344 0.020780 0.110401 0.041313 0.180870 +0.326411 +0.028610 0.035814 0.028364 0.029779 0.018619 0.024820 0.010921 0.035490 0.030009 0.028437 0.016271 0.237668 0.016108 0.015806 0.028638 0.030898 0.016095 0.020227 0.028704 0.019038 0.020780 0.133891 0.041356 0.012839 0.013736 0.086911 0.037999 0.000445 0.019811 0.133891 0.041119 0.204360 +0.231075 +0.029441 0.037372 0.029479 0.029224 0.018521 0.047822 0.010796 0.036559 0.030981 0.030296 0.015013 0.017391 0.015299 0.016324 0.029883 0.035501 0.014207 0.049887 0.028497 0.019503 0.020057 0.063422 0.041205 0.014352 0.013992 0.063422 0.038743 0.000506 0.019304 0.110401 0.039426 0.180870 +0.001394 +0.030928 0.037851 0.030516 0.029191 0.018073 0.017408 0.011124 0.036895 0.033306 0.029069 0.016700 0.076752 0.015685 0.016386 0.030014 0.029483 0.015912 0.319506 0.027399 0.019171 0.021210 0.110401 0.040526 0.013167 0.014017 0.110401 0.039077 0.000154 0.020388 0.157380 0.040210 0.180870 +0.563745 +0.030349 0.033526 0.031694 0.036190 0.014839 0.020724 0.011332 0.036316 0.033755 0.033309 0.014996 0.044420 0.016257 0.015705 0.032044 0.031287 0.016276 0.031415 0.027653 0.018865 0.018878 0.110401 0.039210 0.012682 0.012236 0.110401 0.039760 0.001221 0.019277 0.063422 0.038573 0.204360 +0 +0.030309 0.033568 0.030146 0.029106 0.015593 0.128622 0.011331 0.037505 0.028575 0.028606 0.014936 0.079314 0.015072 0.016164 0.034108 0.029000 0.015498 0.044087 0.027227 0.018944 0.021337 0.086911 0.041741 0.014804 0.006927 0.110401 0.038766 0.001689 0.020780 0.086911 0.040161 0.157380 +0.255068 +0.030016 0.038449 0.028246 0.028808 0.014872 0.131466 0.011284 0.035325 0.028249 0.030224 0.016130 0.134929 0.015997 0.015748 0.030799 0.030612 0.018295 0.101671 0.028947 0.020207 0.020910 0.086911 0.038470 0.014914 0.010073 0.063422 0.040225 0.001298 0.019762 0.110401 0.041680 0.157380 +0.397870 +0.032018 0.037650 0.028313 0.029499 0.014651 0.243729 0.009853 0.035337 0.028387 0.030554 0.014359 0.191212 0.015725 0.015917 0.031959 0.034487 0.018301 0.072016 0.027160 0.019759 0.022718 0.157380 0.040309 0.018550 0.005150 0.157380 0.038063 0.001226 0.020519 0.063422 0.040875 0.180870 +0.619012 +0.031595 0.038112 0.035093 0.030396 0.017499 0.089038 0.010250 0.036237 0.033133 0.029855 0.017370 0.061758 0.016312 0.016028 0.030073 0.029854 0.017315 0.056293 0.027591 0.019048 0.022924 0.063422 0.038950 0.018294 0.012282 0.110401 0.041212 0.002212 0.020785 0.110401 0.040885 0.133891 +0.236922 +0.032002 0.033339 0.029778 0.029808 0.017348 0.068752 0.009993 0.037321 0.028260 0.035846 0.014271 0.028663 0.015531 0.016290 0.029383 0.028627 0.015475 0.090408 0.028898 0.019160 0.023142 0.110401 0.041643 0.011943 0.013380 0.133891 0.040186 0.002203 0.018802 0.133891 0.042232 0.204360 +0.074196 +0.030641 0.037079 0.028328 0.029314 0.016051 0.074685 0.009795 0.036592 0.035752 0.032833 0.017013 0.307925 0.015336 0.016252 0.028663 0.028938 0.017317 0.254414 0.029287 0.018913 0.019585 0.063422 0.037759 0.016430 0.007451 0.110401 0.041677 0.001849 0.019875 0.180870 0.040244 0.204360 +0.805494 +0.028645 0.039919 0.031392 0.030852 0.016692 0.339847 0.010426 0.037031 0.031708 0.029810 0.015030 0.019168 0.015146 0.016440 0.028728 0.028200 0.015125 0.072987 0.029028 0.020154 0.019491 0.133891 0.040269 0.015545 0.008770 0.063422 0.041718 0.000485 0.019024 0.063422 0.042100 0.157380 +0.395488 +0.028612 0.034209 0.028381 0.029121 0.015881 0.024717 0.009989 0.036841 0.028964 0.032897 0.015280 0.056780 0.015945 0.016121 0.029925 0.028203 0.014334 0.132419 0.027952 0.019026 0.021998 0.063422 0.038332 0.012446 0.010044 0.133891 0.040736 0.000551 0.019674 0.063422 0.038344 0.204360 +0.200905 +0.032801 0.039155 0.029614 0.033129 0.017925 0.024970 0.009802 0.035882 0.038678 0.029211 0.014920 0.173434 0.016420 0.015665 0.030776 0.029127 0.017987 0.028632 0.028832 0.020605 0.020273 0.086911 0.039689 0.016882 0.009681 0.110401 0.039830 0.002068 0.019750 0.063422 0.042269 0.133891 +0.198019 +0.029125 0.034057 0.031870 0.029693 0.016300 0.069416 0.011265 0.036106 0.029331 0.037098 0.014360 0.026912 0.015507 0.016412 0.028531 0.029524 0.016013 0.189614 0.028563 0.020091 0.020635 0.063422 0.041044 0.012022 0.005902 0.110401 0.041061 0.001478 0.019350 0.110401 0.039573 0.157380 +0.216235 +0.031333 0.035355 0.029395 0.028633 0.015473 0.076854 0.010814 0.036991 0.030768 0.033243 0.016461 0.049305 0.016136 0.016260 0.029034 0.030263 0.015901 0.074378 0.030063 0.019334 0.020765 0.180870 0.040546 0.017393 0.005894 0.180870 0.037609 0.000386 0.020130 0.063422 0.039166 0.204360 +0.108643 +0.028751 0.037636 0.035765 0.032715 0.014812 0.112778 0.011232 0.037413 0.028853 0.028964 0.016021 0.142491 0.016124 0.016209 0.039934 0.028504 0.014149 0.374749 0.029255 0.018981 0.020602 0.063422 0.039417 0.014471 0.010879 0.086911 0.040603 0.002012 0.019096 0.110401 0.040490 0.180870 +0.794138 +0.030897 0.039409 0.032939 0.029035 0.017434 0.045096 0.009403 0.037464 0.029010 0.028236 0.017938 0.067136 0.015537 0.015836 0.031290 0.031544 0.018464 0.052999 0.028871 0.020957 0.019029 0.063422 0.038236 0.018267 0.012198 0.133891 0.037937 0.000801 0.020777 0.086911 0.040724 0.157380 +0.070231 +0.032334 0.033251 0.029624 0.028943 0.015956 0.023554 0.010199 0.035448 0.028632 0.030035 0.015387 0.131904 0.015350 0.015765 0.028807 0.030924 0.018094 0.079708 0.029138 0.019160 0.023467 0.063422 0.038551 0.013356 0.011384 0.110401 0.040931 0.001328 0.020720 0.086911 0.041949 0.157380 +0.229462 +0.032003 0.038768 0.031720 0.030316 0.014647 0.020826 0.010976 0.037557 0.032210 0.030869 0.017277 0.199182 0.015854 0.016066 0.028734 0.032721 0.017118 0.114811 0.028286 0.019264 0.023044 0.110401 0.039938 0.018374 0.012746 0.110401 0.040427 0.001176 0.019707 0.086911 0.038947 0.133891 +0.398440 +0.032260 0.036159 0.029904 0.032291 0.017166 0.039980 0.010928 0.035314 0.029718 0.030565 0.014697 0.049981 0.015766 0.016106 0.028429 0.037366 0.016457 0.069174 0.029290 0.021103 0.021970 0.086911 0.037876 0.012488 0.006915 0.157380 0.038925 0.001768 0.019712 0.110401 0.039584 0.180870 +0.107371 +0.032819 0.035986 0.029039 0.029062 0.018342 0.066363 0.010686 0.037519 0.032051 0.032507 0.018343 0.046407 0.015424 0.015968 0.028319 0.030130 0.016243 0.130185 0.029995 0.020348 0.020246 0.157380 0.042263 0.014402 0.012491 0.157380 0.038746 0.002185 0.020452 0.180870 0.041418 0.204360 +0.177176 +0.032310 0.036101 0.028847 0.028695 0.016240 0.231663 0.010787 0.037203 0.032742 0.028537 0.016682 0.084544 0.015279 0.016024 0.029729 0.032107 0.017530 0.061738 0.027774 0.020722 0.021026 0.063422 0.039982 0.012079 0.010277 0.110401 0.038136 0.000307 0.018990 0.133891 0.040684 0.157380 +0.574189 +0.030966 0.035874 0.029555 0.031716 0.014608 0.057983 0.010858 0.036754 0.031699 0.028521 0.014929 0.044821 0.016290 0.015686 0.030503 0.029122 0.018090 0.069728 0.026414 0.019352 0.020468 0.157380 0.040024 0.016176 0.011279 0.110401 0.040125 0.000713 0.019562 0.133891 0.038266 0.204360 +0.031507 +0.028307 0.033847 0.032521 0.030219 0.017282 0.101342 0.011567 0.037171 0.030422 0.034264 0.014142 0.034692 0.016078 0.016018 0.029390 0.029701 0.016274 0.022573 0.026403 0.020032 0.019928 0.133891 0.037979 0.016586 0.012802 0.110401 0.041001 0.002123 0.019587 0.110401 0.038144 0.180870 +0.039815 +0.028683 0.039897 0.030042 0.028549 0.014153 0.017367 0.010460 0.037478 0.031910 0.032765 0.014966 0.101506 0.015208 0.015679 0.031322 0.028863 0.017351 0.037631 0.027233 0.020076 0.019615 0.110401 0.039920 0.014562 0.008285 0.110401 0.039622 0.001587 0.019883 0.133891 0.039667 0.157380 +0.070434 +0.028362 0.039473 0.030049 0.029516 0.016918 0.066584 0.011625 0.036536 0.037845 0.028421 0.016373 0.095660 0.016227 0.015583 0.030571 0.029147 0.018015 0.152156 0.028355 0.018903 0.023166 0.063422 0.038801 0.013528 0.007084 0.086911 0.038583 0.000822 0.019907 0.157380 0.041162 0.180870 +0.382234 +0.032604 0.033146 0.031438 0.031179 0.016343 0.100971 0.011623 0.035534 0.030505 0.029660 0.017492 0.084623 0.016147 0.016250 0.030534 0.032209 0.017046 0.020620 0.026383 0.020733 0.020014 0.086911 0.040685 0.015594 0.010650 0.063422 0.042169 0.001446 0.020363 0.063422 0.038772 0.133891 +0.117432 +0.028582 0.038107 0.033182 0.029472 0.016958 0.034809 0.009547 0.035956 0.032530 0.029173 0.017504 0.116351 0.015981 0.015601 0.032328 0.036371 0.018483 0.084347 0.028320 0.021114 0.022057 0.063422 0.041887 0.016791 0.012077 0.063422 0.038490 0.000283 0.020305 0.086911 0.040802 0.133891 +0.191229 +0.032146 0.033129 0.039267 0.030840 0.015942 0.115233 0.011084 0.036500 0.032119 0.030377 0.014363 0.027318 0.016352 0.016062 0.030274 0.029838 0.015051 0.093310 0.029695 0.019517 0.020463 0.110401 0.041037 0.014243 0.010571 0.086911 0.039471 0.000022 0.020640 0.086911 0.037955 0.133891 +0.227569 +0.032847 0.034211 0.030033 0.029910 0.017893 0.040173 0.009651 0.035272 0.028566 0.028669 0.015352 0.081438 0.016093 0.015951 0.032202 0.035957 0.017662 0.030080 0.026199 0.020083 0.018997 0.063422 0.041404 0.015780 0.007626 0.063422 0.038986 0.001148 0.020091 0.110401 0.037699 0.133891 +0.110978 +0.029192 0.038064 0.030486 0.032509 0.016027 0.441481 0.010965 0.036630 0.031954 0.028447 0.015716 0.139188 0.015373 0.015704 0.029622 0.029373 0.018313 0.191446 0.026457 0.018955 0.022819 0.086911 0.041062 0.015626 0.005834 0.110401 0.040661 0.000932 0.019057 0.063422 0.041787 0.133891 +0.809965 +0.029448 0.034839 0.028899 0.029260 0.015379 0.198738 0.009605 0.035620 0.028737 0.030087 0.015714 0.167094 0.015729 0.015876 0.028768 0.028825 0.016751 0.110230 0.028091 0.020403 0.019230 0.086911 0.038414 0.014434 0.009889 0.063422 0.037973 0.001488 0.019077 0.110401 0.037841 0.157380 +0.580057 +0.031452 0.038535 0.029702 0.031195 0.016249 0.120189 0.009706 0.037265 0.029302 0.031579 0.018049 0.223448 0.015207 0.016102 0.030182 0.029235 0.016967 0.062558 0.028159 0.019279 0.022185 0.063422 0.039397 0.015495 0.013448 0.063422 0.040982 0.001444 0.019288 0.063422 0.040180 0.157380 +0.509908 +0.029497 0.035503 0.028816 0.034735 0.017679 0.077525 0.009672 0.036867 0.029066 0.029458 0.018618 0.185119 0.016432 0.016011 0.034544 0.031831 0.014824 0.068724 0.027640 0.020514 0.020891 0.063422 0.040237 0.015703 0.011260 0.086911 0.039365 0.002070 0.020041 0.133891 0.040180 0.157380 +0.314439 +0.029985 0.033811 0.031128 0.029898 0.014367 0.025883 0.009832 0.036868 0.029148 0.029892 0.015805 0.059883 0.016378 0.015552 0.031029 0.030495 0.018734 0.088262 0.028531 0.020627 0.019145 0.063422 0.041545 0.018417 0.010875 0.133891 0.038744 0.001307 0.018908 0.086911 0.038015 0.204360 +0.008161 +0.031705 0.037876 0.028275 0.028395 0.017634 0.047594 0.010161 0.036200 0.030574 0.028630 0.014522 0.040141 0.015148 0.016056 0.029643 0.029921 0.015844 0.023331 0.028536 0.020075 0.022992 0.133891 0.040038 0.012203 0.005757 0.133891 0.039623 0.000413 0.021125 0.086911 0.038843 0.157380 +0.071240 +0.030202 0.038663 0.031189 0.034500 0.017883 0.066277 0.011487 0.036179 0.032449 0.033200 0.016995 0.039042 0.015402 0.015640 0.029464 0.029582 0.015711 0.023791 0.029154 0.020264 0.019558 0.063422 0.040952 0.014435 0.009354 0.133891 0.041596 0.001178 0.020173 0.133891 0.040529 0.204360 +0.000943 +0.032118 0.036993 0.029519 0.031021 0.016655 0.071351 0.009683 0.036420 0.033526 0.031807 0.015404 0.046627 0.016349 0.016245 0.029497 0.029918 0.018200 0.024100 0.027180 0.021050 0.022761 0.063422 0.042187 0.016277 0.007894 0.063422 0.042176 0.001998 0.019789 0.086911 0.040613 0.133891 +0.013013 +0.031943 0.037248 0.029451 0.029400 0.015718 0.098906 0.010941 0.036716 0.028372 0.029900 0.015131 0.074208 0.016166 0.016388 0.030626 0.030697 0.015715 0.079928 0.026691 0.019777 0.020625 0.086911 0.039355 0.015631 0.005143 0.063422 0.041998 0.000313 0.019170 0.157380 0.040941 0.180870 +0.322584 +0.032070 0.034389 0.031809 0.029162 0.016287 0.023239 0.011606 0.037325 0.029374 0.030025 0.017746 0.253871 0.016151 0.016293 0.028669 0.028601 0.015449 0.189713 0.029708 0.020448 0.020527 0.086911 0.041126 0.014316 0.008632 0.063422 0.040790 0.002268 0.020389 0.086911 0.040000 0.133891 +0.624308 +0.031868 0.036822 0.030395 0.028625 0.017732 0.463877 0.011392 0.035828 0.032128 0.029555 0.014401 0.179941 0.015971 0.016440 0.028203 0.031398 0.014390 0.187918 0.028746 0.018850 0.020945 0.086911 0.038750 0.015090 0.005543 0.086911 0.040019 0.001193 0.018852 0.063422 0.040248 0.157380 +0.820711 +0.030508 0.039571 0.028424 0.030571 0.015012 0.035226 0.009502 0.036276 0.031304 0.028682 0.014154 0.168637 0.015604 0.015888 0.039450 0.029120 0.018761 0.036362 0.027890 0.020395 0.022936 0.133891 0.040162 0.018506 0.004724 0.063422 0.039280 0.002139 0.019098 0.133891 0.039908 0.157380 +0.264427 +0.030065 0.034633 0.028450 0.036426 0.018503 0.046669 0.009884 0.035320 0.028720 0.028706 0.015423 0.166794 0.015991 0.015535 0.034581 0.032075 0.014482 0.036980 0.028327 0.020370 0.022598 0.157380 0.040791 0.014041 0.004825 0.086911 0.039342 0.001749 0.019293 0.086911 0.037922 0.180870 +0.227069 +0.031358 0.039358 0.035254 0.028269 0.017928 0.095972 0.011593 0.036244 0.028877 0.028355 0.017722 0.086111 0.015095 0.015945 0.034551 0.028200 0.017464 0.217416 0.027048 0.020403 0.021115 0.133891 0.040896 0.015186 0.008171 0.086911 0.040597 0.001658 0.020041 0.133891 0.039382 0.157380 +0.434184 +0.030924 0.038201 0.030008 0.028904 0.014415 0.065932 0.010229 0.035375 0.030145 0.030122 0.016434 0.031726 0.016078 0.016036 0.031307 0.031280 0.015461 0.023944 0.026988 0.020342 0.022924 0.110401 0.041980 0.014145 0.005731 0.110401 0.040645 0.000165 0.020563 0.086911 0.037835 0.133891 +0.075087 +0.031622 0.035515 0.029997 0.031594 0.016974 0.019328 0.009529 0.035522 0.030459 0.030028 0.018639 0.028880 0.015362 0.016007 0.032631 0.028967 0.014182 0.034374 0.031237 0.019965 0.021789 0.180870 0.042146 0.017619 0.013108 0.157380 0.037843 0.001975 0.020255 0.157380 0.038480 0.204360 +0 +0.028395 0.035796 0.030464 0.031341 0.016495 0.087501 0.011259 0.037273 0.032278 0.028931 0.016371 0.025230 0.015716 0.015516 0.032416 0.029685 0.015523 0.022304 0.030109 0.020834 0.023232 0.180870 0.041115 0.012133 0.008155 0.157380 0.041754 0.001898 0.019286 0.063422 0.038066 0.204360 +0.075379 +0.031127 0.039668 0.028217 0.028418 0.014334 0.096915 0.009774 0.035243 0.029080 0.028527 0.018251 0.044773 0.015839 0.016399 0.028290 0.033426 0.014634 0.053633 0.026724 0.019310 0.020067 0.157380 0.040598 0.014920 0.012604 0.110401 0.040294 0.002248 0.019833 0.133891 0.041123 0.204360 +0.099420 +0.029057 0.037741 0.028350 0.029429 0.017944 0.076196 0.010448 0.036314 0.037724 0.029971 0.015497 0.033108 0.015876 0.016121 0.029879 0.032621 0.015529 0.057976 0.028640 0.021089 0.021608 0.157380 0.040971 0.016749 0.012576 0.110401 0.039565 0.001172 0.019293 0.180870 0.038247 0.204360 +0.057780 +0.029199 0.038422 0.028453 0.028699 0.018621 0.034162 0.009460 0.036160 0.028356 0.030001 0.015991 0.082768 0.015690 0.016358 0.032027 0.028742 0.018103 0.082052 0.025977 0.019631 0.020548 0.110401 0.042128 0.012946 0.011475 0.180870 0.038604 0.001050 0.019306 0.110401 0.037943 0.204360 +0.129111 +0.028192 0.039054 0.030024 0.028216 0.017652 0.116510 0.011024 0.035600 0.030678 0.030950 0.017890 0.086241 0.015867 0.015667 0.028756 0.030349 0.017651 0.036181 0.028805 0.020176 0.022835 0.110401 0.038577 0.013212 0.007734 0.063422 0.038142 0.000064 0.020145 0.063422 0.037674 0.157380 +0.163213 +0.032169 0.033666 0.028588 0.030058 0.016214 0.024584 0.009891 0.037160 0.030025 0.032594 0.017319 0.252866 0.016213 0.015863 0.028890 0.032829 0.016347 0.151495 0.026695 0.020419 0.020352 0.086911 0.038762 0.017015 0.010250 0.063422 0.041562 0.000227 0.019441 0.110401 0.039951 0.157380 +0.585360 +0.030313 0.039843 0.030529 0.037649 0.014522 0.058568 0.011361 0.037472 0.028440 0.029880 0.018439 0.159319 0.016411 0.016075 0.029504 0.033684 0.016126 0.092027 0.029196 0.019597 0.023446 0.063422 0.039185 0.014523 0.004919 0.063422 0.039182 0.001743 0.020858 0.110401 0.040335 0.133891 +0.339757 +0.032195 0.033343 0.029173 0.028970 0.018788 0.041757 0.009439 0.037361 0.031773 0.030630 0.015346 0.057528 0.015977 0.015939 0.034850 0.029695 0.015023 0.026249 0.027212 0.021088 0.023195 0.110401 0.041050 0.014688 0.010029 0.086911 0.041972 0.000625 0.020569 0.086911 0.040804 0.133891 +0.057256 +0.029141 0.039143 0.035866 0.030472 0.018316 0.053938 0.010199 0.035907 0.028456 0.028758 0.015449 0.054311 0.015240 0.015511 0.032209 0.030968 0.015699 0.113711 0.029054 0.020504 0.020223 0.133891 0.042187 0.014369 0.010191 0.063422 0.041926 0.000876 0.019389 0.110401 0.038713 0.157380 +0.115817 +0.032829 0.039191 0.028561 0.028553 0.016465 0.215132 0.009615 0.037169 0.028576 0.030834 0.018208 0.020631 0.015314 0.016419 0.032704 0.028287 0.016192 0.121764 0.028069 0.019267 0.022365 0.063422 0.037621 0.013257 0.006277 0.063422 0.041409 0.002136 0.020536 0.133891 0.040277 0.157380 +0.421306 +0.030251 0.033211 0.030357 0.029656 0.014344 0.162748 0.010172 0.036603 0.029471 0.028376 0.015686 0.043493 0.015181 0.015990 0.032748 0.030212 0.014160 0.122434 0.027928 0.020681 0.022274 0.110401 0.040865 0.011748 0.011743 0.157380 0.039416 0.000128 0.019178 0.180870 0.038480 0.204360 +0.373065 +0.032373 0.036575 0.029247 0.030515 0.018060 0.097621 0.011277 0.035699 0.030626 0.034178 0.015316 0.033228 0.015537 0.016225 0.033705 0.030553 0.017319 0.091523 0.029477 0.020593 0.022813 0.063422 0.038406 0.017496 0.008195 0.110401 0.038800 0.000786 0.020925 0.063422 0.041749 0.157380 +0.200905 +0.028600 0.034639 0.029097 0.028694 0.014834 0.054146 0.010779 0.036391 0.028760 0.035903 0.014118 0.174479 0.015588 0.016191 0.031422 0.028357 0.014108 0.057126 0.027787 0.020060 0.019823 0.086911 0.041486 0.018714 0.009088 0.086911 0.040526 0.000221 0.020425 0.086911 0.038780 0.133891 +0.234805 +0.031916 0.034663 0.031440 0.028696 0.017663 0.035769 0.010870 0.035516 0.028866 0.029198 0.017647 0.072402 0.016085 0.016013 0.031614 0.029739 0.018771 0.035473 0.029312 0.020948 0.020278 0.133891 0.040879 0.015008 0.004946 0.110401 0.040898 0.001790 0.019629 0.086911 0.041299 0.180870 +0.029257 +0.029610 0.038176 0.029190 0.033626 0.014119 0.083044 0.009813 0.035320 0.028612 0.032431 0.015112 0.029984 0.015463 0.015802 0.029636 0.036201 0.014729 0.076330 0.026276 0.020116 0.019113 0.063422 0.037862 0.017216 0.008254 0.086911 0.041750 0.001448 0.019355 0.063422 0.038980 0.133891 +0.221916 +0.031812 0.035497 0.031662 0.028980 0.017627 0.097859 0.009672 0.036540 0.028272 0.031393 0.016032 0.016806 0.016250 0.016049 0.028657 0.032477 0.016652 0.068178 0.027668 0.020573 0.019227 0.086911 0.038768 0.018731 0.005179 0.063422 0.040018 0.000040 0.021034 0.086911 0.040072 0.157380 +0.160536 +0.030135 0.036093 0.029000 0.030425 0.017065 0.075605 0.011423 0.035412 0.032290 0.030258 0.016236 0.589559 0.015854 0.016032 0.033639 0.030029 0.017568 0.173379 0.024971 0.020833 0.021116 0.133891 0.037744 0.014184 0.007563 0.133891 0.040893 0.000171 0.020014 0.133891 0.039171 0.180870 +0.951211 +0.032263 0.034379 0.029075 0.028488 0.014300 0.105674 0.010020 0.035792 0.031236 0.028758 0.018442 0.057035 0.015459 0.015723 0.029371 0.028378 0.017377 0.021143 0.029497 0.019711 0.023223 0.110401 0.041184 0.016828 0.010480 0.063422 0.037983 0.001192 0.021079 0.110401 0.039110 0.157380 +0.044492 +0.029743 0.034318 0.030758 0.028639 0.018447 0.027481 0.011629 0.036287 0.029350 0.028833 0.016972 0.019335 0.016035 0.016329 0.032084 0.028705 0.017857 0.125657 0.028536 0.020426 0.022449 0.133891 0.041123 0.018213 0.007282 0.110401 0.039399 0.001609 0.019062 0.110401 0.041353 0.204360 +0.008602 +0.029483 0.036361 0.031049 0.034504 0.016347 0.452920 0.010527 0.037237 0.031301 0.028381 0.017958 0.032439 0.015944 0.015720 0.028765 0.030324 0.017887 0.088128 0.027826 0.019757 0.021438 0.133891 0.041443 0.018529 0.010412 0.086911 0.040653 0.000526 0.020137 0.086911 0.041563 0.157380 +0.619748 +0.031535 0.039437 0.028962 0.028283 0.017270 0.102613 0.011468 0.036075 0.028970 0.034410 0.016552 0.031657 0.016423 0.016387 0.028523 0.028486 0.017447 0.031450 0.028716 0.021061 0.020791 0.110401 0.042107 0.013409 0.010110 0.086911 0.039915 0.001666 0.018810 0.063422 0.039838 0.133891 +0.094391 +0.028668 0.038382 0.029314 0.032172 0.014710 0.028271 0.011097 0.036222 0.030112 0.028943 0.017161 0.046200 0.015140 0.015842 0.035003 0.029227 0.018279 0.021187 0.028316 0.020333 0.022890 0.063422 0.041885 0.016300 0.006332 0.110401 0.041562 0.001844 0.019948 0.133891 0.037709 0.157380 +0.007519 +0.029950 0.039141 0.028935 0.030644 0.016250 0.281404 0.011386 0.035650 0.030477 0.037644 0.016815 0.092504 0.016263 0.016030 0.030750 0.028383 0.014093 0.035220 0.027574 0.020354 0.019554 0.157380 0.039540 0.013194 0.005457 0.157380 0.042035 0.000692 0.019879 0.133891 0.041835 0.180870 +0.556761 +0.030118 0.036052 0.030003 0.028934 0.016543 0.082254 0.010367 0.036587 0.031131 0.029909 0.015733 0.060981 0.015367 0.016155 0.030254 0.029005 0.014934 0.118899 0.031050 0.019485 0.019176 0.157380 0.040728 0.015115 0.009654 0.110401 0.041580 0.000721 0.020614 0.086911 0.040605 0.180870 +0.140901 +0.032500 0.036748 0.030407 0.033685 0.017105 0.056754 0.011503 0.037301 0.030537 0.031771 0.014743 0.084627 0.015137 0.016279 0.028321 0.028540 0.017197 0.149882 0.028712 0.019466 0.020573 0.180870 0.040208 0.014143 0.011602 0.157380 0.038216 0.001221 0.020627 0.133891 0.038016 0.204360 +0.274744 +0.029132 0.038434 0.039427 0.031650 0.017901 0.072696 0.010877 0.036221 0.028539 0.046538 0.015976 0.042944 0.016213 0.015575 0.030578 0.029850 0.018761 0.402061 0.026988 0.020956 0.019799 0.063422 0.039590 0.017707 0.009469 0.086911 0.038290 0.001950 0.020194 0.110401 0.042157 0.133891 +0.705398 +0.029920 0.034676 0.028230 0.029370 0.014940 0.176600 0.011324 0.036187 0.030548 0.028637 0.015555 0.092645 0.015841 0.016319 0.039079 0.030192 0.017296 0.079214 0.028228 0.020652 0.019267 0.086911 0.037933 0.013748 0.010302 0.110401 0.040454 0.001287 0.019552 0.086911 0.041411 0.133891 +0.459914 +0.028454 0.038081 0.028711 0.030182 0.015514 0.028499 0.011322 0.035341 0.035813 0.042259 0.017977 0.030094 0.015234 0.016067 0.030577 0.031794 0.014125 0.038373 0.027218 0.020975 0.019942 0.063422 0.041415 0.012445 0.012405 0.063422 0.041963 0.001833 0.020691 0.086911 0.040288 0.157380 +0 +0.028867 0.035215 0.028621 0.028238 0.014124 0.029131 0.011188 0.036252 0.031405 0.031126 0.018287 0.068888 0.016233 0.015540 0.030242 0.029651 0.017605 0.090431 0.027965 0.019416 0.020901 0.086911 0.041000 0.015897 0.012801 0.133891 0.042168 0.000220 0.020913 0.133891 0.038864 0.180870 +0.059262 +0.028624 0.035364 0.028406 0.029329 0.014401 0.127515 0.010190 0.035690 0.028815 0.031330 0.014114 0.080827 0.015493 0.015810 0.031410 0.029185 0.014376 0.036708 0.028631 0.018896 0.020426 0.110401 0.038414 0.013732 0.013352 0.063422 0.040457 0.001961 0.018803 0.086911 0.039589 0.180870 +0.175443 +0.029473 0.035704 0.035966 0.030979 0.018274 0.161352 0.011218 0.036405 0.029246 0.028292 0.014354 0.071218 0.016191 0.015811 0.028559 0.028405 0.017581 0.059950 0.027809 0.020688 0.020494 0.063422 0.040911 0.013376 0.005084 0.063422 0.041828 0.000622 0.020308 0.110401 0.039683 0.133891 +0.364960 +0.031201 0.036203 0.032954 0.029017 0.015825 0.023834 0.010693 0.035685 0.035771 0.034540 0.017993 0.016642 0.015413 0.016068 0.032576 0.030533 0.017544 0.097451 0.027930 0.019061 0.019914 0.086911 0.041627 0.018089 0.006074 0.063422 0.041852 0.000978 0.019807 0.063422 0.041436 0.157380 +0.009655 +0.032745 0.034766 0.028688 0.029174 0.017140 0.057392 0.010434 0.035686 0.032111 0.032628 0.017172 0.037804 0.015772 0.015971 0.028497 0.039175 0.014941 0.046779 0.029140 0.020307 0.019753 0.133891 0.038041 0.015027 0.013825 0.063422 0.039983 0.000222 0.019910 0.110401 0.040676 0.180870 +0.022988 +0.030913 0.033274 0.031251 0.031460 0.017133 0.089963 0.009699 0.036998 0.028934 0.028509 0.015458 0.088129 0.015517 0.016163 0.030169 0.029917 0.017638 0.226039 0.028168 0.019284 0.020736 0.063422 0.039041 0.012846 0.006180 0.133891 0.041563 0.001065 0.019914 0.110401 0.038374 0.180870 +0.453825 +0.028964 0.036776 0.030207 0.028301 0.014268 0.099799 0.009849 0.036683 0.032201 0.031538 0.015053 0.034090 0.015281 0.015919 0.033557 0.029670 0.014987 0.329515 0.028455 0.020632 0.022138 0.110401 0.040284 0.012701 0.013055 0.086911 0.041988 0.001302 0.020598 0.110401 0.038189 0.133891 +0.600517 +0.032494 0.033898 0.030189 0.031145 0.017904 0.080746 0.010651 0.035535 0.031728 0.028226 0.017354 0.200827 0.015053 0.015567 0.035762 0.028311 0.018709 0.036388 0.028783 0.020648 0.023120 0.157380 0.039760 0.016851 0.013300 0.086911 0.039705 0.001457 0.020216 0.133891 0.039726 0.180870 +0.326986 +0.031024 0.039243 0.040233 0.031540 0.014308 0.047206 0.010900 0.036355 0.032376 0.028904 0.017511 0.027886 0.016316 0.016141 0.029326 0.029132 0.015856 0.390205 0.027749 0.020352 0.022609 0.110401 0.040862 0.016296 0.013325 0.110401 0.037914 0.001832 0.019141 0.110401 0.040512 0.133891 +0.651024 +0.031049 0.034354 0.029121 0.028227 0.016258 0.134050 0.009681 0.036520 0.035777 0.028461 0.016353 0.065061 0.015563 0.016013 0.031129 0.030185 0.014250 0.019273 0.029987 0.020910 0.021551 0.086911 0.038782 0.017824 0.010526 0.157380 0.037770 0.000883 0.019660 0.086911 0.041075 0.204360 +0.244949 +0.030341 0.035668 0.030280 0.034013 0.015957 0.154107 0.011708 0.036061 0.029961 0.028467 0.017575 0.026038 0.015132 0.015554 0.037228 0.035886 0.015816 0.136751 0.028062 0.019885 0.020638 0.110401 0.039282 0.015242 0.007067 0.086911 0.039813 0.001954 0.019704 0.133891 0.040003 0.157380 +0.379020 +0.031958 0.034425 0.030484 0.030199 0.017626 0.047660 0.009930 0.035969 0.031837 0.029879 0.016345 0.276398 0.015451 0.016343 0.028554 0.028773 0.018510 0.051036 0.028834 0.019907 0.021259 0.110401 0.037626 0.012751 0.004717 0.110401 0.041056 0.000768 0.018960 0.063422 0.041096 0.157380 +0.476317 +0.030899 0.038454 0.035618 0.028663 0.015305 0.094598 0.011393 0.035791 0.034928 0.028335 0.017955 0.040474 0.016207 0.016044 0.032703 0.030621 0.014158 0.094147 0.027662 0.021028 0.022572 0.110401 0.039313 0.012579 0.009999 0.133891 0.039985 0.001813 0.019276 0.157380 0.038608 0.180870 +0.183171 +0.030508 0.037281 0.028528 0.029298 0.016820 0.085726 0.010396 0.036840 0.030260 0.031269 0.018438 0.044918 0.015583 0.016047 0.028697 0.031909 0.015065 0.071429 0.026968 0.020971 0.022916 0.110401 0.039527 0.014996 0.007383 0.110401 0.037835 0.001647 0.020607 0.110401 0.037644 0.157380 +0.211035 +0.030224 0.039149 0.030162 0.029611 0.015426 0.079238 0.010949 0.036375 0.028326 0.029718 0.014599 0.025942 0.015484 0.016280 0.031017 0.029006 0.015138 0.062543 0.028881 0.020239 0.021865 0.063422 0.039179 0.011928 0.012586 0.063422 0.040828 0.001667 0.019427 0.063422 0.041135 0.133891 +0.122329 +0.031125 0.035740 0.029188 0.029299 0.015550 0.215571 0.010144 0.036648 0.029601 0.028915 0.014413 0.024254 0.015709 0.016336 0.029729 0.029949 0.015577 0.236745 0.028840 0.020762 0.022212 0.157380 0.038933 0.013269 0.007543 0.063422 0.037993 0.001171 0.020550 0.133891 0.039889 0.204360 +0.611755 +0.032107 0.036580 0.033096 0.029803 0.015807 0.210549 0.010248 0.036035 0.029428 0.032647 0.015740 0.022163 0.016220 0.016338 0.029824 0.028334 0.016068 0.029755 0.029633 0.018849 0.022233 0.086911 0.038774 0.012206 0.006862 0.086911 0.042011 0.000366 0.020980 0.110401 0.041976 0.133891 +0.312295 +0.031162 0.037462 0.028725 0.029817 0.016558 0.135291 0.010356 0.035997 0.030066 0.034007 0.016268 0.116823 0.015276 0.015682 0.028533 0.036522 0.017583 0.082239 0.027099 0.020428 0.021300 0.086911 0.040806 0.013084 0.009143 0.180870 0.041953 0.000122 0.020071 0.063422 0.037595 0.204360 +0.362140 +0.028438 0.034025 0.028611 0.030086 0.016242 0.261558 0.011019 0.036238 0.031340 0.032872 0.015661 0.105303 0.016327 0.015640 0.029441 0.031472 0.018171 0.066542 0.026488 0.020870 0.020625 0.157380 0.039834 0.015360 0.011350 0.157380 0.039425 0.000281 0.019682 0.180870 0.040858 0.204360 +0.560530 +0.031981 0.039668 0.034616 0.031772 0.018115 0.184154 0.009735 0.036923 0.033942 0.028602 0.017317 0.055612 0.015536 0.016243 0.029654 0.029703 0.016820 0.022185 0.027429 0.020493 0.022562 0.157380 0.040546 0.017379 0.010638 0.086911 0.039584 0.002047 0.020027 0.110401 0.038486 0.180870 +0.226273 +0.028716 0.037762 0.031609 0.029510 0.016279 0.031844 0.010324 0.035838 0.028648 0.029569 0.015991 0.055548 0.015108 0.015567 0.030146 0.029927 0.018041 0.036018 0.026707 0.018817 0.022129 0.063422 0.039911 0.018286 0.011448 0.086911 0.039426 0.000074 0.019205 0.063422 0.038052 0.157380 +0.002196 +0.030115 0.036281 0.033668 0.029362 0.017679 0.021696 0.009944 0.036694 0.035473 0.029626 0.017745 0.038563 0.015278 0.015972 0.032824 0.028850 0.017104 0.271574 0.026820 0.020335 0.022800 0.180870 0.038938 0.018270 0.004730 0.180870 0.041986 0.002253 0.020222 0.110401 0.039681 0.204360 +0.310653 +0.032433 0.036781 0.029872 0.028797 0.016346 0.056168 0.010725 0.037372 0.030676 0.028880 0.017913 0.051001 0.015229 0.016190 0.028524 0.028264 0.014671 0.038868 0.031578 0.019559 0.021123 0.063422 0.039297 0.014409 0.009116 0.133891 0.040793 0.001934 0.019776 0.063422 0.039181 0.204360 +0.001645 +0.031683 0.039306 0.029898 0.034389 0.016749 0.061344 0.010082 0.036725 0.028496 0.029028 0.018179 0.140699 0.016208 0.016043 0.037560 0.028858 0.015775 0.045941 0.027341 0.020703 0.020076 0.157380 0.039903 0.014647 0.012959 0.133891 0.040247 0.000800 0.018963 0.157380 0.041572 0.204360 +0.194321 +0.032076 0.038382 0.028867 0.028725 0.016264 0.086350 0.010824 0.037485 0.031830 0.029221 0.018643 0.117109 0.015504 0.016407 0.029777 0.029519 0.014110 0.040781 0.027762 0.020530 0.022178 0.133891 0.037929 0.017486 0.013342 0.133891 0.037864 0.000936 0.021084 0.110401 0.039492 0.157380 +0.326165 +0.031021 0.033085 0.033189 0.028322 0.015290 0.058330 0.009570 0.036509 0.030794 0.029413 0.018260 0.050113 0.015615 0.016257 0.028457 0.033361 0.017582 0.041409 0.026979 0.018863 0.019255 0.133891 0.041251 0.016486 0.010380 0.133891 0.040240 0.000127 0.019655 0.133891 0.038822 0.180870 +0.052614 +0.031568 0.036195 0.029058 0.029318 0.015288 0.036485 0.009650 0.037539 0.028327 0.031805 0.014232 0.155722 0.015437 0.015825 0.029432 0.028872 0.015308 0.055177 0.028235 0.020394 0.022208 0.133891 0.040515 0.015501 0.011465 0.110401 0.039442 0.002203 0.019390 0.110401 0.040757 0.204360 +0.178214 +0.030432 0.034893 0.028664 0.028680 0.016017 0.018375 0.011409 0.035320 0.029828 0.028394 0.016403 0.037405 0.015990 0.016311 0.029752 0.031528 0.017970 0.067394 0.027459 0.019785 0.020368 0.086911 0.041984 0.012749 0.008433 0.063422 0.039237 0.001290 0.020573 0.086911 0.037646 0.133891 +0.025529 +0.031160 0.037133 0.029586 0.030843 0.015837 0.024531 0.011123 0.037165 0.029777 0.028889 0.018642 0.115962 0.015731 0.016403 0.032988 0.028570 0.017994 0.099346 0.027762 0.020668 0.021219 0.110401 0.038690 0.015117 0.012092 0.086911 0.039304 0.001415 0.019901 0.063422 0.039608 0.133891 +0.193918 +0.029771 0.035851 0.035469 0.029193 0.016181 0.045879 0.009721 0.036634 0.030339 0.029730 0.017365 0.025766 0.015062 0.015783 0.031394 0.028859 0.016032 0.101274 0.029347 0.019560 0.021077 0.110401 0.038035 0.015580 0.009473 0.086911 0.038006 0.000882 0.020367 0.157380 0.037857 0.180870 +0.076642 +0.030582 0.036510 0.039372 0.028343 0.017151 0.021670 0.009700 0.036010 0.030389 0.030632 0.016051 0.029692 0.016351 0.016166 0.031407 0.028519 0.014799 0.019281 0.028970 0.021139 0.021955 0.157380 0.040520 0.014139 0.008023 0.086911 0.041671 0.001083 0.019649 0.157380 0.039850 0.204360 +0 +0.032369 0.033069 0.028472 0.035592 0.014567 0.047733 0.010786 0.036115 0.032673 0.032869 0.016584 0.116422 0.016183 0.016361 0.036405 0.028727 0.015156 0.294620 0.029719 0.020251 0.021816 0.133891 0.038548 0.015362 0.012350 0.110401 0.037876 0.000995 0.020695 0.063422 0.041557 0.157380 +0.603406 +0.030871 0.032998 0.033475 0.031217 0.017379 0.032384 0.010781 0.035782 0.031545 0.034596 0.014509 0.048517 0.015564 0.016346 0.030981 0.028711 0.017773 0.060366 0.029329 0.021030 0.019206 0.110401 0.039683 0.012465 0.005522 0.110401 0.038346 0.001626 0.019173 0.133891 0.042181 0.157380 +0.078535 +0.031212 0.036094 0.030196 0.028601 0.016577 0.080911 0.011675 0.036279 0.030423 0.029404 0.016817 0.051527 0.016124 0.016277 0.029126 0.032540 0.014670 0.017391 0.027782 0.019406 0.022682 0.063422 0.039351 0.013737 0.013758 0.086911 0.040634 0.000565 0.019686 0.086911 0.038989 0.133891 +0.049665 +0.032783 0.037823 0.029690 0.029501 0.015743 0.089818 0.009891 0.036617 0.031868 0.029039 0.015596 0.094712 0.016225 0.015687 0.029684 0.029214 0.017535 0.148277 0.028928 0.021052 0.019997 0.086911 0.042027 0.017229 0.007531 0.110401 0.039670 0.001459 0.019221 0.110401 0.040809 0.157380 +0.358859 +0.031400 0.037336 0.028363 0.033836 0.016560 0.073859 0.011004 0.036754 0.030299 0.031748 0.018657 0.105069 0.015433 0.016287 0.029412 0.038532 0.015331 0.095422 0.029103 0.020055 0.019279 0.086911 0.041353 0.015436 0.010890 0.063422 0.038251 0.000665 0.018842 0.086911 0.037776 0.157380 +0.195592 +0.030167 0.033211 0.028798 0.028828 0.017265 0.023493 0.010755 0.035818 0.029123 0.028204 0.018073 0.195601 0.015655 0.016301 0.032218 0.032101 0.018772 0.160021 0.028308 0.019989 0.022569 0.110401 0.037778 0.015863 0.005304 0.086911 0.039196 0.001230 0.019418 0.086911 0.041388 0.204360 +0.457971 +0.029931 0.035987 0.029196 0.028580 0.017942 0.113826 0.010721 0.037474 0.030239 0.032274 0.016277 0.067518 0.015628 0.015962 0.030781 0.037821 0.016485 0.067461 0.027256 0.021058 0.019557 0.133891 0.042202 0.013920 0.010763 0.110401 0.039615 0.001906 0.019291 0.110401 0.041856 0.180870 +0.245340 +0.028536 0.038880 0.031269 0.031220 0.016488 0.094318 0.009648 0.036519 0.032366 0.034362 0.016780 0.171511 0.015586 0.016283 0.034575 0.028614 0.016979 0.060200 0.029209 0.020197 0.019228 0.157380 0.038260 0.017507 0.007815 0.063422 0.041938 0.000647 0.020960 0.157380 0.038416 0.180870 +0.325963 +0.032482 0.037364 0.032350 0.029083 0.017195 0.187807 0.009943 0.037495 0.030768 0.030795 0.014103 0.070517 0.015221 0.016152 0.030162 0.028878 0.015300 0.031999 0.028170 0.019538 0.022201 0.110401 0.037603 0.013118 0.010002 0.086911 0.040412 0.000547 0.020676 0.063422 0.039371 0.133891 +0.347011 +0.029790 0.033597 0.038487 0.028825 0.016059 0.025790 0.010288 0.035588 0.029029 0.030496 0.014714 0.100715 0.015961 0.015685 0.028290 0.028386 0.017838 0.352759 0.028826 0.019869 0.023168 0.110401 0.039738 0.014049 0.005944 0.086911 0.037933 0.002345 0.019289 0.110401 0.040966 0.133891 +0.687251 +0.028359 0.037122 0.032020 0.029991 0.017107 0.106058 0.011719 0.037124 0.029332 0.028191 0.018221 0.078547 0.016105 0.016374 0.028215 0.028757 0.018681 0.039793 0.029674 0.019352 0.021662 0.133891 0.038604 0.014889 0.009075 0.110401 0.041823 0.002082 0.020928 0.110401 0.039472 0.157380 +0.240927 +0.032785 0.036386 0.029820 0.028637 0.015946 0.177111 0.009790 0.037467 0.033390 0.032031 0.014112 0.022704 0.015486 0.016245 0.034037 0.028897 0.016566 0.037536 0.028385 0.018971 0.018905 0.180870 0.038618 0.016619 0.009846 0.133891 0.041606 0.000635 0.019427 0.157380 0.037749 0.204360 +0.082137 +0.031511 0.039514 0.031040 0.032450 0.016048 0.083913 0.011333 0.035504 0.028236 0.028873 0.015082 0.085099 0.015160 0.016158 0.030398 0.033883 0.017410 0.030505 0.028531 0.020372 0.019792 0.157380 0.040866 0.014353 0.007290 0.110401 0.038650 0.001121 0.020365 0.086911 0.039873 0.180870 +0.100538 +0.032356 0.034189 0.031660 0.028811 0.017756 0.069075 0.011076 0.037340 0.031110 0.032369 0.016444 0.038180 0.016256 0.015831 0.029289 0.029654 0.015578 0.081049 0.029186 0.020286 0.021599 0.133891 0.041684 0.013793 0.008696 0.063422 0.037742 0.002241 0.020809 0.110401 0.041164 0.204360 +0.080638 +0.029093 0.038568 0.032127 0.028870 0.016527 0.128593 0.011103 0.036353 0.034417 0.030929 0.014465 0.112998 0.015969 0.016180 0.040345 0.028370 0.018134 0.160688 0.027519 0.019903 0.020597 0.086911 0.037664 0.013512 0.010563 0.110401 0.042045 0.000483 0.020554 0.086911 0.040655 0.133891 +0.482702 +0.031948 0.033698 0.029293 0.028733 0.014690 0.112750 0.009768 0.036544 0.028996 0.029284 0.018725 0.063617 0.015502 0.015616 0.030922 0.028252 0.014618 0.037872 0.027290 0.020054 0.020289 0.110401 0.039404 0.012142 0.009866 0.110401 0.042040 0.002102 0.019254 0.110401 0.038841 0.133891 +0.258462 +0.030169 0.035292 0.028748 0.030669 0.018306 0.025273 0.010367 0.035360 0.028258 0.028725 0.018660 0.045586 0.016043 0.016133 0.039464 0.029393 0.015326 0.017742 0.029813 0.019842 0.023371 0.086911 0.037699 0.018470 0.008392 0.110401 0.039931 0.000678 0.020074 0.086911 0.039587 0.133891 +0.004029 +0.030192 0.036327 0.030056 0.032082 0.014784 0.130975 0.011147 0.037578 0.028426 0.028409 0.018089 0.062071 0.015167 0.015518 0.031408 0.028274 0.017470 0.057229 0.027591 0.020840 0.021877 0.133891 0.040119 0.013417 0.010541 0.110401 0.041875 0.001054 0.019187 0.157380 0.037839 0.180870 +0.388940 +0.028626 0.034091 0.029116 0.033318 0.017719 0.067494 0.010142 0.037328 0.030112 0.029430 0.017779 0.029120 0.016081 0.015643 0.031709 0.039402 0.016958 0.056848 0.027718 0.019622 0.019670 0.086911 0.038210 0.017087 0.008255 0.133891 0.040746 0.000892 0.019874 0.086911 0.038584 0.180870 +0.004241 +0.032601 0.035775 0.029261 0.029601 0.016852 0.037653 0.011243 0.036876 0.034469 0.028291 0.017510 0.198574 0.016042 0.016167 0.028261 0.033441 0.014519 0.076220 0.027838 0.020462 0.023196 0.086911 0.042024 0.013794 0.013548 0.110401 0.039751 0.000410 0.018858 0.086911 0.041463 0.157380 +0.316399 +0.030508 0.039213 0.030161 0.034362 0.015528 0.073388 0.011629 0.037260 0.028684 0.028804 0.018727 0.136174 0.015709 0.016103 0.031558 0.028478 0.018318 0.120098 0.029441 0.021109 0.020542 0.133891 0.038130 0.017932 0.008156 0.110401 0.037672 0.001831 0.020972 0.133891 0.040967 0.204360 +0.356354 +0.030759 0.033856 0.029168 0.031834 0.016535 0.307507 0.011056 0.035401 0.029066 0.028935 0.015437 0.088117 0.016151 0.015589 0.028331 0.030414 0.017960 0.093598 0.027770 0.020964 0.023193 0.110401 0.038632 0.012811 0.007588 0.086911 0.041025 0.001817 0.020630 0.133891 0.041968 0.180870 +0.598673 +0.031071 0.038081 0.028508 0.029878 0.015039 0.096397 0.010624 0.036834 0.029543 0.031738 0.018413 0.297448 0.016312 0.015545 0.032002 0.033043 0.018057 0.036078 0.026884 0.019945 0.022057 0.110401 0.040768 0.012119 0.009244 0.063422 0.038238 0.000425 0.019615 0.110401 0.037827 0.180870 +0.607648 +0.030634 0.037616 0.028246 0.031697 0.017904 0.038296 0.009622 0.036617 0.028993 0.029490 0.016971 0.143525 0.015461 0.015939 0.028212 0.029093 0.014490 0.021678 0.029347 0.019674 0.020632 0.133891 0.039933 0.012113 0.007232 0.110401 0.037964 0.000374 0.019699 0.110401 0.039256 0.157380 +0.209031 +0.030762 0.037771 0.030922 0.031105 0.016378 0.034833 0.011181 0.036445 0.032465 0.029264 0.016160 0.059491 0.015735 0.016356 0.034591 0.030118 0.017985 0.104907 0.028493 0.019521 0.019008 0.110401 0.041717 0.015750 0.011644 0.133891 0.039029 0.001209 0.020021 0.110401 0.039002 0.180870 +0.072425 +0.032644 0.037921 0.028212 0.031570 0.017592 0.021232 0.010980 0.036508 0.030055 0.028970 0.015736 0.083115 0.015041 0.015940 0.030910 0.029512 0.015487 0.029123 0.027807 0.019032 0.018859 0.063422 0.042178 0.016775 0.008986 0.110401 0.040869 0.000387 0.020141 0.133891 0.038982 0.204360 +0.005140 +0.029682 0.036665 0.032336 0.028939 0.018483 0.042270 0.011307 0.036128 0.031476 0.028807 0.014282 0.215005 0.015871 0.015820 0.029431 0.028262 0.018465 0.071405 0.027466 0.018945 0.022084 0.063422 0.040713 0.018426 0.006988 0.063422 0.040883 0.000089 0.018997 0.063422 0.041175 0.133891 +0.372596 +0.029014 0.035080 0.029224 0.029559 0.017197 0.049675 0.009987 0.035446 0.037117 0.029520 0.017826 0.018252 0.015317 0.015839 0.029379 0.030519 0.017289 0.126684 0.029064 0.019282 0.020122 0.157380 0.041344 0.015520 0.009634 0.180870 0.037717 0.001851 0.020180 0.180870 0.041293 0.204360 +0.102949 +0.032603 0.035092 0.030223 0.028210 0.017883 0.050939 0.009654 0.035574 0.029686 0.029585 0.016505 0.290783 0.016119 0.016424 0.031746 0.029471 0.015667 0.154864 0.025801 0.020122 0.021518 0.110401 0.040990 0.012062 0.007996 0.110401 0.038358 0.001773 0.019517 0.133891 0.040955 0.204360 +0.660321 +0.030489 0.039640 0.031982 0.028916 0.016656 0.212447 0.011339 0.037333 0.028610 0.033578 0.016058 0.160203 0.016120 0.016186 0.029322 0.028401 0.017854 0.112447 0.028095 0.018804 0.022091 0.063422 0.040749 0.011834 0.006367 0.063422 0.040632 0.001466 0.019654 0.086911 0.039698 0.157380 +0.638917 +0.028747 0.034153 0.035642 0.028762 0.017130 0.036638 0.010412 0.035482 0.032137 0.032091 0.014524 0.103480 0.016232 0.015869 0.031856 0.028740 0.016631 0.115822 0.028295 0.018887 0.019847 0.133891 0.040938 0.013352 0.008504 0.180870 0.039620 0.000866 0.021072 0.157380 0.042192 0.204360 +0.223496 +0.029838 0.033817 0.034601 0.041123 0.014679 0.204455 0.010535 0.036889 0.028274 0.028254 0.014293 0.039975 0.015547 0.015929 0.030683 0.029392 0.016125 0.063129 0.028681 0.020169 0.020768 0.063422 0.038125 0.014509 0.011262 0.063422 0.041870 0.001736 0.020102 0.086911 0.039477 0.157380 +0.288833 +0.032593 0.037097 0.032393 0.029453 0.016437 0.063787 0.011501 0.035896 0.029404 0.030937 0.018202 0.139013 0.016067 0.016233 0.031997 0.029830 0.016750 0.071564 0.028259 0.021033 0.022368 0.086911 0.040926 0.016916 0.008289 0.086911 0.041123 0.000898 0.020109 0.063422 0.038012 0.133891 +0.312202 +0.030597 0.037534 0.030137 0.031761 0.016500 0.027520 0.009529 0.035999 0.033572 0.029674 0.018122 0.027979 0.015435 0.016275 0.029830 0.030738 0.014386 0.019969 0.029979 0.019777 0.020323 0.110401 0.040155 0.018493 0.009277 0.110401 0.037707 0.001995 0.019226 0.063422 0.041477 0.133891 +0 +0.031638 0.034787 0.030578 0.030319 0.017113 0.022823 0.011471 0.036507 0.029167 0.029018 0.014955 0.142719 0.015413 0.016141 0.030485 0.029459 0.016901 0.033678 0.026749 0.019268 0.022378 0.086911 0.039107 0.014490 0.007286 0.110401 0.038632 0.000662 0.019294 0.063422 0.039961 0.180870 +0.225410 +0.029535 0.037950 0.030143 0.030046 0.014557 0.182738 0.011622 0.037519 0.036046 0.029377 0.018588 0.032477 0.015352 0.015942 0.028805 0.030771 0.014801 0.144698 0.027760 0.019047 0.022429 0.086911 0.039082 0.012099 0.005720 0.086911 0.042266 0.001944 0.019001 0.063422 0.041473 0.133891 +0.330919 +0.031550 0.036156 0.030687 0.029050 0.018035 0.128842 0.011673 0.036799 0.028471 0.031087 0.016310 0.096033 0.015374 0.015642 0.028309 0.031851 0.015029 0.144640 0.027576 0.019219 0.023086 0.086911 0.040045 0.013459 0.006847 0.133891 0.040102 0.001490 0.018986 0.063422 0.039263 0.157380 +0.438958 +0.031855 0.037985 0.028527 0.028401 0.017028 0.036496 0.010103 0.035340 0.028317 0.031756 0.017681 0.061722 0.015946 0.015572 0.028226 0.033884 0.018693 0.021318 0.028582 0.019866 0.020204 0.063422 0.040747 0.015505 0.011894 0.086911 0.039348 0.001745 0.020068 0.086911 0.039066 0.157380 +0 +0.032878 0.034408 0.029027 0.029088 0.015702 0.020242 0.011528 0.035488 0.031166 0.029040 0.018363 0.208998 0.016226 0.016318 0.032282 0.037854 0.018402 0.033970 0.028857 0.020446 0.021666 0.133891 0.041581 0.017007 0.010011 0.086911 0.040116 0.000238 0.020948 0.133891 0.039060 0.157380 +0.197456 +0.031705 0.037763 0.028864 0.028893 0.014190 0.065912 0.011233 0.036942 0.028805 0.028531 0.016051 0.041326 0.015877 0.016300 0.028695 0.029394 0.017854 0.030338 0.028785 0.019870 0.022235 0.157380 0.037585 0.018408 0.004854 0.086911 0.039456 0.000187 0.018848 0.110401 0.038407 0.180870 +0.091193 +0.028219 0.038563 0.031800 0.030869 0.017477 0.028049 0.009811 0.036042 0.030923 0.029984 0.017632 0.018760 0.016057 0.015991 0.030670 0.030421 0.018450 0.086638 0.026639 0.019425 0.019730 0.086911 0.037868 0.014345 0.006099 0.086911 0.038289 0.001776 0.020786 0.157380 0.040355 0.180870 +0.037859 +0.029913 0.036188 0.035099 0.029943 0.017092 0.051335 0.010337 0.036901 0.029118 0.028804 0.014976 0.047469 0.016164 0.016253 0.029086 0.029038 0.018341 0.047250 0.028088 0.018846 0.022890 0.063422 0.039394 0.014251 0.006542 0.063422 0.040654 0.000956 0.018881 0.086911 0.039686 0.204360 +0.029634 +0.032124 0.034260 0.032549 0.029697 0.016332 0.023081 0.009595 0.037443 0.029389 0.028574 0.017371 0.092623 0.016014 0.016235 0.028228 0.032755 0.018414 0.090363 0.027696 0.020972 0.022552 0.063422 0.037872 0.012453 0.011293 0.086911 0.041870 0.001521 0.019008 0.063422 0.038623 0.133891 +0.219922 +0.030092 0.033667 0.033158 0.030533 0.014652 0.029360 0.010155 0.036665 0.032526 0.031037 0.014421 0.041675 0.015396 0.015924 0.029885 0.029278 0.015226 0.047358 0.026618 0.019316 0.019355 0.086911 0.042245 0.016586 0.010698 0.086911 0.038832 0.000856 0.020049 0.110401 0.042139 0.133891 +0.023265 +0.028430 0.036947 0.032200 0.030218 0.015961 0.115866 0.010309 0.036883 0.032653 0.029269 0.014999 0.052092 0.016249 0.016238 0.035149 0.028680 0.015309 0.085984 0.027236 0.019736 0.020139 0.086911 0.039070 0.018093 0.013761 0.063422 0.038134 0.001372 0.020692 0.157380 0.037990 0.180870 +0.209402 +0.028625 0.035014 0.028193 0.028331 0.017262 0.188958 0.010822 0.037178 0.029186 0.029074 0.017789 0.075608 0.016186 0.015888 0.028423 0.030703 0.018608 0.020368 0.029405 0.019723 0.022919 0.086911 0.039617 0.012032 0.011519 0.110401 0.042274 0.001434 0.019294 0.110401 0.041529 0.157380 +0.248778 +0.030583 0.037957 0.028473 0.028692 0.017977 0.081017 0.009830 0.036363 0.029074 0.032637 0.017340 0.089157 0.015155 0.016370 0.028347 0.028274 0.017335 0.176170 0.026238 0.018961 0.020160 0.063422 0.042169 0.015915 0.010606 0.063422 0.041083 0.001715 0.019102 0.086911 0.039812 0.133891 +0.304845 +0.031098 0.036621 0.028279 0.028862 0.016962 0.105707 0.011204 0.035393 0.030437 0.030009 0.015032 0.017918 0.016233 0.016296 0.029483 0.036241 0.015459 0.112860 0.028821 0.019373 0.022624 0.180870 0.038774 0.016715 0.013297 0.086911 0.038585 0.001508 0.018948 0.180870 0.038347 0.204360 +0.191751 +0.030635 0.035443 0.033757 0.030406 0.017714 0.164110 0.010437 0.035405 0.029208 0.034622 0.018729 0.080045 0.015385 0.016282 0.031910 0.031517 0.016185 0.111880 0.028405 0.019084 0.022911 0.063422 0.039951 0.015591 0.012368 0.110401 0.037993 0.001071 0.019579 0.086911 0.038105 0.180870 +0.472243 +0.029258 0.034983 0.029592 0.029973 0.017568 0.112897 0.009439 0.037236 0.029823 0.029836 0.016712 0.024534 0.015372 0.015793 0.028642 0.031830 0.014818 0.187517 0.027240 0.019001 0.022948 0.086911 0.041198 0.013889 0.009644 0.086911 0.038676 0.000656 0.020893 0.063422 0.038359 0.180870 +0.471387 +0.028965 0.038551 0.034299 0.029698 0.016227 0.034307 0.009628 0.037421 0.028887 0.028698 0.014287 0.108348 0.016062 0.016101 0.029448 0.029089 0.017966 0.044834 0.028978 0.021113 0.019832 0.133891 0.040129 0.015730 0.007051 0.110401 0.040222 0.000556 0.020036 0.110401 0.040503 0.157380 +0.105337 +0.029324 0.036220 0.030975 0.029077 0.018413 0.073287 0.011319 0.035867 0.028253 0.031710 0.016201 0.039401 0.015502 0.016018 0.029793 0.030952 0.018726 0.019724 0.027164 0.019819 0.020023 0.110401 0.037936 0.014278 0.011910 0.110401 0.040297 0.001538 0.019035 0.133891 0.042189 0.204360 +0.012556 +0.028811 0.033090 0.028928 0.030014 0.016720 0.042996 0.010653 0.036424 0.028759 0.028735 0.014135 0.111317 0.015939 0.015688 0.028977 0.030698 0.017502 0.049745 0.028622 0.019039 0.023145 0.110401 0.037630 0.012978 0.011120 0.086911 0.041627 0.000476 0.020336 0.110401 0.039488 0.204360 +0.113244 +0.032423 0.033333 0.030543 0.030920 0.018016 0.137018 0.009876 0.036422 0.033107 0.030881 0.017063 0.113995 0.016403 0.016335 0.032811 0.028399 0.017581 0.119525 0.028410 0.019284 0.021460 0.180870 0.042145 0.012165 0.010406 0.063422 0.038521 0.000178 0.020043 0.086911 0.041248 0.204360 +0.425599 +0.028205 0.033000 0.029118 0.036895 0.016029 0.029608 0.010936 0.037542 0.029290 0.036850 0.018117 0.255282 0.015473 0.016004 0.035745 0.029708 0.017881 0.058156 0.027880 0.020929 0.020590 0.110401 0.037623 0.016039 0.006353 0.133891 0.041840 0.001024 0.019324 0.110401 0.038764 0.180870 +0.363313 +0.028662 0.038806 0.029102 0.030839 0.018493 0.043149 0.010658 0.035243 0.034292 0.028415 0.014432 0.041882 0.016006 0.016245 0.029371 0.029253 0.015993 0.132751 0.027793 0.020135 0.020850 0.110401 0.039581 0.011945 0.013950 0.110401 0.039843 0.000646 0.020184 0.086911 0.038897 0.180870 +0.094540 +0.030356 0.038775 0.035071 0.031759 0.017613 0.025960 0.010907 0.036275 0.035217 0.029200 0.017496 0.033505 0.015199 0.016195 0.028235 0.031245 0.014923 0.042663 0.028724 0.020628 0.022206 0.110401 0.039461 0.012404 0.008529 0.110401 0.042176 0.001460 0.020950 0.157380 0.037942 0.180870 +0 +0.030643 0.035368 0.031142 0.029651 0.015884 0.047689 0.010865 0.035288 0.033883 0.028490 0.018410 0.023645 0.015766 0.015754 0.028272 0.030347 0.014193 0.200029 0.028305 0.019805 0.022539 0.086911 0.040551 0.017023 0.012776 0.086911 0.041931 0.001706 0.019892 0.133891 0.040339 0.157380 +0.345570 +0.028505 0.033837 0.028700 0.033296 0.015042 0.059646 0.010031 0.037169 0.028460 0.031299 0.016796 0.084283 0.016079 0.015816 0.030163 0.032556 0.017283 0.102088 0.026117 0.019777 0.020869 0.110401 0.041280 0.017239 0.012764 0.063422 0.040947 0.002323 0.019668 0.063422 0.040448 0.133891 +0.172670 +0.032505 0.034892 0.028272 0.028398 0.017520 0.051184 0.010190 0.037029 0.029433 0.028585 0.014472 0.207600 0.015739 0.015695 0.033644 0.028756 0.016939 0.040666 0.028959 0.020953 0.022920 0.086911 0.041280 0.017421 0.005680 0.063422 0.038437 0.001931 0.018834 0.063422 0.041948 0.157380 +0.256273 +0.030946 0.036215 0.028432 0.028405 0.016502 0.019001 0.010268 0.036687 0.030114 0.031233 0.014876 0.127527 0.016217 0.016313 0.030846 0.029209 0.017427 0.149461 0.028995 0.020754 0.020590 0.110401 0.039762 0.013698 0.006582 0.086911 0.037684 0.000785 0.020657 0.086911 0.038410 0.133891 +0.371443 +0.028522 0.036784 0.030867 0.028949 0.018638 0.118339 0.009560 0.035729 0.029322 0.030364 0.015486 0.016668 0.016101 0.015834 0.034539 0.030417 0.015928 0.086414 0.026989 0.018877 0.022222 0.110401 0.040108 0.015858 0.008512 0.063422 0.038567 0.000423 0.020553 0.063422 0.038283 0.157380 +0.130769 +0.028310 0.038870 0.029807 0.028233 0.016947 0.023098 0.011646 0.035366 0.028862 0.028979 0.018656 0.273722 0.015842 0.015992 0.031313 0.037584 0.014472 0.152371 0.029149 0.020568 0.023199 0.063422 0.038786 0.012652 0.010266 0.086911 0.042039 0.000287 0.020199 0.086911 0.037663 0.133891 +0.630891 +0.032557 0.035995 0.028759 0.028486 0.015958 0.060299 0.009454 0.035281 0.033119 0.030607 0.017630 0.151867 0.015505 0.015568 0.029866 0.028379 0.014336 0.028961 0.029212 0.018918 0.021654 0.133891 0.038340 0.011771 0.005823 0.086911 0.041035 0.001981 0.019775 0.063422 0.038220 0.180870 +0.184765 +0.031278 0.039121 0.030868 0.031814 0.015320 0.053086 0.009773 0.037308 0.030224 0.029500 0.017916 0.206967 0.015339 0.016001 0.029600 0.032418 0.015230 0.195612 0.028842 0.020470 0.020975 0.086911 0.041799 0.018659 0.008648 0.133891 0.042226 0.000655 0.021077 0.110401 0.038817 0.157380 +0.597271 +0.031576 0.033843 0.029543 0.032145 0.016937 0.106126 0.011055 0.035511 0.030475 0.030557 0.017357 0.147095 0.015058 0.015806 0.028414 0.028217 0.015313 0.145678 0.027337 0.019080 0.018814 0.086911 0.038712 0.016139 0.006629 0.086911 0.039294 0.000128 0.019060 0.063422 0.038779 0.157380 +0.539029 +0.032477 0.033613 0.031295 0.030213 0.016088 0.185759 0.010549 0.036143 0.028599 0.031169 0.018542 0.061602 0.015451 0.015521 0.030600 0.032078 0.018065 0.151565 0.025185 0.019157 0.022548 0.133891 0.039411 0.017241 0.005279 0.063422 0.039350 0.000337 0.019364 0.133891 0.041564 0.157380 +0.464735 +0.030916 0.036998 0.030702 0.032617 0.017814 0.025914 0.009758 0.036002 0.028780 0.034267 0.014255 0.079488 0.015083 0.015728 0.028700 0.031779 0.015690 0.079520 0.026595 0.019419 0.022035 0.086911 0.038913 0.011902 0.008550 0.133891 0.040014 0.000047 0.020160 0.157380 0.039778 0.180870 +0.075129 +0.028505 0.037706 0.032715 0.031043 0.015523 0.055543 0.010193 0.036204 0.032442 0.033291 0.016100 0.103206 0.015847 0.016072 0.028630 0.028679 0.015705 0.017861 0.028584 0.020826 0.022760 0.133891 0.038778 0.015821 0.008721 0.110401 0.038815 0.001435 0.019024 0.110401 0.041094 0.204360 +0.070060 +0.032450 0.039453 0.029298 0.029925 0.017676 0.088003 0.009950 0.036098 0.029092 0.028696 0.014916 0.026312 0.015042 0.015861 0.033017 0.029399 0.014626 0.150609 0.030180 0.020026 0.021889 0.110401 0.039635 0.013666 0.008796 0.063422 0.039032 0.002246 0.019057 0.063422 0.037584 0.157380 +0.261587 +0.028718 0.039896 0.028620 0.028360 0.016778 0.036462 0.009994 0.037349 0.028483 0.028785 0.018154 0.286690 0.015696 0.015592 0.030517 0.030769 0.014929 0.041379 0.029184 0.019953 0.019325 0.063422 0.037866 0.018339 0.009831 0.133891 0.041749 0.001839 0.019691 0.133891 0.039688 0.157380 +0.456161 +0.030660 0.039737 0.031550 0.030368 0.018434 0.029958 0.011407 0.036182 0.028541 0.031900 0.015607 0.024622 0.016198 0.015965 0.030647 0.031054 0.014261 0.044768 0.028622 0.019699 0.022231 0.086911 0.039956 0.016460 0.010062 0.086911 0.041954 0.002278 0.020527 0.133891 0.037989 0.157380 +0.001594 +0.032824 0.039356 0.030941 0.031322 0.016358 0.046843 0.010220 0.035241 0.028329 0.028467 0.014473 0.061041 0.016363 0.016350 0.031564 0.028223 0.018669 0.127205 0.027633 0.019372 0.019109 0.133891 0.040386 0.011983 0.008724 0.157380 0.040636 0.000680 0.019797 0.110401 0.039901 0.180870 +0.207923 +0.032356 0.034285 0.028763 0.029560 0.017627 0.093025 0.009554 0.036546 0.031842 0.030944 0.016377 0.135630 0.015791 0.015760 0.031020 0.029129 0.015494 0.215825 0.026431 0.019003 0.022314 0.063422 0.041532 0.012292 0.005423 0.063422 0.040242 0.000691 0.019485 0.086911 0.038826 0.157380 +0.597009 +0.030610 0.036553 0.028611 0.028215 0.016478 0.120576 0.011107 0.036253 0.031229 0.035017 0.016996 0.122747 0.016301 0.015609 0.033343 0.029527 0.016979 0.029614 0.028318 0.020227 0.020077 0.086911 0.039934 0.013179 0.010407 0.063422 0.038012 0.001751 0.019206 0.086911 0.041976 0.133891 +0.309862 +0.031893 0.036200 0.030493 0.029527 0.015178 0.019035 0.011374 0.037442 0.031632 0.028741 0.016530 0.072037 0.016034 0.015650 0.030408 0.030412 0.018006 0.286329 0.027975 0.018959 0.023279 0.180870 0.039605 0.015567 0.008455 0.180870 0.037603 0.001421 0.018807 0.110401 0.038228 0.204360 +0.536578 +0.030560 0.033703 0.029839 0.035021 0.018043 0.034998 0.010889 0.036698 0.029784 0.041632 0.017981 0.028738 0.016194 0.015554 0.028276 0.029067 0.016026 0.030858 0.029688 0.019402 0.020261 0.086911 0.039873 0.013988 0.012299 0.086911 0.040870 0.001277 0.019093 0.110401 0.038484 0.157380 +0 +0.028210 0.035173 0.034844 0.028979 0.014602 0.090984 0.010863 0.036419 0.028604 0.030734 0.014843 0.032700 0.016411 0.015561 0.029666 0.034081 0.014401 0.089973 0.028371 0.019038 0.020113 0.133891 0.039645 0.016445 0.011213 0.063422 0.042246 0.001260 0.019696 0.086911 0.037762 0.157380 +0.136782 +0.030318 0.034683 0.033298 0.029042 0.015446 0.065403 0.010156 0.036891 0.028648 0.028578 0.017640 0.040497 0.015685 0.016041 0.032527 0.033084 0.017643 0.197362 0.027967 0.020861 0.022319 0.086911 0.039451 0.013958 0.009983 0.110401 0.040708 0.002099 0.019282 0.086911 0.037845 0.133891 +0.317873 +0.028928 0.033091 0.028775 0.030947 0.017098 0.058709 0.011397 0.037560 0.032121 0.028736 0.016558 0.098142 0.016210 0.016359 0.028526 0.034324 0.016904 0.098210 0.026979 0.019200 0.022983 0.157380 0.042126 0.014662 0.005874 0.133891 0.041273 0.001221 0.020184 0.133891 0.038493 0.180870 +0.234322 +0.031608 0.036131 0.032754 0.032683 0.015065 0.091330 0.010113 0.036023 0.030443 0.029961 0.014426 0.077741 0.015967 0.016327 0.028380 0.030013 0.017114 0.041953 0.028493 0.020714 0.018818 0.086911 0.040907 0.018148 0.008288 0.180870 0.041231 0.000532 0.020411 0.180870 0.041095 0.204360 +0.139354 +0.029976 0.038867 0.029200 0.028455 0.016543 0.027292 0.011261 0.036690 0.028942 0.030291 0.016633 0.017060 0.016295 0.016069 0.035426 0.029108 0.018464 0.099205 0.029026 0.018882 0.020065 0.063422 0.038643 0.017858 0.011967 0.157380 0.039233 0.000533 0.020289 0.086911 0.040399 0.204360 +0.012360 +0.028800 0.033009 0.028324 0.032686 0.018778 0.072865 0.010157 0.037473 0.031761 0.029612 0.014488 0.075816 0.015826 0.015875 0.031898 0.035639 0.018500 0.042450 0.028061 0.021088 0.021830 0.063422 0.041928 0.012629 0.012719 0.110401 0.042047 0.001563 0.020316 0.110401 0.040488 0.157380 +0.070772 +0.031674 0.035317 0.031791 0.032165 0.018397 0.116155 0.010447 0.035530 0.029065 0.042168 0.018439 0.036008 0.015150 0.015648 0.040559 0.029626 0.016250 0.058173 0.026373 0.019008 0.022097 0.133891 0.039632 0.011851 0.005370 0.086911 0.038226 0.000294 0.020988 0.110401 0.041324 0.157380 +0.232977 +0.032266 0.037185 0.030977 0.029745 0.017302 0.055955 0.011006 0.035715 0.029348 0.043097 0.014138 0.019457 0.016418 0.016258 0.030335 0.033521 0.016948 0.028343 0.027268 0.019931 0.022199 0.110401 0.040850 0.017087 0.009364 0.063422 0.041516 0.001303 0.019288 0.110401 0.039235 0.157380 +0.013512 +0.032325 0.037427 0.029945 0.029385 0.014716 0.091658 0.010031 0.035256 0.028428 0.033599 0.015988 0.036526 0.015327 0.015821 0.028588 0.029679 0.014877 0.043744 0.028804 0.018987 0.020270 0.086911 0.040051 0.017609 0.012299 0.063422 0.041484 0.001864 0.019833 0.063422 0.038021 0.180870 +0.088198 +0.032653 0.037112 0.030276 0.030088 0.017931 0.183165 0.011111 0.037011 0.031672 0.034606 0.018073 0.101176 0.015520 0.016424 0.030899 0.029350 0.017579 0.056424 0.025760 0.019195 0.018914 0.133891 0.038746 0.013759 0.008418 0.063422 0.039192 0.001400 0.019682 0.086911 0.039353 0.157380 +0.485031 +0.030997 0.034044 0.028402 0.031294 0.016318 0.060661 0.011264 0.037483 0.028883 0.032748 0.014656 0.023429 0.015944 0.015787 0.030063 0.031182 0.016474 0.020194 0.030402 0.020699 0.022590 0.110401 0.040848 0.015973 0.012113 0.063422 0.041639 0.000638 0.018896 0.063422 0.039813 0.133891 +0.009753 +0.030054 0.034698 0.035478 0.029949 0.018615 0.033105 0.009910 0.037128 0.031422 0.032761 0.017892 0.019518 0.015068 0.015628 0.028612 0.029721 0.014406 0.043154 0.028023 0.019090 0.019441 0.133891 0.040212 0.016492 0.008724 0.086911 0.039819 0.001560 0.020437 0.086911 0.042095 0.157380 +0.001930 +0.032798 0.034999 0.028291 0.029121 0.015366 0.099072 0.010907 0.036018 0.029997 0.033715 0.016255 0.081727 0.015506 0.016398 0.029608 0.028752 0.014833 0.067993 0.027501 0.020666 0.019241 0.086911 0.041110 0.018591 0.012544 0.086911 0.040240 0.001532 0.019110 0.157380 0.040586 0.180870 +0.218001 +0.030425 0.033334 0.028478 0.034440 0.015112 0.107141 0.009874 0.035835 0.031319 0.032107 0.018011 0.047043 0.015626 0.016279 0.033945 0.028722 0.016279 0.194348 0.029427 0.020861 0.020815 0.157380 0.039205 0.015162 0.010265 0.086911 0.039889 0.001808 0.020771 0.133891 0.038774 0.204360 +0.412338 +0.031379 0.035118 0.029353 0.029163 0.016391 0.049995 0.010654 0.037071 0.032686 0.028282 0.014237 0.046533 0.016128 0.016142 0.035043 0.032493 0.017836 0.047400 0.028730 0.019475 0.022795 0.063422 0.039957 0.015997 0.005791 0.086911 0.038892 0.002001 0.020711 0.086911 0.039656 0.157380 +0.008915 +0.028933 0.038627 0.032858 0.033525 0.017456 0.076887 0.009639 0.036309 0.038058 0.028533 0.017937 0.083942 0.016029 0.015578 0.029139 0.029953 0.015210 0.181053 0.028575 0.020880 0.019858 0.086911 0.040174 0.014349 0.004754 0.063422 0.040936 0.002151 0.020819 0.063422 0.040511 0.180870 +0.360568 +0.031463 0.039901 0.028253 0.036573 0.017356 0.056724 0.010331 0.036769 0.029026 0.031333 0.015534 0.050612 0.015884 0.016252 0.029267 0.035527 0.016662 0.058860 0.027005 0.019667 0.022032 0.110401 0.039622 0.015828 0.013422 0.110401 0.041982 0.000889 0.018864 0.133891 0.039686 0.180870 +0.044985 +0.031840 0.038069 0.028777 0.028464 0.016494 0.025150 0.010813 0.035860 0.031566 0.028305 0.016114 0.095328 0.015181 0.015659 0.033904 0.028862 0.017342 0.094848 0.027739 0.019167 0.019145 0.086911 0.038527 0.013444 0.005465 0.110401 0.038493 0.000626 0.019312 0.110401 0.037960 0.133891 +0.279001 +0.029152 0.035842 0.029340 0.031972 0.015089 0.027038 0.009886 0.036554 0.028677 0.030551 0.017388 0.114415 0.015873 0.015662 0.032180 0.032801 0.014127 0.036342 0.028809 0.019252 0.022603 0.180870 0.040810 0.016463 0.010507 0.086911 0.041638 0.000405 0.019164 0.086911 0.039590 0.204360 +0.064303 +0.029621 0.037935 0.029793 0.029091 0.016284 0.041864 0.009428 0.036210 0.030484 0.028558 0.018551 0.197247 0.015888 0.016063 0.029305 0.029371 0.015391 0.083353 0.028912 0.018832 0.019920 0.063422 0.042268 0.013158 0.005540 0.063422 0.039423 0.000082 0.021100 0.110401 0.041986 0.133891 +0.321102 +0.031043 0.037051 0.031487 0.028521 0.016142 0.024727 0.010296 0.035854 0.031477 0.029251 0.015795 0.030022 0.015813 0.016254 0.032731 0.028196 0.018460 0.053144 0.027931 0.021060 0.018965 0.110401 0.038779 0.018707 0.012517 0.086911 0.038941 0.000516 0.020884 0.133891 0.038295 0.157380 +0.025481 +0.029232 0.038022 0.028212 0.034546 0.018060 0.032599 0.010859 0.037263 0.031114 0.035336 0.017331 0.115900 0.016242 0.016148 0.033250 0.028453 0.017247 0.165637 0.028674 0.020469 0.022330 0.086911 0.038072 0.012595 0.006875 0.110401 0.038636 0.001028 0.020974 0.063422 0.039992 0.157380 +0.397842 +0.029084 0.037582 0.029378 0.031939 0.016698 0.018559 0.010951 0.035925 0.028203 0.030259 0.014451 0.053898 0.015742 0.016301 0.028215 0.029881 0.015093 0.073197 0.029518 0.019076 0.019473 0.110401 0.038871 0.017337 0.013618 0.063422 0.039668 0.000358 0.021103 0.063422 0.040915 0.133891 +0.074629 +0.029353 0.034984 0.033516 0.029287 0.015517 0.350439 0.011714 0.036802 0.028298 0.029305 0.014974 0.070811 0.016428 0.016411 0.028271 0.031675 0.018334 0.026682 0.028737 0.019371 0.022000 0.157380 0.040698 0.013889 0.009535 0.133891 0.038986 0.001794 0.020779 0.063422 0.038694 0.204360 +0.572852 +0.030918 0.036514 0.030587 0.028869 0.015153 0.102613 0.009446 0.035905 0.028358 0.029389 0.017017 0.050768 0.016343 0.016037 0.030029 0.029323 0.015304 0.125049 0.028393 0.020083 0.023487 0.133891 0.040503 0.018122 0.010585 0.157380 0.038264 0.001897 0.018825 0.063422 0.039362 0.180870 +0.217474 +0.029378 0.039899 0.032293 0.029331 0.015914 0.187958 0.010935 0.036456 0.031372 0.030255 0.017719 0.206829 0.016061 0.015617 0.030938 0.029772 0.015025 0.026738 0.028248 0.019738 0.022580 0.110401 0.039870 0.018203 0.010749 0.086911 0.040918 0.000546 0.019528 0.157380 0.041212 0.204360 +0.419923 +0.030843 0.038371 0.030472 0.029718 0.014114 0.063326 0.010797 0.035773 0.028362 0.028532 0.017959 0.197203 0.016426 0.016325 0.037376 0.034960 0.017574 0.082469 0.028733 0.019509 0.018818 0.110401 0.038137 0.016478 0.009076 0.063422 0.039537 0.000508 0.020617 0.157380 0.039207 0.180870 +0.414697 +0.030553 0.039606 0.034852 0.029547 0.015342 0.075398 0.009832 0.037509 0.030493 0.030458 0.017267 0.247515 0.015441 0.015929 0.029117 0.042194 0.016497 0.054759 0.029750 0.019865 0.021855 0.110401 0.041563 0.013857 0.005670 0.110401 0.041724 0.000038 0.020967 0.086911 0.040610 0.133891 +0.480329 +0.032806 0.038375 0.030639 0.028537 0.014809 0.040751 0.011287 0.036106 0.029739 0.030176 0.015491 0.057895 0.015138 0.016323 0.030633 0.029046 0.016798 0.271317 0.029036 0.019953 0.021984 0.110401 0.038243 0.014078 0.012319 0.133891 0.040566 0.000390 0.020152 0.133891 0.042166 0.180870 +0.487591 +0.029683 0.034092 0.028264 0.028526 0.017305 0.029574 0.011541 0.037097 0.034322 0.039630 0.015106 0.023754 0.016247 0.015891 0.029522 0.031049 0.017280 0.022511 0.027478 0.019387 0.020456 0.180870 0.038751 0.018134 0.006964 0.110401 0.038381 0.002185 0.019940 0.086911 0.040060 0.204360 +0 +0.030773 0.037726 0.028279 0.029276 0.016235 0.017949 0.009580 0.035246 0.031188 0.029097 0.017676 0.036324 0.016253 0.015588 0.029820 0.032293 0.017913 0.040468 0.028618 0.019637 0.020715 0.133891 0.040975 0.016910 0.004736 0.086911 0.040186 0.001769 0.020182 0.086911 0.037868 0.180870 +0.001689 +0.031693 0.033974 0.031469 0.030493 0.018154 0.041687 0.011557 0.035831 0.032064 0.030300 0.014782 0.173504 0.015515 0.015755 0.030404 0.029846 0.016393 0.024236 0.029377 0.020533 0.022655 0.063422 0.038517 0.017386 0.005488 0.086911 0.038467 0.000657 0.019232 0.063422 0.040098 0.133891 +0.267386 +0.029324 0.037243 0.028680 0.030412 0.014141 0.021799 0.010353 0.037350 0.028635 0.028592 0.018317 0.026884 0.015469 0.015946 0.028720 0.028748 0.015379 0.045475 0.027289 0.019257 0.020796 0.110401 0.038344 0.012165 0.010835 0.157380 0.039206 0.001595 0.019007 0.133891 0.039739 0.180870 +0.001650 +0.032306 0.034478 0.029103 0.030244 0.017512 0.032899 0.010194 0.036007 0.030687 0.031252 0.018517 0.080547 0.016185 0.016131 0.031147 0.028984 0.015166 0.159064 0.028189 0.019641 0.020534 0.086911 0.038852 0.016877 0.007237 0.133891 0.041714 0.001390 0.019968 0.086911 0.041448 0.157380 +0.287304 +0.029512 0.034631 0.030006 0.032796 0.016934 0.031615 0.011553 0.037005 0.029544 0.032260 0.017189 0.127526 0.015500 0.015889 0.028855 0.030414 0.016195 0.016531 0.028856 0.019021 0.022254 0.086911 0.040494 0.014641 0.013031 0.110401 0.042095 0.001315 0.020824 0.063422 0.037841 0.157380 +0.044565 +0.028528 0.034711 0.037876 0.028310 0.014835 0.082055 0.011543 0.035560 0.028842 0.029470 0.017768 0.027267 0.015260 0.015800 0.029813 0.030458 0.018760 0.086736 0.029463 0.019581 0.022092 0.110401 0.041137 0.013167 0.008014 0.157380 0.038846 0.001852 0.021075 0.063422 0.039281 0.180870 +0.113846 +0.029076 0.035103 0.028192 0.028737 0.014798 0.050203 0.010071 0.036535 0.028758 0.030576 0.014454 0.044915 0.016234 0.016437 0.030023 0.029909 0.016040 0.344241 0.029341 0.020321 0.021409 0.086911 0.038855 0.012850 0.010621 0.086911 0.041287 0.000522 0.019616 0.110401 0.037798 0.133891 +0.621750 +0.028520 0.037030 0.028739 0.028252 0.016524 0.027411 0.010798 0.037418 0.028892 0.029079 0.015600 0.036695 0.015339 0.015930 0.028560 0.028445 0.017828 0.135682 0.031273 0.020378 0.020689 0.110401 0.040213 0.018528 0.011116 0.086911 0.038840 0.001194 0.019941 0.110401 0.039372 0.133891 +0.148885 +0.029867 0.035384 0.028385 0.031216 0.018282 0.031520 0.009870 0.036419 0.028535 0.030912 0.014972 0.117978 0.016246 0.015505 0.028667 0.031086 0.016309 0.148576 0.029893 0.019155 0.021435 0.110401 0.040225 0.012145 0.013547 0.063422 0.039848 0.002258 0.019487 0.110401 0.041520 0.157380 +0.281274 +0.031903 0.038905 0.030566 0.033777 0.018774 0.143206 0.010742 0.037284 0.032570 0.030518 0.017409 0.037296 0.015591 0.015846 0.028339 0.032515 0.018554 0.019083 0.027842 0.019003 0.023458 0.110401 0.041128 0.015096 0.008036 0.063422 0.042165 0.001894 0.020160 0.086911 0.041403 0.133891 +0.176904 +0.029875 0.038283 0.030266 0.028513 0.018061 0.041543 0.010022 0.036486 0.029225 0.029067 0.018084 0.017263 0.015736 0.016319 0.032355 0.028371 0.015135 0.021405 0.027455 0.019688 0.019773 0.110401 0.038739 0.017192 0.011697 0.063422 0.037628 0.000311 0.020678 0.063422 0.037745 0.180870 +0 +0.030262 0.038380 0.031445 0.030380 0.015921 0.081966 0.010425 0.036351 0.028884 0.038209 0.016954 0.098311 0.016173 0.015598 0.028270 0.032031 0.014300 0.128670 0.026181 0.020750 0.020077 0.110401 0.039898 0.012389 0.010185 0.063422 0.038779 0.002260 0.019539 0.110401 0.041373 0.157380 +0.381153 +0.032256 0.035309 0.033294 0.034066 0.016054 0.019066 0.009673 0.036079 0.030031 0.031435 0.014496 0.124921 0.016069 0.016000 0.028595 0.032354 0.015588 0.019490 0.030544 0.020751 0.022176 0.086911 0.040353 0.012543 0.007651 0.063422 0.039222 0.001917 0.020572 0.063422 0.037734 0.180870 +0.011780 +0.029310 0.036468 0.029978 0.031776 0.016791 0.035063 0.011529 0.037369 0.032875 0.035364 0.018464 0.035449 0.015067 0.015962 0.032157 0.033730 0.015180 0.106828 0.028486 0.019810 0.022936 0.063422 0.040589 0.012210 0.006746 0.086911 0.041627 0.001099 0.020168 0.157380 0.038333 0.204360 +0.051608 +0.032364 0.038157 0.029187 0.029009 0.014449 0.025015 0.009623 0.035983 0.037369 0.028830 0.017709 0.132019 0.016105 0.015571 0.030968 0.028964 0.014529 0.305990 0.028850 0.019149 0.020959 0.086911 0.040824 0.015345 0.013817 0.110401 0.041476 0.000711 0.019722 0.133891 0.041455 0.157380 +0.615836 +0.029186 0.039835 0.034669 0.030724 0.018304 0.132639 0.009540 0.037222 0.028381 0.030167 0.014123 0.059337 0.015444 0.015802 0.033572 0.028594 0.017559 0.055629 0.028210 0.019552 0.022041 0.086911 0.039753 0.017762 0.014046 0.110401 0.041287 0.000141 0.020636 0.063422 0.039791 0.133891 +0.219363 +0.029968 0.037031 0.033665 0.029305 0.014706 0.081355 0.010865 0.035297 0.034294 0.034429 0.016128 0.129245 0.015890 0.016236 0.029379 0.029130 0.015724 0.040959 0.029147 0.019372 0.020362 0.133891 0.041005 0.015347 0.007985 0.133891 0.041504 0.002068 0.019863 0.157380 0.041365 0.204360 +0.182254 +0.029696 0.035924 0.028821 0.029669 0.016687 0.034957 0.011519 0.037353 0.031131 0.028763 0.017620 0.031633 0.016221 0.015757 0.032820 0.028331 0.014730 0.073798 0.028080 0.021042 0.021291 0.133891 0.038432 0.013955 0.011012 0.157380 0.040740 0.001539 0.018849 0.133891 0.038618 0.204360 +0.034837 +0.032354 0.037699 0.028814 0.028796 0.017038 0.036327 0.011146 0.036373 0.029599 0.028667 0.016538 0.058862 0.016156 0.015809 0.028945 0.028455 0.017619 0.239298 0.028215 0.019145 0.021441 0.133891 0.039160 0.017316 0.007676 0.133891 0.039580 0.000652 0.021132 0.157380 0.039894 0.204360 +0.460630 +0.029201 0.035737 0.028569 0.028374 0.018577 0.094661 0.009411 0.036069 0.034556 0.028827 0.017244 0.136083 0.015934 0.016214 0.036057 0.032850 0.017270 0.036127 0.027078 0.019140 0.019099 0.110401 0.040378 0.015087 0.007020 0.063422 0.040971 0.000562 0.021028 0.063422 0.040759 0.133891 +0.260697 +0.031617 0.036330 0.029565 0.029205 0.017747 0.039937 0.010533 0.035510 0.028509 0.028833 0.015933 0.022185 0.015169 0.015935 0.028241 0.031822 0.015962 0.101247 0.028320 0.020166 0.022620 0.086911 0.040398 0.015549 0.010521 0.110401 0.038823 0.001246 0.020389 0.133891 0.039424 0.180870 +0.065682 +0.030554 0.036020 0.028607 0.031709 0.018745 0.088527 0.010152 0.035763 0.033819 0.029986 0.018106 0.046324 0.015725 0.016126 0.030648 0.035253 0.016381 0.037725 0.029437 0.019676 0.022960 0.063422 0.038095 0.016526 0.010348 0.086911 0.039687 0.000752 0.020211 0.157380 0.038671 0.180870 +0.053953 +0.029805 0.039289 0.033196 0.028575 0.017537 0.047847 0.010197 0.036985 0.029348 0.028353 0.015613 0.127448 0.015256 0.015705 0.029480 0.029451 0.015289 0.031666 0.026508 0.020201 0.023132 0.110401 0.039363 0.012329 0.006972 0.063422 0.038059 0.001003 0.019266 0.063422 0.040040 0.157380 +0.248047 +0.030731 0.038218 0.030622 0.030547 0.016166 0.528570 0.011631 0.035944 0.030525 0.032107 0.017236 0.117040 0.015135 0.015507 0.030078 0.028254 0.016873 0.020874 0.028425 0.019736 0.022741 0.110401 0.042045 0.014290 0.011640 0.063422 0.040162 0.001698 0.020262 0.063422 0.038893 0.157380 +0.726356 +0.032654 0.036910 0.028349 0.028848 0.015199 0.423080 0.009921 0.035542 0.030721 0.028915 0.015315 0.114636 0.015810 0.016151 0.029423 0.033817 0.017561 0.083009 0.024141 0.019068 0.021988 0.110401 0.042060 0.016698 0.009024 0.086911 0.039203 0.000208 0.019307 0.110401 0.040562 0.133891 +0.697774 +0.032718 0.038753 0.038043 0.030681 0.017459 0.033202 0.010344 0.036774 0.029290 0.031176 0.015357 0.105351 0.015595 0.016209 0.028943 0.028387 0.017598 0.034609 0.029118 0.019312 0.019932 0.133891 0.038180 0.016442 0.010274 0.133891 0.041028 0.000696 0.019678 0.063422 0.041062 0.180870 +0.080504 +0.028652 0.039315 0.031179 0.032049 0.018209 0.047095 0.010011 0.035704 0.029018 0.029570 0.016113 0.064009 0.016412 0.015932 0.029491 0.041390 0.015556 0.207239 0.027274 0.019922 0.020632 0.133891 0.041182 0.016857 0.007772 0.063422 0.040235 0.000308 0.019976 0.086911 0.038038 0.157380 +0.355319 +0.031557 0.035887 0.033590 0.031223 0.016456 0.158706 0.009767 0.035401 0.031451 0.030600 0.015777 0.030598 0.015189 0.016185 0.029033 0.028543 0.015540 0.204576 0.028672 0.019549 0.022191 0.110401 0.039415 0.014457 0.013833 0.063422 0.041368 0.001727 0.019116 0.133891 0.041754 0.157380 +0.477838 +0.032131 0.039370 0.028712 0.029925 0.018220 0.017168 0.010941 0.035534 0.029029 0.028257 0.015285 0.101085 0.015752 0.016405 0.028561 0.028500 0.017192 0.191591 0.026368 0.018904 0.019091 0.086911 0.038474 0.013154 0.007651 0.086911 0.041449 0.001532 0.018929 0.133891 0.040203 0.204360 +0.331478 +0.029801 0.036516 0.028807 0.030792 0.016068 0.044004 0.010705 0.035974 0.030031 0.030345 0.015136 0.023815 0.015591 0.015949 0.028395 0.028649 0.017292 0.185902 0.030561 0.020929 0.023348 0.110401 0.038412 0.014357 0.005500 0.110401 0.041813 0.001725 0.019981 0.086911 0.039381 0.133891 +0.355702 +0.030454 0.034180 0.028448 0.028892 0.016934 0.135267 0.010027 0.037030 0.028361 0.029384 0.014234 0.280471 0.016014 0.015600 0.028507 0.028772 0.016501 0.018520 0.026592 0.020080 0.021987 0.110401 0.037600 0.013399 0.011586 0.110401 0.040663 0.001924 0.020611 0.063422 0.038414 0.133891 +0.542318 +0.030681 0.036826 0.036540 0.031274 0.014741 0.066932 0.011270 0.036364 0.032141 0.031650 0.018162 0.087597 0.016166 0.016415 0.030681 0.028227 0.018460 0.031056 0.028512 0.020607 0.018864 0.180870 0.038201 0.018700 0.011697 0.086911 0.041260 0.001362 0.020089 0.063422 0.040886 0.204360 +0.070748 +0.031047 0.032946 0.029316 0.030653 0.014287 0.180869 0.010698 0.035598 0.036503 0.032353 0.017501 0.030222 0.015456 0.016305 0.028252 0.029860 0.015778 0.078496 0.028574 0.019779 0.022060 0.110401 0.040851 0.011878 0.009874 0.133891 0.041053 0.001482 0.018819 0.157380 0.037816 0.204360 +0.390739 +0.032366 0.033244 0.030295 0.028206 0.016987 0.325636 0.009592 0.036113 0.030728 0.028931 0.015901 0.107941 0.016416 0.015730 0.028455 0.032073 0.018553 0.078901 0.029616 0.020970 0.021290 0.133891 0.040851 0.012932 0.007661 0.086911 0.041144 0.000734 0.020070 0.063422 0.037711 0.157380 +0.692591 +0.028769 0.034301 0.029876 0.031916 0.014208 0.016552 0.009678 0.036465 0.028409 0.029608 0.016826 0.121793 0.015452 0.015850 0.031595 0.029468 0.014584 0.030459 0.026959 0.019051 0.022062 0.133891 0.042015 0.016493 0.006913 0.086911 0.039032 0.001644 0.020350 0.086911 0.038063 0.180870 +0.047605 +0.028346 0.038031 0.029935 0.030639 0.017519 0.029937 0.009745 0.036634 0.029608 0.030865 0.016290 0.018587 0.015340 0.016226 0.028231 0.031251 0.015471 0.044253 0.028209 0.020997 0.021269 0.133891 0.037711 0.015360 0.011415 0.157380 0.040529 0.000365 0.020720 0.063422 0.041922 0.180870 +0 +0.029123 0.037375 0.029006 0.028399 0.016269 0.125360 0.010204 0.035751 0.030244 0.028795 0.017186 0.183184 0.015639 0.016149 0.032527 0.029216 0.017560 0.077521 0.028547 0.019082 0.022922 0.063422 0.042102 0.016277 0.006320 0.086911 0.037857 0.000568 0.019792 0.110401 0.037873 0.133891 +0.474788 +0.030922 0.038101 0.032389 0.034321 0.014671 0.016583 0.011736 0.037133 0.031616 0.028660 0.017359 0.129864 0.015131 0.015731 0.034900 0.029328 0.014902 0.055803 0.026311 0.019022 0.021757 0.110401 0.038585 0.013402 0.007259 0.110401 0.039382 0.001701 0.019324 0.063422 0.040708 0.180870 +0.202247 +0.030691 0.036726 0.029809 0.028963 0.015299 0.070388 0.011205 0.035709 0.031320 0.029413 0.017001 0.063753 0.016364 0.015557 0.028469 0.032999 0.015928 0.078729 0.029700 0.020848 0.020182 0.133891 0.039435 0.014516 0.012584 0.086911 0.038055 0.001224 0.020009 0.086911 0.041447 0.157380 +0.113129 +0.029041 0.036884 0.029222 0.029106 0.017612 0.023388 0.011204 0.037165 0.028346 0.029563 0.015198 0.079497 0.015650 0.015981 0.030973 0.029153 0.016764 0.145050 0.027641 0.020947 0.022654 0.086911 0.042078 0.012953 0.013015 0.133891 0.042073 0.001779 0.019670 0.133891 0.038652 0.157380 +0.211462 +0.029944 0.036647 0.028550 0.029000 0.016075 0.020694 0.011195 0.035982 0.029218 0.032603 0.017026 0.057126 0.015518 0.016050 0.032573 0.028273 0.018264 0.091708 0.030499 0.019221 0.020391 0.110401 0.042253 0.016870 0.008061 0.110401 0.041529 0.002003 0.020775 0.063422 0.041423 0.133891 +0.159237 +0.028687 0.032958 0.033511 0.028314 0.016229 0.191674 0.010423 0.035378 0.036035 0.032782 0.016013 0.033757 0.015853 0.015991 0.028221 0.028802 0.014598 0.164513 0.027299 0.020284 0.022826 0.063422 0.042189 0.015942 0.007659 0.063422 0.038882 0.000876 0.019620 0.086911 0.040578 0.180870 +0.504642 +0.030268 0.033741 0.033193 0.031995 0.015736 0.039879 0.011700 0.035238 0.032013 0.030697 0.018206 0.058033 0.015755 0.015929 0.031850 0.031896 0.014883 0.031943 0.026391 0.018817 0.021004 0.133891 0.038703 0.016188 0.008908 0.063422 0.038825 0.001391 0.020859 0.110401 0.038281 0.157380 +0.057465 +0.031350 0.035037 0.031339 0.029184 0.016746 0.042749 0.010081 0.036860 0.030023 0.028639 0.017619 0.142333 0.015395 0.016257 0.030653 0.029521 0.016722 0.179056 0.028027 0.020640 0.022327 0.086911 0.037790 0.015261 0.009556 0.063422 0.040303 0.001500 0.020468 0.086911 0.039678 0.133891 +0.478558 +0.031285 0.036095 0.031117 0.032791 0.016021 0.076822 0.011226 0.035981 0.029755 0.030109 0.015972 0.025321 0.015138 0.015551 0.030707 0.029170 0.017910 0.178614 0.027897 0.019663 0.021270 0.110401 0.040956 0.014854 0.005749 0.086911 0.038390 0.000923 0.019165 0.063422 0.042003 0.133891 +0.320690 +0.031516 0.037582 0.030134 0.028302 0.015461 0.075882 0.011581 0.037126 0.029134 0.028266 0.016489 0.023535 0.016275 0.016007 0.031958 0.035237 0.018182 0.032041 0.026805 0.020255 0.019931 0.110401 0.039143 0.015497 0.010873 0.110401 0.041376 0.000476 0.020495 0.086911 0.039485 0.133891 +0.076925 +0.031401 0.033051 0.029034 0.029388 0.015508 0.032828 0.010629 0.036034 0.031341 0.030575 0.018327 0.037029 0.015970 0.015808 0.031484 0.037215 0.014171 0.218747 0.027573 0.019241 0.023075 0.157380 0.037672 0.014162 0.008829 0.133891 0.041997 0.000904 0.019390 0.063422 0.038364 0.180870 +0.228726 +0.028997 0.033384 0.032687 0.029170 0.015062 0.048337 0.010770 0.035259 0.031683 0.034221 0.018164 0.080960 0.016338 0.016317 0.029154 0.028386 0.017537 0.041793 0.028100 0.019259 0.020887 0.180870 0.041297 0.018678 0.008108 0.157380 0.039799 0.001773 0.020585 0.180870 0.041161 0.204360 +0.091857 +0.030069 0.033240 0.032008 0.033263 0.015209 0.186383 0.010411 0.037402 0.030761 0.032241 0.014236 0.128349 0.015958 0.016247 0.028527 0.029143 0.017664 0.065708 0.025339 0.018882 0.021431 0.157380 0.039049 0.012020 0.010489 0.133891 0.037995 0.001581 0.021134 0.157380 0.038550 0.180870 +0.500505 +0.030670 0.036632 0.031580 0.033027 0.017403 0.252120 0.011181 0.037474 0.029475 0.032119 0.016771 0.324258 0.015162 0.015693 0.028378 0.029299 0.014639 0.048089 0.029836 0.018805 0.019242 0.086911 0.041472 0.014897 0.006891 0.180870 0.038495 0.002330 0.020591 0.086911 0.037861 0.204360 +0.819079 +0.029165 0.039699 0.028443 0.029485 0.018695 0.047942 0.011240 0.036283 0.031334 0.029573 0.017572 0.096584 0.015186 0.015755 0.036211 0.028937 0.017830 0.049633 0.028714 0.019088 0.021705 0.086911 0.039449 0.017881 0.009393 0.063422 0.040350 0.002235 0.020755 0.133891 0.039071 0.180870 +0.065212 +0.031915 0.036413 0.029439 0.029976 0.015093 0.017302 0.009631 0.036267 0.032579 0.033365 0.015162 0.019384 0.015925 0.015512 0.029744 0.028738 0.015832 0.101579 0.029052 0.020251 0.021611 0.063422 0.040735 0.011998 0.012431 0.063422 0.039881 0.001360 0.020586 0.063422 0.039873 0.133891 +0.025241 +0.032723 0.035475 0.030788 0.028294 0.018447 0.026661 0.010568 0.036893 0.028396 0.031607 0.018235 0.076455 0.015789 0.016189 0.029122 0.030904 0.015794 0.315977 0.029282 0.020334 0.018840 0.086911 0.041669 0.017950 0.007357 0.063422 0.037916 0.000348 0.019169 0.086911 0.041292 0.157380 +0.605140 +0.030508 0.039011 0.028316 0.031862 0.016339 0.019906 0.010378 0.035884 0.033485 0.029306 0.018436 0.499580 0.015866 0.015722 0.028530 0.028218 0.014791 0.024817 0.027697 0.019312 0.022811 0.063422 0.038773 0.015537 0.005909 0.086911 0.038652 0.000037 0.019901 0.086911 0.039792 0.157380 +0.756372 +0.030919 0.034564 0.028360 0.029223 0.015944 0.020913 0.011677 0.037340 0.028482 0.028474 0.015004 0.106930 0.015799 0.015932 0.034491 0.030500 0.016352 0.038897 0.028172 0.018797 0.022549 0.133891 0.039583 0.016361 0.014069 0.086911 0.040044 0.000825 0.019690 0.133891 0.041549 0.180870 +0.056142 +0.032838 0.037369 0.028905 0.030056 0.017705 0.107048 0.009484 0.035713 0.028236 0.028611 0.017909 0.094897 0.015831 0.015686 0.028535 0.030878 0.015255 0.043920 0.029305 0.020117 0.020747 0.133891 0.040268 0.013965 0.006709 0.110401 0.039249 0.000181 0.019839 0.110401 0.041648 0.180870 +0.245543 +0.030088 0.038770 0.028329 0.029515 0.017961 0.037384 0.010721 0.035251 0.029221 0.030535 0.017545 0.038689 0.015665 0.016210 0.032130 0.030714 0.014434 0.057919 0.027134 0.018998 0.020790 0.133891 0.041922 0.012407 0.009950 0.086911 0.041498 0.000557 0.019077 0.133891 0.038424 0.157380 +0.072972 +0.031607 0.034379 0.031114 0.030619 0.015786 0.057273 0.011561 0.037138 0.031360 0.028847 0.016555 0.054131 0.016176 0.015674 0.029090 0.032865 0.018689 0.018047 0.027561 0.019235 0.019075 0.086911 0.038345 0.016603 0.004982 0.063422 0.041620 0.002327 0.020891 0.110401 0.040441 0.133891 +0.044727 +0.030598 0.039465 0.029602 0.028229 0.015709 0.218787 0.009820 0.037034 0.036931 0.030042 0.014233 0.140218 0.015344 0.015812 0.029193 0.028753 0.015883 0.057848 0.031091 0.020665 0.022859 0.157380 0.039252 0.014792 0.009833 0.063422 0.042193 0.002084 0.019332 0.086911 0.039807 0.204360 +0.433917 +0.028487 0.037982 0.028938 0.029572 0.014416 0.039969 0.010030 0.036891 0.030831 0.028629 0.015332 0.043293 0.016275 0.015705 0.031300 0.030454 0.014478 0.017161 0.028919 0.020982 0.022111 0.086911 0.039541 0.013348 0.006503 0.086911 0.041736 0.002323 0.019753 0.086911 0.040705 0.133891 +0.005535 +0.030371 0.039461 0.041362 0.029836 0.016358 0.108670 0.010353 0.037460 0.028578 0.030989 0.014962 0.120920 0.015803 0.016208 0.030610 0.029582 0.017815 0.016493 0.029324 0.021125 0.023420 0.063422 0.040925 0.013552 0.010643 0.133891 0.041784 0.000517 0.019415 0.133891 0.041997 0.157380 +0.294048 +0.029000 0.034481 0.032474 0.028570 0.015509 0.192461 0.010319 0.037162 0.028224 0.030434 0.018184 0.283473 0.015962 0.016277 0.028504 0.029642 0.018471 0.067130 0.026915 0.019966 0.023220 0.110401 0.037901 0.017928 0.009792 0.063422 0.038394 0.000132 0.019389 0.110401 0.041512 0.133891 +0.715802 +0.029968 0.034399 0.030488 0.028674 0.017558 0.047140 0.010492 0.037505 0.028540 0.035437 0.017701 0.094068 0.016274 0.016160 0.031079 0.028660 0.017260 0.037940 0.025776 0.020663 0.021339 0.110401 0.040772 0.012019 0.005410 0.063422 0.040964 0.001308 0.019220 0.086911 0.042155 0.204360 +0.062952 +0.031634 0.038230 0.030240 0.029827 0.015121 0.018202 0.010808 0.036254 0.029499 0.035763 0.016139 0.033143 0.015937 0.015983 0.031333 0.028752 0.017513 0.155649 0.030582 0.019179 0.019017 0.086911 0.041639 0.018364 0.009839 0.086911 0.039379 0.001510 0.019330 0.180870 0.041953 0.204360 +0.063923 +0.029028 0.034072 0.028520 0.028936 0.015355 0.099628 0.009690 0.035831 0.029967 0.029047 0.016351 0.088792 0.016367 0.015925 0.029593 0.029223 0.016901 0.139257 0.030221 0.018797 0.019358 0.110401 0.037834 0.013768 0.011413 0.110401 0.038228 0.002189 0.020016 0.063422 0.039881 0.157380 +0.355139 +0.030690 0.035334 0.040257 0.028589 0.014769 0.054811 0.011395 0.035293 0.030087 0.029283 0.016774 0.115397 0.016304 0.016105 0.028216 0.030864 0.016298 0.105860 0.028541 0.019077 0.021171 0.133891 0.039447 0.014338 0.010130 0.086911 0.041228 0.000621 0.019964 0.110401 0.038590 0.180870 +0.306278 +0.029747 0.037046 0.029623 0.034232 0.017911 0.114344 0.009761 0.037175 0.028362 0.028354 0.017306 0.060012 0.016109 0.016241 0.034705 0.031055 0.016378 0.061615 0.026410 0.020937 0.022976 0.063422 0.037978 0.016813 0.006666 0.086911 0.041773 0.002010 0.020132 0.063422 0.038918 0.133891 +0.321043 +0.028271 0.039166 0.029520 0.029815 0.014754 0.026113 0.010432 0.036614 0.028511 0.028905 0.016980 0.260679 0.016019 0.015864 0.030754 0.028359 0.014952 0.161172 0.028747 0.019684 0.018994 0.086911 0.038114 0.018285 0.009417 0.063422 0.041390 0.001790 0.018937 0.133891 0.040746 0.157380 +0.600526 +0.032827 0.037443 0.032584 0.032336 0.018221 0.044284 0.011401 0.036821 0.029222 0.030335 0.016039 0.076795 0.015508 0.016118 0.028843 0.028834 0.015314 0.179245 0.030181 0.020116 0.019773 0.110401 0.038831 0.014894 0.012554 0.180870 0.041710 0.001208 0.020441 0.110401 0.040764 0.204360 +0.317171 +0.031571 0.034420 0.029388 0.030184 0.015074 0.038737 0.010534 0.037085 0.032373 0.033720 0.016040 0.246499 0.015234 0.015671 0.029810 0.036469 0.015242 0.017527 0.029592 0.020561 0.022277 0.110401 0.040020 0.017029 0.011885 0.133891 0.039954 0.000414 0.021020 0.133891 0.040974 0.204360 +0.259588 +0.029881 0.037031 0.034521 0.033472 0.016244 0.037163 0.011257 0.036051 0.031504 0.031152 0.015432 0.063258 0.015185 0.016183 0.028708 0.028653 0.015937 0.209168 0.026105 0.020502 0.021896 0.086911 0.038875 0.016944 0.004962 0.086911 0.041720 0.002111 0.019235 0.110401 0.038654 0.133891 +0.327179 +0.030779 0.039322 0.033402 0.029438 0.014601 0.034980 0.010360 0.036444 0.031513 0.035585 0.018461 0.042784 0.015851 0.015644 0.030211 0.028744 0.015631 0.094084 0.029093 0.020580 0.020282 0.086911 0.039838 0.018223 0.009794 0.063422 0.038648 0.000815 0.019443 0.063422 0.039683 0.180870 +0.042811 +0.031198 0.037517 0.031868 0.028204 0.017108 0.140551 0.010027 0.035510 0.030776 0.028511 0.017253 0.074250 0.015829 0.015827 0.029870 0.028750 0.016614 0.031797 0.028655 0.019913 0.023204 0.086911 0.040131 0.014625 0.005895 0.110401 0.039131 0.000385 0.019061 0.086911 0.041816 0.204360 +0.361811 +0.029953 0.039762 0.029886 0.038463 0.016492 0.039781 0.011091 0.036997 0.032312 0.028329 0.015753 0.068910 0.016366 0.015879 0.029342 0.034299 0.016450 0.082455 0.027013 0.020067 0.020955 0.157380 0.041425 0.012245 0.006972 0.133891 0.040700 0.001439 0.020018 0.157380 0.039867 0.180870 +0.185070 +0.031665 0.039093 0.028395 0.030027 0.018626 0.116119 0.010677 0.036954 0.036597 0.029332 0.018755 0.026622 0.015753 0.016051 0.028517 0.038500 0.015599 0.024855 0.029385 0.020077 0.023451 0.086911 0.037669 0.013755 0.009741 0.063422 0.037729 0.000729 0.020825 0.110401 0.038871 0.157380 +0.157871 +0.030529 0.039870 0.033643 0.029429 0.016660 0.019593 0.009601 0.035949 0.032401 0.028440 0.015534 0.041310 0.015674 0.015960 0.029254 0.029829 0.016420 0.028869 0.028421 0.019372 0.019565 0.110401 0.037904 0.015816 0.008362 0.110401 0.040244 0.000728 0.019149 0.133891 0.039987 0.157380 +0 +0.028990 0.036978 0.030817 0.030322 0.018376 0.064647 0.011167 0.037379 0.028284 0.029366 0.016817 0.019326 0.016084 0.016400 0.029300 0.034206 0.018103 0.074446 0.027825 0.018934 0.021740 0.157380 0.037997 0.016527 0.010408 0.157380 0.041176 0.001608 0.019068 0.110401 0.039669 0.204360 +0.013278 +0.032505 0.034741 0.033570 0.030596 0.015112 0.052125 0.011123 0.035527 0.029602 0.030944 0.014745 0.143336 0.016059 0.016295 0.028803 0.033090 0.015017 0.068324 0.028354 0.020339 0.020942 0.157380 0.041056 0.014455 0.006112 0.110401 0.038214 0.000570 0.019105 0.086911 0.041521 0.180870 +0.215280 +0.032487 0.034895 0.031211 0.032503 0.015453 0.049269 0.009605 0.035551 0.030370 0.030571 0.018557 0.023000 0.015622 0.015916 0.030285 0.030536 0.015082 0.027556 0.030940 0.020322 0.023265 0.086911 0.040727 0.016835 0.012688 0.133891 0.039674 0.000209 0.020667 0.086911 0.041071 0.204360 +0 +0.028240 0.039328 0.032158 0.033458 0.018255 0.020190 0.011597 0.035305 0.031119 0.029152 0.018498 0.016668 0.016115 0.015615 0.028408 0.038103 0.018102 0.071039 0.026817 0.019303 0.022419 0.157380 0.038776 0.012018 0.009355 0.063422 0.041464 0.000708 0.020629 0.133891 0.040777 0.180870 +0.014126 +0.029318 0.039256 0.028361 0.029318 0.014507 0.037849 0.011496 0.036110 0.028901 0.028333 0.015086 0.157545 0.015366 0.016128 0.029626 0.032697 0.015332 0.127170 0.028930 0.019237 0.019743 0.110401 0.037624 0.014623 0.006289 0.063422 0.041967 0.002291 0.021022 0.086911 0.041061 0.133891 +0.366221 +0.032512 0.039167 0.028758 0.029413 0.014625 0.034779 0.009855 0.037186 0.039186 0.028742 0.018280 0.068092 0.015828 0.015641 0.030948 0.039337 0.018349 0.050082 0.028375 0.021020 0.020188 0.086911 0.041699 0.016313 0.010358 0.110401 0.040219 0.001812 0.020691 0.063422 0.040267 0.133891 +0.053604 +0.030753 0.036077 0.031590 0.033602 0.016516 0.035650 0.010128 0.036080 0.032073 0.029835 0.016509 0.340219 0.016191 0.015688 0.028250 0.031304 0.017745 0.024205 0.026253 0.018924 0.019829 0.180870 0.038564 0.012480 0.006553 0.086911 0.041886 0.000694 0.019359 0.063422 0.038697 0.204360 +0.560387 +0.032121 0.036758 0.030861 0.031157 0.014813 0.114651 0.010408 0.037014 0.033802 0.028724 0.014587 0.116769 0.015837 0.015943 0.028524 0.029750 0.017602 0.124377 0.028188 0.021109 0.023141 0.110401 0.040756 0.017567 0.005228 0.110401 0.039177 0.001264 0.019555 0.086911 0.040905 0.157380 +0.400663 +0.032337 0.032974 0.028751 0.029949 0.017475 0.079167 0.010102 0.037074 0.029629 0.028248 0.016483 0.148909 0.015114 0.016242 0.030620 0.030057 0.016820 0.271149 0.027272 0.020245 0.020201 0.110401 0.038410 0.015687 0.005741 0.133891 0.040675 0.000951 0.020780 0.063422 0.039517 0.157380 +0.679623 +0.032394 0.039451 0.029397 0.028591 0.015523 0.184567 0.011674 0.037024 0.029789 0.029658 0.015340 0.030045 0.016154 0.016032 0.028614 0.033093 0.018021 0.188356 0.028261 0.020007 0.022932 0.063422 0.037725 0.012535 0.009017 0.086911 0.040670 0.000340 0.020154 0.063422 0.041857 0.133891 +0.619413 +0.030072 0.038303 0.029868 0.031625 0.017473 0.039187 0.011382 0.037238 0.029505 0.031105 0.014210 0.058012 0.016120 0.016080 0.031152 0.028561 0.016170 0.335195 0.030412 0.019723 0.023360 0.086911 0.038066 0.017643 0.010171 0.086911 0.037632 0.001574 0.021124 0.063422 0.038459 0.133891 +0.622351 +0.031949 0.033028 0.028826 0.037843 0.014774 0.018105 0.011269 0.035614 0.031556 0.028505 0.017780 0.050753 0.015276 0.016000 0.029601 0.030879 0.018262 0.305339 0.029474 0.019113 0.020280 0.063422 0.037714 0.012618 0.010146 0.063422 0.041145 0.002152 0.019132 0.110401 0.038505 0.157380 +0.447985 +0.029261 0.034163 0.031696 0.034581 0.015025 0.188289 0.009761 0.037143 0.029063 0.029593 0.014829 0.129530 0.015189 0.015779 0.029411 0.028740 0.015078 0.041317 0.027192 0.020556 0.018977 0.063422 0.039304 0.012677 0.008762 0.110401 0.039767 0.002087 0.019739 0.063422 0.040185 0.133891 +0.421171 +0.029943 0.036101 0.031293 0.029677 0.014499 0.293817 0.009916 0.037291 0.028945 0.031291 0.015182 0.155221 0.016188 0.016152 0.030076 0.033513 0.015796 0.122572 0.028838 0.019266 0.021508 0.086911 0.040563 0.013027 0.010440 0.157380 0.038907 0.000835 0.020420 0.063422 0.038025 0.204360 +0.659037 +0.028780 0.035817 0.029527 0.035001 0.014219 0.167517 0.010682 0.035938 0.030225 0.028377 0.016970 0.018893 0.015189 0.015790 0.028960 0.029873 0.015785 0.063587 0.028410 0.019672 0.020717 0.086911 0.041721 0.016128 0.006731 0.157380 0.038392 0.000046 0.019450 0.133891 0.038025 0.180870 +0.167626 +0.029238 0.035767 0.028802 0.028514 0.015022 0.062882 0.010684 0.036010 0.030891 0.029389 0.014133 0.024948 0.015753 0.016262 0.029660 0.028222 0.018551 0.017346 0.028698 0.019852 0.022444 0.086911 0.038884 0.016031 0.009767 0.110401 0.040326 0.001460 0.021026 0.086911 0.039558 0.133891 +0.027277 +0.028970 0.038717 0.037251 0.028890 0.017200 0.036729 0.011203 0.036466 0.032609 0.028399 0.018778 0.067670 0.016212 0.015602 0.040568 0.036389 0.014432 0.043329 0.029476 0.019798 0.020348 0.063422 0.042247 0.015590 0.009409 0.086911 0.039243 0.002251 0.020314 0.133891 0.039032 0.157380 +0.039405 +0.030304 0.034041 0.028464 0.028971 0.015768 0.183626 0.009604 0.036064 0.030756 0.032963 0.014606 0.260126 0.016300 0.015995 0.028348 0.029514 0.018050 0.038568 0.027991 0.020036 0.022399 0.180870 0.040471 0.013706 0.007866 0.180870 0.039666 0.001746 0.019083 0.133891 0.038541 0.204360 +0.591414 +0.031363 0.033612 0.030228 0.028557 0.018743 0.030755 0.010363 0.035444 0.034955 0.029624 0.017048 0.047300 0.015967 0.016148 0.028426 0.033893 0.014839 0.065831 0.026751 0.019969 0.023082 0.063422 0.040999 0.012843 0.011003 0.063422 0.038720 0.001154 0.019193 0.063422 0.041022 0.133891 +0.016918 +0.028267 0.039512 0.028725 0.028517 0.014543 0.025729 0.009626 0.035464 0.040202 0.031944 0.016314 0.048460 0.015708 0.016363 0.028348 0.033633 0.016775 0.065820 0.028212 0.020889 0.022248 0.133891 0.040131 0.016602 0.012302 0.110401 0.039530 0.000564 0.020585 0.063422 0.040058 0.180870 +0.015196 +0.031255 0.038534 0.035083 0.029387 0.018237 0.034622 0.011362 0.035366 0.029195 0.042607 0.016202 0.109409 0.016101 0.016140 0.032025 0.029386 0.015066 0.035502 0.028961 0.020180 0.020201 0.180870 0.039918 0.011941 0.006531 0.133891 0.039248 0.002300 0.020755 0.086911 0.039206 0.204360 +0.057291 +0.030649 0.038318 0.029719 0.028834 0.016837 0.042721 0.011214 0.036484 0.033168 0.029498 0.015374 0.134802 0.015191 0.015589 0.029379 0.030359 0.015088 0.019335 0.029494 0.020586 0.022127 0.086911 0.038707 0.014124 0.013774 0.110401 0.041838 0.001464 0.019549 0.063422 0.041817 0.133891 +0.148400 +0.028843 0.036418 0.028865 0.030805 0.016701 0.021584 0.010120 0.035299 0.028570 0.029309 0.017730 0.118133 0.015423 0.016343 0.028673 0.031450 0.017027 0.116580 0.028731 0.019548 0.023460 0.110401 0.038113 0.014136 0.013540 0.157380 0.041392 0.000531 0.020283 0.110401 0.039165 0.180870 +0.211979 +0.031950 0.034044 0.042687 0.028852 0.014424 0.162214 0.010949 0.036893 0.030098 0.031450 0.015497 0.231545 0.016295 0.015738 0.032393 0.032434 0.015436 0.041158 0.029718 0.019475 0.020484 0.133891 0.038409 0.017397 0.013362 0.110401 0.040117 0.000239 0.019961 0.110401 0.040461 0.157380 +0.465239 +0.031666 0.036586 0.029086 0.033705 0.017925 0.034970 0.010676 0.035309 0.038203 0.031907 0.016836 0.050265 0.015493 0.016417 0.028933 0.028439 0.015450 0.173263 0.027383 0.019856 0.021019 0.086911 0.038676 0.012970 0.005010 0.110401 0.038600 0.000759 0.019343 0.110401 0.040974 0.133891 +0.300199 +0.029984 0.034564 0.033536 0.030773 0.017855 0.063478 0.009654 0.035483 0.029102 0.029351 0.016631 0.153700 0.016435 0.016243 0.032849 0.028660 0.016302 0.076477 0.028867 0.020741 0.019194 0.110401 0.042046 0.014353 0.005662 0.157380 0.039021 0.002053 0.018920 0.133891 0.038777 0.204360 +0.240499 +0.032124 0.033461 0.029073 0.029000 0.016616 0.102753 0.010667 0.036965 0.032173 0.028812 0.016038 0.178063 0.016414 0.015824 0.028313 0.029205 0.015053 0.164079 0.028738 0.019093 0.021648 0.157380 0.040836 0.018162 0.005690 0.180870 0.037681 0.001455 0.019412 0.180870 0.038173 0.204360 +0.636229 +0.028532 0.039853 0.028415 0.030365 0.015551 0.518218 0.011271 0.036506 0.031622 0.028486 0.016532 0.032981 0.015334 0.015508 0.028364 0.032319 0.017871 0.018735 0.027523 0.019001 0.019150 0.133891 0.040407 0.015226 0.004910 0.110401 0.040045 0.000666 0.021133 0.157380 0.038429 0.204360 +0.653231 +0.028259 0.033647 0.030364 0.028788 0.017903 0.069947 0.011337 0.036035 0.028521 0.033021 0.015657 0.191486 0.015784 0.016126 0.028392 0.030860 0.016744 0.069974 0.029352 0.021030 0.021312 0.063422 0.038550 0.017116 0.013431 0.086911 0.039016 0.001801 0.019328 0.110401 0.041248 0.204360 +0.368178 +0.028302 0.034406 0.029479 0.029108 0.018150 0.073936 0.010141 0.037351 0.032260 0.034986 0.014836 0.120301 0.015602 0.015865 0.035105 0.028497 0.018399 0.237190 0.028447 0.020856 0.020032 0.110401 0.039297 0.014972 0.008761 0.157380 0.041133 0.000925 0.019819 0.086911 0.040230 0.180870 +0.557783 +0.029794 0.033294 0.029151 0.032342 0.016394 0.019409 0.009587 0.036377 0.033154 0.029855 0.016699 0.028427 0.015431 0.016127 0.028420 0.035475 0.017151 0.222227 0.029795 0.020800 0.019239 0.110401 0.040413 0.015650 0.010624 0.157380 0.041071 0.002341 0.020692 0.086911 0.039386 0.180870 +0.182681 +0.031206 0.039153 0.030981 0.030115 0.016807 0.122030 0.011731 0.036828 0.030802 0.034999 0.016524 0.025227 0.016435 0.015884 0.028298 0.029109 0.018277 0.151132 0.026295 0.020997 0.018893 0.157380 0.039757 0.018006 0.008592 0.157380 0.040991 0.002223 0.020675 0.086911 0.038661 0.180870 +0.323012 +0.031174 0.036916 0.033506 0.028823 0.015492 0.161399 0.010285 0.036607 0.028857 0.029746 0.015346 0.054598 0.016374 0.016171 0.028550 0.030754 0.015598 0.060910 0.027575 0.019964 0.020019 0.086911 0.040460 0.017124 0.005067 0.086911 0.037698 0.001724 0.020169 0.086911 0.041094 0.133891 +0.299604 +0.031881 0.038007 0.033484 0.030841 0.018369 0.115862 0.010221 0.036009 0.029432 0.028222 0.015021 0.019638 0.015982 0.015803 0.030271 0.029508 0.014351 0.020714 0.026955 0.020535 0.022995 0.110401 0.039836 0.012431 0.005470 0.110401 0.039737 0.000513 0.021079 0.063422 0.040727 0.180870 +0.039450 +0.030721 0.037328 0.034297 0.032844 0.018746 0.024021 0.011388 0.037359 0.028599 0.029247 0.014191 0.023785 0.015445 0.016354 0.030035 0.028878 0.016232 0.044027 0.028731 0.020491 0.021339 0.063422 0.039989 0.012493 0.007360 0.133891 0.041130 0.001935 0.019788 0.086911 0.041004 0.180870 +0 +0.029642 0.033113 0.031456 0.033071 0.017312 0.093875 0.011120 0.036477 0.028929 0.029038 0.017976 0.050019 0.016332 0.016257 0.028660 0.033452 0.016531 0.084019 0.029394 0.021013 0.019934 0.110401 0.040164 0.012322 0.010290 0.063422 0.039293 0.001520 0.020659 0.110401 0.041249 0.133891 +0.247538 +0.032305 0.035709 0.028601 0.030170 0.017649 0.088874 0.009970 0.037252 0.032674 0.036916 0.015426 0.017297 0.015814 0.016317 0.029190 0.029052 0.018455 0.022292 0.026812 0.021116 0.019738 0.063422 0.038106 0.016558 0.011716 0.110401 0.041948 0.001179 0.020203 0.133891 0.039590 0.157380 +0 +0.028256 0.033073 0.029964 0.030048 0.014108 0.034656 0.010258 0.037408 0.032024 0.029323 0.016108 0.373462 0.015962 0.016271 0.031152 0.029278 0.016682 0.081730 0.029095 0.019779 0.019107 0.063422 0.040170 0.012128 0.011572 0.157380 0.040691 0.001182 0.020550 0.110401 0.041023 0.204360 +0.646895 +0.030802 0.033454 0.031497 0.031600 0.017216 0.054542 0.010427 0.035479 0.029403 0.028514 0.018137 0.062345 0.016383 0.015589 0.028280 0.029074 0.016242 0.044868 0.026234 0.018913 0.019287 0.133891 0.040642 0.013744 0.013237 0.086911 0.041905 0.001899 0.019328 0.110401 0.039414 0.204360 +0.002305 +0.029294 0.039694 0.028321 0.028862 0.014157 0.111869 0.010501 0.035406 0.032051 0.029440 0.018186 0.121063 0.015652 0.016355 0.028523 0.028297 0.015315 0.345175 0.028653 0.019396 0.021281 0.180870 0.041102 0.014133 0.009941 0.180870 0.041504 0.001301 0.019500 0.086911 0.038810 0.204360 +0.763670 +0.029043 0.037967 0.029390 0.029190 0.016454 0.024850 0.010887 0.036965 0.034248 0.032842 0.015602 0.028601 0.015913 0.016232 0.032451 0.032092 0.015484 0.049976 0.028367 0.019234 0.019792 0.110401 0.038326 0.014357 0.008025 0.063422 0.042153 0.002005 0.019466 0.133891 0.042244 0.180870 +0 +0.029002 0.034777 0.028351 0.028971 0.018180 0.067250 0.011653 0.035932 0.029378 0.029544 0.017917 0.127330 0.015870 0.015891 0.029209 0.036383 0.018138 0.037561 0.027918 0.020993 0.019314 0.133891 0.038197 0.016902 0.009036 0.133891 0.039253 0.002342 0.019415 0.157380 0.038946 0.180870 +0.246459 +0.031993 0.033208 0.030828 0.034442 0.015323 0.118066 0.010625 0.035625 0.030444 0.031000 0.016841 0.048498 0.015488 0.016291 0.041292 0.030910 0.016274 0.052076 0.030565 0.018917 0.019517 0.110401 0.041802 0.018180 0.007493 0.157380 0.038941 0.000531 0.020722 0.180870 0.040679 0.204360 +0.076642 +0.029689 0.034618 0.028331 0.029606 0.014900 0.046891 0.011334 0.036737 0.029886 0.030582 0.018172 0.132115 0.016076 0.016139 0.029692 0.029732 0.016682 0.021979 0.028573 0.019189 0.020125 0.086911 0.040571 0.017037 0.012883 0.086911 0.039941 0.001691 0.020901 0.133891 0.040758 0.204360 +0.046305 +0.028626 0.038263 0.031743 0.028640 0.017662 0.147903 0.010255 0.035479 0.029604 0.030347 0.014214 0.089293 0.015727 0.015977 0.032599 0.031291 0.014805 0.105088 0.029102 0.021119 0.023424 0.063422 0.042245 0.017742 0.006160 0.133891 0.039380 0.002211 0.020993 0.086911 0.041649 0.204360 +0.312395 +0.029688 0.038983 0.028192 0.031249 0.017637 0.107022 0.010544 0.036528 0.031745 0.028790 0.015291 0.068292 0.016027 0.016030 0.033216 0.033803 0.015558 0.141260 0.029284 0.020817 0.018988 0.110401 0.041508 0.014566 0.008194 0.110401 0.040885 0.002318 0.020534 0.063422 0.039850 0.133891 +0.287604 +0.028697 0.037570 0.029766 0.029324 0.016321 0.074261 0.010734 0.035793 0.028266 0.028671 0.015912 0.135150 0.015499 0.015520 0.028352 0.028346 0.016506 0.055524 0.029668 0.019543 0.021194 0.086911 0.041278 0.015980 0.008971 0.110401 0.038327 0.000799 0.020588 0.086911 0.041958 0.180870 +0.237505 +0.032428 0.038586 0.029639 0.030781 0.017764 0.118861 0.011089 0.035888 0.030411 0.029602 0.018549 0.096679 0.015065 0.015606 0.035719 0.030023 0.017361 0.089205 0.028267 0.020607 0.023431 0.180870 0.040737 0.013290 0.007150 0.180870 0.038143 0.000195 0.018916 0.180870 0.040012 0.204360 +0.386236 +0.031250 0.036348 0.029385 0.031502 0.016427 0.024133 0.010811 0.035813 0.028584 0.030622 0.018758 0.092858 0.015095 0.015878 0.029209 0.029032 0.018609 0.061519 0.029367 0.021052 0.021657 0.063422 0.040366 0.012970 0.007346 0.086911 0.038456 0.000009 0.021037 0.086911 0.039402 0.133891 +0.085958 +0.029694 0.035839 0.030181 0.042327 0.017286 0.062238 0.009471 0.035605 0.031283 0.030148 0.014235 0.125819 0.015527 0.016442 0.030975 0.029309 0.016979 0.052118 0.029613 0.019197 0.020986 0.110401 0.040285 0.017616 0.007658 0.157380 0.041675 0.000309 0.019553 0.063422 0.039543 0.180870 +0.211750 +0.028651 0.037265 0.028375 0.028892 0.016859 0.028600 0.011394 0.036354 0.028247 0.030767 0.014979 0.088828 0.015293 0.016223 0.030318 0.030101 0.016698 0.041902 0.026895 0.021015 0.019358 0.086911 0.037802 0.013589 0.005398 0.110401 0.041360 0.001531 0.020627 0.133891 0.041987 0.157380 +0.099879 +0.032052 0.034998 0.031267 0.030403 0.014647 0.156560 0.009700 0.036965 0.032081 0.029572 0.014487 0.044129 0.015061 0.016052 0.029702 0.029532 0.017624 0.126345 0.029248 0.021105 0.020187 0.157380 0.037869 0.018721 0.013797 0.063422 0.039302 0.000312 0.019176 0.110401 0.037986 0.204360 +0.406872 +0.028944 0.039014 0.028381 0.038686 0.016613 0.022754 0.011714 0.036562 0.030424 0.029267 0.015637 0.171967 0.015312 0.015763 0.029147 0.029344 0.014223 0.191648 0.028808 0.020343 0.021591 0.086911 0.039274 0.017872 0.008224 0.063422 0.040819 0.000529 0.019472 0.157380 0.040555 0.204360 +0.475662 +0.028500 0.038765 0.030787 0.031971 0.018290 0.065011 0.011642 0.036926 0.032605 0.029565 0.015019 0.077521 0.016232 0.016206 0.028370 0.032266 0.014195 0.100044 0.026659 0.020835 0.018973 0.086911 0.041657 0.014677 0.006881 0.110401 0.038936 0.001138 0.020421 0.110401 0.040323 0.157380 +0.207991 +0.031507 0.033731 0.033267 0.031277 0.018333 0.063158 0.010176 0.035313 0.030867 0.033496 0.017093 0.122770 0.015549 0.015684 0.031910 0.028885 0.018096 0.189452 0.027334 0.020409 0.022544 0.086911 0.039055 0.013049 0.007066 0.063422 0.039659 0.000746 0.020319 0.063422 0.038548 0.133891 +0.483717 +0.028342 0.039414 0.028609 0.036063 0.015657 0.047181 0.011189 0.037583 0.030112 0.034302 0.016100 0.213262 0.016032 0.015922 0.028423 0.030280 0.016292 0.101758 0.027251 0.020868 0.021658 0.086911 0.037968 0.017346 0.009288 0.133891 0.041844 0.000570 0.019758 0.110401 0.041877 0.157380 +0.400791 +0.031602 0.038375 0.030873 0.029830 0.015552 0.095044 0.009453 0.036754 0.029362 0.030361 0.015086 0.146349 0.015122 0.016267 0.031314 0.031286 0.015543 0.131014 0.028852 0.019262 0.019095 0.063422 0.039004 0.017271 0.011284 0.133891 0.041425 0.001352 0.020640 0.063422 0.042100 0.180870 +0.364174 +0.032177 0.033098 0.029559 0.028806 0.016521 0.036043 0.009579 0.036387 0.029925 0.033186 0.018313 0.067368 0.016337 0.015682 0.029178 0.031007 0.018655 0.140976 0.026364 0.020818 0.020752 0.086911 0.038516 0.016985 0.006667 0.157380 0.038355 0.002044 0.019322 0.157380 0.037983 0.180870 +0.205480 +0.032356 0.037256 0.031934 0.029331 0.017686 0.072071 0.011235 0.035249 0.034749 0.028757 0.016707 0.059003 0.015610 0.015856 0.028781 0.031567 0.014982 0.041630 0.029182 0.020987 0.019079 0.110401 0.038555 0.016360 0.004739 0.110401 0.038100 0.001028 0.019712 0.133891 0.037834 0.204360 +0.124119 +0.032520 0.036388 0.031874 0.029111 0.014268 0.075094 0.009687 0.037546 0.031077 0.028233 0.015794 0.060908 0.016088 0.016223 0.031309 0.032033 0.016208 0.032543 0.028445 0.020160 0.023158 0.063422 0.041225 0.016293 0.007500 0.110401 0.040244 0.000595 0.020574 0.086911 0.041486 0.180870 +0.018741 +0.031262 0.033493 0.032193 0.029748 0.016340 0.070599 0.009406 0.037354 0.029651 0.030549 0.018074 0.016863 0.015353 0.015594 0.029524 0.029989 0.015600 0.209447 0.027236 0.021056 0.022440 0.063422 0.040965 0.012628 0.012854 0.110401 0.039008 0.001240 0.020649 0.110401 0.041069 0.133891 +0.323377 +0.031672 0.039133 0.029666 0.028659 0.017273 0.041834 0.009808 0.035415 0.031229 0.028958 0.016502 0.057732 0.015960 0.016322 0.031267 0.029053 0.016282 0.046623 0.027717 0.021021 0.019918 0.063422 0.038709 0.014936 0.010848 0.063422 0.039993 0.002234 0.019002 0.086911 0.037999 0.133891 +0.036406 +0.031247 0.033396 0.028255 0.028706 0.014555 0.054336 0.010533 0.037346 0.030762 0.029936 0.018676 0.040961 0.015150 0.015894 0.028883 0.031966 0.017871 0.018415 0.027312 0.021105 0.020822 0.180870 0.038750 0.018687 0.012354 0.157380 0.039089 0.001554 0.019629 0.063422 0.038663 0.204360 +0.029818 +0.028296 0.035402 0.032437 0.029658 0.017081 0.045930 0.010792 0.036410 0.039905 0.029144 0.017314 0.117518 0.015580 0.015878 0.030460 0.038732 0.016457 0.050851 0.030525 0.020792 0.021612 0.086911 0.040026 0.018523 0.005005 0.110401 0.041276 0.000944 0.018970 0.110401 0.041396 0.133891 +0.309957 +0.030795 0.033063 0.030643 0.031440 0.018398 0.105123 0.010214 0.037072 0.035095 0.030820 0.016104 0.071223 0.015315 0.015626 0.030153 0.031378 0.016476 0.098392 0.028571 0.020319 0.020151 0.110401 0.038364 0.017279 0.009226 0.086911 0.038242 0.002103 0.019156 0.086911 0.037759 0.133891 +0.291714 +0.030007 0.035165 0.029766 0.031487 0.016289 0.054663 0.010564 0.035997 0.031316 0.029834 0.014294 0.025421 0.016119 0.016186 0.031685 0.029913 0.015646 0.203896 0.027695 0.019131 0.019840 0.063422 0.037835 0.014959 0.006233 0.133891 0.037587 0.001761 0.020840 0.110401 0.038663 0.180870 +0.269887 +0.032130 0.035844 0.028430 0.028984 0.014359 0.164369 0.010838 0.037536 0.029016 0.029477 0.017971 0.252477 0.015842 0.015641 0.028914 0.028624 0.017128 0.022859 0.028151 0.019454 0.019825 0.063422 0.040671 0.017171 0.013298 0.063422 0.037801 0.001204 0.019204 0.086911 0.041807 0.133891 +0.546338 +0.029578 0.033395 0.033795 0.031714 0.015872 0.027197 0.011074 0.037129 0.030600 0.030468 0.015764 0.124584 0.016227 0.015856 0.037626 0.030003 0.016633 0.102505 0.027139 0.019436 0.020653 0.086911 0.040125 0.015162 0.009940 0.063422 0.039318 0.000912 0.019034 0.063422 0.039948 0.180870 +0.215629 +0.032041 0.033128 0.038184 0.030330 0.016635 0.308438 0.011280 0.036734 0.033155 0.031511 0.015238 0.026855 0.016289 0.015983 0.028902 0.030855 0.017600 0.132631 0.029363 0.020420 0.019776 0.063422 0.040930 0.014974 0.006953 0.133891 0.037874 0.000535 0.019741 0.063422 0.039722 0.157380 +0.578498 +0.028285 0.035257 0.032192 0.029558 0.014280 0.026774 0.010570 0.035678 0.029534 0.028557 0.015617 0.019173 0.015753 0.015894 0.028690 0.029548 0.018789 0.016955 0.027600 0.020198 0.019126 0.110401 0.039179 0.017068 0.009243 0.110401 0.039872 0.000566 0.021132 0.133891 0.041436 0.157380 +0 +0.032098 0.036681 0.029556 0.028937 0.014628 0.098086 0.009732 0.036353 0.029129 0.029096 0.017509 0.054217 0.015218 0.016257 0.028397 0.028334 0.016035 0.112273 0.029197 0.021017 0.018807 0.157380 0.038924 0.017402 0.007251 0.063422 0.040999 0.001598 0.019400 0.110401 0.038332 0.180870 +0.208253 +0.032240 0.035987 0.028530 0.030320 0.015275 0.121035 0.010345 0.037214 0.030137 0.029862 0.017329 0.034787 0.016436 0.015629 0.029222 0.029052 0.016119 0.065172 0.028151 0.019313 0.022185 0.086911 0.038016 0.014396 0.013416 0.157380 0.040823 0.002193 0.020493 0.180870 0.040810 0.204360 +0.296745 +0.028741 0.038708 0.028468 0.028409 0.015366 0.025797 0.011173 0.035432 0.028350 0.029749 0.014597 0.065508 0.016311 0.016089 0.032520 0.029460 0.015165 0.034284 0.029119 0.019434 0.019821 0.110401 0.040668 0.016148 0.010539 0.063422 0.041516 0.001058 0.020645 0.086911 0.040522 0.133891 +0.054666 +0.031878 0.035188 0.029557 0.029252 0.016506 0.057523 0.009640 0.036253 0.034544 0.028465 0.017377 0.220687 0.015281 0.016302 0.030781 0.028756 0.016535 0.126121 0.028612 0.020288 0.020076 0.110401 0.041524 0.014499 0.012702 0.110401 0.040829 0.000577 0.020484 0.133891 0.039441 0.157380 +0.507422 +0.028387 0.035011 0.029320 0.028356 0.018102 0.020719 0.009583 0.037464 0.030221 0.029804 0.015328 0.041211 0.015467 0.015991 0.028751 0.028801 0.014525 0.063186 0.028859 0.019753 0.021322 0.110401 0.041527 0.018571 0.007428 0.063422 0.040488 0.000552 0.021030 0.133891 0.037930 0.157380 +0.030097 +0.028240 0.036485 0.028309 0.028724 0.018044 0.056207 0.010957 0.035521 0.028518 0.035817 0.014679 0.395428 0.015074 0.015504 0.028728 0.030061 0.018295 0.063166 0.026843 0.020685 0.023019 0.110401 0.038633 0.013290 0.007486 0.133891 0.038543 0.000918 0.020026 0.086911 0.040640 0.180870 +0.720659 +0.029749 0.034997 0.033702 0.029828 0.017495 0.196212 0.010890 0.036429 0.036600 0.028436 0.015682 0.061606 0.016080 0.016360 0.028230 0.028870 0.017763 0.053395 0.028852 0.020198 0.022511 0.110401 0.041952 0.013649 0.007645 0.110401 0.039848 0.000139 0.020850 0.086911 0.040762 0.133891 +0.444274 +0.028353 0.039238 0.028635 0.031675 0.016253 0.131166 0.010005 0.036804 0.028443 0.032551 0.015392 0.132237 0.016033 0.015857 0.028269 0.034763 0.014948 0.043057 0.028669 0.019027 0.020061 0.086911 0.039953 0.013696 0.005370 0.110401 0.041909 0.002179 0.019804 0.063422 0.041736 0.133891 +0.298335 +0.031581 0.034974 0.028339 0.028464 0.016309 0.156565 0.010790 0.035642 0.028890 0.028568 0.017950 0.027113 0.015157 0.016351 0.033410 0.030980 0.015385 0.071229 0.026961 0.020820 0.022917 0.063422 0.039675 0.016699 0.008513 0.086911 0.039467 0.001539 0.019033 0.063422 0.039986 0.180870 +0.346880 +0.032688 0.038613 0.028501 0.032241 0.016614 0.083916 0.010253 0.036838 0.029963 0.029189 0.016268 0.022440 0.015588 0.015814 0.028540 0.030343 0.014141 0.022703 0.028556 0.018918 0.022721 0.110401 0.040628 0.015305 0.005666 0.133891 0.038679 0.001277 0.019937 0.063422 0.039143 0.204360 +0 +0.031727 0.038290 0.029466 0.029996 0.018465 0.026066 0.010375 0.036472 0.030066 0.032729 0.017008 0.280386 0.015756 0.015777 0.028756 0.030352 0.015423 0.061766 0.028490 0.020867 0.020517 0.110401 0.038305 0.016639 0.011844 0.086911 0.037866 0.000271 0.020992 0.063422 0.041599 0.204360 +0.434422 +0.029399 0.037798 0.035401 0.028838 0.018636 0.126005 0.010421 0.037573 0.030244 0.030675 0.017207 0.054367 0.016238 0.015918 0.029728 0.033884 0.015566 0.067602 0.025146 0.019446 0.019479 0.133891 0.041028 0.013255 0.010581 0.063422 0.040606 0.001624 0.018820 0.086911 0.037957 0.180870 +0.305191 +0.031519 0.037448 0.028247 0.030058 0.016832 0.040058 0.009675 0.035395 0.033706 0.036397 0.014577 0.235525 0.015122 0.015942 0.031965 0.028454 0.016380 0.113664 0.028481 0.018875 0.021798 0.110401 0.038615 0.017353 0.008789 0.110401 0.037771 0.002343 0.019686 0.110401 0.037806 0.157380 +0.547815 +0.030554 0.039171 0.028880 0.028417 0.017821 0.039212 0.011315 0.036365 0.029624 0.031194 0.015369 0.026568 0.015637 0.016274 0.030601 0.029222 0.015049 0.036319 0.028539 0.020712 0.021721 0.110401 0.041095 0.013619 0.006506 0.110401 0.039660 0.000491 0.019132 0.063422 0.040535 0.133891 +0.034380 +0.029923 0.034894 0.028263 0.033181 0.014502 0.075513 0.011671 0.037239 0.029182 0.028476 0.014240 0.064980 0.015840 0.015545 0.028452 0.030759 0.016496 0.154502 0.026654 0.019815 0.020074 0.063422 0.039914 0.012533 0.005166 0.086911 0.041582 0.000780 0.020706 0.063422 0.039360 0.204360 +0.249460 +0.029538 0.032927 0.029724 0.032603 0.015076 0.175915 0.011139 0.036680 0.032761 0.030230 0.015005 0.024662 0.015088 0.016237 0.028387 0.031947 0.016274 0.074385 0.027311 0.021114 0.019631 0.110401 0.038236 0.013087 0.007271 0.086911 0.040348 0.001030 0.019284 0.110401 0.037667 0.133891 +0.445225 +0.032435 0.033235 0.029252 0.029109 0.017451 0.046550 0.010566 0.036060 0.031856 0.032226 0.018142 0.051217 0.015447 0.016138 0.029643 0.029566 0.015137 0.074183 0.030615 0.020987 0.023122 0.110401 0.040637 0.013375 0.010350 0.110401 0.042188 0.000873 0.020990 0.180870 0.037738 0.204360 +0.084348 +0.031464 0.036873 0.030492 0.032341 0.018425 0.117089 0.011211 0.036839 0.031328 0.028364 0.018498 0.029653 0.015239 0.015663 0.029715 0.029103 0.015785 0.049087 0.027887 0.021021 0.021992 0.157380 0.038848 0.012876 0.006223 0.063422 0.040993 0.002296 0.020898 0.157380 0.040176 0.180870 +0.177083 +0.032218 0.036907 0.030796 0.029142 0.017331 0.067545 0.009583 0.036232 0.028796 0.030615 0.018489 0.290598 0.016119 0.015846 0.028189 0.029160 0.016691 0.018421 0.027638 0.020452 0.023157 0.063422 0.038994 0.013772 0.008032 0.110401 0.038684 0.000394 0.020111 0.063422 0.039661 0.133891 +0.473131 +0.029023 0.034354 0.030483 0.032660 0.015018 0.107515 0.010499 0.036567 0.034349 0.028778 0.014980 0.508698 0.015241 0.016038 0.029391 0.032311 0.016446 0.105838 0.026672 0.019171 0.022648 0.063422 0.040580 0.014655 0.006030 0.063422 0.038455 0.000448 0.021036 0.110401 0.040704 0.133891 +0.887471 +0.028230 0.034954 0.032688 0.028591 0.015103 0.079332 0.009932 0.037110 0.028288 0.034502 0.016753 0.087446 0.015561 0.015709 0.030096 0.028849 0.015023 0.136231 0.029052 0.019008 0.021022 0.110401 0.037698 0.017607 0.008833 0.110401 0.040328 0.000973 0.019622 0.110401 0.040150 0.133891 +0.328758 +0.031330 0.036571 0.028943 0.029811 0.015162 0.080340 0.010290 0.036089 0.030191 0.032988 0.014755 0.128300 0.015686 0.015983 0.035038 0.029724 0.018667 0.073948 0.028651 0.019739 0.022315 0.086911 0.037902 0.016040 0.009450 0.063422 0.038413 0.000831 0.020646 0.133891 0.038259 0.157380 +0.318037 +0.032804 0.033604 0.028259 0.028998 0.014672 0.050201 0.010919 0.036885 0.032017 0.030338 0.016638 0.092722 0.016236 0.015570 0.032939 0.031104 0.017311 0.023803 0.028525 0.019039 0.022599 0.063422 0.041362 0.013440 0.012438 0.086911 0.039484 0.002137 0.020395 0.110401 0.039883 0.133891 +0.097263 +0.031151 0.035815 0.030004 0.030474 0.014717 0.094536 0.010033 0.036652 0.030067 0.028935 0.017395 0.297584 0.015580 0.016431 0.028568 0.029259 0.015559 0.031657 0.026844 0.019503 0.022911 0.133891 0.037588 0.013495 0.008125 0.063422 0.042175 0.001541 0.019385 0.133891 0.038442 0.157380 +0.548396 +0.032554 0.038167 0.028792 0.034527 0.017912 0.121563 0.009977 0.035916 0.028588 0.033829 0.018107 0.050352 0.015327 0.015539 0.029502 0.028484 0.017298 0.287632 0.028463 0.020003 0.022123 0.086911 0.039968 0.013829 0.005706 0.133891 0.038937 0.000267 0.019666 0.063422 0.041789 0.157380 +0.540912 +0.029217 0.036852 0.030594 0.028831 0.017648 0.244062 0.010910 0.035815 0.028464 0.028847 0.017564 0.055801 0.016407 0.016253 0.029023 0.029767 0.017007 0.131685 0.028557 0.019900 0.022437 0.110401 0.041554 0.015943 0.013369 0.133891 0.040926 0.000303 0.019883 0.133891 0.041736 0.157380 +0.521566 +0.032751 0.035842 0.031450 0.029064 0.015922 0.245369 0.009840 0.035549 0.032832 0.029448 0.018488 0.024395 0.015122 0.016219 0.030066 0.031115 0.018166 0.055668 0.031255 0.019026 0.023237 0.110401 0.039136 0.013989 0.009503 0.086911 0.040654 0.000245 0.020546 0.063422 0.038136 0.133891 +0.338330 +0.029888 0.036894 0.030464 0.028252 0.015447 0.053375 0.010106 0.036571 0.035869 0.030548 0.017596 0.131299 0.015644 0.015858 0.028682 0.031403 0.016596 0.114629 0.030675 0.018913 0.023474 0.133891 0.038094 0.012906 0.007867 0.063422 0.041136 0.001557 0.019513 0.086911 0.041202 0.204360 +0.265442 +0.032375 0.036465 0.029138 0.028710 0.018033 0.091073 0.010067 0.036147 0.028422 0.034165 0.014109 0.079736 0.015567 0.015631 0.028461 0.033520 0.018357 0.077133 0.029074 0.018838 0.022942 0.110401 0.039610 0.018399 0.007095 0.086911 0.041006 0.001706 0.019382 0.063422 0.039738 0.204360 +0.212571 +0.028502 0.038030 0.029175 0.029199 0.016297 0.070381 0.011346 0.035611 0.031589 0.044385 0.017927 0.021329 0.016174 0.016184 0.029395 0.029220 0.014416 0.051562 0.029773 0.021059 0.022239 0.110401 0.038412 0.015884 0.006297 0.110401 0.042150 0.001176 0.021039 0.063422 0.040575 0.133891 +0.109697 +0.032238 0.036615 0.033341 0.032183 0.016042 0.038599 0.009679 0.036226 0.028383 0.030490 0.015341 0.140404 0.015923 0.016127 0.028885 0.032471 0.015351 0.226410 0.027141 0.019124 0.020436 0.180870 0.040541 0.015359 0.010966 0.086911 0.037791 0.000461 0.020322 0.086911 0.037726 0.204360 +0.560848 +0.029790 0.033330 0.028270 0.029446 0.016881 0.029540 0.009658 0.037571 0.029276 0.029176 0.016660 0.124444 0.016287 0.016211 0.028797 0.031724 0.016603 0.084323 0.026916 0.020730 0.021393 0.086911 0.038964 0.013600 0.008067 0.133891 0.042174 0.000764 0.020513 0.133891 0.041184 0.157380 +0.238610 +0.029180 0.032925 0.038876 0.029727 0.015921 0.085960 0.010581 0.036583 0.029516 0.031122 0.015134 0.044564 0.015615 0.015996 0.028980 0.028865 0.018456 0.018291 0.027127 0.020673 0.019696 0.063422 0.040296 0.014890 0.012218 0.063422 0.039950 0.000666 0.020273 0.110401 0.039151 0.180870 +0.005359 +0.031986 0.034344 0.028839 0.028268 0.014481 0.084384 0.010362 0.037298 0.029473 0.032470 0.015763 0.134141 0.015392 0.016194 0.029473 0.031170 0.018628 0.027959 0.026341 0.020165 0.023423 0.133891 0.037648 0.016093 0.008104 0.133891 0.038123 0.001352 0.021013 0.086911 0.038168 0.204360 +0.305147 +0.030030 0.034118 0.028221 0.028243 0.015640 0.058674 0.011348 0.035241 0.029764 0.043133 0.015176 0.146126 0.016385 0.015634 0.028805 0.028358 0.015377 0.148128 0.026296 0.020052 0.023402 0.110401 0.038023 0.012374 0.005877 0.110401 0.038633 0.001197 0.019788 0.110401 0.042232 0.180870 +0.453250 +0.028614 0.036819 0.029464 0.028520 0.015491 0.136577 0.010133 0.036798 0.030485 0.029036 0.016021 0.254394 0.015281 0.015782 0.028377 0.031815 0.017433 0.026422 0.026552 0.021106 0.020906 0.063422 0.041248 0.013508 0.006158 0.133891 0.037992 0.000533 0.019080 0.133891 0.041613 0.157380 +0.554824 +0.030046 0.039840 0.029070 0.028437 0.015421 0.049063 0.010429 0.036133 0.030038 0.036302 0.015220 0.063802 0.015155 0.015968 0.028617 0.030444 0.017571 0.129262 0.027520 0.020379 0.023035 0.133891 0.040620 0.011795 0.010618 0.086911 0.039463 0.001231 0.020934 0.180870 0.040689 0.204360 +0.202234 +0.031929 0.037153 0.032093 0.029792 0.015027 0.048701 0.010553 0.036016 0.038478 0.030767 0.016740 0.029972 0.015888 0.016294 0.030635 0.030109 0.017393 0.042640 0.027941 0.020292 0.020375 0.110401 0.038336 0.017091 0.008818 0.157380 0.040715 0.001147 0.020995 0.133891 0.037825 0.180870 +0.006271 +0.028661 0.037037 0.028327 0.028813 0.014777 0.106688 0.010575 0.035671 0.028417 0.028416 0.017870 0.117269 0.015965 0.016134 0.028920 0.028765 0.018327 0.028128 0.027112 0.019993 0.022179 0.157380 0.039909 0.016208 0.012437 0.110401 0.038529 0.001699 0.020771 0.086911 0.038191 0.204360 +0.244625 +0.030506 0.036153 0.028704 0.029518 0.014211 0.024771 0.010950 0.036091 0.030770 0.030454 0.018331 0.017746 0.016391 0.015971 0.029870 0.034258 0.015033 0.107248 0.025725 0.019695 0.019750 0.157380 0.040254 0.012318 0.012560 0.086911 0.039762 0.001841 0.020102 0.110401 0.040624 0.204360 +0.049888 +0.030378 0.034991 0.030512 0.028384 0.017726 0.035248 0.011259 0.035762 0.029377 0.029952 0.018162 0.027120 0.015319 0.015551 0.031020 0.029105 0.014284 0.060140 0.028111 0.021063 0.020831 0.063422 0.041279 0.018340 0.011210 0.110401 0.040972 0.000096 0.019748 0.063422 0.038302 0.157380 +0.008846 +0.030290 0.034371 0.028384 0.031054 0.014752 0.086121 0.010594 0.036990 0.029956 0.031993 0.018514 0.030565 0.015441 0.016174 0.029977 0.029206 0.014728 0.040582 0.029815 0.020888 0.023377 0.180870 0.039744 0.013537 0.006709 0.110401 0.039930 0.001357 0.020278 0.086911 0.038183 0.204360 +0.092360 +0.031647 0.036547 0.028399 0.030656 0.014363 0.034036 0.009723 0.035870 0.028676 0.030207 0.014865 0.021952 0.016318 0.015866 0.028246 0.030278 0.014910 0.022713 0.028224 0.019950 0.023457 0.133891 0.039537 0.015150 0.013116 0.157380 0.037704 0.000431 0.021087 0.157380 0.040602 0.180870 +0 +0.028905 0.038898 0.029632 0.029970 0.017812 0.228821 0.011500 0.036288 0.029475 0.029942 0.014686 0.093735 0.015975 0.016098 0.032021 0.029713 0.018175 0.116031 0.028179 0.020822 0.022264 0.063422 0.038178 0.015090 0.011034 0.110401 0.039126 0.000718 0.020120 0.063422 0.037927 0.133891 +0.621589 +0.029093 0.033037 0.030451 0.030607 0.015316 0.073561 0.011575 0.037458 0.030149 0.033779 0.014677 0.057523 0.016108 0.015826 0.029377 0.029020 0.016477 0.045598 0.028859 0.020072 0.023457 0.086911 0.041322 0.013177 0.007310 0.086911 0.040001 0.000987 0.021012 0.110401 0.042075 0.133891 +0.128168 +0.031315 0.035901 0.031649 0.028681 0.016486 0.127324 0.010839 0.036514 0.031902 0.032561 0.017959 0.148996 0.016421 0.015659 0.028917 0.029041 0.015661 0.084311 0.029308 0.020889 0.021346 0.180870 0.038226 0.018657 0.010389 0.063422 0.040426 0.000325 0.019605 0.063422 0.038282 0.204360 +0.399697 +0.031950 0.035526 0.029995 0.029154 0.016276 0.126874 0.011595 0.037512 0.031782 0.033048 0.014713 0.164695 0.015657 0.015981 0.028628 0.029394 0.014980 0.032302 0.026190 0.019280 0.020289 0.110401 0.040339 0.015110 0.009911 0.063422 0.037978 0.001567 0.019215 0.110401 0.038190 0.133891 +0.449120 +0.031520 0.038319 0.030642 0.030871 0.014798 0.139822 0.010813 0.036920 0.033962 0.030380 0.014335 0.193151 0.016032 0.015976 0.029273 0.030108 0.015252 0.026561 0.025957 0.020771 0.022375 0.086911 0.042115 0.016801 0.013920 0.157380 0.038017 0.000121 0.019813 0.086911 0.041171 0.180870 +0.355309 +0.031556 0.033146 0.028897 0.030841 0.016423 0.069260 0.009807 0.036747 0.028670 0.030073 0.017421 0.039333 0.015199 0.016419 0.032059 0.029462 0.018474 0.069162 0.027494 0.020025 0.020203 0.086911 0.038827 0.016335 0.011032 0.063422 0.040129 0.001095 0.020475 0.110401 0.039492 0.133891 +0.135753 +0.030258 0.037633 0.028765 0.030066 0.014584 0.017487 0.009628 0.036553 0.029335 0.029316 0.018672 0.164798 0.016258 0.016363 0.031848 0.028849 0.017199 0.102315 0.027202 0.020953 0.021364 0.063422 0.038149 0.014433 0.010606 0.086911 0.039918 0.002047 0.019880 0.063422 0.039365 0.133891 +0.307377 +0.032665 0.039718 0.031254 0.029238 0.015692 0.030459 0.011343 0.036889 0.030867 0.034164 0.015112 0.040666 0.016128 0.016429 0.030472 0.028491 0.017602 0.072507 0.026354 0.020954 0.022389 0.063422 0.039320 0.011986 0.013670 0.063422 0.040055 0.001398 0.020475 0.086911 0.040978 0.133891 +0.037127 +0.030538 0.034480 0.029707 0.029044 0.014190 0.234262 0.011503 0.036345 0.028942 0.028496 0.018414 0.068084 0.016397 0.016283 0.032143 0.029792 0.015915 0.017673 0.028218 0.018793 0.019659 0.133891 0.038300 0.017778 0.005276 0.063422 0.039476 0.001701 0.020337 0.133891 0.042188 0.157380 +0.447060 +0.032153 0.033447 0.030692 0.028266 0.018775 0.062200 0.009589 0.035796 0.028619 0.028682 0.014206 0.100221 0.015176 0.016344 0.028635 0.028704 0.018313 0.056358 0.027389 0.019597 0.019683 0.063422 0.039398 0.012346 0.013840 0.086911 0.039361 0.000386 0.020509 0.086911 0.042272 0.133891 +0.168495 +0.028490 0.037756 0.031837 0.028938 0.016751 0.037904 0.010066 0.035309 0.035189 0.029545 0.015483 0.162938 0.015277 0.016043 0.031515 0.035256 0.018537 0.038143 0.029732 0.020235 0.021677 0.157380 0.042182 0.018087 0.008911 0.180870 0.038991 0.000994 0.020208 0.133891 0.040544 0.204360 +0.156766 +0.030628 0.034518 0.031901 0.028528 0.015195 0.156753 0.009945 0.036634 0.028329 0.032898 0.016522 0.023001 0.015916 0.015547 0.030073 0.031622 0.018256 0.115481 0.030894 0.020399 0.023159 0.157380 0.038995 0.012030 0.006076 0.110401 0.041039 0.002125 0.020652 0.133891 0.037777 0.180870 +0.331655 +0.030252 0.036777 0.029230 0.028962 0.018429 0.021099 0.010934 0.037477 0.030233 0.030293 0.015975 0.071293 0.015629 0.015668 0.029444 0.029900 0.014846 0.030011 0.028675 0.019167 0.021592 0.086911 0.038219 0.015374 0.006526 0.110401 0.039311 0.001238 0.018815 0.063422 0.039889 0.204360 +0 +0.031959 0.037511 0.032911 0.031089 0.018769 0.094160 0.009875 0.035923 0.033957 0.029491 0.017421 0.035572 0.015096 0.015926 0.032109 0.029814 0.017743 0.241415 0.028891 0.019316 0.023309 0.086911 0.039791 0.017275 0.008493 0.180870 0.040731 0.001272 0.019450 0.133891 0.042185 0.204360 +0.474823 +0.031869 0.033628 0.029929 0.029036 0.017554 0.059534 0.009808 0.035818 0.028369 0.031517 0.018327 0.040541 0.015766 0.015764 0.030425 0.032727 0.016713 0.238096 0.028299 0.020394 0.019611 0.133891 0.038094 0.014261 0.013298 0.110401 0.039919 0.001141 0.020180 0.063422 0.039454 0.157380 +0.475467 +0.032385 0.037657 0.029237 0.028251 0.014434 0.141642 0.009826 0.036823 0.029034 0.031155 0.018533 0.047654 0.016057 0.015665 0.029171 0.029864 0.018053 0.075578 0.028004 0.020984 0.023045 0.110401 0.041846 0.012727 0.011386 0.110401 0.039636 0.001731 0.021118 0.180870 0.038718 0.204360 +0.242997 +0.031998 0.035089 0.032676 0.028335 0.018111 0.022164 0.010838 0.037486 0.029094 0.028289 0.015912 0.024465 0.015808 0.016347 0.028684 0.029170 0.016523 0.049577 0.027502 0.018838 0.023236 0.110401 0.041735 0.012717 0.011993 0.133891 0.038221 0.001147 0.019052 0.110401 0.037892 0.180870 +0 +0.031603 0.038291 0.034539 0.031288 0.016894 0.130510 0.010242 0.036840 0.029322 0.028594 0.017478 0.020565 0.016331 0.015794 0.028527 0.029834 0.016534 0.120632 0.028675 0.019985 0.022100 0.063422 0.038741 0.012516 0.012013 0.063422 0.038715 0.000161 0.020872 0.110401 0.038278 0.133891 +0.393082 +0.030597 0.039107 0.038254 0.029291 0.017434 0.039939 0.010705 0.036268 0.030448 0.030150 0.018270 0.090695 0.015879 0.016286 0.030075 0.031832 0.018442 0.029049 0.029211 0.020054 0.019515 0.157380 0.040082 0.016168 0.007173 0.110401 0.042017 0.001780 0.019537 0.133891 0.040642 0.180870 +0.085623 +0.030212 0.038919 0.030258 0.030714 0.017716 0.019922 0.011525 0.037074 0.028894 0.033385 0.014127 0.078347 0.015973 0.016439 0.028389 0.029212 0.016938 0.043581 0.028762 0.020782 0.022973 0.063422 0.038651 0.016720 0.010632 0.110401 0.039211 0.001342 0.020631 0.157380 0.040944 0.180870 +0.036853 +0.032854 0.037895 0.029009 0.035476 0.017587 0.070313 0.009497 0.037324 0.030766 0.033724 0.014306 0.059884 0.015497 0.015851 0.028904 0.035722 0.016864 0.053420 0.028231 0.019645 0.021310 0.110401 0.041375 0.014941 0.007936 0.110401 0.041545 0.001987 0.019025 0.133891 0.041138 0.157380 +0.118143 +0.029466 0.033672 0.030189 0.028997 0.018439 0.104085 0.011239 0.035277 0.030361 0.028266 0.016582 0.093431 0.016168 0.015991 0.028711 0.028310 0.018694 0.236659 0.026912 0.019716 0.023419 0.086911 0.039369 0.012455 0.013607 0.180870 0.042091 0.001727 0.020570 0.086911 0.041718 0.204360 +0.532604 +0.031883 0.033650 0.028834 0.031532 0.015649 0.034593 0.009986 0.036174 0.030023 0.029313 0.015078 0.025309 0.015754 0.016172 0.033180 0.029024 0.015960 0.299141 0.026722 0.020801 0.019390 0.086911 0.041159 0.016392 0.007702 0.086911 0.041327 0.001832 0.020360 0.110401 0.039836 0.133891 +0.473620 +0.028423 0.038244 0.032971 0.033400 0.015882 0.025233 0.010099 0.037463 0.028614 0.029025 0.017347 0.122937 0.015680 0.015864 0.029763 0.029931 0.015326 0.034413 0.028284 0.020379 0.023309 0.133891 0.040982 0.012154 0.008507 0.086911 0.040716 0.001153 0.020336 0.133891 0.040852 0.204360 +0.079047 +0.030541 0.035560 0.034662 0.029263 0.018142 0.201661 0.010496 0.037198 0.028878 0.029148 0.018143 0.124247 0.015312 0.016333 0.029593 0.029746 0.017135 0.051614 0.030975 0.019888 0.021447 0.110401 0.038270 0.014237 0.009977 0.063422 0.038030 0.000020 0.020426 0.133891 0.039144 0.204360 +0.355040 +0.032165 0.033162 0.029742 0.029023 0.016616 0.093409 0.011303 0.037025 0.030123 0.029736 0.014815 0.128810 0.015988 0.015672 0.028229 0.030697 0.018555 0.062620 0.028006 0.020644 0.019332 0.063422 0.039980 0.015113 0.006526 0.110401 0.038449 0.000484 0.020452 0.157380 0.038295 0.180870 +0.243861 +0.031059 0.034042 0.028921 0.030275 0.018529 0.026815 0.010361 0.036948 0.031822 0.034188 0.015624 0.056402 0.015933 0.015708 0.033342 0.033293 0.015686 0.067412 0.029236 0.020564 0.021011 0.086911 0.038819 0.016889 0.008234 0.063422 0.040058 0.001825 0.019605 0.063422 0.041194 0.133891 +0.051853 +0.028399 0.038805 0.034242 0.031615 0.014414 0.025471 0.010814 0.036618 0.028591 0.031995 0.014599 0.057690 0.015851 0.016398 0.028392 0.029668 0.015242 0.038805 0.028363 0.019971 0.019065 0.063422 0.041014 0.015906 0.013963 0.110401 0.040545 0.001667 0.021087 0.110401 0.038087 0.180870 +0.001066 +0.028737 0.037595 0.029625 0.028499 0.014830 0.019491 0.009868 0.036699 0.030165 0.029151 0.016965 0.173514 0.015535 0.015826 0.030081 0.030124 0.016940 0.047952 0.028219 0.020705 0.022274 0.086911 0.040986 0.018781 0.008411 0.086911 0.040708 0.001220 0.019275 0.133891 0.040476 0.157380 +0.222453 +0.028272 0.033470 0.031298 0.029089 0.017824 0.061365 0.009736 0.036576 0.041237 0.029635 0.014565 0.045701 0.015731 0.016334 0.036289 0.030510 0.018450 0.032622 0.027896 0.019090 0.023366 0.110401 0.038591 0.014867 0.012199 0.086911 0.040550 0.000257 0.020861 0.063422 0.037936 0.133891 +0.124274 +0.031087 0.033910 0.030138 0.033965 0.017212 0.026046 0.011209 0.036316 0.029634 0.030311 0.016211 0.021248 0.016428 0.015890 0.028284 0.028224 0.014959 0.146573 0.027759 0.019516 0.022000 0.133891 0.042147 0.014758 0.011458 0.086911 0.037593 0.002256 0.020550 0.110401 0.040122 0.204360 +0.029218 +0.028347 0.038389 0.028695 0.031383 0.014102 0.024879 0.010374 0.037450 0.029788 0.030456 0.015525 0.036321 0.016377 0.016301 0.028416 0.029471 0.016961 0.085958 0.027521 0.018930 0.022188 0.110401 0.040572 0.017351 0.007706 0.133891 0.040562 0.000614 0.018915 0.133891 0.037818 0.204360 +0.019545 +0.031847 0.038110 0.028406 0.032567 0.017953 0.107721 0.009947 0.035799 0.029808 0.028316 0.017671 0.030537 0.016035 0.015987 0.028942 0.031262 0.015066 0.128558 0.027864 0.019438 0.020012 0.086911 0.039128 0.016554 0.011687 0.086911 0.039752 0.001620 0.020952 0.063422 0.039960 0.133891 +0.223402 +0.028240 0.039084 0.030734 0.034901 0.016639 0.018217 0.009452 0.035511 0.036810 0.030431 0.017719 0.125341 0.015290 0.016083 0.029800 0.036506 0.014656 0.128298 0.029332 0.019491 0.022237 0.063422 0.039764 0.017838 0.013070 0.180870 0.039818 0.001153 0.020442 0.180870 0.040594 0.204360 +0.234160 +0.029157 0.037674 0.030727 0.028823 0.015970 0.044320 0.010792 0.037477 0.030098 0.028301 0.016263 0.032834 0.016117 0.016187 0.029399 0.029717 0.015134 0.065547 0.029630 0.020082 0.019664 0.063422 0.040471 0.012134 0.005963 0.110401 0.037645 0.001939 0.019298 0.063422 0.039388 0.133891 +0.058031 +0.028575 0.033187 0.028278 0.028210 0.015999 0.155799 0.009911 0.037503 0.028524 0.030340 0.018493 0.064273 0.015717 0.015649 0.031221 0.030040 0.017542 0.063101 0.027459 0.019423 0.021623 0.133891 0.039426 0.012299 0.005165 0.086911 0.041528 0.000070 0.018819 0.110401 0.037811 0.157380 +0.394175 +0.030303 0.036422 0.028531 0.044247 0.018460 0.023373 0.009683 0.035395 0.036593 0.028947 0.016511 0.022394 0.015329 0.016210 0.029139 0.029340 0.016998 0.294993 0.027837 0.020105 0.019412 0.086911 0.038829 0.018308 0.004783 0.063422 0.039110 0.002298 0.020928 0.110401 0.041631 0.133891 +0.426178 +0.031301 0.033937 0.028542 0.029093 0.015005 0.057811 0.010919 0.035808 0.029024 0.029527 0.014517 0.081759 0.015608 0.016145 0.029181 0.031827 0.016088 0.080066 0.028769 0.020717 0.019969 0.063422 0.040207 0.018200 0.007522 0.086911 0.040257 0.001132 0.019718 0.133891 0.041849 0.157380 +0.248955 +0.030841 0.035554 0.030355 0.028596 0.017547 0.018428 0.010704 0.036304 0.029698 0.029214 0.015942 0.146778 0.016322 0.015985 0.028258 0.028384 0.017664 0.077862 0.028846 0.019698 0.020754 0.063422 0.038701 0.013332 0.011975 0.133891 0.039931 0.001347 0.020004 0.063422 0.040478 0.157380 +0.221972 +0.029164 0.038739 0.028675 0.034007 0.017197 0.049511 0.009963 0.035539 0.030018 0.028819 0.016086 0.037052 0.015484 0.015603 0.029264 0.028360 0.014184 0.034669 0.028603 0.020153 0.019312 0.110401 0.038764 0.018780 0.006061 0.086911 0.038534 0.000696 0.019080 0.086911 0.038860 0.133891 +0.067318 +0.032117 0.039825 0.028513 0.029005 0.016022 0.107306 0.011205 0.036387 0.028640 0.028281 0.015192 0.065101 0.016346 0.016331 0.031291 0.029029 0.015047 0.048220 0.028424 0.020368 0.019627 0.110401 0.038422 0.018137 0.008803 0.086911 0.039084 0.000658 0.021043 0.063422 0.039808 0.133891 +0.223535 +0.029649 0.035855 0.028518 0.029583 0.017078 0.227359 0.010344 0.036004 0.029964 0.031838 0.016249 0.191570 0.015797 0.016001 0.028940 0.028530 0.014925 0.036017 0.027525 0.019619 0.023313 0.063422 0.041808 0.011783 0.007051 0.086911 0.041367 0.000623 0.020851 0.110401 0.039836 0.157380 +0.516038 +0.029320 0.038145 0.030325 0.029376 0.015143 0.080447 0.010202 0.037246 0.029384 0.034747 0.015459 0.130559 0.016196 0.016186 0.028332 0.030396 0.015299 0.029535 0.026043 0.019858 0.021298 0.086911 0.038961 0.017447 0.010804 0.063422 0.041634 0.000225 0.020601 0.086911 0.039815 0.133891 +0.219135 +0.031034 0.033071 0.028440 0.029291 0.017705 0.087879 0.009578 0.037510 0.031254 0.029065 0.016462 0.018789 0.015512 0.015815 0.030055 0.031533 0.016048 0.093480 0.028834 0.020500 0.018806 0.110401 0.038713 0.018140 0.013998 0.063422 0.041155 0.002029 0.018901 0.133891 0.039240 0.204360 +0.115762 +0.031752 0.033221 0.029513 0.028462 0.015240 0.094800 0.010393 0.035809 0.030363 0.036729 0.015765 0.065827 0.015909 0.015907 0.030210 0.029166 0.017163 0.052970 0.029038 0.020629 0.019696 0.063422 0.040243 0.017876 0.005975 0.110401 0.038693 0.001608 0.018935 0.063422 0.039259 0.157380 +0.140152 +0.030073 0.037427 0.028579 0.028270 0.015046 0.036808 0.009501 0.035652 0.030376 0.032613 0.016692 0.028772 0.015995 0.016143 0.029827 0.030117 0.014775 0.137452 0.027695 0.019629 0.023392 0.180870 0.037697 0.015449 0.004829 0.086911 0.038969 0.001080 0.020963 0.063422 0.042058 0.204360 +0.188766 +0.032670 0.039774 0.028578 0.029788 0.016820 0.172659 0.011669 0.035850 0.029260 0.029060 0.017448 0.092013 0.016290 0.016386 0.029359 0.032003 0.018258 0.054649 0.027931 0.020262 0.022687 0.086911 0.041489 0.016435 0.012529 0.110401 0.041929 0.000721 0.019150 0.063422 0.039904 0.133891 +0.338503 +0.031854 0.037048 0.028636 0.034368 0.015903 0.152593 0.011389 0.036128 0.029116 0.028415 0.015852 0.038372 0.016118 0.016163 0.028318 0.028474 0.018208 0.074952 0.027402 0.021056 0.023276 0.063422 0.040263 0.017019 0.012279 0.110401 0.041917 0.000320 0.019511 0.063422 0.037612 0.133891 +0.421923 +0.031143 0.035063 0.031191 0.029095 0.016231 0.281739 0.010018 0.035785 0.033411 0.028971 0.016441 0.293028 0.015187 0.015537 0.028398 0.028466 0.014103 0.024395 0.026455 0.020613 0.023363 0.086911 0.037599 0.014583 0.011042 0.063422 0.040343 0.000650 0.020926 0.110401 0.041580 0.133891 +0.718672 +0.031372 0.037289 0.031703 0.029511 0.016608 0.061460 0.010364 0.036460 0.029885 0.029108 0.018256 0.049058 0.016364 0.016291 0.033599 0.028507 0.018337 0.109173 0.028746 0.019102 0.022742 0.110401 0.041074 0.012695 0.008756 0.086911 0.039646 0.001183 0.020605 0.086911 0.037775 0.157380 +0.140693 +0.028380 0.034576 0.030230 0.029020 0.015366 0.018622 0.010169 0.037229 0.028693 0.028833 0.014807 0.108389 0.016128 0.016346 0.030798 0.028873 0.014176 0.020227 0.029493 0.019367 0.022851 0.180870 0.039841 0.014979 0.012576 0.180870 0.039238 0.002117 0.020486 0.180870 0.041620 0.204360 +0.111156 +0.031976 0.034644 0.029575 0.028902 0.017944 0.148725 0.010581 0.037311 0.030799 0.030486 0.015292 0.050532 0.015564 0.016232 0.034075 0.029855 0.017853 0.018016 0.026460 0.020240 0.022787 0.063422 0.040475 0.017450 0.006542 0.180870 0.038474 0.000719 0.020013 0.157380 0.041147 0.204360 +0.326214 +0.032343 0.035516 0.029557 0.028344 0.015380 0.100656 0.009564 0.037026 0.034183 0.028249 0.016376 0.052110 0.016274 0.016206 0.028647 0.030862 0.018695 0.040547 0.029849 0.019074 0.023238 0.157380 0.037724 0.014617 0.009838 0.157380 0.041914 0.001701 0.020901 0.110401 0.037594 0.204360 +0.102084 +0.031077 0.035725 0.028366 0.029850 0.015137 0.047586 0.010582 0.035796 0.029959 0.028324 0.017941 0.074959 0.015339 0.016381 0.029835 0.032925 0.017810 0.020476 0.027915 0.019483 0.020754 0.180870 0.039455 0.013911 0.006171 0.157380 0.037668 0.000657 0.018852 0.063422 0.042257 0.204360 +0.086628 +0.030987 0.038823 0.031141 0.031491 0.014236 0.036620 0.011320 0.035807 0.028563 0.031095 0.016179 0.071655 0.015441 0.015716 0.034261 0.028609 0.014587 0.021231 0.029442 0.019002 0.020153 0.110401 0.041027 0.014942 0.012608 0.157380 0.040826 0.000048 0.020300 0.063422 0.037716 0.180870 +0.009723 +0.031166 0.037607 0.028198 0.029530 0.015178 0.054571 0.011452 0.036603 0.028970 0.030231 0.018152 0.123928 0.016187 0.015987 0.028628 0.032855 0.015403 0.056470 0.028147 0.020687 0.019419 0.133891 0.039439 0.014687 0.009380 0.110401 0.039754 0.000415 0.019501 0.086911 0.039649 0.157380 +0.206388 +0.030150 0.038343 0.030657 0.028697 0.016476 0.087075 0.011291 0.036553 0.028454 0.028983 0.017334 0.018766 0.015943 0.015560 0.029726 0.028220 0.015629 0.020674 0.027129 0.020880 0.022122 0.157380 0.038617 0.017479 0.011292 0.063422 0.039546 0.001265 0.019952 0.157380 0.040555 0.180870 +0.060166 +0.029827 0.035908 0.031866 0.033699 0.018318 0.069278 0.009729 0.035598 0.030509 0.029059 0.018450 0.123167 0.015160 0.016229 0.028398 0.029566 0.017280 0.096654 0.027050 0.020427 0.020139 0.180870 0.041431 0.016018 0.008743 0.133891 0.040336 0.000239 0.020086 0.157380 0.040209 0.204360 +0.212063 +0.032736 0.035485 0.032736 0.030905 0.018574 0.099354 0.011407 0.036394 0.028426 0.030714 0.017105 0.034598 0.016070 0.015709 0.028280 0.029289 0.018022 0.070569 0.028309 0.021100 0.023360 0.063422 0.039102 0.015075 0.006703 0.063422 0.040359 0.001823 0.019698 0.133891 0.037863 0.180870 +0.103085 +0.031506 0.038549 0.030182 0.028367 0.017204 0.142284 0.010060 0.036798 0.035188 0.031278 0.016987 0.095342 0.015951 0.015868 0.030048 0.029177 0.014998 0.088948 0.027532 0.020484 0.020490 0.180870 0.037907 0.012668 0.013935 0.063422 0.038753 0.000262 0.019045 0.133891 0.039680 0.204360 +0.419242 +0.030015 0.036786 0.036047 0.033852 0.014354 0.066215 0.009560 0.035947 0.029173 0.028245 0.016753 0.144838 0.016093 0.016225 0.031054 0.034325 0.017008 0.073605 0.027983 0.020624 0.023200 0.133891 0.039352 0.013174 0.008481 0.157380 0.037598 0.002051 0.019014 0.086911 0.038376 0.204360 +0.300990 +0.028875 0.039298 0.029579 0.028705 0.015670 0.026744 0.010640 0.035882 0.031792 0.028854 0.015634 0.060156 0.015497 0.015854 0.038645 0.030783 0.015128 0.180294 0.028587 0.019045 0.022281 0.110401 0.039942 0.012253 0.010952 0.133891 0.040001 0.000028 0.018934 0.063422 0.040646 0.157380 +0.195181 +0.029312 0.039005 0.035680 0.031721 0.017482 0.049644 0.010288 0.037225 0.031607 0.028308 0.014621 0.117791 0.015800 0.015997 0.032532 0.036866 0.018001 0.101078 0.026950 0.020518 0.019708 0.110401 0.038522 0.018193 0.006887 0.063422 0.038578 0.000593 0.019301 0.110401 0.039442 0.157380 +0.286737 +0.030986 0.037352 0.031244 0.032198 0.016511 0.024745 0.011674 0.037512 0.029256 0.030906 0.015779 0.099007 0.016140 0.016228 0.031596 0.033575 0.016102 0.020432 0.027962 0.019136 0.022726 0.086911 0.041628 0.016036 0.012833 0.063422 0.040675 0.001003 0.021130 0.063422 0.039887 0.133891 +0.032036 +0.030268 0.037274 0.032840 0.033870 0.016751 0.090383 0.010998 0.036223 0.028489 0.029159 0.017639 0.036642 0.015458 0.015691 0.028679 0.028346 0.014628 0.038694 0.026811 0.020349 0.020960 0.110401 0.038972 0.018070 0.008720 0.110401 0.039685 0.000077 0.019095 0.110401 0.042225 0.133891 +0.181454 +0.030874 0.033441 0.032099 0.030510 0.018780 0.080329 0.011135 0.036060 0.033472 0.028524 0.018581 0.031514 0.015151 0.015556 0.031264 0.028518 0.014475 0.090000 0.025220 0.019867 0.021656 0.110401 0.040114 0.013409 0.005490 0.086911 0.037840 0.000789 0.020781 0.133891 0.037606 0.180870 +0.172369 +0.029040 0.037890 0.029737 0.035678 0.017534 0.142052 0.009442 0.036032 0.028261 0.034394 0.015881 0.035431 0.015178 0.015982 0.029752 0.028574 0.016710 0.265797 0.028854 0.020791 0.019628 0.086911 0.039997 0.015983 0.006508 0.063422 0.039898 0.000742 0.020083 0.086911 0.041534 0.157380 +0.525679 +0.028670 0.036257 0.030331 0.029334 0.015444 0.040963 0.011060 0.036800 0.029307 0.030846 0.018232 0.046431 0.015354 0.016376 0.029330 0.029651 0.017368 0.023271 0.027190 0.018898 0.021508 0.180870 0.041702 0.016072 0.011263 0.157380 0.037662 0.002095 0.019774 0.180870 0.041531 0.204360 +0.011556 +0.030905 0.033273 0.030230 0.029428 0.018548 0.064746 0.011222 0.037479 0.028367 0.028772 0.015481 0.032798 0.015444 0.015950 0.028608 0.029488 0.017538 0.080018 0.029673 0.019300 0.022476 0.110401 0.039895 0.013386 0.005278 0.110401 0.040462 0.001682 0.020337 0.086911 0.039471 0.180870 +0.130254 +0.030228 0.034700 0.033617 0.042763 0.017671 0.117560 0.011219 0.037007 0.033542 0.029908 0.015269 0.047378 0.016308 0.015510 0.030023 0.029147 0.014328 0.044626 0.028322 0.020234 0.018943 0.110401 0.039533 0.013403 0.010709 0.063422 0.040377 0.000038 0.020762 0.133891 0.038096 0.204360 +0.054513 +0.028272 0.037395 0.033154 0.028595 0.014415 0.028126 0.011563 0.035586 0.028469 0.028499 0.016507 0.228849 0.015678 0.016404 0.033047 0.030588 0.016715 0.027971 0.028246 0.019032 0.019772 0.110401 0.041781 0.015782 0.007850 0.086911 0.040648 0.000915 0.019430 0.133891 0.041849 0.157380 +0.279150 +0.029259 0.037039 0.029699 0.028968 0.016266 0.048463 0.010020 0.036114 0.028281 0.031405 0.018376 0.066589 0.015776 0.016232 0.035403 0.030414 0.018423 0.022379 0.029138 0.020167 0.018805 0.110401 0.040103 0.013705 0.012470 0.133891 0.038276 0.000540 0.020917 0.086911 0.038616 0.157380 +0.029674 +0.030613 0.037943 0.033976 0.029009 0.014113 0.037967 0.011474 0.036814 0.030521 0.036786 0.017747 0.079413 0.016330 0.016320 0.029676 0.029874 0.016177 0.077041 0.028457 0.019036 0.019916 0.110401 0.040526 0.017927 0.011884 0.086911 0.041810 0.001273 0.019577 0.110401 0.041657 0.157380 +0.117074 +0.032443 0.038636 0.032514 0.031521 0.017596 0.071117 0.010467 0.036910 0.030205 0.029317 0.016302 0.266945 0.015723 0.015942 0.033162 0.030300 0.018082 0.021627 0.028334 0.019027 0.019554 0.063422 0.040422 0.011941 0.013478 0.086911 0.039866 0.000590 0.020072 0.086911 0.039903 0.133891 +0.377494 +0.032717 0.037637 0.031988 0.029368 0.017737 0.142350 0.011302 0.035672 0.029326 0.028516 0.016446 0.108417 0.015490 0.016135 0.030178 0.030445 0.014898 0.068104 0.027478 0.019947 0.020980 0.063422 0.037613 0.015885 0.012384 0.063422 0.039958 0.000902 0.019029 0.180870 0.037977 0.204360 +0.388026 +0.028229 0.036026 0.028463 0.029320 0.018167 0.018428 0.011127 0.036488 0.037196 0.030129 0.017710 0.035239 0.016285 0.016105 0.029216 0.030727 0.017003 0.107117 0.027771 0.019549 0.020556 0.063422 0.040351 0.013516 0.009306 0.063422 0.038440 0.001575 0.020165 0.133891 0.039468 0.157380 +0.052204 +0.029241 0.037643 0.029031 0.028375 0.015585 0.041748 0.010720 0.036616 0.028883 0.029709 0.014206 0.051216 0.015275 0.015815 0.030306 0.029731 0.016583 0.122175 0.028673 0.019976 0.019285 0.133891 0.037595 0.012658 0.008382 0.086911 0.041179 0.001766 0.019196 0.157380 0.041065 0.180870 +0.198156 +0.032009 0.038910 0.035249 0.033302 0.016957 0.028621 0.009881 0.037103 0.030200 0.030315 0.014691 0.155574 0.015624 0.015625 0.028223 0.033269 0.014832 0.068627 0.027391 0.019693 0.022538 0.110401 0.037911 0.012597 0.010422 0.110401 0.038632 0.000027 0.019469 0.086911 0.040262 0.204360 +0.207817 +0.028566 0.038120 0.028550 0.028503 0.017317 0.039463 0.011498 0.036231 0.028598 0.030733 0.016716 0.017486 0.016246 0.015880 0.029393 0.037835 0.014599 0.033711 0.027713 0.020352 0.019989 0.157380 0.039813 0.014990 0.005250 0.157380 0.038043 0.000847 0.019007 0.180870 0.037798 0.204360 +0 +0.031591 0.036172 0.037164 0.028219 0.015361 0.089549 0.011029 0.037156 0.029962 0.031133 0.016587 0.213132 0.016238 0.015668 0.030162 0.031942 0.016602 0.057657 0.028294 0.019980 0.021666 0.110401 0.040270 0.013890 0.004752 0.133891 0.038310 0.002247 0.019434 0.110401 0.039373 0.157380 +0.420992 +0.029960 0.035306 0.035849 0.029164 0.017735 0.129112 0.011282 0.037493 0.031173 0.030951 0.014440 0.017068 0.015169 0.016028 0.028302 0.039594 0.014095 0.027793 0.029117 0.020738 0.021156 0.110401 0.039469 0.013580 0.012981 0.110401 0.041334 0.001535 0.020533 0.133891 0.039399 0.157380 +0.209241 +0.029535 0.035026 0.031916 0.029001 0.015650 0.103813 0.011442 0.037308 0.033418 0.030959 0.015026 0.043234 0.016133 0.015818 0.029892 0.028332 0.017836 0.022607 0.027961 0.019176 0.022029 0.110401 0.039184 0.017606 0.011535 0.086911 0.040001 0.000622 0.020876 0.086911 0.039810 0.133891 +0.163350 +0.032060 0.037823 0.031072 0.032308 0.017869 0.019514 0.010622 0.035856 0.028761 0.029456 0.015191 0.023742 0.015245 0.016392 0.029158 0.028432 0.015121 0.056452 0.029409 0.020784 0.019495 0.110401 0.040431 0.013258 0.006345 0.180870 0.041602 0.001604 0.020199 0.180870 0.039721 0.204360 +0.001505 +0.029579 0.034450 0.030792 0.033213 0.017488 0.060203 0.011069 0.036389 0.029263 0.030052 0.018197 0.023485 0.016031 0.015697 0.029534 0.032617 0.014683 0.198370 0.029073 0.018908 0.018859 0.110401 0.040856 0.014129 0.009945 0.086911 0.042260 0.000750 0.020823 0.110401 0.037774 0.180870 +0.182161 +0.032256 0.038890 0.030299 0.029704 0.018215 0.021926 0.009935 0.036976 0.028715 0.028634 0.017635 0.028325 0.015906 0.016224 0.028249 0.029576 0.017673 0.040187 0.028759 0.021093 0.020216 0.063422 0.039489 0.014688 0.006318 0.063422 0.039518 0.001645 0.020544 0.133891 0.038311 0.204360 +0 +0.028515 0.035065 0.028512 0.035119 0.018739 0.123831 0.010591 0.035896 0.028601 0.033773 0.014119 0.108316 0.016010 0.016372 0.030667 0.030349 0.016868 0.115335 0.027140 0.019178 0.020956 0.133891 0.041171 0.012915 0.007189 0.063422 0.037961 0.000161 0.019948 0.157380 0.041018 0.180870 +0.423066 +0.028928 0.037926 0.029207 0.034991 0.015635 0.054410 0.011474 0.036750 0.028288 0.028661 0.017165 0.114149 0.015817 0.016024 0.028413 0.028971 0.018721 0.323026 0.028184 0.020684 0.020699 0.133891 0.041400 0.017702 0.014008 0.086911 0.041535 0.000234 0.019305 0.133891 0.040177 0.157380 +0.643738 +0.029916 0.038373 0.032533 0.031735 0.016811 0.024709 0.010325 0.036288 0.030827 0.028192 0.018484 0.061071 0.015047 0.016187 0.030048 0.028401 0.018563 0.033264 0.027203 0.019748 0.019748 0.086911 0.040869 0.016748 0.005772 0.110401 0.041177 0.000091 0.019392 0.086911 0.041584 0.133891 +0.041911 +0.031232 0.035474 0.028537 0.034999 0.015329 0.047060 0.010440 0.036376 0.031779 0.031855 0.015821 0.072268 0.015344 0.015754 0.030879 0.028241 0.018784 0.106130 0.028161 0.020657 0.022105 0.157380 0.039463 0.014392 0.008901 0.157380 0.041376 0.002098 0.021049 0.063422 0.039421 0.180870 +0.198898 +0.032145 0.033721 0.028803 0.030087 0.015279 0.059781 0.009469 0.035757 0.030983 0.028632 0.016264 0.026983 0.015499 0.015731 0.028896 0.029123 0.017132 0.036185 0.028715 0.019285 0.019241 0.157380 0.041504 0.014397 0.005255 0.086911 0.039969 0.001923 0.018965 0.086911 0.038439 0.204360 +0.004174 +0.029929 0.036476 0.028954 0.028547 0.018003 0.102087 0.011676 0.037552 0.028427 0.029534 0.016573 0.051913 0.016243 0.016222 0.029226 0.029107 0.015352 0.162394 0.029191 0.018866 0.020187 0.063422 0.040183 0.018567 0.006567 0.110401 0.039947 0.000333 0.020382 0.086911 0.039789 0.180870 +0.319807 +0.028639 0.034140 0.028410 0.029476 0.016335 0.053545 0.009995 0.036450 0.029745 0.028815 0.016100 0.110756 0.015858 0.015655 0.029469 0.028790 0.016433 0.031709 0.026634 0.020843 0.019713 0.063422 0.040474 0.016617 0.011558 0.110401 0.039264 0.001117 0.020612 0.063422 0.038291 0.180870 +0.047764 +0.032841 0.038891 0.030087 0.037130 0.015194 0.121130 0.009930 0.036436 0.029981 0.028578 0.015609 0.081545 0.016200 0.016014 0.030350 0.034330 0.017090 0.020827 0.028211 0.019217 0.020748 0.086911 0.040545 0.013539 0.006349 0.110401 0.041400 0.001118 0.020600 0.063422 0.042209 0.133891 +0.158375 +0.031164 0.036759 0.029998 0.030520 0.017822 0.263119 0.009564 0.037070 0.029172 0.030446 0.014749 0.142081 0.015433 0.015748 0.028392 0.029287 0.014797 0.047185 0.028228 0.019417 0.021478 0.110401 0.039032 0.017445 0.006680 0.086911 0.040672 0.000716 0.019548 0.086911 0.039827 0.133891 +0.478994 +0.032631 0.036702 0.042983 0.029449 0.014869 0.120033 0.010923 0.037360 0.028915 0.032776 0.014496 0.030245 0.015674 0.015996 0.030980 0.033744 0.017272 0.150692 0.026679 0.020272 0.022767 0.086911 0.041680 0.018003 0.006057 0.110401 0.039444 0.001294 0.019558 0.086911 0.038488 0.157380 +0.279626 +0.032220 0.039737 0.031705 0.036355 0.018686 0.125454 0.009795 0.037297 0.029853 0.032570 0.015590 0.022756 0.015922 0.015867 0.031441 0.036633 0.014169 0.135881 0.026069 0.020915 0.020391 0.110401 0.040146 0.014207 0.010493 0.086911 0.041679 0.000798 0.019030 0.063422 0.039974 0.157380 +0.347716 +0.029293 0.038527 0.028417 0.028439 0.016782 0.030116 0.010428 0.036595 0.037185 0.030027 0.015426 0.057269 0.015595 0.015941 0.031801 0.034180 0.015049 0.035908 0.028683 0.020791 0.022551 0.133891 0.041502 0.016666 0.010243 0.063422 0.039738 0.000742 0.019611 0.086911 0.039457 0.180870 +0.007011 +0.029398 0.037953 0.029817 0.030050 0.015512 0.251123 0.009847 0.035519 0.028218 0.028374 0.017494 0.059118 0.015562 0.016424 0.030355 0.030673 0.018063 0.019017 0.027197 0.019873 0.022477 0.086911 0.039036 0.014960 0.004798 0.063422 0.041417 0.000019 0.020667 0.110401 0.041097 0.133891 +0.444361 +0.029029 0.034020 0.030817 0.032674 0.015742 0.047970 0.011047 0.036907 0.037073 0.037886 0.014806 0.136977 0.015575 0.015964 0.029729 0.032055 0.017413 0.037384 0.027556 0.020694 0.020177 0.157380 0.040614 0.016427 0.005811 0.063422 0.041717 0.000238 0.019814 0.133891 0.037805 0.180870 +0.157860 +0.031862 0.035770 0.028940 0.030388 0.015579 0.024760 0.010793 0.036482 0.029350 0.031892 0.017219 0.106492 0.015399 0.016217 0.028540 0.030430 0.016194 0.065450 0.029886 0.020012 0.020730 0.063422 0.039258 0.016192 0.005337 0.063422 0.040563 0.001255 0.021073 0.063422 0.039573 0.133891 +0.143278 +0.028777 0.034272 0.028446 0.029306 0.018419 0.029069 0.009862 0.035235 0.034981 0.028381 0.016823 0.053674 0.015619 0.016271 0.031714 0.029291 0.014246 0.059779 0.027491 0.021132 0.022173 0.086911 0.042224 0.015835 0.011829 0.086911 0.037635 0.001754 0.018844 0.157380 0.041921 0.204360 +0.018302 +0.030444 0.036643 0.028256 0.042645 0.014618 0.122389 0.010955 0.035772 0.030748 0.029555 0.015399 0.044419 0.015230 0.016122 0.028208 0.028469 0.018110 0.066551 0.028244 0.019571 0.022399 0.157380 0.038945 0.013763 0.008130 0.110401 0.041512 0.001920 0.019530 0.063422 0.040248 0.180870 +0.235945 +0.032612 0.039230 0.033434 0.031351 0.018447 0.051852 0.010967 0.036747 0.029830 0.030074 0.015134 0.224225 0.015225 0.015781 0.031876 0.029380 0.018570 0.089291 0.029411 0.020051 0.023302 0.110401 0.038905 0.018137 0.011347 0.110401 0.041424 0.000643 0.020995 0.086911 0.038263 0.133891 +0.491138 +0.030552 0.038345 0.028639 0.028661 0.015853 0.163485 0.010359 0.036184 0.028292 0.028692 0.014259 0.444297 0.015559 0.016420 0.036085 0.038880 0.018478 0.051865 0.031518 0.021084 0.020603 0.157380 0.039534 0.012762 0.006910 0.086911 0.038586 0.001507 0.020931 0.110401 0.038302 0.204360 +0.813690 +0.028295 0.036641 0.031036 0.029119 0.017093 0.029238 0.009653 0.036106 0.029949 0.029060 0.017593 0.079201 0.016361 0.016268 0.041145 0.036033 0.016612 0.093844 0.026128 0.019033 0.021072 0.157380 0.042011 0.014833 0.012686 0.133891 0.040838 0.000158 0.020728 0.086911 0.040459 0.180870 +0.090603 +0.029228 0.034601 0.031146 0.030464 0.014240 0.068064 0.011653 0.037561 0.033775 0.029350 0.016939 0.023516 0.016201 0.016197 0.029020 0.030509 0.014481 0.075511 0.026904 0.019295 0.022902 0.110401 0.039916 0.016364 0.011338 0.086911 0.041889 0.001618 0.020482 0.086911 0.041760 0.180870 +0.020414 +0.028681 0.035190 0.028224 0.028205 0.017762 0.056719 0.009539 0.037516 0.030228 0.029972 0.014687 0.104533 0.015121 0.015951 0.032929 0.035597 0.017816 0.062172 0.028054 0.020823 0.021935 0.133891 0.039883 0.014514 0.010824 0.086911 0.038774 0.000161 0.020918 0.063422 0.041958 0.180870 +0.133590 +0.031872 0.036614 0.029590 0.029853 0.014222 0.211508 0.010154 0.036406 0.028189 0.029089 0.014242 0.020081 0.015067 0.016387 0.029507 0.030504 0.017035 0.043289 0.027301 0.019146 0.022292 0.110401 0.041820 0.012532 0.010752 0.086911 0.038931 0.001465 0.020510 0.110401 0.038720 0.157380 +0.273596 +0.029956 0.037653 0.030713 0.035572 0.015733 0.027363 0.011335 0.037303 0.028664 0.028191 0.016659 0.049389 0.015400 0.015950 0.033177 0.029557 0.016225 0.055618 0.027789 0.018972 0.020171 0.086911 0.039557 0.018143 0.008938 0.133891 0.039805 0.001882 0.020000 0.133891 0.042256 0.157380 +0.052705 +0.029302 0.039043 0.028441 0.031150 0.016760 0.038855 0.011422 0.035698 0.032134 0.028975 0.017139 0.021365 0.015109 0.016411 0.030153 0.028886 0.018639 0.018546 0.027781 0.020616 0.020243 0.063422 0.038108 0.017099 0.007065 0.063422 0.037768 0.001510 0.019904 0.110401 0.040060 0.133891 +0 +0.031189 0.037436 0.028913 0.030369 0.016332 0.041997 0.009872 0.036198 0.028571 0.030179 0.015450 0.022811 0.016220 0.016304 0.029699 0.030449 0.017815 0.205087 0.029553 0.020764 0.022630 0.110401 0.040380 0.012877 0.012040 0.063422 0.040601 0.000885 0.020213 0.063422 0.040941 0.133891 +0.275041 +0.028617 0.039121 0.029009 0.029906 0.015394 0.064821 0.010582 0.036874 0.032629 0.030250 0.016897 0.052545 0.015382 0.015868 0.035131 0.029762 0.017288 0.317059 0.027253 0.021016 0.021320 0.063422 0.041718 0.018629 0.004841 0.063422 0.042088 0.001896 0.020869 0.063422 0.037765 0.133891 +0.576196 +0.032092 0.036167 0.028742 0.028431 0.017904 0.294861 0.009798 0.036529 0.031239 0.031681 0.018418 0.067658 0.015557 0.016313 0.031171 0.028432 0.018441 0.033812 0.027933 0.018950 0.020434 0.110401 0.039715 0.014876 0.010594 0.133891 0.039415 0.000722 0.019108 0.133891 0.041880 0.180870 +0.536376 +0.032144 0.035526 0.028844 0.031309 0.016851 0.017250 0.011500 0.036530 0.028834 0.029453 0.017452 0.033350 0.015714 0.015670 0.028732 0.028786 0.018508 0.039817 0.026886 0.019862 0.021046 0.133891 0.038334 0.013491 0.004867 0.133891 0.038104 0.000704 0.019085 0.063422 0.040540 0.204360 +0 +0.032864 0.037823 0.030857 0.029996 0.018587 0.198449 0.011570 0.036707 0.028318 0.031485 0.014822 0.035455 0.015844 0.016122 0.028624 0.029374 0.015401 0.124255 0.026898 0.018875 0.019369 0.133891 0.038342 0.018769 0.005019 0.157380 0.041326 0.002202 0.018830 0.063422 0.038125 0.180870 +0.405906 +0.030299 0.036032 0.030705 0.030828 0.016602 0.197202 0.010347 0.035760 0.033879 0.028678 0.018311 0.030266 0.016053 0.015555 0.034091 0.030329 0.017352 0.060017 0.027828 0.020492 0.020788 0.086911 0.038710 0.015112 0.007432 0.180870 0.041596 0.000867 0.020678 0.133891 0.038067 0.204360 +0.306195 +0.028873 0.038984 0.029116 0.029386 0.017662 0.123769 0.010686 0.037387 0.029909 0.036430 0.015055 0.179696 0.015254 0.015700 0.030111 0.031921 0.017911 0.016661 0.027196 0.020754 0.020810 0.110401 0.037833 0.016366 0.013462 0.086911 0.041976 0.002003 0.020377 0.063422 0.041481 0.133891 +0.351775 +0.031175 0.035805 0.031856 0.028538 0.015637 0.029381 0.009496 0.035424 0.029531 0.028828 0.016309 0.137251 0.015309 0.016147 0.031117 0.028705 0.014839 0.025681 0.027563 0.020783 0.019339 0.110401 0.041067 0.018732 0.011826 0.180870 0.040626 0.000112 0.019116 0.133891 0.038150 0.204360 +0.082278 +0.030875 0.036673 0.031485 0.042245 0.016634 0.063927 0.011631 0.036788 0.030945 0.030778 0.014597 0.063790 0.015540 0.015951 0.032471 0.032236 0.018290 0.238736 0.026996 0.018809 0.023367 0.110401 0.040505 0.013667 0.007808 0.133891 0.040672 0.000713 0.020201 0.110401 0.039429 0.180870 +0.438733 +0.031907 0.035935 0.031100 0.031032 0.017089 0.111040 0.011198 0.037251 0.032512 0.032236 0.014846 0.059255 0.015550 0.016070 0.028304 0.029744 0.014794 0.025744 0.028771 0.019979 0.019988 0.086911 0.038549 0.017741 0.012655 0.110401 0.038369 0.001595 0.018835 0.063422 0.039921 0.180870 +0.158309 +0.032721 0.034158 0.031876 0.029948 0.015111 0.018160 0.010975 0.036951 0.030614 0.029448 0.015756 0.026014 0.016258 0.016176 0.028721 0.028392 0.017421 0.152201 0.028008 0.020946 0.020907 0.110401 0.041938 0.016814 0.005425 0.086911 0.037692 0.000128 0.020205 0.110401 0.040974 0.157380 +0.145205 +0.028819 0.039301 0.033690 0.028276 0.014614 0.308082 0.011631 0.036083 0.028899 0.029937 0.014102 0.084070 0.015073 0.016240 0.030977 0.029132 0.015930 0.034131 0.030686 0.020042 0.019151 0.110401 0.039397 0.018263 0.006465 0.063422 0.037658 0.001730 0.020538 0.063422 0.040715 0.133891 +0.511086 +0.031971 0.037157 0.029355 0.028356 0.014938 0.023262 0.010367 0.035470 0.029956 0.033004 0.014710 0.026177 0.015448 0.015753 0.029036 0.029912 0.014872 0.022290 0.026285 0.020864 0.020753 0.157380 0.038765 0.015429 0.009264 0.133891 0.039329 0.000357 0.019986 0.110401 0.041168 0.180870 +0 +0.031763 0.039127 0.032321 0.032427 0.016860 0.024227 0.011725 0.036257 0.028445 0.037040 0.015879 0.052286 0.015158 0.016398 0.030422 0.039146 0.018248 0.136212 0.028269 0.018862 0.019724 0.110401 0.039325 0.016641 0.010378 0.110401 0.040129 0.000645 0.021031 0.133891 0.038360 0.157380 +0.134788 +0.031555 0.036126 0.028979 0.029161 0.016107 0.033877 0.010534 0.035599 0.029105 0.035505 0.017873 0.016613 0.015388 0.015861 0.031201 0.030141 0.017311 0.182018 0.028325 0.020634 0.022536 0.063422 0.038574 0.017771 0.008544 0.063422 0.040481 0.001384 0.019671 0.110401 0.039039 0.180870 +0.106457 +0.029332 0.032939 0.042793 0.028776 0.018187 0.067691 0.010747 0.036149 0.032248 0.028269 0.017542 0.048883 0.015205 0.015801 0.028879 0.029623 0.017176 0.068078 0.029962 0.020436 0.019092 0.110401 0.038906 0.015768 0.007316 0.133891 0.038524 0.001896 0.020884 0.086911 0.037826 0.157380 +0.099960 +0.029262 0.037801 0.031653 0.028889 0.015336 0.029495 0.009698 0.036473 0.029778 0.028895 0.015261 0.065915 0.016357 0.015782 0.028975 0.028208 0.017077 0.066827 0.028437 0.019913 0.022144 0.086911 0.039891 0.016928 0.011442 0.110401 0.039633 0.001617 0.020485 0.063422 0.039261 0.133891 +0.085486 +0.030001 0.038033 0.028249 0.032280 0.014392 0.378660 0.010312 0.035780 0.029095 0.030801 0.018328 0.035798 0.015378 0.016347 0.028419 0.034671 0.016439 0.025918 0.026386 0.018932 0.020293 0.157380 0.040590 0.017502 0.007575 0.157380 0.038460 0.000016 0.020289 0.110401 0.038084 0.180870 +0.524596 +0.029153 0.039439 0.028209 0.029840 0.016840 0.137383 0.011064 0.036600 0.028412 0.029412 0.018268 0.119793 0.016172 0.016337 0.029640 0.029250 0.017524 0.033673 0.029616 0.019162 0.020794 0.086911 0.041330 0.013787 0.009986 0.133891 0.037880 0.001283 0.020009 0.133891 0.040523 0.157380 +0.344191 +0.028714 0.039033 0.031010 0.029101 0.015935 0.072432 0.010328 0.036007 0.029932 0.028300 0.017046 0.033512 0.015873 0.016327 0.030570 0.032709 0.017302 0.116118 0.030241 0.019762 0.020178 0.133891 0.038312 0.018746 0.009381 0.133891 0.038333 0.002163 0.019037 0.063422 0.042192 0.157380 +0.153802 +0.030277 0.038562 0.032807 0.029039 0.016809 0.089664 0.011336 0.035776 0.030530 0.028974 0.017706 0.115379 0.016426 0.016152 0.033323 0.029967 0.018682 0.037480 0.027150 0.019931 0.020081 0.086911 0.037675 0.012716 0.005379 0.110401 0.039555 0.001486 0.019944 0.086911 0.039773 0.133891 +0.364206 +0.028862 0.037681 0.029069 0.028638 0.017286 0.142031 0.011078 0.035905 0.028373 0.029439 0.017056 0.133164 0.015733 0.015807 0.031695 0.028591 0.016120 0.060791 0.029265 0.019889 0.018895 0.086911 0.039907 0.015723 0.010356 0.133891 0.038331 0.001303 0.020806 0.180870 0.041052 0.204360 +0.327327 +0.031842 0.037364 0.028422 0.033537 0.017140 0.087530 0.010730 0.035445 0.032415 0.028943 0.018501 0.044825 0.015116 0.015769 0.029003 0.030266 0.018047 0.024733 0.029786 0.021092 0.021182 0.063422 0.040539 0.012216 0.009572 0.086911 0.039510 0.001869 0.019852 0.086911 0.039728 0.133891 +0.072144 +0.032454 0.036591 0.030313 0.028688 0.016794 0.068581 0.010403 0.036208 0.028220 0.031700 0.014503 0.019736 0.015899 0.015633 0.028382 0.028256 0.018428 0.096306 0.028677 0.018869 0.020913 0.063422 0.038705 0.016912 0.008605 0.110401 0.040820 0.002101 0.020582 0.086911 0.039492 0.133891 +0.155170 +0.029833 0.033121 0.034393 0.029761 0.015439 0.113671 0.010360 0.036998 0.029709 0.031311 0.017632 0.101504 0.015488 0.015541 0.029138 0.030043 0.016356 0.209758 0.029337 0.021041 0.020520 0.110401 0.039422 0.018632 0.012954 0.110401 0.040406 0.002240 0.019116 0.086911 0.041095 0.133891 +0.517644 +0.029763 0.036507 0.028453 0.034659 0.018362 0.034424 0.009584 0.036445 0.030743 0.030389 0.014396 0.071195 0.015740 0.015564 0.032322 0.029179 0.015689 0.060790 0.026077 0.020778 0.020022 0.063422 0.037807 0.016454 0.010039 0.063422 0.041878 0.001512 0.020370 0.086911 0.041519 0.180870 +0.032067 +0.030620 0.036360 0.032733 0.028438 0.014835 0.100278 0.011307 0.036503 0.033096 0.034257 0.015455 0.117356 0.015544 0.016410 0.035387 0.032000 0.016049 0.093215 0.027006 0.020442 0.019623 0.157380 0.040079 0.013185 0.005143 0.133891 0.041865 0.001899 0.019523 0.180870 0.039815 0.204360 +0.349790 +0.028918 0.038246 0.029757 0.030465 0.018657 0.083327 0.010386 0.037462 0.028620 0.031270 0.014147 0.028189 0.016075 0.016218 0.030663 0.038306 0.017059 0.046593 0.027668 0.019362 0.020040 0.063422 0.042228 0.013967 0.010568 0.110401 0.038699 0.000171 0.019809 0.063422 0.037615 0.133891 +0.128866 +0.031916 0.036758 0.031718 0.033010 0.017248 0.094149 0.010577 0.035610 0.038740 0.029878 0.017701 0.242391 0.015513 0.016268 0.028359 0.028434 0.017957 0.090902 0.028563 0.019654 0.020098 0.110401 0.037910 0.017717 0.009925 0.133891 0.037976 0.000798 0.020388 0.086911 0.039450 0.157380 +0.520892 +0.030786 0.036855 0.031378 0.031286 0.014386 0.021547 0.011294 0.036434 0.032927 0.035968 0.016596 0.075345 0.016109 0.016088 0.028289 0.030273 0.016868 0.095354 0.028224 0.021008 0.021265 0.063422 0.039117 0.015795 0.012148 0.063422 0.041129 0.002103 0.020982 0.133891 0.041888 0.157380 +0.081527 +0.030944 0.039149 0.028880 0.028484 0.014923 0.068295 0.011062 0.037548 0.028658 0.030699 0.017454 0.024858 0.015414 0.016294 0.029871 0.028776 0.015599 0.118598 0.028107 0.018883 0.022532 0.157380 0.038879 0.013337 0.009960 0.157380 0.041877 0.001814 0.019556 0.110401 0.038604 0.204360 +0.168219 +0.028953 0.037923 0.031310 0.039975 0.015658 0.125521 0.011617 0.037262 0.029595 0.032251 0.014845 0.017533 0.015697 0.015669 0.029511 0.031949 0.015218 0.129669 0.028001 0.019896 0.019688 0.063422 0.037714 0.012786 0.005382 0.110401 0.039686 0.000871 0.021028 0.110401 0.040288 0.133891 +0.387152 +0.032408 0.034830 0.033631 0.033463 0.015077 0.052105 0.010821 0.036905 0.029450 0.031420 0.018323 0.034425 0.015229 0.016023 0.030448 0.028957 0.016598 0.124705 0.026398 0.020504 0.021543 0.086911 0.041107 0.013685 0.012661 0.157380 0.041988 0.000231 0.018833 0.133891 0.039390 0.204360 +0.150867 +0.031972 0.034453 0.029443 0.030862 0.015817 0.065829 0.011284 0.037567 0.032956 0.029363 0.015865 0.026180 0.015297 0.016149 0.030466 0.031349 0.014407 0.018604 0.028805 0.019045 0.019278 0.086911 0.038301 0.018665 0.012017 0.180870 0.038378 0.000977 0.019289 0.133891 0.042043 0.204360 +0 +0.029181 0.038629 0.030058 0.028913 0.015426 0.125140 0.009523 0.035691 0.030006 0.028371 0.017182 0.110016 0.015637 0.015937 0.029058 0.030766 0.017926 0.112916 0.027499 0.019522 0.020472 0.157380 0.039654 0.018660 0.007328 0.133891 0.039043 0.002304 0.021037 0.086911 0.039315 0.180870 +0.398979 +0.031923 0.038980 0.029814 0.031787 0.015178 0.093247 0.009599 0.035680 0.033070 0.029810 0.017346 0.085734 0.015898 0.015949 0.030832 0.028866 0.015959 0.071784 0.027834 0.020479 0.022833 0.110401 0.039393 0.014571 0.011608 0.086911 0.040445 0.001929 0.020558 0.063422 0.040337 0.180870 +0.227705 +0.029306 0.033804 0.029593 0.030059 0.016312 0.079415 0.009856 0.036652 0.028788 0.031384 0.017298 0.027274 0.016045 0.016257 0.029131 0.032779 0.016626 0.318956 0.026906 0.019405 0.019311 0.063422 0.038711 0.011882 0.005593 0.063422 0.041425 0.000873 0.018889 0.133891 0.041964 0.157380 +0.548683 +0.028618 0.036919 0.032452 0.029015 0.014229 0.105519 0.010137 0.037420 0.030085 0.032125 0.018686 0.114787 0.016165 0.015992 0.029358 0.029611 0.015817 0.084305 0.025618 0.019968 0.022440 0.063422 0.037621 0.015013 0.006425 0.063422 0.039368 0.000309 0.020019 0.133891 0.039736 0.157380 +0.444985 +0.031149 0.039151 0.028274 0.029781 0.014182 0.202898 0.009743 0.037573 0.028942 0.031815 0.015057 0.088059 0.015525 0.016020 0.029763 0.032847 0.015884 0.134943 0.031201 0.020456 0.018864 0.110401 0.040056 0.016139 0.011128 0.133891 0.040154 0.002020 0.019599 0.133891 0.042043 0.204360 +0.468614 +0.029625 0.039068 0.039923 0.028700 0.018693 0.061210 0.011262 0.036338 0.029305 0.029452 0.014697 0.033715 0.016321 0.015731 0.029624 0.030177 0.014955 0.133282 0.026736 0.020384 0.019380 0.063422 0.037885 0.014066 0.009589 0.133891 0.040231 0.002015 0.019958 0.063422 0.041336 0.180870 +0.157478 +0.032821 0.039525 0.033011 0.035122 0.015700 0.024118 0.010159 0.037198 0.028267 0.029152 0.017112 0.065178 0.015203 0.015738 0.028733 0.030894 0.017000 0.049719 0.029822 0.021011 0.022243 0.180870 0.039976 0.016130 0.013161 0.086911 0.040186 0.002110 0.020134 0.157380 0.039584 0.204360 +0.059693 +0.028489 0.035020 0.033136 0.028604 0.018503 0.068224 0.010659 0.035869 0.040583 0.028258 0.016202 0.129753 0.015552 0.015629 0.028663 0.030172 0.015255 0.029911 0.029031 0.019771 0.021359 0.110401 0.038612 0.014292 0.012878 0.063422 0.038661 0.002174 0.020200 0.110401 0.038561 0.133891 +0.230626 +0.032614 0.038884 0.031559 0.028238 0.014646 0.133280 0.009411 0.036426 0.030986 0.030721 0.015354 0.026859 0.015345 0.016439 0.032670 0.029760 0.015969 0.026851 0.028446 0.020903 0.023342 0.110401 0.041922 0.011981 0.008071 0.063422 0.038100 0.001126 0.020688 0.133891 0.040925 0.157380 +0.328817 +0.031212 0.039889 0.032784 0.028505 0.014715 0.059914 0.011556 0.035743 0.034625 0.028540 0.016427 0.101134 0.015251 0.016295 0.028586 0.028399 0.014274 0.251739 0.028291 0.021011 0.020401 0.086911 0.039465 0.014963 0.012162 0.110401 0.040080 0.000992 0.019232 0.063422 0.039528 0.133891 +0.539951 +0.032840 0.037400 0.029473 0.029013 0.016805 0.051221 0.010388 0.037263 0.029027 0.032094 0.016752 0.080831 0.015111 0.016327 0.029926 0.038566 0.017805 0.046572 0.030660 0.019324 0.021592 0.086911 0.039147 0.017630 0.012564 0.133891 0.041956 0.001662 0.020038 0.110401 0.041840 0.157380 +0.103716 +0.029953 0.037224 0.029610 0.032038 0.016021 0.025730 0.009705 0.035543 0.030347 0.032044 0.018595 0.141932 0.015292 0.016057 0.038509 0.029490 0.018692 0.122752 0.027302 0.019194 0.019644 0.110401 0.037791 0.016220 0.013488 0.133891 0.040753 0.001297 0.020477 0.133891 0.039359 0.157380 +0.300240 +0.028642 0.036583 0.028214 0.029455 0.017929 0.138251 0.011232 0.036594 0.031126 0.029743 0.016873 0.093782 0.015704 0.016402 0.028427 0.028376 0.017931 0.045108 0.027736 0.019233 0.022916 0.133891 0.041815 0.013321 0.004969 0.086911 0.041162 0.001712 0.020806 0.157380 0.038909 0.180870 +0.363091 +0.031560 0.033481 0.029167 0.029796 0.014109 0.116445 0.010990 0.036338 0.031935 0.030120 0.017259 0.231391 0.015673 0.015730 0.030698 0.028395 0.018035 0.040889 0.026893 0.020459 0.022589 0.086911 0.037676 0.012824 0.005202 0.180870 0.039761 0.000131 0.020804 0.157380 0.037712 0.204360 +0.534700 +0.031640 0.036418 0.037146 0.030077 0.014518 0.039300 0.010992 0.035561 0.031033 0.032063 0.015327 0.017424 0.015237 0.015612 0.028453 0.028974 0.016860 0.057561 0.027088 0.020760 0.023200 0.133891 0.041369 0.013247 0.006929 0.063422 0.039530 0.000124 0.019989 0.133891 0.041094 0.180870 +0.003603 +0.032634 0.034746 0.030064 0.031777 0.014162 0.046472 0.010686 0.035472 0.029038 0.028188 0.015015 0.401238 0.015201 0.016417 0.030163 0.029576 0.018704 0.050647 0.027313 0.019318 0.018951 0.063422 0.039565 0.018599 0.006670 0.157380 0.039226 0.000218 0.020309 0.157380 0.038664 0.180870 +0.707017 +0.032790 0.035408 0.028490 0.028639 0.014123 0.177969 0.011580 0.037046 0.031993 0.029896 0.017144 0.093974 0.015351 0.015564 0.029157 0.034039 0.017645 0.276243 0.030700 0.019351 0.022651 0.133891 0.041927 0.015342 0.007165 0.133891 0.039411 0.000240 0.019522 0.110401 0.042138 0.157380 +0.720120 +0.029925 0.034064 0.029606 0.029933 0.018478 0.086834 0.011499 0.035256 0.034047 0.033995 0.016557 0.025584 0.016311 0.016380 0.028328 0.028831 0.015614 0.092937 0.029152 0.018896 0.019404 0.063422 0.039769 0.015005 0.004808 0.110401 0.040243 0.000541 0.020433 0.086911 0.039920 0.133891 +0.146520 +0.028574 0.032980 0.028922 0.031261 0.017912 0.089561 0.009766 0.036318 0.029603 0.032028 0.018315 0.023381 0.016325 0.015679 0.030908 0.036366 0.016143 0.038832 0.028397 0.020507 0.022491 0.180870 0.041198 0.016931 0.009444 0.086911 0.038791 0.000873 0.020261 0.157380 0.040104 0.204360 +0.064550 +0.030947 0.034689 0.030730 0.029144 0.016863 0.028413 0.010315 0.037332 0.031179 0.031852 0.017411 0.108688 0.015588 0.016362 0.030411 0.031140 0.017156 0.018613 0.028283 0.019194 0.021106 0.086911 0.041959 0.016292 0.012191 0.157380 0.037995 0.000950 0.019642 0.133891 0.039369 0.204360 +0.019693 +0.028306 0.033668 0.030358 0.030822 0.017425 0.092119 0.010902 0.035246 0.028984 0.028359 0.014671 0.036811 0.015453 0.016247 0.033496 0.034562 0.017558 0.039950 0.028824 0.019249 0.019344 0.086911 0.041682 0.015118 0.005218 0.180870 0.040670 0.000462 0.019404 0.086911 0.038653 0.204360 +0.109733 +0.030437 0.039788 0.030096 0.032940 0.014840 0.094348 0.011386 0.035689 0.031087 0.031908 0.015132 0.020091 0.015104 0.016090 0.028527 0.034145 0.014420 0.089305 0.027848 0.018830 0.020226 0.133891 0.038094 0.014094 0.013852 0.110401 0.040395 0.000007 0.019934 0.063422 0.041618 0.180870 +0.170050 +0.028782 0.034533 0.031127 0.033953 0.017582 0.119894 0.010132 0.037361 0.029932 0.032756 0.014898 0.075100 0.015577 0.015580 0.028739 0.028832 0.016509 0.106861 0.028052 0.019479 0.019520 0.133891 0.041173 0.014164 0.012666 0.157380 0.039257 0.000047 0.019050 0.086911 0.041212 0.204360 +0.383044 +0.028885 0.037087 0.028201 0.029814 0.015024 0.142842 0.009717 0.035470 0.032565 0.029137 0.015024 0.032539 0.016220 0.016383 0.033189 0.031335 0.017573 0.069323 0.026364 0.019523 0.022975 0.110401 0.040447 0.016130 0.006881 0.180870 0.038439 0.000557 0.020495 0.063422 0.038858 0.204360 +0.377913 +0.032431 0.037112 0.032009 0.034086 0.014435 0.089537 0.010156 0.035354 0.029923 0.029662 0.016502 0.041577 0.015598 0.016366 0.030888 0.028924 0.016795 0.051742 0.029252 0.019564 0.021166 0.063422 0.039750 0.014024 0.009478 0.063422 0.037684 0.000175 0.019517 0.133891 0.042043 0.180870 +0.063320 +0.029954 0.039666 0.032743 0.032711 0.016391 0.036466 0.010865 0.036254 0.028788 0.029863 0.017663 0.158759 0.016203 0.015979 0.029279 0.028615 0.017689 0.027722 0.029785 0.019134 0.021830 0.110401 0.040498 0.013786 0.011080 0.063422 0.041809 0.000059 0.019325 0.063422 0.040911 0.133891 +0.184660 +0.030218 0.034355 0.030482 0.031723 0.016002 0.020912 0.009932 0.035754 0.030812 0.032432 0.016770 0.023612 0.015248 0.016276 0.029696 0.032777 0.015473 0.040377 0.028767 0.019752 0.022124 0.110401 0.041067 0.013578 0.007297 0.086911 0.038666 0.000627 0.019287 0.133891 0.041851 0.180870 +0 +0.029286 0.038858 0.028479 0.030435 0.018508 0.085369 0.011229 0.037505 0.031198 0.031025 0.014587 0.069337 0.016303 0.015806 0.030712 0.028812 0.014442 0.054096 0.030314 0.019783 0.020415 0.157380 0.039570 0.012035 0.005660 0.133891 0.039055 0.001465 0.021063 0.133891 0.038246 0.204360 +0.199475 +0.029746 0.036837 0.029934 0.029596 0.015625 0.286089 0.011730 0.036316 0.030150 0.028443 0.017777 0.065459 0.015625 0.016375 0.030610 0.028232 0.018439 0.049573 0.029010 0.020935 0.021276 0.063422 0.041489 0.012341 0.007439 0.133891 0.041657 0.002287 0.019292 0.157380 0.038940 0.180870 +0.507649 +0.031486 0.038070 0.032569 0.028948 0.015638 0.093649 0.009558 0.036719 0.028444 0.038091 0.017936 0.230417 0.015485 0.015608 0.028244 0.029397 0.014830 0.027913 0.026815 0.019839 0.019899 0.063422 0.038377 0.015712 0.009349 0.180870 0.039530 0.002013 0.020700 0.157380 0.039398 0.204360 +0.396310 +0.030427 0.034216 0.031230 0.028953 0.017272 0.021386 0.009880 0.037116 0.029340 0.028444 0.016472 0.043722 0.015842 0.016318 0.030276 0.028672 0.014366 0.071819 0.027168 0.019023 0.020444 0.133891 0.041546 0.018241 0.009386 0.180870 0.039602 0.002341 0.020115 0.157380 0.039319 0.204360 +0.030165 +0.031880 0.033375 0.029438 0.032501 0.014665 0.189114 0.010794 0.037090 0.032651 0.029777 0.018783 0.064161 0.016355 0.016148 0.037199 0.028258 0.017468 0.074802 0.026811 0.020398 0.021103 0.110401 0.041474 0.016772 0.013423 0.063422 0.039030 0.001609 0.020587 0.157380 0.041453 0.204360 +0.378195 +0.032568 0.033354 0.038046 0.034094 0.015798 0.097906 0.009913 0.036262 0.031783 0.029074 0.014185 0.075153 0.015631 0.015602 0.036287 0.030018 0.016867 0.141216 0.027556 0.019828 0.023475 0.110401 0.038571 0.012092 0.012521 0.110401 0.040870 0.001243 0.019305 0.133891 0.040396 0.204360 +0.292420 +0.031903 0.037340 0.031433 0.028924 0.017458 0.106637 0.010272 0.037412 0.028972 0.028281 0.017018 0.036043 0.015121 0.015721 0.028489 0.029064 0.016719 0.054647 0.028951 0.018963 0.019934 0.086911 0.041748 0.015004 0.006130 0.110401 0.039301 0.001604 0.018929 0.133891 0.040490 0.180870 +0.141975 +0.030612 0.035774 0.028915 0.032186 0.016660 0.058285 0.010058 0.035956 0.028613 0.029224 0.015633 0.017613 0.016031 0.015788 0.030530 0.031554 0.018123 0.066296 0.025666 0.020137 0.021894 0.110401 0.038163 0.011927 0.005774 0.110401 0.041839 0.002018 0.019130 0.110401 0.040105 0.133891 +0.133386 +0.028962 0.033386 0.029397 0.031715 0.017884 0.046017 0.010429 0.035428 0.030004 0.029474 0.014309 0.119354 0.015330 0.016142 0.028747 0.030940 0.017197 0.027237 0.027494 0.019260 0.019211 0.110401 0.038429 0.015570 0.005977 0.110401 0.039840 0.000693 0.020733 0.063422 0.042224 0.157380 +0.131690 +0.030089 0.038027 0.033763 0.028951 0.015508 0.028214 0.010331 0.035541 0.028876 0.030736 0.016397 0.100656 0.016098 0.016153 0.032847 0.029068 0.014447 0.039606 0.025501 0.019449 0.022210 0.133891 0.039605 0.015280 0.008982 0.086911 0.038159 0.001588 0.020424 0.063422 0.042017 0.180870 +0.056923 +0.030079 0.033319 0.029145 0.028479 0.016555 0.158091 0.011597 0.035524 0.028690 0.037590 0.018152 0.073168 0.015422 0.016038 0.028198 0.030293 0.017402 0.021673 0.026244 0.018899 0.021973 0.157380 0.042204 0.014536 0.008827 0.086911 0.040204 0.001107 0.018834 0.157380 0.038409 0.204360 +0.342854 +0.032425 0.034167 0.031583 0.028189 0.018618 0.118340 0.010424 0.035852 0.029966 0.031720 0.016931 0.089769 0.015075 0.016030 0.031051 0.029729 0.016025 0.073835 0.029681 0.019228 0.018915 0.086911 0.039332 0.014076 0.007632 0.063422 0.040346 0.002144 0.021016 0.086911 0.041371 0.133891 +0.214689 +0.030208 0.033030 0.030108 0.033306 0.018158 0.019231 0.011244 0.036481 0.031315 0.029053 0.018485 0.072171 0.015724 0.016004 0.032560 0.033214 0.018018 0.023633 0.027050 0.019659 0.018935 0.086911 0.042233 0.012112 0.012893 0.157380 0.039225 0.000715 0.021022 0.063422 0.041503 0.204360 +0 +0.028942 0.034966 0.028540 0.031630 0.018714 0.052323 0.011724 0.036931 0.030670 0.028664 0.017790 0.124140 0.016109 0.015960 0.029549 0.031817 0.017459 0.105465 0.028699 0.019879 0.020946 0.063422 0.038836 0.017566 0.008710 0.110401 0.037683 0.001422 0.020701 0.133891 0.041470 0.157380 +0.314023 +0.028584 0.038339 0.030206 0.028657 0.014173 0.027350 0.011132 0.037161 0.033619 0.031434 0.016633 0.070835 0.015623 0.015838 0.029588 0.029040 0.018092 0.434796 0.029345 0.019964 0.019118 0.133891 0.041985 0.013959 0.010028 0.086911 0.040849 0.000218 0.018912 0.133891 0.040440 0.180870 +0.707982 +0.031259 0.037652 0.028720 0.033015 0.015077 0.192954 0.009848 0.037247 0.030401 0.030634 0.018259 0.076088 0.015435 0.015701 0.030308 0.030547 0.014993 0.252520 0.027588 0.019235 0.023184 0.086911 0.041698 0.012952 0.012317 0.063422 0.041598 0.000128 0.020283 0.063422 0.039292 0.133891 +0.617710 +0.028364 0.035372 0.028230 0.031260 0.015753 0.018228 0.010673 0.036806 0.035915 0.028569 0.015020 0.140211 0.016114 0.016005 0.030745 0.029781 0.015838 0.234916 0.028843 0.019734 0.022726 0.133891 0.039584 0.013779 0.014001 0.063422 0.040360 0.000473 0.020063 0.063422 0.037854 0.204360 +0.531685 +0.031761 0.036896 0.031346 0.029774 0.017831 0.023120 0.010357 0.035865 0.028463 0.031221 0.016449 0.087607 0.015882 0.015541 0.034552 0.029438 0.016030 0.030545 0.028928 0.018796 0.019681 0.063422 0.042231 0.018275 0.008091 0.180870 0.038648 0.002079 0.020395 0.063422 0.041025 0.204360 +0.013011 +0.031850 0.034667 0.028581 0.028264 0.014912 0.076232 0.011593 0.035266 0.029434 0.028479 0.014695 0.160981 0.016130 0.016171 0.030185 0.031885 0.014242 0.096275 0.028396 0.019050 0.019730 0.063422 0.041395 0.013782 0.011650 0.110401 0.039184 0.000680 0.018823 0.086911 0.039623 0.133891 +0.379728 +0.030586 0.033966 0.028741 0.029527 0.016726 0.057867 0.009743 0.037466 0.030978 0.029335 0.017764 0.199811 0.015624 0.015703 0.034450 0.032505 0.018668 0.052966 0.026622 0.019540 0.021480 0.110401 0.038903 0.015358 0.010972 0.086911 0.039865 0.001858 0.021002 0.157380 0.038283 0.180870 +0.353744 +0.030431 0.033728 0.029280 0.030469 0.014798 0.065930 0.011614 0.036977 0.028301 0.028409 0.015586 0.077868 0.016206 0.016110 0.029347 0.028190 0.016783 0.145211 0.026507 0.019886 0.020042 0.133891 0.041230 0.012736 0.012773 0.063422 0.038483 0.001446 0.019478 0.086911 0.039807 0.204360 +0.320936 +0.032669 0.038380 0.029812 0.035447 0.017390 0.023930 0.010012 0.036124 0.029319 0.038640 0.018330 0.083845 0.015706 0.016128 0.029121 0.030581 0.014470 0.103272 0.029367 0.019389 0.020000 0.086911 0.040609 0.013782 0.006256 0.086911 0.037622 0.002186 0.019798 0.110401 0.038155 0.180870 +0.109730 +0.032641 0.037685 0.028576 0.029723 0.014996 0.135414 0.009579 0.037298 0.031728 0.028413 0.017526 0.074129 0.015622 0.015641 0.029735 0.032303 0.014709 0.041395 0.027867 0.020337 0.021821 0.110401 0.039214 0.014942 0.005326 0.133891 0.041832 0.000748 0.019143 0.110401 0.039737 0.204360 +0.255793 +0.030258 0.034079 0.028964 0.028698 0.018397 0.084557 0.009912 0.036978 0.032186 0.032353 0.017881 0.040014 0.016088 0.015606 0.028280 0.029481 0.017222 0.076002 0.029377 0.018869 0.021667 0.086911 0.037737 0.014959 0.009992 0.086911 0.042085 0.001708 0.019483 0.133891 0.039530 0.180870 +0.194313 +0.031916 0.033348 0.029313 0.033723 0.014468 0.020225 0.010779 0.036487 0.029518 0.032670 0.016279 0.035689 0.015356 0.016412 0.032342 0.031536 0.014154 0.045175 0.027511 0.019782 0.019502 0.157380 0.039352 0.015383 0.012280 0.086911 0.042197 0.000838 0.020570 0.180870 0.038308 0.204360 +0 +0.031500 0.039462 0.030209 0.030618 0.015174 0.016511 0.010238 0.036975 0.028726 0.029231 0.017282 0.157539 0.015426 0.015516 0.028356 0.030960 0.015084 0.061784 0.026986 0.019104 0.023293 0.157380 0.037761 0.017944 0.012759 0.063422 0.039433 0.001501 0.021031 0.133891 0.039909 0.204360 +0.152322 +0.031586 0.034972 0.028547 0.028546 0.017024 0.055654 0.010776 0.035859 0.030397 0.031751 0.016153 0.282604 0.015073 0.015994 0.029979 0.029289 0.015767 0.085322 0.026721 0.019436 0.019633 0.063422 0.039820 0.014885 0.012156 0.157380 0.037686 0.001262 0.020133 0.063422 0.038571 0.204360 +0.531641 +0.029549 0.033082 0.028814 0.034978 0.015094 0.072550 0.009691 0.037563 0.028354 0.028633 0.017279 0.123979 0.015496 0.016197 0.030775 0.028230 0.014377 0.113593 0.027848 0.018999 0.022347 0.110401 0.040917 0.014748 0.011249 0.063422 0.037657 0.000053 0.020992 0.086911 0.038418 0.180870 +0.343290 +0.031821 0.039348 0.037644 0.031703 0.017481 0.120949 0.010179 0.035461 0.029224 0.039702 0.018663 0.186871 0.015271 0.016069 0.034752 0.029612 0.017228 0.138685 0.029644 0.019214 0.023482 0.157380 0.037986 0.012174 0.013609 0.086911 0.038013 0.001408 0.020082 0.086911 0.041690 0.180870 +0.548409 +0.029545 0.038137 0.031770 0.037587 0.016203 0.054025 0.010834 0.035597 0.029837 0.032020 0.018746 0.023703 0.015551 0.015904 0.028532 0.028850 0.018240 0.055117 0.029086 0.020419 0.020944 0.063422 0.039745 0.013413 0.008628 0.063422 0.040866 0.001652 0.020466 0.110401 0.041226 0.180870 +0 +0.030247 0.033996 0.031741 0.036089 0.014888 0.043836 0.011380 0.037116 0.029924 0.035720 0.015479 0.072095 0.015791 0.015719 0.028287 0.029986 0.015881 0.115390 0.028013 0.020783 0.021900 0.157380 0.040704 0.014113 0.010695 0.133891 0.041871 0.000307 0.020143 0.157380 0.039176 0.180870 +0.232714 +0.031534 0.038392 0.031165 0.029013 0.018772 0.304239 0.009428 0.036459 0.034460 0.028592 0.017840 0.041699 0.015377 0.015621 0.028699 0.028373 0.014632 0.070630 0.030207 0.020142 0.021971 0.086911 0.039696 0.015853 0.006692 0.086911 0.040962 0.002147 0.019235 0.133891 0.041788 0.157380 +0.412660 +0.032207 0.033038 0.030220 0.033222 0.016323 0.064065 0.010892 0.035571 0.028656 0.030039 0.016405 0.063320 0.015791 0.015807 0.028273 0.036739 0.016247 0.072321 0.029379 0.020021 0.021612 0.086911 0.041812 0.014279 0.010925 0.086911 0.037901 0.001105 0.020466 0.157380 0.038439 0.204360 +0.104569 +0.031445 0.036434 0.029420 0.029309 0.015527 0.019832 0.009833 0.035987 0.030349 0.032685 0.014832 0.041617 0.016186 0.016251 0.028790 0.031586 0.014459 0.027909 0.028098 0.018792 0.020207 0.180870 0.037875 0.018103 0.011055 0.110401 0.041249 0.000783 0.020639 0.157380 0.041025 0.204360 +0.001992 +0.031325 0.038718 0.029435 0.029890 0.014884 0.026485 0.009502 0.037360 0.036296 0.037603 0.015211 0.025847 0.015654 0.016010 0.028940 0.028838 0.018096 0.089841 0.028636 0.019842 0.022650 0.133891 0.041370 0.018006 0.010196 0.110401 0.040282 0.001023 0.020466 0.133891 0.040328 0.180870 +0.028455 +0.029473 0.033851 0.031437 0.029543 0.015802 0.051965 0.011283 0.035997 0.028691 0.033042 0.017939 0.096501 0.015461 0.016117 0.030623 0.030328 0.017781 0.060051 0.029222 0.020999 0.021412 0.063422 0.042073 0.017086 0.008979 0.110401 0.040963 0.002332 0.019003 0.063422 0.038873 0.157380 +0.080168 +0.030389 0.037434 0.028801 0.028451 0.016221 0.061809 0.010349 0.036421 0.030015 0.029106 0.018530 0.133943 0.015267 0.016040 0.029938 0.028578 0.018133 0.034943 0.028749 0.021038 0.019517 0.157380 0.040396 0.016007 0.007186 0.157380 0.039505 0.000920 0.020034 0.086911 0.039542 0.180870 +0.200547 +0.030726 0.033057 0.028537 0.028736 0.016645 0.166074 0.011123 0.035334 0.034622 0.035146 0.016528 0.020230 0.015235 0.015985 0.031652 0.029691 0.017349 0.023138 0.028081 0.019495 0.021658 0.157380 0.040394 0.017231 0.012012 0.110401 0.039208 0.000326 0.019994 0.086911 0.039416 0.204360 +0.122784 +0.032381 0.038654 0.034546 0.028278 0.014790 0.056935 0.010168 0.036119 0.028563 0.028901 0.016646 0.087250 0.015154 0.016236 0.029351 0.028833 0.016905 0.089303 0.030368 0.020959 0.022640 0.063422 0.041330 0.013382 0.011299 0.157380 0.041849 0.001566 0.019563 0.157380 0.038150 0.180870 +0.174943 +0.031165 0.037436 0.030782 0.035653 0.018611 0.041735 0.010271 0.036692 0.031615 0.028597 0.014605 0.167687 0.015278 0.016230 0.031026 0.028648 0.017831 0.121453 0.027278 0.019840 0.019819 0.110401 0.038059 0.015918 0.005156 0.110401 0.038497 0.001158 0.019149 0.086911 0.038518 0.157380 +0.390083 +0.030850 0.037404 0.031622 0.028189 0.017755 0.059516 0.009468 0.036608 0.030072 0.029566 0.017749 0.139127 0.015124 0.016252 0.028440 0.031240 0.017792 0.109112 0.028810 0.019949 0.021569 0.133891 0.041772 0.014378 0.004840 0.180870 0.038003 0.002177 0.019318 0.086911 0.041080 0.204360 +0.292811 +0.028261 0.037588 0.030817 0.028504 0.015010 0.030034 0.009899 0.036428 0.029002 0.031817 0.018606 0.090409 0.015385 0.015868 0.034755 0.032221 0.014114 0.063327 0.030044 0.019078 0.019188 0.110401 0.039647 0.014017 0.007845 0.063422 0.039221 0.002098 0.019286 0.133891 0.041003 0.157380 +0.116196 +0.031585 0.038596 0.030924 0.028386 0.016722 0.026025 0.011739 0.036323 0.028477 0.029066 0.018072 0.036727 0.015835 0.016368 0.035533 0.034745 0.018221 0.064871 0.027855 0.020126 0.023061 0.110401 0.042076 0.018028 0.010920 0.063422 0.039683 0.001935 0.018903 0.110401 0.040290 0.133891 +0.079373 +0.028223 0.033830 0.028700 0.034456 0.016270 0.080144 0.011109 0.035838 0.033067 0.032750 0.015991 0.136868 0.016132 0.015509 0.034361 0.028627 0.014664 0.036957 0.029873 0.020231 0.021814 0.110401 0.040103 0.014321 0.006050 0.110401 0.038419 0.000544 0.018805 0.110401 0.041634 0.133891 +0.344172 +0.028918 0.035876 0.037997 0.029995 0.017881 0.044613 0.009965 0.036977 0.028209 0.030782 0.016552 0.040737 0.015374 0.016141 0.029214 0.028655 0.017140 0.040714 0.029240 0.019506 0.020014 0.086911 0.039680 0.016662 0.005318 0.086911 0.040318 0.000280 0.018942 0.157380 0.041670 0.180870 +0.016025 +0.028329 0.034724 0.028503 0.028425 0.015099 0.024081 0.010492 0.036891 0.030239 0.032015 0.014592 0.092239 0.015333 0.015639 0.033060 0.033680 0.015615 0.082399 0.029344 0.019861 0.020490 0.110401 0.037694 0.014214 0.012112 0.110401 0.040550 0.002037 0.019140 0.063422 0.038858 0.133891 +0.173360 +0.030746 0.034279 0.031169 0.031549 0.015402 0.152163 0.009667 0.036158 0.033036 0.032963 0.018364 0.077605 0.015479 0.015817 0.028602 0.028828 0.014138 0.024104 0.027544 0.021043 0.021325 0.063422 0.042116 0.012560 0.006056 0.110401 0.041682 0.000632 0.020184 0.063422 0.040003 0.133891 +0.422925 +0.029311 0.035690 0.030094 0.030430 0.016422 0.089205 0.011363 0.035991 0.030789 0.028754 0.017785 0.049460 0.015584 0.015919 0.029337 0.032484 0.017977 0.488226 0.027098 0.018827 0.021139 0.180870 0.037723 0.013462 0.013836 0.133891 0.039119 0.002036 0.020345 0.157380 0.038234 0.204360 +0.805376 +0.031119 0.034348 0.029233 0.029450 0.017225 0.055123 0.011305 0.037164 0.028588 0.031591 0.017342 0.052838 0.015080 0.016149 0.028732 0.029210 0.015080 0.086964 0.025748 0.019844 0.022270 0.086911 0.039790 0.014312 0.009994 0.086911 0.040249 0.001903 0.020673 0.086911 0.042168 0.133891 +0.170459 +0.032124 0.033401 0.029546 0.031792 0.017432 0.067807 0.011115 0.036543 0.029271 0.030809 0.018013 0.027683 0.015351 0.016100 0.029384 0.031462 0.014578 0.026659 0.027443 0.020208 0.020937 0.133891 0.041028 0.018000 0.007564 0.086911 0.041542 0.000001 0.018962 0.157380 0.039043 0.180870 +0.017294 +0.032093 0.034168 0.028586 0.029193 0.017028 0.032985 0.010416 0.037111 0.030941 0.032452 0.018721 0.392744 0.015459 0.015700 0.028514 0.033972 0.016024 0.067083 0.029290 0.020454 0.023111 0.110401 0.041376 0.013107 0.005409 0.110401 0.042189 0.000801 0.019203 0.063422 0.038942 0.133891 +0.676137 +0.029388 0.033979 0.028214 0.029947 0.014457 0.152707 0.009687 0.036572 0.032645 0.028986 0.018119 0.118701 0.015352 0.016176 0.035735 0.028239 0.017769 0.029987 0.028366 0.019346 0.018913 0.157380 0.042134 0.013370 0.010560 0.157380 0.041154 0.000149 0.021133 0.086911 0.042129 0.204360 +0.278263 +0.031983 0.036833 0.028690 0.029196 0.018139 0.093919 0.011233 0.036602 0.028417 0.029775 0.015060 0.073889 0.015252 0.015680 0.031703 0.029031 0.015039 0.074019 0.028904 0.020298 0.019392 0.086911 0.039831 0.017918 0.007814 0.133891 0.039548 0.000016 0.020632 0.086911 0.041567 0.157380 +0.211406 +0.032722 0.038298 0.028541 0.037667 0.015712 0.017617 0.010390 0.035303 0.035643 0.031235 0.016849 0.057051 0.015892 0.015600 0.028999 0.033231 0.016832 0.090653 0.029043 0.020020 0.020708 0.063422 0.037793 0.013131 0.009712 0.110401 0.038295 0.001636 0.020651 0.063422 0.039291 0.157380 +0.063426 +0.029906 0.038984 0.029976 0.028378 0.016730 0.041009 0.010586 0.037459 0.034114 0.032254 0.016949 0.167064 0.015767 0.016359 0.028626 0.034172 0.016952 0.018662 0.026382 0.020321 0.018834 0.110401 0.042069 0.016798 0.012792 0.110401 0.039214 0.002232 0.019268 0.110401 0.037723 0.204360 +0.087604 +0.029077 0.032971 0.028377 0.032263 0.014117 0.033547 0.010051 0.036201 0.035677 0.028562 0.016049 0.237372 0.016309 0.015870 0.032191 0.030077 0.016931 0.235162 0.028077 0.019160 0.018850 0.063422 0.040892 0.013165 0.012344 0.086911 0.041001 0.001490 0.020889 0.110401 0.039283 0.133891 +0.679113 +0.030049 0.038953 0.029871 0.028935 0.015818 0.107271 0.011362 0.036559 0.031323 0.029846 0.015566 0.036775 0.015947 0.015681 0.029356 0.032500 0.018666 0.037249 0.028195 0.020293 0.022050 0.180870 0.040483 0.012870 0.011954 0.110401 0.038473 0.002257 0.021022 0.086911 0.038562 0.204360 +0.049082 +0.029697 0.036283 0.034289 0.029900 0.017143 0.134204 0.010569 0.035324 0.038488 0.033578 0.015787 0.020662 0.015905 0.016179 0.033740 0.032213 0.015277 0.075575 0.028025 0.020280 0.021305 0.086911 0.039063 0.016572 0.010731 0.063422 0.040925 0.001609 0.019803 0.110401 0.038522 0.133891 +0.265320 +0.031066 0.032951 0.028579 0.029689 0.015688 0.033114 0.011631 0.035682 0.030094 0.031272 0.014704 0.083180 0.015636 0.015973 0.028375 0.041004 0.014999 0.041545 0.026262 0.020988 0.023327 0.133891 0.038073 0.013352 0.009128 0.086911 0.039126 0.002231 0.019804 0.133891 0.042157 0.157380 +0.130701 +0.029620 0.039778 0.030305 0.032304 0.016628 0.156420 0.011371 0.036522 0.030468 0.028571 0.018230 0.081569 0.015925 0.015758 0.032996 0.028908 0.015388 0.042164 0.025614 0.020681 0.020756 0.180870 0.040204 0.017724 0.007267 0.063422 0.041834 0.002016 0.020090 0.063422 0.040147 0.204360 +0.309273 +0.031050 0.038421 0.028478 0.029743 0.014443 0.228077 0.010029 0.037440 0.028915 0.029960 0.014620 0.048734 0.016155 0.015937 0.030653 0.029987 0.015380 0.107119 0.029258 0.020288 0.019017 0.133891 0.040946 0.016773 0.007969 0.086911 0.038494 0.001276 0.018868 0.110401 0.040116 0.204360 +0.272948 +0.029970 0.037500 0.031796 0.030470 0.014561 0.067842 0.010255 0.036145 0.031061 0.029230 0.017961 0.017335 0.015159 0.015574 0.028909 0.030658 0.014353 0.041582 0.027460 0.019199 0.020471 0.110401 0.040567 0.016046 0.011621 0.110401 0.041942 0.000864 0.020118 0.110401 0.037791 0.133891 +0.073025 +0.029727 0.033040 0.028646 0.031600 0.014776 0.079730 0.009756 0.035823 0.029363 0.029048 0.014948 0.248601 0.016397 0.016219 0.028354 0.029003 0.014604 0.055297 0.028652 0.019096 0.019453 0.157380 0.039552 0.018155 0.007703 0.157380 0.039050 0.002151 0.020901 0.110401 0.038271 0.180870 +0.471886 +0.030252 0.037807 0.029302 0.031203 0.016287 0.102224 0.010819 0.037384 0.028574 0.030989 0.017154 0.078445 0.016028 0.016357 0.033618 0.028511 0.016456 0.043486 0.028532 0.019215 0.018899 0.133891 0.041995 0.017129 0.006693 0.110401 0.037745 0.001824 0.019675 0.063422 0.041673 0.157380 +0.217730 +0.031555 0.036208 0.029113 0.030727 0.018540 0.030025 0.011432 0.036874 0.029289 0.028525 0.018624 0.173333 0.016218 0.015622 0.031911 0.028313 0.018509 0.089677 0.027596 0.019048 0.019671 0.157380 0.040274 0.012281 0.008807 0.133891 0.039835 0.000994 0.018870 0.086911 0.039258 0.204360 +0.285246 +0.031247 0.037685 0.029379 0.030728 0.017544 0.019898 0.010958 0.037166 0.030694 0.032878 0.018273 0.027040 0.015163 0.015785 0.033675 0.030481 0.017740 0.079743 0.028797 0.021047 0.022235 0.110401 0.038421 0.012242 0.004778 0.110401 0.040270 0.000415 0.019934 0.063422 0.039814 0.157380 +0.020542 +0.030745 0.033350 0.028208 0.029382 0.016564 0.182097 0.011414 0.037154 0.031394 0.031139 0.018268 0.188730 0.015897 0.015910 0.031057 0.028722 0.017339 0.177018 0.028561 0.020891 0.020335 0.133891 0.041957 0.016361 0.008638 0.180870 0.042052 0.001078 0.019702 0.180870 0.040218 0.204360 +0.661076 +0.032726 0.034082 0.033827 0.032142 0.014894 0.051814 0.011183 0.037533 0.029092 0.031770 0.014944 0.023926 0.015544 0.015948 0.036220 0.029363 0.017501 0.174610 0.028550 0.020235 0.022353 0.133891 0.041637 0.014781 0.013616 0.063422 0.042072 0.000061 0.019859 0.157380 0.039964 0.204360 +0.222814 +0.030581 0.037512 0.028673 0.029550 0.017941 0.046952 0.011675 0.035277 0.028220 0.028281 0.016588 0.109753 0.016403 0.015695 0.028237 0.029687 0.017922 0.132021 0.028879 0.019237 0.021772 0.133891 0.039728 0.016084 0.011258 0.110401 0.040069 0.002314 0.019249 0.063422 0.041672 0.180870 +0.245683 +0.031275 0.036371 0.034174 0.029973 0.016566 0.022566 0.010628 0.036111 0.029574 0.028436 0.018005 0.113472 0.015222 0.016059 0.028398 0.035063 0.018060 0.238526 0.027082 0.018866 0.022331 0.180870 0.041758 0.012929 0.009280 0.063422 0.041640 0.000588 0.020594 0.086911 0.039601 0.204360 +0.411176 +0.031176 0.036481 0.029355 0.031102 0.016987 0.110020 0.009711 0.035437 0.028649 0.028253 0.016426 0.056044 0.015440 0.015719 0.029916 0.033172 0.018452 0.034697 0.027561 0.018836 0.021004 0.110401 0.040243 0.014502 0.009127 0.063422 0.041044 0.000355 0.020440 0.110401 0.040688 0.133891 +0.270306 +0.028699 0.036911 0.029265 0.028507 0.014996 0.407599 0.010854 0.037467 0.033227 0.029607 0.018474 0.120489 0.015461 0.016142 0.028322 0.031028 0.017820 0.048106 0.026046 0.019313 0.019709 0.180870 0.037663 0.015431 0.008964 0.180870 0.039503 0.001765 0.020552 0.157380 0.041711 0.204360 +0.610340 +0.029736 0.036861 0.029731 0.028795 0.014564 0.087849 0.010405 0.036329 0.033094 0.028836 0.014912 0.019693 0.016362 0.016051 0.028718 0.029846 0.016453 0.062890 0.026684 0.021008 0.020265 0.086911 0.041518 0.016505 0.012702 0.086911 0.037662 0.000453 0.020563 0.133891 0.041783 0.180870 +0.062639 +0.030945 0.039755 0.031077 0.033627 0.018721 0.037899 0.009747 0.037222 0.028284 0.028854 0.018097 0.113140 0.015762 0.015646 0.029015 0.029160 0.014137 0.128899 0.026440 0.020977 0.022443 0.133891 0.039284 0.012985 0.012228 0.086911 0.039061 0.002135 0.019351 0.086911 0.039895 0.180870 +0.192301 +0.031362 0.038020 0.033011 0.036642 0.016829 0.047571 0.011485 0.035538 0.030092 0.030157 0.014098 0.026416 0.015313 0.016348 0.029986 0.031829 0.017576 0.049110 0.027961 0.020949 0.023187 0.063422 0.039980 0.014825 0.007045 0.063422 0.037610 0.002324 0.020091 0.110401 0.037633 0.133891 +0.024042 +0.029909 0.035125 0.029493 0.029999 0.018335 0.034099 0.010493 0.036299 0.028485 0.030571 0.016016 0.030075 0.015073 0.016394 0.029217 0.031797 0.017954 0.045605 0.028609 0.019211 0.019091 0.110401 0.037989 0.013136 0.011977 0.063422 0.040483 0.000527 0.020297 0.086911 0.041981 0.157380 +0.011098 +0.032863 0.038624 0.032034 0.028286 0.016614 0.120761 0.009621 0.035972 0.028876 0.029944 0.014894 0.020135 0.015323 0.016286 0.028258 0.029777 0.014967 0.038292 0.028173 0.019727 0.020226 0.086911 0.041453 0.016143 0.012117 0.110401 0.038807 0.002134 0.019640 0.110401 0.041916 0.133891 +0.227473 +0.030169 0.035507 0.029835 0.029857 0.017316 0.021159 0.010239 0.035420 0.029742 0.029519 0.018133 0.083562 0.015693 0.015733 0.028975 0.029223 0.016011 0.059239 0.026480 0.020844 0.021457 0.086911 0.038158 0.013565 0.012599 0.110401 0.041482 0.002280 0.019302 0.063422 0.039856 0.133891 +0.099065 +0.029042 0.034259 0.029317 0.032985 0.014902 0.204473 0.009550 0.036574 0.030890 0.028368 0.014875 0.052187 0.015363 0.015955 0.031257 0.032702 0.015758 0.193121 0.029657 0.020280 0.021870 0.086911 0.038989 0.015447 0.013533 0.157380 0.039670 0.001927 0.020407 0.110401 0.039521 0.180870 +0.530783 +0.032475 0.037392 0.029215 0.028756 0.016549 0.042689 0.010959 0.035516 0.031833 0.031383 0.016866 0.052147 0.015222 0.015550 0.033243 0.029389 0.014288 0.193899 0.030805 0.019046 0.018835 0.180870 0.041160 0.016364 0.006387 0.063422 0.042150 0.000947 0.020327 0.110401 0.041236 0.204360 +0.240879 +0.028764 0.033126 0.031039 0.033950 0.015008 0.047575 0.010397 0.037080 0.030309 0.030466 0.018379 0.108796 0.016053 0.016419 0.029360 0.028769 0.017835 0.127739 0.027766 0.019607 0.019793 0.086911 0.038045 0.016932 0.010640 0.063422 0.041090 0.001514 0.019637 0.063422 0.040936 0.157380 +0.259904 +0.029108 0.034573 0.028628 0.028648 0.018054 0.025737 0.010204 0.036826 0.028829 0.029046 0.014610 0.109139 0.015066 0.015631 0.030180 0.030729 0.014984 0.049915 0.029320 0.019525 0.019444 0.110401 0.038576 0.016517 0.005185 0.110401 0.038694 0.001849 0.019275 0.110401 0.039558 0.180870 +0.073035 +0.032779 0.037594 0.032250 0.034883 0.017922 0.024955 0.011149 0.035513 0.030365 0.028282 0.017157 0.028544 0.016267 0.015719 0.029263 0.030530 0.016944 0.150795 0.029883 0.019320 0.020727 0.063422 0.039530 0.018207 0.009225 0.086911 0.041217 0.002282 0.019733 0.063422 0.039892 0.157380 +0.117436 +0.029355 0.034772 0.028528 0.029797 0.018538 0.058270 0.011437 0.037155 0.030938 0.030072 0.014174 0.017810 0.015088 0.016196 0.030773 0.029359 0.014466 0.083883 0.028351 0.020363 0.021804 0.086911 0.041537 0.012575 0.005251 0.133891 0.038146 0.000074 0.020770 0.110401 0.040329 0.157380 +0.078195 +0.031766 0.037441 0.029271 0.029134 0.016679 0.120736 0.011436 0.035756 0.038198 0.028471 0.016546 0.029055 0.015594 0.016190 0.029029 0.032796 0.016329 0.154334 0.027205 0.018864 0.021796 0.110401 0.039837 0.018247 0.013165 0.086911 0.039072 0.001274 0.019756 0.110401 0.038169 0.180870 +0.157285 +0.032514 0.033807 0.029784 0.031229 0.014814 0.022402 0.010202 0.035676 0.028249 0.030771 0.018004 0.038920 0.015909 0.015910 0.028430 0.029811 0.017054 0.033719 0.026164 0.020435 0.021739 0.110401 0.038477 0.015552 0.013395 0.157380 0.041954 0.002293 0.019419 0.157380 0.038407 0.180870 +0.001704 +0.028730 0.036791 0.028676 0.028202 0.017250 0.212518 0.011262 0.036500 0.036031 0.032785 0.014736 0.123780 0.015881 0.015583 0.030255 0.029584 0.015432 0.098683 0.028912 0.019227 0.020261 0.180870 0.037958 0.014370 0.011586 0.180870 0.039400 0.002252 0.020673 0.063422 0.040888 0.204360 +0.413111 +0.031039 0.033199 0.033075 0.028349 0.014994 0.184243 0.011593 0.036388 0.030094 0.034588 0.017016 0.088950 0.016252 0.016064 0.029088 0.028341 0.015595 0.355588 0.024971 0.021116 0.018878 0.110401 0.037840 0.015533 0.010426 0.063422 0.038898 0.000205 0.020745 0.086911 0.040832 0.204360 +0.832077 +0.030276 0.035861 0.031888 0.029838 0.015484 0.018581 0.010007 0.036617 0.029034 0.028705 0.016608 0.021744 0.015386 0.015953 0.028380 0.029413 0.014872 0.062476 0.027686 0.020882 0.022968 0.063422 0.038390 0.012706 0.007733 0.157380 0.038674 0.000079 0.020078 0.157380 0.041404 0.180870 +0.007519 +0.031102 0.039515 0.030293 0.033314 0.016284 0.087191 0.011201 0.036161 0.030592 0.032220 0.018602 0.047284 0.015820 0.015636 0.031211 0.029931 0.018543 0.133025 0.028676 0.021085 0.022768 0.133891 0.039683 0.017269 0.009288 0.180870 0.040877 0.000657 0.020598 0.133891 0.041917 0.204360 +0.275888 +0.029699 0.039766 0.029601 0.030679 0.014233 0.030174 0.010402 0.037178 0.028212 0.030428 0.014541 0.018982 0.016393 0.016335 0.030934 0.029066 0.017610 0.083062 0.027942 0.018902 0.019235 0.110401 0.042086 0.012695 0.007721 0.110401 0.041039 0.000791 0.020872 0.110401 0.038284 0.157380 +0.023145 +0.028972 0.034090 0.033276 0.028655 0.015795 0.046997 0.009873 0.036890 0.028686 0.029585 0.014658 0.187281 0.015706 0.016043 0.029828 0.029410 0.016835 0.017788 0.027092 0.019762 0.020751 0.063422 0.039124 0.017440 0.006139 0.086911 0.037720 0.001420 0.019550 0.063422 0.039811 0.133891 +0.290001 +0.031735 0.035107 0.029726 0.032653 0.015666 0.052325 0.011676 0.036831 0.031314 0.032273 0.016094 0.181649 0.016250 0.015733 0.028991 0.029656 0.018121 0.086821 0.029854 0.019194 0.021784 0.063422 0.038737 0.014765 0.007689 0.110401 0.037791 0.000422 0.020552 0.086911 0.039164 0.133891 +0.387851 +0.030293 0.033047 0.032014 0.030422 0.017511 0.158882 0.010912 0.037576 0.032593 0.029655 0.015470 0.046915 0.016136 0.015654 0.032375 0.036119 0.017532 0.133228 0.027812 0.020002 0.021500 0.110401 0.042004 0.011789 0.005863 0.086911 0.041345 0.000233 0.021095 0.133891 0.038692 0.204360 +0.424751 +0.030792 0.036666 0.032624 0.031082 0.015237 0.113714 0.009902 0.037448 0.028393 0.028460 0.014298 0.024328 0.015550 0.016170 0.031959 0.028810 0.017191 0.082622 0.026786 0.020187 0.022205 0.086911 0.037922 0.014003 0.004888 0.110401 0.039339 0.000448 0.019846 0.110401 0.039100 0.133891 +0.310079 +0.031651 0.039649 0.031947 0.028641 0.014796 0.028999 0.009572 0.035254 0.029348 0.028833 0.018194 0.027190 0.016379 0.016175 0.044014 0.031379 0.018519 0.018175 0.025421 0.020139 0.021721 0.063422 0.040775 0.016240 0.011312 0.133891 0.039398 0.001414 0.019467 0.110401 0.038404 0.180870 +0 +0.029762 0.037378 0.030577 0.029682 0.018042 0.016507 0.010386 0.037189 0.030744 0.032003 0.016468 0.101782 0.015059 0.016251 0.028496 0.029031 0.018474 0.055500 0.027096 0.019443 0.020542 0.110401 0.041997 0.014631 0.012107 0.180870 0.040172 0.000225 0.019440 0.180870 0.037594 0.204360 +0.082650 +0.030268 0.036739 0.029534 0.029168 0.017307 0.052990 0.010684 0.036582 0.033343 0.028970 0.017149 0.021391 0.016381 0.015813 0.028853 0.033430 0.015534 0.064327 0.026691 0.020567 0.022267 0.157380 0.040264 0.015958 0.011037 0.063422 0.038649 0.000189 0.018814 0.063422 0.040999 0.204360 +0.012962 +0.031186 0.033643 0.030902 0.029011 0.017637 0.036894 0.011418 0.037554 0.028834 0.037566 0.015574 0.067332 0.015763 0.015957 0.030817 0.028738 0.017744 0.043732 0.029245 0.020157 0.022231 0.110401 0.040168 0.011871 0.011602 0.110401 0.041755 0.001292 0.020893 0.063422 0.039770 0.157380 +0.035962 +0.032683 0.037113 0.029179 0.028582 0.018372 0.030724 0.011202 0.037581 0.034030 0.029869 0.018577 0.050424 0.015868 0.016189 0.030659 0.030206 0.017931 0.155703 0.028005 0.018836 0.022766 0.110401 0.040394 0.012268 0.007230 0.110401 0.041476 0.000634 0.020755 0.063422 0.041601 0.133891 +0.270981 +0.032269 0.037219 0.030552 0.030278 0.018606 0.046361 0.010745 0.037323 0.029127 0.033778 0.016668 0.219245 0.015423 0.015853 0.031040 0.029935 0.016343 0.139344 0.029435 0.020133 0.019265 0.063422 0.041453 0.013566 0.010996 0.086911 0.038657 0.001900 0.019086 0.086911 0.040516 0.133891 +0.508175 +0.029741 0.038130 0.030896 0.029890 0.015511 0.131070 0.010618 0.036958 0.029764 0.028220 0.014311 0.042012 0.016254 0.015983 0.028463 0.028695 0.017056 0.046917 0.029445 0.020627 0.020400 0.086911 0.038832 0.012080 0.008469 0.133891 0.041963 0.000324 0.019638 0.086911 0.039791 0.157380 +0.361908 +0.031049 0.036145 0.030913 0.031547 0.016089 0.041306 0.009843 0.036670 0.030207 0.028935 0.015826 0.072333 0.016269 0.016375 0.038798 0.029511 0.018318 0.090787 0.029790 0.020070 0.022727 0.086911 0.040500 0.012017 0.009599 0.086911 0.039872 0.001922 0.020195 0.063422 0.038805 0.157380 +0.119814 +0.032401 0.036207 0.031168 0.028826 0.016873 0.139737 0.010778 0.036649 0.030384 0.029318 0.015459 0.024548 0.015789 0.015679 0.032757 0.030262 0.015939 0.054070 0.028493 0.020236 0.021468 0.063422 0.037971 0.017366 0.006984 0.133891 0.040377 0.000900 0.019454 0.157380 0.037931 0.180870 +0.120912 +0.031118 0.039368 0.030477 0.032327 0.015093 0.021806 0.011538 0.037259 0.028275 0.028646 0.017285 0.137428 0.015418 0.015952 0.029603 0.028883 0.016472 0.362105 0.028353 0.019151 0.020256 0.063422 0.040951 0.012301 0.008314 0.086911 0.039198 0.002071 0.020416 0.157380 0.039695 0.180870 +0.705709 +0.028257 0.038687 0.031013 0.029236 0.016516 0.020477 0.010157 0.036354 0.028935 0.028238 0.016656 0.056516 0.015069 0.016305 0.029804 0.031053 0.016808 0.025590 0.026880 0.019635 0.021693 0.086911 0.038157 0.015474 0.007521 0.133891 0.039407 0.001887 0.019193 0.110401 0.041143 0.204360 +0 +0.030319 0.036071 0.029839 0.029515 0.015433 0.153078 0.011065 0.037238 0.033445 0.028850 0.018221 0.091076 0.016269 0.015998 0.028330 0.028658 0.017799 0.078385 0.029026 0.021008 0.020874 0.157380 0.040611 0.012511 0.006353 0.086911 0.038745 0.000680 0.020776 0.086911 0.040864 0.204360 +0.364964 +0.029439 0.038979 0.028313 0.029987 0.015861 0.082619 0.009640 0.037359 0.029075 0.029279 0.018649 0.016883 0.015986 0.015672 0.029556 0.033202 0.015348 0.075101 0.026796 0.020955 0.020035 0.157380 0.041567 0.013074 0.006308 0.110401 0.038838 0.000107 0.020338 0.157380 0.041652 0.204360 +0.075117 +0.031056 0.033850 0.030344 0.031924 0.016900 0.233763 0.010019 0.037511 0.028877 0.033807 0.016977 0.044271 0.015910 0.016354 0.029214 0.032543 0.018168 0.019869 0.027812 0.019982 0.022936 0.133891 0.041601 0.016922 0.012962 0.110401 0.041462 0.000592 0.018832 0.157380 0.038395 0.204360 +0.339768 +0.031894 0.039292 0.035235 0.033940 0.015668 0.033254 0.011030 0.036973 0.045665 0.028729 0.018570 0.021841 0.016201 0.015945 0.030449 0.031518 0.017299 0.091192 0.029340 0.019523 0.021950 0.063422 0.041757 0.013362 0.009946 0.086911 0.038318 0.000778 0.019167 0.063422 0.038717 0.133891 +0.023073 +0.031032 0.033369 0.033343 0.033288 0.014294 0.029337 0.010158 0.036808 0.032963 0.028878 0.018232 0.051665 0.015998 0.016336 0.029919 0.029078 0.017096 0.062678 0.026933 0.019872 0.022727 0.063422 0.040350 0.018348 0.013683 0.063422 0.038505 0.000412 0.020915 0.110401 0.040106 0.180870 +0.019372 +0.031882 0.038596 0.030906 0.030666 0.017473 0.018975 0.011411 0.035402 0.033494 0.033390 0.018738 0.112542 0.015971 0.016125 0.029145 0.028265 0.017247 0.070761 0.029509 0.020700 0.023100 0.157380 0.040724 0.013666 0.010373 0.110401 0.038188 0.000887 0.019496 0.180870 0.039842 0.204360 +0.155955 +0.029120 0.037119 0.029413 0.028851 0.016072 0.066813 0.011334 0.037246 0.032258 0.028613 0.017852 0.085570 0.016040 0.016344 0.028595 0.028965 0.015416 0.129581 0.030385 0.019369 0.022358 0.110401 0.039441 0.013026 0.005670 0.110401 0.038952 0.001603 0.021091 0.133891 0.041766 0.157380 +0.304350 +0.029731 0.039360 0.029395 0.028319 0.017565 0.040689 0.010649 0.037424 0.035750 0.031574 0.018486 0.043146 0.016094 0.016381 0.028315 0.028777 0.015200 0.046666 0.027637 0.020857 0.023486 0.157380 0.038053 0.018186 0.010587 0.086911 0.038367 0.001390 0.020432 0.133891 0.040926 0.180870 +0.071307 +0.028506 0.035975 0.028501 0.033009 0.018000 0.035121 0.010593 0.036665 0.029936 0.028872 0.018364 0.039656 0.016434 0.015825 0.033981 0.028570 0.016632 0.084476 0.027654 0.020632 0.022432 0.063422 0.041569 0.015500 0.010626 0.110401 0.039944 0.001552 0.019266 0.110401 0.037849 0.204360 +0.011627 +0.032312 0.039304 0.030880 0.030255 0.015277 0.067905 0.011737 0.036080 0.031192 0.029804 0.014097 0.224971 0.015979 0.015551 0.029339 0.030827 0.017106 0.090451 0.029313 0.019747 0.021317 0.110401 0.041077 0.016232 0.006668 0.110401 0.037615 0.001937 0.020444 0.086911 0.039038 0.133891 +0.523111 +0.028539 0.036634 0.029977 0.029283 0.016125 0.019505 0.011427 0.037402 0.030040 0.029259 0.017762 0.028381 0.016107 0.016054 0.028196 0.028535 0.018103 0.082024 0.028128 0.019459 0.022361 0.086911 0.039818 0.017458 0.012575 0.110401 0.037780 0.001468 0.019564 0.110401 0.038004 0.180870 +0.000892 +0.029997 0.039010 0.030588 0.031067 0.016477 0.029923 0.010250 0.037328 0.029278 0.028389 0.015388 0.111131 0.015377 0.016175 0.029384 0.030267 0.017537 0.053825 0.027323 0.020667 0.022687 0.133891 0.038684 0.011860 0.009612 0.110401 0.040407 0.001641 0.020068 0.063422 0.039196 0.157380 +0.133045 +0.029431 0.034261 0.030349 0.031355 0.014606 0.048741 0.010229 0.037498 0.030024 0.029397 0.014217 0.140988 0.015430 0.016112 0.028696 0.028436 0.017124 0.093212 0.027390 0.018801 0.020592 0.110401 0.039116 0.014790 0.012721 0.086911 0.038518 0.002029 0.021100 0.110401 0.039587 0.204360 +0.208880 +0.028876 0.037388 0.028502 0.028501 0.015698 0.050585 0.011382 0.037333 0.028568 0.028232 0.017577 0.029935 0.015992 0.016194 0.029889 0.029016 0.017411 0.065725 0.028424 0.020216 0.019340 0.110401 0.039938 0.012636 0.004826 0.110401 0.040001 0.002210 0.020481 0.086911 0.039423 0.133891 +0.101960 +0.032325 0.038853 0.030442 0.028968 0.017441 0.026691 0.010600 0.036302 0.029988 0.028350 0.014102 0.173742 0.016399 0.016177 0.029617 0.028966 0.015544 0.122011 0.029138 0.020166 0.020969 0.110401 0.039775 0.011933 0.010701 0.086911 0.038742 0.001165 0.019524 0.180870 0.038154 0.204360 +0.387066 +0.031570 0.038343 0.029562 0.028676 0.016293 0.068544 0.009448 0.035382 0.032692 0.030333 0.017326 0.016462 0.016229 0.015602 0.033548 0.029619 0.014609 0.031238 0.029326 0.019285 0.021240 0.063422 0.037600 0.017442 0.005388 0.086911 0.037609 0.000078 0.020186 0.133891 0.038040 0.204360 +0 +0.030201 0.038549 0.028852 0.029314 0.017882 0.066680 0.009912 0.037122 0.033181 0.029495 0.017269 0.071214 0.016095 0.016376 0.028986 0.029673 0.018139 0.093700 0.027827 0.020534 0.021268 0.086911 0.038721 0.012929 0.013522 0.157380 0.040646 0.000592 0.019619 0.086911 0.041124 0.180870 +0.210908 +0.030490 0.036569 0.031826 0.031013 0.014525 0.043384 0.011165 0.035787 0.028271 0.029239 0.017552 0.174719 0.015199 0.015511 0.028266 0.030682 0.014366 0.022685 0.027526 0.020930 0.022845 0.133891 0.039463 0.017889 0.011977 0.110401 0.040924 0.000517 0.019010 0.110401 0.038132 0.204360 +0.152856 +0.029477 0.036069 0.031817 0.030043 0.018456 0.059295 0.010877 0.035384 0.034215 0.035181 0.015869 0.022617 0.015741 0.016257 0.030028 0.032767 0.014978 0.101996 0.027506 0.019607 0.020655 0.063422 0.040144 0.013936 0.006289 0.086911 0.041915 0.001852 0.019713 0.133891 0.040502 0.180870 +0.067799 +0.031728 0.038618 0.028885 0.028290 0.018778 0.033838 0.010082 0.036141 0.030358 0.029565 0.017618 0.030890 0.015935 0.015937 0.039963 0.031614 0.015785 0.137684 0.026314 0.019946 0.019792 0.110401 0.040218 0.014850 0.006848 0.063422 0.039564 0.000805 0.020484 0.157380 0.041854 0.204360 +0.128609 +0.028349 0.039038 0.029925 0.028696 0.017562 0.036292 0.011260 0.037505 0.028487 0.028481 0.016696 0.038184 0.015384 0.015738 0.031888 0.028642 0.015529 0.357335 0.029170 0.020101 0.023034 0.063422 0.040479 0.014448 0.010494 0.063422 0.038513 0.001245 0.019430 0.110401 0.039047 0.157380 +0.614184 +0.028861 0.034629 0.028246 0.028550 0.014376 0.095892 0.009959 0.036820 0.031390 0.029985 0.014126 0.156450 0.016369 0.015965 0.029106 0.028557 0.017397 0.057509 0.026817 0.021026 0.022309 0.086911 0.042237 0.017750 0.010451 0.063422 0.041380 0.000331 0.020286 0.063422 0.041500 0.133891 +0.290742 +0.029386 0.033860 0.028546 0.038993 0.017953 0.019088 0.010610 0.036333 0.037441 0.028359 0.014390 0.254642 0.016300 0.015969 0.032085 0.031206 0.016195 0.047880 0.028470 0.019936 0.021843 0.110401 0.039021 0.015509 0.008050 0.063422 0.041862 0.000925 0.020487 0.110401 0.038706 0.133891 +0.363083 +0.029416 0.037127 0.030652 0.028817 0.016829 0.020232 0.010695 0.035421 0.028224 0.030894 0.018064 0.124965 0.016371 0.016080 0.030138 0.030387 0.017333 0.038872 0.025888 0.019103 0.021558 0.133891 0.041884 0.016252 0.010258 0.133891 0.042093 0.000115 0.020764 0.086911 0.039500 0.157380 +0.159231 +0.029138 0.037180 0.029234 0.030748 0.014425 0.107333 0.010108 0.037443 0.028345 0.029778 0.015033 0.028331 0.016431 0.015989 0.029497 0.033752 0.014824 0.049342 0.028414 0.018829 0.020484 0.157380 0.040844 0.015358 0.006896 0.086911 0.040802 0.002236 0.019309 0.086911 0.037778 0.204360 +0.142499 +0.032516 0.039849 0.032050 0.030749 0.014604 0.028535 0.009810 0.036799 0.028884 0.032230 0.016263 0.376007 0.015687 0.016178 0.028952 0.030531 0.015606 0.017513 0.027991 0.019981 0.022832 0.063422 0.039287 0.018034 0.009605 0.063422 0.038750 0.001451 0.020734 0.086911 0.041086 0.133891 +0.575134 +0.028634 0.037578 0.028276 0.029605 0.017007 0.025704 0.009933 0.036741 0.029079 0.031079 0.018148 0.036344 0.016400 0.015531 0.029351 0.034341 0.017182 0.041368 0.028623 0.019949 0.022872 0.063422 0.041471 0.016228 0.008267 0.086911 0.038126 0.001740 0.019767 0.110401 0.037882 0.180870 +0 +0.028704 0.037466 0.028455 0.028815 0.014908 0.155414 0.010117 0.036099 0.028837 0.029433 0.018724 0.046838 0.015146 0.016344 0.028279 0.031895 0.015300 0.025155 0.029086 0.021124 0.020042 0.063422 0.039875 0.016339 0.010090 0.063422 0.039431 0.000534 0.019169 0.063422 0.040729 0.133891 +0.253212 +0.030506 0.033769 0.029223 0.028748 0.018693 0.200852 0.010323 0.036440 0.030431 0.029682 0.016388 0.016562 0.015149 0.016342 0.029840 0.028272 0.016752 0.032689 0.027503 0.019755 0.019891 0.086911 0.041690 0.013444 0.010656 0.133891 0.041507 0.002246 0.020785 0.157380 0.041319 0.180870 +0.411219 +0.030465 0.038110 0.030156 0.029542 0.014654 0.099517 0.010799 0.037038 0.029012 0.030122 0.015064 0.259522 0.016411 0.015735 0.030193 0.030837 0.014355 0.035184 0.030449 0.021101 0.023110 0.157380 0.038144 0.014948 0.012658 0.180870 0.038681 0.001343 0.020079 0.180870 0.038462 0.204360 +0.520056 +0.032786 0.039609 0.029021 0.029275 0.017025 0.080604 0.009757 0.036590 0.028299 0.031944 0.015843 0.075292 0.015720 0.015520 0.030659 0.029569 0.015334 0.027006 0.028929 0.020686 0.019401 0.133891 0.038250 0.016160 0.008469 0.110401 0.040720 0.001054 0.018933 0.133891 0.042251 0.157380 +0.142726 +0.028414 0.038687 0.029849 0.030023 0.017461 0.130769 0.010876 0.035750 0.029575 0.028779 0.018031 0.047775 0.015987 0.016260 0.030786 0.030190 0.017303 0.104292 0.028719 0.019551 0.022410 0.063422 0.042043 0.013143 0.005079 0.063422 0.040795 0.001508 0.020412 0.063422 0.038454 0.133891 +0.390931 +0.032488 0.036795 0.028261 0.029497 0.016249 0.069103 0.011713 0.036891 0.028693 0.029411 0.017573 0.125936 0.015343 0.016070 0.030717 0.028541 0.014954 0.223487 0.028551 0.019987 0.019634 0.063422 0.037814 0.015390 0.010710 0.110401 0.042024 0.001738 0.020509 0.110401 0.039522 0.133891 +0.557944 +0.031353 0.033548 0.029431 0.028851 0.015364 0.025799 0.010899 0.036149 0.029374 0.028999 0.018501 0.146433 0.015894 0.016259 0.030090 0.028433 0.014273 0.096069 0.028752 0.019885 0.022867 0.157380 0.040097 0.014379 0.011822 0.110401 0.039639 0.000043 0.019291 0.086911 0.039161 0.180870 +0.251317 +0.028661 0.034769 0.029489 0.031973 0.018527 0.049432 0.010698 0.035672 0.029250 0.031333 0.015513 0.077361 0.016302 0.016340 0.029403 0.031190 0.016704 0.068392 0.027376 0.019544 0.021959 0.133891 0.039754 0.017403 0.008489 0.157380 0.041533 0.000065 0.020518 0.133891 0.041775 0.180870 +0.139386 +0.031481 0.036592 0.029621 0.031864 0.014851 0.035999 0.010763 0.036387 0.030634 0.028274 0.017863 0.261100 0.015294 0.015744 0.030480 0.028313 0.018572 0.073347 0.028356 0.019642 0.022390 0.133891 0.042233 0.017935 0.012017 0.110401 0.037630 0.001304 0.019251 0.063422 0.037693 0.204360 +0.435821 +0.031051 0.035694 0.029206 0.032739 0.018062 0.093932 0.011479 0.035863 0.031909 0.028628 0.014676 0.358102 0.015796 0.016172 0.030651 0.038386 0.018182 0.134863 0.027884 0.019589 0.019507 0.063422 0.037995 0.016441 0.006559 0.110401 0.040294 0.001738 0.019425 0.063422 0.038646 0.133891 +0.783917 +0.029186 0.039863 0.030478 0.028995 0.018682 0.095174 0.011220 0.037542 0.035688 0.028432 0.018235 0.048751 0.016062 0.016401 0.033365 0.028654 0.016028 0.030203 0.027942 0.019274 0.020851 0.157380 0.040650 0.018162 0.007412 0.133891 0.038637 0.000215 0.019223 0.157380 0.038330 0.204360 +0.040033 +0.028619 0.034027 0.029402 0.029645 0.016285 0.037161 0.009636 0.037090 0.029257 0.028421 0.018153 0.024927 0.015239 0.015689 0.028759 0.030523 0.017339 0.371651 0.028403 0.020573 0.019127 0.157380 0.040256 0.013084 0.008418 0.133891 0.038351 0.001213 0.019911 0.063422 0.038288 0.180870 +0.577633 +0.031451 0.034303 0.030806 0.029339 0.018755 0.027136 0.010716 0.035686 0.030233 0.029606 0.018098 0.122336 0.015977 0.016037 0.029549 0.031806 0.014608 0.016460 0.027924 0.019687 0.023230 0.110401 0.041974 0.016242 0.004916 0.133891 0.041974 0.001336 0.020970 0.063422 0.037942 0.204360 +0.027327 +0.031185 0.038194 0.028259 0.030998 0.016126 0.017074 0.010839 0.035343 0.033312 0.028389 0.016871 0.064373 0.015415 0.015715 0.039580 0.033318 0.015492 0.167004 0.027996 0.020747 0.019812 0.086911 0.041985 0.017760 0.012151 0.157380 0.041066 0.000552 0.020769 0.086911 0.041666 0.180870 +0.153380 +0.031788 0.036229 0.032562 0.028505 0.014656 0.089062 0.010995 0.037159 0.031234 0.029891 0.016906 0.016517 0.015781 0.016031 0.032734 0.034598 0.015603 0.178979 0.030121 0.018855 0.019371 0.086911 0.040485 0.017148 0.006038 0.063422 0.040526 0.000981 0.019836 0.063422 0.041021 0.157380 +0.153797 +0.029258 0.033019 0.029904 0.032807 0.015435 0.140053 0.011517 0.035479 0.029458 0.028333 0.016783 0.041200 0.016067 0.015727 0.030134 0.031771 0.017825 0.051453 0.028499 0.019666 0.020037 0.133891 0.037928 0.012112 0.011629 0.133891 0.037833 0.001537 0.019349 0.063422 0.038338 0.157380 +0.336078 +0.028225 0.037503 0.029113 0.029615 0.016100 0.126686 0.010465 0.035856 0.028312 0.034585 0.015205 0.193187 0.015212 0.016101 0.031213 0.028293 0.014719 0.058451 0.027512 0.020614 0.020639 0.086911 0.038605 0.013243 0.011818 0.063422 0.040629 0.000598 0.018828 0.063422 0.038722 0.133891 +0.492456 +0.029900 0.033121 0.029945 0.028367 0.017783 0.103075 0.010588 0.036172 0.030081 0.028630 0.016516 0.104382 0.016218 0.015948 0.029921 0.031076 0.015848 0.098084 0.026997 0.019410 0.020564 0.063422 0.038418 0.013903 0.004991 0.086911 0.038017 0.001792 0.019775 0.180870 0.040915 0.204360 +0.289154 +0.032175 0.038924 0.028775 0.029921 0.015994 0.172883 0.010689 0.036634 0.028509 0.029083 0.018451 0.027540 0.016041 0.015758 0.033115 0.029311 0.016932 0.022486 0.028640 0.020657 0.019850 0.063422 0.042165 0.014576 0.013691 0.063422 0.039316 0.000353 0.020477 0.133891 0.040070 0.157380 +0.096766 +0.031725 0.038026 0.029471 0.029480 0.016055 0.090213 0.010383 0.037316 0.030701 0.029502 0.017879 0.024904 0.015349 0.016217 0.028984 0.028959 0.018057 0.185450 0.028375 0.020195 0.020553 0.086911 0.041655 0.016981 0.013069 0.063422 0.038227 0.002187 0.019181 0.133891 0.039314 0.157380 +0.350576 +0.032284 0.038713 0.032047 0.033004 0.016739 0.076357 0.011715 0.037508 0.032905 0.028239 0.015549 0.232160 0.015437 0.015872 0.029753 0.028377 0.015153 0.052405 0.029339 0.020231 0.020587 0.110401 0.037968 0.017974 0.008511 0.110401 0.039048 0.000405 0.020533 0.110401 0.041647 0.133891 +0.463669 +0.030537 0.034485 0.028339 0.030032 0.017619 0.051225 0.009633 0.036106 0.028597 0.031301 0.018685 0.067999 0.016095 0.015839 0.037922 0.034587 0.014470 0.148403 0.026774 0.020431 0.020885 0.063422 0.038595 0.014674 0.004958 0.110401 0.042106 0.002093 0.019930 0.063422 0.040666 0.133891 +0.299946 +0.030660 0.034493 0.028888 0.029089 0.017257 0.111467 0.009935 0.037415 0.031321 0.030076 0.014835 0.090460 0.015862 0.016097 0.028973 0.028787 0.014700 0.208008 0.027340 0.020778 0.022676 0.086911 0.038344 0.017457 0.010267 0.157380 0.041227 0.001910 0.019874 0.157380 0.039717 0.180870 +0.477696 +0.032074 0.036095 0.030946 0.029564 0.017935 0.119113 0.009712 0.036046 0.029765 0.028675 0.016433 0.055257 0.016434 0.015837 0.031553 0.030657 0.014919 0.066238 0.026715 0.019001 0.020569 0.110401 0.039605 0.017263 0.006893 0.086911 0.040747 0.000668 0.019737 0.063422 0.041569 0.133891 +0.361143 +0.032553 0.038928 0.028235 0.030488 0.017535 0.115152 0.010643 0.035270 0.031996 0.031374 0.018765 0.269094 0.015287 0.015768 0.030448 0.036129 0.015561 0.017121 0.028330 0.019154 0.019372 0.086911 0.038172 0.014742 0.011023 0.157380 0.040495 0.000052 0.019825 0.133891 0.037937 0.204360 +0.531469 +0.030056 0.039057 0.028711 0.030392 0.018108 0.057756 0.010791 0.037320 0.030586 0.030089 0.015192 0.036785 0.015593 0.015785 0.029209 0.031437 0.015390 0.045149 0.026553 0.020217 0.020060 0.180870 0.040315 0.016491 0.007583 0.063422 0.039069 0.000075 0.019950 0.086911 0.039930 0.204360 +0.062129 +0.031622 0.035599 0.028579 0.029817 0.017503 0.124726 0.010765 0.035846 0.028387 0.031003 0.017297 0.064939 0.015990 0.016398 0.030192 0.028216 0.018652 0.038251 0.027888 0.020076 0.021162 0.110401 0.040575 0.014345 0.010029 0.110401 0.041578 0.000941 0.018850 0.157380 0.037878 0.180870 +0.312142 +0.032775 0.038862 0.031964 0.031934 0.015753 0.221190 0.010974 0.037382 0.028656 0.029115 0.017709 0.025216 0.016307 0.015856 0.029356 0.029288 0.014337 0.017467 0.028921 0.019916 0.019109 0.086911 0.040288 0.012055 0.008580 0.086911 0.038177 0.002222 0.019521 0.157380 0.039413 0.180870 +0.359001 +0.031911 0.035399 0.029029 0.029335 0.018199 0.170799 0.010208 0.037395 0.030044 0.028586 0.014789 0.091100 0.015840 0.015676 0.028798 0.031051 0.015461 0.035607 0.028179 0.019871 0.021692 0.086911 0.040067 0.013335 0.007683 0.086911 0.039540 0.001940 0.020100 0.086911 0.039342 0.157380 +0.399763 +0.028524 0.034081 0.029260 0.031172 0.017509 0.197648 0.010588 0.036328 0.030299 0.030295 0.015117 0.028477 0.015936 0.015938 0.029398 0.031296 0.017092 0.046637 0.029599 0.018955 0.020277 0.110401 0.040296 0.015183 0.011026 0.063422 0.042131 0.000078 0.018993 0.086911 0.041947 0.157380 +0.155838 +0.030347 0.034753 0.029808 0.031915 0.016156 0.069789 0.010971 0.037026 0.039672 0.031412 0.018359 0.176606 0.015056 0.016394 0.032490 0.031598 0.016615 0.073040 0.025763 0.020745 0.023111 0.157380 0.041244 0.016421 0.010515 0.133891 0.040529 0.000843 0.019867 0.133891 0.040245 0.180870 +0.305174 +0.028194 0.034847 0.028271 0.028454 0.016465 0.020316 0.009605 0.037370 0.031169 0.030449 0.018710 0.133590 0.015260 0.016393 0.030902 0.031127 0.015189 0.152581 0.029137 0.020115 0.019857 0.063422 0.042210 0.014075 0.013264 0.086911 0.038825 0.000420 0.019696 0.110401 0.040963 0.180870 +0.303430 +0.031746 0.035329 0.028977 0.028945 0.017185 0.294135 0.011648 0.036352 0.031466 0.029407 0.014167 0.092789 0.015820 0.016337 0.028996 0.029805 0.018722 0.036279 0.029340 0.020626 0.022052 0.063422 0.037636 0.012023 0.009964 0.063422 0.039016 0.000437 0.020726 0.086911 0.041999 0.133891 +0.612379 +0.029098 0.035076 0.028515 0.035515 0.017149 0.058021 0.011406 0.035456 0.029304 0.029965 0.017212 0.030107 0.015191 0.015845 0.031591 0.029223 0.017487 0.084898 0.028358 0.019542 0.020676 0.063422 0.039915 0.016565 0.006860 0.086911 0.039016 0.001823 0.019813 0.086911 0.038720 0.180870 +0.028764 +0.032268 0.037768 0.028367 0.032763 0.016449 0.059885 0.009875 0.035252 0.032578 0.028325 0.017558 0.049132 0.015103 0.015526 0.030949 0.040681 0.014885 0.251429 0.028811 0.020451 0.021909 0.133891 0.037986 0.014181 0.005607 0.133891 0.039777 0.000522 0.021081 0.063422 0.041856 0.204360 +0.417260 +0.029528 0.039746 0.032370 0.031837 0.017934 0.195466 0.010223 0.037486 0.031436 0.028427 0.016422 0.149927 0.015481 0.015785 0.029620 0.028507 0.016114 0.029781 0.029703 0.019756 0.022378 0.110401 0.038328 0.014031 0.012018 0.133891 0.041948 0.001576 0.019393 0.086911 0.038174 0.157380 +0.423835 +0.028986 0.036611 0.032857 0.029655 0.017113 0.028958 0.011009 0.037351 0.028259 0.030718 0.015821 0.041088 0.015817 0.016368 0.035438 0.033076 0.015307 0.019023 0.027726 0.020407 0.022027 0.110401 0.041152 0.017444 0.009627 0.086911 0.039072 0.001369 0.020398 0.063422 0.038280 0.204360 +0 +0.028752 0.035296 0.029013 0.028801 0.017793 0.018255 0.011607 0.035609 0.028246 0.029120 0.014669 0.018628 0.015359 0.016423 0.029779 0.029165 0.016082 0.018347 0.028660 0.019448 0.021623 0.157380 0.041417 0.017568 0.011260 0.063422 0.038380 0.001492 0.020508 0.063422 0.041849 0.204360 +0 +0.029919 0.037612 0.029230 0.028949 0.015769 0.086744 0.010242 0.036897 0.028341 0.033170 0.014636 0.100800 0.016148 0.016116 0.029782 0.028227 0.018283 0.045002 0.028473 0.020503 0.020472 0.086911 0.040762 0.017451 0.010669 0.133891 0.040857 0.001467 0.019194 0.157380 0.041447 0.180870 +0.207971 +0.030018 0.035570 0.031367 0.030250 0.017025 0.074941 0.011128 0.036115 0.028439 0.028488 0.017428 0.163957 0.016334 0.015849 0.030173 0.032893 0.017438 0.020608 0.028017 0.019279 0.022345 0.063422 0.041105 0.012883 0.010808 0.086911 0.042204 0.001412 0.020944 0.110401 0.038311 0.133891 +0.253650 +0.031518 0.033081 0.028289 0.028382 0.014480 0.035420 0.009843 0.037334 0.030000 0.030224 0.017442 0.072233 0.015656 0.016194 0.028467 0.031951 0.014146 0.138118 0.029542 0.021051 0.022892 0.086911 0.040420 0.013251 0.007674 0.063422 0.041165 0.001081 0.020574 0.157380 0.038126 0.180870 +0.196630 +0.029664 0.036394 0.028753 0.030649 0.017607 0.047530 0.009990 0.035793 0.033338 0.028638 0.014549 0.018602 0.016027 0.016435 0.028216 0.030394 0.015188 0.129626 0.027064 0.021008 0.020564 0.110401 0.039773 0.016322 0.013572 0.086911 0.038207 0.000883 0.019043 0.063422 0.039085 0.157380 +0.104188 +0.030930 0.035371 0.029133 0.029220 0.015189 0.052742 0.010457 0.036546 0.028295 0.029787 0.017278 0.054040 0.015926 0.015633 0.030638 0.035504 0.018606 0.074907 0.027561 0.020116 0.022178 0.133891 0.039612 0.017838 0.005108 0.110401 0.041941 0.002196 0.019095 0.110401 0.038853 0.157380 +0.133865 +0.032208 0.034086 0.030245 0.031215 0.018359 0.063209 0.011068 0.035587 0.028935 0.029477 0.014650 0.068590 0.015892 0.016094 0.029452 0.033584 0.015655 0.067385 0.026717 0.019810 0.020637 0.063422 0.040585 0.014049 0.008465 0.110401 0.040652 0.001621 0.020913 0.157380 0.040630 0.180870 +0.132251 +0.028322 0.039866 0.029581 0.033245 0.017201 0.068596 0.011047 0.036581 0.028562 0.028747 0.014933 0.109061 0.016283 0.015873 0.034351 0.028224 0.016340 0.302660 0.029157 0.020847 0.019919 0.086911 0.040633 0.015981 0.005109 0.157380 0.038458 0.000869 0.020481 0.133891 0.041389 0.180870 +0.671219 +0.032128 0.033396 0.029201 0.032788 0.017418 0.134825 0.010978 0.036499 0.028740 0.030056 0.016410 0.160308 0.015972 0.016294 0.031474 0.029427 0.017084 0.028230 0.028980 0.020803 0.022553 0.086911 0.041876 0.014529 0.009971 0.110401 0.040549 0.001940 0.019524 0.133891 0.038102 0.157380 +0.364321 +0.031555 0.036899 0.028704 0.029701 0.014126 0.039629 0.009898 0.035556 0.029581 0.028931 0.016590 0.110881 0.015297 0.015966 0.039272 0.049819 0.018511 0.055231 0.027635 0.018993 0.019944 0.110401 0.042229 0.014149 0.007984 0.110401 0.041225 0.001718 0.019458 0.157380 0.038939 0.204360 +0.121628 +0.031214 0.036551 0.029008 0.031585 0.014738 0.197122 0.011038 0.035905 0.028718 0.031879 0.017924 0.142269 0.015615 0.015752 0.034479 0.028712 0.017158 0.092415 0.029771 0.019041 0.022058 0.133891 0.039661 0.011878 0.010906 0.110401 0.039813 0.002253 0.020319 0.133891 0.038550 0.157380 +0.472091 +0.032064 0.039344 0.028258 0.028893 0.017046 0.099494 0.010128 0.035561 0.033484 0.030083 0.018378 0.042841 0.015552 0.016299 0.029025 0.028998 0.016988 0.023108 0.029394 0.020786 0.020041 0.157380 0.041892 0.017176 0.012438 0.086911 0.041802 0.000105 0.019259 0.180870 0.038447 0.204360 +0.049776 +0.030072 0.036861 0.030002 0.028243 0.014346 0.042512 0.011649 0.037139 0.029535 0.028855 0.018674 0.136670 0.015238 0.016267 0.028383 0.028641 0.016012 0.137470 0.028193 0.019129 0.021577 0.086911 0.041846 0.013965 0.010686 0.063422 0.039158 0.001053 0.019614 0.110401 0.039897 0.157380 +0.339870 +0.031398 0.034621 0.029033 0.032594 0.014277 0.016737 0.010404 0.036816 0.028199 0.028784 0.014300 0.072570 0.015347 0.015886 0.029374 0.030707 0.014888 0.131989 0.029438 0.019240 0.019277 0.063422 0.038140 0.013054 0.011645 0.086911 0.039755 0.001480 0.019950 0.110401 0.037761 0.157380 +0.185960 +0.032172 0.033195 0.028635 0.029155 0.016458 0.128496 0.011638 0.035546 0.035150 0.030809 0.015035 0.092017 0.016383 0.015876 0.028827 0.029477 0.014269 0.051699 0.027102 0.020133 0.019275 0.110401 0.038821 0.016303 0.011983 0.157380 0.039081 0.001467 0.019293 0.157380 0.038022 0.204360 +0.296323 +0.029774 0.037535 0.029322 0.038850 0.014826 0.019640 0.011402 0.036761 0.032857 0.031298 0.016352 0.078843 0.015603 0.015928 0.032301 0.029046 0.015430 0.166787 0.029715 0.018860 0.021767 0.063422 0.040064 0.015980 0.005913 0.110401 0.041508 0.000290 0.018874 0.086911 0.039487 0.157380 +0.168831 +0.030532 0.035498 0.033165 0.028497 0.015680 0.022358 0.009731 0.035881 0.029528 0.029163 0.015127 0.154982 0.015371 0.015996 0.028594 0.028372 0.014224 0.020632 0.026560 0.019706 0.020719 0.086911 0.041107 0.018408 0.006760 0.086911 0.041441 0.002173 0.020375 0.063422 0.040904 0.133891 +0.141328 +0.031730 0.037254 0.029794 0.031303 0.018527 0.100474 0.010441 0.036138 0.028856 0.030139 0.016374 0.109793 0.015627 0.016360 0.032406 0.029977 0.018772 0.103085 0.027221 0.019584 0.020770 0.063422 0.041499 0.014323 0.011014 0.180870 0.037715 0.001482 0.020952 0.133891 0.038262 0.204360 +0.294497 +0.028765 0.037084 0.031607 0.033715 0.018356 0.085942 0.011695 0.035661 0.028632 0.030277 0.014844 0.026403 0.016209 0.016121 0.029959 0.039969 0.018694 0.097300 0.029538 0.020357 0.020948 0.110401 0.039990 0.018293 0.009320 0.063422 0.037728 0.000093 0.020791 0.063422 0.039498 0.133891 +0.179367 +0.030461 0.037337 0.031539 0.032396 0.014306 0.246476 0.011675 0.036590 0.033171 0.029299 0.016167 0.024312 0.015776 0.016176 0.032139 0.033219 0.016236 0.078370 0.028890 0.020267 0.020466 0.063422 0.040000 0.013015 0.006755 0.110401 0.037590 0.001414 0.019068 0.086911 0.039587 0.157380 +0.447165 +0.028783 0.033073 0.030711 0.029323 0.018026 0.057341 0.011331 0.035343 0.030837 0.032728 0.015766 0.302641 0.015369 0.015866 0.028485 0.035153 0.017933 0.172985 0.027681 0.020474 0.023402 0.157380 0.041847 0.013589 0.011376 0.157380 0.041019 0.002040 0.019238 0.063422 0.038282 0.180870 +0.701154 +0.030419 0.038759 0.034222 0.030313 0.018432 0.134337 0.010465 0.037027 0.033095 0.030548 0.018614 0.092957 0.015840 0.016087 0.029936 0.029553 0.017172 0.047601 0.029682 0.020857 0.021128 0.110401 0.037682 0.013915 0.010585 0.063422 0.040083 0.000324 0.018944 0.086911 0.040720 0.133891 +0.283551 +0.032876 0.038913 0.028730 0.028802 0.015697 0.035850 0.011276 0.037422 0.029197 0.030012 0.016882 0.030134 0.015534 0.016006 0.028972 0.029346 0.017273 0.084634 0.026323 0.019586 0.020779 0.086911 0.039619 0.017516 0.006481 0.086911 0.039194 0.000370 0.020016 0.063422 0.039563 0.133891 +0.043981 +0.031439 0.035216 0.028700 0.036734 0.017631 0.062139 0.010590 0.036372 0.029844 0.028471 0.015508 0.048080 0.016287 0.016329 0.030165 0.030214 0.014418 0.049643 0.029846 0.019773 0.021074 0.063422 0.038623 0.018659 0.007782 0.063422 0.040436 0.000269 0.019741 0.086911 0.038273 0.157380 +0.058754 +0.031290 0.036768 0.029804 0.029030 0.014458 0.120119 0.009678 0.036144 0.032650 0.028836 0.015089 0.045992 0.016410 0.015535 0.034421 0.029213 0.014743 0.040683 0.025867 0.019548 0.019193 0.157380 0.041167 0.018139 0.009238 0.157380 0.039585 0.000650 0.020335 0.086911 0.040126 0.180870 +0.277766 +0.029761 0.039826 0.033308 0.031060 0.017475 0.044194 0.009803 0.036250 0.030661 0.035190 0.017042 0.091048 0.015739 0.015711 0.030506 0.034140 0.014778 0.074699 0.027665 0.020993 0.023466 0.086911 0.039661 0.017877 0.011130 0.110401 0.040037 0.000577 0.020192 0.086911 0.042080 0.133891 +0.159876 +0.031787 0.038993 0.028915 0.029492 0.014916 0.061474 0.010333 0.037482 0.029129 0.038329 0.017103 0.078763 0.015727 0.016028 0.030106 0.029001 0.015233 0.027659 0.028198 0.019212 0.022378 0.110401 0.039373 0.014384 0.012625 0.157380 0.041017 0.000215 0.020757 0.063422 0.038538 0.204360 +0.018540 +0.028413 0.035175 0.033661 0.028739 0.018642 0.025436 0.011005 0.036996 0.035281 0.029818 0.015334 0.020215 0.015991 0.015676 0.029038 0.031636 0.014101 0.019229 0.029067 0.019147 0.023406 0.133891 0.040872 0.013109 0.011780 0.133891 0.038678 0.000197 0.020363 0.086911 0.040786 0.204360 +0 +0.032585 0.034051 0.028811 0.028622 0.018652 0.072447 0.010278 0.037328 0.028720 0.028393 0.015804 0.043925 0.015565 0.016252 0.034680 0.029422 0.014934 0.154190 0.029776 0.020016 0.019495 0.133891 0.039474 0.012594 0.009088 0.157380 0.041491 0.000288 0.020440 0.086911 0.039385 0.180870 +0.311469 +0.032047 0.039676 0.030867 0.029040 0.018602 0.032700 0.011085 0.037369 0.031885 0.035196 0.018372 0.034822 0.016124 0.016322 0.029098 0.029140 0.018341 0.020313 0.029232 0.019221 0.019988 0.086911 0.038556 0.018262 0.012501 0.086911 0.038897 0.001828 0.019528 0.086911 0.038545 0.133891 +0.004245 +0.028590 0.034611 0.028806 0.028657 0.018226 0.043008 0.010104 0.037136 0.030492 0.029123 0.018413 0.091117 0.015857 0.015603 0.028341 0.028693 0.017989 0.120542 0.026470 0.021051 0.021444 0.133891 0.038222 0.015544 0.010341 0.110401 0.038141 0.001270 0.019661 0.110401 0.040124 0.157380 +0.303056 +0.029443 0.033306 0.028916 0.032619 0.018726 0.057395 0.011369 0.037463 0.028597 0.029240 0.014794 0.038513 0.015211 0.016398 0.030606 0.029700 0.015178 0.048012 0.026749 0.019076 0.021369 0.110401 0.042032 0.017338 0.005339 0.086911 0.037973 0.001966 0.020223 0.063422 0.042011 0.133891 +0.103078 +0.030732 0.036242 0.029226 0.030076 0.017416 0.029533 0.009651 0.037060 0.035285 0.039279 0.017624 0.044999 0.015844 0.016022 0.030090 0.029081 0.015021 0.099083 0.027614 0.020123 0.019987 0.110401 0.040858 0.013538 0.013065 0.063422 0.040166 0.002050 0.020024 0.086911 0.038367 0.133891 +0.108436 +0.030768 0.037367 0.032310 0.028334 0.015593 0.058345 0.010215 0.036497 0.033072 0.032788 0.017679 0.088228 0.015230 0.015709 0.029992 0.029250 0.016811 0.177560 0.026849 0.019755 0.022117 0.157380 0.039561 0.016148 0.006789 0.110401 0.042140 0.001072 0.021037 0.133891 0.041113 0.180870 +0.272792 +0.030527 0.038252 0.029922 0.029647 0.014670 0.045051 0.010208 0.035854 0.030511 0.032075 0.018744 0.032509 0.016154 0.016368 0.028932 0.028895 0.018126 0.031551 0.026940 0.021044 0.019435 0.110401 0.039841 0.017323 0.007161 0.086911 0.039657 0.000735 0.019167 0.110401 0.039996 0.157380 +0.027751 +0.029321 0.037962 0.028554 0.033588 0.016978 0.086656 0.009687 0.035239 0.028346 0.030013 0.017607 0.078005 0.015111 0.016398 0.030837 0.028277 0.016503 0.188530 0.027957 0.020107 0.020515 0.063422 0.037589 0.011876 0.006773 0.063422 0.038137 0.000439 0.019332 0.063422 0.041663 0.133891 +0.491448 +0.028768 0.039567 0.028327 0.033092 0.014359 0.048071 0.011735 0.036746 0.029419 0.031745 0.016281 0.065058 0.016376 0.016209 0.029120 0.031727 0.016633 0.133451 0.027325 0.020620 0.020233 0.110401 0.038965 0.016831 0.013335 0.110401 0.038727 0.001588 0.020520 0.063422 0.041048 0.133891 +0.311783 +0.032642 0.038855 0.028651 0.029011 0.016333 0.021793 0.009617 0.035925 0.030678 0.028521 0.015355 0.124383 0.015399 0.015660 0.028450 0.034372 0.018260 0.089065 0.028431 0.018994 0.022755 0.110401 0.040432 0.018307 0.004939 0.110401 0.038655 0.002094 0.018981 0.133891 0.038823 0.180870 +0.184226 +0.029179 0.037835 0.031076 0.031133 0.016838 0.030358 0.011035 0.036687 0.035151 0.028685 0.014101 0.079361 0.015984 0.015820 0.028904 0.029091 0.016800 0.027692 0.026624 0.020269 0.019347 0.086911 0.038489 0.013693 0.005372 0.086911 0.040145 0.000110 0.018959 0.086911 0.039983 0.133891 +0.082233 +0.031248 0.037676 0.029871 0.040019 0.014808 0.103861 0.010227 0.036618 0.028699 0.037703 0.015856 0.047935 0.015935 0.015852 0.029383 0.031418 0.016105 0.104950 0.028656 0.019181 0.022255 0.110401 0.040815 0.018567 0.012607 0.063422 0.037785 0.000764 0.020877 0.086911 0.041751 0.133891 +0.282206 +0.029095 0.037071 0.036277 0.029074 0.017120 0.197068 0.010558 0.036008 0.031079 0.029183 0.016688 0.058439 0.015530 0.016105 0.030121 0.028194 0.017419 0.019962 0.026668 0.020199 0.022221 0.063422 0.040897 0.011856 0.010309 0.063422 0.040958 0.000060 0.019064 0.063422 0.040253 0.133891 +0.347420 +0.031517 0.037188 0.028433 0.029157 0.017718 0.055323 0.011452 0.037265 0.029713 0.030222 0.016118 0.117152 0.015653 0.015708 0.029597 0.031420 0.018071 0.019653 0.026194 0.019813 0.022415 0.063422 0.038769 0.014394 0.009163 0.063422 0.040528 0.001008 0.021052 0.133891 0.042238 0.157380 +0.160527 +0.032754 0.034017 0.028270 0.028492 0.018114 0.053552 0.010172 0.036044 0.033502 0.029810 0.017782 0.034771 0.015186 0.016062 0.029993 0.028954 0.016938 0.116053 0.028101 0.021029 0.021755 0.133891 0.039576 0.013626 0.009451 0.086911 0.039877 0.001902 0.020673 0.086911 0.041550 0.157380 +0.174901 +0.031528 0.039162 0.028711 0.037104 0.018138 0.027412 0.010660 0.036106 0.032469 0.030491 0.017247 0.066079 0.015945 0.015796 0.031626 0.032155 0.016050 0.074357 0.028750 0.021095 0.020259 0.063422 0.040637 0.015718 0.006178 0.180870 0.038332 0.001192 0.019903 0.110401 0.040357 0.204360 +0.038315 +0.030322 0.039897 0.028862 0.032937 0.015781 0.065877 0.010627 0.035872 0.029307 0.029141 0.018367 0.277707 0.015488 0.015655 0.030531 0.028248 0.018268 0.052178 0.028535 0.020766 0.023328 0.086911 0.038774 0.014626 0.014078 0.110401 0.040106 0.000581 0.019887 0.086911 0.042000 0.157380 +0.459132 +0.030536 0.033533 0.029464 0.029176 0.015411 0.035615 0.009435 0.036800 0.028695 0.031666 0.016967 0.144625 0.015887 0.015916 0.030735 0.029284 0.018781 0.049453 0.028541 0.021059 0.018827 0.086911 0.039864 0.013373 0.004979 0.063422 0.039253 0.000164 0.020166 0.086911 0.041485 0.204360 +0.112409 +0.032521 0.039026 0.030061 0.029140 0.017929 0.076899 0.010549 0.036510 0.030068 0.029380 0.016542 0.046808 0.015846 0.015954 0.030023 0.030058 0.015003 0.187089 0.027105 0.018914 0.018944 0.157380 0.038932 0.016871 0.012942 0.157380 0.039055 0.000113 0.019633 0.157380 0.039722 0.204360 +0.348836 +0.030562 0.033503 0.028258 0.028881 0.014879 0.052912 0.011145 0.037502 0.030480 0.029835 0.014100 0.049990 0.016193 0.015671 0.029333 0.031707 0.014773 0.184286 0.027474 0.019259 0.022165 0.086911 0.041512 0.012817 0.012086 0.063422 0.040201 0.000015 0.019054 0.086911 0.041555 0.157380 +0.273291 +0.029193 0.036944 0.030434 0.033022 0.016758 0.113517 0.010717 0.036283 0.034296 0.028357 0.015477 0.135980 0.016383 0.016335 0.028205 0.031211 0.015011 0.260642 0.028847 0.020718 0.023457 0.110401 0.037695 0.017354 0.013050 0.110401 0.038120 0.001199 0.019531 0.063422 0.041145 0.157380 +0.727268 +0.031369 0.033166 0.028622 0.028569 0.015830 0.039228 0.010800 0.035590 0.028346 0.028219 0.016646 0.098003 0.015767 0.015679 0.028841 0.028814 0.015015 0.092317 0.027584 0.019074 0.019840 0.086911 0.041540 0.014372 0.008013 0.110401 0.040120 0.002027 0.020492 0.110401 0.041317 0.180870 +0.103241 +0.030438 0.035071 0.031849 0.029828 0.017330 0.246379 0.011540 0.035555 0.033025 0.028374 0.015570 0.078012 0.016260 0.015749 0.031383 0.028294 0.017415 0.101095 0.027874 0.020965 0.021225 0.180870 0.039362 0.012732 0.007967 0.133891 0.039937 0.001977 0.020946 0.063422 0.038165 0.204360 +0.489630 +0.030963 0.033105 0.035924 0.030213 0.014465 0.031573 0.010466 0.036587 0.030084 0.030340 0.017032 0.184715 0.015097 0.015602 0.029025 0.030305 0.014137 0.031995 0.028156 0.020739 0.020435 0.063422 0.041247 0.017359 0.008265 0.063422 0.042004 0.002150 0.019725 0.110401 0.041043 0.204360 +0.185714 +0.030444 0.039553 0.030987 0.029739 0.015606 0.121217 0.010813 0.035441 0.031189 0.028530 0.015469 0.048802 0.016259 0.016245 0.030756 0.030431 0.018372 0.101659 0.028731 0.020251 0.020658 0.110401 0.041278 0.014443 0.006208 0.133891 0.038849 0.000168 0.020863 0.063422 0.040078 0.180870 +0.163560 +0.030092 0.033382 0.031921 0.032870 0.017940 0.080150 0.011505 0.035953 0.028694 0.030599 0.017118 0.017050 0.016256 0.015643 0.029251 0.029675 0.018578 0.216807 0.027692 0.020646 0.021289 0.110401 0.041623 0.013876 0.010393 0.180870 0.039011 0.002299 0.019537 0.157380 0.037723 0.204360 +0.465824 +0.029268 0.034007 0.036874 0.029356 0.018166 0.169602 0.010891 0.036289 0.031158 0.029568 0.016259 0.105234 0.015729 0.015943 0.029276 0.031281 0.016561 0.063469 0.029103 0.020734 0.023335 0.086911 0.040374 0.018733 0.009731 0.110401 0.041731 0.002012 0.018903 0.086911 0.040653 0.133891 +0.325001 +0.031257 0.035395 0.029793 0.031176 0.017223 0.076195 0.010617 0.036746 0.029669 0.028610 0.016565 0.089514 0.015868 0.016134 0.033646 0.028547 0.017308 0.028234 0.028168 0.020645 0.022368 0.063422 0.038930 0.016186 0.009027 0.086911 0.039567 0.000010 0.020212 0.063422 0.037894 0.133891 +0.145180 +0.030034 0.039578 0.030736 0.032071 0.017342 0.086490 0.010205 0.035311 0.030799 0.031292 0.016390 0.225235 0.015248 0.015778 0.028540 0.032878 0.018030 0.050547 0.025798 0.019109 0.020667 0.157380 0.038864 0.016960 0.012552 0.110401 0.040734 0.000671 0.020761 0.180870 0.041110 0.204360 +0.358540 +0.031167 0.036623 0.032199 0.029557 0.014992 0.048201 0.010729 0.036976 0.032051 0.034361 0.016769 0.125143 0.016259 0.016144 0.032306 0.031364 0.014762 0.080459 0.027636 0.020401 0.019938 0.110401 0.039173 0.014482 0.006333 0.133891 0.040324 0.002172 0.019462 0.133891 0.041520 0.180870 +0.274399 +0.028712 0.034710 0.028322 0.034487 0.017122 0.055382 0.011348 0.035461 0.028209 0.032525 0.014729 0.020148 0.016228 0.016437 0.028669 0.029157 0.015327 0.018895 0.028651 0.019999 0.021520 0.063422 0.038653 0.018224 0.011795 0.086911 0.040292 0.000510 0.020833 0.133891 0.040296 0.180870 +0 +0.030143 0.033592 0.030192 0.039308 0.016289 0.042721 0.011695 0.037406 0.032603 0.030973 0.014368 0.111034 0.015812 0.015932 0.029397 0.029679 0.016211 0.065623 0.028289 0.019589 0.020319 0.063422 0.041343 0.017038 0.014088 0.063422 0.040056 0.001366 0.019769 0.110401 0.039704 0.157380 +0.127426 +0.029170 0.037816 0.028907 0.029538 0.016171 0.043601 0.010255 0.037469 0.029582 0.030877 0.017140 0.133347 0.016079 0.015723 0.031862 0.028417 0.016883 0.184910 0.029354 0.020574 0.022954 0.133891 0.039923 0.011899 0.009174 0.133891 0.039820 0.000975 0.020163 0.063422 0.041574 0.204360 +0.400581 +0.030762 0.038867 0.028332 0.028199 0.016041 0.220217 0.009469 0.036986 0.032076 0.030108 0.016348 0.063665 0.015987 0.016322 0.031565 0.028799 0.015743 0.027434 0.029869 0.019390 0.022937 0.110401 0.037879 0.013407 0.008058 0.110401 0.041485 0.000605 0.020466 0.063422 0.040181 0.133891 +0.533118 +0.029966 0.033311 0.028945 0.028851 0.016544 0.060927 0.010629 0.035929 0.029973 0.028882 0.017873 0.088312 0.016253 0.015919 0.028619 0.037675 0.014655 0.076111 0.026374 0.019824 0.022990 0.133891 0.040964 0.012758 0.007260 0.086911 0.038645 0.001855 0.019326 0.157380 0.040141 0.180870 +0.300246 +0.031972 0.034386 0.030670 0.028914 0.015911 0.032920 0.010262 0.036792 0.029328 0.031890 0.014821 0.024862 0.015485 0.015631 0.034576 0.028396 0.014511 0.032889 0.028718 0.019655 0.020537 0.157380 0.039538 0.013437 0.005442 0.180870 0.039425 0.000153 0.018828 0.180870 0.038526 0.204360 +0.001807 +0.030544 0.035218 0.029945 0.028441 0.017157 0.284595 0.011526 0.036245 0.031613 0.038705 0.016163 0.301611 0.015538 0.016299 0.029061 0.036280 0.016605 0.117737 0.029974 0.020274 0.020968 0.157380 0.041987 0.015383 0.010902 0.063422 0.038006 0.000462 0.020725 0.157380 0.040616 0.180870 +0.765355 +0.030682 0.036200 0.028667 0.028660 0.015757 0.091352 0.009921 0.035642 0.028876 0.029535 0.016939 0.026538 0.015663 0.015867 0.028699 0.033095 0.015975 0.018957 0.026192 0.020161 0.023030 0.110401 0.041901 0.013217 0.011373 0.086911 0.040431 0.001774 0.019767 0.063422 0.041661 0.157380 +0.031996 +0.032344 0.039312 0.028575 0.028689 0.015742 0.048586 0.009613 0.037282 0.034396 0.029255 0.017574 0.030458 0.015431 0.016042 0.036109 0.028982 0.016067 0.062692 0.027409 0.019869 0.021575 0.110401 0.041088 0.015338 0.005929 0.133891 0.040436 0.002346 0.019996 0.133891 0.039722 0.204360 +0.006886 +0.030100 0.036229 0.028954 0.029165 0.017581 0.094060 0.010282 0.037288 0.029673 0.031344 0.016100 0.086424 0.016384 0.015707 0.033782 0.029032 0.018379 0.034024 0.028742 0.019931 0.021701 0.063422 0.037740 0.017822 0.008650 0.157380 0.038825 0.000665 0.021062 0.086911 0.041483 0.204360 +0.218623 +0.032659 0.037122 0.030630 0.029245 0.014510 0.110110 0.010641 0.036141 0.030132 0.033085 0.015688 0.056936 0.015657 0.016376 0.028220 0.032214 0.016718 0.049614 0.028627 0.019233 0.022882 0.157380 0.040623 0.014151 0.013150 0.110401 0.038776 0.000207 0.019912 0.133891 0.042074 0.180870 +0.226170 +0.029979 0.036775 0.028326 0.031076 0.014917 0.035741 0.011596 0.035783 0.031183 0.034197 0.016216 0.052097 0.015874 0.015706 0.031928 0.030287 0.018166 0.081775 0.029594 0.019664 0.022422 0.157380 0.041661 0.013991 0.013831 0.157380 0.037978 0.000968 0.020735 0.133891 0.040581 0.204360 +0.062880 +0.030004 0.037927 0.029201 0.028506 0.017115 0.026807 0.009611 0.037287 0.028476 0.029173 0.014355 0.088321 0.016390 0.015605 0.028333 0.028917 0.014393 0.229983 0.028359 0.019555 0.022501 0.063422 0.039600 0.017005 0.013590 0.157380 0.041072 0.001214 0.020578 0.063422 0.037972 0.204360 +0.428952 +0.032249 0.038338 0.033924 0.029666 0.016365 0.229432 0.011088 0.036900 0.029444 0.029421 0.015195 0.111126 0.016203 0.016319 0.029469 0.028974 0.017759 0.023148 0.028825 0.020535 0.021468 0.086911 0.042181 0.018234 0.008995 0.110401 0.041635 0.000636 0.019182 0.133891 0.039589 0.157380 +0.371425 +0.031928 0.033225 0.028911 0.028416 0.016232 0.074240 0.011596 0.036511 0.030102 0.032585 0.017542 0.071192 0.015869 0.016266 0.031499 0.029430 0.016071 0.089941 0.027431 0.020559 0.018979 0.157380 0.038405 0.018180 0.010564 0.110401 0.040807 0.000587 0.018918 0.063422 0.039905 0.180870 +0.201089 +0.032124 0.035120 0.029506 0.028616 0.016440 0.022774 0.010665 0.036797 0.029026 0.031417 0.015337 0.063240 0.015814 0.016294 0.029270 0.028643 0.017866 0.024714 0.025820 0.019565 0.019579 0.133891 0.041443 0.013852 0.011499 0.063422 0.041443 0.001483 0.019121 0.086911 0.039964 0.180870 +0.006402 +0.030075 0.035596 0.031990 0.032023 0.018737 0.056067 0.009955 0.036126 0.033753 0.031685 0.015873 0.084793 0.015818 0.016435 0.034648 0.032863 0.018191 0.078629 0.028507 0.020912 0.019570 0.063422 0.039656 0.012221 0.010092 0.086911 0.038694 0.000618 0.020395 0.110401 0.040081 0.157380 +0.177599 +0.032871 0.035772 0.035653 0.028273 0.016373 0.145149 0.011210 0.036725 0.033788 0.029986 0.014347 0.020733 0.015085 0.016327 0.033238 0.028643 0.017860 0.043661 0.029891 0.019787 0.020865 0.086911 0.038035 0.015974 0.009033 0.180870 0.038376 0.001965 0.020064 0.086911 0.040065 0.204360 +0.095216 +0.029470 0.034849 0.029405 0.036507 0.014902 0.047814 0.011158 0.037415 0.034895 0.031552 0.018461 0.048970 0.015946 0.016409 0.029128 0.029807 0.015219 0.027079 0.029274 0.018949 0.020606 0.063422 0.041696 0.012132 0.009643 0.110401 0.041372 0.001723 0.019679 0.133891 0.038534 0.180870 +0.004082 +0.032111 0.038476 0.030988 0.035798 0.018687 0.028020 0.009486 0.037443 0.028574 0.029278 0.014633 0.105560 0.015961 0.015627 0.029305 0.030504 0.017067 0.162394 0.029076 0.020092 0.022080 0.110401 0.039423 0.015230 0.013581 0.110401 0.038799 0.001654 0.020167 0.086911 0.039713 0.133891 +0.320028 +0.031323 0.036754 0.028728 0.030094 0.016635 0.072757 0.011019 0.035951 0.028798 0.031084 0.017537 0.111865 0.016287 0.016288 0.030458 0.031424 0.017633 0.065612 0.027426 0.020371 0.019137 0.110401 0.039669 0.018228 0.008074 0.110401 0.040586 0.000753 0.020081 0.086911 0.037895 0.180870 +0.199844 +0.028345 0.036014 0.028241 0.033101 0.015529 0.061190 0.011731 0.036130 0.031788 0.031860 0.018207 0.036986 0.016353 0.015687 0.029334 0.030681 0.015201 0.049902 0.025685 0.019184 0.023180 0.157380 0.041745 0.014085 0.012994 0.086911 0.038342 0.000378 0.018985 0.063422 0.039980 0.180870 +0.042072 +0.031378 0.034430 0.030210 0.029521 0.017440 0.110717 0.010281 0.037436 0.029118 0.031746 0.016543 0.137716 0.015730 0.016139 0.030114 0.029096 0.014094 0.030852 0.028394 0.020059 0.020437 0.063422 0.038230 0.013185 0.006264 0.063422 0.039972 0.000700 0.020421 0.133891 0.041057 0.204360 +0.301228 +0.030249 0.036068 0.034869 0.033489 0.015945 0.076013 0.011052 0.036210 0.032794 0.032324 0.016014 0.214483 0.016296 0.015696 0.028757 0.029853 0.015353 0.057531 0.028576 0.020438 0.020690 0.110401 0.038281 0.015654 0.008951 0.110401 0.039974 0.002274 0.020448 0.157380 0.038404 0.204360 +0.373250 +0.029638 0.034934 0.029252 0.034463 0.016189 0.022958 0.009477 0.036486 0.030276 0.030106 0.014562 0.033571 0.016392 0.015942 0.030628 0.028604 0.017767 0.027989 0.026632 0.020165 0.019562 0.133891 0.038948 0.012872 0.013122 0.110401 0.038342 0.001142 0.019958 0.157380 0.037712 0.204360 +0 +0.030119 0.035745 0.028241 0.030078 0.014971 0.016625 0.010681 0.036758 0.028708 0.028571 0.018750 0.073282 0.016341 0.015816 0.037873 0.033299 0.015888 0.044536 0.029448 0.019839 0.021104 0.063422 0.041033 0.013493 0.013301 0.086911 0.041708 0.001663 0.020344 0.110401 0.038975 0.133891 +0.057400 +0.031634 0.036720 0.035448 0.029158 0.017923 0.101772 0.010848 0.035377 0.030013 0.028576 0.018217 0.048569 0.015324 0.016403 0.028447 0.031547 0.016834 0.081559 0.029976 0.019732 0.022845 0.157380 0.042144 0.017690 0.013874 0.086911 0.041022 0.000486 0.020806 0.063422 0.039243 0.180870 +0.177233 +0.028213 0.038824 0.030298 0.028429 0.016976 0.082924 0.010009 0.036744 0.029155 0.030722 0.014134 0.053146 0.016284 0.016250 0.030485 0.033591 0.016308 0.192068 0.027608 0.019035 0.021551 0.133891 0.039532 0.018494 0.006710 0.110401 0.039726 0.001560 0.019010 0.133891 0.041808 0.157380 +0.449464 +0.028207 0.035337 0.028453 0.031924 0.014552 0.045199 0.010165 0.037545 0.028927 0.031439 0.018139 0.021700 0.015576 0.016235 0.030861 0.036153 0.015753 0.042705 0.028494 0.019055 0.018863 0.086911 0.040278 0.017560 0.010321 0.086911 0.038521 0.000231 0.021077 0.086911 0.040494 0.157380 +0.001471 +0.029377 0.033025 0.040116 0.029293 0.014688 0.051540 0.010856 0.036829 0.028798 0.032131 0.016427 0.065545 0.015483 0.015735 0.030894 0.029019 0.015819 0.026057 0.027647 0.020025 0.020801 0.133891 0.041197 0.015569 0.010974 0.063422 0.042125 0.000402 0.020743 0.086911 0.037969 0.157380 +0.043742 +0.030337 0.033629 0.028245 0.029658 0.014287 0.020696 0.011644 0.037147 0.029236 0.028627 0.016465 0.050745 0.016221 0.015826 0.028982 0.028926 0.016474 0.086299 0.028779 0.019382 0.022665 0.133891 0.042211 0.017969 0.005152 0.157380 0.039836 0.001310 0.018961 0.133891 0.040970 0.180870 +0.048563 +0.028327 0.038790 0.028454 0.029458 0.014970 0.108881 0.011210 0.035957 0.028662 0.029553 0.018096 0.085137 0.015669 0.016142 0.033493 0.028509 0.014327 0.023815 0.029933 0.020670 0.022289 0.063422 0.042062 0.018709 0.012211 0.157380 0.042200 0.002187 0.018886 0.086911 0.039008 0.180870 +0.231954 +0.030410 0.037434 0.033473 0.030057 0.017949 0.097129 0.010459 0.036682 0.031042 0.028380 0.015885 0.146079 0.015784 0.016175 0.030957 0.029614 0.014251 0.048580 0.027959 0.020345 0.019254 0.180870 0.040694 0.017333 0.011726 0.157380 0.038852 0.000342 0.020690 0.133891 0.039417 0.204360 +0.290941 +0.030934 0.037997 0.028674 0.031854 0.016245 0.071130 0.010083 0.036957 0.032542 0.029219 0.014389 0.019997 0.015769 0.015760 0.029686 0.028188 0.016561 0.030895 0.025797 0.020265 0.020668 0.180870 0.042092 0.017159 0.012271 0.086911 0.038428 0.000311 0.020660 0.110401 0.038673 0.204360 +0.012767 +0.029634 0.039108 0.028611 0.029229 0.016661 0.151884 0.010708 0.035921 0.036337 0.039051 0.016726 0.108493 0.015879 0.015659 0.029422 0.030203 0.015266 0.038094 0.027398 0.019633 0.020922 0.133891 0.041388 0.017737 0.011991 0.110401 0.042162 0.001035 0.019193 0.133891 0.039051 0.157380 +0.342094 +0.029134 0.033679 0.031191 0.034367 0.017567 0.017662 0.011374 0.036210 0.028596 0.029241 0.014244 0.022474 0.015325 0.016093 0.031277 0.029954 0.017044 0.062817 0.027947 0.021092 0.022757 0.063422 0.039693 0.018233 0.011219 0.063422 0.039644 0.000783 0.019117 0.063422 0.041899 0.133891 +0.004193 +0.030157 0.035822 0.028898 0.029736 0.018089 0.032219 0.009508 0.035358 0.030918 0.028276 0.018213 0.028519 0.016298 0.015567 0.035000 0.028946 0.015644 0.109581 0.028484 0.020719 0.021572 0.110401 0.039550 0.018684 0.007032 0.110401 0.039534 0.000462 0.019406 0.110401 0.039765 0.133891 +0.148660 +0.032851 0.039116 0.031884 0.028204 0.016129 0.050091 0.010424 0.037343 0.028870 0.032955 0.016125 0.108625 0.016075 0.015936 0.032931 0.031301 0.016012 0.033435 0.030607 0.020188 0.019631 0.063422 0.042168 0.012661 0.008508 0.086911 0.039859 0.000328 0.019990 0.157380 0.041575 0.180870 +0.080590 +0.031296 0.034976 0.029385 0.034186 0.014247 0.082426 0.010141 0.035755 0.028373 0.037844 0.014895 0.148370 0.016075 0.016114 0.029065 0.030372 0.017544 0.082334 0.028925 0.019341 0.021833 0.110401 0.038867 0.014511 0.012695 0.133891 0.039329 0.001489 0.019726 0.086911 0.041732 0.157380 +0.335416 +0.031590 0.037223 0.028833 0.029009 0.016767 0.021324 0.010644 0.036130 0.028773 0.028938 0.017122 0.092730 0.015977 0.015915 0.028600 0.028638 0.015855 0.087458 0.028329 0.018885 0.022587 0.157380 0.039041 0.017253 0.012163 0.063422 0.042028 0.000776 0.019105 0.133891 0.038269 0.204360 +0.131110 +0.030136 0.038375 0.029325 0.028566 0.018479 0.233058 0.011206 0.036643 0.030412 0.028433 0.018288 0.052095 0.016094 0.016250 0.028720 0.028404 0.014749 0.091021 0.029490 0.018932 0.018885 0.063422 0.038035 0.016317 0.012555 0.180870 0.039658 0.001399 0.018951 0.157380 0.037978 0.204360 +0.505589 +0.030921 0.033619 0.030815 0.030942 0.014916 0.022218 0.010022 0.037226 0.030034 0.034532 0.016967 0.050996 0.015662 0.015564 0.028191 0.028241 0.016707 0.165005 0.027506 0.020506 0.021015 0.133891 0.040694 0.017599 0.013666 0.110401 0.038740 0.001251 0.020923 0.086911 0.040186 0.204360 +0.142708 +0.030137 0.035697 0.029733 0.028291 0.018002 0.022915 0.010646 0.037166 0.029917 0.031730 0.015977 0.016720 0.016251 0.015979 0.029262 0.028241 0.014385 0.059888 0.028158 0.020469 0.021924 0.063422 0.037893 0.016270 0.009793 0.086911 0.040720 0.001482 0.019363 0.110401 0.039276 0.180870 +0 +0.032845 0.035401 0.031749 0.032538 0.018034 0.049864 0.011007 0.036928 0.031711 0.034273 0.017346 0.021042 0.015140 0.016214 0.030263 0.029077 0.015538 0.061100 0.028495 0.021127 0.020647 0.063422 0.037972 0.016765 0.005168 0.063422 0.039623 0.001094 0.020333 0.110401 0.039881 0.133891 +0.023466 +0.031706 0.037041 0.029511 0.032209 0.017898 0.222573 0.010442 0.035443 0.033146 0.028260 0.017452 0.044575 0.015638 0.015843 0.029616 0.029116 0.014642 0.041619 0.028969 0.020362 0.019548 0.110401 0.037723 0.017542 0.004931 0.086911 0.038473 0.001536 0.019581 0.063422 0.037800 0.133891 +0.469656 +0.030965 0.035881 0.028209 0.030230 0.014404 0.121818 0.011129 0.035394 0.036084 0.029248 0.015928 0.020714 0.016395 0.016033 0.032215 0.028238 0.016285 0.128732 0.030289 0.019808 0.021865 0.133891 0.041161 0.011980 0.013006 0.063422 0.039633 0.000508 0.019074 0.133891 0.038953 0.157380 +0.367331 +0.032418 0.035862 0.029009 0.032061 0.017502 0.090030 0.009469 0.036876 0.031131 0.029811 0.014764 0.152546 0.015545 0.015752 0.031035 0.029350 0.015672 0.130850 0.027353 0.019851 0.023307 0.180870 0.041859 0.013177 0.007796 0.180870 0.038759 0.000349 0.020718 0.180870 0.042220 0.204360 +0.455725 +0.032450 0.036569 0.030350 0.028196 0.016899 0.037983 0.010401 0.036228 0.035098 0.034569 0.016556 0.028638 0.016365 0.015834 0.030285 0.030199 0.016216 0.023896 0.027512 0.019774 0.023304 0.086911 0.038177 0.017650 0.012147 0.180870 0.039588 0.000098 0.021049 0.180870 0.038308 0.204360 +0 +0.032098 0.037397 0.031196 0.028287 0.018721 0.111144 0.011655 0.037216 0.036562 0.028400 0.018501 0.105421 0.015047 0.015978 0.028302 0.028907 0.017613 0.089494 0.026510 0.019433 0.019314 0.133891 0.039091 0.015661 0.010552 0.110401 0.040544 0.000644 0.019692 0.133891 0.041025 0.157380 +0.347089 +0.032129 0.037218 0.029854 0.029772 0.018294 0.045741 0.011028 0.035631 0.028919 0.029124 0.016198 0.438274 0.015852 0.015834 0.030639 0.032045 0.018216 0.078064 0.027601 0.019811 0.019256 0.110401 0.042010 0.015703 0.008301 0.086911 0.039155 0.000039 0.020121 0.086911 0.039831 0.133891 +0.743930 +0.031449 0.035225 0.034308 0.028513 0.015815 0.100354 0.009989 0.036306 0.028288 0.031459 0.017699 0.043854 0.016215 0.015678 0.030542 0.031492 0.016826 0.044921 0.028226 0.018906 0.021341 0.063422 0.040393 0.014057 0.009750 0.086911 0.038280 0.000710 0.020468 0.086911 0.040754 0.133891 +0.058220 +0.029093 0.033551 0.031264 0.031053 0.014154 0.111489 0.010199 0.035311 0.038762 0.030993 0.018682 0.043025 0.015324 0.016131 0.029391 0.030981 0.018473 0.021619 0.028389 0.020728 0.020577 0.086911 0.040102 0.013014 0.006143 0.110401 0.038309 0.000238 0.019985 0.180870 0.038432 0.204360 +0.021763 +0.028666 0.034814 0.029935 0.030018 0.018560 0.239407 0.010128 0.037130 0.028648 0.030429 0.018759 0.030747 0.015438 0.016048 0.030951 0.032885 0.015119 0.102487 0.027703 0.019461 0.022523 0.110401 0.040779 0.015989 0.009623 0.110401 0.040767 0.000573 0.019486 0.110401 0.040178 0.133891 +0.458289 +0.030820 0.035938 0.028783 0.029872 0.014161 0.028799 0.010744 0.036455 0.032591 0.030167 0.017136 0.031692 0.015671 0.015920 0.030902 0.030542 0.018501 0.062873 0.028764 0.020884 0.022389 0.133891 0.039318 0.014233 0.013757 0.063422 0.038454 0.001699 0.021050 0.110401 0.040020 0.157380 +0.040257 +0.029203 0.038717 0.028773 0.029278 0.018673 0.211529 0.011733 0.035389 0.036303 0.029891 0.015095 0.119431 0.015840 0.016425 0.029619 0.032801 0.014638 0.108435 0.026072 0.019889 0.019313 0.086911 0.041508 0.013905 0.006559 0.133891 0.039710 0.001533 0.019134 0.063422 0.040465 0.157380 +0.598718 +0.032820 0.037206 0.029522 0.030818 0.014695 0.225281 0.010446 0.036853 0.037996 0.036013 0.018128 0.101462 0.015611 0.016304 0.030969 0.028261 0.018034 0.032574 0.027521 0.019192 0.021559 0.110401 0.041040 0.012926 0.009051 0.157380 0.039679 0.001557 0.020434 0.180870 0.038611 0.204360 +0.495046 +0.029464 0.039689 0.028925 0.039334 0.016126 0.074350 0.010514 0.035776 0.028341 0.033866 0.017977 0.044918 0.015259 0.015678 0.028357 0.028553 0.014457 0.298248 0.027218 0.019111 0.019603 0.086911 0.040089 0.012410 0.009382 0.133891 0.040276 0.000157 0.018797 0.157380 0.040114 0.204360 +0.555141 +0.031291 0.036186 0.030453 0.034023 0.014454 0.074351 0.009868 0.037472 0.029430 0.030782 0.016104 0.106923 0.015453 0.015906 0.030901 0.029596 0.017001 0.073884 0.029706 0.020638 0.022510 0.110401 0.039291 0.017017 0.013061 0.110401 0.039315 0.000526 0.020793 0.110401 0.037910 0.180870 +0.195294 +0.029393 0.035264 0.030161 0.028237 0.016532 0.062683 0.009725 0.037505 0.032078 0.030394 0.015664 0.039695 0.015686 0.016045 0.029636 0.033425 0.017198 0.034547 0.030237 0.020737 0.023113 0.063422 0.038130 0.012178 0.013679 0.110401 0.038707 0.002271 0.021053 0.086911 0.038365 0.180870 +0 +0.032662 0.033248 0.028940 0.032614 0.014581 0.080795 0.010651 0.037186 0.030296 0.030861 0.017040 0.025502 0.015530 0.016134 0.030649 0.029928 0.017668 0.041354 0.029313 0.020178 0.020906 0.110401 0.040820 0.016244 0.009993 0.086911 0.037897 0.000252 0.020627 0.086911 0.041289 0.180870 +0.074221 +0.030966 0.038710 0.028503 0.028974 0.014324 0.023964 0.010963 0.037362 0.029166 0.031861 0.017406 0.029061 0.016041 0.015511 0.028548 0.029390 0.017221 0.028598 0.028800 0.019712 0.018976 0.133891 0.041981 0.015111 0.009968 0.133891 0.040983 0.001275 0.019673 0.110401 0.041643 0.157380 +0.006090 +0.028542 0.038306 0.029379 0.034415 0.014401 0.043525 0.010843 0.037560 0.029489 0.029518 0.014333 0.023510 0.016179 0.015642 0.030332 0.033370 0.017987 0.182562 0.027102 0.019155 0.022167 0.063422 0.041886 0.011834 0.004700 0.063422 0.038991 0.002048 0.019406 0.157380 0.039154 0.180870 +0.133013 +0.030854 0.034981 0.028653 0.029620 0.018243 0.030338 0.010143 0.036463 0.033259 0.036007 0.017610 0.061188 0.015608 0.015759 0.030201 0.029752 0.015269 0.022224 0.030041 0.019211 0.020185 0.063422 0.040924 0.012098 0.010292 0.110401 0.037912 0.001470 0.019751 0.110401 0.041284 0.180870 +0.004928 +0.029592 0.034039 0.029902 0.031103 0.014527 0.046262 0.010316 0.035283 0.029252 0.029725 0.015004 0.121286 0.015724 0.016021 0.031068 0.036898 0.016740 0.022924 0.028798 0.020926 0.019716 0.086911 0.040934 0.017303 0.006121 0.110401 0.042039 0.000749 0.020280 0.133891 0.039293 0.157380 +0.126334 +0.031311 0.037522 0.029782 0.030473 0.018206 0.085017 0.011620 0.036823 0.030632 0.030298 0.017218 0.126404 0.016354 0.015935 0.030913 0.029876 0.017223 0.023084 0.028477 0.019798 0.019598 0.110401 0.038400 0.011745 0.010907 0.110401 0.039247 0.000620 0.019177 0.063422 0.037879 0.133891 +0.314720 +0.029887 0.035253 0.028482 0.028547 0.015481 0.036225 0.009636 0.036527 0.044639 0.029520 0.017613 0.031550 0.016366 0.016098 0.033284 0.031436 0.017881 0.048170 0.028545 0.020334 0.018941 0.157380 0.037799 0.014377 0.013615 0.133891 0.039469 0.001104 0.020108 0.133891 0.041566 0.180870 +0.013988 +0.032829 0.033156 0.030727 0.028790 0.014768 0.032276 0.010913 0.036879 0.035069 0.028609 0.017736 0.128151 0.015894 0.016289 0.032139 0.028495 0.017699 0.022247 0.028615 0.019877 0.022440 0.180870 0.040097 0.017204 0.007072 0.086911 0.041576 0.002289 0.019366 0.086911 0.041904 0.204360 +0.070293 +0.032531 0.038210 0.031680 0.032829 0.016203 0.024440 0.011088 0.035814 0.029245 0.031080 0.016967 0.076890 0.015626 0.016233 0.029280 0.032317 0.018680 0.037410 0.029861 0.020828 0.020808 0.063422 0.039776 0.013292 0.008944 0.086911 0.039379 0.001130 0.018849 0.133891 0.038840 0.180870 +0.012213 +0.028354 0.036736 0.029207 0.033453 0.014223 0.037629 0.010568 0.036420 0.032287 0.028408 0.016020 0.075285 0.015591 0.016342 0.028435 0.035318 0.015280 0.048748 0.028362 0.019460 0.019654 0.063422 0.040048 0.013437 0.006504 0.110401 0.039167 0.000016 0.020336 0.110401 0.041186 0.133891 +0.135962 +0.029878 0.039168 0.029453 0.028312 0.017967 0.126048 0.011659 0.035901 0.031545 0.029272 0.018676 0.025438 0.015138 0.016108 0.029102 0.028463 0.014577 0.053139 0.028525 0.019544 0.022872 0.133891 0.041176 0.013467 0.011336 0.063422 0.037759 0.001757 0.020141 0.063422 0.042176 0.157380 +0.071359 +0.030706 0.039911 0.030027 0.031558 0.015548 0.023985 0.010289 0.037413 0.033573 0.032736 0.014369 0.049464 0.016131 0.016222 0.030921 0.030151 0.016378 0.034640 0.026941 0.018793 0.021011 0.063422 0.040696 0.011911 0.009344 0.133891 0.038429 0.001514 0.020280 0.110401 0.041012 0.180870 +0.001222 +0.032839 0.039405 0.028923 0.028809 0.014369 0.017466 0.010861 0.036158 0.030368 0.034121 0.016388 0.029635 0.015660 0.015783 0.031485 0.031651 0.017176 0.030130 0.028393 0.020218 0.023184 0.086911 0.041067 0.013639 0.009107 0.063422 0.041203 0.001211 0.019226 0.157380 0.041208 0.180870 +0 +0.030221 0.037353 0.030354 0.031889 0.014862 0.153894 0.010456 0.036717 0.029522 0.030757 0.014375 0.216119 0.015191 0.015841 0.028870 0.028236 0.016700 0.030453 0.027946 0.020460 0.021175 0.086911 0.037700 0.012446 0.013610 0.086911 0.041099 0.000639 0.018860 0.063422 0.037895 0.133891 +0.547463 +0.031799 0.039595 0.029433 0.030046 0.017911 0.125399 0.010671 0.036977 0.030734 0.028409 0.014592 0.029519 0.016055 0.016216 0.033712 0.032296 0.016737 0.113948 0.029129 0.021094 0.023310 0.110401 0.037785 0.017587 0.010106 0.063422 0.038978 0.001655 0.020348 0.110401 0.038933 0.133891 +0.363911 +0.030087 0.037323 0.032163 0.028709 0.015695 0.035170 0.011408 0.035545 0.029048 0.028479 0.018221 0.045036 0.015073 0.016115 0.030710 0.028241 0.016639 0.038691 0.028877 0.019581 0.019960 0.110401 0.041188 0.017261 0.008641 0.063422 0.041183 0.000661 0.019218 0.086911 0.042025 0.180870 +0.002243 +0.030106 0.036364 0.034845 0.028951 0.016769 0.056525 0.010271 0.036434 0.029926 0.028313 0.017695 0.098089 0.015909 0.015701 0.030223 0.031682 0.018687 0.212979 0.028448 0.019327 0.020841 0.133891 0.042035 0.012898 0.013415 0.063422 0.041190 0.001244 0.018904 0.110401 0.038074 0.180870 +0.460382 +0.029967 0.035604 0.029506 0.033809 0.015411 0.051964 0.010080 0.036097 0.028413 0.028645 0.016359 0.177704 0.016051 0.016186 0.030465 0.042877 0.016275 0.128682 0.028524 0.020310 0.021273 0.157380 0.042194 0.016611 0.008381 0.110401 0.041091 0.000040 0.019144 0.086911 0.041928 0.180870 +0.352194 +0.028286 0.034036 0.029935 0.028249 0.016867 0.130229 0.010451 0.036939 0.028807 0.030427 0.016067 0.024639 0.015297 0.015637 0.028642 0.028562 0.015377 0.090197 0.027812 0.020372 0.020701 0.063422 0.040096 0.011994 0.004812 0.110401 0.041875 0.001994 0.019532 0.086911 0.039481 0.133891 +0.383127 +0.031695 0.037156 0.030153 0.028275 0.016852 0.096076 0.010982 0.037487 0.028683 0.030696 0.016345 0.061206 0.015091 0.015853 0.032109 0.030055 0.018469 0.025589 0.028968 0.019049 0.023096 0.157380 0.041795 0.017624 0.009597 0.180870 0.038060 0.001282 0.020431 0.133891 0.037683 0.204360 +0.070957 +0.030634 0.038625 0.028871 0.035545 0.018545 0.069255 0.011265 0.035795 0.029665 0.031521 0.017673 0.098647 0.015140 0.015902 0.028969 0.030420 0.018059 0.032797 0.028429 0.019190 0.021378 0.110401 0.039206 0.014091 0.010621 0.086911 0.041435 0.001200 0.020094 0.086911 0.040782 0.133891 +0.214189 +0.029329 0.035795 0.029368 0.036066 0.017424 0.056700 0.011031 0.035833 0.029655 0.029084 0.018307 0.103545 0.016071 0.015852 0.031688 0.029550 0.017947 0.087933 0.026324 0.020804 0.023299 0.063422 0.038077 0.012208 0.008649 0.086911 0.038182 0.002135 0.019289 0.110401 0.041448 0.133891 +0.324665 +0.032166 0.038249 0.033441 0.029916 0.014998 0.017815 0.010094 0.035835 0.031359 0.032711 0.016945 0.021682 0.016226 0.015509 0.028687 0.028457 0.015608 0.038075 0.028291 0.019307 0.019255 0.063422 0.041917 0.015083 0.010336 0.133891 0.040093 0.001687 0.018917 0.133891 0.041355 0.204360 +0 +0.032704 0.035314 0.028465 0.028390 0.018578 0.028636 0.011553 0.036530 0.028896 0.028464 0.017233 0.033503 0.016394 0.015778 0.031621 0.030121 0.014355 0.048105 0.029148 0.019486 0.019122 0.063422 0.039833 0.016948 0.009040 0.063422 0.039135 0.001502 0.019421 0.110401 0.040833 0.133891 +0.007593 +0.031578 0.037670 0.035798 0.028593 0.014673 0.100839 0.010294 0.036220 0.028280 0.031233 0.016196 0.106493 0.016176 0.015507 0.028333 0.032537 0.014384 0.111191 0.029167 0.020734 0.023181 0.133891 0.041328 0.014193 0.012412 0.086911 0.040823 0.002146 0.021081 0.133891 0.041877 0.157380 +0.283458 +0.031731 0.033222 0.029094 0.028434 0.016209 0.396328 0.010232 0.035961 0.028303 0.028977 0.014884 0.118803 0.015831 0.015533 0.030276 0.028288 0.017313 0.043715 0.027789 0.020327 0.020587 0.063422 0.042050 0.016571 0.008173 0.110401 0.039984 0.000271 0.020854 0.086911 0.041309 0.133891 +0.608654 +0.030351 0.036028 0.030140 0.030867 0.015347 0.064199 0.009771 0.036121 0.028524 0.028387 0.014631 0.024058 0.015944 0.015832 0.028461 0.028789 0.014367 0.120979 0.027661 0.020346 0.019541 0.110401 0.041325 0.012988 0.006002 0.063422 0.039567 0.000271 0.019857 0.086911 0.042028 0.133891 +0.198442 +0.028257 0.035937 0.029842 0.029241 0.017141 0.129424 0.009706 0.035577 0.030752 0.029607 0.017605 0.029770 0.016352 0.016422 0.028491 0.030463 0.014276 0.030966 0.028413 0.018978 0.022011 0.086911 0.039544 0.014586 0.006009 0.110401 0.039268 0.000839 0.020311 0.110401 0.037910 0.133891 +0.152361 +0.031808 0.034676 0.029732 0.031762 0.015770 0.057104 0.011000 0.037444 0.028523 0.028716 0.014518 0.072201 0.015239 0.016159 0.028486 0.030272 0.018471 0.037083 0.028232 0.020482 0.019361 0.086911 0.038037 0.014692 0.012283 0.157380 0.038911 0.001644 0.020883 0.110401 0.037867 0.180870 +0.086471 +0.032811 0.038123 0.030884 0.035082 0.017628 0.082343 0.011277 0.037383 0.030018 0.029039 0.018229 0.226049 0.015770 0.015707 0.029659 0.032508 0.016109 0.074630 0.027625 0.018995 0.022725 0.063422 0.037690 0.013342 0.008834 0.063422 0.040463 0.000694 0.019976 0.110401 0.039974 0.133891 +0.512965 +0.031013 0.034709 0.031190 0.033872 0.017285 0.079630 0.010882 0.036533 0.028984 0.031100 0.016302 0.091169 0.015731 0.016206 0.028633 0.029826 0.014518 0.042102 0.029218 0.019267 0.020659 0.086911 0.041239 0.012696 0.011784 0.157380 0.038102 0.001317 0.020276 0.110401 0.038055 0.180870 +0.096040 +0.029591 0.037057 0.029840 0.029906 0.018110 0.193924 0.009907 0.037461 0.032249 0.032328 0.018117 0.076199 0.015038 0.016298 0.029098 0.029795 0.014758 0.106078 0.028122 0.020564 0.020794 0.157380 0.040348 0.016617 0.004935 0.133891 0.041268 0.002014 0.019036 0.157380 0.040042 0.180870 +0.477646 +0.031999 0.037378 0.031714 0.029641 0.018351 0.041158 0.011196 0.036740 0.030213 0.029085 0.016730 0.067321 0.016339 0.015581 0.030892 0.031884 0.018275 0.055521 0.028116 0.020714 0.022928 0.133891 0.040259 0.013489 0.009486 0.086911 0.041766 0.000931 0.019428 0.063422 0.039423 0.204360 +0.053447 +0.029041 0.035164 0.029801 0.031018 0.018546 0.125101 0.011034 0.035372 0.028943 0.029359 0.015337 0.059686 0.016186 0.015564 0.030047 0.028550 0.016238 0.035025 0.027600 0.021124 0.022621 0.157380 0.038304 0.018046 0.012285 0.086911 0.037622 0.000206 0.019805 0.110401 0.040185 0.204360 +0.255883 +0.029434 0.036223 0.028492 0.033749 0.015589 0.153833 0.009904 0.035878 0.030289 0.030157 0.014321 0.031122 0.016280 0.016297 0.028268 0.028704 0.018182 0.049213 0.028079 0.020399 0.019475 0.086911 0.037858 0.013584 0.006887 0.086911 0.040774 0.002153 0.019722 0.086911 0.041725 0.133891 +0.310585 +0.032388 0.034361 0.028559 0.030533 0.015136 0.047878 0.010238 0.037561 0.030085 0.028585 0.015844 0.040312 0.015289 0.015799 0.028461 0.030191 0.015086 0.185045 0.026133 0.019842 0.019325 0.063422 0.038963 0.013824 0.010441 0.110401 0.042061 0.001128 0.020302 0.133891 0.039324 0.157380 +0.272380 +0.030473 0.032889 0.030532 0.029300 0.017417 0.028580 0.011545 0.036760 0.028512 0.029546 0.017529 0.055152 0.015155 0.016038 0.028322 0.031226 0.015743 0.021685 0.030096 0.021075 0.020946 0.157380 0.042246 0.018196 0.013092 0.063422 0.038206 0.001623 0.019457 0.180870 0.039111 0.204360 +0.003991 +0.030143 0.038508 0.030182 0.028737 0.015757 0.054246 0.009724 0.036758 0.033311 0.028684 0.015756 0.031227 0.016129 0.016069 0.031569 0.030235 0.017736 0.018481 0.029092 0.020452 0.018817 0.086911 0.038468 0.015262 0.010370 0.133891 0.042268 0.000411 0.018931 0.063422 0.037975 0.180870 +0.001649 +0.028643 0.035205 0.028926 0.028787 0.015005 0.047708 0.011063 0.035727 0.032886 0.029487 0.018038 0.019480 0.015297 0.016098 0.035167 0.029604 0.015291 0.037467 0.028986 0.019377 0.021917 0.110401 0.041668 0.013123 0.005756 0.110401 0.041690 0.002167 0.020338 0.086911 0.042077 0.133891 +0.055531 +0.031892 0.039557 0.031682 0.028203 0.017771 0.265726 0.011038 0.037578 0.028775 0.032159 0.016607 0.153295 0.015607 0.016272 0.029213 0.034949 0.017677 0.083454 0.027735 0.019684 0.023482 0.110401 0.039715 0.012143 0.012932 0.110401 0.042114 0.000428 0.019705 0.063422 0.038396 0.133891 +0.674275 +0.031867 0.039242 0.029026 0.028805 0.016539 0.056888 0.010490 0.036943 0.030387 0.028299 0.018127 0.086792 0.015123 0.015997 0.028869 0.028978 0.014449 0.018399 0.027027 0.020956 0.019218 0.157380 0.038568 0.012839 0.013988 0.157380 0.041814 0.000437 0.019047 0.063422 0.041284 0.180870 +0.102131 +0.032821 0.034407 0.029260 0.039497 0.018103 0.088598 0.010855 0.035729 0.031207 0.031995 0.018451 0.021645 0.015961 0.015913 0.028479 0.029112 0.016614 0.288209 0.029672 0.020843 0.021071 0.133891 0.041840 0.016685 0.011490 0.110401 0.038686 0.000380 0.019556 0.133891 0.038745 0.204360 +0.495321 +0.030634 0.039140 0.029803 0.029326 0.017940 0.021132 0.011147 0.037089 0.029584 0.028534 0.015524 0.026226 0.015695 0.016032 0.028576 0.037072 0.015131 0.058183 0.029785 0.019222 0.021551 0.063422 0.040555 0.014792 0.010639 0.157380 0.040453 0.000664 0.020060 0.110401 0.040180 0.180870 +0.002699 +0.029985 0.038068 0.029382 0.028962 0.014221 0.096354 0.011046 0.036127 0.031752 0.029038 0.016307 0.105965 0.016262 0.016351 0.030659 0.029361 0.014713 0.036008 0.030770 0.019537 0.021101 0.157380 0.040336 0.013870 0.005175 0.086911 0.041553 0.000927 0.019752 0.063422 0.041104 0.180870 +0.274695 +0.031541 0.035791 0.030427 0.028314 0.018154 0.100477 0.011185 0.036935 0.034004 0.028696 0.016229 0.066811 0.015924 0.015789 0.028650 0.028590 0.018658 0.117660 0.027122 0.020981 0.023215 0.063422 0.040129 0.017888 0.010483 0.063422 0.040972 0.001644 0.019891 0.086911 0.040892 0.133891 +0.285595 +0.029670 0.037442 0.039739 0.034428 0.018492 0.063051 0.009941 0.036115 0.028783 0.031410 0.018514 0.357249 0.015203 0.015600 0.028437 0.028942 0.014401 0.016887 0.027741 0.019804 0.019832 0.110401 0.040869 0.018302 0.012402 0.063422 0.039694 0.000809 0.019549 0.063422 0.041288 0.133891 +0.557667 +0.028292 0.035786 0.028395 0.028953 0.018743 0.078121 0.009829 0.036222 0.030922 0.030338 0.015987 0.067090 0.015915 0.015924 0.029063 0.030108 0.017084 0.057531 0.028539 0.020243 0.019199 0.133891 0.041832 0.018330 0.008988 0.157380 0.037624 0.002072 0.021095 0.110401 0.040830 0.204360 +0.062627 +0.030864 0.035290 0.030090 0.031337 0.017807 0.095399 0.010830 0.036973 0.028674 0.035265 0.017087 0.047489 0.016051 0.016141 0.029710 0.030146 0.018295 0.137385 0.028499 0.020396 0.023258 0.110401 0.040772 0.012302 0.013867 0.063422 0.038431 0.000968 0.020036 0.086911 0.040353 0.133891 +0.334703 +0.032014 0.036939 0.030787 0.032750 0.014335 0.032218 0.010796 0.037126 0.028881 0.028595 0.015229 0.165075 0.015468 0.016053 0.028976 0.032463 0.014974 0.186750 0.027410 0.020553 0.023075 0.157380 0.038017 0.014330 0.010735 0.157380 0.038994 0.001544 0.019657 0.157380 0.041761 0.204360 +0.463189 +0.031449 0.033987 0.028192 0.033582 0.016631 0.051220 0.011042 0.036539 0.030115 0.029674 0.018514 0.091226 0.015691 0.016373 0.028531 0.029671 0.017480 0.268702 0.027277 0.019456 0.022271 0.180870 0.037701 0.017859 0.012481 0.063422 0.037758 0.002165 0.020664 0.110401 0.041326 0.204360 +0.527023 +0.032450 0.033180 0.029195 0.028907 0.015294 0.085011 0.011370 0.036645 0.028952 0.028576 0.016426 0.078317 0.015858 0.016263 0.032842 0.029810 0.018702 0.286103 0.027896 0.019345 0.018829 0.086911 0.039175 0.018398 0.006454 0.063422 0.038518 0.001138 0.020003 0.110401 0.038191 0.133891 +0.649184 +0.030900 0.039484 0.031180 0.033635 0.017712 0.146790 0.011715 0.036466 0.030623 0.031184 0.016393 0.287455 0.016326 0.015875 0.030772 0.028682 0.014835 0.022621 0.028554 0.020091 0.019881 0.133891 0.040863 0.014841 0.007481 0.133891 0.041103 0.001531 0.019888 0.063422 0.038589 0.204360 +0.527142 +0.028553 0.033176 0.031108 0.029590 0.017498 0.089313 0.009612 0.036419 0.028565 0.028884 0.017354 0.029498 0.015638 0.016059 0.029344 0.029319 0.017259 0.039302 0.029664 0.018913 0.019348 0.063422 0.038637 0.017923 0.012682 0.063422 0.039434 0.001344 0.019413 0.110401 0.040720 0.180870 +0.034763 +0.029488 0.033358 0.029643 0.028920 0.014523 0.081876 0.010194 0.035624 0.030930 0.035082 0.014793 0.091510 0.015589 0.016153 0.029175 0.029424 0.016746 0.100950 0.029146 0.019468 0.021910 0.086911 0.039492 0.018264 0.006889 0.157380 0.039725 0.001729 0.019800 0.133891 0.040681 0.180870 +0.238338 +0.031985 0.034818 0.030413 0.029415 0.015183 0.046846 0.009868 0.037539 0.030956 0.030051 0.015457 0.060511 0.015572 0.016434 0.032414 0.030624 0.015935 0.037632 0.030452 0.019795 0.021337 0.110401 0.040617 0.017517 0.010579 0.063422 0.038827 0.000914 0.019173 0.086911 0.039045 0.180870 +0.021439 +0.031111 0.037522 0.035246 0.028866 0.015133 0.393406 0.011053 0.036470 0.032299 0.028889 0.017059 0.020389 0.015963 0.015771 0.028753 0.033615 0.016910 0.030135 0.027706 0.020478 0.023267 0.086911 0.038340 0.012098 0.011741 0.110401 0.041734 0.000348 0.020376 0.086911 0.038911 0.133891 +0.611488 +0.029889 0.038377 0.028762 0.030389 0.018607 0.228598 0.010601 0.035341 0.028916 0.028397 0.017303 0.037760 0.015434 0.015675 0.034230 0.030645 0.017838 0.039418 0.028602 0.021035 0.020393 0.110401 0.038145 0.016278 0.011275 0.086911 0.037773 0.000894 0.020189 0.086911 0.038392 0.133891 +0.300561 +0.030072 0.036903 0.029990 0.030331 0.016645 0.034477 0.011054 0.037099 0.028557 0.028905 0.015506 0.111362 0.015068 0.016274 0.030270 0.031456 0.017308 0.025446 0.027276 0.018930 0.020155 0.110401 0.041764 0.016556 0.006266 0.086911 0.040400 0.000601 0.019354 0.110401 0.038328 0.133891 +0.182903 +0.031933 0.038831 0.030092 0.029061 0.016362 0.036648 0.010186 0.035297 0.029028 0.034242 0.018106 0.043642 0.015643 0.015955 0.030210 0.030216 0.018413 0.077025 0.026937 0.021027 0.019727 0.110401 0.039228 0.014735 0.007938 0.110401 0.039555 0.000376 0.019375 0.157380 0.039122 0.204360 +0.033041 +0.031947 0.035223 0.029561 0.028495 0.014597 0.047839 0.011115 0.035571 0.028383 0.030138 0.015521 0.072779 0.015600 0.016124 0.028281 0.029430 0.016011 0.054238 0.030093 0.019984 0.019856 0.063422 0.039274 0.013583 0.011845 0.063422 0.040248 0.000447 0.020347 0.110401 0.042278 0.204360 +0.020609 +0.032282 0.037231 0.028216 0.034067 0.015554 0.154929 0.009523 0.035671 0.029708 0.034231 0.015461 0.034323 0.015096 0.015772 0.029869 0.030521 0.018199 0.021577 0.027658 0.020394 0.019436 0.110401 0.039935 0.012422 0.007393 0.133891 0.037994 0.000709 0.020689 0.180870 0.037797 0.204360 +0.150393 +0.028558 0.037016 0.030465 0.028694 0.015918 0.039863 0.011043 0.035783 0.028938 0.029337 0.017894 0.064211 0.015459 0.015856 0.028246 0.028656 0.015353 0.059687 0.028521 0.019392 0.021562 0.157380 0.040705 0.014047 0.008723 0.133891 0.040476 0.002265 0.019712 0.063422 0.038511 0.180870 +0.080738 +0.028900 0.033116 0.029237 0.029898 0.014409 0.019960 0.011432 0.037047 0.033559 0.031099 0.018637 0.037368 0.016103 0.015702 0.031260 0.030585 0.016581 0.248006 0.028972 0.020108 0.019945 0.180870 0.041358 0.014171 0.008204 0.180870 0.041257 0.000974 0.019895 0.086911 0.037800 0.204360 +0.381242 +0.032346 0.033183 0.028219 0.028649 0.015924 0.161167 0.010644 0.036076 0.031955 0.028357 0.014673 0.094019 0.015985 0.015912 0.028792 0.029978 0.018408 0.063373 0.030778 0.019706 0.019903 0.086911 0.041770 0.016189 0.012437 0.110401 0.038214 0.000803 0.019122 0.110401 0.039889 0.133891 +0.444060 +0.031886 0.039364 0.033744 0.032223 0.018643 0.039117 0.010191 0.037346 0.028791 0.029075 0.018481 0.090755 0.016068 0.015921 0.028426 0.029718 0.015510 0.090363 0.027459 0.021088 0.022537 0.063422 0.040090 0.018665 0.012658 0.110401 0.040109 0.001712 0.019669 0.063422 0.039341 0.157380 +0.138910 +0.029589 0.034482 0.029622 0.029634 0.017562 0.061891 0.009535 0.036911 0.028550 0.032798 0.014799 0.097421 0.015570 0.016353 0.028441 0.030657 0.016876 0.217301 0.026403 0.019244 0.022594 0.063422 0.037665 0.014433 0.012722 0.157380 0.037670 0.001609 0.020434 0.110401 0.038712 0.204360 +0.450289 +0.032318 0.034709 0.030963 0.032283 0.015601 0.037681 0.010226 0.035649 0.030507 0.028445 0.015199 0.053836 0.015407 0.016419 0.032646 0.030695 0.014220 0.084194 0.028678 0.021029 0.018957 0.063422 0.038590 0.015851 0.008830 0.133891 0.041059 0.001818 0.019517 0.110401 0.037895 0.204360 +0.024533 +0.030514 0.033336 0.032970 0.029701 0.014102 0.030688 0.009864 0.035381 0.028804 0.028411 0.018195 0.023750 0.016402 0.016190 0.031798 0.028752 0.015363 0.023655 0.028622 0.019506 0.020261 0.086911 0.038022 0.015205 0.010346 0.110401 0.040704 0.000082 0.020357 0.110401 0.040068 0.157380 +0 +0.029335 0.034665 0.030232 0.029372 0.015486 0.093506 0.009944 0.036934 0.034259 0.030279 0.018272 0.103704 0.015542 0.015771 0.032638 0.028439 0.018007 0.024982 0.028871 0.020068 0.020692 0.110401 0.041823 0.013859 0.005438 0.063422 0.040011 0.000719 0.018890 0.157380 0.038260 0.204360 +0.186593 +0.032069 0.036252 0.029890 0.030274 0.018432 0.017870 0.009576 0.035280 0.031569 0.028885 0.018593 0.136900 0.016428 0.016159 0.029154 0.033343 0.014183 0.076649 0.028242 0.020509 0.022154 0.063422 0.039701 0.013300 0.006630 0.086911 0.039770 0.001174 0.019895 0.157380 0.040915 0.180870 +0.177123 +0.032014 0.034583 0.029966 0.028235 0.015842 0.046731 0.009418 0.036688 0.028573 0.029156 0.015873 0.052977 0.015447 0.015907 0.028278 0.030181 0.017936 0.042690 0.029209 0.019685 0.021450 0.086911 0.040252 0.012498 0.009757 0.180870 0.039664 0.001597 0.019838 0.180870 0.041004 0.204360 +0.067547 +0.029417 0.034954 0.028589 0.028243 0.018115 0.026556 0.011709 0.035573 0.029172 0.028691 0.016439 0.036894 0.015635 0.016364 0.028689 0.028475 0.015596 0.060113 0.028983 0.019382 0.021546 0.110401 0.040036 0.012651 0.012354 0.157380 0.040914 0.002280 0.019914 0.086911 0.039460 0.180870 +0.017554 +0.028512 0.039918 0.031557 0.029897 0.015621 0.547567 0.010064 0.036501 0.028614 0.029376 0.017105 0.029072 0.016237 0.015530 0.028883 0.028595 0.016018 0.072481 0.027686 0.019305 0.018819 0.133891 0.039494 0.011879 0.004808 0.110401 0.042240 0.002005 0.018992 0.110401 0.038393 0.180870 +0.764910 +0.029579 0.034208 0.029373 0.028733 0.017026 0.236322 0.011030 0.036025 0.032610 0.030338 0.014897 0.051561 0.015330 0.015799 0.029167 0.028600 0.017430 0.026005 0.029130 0.019380 0.021992 0.133891 0.039561 0.015627 0.011162 0.157380 0.037908 0.002289 0.020624 0.086911 0.039863 0.180870 +0.368370 +0.029397 0.038740 0.029357 0.028722 0.017953 0.156273 0.011615 0.036582 0.028978 0.029892 0.018381 0.019274 0.016437 0.015512 0.036360 0.029917 0.018711 0.070535 0.029084 0.020864 0.021677 0.133891 0.040928 0.016645 0.007431 0.063422 0.040432 0.002324 0.019255 0.133891 0.040161 0.157380 +0.213571 +0.032479 0.032999 0.032448 0.030261 0.015154 0.070715 0.010479 0.036766 0.030846 0.028539 0.016116 0.244433 0.015897 0.016387 0.029219 0.030054 0.018513 0.097280 0.027737 0.019696 0.022625 0.133891 0.041097 0.018118 0.011028 0.110401 0.040479 0.000774 0.020236 0.063422 0.038710 0.204360 +0.504575 +0.028778 0.035070 0.031499 0.028683 0.014573 0.024089 0.011506 0.037177 0.031716 0.028408 0.016113 0.078670 0.015409 0.015788 0.029079 0.028771 0.017116 0.365974 0.030853 0.020050 0.021936 0.133891 0.040648 0.017686 0.013603 0.110401 0.040784 0.001781 0.020000 0.157380 0.042112 0.204360 +0.592442 +0.032062 0.035618 0.028700 0.029256 0.016331 0.087623 0.011249 0.035737 0.029219 0.032028 0.015917 0.029392 0.015215 0.016186 0.031017 0.031350 0.017678 0.067398 0.028595 0.021090 0.018895 0.110401 0.040664 0.012600 0.014050 0.133891 0.040065 0.000016 0.020512 0.063422 0.042273 0.204360 +0.072284 +0.031947 0.037130 0.030433 0.028851 0.017814 0.041754 0.009929 0.036154 0.037811 0.028892 0.015337 0.139646 0.015865 0.015553 0.031040 0.029127 0.014581 0.017231 0.027579 0.019948 0.022816 0.110401 0.041039 0.016368 0.009913 0.110401 0.040636 0.001606 0.021095 0.110401 0.039239 0.133891 +0.171194 +0.031371 0.038233 0.028581 0.029049 0.014198 0.158739 0.010090 0.035296 0.029532 0.031495 0.016050 0.024485 0.015941 0.016341 0.029265 0.028683 0.016463 0.042133 0.028566 0.021008 0.022310 0.133891 0.039690 0.013637 0.005596 0.110401 0.041208 0.001655 0.018855 0.086911 0.042218 0.157380 +0.308027 +0.032432 0.038204 0.028507 0.029411 0.017769 0.049482 0.009679 0.036027 0.029955 0.030120 0.014304 0.178780 0.016310 0.016170 0.031052 0.028985 0.014742 0.050664 0.027763 0.018943 0.022036 0.110401 0.037845 0.016348 0.010246 0.086911 0.039446 0.002337 0.019539 0.110401 0.039723 0.204360 +0.260170 +0.032099 0.032965 0.032562 0.029371 0.018418 0.091489 0.011192 0.036388 0.031972 0.028269 0.014358 0.162819 0.015729 0.016272 0.028536 0.032341 0.017877 0.031509 0.027866 0.020640 0.021291 0.110401 0.040078 0.017852 0.008034 0.086911 0.037692 0.002312 0.020508 0.086911 0.042098 0.133891 +0.239622 +0.032200 0.038326 0.029420 0.031450 0.015411 0.021405 0.011058 0.035286 0.028598 0.029024 0.014727 0.071898 0.015085 0.016329 0.030542 0.031457 0.016101 0.026738 0.027246 0.019863 0.022404 0.063422 0.040563 0.017510 0.013473 0.063422 0.042131 0.002014 0.018829 0.157380 0.040816 0.180870 +0.007605 +0.031962 0.033446 0.031871 0.028503 0.014558 0.070256 0.009481 0.036236 0.029681 0.029194 0.017087 0.153874 0.016039 0.015658 0.029217 0.028418 0.017254 0.064209 0.028241 0.020374 0.020278 0.110401 0.041166 0.016914 0.013092 0.063422 0.037810 0.000466 0.020811 0.133891 0.041195 0.157380 +0.223476 +0.031580 0.039463 0.029284 0.035998 0.016586 0.044642 0.011143 0.035600 0.028977 0.031923 0.014408 0.277136 0.015052 0.015780 0.033904 0.028627 0.017953 0.043383 0.026712 0.020159 0.022836 0.063422 0.040459 0.012575 0.006276 0.110401 0.039215 0.001138 0.020550 0.063422 0.040265 0.157380 +0.428099 +0.029731 0.039667 0.028208 0.029856 0.015487 0.038879 0.009546 0.037328 0.031044 0.029984 0.016051 0.044181 0.015762 0.015602 0.028960 0.030176 0.014222 0.020464 0.028275 0.019897 0.021432 0.110401 0.039610 0.013882 0.013676 0.063422 0.040267 0.002025 0.020251 0.110401 0.039160 0.157380 +0.016029 +0.031471 0.038653 0.028440 0.029117 0.017344 0.082640 0.011683 0.037368 0.028964 0.028372 0.015464 0.169060 0.015593 0.016419 0.037922 0.031716 0.014575 0.176902 0.027279 0.019867 0.020308 0.133891 0.039480 0.017620 0.006036 0.063422 0.038010 0.001940 0.020861 0.110401 0.037676 0.157380 +0.615350 +0.030197 0.038702 0.030087 0.029286 0.017886 0.053321 0.010021 0.036907 0.028354 0.028934 0.015637 0.130881 0.016287 0.015699 0.033358 0.030658 0.018560 0.394883 0.029113 0.019194 0.022017 0.133891 0.040102 0.017685 0.008045 0.063422 0.039637 0.000921 0.019645 0.063422 0.040046 0.157380 +0.762781 +0.030403 0.036316 0.033001 0.030070 0.018476 0.229472 0.011711 0.036882 0.030070 0.033125 0.016286 0.036924 0.015356 0.015986 0.030095 0.029357 0.018253 0.084357 0.029014 0.020762 0.022543 0.086911 0.039982 0.012358 0.004953 0.086911 0.037626 0.001826 0.020710 0.086911 0.037816 0.204360 +0.424748 +0.028801 0.038785 0.028663 0.032130 0.018010 0.128205 0.009710 0.036435 0.028996 0.029817 0.017953 0.056914 0.016262 0.015869 0.028376 0.028535 0.016512 0.057571 0.029352 0.019517 0.019126 0.157380 0.038322 0.018067 0.012211 0.063422 0.040776 0.002048 0.019386 0.086911 0.041636 0.180870 +0.186881 +0.028287 0.034442 0.033648 0.029965 0.018497 0.252066 0.010047 0.035550 0.033341 0.031105 0.017445 0.086056 0.016126 0.015756 0.031923 0.030640 0.018747 0.056133 0.027584 0.019423 0.021738 0.110401 0.037685 0.017022 0.011462 0.086911 0.037792 0.002002 0.019618 0.086911 0.038504 0.157380 +0.391521 +0.032459 0.033038 0.037926 0.032100 0.014995 0.021156 0.010716 0.036534 0.032331 0.028307 0.018644 0.048936 0.016274 0.015640 0.028734 0.029138 0.017969 0.133358 0.028050 0.020725 0.019067 0.133891 0.038176 0.015346 0.005640 0.180870 0.041976 0.001811 0.020420 0.133891 0.038120 0.204360 +0.198233 +0.031759 0.035785 0.029767 0.031540 0.014337 0.161344 0.010517 0.036693 0.029279 0.029063 0.014280 0.045177 0.015304 0.015527 0.033045 0.028664 0.015811 0.056102 0.029257 0.020883 0.022118 0.157380 0.038359 0.017373 0.005695 0.063422 0.038498 0.000738 0.020775 0.110401 0.040822 0.180870 +0.216765 +0.029065 0.038883 0.030349 0.032735 0.017938 0.054757 0.010291 0.036991 0.032259 0.028877 0.014193 0.090528 0.015775 0.016415 0.030427 0.030020 0.016349 0.024852 0.028262 0.020035 0.022178 0.133891 0.040221 0.014920 0.006059 0.086911 0.041369 0.002193 0.020450 0.157380 0.039128 0.180870 +0.095538 +0.029036 0.036822 0.029965 0.031422 0.014513 0.052897 0.011157 0.036363 0.028301 0.029231 0.017472 0.070376 0.015579 0.016386 0.028258 0.030846 0.015132 0.018508 0.029406 0.019986 0.019440 0.110401 0.040195 0.013362 0.009008 0.110401 0.039697 0.002241 0.019799 0.086911 0.038868 0.133891 +0.123282 +0.031730 0.036625 0.030410 0.029009 0.016901 0.031801 0.009640 0.035353 0.030299 0.030589 0.017380 0.029833 0.015279 0.016212 0.028471 0.029086 0.016901 0.027987 0.028718 0.019380 0.020977 0.133891 0.042258 0.014438 0.008392 0.063422 0.042109 0.001877 0.019758 0.063422 0.039332 0.157380 +0.007476 +0.032866 0.039272 0.030019 0.032631 0.017368 0.062816 0.010511 0.036691 0.030168 0.028489 0.018262 0.037834 0.015411 0.016195 0.032540 0.031241 0.017235 0.024883 0.027368 0.019165 0.019997 0.110401 0.038641 0.015022 0.009850 0.110401 0.039540 0.000752 0.019847 0.063422 0.040340 0.133891 +0.088619 +0.029527 0.038239 0.028212 0.031886 0.014141 0.024674 0.011733 0.037369 0.030949 0.034496 0.014327 0.022015 0.016196 0.016364 0.031109 0.030901 0.018126 0.070441 0.025983 0.020068 0.022882 0.063422 0.042246 0.013508 0.012630 0.086911 0.038089 0.000869 0.020910 0.110401 0.038802 0.133891 +0.020127 +0.029839 0.035875 0.029925 0.029897 0.014363 0.073276 0.010983 0.036710 0.029270 0.029468 0.017838 0.326937 0.015464 0.015657 0.028300 0.030948 0.015670 0.042466 0.028895 0.019971 0.020889 0.086911 0.039603 0.012230 0.010023 0.086911 0.041486 0.000289 0.019757 0.110401 0.041805 0.180870 +0.511332 +0.031411 0.038284 0.030084 0.030470 0.014322 0.092615 0.010888 0.037072 0.030857 0.028988 0.017161 0.093855 0.015350 0.016260 0.028368 0.028792 0.016287 0.018977 0.027371 0.021044 0.021227 0.063422 0.040461 0.017511 0.007640 0.086911 0.040164 0.002212 0.019977 0.133891 0.038406 0.157380 +0.211102 +0.031370 0.038165 0.028530 0.031252 0.018557 0.164904 0.011651 0.037295 0.029341 0.030924 0.017256 0.036939 0.015753 0.015865 0.029630 0.031067 0.014548 0.022419 0.030768 0.019423 0.023115 0.086911 0.040055 0.015770 0.005461 0.157380 0.039915 0.001208 0.019752 0.110401 0.040181 0.180870 +0.239442 +0.029225 0.037064 0.028901 0.033056 0.017199 0.143418 0.011515 0.035485 0.029187 0.028955 0.018634 0.342330 0.016387 0.015854 0.030615 0.032015 0.017511 0.037015 0.027726 0.019032 0.022299 0.063422 0.040183 0.017567 0.013524 0.180870 0.041119 0.000023 0.020360 0.110401 0.038554 0.204360 +0.646768 +0.032261 0.037689 0.028328 0.031504 0.017526 0.258770 0.009927 0.037080 0.028510 0.030831 0.017072 0.055480 0.016120 0.015583 0.030291 0.028440 0.016796 0.030308 0.030014 0.018867 0.019181 0.133891 0.037790 0.012777 0.009168 0.133891 0.041560 0.000442 0.020970 0.063422 0.042044 0.204360 +0.433081 +0.031705 0.034481 0.029565 0.028867 0.015884 0.035121 0.011017 0.035527 0.031962 0.028370 0.017515 0.040964 0.015189 0.016108 0.028382 0.028351 0.014765 0.144163 0.027766 0.020917 0.021862 0.110401 0.040222 0.016497 0.007332 0.063422 0.039323 0.000886 0.020729 0.110401 0.040764 0.133891 +0.271204 +0.030818 0.036775 0.032033 0.028375 0.015547 0.157430 0.010861 0.037105 0.028922 0.032653 0.016709 0.090710 0.015166 0.015749 0.029839 0.028506 0.016533 0.025014 0.026617 0.020077 0.022918 0.063422 0.039543 0.011959 0.008344 0.180870 0.038145 0.000930 0.019210 0.110401 0.038325 0.204360 +0.360994 +0.028250 0.037902 0.030617 0.031709 0.015728 0.177468 0.010195 0.036467 0.034789 0.029756 0.016786 0.023374 0.015717 0.016171 0.028403 0.035979 0.014584 0.017214 0.027354 0.019565 0.023456 0.133891 0.040757 0.013668 0.010479 0.086911 0.041010 0.001085 0.020291 0.133891 0.040823 0.204360 +0.294063 +0.031728 0.036289 0.028613 0.028604 0.018757 0.094492 0.010000 0.035756 0.030014 0.030731 0.016963 0.082494 0.015040 0.016201 0.030926 0.028212 0.016350 0.042450 0.029158 0.019404 0.021514 0.133891 0.038551 0.012414 0.011650 0.157380 0.042193 0.002272 0.019956 0.157380 0.038238 0.180870 +0.257698 +0.031570 0.033193 0.029389 0.032276 0.014139 0.032511 0.010734 0.036408 0.028869 0.028279 0.018306 0.060871 0.016079 0.016024 0.031422 0.029329 0.015189 0.132293 0.028608 0.021059 0.022197 0.086911 0.037881 0.014070 0.011724 0.086911 0.038563 0.000404 0.019726 0.157380 0.041944 0.180870 +0.182791 +0.032172 0.039308 0.031627 0.028306 0.014873 0.041933 0.010838 0.035393 0.030608 0.028646 0.016957 0.022493 0.015146 0.015755 0.028480 0.029197 0.014262 0.096100 0.028665 0.020490 0.018986 0.180870 0.037752 0.011834 0.013869 0.110401 0.041528 0.000230 0.020647 0.110401 0.041501 0.204360 +0.046426 +0.028362 0.035955 0.028380 0.029603 0.017819 0.209885 0.010220 0.035455 0.033964 0.028540 0.017318 0.245553 0.015231 0.016111 0.028880 0.031408 0.015959 0.016947 0.027831 0.020163 0.022384 0.086911 0.038357 0.013084 0.007833 0.063422 0.039321 0.002080 0.019729 0.086911 0.039187 0.133891 +0.671013 +0.031020 0.035160 0.038010 0.029203 0.018645 0.090803 0.011470 0.036415 0.028800 0.029770 0.017669 0.071647 0.015477 0.016147 0.029852 0.034388 0.014993 0.043188 0.027365 0.019952 0.018831 0.110401 0.042014 0.013652 0.007321 0.063422 0.038426 0.001672 0.019313 0.086911 0.039650 0.204360 +0.050535 +0.029779 0.035358 0.029257 0.029672 0.015947 0.188195 0.010341 0.036763 0.029379 0.028769 0.015264 0.235248 0.015419 0.016379 0.032011 0.028507 0.015621 0.035099 0.030886 0.019022 0.023397 0.133891 0.039240 0.017450 0.011394 0.157380 0.041112 0.001385 0.019017 0.063422 0.040289 0.180870 +0.625464 +0.032478 0.037876 0.032764 0.029283 0.015195 0.105427 0.010181 0.035973 0.029855 0.029895 0.016530 0.102189 0.015399 0.015687 0.028473 0.033126 0.015913 0.090725 0.028330 0.020484 0.022044 0.133891 0.041387 0.014385 0.012473 0.063422 0.038617 0.001623 0.020168 0.133891 0.039170 0.157380 +0.267342 +0.029374 0.037996 0.031666 0.030475 0.015488 0.074829 0.011002 0.035864 0.028498 0.032957 0.015028 0.031900 0.015432 0.016359 0.029313 0.030087 0.018029 0.037669 0.027504 0.021119 0.019306 0.133891 0.040387 0.018747 0.013441 0.133891 0.039844 0.001615 0.019352 0.110401 0.041380 0.204360 +0.004544 +0.028449 0.037983 0.029713 0.029491 0.014313 0.134847 0.010811 0.035444 0.028744 0.033955 0.018701 0.148223 0.016305 0.015694 0.029248 0.029117 0.016925 0.141398 0.026911 0.019778 0.022748 0.063422 0.038985 0.014207 0.013544 0.086911 0.040081 0.000129 0.018932 0.133891 0.039689 0.157380 +0.507173 +0.029780 0.036220 0.028317 0.028217 0.018106 0.045096 0.011266 0.035560 0.031863 0.031685 0.016824 0.082387 0.015385 0.015516 0.029443 0.034984 0.018156 0.171733 0.028399 0.019490 0.020711 0.133891 0.039495 0.014923 0.008960 0.110401 0.039847 0.001445 0.020230 0.157380 0.041845 0.204360 +0.266557 +0.032683 0.033824 0.029944 0.030605 0.017013 0.025380 0.010926 0.037441 0.028894 0.028848 0.014331 0.059408 0.015391 0.015952 0.034205 0.032416 0.018083 0.138346 0.027968 0.019252 0.022436 0.133891 0.041362 0.014836 0.005596 0.110401 0.038318 0.002301 0.018943 0.133891 0.038916 0.157380 +0.145680 +0.028737 0.034225 0.029577 0.033498 0.016997 0.036582 0.009814 0.036386 0.031738 0.030596 0.016148 0.161762 0.016030 0.015845 0.028296 0.034109 0.015300 0.084736 0.028014 0.018921 0.021811 0.063422 0.041510 0.015870 0.006286 0.180870 0.041561 0.000900 0.019335 0.063422 0.041796 0.204360 +0.254245 +0.032263 0.035194 0.029269 0.030579 0.017316 0.026033 0.011218 0.035708 0.030183 0.029684 0.018254 0.161641 0.015520 0.015904 0.031740 0.035162 0.014425 0.037283 0.027943 0.019530 0.019036 0.180870 0.038932 0.016900 0.009925 0.063422 0.038296 0.000604 0.020807 0.086911 0.038947 0.204360 +0.151819 +0.032819 0.036641 0.029232 0.029746 0.015689 0.122489 0.011500 0.035580 0.029879 0.028595 0.014627 0.134820 0.015054 0.015658 0.030508 0.031336 0.017045 0.058107 0.027831 0.020634 0.021260 0.063422 0.037590 0.017179 0.004896 0.086911 0.037648 0.001985 0.020267 0.110401 0.038220 0.133891 +0.393372 +0.028768 0.033311 0.030676 0.032638 0.015625 0.118536 0.009835 0.035533 0.029887 0.028515 0.015556 0.125804 0.016205 0.015778 0.030520 0.029013 0.017375 0.083858 0.026819 0.018841 0.022085 0.110401 0.038111 0.016853 0.005957 0.133891 0.040688 0.000339 0.020141 0.133891 0.038966 0.157380 +0.449215 +0.030417 0.035439 0.034528 0.029950 0.014632 0.084571 0.011539 0.036835 0.028994 0.028885 0.018113 0.088627 0.015369 0.016260 0.030558 0.028286 0.014134 0.062179 0.028075 0.020278 0.019028 0.133891 0.041075 0.016031 0.011660 0.063422 0.040300 0.001102 0.020443 0.133891 0.039846 0.157380 +0.172525 +0.032049 0.036803 0.028597 0.033213 0.017116 0.059793 0.011617 0.036349 0.029561 0.028891 0.014436 0.164091 0.015469 0.015923 0.035553 0.029653 0.015342 0.113944 0.027775 0.019584 0.022797 0.063422 0.040896 0.016880 0.004890 0.063422 0.041118 0.000215 0.021003 0.110401 0.039182 0.133891 +0.399775 +0.030007 0.036638 0.028318 0.032546 0.016831 0.093512 0.011058 0.036989 0.031033 0.033157 0.014395 0.074485 0.015809 0.016152 0.032265 0.031765 0.014279 0.047229 0.028050 0.020436 0.020598 0.110401 0.037940 0.013032 0.014009 0.063422 0.039450 0.001104 0.020368 0.110401 0.041746 0.180870 +0.107821 +0.029762 0.036413 0.034573 0.029202 0.015853 0.027295 0.010149 0.037504 0.030566 0.029440 0.014423 0.058664 0.015292 0.016138 0.031567 0.028880 0.014808 0.222448 0.027578 0.020004 0.022301 0.086911 0.038314 0.016166 0.005064 0.063422 0.042091 0.001006 0.019164 0.133891 0.040273 0.204360 +0.355318 +0.030987 0.039161 0.028544 0.029015 0.018319 0.115357 0.010436 0.036701 0.031189 0.035675 0.014157 0.259250 0.015794 0.016079 0.029878 0.029599 0.015185 0.178187 0.031832 0.020728 0.019512 0.063422 0.040291 0.015114 0.008768 0.063422 0.039242 0.002055 0.020259 0.110401 0.038864 0.133891 +0.758360 +0.029854 0.039269 0.033435 0.029233 0.017801 0.019945 0.010821 0.035289 0.029301 0.028629 0.014728 0.028245 0.015437 0.015992 0.033012 0.030353 0.017841 0.248679 0.026718 0.019399 0.021886 0.110401 0.040555 0.016264 0.006207 0.086911 0.040283 0.000684 0.019255 0.110401 0.038471 0.133891 +0.331085 +0.030410 0.034364 0.031562 0.032271 0.017032 0.047336 0.011568 0.035318 0.029375 0.028564 0.017214 0.139163 0.015184 0.015946 0.030455 0.034384 0.016784 0.087012 0.028096 0.020893 0.020972 0.063422 0.041448 0.016934 0.011507 0.086911 0.039414 0.001680 0.019266 0.110401 0.039354 0.133891 +0.306041 +0.029991 0.034485 0.028337 0.031726 0.014444 0.111516 0.010760 0.036324 0.028410 0.028958 0.018680 0.065886 0.015431 0.016148 0.028297 0.030917 0.016172 0.048311 0.028061 0.020371 0.020179 0.133891 0.040854 0.015241 0.011042 0.133891 0.040112 0.001121 0.019836 0.086911 0.037794 0.204360 +0.221789 +0.030246 0.036603 0.033583 0.028702 0.015838 0.179421 0.009422 0.036890 0.035332 0.029295 0.017196 0.082252 0.015775 0.015528 0.028833 0.028979 0.014342 0.019609 0.030534 0.021088 0.020937 0.110401 0.040421 0.012015 0.012917 0.063422 0.039979 0.000504 0.020163 0.086911 0.039812 0.133891 +0.329457 +0.028789 0.039326 0.033262 0.030510 0.016410 0.040271 0.011733 0.036421 0.031664 0.029734 0.014855 0.125656 0.015782 0.015863 0.030275 0.030560 0.017715 0.022312 0.027624 0.019092 0.020667 0.086911 0.040367 0.015226 0.009029 0.063422 0.039549 0.001756 0.020921 0.063422 0.040363 0.180870 +0.098132 +0.028398 0.034095 0.029807 0.031328 0.016134 0.115724 0.011473 0.035537 0.029551 0.031576 0.014798 0.021351 0.015264 0.015722 0.030451 0.032394 0.017795 0.078514 0.026969 0.019612 0.021376 0.110401 0.041010 0.016717 0.008054 0.157380 0.040745 0.000353 0.020240 0.110401 0.039506 0.180870 +0.268876 +0.028744 0.037161 0.028273 0.028188 0.014547 0.310165 0.011404 0.036313 0.032970 0.028363 0.014614 0.047221 0.016337 0.015760 0.029911 0.030745 0.014838 0.142983 0.029837 0.019478 0.022988 0.063422 0.040221 0.012516 0.013470 0.063422 0.040813 0.000750 0.020185 0.063422 0.039499 0.133891 +0.503656 +0.032148 0.034229 0.028561 0.031840 0.014429 0.173760 0.011266 0.036804 0.028361 0.036795 0.016342 0.019468 0.015118 0.016247 0.028958 0.034012 0.016075 0.109004 0.029136 0.021046 0.022105 0.086911 0.040966 0.012605 0.013145 0.086911 0.038554 0.002292 0.019704 0.063422 0.038024 0.204360 +0.234302 +0.030452 0.038509 0.029555 0.029365 0.014221 0.039458 0.009551 0.037316 0.028457 0.034727 0.015940 0.022543 0.015983 0.015699 0.028217 0.028639 0.017053 0.070961 0.027426 0.019821 0.020898 0.110401 0.037755 0.011987 0.006772 0.110401 0.038341 0.000619 0.019141 0.110401 0.038068 0.204360 +0 +0.029340 0.035675 0.031174 0.030830 0.016302 0.072554 0.010111 0.036001 0.034318 0.038247 0.016140 0.063212 0.015316 0.015844 0.031212 0.028214 0.017077 0.021904 0.029480 0.020653 0.021515 0.086911 0.042254 0.014786 0.008986 0.180870 0.038609 0.001395 0.018864 0.086911 0.039932 0.204360 +0.032836 +0.028538 0.037285 0.033561 0.029842 0.015512 0.022425 0.011349 0.035867 0.029622 0.028607 0.016491 0.207054 0.015085 0.016030 0.031226 0.028757 0.017472 0.247744 0.028837 0.020948 0.021101 0.110401 0.038755 0.014210 0.010654 0.110401 0.039496 0.001932 0.018894 0.110401 0.038510 0.133891 +0.687489 +0.028220 0.033000 0.029381 0.029131 0.018545 0.213014 0.009805 0.035866 0.028671 0.032921 0.016091 0.046203 0.015822 0.015877 0.030898 0.031506 0.016660 0.070815 0.027079 0.020618 0.018868 0.133891 0.038823 0.016245 0.012892 0.086911 0.041579 0.000643 0.020075 0.110401 0.038077 0.204360 +0.274289 +0.031751 0.038778 0.028651 0.028690 0.015796 0.180323 0.010570 0.037185 0.031022 0.029093 0.018406 0.054185 0.015103 0.016237 0.031908 0.029087 0.014828 0.075602 0.029408 0.021113 0.021529 0.157380 0.041520 0.015334 0.007036 0.086911 0.039101 0.002156 0.020749 0.157380 0.038610 0.180870 +0.400995 +0.029465 0.036073 0.029790 0.029294 0.016464 0.046450 0.011058 0.036378 0.031002 0.029781 0.015329 0.024588 0.015365 0.015785 0.031096 0.028712 0.017785 0.043431 0.030182 0.020157 0.022557 0.133891 0.037976 0.016519 0.006105 0.133891 0.038072 0.000627 0.019729 0.110401 0.039870 0.180870 +0.005816 +0.032064 0.036569 0.029031 0.028566 0.016587 0.024893 0.011256 0.035395 0.030646 0.029347 0.015504 0.058386 0.015726 0.015509 0.030695 0.032263 0.014324 0.112302 0.027641 0.020554 0.022931 0.086911 0.040104 0.013646 0.012626 0.110401 0.037678 0.000129 0.019111 0.086911 0.037821 0.157380 +0.118753 +0.028295 0.035073 0.030949 0.029047 0.015168 0.025054 0.010864 0.035670 0.029122 0.028983 0.015473 0.077773 0.015972 0.015820 0.030831 0.034375 0.017207 0.019211 0.028558 0.018849 0.020754 0.063422 0.038162 0.012673 0.006260 0.110401 0.039264 0.002164 0.020642 0.133891 0.042183 0.204360 +0.001977 +0.028936 0.036817 0.029660 0.032678 0.015338 0.092640 0.010967 0.036576 0.031091 0.032594 0.017750 0.021826 0.015810 0.016229 0.031087 0.028268 0.017563 0.219821 0.027317 0.019945 0.019870 0.180870 0.041087 0.012384 0.013896 0.110401 0.038728 0.002160 0.020409 0.180870 0.038204 0.204360 +0.483663 +0.030809 0.038766 0.029572 0.032988 0.016697 0.031122 0.011437 0.036908 0.030651 0.030926 0.016162 0.033886 0.015613 0.016145 0.029221 0.028686 0.014908 0.023386 0.028709 0.020939 0.020858 0.063422 0.041102 0.014106 0.013457 0.110401 0.041126 0.001451 0.019584 0.157380 0.041467 0.204360 +0 +0.030131 0.038186 0.028851 0.030028 0.017076 0.304544 0.010755 0.035326 0.029058 0.028610 0.016685 0.105708 0.015658 0.015797 0.030207 0.029623 0.015761 0.172282 0.028276 0.019891 0.020707 0.133891 0.040816 0.011929 0.009102 0.063422 0.041511 0.000037 0.019627 0.157380 0.039968 0.204360 +0.576791 +0.031080 0.035400 0.033689 0.029231 0.017787 0.088371 0.009655 0.035496 0.028227 0.029015 0.014228 0.164040 0.015110 0.015595 0.030246 0.028269 0.015876 0.173031 0.027606 0.020531 0.022294 0.110401 0.038419 0.017152 0.011317 0.157380 0.040140 0.000537 0.019970 0.063422 0.039021 0.180870 +0.588545 +0.030651 0.035931 0.029442 0.032546 0.017982 0.121322 0.009959 0.036444 0.029817 0.036781 0.014476 0.134183 0.015962 0.016434 0.030275 0.032194 0.017350 0.022522 0.027190 0.019056 0.019809 0.110401 0.039017 0.017339 0.008361 0.157380 0.039313 0.001396 0.019169 0.133891 0.039771 0.180870 +0.320306 +0.029026 0.035336 0.028965 0.028264 0.017634 0.064775 0.011424 0.035525 0.030430 0.028635 0.017894 0.066919 0.015624 0.016264 0.035910 0.033163 0.018123 0.155072 0.026502 0.018952 0.019480 0.086911 0.039523 0.017265 0.008478 0.110401 0.039214 0.000997 0.021064 0.063422 0.041026 0.133891 +0.345359 +0.030230 0.037829 0.029931 0.029433 0.015206 0.030013 0.011506 0.035467 0.031522 0.028411 0.017328 0.095004 0.015265 0.015961 0.034712 0.028746 0.018618 0.236960 0.029276 0.019160 0.020584 0.110401 0.040836 0.013626 0.008705 0.063422 0.039633 0.000863 0.019951 0.063422 0.039096 0.204360 +0.419874 +0.030792 0.033689 0.031295 0.028497 0.015041 0.038234 0.010230 0.036851 0.031693 0.028601 0.014894 0.098244 0.016249 0.015836 0.030206 0.030383 0.015331 0.052002 0.027679 0.019373 0.022856 0.063422 0.037688 0.017060 0.005676 0.110401 0.039790 0.001885 0.019004 0.086911 0.039743 0.133891 +0.263067 +0.029508 0.039458 0.032596 0.030412 0.017685 0.052311 0.010491 0.035743 0.028838 0.029062 0.014229 0.127935 0.015514 0.015773 0.030408 0.041546 0.014276 0.060003 0.027730 0.020460 0.021611 0.086911 0.038768 0.016958 0.011133 0.063422 0.040556 0.000436 0.020995 0.180870 0.039699 0.204360 +0.239032 +0.031640 0.036144 0.028462 0.029220 0.015174 0.043212 0.009720 0.037313 0.029652 0.029762 0.015710 0.375672 0.016406 0.015510 0.029341 0.029394 0.015026 0.172521 0.027751 0.019585 0.023283 0.110401 0.041316 0.014107 0.009423 0.086911 0.041513 0.000250 0.018911 0.086911 0.039385 0.133891 +0.772265 +0.032100 0.037431 0.031762 0.028243 0.018087 0.039428 0.011049 0.036381 0.028951 0.028446 0.014437 0.129587 0.015675 0.016210 0.034908 0.028280 0.017392 0.058994 0.029770 0.020759 0.019672 0.133891 0.040513 0.017562 0.009004 0.063422 0.039435 0.000089 0.019088 0.063422 0.040879 0.204360 +0.150109 +0.028575 0.038380 0.030147 0.029666 0.016520 0.101065 0.009570 0.037074 0.029932 0.031550 0.015882 0.031657 0.015359 0.016431 0.028276 0.028491 0.018475 0.031367 0.027799 0.018866 0.021998 0.063422 0.038162 0.016366 0.011005 0.110401 0.039497 0.000428 0.019719 0.180870 0.037851 0.204360 +0.076118 +0.031100 0.034331 0.031319 0.028574 0.018532 0.036982 0.011443 0.036660 0.028807 0.031799 0.018405 0.062809 0.015255 0.016207 0.034710 0.031727 0.016870 0.317386 0.029725 0.018824 0.022662 0.110401 0.038026 0.016262 0.007772 0.086911 0.039748 0.001598 0.019845 0.086911 0.042154 0.157380 +0.555713 +0.028454 0.034439 0.029463 0.032012 0.015648 0.040030 0.011662 0.036948 0.044801 0.034275 0.016940 0.052847 0.016384 0.016303 0.033727 0.035622 0.016827 0.026656 0.028843 0.018927 0.023385 0.063422 0.037715 0.014224 0.006596 0.086911 0.041960 0.001124 0.020551 0.086911 0.040519 0.157380 +0.003453 +0.030308 0.038504 0.035613 0.030856 0.018772 0.033812 0.010655 0.037314 0.032795 0.043698 0.016532 0.055163 0.015105 0.015888 0.028607 0.029157 0.016547 0.265639 0.029639 0.019391 0.019923 0.063422 0.038947 0.013118 0.008633 0.110401 0.039805 0.001182 0.020348 0.110401 0.041474 0.133891 +0.524626 +0.031903 0.033748 0.028923 0.029005 0.016453 0.024912 0.010935 0.037094 0.032377 0.029237 0.015056 0.118823 0.015651 0.016046 0.035028 0.035336 0.018441 0.055413 0.029269 0.019311 0.023040 0.110401 0.037635 0.015161 0.007971 0.063422 0.039719 0.001233 0.020211 0.157380 0.039701 0.180870 +0.210267 +0.028723 0.035036 0.034006 0.028313 0.018232 0.031461 0.011114 0.035696 0.030092 0.029445 0.015763 0.110828 0.015973 0.015980 0.028514 0.028402 0.018541 0.073478 0.027665 0.019465 0.022356 0.110401 0.038959 0.014105 0.007785 0.063422 0.038023 0.000838 0.019332 0.063422 0.041249 0.157380 +0.198021 +0.032768 0.033469 0.030118 0.028716 0.015064 0.126963 0.011087 0.036844 0.030560 0.028984 0.016162 0.018450 0.015968 0.015552 0.028659 0.030208 0.018271 0.062007 0.028268 0.018971 0.020631 0.086911 0.038466 0.017905 0.012245 0.110401 0.040117 0.000401 0.020990 0.063422 0.040981 0.133891 +0.240289 +0.030387 0.034682 0.029573 0.030604 0.015707 0.076044 0.011589 0.035797 0.031794 0.034680 0.016796 0.095283 0.015681 0.016262 0.028245 0.028444 0.015296 0.137451 0.029059 0.020286 0.020725 0.110401 0.041733 0.017812 0.011192 0.110401 0.039233 0.000290 0.019440 0.110401 0.040889 0.133891 +0.367331 +0.028986 0.037963 0.032501 0.028968 0.017597 0.395525 0.009519 0.035857 0.028404 0.031599 0.017043 0.038445 0.015918 0.015720 0.033147 0.029487 0.016607 0.047189 0.026344 0.019206 0.020796 0.086911 0.039529 0.015817 0.011342 0.110401 0.040644 0.000214 0.020722 0.110401 0.038932 0.133891 +0.537053 +0.029650 0.036443 0.028275 0.028555 0.015167 0.029778 0.010362 0.037319 0.030271 0.029145 0.017879 0.022779 0.016064 0.015709 0.029435 0.032762 0.017515 0.309800 0.028184 0.019105 0.023273 0.063422 0.039153 0.016956 0.007583 0.110401 0.037736 0.001527 0.020435 0.110401 0.037870 0.133891 +0.497957 diff --git a/lib/ann/fann/datasets/bank32nh.test b/lib/ann/fann/datasets/bank32nh.test new file mode 100644 index 0000000..714c412 --- /dev/null +++ b/lib/ann/fann/datasets/bank32nh.test @@ -0,0 +1,4097 @@ +2048 32 1 +0.009224 0.049124 0.037040 0.057056 0.044893 0.113078 0.050985 0.009138 0.067259 0.099882 0.043087 0.202739 0.038124 0.014744 0.044433 0.044517 0.048235 0.035289 0.055979 0.001278 0.024316 0.170817 0.087369 0.041144 0.053325 0.136654 0.091346 0.044984 0.003698 0.170817 0.064249 0.341634 +0 +0.015252 0.059351 0.048134 0.060108 0.037838 0.113829 0.013928 0.024179 0.097842 0.111455 0.046336 0.084633 0.033486 0.058497 0.073142 0.039775 0.035055 0.171725 0.043152 0.001616 0.027733 0.239144 0.090211 0.060233 0.021160 0.102490 0.051933 0.040978 0.051361 0.170817 0.053477 0.341634 +0.059842 +0.026147 0.037202 0.176601 0.059371 0.022105 0.269219 0.003994 0.000644 0.050679 0.091976 0.043609 0.036428 0.024653 0.007759 0.049722 0.068595 0.030899 0.095365 0.038278 0.023163 0.017366 0.204980 0.067572 0.002707 0.058588 0.273307 0.067547 0.051555 0.000553 0.136654 0.052248 0.341634 +0.023278 +0.005502 0.053553 0.044483 0.036678 0.046809 0.040376 0.052176 0.057901 0.045628 0.139671 0.037865 0.070561 0.060502 0.021489 0.108429 0.089950 0.034095 0.154413 0.045052 0.011728 0.040182 0.102490 0.062462 0.006255 0.065285 0.102490 0.075284 0.005806 0.032848 0.170817 0.093886 0.204980 +0.013841 +0.002863 0.051414 0.040517 0.055350 0.017330 0.051831 0.037918 0.038976 0.036535 0.038847 0.037879 0.069115 0.017133 0.045086 0.072462 0.039818 0.045852 0.070504 0.051540 0.061563 0.037194 0.136654 0.073787 0.031341 0.043408 0.170817 0.101652 0.015795 0.007311 0.170817 0.056142 0.204980 +0 +0.039365 0.023806 0.041190 0.050890 0.050137 0.119729 0.024943 0.008215 0.034882 0.050023 0.017616 0.113754 0.045403 0.019900 0.038319 0.105479 0.045833 0.402986 0.039538 0.045474 0.014483 0.170817 0.051811 0.014479 0.001025 0.239144 0.074172 0.046465 0.042925 0.170817 0.084024 0.273307 +0.474153 +0.062787 0.025154 0.042976 0.043921 0.038025 0.178878 0.032327 0.010444 0.034284 0.076191 0.039393 0.429799 0.012553 0.009502 0.057816 0.105957 0.028787 0.100111 0.051558 0.045099 0.065368 0.136654 0.071514 0.018336 0.024042 0.204980 0.065034 0.032000 0.059429 0.204980 0.083364 0.273307 +0.254929 +0.047111 0.052959 0.102237 0.047656 0.042834 0.578043 0.060473 0.056892 0.062820 0.089458 0.019582 0.105369 0.002276 0.020462 0.072911 0.043897 0.033710 0.091407 0.046314 0.036314 0.004229 0.170817 0.059624 0.061687 0.047924 0.170817 0.074075 0.060644 0.056732 0.136654 0.085593 0.204980 +0.482409 +0.012227 0.031264 0.041958 0.104868 0.049174 0.038267 0.056221 0.019025 0.069888 0.068147 0.033080 0.322085 0.043729 0.043372 0.044051 0.096485 0.043192 0.189526 0.050144 0.053397 0.023850 0.102490 0.080058 0.005621 0.030875 0.102490 0.065638 0.051655 0.020559 0.102490 0.068340 0.204980 +0.203488 +0.028181 0.053640 0.082408 0.100123 0.041586 0.036958 0.065798 0.044149 0.062029 0.067954 0.036681 0.098353 0.005113 0.028144 0.064947 0.065110 0.042547 0.128325 0.060136 0.020371 0.018004 0.170817 0.080988 0.002922 0.059451 0.136654 0.068708 0.057404 0.027339 0.136654 0.096492 0.204980 +0.005160 +0.036055 0.012179 0.055953 0.038845 0.049705 0.138707 0.013260 0.053099 0.155109 0.038500 0.027185 0.339249 0.011793 0.032156 0.055145 0.069273 0.038976 0.040011 0.055806 0.037704 0.034671 0.170817 0.052146 0.008837 0.020663 0.136654 0.086172 0.024171 0.017155 0.102490 0.098133 0.239144 +0.207794 +0.055483 0.038591 0.051700 0.048432 0.030614 0.180690 0.050059 0.007785 0.065008 0.072882 0.035645 0.044702 0.058324 0.004697 0.067565 0.058800 0.025348 0.190961 0.055508 0.026096 0.043306 0.170817 0.083544 0.027826 0.051829 0.102490 0.101587 0.066697 0.021185 0.136654 0.073750 0.204980 +0.028727 +0.033239 0.012391 0.094276 0.055249 0.032411 0.041992 0.059490 0.032407 0.049250 0.099644 0.043169 0.071933 0.010634 0.003500 0.161956 0.066103 0.032522 0.065816 0.059125 0.001733 0.025046 0.204980 0.054446 0.059255 0.003529 0.170817 0.085534 0.008573 0.026422 0.102490 0.084264 0.307471 +0 +0.036027 0.002849 0.057560 0.038205 0.044718 0.051749 0.049240 0.005169 0.054054 0.037194 0.048753 0.174197 0.062780 0.035244 0.072551 0.035063 0.028489 0.059598 0.058080 0.049336 0.028692 0.170817 0.077999 0.032220 0.047960 0.239144 0.054263 0.011975 0.000544 0.307471 0.052112 0.341634 +0.001683 +0.047362 0.056948 0.063276 0.055741 0.050412 0.252342 0.000411 0.007671 0.043804 0.060054 0.024183 0.178601 0.040887 0.049420 0.041683 0.099604 0.021607 0.176042 0.055965 0.035597 0.031019 0.136654 0.090817 0.008857 0.032263 0.102490 0.086138 0.049887 0.031175 0.136654 0.092254 0.204980 +0.111703 +0.044296 0.016911 0.044368 0.074136 0.030078 0.107571 0.005457 0.012699 0.038351 0.048444 0.020468 0.286486 0.003204 0.014563 0.079169 0.111518 0.040652 0.135129 0.049731 0.055989 0.034254 0.239144 0.088044 0.053909 0.013959 0.204980 0.095268 0.063266 0.045944 0.102490 0.076304 0.307471 +0.319431 +0.052014 0.021642 0.073494 0.060029 0.024515 0.056862 0.057079 0.031636 0.045839 0.078507 0.030683 0.095237 0.014554 0.035740 0.057758 0.039394 0.020354 0.251832 0.056019 0.008020 0.050360 0.170817 0.084391 0.009889 0.034259 0.102490 0.089958 0.007757 0.036949 0.170817 0.078370 0.204980 +0.163601 +0.033919 0.028183 0.055051 0.074752 0.047084 0.147876 0.014096 0.021181 0.042756 0.049544 0.025489 0.144773 0.019106 0.000685 0.046157 0.128820 0.040739 0.392434 0.042415 0.049327 0.007446 0.136654 0.060324 0.011453 0.013270 0.102490 0.094693 0.023382 0.024378 0.102490 0.078008 0.204980 +0.218753 +0.039167 0.037415 0.041702 0.219095 0.037189 0.223473 0.001828 0.007308 0.116435 0.083185 0.047714 0.048748 0.008681 0.052883 0.116747 0.039390 0.028312 0.057988 0.042109 0.007682 0.032853 0.136654 0.086790 0.043709 0.038531 0.102490 0.096967 0.033340 0.018211 0.136654 0.101297 0.204980 +0.022061 +0.011388 0.042955 0.076460 0.054042 0.032898 0.328774 0.043892 0.026740 0.049153 0.036594 0.032838 0.089927 0.004605 0.047039 0.041933 0.147826 0.040728 0.043097 0.046497 0.063899 0.008643 0.170817 0.068709 0.023089 0.010804 0.102490 0.097436 0.063185 0.052835 0.136654 0.076718 0.204980 +0.062690 +0.028708 0.045105 0.054772 0.042962 0.046170 0.079755 0.010045 0.065757 0.058596 0.038074 0.017118 0.121070 0.067999 0.038480 0.037335 0.057582 0.030200 0.101785 0.060406 0.023264 0.012629 0.204980 0.077516 0.051242 0.038698 0.170817 0.065783 0.037638 0.033138 0.239144 0.080569 0.273307 +0.071153 +0.066793 0.046294 0.043757 0.051980 0.034588 0.109453 0.028640 0.067526 0.048271 0.066447 0.018917 0.095725 0.009137 0.066260 0.039133 0.044307 0.029439 0.109090 0.052885 0.009259 0.035788 0.170817 0.069889 0.005322 0.022408 0.136654 0.071179 0.010097 0.021629 0.170817 0.051850 0.307471 +0.046908 +0.059289 0.018217 0.075935 0.036430 0.027170 0.215293 0.006014 0.005107 0.049956 0.034787 0.028703 0.224040 0.051187 0.061355 0.057438 0.036233 0.036345 0.051299 0.052642 0.012805 0.013322 0.170817 0.069556 0.061116 0.042219 0.102490 0.081373 0.048292 0.001740 0.136654 0.080474 0.204980 +0.401792 +0.055897 0.000630 0.036293 0.043357 0.046464 0.085000 0.031920 0.062006 0.065913 0.054101 0.031494 0.089042 0.004180 0.031136 0.042173 0.099784 0.025703 0.047291 0.043855 0.038719 0.063404 0.307471 0.064456 0.046183 0.010133 0.170817 0.074661 0.054888 0.031873 0.102490 0.086639 0.341634 +0.008939 +0.023930 0.056362 0.035460 0.037724 0.034887 0.048616 0.028261 0.054684 0.039923 0.047561 0.036664 0.232315 0.003459 0.014217 0.091293 0.046159 0.039745 0.061681 0.055334 0.054828 0.017398 0.102490 0.080517 0.032120 0.025543 0.204980 0.102237 0.025707 0.023436 0.136654 0.053339 0.273307 +0.031639 +0.005262 0.030947 0.084713 0.071893 0.027816 0.130913 0.058208 0.003839 0.062199 0.047456 0.020929 0.185526 0.068296 0.003550 0.034448 0.074514 0.045831 0.037268 0.055736 0.052957 0.038566 0.204980 0.087600 0.036116 0.052413 0.136654 0.064579 0.020410 0.047453 0.102490 0.079216 0.273307 +0.002200 +0.041142 0.049314 0.060796 0.038061 0.032353 0.126183 0.012641 0.049663 0.055897 0.034901 0.044201 0.150849 0.065279 0.021142 0.049027 0.039848 0.039183 0.153093 0.049879 0.064402 0.046752 0.170817 0.075210 0.008234 0.053324 0.136654 0.055832 0.045284 0.058553 0.136654 0.063777 0.239144 +0.101612 +0.021743 0.018594 0.050594 0.045031 0.020835 0.151082 0.033008 0.022431 0.034396 0.035386 0.042177 0.097787 0.035325 0.060589 0.036064 0.084150 0.029510 0.112199 0.046760 0.011815 0.063685 0.136654 0.099941 0.009549 0.060675 0.170817 0.101293 0.061463 0.038900 0.136654 0.092004 0.204980 +0.202141 +0.002423 0.005335 0.037594 0.107903 0.035409 0.041522 0.019709 0.030146 0.038835 0.094680 0.027056 0.047674 0.068121 0.019196 0.040845 0.101137 0.044262 0.042710 0.050687 0.063225 0.040534 0.102490 0.080348 0.029674 0.017067 0.204980 0.096143 0.042148 0.046737 0.170817 0.094165 0.273307 +0 +0.035713 0.015213 0.087116 0.075499 0.034808 0.222807 0.001578 0.032027 0.053540 0.132897 0.032091 0.226764 0.015732 0.025978 0.038950 0.082697 0.028218 0.173269 0.048258 0.013649 0.014936 0.204980 0.086787 0.041699 0.036620 0.239144 0.063614 0.029193 0.026735 0.273307 0.088981 0.341634 +0.459269 +0.007257 0.029741 0.034975 0.036584 0.047693 0.037552 0.019613 0.038444 0.070871 0.045541 0.049768 0.148706 0.021451 0.005132 0.042441 0.034361 0.047074 0.052926 0.049556 0.015685 0.068126 0.307471 0.053976 0.006348 0.056477 0.170817 0.056179 0.063207 0.060040 0.239144 0.063807 0.341634 +0.013070 +0.052244 0.033765 0.100563 0.074722 0.028609 0.552087 0.016117 0.025579 0.143058 0.074253 0.024585 0.041440 0.002316 0.057276 0.076851 0.046391 0.043113 0.167534 0.062388 0.066720 0.053144 0.239144 0.076588 0.019282 0.024592 0.170817 0.055452 0.053651 0.022570 0.136654 0.055719 0.307471 +0.129051 +0.007391 0.029434 0.055241 0.117829 0.028328 0.070388 0.044953 0.009224 0.039290 0.058356 0.032577 0.115811 0.016294 0.007571 0.088066 0.110769 0.039045 0.184737 0.040283 0.049393 0.043518 0.136654 0.086350 0.016464 0.059358 0.102490 0.076567 0.046613 0.008007 0.204980 0.069898 0.239144 +0.121800 +0.044394 0.049852 0.077054 0.052439 0.041173 0.080193 0.026215 0.031886 0.076855 0.199035 0.025746 0.137124 0.001569 0.013008 0.043219 0.086123 0.030975 0.079994 0.036852 0.016079 0.058070 0.136654 0.079610 0.067954 0.043489 0.170817 0.085047 0.067115 0.056411 0.136654 0.054432 0.204980 +0.042469 +0.001228 0.025117 0.089323 0.047158 0.026350 0.053381 0.002987 0.063637 0.035677 0.056303 0.028183 0.080969 0.060618 0.000869 0.059726 0.040766 0.021712 0.192067 0.055120 0.038585 0.047583 0.273307 0.077558 0.065918 0.007432 0.239144 0.079606 0.019969 0.006880 0.170817 0.068490 0.307471 +0.079462 +0.037037 0.055258 0.050664 0.048155 0.048803 0.157022 0.009097 0.011466 0.041726 0.142164 0.026190 0.109882 0.059868 0.024345 0.122742 0.052497 0.025045 0.246959 0.059986 0.053003 0.038310 0.136654 0.056492 0.003102 0.006806 0.136654 0.071294 0.041009 0.062216 0.170817 0.063348 0.204980 +0.347491 +0.011306 0.005502 0.189881 0.163688 0.033886 0.081167 0.007235 0.051404 0.118535 0.070326 0.044740 0.065210 0.028679 0.041340 0.055774 0.090010 0.018623 0.135152 0.044596 0.005240 0.000124 0.204980 0.054039 0.018867 0.035439 0.273307 0.086886 0.005409 0.048124 0.273307 0.100038 0.307471 +0.053594 +0.030884 0.018917 0.081586 0.109567 0.047471 0.039748 0.030470 0.060754 0.055933 0.059262 0.029376 0.052438 0.047425 0.037423 0.038023 0.076622 0.047693 0.080475 0.051300 0.014236 0.005924 0.102490 0.057408 0.001415 0.058594 0.136654 0.095784 0.051055 0.057466 0.136654 0.068508 0.204980 +0 +0.061126 0.040600 0.040198 0.035609 0.047800 0.126491 0.042085 0.051435 0.040943 0.123423 0.023530 0.145228 0.044554 0.066306 0.079873 0.038921 0.028659 0.073207 0.041363 0.005371 0.030535 0.170817 0.097833 0.012379 0.064365 0.170817 0.089506 0.026045 0.059123 0.170817 0.063216 0.204980 +0.252826 +0.020394 0.066958 0.056274 0.053784 0.045381 0.041530 0.021257 0.031998 0.087585 0.036620 0.023949 0.054003 0.046850 0.042923 0.138423 0.036463 0.027509 0.243294 0.054615 0.047326 0.009567 0.136654 0.054295 0.028284 0.024734 0.204980 0.077087 0.052442 0.004952 0.204980 0.090182 0.307471 +0.016912 +0.000987 0.044204 0.068960 0.036984 0.032625 0.151104 0.021081 0.063834 0.041941 0.069092 0.021262 0.124148 0.051171 0.029821 0.057891 0.034776 0.048372 0.099546 0.056302 0.059568 0.029798 0.136654 0.077893 0.027780 0.037941 0.170817 0.065858 0.032912 0.036786 0.136654 0.066040 0.204980 +0.104453 +0.060065 0.058710 0.180085 0.061353 0.047535 0.067358 0.010469 0.068295 0.051728 0.137559 0.049331 0.211769 0.054720 0.049288 0.046155 0.052343 0.027910 0.034361 0.055855 0.050666 0.024823 0.136654 0.099977 0.061937 0.053388 0.170817 0.076047 0.004171 0.002583 0.239144 0.060916 0.341634 +0.000594 +0.048846 0.051895 0.041290 0.066992 0.033359 0.082201 0.024259 0.034645 0.058466 0.042481 0.029103 0.088265 0.018959 0.035476 0.041516 0.062121 0.040217 0.217922 0.052256 0.033924 0.046728 0.136654 0.076868 0.009527 0.016617 0.170817 0.074645 0.002852 0.033906 0.136654 0.080785 0.239144 +0.146825 +0.013133 0.013167 0.118365 0.048841 0.026804 0.112332 0.035202 0.039081 0.039205 0.048624 0.029825 0.066511 0.058981 0.001462 0.038634 0.081613 0.048394 0.081702 0.061724 0.055040 0.005584 0.102490 0.071553 0.011059 0.000750 0.239144 0.100790 0.039730 0.007258 0.170817 0.054135 0.273307 +0 +0.007034 0.019671 0.135393 0.044023 0.032425 0.038612 0.031458 0.003234 0.091555 0.055447 0.047485 0.242095 0.030497 0.023110 0.079698 0.132287 0.028872 0.101825 0.049918 0.025513 0.025737 0.136654 0.062130 0.001419 0.020646 0.102490 0.075595 0.010398 0.045204 0.170817 0.101326 0.204980 +0.258435 +0.033330 0.047663 0.038840 0.093475 0.029577 0.114576 0.047149 0.035197 0.075449 0.067391 0.046754 0.041718 0.065617 0.025012 0.080751 0.054896 0.026537 0.125704 0.060088 0.007364 0.057189 0.307471 0.076535 0.005020 0.058356 0.136654 0.100513 0.059340 0.019742 0.239144 0.086526 0.341634 +0.011340 +0.020491 0.004733 0.059481 0.063006 0.039078 0.183517 0.024938 0.060506 0.048070 0.057310 0.039252 0.048919 0.000825 0.021893 0.091402 0.036325 0.044580 0.046637 0.048442 0.043824 0.000018 0.136654 0.086188 0.028270 0.019719 0.204980 0.058419 0.066859 0.055155 0.239144 0.065535 0.307471 +0 +0.000031 0.018165 0.054189 0.067938 0.050924 0.067776 0.008290 0.032001 0.069466 0.077327 0.039261 0.133971 0.054934 0.040231 0.041815 0.064490 0.035028 0.254769 0.052987 0.067495 0.004164 0.273307 0.092291 0.060880 0.026841 0.307471 0.095871 0.054322 0.062702 0.239144 0.067551 0.341634 +0.084366 +0.015174 0.018386 0.075794 0.111065 0.021885 0.195633 0.015666 0.024468 0.113108 0.042477 0.037248 0.048044 0.067053 0.063948 0.042463 0.074998 0.042767 0.402135 0.054678 0.033313 0.061697 0.170817 0.090825 0.059645 0.042505 0.204980 0.086312 0.029511 0.067741 0.170817 0.072813 0.239144 +0.072036 +0.033964 0.061591 0.052504 0.107797 0.048744 0.154255 0.026296 0.020138 0.069633 0.046146 0.046948 0.109841 0.054320 0.064174 0.069792 0.064754 0.038702 0.181308 0.053481 0.048231 0.033696 0.136654 0.071207 0.028559 0.060420 0.102490 0.073925 0.056751 0.017558 0.102490 0.076865 0.204980 +0.089217 +0.067341 0.063645 0.039550 0.038294 0.022917 0.222295 0.033431 0.013619 0.064469 0.051511 0.032515 0.543958 0.042215 0.040438 0.042094 0.105565 0.033763 0.059925 0.057679 0.015635 0.006097 0.102490 0.087729 0.044386 0.051647 0.307471 0.077251 0.007535 0.046332 0.170817 0.061120 0.341634 +0.479865 +0.023381 0.051161 0.064472 0.094101 0.044800 0.142493 0.026752 0.023490 0.109318 0.039222 0.034156 0.050005 0.035906 0.068249 0.064711 0.047942 0.037209 0.043378 0.055398 0.063282 0.032304 0.136654 0.051802 0.013141 0.050885 0.204980 0.058263 0.063962 0.023147 0.170817 0.081339 0.273307 +0.021388 +0.041970 0.035052 0.085253 0.079375 0.021913 0.124575 0.034462 0.040796 0.066795 0.076492 0.022109 0.427122 0.064988 0.062870 0.042301 0.062074 0.029548 0.068449 0.042386 0.024184 0.063305 0.170817 0.075737 0.003005 0.046803 0.102490 0.057673 0.055768 0.055223 0.170817 0.100325 0.204980 +0.472224 +0.018510 0.050656 0.053484 0.036179 0.040177 0.107009 0.063391 0.015041 0.042689 0.038183 0.020519 0.415903 0.047307 0.017506 0.052599 0.040909 0.043989 0.035091 0.056830 0.055524 0.013438 0.170817 0.101871 0.004302 0.039729 0.170817 0.083563 0.051716 0.013421 0.170817 0.077535 0.273307 +0.373248 +0.032518 0.005672 0.061596 0.121499 0.046688 0.133455 0.057457 0.022234 0.077885 0.042663 0.029387 0.144136 0.018947 0.056839 0.084439 0.064605 0.024716 0.083896 0.053858 0.041097 0.013187 0.273307 0.074613 0.057758 0.009280 0.102490 0.096575 0.053242 0.044525 0.102490 0.090864 0.341634 +0.022590 +0.021215 0.060029 0.104038 0.117367 0.017178 0.134243 0.020512 0.062495 0.094147 0.123141 0.019097 0.317128 0.049989 0.064298 0.035437 0.068564 0.039896 0.035167 0.038462 0.044199 0.013974 0.136654 0.058330 0.044976 0.019060 0.170817 0.087011 0.050929 0.064355 0.102490 0.053211 0.204980 +0.094349 +0.010604 0.024579 0.044402 0.092530 0.043380 0.635136 0.055837 0.018337 0.093062 0.080085 0.019947 0.105355 0.036354 0.044655 0.041944 0.055676 0.032680 0.074955 0.041991 0.062663 0.032287 0.102490 0.059073 0.058233 0.066736 0.102490 0.073030 0.048231 0.063946 0.136654 0.078225 0.204980 +0.713124 +0.010006 0.017354 0.052299 0.042198 0.018771 0.038116 0.039090 0.025197 0.124967 0.074672 0.043022 0.061076 0.004931 0.018096 0.124700 0.098083 0.048654 0.466796 0.053002 0.017845 0.021327 0.239144 0.088963 0.067777 0.005316 0.102490 0.100358 0.033073 0.001120 0.136654 0.069335 0.273307 +0.112142 +0.028555 0.039528 0.042936 0.035258 0.041341 0.058805 0.021426 0.066295 0.043230 0.067247 0.042544 0.226673 0.002041 0.038559 0.147732 0.081416 0.049846 0.094126 0.061135 0.064521 0.031515 0.102490 0.058742 0.011968 0.030341 0.102490 0.095356 0.006321 0.023812 0.170817 0.074243 0.239144 +0.028875 +0.060100 0.044758 0.176372 0.099014 0.040790 0.319213 0.050224 0.011518 0.088446 0.065030 0.019823 0.140730 0.020270 0.049901 0.038764 0.041191 0.021043 0.085598 0.053062 0.031260 0.031731 0.170817 0.065704 0.006470 0.010273 0.170817 0.099738 0.004759 0.049096 0.170817 0.085314 0.204980 +0.236394 +0.051080 0.031355 0.074062 0.044915 0.038831 0.077904 0.060920 0.005719 0.075409 0.118705 0.021267 0.147802 0.014860 0.000229 0.070772 0.035940 0.025157 0.130131 0.038768 0.030998 0.008908 0.170817 0.100468 0.060677 0.054468 0.102490 0.052804 0.023782 0.067685 0.136654 0.064440 0.273307 +0.050426 +0.029349 0.049920 0.295766 0.046754 0.038409 0.217597 0.057777 0.043680 0.111647 0.058697 0.048370 0.037372 0.030496 0.033904 0.111258 0.036381 0.051100 0.087754 0.055558 0.003535 0.037418 0.239144 0.076588 0.053608 0.018020 0.239144 0.075636 0.030379 0.020458 0.204980 0.060653 0.341634 +0 +0.059964 0.016923 0.069484 0.056025 0.024675 0.449327 0.043315 0.023624 0.094166 0.123891 0.024451 0.407551 0.055380 0.062750 0.051213 0.059316 0.030337 0.164479 0.059818 0.000144 0.053150 0.170817 0.101458 0.047464 0.044262 0.136654 0.071073 0.032661 0.027209 0.136654 0.081643 0.204980 +0.434580 +0.027280 0.045815 0.080684 0.041519 0.042406 0.050139 0.027722 0.015296 0.046893 0.038227 0.022422 0.194622 0.052149 0.050487 0.044227 0.166583 0.038293 0.110837 0.047612 0.026173 0.048198 0.170817 0.062923 0.062930 0.066143 0.170817 0.056343 0.042692 0.044261 0.136654 0.083543 0.204980 +0.473501 +0.065853 0.023043 0.060415 0.190430 0.020622 0.308353 0.027539 0.015684 0.083028 0.039196 0.019040 0.085607 0.040147 0.028440 0.053670 0.038393 0.042472 0.159128 0.051635 0.029425 0.015171 0.273307 0.071237 0.011687 0.054587 0.170817 0.060340 0.029659 0.029507 0.136654 0.068237 0.341634 +0.001976 +0.055703 0.003108 0.040947 0.092918 0.026595 0.070851 0.031337 0.012331 0.058879 0.086839 0.030295 0.067096 0.056961 0.063157 0.045123 0.036712 0.040859 0.698530 0.054382 0.022700 0.031026 0.102490 0.079282 0.014203 0.001089 0.170817 0.081479 0.048731 0.013239 0.239144 0.075585 0.307471 +0.447148 +0.067100 0.029708 0.076369 0.039288 0.041150 0.049168 0.013509 0.001760 0.039518 0.044034 0.048156 0.039047 0.025210 0.034443 0.046636 0.048899 0.019681 0.103398 0.046301 0.032437 0.009967 0.170817 0.073760 0.029871 0.035622 0.170817 0.086118 0.030106 0.054296 0.170817 0.069033 0.204980 +0.004088 +0.037207 0.001951 0.063827 0.057459 0.036582 0.040920 0.007184 0.061735 0.057361 0.063017 0.021212 0.169685 0.027439 0.026498 0.035546 0.083606 0.050368 0.063793 0.058241 0.060851 0.016108 0.273307 0.076371 0.045381 0.015110 0.307471 0.069862 0.039517 0.015061 0.136654 0.076870 0.341634 +0.028729 +0.027269 0.009732 0.054313 0.050146 0.020213 0.105512 0.061700 0.008532 0.055245 0.094317 0.020343 0.056977 0.040607 0.002613 0.042498 0.035856 0.035652 0.237433 0.048330 0.048446 0.046001 0.136654 0.060557 0.014326 0.033942 0.239144 0.054704 0.063557 0.060549 0.102490 0.063612 0.341634 +0 +0.054635 0.002324 0.094552 0.040010 0.017319 0.124884 0.016325 0.005659 0.068420 0.052501 0.048657 0.255596 0.060557 0.027788 0.045727 0.089811 0.018318 0.448026 0.045822 0.045901 0.050547 0.136654 0.093086 0.031360 0.055269 0.204980 0.063079 0.012242 0.045895 0.102490 0.092158 0.239144 +0.409006 +0.038875 0.058776 0.063161 0.058036 0.033102 0.337512 0.000259 0.035331 0.039730 0.045596 0.040469 0.079252 0.044481 0.034403 0.050711 0.046560 0.049276 0.328582 0.057672 0.060585 0.034861 0.273307 0.055827 0.032855 0.028923 0.273307 0.053595 0.060957 0.037989 0.102490 0.054071 0.307471 +0.874097 +0.010361 0.036278 0.155167 0.063079 0.018938 0.117919 0.028461 0.040902 0.039337 0.103989 0.045518 0.069715 0.019697 0.009560 0.218648 0.065913 0.029535 0.165217 0.047643 0.027595 0.030926 0.239144 0.098448 0.059362 0.062802 0.102490 0.097496 0.048580 0.058122 0.204980 0.069191 0.273307 +0.016922 +0.039564 0.034021 0.050294 0.045865 0.029208 0.046378 0.050904 0.015304 0.073359 0.052162 0.044015 0.128087 0.009950 0.000595 0.054829 0.055414 0.029773 0.437401 0.050770 0.043768 0.020776 0.102490 0.099864 0.035507 0.057448 0.204980 0.092386 0.021142 0.058565 0.170817 0.059099 0.307471 +0 +0.036319 0.038646 0.037137 0.034399 0.051170 0.040663 0.011130 0.059493 0.108663 0.046865 0.046492 0.038033 0.041582 0.059595 0.050699 0.109263 0.025301 0.057240 0.053041 0.009856 0.035661 0.102490 0.088040 0.027408 0.038706 0.204980 0.101595 0.013970 0.036613 0.170817 0.096896 0.341634 +0 +0.047838 0.028499 0.061071 0.035794 0.019702 0.076412 0.002038 0.021229 0.057971 0.052538 0.042117 0.174675 0.045967 0.039928 0.035420 0.073412 0.036847 0.045689 0.049279 0.066234 0.040428 0.204980 0.067538 0.009640 0.057677 0.170817 0.055038 0.033064 0.053210 0.170817 0.091721 0.239144 +0.015248 +0.066006 0.057352 0.082632 0.050816 0.035084 0.090010 0.013532 0.021315 0.050252 0.089985 0.021685 0.237005 0.062869 0.060912 0.120311 0.037817 0.040143 0.042163 0.052564 0.046194 0.043112 0.170817 0.094414 0.057780 0.011185 0.170817 0.091556 0.023588 0.025150 0.204980 0.099098 0.239144 +0.102509 +0.031016 0.030692 0.044461 0.039681 0.025821 0.068898 0.046686 0.029979 0.040279 0.166960 0.026255 0.096463 0.014746 0.032509 0.046477 0.122880 0.025481 0.141266 0.052811 0.053538 0.044156 0.204980 0.051871 0.003516 0.060494 0.170817 0.074358 0.024076 0.018363 0.136654 0.076684 0.239144 +0.033161 +0.043935 0.036460 0.123819 0.048924 0.038082 0.087031 0.019183 0.010650 0.050610 0.043210 0.024607 0.052103 0.031649 0.061409 0.045322 0.042889 0.021341 0.059293 0.046955 0.005983 0.038616 0.239144 0.059102 0.036464 0.037873 0.239144 0.097820 0.066296 0.012761 0.170817 0.096322 0.273307 +0 +0.055228 0.060339 0.061222 0.037605 0.017302 0.105490 0.036717 0.061159 0.161073 0.052723 0.027095 0.041115 0.012122 0.064342 0.060581 0.060142 0.050148 0.173576 0.041606 0.045346 0.032378 0.102490 0.083405 0.032827 0.041176 0.170817 0.072389 0.024872 0.009796 0.136654 0.070878 0.204980 +0 +0.064901 0.015336 0.074194 0.062563 0.028085 0.067823 0.068021 0.032607 0.036207 0.041249 0.048597 0.196591 0.037689 0.044202 0.044524 0.051773 0.030096 0.102163 0.057641 0.019822 0.047056 0.136654 0.053755 0.035158 0.064104 0.102490 0.098218 0.060592 0.053098 0.273307 0.063181 0.307471 +0.060187 +0.056819 0.010450 0.094239 0.221382 0.021325 0.342739 0.022402 0.056168 0.096172 0.068282 0.041103 0.087238 0.041403 0.062987 0.128810 0.084962 0.018619 0.109560 0.046040 0.032864 0.014783 0.170817 0.091743 0.030981 0.000051 0.136654 0.098209 0.006778 0.059130 0.170817 0.089876 0.204980 +0.181999 +0.001188 0.007342 0.056413 0.067680 0.036890 0.098743 0.008334 0.033872 0.197131 0.064564 0.018521 0.084184 0.048800 0.041791 0.034583 0.055845 0.017466 0.054999 0.056063 0.001230 0.050293 0.102490 0.056759 0.059527 0.017336 0.102490 0.077994 0.045697 0.022758 0.204980 0.096580 0.341634 +0 +0.036128 0.024882 0.084151 0.057168 0.033781 0.223847 0.048889 0.028662 0.083989 0.072888 0.027581 0.090314 0.025134 0.060562 0.072789 0.064209 0.024655 0.195610 0.051407 0.019650 0.024906 0.102490 0.064300 0.006192 0.024326 0.136654 0.080190 0.036387 0.044690 0.204980 0.084859 0.307471 +0.136083 +0.032154 0.047766 0.067518 0.064173 0.030023 0.042963 0.002876 0.064764 0.048627 0.039105 0.027246 0.047178 0.025362 0.025056 0.056345 0.036460 0.019141 0.153927 0.056992 0.067631 0.024983 0.307471 0.086773 0.048456 0.000222 0.102490 0.076292 0.042916 0.033748 0.102490 0.080150 0.341634 +0.009101 +0.067858 0.059718 0.069776 0.042734 0.020097 0.088390 0.003584 0.053218 0.088666 0.051030 0.047119 0.643972 0.018023 0.021703 0.139858 0.145471 0.028786 0.074197 0.057173 0.016515 0.053818 0.102490 0.069805 0.037506 0.049418 0.170817 0.094802 0.048759 0.044763 0.136654 0.076187 0.204980 +0.686542 +0.057698 0.057279 0.038584 0.039907 0.040078 0.107384 0.000083 0.057862 0.036424 0.035814 0.038950 0.065396 0.014944 0.036856 0.100111 0.070851 0.024074 0.271335 0.055720 0.008146 0.011581 0.204980 0.087155 0.054417 0.061369 0.136654 0.097900 0.005752 0.066701 0.136654 0.071212 0.239144 +0.113929 +0.012557 0.060653 0.050067 0.082699 0.039847 0.223965 0.027568 0.013500 0.236633 0.106213 0.036427 0.049102 0.007924 0.056518 0.100331 0.064410 0.021273 0.044232 0.050246 0.024311 0.036838 0.102490 0.070932 0.067517 0.047514 0.102490 0.067541 0.047456 0.016949 0.170817 0.092762 0.307471 +0.231362 +0.001895 0.006936 0.122946 0.036741 0.041803 0.151357 0.033145 0.024897 0.072706 0.048569 0.041678 0.279240 0.047103 0.048286 0.096347 0.084008 0.049457 0.147209 0.058151 0.043141 0.012634 0.204980 0.098961 0.026740 0.067440 0.170817 0.093409 0.060077 0.028937 0.102490 0.079416 0.307471 +0.093194 +0.022883 0.032065 0.045066 0.039739 0.027935 0.114931 0.058789 0.003912 0.060793 0.038000 0.036789 0.194265 0.031351 0.005626 0.042587 0.045625 0.034356 0.044342 0.062962 0.049586 0.044421 0.204980 0.082762 0.009209 0.010429 0.204980 0.081389 0.009624 0.058428 0.170817 0.075833 0.273307 +0.177767 +0.036833 0.066022 0.060635 0.056427 0.019220 0.080068 0.043656 0.015873 0.046819 0.043892 0.042150 0.204961 0.026341 0.058276 0.040354 0.045896 0.027645 0.103434 0.053349 0.049693 0.016078 0.204980 0.064405 0.029562 0.051414 0.204980 0.061137 0.058135 0.007068 0.204980 0.071265 0.239144 +0.243846 +0.042929 0.033591 0.064432 0.058059 0.019508 0.055358 0.064466 0.061820 0.089530 0.084490 0.042012 0.149941 0.015379 0.058008 0.085703 0.063438 0.020363 0.182233 0.043491 0.063909 0.046155 0.204980 0.080066 0.040000 0.041365 0.136654 0.051494 0.054157 0.011477 0.204980 0.098066 0.273307 +0.023609 +0.005668 0.040944 0.121144 0.090770 0.041576 0.183365 0.055691 0.064865 0.044397 0.089310 0.045054 0.061586 0.039021 0.064208 0.091118 0.154263 0.017161 0.309039 0.049568 0.027481 0.008637 0.204980 0.074341 0.021251 0.035173 0.204980 0.096567 0.032555 0.035229 0.136654 0.080757 0.273307 +0.109871 +0.033534 0.018283 0.040151 0.053037 0.051206 0.251778 0.033477 0.061278 0.073659 0.038960 0.032885 0.175620 0.030427 0.008983 0.046362 0.049254 0.039084 0.115200 0.044271 0.028577 0.045738 0.102490 0.051794 0.001793 0.021472 0.170817 0.073256 0.030707 0.015765 0.102490 0.056704 0.204980 +0.376731 +0.062726 0.054636 0.081454 0.064112 0.040196 0.103536 0.037926 0.023244 0.076775 0.090212 0.037148 0.182863 0.020431 0.060607 0.055295 0.053948 0.017619 0.089888 0.061963 0.005933 0.037460 0.102490 0.067327 0.047893 0.011257 0.204980 0.051566 0.049372 0.018964 0.136654 0.070522 0.341634 +0.004822 +0.022900 0.043187 0.038205 0.046299 0.032086 0.073314 0.018663 0.054950 0.036737 0.039792 0.029487 0.097820 0.059454 0.020288 0.177791 0.055391 0.043480 0.067328 0.049550 0.012465 0.064846 0.170817 0.054275 0.062232 0.056625 0.136654 0.098667 0.025638 0.002692 0.136654 0.095696 0.239144 +0.445381 +0.061919 0.031174 0.073970 0.036936 0.032030 0.172957 0.061831 0.035296 0.058775 0.120619 0.044072 0.355332 0.014944 0.019990 0.057017 0.111976 0.033535 0.139163 0.058734 0.048823 0.034652 0.136654 0.070874 0.000160 0.059412 0.239144 0.059883 0.041103 0.039875 0.204980 0.070404 0.273307 +0.496546 +0.025331 0.013457 0.048552 0.047792 0.034580 0.205412 0.006298 0.027094 0.038783 0.234474 0.028236 0.430659 0.018063 0.012900 0.062146 0.047570 0.048977 0.173304 0.060998 0.028065 0.036758 0.136654 0.054488 0.034692 0.023919 0.102490 0.074249 0.025333 0.031831 0.102490 0.097314 0.239144 +0.396958 +0.058785 0.024811 0.077531 0.073431 0.039100 0.063879 0.028538 0.019186 0.053386 0.174545 0.041153 0.407737 0.034413 0.034528 0.081545 0.037503 0.041925 0.081907 0.043590 0.051833 0.054064 0.170817 0.084291 0.061471 0.055897 0.170817 0.089268 0.035798 0.018396 0.136654 0.100746 0.204980 +0.202175 +0.037131 0.017529 0.043715 0.053509 0.035023 0.097148 0.043886 0.018984 0.034931 0.041069 0.019972 0.112217 0.055494 0.050966 0.081131 0.072969 0.041767 0.130339 0.050848 0.044229 0.058373 0.136654 0.075814 0.016575 0.038899 0.239144 0.092409 0.057771 0.014420 0.307471 0.058035 0.341634 +0.030713 +0.047874 0.029133 0.037102 0.057641 0.028886 0.245130 0.045890 0.060531 0.042083 0.066586 0.045726 0.132124 0.011806 0.031223 0.041900 0.037068 0.018285 0.333140 0.042755 0.066008 0.000445 0.170817 0.067526 0.021386 0.005392 0.170817 0.075549 0.027614 0.018232 0.170817 0.086462 0.273307 +0.166672 +0.027626 0.000540 0.038945 0.052066 0.034038 0.159892 0.029950 0.007114 0.061125 0.049879 0.042089 0.095565 0.057476 0.057880 0.049559 0.050556 0.033429 0.039359 0.040657 0.039081 0.067411 0.170817 0.075084 0.017957 0.019340 0.170817 0.101796 0.005236 0.066232 0.170817 0.101722 0.307471 +0 +0.026972 0.036505 0.045652 0.048169 0.025312 0.088287 0.061682 0.036793 0.045843 0.041288 0.030553 0.083833 0.067110 0.058445 0.060401 0.039171 0.037800 0.592776 0.060767 0.005699 0.002867 0.239144 0.061404 0.035559 0.011079 0.273307 0.087893 0.000238 0.009945 0.239144 0.089175 0.341634 +0.715635 +0.036436 0.033259 0.067060 0.054801 0.038508 0.197064 0.046214 0.023058 0.055524 0.037624 0.036981 0.189312 0.034360 0.037649 0.070513 0.053690 0.034365 0.157522 0.047234 0.012465 0.061428 0.239144 0.085401 0.043492 0.008310 0.102490 0.071959 0.000040 0.010185 0.273307 0.074969 0.307471 +0.380099 +0.027920 0.039911 0.126714 0.038970 0.018570 0.091438 0.051484 0.050775 0.046441 0.039227 0.045588 0.035006 0.005334 0.041022 0.146333 0.080608 0.019291 0.148466 0.063045 0.064324 0.063143 0.102490 0.081912 0.014956 0.003646 0.170817 0.061919 0.056523 0.051719 0.170817 0.060828 0.239144 +0.012652 +0.027172 0.008513 0.194759 0.043116 0.019034 0.138983 0.017485 0.049777 0.038469 0.036086 0.018559 0.152365 0.011133 0.038704 0.077695 0.034858 0.032704 0.153609 0.051932 0.025481 0.018772 0.204980 0.061777 0.019790 0.042404 0.170817 0.076302 0.045612 0.041615 0.136654 0.101653 0.239144 +0.283611 +0.007603 0.009591 0.102505 0.037699 0.028002 0.107299 0.055193 0.016158 0.048820 0.110880 0.024938 0.163802 0.000964 0.065505 0.080926 0.061197 0.031868 0.341630 0.043528 0.003095 0.037221 0.239144 0.058370 0.038321 0.050727 0.136654 0.062816 0.007399 0.029796 0.136654 0.088116 0.341634 +0.194010 +0.004528 0.047587 0.146677 0.048693 0.048338 0.113779 0.052868 0.003991 0.036457 0.061424 0.046578 0.064423 0.029130 0.040389 0.060332 0.045188 0.019125 0.170564 0.048108 0.052577 0.014512 0.102490 0.095170 0.029721 0.052407 0.136654 0.092856 0.054182 0.017424 0.170817 0.096192 0.204980 +0.095224 +0.026866 0.009546 0.056401 0.045980 0.023144 0.076422 0.067525 0.032246 0.071286 0.053363 0.028053 0.158730 0.017697 0.003171 0.104400 0.065143 0.041711 0.056421 0.063602 0.037332 0.003524 0.204980 0.054415 0.038174 0.064644 0.307471 0.054692 0.006577 0.034908 0.307471 0.066079 0.341634 +0.019895 +0.057137 0.060176 0.113732 0.086182 0.042967 0.065341 0.044615 0.005785 0.165624 0.056398 0.042140 0.052550 0.041434 0.063134 0.086032 0.085603 0.022312 0.087855 0.041888 0.058948 0.066225 0.136654 0.052415 0.037377 0.046314 0.307471 0.070071 0.043087 0.028345 0.170817 0.061137 0.341634 +0 +0.018572 0.047612 0.081380 0.070585 0.045070 0.101294 0.045218 0.063846 0.051301 0.074415 0.048397 0.164475 0.033003 0.013202 0.035913 0.113344 0.038820 0.078212 0.057959 0.025764 0.020304 0.239144 0.073631 0.059578 0.026164 0.273307 0.068765 0.065903 0.050776 0.204980 0.094226 0.307471 +0.059526 +0.045038 0.017280 0.061502 0.071664 0.039554 0.239090 0.008079 0.021794 0.069889 0.091884 0.020915 0.362945 0.030938 0.010906 0.045444 0.075929 0.040980 0.492221 0.063617 0.028564 0.004326 0.204980 0.100067 0.043523 0.028340 0.273307 0.076904 0.023838 0.024906 0.204980 0.089950 0.307471 +0.188271 +0.053879 0.036558 0.122177 0.053327 0.024892 0.055146 0.021012 0.056120 0.065653 0.036176 0.038477 0.040904 0.020113 0.066208 0.063614 0.097453 0.018164 0.106214 0.061485 0.065138 0.061389 0.204980 0.058262 0.039697 0.007037 0.102490 0.060943 0.032283 0.050613 0.170817 0.061858 0.273307 +0.004085 +0.022642 0.004191 0.061976 0.052827 0.022634 0.202327 0.012742 0.005943 0.055272 0.035795 0.017922 0.163752 0.056569 0.015805 0.068472 0.098873 0.042867 0.190184 0.044681 0.040042 0.049011 0.136654 0.087809 0.013005 0.014267 0.170817 0.077512 0.015605 0.027775 0.204980 0.076399 0.239144 +0.215329 +0.012734 0.053665 0.042442 0.078323 0.017353 0.101346 0.000643 0.062273 0.060681 0.080852 0.024942 0.129403 0.041436 0.025287 0.114594 0.114943 0.038507 0.208712 0.051769 0.000795 0.059361 0.136654 0.053703 0.021998 0.059818 0.102490 0.058313 0.061219 0.012933 0.170817 0.055879 0.204980 +0.064350 +0.025582 0.006464 0.065908 0.073298 0.019460 0.206598 0.066029 0.021505 0.087231 0.103056 0.033481 0.219685 0.051693 0.052871 0.093722 0.118502 0.018281 0.088854 0.049860 0.029343 0.057339 0.170817 0.057232 0.028472 0.014236 0.102490 0.060673 0.005473 0.016830 0.136654 0.077908 0.204980 +0.205960 +0.017704 0.049768 0.155654 0.042116 0.032314 0.081386 0.025597 0.033038 0.135080 0.157596 0.027688 0.170572 0.041893 0.036169 0.090450 0.052070 0.047321 0.119290 0.067233 0.032860 0.049850 0.204980 0.051707 0.039710 0.008907 0.102490 0.074972 0.021869 0.049999 0.102490 0.052231 0.239144 +0.003043 +0.029479 0.059196 0.055236 0.101233 0.050367 0.168714 0.062700 0.045967 0.127750 0.146586 0.023614 0.079395 0.025040 0.061609 0.067731 0.095894 0.024916 0.128552 0.060384 0.042284 0.014670 0.102490 0.084022 0.011417 0.022524 0.102490 0.093650 0.041805 0.062857 0.170817 0.094144 0.204980 +0.115687 +0.011887 0.037303 0.052432 0.051156 0.039581 0.177896 0.006591 0.003850 0.042538 0.114800 0.040857 0.196442 0.061976 0.035577 0.088096 0.037489 0.021091 0.522412 0.061143 0.058192 0.006850 0.136654 0.067598 0.030783 0.067748 0.136654 0.061604 0.061719 0.037094 0.204980 0.080091 0.307471 +0.380413 +0.065641 0.006395 0.108030 0.034620 0.028514 0.131450 0.044358 0.002214 0.060765 0.049583 0.038185 0.305192 0.047917 0.023926 0.038957 0.055670 0.042105 0.106698 0.039699 0.066589 0.064315 0.136654 0.095186 0.029092 0.014280 0.102490 0.076644 0.035161 0.016663 0.136654 0.091291 0.204980 +0.119301 +0.014077 0.021098 0.042755 0.100081 0.041324 0.342118 0.019181 0.060169 0.064956 0.036884 0.038024 0.161260 0.013307 0.050925 0.044309 0.060241 0.037570 0.896968 0.048782 0.029988 0.000652 0.170817 0.090667 0.066203 0.008912 0.170817 0.090346 0.049123 0.010722 0.170817 0.097490 0.204980 +0.414910 +0.033977 0.007280 0.038416 0.074346 0.041228 0.114120 0.029794 0.027408 0.053417 0.064251 0.043966 0.063861 0.040658 0.018593 0.109820 0.042058 0.024751 0.180472 0.051714 0.023924 0.030520 0.204980 0.073152 0.051220 0.043782 0.136654 0.084942 0.028242 0.006141 0.204980 0.093820 0.307471 +0 +0.029092 0.020573 0.042830 0.095607 0.050352 0.099738 0.047301 0.016013 0.047044 0.041750 0.050357 0.070021 0.065727 0.039240 0.114064 0.054288 0.026972 0.078068 0.062211 0.000069 0.044340 0.136654 0.089872 0.054061 0.068136 0.239144 0.086428 0.034480 0.046495 0.170817 0.086863 0.307471 +0.001237 +0.021500 0.058610 0.081084 0.067226 0.038177 0.121996 0.037378 0.062546 0.055469 0.111347 0.028445 0.062369 0.006051 0.000810 0.112111 0.036597 0.044306 0.207017 0.051624 0.063190 0.010978 0.307471 0.084706 0.009589 0.013867 0.136654 0.089756 0.010004 0.022867 0.307471 0.059213 0.341634 +0 +0.023067 0.013092 0.095872 0.071655 0.025299 0.071646 0.031282 0.039697 0.065139 0.070160 0.040316 0.040260 0.030758 0.045678 0.039936 0.036302 0.050225 0.151430 0.061066 0.020047 0.001100 0.102490 0.055902 0.067598 0.005578 0.136654 0.055718 0.022543 0.002477 0.239144 0.054432 0.273307 +0 +0.020705 0.028171 0.104678 0.054436 0.025092 0.068781 0.057409 0.003776 0.090639 0.065650 0.024127 0.037246 0.030120 0.017604 0.036191 0.059062 0.021035 0.036710 0.049539 0.039207 0.002524 0.170817 0.062479 0.066076 0.060861 0.102490 0.096512 0.035983 0.032642 0.170817 0.058637 0.204980 +0 +0.051886 0.011406 0.041581 0.079553 0.050200 0.102394 0.005303 0.067738 0.054449 0.063238 0.022791 0.055148 0.026082 0.036623 0.076186 0.068964 0.020534 0.060805 0.053772 0.027834 0.011728 0.239144 0.080901 0.026587 0.063144 0.273307 0.083540 0.018716 0.052224 0.204980 0.056902 0.341634 +0 +0.029465 0.025713 0.055392 0.086373 0.037874 0.245959 0.032829 0.053694 0.221243 0.060630 0.018997 0.189335 0.049335 0.049392 0.052660 0.192876 0.049008 0.040292 0.043113 0.049869 0.007026 0.204980 0.052533 0.035421 0.033812 0.239144 0.085279 0.039763 0.042890 0.239144 0.066981 0.307471 +0.189336 +0.067957 0.005265 0.043291 0.052837 0.042507 0.355256 0.032822 0.043287 0.036171 0.045087 0.017308 0.234441 0.036808 0.026587 0.053617 0.091323 0.017503 0.061238 0.053572 0.047323 0.024736 0.204980 0.071789 0.042254 0.007479 0.170817 0.067231 0.022176 0.058250 0.273307 0.095128 0.341634 +0.427578 +0.061409 0.021099 0.036182 0.066505 0.048871 0.043990 0.023075 0.036405 0.046247 0.035168 0.043322 0.064357 0.006208 0.058349 0.093779 0.168206 0.031398 0.162961 0.047327 0.028609 0.009460 0.136654 0.066607 0.001436 0.016317 0.102490 0.062573 0.035901 0.033789 0.204980 0.090900 0.239144 +0.099177 +0.011769 0.030499 0.051091 0.040758 0.048152 0.098875 0.046498 0.003493 0.053219 0.047737 0.045146 0.150547 0.066931 0.054214 0.077058 0.039584 0.037677 0.130429 0.056071 0.007902 0.050593 0.102490 0.066700 0.001821 0.043113 0.136654 0.092429 0.060146 0.058017 0.136654 0.058478 0.273307 +0.004773 +0.031930 0.029508 0.077496 0.038489 0.029532 0.035879 0.049717 0.015355 0.084383 0.115062 0.045373 0.139994 0.019488 0.058516 0.188928 0.078499 0.024768 0.046044 0.055433 0.036808 0.047187 0.170817 0.094784 0.032951 0.037462 0.136654 0.076468 0.013130 0.057018 0.102490 0.051416 0.204980 +0.005482 +0.010502 0.051046 0.050625 0.127153 0.030417 0.163790 0.066081 0.067118 0.225178 0.059129 0.039859 0.039658 0.012804 0.054498 0.035992 0.083714 0.047958 0.093794 0.048732 0.044516 0.045655 0.170817 0.066138 0.062839 0.051864 0.102490 0.088856 0.040429 0.036732 0.170817 0.095364 0.204980 +0.097659 +0.037551 0.024760 0.049973 0.083793 0.049701 0.048768 0.058269 0.034211 0.045753 0.094862 0.047854 0.099036 0.040942 0.019938 0.066788 0.038417 0.021211 0.283524 0.058572 0.017241 0.051585 0.204980 0.072436 0.057681 0.042495 0.204980 0.101676 0.011031 0.051107 0.136654 0.100910 0.239144 +0.023789 +0.025989 0.005773 0.066136 0.075401 0.024183 0.059934 0.055969 0.028317 0.073928 0.090933 0.032165 0.050463 0.052936 0.035541 0.039057 0.036650 0.042637 0.132348 0.051836 0.019595 0.038179 0.170817 0.087093 0.013125 0.052516 0.136654 0.062639 0.031100 0.040615 0.204980 0.054172 0.341634 +0 +0.049031 0.039140 0.087814 0.038303 0.026758 0.329684 0.037164 0.037623 0.047497 0.062804 0.039903 0.444727 0.027466 0.066368 0.072783 0.079897 0.033841 0.053914 0.036481 0.001047 0.052605 0.204980 0.096810 0.018971 0.066014 0.204980 0.051454 0.008444 0.058982 0.136654 0.088490 0.239144 +0.287535 +0.063979 0.032611 0.067739 0.043446 0.027950 0.088126 0.066074 0.005791 0.093157 0.060562 0.023264 0.072950 0.034577 0.025352 0.074781 0.067338 0.024361 0.074985 0.041162 0.050358 0.034301 0.136654 0.064326 0.008048 0.042191 0.170817 0.091109 0.010042 0.050670 0.204980 0.097942 0.239144 +0 +0.054323 0.041346 0.066975 0.063850 0.022330 0.154077 0.024322 0.044218 0.065656 0.042926 0.045877 0.055186 0.021293 0.041138 0.061958 0.111918 0.048950 0.105073 0.055033 0.041806 0.015147 0.204980 0.078215 0.048145 0.000911 0.136654 0.097053 0.041312 0.032789 0.136654 0.067497 0.273307 +0 +0.009228 0.033986 0.037309 0.060275 0.047211 0.081982 0.056906 0.058696 0.096617 0.047564 0.018202 0.048046 0.027747 0.060253 0.076352 0.035273 0.026652 0.159934 0.056297 0.009994 0.037602 0.204980 0.077660 0.047022 0.048574 0.102490 0.101203 0.059362 0.068127 0.204980 0.058352 0.239144 +0 +0.009516 0.065360 0.076121 0.035379 0.022467 0.296984 0.018056 0.006797 0.141395 0.062579 0.047162 0.229566 0.055145 0.061864 0.042785 0.143853 0.034656 0.092361 0.045259 0.029811 0.061962 0.102490 0.055334 0.051115 0.039078 0.102490 0.096370 0.004729 0.059953 0.204980 0.065307 0.239144 +0.247265 +0.064478 0.019047 0.040370 0.047232 0.020589 0.046894 0.000802 0.060922 0.042897 0.036076 0.035259 0.102756 0.058699 0.013172 0.058140 0.049250 0.041782 0.147934 0.044865 0.047813 0.002863 0.102490 0.071023 0.052368 0.037336 0.204980 0.066245 0.055658 0.005052 0.102490 0.067799 0.273307 +0.001127 +0.013618 0.055725 0.048207 0.089838 0.025844 0.192995 0.027544 0.030736 0.058960 0.035632 0.046257 0.037646 0.015261 0.006784 0.034769 0.040301 0.034364 0.495465 0.041449 0.005984 0.064673 0.239144 0.082936 0.037630 0.057818 0.239144 0.064698 0.057463 0.021500 0.136654 0.067888 0.273307 +0.158021 +0.000352 0.051376 0.060485 0.076520 0.038749 0.034277 0.038805 0.023561 0.067435 0.050922 0.037837 0.245649 0.012541 0.000230 0.040439 0.067377 0.048786 0.050376 0.044904 0.009163 0.041619 0.239144 0.095028 0.034118 0.001746 0.239144 0.055411 0.006540 0.006204 0.136654 0.090278 0.341634 +0.276881 +0.067680 0.005569 0.035348 0.067234 0.018285 0.054171 0.010148 0.026458 0.062840 0.046010 0.041078 0.073937 0.019407 0.061827 0.043462 0.062895 0.036658 0.178561 0.039342 0.037506 0.004582 0.102490 0.057990 0.044253 0.019730 0.136654 0.100614 0.013671 0.055691 0.170817 0.098772 0.307471 +0.008700 +0.013277 0.005892 0.035890 0.038532 0.041312 0.038347 0.003486 0.057140 0.037384 0.182127 0.026947 0.061951 0.012312 0.053940 0.043182 0.039844 0.018290 0.325203 0.058566 0.034027 0.007188 0.204980 0.056241 0.000948 0.014739 0.136654 0.065548 0.017543 0.044177 0.136654 0.100295 0.239144 +0.247690 +0.022688 0.026687 0.043996 0.126341 0.019614 0.067309 0.051736 0.001667 0.035889 0.051859 0.037251 0.233161 0.008171 0.006576 0.100182 0.049120 0.030073 0.153993 0.059208 0.056294 0.032285 0.102490 0.100189 0.014279 0.013982 0.102490 0.078855 0.067404 0.022651 0.102490 0.084026 0.204980 +0.110760 +0.033619 0.032462 0.061733 0.052286 0.051227 0.134957 0.000494 0.007362 0.056926 0.054707 0.046134 0.109928 0.007850 0.035387 0.048838 0.055166 0.032917 0.149502 0.040007 0.024744 0.017476 0.170817 0.082239 0.024162 0.038065 0.136654 0.063946 0.007364 0.047430 0.239144 0.097802 0.273307 +0.116042 +0.025553 0.017280 0.079379 0.081303 0.033332 0.102316 0.037667 0.040303 0.037377 0.053209 0.049572 0.200162 0.058628 0.051064 0.047584 0.096495 0.035604 0.196908 0.045246 0.026776 0.047731 0.204980 0.081196 0.035833 0.036106 0.170817 0.072714 0.055551 0.063383 0.136654 0.056354 0.239144 +0.078724 +0.060450 0.028719 0.117501 0.040478 0.019646 0.042225 0.067625 0.031174 0.038147 0.036961 0.041954 0.246310 0.049786 0.029103 0.081714 0.172604 0.036296 0.117272 0.051665 0.044477 0.039496 0.204980 0.052139 0.007762 0.062568 0.239144 0.065104 0.041878 0.007843 0.102490 0.053102 0.341634 +0.344010 +0.025325 0.038452 0.080344 0.044201 0.045762 0.067899 0.041108 0.059056 0.041436 0.069217 0.019309 0.319257 0.049591 0.049073 0.052096 0.096737 0.050880 0.060845 0.054652 0.035927 0.013148 0.307471 0.083683 0.048994 0.055897 0.239144 0.081582 0.000271 0.045059 0.136654 0.079241 0.341634 +0.211519 +0.006346 0.027657 0.045776 0.043468 0.041518 0.432965 0.057650 0.049681 0.036260 0.052454 0.023681 0.299428 0.014041 0.064079 0.071170 0.098939 0.018852 0.140893 0.046892 0.027146 0.020566 0.170817 0.051669 0.005884 0.030656 0.170817 0.080830 0.017654 0.014776 0.102490 0.082069 0.204980 +0.531612 +0.062594 0.059277 0.036353 0.049132 0.037625 0.042707 0.067223 0.048779 0.041175 0.123098 0.032579 0.149765 0.053757 0.006839 0.037353 0.059289 0.024088 0.194133 0.039714 0.049804 0.038812 0.170817 0.053068 0.018780 0.049362 0.204980 0.071849 0.067508 0.008610 0.307471 0.079206 0.341634 +0.381158 +0.050653 0.028344 0.056740 0.080217 0.048288 0.064778 0.003161 0.007892 0.067442 0.056704 0.038751 0.078752 0.036833 0.045058 0.042757 0.095153 0.027826 0.117252 0.053168 0.026528 0.026188 0.102490 0.082516 0.063067 0.007364 0.170817 0.075392 0.009284 0.057995 0.136654 0.096860 0.204980 +0.007080 +0.037726 0.006727 0.053481 0.045751 0.046875 0.104270 0.044842 0.021702 0.046991 0.035752 0.033003 0.100444 0.014949 0.044815 0.038111 0.061709 0.050969 0.209011 0.047487 0.002427 0.016697 0.102490 0.085437 0.021824 0.008681 0.273307 0.080343 0.049806 0.062451 0.204980 0.101735 0.307471 +0.236420 +0.046217 0.038994 0.048688 0.126906 0.046573 0.187098 0.043923 0.057958 0.096096 0.064336 0.041418 0.051049 0.024360 0.048479 0.044553 0.079949 0.022170 0.176828 0.056239 0.064483 0.030782 0.170817 0.055527 0.002065 0.003562 0.273307 0.051478 0.032797 0.025832 0.204980 0.095818 0.341634 +0.110327 +0.052973 0.034917 0.180006 0.073761 0.024367 0.184293 0.012933 0.018805 0.057992 0.060310 0.023192 0.121654 0.009975 0.039200 0.035665 0.054564 0.021829 0.120013 0.053240 0.022064 0.033898 0.170817 0.076892 0.061236 0.036921 0.170817 0.079733 0.057991 0.018720 0.273307 0.097831 0.307471 +0.034023 +0.031278 0.039974 0.075365 0.036661 0.046610 0.240380 0.067069 0.021322 0.099668 0.042317 0.025575 0.036260 0.038753 0.002744 0.120661 0.103577 0.019848 0.046159 0.047225 0.000297 0.043139 0.102490 0.056310 0.023662 0.019945 0.136654 0.089956 0.066929 0.037413 0.136654 0.081472 0.239144 +0.009712 +0.046819 0.051135 0.076619 0.062373 0.031883 0.155037 0.049050 0.003894 0.040512 0.065623 0.037893 0.178441 0.056182 0.014773 0.063704 0.052417 0.029442 0.278614 0.045833 0.062581 0.017183 0.239144 0.092463 0.014464 0.019192 0.239144 0.060907 0.050749 0.036548 0.102490 0.085776 0.307471 +0.301930 +0.045140 0.051545 0.046240 0.036578 0.031772 0.317349 0.051793 0.003579 0.120673 0.037101 0.047702 0.162148 0.001336 0.033117 0.067957 0.097220 0.050441 0.050441 0.045203 0.008842 0.020842 0.102490 0.093260 0.015465 0.056516 0.170817 0.098528 0.010199 0.022372 0.136654 0.091415 0.204980 +0.497905 +0.007049 0.024042 0.128079 0.119697 0.050355 0.057042 0.001458 0.051960 0.051349 0.057779 0.017696 0.202166 0.058420 0.061309 0.040966 0.047205 0.018980 0.117417 0.052671 0.030736 0.018590 0.170817 0.073492 0.044557 0.060439 0.170817 0.067320 0.001377 0.009802 0.204980 0.101796 0.239144 +0.241145 +0.044241 0.061290 0.091810 0.048606 0.047998 0.077559 0.018719 0.005755 0.164359 0.076787 0.031161 0.075363 0.002843 0.056832 0.055483 0.099681 0.027265 0.316618 0.052227 0.028882 0.035885 0.273307 0.085349 0.060018 0.060032 0.170817 0.078753 0.031274 0.061796 0.239144 0.091026 0.307471 +0.097420 +0.019293 0.058565 0.104558 0.056118 0.026982 0.243770 0.062650 0.036431 0.059905 0.055559 0.018283 0.185908 0.011457 0.007222 0.051037 0.060662 0.017614 0.058697 0.044703 0.026317 0.000961 0.204980 0.085771 0.003790 0.016145 0.136654 0.067527 0.060208 0.031402 0.239144 0.062999 0.273307 +0.056051 +0.056892 0.036978 0.104827 0.045055 0.048741 0.170559 0.003907 0.061522 0.093175 0.045421 0.037297 0.115473 0.043488 0.009149 0.062494 0.145589 0.046450 0.050225 0.043229 0.015670 0.000391 0.170817 0.089016 0.037464 0.045763 0.273307 0.100229 0.052968 0.008037 0.204980 0.079414 0.341634 +0.002705 +0.063069 0.033612 0.130050 0.038633 0.048204 0.143873 0.006394 0.022110 0.045228 0.050866 0.024017 0.189399 0.000092 0.027780 0.198489 0.057742 0.024571 0.074159 0.042496 0.046430 0.015463 0.170817 0.052353 0.011374 0.064411 0.136654 0.099907 0.042413 0.058888 0.136654 0.072702 0.204980 +0.422856 +0.037120 0.010655 0.035227 0.110907 0.023728 0.110122 0.013464 0.054747 0.061768 0.046823 0.032605 0.106329 0.061843 0.024451 0.043682 0.135290 0.038435 0.085940 0.053443 0.025453 0.067262 0.136654 0.064246 0.024582 0.043119 0.136654 0.061475 0.041958 0.030994 0.170817 0.055163 0.239144 +0.004971 +0.023744 0.029822 0.060689 0.038066 0.019345 0.093748 0.020360 0.026271 0.119101 0.117641 0.041585 0.256328 0.002107 0.012412 0.073233 0.038198 0.046483 0.063896 0.043412 0.063189 0.020083 0.170817 0.090672 0.051711 0.048825 0.170817 0.098151 0.047537 0.066167 0.102490 0.062788 0.239144 +0.491149 +0.064572 0.002895 0.042326 0.059966 0.043393 0.089702 0.012107 0.047757 0.045680 0.035920 0.049232 0.179560 0.057300 0.034868 0.074707 0.105972 0.021068 0.052544 0.058136 0.060962 0.043820 0.102490 0.093822 0.060329 0.067901 0.136654 0.055383 0.028717 0.042939 0.204980 0.081991 0.341634 +0.004179 +0.016274 0.009134 0.046487 0.073452 0.021752 0.086902 0.013308 0.048278 0.059495 0.076953 0.045686 0.044199 0.048808 0.016064 0.052475 0.101764 0.025278 0.075357 0.058109 0.017066 0.038348 0.136654 0.086513 0.003622 0.056298 0.204980 0.095822 0.063062 0.064476 0.170817 0.083296 0.273307 +0 +0.030385 0.032452 0.042055 0.045068 0.048199 0.049228 0.047237 0.036528 0.035576 0.168147 0.040081 0.088030 0.037214 0.012479 0.110336 0.050057 0.037731 0.044579 0.062700 0.001943 0.032648 0.204980 0.084477 0.046035 0.021565 0.102490 0.102376 0.043684 0.058122 0.273307 0.054815 0.341634 +0 +0.028202 0.004520 0.067030 0.051420 0.018531 0.074145 0.053271 0.026277 0.041493 0.043727 0.031996 0.205052 0.045184 0.015872 0.040140 0.048551 0.037209 0.042963 0.049062 0.059178 0.035282 0.239144 0.068206 0.023128 0.055429 0.307471 0.096898 0.035766 0.033755 0.307471 0.064464 0.341634 +0.036510 +0.014717 0.000295 0.054096 0.057978 0.043474 0.064556 0.029042 0.067010 0.056231 0.049538 0.041174 0.050513 0.020681 0.029228 0.138949 0.065027 0.032541 0.222916 0.053420 0.029072 0.055352 0.204980 0.069283 0.001353 0.052986 0.136654 0.095284 0.050016 0.059237 0.170817 0.072086 0.307471 +0.031873 +0.016120 0.028316 0.039942 0.039992 0.045474 0.255012 0.061728 0.013056 0.184076 0.044863 0.018234 0.152144 0.066905 0.035522 0.045952 0.143318 0.042516 0.215344 0.052472 0.036091 0.001939 0.273307 0.082415 0.033018 0.033335 0.273307 0.054211 0.015894 0.065477 0.204980 0.051816 0.307471 +0.245901 +0.022857 0.008811 0.082507 0.088612 0.036056 0.164568 0.021437 0.067765 0.087109 0.068135 0.035155 0.063980 0.042493 0.018246 0.035695 0.040485 0.042880 0.476154 0.057499 0.017474 0.006132 0.170817 0.093812 0.013340 0.045366 0.239144 0.089981 0.022859 0.059345 0.239144 0.080121 0.273307 +0.180873 +0.010027 0.013663 0.101514 0.067766 0.045250 0.091865 0.013452 0.000405 0.047133 0.068432 0.047450 0.148393 0.001316 0.053048 0.036227 0.051684 0.022052 0.071310 0.050861 0.028477 0.009327 0.170817 0.083667 0.042584 0.065132 0.170817 0.068518 0.028852 0.053469 0.170817 0.075421 0.239144 +0.029848 +0.048784 0.045854 0.041004 0.035920 0.020943 0.067912 0.055243 0.011703 0.038323 0.085951 0.038660 0.097267 0.018368 0.041306 0.048191 0.051431 0.039369 0.059491 0.046354 0.053179 0.064270 0.239144 0.078095 0.055003 0.023688 0.170817 0.079847 0.044654 0.045452 0.204980 0.083391 0.307471 +0 +0.041383 0.028515 0.151362 0.043646 0.032427 0.165718 0.013057 0.043189 0.037469 0.050502 0.050749 0.305772 0.041882 0.019302 0.038506 0.041969 0.018190 0.063568 0.054615 0.009854 0.007688 0.204980 0.075987 0.026243 0.013488 0.102490 0.059112 0.028628 0.028951 0.170817 0.095717 0.307471 +0.233242 +0.049241 0.053594 0.058070 0.034658 0.051132 0.205372 0.045192 0.033902 0.095481 0.037543 0.033492 0.059496 0.016733 0.057984 0.048059 0.089338 0.043092 0.047045 0.045427 0.060451 0.013529 0.136654 0.068248 0.032317 0.000795 0.102490 0.059557 0.048053 0.026518 0.136654 0.095866 0.239144 +0.044456 +0.034157 0.053500 0.066524 0.066869 0.020393 0.103612 0.004807 0.001315 0.048359 0.058611 0.034216 0.104293 0.039428 0.009513 0.062985 0.038522 0.032868 0.154725 0.064940 0.047212 0.029841 0.136654 0.062179 0.065565 0.044492 0.170817 0.084525 0.005372 0.063572 0.170817 0.059514 0.204980 +0.109058 +0.043792 0.059990 0.036140 0.075583 0.039293 0.067723 0.057916 0.054747 0.079522 0.039002 0.022839 0.130390 0.042798 0.045990 0.063148 0.039508 0.048889 0.093113 0.052384 0.025051 0.029358 0.102490 0.091357 0.003254 0.030092 0.204980 0.088237 0.050173 0.036632 0.204980 0.065918 0.307471 +0.011956 +0.052759 0.007699 0.128161 0.057439 0.034969 0.089218 0.001347 0.022584 0.078723 0.071750 0.045233 0.145153 0.050958 0.048120 0.087291 0.064379 0.049303 0.073477 0.052498 0.006024 0.038799 0.102490 0.086242 0.016406 0.037246 0.136654 0.096185 0.049279 0.031752 0.239144 0.078325 0.341634 +0 +0.021249 0.060794 0.386175 0.056070 0.047585 0.216811 0.044755 0.025342 0.057658 0.046844 0.046546 0.050679 0.065310 0.055965 0.040759 0.046760 0.017573 0.051862 0.052838 0.010056 0.067333 0.102490 0.100596 0.048779 0.017421 0.102490 0.077685 0.029255 0.013710 0.204980 0.089571 0.239144 +0.053376 +0.012238 0.036963 0.042734 0.066166 0.022442 0.176274 0.061783 0.017473 0.056163 0.123925 0.050873 0.039846 0.027807 0.059995 0.072659 0.072953 0.017952 0.218347 0.052039 0.048513 0.032766 0.136654 0.061006 0.012643 0.023823 0.239144 0.083419 0.007566 0.049263 0.102490 0.066021 0.307471 +0.100589 +0.013285 0.034433 0.034307 0.070081 0.038410 0.247458 0.052229 0.038748 0.035621 0.044374 0.033932 0.337025 0.063925 0.050329 0.070967 0.064524 0.038420 0.306212 0.043025 0.007833 0.023799 0.204980 0.096396 0.044833 0.002031 0.102490 0.072358 0.050212 0.035565 0.136654 0.065625 0.341634 +0.701001 +0.013293 0.015320 0.104031 0.048410 0.039691 0.087837 0.001157 0.054812 0.041487 0.044014 0.041181 0.128798 0.060419 0.014048 0.044202 0.062285 0.048553 0.069079 0.054617 0.029093 0.010498 0.170817 0.061260 0.034406 0.023938 0.170817 0.060798 0.060627 0.000269 0.170817 0.053404 0.204980 +0.050843 +0.007566 0.044129 0.099071 0.105275 0.046915 0.069874 0.015175 0.007615 0.055895 0.054228 0.024368 0.209960 0.045287 0.043602 0.064028 0.034463 0.041561 0.045625 0.053582 0.038587 0.010046 0.102490 0.077284 0.005746 0.040645 0.170817 0.064220 0.041077 0.024713 0.102490 0.083031 0.239144 +0.044710 +0.061356 0.034938 0.069199 0.039837 0.029514 0.191119 0.012326 0.004730 0.106277 0.039157 0.021483 0.162624 0.021137 0.003358 0.172318 0.043357 0.046747 0.145789 0.055558 0.012265 0.041087 0.170817 0.064920 0.003233 0.019724 0.102490 0.079247 0.025286 0.004513 0.170817 0.088639 0.341634 +0.007950 +0.010731 0.008759 0.037851 0.044125 0.042343 0.274702 0.009698 0.064007 0.039610 0.076697 0.021543 0.055208 0.048213 0.046644 0.050176 0.047936 0.022432 0.322171 0.044633 0.032223 0.017230 0.136654 0.091174 0.013301 0.031566 0.136654 0.081053 0.065125 0.067959 0.102490 0.085682 0.204980 +0.470731 +0.065775 0.054518 0.037901 0.078529 0.035795 0.076919 0.063317 0.015290 0.116943 0.100191 0.043257 0.185015 0.032800 0.018592 0.075407 0.035296 0.044366 0.042728 0.059216 0.049136 0.009653 0.136654 0.060123 0.055174 0.011401 0.307471 0.080276 0.022753 0.059453 0.239144 0.102356 0.341634 +0.051661 +0.056863 0.055176 0.066451 0.067644 0.028662 0.047930 0.057504 0.040361 0.063612 0.042374 0.030535 0.235020 0.020901 0.022405 0.034688 0.076531 0.026204 0.214307 0.051998 0.054328 0.045820 0.204980 0.061224 0.031567 0.041778 0.102490 0.075859 0.048166 0.022561 0.170817 0.086691 0.273307 +0.166081 +0.041630 0.066883 0.060788 0.037563 0.031526 0.036887 0.032026 0.042496 0.040644 0.068789 0.017912 0.065791 0.006151 0.055970 0.035899 0.045988 0.049732 0.100353 0.055694 0.056257 0.019744 0.102490 0.066656 0.015369 0.009682 0.239144 0.066471 0.040883 0.058055 0.273307 0.083830 0.307471 +0.002721 +0.000534 0.053195 0.055949 0.040176 0.049655 0.088829 0.056407 0.030151 0.069287 0.037564 0.031530 0.201050 0.014562 0.006869 0.101559 0.056594 0.046131 0.240108 0.058634 0.036915 0.064732 0.170817 0.066967 0.052616 0.030036 0.239144 0.081476 0.006569 0.049272 0.307471 0.085440 0.341634 +0.067228 +0.005578 0.015680 0.097205 0.054562 0.046000 0.120688 0.010367 0.008495 0.054906 0.063179 0.048372 0.216083 0.065853 0.003236 0.056350 0.045256 0.034473 0.186043 0.040939 0.052892 0.000134 0.170817 0.063399 0.035455 0.031156 0.102490 0.063233 0.025153 0.003630 0.102490 0.069584 0.239144 +0.111861 +0.053328 0.061861 0.134759 0.072026 0.040308 0.300406 0.012302 0.062958 0.058343 0.057762 0.038963 0.037049 0.058725 0.057493 0.060527 0.036426 0.017519 0.074812 0.041368 0.067077 0.060016 0.170817 0.065206 0.035951 0.036445 0.204980 0.098185 0.059292 0.033184 0.136654 0.075790 0.239144 +0.135607 +0.009567 0.002912 0.058822 0.167668 0.050326 0.119394 0.058173 0.055137 0.057711 0.091385 0.035560 0.451627 0.034158 0.014216 0.045137 0.034544 0.041967 0.090080 0.050347 0.049517 0.067209 0.170817 0.051771 0.059454 0.009320 0.136654 0.077744 0.038052 0.053324 0.170817 0.070400 0.239144 +0.553277 +0.003829 0.061088 0.053185 0.084921 0.044669 0.067194 0.034191 0.054045 0.053293 0.070612 0.047544 0.119070 0.038099 0.002945 0.038401 0.094369 0.021135 0.077475 0.054773 0.022411 0.058300 0.102490 0.072091 0.020065 0.062648 0.102490 0.094129 0.054408 0.050201 0.136654 0.076901 0.239144 +0.001325 +0.046494 0.016224 0.041086 0.132554 0.025863 0.065545 0.016439 0.049528 0.034918 0.114803 0.050876 0.185904 0.029927 0.058201 0.038901 0.039896 0.030383 0.062690 0.047560 0.024282 0.005087 0.136654 0.093647 0.033837 0.052159 0.170817 0.083930 0.051290 0.062799 0.170817 0.057511 0.204980 +0.028316 +0.024208 0.013927 0.059979 0.081120 0.047334 0.263290 0.011140 0.042348 0.038028 0.049842 0.021951 0.056683 0.001930 0.035104 0.137613 0.063617 0.037189 0.075662 0.063191 0.043928 0.042534 0.307471 0.053253 0.035913 0.005078 0.136654 0.093438 0.024652 0.021827 0.273307 0.083952 0.341634 +0.001203 +0.021320 0.012032 0.065073 0.041877 0.020180 0.089657 0.002281 0.007759 0.039054 0.035866 0.022500 0.065125 0.048705 0.009833 0.056265 0.072096 0.046531 0.260343 0.042146 0.035549 0.044753 0.307471 0.083925 0.054815 0.038639 0.170817 0.072472 0.049911 0.013806 0.307471 0.058682 0.341634 +0.225903 +0.052981 0.066079 0.036277 0.040264 0.019683 0.367561 0.030406 0.013365 0.137059 0.036569 0.042247 0.092812 0.050392 0.064984 0.067443 0.055348 0.041839 0.059141 0.048530 0.016664 0.039546 0.102490 0.060357 0.044175 0.010620 0.273307 0.089943 0.056674 0.007713 0.273307 0.088002 0.307471 +0.297229 +0.059516 0.043497 0.106307 0.064214 0.032270 0.504007 0.028981 0.024054 0.048353 0.039662 0.019007 0.065457 0.004337 0.039583 0.068026 0.052362 0.043566 0.054327 0.046540 0.037052 0.031737 0.204980 0.101867 0.061182 0.024880 0.136654 0.070201 0.044418 0.003428 0.102490 0.086007 0.307471 +0.023076 +0.053973 0.029771 0.036749 0.047164 0.038203 0.037445 0.009872 0.031554 0.107808 0.047761 0.026658 0.145547 0.040162 0.056501 0.091723 0.079475 0.050347 0.055776 0.055382 0.033381 0.025543 0.170817 0.059616 0.057079 0.046462 0.204980 0.052424 0.059355 0.012746 0.136654 0.083969 0.273307 +0 +0.049770 0.018196 0.042499 0.060100 0.023812 0.119397 0.049772 0.066010 0.043681 0.060245 0.046768 0.246995 0.057808 0.001236 0.036246 0.047841 0.044411 0.239982 0.045609 0.062060 0.052913 0.170817 0.099635 0.060457 0.030417 0.102490 0.073015 0.032787 0.002127 0.204980 0.091845 0.307471 +0.267737 +0.059831 0.013384 0.043712 0.034822 0.048393 0.118821 0.052659 0.037773 0.040150 0.108274 0.035617 0.062969 0.004384 0.034652 0.100192 0.066478 0.029982 0.222709 0.053362 0.010210 0.048825 0.102490 0.092688 0.066025 0.015996 0.102490 0.078040 0.058837 0.009652 0.102490 0.052449 0.307471 +0.002567 +0.046310 0.035247 0.103588 0.047305 0.027946 0.127685 0.015562 0.025298 0.090234 0.146596 0.050436 0.100017 0.031524 0.004795 0.134089 0.128190 0.017825 0.042294 0.055154 0.043993 0.060149 0.136654 0.075441 0.019495 0.051704 0.239144 0.091841 0.038506 0.009928 0.170817 0.061105 0.307471 +0 +0.052170 0.035980 0.092749 0.042680 0.033015 0.162908 0.028176 0.031051 0.047439 0.057452 0.018631 0.227009 0.023119 0.026397 0.041944 0.058557 0.048239 0.144732 0.049674 0.055830 0.057393 0.273307 0.089865 0.033605 0.027445 0.170817 0.082862 0.058757 0.002508 0.204980 0.051568 0.307471 +0.245954 +0.057547 0.016805 0.076190 0.036062 0.026490 0.051811 0.040989 0.063118 0.050365 0.069096 0.037180 0.041392 0.005031 0.012069 0.078647 0.184885 0.025090 0.084626 0.050894 0.009378 0.001044 0.170817 0.054021 0.011486 0.015097 0.204980 0.064018 0.062566 0.037077 0.170817 0.096379 0.239144 +0 +0.000313 0.033578 0.054590 0.135184 0.018921 0.225038 0.027350 0.018443 0.064318 0.053280 0.017383 0.254282 0.030002 0.006534 0.108788 0.038004 0.047300 0.069418 0.037626 0.018663 0.046317 0.136654 0.051858 0.061577 0.022173 0.136654 0.075134 0.065298 0.066082 0.239144 0.081230 0.273307 +0.088191 +0.028842 0.053409 0.043356 0.050232 0.018053 0.321426 0.044186 0.029322 0.041002 0.069007 0.025435 0.060304 0.034174 0.042138 0.035815 0.088687 0.037214 0.063636 0.055818 0.017869 0.047872 0.170817 0.058998 0.023757 0.007402 0.204980 0.093465 0.052039 0.047703 0.170817 0.089807 0.273307 +0.007065 +0.029581 0.013632 0.070476 0.084516 0.020002 0.334260 0.028507 0.027167 0.039197 0.043810 0.046810 0.190565 0.020707 0.045840 0.100861 0.059071 0.040910 0.319459 0.054054 0.018154 0.018431 0.170817 0.078456 0.011771 0.004897 0.273307 0.080528 0.028242 0.029418 0.136654 0.086469 0.307471 +0.265409 +0.003888 0.063185 0.109244 0.093199 0.020267 0.067936 0.047149 0.066475 0.037270 0.120184 0.029058 0.036917 0.061626 0.019369 0.057087 0.036366 0.031581 0.049336 0.050997 0.064423 0.031878 0.102490 0.071707 0.007567 0.027680 0.102490 0.100311 0.014942 0.001467 0.102490 0.092532 0.239144 +0 +0.058909 0.035248 0.058699 0.060839 0.042686 0.068753 0.018326 0.047596 0.049989 0.152950 0.034725 0.098147 0.024782 0.028839 0.094330 0.041633 0.037238 0.049355 0.056209 0.054738 0.050205 0.170817 0.073555 0.043153 0.008061 0.136654 0.055305 0.039773 0.050305 0.102490 0.056426 0.341634 +0 +0.027766 0.036859 0.091429 0.056704 0.047393 0.034717 0.062446 0.060033 0.057081 0.073505 0.051056 0.053644 0.008670 0.041141 0.072312 0.042831 0.031499 0.255476 0.051832 0.041251 0.007576 0.170817 0.053206 0.031794 0.050860 0.204980 0.070169 0.028492 0.010522 0.136654 0.068013 0.239144 +0.013247 +0.067624 0.021505 0.042697 0.075567 0.037033 0.064883 0.030175 0.049060 0.070566 0.052703 0.038373 0.308528 0.036413 0.045650 0.064297 0.079366 0.048839 0.188325 0.055667 0.014597 0.058161 0.307471 0.094681 0.042384 0.042338 0.239144 0.079406 0.039998 0.062491 0.307471 0.081127 0.341634 +0.171766 +0.020960 0.058466 0.044572 0.052099 0.035386 0.144090 0.025072 0.034998 0.049155 0.095594 0.020016 0.046755 0.028604 0.010052 0.098916 0.070613 0.038568 0.099802 0.044729 0.011452 0.021278 0.136654 0.100825 0.008292 0.009482 0.136654 0.062166 0.050869 0.004349 0.170817 0.078264 0.273307 +0 +0.056912 0.033418 0.035442 0.093344 0.025823 0.040235 0.035952 0.011876 0.061196 0.141964 0.039208 0.054833 0.033205 0.000060 0.044833 0.107245 0.021727 0.122010 0.044424 0.027435 0.045795 0.170817 0.077966 0.020454 0.021220 0.102490 0.072810 0.011233 0.010810 0.102490 0.071804 0.204980 +0 +0.052260 0.056261 0.063704 0.044750 0.043598 0.078288 0.012892 0.028872 0.064322 0.064903 0.023792 0.335161 0.049486 0.013773 0.069659 0.053267 0.043747 0.067315 0.052873 0.006703 0.049333 0.102490 0.055643 0.011965 0.049239 0.136654 0.057900 0.014569 0.056033 0.170817 0.073957 0.204980 +0.159990 +0.046568 0.033554 0.051615 0.144918 0.042858 0.090033 0.023802 0.012469 0.054560 0.057806 0.048896 0.124663 0.014603 0.042376 0.063587 0.102237 0.042851 0.141832 0.052747 0.028825 0.011556 0.136654 0.073706 0.019981 0.043910 0.273307 0.082549 0.010217 0.049412 0.239144 0.094838 0.341634 +0.022397 +0.029182 0.040059 0.060306 0.054141 0.037265 0.151126 0.032568 0.009181 0.061302 0.066923 0.025516 0.085724 0.006371 0.063081 0.091945 0.069832 0.027528 0.124877 0.065320 0.059063 0.031131 0.239144 0.072889 0.017735 0.063278 0.170817 0.073129 0.056134 0.031881 0.136654 0.066774 0.273307 +0.018604 +0.036735 0.062999 0.071418 0.154167 0.031242 0.038628 0.031984 0.066844 0.092713 0.060872 0.020874 0.115344 0.047832 0.017402 0.066711 0.187967 0.043900 0.049616 0.065504 0.041864 0.064578 0.170817 0.079832 0.019997 0.032603 0.239144 0.076957 0.003881 0.041837 0.170817 0.100939 0.307471 +0 +0.055965 0.035761 0.058847 0.038451 0.033291 0.161092 0.023329 0.010717 0.050473 0.152714 0.042846 0.059535 0.017213 0.027128 0.139196 0.051348 0.018761 0.038179 0.044510 0.000202 0.026151 0.102490 0.074904 0.060572 0.004884 0.102490 0.060651 0.055203 0.021255 0.102490 0.094308 0.341634 +0 +0.026084 0.018643 0.073927 0.112684 0.044473 0.116339 0.024886 0.029039 0.050701 0.099702 0.025178 0.073079 0.019014 0.029476 0.089630 0.056000 0.042161 0.198551 0.044396 0.045562 0.012942 0.170817 0.082545 0.045618 0.002595 0.170817 0.094772 0.056565 0.059533 0.136654 0.093145 0.204980 +0.053321 +0.022965 0.010688 0.037724 0.044874 0.031992 0.257951 0.051442 0.044924 0.134787 0.034506 0.041870 0.273412 0.023547 0.064099 0.064931 0.043431 0.034245 0.299071 0.052546 0.025955 0.044357 0.136654 0.094136 0.001528 0.031318 0.102490 0.061029 0.021558 0.062325 0.102490 0.073717 0.204980 +0.284874 +0.019214 0.066399 0.096974 0.057940 0.039239 0.133447 0.048036 0.034800 0.045160 0.062215 0.041227 0.121752 0.013473 0.006909 0.045649 0.085952 0.019490 0.111276 0.049435 0.020223 0.052588 0.102490 0.051387 0.002771 0.000359 0.102490 0.085080 0.005784 0.064844 0.102490 0.078465 0.204980 +0.171170 +0.021883 0.018778 0.062033 0.053203 0.034776 0.143095 0.066383 0.022621 0.047429 0.083668 0.022240 0.077598 0.022795 0.032224 0.096363 0.034373 0.030162 0.088477 0.061337 0.066949 0.028037 0.170817 0.098466 0.041673 0.065739 0.102490 0.060616 0.061668 0.021184 0.204980 0.085379 0.307471 +0.002124 +0.054194 0.055760 0.043897 0.075645 0.036902 0.050784 0.016772 0.057090 0.035101 0.055802 0.043038 0.053749 0.039671 0.012541 0.087382 0.046103 0.043066 0.237382 0.059534 0.010239 0.009124 0.204980 0.097506 0.059426 0.044977 0.136654 0.053357 0.058840 0.011444 0.136654 0.055167 0.273307 +0 +0.027958 0.039902 0.075543 0.058673 0.034638 0.139093 0.055062 0.050070 0.085438 0.105845 0.050926 0.107846 0.018065 0.055346 0.080881 0.039964 0.046861 0.054051 0.053469 0.041501 0.003046 0.136654 0.071173 0.044636 0.052748 0.136654 0.061406 0.045744 0.014744 0.170817 0.058418 0.204980 +0.051359 +0.056920 0.021196 0.068977 0.065524 0.042799 0.064434 0.010930 0.063207 0.074293 0.048894 0.017219 0.135907 0.000255 0.046131 0.044477 0.079430 0.037768 0.112963 0.051921 0.009319 0.036832 0.204980 0.085339 0.027975 0.062681 0.136654 0.084603 0.009325 0.047210 0.204980 0.100368 0.273307 +0.016041 +0.044299 0.021952 0.141085 0.065220 0.029785 0.171482 0.005549 0.022762 0.107672 0.071454 0.017881 0.218782 0.018895 0.016774 0.043965 0.054678 0.026818 0.328505 0.035965 0.012911 0.025339 0.170817 0.077750 0.041096 0.011840 0.204980 0.084585 0.062646 0.048647 0.136654 0.095084 0.239144 +0.104800 +0.066283 0.054699 0.042525 0.049283 0.019821 0.070425 0.042407 0.041867 0.040442 0.063653 0.032613 0.036592 0.019809 0.021089 0.048048 0.040065 0.045723 0.061492 0.060494 0.056375 0.052794 0.170817 0.061171 0.017230 0.014426 0.102490 0.090451 0.047225 0.006878 0.239144 0.069341 0.273307 +0 +0.019804 0.058581 0.050384 0.037496 0.028694 0.114406 0.053083 0.059747 0.095888 0.080311 0.038156 0.134004 0.019700 0.041066 0.094332 0.065716 0.033745 0.035360 0.047110 0.016449 0.021677 0.204980 0.095561 0.048722 0.047181 0.170817 0.093732 0.001537 0.066230 0.239144 0.090974 0.273307 +0 +0.062615 0.029270 0.084430 0.079778 0.036318 0.129248 0.005188 0.063862 0.045168 0.038918 0.039641 0.038372 0.055372 0.064024 0.044089 0.174020 0.036949 0.133538 0.045737 0.004171 0.033593 0.102490 0.086895 0.034221 0.019952 0.204980 0.081864 0.033437 0.031825 0.136654 0.091574 0.239144 +0.009068 +0.001115 0.012209 0.052299 0.083675 0.029980 0.324164 0.063285 0.029797 0.038430 0.036694 0.021789 0.099180 0.055524 0.064092 0.075222 0.040258 0.045364 0.184684 0.057003 0.042000 0.021906 0.204980 0.055940 0.009449 0.013678 0.239144 0.091750 0.042015 0.017634 0.204980 0.086717 0.273307 +0.398840 +0.035242 0.028815 0.050131 0.050650 0.045856 0.168057 0.048768 0.005431 0.040199 0.058258 0.034688 0.034463 0.060282 0.011961 0.138878 0.047743 0.025328 0.122369 0.035492 0.053489 0.024676 0.102490 0.059698 0.006981 0.000038 0.136654 0.093163 0.052725 0.047710 0.170817 0.094640 0.204980 +0.018016 +0.043189 0.024710 0.073270 0.040770 0.017256 0.044973 0.065902 0.017312 0.055443 0.110297 0.027147 0.359725 0.010709 0.002857 0.113893 0.058219 0.033968 0.187996 0.061496 0.064622 0.036298 0.204980 0.061141 0.055820 0.010474 0.204980 0.100594 0.024985 0.030996 0.170817 0.091202 0.273307 +0.233040 +0.014733 0.029371 0.074975 0.061809 0.047791 0.131163 0.060300 0.004023 0.041453 0.086877 0.031027 0.122410 0.065873 0.056303 0.035509 0.068487 0.023756 0.247127 0.057818 0.040429 0.066469 0.102490 0.062929 0.012728 0.006988 0.136654 0.060459 0.008971 0.002608 0.204980 0.069787 0.273307 +0.686030 +0.027643 0.063322 0.046406 0.039132 0.023999 0.058026 0.061546 0.057710 0.053506 0.035064 0.030113 0.174825 0.035923 0.013307 0.045457 0.056861 0.041683 0.238598 0.057439 0.017397 0.061627 0.170817 0.075158 0.011770 0.022334 0.136654 0.062153 0.033650 0.019685 0.136654 0.052089 0.204980 +0.099408 +0.063233 0.004950 0.131011 0.038520 0.043204 0.195294 0.044447 0.015388 0.100129 0.060876 0.033581 0.132491 0.002019 0.044682 0.058655 0.053138 0.026201 0.068975 0.048927 0.013708 0.026846 0.102490 0.081360 0.065541 0.050164 0.136654 0.082031 0.047294 0.019720 0.136654 0.064583 0.204980 +0.073187 +0.039116 0.021066 0.077963 0.107464 0.030814 0.279666 0.047303 0.037147 0.065683 0.043523 0.038064 0.060697 0.066935 0.056822 0.084215 0.122970 0.025488 0.097487 0.045332 0.033080 0.033101 0.273307 0.065881 0.048988 0.001610 0.102490 0.078258 0.014696 0.040026 0.204980 0.099284 0.307471 +0.148574 +0.013779 0.061676 0.042489 0.063608 0.026159 0.228377 0.054737 0.014895 0.043755 0.084827 0.045858 0.043978 0.035371 0.056156 0.103811 0.078812 0.032378 0.117699 0.064166 0.056757 0.056645 0.102490 0.101478 0.036255 0.029867 0.239144 0.081238 0.020387 0.025297 0.204980 0.091849 0.273307 +0.068602 +0.064824 0.039902 0.210829 0.075421 0.018905 0.294205 0.004499 0.003448 0.091889 0.036040 0.041905 0.069386 0.031261 0.042108 0.041833 0.111240 0.027771 0.140442 0.043871 0.027299 0.043235 0.102490 0.056277 0.032292 0.054355 0.136654 0.075169 0.038266 0.019300 0.170817 0.055834 0.239144 +0.124675 +0.023733 0.068017 0.055093 0.042584 0.020249 0.087858 0.021046 0.032859 0.057373 0.113940 0.029493 0.055009 0.053252 0.065160 0.086525 0.121647 0.030466 0.052379 0.054329 0.046685 0.034966 0.102490 0.066529 0.002610 0.001230 0.102490 0.077060 0.066600 0.004507 0.102490 0.055335 0.239144 +0 +0.038744 0.028700 0.225042 0.039364 0.036764 0.232050 0.059814 0.003082 0.061795 0.057553 0.050432 0.121652 0.011882 0.034285 0.069428 0.054985 0.037679 0.083169 0.057372 0.055358 0.052454 0.136654 0.100438 0.023232 0.007794 0.136654 0.062114 0.037053 0.026758 0.136654 0.073382 0.204980 +0.115412 +0.026312 0.040614 0.038531 0.039297 0.045338 0.061569 0.002822 0.011635 0.077809 0.069422 0.020156 0.034378 0.014611 0.046269 0.073571 0.111049 0.045711 0.093204 0.042559 0.045049 0.029541 0.136654 0.101240 0.027576 0.051309 0.102490 0.052960 0.017620 0.019493 0.136654 0.069373 0.239144 +0.004483 +0.035280 0.052917 0.037777 0.177905 0.025284 0.484213 0.062478 0.024454 0.084014 0.068445 0.031553 0.160442 0.018571 0.042338 0.074081 0.037111 0.026586 0.059934 0.039630 0.042155 0.054536 0.102490 0.084286 0.038301 0.023188 0.170817 0.100994 0.051322 0.053053 0.102490 0.066922 0.239144 +0.026697 +0.039596 0.053209 0.136553 0.081459 0.018822 0.093924 0.049820 0.061803 0.037093 0.058758 0.038421 0.051555 0.038891 0.013100 0.067740 0.044065 0.030608 0.052882 0.056365 0.040454 0.048776 0.170817 0.069215 0.024715 0.029684 0.136654 0.088868 0.068120 0.065129 0.239144 0.056894 0.273307 +0 +0.065379 0.052517 0.131385 0.038080 0.027575 0.172863 0.045267 0.050330 0.055897 0.037590 0.045092 0.254706 0.022146 0.058256 0.044173 0.153415 0.018405 0.186812 0.064818 0.049072 0.027556 0.239144 0.055464 0.044137 0.025327 0.170817 0.092626 0.010714 0.048717 0.273307 0.072309 0.341634 +0.273325 +0.031918 0.044723 0.089991 0.124157 0.049149 0.077980 0.019611 0.067844 0.129100 0.060251 0.018156 0.153224 0.044848 0.014169 0.135623 0.086716 0.027448 0.074558 0.056138 0.017803 0.059353 0.170817 0.069569 0.038500 0.046933 0.136654 0.087472 0.065345 0.061792 0.102490 0.071543 0.239144 +0.018933 +0.000578 0.035580 0.093430 0.038820 0.032518 0.225851 0.023019 0.012336 0.040239 0.097919 0.022899 0.137626 0.043244 0.039514 0.049273 0.165834 0.024261 0.034462 0.047928 0.062539 0.039576 0.102490 0.071433 0.029656 0.006299 0.136654 0.084615 0.022252 0.012644 0.136654 0.051330 0.239144 +0.001732 +0.036584 0.006258 0.140888 0.034555 0.040443 0.159383 0.050429 0.023703 0.041358 0.042625 0.049141 0.045432 0.053710 0.002405 0.151436 0.063716 0.041099 0.405474 0.049033 0.060627 0.029382 0.204980 0.065899 0.045438 0.011068 0.136654 0.067942 0.030633 0.003575 0.204980 0.073983 0.307471 +0.467215 +0.043648 0.038880 0.046532 0.046826 0.041698 0.205022 0.013827 0.034549 0.053805 0.060650 0.049796 0.088106 0.019577 0.059852 0.059540 0.077762 0.031412 0.067881 0.053077 0.001953 0.031325 0.170817 0.080035 0.037982 0.012612 0.170817 0.051532 0.043603 0.016636 0.102490 0.083832 0.239144 +0.010176 +0.045911 0.011161 0.036623 0.081200 0.048556 0.071975 0.060726 0.021949 0.050585 0.047031 0.035056 0.048165 0.068196 0.016395 0.055778 0.090085 0.042320 0.278608 0.050786 0.001969 0.035241 0.102490 0.065387 0.044510 0.036429 0.136654 0.080980 0.032009 0.007573 0.136654 0.102159 0.307471 +0.003372 +0.003751 0.008808 0.190811 0.096771 0.023286 0.051284 0.051785 0.020697 0.073355 0.063675 0.037020 0.208133 0.031766 0.017242 0.040841 0.049344 0.047414 0.055811 0.055473 0.022046 0.027004 0.273307 0.051305 0.048696 0.058829 0.273307 0.089114 0.041141 0.035847 0.273307 0.054197 0.307471 +0.099979 +0.014459 0.025968 0.046463 0.078684 0.042275 0.040745 0.007575 0.058140 0.071457 0.042534 0.043207 0.035361 0.025389 0.015391 0.053665 0.050184 0.037709 0.045785 0.037281 0.015217 0.038166 0.204980 0.061540 0.047274 0.033742 0.170817 0.053220 0.016235 0.043831 0.136654 0.064891 0.341634 +0 +0.056000 0.059493 0.064724 0.066737 0.050862 0.109009 0.011698 0.017644 0.042767 0.048594 0.023799 0.049983 0.002753 0.024058 0.058100 0.044705 0.034108 0.069704 0.055913 0.028110 0.019503 0.239144 0.064189 0.048893 0.046775 0.239144 0.076059 0.063827 0.011157 0.239144 0.078077 0.273307 +0.001383 +0.026719 0.029465 0.071113 0.040928 0.031464 0.199380 0.038018 0.045222 0.058907 0.148293 0.030374 0.040209 0.012608 0.029305 0.050289 0.044863 0.017519 0.073426 0.052222 0.051321 0.051555 0.204980 0.063035 0.002474 0.067700 0.170817 0.088070 0.008099 0.042052 0.102490 0.071076 0.239144 +0 +0.017550 0.022948 0.061596 0.055777 0.028775 0.126339 0.032815 0.049411 0.075849 0.168909 0.043963 0.177378 0.035141 0.061466 0.088029 0.067211 0.020677 0.249061 0.059530 0.036700 0.027155 0.204980 0.098024 0.016020 0.062904 0.136654 0.086917 0.036270 0.032761 0.102490 0.063302 0.239144 +0.146948 +0.006275 0.044092 0.040903 0.063089 0.021302 0.310484 0.011066 0.004576 0.135286 0.054954 0.039653 0.498499 0.023474 0.021036 0.070413 0.109189 0.039061 0.239902 0.064764 0.036759 0.041741 0.273307 0.061668 0.064029 0.045612 0.273307 0.060684 0.048742 0.064148 0.273307 0.055317 0.307471 +0.827275 +0.054369 0.038114 0.047533 0.139806 0.050860 0.067735 0.025660 0.058148 0.036460 0.056460 0.046693 0.108023 0.019305 0.058871 0.034426 0.053668 0.036297 0.180035 0.058067 0.053882 0.008875 0.170817 0.079112 0.060735 0.026320 0.204980 0.087885 0.016472 0.049596 0.170817 0.091490 0.273307 +0.008011 +0.009527 0.061485 0.055763 0.043130 0.036325 0.220734 0.036071 0.009789 0.112431 0.064639 0.050851 0.180402 0.025950 0.045731 0.098921 0.035892 0.017730 0.247858 0.058886 0.040482 0.022750 0.170817 0.073009 0.050609 0.023990 0.102490 0.084489 0.059493 0.060697 0.204980 0.089059 0.239144 +0.395007 +0.000751 0.046170 0.071369 0.089574 0.023548 0.107712 0.067418 0.001835 0.043941 0.061178 0.023396 0.083338 0.026247 0.016205 0.084559 0.044545 0.033811 0.107075 0.060528 0.048610 0.062624 0.204980 0.092738 0.027915 0.033855 0.170817 0.075799 0.005026 0.028265 0.102490 0.077565 0.307471 +0 +0.000395 0.028178 0.066187 0.037283 0.039237 0.106208 0.053048 0.059825 0.039092 0.110254 0.023649 0.086613 0.053360 0.040974 0.051675 0.138466 0.026034 0.120636 0.047654 0.032538 0.026274 0.136654 0.071064 0.033623 0.037707 0.102490 0.072252 0.039735 0.053367 0.136654 0.072432 0.204980 +0.011051 +0.067169 0.050127 0.037770 0.097333 0.030841 0.300881 0.061930 0.048964 0.045756 0.077985 0.038439 0.107604 0.015125 0.048933 0.045596 0.060564 0.044779 0.114754 0.038765 0.064065 0.053847 0.170817 0.067670 0.030375 0.060001 0.102490 0.088740 0.058192 0.062146 0.170817 0.095947 0.204980 +0.417596 +0.000538 0.053922 0.056581 0.049327 0.038897 0.312355 0.044474 0.039647 0.078458 0.100956 0.036222 0.236875 0.012918 0.020827 0.053249 0.069109 0.022684 0.147594 0.060563 0.036324 0.049869 0.136654 0.081564 0.021456 0.013691 0.170817 0.061604 0.052957 0.013110 0.204980 0.064345 0.239144 +0.392288 +0.000463 0.020783 0.041531 0.060093 0.032598 0.076863 0.020223 0.041272 0.092410 0.111687 0.020499 0.188805 0.006913 0.042577 0.036592 0.045982 0.050238 0.105768 0.052462 0.023293 0.063783 0.136654 0.102274 0.062629 0.033468 0.170817 0.091187 0.047406 0.005844 0.170817 0.087881 0.239144 +0.022931 +0.065965 0.038689 0.074481 0.077311 0.028140 0.460112 0.047749 0.016288 0.102041 0.043652 0.032346 0.364622 0.039272 0.044494 0.093823 0.060572 0.025100 0.042489 0.058452 0.058586 0.005891 0.102490 0.056003 0.016141 0.042377 0.204980 0.060858 0.010096 0.065682 0.136654 0.089647 0.239144 +0.585128 +0.053025 0.011761 0.053316 0.042879 0.030498 0.178095 0.020894 0.026114 0.054818 0.048282 0.046404 0.087777 0.066011 0.036720 0.058153 0.118777 0.048096 0.421876 0.063006 0.041195 0.003847 0.170817 0.079515 0.000011 0.049401 0.102490 0.071534 0.063159 0.005713 0.170817 0.068391 0.307471 +0.109130 +0.064106 0.002209 0.036754 0.048070 0.023603 0.105383 0.042579 0.058566 0.051150 0.077287 0.041042 0.121593 0.064794 0.009399 0.041608 0.078111 0.024722 0.501920 0.066364 0.057361 0.026193 0.136654 0.055972 0.019242 0.029294 0.239144 0.082644 0.029226 0.011937 0.204980 0.069518 0.307471 +0.628005 +0.043471 0.014029 0.162462 0.049882 0.029817 0.078491 0.063702 0.023655 0.195100 0.040699 0.043637 0.080938 0.052113 0.026279 0.068733 0.034199 0.026667 0.536984 0.049124 0.015583 0.038395 0.136654 0.071608 0.027948 0.003378 0.239144 0.093349 0.043912 0.063232 0.170817 0.093688 0.273307 +0.592717 +0.061560 0.013087 0.036479 0.058548 0.026945 0.113423 0.037224 0.032865 0.055001 0.087902 0.039737 0.116088 0.062720 0.059361 0.044116 0.107246 0.041096 0.175670 0.052604 0.034263 0.007790 0.273307 0.075852 0.027879 0.015599 0.273307 0.072907 0.026256 0.064946 0.239144 0.074320 0.341634 +0.020871 +0.006991 0.005943 0.079756 0.034846 0.023897 0.192303 0.004760 0.022754 0.036530 0.105846 0.047429 0.048078 0.053551 0.061525 0.038108 0.040876 0.029532 0.084903 0.051294 0.031564 0.022375 0.170817 0.094740 0.027196 0.029465 0.136654 0.072354 0.028224 0.022395 0.102490 0.094316 0.273307 +0.025164 +0.001817 0.008068 0.070247 0.071365 0.041699 0.061968 0.001192 0.041441 0.086294 0.056488 0.033840 0.232476 0.060613 0.023156 0.058940 0.046415 0.043523 0.035079 0.048510 0.029698 0.068310 0.136654 0.054039 0.056281 0.038332 0.102490 0.059427 0.048903 0.049877 0.170817 0.056233 0.204980 +0.316890 +0.052018 0.043269 0.038172 0.037861 0.045702 0.068089 0.000843 0.037127 0.083026 0.098849 0.049622 0.135049 0.021031 0.060819 0.089170 0.064931 0.025546 0.096255 0.065867 0.036416 0.048580 0.170817 0.085676 0.030183 0.005827 0.170817 0.083681 0.040749 0.061622 0.102490 0.084274 0.307471 +0.002450 +0.047856 0.065962 0.057077 0.038967 0.025581 0.107609 0.028687 0.049354 0.043011 0.042312 0.039548 0.542002 0.020972 0.009163 0.040847 0.075791 0.031913 0.111417 0.041120 0.058412 0.027835 0.102490 0.058343 0.039136 0.008659 0.170817 0.092825 0.060546 0.048097 0.102490 0.078694 0.204980 +0.743827 +0.006025 0.009895 0.070000 0.055286 0.049399 0.070432 0.020331 0.000963 0.078574 0.060070 0.049913 0.147611 0.015392 0.059127 0.046810 0.068309 0.017363 0.256829 0.043829 0.067336 0.004971 0.204980 0.055065 0.002389 0.067255 0.102490 0.072591 0.067185 0.059530 0.239144 0.051334 0.341634 +0.251375 +0.037479 0.023362 0.038379 0.070239 0.027010 0.160783 0.012028 0.026333 0.060802 0.049485 0.019538 0.151910 0.035984 0.032290 0.042562 0.059701 0.022092 0.180260 0.045549 0.042813 0.055516 0.102490 0.073974 0.023041 0.030063 0.307471 0.066084 0.024250 0.033180 0.136654 0.076363 0.341634 +0.227775 +0.011423 0.054372 0.051272 0.041599 0.045282 0.093033 0.019450 0.062524 0.130142 0.045858 0.044023 0.298089 0.027464 0.011840 0.087617 0.120084 0.024466 0.122919 0.058588 0.008103 0.025891 0.239144 0.059594 0.058000 0.042429 0.204980 0.072902 0.029633 0.030575 0.204980 0.054994 0.273307 +0.029117 +0.015473 0.018908 0.074904 0.133115 0.024311 0.325215 0.007482 0.039826 0.095150 0.042542 0.049352 0.148113 0.064171 0.005446 0.044343 0.057716 0.043985 0.067596 0.053229 0.012702 0.063638 0.170817 0.101403 0.035004 0.043197 0.136654 0.090812 0.001359 0.036470 0.273307 0.102388 0.341634 +0.044521 +0.023217 0.006803 0.049937 0.039997 0.028968 0.077979 0.061321 0.032503 0.039115 0.097349 0.035326 0.416333 0.016014 0.034274 0.050155 0.045382 0.049796 0.171845 0.044237 0.044973 0.065018 0.204980 0.058292 0.049400 0.053080 0.204980 0.062807 0.029771 0.012236 0.204980 0.080402 0.239144 +0.347877 +0.016279 0.057885 0.043435 0.045851 0.050288 0.059336 0.056410 0.030738 0.045715 0.135294 0.046027 0.308443 0.016074 0.027080 0.039953 0.040839 0.031676 0.099653 0.054123 0.056357 0.033482 0.273307 0.084177 0.004547 0.043621 0.170817 0.070133 0.035031 0.022280 0.136654 0.052616 0.341634 +0.003497 +0.064061 0.055319 0.112145 0.085825 0.020580 0.390974 0.003566 0.054949 0.066323 0.044599 0.043594 0.121999 0.017501 0.031960 0.070207 0.192213 0.038476 0.057509 0.040787 0.012268 0.045007 0.170817 0.077541 0.038561 0.039485 0.170817 0.052708 0.011730 0.037260 0.170817 0.072308 0.204980 +0.155211 +0.003806 0.015934 0.095983 0.108111 0.030263 0.107346 0.033157 0.012643 0.101095 0.120444 0.021083 0.357444 0.020532 0.064861 0.045436 0.037550 0.022377 0.127829 0.054658 0.023539 0.050323 0.170817 0.064568 0.042774 0.019810 0.170817 0.094340 0.000916 0.005839 0.170817 0.096906 0.204980 +0.619821 +0.044899 0.054139 0.045233 0.095271 0.027761 0.353436 0.002582 0.050436 0.038286 0.105823 0.025062 0.088132 0.018488 0.011314 0.046381 0.038699 0.017181 0.073143 0.055882 0.036482 0.011956 0.204980 0.075662 0.041034 0.053960 0.102490 0.074444 0.060644 0.060926 0.102490 0.092804 0.239144 +0.052535 +0.018347 0.043639 0.076757 0.061018 0.040300 0.078420 0.004083 0.007297 0.036662 0.083574 0.023679 0.069534 0.064056 0.021076 0.094866 0.068451 0.045172 0.143938 0.061054 0.050062 0.034938 0.102490 0.064303 0.029696 0.063461 0.170817 0.066128 0.067002 0.013572 0.136654 0.057354 0.204980 +0 +0.025816 0.045250 0.043209 0.077257 0.033653 0.056091 0.056669 0.050491 0.041960 0.060219 0.049681 0.040196 0.025939 0.052962 0.070806 0.061460 0.036831 0.797288 0.037773 0.036558 0.010613 0.102490 0.064890 0.002659 0.010626 0.204980 0.098092 0.028345 0.053215 0.170817 0.095992 0.307471 +0.189490 +0.061215 0.024350 0.053597 0.087428 0.018498 0.382147 0.066331 0.059803 0.081198 0.068226 0.037087 0.076958 0.002578 0.015823 0.074340 0.041514 0.041500 0.057207 0.047542 0.019389 0.051702 0.239144 0.102225 0.065451 0.039317 0.307471 0.092401 0.043417 0.005847 0.239144 0.062976 0.341634 +0.082756 +0.056157 0.034517 0.090989 0.034772 0.032818 0.238459 0.009061 0.020230 0.085821 0.035801 0.019934 0.125390 0.041495 0.065592 0.086158 0.053204 0.051064 0.060075 0.046441 0.035302 0.012774 0.170817 0.061190 0.022272 0.032062 0.102490 0.093173 0.064116 0.031267 0.102490 0.092809 0.204980 +0.047835 +0.059346 0.055187 0.081739 0.059258 0.035788 0.058680 0.043430 0.059548 0.035237 0.108238 0.045489 0.036960 0.003805 0.002906 0.035183 0.067081 0.048063 0.039071 0.062125 0.054538 0.038411 0.102490 0.057198 0.058139 0.031265 0.102490 0.099208 0.027299 0.054410 0.204980 0.055187 0.307471 +0 +0.044744 0.066076 0.095450 0.059599 0.030807 0.232728 0.006305 0.025241 0.098553 0.062956 0.031630 0.076702 0.009527 0.037553 0.061012 0.104511 0.027860 0.263236 0.055613 0.056800 0.028165 0.136654 0.057494 0.056533 0.004137 0.239144 0.080548 0.034903 0.022487 0.136654 0.054552 0.307471 +0.438080 +0.064241 0.001038 0.089759 0.048846 0.041727 0.159738 0.035559 0.041378 0.098513 0.055299 0.040698 0.123244 0.034689 0.004426 0.038129 0.061451 0.033286 0.135202 0.058941 0.008161 0.033873 0.204980 0.064910 0.056641 0.010732 0.204980 0.083229 0.039074 0.018835 0.239144 0.067764 0.273307 +0.101996 +0.004486 0.062976 0.058902 0.078285 0.039237 0.058837 0.046169 0.030978 0.094222 0.076361 0.022248 0.318053 0.056249 0.019519 0.044378 0.061646 0.024221 0.121059 0.060776 0.064486 0.045716 0.170817 0.098755 0.049183 0.036624 0.102490 0.093914 0.039058 0.044838 0.136654 0.066915 0.273307 +0.039295 +0.057200 0.068019 0.160676 0.043232 0.029565 0.056776 0.003123 0.015165 0.037243 0.111799 0.034977 0.195658 0.033846 0.045312 0.067791 0.036513 0.019141 0.120674 0.049215 0.021917 0.025262 0.136654 0.096415 0.059495 0.053033 0.136654 0.080970 0.031805 0.028407 0.170817 0.093141 0.204980 +0.179642 +0.048746 0.016706 0.047075 0.045062 0.049475 0.109050 0.044329 0.019264 0.071469 0.074477 0.049352 0.066922 0.002246 0.017835 0.058662 0.070705 0.044311 0.040135 0.049917 0.042747 0.037536 0.239144 0.062676 0.016893 0.030802 0.204980 0.084486 0.027694 0.050675 0.170817 0.060535 0.273307 +0 +0.015970 0.005605 0.063568 0.060921 0.019392 0.138014 0.050494 0.055432 0.041766 0.071022 0.020624 0.133773 0.003252 0.052969 0.069441 0.035826 0.029524 0.146520 0.059574 0.029809 0.012988 0.170817 0.069707 0.017674 0.028968 0.170817 0.096768 0.012058 0.052866 0.170817 0.078741 0.239144 +0.174193 +0.038921 0.043130 0.036859 0.056673 0.025820 0.042435 0.020404 0.048354 0.081532 0.063503 0.045591 0.063492 0.058204 0.006920 0.049621 0.093197 0.027157 0.089604 0.050936 0.008606 0.001130 0.136654 0.071905 0.052513 0.037546 0.170817 0.091103 0.062850 0.035800 0.136654 0.085195 0.239144 +0 +0.061056 0.045724 0.056111 0.046253 0.017088 0.037152 0.025686 0.055610 0.036866 0.041246 0.050411 0.059427 0.063014 0.052057 0.165582 0.037409 0.037256 0.178374 0.052363 0.048524 0.025813 0.102490 0.095595 0.031963 0.008707 0.170817 0.079860 0.018813 0.057900 0.170817 0.064480 0.341634 +0 +0.023758 0.023963 0.162631 0.041946 0.017414 0.210874 0.011455 0.037689 0.048568 0.080756 0.047136 0.120202 0.022906 0.020719 0.034381 0.050705 0.021853 0.036688 0.044923 0.019558 0.012126 0.136654 0.067548 0.042294 0.062913 0.239144 0.055427 0.051909 0.060557 0.102490 0.071400 0.273307 +0.396784 +0.023698 0.053562 0.112553 0.107145 0.042781 0.227244 0.055645 0.036166 0.083182 0.061304 0.030324 0.117781 0.005658 0.041588 0.039428 0.120610 0.036754 0.124019 0.037883 0.007803 0.035905 0.273307 0.099115 0.049216 0.044860 0.239144 0.063360 0.015564 0.062688 0.239144 0.066788 0.307471 +0.089308 +0.035735 0.048700 0.040834 0.043682 0.023466 0.079038 0.017881 0.067790 0.076405 0.054520 0.018840 0.075175 0.005991 0.044698 0.038806 0.050438 0.047933 0.041945 0.046853 0.000944 0.063033 0.204980 0.057596 0.064028 0.023378 0.239144 0.056146 0.039073 0.034291 0.239144 0.073224 0.273307 +0 +0.066075 0.042089 0.037187 0.039966 0.041717 0.056743 0.058364 0.054910 0.080419 0.064709 0.025694 0.157058 0.000786 0.005832 0.061554 0.068190 0.025650 0.066646 0.053239 0.010324 0.061927 0.136654 0.075691 0.005407 0.054528 0.170817 0.052921 0.008648 0.000147 0.136654 0.052925 0.273307 +0 +0.046799 0.026434 0.067067 0.041495 0.028387 0.055937 0.000485 0.051136 0.067614 0.079175 0.040118 0.132896 0.029179 0.037663 0.058623 0.062844 0.036181 0.064907 0.046555 0.037448 0.052195 0.102490 0.079480 0.020081 0.060420 0.204980 0.091306 0.035537 0.020882 0.102490 0.079286 0.239144 +0.003049 +0.063229 0.027253 0.053406 0.041919 0.043693 0.047947 0.013662 0.015406 0.068901 0.051718 0.025064 0.070074 0.031748 0.040704 0.051412 0.037130 0.037329 0.101801 0.052016 0.067658 0.034472 0.204980 0.062838 0.013904 0.006054 0.102490 0.080266 0.003471 0.048276 0.204980 0.078196 0.239144 +0.026523 +0.049280 0.015779 0.067945 0.059114 0.031778 0.035088 0.056333 0.020958 0.041814 0.093935 0.040585 0.165822 0.001523 0.050327 0.087542 0.041783 0.019484 0.051822 0.058564 0.039487 0.028162 0.239144 0.101315 0.034628 0.053593 0.170817 0.055654 0.039121 0.038568 0.239144 0.072446 0.307471 +0 +0.045541 0.012556 0.052260 0.071976 0.045419 0.108604 0.068034 0.016660 0.085259 0.055299 0.037956 0.066071 0.020695 0.055016 0.042872 0.041019 0.026935 0.134049 0.057159 0.024991 0.017608 0.273307 0.075073 0.044038 0.057775 0.204980 0.080764 0.038711 0.048717 0.102490 0.082678 0.307471 +0.012279 +0.044652 0.055693 0.060240 0.090856 0.028159 0.154379 0.063818 0.032896 0.040542 0.130122 0.025328 0.418416 0.038096 0.012913 0.117590 0.042854 0.040661 0.121955 0.041627 0.020034 0.014661 0.102490 0.097683 0.012939 0.030704 0.136654 0.059692 0.052064 0.060844 0.102490 0.093757 0.204980 +0.173803 +0.031653 0.031650 0.087898 0.046968 0.045395 0.195267 0.061450 0.047980 0.041966 0.155287 0.050330 0.071845 0.035492 0.023439 0.110436 0.056727 0.024030 0.080549 0.041714 0.048436 0.012532 0.170817 0.054140 0.049762 0.057464 0.136654 0.071525 0.022365 0.006813 0.239144 0.055213 0.273307 +0.068981 +0.028649 0.015277 0.061033 0.061276 0.023635 0.071685 0.066074 0.036982 0.064237 0.084697 0.026672 0.237260 0.025635 0.008166 0.221320 0.084376 0.040236 0.399654 0.058774 0.060439 0.031128 0.170817 0.089910 0.040084 0.068064 0.170817 0.065299 0.025290 0.050872 0.102490 0.073210 0.239144 +0.218053 +0.050020 0.053790 0.068015 0.040390 0.021200 0.039863 0.068067 0.013897 0.044888 0.090945 0.046412 0.117703 0.029554 0.046416 0.040437 0.042759 0.039927 0.068710 0.054278 0.022258 0.056881 0.136654 0.070239 0.041165 0.049234 0.102490 0.081947 0.060773 0.010361 0.273307 0.053411 0.341634 +0.002430 +0.016173 0.032449 0.090072 0.060473 0.039174 0.163660 0.013097 0.000499 0.070057 0.099087 0.038546 0.452310 0.013383 0.034808 0.048411 0.056938 0.026265 0.073235 0.045166 0.000174 0.058076 0.170817 0.090484 0.004992 0.047572 0.204980 0.098150 0.050156 0.010071 0.136654 0.091471 0.341634 +0.013804 +0.038391 0.065347 0.090746 0.065768 0.023466 0.190138 0.052381 0.011972 0.079426 0.036564 0.045722 0.087521 0.051040 0.040975 0.066310 0.060932 0.051050 0.647579 0.057247 0.062037 0.060347 0.170817 0.090210 0.007852 0.016478 0.136654 0.051592 0.024148 0.006139 0.136654 0.083392 0.239144 +0.189872 +0.052022 0.047762 0.084879 0.070525 0.047816 0.087420 0.016332 0.062873 0.057343 0.035550 0.040055 0.040449 0.008963 0.006668 0.035674 0.094909 0.021417 0.557763 0.045703 0.000485 0.055810 0.170817 0.053450 0.038823 0.014306 0.136654 0.098452 0.001511 0.021553 0.136654 0.069446 0.239144 +0.237776 +0.049470 0.011561 0.143467 0.037682 0.049434 0.054929 0.044623 0.032340 0.067215 0.038211 0.048425 0.322098 0.048931 0.017547 0.079202 0.121546 0.047793 0.496701 0.050261 0.038989 0.065594 0.136654 0.056616 0.066020 0.035983 0.170817 0.065683 0.054156 0.040479 0.273307 0.077755 0.307471 +0.647439 +0.046688 0.061762 0.036245 0.034953 0.043185 0.185030 0.001056 0.042912 0.067117 0.041522 0.035395 0.042705 0.061263 0.049766 0.203959 0.036682 0.018724 0.130322 0.048066 0.058204 0.064111 0.170817 0.074901 0.019640 0.045867 0.136654 0.064825 0.001007 0.045357 0.170817 0.088317 0.273307 +0.008026 +0.037299 0.014733 0.075441 0.061154 0.036934 0.148735 0.048096 0.064779 0.107420 0.057602 0.027643 0.207395 0.026057 0.007611 0.034562 0.034694 0.028856 0.081333 0.055856 0.066557 0.056296 0.102490 0.063550 0.017969 0.051448 0.136654 0.064168 0.000758 0.005406 0.102490 0.055997 0.204980 +0.194173 +0.006471 0.013577 0.093252 0.049626 0.035645 0.043646 0.000753 0.017387 0.036633 0.097211 0.042359 0.053252 0.002034 0.067237 0.052726 0.039724 0.037113 0.172018 0.052345 0.032215 0.059966 0.136654 0.060515 0.035621 0.044362 0.102490 0.080429 0.037338 0.066938 0.136654 0.100811 0.239144 +0.008427 +0.008957 0.000641 0.043361 0.112422 0.050059 0.290074 0.007920 0.061239 0.044209 0.086120 0.037083 0.184955 0.060432 0.027064 0.132331 0.036745 0.032538 0.048817 0.057402 0.033409 0.039032 0.204980 0.062435 0.062895 0.002639 0.136654 0.054003 0.007185 0.036198 0.170817 0.057112 0.239144 +0.034136 +0.035784 0.016720 0.054557 0.062717 0.019836 0.060999 0.036942 0.059114 0.038730 0.096972 0.019023 0.050133 0.041448 0.003489 0.043609 0.088611 0.039425 0.381523 0.048523 0.011401 0.041270 0.170817 0.100398 0.055500 0.060354 0.273307 0.080123 0.032433 0.030934 0.273307 0.077165 0.307471 +0.124647 +0.036033 0.057800 0.053123 0.054746 0.036282 0.157918 0.012872 0.058223 0.041854 0.078706 0.047414 0.143340 0.044226 0.052897 0.079360 0.045130 0.034724 0.195390 0.062014 0.052240 0.018505 0.136654 0.052537 0.055431 0.017516 0.204980 0.073030 0.011172 0.048526 0.204980 0.093243 0.239144 +0.227320 +0.036528 0.031234 0.159063 0.037693 0.046359 0.100316 0.039693 0.042165 0.084323 0.083470 0.028681 0.140136 0.048674 0.021771 0.057605 0.052962 0.031379 0.235095 0.045305 0.020848 0.018737 0.102490 0.091703 0.027822 0.028160 0.170817 0.079338 0.016718 0.060333 0.170817 0.093659 0.204980 +0.288172 +0.036985 0.019255 0.086282 0.089609 0.034837 0.102217 0.022613 0.001808 0.040994 0.052738 0.047218 0.100688 0.065038 0.049542 0.050082 0.090857 0.042746 0.038437 0.056971 0.035381 0.058193 0.204980 0.053501 0.012311 0.025833 0.204980 0.084886 0.041996 0.035768 0.136654 0.053619 0.273307 +0 +0.011591 0.002461 0.095641 0.043855 0.051075 0.105840 0.051780 0.014924 0.056412 0.059674 0.028493 0.078458 0.055066 0.048187 0.035800 0.050352 0.038736 0.062147 0.047515 0.029524 0.007991 0.170817 0.082630 0.046771 0.030194 0.102490 0.095255 0.003567 0.010507 0.170817 0.052013 0.239144 +0.001093 +0.053495 0.050563 0.045148 0.049723 0.031225 0.078117 0.054620 0.008548 0.037681 0.145082 0.038210 0.045135 0.031466 0.004547 0.073660 0.053906 0.024685 0.079024 0.062273 0.032922 0.024554 0.102490 0.089186 0.040636 0.068160 0.204980 0.090958 0.016341 0.027552 0.239144 0.093280 0.273307 +0 +0.050598 0.020526 0.082572 0.079217 0.050677 0.036880 0.052140 0.054418 0.038951 0.043590 0.032886 0.040917 0.048897 0.051671 0.035467 0.045150 0.038589 0.102877 0.050015 0.057724 0.030469 0.136654 0.091805 0.048060 0.018536 0.136654 0.093742 0.011533 0.040006 0.102490 0.057305 0.204980 +0 +0.028951 0.007666 0.043739 0.051284 0.050315 0.070331 0.065347 0.062737 0.035966 0.077992 0.020508 0.037187 0.046125 0.000118 0.083766 0.057519 0.049103 0.037698 0.037116 0.010514 0.012384 0.170817 0.054809 0.021033 0.067010 0.170817 0.057729 0.032079 0.036196 0.102490 0.073629 0.204980 +0 +0.038704 0.027835 0.068661 0.035399 0.035375 0.063951 0.050629 0.046380 0.054263 0.073333 0.036990 0.115909 0.034855 0.049672 0.048673 0.116955 0.026770 0.124190 0.049605 0.019660 0.038849 0.136654 0.094662 0.049740 0.012236 0.136654 0.091567 0.000602 0.015915 0.136654 0.061525 0.204980 +0.017047 +0.062238 0.050539 0.155473 0.059696 0.030152 0.054748 0.012404 0.051767 0.037911 0.044921 0.045927 0.310092 0.019699 0.028402 0.038515 0.071959 0.041615 0.096108 0.036487 0.033796 0.040484 0.204980 0.073491 0.034698 0.008513 0.136654 0.084708 0.029180 0.019792 0.204980 0.084063 0.273307 +0.828195 +0.010332 0.011881 0.047368 0.090365 0.042671 0.297654 0.066380 0.021739 0.045984 0.056767 0.047745 0.043389 0.009997 0.047703 0.040571 0.044093 0.051001 0.053881 0.037531 0.045597 0.045446 0.136654 0.058364 0.039808 0.025933 0.136654 0.102458 0.040914 0.051691 0.273307 0.082859 0.307471 +0.132718 +0.023022 0.010845 0.080076 0.103188 0.045979 0.466712 0.008287 0.062946 0.068012 0.049035 0.046152 0.184947 0.029879 0.024986 0.047673 0.050347 0.019978 0.070871 0.056848 0.024733 0.057761 0.273307 0.087150 0.067853 0.035063 0.136654 0.091436 0.000155 0.019491 0.204980 0.100476 0.307471 +0.161015 +0.020914 0.063239 0.124596 0.041504 0.028375 0.164391 0.013767 0.000795 0.072128 0.052861 0.036427 0.089436 0.024002 0.012906 0.067160 0.036590 0.020679 0.089297 0.061074 0.060142 0.004985 0.204980 0.082779 0.012834 0.001627 0.170817 0.052547 0.014556 0.003883 0.102490 0.097369 0.239144 +0 +0.043153 0.029477 0.054642 0.068461 0.036714 0.044041 0.025496 0.053242 0.063510 0.039731 0.051163 0.127861 0.048929 0.049892 0.037556 0.119618 0.039276 0.069109 0.049661 0.007441 0.024018 0.102490 0.090981 0.009477 0.009252 0.170817 0.094702 0.000907 0.065542 0.170817 0.082169 0.273307 +0.001098 +0.024159 0.059874 0.043034 0.055257 0.034468 0.159276 0.015311 0.034694 0.142497 0.048031 0.021213 0.058890 0.064642 0.015283 0.139574 0.083381 0.018932 0.345426 0.053616 0.056036 0.010526 0.239144 0.083156 0.049094 0.040406 0.273307 0.087413 0.025915 0.059219 0.239144 0.056407 0.307471 +0.207826 +0.007005 0.061727 0.054486 0.079671 0.041253 0.094877 0.008395 0.012242 0.057592 0.069578 0.039753 0.166385 0.034050 0.054908 0.053968 0.133437 0.026854 0.109556 0.061538 0.042431 0.046248 0.136654 0.084366 0.003235 0.003980 0.136654 0.078712 0.051960 0.025616 0.136654 0.072074 0.204980 +0.040279 +0.044821 0.053223 0.034309 0.050413 0.019156 0.245394 0.031870 0.056161 0.040447 0.068510 0.029786 0.279921 0.045643 0.065151 0.066744 0.061144 0.024877 0.143720 0.049936 0.004933 0.066346 0.170817 0.102086 0.007355 0.054757 0.136654 0.067302 0.031903 0.020321 0.102490 0.069182 0.204980 +0.121895 +0.050649 0.068055 0.079650 0.053946 0.029123 0.772565 0.063480 0.012974 0.128176 0.117868 0.026250 0.291149 0.057780 0.049387 0.084767 0.127523 0.035124 0.057550 0.040256 0.004940 0.024954 0.273307 0.075189 0.000654 0.057159 0.170817 0.069055 0.029426 0.028317 0.204980 0.073024 0.307471 +0.608369 +0.000563 0.048375 0.117627 0.063366 0.027459 0.139074 0.050924 0.056612 0.065163 0.072063 0.022389 0.067647 0.051733 0.012957 0.040784 0.149643 0.046290 0.064716 0.064404 0.034828 0.059364 0.102490 0.054504 0.046117 0.023987 0.273307 0.057791 0.035177 0.000208 0.273307 0.066916 0.307471 +0.001011 +0.002533 0.040135 0.042466 0.042619 0.041040 0.147731 0.065721 0.020728 0.046637 0.039154 0.035888 0.129458 0.045523 0.006298 0.053214 0.047544 0.020026 0.034295 0.049265 0.007531 0.053540 0.102490 0.095762 0.042862 0.065814 0.136654 0.087595 0.051014 0.050287 0.136654 0.052286 0.204980 +0.036513 +0.018057 0.053997 0.154297 0.039209 0.038460 0.069180 0.036820 0.014643 0.075929 0.036448 0.029907 0.042551 0.027974 0.032805 0.170887 0.097537 0.049412 0.096046 0.059505 0.021891 0.054903 0.102490 0.083367 0.029001 0.061034 0.102490 0.052128 0.011911 0.038703 0.170817 0.079270 0.204980 +0 +0.059329 0.038055 0.053851 0.085036 0.036089 0.055696 0.039933 0.050266 0.076079 0.037072 0.033264 0.229765 0.011328 0.050176 0.040627 0.035040 0.018655 0.304896 0.039096 0.036811 0.063052 0.102490 0.063416 0.063364 0.021143 0.239144 0.102476 0.017435 0.033082 0.102490 0.077461 0.307471 +0.520479 +0.054680 0.029911 0.089326 0.060097 0.025731 0.046823 0.064278 0.024270 0.055009 0.043280 0.030331 0.542962 0.022234 0.036947 0.092299 0.035995 0.038976 0.717872 0.058151 0.000685 0.064683 0.102490 0.071958 0.039006 0.048224 0.239144 0.052386 0.032648 0.039332 0.170817 0.100315 0.273307 +0.939479 +0.040453 0.013822 0.044804 0.042483 0.032131 0.225132 0.056732 0.009794 0.075391 0.076231 0.024622 0.043579 0.044956 0.021212 0.035653 0.054160 0.026186 0.048627 0.057988 0.065731 0.064851 0.204980 0.089537 0.065433 0.028612 0.204980 0.062414 0.057202 0.065878 0.136654 0.069291 0.307471 +0.005069 +0.023058 0.007292 0.122837 0.206762 0.018354 0.152079 0.033744 0.021876 0.072264 0.197741 0.018241 0.167335 0.036070 0.020642 0.052338 0.035042 0.032134 0.176224 0.050863 0.054047 0.003630 0.136654 0.084702 0.059574 0.064110 0.136654 0.100380 0.040205 0.028711 0.102490 0.091119 0.239144 +0.192396 +0.020208 0.053544 0.037522 0.099504 0.022116 0.045075 0.041712 0.023844 0.071245 0.041509 0.018462 0.174963 0.016730 0.005664 0.037381 0.039192 0.032861 0.037411 0.043303 0.043790 0.019801 0.102490 0.066447 0.006708 0.059881 0.170817 0.053827 0.019332 0.007799 0.170817 0.052514 0.273307 +0.199455 +0.007518 0.020806 0.110261 0.132101 0.024523 0.162601 0.065014 0.052087 0.035699 0.101740 0.048501 0.096003 0.033624 0.004921 0.043239 0.048673 0.048091 0.121182 0.043773 0.055677 0.021703 0.102490 0.096331 0.066078 0.019159 0.102490 0.085853 0.048267 0.060705 0.170817 0.086385 0.204980 +0.024949 +0.023471 0.037300 0.087184 0.153628 0.024330 0.244698 0.023292 0.016994 0.210163 0.085751 0.050866 0.118872 0.029185 0.051917 0.052113 0.079344 0.024368 0.088417 0.058812 0.027929 0.004416 0.170817 0.085820 0.051463 0.059779 0.136654 0.066346 0.032679 0.023626 0.204980 0.069086 0.273307 +0.038486 +0.019765 0.032378 0.044943 0.034486 0.023208 0.076503 0.059017 0.038586 0.041287 0.051976 0.025350 0.144705 0.059758 0.042220 0.058840 0.036850 0.037233 0.118214 0.058389 0.048047 0.043306 0.204980 0.068348 0.021232 0.053904 0.102490 0.055129 0.048709 0.031073 0.239144 0.067282 0.341634 +0.001620 +0.001875 0.045624 0.089202 0.051832 0.030518 0.199273 0.005807 0.039430 0.039662 0.053444 0.028371 0.357477 0.005954 0.053189 0.103397 0.034478 0.049899 0.064628 0.051675 0.022455 0.013984 0.136654 0.055254 0.067385 0.049338 0.136654 0.092579 0.033506 0.006680 0.204980 0.064283 0.273307 +0.617890 +0.006868 0.045251 0.094617 0.127516 0.018869 0.128061 0.064334 0.063603 0.080532 0.048431 0.042059 0.094986 0.017759 0.046998 0.059694 0.056099 0.024285 0.213800 0.049284 0.059439 0.044188 0.102490 0.080424 0.041989 0.052463 0.170817 0.080436 0.057953 0.046657 0.170817 0.076527 0.204980 +0.328869 +0.039415 0.000049 0.054445 0.058318 0.018441 0.269062 0.033682 0.062686 0.052896 0.059970 0.037850 0.082342 0.008151 0.035110 0.044018 0.040498 0.027636 0.068018 0.057094 0.044489 0.010788 0.307471 0.097827 0.017725 0.001628 0.273307 0.067086 0.043935 0.052675 0.136654 0.058569 0.341634 +0 +0.044051 0.010959 0.085521 0.038068 0.042408 0.209608 0.030154 0.002833 0.056943 0.035020 0.047481 0.046925 0.048811 0.031176 0.073777 0.138139 0.050530 0.153657 0.042684 0.016198 0.016294 0.136654 0.091008 0.001263 0.006666 0.204980 0.073550 0.000748 0.063076 0.204980 0.062561 0.239144 +0.186971 +0.011818 0.064560 0.038883 0.090167 0.043742 0.078831 0.055024 0.053984 0.039940 0.082578 0.027690 0.119668 0.063158 0.035704 0.044308 0.114900 0.029028 0.117079 0.052414 0.021772 0.015040 0.204980 0.101757 0.011878 0.060328 0.170817 0.063209 0.004960 0.007520 0.239144 0.098066 0.273307 +0.071366 +0.060544 0.029618 0.150304 0.034946 0.028194 0.144405 0.042334 0.045439 0.035837 0.057101 0.024891 0.071161 0.050201 0.014066 0.068899 0.089608 0.037773 0.258786 0.053314 0.048493 0.064984 0.239144 0.096647 0.060494 0.022102 0.136654 0.067913 0.034664 0.068200 0.239144 0.071765 0.273307 +0.016398 +0.012010 0.063969 0.057755 0.051992 0.017419 0.256784 0.034672 0.065923 0.034668 0.039815 0.035059 0.436153 0.052297 0.056943 0.044787 0.036827 0.020430 0.082199 0.062154 0.064280 0.004876 0.204980 0.100412 0.032001 0.032541 0.170817 0.073692 0.027675 0.044776 0.170817 0.098072 0.273307 +0.313307 +0.036134 0.034906 0.054919 0.058215 0.049092 0.311408 0.062269 0.020697 0.124354 0.062221 0.020049 0.339899 0.017035 0.054500 0.061053 0.114530 0.039022 0.041244 0.044215 0.058829 0.066418 0.307471 0.077666 0.053041 0.023955 0.170817 0.080966 0.054820 0.023662 0.307471 0.083827 0.341634 +0.071745 +0.012489 0.015817 0.037542 0.253476 0.046657 0.204585 0.018154 0.052689 0.123954 0.034956 0.048953 0.042552 0.003576 0.023255 0.164091 0.065746 0.018251 0.086982 0.063447 0.035558 0.059575 0.239144 0.080155 0.016645 0.053529 0.136654 0.077136 0.062768 0.011437 0.204980 0.090942 0.273307 +0.007468 +0.032980 0.060729 0.035365 0.034962 0.027016 0.290451 0.047651 0.023334 0.072696 0.060970 0.029620 0.114416 0.011713 0.027364 0.105798 0.093129 0.030419 0.137094 0.059834 0.064991 0.007473 0.136654 0.054845 0.057510 0.058437 0.136654 0.063529 0.026304 0.014019 0.102490 0.084513 0.239144 +0.138795 +0.057193 0.065822 0.090583 0.036914 0.035244 0.069711 0.002032 0.011353 0.132634 0.074064 0.037754 0.240792 0.007541 0.002074 0.054572 0.042530 0.019548 0.147368 0.057887 0.052282 0.065155 0.102490 0.058456 0.017301 0.037029 0.307471 0.061027 0.054664 0.016212 0.102490 0.098949 0.341634 +0.106138 +0.062170 0.057957 0.053065 0.059185 0.027659 0.074486 0.055341 0.044553 0.094992 0.036578 0.050708 0.050460 0.005666 0.010150 0.036344 0.034265 0.043426 0.100868 0.051866 0.034741 0.049388 0.136654 0.069274 0.057681 0.002769 0.170817 0.101238 0.019968 0.019282 0.170817 0.075579 0.273307 +0 +0.059533 0.012197 0.116470 0.085912 0.050897 0.068041 0.057860 0.030934 0.036233 0.086660 0.033711 0.190650 0.060433 0.055476 0.034442 0.071489 0.048532 0.107164 0.047766 0.037030 0.005105 0.102490 0.069750 0.017134 0.043767 0.136654 0.054452 0.006044 0.061180 0.102490 0.096950 0.204980 +0.043101 +0.009842 0.063377 0.050190 0.065696 0.020987 0.179238 0.033333 0.061044 0.059543 0.040471 0.027630 0.152465 0.005932 0.054463 0.036224 0.053575 0.050553 0.134499 0.050819 0.020242 0.054770 0.239144 0.061447 0.019324 0.000691 0.136654 0.099091 0.061520 0.014903 0.273307 0.084717 0.341634 +0.374794 +0.064545 0.066463 0.215818 0.057585 0.023375 0.044555 0.017493 0.016210 0.039356 0.046880 0.029908 0.212608 0.041059 0.013311 0.043039 0.035919 0.036005 0.067177 0.047623 0.016295 0.034195 0.170817 0.098261 0.039127 0.024251 0.204980 0.057504 0.041758 0.024512 0.170817 0.090520 0.307471 +0.005322 +0.036739 0.006614 0.047478 0.048126 0.031303 0.050103 0.010442 0.040077 0.099549 0.076109 0.023460 0.103740 0.048443 0.002958 0.051357 0.063602 0.039656 0.038175 0.057002 0.054258 0.056909 0.102490 0.090682 0.008564 0.065233 0.136654 0.056398 0.002862 0.014275 0.136654 0.082445 0.307471 +0 +0.014033 0.044957 0.056546 0.049957 0.035348 0.129835 0.049132 0.002539 0.057351 0.051068 0.038987 0.341838 0.043583 0.038927 0.051918 0.037241 0.020339 0.090921 0.059297 0.057848 0.037515 0.102490 0.054585 0.046914 0.005464 0.102490 0.078432 0.022713 0.029555 0.307471 0.072328 0.341634 +0.424631 +0.010550 0.050007 0.099084 0.044711 0.040444 0.051048 0.008496 0.015145 0.083516 0.044353 0.049098 0.050976 0.065067 0.061130 0.054205 0.079476 0.023766 0.231859 0.037909 0.008656 0.063157 0.136654 0.056707 0.001932 0.038084 0.102490 0.058899 0.030876 0.039365 0.136654 0.073169 0.239144 +0 +0.026655 0.025962 0.042309 0.047783 0.029412 0.122917 0.041647 0.017918 0.036299 0.038840 0.049420 0.104251 0.028835 0.009694 0.068847 0.040784 0.038245 0.070457 0.049869 0.012295 0.037190 0.102490 0.091635 0.041030 0.051562 0.136654 0.093447 0.058878 0.019284 0.136654 0.075775 0.204980 +0 +0.056024 0.016076 0.052659 0.078584 0.023084 0.146810 0.018245 0.047092 0.069140 0.044130 0.043007 0.157704 0.028790 0.037863 0.125585 0.074749 0.033241 0.134365 0.061355 0.066285 0.047598 0.102490 0.061243 0.021155 0.004460 0.273307 0.079106 0.019667 0.033938 0.239144 0.055783 0.307471 +0.022603 +0.026616 0.001990 0.079140 0.072598 0.050594 0.038059 0.061927 0.001348 0.064519 0.095669 0.036961 0.128662 0.047116 0.014576 0.043784 0.116058 0.031580 0.320990 0.054475 0.016624 0.057904 0.136654 0.090079 0.054286 0.016133 0.136654 0.083502 0.015613 0.043456 0.204980 0.051265 0.239144 +0.088642 +0.030608 0.068058 0.083270 0.042387 0.025347 0.065439 0.037845 0.003130 0.091065 0.040907 0.032582 0.435416 0.059314 0.043017 0.089531 0.052983 0.019945 0.407657 0.056358 0.021732 0.034563 0.102490 0.062864 0.001047 0.065440 0.170817 0.063841 0.025546 0.003473 0.102490 0.087702 0.204980 +0.581263 +0.027967 0.016420 0.043376 0.046087 0.031853 0.302586 0.003599 0.062316 0.047016 0.044288 0.042938 0.331290 0.024972 0.019236 0.051692 0.043282 0.023938 0.060139 0.057305 0.021970 0.045214 0.136654 0.099029 0.013004 0.028855 0.136654 0.091798 0.004900 0.041481 0.102490 0.085257 0.204980 +0.313677 +0.006692 0.035010 0.091323 0.048401 0.048376 0.079274 0.023639 0.054272 0.138086 0.056021 0.039192 0.067304 0.040941 0.058666 0.049862 0.067027 0.020030 0.087770 0.065031 0.017524 0.059000 0.239144 0.059048 0.012904 0.043393 0.102490 0.076598 0.051017 0.043044 0.307471 0.080727 0.341634 +0 +0.038440 0.060247 0.141059 0.055975 0.025148 0.061199 0.024268 0.000622 0.045916 0.046685 0.022421 0.140629 0.001577 0.026034 0.082786 0.047537 0.047172 0.182911 0.056800 0.031095 0.007015 0.239144 0.095374 0.018674 0.040737 0.170817 0.084615 0.040955 0.053469 0.102490 0.064147 0.273307 +0.117627 +0.058333 0.006751 0.042041 0.049400 0.050158 0.096383 0.064521 0.047749 0.058279 0.154810 0.037288 0.064511 0.005636 0.035588 0.038801 0.070890 0.037717 0.036105 0.048953 0.031832 0.006798 0.102490 0.051951 0.043063 0.055482 0.102490 0.063580 0.050510 0.044105 0.204980 0.063012 0.239144 +0 +0.048316 0.043923 0.061675 0.069256 0.020470 0.099872 0.048813 0.031980 0.052404 0.045304 0.023003 0.088777 0.012016 0.057609 0.043649 0.034186 0.033488 0.173598 0.058830 0.011172 0.050095 0.273307 0.061268 0.008954 0.036256 0.239144 0.093838 0.044145 0.044687 0.136654 0.061244 0.341634 +0 +0.014284 0.043532 0.122865 0.070163 0.044367 0.158591 0.058677 0.067134 0.100184 0.115613 0.045817 0.057864 0.008682 0.006033 0.035665 0.064928 0.038952 0.192722 0.038504 0.024480 0.018090 0.102490 0.090505 0.011975 0.005086 0.136654 0.098301 0.047222 0.008202 0.102490 0.057372 0.239144 +0.013222 +0.019544 0.019828 0.042210 0.091751 0.026440 0.046069 0.015528 0.025211 0.054815 0.062097 0.037996 0.156342 0.011331 0.047177 0.054167 0.080481 0.043882 0.172824 0.052775 0.006328 0.016125 0.136654 0.079317 0.058319 0.061172 0.102490 0.062629 0.006184 0.019615 0.102490 0.079259 0.204980 +0.161018 +0.021935 0.046614 0.034339 0.048484 0.042280 0.095768 0.027895 0.016717 0.091442 0.083780 0.021926 0.038869 0.052042 0.037201 0.086285 0.102848 0.017564 0.040076 0.049694 0.025802 0.018226 0.239144 0.058926 0.047637 0.037857 0.102490 0.086425 0.023968 0.011950 0.239144 0.073477 0.307471 +0 +0.029556 0.008687 0.136784 0.054895 0.038899 0.115187 0.045169 0.024372 0.039265 0.061882 0.033749 0.075981 0.032635 0.052723 0.060583 0.067375 0.045276 0.044206 0.059937 0.025467 0.027719 0.136654 0.070504 0.012665 0.021931 0.204980 0.081000 0.046518 0.011489 0.204980 0.092562 0.341634 +0 +0.043778 0.028648 0.088150 0.041561 0.030055 0.184028 0.030711 0.015213 0.143301 0.068210 0.039983 0.087514 0.031389 0.049123 0.102243 0.056201 0.039553 0.068873 0.052851 0.018711 0.052689 0.204980 0.083590 0.064901 0.010068 0.204980 0.069957 0.002286 0.017484 0.170817 0.084888 0.273307 +0.012209 +0.066322 0.032492 0.054640 0.055722 0.019432 0.080990 0.052820 0.048374 0.062951 0.042039 0.050221 0.103413 0.006913 0.056328 0.065513 0.103903 0.027325 0.062290 0.064556 0.031616 0.007397 0.239144 0.100150 0.036930 0.018309 0.273307 0.051635 0.002226 0.033317 0.204980 0.071857 0.307471 +0.005735 +0.039799 0.001081 0.058008 0.034165 0.032250 0.050243 0.057054 0.053592 0.057038 0.076120 0.045162 0.036362 0.057172 0.034854 0.080249 0.049029 0.050224 0.082370 0.062277 0.044863 0.046970 0.239144 0.062398 0.048023 0.027480 0.102490 0.079782 0.036252 0.018302 0.239144 0.058702 0.273307 +0 +0.042663 0.024476 0.051905 0.053113 0.049826 0.166395 0.013398 0.040967 0.049136 0.076525 0.025179 0.053511 0.052105 0.020003 0.056523 0.133857 0.032677 0.090112 0.054501 0.002083 0.043632 0.170817 0.087610 0.002093 0.031214 0.136654 0.064658 0.019539 0.042771 0.102490 0.058490 0.204980 +0 +0.064379 0.012907 0.058799 0.073288 0.038737 0.219701 0.000133 0.043665 0.044627 0.039409 0.029757 0.137717 0.031074 0.047326 0.085881 0.068036 0.035677 0.068427 0.054440 0.065859 0.002609 0.170817 0.094719 0.041056 0.023594 0.102490 0.057033 0.033360 0.048496 0.136654 0.082330 0.239144 +0.010823 +0.036884 0.042892 0.035370 0.046633 0.039457 0.038578 0.046141 0.050687 0.050073 0.162764 0.017207 0.067562 0.056347 0.042478 0.111052 0.058885 0.032902 0.096472 0.058892 0.019237 0.063003 0.136654 0.053092 0.038900 0.043679 0.204980 0.077883 0.059286 0.042128 0.204980 0.080444 0.273307 +0.008051 +0.038149 0.065093 0.049425 0.101019 0.029342 0.246654 0.014946 0.034775 0.038119 0.042095 0.045787 0.073665 0.014446 0.064412 0.043256 0.060135 0.030634 0.155471 0.055919 0.046979 0.042927 0.136654 0.066380 0.022925 0.022180 0.136654 0.097255 0.048254 0.001821 0.204980 0.099824 0.239144 +0.009684 +0.046020 0.045188 0.096563 0.055320 0.028219 0.169208 0.065888 0.030114 0.065583 0.059905 0.025127 0.134967 0.009043 0.030556 0.062802 0.105353 0.028200 0.062535 0.038925 0.020899 0.062117 0.102490 0.062300 0.000324 0.013250 0.136654 0.062250 0.020416 0.021478 0.204980 0.102124 0.341634 +0.069360 +0.058442 0.042469 0.097434 0.097072 0.047304 0.072405 0.051016 0.021030 0.040594 0.061579 0.034957 0.279181 0.055967 0.020962 0.054204 0.048737 0.048540 0.116938 0.049308 0.033263 0.040174 0.204980 0.096182 0.038948 0.067555 0.102490 0.074358 0.047433 0.050279 0.136654 0.076947 0.239144 +0.063161 +0.065267 0.061281 0.138541 0.083918 0.033321 0.035992 0.015507 0.001387 0.095064 0.063503 0.041490 0.051135 0.028607 0.046499 0.052109 0.062582 0.033681 0.253722 0.041130 0.041620 0.008841 0.102490 0.056220 0.016633 0.061953 0.170817 0.070992 0.042269 0.020434 0.102490 0.096603 0.204980 +0.128501 +0.057475 0.044787 0.035745 0.074176 0.048177 0.169855 0.018554 0.022770 0.068945 0.044514 0.032632 0.067813 0.015952 0.066814 0.174261 0.087117 0.045263 0.182477 0.050624 0.000864 0.063693 0.273307 0.090551 0.063256 0.006894 0.239144 0.059942 0.017109 0.030303 0.102490 0.057770 0.341634 +0.037855 +0.058421 0.057229 0.055019 0.080768 0.033576 0.168081 0.010949 0.022433 0.075794 0.069989 0.035661 0.215794 0.064328 0.051757 0.068346 0.062157 0.018115 0.076586 0.058069 0.032577 0.064165 0.102490 0.051965 0.012825 0.013922 0.204980 0.066603 0.039220 0.050588 0.136654 0.097943 0.307471 +0.162055 +0.048052 0.049354 0.096535 0.075487 0.050346 0.177407 0.017412 0.032187 0.064699 0.039813 0.031548 0.182276 0.046611 0.019270 0.055035 0.054452 0.026083 0.610158 0.050629 0.020047 0.020549 0.170817 0.066264 0.016053 0.003344 0.102490 0.058562 0.009925 0.030386 0.136654 0.077389 0.204980 +0.731676 +0.018013 0.009135 0.083681 0.052879 0.047901 0.068185 0.007611 0.017644 0.069601 0.216326 0.031219 0.163975 0.023170 0.047183 0.037254 0.044246 0.039452 0.069069 0.048895 0.050642 0.057974 0.273307 0.064262 0.040445 0.040728 0.239144 0.100900 0.022984 0.053013 0.102490 0.080285 0.307471 +0.004207 +0.050120 0.040230 0.049807 0.041523 0.044716 0.198200 0.011076 0.063515 0.104317 0.072167 0.021400 0.070545 0.033965 0.023728 0.042066 0.128143 0.044085 0.051864 0.055008 0.018210 0.028095 0.136654 0.051852 0.035963 0.001149 0.102490 0.090317 0.044738 0.020998 0.102490 0.055050 0.239144 +0.132787 +0.008617 0.037288 0.117612 0.072459 0.021137 0.075892 0.045611 0.020832 0.069877 0.038070 0.047311 0.085277 0.065058 0.064072 0.034559 0.037056 0.033769 0.091009 0.054522 0.048045 0.001848 0.102490 0.081573 0.038458 0.012129 0.136654 0.098993 0.039574 0.053309 0.102490 0.073194 0.239144 +0 +0.003397 0.051122 0.046367 0.036949 0.046456 0.125970 0.035433 0.019207 0.040884 0.043054 0.017124 0.171817 0.051317 0.059748 0.051733 0.138354 0.021467 0.090705 0.055249 0.021453 0.023052 0.170817 0.092900 0.033954 0.005355 0.102490 0.076773 0.060059 0.035791 0.170817 0.083886 0.204980 +0.081761 +0.022047 0.045851 0.070946 0.051969 0.028356 0.120339 0.021466 0.015758 0.037865 0.078691 0.032320 0.292175 0.050638 0.066622 0.115982 0.128807 0.032997 0.047046 0.050533 0.005127 0.045483 0.136654 0.083146 0.042717 0.035871 0.273307 0.057219 0.041113 0.047795 0.204980 0.072542 0.307471 +0.203169 +0.062326 0.051369 0.037226 0.091934 0.038036 0.035075 0.005430 0.014368 0.069441 0.059595 0.024289 0.046382 0.033052 0.033429 0.047660 0.053965 0.023815 0.265710 0.044140 0.035089 0.023044 0.170817 0.091198 0.032110 0.060643 0.239144 0.075739 0.011580 0.026311 0.239144 0.101451 0.273307 +0.170071 +0.056857 0.017217 0.056994 0.089804 0.041927 0.100327 0.003050 0.033234 0.062785 0.042787 0.050663 0.225575 0.053058 0.030407 0.063481 0.049746 0.034248 0.046494 0.063607 0.047058 0.045640 0.204980 0.091418 0.013913 0.046487 0.204980 0.087197 0.033762 0.039686 0.170817 0.090909 0.239144 +0.052211 +0.002283 0.026115 0.131401 0.039869 0.022939 0.060431 0.057482 0.045579 0.035730 0.046094 0.031418 0.174114 0.016029 0.029935 0.040868 0.038735 0.033202 0.122922 0.059760 0.027951 0.008045 0.307471 0.077787 0.026379 0.037795 0.136654 0.080787 0.052408 0.024150 0.102490 0.068879 0.341634 +0 +0.042484 0.047398 0.064339 0.091130 0.023042 0.138439 0.035456 0.001220 0.126327 0.063899 0.039055 0.108594 0.019018 0.030296 0.099372 0.125654 0.023863 0.106007 0.037623 0.054493 0.003502 0.136654 0.076180 0.036436 0.019835 0.136654 0.054024 0.062932 0.029838 0.170817 0.061289 0.204980 +0.060767 +0.052102 0.032841 0.061739 0.090191 0.043710 0.147925 0.005553 0.054593 0.165926 0.078691 0.038481 0.267049 0.035101 0.026567 0.041870 0.082190 0.050719 0.081101 0.049081 0.015358 0.040939 0.136654 0.059362 0.016738 0.032352 0.170817 0.072354 0.032081 0.019295 0.204980 0.086250 0.307471 +0.001421 +0.033404 0.027448 0.054021 0.067088 0.028898 0.058483 0.031281 0.004705 0.065262 0.050390 0.033950 0.228370 0.001875 0.002078 0.064304 0.065817 0.032497 0.085013 0.051438 0.051964 0.043032 0.136654 0.051975 0.027806 0.004892 0.170817 0.084724 0.010407 0.059028 0.102490 0.081319 0.204980 +0.124034 +0.032423 0.029953 0.043085 0.050325 0.041629 0.073323 0.039863 0.065228 0.109280 0.077198 0.046772 0.087985 0.033935 0.061283 0.041220 0.055204 0.025990 0.092383 0.053295 0.066796 0.029303 0.136654 0.085299 0.054932 0.057836 0.273307 0.081135 0.005561 0.063546 0.102490 0.058174 0.341634 +0.001585 +0.066696 0.015010 0.079677 0.039804 0.033182 0.056272 0.054361 0.024206 0.121133 0.049557 0.044069 0.083868 0.066197 0.005851 0.063691 0.103532 0.041321 0.206243 0.050655 0.017182 0.062854 0.204980 0.065091 0.011072 0.036796 0.204980 0.070794 0.023436 0.056889 0.170817 0.061530 0.239144 +0.199366 +0.029725 0.057708 0.129155 0.069979 0.048433 0.102476 0.067750 0.035560 0.039190 0.043581 0.034312 0.196145 0.032098 0.001545 0.235220 0.121193 0.036149 0.105567 0.048823 0.040121 0.009339 0.239144 0.054685 0.062691 0.049810 0.102490 0.097074 0.047743 0.034763 0.239144 0.096841 0.273307 +0.096990 +0.020087 0.021539 0.042904 0.042806 0.034852 0.352366 0.003475 0.031866 0.123827 0.090852 0.018127 0.116803 0.009381 0.011903 0.142358 0.088662 0.022534 0.151707 0.040741 0.037717 0.042351 0.102490 0.097041 0.027765 0.027569 0.273307 0.072541 0.015841 0.058008 0.204980 0.063333 0.307471 +0.287055 +0.032060 0.048132 0.047869 0.071179 0.022767 0.276574 0.062243 0.051755 0.061259 0.082201 0.027646 0.034910 0.014666 0.007442 0.124404 0.041901 0.049269 0.071104 0.059031 0.049197 0.043649 0.204980 0.062696 0.019190 0.015890 0.170817 0.101868 0.012216 0.045940 0.170817 0.088394 0.307471 +0 +0.033639 0.024321 0.041163 0.129048 0.019202 0.073048 0.048708 0.000237 0.039824 0.084383 0.030069 0.058775 0.040961 0.036482 0.143297 0.036089 0.038983 0.036839 0.054059 0.007873 0.046655 0.136654 0.096780 0.047823 0.001623 0.204980 0.085379 0.067527 0.050403 0.170817 0.055161 0.239144 +0 +0.056389 0.036548 0.078157 0.034201 0.020092 0.145477 0.044945 0.015746 0.037067 0.099932 0.028320 0.281878 0.038945 0.031411 0.038524 0.040184 0.037893 0.184689 0.049128 0.031002 0.035430 0.204980 0.101467 0.029913 0.042558 0.273307 0.071199 0.058868 0.067392 0.204980 0.061875 0.341634 +0.158188 +0.024047 0.007815 0.076849 0.045554 0.029761 0.105327 0.037554 0.029367 0.038002 0.038319 0.028946 0.059214 0.025112 0.046114 0.054278 0.081775 0.048536 0.053965 0.047296 0.043214 0.050147 0.204980 0.064350 0.028205 0.019038 0.239144 0.061407 0.042751 0.040223 0.102490 0.058490 0.273307 +0.045785 +0.042396 0.014387 0.045594 0.043072 0.031163 0.284701 0.001351 0.039546 0.106118 0.070056 0.047791 0.086829 0.012001 0.006189 0.045847 0.236525 0.041065 0.066472 0.045739 0.030886 0.049426 0.239144 0.097910 0.043839 0.005791 0.102490 0.071046 0.000651 0.000955 0.273307 0.099292 0.341634 +0.323373 +0.012735 0.062403 0.064751 0.080519 0.023318 0.220165 0.010683 0.019082 0.092008 0.054204 0.024133 0.184595 0.033048 0.038723 0.050552 0.071023 0.039347 0.055732 0.048971 0.058677 0.056014 0.136654 0.083330 0.021612 0.034508 0.239144 0.101416 0.008981 0.001004 0.102490 0.063986 0.273307 +0.258082 +0.018520 0.041178 0.094843 0.039110 0.035567 0.097199 0.032733 0.038880 0.101831 0.035711 0.034576 0.075022 0.005523 0.002528 0.089844 0.045319 0.042197 0.081148 0.043960 0.013497 0.000140 0.273307 0.098356 0.064851 0.064553 0.273307 0.055090 0.030153 0.036507 0.136654 0.088401 0.307471 +0.100280 +0.055350 0.020100 0.040709 0.071988 0.023712 0.102474 0.053015 0.019778 0.042013 0.115944 0.026058 0.203274 0.007572 0.056764 0.079318 0.060502 0.020563 0.035103 0.055317 0.048784 0.019033 0.170817 0.066255 0.054634 0.045527 0.136654 0.090096 0.038153 0.013461 0.239144 0.089211 0.273307 +0.081653 +0.043685 0.016447 0.094294 0.119850 0.024602 0.037400 0.040264 0.001289 0.060823 0.090951 0.030954 0.127324 0.011328 0.007550 0.035364 0.067085 0.035363 0.186029 0.058844 0.001055 0.057053 0.170817 0.075487 0.063446 0.052870 0.273307 0.074545 0.013496 0.024651 0.273307 0.077584 0.307471 +0.035866 +0.029157 0.002447 0.092090 0.038680 0.022491 0.046457 0.012317 0.048127 0.034223 0.119963 0.039568 0.041589 0.003418 0.059679 0.067576 0.083733 0.018351 0.063261 0.052290 0.063683 0.063535 0.170817 0.061097 0.032511 0.055680 0.273307 0.089055 0.045734 0.040783 0.239144 0.071793 0.341634 +0 +0.005482 0.014101 0.040690 0.040459 0.041343 0.289091 0.040223 0.065187 0.061995 0.066127 0.025307 0.075597 0.014757 0.030968 0.036076 0.046605 0.029370 0.156855 0.049645 0.009799 0.049907 0.136654 0.074841 0.046934 0.058166 0.170817 0.064046 0.045505 0.012123 0.136654 0.089729 0.204980 +0.124208 +0.062928 0.028125 0.042757 0.111614 0.036602 0.212325 0.030771 0.015638 0.047909 0.074594 0.037567 0.419702 0.009401 0.035166 0.113781 0.042423 0.049809 0.078524 0.043970 0.010499 0.000209 0.136654 0.053076 0.001090 0.067152 0.170817 0.081514 0.066040 0.051441 0.136654 0.087969 0.204980 +0.759535 +0.023001 0.046964 0.060172 0.041908 0.051100 0.136420 0.000282 0.060192 0.049683 0.045421 0.027475 0.108112 0.011239 0.016177 0.069681 0.054883 0.045921 0.470285 0.055375 0.016309 0.025450 0.102490 0.085714 0.025122 0.056830 0.170817 0.054312 0.050103 0.055895 0.136654 0.094407 0.204980 +0.189446 +0.008716 0.066799 0.035614 0.071346 0.019950 0.081126 0.049037 0.012694 0.061873 0.035423 0.033234 0.141823 0.025872 0.008434 0.080576 0.052752 0.047226 0.067959 0.048549 0.007012 0.040712 0.204980 0.099682 0.038038 0.053569 0.102490 0.056191 0.023281 0.010508 0.102490 0.064200 0.273307 +0 +0.027290 0.014722 0.061876 0.035182 0.050658 0.072690 0.055496 0.028062 0.044023 0.110889 0.029213 0.671407 0.067902 0.067507 0.062134 0.091411 0.036897 0.061474 0.039118 0.012752 0.043485 0.204980 0.090376 0.060375 0.038391 0.102490 0.082802 0.036841 0.054242 0.239144 0.083620 0.307471 +0.199827 +0.035638 0.054191 0.049049 0.035711 0.023684 0.081712 0.035950 0.066804 0.090636 0.057840 0.049381 0.052379 0.066592 0.054629 0.114189 0.038952 0.027170 0.181674 0.063524 0.061414 0.027312 0.170817 0.054766 0.059197 0.014170 0.102490 0.090399 0.013555 0.040905 0.136654 0.065439 0.341634 +0 +0.019388 0.030379 0.049121 0.042700 0.018246 0.266844 0.026337 0.065909 0.037342 0.050606 0.018084 0.076088 0.048908 0.004232 0.078689 0.053619 0.045279 0.144856 0.058998 0.054978 0.047238 0.170817 0.062181 0.002985 0.018705 0.136654 0.056721 0.010254 0.067975 0.136654 0.076909 0.204980 +0.005878 +0.028304 0.051674 0.045392 0.057624 0.020816 0.065156 0.056640 0.000306 0.039831 0.053584 0.047357 0.050682 0.028342 0.017360 0.066123 0.070060 0.026913 0.105277 0.058315 0.025071 0.013901 0.170817 0.086515 0.057602 0.047054 0.204980 0.078170 0.049429 0.045914 0.170817 0.054142 0.239144 +0.002513 +0.048390 0.005627 0.061412 0.111912 0.024085 0.105949 0.026788 0.015421 0.079532 0.036853 0.039680 0.149202 0.062202 0.053582 0.145163 0.035346 0.034950 0.092143 0.050902 0.006445 0.033874 0.170817 0.052395 0.027237 0.039066 0.170817 0.070182 0.019569 0.046083 0.273307 0.090174 0.307471 +0.028440 +0.028853 0.004277 0.056058 0.096816 0.035074 0.202532 0.054986 0.005183 0.037009 0.073665 0.041791 0.319340 0.027270 0.049329 0.129313 0.044548 0.018167 0.047219 0.060757 0.005273 0.046403 0.136654 0.072433 0.059937 0.062709 0.239144 0.090740 0.011798 0.036737 0.239144 0.099344 0.307471 +0.044080 +0.028517 0.028922 0.103511 0.044995 0.050607 0.053151 0.023907 0.030291 0.047775 0.042959 0.017837 0.056191 0.040422 0.053014 0.043012 0.034597 0.039340 0.043717 0.049843 0.037437 0.053294 0.307471 0.081108 0.032381 0.028207 0.204980 0.057899 0.059009 0.043732 0.204980 0.094182 0.341634 +0 +0.000785 0.047677 0.208944 0.076951 0.039502 0.114180 0.063043 0.028260 0.057271 0.053354 0.037767 0.168242 0.058562 0.038429 0.063526 0.050451 0.020839 0.126191 0.038931 0.011853 0.050802 0.170817 0.083961 0.030001 0.034271 0.136654 0.068643 0.007208 0.040303 0.136654 0.089245 0.204980 +0.082560 +0.018562 0.012883 0.095743 0.037356 0.031285 0.204485 0.009092 0.061125 0.047755 0.155090 0.017969 0.602103 0.039535 0.030781 0.051105 0.046285 0.039009 0.177652 0.058581 0.050883 0.019129 0.273307 0.069031 0.018389 0.001833 0.273307 0.057491 0.048614 0.028543 0.102490 0.067600 0.307471 +0.521659 +0.063187 0.049645 0.052722 0.056470 0.038130 0.085645 0.001715 0.042854 0.062832 0.039342 0.035413 0.182739 0.044718 0.036022 0.035625 0.061314 0.036417 0.086188 0.046057 0.034740 0.007580 0.136654 0.090584 0.021047 0.027838 0.239144 0.071943 0.021174 0.033603 0.239144 0.087435 0.307471 +0.015082 +0.028123 0.017150 0.040959 0.037396 0.031364 0.057533 0.065179 0.064302 0.067440 0.036867 0.034906 0.043684 0.014846 0.040896 0.034876 0.037137 0.030423 0.055827 0.040648 0.016561 0.060177 0.170817 0.052228 0.035186 0.057118 0.170817 0.073936 0.038541 0.009405 0.204980 0.079340 0.239144 +0.010095 +0.018921 0.063864 0.057840 0.037103 0.029344 0.220216 0.055948 0.046749 0.042936 0.048329 0.047065 0.049798 0.004827 0.046716 0.034548 0.045821 0.019239 0.237822 0.052093 0.040446 0.018288 0.204980 0.098379 0.001193 0.009230 0.102490 0.086594 0.000658 0.046565 0.136654 0.093180 0.307471 +0.112950 +0.031170 0.008007 0.043346 0.051493 0.037212 0.062849 0.039836 0.008600 0.044426 0.037905 0.049401 0.049076 0.034884 0.058453 0.041795 0.054152 0.050207 0.055445 0.047306 0.005447 0.049081 0.136654 0.060374 0.047494 0.013419 0.204980 0.092650 0.051727 0.035691 0.204980 0.058080 0.273307 +0 +0.061070 0.032887 0.041936 0.122550 0.035213 0.109343 0.046660 0.029872 0.035258 0.040660 0.031400 0.055281 0.023445 0.044229 0.079037 0.051878 0.037165 0.163852 0.051961 0.052244 0.051772 0.102490 0.057123 0.006887 0.005775 0.102490 0.057040 0.049492 0.023854 0.204980 0.065291 0.239144 +0.045545 +0.016474 0.057790 0.136663 0.086039 0.034387 0.314104 0.011049 0.008544 0.050807 0.184510 0.042880 0.279754 0.059310 0.017637 0.080356 0.035148 0.043025 0.161967 0.047963 0.027974 0.006871 0.136654 0.055153 0.066625 0.023783 0.136654 0.071913 0.034291 0.012477 0.102490 0.072449 0.204980 +0.370789 +0.045273 0.041501 0.043406 0.086306 0.034944 0.120684 0.010403 0.059260 0.035107 0.137103 0.033779 0.164493 0.007308 0.028235 0.127983 0.060092 0.018750 0.085248 0.065791 0.019544 0.029526 0.170817 0.069626 0.066794 0.026586 0.136654 0.095121 0.053185 0.005130 0.102490 0.080825 0.239144 +0.055304 +0.025383 0.013002 0.050306 0.097037 0.046964 0.055573 0.053381 0.016967 0.086793 0.035775 0.048450 0.180980 0.062206 0.025609 0.043246 0.127530 0.021395 0.221794 0.059464 0.012519 0.032549 0.239144 0.091274 0.035604 0.066752 0.204980 0.075036 0.006110 0.049529 0.204980 0.089453 0.273307 +0.056377 +0.013970 0.041067 0.071888 0.093113 0.021321 0.062834 0.045706 0.060062 0.048218 0.081313 0.026138 0.356006 0.020645 0.065475 0.039548 0.050216 0.023511 0.066381 0.055432 0.032922 0.017254 0.136654 0.078548 0.024724 0.042148 0.136654 0.067811 0.056256 0.024123 0.170817 0.087918 0.239144 +0.105329 +0.040303 0.049337 0.082184 0.100060 0.026729 0.104066 0.047371 0.040045 0.034332 0.039783 0.022726 0.068972 0.046471 0.045378 0.083359 0.046660 0.050813 0.072706 0.062667 0.015191 0.002237 0.204980 0.053854 0.034246 0.055480 0.102490 0.091033 0.046816 0.040780 0.204980 0.080331 0.239144 +0.040801 +0.057700 0.014761 0.047265 0.041554 0.049232 0.106007 0.043572 0.008490 0.041554 0.045603 0.045612 0.066787 0.007973 0.049384 0.044660 0.042476 0.038775 0.243177 0.047499 0.022407 0.054779 0.273307 0.097561 0.046137 0.011299 0.239144 0.051878 0.035385 0.020312 0.170817 0.091739 0.307471 +0.092600 +0.038732 0.020165 0.053239 0.045137 0.019485 0.050164 0.009435 0.016395 0.038984 0.062300 0.038120 0.050591 0.029087 0.053179 0.044618 0.041064 0.030729 0.109434 0.051090 0.005439 0.011529 0.102490 0.054791 0.004544 0.016054 0.102490 0.086011 0.033750 0.001077 0.204980 0.075572 0.307471 +0.005422 +0.023345 0.043120 0.110048 0.072490 0.037223 0.170426 0.034086 0.020302 0.035575 0.055802 0.046234 0.192447 0.021290 0.003680 0.049713 0.095423 0.029482 0.221061 0.049685 0.014026 0.041908 0.239144 0.067845 0.007727 0.025978 0.273307 0.091368 0.032860 0.062742 0.136654 0.065607 0.307471 +0.056314 +0.035144 0.062860 0.035253 0.043004 0.033019 0.053177 0.003959 0.038480 0.109560 0.074014 0.024455 0.215290 0.060642 0.060720 0.060494 0.055368 0.049594 0.084123 0.051380 0.016173 0.049744 0.102490 0.066009 0.055313 0.030875 0.239144 0.100627 0.038630 0.068073 0.273307 0.062639 0.307471 +0.123240 +0.001583 0.008733 0.055837 0.047676 0.036228 0.077860 0.052633 0.056869 0.041996 0.049718 0.032776 0.223023 0.019958 0.024149 0.060216 0.041615 0.030851 0.104593 0.048936 0.058580 0.038880 0.204980 0.058809 0.034127 0.017130 0.136654 0.091958 0.018242 0.001658 0.102490 0.069565 0.341634 +0.494571 +0.027229 0.001331 0.052736 0.039470 0.035571 0.050232 0.060890 0.066536 0.053675 0.158366 0.041871 0.158808 0.063315 0.034863 0.076627 0.083359 0.026993 0.118545 0.043772 0.043383 0.038521 0.204980 0.078846 0.032269 0.009707 0.239144 0.084338 0.068302 0.045352 0.102490 0.054494 0.273307 +0 +0.037829 0.053559 0.066179 0.074704 0.031144 0.480478 0.004390 0.032036 0.064049 0.047539 0.035796 0.044655 0.026035 0.009074 0.044723 0.046190 0.041025 0.185382 0.041781 0.001027 0.032361 0.136654 0.061831 0.065382 0.026675 0.170817 0.055493 0.003683 0.018254 0.136654 0.079569 0.204980 +0.798900 +0.024951 0.007319 0.064023 0.042262 0.045750 0.070366 0.060342 0.006951 0.036710 0.035499 0.030545 0.254379 0.035423 0.051582 0.061850 0.059991 0.037225 0.036926 0.040532 0.064464 0.026792 0.204980 0.062423 0.046394 0.011530 0.239144 0.062781 0.056525 0.063771 0.136654 0.070834 0.341634 +0.881087 +0.064792 0.047390 0.055188 0.153658 0.030732 0.087136 0.036938 0.012143 0.079914 0.075355 0.049389 0.154049 0.020772 0.037350 0.073681 0.038915 0.022879 0.118060 0.045811 0.032196 0.012187 0.204980 0.073566 0.022085 0.062751 0.102490 0.099590 0.065537 0.017011 0.204980 0.091470 0.239144 +0.204117 +0.042834 0.062857 0.059065 0.036791 0.045472 0.041424 0.056500 0.014877 0.052969 0.052580 0.038755 0.206908 0.049770 0.024528 0.053096 0.061834 0.045865 0.093237 0.043900 0.002122 0.062402 0.136654 0.092906 0.034350 0.060171 0.102490 0.075354 0.005794 0.064477 0.204980 0.102200 0.307471 +0.009658 +0.000382 0.019750 0.040314 0.044559 0.032065 0.082747 0.064308 0.035342 0.125857 0.054031 0.031911 0.048288 0.027200 0.054662 0.056120 0.038363 0.031896 0.453846 0.050608 0.018001 0.046058 0.170817 0.079105 0.044414 0.005645 0.170817 0.065957 0.021167 0.016173 0.102490 0.085939 0.204980 +0.668947 +0.042297 0.063433 0.048500 0.045973 0.049089 0.208320 0.013989 0.002892 0.047776 0.070428 0.046625 0.048124 0.042061 0.060291 0.047201 0.131530 0.025341 0.089687 0.059152 0.063414 0.021193 0.204980 0.095786 0.048666 0.057198 0.136654 0.083359 0.067276 0.034316 0.239144 0.054887 0.307471 +0 +0.065421 0.045036 0.044158 0.126406 0.040312 0.189212 0.065388 0.064088 0.119017 0.034493 0.039060 0.149119 0.012911 0.028527 0.036422 0.201057 0.028530 0.066469 0.061796 0.038676 0.045036 0.102490 0.088314 0.033993 0.021936 0.204980 0.098199 0.011882 0.038000 0.170817 0.099290 0.307471 +0.060215 +0.001640 0.020387 0.037350 0.059966 0.022026 0.079806 0.067689 0.039317 0.051753 0.053323 0.046361 0.110609 0.052264 0.053176 0.058707 0.041607 0.036112 0.051761 0.038921 0.020861 0.021930 0.102490 0.051551 0.045546 0.006514 0.170817 0.095516 0.009873 0.043014 0.136654 0.086932 0.239144 +0.203811 +0.043060 0.012360 0.077836 0.061255 0.039048 0.065648 0.028264 0.042229 0.050589 0.039538 0.023281 0.158909 0.001594 0.000627 0.035863 0.034481 0.024083 0.087543 0.058653 0.038233 0.037366 0.204980 0.074293 0.020963 0.013721 0.136654 0.053802 0.014319 0.039258 0.307471 0.072543 0.341634 +0.004996 +0.006499 0.024952 0.097634 0.058471 0.018290 0.118331 0.018052 0.064110 0.061131 0.054081 0.041947 0.070869 0.052093 0.058785 0.041207 0.071014 0.039178 0.121231 0.058969 0.059377 0.020061 0.136654 0.089863 0.026400 0.037572 0.170817 0.075074 0.013448 0.060921 0.170817 0.052189 0.204980 +0.039251 +0.008666 0.039975 0.053051 0.045997 0.042976 0.058117 0.066902 0.028825 0.047245 0.051452 0.038294 0.716828 0.004617 0.033555 0.046348 0.038234 0.039360 0.284617 0.036501 0.054407 0.030848 0.170817 0.095579 0.000176 0.019878 0.204980 0.052976 0.008815 0.053171 0.170817 0.074846 0.239144 +0.931159 +0.064233 0.036873 0.044711 0.121686 0.031359 0.152371 0.003024 0.012055 0.034252 0.047013 0.024868 0.116144 0.030765 0.027456 0.059933 0.073885 0.023526 0.156562 0.039955 0.022322 0.051592 0.136654 0.070979 0.055687 0.064538 0.239144 0.078047 0.025379 0.058449 0.204980 0.051440 0.341634 +0.013027 +0.042447 0.026537 0.053760 0.047004 0.038941 0.502101 0.017608 0.023649 0.042343 0.053462 0.022070 0.282523 0.006553 0.028242 0.051352 0.101107 0.022655 0.086864 0.052926 0.028623 0.043673 0.170817 0.075081 0.018522 0.023909 0.170817 0.076173 0.064224 0.032189 0.170817 0.081633 0.239144 +0.628554 +0.002448 0.030036 0.045672 0.105802 0.024055 0.069002 0.015977 0.029570 0.144694 0.038213 0.035089 0.064604 0.022017 0.033649 0.039459 0.038951 0.018217 0.232569 0.042489 0.052402 0.020942 0.239144 0.064753 0.048400 0.039083 0.170817 0.072403 0.019228 0.052395 0.273307 0.081783 0.307471 +0.027618 +0.004545 0.037835 0.045796 0.056810 0.021706 0.191014 0.043948 0.041421 0.043416 0.151419 0.035987 0.184577 0.042182 0.021520 0.115655 0.121916 0.019905 0.063525 0.050327 0.058821 0.026758 0.273307 0.072760 0.024168 0.005496 0.273307 0.073424 0.062291 0.060819 0.273307 0.060683 0.307471 +0.323392 +0.024252 0.014425 0.080213 0.052661 0.040649 0.064377 0.033127 0.051692 0.078506 0.045437 0.035229 0.140051 0.023629 0.007236 0.078988 0.088044 0.036051 0.099629 0.052664 0.010002 0.021422 0.102490 0.075310 0.043961 0.020670 0.170817 0.084466 0.065090 0.008699 0.170817 0.085921 0.273307 +0.002812 +0.006552 0.036021 0.063269 0.064457 0.049556 0.182077 0.066596 0.061287 0.042959 0.085471 0.045263 0.035472 0.046843 0.062308 0.147394 0.034940 0.042808 0.102392 0.054181 0.003781 0.039431 0.102490 0.092823 0.047087 0.007702 0.102490 0.076706 0.051376 0.038526 0.204980 0.093745 0.307471 +0.004668 +0.067110 0.036878 0.048942 0.065249 0.017114 0.250635 0.008834 0.029664 0.053757 0.068532 0.040250 0.107125 0.007447 0.065832 0.040056 0.074616 0.029618 0.078355 0.040516 0.006516 0.026946 0.170817 0.072177 0.057685 0.032129 0.136654 0.072580 0.052620 0.030204 0.170817 0.074723 0.204980 +0.110842 +0.067770 0.045253 0.062939 0.044118 0.038398 0.109143 0.003094 0.062153 0.050935 0.039552 0.050133 0.066111 0.034875 0.011821 0.073958 0.038435 0.045043 0.061432 0.046516 0.004734 0.017979 0.273307 0.056984 0.029617 0.050131 0.204980 0.102437 0.004873 0.026385 0.307471 0.070705 0.341634 +0 +0.011126 0.057579 0.041724 0.069964 0.031715 0.110217 0.021172 0.049942 0.049551 0.065530 0.037953 0.124530 0.055638 0.053271 0.084524 0.041789 0.023501 0.040468 0.054949 0.039804 0.027526 0.170817 0.054236 0.052229 0.029185 0.170817 0.055149 0.022632 0.042865 0.204980 0.056826 0.307471 +0.001783 +0.028010 0.045127 0.136736 0.047951 0.022573 0.134824 0.053631 0.001357 0.045279 0.084747 0.022758 0.181209 0.018635 0.024170 0.050695 0.057690 0.020814 0.155610 0.044070 0.049390 0.020292 0.102490 0.068276 0.063935 0.003186 0.170817 0.090697 0.032947 0.054022 0.102490 0.064553 0.204980 +0.281566 +0.037472 0.050521 0.089226 0.084310 0.048023 0.139599 0.027423 0.054269 0.042919 0.052055 0.021242 0.418248 0.065605 0.042649 0.049805 0.113546 0.042651 0.104867 0.041525 0.051364 0.059857 0.136654 0.075387 0.036022 0.026469 0.136654 0.064480 0.019375 0.062233 0.204980 0.069035 0.239144 +0.353927 +0.040708 0.001896 0.086862 0.041981 0.049369 0.039430 0.051803 0.050907 0.042269 0.066568 0.047630 0.478657 0.046769 0.014664 0.067720 0.079536 0.047422 0.102681 0.047033 0.041916 0.023556 0.239144 0.085046 0.024738 0.061796 0.170817 0.101671 0.030702 0.029333 0.204980 0.058219 0.341634 +0.117898 +0.056833 0.030084 0.063259 0.096487 0.017395 0.127351 0.063419 0.025715 0.086799 0.067582 0.046818 0.086750 0.064716 0.026789 0.073504 0.065496 0.028980 0.190852 0.044902 0.037880 0.028780 0.136654 0.098186 0.030993 0.053103 0.239144 0.086582 0.012533 0.015826 0.204980 0.052593 0.341634 +0 +0.046148 0.012680 0.078780 0.097230 0.018134 0.069865 0.018761 0.036015 0.050703 0.093452 0.050629 0.422935 0.067463 0.042944 0.072970 0.034688 0.034627 0.259538 0.056419 0.060467 0.017563 0.102490 0.075950 0.021357 0.055750 0.170817 0.069033 0.052216 0.056894 0.170817 0.083987 0.239144 +0.347346 +0.030980 0.052217 0.136355 0.103811 0.041806 0.169736 0.018099 0.037416 0.078527 0.046202 0.049460 0.081182 0.030249 0.026497 0.090316 0.056399 0.049150 0.115960 0.054116 0.046878 0.030687 0.136654 0.060731 0.003972 0.001942 0.102490 0.060922 0.026836 0.009724 0.204980 0.075740 0.239144 +0.093671 +0.024342 0.028024 0.089273 0.077191 0.021368 0.094160 0.018391 0.021531 0.069673 0.035138 0.032220 0.047075 0.015574 0.036197 0.113015 0.141462 0.036529 0.191616 0.041696 0.002887 0.021714 0.170817 0.096408 0.023405 0.053916 0.170817 0.090239 0.048015 0.032626 0.170817 0.100640 0.307471 +0.123599 +0.029361 0.014665 0.113219 0.061332 0.024572 0.524457 0.005993 0.028004 0.071769 0.059721 0.042887 0.139377 0.042313 0.018609 0.038690 0.038436 0.031315 0.273927 0.053990 0.020421 0.047092 0.102490 0.084701 0.059533 0.049551 0.204980 0.056127 0.015293 0.051878 0.204980 0.096159 0.307471 +0.287482 +0.010380 0.013962 0.039976 0.046976 0.043670 0.106604 0.059246 0.017185 0.101056 0.045346 0.041944 0.054838 0.049637 0.042604 0.047491 0.054692 0.030587 0.124279 0.036573 0.014319 0.023384 0.273307 0.102076 0.047894 0.047253 0.102490 0.065886 0.001285 0.028532 0.239144 0.077755 0.307471 +0.086824 +0.021581 0.045563 0.124992 0.039627 0.049105 0.331401 0.014292 0.025831 0.046446 0.052031 0.034040 0.099058 0.011898 0.018109 0.067146 0.148115 0.019979 0.316644 0.040213 0.017410 0.068071 0.136654 0.091549 0.036645 0.007896 0.102490 0.069861 0.048150 0.040122 0.136654 0.053526 0.307471 +0.242951 +0.012092 0.044555 0.121494 0.049771 0.043994 0.041353 0.011753 0.040855 0.075460 0.095158 0.022138 0.116447 0.020607 0.038003 0.045467 0.196671 0.027243 0.186568 0.038416 0.015651 0.011913 0.102490 0.081653 0.001189 0.053548 0.102490 0.078094 0.066906 0.042226 0.239144 0.064080 0.273307 +0.007383 +0.038887 0.051207 0.046340 0.043716 0.031612 0.144963 0.058783 0.017329 0.047810 0.037934 0.017957 0.314788 0.032304 0.002376 0.083510 0.069393 0.047960 0.305154 0.043709 0.001711 0.051841 0.136654 0.064540 0.058114 0.048688 0.170817 0.099116 0.028557 0.038493 0.273307 0.055941 0.307471 +0.206329 +0.048556 0.007887 0.057517 0.206069 0.021700 0.300183 0.068216 0.035140 0.071023 0.147030 0.026750 0.036856 0.053677 0.020922 0.100565 0.101474 0.032731 0.117157 0.042295 0.017029 0.005306 0.136654 0.099837 0.017448 0.003267 0.273307 0.055284 0.040395 0.058956 0.102490 0.078034 0.341634 +0.015627 +0.056156 0.013888 0.118317 0.103091 0.020398 0.115700 0.054733 0.033629 0.065350 0.042780 0.032310 0.101155 0.008474 0.059465 0.044305 0.047465 0.048398 0.072761 0.040747 0.017245 0.065279 0.102490 0.054803 0.044140 0.037641 0.170817 0.063304 0.017444 0.011834 0.273307 0.052296 0.307471 +0 +0.064686 0.059579 0.124130 0.045775 0.031850 0.095472 0.018365 0.051595 0.082070 0.039597 0.039584 0.240567 0.035475 0.059292 0.036499 0.066780 0.022373 0.154821 0.040789 0.059789 0.017860 0.239144 0.077437 0.001841 0.052990 0.136654 0.096987 0.058658 0.030996 0.239144 0.087170 0.273307 +0.155087 +0.002598 0.023869 0.182786 0.057210 0.046781 0.421023 0.038683 0.031652 0.050772 0.131332 0.035348 0.042498 0.061734 0.057032 0.064781 0.045269 0.022881 0.242061 0.049322 0.007364 0.062748 0.102490 0.099547 0.015873 0.025546 0.239144 0.080452 0.066416 0.031095 0.204980 0.091216 0.307471 +0.266154 +0.043942 0.038020 0.141986 0.066616 0.038132 0.069339 0.044544 0.030756 0.092570 0.055167 0.044811 0.305272 0.057874 0.011885 0.037396 0.056819 0.031059 0.271088 0.045393 0.039439 0.057696 0.136654 0.071602 0.004017 0.051625 0.102490 0.087528 0.008866 0.067923 0.170817 0.091160 0.204980 +0.544644 +0.017689 0.008907 0.034530 0.041694 0.033917 0.422844 0.064692 0.018448 0.034941 0.192690 0.018002 0.207858 0.050730 0.060778 0.037549 0.064166 0.038030 0.047117 0.060828 0.055480 0.048512 0.307471 0.076550 0.066817 0.038484 0.102490 0.083831 0.015956 0.041359 0.136654 0.099408 0.341634 +0.222569 +0.035356 0.063914 0.131063 0.099255 0.050888 0.222272 0.061036 0.003023 0.071677 0.034243 0.027457 0.092561 0.008042 0.034516 0.047917 0.036361 0.040005 0.035905 0.041751 0.019202 0.058082 0.102490 0.070882 0.037686 0.049173 0.307471 0.057811 0.049956 0.061812 0.239144 0.056012 0.341634 +0.023262 +0.010761 0.063026 0.037773 0.081886 0.020401 0.154284 0.029004 0.023911 0.039246 0.056639 0.018303 0.047266 0.046700 0.044232 0.070869 0.060252 0.050353 0.046174 0.043658 0.002151 0.000119 0.136654 0.095314 0.023959 0.006686 0.136654 0.069657 0.037289 0.018224 0.170817 0.066784 0.204980 +0.059826 +0.016602 0.038531 0.094235 0.086850 0.029481 0.174271 0.041557 0.058232 0.037114 0.035073 0.033946 0.114168 0.032179 0.005584 0.100133 0.038802 0.017234 0.055684 0.043870 0.053410 0.055101 0.273307 0.053465 0.010488 0.033008 0.239144 0.082965 0.036184 0.065083 0.273307 0.091431 0.341634 +0.020416 +0.030852 0.009437 0.069134 0.041981 0.023802 0.082294 0.056843 0.028818 0.038086 0.046010 0.034123 0.066870 0.005838 0.034240 0.091970 0.193109 0.042077 0.286129 0.048802 0.000397 0.002381 0.102490 0.073071 0.007177 0.028172 0.102490 0.088894 0.060540 0.006131 0.136654 0.062049 0.204980 +0.016521 +0.048847 0.021334 0.120350 0.074884 0.037547 0.036158 0.020875 0.017268 0.063547 0.081405 0.036253 0.095640 0.055740 0.008982 0.036069 0.046166 0.021316 0.035571 0.052984 0.005490 0.017273 0.102490 0.075543 0.049360 0.064872 0.102490 0.064462 0.000732 0.050573 0.136654 0.060506 0.341634 +0 +0.049659 0.036910 0.040863 0.058659 0.033193 0.433288 0.021560 0.048091 0.065961 0.069662 0.044374 0.103728 0.016395 0.014477 0.103411 0.055659 0.042749 0.064444 0.049322 0.049717 0.022291 0.170817 0.065099 0.060586 0.033016 0.170817 0.073249 0.058618 0.031242 0.170817 0.062730 0.307471 +0.241657 +0.006729 0.063518 0.168132 0.039869 0.042215 0.164529 0.001554 0.058767 0.049308 0.043830 0.019734 0.153767 0.036466 0.066594 0.141567 0.066682 0.027036 0.070368 0.042430 0.036241 0.007072 0.170817 0.099105 0.048931 0.026486 0.102490 0.058757 0.061674 0.065109 0.102490 0.083252 0.204980 +0.127516 +0.009000 0.023012 0.062773 0.084058 0.031464 0.083823 0.051868 0.022455 0.060413 0.062035 0.017293 0.440301 0.005020 0.045094 0.098790 0.062312 0.046910 0.326469 0.055089 0.036654 0.008562 0.170817 0.071794 0.014666 0.037074 0.204980 0.072130 0.045097 0.011577 0.102490 0.089856 0.273307 +0.260144 +0.066921 0.039564 0.134574 0.051013 0.019338 0.035402 0.047970 0.048927 0.060062 0.073175 0.017722 0.298017 0.015887 0.026886 0.050981 0.055060 0.024878 0.154505 0.056804 0.044599 0.055154 0.102490 0.093808 0.050898 0.050094 0.102490 0.053208 0.016567 0.014651 0.102490 0.099677 0.204980 +0.222598 +0.067284 0.003040 0.083820 0.048859 0.027034 0.045795 0.066294 0.034879 0.082923 0.074725 0.038371 0.195207 0.052609 0.052378 0.123081 0.177038 0.050092 0.144900 0.047069 0.031126 0.004649 0.204980 0.074441 0.065503 0.026228 0.102490 0.072543 0.065060 0.036543 0.136654 0.077122 0.239144 +0.068047 +0.065631 0.054639 0.049988 0.036356 0.048316 0.100289 0.010464 0.058458 0.043090 0.041088 0.042365 0.117095 0.023067 0.039759 0.060121 0.136119 0.038655 0.064891 0.042826 0.040179 0.032829 0.204980 0.059956 0.027650 0.024407 0.102490 0.094799 0.009093 0.025966 0.136654 0.094621 0.239144 +0.001060 +0.011068 0.004744 0.082035 0.036130 0.042130 0.299865 0.020254 0.049864 0.126618 0.037805 0.051172 0.046625 0.027951 0.059435 0.039022 0.041526 0.035561 0.044027 0.060094 0.060362 0.051123 0.170817 0.099099 0.052355 0.067697 0.170817 0.067241 0.067254 0.016864 0.239144 0.102121 0.307471 +0.005647 +0.041745 0.059535 0.255808 0.131800 0.022854 0.171443 0.047932 0.005087 0.056863 0.073107 0.021280 0.097663 0.041216 0.042408 0.050835 0.069542 0.041594 0.034889 0.049015 0.062565 0.027347 0.102490 0.063346 0.010168 0.041941 0.170817 0.074040 0.035662 0.037855 0.102490 0.063741 0.204980 +0.070905 +0.012504 0.040253 0.044951 0.042475 0.019966 0.118497 0.044995 0.026227 0.058271 0.037062 0.048479 0.076077 0.033353 0.003683 0.038133 0.075882 0.023405 0.059786 0.048520 0.048647 0.018491 0.204980 0.086511 0.004027 0.012539 0.273307 0.089838 0.066292 0.017879 0.102490 0.079035 0.341634 +0.002753 +0.018181 0.022622 0.060149 0.035560 0.049175 0.135454 0.058618 0.027506 0.054276 0.060164 0.025732 0.105155 0.026514 0.046595 0.070806 0.043962 0.029615 0.290571 0.044544 0.052305 0.027498 0.273307 0.102445 0.047578 0.034594 0.136654 0.052795 0.049474 0.064533 0.204980 0.064074 0.307471 +0.461852 +0.000950 0.010214 0.047246 0.055137 0.031299 0.141270 0.049890 0.020648 0.048430 0.121613 0.037619 0.096821 0.024889 0.050379 0.065633 0.074348 0.022104 0.150284 0.041962 0.000959 0.004053 0.102490 0.078382 0.020650 0.036183 0.170817 0.059199 0.042405 0.016472 0.136654 0.099418 0.204980 +0.031862 +0.061235 0.056386 0.036544 0.100431 0.037350 0.129437 0.036059 0.009317 0.092827 0.052877 0.049959 0.197945 0.026645 0.055562 0.121843 0.041933 0.019600 0.156949 0.050455 0.023172 0.035997 0.273307 0.078661 0.007423 0.051392 0.204980 0.096724 0.002803 0.011274 0.273307 0.061032 0.341634 +0.073716 +0.011189 0.062810 0.035856 0.144580 0.041582 0.098455 0.031685 0.049177 0.041147 0.063976 0.049354 0.724352 0.055730 0.047720 0.081264 0.079579 0.020242 0.144147 0.044310 0.052806 0.006422 0.102490 0.063669 0.006870 0.053551 0.239144 0.071517 0.010927 0.003339 0.136654 0.090779 0.273307 +0.979972 +0.002173 0.019907 0.047772 0.075268 0.031903 0.171545 0.008492 0.009178 0.111179 0.064124 0.045116 0.176777 0.010135 0.000948 0.085694 0.069745 0.043112 0.125734 0.058380 0.035987 0.022540 0.102490 0.070480 0.050881 0.049871 0.239144 0.060149 0.038037 0.046839 0.273307 0.079860 0.307471 +0.204714 +0.048168 0.014180 0.064522 0.061143 0.035986 0.091302 0.064641 0.010025 0.145734 0.045738 0.021319 0.040564 0.005695 0.046096 0.036784 0.037139 0.029013 0.053387 0.053209 0.061769 0.051677 0.102490 0.065856 0.005502 0.066677 0.102490 0.091157 0.022212 0.042211 0.136654 0.095418 0.204980 +0 +0.043782 0.037423 0.164228 0.043659 0.039876 0.145618 0.009553 0.042459 0.064377 0.036101 0.029792 0.168710 0.001905 0.047644 0.107069 0.045144 0.020563 0.237681 0.050756 0.013119 0.008259 0.204980 0.073502 0.066442 0.031315 0.204980 0.065513 0.062071 0.028613 0.102490 0.090486 0.341634 +0.171741 +0.054626 0.061006 0.040068 0.035456 0.041638 0.179608 0.027945 0.056359 0.039942 0.050286 0.035429 0.122175 0.041015 0.038605 0.038452 0.041243 0.033375 0.164383 0.051402 0.004729 0.036412 0.204980 0.098924 0.060627 0.022962 0.136654 0.073219 0.012781 0.017811 0.170817 0.099113 0.273307 +0.039194 +0.060229 0.066441 0.057400 0.173466 0.032721 0.237764 0.037082 0.037336 0.038405 0.052378 0.050268 0.039725 0.010808 0.023066 0.035102 0.090131 0.041151 0.164233 0.043069 0.041575 0.007531 0.204980 0.097657 0.041709 0.026571 0.170817 0.065137 0.034216 0.044641 0.170817 0.064362 0.239144 +0.093417 +0.066271 0.032092 0.053562 0.049469 0.042739 0.046647 0.028943 0.045997 0.054895 0.141139 0.048942 0.213920 0.038027 0.041163 0.042589 0.058155 0.032145 0.065159 0.060636 0.011828 0.063942 0.170817 0.057048 0.026407 0.044906 0.204980 0.084830 0.014944 0.025315 0.170817 0.088454 0.307471 +0.066177 +0.018363 0.013175 0.065421 0.035205 0.017628 0.057086 0.063242 0.011115 0.073653 0.045212 0.047041 0.085122 0.047168 0.026599 0.048536 0.060214 0.018513 0.080594 0.061295 0.066824 0.022861 0.102490 0.098642 0.034748 0.011669 0.136654 0.060221 0.061401 0.066711 0.239144 0.061768 0.273307 +0 +0.010187 0.001349 0.059247 0.044598 0.044156 0.184796 0.028623 0.054323 0.072750 0.109296 0.018811 0.036046 0.004991 0.057510 0.062881 0.051530 0.022616 0.171681 0.048359 0.021422 0.003476 0.204980 0.059860 0.005629 0.009106 0.170817 0.079128 0.012909 0.001008 0.239144 0.059365 0.341634 +0 +0.019690 0.041555 0.097769 0.141745 0.036427 0.075436 0.067049 0.066274 0.064971 0.039951 0.044514 0.149723 0.006650 0.040889 0.035567 0.050972 0.030641 0.048118 0.057478 0.045161 0.046484 0.136654 0.061168 0.054124 0.031397 0.136654 0.076717 0.033716 0.059701 0.102490 0.071084 0.273307 +0.004688 +0.045781 0.011579 0.111735 0.071941 0.020396 0.106488 0.062017 0.019251 0.095049 0.079337 0.045565 0.221517 0.012190 0.028071 0.071372 0.056868 0.039343 0.129198 0.055569 0.028272 0.061340 0.136654 0.080216 0.007513 0.029539 0.102490 0.094584 0.055967 0.040027 0.170817 0.074759 0.273307 +0.016688 +0.030408 0.019732 0.077536 0.047103 0.036906 0.482754 0.027619 0.034490 0.035030 0.093749 0.046893 0.320331 0.051665 0.056070 0.063655 0.036527 0.023299 0.080940 0.043483 0.013793 0.060002 0.102490 0.053655 0.062704 0.005994 0.204980 0.075104 0.015473 0.037750 0.170817 0.066245 0.239144 +0.680832 +0.002856 0.062250 0.093353 0.069019 0.027867 0.054523 0.033781 0.053397 0.038051 0.036251 0.025702 0.232707 0.043763 0.037669 0.046194 0.056367 0.021798 0.060122 0.053199 0.005723 0.031829 0.170817 0.054713 0.033886 0.001255 0.102490 0.099952 0.013815 0.049246 0.102490 0.095446 0.204980 +0.422873 +0.015663 0.056375 0.065345 0.049940 0.035530 0.052081 0.035403 0.001398 0.039727 0.037283 0.026699 0.130209 0.058501 0.040092 0.115790 0.112382 0.036432 0.133682 0.045929 0.054950 0.000382 0.136654 0.094475 0.048990 0.068152 0.136654 0.064110 0.068139 0.047776 0.136654 0.053278 0.204980 +0.047662 +0.031309 0.018182 0.125378 0.086680 0.039928 0.035137 0.004395 0.060606 0.039235 0.049769 0.025188 0.056746 0.036999 0.050537 0.074804 0.038451 0.035905 0.138553 0.049033 0.058457 0.008410 0.136654 0.068126 0.027040 0.026352 0.204980 0.060529 0.012937 0.024706 0.102490 0.094257 0.239144 +0 +0.057778 0.001027 0.044178 0.034465 0.033475 0.433136 0.049478 0.037805 0.035057 0.046715 0.019031 0.099812 0.026904 0.058561 0.102293 0.083015 0.026550 0.097672 0.056359 0.003999 0.009953 0.136654 0.053765 0.032272 0.020197 0.170817 0.083229 0.032507 0.041889 0.170817 0.060083 0.204980 +0.069507 +0.011549 0.008228 0.041465 0.046428 0.046430 0.106708 0.032928 0.013610 0.076114 0.038177 0.046022 0.161703 0.027991 0.042435 0.072155 0.035932 0.049917 0.127439 0.055562 0.009190 0.063012 0.239144 0.066221 0.033377 0.047784 0.170817 0.092943 0.044184 0.010271 0.102490 0.068757 0.341634 +0.003286 +0.008818 0.014590 0.065456 0.053292 0.042294 0.039294 0.018042 0.029160 0.049830 0.087225 0.045656 0.103753 0.007086 0.049775 0.122444 0.063049 0.047708 0.156149 0.053554 0.056496 0.050297 0.136654 0.082215 0.028753 0.049920 0.136654 0.061199 0.013800 0.015586 0.204980 0.079904 0.239144 +0.031095 +0.043245 0.009066 0.037338 0.054251 0.022879 0.133312 0.028092 0.029540 0.052806 0.045722 0.029722 0.139320 0.018367 0.004042 0.041667 0.050790 0.023920 0.191043 0.043637 0.038555 0.054567 0.136654 0.067487 0.015606 0.051484 0.102490 0.071795 0.024646 0.003844 0.136654 0.089760 0.307471 +0.018723 +0.002106 0.040807 0.060946 0.050369 0.028177 0.147226 0.022975 0.016580 0.060372 0.113714 0.033618 0.111487 0.041153 0.045006 0.078174 0.036101 0.037229 0.476688 0.049437 0.004423 0.010392 0.239144 0.094875 0.022637 0.035983 0.102490 0.096254 0.046210 0.040096 0.102490 0.079049 0.273307 +0.053785 +0.017352 0.037945 0.077252 0.053363 0.021776 0.190330 0.009915 0.029557 0.051121 0.042610 0.040255 0.232069 0.052053 0.040427 0.072640 0.151248 0.041312 0.321339 0.064696 0.044760 0.067971 0.170817 0.053622 0.055153 0.003021 0.170817 0.057363 0.065492 0.030496 0.170817 0.088762 0.204980 +0.603639 +0.001632 0.065644 0.067768 0.043654 0.034597 0.126725 0.053079 0.002509 0.067355 0.047061 0.036063 0.069896 0.051850 0.036530 0.078630 0.036694 0.024013 0.300487 0.061891 0.033231 0.018424 0.273307 0.061361 0.044368 0.030225 0.307471 0.080682 0.037771 0.026813 0.102490 0.063810 0.341634 +0 +0.021715 0.063067 0.039708 0.041866 0.025936 0.043025 0.053799 0.031342 0.106949 0.116371 0.023345 0.212247 0.011527 0.006432 0.049135 0.037416 0.036373 0.123684 0.039142 0.003653 0.025523 0.170817 0.063375 0.001322 0.046005 0.136654 0.097523 0.003672 0.066787 0.204980 0.070442 0.239144 +0.539123 +0.030631 0.063090 0.273203 0.038585 0.022668 0.074910 0.045932 0.062493 0.035892 0.052597 0.042906 0.102876 0.067284 0.036581 0.109428 0.037228 0.044639 0.044229 0.044662 0.059094 0.043659 0.307471 0.057923 0.002783 0.054779 0.170817 0.061709 0.010591 0.047980 0.170817 0.097931 0.341634 +0 +0.011780 0.042551 0.084473 0.063687 0.030436 0.176749 0.032938 0.033229 0.096846 0.218247 0.050432 0.044342 0.005993 0.018470 0.078491 0.066201 0.040039 0.312358 0.060753 0.017798 0.068217 0.170817 0.082780 0.065114 0.026474 0.136654 0.077387 0.041132 0.060767 0.102490 0.069071 0.239144 +0.026453 +0.049877 0.049290 0.062069 0.034455 0.029390 0.069021 0.019654 0.022215 0.102524 0.140160 0.038824 0.142275 0.047863 0.059358 0.067817 0.045331 0.024647 0.037799 0.053308 0.057874 0.032283 0.204980 0.058818 0.063443 0.031802 0.170817 0.089005 0.030596 0.048900 0.102490 0.068793 0.239144 +0.002103 +0.037299 0.014645 0.043720 0.036934 0.033515 0.084521 0.022959 0.021624 0.047866 0.043300 0.032307 0.093322 0.044037 0.050865 0.062719 0.059524 0.048650 0.042068 0.041018 0.053099 0.053660 0.102490 0.077703 0.056889 0.012092 0.170817 0.058190 0.014892 0.035605 0.102490 0.083831 0.204980 +0.016060 +0.047817 0.061105 0.146064 0.040998 0.045830 0.110169 0.046448 0.043279 0.073315 0.056097 0.020354 0.131004 0.019051 0.009837 0.051807 0.061617 0.033223 0.039881 0.038606 0.016630 0.004016 0.204980 0.058841 0.005782 0.030750 0.239144 0.068791 0.005231 0.033992 0.136654 0.089820 0.341634 +0.111222 +0.011895 0.055490 0.038344 0.058803 0.047789 0.051284 0.030851 0.013118 0.094875 0.045446 0.020771 0.066644 0.024428 0.000666 0.090863 0.034253 0.035876 0.201582 0.038160 0.058724 0.017561 0.136654 0.070381 0.041574 0.010002 0.102490 0.082241 0.002708 0.057940 0.170817 0.070188 0.204980 +0.004038 +0.058694 0.010485 0.069811 0.036466 0.039974 0.176358 0.051312 0.018184 0.083584 0.073924 0.037354 0.181381 0.065570 0.052646 0.051109 0.036005 0.047839 0.147414 0.051222 0.031185 0.028017 0.102490 0.055652 0.031580 0.000570 0.239144 0.094429 0.000516 0.033515 0.136654 0.093061 0.307471 +0.753635 +0.007311 0.037730 0.045278 0.143514 0.039599 0.161537 0.056441 0.010649 0.048075 0.066138 0.043893 0.101164 0.067680 0.013440 0.046739 0.087162 0.038410 0.147841 0.051201 0.048687 0.054022 0.136654 0.091012 0.020548 0.009386 0.102490 0.099503 0.032197 0.027082 0.239144 0.087653 0.273307 +0.072425 +0.004079 0.035953 0.054242 0.038100 0.030168 0.249937 0.023856 0.036251 0.038723 0.043803 0.020233 0.116291 0.040613 0.052003 0.040748 0.072225 0.036137 0.154310 0.058250 0.015814 0.045337 0.136654 0.073682 0.009295 0.041362 0.170817 0.075141 0.029063 0.045145 0.307471 0.068349 0.341634 +0.043461 +0.017991 0.065321 0.037997 0.059261 0.029894 0.064293 0.026951 0.034640 0.165820 0.103503 0.027637 0.062222 0.006350 0.064251 0.104023 0.091020 0.046766 0.146729 0.051522 0.022052 0.023359 0.170817 0.081666 0.027949 0.006728 0.136654 0.071461 0.034023 0.032050 0.239144 0.077624 0.273307 +0.016104 +0.063356 0.051512 0.041095 0.038102 0.024379 0.073847 0.062862 0.054495 0.038039 0.081187 0.032267 0.087803 0.003493 0.035914 0.042272 0.066176 0.036475 0.192594 0.059754 0.009901 0.008787 0.204980 0.095581 0.033773 0.055349 0.170817 0.088688 0.023584 0.036097 0.170817 0.059326 0.273307 +0.018651 +0.064873 0.040665 0.138503 0.044183 0.043261 0.215209 0.007191 0.055357 0.056630 0.061789 0.032635 0.063998 0.044567 0.059928 0.045448 0.068167 0.035467 0.050688 0.046359 0.062843 0.013340 0.170817 0.095324 0.041380 0.051181 0.102490 0.079706 0.001140 0.012472 0.136654 0.051957 0.204980 +0 +0.023510 0.030094 0.039023 0.107697 0.022952 0.083211 0.048726 0.017828 0.035293 0.072138 0.026980 0.115946 0.045231 0.037855 0.051435 0.080469 0.023957 0.042041 0.059916 0.059868 0.041969 0.136654 0.093932 0.043401 0.018565 0.239144 0.076114 0.031127 0.043610 0.170817 0.054938 0.273307 +0 +0.058947 0.055346 0.047774 0.062374 0.022370 0.245232 0.027413 0.056926 0.088284 0.038418 0.042542 0.041553 0.022697 0.008638 0.035303 0.068234 0.024571 0.095148 0.047446 0.010205 0.029626 0.170817 0.058966 0.016290 0.004032 0.136654 0.058236 0.022229 0.024805 0.136654 0.089798 0.204980 +0.080410 +0.005253 0.044124 0.041203 0.069205 0.050471 0.463682 0.001549 0.008258 0.093005 0.036685 0.047291 0.123923 0.016957 0.058638 0.049926 0.083721 0.017728 0.057765 0.038326 0.005642 0.005842 0.102490 0.097004 0.031211 0.036368 0.102490 0.080186 0.030325 0.002829 0.239144 0.095120 0.273307 +0.407087 +0.012123 0.020544 0.055265 0.037411 0.045182 0.064418 0.067658 0.055885 0.046659 0.061396 0.050404 0.164186 0.045412 0.020012 0.118170 0.041220 0.043629 0.178927 0.055068 0.061130 0.000321 0.170817 0.066662 0.050499 0.055141 0.136654 0.100094 0.047441 0.043523 0.239144 0.052775 0.341634 +0.132088 +0.029238 0.066936 0.082030 0.074796 0.022399 0.052856 0.043196 0.007398 0.056428 0.061685 0.019247 0.057354 0.023864 0.027291 0.039331 0.068387 0.045929 0.140222 0.053485 0.015456 0.048786 0.239144 0.069845 0.001326 0.040673 0.170817 0.087646 0.046220 0.026966 0.273307 0.085090 0.307471 +0 +0.007480 0.060547 0.121577 0.056866 0.035989 0.179432 0.017338 0.048960 0.064505 0.063700 0.041325 0.096788 0.055811 0.000843 0.189933 0.036523 0.023605 0.126540 0.055771 0.053156 0.047098 0.136654 0.101472 0.063537 0.022632 0.204980 0.079583 0.058021 0.061616 0.204980 0.068665 0.307471 +0 +0.000581 0.054811 0.047610 0.068443 0.043795 0.056656 0.036327 0.065408 0.107681 0.049657 0.026859 0.117502 0.016563 0.034558 0.053220 0.040656 0.019760 0.079854 0.039068 0.005536 0.021757 0.204980 0.078026 0.001202 0.008135 0.170817 0.089522 0.056622 0.008092 0.170817 0.052383 0.307471 +0.000956 +0.026850 0.009903 0.073742 0.046133 0.034486 0.065365 0.036834 0.025835 0.079429 0.073365 0.041837 0.324858 0.033588 0.017975 0.035558 0.055231 0.020598 0.192180 0.045232 0.062294 0.063178 0.170817 0.072535 0.046978 0.025360 0.239144 0.079985 0.064392 0.006195 0.239144 0.072889 0.273307 +0.358593 +0.017389 0.042690 0.041514 0.077229 0.018696 0.192658 0.021436 0.054796 0.068419 0.056235 0.020086 0.409891 0.006350 0.049538 0.043563 0.040855 0.033709 0.110389 0.044042 0.012448 0.035182 0.307471 0.101252 0.038852 0.058018 0.239144 0.075964 0.057419 0.058374 0.170817 0.081860 0.341634 +0.548690 +0.014458 0.018358 0.069602 0.064194 0.033288 0.294172 0.009981 0.006563 0.048708 0.039561 0.038627 0.121853 0.037740 0.039048 0.143015 0.035705 0.026175 0.059958 0.043053 0.047348 0.067573 0.170817 0.078939 0.009207 0.015544 0.170817 0.083545 0.039611 0.011336 0.136654 0.080727 0.239144 +0.051709 +0.030983 0.061851 0.044578 0.034223 0.035565 0.041429 0.038263 0.020745 0.066823 0.051853 0.034059 0.111000 0.003064 0.006092 0.106656 0.041735 0.041714 0.040420 0.063333 0.004130 0.021904 0.307471 0.067923 0.011947 0.005133 0.102490 0.090720 0.013464 0.018203 0.170817 0.075155 0.341634 +0.036205 +0.039029 0.055016 0.070155 0.035284 0.050654 0.063932 0.051022 0.063424 0.102682 0.057900 0.020896 0.197518 0.046065 0.043168 0.036383 0.081819 0.031275 0.145586 0.040168 0.063083 0.027846 0.136654 0.072456 0.067743 0.050290 0.170817 0.067749 0.033532 0.024946 0.170817 0.070568 0.204980 +0.220883 +0.041565 0.005949 0.037846 0.063270 0.030993 0.067650 0.015965 0.056559 0.140107 0.039952 0.030708 0.177171 0.060670 0.057828 0.039189 0.058760 0.041618 0.078393 0.061018 0.052908 0.011805 0.170817 0.078993 0.013563 0.029453 0.102490 0.079124 0.020354 0.030801 0.273307 0.062715 0.341634 +0.004406 +0.028117 0.024289 0.062289 0.036403 0.036359 0.050773 0.026421 0.065545 0.131944 0.055146 0.041919 0.059362 0.042231 0.058143 0.108826 0.171000 0.046444 0.173155 0.050119 0.061704 0.004478 0.136654 0.071875 0.056164 0.001258 0.170817 0.059898 0.032982 0.060907 0.102490 0.094736 0.204980 +0.043419 +0.049413 0.008526 0.067743 0.121356 0.018486 0.042431 0.052804 0.017883 0.042360 0.085059 0.039379 0.084286 0.057550 0.053427 0.100520 0.149843 0.030349 0.188262 0.052487 0.051465 0.053881 0.136654 0.084271 0.030833 0.027732 0.102490 0.070611 0.040384 0.014199 0.136654 0.092130 0.204980 +0.070517 +0.044854 0.035956 0.047779 0.099349 0.047796 0.035177 0.047092 0.048445 0.096402 0.047683 0.040766 0.143916 0.005031 0.017293 0.057931 0.068145 0.049974 0.345688 0.052788 0.041020 0.038206 0.102490 0.097813 0.064690 0.036457 0.170817 0.069141 0.050108 0.011682 0.136654 0.074771 0.239144 +0.240573 +0.055868 0.041990 0.137479 0.098439 0.029072 0.122346 0.034236 0.056738 0.047261 0.038026 0.023735 0.050292 0.055296 0.044978 0.042303 0.062607 0.020900 0.098599 0.054853 0.011769 0.032954 0.136654 0.052091 0.047446 0.055226 0.136654 0.053383 0.040119 0.027954 0.239144 0.082047 0.273307 +0.056769 +0.062081 0.044695 0.038399 0.080748 0.023974 0.125547 0.067698 0.038155 0.059997 0.109817 0.018099 0.250599 0.034443 0.056759 0.054565 0.065798 0.029101 0.037011 0.046328 0.062063 0.068137 0.102490 0.086094 0.017919 0.035270 0.204980 0.051336 0.022811 0.053802 0.273307 0.100636 0.341634 +0.061592 +0.067432 0.050812 0.034255 0.114749 0.030510 0.352394 0.013416 0.058017 0.044088 0.042007 0.024701 0.066801 0.017049 0.012098 0.038356 0.071980 0.026286 0.072637 0.054774 0.003830 0.005198 0.170817 0.083739 0.037028 0.032174 0.204980 0.053183 0.014762 0.054818 0.136654 0.064437 0.239144 +0.466899 +0.044130 0.003372 0.090217 0.161693 0.027953 0.052692 0.041429 0.010002 0.045891 0.111159 0.044750 0.035755 0.050124 0.016939 0.058619 0.040579 0.038137 0.055631 0.045857 0.066057 0.005771 0.170817 0.101671 0.027291 0.031048 0.170817 0.086861 0.067143 0.010949 0.170817 0.089684 0.204980 +0 +0.031978 0.017273 0.054577 0.055470 0.036228 0.043846 0.038140 0.005441 0.181512 0.077265 0.048937 0.079281 0.004839 0.047127 0.106708 0.047074 0.033579 0.061333 0.059289 0.028807 0.038270 0.170817 0.089678 0.027581 0.059258 0.136654 0.080253 0.054869 0.032439 0.136654 0.055231 0.204980 +0.002199 +0.060019 0.040779 0.048428 0.040502 0.043493 0.494471 0.006041 0.044810 0.056073 0.043162 0.041391 0.294661 0.020688 0.008014 0.048248 0.040812 0.037427 0.093196 0.059057 0.004872 0.006797 0.170817 0.093945 0.036679 0.053330 0.102490 0.069896 0.004323 0.033490 0.170817 0.089793 0.204980 +0.790764 +0.048400 0.043520 0.085269 0.088284 0.044176 0.148955 0.024725 0.004321 0.064041 0.112272 0.026120 0.048596 0.007417 0.049929 0.089151 0.054025 0.035161 0.100133 0.055405 0.023877 0.062883 0.170817 0.084857 0.014137 0.026710 0.204980 0.074313 0.064475 0.043291 0.204980 0.061874 0.341634 +0 +0.051650 0.014023 0.036765 0.043624 0.041524 0.227704 0.011873 0.037082 0.100958 0.040976 0.043581 0.248244 0.030160 0.010192 0.051811 0.084882 0.033167 0.056251 0.054456 0.027802 0.051208 0.307471 0.057643 0.057719 0.037248 0.273307 0.094284 0.055708 0.003161 0.204980 0.089809 0.341634 +0.076606 +0.065528 0.058980 0.038549 0.074482 0.029125 0.060023 0.002134 0.060524 0.129028 0.061908 0.024685 0.397757 0.049808 0.055127 0.035995 0.068635 0.022872 0.269304 0.050476 0.051571 0.017103 0.170817 0.098452 0.046710 0.039402 0.170817 0.083547 0.055051 0.010708 0.204980 0.073680 0.239144 +0.203296 +0.032699 0.063666 0.157706 0.050570 0.025007 0.278599 0.026405 0.049989 0.035269 0.060829 0.020092 0.207079 0.040986 0.034746 0.053689 0.087206 0.038406 0.074900 0.039507 0.044713 0.016145 0.102490 0.066853 0.033445 0.063557 0.102490 0.061252 0.049946 0.059648 0.170817 0.060877 0.239144 +0.424580 +0.003607 0.042948 0.049006 0.063734 0.038664 0.036631 0.039402 0.049103 0.207276 0.083709 0.025186 0.086514 0.023740 0.033054 0.038683 0.035791 0.039741 0.077740 0.050890 0.050097 0.017510 0.239144 0.084262 0.013223 0.053949 0.102490 0.071965 0.045809 0.035655 0.170817 0.091818 0.273307 +0 +0.032397 0.028885 0.051459 0.058071 0.033276 0.092753 0.025251 0.066994 0.080613 0.130632 0.024835 0.177098 0.061236 0.037216 0.107203 0.038744 0.026092 0.038849 0.061643 0.001594 0.056386 0.204980 0.097667 0.026383 0.057244 0.102490 0.054751 0.053020 0.001105 0.204980 0.074876 0.273307 +0.014915 +0.053362 0.023784 0.198439 0.040129 0.043849 0.035144 0.061020 0.026341 0.067112 0.093184 0.038522 0.092488 0.032230 0.058021 0.053602 0.094154 0.044133 0.074784 0.062460 0.055535 0.057137 0.204980 0.098845 0.055225 0.031376 0.170817 0.099463 0.057195 0.064231 0.273307 0.092960 0.341634 +0 +0.004007 0.054035 0.043439 0.041487 0.041528 0.034673 0.023488 0.027559 0.085192 0.043079 0.043414 0.393690 0.023952 0.030405 0.143598 0.037975 0.045841 0.046215 0.047974 0.030459 0.064424 0.170817 0.055222 0.036434 0.024092 0.170817 0.068446 0.060460 0.015355 0.136654 0.074960 0.273307 +0.381811 +0.048467 0.030502 0.085990 0.055846 0.050997 0.200286 0.054008 0.064659 0.042929 0.065055 0.017874 0.231011 0.041344 0.022041 0.120447 0.041758 0.033101 0.074176 0.044521 0.038607 0.007833 0.204980 0.086899 0.034884 0.054077 0.239144 0.077155 0.032236 0.057099 0.102490 0.068832 0.273307 +0.268395 +0.048077 0.062839 0.038138 0.049871 0.029307 0.319399 0.054128 0.042763 0.060918 0.044005 0.027088 0.084308 0.036053 0.054523 0.046451 0.083220 0.024020 0.092219 0.054732 0.061546 0.067358 0.170817 0.071832 0.000722 0.032660 0.170817 0.053770 0.032466 0.049856 0.136654 0.069562 0.273307 +0.013665 +0.001552 0.049206 0.054010 0.037246 0.029837 0.058673 0.061090 0.003687 0.038234 0.051515 0.021875 0.379280 0.036526 0.029737 0.057703 0.039090 0.029872 0.073943 0.055421 0.059729 0.032397 0.102490 0.066216 0.066846 0.065430 0.204980 0.096720 0.011695 0.042454 0.136654 0.078316 0.341634 +0.589519 +0.026655 0.054677 0.092741 0.038154 0.036535 0.096759 0.016161 0.051938 0.039756 0.114454 0.045838 0.243589 0.027497 0.018776 0.051283 0.041619 0.047607 0.054969 0.049058 0.039756 0.037510 0.136654 0.099604 0.047661 0.032462 0.170817 0.069638 0.035182 0.060265 0.170817 0.102227 0.204980 +0.217039 +0.042479 0.016542 0.043589 0.045241 0.049393 0.133702 0.033121 0.039766 0.055550 0.080217 0.044803 0.236744 0.018328 0.033326 0.063100 0.052038 0.025051 0.167109 0.052282 0.003815 0.029569 0.273307 0.092155 0.061890 0.000714 0.170817 0.084085 0.058542 0.001861 0.204980 0.052741 0.341634 +0.060074 +0.024174 0.038203 0.057999 0.138008 0.017497 0.053067 0.029372 0.059958 0.056036 0.047514 0.019589 0.376656 0.044616 0.042262 0.088135 0.041467 0.046035 0.091285 0.053581 0.034243 0.058452 0.136654 0.071589 0.018711 0.043588 0.239144 0.062670 0.041012 0.001996 0.204980 0.081371 0.341634 +0.443919 +0.010976 0.047011 0.092298 0.098063 0.029761 0.143729 0.021429 0.014141 0.039005 0.049354 0.033870 0.083664 0.058856 0.033730 0.039189 0.095511 0.040578 0.439939 0.051240 0.012429 0.051608 0.170817 0.055319 0.050768 0.042427 0.170817 0.100621 0.020529 0.027756 0.102490 0.072551 0.204980 +0.227518 +0.019757 0.052338 0.058875 0.036509 0.025370 0.169707 0.006306 0.030590 0.065658 0.081949 0.018436 0.451541 0.039450 0.045425 0.061115 0.168416 0.043985 0.229827 0.038557 0.013900 0.037474 0.273307 0.084157 0.036151 0.028376 0.170817 0.052550 0.038939 0.051622 0.239144 0.100406 0.307471 +0.560193 +0.005445 0.021600 0.055787 0.036802 0.037873 0.103077 0.048012 0.018181 0.047313 0.036722 0.022310 0.054197 0.005653 0.042182 0.045431 0.035598 0.035923 0.326368 0.048431 0.016895 0.066176 0.170817 0.063732 0.024675 0.016074 0.136654 0.074108 0.037163 0.005682 0.102490 0.054432 0.341634 +0.001578 +0.046455 0.025251 0.052820 0.038994 0.041296 0.059378 0.001385 0.041202 0.096071 0.062539 0.041810 0.036695 0.009299 0.046314 0.053063 0.034406 0.035153 0.057456 0.049214 0.016143 0.058067 0.204980 0.070140 0.005106 0.016588 0.239144 0.081793 0.014750 0.040360 0.204980 0.064707 0.273307 +0 +0.067324 0.000494 0.035282 0.038118 0.035883 0.144968 0.052418 0.024695 0.042432 0.037482 0.022738 0.047085 0.050584 0.028057 0.035471 0.034655 0.026085 0.121223 0.051135 0.036328 0.007494 0.136654 0.058281 0.036479 0.048869 0.204980 0.096258 0.053568 0.027349 0.204980 0.098740 0.239144 +0 +0.051675 0.007069 0.066344 0.035817 0.041183 0.061963 0.036076 0.056416 0.076923 0.040336 0.017554 0.115115 0.005535 0.061282 0.062040 0.038618 0.020556 0.049596 0.041711 0.029627 0.057989 0.170817 0.071559 0.039839 0.009405 0.239144 0.072533 0.013904 0.001485 0.136654 0.087083 0.273307 +0.185001 +0.061410 0.041683 0.049796 0.037930 0.033201 0.145894 0.056614 0.004465 0.035136 0.092920 0.019029 0.063611 0.005494 0.062716 0.081556 0.155828 0.019562 0.097198 0.047211 0.045090 0.045229 0.136654 0.061068 0.003485 0.007636 0.102490 0.052729 0.016992 0.050309 0.136654 0.052907 0.204980 +0.091704 +0.008270 0.002448 0.035603 0.035252 0.031670 0.064457 0.034457 0.040444 0.044651 0.080723 0.028316 0.100992 0.018936 0.031461 0.062628 0.063474 0.030775 0.069804 0.049802 0.067827 0.060479 0.102490 0.077954 0.033143 0.066977 0.136654 0.055398 0.040327 0.041836 0.170817 0.055422 0.204980 +0.069540 +0.040472 0.046896 0.061959 0.056470 0.018179 0.052251 0.048808 0.012822 0.041449 0.050648 0.046274 0.326276 0.029345 0.048716 0.040898 0.081550 0.017349 0.177347 0.052952 0.004308 0.058396 0.204980 0.095629 0.060443 0.062059 0.136654 0.094308 0.005944 0.001293 0.170817 0.076219 0.239144 +0.348688 +0.020696 0.044590 0.037519 0.064287 0.035879 0.079781 0.053079 0.031164 0.113834 0.069576 0.046280 0.121849 0.025724 0.065431 0.074793 0.130101 0.030684 0.071030 0.050235 0.022881 0.059736 0.136654 0.068692 0.005443 0.064305 0.170817 0.055487 0.001093 0.033304 0.136654 0.097603 0.341634 +0 +0.044439 0.053248 0.047169 0.036625 0.026580 0.037998 0.032099 0.060189 0.105232 0.048033 0.027473 0.156813 0.038307 0.032245 0.043576 0.041156 0.036356 0.286807 0.060714 0.043740 0.043324 0.136654 0.076574 0.020325 0.024602 0.136654 0.075570 0.037647 0.046041 0.102490 0.093764 0.239144 +0.000831 +0.033025 0.040113 0.053046 0.058367 0.022278 0.167492 0.018118 0.007722 0.063600 0.055346 0.026854 0.370974 0.041950 0.033591 0.047967 0.087977 0.051130 0.046764 0.051004 0.002662 0.028201 0.204980 0.075038 0.009988 0.026010 0.136654 0.095305 0.037824 0.017418 0.204980 0.082681 0.239144 +0.165946 +0.060630 0.017579 0.060789 0.058102 0.033824 0.115422 0.024350 0.014624 0.058201 0.042506 0.018630 0.121579 0.011592 0.065252 0.036930 0.129713 0.025881 0.114213 0.052954 0.001638 0.067897 0.102490 0.051250 0.015348 0.065810 0.102490 0.089060 0.032323 0.063245 0.102490 0.092268 0.239144 +0 +0.017143 0.015400 0.044373 0.072232 0.029089 0.038752 0.010090 0.052826 0.053020 0.052972 0.040618 0.147681 0.057388 0.006413 0.070284 0.090420 0.031243 0.044909 0.046356 0.052419 0.008665 0.102490 0.051693 0.001607 0.029507 0.136654 0.066335 0.054510 0.013262 0.136654 0.064705 0.239144 +0.011962 +0.026587 0.036829 0.048331 0.042973 0.024751 0.311596 0.039168 0.023174 0.040664 0.044805 0.044433 0.103118 0.005497 0.063774 0.063885 0.065809 0.039036 0.158794 0.050370 0.048133 0.029769 0.239144 0.079330 0.011595 0.031563 0.273307 0.099334 0.020826 0.066009 0.307471 0.080617 0.341634 +0.073331 +0.032413 0.013801 0.039455 0.103837 0.037373 0.415292 0.028240 0.035765 0.093247 0.053226 0.039749 0.101454 0.040044 0.001877 0.035723 0.040206 0.020618 0.045621 0.057469 0.026881 0.056201 0.239144 0.077675 0.054216 0.038238 0.273307 0.089528 0.023323 0.058923 0.239144 0.055000 0.307471 +0.218582 +0.034836 0.068284 0.044760 0.042078 0.028347 0.150571 0.003221 0.012105 0.073127 0.079930 0.033377 0.088560 0.048820 0.018902 0.046225 0.081724 0.024726 0.132642 0.053688 0.023011 0.012678 0.273307 0.075347 0.061234 0.044903 0.136654 0.091992 0.000153 0.057360 0.273307 0.054490 0.307471 +0.019491 +0.067222 0.008221 0.046283 0.098979 0.018852 0.106971 0.042256 0.032448 0.061281 0.097899 0.037746 0.102059 0.020969 0.005420 0.052440 0.041755 0.030433 0.045841 0.056644 0.027559 0.005289 0.136654 0.062662 0.020254 0.043561 0.136654 0.099884 0.036418 0.018748 0.102490 0.062636 0.307471 +0 +0.065336 0.050567 0.066630 0.046860 0.030728 0.078598 0.013428 0.051897 0.096181 0.044932 0.027436 0.057914 0.043398 0.064019 0.049348 0.085060 0.017565 0.132879 0.055326 0.063612 0.021723 0.204980 0.082490 0.047945 0.036514 0.102490 0.082682 0.006011 0.010555 0.273307 0.059041 0.307471 +0 +0.054750 0.025493 0.059914 0.039190 0.033815 0.034300 0.005987 0.057578 0.064808 0.039588 0.024761 0.042104 0.064461 0.048708 0.066774 0.090196 0.030152 0.063031 0.056512 0.022766 0.042034 0.136654 0.090799 0.064862 0.058905 0.170817 0.051614 0.003146 0.027321 0.170817 0.098106 0.239144 +0 +0.066614 0.034823 0.108956 0.043380 0.039994 0.172473 0.048173 0.056250 0.072031 0.085071 0.024534 0.170872 0.009089 0.008602 0.119890 0.071125 0.043152 0.316905 0.054034 0.046716 0.001356 0.170817 0.078199 0.028013 0.030904 0.102490 0.099758 0.064523 0.042114 0.102490 0.098110 0.239144 +0.018474 +0.027957 0.013186 0.042176 0.095076 0.046620 0.174199 0.012247 0.029541 0.035842 0.082597 0.044166 0.052817 0.002795 0.028399 0.106672 0.048075 0.045823 0.043295 0.060302 0.055361 0.011424 0.102490 0.077934 0.058484 0.035639 0.136654 0.056855 0.059255 0.017265 0.102490 0.102389 0.204980 +0.019555 +0.014022 0.027525 0.113573 0.034457 0.045477 0.106085 0.032637 0.057214 0.149966 0.052609 0.027126 0.170418 0.049942 0.063802 0.039649 0.041883 0.019198 0.274076 0.063079 0.063926 0.026388 0.273307 0.089809 0.049828 0.035566 0.136654 0.057335 0.051475 0.056461 0.307471 0.061160 0.341634 +0.118496 +0.046367 0.055004 0.078772 0.049073 0.036515 0.065656 0.045061 0.008821 0.148230 0.068047 0.037596 0.311853 0.030952 0.058707 0.048858 0.081699 0.018720 0.127282 0.046886 0.042989 0.006523 0.102490 0.097149 0.048099 0.051143 0.136654 0.061402 0.007984 0.015828 0.204980 0.064691 0.239144 +0.328847 +0.066226 0.019812 0.156288 0.043468 0.035628 0.061733 0.007069 0.010073 0.060804 0.043830 0.044290 0.161103 0.017954 0.020069 0.101298 0.054740 0.046985 0.165794 0.054916 0.034379 0.024032 0.204980 0.087209 0.043056 0.058170 0.239144 0.082758 0.053340 0.035720 0.273307 0.053738 0.341634 +0.009904 +0.001456 0.062871 0.056171 0.132073 0.045069 0.067362 0.003636 0.017014 0.078335 0.079456 0.023785 0.100788 0.015619 0.050046 0.223742 0.045850 0.026159 0.034860 0.054233 0.009413 0.038063 0.307471 0.085060 0.052728 0.030602 0.170817 0.058839 0.054832 0.041641 0.273307 0.078092 0.341634 +0 +0.059887 0.030107 0.041391 0.040028 0.026044 0.242993 0.043651 0.027925 0.084063 0.119503 0.036970 0.053824 0.067248 0.011831 0.100200 0.039667 0.051012 0.165754 0.062757 0.017246 0.067706 0.102490 0.052343 0.014637 0.004177 0.273307 0.076018 0.066724 0.055886 0.102490 0.061474 0.341634 +0.236166 +0.041072 0.032200 0.060014 0.058260 0.020271 0.038181 0.031091 0.061312 0.084414 0.034440 0.044593 0.039775 0.060611 0.002409 0.092724 0.043116 0.041097 0.164752 0.042135 0.004316 0.005978 0.170817 0.055075 0.016269 0.045229 0.102490 0.096191 0.057281 0.028074 0.273307 0.069785 0.307471 +0 +0.017902 0.030214 0.036981 0.039983 0.021171 0.055614 0.039039 0.014807 0.073135 0.096108 0.039850 0.047478 0.061656 0.006843 0.042360 0.039846 0.017430 0.138067 0.054959 0.059475 0.015528 0.170817 0.082370 0.014540 0.035343 0.102490 0.093450 0.034831 0.049184 0.170817 0.084312 0.341634 +0 +0.015300 0.039046 0.045084 0.073264 0.026840 0.156795 0.006016 0.045813 0.070798 0.055547 0.022022 0.178057 0.059349 0.002764 0.036332 0.077662 0.040596 0.241510 0.047744 0.044305 0.064350 0.170817 0.073227 0.048877 0.025505 0.136654 0.097208 0.043049 0.052531 0.136654 0.057674 0.307471 +0.108298 +0.002326 0.065330 0.048697 0.078537 0.042060 0.107627 0.026654 0.054157 0.060801 0.046268 0.046239 0.322512 0.063842 0.058607 0.107701 0.109765 0.047537 0.110606 0.052795 0.038089 0.035417 0.136654 0.098465 0.028955 0.020531 0.307471 0.053329 0.044102 0.010325 0.204980 0.079419 0.341634 +0.197194 +0.012265 0.066859 0.038504 0.046619 0.025613 0.104485 0.038566 0.047272 0.052578 0.086750 0.045890 0.155891 0.059453 0.067009 0.150306 0.097994 0.050002 0.244357 0.047569 0.046678 0.051087 0.239144 0.060530 0.028839 0.065259 0.170817 0.083230 0.036981 0.026676 0.273307 0.067171 0.341634 +0.157136 +0.054236 0.025989 0.108173 0.068824 0.018522 0.116185 0.052634 0.052016 0.047276 0.065633 0.020279 0.173087 0.040042 0.002633 0.039564 0.117201 0.032195 0.389286 0.057002 0.049435 0.016650 0.102490 0.094059 0.034148 0.026378 0.136654 0.101232 0.043371 0.009279 0.136654 0.066078 0.204980 +0.074270 +0.029265 0.011817 0.134375 0.084521 0.049571 0.045267 0.056434 0.014333 0.050241 0.051335 0.020454 0.161702 0.027072 0.061812 0.043028 0.064403 0.039173 0.237562 0.042010 0.022860 0.040743 0.204980 0.089080 0.037026 0.021738 0.170817 0.082237 0.057661 0.064346 0.170817 0.091770 0.273307 +0.012774 +0.014442 0.042787 0.096913 0.086143 0.020122 0.041950 0.026546 0.030213 0.068765 0.037443 0.019936 0.280789 0.051374 0.061202 0.070168 0.040414 0.030349 0.046708 0.060104 0.006466 0.017219 0.136654 0.097251 0.057676 0.009998 0.136654 0.082382 0.042297 0.001220 0.170817 0.078425 0.273307 +0.031971 +0.041334 0.055330 0.070217 0.045891 0.027226 0.122281 0.002344 0.044464 0.160741 0.048488 0.024287 0.036414 0.052795 0.032080 0.118554 0.040685 0.043241 0.084880 0.050322 0.064110 0.033170 0.136654 0.072772 0.028800 0.017801 0.102490 0.076690 0.066924 0.022410 0.102490 0.102264 0.204980 +0.005154 +0.021164 0.046142 0.087595 0.087230 0.037202 0.061893 0.013882 0.044884 0.060157 0.076308 0.050149 0.065680 0.037282 0.056849 0.072571 0.050300 0.046331 0.184058 0.056961 0.008827 0.027181 0.239144 0.063102 0.046767 0.020075 0.102490 0.072696 0.049058 0.041058 0.307471 0.101310 0.341634 +0.084794 +0.028953 0.038231 0.070952 0.045294 0.035175 0.164757 0.051631 0.034233 0.111677 0.136449 0.028852 0.034761 0.016202 0.011529 0.061789 0.149732 0.034630 0.203633 0.055276 0.061804 0.023298 0.204980 0.080532 0.056936 0.025712 0.136654 0.058988 0.037727 0.056450 0.204980 0.098958 0.273307 +0 +0.057804 0.005321 0.058158 0.108588 0.042983 0.192680 0.012874 0.035687 0.186212 0.059880 0.041519 0.048124 0.026874 0.062551 0.088684 0.076166 0.031099 0.074857 0.050481 0.047960 0.033382 0.170817 0.102269 0.019370 0.042332 0.136654 0.051918 0.033136 0.045328 0.204980 0.051980 0.273307 +0 +0.054655 0.037256 0.105308 0.070638 0.029634 0.132905 0.038139 0.031974 0.084924 0.038987 0.021577 0.291420 0.007309 0.064719 0.043342 0.051491 0.033077 0.130899 0.051812 0.049336 0.012704 0.102490 0.060568 0.025494 0.024246 0.239144 0.100884 0.050891 0.053864 0.204980 0.053316 0.307471 +0.052352 +0.010492 0.013688 0.065331 0.043101 0.024586 0.408694 0.012372 0.062653 0.044881 0.097522 0.026879 0.075935 0.056093 0.023265 0.040525 0.045828 0.023795 0.234684 0.055818 0.008567 0.055727 0.136654 0.062956 0.044283 0.008026 0.102490 0.081931 0.061920 0.056941 0.239144 0.065295 0.273307 +0.556242 +0.005535 0.030172 0.039276 0.041900 0.029891 0.075982 0.029504 0.048413 0.113113 0.065578 0.036330 0.056215 0.016232 0.021630 0.081330 0.069807 0.040589 0.036917 0.046830 0.060503 0.047162 0.170817 0.069204 0.056215 0.054130 0.136654 0.073685 0.038084 0.016933 0.136654 0.097215 0.239144 +0 +0.006436 0.067294 0.089872 0.050780 0.047962 0.177026 0.043405 0.033794 0.078768 0.045232 0.040159 0.061589 0.027775 0.036713 0.074010 0.064225 0.046473 0.158839 0.063913 0.038016 0.018646 0.136654 0.058018 0.000480 0.041552 0.102490 0.097826 0.022318 0.035286 0.102490 0.071825 0.204980 +0.127607 +0.033487 0.065284 0.035554 0.038281 0.033249 0.110722 0.062576 0.003954 0.042965 0.052392 0.045890 0.225255 0.010007 0.003594 0.041498 0.085465 0.043203 0.119978 0.054659 0.063981 0.037878 0.170817 0.054753 0.033830 0.027694 0.170817 0.068769 0.003968 0.062460 0.136654 0.071311 0.204980 +0.305145 +0.035736 0.007278 0.046165 0.103124 0.043521 0.537442 0.026722 0.024991 0.051419 0.035060 0.036850 0.143808 0.018830 0.059564 0.035785 0.043386 0.030955 0.384480 0.043242 0.033932 0.027549 0.136654 0.069649 0.063989 0.051894 0.102490 0.088370 0.041958 0.046774 0.102490 0.098933 0.204980 +0.759898 +0.004808 0.015817 0.137146 0.036245 0.050722 0.089117 0.061248 0.026450 0.173308 0.054430 0.044326 0.229881 0.032835 0.011114 0.048594 0.068869 0.037030 0.110462 0.060361 0.028936 0.005520 0.204980 0.089070 0.065332 0.000240 0.239144 0.062141 0.056490 0.020470 0.204980 0.102485 0.273307 +0.114345 +0.047754 0.042073 0.052432 0.061410 0.019819 0.120994 0.044034 0.011304 0.108191 0.066889 0.042244 0.101975 0.041092 0.022276 0.067028 0.039458 0.025302 0.115743 0.049159 0.038351 0.014687 0.136654 0.083105 0.012313 0.027433 0.204980 0.060153 0.050930 0.055452 0.102490 0.059389 0.239144 +0.035936 +0.009058 0.034972 0.047750 0.082635 0.043156 0.190535 0.044121 0.045685 0.081517 0.065207 0.035940 0.076517 0.001097 0.009062 0.132570 0.044154 0.018317 0.209299 0.046825 0.060494 0.059906 0.136654 0.091020 0.042234 0.014605 0.102490 0.094309 0.042931 0.034494 0.204980 0.098422 0.273307 +0 +0.019626 0.031861 0.064248 0.161964 0.033827 0.103620 0.018291 0.055598 0.039602 0.038781 0.019623 0.059195 0.050167 0.035514 0.065640 0.088970 0.036496 0.098791 0.055706 0.013404 0.064090 0.170817 0.081433 0.025530 0.011274 0.239144 0.054387 0.005635 0.022544 0.239144 0.080730 0.307471 +0.001148 +0.011291 0.006480 0.094172 0.090267 0.034959 0.283998 0.003791 0.058023 0.060695 0.063824 0.042451 0.087832 0.057004 0.017521 0.074711 0.065117 0.049341 0.057300 0.053901 0.057396 0.046307 0.102490 0.077523 0.021220 0.035093 0.239144 0.056067 0.059381 0.054205 0.136654 0.083322 0.307471 +0.013367 +0.015309 0.050946 0.072234 0.054524 0.024310 0.097169 0.001437 0.007764 0.040278 0.034690 0.040598 0.049586 0.006609 0.006075 0.229154 0.112201 0.037555 0.398986 0.044867 0.047125 0.024884 0.239144 0.089378 0.046918 0.047975 0.170817 0.079970 0.054235 0.023785 0.102490 0.065026 0.273307 +0.085466 +0.029596 0.059875 0.078345 0.078522 0.036068 0.415986 0.041502 0.032628 0.086173 0.062453 0.034831 0.060296 0.026454 0.000359 0.115472 0.041873 0.043241 0.063063 0.059421 0.019421 0.040786 0.136654 0.102000 0.020033 0.004405 0.170817 0.076478 0.041230 0.046309 0.136654 0.079838 0.204980 +0.184563 +0.050816 0.060111 0.054310 0.084734 0.045492 0.099713 0.042450 0.016496 0.056316 0.074653 0.022034 0.057444 0.037993 0.052905 0.259607 0.180326 0.028763 0.118351 0.064165 0.041953 0.037810 0.136654 0.070122 0.022058 0.062782 0.136654 0.073643 0.030197 0.012927 0.239144 0.093195 0.307471 +0 +0.025417 0.019656 0.074992 0.093693 0.027522 0.390679 0.023681 0.033989 0.056958 0.049462 0.017749 0.302267 0.007710 0.014489 0.039527 0.037747 0.047536 0.271193 0.066224 0.052242 0.065203 0.136654 0.063027 0.005113 0.055205 0.102490 0.080786 0.013283 0.027889 0.170817 0.099055 0.204980 +0.407726 +0.025867 0.020797 0.046383 0.045204 0.049549 0.252419 0.047953 0.059059 0.137757 0.090085 0.046498 0.262918 0.027260 0.036448 0.039523 0.086941 0.022052 0.130112 0.053561 0.026349 0.046792 0.102490 0.059169 0.035649 0.066382 0.170817 0.056155 0.049220 0.006335 0.102490 0.055077 0.204980 +0.319351 +0.028605 0.012497 0.049899 0.090988 0.035631 0.035755 0.012619 0.057724 0.099814 0.038831 0.048760 0.072635 0.023106 0.010879 0.082014 0.041321 0.047923 0.088453 0.047965 0.048889 0.015698 0.102490 0.058388 0.067562 0.032949 0.102490 0.074085 0.038767 0.060101 0.136654 0.090210 0.204980 +0 +0.050547 0.067376 0.082937 0.081764 0.051200 0.111184 0.003734 0.014026 0.065853 0.052672 0.018945 0.144459 0.006172 0.051902 0.077525 0.141639 0.025898 0.065711 0.052152 0.046367 0.065232 0.102490 0.071948 0.065632 0.063091 0.239144 0.061679 0.048094 0.062829 0.273307 0.051440 0.341634 +0.081549 +0.041130 0.050517 0.039358 0.072709 0.044295 0.075649 0.051950 0.040731 0.060232 0.041582 0.043687 0.047674 0.048887 0.013186 0.043909 0.043212 0.047648 0.101265 0.042989 0.027465 0.039385 0.102490 0.090726 0.053129 0.026077 0.102490 0.090480 0.059931 0.029243 0.102490 0.053405 0.204980 +0 +0.003706 0.066941 0.038233 0.035586 0.027362 0.113164 0.061352 0.040516 0.041508 0.057242 0.020384 0.107445 0.029940 0.041892 0.093519 0.038536 0.042523 0.055924 0.060568 0.019166 0.008559 0.102490 0.090263 0.037136 0.036232 0.170817 0.068876 0.002326 0.018095 0.204980 0.056876 0.341634 +0.001619 +0.043192 0.015728 0.046773 0.036223 0.032956 0.441415 0.041332 0.016929 0.043350 0.039007 0.023306 0.077127 0.017493 0.021110 0.068535 0.048600 0.028958 0.158222 0.060684 0.005371 0.061253 0.102490 0.094606 0.033301 0.045741 0.102490 0.062514 0.049797 0.021083 0.170817 0.070323 0.273307 +0.004379 +0.053707 0.067258 0.078356 0.061078 0.021913 0.079478 0.042336 0.049844 0.050223 0.093708 0.017580 0.480260 0.041499 0.055552 0.108699 0.116057 0.021415 0.332897 0.048430 0.028212 0.005867 0.204980 0.060868 0.008853 0.009673 0.136654 0.088359 0.006822 0.021941 0.204980 0.059418 0.273307 +0.673743 +0.048093 0.067511 0.130743 0.081503 0.032878 0.048071 0.034242 0.004309 0.087528 0.036842 0.033867 0.103397 0.061297 0.062383 0.051619 0.162104 0.035827 0.188724 0.057032 0.058891 0.062508 0.136654 0.094445 0.010379 0.049027 0.204980 0.085673 0.046946 0.063149 0.204980 0.063252 0.307471 +0.009791 +0.020414 0.005376 0.052579 0.036811 0.021430 0.125443 0.042503 0.003233 0.034388 0.105501 0.050748 0.289667 0.020213 0.040685 0.074369 0.045006 0.018758 0.107280 0.047795 0.062707 0.044312 0.102490 0.065090 0.060278 0.028160 0.170817 0.061163 0.000392 0.032978 0.136654 0.066152 0.307471 +0.296793 +0.062170 0.064143 0.049228 0.079810 0.030382 0.086922 0.029618 0.051732 0.105672 0.071939 0.038323 0.300377 0.004119 0.010310 0.088279 0.043026 0.042647 0.042844 0.057995 0.063638 0.062753 0.136654 0.095230 0.007266 0.006802 0.136654 0.061867 0.041250 0.002499 0.102490 0.083637 0.204980 +0.019889 +0.027246 0.006936 0.036439 0.045898 0.042480 0.060470 0.039254 0.009677 0.055238 0.088202 0.036604 0.236073 0.034691 0.067326 0.065764 0.051373 0.049638 0.078549 0.047267 0.045288 0.042923 0.136654 0.096277 0.049887 0.039466 0.170817 0.062283 0.021682 0.025965 0.170817 0.092722 0.273307 +0.023617 +0.040198 0.046774 0.071203 0.062245 0.042322 0.128576 0.053715 0.019910 0.064776 0.078897 0.033632 0.157741 0.033656 0.056926 0.036148 0.037056 0.026218 0.046053 0.046604 0.008197 0.036334 0.307471 0.066486 0.055545 0.031069 0.136654 0.082974 0.004667 0.068191 0.307471 0.078678 0.341634 +0.001720 +0.032536 0.058143 0.063446 0.065104 0.038795 0.221363 0.021519 0.029443 0.044713 0.084800 0.025501 0.101784 0.034591 0.003164 0.113379 0.042710 0.027410 0.201780 0.047396 0.032793 0.020766 0.136654 0.080171 0.061341 0.033712 0.136654 0.058565 0.029241 0.052514 0.273307 0.054144 0.341634 +0.054120 +0.034532 0.042140 0.062382 0.049957 0.049009 0.137463 0.032799 0.019902 0.105220 0.081710 0.026843 0.047737 0.015247 0.007813 0.146954 0.037745 0.025424 0.044235 0.061633 0.029592 0.001006 0.102490 0.098931 0.035391 0.039194 0.102490 0.067315 0.063032 0.002859 0.170817 0.093574 0.341634 +0 +0.067068 0.021383 0.099403 0.039118 0.049861 0.090407 0.048056 0.040067 0.159130 0.036668 0.044706 0.093192 0.067570 0.058134 0.047500 0.087399 0.050495 0.113655 0.063105 0.049314 0.020739 0.136654 0.087411 0.002389 0.052167 0.102490 0.094654 0.013489 0.040964 0.136654 0.097387 0.239144 +0 +0.050885 0.054114 0.045983 0.094634 0.047572 0.038126 0.000990 0.015376 0.040664 0.194096 0.024011 0.066780 0.035887 0.048322 0.110286 0.039008 0.026876 0.135133 0.053866 0.024304 0.023923 0.239144 0.097237 0.065636 0.040461 0.136654 0.093326 0.025188 0.029722 0.136654 0.054671 0.307471 +0 +0.037727 0.067217 0.044640 0.042762 0.024471 0.113019 0.046725 0.012805 0.178652 0.036829 0.030420 0.099756 0.053988 0.024999 0.040121 0.052505 0.046689 0.067391 0.059476 0.034889 0.012406 0.239144 0.079396 0.016561 0.006953 0.102490 0.070968 0.002558 0.018425 0.307471 0.062397 0.341634 +0.025659 +0.061382 0.005907 0.066591 0.042193 0.029355 0.041020 0.056687 0.037538 0.055962 0.047385 0.041891 0.116588 0.060887 0.062739 0.037992 0.055632 0.029562 0.104490 0.043869 0.054318 0.045541 0.136654 0.097314 0.003406 0.062822 0.204980 0.087476 0.016179 0.033937 0.136654 0.067769 0.239144 +0.026453 +0.006708 0.035676 0.042153 0.041228 0.034934 0.053568 0.052238 0.012035 0.043080 0.052492 0.025630 0.279636 0.019845 0.011358 0.038620 0.089133 0.034419 0.049747 0.050677 0.015863 0.066844 0.136654 0.063362 0.003165 0.048676 0.170817 0.091520 0.004265 0.017636 0.136654 0.091223 0.239144 +0.306795 +0.043350 0.060050 0.037229 0.072860 0.039867 0.093851 0.056197 0.044349 0.047400 0.040339 0.040427 0.375433 0.005241 0.000081 0.035905 0.081240 0.033182 0.191318 0.041350 0.036591 0.051656 0.239144 0.081563 0.045050 0.031623 0.273307 0.054711 0.047721 0.031396 0.239144 0.085102 0.307471 +0.044533 +0.066236 0.013355 0.044519 0.075832 0.035478 0.124200 0.040945 0.015696 0.065623 0.047071 0.017636 0.142336 0.030798 0.018762 0.035744 0.034920 0.042359 0.173112 0.055174 0.022551 0.022439 0.102490 0.092291 0.017090 0.061286 0.170817 0.069805 0.028835 0.018673 0.102490 0.084513 0.204980 +0.068273 +0.011596 0.028314 0.034323 0.056821 0.044256 0.072890 0.040283 0.065851 0.171476 0.085037 0.018970 0.180385 0.015827 0.016499 0.063142 0.051284 0.019589 0.057783 0.060745 0.044341 0.060351 0.170817 0.066051 0.008772 0.038600 0.136654 0.088475 0.065418 0.041168 0.204980 0.091288 0.341634 +0.001683 +0.048862 0.030526 0.105917 0.084011 0.046066 0.181188 0.047929 0.039285 0.048207 0.039148 0.025314 0.070150 0.035134 0.066208 0.053878 0.115440 0.023841 0.050530 0.048001 0.026659 0.060742 0.204980 0.058790 0.028209 0.053996 0.102490 0.097325 0.029310 0.005358 0.170817 0.097363 0.341634 +0 +0.006621 0.013177 0.049060 0.103195 0.020306 0.037622 0.005551 0.038020 0.034992 0.045974 0.036492 0.100995 0.049211 0.064822 0.037565 0.105025 0.033394 0.402578 0.056950 0.014426 0.021422 0.170817 0.072274 0.027415 0.032156 0.204980 0.080248 0.013518 0.011128 0.102490 0.062137 0.341634 +0.237161 +0.053990 0.005909 0.143514 0.036458 0.025601 0.060377 0.020761 0.044993 0.080181 0.054083 0.021347 0.145218 0.048453 0.037509 0.037717 0.088888 0.042340 0.217537 0.055738 0.068281 0.058739 0.136654 0.100689 0.035684 0.002413 0.102490 0.082889 0.062464 0.060196 0.204980 0.064002 0.273307 +0.023044 +0.040408 0.014695 0.047477 0.052914 0.033524 0.157486 0.055669 0.009195 0.034495 0.101524 0.030931 0.104716 0.035317 0.044084 0.051299 0.063060 0.040382 0.062262 0.055421 0.001392 0.044854 0.204980 0.079175 0.021487 0.021482 0.204980 0.074068 0.018203 0.020625 0.239144 0.092299 0.273307 +0.012248 +0.011812 0.029374 0.040146 0.041779 0.046830 0.103335 0.015050 0.027894 0.039218 0.047398 0.039090 0.318928 0.028339 0.007159 0.053214 0.074802 0.044954 0.035874 0.043882 0.026822 0.009399 0.204980 0.073421 0.018470 0.051679 0.102490 0.100431 0.062002 0.056597 0.204980 0.091928 0.239144 +0.681132 +0.054826 0.053314 0.070210 0.062297 0.030509 0.092538 0.007020 0.016091 0.042039 0.056330 0.034285 0.064790 0.051517 0.055243 0.094698 0.064130 0.051135 0.098308 0.044345 0.018172 0.055057 0.170817 0.064467 0.025983 0.048932 0.102490 0.097419 0.027792 0.046254 0.102490 0.060468 0.204980 +0.004194 +0.045657 0.035255 0.039659 0.041497 0.050578 0.117752 0.041918 0.055992 0.059499 0.041299 0.017655 0.088347 0.032148 0.053670 0.050591 0.034263 0.046031 0.199931 0.045426 0.009333 0.006805 0.239144 0.071178 0.040846 0.050642 0.204980 0.077213 0.049087 0.055003 0.204980 0.089741 0.273307 +0.053779 +0.012871 0.011809 0.037068 0.063840 0.041888 0.037928 0.002466 0.062195 0.047414 0.042890 0.038077 0.148706 0.001122 0.016206 0.080316 0.174315 0.029515 0.055994 0.057001 0.059756 0.058081 0.170817 0.053822 0.062024 0.036297 0.136654 0.062318 0.057084 0.067372 0.170817 0.099184 0.204980 +0.032659 +0.055696 0.034175 0.123334 0.051594 0.029659 0.227038 0.049843 0.009428 0.058443 0.215441 0.041621 0.139381 0.058005 0.054296 0.177670 0.037629 0.049069 0.046539 0.052557 0.062138 0.066781 0.170817 0.060346 0.030830 0.015215 0.136654 0.073797 0.000440 0.019056 0.102490 0.094657 0.307471 +0.340199 +0.052423 0.051569 0.138608 0.107541 0.031998 0.057429 0.019444 0.036037 0.038788 0.056891 0.034796 0.057526 0.012054 0.027152 0.068709 0.100372 0.024153 0.223831 0.058328 0.055592 0.001019 0.102490 0.054135 0.002648 0.004444 0.239144 0.090757 0.049537 0.017691 0.170817 0.090733 0.307471 +0 +0.044319 0.033413 0.039064 0.108551 0.017676 0.183327 0.048044 0.019550 0.092078 0.037601 0.022525 0.041784 0.028600 0.053500 0.040338 0.094776 0.027054 0.128082 0.052692 0.057699 0.021421 0.102490 0.062096 0.009845 0.042296 0.102490 0.065594 0.017382 0.030187 0.102490 0.091575 0.239144 +0.017814 +0.056408 0.000565 0.051975 0.071349 0.041874 0.135065 0.007109 0.056563 0.063891 0.267378 0.033791 0.064560 0.044432 0.001911 0.047368 0.079788 0.047656 0.083117 0.053283 0.063459 0.057928 0.136654 0.076763 0.059411 0.033926 0.204980 0.076820 0.050978 0.056182 0.204980 0.092280 0.307471 +0.008984 +0.040191 0.030989 0.054517 0.045003 0.050778 0.123097 0.049321 0.047598 0.087745 0.126318 0.028620 0.053413 0.018633 0.032885 0.105817 0.171747 0.020553 0.083100 0.039778 0.036789 0.042226 0.307471 0.084404 0.040925 0.046859 0.273307 0.057484 0.045736 0.018092 0.204980 0.096399 0.341634 +0 +0.014141 0.055405 0.038627 0.114325 0.048757 0.167359 0.053444 0.009347 0.076392 0.064486 0.022805 0.105044 0.064987 0.022512 0.039672 0.065692 0.030849 0.212819 0.048835 0.002003 0.009108 0.273307 0.094920 0.006723 0.003097 0.170817 0.058169 0.027721 0.062862 0.204980 0.073357 0.307471 +0.097739 +0.012721 0.046917 0.041022 0.081147 0.047168 0.067849 0.061726 0.052535 0.075177 0.073342 0.047867 0.231491 0.036339 0.018153 0.050959 0.049495 0.030769 0.158313 0.050572 0.061486 0.035207 0.102490 0.101317 0.033939 0.028813 0.204980 0.060753 0.044192 0.025756 0.307471 0.068086 0.341634 +0.093938 +0.054727 0.037345 0.184683 0.081740 0.034099 0.109138 0.067893 0.002204 0.089797 0.135866 0.025945 0.189524 0.055955 0.028174 0.077425 0.061347 0.032211 0.045146 0.055519 0.041793 0.033517 0.239144 0.100790 0.037054 0.017194 0.136654 0.092123 0.027588 0.057594 0.239144 0.061107 0.273307 +0.030197 +0.021583 0.027945 0.035216 0.071344 0.049082 0.037144 0.009127 0.029810 0.035270 0.051792 0.049751 0.067172 0.064178 0.006996 0.037547 0.119162 0.041173 0.040604 0.056627 0.064319 0.004507 0.102490 0.088862 0.040874 0.046075 0.239144 0.078390 0.050281 0.021355 0.204980 0.085737 0.273307 +0 +0.027775 0.037525 0.060797 0.124169 0.048713 0.058027 0.061224 0.010774 0.070014 0.066755 0.017685 0.052200 0.034304 0.063300 0.049694 0.038447 0.027526 0.054499 0.043524 0.024894 0.041223 0.204980 0.052468 0.054572 0.011290 0.136654 0.064688 0.036355 0.003653 0.170817 0.089899 0.341634 +0 +0.045766 0.039516 0.069144 0.094070 0.039367 0.041008 0.003255 0.007730 0.099655 0.046178 0.017086 0.159958 0.018873 0.043238 0.052123 0.053987 0.046410 0.107515 0.052944 0.004005 0.034990 0.239144 0.079639 0.058828 0.045065 0.170817 0.062483 0.036264 0.056644 0.102490 0.097071 0.273307 +0.014394 +0.041511 0.008921 0.153196 0.086021 0.025315 0.111144 0.067628 0.027645 0.049322 0.085017 0.027490 0.280767 0.060903 0.029661 0.045454 0.053188 0.019234 0.157155 0.040078 0.035605 0.002293 0.102490 0.080787 0.014145 0.056657 0.170817 0.073447 0.054917 0.066178 0.170817 0.076723 0.204980 +0.316817 +0.061333 0.000988 0.054619 0.090312 0.018369 0.039503 0.051422 0.044773 0.076332 0.035688 0.036720 0.112185 0.031842 0.051167 0.041347 0.038622 0.027924 0.109993 0.062114 0.040756 0.039439 0.239144 0.055206 0.051773 0.018158 0.170817 0.065560 0.000629 0.057588 0.204980 0.084398 0.273307 +0.024080 +0.000447 0.041083 0.064918 0.061554 0.037037 0.221930 0.025076 0.020507 0.053413 0.045970 0.037438 0.232180 0.017394 0.029841 0.058897 0.037238 0.036983 0.034260 0.061533 0.029664 0.049139 0.102490 0.083282 0.041826 0.050675 0.170817 0.061090 0.023680 0.014193 0.170817 0.094980 0.239144 +0.072174 +0.026795 0.048504 0.061749 0.037518 0.035897 0.245185 0.034222 0.053040 0.198620 0.074918 0.019038 0.063408 0.000902 0.049025 0.043606 0.086207 0.030253 0.235529 0.046946 0.025362 0.040506 0.204980 0.061672 0.007241 0.054258 0.239144 0.054483 0.032956 0.020856 0.204980 0.073180 0.273307 +0.493277 +0.067286 0.031342 0.048363 0.062095 0.044967 0.084259 0.018171 0.042399 0.133879 0.053483 0.041413 0.034242 0.048275 0.057793 0.043104 0.040917 0.040082 0.073494 0.047523 0.037885 0.023045 0.102490 0.092784 0.054772 0.054656 0.136654 0.088361 0.005146 0.001864 0.136654 0.090638 0.204980 +0.002682 +0.004819 0.008855 0.040000 0.173730 0.024328 0.142579 0.008560 0.048667 0.043133 0.043625 0.023998 0.096506 0.060715 0.016532 0.128482 0.055385 0.025565 0.088141 0.064671 0.013594 0.053816 0.273307 0.081340 0.058608 0.000996 0.307471 0.088566 0.024214 0.045055 0.204980 0.074857 0.341634 +0.002475 +0.053549 0.005201 0.055835 0.040472 0.028509 0.038825 0.011380 0.003117 0.111669 0.036270 0.039170 0.471011 0.027880 0.005341 0.132399 0.054480 0.045492 0.135309 0.046188 0.057622 0.064631 0.170817 0.062939 0.000738 0.045102 0.136654 0.098144 0.021252 0.047432 0.136654 0.075308 0.273307 +0.227191 +0.038665 0.022656 0.049180 0.108549 0.035984 0.110402 0.014114 0.033792 0.070927 0.097088 0.036414 0.038249 0.056763 0.023280 0.062442 0.060334 0.048787 0.104131 0.050351 0.028171 0.064703 0.307471 0.075527 0.033686 0.051651 0.136654 0.054112 0.000509 0.066597 0.170817 0.073598 0.341634 +0.004800 +0.033033 0.011875 0.049440 0.083127 0.035522 0.103423 0.049361 0.068248 0.084163 0.053467 0.030088 0.189788 0.042415 0.008914 0.072262 0.071134 0.034542 0.353045 0.056503 0.051974 0.042305 0.204980 0.070945 0.018792 0.065179 0.204980 0.072883 0.033103 0.051012 0.102490 0.058636 0.239144 +0.489767 +0.025546 0.005686 0.052528 0.069887 0.044352 0.084437 0.038737 0.064179 0.038775 0.061364 0.019797 0.056905 0.043980 0.053076 0.067258 0.073121 0.028046 0.319481 0.053311 0.001247 0.010060 0.170817 0.052784 0.031694 0.009293 0.102490 0.079507 0.056579 0.032582 0.136654 0.071177 0.204980 +0.002945 +0.044566 0.063543 0.054148 0.050507 0.017446 0.144600 0.039700 0.035556 0.045358 0.133841 0.041040 0.074414 0.019459 0.034111 0.063340 0.036400 0.023275 0.100029 0.042344 0.055162 0.025811 0.102490 0.089610 0.036135 0.034440 0.136654 0.052624 0.033457 0.011212 0.170817 0.073274 0.204980 +0.057917 +0.008887 0.049988 0.050489 0.058458 0.034160 0.067481 0.016265 0.044237 0.075265 0.071530 0.035873 0.042543 0.039849 0.038707 0.103235 0.037772 0.026612 0.383386 0.050698 0.049625 0.058698 0.102490 0.095873 0.053411 0.000627 0.102490 0.064235 0.014212 0.057562 0.239144 0.088966 0.273307 +0.180766 +0.058226 0.012800 0.051298 0.056663 0.026683 0.096860 0.004289 0.039253 0.085265 0.036190 0.032330 0.225356 0.030168 0.036750 0.077285 0.049560 0.035303 0.063412 0.059963 0.054429 0.062092 0.204980 0.085209 0.065250 0.056848 0.170817 0.091089 0.013735 0.065373 0.170817 0.092016 0.273307 +0.015663 +0.023932 0.056636 0.069636 0.084677 0.030453 0.076714 0.035563 0.017569 0.068831 0.076129 0.028706 0.072899 0.030386 0.006078 0.105165 0.046971 0.046917 0.051189 0.041365 0.027281 0.066097 0.204980 0.068768 0.050414 0.016913 0.170817 0.092008 0.000254 0.018641 0.204980 0.069163 0.239144 +0.005435 +0.019711 0.054041 0.087584 0.051626 0.039724 0.199214 0.012429 0.051791 0.100006 0.039428 0.032260 0.107703 0.034411 0.049939 0.046678 0.107742 0.033156 0.186015 0.056653 0.005930 0.029869 0.102490 0.076650 0.039267 0.034507 0.204980 0.092771 0.037079 0.051595 0.170817 0.068587 0.341634 +0.020052 +0.029850 0.023741 0.080637 0.080754 0.028485 0.036762 0.029598 0.025839 0.114798 0.054248 0.027837 0.097864 0.028327 0.011887 0.034290 0.072975 0.045265 0.064643 0.047598 0.013895 0.038486 0.307471 0.065165 0.046167 0.056045 0.102490 0.065415 0.017930 0.040191 0.136654 0.062861 0.341634 +0 +0.023140 0.056978 0.117061 0.232480 0.039233 0.121725 0.001555 0.001584 0.052888 0.040530 0.047765 0.287822 0.057367 0.019100 0.047403 0.081208 0.039572 0.305729 0.055869 0.056964 0.017892 0.170817 0.064777 0.041634 0.022786 0.307471 0.098863 0.059653 0.040720 0.239144 0.083185 0.341634 +0.457729 +0.052135 0.017645 0.047656 0.039464 0.022105 0.461113 0.056420 0.013483 0.111764 0.052233 0.026678 0.164161 0.025001 0.041131 0.105858 0.086964 0.045473 0.101438 0.049237 0.033076 0.020878 0.170817 0.099159 0.034059 0.063035 0.273307 0.071603 0.047921 0.054835 0.102490 0.089231 0.307471 +0.696662 +0.058081 0.047127 0.066581 0.039528 0.050763 0.223680 0.055630 0.003143 0.040360 0.085228 0.040939 0.036191 0.010637 0.009834 0.058450 0.063580 0.046018 0.289933 0.057287 0.014959 0.064740 0.102490 0.077869 0.057497 0.004080 0.170817 0.055224 0.044661 0.057273 0.170817 0.065566 0.204980 +0.284097 +0.005475 0.045601 0.036291 0.053893 0.022127 0.164939 0.050628 0.031667 0.054815 0.119822 0.041222 0.114363 0.041598 0.012834 0.097361 0.090789 0.049499 0.152646 0.056475 0.042226 0.065308 0.170817 0.079325 0.006047 0.052629 0.170817 0.093046 0.053541 0.011763 0.136654 0.074263 0.204980 +0.159989 +0.019939 0.018165 0.097361 0.092584 0.040455 0.099391 0.046853 0.063841 0.051998 0.065370 0.046211 0.216586 0.028178 0.040573 0.034929 0.080603 0.026355 0.143205 0.046648 0.059561 0.037633 0.102490 0.055524 0.014295 0.001113 0.136654 0.099177 0.048570 0.063748 0.102490 0.074408 0.204980 +0.478474 +0.056569 0.019897 0.042926 0.080970 0.022955 0.079431 0.065144 0.061880 0.038668 0.042885 0.030652 0.060237 0.066631 0.012559 0.057502 0.067099 0.042582 0.202306 0.049323 0.025116 0.039086 0.170817 0.094824 0.039626 0.066200 0.136654 0.081100 0.020068 0.065900 0.239144 0.079606 0.273307 +0.027855 +0.041413 0.001743 0.142337 0.036821 0.018420 0.104443 0.036675 0.029296 0.036685 0.074276 0.043446 0.046667 0.025758 0.049628 0.043628 0.096785 0.037670 0.113112 0.040033 0.024041 0.044597 0.170817 0.073938 0.015327 0.049177 0.273307 0.078676 0.017097 0.032585 0.204980 0.090713 0.307471 +0 +0.044120 0.014733 0.066378 0.080984 0.020883 0.119231 0.027670 0.057950 0.037940 0.046266 0.039316 0.044746 0.043733 0.039429 0.049090 0.068518 0.048242 0.215843 0.044478 0.035951 0.049006 0.102490 0.052702 0.022300 0.044639 0.102490 0.069203 0.050380 0.032616 0.102490 0.099448 0.204980 +0 +0.045772 0.056724 0.047957 0.173964 0.036922 0.314886 0.020372 0.039465 0.113396 0.103805 0.041846 0.098149 0.063291 0.003710 0.037795 0.050459 0.046555 0.040048 0.063170 0.006690 0.038778 0.170817 0.056785 0.004678 0.025778 0.102490 0.072462 0.009733 0.003641 0.136654 0.096478 0.204980 +0.290534 +0.029428 0.009259 0.083212 0.067722 0.043525 0.059895 0.060794 0.029175 0.047620 0.066331 0.047136 0.240155 0.019094 0.024024 0.081909 0.128507 0.027346 0.135265 0.063600 0.042351 0.065374 0.102490 0.096161 0.046439 0.051218 0.136654 0.085100 0.038555 0.006448 0.102490 0.075256 0.204980 +0.091056 +0.049439 0.050077 0.091665 0.044049 0.020994 0.076537 0.007924 0.062515 0.117138 0.034438 0.038973 0.211373 0.019776 0.008676 0.048025 0.034382 0.024463 0.108930 0.053270 0.054655 0.031312 0.136654 0.062027 0.017016 0.057103 0.102490 0.083964 0.031947 0.003681 0.102490 0.099182 0.204980 +0.006981 +0.059087 0.013038 0.040595 0.042776 0.044523 0.057839 0.003890 0.008134 0.037730 0.103897 0.025916 0.174596 0.008287 0.030678 0.042311 0.070536 0.033156 0.124229 0.055463 0.046352 0.033541 0.239144 0.071763 0.003153 0.001234 0.136654 0.065167 0.054556 0.024206 0.239144 0.081395 0.307471 +0.123289 +0.012964 0.034485 0.097654 0.087207 0.036118 0.043249 0.008186 0.031655 0.115464 0.156040 0.040821 0.107373 0.008960 0.046429 0.148342 0.045172 0.030470 0.075692 0.049303 0.058418 0.059390 0.102490 0.073616 0.028047 0.021515 0.273307 0.100942 0.030851 0.033559 0.102490 0.082385 0.341634 +0 +0.043272 0.039474 0.040109 0.069536 0.024197 0.040538 0.040858 0.027434 0.055768 0.068896 0.027168 0.263936 0.027707 0.038930 0.145098 0.053481 0.027661 0.187937 0.043075 0.047772 0.018839 0.136654 0.088019 0.037292 0.010497 0.204980 0.062175 0.017244 0.046453 0.170817 0.091774 0.341634 +0.233768 +0.042800 0.011987 0.072961 0.040464 0.030519 0.094291 0.066686 0.002833 0.062436 0.123387 0.025110 0.358530 0.020320 0.019016 0.134378 0.101890 0.042691 0.320651 0.055623 0.052327 0.007203 0.239144 0.072034 0.023269 0.056976 0.102490 0.093730 0.023625 0.030329 0.170817 0.068434 0.273307 +0.376887 +0.061911 0.047409 0.055426 0.042234 0.037181 0.057079 0.016656 0.026017 0.040471 0.066063 0.044878 0.076946 0.025262 0.028233 0.052194 0.082291 0.043370 0.170190 0.058920 0.056649 0.006302 0.239144 0.060429 0.018570 0.016563 0.239144 0.063302 0.027467 0.001309 0.170817 0.091497 0.273307 +0 +0.029478 0.051670 0.045942 0.054635 0.042646 0.079483 0.040936 0.018157 0.058945 0.066037 0.023058 0.202599 0.053666 0.041994 0.095353 0.037383 0.032844 0.202961 0.045220 0.023188 0.025758 0.170817 0.076862 0.013206 0.039611 0.136654 0.073801 0.052180 0.058835 0.102490 0.070219 0.239144 +0.022997 +0.029166 0.022424 0.111461 0.038596 0.018003 0.039360 0.065646 0.035066 0.042631 0.050648 0.026807 0.483331 0.011764 0.027771 0.035911 0.078826 0.024765 0.253613 0.042444 0.010718 0.060673 0.170817 0.056152 0.022168 0.001222 0.102490 0.052760 0.019318 0.065198 0.136654 0.056334 0.204980 +0.770019 +0.012205 0.050062 0.057942 0.041472 0.036468 0.042244 0.001811 0.022015 0.047292 0.077104 0.037277 0.177480 0.013332 0.051641 0.035627 0.074870 0.043684 0.373824 0.060471 0.031186 0.002620 0.239144 0.087724 0.026468 0.024799 0.204980 0.052615 0.015503 0.053043 0.136654 0.062273 0.307471 +0.171786 +0.004910 0.025550 0.059601 0.074506 0.024663 0.056253 0.003383 0.013382 0.093096 0.043050 0.039934 0.054129 0.037281 0.026727 0.053202 0.091557 0.034666 0.116768 0.052475 0.003504 0.042336 0.204980 0.072522 0.003245 0.037378 0.102490 0.093541 0.057334 0.064410 0.102490 0.098909 0.239144 +0.005597 +0.059409 0.033723 0.058009 0.054335 0.021817 0.307988 0.052824 0.016669 0.068632 0.035102 0.040359 0.109228 0.015273 0.025648 0.040323 0.039720 0.022182 0.075574 0.045396 0.029985 0.052860 0.136654 0.089917 0.007674 0.045341 0.170817 0.059900 0.059609 0.017557 0.239144 0.070925 0.307471 +0.014869 +0.021803 0.053000 0.040719 0.088948 0.017414 0.210066 0.067102 0.005268 0.115665 0.059776 0.020470 0.044138 0.046068 0.061102 0.050043 0.054484 0.031797 0.132878 0.053755 0.061086 0.002284 0.136654 0.052465 0.062168 0.064664 0.170817 0.099211 0.042485 0.036340 0.204980 0.063534 0.239144 +0.022335 +0.017104 0.064913 0.040667 0.043333 0.034677 0.154337 0.063378 0.028929 0.074173 0.035993 0.047912 0.034354 0.012908 0.065827 0.036068 0.054823 0.023160 0.047071 0.043916 0.034259 0.052205 0.170817 0.056922 0.021709 0.029749 0.102490 0.059576 0.019986 0.014086 0.204980 0.067647 0.239144 +0.298605 +0.050011 0.018483 0.053488 0.138269 0.018330 0.056564 0.015839 0.059013 0.051895 0.041144 0.043783 0.078276 0.018614 0.052680 0.075064 0.047615 0.027390 0.111131 0.043912 0.041218 0.010577 0.239144 0.081216 0.018083 0.014645 0.170817 0.061637 0.014483 0.035139 0.136654 0.056909 0.307471 +0.020142 +0.068106 0.011410 0.040836 0.035779 0.036513 0.108657 0.049220 0.010794 0.052263 0.146593 0.044983 0.126990 0.044691 0.016497 0.066982 0.072657 0.039383 0.042813 0.062428 0.062647 0.009551 0.170817 0.067991 0.009397 0.068120 0.307471 0.082214 0.067472 0.010624 0.170817 0.096581 0.341634 +0.006543 +0.021796 0.066231 0.064624 0.052506 0.027362 0.086626 0.057905 0.048434 0.154454 0.053028 0.038981 0.113566 0.004851 0.016443 0.056408 0.044607 0.032475 0.145491 0.057219 0.000526 0.016101 0.170817 0.087784 0.037944 0.023857 0.136654 0.076902 0.062303 0.037652 0.102490 0.089582 0.204980 +0.168440 +0.000194 0.006289 0.102253 0.116860 0.030463 0.124081 0.066657 0.047177 0.075709 0.042461 0.043699 0.150091 0.056124 0.029673 0.062457 0.082193 0.046559 0.034608 0.061241 0.059523 0.010271 0.204980 0.067871 0.060986 0.003062 0.102490 0.077833 0.060957 0.034458 0.170817 0.080179 0.239144 +0.095181 +0.049881 0.027518 0.067303 0.111178 0.050657 0.144155 0.044721 0.050460 0.064075 0.052162 0.042643 0.212611 0.059593 0.001443 0.113974 0.069485 0.039293 0.054620 0.054603 0.046435 0.012390 0.102490 0.099053 0.059668 0.054984 0.136654 0.091166 0.004189 0.048271 0.102490 0.071079 0.239144 +0.004049 +0.046182 0.023286 0.086110 0.244835 0.023943 0.113407 0.013041 0.058250 0.040406 0.043277 0.018540 0.058428 0.031961 0.044273 0.042049 0.089653 0.046090 0.226625 0.051250 0.045116 0.024047 0.136654 0.072768 0.011015 0.049400 0.136654 0.091278 0.011396 0.012796 0.102490 0.093000 0.273307 +0.002103 +0.035697 0.016725 0.065038 0.045519 0.022467 0.200780 0.044655 0.044232 0.052121 0.061372 0.034529 0.079344 0.022445 0.026141 0.049183 0.090403 0.018741 0.041377 0.043086 0.038525 0.015447 0.102490 0.068279 0.067422 0.058440 0.204980 0.098824 0.026515 0.048065 0.170817 0.068740 0.239144 +0.202850 +0.051741 0.064361 0.045567 0.037110 0.023985 0.439567 0.010364 0.055212 0.048528 0.035556 0.036447 0.048442 0.009048 0.064370 0.034513 0.107450 0.032625 0.112699 0.055205 0.010462 0.056839 0.102490 0.065036 0.024015 0.020428 0.136654 0.071331 0.012107 0.017150 0.102490 0.080661 0.204980 +0.196133 +0.026654 0.041740 0.103972 0.051394 0.031297 0.101369 0.037061 0.018570 0.098994 0.040260 0.045189 0.040965 0.028225 0.011074 0.105092 0.036054 0.023770 0.126802 0.045134 0.052270 0.017154 0.102490 0.083852 0.035014 0.062564 0.170817 0.081130 0.055308 0.013415 0.273307 0.067699 0.307471 +0.027107 +0.026544 0.040164 0.057265 0.040061 0.037507 0.067620 0.048862 0.043164 0.039166 0.037772 0.047928 0.105793 0.046584 0.056371 0.041785 0.109548 0.046650 0.335166 0.058201 0.042728 0.006927 0.204980 0.055268 0.006137 0.024276 0.102490 0.080297 0.066182 0.031929 0.204980 0.089966 0.273307 +0.137946 +0.054901 0.011312 0.069557 0.065726 0.037419 0.076294 0.027332 0.032800 0.047117 0.065031 0.027122 0.152961 0.040940 0.034708 0.049384 0.253633 0.034535 0.036464 0.057889 0.035919 0.017483 0.136654 0.051251 0.051459 0.013113 0.204980 0.078290 0.004437 0.031508 0.170817 0.058839 0.273307 +0.006563 +0.041226 0.065479 0.043219 0.056936 0.035111 0.224008 0.004455 0.010132 0.103591 0.060810 0.020427 0.075127 0.024396 0.058065 0.052977 0.103531 0.050880 0.142746 0.057624 0.066168 0.030267 0.204980 0.075135 0.030591 0.059880 0.239144 0.053341 0.065216 0.029465 0.204980 0.081723 0.341634 +0.050144 +0.044602 0.008530 0.127054 0.040004 0.025825 0.126286 0.050110 0.054428 0.211703 0.054428 0.050733 0.151090 0.022764 0.061850 0.058307 0.051691 0.031725 0.142400 0.049181 0.065048 0.059199 0.239144 0.071118 0.030383 0.052734 0.102490 0.092455 0.013717 0.054484 0.239144 0.083436 0.341634 +0.015682 +0.019410 0.025279 0.093411 0.042780 0.019284 0.080934 0.011821 0.005632 0.051943 0.037454 0.040280 0.265453 0.033722 0.009492 0.035761 0.146433 0.033313 0.123732 0.052369 0.055827 0.003092 0.204980 0.058070 0.056066 0.058884 0.204980 0.072362 0.033186 0.047564 0.204980 0.098796 0.307471 +0.585852 +0.012668 0.037144 0.107692 0.058787 0.024229 0.100330 0.039714 0.053950 0.046484 0.038955 0.046492 0.271732 0.023895 0.003473 0.044396 0.082166 0.027185 0.144121 0.048295 0.023858 0.053121 0.307471 0.073405 0.015298 0.017237 0.170817 0.066357 0.062858 0.052478 0.204980 0.060277 0.341634 +0.484970 +0.048832 0.012786 0.041706 0.051238 0.024834 0.055996 0.048144 0.038032 0.038314 0.036714 0.042131 0.176534 0.056056 0.036616 0.064207 0.153469 0.032356 0.115088 0.045623 0.026698 0.067480 0.170817 0.076466 0.008964 0.039668 0.204980 0.077920 0.068164 0.042862 0.170817 0.052217 0.239144 +0.059583 +0.049834 0.061348 0.071824 0.059898 0.048110 0.088137 0.000161 0.036142 0.048743 0.052744 0.037210 0.108717 0.059405 0.038649 0.160629 0.091010 0.038016 0.060754 0.051944 0.056974 0.023902 0.170817 0.066160 0.058772 0.048046 0.239144 0.078379 0.058913 0.008570 0.204980 0.100960 0.273307 +0.030778 +0.042155 0.024368 0.073869 0.066612 0.020653 0.046657 0.036161 0.053452 0.035495 0.052690 0.023059 0.068284 0.066802 0.020211 0.109991 0.045913 0.027490 0.068034 0.053044 0.063716 0.040171 0.102490 0.097145 0.065500 0.006236 0.170817 0.060971 0.002740 0.005184 0.102490 0.079997 0.273307 +0 +0.000588 0.055507 0.050386 0.067122 0.023171 0.058842 0.015289 0.063856 0.102342 0.141931 0.023987 0.169100 0.062979 0.018532 0.044014 0.090322 0.022867 0.098278 0.058217 0.029017 0.022953 0.136654 0.096096 0.040701 0.059624 0.170817 0.094540 0.002660 0.000587 0.136654 0.065238 0.341634 +0.001658 +0.053075 0.064316 0.052770 0.040942 0.018662 0.066931 0.011344 0.016818 0.037004 0.040782 0.045622 0.154288 0.055513 0.061843 0.043491 0.155576 0.045740 0.044007 0.047221 0.007032 0.045971 0.239144 0.074957 0.031614 0.052764 0.102490 0.083503 0.051944 0.048714 0.273307 0.072708 0.341634 +0.021751 +0.062943 0.056774 0.062382 0.091915 0.046763 0.144040 0.021009 0.037424 0.044074 0.050572 0.046503 0.039778 0.065238 0.028817 0.047023 0.042989 0.044642 0.286717 0.053678 0.004127 0.010717 0.170817 0.100557 0.043080 0.011144 0.170817 0.061858 0.009411 0.035928 0.136654 0.096825 0.204980 +0.237808 +0.050536 0.030849 0.082719 0.042437 0.047729 0.051449 0.008956 0.065445 0.102937 0.048158 0.026078 0.699536 0.061231 0.017762 0.039507 0.043658 0.024447 0.109343 0.060183 0.034437 0.023805 0.170817 0.070092 0.046317 0.009915 0.102490 0.069913 0.002271 0.048663 0.170817 0.059128 0.307471 +0.518389 +0.010262 0.021244 0.128783 0.072994 0.028109 0.100992 0.060910 0.016361 0.039708 0.065428 0.029819 0.248946 0.015249 0.013554 0.034645 0.037536 0.046012 0.117134 0.039853 0.014277 0.020578 0.204980 0.077439 0.067243 0.005636 0.307471 0.052106 0.054905 0.042754 0.204980 0.099428 0.341634 +0.250517 +0.055784 0.035840 0.034601 0.066561 0.043793 0.292322 0.031130 0.014605 0.084480 0.071515 0.033297 0.080477 0.052598 0.000265 0.054525 0.056225 0.036320 0.049393 0.050172 0.016550 0.061428 0.102490 0.076435 0.025598 0.053278 0.239144 0.100499 0.066680 0.062207 0.204980 0.092962 0.341634 +0.199544 +0.004657 0.052037 0.064542 0.128990 0.028451 0.191989 0.009380 0.060374 0.057776 0.042690 0.047093 0.222270 0.022943 0.039046 0.035929 0.132800 0.031352 0.045878 0.059152 0.012586 0.031174 0.204980 0.069998 0.032906 0.056270 0.170817 0.087997 0.063906 0.037256 0.204980 0.093468 0.239144 +0.155953 +0.021828 0.005111 0.076030 0.051244 0.049879 0.047321 0.015530 0.004793 0.059660 0.035591 0.029994 0.105995 0.055538 0.054802 0.125485 0.135440 0.026585 0.065673 0.051848 0.019337 0.015086 0.273307 0.078930 0.028200 0.065096 0.102490 0.086475 0.024119 0.053164 0.136654 0.097033 0.341634 +0.010262 +0.047961 0.031037 0.053151 0.055277 0.017685 0.059154 0.050957 0.000121 0.053524 0.116392 0.030790 0.130743 0.006133 0.012820 0.085249 0.038141 0.045105 0.072086 0.053199 0.000680 0.033454 0.102490 0.101957 0.060447 0.005710 0.136654 0.087080 0.056215 0.027259 0.136654 0.067472 0.239144 +0.009110 +0.066763 0.011555 0.035893 0.129489 0.018060 0.278108 0.060198 0.042075 0.061860 0.041003 0.034481 0.059900 0.045048 0.018596 0.111706 0.038420 0.033253 0.100149 0.055562 0.041046 0.041405 0.239144 0.084661 0.020118 0.033423 0.102490 0.078499 0.007914 0.062841 0.136654 0.080304 0.273307 +0 +0.026108 0.010836 0.035940 0.114043 0.020035 0.091243 0.036863 0.056347 0.060261 0.055773 0.043071 0.168543 0.041485 0.035079 0.053242 0.045157 0.042489 0.114824 0.051822 0.020034 0.051224 0.204980 0.069800 0.004955 0.045308 0.136654 0.101836 0.009978 0.009695 0.136654 0.056157 0.239144 +0.325034 +0.068092 0.023406 0.044030 0.039118 0.019067 0.073615 0.053872 0.037791 0.044637 0.056298 0.018091 0.045961 0.064076 0.055728 0.057018 0.097316 0.036737 0.065380 0.046039 0.058206 0.006947 0.204980 0.091433 0.061904 0.048637 0.170817 0.066846 0.012637 0.009903 0.204980 0.061567 0.273307 +0 +0.049619 0.054106 0.055717 0.081655 0.034003 0.109759 0.041954 0.015284 0.037478 0.117914 0.028370 0.148691 0.036331 0.034027 0.058602 0.053324 0.021078 0.232761 0.051866 0.032262 0.016670 0.102490 0.085651 0.017446 0.019581 0.102490 0.078197 0.065797 0.051198 0.170817 0.086153 0.239144 +0.432007 +0.049541 0.046130 0.051504 0.060238 0.041171 0.195281 0.002243 0.021270 0.042434 0.045896 0.034535 0.322782 0.016569 0.041537 0.040879 0.035801 0.021691 0.060473 0.045587 0.065935 0.023085 0.136654 0.051625 0.066434 0.004165 0.102490 0.091867 0.013720 0.025565 0.136654 0.086246 0.307471 +0.107971 +0.043637 0.013364 0.057499 0.184059 0.019832 0.203056 0.052978 0.063632 0.045244 0.143589 0.048454 0.055246 0.003224 0.049648 0.058229 0.041968 0.029325 0.085688 0.049381 0.030041 0.031999 0.239144 0.095347 0.039117 0.050619 0.136654 0.079185 0.027987 0.040536 0.170817 0.093594 0.273307 +0.008127 +0.067941 0.037899 0.066451 0.048544 0.024842 0.211163 0.054493 0.060849 0.038528 0.057260 0.026251 0.065174 0.056412 0.028354 0.103594 0.075387 0.019102 0.051068 0.044492 0.042828 0.025363 0.204980 0.075871 0.038700 0.060783 0.102490 0.072393 0.000342 0.038995 0.239144 0.078820 0.273307 +0.001885 +0.005687 0.043528 0.043399 0.096213 0.030310 0.196962 0.056620 0.054084 0.058818 0.042531 0.042409 0.051129 0.012760 0.052625 0.086694 0.034959 0.019599 0.118601 0.045866 0.048632 0.049201 0.204980 0.053772 0.008915 0.061321 0.239144 0.076799 0.004131 0.006445 0.239144 0.076564 0.307471 +0 +0.016758 0.058365 0.038001 0.090598 0.042322 0.044203 0.062718 0.005771 0.077114 0.038570 0.019659 0.074319 0.032066 0.012886 0.050331 0.039484 0.032190 0.119945 0.042421 0.041583 0.043691 0.102490 0.060703 0.025109 0.053641 0.239144 0.057398 0.022999 0.056046 0.170817 0.068460 0.307471 +0 +0.066255 0.003844 0.067248 0.070441 0.023932 0.494661 0.008063 0.021613 0.144275 0.075215 0.043710 0.046871 0.005887 0.042107 0.055830 0.065858 0.033179 0.044849 0.053970 0.027533 0.049546 0.273307 0.086812 0.059964 0.028890 0.239144 0.083704 0.032987 0.064175 0.136654 0.087409 0.341634 +0.005773 +0.049871 0.000721 0.070333 0.094012 0.046571 0.139733 0.054673 0.029558 0.042531 0.074990 0.041062 0.050045 0.051808 0.047546 0.049313 0.041049 0.026569 0.039470 0.043544 0.008052 0.008957 0.102490 0.095983 0.047549 0.015058 0.204980 0.078435 0.009510 0.049008 0.170817 0.082173 0.307471 +0 +0.053536 0.003642 0.064531 0.105319 0.023151 0.300726 0.016946 0.052883 0.076593 0.042615 0.046050 0.093908 0.024905 0.012164 0.036168 0.088461 0.047378 0.152683 0.056489 0.007090 0.019918 0.102490 0.073088 0.016832 0.043994 0.136654 0.093574 0.044390 0.007637 0.170817 0.077236 0.307471 +0.064149 +0.056789 0.024460 0.060541 0.070797 0.029311 0.041730 0.027108 0.061387 0.056358 0.057978 0.037555 0.144607 0.052122 0.026726 0.094326 0.101160 0.019614 0.134715 0.060055 0.017278 0.064486 0.136654 0.064971 0.025254 0.019634 0.239144 0.064822 0.049292 0.015040 0.102490 0.061664 0.341634 +0 +0.006778 0.013382 0.051470 0.091787 0.047409 0.124391 0.013135 0.019291 0.062794 0.051140 0.041935 0.043667 0.013256 0.059238 0.141282 0.048476 0.026915 0.225531 0.049225 0.048039 0.038364 0.136654 0.069804 0.041435 0.062170 0.204980 0.069853 0.017750 0.060779 0.170817 0.076706 0.273307 +0.022145 +0.022116 0.037082 0.079016 0.077715 0.048230 0.064983 0.059033 0.042102 0.045801 0.079539 0.025138 0.388426 0.000152 0.064804 0.035124 0.066389 0.024328 0.042465 0.056928 0.054762 0.038069 0.102490 0.085527 0.030386 0.064679 0.136654 0.069136 0.003474 0.006081 0.239144 0.076107 0.273307 +0.344599 +0.063745 0.011996 0.094459 0.049864 0.020153 0.110623 0.042934 0.026362 0.059393 0.101368 0.020714 0.180032 0.036421 0.030280 0.094319 0.036258 0.020562 0.554228 0.056051 0.053351 0.028121 0.136654 0.093078 0.067176 0.050416 0.170817 0.066680 0.052467 0.003333 0.170817 0.100270 0.239144 +0.161346 +0.027841 0.058423 0.063979 0.056841 0.037224 0.172209 0.050625 0.040409 0.040590 0.040563 0.051173 0.066769 0.042270 0.065576 0.055308 0.061898 0.028922 0.157322 0.058789 0.049103 0.029767 0.102490 0.086391 0.046638 0.015187 0.102490 0.066122 0.066558 0.001201 0.170817 0.068593 0.204980 +0.033423 +0.049662 0.004354 0.048911 0.048611 0.035094 0.284749 0.024949 0.036200 0.042050 0.069289 0.048722 0.106756 0.066381 0.006850 0.065696 0.042077 0.018699 0.067234 0.043728 0.068249 0.028145 0.170817 0.096051 0.032751 0.019368 0.136654 0.094747 0.018656 0.016840 0.170817 0.079033 0.239144 +0.155605 +0.008927 0.044952 0.041332 0.109101 0.021756 0.172100 0.004127 0.053910 0.044180 0.067621 0.021170 0.131127 0.050098 0.014127 0.067779 0.051286 0.028049 0.252922 0.044282 0.029662 0.028484 0.204980 0.080801 0.054677 0.030137 0.204980 0.078939 0.028402 0.028812 0.136654 0.092621 0.307471 +0.249474 +0.044056 0.018837 0.080803 0.103158 0.032038 0.040014 0.037510 0.014264 0.097247 0.126402 0.021555 0.078743 0.006437 0.005210 0.054078 0.042564 0.017239 0.195958 0.046503 0.044760 0.046495 0.136654 0.056115 0.028131 0.055147 0.102490 0.082417 0.011050 0.042179 0.204980 0.087093 0.341634 +0 +0.031165 0.010310 0.081208 0.036012 0.044429 0.358295 0.022412 0.006475 0.095701 0.044063 0.026488 0.089652 0.063399 0.054133 0.056903 0.066671 0.044921 0.271360 0.040894 0.033876 0.001725 0.136654 0.078186 0.063431 0.017114 0.136654 0.076264 0.030132 0.017805 0.136654 0.051286 0.204980 +0.208188 +0.030343 0.027449 0.050181 0.074528 0.037966 0.126122 0.053617 0.045629 0.034938 0.037352 0.020439 0.169368 0.029785 0.042655 0.040174 0.128104 0.033666 0.088101 0.048653 0.058240 0.001009 0.136654 0.085205 0.035735 0.015626 0.102490 0.071182 0.062755 0.015314 0.204980 0.101194 0.239144 +0.151944 +0.006208 0.016274 0.061476 0.059438 0.019204 0.069677 0.047205 0.057795 0.175424 0.066987 0.043556 0.050647 0.046364 0.054486 0.067127 0.046293 0.035710 0.163810 0.051714 0.019010 0.033231 0.136654 0.085585 0.018845 0.053744 0.170817 0.089497 0.047609 0.061401 0.102490 0.087222 0.239144 +0.001872 +0.016349 0.018651 0.041484 0.037220 0.021693 0.081635 0.065127 0.021248 0.038656 0.047592 0.025727 0.308823 0.002458 0.012640 0.048199 0.054985 0.024209 0.053398 0.039732 0.027767 0.011070 0.136654 0.066245 0.066757 0.003355 0.136654 0.101862 0.048417 0.041988 0.204980 0.101442 0.273307 +0.306243 +0.020037 0.008561 0.050388 0.060801 0.046326 0.036145 0.055048 0.046452 0.034990 0.154751 0.030153 0.201572 0.047865 0.055171 0.036164 0.053849 0.018970 0.133213 0.046714 0.049977 0.027195 0.170817 0.069770 0.026036 0.044732 0.102490 0.087018 0.028754 0.045251 0.170817 0.065350 0.204980 +0.026499 +0.046102 0.006357 0.050888 0.039702 0.020902 0.117503 0.019775 0.028309 0.069898 0.084216 0.021224 0.211423 0.001349 0.025427 0.045705 0.144224 0.039559 0.045548 0.048896 0.001359 0.046239 0.170817 0.059077 0.046566 0.052411 0.170817 0.094364 0.003058 0.009951 0.239144 0.074743 0.273307 +0.166643 +0.061017 0.064274 0.053799 0.036691 0.048930 0.188378 0.046415 0.031335 0.054610 0.038926 0.043290 0.168021 0.000527 0.002881 0.153941 0.062143 0.034597 0.080873 0.040124 0.017298 0.064686 0.102490 0.062625 0.030642 0.049168 0.136654 0.101387 0.008379 0.010222 0.204980 0.086099 0.239144 +0.035337 +0.022094 0.050465 0.051629 0.035656 0.049946 0.057059 0.001298 0.038342 0.044940 0.049361 0.043649 0.147907 0.028115 0.022906 0.178728 0.048978 0.049322 0.074330 0.046672 0.051828 0.005136 0.136654 0.085117 0.004887 0.011701 0.204980 0.052275 0.044535 0.020040 0.239144 0.059830 0.273307 +0.025399 +0.018065 0.007734 0.039112 0.127622 0.041558 0.054985 0.029819 0.003585 0.085705 0.043018 0.019692 0.315902 0.056326 0.065593 0.042199 0.047285 0.050376 0.110346 0.062478 0.012936 0.002189 0.170817 0.101749 0.037046 0.017616 0.102490 0.093205 0.057547 0.055082 0.102490 0.085064 0.204980 +0.249739 +0.055906 0.001036 0.094805 0.057238 0.045346 0.055619 0.059228 0.035768 0.142258 0.054357 0.034500 0.129577 0.021403 0.032921 0.083461 0.035216 0.019547 0.045413 0.057484 0.045617 0.022537 0.102490 0.097055 0.027147 0.014411 0.102490 0.057308 0.042960 0.044096 0.273307 0.064629 0.341634 +0 +0.067793 0.025027 0.087584 0.174900 0.042148 0.077056 0.011323 0.000816 0.093062 0.042730 0.027673 0.075722 0.006537 0.019022 0.054738 0.083948 0.041908 0.099385 0.045935 0.065670 0.001661 0.102490 0.058253 0.044796 0.033516 0.273307 0.068256 0.058756 0.033300 0.170817 0.094298 0.307471 +0.078510 +0.008753 0.044738 0.061350 0.036626 0.025771 0.094002 0.001026 0.007561 0.035983 0.102254 0.021029 0.079552 0.046901 0.023685 0.038870 0.053126 0.018284 0.034614 0.041926 0.058757 0.062481 0.136654 0.068871 0.060500 0.062128 0.170817 0.057115 0.042675 0.036140 0.204980 0.072343 0.341634 +0 +0.049015 0.053093 0.059821 0.104642 0.042951 0.049692 0.000424 0.025169 0.076343 0.049004 0.020548 0.045543 0.035930 0.024458 0.115206 0.037237 0.030593 0.053269 0.063627 0.054539 0.013327 0.239144 0.082083 0.005615 0.003871 0.102490 0.081475 0.015364 0.056322 0.170817 0.063473 0.341634 +0 +0.002326 0.026374 0.143330 0.081920 0.025968 0.263655 0.068242 0.060261 0.052234 0.063301 0.027094 0.174449 0.067657 0.010529 0.064186 0.053858 0.036328 0.093532 0.043322 0.002994 0.067743 0.170817 0.063152 0.044749 0.053852 0.136654 0.055866 0.011915 0.004704 0.102490 0.067041 0.204980 +0.087901 +0.051760 0.015920 0.052749 0.043112 0.049080 0.146825 0.067959 0.032382 0.072808 0.058007 0.019287 0.139284 0.002785 0.011791 0.070743 0.042505 0.018528 0.047759 0.058212 0.035468 0.050189 0.170817 0.080857 0.052273 0.058878 0.204980 0.072294 0.030832 0.039259 0.204980 0.098919 0.273307 +0.039767 +0.021819 0.064076 0.041254 0.085092 0.034264 0.193134 0.032757 0.046297 0.145563 0.113441 0.045563 0.034646 0.060446 0.011689 0.102814 0.042109 0.029458 0.041508 0.049071 0.043938 0.027359 0.204980 0.054914 0.011701 0.022004 0.239144 0.089703 0.052722 0.047923 0.204980 0.071635 0.273307 +0 +0.002839 0.022805 0.047924 0.052491 0.049385 0.063274 0.020848 0.058693 0.089271 0.073271 0.034559 0.055355 0.007752 0.004964 0.062917 0.083689 0.027147 0.059604 0.036186 0.007651 0.001111 0.204980 0.055250 0.057631 0.027721 0.102490 0.085848 0.023266 0.023410 0.239144 0.075110 0.307471 +0 +0.008860 0.065908 0.074911 0.050586 0.036168 0.064541 0.041871 0.008221 0.075693 0.089109 0.025516 0.111543 0.027778 0.000049 0.064273 0.077372 0.028494 0.074437 0.054748 0.007688 0.023418 0.204980 0.054360 0.025273 0.047868 0.204980 0.052421 0.017667 0.054516 0.273307 0.063252 0.307471 +0.023234 +0.007115 0.020135 0.080399 0.117967 0.039466 0.039592 0.006854 0.018754 0.051862 0.066365 0.036052 0.044013 0.023746 0.034604 0.143555 0.083124 0.035895 0.567312 0.055169 0.024793 0.041546 0.102490 0.068274 0.013500 0.039349 0.136654 0.100476 0.026635 0.033624 0.102490 0.052114 0.341634 +0 +0.021773 0.016119 0.059917 0.079636 0.027821 0.105811 0.000728 0.035205 0.041336 0.049447 0.039151 0.082130 0.000914 0.020735 0.140688 0.044652 0.045288 0.037592 0.053754 0.024685 0.037143 0.102490 0.098194 0.061848 0.045057 0.136654 0.078811 0.026789 0.064328 0.170817 0.100722 0.204980 +0.046403 +0.003101 0.033274 0.037136 0.142374 0.040094 0.156308 0.057228 0.047506 0.048483 0.107104 0.027118 0.058213 0.062702 0.062327 0.038744 0.065872 0.027274 0.104695 0.043221 0.002301 0.001109 0.170817 0.085072 0.047454 0.067189 0.136654 0.074116 0.012449 0.050020 0.136654 0.072781 0.341634 +0 +0.029202 0.012465 0.045594 0.049047 0.042333 0.074958 0.047699 0.003232 0.040393 0.044273 0.026950 0.168803 0.033534 0.022011 0.044280 0.066694 0.035651 0.056728 0.062571 0.027392 0.015752 0.102490 0.079744 0.053716 0.025149 0.136654 0.084568 0.052512 0.006612 0.204980 0.064757 0.307471 +0 +0.045877 0.052595 0.035316 0.041824 0.032388 0.075687 0.067323 0.033895 0.071571 0.089631 0.022042 0.221249 0.028618 0.048999 0.042272 0.050926 0.034685 0.093540 0.059080 0.058649 0.040579 0.239144 0.085585 0.051712 0.009002 0.102490 0.091062 0.015841 0.003053 0.102490 0.099181 0.307471 +0.115212 +0.023226 0.017065 0.114158 0.052971 0.050031 0.051623 0.022675 0.029921 0.110655 0.034885 0.051087 0.055318 0.014535 0.019937 0.133188 0.055580 0.026668 0.162124 0.042958 0.003112 0.028069 0.204980 0.079858 0.066173 0.011897 0.307471 0.078688 0.044867 0.035820 0.102490 0.067532 0.341634 +0.009984 +0.004680 0.045269 0.053180 0.092354 0.040077 0.200928 0.033495 0.034970 0.107908 0.069605 0.021187 0.203624 0.043094 0.040999 0.047028 0.118219 0.050541 0.304502 0.055051 0.061130 0.009771 0.102490 0.052644 0.064038 0.016447 0.136654 0.089823 0.006510 0.036446 0.170817 0.095633 0.204980 +0.585896 +0.049799 0.046933 0.037617 0.045706 0.036196 0.143554 0.036014 0.011721 0.066423 0.047514 0.028831 0.268606 0.023304 0.032546 0.045456 0.064940 0.035065 0.092736 0.057948 0.046902 0.008219 0.239144 0.057111 0.040289 0.021307 0.204980 0.058273 0.014758 0.033371 0.170817 0.071966 0.341634 +0.063640 +0.013725 0.044223 0.083744 0.069131 0.020063 0.082068 0.044836 0.046914 0.080955 0.133220 0.022375 0.423810 0.040665 0.037387 0.043648 0.108686 0.018649 0.054225 0.041336 0.002718 0.045592 0.239144 0.057027 0.022179 0.047047 0.136654 0.066109 0.038178 0.021414 0.102490 0.056419 0.273307 +0.005855 +0.054684 0.035313 0.055692 0.104343 0.035421 0.116877 0.060499 0.052478 0.042146 0.071202 0.044374 0.337452 0.008000 0.033317 0.034708 0.038603 0.018600 0.038809 0.052677 0.013632 0.027436 0.170817 0.087012 0.052306 0.046837 0.204980 0.067898 0.048814 0.007212 0.239144 0.069601 0.273307 +0.048057 +0.041969 0.007262 0.037848 0.135213 0.038587 0.086491 0.065168 0.053898 0.035367 0.058260 0.031151 0.054317 0.026318 0.015484 0.099712 0.056984 0.044640 0.123436 0.062326 0.042790 0.066981 0.204980 0.069432 0.023621 0.065215 0.102490 0.060966 0.059558 0.027567 0.170817 0.055503 0.307471 +0.001216 +0.052276 0.049775 0.149578 0.062160 0.017358 0.074650 0.061518 0.023426 0.047603 0.089217 0.036376 0.148095 0.025737 0.057769 0.063829 0.040419 0.033913 0.125128 0.051314 0.056042 0.062569 0.136654 0.094701 0.008574 0.007558 0.239144 0.081172 0.012366 0.067235 0.273307 0.053429 0.307471 +0.040273 +0.061612 0.008609 0.042863 0.042006 0.028216 0.243303 0.016349 0.003672 0.084254 0.085439 0.026144 0.131517 0.026550 0.050817 0.101695 0.051599 0.050264 0.039392 0.057484 0.034041 0.045394 0.204980 0.066284 0.009855 0.012826 0.102490 0.084681 0.052367 0.017148 0.204980 0.054859 0.239144 +0.262325 +0.056645 0.039764 0.041075 0.091811 0.033481 0.279613 0.019815 0.057229 0.060062 0.137250 0.048324 0.094656 0.000489 0.059299 0.064998 0.044204 0.046852 0.211731 0.054905 0.017687 0.050916 0.102490 0.094968 0.016581 0.034172 0.170817 0.059441 0.015595 0.044933 0.136654 0.087438 0.239144 +0.289132 +0.008241 0.009974 0.146289 0.043983 0.032718 0.047809 0.010088 0.037510 0.051095 0.083492 0.020134 0.085787 0.037146 0.020753 0.058256 0.081028 0.022251 0.038042 0.043380 0.041432 0.040390 0.170817 0.055767 0.064921 0.062750 0.170817 0.056187 0.029850 0.001198 0.170817 0.073299 0.204980 +0.004463 +0.067977 0.027749 0.069911 0.131594 0.024409 0.137389 0.062501 0.007685 0.041079 0.083130 0.020025 0.133174 0.004471 0.030840 0.045973 0.211366 0.028811 0.456913 0.049777 0.063060 0.027153 0.102490 0.094933 0.005282 0.031933 0.170817 0.094729 0.058737 0.033731 0.170817 0.056638 0.204980 +0.187277 +0.017927 0.060310 0.057797 0.045518 0.031728 0.277839 0.025363 0.056728 0.053766 0.055497 0.041549 0.044328 0.045170 0.063268 0.050666 0.040149 0.046352 0.049955 0.042879 0.043705 0.038962 0.239144 0.099297 0.065569 0.019467 0.136654 0.051252 0.026883 0.030587 0.307471 0.079038 0.341634 +0.027266 +0.057097 0.064341 0.048529 0.036964 0.041801 0.163728 0.029291 0.065355 0.062183 0.039416 0.035069 0.158226 0.033253 0.056429 0.072394 0.101153 0.042867 0.192883 0.048313 0.002208 0.029661 0.204980 0.078904 0.046155 0.059748 0.136654 0.082970 0.043154 0.047489 0.136654 0.095675 0.273307 +0.029977 +0.041591 0.018729 0.133260 0.102425 0.024674 0.127687 0.052304 0.040292 0.039928 0.050477 0.032079 0.043459 0.038647 0.044531 0.048218 0.078189 0.036830 0.242062 0.042726 0.017732 0.026367 0.170817 0.067122 0.028702 0.064202 0.136654 0.101081 0.012267 0.047238 0.136654 0.081553 0.204980 +0.235381 +0.031481 0.005198 0.034977 0.045687 0.047795 0.111925 0.067695 0.014219 0.088982 0.068321 0.049015 0.140131 0.027649 0.064120 0.052927 0.040446 0.031239 0.268082 0.050176 0.056228 0.031973 0.204980 0.084358 0.027444 0.060911 0.102490 0.063885 0.032998 0.040290 0.136654 0.096337 0.273307 +0.123726 +0.005822 0.000411 0.063979 0.034600 0.024663 0.059960 0.045171 0.045264 0.034407 0.065712 0.018233 0.079610 0.032785 0.037098 0.039143 0.101478 0.023938 0.162942 0.057127 0.067014 0.047059 0.204980 0.077152 0.017413 0.044921 0.170817 0.064931 0.032334 0.067759 0.204980 0.060004 0.307471 +0.001456 +0.039903 0.053959 0.061679 0.158339 0.047122 0.063679 0.029355 0.001665 0.045491 0.066646 0.050396 0.290596 0.057680 0.012136 0.054749 0.071465 0.027463 0.116066 0.052192 0.066925 0.015297 0.170817 0.075670 0.060683 0.017488 0.204980 0.073088 0.065480 0.048584 0.204980 0.066112 0.307471 +0.041232 +0.050892 0.020659 0.049404 0.060112 0.025272 0.046088 0.059454 0.040135 0.043464 0.085469 0.018674 0.055230 0.062874 0.037825 0.051214 0.049280 0.028731 0.509230 0.059079 0.046898 0.013291 0.102490 0.068735 0.062430 0.037731 0.170817 0.058087 0.050987 0.016395 0.102490 0.102419 0.204980 +0.141461 +0.005944 0.066244 0.154648 0.068203 0.032996 0.076426 0.001556 0.011762 0.038331 0.123398 0.024672 0.288659 0.063281 0.001087 0.111249 0.044100 0.039130 0.049335 0.056233 0.062159 0.004230 0.136654 0.083880 0.039160 0.021917 0.239144 0.077094 0.043476 0.021327 0.136654 0.070121 0.307471 +0.115171 +0.058923 0.040785 0.064527 0.037853 0.020917 0.040911 0.031387 0.005126 0.035149 0.095575 0.017497 0.135764 0.029830 0.036473 0.035201 0.189188 0.031097 0.249025 0.040696 0.006354 0.006517 0.170817 0.058555 0.017873 0.028431 0.170817 0.058507 0.006217 0.032850 0.102490 0.056757 0.204980 +0.131851 +0.044898 0.032078 0.034819 0.035316 0.020578 0.044503 0.033233 0.033446 0.052944 0.036770 0.037283 0.120930 0.067244 0.032027 0.035757 0.122831 0.025290 0.054999 0.042052 0.037008 0.022757 0.239144 0.055084 0.004695 0.004119 0.204980 0.084563 0.024529 0.043476 0.273307 0.096670 0.341634 +0.011537 +0.052608 0.027363 0.169916 0.068435 0.040418 0.314107 0.026534 0.068141 0.096381 0.073166 0.019928 0.125119 0.065375 0.060707 0.045906 0.060670 0.045279 0.097370 0.049560 0.029789 0.019643 0.239144 0.069050 0.008451 0.004808 0.102490 0.052872 0.026253 0.037785 0.136654 0.056874 0.341634 +0.185253 +0.031047 0.008701 0.038411 0.066731 0.028261 0.067342 0.039715 0.051133 0.100385 0.036643 0.026796 0.047588 0.015137 0.021325 0.177641 0.047654 0.030674 0.045734 0.063958 0.049406 0.002495 0.136654 0.095027 0.054635 0.048914 0.170817 0.097732 0.038244 0.004167 0.136654 0.097366 0.204980 +0 +0.027900 0.024435 0.071575 0.055336 0.036733 0.226139 0.062778 0.007265 0.051859 0.054629 0.034572 0.046834 0.048287 0.022865 0.073809 0.041729 0.046140 0.247743 0.053510 0.018564 0.002802 0.136654 0.058778 0.065198 0.021411 0.239144 0.101184 0.029703 0.048306 0.204980 0.064434 0.307471 +0.320693 +0.001766 0.043183 0.038680 0.084356 0.036112 0.049442 0.033534 0.053445 0.050230 0.036230 0.038794 0.153417 0.054179 0.067732 0.051768 0.077310 0.035074 0.241496 0.037011 0.027862 0.057542 0.170817 0.053978 0.060513 0.049002 0.102490 0.076518 0.053096 0.031826 0.102490 0.090821 0.204980 +0.375540 +0.011323 0.033447 0.105116 0.038684 0.021237 0.117241 0.025796 0.025851 0.150125 0.074607 0.018836 0.456495 0.067887 0.018091 0.057243 0.070710 0.049396 0.069172 0.047901 0.061504 0.061040 0.204980 0.066490 0.021295 0.007687 0.136654 0.053969 0.035041 0.023761 0.204980 0.095902 0.273307 +0.596302 +0.066946 0.020188 0.071924 0.039823 0.019421 0.224534 0.063631 0.053446 0.043822 0.048145 0.045903 0.077075 0.051548 0.022567 0.092335 0.041271 0.031018 0.140287 0.048953 0.013233 0.004323 0.239144 0.088477 0.062932 0.002911 0.239144 0.082340 0.067457 0.001352 0.204980 0.098538 0.307471 +0.019277 +0.027401 0.052281 0.060336 0.127944 0.025684 0.181637 0.009098 0.065115 0.072659 0.049856 0.028858 0.128573 0.037973 0.000877 0.043171 0.045762 0.024508 0.047386 0.048644 0.055848 0.066174 0.170817 0.072151 0.044812 0.054661 0.136654 0.092666 0.059389 0.051366 0.170817 0.057550 0.204980 +0.023326 +0.054212 0.022810 0.064372 0.049430 0.019850 0.058769 0.025105 0.066947 0.118498 0.035755 0.045588 0.062516 0.063379 0.009939 0.038527 0.043942 0.042231 0.425848 0.058065 0.047386 0.063949 0.204980 0.101518 0.017308 0.046532 0.204980 0.101119 0.063183 0.045477 0.204980 0.100624 0.307471 +0.018506 +0.051816 0.026410 0.067569 0.077063 0.033502 0.272048 0.027299 0.019410 0.060226 0.127246 0.037930 0.133346 0.031822 0.014462 0.043443 0.071553 0.046604 0.066363 0.043772 0.045133 0.025402 0.273307 0.098564 0.043323 0.043729 0.136654 0.096196 0.025805 0.046373 0.204980 0.069594 0.307471 +0.052276 +0.009829 0.032999 0.045461 0.077257 0.043218 0.101141 0.051686 0.006033 0.089869 0.044348 0.032662 0.043187 0.007986 0.004779 0.182391 0.118262 0.032345 0.120724 0.060317 0.055893 0.030605 0.102490 0.088932 0.031890 0.060989 0.204980 0.075440 0.029503 0.003819 0.204980 0.082215 0.341634 +0 +0.002738 0.034487 0.051337 0.044796 0.025370 0.069251 0.014681 0.054266 0.084898 0.074456 0.038233 0.233394 0.013527 0.025858 0.096903 0.048789 0.023888 0.393495 0.043571 0.062302 0.023312 0.170817 0.092599 0.019140 0.067767 0.204980 0.072562 0.021071 0.065460 0.204980 0.063004 0.239144 +0.161760 +0.042277 0.033504 0.060060 0.130815 0.041674 0.034188 0.032880 0.050481 0.113435 0.111514 0.035276 0.057423 0.039436 0.013916 0.034909 0.077244 0.018192 0.062313 0.037207 0.005995 0.027459 0.204980 0.097868 0.025777 0.046959 0.204980 0.098637 0.052638 0.052556 0.170817 0.099513 0.307471 +0 +0.038336 0.000357 0.034422 0.143095 0.035403 0.124614 0.051139 0.012824 0.060415 0.069405 0.044865 0.183192 0.036997 0.053054 0.114823 0.058107 0.021420 0.085614 0.045540 0.062438 0.002949 0.102490 0.060987 0.055052 0.007172 0.102490 0.089730 0.058590 0.032288 0.273307 0.075638 0.341634 +0.089159 +0.022732 0.018871 0.042927 0.047256 0.038068 0.276178 0.019321 0.050924 0.097273 0.048099 0.040558 0.223289 0.010479 0.060233 0.039455 0.035103 0.043382 0.082761 0.057629 0.012392 0.054756 0.170817 0.068226 0.027363 0.001099 0.170817 0.100737 0.049353 0.039895 0.170817 0.052276 0.204980 +0.239617 +0.035911 0.058729 0.059984 0.061910 0.041552 0.066752 0.065576 0.060983 0.069138 0.074203 0.046874 0.114661 0.056296 0.011286 0.040128 0.054126 0.040583 0.188064 0.042474 0.004188 0.022106 0.204980 0.081655 0.017130 0.042196 0.102490 0.071249 0.019420 0.058296 0.136654 0.053717 0.239144 +0.035381 +0.058926 0.036029 0.046988 0.054900 0.033770 0.271568 0.061655 0.053973 0.038853 0.050459 0.020383 0.078276 0.028655 0.008551 0.035076 0.066932 0.023706 0.119200 0.054363 0.011853 0.013094 0.136654 0.089830 0.034928 0.063503 0.102490 0.064411 0.025891 0.000582 0.102490 0.071115 0.204980 +0.044749 +0.029756 0.023548 0.046683 0.045333 0.019569 0.049459 0.060725 0.027442 0.039098 0.075974 0.036137 0.048444 0.020034 0.002050 0.055567 0.087834 0.022837 0.106001 0.051960 0.021050 0.003748 0.204980 0.079170 0.011372 0.067668 0.307471 0.072722 0.020646 0.043812 0.170817 0.096279 0.341634 +0 +0.009161 0.059972 0.089110 0.082150 0.028699 0.034923 0.022687 0.025106 0.043966 0.149037 0.038123 0.289651 0.048387 0.020269 0.044683 0.051513 0.017178 0.107039 0.055100 0.023333 0.031101 0.102490 0.084397 0.026028 0.033847 0.204980 0.101818 0.024808 0.000569 0.102490 0.056928 0.239144 +0.092178 +0.036249 0.019010 0.034858 0.062582 0.042450 0.134061 0.032185 0.043323 0.087760 0.070203 0.031193 0.039365 0.045677 0.014407 0.063346 0.110529 0.021962 0.047638 0.061481 0.046913 0.063053 0.239144 0.052463 0.010453 0.059822 0.307471 0.097730 0.056981 0.011827 0.102490 0.090421 0.341634 +0 +0.032329 0.044969 0.052408 0.060280 0.043839 0.126790 0.067352 0.048806 0.038520 0.065500 0.043216 0.146768 0.012157 0.031919 0.062009 0.101776 0.037250 0.214296 0.047592 0.039997 0.054920 0.136654 0.099215 0.044391 0.066996 0.136654 0.095721 0.023165 0.035734 0.170817 0.085978 0.239144 +0.097252 +0.059569 0.055442 0.083890 0.036139 0.047004 0.052167 0.032637 0.040626 0.043819 0.058612 0.018708 0.047127 0.039312 0.061386 0.077745 0.044749 0.046119 0.170465 0.050992 0.021118 0.046481 0.273307 0.065324 0.023159 0.022267 0.102490 0.093376 0.065296 0.005504 0.273307 0.071376 0.341634 +0 +0.038462 0.027427 0.038374 0.117554 0.048001 0.042662 0.044912 0.035469 0.037324 0.069826 0.020826 0.160176 0.025707 0.050944 0.043743 0.171167 0.051066 0.193302 0.038909 0.040469 0.007789 0.136654 0.088625 0.009378 0.022479 0.136654 0.051267 0.010323 0.038016 0.239144 0.075717 0.307471 +0.102468 +0.065223 0.023369 0.099995 0.073836 0.025897 0.178896 0.022066 0.043738 0.055191 0.055991 0.032629 0.084839 0.017153 0.046966 0.038353 0.050727 0.049128 0.198428 0.062418 0.037978 0.051462 0.239144 0.074932 0.063474 0.040238 0.136654 0.055057 0.039082 0.047965 0.239144 0.089499 0.273307 +0.077942 +0.061382 0.013019 0.034220 0.046444 0.030837 0.169122 0.039117 0.017727 0.045011 0.052345 0.031917 0.064291 0.053292 0.044041 0.067917 0.039200 0.043913 0.141917 0.046617 0.003914 0.023653 0.102490 0.086435 0.046656 0.035187 0.204980 0.063926 0.020745 0.047577 0.170817 0.092400 0.239144 +0.087669 +0.038135 0.036632 0.041609 0.055550 0.035742 0.106804 0.042566 0.017113 0.036626 0.057387 0.020842 0.197635 0.062457 0.051384 0.054507 0.079683 0.020942 0.188339 0.049524 0.029332 0.027546 0.136654 0.060982 0.053854 0.045837 0.204980 0.055609 0.006051 0.034954 0.102490 0.053101 0.239144 +0.342996 +0.034836 0.018016 0.070393 0.065370 0.048510 0.203538 0.059482 0.030596 0.048064 0.056194 0.037136 0.183516 0.022879 0.066680 0.039264 0.036879 0.018294 0.064242 0.051133 0.051981 0.010685 0.102490 0.081646 0.011001 0.012563 0.204980 0.058554 0.032174 0.033472 0.239144 0.101164 0.273307 +0.148955 +0.062730 0.018118 0.087121 0.060090 0.026700 0.204633 0.040414 0.066311 0.054326 0.100854 0.017787 0.098004 0.025594 0.006741 0.037404 0.135137 0.030732 0.257202 0.040565 0.047906 0.003427 0.273307 0.079430 0.059231 0.025661 0.170817 0.071653 0.049896 0.036487 0.170817 0.095436 0.341634 +0.120275 +0.062295 0.027412 0.117440 0.048291 0.019436 0.114655 0.061744 0.063720 0.083267 0.062644 0.038812 0.457325 0.032581 0.049384 0.062127 0.139537 0.021166 0.155390 0.049031 0.048864 0.026521 0.170817 0.058760 0.018415 0.007690 0.170817 0.073086 0.060317 0.030520 0.102490 0.089787 0.239144 +0.493305 +0.005267 0.003182 0.057583 0.114357 0.036985 0.119739 0.054953 0.024863 0.062071 0.048980 0.030067 0.332511 0.018003 0.008717 0.064866 0.043051 0.031313 0.076255 0.056714 0.014224 0.058460 0.273307 0.092897 0.000152 0.031271 0.273307 0.094305 0.062470 0.061646 0.204980 0.053282 0.341634 +0.019159 +0.006125 0.046502 0.039747 0.176685 0.021322 0.035323 0.053768 0.036670 0.082827 0.042408 0.021497 0.059541 0.017302 0.045981 0.035780 0.058085 0.039416 0.089333 0.053818 0.052992 0.064428 0.136654 0.099486 0.041570 0.043696 0.136654 0.072959 0.011188 0.007708 0.136654 0.076834 0.204980 +0 +0.021573 0.047743 0.090909 0.064484 0.047848 0.052410 0.003750 0.026277 0.059236 0.037953 0.041361 0.109352 0.028260 0.007695 0.076962 0.048531 0.042471 0.070826 0.046224 0.028559 0.027764 0.170817 0.099399 0.029200 0.064241 0.170817 0.061361 0.005024 0.049618 0.136654 0.061427 0.204980 +0.011888 +0.010694 0.067127 0.038838 0.039008 0.040359 0.116185 0.054217 0.064059 0.046706 0.108303 0.023500 0.092733 0.045237 0.022606 0.102711 0.046081 0.047872 0.062219 0.051228 0.023054 0.012196 0.170817 0.060147 0.057722 0.035858 0.170817 0.097613 0.056167 0.028246 0.170817 0.092232 0.204980 +0.061986 +0.001205 0.034746 0.081860 0.041289 0.028828 0.080392 0.021076 0.063795 0.059092 0.046824 0.020704 0.417846 0.056024 0.017148 0.036362 0.075148 0.020706 0.539164 0.039483 0.047085 0.052175 0.102490 0.079903 0.059143 0.035483 0.136654 0.057303 0.002646 0.015190 0.170817 0.070907 0.307471 +0.823083 +0.048927 0.018999 0.079120 0.051595 0.025803 0.044839 0.055420 0.046267 0.057833 0.068420 0.048478 0.132955 0.041833 0.004994 0.046632 0.166309 0.034980 0.161111 0.053866 0.036163 0.028304 0.102490 0.052814 0.005866 0.001638 0.102490 0.072282 0.056977 0.051462 0.170817 0.064739 0.239144 +0.051703 +0.020586 0.021814 0.052118 0.038689 0.050987 0.190487 0.016353 0.060067 0.113220 0.081513 0.025083 0.044682 0.031197 0.025730 0.108809 0.071842 0.031984 0.157974 0.060293 0.063500 0.008873 0.102490 0.066219 0.035120 0.034531 0.102490 0.079157 0.019520 0.066029 0.102490 0.052578 0.204980 +0.003874 +0.021992 0.064465 0.038182 0.063166 0.020405 0.303072 0.045478 0.015156 0.038527 0.072829 0.018812 0.151477 0.006463 0.021561 0.062851 0.065498 0.047537 0.404843 0.050926 0.027289 0.061844 0.102490 0.055147 0.013780 0.067258 0.204980 0.083869 0.047386 0.022921 0.170817 0.093383 0.239144 +0.197661 +0.039929 0.027670 0.037726 0.130826 0.049209 0.036731 0.009332 0.016116 0.064103 0.116918 0.044918 0.048221 0.052119 0.005840 0.133400 0.049379 0.040997 0.067648 0.058155 0.014082 0.044990 0.170817 0.087700 0.035732 0.051074 0.170817 0.071247 0.046448 0.062554 0.204980 0.071020 0.341634 +0 +0.057309 0.041707 0.110726 0.084550 0.018343 0.159720 0.019821 0.038483 0.080909 0.054539 0.021927 0.055073 0.012402 0.048907 0.044841 0.044607 0.032598 0.055231 0.052546 0.003498 0.054617 0.239144 0.080816 0.007854 0.035842 0.273307 0.085125 0.048414 0.058816 0.136654 0.094628 0.341634 +0 +0.052607 0.035120 0.163636 0.036370 0.030382 0.121332 0.050624 0.007640 0.133838 0.066817 0.040271 0.208040 0.027979 0.053604 0.060646 0.044913 0.044814 0.053406 0.037568 0.016520 0.060038 0.204980 0.100561 0.014227 0.063650 0.170817 0.056237 0.011244 0.003137 0.273307 0.068070 0.341634 +0.092852 +0.057130 0.068211 0.034314 0.045183 0.032125 0.062123 0.023986 0.032659 0.077884 0.066358 0.032017 0.191406 0.051131 0.017307 0.057928 0.075903 0.025387 0.143866 0.046805 0.064888 0.045984 0.273307 0.068631 0.011706 0.020060 0.204980 0.098762 0.015222 0.067498 0.239144 0.058139 0.307471 +0.148891 +0.002197 0.046975 0.050637 0.076583 0.040409 0.153908 0.019483 0.056011 0.037683 0.034178 0.040700 0.057717 0.016981 0.003400 0.133292 0.042607 0.032862 0.039382 0.049331 0.048064 0.022993 0.204980 0.084689 0.019174 0.049798 0.170817 0.084940 0.024924 0.064165 0.136654 0.057602 0.239144 +0 +0.002900 0.050753 0.037445 0.034385 0.030486 0.060784 0.059442 0.027358 0.078343 0.063866 0.043976 0.051815 0.004514 0.004025 0.065724 0.111499 0.048795 0.120919 0.045969 0.058233 0.012215 0.204980 0.097346 0.054615 0.057079 0.136654 0.066678 0.032725 0.028757 0.204980 0.069717 0.239144 +0.005662 +0.000902 0.043445 0.059204 0.039703 0.045956 0.111432 0.033713 0.039873 0.045286 0.035602 0.023164 0.150826 0.033589 0.001478 0.044264 0.046860 0.026758 0.083040 0.061767 0.063416 0.051700 0.170817 0.075310 0.027467 0.033243 0.239144 0.083426 0.021385 0.005683 0.170817 0.101676 0.341634 +0.007648 +0.068019 0.052709 0.099835 0.130085 0.028522 0.087715 0.038657 0.036295 0.063691 0.051231 0.036409 0.091910 0.027812 0.064142 0.096437 0.123443 0.037256 0.214337 0.054091 0.034379 0.005272 0.170817 0.077892 0.023152 0.049650 0.136654 0.063677 0.006770 0.064712 0.102490 0.089209 0.204980 +0.022178 +0.058273 0.001717 0.034651 0.051266 0.027962 0.478647 0.020594 0.004696 0.075101 0.035968 0.023321 0.054693 0.031513 0.043533 0.035944 0.074739 0.043991 0.060655 0.062525 0.030561 0.029921 0.136654 0.076178 0.000425 0.003808 0.239144 0.066824 0.064129 0.014479 0.102490 0.082051 0.273307 +0 +0.053265 0.057605 0.047515 0.178013 0.021127 0.750265 0.015326 0.027454 0.082110 0.042132 0.042610 0.074999 0.028380 0.007996 0.051883 0.048313 0.031135 0.071922 0.041211 0.042258 0.058489 0.170817 0.059551 0.006934 0.012632 0.136654 0.099475 0.010499 0.067458 0.136654 0.072822 0.307471 +0.477631 +0.028892 0.049957 0.059325 0.040131 0.046941 0.127969 0.041439 0.048389 0.040178 0.063356 0.037620 0.146314 0.013108 0.053353 0.035767 0.047573 0.038730 0.151124 0.058871 0.016206 0.024661 0.204980 0.057452 0.021786 0.065993 0.273307 0.073912 0.047767 0.050274 0.102490 0.093716 0.341634 +0.126736 +0.057356 0.043649 0.095464 0.041158 0.043520 0.065548 0.045707 0.057377 0.105519 0.099846 0.021175 0.284518 0.054697 0.017700 0.059537 0.081903 0.045866 0.381332 0.057527 0.016097 0.039638 0.170817 0.073936 0.015520 0.016443 0.204980 0.089022 0.068113 0.033644 0.273307 0.091085 0.341634 +0.081400 +0.027373 0.007395 0.062714 0.117605 0.033334 0.047555 0.016333 0.062432 0.082718 0.044555 0.037944 0.044728 0.048965 0.002493 0.075288 0.068814 0.050626 0.301961 0.059972 0.062603 0.052022 0.136654 0.060818 0.038520 0.025225 0.239144 0.086985 0.063422 0.044258 0.136654 0.051375 0.273307 +0.094645 +0.060405 0.040639 0.040952 0.123820 0.046479 0.101732 0.034867 0.061545 0.052037 0.041743 0.040229 0.308171 0.052115 0.027285 0.036801 0.039405 0.044929 0.052076 0.055194 0.053934 0.055374 0.239144 0.093248 0.022324 0.020437 0.239144 0.077020 0.065301 0.011056 0.136654 0.060506 0.273307 +0.236889 +0.010056 0.013241 0.053170 0.037084 0.022355 0.092734 0.042873 0.040963 0.035562 0.051985 0.036874 0.056266 0.030337 0.034020 0.058475 0.042241 0.047199 0.231526 0.064529 0.019410 0.056814 0.102490 0.077898 0.049885 0.023728 0.307471 0.065323 0.009059 0.013698 0.239144 0.097671 0.341634 +0.015381 +0.055188 0.042297 0.062964 0.064639 0.017302 0.062142 0.037133 0.063890 0.082299 0.065302 0.027805 0.036345 0.004402 0.045294 0.095905 0.072284 0.038073 0.614776 0.045985 0.039289 0.061425 0.273307 0.080500 0.005419 0.021965 0.170817 0.087019 0.012974 0.008653 0.273307 0.077017 0.341634 +0.640650 +0.027596 0.056288 0.036850 0.054268 0.036655 0.084715 0.054923 0.067975 0.067180 0.050691 0.035278 0.219106 0.004912 0.051956 0.075902 0.046041 0.042734 0.121821 0.054205 0.054279 0.058275 0.102490 0.097413 0.000674 0.029423 0.307471 0.089735 0.034338 0.059181 0.136654 0.061799 0.341634 +0.001989 +0.051624 0.050815 0.073946 0.092864 0.035242 0.419539 0.027519 0.042436 0.045329 0.044807 0.022829 0.075233 0.011305 0.044433 0.068875 0.035828 0.033553 0.081536 0.055124 0.017745 0.025628 0.102490 0.071101 0.016530 0.017593 0.102490 0.093464 0.024251 0.064753 0.204980 0.071910 0.239144 +0.375830 +0.065804 0.063704 0.077306 0.136291 0.021871 0.086884 0.036506 0.009984 0.160666 0.041869 0.046058 0.220723 0.065293 0.061301 0.093469 0.068666 0.021352 0.332929 0.052090 0.067821 0.054025 0.170817 0.093062 0.014297 0.028775 0.102490 0.078723 0.037902 0.045689 0.136654 0.090657 0.204980 +0.399511 +0.065507 0.059503 0.049539 0.075426 0.044074 0.044855 0.021086 0.033516 0.044200 0.035603 0.021511 0.526849 0.044689 0.029458 0.080857 0.092151 0.028262 0.035624 0.048672 0.050040 0.025279 0.136654 0.052491 0.014857 0.006665 0.273307 0.063342 0.062675 0.062596 0.273307 0.071498 0.307471 +0.857294 +0.029061 0.010502 0.042912 0.086703 0.023098 0.064521 0.005640 0.053359 0.085494 0.038750 0.023072 0.035843 0.014062 0.026846 0.039011 0.151645 0.047113 0.057541 0.044364 0.065737 0.043178 0.204980 0.081541 0.035244 0.020918 0.307471 0.068488 0.032930 0.053948 0.307471 0.075663 0.341634 +0 +0.026161 0.063595 0.092522 0.107785 0.038813 0.088651 0.021443 0.024599 0.044829 0.052252 0.030710 0.138502 0.054541 0.040217 0.050956 0.069760 0.047507 0.301074 0.047041 0.030587 0.035551 0.239144 0.060876 0.036236 0.042849 0.102490 0.053647 0.026679 0.068029 0.170817 0.078587 0.273307 +0.058857 +0.025396 0.006587 0.108170 0.078656 0.037735 0.053183 0.007256 0.043164 0.053511 0.046820 0.045076 0.054963 0.026722 0.028172 0.079463 0.086441 0.044187 0.108924 0.054356 0.046586 0.062137 0.136654 0.093848 0.061622 0.018922 0.204980 0.098947 0.043255 0.047033 0.170817 0.073878 0.239144 +0.006691 +0.008804 0.061641 0.148578 0.071978 0.046719 0.163410 0.014006 0.019868 0.054643 0.048166 0.037001 0.078854 0.066490 0.028421 0.049707 0.071317 0.040049 0.123825 0.051698 0.052465 0.060371 0.239144 0.053815 0.058184 0.036704 0.204980 0.072239 0.031757 0.008247 0.170817 0.092955 0.273307 +0.092423 +0.034480 0.061801 0.066678 0.060383 0.021152 0.374056 0.009020 0.009822 0.074886 0.060587 0.032387 0.484591 0.063838 0.013385 0.063233 0.065809 0.017345 0.171268 0.048210 0.063369 0.035681 0.136654 0.064299 0.016157 0.040195 0.170817 0.070768 0.010138 0.005897 0.204980 0.078906 0.341634 +0.683075 +0.040889 0.029171 0.087154 0.063110 0.018599 0.088722 0.029829 0.067906 0.093136 0.044388 0.037765 0.080485 0.022981 0.062803 0.095468 0.121890 0.024229 0.065416 0.062875 0.042816 0.034980 0.204980 0.068961 0.024268 0.024839 0.102490 0.081101 0.017766 0.012400 0.170817 0.074844 0.239144 +0.013979 +0.061406 0.015686 0.085175 0.105874 0.018317 0.203328 0.004202 0.054767 0.054985 0.044975 0.049680 0.179672 0.049758 0.000937 0.072723 0.067695 0.037853 0.048478 0.044498 0.033256 0.036830 0.204980 0.086241 0.055612 0.056873 0.136654 0.081674 0.002358 0.025381 0.136654 0.058602 0.307471 +0.015571 +0.062614 0.024281 0.096764 0.078611 0.034363 0.063722 0.053629 0.013101 0.061856 0.052579 0.019923 0.060454 0.044666 0.025068 0.057317 0.044530 0.017506 0.046629 0.042641 0.024060 0.001638 0.136654 0.068238 0.049588 0.011872 0.170817 0.084807 0.025934 0.025985 0.170817 0.081420 0.273307 +0 +0.023953 0.010637 0.050119 0.055969 0.038189 0.342301 0.065802 0.062225 0.075188 0.049016 0.024633 0.057920 0.016543 0.020689 0.047958 0.037480 0.050553 0.196926 0.049327 0.065987 0.060257 0.170817 0.071724 0.049625 0.016316 0.204980 0.065393 0.021741 0.063434 0.136654 0.083024 0.307471 +0.135811 +0.013567 0.041414 0.097307 0.106784 0.025454 0.089536 0.059746 0.052696 0.055333 0.090738 0.020789 0.059769 0.059602 0.011940 0.052288 0.036862 0.027631 0.046335 0.044822 0.067913 0.049208 0.170817 0.096028 0.026846 0.011053 0.239144 0.058893 0.057780 0.055336 0.273307 0.073467 0.341634 +0.001923 +0.050685 0.052631 0.039494 0.041041 0.019982 0.075677 0.004114 0.010783 0.076873 0.106902 0.033042 0.086508 0.035437 0.059190 0.076147 0.072266 0.025136 0.077028 0.054621 0.012736 0.036877 0.170817 0.057227 0.029975 0.014708 0.170817 0.076458 0.036813 0.001945 0.204980 0.064682 0.273307 +0 +0.059870 0.050283 0.058412 0.064479 0.035333 0.034336 0.044059 0.061573 0.037169 0.053638 0.021230 0.128916 0.002738 0.067676 0.056226 0.034192 0.049884 0.069964 0.064966 0.060511 0.022526 0.136654 0.071826 0.061829 0.027267 0.170817 0.057721 0.055984 0.026447 0.102490 0.062962 0.307471 +0 +0.039941 0.018130 0.069048 0.035115 0.051237 0.034623 0.067118 0.055374 0.052369 0.061693 0.027396 0.078955 0.007764 0.051019 0.065396 0.123346 0.028457 0.037093 0.058868 0.037201 0.004240 0.170817 0.052981 0.049780 0.041816 0.136654 0.057173 0.036960 0.061278 0.170817 0.095824 0.204980 +0 +0.067216 0.043678 0.058553 0.059122 0.050660 0.420662 0.059958 0.058353 0.047938 0.062471 0.020922 0.081456 0.048510 0.053575 0.098208 0.222639 0.046732 0.091626 0.064822 0.022390 0.024797 0.170817 0.056381 0.007373 0.035995 0.102490 0.098046 0.024250 0.019669 0.136654 0.087640 0.239144 +0.257381 +0.003052 0.058266 0.050101 0.038669 0.023781 0.091305 0.039599 0.059225 0.039534 0.038433 0.040375 0.114497 0.060537 0.009138 0.048513 0.174225 0.032268 0.129408 0.058734 0.042036 0.061898 0.239144 0.090713 0.001717 0.040823 0.136654 0.068865 0.047868 0.050141 0.102490 0.054944 0.307471 +0 +0.066129 0.013809 0.051772 0.089287 0.033500 0.041099 0.024078 0.008788 0.069461 0.046727 0.022353 0.127095 0.002462 0.041340 0.070802 0.124885 0.050570 0.320073 0.044672 0.054117 0.004951 0.102490 0.092331 0.031605 0.016770 0.170817 0.077362 0.029100 0.051754 0.170817 0.054659 0.239144 +0.038042 +0.067636 0.040608 0.039400 0.171441 0.048825 0.078745 0.034747 0.058123 0.098810 0.080338 0.023202 0.246066 0.058857 0.015134 0.034175 0.080065 0.041425 0.105304 0.046352 0.063001 0.064873 0.273307 0.057987 0.065012 0.027622 0.170817 0.066132 0.034103 0.007810 0.136654 0.099089 0.307471 +0.183683 +0.066551 0.007511 0.079775 0.058555 0.030239 0.046523 0.039573 0.062177 0.061003 0.042459 0.032471 0.121321 0.056655 0.017714 0.038236 0.037203 0.043641 0.221544 0.051871 0.026565 0.066379 0.136654 0.053079 0.025451 0.008332 0.239144 0.081853 0.019968 0.052470 0.273307 0.063712 0.307471 +0.108231 +0.063742 0.013031 0.112650 0.066144 0.040754 0.063227 0.053676 0.030454 0.048747 0.041643 0.036563 0.042279 0.020280 0.024014 0.089638 0.068311 0.033789 0.337091 0.043194 0.005850 0.051654 0.102490 0.057964 0.036000 0.041943 0.170817 0.066529 0.035510 0.045102 0.204980 0.096353 0.239144 +0.430045 +0.024387 0.031609 0.080560 0.151751 0.033915 0.271929 0.008588 0.009852 0.109962 0.091706 0.034074 0.056880 0.034837 0.021088 0.055675 0.037593 0.047294 0.053889 0.045578 0.023621 0.047442 0.170817 0.092768 0.010966 0.008994 0.102490 0.062755 0.053330 0.063676 0.136654 0.087303 0.204980 +0.041033 +0.049145 0.034992 0.066268 0.037772 0.044416 0.220556 0.039538 0.000985 0.036843 0.055806 0.020781 0.117683 0.052842 0.042666 0.080469 0.057568 0.051200 0.125038 0.048586 0.014706 0.055666 0.170817 0.085202 0.002503 0.066236 0.170817 0.067024 0.014550 0.061867 0.136654 0.069944 0.307471 +0.113315 +0.004851 0.040600 0.038309 0.153277 0.047173 0.174433 0.029633 0.061663 0.176952 0.043245 0.029110 0.049470 0.013859 0.066111 0.097365 0.151608 0.027489 0.064331 0.044587 0.049991 0.050982 0.204980 0.053195 0.030458 0.022722 0.204980 0.102366 0.067022 0.059065 0.102490 0.053905 0.341634 +0.003121 +0.022959 0.051870 0.039705 0.106965 0.043418 0.114014 0.003356 0.044711 0.055791 0.055690 0.042532 0.161824 0.032248 0.001569 0.040900 0.054410 0.022060 0.107782 0.055718 0.001366 0.042670 0.239144 0.085655 0.004898 0.044493 0.239144 0.100566 0.054763 0.020647 0.170817 0.082486 0.307471 +0.065317 +0.029845 0.037245 0.046769 0.039936 0.043561 0.123846 0.061178 0.033964 0.058158 0.130945 0.047758 0.103222 0.008250 0.039168 0.084332 0.035422 0.036292 0.204825 0.045283 0.045852 0.051861 0.170817 0.102154 0.059056 0.024300 0.204980 0.063660 0.067776 0.009469 0.204980 0.065550 0.239144 +0.116899 +0.056078 0.056163 0.040384 0.046139 0.027383 0.359737 0.029417 0.005460 0.036506 0.039186 0.032050 0.114180 0.023004 0.041470 0.035171 0.055438 0.017083 0.139896 0.054592 0.066300 0.023069 0.136654 0.082675 0.037837 0.013311 0.136654 0.074291 0.038357 0.004182 0.102490 0.088046 0.204980 +0.437430 +0.048208 0.022621 0.073276 0.117489 0.050302 0.131071 0.015718 0.029519 0.055537 0.048099 0.036082 0.151174 0.065643 0.033056 0.057871 0.035909 0.027218 0.084179 0.041105 0.060219 0.058249 0.170817 0.059727 0.051457 0.059199 0.170817 0.057659 0.010358 0.031171 0.170817 0.102023 0.204980 +0.199277 +0.026072 0.035670 0.057223 0.038441 0.036706 0.379955 0.017005 0.054973 0.053288 0.106228 0.046324 0.293795 0.032262 0.022401 0.069393 0.102226 0.021102 0.051049 0.059578 0.029849 0.044028 0.273307 0.063012 0.055905 0.040637 0.239144 0.089033 0.044066 0.002285 0.170817 0.062008 0.341634 +0.548644 +0.013302 0.038927 0.116049 0.037202 0.046723 0.174843 0.016510 0.048137 0.080900 0.091678 0.047878 0.127050 0.028067 0.028600 0.067199 0.048530 0.020329 0.058963 0.040950 0.017749 0.013335 0.239144 0.092008 0.063577 0.019425 0.239144 0.099529 0.019217 0.031961 0.136654 0.066459 0.307471 +0.060153 +0.003861 0.018148 0.092391 0.049761 0.017319 0.076040 0.039757 0.008323 0.042755 0.069189 0.032956 0.275616 0.007478 0.038989 0.121198 0.042107 0.049330 0.267731 0.036700 0.031243 0.060165 0.204980 0.052994 0.061883 0.061632 0.136654 0.058073 0.035547 0.060963 0.102490 0.067046 0.273307 +0.688698 +0.052878 0.053961 0.063009 0.038282 0.027252 0.221434 0.034222 0.035704 0.046357 0.047934 0.033839 0.284934 0.009855 0.028711 0.041403 0.039647 0.037865 0.094466 0.057516 0.000019 0.068131 0.136654 0.102189 0.051942 0.061493 0.170817 0.078100 0.028817 0.046169 0.170817 0.096610 0.307471 +0.010297 +0.044831 0.045102 0.072391 0.054986 0.031063 0.124326 0.056328 0.056280 0.076477 0.044708 0.043583 0.076352 0.007637 0.010699 0.035859 0.053622 0.021429 0.161477 0.060600 0.054108 0.028830 0.170817 0.082901 0.053607 0.049702 0.136654 0.102408 0.062819 0.027360 0.136654 0.100545 0.273307 +0.002292 +0.000461 0.061447 0.047587 0.079439 0.044758 0.474304 0.013744 0.036828 0.043986 0.056444 0.022735 0.090281 0.005385 0.058417 0.085552 0.064131 0.026162 0.090053 0.048608 0.024711 0.015127 0.239144 0.081007 0.033531 0.035073 0.102490 0.069853 0.042579 0.037016 0.102490 0.067112 0.273307 +0.064303 +0.057255 0.022648 0.068005 0.041297 0.031348 0.034295 0.037146 0.060554 0.037441 0.058644 0.017950 0.307507 0.064038 0.037062 0.054385 0.057721 0.040790 0.171172 0.064838 0.019225 0.050384 0.102490 0.070343 0.029405 0.009056 0.102490 0.087090 0.053186 0.052701 0.307471 0.100663 0.341634 +0.362392 +0.028919 0.010939 0.049274 0.118560 0.038143 0.106962 0.003428 0.065772 0.080816 0.038948 0.046232 0.099470 0.006566 0.021243 0.036035 0.063034 0.046271 0.236709 0.044852 0.002159 0.007503 0.102490 0.067156 0.016104 0.037032 0.136654 0.068259 0.057837 0.002038 0.102490 0.071724 0.204980 +0.305726 +0.056137 0.059194 0.048483 0.062214 0.019443 0.084004 0.030504 0.044665 0.047017 0.039972 0.027206 0.133719 0.038254 0.046926 0.037537 0.051181 0.044894 0.097110 0.057836 0.043743 0.014020 0.170817 0.061712 0.013065 0.060681 0.170817 0.090975 0.002336 0.002137 0.136654 0.099107 0.239144 +0.013507 +0.042348 0.053511 0.041000 0.054387 0.019078 0.125486 0.040558 0.061566 0.048383 0.092112 0.046915 0.046013 0.010483 0.031026 0.052169 0.079385 0.019629 0.070512 0.042444 0.038278 0.004015 0.102490 0.099154 0.062087 0.063995 0.102490 0.082811 0.049777 0.024910 0.136654 0.054845 0.204980 +0.036475 +0.028689 0.036559 0.048711 0.041142 0.044802 0.074419 0.068185 0.067533 0.060148 0.043618 0.034752 0.049950 0.065085 0.047145 0.110112 0.087138 0.044286 0.490720 0.054776 0.000655 0.062505 0.204980 0.064985 0.013494 0.021451 0.239144 0.097797 0.059303 0.011750 0.204980 0.083992 0.341634 +0.127678 +0.019781 0.064818 0.037037 0.055634 0.047564 0.052320 0.054928 0.035607 0.043757 0.036515 0.017677 0.323599 0.055773 0.009778 0.061897 0.052261 0.036977 0.043673 0.048757 0.067008 0.001593 0.273307 0.073440 0.005075 0.008150 0.239144 0.086661 0.015690 0.023133 0.170817 0.088739 0.341634 +0.655095 +0.036517 0.007146 0.035791 0.052120 0.028248 0.210772 0.011786 0.042268 0.073995 0.036172 0.027953 0.097745 0.007480 0.043049 0.050017 0.039123 0.035467 0.036073 0.058821 0.012475 0.032033 0.273307 0.096135 0.046498 0.009748 0.102490 0.057703 0.005156 0.064785 0.307471 0.056493 0.341634 +0.001326 +0.042064 0.050031 0.041432 0.080573 0.047959 0.161462 0.042809 0.038745 0.066708 0.066276 0.017757 0.299788 0.043319 0.054071 0.039823 0.037893 0.046443 0.130167 0.052346 0.018371 0.061966 0.204980 0.087819 0.037290 0.045171 0.136654 0.081644 0.016401 0.032302 0.136654 0.077637 0.341634 +0.005830 +0.064466 0.026522 0.034630 0.042683 0.039632 0.100094 0.059899 0.012163 0.134019 0.053669 0.044013 0.094046 0.057590 0.021833 0.062796 0.036579 0.040270 0.136036 0.049645 0.023444 0.060925 0.136654 0.060420 0.039876 0.011680 0.170817 0.066103 0.027751 0.020815 0.136654 0.058017 0.204980 +0.051219 +0.062739 0.021205 0.090727 0.076511 0.051196 0.181662 0.058009 0.029204 0.060860 0.045840 0.034174 0.161456 0.023280 0.000615 0.040612 0.068448 0.047040 0.171389 0.043931 0.052227 0.014909 0.136654 0.070391 0.044747 0.013795 0.170817 0.073664 0.003976 0.059448 0.204980 0.066934 0.307471 +0.360634 +0.045397 0.043811 0.099150 0.041622 0.045171 0.045300 0.006182 0.014883 0.104413 0.086419 0.020457 0.045170 0.021926 0.020471 0.046527 0.036965 0.039260 0.130076 0.052194 0.022106 0.051556 0.273307 0.088515 0.030487 0.047955 0.273307 0.076749 0.054643 0.027982 0.170817 0.074740 0.307471 +0 +0.033352 0.055117 0.061963 0.045834 0.043085 0.124333 0.049396 0.008473 0.046015 0.039887 0.045650 0.037508 0.048318 0.066400 0.057294 0.037652 0.034524 0.113586 0.045809 0.009352 0.005818 0.273307 0.072360 0.026498 0.056725 0.136654 0.088268 0.023157 0.005523 0.102490 0.080368 0.341634 +0 +0.058022 0.060628 0.063797 0.072354 0.049925 0.049587 0.066820 0.037316 0.050886 0.100781 0.027626 0.123760 0.063295 0.022929 0.062894 0.048919 0.050624 0.084118 0.045912 0.066638 0.050360 0.170817 0.071102 0.022430 0.008614 0.170817 0.097765 0.034879 0.052132 0.170817 0.097662 0.204980 +0.125079 +0.017139 0.024853 0.076989 0.083402 0.047219 0.035771 0.045487 0.060903 0.036648 0.038305 0.023082 0.111951 0.000584 0.059313 0.042357 0.045633 0.017313 0.130473 0.039605 0.034849 0.012454 0.136654 0.090059 0.066187 0.040481 0.170817 0.077483 0.055780 0.037175 0.239144 0.063475 0.273307 +0.099324 +0.043420 0.066082 0.072170 0.067310 0.049524 0.136164 0.057925 0.055488 0.050352 0.096572 0.047118 0.060894 0.031769 0.002917 0.035607 0.088997 0.045779 0.068280 0.038112 0.045867 0.020138 0.204980 0.079087 0.004372 0.021640 0.136654 0.098158 0.039660 0.043290 0.102490 0.074489 0.239144 +0 +0.028056 0.039707 0.050770 0.037698 0.045967 0.138601 0.062088 0.035637 0.064795 0.091221 0.050869 0.187207 0.067448 0.044923 0.055573 0.035140 0.027073 0.051666 0.052291 0.028378 0.066015 0.239144 0.085515 0.023682 0.022960 0.102490 0.079922 0.033339 0.037027 0.136654 0.064074 0.341634 +0 +0.039958 0.004803 0.097621 0.051933 0.033429 0.260097 0.029241 0.046149 0.070939 0.089230 0.050085 0.106725 0.017493 0.000539 0.076454 0.057628 0.025105 0.101717 0.061154 0.023570 0.048390 0.136654 0.079891 0.049010 0.035157 0.170817 0.079713 0.026428 0.007491 0.102490 0.094656 0.204980 +0.047420 +0.056250 0.038421 0.034791 0.034832 0.042288 0.113827 0.028950 0.066970 0.036026 0.101960 0.042537 0.136114 0.051128 0.028363 0.039779 0.035342 0.042311 0.086521 0.044356 0.047293 0.017616 0.170817 0.099071 0.020295 0.059458 0.170817 0.087605 0.057270 0.033097 0.204980 0.063645 0.239144 +0.199865 +0.046962 0.068225 0.122921 0.087249 0.038028 0.150802 0.038290 0.039377 0.048367 0.054443 0.032204 0.048719 0.002531 0.040629 0.075388 0.042890 0.030755 0.064919 0.050901 0.028701 0.040087 0.239144 0.079964 0.068261 0.008588 0.170817 0.058080 0.067381 0.023470 0.204980 0.101918 0.341634 +0 +0.026620 0.046035 0.055448 0.043263 0.029556 0.243734 0.053748 0.039910 0.039189 0.042463 0.038980 0.049535 0.001309 0.053648 0.089072 0.035639 0.037255 0.258965 0.038073 0.036796 0.033046 0.136654 0.097908 0.009283 0.052988 0.102490 0.084348 0.003066 0.033057 0.204980 0.085071 0.239144 +0.264768 +0.043172 0.021746 0.047778 0.038456 0.032530 0.038066 0.032567 0.011618 0.042311 0.093561 0.024909 0.232728 0.017119 0.053551 0.046925 0.034367 0.027087 0.083838 0.038884 0.042948 0.024420 0.102490 0.052032 0.056258 0.027186 0.204980 0.092169 0.051121 0.060939 0.239144 0.085977 0.341634 +0.002143 +0.007567 0.024183 0.060839 0.193081 0.024058 0.043742 0.018355 0.066931 0.036361 0.037967 0.035120 0.053982 0.025728 0.021882 0.073859 0.049909 0.025597 0.073655 0.039999 0.049940 0.024522 0.204980 0.095025 0.046603 0.045307 0.170817 0.073389 0.006050 0.059366 0.136654 0.084066 0.239144 +0.003596 +0.013078 0.000391 0.088751 0.097388 0.019524 0.127849 0.061669 0.047001 0.057854 0.077924 0.026209 0.045890 0.010533 0.035159 0.085069 0.107069 0.028184 0.128386 0.060766 0.048693 0.041126 0.102490 0.092381 0.025671 0.067764 0.204980 0.066324 0.057501 0.028344 0.102490 0.075138 0.239144 +0.015053 +0.020295 0.034704 0.048775 0.034467 0.021674 0.052411 0.061473 0.030864 0.068619 0.042977 0.031945 0.201037 0.017831 0.016350 0.070295 0.035557 0.040546 0.083274 0.039461 0.052822 0.027827 0.170817 0.058747 0.007371 0.030496 0.273307 0.097510 0.008193 0.048886 0.204980 0.064977 0.307471 +0.351985 +0.054473 0.057759 0.042056 0.183938 0.018026 0.158956 0.052454 0.068193 0.089579 0.209730 0.047427 0.100079 0.018036 0.040399 0.102641 0.037179 0.036517 0.056462 0.046180 0.060493 0.033341 0.136654 0.058289 0.045411 0.040199 0.136654 0.088142 0.006015 0.046482 0.102490 0.095783 0.239144 +0.136496 +0.053194 0.021913 0.122480 0.103059 0.025595 0.259407 0.027044 0.051581 0.094440 0.082780 0.021875 0.201944 0.018711 0.023594 0.068119 0.066176 0.018274 0.078115 0.049244 0.026105 0.004115 0.136654 0.083863 0.031310 0.037080 0.136654 0.072577 0.049602 0.007773 0.239144 0.081543 0.273307 +0.229251 +0.032415 0.012790 0.048087 0.060591 0.030769 0.119427 0.013500 0.028009 0.051245 0.040483 0.030149 0.051588 0.013837 0.038638 0.044432 0.045775 0.049974 0.360988 0.056045 0.038304 0.045697 0.136654 0.077124 0.018093 0.036006 0.273307 0.098987 0.033308 0.002476 0.239144 0.084894 0.307471 +0.137337 +0.043739 0.004926 0.043122 0.080584 0.023262 0.035381 0.008053 0.024202 0.107126 0.069433 0.034056 0.087015 0.008410 0.008813 0.037734 0.034274 0.026260 0.053721 0.049405 0.019137 0.030928 0.102490 0.075934 0.043503 0.065096 0.204980 0.074126 0.006016 0.025358 0.136654 0.071827 0.239144 +0 +0.037429 0.023362 0.060930 0.052298 0.037072 0.315907 0.055955 0.027547 0.052452 0.090691 0.047565 0.217952 0.014192 0.007909 0.097003 0.034416 0.040366 0.056245 0.038531 0.022503 0.050395 0.239144 0.088206 0.044958 0.024514 0.204980 0.072512 0.055683 0.052883 0.136654 0.053538 0.307471 +0.273115 +0.056951 0.066664 0.165890 0.059046 0.040455 0.125608 0.039415 0.037929 0.090120 0.059998 0.031950 0.086509 0.028416 0.052939 0.036778 0.054308 0.044527 0.103301 0.047986 0.048385 0.032607 0.136654 0.070130 0.015338 0.036114 0.204980 0.060428 0.047926 0.047698 0.239144 0.052889 0.273307 +0.017439 +0.022276 0.041599 0.059055 0.035177 0.039521 0.062096 0.017903 0.018939 0.062755 0.035985 0.047929 0.109371 0.033712 0.051687 0.043613 0.079131 0.039445 0.080616 0.063191 0.022827 0.011453 0.204980 0.092905 0.039393 0.064037 0.102490 0.071172 0.028919 0.029444 0.204980 0.053092 0.307471 +0.002269 +0.044295 0.023709 0.039167 0.125239 0.044305 0.050582 0.064109 0.043661 0.071814 0.058125 0.036461 0.390777 0.043007 0.019977 0.072582 0.163828 0.028805 0.180245 0.043927 0.067714 0.017187 0.136654 0.052281 0.062762 0.064765 0.204980 0.077443 0.016869 0.056246 0.102490 0.081945 0.341634 +0.416251 +0.065761 0.036572 0.062634 0.060669 0.030349 0.058488 0.010076 0.021488 0.104858 0.042320 0.035923 0.356416 0.061028 0.037200 0.081285 0.118065 0.035357 0.059710 0.046873 0.048034 0.059427 0.136654 0.075060 0.009707 0.016945 0.239144 0.065346 0.066850 0.003684 0.239144 0.101397 0.307471 +0.246325 +0.027728 0.060057 0.052583 0.050967 0.028119 0.072442 0.018457 0.057867 0.152223 0.036614 0.038969 0.074480 0.030427 0.001935 0.049846 0.049747 0.050100 0.043882 0.045367 0.005105 0.025455 0.239144 0.058549 0.019120 0.047713 0.273307 0.080365 0.032614 0.051936 0.204980 0.093284 0.307471 +0.001582 +0.024550 0.012455 0.068636 0.054581 0.028431 0.189485 0.022052 0.006007 0.099347 0.037256 0.027107 0.109659 0.008183 0.041458 0.084104 0.035428 0.027093 0.137249 0.048853 0.057807 0.023725 0.204980 0.070096 0.034605 0.029436 0.170817 0.088532 0.013169 0.028462 0.170817 0.101215 0.239144 +0.162941 +0.022375 0.056712 0.036974 0.051340 0.039264 0.169334 0.066633 0.059146 0.058874 0.103518 0.019070 0.047962 0.018292 0.023337 0.130871 0.036904 0.029928 0.061120 0.042813 0.039766 0.065865 0.273307 0.060046 0.042457 0.057817 0.239144 0.089481 0.050230 0.067071 0.170817 0.061655 0.341634 +0 +0.012511 0.051632 0.051411 0.126729 0.019168 0.152669 0.049445 0.046903 0.059653 0.192273 0.038358 0.146795 0.002624 0.032937 0.081773 0.045523 0.032343 0.076089 0.059746 0.019009 0.000067 0.273307 0.094890 0.050036 0.018319 0.136654 0.054078 0.022904 0.015719 0.273307 0.053930 0.307471 +0.076377 +0.000301 0.047270 0.037477 0.048345 0.049176 0.074657 0.001398 0.023153 0.041666 0.064178 0.039155 0.121364 0.041003 0.036260 0.045416 0.059746 0.039411 0.179626 0.061620 0.030854 0.031636 0.273307 0.080802 0.009530 0.060440 0.170817 0.076435 0.057754 0.051616 0.239144 0.099048 0.341634 +0 +0.063550 0.008819 0.035618 0.120831 0.044712 0.380816 0.004728 0.063150 0.060367 0.049457 0.040026 0.147962 0.064041 0.047281 0.118788 0.042727 0.025404 0.069831 0.048783 0.062512 0.063827 0.273307 0.085035 0.032862 0.065886 0.239144 0.069961 0.067966 0.031357 0.136654 0.096849 0.307471 +0.104553 +0.031796 0.004461 0.078395 0.097408 0.019262 0.331316 0.058322 0.008433 0.059816 0.038113 0.030260 0.091926 0.005945 0.055842 0.080118 0.054827 0.035970 0.067764 0.041575 0.029780 0.034863 0.136654 0.072260 0.017643 0.054316 0.136654 0.056063 0.011687 0.064440 0.170817 0.069558 0.204980 +0.470348 +0.030295 0.049896 0.036008 0.076011 0.021304 0.067476 0.016820 0.024081 0.044532 0.063389 0.045761 0.035871 0.038460 0.000756 0.093966 0.039288 0.030879 0.151376 0.050499 0.062589 0.066250 0.170817 0.067273 0.059518 0.023757 0.204980 0.099389 0.061536 0.066260 0.102490 0.069762 0.239144 +0.003210 +0.025759 0.005683 0.042472 0.048850 0.020818 0.237050 0.021835 0.030480 0.090992 0.038756 0.029720 0.061014 0.012904 0.053401 0.077862 0.078192 0.048747 0.056227 0.039411 0.000170 0.041288 0.136654 0.062514 0.042758 0.059308 0.102490 0.087377 0.019329 0.025378 0.136654 0.092666 0.204980 +0.173844 +0.000394 0.051578 0.046749 0.045090 0.022491 0.261122 0.011442 0.021598 0.053579 0.049160 0.050624 0.059676 0.032075 0.046378 0.045957 0.079804 0.044339 0.261859 0.049224 0.039721 0.030630 0.170817 0.074270 0.000032 0.037799 0.307471 0.051990 0.052191 0.053893 0.307471 0.052888 0.341634 +0.234314 +0.013387 0.054460 0.091981 0.042123 0.045299 0.077611 0.066848 0.019441 0.072468 0.035586 0.025706 0.036364 0.005139 0.047467 0.044439 0.066950 0.029056 0.334317 0.055933 0.031189 0.026359 0.307471 0.055885 0.065274 0.052518 0.204980 0.056657 0.050271 0.012394 0.102490 0.081020 0.341634 +0.389917 +0.028308 0.064338 0.066547 0.051819 0.040426 0.099739 0.015287 0.041617 0.067605 0.041732 0.035704 0.161071 0.043005 0.036687 0.048157 0.041167 0.046081 0.148086 0.051239 0.008226 0.064004 0.273307 0.099044 0.056529 0.050941 0.102490 0.051599 0.066000 0.023691 0.273307 0.051715 0.307471 +0.019983 +0.049635 0.034870 0.071216 0.041645 0.037168 0.055918 0.016168 0.037336 0.040189 0.034296 0.022831 0.122944 0.027426 0.056014 0.037440 0.051081 0.047462 0.077816 0.052653 0.057103 0.011230 0.102490 0.063975 0.056882 0.001539 0.102490 0.087119 0.039025 0.023171 0.102490 0.056837 0.204980 +0 +0.057856 0.053595 0.098294 0.064617 0.022593 0.240002 0.027012 0.013217 0.046789 0.066026 0.050555 0.180580 0.051609 0.020517 0.046673 0.186559 0.030678 0.046584 0.057665 0.054575 0.060035 0.102490 0.076957 0.057265 0.026810 0.102490 0.072736 0.033097 0.021612 0.204980 0.070434 0.273307 +0.030773 +0.035474 0.000412 0.040091 0.066666 0.047556 0.073927 0.018685 0.064066 0.069448 0.110261 0.044713 0.068273 0.057235 0.024645 0.208083 0.042362 0.043876 0.346065 0.038866 0.047162 0.063306 0.170817 0.056469 0.012381 0.030150 0.170817 0.072699 0.011126 0.063458 0.102490 0.071006 0.204980 +0.430319 +0.000527 0.060336 0.043003 0.046407 0.017282 0.129980 0.042145 0.057283 0.104376 0.047732 0.045577 0.040534 0.009504 0.011926 0.046005 0.038638 0.022915 0.057037 0.036096 0.033778 0.043663 0.204980 0.071480 0.034323 0.050769 0.239144 0.065443 0.049146 0.018198 0.136654 0.061202 0.273307 +0 +0.049459 0.028751 0.091682 0.045360 0.030652 0.087721 0.032001 0.038546 0.088056 0.097114 0.042822 0.149707 0.060469 0.054122 0.051741 0.071542 0.029351 0.058201 0.048322 0.039665 0.065913 0.102490 0.096515 0.009142 0.038034 0.136654 0.077484 0.035423 0.050721 0.102490 0.066500 0.307471 +0 +0.047933 0.023152 0.101297 0.139666 0.050111 0.234184 0.047153 0.019682 0.063241 0.044200 0.041227 0.188323 0.039669 0.018009 0.074116 0.094154 0.039763 0.074741 0.052153 0.004862 0.002372 0.170817 0.085188 0.008324 0.051562 0.204980 0.101980 0.019040 0.025544 0.102490 0.081706 0.239144 +0.141304 +0.052399 0.039606 0.064262 0.039393 0.044710 0.045089 0.024789 0.052618 0.141439 0.044615 0.050975 0.134270 0.040997 0.013901 0.045298 0.083304 0.029030 0.078836 0.043758 0.032027 0.030377 0.136654 0.092441 0.059488 0.059354 0.102490 0.093007 0.008245 0.008823 0.170817 0.063064 0.273307 +0 +0.051482 0.059376 0.035028 0.041786 0.028680 0.058775 0.056444 0.016719 0.063669 0.096338 0.020919 0.077050 0.002237 0.043187 0.051651 0.099325 0.035303 0.080242 0.037982 0.049303 0.058985 0.170817 0.085897 0.001534 0.049528 0.102490 0.056611 0.004223 0.006583 0.136654 0.074907 0.273307 +0 +0.049480 0.058957 0.044878 0.041143 0.027722 0.038813 0.052511 0.008977 0.174152 0.064206 0.046559 0.333590 0.058515 0.025501 0.104378 0.038813 0.033471 0.080940 0.039683 0.060029 0.013403 0.204980 0.078415 0.024163 0.055015 0.170817 0.085383 0.013589 0.025315 0.102490 0.079051 0.307471 +0.123911 +0.045038 0.066876 0.047092 0.052706 0.043749 0.103358 0.042743 0.067709 0.035272 0.066425 0.029512 0.160316 0.028302 0.006306 0.043180 0.044674 0.042129 0.045918 0.055978 0.040925 0.066538 0.273307 0.076676 0.047325 0.032555 0.136654 0.093896 0.013860 0.029199 0.136654 0.058771 0.307471 +0 +0.014928 0.044962 0.070249 0.072469 0.045006 0.150090 0.001967 0.002010 0.073726 0.077091 0.031819 0.068424 0.064874 0.054924 0.045420 0.105549 0.047134 0.089281 0.049324 0.008396 0.035114 0.170817 0.085883 0.019431 0.061319 0.170817 0.072692 0.060840 0.026616 0.239144 0.085466 0.307471 +0.003077 +0.048997 0.013760 0.035559 0.157445 0.022455 0.136305 0.029342 0.031670 0.039910 0.047121 0.023467 0.072798 0.038985 0.038642 0.118012 0.169822 0.032238 0.279505 0.060375 0.002718 0.010221 0.239144 0.096429 0.032707 0.005713 0.170817 0.102481 0.003173 0.057124 0.136654 0.091523 0.307471 +0.031131 +0.023450 0.000744 0.097174 0.079529 0.019736 0.042368 0.013932 0.038357 0.119156 0.037277 0.036612 0.100439 0.014468 0.046899 0.056013 0.043302 0.033940 0.150359 0.057862 0.036673 0.046487 0.239144 0.100551 0.030231 0.065000 0.170817 0.061676 0.061539 0.049727 0.204980 0.101811 0.341634 +0.015958 +0.004443 0.059773 0.104780 0.062135 0.046159 0.045043 0.013138 0.061318 0.171522 0.040115 0.041073 0.136581 0.042828 0.043693 0.039710 0.099107 0.049622 0.046601 0.040759 0.002393 0.020023 0.102490 0.095321 0.051464 0.023545 0.102490 0.072818 0.051550 0.002090 0.136654 0.060824 0.239144 +0 +0.056300 0.042339 0.037247 0.048261 0.019747 0.120795 0.053326 0.013384 0.073337 0.039973 0.042065 0.177598 0.011662 0.065142 0.115897 0.053163 0.042644 0.053012 0.061587 0.053564 0.039243 0.273307 0.088324 0.006896 0.045913 0.273307 0.094984 0.054355 0.049195 0.170817 0.097468 0.307471 +0.073792 +0.055930 0.041481 0.067112 0.079224 0.023029 0.258726 0.055630 0.018469 0.049704 0.035682 0.046811 0.239591 0.051530 0.065464 0.050097 0.034421 0.028832 0.108761 0.046564 0.067702 0.025893 0.102490 0.054212 0.000099 0.052568 0.102490 0.085212 0.039485 0.031904 0.136654 0.060024 0.204980 +0.201395 +0.031172 0.035773 0.040217 0.035375 0.028570 0.133793 0.005686 0.046072 0.066501 0.060374 0.044057 0.096098 0.051759 0.016443 0.119113 0.097335 0.045070 0.063309 0.048044 0.016807 0.009372 0.102490 0.096993 0.030191 0.059880 0.204980 0.070315 0.066472 0.021256 0.170817 0.074870 0.239144 +0.002840 +0.057206 0.049336 0.069537 0.063304 0.021608 0.404306 0.016204 0.038575 0.070753 0.048303 0.050270 0.366306 0.026707 0.047523 0.043422 0.339895 0.050643 0.231709 0.056446 0.014043 0.051616 0.102490 0.062901 0.020977 0.037676 0.136654 0.085208 0.049682 0.044322 0.136654 0.052027 0.204980 +0.396318 +0.030965 0.058456 0.038443 0.034821 0.037519 0.080948 0.011396 0.058947 0.056194 0.062377 0.044863 0.235802 0.023517 0.033841 0.050350 0.127736 0.022186 0.136692 0.047855 0.010902 0.007058 0.136654 0.098587 0.044527 0.026818 0.170817 0.070582 0.010656 0.059996 0.204980 0.099301 0.273307 +0.022664 +0.010351 0.020114 0.046464 0.087458 0.024767 0.107359 0.006455 0.060717 0.127697 0.062032 0.039182 0.146169 0.036744 0.036043 0.040171 0.072952 0.028185 0.401012 0.057340 0.045121 0.004448 0.102490 0.058045 0.035591 0.016098 0.102490 0.061138 0.025242 0.039996 0.170817 0.059749 0.204980 +0.264118 +0.024204 0.026174 0.041456 0.133771 0.033271 0.220856 0.051321 0.051739 0.083054 0.040001 0.041894 0.049963 0.006304 0.057482 0.037617 0.050835 0.035892 0.084771 0.049203 0.044705 0.041668 0.170817 0.088105 0.015411 0.003509 0.102490 0.056301 0.006860 0.048953 0.102490 0.053203 0.204980 +0.037438 +0.019354 0.036242 0.093107 0.051970 0.041811 0.052260 0.058938 0.061414 0.053387 0.057685 0.019999 0.117918 0.005321 0.024626 0.110125 0.082812 0.049345 0.109447 0.048909 0.038418 0.042247 0.239144 0.084980 0.045506 0.009895 0.102490 0.092981 0.003929 0.007659 0.239144 0.097313 0.341634 +0.004517 +0.057256 0.044667 0.085290 0.046442 0.049799 0.039369 0.002996 0.031370 0.037256 0.047706 0.020905 0.053229 0.002360 0.044348 0.067501 0.065718 0.045533 0.042721 0.050351 0.008472 0.025552 0.170817 0.095753 0.029339 0.028892 0.170817 0.054039 0.009340 0.017385 0.170817 0.070236 0.239144 +0 +0.044317 0.011946 0.104256 0.037605 0.032695 0.459896 0.052979 0.019391 0.069223 0.041955 0.039881 0.052288 0.001938 0.046115 0.113718 0.047355 0.036887 0.064054 0.053715 0.048750 0.029130 0.170817 0.073395 0.059633 0.038559 0.170817 0.060638 0.024335 0.008326 0.136654 0.057109 0.204980 +0.068283 +0.058455 0.032086 0.063329 0.046912 0.038036 0.054254 0.060861 0.064647 0.038832 0.039201 0.022030 0.066095 0.034908 0.040854 0.054073 0.121155 0.029577 0.262167 0.044818 0.064790 0.053203 0.307471 0.101287 0.009240 0.041631 0.136654 0.101151 0.034413 0.030815 0.204980 0.072438 0.341634 +0.000998 +0.056845 0.011524 0.099093 0.056529 0.039970 0.137620 0.033009 0.052597 0.049979 0.044639 0.050365 0.104334 0.007374 0.052369 0.067414 0.062374 0.032620 0.057418 0.037108 0.035460 0.000659 0.170817 0.070412 0.028639 0.020347 0.170817 0.100529 0.031665 0.036079 0.204980 0.057590 0.239144 +0.097673 +0.066309 0.022683 0.085070 0.046556 0.021964 0.381258 0.042709 0.008709 0.064931 0.071392 0.030755 0.215699 0.065888 0.020517 0.059761 0.046059 0.034027 0.441740 0.055637 0.038559 0.029609 0.204980 0.067904 0.007349 0.049356 0.170817 0.059900 0.017459 0.050575 0.239144 0.091498 0.273307 +0.602638 +0.066923 0.041053 0.062807 0.106160 0.029051 0.042195 0.007319 0.012015 0.043737 0.040815 0.025148 0.432087 0.011999 0.046819 0.054194 0.041938 0.039052 0.066171 0.044908 0.055791 0.061411 0.136654 0.079405 0.022503 0.042323 0.239144 0.074538 0.021307 0.037934 0.273307 0.082474 0.307471 +0.147229 +0.037010 0.048949 0.065949 0.059740 0.028678 0.073740 0.060207 0.027995 0.079399 0.119004 0.031872 0.121594 0.067984 0.054450 0.114160 0.053369 0.042197 0.302484 0.042717 0.025358 0.029025 0.136654 0.094993 0.022946 0.054227 0.204980 0.064115 0.008897 0.065647 0.239144 0.080309 0.341634 +0.002327 +0.001179 0.017731 0.091608 0.083148 0.020853 0.066162 0.060021 0.058817 0.114988 0.062119 0.043473 0.112173 0.049622 0.008350 0.072272 0.120789 0.045332 0.375264 0.040412 0.067020 0.051971 0.170817 0.097429 0.001573 0.002697 0.239144 0.065614 0.004849 0.027304 0.170817 0.084553 0.273307 +0.230854 +0.030889 0.052726 0.053668 0.044186 0.043740 0.056713 0.058469 0.063522 0.067231 0.061209 0.027355 0.082792 0.013759 0.057509 0.051246 0.047239 0.050586 0.274562 0.055320 0.017620 0.048788 0.102490 0.067929 0.046536 0.000916 0.102490 0.064360 0.028497 0.059775 0.170817 0.076820 0.273307 +0 +0.025334 0.032320 0.112513 0.142498 0.028889 0.085530 0.004667 0.018726 0.040072 0.068952 0.035676 0.059771 0.038598 0.025151 0.043913 0.071578 0.022148 0.116227 0.049194 0.007170 0.068307 0.239144 0.091652 0.051215 0.061811 0.204980 0.099869 0.017862 0.053362 0.239144 0.051597 0.341634 +0 +0.044127 0.025406 0.048080 0.140253 0.039741 0.128757 0.009925 0.057121 0.167968 0.084242 0.031283 0.111080 0.024355 0.018445 0.090899 0.071185 0.039403 0.105957 0.047484 0.008049 0.021488 0.170817 0.057668 0.017581 0.017227 0.273307 0.057630 0.045326 0.063924 0.204980 0.081095 0.307471 +0.002156 +0.048591 0.039796 0.133922 0.038326 0.018589 0.159733 0.005159 0.002991 0.045772 0.054177 0.033165 0.086463 0.052829 0.048218 0.045418 0.064831 0.039131 0.225415 0.058535 0.063756 0.038295 0.273307 0.071072 0.048017 0.034940 0.273307 0.074887 0.063818 0.005409 0.136654 0.097714 0.341634 +0.046298 +0.053515 0.024100 0.085086 0.083133 0.021700 0.146910 0.052259 0.028974 0.044552 0.050147 0.047568 0.037470 0.050788 0.062175 0.056995 0.054749 0.042334 0.081405 0.057238 0.061376 0.062723 0.204980 0.087071 0.063224 0.003468 0.102490 0.087263 0.021084 0.032550 0.273307 0.102040 0.341634 +0 +0.004554 0.011967 0.052610 0.040267 0.034976 0.099092 0.055296 0.006596 0.123651 0.046180 0.032928 0.072354 0.051757 0.015914 0.048052 0.042380 0.026655 0.275211 0.063145 0.034950 0.030798 0.136654 0.096757 0.006726 0.058384 0.102490 0.074132 0.067570 0.060117 0.204980 0.067630 0.239144 +0.253326 +0.047252 0.004643 0.064547 0.080749 0.048041 0.191725 0.042230 0.015119 0.041698 0.081950 0.037992 0.170211 0.000667 0.035439 0.035791 0.180576 0.039993 0.181374 0.049830 0.007929 0.022942 0.170817 0.073652 0.028768 0.017697 0.204980 0.067443 0.042786 0.050293 0.136654 0.092904 0.273307 +0.018581 +0.020902 0.003640 0.045984 0.089482 0.035789 0.050827 0.009081 0.041307 0.069085 0.045216 0.019105 0.111326 0.053757 0.011928 0.040882 0.035257 0.042179 0.131457 0.047330 0.062539 0.053276 0.170817 0.084137 0.039664 0.057597 0.136654 0.074189 0.008179 0.025029 0.239144 0.098191 0.341634 +0.001262 +0.034151 0.044318 0.050508 0.036811 0.039243 0.064153 0.037832 0.014738 0.107875 0.034302 0.028279 0.065614 0.044524 0.066388 0.079400 0.134166 0.034147 0.222724 0.039812 0.026220 0.047151 0.136654 0.067215 0.041147 0.017782 0.170817 0.070690 0.032855 0.065294 0.170817 0.093423 0.204980 +0.148733 +0.034981 0.046896 0.054964 0.046561 0.019972 0.109197 0.001666 0.053980 0.059870 0.132689 0.037268 0.114493 0.047543 0.068277 0.062568 0.045911 0.025491 0.135808 0.042167 0.006010 0.037813 0.239144 0.075518 0.020387 0.039336 0.170817 0.088437 0.049273 0.032885 0.102490 0.089655 0.273307 +0.034808 +0.032376 0.024737 0.074983 0.095960 0.025136 0.396626 0.017406 0.045780 0.037598 0.045887 0.031715 0.079758 0.065246 0.016148 0.133006 0.046445 0.032411 0.142013 0.052836 0.004855 0.023680 0.170817 0.090129 0.009970 0.014853 0.136654 0.054835 0.053950 0.033993 0.204980 0.085121 0.239144 +0.110667 +0.014979 0.049867 0.066219 0.043178 0.024527 0.041199 0.053872 0.038431 0.080182 0.037974 0.032223 0.080367 0.029795 0.039401 0.048251 0.061960 0.040215 0.077316 0.052814 0.021655 0.054609 0.136654 0.066420 0.043216 0.061222 0.136654 0.082324 0.003059 0.055076 0.102490 0.101802 0.204980 +0 +0.012222 0.002175 0.097862 0.163793 0.042231 0.155481 0.035831 0.053600 0.049528 0.049583 0.043445 0.063535 0.004242 0.048600 0.112850 0.057724 0.040435 0.201186 0.058283 0.029522 0.001190 0.136654 0.063431 0.007707 0.052873 0.273307 0.073081 0.057250 0.046401 0.273307 0.101474 0.341634 +0.202299 +0.046400 0.013077 0.057834 0.053983 0.021289 0.051554 0.045662 0.012684 0.037308 0.064763 0.049268 0.053949 0.054365 0.066813 0.048179 0.053296 0.037755 0.104169 0.045075 0.026713 0.011038 0.102490 0.101744 0.056364 0.058717 0.102490 0.084065 0.003955 0.051565 0.204980 0.080398 0.307471 +0 +0.000481 0.001215 0.182039 0.051499 0.050077 0.163242 0.037155 0.056496 0.097297 0.034988 0.033445 0.205688 0.056879 0.008594 0.039714 0.058347 0.040316 0.498777 0.054446 0.003134 0.006872 0.102490 0.096717 0.022866 0.013002 0.102490 0.093320 0.037126 0.007416 0.170817 0.101420 0.341634 +0.119470 +0.052136 0.024805 0.055075 0.061283 0.036497 0.122032 0.014449 0.020569 0.049442 0.038121 0.023952 0.040355 0.053273 0.058632 0.036190 0.052591 0.018978 0.042000 0.051367 0.066923 0.053708 0.239144 0.064687 0.009296 0.067843 0.136654 0.083434 0.055943 0.058428 0.204980 0.069866 0.307471 +0 +0.061016 0.043776 0.095436 0.045299 0.032204 0.121520 0.002543 0.005963 0.144904 0.055677 0.036689 0.294116 0.020978 0.045424 0.061360 0.050570 0.030423 0.322868 0.041480 0.027074 0.052529 0.102490 0.054792 0.026600 0.022256 0.136654 0.092333 0.027273 0.012986 0.170817 0.090446 0.239144 +0.227434 +0.052236 0.007173 0.064787 0.133737 0.026620 0.042618 0.045773 0.014950 0.054874 0.039497 0.032774 0.158963 0.022128 0.014845 0.034541 0.052308 0.025255 0.124529 0.059368 0.042921 0.022987 0.170817 0.101564 0.019639 0.023005 0.204980 0.092021 0.021618 0.016858 0.136654 0.098789 0.239144 +0.014751 +0.020514 0.014241 0.068943 0.151936 0.050781 0.200493 0.057456 0.002666 0.042160 0.064058 0.042625 0.151625 0.047369 0.006742 0.044540 0.080407 0.048349 0.224898 0.060634 0.015783 0.039590 0.273307 0.071788 0.033877 0.049635 0.239144 0.057898 0.004246 0.042986 0.102490 0.061565 0.341634 +0.025902 +0.043595 0.022151 0.059370 0.060917 0.046158 0.193612 0.045634 0.041820 0.082932 0.082427 0.035529 0.119118 0.014391 0.051547 0.059394 0.090056 0.048504 0.246939 0.059755 0.014230 0.014367 0.102490 0.087596 0.067487 0.061898 0.102490 0.057549 0.028794 0.012269 0.136654 0.076249 0.239144 +0.012901 +0.061059 0.011373 0.053627 0.043221 0.033371 0.142768 0.011533 0.008412 0.043259 0.057914 0.035242 0.065412 0.031491 0.024140 0.043987 0.049914 0.042074 0.103390 0.036340 0.023649 0.021318 0.136654 0.093988 0.034173 0.038260 0.136654 0.091120 0.020971 0.007798 0.136654 0.063844 0.341634 +0 +0.005274 0.048359 0.086101 0.086748 0.024760 0.046528 0.056138 0.056061 0.064549 0.076425 0.042201 0.125551 0.012628 0.033360 0.060531 0.060680 0.018369 0.064083 0.050340 0.041290 0.029809 0.102490 0.056021 0.011788 0.014235 0.136654 0.053936 0.006267 0.026088 0.136654 0.095202 0.204980 +0.228059 +0.061179 0.065589 0.132406 0.049374 0.044277 0.076666 0.000211 0.006317 0.153041 0.122170 0.019747 0.125956 0.002841 0.052342 0.051804 0.081743 0.043678 0.036854 0.055509 0.008350 0.042638 0.102490 0.076821 0.007364 0.058475 0.136654 0.065050 0.008220 0.052192 0.102490 0.098652 0.239144 +0 +0.008133 0.004387 0.038264 0.086545 0.038391 0.078413 0.023412 0.036922 0.039516 0.102918 0.036069 0.118527 0.009053 0.008519 0.059948 0.069935 0.020788 0.057577 0.053497 0.032996 0.012697 0.239144 0.076214 0.010843 0.058438 0.273307 0.059634 0.035319 0.065038 0.102490 0.082215 0.341634 +0.001118 +0.027031 0.004435 0.073455 0.055867 0.025046 0.112944 0.056255 0.048786 0.056764 0.076104 0.029799 0.148538 0.029712 0.029067 0.052896 0.050035 0.022889 0.123957 0.060302 0.020966 0.035012 0.136654 0.092285 0.018558 0.041871 0.239144 0.093201 0.003255 0.067811 0.170817 0.061484 0.307471 +0.031873 +0.055956 0.051103 0.153361 0.041416 0.032121 0.573708 0.064368 0.027282 0.038149 0.041622 0.051027 0.040190 0.009266 0.053436 0.067147 0.045393 0.034175 0.043049 0.063180 0.041407 0.033567 0.204980 0.091365 0.004392 0.002760 0.204980 0.093282 0.021571 0.008390 0.170817 0.080379 0.239144 +0.352889 +0.005006 0.049758 0.066157 0.040876 0.027705 0.510173 0.068245 0.012702 0.069486 0.107842 0.026717 0.055228 0.039873 0.052188 0.168862 0.056336 0.041946 0.068834 0.060597 0.004372 0.009492 0.102490 0.091958 0.019291 0.037915 0.136654 0.095970 0.056196 0.061351 0.136654 0.088787 0.204980 +0.083329 +0.034082 0.045301 0.057001 0.165632 0.030074 0.157956 0.001085 0.064927 0.081772 0.045814 0.030512 0.097533 0.060501 0.055472 0.035111 0.058406 0.037169 0.049065 0.047564 0.067498 0.028436 0.239144 0.091675 0.003567 0.043841 0.239144 0.084687 0.016630 0.030206 0.239144 0.062844 0.273307 +0.124962 +0.039812 0.031572 0.038806 0.048298 0.042444 0.059762 0.062743 0.040955 0.084627 0.242983 0.032277 0.112886 0.027742 0.042834 0.037140 0.038125 0.019917 0.056829 0.041959 0.063569 0.057216 0.102490 0.075896 0.043165 0.043131 0.136654 0.062565 0.024468 0.021057 0.102490 0.090335 0.204980 +0 +0.026816 0.019350 0.036326 0.069035 0.045709 0.188878 0.022956 0.026423 0.057747 0.076346 0.036239 0.205142 0.041338 0.061442 0.046869 0.125557 0.038657 0.295594 0.049592 0.057523 0.039390 0.136654 0.079393 0.054901 0.017911 0.102490 0.069219 0.063940 0.039068 0.136654 0.058989 0.307471 +0.006796 +0.026375 0.048658 0.084288 0.043202 0.021328 0.133088 0.061970 0.008482 0.052570 0.185401 0.042219 0.118635 0.010453 0.034819 0.067084 0.058994 0.022918 0.330783 0.060957 0.011088 0.030951 0.170817 0.064295 0.037439 0.013020 0.170817 0.072996 0.046886 0.049795 0.102490 0.059260 0.204980 +0.012866 +0.027486 0.064269 0.046459 0.035663 0.041001 0.218560 0.017907 0.041145 0.077853 0.055744 0.034759 0.070401 0.019794 0.048405 0.051447 0.118289 0.039019 0.067121 0.048174 0.006512 0.023810 0.136654 0.078141 0.052471 0.028462 0.102490 0.092841 0.066685 0.012815 0.136654 0.090276 0.204980 +0.014268 +0.034342 0.014819 0.258584 0.047579 0.043543 0.110144 0.011638 0.051746 0.037830 0.136396 0.025196 0.123353 0.044033 0.009269 0.054345 0.051492 0.029748 0.167739 0.055185 0.030395 0.052759 0.204980 0.055284 0.035393 0.054742 0.170817 0.100592 0.019269 0.039242 0.136654 0.069925 0.307471 +0.230789 +0.062241 0.063830 0.049282 0.054149 0.034542 0.203032 0.044362 0.024626 0.048629 0.039379 0.017852 0.160309 0.051852 0.024236 0.039432 0.062786 0.023003 0.092552 0.058242 0.007000 0.066800 0.170817 0.093937 0.002596 0.058777 0.273307 0.085748 0.040025 0.040270 0.102490 0.061661 0.307471 +0.113703 +0.008408 0.062779 0.095657 0.054445 0.048522 0.040480 0.062105 0.036354 0.141757 0.039867 0.021120 0.059163 0.063990 0.022820 0.079060 0.034247 0.045431 0.065413 0.062909 0.012618 0.033576 0.102490 0.085983 0.045500 0.024392 0.170817 0.062548 0.022986 0.006963 0.102490 0.054180 0.239144 +0 +0.008489 0.032993 0.067050 0.076432 0.022173 0.036137 0.040564 0.016759 0.042413 0.035830 0.025713 0.155821 0.018975 0.006759 0.052641 0.057649 0.048206 0.109359 0.051316 0.016558 0.037589 0.102490 0.100772 0.011537 0.056903 0.239144 0.065817 0.053924 0.014382 0.102490 0.096539 0.273307 +0.007342 +0.014743 0.065461 0.052764 0.040699 0.041470 0.064952 0.040731 0.046692 0.086944 0.046207 0.018247 0.152498 0.062895 0.065023 0.057418 0.040054 0.043736 0.197777 0.059446 0.036289 0.061741 0.136654 0.062354 0.049196 0.020996 0.102490 0.062652 0.061954 0.025505 0.204980 0.064018 0.273307 +0.046973 +0.008263 0.032446 0.047866 0.043942 0.026436 0.065081 0.017683 0.019521 0.043041 0.049149 0.041989 0.330607 0.019086 0.028273 0.166962 0.046938 0.020623 0.189434 0.058607 0.009439 0.001203 0.102490 0.061825 0.016791 0.068194 0.170817 0.078329 0.004119 0.025638 0.102490 0.078481 0.239144 +0.374151 +0.040789 0.044726 0.036873 0.059450 0.049494 0.035657 0.037893 0.008309 0.056545 0.047832 0.018117 0.091144 0.008741 0.062422 0.068285 0.034465 0.029209 0.046550 0.064761 0.015092 0.042387 0.170817 0.067357 0.014182 0.063770 0.204980 0.089584 0.060657 0.022910 0.170817 0.065875 0.239144 +0 +0.025979 0.065133 0.040718 0.043471 0.041802 0.270195 0.019711 0.039738 0.076940 0.104340 0.024492 0.102379 0.052196 0.032132 0.080672 0.041706 0.046939 0.055280 0.049241 0.068079 0.046959 0.239144 0.093396 0.066325 0.008077 0.307471 0.080340 0.055178 0.065788 0.102490 0.071991 0.341634 +0.034188 +0.041600 0.035104 0.143358 0.039356 0.019961 0.070909 0.052886 0.000952 0.034644 0.038502 0.031318 0.208174 0.047421 0.009034 0.041174 0.087181 0.030866 0.395046 0.046734 0.022491 0.057667 0.136654 0.062500 0.010651 0.032313 0.170817 0.059293 0.048939 0.037249 0.273307 0.094867 0.341634 +0.288615 +0.055415 0.047700 0.072451 0.052474 0.050319 0.041730 0.021137 0.053999 0.076342 0.050546 0.021364 0.271902 0.001929 0.001357 0.089313 0.064198 0.050668 0.070044 0.059194 0.032172 0.059531 0.136654 0.091626 0.001671 0.012482 0.136654 0.099518 0.037672 0.037117 0.102490 0.060450 0.204980 +0.020766 +0.018713 0.000518 0.134672 0.054407 0.024756 0.286812 0.039829 0.018399 0.054282 0.131296 0.030222 0.347554 0.014382 0.057346 0.084170 0.060956 0.036849 0.143756 0.060155 0.048691 0.037473 0.136654 0.094204 0.041899 0.042101 0.102490 0.058112 0.052113 0.002308 0.307471 0.074768 0.341634 +0.432846 +0.037757 0.033605 0.113169 0.146806 0.046210 0.298842 0.044641 0.005527 0.056982 0.068649 0.031102 0.049643 0.028109 0.009364 0.106965 0.090490 0.019733 0.062994 0.056046 0.017529 0.026444 0.204980 0.077921 0.066122 0.006478 0.102490 0.053126 0.031102 0.002130 0.102490 0.065022 0.239144 +0.001000 +0.002081 0.013522 0.043240 0.037353 0.050467 0.061809 0.067527 0.017433 0.048040 0.074473 0.038023 0.134620 0.033947 0.042472 0.068204 0.044475 0.030682 0.263532 0.062544 0.060804 0.064449 0.170817 0.081287 0.058780 0.019753 0.136654 0.069121 0.062906 0.000961 0.204980 0.053455 0.239144 +0.074810 +0.053114 0.025794 0.051210 0.055193 0.022522 0.073775 0.019525 0.015744 0.060369 0.174182 0.028532 0.069094 0.065096 0.035475 0.043894 0.050293 0.038433 0.387483 0.041775 0.038732 0.012969 0.307471 0.071101 0.057954 0.015841 0.273307 0.097518 0.055277 0.007818 0.204980 0.074619 0.341634 +0.011666 +0.062897 0.029844 0.134315 0.148684 0.029142 0.050573 0.040367 0.062921 0.081698 0.080650 0.044275 0.151774 0.049198 0.019869 0.063661 0.046373 0.037985 0.068819 0.046882 0.065174 0.039093 0.102490 0.061114 0.029619 0.000490 0.239144 0.063181 0.041442 0.009179 0.307471 0.075927 0.341634 +0.048619 +0.051072 0.042864 0.078957 0.053047 0.030764 0.034487 0.037643 0.012341 0.061284 0.036327 0.041010 0.089034 0.067068 0.057602 0.089880 0.050154 0.040000 0.086409 0.039278 0.048899 0.026613 0.170817 0.052305 0.065452 0.041027 0.307471 0.072916 0.031708 0.038007 0.273307 0.065816 0.341634 +0 +0.044628 0.004228 0.099687 0.058071 0.034569 0.086921 0.026491 0.036806 0.105271 0.071684 0.040755 0.325649 0.043566 0.044998 0.107211 0.034425 0.046921 0.249703 0.043820 0.004801 0.032292 0.102490 0.059908 0.052839 0.006333 0.136654 0.075359 0.012274 0.040117 0.136654 0.065715 0.204980 +0.480761 +0.035694 0.060446 0.038703 0.064783 0.048480 0.092920 0.022739 0.008801 0.086010 0.077506 0.046382 0.072234 0.027458 0.033191 0.037832 0.146715 0.028696 0.128448 0.038106 0.028597 0.052296 0.102490 0.071489 0.042484 0.002092 0.239144 0.080619 0.020206 0.027592 0.239144 0.101272 0.273307 +0.005198 +0.038388 0.067424 0.052254 0.051363 0.029261 0.157593 0.001680 0.046898 0.038560 0.049276 0.035537 0.136188 0.002732 0.010836 0.091026 0.133669 0.019753 0.057738 0.051313 0.052384 0.017878 0.102490 0.057902 0.031979 0.029249 0.136654 0.079401 0.057159 0.040340 0.204980 0.083665 0.239144 +0.053414 +0.014477 0.063781 0.075084 0.151735 0.021191 0.111880 0.067974 0.054149 0.124979 0.041970 0.023890 0.089344 0.016191 0.024708 0.088953 0.035809 0.039082 0.050360 0.040847 0.035352 0.026707 0.136654 0.095510 0.019873 0.061468 0.102490 0.052114 0.036290 0.057376 0.239144 0.080819 0.273307 +0 +0.053648 0.009189 0.128034 0.053450 0.018842 0.034596 0.033422 0.004130 0.116594 0.128059 0.034087 0.250625 0.041683 0.058797 0.061394 0.040691 0.018632 0.047356 0.042898 0.025702 0.031600 0.136654 0.070548 0.013165 0.061688 0.136654 0.055803 0.004730 0.023867 0.102490 0.059251 0.239144 +0.030718 +0.037402 0.010883 0.088786 0.099040 0.026852 0.237069 0.043101 0.058116 0.051030 0.091723 0.041849 0.093253 0.024202 0.012929 0.051564 0.040695 0.041137 0.226236 0.050900 0.016631 0.054591 0.273307 0.099631 0.028586 0.045753 0.136654 0.070464 0.024912 0.064748 0.102490 0.082234 0.307471 +0.307669 +0.008519 0.006260 0.036480 0.042676 0.026577 0.190675 0.066731 0.049164 0.040942 0.077688 0.023065 0.043107 0.050654 0.056422 0.116946 0.050486 0.036463 0.546906 0.056931 0.033342 0.060841 0.102490 0.054913 0.062763 0.003008 0.102490 0.061799 0.002972 0.007846 0.136654 0.070192 0.204980 +0.524810 +0.030835 0.026585 0.043275 0.039225 0.037700 0.062978 0.030611 0.034477 0.044499 0.063435 0.020016 0.092676 0.060787 0.010966 0.048720 0.074334 0.029069 0.176790 0.061429 0.000096 0.056741 0.102490 0.093751 0.039194 0.011994 0.239144 0.051371 0.023480 0.022654 0.204980 0.052419 0.307471 +0.009489 +0.025093 0.048069 0.040459 0.120683 0.048825 0.132343 0.023620 0.063797 0.041326 0.045511 0.033817 0.254360 0.066425 0.007271 0.038098 0.081071 0.051152 0.047756 0.040667 0.027949 0.000939 0.136654 0.075200 0.043974 0.065483 0.102490 0.058862 0.026171 0.053302 0.102490 0.081894 0.204980 +0.020090 +0.011236 0.030706 0.048054 0.055860 0.041346 0.057799 0.043706 0.001511 0.064123 0.036698 0.024353 0.070376 0.064204 0.047945 0.057471 0.048425 0.045689 0.053682 0.036380 0.004096 0.022256 0.204980 0.073337 0.055060 0.044549 0.170817 0.093939 0.053442 0.020852 0.170817 0.094190 0.273307 +0 +0.029326 0.036550 0.075031 0.046669 0.045630 0.074210 0.041194 0.040305 0.134411 0.106048 0.026532 0.093380 0.010588 0.018906 0.083435 0.114685 0.038817 0.281947 0.041869 0.020472 0.012415 0.170817 0.102012 0.027804 0.049642 0.136654 0.062152 0.012969 0.037095 0.273307 0.087626 0.341634 +0.013210 +0.051145 0.050357 0.042308 0.111035 0.041678 0.161107 0.015900 0.027984 0.062028 0.055824 0.022753 0.047855 0.038139 0.004213 0.072524 0.051725 0.044617 0.100240 0.057769 0.017381 0.022184 0.239144 0.066258 0.036694 0.046043 0.102490 0.054956 0.033200 0.067107 0.204980 0.053628 0.273307 +0.017104 +0.011375 0.067075 0.107609 0.146636 0.026383 0.339924 0.045995 0.025665 0.102648 0.034993 0.034875 0.454277 0.065330 0.068317 0.061425 0.044084 0.044570 0.063682 0.044128 0.030151 0.017262 0.170817 0.056673 0.050748 0.060721 0.102490 0.083516 0.052733 0.028677 0.170817 0.070085 0.204980 +0.608972 +0.028577 0.058977 0.054339 0.035228 0.027043 0.244371 0.035533 0.035901 0.060133 0.076278 0.044687 0.068889 0.041752 0.003772 0.072917 0.152291 0.025324 0.153916 0.061990 0.035444 0.041374 0.102490 0.102339 0.021809 0.058461 0.102490 0.055567 0.060386 0.056857 0.102490 0.057428 0.204980 +0.004975 +0.033396 0.028061 0.086175 0.035345 0.023539 0.048188 0.042815 0.026620 0.085021 0.036662 0.035272 0.265588 0.041582 0.021932 0.063725 0.082292 0.026091 0.094961 0.047053 0.055317 0.023193 0.170817 0.096205 0.003363 0.054057 0.102490 0.097219 0.015757 0.054404 0.170817 0.081504 0.273307 +0.003346 +0.044962 0.003503 0.081232 0.068065 0.049107 0.070561 0.042710 0.040912 0.059823 0.046285 0.040321 0.068928 0.050364 0.020366 0.048337 0.080607 0.050676 0.034389 0.061853 0.065442 0.035969 0.204980 0.055999 0.038358 0.005317 0.170817 0.076624 0.020357 0.040760 0.273307 0.096895 0.307471 +0 +0.045709 0.045146 0.109818 0.037278 0.050007 0.073964 0.042210 0.054858 0.056740 0.092140 0.040207 0.110169 0.043783 0.036697 0.050519 0.138124 0.042816 0.349483 0.056167 0.031487 0.032342 0.170817 0.069644 0.050814 0.047880 0.102490 0.098482 0.065014 0.068076 0.102490 0.059953 0.307471 +0 +0.034924 0.054430 0.153530 0.070775 0.049024 0.034812 0.021929 0.012057 0.046900 0.186254 0.033631 0.062482 0.023529 0.014507 0.060110 0.071155 0.024847 0.158748 0.053825 0.029325 0.039172 0.204980 0.095652 0.052593 0.014799 0.204980 0.094873 0.035093 0.065064 0.170817 0.094175 0.341634 +0.004463 +0.002272 0.060501 0.044132 0.039779 0.033907 0.139535 0.015887 0.035352 0.069607 0.048380 0.045869 0.158367 0.049495 0.041655 0.051181 0.074247 0.029053 0.088432 0.046646 0.005279 0.033022 0.136654 0.070258 0.053766 0.025188 0.102490 0.052100 0.052998 0.026805 0.102490 0.058075 0.273307 +0.069960 +0.001594 0.050045 0.037668 0.047212 0.042781 0.089217 0.049875 0.040106 0.055493 0.074099 0.046811 0.105380 0.015501 0.020041 0.043141 0.048172 0.021239 0.071787 0.047401 0.058796 0.034584 0.136654 0.060112 0.065444 0.005198 0.170817 0.091091 0.033962 0.015700 0.273307 0.062184 0.307471 +0.006499 +0.028749 0.067443 0.050334 0.034652 0.040120 0.072037 0.015878 0.025266 0.042560 0.056383 0.045591 0.114008 0.007842 0.038611 0.036234 0.045369 0.026609 0.102999 0.047304 0.023140 0.033296 0.204980 0.069181 0.000424 0.031908 0.136654 0.055785 0.028244 0.063501 0.102490 0.084369 0.239144 +0.006477 +0.058242 0.040079 0.099947 0.128202 0.030505 0.061603 0.065605 0.062262 0.037125 0.078213 0.018214 0.049694 0.037900 0.028028 0.035071 0.061699 0.042825 0.219227 0.039029 0.061833 0.000623 0.170817 0.082456 0.003053 0.011945 0.170817 0.065823 0.049764 0.039316 0.102490 0.070728 0.204980 +0.054265 +0.057370 0.054328 0.042307 0.040843 0.042933 0.074470 0.010005 0.017054 0.053092 0.089076 0.040087 0.057433 0.019760 0.045482 0.057546 0.040183 0.017566 0.113951 0.065328 0.033928 0.014574 0.239144 0.057483 0.018089 0.041953 0.136654 0.051799 0.044044 0.044422 0.170817 0.065275 0.273307 +0.007436 +0.034443 0.016385 0.170858 0.096960 0.033291 0.157933 0.054445 0.067102 0.109327 0.042002 0.020266 0.040785 0.058653 0.038869 0.037561 0.050457 0.026872 0.052428 0.041939 0.038911 0.064745 0.136654 0.072217 0.056176 0.030496 0.239144 0.095861 0.023615 0.022904 0.273307 0.099505 0.307471 +0 +0.056274 0.059305 0.036400 0.046808 0.043327 0.154602 0.060951 0.054898 0.038755 0.043074 0.037677 0.078586 0.058140 0.038292 0.087162 0.253105 0.047903 0.050756 0.057888 0.041456 0.006729 0.102490 0.067828 0.044658 0.064856 0.102490 0.099504 0.014195 0.031907 0.170817 0.089103 0.239144 +0.009630 +0.035141 0.052299 0.071824 0.089044 0.036460 0.046693 0.000720 0.046674 0.041468 0.131681 0.036894 0.240042 0.031009 0.000755 0.057582 0.040139 0.050624 0.047223 0.064479 0.042378 0.013232 0.102490 0.097782 0.021190 0.046416 0.170817 0.101341 0.034003 0.049651 0.170817 0.066488 0.239144 +0.043306 +0.006716 0.031263 0.045681 0.105578 0.026260 0.314674 0.029049 0.012448 0.039406 0.045501 0.050497 0.344560 0.059520 0.025844 0.034907 0.063372 0.040937 0.052505 0.057194 0.010528 0.040128 0.273307 0.088701 0.030489 0.062986 0.273307 0.098943 0.057713 0.001197 0.170817 0.051713 0.307471 +0.599734 +0.029365 0.033748 0.041980 0.080927 0.047430 0.191681 0.057351 0.016061 0.051145 0.066655 0.042663 0.153297 0.023245 0.057670 0.055825 0.050150 0.031747 0.084496 0.048433 0.042587 0.034242 0.136654 0.098883 0.046481 0.051724 0.136654 0.061867 0.003898 0.060463 0.204980 0.055643 0.273307 +0.004953 +0.041760 0.047811 0.081596 0.151577 0.021871 0.195946 0.022932 0.044985 0.036893 0.036658 0.037740 0.180991 0.031391 0.042797 0.061880 0.049418 0.024054 0.106578 0.065019 0.040655 0.014157 0.170817 0.055550 0.048499 0.040325 0.204980 0.074514 0.026833 0.036939 0.204980 0.094461 0.239144 +0.252704 +0.002863 0.037083 0.037431 0.157257 0.018125 0.082791 0.000550 0.046154 0.101549 0.034813 0.049801 0.071632 0.039675 0.002922 0.059518 0.045895 0.041150 0.036356 0.041293 0.027688 0.019498 0.204980 0.075527 0.004800 0.066614 0.170817 0.089556 0.030989 0.064266 0.170817 0.074573 0.239144 +0 +0.063298 0.065230 0.045873 0.109925 0.038798 0.244756 0.060935 0.060457 0.064692 0.065198 0.036002 0.056699 0.061786 0.036376 0.080505 0.140813 0.017613 0.316397 0.040460 0.054630 0.063551 0.170817 0.086702 0.017642 0.040659 0.102490 0.086640 0.020764 0.049176 0.102490 0.098737 0.341634 +0.196800 +0.008169 0.059806 0.083906 0.054785 0.017641 0.067460 0.057735 0.024308 0.101841 0.070678 0.032212 0.191358 0.066833 0.037420 0.042770 0.092305 0.020539 0.051515 0.046404 0.046181 0.047001 0.170817 0.081962 0.023024 0.062128 0.102490 0.081262 0.063911 0.006359 0.204980 0.054521 0.273307 +0.024381 +0.032344 0.030060 0.053344 0.065012 0.045465 0.047585 0.034001 0.053657 0.034330 0.052102 0.050193 0.159822 0.034356 0.028275 0.039345 0.056997 0.043544 0.115629 0.057763 0.064112 0.018640 0.102490 0.084225 0.025868 0.051760 0.136654 0.072922 0.029933 0.057245 0.136654 0.078633 0.204980 +0.045478 +0.026279 0.045143 0.167423 0.054359 0.023270 0.041468 0.059503 0.062645 0.035375 0.063843 0.045266 0.077062 0.002099 0.061680 0.038004 0.131586 0.027724 0.035969 0.055072 0.040213 0.002857 0.102490 0.055532 0.067356 0.019417 0.170817 0.057992 0.025132 0.016049 0.136654 0.101068 0.273307 +0 +0.064908 0.023632 0.050950 0.066797 0.039574 0.431362 0.058250 0.009746 0.037611 0.036854 0.025825 0.038650 0.034576 0.006679 0.215928 0.068799 0.050641 0.063643 0.048042 0.028899 0.061119 0.239144 0.081243 0.006602 0.066555 0.170817 0.081983 0.004627 0.025600 0.204980 0.075126 0.307471 +0.365126 +0.025755 0.026400 0.099400 0.058926 0.041239 0.101861 0.037737 0.050993 0.034990 0.104005 0.040089 0.035342 0.052282 0.054733 0.053444 0.084476 0.021350 0.053718 0.041390 0.018454 0.037940 0.136654 0.097728 0.016881 0.025600 0.102490 0.052093 0.062662 0.063605 0.102490 0.074923 0.204980 +0 +0.010596 0.014038 0.060215 0.039136 0.047493 0.133121 0.043074 0.034230 0.048390 0.127640 0.050590 0.044110 0.057182 0.007315 0.046177 0.042504 0.032307 0.265106 0.057489 0.026064 0.030540 0.239144 0.098198 0.019622 0.018932 0.102490 0.062292 0.061792 0.013666 0.204980 0.061555 0.307471 +0 +0.041699 0.055951 0.098509 0.034928 0.043110 0.206388 0.066241 0.003152 0.134900 0.110796 0.048089 0.173279 0.046209 0.055729 0.049045 0.054102 0.038345 0.381192 0.047452 0.037718 0.040453 0.204980 0.051923 0.065901 0.041565 0.239144 0.072933 0.021860 0.026462 0.170817 0.078710 0.273307 +0.111729 +0.044215 0.042341 0.090809 0.036057 0.020947 0.119240 0.051422 0.019382 0.038471 0.043369 0.042180 0.089997 0.007010 0.016286 0.084691 0.040516 0.046421 0.050050 0.038527 0.040642 0.063435 0.204980 0.099098 0.019199 0.062226 0.204980 0.078389 0.058016 0.051332 0.204980 0.091273 0.273307 +0.006260 +0.040087 0.026780 0.149834 0.076986 0.020211 0.120060 0.063266 0.062948 0.051279 0.039270 0.017584 0.073969 0.057707 0.008858 0.130475 0.182339 0.030445 0.049440 0.057841 0.063154 0.060587 0.136654 0.084806 0.005216 0.006353 0.102490 0.078234 0.053961 0.044687 0.136654 0.092159 0.204980 +0.045320 +0.014206 0.009199 0.061734 0.042481 0.042635 0.098558 0.051980 0.029740 0.068270 0.052439 0.034200 0.148363 0.041215 0.021011 0.043171 0.059679 0.040448 0.214059 0.060314 0.052805 0.034349 0.170817 0.056510 0.034867 0.036503 0.136654 0.098075 0.021820 0.035525 0.102490 0.074689 0.204980 +0.057911 +0.037692 0.015747 0.042797 0.083026 0.021317 0.035457 0.013640 0.048686 0.074045 0.059994 0.031650 0.302547 0.044175 0.008441 0.048165 0.105874 0.019807 0.061930 0.056726 0.054627 0.040382 0.170817 0.098689 0.010094 0.066448 0.136654 0.072882 0.020530 0.025143 0.102490 0.087973 0.239144 +0.047882 +0.029979 0.060018 0.044385 0.055631 0.031322 0.043569 0.015053 0.044832 0.069623 0.080283 0.043003 0.057638 0.031150 0.065971 0.039797 0.078133 0.047026 0.047481 0.053718 0.057353 0.009032 0.170817 0.070918 0.030844 0.002822 0.204980 0.089611 0.021818 0.047736 0.204980 0.062634 0.239144 +0 +0.056387 0.060353 0.064211 0.208442 0.017457 0.082207 0.002511 0.064410 0.053460 0.042130 0.039750 0.230954 0.042851 0.040450 0.103425 0.076792 0.020553 0.256801 0.040440 0.061566 0.039795 0.204980 0.058196 0.056866 0.061268 0.102490 0.067593 0.002329 0.058023 0.136654 0.078608 0.239144 +0.020675 +0.051051 0.040464 0.049782 0.155769 0.050331 0.041656 0.018947 0.042242 0.054718 0.042833 0.036869 0.049859 0.027454 0.051999 0.048495 0.105200 0.047682 0.449613 0.053721 0.024339 0.056414 0.239144 0.076478 0.033265 0.052013 0.102490 0.090746 0.006137 0.063552 0.204980 0.101848 0.273307 +0.192245 +0.060322 0.036117 0.035895 0.118415 0.017973 0.290051 0.002414 0.022297 0.048674 0.106836 0.026410 0.082887 0.054486 0.024843 0.040844 0.082202 0.030229 0.047696 0.046743 0.006290 0.001412 0.170817 0.083891 0.016846 0.017624 0.136654 0.070114 0.022334 0.044401 0.102490 0.090580 0.204980 +0.025126 +0.003961 0.028501 0.102138 0.084688 0.040632 0.135045 0.036787 0.051967 0.150354 0.042975 0.035411 0.038545 0.012699 0.032834 0.182602 0.038441 0.040858 0.099745 0.046603 0.021655 0.004027 0.136654 0.066907 0.007196 0.038079 0.239144 0.060260 0.016725 0.030214 0.170817 0.088074 0.273307 +0.033175 +0.001943 0.004510 0.037024 0.181280 0.018133 0.212785 0.031715 0.035069 0.055024 0.089137 0.028905 0.089077 0.042414 0.020902 0.067652 0.037330 0.034670 0.040392 0.050789 0.055516 0.001445 0.204980 0.082433 0.053702 0.026366 0.136654 0.089918 0.008013 0.058306 0.102490 0.073190 0.239144 +0.065894 +0.029039 0.046871 0.045354 0.137662 0.042175 0.137125 0.056538 0.012977 0.048405 0.072373 0.040538 0.078656 0.051046 0.057053 0.038226 0.085136 0.030345 0.080200 0.049897 0.023070 0.005299 0.273307 0.093336 0.019105 0.010079 0.170817 0.053189 0.048920 0.053696 0.170817 0.093248 0.307471 +0.009620 +0.066783 0.046706 0.046320 0.041990 0.048655 0.038614 0.038871 0.016012 0.077571 0.038508 0.028674 0.113151 0.010176 0.010288 0.065623 0.048105 0.026186 0.183976 0.041520 0.047838 0.001014 0.170817 0.097686 0.067833 0.067802 0.239144 0.077418 0.035599 0.006754 0.170817 0.066736 0.273307 +0.018275 +0.040572 0.052712 0.193453 0.048738 0.022474 0.050886 0.059891 0.052874 0.042317 0.121934 0.046730 0.068054 0.017021 0.046017 0.047895 0.120862 0.045777 0.137958 0.053829 0.009846 0.020043 0.102490 0.052073 0.020838 0.000480 0.170817 0.057368 0.017682 0.067380 0.136654 0.064137 0.307471 +0.007251 +0.068307 0.065363 0.077077 0.039370 0.044617 0.058910 0.048858 0.066233 0.079091 0.058268 0.036315 0.114472 0.059506 0.061045 0.038451 0.069955 0.039844 0.094115 0.046323 0.062156 0.060406 0.170817 0.089381 0.065746 0.038843 0.136654 0.085324 0.055017 0.005731 0.136654 0.096379 0.239144 +0 +0.035097 0.027725 0.292817 0.129046 0.017164 0.067903 0.031489 0.063841 0.047225 0.048954 0.038494 0.111634 0.057746 0.049503 0.038225 0.054648 0.048156 0.066003 0.064021 0.037439 0.015907 0.273307 0.080669 0.050251 0.012136 0.136654 0.089779 0.052012 0.003416 0.204980 0.051406 0.341634 +0.004581 +0.013653 0.024756 0.038759 0.197279 0.026295 0.169295 0.055855 0.001940 0.060514 0.085405 0.047399 0.092801 0.025859 0.041634 0.201811 0.086073 0.030240 0.099715 0.044784 0.053444 0.045719 0.170817 0.095529 0.030979 0.066161 0.136654 0.072886 0.001656 0.013276 0.136654 0.083968 0.204980 +0.032700 +0.061088 0.042327 0.041675 0.065453 0.043781 0.320078 0.031647 0.044309 0.148909 0.037148 0.025277 0.188744 0.058972 0.028283 0.066721 0.039524 0.028058 0.111147 0.041949 0.022782 0.002896 0.204980 0.075319 0.030010 0.032443 0.102490 0.081463 0.053818 0.062023 0.204980 0.055820 0.239144 +0.219728 +0.033399 0.001179 0.071449 0.041410 0.038068 0.238352 0.007596 0.014945 0.082105 0.059977 0.046318 0.239609 0.046900 0.041924 0.064437 0.070728 0.036483 1 0.048902 0.010502 0.027946 0.170817 0.068637 0.019822 0.053927 0.136654 0.060777 0.031179 0.054549 0.136654 0.079576 0.273307 +0.278590 +0.038240 0.061202 0.111182 0.060671 0.039303 0.508127 0.023058 0.028113 0.046971 0.148438 0.017326 0.055260 0.032558 0.013355 0.051678 0.070349 0.021763 0.066294 0.046746 0.067637 0.067981 0.239144 0.095536 0.059988 0.050352 0.273307 0.079868 0.014788 0.007864 0.102490 0.077493 0.341634 +0.010401 +0.041616 0.016454 0.100697 0.138240 0.027139 0.061345 0.065641 0.060558 0.049778 0.077868 0.046277 0.046744 0.065118 0.044322 0.041539 0.036279 0.048250 0.103562 0.061582 0.059245 0.026772 0.204980 0.053217 0.060363 0.030485 0.170817 0.063426 0.045808 0.018713 0.204980 0.079853 0.239144 +0.003308 +0.031047 0.012999 0.069421 0.125562 0.049277 0.095348 0.045164 0.044638 0.124254 0.042195 0.017276 0.090157 0.030909 0.016515 0.042457 0.054517 0.029832 0.037026 0.053221 0.038904 0.015002 0.307471 0.076482 0.038959 0.064368 0.273307 0.085458 0.060851 0.011702 0.102490 0.079586 0.341634 +0 +0.035660 0.022125 0.082086 0.055842 0.031478 0.061325 0.011483 0.028322 0.075628 0.102722 0.021322 0.136961 0.029830 0.039847 0.069875 0.050581 0.024278 0.140074 0.064519 0.049491 0.003681 0.170817 0.095616 0.020485 0.017950 0.136654 0.061199 0.061831 0.035315 0.136654 0.073974 0.273307 +0 +0.059407 0.016723 0.093104 0.065470 0.045709 0.055948 0.023195 0.032025 0.034783 0.054081 0.018156 0.081762 0.030961 0.013828 0.052291 0.104178 0.042331 0.111900 0.045136 0.025219 0.049697 0.102490 0.085729 0.060765 0.005849 0.204980 0.072957 0.055742 0.011633 0.170817 0.077703 0.239144 +0 +0.013762 0.012218 0.066126 0.045952 0.039954 0.096312 0.002463 0.033436 0.166189 0.037105 0.033855 0.344558 0.035495 0.037232 0.062223 0.094811 0.023432 0.053909 0.037594 0.024459 0.014701 0.136654 0.077045 0.032829 0.033334 0.273307 0.075560 0.012298 0.027662 0.102490 0.064043 0.341634 +0.181198 +0.025228 0.025739 0.097701 0.036498 0.049780 0.038158 0.065213 0.013154 0.104794 0.047505 0.051031 0.140572 0.054761 0.016032 0.061126 0.109034 0.042946 0.296336 0.046492 0.059164 0.061364 0.170817 0.063312 0.003616 0.050169 0.170817 0.069051 0.045819 0.066272 0.102490 0.078432 0.204980 +0.106925 +0.016177 0.024512 0.035940 0.089277 0.036751 0.200850 0.066360 0.035705 0.256375 0.052606 0.048771 0.214217 0.065114 0.020016 0.050976 0.049639 0.028352 0.043187 0.045566 0.039873 0.036050 0.136654 0.090622 0.048972 0.010664 0.136654 0.055410 0.035800 0.038115 0.102490 0.082785 0.204980 +0.017838 +0.029124 0.018755 0.047580 0.085746 0.025153 0.233074 0.038383 0.012152 0.061017 0.122381 0.037159 0.627316 0.036698 0.021620 0.058874 0.040306 0.033672 0.261501 0.062167 0.048577 0.010907 0.102490 0.071935 0.013743 0.061177 0.204980 0.083313 0.051503 0.036284 0.102490 0.094059 0.239144 +0.535596 +0.044259 0.021082 0.074218 0.071019 0.029305 0.041281 0.031881 0.047634 0.053569 0.042906 0.017869 0.067326 0.061852 0.038590 0.047736 0.188665 0.017938 0.067840 0.044108 0.011422 0.004850 0.136654 0.083451 0.020597 0.041716 0.170817 0.072269 0.023876 0.021111 0.170817 0.076772 0.273307 +0 +0.054041 0.030992 0.047142 0.060643 0.019940 0.209109 0.068068 0.054698 0.042811 0.050030 0.049258 0.051606 0.019879 0.029227 0.059719 0.049443 0.036957 0.196269 0.061355 0.061924 0.065786 0.102490 0.061680 0.058169 0.006168 0.136654 0.051478 0.007141 0.047694 0.239144 0.072622 0.341634 +0.054325 +0.063767 0.061736 0.077543 0.051417 0.035176 0.067337 0.003414 0.061186 0.039225 0.094378 0.023740 0.348958 0.008491 0.053958 0.060561 0.053072 0.040510 0.043312 0.044669 0.031344 0.010151 0.204980 0.062011 0.040754 0.046526 0.102490 0.096021 0.052753 0.060666 0.170817 0.067693 0.273307 +0.447010 +0.051432 0.023107 0.072920 0.052161 0.019357 0.136545 0.049024 0.039078 0.052323 0.057925 0.021250 0.041334 0.036915 0.046714 0.036660 0.077952 0.031859 0.047978 0.055327 0.036898 0.000272 0.170817 0.057493 0.062498 0.053949 0.136654 0.054945 0.020820 0.008809 0.136654 0.095283 0.204980 +0 +0.059434 0.046263 0.062514 0.050718 0.048453 0.057965 0.059457 0.028259 0.128017 0.052464 0.051180 0.119687 0.038908 0.004662 0.034644 0.038365 0.050644 0.058776 0.058662 0.001396 0.051653 0.136654 0.093715 0.002080 0.035102 0.170817 0.092403 0.059575 0.060251 0.102490 0.089373 0.273307 +0.004154 +0.003442 0.001260 0.045056 0.044293 0.039147 0.134465 0.064426 0.018575 0.159448 0.111764 0.031251 0.043156 0.016542 0.032965 0.059030 0.058419 0.044128 0.201645 0.042968 0.012592 0.053577 0.170817 0.082251 0.007634 0.047650 0.136654 0.086755 0.033788 0.055173 0.204980 0.079412 0.341634 +0 +0.062515 0.063872 0.109722 0.042135 0.029709 0.036921 0.039371 0.004535 0.175628 0.041864 0.020559 0.148211 0.002971 0.012164 0.046882 0.067416 0.038140 0.118954 0.057142 0.064750 0.012571 0.136654 0.082423 0.057932 0.061395 0.102490 0.084577 0.045688 0.068106 0.102490 0.071587 0.204980 +0.004422 +0.002560 0.055571 0.041186 0.059859 0.043729 0.225869 0.031805 0.065887 0.046017 0.049721 0.043743 0.064861 0.055762 0.011598 0.041491 0.056894 0.049210 0.092307 0.040464 0.061018 0.019001 0.136654 0.064668 0.052720 0.059202 0.136654 0.084667 0.017041 0.007495 0.136654 0.099155 0.204980 +0.252665 +0.043888 0.034656 0.058086 0.150384 0.048861 0.277163 0.020642 0.022286 0.097252 0.074366 0.029165 0.047033 0.036801 0.049855 0.053619 0.070458 0.037258 0.111821 0.045189 0.059869 0.045907 0.307471 0.085740 0.031389 0.041778 0.307471 0.057002 0.049302 0.012185 0.170817 0.093366 0.341634 +0.076206 +0.028457 0.062285 0.064497 0.070884 0.028903 0.199169 0.015070 0.021145 0.072489 0.043387 0.029968 0.042638 0.044377 0.033986 0.040173 0.062447 0.040947 0.101981 0.039446 0.063362 0.049239 0.136654 0.083644 0.022968 0.053905 0.102490 0.059176 0.016507 0.036320 0.136654 0.095776 0.204980 +0.104177 +0.034148 0.067015 0.111496 0.037489 0.041420 0.293838 0.059698 0.034992 0.041057 0.037181 0.040845 0.194264 0.061551 0.057007 0.084861 0.051511 0.023531 0.356024 0.052395 0.018962 0.036666 0.102490 0.089212 0.037568 0.043974 0.136654 0.064107 0.004891 0.027510 0.136654 0.070752 0.204980 +0.531226 +0.062774 0.017605 0.036222 0.052140 0.043678 0.102004 0.046245 0.021933 0.051182 0.034190 0.050506 0.046784 0.041450 0.054550 0.043921 0.059698 0.030016 0.099612 0.062680 0.029350 0.040338 0.170817 0.088538 0.036682 0.026961 0.204980 0.063533 0.032772 0.029298 0.102490 0.082196 0.273307 +0.004532 +0.036223 0.011683 0.096829 0.088982 0.047096 0.049524 0.002594 0.024007 0.067861 0.044621 0.039610 0.131667 0.026345 0.050874 0.056798 0.089671 0.029310 0.065784 0.039331 0.067460 0.060465 0.273307 0.097764 0.046285 0.064235 0.102490 0.082949 0.036681 0.064989 0.102490 0.092603 0.341634 +0.023250 +0.022126 0.040253 0.048792 0.049614 0.023661 0.360333 0.042515 0.027765 0.081252 0.043682 0.017659 0.095848 0.040327 0.059729 0.061451 0.048005 0.025985 0.079942 0.064783 0.010903 0.035748 0.102490 0.063870 0.015338 0.012269 0.170817 0.100738 0.067151 0.024897 0.170817 0.068997 0.239144 +0 +0.063602 0.033787 0.051924 0.044208 0.035941 0.171410 0.068238 0.024099 0.041644 0.039479 0.041753 0.067520 0.037235 0.041454 0.086435 0.233572 0.044034 0.060701 0.057871 0.049478 0.010172 0.170817 0.095725 0.024570 0.033044 0.170817 0.101211 0.017158 0.051883 0.170817 0.074743 0.204980 +0.138378 +0.059236 0.003409 0.076265 0.061610 0.023650 0.171623 0.045110 0.021769 0.043988 0.045092 0.040126 0.105010 0.043415 0.067178 0.041098 0.125491 0.049098 0.230741 0.047720 0.010908 0.012376 0.136654 0.076269 0.040077 0.062176 0.102490 0.055172 0.004348 0.048065 0.204980 0.054265 0.239144 +0.281303 +0.063521 0.053696 0.051018 0.041266 0.025586 0.037634 0.052367 0.051690 0.036985 0.050565 0.035674 0.068544 0.021030 0.063801 0.060451 0.078387 0.034411 0.310052 0.051790 0.001737 0.065390 0.136654 0.065909 0.056267 0.005699 0.170817 0.101905 0.016801 0.055634 0.239144 0.069342 0.307471 +0.008282 +0.066144 0.025029 0.140041 0.113715 0.018176 0.261459 0.002265 0.026377 0.058229 0.092032 0.041811 0.112833 0.029611 0.021485 0.048423 0.098633 0.019907 0.230343 0.056471 0.040861 0.012900 0.239144 0.091226 0.062057 0.015766 0.239144 0.059698 0.038155 0.042281 0.136654 0.064846 0.341634 +0.074827 +0.019380 0.003397 0.064351 0.097054 0.037178 0.047160 0.026258 0.008488 0.065393 0.044404 0.019767 0.106100 0.022639 0.008482 0.065362 0.041798 0.027787 0.106850 0.059152 0.064272 0.028784 0.170817 0.100361 0.014007 0.049119 0.239144 0.077434 0.002005 0.036533 0.204980 0.079705 0.307471 +0.001073 +0.020740 0.019587 0.045365 0.088978 0.049930 0.140769 0.000813 0.027641 0.066321 0.072032 0.020581 0.073588 0.062219 0.001095 0.039859 0.059431 0.037104 0.185757 0.063863 0.052570 0.065413 0.170817 0.070394 0.061952 0.000494 0.273307 0.054991 0.012222 0.032328 0.307471 0.076808 0.341634 +0.185794 +0.067758 0.034832 0.043983 0.082325 0.040279 0.037965 0.003950 0.034430 0.078651 0.050562 0.025419 0.213725 0.030256 0.024057 0.046204 0.103151 0.032809 0.052645 0.051605 0.062641 0.039135 0.239144 0.054621 0.044324 0.040191 0.239144 0.056931 0.051098 0.030779 0.136654 0.099044 0.341634 +0 +0.017161 0.040005 0.037172 0.045805 0.036444 0.245544 0.047922 0.017903 0.037000 0.060826 0.041734 0.086341 0.063741 0.029654 0.051879 0.035161 0.025231 0.063038 0.058139 0.029612 0.029438 0.102490 0.087501 0.004466 0.019540 0.204980 0.074201 0.035558 0.012797 0.204980 0.082031 0.307471 +0.001342 +0.020116 0.018115 0.064374 0.075667 0.035282 0.050588 0.029497 0.062151 0.052606 0.044454 0.027319 0.038857 0.036773 0.038476 0.058023 0.060448 0.028237 0.059252 0.040950 0.005063 0.061263 0.102490 0.065097 0.009322 0.001433 0.307471 0.087292 0.064401 0.039918 0.307471 0.077382 0.341634 +0 +0.004428 0.027899 0.039530 0.088515 0.042208 0.120671 0.005112 0.044065 0.043315 0.042436 0.045715 0.084024 0.054638 0.006081 0.062985 0.062194 0.038367 0.108565 0.050601 0.037077 0.013097 0.204980 0.093702 0.057981 0.006413 0.239144 0.062548 0.003986 0.034344 0.170817 0.079543 0.273307 +0.061313 +0.056932 0.066135 0.043464 0.093470 0.023426 0.129806 0.007620 0.021969 0.040070 0.047917 0.050036 0.281013 0.061314 0.051996 0.078036 0.084595 0.029626 0.124679 0.058876 0.011197 0.040983 0.239144 0.078270 0.000683 0.002535 0.273307 0.102480 0.067890 0.049148 0.204980 0.093048 0.341634 +0.390214 +0.044786 0.025045 0.035997 0.126017 0.023670 0.157750 0.014287 0.065958 0.079933 0.041661 0.029043 0.123908 0.061515 0.022597 0.040354 0.045075 0.045809 0.034505 0.055279 0.054980 0.056896 0.170817 0.083967 0.010508 0.047461 0.204980 0.090754 0.064655 0.025478 0.136654 0.073996 0.341634 +0 +0.017879 0.000331 0.048721 0.068349 0.021035 0.253657 0.026494 0.000819 0.043023 0.155465 0.017380 0.048233 0.025241 0.044536 0.071106 0.063231 0.042701 0.114617 0.057361 0.050169 0.032488 0.273307 0.091217 0.028628 0.043740 0.102490 0.051784 0.040994 0.039994 0.273307 0.098152 0.341634 +0.136475 +0.029305 0.018122 0.044894 0.070458 0.037050 0.152526 0.050337 0.051166 0.054167 0.089530 0.028434 0.178179 0.052913 0.031073 0.054364 0.049696 0.043790 0.108677 0.052437 0.060688 0.058602 0.136654 0.073212 0.046456 0.019224 0.102490 0.059001 0.066725 0.047087 0.136654 0.058689 0.239144 +0.107035 +0.026484 0.017718 0.072737 0.078270 0.049876 0.099936 0.005806 0.047250 0.052178 0.050069 0.041998 0.108815 0.036935 0.000958 0.076212 0.037496 0.039579 0.117705 0.060142 0.059510 0.047841 0.273307 0.070419 0.039658 0.041552 0.307471 0.088395 0.012797 0.022585 0.307471 0.067871 0.341634 +0.066080 +0.015451 0.045739 0.076833 0.064291 0.039694 0.103044 0.026855 0.005651 0.081572 0.080094 0.023673 0.129247 0.048285 0.027265 0.046468 0.064895 0.039169 0.259639 0.052653 0.003408 0.014989 0.204980 0.068865 0.033174 0.026233 0.239144 0.063024 0.050238 0.006320 0.102490 0.076249 0.273307 +0.166024 +0.048936 0.038381 0.064550 0.044514 0.051044 0.117656 0.036757 0.029108 0.069388 0.037874 0.045820 0.099888 0.056498 0.023990 0.045531 0.108378 0.019159 0.116624 0.051473 0.046060 0.062666 0.273307 0.064029 0.061882 0.060110 0.273307 0.085809 0.038114 0.015071 0.102490 0.059748 0.307471 +0 +0.065337 0.020726 0.037883 0.101056 0.044185 0.134352 0.059647 0.061698 0.091371 0.143960 0.043040 0.044465 0.033141 0.020012 0.045297 0.099308 0.049778 0.074114 0.050281 0.035661 0.062626 0.136654 0.099755 0.008275 0.047931 0.307471 0.088137 0.013743 0.000977 0.102490 0.101573 0.341634 +0 +0.048254 0.062056 0.083397 0.051645 0.029696 0.041805 0.013115 0.055238 0.045114 0.117967 0.046318 0.191917 0.053631 0.065958 0.037615 0.043682 0.029022 0.059465 0.046357 0.004658 0.056393 0.102490 0.053674 0.025366 0.005331 0.102490 0.101527 0.005479 0.010613 0.170817 0.081732 0.204980 +0.420271 +0.022018 0.025442 0.059067 0.038029 0.035960 0.109626 0.039692 0.062654 0.153967 0.047352 0.049048 0.068100 0.040623 0.061232 0.072197 0.069658 0.040229 0.078631 0.058549 0.051308 0.015129 0.136654 0.077944 0.002675 0.033656 0.136654 0.057775 0.031157 0.007851 0.170817 0.095596 0.204980 +0 +0.028255 0.036970 0.059213 0.073909 0.038503 0.042358 0.049744 0.014178 0.045698 0.037830 0.028347 0.045513 0.026163 0.018744 0.038685 0.052350 0.050055 0.123038 0.041329 0.003369 0.037675 0.239144 0.081895 0.024995 0.051940 0.102490 0.077171 0.001964 0.026052 0.102490 0.089958 0.273307 +0 +0.062832 0.030415 0.098812 0.075954 0.022186 0.132164 0.032971 0.053006 0.044718 0.059915 0.020464 0.142319 0.016882 0.025278 0.053087 0.036996 0.022330 0.048834 0.046433 0.022178 0.008389 0.239144 0.062665 0.005651 0.025575 0.102490 0.095561 0.057843 0.011744 0.102490 0.095425 0.307471 +0 +0.027012 0.063490 0.035136 0.044173 0.029999 0.163132 0.036108 0.010818 0.044869 0.106110 0.050518 0.083120 0.035087 0.033766 0.049372 0.070011 0.035511 0.243625 0.046844 0.037650 0.058894 0.170817 0.087762 0.015855 0.023252 0.136654 0.090467 0.067581 0.013198 0.204980 0.077344 0.239144 +0.029081 +0.036471 0.042081 0.116173 0.137444 0.040413 0.067282 0.055314 0.030860 0.041531 0.047506 0.037203 0.275087 0.065171 0.050766 0.090130 0.040071 0.037819 0.116099 0.056612 0.011842 0.009028 0.136654 0.065142 0.021638 0.051473 0.239144 0.060774 0.064892 0.056951 0.273307 0.101224 0.341634 +0.258331 +0.054542 0.035369 0.034365 0.043758 0.024310 0.090067 0.022838 0.015908 0.052925 0.076158 0.030127 0.040731 0.019894 0.003501 0.036557 0.063075 0.018003 0.160407 0.040251 0.030967 0.001610 0.204980 0.081555 0.004731 0.050557 0.204980 0.060386 0.067219 0.015677 0.273307 0.058049 0.307471 +0.006411 +0.044411 0.059425 0.120705 0.047302 0.027370 0.041816 0.060598 0.060963 0.200414 0.056844 0.046242 0.049302 0.049667 0.013968 0.074492 0.077711 0.017481 0.109727 0.061062 0.025615 0.036389 0.170817 0.097903 0.036487 0.002910 0.102490 0.077151 0.030007 0.067422 0.136654 0.057233 0.204980 +0 +0.029576 0.032178 0.035978 0.042506 0.037726 0.062474 0.061441 0.028067 0.183426 0.073400 0.026024 0.142217 0.053286 0.043413 0.034785 0.072635 0.022784 0.101712 0.047530 0.017332 0.048241 0.136654 0.064859 0.002356 0.048011 0.102490 0.100167 0.012273 0.010551 0.273307 0.065468 0.307471 +0 +0.016431 0.009118 0.061104 0.096839 0.031923 0.103143 0.013728 0.031382 0.035165 0.040346 0.022732 0.074046 0.067556 0.030615 0.078828 0.047964 0.027688 0.179752 0.049129 0.010647 0.051304 0.204980 0.075743 0.063459 0.038635 0.136654 0.068151 0.048202 0.033561 0.170817 0.072653 0.239144 +0.035168 +0.058433 0.034531 0.057128 0.043367 0.039018 0.051946 0.005259 0.004786 0.041008 0.090831 0.042644 0.237152 0.007623 0.053349 0.034766 0.101951 0.041742 0.394021 0.044822 0.067246 0.034635 0.136654 0.073064 0.021393 0.061619 0.239144 0.098445 0.038794 0.036229 0.170817 0.078376 0.273307 +0.078055 +0.002844 0.012069 0.068632 0.115926 0.020235 0.110315 0.035991 0.031050 0.083904 0.040476 0.048913 0.094057 0.037996 0.003473 0.043224 0.169717 0.025703 0.162310 0.034971 0.036320 0.062878 0.204980 0.092776 0.012874 0.060559 0.204980 0.055179 0.055705 0.067294 0.102490 0.097053 0.341634 +0 +0.046167 0.027702 0.150299 0.078157 0.030267 0.066119 0.016656 0.063767 0.130460 0.047092 0.024881 0.196355 0.023022 0.043856 0.037392 0.034753 0.017640 0.129686 0.040733 0.058891 0.044503 0.204980 0.078360 0.000552 0.056478 0.136654 0.078157 0.016838 0.065421 0.170817 0.068628 0.239144 +0.092209 +0.067581 0.031401 0.096604 0.060945 0.025621 0.165080 0.060346 0.027860 0.043054 0.049560 0.025015 0.045056 0.017365 0.032612 0.046288 0.037436 0.031649 0.370633 0.058254 0.031659 0.001605 0.102490 0.061707 0.006715 0.055423 0.136654 0.055106 0.060021 0.057310 0.136654 0.060606 0.341634 +0 +0.018299 0.050159 0.036781 0.119402 0.018478 0.048684 0.061884 0.004602 0.113128 0.069598 0.017514 0.088489 0.040949 0.000204 0.082417 0.071319 0.019334 0.105150 0.048811 0.002205 0.006400 0.204980 0.055853 0.040858 0.011153 0.136654 0.071125 0.026000 0.047242 0.170817 0.093004 0.341634 +0 +0.045923 0.056107 0.101386 0.073641 0.017525 0.037804 0.008042 0.029704 0.120265 0.046300 0.042350 0.074842 0.022887 0.002727 0.049700 0.101620 0.035887 0.070089 0.046381 0.008215 0.013221 0.204980 0.074616 0.031520 0.010216 0.273307 0.069512 0.003757 0.058639 0.239144 0.100463 0.307471 +0 +0.003954 0.023789 0.224097 0.124364 0.048189 0.410134 0.057765 0.032517 0.073336 0.042831 0.051048 0.067310 0.051370 0.034035 0.038093 0.064106 0.030981 0.229004 0.045044 0.015763 0.024494 0.136654 0.051425 0.016617 0.043274 0.102490 0.084598 0.067104 0.034182 0.136654 0.089268 0.239144 +0.143825 +0.031497 0.010466 0.085430 0.089721 0.033338 0.043428 0.035107 0.006871 0.063642 0.049490 0.041646 0.086838 0.030133 0.007400 0.143512 0.045125 0.042121 0.136387 0.044292 0.040038 0.005120 0.102490 0.091885 0.042420 0.033247 0.102490 0.098677 0.012797 0.049525 0.273307 0.087864 0.341634 +0 +0.005073 0.047565 0.034470 0.040960 0.018335 0.218329 0.028101 0.000932 0.075236 0.078242 0.031698 0.145171 0.037845 0.060304 0.059220 0.105076 0.027275 0.059324 0.045465 0.055937 0.049300 0.170817 0.053977 0.022942 0.005889 0.307471 0.056663 0.058449 0.047303 0.239144 0.066159 0.341634 +0.102670 +0.054567 0.005892 0.051808 0.083013 0.049810 0.079429 0.031624 0.033131 0.054329 0.095808 0.030213 0.303274 0.021128 0.022156 0.040755 0.072410 0.037104 0.051829 0.058148 0.050331 0.047092 0.170817 0.079958 0.006759 0.023264 0.102490 0.052999 0.046791 0.015496 0.102490 0.069754 0.204980 +0.136439 +0.022940 0.027749 0.127635 0.114351 0.019997 0.093104 0.044363 0.015687 0.041238 0.066543 0.039839 0.099684 0.003239 0.038490 0.036950 0.086476 0.038015 0.036639 0.051789 0.036118 0.043009 0.239144 0.063049 0.002972 0.039207 0.239144 0.089862 0.029486 0.039317 0.239144 0.100282 0.273307 +0.054890 +0.065225 0.055480 0.084604 0.087348 0.018861 0.049410 0.032200 0.003411 0.093677 0.104726 0.039631 0.131574 0.012869 0.028528 0.049356 0.048918 0.036101 0.142754 0.054562 0.017003 0.038661 0.204980 0.052701 0.051558 0.036013 0.273307 0.095912 0.041848 0.033727 0.136654 0.061479 0.341634 +0.280549 +0.010355 0.055628 0.119575 0.038485 0.048622 0.123599 0.034877 0.049232 0.041527 0.038889 0.028042 0.034958 0.023981 0.048132 0.050317 0.055440 0.023718 0.096596 0.056787 0.034522 0.054581 0.102490 0.086939 0.030478 0.026331 0.170817 0.088537 0.065777 0.038508 0.136654 0.058822 0.204980 +0.068700 +0.021833 0.016148 0.061481 0.068227 0.031229 0.055934 0.034375 0.021742 0.041524 0.047557 0.037496 0.048405 0.048968 0.033063 0.050135 0.153104 0.018387 0.126159 0.044235 0.024586 0.066111 0.136654 0.078479 0.005798 0.061843 0.102490 0.089389 0.021060 0.051023 0.170817 0.096933 0.239144 +0 +0.053964 0.043132 0.036329 0.077038 0.033876 0.208708 0.010406 0.028033 0.048618 0.046702 0.034805 0.143434 0.027087 0.027513 0.056920 0.094685 0.029334 0.132545 0.050159 0.012494 0.009537 0.136654 0.051259 0.004661 0.016153 0.102490 0.084382 0.060285 0.056537 0.136654 0.065441 0.204980 +0.410187 +0.032046 0.007259 0.202844 0.102579 0.028309 0.040471 0.040606 0.026805 0.038482 0.054579 0.031773 0.053157 0.026062 0.002203 0.046715 0.075170 0.028045 0.350267 0.038806 0.067695 0.000964 0.102490 0.093264 0.054568 0.064395 0.204980 0.097245 0.063825 0.065689 0.170817 0.078921 0.239144 +0 +0.015811 0.060590 0.058529 0.052980 0.039297 0.156243 0.056511 0.027556 0.064480 0.100439 0.019566 0.053506 0.013854 0.030988 0.045576 0.054769 0.030738 0.091925 0.049630 0.058421 0.043005 0.273307 0.074210 0.005417 0.021929 0.204980 0.055699 0.064670 0.016406 0.239144 0.084331 0.307471 +0.005512 +0.002424 0.010125 0.045439 0.038889 0.040036 0.079079 0.011003 0.034047 0.041155 0.082479 0.046816 0.077231 0.033439 0.027748 0.063209 0.103769 0.034246 0.251525 0.054285 0.021920 0.001156 0.204980 0.059280 0.010133 0.065288 0.204980 0.068816 0.044791 0.015220 0.102490 0.058871 0.341634 +0.023289 +0.042252 0.028574 0.056609 0.040661 0.038075 0.194033 0.054486 0.036889 0.060312 0.105295 0.041159 0.048988 0.032842 0.034418 0.108894 0.043913 0.046452 0.050877 0.057314 0.002866 0.033959 0.136654 0.100907 0.008170 0.067293 0.239144 0.076232 0.006484 0.042670 0.136654 0.053379 0.307471 +0.004520 +0.020485 0.021581 0.034991 0.040502 0.021855 0.044154 0.039464 0.058218 0.042001 0.104920 0.029531 0.083725 0.020956 0.001433 0.060781 0.041595 0.046880 0.126855 0.036140 0.000075 0.009896 0.102490 0.059534 0.045935 0.052671 0.102490 0.093022 0.004029 0.056617 0.170817 0.063961 0.204980 +0.010684 +0.032138 0.045677 0.095770 0.038874 0.019336 0.165294 0.030956 0.046748 0.100973 0.058920 0.025643 0.074356 0.046616 0.055296 0.134844 0.044928 0.031079 0.362947 0.064254 0.053070 0.019537 0.136654 0.085103 0.049518 0.062174 0.136654 0.099282 0.033524 0.067588 0.170817 0.100630 0.204980 +0.369331 +0.020302 0.010460 0.044701 0.072291 0.031885 0.059983 0.046315 0.010523 0.043945 0.037748 0.025325 0.170991 0.019108 0.045528 0.062634 0.038720 0.023994 0.044054 0.054071 0.010159 0.059301 0.136654 0.052460 0.067850 0.002760 0.102490 0.086799 0.048574 0.060193 0.102490 0.088291 0.204980 +0.069775 +0.030837 0.018368 0.036511 0.121434 0.047419 0.088867 0.055531 0.003431 0.109960 0.107331 0.047873 0.125918 0.058501 0.063819 0.034281 0.064306 0.049157 0.055059 0.053952 0.011067 0.021129 0.136654 0.068083 0.011206 0.055931 0.170817 0.060453 0.012654 0.052843 0.136654 0.081911 0.204980 +0.049642 +0.008513 0.017916 0.047295 0.120532 0.046865 0.249851 0.059753 0.053765 0.036079 0.041435 0.026095 0.053125 0.068141 0.035368 0.049755 0.159620 0.018682 0.076680 0.043324 0.048511 0.045325 0.170817 0.058382 0.056234 0.039163 0.307471 0.077800 0.065067 0.045635 0.136654 0.097357 0.341634 +0 +0.002883 0.011419 0.084715 0.038843 0.030625 0.126565 0.006390 0.064952 0.121329 0.042670 0.020714 0.225464 0.055497 0.020148 0.078634 0.055497 0.029333 0.212995 0.058654 0.063307 0.025375 0.170817 0.062215 0.011435 0.053856 0.204980 0.069584 0.003444 0.030455 0.136654 0.065372 0.307471 +0.004280 +0.026587 0.033483 0.093105 0.040213 0.020452 0.124383 0.028309 0.059584 0.046157 0.049721 0.030432 0.091500 0.019796 0.005161 0.083512 0.106282 0.028199 0.049714 0.061988 0.015376 0.060513 0.307471 0.067945 0.035584 0.055706 0.136654 0.093065 0.013461 0.053299 0.273307 0.093205 0.341634 +0.001906 +0.010122 0.055649 0.061808 0.078132 0.029880 0.051742 0.035692 0.035952 0.084547 0.072947 0.047238 0.041434 0.036999 0.043909 0.095317 0.059214 0.028055 0.082773 0.050751 0.057605 0.033744 0.170817 0.067290 0.014407 0.009507 0.136654 0.057426 0.054486 0.023284 0.102490 0.090227 0.341634 +0 +0.036126 0.024973 0.155614 0.057388 0.022328 0.136895 0.051257 0.019722 0.042591 0.070878 0.023396 0.041069 0.012378 0.032798 0.052810 0.083022 0.046944 0.161012 0.060318 0.048164 0.044397 0.204980 0.098743 0.040769 0.035511 0.239144 0.069697 0.046600 0.030156 0.204980 0.057690 0.273307 +0.044333 +0.013714 0.047336 0.046895 0.061596 0.043681 0.062376 0.037907 0.068074 0.168298 0.172359 0.047395 0.046182 0.038894 0.061089 0.197205 0.038783 0.019883 0.049082 0.063422 0.009817 0.033231 0.239144 0.064611 0.047325 0.030309 0.204980 0.064853 0.009428 0.026095 0.273307 0.052019 0.307471 +0 +0.040868 0.055402 0.049087 0.107765 0.044416 0.047938 0.030427 0.060337 0.038754 0.047857 0.050826 0.053565 0.022240 0.013051 0.041837 0.099705 0.030532 0.091744 0.055422 0.013748 0.018141 0.136654 0.087697 0.050887 0.036010 0.136654 0.093139 0.009647 0.001833 0.204980 0.073504 0.239144 +0.001694 +0.059511 0.039980 0.109450 0.095801 0.018952 0.243911 0.032120 0.066090 0.112241 0.047616 0.033550 0.040301 0.058701 0.066378 0.040257 0.053336 0.046344 0.110728 0.048413 0.013182 0.001625 0.170817 0.057107 0.048082 0.051506 0.170817 0.066589 0.033002 0.055966 0.102490 0.061835 0.307471 +0.003795 +0.049953 0.000507 0.081307 0.041110 0.047773 0.089017 0.063441 0.039150 0.049228 0.037766 0.017292 0.075689 0.037520 0.053138 0.043519 0.049621 0.050292 0.210420 0.041521 0.048713 0.028192 0.102490 0.057410 0.056849 0.018148 0.102490 0.093799 0.028976 0.023347 0.204980 0.055548 0.307471 +0.308001 +0.054818 0.051634 0.106971 0.112010 0.041769 0.116063 0.052830 0.039497 0.048580 0.077071 0.043144 0.207532 0.017329 0.012180 0.101672 0.059784 0.039077 0.180550 0.052164 0.017660 0.053721 0.136654 0.061382 0.016321 0.052698 0.170817 0.060862 0.016769 0.050476 0.136654 0.057921 0.239144 +0.055013 +0.053061 0.058340 0.046953 0.057186 0.037785 0.213860 0.064042 0.049309 0.044081 0.093216 0.030931 0.237834 0.013740 0.064580 0.045038 0.075440 0.037668 0.080740 0.040401 0.034773 0.064061 0.170817 0.096128 0.046430 0.022184 0.136654 0.073334 0.034023 0.017184 0.102490 0.086410 0.204980 +0.094588 +0.009934 0.050758 0.048305 0.048714 0.033110 0.043002 0.062631 0.010141 0.106498 0.081417 0.028119 0.034979 0.056234 0.040519 0.043128 0.081688 0.039941 0.156767 0.046474 0.001580 0.063352 0.239144 0.061469 0.030945 0.064338 0.204980 0.077293 0.061789 0.030298 0.239144 0.080263 0.273307 +0.090043 +0.004813 0.006114 0.046151 0.077766 0.048734 0.045313 0.068042 0.009861 0.038621 0.082073 0.024005 0.041475 0.047380 0.027806 0.151412 0.075316 0.021320 0.076751 0.061155 0.032003 0.050362 0.102490 0.073324 0.010011 0.017163 0.170817 0.082337 0.054205 0.060148 0.136654 0.071249 0.204980 +0 +0.012723 0.051079 0.051637 0.049866 0.046820 0.408974 0.019645 0.045399 0.052890 0.036516 0.030580 0.068555 0.054879 0.027171 0.053413 0.052618 0.021518 0.047901 0.043899 0.055336 0.033009 0.102490 0.061316 0.039247 0.044768 0.170817 0.056500 0.064945 0.004289 0.136654 0.063029 0.204980 +0.074652 +0.034950 0.067919 0.145908 0.039869 0.048074 0.062279 0.035262 0.026524 0.067886 0.088198 0.045338 0.106292 0.005205 0.001290 0.041382 0.081153 0.049964 0.250077 0.047515 0.040943 0.049447 0.307471 0.063623 0.015253 0.055251 0.102490 0.097811 0.019292 0.039342 0.307471 0.094331 0.341634 +0.003632 +0.066913 0.057683 0.051340 0.040027 0.034363 0.124831 0.024176 0.011042 0.044913 0.060218 0.020786 0.172311 0.037265 0.034301 0.094429 0.060888 0.049176 0.110769 0.053807 0.058848 0.017736 0.136654 0.072452 0.020102 0.027438 0.136654 0.079612 0.023318 0.009192 0.102490 0.095901 0.239144 +0.001045 +0.064911 0.061186 0.039006 0.076769 0.024402 0.040476 0.068030 0.008507 0.063685 0.043144 0.043348 0.128301 0.014206 0.005082 0.196982 0.051780 0.020619 0.041564 0.057082 0.043614 0.038906 0.102490 0.099297 0.055097 0.009176 0.204980 0.093303 0.032588 0.050117 0.239144 0.075921 0.341634 +0 +0.009866 0.005334 0.084507 0.040809 0.031150 0.110059 0.006149 0.057632 0.039752 0.034356 0.047309 0.037742 0.007069 0.031178 0.110452 0.048118 0.031461 0.077021 0.049000 0.029439 0.037369 0.136654 0.085708 0.067787 0.016948 0.170817 0.055652 0.011777 0.058060 0.204980 0.054139 0.307471 +0 +0.016099 0.050910 0.083413 0.044923 0.047189 0.064546 0.061297 0.041832 0.039984 0.045755 0.026281 0.109115 0.040487 0.061825 0.036479 0.119800 0.042740 0.042270 0.037491 0.054837 0.022296 0.102490 0.079624 0.036953 0.013573 0.136654 0.087373 0.047776 0.035783 0.136654 0.079700 0.341634 +0 +0.027626 0.038863 0.096969 0.047605 0.045365 0.283093 0.067186 0.032197 0.039441 0.038677 0.039442 0.092500 0.049057 0.042219 0.059890 0.058627 0.029769 0.135370 0.055537 0.009971 0.014053 0.102490 0.100984 0.037630 0.016982 0.136654 0.101906 0.030078 0.020257 0.136654 0.068951 0.239144 +0.006197 +0.020423 0.034154 0.058909 0.049174 0.020705 0.264011 0.018254 0.052158 0.039838 0.065967 0.031110 0.113106 0.006456 0.007589 0.045214 0.056176 0.017362 0.084192 0.046517 0.045921 0.037560 0.170817 0.053459 0.050676 0.029260 0.170817 0.081025 0.058965 0.024037 0.170817 0.080609 0.307471 +0.323508 +0.014701 0.014304 0.065272 0.044256 0.048531 0.166382 0.052060 0.027802 0.037722 0.057081 0.031402 0.135140 0.039091 0.024002 0.181556 0.094000 0.019659 0.112097 0.048379 0.059628 0.003621 0.239144 0.058502 0.062841 0.006660 0.239144 0.100912 0.007712 0.012357 0.136654 0.064706 0.307471 +0.239093 +0.036011 0.038755 0.046950 0.072135 0.033549 0.058308 0.001693 0.013554 0.111984 0.040784 0.036113 0.055731 0.012053 0.009142 0.039652 0.111713 0.027410 0.138760 0.047545 0.037814 0.032477 0.204980 0.062091 0.052787 0.059597 0.239144 0.086877 0.027112 0.039616 0.273307 0.101034 0.341634 +0 +0.050810 0.027069 0.087015 0.039428 0.051164 0.073676 0.023247 0.042100 0.036204 0.129563 0.041180 0.176569 0.017918 0.035221 0.064655 0.054993 0.049292 0.180820 0.044550 0.012767 0.004098 0.136654 0.082891 0.017871 0.054813 0.102490 0.058696 0.033356 0.021226 0.102490 0.097529 0.204980 +0.033600 +0.066983 0.011327 0.037552 0.041416 0.023184 0.229966 0.053342 0.008145 0.073013 0.075210 0.049302 0.051691 0.002306 0.021500 0.066841 0.085272 0.048617 0.073276 0.050750 0.022902 0.038355 0.102490 0.100344 0.013802 0.008409 0.239144 0.090014 0.054543 0.021428 0.239144 0.065710 0.273307 +0 +0.058688 0.000457 0.068957 0.090889 0.043732 0.172803 0.064677 0.041060 0.117118 0.133663 0.030035 0.051515 0.012713 0.059767 0.041772 0.053997 0.023711 0.069272 0.051246 0.064736 0.016801 0.170817 0.063834 0.045588 0.034998 0.102490 0.054474 0.058532 0.060664 0.170817 0.058679 0.204980 +0.013610 +0.008212 0.019974 0.070892 0.053556 0.031265 0.108550 0.007539 0.054918 0.048296 0.044062 0.035025 0.083846 0.049695 0.005387 0.042792 0.037532 0.025378 0.048113 0.060105 0.027551 0.044302 0.170817 0.099539 0.057019 0.024716 0.239144 0.059027 0.024484 0.047299 0.136654 0.096330 0.307471 +0 +0.004303 0.033149 0.065775 0.047090 0.017673 0.056810 0.065588 0.041467 0.036206 0.087375 0.044778 0.053812 0.056438 0.020604 0.060746 0.060644 0.038962 0.148838 0.059052 0.036945 0.002373 0.102490 0.052184 0.002221 0.064062 0.102490 0.072844 0.039592 0.005130 0.170817 0.083883 0.204980 +0.001336 +0.021647 0.039985 0.054017 0.043356 0.047615 0.148761 0.056877 0.028801 0.042273 0.141163 0.036812 0.092709 0.034136 0.015828 0.034985 0.034396 0.021597 0.057344 0.054887 0.041400 0.014763 0.136654 0.079251 0.017982 0.007186 0.136654 0.087712 0.033836 0.056324 0.136654 0.086498 0.273307 +0.005139 +0.017314 0.050044 0.044204 0.078704 0.034926 0.217335 0.029437 0.060127 0.077448 0.035071 0.043435 0.107819 0.003209 0.021755 0.056408 0.053978 0.032630 0.048765 0.052833 0.031997 0.059897 0.273307 0.090408 0.008538 0.058715 0.273307 0.057244 0.018704 0.067480 0.273307 0.057855 0.307471 +0.051706 +0.001140 0.048446 0.078388 0.077001 0.019269 0.084892 0.029459 0.022973 0.069117 0.046233 0.045438 0.178995 0.061240 0.065956 0.103545 0.075328 0.042289 0.186946 0.065178 0.067937 0.021304 0.204980 0.073096 0.046097 0.039106 0.204980 0.095379 0.033626 0.004130 0.136654 0.070315 0.273307 +0.079385 +0.038047 0.060298 0.076754 0.080505 0.026224 0.055778 0.026599 0.027981 0.062107 0.062441 0.034223 0.159508 0.039649 0.056019 0.093966 0.034226 0.031901 0.095223 0.053892 0.035125 0.002221 0.102490 0.088350 0.005137 0.063043 0.102490 0.074143 0.057786 0.068251 0.136654 0.056179 0.273307 +0.008094 +0.046848 0.043908 0.073958 0.070571 0.019266 0.076157 0.024593 0.035398 0.094958 0.036102 0.038555 0.156577 0.016251 0.063626 0.041186 0.060833 0.018122 0.160379 0.054644 0.047216 0.023758 0.102490 0.093438 0.006830 0.006139 0.170817 0.101402 0.018298 0.022848 0.170817 0.083173 0.204980 +0.028552 +0.037825 0.050796 0.034803 0.066075 0.018985 0.088991 0.043052 0.067953 0.077789 0.055872 0.019431 0.878328 0.050444 0.047962 0.262526 0.069735 0.028759 0.118046 0.062344 0.012117 0.020659 0.170817 0.076413 0.066870 0.065230 0.102490 0.068090 0.014615 0.032353 0.136654 0.069205 0.273307 +0.904793 +0.036877 0.066045 0.149602 0.043027 0.020600 0.090490 0.036174 0.038086 0.102412 0.129417 0.041287 0.267794 0.009782 0.027262 0.083163 0.105996 0.021011 0.168349 0.052047 0.001704 0.003796 0.239144 0.084445 0.026088 0.049300 0.204980 0.090493 0.060394 0.008327 0.102490 0.065790 0.307471 +0.079538 +0.003461 0.035018 0.090272 0.082779 0.031702 0.052711 0.051050 0.015207 0.044432 0.039723 0.039494 0.073331 0.038316 0.059483 0.061012 0.048772 0.040293 0.090480 0.041617 0.030086 0.010712 0.170817 0.079065 0.006784 0.029834 0.170817 0.094538 0.019123 0.016772 0.136654 0.063383 0.204980 +0.070089 +0.066295 0.065834 0.052989 0.057646 0.035373 0.055284 0.011295 0.006823 0.039319 0.050351 0.040595 0.038557 0.056133 0.059521 0.056573 0.054168 0.018942 0.180354 0.039680 0.057100 0.054067 0.136654 0.079003 0.043527 0.038792 0.204980 0.056106 0.046570 0.042257 0.102490 0.053490 0.239144 +0.012961 +0.054861 0.017713 0.044179 0.034563 0.031276 0.261506 0.045054 0.020294 0.053720 0.061371 0.042056 0.058537 0.039247 0.067293 0.061027 0.065027 0.041347 0.391472 0.051254 0.022870 0.029692 0.102490 0.083037 0.067884 0.061394 0.170817 0.063346 0.005719 0.010297 0.136654 0.069042 0.204980 +0.211074 +0.005235 0.039203 0.039106 0.041021 0.023238 0.322527 0.058894 0.026296 0.040730 0.037504 0.043739 0.085416 0.005690 0.051912 0.083860 0.069052 0.024392 0.162604 0.053451 0.004256 0.042394 0.204980 0.094546 0.032301 0.029648 0.204980 0.075147 0.002856 0.035155 0.170817 0.070104 0.239144 +0.244248 +0.050519 0.067973 0.051235 0.036052 0.043727 0.047270 0.051405 0.063643 0.052271 0.051979 0.021816 0.139525 0.065854 0.038101 0.042950 0.041595 0.028056 0.091025 0.062302 0.064409 0.057862 0.307471 0.052258 0.044322 0.015171 0.136654 0.062534 0.038704 0.025477 0.204980 0.053707 0.341634 +0.039860 +0.067360 0.005012 0.037090 0.053599 0.030077 0.446829 0.008384 0.056609 0.049912 0.038442 0.017286 0.132033 0.063059 0.061737 0.045445 0.051600 0.049814 0.075833 0.050598 0.040621 0.029774 0.170817 0.091632 0.034275 0.011789 0.170817 0.060787 0.010314 0.014137 0.136654 0.080584 0.204980 +0.058906 +0.032550 0.049378 0.037215 0.084671 0.019657 0.065728 0.050343 0.024619 0.052517 0.064891 0.049329 0.045439 0.057329 0.006143 0.080713 0.075579 0.034661 0.385484 0.058898 0.014027 0.045308 0.204980 0.071541 0.019778 0.023377 0.307471 0.080569 0.062173 0.014381 0.170817 0.055631 0.341634 +0 +0.021469 0.027383 0.112929 0.044838 0.022136 0.058285 0.061037 0.044077 0.047066 0.061472 0.035450 0.053958 0.043781 0.016714 0.044595 0.114118 0.033422 0.082906 0.055528 0.051025 0.038373 0.204980 0.061830 0.062007 0.057367 0.136654 0.079983 0.041427 0.006534 0.204980 0.076474 0.341634 +0 +0.036352 0.030626 0.063292 0.055857 0.036533 0.181004 0.027751 0.038381 0.034339 0.107130 0.023864 0.058099 0.049798 0.046304 0.042656 0.060312 0.031283 0.050974 0.049808 0.025963 0.009401 0.170817 0.068888 0.049834 0.055657 0.102490 0.081735 0.005593 0.042004 0.136654 0.092402 0.307471 +0.001089 +0.043173 0.033193 0.035325 0.052661 0.020465 0.087715 0.046815 0.036483 0.076618 0.077129 0.046496 0.124975 0.030758 0.044951 0.035570 0.071061 0.028887 0.049231 0.052359 0.022476 0.044609 0.136654 0.074711 0.042273 0.028004 0.136654 0.089054 0.066810 0.002481 0.170817 0.064441 0.204980 +0.065950 +0.042357 0.055528 0.039960 0.121055 0.039777 0.091094 0.024973 0.040115 0.089879 0.109535 0.050105 0.091199 0.056522 0.015653 0.121319 0.050865 0.047692 0.125124 0.047430 0.047941 0.020244 0.136654 0.090759 0.010782 0.046972 0.170817 0.053668 0.030353 0.033809 0.102490 0.073682 0.273307 +0.002422 +0.019812 0.022006 0.040484 0.052753 0.035202 0.118866 0.046348 0.063843 0.058493 0.063416 0.047848 0.171313 0.011986 0.011513 0.043735 0.038674 0.048965 0.043519 0.043870 0.007998 0.064392 0.170817 0.079115 0.055600 0.006880 0.102490 0.053316 0.032376 0.003244 0.170817 0.077976 0.239144 +0.041125 +0.063404 0.029604 0.067912 0.196937 0.021657 0.076758 0.032367 0.005284 0.146706 0.077827 0.030378 0.098480 0.030004 0.048099 0.085528 0.075328 0.043423 0.160336 0.065517 0.056193 0.003655 0.136654 0.052233 0.010332 0.032807 0.136654 0.062968 0.045735 0.027160 0.102490 0.053374 0.204980 +0.036576 +0.035458 0.057737 0.091196 0.076902 0.051116 0.056910 0.045492 0.036509 0.083225 0.111061 0.026083 0.047618 0.020124 0.061781 0.076375 0.078433 0.046033 0.215361 0.052963 0.062757 0.061610 0.136654 0.087322 0.029438 0.056972 0.102490 0.068172 0.043569 0.067671 0.170817 0.071084 0.239144 +0.026950 +0.018974 0.010829 0.095875 0.034615 0.027822 0.042261 0.032220 0.011686 0.075363 0.049010 0.043262 0.052231 0.060363 0.047198 0.131734 0.096578 0.032324 0.134555 0.045145 0.050253 0.041714 0.170817 0.096245 0.054926 0.055150 0.170817 0.056827 0.054274 0.062115 0.136654 0.062059 0.204980 +0.055647 +0.060602 0.002802 0.042439 0.039698 0.030367 0.067123 0.047465 0.043964 0.044938 0.195703 0.036760 0.187439 0.054999 0.049674 0.035998 0.057958 0.038164 0.035691 0.043727 0.024517 0.021731 0.136654 0.080397 0.012650 0.034543 0.136654 0.093716 0.032407 0.000944 0.102490 0.067501 0.239144 +0.016264 +0.024869 0.026170 0.040365 0.159478 0.042279 0.176232 0.008954 0.050457 0.058879 0.035933 0.021458 0.248863 0.059693 0.013747 0.036431 0.043687 0.037682 0.200938 0.048626 0.041725 0.017828 0.102490 0.094407 0.011148 0.016204 0.204980 0.095655 0.051126 0.024990 0.102490 0.066981 0.273307 +0.047115 +0.023037 0.044210 0.083442 0.051044 0.037964 0.239828 0.024473 0.051907 0.067026 0.069660 0.047539 0.052410 0.002421 0.044786 0.054585 0.062560 0.042156 0.172668 0.057286 0.036439 0.014946 0.273307 0.053622 0.038167 0.023633 0.136654 0.101587 0.025122 0.027117 0.239144 0.071819 0.341634 +0.169065 +0.013116 0.038734 0.054281 0.072848 0.031861 0.295925 0.008326 0.015870 0.053487 0.043618 0.039590 0.098233 0.059023 0.068128 0.039892 0.165485 0.029110 0.251288 0.042815 0.004615 0.037621 0.239144 0.092731 0.040612 0.014231 0.239144 0.072062 0.045928 0.033998 0.136654 0.070764 0.341634 +0.005103 +0.003122 0.043873 0.053413 0.039092 0.027715 0.048710 0.009183 0.006008 0.117069 0.096641 0.036989 0.048882 0.063183 0.023535 0.098574 0.093152 0.026249 0.050982 0.045177 0.046712 0.026784 0.102490 0.083446 0.034427 0.034090 0.204980 0.075429 0.054366 0.023934 0.102490 0.078823 0.273307 +0 +0.062884 0.000445 0.086858 0.046555 0.040313 0.047768 0.014482 0.037834 0.062399 0.086264 0.041621 0.173809 0.001860 0.033671 0.034976 0.040574 0.035345 0.285345 0.052593 0.030314 0.045088 0.273307 0.066579 0.002343 0.028431 0.136654 0.074831 0.006763 0.053692 0.136654 0.059020 0.307471 +0.172489 +0.037307 0.012584 0.037295 0.088196 0.018516 0.442712 0.006859 0.027585 0.073665 0.117536 0.036338 0.095216 0.049844 0.006770 0.079913 0.055962 0.039042 0.291092 0.047225 0.008021 0.045384 0.102490 0.054508 0.011459 0.051502 0.102490 0.079416 0.022868 0.022905 0.136654 0.081213 0.204980 +0.444121 +0.008640 0.002289 0.059564 0.051229 0.025418 0.208401 0.009458 0.005167 0.057156 0.036175 0.020755 0.057495 0.000533 0.046360 0.087843 0.083487 0.029794 0.323272 0.057026 0.046253 0.033957 0.102490 0.088317 0.003107 0.008609 0.136654 0.102151 0.034148 0.001818 0.170817 0.097490 0.204980 +0.122094 +0.019667 0.012882 0.166247 0.043947 0.036930 0.403447 0.058219 0.052872 0.083775 0.039103 0.040861 0.096070 0.012318 0.010626 0.074290 0.042662 0.020063 0.209848 0.054364 0.050987 0.067881 0.170817 0.092410 0.063381 0.003853 0.102490 0.064708 0.034478 0.026385 0.136654 0.073868 0.239144 +0.259629 +0.017549 0.025507 0.036409 0.065185 0.050546 0.058740 0.028087 0.022720 0.081499 0.046898 0.035912 0.040182 0.012644 0.033347 0.065126 0.043819 0.039261 0.099472 0.063158 0.006771 0.068292 0.102490 0.098322 0.051012 0.059933 0.136654 0.063253 0.006274 0.029278 0.204980 0.099948 0.239144 +0.003847 +0.066888 0.022382 0.036041 0.050283 0.018796 0.056067 0.051394 0.056681 0.043852 0.038440 0.047570 0.053335 0.061491 0.021038 0.054254 0.083325 0.040530 0.088274 0.054053 0.000207 0.062578 0.102490 0.082823 0.046267 0.038753 0.239144 0.069555 0.000943 0.056902 0.239144 0.055703 0.273307 +0.056588 +0.051566 0.029400 0.075052 0.051427 0.044479 0.133816 0.052340 0.032776 0.059503 0.052427 0.043116 0.066828 0.044205 0.039050 0.070659 0.046088 0.029996 0.292471 0.053576 0.005054 0.065488 0.204980 0.070249 0.067845 0.065109 0.170817 0.056088 0.028696 0.066177 0.239144 0.095555 0.273307 +0.169256 +0.021799 0.033315 0.052386 0.057944 0.017564 0.061336 0.039400 0.006228 0.085386 0.087722 0.020428 0.111717 0.051539 0.030066 0.075529 0.048781 0.041736 0.091944 0.038867 0.026454 0.022921 0.204980 0.086373 0.036660 0.048274 0.204980 0.084585 0.043301 0.063171 0.136654 0.073338 0.273307 +0.076609 +0.012277 0.053969 0.036726 0.082011 0.046295 0.169575 0.061346 0.050681 0.035274 0.074087 0.030446 0.132323 0.030818 0.059530 0.044023 0.067496 0.027978 0.175032 0.055692 0.059064 0.040649 0.136654 0.097245 0.045478 0.054872 0.136654 0.078245 0.027839 0.030370 0.102490 0.060759 0.204980 +0.036497 +0.063339 0.027760 0.034945 0.154635 0.022702 0.127236 0.002421 0.067252 0.079662 0.047368 0.048021 0.199512 0.031640 0.068107 0.063093 0.159328 0.028007 0.118893 0.045518 0.000494 0.019497 0.273307 0.072749 0.044302 0.034578 0.170817 0.094406 0.013089 0.045888 0.204980 0.088961 0.307471 +0.086416 +0.014201 0.061541 0.067413 0.046785 0.049591 0.330377 0.017457 0.065064 0.048300 0.046691 0.040029 0.320267 0.037395 0.002511 0.044458 0.044132 0.034451 0.100238 0.049195 0.033720 0.020360 0.239144 0.057854 0.025476 0.000238 0.204980 0.091204 0.038788 0.045924 0.239144 0.052865 0.273307 +0.788233 +0.027462 0.003987 0.066781 0.034728 0.030331 0.046366 0.023159 0.048037 0.057902 0.070764 0.039573 0.089752 0.017451 0.059711 0.053020 0.269886 0.039281 0.358605 0.042148 0.024235 0.040943 0.102490 0.069687 0.050816 0.063321 0.136654 0.055200 0.048783 0.014373 0.136654 0.094552 0.204980 +0.001793 +0.064519 0.004291 0.088237 0.041376 0.041444 0.495086 0.060030 0.000453 0.043920 0.053945 0.041045 0.116152 0.002392 0.056687 0.091060 0.081111 0.020476 0.079312 0.044485 0.032547 0.058081 0.102490 0.084244 0.028412 0.007319 0.102490 0.072537 0.050454 0.065906 0.136654 0.082569 0.273307 +0.367723 +0.035039 0.023817 0.043392 0.061785 0.029856 0.052347 0.061726 0.060903 0.037089 0.035325 0.027437 0.057994 0.065089 0.038783 0.047115 0.035780 0.033203 0.105085 0.045586 0.020339 0.002671 0.204980 0.099785 0.017016 0.017944 0.102490 0.091505 0.001463 0.056264 0.136654 0.072607 0.307471 +0.003353 +0.006494 0.009298 0.123320 0.046033 0.039583 0.042769 0.028853 0.014920 0.041387 0.052819 0.023640 0.057923 0.048783 0.028881 0.067797 0.044572 0.034660 0.042636 0.057569 0.051698 0.033539 0.102490 0.066417 0.009390 0.036881 0.204980 0.063309 0.011820 0.046911 0.170817 0.055323 0.341634 +0 +0.027809 0.005635 0.061172 0.069213 0.026787 0.237355 0.009055 0.068066 0.040462 0.098637 0.024479 0.137760 0.001993 0.036461 0.039083 0.049487 0.044838 0.069348 0.056533 0.003483 0.036232 0.170817 0.058108 0.015416 0.061776 0.239144 0.101890 0.042513 0.053598 0.204980 0.073178 0.341634 +0.029411 +0.037904 0.012083 0.052434 0.035294 0.026405 0.164024 0.031291 0.051578 0.048008 0.076577 0.050519 0.072962 0.027299 0.013719 0.099370 0.072492 0.034853 0.047687 0.047365 0.021035 0.038004 0.170817 0.089454 0.015244 0.063985 0.170817 0.070330 0.067574 0.039624 0.136654 0.093332 0.204980 +0.009864 +0.021122 0.022818 0.106546 0.055620 0.022552 0.108102 0.066390 0.066988 0.128702 0.035878 0.025092 0.077287 0.009768 0.057533 0.038920 0.036705 0.030230 0.038645 0.057362 0.026030 0.023267 0.204980 0.065772 0.016866 0.060860 0.102490 0.074934 0.012878 0.028253 0.136654 0.076762 0.239144 +0.001554 +0.017330 0.064832 0.036890 0.046322 0.028705 0.291235 0.026910 0.026261 0.069572 0.037708 0.040186 0.357824 0.046204 0.033030 0.042825 0.124513 0.049244 0.056301 0.045672 0.025563 0.046193 0.102490 0.067572 0.035793 0.041040 0.102490 0.070106 0.014524 0.041977 0.204980 0.063956 0.239144 +0.221262 +0.018872 0.003466 0.037650 0.046284 0.024506 0.046200 0.064808 0.026357 0.061066 0.070822 0.041521 0.332662 0.007882 0.016838 0.048486 0.071545 0.033263 0.054484 0.062930 0.011377 0.039605 0.204980 0.060791 0.031317 0.001617 0.204980 0.053520 0.031121 0.052938 0.204980 0.092305 0.273307 +0.140029 +0.012217 0.044777 0.041917 0.035555 0.025243 0.158882 0.056523 0.067015 0.059300 0.040502 0.043077 0.303671 0.036591 0.015166 0.050463 0.062931 0.048880 0.389514 0.048377 0.045443 0.005818 0.273307 0.097827 0.012759 0.039863 0.170817 0.087028 0.056828 0.021842 0.273307 0.067195 0.307471 +0.301931 +0.030283 0.021209 0.034437 0.064924 0.018424 0.138811 0.046093 0.003490 0.146918 0.079836 0.035389 0.062226 0.030074 0.049434 0.051431 0.047277 0.032814 0.122417 0.049596 0.017472 0.021150 0.170817 0.062722 0.055711 0.060270 0.136654 0.060298 0.040387 0.000219 0.170817 0.075986 0.204980 +0.428504 +0.005828 0.033619 0.046252 0.072978 0.020749 0.125417 0.063333 0.066332 0.038181 0.068736 0.046639 0.040554 0.021414 0.057077 0.067981 0.043961 0.022198 0.039179 0.048878 0.001180 0.053346 0.204980 0.080374 0.002504 0.051247 0.170817 0.053619 0.057050 0.057375 0.204980 0.082185 0.307471 +0 +0.059011 0.050073 0.054286 0.100034 0.017456 0.035766 0.057956 0.006254 0.050817 0.048001 0.021290 0.318739 0.015959 0.043531 0.036668 0.050278 0.033754 0.130676 0.047476 0.039470 0.018453 0.170817 0.092163 0.011553 0.026795 0.102490 0.079834 0.048779 0.048886 0.170817 0.070084 0.204980 +0.474237 +0.010902 0.020602 0.135440 0.077594 0.043211 0.086464 0.016158 0.053058 0.048058 0.071397 0.050457 0.125034 0.052875 0.003228 0.065050 0.047086 0.041394 0.041419 0.053778 0.058376 0.009552 0.170817 0.095760 0.055783 0.045900 0.136654 0.052780 0.040250 0.048742 0.136654 0.057259 0.239144 +0.009036 +0.000389 0.000189 0.060456 0.035560 0.029555 0.107037 0.046247 0.045441 0.107771 0.061094 0.018666 0.643969 0.064296 0.015005 0.086888 0.042222 0.022324 0.173384 0.056797 0.059778 0.036213 0.102490 0.085201 0.066345 0.001071 0.102490 0.055609 0.031958 0.006528 0.204980 0.073929 0.341634 +0.790752 +0.044267 0.050928 0.036229 0.049779 0.040149 0.141152 0.034645 0.003881 0.051846 0.060470 0.033534 0.087640 0.040092 0.045898 0.122756 0.055073 0.024531 0.153691 0.057048 0.030528 0.006983 0.136654 0.062356 0.055823 0.015387 0.204980 0.098191 0.059105 0.043323 0.136654 0.052493 0.239144 +0.046525 +0.042651 0.050121 0.051576 0.050520 0.031817 0.042152 0.026043 0.011858 0.043522 0.115317 0.039613 0.136590 0.047545 0.043240 0.084962 0.069589 0.044177 0.035131 0.064731 0.027200 0.027853 0.170817 0.081978 0.044596 0.009699 0.307471 0.093254 0.040106 0.059216 0.102490 0.052280 0.341634 +0.050178 +0.017225 0.003151 0.067202 0.046464 0.019433 0.305021 0.035049 0.022054 0.041387 0.039795 0.027252 0.159386 0.041539 0.039315 0.035548 0.097219 0.050778 0.217266 0.042341 0.041911 0.002163 0.204980 0.062518 0.043253 0.003193 0.204980 0.051464 0.048998 0.060160 0.102490 0.100697 0.341634 +0.530432 +0.053506 0.016863 0.064709 0.078097 0.019256 0.272711 0.043239 0.002278 0.039967 0.114215 0.049564 0.228542 0.057683 0.052332 0.090018 0.045081 0.035988 0.096983 0.061376 0.057607 0.027989 0.204980 0.077144 0.033176 0.003138 0.136654 0.102379 0.066872 0.058260 0.136654 0.055186 0.239144 +0.189061 +0.020445 0.035597 0.057749 0.093539 0.041804 0.128665 0.024194 0.010260 0.050126 0.108139 0.024704 0.111320 0.012007 0.039780 0.123509 0.067199 0.045749 0.176462 0.050376 0.003827 0.010375 0.204980 0.056890 0.054380 0.054036 0.170817 0.084936 0.035403 0.023820 0.170817 0.078767 0.239144 +0.056813 +0.010217 0.032140 0.042086 0.059648 0.050600 0.071003 0.018156 0.011057 0.114852 0.080352 0.027109 0.093089 0.034898 0.017052 0.049386 0.037152 0.046739 0.263520 0.046893 0.055034 0.060862 0.170817 0.100656 0.000832 0.012869 0.239144 0.089851 0.057504 0.059984 0.136654 0.097266 0.307471 +0.081016 +0.039593 0.036553 0.049516 0.083461 0.045591 0.116544 0.038157 0.000789 0.050143 0.089845 0.048912 0.132242 0.013900 0.051900 0.062066 0.070705 0.025185 0.293255 0.054849 0.052334 0.029748 0.136654 0.089344 0.020991 0.016852 0.136654 0.081327 0.034037 0.007919 0.136654 0.081663 0.239144 +0.070127 +0.050927 0.035509 0.055704 0.043612 0.043627 0.110054 0.009172 0.019721 0.035750 0.067610 0.021031 0.132968 0.011690 0.023959 0.037038 0.173145 0.026566 0.087803 0.040078 0.066639 0.053336 0.273307 0.101419 0.007776 0.068004 0.239144 0.057470 0.051976 0.065152 0.170817 0.052572 0.307471 +0.298866 +0.023075 0.039935 0.141107 0.074983 0.027279 0.179976 0.042628 0.018361 0.041066 0.112450 0.049954 0.041159 0.040810 0.036050 0.063270 0.057801 0.019544 0.145332 0.041422 0.055731 0.021807 0.136654 0.090893 0.060330 0.024614 0.136654 0.075197 0.065829 0.046376 0.170817 0.099413 0.239144 +0 +0.037631 0.064118 0.065912 0.067596 0.037130 0.162006 0.061458 0.043366 0.045562 0.074268 0.046049 0.308820 0.058679 0.059196 0.082954 0.071006 0.023795 0.162642 0.050171 0.065696 0.017004 0.102490 0.078023 0.045798 0.003010 0.239144 0.070625 0.066535 0.062420 0.273307 0.070563 0.307471 +0.204448 +0.046601 0.037370 0.051456 0.051533 0.027510 0.055236 0.022605 0.047661 0.038844 0.054525 0.023124 0.089984 0.033743 0.015068 0.043194 0.034909 0.045673 0.080428 0.059655 0.064584 0.019121 0.204980 0.058326 0.049324 0.051707 0.307471 0.051655 0.022198 0.055495 0.307471 0.068281 0.341634 +0.008671 +0.064888 0.003847 0.073013 0.039698 0.043820 0.068649 0.061303 0.018033 0.048701 0.050105 0.045602 0.287917 0.003810 0.007140 0.084626 0.050905 0.038961 0.230787 0.043279 0.053702 0.040199 0.102490 0.084838 0.059935 0.006326 0.102490 0.069438 0.027404 0.067280 0.102490 0.058108 0.273307 +0.415131 +0.000662 0.030229 0.122774 0.108498 0.048882 0.166315 0.013809 0.057066 0.035886 0.065240 0.026483 0.046666 0.039729 0.028908 0.103355 0.053000 0.030896 0.324322 0.046843 0.036869 0.049417 0.170817 0.061353 0.046559 0.000125 0.273307 0.079591 0.061374 0.056940 0.307471 0.068280 0.341634 +0.348123 +0.005503 0.062055 0.060478 0.042753 0.019918 0.185249 0.003404 0.019732 0.045578 0.163868 0.036796 0.139686 0.031585 0.052116 0.053407 0.040925 0.031671 0.148964 0.053450 0.041673 0.067375 0.204980 0.076209 0.036596 0.028949 0.170817 0.088275 0.017122 0.018831 0.170817 0.065394 0.273307 +0.025895 +0.012895 0.016680 0.050139 0.066745 0.046270 0.165826 0.029541 0.060205 0.043757 0.066333 0.029564 0.421205 0.006260 0.018553 0.045172 0.070089 0.019087 0.225575 0.050858 0.038855 0.056135 0.239144 0.051420 0.014231 0.001772 0.170817 0.064869 0.023566 0.048042 0.170817 0.100089 0.273307 +0.344047 +0.031712 0.033840 0.041648 0.083162 0.017922 0.222104 0.032648 0.009956 0.034649 0.043925 0.040546 0.069670 0.067375 0.001733 0.034186 0.049482 0.018396 0.099640 0.046829 0.054934 0.040183 0.239144 0.091935 0.044816 0.032670 0.273307 0.068259 0.015635 0.038631 0.102490 0.091543 0.307471 +0 +0.064102 0.047988 0.042850 0.100238 0.044077 0.158993 0.029661 0.032447 0.055421 0.040295 0.029442 0.238344 0.030938 0.048652 0.038187 0.075238 0.022269 0.238971 0.049646 0.030126 0.009158 0.136654 0.078194 0.013641 0.063331 0.170817 0.083253 0.058535 0.016433 0.273307 0.102063 0.341634 +0.265142 +0.044482 0.011269 0.065373 0.072387 0.049411 0.132380 0.033881 0.027107 0.034315 0.035314 0.021257 0.146034 0.044095 0.050721 0.043865 0.080443 0.021924 0.138454 0.040098 0.003346 0.039213 0.170817 0.085032 0.058430 0.042823 0.204980 0.097872 0.024167 0.063602 0.136654 0.085631 0.239144 +0.044912 +0.006038 0.027962 0.037589 0.067416 0.019849 0.205250 0.066192 0.016864 0.110239 0.034458 0.035366 0.249845 0.008698 0.037327 0.095798 0.053316 0.024810 0.177131 0.039732 0.033958 0.024166 0.170817 0.057957 0.034187 0.026989 0.170817 0.081903 0.041623 0.064276 0.102490 0.078714 0.204980 +0.336411 +0.058896 0.027681 0.039005 0.147015 0.024204 0.125200 0.067290 0.038560 0.052994 0.060087 0.032939 0.063072 0.020640 0.028510 0.113335 0.102111 0.040932 0.215508 0.045300 0.049939 0.020654 0.102490 0.093476 0.030214 0.040320 0.307471 0.077005 0.061334 0.049524 0.136654 0.074563 0.341634 +0.051977 +0.006635 0.059556 0.054920 0.122489 0.035712 0.254495 0.000944 0.009285 0.042989 0.034187 0.032757 0.087581 0.001413 0.051024 0.068965 0.070076 0.043463 0.080819 0.063255 0.059099 0.052707 0.102490 0.061461 0.049828 0.005696 0.239144 0.064804 0.028128 0.006792 0.273307 0.096832 0.307471 +0.021255 +0.059865 0.043662 0.045217 0.080552 0.037464 0.081841 0.044738 0.061298 0.066660 0.098596 0.039363 0.140695 0.030033 0.049220 0.036850 0.076571 0.033110 0.044409 0.043391 0.008103 0.006957 0.136654 0.060329 0.048646 0.067388 0.204980 0.070623 0.020151 0.047697 0.273307 0.087004 0.341634 +0 +0.001536 0.017623 0.039218 0.047547 0.031161 0.087091 0.005476 0.019784 0.054771 0.035490 0.033781 0.191021 0.028305 0.058964 0.053891 0.097572 0.022293 0.105061 0.038601 0.051963 0.029255 0.307471 0.077212 0.045346 0.024719 0.204980 0.056609 0.000219 0.063612 0.239144 0.060002 0.341634 +0.009241 +0.057804 0.036396 0.052632 0.081153 0.049041 0.191850 0.000222 0.040128 0.057448 0.087697 0.020327 0.059740 0.018893 0.013270 0.034978 0.071829 0.018302 0.089204 0.053989 0.059196 0.062261 0.204980 0.093852 0.030155 0.006861 0.307471 0.080398 0.057698 0.062971 0.273307 0.072598 0.341634 +0.017565 +0.048753 0.056695 0.086822 0.044859 0.036143 0.099452 0.052173 0.000991 0.042218 0.034229 0.017714 0.044871 0.003638 0.029117 0.069343 0.236159 0.034373 0.192613 0.060338 0.065683 0.045483 0.136654 0.056497 0.053766 0.040963 0.170817 0.071348 0.029524 0.052786 0.102490 0.098914 0.239144 +0 +0.022070 0.012926 0.098346 0.037564 0.048281 0.078379 0.006567 0.045887 0.106567 0.045708 0.017249 0.059813 0.017276 0.017417 0.051531 0.151522 0.029531 0.037476 0.042116 0.063650 0.044691 0.170817 0.101708 0.033835 0.053008 0.136654 0.075309 0.066436 0.053726 0.273307 0.093877 0.341634 +0 +0.057081 0.060959 0.040671 0.119304 0.034465 0.109565 0.016400 0.068154 0.100628 0.067473 0.042998 0.098682 0.014327 0.040376 0.052413 0.179019 0.046472 0.099196 0.055257 0.042125 0.015767 0.239144 0.080148 0.043918 0.025115 0.204980 0.076098 0.004021 0.060321 0.136654 0.077954 0.273307 +0.013408 +0.026563 0.051331 0.082794 0.069559 0.048596 0.198456 0.034573 0.009113 0.126164 0.056059 0.040226 0.048912 0.051152 0.024398 0.099235 0.038397 0.039813 0.071930 0.048712 0.027869 0.029223 0.102490 0.063465 0.057544 0.020331 0.102490 0.061014 0.064216 0.012656 0.170817 0.056130 0.273307 +0.021735 +0.040551 0.067403 0.034280 0.035360 0.028535 0.061451 0.013445 0.014472 0.043927 0.115858 0.023063 0.037711 0.053772 0.030322 0.054189 0.068593 0.027397 0.106985 0.043480 0.053742 0.029814 0.204980 0.090442 0.035580 0.033292 0.239144 0.073690 0.064705 0.020276 0.239144 0.075608 0.273307 +0.008791 +0.053914 0.036602 0.098827 0.057117 0.019445 0.185004 0.057054 0.000491 0.061538 0.048608 0.033415 0.149727 0.049141 0.010901 0.060547 0.055329 0.035267 0.069318 0.049922 0.044687 0.026084 0.239144 0.056210 0.034036 0.021025 0.170817 0.097392 0.007976 0.048129 0.170817 0.085256 0.307471 +0.130240 +0.047649 0.014163 0.038379 0.072387 0.040885 0.070610 0.061234 0.031286 0.102936 0.046078 0.019940 0.068768 0.040397 0.039681 0.093211 0.097880 0.027398 0.082571 0.064215 0.065392 0.013284 0.102490 0.102310 0.009220 0.020890 0.239144 0.061011 0.044996 0.039692 0.136654 0.065689 0.273307 +0 +0.003363 0.061224 0.065492 0.157919 0.019953 0.292518 0.015811 0.015099 0.093924 0.081160 0.038226 0.160498 0.024949 0.067022 0.042494 0.158255 0.025484 0.061222 0.058537 0.020195 0.060488 0.102490 0.082248 0.058044 0.030952 0.136654 0.079656 0.055716 0.031894 0.170817 0.058344 0.239144 +0.166403 +0.060482 0.055567 0.081588 0.049337 0.048583 0.056543 0.006097 0.063421 0.054057 0.050773 0.028038 0.360940 0.028280 0.012522 0.051432 0.174080 0.026729 0.092677 0.045561 0.034078 0.051275 0.170817 0.063471 0.043280 0.017695 0.136654 0.086548 0.033268 0.004724 0.102490 0.063536 0.204980 +0.514301 +0.062569 0.035124 0.047649 0.048063 0.019838 0.042611 0.003550 0.024365 0.059162 0.084603 0.019738 0.059049 0.042937 0.013352 0.043441 0.063623 0.019882 0.055319 0.041716 0.033098 0.051408 0.239144 0.082986 0.057637 0.034467 0.170817 0.089682 0.047103 0.046035 0.136654 0.068936 0.273307 +0 +0.062787 0.013524 0.066377 0.097636 0.038300 0.202469 0.065423 0.010120 0.105929 0.034653 0.026949 0.057276 0.063269 0.033496 0.077351 0.053589 0.047957 0.140695 0.058030 0.012949 0.061990 0.136654 0.051902 0.008968 0.007576 0.102490 0.082806 0.018688 0.014732 0.102490 0.062162 0.204980 +0.043492 +0.055141 0.065459 0.059530 0.045889 0.018114 0.150318 0.063134 0.053773 0.113500 0.053962 0.050934 0.071016 0.003457 0.061227 0.084431 0.044754 0.017478 0.076981 0.045175 0.013070 0.050595 0.239144 0.085828 0.033411 0.011111 0.136654 0.064436 0.034633 0.032023 0.204980 0.094189 0.273307 +0.028922 +0.052820 0.047720 0.157985 0.036278 0.025071 0.170071 0.036505 0.026297 0.037276 0.061765 0.043306 0.086154 0.046112 0.030519 0.081885 0.080324 0.038350 0.037022 0.046165 0.050646 0.066100 0.204980 0.067196 0.016375 0.025064 0.102490 0.058530 0.011278 0.050586 0.136654 0.052168 0.273307 +0.221307 +0.026219 0.029313 0.088556 0.075903 0.039033 0.124455 0.056902 0.039033 0.040505 0.077645 0.018608 0.120549 0.033328 0.024292 0.041400 0.054114 0.040014 0.203066 0.046356 0.012376 0.046299 0.136654 0.057625 0.006284 0.065686 0.239144 0.077460 0.031103 0.018371 0.239144 0.055389 0.341634 +0.096133 +0.061928 0.017580 0.055906 0.041553 0.032631 0.045422 0.038048 0.060549 0.041764 0.045221 0.025522 0.303000 0.016335 0.064871 0.083618 0.040582 0.047153 0.388563 0.043142 0.053206 0.031714 0.102490 0.065853 0.000793 0.022093 0.170817 0.079655 0.038747 0.010408 0.170817 0.069178 0.204980 +0.756222 +0.067785 0.044723 0.209245 0.036201 0.043920 0.048340 0.039710 0.000248 0.047828 0.095879 0.037324 0.039911 0.009725 0.067744 0.058481 0.087630 0.044003 0.111907 0.049279 0.001817 0.042059 0.170817 0.092629 0.037079 0.006686 0.136654 0.051878 0.029478 0.046333 0.136654 0.080290 0.307471 +0 +0.061427 0.005697 0.121071 0.069339 0.041598 0.057771 0.025403 0.003773 0.104366 0.039489 0.043536 0.249547 0.008863 0.017914 0.057443 0.038030 0.039341 0.119403 0.040396 0.062295 0.035183 0.273307 0.072132 0.051556 0.029867 0.204980 0.081614 0.034211 0.025922 0.102490 0.094981 0.307471 +0.026491 +0.006386 0.065795 0.126394 0.038589 0.034117 0.194608 0.037077 0.027259 0.057007 0.051063 0.035558 0.042085 0.010978 0.033297 0.081098 0.089507 0.040831 0.406263 0.055043 0.010438 0.032611 0.136654 0.071501 0.061641 0.031727 0.136654 0.098935 0.059209 0.003460 0.204980 0.066755 0.307471 +0.288932 +0.009750 0.035021 0.239502 0.059456 0.047955 0.141841 0.023520 0.044118 0.079837 0.143251 0.019347 0.209940 0.028083 0.014365 0.134323 0.044745 0.040527 0.072658 0.046371 0.026065 0.047126 0.102490 0.098658 0.021768 0.066260 0.136654 0.068237 0.031772 0.019018 0.170817 0.074621 0.204980 +0.167549 +0.032094 0.012106 0.060603 0.044248 0.021817 0.085643 0.051638 0.039145 0.047750 0.057952 0.039037 0.099405 0.040985 0.064312 0.204923 0.086153 0.020221 0.054473 0.054219 0.012780 0.051584 0.136654 0.070450 0.005293 0.055794 0.102490 0.078386 0.057316 0.059540 0.136654 0.093168 0.204980 +0.013458 +0.001993 0.011698 0.047515 0.053814 0.032699 0.080397 0.017888 0.017236 0.034519 0.043881 0.017447 0.119383 0.057965 0.007963 0.038540 0.149652 0.028021 0.071125 0.060417 0.001845 0.062215 0.239144 0.096942 0.050114 0.040479 0.170817 0.070699 0.012287 0.059541 0.239144 0.095768 0.307471 +0.052084 +0.047884 0.064687 0.055330 0.123993 0.020195 0.056651 0.059632 0.024815 0.048468 0.045663 0.026759 0.114146 0.011760 0.036753 0.041022 0.080798 0.023175 0.191912 0.040442 0.058003 0.006357 0.102490 0.101482 0.051115 0.020930 0.170817 0.059164 0.004394 0.059161 0.136654 0.061124 0.239144 +0.021593 +0.041307 0.047205 0.105211 0.098562 0.039664 0.284603 0.050211 0.012902 0.109855 0.088685 0.027798 0.121921 0.039050 0.033656 0.038229 0.065789 0.042626 0.044312 0.062450 0.058155 0.025210 0.136654 0.095623 0.003273 0.021828 0.136654 0.078983 0.048663 0.046158 0.239144 0.052534 0.307471 +0.010016 +0.043800 0.028693 0.081959 0.058659 0.026227 0.046369 0.047408 0.000420 0.126266 0.053004 0.036199 0.231066 0.029622 0.021575 0.056756 0.041123 0.024731 0.115546 0.059355 0.044598 0.007725 0.204980 0.062968 0.054022 0.021462 0.170817 0.091150 0.007396 0.023361 0.239144 0.086174 0.341634 +0.008081 +0.024666 0.024956 0.044374 0.134968 0.038867 0.138077 0.023921 0.047283 0.051443 0.058865 0.028191 0.188954 0.016239 0.040021 0.038653 0.085069 0.029249 0.066388 0.048590 0.062123 0.054877 0.102490 0.069810 0.060765 0.061537 0.102490 0.059132 0.037384 0.004719 0.136654 0.090763 0.204980 +0.192596 +0.058929 0.000178 0.098014 0.117211 0.027753 0.164577 0.065525 0.019362 0.086706 0.101239 0.038853 0.111140 0.035111 0.008637 0.064053 0.127656 0.043909 0.102434 0.062225 0.060461 0.052671 0.204980 0.101628 0.054972 0.041747 0.136654 0.074016 0.057157 0.042119 0.170817 0.081002 0.239144 +0.045714 +0.017388 0.049139 0.044726 0.052096 0.034151 0.258055 0.053459 0.039903 0.185588 0.034357 0.042770 0.101953 0.064001 0.038278 0.044903 0.044188 0.023404 0.058428 0.039937 0.039525 0.021579 0.136654 0.097533 0.045571 0.050672 0.170817 0.074212 0.016643 0.024046 0.273307 0.083475 0.341634 +0.005275 +0.060453 0.000133 0.047934 0.082028 0.037813 0.236202 0.023345 0.056386 0.208900 0.039261 0.038232 0.186561 0.032001 0.033208 0.054072 0.053653 0.046514 0.075624 0.057562 0.056999 0.037845 0.170817 0.100422 0.066427 0.063155 0.170817 0.085474 0.027277 0.045095 0.136654 0.096701 0.239144 +0.133286 +0.056816 0.059141 0.075410 0.094071 0.041315 0.131206 0.041188 0.010889 0.079419 0.064077 0.018020 0.082045 0.050360 0.030562 0.040385 0.146822 0.019771 0.072724 0.057605 0.040236 0.044657 0.102490 0.055112 0.040777 0.019446 0.170817 0.091088 0.059581 0.057641 0.136654 0.051479 0.204980 +0.031201 +0.063400 0.040053 0.111011 0.045454 0.026100 0.074419 0.042470 0.021713 0.039936 0.065806 0.022056 0.090077 0.050773 0.066518 0.050672 0.089223 0.024637 0.115856 0.042895 0.016901 0.033067 0.102490 0.091254 0.038159 0.000824 0.204980 0.058655 0.041827 0.040204 0.273307 0.072332 0.307471 +0.054575 +0.039528 0.024004 0.037513 0.043424 0.043381 0.047633 0.012213 0.004966 0.052671 0.111601 0.041613 0.092772 0.036442 0.006522 0.040888 0.088977 0.023996 0.101800 0.057136 0.047183 0.036155 0.204980 0.064199 0.029807 0.019378 0.102490 0.095637 0.014476 0.009955 0.170817 0.087644 0.239144 +0 +0.015686 0.016201 0.092869 0.035750 0.050052 0.183821 0.037014 0.014206 0.049621 0.043905 0.050228 0.158739 0.041416 0.007159 0.041136 0.054193 0.044798 0.034656 0.057139 0.020652 0.046947 0.204980 0.075377 0.035755 0.054758 0.239144 0.101090 0.054363 0.059178 0.136654 0.093705 0.273307 +0.407757 +0.054270 0.011674 0.080191 0.054665 0.024652 0.055778 0.034849 0.001058 0.034780 0.093895 0.039460 0.056429 0.018629 0.017399 0.099598 0.134113 0.031284 0.103231 0.046571 0.026148 0.057581 0.170817 0.075333 0.066057 0.060659 0.102490 0.083956 0.043491 0.041863 0.170817 0.087331 0.239144 +0 +0.018767 0.008834 0.047035 0.040585 0.034228 0.040290 0.006591 0.017165 0.117302 0.049810 0.020827 0.104675 0.043313 0.057236 0.051679 0.041093 0.027091 0.163872 0.046925 0.046532 0.059183 0.102490 0.095617 0.034149 0.058529 0.102490 0.054145 0.062983 0.052143 0.136654 0.075785 0.204980 +0.002024 +0.024961 0.041689 0.062557 0.038016 0.029453 0.040548 0.034894 0.066716 0.040449 0.110393 0.025036 0.083070 0.012482 0.023006 0.098832 0.059631 0.027414 0.388127 0.058170 0.042363 0.035521 0.136654 0.052032 0.056914 0.058972 0.102490 0.073070 0.002843 0.058481 0.136654 0.070289 0.239144 +0.002278 +0.053008 0.047688 0.070085 0.038834 0.050133 0.078430 0.004418 0.020133 0.036513 0.134129 0.043756 0.356169 0.018978 0.061615 0.035779 0.146313 0.017815 0.080153 0.052844 0.018782 0.027913 0.136654 0.056513 0.020075 0.045195 0.102490 0.074524 0.054049 0.060435 0.102490 0.092271 0.307471 +0.303338 +0.031983 0.028799 0.106174 0.062905 0.025618 0.320737 0.020885 0.066781 0.056491 0.064890 0.038025 0.173306 0.001842 0.004543 0.072589 0.037560 0.017357 0.103755 0.043274 0.036597 0.044081 0.307471 0.067743 0.066203 0.011475 0.136654 0.085030 0.051127 0.058788 0.136654 0.058716 0.341634 +0.246996 +0.002270 0.020529 0.053203 0.080569 0.031748 0.121674 0.037123 0.066590 0.145772 0.057020 0.032141 0.149990 0.037803 0.000215 0.051732 0.056419 0.019874 0.163741 0.046466 0.035744 0.014635 0.102490 0.094156 0.044101 0.034087 0.102490 0.075413 0.048050 0.026657 0.136654 0.072288 0.204980 +0.045721 +0.009925 0.027447 0.055989 0.036201 0.031549 0.167851 0.006323 0.036515 0.056602 0.122689 0.049583 0.115029 0.049347 0.051872 0.081798 0.105017 0.022343 0.151675 0.051647 0.064717 0.032654 0.204980 0.064964 0.064253 0.058596 0.102490 0.093514 0.050152 0.055678 0.204980 0.073108 0.273307 +0.213715 +0.026891 0.049916 0.049512 0.037858 0.046691 0.095238 0.055834 0.033884 0.036130 0.079373 0.022256 0.048934 0.038386 0.009158 0.044518 0.045776 0.031245 0.037470 0.057489 0.031495 0.031278 0.170817 0.055106 0.005416 0.000033 0.136654 0.055469 0.004557 0.046935 0.102490 0.085373 0.273307 +0 +0.018514 0.041135 0.065493 0.085731 0.023058 0.065093 0.029491 0.050420 0.060689 0.042775 0.048515 0.054579 0.019703 0.011371 0.078962 0.040150 0.018208 0.152542 0.047044 0.016929 0.024370 0.204980 0.052748 0.003126 0.011203 0.273307 0.071286 0.040313 0.047146 0.136654 0.061864 0.307471 +0.060497 +0.000470 0.011796 0.083666 0.047359 0.045186 0.053043 0.028923 0.036941 0.036740 0.116024 0.047988 0.178941 0.036905 0.034274 0.049095 0.096499 0.031534 0.271155 0.057932 0.058656 0.039415 0.170817 0.094529 0.012452 0.021228 0.102490 0.057639 0.019095 0.030438 0.307471 0.062813 0.341634 +0.043834 +0.014531 0.035715 0.165456 0.038290 0.019381 0.266015 0.040399 0.035790 0.051971 0.051637 0.023336 0.094457 0.021782 0.009089 0.043289 0.042294 0.023852 0.711770 0.062692 0.065645 0.000029 0.204980 0.061214 0.021241 0.041699 0.307471 0.082470 0.061798 0.032156 0.170817 0.097928 0.341634 +0.076692 +0.060842 0.004286 0.043857 0.140363 0.047206 0.041602 0.038894 0.004062 0.065364 0.051066 0.046592 0.144129 0.014320 0.033129 0.068742 0.071676 0.030303 0.199909 0.064141 0.010057 0.000077 0.136654 0.074409 0.060232 0.035335 0.136654 0.065835 0.026170 0.030498 0.136654 0.082508 0.341634 +0 +0.030036 0.015829 0.038673 0.046934 0.028090 0.271110 0.026509 0.026354 0.097478 0.037544 0.021545 0.047755 0.055195 0.065695 0.111780 0.043692 0.026530 0.453913 0.054987 0.035543 0.013534 0.170817 0.063108 0.039112 0.054883 0.102490 0.064194 0.033383 0.013872 0.170817 0.068961 0.273307 +0.622476 +0.057217 0.057533 0.072065 0.223443 0.039742 0.069254 0.044459 0.004459 0.070178 0.037495 0.048122 0.583096 0.041244 0.040458 0.062867 0.038918 0.028043 0.063811 0.052127 0.009934 0.011216 0.170817 0.082236 0.025538 0.025941 0.136654 0.057261 0.009479 0.013353 0.204980 0.093550 0.239144 +0.490237 +0.029258 0.060382 0.047101 0.041183 0.047693 0.062250 0.022041 0.007393 0.075673 0.053296 0.019281 0.042441 0.049140 0.051386 0.035163 0.078315 0.029301 0.070316 0.054642 0.020618 0.036912 0.102490 0.092683 0.029324 0.023384 0.170817 0.093657 0.044444 0.054564 0.136654 0.084485 0.204980 +0.005644 +0.038111 0.026100 0.041681 0.035060 0.023918 0.229674 0.064703 0.042806 0.174624 0.044782 0.044889 0.280443 0.031641 0.061216 0.037152 0.039547 0.028742 0.035353 0.053278 0.020516 0.032061 0.102490 0.079840 0.056184 0.020319 0.102490 0.088265 0.015646 0.028423 0.102490 0.096111 0.239144 +0.218299 +0.041594 0.042250 0.106652 0.080268 0.043996 0.049370 0.049712 0.002708 0.056513 0.183088 0.018461 0.099952 0.020043 0.003287 0.034788 0.058809 0.017908 0.088282 0.065260 0.034215 0.010440 0.204980 0.084743 0.002502 0.001737 0.136654 0.087134 0.027145 0.021995 0.136654 0.080421 0.341634 +0 +0.046579 0.057819 0.037390 0.148797 0.033961 0.109886 0.007334 0.026438 0.044186 0.039289 0.038056 0.215306 0.054093 0.047392 0.035192 0.068397 0.047797 0.635353 0.042911 0.039138 0.048288 0.136654 0.062307 0.011547 0.010276 0.273307 0.067727 0.050173 0.022928 0.170817 0.093080 0.307471 +0.705644 +0.031809 0.060799 0.047369 0.051775 0.043467 0.039881 0.022899 0.008754 0.047272 0.040654 0.033402 0.183856 0.001685 0.055200 0.123648 0.105178 0.031489 0.255393 0.049049 0.053151 0.008284 0.102490 0.085835 0.060999 0.039624 0.204980 0.065746 0.042159 0.004080 0.170817 0.061658 0.273307 +0.169518 +0.058106 0.064916 0.111794 0.082384 0.032319 0.052770 0.033081 0.003154 0.037762 0.131487 0.051201 0.096103 0.038938 0.036372 0.063467 0.036263 0.021463 0.390107 0.039870 0.000983 0.050484 0.102490 0.087659 0.064757 0.002561 0.204980 0.064641 0.038213 0.025351 0.102490 0.095630 0.239144 +0 +0.026057 0.061526 0.050881 0.060963 0.044695 0.120654 0.035901 0.038279 0.050218 0.117951 0.017487 0.170541 0.051216 0.023969 0.078156 0.051758 0.043500 0.045065 0.054435 0.025035 0.037094 0.204980 0.051811 0.058876 0.030303 0.170817 0.064542 0.063352 0.004063 0.204980 0.057754 0.239144 +0.164659 +0.037901 0.039160 0.121574 0.151787 0.018459 0.106792 0.047129 0.009178 0.132438 0.044171 0.019934 0.136079 0.001431 0.065673 0.053863 0.054879 0.027373 0.175796 0.043293 0.060772 0.017638 0.170817 0.087471 0.032732 0.007142 0.102490 0.077855 0.023708 0.033684 0.102490 0.101950 0.307471 +0.056122 +0.052867 0.048101 0.035212 0.072853 0.031463 0.141799 0.057500 0.033272 0.043976 0.083850 0.036726 0.035771 0.065098 0.064510 0.107371 0.046392 0.036867 0.124863 0.053081 0.004634 0.044771 0.170817 0.101234 0.021887 0.007526 0.136654 0.090800 0.026339 0.063499 0.102490 0.052872 0.273307 +0 +0.027679 0.044613 0.082001 0.068961 0.043608 0.122417 0.057165 0.025565 0.204051 0.105892 0.045905 0.333277 0.063527 0.038543 0.086135 0.034824 0.046728 0.276865 0.040406 0.040929 0.023931 0.204980 0.072716 0.002451 0.001060 0.136654 0.095722 0.056553 0.053011 0.170817 0.058821 0.239144 +0.382809 +0.061653 0.038112 0.044828 0.080090 0.043936 0.074078 0.003786 0.007278 0.113578 0.050132 0.048080 0.249242 0.024531 0.012806 0.060377 0.136406 0.022037 0.039542 0.040171 0.032843 0.033525 0.102490 0.100271 0.019449 0.048153 0.102490 0.065889 0.053259 0.029892 0.170817 0.070382 0.204980 +0.041893 +0.020616 0.010467 0.166703 0.155950 0.034440 0.130060 0.050261 0.014770 0.092135 0.053403 0.048368 0.043371 0.036928 0.064899 0.046286 0.072438 0.044068 0.148391 0.055913 0.019987 0.067764 0.102490 0.061245 0.009266 0.047402 0.102490 0.068670 0.028845 0.023249 0.102490 0.100612 0.204980 +0 +0.064725 0.016651 0.055618 0.074793 0.043449 0.066321 0.000152 0.034116 0.040575 0.077897 0.039650 0.130026 0.051159 0.049995 0.058018 0.091895 0.049234 0.121068 0.048756 0.031627 0.004106 0.170817 0.086035 0.012379 0.056249 0.102490 0.065358 0.033469 0.017527 0.307471 0.079195 0.341634 +0.049356 +0.006824 0.001194 0.059771 0.041836 0.035638 0.047314 0.057762 0.046121 0.118575 0.092270 0.034313 0.037868 0.034155 0.035360 0.035439 0.085114 0.048145 0.137655 0.049265 0.051502 0.058842 0.170817 0.069088 0.006978 0.021121 0.102490 0.073111 0.041709 0.054972 0.239144 0.086818 0.341634 +0 +0.027309 0.059639 0.113304 0.042149 0.035835 0.035508 0.027122 0.023861 0.055560 0.035842 0.036620 0.034956 0.037637 0.050631 0.049936 0.071504 0.029586 0.552094 0.050541 0.015826 0.028635 0.170817 0.095444 0.017892 0.037584 0.273307 0.056191 0.004311 0.002320 0.170817 0.086321 0.307471 +0.185607 +0.058736 0.018622 0.089590 0.084801 0.048350 0.048289 0.010818 0.043773 0.052285 0.050809 0.018319 0.066605 0.034041 0.063534 0.034888 0.048788 0.021166 0.303225 0.048546 0.024219 0.014823 0.170817 0.053732 0.041638 0.067671 0.204980 0.073540 0.063939 0.063306 0.136654 0.061315 0.273307 +0 +0.041442 0.050634 0.065292 0.110110 0.025053 0.153000 0.001851 0.067764 0.111335 0.188577 0.034518 0.057346 0.007765 0.058669 0.048474 0.105143 0.031699 0.050886 0.051421 0.057771 0.038835 0.136654 0.056304 0.030531 0.012403 0.136654 0.053066 0.015352 0.042218 0.102490 0.051446 0.239144 +0 +0.059356 0.027531 0.072584 0.061293 0.040535 0.047221 0.014665 0.011310 0.038606 0.049054 0.028282 0.096019 0.057694 0.013910 0.034198 0.048616 0.034184 0.108116 0.039485 0.045740 0.025493 0.170817 0.051934 0.046835 0.002321 0.204980 0.064469 0.023555 0.056155 0.102490 0.087721 0.273307 +0.009126 +0.005682 0.005478 0.039181 0.070652 0.023356 0.139491 0.036080 0.068277 0.051226 0.101471 0.037756 0.050208 0.003644 0.054841 0.115334 0.100143 0.020482 0.253709 0.036946 0.004351 0.053183 0.136654 0.069366 0.056716 0.044442 0.102490 0.091602 0.063451 0.017640 0.102490 0.080013 0.239144 +0.281534 +0.062324 0.045805 0.052046 0.109824 0.039203 0.117690 0.061756 0.016104 0.069467 0.061398 0.038530 0.300696 0.049523 0.010210 0.114540 0.126653 0.042014 0.233185 0.039142 0.026652 0.004845 0.136654 0.052692 0.001348 0.005037 0.136654 0.095764 0.052962 0.046293 0.239144 0.077918 0.273307 +0.555954 +0.009428 0.001981 0.065622 0.101518 0.045979 0.202996 0.018751 0.031904 0.037073 0.091738 0.037076 0.035318 0.018011 0.046538 0.206689 0.053813 0.045484 0.290796 0.057045 0.047896 0.041845 0.204980 0.087958 0.022334 0.036739 0.170817 0.090207 0.043373 0.040098 0.239144 0.067726 0.273307 +0.060415 +0.014615 0.024841 0.061106 0.063474 0.036490 0.149739 0.042851 0.060595 0.034533 0.080235 0.042596 0.099038 0.027934 0.017180 0.042729 0.076616 0.026580 0.081275 0.055651 0.045114 0.045101 0.170817 0.073037 0.008623 0.040180 0.204980 0.100602 0.001985 0.063582 0.136654 0.079185 0.307471 +0.092849 +0.034010 0.033056 0.121949 0.036046 0.038661 0.083006 0.058616 0.014277 0.038445 0.078521 0.020875 0.064802 0.060535 0.065085 0.072962 0.171424 0.028404 0.040253 0.045031 0.042827 0.001645 0.102490 0.073200 0.045467 0.052995 0.204980 0.075268 0.034500 0.040570 0.136654 0.058467 0.239144 +0.001816 +0.047476 0.020978 0.056228 0.106911 0.019733 0.176615 0.015645 0.050641 0.049864 0.037675 0.045942 0.202876 0.010021 0.062138 0.058365 0.068596 0.018265 0.179559 0.058740 0.052977 0.021558 0.273307 0.075236 0.016072 0.056497 0.239144 0.069449 0.029318 0.037333 0.204980 0.082115 0.307471 +0.081338 +0.055134 0.019370 0.127260 0.058995 0.032357 0.146261 0.047039 0.008762 0.055994 0.088070 0.025981 0.039338 0.065860 0.011584 0.055575 0.063386 0.046090 0.127168 0.048012 0.012371 0.029629 0.273307 0.056201 0.013753 0.061888 0.273307 0.082162 0.026871 0.045380 0.136654 0.087482 0.307471 +0.022304 +0.001819 0.041620 0.052344 0.168465 0.032863 0.124355 0.002323 0.029720 0.063139 0.067339 0.024563 0.129209 0.063903 0.025355 0.054840 0.045556 0.020815 0.150757 0.049719 0.013426 0.032391 0.204980 0.099027 0.059855 0.061110 0.136654 0.084942 0.042724 0.064271 0.170817 0.091525 0.341634 +0.018386 +0.049348 0.005894 0.060034 0.034587 0.034823 0.051211 0.059715 0.049464 0.053195 0.076884 0.035705 0.109954 0.012277 0.002001 0.080308 0.059726 0.048061 0.052408 0.041945 0.058492 0.005335 0.136654 0.055311 0.066476 0.008001 0.239144 0.058240 0.014731 0.067633 0.170817 0.070949 0.273307 +0.006175 +0.013769 0.050465 0.050576 0.100237 0.034647 0.059020 0.037394 0.005899 0.076655 0.047311 0.037903 0.078744 0.053475 0.013396 0.085617 0.045856 0.032666 0.162315 0.049164 0.030736 0.024574 0.102490 0.091537 0.062198 0.005577 0.102490 0.062775 0.056143 0.063452 0.204980 0.067302 0.239144 +0 +0.057868 0.028028 0.068673 0.092655 0.034277 0.088671 0.001273 0.035483 0.041354 0.039173 0.029911 0.182337 0.015330 0.034708 0.058177 0.053970 0.041394 0.051199 0.043172 0.047425 0.005105 0.204980 0.067506 0.064934 0.020514 0.239144 0.086182 0.065945 0.043116 0.204980 0.070240 0.273307 +0.029583 +0.001837 0.032801 0.038915 0.061518 0.041491 0.042745 0.053882 0.020358 0.104834 0.036082 0.037527 0.270042 0.037527 0.059621 0.036167 0.092813 0.029606 0.323644 0.053191 0.050903 0.061560 0.273307 0.099590 0.003122 0.013408 0.307471 0.070030 0.064522 0.053725 0.204980 0.078982 0.341634 +0.102518 +0.021095 0.020367 0.040087 0.044780 0.032596 0.109506 0.037168 0.061308 0.056487 0.082057 0.030816 0.040410 0.058346 0.029018 0.044477 0.036062 0.048989 0.103752 0.045218 0.063752 0.013999 0.239144 0.092678 0.058773 0.050350 0.239144 0.085577 0.003173 0.057138 0.102490 0.083225 0.307471 +0 +0.011797 0.064444 0.046534 0.095873 0.032322 0.066840 0.062342 0.058014 0.046502 0.039091 0.034663 0.252531 0.010012 0.057949 0.238873 0.080681 0.034962 0.368448 0.057669 0.066279 0.014813 0.136654 0.068283 0.014414 0.020730 0.136654 0.055696 0.067801 0.023981 0.102490 0.055429 0.204980 +0.289201 +0.023736 0.028307 0.093546 0.041037 0.026447 0.050533 0.022436 0.056900 0.038421 0.045346 0.020753 0.043604 0.036704 0.042211 0.074897 0.066584 0.038408 0.186229 0.056193 0.044797 0.064898 0.204980 0.052562 0.055120 0.001952 0.204980 0.073545 0.063923 0.065478 0.170817 0.054866 0.273307 +0.088840 +0.037038 0.004315 0.158340 0.034587 0.037136 0.067673 0.003581 0.039447 0.060672 0.041174 0.023165 0.035744 0.021131 0.009084 0.037975 0.034523 0.018430 0.036314 0.052473 0.013206 0.008478 0.102490 0.081189 0.058787 0.053566 0.204980 0.068465 0.067659 0.036737 0.170817 0.053857 0.341634 +0 +0.017015 0.042930 0.185633 0.056442 0.043968 0.203808 0.055621 0.037951 0.099660 0.052998 0.046725 0.066648 0.064330 0.063580 0.039659 0.116381 0.041871 0.210336 0.050127 0.062987 0.026273 0.239144 0.072108 0.002487 0.043687 0.204980 0.087227 0.036559 0.059336 0.239144 0.075458 0.341634 +0 +0.022356 0.019768 0.045352 0.035979 0.046972 0.065492 0.020747 0.030738 0.099244 0.099082 0.019561 0.061182 0.003288 0.019360 0.073489 0.087134 0.041357 0.060262 0.055590 0.043158 0.038875 0.102490 0.098184 0.023076 0.053182 0.239144 0.083683 0.004942 0.034833 0.170817 0.080063 0.341634 +0 +0.029911 0.057046 0.043244 0.040812 0.049559 0.082702 0.021214 0.049820 0.103861 0.072577 0.039370 0.114870 0.063073 0.021984 0.045526 0.043860 0.040135 0.046209 0.045551 0.038977 0.010057 0.204980 0.083690 0.037845 0.008651 0.307471 0.074662 0.031001 0.018036 0.136654 0.091016 0.341634 +0.020634 +0.002145 0.025388 0.037302 0.135426 0.017169 0.043687 0.051828 0.041051 0.072511 0.108908 0.043417 0.054138 0.053341 0.064135 0.035057 0.049887 0.034601 0.067429 0.055466 0.009762 0.009183 0.102490 0.072521 0.066967 0.052341 0.136654 0.085453 0.007898 0.004781 0.102490 0.069900 0.307471 +0 +0.021865 0.060117 0.052145 0.066354 0.024128 0.068198 0.044934 0.039901 0.044142 0.052344 0.043852 0.228299 0.022193 0.046116 0.106239 0.081735 0.025743 0.067897 0.042359 0.015416 0.034315 0.136654 0.060325 0.055113 0.066734 0.170817 0.099255 0.066347 0.059240 0.170817 0.074506 0.204980 +0.540494 +0.053088 0.026609 0.049445 0.080760 0.017397 0.082369 0.045820 0.051472 0.065513 0.045992 0.050025 0.048730 0.039351 0.063806 0.112593 0.104617 0.024927 0.220823 0.053707 0.020843 0.015566 0.102490 0.059807 0.036032 0.027853 0.239144 0.074204 0.031455 0.022046 0.239144 0.056921 0.341634 +0.026419 +0.039412 0.014506 0.068843 0.187979 0.041183 0.098362 0.061294 0.014365 0.066280 0.042929 0.030845 0.115095 0.055915 0.031650 0.046947 0.037123 0.018013 0.040109 0.051792 0.066161 0.058824 0.102490 0.059546 0.068238 0.068002 0.102490 0.079698 0.055874 0.055396 0.170817 0.095054 0.307471 +0 +0.025448 0.006701 0.044718 0.058304 0.035693 0.767577 0.060409 0.035181 0.052426 0.047952 0.028990 0.190703 0.048249 0.054328 0.034573 0.057281 0.026095 0.063801 0.045470 0.051665 0.005869 0.136654 0.072096 0.055230 0.013932 0.102490 0.062587 0.010544 0.019674 0.102490 0.077453 0.204980 +0.670615 +0.043198 0.034246 0.047756 0.047762 0.044812 0.156737 0.064350 0.009584 0.133040 0.231371 0.017984 0.041395 0.021403 0.004140 0.038320 0.039267 0.019317 0.279384 0.060914 0.053761 0.027896 0.136654 0.081642 0.040562 0.016771 0.170817 0.083467 0.052504 0.022662 0.102490 0.086860 0.204980 +0.233368 +0.066268 0.021598 0.055322 0.036073 0.045709 0.079559 0.020606 0.032827 0.072761 0.065230 0.028462 0.079440 0.028675 0.004068 0.054625 0.073411 0.040703 0.162317 0.064782 0.028739 0.047642 0.136654 0.052687 0.002407 0.000402 0.307471 0.089887 0.046796 0.046478 0.136654 0.061224 0.341634 +0 +0.060205 0.051988 0.043295 0.073975 0.021108 0.214544 0.056561 0.012389 0.103845 0.066381 0.022225 0.103951 0.015552 0.023873 0.041342 0.072175 0.048837 0.050273 0.061304 0.031706 0.028822 0.170817 0.063556 0.013274 0.017956 0.204980 0.084646 0.021356 0.042782 0.102490 0.091176 0.307471 +0.002273 +0.059013 0.064708 0.076132 0.108411 0.031520 0.071564 0.048747 0.056049 0.035003 0.037923 0.035949 0.168501 0.014884 0.016248 0.053186 0.049509 0.032574 0.074334 0.056385 0.034555 0.002105 0.170817 0.062729 0.002345 0.031661 0.102490 0.066440 0.017363 0.020688 0.102490 0.098040 0.204980 +0.011600 +0.062338 0.035935 0.054793 0.040121 0.027903 0.120310 0.064187 0.026964 0.059834 0.035462 0.045254 0.140108 0.019387 0.052627 0.065942 0.046822 0.017953 0.387726 0.052362 0.053054 0.042997 0.170817 0.055772 0.056581 0.052776 0.136654 0.095617 0.015844 0.065272 0.136654 0.088368 0.204980 +0.480332 +0.027400 0.001344 0.109930 0.036468 0.027758 0.044612 0.065817 0.027678 0.088496 0.057892 0.047023 0.217290 0.014618 0.008964 0.049224 0.069952 0.029187 0.037349 0.052775 0.000443 0.067384 0.170817 0.089474 0.015110 0.045205 0.170817 0.091451 0.066153 0.025922 0.136654 0.084294 0.204980 +0.130266 +0.046900 0.024729 0.091528 0.106690 0.023049 0.213007 0.045638 0.015907 0.150698 0.038789 0.050952 0.159349 0.063418 0.063698 0.054114 0.044809 0.030041 0.300462 0.048330 0.037952 0.010145 0.136654 0.066549 0.009714 0.005525 0.102490 0.063373 0.047014 0.041876 0.102490 0.078434 0.204980 +0.294246 +0.016348 0.017379 0.041549 0.173686 0.031134 0.113218 0.060686 0.017699 0.068217 0.124163 0.035566 0.136613 0.014572 0.043214 0.055474 0.042511 0.022140 0.034755 0.044431 0.063303 0.007546 0.136654 0.100116 0.051970 0.016499 0.204980 0.085233 0.018753 0.025943 0.204980 0.052346 0.239144 +0.037056 +0.058417 0.003983 0.056165 0.039999 0.029979 0.110294 0.034199 0.045297 0.047426 0.073878 0.046152 0.056833 0.049755 0.046024 0.049255 0.043332 0.033634 0.067521 0.054634 0.024956 0.015231 0.136654 0.063541 0.000747 0.065293 0.204980 0.057481 0.062700 0.001195 0.307471 0.080848 0.341634 +0.001805 +0.018124 0.009820 0.038702 0.087825 0.029664 0.054081 0.056614 0.022011 0.167019 0.090390 0.039565 0.101027 0.000606 0.025872 0.096508 0.140762 0.026420 0.038673 0.047775 0.048515 0.039038 0.102490 0.097045 0.038711 0.033764 0.136654 0.093432 0.005903 0.043938 0.102490 0.081956 0.204980 +0 +0.065288 0.011205 0.036735 0.056052 0.026114 0.040833 0.018808 0.052526 0.043421 0.052079 0.036097 0.060163 0.050958 0.032241 0.034574 0.065270 0.043494 0.061941 0.052415 0.041805 0.066290 0.102490 0.061928 0.032737 0.040141 0.102490 0.086935 0.061297 0.006954 0.102490 0.100684 0.239144 +0 +0.061163 0.018583 0.059498 0.106572 0.022595 0.068195 0.014213 0.022233 0.045846 0.146734 0.033840 0.108545 0.022597 0.045032 0.084846 0.048541 0.022265 0.085517 0.053981 0.063663 0.010596 0.204980 0.085431 0.042337 0.005127 0.102490 0.101179 0.024230 0.015470 0.136654 0.075877 0.239144 +0.011604 +0.017867 0.031745 0.043570 0.042908 0.020398 0.070326 0.065990 0.045362 0.079691 0.096798 0.024181 0.052212 0.001628 0.047415 0.070940 0.054978 0.046286 0.047275 0.060335 0.049909 0.022868 0.170817 0.075232 0.006103 0.017564 0.102490 0.076912 0.053520 0.037963 0.136654 0.069498 0.273307 +0 +0.029778 0.062490 0.059868 0.051713 0.043024 0.248233 0.000516 0.055721 0.053302 0.064091 0.047741 0.095953 0.032000 0.011904 0.050780 0.083856 0.020537 0.122669 0.042588 0.058431 0.023565 0.102490 0.083998 0.001626 0.033852 0.204980 0.053825 0.029222 0.029825 0.102490 0.094687 0.239144 +0.189181 +0.057575 0.015371 0.082813 0.173737 0.020524 0.134215 0.017514 0.027255 0.049122 0.114612 0.024912 0.058181 0.042990 0.031567 0.034369 0.066323 0.043654 0.074236 0.056934 0.027361 0.045203 0.136654 0.089972 0.038439 0.000475 0.170817 0.064853 0.032048 0.033613 0.136654 0.082611 0.204980 +0.016995 +0.045074 0.051972 0.048908 0.066098 0.045159 0.276497 0.067104 0.052531 0.056399 0.037020 0.043201 0.177978 0.055087 0.028187 0.096882 0.096986 0.031787 0.101721 0.054885 0.005289 0.011821 0.204980 0.086726 0.003158 0.042165 0.204980 0.061814 0.003772 0.061006 0.170817 0.077764 0.273307 +0.306837 +0.019603 0.053981 0.068964 0.035472 0.019151 0.062297 0.051526 0.045434 0.128281 0.055829 0.042157 0.109189 0.015342 0.047561 0.040657 0.083632 0.051014 0.085270 0.060826 0.036592 0.050091 0.273307 0.063429 0.039793 0.016061 0.307471 0.071262 0.066733 0.050183 0.273307 0.057257 0.341634 +0.001219 +0.030627 0.041397 0.065618 0.071972 0.037881 0.101102 0.033250 0.059513 0.054250 0.088706 0.021208 0.108559 0.030921 0.006582 0.080892 0.041329 0.020372 0.066894 0.047832 0.016932 0.044921 0.170817 0.085570 0.020062 0.025863 0.102490 0.071350 0.014061 0.034431 0.170817 0.086714 0.204980 +0.083826 +0.050301 0.006489 0.084046 0.044591 0.037773 0.145598 0.058831 0.039780 0.075333 0.107479 0.018562 0.051064 0.034884 0.066566 0.042540 0.039036 0.030279 0.118385 0.048797 0.027285 0.000832 0.102490 0.102388 0.048870 0.042404 0.204980 0.085030 0.036141 0.016304 0.204980 0.085161 0.239144 +0.114571 +0.001906 0.000042 0.042033 0.130220 0.038388 0.096349 0.026259 0.054967 0.059075 0.063618 0.022346 0.069521 0.022933 0.063849 0.049762 0.039784 0.049040 0.116619 0.050308 0.053910 0.042682 0.102490 0.091554 0.014731 0.034078 0.170817 0.089764 0.059088 0.031529 0.170817 0.079138 0.273307 +0.008093 +0.000908 0.004397 0.066615 0.045375 0.046549 0.357115 0.010422 0.039946 0.113323 0.051256 0.042240 0.089341 0.027025 0.038360 0.048010 0.041398 0.033726 0.077295 0.058538 0.022250 0.050221 0.170817 0.067464 0.012528 0.048846 0.170817 0.057602 0.066069 0.058419 0.136654 0.078554 0.204980 +0.695254 +0.033382 0.011534 0.035936 0.036831 0.022694 0.047750 0.047819 0.024714 0.094268 0.106598 0.030186 0.071386 0.042058 0.041781 0.067008 0.076773 0.035896 0.162410 0.052538 0.037146 0.031754 0.102490 0.078829 0.053900 0.039402 0.102490 0.063777 0.020612 0.057908 0.170817 0.082052 0.204980 +0.077897 +0.054218 0.024619 0.110117 0.050321 0.026004 0.131606 0.057897 0.019422 0.104762 0.052776 0.019778 0.083129 0.031136 0.028307 0.055883 0.035602 0.042488 0.158112 0.044747 0.055225 0.040299 0.170817 0.087461 0.028975 0.044254 0.136654 0.061942 0.019045 0.026427 0.102490 0.055855 0.273307 +0.003810 +0.055647 0.011053 0.084978 0.052460 0.045247 0.125104 0.013332 0.018455 0.042604 0.121289 0.037573 0.191530 0.046586 0.060870 0.102350 0.071013 0.023464 0.086428 0.047720 0.039896 0.002923 0.170817 0.063909 0.027974 0.004236 0.102490 0.071840 0.064038 0.009635 0.170817 0.097854 0.204980 +0.109925 +0.062028 0.063530 0.081707 0.047741 0.026224 0.065794 0.021984 0.066786 0.088466 0.039646 0.026349 0.092036 0.050466 0.034193 0.053713 0.044933 0.023474 0.035024 0.063819 0.034807 0.055576 0.102490 0.059910 0.034001 0.010013 0.136654 0.089405 0.046489 0.037370 0.136654 0.092352 0.204980 +0.002772 +0.035176 0.057561 0.118476 0.042550 0.034115 0.144430 0.035548 0.014225 0.091141 0.053752 0.023073 0.074497 0.029048 0.043176 0.086646 0.042122 0.039746 0.562802 0.043065 0.015423 0.060253 0.136654 0.093949 0.058825 0.012727 0.136654 0.089779 0.030183 0.005671 0.204980 0.069657 0.239144 +0.341314 +0.046204 0.055355 0.060381 0.053416 0.034580 0.090671 0.050477 0.059560 0.052893 0.035391 0.028476 0.133121 0.012089 0.007644 0.039608 0.041313 0.049704 0.044819 0.053707 0.046885 0.008677 0.102490 0.051271 0.013184 0.040093 0.136654 0.052618 0.031756 0.053660 0.136654 0.065999 0.204980 +0.028726 +0.029696 0.002838 0.080788 0.052241 0.023519 0.061583 0.017966 0.030128 0.076240 0.061661 0.029393 0.229291 0.055731 0.058100 0.051190 0.037561 0.020936 0.349898 0.060480 0.016234 0.001635 0.170817 0.100597 0.048450 0.030647 0.102490 0.052669 0.042049 0.044400 0.136654 0.077541 0.204980 +0.249480 +0.047339 0.010466 0.051538 0.059150 0.022007 0.128633 0.034995 0.047828 0.060496 0.056308 0.026429 0.139572 0.010593 0.011316 0.036875 0.049117 0.049208 0.303192 0.049807 0.032713 0.052682 0.136654 0.065470 0.059967 0.028282 0.239144 0.058009 0.047457 0.048292 0.136654 0.071532 0.307471 +0.556125 +0.058567 0.017838 0.077721 0.068384 0.023333 0.122375 0.038920 0.038369 0.078209 0.049684 0.022364 0.035253 0.018190 0.035130 0.042345 0.047559 0.049017 0.046875 0.067035 0.054457 0.050158 0.102490 0.081190 0.056968 0.035806 0.239144 0.070205 0.004757 0.045536 0.239144 0.066114 0.307471 +0 +0.024258 0.046102 0.042254 0.065087 0.031554 0.244538 0.031950 0.058284 0.059567 0.039843 0.045180 0.049568 0.042519 0.003566 0.064527 0.039189 0.031418 0.244874 0.060780 0.054349 0.024349 0.136654 0.071074 0.017808 0.053609 0.170817 0.088720 0.025382 0.065631 0.170817 0.072576 0.273307 +0.003746 +0.056561 0.036635 0.147642 0.052441 0.041512 0.159408 0.023653 0.042363 0.057044 0.062108 0.028865 0.410980 0.053113 0.015689 0.076176 0.049693 0.022099 0.073089 0.054053 0.002856 0.021387 0.102490 0.055607 0.067342 0.054118 0.102490 0.092810 0.036468 0.055926 0.170817 0.085470 0.204980 +0.616287 +0.044295 0.041017 0.057254 0.075318 0.048809 0.055492 0.045862 0.001833 0.090772 0.074501 0.029477 0.071301 0.052352 0.048563 0.044048 0.096434 0.029041 0.190421 0.065330 0.034428 0.056523 0.136654 0.065984 0.033239 0.066308 0.136654 0.064953 0.031373 0.047285 0.170817 0.093814 0.204980 +0.010729 +0.063533 0.031585 0.041618 0.058433 0.018326 0.408377 0.023371 0.004043 0.102701 0.113295 0.041369 0.040526 0.003509 0.044895 0.066940 0.043749 0.045294 0.055589 0.051002 0.047501 0.053621 0.102490 0.057351 0.030148 0.036674 0.204980 0.074943 0.040758 0.009165 0.273307 0.075399 0.307471 +0 +0.028548 0.013802 0.038936 0.136704 0.038217 0.096183 0.041220 0.032615 0.111196 0.037181 0.020172 0.067767 0.032268 0.004707 0.120595 0.159474 0.041212 0.204029 0.052426 0.046856 0.009685 0.136654 0.053898 0.048706 0.037373 0.102490 0.097647 0.014311 0.048640 0.273307 0.098877 0.307471 +0 +0.032645 0.051482 0.041106 0.041048 0.032721 0.084351 0.039618 0.040914 0.036354 0.103709 0.050390 0.052240 0.039479 0.001808 0.036392 0.092430 0.049423 0.090867 0.036676 0.054015 0.061257 0.136654 0.092699 0.001778 0.019479 0.239144 0.068490 0.049486 0.000885 0.102490 0.073710 0.341634 +0 +0.010967 0.024550 0.196682 0.169722 0.039034 0.072195 0.026536 0.068306 0.108048 0.046958 0.041009 0.255795 0.065809 0.042343 0.034269 0.101153 0.018396 0.094831 0.050505 0.005082 0.048488 0.102490 0.089228 0.036221 0.061294 0.170817 0.079464 0.039584 0.017857 0.102490 0.085624 0.204980 +0.155379 +0.001068 0.056827 0.046905 0.071734 0.024230 0.224141 0.044917 0.055026 0.055020 0.045388 0.047293 0.219317 0.029290 0.067221 0.053061 0.055666 0.049216 0.078564 0.041587 0.012862 0.015828 0.239144 0.069052 0.019057 0.023761 0.204980 0.065216 0.052685 0.013624 0.102490 0.084063 0.273307 +0.143012 +0.062814 0.024837 0.072337 0.066637 0.028926 0.055330 0.028685 0.015956 0.054174 0.036142 0.046155 0.301355 0.049422 0.013372 0.220217 0.164174 0.030039 0.482771 0.067072 0.047029 0.044060 0.136654 0.078969 0.023339 0.015870 0.136654 0.092926 0.020818 0.021447 0.170817 0.067242 0.204980 +0.353424 +0.030203 0.016442 0.049530 0.091643 0.042463 0.154307 0.060145 0.056254 0.050078 0.113506 0.047802 0.157845 0.029920 0.065991 0.084066 0.034590 0.018112 0.295210 0.053881 0.059810 0.049392 0.102490 0.051277 0.019471 0.021614 0.136654 0.068699 0.053899 0.023609 0.136654 0.097688 0.204980 +0.541006 +0.062976 0.008948 0.045519 0.092100 0.031846 0.454217 0.021086 0.033469 0.052523 0.035399 0.026199 0.049952 0.030453 0.010339 0.067943 0.056291 0.020236 0.065580 0.040069 0.036052 0.019161 0.102490 0.082965 0.026916 0.024944 0.170817 0.059186 0.067692 0.027791 0.170817 0.073487 0.204980 +0.091423 +0.001924 0.006538 0.144022 0.064928 0.046685 0.075299 0.004735 0.018012 0.122054 0.038703 0.028578 0.048277 0.066098 0.026369 0.107133 0.078219 0.047906 0.445968 0.042806 0.062240 0.016504 0.239144 0.053968 0.005918 0.027306 0.204980 0.089128 0.035728 0.030932 0.239144 0.097022 0.273307 +0.299678 +0.001220 0.019663 0.039800 0.045930 0.024155 0.208779 0.049558 0.048234 0.043425 0.038169 0.041206 0.277051 0.021572 0.015526 0.107528 0.041888 0.049956 0.284837 0.050647 0.007743 0.060145 0.136654 0.061682 0.055819 0.038438 0.102490 0.102482 0.039283 0.003321 0.136654 0.057479 0.307471 +0.396504 +0.066862 0.006398 0.047511 0.037772 0.024427 0.038515 0.006544 0.053120 0.113410 0.039955 0.038543 0.051954 0.022996 0.010467 0.141066 0.042357 0.027193 0.046878 0.041453 0.010992 0.037272 0.102490 0.059641 0.001287 0.044783 0.102490 0.074477 0.048068 0.026691 0.102490 0.092299 0.204980 +0 +0.020991 0.014071 0.038224 0.053549 0.043827 0.409067 0.026980 0.027727 0.064513 0.051866 0.050736 0.194273 0.034709 0.021940 0.077880 0.104782 0.017857 0.155365 0.047103 0.001291 0.034592 0.170817 0.100429 0.032977 0.029060 0.136654 0.059713 0.056177 0.014161 0.136654 0.080397 0.239144 +0.610174 +0.042631 0.045105 0.071866 0.039738 0.040715 0.068072 0.029937 0.063444 0.041084 0.083830 0.032127 0.044355 0.062053 0.031327 0.096334 0.136578 0.041102 0.046360 0.064721 0.029384 0.048232 0.136654 0.061638 0.003654 0.025755 0.273307 0.084575 0.020493 0.027818 0.102490 0.057914 0.307471 +0 +0.047380 0.046870 0.035844 0.046630 0.049922 0.105203 0.068068 0.005112 0.039923 0.044396 0.048241 0.135623 0.006431 0.054508 0.061032 0.047595 0.047231 0.165045 0.041667 0.039567 0.001188 0.204980 0.094708 0.007508 0.046791 0.204980 0.080035 0.057952 0.061524 0.239144 0.052203 0.341634 +0.003440 +0.007336 0.065109 0.043429 0.070207 0.030964 0.092425 0.046566 0.053812 0.036500 0.079410 0.034774 0.082719 0.045168 0.036832 0.054270 0.059947 0.023487 0.212072 0.064233 0.048025 0.027386 0.239144 0.060878 0.045775 0.061627 0.136654 0.066508 0.020543 0.018278 0.102490 0.102468 0.273307 +0 +0.020121 0.064503 0.039551 0.060016 0.022748 0.459706 0.026716 0.003021 0.054287 0.040672 0.036704 0.067722 0.004606 0.053458 0.035854 0.040647 0.040098 0.075783 0.053622 0.024970 0.014029 0.170817 0.071385 0.009941 0.027360 0.136654 0.080333 0.052005 0.055169 0.102490 0.072672 0.239144 +0.115873 +0.013616 0.013938 0.099713 0.046166 0.019335 0.043176 0.027446 0.020734 0.066306 0.051272 0.042461 0.187279 0.056988 0.001882 0.068101 0.040166 0.034075 0.318180 0.057036 0.032636 0.007553 0.239144 0.052204 0.045345 0.038930 0.102490 0.097329 0.007263 0.040156 0.273307 0.061027 0.341634 +0.306284 +0.064746 0.029682 0.048009 0.081920 0.039207 0.103688 0.002632 0.049177 0.135135 0.123943 0.036033 0.219100 0.046432 0.044263 0.042662 0.036147 0.025525 0.099584 0.044167 0.016071 0.009246 0.239144 0.095557 0.054938 0.041980 0.273307 0.059386 0.066826 0.054547 0.307471 0.101201 0.341634 +0.119089 +0.036472 0.015949 0.076647 0.054381 0.020792 0.098712 0.025920 0.031328 0.042901 0.072865 0.050075 0.174983 0.043131 0.059589 0.063019 0.059066 0.020093 0.135481 0.040158 0.047150 0.026334 0.307471 0.084877 0.041673 0.048370 0.204980 0.081899 0.008345 0.032944 0.273307 0.090122 0.341634 +0.090663 +0.067202 0.061204 0.046380 0.126532 0.021630 0.121503 0.003036 0.018852 0.126980 0.066515 0.026894 0.156749 0.019481 0.063781 0.055770 0.034897 0.048199 0.127463 0.039896 0.060204 0.067570 0.273307 0.052622 0.057707 0.012106 0.204980 0.070060 0.030883 0.063566 0.307471 0.098682 0.341634 +0.255396 +0.009390 0.027618 0.110939 0.092518 0.023127 0.391750 0.014464 0.018305 0.035673 0.077637 0.035705 0.314857 0.042620 0.044702 0.041366 0.094262 0.028100 0.071357 0.056796 0.012411 0.012140 0.204980 0.065670 0.066452 0.009119 0.204980 0.053474 0.008545 0.014880 0.170817 0.052067 0.239144 +0.670857 +0.060744 0.002369 0.036395 0.038509 0.048320 0.207714 0.038881 0.000797 0.104323 0.075153 0.032680 0.055884 0.043168 0.053423 0.068861 0.056716 0.023649 0.168120 0.063400 0.032837 0.027799 0.204980 0.079692 0.040612 0.041436 0.273307 0.078214 0.054356 0.053525 0.102490 0.061635 0.341634 +0.024194 +0.026723 0.036309 0.089856 0.039813 0.047283 0.069297 0.066370 0.013025 0.042655 0.038319 0.023494 0.191716 0.055974 0.034217 0.092476 0.053626 0.038111 0.035581 0.064764 0.031439 0.053377 0.204980 0.052707 0.057394 0.046542 0.170817 0.087102 0.040083 0.039042 0.170817 0.087396 0.239144 +0.045742 +0.053124 0.015960 0.035868 0.050068 0.030179 0.048078 0.042133 0.056465 0.082604 0.133398 0.042976 0.051106 0.003149 0.014013 0.044240 0.128986 0.029539 0.038062 0.055789 0.031361 0.047522 0.102490 0.074582 0.050231 0.038456 0.102490 0.071873 0.053657 0.036827 0.204980 0.053751 0.307471 +0 +0.039354 0.057303 0.045587 0.043795 0.039640 0.044404 0.026193 0.048404 0.060702 0.057990 0.026336 0.038482 0.053571 0.048558 0.096690 0.038369 0.018080 0.191442 0.043177 0.037672 0.037871 0.204980 0.101200 0.019634 0.057902 0.170817 0.060297 0.002616 0.003025 0.136654 0.054778 0.307471 +0 +0.065780 0.048996 0.148263 0.049726 0.023017 0.118900 0.033170 0.059833 0.109379 0.062438 0.029267 0.045932 0.009157 0.037548 0.045089 0.082635 0.043159 0.080266 0.059707 0.028367 0.000844 0.136654 0.056931 0.031608 0.059241 0.204980 0.099620 0.046292 0.055362 0.204980 0.088575 0.273307 +0.013604 +0.027894 0.043918 0.106816 0.078821 0.017374 0.085967 0.034922 0.066528 0.047241 0.060184 0.030338 0.067588 0.062212 0.046485 0.065111 0.035874 0.018217 0.098110 0.041869 0.046096 0.020607 0.204980 0.086172 0.067138 0.013883 0.204980 0.094875 0.054091 0.027521 0.102490 0.069815 0.239144 +0 +0.032965 0.060504 0.043264 0.145504 0.047474 0.336193 0.058313 0.040109 0.100826 0.053261 0.021168 0.036400 0.024372 0.007364 0.083308 0.144939 0.050076 0.137555 0.051807 0.059291 0.040394 0.102490 0.056913 0.063595 0.045606 0.102490 0.063163 0.060204 0.035342 0.102490 0.083030 0.204980 +0.297751 +0.023925 0.063084 0.054463 0.066925 0.021965 0.138189 0.017549 0.016098 0.138476 0.124294 0.028544 0.058243 0.025361 0.064761 0.034706 0.062039 0.031434 0.143430 0.050631 0.025935 0.044232 0.102490 0.092985 0.048406 0.016683 0.170817 0.087337 0.048883 0.040429 0.170817 0.078176 0.204980 +0.086747 +0.015014 0.031610 0.058627 0.041317 0.038942 0.281558 0.016606 0.014734 0.044502 0.061672 0.045063 0.080751 0.045510 0.047756 0.037441 0.042284 0.034592 0.041574 0.060644 0.001303 0.002845 0.136654 0.101587 0.019257 0.017559 0.170817 0.062020 0.029142 0.060669 0.136654 0.069536 0.273307 +0.010842 +0.017085 0.026181 0.064206 0.105989 0.046154 0.250867 0.046459 0.029393 0.056146 0.035372 0.043274 0.143865 0.041023 0.050533 0.058298 0.053357 0.048919 0.219191 0.050269 0.019237 0.029686 0.239144 0.087136 0.035320 0.015749 0.170817 0.093009 0.042284 0.032291 0.136654 0.078357 0.273307 +0.242420 +0.054437 0.059946 0.143969 0.038401 0.022057 0.050209 0.027965 0.063014 0.053238 0.041681 0.024974 0.156531 0.066310 0.015729 0.056451 0.144464 0.028946 0.354364 0.045461 0.038043 0.059317 0.204980 0.092562 0.042326 0.018696 0.204980 0.096921 0.060126 0.043331 0.239144 0.056848 0.341634 +0.016268 +0.018351 0.005483 0.063498 0.074213 0.033335 0.634188 0.040572 0.023954 0.085663 0.054188 0.018078 0.158958 0.021815 0.013321 0.062244 0.051644 0.034297 0.061612 0.056746 0.013605 0.017426 0.136654 0.088235 0.007334 0.032339 0.204980 0.077406 0.006161 0.006242 0.239144 0.087096 0.273307 +0.262579 +0.011445 0.018485 0.052145 0.071222 0.048993 0.168316 0.008461 0.009894 0.068734 0.093592 0.019823 0.357240 0.001989 0.037074 0.090148 0.194396 0.024611 0.131146 0.051762 0.036547 0.012060 0.136654 0.061150 0.017750 0.046325 0.273307 0.062569 0.032260 0.037566 0.204980 0.097112 0.307471 +0.263504 +0.000804 0.029344 0.115199 0.093033 0.024794 0.147358 0.060379 0.054180 0.083115 0.037521 0.041123 0.511819 0.061269 0.023104 0.092133 0.067027 0.026610 0.347492 0.044703 0.031871 0.056177 0.239144 0.062655 0.019235 0.047630 0.204980 0.062192 0.040516 0.023953 0.204980 0.100235 0.341634 +0.697446 +0.016793 0.063181 0.066926 0.071136 0.018110 0.073501 0.067084 0.016204 0.093560 0.056166 0.031124 0.119746 0.030453 0.029320 0.066617 0.092555 0.025009 0.053972 0.045096 0.058243 0.022333 0.273307 0.067710 0.049670 0.061642 0.170817 0.072743 0.067167 0.026329 0.170817 0.091043 0.307471 +0 +0.024987 0.026922 0.048093 0.051112 0.040573 0.102271 0.030211 0.010569 0.057112 0.057479 0.038260 0.091675 0.057036 0.051706 0.034850 0.050983 0.023580 0.046011 0.045379 0.002801 0.001916 0.136654 0.059192 0.042350 0.061590 0.102490 0.085160 0.019991 0.024450 0.239144 0.076534 0.273307 +0.003465 +0.021990 0.054629 0.113506 0.072765 0.040975 0.053734 0.040374 0.037413 0.043205 0.079952 0.049748 0.157342 0.039004 0.028463 0.076581 0.101175 0.025829 0.201240 0.048889 0.005216 0.011609 0.307471 0.074763 0.005604 0.017471 0.273307 0.096897 0.063704 0.058291 0.273307 0.062244 0.341634 +0.109336 +0.047526 0.007836 0.048133 0.037688 0.025333 0.293376 0.054345 0.033171 0.058439 0.043273 0.050423 0.173543 0.037693 0.012284 0.090572 0.035259 0.029890 0.345540 0.058055 0.030948 0.002212 0.102490 0.085836 0.018673 0.003511 0.136654 0.089526 0.053557 0.067341 0.170817 0.091372 0.204980 +0.190065 +0.065919 0.061968 0.128552 0.057361 0.044266 0.105999 0.002963 0.066757 0.044838 0.052096 0.021752 0.157424 0.019190 0.042079 0.035334 0.069778 0.043293 0.195326 0.043910 0.033687 0.012429 0.136654 0.054029 0.023790 0.051806 0.170817 0.062331 0.056606 0.014639 0.273307 0.088777 0.341634 +0.014151 +0.033401 0.058085 0.050591 0.084907 0.031390 0.177632 0.012795 0.056977 0.043179 0.051201 0.033145 0.079902 0.021816 0.000808 0.051593 0.100894 0.030176 0.115758 0.055953 0.006596 0.031026 0.170817 0.080090 0.062894 0.027329 0.170817 0.076632 0.026279 0.062389 0.102490 0.053525 0.204980 +0.039433 +0.035753 0.029895 0.038171 0.037853 0.045983 0.055451 0.056496 0.012634 0.126428 0.074421 0.023881 0.101270 0.008280 0.044275 0.151011 0.049637 0.049585 0.191818 0.049350 0.022896 0.064454 0.102490 0.068723 0.033821 0.044281 0.102490 0.096688 0.018156 0.061796 0.170817 0.058185 0.341634 +0 +0.003351 0.034753 0.098231 0.037933 0.028100 0.068309 0.043777 0.053890 0.039612 0.063052 0.039899 0.149461 0.035083 0.060388 0.068882 0.058291 0.048324 0.053981 0.054118 0.057797 0.017505 0.170817 0.088764 0.063848 0.056696 0.170817 0.090901 0.057632 0.017127 0.170817 0.052949 0.239144 +0 +0.002937 0.036691 0.115209 0.039797 0.030790 0.078264 0.021588 0.022688 0.047997 0.096737 0.030790 0.177648 0.042377 0.042737 0.063720 0.079727 0.046785 0.042571 0.050091 0.027013 0.017192 0.170817 0.102461 0.049593 0.067598 0.102490 0.058895 0.061816 0.042386 0.102490 0.076700 0.204980 +0.043051 +0.049160 0.018847 0.043078 0.039851 0.018674 0.105168 0.016563 0.045374 0.076608 0.045397 0.044978 0.222495 0.062841 0.030900 0.052277 0.046065 0.026019 0.044471 0.055673 0.067763 0.053442 0.170817 0.063082 0.041846 0.049205 0.239144 0.096385 0.023229 0.067001 0.170817 0.098000 0.341634 +0.003766 +0.005795 0.021102 0.037977 0.097388 0.032809 0.188151 0.023180 0.022966 0.092492 0.115641 0.027626 0.036329 0.058248 0.011188 0.049227 0.048045 0.044684 0.267065 0.051690 0.025077 0.031689 0.136654 0.101690 0.054566 0.061951 0.170817 0.054306 0.030053 0.048979 0.204980 0.077180 0.239144 +0.330083 +0.023077 0.021577 0.047121 0.035408 0.042638 0.116846 0.033885 0.068077 0.067678 0.101508 0.044180 0.445251 0.020740 0.055577 0.077130 0.082605 0.044782 0.069190 0.053119 0.031028 0.060248 0.204980 0.056562 0.004322 0.032897 0.170817 0.052033 0.047238 0.021117 0.204980 0.068816 0.239144 +0.330720 +0.012131 0.051420 0.088290 0.042433 0.028262 0.364129 0.039400 0.046105 0.062703 0.045824 0.044210 0.222037 0.056999 0.014883 0.058226 0.068523 0.046138 0.378359 0.051182 0.035268 0.004496 0.102490 0.085345 0.026839 0.021975 0.204980 0.053654 0.060108 0.063244 0.170817 0.077737 0.239144 +0.672477 +0.049025 0.024873 0.056327 0.056901 0.050001 0.277592 0.024483 0.033805 0.037487 0.060468 0.018820 0.102525 0.022066 0.047885 0.099693 0.069226 0.040014 0.156480 0.049706 0.043462 0.036183 0.204980 0.091592 0.017796 0.019409 0.307471 0.060682 0.052183 0.058071 0.170817 0.058225 0.341634 +0.180037 +0.019028 0.047649 0.047057 0.127267 0.048747 0.065482 0.038238 0.006504 0.045207 0.207530 0.032953 0.165374 0.044969 0.056120 0.113753 0.036949 0.050963 0.055054 0.041655 0.006309 0.049408 0.102490 0.099013 0.002615 0.042350 0.136654 0.065935 0.015330 0.033394 0.136654 0.071388 0.204980 +0.010763 +0.049584 0.004009 0.079492 0.034210 0.048486 0.062938 0.018163 0.040777 0.040062 0.039049 0.023097 0.075890 0.000595 0.060269 0.042729 0.070810 0.018848 0.606825 0.054962 0.017601 0.066846 0.136654 0.070262 0.014278 0.018882 0.136654 0.080964 0.046474 0.043696 0.170817 0.091006 0.204980 +0.564177 +0.027924 0.039568 0.058634 0.100632 0.045491 0.487317 0.015032 0.056556 0.057819 0.042695 0.047549 0.197565 0.020751 0.042771 0.065670 0.060148 0.040484 0.062060 0.053979 0.045490 0.049654 0.204980 0.056797 0.047577 0.030229 0.170817 0.090651 0.034867 0.008590 0.170817 0.057606 0.239144 +0.366026 +0.027694 0.061387 0.045289 0.072369 0.017826 0.047050 0.012409 0.022157 0.060508 0.047736 0.050181 0.125533 0.046245 0.054373 0.051970 0.109346 0.039691 0.066540 0.054732 0.066908 0.024110 0.136654 0.063666 0.059261 0.057381 0.239144 0.067107 0.043742 0.008272 0.204980 0.059665 0.273307 +0 +0.033945 0.033641 0.061319 0.039530 0.034873 0.091164 0.057578 0.061450 0.037729 0.083114 0.042079 0.147851 0.037863 0.029524 0.047158 0.050568 0.027777 0.222041 0.043495 0.045816 0.040471 0.204980 0.082303 0.066205 0.023123 0.136654 0.101859 0.040572 0.055621 0.204980 0.061751 0.239144 +0.052295 +0.044919 0.038208 0.040406 0.040346 0.037830 0.047463 0.053307 0.031001 0.057692 0.084015 0.044577 0.268639 0.023777 0.003961 0.055792 0.103927 0.042595 0.077914 0.059818 0.004544 0.049401 0.136654 0.100777 0.066738 0.021131 0.170817 0.072587 0.024352 0.059862 0.136654 0.075474 0.239144 +0.036219 +0.049618 0.065798 0.049927 0.069003 0.027006 0.109291 0.060595 0.045680 0.088313 0.050205 0.023476 0.149883 0.048491 0.062029 0.068581 0.037077 0.026400 0.109817 0.063504 0.025542 0.052849 0.170817 0.095630 0.018814 0.013841 0.102490 0.076606 0.019817 0.009444 0.136654 0.080171 0.341634 +0 +0.012762 0.036886 0.045927 0.057428 0.040865 0.171603 0.015360 0.009020 0.091215 0.039737 0.045631 0.070122 0.057993 0.009223 0.081674 0.048736 0.029526 0.080527 0.051346 0.010256 0.009549 0.136654 0.098134 0.013151 0.045693 0.239144 0.090358 0.023243 0.003820 0.136654 0.098399 0.307471 +0.018007 +0.061436 0.055566 0.038902 0.040726 0.045639 0.083431 0.009728 0.012409 0.035304 0.049397 0.033281 0.311409 0.062889 0.018965 0.042753 0.038976 0.038213 0.089021 0.043711 0.009302 0.024167 0.170817 0.080542 0.045292 0.059377 0.102490 0.061349 0.038444 0.064200 0.170817 0.058611 0.204980 +0.711291 +0.025332 0.035046 0.037776 0.085039 0.048292 0.036749 0.031870 0.058445 0.064500 0.107702 0.037650 0.079812 0.009844 0.020977 0.035575 0.055272 0.021658 0.036586 0.036852 0.059414 0.050711 0.170817 0.088177 0.014299 0.036373 0.102490 0.090119 0.001017 0.056962 0.102490 0.079740 0.204980 +0 +0.023678 0.060499 0.052580 0.127120 0.019497 0.086365 0.048841 0.015488 0.051070 0.065862 0.043013 0.256294 0.051118 0.054319 0.058135 0.121062 0.030475 0.131421 0.060482 0.042270 0.026949 0.136654 0.067382 0.037274 0.039002 0.204980 0.078469 0.056290 0.045874 0.136654 0.094536 0.239144 +0.109027 +0.044987 0.063828 0.050123 0.106432 0.033463 0.052279 0.046876 0.018193 0.072695 0.118314 0.049953 0.185300 0.025921 0.008439 0.090190 0.045216 0.046958 0.058023 0.064213 0.055451 0.065105 0.102490 0.100526 0.020744 0.008516 0.102490 0.091312 0.003354 0.015816 0.136654 0.082150 0.204980 +0.025412 +0.062557 0.008195 0.046004 0.036224 0.040551 0.082919 0.051640 0.022947 0.053429 0.086629 0.041906 0.293089 0.024064 0.029023 0.092779 0.035748 0.018316 0.078221 0.058581 0.055709 0.033749 0.204980 0.088420 0.009075 0.067321 0.136654 0.062468 0.060171 0.038667 0.102490 0.074085 0.239144 +0.183812 +0.038374 0.041475 0.054418 0.088536 0.049517 0.037555 0.000240 0.030316 0.172619 0.047284 0.036535 0.110904 0.062200 0.022990 0.054764 0.073592 0.028962 0.315377 0.061328 0.008411 0.059358 0.204980 0.053315 0.064270 0.022652 0.102490 0.086182 0.059714 0.053358 0.239144 0.074747 0.307471 +0.118710 +0.037718 0.020754 0.073510 0.145000 0.021618 0.134654 0.004730 0.024637 0.055020 0.062828 0.022485 0.201606 0.037229 0.034070 0.043147 0.089109 0.043056 0.042367 0.058263 0.011843 0.064831 0.170817 0.062181 0.053172 0.065726 0.273307 0.077148 0.043386 0.029621 0.239144 0.054570 0.341634 +0.060915 +0.000868 0.054056 0.040143 0.068641 0.032597 0.040211 0.012535 0.063046 0.066840 0.051646 0.022725 0.543696 0.006423 0.043027 0.053520 0.048465 0.018213 0.166998 0.039012 0.038328 0.007769 0.204980 0.096876 0.019582 0.000541 0.102490 0.088578 0.067442 0.022039 0.204980 0.080694 0.239144 +0.296950 +0.007366 0.051331 0.044354 0.101622 0.027597 0.054473 0.021527 0.067088 0.055916 0.054653 0.048061 0.067693 0.015268 0.023680 0.063974 0.053358 0.040136 0.154092 0.051736 0.042349 0.013165 0.170817 0.096806 0.024665 0.039985 0.170817 0.063026 0.000189 0.052124 0.170817 0.085678 0.239144 +0.027581 +0.059123 0.005376 0.082856 0.038378 0.037968 0.104403 0.052826 0.000708 0.098754 0.042161 0.048487 0.201526 0.022084 0.000005 0.058010 0.151989 0.043138 0.181520 0.062532 0.002255 0.049924 0.239144 0.081826 0.009640 0.033119 0.102490 0.058382 0.028005 0.027078 0.239144 0.097719 0.307471 +0.030126 +0.032037 0.015129 0.039353 0.146968 0.038044 0.146437 0.004322 0.061794 0.035253 0.081922 0.023355 0.198739 0.006153 0.012884 0.078982 0.068343 0.025645 0.051817 0.051817 0.026598 0.063987 0.102490 0.069762 0.033272 0.036443 0.136654 0.079077 0.037794 0.010456 0.102490 0.068029 0.273307 +0.155631 +0.028375 0.039641 0.036585 0.069096 0.034723 0.066741 0.013099 0.009247 0.042278 0.044651 0.051146 0.038763 0.025443 0.025698 0.061706 0.058470 0.029188 0.108689 0.043069 0.064113 0.056476 0.239144 0.087460 0.031795 0.067329 0.239144 0.086747 0.067900 0.037727 0.136654 0.077817 0.307471 +0.080388 +0.061317 0.061786 0.061563 0.061542 0.041802 0.156845 0.065659 0.065826 0.037187 0.055835 0.047270 0.046839 0.046464 0.067076 0.046661 0.074012 0.049352 0.125455 0.062687 0.030319 0.020739 0.170817 0.087821 0.045908 0.048240 0.102490 0.095059 0.054920 0.066283 0.136654 0.098828 0.204980 +0.093993 +0.042638 0.041099 0.129811 0.040815 0.037990 0.147202 0.018807 0.061215 0.034819 0.050481 0.030560 0.106359 0.007721 0.043505 0.051997 0.047221 0.023757 0.071852 0.054409 0.054864 0.039418 0.204980 0.095586 0.018564 0.011822 0.239144 0.100528 0.049355 0.047264 0.102490 0.076018 0.273307 +0.055082 +0.042871 0.054446 0.103247 0.058729 0.039213 0.074566 0.013376 0.043832 0.052031 0.108804 0.021509 0.038020 0.025954 0.056619 0.055754 0.044292 0.045887 0.056935 0.049695 0.055650 0.044592 0.136654 0.073750 0.063961 0.060449 0.136654 0.056193 0.010076 0.030003 0.170817 0.084778 0.307471 +0 +0.032468 0.009961 0.035420 0.036557 0.044433 0.094729 0.022994 0.019818 0.045393 0.041700 0.031392 0.074813 0.062665 0.018504 0.079714 0.050590 0.025028 0.076027 0.054316 0.026268 0.025698 0.239144 0.071787 0.028965 0.054920 0.239144 0.060423 0.045221 0.012784 0.204980 0.064624 0.273307 +0.005940 +0.049571 0.030018 0.041275 0.047957 0.024658 0.109543 0.021020 0.062295 0.065024 0.090384 0.035200 0.182588 0.004346 0.021791 0.088588 0.041625 0.040324 0.397659 0.048988 0.035897 0.016097 0.170817 0.093518 0.021925 0.011315 0.102490 0.083775 0.012437 0.012587 0.273307 0.079949 0.307471 +0.146853 +0.006347 0.045603 0.062823 0.051568 0.026159 0.108670 0.031416 0.065375 0.034799 0.088299 0.047134 0.128380 0.059035 0.027390 0.048256 0.039871 0.028046 0.095600 0.044107 0.060129 0.039907 0.170817 0.083327 0.047824 0.023532 0.170817 0.092083 0.007863 0.002238 0.170817 0.091491 0.273307 +0.083210 +0.000961 0.064887 0.095056 0.048668 0.027438 0.214222 0.052796 0.036444 0.082646 0.054222 0.019964 0.144211 0.033822 0.060923 0.078423 0.095782 0.034540 0.298571 0.045131 0.067028 0.039696 0.136654 0.080506 0.065150 0.015863 0.102490 0.052511 0.027386 0.029295 0.102490 0.088781 0.204980 +0.270972 +0.009570 0.047243 0.065983 0.113002 0.046614 0.237541 0.045222 0.023127 0.039922 0.074739 0.020640 0.225335 0.060083 0.017125 0.037745 0.040288 0.018180 0.056780 0.048141 0.017111 0.015379 0.102490 0.055841 0.001946 0.034258 0.102490 0.079016 0.046141 0.000937 0.239144 0.096699 0.307471 +0.113060 +0.027515 0.064368 0.060581 0.083425 0.045241 0.086042 0.028238 0.034040 0.043897 0.035433 0.024509 0.237609 0.046575 0.035869 0.050878 0.060475 0.021082 0.178096 0.064147 0.067678 0.027335 0.204980 0.074319 0.002691 0.031021 0.102490 0.084423 0.028942 0.018120 0.102490 0.088886 0.307471 +0.080754 +0.052446 0.014750 0.077860 0.166689 0.024416 0.234901 0.045897 0.044851 0.052000 0.060006 0.031303 0.125471 0.058763 0.013157 0.060671 0.036493 0.033626 0.104993 0.052674 0.001369 0.005419 0.239144 0.080567 0.055585 0.040386 0.204980 0.078662 0.028936 0.062974 0.170817 0.061354 0.273307 +0.151237 +0.058319 0.056330 0.048442 0.052662 0.020384 0.189035 0.056199 0.066095 0.061522 0.044008 0.040728 0.125446 0.033704 0.061455 0.060023 0.042513 0.033151 0.130380 0.061426 0.019572 0.023030 0.102490 0.083088 0.002316 0.041560 0.239144 0.067285 0.054046 0.012739 0.273307 0.087952 0.341634 +0.015751 +0.028979 0.010845 0.047434 0.037081 0.042316 0.116923 0.011026 0.062629 0.074269 0.065522 0.049339 0.201085 0.037228 0.061194 0.040711 0.040135 0.044827 0.057528 0.048477 0.016598 0.001677 0.239144 0.067629 0.017825 0.067411 0.239144 0.058096 0.002285 0.020062 0.102490 0.080802 0.307471 +0.014882 +0.003374 0.054804 0.038554 0.067231 0.048869 0.053152 0.019210 0.020144 0.187738 0.056597 0.033587 0.130353 0.050295 0.024648 0.074531 0.042181 0.038092 0.062926 0.050123 0.026068 0.043275 0.170817 0.070718 0.047110 0.054862 0.102490 0.083695 0.007614 0.008252 0.273307 0.099410 0.307471 +0.002562 +0.066367 0.011722 0.082820 0.050945 0.034195 0.058188 0.047151 0.034693 0.051718 0.066437 0.050585 0.065382 0.041000 0.055146 0.098771 0.041688 0.033618 0.042450 0.046086 0.056295 0.059156 0.102490 0.065982 0.067589 0.029037 0.239144 0.062158 0.006028 0.068249 0.239144 0.073798 0.273307 +0 +0.066876 0.005747 0.056332 0.071833 0.046402 0.260594 0.061987 0.068133 0.054760 0.034719 0.032315 0.109581 0.037058 0.033443 0.062455 0.036440 0.029074 0.048322 0.056082 0.028412 0.028691 0.136654 0.084601 0.050137 0.036864 0.136654 0.068357 0.051284 0.063776 0.136654 0.101174 0.204980 +0.045872 +0.003983 0.027583 0.043395 0.037776 0.051132 0.062869 0.042690 0.011289 0.044367 0.086551 0.028339 0.140370 0.055385 0.000788 0.035223 0.055491 0.046019 0.238923 0.058172 0.011614 0.064310 0.102490 0.094333 0.020689 0.045211 0.273307 0.098361 0.055979 0.024187 0.102490 0.091773 0.307471 +0.111410 +0.038169 0.014459 0.125056 0.036994 0.029174 0.082685 0.017648 0.022467 0.049477 0.117465 0.036914 0.325844 0.029338 0.009969 0.055655 0.072625 0.049877 0.043713 0.051647 0.025683 0.050152 0.170817 0.078379 0.013176 0.043238 0.170817 0.086187 0.004219 0.065492 0.170817 0.079922 0.204980 +0.200549 +0.025241 0.046394 0.037657 0.053444 0.035523 0.131787 0.064435 0.053586 0.038922 0.059853 0.024253 0.051143 0.011808 0.038735 0.083358 0.036271 0.036839 0.058304 0.057385 0.041061 0.031619 0.170817 0.094708 0.005156 0.048669 0.204980 0.097433 0.055386 0.035395 0.204980 0.051538 0.341634 +0 +0.041260 0.025510 0.184039 0.077638 0.043144 0.043451 0.017101 0.018361 0.047046 0.079880 0.043762 0.099785 0.066409 0.056829 0.039300 0.059819 0.034665 0.221973 0.043772 0.008288 0.020009 0.136654 0.066548 0.065324 0.041797 0.102490 0.098749 0.024946 0.015943 0.102490 0.063350 0.204980 +0.038092 +0.061213 0.030612 0.097077 0.054453 0.034924 0.445702 0.040975 0.007808 0.038135 0.057925 0.050157 0.107644 0.013921 0.022434 0.123048 0.194105 0.018975 0.080340 0.053848 0.064835 0.062008 0.239144 0.053771 0.014673 0.049616 0.273307 0.052950 0.066474 0.001387 0.239144 0.071981 0.307471 +0.264142 +0.011223 0.002361 0.117732 0.071661 0.033414 0.426420 0.040190 0.017687 0.108106 0.045823 0.041510 0.042812 0.066721 0.015148 0.093020 0.090078 0.025535 0.233282 0.053861 0.036719 0.062943 0.170817 0.077619 0.026915 0.015864 0.204980 0.086228 0.032050 0.005491 0.239144 0.071830 0.273307 +0.389188 +0.016296 0.009810 0.034987 0.044553 0.048138 0.098956 0.032611 0.027270 0.052405 0.163089 0.017477 0.065244 0.034349 0.034414 0.062851 0.058365 0.022979 0.086385 0.060666 0.000853 0.046622 0.102490 0.066285 0.023064 0.025966 0.136654 0.077948 0.053146 0.063253 0.102490 0.057245 0.204980 +0.025977 +0.060014 0.009566 0.067454 0.093269 0.021654 0.035994 0.020361 0.032904 0.053006 0.063904 0.031425 0.050062 0.026635 0.034624 0.116055 0.118618 0.034127 0.252586 0.047900 0.064164 0.027391 0.102490 0.065597 0.058261 0.035456 0.136654 0.088239 0.051298 0.028266 0.239144 0.097910 0.273307 +0.002178 +0.030211 0.029939 0.050248 0.048338 0.047336 0.138879 0.005948 0.068253 0.040980 0.040262 0.046230 0.066623 0.020799 0.055188 0.104464 0.153792 0.045397 0.186079 0.042577 0.014306 0.025407 0.204980 0.095016 0.045089 0.046455 0.170817 0.082675 0.041502 0.034927 0.136654 0.081512 0.239144 +0.106148 +0.000868 0.048201 0.130620 0.041323 0.035908 0.268453 0.034626 0.005904 0.063430 0.054843 0.021477 0.109314 0.010873 0.014201 0.077840 0.098912 0.034851 0.099035 0.047511 0.029498 0.006813 0.136654 0.094618 0.000898 0.015651 0.170817 0.096563 0.003684 0.038837 0.239144 0.076214 0.273307 +0.100876 +0.060851 0.005058 0.143150 0.069771 0.019612 0.058166 0.031875 0.005236 0.053752 0.047202 0.042585 0.125213 0.044329 0.051264 0.078161 0.073139 0.040232 0.175670 0.056818 0.065153 0.046175 0.170817 0.087034 0.035485 0.005307 0.170817 0.076461 0.053917 0.028567 0.136654 0.096465 0.239144 +0.010381 +0.019735 0.032666 0.051589 0.047504 0.035470 0.035158 0.018814 0.001827 0.126235 0.068400 0.038072 0.134020 0.051561 0.039387 0.044050 0.062748 0.041948 0.035234 0.046607 0.066899 0.057044 0.239144 0.091989 0.050947 0.000851 0.239144 0.066009 0.006083 0.010340 0.204980 0.071208 0.307471 +0 +0.054267 0.038116 0.048431 0.036699 0.043816 0.122443 0.024944 0.005928 0.114858 0.062776 0.048788 0.057150 0.061750 0.057167 0.108132 0.104595 0.046928 0.309678 0.041656 0.003333 0.013850 0.102490 0.051456 0.056256 0.065952 0.136654 0.067450 0.061435 0.014600 0.239144 0.079785 0.273307 +0.002362 +0.056895 0.052069 0.107371 0.072575 0.042757 0.404494 0.057794 0.011631 0.035280 0.034221 0.040472 0.163427 0.031639 0.039259 0.070930 0.055366 0.023603 0.061237 0.051617 0.043896 0.063666 0.170817 0.064449 0.024258 0.018522 0.307471 0.082862 0.029558 0.067972 0.102490 0.097012 0.341634 +0 +0.049559 0.037709 0.045260 0.034259 0.041490 0.078946 0.031542 0.012584 0.074150 0.049233 0.019646 0.090927 0.015867 0.016237 0.055506 0.060054 0.046015 0.177016 0.049005 0.031936 0.001041 0.102490 0.095397 0.011703 0.005419 0.170817 0.082721 0.061678 0.051448 0.170817 0.072536 0.204980 +0.039325 +0.040156 0.057833 0.083083 0.051772 0.034512 0.205738 0.056012 0.020444 0.059863 0.044995 0.023208 0.136484 0.018885 0.052799 0.046534 0.039498 0.036054 0.112385 0.044420 0.022618 0.021565 0.102490 0.070778 0.002569 0.009183 0.136654 0.080824 0.001709 0.024337 0.307471 0.057255 0.341634 +0.615244 +0.061571 0.008801 0.064355 0.048626 0.043783 0.044544 0.060120 0.053657 0.045378 0.232834 0.036912 0.034656 0.067406 0.022240 0.066669 0.051831 0.046818 0.042079 0.051520 0.045755 0.023130 0.102490 0.073869 0.005589 0.018516 0.204980 0.072524 0.035338 0.042577 0.170817 0.081405 0.239144 +0 +0.050261 0.030840 0.063894 0.055542 0.038414 0.038555 0.037315 0.048288 0.041588 0.046921 0.018566 0.134888 0.026965 0.054013 0.244687 0.044867 0.018870 0.150911 0.049694 0.043826 0.019147 0.239144 0.064746 0.048797 0.054741 0.204980 0.093084 0.067098 0.030965 0.170817 0.078722 0.341634 +0.005432 +0.005825 0.036852 0.051182 0.044281 0.026992 0.040953 0.043503 0.005970 0.125248 0.040801 0.022041 0.085682 0.031450 0.026359 0.053014 0.129677 0.018868 0.224671 0.064643 0.053529 0.035001 0.102490 0.098915 0.039208 0.030868 0.102490 0.098421 0.023006 0.001162 0.170817 0.061604 0.307471 +0 +0.053489 0.035197 0.167976 0.213021 0.042594 0.067810 0.047185 0.044796 0.142779 0.060617 0.029043 0.093400 0.009362 0.067110 0.047986 0.038296 0.024786 0.059068 0.055840 0.060436 0.060076 0.204980 0.063927 0.007275 0.010192 0.102490 0.071223 0.023896 0.039346 0.102490 0.075674 0.341634 +0 +0.003634 0.039449 0.060557 0.039447 0.021031 0.167065 0.061269 0.029532 0.043982 0.036410 0.019728 0.237622 0.018090 0.047963 0.037294 0.040326 0.025680 0.194565 0.050294 0.014845 0.005338 0.102490 0.099019 0.041616 0.036956 0.136654 0.088872 0.001269 0.032829 0.102490 0.089140 0.204980 +0.274710 +0.045933 0.052535 0.037732 0.110178 0.024784 0.035400 0.003121 0.049720 0.084439 0.035237 0.038892 0.305585 0.028108 0.010864 0.042937 0.078823 0.049783 0.188526 0.040386 0.018685 0.020118 0.102490 0.095075 0.019738 0.029458 0.102490 0.094312 0.010012 0.057726 0.170817 0.093529 0.204980 +0.250004 +0.016936 0.003882 0.046479 0.047814 0.030302 0.050726 0.012488 0.027438 0.034782 0.042768 0.042170 0.046331 0.012552 0.040174 0.050411 0.034608 0.032330 0.112913 0.045732 0.054512 0.056314 0.170817 0.095532 0.038391 0.036361 0.102490 0.059899 0.005650 0.009601 0.170817 0.090296 0.204980 +0 +0.023834 0.000286 0.035610 0.075222 0.032115 0.075066 0.032696 0.036343 0.053466 0.106049 0.027827 0.243883 0.009479 0.007009 0.139893 0.063237 0.032732 0.147230 0.061831 0.003920 0.046273 0.239144 0.056295 0.017900 0.046823 0.273307 0.095809 0.047322 0.034496 0.102490 0.099121 0.307471 +0.061333 +0.051283 0.020469 0.056374 0.109356 0.020224 0.145199 0.006318 0.002282 0.042022 0.063966 0.041174 0.107963 0.004818 0.063425 0.141788 0.081529 0.028679 0.047612 0.039160 0.016403 0.049961 0.239144 0.090675 0.042470 0.005352 0.204980 0.100331 0.026658 0.019337 0.136654 0.089886 0.273307 +0.016748 +0.048849 0.033995 0.034968 0.043455 0.022374 0.088469 0.035356 0.067889 0.094925 0.040160 0.046384 0.063999 0.050586 0.045156 0.043815 0.040371 0.025993 0.044465 0.046115 0.025178 0.046570 0.136654 0.082908 0.066792 0.032538 0.136654 0.086821 0.036761 0.008576 0.204980 0.059404 0.239144 +0 +0.013873 0.016103 0.065108 0.063585 0.032569 0.048214 0.053864 0.011067 0.063957 0.078455 0.030689 0.112242 0.051258 0.023332 0.037359 0.067341 0.051242 0.143064 0.038895 0.021021 0.002353 0.239144 0.073563 0.011723 0.049783 0.273307 0.093676 0.036442 0.048796 0.136654 0.079172 0.307471 +0.002708 +0.033771 0.009744 0.101301 0.110664 0.021119 0.515831 0.035997 0.058572 0.052667 0.040111 0.041378 0.063599 0.050856 0.007316 0.099281 0.095765 0.035607 0.097304 0.044083 0.029485 0.009957 0.136654 0.073636 0.057932 0.024923 0.136654 0.056108 0.034741 0.038229 0.136654 0.095862 0.239144 +0.001614 +0.056096 0.019550 0.056108 0.105056 0.038927 0.212927 0.022404 0.067368 0.114501 0.039925 0.039717 0.067744 0.032774 0.057454 0.035079 0.084624 0.018950 0.107886 0.056369 0.061525 0.012124 0.204980 0.089714 0.068113 0.027777 0.102490 0.063706 0.063376 0.022377 0.204980 0.101825 0.239144 +0.063451 +0.028427 0.037320 0.112176 0.087974 0.026986 0.043328 0.005355 0.028737 0.052539 0.054494 0.021904 0.111517 0.031055 0.041675 0.077778 0.043309 0.019391 0.084028 0.041645 0.060955 0.036326 0.273307 0.088080 0.063232 0.006921 0.102490 0.062446 0.058118 0.028986 0.273307 0.079221 0.341634 +0.004614 +0.055721 0.063472 0.047653 0.093159 0.032412 0.147961 0.046880 0.018123 0.039532 0.049267 0.026617 0.044765 0.057577 0.045101 0.070819 0.048513 0.022998 0.158693 0.042312 0.020469 0.060610 0.136654 0.086133 0.065084 0.007059 0.102490 0.055349 0.046840 0.034546 0.170817 0.096269 0.204980 +0.033361 +0.019542 0.000841 0.113336 0.056086 0.018150 0.292923 0.066719 0.062451 0.043456 0.042125 0.045059 0.039684 0.056240 0.018098 0.034588 0.034856 0.027591 0.066035 0.047322 0.036697 0.026630 0.273307 0.064126 0.024504 0.035804 0.102490 0.055820 0.066846 0.013732 0.136654 0.072958 0.307471 +0 +0.037100 0.033867 0.055507 0.093627 0.044078 0.144176 0.017916 0.018508 0.062076 0.042374 0.018332 0.090747 0.026181 0.027497 0.042798 0.056773 0.043177 0.193026 0.043281 0.022437 0.026366 0.102490 0.083041 0.025251 0.027655 0.170817 0.073717 0.015328 0.019721 0.170817 0.094651 0.204980 +0.122194 +0.053011 0.017645 0.035044 0.046763 0.027959 0.196328 0.052600 0.019281 0.099965 0.035654 0.033247 0.163688 0.061605 0.008015 0.109585 0.074606 0.020059 0.053661 0.048250 0.052561 0.024407 0.170817 0.099081 0.054520 0.059338 0.170817 0.077185 0.024397 0.027830 0.102490 0.065530 0.204980 +0.018690 +0.020097 0.003179 0.063094 0.062219 0.024387 0.035341 0.065661 0.040919 0.049211 0.071242 0.048967 0.039980 0.038714 0.056310 0.133945 0.043759 0.042916 0.035023 0.061311 0.026183 0.022229 0.204980 0.097292 0.038523 0.019673 0.239144 0.065521 0.017594 0.045725 0.239144 0.051416 0.273307 +0 +0.050215 0.051085 0.034496 0.035510 0.032725 0.240217 0.055896 0.039877 0.054864 0.051304 0.034583 0.069857 0.000029 0.009808 0.069378 0.034500 0.024652 0.059790 0.052359 0.049562 0.008768 0.204980 0.101864 0.044573 0.067836 0.170817 0.068718 0.023389 0.006608 0.170817 0.054087 0.273307 +0.019238 +0.023855 0.001023 0.067222 0.048454 0.031580 0.274503 0.032712 0.062491 0.090240 0.052471 0.051217 0.151357 0.054018 0.022795 0.038745 0.054438 0.042381 0.038043 0.041674 0.020905 0.038986 0.102490 0.070281 0.064184 0.004193 0.170817 0.060201 0.030573 0.033393 0.170817 0.089749 0.239144 +0.013800 +0.015836 0.026262 0.156043 0.157805 0.018332 0.051366 0.065192 0.049674 0.045569 0.041379 0.025488 0.308414 0.006530 0.050346 0.044505 0.141582 0.018095 0.125031 0.059507 0.006293 0.010726 0.239144 0.059343 0.056096 0.016455 0.102490 0.054450 0.040794 0.003694 0.102490 0.066944 0.273307 +0.019835 +0.023641 0.001341 0.079993 0.056792 0.025460 0.117115 0.008877 0.030956 0.109975 0.043592 0.027842 0.283167 0.048020 0.060151 0.057584 0.038418 0.030011 0.153212 0.060424 0.042234 0.006383 0.102490 0.072103 0.000852 0.032856 0.136654 0.066480 0.016259 0.027756 0.170817 0.077295 0.204980 +0.318875 +0.015408 0.040942 0.035655 0.088159 0.023138 0.182349 0.057156 0.033074 0.052108 0.085576 0.030515 0.227698 0.041196 0.001268 0.174185 0.051149 0.035062 0.081769 0.051353 0.049975 0.008475 0.204980 0.055803 0.004267 0.004421 0.102490 0.056182 0.021465 0.038229 0.204980 0.092207 0.307471 +0.460671 +0.032349 0.024748 0.067515 0.044805 0.018887 0.082762 0.011027 0.024340 0.048421 0.041312 0.040147 0.264484 0.040877 0.018176 0.108340 0.111841 0.033395 0.035795 0.052994 0.028341 0.064772 0.170817 0.084034 0.012035 0.065113 0.170817 0.069480 0.066807 0.028326 0.102490 0.062455 0.273307 +0.131976 +0.003891 0.017452 0.046957 0.038293 0.043117 0.117678 0.047718 0.014541 0.090764 0.112098 0.031621 0.055262 0.048458 0.040047 0.040440 0.045523 0.044224 0.035808 0.040030 0.057799 0.053539 0.136654 0.093720 0.008837 0.002975 0.307471 0.100574 0.011248 0.066045 0.307471 0.096681 0.341634 +0.001572 +0.065403 0.019639 0.056999 0.060859 0.045364 0.152372 0.054321 0.003575 0.078471 0.050792 0.043865 0.081109 0.022613 0.020840 0.060266 0.057838 0.018678 0.200877 0.046642 0.003447 0.036411 0.102490 0.055606 0.051124 0.026987 0.170817 0.097071 0.004181 0.038225 0.204980 0.064201 0.273307 +0.053725 +0.059301 0.025452 0.061116 0.064942 0.022017 0.165264 0.055702 0.038428 0.047828 0.043506 0.036168 0.038813 0.028665 0.056942 0.038259 0.054273 0.017809 0.325045 0.060393 0.001703 0.029522 0.204980 0.078510 0.033844 0.061084 0.307471 0.060904 0.043577 0.047217 0.307471 0.071507 0.341634 +0.093496 +0.058190 0.007556 0.079819 0.081781 0.046286 0.076682 0.054763 0.012510 0.064986 0.071605 0.039443 0.053758 0.065639 0.031826 0.037618 0.065016 0.018768 0.067295 0.050774 0.005424 0.050836 0.204980 0.070336 0.004977 0.020726 0.136654 0.061629 0.052710 0.065794 0.239144 0.075044 0.273307 +0.014807 +0.031153 0.012104 0.045402 0.079059 0.047480 0.221390 0.041117 0.008724 0.039209 0.092168 0.031042 0.047146 0.050385 0.046591 0.064056 0.035878 0.026807 0.077823 0.062954 0.003574 0.025620 0.204980 0.067175 0.029666 0.019332 0.239144 0.069777 0.061865 0.041158 0.102490 0.083801 0.273307 +0.054544 +0.056037 0.014034 0.105222 0.068766 0.023270 0.040226 0.061770 0.057875 0.084329 0.108685 0.039027 0.055878 0.058088 0.039895 0.048923 0.102014 0.050942 0.071029 0.050711 0.035400 0.056715 0.102490 0.053248 0.058865 0.040999 0.307471 0.078474 0.063869 0.065876 0.307471 0.094116 0.341634 +0 +0.017834 0.010819 0.045359 0.080276 0.020009 0.052979 0.013886 0.007713 0.053204 0.039993 0.034793 0.046269 0.019430 0.061382 0.042829 0.045202 0.028054 0.099515 0.051158 0.039400 0.019553 0.102490 0.080835 0.005519 0.017200 0.102490 0.069414 0.003405 0.027678 0.239144 0.068507 0.273307 +0.001524 +0.004675 0.040033 0.052773 0.042605 0.037043 0.049280 0.059101 0.022881 0.063525 0.064008 0.025448 0.140634 0.038162 0.043157 0.038656 0.035909 0.026157 0.694061 0.039794 0.016045 0.028691 0.239144 0.059645 0.016369 0.044660 0.204980 0.075566 0.006069 0.038594 0.170817 0.055230 0.307471 +0.280707 +0.042186 0.046827 0.047444 0.065227 0.040102 0.181713 0.006249 0.040883 0.062601 0.061868 0.033851 0.060832 0.049794 0.049067 0.035552 0.069058 0.030516 0.292583 0.049043 0.015637 0.057672 0.170817 0.078186 0.026573 0.051903 0.239144 0.062775 0.027111 0.040360 0.273307 0.100976 0.341634 +0.232547 +0.052343 0.004196 0.064971 0.057140 0.040537 0.121078 0.002324 0.034472 0.097493 0.058750 0.035289 0.046708 0.010476 0.003196 0.045268 0.062484 0.019215 0.079177 0.049098 0.057185 0.050873 0.239144 0.057475 0.021005 0.015639 0.204980 0.099167 0.061284 0.020804 0.170817 0.083488 0.341634 +0 +0.061922 0.029099 0.037642 0.076592 0.031614 0.049647 0.060358 0.056346 0.093947 0.096765 0.038863 0.096553 0.018224 0.049730 0.091169 0.122983 0.028061 0.054416 0.052949 0.039192 0.067505 0.204980 0.052948 0.049367 0.009309 0.136654 0.076890 0.004772 0.010707 0.204980 0.099839 0.239144 +0 +0.011365 0.023707 0.035076 0.045791 0.025519 0.049634 0.020572 0.043611 0.068337 0.045595 0.027455 0.103324 0.045979 0.055364 0.061978 0.074231 0.023176 0.263168 0.054717 0.062112 0.049872 0.102490 0.101611 0.029932 0.063646 0.102490 0.062164 0.038756 0.051939 0.170817 0.074629 0.204980 +0.102774 +0.002765 0.027471 0.041471 0.064207 0.035725 0.174833 0.034686 0.012653 0.071120 0.039157 0.022371 0.339915 0.004107 0.011284 0.065452 0.058985 0.028908 0.083291 0.042629 0.066916 0.057649 0.102490 0.073376 0.053720 0.064100 0.136654 0.071950 0.000248 0.001226 0.136654 0.078070 0.204980 +0.518777 +0.031450 0.037780 0.052451 0.126208 0.035341 0.133775 0.044685 0.037185 0.035426 0.048908 0.023212 0.046565 0.036086 0.016109 0.070416 0.130428 0.044486 0.322924 0.053505 0.031953 0.067230 0.204980 0.099623 0.003652 0.041725 0.102490 0.058667 0.026550 0.055372 0.204980 0.095645 0.341634 +0.039912 +0.051004 0.015605 0.043671 0.063946 0.040976 0.069071 0.055615 0.037251 0.050617 0.049266 0.032646 0.179719 0.007041 0.066429 0.052330 0.196983 0.042709 0.221006 0.045604 0.045602 0.023862 0.102490 0.095648 0.040936 0.008159 0.136654 0.069579 0.014673 0.009937 0.170817 0.093120 0.204980 +0.276412 +0.042830 0.014200 0.035721 0.034176 0.034780 0.258557 0.034181 0.040928 0.081603 0.104254 0.031620 0.120432 0.011262 0.022094 0.068211 0.081477 0.024165 0.352438 0.046352 0.006064 0.037153 0.136654 0.072769 0.041944 0.038806 0.239144 0.083349 0.063928 0.019376 0.204980 0.056267 0.273307 +0.401983 +0.050649 0.064930 0.130364 0.035712 0.020878 0.068853 0.040163 0.006263 0.049170 0.083289 0.040391 0.041964 0.034670 0.053401 0.074930 0.055281 0.031747 0.050467 0.056254 0.066334 0.063041 0.170817 0.086588 0.059243 0.067434 0.136654 0.076595 0.018832 0.007145 0.170817 0.056306 0.204980 +0 +0.039847 0.044688 0.210469 0.107159 0.031231 0.047165 0.004146 0.019107 0.066876 0.036497 0.050139 0.072894 0.028711 0.007104 0.112812 0.073849 0.049504 0.077689 0.048785 0.042768 0.013219 0.170817 0.102244 0.028939 0.000146 0.136654 0.100212 0.012751 0.031975 0.170817 0.083335 0.239144 +0 +0.025979 0.008505 0.100974 0.106488 0.017984 0.155658 0.024168 0.041538 0.071027 0.122858 0.042274 0.072050 0.047463 0.029772 0.151025 0.041497 0.035292 0.035837 0.041607 0.011966 0.013306 0.170817 0.100420 0.007647 0.046827 0.136654 0.054644 0.052384 0.039628 0.136654 0.093748 0.204980 +0.002447 +0.057439 0.049229 0.124362 0.038123 0.032080 0.435167 0.029143 0.003448 0.197332 0.035113 0.037775 0.125962 0.046516 0.061843 0.060515 0.050655 0.017453 0.042148 0.063717 0.027926 0.025233 0.170817 0.084177 0.005349 0.050095 0.136654 0.082015 0.024020 0.002645 0.136654 0.075846 0.204980 +0.430370 +0.054236 0.056281 0.048583 0.064611 0.024864 0.192003 0.056967 0.041099 0.088569 0.087105 0.028548 0.141864 0.027230 0.054615 0.052885 0.066238 0.036081 0.101321 0.056199 0.000031 0.039899 0.170817 0.072238 0.011921 0.028858 0.136654 0.087170 0.014268 0.039173 0.170817 0.074292 0.239144 +0.075855 +0.009365 0.026835 0.071089 0.043708 0.020635 0.106207 0.013860 0.063663 0.046016 0.214616 0.026139 0.110552 0.004980 0.058762 0.073787 0.053540 0.036380 0.196045 0.056284 0.002070 0.029468 0.307471 0.062748 0.064154 0.055264 0.170817 0.052343 0.012684 0.037933 0.204980 0.090257 0.341634 +0 +0.058989 0.029207 0.057723 0.073883 0.038735 0.088939 0.022250 0.061763 0.035715 0.112426 0.023410 0.237220 0.051360 0.005369 0.105077 0.067574 0.041079 0.200341 0.055103 0.059059 0.020681 0.136654 0.099173 0.042919 0.015518 0.136654 0.070953 0.006602 0.003994 0.170817 0.090080 0.204980 +0.226334 +0.045760 0.036546 0.110891 0.069325 0.020304 0.074205 0.013564 0.063295 0.108044 0.061512 0.034460 0.201644 0.016064 0.027441 0.058475 0.041874 0.021215 0.082594 0.045943 0.064849 0.056808 0.170817 0.089578 0.057865 0.003614 0.136654 0.073185 0.004458 0.011231 0.136654 0.083820 0.239144 +0.129565 +0.059828 0.040482 0.037789 0.045789 0.041174 0.141756 0.048090 0.006408 0.089755 0.043559 0.036710 0.057182 0.040953 0.049027 0.069477 0.085458 0.031495 0.176200 0.049671 0.039202 0.048127 0.102490 0.073048 0.030339 0.044363 0.170817 0.081596 0.065485 0.024665 0.136654 0.087400 0.204980 +0.030738 +0.028046 0.029905 0.065959 0.065520 0.018136 0.248882 0.031006 0.011872 0.036155 0.072351 0.025112 0.160643 0.061766 0.047228 0.067487 0.122097 0.047005 0.035803 0.044876 0.040918 0.064212 0.136654 0.067239 0.003750 0.056704 0.136654 0.052975 0.016376 0.031038 0.273307 0.082319 0.307471 +0.059432 +0.051932 0.067873 0.042368 0.172858 0.033531 0.119696 0.019879 0.061909 0.066179 0.077081 0.033037 0.138522 0.051668 0.047781 0.085884 0.065271 0.032161 0.066969 0.052092 0.054945 0.063152 0.170817 0.099758 0.065762 0.054893 0.204980 0.086439 0.009397 0.042576 0.204980 0.070611 0.239144 +0.086678 +0.039238 0.004422 0.100134 0.164843 0.034441 0.178098 0.055641 0.027993 0.071754 0.049144 0.038327 0.511972 0.054320 0.056649 0.064975 0.036341 0.021719 0.074398 0.056757 0.049191 0.022568 0.102490 0.066892 0.057050 0.067303 0.170817 0.083392 0.039049 0.054291 0.239144 0.066417 0.273307 +0.368718 +0.019638 0.033307 0.056135 0.054636 0.041718 0.128147 0.042557 0.040228 0.094246 0.064367 0.033342 0.169193 0.029050 0.019727 0.034416 0.082038 0.026601 0.055791 0.047053 0.036611 0.059086 0.136654 0.053783 0.015360 0.056981 0.170817 0.071564 0.010365 0.051813 0.102490 0.080057 0.204980 +0.051209 +0.064976 0.007652 0.067686 0.070345 0.034132 0.469627 0.063002 0.003015 0.108977 0.101111 0.048603 0.130117 0.003383 0.032247 0.043782 0.044478 0.035234 0.348675 0.051417 0.009093 0.053675 0.102490 0.083219 0.017334 0.036096 0.136654 0.086769 0.023500 0.062364 0.136654 0.072567 0.239144 +0.214606 +0.007939 0.003282 0.045669 0.037031 0.022218 0.040441 0.047714 0.056577 0.109733 0.042155 0.050556 0.187701 0.025980 0.058518 0.040162 0.039450 0.038540 0.164938 0.043368 0.057872 0.067885 0.170817 0.092059 0.059552 0.050245 0.102490 0.088666 0.049227 0.015597 0.136654 0.062247 0.204980 +0.227108 +0.004658 0.060025 0.078922 0.041081 0.037747 0.120356 0.049935 0.013485 0.054622 0.191167 0.041907 0.588072 0.060390 0.033412 0.069874 0.102631 0.038885 0.165279 0.040441 0.061092 0.045123 0.170817 0.097320 0.010040 0.012954 0.239144 0.069851 0.009422 0.052395 0.136654 0.087891 0.307471 +0.552977 +0.051482 0.030376 0.047421 0.037996 0.032110 0.059859 0.004933 0.016050 0.084394 0.159416 0.038253 0.140333 0.010009 0.043054 0.039870 0.069257 0.049112 0.173455 0.056395 0.011371 0.023863 0.239144 0.060719 0.014675 0.022546 0.273307 0.078245 0.038887 0.002303 0.204980 0.088500 0.307471 +0.145329 +0.048395 0.030074 0.066199 0.068227 0.042026 0.182930 0.045175 0.011076 0.061226 0.051024 0.036765 0.086678 0.046250 0.054385 0.038208 0.266956 0.046827 0.347085 0.051396 0.048090 0.039417 0.102490 0.064311 0.005876 0.030955 0.204980 0.098732 0.065327 0.037858 0.136654 0.074512 0.239144 +0.287207 +0.035915 0.042099 0.064324 0.057083 0.033858 0.282607 0.024531 0.042284 0.053465 0.034258 0.039627 0.150134 0.027975 0.043533 0.036093 0.102324 0.035825 0.061464 0.046837 0.020853 0.049374 0.170817 0.077831 0.039359 0.029080 0.136654 0.057340 0.065699 0.062073 0.170817 0.088461 0.204980 +0.449901 +0.037143 0.026159 0.061737 0.077803 0.019720 0.252866 0.046398 0.000763 0.085326 0.090107 0.050663 0.144476 0.027809 0.063936 0.049057 0.037430 0.023518 0.243430 0.058974 0.013711 0.033703 0.170817 0.075309 0.057756 0.067998 0.170817 0.095664 0.034323 0.063582 0.102490 0.099693 0.204980 +0.334738 +0.056326 0.055879 0.046279 0.050654 0.019833 0.053144 0.010216 0.035968 0.151942 0.035442 0.026656 0.073999 0.013887 0.019979 0.042649 0.070530 0.050151 0.107652 0.060807 0.042815 0.064510 0.136654 0.091227 0.054370 0.064982 0.204980 0.079980 0.019247 0.033508 0.136654 0.078217 0.239144 +0 +0.058513 0.042420 0.064634 0.050891 0.019852 0.104075 0.053072 0.007920 0.082541 0.104990 0.020992 0.237577 0.010132 0.016793 0.085733 0.034206 0.018897 0.109224 0.044682 0.016789 0.010156 0.136654 0.076078 0.034265 0.059820 0.102490 0.067582 0.005252 0.012357 0.170817 0.054499 0.239144 +0.047217 +0.005252 0.038996 0.047382 0.037092 0.031426 0.154635 0.017971 0.016645 0.077445 0.066949 0.022009 0.139567 0.027621 0.050069 0.050648 0.050732 0.028989 0.066266 0.045782 0.048857 0.066265 0.102490 0.086670 0.036042 0.034171 0.170817 0.100853 0.032773 0.067510 0.136654 0.095458 0.204980 +0.146612 +0.015459 0.009083 0.061039 0.120804 0.019169 0.144777 0.039881 0.010168 0.066389 0.049501 0.032328 0.081746 0.052181 0.044515 0.086705 0.043221 0.048055 0.194839 0.057671 0.039061 0.061255 0.170817 0.085046 0.016378 0.033774 0.273307 0.053517 0.004480 0.064030 0.170817 0.097193 0.341634 +0 +0.045763 0.010789 0.095380 0.082006 0.048197 0.112501 0.012273 0.037268 0.067565 0.079466 0.036782 0.054233 0.005888 0.048917 0.035300 0.046601 0.029706 0.082493 0.048187 0.022104 0.059764 0.102490 0.092926 0.048387 0.022406 0.136654 0.097504 0.000669 0.016014 0.136654 0.082518 0.204980 +0 +0.045702 0.033855 0.052930 0.034864 0.018269 0.084208 0.065179 0.062354 0.056085 0.042758 0.049919 0.054836 0.029968 0.020641 0.062005 0.063335 0.017172 0.083744 0.041705 0.019294 0.062773 0.170817 0.072700 0.060585 0.055265 0.102490 0.087422 0.053791 0.062251 0.136654 0.071961 0.204980 +0.036276 +0.046802 0.053736 0.041985 0.138748 0.020836 0.134511 0.033163 0.017291 0.066533 0.144476 0.043337 0.069518 0.067628 0.034933 0.045442 0.040911 0.037406 0.049293 0.047952 0.057205 0.016779 0.204980 0.061064 0.031973 0.038518 0.102490 0.089498 0.042469 0.011786 0.102490 0.060541 0.239144 +0 +0.014427 0.029729 0.063260 0.103341 0.044668 0.101688 0.019215 0.028378 0.067715 0.043722 0.025747 0.451236 0.062540 0.032366 0.081406 0.037002 0.040166 0.110862 0.062193 0.011682 0.017860 0.239144 0.061445 0.036762 0.053160 0.307471 0.101627 0.024194 0.067717 0.170817 0.057345 0.341634 +0.482211 +0.005732 0.000266 0.056550 0.067824 0.026270 0.097705 0.046480 0.005845 0.065692 0.071191 0.031672 0.110904 0.016677 0.058378 0.045677 0.065168 0.047815 0.219040 0.044241 0.023340 0.040603 0.204980 0.097611 0.039443 0.001032 0.170817 0.099258 0.027513 0.040169 0.136654 0.100053 0.273307 +0.023000 +0.010862 0.025568 0.172006 0.112145 0.040205 0.039116 0.044692 0.058447 0.089869 0.042038 0.034276 0.067522 0.034572 0.050480 0.073092 0.052920 0.046828 0.056664 0.044710 0.019271 0.037625 0.273307 0.066177 0.012964 0.048551 0.204980 0.060608 0.056623 0.010666 0.136654 0.091981 0.341634 +0 +0.053255 0.065181 0.058970 0.052772 0.039631 0.094696 0.033264 0.054583 0.140974 0.050629 0.033391 0.069210 0.016931 0.025610 0.039365 0.045509 0.039688 0.194883 0.052344 0.047887 0.028808 0.102490 0.095652 0.026546 0.065449 0.170817 0.087373 0.024277 0.055917 0.102490 0.061723 0.204980 +0.040679 +0.020493 0.035111 0.050955 0.149037 0.040146 0.197879 0.028282 0.043144 0.163188 0.053987 0.047979 0.127705 0.050968 0.043493 0.102105 0.079194 0.025095 0.112217 0.055815 0.026786 0.035614 0.170817 0.077668 0.068186 0.053517 0.136654 0.076900 0.008865 0.025380 0.136654 0.079931 0.204980 +0.094637 +0.063117 0.064412 0.049202 0.123362 0.029523 0.102529 0.060466 0.062304 0.060629 0.036861 0.045271 0.053724 0.029835 0.036128 0.063011 0.047365 0.021474 0.102921 0.038595 0.000170 0.059358 0.273307 0.087352 0.028180 0.027146 0.204980 0.069962 0.001470 0.001487 0.307471 0.084888 0.341634 +0 +0.058436 0.041950 0.088527 0.042979 0.020206 0.379587 0.031909 0.005408 0.038425 0.083889 0.031681 0.079321 0.048500 0.050000 0.054730 0.173439 0.031270 0.107655 0.049411 0.035328 0.057670 0.170817 0.069155 0.051156 0.007056 0.136654 0.056995 0.048305 0.048278 0.136654 0.080497 0.204980 +0.411700 +0.062998 0.021692 0.051112 0.042031 0.026931 0.194725 0.048303 0.068276 0.072107 0.102686 0.038321 0.099028 0.051062 0.047887 0.113908 0.079584 0.029271 0.157682 0.055825 0.028399 0.012488 0.136654 0.091151 0.036233 0.049178 0.170817 0.071781 0.006126 0.003312 0.136654 0.084678 0.204980 +0.201824 +0.015044 0.004597 0.089479 0.083087 0.019059 0.051438 0.059344 0.061476 0.117168 0.045428 0.023220 0.436708 0.062735 0.066424 0.088961 0.086574 0.024504 0.082274 0.045690 0.043408 0.019842 0.102490 0.075024 0.051982 0.024417 0.136654 0.092149 0.014981 0.014780 0.273307 0.075063 0.341634 +0.429609 +0.052025 0.055063 0.106065 0.071647 0.020347 0.058284 0.025550 0.033469 0.046200 0.068552 0.032184 0.142398 0.009482 0.035947 0.096095 0.067594 0.021898 0.045837 0.045254 0.050058 0.067769 0.102490 0.084035 0.042577 0.001314 0.136654 0.080493 0.015775 0.021545 0.102490 0.058483 0.307471 +0 +0.050867 0.026964 0.056963 0.048022 0.042111 0.075806 0.055284 0.020247 0.036849 0.049831 0.030282 0.428893 0.051183 0.061072 0.047518 0.037288 0.031085 0.034727 0.062717 0.008001 0.020018 0.136654 0.051746 0.040827 0.024808 0.204980 0.062865 0.015202 0.041853 0.170817 0.078853 0.307471 +0.086672 +0.055587 0.060385 0.145324 0.047142 0.020163 0.039556 0.012840 0.045343 0.046683 0.066466 0.031362 0.050869 0.022605 0.017405 0.050381 0.041313 0.019197 0.365839 0.043022 0.054475 0.049914 0.136654 0.083333 0.031149 0.049654 0.239144 0.096004 0.016661 0.055496 0.204980 0.096047 0.273307 +0.143560 +0.002514 0.034393 0.069622 0.063606 0.031050 0.040040 0.039422 0.027987 0.040601 0.070294 0.039744 0.093944 0.021549 0.012674 0.064257 0.176553 0.035251 0.146493 0.041297 0.049623 0.062641 0.170817 0.099494 0.054324 0.063255 0.136654 0.090322 0.066893 0.044992 0.136654 0.072969 0.204980 +0.223722 +0.042239 0.056493 0.063090 0.052433 0.039429 0.120907 0.017094 0.035642 0.034586 0.067280 0.049813 0.059408 0.057176 0.018345 0.100690 0.036611 0.022720 0.059032 0.052550 0.039928 0.030564 0.204980 0.071685 0.043231 0.028744 0.239144 0.054288 0.058260 0.010579 0.170817 0.059780 0.341634 +0 +0.002236 0.014556 0.122982 0.087256 0.030087 0.197871 0.027853 0.006716 0.039899 0.056774 0.029768 0.150927 0.062165 0.048938 0.043119 0.034477 0.048801 0.090251 0.051114 0.049331 0.068126 0.204980 0.060128 0.055353 0.028502 0.102490 0.066472 0.031945 0.006395 0.136654 0.075714 0.239144 +0.008471 +0.056117 0.009186 0.042370 0.034564 0.036129 0.122880 0.042913 0.016850 0.163628 0.041772 0.047043 0.138851 0.054234 0.021539 0.048131 0.047889 0.020891 0.344051 0.047786 0.048560 0.040475 0.170817 0.064387 0.036270 0.060736 0.102490 0.093412 0.036634 0.024582 0.170817 0.070471 0.204980 +0.154160 +0.001994 0.012918 0.036639 0.052141 0.034053 0.198301 0.021040 0.065308 0.105184 0.038429 0.043294 0.065145 0.024900 0.005626 0.047814 0.039480 0.038544 0.120528 0.042933 0.057695 0.003786 0.136654 0.083421 0.042406 0.014015 0.102490 0.084899 0.004416 0.002419 0.136654 0.052316 0.239144 +0.002708 +0.019030 0.035513 0.047257 0.105556 0.045345 0.119211 0.010477 0.044818 0.057641 0.060471 0.022883 0.086376 0.026545 0.018820 0.036448 0.100600 0.026937 0.247701 0.055225 0.043575 0.044496 0.170817 0.098616 0.034426 0.053677 0.273307 0.066348 0.036105 0.017863 0.307471 0.067387 0.341634 +0.012511 +0.023847 0.042244 0.047732 0.047341 0.023315 0.212438 0.061782 0.030105 0.050606 0.100942 0.040945 0.157502 0.045617 0.036198 0.042170 0.045778 0.029348 0.205933 0.060959 0.017611 0.042915 0.102490 0.100299 0.036476 0.048341 0.102490 0.093802 0.056299 0.047461 0.102490 0.064172 0.273307 +0.002805 +0.045109 0.055439 0.042661 0.046526 0.032281 0.172338 0.029257 0.036357 0.055315 0.095299 0.035665 0.143117 0.039726 0.007328 0.041049 0.035488 0.018141 0.064731 0.060730 0.021503 0.058754 0.170817 0.091320 0.020580 0.062891 0.239144 0.093099 0.047801 0.052808 0.136654 0.066646 0.273307 +0.086446 +0.033709 0.028682 0.091439 0.070380 0.032197 0.116099 0.059682 0.014236 0.041140 0.061416 0.045371 0.196162 0.011765 0.068289 0.039501 0.043254 0.048288 0.177294 0.045961 0.036303 0.050675 0.170817 0.085729 0.025354 0.059359 0.136654 0.083654 0.021255 0.021229 0.170817 0.093191 0.204980 +0.081102 +0.064156 0.045913 0.039083 0.064132 0.021994 0.069641 0.001719 0.051883 0.041595 0.112727 0.048518 0.053088 0.021088 0.013461 0.070714 0.075827 0.018530 0.130939 0.040739 0.058228 0.000493 0.102490 0.086005 0.022036 0.043295 0.102490 0.084342 0.038814 0.064812 0.136654 0.056713 0.239144 +0 +0.049379 0.067251 0.054166 0.058593 0.030014 0.138974 0.010575 0.030667 0.036315 0.044401 0.045431 0.155890 0.030686 0.005307 0.056774 0.040429 0.042200 0.410001 0.054212 0.033097 0.011378 0.102490 0.102266 0.003641 0.061134 0.102490 0.094206 0.056738 0.040596 0.170817 0.077670 0.273307 +0.034323 +0.021775 0.039257 0.069537 0.046616 0.035310 0.242028 0.021468 0.001520 0.037433 0.077128 0.037332 0.046827 0.051783 0.021875 0.057108 0.042945 0.043529 0.034206 0.035303 0.008659 0.000034 0.170817 0.057332 0.017792 0.067339 0.136654 0.069656 0.038558 0.017360 0.136654 0.084237 0.273307 +0.003195 +0.030216 0.046425 0.040085 0.065348 0.025135 0.103529 0.041945 0.046996 0.096271 0.038980 0.032402 0.183793 0.052055 0.042124 0.046570 0.049596 0.039129 0.096573 0.038017 0.023543 0.065069 0.170817 0.095408 0.006907 0.061630 0.136654 0.058484 0.033443 0.063241 0.170817 0.071471 0.307471 +0 +0.026125 0.004480 0.121171 0.041699 0.021814 0.151888 0.045914 0.064034 0.046066 0.067869 0.020320 0.223652 0.021034 0.014441 0.035298 0.039469 0.029390 0.106445 0.044199 0.046562 0.025193 0.239144 0.088939 0.034482 0.051833 0.239144 0.058222 0.030607 0.021896 0.170817 0.095759 0.307471 +0.101947 +0.011440 0.023824 0.088370 0.091710 0.044451 0.078224 0.035611 0.062189 0.082173 0.038282 0.029443 0.120321 0.022493 0.044782 0.045605 0.036391 0.027846 0.132096 0.062997 0.044151 0.030233 0.136654 0.067734 0.050818 0.014079 0.102490 0.089123 0.012166 0.017321 0.170817 0.061775 0.239144 +0.105735 +0.006264 0.031276 0.062438 0.059543 0.046215 0.154696 0.037802 0.037385 0.034886 0.208774 0.040005 0.077496 0.025154 0.059075 0.053034 0.050120 0.019949 0.052495 0.044582 0.046782 0.023472 0.170817 0.055619 0.020006 0.052967 0.136654 0.052095 0.000757 0.037850 0.204980 0.063425 0.307471 +0.002453 +0.052953 0.034836 0.063822 0.064183 0.037900 0.136888 0.033396 0.029885 0.061666 0.052587 0.040547 0.067858 0.064211 0.018317 0.035909 0.040498 0.041544 0.151958 0.053260 0.045035 0.016536 0.170817 0.064966 0.015634 0.015316 0.170817 0.071358 0.049246 0.024478 0.239144 0.078385 0.273307 +0.361932 +0.058434 0.024068 0.062843 0.059569 0.035413 0.061768 0.039017 0.029606 0.043594 0.080094 0.039928 0.159342 0.018464 0.037069 0.085009 0.080742 0.029652 0.059326 0.055393 0.047871 0.056553 0.136654 0.095055 0.016046 0.013445 0.170817 0.084770 0.048372 0.034665 0.102490 0.058163 0.204980 +0.066172 +0.007145 0.004808 0.045404 0.064909 0.048095 0.051096 0.009501 0.043150 0.037188 0.044814 0.028983 0.200619 0.007508 0.003216 0.074207 0.077369 0.028040 0.234525 0.055396 0.001414 0.042411 0.170817 0.089112 0.014979 0.026139 0.204980 0.052372 0.057684 0.002824 0.102490 0.099770 0.273307 +0.214944 +0.046849 0.013807 0.092666 0.045091 0.035102 0.134150 0.022946 0.005449 0.045535 0.036676 0.029442 0.062503 0.027211 0.009395 0.075851 0.057629 0.017647 0.127175 0.063480 0.041777 0.019082 0.102490 0.081847 0.023320 0.051945 0.170817 0.088627 0.042279 0.050521 0.136654 0.068331 0.239144 +0.038903 +0.049107 0.028064 0.057940 0.106224 0.017421 0.070528 0.038477 0.005675 0.093258 0.066997 0.028159 0.091386 0.052663 0.046270 0.039923 0.071013 0.041539 0.281553 0.045497 0.064823 0.050510 0.170817 0.069613 0.036520 0.018053 0.102490 0.088977 0.004827 0.042536 0.102490 0.074231 0.239144 +0.025732 +0.032354 0.032712 0.053440 0.114990 0.017874 0.261752 0.009105 0.022412 0.055189 0.084593 0.030602 0.451363 0.060901 0.007102 0.041197 0.051576 0.035158 0.037317 0.060932 0.050855 0.012977 0.239144 0.052454 0.038681 0.023380 0.102490 0.082632 0.030850 0.037010 0.170817 0.058802 0.273307 +0.502658 +0.058673 0.064929 0.071004 0.154100 0.045119 0.151576 0.015169 0.062023 0.066605 0.038771 0.037937 0.036507 0.030711 0.063170 0.087908 0.045809 0.025816 0.246957 0.054373 0.048786 0.061709 0.204980 0.078884 0.067644 0.059949 0.102490 0.056215 0.019222 0.014034 0.273307 0.069453 0.341634 +0.007819 +0.035970 0.043779 0.129200 0.149557 0.020702 0.178100 0.042570 0.046577 0.053566 0.100799 0.018428 0.109067 0.026921 0.039003 0.054862 0.103798 0.024681 0.083360 0.046978 0.019435 0.059809 0.273307 0.087915 0.051194 0.066983 0.239144 0.061963 0.049531 0.033308 0.170817 0.077428 0.307471 +0.088504 +0.050731 0.035227 0.053491 0.066876 0.045496 0.034569 0.026893 0.057874 0.084444 0.053947 0.034609 0.053255 0.038934 0.000588 0.034429 0.040120 0.043748 0.119826 0.053919 0.058345 0.053599 0.102490 0.079037 0.040095 0.035339 0.136654 0.081754 0.028386 0.030027 0.102490 0.067839 0.273307 +0 +0.034504 0.008912 0.048242 0.054379 0.044566 0.075906 0.046255 0.066665 0.042912 0.052026 0.044449 0.322278 0.067825 0.030351 0.054983 0.036396 0.023477 0.038873 0.048995 0.057755 0.032331 0.170817 0.072722 0.011024 0.026254 0.170817 0.067798 0.053281 0.015149 0.239144 0.081510 0.341634 +0.137804 +0.041105 0.032294 0.118429 0.090137 0.043352 0.278749 0.031257 0.043993 0.067768 0.035536 0.049015 0.158692 0.025100 0.002847 0.050006 0.070843 0.029185 0.114915 0.044902 0.021436 0.030504 0.170817 0.084383 0.005276 0.054788 0.102490 0.099293 0.028482 0.018858 0.136654 0.059150 0.204980 +0.173818 +0.007029 0.038276 0.044458 0.036964 0.034817 0.257784 0.022436 0.025408 0.057807 0.057908 0.026271 0.085226 0.050244 0.030785 0.042413 0.048284 0.042943 0.053033 0.048080 0.032941 0.012647 0.102490 0.051792 0.022985 0.018477 0.204980 0.086808 0.027997 0.011849 0.239144 0.051872 0.273307 +0.043379 +0.051092 0.050857 0.055836 0.045396 0.036514 0.078898 0.061258 0.035057 0.049434 0.070738 0.044632 0.137525 0.006585 0.026101 0.076240 0.185851 0.038330 0.050661 0.062444 0.060087 0.051137 0.170817 0.086556 0.018573 0.005965 0.170817 0.095848 0.038714 0.039845 0.102490 0.088463 0.204980 +0.006465 +0.021452 0.054371 0.065920 0.059533 0.048976 0.183647 0.047032 0.010236 0.037288 0.064398 0.046125 0.093736 0.010238 0.034106 0.080681 0.044879 0.038085 0.043324 0.046075 0.042812 0.040704 0.102490 0.064221 0.063584 0.060517 0.136654 0.070963 0.059847 0.007988 0.102490 0.070196 0.204980 +0 +0.041294 0.010039 0.082914 0.075650 0.027009 0.125802 0.040092 0.048065 0.059158 0.068062 0.022990 0.721841 0.011202 0.018698 0.071140 0.071942 0.041206 0.034963 0.056263 0.019530 0.039661 0.136654 0.074108 0.002846 0.019280 0.204980 0.062496 0.046809 0.002422 0.204980 0.064985 0.273307 +0.650625 +0.008616 0.023286 0.044714 0.037428 0.029939 0.072991 0.020839 0.066992 0.120606 0.155062 0.043548 0.099610 0.033885 0.012422 0.082290 0.130387 0.043556 0.078582 0.065021 0.032755 0.004161 0.102490 0.096704 0.023245 0.055873 0.273307 0.095474 0.008992 0.012302 0.102490 0.069426 0.307471 +0 +0.058629 0.063877 0.099523 0.047953 0.048850 0.066682 0.061982 0.037932 0.059405 0.177587 0.018102 0.346050 0.029519 0.018828 0.054832 0.045457 0.033985 0.040964 0.040100 0.055320 0.031321 0.102490 0.067084 0.012043 0.031848 0.204980 0.075128 0.050304 0.033253 0.239144 0.057787 0.273307 +0.161313 +0.018816 0.008091 0.034838 0.064313 0.030908 0.150455 0.050696 0.021478 0.066939 0.090599 0.046074 0.108608 0.021921 0.032187 0.047478 0.038439 0.027326 0.067019 0.059600 0.027841 0.015179 0.136654 0.102125 0.009337 0.018510 0.170817 0.097327 0.024318 0.001516 0.170817 0.076067 0.204980 +0.121061 +0.058386 0.005554 0.074689 0.101493 0.029268 0.176959 0.011164 0.059602 0.037826 0.101413 0.017153 0.130132 0.015533 0.033131 0.121262 0.166549 0.031547 0.087287 0.060679 0.040191 0.055061 0.136654 0.098403 0.052597 0.003750 0.136654 0.077800 0.033435 0.053795 0.102490 0.053201 0.273307 +0.004259 +0.045742 0.023680 0.038760 0.117824 0.040682 0.125603 0.009206 0.013489 0.066080 0.039292 0.021076 0.119175 0.052014 0.065421 0.040796 0.035509 0.017171 0.159130 0.064941 0.034502 0.061891 0.102490 0.090045 0.046721 0.014708 0.239144 0.099350 0.047638 0.022039 0.239144 0.067708 0.273307 +0.148122 +0.020714 0.024993 0.039718 0.089176 0.034264 0.091298 0.042065 0.030449 0.073343 0.081224 0.040044 0.040890 0.012302 0.046662 0.091048 0.060311 0.026049 0.064548 0.048016 0.057474 0.018280 0.136654 0.070560 0.017731 0.042990 0.170817 0.082970 0.054417 0.029211 0.136654 0.056716 0.204980 +0.003977 +0.056113 0.066197 0.046628 0.045672 0.028528 0.116217 0.037914 0.050553 0.040904 0.053473 0.032328 0.167403 0.061010 0.013206 0.094908 0.036680 0.050274 0.060408 0.059996 0.060279 0.036390 0.102490 0.073153 0.007797 0.014237 0.204980 0.074585 0.019983 0.046994 0.239144 0.098425 0.307471 +0.013128 +0.011290 0.063417 0.050713 0.076803 0.021793 0.046005 0.045864 0.034750 0.036439 0.046848 0.036529 0.297637 0.020153 0.061206 0.086624 0.091848 0.029362 0.038417 0.044936 0.055807 0.026182 0.170817 0.090096 0.042107 0.028841 0.102490 0.063663 0.054579 0.041982 0.102490 0.099789 0.204980 +0.024779 +0.067993 0.049545 0.071367 0.057765 0.032487 0.125528 0.065279 0.028683 0.058287 0.053708 0.042146 0.065749 0.059321 0.001284 0.085968 0.042815 0.034514 0.124142 0.054185 0.028232 0.052975 0.136654 0.066521 0.008425 0.024570 0.307471 0.072037 0.046982 0.058880 0.204980 0.058997 0.341634 +0 +0.064066 0.050112 0.047751 0.054270 0.021923 0.067932 0.019381 0.062960 0.065509 0.046849 0.045862 0.155291 0.027867 0.060972 0.034727 0.036326 0.045910 0.190007 0.038939 0.027302 0.001481 0.102490 0.087092 0.051716 0.005511 0.102490 0.072412 0.063531 0.053789 0.204980 0.058661 0.307471 +0.261913 +0.037460 0.041129 0.041586 0.194995 0.023131 0.101652 0.012666 0.050122 0.088101 0.065941 0.041450 0.075838 0.053278 0.064634 0.041507 0.078742 0.038164 0.075961 0.056299 0.006280 0.060974 0.204980 0.096919 0.002321 0.041004 0.239144 0.067980 0.062074 0.066755 0.102490 0.098026 0.341634 +0 +0.005438 0.057236 0.087551 0.050287 0.024219 0.247727 0.067096 0.034710 0.070116 0.043512 0.025129 0.069239 0.024162 0.031326 0.066421 0.069974 0.033195 0.130874 0.053964 0.013020 0.059090 0.204980 0.080072 0.009128 0.032492 0.239144 0.052974 0.066226 0.013492 0.102490 0.061013 0.273307 +0.014150 +0.043079 0.032407 0.065232 0.055557 0.038514 0.244751 0.030577 0.050835 0.034655 0.067121 0.028525 0.084872 0.004592 0.012130 0.102425 0.041266 0.041434 0.073515 0.062677 0.043401 0.019880 0.102490 0.095118 0.010921 0.006526 0.102490 0.080157 0.016133 0.015913 0.307471 0.085523 0.341634 +0.219144 +0.056404 0.001106 0.066803 0.066900 0.027295 0.695960 0.024439 0.005328 0.039802 0.094514 0.048566 0.062705 0.049947 0.059450 0.047055 0.053911 0.044837 0.085852 0.043650 0.033069 0.038271 0.170817 0.081375 0.025598 0.055968 0.239144 0.053020 0.048589 0.016603 0.239144 0.086686 0.273307 +0.333287 +0.038877 0.066960 0.037571 0.107666 0.024712 0.114554 0.023747 0.012249 0.044237 0.057347 0.042232 0.043775 0.038618 0.061249 0.038307 0.072849 0.019693 0.117622 0.050739 0.016967 0.004531 0.170817 0.077913 0.035936 0.021846 0.239144 0.081238 0.063893 0.026929 0.136654 0.086169 0.273307 +0.003210 +0.048924 0.000068 0.073139 0.034632 0.047844 0.038989 0.018655 0.066089 0.053971 0.044942 0.032799 0.057092 0.064744 0.049294 0.040580 0.103496 0.036402 0.079014 0.060924 0.010038 0.024280 0.204980 0.096285 0.036741 0.034138 0.136654 0.087296 0.064656 0.031361 0.239144 0.075176 0.341634 +0 +0.051025 0.005526 0.037216 0.046761 0.031888 0.056208 0.061368 0.036871 0.040978 0.057416 0.045008 0.050745 0.045237 0.064822 0.081843 0.052588 0.024292 0.434126 0.043590 0.043957 0.020562 0.102490 0.074746 0.002412 0.045712 0.102490 0.079589 0.014731 0.035293 0.102490 0.066739 0.204980 +0.483818 +0.020907 0.030004 0.077737 0.061836 0.042455 0.057269 0.046655 0.017238 0.042280 0.066655 0.041799 0.060058 0.029395 0.007733 0.057357 0.037326 0.031021 0.068830 0.048941 0.013752 0.009395 0.239144 0.052213 0.068035 0.016741 0.239144 0.085954 0.019280 0.024147 0.239144 0.076445 0.273307 +0 +0.001831 0.057589 0.081052 0.087250 0.036008 0.475904 0.009714 0.067931 0.084498 0.047527 0.039555 0.090479 0.065505 0.030784 0.106812 0.087003 0.027394 0.118047 0.064328 0.010134 0.037390 0.170817 0.054660 0.006479 0.032951 0.170817 0.075814 0.028243 0.014333 0.102490 0.088762 0.239144 +0.349602 +0.008656 0.036510 0.065097 0.034898 0.039244 0.035151 0.027692 0.068156 0.076907 0.035939 0.044759 0.138429 0.048831 0.044289 0.038337 0.100799 0.023573 0.183757 0.060437 0.027540 0.013575 0.239144 0.053129 0.010979 0.031683 0.239144 0.064732 0.058406 0.007527 0.273307 0.054376 0.307471 +0.050929 +0.056811 0.058384 0.058551 0.072205 0.025541 0.051942 0.037788 0.032702 0.041860 0.047805 0.041306 0.227765 0.016274 0.063648 0.117855 0.039003 0.017751 0.107515 0.063417 0.008217 0.064375 0.273307 0.092353 0.068125 0.002035 0.204980 0.072476 0.024792 0.059303 0.273307 0.053297 0.307471 +0.030541 +0.003792 0.064270 0.049228 0.072389 0.031685 0.110937 0.015382 0.024041 0.036266 0.043679 0.037874 0.107845 0.004634 0.042114 0.041728 0.049420 0.036664 0.319004 0.060741 0.031860 0.011137 0.136654 0.075544 0.019514 0.049144 0.136654 0.098915 0.051767 0.003500 0.204980 0.068790 0.239144 +0.194527 +0.062860 0.004053 0.053279 0.091458 0.037059 0.071015 0.029970 0.031918 0.099574 0.066162 0.045120 0.131482 0.052140 0.002065 0.050397 0.065371 0.049253 0.055924 0.055024 0.018599 0.013324 0.170817 0.069757 0.001275 0.032490 0.170817 0.053811 0.067769 0.018130 0.102490 0.097719 0.204980 +0.014440 +0.062367 0.065577 0.037097 0.084177 0.020960 0.185212 0.033359 0.003688 0.044306 0.109151 0.022513 0.223753 0.014582 0.015486 0.086551 0.056224 0.042727 0.170863 0.043949 0.064095 0.010077 0.102490 0.080930 0.017358 0.021817 0.136654 0.097272 0.009364 0.063209 0.102490 0.101857 0.204980 +0.017300 +0.036373 0.017642 0.036779 0.049316 0.038891 0.080529 0.058608 0.017127 0.037386 0.040676 0.025526 0.094196 0.058363 0.035142 0.079262 0.048494 0.049029 0.307173 0.041406 0.009003 0.012998 0.102490 0.076895 0.010319 0.054128 0.239144 0.073328 0.030443 0.007746 0.136654 0.065416 0.273307 +0.143952 +0.035020 0.037393 0.053485 0.053627 0.033825 0.074665 0.052367 0.001481 0.048544 0.123605 0.042374 0.043003 0.002154 0.052320 0.080768 0.101070 0.038924 0.073666 0.056762 0.054959 0.061623 0.136654 0.057328 0.021950 0.046321 0.136654 0.061650 0.032637 0.028081 0.136654 0.072367 0.204980 +0 +0.023504 0.008851 0.052931 0.119447 0.035679 0.048114 0.048618 0.043035 0.061330 0.058797 0.038251 0.109285 0.029461 0.055138 0.091832 0.053215 0.033273 0.107230 0.053858 0.043520 0.022712 0.239144 0.094919 0.023923 0.025098 0.204980 0.069035 0.011140 0.058798 0.102490 0.092133 0.341634 +0 +0.027315 0.061528 0.054806 0.060638 0.024255 0.046061 0.022564 0.031765 0.038298 0.059091 0.050320 0.251026 0.040251 0.052225 0.088142 0.078035 0.025847 0.117189 0.053270 0.039230 0.037397 0.136654 0.070494 0.027041 0.050909 0.239144 0.102390 0.042930 0.023590 0.204980 0.097477 0.273307 +0.198480 +0.067715 0.022016 0.064479 0.043182 0.027095 0.111336 0.013102 0.049771 0.038157 0.048581 0.050525 0.072146 0.005485 0.047210 0.042688 0.044124 0.039075 0.287652 0.045600 0.009788 0.050468 0.102490 0.082363 0.014182 0.023407 0.102490 0.080934 0.065411 0.041740 0.170817 0.086436 0.204980 +0.469326 +0.063981 0.036350 0.042438 0.052055 0.045054 0.221127 0.066077 0.061752 0.052189 0.038461 0.050999 0.268442 0.016449 0.009291 0.050702 0.105115 0.044927 0.091862 0.054218 0.024891 0.040138 0.136654 0.060406 0.027988 0.066856 0.273307 0.057208 0.003499 0.047900 0.204980 0.059191 0.341634 +0.541828 +0.021643 0.015943 0.045096 0.065326 0.034926 0.035972 0.014427 0.028588 0.061251 0.053203 0.025128 0.073179 0.012686 0.057133 0.048977 0.043738 0.032820 0.152274 0.054012 0.055208 0.056488 0.170817 0.082306 0.045529 0.061733 0.102490 0.083040 0.033009 0.010419 0.170817 0.102387 0.239144 +0.002226 +0.058873 0.048638 0.060422 0.036661 0.049997 0.198924 0.029636 0.029362 0.061464 0.108672 0.024624 0.074924 0.023816 0.010507 0.040898 0.054927 0.040606 0.101977 0.051189 0.009700 0.034318 0.273307 0.062879 0.053369 0.017393 0.204980 0.085057 0.027493 0.068293 0.204980 0.080056 0.341634 +0.023547 +0.062720 0.036800 0.070939 0.095182 0.033204 0.065767 0.045886 0.055881 0.035693 0.091786 0.020605 0.205639 0.009491 0.009850 0.058278 0.064965 0.048335 0.152086 0.056431 0.001519 0.033030 0.102490 0.058097 0.042067 0.011488 0.239144 0.065078 0.041628 0.029981 0.136654 0.070221 0.273307 +0.194597 +0.020611 0.064492 0.074502 0.085196 0.025874 0.115775 0.021882 0.043504 0.151619 0.050821 0.028797 0.059044 0.000505 0.033882 0.083739 0.044029 0.032274 0.240577 0.048057 0.060339 0.022228 0.102490 0.081136 0.046142 0.026932 0.170817 0.058890 0.046797 0.007527 0.204980 0.064411 0.341634 +0 +0.067488 0.060066 0.097455 0.060182 0.018773 0.272655 0.044381 0.056093 0.080120 0.068958 0.028571 0.307215 0.003306 0.006495 0.051143 0.070226 0.017731 0.113336 0.059400 0.053089 0.019820 0.136654 0.077383 0.014466 0.067848 0.136654 0.094685 0.036635 0.015814 0.170817 0.053382 0.204980 +0.517730 +0.039848 0.005657 0.178312 0.060188 0.047064 0.165470 0.017932 0.010868 0.056607 0.051965 0.035581 0.042814 0.019919 0.017155 0.096391 0.081635 0.023542 0.093388 0.066547 0.060726 0.067559 0.170817 0.086841 0.052098 0.059803 0.170817 0.084090 0.051790 0.001407 0.204980 0.079909 0.307471 +0.006332 +0.062160 0.025346 0.073258 0.042393 0.040907 0.117476 0.052010 0.022702 0.100739 0.047314 0.018948 0.054670 0.023731 0.051622 0.036368 0.057496 0.035732 0.156967 0.053207 0.003623 0.025111 0.102490 0.076873 0.030485 0.034890 0.136654 0.087262 0.016273 0.025820 0.136654 0.086679 0.204980 +0.063423 +0.017603 0.024557 0.070622 0.042245 0.031429 0.110214 0.032679 0.019583 0.060659 0.035557 0.040004 0.298159 0.067786 0.028266 0.044176 0.057774 0.035493 0.042342 0.044041 0.010832 0.067843 0.102490 0.084775 0.058285 0.051598 0.136654 0.055282 0.023232 0.019978 0.136654 0.072563 0.204980 +0.101218 +0.034500 0.034499 0.039102 0.120937 0.043659 0.064079 0.025294 0.045539 0.068409 0.044083 0.033446 0.076547 0.020580 0.062307 0.038251 0.042803 0.046282 0.070824 0.046956 0.004634 0.006584 0.170817 0.089512 0.046775 0.044214 0.136654 0.082411 0.038783 0.062304 0.136654 0.099818 0.204980 +0.034294 +0.024154 0.001460 0.056566 0.047011 0.032781 0.165818 0.057194 0.024088 0.064344 0.120143 0.033910 0.114160 0.059973 0.014475 0.041948 0.068277 0.034966 0.035583 0.049954 0.053966 0.020717 0.136654 0.068996 0.035052 0.044552 0.170817 0.056260 0.020957 0.030562 0.170817 0.056871 0.273307 +0.013348 +0.049925 0.035208 0.054348 0.106077 0.029504 0.275540 0.017957 0.056226 0.074530 0.093578 0.018740 0.072155 0.029610 0.001089 0.037223 0.076433 0.035614 0.263883 0.052911 0.058510 0.022176 0.102490 0.056423 0.011909 0.001631 0.102490 0.051748 0.009707 0.055626 0.136654 0.082665 0.204980 +0.436765 +0.056446 0.001385 0.042916 0.089497 0.050036 0.070527 0.060449 0.064249 0.055107 0.040401 0.039447 0.108067 0.042769 0.033189 0.073379 0.051943 0.047513 0.281521 0.041971 0.003001 0.031113 0.170817 0.092219 0.048135 0.010507 0.102490 0.098112 0.047194 0.042553 0.102490 0.058243 0.204980 +0.247041 +0.018745 0.036108 0.054745 0.075160 0.033131 0.081843 0.003468 0.022896 0.052962 0.043556 0.026558 0.106684 0.009307 0.038234 0.053627 0.053452 0.028089 0.076697 0.062733 0.018464 0.053197 0.170817 0.091972 0.051115 0.014779 0.170817 0.059779 0.060825 0.014738 0.136654 0.077466 0.239144 +0.011546 +0.026866 0.060836 0.107565 0.052277 0.017355 0.062189 0.012023 0.032509 0.037024 0.038784 0.026657 0.157435 0.035293 0.028930 0.039872 0.054811 0.041529 0.050156 0.046807 0.000497 0.015037 0.170817 0.088064 0.042016 0.007813 0.170817 0.074109 0.038639 0.040700 0.204980 0.055151 0.239144 +0 +0.036567 0.052253 0.039888 0.050599 0.044986 0.254870 0.020421 0.040808 0.120774 0.073901 0.033654 0.094705 0.011365 0.002865 0.043822 0.036415 0.029394 0.083976 0.044326 0.036879 0.036711 0.136654 0.062276 0.050621 0.023337 0.136654 0.094846 0.041499 0.016490 0.102490 0.084325 0.204980 +0.345585 +0.062415 0.043874 0.072586 0.054274 0.018573 0.196106 0.048977 0.050968 0.051146 0.089171 0.037813 0.110076 0.020764 0.062155 0.049478 0.037290 0.031832 0.083046 0.057786 0.044937 0.025887 0.170817 0.093758 0.067660 0.035492 0.102490 0.062988 0.038745 0.033183 0.102490 0.066397 0.204980 +0.104411 +0.054225 0.040357 0.051853 0.196843 0.018087 0.193606 0.026962 0.011633 0.041864 0.088034 0.034904 0.051981 0.010368 0.011590 0.155030 0.080108 0.039635 0.215189 0.056623 0.007767 0.060571 0.239144 0.058841 0.018916 0.019130 0.102490 0.090666 0.028571 0.061947 0.307471 0.095851 0.341634 +0.032284 +0.020092 0.036005 0.034893 0.047197 0.017127 0.043022 0.013473 0.050002 0.081137 0.073362 0.027173 0.127320 0.064570 0.028769 0.041447 0.054678 0.034245 0.039898 0.047160 0.046502 0.035536 0.170817 0.102075 0.018981 0.041209 0.170817 0.058804 0.067904 0.039964 0.102490 0.085475 0.239144 +0.001746 +0.007348 0.034361 0.047543 0.054345 0.031184 0.194223 0.053522 0.059568 0.081111 0.103706 0.044304 0.132193 0.049570 0.055450 0.044690 0.034800 0.018300 0.092415 0.042585 0.041138 0.020817 0.239144 0.069048 0.012012 0.021148 0.102490 0.073526 0.012695 0.013308 0.170817 0.072242 0.307471 +0.256999 +0.007065 0.007805 0.102675 0.052692 0.030333 0.279107 0.046315 0.028423 0.055164 0.043639 0.023881 0.148170 0.035428 0.041317 0.159026 0.052435 0.025824 0.044005 0.053233 0.031155 0.002677 0.136654 0.063115 0.013600 0.048879 0.136654 0.052146 0.026316 0.030540 0.136654 0.076356 0.204980 +0.104086 +0.029572 0.028742 0.061627 0.045196 0.029913 0.535540 0.034484 0.001354 0.099302 0.054331 0.032009 0.200328 0.009038 0.049742 0.057216 0.057953 0.049426 0.034425 0.046609 0.012990 0.056674 0.136654 0.102355 0.056246 0.066284 0.307471 0.090132 0.011098 0.053428 0.239144 0.086454 0.341634 +0.378168 +0.023560 0.004406 0.057927 0.035517 0.031433 0.093227 0.023139 0.040101 0.071420 0.046558 0.044334 0.191590 0.040132 0.063461 0.042344 0.138667 0.029341 0.223622 0.057711 0.018557 0.022816 0.204980 0.058522 0.005820 0.036422 0.239144 0.071598 0.068134 0.057164 0.102490 0.075842 0.341634 +0.262908 +0.011672 0.058612 0.043762 0.042240 0.018757 0.157941 0.060181 0.059751 0.059466 0.064111 0.050434 0.053327 0.034128 0.019918 0.038234 0.043305 0.033169 0.084008 0.044027 0.056189 0.034643 0.136654 0.078985 0.062409 0.015556 0.102490 0.095500 0.046161 0.064734 0.136654 0.088763 0.307471 +0 +0.058983 0.006311 0.110518 0.066735 0.044323 0.058060 0.041453 0.048297 0.176750 0.122565 0.018993 0.258047 0.005284 0.038400 0.035928 0.064367 0.026892 0.347645 0.062944 0.044606 0.029207 0.102490 0.084933 0.030025 0.005924 0.170817 0.086768 0.017985 0.024973 0.170817 0.058942 0.204980 +0.303689 +0.057471 0.001425 0.044576 0.133755 0.030949 0.063805 0.007898 0.059880 0.065083 0.070167 0.037802 0.236147 0.061834 0.026180 0.057602 0.043787 0.042154 0.039474 0.057225 0.049825 0.020745 0.136654 0.067931 0.055513 0.064472 0.102490 0.095582 0.057672 0.041315 0.273307 0.086664 0.307471 +0.083128 +0.060495 0.012995 0.081893 0.084359 0.026619 0.065421 0.025902 0.045896 0.059314 0.045770 0.024730 0.126247 0.053641 0.053736 0.135049 0.047092 0.018251 0.159900 0.043910 0.064303 0.026439 0.136654 0.067927 0.010824 0.034889 0.102490 0.092816 0.050700 0.059799 0.136654 0.065121 0.204980 +0.062162 +0.042907 0.004412 0.054302 0.043493 0.030118 0.051370 0.057201 0.011232 0.061837 0.044150 0.017363 0.115546 0.059834 0.007410 0.036201 0.045885 0.024258 0.057048 0.045281 0.050672 0.027866 0.102490 0.095927 0.018702 0.037072 0.239144 0.099779 0.001133 0.053261 0.204980 0.059262 0.273307 +0 +0.012035 0.018566 0.042511 0.074522 0.049783 0.088693 0.024231 0.017762 0.128610 0.040536 0.020794 0.147599 0.008281 0.059283 0.069621 0.055130 0.032593 0.080768 0.050649 0.013658 0.013368 0.204980 0.093359 0.045644 0.035783 0.102490 0.068254 0.026938 0.046175 0.136654 0.078104 0.239144 +0.069087 +0.058473 0.026681 0.145989 0.037994 0.032639 0.245783 0.018725 0.048237 0.144763 0.042914 0.017281 0.162309 0.047578 0.030029 0.054924 0.125030 0.047688 0.131295 0.041325 0.016452 0.031323 0.170817 0.086563 0.025030 0.033051 0.170817 0.072095 0.062614 0.017589 0.136654 0.084807 0.307471 +0.023225 +0.020460 0.027846 0.081150 0.065875 0.022592 0.104850 0.035480 0.004919 0.080201 0.162983 0.036150 0.037594 0.041724 0.055464 0.053725 0.049906 0.039207 0.575715 0.046775 0.052849 0.023971 0.102490 0.052479 0.041945 0.017036 0.102490 0.070686 0.025134 0.029191 0.102490 0.068661 0.307471 +0.460576 +0.017085 0.032860 0.038683 0.045335 0.051142 0.076773 0.003868 0.045832 0.037942 0.102802 0.031237 0.051106 0.009126 0.063070 0.117423 0.068130 0.039846 0.072321 0.063972 0.045551 0.023339 0.239144 0.070285 0.049050 0.015554 0.136654 0.095928 0.000862 0.034757 0.204980 0.056506 0.341634 +0 +0.056703 0.052813 0.061767 0.055703 0.027911 0.338293 0.055885 0.033210 0.071484 0.056961 0.042748 0.067347 0.049131 0.054257 0.038233 0.092121 0.047447 0.058421 0.040810 0.052944 0.051608 0.102490 0.093474 0.012375 0.018502 0.136654 0.070905 0.048299 0.056625 0.170817 0.097650 0.204980 +0.216159 +0.025698 0.067739 0.040937 0.056783 0.017432 0.072088 0.064930 0.044214 0.043341 0.054814 0.031892 0.119147 0.026043 0.010357 0.050877 0.078681 0.031760 0.053882 0.048582 0.043590 0.057664 0.136654 0.057981 0.055801 0.018658 0.136654 0.051505 0.059767 0.003895 0.170817 0.075430 0.204980 +0.026614 +0.010325 0.015015 0.042858 0.068403 0.019511 0.115311 0.004850 0.046081 0.044924 0.081625 0.049829 0.071942 0.015341 0.059612 0.088390 0.137877 0.044438 0.106166 0.050057 0.041196 0.001877 0.136654 0.055258 0.049697 0.021159 0.204980 0.065152 0.054465 0.041538 0.204980 0.088717 0.239144 +0.127929 +0.057236 0.000120 0.090070 0.040924 0.033716 0.044942 0.012342 0.042881 0.185370 0.040200 0.036495 0.065786 0.027054 0.014476 0.037658 0.081541 0.047368 0.462045 0.048529 0.064408 0.055799 0.239144 0.074004 0.054090 0.040653 0.136654 0.094328 0.007012 0.019230 0.239144 0.053578 0.341634 +0.379163 +0.011162 0.055142 0.067733 0.034637 0.031763 0.035211 0.015451 0.023139 0.040150 0.038078 0.017754 0.144295 0.011991 0.018685 0.051778 0.133463 0.031771 0.141263 0.045464 0.041267 0.010866 0.170817 0.079148 0.049618 0.041360 0.102490 0.061942 0.039723 0.007536 0.136654 0.081207 0.239144 +0.008124 +0.026338 0.003139 0.060455 0.038681 0.018612 0.045270 0.043932 0.014260 0.069994 0.035825 0.022347 0.090274 0.065975 0.024301 0.059708 0.113116 0.027013 0.317570 0.052423 0.059982 0.060147 0.136654 0.059476 0.034932 0.020040 0.239144 0.090248 0.043815 0.038215 0.204980 0.101309 0.273307 +0.047161 +0.015767 0.027097 0.073874 0.039289 0.020587 0.179446 0.034112 0.018912 0.040802 0.051844 0.031252 0.070751 0.056508 0.040387 0.038450 0.105517 0.024108 0.077331 0.060785 0.007759 0.014632 0.170817 0.102099 0.023952 0.038301 0.102490 0.100430 0.057225 0.055876 0.170817 0.087963 0.239144 +0.006401 +0.007568 0.003357 0.037944 0.114796 0.041598 0.135410 0.004832 0.019262 0.043156 0.042139 0.023834 0.255208 0.016520 0.065046 0.046040 0.038359 0.022986 0.200679 0.045984 0.002424 0.046552 0.170817 0.073000 0.056845 0.003756 0.102490 0.080364 0.015631 0.000805 0.136654 0.068774 0.204980 +0.602897 +0.027138 0.001279 0.101059 0.083332 0.024744 0.159509 0.063667 0.063741 0.049909 0.078809 0.036723 0.118947 0.062577 0.011719 0.079770 0.043385 0.035064 0.102050 0.048133 0.052717 0.034575 0.102490 0.053832 0.036494 0.023845 0.136654 0.051992 0.020896 0.063271 0.136654 0.088884 0.204980 +0.017603 +0.064553 0.022587 0.080060 0.094429 0.046936 0.049668 0.032693 0.014810 0.042970 0.111916 0.024179 0.189355 0.011354 0.018108 0.041595 0.110040 0.025904 0.047754 0.062894 0.045443 0.042761 0.204980 0.068973 0.043075 0.017117 0.102490 0.092600 0.027678 0.029955 0.204980 0.091439 0.239144 +0.120035 +0.059661 0.037508 0.042814 0.089123 0.036278 0.040245 0.065638 0.055802 0.072452 0.097117 0.019592 0.371612 0.025483 0.045293 0.042002 0.046546 0.020316 0.445942 0.046459 0.047137 0.044750 0.102490 0.054291 0.045990 0.057306 0.102490 0.060645 0.046004 0.011158 0.136654 0.099201 0.239144 +0.447039 +0.027050 0.013441 0.045042 0.043591 0.033806 0.094316 0.026809 0.053065 0.066073 0.078715 0.021595 0.392253 0.044439 0.021815 0.041906 0.054012 0.028139 0.115568 0.058905 0.058498 0.026204 0.136654 0.056466 0.057351 0.033275 0.239144 0.095126 0.047423 0.025332 0.204980 0.060023 0.307471 +0.235950 +0.049140 0.027534 0.162181 0.067873 0.047227 0.044634 0.024337 0.030234 0.052782 0.035845 0.043578 0.048339 0.063874 0.004832 0.086923 0.077941 0.037433 0.358799 0.046113 0.068171 0.053607 0.273307 0.099291 0.009788 0.002469 0.273307 0.085071 0.030890 0.039040 0.239144 0.055241 0.307471 +0.078484 +0.051495 0.030893 0.044308 0.118562 0.027565 0.039545 0.031922 0.006178 0.037339 0.087364 0.018830 0.137814 0.031953 0.051399 0.039241 0.059493 0.035559 0.135680 0.057327 0.009528 0.012170 0.204980 0.067412 0.005362 0.018461 0.102490 0.085906 0.027401 0.051688 0.136654 0.101824 0.239144 +0.019406 +0.062833 0.034607 0.067802 0.044118 0.038894 0.068549 0.037588 0.065359 0.052000 0.055271 0.022202 0.208173 0.010352 0.043996 0.036205 0.106480 0.050189 0.091975 0.043661 0.066760 0.004612 0.239144 0.086658 0.041670 0.002929 0.239144 0.085978 0.062140 0.046452 0.307471 0.063044 0.341634 +0.057084 +0.049520 0.033769 0.070413 0.148620 0.029603 0.043502 0.034500 0.058882 0.036881 0.176858 0.026988 0.185588 0.048954 0.006940 0.042767 0.082261 0.031829 0.089756 0.042479 0.052518 0.049304 0.239144 0.089193 0.034586 0.055913 0.102490 0.080756 0.058880 0.037660 0.239144 0.057602 0.273307 +0.018843 +0.012035 0.043040 0.041072 0.034966 0.030812 0.090905 0.011194 0.017552 0.056063 0.057678 0.025830 0.034502 0.036398 0.047742 0.062855 0.049778 0.039643 0.066033 0.045309 0.027107 0.028502 0.102490 0.064330 0.047454 0.024858 0.273307 0.061919 0.044690 0.032873 0.273307 0.090094 0.341634 +0 +0.038980 0.006474 0.076719 0.051328 0.035291 0.070977 0.067902 0.014047 0.039913 0.036467 0.018650 0.037405 0.048486 0.021293 0.043476 0.039643 0.049614 0.055504 0.042064 0.027145 0.019744 0.239144 0.102489 0.025689 0.064640 0.136654 0.067054 0.060379 0.036144 0.170817 0.084832 0.273307 +0 +0.067269 0.050360 0.149967 0.073153 0.038507 0.188317 0.048958 0.022258 0.089656 0.102624 0.024498 0.234049 0.011946 0.010190 0.036376 0.066063 0.048428 0.131592 0.045055 0.039261 0.003856 0.136654 0.074876 0.064307 0.020574 0.136654 0.095899 0.032871 0.011172 0.170817 0.088533 0.204980 +0.360064 +0.051590 0.031787 0.075296 0.052883 0.048610 0.093668 0.015232 0.056534 0.052450 0.097290 0.041917 0.152364 0.002255 0.042067 0.061911 0.056950 0.042853 0.150496 0.046683 0.064454 0.042984 0.239144 0.082521 0.054700 0.067473 0.204980 0.094392 0.001274 0.042073 0.239144 0.069648 0.273307 +0.093494 +0.051224 0.010899 0.051219 0.083300 0.038948 0.176959 0.024188 0.000861 0.148683 0.038993 0.028243 0.189721 0.015432 0.055436 0.065582 0.073950 0.032318 0.187770 0.057294 0.042008 0.025533 0.204980 0.086912 0.063099 0.027574 0.239144 0.081332 0.027392 0.014067 0.102490 0.085918 0.273307 +0.163974 +0.055724 0.013280 0.048816 0.043988 0.039344 0.122861 0.013709 0.027204 0.066572 0.125511 0.039630 0.111015 0.022691 0.012383 0.071643 0.050605 0.041821 0.042219 0.048642 0.021017 0.038081 0.204980 0.059008 0.045645 0.049905 0.204980 0.055267 0.043304 0.007432 0.136654 0.081496 0.341634 +0 +0.026872 0.038303 0.106380 0.130421 0.018564 0.065766 0.050589 0.046386 0.042473 0.045479 0.046670 0.088605 0.059771 0.034876 0.054918 0.060458 0.018702 0.063026 0.048262 0.044248 0.057810 0.204980 0.081450 0.041477 0.034881 0.204980 0.073904 0.065886 0.048317 0.204980 0.066842 0.239144 +0.015614 +0.006333 0.027469 0.046636 0.134128 0.021445 0.062903 0.025623 0.041525 0.099341 0.058186 0.050913 0.163793 0.053161 0.025490 0.068216 0.081843 0.043334 0.071377 0.064768 0.036304 0.022151 0.136654 0.093594 0.053313 0.035916 0.239144 0.051857 0.026664 0.040561 0.136654 0.091438 0.273307 +0.013273 +0.026987 0.033855 0.068104 0.091988 0.030662 0.072698 0.066057 0.052357 0.068954 0.041679 0.021506 0.153255 0.047774 0.056155 0.051407 0.109145 0.039057 0.217036 0.059976 0.018280 0.057624 0.239144 0.056827 0.024740 0.030296 0.102490 0.073258 0.053914 0.033377 0.239144 0.057991 0.341634 +0.008181 +0.037367 0.026405 0.064377 0.038982 0.036691 0.169831 0.059241 0.060703 0.039613 0.043226 0.045827 0.130786 0.028016 0.012056 0.048999 0.081464 0.043973 0.270296 0.061339 0.048713 0.028194 0.307471 0.074603 0.007088 0.023985 0.170817 0.075608 0.032908 0.005449 0.307471 0.083191 0.341634 +0.385279 +0.040090 0.040261 0.081407 0.036916 0.043938 0.080160 0.064939 0.003127 0.050920 0.048829 0.036348 0.128450 0.052116 0.032584 0.034219 0.047244 0.031525 0.097507 0.041633 0.010089 0.014217 0.239144 0.101889 0.057859 0.036887 0.170817 0.081889 0.052543 0.056506 0.239144 0.091622 0.273307 +0.004347 +0.025206 0.001119 0.075102 0.075710 0.025741 0.089555 0.067037 0.065745 0.071321 0.046516 0.036362 0.435296 0.024595 0.013317 0.039313 0.053523 0.024866 0.143822 0.049322 0.007913 0.023242 0.170817 0.085212 0.018458 0.037385 0.136654 0.081537 0.012918 0.062561 0.136654 0.053537 0.239144 +0.291830 +0.007423 0.019156 0.060410 0.097966 0.046413 0.264583 0.002840 0.036773 0.040560 0.113803 0.039156 0.078874 0.045745 0.023348 0.035581 0.075273 0.048974 0.045931 0.058376 0.014104 0.017208 0.204980 0.063350 0.009398 0.027753 0.170817 0.099293 0.059733 0.003673 0.170817 0.060464 0.239144 +0.061996 +0.004640 0.051771 0.096603 0.036572 0.032526 0.325640 0.051631 0.005649 0.037935 0.251596 0.022550 0.104764 0.047596 0.003514 0.035814 0.273894 0.025164 0.135576 0.056168 0.011648 0.053438 0.102490 0.084127 0.008381 0.026784 0.204980 0.088301 0.036280 0.031765 0.204980 0.072625 0.239144 +0.067105 +0.010154 0.025431 0.037826 0.052195 0.023007 0.121816 0.010032 0.050414 0.040855 0.177594 0.026022 0.111166 0.045003 0.017284 0.215734 0.095518 0.041168 0.254204 0.064529 0.012229 0.043702 0.102490 0.095347 0.051790 0.036551 0.102490 0.100512 0.024372 0.031974 0.136654 0.099174 0.341634 +0 +0.049303 0.015687 0.037151 0.060819 0.041475 0.148021 0.067473 0.036757 0.050470 0.064485 0.035745 0.066389 0.026427 0.053434 0.037635 0.040065 0.022928 0.090354 0.058216 0.015962 0.040778 0.204980 0.086282 0.028741 0.035827 0.102490 0.070132 0.053375 0.012599 0.102490 0.094907 0.307471 +0 +0.031881 0.043224 0.039872 0.040464 0.021641 0.103688 0.013244 0.037780 0.052059 0.049088 0.038563 0.081541 0.033625 0.009802 0.042400 0.118627 0.042571 0.267460 0.042188 0.050412 0.052693 0.136654 0.089116 0.020124 0.053982 0.170817 0.072409 0.024418 0.038860 0.102490 0.056949 0.204980 +0.029226 +0.025405 0.062693 0.069209 0.068474 0.019502 0.167832 0.017322 0.005806 0.045333 0.079062 0.048927 0.057992 0.042503 0.018773 0.038264 0.116726 0.018737 0.250773 0.054396 0.064945 0.026141 0.102490 0.059150 0.021666 0.051453 0.102490 0.087341 0.058438 0.060373 0.170817 0.070390 0.341634 +0 +0.021805 0.049519 0.046403 0.060320 0.035488 0.140309 0.065632 0.042910 0.056727 0.075711 0.019113 0.073738 0.000186 0.066039 0.092396 0.082037 0.028284 0.051326 0.056961 0.000184 0.020319 0.204980 0.058484 0.045133 0.000494 0.170817 0.057457 0.001445 0.057130 0.204980 0.059165 0.341634 +0 +0.047143 0.008956 0.047517 0.108354 0.035311 0.239620 0.045986 0.067582 0.173675 0.058170 0.051209 0.084635 0.006591 0.065039 0.082801 0.050178 0.025310 0.146715 0.061356 0.067262 0.004376 0.102490 0.074697 0.037943 0.049192 0.273307 0.100512 0.013796 0.010541 0.102490 0.077893 0.341634 +0.035920 +0.044976 0.039418 0.037561 0.112433 0.019667 0.034759 0.041803 0.016834 0.057470 0.067967 0.046117 0.065766 0.024198 0.051131 0.071351 0.076137 0.042522 0.104773 0.047400 0.004038 0.003775 0.170817 0.074680 0.027171 0.067292 0.136654 0.068822 0.027081 0.019066 0.239144 0.067573 0.273307 +0 +0.057831 0.012616 0.111695 0.049100 0.030625 0.039847 0.066824 0.036454 0.081977 0.041812 0.042507 0.247466 0.050683 0.048344 0.155989 0.174846 0.043641 0.101918 0.051665 0.051596 0.025608 0.102490 0.087790 0.039653 0.061025 0.239144 0.052445 0.037671 0.049145 0.170817 0.082838 0.341634 +0.000626 +0.063367 0.041263 0.046488 0.057892 0.028848 0.042690 0.007893 0.007082 0.114452 0.034684 0.022291 0.117804 0.005591 0.037178 0.097204 0.053487 0.017492 0.317239 0.048571 0.045360 0.058491 0.273307 0.063210 0.045365 0.026951 0.307471 0.078442 0.011884 0.066958 0.307471 0.082509 0.341634 +0.071677 +0.029499 0.021786 0.089142 0.040517 0.046481 0.081920 0.001516 0.018533 0.085695 0.055821 0.017164 0.127011 0.035746 0.009371 0.084546 0.035381 0.030205 0.046710 0.048412 0.036100 0.066305 0.102490 0.079437 0.001790 0.063656 0.170817 0.087126 0.034377 0.054339 0.136654 0.097130 0.204980 +0.018420 +0.007277 0.032813 0.043143 0.046182 0.021072 0.544063 0.015415 0.055630 0.034620 0.103608 0.041795 0.072703 0.023104 0.029656 0.034611 0.039447 0.042602 0.526245 0.058467 0.039359 0.026132 0.204980 0.088821 0.019050 0.061114 0.239144 0.097800 0.011089 0.014491 0.136654 0.082699 0.273307 +0.148553 +0.015685 0.002100 0.038154 0.035582 0.046294 0.102889 0.003467 0.066973 0.208093 0.039056 0.036619 0.098538 0.025895 0.059031 0.065105 0.051946 0.043847 0.046483 0.047210 0.008744 0.067761 0.204980 0.068802 0.018082 0.000428 0.170817 0.083683 0.047286 0.001813 0.239144 0.089741 0.307471 +0 +0.040863 0.066870 0.133174 0.068030 0.035120 0.090168 0.008230 0.006309 0.043350 0.067572 0.030052 0.779510 0.031608 0.034164 0.054922 0.089850 0.036209 0.264190 0.040765 0.011514 0.059755 0.170817 0.062587 0.004323 0.066661 0.136654 0.087894 0.006141 0.062100 0.136654 0.092913 0.273307 +0.779022 +0.031083 0.022515 0.047732 0.057980 0.049634 0.325711 0.022574 0.063223 0.084486 0.053397 0.050017 0.208634 0.054178 0.025669 0.044155 0.050493 0.034043 0.039930 0.060260 0.058984 0.065987 0.102490 0.061898 0.047641 0.046881 0.102490 0.070486 0.012186 0.054825 0.136654 0.088571 0.204980 +0.165548 +0.004157 0.055988 0.037718 0.054457 0.047623 0.100844 0.034673 0.038503 0.036725 0.044015 0.050374 0.172777 0.024884 0.036937 0.042142 0.045088 0.048677 0.330949 0.059085 0.059397 0.019857 0.102490 0.098259 0.026887 0.025869 0.170817 0.052484 0.032136 0.043619 0.239144 0.058188 0.273307 +0.058362 +0.037095 0.029506 0.078948 0.065417 0.026045 0.136877 0.067831 0.066168 0.035218 0.036947 0.028694 0.106968 0.023745 0.045651 0.129648 0.063975 0.035915 0.288780 0.051464 0.015973 0.001893 0.102490 0.069864 0.005151 0.056157 0.136654 0.070115 0.021231 0.020448 0.136654 0.076067 0.204980 +0.079674 +0.050196 0.024747 0.048394 0.067583 0.039514 0.402090 0.042621 0.034114 0.044260 0.038206 0.046965 0.077966 0.060006 0.035853 0.111861 0.039632 0.042752 0.067974 0.042619 0.011367 0.059935 0.102490 0.067891 0.035998 0.011389 0.102490 0.095771 0.056214 0.040816 0.239144 0.081825 0.273307 +0.066308 +0.036951 0.049481 0.040190 0.117580 0.040494 0.097146 0.061005 0.000487 0.091271 0.042288 0.040382 0.072947 0.011211 0.029992 0.046523 0.103536 0.021457 0.090470 0.045041 0.015450 0.048607 0.136654 0.073649 0.045593 0.027053 0.136654 0.091120 0.041700 0.038893 0.136654 0.059025 0.204980 +0.038399 +0.053172 0.050338 0.105832 0.035861 0.047151 0.128249 0.003014 0.006213 0.051837 0.037798 0.024810 0.051137 0.057362 0.032714 0.050328 0.058694 0.048076 0.074328 0.052746 0.005994 0.068177 0.273307 0.091369 0.001440 0.024806 0.307471 0.083217 0.006759 0.042044 0.307471 0.060401 0.341634 +0.011710 +0.035800 0.045457 0.072338 0.120890 0.025392 0.104017 0.032625 0.060105 0.118234 0.057260 0.033206 0.103286 0.044249 0.029127 0.045332 0.080384 0.050175 0.061026 0.054120 0.041375 0.025536 0.170817 0.076319 0.020954 0.055244 0.204980 0.088292 0.000250 0.020753 0.102490 0.054023 0.273307 +0.003465 +0.056105 0.040483 0.220519 0.073420 0.036865 0.261672 0.047733 0.035572 0.081580 0.052384 0.022650 0.176734 0.010806 0.036947 0.090116 0.035375 0.026180 0.110687 0.056484 0.059592 0.020388 0.136654 0.079690 0.040144 0.048236 0.136654 0.101394 0.055458 0.032810 0.170817 0.056205 0.341634 +0.005666 +0.061095 0.057322 0.039051 0.071081 0.021909 0.135605 0.046087 0.004622 0.045294 0.079356 0.036249 0.104379 0.007662 0.025757 0.091140 0.153600 0.024799 0.117825 0.056250 0.012457 0.025039 0.136654 0.100649 0.001116 0.041545 0.204980 0.066789 0.062941 0.008895 0.239144 0.102201 0.273307 +0.049429 +0.008872 0.049271 0.037446 0.086040 0.020534 0.141871 0.062202 0.015038 0.056811 0.061064 0.024037 0.086170 0.042289 0.003573 0.035118 0.063168 0.041487 0.080101 0.044847 0.022154 0.045247 0.307471 0.075498 0.043512 0.055226 0.136654 0.059646 0.034432 0.039317 0.307471 0.053054 0.341634 +0.021985 +0.064018 0.012116 0.042666 0.094841 0.023460 0.086476 0.060915 0.029015 0.042383 0.060505 0.039261 0.066727 0.009955 0.064968 0.067027 0.040559 0.027698 0.062215 0.049242 0.037738 0.033402 0.239144 0.063947 0.038968 0.063643 0.136654 0.101560 0.006473 0.064311 0.170817 0.051686 0.341634 +0 +0.001006 0.060645 0.124308 0.044535 0.047078 0.093842 0.032488 0.055381 0.052597 0.068563 0.046147 0.197310 0.027710 0.056745 0.041387 0.071809 0.021106 0.049380 0.049838 0.057543 0.023963 0.102490 0.066915 0.050849 0.038720 0.136654 0.054825 0.050107 0.057515 0.102490 0.082669 0.239144 +0.127312 +0.063704 0.062248 0.037020 0.084030 0.035745 0.357128 0.001338 0.042798 0.088227 0.044579 0.050528 0.067637 0.060443 0.020621 0.061327 0.053754 0.049812 0.098184 0.046925 0.026077 0.036330 0.170817 0.073068 0.006716 0.059036 0.102490 0.072543 0.067601 0.036700 0.136654 0.064273 0.204980 +0.114345 +0.028624 0.015618 0.081471 0.091871 0.050006 0.208271 0.018349 0.047471 0.063616 0.037971 0.025718 0.136099 0.060389 0.053412 0.065903 0.085452 0.031063 0.311018 0.061920 0.000136 0.004049 0.273307 0.095370 0.058131 0.024436 0.170817 0.064697 0.067488 0.033789 0.170817 0.053215 0.307471 +0.068118 +0.001812 0.067548 0.148677 0.044043 0.021447 0.088394 0.037408 0.052539 0.082751 0.044257 0.034365 0.147759 0.016940 0.039394 0.040420 0.102585 0.024914 0.070840 0.049928 0.007080 0.006473 0.102490 0.082612 0.002995 0.005912 0.136654 0.099795 0.008956 0.039056 0.102490 0.054717 0.204980 +0.047855 +0.055840 0.032803 0.034675 0.064852 0.021254 0.060346 0.053865 0.013236 0.044489 0.041308 0.020765 0.071903 0.008413 0.062902 0.057029 0.039402 0.026477 0.115031 0.042392 0.017799 0.041850 0.170817 0.071445 0.016974 0.019884 0.102490 0.084644 0.038054 0.060320 0.102490 0.062380 0.239144 +0 +0.003533 0.007992 0.043548 0.059278 0.047473 0.047028 0.046344 0.019415 0.064756 0.035073 0.046471 0.038536 0.018215 0.043374 0.056780 0.066218 0.030052 0.179337 0.058084 0.038483 0.035985 0.204980 0.099976 0.044473 0.036747 0.170817 0.092829 0.039176 0.035504 0.102490 0.052818 0.273307 +0.012931 +0.016585 0.006730 0.069881 0.133699 0.047085 0.073632 0.013024 0.049360 0.036948 0.085252 0.021570 0.321271 0.005411 0.013637 0.040648 0.082013 0.045719 0.058501 0.044636 0.006863 0.039879 0.102490 0.073513 0.065803 0.047613 0.102490 0.083654 0.066675 0.058497 0.204980 0.081771 0.273307 +0.591084 +0.051283 0.051778 0.070355 0.038853 0.020400 0.109785 0.032054 0.036292 0.158293 0.034247 0.027945 0.121486 0.032290 0.055808 0.049930 0.049562 0.042026 0.188921 0.063373 0.054394 0.007468 0.273307 0.094284 0.046292 0.057587 0.307471 0.051588 0.014142 0.066945 0.204980 0.063282 0.341634 +0.020384 +0.050347 0.014534 0.079790 0.040530 0.019731 0.178887 0.011242 0.003496 0.067961 0.051946 0.018370 0.066667 0.032471 0.017007 0.050207 0.107149 0.025145 0.063728 0.047144 0.027741 0.014690 0.273307 0.079772 0.044272 0.028655 0.204980 0.061274 0.028496 0.063088 0.102490 0.090358 0.341634 +0.001770 +0.052196 0.015926 0.059658 0.093324 0.037966 0.068158 0.033448 0.019110 0.106462 0.079755 0.049955 0.155767 0.052238 0.061775 0.052203 0.112871 0.042172 0.183673 0.041179 0.018215 0.067714 0.204980 0.073727 0.000092 0.013569 0.136654 0.061738 0.015278 0.002251 0.170817 0.093323 0.273307 +0.006877 +0.052172 0.054118 0.075511 0.056818 0.026152 0.065285 0.021916 0.030118 0.122750 0.037090 0.035469 0.037351 0.027263 0.006520 0.095805 0.060048 0.048827 0.054214 0.061395 0.067423 0.025547 0.102490 0.080727 0.066296 0.054631 0.102490 0.097223 0.042566 0.036212 0.102490 0.082689 0.239144 +0 +0.034424 0.065390 0.049430 0.125989 0.037964 0.123122 0.014588 0.001311 0.062541 0.037561 0.036720 0.145177 0.017713 0.020567 0.037998 0.144737 0.045985 0.338232 0.051953 0.001240 0.010862 0.102490 0.069881 0.038202 0.045851 0.136654 0.077778 0.056002 0.054057 0.273307 0.077929 0.307471 +0.024984 +0.053581 0.068099 0.067592 0.072138 0.036282 0.105112 0.050137 0.018160 0.083922 0.039187 0.028353 0.193714 0.010519 0.067462 0.092186 0.066227 0.019124 0.424093 0.056069 0.036393 0.061361 0.170817 0.097113 0.064907 0.049507 0.136654 0.068765 0.055249 0.031028 0.170817 0.066460 0.307471 +0.058788 +0.053839 0.066559 0.047298 0.066476 0.044048 0.050188 0.030815 0.060202 0.092014 0.154627 0.044775 0.097407 0.066791 0.021438 0.066497 0.034887 0.042579 0.068866 0.047441 0.058072 0.048758 0.239144 0.063037 0.005551 0.047517 0.102490 0.052804 0.034041 0.066071 0.102490 0.090088 0.307471 +0 +0.032076 0.045802 0.038495 0.060718 0.029464 0.555224 0.039819 0.044797 0.048733 0.044310 0.041826 0.155009 0.067668 0.063919 0.076931 0.073084 0.033947 0.049944 0.058204 0.002626 0.029550 0.170817 0.080408 0.004102 0.053985 0.102490 0.061689 0.016794 0.049400 0.204980 0.059413 0.273307 +0.385746 +0.014278 0.038162 0.081227 0.063958 0.036010 0.071715 0.056025 0.065380 0.096713 0.069528 0.050768 0.178180 0.015093 0.063691 0.045958 0.070326 0.022887 0.592727 0.058821 0.015890 0.052053 0.136654 0.071044 0.026024 0.025187 0.170817 0.073693 0.001060 0.038783 0.204980 0.094831 0.239144 +0.714501 +0.023080 0.047547 0.084117 0.118150 0.029700 0.177902 0.008830 0.028242 0.054505 0.035418 0.018689 0.063834 0.014125 0.065701 0.045237 0.051911 0.031096 0.263104 0.061319 0.062865 0.041658 0.102490 0.076347 0.050204 0.059417 0.102490 0.056630 0.050033 0.068181 0.170817 0.088253 0.273307 +0.242442 +0.040863 0.002594 0.098778 0.065413 0.023816 0.073952 0.041614 0.003339 0.066851 0.053668 0.019557 0.095191 0.063052 0.024568 0.071162 0.040430 0.051042 0.306890 0.055769 0.022925 0.035071 0.239144 0.065162 0.064805 0.053455 0.136654 0.053020 0.063034 0.052329 0.239144 0.053602 0.307471 +0.446103 +0.025878 0.054701 0.073943 0.094387 0.040847 0.086125 0.038492 0.011055 0.073925 0.034583 0.039634 0.071227 0.008097 0.031943 0.039391 0.061080 0.039348 0.072611 0.049007 0.029348 0.041019 0.102490 0.055457 0.049029 0.021915 0.204980 0.097149 0.046035 0.009746 0.136654 0.058975 0.239144 +0.018424 +0.036144 0.067110 0.046132 0.041449 0.032516 0.043076 0.006953 0.043142 0.042284 0.056442 0.044133 0.083318 0.058908 0.009302 0.034171 0.054819 0.037129 0.171931 0.053194 0.040270 0.024418 0.170817 0.073637 0.039711 0.029582 0.273307 0.100882 0.008674 0.021526 0.102490 0.067354 0.341634 +0 +0.064506 0.008640 0.066213 0.034820 0.033706 0.091628 0.041374 0.039484 0.039626 0.050449 0.035763 0.051314 0.014930 0.032217 0.069510 0.058615 0.047961 0.034209 0.051486 0.016282 0.047947 0.204980 0.092730 0.042253 0.030830 0.136654 0.074278 0.053750 0.006675 0.239144 0.062435 0.307471 +0 +0.028127 0.047748 0.046578 0.034416 0.017211 0.048310 0.042511 0.044635 0.059783 0.084342 0.025412 0.209482 0.005937 0.046410 0.089034 0.044300 0.040941 0.109874 0.056275 0.059200 0.007701 0.136654 0.057982 0.040436 0.002378 0.102490 0.078996 0.024482 0.052977 0.102490 0.090466 0.341634 +0.009647 +0.047396 0.048096 0.038996 0.053629 0.038551 0.761025 0.046497 0.036843 0.105551 0.045142 0.021212 0.365499 0.019577 0.004411 0.050216 0.062415 0.026499 0.048537 0.050171 0.067175 0.060031 0.170817 0.065216 0.042872 0.013385 0.136654 0.085323 0.062613 0.054584 0.136654 0.093653 0.239144 +0.333752 +0.018448 0.025084 0.037621 0.043564 0.024149 0.440931 0.066049 0.016841 0.126531 0.053080 0.035904 0.076968 0.003359 0.027297 0.085923 0.054205 0.025726 0.305976 0.044714 0.043155 0.051224 0.273307 0.092892 0.055935 0.028053 0.204980 0.090961 0.044639 0.067807 0.204980 0.094736 0.341634 +0.466800 +0.065180 0.064646 0.044270 0.035806 0.032652 0.064622 0.043284 0.052512 0.040018 0.088960 0.044217 0.059066 0.012261 0.024265 0.082165 0.110746 0.048480 0.055110 0.047480 0.029792 0.045823 0.136654 0.055283 0.056808 0.018904 0.204980 0.102386 0.011748 0.039620 0.204980 0.082569 0.307471 +0 +0.020662 0.031841 0.069026 0.037034 0.047073 0.084418 0.037948 0.004227 0.061164 0.105198 0.025034 0.047174 0.003583 0.024971 0.054187 0.042113 0.029368 0.087362 0.056237 0.021710 0.037137 0.136654 0.076164 0.050868 0.048409 0.102490 0.055275 0.037584 0.060312 0.170817 0.074891 0.239144 +0 +0.006446 0.013671 0.060507 0.040892 0.020774 0.057130 0.040515 0.046941 0.100053 0.071958 0.036369 0.846738 0.007568 0.064294 0.036728 0.048092 0.039657 0.086322 0.047250 0.030405 0.067810 0.102490 0.067106 0.017444 0.004873 0.239144 0.057347 0.034444 0.006161 0.239144 0.082136 0.273307 +0.704758 +0.015553 0.012316 0.076402 0.046204 0.030808 0.064192 0.042001 0.055630 0.039794 0.050788 0.030308 0.343087 0.045662 0.036472 0.037887 0.095377 0.018563 0.480602 0.055487 0.045076 0.056347 0.204980 0.073547 0.048117 0.004797 0.204980 0.074747 0.055452 0.027758 0.204980 0.077073 0.307471 +0.379261 +0.059838 0.031090 0.067372 0.109271 0.037695 0.217857 0.053049 0.065671 0.089651 0.077579 0.047652 0.170991 0.064440 0.047945 0.035138 0.036847 0.039792 0.060442 0.038422 0.017521 0.014415 0.170817 0.054258 0.012182 0.012414 0.170817 0.059934 0.033918 0.039894 0.136654 0.102467 0.273307 +0.010201 +0.009694 0.012227 0.040098 0.038271 0.046002 0.151480 0.056129 0.055505 0.043248 0.046253 0.034549 0.144057 0.063346 0.009179 0.061651 0.056841 0.037823 0.115392 0.051177 0.042283 0.000597 0.239144 0.083741 0.016971 0.034373 0.102490 0.052024 0.001256 0.060670 0.204980 0.071334 0.273307 +0.020548 +0.002011 0.051168 0.114323 0.142867 0.021105 0.113883 0.057994 0.029718 0.047129 0.037273 0.038636 0.378651 0.006483 0.058541 0.076824 0.056582 0.019854 0.102678 0.055841 0.024292 0.012181 0.239144 0.077831 0.000076 0.044976 0.170817 0.094365 0.065319 0.000828 0.136654 0.090240 0.341634 +0.011544 +0.006103 0.045181 0.143283 0.089301 0.020946 0.162155 0.059446 0.032341 0.077845 0.173412 0.044905 0.178671 0.027097 0.045324 0.036432 0.118227 0.040760 0.324711 0.056976 0.009981 0.018343 0.204980 0.069758 0.050687 0.041876 0.170817 0.069938 0.033561 0.049288 0.170817 0.100868 0.239144 +0.159037 +0.012945 0.014626 0.072599 0.234147 0.025366 0.091354 0.040861 0.035185 0.035670 0.049625 0.038031 0.114251 0.023844 0.003022 0.143481 0.070922 0.038807 0.037615 0.063716 0.023657 0.026097 0.136654 0.101421 0.036511 0.036210 0.273307 0.080468 0.026625 0.012170 0.204980 0.096131 0.307471 +0 +0.054325 0.045948 0.066821 0.045266 0.033134 0.137871 0.054247 0.034732 0.044474 0.078316 0.036468 0.174437 0.011841 0.044706 0.055601 0.054970 0.042599 0.050608 0.051060 0.016341 0.015919 0.307471 0.059125 0.059821 0.038169 0.170817 0.073297 0.042572 0.008152 0.273307 0.102462 0.341634 +0.025421 +0.040277 0.032514 0.036392 0.034985 0.035222 0.041153 0.019224 0.006050 0.059575 0.036213 0.035557 0.074579 0.012313 0.004210 0.057029 0.034809 0.017254 0.322637 0.044649 0.019167 0.015017 0.136654 0.069374 0.037708 0.059481 0.170817 0.076393 0.001182 0.067923 0.204980 0.096214 0.239144 +0.708315 +0.040071 0.009609 0.057467 0.050431 0.018343 0.219281 0.008854 0.028015 0.133551 0.035338 0.017262 0.054142 0.062802 0.027565 0.204406 0.037455 0.048921 0.356134 0.049150 0.067462 0.004758 0.102490 0.086865 0.015411 0.053934 0.102490 0.072852 0.051491 0.019302 0.136654 0.071037 0.307471 +0.027962 +0.025512 0.043089 0.042321 0.040235 0.018257 0.198933 0.053483 0.057106 0.039211 0.047118 0.017672 0.035961 0.036712 0.036642 0.107829 0.065024 0.050775 0.292712 0.050818 0.048006 0.049104 0.239144 0.064997 0.054941 0.018173 0.307471 0.081261 0.020385 0.045446 0.239144 0.069523 0.341634 +0.047259 +0.025628 0.015589 0.054677 0.075842 0.037269 0.064813 0.019895 0.058329 0.040098 0.079515 0.021480 0.133734 0.004200 0.049338 0.094281 0.048092 0.031127 0.429990 0.059619 0.007991 0.019724 0.204980 0.093451 0.011059 0.000415 0.102490 0.074239 0.033684 0.013707 0.239144 0.061733 0.273307 +0.100437 +0.008828 0.022903 0.091780 0.129847 0.037761 0.089756 0.037375 0.023503 0.040932 0.039545 0.025672 0.102247 0.028124 0.054540 0.039136 0.040072 0.031136 0.187203 0.038941 0.059540 0.009227 0.136654 0.075776 0.060586 0.063817 0.170817 0.051543 0.021026 0.027151 0.170817 0.086666 0.273307 +0.355957 +0.024002 0.050763 0.034245 0.143982 0.033438 0.036428 0.008694 0.002054 0.038495 0.051275 0.050176 0.160384 0.054552 0.053268 0.060978 0.112951 0.045667 0.041169 0.054792 0.007016 0.052218 0.102490 0.072941 0.018998 0.067006 0.239144 0.073886 0.047528 0.000752 0.170817 0.096213 0.307471 +0 +0.014607 0.036839 0.046239 0.080416 0.017201 0.134588 0.066314 0.048263 0.067817 0.084635 0.049992 0.035139 0.040787 0.055603 0.098909 0.038443 0.040224 0.139070 0.054370 0.059687 0.009622 0.136654 0.096984 0.025922 0.029264 0.136654 0.096217 0.064873 0.025644 0.136654 0.096243 0.204980 +0 +0.048550 0.049509 0.149785 0.052766 0.032124 0.167021 0.031675 0.038710 0.041251 0.048503 0.048316 0.502291 0.042348 0.011691 0.035974 0.072844 0.049155 0.186947 0.049686 0.058986 0.042883 0.102490 0.053496 0.033000 0.040406 0.136654 0.081243 0.049636 0.042993 0.102490 0.071826 0.204980 +0.461508 +0.005697 0.062768 0.034186 0.061911 0.024966 0.088318 0.040740 0.029873 0.061000 0.074437 0.033340 0.044790 0.053125 0.016077 0.057363 0.175315 0.019813 0.043607 0.047751 0.034955 0.054494 0.204980 0.067698 0.022822 0.007479 0.170817 0.055121 0.015164 0.031167 0.170817 0.066167 0.273307 +0 +0.048465 0.039617 0.067290 0.043241 0.049224 0.059463 0.057292 0.015466 0.068421 0.077658 0.040818 0.080146 0.044525 0.063945 0.043137 0.036407 0.025947 0.107957 0.060465 0.017460 0.060288 0.136654 0.062480 0.041387 0.045185 0.204980 0.102354 0.028952 0.041983 0.239144 0.083226 0.273307 +0.006702 +0.024308 0.058479 0.034282 0.052383 0.019507 0.050760 0.034569 0.000680 0.065575 0.082275 0.025282 0.369092 0.027499 0.008290 0.138277 0.042763 0.049134 0.051837 0.040320 0.020036 0.063861 0.204980 0.093828 0.051050 0.057246 0.239144 0.095548 0.010180 0.030607 0.102490 0.077039 0.273307 +0.064836 +0.016856 0.031866 0.039666 0.132236 0.050700 0.193483 0.065230 0.030017 0.065925 0.050412 0.019068 0.120809 0.026563 0.005263 0.038822 0.048612 0.029320 0.114239 0.063599 0.047678 0.001342 0.102490 0.073342 0.005748 0.052577 0.170817 0.084080 0.063690 0.053761 0.136654 0.071305 0.204980 +0.147963 +0.030547 0.012096 0.039876 0.088570 0.034261 0.234306 0.026174 0.068117 0.095685 0.036158 0.020738 0.063672 0.002748 0.018467 0.100023 0.057776 0.035404 0.035892 0.051567 0.016979 0.027266 0.136654 0.056504 0.049233 0.047908 0.136654 0.080222 0.066406 0.016689 0.102490 0.088349 0.307471 +0.029392 +0.047189 0.040112 0.092694 0.041569 0.022832 0.501672 0.019145 0.019579 0.042648 0.043322 0.039133 0.156647 0.011929 0.048016 0.105783 0.106036 0.032436 0.071899 0.063758 0.049136 0.006973 0.273307 0.088804 0.065451 0.031596 0.170817 0.057780 0.036231 0.032772 0.239144 0.101922 0.341634 +0.095321 +0.042603 0.018710 0.036831 0.036112 0.021750 0.081072 0.011123 0.060490 0.136817 0.094016 0.033642 0.189067 0.029155 0.000731 0.152738 0.044687 0.033566 0.173658 0.064446 0.028747 0.037979 0.136654 0.096397 0.013559 0.044513 0.102490 0.102090 0.062777 0.053880 0.170817 0.052329 0.307471 +0.000643 +0.005610 0.013435 0.041688 0.086782 0.048343 0.095607 0.005753 0.015996 0.061716 0.060036 0.038913 0.142449 0.058970 0.007238 0.035877 0.058785 0.026157 0.065724 0.047835 0.006128 0.011659 0.102490 0.071688 0.033945 0.051810 0.102490 0.096610 0.004469 0.047189 0.170817 0.063906 0.204980 +0.045999 +0.008406 0.024139 0.184083 0.213329 0.034943 0.062310 0.002285 0.020087 0.098423 0.068433 0.021888 0.177138 0.035099 0.020684 0.079965 0.088678 0.032984 0.081915 0.061763 0.063553 0.024427 0.102490 0.062048 0.038532 0.009159 0.239144 0.064992 0.047301 0.016722 0.136654 0.080343 0.273307 +0.060623 +0.040891 0.057295 0.051298 0.055037 0.023609 0.417194 0.001342 0.062749 0.051164 0.089309 0.032438 0.035446 0.026235 0.033035 0.045734 0.124278 0.035716 0.048955 0.051432 0.059594 0.017307 0.273307 0.100198 0.001436 0.034115 0.136654 0.059098 0.027795 0.037338 0.136654 0.087474 0.307471 +0 +0.000098 0.047658 0.034505 0.039537 0.025178 0.178358 0.032099 0.065808 0.094887 0.039693 0.028803 0.517723 0.048450 0.024136 0.076120 0.051233 0.036665 0.155668 0.045910 0.044081 0.061669 0.136654 0.051286 0.024900 0.009888 0.170817 0.064648 0.019941 0.035908 0.102490 0.082435 0.204980 +0.695272 +0.022529 0.029055 0.083890 0.086939 0.028237 0.060690 0.002659 0.059276 0.064758 0.046252 0.039514 0.061505 0.031118 0.006898 0.034967 0.039823 0.026841 0.269849 0.057050 0.004220 0.014883 0.170817 0.069589 0.001457 0.019470 0.170817 0.068979 0.022653 0.049731 0.136654 0.064527 0.204980 +0.028383 +0.022131 0.061890 0.051067 0.126866 0.045024 0.104099 0.032839 0.055179 0.114681 0.056571 0.032094 0.044291 0.021593 0.034090 0.051924 0.085585 0.049303 0.210579 0.041466 0.059822 0.019611 0.136654 0.091474 0.059583 0.048624 0.273307 0.080541 0.047080 0.062370 0.239144 0.100462 0.341634 +0 +0.047044 0.065161 0.044962 0.034228 0.022214 0.073221 0.051022 0.000285 0.047601 0.040491 0.029823 0.114678 0.007079 0.049121 0.046080 0.072111 0.026361 0.152948 0.048454 0.047114 0.036592 0.273307 0.091302 0.041562 0.026480 0.204980 0.063570 0.013896 0.053393 0.102490 0.053735 0.341634 +0.000555 +0.043493 0.014971 0.034799 0.039315 0.025263 0.161319 0.051986 0.028860 0.092940 0.058999 0.034347 0.034993 0.012603 0.017868 0.053593 0.049441 0.035957 0.093531 0.054675 0.053994 0.016945 0.136654 0.051466 0.000269 0.004653 0.204980 0.062399 0.025533 0.009633 0.204980 0.093670 0.307471 +0 +0.040077 0.068198 0.054109 0.097699 0.047038 0.086656 0.011079 0.025989 0.034924 0.038824 0.030557 0.127124 0.023330 0.057017 0.046782 0.034500 0.050845 0.148814 0.045649 0.008982 0.009279 0.204980 0.079734 0.027541 0.029576 0.102490 0.082388 0.044780 0.006146 0.239144 0.083844 0.307471 +0.005729 +0.055538 0.004942 0.097383 0.075220 0.024939 0.235623 0.041993 0.031080 0.185027 0.058991 0.042596 0.161708 0.059272 0.062804 0.050354 0.043160 0.029814 0.132509 0.057809 0.022207 0.060045 0.239144 0.053639 0.004517 0.034081 0.204980 0.064749 0.002631 0.013113 0.102490 0.061342 0.307471 +0.260752 +0.039197 0.042772 0.047136 0.053978 0.050857 0.107263 0.038596 0.037565 0.035397 0.034551 0.031033 0.049114 0.047925 0.030489 0.050631 0.102688 0.019502 0.092458 0.054477 0.016891 0.058297 0.102490 0.087282 0.056131 0.061682 0.136654 0.081601 0.035106 0.028314 0.273307 0.085408 0.307471 +0 +0.059748 0.013840 0.156110 0.106310 0.022812 0.089839 0.044216 0.063655 0.051353 0.071350 0.028247 0.153723 0.062279 0.001632 0.079711 0.041042 0.022689 0.047922 0.056084 0.012537 0.060258 0.170817 0.058279 0.022973 0.027560 0.170817 0.084070 0.062249 0.028048 0.102490 0.056087 0.204980 +0.004147 +0.031328 0.002498 0.034648 0.055934 0.030515 0.153543 0.009600 0.037115 0.082581 0.058708 0.021222 0.373032 0.037287 0.027830 0.074067 0.084104 0.039555 0.144760 0.056566 0.015303 0.056317 0.204980 0.067657 0.011651 0.057153 0.239144 0.063955 0.066533 0.025756 0.136654 0.087041 0.273307 +0.400052 +0.033635 0.047216 0.081214 0.091896 0.025241 0.109935 0.010388 0.008167 0.035458 0.118316 0.041992 0.131095 0.032217 0.024768 0.055813 0.040052 0.024550 0.065352 0.052433 0.061608 0.024398 0.102490 0.083654 0.042567 0.060715 0.136654 0.066993 0.023563 0.052209 0.170817 0.097632 0.204980 +0.090397 +0.020504 0.037616 0.050872 0.046086 0.033049 0.148122 0.057228 0.064897 0.061602 0.073357 0.021134 0.079490 0.009200 0.010625 0.062850 0.047443 0.042843 0.168235 0.056048 0.028795 0.035285 0.170817 0.083576 0.040306 0.058746 0.102490 0.062016 0.067047 0.017710 0.170817 0.064029 0.204980 +0.016264 +0.032072 0.051391 0.102967 0.060821 0.041028 0.094242 0.017806 0.011487 0.080688 0.035959 0.038833 0.076981 0.030419 0.038020 0.034710 0.052015 0.047799 0.132117 0.047044 0.007113 0.064077 0.204980 0.089701 0.012675 0.044394 0.136654 0.062640 0.049066 0.034410 0.170817 0.055040 0.239144 +0.021441 +0.046173 0.048393 0.056840 0.056132 0.041773 0.132272 0.011276 0.041282 0.056323 0.056272 0.030778 0.111071 0.030664 0.012852 0.066930 0.074752 0.046891 0.042887 0.055199 0.047726 0.050593 0.136654 0.060216 0.012806 0.014901 0.102490 0.097381 0.055372 0.007939 0.136654 0.065033 0.204980 +0.006105 +0.035874 0.053111 0.066473 0.089064 0.038567 0.034625 0.011005 0.051214 0.072144 0.053249 0.030633 0.042898 0.027019 0.001870 0.065300 0.034664 0.031496 0.102395 0.046967 0.011877 0.029384 0.204980 0.056463 0.043693 0.052717 0.170817 0.093006 0.038526 0.064719 0.136654 0.072016 0.239144 +0 +0.015809 0.068154 0.090541 0.071302 0.039549 0.060537 0.039085 0.018479 0.038997 0.059243 0.049578 0.104007 0.017056 0.044543 0.070127 0.066547 0.034483 0.124633 0.045653 0.029908 0.038141 0.170817 0.051481 0.052065 0.032374 0.170817 0.052897 0.067865 0.063947 0.136654 0.087652 0.204980 +0.287765 +0.039718 0.067384 0.040209 0.241388 0.045635 0.409319 0.028276 0.050214 0.073549 0.120389 0.029700 0.293426 0.004670 0.012197 0.083272 0.041396 0.017223 0.100020 0.057364 0.054111 0.029396 0.170817 0.087116 0.062086 0.029049 0.170817 0.057472 0.005554 0.005863 0.102490 0.091866 0.273307 +0.070591 +0.033586 0.037944 0.039403 0.049007 0.034076 0.109132 0.034229 0.052328 0.174766 0.036800 0.036333 0.052778 0.022259 0.026711 0.034923 0.036939 0.042732 0.052582 0.055716 0.022915 0.032038 0.136654 0.057059 0.022940 0.009733 0.136654 0.060545 0.038694 0.035727 0.239144 0.062841 0.341634 +0.003131 +0.011954 0.059721 0.082752 0.044691 0.044935 0.062544 0.000057 0.066490 0.115840 0.090672 0.047010 0.057097 0.032124 0.010278 0.082604 0.123091 0.018970 0.088201 0.049404 0.047517 0.042163 0.102490 0.084927 0.033716 0.044813 0.170817 0.081060 0.016096 0.017558 0.170817 0.081217 0.204980 +0 +0.013798 0.051124 0.113777 0.052877 0.018571 0.062494 0.063981 0.052552 0.035295 0.037830 0.025662 0.049223 0.048181 0.047881 0.062805 0.059204 0.032450 0.129150 0.057405 0.022266 0.035900 0.102490 0.060986 0.004168 0.030434 0.273307 0.092075 0.002293 0.047244 0.239144 0.066901 0.307471 +0 +0.008589 0.059811 0.048493 0.049170 0.022314 0.040324 0.020736 0.036364 0.043471 0.038728 0.023691 0.138380 0.046024 0.014175 0.056850 0.054104 0.030173 0.098390 0.055076 0.058697 0.055972 0.170817 0.068304 0.007277 0.019583 0.102490 0.082119 0.016152 0.044415 0.170817 0.056312 0.204980 +0.039730 +0.019963 0.055356 0.118935 0.109585 0.024147 0.190268 0.017899 0.007519 0.057957 0.078639 0.047702 0.062282 0.014960 0.064315 0.034616 0.050088 0.041204 0.130390 0.054474 0.013811 0.027529 0.239144 0.101475 0.042365 0.047275 0.102490 0.087190 0.053130 0.062686 0.102490 0.069013 0.307471 +0.000603 +0.021958 0.001949 0.093633 0.057831 0.040211 0.264960 0.031340 0.036665 0.057543 0.095548 0.044209 0.084621 0.010418 0.015410 0.049433 0.039340 0.035004 0.048116 0.051229 0.007399 0.045937 0.273307 0.072064 0.013117 0.030871 0.204980 0.090754 0.059041 0.022555 0.136654 0.078964 0.307471 +0.018777 +0.063400 0.032149 0.122036 0.059795 0.040604 0.338651 0.034270 0.046390 0.034510 0.091499 0.036584 0.098869 0.058227 0.006178 0.133568 0.141442 0.023547 0.133782 0.048237 0.039779 0.002055 0.170817 0.099168 0.013519 0.066740 0.102490 0.088943 0.041794 0.040454 0.273307 0.076417 0.307471 +0.126004 +0.051101 0.012708 0.156492 0.056201 0.040919 0.060079 0.056350 0.019381 0.035484 0.034904 0.032918 0.130866 0.044966 0.040198 0.137983 0.054757 0.044739 0.085251 0.059521 0.053238 0.067164 0.170817 0.068775 0.005493 0.065439 0.136654 0.092178 0.012695 0.001211 0.204980 0.093964 0.239144 +0.017579 +0.038547 0.065342 0.048927 0.048790 0.021706 0.041228 0.053320 0.041885 0.138584 0.054645 0.019042 0.049847 0.033540 0.019769 0.056175 0.080314 0.046440 0.112441 0.050821 0.000893 0.004653 0.102490 0.062341 0.002297 0.049212 0.136654 0.058427 0.053319 0.044872 0.170817 0.092793 0.204980 +0 +0.049059 0.067368 0.056157 0.065794 0.020210 0.101761 0.065347 0.005472 0.046116 0.134264 0.029418 0.333023 0.000394 0.007261 0.049787 0.051466 0.033631 0.040881 0.041761 0.014047 0.066390 0.136654 0.078497 0.059069 0.028921 0.102490 0.054059 0.019511 0.008555 0.136654 0.071139 0.204980 +0.206821 +0.046266 0.021386 0.072216 0.071126 0.028450 0.037585 0.040234 0.032849 0.051570 0.044721 0.046368 0.039890 0.015030 0.023253 0.085451 0.035525 0.026802 0.099322 0.055827 0.006844 0.059301 0.136654 0.100098 0.042439 0.022253 0.170817 0.078646 0.064707 0.006996 0.136654 0.099250 0.204980 +0 +0.023781 0.023354 0.039487 0.070542 0.037204 0.107579 0.037354 0.031050 0.054960 0.042204 0.027404 0.128062 0.056778 0.001646 0.042685 0.044589 0.038238 0.138110 0.059478 0.000384 0.044149 0.204980 0.096823 0.010163 0.008982 0.136654 0.065140 0.066131 0.057280 0.204980 0.068343 0.239144 +0.143694 +0.047867 0.062100 0.052397 0.045037 0.035226 0.072773 0.063952 0.013481 0.117924 0.044817 0.040830 0.121945 0.014510 0.037612 0.102658 0.075829 0.043019 0.213087 0.055849 0.034910 0.040705 0.239144 0.085444 0.035397 0.019599 0.170817 0.057741 0.007308 0.062334 0.170817 0.060236 0.341634 +0.000641 +0.031042 0.034543 0.043331 0.037536 0.019655 0.320867 0.039593 0.032081 0.044577 0.046292 0.032002 0.086151 0.058741 0.045584 0.042116 0.131805 0.041786 0.281081 0.048327 0.059875 0.000560 0.204980 0.073291 0.001924 0.007642 0.136654 0.056757 0.015858 0.007953 0.273307 0.100513 0.307471 +0.753435 +0.044874 0.002458 0.112853 0.048166 0.047519 0.115631 0.039284 0.019899 0.067196 0.073425 0.023583 0.096397 0.000081 0.026494 0.092742 0.076427 0.036754 0.227273 0.057788 0.014110 0.000363 0.170817 0.060159 0.063167 0.034660 0.170817 0.053491 0.061560 0.066405 0.136654 0.060702 0.273307 +0.010893 +0.050406 0.039709 0.169428 0.050059 0.018483 0.075479 0.023539 0.020563 0.074995 0.041704 0.047306 0.037394 0.042026 0.029887 0.098300 0.072970 0.043276 0.837541 0.048134 0.055320 0.012014 0.170817 0.061118 0.024340 0.050907 0.136654 0.080015 0.033016 0.002478 0.170817 0.077821 0.204980 +0.393858 +0.024005 0.066659 0.074120 0.034687 0.044552 0.156809 0.046163 0.042617 0.039506 0.065572 0.028494 0.151356 0.031086 0.005401 0.050445 0.074007 0.042315 0.177305 0.042459 0.016767 0.002152 0.136654 0.067005 0.054908 0.027567 0.136654 0.086882 0.011722 0.066918 0.136654 0.085699 0.239144 +0.024532 +0.062324 0.049380 0.047659 0.035187 0.024309 0.093247 0.043934 0.014601 0.067224 0.063764 0.040906 0.061152 0.055760 0.007788 0.034669 0.050703 0.050822 0.167124 0.046557 0.055309 0.039399 0.170817 0.064663 0.033002 0.047925 0.102490 0.064270 0.042922 0.036467 0.204980 0.081713 0.239144 +0.034576 +0.059618 0.064852 0.064216 0.037424 0.034874 0.039297 0.054341 0.013671 0.053380 0.046339 0.020326 0.069495 0.024911 0.054246 0.039717 0.038868 0.049270 0.121069 0.056976 0.015577 0.017486 0.102490 0.089228 0.037018 0.054429 0.307471 0.065210 0.019991 0.063823 0.239144 0.065796 0.341634 +0.041232 +0.003611 0.031272 0.045001 0.077134 0.049262 0.127898 0.046214 0.013224 0.035375 0.084037 0.033287 0.434907 0.006885 0.019448 0.035091 0.055331 0.045996 0.128969 0.040940 0.065183 0.013260 0.204980 0.094435 0.045515 0.016127 0.170817 0.086699 0.044058 0.032919 0.204980 0.097403 0.273307 +0.237057 +0.019496 0.052541 0.043025 0.045061 0.048178 0.091694 0.019611 0.047977 0.052406 0.054876 0.022611 0.308901 0.026425 0.064987 0.041124 0.047235 0.025205 0.233415 0.044644 0.035180 0.023046 0.102490 0.092207 0.043115 0.026730 0.273307 0.101485 0.002642 0.057116 0.102490 0.072250 0.307471 +0.111539 +0.018732 0.039010 0.060188 0.073224 0.021815 0.079925 0.058201 0.050764 0.040384 0.045719 0.036573 0.044051 0.032281 0.061875 0.038430 0.045735 0.036322 0.305214 0.061105 0.040958 0.041754 0.273307 0.081486 0.038979 0.050629 0.204980 0.080047 0.035040 0.050494 0.307471 0.061302 0.341634 +0.152524 +0.026490 0.001925 0.064005 0.037732 0.038002 0.053367 0.051780 0.041446 0.039259 0.064983 0.025200 0.090980 0.007191 0.033511 0.039917 0.046148 0.020657 0.073003 0.057818 0.029168 0.050035 0.102490 0.068450 0.021456 0.014922 0.136654 0.080941 0.004823 0.032752 0.102490 0.066256 0.204980 +0.010422 +0.039333 0.040932 0.157365 0.078370 0.033350 0.038061 0.030763 0.048156 0.125273 0.107359 0.032219 0.134154 0.020903 0.014188 0.044007 0.139784 0.050575 0.050509 0.056670 0.029465 0.050916 0.102490 0.057564 0.014720 0.035418 0.239144 0.101455 0.042195 0.030547 0.170817 0.098613 0.273307 +0 +0.058536 0.039747 0.123516 0.067663 0.023095 0.133976 0.022056 0.008506 0.038123 0.097515 0.023816 0.036089 0.030933 0.029293 0.076071 0.113422 0.041170 0.038247 0.062327 0.021185 0.014557 0.204980 0.090189 0.046224 0.066179 0.170817 0.063302 0.022306 0.058950 0.170817 0.058624 0.239144 +0.013888 +0.046615 0.067109 0.036363 0.090535 0.033291 0.051773 0.007134 0.066246 0.041592 0.052742 0.023299 0.071410 0.061136 0.031612 0.132300 0.085900 0.032892 0.150861 0.050137 0.010667 0.056111 0.136654 0.080330 0.037507 0.009419 0.102490 0.055628 0.063365 0.045099 0.239144 0.102193 0.307471 +0.018172 +0.066968 0.010616 0.151517 0.038493 0.043210 0.055391 0.048670 0.004876 0.101933 0.044355 0.021862 0.337044 0.019901 0.059929 0.041029 0.035323 0.022711 0.184827 0.054019 0.010948 0.026145 0.307471 0.062651 0.031807 0.046546 0.307471 0.084357 0.062396 0.008817 0.102490 0.069437 0.341634 +0.312997 +0.001909 0.024983 0.047076 0.038895 0.024059 0.304713 0.008132 0.009305 0.054070 0.067808 0.039273 0.071692 0.048629 0.031807 0.039386 0.073537 0.021344 0.091465 0.060201 0.020356 0.002338 0.136654 0.079694 0.019716 0.004340 0.170817 0.077347 0.005210 0.038187 0.136654 0.075659 0.239144 +0.314149 +0.055612 0.001395 0.070302 0.155546 0.038529 0.264544 0.022052 0.024583 0.047370 0.082936 0.033255 0.051962 0.009885 0.030765 0.177777 0.125527 0.040814 0.205174 0.060957 0.026708 0.029422 0.204980 0.064630 0.062774 0.021303 0.170817 0.071984 0.030306 0.060619 0.136654 0.061164 0.239144 +0.059919 +0.011202 0.056360 0.044353 0.089995 0.025418 0.034194 0.053329 0.031129 0.048528 0.041271 0.036385 0.049833 0.064186 0.014743 0.049700 0.042981 0.040457 0.038325 0.055556 0.059253 0.027436 0.102490 0.091660 0.012329 0.050670 0.170817 0.066828 0.021783 0.050247 0.102490 0.096408 0.204980 +0 +0.006209 0.011858 0.056805 0.062019 0.041493 0.092706 0.063437 0.002812 0.059579 0.058140 0.019048 0.058814 0.008067 0.012357 0.037734 0.051075 0.042893 0.180810 0.061461 0.055713 0.022735 0.170817 0.083843 0.036446 0.051831 0.102490 0.062301 0.016960 0.034341 0.204980 0.089174 0.341634 +0 +0.026184 0.002171 0.092589 0.108623 0.049143 0.196168 0.028573 0.002621 0.054580 0.038209 0.042020 0.143797 0.028525 0.034603 0.047765 0.079800 0.038260 0.480681 0.044693 0.008751 0.042990 0.170817 0.060130 0.027391 0.027150 0.102490 0.051577 0.014364 0.050565 0.239144 0.087748 0.273307 +0.686555 +0.040973 0.006667 0.117176 0.062230 0.043972 0.126614 0.031289 0.022412 0.037640 0.037896 0.030723 0.119104 0.027119 0.020712 0.110810 0.051657 0.048975 0.197596 0.058112 0.012439 0.053735 0.273307 0.064965 0.011545 0.035135 0.102490 0.057742 0.052489 0.066967 0.102490 0.064920 0.341634 +0.000884 +0.057641 0.027245 0.052571 0.117514 0.029184 0.147270 0.033633 0.023891 0.109455 0.109628 0.024012 0.112753 0.039626 0.061666 0.060846 0.035057 0.037070 0.074059 0.062846 0.049492 0.059744 0.102490 0.080560 0.038381 0.003573 0.239144 0.101024 0.026471 0.007791 0.273307 0.080735 0.341634 +0.017530 +0.053199 0.011899 0.045758 0.065598 0.040168 0.213934 0.014336 0.058949 0.051642 0.040385 0.028726 0.039520 0.029644 0.064127 0.101896 0.062609 0.023988 0.051260 0.043162 0.038718 0.057329 0.102490 0.089125 0.067864 0.040409 0.239144 0.066221 0.015021 0.043614 0.239144 0.053126 0.273307 +0.020182 +0.065748 0.063077 0.043868 0.046991 0.028566 0.142148 0.048369 0.045270 0.065685 0.180634 0.031019 0.076971 0.014994 0.006069 0.050629 0.169239 0.024503 0.201455 0.056428 0.027319 0.020084 0.170817 0.091839 0.027132 0.049678 0.170817 0.083631 0.008407 0.050108 0.102490 0.052685 0.239144 +0.018232 +0.054345 0.058854 0.079348 0.146908 0.033852 0.079397 0.057455 0.020422 0.046980 0.118068 0.017505 0.221817 0.045657 0.032130 0.143159 0.040073 0.040498 0.099570 0.052186 0.052220 0.049498 0.102490 0.102151 0.012591 0.003956 0.204980 0.097086 0.053458 0.000258 0.170817 0.056702 0.239144 +0.040506 +0.045851 0.033798 0.087542 0.075016 0.048073 0.060370 0.054782 0.001583 0.037082 0.061483 0.022315 0.159133 0.050675 0.042511 0.043039 0.101311 0.017913 0.066275 0.053951 0.028316 0.015622 0.136654 0.097677 0.023172 0.032550 0.136654 0.063481 0.015151 0.045524 0.204980 0.071136 0.341634 +0 +0.011529 0.060520 0.037653 0.061121 0.037240 0.087605 0.015409 0.007572 0.102835 0.056987 0.043316 0.162660 0.055606 0.037785 0.081685 0.168503 0.041078 0.059099 0.055982 0.017576 0.003121 0.273307 0.061671 0.049476 0.015804 0.307471 0.064866 0.017809 0.037112 0.273307 0.090363 0.341634 +0.035103 +0.053887 0.027712 0.077665 0.089316 0.030920 0.075107 0.064093 0.027516 0.073003 0.037541 0.044674 0.054368 0.008904 0.022400 0.036203 0.079241 0.036796 0.153741 0.044212 0.050630 0.060963 0.170817 0.065502 0.053127 0.024709 0.170817 0.101897 0.054062 0.041484 0.204980 0.053502 0.239144 +0.051295 +0.018009 0.053283 0.035448 0.057216 0.039651 0.075436 0.042912 0.054485 0.059563 0.093562 0.037001 0.246738 0.017671 0.030817 0.044458 0.040241 0.026296 0.152510 0.046731 0.048574 0.060075 0.136654 0.099708 0.027245 0.045524 0.204980 0.060964 0.030215 0.016231 0.136654 0.076984 0.239144 +0.055440 +0.003107 0.036440 0.083140 0.079513 0.049945 0.155774 0.036009 0.052056 0.124132 0.034268 0.035422 0.155010 0.020786 0.036061 0.043804 0.073796 0.019937 0.085549 0.041424 0.029884 0.039519 0.273307 0.098036 0.005843 0.065936 0.273307 0.097551 0.037101 0.010415 0.307471 0.099906 0.341634 +0.027865 +0.033330 0.029406 0.066793 0.096559 0.025998 0.042432 0.014503 0.064248 0.076542 0.042917 0.019011 0.183314 0.003109 0.048357 0.052123 0.100623 0.046193 0.057338 0.052524 0.008758 0.030403 0.102490 0.072512 0.042634 0.032246 0.102490 0.051941 0.045006 0.055530 0.136654 0.073215 0.204980 +0.105377 +0.028397 0.002051 0.074959 0.062673 0.036933 0.143713 0.035932 0.036045 0.039862 0.099818 0.020506 0.384296 0.006170 0.007198 0.049790 0.126899 0.043965 0.218366 0.051690 0.023991 0.020104 0.204980 0.071827 0.042052 0.018100 0.204980 0.060475 0.061792 0.034317 0.307471 0.058210 0.341634 +0.600872 +0.040236 0.041583 0.124276 0.053192 0.034737 0.366300 0.049799 0.046770 0.047135 0.093410 0.019929 0.130764 0.062865 0.001473 0.042856 0.087318 0.031800 0.138191 0.039487 0.019073 0.022930 0.136654 0.083131 0.002978 0.004623 0.273307 0.057918 0.037504 0.006664 0.273307 0.100234 0.341634 +0.051977 +0.022267 0.033013 0.062885 0.037737 0.028425 0.063140 0.044448 0.012580 0.180694 0.062572 0.034494 0.192447 0.047323 0.018521 0.041847 0.040929 0.018498 0.035349 0.040439 0.048934 0.012657 0.102490 0.072594 0.015285 0.036226 0.170817 0.059331 0.000132 0.002624 0.136654 0.064418 0.204980 +0.029499 +0.028755 0.064352 0.054923 0.065003 0.044952 0.090424 0.061272 0.057670 0.237704 0.037093 0.030707 0.043352 0.009889 0.022685 0.041121 0.087337 0.039887 0.062830 0.047840 0.002092 0.048911 0.170817 0.066674 0.029448 0.002991 0.136654 0.054635 0.000052 0.010744 0.170817 0.100028 0.239144 +0 +0.033712 0.055581 0.118878 0.074055 0.038593 0.189338 0.028533 0.011356 0.050356 0.041313 0.023443 0.065730 0.066744 0.004111 0.055477 0.090760 0.047877 0.037322 0.054444 0.024449 0.040996 0.239144 0.070214 0.052002 0.042596 0.239144 0.085427 0.001475 0.013885 0.136654 0.085190 0.273307 +0.094905 +0.057420 0.019551 0.039841 0.041043 0.031022 0.040173 0.045500 0.021167 0.036346 0.054586 0.035704 0.092330 0.045955 0.021472 0.099554 0.036625 0.043034 0.307250 0.054354 0.066915 0.048536 0.170817 0.097790 0.039726 0.058826 0.102490 0.059576 0.064552 0.007437 0.170817 0.100318 0.204980 +0 +0.028533 0.026898 0.099899 0.067960 0.030361 0.128383 0.041339 0.002206 0.059120 0.121754 0.020575 0.041878 0.017983 0.019017 0.045855 0.042197 0.034586 0.035196 0.065228 0.000879 0.028521 0.170817 0.098795 0.039118 0.037527 0.102490 0.070839 0.017460 0.045621 0.170817 0.069400 0.204980 +0 +0.013586 0.035596 0.035801 0.061053 0.021294 0.105895 0.062963 0.003543 0.037622 0.056462 0.030793 0.034884 0.002588 0.019855 0.060219 0.049711 0.033952 0.111799 0.036858 0.043242 0.025732 0.102490 0.087810 0.067264 0.031046 0.136654 0.092441 0.050579 0.051886 0.136654 0.086761 0.204980 +0.076072 +0.035182 0.060418 0.047645 0.036060 0.045744 0.035698 0.056418 0.001269 0.068676 0.126461 0.018428 0.205960 0.022540 0.001756 0.117903 0.035217 0.019279 0.097576 0.055835 0.008398 0.005988 0.170817 0.076092 0.041345 0.065886 0.239144 0.054209 0.058030 0.053024 0.204980 0.071097 0.273307 +0.005600 +0.003366 0.066307 0.054992 0.081130 0.046288 0.036665 0.043727 0.045159 0.050160 0.071397 0.035537 0.077086 0.013216 0.011303 0.052815 0.049695 0.033568 0.094567 0.054872 0.046954 0.038864 0.204980 0.093275 0.060918 0.001372 0.239144 0.066749 0.063495 0.004096 0.239144 0.096698 0.341634 +0 +0.060641 0.047691 0.069034 0.040833 0.030690 0.141871 0.010864 0.015672 0.040140 0.035135 0.020478 0.039243 0.025170 0.042137 0.046005 0.038827 0.035451 0.321932 0.051448 0.008412 0.006543 0.102490 0.101536 0.059902 0.059123 0.204980 0.090624 0.065633 0.005878 0.136654 0.099100 0.239144 +0.177057 +0.007464 0.065511 0.052320 0.069553 0.019984 0.095302 0.015893 0.058167 0.076164 0.047749 0.048899 0.382278 0.031410 0.026149 0.065555 0.091438 0.018022 0.152311 0.051493 0.032745 0.049196 0.239144 0.073981 0.025837 0.028704 0.273307 0.070247 0.040246 0.037321 0.273307 0.051895 0.307471 +0.416348 +0.061875 0.010293 0.060360 0.063359 0.050302 0.081090 0.026540 0.008577 0.061677 0.045711 0.040507 0.337224 0.038263 0.048575 0.130588 0.035479 0.035000 0.413019 0.045502 0.010521 0.021708 0.102490 0.063117 0.056012 0.014355 0.239144 0.076464 0.006386 0.017145 0.136654 0.072125 0.273307 +0.786786 +0.009921 0.042672 0.047971 0.055928 0.027267 0.157961 0.002615 0.067304 0.110400 0.043679 0.025260 0.105082 0.008401 0.068111 0.049939 0.248410 0.030459 0.251751 0.050998 0.045594 0.021481 0.170817 0.077191 0.063142 0.010921 0.204980 0.092340 0.053159 0.033381 0.239144 0.085877 0.341634 +0.149034 +0.035399 0.017295 0.045228 0.065894 0.029894 0.359252 0.044811 0.051176 0.045819 0.036318 0.044786 0.090210 0.049774 0.002886 0.087484 0.052298 0.048126 0.042046 0.061407 0.064438 0.039180 0.239144 0.082777 0.066252 0.001325 0.102490 0.059896 0.026197 0.023029 0.239144 0.056885 0.307471 +0.155488 +0.005653 0.030284 0.061109 0.065505 0.040965 0.081036 0.049934 0.025953 0.071645 0.073120 0.028009 0.065364 0.035594 0.057458 0.071519 0.136142 0.044904 0.188927 0.052726 0.023055 0.009553 0.136654 0.087610 0.043790 0.004136 0.239144 0.080302 0.048166 0.034597 0.204980 0.082452 0.273307 +0.086643 +0.033291 0.036387 0.049541 0.040018 0.037037 0.111722 0.062311 0.034703 0.035015 0.088991 0.021859 0.128027 0.038528 0.065527 0.057819 0.045294 0.044257 0.124308 0.039919 0.014631 0.009488 0.136654 0.083812 0.015624 0.025559 0.102490 0.070492 0.020175 0.000074 0.170817 0.088724 0.204980 +0.006462 +0.001793 0.000992 0.041157 0.041613 0.048308 0.244768 0.003476 0.014835 0.054634 0.050468 0.031127 0.038639 0.032899 0.024884 0.052121 0.067709 0.034118 0.175772 0.056657 0.019979 0.006754 0.170817 0.056997 0.035745 0.025335 0.102490 0.082835 0.009526 0.005776 0.239144 0.093818 0.341634 +0.001057 +0.033902 0.000618 0.062499 0.075149 0.039524 0.411560 0.006346 0.005931 0.034464 0.035221 0.019066 0.307457 0.039047 0.013933 0.082982 0.042614 0.028205 0.044358 0.048906 0.067757 0.024534 0.170817 0.064575 0.013740 0.046421 0.136654 0.083988 0.020630 0.060949 0.136654 0.060337 0.204980 +0.229882 +0.055875 0.018163 0.048267 0.047364 0.039613 0.070940 0.017010 0.028085 0.067110 0.091813 0.045034 0.081830 0.052506 0.066464 0.093185 0.133070 0.051126 0.138209 0.042480 0.013404 0.038663 0.136654 0.096017 0.011935 0.014577 0.170817 0.066178 0.046639 0.064790 0.102490 0.099715 0.273307 +0 +0.061144 0.029828 0.084982 0.041374 0.043358 0.083899 0.059603 0.027499 0.060014 0.054323 0.045341 0.086020 0.025404 0.022490 0.079316 0.048539 0.044971 0.046002 0.048175 0.008300 0.023154 0.136654 0.054730 0.055415 0.054228 0.136654 0.089144 0.014092 0.067881 0.136654 0.075400 0.204980 +0 +0.049190 0.018869 0.035538 0.103327 0.049509 0.064158 0.010191 0.029380 0.078843 0.043122 0.037114 0.124799 0.044167 0.034392 0.048088 0.063578 0.031128 0.034730 0.057136 0.060208 0.039787 0.204980 0.058348 0.016738 0.034854 0.102490 0.095416 0.020471 0.063920 0.102490 0.099549 0.273307 +0.001666 +0.043456 0.019837 0.176056 0.062460 0.017735 0.052487 0.013742 0.054661 0.036962 0.107273 0.044337 0.037664 0.059482 0.017979 0.064908 0.034520 0.017513 0.123950 0.053115 0.001864 0.049623 0.239144 0.084500 0.046995 0.021090 0.136654 0.093380 0.056379 0.049161 0.102490 0.059810 0.273307 +0 +0.021578 0.043854 0.073363 0.090825 0.018693 0.068831 0.016596 0.014876 0.059153 0.052914 0.024639 0.044559 0.001297 0.001579 0.150775 0.137403 0.019036 0.047300 0.064475 0.027719 0.014447 0.204980 0.061357 0.013942 0.066481 0.204980 0.083001 0.057653 0.011383 0.102490 0.098719 0.239144 +0 +0.023401 0.030477 0.045908 0.035566 0.032470 0.042092 0.057506 0.067860 0.045874 0.053055 0.049290 0.146093 0.019895 0.002364 0.092959 0.062492 0.018784 0.230907 0.051182 0.064791 0.062125 0.136654 0.068231 0.003521 0.055469 0.239144 0.066062 0.058849 0.063762 0.136654 0.078001 0.307471 +0.076948 +0.058103 0.040408 0.079946 0.062655 0.043724 0.129900 0.018130 0.030900 0.048684 0.064802 0.035428 0.227744 0.061592 0.063871 0.115622 0.034241 0.040399 0.085898 0.060322 0.021735 0.056241 0.102490 0.083173 0.051187 0.007195 0.170817 0.067433 0.054822 0.022611 0.239144 0.055539 0.341634 +0 +0.013739 0.045670 0.237153 0.082605 0.048057 0.111314 0.020508 0.026729 0.064322 0.059496 0.021354 0.079658 0.016927 0.018262 0.038431 0.046220 0.022768 0.160399 0.056583 0.006279 0.050555 0.204980 0.086884 0.040294 0.041841 0.136654 0.054607 0.051505 0.016997 0.239144 0.080834 0.341634 +0.019351 +0.040088 0.003640 0.043164 0.041842 0.047683 0.064432 0.010724 0.046312 0.145436 0.089172 0.040909 0.114513 0.030503 0.054140 0.067676 0.046635 0.037723 0.118985 0.052256 0.022522 0.010260 0.102490 0.082409 0.026555 0.056451 0.204980 0.053753 0.040945 0.008933 0.136654 0.059621 0.341634 +0 +0.061473 0.064530 0.154282 0.113438 0.034090 0.283414 0.048892 0.010655 0.061943 0.051540 0.033648 0.254566 0.051745 0.058715 0.039640 0.072846 0.017539 0.136942 0.039085 0.016433 0.038643 0.136654 0.052248 0.001684 0.000059 0.204980 0.098343 0.018878 0.033828 0.136654 0.101925 0.307471 +0.567261 +0.013618 0.025793 0.039063 0.043374 0.026946 0.063843 0.051424 0.014979 0.151435 0.223317 0.027259 0.106925 0.045646 0.046379 0.089068 0.095120 0.039466 0.155858 0.055790 0.061980 0.045012 0.239144 0.101203 0.067819 0.028143 0.204980 0.060623 0.062950 0.017951 0.204980 0.091053 0.273307 +0.014621 +0.013601 0.048988 0.127387 0.036559 0.045315 0.330189 0.005741 0.003399 0.038517 0.036216 0.048717 0.159121 0.027230 0.044466 0.035821 0.052841 0.031136 0.126703 0.063202 0.041323 0.023355 0.170817 0.087513 0.058796 0.060903 0.239144 0.092336 0.051457 0.050543 0.239144 0.065820 0.273307 +0.113056 +0.047689 0.002660 0.039855 0.188565 0.049359 0.034884 0.050256 0.012266 0.083571 0.146714 0.023809 0.113549 0.010896 0.034940 0.049649 0.061474 0.024897 0.070060 0.059294 0.004259 0.061412 0.102490 0.074626 0.062598 0.011586 0.239144 0.091700 0.011517 0.024333 0.204980 0.055062 0.341634 +0 +0.032261 0.029523 0.055150 0.046849 0.033344 0.172575 0.000843 0.016195 0.133154 0.035497 0.025259 0.251183 0.060814 0.051539 0.049645 0.042510 0.021901 0.048739 0.063034 0.054329 0.007513 0.170817 0.095017 0.066585 0.035375 0.102490 0.074464 0.064862 0.033679 0.102490 0.101421 0.239144 +0.162511 +0.051555 0.039988 0.107720 0.073869 0.018492 0.614435 0.002937 0.044315 0.036636 0.037523 0.047402 0.078332 0.007158 0.010431 0.060827 0.039172 0.039881 0.038479 0.048180 0.037741 0.054283 0.170817 0.071210 0.027309 0.043717 0.239144 0.059544 0.058320 0.055113 0.239144 0.083719 0.273307 +0.638273 +0.030785 0.049263 0.039037 0.043991 0.050232 0.124780 0.031089 0.024487 0.073306 0.094386 0.046369 0.300908 0.061962 0.022919 0.036338 0.054710 0.034374 0.048776 0.063461 0.004335 0.053864 0.239144 0.075317 0.038587 0.020132 0.204980 0.063449 0.057453 0.063971 0.102490 0.057038 0.273307 +0.086612 +0.046257 0.061085 0.039716 0.052910 0.042504 0.124508 0.044265 0.051839 0.045519 0.034198 0.042918 0.074156 0.009861 0.042264 0.044368 0.104588 0.034377 0.067425 0.039002 0.031676 0.041941 0.170817 0.076520 0.049242 0.010380 0.204980 0.095003 0.039437 0.008728 0.204980 0.063714 0.239144 +0.329456 +0.007498 0.065334 0.090042 0.085948 0.022468 0.237676 0.004245 0.036266 0.035502 0.495611 0.026489 0.231586 0.000817 0.056807 0.036177 0.075288 0.023328 0.099527 0.047644 0.039453 0.061156 0.170817 0.070604 0.043178 0.012975 0.136654 0.084049 0.023869 0.025623 0.102490 0.068055 0.204980 +0.529662 +0.005487 0.012137 0.045393 0.083846 0.031525 0.257806 0.053880 0.013515 0.037228 0.051353 0.047897 0.114836 0.033047 0.048585 0.045828 0.057952 0.049476 0.057567 0.056794 0.030325 0.063428 0.239144 0.062579 0.008573 0.036202 0.239144 0.058383 0.010195 0.054282 0.136654 0.051598 0.273307 +0.057375 +0.007068 0.036638 0.045818 0.054334 0.040267 0.169846 0.047592 0.060203 0.045510 0.041795 0.037549 0.044756 0.024350 0.043493 0.036116 0.052040 0.043957 0.198920 0.060680 0.024448 0.000265 0.136654 0.071713 0.056388 0.043646 0.170817 0.077516 0.038304 0.052348 0.102490 0.054290 0.204980 +0.091084 +0.036681 0.065400 0.041776 0.075607 0.028545 0.161423 0.032352 0.014803 0.080460 0.122323 0.028731 0.176916 0.061215 0.068307 0.038187 0.056488 0.045365 0.044005 0.059203 0.021036 0.039980 0.170817 0.100661 0.008351 0.064589 0.136654 0.059549 0.020359 0.058597 0.239144 0.077932 0.341634 +0.000817 +0.006610 0.048857 0.050959 0.045532 0.018267 0.048353 0.040582 0.049633 0.034394 0.060893 0.046314 0.222535 0.051927 0.052928 0.088130 0.036999 0.045495 0.063804 0.055914 0.029607 0.057236 0.102490 0.054308 0.037918 0.029145 0.102490 0.054107 0.009324 0.034196 0.136654 0.059340 0.273307 +0.062011 +0.024044 0.035973 0.061375 0.034405 0.037011 0.053146 0.014077 0.000993 0.043807 0.048594 0.044433 0.190285 0.025076 0.016923 0.048112 0.091243 0.020607 0.090526 0.037964 0.002827 0.023561 0.102490 0.079372 0.065860 0.022232 0.204980 0.072343 0.020592 0.005384 0.136654 0.101955 0.239144 +0.404244 +0.045416 0.054905 0.076902 0.089253 0.025092 0.127979 0.014504 0.035869 0.039812 0.073950 0.029569 0.138963 0.042472 0.052432 0.072687 0.037493 0.019209 0.036661 0.060922 0.007960 0.015969 0.170817 0.076742 0.037448 0.035700 0.102490 0.058588 0.060218 0.065150 0.102490 0.062030 0.204980 +0.040065 +0.063033 0.056633 0.046085 0.040453 0.019219 0.244928 0.018430 0.013791 0.132244 0.095116 0.033111 0.122164 0.059764 0.036543 0.098567 0.073952 0.035126 0.101398 0.054307 0.019339 0.038025 0.239144 0.079787 0.006080 0.030906 0.136654 0.089655 0.052123 0.013138 0.204980 0.093153 0.341634 +0.009176 +0.033120 0.066265 0.045561 0.042415 0.024175 0.690068 0.022911 0.024978 0.039190 0.108318 0.019600 0.041760 0.039175 0.062455 0.048189 0.050323 0.041353 0.240421 0.043817 0.034368 0.020403 0.170817 0.070999 0.035590 0.030180 0.102490 0.090600 0.061793 0.004463 0.239144 0.095280 0.273307 +0.312823 +0.007612 0.028344 0.050596 0.052495 0.025733 0.338206 0.014875 0.042193 0.072291 0.036205 0.033331 0.102412 0.052789 0.019677 0.072454 0.055073 0.046864 0.102862 0.044607 0.006573 0.051880 0.136654 0.070252 0.019137 0.038217 0.102490 0.053250 0.041353 0.044312 0.102490 0.068170 0.204980 +0 +0.011987 0.060452 0.042087 0.042293 0.039632 0.034863 0.000415 0.040765 0.057350 0.051796 0.045075 0.057135 0.026743 0.064605 0.057739 0.048520 0.021792 0.053548 0.040849 0.040433 0.056471 0.239144 0.055096 0.061460 0.064790 0.102490 0.091639 0.065940 0.023527 0.102490 0.079706 0.341634 +0 +0.000055 0.040847 0.046574 0.037090 0.040406 0.087688 0.057579 0.018824 0.099398 0.092780 0.021843 0.058986 0.015674 0.059865 0.046918 0.043509 0.040105 0.094867 0.062678 0.008025 0.035389 0.307471 0.077428 0.010888 0.023474 0.239144 0.065110 0.058524 0.019716 0.102490 0.088578 0.341634 +0.037666 +0.059233 0.058764 0.041165 0.049332 0.038259 0.074668 0.032945 0.010112 0.084999 0.067828 0.038815 0.035105 0.028190 0.014870 0.073636 0.050414 0.019326 0.149568 0.054688 0.016400 0.034325 0.204980 0.081486 0.037205 0.044293 0.136654 0.068541 0.003300 0.037762 0.170817 0.066595 0.341634 +0 +0.029955 0.009423 0.065179 0.044667 0.038715 0.042027 0.067622 0.006111 0.050349 0.055663 0.045324 0.091376 0.051586 0.014547 0.037782 0.108436 0.049625 0.114626 0.038798 0.027599 0.015231 0.204980 0.062594 0.067212 0.000084 0.239144 0.085666 0.022222 0.029412 0.102490 0.088213 0.307471 +0 +0.055687 0.044436 0.044578 0.037963 0.019692 0.228749 0.063607 0.064657 0.037325 0.036401 0.023383 0.085826 0.038094 0.064812 0.044250 0.059557 0.018965 0.086256 0.046625 0.056458 0.054554 0.102490 0.087509 0.063424 0.007889 0.136654 0.085866 0.063592 0.021032 0.273307 0.066203 0.341634 +0.010960 +0.031598 0.044106 0.075454 0.086019 0.025746 0.210359 0.056830 0.065988 0.040658 0.037801 0.038827 0.093137 0.012011 0.053014 0.036246 0.093327 0.037176 0.114901 0.038841 0.027580 0.014353 0.102490 0.053643 0.023429 0.066010 0.102490 0.073573 0.058482 0.036591 0.204980 0.098269 0.239144 +0.336908 +0.005309 0.068004 0.051928 0.066299 0.044375 0.254054 0.056153 0.032253 0.059947 0.055323 0.031906 0.098226 0.042049 0.027550 0.080804 0.039525 0.026224 0.266852 0.038742 0.004571 0.057166 0.102490 0.090641 0.063356 0.040642 0.170817 0.072422 0.049519 0.019187 0.170817 0.085656 0.204980 +0.496873 +0.057478 0.040578 0.052927 0.057641 0.031388 0.151581 0.034978 0.004567 0.155681 0.061250 0.038085 0.200551 0.049453 0.003919 0.079638 0.055326 0.036322 0.086454 0.046599 0.048990 0.040172 0.136654 0.068834 0.047152 0.052428 0.204980 0.090963 0.029566 0.058170 0.136654 0.098811 0.239144 +0.283681 +0.025639 0.010098 0.112342 0.035689 0.045133 0.035152 0.004482 0.052041 0.064261 0.046376 0.046410 0.086866 0.062421 0.026491 0.047383 0.048435 0.023003 0.057797 0.041641 0.011836 0.005188 0.273307 0.086152 0.004432 0.006694 0.170817 0.075649 0.061920 0.008601 0.204980 0.078656 0.307471 +0 +0.061405 0.045475 0.035055 0.039553 0.038952 0.042814 0.062251 0.027500 0.042150 0.035106 0.043405 0.201506 0.033070 0.060642 0.053694 0.041577 0.031465 0.158667 0.054531 0.034359 0.011722 0.102490 0.064685 0.043145 0.008938 0.204980 0.080029 0.050152 0.055406 0.170817 0.095073 0.239144 +0.141338 +0.006464 0.055990 0.048531 0.040080 0.046303 0.119757 0.065402 0.010519 0.052928 0.037178 0.030354 0.049690 0.008205 0.029034 0.072551 0.066029 0.034383 0.084928 0.041425 0.046125 0.018841 0.136654 0.079396 0.060560 0.036903 0.204980 0.092110 0.042507 0.006025 0.204980 0.084221 0.273307 +0 +0.057925 0.054346 0.050974 0.038604 0.020137 0.106277 0.006196 0.040217 0.037508 0.098861 0.025337 0.189769 0.060345 0.002123 0.035285 0.114609 0.031160 0.118442 0.057224 0.034046 0.025832 0.102490 0.084423 0.055698 0.015294 0.273307 0.098622 0.019714 0.035049 0.102490 0.091274 0.307471 +0.010757 +0.035471 0.067307 0.051183 0.091013 0.031651 0.055216 0.005313 0.037821 0.053323 0.122576 0.047239 0.130930 0.015271 0.017755 0.037544 0.084141 0.036915 0.269209 0.052863 0.025003 0.025936 0.170817 0.075865 0.009684 0.009583 0.170817 0.072154 0.041535 0.015964 0.102490 0.061232 0.204980 +0.153970 +0.016409 0.024323 0.081747 0.120190 0.026515 0.169745 0.009270 0.033482 0.117202 0.071755 0.035231 0.165381 0.038826 0.020644 0.047821 0.070953 0.023747 0.124489 0.045810 0.059132 0.036462 0.170817 0.071506 0.047715 0.029957 0.136654 0.074151 0.010259 0.028818 0.239144 0.057445 0.273307 +0.038095 +0.021643 0.066645 0.087035 0.055197 0.023033 0.211339 0.053940 0.001640 0.066751 0.070010 0.039394 0.113695 0.030645 0.060984 0.077030 0.053847 0.046621 0.041440 0.057600 0.001239 0.015820 0.239144 0.070826 0.014884 0.013666 0.170817 0.083072 0.043259 0.016397 0.239144 0.078407 0.307471 +0.018071 +0.067509 0.042059 0.080299 0.075764 0.042048 0.068965 0.054216 0.034255 0.040033 0.049152 0.030734 0.114415 0.067679 0.046027 0.084064 0.142970 0.043796 0.066284 0.060580 0.017635 0.017706 0.204980 0.074928 0.055660 0.053093 0.170817 0.090709 0.054958 0.012130 0.136654 0.086762 0.239144 +0.018481 +0.022093 0.016032 0.096663 0.054358 0.021834 0.042281 0.027627 0.065845 0.075863 0.069944 0.042788 0.129175 0.042049 0.027771 0.045694 0.071387 0.036547 0.199543 0.058894 0.036029 0.025104 0.239144 0.081719 0.056985 0.040276 0.273307 0.060514 0.000199 0.002751 0.239144 0.083042 0.307471 +0.037555 +0.037529 0.018777 0.105600 0.041371 0.031050 0.048363 0.045693 0.002058 0.039872 0.053241 0.024404 0.149947 0.022954 0.012623 0.075411 0.044656 0.024375 0.466202 0.061173 0.060585 0.054883 0.102490 0.051782 0.018654 0.068117 0.136654 0.099505 0.004816 0.045544 0.102490 0.058268 0.204980 +0.728687 +0.017976 0.040664 0.062723 0.050810 0.045805 0.167484 0.014203 0.032811 0.069566 0.125723 0.023889 0.119886 0.053479 0.047280 0.098296 0.076185 0.049327 0.059775 0.054336 0.027003 0.006953 0.102490 0.099250 0.067019 0.003049 0.102490 0.086801 0.033118 0.055548 0.170817 0.070721 0.204980 +0.055235 +0.019322 0.010399 0.104772 0.041403 0.034345 0.077407 0.051689 0.007552 0.052208 0.057447 0.023081 0.171632 0.006095 0.067289 0.064043 0.161129 0.045778 0.183522 0.043738 0.035794 0.048259 0.239144 0.086219 0.025770 0.057457 0.273307 0.068231 0.067848 0.038735 0.136654 0.064391 0.341634 +0.283631 +0.060960 0.059588 0.043711 0.095579 0.019289 0.559791 0.050296 0.006501 0.045574 0.070198 0.038997 0.056969 0.067254 0.067088 0.050556 0.045894 0.033189 0.265692 0.052155 0.048570 0.052087 0.204980 0.052841 0.035988 0.057031 0.102490 0.093095 0.009122 0.002000 0.204980 0.059585 0.273307 +0.548934 +0.002037 0.058857 0.057253 0.069958 0.045518 0.060635 0.064908 0.067633 0.037790 0.036855 0.027769 0.038049 0.065832 0.036446 0.050794 0.044085 0.028319 0.119816 0.043042 0.009825 0.048850 0.136654 0.090992 0.039807 0.014431 0.102490 0.060394 0.010230 0.040691 0.239144 0.067910 0.341634 +0 +0.026232 0.034407 0.051857 0.040953 0.037159 0.176472 0.010779 0.050719 0.112736 0.186699 0.025934 0.073034 0.015926 0.031393 0.131018 0.093260 0.047802 0.071589 0.040274 0.012996 0.041183 0.204980 0.051560 0.001345 0.003850 0.273307 0.067455 0.052490 0.034089 0.102490 0.061590 0.341634 +0 +0.037307 0.005996 0.048432 0.077487 0.025457 0.159067 0.060513 0.014377 0.056652 0.037331 0.029646 0.148509 0.019902 0.053384 0.139740 0.045152 0.039102 0.050711 0.039101 0.050971 0.019668 0.170817 0.053980 0.064788 0.013510 0.273307 0.061165 0.036857 0.046988 0.273307 0.099628 0.341634 +0.024112 +0.045525 0.045460 0.043734 0.095561 0.024867 0.046047 0.060842 0.032641 0.065645 0.047707 0.031383 0.047852 0.054220 0.007300 0.083244 0.112168 0.046926 0.041080 0.042053 0.026724 0.001366 0.170817 0.091243 0.056249 0.059239 0.170817 0.075267 0.023942 0.049341 0.204980 0.052073 0.239144 +0 +0.039132 0.028170 0.079416 0.042926 0.026080 0.063579 0.012654 0.047205 0.114035 0.064390 0.021049 0.246818 0.027685 0.028613 0.054822 0.042997 0.028379 0.193549 0.061205 0.000308 0.058502 0.273307 0.101459 0.016857 0.026042 0.307471 0.072782 0.051515 0.007817 0.102490 0.096273 0.341634 +0.124051 +0.003614 0.038158 0.042170 0.057169 0.030098 0.096524 0.053649 0.047868 0.089177 0.061011 0.038992 0.055085 0.008043 0.052392 0.047133 0.046976 0.047928 0.213282 0.045232 0.037090 0.037983 0.102490 0.062652 0.006693 0.023327 0.170817 0.074367 0.009692 0.029911 0.273307 0.080731 0.341634 +0 +0.025780 0.002513 0.074504 0.038292 0.039779 0.120959 0.050554 0.007407 0.035856 0.058105 0.046130 0.125861 0.005843 0.038576 0.067243 0.097172 0.047561 0.235147 0.054140 0.067419 0.003854 0.170817 0.096703 0.013687 0.001955 0.136654 0.082585 0.024426 0.061404 0.136654 0.058478 0.204980 +0.260190 +0.028734 0.068220 0.036262 0.079801 0.036192 0.090272 0.019167 0.067273 0.034692 0.084078 0.024262 0.177576 0.004766 0.044903 0.127592 0.064162 0.020107 0.077206 0.057681 0.046252 0.028466 0.170817 0.093754 0.063382 0.037784 0.204980 0.073221 0.009097 0.035284 0.204980 0.098178 0.273307 +0.022918 +0.040902 0.023600 0.039059 0.065839 0.021328 0.410857 0.021565 0.034248 0.072736 0.053160 0.044967 0.163886 0.026942 0.049777 0.045394 0.052404 0.022394 0.111235 0.063526 0.037768 0.042458 0.170817 0.052407 0.020686 0.010042 0.170817 0.053897 0.047847 0.007092 0.136654 0.092823 0.239144 +0.489796 +0.019550 0.019491 0.076498 0.124500 0.029962 0.057837 0.054676 0.045664 0.068842 0.047738 0.041902 0.044892 0.041467 0.056595 0.051992 0.055405 0.024885 0.053497 0.040716 0.062397 0.012138 0.136654 0.056600 0.037450 0.045787 0.136654 0.058576 0.046420 0.042967 0.136654 0.085029 0.341634 +0 +0.027044 0.004850 0.136593 0.036138 0.035942 0.088882 0.055283 0.055285 0.034439 0.109501 0.022030 0.045323 0.058769 0.064180 0.066093 0.034464 0.036653 0.138680 0.058196 0.063917 0.007581 0.239144 0.055296 0.065070 0.045613 0.239144 0.090222 0.053188 0.019169 0.239144 0.099423 0.273307 +0 +0.035892 0.047926 0.044644 0.108118 0.037523 0.045380 0.057262 0.044388 0.130997 0.098215 0.034650 0.092410 0.029404 0.055681 0.051606 0.070680 0.023644 0.353733 0.057260 0.001631 0.019136 0.204980 0.093443 0.066666 0.026563 0.239144 0.082571 0.030254 0.041487 0.204980 0.074556 0.273307 +0.075502 +0.065780 0.062872 0.058627 0.040151 0.039711 0.164584 0.048223 0.006753 0.046589 0.211494 0.042758 0.053253 0.013496 0.039688 0.097363 0.146692 0.027885 0.041987 0.049349 0.003071 0.062918 0.136654 0.083120 0.059024 0.030725 0.102490 0.102236 0.008473 0.010589 0.170817 0.084201 0.204980 +0.006048 +0.015551 0.065275 0.079318 0.073091 0.021273 0.041876 0.035186 0.008985 0.070372 0.037736 0.030526 0.044706 0.033851 0.014623 0.040321 0.041576 0.048349 0.074886 0.048110 0.067523 0.065921 0.204980 0.057362 0.037487 0.060045 0.136654 0.066457 0.012126 0.013655 0.170817 0.080018 0.307471 +0 +0.066239 0.062083 0.043806 0.060287 0.046455 0.054964 0.009097 0.034416 0.048737 0.047562 0.039521 0.150020 0.032989 0.058198 0.056429 0.089313 0.030714 0.080516 0.052173 0.047123 0.047431 0.170817 0.085500 0.041907 0.067211 0.239144 0.068687 0.021395 0.010760 0.102490 0.069412 0.273307 +0 +0.041961 0.025340 0.170548 0.061282 0.049695 0.159156 0.012334 0.036872 0.045202 0.039751 0.021083 0.044989 0.019566 0.054474 0.058923 0.066230 0.023960 0.143097 0.049905 0.015026 0.014482 0.170817 0.099662 0.022124 0.027527 0.170817 0.070477 0.006037 0.030713 0.170817 0.067597 0.273307 +0.002698 +0.004404 0.066864 0.041663 0.110745 0.035342 0.065829 0.046178 0.047180 0.130638 0.073802 0.017542 0.225344 0.001751 0.061578 0.071304 0.044117 0.028921 0.188043 0.041291 0.003303 0.036305 0.204980 0.083596 0.018876 0.025320 0.204980 0.065482 0.060506 0.050078 0.204980 0.080510 0.273307 +0.242474 +0.041865 0.018458 0.040418 0.118439 0.034997 0.059545 0.022364 0.012516 0.054691 0.035653 0.046708 0.072161 0.009408 0.033793 0.056136 0.077917 0.021048 0.114970 0.040742 0.004765 0.058212 0.136654 0.079206 0.015560 0.055874 0.136654 0.080984 0.008209 0.066216 0.170817 0.076375 0.204980 +0.059900 +0.044172 0.021184 0.097243 0.055249 0.027790 0.176714 0.043463 0.020306 0.088126 0.047182 0.050790 0.111642 0.064520 0.014310 0.038284 0.056388 0.047339 0.077087 0.060778 0.019892 0.024025 0.136654 0.053192 0.019340 0.058795 0.307471 0.061641 0.040991 0.008785 0.102490 0.053122 0.341634 +0 +0.010483 0.015636 0.046045 0.154465 0.040466 0.271617 0.001888 0.034430 0.039817 0.166500 0.043873 0.053757 0.035426 0.062766 0.061926 0.108727 0.044728 0.172287 0.050275 0.068036 0.049850 0.136654 0.084784 0.064720 0.044437 0.204980 0.073911 0.002861 0.054250 0.307471 0.100829 0.341634 +0.140919 +0.064607 0.053155 0.051392 0.057076 0.025545 0.073840 0.041630 0.024814 0.062446 0.112961 0.018163 0.186696 0.020557 0.046425 0.040635 0.075614 0.022522 0.206966 0.053643 0.015187 0.041106 0.170817 0.092803 0.028157 0.064410 0.102490 0.055499 0.057231 0.043551 0.204980 0.089051 0.273307 +0.000935 +0.063966 0.027570 0.039817 0.038481 0.043596 0.174305 0.005594 0.011275 0.039817 0.047209 0.044266 0.231221 0.035895 0.063007 0.072010 0.042009 0.036563 0.164630 0.050431 0.042192 0.018634 0.204980 0.087665 0.066759 0.037090 0.102490 0.069351 0.006422 0.038229 0.102490 0.097900 0.239144 +0.045038 +0.065488 0.038048 0.045186 0.049758 0.031252 0.057456 0.019668 0.031905 0.040969 0.065119 0.044037 0.068210 0.008489 0.053208 0.067113 0.036076 0.045938 0.195974 0.060483 0.062561 0.027434 0.136654 0.077683 0.026696 0.065238 0.239144 0.057380 0.057871 0.062288 0.239144 0.060825 0.307471 +0 +0.055141 0.023584 0.051532 0.058987 0.031479 0.198430 0.059624 0.012369 0.065236 0.067378 0.044115 0.047319 0.059950 0.037545 0.056198 0.084769 0.042085 0.273111 0.052168 0.054628 0.038990 0.273307 0.075656 0.025770 0.045394 0.102490 0.064592 0.053734 0.052855 0.136654 0.075626 0.307471 +0.003557 +0.019153 0.062084 0.118845 0.040849 0.032212 0.203089 0.037205 0.064946 0.059116 0.133582 0.022303 0.095213 0.051951 0.011532 0.038557 0.126426 0.017722 0.060025 0.052958 0.042267 0.016715 0.204980 0.100265 0.051757 0.024870 0.136654 0.055312 0.048071 0.033953 0.204980 0.090249 0.307471 +0.003506 +0.019888 0.033283 0.100921 0.075840 0.044807 0.200769 0.054006 0.020237 0.059710 0.054998 0.036200 0.039971 0.015688 0.038584 0.115782 0.096762 0.044096 0.215849 0.045568 0.030998 0.045422 0.239144 0.062376 0.050809 0.022072 0.239144 0.082998 0.052452 0.010946 0.102490 0.060424 0.341634 +0.048896 +0.051266 0.053925 0.041406 0.041917 0.025912 0.184574 0.031302 0.065615 0.038984 0.081366 0.022904 0.084040 0.064942 0.041886 0.036338 0.044957 0.022819 0.136669 0.041705 0.067056 0.011869 0.136654 0.057666 0.065525 0.053025 0.136654 0.086125 0.063138 0.001209 0.136654 0.090317 0.273307 +0.010846 +0.052713 0.004917 0.051669 0.054752 0.017845 0.152715 0.040611 0.004218 0.074651 0.039500 0.018180 0.042617 0.064205 0.020682 0.075761 0.041137 0.019735 0.048346 0.044374 0.013108 0.030410 0.170817 0.092642 0.042343 0.056584 0.170817 0.100805 0.023959 0.008055 0.170817 0.090361 0.239144 +0.004186 +0.014555 0.029513 0.083513 0.107143 0.026249 0.154777 0.039896 0.020914 0.063131 0.051928 0.047869 0.071573 0.029708 0.043724 0.060710 0.066131 0.021287 0.038038 0.061708 0.019807 0.036257 0.102490 0.068282 0.064385 0.031963 0.102490 0.071851 0.053223 0.055890 0.136654 0.058717 0.239144 +0.001013 +0.032543 0.019235 0.037728 0.035331 0.035933 0.077266 0.049028 0.008606 0.136529 0.072305 0.042736 0.205535 0.053695 0.039779 0.059233 0.142700 0.029425 0.183369 0.052770 0.002445 0.042243 0.239144 0.081081 0.047784 0.053034 0.136654 0.052948 0.005297 0.003505 0.239144 0.099301 0.307471 +0.290350 +0.038022 0.022797 0.103248 0.140766 0.042558 0.085694 0.064979 0.017038 0.039898 0.046352 0.047551 0.035750 0.020124 0.010199 0.055361 0.040553 0.027075 0.051428 0.049800 0.066371 0.067658 0.102490 0.059743 0.013341 0.057087 0.102490 0.099791 0.052534 0.064606 0.170817 0.099091 0.204980 +0 +0.056300 0.038736 0.051971 0.048582 0.038883 0.119724 0.061678 0.044667 0.104040 0.102748 0.050135 0.063245 0.039279 0.031450 0.037857 0.059856 0.044206 0.336000 0.062041 0.054014 0.012092 0.239144 0.088757 0.056692 0.061881 0.102490 0.097435 0.021040 0.025203 0.273307 0.086662 0.341634 +0.072718 +0.000086 0.056994 0.040615 0.144994 0.037976 0.176575 0.002162 0.011112 0.050943 0.103147 0.045364 0.053701 0.010549 0.026220 0.042705 0.040098 0.020445 0.099333 0.065668 0.029510 0.020721 0.307471 0.058851 0.067544 0.030342 0.273307 0.059988 0.015918 0.018877 0.239144 0.077086 0.341634 +0.046749 +0.001212 0.047069 0.164574 0.039054 0.018694 0.104366 0.022719 0.049615 0.062897 0.110482 0.043192 0.203879 0.021927 0.012457 0.054190 0.127724 0.032022 0.299749 0.044957 0.051701 0.004289 0.136654 0.076650 0.039995 0.012091 0.136654 0.099324 0.031562 0.000761 0.204980 0.063239 0.341634 +0 +0.006744 0.040595 0.038940 0.047831 0.047509 0.143425 0.055150 0.043846 0.039811 0.089661 0.049417 0.049324 0.042974 0.050750 0.042744 0.083904 0.039542 0.036013 0.061937 0.013481 0.005533 0.102490 0.085079 0.066232 0.032004 0.170817 0.067531 0.035330 0.017451 0.239144 0.058994 0.341634 +0 +0.022830 0.038565 0.035282 0.034350 0.048116 0.130953 0.051102 0.030812 0.037402 0.078007 0.020939 0.125331 0.064939 0.061632 0.044048 0.042945 0.023488 0.232380 0.056987 0.016419 0.047951 0.102490 0.059532 0.041348 0.030568 0.102490 0.070179 0.032467 0.009032 0.136654 0.063734 0.239144 +0.002007 +0.040592 0.052679 0.037707 0.065586 0.043710 0.100375 0.047618 0.031737 0.080111 0.117911 0.019797 0.223987 0.013389 0.049067 0.036113 0.131458 0.025193 0.082161 0.053547 0.000877 0.048806 0.136654 0.070192 0.065842 0.004606 0.204980 0.102447 0.057465 0.044501 0.170817 0.096571 0.239144 +0.110482 +0.053706 0.064570 0.069688 0.037582 0.037304 0.319856 0.035913 0.040002 0.056836 0.066313 0.024623 0.048297 0.062152 0.005707 0.045597 0.043442 0.021548 0.140005 0.057141 0.024181 0.021828 0.170817 0.059258 0.021459 0.047761 0.204980 0.067547 0.008554 0.009209 0.102490 0.071793 0.307471 +0.337981 +0.057581 0.025474 0.064467 0.051374 0.035825 0.037736 0.003314 0.011792 0.056949 0.072137 0.030739 0.127855 0.026786 0.064311 0.045504 0.039810 0.021344 0.050997 0.052434 0.058970 0.015589 0.204980 0.090658 0.013816 0.040026 0.204980 0.055843 0.064206 0.051636 0.170817 0.056963 0.341634 +0 +0.043952 0.046805 0.075963 0.040797 0.035590 0.080137 0.024750 0.012537 0.037538 0.064937 0.017820 0.049157 0.038083 0.055875 0.050006 0.040299 0.045961 0.084165 0.051502 0.017806 0.051912 0.170817 0.095563 0.067778 0.000351 0.204980 0.090877 0.062133 0.049966 0.204980 0.068762 0.307471 +0 +0.036136 0.003190 0.166743 0.038396 0.041831 0.046477 0.045689 0.016864 0.060195 0.047498 0.026929 0.100967 0.050160 0.027775 0.055636 0.062495 0.021574 0.387834 0.053622 0.056881 0.049573 0.136654 0.069140 0.020258 0.026351 0.102490 0.100184 0.050362 0.021742 0.204980 0.057606 0.341634 +0 +0.037639 0.022811 0.080868 0.071674 0.045394 0.175033 0.011178 0.034144 0.067740 0.036481 0.035966 0.096550 0.000800 0.009041 0.053391 0.047973 0.050882 0.073204 0.047247 0.066555 0.027988 0.239144 0.055614 0.048986 0.051770 0.136654 0.078037 0.060070 0.033174 0.136654 0.097193 0.307471 +0.288036 +0.036305 0.029174 0.051480 0.034536 0.019390 0.088489 0.042546 0.009698 0.039953 0.053827 0.046232 0.098223 0.042219 0.039453 0.057740 0.053135 0.034347 0.048901 0.044339 0.041456 0.008911 0.102490 0.088199 0.033024 0.015749 0.102490 0.088365 0.027470 0.016079 0.170817 0.094573 0.204980 +0.029387 +0.045119 0.046842 0.040543 0.037409 0.030790 0.037483 0.030180 0.062899 0.122194 0.041781 0.043703 0.446402 0.033821 0.053948 0.094531 0.042657 0.019847 0.201692 0.061445 0.037840 0.048463 0.102490 0.097888 0.062420 0.004920 0.136654 0.089508 0.014460 0.063781 0.170817 0.098744 0.239144 +0.335177 +0.038860 0.063249 0.038604 0.045323 0.037664 0.048570 0.023131 0.064431 0.059142 0.165815 0.020495 0.044072 0.038843 0.042292 0.041320 0.112052 0.033566 0.163222 0.054052 0.050090 0.009874 0.273307 0.102286 0.001129 0.016974 0.239144 0.100418 0.024325 0.066782 0.136654 0.078580 0.341634 +0 +0.020107 0.026369 0.036521 0.061416 0.037588 0.083203 0.047038 0.024721 0.042622 0.092086 0.044756 0.115661 0.047539 0.050030 0.047708 0.065868 0.026088 0.130529 0.060137 0.047703 0.014802 0.136654 0.057449 0.035204 0.045343 0.273307 0.093385 0.021519 0.051943 0.204980 0.065505 0.307471 +0.057882 +0.067045 0.002837 0.034887 0.043200 0.021650 0.037115 0.018882 0.015500 0.141888 0.050157 0.033302 0.095804 0.034398 0.014999 0.063772 0.038208 0.026722 0.178691 0.053289 0.013199 0.020781 0.102490 0.084614 0.037505 0.009777 0.239144 0.083363 0.023215 0.063790 0.239144 0.079814 0.341634 +0.000880 +0.000164 0.033414 0.127105 0.052225 0.031179 0.058260 0.064357 0.011412 0.070004 0.083959 0.029625 0.186940 0.054567 0.025250 0.043388 0.058333 0.023267 0.304270 0.057507 0.041343 0.044061 0.136654 0.082742 0.053507 0.060999 0.102490 0.080193 0.000843 0.059068 0.204980 0.095245 0.239144 +0.119650 +0.045382 0.040321 0.188458 0.034423 0.034542 0.126888 0.063249 0.002318 0.077562 0.046042 0.041393 0.120738 0.061092 0.048465 0.080503 0.035026 0.021617 0.050903 0.061453 0.009000 0.015090 0.204980 0.096039 0.046541 0.044726 0.102490 0.098707 0.001786 0.061117 0.204980 0.071751 0.239144 +0.045646 +0.025043 0.065409 0.040928 0.115770 0.044424 0.102273 0.002708 0.012755 0.059881 0.049554 0.018105 0.163569 0.055372 0.066629 0.198605 0.076070 0.044239 0.044413 0.060337 0.010181 0.055543 0.136654 0.068536 0.004060 0.065000 0.102490 0.096899 0.017830 0.049586 0.170817 0.095404 0.204980 +0.128523 +0.011901 0.041343 0.043689 0.059484 0.019789 0.038797 0.022314 0.051724 0.067574 0.091498 0.045533 0.073029 0.051180 0.037688 0.071577 0.071627 0.029307 0.039022 0.038313 0.028831 0.044214 0.307471 0.076356 0.003473 0.033283 0.204980 0.094333 0.023045 0.025161 0.102490 0.097369 0.341634 +0 +0.030902 0.000166 0.123469 0.040825 0.044789 0.279578 0.037115 0.054803 0.070960 0.140240 0.026346 0.071910 0.063791 0.032878 0.050806 0.036366 0.020472 0.286958 0.046410 0.059695 0.019049 0.102490 0.073311 0.034378 0.046182 0.102490 0.070884 0.002924 0.031759 0.102490 0.057972 0.273307 +0.444672 +0.032753 0.024186 0.040572 0.047219 0.020943 0.252594 0.030189 0.019769 0.051447 0.077149 0.021987 0.511344 0.049544 0.042072 0.046629 0.043800 0.036332 0.531155 0.049704 0.051080 0.001490 0.239144 0.095390 0.024189 0.066474 0.102490 0.070234 0.046477 0.045802 0.136654 0.080962 0.273307 +0.784704 +0.024429 0.008508 0.060229 0.051842 0.018914 0.097866 0.062114 0.015914 0.101616 0.073562 0.044640 0.285615 0.061730 0.064870 0.076558 0.049334 0.023733 0.078913 0.052796 0.047759 0.019864 0.204980 0.096554 0.035105 0.001600 0.204980 0.097934 0.008064 0.044454 0.204980 0.096479 0.273307 +0.108559 +0.062984 0.024040 0.045483 0.100845 0.036865 0.195841 0.001457 0.060729 0.086745 0.060115 0.048910 0.064314 0.042847 0.034056 0.045539 0.088353 0.019611 0.071825 0.052315 0.043217 0.017658 0.204980 0.058090 0.053714 0.059398 0.239144 0.100258 0.055118 0.042925 0.204980 0.072554 0.307471 +0.002775 +0.013897 0.015324 0.039376 0.058295 0.018080 0.054798 0.056587 0.067816 0.078958 0.072638 0.023813 0.047886 0.065646 0.000398 0.070389 0.083410 0.035387 0.170015 0.051355 0.019335 0.029134 0.239144 0.097776 0.064239 0.045310 0.102490 0.067831 0.023074 0.053190 0.102490 0.056150 0.307471 +0.002665 +0.047596 0.061023 0.035449 0.270844 0.034717 0.103417 0.044759 0.062248 0.077058 0.074340 0.039612 0.163720 0.018880 0.053880 0.053876 0.060079 0.032230 0.088197 0.058233 0.024293 0.052424 0.136654 0.083571 0.042424 0.026458 0.273307 0.085220 0.055146 0.061813 0.102490 0.089595 0.307471 +0.057810 +0.030259 0.018264 0.056628 0.062977 0.019641 0.065840 0.019126 0.043520 0.084266 0.051178 0.037757 0.035137 0.063996 0.017266 0.040736 0.063928 0.045005 0.160742 0.038795 0.028735 0.024786 0.239144 0.081865 0.006702 0.044524 0.204980 0.088167 0.007198 0.055396 0.102490 0.087233 0.341634 +0.043111 +0.040598 0.036888 0.164092 0.095302 0.026498 0.142531 0.065028 0.013808 0.049380 0.042710 0.027113 0.218852 0.019019 0.047129 0.087201 0.105765 0.043826 0.172242 0.047390 0.048992 0.064490 0.273307 0.083314 0.001372 0.017151 0.307471 0.085831 0.037003 0.004149 0.170817 0.055215 0.341634 +0.298503 +0.057539 0.064006 0.054220 0.053353 0.044026 0.058155 0.063548 0.019908 0.039295 0.054528 0.039101 0.257664 0.010792 0.052484 0.114008 0.070320 0.045502 0.155900 0.050259 0.029276 0.028661 0.102490 0.078888 0.047192 0.015713 0.136654 0.096073 0.028387 0.036411 0.102490 0.079775 0.204980 +0.116929 +0.015718 0.062319 0.056037 0.059485 0.020634 0.152876 0.037544 0.023563 0.050441 0.088670 0.018773 0.043278 0.019877 0.016141 0.116982 0.103227 0.021721 0.304099 0.042691 0.009121 0.001834 0.239144 0.081224 0.016255 0.006870 0.170817 0.060228 0.048348 0.023048 0.239144 0.086240 0.307471 +0.032407 +0.018576 0.054870 0.045833 0.056513 0.048520 0.125124 0.019196 0.012536 0.118002 0.102739 0.042685 0.345956 0.059456 0.045748 0.063142 0.038508 0.035564 0.122527 0.051841 0.016342 0.000177 0.204980 0.098369 0.057610 0.040069 0.102490 0.064403 0.004233 0.034135 0.102490 0.061967 0.307471 +0.226758 +0.055304 0.034426 0.040774 0.111468 0.044433 0.203251 0.012172 0.016358 0.077094 0.038078 0.028053 0.268907 0.008242 0.037681 0.069451 0.074733 0.041932 0.208877 0.052654 0.022299 0.049452 0.204980 0.054925 0.013425 0.026632 0.204980 0.081142 0.029441 0.063348 0.170817 0.067896 0.239144 +0.359134 +0.053285 0.014249 0.035462 0.039446 0.025536 0.155800 0.008223 0.020822 0.043102 0.108801 0.017133 0.253544 0.022929 0.017656 0.038260 0.089477 0.043285 0.349695 0.045012 0.039840 0.005665 0.136654 0.079794 0.024425 0.059917 0.102490 0.074432 0.020724 0.027038 0.136654 0.085393 0.341634 +0.221357 +0.037240 0.043481 0.100689 0.036315 0.017577 0.059492 0.054601 0.033849 0.037237 0.105397 0.042842 0.050245 0.062518 0.021924 0.075355 0.083546 0.037674 0.394549 0.057175 0.010193 0.051714 0.102490 0.070680 0.014226 0.039929 0.204980 0.100324 0.025968 0.045606 0.170817 0.073415 0.239144 +0.103824 +0.065267 0.027224 0.069592 0.044617 0.050668 0.100288 0.009940 0.043537 0.087159 0.035086 0.039794 0.242052 0.050596 0.057467 0.054239 0.128401 0.029655 0.049827 0.046000 0.002225 0.053248 0.136654 0.064895 0.022890 0.068296 0.204980 0.082663 0.038325 0.045674 0.136654 0.060351 0.341634 +0.199994 +0.059663 0.061084 0.044079 0.040913 0.038934 0.097952 0.051906 0.048218 0.116878 0.123917 0.025957 0.145950 0.050062 0.018690 0.068651 0.072975 0.031338 0.045260 0.038801 0.021164 0.052815 0.102490 0.101446 0.051714 0.059240 0.170817 0.071403 0.045474 0.065551 0.170817 0.067310 0.204980 +0 +0.052694 0.053312 0.092031 0.047841 0.026459 0.425417 0.000604 0.057343 0.136591 0.078162 0.047000 0.037993 0.007405 0.010318 0.039914 0.048992 0.047648 0.220382 0.046950 0.027259 0.016978 0.170817 0.082005 0.047256 0.045814 0.102490 0.084198 0.036794 0.037074 0.170817 0.075918 0.204980 +0.306502 +0.038067 0.005442 0.051390 0.044196 0.036066 0.239885 0.000725 0.022247 0.056768 0.035349 0.046236 0.067612 0.048324 0.022583 0.068296 0.034276 0.028643 0.088123 0.061023 0.044171 0.025352 0.170817 0.083738 0.020148 0.033256 0.136654 0.078702 0.036292 0.037348 0.136654 0.096717 0.204980 +0.047180 +0.061329 0.045147 0.080525 0.078373 0.047682 0.209628 0.033807 0.009450 0.101965 0.081929 0.036857 0.057661 0.029535 0.013059 0.109038 0.041580 0.029489 0.489242 0.052707 0.043460 0.033740 0.204980 0.097817 0.054559 0.039725 0.273307 0.094446 0.050302 0.052323 0.102490 0.057853 0.307471 +0.292993 +0.068309 0.005599 0.056901 0.049702 0.039266 0.064190 0.026084 0.049338 0.060196 0.037863 0.048494 0.247839 0.020127 0.013773 0.080944 0.044518 0.017695 0.331563 0.053250 0.057693 0.012325 0.239144 0.100963 0.018377 0.047546 0.136654 0.070928 0.017464 0.013490 0.273307 0.064882 0.307471 +0.094283 +0.061102 0.065164 0.151220 0.046652 0.042330 0.035996 0.037694 0.025836 0.124264 0.128938 0.033144 0.183488 0.041760 0.009864 0.079853 0.045512 0.050876 0.034647 0.048839 0.002234 0.050426 0.136654 0.067412 0.036165 0.054180 0.136654 0.096374 0.051372 0.059798 0.136654 0.062395 0.307471 +0.036763 +0.066281 0.053028 0.054717 0.175276 0.020772 0.101268 0.032518 0.046012 0.090342 0.039101 0.024372 0.055262 0.068061 0.053603 0.040226 0.042870 0.045331 0.080865 0.043148 0.027518 0.066763 0.170817 0.098849 0.038082 0.015878 0.136654 0.088342 0.054993 0.047479 0.170817 0.099573 0.204980 +0.164185 +0.060701 0.016387 0.034217 0.057006 0.045634 0.068165 0.005634 0.024335 0.095522 0.066663 0.042643 0.042193 0.051444 0.021534 0.041383 0.061362 0.042620 0.139924 0.055037 0.021153 0.053903 0.204980 0.069682 0.009006 0.050872 0.239144 0.082341 0.018823 0.012031 0.170817 0.076370 0.273307 +0 +0.024154 0.045100 0.052157 0.043436 0.037485 0.152347 0.066833 0.016215 0.078172 0.038246 0.029038 0.042649 0.030415 0.041920 0.038722 0.047748 0.040427 0.055551 0.058343 0.044668 0.054495 0.273307 0.093292 0.036325 0.000821 0.273307 0.101011 0.033470 0.032887 0.102490 0.095072 0.341634 +0 +0.061563 0.063894 0.108191 0.084327 0.025874 0.063945 0.000699 0.030572 0.072225 0.052594 0.034118 0.088338 0.043159 0.057298 0.073951 0.157487 0.041763 0.202443 0.040608 0.031803 0.061345 0.136654 0.070417 0.062472 0.003678 0.204980 0.092953 0.041675 0.044554 0.102490 0.072556 0.239144 +0.017582 +0.000131 0.032074 0.036442 0.086969 0.026448 0.224561 0.047670 0.025762 0.122080 0.088725 0.047322 0.113055 0.033146 0.019172 0.053330 0.042892 0.025893 0.073143 0.060324 0.019932 0.045413 0.102490 0.086040 0.053213 0.015090 0.136654 0.076555 0.050520 0.007209 0.102490 0.077470 0.239144 +0.078154 +0.044399 0.021531 0.077699 0.044216 0.031106 0.143547 0.028718 0.016342 0.035079 0.140431 0.031865 0.037664 0.013838 0.059696 0.039043 0.049617 0.023762 0.161903 0.056536 0.022854 0.021840 0.239144 0.091868 0.007732 0.044679 0.204980 0.098467 0.019079 0.061711 0.170817 0.067787 0.273307 +0.003924 +0.039289 0.054801 0.053424 0.047167 0.026370 0.085276 0.011284 0.009063 0.036176 0.076456 0.037905 0.053595 0.008829 0.038706 0.061501 0.071191 0.032937 0.087691 0.047201 0.039954 0.038157 0.307471 0.066743 0.034580 0.048811 0.239144 0.072764 0.063645 0.005016 0.136654 0.072497 0.341634 +0 +0.009124 0.043920 0.068861 0.039829 0.022658 0.051254 0.057297 0.040794 0.042831 0.034722 0.025706 0.109113 0.050728 0.065132 0.035155 0.048698 0.027946 0.050051 0.043233 0.053697 0.018765 0.170817 0.093011 0.062997 0.034292 0.273307 0.072062 0.010114 0.024869 0.239144 0.102436 0.307471 +0.054799 +0.010281 0.048154 0.050444 0.133238 0.018093 0.105884 0.063958 0.057870 0.162801 0.328200 0.018851 0.042564 0.056441 0.030346 0.040478 0.041844 0.020610 0.079201 0.057906 0.007542 0.056703 0.273307 0.095445 0.006847 0.016360 0.273307 0.091647 0.042468 0.000971 0.239144 0.099640 0.341634 +0.010542 +0.032718 0.043072 0.036169 0.059052 0.044582 0.066946 0.028956 0.034427 0.038784 0.104124 0.050654 0.208249 0.063629 0.042345 0.039408 0.121647 0.041763 0.119445 0.047796 0.062701 0.058135 0.204980 0.079099 0.051158 0.031253 0.170817 0.086432 0.036401 0.049617 0.136654 0.051747 0.239144 +0.045203 +0.025636 0.041640 0.035459 0.064506 0.049082 0.052500 0.004774 0.019200 0.040364 0.040786 0.021747 0.095380 0.027830 0.050664 0.095329 0.057132 0.024688 0.217065 0.039566 0.017053 0.065470 0.170817 0.067976 0.049212 0.037387 0.170817 0.088526 0.027046 0.052607 0.102490 0.068552 0.239144 +0 +0.065640 0.008511 0.044367 0.053214 0.038883 0.046754 0.032047 0.044634 0.045022 0.069885 0.035904 0.041751 0.047891 0.042219 0.055818 0.132541 0.019105 0.159404 0.047953 0.067486 0.041120 0.239144 0.072217 0.005994 0.050055 0.102490 0.067800 0.048847 0.019357 0.136654 0.057600 0.273307 +0 +0.000917 0.005845 0.070859 0.047517 0.028820 0.112042 0.062490 0.062389 0.074913 0.039903 0.044567 0.044742 0.013650 0.020058 0.054721 0.113721 0.019268 0.241001 0.065808 0.025033 0.001730 0.170817 0.079005 0.015154 0.039919 0.170817 0.051411 0.003101 0.039572 0.136654 0.098004 0.204980 +0.069078 +0.031645 0.036343 0.188173 0.064826 0.018819 0.175147 0.012001 0.038996 0.065089 0.099411 0.031056 0.059287 0.053172 0.034727 0.086151 0.052310 0.047087 0.062459 0.046589 0.041250 0.047011 0.136654 0.058994 0.061611 0.008563 0.136654 0.076448 0.001014 0.046659 0.136654 0.072763 0.204980 +0 +0.007249 0.058428 0.075359 0.052513 0.028773 0.115240 0.001194 0.039811 0.072348 0.082717 0.022302 0.063298 0.049591 0.051458 0.046734 0.056072 0.026018 0.043382 0.045385 0.039292 0.055296 0.204980 0.102189 0.027292 0.023885 0.136654 0.081215 0.025529 0.064856 0.136654 0.061746 0.239144 +0 +0.015421 0.037874 0.082429 0.070634 0.045599 0.581098 0.046030 0.038428 0.036595 0.042186 0.026976 0.122642 0.003829 0.047800 0.112211 0.047500 0.049163 0.205733 0.052616 0.061821 0.049107 0.102490 0.072266 0.059091 0.043207 0.136654 0.087258 0.000070 0.006538 0.170817 0.100383 0.204980 +0.674213 +0.043044 0.047466 0.102318 0.043446 0.047762 0.064579 0.009274 0.045248 0.056059 0.077468 0.050684 0.095149 0.043969 0.005275 0.056513 0.080470 0.046838 0.120582 0.045538 0.007234 0.066118 0.102490 0.080596 0.033806 0.032094 0.204980 0.067639 0.043169 0.031509 0.102490 0.055177 0.341634 +0.002442 +0.034001 0.060536 0.050403 0.068317 0.042990 0.493213 0.001519 0.050445 0.077557 0.101113 0.048826 0.066324 0.033638 0.022785 0.139961 0.050853 0.023185 0.284828 0.047976 0.056343 0.055108 0.204980 0.072825 0.006043 0.048860 0.170817 0.055537 0.034219 0.064709 0.239144 0.077699 0.341634 +0.326088 +0.056011 0.039115 0.038392 0.056764 0.025100 0.072629 0.045566 0.027545 0.048337 0.044641 0.035974 0.122840 0.066180 0.055955 0.091814 0.038077 0.040680 0.062976 0.045203 0.016904 0.041687 0.170817 0.094843 0.048789 0.034896 0.170817 0.055010 0.052602 0.037708 0.170817 0.086819 0.204980 +0.062675 +0.055736 0.064529 0.048459 0.099537 0.019917 0.134173 0.017538 0.009120 0.036584 0.075922 0.032564 0.203727 0.024963 0.067780 0.066670 0.059956 0.046128 0.036081 0.039447 0.000634 0.020204 0.307471 0.085487 0.064069 0.029550 0.136654 0.054592 0.026732 0.034969 0.239144 0.068261 0.341634 +0.003189 +0.061626 0.032127 0.107151 0.040499 0.037095 0.258373 0.024922 0.019928 0.051618 0.071388 0.032623 0.090677 0.023830 0.034471 0.042561 0.080678 0.032597 0.067429 0.053901 0.058416 0.019116 0.102490 0.063234 0.053276 0.016827 0.273307 0.099066 0.021027 0.048738 0.102490 0.091301 0.341634 +0.022375 +0.014610 0.002441 0.088240 0.062533 0.035163 0.105564 0.055409 0.055861 0.173082 0.102501 0.022780 0.052123 0.056629 0.021128 0.035449 0.145326 0.023000 0.230053 0.052515 0.004574 0.055683 0.239144 0.075219 0.064239 0.054798 0.307471 0.087947 0.041792 0.055079 0.170817 0.095323 0.341634 +0.088613 +0.015565 0.058352 0.040262 0.071816 0.019880 0.133149 0.043107 0.067957 0.129727 0.047660 0.023436 0.148302 0.059989 0.027564 0.070234 0.054144 0.027092 0.092574 0.049937 0.064268 0.002884 0.170817 0.053368 0.011531 0.027087 0.102490 0.067764 0.055178 0.061641 0.136654 0.070505 0.239144 +0.076212 +0.037974 0.048985 0.073163 0.090230 0.049079 0.043429 0.018864 0.054462 0.109627 0.035940 0.023373 0.063292 0.062018 0.032129 0.045125 0.048377 0.017163 0.089396 0.063032 0.016670 0.013753 0.204980 0.080178 0.003562 0.012957 0.204980 0.058496 0.008659 0.041862 0.102490 0.099372 0.239144 +0 +0.059719 0.031350 0.036134 0.105587 0.021651 0.044451 0.062304 0.024814 0.073678 0.088698 0.044341 0.121731 0.034368 0.017939 0.034992 0.042452 0.038288 0.073259 0.054685 0.022157 0.032334 0.170817 0.065913 0.042285 0.004583 0.170817 0.072702 0.021332 0.058707 0.136654 0.057202 0.239144 +0 +0.063431 0.017981 0.113831 0.046471 0.020995 0.148577 0.011492 0.053629 0.063061 0.047488 0.023401 0.131925 0.058692 0.052662 0.096082 0.069945 0.040267 0.045179 0.045011 0.014038 0.016573 0.136654 0.058444 0.001032 0.011928 0.170817 0.075022 0.012077 0.042224 0.136654 0.096359 0.239144 +0.040165 +0.067013 0.046148 0.046601 0.050089 0.026853 0.052883 0.016889 0.050808 0.061301 0.084497 0.037050 0.235536 0.030014 0.026986 0.036336 0.047029 0.020779 0.089814 0.058764 0.054172 0.051364 0.102490 0.058911 0.000969 0.005485 0.102490 0.095371 0.032289 0.003655 0.102490 0.064445 0.204980 +0.034903 +0.041468 0.018710 0.042648 0.053050 0.050203 0.121849 0.005333 0.045421 0.049589 0.034566 0.049847 0.212841 0.059543 0.003348 0.038485 0.037992 0.023738 0.256801 0.061310 0.042559 0.007517 0.136654 0.053503 0.010580 0.035429 0.170817 0.086133 0.005915 0.019690 0.102490 0.084220 0.204980 +0.381119 +0.025080 0.035580 0.051867 0.035103 0.018670 0.228390 0.010486 0.020686 0.083795 0.037013 0.042178 0.047222 0.037432 0.045559 0.046502 0.058319 0.046505 0.091240 0.050599 0.027697 0.054511 0.273307 0.084891 0.006881 0.037949 0.170817 0.062159 0.062558 0.061337 0.307471 0.058460 0.341634 +0.008632 +0.060421 0.059914 0.040772 0.037674 0.018372 0.220821 0.007397 0.030484 0.047015 0.051839 0.044123 0.093776 0.042213 0.035923 0.108870 0.079733 0.045836 0.038889 0.061595 0.054476 0.065692 0.204980 0.073656 0.024805 0.020433 0.204980 0.055115 0.051803 0.021187 0.204980 0.057401 0.239144 +0.134673 +0.003317 0.038176 0.052997 0.048217 0.043099 0.043489 0.052952 0.004573 0.037736 0.042667 0.017679 0.376219 0.058879 0.026129 0.040713 0.046067 0.023653 0.035559 0.053566 0.019870 0.066207 0.170817 0.067424 0.061087 0.046804 0.239144 0.100468 0.024892 0.023718 0.102490 0.092608 0.273307 +0.056677 +0.000791 0.060175 0.056885 0.076033 0.021310 0.136704 0.001173 0.032670 0.054009 0.084359 0.027076 0.216995 0.030401 0.046382 0.037066 0.038283 0.023398 0.273959 0.050420 0.067733 0.012338 0.136654 0.071026 0.001599 0.024827 0.273307 0.093941 0.034078 0.033695 0.273307 0.080731 0.307471 +0.127936 +0.005163 0.018975 0.079471 0.068716 0.048462 0.068574 0.054900 0.063058 0.097617 0.041660 0.040733 0.241536 0.003594 0.057493 0.129124 0.038322 0.026401 0.252495 0.043258 0.046983 0.064931 0.170817 0.094772 0.016600 0.008934 0.239144 0.090705 0.027436 0.005132 0.239144 0.054218 0.273307 +0.747012 +0.065149 0.061272 0.048268 0.043082 0.025782 0.095841 0.060407 0.056526 0.038280 0.050452 0.050491 0.310929 0.004752 0.017666 0.043937 0.200354 0.040408 0.140170 0.047339 0.024919 0.020960 0.170817 0.095407 0.066853 0.062710 0.170817 0.076206 0.030459 0.009700 0.239144 0.062119 0.273307 +0.079320 +0.004935 0.060615 0.034716 0.144715 0.048337 0.128826 0.059206 0.062851 0.051243 0.041917 0.020634 0.074394 0.040655 0.024877 0.104201 0.049934 0.041412 0.102456 0.047222 0.039616 0.062302 0.204980 0.098281 0.005912 0.061207 0.239144 0.087127 0.032226 0.002422 0.136654 0.090950 0.273307 +0.013848 +0.016032 0.051357 0.057752 0.051652 0.031394 0.183467 0.028315 0.028378 0.051351 0.054743 0.034389 0.062564 0.009123 0.024408 0.034729 0.038011 0.025398 0.303620 0.046248 0.059596 0.035484 0.102490 0.088633 0.019472 0.040288 0.204980 0.072457 0.032898 0.041450 0.136654 0.100061 0.273307 +0.277484 +0.050354 0.018868 0.087268 0.049764 0.026545 0.231938 0.061800 0.008187 0.161947 0.094000 0.024489 0.105311 0.067032 0.002256 0.089910 0.110202 0.044700 0.061464 0.050336 0.065531 0.032154 0.239144 0.071260 0.040837 0.054192 0.239144 0.051892 0.017791 0.004088 0.136654 0.086697 0.307471 +0.012900 +0.019781 0.062754 0.090873 0.036382 0.045603 0.156472 0.017897 0.027205 0.102553 0.085950 0.041032 0.271700 0.005360 0.049626 0.131290 0.040918 0.050781 0.108484 0.061870 0.001946 0.004160 0.136654 0.094639 0.049722 0.010790 0.102490 0.068955 0.061088 0.011865 0.239144 0.077502 0.307471 +0.128218 +0.029091 0.039907 0.043155 0.059427 0.045176 0.464571 0.054232 0.037705 0.057476 0.071652 0.029749 0.324131 0.045566 0.053964 0.046350 0.059781 0.041821 0.085390 0.050578 0.035841 0.063555 0.102490 0.078761 0.027332 0.044052 0.136654 0.083095 0.065482 0.049518 0.136654 0.053845 0.204980 +0.531580 +0.051289 0.007577 0.093047 0.035384 0.023884 0.051880 0.025898 0.063337 0.038452 0.071896 0.027807 0.043158 0.051426 0.026578 0.036955 0.065041 0.028574 0.202577 0.052735 0.002502 0.039327 0.239144 0.067946 0.031662 0.045017 0.170817 0.085295 0.045777 0.004553 0.273307 0.057815 0.341634 +0.012262 +0.062931 0.011970 0.111708 0.071250 0.029203 0.184353 0.020017 0.052340 0.122503 0.046526 0.050203 0.363164 0.066169 0.032110 0.035148 0.039949 0.045548 0.085671 0.045613 0.027677 0.021254 0.273307 0.089435 0.022588 0.052478 0.239144 0.083208 0.039439 0.044684 0.102490 0.052175 0.341634 +0.553100 +0.020579 0.043496 0.067391 0.037017 0.024751 0.056126 0.053751 0.054627 0.054083 0.054837 0.043401 0.054698 0.018378 0.054399 0.047589 0.124484 0.026036 0.089560 0.056959 0.027344 0.048036 0.102490 0.070582 0.038337 0.026747 0.170817 0.088298 0.015488 0.037882 0.239144 0.089229 0.273307 +0 +0.010227 0.020147 0.129007 0.042179 0.022737 0.063621 0.044113 0.033841 0.047759 0.047880 0.024799 0.040369 0.041176 0.023474 0.098131 0.038715 0.032312 0.092823 0.042445 0.041497 0.067243 0.136654 0.095297 0.066255 0.008628 0.136654 0.071946 0.009714 0.025409 0.102490 0.063987 0.239144 +0.001792 +0.060132 0.036377 0.056751 0.126736 0.027893 0.090819 0.025171 0.007914 0.037138 0.063161 0.042380 0.057392 0.024880 0.026850 0.061520 0.090588 0.040742 0.190249 0.049842 0.013906 0.056461 0.239144 0.060180 0.034415 0.036964 0.273307 0.077221 0.034568 0.002564 0.102490 0.078212 0.307471 +0.076108 +0.060416 0.038125 0.050108 0.125947 0.048142 0.109511 0.022134 0.056141 0.206953 0.034609 0.022617 0.162423 0.043479 0.015593 0.046525 0.101263 0.032413 0.036776 0.045859 0.066833 0.055690 0.204980 0.067096 0.039527 0.001727 0.273307 0.055450 0.038593 0.017902 0.102490 0.063957 0.341634 +0.007468 +0.038239 0.063623 0.103856 0.046463 0.041773 0.085768 0.027222 0.054295 0.192884 0.052226 0.017487 0.265191 0.055289 0.011040 0.059505 0.036351 0.033386 0.146371 0.064944 0.067691 0.045864 0.102490 0.101118 0.034021 0.006800 0.170817 0.063608 0.019631 0.027636 0.136654 0.090372 0.273307 +0.098551 +0.018499 0.058453 0.077046 0.043919 0.022019 0.066212 0.041655 0.007903 0.049238 0.072940 0.035510 0.127616 0.003073 0.016541 0.094160 0.043903 0.026669 0.129255 0.046244 0.023922 0.003172 0.239144 0.083855 0.043143 0.023304 0.239144 0.088441 0.038986 0.056823 0.204980 0.070330 0.273307 +0.100781 +0.023660 0.018599 0.044649 0.077219 0.043503 0.045487 0.051360 0.033142 0.038028 0.057165 0.023633 0.199479 0.034016 0.050175 0.059051 0.113164 0.026438 0.066907 0.061644 0.015607 0.052926 0.204980 0.096704 0.055340 0.035183 0.239144 0.064005 0.053054 0.051297 0.136654 0.073476 0.307471 +0.013541 +0.062783 0.029013 0.059547 0.045042 0.045346 0.082606 0.030466 0.066218 0.039487 0.038990 0.024970 0.105749 0.063586 0.000974 0.141386 0.071916 0.041895 0.477252 0.044966 0.048023 0.061666 0.136654 0.072055 0.023497 0.041815 0.136654 0.063242 0.036477 0.058496 0.102490 0.068689 0.204980 +0.599150 +0.021721 0.040223 0.039287 0.041003 0.039477 0.075175 0.014341 0.037769 0.120119 0.043276 0.049067 0.127451 0.001947 0.025980 0.042992 0.064022 0.034532 0.067861 0.041818 0.068250 0.039457 0.102490 0.097807 0.035532 0.060353 0.204980 0.067756 0.038641 0.036136 0.170817 0.061117 0.239144 +0.017635 +0.015266 0.044545 0.072908 0.046049 0.031357 0.064577 0.044484 0.044109 0.038046 0.092603 0.021671 0.138082 0.026047 0.031664 0.071677 0.077788 0.040705 0.141451 0.044066 0.064016 0.046793 0.204980 0.091181 0.052776 0.007864 0.136654 0.068437 0.000995 0.038242 0.204980 0.059177 0.307471 +0 +0.010807 0.052951 0.038958 0.042065 0.050618 0.248773 0.008644 0.067270 0.050057 0.050223 0.040496 0.268070 0.007935 0.052484 0.038194 0.060216 0.045070 0.074590 0.055951 0.046335 0.018552 0.170817 0.068889 0.064335 0.021674 0.136654 0.100547 0.045735 0.030834 0.170817 0.070930 0.204980 +0.414263 +0.017616 0.029459 0.065447 0.049023 0.032788 0.053034 0.001430 0.054909 0.063887 0.039981 0.044363 0.266532 0.000434 0.009484 0.041193 0.069341 0.035947 0.378468 0.048246 0.061024 0.035123 0.102490 0.062134 0.043973 0.005991 0.136654 0.072883 0.027580 0.053635 0.170817 0.099718 0.239144 +0.197816 +0.062938 0.000543 0.045710 0.043648 0.033822 0.043275 0.050709 0.025689 0.035187 0.054586 0.035151 0.125825 0.055085 0.030016 0.059351 0.060493 0.043488 0.261646 0.050167 0.009483 0.032018 0.170817 0.056926 0.033193 0.042758 0.239144 0.088542 0.050142 0.002404 0.204980 0.084119 0.307471 +0.046507 +0.047620 0.021786 0.052355 0.084629 0.032487 0.149685 0.008601 0.002429 0.114661 0.054965 0.030970 0.061930 0.061380 0.016253 0.063265 0.041963 0.037969 0.107212 0.040906 0.027300 0.046279 0.136654 0.054512 0.067173 0.041388 0.136654 0.060009 0.060682 0.030045 0.102490 0.087858 0.204980 +0.035068 +0.039818 0.031670 0.077592 0.038351 0.025320 0.068588 0.059163 0.059878 0.042298 0.123697 0.017523 0.165231 0.062018 0.055789 0.039657 0.040585 0.050538 0.066377 0.045504 0.008417 0.000641 0.136654 0.098888 0.056312 0.055425 0.204980 0.094202 0.038353 0.042100 0.102490 0.092216 0.273307 +0.014058 +0.054884 0.023265 0.040418 0.045066 0.049673 0.057369 0.067441 0.015787 0.058117 0.043386 0.033625 0.055448 0.056094 0.026898 0.054236 0.052390 0.033314 0.109415 0.040008 0.056420 0.056072 0.273307 0.084367 0.062586 0.035246 0.136654 0.092371 0.055884 0.065952 0.307471 0.066419 0.341634 +0 +0.016765 0.010796 0.086993 0.061421 0.037163 0.054494 0.033169 0.028527 0.066660 0.125933 0.025785 0.256139 0.062737 0.052522 0.081991 0.042139 0.028422 0.053798 0.054646 0.043437 0.021393 0.136654 0.068337 0.031087 0.021439 0.102490 0.102260 0.037409 0.003806 0.170817 0.092632 0.204980 +0.178219 +0.044452 0.031832 0.046490 0.055311 0.025014 0.039284 0.045154 0.027791 0.052601 0.049786 0.044929 0.055941 0.057061 0.003366 0.071566 0.048524 0.026284 0.237558 0.050201 0.033767 0.026338 0.136654 0.051684 0.049958 0.006529 0.239144 0.080772 0.008084 0.040831 0.239144 0.094747 0.273307 +0.006380 +0.000312 0.001436 0.218778 0.097167 0.044210 0.152976 0.063715 0.025543 0.042939 0.086719 0.033792 0.044974 0.035744 0.067874 0.062386 0.041393 0.047464 0.058990 0.050893 0.017325 0.058096 0.136654 0.082558 0.029860 0.063186 0.170817 0.073521 0.014510 0.058158 0.170817 0.081559 0.204980 +0 +0.042163 0.064505 0.048889 0.039249 0.037262 0.335309 0.010291 0.026969 0.067986 0.050510 0.031201 0.069381 0.063831 0.068239 0.054710 0.090562 0.023982 0.219149 0.050127 0.055668 0.064265 0.307471 0.056234 0.017299 0.037150 0.273307 0.096221 0.056840 0.038253 0.239144 0.074829 0.341634 +0.415655 +0.059018 0.039038 0.045879 0.093628 0.021724 0.035723 0.056168 0.024023 0.041530 0.131185 0.021040 0.237242 0.049273 0.025955 0.063019 0.037773 0.030612 0.072031 0.054891 0.012052 0.015371 0.136654 0.093098 0.018287 0.032599 0.239144 0.079272 0.048397 0.006065 0.102490 0.071753 0.307471 +0.011102 +0.066026 0.059913 0.043054 0.063944 0.044589 0.035035 0.062115 0.005965 0.071417 0.039328 0.033547 0.106925 0.030286 0.040969 0.191981 0.093666 0.034335 0.100395 0.052558 0.033213 0.045184 0.136654 0.054193 0.052870 0.007473 0.307471 0.088017 0.058622 0.043913 0.239144 0.091552 0.341634 +0.001947 +0.040274 0.026488 0.098614 0.114270 0.046007 0.039559 0.001187 0.039159 0.064773 0.064844 0.048501 0.166495 0.010630 0.027397 0.059007 0.044719 0.045927 0.069590 0.063331 0.028100 0.056467 0.136654 0.099099 0.031505 0.025791 0.136654 0.092775 0.065139 0.009922 0.204980 0.056725 0.273307 +0 +0.010678 0.042934 0.058391 0.041505 0.042462 0.090379 0.015674 0.049593 0.078437 0.040967 0.046400 0.285582 0.015881 0.009879 0.148726 0.073413 0.046273 0.127001 0.052523 0.041470 0.014725 0.102490 0.092890 0.031998 0.013739 0.170817 0.065441 0.007649 0.031008 0.170817 0.094763 0.204980 +0.408640 +0.017727 0.039690 0.048389 0.049178 0.018262 0.076258 0.033410 0.004160 0.040434 0.044589 0.018406 0.086766 0.038058 0.046737 0.049968 0.091353 0.033587 0.039286 0.050427 0.019329 0.028993 0.102490 0.084424 0.049989 0.041089 0.170817 0.055870 0.003438 0.038557 0.102490 0.080374 0.239144 +0 +0.018432 0.028459 0.039987 0.078164 0.019036 0.416743 0.000559 0.018493 0.064581 0.050087 0.042622 0.255669 0.047339 0.043817 0.064108 0.068784 0.049145 0.111611 0.048404 0.052238 0.037330 0.170817 0.058821 0.041972 0.000323 0.204980 0.070201 0.026462 0.062803 0.170817 0.089668 0.239144 +0.218011 +0.024379 0.009537 0.145946 0.084941 0.023968 0.086181 0.016295 0.035661 0.076386 0.067227 0.045272 0.051494 0.037700 0.012268 0.038349 0.058292 0.031010 0.102010 0.056135 0.026831 0.066067 0.170817 0.076090 0.044866 0.050986 0.102490 0.062129 0.005033 0.015914 0.102490 0.077641 0.273307 +0 +0.019126 0.044202 0.069211 0.052521 0.023925 0.035050 0.040536 0.064454 0.038291 0.043250 0.033460 0.087995 0.002761 0.066636 0.071406 0.051399 0.024297 0.188784 0.045512 0.009017 0.020547 0.239144 0.051836 0.039005 0.058768 0.204980 0.080225 0.034646 0.057602 0.102490 0.079493 0.307471 +0.006214 +0.029183 0.054394 0.114843 0.065117 0.041853 0.098915 0.060007 0.020755 0.037163 0.169236 0.049354 0.059900 0.020829 0.015572 0.111602 0.039124 0.030507 0.308921 0.061288 0.046359 0.003334 0.102490 0.058633 0.016193 0.027450 0.136654 0.068523 0.008380 0.051732 0.136654 0.072693 0.273307 +0.132244 +0.012317 0.040310 0.076930 0.035982 0.047035 0.049701 0.041238 0.004728 0.111888 0.120759 0.024299 0.156914 0.045865 0.036632 0.097578 0.093038 0.039012 0.086361 0.057405 0.047367 0.063332 0.204980 0.091839 0.006114 0.062545 0.136654 0.086094 0.014363 0.067740 0.102490 0.065972 0.239144 +0 +0.046645 0.010222 0.036661 0.035982 0.050502 0.095943 0.043158 0.055188 0.096376 0.078479 0.020785 0.083716 0.034173 0.061577 0.049536 0.091422 0.049692 0.079860 0.041070 0.037733 0.035570 0.136654 0.074179 0.033425 0.066406 0.273307 0.099947 0.040551 0.019356 0.102490 0.073935 0.341634 +0 +0.004314 0.002523 0.074125 0.041412 0.018914 0.065983 0.031182 0.031546 0.034350 0.041878 0.019128 0.035117 0.060318 0.007447 0.062302 0.058331 0.023384 0.096402 0.062604 0.025048 0.053720 0.136654 0.061838 0.011907 0.067821 0.102490 0.073671 0.012940 0.000647 0.170817 0.070372 0.204980 +0.033266 +0.055266 0.026168 0.051949 0.051758 0.040769 0.085841 0.008564 0.063969 0.054864 0.096551 0.031209 0.095778 0.051134 0.035725 0.089417 0.050692 0.029642 0.065657 0.046592 0.030216 0.067884 0.102490 0.058262 0.054958 0.031908 0.170817 0.082067 0.009209 0.032022 0.136654 0.075767 0.204980 +0.055054 +0.014297 0.046575 0.072053 0.100466 0.023570 0.061551 0.007357 0.009356 0.077738 0.084966 0.038887 0.080366 0.003522 0.002536 0.055503 0.044905 0.032931 0.157569 0.054848 0.026719 0.005281 0.102490 0.081121 0.011579 0.036715 0.102490 0.071343 0.036061 0.060043 0.170817 0.089972 0.273307 +0 +0.020130 0.050925 0.116047 0.121707 0.048635 0.087292 0.047256 0.032965 0.045238 0.052608 0.047397 0.136473 0.064154 0.014405 0.037535 0.043119 0.019243 0.047468 0.036584 0.003186 0.039231 0.136654 0.055096 0.049908 0.011308 0.136654 0.063605 0.033853 0.046087 0.136654 0.092218 0.204980 +0.032785 +0.048074 0.064993 0.046814 0.149996 0.038322 0.100104 0.027414 0.057813 0.135467 0.041330 0.024975 0.235913 0.013959 0.034029 0.115693 0.051423 0.037335 0.072122 0.047629 0.048269 0.042799 0.204980 0.056604 0.066513 0.038389 0.102490 0.064591 0.062408 0.007004 0.136654 0.061440 0.341634 +0.004800 +0.067817 0.029973 0.101061 0.189429 0.032948 0.202131 0.024891 0.027949 0.039036 0.034264 0.044163 0.188932 0.021450 0.063178 0.141940 0.058099 0.044844 0.154834 0.036169 0.022587 0.036492 0.239144 0.068164 0.033397 0.061085 0.102490 0.054751 0.058551 0.051330 0.136654 0.088270 0.307471 +0.578140 +0.000308 0.012699 0.083701 0.064399 0.028800 0.447571 0.030667 0.067208 0.077726 0.039029 0.017247 0.519584 0.064814 0.004658 0.049962 0.100303 0.038262 0.073955 0.040326 0.049704 0.041886 0.204980 0.094537 0.021087 0.066041 0.239144 0.065959 0.033160 0.041280 0.170817 0.064266 0.273307 +0.483018 +0.042670 0.021376 0.046132 0.067815 0.039325 0.230571 0.002970 0.020049 0.053428 0.046554 0.020023 0.040382 0.035164 0.029250 0.067683 0.036610 0.038906 0.104034 0.055421 0.054934 0.044749 0.136654 0.089157 0.039160 0.058242 0.136654 0.072039 0.030572 0.047896 0.102490 0.090349 0.239144 +0.006609 +0.016011 0.041723 0.120033 0.056144 0.047473 0.176833 0.002605 0.042410 0.049574 0.046286 0.049747 0.103574 0.017037 0.056256 0.055316 0.069140 0.026311 0.147424 0.061614 0.056473 0.032071 0.170817 0.061395 0.026555 0.027900 0.102490 0.070459 0.003125 0.002515 0.102490 0.065006 0.239144 +0.006164 +0.033515 0.016111 0.118980 0.053840 0.034358 0.120355 0.003387 0.022933 0.108328 0.063521 0.034426 0.156733 0.059784 0.030718 0.054192 0.220295 0.034307 0.204617 0.044886 0.032690 0.015755 0.102490 0.064275 0.025243 0.056915 0.136654 0.098069 0.054443 0.035545 0.170817 0.090501 0.273307 +0.426142 +0.056992 0.025605 0.041415 0.039341 0.017664 0.197645 0.055957 0.042946 0.048216 0.046324 0.028354 0.335375 0.010866 0.022539 0.114060 0.037434 0.036415 0.038485 0.061695 0.044817 0.025727 0.170817 0.082696 0.059303 0.015162 0.136654 0.095330 0.000425 0.019859 0.170817 0.063685 0.204980 +0.478805 +0.022345 0.047139 0.094941 0.087768 0.034407 0.050679 0.025680 0.014727 0.049918 0.040066 0.028602 0.204499 0.025729 0.050601 0.146700 0.037457 0.032211 0.051968 0.053093 0.028774 0.054964 0.102490 0.074560 0.025143 0.012389 0.136654 0.084564 0.033371 0.061950 0.170817 0.100483 0.239144 +0.010981 +0.000208 0.014178 0.147679 0.130486 0.045346 0.050636 0.038393 0.037784 0.040630 0.091067 0.047197 0.112583 0.016316 0.049146 0.050530 0.047253 0.046278 0.219182 0.058156 0.020899 0.054569 0.102490 0.096604 0.006733 0.052923 0.102490 0.097038 0.007024 0.038872 0.170817 0.096978 0.204980 +0.145397 +0.059267 0.047523 0.038850 0.057072 0.047073 0.123030 0.037827 0.025191 0.035641 0.214553 0.046312 0.284561 0.036183 0.058311 0.105212 0.068815 0.045706 0.063125 0.041425 0.018086 0.004238 0.170817 0.100120 0.033828 0.023230 0.102490 0.057309 0.022523 0.045751 0.136654 0.076947 0.204980 +0.177422 +0.060016 0.027859 0.097056 0.092144 0.024614 0.203671 0.001630 0.004095 0.057052 0.108322 0.024797 0.170431 0.045784 0.006137 0.061997 0.067310 0.024732 0.061424 0.052224 0.063139 0.015299 0.204980 0.085304 0.017287 0.057102 0.170817 0.071297 0.007642 0.055886 0.170817 0.100450 0.307471 +0.018487 +0.035109 0.010513 0.052430 0.049156 0.045613 0.175137 0.038503 0.004045 0.148498 0.038317 0.036071 0.129349 0.006536 0.005183 0.052232 0.072757 0.032514 0.226060 0.056331 0.052531 0.032359 0.204980 0.079307 0.057646 0.042228 0.102490 0.079560 0.018477 0.048061 0.136654 0.085710 0.239144 +0.022966 +0.037631 0.034247 0.061651 0.038320 0.046572 0.038827 0.042991 0.030597 0.035334 0.086755 0.037741 0.187950 0.048593 0.026032 0.049373 0.036577 0.028562 0.221757 0.050486 0.045309 0.056773 0.136654 0.085286 0.018171 0.048363 0.204980 0.079507 0.062804 0.055618 0.102490 0.081788 0.341634 +0.052687 +0.056145 0.018734 0.061138 0.035065 0.034981 0.064028 0.017066 0.003624 0.041999 0.083594 0.050460 0.151152 0.054367 0.012355 0.043830 0.047001 0.044149 0.067844 0.058763 0.001241 0.038248 0.170817 0.093475 0.040641 0.048943 0.102490 0.097523 0.031114 0.048764 0.239144 0.067246 0.273307 +0.056927 +0.035372 0.059346 0.118258 0.068279 0.025178 0.081087 0.046805 0.002174 0.064881 0.089075 0.042746 0.165131 0.041202 0.034083 0.047005 0.117784 0.047801 0.036486 0.052108 0.025506 0.046399 0.170817 0.089804 0.007136 0.064984 0.170817 0.093106 0.035704 0.056077 0.170817 0.090460 0.341634 +0 +0.011090 0.023856 0.082050 0.079695 0.040234 0.120454 0.039469 0.009673 0.046743 0.083871 0.020059 0.069861 0.030614 0.001880 0.049289 0.048664 0.019201 0.180443 0.041514 0.048612 0.044355 0.102490 0.078195 0.065811 0.054331 0.136654 0.082385 0.048407 0.033676 0.273307 0.055923 0.307471 +0.032331 +0.061045 0.063330 0.056026 0.036772 0.036551 0.081359 0.000341 0.009010 0.104299 0.052633 0.026230 0.263365 0.038312 0.026788 0.035184 0.073755 0.047264 0.045655 0.050047 0.031694 0.048237 0.136654 0.053273 0.059160 0.051058 0.204980 0.063611 0.027592 0.009974 0.170817 0.095101 0.273307 +0.065430 +0.016698 0.003342 0.050669 0.063309 0.023331 0.094642 0.048780 0.017046 0.073382 0.057007 0.048036 0.050281 0.056251 0.042110 0.062254 0.068702 0.025383 0.105585 0.049490 0.013845 0.007699 0.136654 0.073303 0.042179 0.036295 0.239144 0.062513 0.032942 0.016323 0.273307 0.083201 0.341634 +0.003005 +0.007245 0.021058 0.078864 0.058143 0.042083 0.549463 0.040707 0.044480 0.059582 0.042008 0.025531 0.101254 0.066978 0.028787 0.110599 0.057122 0.017432 0.061953 0.048504 0.028897 0.034210 0.102490 0.070649 0.026037 0.030136 0.136654 0.087849 0.014002 0.001790 0.102490 0.078129 0.204980 +0.018686 +0.040821 0.018141 0.038092 0.042181 0.044328 0.056291 0.062128 0.053453 0.035784 0.044207 0.042194 0.142797 0.063766 0.013544 0.073057 0.071183 0.032600 0.132724 0.050912 0.057502 0.045925 0.170817 0.061937 0.048309 0.034885 0.170817 0.060530 0.034623 0.008431 0.170817 0.051872 0.204980 +0.085066 +0.036732 0.049089 0.101664 0.134816 0.025391 0.057612 0.057036 0.042615 0.079417 0.099802 0.044043 0.102009 0.058001 0.050763 0.041932 0.035843 0.034831 0.126871 0.042597 0.067156 0.043367 0.204980 0.052387 0.024674 0.022522 0.204980 0.083558 0.040147 0.023451 0.239144 0.100821 0.341634 +0 +0.017082 0.040478 0.049282 0.064432 0.032669 0.178898 0.056082 0.005713 0.068257 0.039653 0.024000 0.086740 0.048814 0.034449 0.093007 0.091972 0.046829 0.046790 0.055992 0.040619 0.026594 0.102490 0.055204 0.029845 0.008794 0.102490 0.078531 0.023066 0.016861 0.239144 0.102406 0.273307 +0.032893 +0.051726 0.006721 0.200882 0.034962 0.035993 0.078664 0.019027 0.026872 0.040756 0.049412 0.043166 0.114633 0.065153 0.007354 0.101713 0.051182 0.034080 0.352458 0.057123 0.033577 0.023942 0.204980 0.092381 0.058701 0.018125 0.204980 0.087947 0.042637 0.029924 0.170817 0.064543 0.239144 +0.134568 +0.044392 0.064518 0.081258 0.054377 0.026348 0.246321 0.030698 0.054166 0.075364 0.044315 0.049305 0.172765 0.061948 0.014436 0.050620 0.058613 0.030621 0.102932 0.045946 0.041609 0.004242 0.136654 0.069365 0.005477 0.059075 0.307471 0.093077 0.030236 0.051197 0.273307 0.083941 0.341634 +0.121273 +0.012842 0.043785 0.050235 0.039246 0.027866 0.148862 0.014059 0.038271 0.082615 0.038794 0.022320 0.102006 0.001972 0.022764 0.035832 0.053761 0.037231 0.069534 0.048038 0.007714 0.054449 0.102490 0.090553 0.024432 0.014172 0.204980 0.052152 0.002571 0.067208 0.204980 0.098374 0.239144 +0.077436 +0.067599 0.014031 0.052829 0.089699 0.043736 0.220635 0.023036 0.001622 0.043273 0.129719 0.041259 0.109121 0.060003 0.001507 0.066823 0.093088 0.017408 0.039249 0.055956 0.011260 0.013743 0.170817 0.085284 0.035937 0.020453 0.170817 0.076161 0.053804 0.057165 0.204980 0.072039 0.307471 +0.010796 +0.064302 0.064231 0.036865 0.067095 0.032201 0.441423 0.007339 0.043722 0.036614 0.078189 0.038519 0.226433 0.006978 0.049411 0.081196 0.064696 0.025991 0.054120 0.040148 0.006998 0.056648 0.273307 0.069187 0.047911 0.030783 0.102490 0.099286 0.056772 0.065200 0.102490 0.053094 0.307471 +0.418318 +0.036123 0.068010 0.094863 0.088898 0.036380 0.043024 0.035710 0.067174 0.046762 0.035719 0.032515 0.196466 0.037102 0.012506 0.036494 0.146101 0.026648 0.036119 0.043708 0.022853 0.016250 0.170817 0.085264 0.059779 0.064713 0.102490 0.068815 0.040056 0.054555 0.204980 0.095135 0.341634 +0.007528 +0.004827 0.050095 0.073638 0.035729 0.027060 0.042029 0.062723 0.008379 0.054059 0.038232 0.047946 0.085066 0.018560 0.044283 0.041954 0.045693 0.028407 0.112330 0.058676 0.010237 0.037903 0.273307 0.080643 0.018936 0.043432 0.239144 0.083788 0.038075 0.035459 0.170817 0.069135 0.341634 +0.001243 +0.031597 0.012224 0.084489 0.072077 0.032853 0.085101 0.052747 0.031328 0.062101 0.100555 0.024333 0.210701 0.052865 0.032779 0.070988 0.077112 0.047224 0.078565 0.043396 0.003703 0.061066 0.170817 0.069111 0.016585 0.052398 0.136654 0.090691 0.037427 0.009403 0.136654 0.069960 0.204980 +0.056750 +0.045734 0.030721 0.053754 0.049091 0.033104 0.073431 0.060896 0.035222 0.150347 0.053169 0.017562 0.349749 0.015158 0.031370 0.124564 0.050122 0.025028 0.072837 0.047796 0.015690 0.032559 0.102490 0.077862 0.005449 0.018251 0.170817 0.052422 0.025923 0.031720 0.102490 0.094240 0.204980 +0.180809 +0.012061 0.016856 0.064873 0.063150 0.032163 0.050807 0.062139 0.042945 0.080833 0.037216 0.029445 0.169004 0.004819 0.064349 0.053071 0.095496 0.018218 0.368159 0.063858 0.011267 0.050100 0.307471 0.069690 0.047414 0.026155 0.239144 0.073224 0.053892 0.041653 0.136654 0.079065 0.341634 +0.147892 +0.063876 0.028060 0.073852 0.065737 0.029419 0.137448 0.048566 0.018308 0.054714 0.057139 0.031823 0.072971 0.029594 0.066316 0.037129 0.079853 0.040728 0.108862 0.049038 0.018193 0.041634 0.239144 0.059718 0.052275 0.056453 0.136654 0.093028 0.026991 0.005887 0.239144 0.052336 0.307471 +0.008059 +0.012317 0.007274 0.058642 0.038937 0.034979 0.390243 0.017937 0.015145 0.047099 0.067131 0.041221 0.183736 0.007269 0.016775 0.049045 0.120904 0.036527 0.201759 0.047196 0.037784 0.067162 0.273307 0.079007 0.039997 0.063108 0.204980 0.096133 0.052789 0.048920 0.273307 0.063980 0.307471 +0.384971 +0.003038 0.067946 0.037295 0.097533 0.018968 0.066993 0.016631 0.064519 0.099386 0.066902 0.029671 0.090266 0.032116 0.061234 0.097953 0.043514 0.021632 0.054994 0.039819 0.065034 0.031913 0.239144 0.064820 0.056030 0.023970 0.204980 0.087149 0.036349 0.007110 0.239144 0.077877 0.307471 +0.004565 +0.031030 0.013492 0.050103 0.036106 0.045183 0.062925 0.066711 0.053338 0.043169 0.050219 0.045408 0.339226 0.051347 0.045297 0.153491 0.082975 0.028027 0.067832 0.052218 0.050298 0.046083 0.102490 0.051718 0.035001 0.004428 0.102490 0.070902 0.012941 0.011167 0.204980 0.067449 0.239144 +0.794923 diff --git a/lib/ann/fann/datasets/bank32nh.train b/lib/ann/fann/datasets/bank32nh.train new file mode 100644 index 0000000..e5879c2 --- /dev/null +++ b/lib/ann/fann/datasets/bank32nh.train @@ -0,0 +1,4097 @@ +2048 32 1 +0.041385 0.006576 0.167692 0.075363 0.048670 0.081338 0.027502 0.035812 0.117908 0.052880 0.035259 0.039050 0.012906 0.059506 0.141135 0.073853 0.040651 0.059351 0.045122 0.038698 0.068139 0.170817 0.057613 0.029960 0.024704 0.204980 0.063894 0.027946 0.014046 0.239144 0.056749 0.273307 +0 +0.029983 0.038573 0.049452 0.048269 0.035186 0.071933 0.000567 0.029790 0.224569 0.062109 0.029656 0.044681 0.016858 0.001461 0.042776 0.039534 0.039522 0.073031 0.052229 0.033097 0.017552 0.170817 0.086845 0.042628 0.059940 0.136654 0.084974 0.056993 0.037996 0.102490 0.064163 0.204980 +0.001805 +0.005846 0.036063 0.052885 0.147584 0.043104 0.110746 0.038542 0.035144 0.082003 0.055107 0.040739 0.035361 0.043522 0.063313 0.046875 0.050541 0.050383 0.172951 0.048274 0.001410 0.030974 0.136654 0.099410 0.033967 0.056443 0.102490 0.077640 0.022408 0.062060 0.170817 0.082568 0.239144 +0.029275 +0.031940 0.016642 0.076949 0.058842 0.047049 0.092521 0.031244 0.036637 0.071069 0.040544 0.042722 0.186390 0.047916 0.068143 0.062912 0.071488 0.022598 0.205090 0.059585 0.043150 0.015770 0.273307 0.061215 0.014840 0.040292 0.170817 0.102203 0.055953 0.009302 0.239144 0.099813 0.307471 +0.068634 +0.028801 0.064921 0.066406 0.046362 0.050062 0.093157 0.066425 0.055731 0.080228 0.046788 0.043304 0.295657 0.028487 0.038227 0.058080 0.065293 0.022384 0.049576 0.051698 0.015832 0.009231 0.170817 0.081701 0.006039 0.041812 0.204980 0.075752 0.065862 0.016662 0.239144 0.079653 0.307471 +0.017020 +0.063143 0.043166 0.051170 0.061024 0.030543 0.039773 0.027895 0.058114 0.049773 0.112646 0.042466 0.041171 0.032627 0.061518 0.057630 0.107429 0.050951 0.117175 0.045523 0.042614 0.038986 0.170817 0.065602 0.032405 0.061080 0.239144 0.083211 0.047700 0.010696 0.102490 0.060609 0.341634 +0 +0.055417 0.060402 0.043954 0.067686 0.037113 0.243533 0.019293 0.033499 0.055930 0.035326 0.017503 0.051220 0.058149 0.028845 0.045747 0.049413 0.038104 0.115084 0.037619 0.028074 0.063235 0.102490 0.081543 0.065528 0.029386 0.136654 0.087184 0.017797 0.014560 0.102490 0.063555 0.307471 +0.478536 +0.025858 0.021592 0.071861 0.096391 0.033211 0.052684 0.050902 0.057011 0.058435 0.076419 0.025022 0.049295 0.006911 0.037358 0.065096 0.055200 0.047150 0.228138 0.043290 0.066127 0.000257 0.239144 0.098104 0.066434 0.045840 0.136654 0.090014 0.066125 0.051860 0.170817 0.099807 0.273307 +0.091562 +0.040827 0.024388 0.080146 0.086040 0.038871 0.041977 0.052652 0.023939 0.049881 0.178028 0.039942 0.071328 0.052322 0.042151 0.078484 0.176783 0.051023 0.106565 0.046948 0.054895 0.010689 0.239144 0.087524 0.063074 0.006708 0.239144 0.070818 0.006171 0.031381 0.102490 0.051341 0.341634 +0 +0.010607 0.058710 0.086929 0.077768 0.020060 0.037565 0.041140 0.038153 0.080551 0.042492 0.038558 0.118669 0.009412 0.045289 0.094073 0.049346 0.019859 0.055562 0.055828 0.053700 0.053632 0.102490 0.087903 0.011505 0.050867 0.170817 0.060252 0.029289 0.019077 0.307471 0.080024 0.341634 +0 +0.036197 0.039424 0.034735 0.048386 0.025720 0.034699 0.038214 0.009197 0.097288 0.153044 0.035920 0.038851 0.021787 0.003273 0.041640 0.072973 0.028497 0.080845 0.061746 0.061053 0.054975 0.102490 0.099894 0.027675 0.057244 0.239144 0.089118 0.059380 0.001114 0.102490 0.092993 0.273307 +0 +0.055129 0.013705 0.046470 0.044538 0.029765 0.090123 0.050212 0.000218 0.037182 0.042950 0.047400 0.074553 0.009464 0.014272 0.048458 0.087839 0.029635 0.187652 0.042691 0.060058 0.021048 0.102490 0.051591 0.048595 0.057521 0.170817 0.061861 0.065785 0.030705 0.136654 0.055739 0.239144 +0.825617 +0.042765 0.055102 0.034353 0.041128 0.028496 0.293176 0.057318 0.019772 0.112449 0.064406 0.019062 0.085794 0.035388 0.044196 0.060828 0.054199 0.032407 0.234630 0.045783 0.029639 0.065668 0.170817 0.091814 0.030066 0.000570 0.307471 0.089365 0.029558 0.012284 0.204980 0.053807 0.341634 +0.419221 +0.051725 0.057347 0.129472 0.036385 0.028852 0.077600 0.004999 0.057857 0.090859 0.090912 0.033794 0.163054 0.050272 0.058588 0.059940 0.050711 0.017943 0.046618 0.050641 0.057877 0.061356 0.136654 0.091242 0.032594 0.007669 0.273307 0.098572 0.002746 0.016840 0.239144 0.060719 0.307471 +0.033070 +0.001237 0.030350 0.071200 0.054246 0.028922 0.188245 0.020572 0.045934 0.039447 0.070511 0.020924 0.035875 0.049668 0.013534 0.062053 0.098845 0.020939 0.038091 0.040748 0.032417 0.066996 0.204980 0.058152 0.009451 0.038794 0.204980 0.094321 0.051318 0.026904 0.204980 0.094235 0.307471 +0 +0.055404 0.059270 0.217655 0.093682 0.041477 0.063320 0.027919 0.019795 0.062604 0.058670 0.022854 0.035659 0.020389 0.057568 0.108373 0.147888 0.019686 0.278748 0.059417 0.035754 0.011301 0.170817 0.071315 0.054122 0.046728 0.102490 0.051527 0.025417 0.031382 0.170817 0.073791 0.204980 +0.145214 +0.011983 0.041247 0.064963 0.087650 0.036004 0.056853 0.001326 0.037859 0.040685 0.038934 0.045767 0.372609 0.007489 0.000975 0.045756 0.111074 0.025597 0.136029 0.052181 0.064648 0.067741 0.204980 0.099189 0.023504 0.052434 0.307471 0.078871 0.062287 0.050766 0.170817 0.077432 0.341634 +0.112154 +0.050608 0.040182 0.189092 0.071589 0.040780 0.221719 0.000138 0.059366 0.054095 0.084815 0.045119 0.136198 0.066249 0.048261 0.039352 0.043220 0.030068 0.227433 0.053924 0.013399 0.023593 0.204980 0.101708 0.034979 0.005667 0.170817 0.064108 0.063671 0.010332 0.102490 0.078215 0.273307 +0.085147 +0.004743 0.053946 0.060281 0.036745 0.024736 0.206525 0.015905 0.060855 0.085359 0.079084 0.017111 0.083981 0.040096 0.004864 0.098198 0.079524 0.037828 0.191389 0.048383 0.057540 0.051030 0.170817 0.051386 0.031816 0.050324 0.102490 0.077300 0.055337 0.023971 0.102490 0.069271 0.341634 +0 +0.010198 0.027533 0.055109 0.037132 0.024560 0.234768 0.001909 0.049325 0.068686 0.082693 0.024824 0.074201 0.060013 0.023506 0.083773 0.099447 0.040425 0.057940 0.050785 0.000468 0.024424 0.170817 0.069461 0.013574 0.027483 0.102490 0.080339 0.027030 0.044184 0.273307 0.081476 0.307471 +0.062053 +0.019937 0.005280 0.048989 0.057145 0.030898 0.281771 0.013440 0.026816 0.075728 0.039715 0.038772 0.113185 0.036343 0.001596 0.038169 0.053826 0.050535 0.069820 0.062454 0.058440 0.051212 0.136654 0.098801 0.024327 0.009656 0.136654 0.079313 0.048547 0.054549 0.102490 0.077246 0.273307 +0.124215 +0.056148 0.034947 0.038707 0.034464 0.039829 0.121714 0.028997 0.047418 0.071819 0.114138 0.017500 0.387676 0.011706 0.063983 0.082183 0.053861 0.030997 0.162340 0.044850 0.013159 0.067855 0.136654 0.079943 0.057976 0.060548 0.204980 0.081327 0.035600 0.027251 0.102490 0.063713 0.273307 +0.096259 +0.039875 0.050388 0.054870 0.100113 0.048451 0.088107 0.021345 0.063495 0.075550 0.057380 0.032238 0.050994 0.019418 0.055589 0.036444 0.038866 0.051048 0.165336 0.055952 0.021362 0.040995 0.136654 0.069441 0.045868 0.026363 0.170817 0.098561 0.061342 0.034293 0.136654 0.092188 0.239144 +0 +0.021394 0.008872 0.059412 0.037736 0.028476 0.192509 0.032535 0.035854 0.057169 0.037529 0.048317 0.123047 0.055279 0.047675 0.071161 0.035469 0.042992 0.042754 0.051280 0.062754 0.040524 0.170817 0.090852 0.065378 0.033362 0.204980 0.057138 0.050379 0.059451 0.204980 0.074669 0.273307 +0.158143 +0.022137 0.039358 0.168201 0.046404 0.027338 0.099637 0.040048 0.026970 0.042897 0.043988 0.049425 0.058747 0.030756 0.018644 0.046379 0.055940 0.039763 0.118732 0.041234 0.007471 0.015449 0.170817 0.094286 0.047215 0.055642 0.204980 0.065123 0.000311 0.060575 0.170817 0.052226 0.273307 +0 +0.009706 0.059535 0.171223 0.041745 0.020407 0.139439 0.059271 0.030029 0.076442 0.034380 0.040085 0.155805 0.031689 0.057900 0.194011 0.093262 0.020146 0.252384 0.059770 0.049501 0.036347 0.239144 0.061628 0.055159 0.044723 0.204980 0.062542 0.010849 0.059252 0.204980 0.080443 0.273307 +0.138182 +0.062722 0.029556 0.046745 0.115125 0.044860 0.086082 0.032695 0.050484 0.058569 0.059601 0.025335 0.079663 0.010160 0.065502 0.034773 0.046992 0.026826 0.113451 0.050239 0.038076 0.010854 0.273307 0.078625 0.018725 0.030302 0.307471 0.074885 0.043630 0.051989 0.273307 0.100312 0.341634 +0 +0.035683 0.000473 0.035463 0.076391 0.040925 0.063141 0.024990 0.024276 0.049983 0.035108 0.045923 0.062941 0.023073 0.046521 0.045678 0.066835 0.023144 0.034294 0.048154 0.034107 0.051811 0.204980 0.094401 0.036268 0.012029 0.204980 0.075811 0.032181 0.055908 0.239144 0.065796 0.341634 +0 +0.029134 0.067694 0.156322 0.034340 0.033434 0.041377 0.063988 0.036891 0.063631 0.062094 0.048171 0.174795 0.041184 0.018684 0.084491 0.121829 0.018535 0.080968 0.064409 0.045102 0.005750 0.136654 0.070270 0.051751 0.026393 0.136654 0.061213 0.011752 0.014345 0.136654 0.053432 0.204980 +0.011965 +0.005960 0.048074 0.065870 0.038426 0.049191 0.056015 0.028341 0.015523 0.034522 0.043519 0.036859 0.067331 0.016581 0.010608 0.062759 0.068218 0.049769 0.088097 0.066227 0.005992 0.066879 0.307471 0.062464 0.022631 0.023355 0.204980 0.076792 0.034016 0.017197 0.170817 0.067444 0.341634 +0 +0.014915 0.009055 0.043906 0.036128 0.035691 0.090850 0.026397 0.058701 0.041967 0.105319 0.030464 0.090130 0.060543 0.005137 0.038704 0.038703 0.051057 0.057418 0.058410 0.015724 0.017838 0.273307 0.062994 0.057811 0.017115 0.239144 0.067850 0.061458 0.041212 0.102490 0.054937 0.341634 +0 +0.010893 0.046317 0.044711 0.046305 0.042207 0.101595 0.008277 0.002961 0.181259 0.040554 0.022160 0.070942 0.061111 0.051593 0.038903 0.090283 0.038532 0.241342 0.057358 0.002213 0.067161 0.136654 0.092461 0.055690 0.064433 0.170817 0.087765 0.041949 0.041379 0.102490 0.080784 0.204980 +0.089348 +0.022990 0.032707 0.054252 0.064588 0.028410 0.079923 0.055600 0.044396 0.074802 0.069146 0.019863 0.107286 0.009360 0.009727 0.051569 0.036126 0.019591 0.076820 0.060540 0.018534 0.036098 0.204980 0.056816 0.013445 0.043854 0.170817 0.075279 0.041959 0.046358 0.170817 0.091128 0.239144 +0.019245 +0.035575 0.062940 0.100846 0.060422 0.039143 0.318146 0.001419 0.015676 0.066980 0.045887 0.047434 0.040715 0.040554 0.056426 0.072010 0.037613 0.038329 0.087202 0.052014 0.011762 0.030195 0.204980 0.092924 0.057997 0.056676 0.204980 0.062348 0.048087 0.053437 0.102490 0.073638 0.239144 +0.229797 +0.000799 0.037634 0.071174 0.111332 0.038118 0.178249 0.048365 0.066639 0.041765 0.184513 0.036945 0.096907 0.046542 0.053685 0.035115 0.049800 0.021949 0.079951 0.049464 0.066842 0.008169 0.273307 0.092117 0.042743 0.052415 0.239144 0.092231 0.006630 0.014801 0.307471 0.094709 0.341634 +0.088821 +0.067352 0.061017 0.036387 0.040180 0.040089 0.042569 0.028136 0.052126 0.042996 0.224523 0.040624 0.516635 0.006350 0.022303 0.039792 0.065171 0.032162 0.074206 0.054891 0.008485 0.010474 0.170817 0.056716 0.003482 0.059133 0.170817 0.087333 0.050045 0.067657 0.102490 0.053073 0.204980 +0.692279 +0.026212 0.066347 0.044468 0.060878 0.035807 0.056827 0.063422 0.022403 0.066130 0.063114 0.024588 0.087049 0.026534 0.015475 0.046216 0.093564 0.032781 0.077552 0.054625 0.065968 0.042172 0.136654 0.091131 0.036298 0.063416 0.204980 0.087157 0.032843 0.063315 0.170817 0.087457 0.239144 +0 +0.057619 0.033303 0.053900 0.048685 0.049000 0.088596 0.005493 0.026139 0.069767 0.055259 0.027749 0.077847 0.032330 0.028113 0.077120 0.116882 0.024557 0.148201 0.051626 0.003031 0.029050 0.136654 0.081738 0.014775 0.031019 0.204980 0.076621 0.017985 0.058290 0.204980 0.097574 0.239144 +0.075179 +0.037959 0.037906 0.061191 0.046951 0.036182 0.128914 0.009932 0.048793 0.045571 0.040397 0.038212 0.163764 0.062660 0.029882 0.042270 0.090994 0.024876 0.225382 0.056733 0.009420 0.038745 0.204980 0.088345 0.049656 0.012844 0.170817 0.078363 0.047334 0.035205 0.136654 0.102099 0.239144 +0.086020 +0.046852 0.021956 0.106575 0.040847 0.041718 0.070654 0.020354 0.006709 0.094257 0.059157 0.024972 0.056966 0.002780 0.059551 0.073155 0.054990 0.043658 0.204683 0.058492 0.064266 0.010135 0.136654 0.094521 0.046975 0.028725 0.102490 0.084782 0.054899 0.050007 0.170817 0.058137 0.204980 +0.069315 +0.009064 0.026606 0.072593 0.038597 0.048100 0.160027 0.023939 0.068207 0.064411 0.101580 0.018346 0.061982 0.030171 0.036556 0.044129 0.064547 0.020930 0.163083 0.041098 0.046715 0.056503 0.136654 0.067075 0.042030 0.031902 0.239144 0.053806 0.066222 0.003859 0.102490 0.097384 0.307471 +0.017799 +0.058459 0.057693 0.074958 0.046577 0.045745 0.055066 0.019397 0.005667 0.122752 0.132260 0.044917 0.222008 0.065758 0.059153 0.037149 0.053710 0.040013 0.047061 0.047059 0.038953 0.041229 0.204980 0.068812 0.031904 0.031078 0.170817 0.081312 0.008338 0.054467 0.136654 0.076640 0.239144 +0.005417 +0.064040 0.056040 0.058656 0.049363 0.019398 0.104055 0.065681 0.000694 0.044884 0.037366 0.040902 0.181884 0.019655 0.059387 0.082357 0.077328 0.030687 0.213730 0.057911 0.065487 0.000515 0.136654 0.085573 0.017156 0.054791 0.273307 0.096789 0.027106 0.027683 0.204980 0.096630 0.341634 +0.017388 +0.067131 0.017630 0.052982 0.042303 0.027645 0.096773 0.051043 0.035566 0.052006 0.059868 0.040691 0.278712 0.029910 0.064534 0.034886 0.118258 0.021318 0.047517 0.055063 0.056079 0.001385 0.102490 0.090126 0.028448 0.019913 0.136654 0.098336 0.001664 0.046016 0.136654 0.059042 0.204980 +0.296067 +0.037825 0.043137 0.140453 0.042121 0.035225 0.300514 0.012200 0.052104 0.105406 0.081988 0.037833 0.080301 0.011435 0.036846 0.068940 0.062372 0.028720 0.222971 0.055153 0.037621 0.035617 0.102490 0.083835 0.018580 0.022532 0.136654 0.097927 0.050386 0.057968 0.102490 0.086114 0.239144 +0.010622 +0.050834 0.018415 0.074531 0.037812 0.018228 0.208624 0.030731 0.057010 0.040241 0.067325 0.039760 0.069342 0.038609 0.000782 0.042150 0.071901 0.029622 0.095956 0.058726 0.010906 0.028921 0.170817 0.082200 0.046576 0.028883 0.170817 0.079777 0.029238 0.040083 0.204980 0.065500 0.273307 +0.030454 +0.000873 0.010754 0.050657 0.037643 0.023773 0.057233 0.022709 0.023855 0.080946 0.073609 0.038939 0.155437 0.029988 0.018491 0.038737 0.077558 0.042674 0.128622 0.044479 0.054722 0.059476 0.239144 0.072372 0.003874 0.032378 0.136654 0.060800 0.027857 0.062648 0.273307 0.094686 0.341634 +0.000808 +0.055055 0.005261 0.111116 0.057105 0.046911 0.097958 0.066063 0.027560 0.102575 0.119542 0.022787 0.059219 0.012597 0.011964 0.115168 0.046219 0.038564 0.090053 0.045038 0.005739 0.043851 0.239144 0.097445 0.063273 0.058679 0.102490 0.095161 0.043592 0.031219 0.204980 0.059070 0.307471 +0 +0.057186 0.022053 0.224637 0.037729 0.035901 0.042996 0.046406 0.042360 0.045767 0.047949 0.029347 0.195576 0.022908 0.065331 0.092397 0.061892 0.050614 0.202123 0.053268 0.000329 0.065699 0.102490 0.057628 0.056396 0.021413 0.102490 0.086755 0.049440 0.060951 0.102490 0.093684 0.204980 +0.020460 +0.042035 0.007981 0.044566 0.092617 0.026486 0.131637 0.026661 0.035361 0.092070 0.086037 0.027881 0.089846 0.034299 0.006722 0.098356 0.073727 0.042914 0.122103 0.060441 0.050655 0.065562 0.170817 0.085904 0.048904 0.027032 0.239144 0.077002 0.057228 0.038835 0.204980 0.072169 0.307471 +0.010100 +0.031470 0.045354 0.087010 0.040393 0.046143 0.078804 0.066391 0.011010 0.057848 0.052710 0.046309 0.045296 0.021656 0.055066 0.041646 0.045056 0.035160 0.229095 0.039125 0.065476 0.003933 0.273307 0.054524 0.033608 0.004776 0.136654 0.079449 0.021087 0.064761 0.136654 0.086849 0.307471 +0.025443 +0.050636 0.027585 0.114057 0.038528 0.034838 0.103232 0.064746 0.046416 0.047382 0.068794 0.022787 0.044718 0.021242 0.066101 0.131107 0.067041 0.042345 0.071831 0.059698 0.054847 0.007709 0.136654 0.079148 0.022595 0.043045 0.170817 0.059210 0.050752 0.023142 0.136654 0.087936 0.204980 +0.015662 +0.054218 0.040683 0.132161 0.050102 0.038309 0.041549 0.050191 0.021173 0.050955 0.070638 0.031335 0.051003 0.026262 0.063785 0.039421 0.037589 0.024351 0.112337 0.045300 0.000481 0.044092 0.204980 0.100342 0.060336 0.037363 0.170817 0.059321 0.032461 0.060208 0.136654 0.051544 0.273307 +0 +0.058226 0.015060 0.109340 0.050586 0.020052 0.092995 0.063890 0.016363 0.078254 0.057557 0.027832 0.135451 0.009549 0.067783 0.042558 0.054997 0.030636 0.100201 0.046000 0.033623 0.017129 0.307471 0.062649 0.018582 0.035581 0.170817 0.086074 0.038201 0.017696 0.273307 0.081789 0.341634 +0.034462 +0.054893 0.020588 0.064721 0.069354 0.039339 0.063519 0.036888 0.056840 0.090276 0.050840 0.044703 0.188019 0.068053 0.036585 0.062100 0.075894 0.027541 0.111957 0.041083 0.058997 0.015234 0.102490 0.082981 0.053706 0.054732 0.136654 0.078149 0.000341 0.027494 0.136654 0.060040 0.341634 +0 +0.042964 0.042823 0.084229 0.060965 0.019166 0.239650 0.008870 0.051905 0.039097 0.075982 0.046656 0.129838 0.022285 0.064452 0.035333 0.049304 0.036884 0.062968 0.041616 0.031759 0.062772 0.170817 0.055822 0.033402 0.037504 0.102490 0.076157 0.023831 0.063082 0.102490 0.095825 0.273307 +0.008781 +0.061729 0.064915 0.159744 0.134175 0.032036 0.192185 0.010616 0.020249 0.078284 0.062461 0.046101 0.188889 0.047979 0.014876 0.057728 0.035506 0.031706 0.075376 0.063861 0.031414 0.049244 0.170817 0.085099 0.035706 0.001796 0.136654 0.065151 0.030952 0.048938 0.102490 0.082631 0.273307 +0.009434 +0.027280 0.021291 0.061819 0.038398 0.037611 0.243483 0.022639 0.026628 0.037284 0.142586 0.039843 0.060259 0.013192 0.059684 0.164609 0.042760 0.021496 0.056319 0.056019 0.041281 0.048563 0.136654 0.075938 0.000943 0.017910 0.170817 0.078034 0.020281 0.000079 0.136654 0.051917 0.204980 +0.093216 +0.034787 0.023401 0.066164 0.074810 0.031588 0.060890 0.028114 0.010308 0.142679 0.050848 0.037716 0.095102 0.016799 0.058424 0.037252 0.058925 0.019839 0.094928 0.060371 0.043497 0.061210 0.102490 0.070276 0.048754 0.047438 0.170817 0.057886 0.044891 0.058818 0.170817 0.099223 0.341634 +0 +0.003737 0.026256 0.170420 0.170202 0.038345 0.433889 0.051961 0.057322 0.039143 0.056877 0.044922 0.127427 0.009412 0.004381 0.072025 0.052790 0.022190 0.069889 0.057912 0.031429 0.031257 0.204980 0.074081 0.009707 0.066838 0.136654 0.059425 0.017330 0.044964 0.136654 0.078554 0.273307 +0.313936 +0.015508 0.057618 0.071803 0.048130 0.030839 0.205352 0.045583 0.051502 0.073936 0.072068 0.017272 0.203646 0.055656 0.051205 0.076909 0.043016 0.033210 0.047485 0.046042 0.016080 0.006186 0.136654 0.064241 0.047444 0.001263 0.170817 0.080429 0.052836 0.037416 0.102490 0.100433 0.239144 +0.216878 +0.037370 0.021711 0.065067 0.049369 0.032757 0.138494 0.045964 0.015657 0.060023 0.094066 0.029903 0.155069 0.022718 0.020837 0.107611 0.048616 0.046182 0.144689 0.060090 0.011034 0.028476 0.102490 0.065508 0.022215 0.012525 0.170817 0.083774 0.011706 0.050044 0.239144 0.076895 0.273307 +0.132198 +0.028253 0.003671 0.041739 0.056657 0.023012 0.044699 0.000717 0.020101 0.128482 0.106506 0.043148 0.164870 0.067275 0.044574 0.074520 0.134040 0.025330 0.246834 0.045894 0.058989 0.059852 0.170817 0.057451 0.055023 0.063818 0.102490 0.074743 0.007047 0.039019 0.273307 0.057153 0.307471 +0.047901 +0.016698 0.056470 0.043503 0.076825 0.034510 0.067279 0.040112 0.005671 0.090147 0.099234 0.043116 0.043052 0.068018 0.067997 0.035318 0.034627 0.028992 0.051125 0.048670 0.043831 0.018494 0.170817 0.091169 0.064943 0.063499 0.102490 0.064818 0.017715 0.011662 0.102490 0.096448 0.204980 +0 +0.029289 0.021337 0.069573 0.119865 0.036948 0.167932 0.032658 0.004106 0.046566 0.034820 0.045071 0.206215 0.061192 0.046604 0.062534 0.038676 0.034426 0.036591 0.041843 0.051070 0.047153 0.204980 0.094276 0.038785 0.057834 0.239144 0.069308 0.012764 0.022439 0.102490 0.054171 0.341634 +0 +0.065226 0.002774 0.088488 0.085591 0.031136 0.099299 0.017530 0.044439 0.044107 0.048644 0.019895 0.045421 0.012560 0.025887 0.054591 0.126629 0.022422 0.501512 0.055736 0.048284 0.065926 0.102490 0.081406 0.006791 0.023222 0.204980 0.094853 0.056817 0.006927 0.239144 0.051764 0.273307 +0.032416 +0.035540 0.039295 0.037337 0.046581 0.042068 0.866564 0.052148 0.047594 0.042032 0.075895 0.024114 0.081403 0.062334 0.055911 0.043813 0.111466 0.033914 0.060768 0.061344 0.023614 0.020355 0.136654 0.093897 0.018996 0.055404 0.102490 0.069998 0.047825 0.036891 0.136654 0.075743 0.204980 +0.309397 +0.019947 0.057912 0.119573 0.095222 0.051063 0.104532 0.055247 0.065697 0.058364 0.052433 0.029082 0.118670 0.006740 0.058077 0.114008 0.041993 0.029935 0.173573 0.054894 0.016629 0.045227 0.102490 0.093684 0.018609 0.064874 0.273307 0.101472 0.025993 0.020950 0.136654 0.070417 0.341634 +0.013437 +0.022473 0.043824 0.040516 0.056212 0.036466 0.080326 0.006554 0.020380 0.112623 0.035977 0.027495 0.061887 0.011157 0.064273 0.055152 0.063549 0.024722 0.081175 0.054657 0.059756 0.041978 0.136654 0.064361 0.036035 0.051693 0.273307 0.083147 0.030266 0.044268 0.136654 0.084501 0.341634 +0 +0.021813 0.021440 0.041384 0.067973 0.038086 0.159550 0.037153 0.023199 0.059830 0.038533 0.030824 0.055257 0.033551 0.033678 0.044573 0.140662 0.041085 0.164872 0.054723 0.063074 0.036296 0.273307 0.094234 0.047765 0.059505 0.170817 0.057094 0.051595 0.038249 0.170817 0.056002 0.307471 +0.004407 +0.050146 0.041293 0.101472 0.063657 0.021825 0.076342 0.027181 0.048113 0.109028 0.054389 0.031679 0.159919 0.036471 0.043854 0.081436 0.049076 0.026937 0.110689 0.037311 0.067215 0.044853 0.136654 0.075147 0.015149 0.011477 0.239144 0.090384 0.007381 0.039615 0.239144 0.065785 0.273307 +0.034822 +0.055528 0.026777 0.047063 0.060189 0.041230 0.074559 0.021231 0.015177 0.067770 0.051343 0.049483 0.125567 0.041609 0.062244 0.062569 0.066110 0.045186 0.185342 0.054112 0.039595 0.024117 0.204980 0.098220 0.010701 0.064705 0.136654 0.085655 0.024122 0.014183 0.204980 0.090979 0.239144 +0.126520 +0.055459 0.023092 0.056579 0.070777 0.031742 0.042938 0.032780 0.004764 0.069942 0.059023 0.046996 0.047772 0.019074 0.042170 0.078460 0.043881 0.032834 0.077046 0.051056 0.016095 0.026650 0.170817 0.066428 0.033621 0.000910 0.170817 0.080259 0.060719 0.042802 0.170817 0.065656 0.239144 +0 +0.013123 0.008483 0.199413 0.076578 0.039147 0.042784 0.007979 0.036962 0.080121 0.055456 0.022492 0.053241 0.055404 0.061669 0.071714 0.141121 0.020931 0.057867 0.057680 0.035426 0.017574 0.102490 0.076347 0.008421 0.039219 0.239144 0.057659 0.051986 0.064332 0.204980 0.059048 0.307471 +0 +0.038592 0.049879 0.059416 0.050640 0.039746 0.175256 0.051708 0.017174 0.102572 0.040268 0.049934 0.094023 0.033209 0.054477 0.124298 0.060869 0.043972 0.096499 0.051904 0.003485 0.026262 0.102490 0.070705 0.023350 0.041514 0.204980 0.053910 0.049627 0.030057 0.170817 0.078437 0.239144 +0.022178 +0.048854 0.012561 0.036941 0.039852 0.035247 0.078228 0.056690 0.063662 0.045772 0.068194 0.047177 0.173037 0.042301 0.009181 0.070514 0.057214 0.039093 0.143923 0.064330 0.031829 0.064314 0.273307 0.091851 0.016740 0.018906 0.239144 0.092263 0.035726 0.040236 0.204980 0.075510 0.341634 +0.014358 +0.055866 0.060368 0.079971 0.039964 0.018124 0.491063 0.041480 0.048073 0.061008 0.125716 0.018960 0.042421 0.046710 0.007999 0.038082 0.077220 0.021054 0.137690 0.038528 0.022030 0.043349 0.239144 0.067091 0.011489 0.022602 0.239144 0.076153 0.049466 0.063839 0.204980 0.063154 0.273307 +0.650603 +0.020577 0.014737 0.085242 0.078580 0.033642 0.164577 0.022336 0.024545 0.049516 0.079878 0.050997 0.072162 0.004378 0.004041 0.036878 0.037041 0.046131 0.212158 0.064093 0.006261 0.036194 0.102490 0.083314 0.015843 0.047987 0.102490 0.068230 0.056007 0.009431 0.170817 0.083606 0.239144 +0.015417 +0.060060 0.035147 0.039719 0.083276 0.021781 0.119313 0.002190 0.041580 0.074129 0.039822 0.024919 0.218057 0.042179 0.003125 0.068934 0.042973 0.042758 0.290684 0.042417 0.012482 0.064395 0.102490 0.093858 0.068249 0.017849 0.204980 0.080780 0.056512 0.007368 0.136654 0.083720 0.239144 +0.262384 +0.044177 0.006677 0.050286 0.041616 0.048863 0.119941 0.007011 0.064407 0.039682 0.102360 0.045839 0.074513 0.037775 0.067074 0.070149 0.043839 0.024252 0.125454 0.047961 0.001463 0.017417 0.204980 0.083402 0.052875 0.042891 0.273307 0.057012 0.060619 0.052847 0.307471 0.075829 0.341634 +0.001816 +0.012887 0.018181 0.069695 0.055220 0.046190 0.336459 0.019020 0.061093 0.057415 0.055302 0.046557 0.089132 0.042711 0.008299 0.046037 0.092107 0.038810 0.090493 0.038133 0.056792 0.007340 0.307471 0.096848 0.015275 0.028627 0.307471 0.053120 0.006023 0.015112 0.102490 0.074864 0.341634 +0.482245 +0.023377 0.029154 0.125881 0.038609 0.020253 0.253296 0.038428 0.022993 0.041503 0.070734 0.035713 0.036613 0.041864 0.008378 0.043805 0.039839 0.021626 0.043823 0.051293 0.007240 0.035227 0.273307 0.051759 0.061402 0.032318 0.204980 0.095547 0.020932 0.048265 0.204980 0.055629 0.341634 +0.000984 +0.015028 0.063736 0.056356 0.093274 0.038105 0.204351 0.054950 0.033847 0.101223 0.079919 0.038674 0.124364 0.000518 0.052697 0.063585 0.121026 0.049690 0.037901 0.057586 0.003511 0.022237 0.136654 0.101252 0.035227 0.007850 0.102490 0.074063 0.056880 0.063332 0.204980 0.079455 0.239144 +0.087710 +0.025906 0.042347 0.058365 0.042297 0.018784 0.112437 0.043862 0.028608 0.102864 0.035435 0.021406 0.182301 0.042128 0.026951 0.108690 0.035390 0.028764 0.049830 0.046371 0.027098 0.030925 0.170817 0.074343 0.067755 0.060233 0.170817 0.095891 0.068076 0.025182 0.204980 0.079573 0.307471 +0.186055 +0.051499 0.060941 0.049522 0.162649 0.022910 0.074550 0.032976 0.066916 0.043428 0.039916 0.019384 0.051515 0.037843 0.003473 0.047473 0.081299 0.024379 0.081062 0.040944 0.031843 0.061619 0.204980 0.087571 0.040063 0.055530 0.102490 0.101799 0.022180 0.002447 0.204980 0.055063 0.239144 +0.017020 +0.017279 0.006398 0.050074 0.062031 0.017816 0.053001 0.017472 0.039468 0.098127 0.058230 0.039840 0.261208 0.016216 0.006930 0.077928 0.036811 0.024187 0.180021 0.061644 0.009982 0.021558 0.170817 0.089415 0.063684 0.013647 0.204980 0.058736 0.017128 0.013885 0.170817 0.066436 0.273307 +0.027016 +0.048229 0.060623 0.130627 0.060528 0.050989 0.082251 0.028219 0.032669 0.042443 0.046122 0.033186 0.107727 0.007537 0.057275 0.099861 0.045786 0.045839 0.100445 0.051161 0.043334 0.031267 0.102490 0.057286 0.003099 0.007257 0.239144 0.083987 0.064745 0.055207 0.136654 0.085607 0.273307 +0.016416 +0.025140 0.050388 0.055923 0.068257 0.020128 0.407740 0.034272 0.001766 0.047078 0.154203 0.023535 0.072956 0.009551 0.056525 0.060197 0.059688 0.026021 0.065549 0.051266 0.056927 0.011880 0.204980 0.087187 0.005188 0.010909 0.170817 0.083602 0.016168 0.035540 0.102490 0.092995 0.239144 +0.370211 +0.035280 0.032806 0.072709 0.135076 0.017227 0.034231 0.007358 0.064923 0.041824 0.049834 0.028911 0.099640 0.064105 0.063741 0.087656 0.068866 0.035122 0.109224 0.049144 0.027005 0.033737 0.170817 0.084660 0.039910 0.058292 0.136654 0.069562 0.037329 0.017807 0.170817 0.088198 0.239144 +0 +0.019522 0.058170 0.054578 0.048356 0.039227 0.412791 0.045786 0.059021 0.050135 0.041159 0.019352 0.095366 0.032434 0.066657 0.071777 0.073220 0.048070 0.233893 0.049746 0.066223 0.040099 0.170817 0.071725 0.027207 0.028478 0.136654 0.063079 0.051165 0.016729 0.102490 0.057009 0.239144 +0.177422 +0.007555 0.041332 0.067015 0.062889 0.047989 0.187009 0.010553 0.010346 0.083662 0.168696 0.017265 0.215054 0.011074 0.041099 0.058157 0.067479 0.027618 0.112831 0.049415 0.044739 0.028509 0.102490 0.057675 0.026127 0.060639 0.170817 0.096103 0.032676 0.014083 0.239144 0.084947 0.307471 +0.108424 +0.027128 0.058612 0.038433 0.129420 0.030751 0.452175 0.049924 0.063594 0.077837 0.036955 0.017726 0.150986 0.027916 0.034840 0.052462 0.075645 0.030579 0.109016 0.049305 0.042610 0.043022 0.170817 0.079824 0.028499 0.039391 0.170817 0.084290 0.022374 0.044002 0.136654 0.099181 0.307471 +0.016439 +0.048409 0.034535 0.077197 0.057954 0.026351 0.044229 0.017007 0.026898 0.077411 0.086438 0.023790 0.357786 0.024222 0.009171 0.072486 0.167966 0.025751 0.065844 0.061813 0.067246 0.044715 0.204980 0.092832 0.034434 0.057508 0.102490 0.060770 0.015124 0.025918 0.204980 0.100214 0.239144 +0.146373 +0.032051 0.036065 0.076752 0.049818 0.031646 0.068445 0.020914 0.066042 0.045262 0.059998 0.025099 0.075412 0.018855 0.042565 0.117809 0.047535 0.050027 0.304213 0.052281 0.067408 0.035178 0.204980 0.078281 0.011715 0.036016 0.204980 0.061296 0.061426 0.066484 0.102490 0.070447 0.239144 +0.219055 +0.033849 0.003871 0.361262 0.036403 0.026398 0.064777 0.020413 0.058822 0.036150 0.089236 0.050832 0.055804 0.031246 0.063350 0.058302 0.063671 0.023695 0.141204 0.046606 0.036705 0.007067 0.204980 0.073913 0.068270 0.026590 0.102490 0.055720 0.066035 0.025698 0.170817 0.059593 0.239144 +0.040617 +0.064094 0.050224 0.131660 0.215598 0.024578 0.192263 0.007186 0.020136 0.038312 0.096537 0.032321 0.132288 0.047074 0.026374 0.039943 0.071875 0.027402 0.104699 0.055246 0.038064 0.046668 0.273307 0.073117 0.024937 0.061760 0.239144 0.076533 0.023546 0.055784 0.136654 0.057595 0.307471 +0.147847 +0.058634 0.056877 0.078412 0.044397 0.037772 0.038856 0.037463 0.028570 0.087730 0.051235 0.037697 0.098709 0.020908 0.057947 0.065266 0.054542 0.050064 0.134207 0.053064 0.043722 0.034730 0.136654 0.091994 0.051223 0.010563 0.102490 0.081950 0.023718 0.008656 0.170817 0.084282 0.204980 +0.068937 +0.026765 0.047139 0.037337 0.096874 0.034982 0.251447 0.040728 0.027095 0.191150 0.078737 0.036108 0.092431 0.045821 0.020824 0.044775 0.099115 0.021452 0.053047 0.043477 0.025768 0.045155 0.204980 0.062293 0.014259 0.044908 0.239144 0.099350 0.005207 0.011027 0.102490 0.100467 0.273307 +0 +0.032223 0.021827 0.059482 0.043118 0.038046 0.074249 0.057414 0.050847 0.115878 0.047599 0.038845 0.045725 0.028762 0.047131 0.043887 0.053294 0.028003 0.170020 0.051214 0.058215 0.035336 0.273307 0.088590 0.030375 0.034915 0.307471 0.080210 0.049962 0.058056 0.170817 0.057553 0.341634 +0.026614 +0.046735 0.031968 0.088838 0.053461 0.036076 0.073640 0.053595 0.001352 0.226142 0.053178 0.018815 0.045091 0.049961 0.052639 0.041159 0.051788 0.019288 0.314938 0.055322 0.038655 0.044543 0.204980 0.085555 0.008688 0.010386 0.239144 0.094131 0.024155 0.003276 0.102490 0.090482 0.341634 +0 +0.046690 0.035391 0.067524 0.055052 0.039909 0.180193 0.047589 0.054761 0.035247 0.066755 0.031565 0.451604 0.006034 0.002800 0.112087 0.094746 0.021729 0.077278 0.043333 0.064548 0.009943 0.239144 0.080976 0.002652 0.045762 0.204980 0.060786 0.022797 0.012427 0.170817 0.056128 0.307471 +0.729602 +0.010813 0.015213 0.066331 0.050640 0.044655 0.066988 0.063725 0.022823 0.085078 0.037438 0.033638 0.152835 0.013328 0.001944 0.161410 0.046033 0.034036 0.078874 0.063447 0.034946 0.044566 0.136654 0.060896 0.031868 0.032122 0.136654 0.072968 0.015104 0.034763 0.102490 0.056782 0.204980 +0.015275 +0.031426 0.056144 0.054301 0.083023 0.046652 0.110597 0.003536 0.059212 0.039032 0.036848 0.020690 0.134140 0.008323 0.062763 0.184524 0.062093 0.018351 0.060873 0.054958 0.035546 0.009359 0.102490 0.069233 0.029439 0.020413 0.102490 0.079965 0.030899 0.048296 0.170817 0.099931 0.204980 +0.034878 +0.021187 0.053141 0.074546 0.076328 0.047837 0.090142 0.004944 0.055484 0.212861 0.045679 0.037171 0.070538 0.036984 0.055029 0.064446 0.113022 0.045567 0.189255 0.047746 0.051086 0.060992 0.239144 0.082593 0.014593 0.039578 0.136654 0.081940 0.056727 0.031582 0.136654 0.062167 0.341634 +0 +0.066944 0.003218 0.052432 0.102575 0.023520 0.658009 0.042772 0.000205 0.112602 0.046232 0.039607 0.227226 0.042966 0.036593 0.049295 0.063302 0.043248 0.140130 0.043886 0.011105 0.058959 0.239144 0.092575 0.013331 0.041412 0.102490 0.058468 0.019763 0.036705 0.204980 0.052350 0.273307 +0.958049 +0.033377 0.019625 0.038280 0.046482 0.022039 0.088708 0.050400 0.066726 0.089649 0.094953 0.044294 0.072587 0.001669 0.055693 0.137092 0.076787 0.043588 0.198281 0.052935 0.011354 0.009574 0.239144 0.058858 0.025865 0.018907 0.170817 0.099631 0.048253 0.015751 0.136654 0.054353 0.307471 +0.003541 +0.067168 0.032448 0.061882 0.073177 0.029192 0.040348 0.053770 0.021662 0.066316 0.041646 0.033091 0.390711 0.017206 0.058858 0.124509 0.035649 0.018388 0.107078 0.062591 0.065937 0.001370 0.136654 0.061341 0.066662 0.034133 0.136654 0.083182 0.039365 0.027567 0.170817 0.097911 0.204980 +0.215157 +0.068299 0.036638 0.035842 0.063107 0.050704 0.133350 0.033884 0.018600 0.035555 0.051543 0.026559 0.169754 0.028944 0.065231 0.054718 0.067668 0.028459 0.098918 0.054065 0.052433 0.056413 0.170817 0.076116 0.053409 0.053920 0.102490 0.063196 0.018536 0.042023 0.170817 0.051416 0.204980 +0.267975 +0.032736 0.005966 0.087935 0.036245 0.023162 0.224243 0.005021 0.044877 0.102874 0.037842 0.019014 0.094394 0.008665 0.015072 0.065730 0.034348 0.031302 0.054623 0.043621 0.064275 0.042733 0.136654 0.093551 0.000290 0.031094 0.102490 0.090692 0.062534 0.023264 0.102490 0.099269 0.239144 +0.005114 +0.016025 0.007552 0.064286 0.206179 0.047195 0.131889 0.066126 0.005121 0.085222 0.036911 0.034785 0.227741 0.019845 0.055250 0.042057 0.044301 0.023119 0.242682 0.060283 0.044200 0.002285 0.170817 0.075423 0.049994 0.038643 0.204980 0.060240 0.059754 0.005768 0.204980 0.093655 0.273307 +0.268697 +0.044837 0.060064 0.048312 0.049263 0.033341 0.045732 0.047658 0.018693 0.099281 0.054775 0.027870 0.056991 0.058612 0.011772 0.035958 0.104982 0.035113 0.415603 0.058645 0.044676 0.028807 0.102490 0.087747 0.033346 0.049644 0.102490 0.090716 0.056797 0.025078 0.102490 0.082289 0.239144 +0.003097 +0.025729 0.014423 0.051454 0.083937 0.029057 0.093554 0.048662 0.050129 0.130978 0.108412 0.017640 0.083869 0.034323 0.011346 0.040558 0.046978 0.026890 0.042696 0.050597 0.012069 0.017767 0.204980 0.070710 0.002209 0.056620 0.273307 0.069840 0.030329 0.003044 0.239144 0.086675 0.307471 +0 +0.025331 0.061036 0.040906 0.118057 0.036562 0.085144 0.039941 0.023862 0.035310 0.088430 0.038073 0.183884 0.019222 0.056811 0.085173 0.065185 0.042827 0.216341 0.063017 0.000499 0.064495 0.102490 0.098020 0.041035 0.037064 0.170817 0.086514 0.055674 0.021523 0.170817 0.055049 0.341634 +0.044587 +0.008546 0.054565 0.095108 0.045294 0.049630 0.090274 0.026722 0.064210 0.067730 0.058900 0.036687 0.115034 0.062156 0.052024 0.071960 0.051023 0.025680 0.191213 0.048071 0.004970 0.003961 0.136654 0.071786 0.049490 0.002486 0.273307 0.070744 0.042922 0.016705 0.273307 0.065169 0.307471 +0.093430 +0.035610 0.066397 0.058899 0.050906 0.034544 0.091955 0.012140 0.067675 0.070009 0.051424 0.044823 0.094311 0.047500 0.011218 0.102637 0.102775 0.041808 0.069826 0.056750 0.065273 0.034858 0.273307 0.055668 0.042401 0.023801 0.102490 0.081314 0.017765 0.034536 0.170817 0.071598 0.307471 +0 +0.037018 0.059769 0.166500 0.048710 0.027171 0.100991 0.043331 0.014552 0.155448 0.086293 0.019329 0.064835 0.041817 0.038432 0.036271 0.038293 0.033744 0.455803 0.044936 0.029167 0.041972 0.170817 0.059501 0.038537 0.012323 0.239144 0.087579 0.012428 0.000623 0.102490 0.082755 0.273307 +0.148759 +0.040696 0.015291 0.037576 0.040235 0.031306 0.058835 0.048581 0.029825 0.035491 0.058926 0.034461 0.187539 0.061521 0.044160 0.051789 0.047502 0.025169 0.162572 0.044074 0.055779 0.040171 0.204980 0.075274 0.051255 0.017470 0.239144 0.052503 0.001177 0.012806 0.102490 0.052843 0.341634 +0.119837 +0.066823 0.048416 0.037946 0.048964 0.040011 0.297985 0.026797 0.027489 0.041023 0.043347 0.033202 0.070888 0.031252 0.057069 0.045116 0.062996 0.017207 0.197281 0.059921 0.037637 0.062984 0.136654 0.056873 0.014332 0.013765 0.136654 0.064281 0.022233 0.021129 0.102490 0.079863 0.273307 +0.773406 +0.048597 0.056662 0.034256 0.041198 0.025656 0.080805 0.016204 0.058225 0.074305 0.085308 0.028712 0.338747 0.038373 0.067823 0.068760 0.082506 0.025736 0.060401 0.053087 0.067738 0.009566 0.273307 0.087710 0.054997 0.025395 0.307471 0.079962 0.034533 0.032964 0.307471 0.097103 0.341634 +0.126149 +0.061534 0.051477 0.061622 0.034227 0.047071 0.105948 0.008246 0.029650 0.055328 0.065880 0.034868 0.110477 0.049164 0.059027 0.066857 0.034284 0.019857 0.149294 0.054402 0.053854 0.068062 0.102490 0.070205 0.008577 0.003491 0.170817 0.052560 0.017129 0.067918 0.239144 0.057273 0.273307 +0.034986 +0.019798 0.005763 0.081298 0.037882 0.041723 0.075990 0.024638 0.005101 0.088352 0.035201 0.046031 0.047769 0.019199 0.001808 0.115776 0.040390 0.023797 0.038703 0.056557 0.041228 0.022930 0.102490 0.078569 0.045381 0.032333 0.239144 0.056643 0.027209 0.039843 0.136654 0.052789 0.307471 +0 +0.000416 0.028355 0.050730 0.083402 0.020049 0.075718 0.002039 0.063202 0.046934 0.086635 0.033747 0.045745 0.013681 0.006560 0.045313 0.038721 0.026381 0.062918 0.057627 0.060067 0.022620 0.136654 0.084487 0.005550 0.066774 0.170817 0.069756 0.063010 0.059312 0.102490 0.082338 0.273307 +0 +0.023229 0.006500 0.083010 0.050244 0.034278 0.091193 0.002099 0.025656 0.050166 0.114924 0.041740 0.096818 0.005689 0.028511 0.113947 0.054809 0.048214 0.180470 0.058106 0.044095 0.043772 0.136654 0.080263 0.014009 0.063970 0.136654 0.088465 0.027166 0.015311 0.102490 0.095441 0.204980 +0.026246 +0.027385 0.034642 0.106498 0.039466 0.040514 0.095582 0.056356 0.056055 0.042344 0.091526 0.041288 0.051393 0.036709 0.054011 0.039486 0.137250 0.035735 0.036057 0.055929 0.022329 0.062533 0.136654 0.072503 0.052711 0.022666 0.136654 0.096095 0.010416 0.028920 0.136654 0.081781 0.204980 +0 +0.021119 0.024400 0.042491 0.051538 0.019939 0.255723 0.008571 0.007193 0.044706 0.034631 0.028712 0.344049 0.062414 0.023215 0.090075 0.040643 0.050349 0.077763 0.044390 0.042700 0.038127 0.136654 0.081020 0.048101 0.005777 0.102490 0.071095 0.055306 0.018607 0.102490 0.086151 0.239144 +0.126174 +0.039588 0.057415 0.078769 0.036890 0.039644 0.042956 0.061596 0.034471 0.045592 0.040271 0.019182 0.385598 0.032157 0.051445 0.034839 0.041576 0.024958 0.086943 0.060181 0.044793 0.035060 0.204980 0.087138 0.011336 0.035867 0.102490 0.052249 0.025745 0.061365 0.102490 0.101546 0.307471 +0.241278 +0.033868 0.055833 0.044928 0.039918 0.040536 0.300555 0.060678 0.051816 0.038380 0.088701 0.028396 0.097915 0.045463 0.025151 0.100567 0.037611 0.030821 0.143088 0.056277 0.058698 0.020872 0.204980 0.062251 0.038879 0.033976 0.204980 0.062305 0.064052 0.014175 0.136654 0.075142 0.239144 +0.386849 +0.008094 0.010769 0.079612 0.127045 0.023293 0.149021 0.026664 0.060064 0.046178 0.088466 0.048091 0.049193 0.041530 0.004096 0.214709 0.043566 0.031854 0.231843 0.044299 0.047343 0.039109 0.136654 0.067750 0.038514 0.017675 0.102490 0.075675 0.000976 0.041122 0.170817 0.085923 0.341634 +0.038713 +0.006435 0.032550 0.060965 0.077802 0.027606 0.124444 0.049153 0.004240 0.044127 0.062003 0.047610 0.052118 0.001860 0.033578 0.160933 0.048882 0.040465 0.105907 0.050799 0.031027 0.022785 0.170817 0.074311 0.001725 0.016341 0.239144 0.088213 0.018961 0.001263 0.136654 0.097376 0.273307 +0.041785 +0.045458 0.039482 0.107940 0.103023 0.028657 0.284790 0.013985 0.063210 0.037189 0.036800 0.021006 0.137817 0.031262 0.009742 0.079174 0.039610 0.044264 0.167744 0.055498 0.015267 0.040457 0.273307 0.052674 0.011840 0.028017 0.239144 0.099070 0.033159 0.057611 0.273307 0.083463 0.307471 +0.291981 +0.027646 0.044878 0.035142 0.112757 0.025347 0.059129 0.046234 0.004158 0.092496 0.057421 0.050813 0.044979 0.051433 0.013386 0.066394 0.047951 0.032634 0.037057 0.062703 0.027951 0.006214 0.204980 0.057973 0.031487 0.012554 0.239144 0.102029 0.001694 0.003204 0.307471 0.061281 0.341634 +0 +0.041364 0.032882 0.040662 0.167763 0.028015 0.113168 0.018190 0.015750 0.056899 0.173453 0.023973 0.095646 0.001963 0.006971 0.106772 0.104051 0.048272 0.167610 0.063106 0.058487 0.031122 0.136654 0.054579 0.035313 0.012650 0.170817 0.077864 0.066883 0.028264 0.307471 0.090270 0.341634 +0.006244 +0.003663 0.066739 0.046717 0.183804 0.032569 0.061297 0.011159 0.014901 0.044702 0.079991 0.034473 0.057922 0.005160 0.045926 0.108333 0.062016 0.041440 0.157228 0.061567 0.034124 0.038261 0.136654 0.095976 0.058050 0.023863 0.102490 0.073843 0.049256 0.055570 0.102490 0.063315 0.204980 +0 +0.019348 0.063168 0.069573 0.079243 0.042745 0.045772 0.025951 0.037564 0.094304 0.140996 0.045737 0.038143 0.001005 0.067202 0.038071 0.039949 0.036366 0.110241 0.046015 0.059617 0.062795 0.239144 0.074711 0.029048 0.064707 0.102490 0.054887 0.065114 0.004060 0.204980 0.094635 0.307471 +0 +0.017047 0.049793 0.040497 0.039740 0.042911 0.058167 0.035328 0.027823 0.063209 0.076602 0.034950 0.089375 0.018717 0.047029 0.086341 0.114783 0.039471 0.137732 0.044869 0.003283 0.001478 0.102490 0.055345 0.037904 0.031279 0.204980 0.082928 0.037056 0.028200 0.136654 0.086849 0.239144 +0.008551 +0.009903 0.056336 0.049630 0.087981 0.029521 0.197011 0.021166 0.040725 0.038562 0.034214 0.031645 0.058479 0.050628 0.065998 0.089450 0.127584 0.035486 0.103047 0.060013 0.031102 0.054865 0.170817 0.057290 0.000933 0.041768 0.273307 0.055469 0.046368 0.050256 0.307471 0.074221 0.341634 +0.060342 +0.059971 0.008583 0.048731 0.046956 0.024884 0.232524 0.032267 0.017725 0.091887 0.092055 0.041257 0.038432 0.005181 0.056278 0.040720 0.039056 0.042049 0.080312 0.055873 0.006595 0.061207 0.170817 0.083878 0.055711 0.032795 0.102490 0.069485 0.026518 0.001226 0.102490 0.051703 0.204980 +0 +0.036493 0.049479 0.139357 0.056254 0.018704 0.165123 0.035560 0.050841 0.085481 0.037825 0.021272 0.103149 0.048771 0.057130 0.110462 0.057488 0.029388 0.051182 0.055721 0.046639 0.009583 0.170817 0.072378 0.005504 0.062966 0.136654 0.055216 0.039184 0.054758 0.273307 0.091793 0.307471 +0.024358 +0.046543 0.060315 0.049266 0.077783 0.021040 0.104001 0.061083 0.008114 0.037220 0.077314 0.047304 0.146525 0.037805 0.004171 0.045234 0.079580 0.022822 0.276111 0.047167 0.023513 0.033435 0.102490 0.054530 0.009693 0.048208 0.136654 0.100799 0.000578 0.033541 0.136654 0.089750 0.204980 +0.379980 +0.058890 0.018817 0.092889 0.048194 0.027536 0.203591 0.035219 0.029454 0.076090 0.091241 0.023059 0.127836 0.064431 0.035607 0.101048 0.074300 0.039133 0.044441 0.050199 0.064213 0.013461 0.102490 0.083684 0.065879 0.034901 0.102490 0.052765 0.001982 0.026901 0.136654 0.083213 0.239144 +0.025097 +0.037610 0.041644 0.094133 0.070512 0.051167 0.115341 0.047781 0.022577 0.101407 0.041504 0.017741 0.242437 0.011351 0.048993 0.109730 0.066909 0.031868 0.164035 0.042918 0.025541 0.020910 0.239144 0.095984 0.017289 0.004119 0.136654 0.077901 0.065322 0.024371 0.170817 0.090412 0.273307 +0.025595 +0.032860 0.039209 0.035023 0.052960 0.028177 0.147386 0.025825 0.002293 0.052347 0.047906 0.041659 0.233217 0.032158 0.012628 0.048720 0.103557 0.032106 0.108301 0.039299 0.005743 0.048355 0.102490 0.089314 0.005764 0.054967 0.204980 0.095452 0.022725 0.030005 0.136654 0.051302 0.239144 +0.665287 +0.041307 0.016809 0.060140 0.038686 0.037414 0.224554 0.062631 0.031319 0.055779 0.089477 0.022860 0.041859 0.040351 0.055618 0.105750 0.043617 0.029159 0.035913 0.049043 0.062393 0.020932 0.102490 0.064112 0.062477 0.034514 0.307471 0.092586 0.024047 0.026614 0.136654 0.095097 0.341634 +0 +0.046025 0.056494 0.038330 0.082544 0.031228 0.050513 0.015380 0.030531 0.059266 0.050484 0.044282 0.170193 0.049577 0.013068 0.063406 0.047093 0.029631 0.107178 0.035925 0.026528 0.064477 0.273307 0.065177 0.030275 0.003082 0.204980 0.102026 0.016846 0.042591 0.273307 0.066291 0.307471 +0.056993 +0.019825 0.011967 0.069542 0.047517 0.040445 0.049665 0.062082 0.060083 0.050865 0.035039 0.021681 0.040409 0.017352 0.023779 0.073673 0.038101 0.032120 0.150365 0.040871 0.041899 0.056586 0.136654 0.068969 0.016080 0.065549 0.204980 0.093382 0.025638 0.012408 0.136654 0.058964 0.239144 +0 +0.051679 0.007990 0.067820 0.112273 0.027602 0.045576 0.003551 0.003913 0.133930 0.037907 0.031587 0.059022 0.049912 0.046508 0.058250 0.047303 0.027252 0.052403 0.050855 0.007775 0.043889 0.102490 0.074702 0.060127 0.050824 0.170817 0.062902 0.024388 0.056783 0.170817 0.059554 0.239144 +0 +0.059955 0.010397 0.042346 0.060525 0.039653 0.108751 0.022341 0.017991 0.034571 0.076528 0.026992 0.067113 0.041207 0.038725 0.054541 0.052430 0.032235 0.287299 0.044510 0.062848 0.029782 0.307471 0.058984 0.025180 0.058905 0.273307 0.091333 0.018764 0.065594 0.204980 0.063085 0.341634 +0.083753 +0.022766 0.024574 0.037326 0.040183 0.038578 0.160215 0.041576 0.029324 0.110258 0.042576 0.033047 0.089974 0.017340 0.002794 0.039928 0.100941 0.019440 0.174441 0.042386 0.026669 0.068299 0.102490 0.086520 0.017834 0.046411 0.204980 0.067596 0.034463 0.026957 0.136654 0.064046 0.341634 +0 +0.028873 0.006325 0.076155 0.048023 0.035526 0.065296 0.049868 0.000749 0.051970 0.123769 0.051142 0.192603 0.055960 0.033618 0.077106 0.164892 0.038431 0.039134 0.038710 0.025637 0.048731 0.204980 0.063761 0.048309 0.004636 0.204980 0.073711 0.010172 0.005163 0.136654 0.066796 0.273307 +0.035270 +0.055015 0.015510 0.037615 0.081796 0.045995 0.143628 0.024834 0.046428 0.080055 0.037671 0.038896 0.151384 0.019822 0.016098 0.079571 0.048690 0.028577 0.088957 0.042770 0.026260 0.053867 0.239144 0.054460 0.065465 0.052535 0.170817 0.071132 0.027249 0.033582 0.136654 0.054555 0.307471 +0.004540 +0.025470 0.060729 0.059421 0.125558 0.022013 0.037030 0.011257 0.027002 0.043504 0.038916 0.017670 0.203942 0.032426 0.058557 0.042559 0.088566 0.019073 0.152847 0.051677 0.042662 0.027786 0.204980 0.066780 0.020577 0.054194 0.170817 0.094278 0.009106 0.043264 0.102490 0.077805 0.273307 +0.006843 +0.015266 0.004280 0.048887 0.041980 0.045668 0.217875 0.044902 0.050338 0.215869 0.047350 0.031581 0.041993 0.002304 0.039526 0.069531 0.038961 0.044976 0.395964 0.063126 0.041014 0.005300 0.204980 0.073275 0.022025 0.043016 0.204980 0.063147 0.039452 0.004214 0.170817 0.052669 0.239144 +0.046188 +0.053465 0.040832 0.094846 0.103737 0.033605 0.092792 0.040654 0.026665 0.036590 0.054243 0.017113 0.035999 0.060115 0.050073 0.066547 0.166520 0.046151 0.035273 0.060018 0.051846 0.010793 0.204980 0.093865 0.043407 0.031242 0.136654 0.062677 0.015320 0.004656 0.102490 0.067013 0.307471 +0 +0.048466 0.060602 0.053531 0.077093 0.031294 0.100047 0.029401 0.055779 0.042592 0.036601 0.034894 0.242542 0.018242 0.019440 0.059181 0.041214 0.019776 0.068730 0.050921 0.056248 0.004366 0.239144 0.068992 0.043646 0.068318 0.170817 0.054360 0.040999 0.054546 0.136654 0.056363 0.273307 +0.012289 +0.062566 0.025732 0.086802 0.077558 0.023306 0.174164 0.009441 0.015780 0.224000 0.072390 0.022491 0.054911 0.055792 0.009235 0.041524 0.054625 0.040664 0.223654 0.057239 0.032636 0.039843 0.136654 0.052552 0.048481 0.066068 0.102490 0.091625 0.060220 0.004603 0.204980 0.078694 0.307471 +0.088197 +0.056344 0.046212 0.049114 0.037239 0.043146 0.114570 0.057643 0.035589 0.081278 0.052373 0.031140 0.034525 0.065794 0.003004 0.036612 0.037151 0.032754 0.046759 0.047641 0.032257 0.020530 0.170817 0.056934 0.028914 0.064400 0.136654 0.066989 0.000788 0.010316 0.136654 0.060877 0.341634 +0 +0.029958 0.002624 0.061567 0.042027 0.017674 0.044818 0.042122 0.022002 0.083073 0.074167 0.029498 0.114568 0.041411 0.030410 0.038417 0.061938 0.048504 0.137694 0.057604 0.013423 0.035308 0.273307 0.056629 0.000417 0.034705 0.102490 0.060720 0.042275 0.003930 0.170817 0.067319 0.307471 +0.009715 +0.001017 0.044319 0.056379 0.059472 0.040375 0.084708 0.014817 0.045377 0.086418 0.040689 0.043592 0.042454 0.027649 0.039047 0.089810 0.080270 0.025649 0.092742 0.045001 0.055630 0.022405 0.102490 0.098651 0.045502 0.040997 0.204980 0.082025 0.005635 0.068071 0.136654 0.083374 0.239144 +0 +0.021093 0.042623 0.060128 0.047226 0.031775 0.106531 0.060503 0.065105 0.052640 0.047360 0.020449 0.174253 0.021727 0.045686 0.036739 0.097587 0.019512 0.042046 0.042857 0.042555 0.025721 0.170817 0.092263 0.001795 0.063604 0.204980 0.098148 0.002739 0.047742 0.170817 0.053629 0.307471 +0.023609 +0.028188 0.018704 0.042215 0.079647 0.049561 0.233465 0.044318 0.058945 0.037991 0.113413 0.031840 0.054868 0.049849 0.059117 0.050990 0.039195 0.047033 0.052193 0.052909 0.005824 0.011602 0.204980 0.058312 0.050593 0.064499 0.102490 0.070737 0.058842 0.062348 0.136654 0.096337 0.239144 +0 +0.062686 0.007086 0.038141 0.039253 0.041712 0.094170 0.050595 0.040621 0.045397 0.080908 0.034990 0.053249 0.054628 0.062511 0.034294 0.124746 0.019865 0.158435 0.057220 0.041718 0.028197 0.170817 0.064773 0.017825 0.024851 0.102490 0.084383 0.063279 0.017135 0.170817 0.059450 0.204980 +0.112595 +0.066297 0.000114 0.052010 0.109960 0.023668 0.457223 0.025819 0.002027 0.087391 0.073622 0.021625 0.045260 0.061149 0.004217 0.051072 0.056249 0.044490 0.072730 0.058680 0.001894 0.037095 0.170817 0.053912 0.065146 0.023306 0.136654 0.070032 0.000099 0.009780 0.170817 0.074007 0.239144 +0.001808 +0.022939 0.048898 0.098095 0.040835 0.018639 0.077434 0.036709 0.026189 0.067216 0.065008 0.019909 0.147831 0.048780 0.001645 0.063468 0.038248 0.029596 0.037525 0.053262 0.050666 0.017348 0.239144 0.069007 0.001942 0.040480 0.136654 0.060138 0.040463 0.044866 0.102490 0.095318 0.273307 +0.018434 +0.016471 0.048926 0.056258 0.048475 0.047899 0.180869 0.034955 0.045381 0.066985 0.074010 0.027648 0.201819 0.008088 0.011330 0.036724 0.062231 0.027734 0.058709 0.045239 0.014324 0.041790 0.204980 0.079447 0.036064 0.053751 0.170817 0.073559 0.013718 0.047660 0.136654 0.075201 0.273307 +0.009451 +0.067965 0.046552 0.049332 0.081259 0.020979 0.046228 0.054256 0.053779 0.052076 0.072818 0.036369 0.214517 0.008349 0.065842 0.038653 0.068961 0.023624 0.083609 0.050772 0.046626 0.029629 0.136654 0.092052 0.028091 0.002788 0.170817 0.070017 0.058146 0.011600 0.170817 0.054263 0.239144 +0.034357 +0.066946 0.027251 0.034810 0.060687 0.017791 0.247095 0.014373 0.021101 0.035626 0.051987 0.022253 0.083428 0.025000 0.008304 0.050587 0.057196 0.027916 0.228621 0.054063 0.067918 0.037713 0.170817 0.076705 0.025244 0.043040 0.136654 0.071725 0.025661 0.001883 0.102490 0.068558 0.239144 +0.274831 +0.014348 0.027417 0.118239 0.063595 0.039909 0.092233 0.011979 0.061875 0.040238 0.130379 0.027251 0.074406 0.009229 0.036925 0.057800 0.051182 0.048505 0.116064 0.050536 0.007162 0.065489 0.204980 0.053241 0.037165 0.060296 0.170817 0.075440 0.031939 0.058711 0.204980 0.077871 0.273307 +0.053123 +0.042275 0.027055 0.069628 0.062523 0.035871 0.053744 0.025910 0.052821 0.039498 0.047614 0.037610 0.180691 0.056845 0.048614 0.036449 0.052097 0.034659 0.091357 0.056122 0.046694 0.034661 0.136654 0.093758 0.006100 0.064372 0.102490 0.067640 0.007061 0.008279 0.170817 0.101145 0.273307 +0 +0.017000 0.058747 0.047968 0.127635 0.029677 0.118006 0.010705 0.068145 0.052037 0.036046 0.023826 0.101395 0.053175 0.045594 0.059588 0.085966 0.031359 0.042584 0.049005 0.051885 0.004860 0.136654 0.100966 0.041375 0.009302 0.170817 0.100064 0.027642 0.010118 0.136654 0.097810 0.239144 +0.025630 +0.017769 0.040200 0.075818 0.038582 0.049929 0.253564 0.018007 0.022628 0.034318 0.090450 0.021572 0.121797 0.045530 0.040635 0.054822 0.062828 0.040144 0.202757 0.057190 0.050231 0.067933 0.136654 0.085347 0.012088 0.050141 0.136654 0.084761 0.034209 0.062535 0.102490 0.074554 0.204980 +0.268621 +0.060781 0.023610 0.039574 0.079693 0.031493 0.036431 0.055305 0.034725 0.076147 0.065454 0.046205 0.081782 0.047042 0.056751 0.062192 0.041677 0.029293 0.374347 0.057528 0.021234 0.060952 0.204980 0.102247 0.017327 0.011578 0.136654 0.058452 0.023909 0.002016 0.102490 0.067185 0.273307 +0.068036 +0.032220 0.047107 0.087620 0.042395 0.017491 0.072872 0.002608 0.001273 0.065087 0.036856 0.035511 0.108930 0.067447 0.015852 0.035244 0.195337 0.033673 0.246929 0.055147 0.019479 0.023923 0.136654 0.081434 0.035764 0.014534 0.102490 0.071497 0.028848 0.042708 0.102490 0.086462 0.273307 +0.001702 +0.000068 0.063407 0.052640 0.046038 0.034467 0.315877 0.037888 0.047092 0.043940 0.059567 0.050508 0.084805 0.034530 0.022978 0.137015 0.075653 0.029032 0.539040 0.052865 0.047357 0.037380 0.102490 0.069763 0.022086 0.058960 0.102490 0.072414 0.053481 0.009740 0.136654 0.087112 0.204980 +0.065140 +0.032801 0.018444 0.101980 0.089697 0.023343 0.380143 0.054993 0.001726 0.089402 0.043612 0.041363 0.042802 0.054391 0.035181 0.071947 0.040350 0.034645 0.419372 0.048764 0.009160 0.029299 0.170817 0.063695 0.030315 0.050965 0.273307 0.081545 0.010645 0.003193 0.273307 0.051369 0.307471 +0.490887 +0.042457 0.029928 0.047237 0.038583 0.021963 0.137399 0.012255 0.019986 0.038783 0.044959 0.032876 0.139333 0.028943 0.027452 0.060197 0.060745 0.048629 0.313470 0.042068 0.033549 0.039605 0.273307 0.065792 0.035904 0.001430 0.239144 0.079567 0.010956 0.057428 0.307471 0.077388 0.341634 +0.118722 +0.039393 0.047192 0.062147 0.054841 0.033071 0.137589 0.046590 0.064345 0.089059 0.041922 0.033698 0.268806 0.033609 0.040305 0.061616 0.038474 0.023716 0.035530 0.047295 0.063211 0.043945 0.204980 0.071878 0.020101 0.015660 0.273307 0.052748 0.052348 0.060087 0.170817 0.051631 0.341634 +0.150138 +0.055952 0.048693 0.137888 0.066404 0.034137 0.098992 0.020926 0.062268 0.035757 0.120803 0.028572 0.104798 0.058406 0.036269 0.043724 0.077787 0.042673 0.185666 0.059396 0.032188 0.063571 0.102490 0.080359 0.002706 0.002127 0.170817 0.084791 0.034618 0.038173 0.273307 0.065788 0.341634 +0.066301 +0.004187 0.049080 0.053638 0.149992 0.019626 0.066815 0.027362 0.023765 0.040525 0.054023 0.040298 0.261540 0.031431 0.041316 0.059916 0.040117 0.041389 0.103407 0.053589 0.025812 0.016386 0.239144 0.070797 0.042114 0.020193 0.136654 0.064134 0.003102 0.037442 0.170817 0.101208 0.307471 +0.026340 +0.008759 0.027666 0.041428 0.096501 0.032217 0.073315 0.001988 0.037096 0.057297 0.037259 0.032073 0.049648 0.056941 0.045505 0.038836 0.037214 0.022246 0.286547 0.051560 0.008959 0.061217 0.136654 0.054862 0.039727 0.014609 0.239144 0.066977 0.055003 0.060041 0.239144 0.080828 0.307471 +0 +0.022975 0.020852 0.111047 0.085454 0.049391 0.073462 0.019011 0.043776 0.065635 0.040535 0.030231 0.384869 0.013164 0.005321 0.134824 0.070354 0.044237 0.045861 0.039687 0.053963 0.024001 0.273307 0.086721 0.007031 0.059289 0.136654 0.069466 0.048938 0.066418 0.170817 0.078998 0.341634 +0.526319 +0.029307 0.041504 0.035769 0.084045 0.031686 0.139376 0.017482 0.067782 0.068199 0.135445 0.041047 0.062508 0.044305 0.052052 0.045204 0.137280 0.048021 0.131844 0.048354 0.038281 0.038869 0.273307 0.068576 0.006819 0.001086 0.307471 0.069975 0.039532 0.036713 0.239144 0.083902 0.341634 +0 +0.033712 0.058970 0.049349 0.037925 0.023972 0.505016 0.063446 0.053328 0.063531 0.073852 0.030392 0.191095 0.056279 0.027518 0.100832 0.068642 0.028730 0.094172 0.054423 0.044743 0.005499 0.136654 0.063481 0.063264 0.017436 0.102490 0.065689 0.066644 0.026172 0.136654 0.098381 0.204980 +0.151931 +0.054530 0.004358 0.039643 0.049910 0.028762 0.044634 0.052644 0.035244 0.035999 0.059224 0.027624 0.164336 0.023645 0.030457 0.143843 0.098449 0.033777 0.170764 0.044678 0.046917 0.057395 0.170817 0.061533 0.038794 0.042873 0.239144 0.054385 0.066274 0.063643 0.239144 0.059054 0.273307 +0.403505 +0.027272 0.032672 0.038136 0.035310 0.029525 0.055777 0.028985 0.065105 0.069341 0.047621 0.026484 0.061984 0.027719 0.059989 0.058322 0.041542 0.048886 0.131564 0.050306 0.051084 0.014804 0.102490 0.072647 0.048735 0.016326 0.102490 0.073816 0.067715 0.027538 0.239144 0.057824 0.273307 +0.008351 +0.037540 0.016283 0.055123 0.058619 0.043978 0.037474 0.039229 0.002553 0.038739 0.047237 0.043089 0.059297 0.059534 0.062283 0.042052 0.038210 0.039071 0.057485 0.052692 0.057817 0.051396 0.204980 0.062861 0.038311 0.045471 0.136654 0.065766 0.009213 0.002962 0.273307 0.095977 0.341634 +0 +0.058560 0.064175 0.057936 0.055956 0.044908 0.071558 0.009622 0.051826 0.055388 0.061655 0.045057 0.058756 0.063868 0.014845 0.066436 0.075322 0.027353 0.082721 0.038938 0.004104 0.006921 0.170817 0.073578 0.038952 0.016915 0.102490 0.074714 0.018050 0.061217 0.136654 0.053378 0.204980 +0 +0.057123 0.021058 0.077034 0.064069 0.026705 0.159437 0.067384 0.002972 0.085320 0.043943 0.039279 0.187278 0.028452 0.066079 0.057701 0.078631 0.046736 0.266122 0.063618 0.047957 0.067545 0.239144 0.061374 0.054094 0.038650 0.273307 0.052753 0.021774 0.032965 0.273307 0.057960 0.307471 +0.044101 +0.049690 0.003271 0.119978 0.045346 0.050775 0.093183 0.055105 0.038475 0.065148 0.034357 0.034144 0.045422 0.013719 0.065999 0.057162 0.034563 0.049437 0.119274 0.044279 0.041644 0.050247 0.102490 0.072843 0.002045 0.036732 0.136654 0.102477 0.007017 0.032185 0.204980 0.070483 0.273307 +0 +0.016019 0.003025 0.039122 0.038768 0.049155 0.034169 0.048960 0.019730 0.080710 0.099268 0.046512 0.149995 0.041130 0.016932 0.037605 0.035457 0.039990 0.037800 0.044548 0.026519 0.043955 0.307471 0.072275 0.006724 0.046385 0.204980 0.096044 0.004453 0.037214 0.239144 0.066279 0.341634 +0.015287 +0.005735 0.013169 0.060674 0.135498 0.046500 0.069190 0.047433 0.009679 0.037619 0.048926 0.036351 0.088441 0.048140 0.041903 0.045016 0.045256 0.018780 0.162616 0.053280 0.028519 0.064621 0.102490 0.082658 0.031330 0.062665 0.102490 0.061253 0.026532 0.015801 0.170817 0.073624 0.239144 +0.002446 +0.062910 0.033823 0.087141 0.090414 0.049344 0.061016 0.052302 0.050209 0.050370 0.044907 0.044731 0.057567 0.034139 0.012228 0.066046 0.037057 0.019453 0.043059 0.052379 0.017575 0.002682 0.204980 0.051422 0.023102 0.037992 0.136654 0.079376 0.040210 0.042465 0.102490 0.092291 0.341634 +0 +0.053511 0.039211 0.095081 0.057054 0.045146 0.111369 0.013104 0.043339 0.042702 0.036954 0.030696 0.163908 0.057683 0.061785 0.055972 0.037315 0.020227 0.115071 0.050996 0.009511 0.038356 0.136654 0.054927 0.048766 0.060008 0.102490 0.085531 0.050526 0.023037 0.102490 0.057393 0.341634 +0.181841 +0.063956 0.066410 0.061058 0.039026 0.043393 0.063309 0.039000 0.055380 0.037928 0.071103 0.045519 0.424849 0.024242 0.013552 0.097238 0.064015 0.045252 0.075948 0.060507 0.010268 0.034028 0.273307 0.091804 0.022603 0.045032 0.102490 0.094898 0.025258 0.039351 0.170817 0.090355 0.307471 +0.008892 +0.012855 0.045765 0.035413 0.062518 0.031613 0.103007 0.005750 0.024842 0.046059 0.064396 0.020347 0.115627 0.023836 0.009187 0.035644 0.041368 0.017640 0.096524 0.039630 0.038630 0.059235 0.136654 0.100529 0.031661 0.031042 0.102490 0.076384 0.049786 0.007432 0.136654 0.086176 0.204980 +0.035031 +0.033128 0.041614 0.039230 0.042604 0.049887 0.174502 0.016289 0.066223 0.060268 0.067927 0.018410 0.136887 0.024782 0.031158 0.123606 0.058474 0.032594 0.132145 0.045527 0.007202 0.047882 0.273307 0.101757 0.039085 0.038324 0.170817 0.063630 0.045968 0.002028 0.273307 0.054494 0.307471 +0.022443 +0.057451 0.033870 0.139185 0.075161 0.034400 0.067322 0.024845 0.014989 0.075854 0.046574 0.030528 0.055838 0.065984 0.017165 0.051178 0.048799 0.050616 0.045785 0.046091 0.029827 0.024338 0.136654 0.084237 0.055407 0.059852 0.136654 0.095872 0.053272 0.052164 0.102490 0.082940 0.204980 +0 +0.026379 0.050841 0.092830 0.040108 0.027241 0.086786 0.033023 0.007450 0.062863 0.074091 0.026734 0.298461 0.060689 0.040742 0.045216 0.086663 0.027692 0.087520 0.056037 0.020888 0.034594 0.273307 0.095262 0.011060 0.034546 0.204980 0.086871 0.051181 0.042940 0.239144 0.075362 0.307471 +0.073490 +0.001485 0.023594 0.053585 0.087951 0.042620 0.073275 0.006295 0.041398 0.038652 0.119328 0.032810 0.053834 0.062411 0.065336 0.060547 0.051029 0.037049 0.117338 0.057441 0.016323 0.001111 0.204980 0.066080 0.052258 0.062878 0.273307 0.086408 0.035458 0.004050 0.239144 0.062978 0.341634 +0 +0.024512 0.036739 0.062448 0.058809 0.022720 0.443622 0.045842 0.041340 0.082040 0.051460 0.026356 0.092590 0.019165 0.040520 0.088743 0.044931 0.020997 0.045128 0.058774 0.013350 0.056804 0.170817 0.074130 0.062513 0.005712 0.170817 0.092958 0.008357 0.050003 0.170817 0.079922 0.273307 +0.287177 +0.051322 0.054377 0.050334 0.083082 0.026888 0.065529 0.026681 0.008072 0.035499 0.047185 0.026788 0.225959 0.025193 0.059834 0.082769 0.064146 0.049122 0.159947 0.040926 0.026911 0.052462 0.102490 0.073342 0.054973 0.012034 0.170817 0.085718 0.027104 0.027102 0.102490 0.065479 0.273307 +0.155949 +0.021823 0.038388 0.048191 0.066987 0.019287 0.044769 0.051959 0.032122 0.076966 0.034981 0.028928 0.138798 0.003996 0.012638 0.047042 0.100212 0.021407 0.086971 0.048521 0.001802 0.050160 0.204980 0.084564 0.058311 0.019101 0.170817 0.082518 0.027323 0.046334 0.170817 0.062618 0.239144 +0.049579 +0.043622 0.023270 0.052180 0.048723 0.027195 0.037981 0.038043 0.063343 0.073475 0.062071 0.033188 0.213429 0.055898 0.044886 0.056638 0.062151 0.034994 0.199912 0.054516 0.023857 0.054913 0.102490 0.095793 0.059790 0.032889 0.204980 0.054451 0.031920 0.000112 0.102490 0.082945 0.273307 +0.002046 +0.026636 0.067588 0.059295 0.066569 0.022006 0.051638 0.000764 0.038181 0.054733 0.038297 0.051020 0.120553 0.066422 0.047216 0.056193 0.075932 0.039009 0.054119 0.055497 0.005840 0.023897 0.102490 0.098188 0.036536 0.007718 0.102490 0.088645 0.067062 0.065781 0.136654 0.073040 0.204980 +0.013591 +0.027513 0.041256 0.054291 0.092293 0.028815 0.111094 0.013653 0.035906 0.071501 0.036926 0.038215 0.071866 0.050639 0.028184 0.089266 0.058318 0.038151 0.067914 0.052293 0.039732 0.029085 0.204980 0.064910 0.055706 0.053516 0.102490 0.053198 0.026922 0.038598 0.204980 0.093158 0.273307 +0.021668 +0.028544 0.033311 0.038471 0.056674 0.024919 0.108519 0.051233 0.037404 0.046467 0.107539 0.031396 0.329065 0.027571 0.062267 0.041975 0.130699 0.051117 0.097850 0.053089 0.052876 0.014310 0.136654 0.098361 0.018079 0.029629 0.136654 0.051605 0.018244 0.016888 0.170817 0.091538 0.204980 +0.250519 +0.035602 0.055824 0.132524 0.060502 0.045000 0.066957 0.034065 0.039468 0.036650 0.034483 0.028980 0.203993 0.028586 0.044992 0.086176 0.078661 0.045613 0.156454 0.052641 0.024490 0.063241 0.102490 0.090663 0.006811 0.025885 0.136654 0.066153 0.045922 0.003265 0.136654 0.054872 0.204980 +0.091521 +0.019422 0.018908 0.089454 0.057264 0.018407 0.042733 0.041087 0.065748 0.044613 0.042698 0.018126 0.112187 0.035068 0.008702 0.040810 0.060910 0.049529 0.057980 0.038019 0.021258 0.003684 0.204980 0.100861 0.016017 0.043971 0.204980 0.085713 0.011715 0.020377 0.102490 0.097735 0.307471 +0.035059 +0.023990 0.043708 0.041367 0.100557 0.024039 0.054016 0.017265 0.002753 0.043175 0.036960 0.036389 0.171231 0.051693 0.055530 0.047646 0.042956 0.031652 0.103450 0.053575 0.056439 0.032896 0.136654 0.090574 0.036566 0.021544 0.170817 0.093167 0.050156 0.020902 0.170817 0.058859 0.204980 +0.186920 +0.021082 0.001252 0.034686 0.036893 0.027394 0.131000 0.012435 0.008184 0.051329 0.055445 0.023532 0.195837 0.050342 0.047407 0.097540 0.052596 0.048783 0.044986 0.040831 0.005150 0.067449 0.102490 0.074747 0.027932 0.001631 0.136654 0.091324 0.059111 0.052002 0.170817 0.081692 0.204980 +0.099883 +0.005970 0.056441 0.047452 0.050201 0.045924 0.039233 0.014812 0.056811 0.036347 0.052277 0.025298 0.104787 0.026889 0.000514 0.075116 0.100365 0.035438 0.083634 0.052075 0.040584 0.000370 0.136654 0.058836 0.058321 0.021041 0.170817 0.084038 0.048921 0.015966 0.136654 0.093052 0.307471 +0 +0.034450 0.032411 0.074874 0.067746 0.049262 0.038916 0.009390 0.061691 0.092918 0.070183 0.034264 0.042161 0.057935 0.013307 0.062174 0.058771 0.041120 0.101032 0.048557 0.020639 0.005514 0.170817 0.087540 0.037591 0.065094 0.102490 0.075342 0.059813 0.065500 0.102490 0.053480 0.273307 +0 +0.052817 0.014167 0.064898 0.043434 0.045058 0.237467 0.061509 0.035691 0.073696 0.083375 0.037653 0.047882 0.067376 0.025795 0.115834 0.099403 0.033221 0.270537 0.060146 0.003022 0.055163 0.204980 0.085308 0.044698 0.021038 0.204980 0.064707 0.034367 0.027226 0.170817 0.083199 0.239144 +0.113779 +0.041416 0.051568 0.088842 0.055470 0.023250 0.214259 0.003105 0.059225 0.087794 0.037709 0.036030 0.275784 0.050719 0.023284 0.045641 0.109331 0.039737 0.054723 0.042072 0.005922 0.036593 0.136654 0.075414 0.026890 0.023039 0.204980 0.068526 0.036952 0.061481 0.136654 0.095259 0.239144 +0.281632 +0.017800 0.057172 0.114667 0.122442 0.048252 0.042332 0.055654 0.066561 0.052729 0.069953 0.017611 0.261615 0.062251 0.048618 0.054477 0.066873 0.031899 0.265311 0.048563 0.067587 0.045976 0.136654 0.092728 0.011040 0.058081 0.307471 0.051362 0.039924 0.059294 0.102490 0.060871 0.341634 +0.151420 +0.049015 0.018918 0.053292 0.100816 0.048358 0.082455 0.039428 0.052749 0.048130 0.076076 0.019496 0.097205 0.051950 0.065116 0.034520 0.133403 0.022860 0.186701 0.058698 0.068155 0.047912 0.170817 0.102125 0.033487 0.030895 0.136654 0.082170 0.054388 0.025479 0.170817 0.069040 0.204980 +0.053895 +0.056138 0.020948 0.083133 0.071370 0.030643 0.418994 0.027978 0.031358 0.070029 0.048373 0.031853 0.130459 0.048208 0.056993 0.115547 0.060903 0.039561 0.073644 0.064531 0.049757 0.039178 0.170817 0.088509 0.012476 0.032125 0.136654 0.071832 0.032119 0.032350 0.102490 0.078399 0.204980 +0.224220 +0.001838 0.042196 0.076066 0.052721 0.044758 0.133979 0.061970 0.015860 0.039020 0.034952 0.034933 0.336567 0.028597 0.059250 0.071541 0.064392 0.026402 0.335576 0.061842 0.050054 0.009554 0.102490 0.066863 0.030179 0.005859 0.136654 0.078794 0.013091 0.046442 0.136654 0.088133 0.204980 +0.389687 +0.027570 0.016842 0.106420 0.127986 0.030835 0.140623 0.046889 0.046269 0.060160 0.052035 0.041458 0.297260 0.023486 0.049515 0.034499 0.086117 0.030820 0.046161 0.046889 0.047251 0.039746 0.136654 0.060792 0.033027 0.043824 0.102490 0.076086 0.028342 0.048008 0.204980 0.068378 0.341634 +0.055162 +0.046931 0.031099 0.070021 0.041384 0.039793 0.057359 0.026869 0.037001 0.043571 0.119766 0.043635 0.154030 0.047140 0.065970 0.194281 0.050839 0.050607 0.119960 0.058715 0.018998 0.025303 0.204980 0.061456 0.064816 0.038827 0.204980 0.057429 0.057375 0.031863 0.239144 0.067367 0.273307 +0.015407 +0.009578 0.038788 0.066054 0.074304 0.047745 0.432623 0.007350 0.013871 0.039734 0.272672 0.043361 0.069591 0.032961 0.063845 0.042149 0.081361 0.036057 0.167508 0.040741 0.025167 0.019625 0.102490 0.065084 0.015569 0.008440 0.136654 0.054254 0.065011 0.022455 0.204980 0.080679 0.341634 +0.000763 +0.055829 0.024462 0.108813 0.088716 0.048173 0.097602 0.046984 0.014033 0.272811 0.055751 0.019125 0.156493 0.028455 0.051816 0.061448 0.074583 0.035539 0.080209 0.059825 0.012655 0.064628 0.136654 0.058119 0.021934 0.034117 0.170817 0.063594 0.009560 0.047560 0.204980 0.064916 0.239144 +0.063674 +0.019427 0.044400 0.104812 0.034813 0.025499 0.237005 0.027183 0.013465 0.060863 0.059599 0.031995 0.102694 0.018313 0.022199 0.124400 0.150231 0.047142 0.127408 0.050294 0.016145 0.022991 0.136654 0.093006 0.029664 0.023685 0.170817 0.073615 0.039630 0.002129 0.136654 0.094111 0.204980 +0.075489 +0.014962 0.005498 0.041354 0.100770 0.027816 0.134704 0.022250 0.009177 0.040449 0.094878 0.021433 0.113617 0.014579 0.003083 0.087887 0.055570 0.018625 0.156626 0.055225 0.063835 0.039792 0.102490 0.064963 0.026000 0.034790 0.204980 0.071531 0.065403 0.042256 0.170817 0.079378 0.239144 +0.044944 +0.052769 0.001258 0.039559 0.043361 0.046647 0.082125 0.009601 0.021293 0.061885 0.093566 0.050037 0.230035 0.007344 0.029309 0.037983 0.071025 0.034084 0.091883 0.046967 0.052493 0.029132 0.170817 0.087282 0.031099 0.010567 0.170817 0.067751 0.043499 0.012479 0.170817 0.078551 0.239144 +0.104216 +0.005658 0.015719 0.098561 0.044650 0.042987 0.085030 0.034155 0.040027 0.085047 0.037032 0.022541 0.045622 0.067048 0.020210 0.113782 0.038078 0.043375 0.135089 0.047014 0.021407 0.012932 0.102490 0.052871 0.022554 0.036160 0.136654 0.066440 0.014825 0.049988 0.102490 0.073783 0.204980 +0 +0.011380 0.060722 0.068116 0.079207 0.050381 0.107709 0.041981 0.027629 0.072066 0.035703 0.037666 0.055129 0.031006 0.004263 0.041868 0.038461 0.048894 0.066161 0.060328 0.018208 0.026712 0.136654 0.052316 0.025629 0.061768 0.204980 0.058922 0.052061 0.012390 0.239144 0.093393 0.307471 +0.015359 +0.010947 0.039186 0.087669 0.055632 0.029833 0.103821 0.064137 0.019294 0.042877 0.036495 0.036342 0.143462 0.042191 0.018562 0.169670 0.112759 0.051146 0.085857 0.048709 0.024598 0.013706 0.170817 0.074244 0.065765 0.005013 0.170817 0.097271 0.001806 0.061107 0.307471 0.062075 0.341634 +0.035810 +0.044496 0.028151 0.091613 0.068861 0.049406 0.047029 0.042582 0.050014 0.061487 0.050644 0.043553 0.099000 0.050113 0.006105 0.057333 0.039490 0.038094 0.191938 0.050993 0.066344 0.065389 0.239144 0.059455 0.001941 0.003550 0.204980 0.102354 0.005085 0.058535 0.204980 0.079056 0.341634 +0.043022 +0.058647 0.022652 0.037724 0.037814 0.050493 0.235981 0.019550 0.063513 0.069274 0.047216 0.041508 0.349027 0.033414 0.057198 0.074407 0.066946 0.041793 0.078054 0.043764 0.051344 0.003447 0.102490 0.058669 0.022301 0.005409 0.170817 0.054279 0.034245 0.038590 0.170817 0.098623 0.239144 +0.315918 +0.045269 0.002407 0.081053 0.036098 0.039422 0.302429 0.058197 0.053102 0.045307 0.043310 0.019550 0.051649 0.066261 0.008248 0.058600 0.048585 0.017717 0.118480 0.050817 0.011245 0.022382 0.102490 0.095310 0.056148 0.028792 0.136654 0.084217 0.029055 0.045416 0.307471 0.077413 0.341634 +0.025705 +0.064891 0.002320 0.149031 0.079095 0.022856 0.245567 0.022591 0.049788 0.108810 0.035098 0.026024 0.070897 0.015059 0.014787 0.067215 0.074715 0.024629 0.068385 0.059093 0.055422 0.001574 0.204980 0.092862 0.046451 0.027753 0.102490 0.097750 0.014415 0.020487 0.307471 0.060519 0.341634 +0.014388 +0.032924 0.054934 0.037395 0.075507 0.047951 0.189948 0.060993 0.033226 0.053284 0.034249 0.026099 0.038835 0.059190 0.061413 0.050040 0.040002 0.046396 0.052434 0.044893 0.022539 0.030483 0.136654 0.060631 0.031132 0.066969 0.273307 0.065546 0.062366 0.053645 0.239144 0.100531 0.307471 +0 +0.002497 0.026930 0.056870 0.040801 0.029025 0.037205 0.068318 0.006091 0.114024 0.048846 0.050072 0.292814 0.053706 0.050437 0.252426 0.061646 0.026477 0.326353 0.053829 0.018092 0.037219 0.170817 0.087451 0.046977 0.065975 0.204980 0.089736 0.030357 0.029792 0.204980 0.066694 0.341634 +0.251933 +0.009359 0.019993 0.066974 0.075449 0.030191 0.159055 0.051357 0.049466 0.060264 0.106722 0.017918 0.084724 0.065287 0.037607 0.036326 0.045872 0.033019 0.035497 0.047496 0.028497 0.041881 0.136654 0.075371 0.031472 0.018386 0.136654 0.077418 0.007348 0.035551 0.136654 0.089478 0.204980 +0.036366 +0.008520 0.064510 0.044709 0.044683 0.022554 0.099563 0.035896 0.009632 0.057832 0.053755 0.042831 0.149267 0.007531 0.067329 0.048916 0.052451 0.028601 0.247096 0.053940 0.022575 0.045239 0.170817 0.060666 0.017328 0.064586 0.170817 0.099687 0.046902 0.009243 0.136654 0.077788 0.204980 +0.394548 +0.043129 0.033665 0.039295 0.053390 0.030255 0.099530 0.046369 0.037982 0.036189 0.089706 0.038120 0.056871 0.011885 0.049245 0.053299 0.135856 0.035015 0.073478 0.048626 0.041865 0.040102 0.102490 0.087786 0.051732 0.015304 0.102490 0.088986 0.057940 0.056712 0.136654 0.091749 0.204980 +0.011828 +0.041663 0.001608 0.055684 0.043055 0.023150 0.140579 0.059392 0.024450 0.054863 0.083112 0.024647 0.072412 0.068056 0.057610 0.038832 0.056250 0.049879 0.219277 0.057308 0.020870 0.011426 0.136654 0.060791 0.001827 0.013018 0.136654 0.062707 0.031933 0.040611 0.136654 0.083614 0.204980 +0 +0.052959 0.035147 0.093029 0.047754 0.039878 0.042458 0.031322 0.036926 0.048376 0.042270 0.033411 0.047936 0.066640 0.043590 0.058646 0.037098 0.038389 0.080917 0.047287 0.009335 0.022949 0.204980 0.063536 0.057256 0.037859 0.136654 0.064901 0.003100 0.004430 0.102490 0.056104 0.307471 +0 +0.017834 0.019438 0.034876 0.050832 0.025752 0.174293 0.031405 0.068079 0.172741 0.068866 0.033982 0.122504 0.002685 0.003366 0.042618 0.068109 0.022555 0.052774 0.044949 0.061754 0.058785 0.170817 0.092231 0.056540 0.008267 0.204980 0.082500 0.023041 0.066638 0.102490 0.061374 0.239144 +0.091832 +0.003587 0.027327 0.111318 0.073505 0.032174 0.079367 0.038535 0.055914 0.057491 0.041215 0.050023 0.117050 0.055572 0.045726 0.101056 0.035445 0.037915 0.131644 0.061797 0.056637 0.048783 0.204980 0.056215 0.038370 0.052118 0.102490 0.099826 0.019490 0.034854 0.136654 0.070794 0.239144 +0 +0.051908 0.011548 0.057232 0.051280 0.037737 0.114748 0.033107 0.067575 0.076945 0.078709 0.018899 0.046638 0.032277 0.003440 0.131682 0.043083 0.044510 0.045611 0.062106 0.019327 0.067953 0.136654 0.056187 0.008005 0.056772 0.170817 0.097818 0.059111 0.052544 0.170817 0.079974 0.273307 +0 +0.014721 0.011871 0.085356 0.087090 0.043130 0.088114 0.046034 0.019681 0.036117 0.034251 0.048237 0.063959 0.054950 0.040459 0.085835 0.105941 0.038331 0.190200 0.041795 0.023873 0.058451 0.102490 0.064234 0.064063 0.016439 0.170817 0.091069 0.054452 0.004555 0.102490 0.062813 0.273307 +0.154847 +0.052443 0.034031 0.051512 0.068534 0.021573 0.039090 0.037598 0.006540 0.055099 0.053220 0.037059 0.178521 0.004844 0.030039 0.068327 0.041241 0.028429 0.098236 0.057535 0.029193 0.052430 0.204980 0.092872 0.007304 0.051117 0.204980 0.088611 0.057712 0.030924 0.204980 0.063026 0.273307 +0.038846 +0.012864 0.013553 0.075630 0.113682 0.025718 0.075036 0.031771 0.049796 0.112082 0.042658 0.024131 0.054695 0.062093 0.042403 0.116990 0.062397 0.040923 0.118618 0.055519 0.009490 0.020583 0.170817 0.079364 0.047189 0.046145 0.102490 0.085166 0.049420 0.046722 0.170817 0.084092 0.204980 +0.029194 +0.043953 0.024322 0.127537 0.079499 0.032193 0.080141 0.064245 0.039942 0.097740 0.052785 0.018937 0.101476 0.028412 0.021180 0.037148 0.036370 0.032098 0.257344 0.044265 0.029844 0.018187 0.273307 0.092709 0.022514 0.009295 0.204980 0.075854 0.020756 0.034197 0.273307 0.060956 0.307471 +0.292111 +0.012339 0.048377 0.034853 0.055498 0.027594 0.114853 0.036101 0.009192 0.145885 0.055854 0.048984 0.150158 0.062471 0.034774 0.047217 0.060673 0.032732 0.124494 0.048253 0.001910 0.031056 0.170817 0.071908 0.037112 0.039965 0.102490 0.059065 0.002093 0.057744 0.102490 0.096609 0.307471 +0.001322 +0.064975 0.062360 0.039483 0.039607 0.036105 0.177560 0.003262 0.063066 0.046963 0.045431 0.039411 0.142602 0.007091 0.041327 0.076823 0.046200 0.019177 0.058254 0.060204 0.006204 0.058659 0.102490 0.082881 0.027060 0.056736 0.102490 0.077362 0.017820 0.003224 0.136654 0.086227 0.239144 +0.018403 +0.046326 0.068077 0.059973 0.060731 0.045437 0.127220 0.031823 0.022756 0.038332 0.039465 0.029923 0.062798 0.047633 0.023960 0.047067 0.040233 0.049653 0.075196 0.045175 0.012568 0.016665 0.102490 0.090676 0.013965 0.034205 0.170817 0.069522 0.057235 0.054695 0.204980 0.087843 0.273307 +0 +0.058956 0.013857 0.066790 0.130747 0.032583 0.177062 0.067347 0.033290 0.049582 0.071670 0.020814 0.059339 0.061632 0.055144 0.058175 0.092522 0.029833 0.232306 0.053391 0.043187 0.059394 0.170817 0.063286 0.054304 0.036519 0.204980 0.079705 0.029185 0.036497 0.102490 0.076324 0.307471 +0 +0.045696 0.031477 0.203771 0.062292 0.040993 0.085926 0.064873 0.004356 0.128918 0.064724 0.051025 0.066605 0.024638 0.055972 0.044979 0.045145 0.020521 0.136075 0.040492 0.060797 0.049383 0.273307 0.087731 0.059977 0.058658 0.136654 0.098998 0.017496 0.050638 0.136654 0.098053 0.307471 +0.001985 +0.007774 0.020799 0.062108 0.080823 0.040127 0.042497 0.009150 0.001662 0.046822 0.051891 0.051081 0.175372 0.052323 0.042581 0.070669 0.038683 0.042797 0.040837 0.054127 0.042760 0.013152 0.204980 0.070915 0.000596 0.050471 0.170817 0.092116 0.021993 0.036711 0.170817 0.071404 0.239144 +0.083948 +0.048650 0.046806 0.108312 0.046230 0.028473 0.101684 0.034852 0.000343 0.113658 0.044931 0.025401 0.168234 0.028809 0.048794 0.036369 0.110652 0.032891 0.112795 0.045166 0.044047 0.063142 0.136654 0.090595 0.054420 0.012342 0.170817 0.086995 0.003124 0.034141 0.102490 0.052553 0.239144 +0.026971 +0.032791 0.013908 0.049303 0.068946 0.028948 0.104887 0.038160 0.046381 0.083352 0.055970 0.045230 0.086830 0.067812 0.040609 0.096037 0.050094 0.027893 0.456641 0.042383 0.055935 0.064633 0.239144 0.066576 0.018384 0.040560 0.239144 0.063926 0.058184 0.012665 0.273307 0.072907 0.307471 +0.066963 +0.044699 0.061266 0.043162 0.094628 0.033418 0.081306 0.029743 0.056193 0.138238 0.040222 0.041021 0.044093 0.008241 0.067592 0.114746 0.035238 0.023853 0.045518 0.046944 0.000850 0.056828 0.170817 0.071441 0.041474 0.036532 0.102490 0.076505 0.014538 0.005881 0.102490 0.086478 0.239144 +0 +0.053053 0.046340 0.054111 0.060822 0.043277 0.087617 0.007936 0.028914 0.037965 0.050468 0.044477 0.043713 0.056992 0.064223 0.069225 0.152999 0.021753 0.100970 0.041817 0.067996 0.016410 0.136654 0.058136 0.050377 0.026352 0.136654 0.096985 0.046301 0.034299 0.170817 0.078769 0.341634 +0 +0.002846 0.057067 0.074387 0.051503 0.043633 0.152319 0.012357 0.051219 0.070043 0.100436 0.039666 0.266146 0.067270 0.025323 0.055386 0.046887 0.041911 0.087291 0.054327 0.027206 0.033137 0.102490 0.051384 0.067053 0.034805 0.170817 0.061416 0.013084 0.055230 0.102490 0.070283 0.204980 +0.140189 +0.014408 0.030312 0.096566 0.085407 0.020605 0.037254 0.006911 0.028048 0.138264 0.037820 0.037814 0.077115 0.049901 0.013958 0.059292 0.077863 0.045692 0.075483 0.036234 0.038289 0.009548 0.273307 0.076689 0.046394 0.043451 0.170817 0.089413 0.052244 0.066901 0.136654 0.099321 0.341634 +0 +0.013135 0.061045 0.063531 0.042603 0.023009 0.048902 0.053337 0.002946 0.074690 0.150552 0.032298 0.114958 0.020239 0.065477 0.045888 0.045686 0.023562 0.205392 0.049077 0.067796 0.055058 0.136654 0.084364 0.062449 0.045251 0.102490 0.070780 0.040896 0.067895 0.136654 0.083657 0.239144 +0.037335 +0.061724 0.013748 0.051335 0.046286 0.042801 0.062489 0.047603 0.019429 0.079068 0.053260 0.041526 0.057635 0.031180 0.034007 0.034826 0.102468 0.047250 0.107536 0.048399 0.039859 0.045224 0.102490 0.081044 0.009883 0.039553 0.170817 0.097178 0.004774 0.053503 0.204980 0.058725 0.239144 +0.002701 +0.007446 0.041616 0.067511 0.052452 0.049210 0.125644 0.006764 0.042878 0.098098 0.054673 0.031226 0.198970 0.018892 0.014962 0.082418 0.036153 0.017555 0.301116 0.053363 0.055526 0.043974 0.204980 0.069828 0.008387 0.009760 0.136654 0.094735 0.001363 0.040555 0.136654 0.096561 0.273307 +0.300848 +0.053674 0.016182 0.088960 0.060358 0.030549 0.140966 0.022174 0.028045 0.095273 0.072496 0.043622 0.794131 0.045288 0.004078 0.072277 0.070919 0.019262 0.078939 0.046874 0.031382 0.018860 0.170817 0.058342 0.009345 0.058237 0.239144 0.053184 0.049159 0.029384 0.102490 0.099947 0.273307 +0.781903 +0.034807 0.002638 0.044620 0.043785 0.023773 0.173535 0.053731 0.039201 0.053811 0.055123 0.051215 0.105740 0.016339 0.037072 0.037383 0.053628 0.018941 0.094754 0.051289 0.044890 0.001624 0.239144 0.097063 0.000352 0.016092 0.239144 0.076910 0.013460 0.009433 0.239144 0.087975 0.273307 +0.008778 +0.033257 0.021290 0.073207 0.067600 0.020441 0.050155 0.059457 0.038231 0.070396 0.043824 0.024719 0.171841 0.033428 0.005854 0.057364 0.115099 0.022734 0.616793 0.062569 0.038591 0.038088 0.102490 0.052520 0.036227 0.061328 0.170817 0.076355 0.031076 0.063836 0.102490 0.064494 0.307471 +0.081056 +0.013554 0.068109 0.043161 0.115806 0.032640 0.062740 0.013542 0.002481 0.064631 0.060922 0.023944 0.176672 0.028931 0.013446 0.099903 0.039386 0.032252 0.085606 0.050294 0.038265 0.049472 0.170817 0.082096 0.020723 0.021206 0.204980 0.079786 0.003822 0.060737 0.239144 0.081341 0.273307 +0.086858 +0.018157 0.052743 0.051444 0.069937 0.018704 0.400943 0.040186 0.063218 0.082957 0.051266 0.029334 0.075800 0.066258 0.000634 0.045119 0.037326 0.036740 0.059987 0.050866 0.068144 0.049470 0.136654 0.067633 0.053230 0.021301 0.136654 0.087462 0.004203 0.064399 0.170817 0.102003 0.239144 +0.009700 +0.061968 0.048521 0.081075 0.045855 0.019253 0.167639 0.002396 0.012058 0.037398 0.039678 0.050772 0.140895 0.031304 0.058081 0.080743 0.046849 0.050319 0.073771 0.042808 0.062869 0.066008 0.239144 0.053461 0.058066 0.040570 0.307471 0.090292 0.022496 0.001720 0.170817 0.102046 0.341634 +0 +0.067544 0.059672 0.061497 0.047645 0.045401 0.248619 0.058354 0.035420 0.111062 0.058649 0.050283 0.551263 0.004626 0.051197 0.109089 0.042633 0.017391 0.214353 0.061439 0.011385 0.016536 0.102490 0.061991 0.004433 0.018104 0.136654 0.100473 0.024878 0.014729 0.204980 0.072601 0.273307 +0.452981 +0.042685 0.019261 0.103731 0.053317 0.039416 0.109399 0.049084 0.029287 0.066058 0.043593 0.042657 0.075465 0.009059 0.031186 0.037891 0.140601 0.046464 0.122592 0.042018 0.037401 0.064191 0.102490 0.099921 0.053650 0.041262 0.136654 0.062903 0.039688 0.018754 0.170817 0.061050 0.204980 +0.063031 +0.017509 0.009218 0.103316 0.037396 0.028345 0.099829 0.031500 0.036198 0.084122 0.062004 0.018177 0.237936 0.062481 0.026681 0.070738 0.047136 0.037073 0.060467 0.047066 0.033571 0.015310 0.239144 0.067751 0.026494 0.066426 0.239144 0.061159 0.042282 0.053332 0.136654 0.101939 0.307471 +0.274321 +0.054050 0.020638 0.052643 0.159342 0.029259 0.165596 0.028939 0.006028 0.037003 0.044285 0.043124 0.233539 0.047162 0.001085 0.044710 0.047373 0.034850 0.448408 0.058830 0.011481 0.050538 0.204980 0.071601 0.045320 0.034370 0.170817 0.053543 0.046177 0.004076 0.102490 0.097616 0.239144 +0.554539 +0.027589 0.021136 0.053251 0.134329 0.025648 0.073113 0.013674 0.047138 0.061929 0.049553 0.033151 0.082423 0.052860 0.020340 0.055225 0.057838 0.019962 0.127506 0.047306 0.032806 0.024030 0.170817 0.057489 0.039638 0.007781 0.102490 0.087829 0.042782 0.048783 0.170817 0.059531 0.204980 +0.124350 +0.037624 0.023009 0.059081 0.066452 0.044421 0.079982 0.010125 0.032862 0.047584 0.066969 0.026182 0.091525 0.013372 0.059655 0.205067 0.045931 0.038392 0.127268 0.054665 0.064883 0.005846 0.136654 0.084041 0.014483 0.004539 0.170817 0.052860 0.033112 0.062090 0.170817 0.095697 0.341634 +0 +0.046262 0.046797 0.078539 0.050647 0.017843 0.243591 0.004441 0.040171 0.081136 0.065018 0.029654 0.146735 0.067100 0.001367 0.134359 0.045718 0.023847 0.234174 0.055294 0.046981 0.024762 0.102490 0.054348 0.025213 0.000956 0.136654 0.062776 0.041241 0.017623 0.170817 0.064409 0.204980 +0.226735 +0.052778 0.026424 0.038035 0.122857 0.025822 0.210544 0.014168 0.035579 0.071190 0.041600 0.022433 0.120383 0.030760 0.035741 0.047568 0.038251 0.045057 0.094103 0.061408 0.056361 0.061718 0.102490 0.097664 0.048431 0.035980 0.170817 0.082657 0.058938 0.050615 0.102490 0.096514 0.239144 +0.012215 +0.038584 0.032314 0.072815 0.048204 0.039563 0.368057 0.038152 0.015001 0.062847 0.088082 0.046294 0.239367 0.032255 0.036632 0.133035 0.068343 0.051095 0.053698 0.060712 0.033125 0.045699 0.170817 0.058013 0.048961 0.022534 0.204980 0.056218 0.065329 0.050205 0.273307 0.051620 0.307471 +0.356790 +0.029842 0.026686 0.123060 0.072899 0.027018 0.169104 0.020670 0.044587 0.055396 0.071268 0.021434 0.091614 0.057749 0.055902 0.045965 0.065436 0.037297 0.097020 0.061733 0.028817 0.003714 0.204980 0.063354 0.015043 0.058607 0.136654 0.096456 0.053736 0.061583 0.136654 0.055738 0.239144 +0.135922 +0.012651 0.062675 0.058681 0.058362 0.044486 0.226921 0.056690 0.032423 0.036102 0.113912 0.040494 0.062288 0.064879 0.066858 0.052688 0.034915 0.050666 0.056486 0.047790 0.068323 0.064024 0.170817 0.083866 0.039253 0.019336 0.136654 0.078466 0.018771 0.036523 0.170817 0.084732 0.204980 +0 +0.010146 0.008174 0.034275 0.058201 0.049694 0.207261 0.061940 0.050006 0.067694 0.089679 0.024191 0.148324 0.012869 0.019442 0.042027 0.047468 0.038094 0.078239 0.056848 0.029419 0.023303 0.102490 0.065638 0.004311 0.039315 0.136654 0.090697 0.040909 0.009003 0.170817 0.099199 0.204980 +0.096674 +0.026047 0.002544 0.040172 0.041737 0.019533 0.080676 0.011635 0.058081 0.102848 0.060328 0.040127 0.136036 0.007237 0.025718 0.049889 0.056369 0.042192 0.042675 0.054223 0.026791 0.053113 0.102490 0.101763 0.058672 0.028932 0.102490 0.062213 0.006167 0.010646 0.136654 0.063806 0.204980 +0.018611 +0.026978 0.018073 0.045692 0.070453 0.032245 0.102963 0.056147 0.006260 0.035679 0.037114 0.044800 0.323965 0.003846 0.056521 0.087016 0.037929 0.046644 0.155760 0.065689 0.045840 0.010645 0.239144 0.087454 0.045804 0.024353 0.170817 0.073344 0.067523 0.048748 0.170817 0.058143 0.273307 +0.370068 +0.030224 0.053022 0.060202 0.156622 0.023933 0.193877 0.042076 0.013413 0.058679 0.047204 0.042349 0.118152 0.056990 0.037433 0.050521 0.049380 0.044055 0.231365 0.050128 0.033864 0.002235 0.136654 0.084451 0.000441 0.021243 0.170817 0.061534 0.061068 0.016521 0.136654 0.078831 0.239144 +0.047617 +0.008779 0.010774 0.046152 0.061722 0.050267 0.217182 0.028558 0.066977 0.046663 0.122687 0.021100 0.054199 0.010536 0.060802 0.043160 0.059011 0.035981 0.160003 0.046936 0.020557 0.052653 0.170817 0.093665 0.034759 0.031283 0.102490 0.065885 0.026166 0.031516 0.102490 0.061859 0.239144 +0 +0.013034 0.012523 0.054856 0.056049 0.043063 0.279453 0.036849 0.037642 0.064235 0.149583 0.027081 0.043921 0.033013 0.014593 0.036622 0.043688 0.020378 0.078019 0.041241 0.057473 0.023096 0.239144 0.089795 0.039865 0.004991 0.204980 0.094762 0.053745 0.015048 0.136654 0.064318 0.273307 +0.086831 +0.060567 0.025968 0.039003 0.076755 0.020954 0.060015 0.008674 0.054756 0.097662 0.183566 0.045216 0.104796 0.001373 0.029664 0.075459 0.049073 0.028624 0.334770 0.057231 0.012576 0.042547 0.136654 0.051516 0.032217 0.026315 0.102490 0.056458 0.032518 0.048302 0.170817 0.070569 0.239144 +0.438080 +0.031445 0.044498 0.086688 0.095344 0.049876 0.078772 0.012973 0.036614 0.099149 0.063807 0.031369 0.065239 0.063078 0.018779 0.112900 0.044856 0.031786 0.048381 0.051753 0.064041 0.053042 0.102490 0.052914 0.032611 0.023328 0.170817 0.090195 0.032968 0.014312 0.170817 0.074965 0.204980 +0.013891 +0.056010 0.063516 0.047560 0.053652 0.024889 0.126031 0.040900 0.067265 0.038934 0.056960 0.043134 0.069253 0.041380 0.044124 0.049935 0.044642 0.047618 0.150039 0.056432 0.022303 0.013728 0.204980 0.085568 0.062498 0.007776 0.136654 0.072471 0.051224 0.020175 0.170817 0.066117 0.239144 +0.020839 +0.008202 0.017722 0.044432 0.052810 0.024178 0.058831 0.011192 0.030855 0.039830 0.048846 0.023541 0.112004 0.055284 0.001642 0.062664 0.093678 0.033861 0.087911 0.049380 0.011220 0.063819 0.136654 0.072982 0.034495 0.016801 0.136654 0.060710 0.013110 0.015191 0.170817 0.063336 0.204980 +0.010104 +0.013737 0.005727 0.069036 0.044844 0.049257 0.065033 0.013877 0.041820 0.076415 0.038075 0.029093 0.047512 0.010893 0.016275 0.089717 0.085069 0.023157 0.215009 0.046191 0.012892 0.059047 0.136654 0.067612 0.019572 0.053271 0.170817 0.090482 0.040989 0.068057 0.136654 0.079624 0.239144 +0 +0.066774 0.047200 0.059523 0.128326 0.049294 0.181595 0.022755 0.008586 0.081679 0.050964 0.033495 0.062792 0.050403 0.015164 0.088346 0.063829 0.040120 0.165067 0.065296 0.045686 0.067120 0.170817 0.087042 0.027946 0.038954 0.170817 0.057993 0.042680 0.031138 0.102490 0.083477 0.273307 +0.008058 +0.007313 0.012725 0.036082 0.050461 0.038362 0.035292 0.019937 0.034909 0.091539 0.058092 0.049411 0.110113 0.039796 0.027902 0.047433 0.074755 0.045901 0.288028 0.050275 0.033450 0.030845 0.102490 0.096041 0.063981 0.034293 0.239144 0.057136 0.062585 0.035386 0.204980 0.058709 0.307471 +0.024825 +0.016229 0.052327 0.052837 0.094705 0.042244 0.062482 0.003852 0.012748 0.069891 0.090738 0.020177 0.178749 0.047894 0.021700 0.128047 0.061008 0.028725 0.318241 0.060175 0.051122 0.036485 0.136654 0.064566 0.022310 0.048554 0.170817 0.091432 0.054592 0.044607 0.102490 0.054952 0.204980 +0.438294 +0.049755 0.024233 0.076596 0.055099 0.046206 0.131080 0.006622 0.067108 0.064492 0.071329 0.047431 0.456490 0.039024 0.030032 0.099499 0.042592 0.041880 0.052096 0.048100 0.047961 0.033906 0.170817 0.066409 0.067055 0.014618 0.273307 0.062175 0.051094 0.058026 0.170817 0.064657 0.341634 +0.054179 +0.045127 0.064165 0.044504 0.070944 0.021217 0.117009 0.046898 0.055182 0.041005 0.134271 0.022324 0.133845 0.014774 0.044483 0.055595 0.041055 0.021887 0.154669 0.048882 0.030853 0.024918 0.102490 0.085781 0.047251 0.067577 0.239144 0.094747 0.018555 0.018529 0.239144 0.074636 0.307471 +0.013506 +0.037788 0.000204 0.067521 0.087481 0.028108 0.048157 0.055207 0.033892 0.059516 0.066338 0.027536 0.175272 0.055792 0.025252 0.040714 0.051657 0.043863 0.084947 0.038194 0.041364 0.065699 0.170817 0.087322 0.010609 0.024307 0.273307 0.088876 0.034446 0.005932 0.136654 0.093802 0.307471 +0 +0.028961 0.043438 0.054721 0.057385 0.051171 0.287750 0.012425 0.046527 0.057746 0.077948 0.049423 0.090439 0.027700 0.031478 0.047839 0.144278 0.047633 0.150171 0.044933 0.011122 0.021878 0.136654 0.059781 0.064306 0.011791 0.102490 0.088318 0.013210 0.065199 0.204980 0.100310 0.239144 +0.130913 +0.046641 0.002096 0.073461 0.034953 0.044457 0.174754 0.024615 0.019405 0.092498 0.128057 0.036834 0.084436 0.022445 0.029200 0.044203 0.037092 0.036248 0.105452 0.061999 0.001614 0.064162 0.170817 0.095871 0.053321 0.031452 0.102490 0.062553 0.023070 0.003452 0.102490 0.084916 0.204980 +0.007617 +0.036611 0.006241 0.110006 0.128834 0.022379 0.157941 0.055650 0.022248 0.040852 0.067306 0.042514 0.067067 0.061926 0.004032 0.076514 0.038606 0.023331 0.054913 0.053029 0.003519 0.017215 0.136654 0.059980 0.012995 0.046005 0.170817 0.081994 0.065105 0.032713 0.204980 0.070125 0.239144 +0.004255 +0.063422 0.025881 0.044758 0.043405 0.018979 0.164911 0.004512 0.032213 0.090011 0.063322 0.042915 0.150479 0.060246 0.013542 0.081602 0.063042 0.048476 0.294585 0.039466 0.055086 0.059704 0.170817 0.072681 0.063573 0.010496 0.136654 0.086249 0.021294 0.015574 0.136654 0.067281 0.204980 +0.136941 +0.051048 0.014583 0.053535 0.046482 0.019182 0.065925 0.048007 0.048155 0.036641 0.113833 0.031451 0.062500 0.050300 0.006583 0.042465 0.094957 0.040202 0.417938 0.053186 0.034407 0.062299 0.136654 0.069157 0.002661 0.042772 0.102490 0.086013 0.042563 0.023749 0.170817 0.063952 0.273307 +0.153298 +0.021590 0.035346 0.067842 0.118471 0.023361 0.084545 0.052459 0.025241 0.056568 0.048635 0.030557 0.059974 0.025995 0.011242 0.104574 0.035832 0.022094 0.067465 0.059265 0.068029 0.023819 0.102490 0.063525 0.058716 0.000923 0.239144 0.063998 0.003733 0.014784 0.307471 0.085674 0.341634 +0 +0.038761 0.063821 0.034541 0.046258 0.023846 0.157068 0.046535 0.044818 0.048541 0.051183 0.041812 0.142033 0.058382 0.050659 0.037438 0.060123 0.027650 0.040139 0.041691 0.028735 0.017219 0.136654 0.072170 0.063095 0.023479 0.136654 0.070696 0.052044 0.039600 0.170817 0.093831 0.204980 +0.176112 +0.019200 0.056694 0.054426 0.056463 0.040930 0.070544 0.010587 0.018064 0.035120 0.078344 0.047855 0.500898 0.055360 0.022721 0.072105 0.080152 0.023812 0.052030 0.039235 0.032299 0.022846 0.136654 0.084030 0.051260 0.002655 0.136654 0.093280 0.060461 0.022076 0.136654 0.051812 0.239144 +0.431041 +0.049240 0.041228 0.039904 0.167449 0.019754 0.175599 0.068297 0.041943 0.046651 0.038694 0.040666 0.104888 0.036916 0.000921 0.037322 0.154395 0.046029 0.405542 0.044173 0.038758 0.019426 0.170817 0.069027 0.000869 0.056529 0.136654 0.056359 0.036570 0.067146 0.273307 0.059650 0.307471 +0.328250 +0.059840 0.049768 0.095321 0.035967 0.018102 0.381804 0.067612 0.038376 0.103827 0.092582 0.030634 0.320015 0.032483 0.065684 0.038228 0.045433 0.038453 0.049568 0.044695 0.022666 0.003919 0.239144 0.090427 0.052103 0.064892 0.204980 0.054646 0.052484 0.060015 0.136654 0.068678 0.341634 +0.702627 +0.067326 0.067629 0.064865 0.044536 0.033502 0.047699 0.058372 0.000324 0.107329 0.077961 0.041597 0.044785 0.036029 0.023431 0.074630 0.059238 0.032360 0.184284 0.046994 0.010885 0.025971 0.170817 0.086815 0.038148 0.020017 0.239144 0.076202 0.036487 0.024430 0.170817 0.070876 0.307471 +0 +0.066115 0.029286 0.038500 0.034424 0.051228 0.057534 0.061685 0.038611 0.038194 0.073613 0.037843 0.383044 0.065199 0.012866 0.060081 0.045897 0.043805 0.567195 0.048387 0.018126 0.003655 0.136654 0.089283 0.065607 0.004765 0.170817 0.088522 0.007336 0.018765 0.204980 0.101416 0.307471 +0.743107 +0.037477 0.006204 0.052724 0.041542 0.031127 0.252655 0.006020 0.002600 0.117171 0.120760 0.026192 0.037320 0.066980 0.011026 0.116217 0.043812 0.025177 0.086350 0.061734 0.050310 0.017466 0.102490 0.075414 0.033238 0.033432 0.136654 0.061091 0.038658 0.012618 0.239144 0.055208 0.341634 +0 +0.022090 0.014955 0.037977 0.052225 0.033199 0.177311 0.011836 0.045232 0.064598 0.041094 0.048229 0.056441 0.035863 0.001700 0.058282 0.076591 0.023487 0.528282 0.057919 0.055683 0.038810 0.102490 0.086271 0.055354 0.047900 0.204980 0.088595 0.024137 0.020767 0.170817 0.097711 0.239144 +0.101946 +0.045903 0.000968 0.037837 0.148135 0.024973 0.109084 0.026709 0.054938 0.075623 0.076348 0.044477 0.109334 0.034549 0.054355 0.051269 0.063222 0.029356 0.429309 0.052481 0.024649 0.054808 0.102490 0.072436 0.028096 0.030053 0.136654 0.083659 0.014594 0.020434 0.102490 0.063222 0.239144 +0 +0.016456 0.028654 0.124162 0.098457 0.021303 0.191317 0.035788 0.003145 0.046893 0.071502 0.045363 0.196152 0.028737 0.043129 0.142925 0.057757 0.033818 0.162765 0.043128 0.005332 0.048675 0.170817 0.101056 0.054948 0.014862 0.170817 0.065566 0.021012 0.022747 0.102490 0.064289 0.341634 +0 +0.000103 0.028771 0.041806 0.043193 0.042572 0.191899 0.058832 0.059300 0.053032 0.083153 0.028510 0.109524 0.012434 0.043080 0.097082 0.034849 0.024815 0.049288 0.045909 0.056387 0.064652 0.136654 0.072570 0.032352 0.024872 0.170817 0.099882 0.053915 0.035289 0.102490 0.066189 0.204980 +0.121012 +0.036757 0.044969 0.081211 0.073914 0.049073 0.036000 0.004457 0.042233 0.079746 0.099154 0.037937 0.040838 0.058697 0.019280 0.058170 0.051803 0.018550 0.073544 0.049305 0.041388 0.048546 0.273307 0.082426 0.039614 0.065617 0.136654 0.091705 0.040095 0.026848 0.273307 0.057882 0.341634 +0 +0.055887 0.031755 0.075389 0.070628 0.039674 0.041224 0.025256 0.040544 0.084115 0.040647 0.025725 0.527642 0.039391 0.035380 0.039297 0.059826 0.045355 0.083407 0.046089 0.044256 0.050658 0.136654 0.067706 0.061815 0.066743 0.102490 0.082628 0.034502 0.003442 0.170817 0.051791 0.204980 +0.582455 +0.026658 0.004452 0.137491 0.054724 0.045669 0.126071 0.067436 0.043166 0.083737 0.034730 0.032535 0.127602 0.059190 0.049061 0.040326 0.036959 0.021595 0.080998 0.043564 0.044334 0.058179 0.204980 0.056150 0.001104 0.066043 0.102490 0.069991 0.037499 0.046304 0.239144 0.083328 0.341634 +0.005911 +0.056417 0.068217 0.054987 0.039304 0.026102 0.095576 0.043971 0.009419 0.048450 0.035968 0.038672 0.266833 0.066286 0.045537 0.114581 0.042653 0.047683 0.123544 0.061260 0.002108 0.035037 0.273307 0.060090 0.009890 0.010532 0.273307 0.065146 0.007638 0.020767 0.273307 0.077653 0.341634 +0.400159 +0.001787 0.052400 0.035256 0.057549 0.030070 0.075307 0.051483 0.038682 0.056838 0.062494 0.031330 0.241858 0.037539 0.027887 0.080904 0.060997 0.050793 0.064678 0.054243 0.023837 0.031020 0.170817 0.054198 0.004472 0.005825 0.136654 0.085671 0.023729 0.068216 0.102490 0.099513 0.239144 +0.099664 +0.007840 0.006969 0.119748 0.042725 0.039854 0.179094 0.030570 0.056773 0.088135 0.043080 0.045428 0.256155 0.045895 0.062568 0.037385 0.094575 0.038751 0.168275 0.060452 0.023673 0.019698 0.102490 0.084462 0.020802 0.008424 0.170817 0.085308 0.012199 0.013540 0.170817 0.093952 0.239144 +0.155922 +0.016384 0.030537 0.057955 0.065311 0.050865 0.062709 0.050090 0.013437 0.072289 0.056201 0.048484 0.094288 0.053112 0.014226 0.099355 0.037544 0.045232 0.282450 0.051912 0.032236 0.064024 0.136654 0.065933 0.058648 0.066033 0.170817 0.053805 0.063958 0.024374 0.170817 0.077367 0.204980 +0.392826 +0.064233 0.018963 0.051121 0.041368 0.043486 0.108673 0.058609 0.062875 0.040453 0.102611 0.036244 0.134697 0.026209 0.001465 0.034689 0.048868 0.034813 0.065507 0.055506 0.045001 0.045947 0.239144 0.070614 0.032935 0.050974 0.136654 0.096439 0.034193 0.051267 0.307471 0.100637 0.341634 +0.012707 +0.000192 0.048137 0.053221 0.132422 0.023171 0.050263 0.038732 0.049585 0.040878 0.060680 0.050989 0.063541 0.053368 0.024569 0.040828 0.058135 0.044337 0.247178 0.058714 0.000955 0.021260 0.136654 0.089593 0.050157 0.000868 0.170817 0.051855 0.024708 0.048672 0.102490 0.059553 0.239144 +0 +0.043282 0.049491 0.103350 0.043514 0.047716 0.038855 0.022956 0.009485 0.076826 0.062206 0.018995 0.162781 0.054787 0.018287 0.034335 0.102135 0.037730 0.167784 0.045867 0.009126 0.062941 0.239144 0.063128 0.060505 0.064866 0.136654 0.093020 0.004703 0.047359 0.136654 0.088079 0.273307 +0.051895 +0.034649 0.047849 0.086285 0.112852 0.034135 0.360748 0.002674 0.041988 0.048234 0.044168 0.017635 0.299179 0.006058 0.057788 0.037511 0.062295 0.029130 0.052641 0.047584 0.005670 0.022647 0.204980 0.053501 0.038112 0.035599 0.170817 0.052622 0.048764 0.058395 0.170817 0.056718 0.307471 +0.632797 +0.020396 0.015485 0.059636 0.056162 0.034684 0.193819 0.010874 0.022428 0.070872 0.104249 0.024153 0.054912 0.062225 0.056107 0.055860 0.051053 0.028793 0.039864 0.041727 0.067651 0.058090 0.204980 0.054613 0.033778 0.036678 0.102490 0.062387 0.058672 0.059142 0.307471 0.078932 0.341634 +0.153747 +0.066626 0.033313 0.044697 0.161299 0.049836 0.198826 0.068318 0.050828 0.061921 0.073835 0.034237 0.133970 0.000868 0.058481 0.050315 0.058704 0.031709 0.074270 0.055075 0.021009 0.043098 0.307471 0.070704 0.054287 0.015232 0.239144 0.072917 0.035761 0.021066 0.102490 0.079361 0.341634 +0.005187 +0.038386 0.013344 0.080584 0.045283 0.017156 0.178970 0.041675 0.000130 0.053753 0.041485 0.020944 0.077557 0.040588 0.035970 0.104756 0.108830 0.026834 0.118130 0.057219 0.006437 0.022858 0.239144 0.073082 0.063898 0.015074 0.273307 0.061939 0.001962 0.000314 0.170817 0.066594 0.307471 +0.100779 +0.005569 0.002124 0.130445 0.034314 0.027745 0.110672 0.033824 0.061673 0.038068 0.079887 0.036940 0.078863 0.025673 0.047850 0.034813 0.043229 0.047812 0.124985 0.051854 0.021125 0.000910 0.102490 0.065084 0.012375 0.065268 0.170817 0.084907 0.033586 0.059643 0.239144 0.097637 0.273307 +0.077039 +0.050788 0.034510 0.083859 0.042582 0.048004 0.041903 0.003082 0.058443 0.128578 0.116050 0.043602 0.407996 0.030149 0.066234 0.109316 0.034763 0.020363 0.065340 0.054636 0.014680 0.051542 0.102490 0.058095 0.003712 0.022407 0.136654 0.073329 0.035632 0.040605 0.136654 0.095967 0.204980 +0.186377 +0.063419 0.062976 0.057989 0.111068 0.039434 0.085764 0.021855 0.017107 0.053648 0.037969 0.036816 0.264203 0.049815 0.046894 0.081353 0.046489 0.049716 0.131898 0.050209 0.024199 0.025212 0.204980 0.060117 0.053792 0.044939 0.239144 0.064826 0.064312 0.064508 0.102490 0.072907 0.273307 +0.749477 +0.029298 0.001538 0.046813 0.038150 0.040789 0.111158 0.028831 0.057679 0.053425 0.038934 0.026426 0.258232 0.037160 0.019091 0.050072 0.116774 0.041062 0.132459 0.055066 0.054100 0.003814 0.170817 0.064147 0.018851 0.019206 0.204980 0.065182 0.028559 0.063005 0.204980 0.053409 0.307471 +0.001635 +0.058581 0.064316 0.073366 0.042745 0.022464 0.072962 0.059078 0.013031 0.066533 0.040118 0.021974 0.105179 0.002914 0.034608 0.081080 0.044425 0.020881 0.043533 0.050173 0.016143 0.038157 0.170817 0.051919 0.007668 0.039913 0.273307 0.076855 0.019056 0.001915 0.273307 0.063849 0.341634 +0 +0.063623 0.019981 0.121580 0.061211 0.018859 0.243278 0.064608 0.068007 0.140284 0.040568 0.051164 0.169237 0.024828 0.004010 0.065993 0.064944 0.047992 0.157107 0.046025 0.037311 0.056677 0.239144 0.097277 0.054024 0.064437 0.136654 0.078348 0.066057 0.008077 0.102490 0.087046 0.273307 +0.086919 +0.024034 0.066629 0.060072 0.101745 0.034642 0.061052 0.039838 0.001455 0.061195 0.051236 0.021884 0.105070 0.036768 0.029370 0.063910 0.050380 0.028383 0.160651 0.045692 0.061788 0.034860 0.273307 0.054889 0.017904 0.041238 0.239144 0.078572 0.037034 0.058695 0.273307 0.071151 0.307471 +0.022252 +0.021779 0.036490 0.097069 0.040830 0.022374 0.091646 0.000525 0.058031 0.036329 0.089864 0.043707 0.056120 0.034490 0.057912 0.063648 0.034506 0.028764 0.043810 0.044902 0.051054 0.066948 0.273307 0.081670 0.014423 0.048438 0.136654 0.053606 0.001151 0.053910 0.170817 0.062498 0.307471 +0 +0.039013 0.009333 0.051766 0.055840 0.032691 0.089377 0.047999 0.026500 0.048382 0.081726 0.017917 0.138180 0.059783 0.059098 0.117451 0.102010 0.028595 0.047142 0.064874 0.002123 0.038096 0.102490 0.086394 0.045733 0.067936 0.170817 0.051586 0.035835 0.047127 0.239144 0.083950 0.273307 +0.073238 +0.035401 0.018819 0.108548 0.040420 0.037416 0.098100 0.032811 0.050450 0.037221 0.044923 0.029221 0.214077 0.024784 0.025853 0.041581 0.078578 0.019514 0.127215 0.057318 0.060777 0.016052 0.204980 0.094820 0.022670 0.048690 0.170817 0.061136 0.047303 0.057221 0.273307 0.077275 0.307471 +0.067816 +0.042720 0.047342 0.087479 0.060937 0.043692 0.271815 0.012926 0.037384 0.036887 0.041381 0.024930 0.173175 0.004557 0.041722 0.034729 0.053526 0.043690 0.410235 0.055297 0.016543 0.000287 0.102490 0.100957 0.030964 0.061489 0.136654 0.097831 0.064892 0.062938 0.136654 0.063864 0.204980 +0.548142 +0.023697 0.037616 0.046940 0.063576 0.019442 0.108554 0.026081 0.025963 0.054003 0.035935 0.044273 0.091707 0.020201 0.052095 0.042001 0.050916 0.035503 0.126471 0.058257 0.050940 0.058631 0.239144 0.093245 0.036422 0.012999 0.273307 0.064166 0.042569 0.050361 0.102490 0.067033 0.307471 +0.016379 +0.020196 0.029753 0.050087 0.068878 0.050343 0.038360 0.066812 0.002536 0.043465 0.072125 0.050616 0.037619 0.038692 0.029944 0.091779 0.094475 0.020782 0.061824 0.052115 0.033343 0.036014 0.170817 0.081637 0.027785 0.059869 0.170817 0.097449 0.017641 0.060453 0.136654 0.089021 0.341634 +0 +0.046883 0.062662 0.043629 0.204576 0.049421 0.049751 0.016591 0.003586 0.091825 0.101932 0.030019 0.057172 0.058164 0.065829 0.037149 0.034960 0.042983 0.087146 0.049657 0.029363 0.056194 0.170817 0.090492 0.042987 0.033383 0.102490 0.094425 0.057746 0.023863 0.102490 0.054934 0.273307 +0 +0.013125 0.037549 0.096936 0.106734 0.046165 0.053278 0.000057 0.030577 0.082566 0.049337 0.047536 0.085150 0.043277 0.028440 0.049449 0.051383 0.020298 0.115475 0.054357 0.009566 0.042156 0.204980 0.087561 0.060312 0.062764 0.273307 0.100460 0.024049 0.051945 0.170817 0.093429 0.341634 +0 +0.066001 0.008957 0.059183 0.058059 0.033866 0.062652 0.056939 0.015889 0.035929 0.064231 0.037418 0.075179 0.024618 0.019823 0.218622 0.058501 0.023925 0.129248 0.057953 0.016261 0.055215 0.170817 0.088797 0.034246 0.056119 0.239144 0.060735 0.044000 0.019339 0.239144 0.098980 0.341634 +0.009173 +0.000545 0.052618 0.053107 0.043464 0.017674 0.079425 0.061528 0.066824 0.034624 0.034480 0.030882 0.278848 0.006129 0.044938 0.038963 0.088933 0.044273 0.078522 0.051830 0.054409 0.011987 0.102490 0.056423 0.046899 0.067692 0.170817 0.094520 0.065834 0.054664 0.170817 0.100106 0.307471 +0.150575 +0.056891 0.008542 0.083166 0.034745 0.025067 0.335155 0.064763 0.008454 0.126367 0.049050 0.050842 0.099458 0.029833 0.045854 0.039300 0.061207 0.037910 0.068779 0.050963 0.012587 0.043777 0.170817 0.095527 0.059038 0.043962 0.102490 0.088211 0.033714 0.009506 0.239144 0.068498 0.273307 +0.142190 +0.067595 0.054172 0.035303 0.058542 0.023770 0.142851 0.011846 0.032283 0.058526 0.055606 0.019803 0.705980 0.006346 0.020286 0.055626 0.082664 0.034887 0.381372 0.049035 0.060702 0.005967 0.170817 0.061157 0.059600 0.027338 0.136654 0.059509 0.003453 0.051544 0.102490 0.070712 0.341634 +0.871199 +0.066068 0.006758 0.110465 0.086757 0.037424 0.049539 0.058707 0.057038 0.045450 0.054115 0.029929 0.129884 0.058623 0.050097 0.063657 0.073523 0.042516 0.082044 0.050944 0.036860 0.065834 0.204980 0.073517 0.062884 0.052036 0.204980 0.085627 0.046284 0.030334 0.136654 0.071731 0.239144 +0 +0.030087 0.010364 0.047220 0.041794 0.021639 0.111984 0.047346 0.053541 0.106678 0.080827 0.033976 0.071677 0.045884 0.038791 0.042738 0.058192 0.041472 0.075772 0.047998 0.058193 0.026685 0.273307 0.066099 0.054258 0.009552 0.204980 0.066935 0.001030 0.035233 0.273307 0.051356 0.307471 +0.008012 +0.011482 0.031190 0.065102 0.097389 0.043581 0.250635 0.049786 0.031433 0.042902 0.046446 0.036355 0.051940 0.011556 0.049134 0.051109 0.090852 0.034192 0.049199 0.048341 0.044682 0.043613 0.136654 0.084145 0.043569 0.004579 0.136654 0.091733 0.041001 0.052944 0.170817 0.101011 0.239144 +0.008712 +0.038829 0.025847 0.041042 0.154537 0.048852 0.227220 0.002233 0.009875 0.046186 0.039109 0.025316 0.229958 0.024476 0.063214 0.043210 0.036023 0.031668 0.080859 0.041585 0.049788 0.021517 0.204980 0.088860 0.004178 0.035882 0.136654 0.072299 0.039338 0.032582 0.239144 0.077063 0.307471 +0.191326 +0.055598 0.011020 0.037029 0.041288 0.023588 0.210867 0.022930 0.039208 0.051374 0.057678 0.038426 0.077698 0.010088 0.028952 0.055485 0.040630 0.049252 0.223212 0.037376 0.005972 0.006893 0.170817 0.085628 0.029970 0.043876 0.136654 0.068935 0.044729 0.001487 0.136654 0.059603 0.204980 +0.316177 +0.026636 0.044532 0.051417 0.036528 0.028352 0.170811 0.067298 0.000960 0.058799 0.081283 0.034837 0.293581 0.014039 0.057489 0.100951 0.036146 0.049023 0.324387 0.045667 0.005089 0.037936 0.136654 0.098150 0.033753 0.028358 0.204980 0.087554 0.019188 0.027534 0.170817 0.071770 0.273307 +0.125068 +0.047732 0.060362 0.048700 0.037902 0.040924 0.108879 0.021922 0.060663 0.059618 0.080218 0.032940 0.043091 0.028215 0.039117 0.065806 0.109473 0.031089 0.212228 0.051412 0.005026 0.022586 0.273307 0.060951 0.063870 0.058138 0.136654 0.100903 0.018942 0.010002 0.170817 0.101751 0.307471 +0.169510 +0.037380 0.002110 0.067366 0.035582 0.046595 0.037037 0.062037 0.050861 0.082748 0.061656 0.038041 0.060130 0.053033 0.005259 0.076288 0.035001 0.028898 0.161988 0.042002 0.002792 0.062598 0.102490 0.096908 0.014744 0.004338 0.239144 0.082327 0.061255 0.059420 0.239144 0.053466 0.273307 +0 +0.062849 0.051327 0.076319 0.069884 0.029173 0.099625 0.050130 0.042214 0.043901 0.036647 0.023533 0.035978 0.007744 0.022119 0.048577 0.079341 0.029611 0.044201 0.053386 0.048415 0.011868 0.136654 0.083014 0.061486 0.017288 0.102490 0.080698 0.063062 0.041289 0.136654 0.058588 0.204980 +0.005073 +0.024284 0.046616 0.132126 0.078051 0.017698 0.088107 0.037790 0.051554 0.053374 0.057506 0.048375 0.085971 0.001355 0.008357 0.035075 0.035765 0.017210 0.094683 0.050152 0.004747 0.017522 0.102490 0.089316 0.020247 0.006118 0.136654 0.093782 0.041959 0.020091 0.170817 0.074432 0.204980 +0.045742 +0.034805 0.016674 0.063690 0.045620 0.047662 0.058003 0.003687 0.060508 0.043719 0.093641 0.030514 0.056555 0.050538 0.037365 0.041802 0.037490 0.017283 0.123186 0.050361 0.064127 0.026800 0.204980 0.097146 0.008012 0.040795 0.204980 0.096284 0.047523 0.002162 0.136654 0.094276 0.239144 +0.006007 +0.051231 0.057366 0.101775 0.044626 0.021666 0.065958 0.023981 0.056337 0.090622 0.069364 0.029353 0.070500 0.028179 0.004046 0.078046 0.048308 0.031604 0.081109 0.048617 0.020059 0.028810 0.239144 0.061582 0.007361 0.035239 0.102490 0.074407 0.004839 0.017639 0.204980 0.058749 0.341634 +0 +0.048087 0.061025 0.063710 0.104243 0.028642 0.039058 0.009538 0.064359 0.048194 0.072624 0.041097 0.083888 0.004262 0.051366 0.043619 0.055970 0.039982 0.148170 0.050472 0.006586 0.065398 0.204980 0.056740 0.021927 0.035596 0.170817 0.051277 0.013504 0.054726 0.170817 0.095405 0.273307 +0.198915 +0.004299 0.040946 0.040016 0.060189 0.017714 0.037286 0.040942 0.047472 0.052529 0.078493 0.026880 0.206925 0.030653 0.016962 0.043706 0.076872 0.034697 0.091501 0.041781 0.035788 0.030751 0.136654 0.092118 0.063369 0.004133 0.102490 0.086176 0.003879 0.020531 0.136654 0.070809 0.204980 +0.292506 +0.033661 0.060885 0.039435 0.065224 0.025623 0.234392 0.019014 0.001183 0.034704 0.065710 0.019164 0.348090 0.032782 0.060593 0.040781 0.125984 0.030467 0.040113 0.048831 0.028177 0.010626 0.102490 0.096560 0.006400 0.067611 0.136654 0.088227 0.039633 0.046429 0.102490 0.055227 0.273307 +0.530661 +0.021226 0.032207 0.101786 0.047634 0.041141 0.301714 0.012573 0.048993 0.039101 0.042388 0.043644 0.064473 0.025075 0.058153 0.035076 0.057074 0.049285 0.045948 0.054055 0.017385 0.012533 0.239144 0.058750 0.029198 0.010857 0.136654 0.085027 0.043314 0.060805 0.239144 0.079895 0.273307 +0.245923 +0.065503 0.004624 0.035227 0.042709 0.050478 0.078148 0.031338 0.023260 0.192729 0.055347 0.025900 0.061428 0.041150 0.063289 0.041306 0.118473 0.026341 0.288745 0.047077 0.056647 0.002411 0.273307 0.080226 0.027680 0.048871 0.273307 0.086995 0.001218 0.048732 0.239144 0.086626 0.341634 +0.170387 +0.014045 0.030543 0.039926 0.041488 0.017463 0.041284 0.035655 0.065613 0.073643 0.060317 0.022914 0.106982 0.012112 0.043130 0.053118 0.075703 0.048224 0.198868 0.058042 0.005807 0.014165 0.102490 0.082425 0.056038 0.002066 0.239144 0.085217 0.029787 0.045171 0.307471 0.097775 0.341634 +0.111661 +0.017477 0.019149 0.040902 0.057293 0.035498 0.054204 0.016828 0.007529 0.063557 0.084767 0.017910 0.226363 0.027859 0.034710 0.061811 0.035854 0.039823 0.329914 0.048757 0.022514 0.029009 0.102490 0.054827 0.022905 0.060831 0.170817 0.084991 0.037586 0.026524 0.170817 0.066015 0.204980 +0.211515 +0.018190 0.037577 0.070720 0.054645 0.046647 0.352819 0.022983 0.054575 0.050117 0.045800 0.027290 0.246807 0.049365 0.060116 0.070046 0.037299 0.037780 0.088756 0.062649 0.006699 0.001487 0.102490 0.073146 0.013840 0.056445 0.170817 0.076637 0.023736 0.056661 0.170817 0.098730 0.239144 +0.055269 +0.005861 0.002948 0.052062 0.059373 0.034281 0.054121 0.051820 0.046438 0.080317 0.086786 0.044939 0.166474 0.047718 0.022328 0.090905 0.034228 0.036716 0.424963 0.040027 0.019438 0.061090 0.170817 0.054758 0.041285 0.058375 0.102490 0.053132 0.013991 0.023348 0.102490 0.055802 0.204980 +0.631382 +0.000095 0.042352 0.045665 0.053204 0.038219 0.153820 0.002916 0.031405 0.045080 0.057833 0.027527 0.225837 0.059258 0.035621 0.063531 0.051382 0.025991 0.055405 0.040977 0.053935 0.054870 0.273307 0.093086 0.041125 0.042693 0.204980 0.088655 0.024509 0.042284 0.170817 0.069702 0.307471 +0.485901 +0.051728 0.068249 0.036332 0.050871 0.036315 0.055220 0.037242 0.009562 0.075208 0.066732 0.035163 0.153555 0.006219 0.027821 0.048578 0.128722 0.025101 0.067757 0.058433 0.065814 0.010397 0.102490 0.075162 0.024953 0.030175 0.273307 0.061500 0.015950 0.063301 0.136654 0.066676 0.307471 +0.004283 +0.058435 0.039941 0.064258 0.057664 0.031091 0.137900 0.046307 0.023635 0.066477 0.057162 0.037356 0.128340 0.017640 0.042964 0.085838 0.042774 0.047593 0.248261 0.063433 0.037832 0.034452 0.170817 0.076457 0.050796 0.067017 0.136654 0.056713 0.028234 0.055845 0.239144 0.091640 0.341634 +0.029484 +0.044735 0.028465 0.037493 0.069589 0.017870 0.096734 0.012018 0.036268 0.070122 0.038628 0.037382 0.034511 0.003488 0.047650 0.052020 0.035297 0.040590 0.114317 0.057967 0.002225 0.048094 0.307471 0.081042 0.015973 0.033820 0.273307 0.051631 0.056581 0.056017 0.239144 0.067604 0.341634 +0 +0.051074 0.007256 0.058590 0.041199 0.033541 0.076276 0.058046 0.032268 0.047477 0.121486 0.028780 0.054685 0.039486 0.062495 0.040436 0.067235 0.027588 0.076507 0.054124 0.013499 0.005124 0.102490 0.062396 0.020087 0.043059 0.170817 0.101560 0.066268 0.006202 0.136654 0.081620 0.204980 +0.066944 +0.060485 0.013581 0.084410 0.068426 0.039748 0.084847 0.012569 0.058679 0.116504 0.062453 0.037542 0.090852 0.028200 0.062704 0.099985 0.048726 0.021751 0.063842 0.057748 0.063379 0.045734 0.136654 0.080005 0.029812 0.062678 0.102490 0.070067 0.044032 0.052548 0.102490 0.097717 0.307471 +0 +0.009889 0.020158 0.087186 0.073061 0.031453 0.054030 0.022261 0.011667 0.103891 0.077579 0.029771 0.441702 0.039505 0.061746 0.097945 0.064035 0.019625 0.068059 0.061878 0.006314 0.015921 0.102490 0.099804 0.011520 0.059221 0.136654 0.060212 0.018058 0.000753 0.170817 0.071295 0.239144 +0.312045 +0.037535 0.062439 0.043646 0.106565 0.035269 0.037505 0.038154 0.064996 0.081555 0.046182 0.037765 0.047860 0.030376 0.044701 0.129795 0.043006 0.018999 0.077197 0.046279 0.010595 0.006966 0.204980 0.070202 0.061416 0.043303 0.170817 0.063994 0.011889 0.045921 0.170817 0.093852 0.273307 +0 +0.026994 0.031008 0.167346 0.036949 0.041511 0.548344 0.018408 0.061471 0.049038 0.110959 0.019857 0.100824 0.011080 0.053294 0.062790 0.042134 0.043349 0.186950 0.058822 0.065944 0.011134 0.273307 0.053145 0.003367 0.041616 0.273307 0.051306 0.044142 0.023360 0.239144 0.098169 0.307471 +0.508307 +0.051675 0.016047 0.038926 0.048310 0.037118 0.065274 0.019704 0.021511 0.066743 0.051430 0.048529 0.054830 0.029039 0.030502 0.054280 0.035960 0.044832 0.050344 0.057072 0.008640 0.041294 0.102490 0.084233 0.011875 0.026131 0.204980 0.092015 0.053144 0.057009 0.239144 0.091888 0.341634 +0 +0.006604 0.035269 0.053169 0.037298 0.040035 0.152312 0.002986 0.063428 0.038958 0.114330 0.018791 0.508402 0.066793 0.033656 0.110166 0.038723 0.044832 0.077300 0.039958 0.060439 0.002473 0.273307 0.094844 0.008136 0.020193 0.170817 0.052168 0.063651 0.024524 0.273307 0.064127 0.307471 +0.848160 +0.010669 0.030347 0.108576 0.164101 0.028322 0.150747 0.008596 0.051459 0.070146 0.172543 0.026098 0.378319 0.016473 0.052699 0.045188 0.034321 0.028179 0.036657 0.053118 0.039540 0.066214 0.204980 0.085869 0.049161 0.042125 0.170817 0.082633 0.047689 0.016926 0.136654 0.082873 0.239144 +0.265645 +0.030313 0.066760 0.053626 0.080723 0.047757 0.037361 0.055728 0.020235 0.072234 0.128873 0.019539 0.216503 0.043621 0.048646 0.037246 0.143081 0.019869 0.341548 0.040337 0.008514 0.034514 0.102490 0.094391 0.049866 0.010792 0.170817 0.067753 0.051422 0.000962 0.170817 0.086066 0.204980 +0.436176 +0.067283 0.037353 0.073697 0.055419 0.039732 0.053265 0.025022 0.029223 0.109939 0.046546 0.038177 0.146049 0.051520 0.012275 0.058053 0.123750 0.033884 0.082633 0.050877 0.014884 0.003076 0.170817 0.079283 0.002369 0.009242 0.136654 0.079237 0.016720 0.042916 0.102490 0.067250 0.341634 +0 +0.041910 0.031628 0.079227 0.042756 0.032627 0.243455 0.064262 0.000510 0.058351 0.050240 0.041705 0.273699 0.008591 0.035390 0.035088 0.107731 0.050881 0.076535 0.057147 0.066782 0.044511 0.102490 0.079081 0.054198 0.057558 0.102490 0.066388 0.013181 0.014251 0.170817 0.063083 0.204980 +0.151795 +0.044339 0.007572 0.059647 0.036208 0.030487 0.097846 0.026528 0.037825 0.142617 0.053299 0.048371 0.099649 0.029370 0.028821 0.040206 0.072120 0.026359 0.130596 0.050998 0.010107 0.028286 0.239144 0.086951 0.020509 0.020643 0.204980 0.085746 0.066804 0.021195 0.239144 0.095380 0.341634 +0.001197 +0.061737 0.008351 0.036543 0.107166 0.032443 0.056311 0.034819 0.002784 0.071565 0.057320 0.041653 0.120942 0.048135 0.024461 0.037258 0.067613 0.022393 0.047186 0.053019 0.057252 0.019927 0.307471 0.079674 0.050270 0.008046 0.307471 0.082686 0.040627 0.058790 0.102490 0.090592 0.341634 +0.084983 +0.036461 0.026855 0.039161 0.040529 0.025484 0.088512 0.041932 0.004775 0.037898 0.049403 0.024728 0.135481 0.026290 0.040073 0.035144 0.064023 0.017419 0.059202 0.054430 0.040606 0.021052 0.170817 0.084588 0.002740 0.060404 0.204980 0.075604 0.004500 0.024637 0.239144 0.074410 0.273307 +0 +0.046356 0.037479 0.076290 0.066148 0.039688 0.045552 0.061408 0.012448 0.131685 0.056549 0.019235 0.078784 0.034677 0.032874 0.053363 0.077846 0.026659 0.074777 0.062476 0.003540 0.054193 0.170817 0.060778 0.043858 0.003949 0.136654 0.096269 0.034743 0.039413 0.170817 0.095561 0.273307 +0 +0.036731 0.045207 0.037935 0.043834 0.046712 0.175741 0.004287 0.003501 0.053145 0.104897 0.043546 0.057770 0.015215 0.060881 0.116916 0.057148 0.044807 0.085953 0.055542 0.007091 0.011400 0.170817 0.087481 0.066826 0.062798 0.136654 0.091347 0.036257 0.011784 0.102490 0.089944 0.239144 +0 +0.059097 0.061761 0.086409 0.090368 0.029402 0.091099 0.051933 0.016693 0.047960 0.068720 0.045695 0.072113 0.013800 0.049632 0.065648 0.050723 0.022618 0.379401 0.041089 0.021743 0.003841 0.239144 0.094477 0.036136 0.029762 0.204980 0.084400 0.030965 0.001216 0.170817 0.072305 0.273307 +0.009721 +0.020369 0.008472 0.085922 0.062013 0.047025 0.117360 0.056149 0.050039 0.051484 0.080555 0.021343 0.116958 0.067900 0.063582 0.040289 0.078804 0.020335 0.036043 0.041623 0.040495 0.046003 0.102490 0.099155 0.064421 0.011778 0.170817 0.057480 0.018070 0.013169 0.102490 0.101883 0.204980 +0.027555 +0.067303 0.052711 0.083515 0.038560 0.045829 0.108833 0.016665 0.065376 0.063934 0.044216 0.040820 0.284938 0.060279 0.066562 0.114864 0.037830 0.048298 0.172128 0.057541 0.003441 0.036335 0.170817 0.076100 0.053811 0.039633 0.273307 0.072709 0.037668 0.065540 0.136654 0.072435 0.307471 +0.066354 +0.061923 0.011829 0.036488 0.039385 0.037804 0.061978 0.058779 0.050025 0.138561 0.050079 0.019898 0.241140 0.066168 0.045500 0.047907 0.050808 0.049032 0.079502 0.060163 0.002777 0.003877 0.136654 0.074837 0.011255 0.009479 0.204980 0.093980 0.030678 0.031561 0.102490 0.052663 0.239144 +0.007406 +0.016432 0.017879 0.076676 0.132025 0.021957 0.050822 0.028680 0.008991 0.109784 0.053557 0.049975 0.150403 0.018885 0.059706 0.093454 0.065839 0.019016 0.249529 0.059332 0.054820 0.060101 0.170817 0.080352 0.048633 0.025499 0.204980 0.081832 0.037133 0.054116 0.102490 0.099282 0.341634 +0.003241 +0.025508 0.041597 0.149224 0.034715 0.022299 0.056582 0.021091 0.019553 0.068409 0.048843 0.037324 0.051784 0.021144 0.017297 0.042412 0.038547 0.034184 0.104778 0.041846 0.054268 0.064032 0.204980 0.097096 0.047050 0.007889 0.204980 0.080433 0.002991 0.053821 0.273307 0.076321 0.307471 +0 +0.018302 0.021660 0.105836 0.036715 0.051242 0.106666 0.051683 0.058899 0.069581 0.147131 0.042079 0.073897 0.036268 0.011797 0.117544 0.088498 0.040335 0.061767 0.049334 0.024180 0.015870 0.102490 0.071543 0.019768 0.000089 0.136654 0.072075 0.011055 0.065493 0.170817 0.100026 0.204980 +0.089430 +0.059291 0.061633 0.098665 0.034626 0.030523 0.174170 0.040811 0.018870 0.102471 0.056679 0.022454 0.170168 0.060103 0.031923 0.115519 0.067871 0.026831 0.051216 0.054452 0.005086 0.005107 0.204980 0.073734 0.018853 0.042829 0.102490 0.074685 0.051314 0.034209 0.170817 0.093784 0.273307 +0 +0.004332 0.042854 0.115018 0.092105 0.035597 0.121730 0.044834 0.061662 0.060899 0.047365 0.028308 0.081689 0.030781 0.036869 0.055215 0.064407 0.028598 0.073114 0.045560 0.037036 0.005725 0.136654 0.067555 0.021823 0.038017 0.239144 0.061996 0.011218 0.057558 0.136654 0.064368 0.307471 +0.004823 +0.031996 0.024061 0.042846 0.083844 0.026330 0.182083 0.052545 0.037166 0.050107 0.042232 0.035201 0.218939 0.068038 0.051713 0.044244 0.044020 0.048145 0.341105 0.052938 0.036798 0.026473 0.102490 0.069560 0.023463 0.012808 0.136654 0.082088 0.008255 0.064065 0.136654 0.075057 0.273307 +0.579088 +0.033155 0.052123 0.040303 0.038134 0.020798 0.281370 0.027415 0.054423 0.136776 0.039141 0.045690 0.045957 0.002870 0.031548 0.059583 0.110427 0.025125 0.056547 0.054113 0.065535 0.002430 0.102490 0.053631 0.021921 0.054704 0.170817 0.051624 0.059341 0.023077 0.204980 0.060493 0.239144 +0.177979 +0.010377 0.020390 0.068047 0.075297 0.034867 0.309868 0.048194 0.061779 0.087704 0.062766 0.035044 0.050872 0.020099 0.052226 0.068277 0.040673 0.036833 0.049091 0.044089 0.013105 0.040680 0.239144 0.054774 0.046178 0.057945 0.273307 0.098064 0.043060 0.040781 0.170817 0.058400 0.307471 +0 +0.037420 0.002679 0.044314 0.074293 0.048126 0.037963 0.038567 0.042596 0.036795 0.054906 0.023189 0.208729 0.010052 0.045781 0.041767 0.087396 0.032876 0.226290 0.055269 0.034297 0.046190 0.102490 0.101919 0.011894 0.063486 0.136654 0.075022 0.032025 0.057577 0.102490 0.063643 0.204980 +0.030301 +0.048445 0.049683 0.045040 0.072072 0.017913 0.367310 0.006528 0.009837 0.223798 0.059142 0.028121 0.130631 0.053178 0.013860 0.068659 0.163071 0.049547 0.062324 0.047403 0.061103 0.023690 0.136654 0.060453 0.022043 0.028470 0.239144 0.099935 0.043194 0.027738 0.204980 0.086550 0.341634 +0.167931 +0.059448 0.022538 0.137733 0.068052 0.031485 0.249490 0.047211 0.040315 0.100937 0.034232 0.029428 0.056634 0.017904 0.027044 0.100052 0.072052 0.044801 0.076682 0.039338 0.005069 0.037610 0.273307 0.067069 0.060794 0.041635 0.239144 0.059321 0.062757 0.020972 0.136654 0.083851 0.307471 +0.061525 +0.023816 0.011886 0.106576 0.047260 0.047195 0.041841 0.053614 0.059763 0.038258 0.035292 0.043997 0.088696 0.002972 0.030924 0.058468 0.063903 0.047208 0.059135 0.041207 0.060924 0.065741 0.136654 0.076225 0.016489 0.060735 0.204980 0.080553 0.011011 0.007147 0.204980 0.091230 0.273307 +0.002320 +0.037066 0.024304 0.068551 0.069713 0.033862 0.346685 0.004748 0.028124 0.121398 0.062244 0.024441 0.108080 0.014591 0.015963 0.081868 0.059612 0.047659 0.064696 0.044724 0.042529 0.020544 0.239144 0.076703 0.003861 0.053496 0.204980 0.079842 0.056462 0.048769 0.170817 0.057489 0.273307 +0.425498 +0.015862 0.027640 0.110340 0.043761 0.049241 0.287737 0.046835 0.058977 0.070693 0.119755 0.027755 0.073915 0.047863 0.057716 0.100233 0.044529 0.030338 0.141849 0.063620 0.032916 0.020784 0.102490 0.068157 0.055309 0.057067 0.136654 0.075378 0.018028 0.048613 0.136654 0.088194 0.204980 +0.096129 +0.002583 0.028355 0.056738 0.063899 0.041116 0.086415 0.056547 0.056224 0.061555 0.078552 0.035193 0.095026 0.028346 0.052815 0.047815 0.051590 0.048689 0.041259 0.039730 0.048885 0.023276 0.307471 0.080164 0.023225 0.041440 0.239144 0.087701 0.026945 0.005547 0.307471 0.069710 0.341634 +0 +0.027984 0.021406 0.052613 0.060116 0.018319 0.062251 0.063119 0.036494 0.043088 0.224975 0.021365 0.141335 0.032287 0.039413 0.178496 0.112362 0.044024 0.093979 0.046068 0.029094 0.057994 0.239144 0.076063 0.035382 0.053720 0.102490 0.054921 0.038821 0.035719 0.273307 0.084058 0.341634 +0.002329 +0.060608 0.001182 0.046211 0.112770 0.043208 0.059115 0.033812 0.040646 0.040886 0.224128 0.048006 0.121989 0.052127 0.037787 0.049367 0.086487 0.025598 0.093808 0.048253 0.047187 0.034429 0.239144 0.102089 0.046859 0.030005 0.307471 0.098280 0.043566 0.053067 0.204980 0.084281 0.341634 +0.001007 +0.039120 0.057429 0.040019 0.037409 0.046316 0.177678 0.067141 0.019077 0.061177 0.037762 0.036126 0.226816 0.060893 0.018555 0.063188 0.076042 0.049325 0.162567 0.052020 0.068064 0.030570 0.307471 0.057718 0.035802 0.060062 0.204980 0.077777 0.056032 0.067260 0.239144 0.060108 0.341634 +0.567923 +0.061310 0.042334 0.035604 0.085413 0.040730 0.066676 0.025343 0.055288 0.039799 0.074667 0.032788 0.145059 0.066766 0.003175 0.125074 0.082779 0.032020 0.246104 0.060814 0.005590 0.062605 0.102490 0.071789 0.027458 0.036030 0.273307 0.089894 0.031969 0.052370 0.307471 0.082450 0.341634 +0.105599 +0.033738 0.033078 0.038570 0.066119 0.027465 0.101057 0.042531 0.005083 0.050174 0.055954 0.031873 0.041049 0.023097 0.053416 0.253009 0.034664 0.019683 0.172765 0.052409 0.023323 0.029742 0.136654 0.064036 0.049916 0.051271 0.102490 0.058001 0.052442 0.024747 0.102490 0.063028 0.204980 +0.011948 +0.012579 0.065285 0.042124 0.073582 0.024349 0.050214 0.031255 0.025395 0.067213 0.074193 0.037045 0.035181 0.043129 0.012627 0.098264 0.056347 0.048269 0.122295 0.041449 0.045104 0.056384 0.204980 0.091982 0.040305 0.008071 0.239144 0.087218 0.021095 0.014465 0.102490 0.091620 0.341634 +0 +0.013115 0.014596 0.058592 0.061536 0.032268 0.040622 0.007617 0.066329 0.035495 0.057438 0.024171 0.108778 0.067726 0.067304 0.040669 0.040220 0.038756 0.098166 0.042177 0.049031 0.027188 0.102490 0.072271 0.030803 0.037081 0.170817 0.067311 0.035173 0.008212 0.204980 0.069127 0.239144 +0.003826 +0.066298 0.037640 0.084541 0.083605 0.043060 0.086156 0.064071 0.047426 0.166021 0.109483 0.031262 0.168990 0.021898 0.013447 0.035990 0.103912 0.050708 0.035314 0.049632 0.010357 0.036691 0.239144 0.095473 0.027239 0.066242 0.239144 0.088106 0.007571 0.050684 0.204980 0.093356 0.307471 +0.011667 +0.031931 0.022654 0.049719 0.037008 0.038922 0.075515 0.059221 0.007612 0.067424 0.036934 0.023189 0.128714 0.052307 0.033448 0.036671 0.050577 0.038507 0.078631 0.036843 0.054521 0.029401 0.136654 0.080054 0.055672 0.032909 0.136654 0.060025 0.021457 0.015505 0.102490 0.051965 0.204980 +0.020318 +0.030257 0.060751 0.052481 0.039350 0.042767 0.136217 0.049457 0.032323 0.037043 0.070116 0.050117 0.068598 0.053084 0.028228 0.134315 0.060254 0.037138 0.104856 0.038322 0.038167 0.031633 0.102490 0.094402 0.034909 0.031095 0.170817 0.101368 0.014328 0.056759 0.170817 0.063678 0.204980 +0.048189 +0.054312 0.031111 0.115543 0.097176 0.044824 0.108997 0.058670 0.013609 0.053898 0.035469 0.029295 0.081336 0.001261 0.018379 0.043960 0.045772 0.045845 0.393223 0.040021 0.043748 0.055579 0.136654 0.093796 0.033087 0.033773 0.102490 0.072015 0.029112 0.017716 0.102490 0.078042 0.204980 +0.123502 +0.000168 0.066390 0.044815 0.066697 0.037669 0.057360 0.062110 0.047015 0.170226 0.049096 0.025625 0.077196 0.016556 0.033918 0.050084 0.043011 0.031906 0.064244 0.049189 0.039998 0.059595 0.204980 0.082259 0.035781 0.005804 0.136654 0.075274 0.031643 0.031207 0.136654 0.061059 0.239144 +0 +0.039757 0.013668 0.059304 0.072173 0.037664 0.059617 0.053698 0.009958 0.115953 0.053333 0.025321 0.037738 0.032886 0.064364 0.119147 0.153150 0.045309 0.134815 0.063017 0.046051 0.042281 0.204980 0.098016 0.047556 0.024738 0.204980 0.080805 0.035022 0.001386 0.136654 0.061700 0.341634 +0.001601 +0.040453 0.047816 0.050808 0.098981 0.027001 0.172137 0.001948 0.030243 0.048584 0.062203 0.036100 0.116648 0.056591 0.037223 0.117058 0.039199 0.039987 0.228208 0.052428 0.065711 0.001650 0.204980 0.072997 0.049505 0.014222 0.204980 0.066344 0.052917 0.052505 0.102490 0.067425 0.273307 +0.038146 +0.028594 0.065913 0.059536 0.070290 0.038255 0.108592 0.042269 0.051578 0.089097 0.054540 0.030309 0.091574 0.029668 0.000350 0.138979 0.058366 0.047445 0.132027 0.054763 0.058057 0.049328 0.170817 0.068876 0.018631 0.060730 0.170817 0.078028 0.001731 0.042769 0.102490 0.084735 0.204980 +0.053644 +0.021686 0.025740 0.041783 0.092379 0.018177 0.272542 0.055590 0.044780 0.035069 0.057233 0.050208 0.046643 0.031267 0.001420 0.034836 0.074689 0.042672 0.083094 0.046574 0.006695 0.005245 0.102490 0.100795 0.035379 0.056450 0.170817 0.082640 0.058357 0.011244 0.136654 0.089239 0.239144 +0.133066 +0.032028 0.040479 0.058720 0.036720 0.017171 0.203217 0.007132 0.031217 0.090159 0.041277 0.018253 0.044713 0.065692 0.049609 0.040446 0.038811 0.045354 0.170145 0.041724 0.018169 0.058842 0.136654 0.079059 0.060621 0.008503 0.136654 0.091049 0.014812 0.057121 0.102490 0.070628 0.239144 +0.073760 +0.011440 0.057362 0.118584 0.035351 0.021392 0.277389 0.003487 0.049341 0.044356 0.107992 0.017427 0.194395 0.062021 0.055974 0.037610 0.059211 0.035420 0.041105 0.057576 0.066184 0.046204 0.136654 0.073344 0.038696 0.031405 0.170817 0.051571 0.050183 0.007976 0.136654 0.068554 0.239144 +0.359021 +0.029940 0.030283 0.061277 0.042087 0.023830 0.339892 0.004276 0.011790 0.067058 0.050282 0.040577 0.176402 0.026749 0.036260 0.059383 0.070999 0.017777 0.239969 0.056719 0.010294 0.019095 0.170817 0.071183 0.052247 0.013529 0.239144 0.079495 0.008780 0.054549 0.204980 0.074320 0.341634 +0.124051 +0.032782 0.059485 0.039949 0.077592 0.037468 0.054144 0.019905 0.065722 0.037074 0.039319 0.037120 0.049962 0.005642 0.003753 0.080544 0.042778 0.020187 0.040283 0.036800 0.027170 0.011684 0.239144 0.084285 0.023412 0.032501 0.136654 0.053334 0.039498 0.051111 0.204980 0.076438 0.341634 +0 +0.021576 0.024985 0.058961 0.042384 0.023957 0.052838 0.066891 0.028757 0.059275 0.074955 0.032277 0.232349 0.039561 0.054794 0.062464 0.064058 0.028153 0.079936 0.053334 0.002564 0.008961 0.273307 0.096410 0.061865 0.011285 0.136654 0.080832 0.023444 0.039191 0.204980 0.070654 0.341634 +0 +0.026381 0.036951 0.054092 0.040874 0.043769 0.120461 0.050379 0.026936 0.067160 0.047170 0.040448 0.097645 0.048118 0.013048 0.061983 0.050449 0.029752 0.363955 0.059074 0.033585 0.014881 0.204980 0.061159 0.016061 0.031719 0.102490 0.057849 0.016535 0.014747 0.204980 0.062276 0.273307 +0.066254 +0.030211 0.031169 0.034996 0.040273 0.030705 0.208133 0.067831 0.029774 0.074399 0.153451 0.038637 0.063429 0.035904 0.006474 0.040202 0.143657 0.044329 0.189968 0.064436 0.008788 0.018675 0.170817 0.074628 0.037141 0.031317 0.170817 0.088374 0.014699 0.054878 0.136654 0.051716 0.307471 +0 +0.065053 0.011641 0.059262 0.056224 0.048442 0.232206 0.027632 0.004585 0.102067 0.127378 0.019602 0.115473 0.058811 0.017052 0.191142 0.037208 0.029319 0.132346 0.045662 0.017561 0.044219 0.170817 0.068187 0.047163 0.017581 0.136654 0.069437 0.058410 0.067345 0.102490 0.067337 0.239144 +0.251454 +0.052435 0.003251 0.135443 0.197103 0.050192 0.048677 0.046073 0.061217 0.101140 0.119164 0.020883 0.182210 0.060210 0.043205 0.064682 0.066730 0.043123 0.040873 0.042954 0.056071 0.045911 0.136654 0.090759 0.045393 0.064402 0.136654 0.065490 0.064326 0.012788 0.204980 0.090259 0.239144 +0.059943 +0.032047 0.043583 0.079067 0.046390 0.046142 0.068536 0.024689 0.015862 0.058738 0.053000 0.020401 0.075728 0.019718 0.039282 0.036438 0.055903 0.042811 0.096126 0.058607 0.052105 0.053276 0.136654 0.098429 0.058791 0.034491 0.102490 0.052313 0.051882 0.033414 0.170817 0.065150 0.239144 +0 +0.015112 0.012533 0.042705 0.044206 0.028686 0.078587 0.060681 0.037787 0.071131 0.054488 0.019444 0.099958 0.030736 0.066185 0.036838 0.052128 0.044802 0.176820 0.046453 0.031317 0.038889 0.136654 0.053955 0.036637 0.023149 0.102490 0.065267 0.064465 0.004191 0.102490 0.077853 0.204980 +0.280947 +0.064212 0.059081 0.048142 0.068718 0.043562 0.049877 0.021606 0.066274 0.049996 0.140713 0.029781 0.049187 0.004105 0.004141 0.051155 0.036303 0.026520 0.107169 0.059768 0.037896 0.010947 0.170817 0.091168 0.056002 0.013753 0.170817 0.078006 0.019228 0.049065 0.102490 0.100440 0.204980 +0.003293 +0.025601 0.067426 0.034443 0.066806 0.020511 0.055932 0.015314 0.012920 0.058941 0.067722 0.042445 0.063585 0.009189 0.009740 0.049202 0.137898 0.017307 0.282124 0.045364 0.001307 0.030277 0.239144 0.077549 0.016158 0.037591 0.204980 0.082735 0.012436 0.018020 0.102490 0.100827 0.273307 +0.061207 +0.059487 0.019573 0.066629 0.041320 0.044199 0.077075 0.013444 0.066099 0.068019 0.167917 0.043513 0.104538 0.008167 0.067835 0.099105 0.060694 0.032962 0.058035 0.040167 0.045022 0.008246 0.204980 0.100430 0.000492 0.001407 0.204980 0.085680 0.057093 0.057536 0.170817 0.073239 0.239144 +0.005558 +0.023921 0.042281 0.036283 0.109146 0.022432 0.209159 0.009703 0.004191 0.059883 0.045183 0.047793 0.050963 0.005466 0.039173 0.037979 0.036635 0.021871 0.045279 0.061861 0.034969 0.059510 0.102490 0.069446 0.057199 0.000296 0.170817 0.057898 0.009992 0.023093 0.102490 0.085032 0.204980 +0 +0.067431 0.035310 0.048248 0.129117 0.030140 0.097609 0.050158 0.066748 0.052717 0.067645 0.034082 0.197046 0.001976 0.054187 0.041758 0.036740 0.037689 0.056373 0.041749 0.056379 0.064239 0.239144 0.099575 0.035665 0.035817 0.136654 0.093859 0.063151 0.023699 0.136654 0.073596 0.273307 +0.008734 +0.026080 0.019323 0.089569 0.037179 0.022449 0.036516 0.040387 0.051597 0.052587 0.097555 0.033769 0.160990 0.051498 0.019102 0.102977 0.045946 0.024058 0.037791 0.050766 0.001322 0.033674 0.204980 0.054228 0.064272 0.026692 0.136654 0.055075 0.054191 0.005710 0.170817 0.084109 0.341634 +0 +0.042431 0.054110 0.128553 0.053616 0.027417 0.051162 0.049533 0.002274 0.038369 0.075933 0.038472 0.273831 0.047211 0.015059 0.038688 0.037574 0.028759 0.116415 0.041471 0.057485 0.038725 0.307471 0.094028 0.025235 0.029580 0.273307 0.099119 0.019036 0.052976 0.136654 0.086481 0.341634 +0.248916 +0.019718 0.055295 0.034522 0.161307 0.045371 0.312385 0.048314 0.031394 0.040350 0.042480 0.031886 0.043495 0.054203 0.059591 0.050981 0.152042 0.043874 0.047881 0.066953 0.049459 0.055001 0.102490 0.066152 0.042479 0.022410 0.170817 0.064432 0.019650 0.058443 0.136654 0.067220 0.341634 +0.244895 +0.065072 0.047947 0.127027 0.102048 0.030635 0.612620 0.000812 0.036106 0.057525 0.038097 0.025510 0.410410 0.018271 0.048714 0.046731 0.071582 0.024713 0.117759 0.048891 0.064955 0.014700 0.136654 0.094723 0.003133 0.039216 0.170817 0.065752 0.064535 0.025444 0.170817 0.093671 0.204980 +0.814278 +0.032399 0.041249 0.052707 0.126811 0.018204 0.194151 0.066909 0.045988 0.054959 0.042800 0.032061 0.268129 0.010961 0.054063 0.061218 0.043906 0.047173 0.158416 0.046344 0.014643 0.025873 0.204980 0.089443 0.032108 0.013548 0.273307 0.055382 0.017834 0.026162 0.273307 0.071817 0.341634 +0.421144 +0.018664 0.023610 0.054826 0.138576 0.041605 0.171274 0.033356 0.059926 0.036019 0.194016 0.032754 0.156530 0.029908 0.023042 0.037820 0.037058 0.035011 0.181281 0.049537 0.052683 0.027904 0.273307 0.076545 0.054951 0.010899 0.239144 0.058892 0.063684 0.046557 0.307471 0.062993 0.341634 +0.068587 +0.054656 0.028371 0.104260 0.061312 0.039992 0.089626 0.001140 0.006337 0.059241 0.149345 0.025488 0.083322 0.003100 0.049757 0.042331 0.046001 0.023560 0.100724 0.046705 0.034575 0.021219 0.204980 0.071381 0.065190 0.010288 0.136654 0.094454 0.050837 0.050480 0.204980 0.075881 0.239144 +0.004614 +0.067032 0.040383 0.034331 0.079274 0.033242 0.096455 0.001115 0.018433 0.088456 0.124374 0.048538 0.039532 0.022701 0.059148 0.067148 0.085396 0.048111 0.437122 0.039471 0.034479 0.036084 0.170817 0.061847 0.041132 0.026664 0.239144 0.094977 0.042783 0.003548 0.239144 0.055257 0.273307 +0 +0.059375 0.013780 0.088155 0.087927 0.037146 0.073482 0.028623 0.057257 0.064743 0.046338 0.021903 0.041401 0.049929 0.055457 0.034956 0.096364 0.044567 0.080053 0.047056 0.037496 0.010110 0.170817 0.054996 0.026691 0.036399 0.204980 0.058033 0.023328 0.014081 0.170817 0.077867 0.239144 +0.005221 +0.058292 0.019520 0.041247 0.049216 0.041930 0.379058 0.023273 0.067006 0.119869 0.080569 0.047528 0.035022 0.040168 0.011038 0.054833 0.043927 0.025371 0.137619 0.058949 0.006551 0.043486 0.170817 0.060153 0.043010 0.034440 0.136654 0.067813 0.012306 0.040605 0.136654 0.053833 0.204980 +0.210363 +0.003218 0.045992 0.039929 0.035341 0.021968 0.183015 0.065404 0.067362 0.055759 0.045289 0.044389 0.106037 0.003574 0.046419 0.117957 0.037351 0.037666 0.215441 0.061381 0.046990 0.027112 0.204980 0.082184 0.007877 0.033114 0.239144 0.090115 0.037327 0.031512 0.239144 0.054856 0.273307 +0.155191 +0.041357 0.043737 0.037358 0.044110 0.036276 0.040745 0.023625 0.057167 0.049598 0.039761 0.041099 0.058251 0.041090 0.004086 0.049957 0.058981 0.019273 0.240133 0.063589 0.054458 0.057192 0.239144 0.077015 0.025902 0.025970 0.170817 0.080773 0.030189 0.019424 0.204980 0.073740 0.307471 +0.013941 +0.053504 0.060097 0.054551 0.077894 0.023442 0.604703 0.019416 0.061102 0.043597 0.121666 0.037448 0.092465 0.041151 0.033488 0.142842 0.069953 0.047921 0.263279 0.037093 0.033860 0.035454 0.102490 0.059937 0.063176 0.038658 0.204980 0.058771 0.047551 0.062590 0.102490 0.058695 0.239144 +0.151654 +0.060378 0.020105 0.088511 0.068738 0.038181 0.614891 0.015210 0.011762 0.085093 0.060676 0.043315 0.170111 0.009036 0.014857 0.034684 0.038787 0.030165 0.056123 0.052203 0.030733 0.041227 0.136654 0.054864 0.017580 0.058157 0.170817 0.059858 0.026509 0.000782 0.239144 0.082098 0.307471 +0.096110 +0.015603 0.007225 0.051325 0.094000 0.043443 0.049916 0.029984 0.046725 0.044392 0.094650 0.029562 0.107104 0.054855 0.055146 0.055260 0.121269 0.021740 0.132375 0.049921 0.024561 0.044893 0.170817 0.070776 0.040188 0.049769 0.204980 0.056009 0.046526 0.026097 0.170817 0.100106 0.239144 +0.013541 +0.038997 0.000321 0.050463 0.077982 0.026432 0.280092 0.051402 0.007498 0.039635 0.190666 0.027252 0.037007 0.008612 0.034032 0.044530 0.049497 0.039090 0.084073 0.041670 0.049838 0.066745 0.170817 0.074584 0.018948 0.060832 0.204980 0.052246 0.019626 0.019409 0.136654 0.071523 0.273307 +0.009999 +0.030661 0.035166 0.063513 0.123730 0.047133 0.209670 0.045811 0.042493 0.114610 0.049908 0.017311 0.137647 0.057767 0.060685 0.094682 0.083024 0.017900 0.093179 0.044472 0.026014 0.064514 0.239144 0.093463 0.047515 0.062379 0.102490 0.083880 0.024266 0.035514 0.307471 0.098060 0.341634 +0 +0.010887 0.001320 0.076833 0.135761 0.027705 0.040446 0.045086 0.034684 0.043931 0.043881 0.034551 0.077818 0.054470 0.062588 0.035836 0.084659 0.027040 0.281485 0.040217 0.059268 0.023810 0.170817 0.051488 0.060368 0.011390 0.136654 0.076381 0.038290 0.017985 0.170817 0.086525 0.273307 +0.699278 +0.037896 0.007118 0.042324 0.034880 0.035154 0.049672 0.047831 0.000018 0.089466 0.049731 0.039217 0.044280 0.061455 0.042136 0.083498 0.053108 0.024256 0.070532 0.044944 0.056689 0.059285 0.273307 0.097308 0.044958 0.019856 0.273307 0.087924 0.006979 0.013710 0.136654 0.098546 0.307471 +0 +0.003504 0.058121 0.036980 0.131041 0.033344 0.130981 0.059353 0.031996 0.065894 0.075275 0.021416 0.116760 0.048152 0.054793 0.109441 0.072471 0.045281 0.050161 0.063667 0.031560 0.039751 0.136654 0.098547 0.046444 0.058181 0.170817 0.075424 0.063397 0.056200 0.136654 0.083186 0.204980 +0.049347 +0.023358 0.026554 0.044475 0.050500 0.019078 0.034798 0.026443 0.015784 0.061804 0.060629 0.039885 0.275665 0.058714 0.008875 0.041655 0.058257 0.038284 0.068487 0.050622 0.011195 0.004541 0.170817 0.053373 0.001586 0.048574 0.170817 0.062403 0.062716 0.067496 0.136654 0.081392 0.239144 +0.546005 +0.034709 0.051104 0.042371 0.053109 0.041740 0.231364 0.010302 0.065023 0.046702 0.093185 0.028398 0.182047 0.035721 0.044765 0.036231 0.105455 0.049134 0.241114 0.050254 0.038299 0.003300 0.204980 0.075748 0.034838 0.025616 0.204980 0.102012 0.045127 0.018196 0.136654 0.092317 0.239144 +0.115065 +0.011764 0.025418 0.048586 0.115125 0.032233 0.170886 0.013283 0.020074 0.045874 0.034407 0.018371 0.124966 0.000419 0.054098 0.048343 0.048873 0.044841 0.065650 0.057557 0.052069 0.007250 0.170817 0.087736 0.004007 0.014463 0.204980 0.084623 0.000060 0.063996 0.102490 0.064618 0.239144 +0.054808 +0.028014 0.002115 0.057057 0.072579 0.019155 0.080113 0.033250 0.028042 0.045398 0.124043 0.032531 0.319855 0.066362 0.036086 0.063456 0.039965 0.022920 0.214147 0.060761 0.005119 0.067108 0.204980 0.066944 0.059822 0.046098 0.102490 0.053550 0.003790 0.060554 0.204980 0.098545 0.307471 +0.400954 +0.057946 0.053188 0.096534 0.065316 0.031253 0.081570 0.022871 0.008237 0.036633 0.046123 0.046220 0.083084 0.001422 0.064407 0.047109 0.047412 0.049347 0.176646 0.045398 0.039186 0.005548 0.307471 0.060816 0.001952 0.000047 0.307471 0.066919 0.000601 0.036714 0.170817 0.067907 0.341634 +0.116187 +0.055401 0.008807 0.075220 0.101434 0.027255 0.187997 0.046064 0.051762 0.044921 0.056919 0.046462 0.064234 0.035890 0.041095 0.156924 0.065468 0.024290 0.328250 0.040850 0.006214 0.026049 0.102490 0.056895 0.032955 0.008696 0.204980 0.053114 0.029689 0.011156 0.239144 0.069498 0.307471 +0.480180 +0.061815 0.038865 0.047033 0.112155 0.033019 0.077904 0.009581 0.040763 0.066661 0.085389 0.043153 0.047410 0.023069 0.002475 0.038625 0.060259 0.049022 0.104453 0.059188 0.001494 0.051136 0.170817 0.069638 0.054173 0.057809 0.136654 0.092066 0.055037 0.010152 0.136654 0.074304 0.273307 +0.001793 +0.060120 0.013541 0.038567 0.055127 0.019333 0.128793 0.016261 0.014231 0.039548 0.053956 0.049065 0.411703 0.003741 0.047494 0.072464 0.042097 0.028632 0.536117 0.044493 0.030986 0.052996 0.204980 0.058692 0.056922 0.041036 0.170817 0.062859 0.060054 0.019289 0.102490 0.061006 0.273307 +0.715316 +0.058510 0.041873 0.065411 0.038258 0.046459 0.137399 0.031412 0.051004 0.079967 0.071227 0.048097 0.129147 0.043445 0.006088 0.097850 0.043098 0.042785 0.043108 0.039689 0.053266 0.010340 0.102490 0.053051 0.051488 0.045701 0.170817 0.061891 0.046067 0.015426 0.102490 0.061639 0.204980 +0.058590 +0.002995 0.052608 0.068688 0.069738 0.042332 0.091448 0.034301 0.034474 0.079987 0.071454 0.023748 0.095809 0.047998 0.048990 0.064392 0.061775 0.023561 0.038432 0.045389 0.068124 0.064058 0.239144 0.067935 0.027691 0.033071 0.273307 0.083266 0.004083 0.026718 0.204980 0.064590 0.307471 +0.002294 +0.005797 0.038254 0.057030 0.034432 0.030072 0.180014 0.049121 0.054774 0.116644 0.039241 0.025163 0.199053 0.002717 0.019694 0.036024 0.102494 0.043350 0.217266 0.057934 0.054898 0.041430 0.102490 0.096548 0.058835 0.009790 0.204980 0.101664 0.059792 0.057202 0.102490 0.066290 0.273307 +0.087455 +0.061022 0.003699 0.041660 0.040400 0.036720 0.075176 0.012428 0.016806 0.086284 0.059404 0.031678 0.057541 0.059973 0.017468 0.048201 0.046751 0.018401 0.595651 0.044651 0.000613 0.000643 0.102490 0.069669 0.051903 0.037508 0.136654 0.072704 0.024756 0.017021 0.136654 0.072136 0.204980 +0.028222 +0.063240 0.002672 0.074542 0.045173 0.035215 0.123890 0.056146 0.053463 0.110967 0.052044 0.019230 0.240485 0.040009 0.033823 0.038515 0.146625 0.024755 0.039316 0.051809 0.046833 0.057748 0.204980 0.088660 0.041565 0.052065 0.204980 0.090206 0.060270 0.066352 0.170817 0.091791 0.239144 +0.169111 +0.010419 0.054629 0.085501 0.071226 0.023700 0.110107 0.044968 0.054271 0.057377 0.046998 0.042817 0.185687 0.065049 0.051954 0.107409 0.078932 0.045340 0.056394 0.059082 0.059102 0.042529 0.102490 0.074569 0.029435 0.017082 0.136654 0.090294 0.034940 0.031279 0.102490 0.070790 0.273307 +0.006590 +0.061771 0.063148 0.125672 0.044639 0.046789 0.423540 0.057033 0.042847 0.055053 0.102177 0.047309 0.100693 0.031540 0.020524 0.038461 0.083610 0.041959 0.235530 0.051949 0.000272 0.047677 0.273307 0.085383 0.032628 0.064235 0.273307 0.081926 0.044363 0.049963 0.273307 0.060547 0.307471 +0.460964 +0.067876 0.007918 0.037100 0.106134 0.033998 0.128444 0.067645 0.063915 0.050972 0.126807 0.024506 0.215269 0.051477 0.007093 0.108430 0.151127 0.029808 0.361815 0.053313 0.011044 0.040915 0.136654 0.083837 0.005614 0.054339 0.170817 0.089851 0.058530 0.018333 0.102490 0.057744 0.204980 +0.201320 +0.059141 0.053950 0.042670 0.041725 0.017488 0.317318 0.053035 0.060940 0.040084 0.169049 0.039768 0.086273 0.049626 0.018043 0.051386 0.170467 0.041698 0.058534 0.058793 0.055408 0.060378 0.102490 0.083668 0.031354 0.032491 0.136654 0.069852 0.027474 0.037216 0.136654 0.062226 0.204980 +0.080955 +0.041426 0.044644 0.094627 0.058151 0.033886 0.128723 0.023466 0.055093 0.040543 0.034447 0.038542 0.042114 0.029952 0.064916 0.046525 0.047153 0.047889 0.041210 0.044164 0.062343 0.050959 0.204980 0.092192 0.052703 0.046014 0.170817 0.073340 0.051946 0.046427 0.102490 0.095924 0.273307 +0 +0.051865 0.027804 0.080983 0.052892 0.032982 0.084314 0.001916 0.036544 0.043478 0.095678 0.019883 0.254649 0.067451 0.023054 0.058381 0.038956 0.049793 0.200564 0.050741 0.045972 0.013130 0.102490 0.076850 0.009131 0.020450 0.170817 0.057401 0.027588 0.050593 0.170817 0.095033 0.204980 +0.260639 +0.017684 0.038529 0.034218 0.035711 0.017870 0.060470 0.000444 0.021404 0.042018 0.034350 0.041877 0.220698 0.019813 0.021800 0.034497 0.098767 0.046480 0.081133 0.052846 0.061204 0.066656 0.170817 0.061525 0.036975 0.041761 0.102490 0.072431 0.021034 0.004655 0.170817 0.098113 0.239144 +0.069701 +0.039623 0.015843 0.145353 0.039577 0.019684 0.090637 0.012983 0.037380 0.062848 0.068096 0.018853 0.054629 0.036745 0.022866 0.078453 0.055422 0.031250 0.163740 0.042055 0.032643 0.012280 0.102490 0.070339 0.010187 0.035119 0.204980 0.063869 0.006187 0.006227 0.204980 0.077197 0.239144 +0.050207 +0.037234 0.053073 0.037889 0.050555 0.042491 0.087805 0.044802 0.014744 0.061287 0.045939 0.033639 0.193506 0.050614 0.050506 0.037761 0.043689 0.024667 0.137024 0.063197 0.016562 0.065376 0.170817 0.083329 0.009993 0.029383 0.102490 0.051832 0.018904 0.014106 0.136654 0.066012 0.204980 +0.037330 +0.029610 0.043919 0.036922 0.037427 0.042820 0.380387 0.025677 0.035777 0.075089 0.047376 0.034314 0.058404 0.021155 0.039609 0.122475 0.155491 0.018347 0.399878 0.041920 0.048731 0.019579 0.102490 0.086026 0.021210 0.018276 0.239144 0.064198 0.055073 0.003335 0.170817 0.053566 0.307471 +0.652496 +0.023238 0.022802 0.039686 0.105216 0.032090 0.107536 0.010776 0.015182 0.071434 0.083116 0.027719 0.124274 0.059755 0.054951 0.039407 0.056547 0.022445 0.100550 0.051646 0.066663 0.028667 0.170817 0.062368 0.060285 0.028102 0.102490 0.067457 0.050878 0.040464 0.136654 0.057525 0.204980 +0.084627 +0.021863 0.034165 0.093389 0.065733 0.030929 0.046047 0.044854 0.053756 0.044209 0.065159 0.032360 0.046615 0.066345 0.000907 0.038564 0.080853 0.030492 0.280591 0.039706 0.022042 0.046454 0.239144 0.069882 0.024367 0.033857 0.204980 0.055032 0.019322 0.066107 0.102490 0.079372 0.307471 +0.062895 +0.046795 0.020220 0.264179 0.041466 0.047180 0.053472 0.000042 0.056896 0.109301 0.063626 0.041460 0.112433 0.045874 0.028951 0.066196 0.038506 0.018978 0.062045 0.048611 0.005119 0.038621 0.170817 0.063969 0.009439 0.056534 0.170817 0.052180 0.006897 0.030762 0.204980 0.073673 0.273307 +0 +0.060701 0.051724 0.056528 0.072881 0.039954 0.090418 0.025144 0.058728 0.085254 0.058310 0.048875 0.290618 0.054923 0.051881 0.048096 0.040976 0.033018 0.065943 0.053595 0.020963 0.065997 0.102490 0.054143 0.063237 0.045891 0.204980 0.055273 0.019945 0.061604 0.204980 0.068446 0.239144 +0.299239 +0.040303 0.053242 0.037412 0.042596 0.040689 0.241799 0.020092 0.054608 0.114482 0.043775 0.044270 0.100835 0.035342 0.002302 0.064325 0.048880 0.047605 0.080065 0.057074 0.018607 0.064643 0.136654 0.054431 0.046072 0.012736 0.102490 0.058890 0.016414 0.023285 0.170817 0.086783 0.204980 +0.102799 +0.059891 0.056459 0.067076 0.081474 0.030991 0.070315 0.020601 0.038528 0.083025 0.156804 0.026873 0.294634 0.016257 0.005027 0.036599 0.047701 0.045369 0.172149 0.055535 0.020282 0.058160 0.102490 0.085367 0.031016 0.031030 0.102490 0.079975 0.012999 0.028626 0.170817 0.084527 0.341634 +0.028809 +0.051194 0.051807 0.069919 0.073572 0.024788 0.076190 0.061499 0.033901 0.049741 0.056521 0.025361 0.093462 0.032520 0.031298 0.068203 0.101756 0.023319 0.109025 0.050003 0.060091 0.054514 0.136654 0.077902 0.023628 0.063843 0.102490 0.054602 0.016124 0.063637 0.170817 0.053376 0.204980 +0.019858 +0.050439 0.060003 0.035039 0.066877 0.042686 0.376572 0.064422 0.051604 0.046368 0.067938 0.024797 0.178203 0.026380 0.015267 0.046632 0.049708 0.040979 0.270213 0.055143 0.059435 0.039478 0.102490 0.101430 0.060790 0.037842 0.239144 0.102166 0.000680 0.041387 0.170817 0.090811 0.341634 +0.183089 +0.053000 0.040918 0.111090 0.037938 0.024789 0.075774 0.062025 0.000701 0.062713 0.072645 0.046948 0.109631 0.068325 0.064063 0.095897 0.250489 0.046846 0.084530 0.053962 0.042919 0.048286 0.307471 0.075212 0.060151 0.019549 0.102490 0.071454 0.065350 0.048701 0.170817 0.095197 0.341634 +0 +0.019932 0.013525 0.075638 0.059485 0.027808 0.129939 0.040345 0.028400 0.039027 0.138669 0.018578 0.062874 0.029722 0.033501 0.055641 0.035617 0.032677 0.038081 0.049219 0.031645 0.002491 0.136654 0.095739 0.064616 0.048018 0.102490 0.061417 0.058892 0.047530 0.102490 0.095047 0.239144 +0 +0.050205 0.052194 0.078842 0.107251 0.017139 0.151144 0.038183 0.047757 0.073170 0.038803 0.018690 0.098243 0.041231 0.026765 0.076767 0.086982 0.047775 0.053578 0.046393 0.008791 0.020044 0.136654 0.053281 0.033319 0.014564 0.204980 0.080951 0.060579 0.055817 0.170817 0.054629 0.307471 +0.004382 +0.061138 0.017055 0.061103 0.038007 0.023413 0.143081 0.067780 0.033566 0.041693 0.052491 0.049605 0.091649 0.029181 0.054311 0.072737 0.060698 0.017593 0.076962 0.058045 0.034063 0.026340 0.136654 0.054756 0.031962 0.030738 0.102490 0.091084 0.018689 0.045882 0.102490 0.094957 0.239144 +0.063543 +0.031984 0.041734 0.100072 0.147338 0.048154 0.204793 0.014711 0.050760 0.091287 0.057684 0.033284 0.049489 0.007172 0.005856 0.090631 0.040813 0.051091 0.076526 0.047181 0.062511 0.013279 0.170817 0.058294 0.006322 0.023029 0.136654 0.092437 0.040721 0.012685 0.204980 0.076984 0.239144 +0.026103 +0.058496 0.008340 0.054924 0.049739 0.050202 0.080272 0.046422 0.046478 0.051570 0.039806 0.024609 0.116444 0.054628 0.056856 0.037220 0.041484 0.036637 0.275284 0.040611 0.038566 0.030557 0.136654 0.064796 0.018395 0.032795 0.204980 0.057758 0.035497 0.022870 0.204980 0.054925 0.307471 +0.414057 +0.009078 0.013063 0.063641 0.038950 0.041457 0.129981 0.025654 0.043194 0.051813 0.060622 0.020177 0.196618 0.048893 0.048878 0.036562 0.038164 0.040577 0.039443 0.045158 0.023943 0.016185 0.239144 0.093373 0.003644 0.066689 0.239144 0.086542 0.066211 0.027225 0.239144 0.082534 0.307471 +0.331102 +0.039879 0.053271 0.043125 0.040642 0.040022 0.102608 0.020548 0.003888 0.063730 0.062319 0.049455 0.125988 0.047036 0.044588 0.085514 0.064973 0.041924 0.119695 0.055654 0.015879 0.014837 0.204980 0.081852 0.025676 0.056715 0.170817 0.069053 0.048475 0.000943 0.273307 0.099869 0.341634 +0.016064 +0.007551 0.010239 0.067120 0.045846 0.032656 0.159618 0.019899 0.029091 0.085480 0.046865 0.044207 0.110162 0.014665 0.003947 0.233610 0.049729 0.041337 0.659998 0.052159 0.051743 0.016679 0.170817 0.099383 0.059636 0.035380 0.170817 0.061987 0.022514 0.042504 0.204980 0.096603 0.239144 +0.085363 +0.033489 0.028675 0.037447 0.048106 0.037583 0.110587 0.009014 0.054431 0.054046 0.070169 0.025197 0.131927 0.065654 0.023930 0.039883 0.097138 0.043333 0.059638 0.040855 0.064636 0.061682 0.170817 0.088972 0.049595 0.014941 0.102490 0.089219 0.039416 0.014319 0.102490 0.093649 0.204980 +0.059744 +0.042310 0.009174 0.058438 0.050939 0.020557 0.280327 0.002919 0.065539 0.034539 0.069338 0.041080 0.065238 0.000828 0.042403 0.045894 0.062681 0.019597 0.099479 0.046310 0.052600 0.045826 0.102490 0.086766 0.062413 0.045343 0.170817 0.101241 0.008834 0.046295 0.102490 0.065623 0.204980 +0.168778 +0.012452 0.035644 0.037416 0.066747 0.027040 0.038894 0.005291 0.063404 0.041976 0.035108 0.047003 0.328087 0.046896 0.033484 0.045182 0.118028 0.030032 0.128704 0.046934 0.040623 0.009283 0.136654 0.095697 0.034592 0.065509 0.307471 0.068167 0.002285 0.032120 0.170817 0.082791 0.341634 +0.236675 +0.028336 0.064470 0.072776 0.090223 0.029262 0.063029 0.050518 0.005088 0.034739 0.067230 0.020644 0.091545 0.057605 0.013250 0.051323 0.074174 0.026522 0.209144 0.037991 0.017396 0.015621 0.170817 0.080336 0.017898 0.006678 0.102490 0.063527 0.058079 0.065167 0.102490 0.071377 0.273307 +0.207310 +0.024825 0.061653 0.050585 0.041087 0.040496 0.136687 0.003213 0.009475 0.057105 0.059153 0.029920 0.047736 0.067271 0.017156 0.260249 0.077501 0.041565 0.153176 0.058104 0.023914 0.023747 0.136654 0.062217 0.017921 0.004512 0.239144 0.068459 0.035033 0.063097 0.204980 0.057767 0.273307 +0.001707 +0.040479 0.061438 0.051500 0.034448 0.040711 0.094787 0.022139 0.024272 0.086007 0.046708 0.047524 0.107549 0.052540 0.055731 0.036676 0.043985 0.023363 0.048801 0.056190 0.036186 0.051186 0.170817 0.098715 0.001129 0.035481 0.136654 0.096944 0.002459 0.014631 0.136654 0.062152 0.341634 +0 +0.053982 0.051388 0.081279 0.053804 0.043929 0.085573 0.020645 0.017997 0.047620 0.095172 0.019713 0.240956 0.026188 0.062565 0.080643 0.039520 0.043880 0.260402 0.059340 0.060849 0.018574 0.102490 0.064885 0.016904 0.042146 0.170817 0.062219 0.002516 0.009376 0.136654 0.062891 0.204980 +0.214722 +0.044297 0.013660 0.147070 0.047480 0.038869 0.054728 0.008104 0.056954 0.099998 0.078218 0.045685 0.099683 0.056039 0.046169 0.043884 0.090289 0.041192 0.116326 0.042956 0.033169 0.027733 0.170817 0.076369 0.041746 0.035028 0.239144 0.062121 0.022463 0.006398 0.136654 0.077013 0.307471 +0.002023 +0.055126 0.056158 0.045015 0.059959 0.021890 0.215030 0.065061 0.006985 0.092269 0.077756 0.019560 0.286759 0.014660 0.006884 0.187819 0.077023 0.023602 0.109189 0.054391 0.035513 0.007335 0.170817 0.063108 0.051443 0.030097 0.136654 0.060683 0.011053 0.005518 0.273307 0.094645 0.307471 +0.487298 +0.032584 0.027727 0.078639 0.045456 0.038306 0.078849 0.055746 0.006946 0.039189 0.034679 0.040690 0.129823 0.028707 0.064334 0.084481 0.056678 0.050302 0.043932 0.053657 0.004145 0.000521 0.102490 0.067846 0.067341 0.015673 0.239144 0.054645 0.045713 0.000420 0.136654 0.075431 0.273307 +0.027127 +0.064621 0.012621 0.039282 0.037206 0.024685 0.041081 0.061923 0.018643 0.062195 0.045716 0.043673 0.078874 0.035413 0.011454 0.050069 0.068157 0.040212 0.294937 0.046927 0.048035 0.015990 0.170817 0.097091 0.062939 0.052004 0.204980 0.083553 0.042751 0.057790 0.136654 0.095495 0.239144 +0.114426 +0.047345 0.024513 0.110720 0.069069 0.049946 0.054615 0.053289 0.048876 0.034972 0.081933 0.038349 0.178976 0.041700 0.023441 0.038793 0.035021 0.031153 0.208893 0.047240 0.024440 0.049106 0.239144 0.056636 0.002014 0.040061 0.136654 0.088380 0.009331 0.047068 0.307471 0.080218 0.341634 +0.017492 +0.031329 0.020711 0.079810 0.093415 0.023224 0.061253 0.020419 0.021511 0.056257 0.048419 0.019155 0.045784 0.007843 0.021173 0.059829 0.073278 0.020688 0.131776 0.049417 0.045122 0.049183 0.136654 0.074929 0.024087 0.016552 0.136654 0.081674 0.054144 0.025855 0.170817 0.092527 0.307471 +0 +0.007863 0.001210 0.045618 0.125547 0.039059 0.135568 0.017983 0.018590 0.058372 0.118610 0.018837 0.064399 0.039147 0.046272 0.072840 0.056418 0.041323 0.053709 0.056703 0.047226 0.005453 0.170817 0.062381 0.022124 0.051414 0.170817 0.060058 0.042631 0.006441 0.204980 0.060914 0.239144 +0.029804 +0.060092 0.039806 0.187067 0.086122 0.028301 0.055228 0.040035 0.048283 0.143098 0.048918 0.049028 0.274543 0.024340 0.061837 0.081183 0.068403 0.030085 0.060824 0.052413 0.031347 0.005485 0.102490 0.088169 0.038399 0.036441 0.102490 0.079863 0.011289 0.036294 0.136654 0.099095 0.239144 +0.010865 +0.064122 0.008211 0.081201 0.037330 0.021109 0.081864 0.023098 0.003724 0.036027 0.035466 0.046920 0.049229 0.052531 0.046398 0.056554 0.046978 0.031001 0.061306 0.049629 0.026301 0.011009 0.239144 0.060059 0.034415 0.025086 0.170817 0.085785 0.022951 0.007500 0.170817 0.054968 0.273307 +0.003115 +0.016182 0.001922 0.046616 0.080618 0.017393 0.061727 0.029107 0.040367 0.041991 0.164967 0.039285 0.140077 0.021468 0.038697 0.141110 0.098391 0.041794 0.111340 0.038677 0.059476 0.020375 0.239144 0.070104 0.006924 0.038814 0.204980 0.069124 0.019612 0.051904 0.204980 0.052696 0.341634 +0.001189 +0.059529 0.008139 0.081197 0.144757 0.044629 0.156699 0.060686 0.017927 0.066904 0.059418 0.040799 0.107884 0.021256 0.012374 0.062017 0.094299 0.049958 0.226252 0.044300 0.059276 0.042944 0.239144 0.079687 0.020371 0.029811 0.136654 0.058776 0.027559 0.011792 0.239144 0.071829 0.273307 +0.185247 +0.017833 0.041280 0.057834 0.034832 0.017586 0.244846 0.052053 0.026947 0.049853 0.077875 0.035364 0.229923 0.007197 0.038180 0.077337 0.040949 0.032500 0.086686 0.052266 0.025746 0.064922 0.170817 0.079301 0.024338 0.058657 0.239144 0.065395 0.018362 0.001179 0.102490 0.098976 0.273307 +0.059758 +0.016785 0.011659 0.058669 0.049694 0.025187 0.113571 0.000170 0.055386 0.036648 0.074021 0.022651 0.047499 0.056471 0.020523 0.057507 0.034432 0.022885 0.134458 0.052836 0.032496 0.057909 0.204980 0.059455 0.021085 0.062071 0.170817 0.056080 0.000235 0.050489 0.170817 0.094889 0.273307 +0 +0.020049 0.016322 0.045103 0.043337 0.047022 0.086450 0.060499 0.040615 0.231008 0.079199 0.048526 0.261507 0.038327 0.067705 0.053151 0.106124 0.031934 0.353229 0.038625 0.059234 0.004336 0.170817 0.064736 0.040990 0.063247 0.102490 0.080992 0.032367 0.026120 0.239144 0.070954 0.273307 +0.073304 +0.053286 0.047141 0.055750 0.043148 0.022597 0.039906 0.005275 0.011846 0.044498 0.038809 0.049701 0.105473 0.049632 0.020330 0.085300 0.040239 0.042888 0.124877 0.055783 0.044674 0.015638 0.102490 0.097953 0.039774 0.023365 0.239144 0.086490 0.010618 0.036718 0.136654 0.086439 0.273307 +0.001480 +0.020204 0.044495 0.057845 0.035324 0.017945 0.193620 0.004422 0.024798 0.091067 0.035103 0.041501 0.043280 0.056346 0.045155 0.122011 0.086104 0.025421 0.097398 0.061243 0.007339 0.066543 0.102490 0.070767 0.051608 0.032926 0.204980 0.061994 0.017302 0.008595 0.136654 0.057745 0.239144 +0.003494 +0.060476 0.032063 0.112983 0.053260 0.032174 0.097036 0.048582 0.051761 0.049787 0.043087 0.021320 0.037610 0.031796 0.054486 0.062198 0.063002 0.046307 0.068087 0.063426 0.045053 0.038671 0.136654 0.059518 0.063430 0.016862 0.102490 0.101312 0.057170 0.061006 0.170817 0.058392 0.239144 +0 +0.038671 0.019365 0.102769 0.072906 0.025200 0.068426 0.028459 0.048762 0.041182 0.039690 0.020172 0.085846 0.024901 0.035003 0.043958 0.044760 0.017206 0.066948 0.053343 0.060051 0.049962 0.136654 0.055419 0.011866 0.055472 0.170817 0.053993 0.000166 0.023523 0.170817 0.054556 0.307471 +0 +0.061782 0.048516 0.060694 0.068186 0.038268 0.233100 0.026283 0.062249 0.085842 0.037083 0.044933 0.083373 0.018315 0.009202 0.050924 0.048617 0.050066 0.196582 0.046914 0.032630 0.026059 0.102490 0.093639 0.000201 0.000349 0.136654 0.058469 0.065950 0.044442 0.204980 0.060578 0.273307 +0.227718 +0.051026 0.059304 0.171309 0.056602 0.040372 0.048778 0.021923 0.029945 0.079656 0.049373 0.050497 0.046921 0.013366 0.029963 0.047740 0.038637 0.024001 0.056793 0.044191 0.045381 0.023741 0.136654 0.101891 0.014677 0.042109 0.239144 0.063879 0.031268 0.021250 0.204980 0.100913 0.307471 +0 +0.015290 0.023917 0.075180 0.064941 0.032536 0.045275 0.014250 0.035987 0.064967 0.038347 0.032581 0.036184 0.042640 0.015028 0.087730 0.142074 0.028046 0.055225 0.045369 0.033772 0.061553 0.204980 0.058866 0.045653 0.004485 0.204980 0.082921 0.038485 0.017425 0.204980 0.094482 0.239144 +0 +0.042856 0.014318 0.065760 0.049207 0.029728 0.067032 0.058411 0.005945 0.048085 0.115623 0.035699 0.070515 0.005294 0.050482 0.063228 0.042125 0.035386 0.071565 0.048945 0.048056 0.061711 0.102490 0.056282 0.051498 0.034995 0.170817 0.077213 0.005216 0.016504 0.102490 0.099411 0.204980 +0.027525 +0.018331 0.022848 0.038575 0.044604 0.043542 0.230985 0.050043 0.040832 0.131352 0.143495 0.039858 0.105775 0.022093 0.025980 0.079737 0.045336 0.050213 0.131504 0.061838 0.011671 0.049751 0.136654 0.080801 0.013971 0.058223 0.204980 0.081584 0.029011 0.059503 0.136654 0.079750 0.239144 +0.184792 +0.064352 0.025979 0.070031 0.102815 0.018737 0.061419 0.016451 0.045422 0.038920 0.039589 0.020610 0.115486 0.060107 0.062619 0.090884 0.048378 0.028882 0.047932 0.038912 0.017055 0.032158 0.239144 0.061435 0.046585 0.067743 0.204980 0.075402 0.001540 0.067338 0.136654 0.089507 0.273307 +0 +0.044285 0.024964 0.078781 0.041265 0.017089 0.057799 0.014873 0.053996 0.106258 0.047992 0.044507 0.300337 0.055752 0.054174 0.043296 0.039404 0.048138 0.249823 0.038110 0.011637 0.031164 0.136654 0.067893 0.062454 0.058692 0.170817 0.072107 0.023004 0.050378 0.136654 0.088346 0.204980 +0.113846 +0.037516 0.067517 0.040020 0.092367 0.037287 0.154744 0.041989 0.048307 0.089604 0.057752 0.038145 0.095440 0.008242 0.048167 0.069289 0.067450 0.035338 0.040675 0.054998 0.036531 0.006021 0.273307 0.101040 0.050033 0.049008 0.102490 0.057101 0.034068 0.044192 0.273307 0.072800 0.341634 +0 +0.039035 0.052065 0.040036 0.055033 0.036129 0.491274 0.040181 0.012051 0.044636 0.066949 0.025628 0.117895 0.021334 0.000002 0.034410 0.047701 0.045186 0.089004 0.052264 0.052658 0.012732 0.136654 0.065207 0.023144 0.058025 0.204980 0.093725 0.043126 0.053212 0.136654 0.096237 0.239144 +0.498968 +0.048671 0.060635 0.056318 0.039692 0.022138 0.098490 0.018542 0.042151 0.040979 0.058743 0.028676 0.080461 0.049770 0.033193 0.069576 0.062176 0.029335 0.062878 0.051373 0.006267 0.016558 0.239144 0.061357 0.012164 0.023619 0.204980 0.054129 0.018836 0.030882 0.102490 0.052575 0.307471 +0 +0.067629 0.024811 0.036076 0.059967 0.045482 0.284667 0.027619 0.015833 0.041466 0.071616 0.032567 0.044630 0.019931 0.022935 0.052548 0.063033 0.032125 0.080888 0.064175 0.004796 0.027857 0.307471 0.065546 0.048722 0.009420 0.273307 0.095109 0.055792 0.041069 0.307471 0.083977 0.341634 +0.036204 +0.020551 0.035024 0.048537 0.052590 0.029803 0.163680 0.057890 0.055442 0.121106 0.042414 0.048069 0.090826 0.022273 0.011035 0.054887 0.041001 0.024719 0.131517 0.060493 0.063043 0.039015 0.136654 0.091998 0.011825 0.015448 0.102490 0.083591 0.029173 0.011374 0.136654 0.074797 0.239144 +0.014244 +0.055338 0.027099 0.055830 0.090405 0.019980 0.254231 0.054062 0.032022 0.097385 0.187001 0.019923 0.099061 0.022600 0.045835 0.044381 0.053294 0.022680 0.237195 0.059975 0.005379 0.046141 0.204980 0.085262 0.028309 0.060740 0.136654 0.100781 0.042175 0.062362 0.136654 0.069010 0.239144 +0.249382 +0.004158 0.035790 0.034858 0.043942 0.040970 0.115675 0.011515 0.023426 0.049497 0.109477 0.024919 0.068744 0.019572 0.035113 0.053679 0.039088 0.036910 0.278750 0.064717 0.035290 0.020678 0.102490 0.091745 0.029013 0.006217 0.204980 0.054748 0.044171 0.022977 0.170817 0.052964 0.307471 +0.289403 +0.026669 0.051241 0.076228 0.041205 0.023427 0.201302 0.051757 0.058830 0.164095 0.085340 0.036756 0.199103 0.013085 0.046756 0.038821 0.064193 0.019444 0.111112 0.051872 0.062339 0.056665 0.170817 0.091861 0.063020 0.018915 0.136654 0.084137 0.049717 0.063375 0.204980 0.086962 0.273307 +0.038834 +0.064549 0.027861 0.157109 0.118356 0.039256 0.086424 0.012690 0.065067 0.131903 0.151179 0.024772 0.050091 0.026669 0.035620 0.048725 0.086921 0.048292 0.223423 0.036912 0.017300 0.018080 0.136654 0.056939 0.064337 0.035193 0.170817 0.070471 0.022646 0.008346 0.239144 0.060792 0.341634 +0.015773 +0.031979 0.031937 0.072875 0.058395 0.021859 0.101339 0.022877 0.036210 0.050349 0.042140 0.045121 0.053192 0.005021 0.050464 0.036129 0.061714 0.037349 0.073434 0.063353 0.054036 0.021977 0.204980 0.087173 0.049733 0.000134 0.239144 0.060087 0.045692 0.030532 0.239144 0.076326 0.273307 +0.056654 +0.041403 0.038492 0.089154 0.053320 0.038251 0.048300 0.005301 0.040517 0.047226 0.065340 0.046368 0.036763 0.016001 0.038316 0.090303 0.063306 0.049462 0.266899 0.047639 0.034323 0.025770 0.102490 0.082303 0.008613 0.007240 0.102490 0.061073 0.018972 0.058990 0.170817 0.090813 0.239144 +0.013298 +0.023216 0.034393 0.072889 0.058229 0.047714 0.054355 0.065741 0.053477 0.057703 0.051232 0.046866 0.144555 0.067822 0.033393 0.079823 0.068950 0.025501 0.228417 0.040769 0.042019 0.025113 0.102490 0.097271 0.034256 0.054083 0.136654 0.093846 0.033405 0.043709 0.102490 0.081191 0.204980 +0.083968 +0.066023 0.055148 0.063486 0.154228 0.035254 0.045055 0.019401 0.017194 0.058064 0.041936 0.023223 0.104405 0.049615 0.001098 0.080037 0.038445 0.035741 0.036528 0.044202 0.009895 0.042521 0.136654 0.082180 0.009291 0.054145 0.102490 0.060118 0.061292 0.038334 0.170817 0.077991 0.204980 +0.028041 +0.061788 0.067191 0.066990 0.080468 0.050923 0.215100 0.047014 0.000741 0.055745 0.076823 0.022774 0.112360 0.037575 0.028703 0.037239 0.048163 0.039098 0.378978 0.063822 0.033348 0.027676 0.204980 0.055542 0.015343 0.036273 0.273307 0.095873 0.045427 0.049221 0.307471 0.066826 0.341634 +0.411348 +0.006498 0.004447 0.096918 0.081017 0.047210 0.049333 0.054288 0.015853 0.070178 0.078358 0.034705 0.133688 0.030220 0.001156 0.083665 0.042892 0.037448 0.131972 0.046813 0.006609 0.046075 0.204980 0.085453 0.051658 0.032034 0.136654 0.075087 0.012718 0.034678 0.136654 0.052582 0.273307 +0.004658 +0.044456 0.011109 0.122040 0.046110 0.045307 0.040500 0.016559 0.041882 0.107270 0.085629 0.034201 0.138989 0.065819 0.062758 0.057517 0.077148 0.028335 0.158897 0.042769 0.014186 0.054214 0.204980 0.092835 0.009997 0.027749 0.102490 0.058856 0.002084 0.064690 0.204980 0.100618 0.307471 +0.030475 +0.068146 0.017848 0.035537 0.104538 0.029042 0.090888 0.017352 0.025706 0.036140 0.055611 0.026328 0.070799 0.007842 0.040025 0.068135 0.050925 0.030813 0.137905 0.062076 0.060232 0.000788 0.136654 0.083256 0.024815 0.049155 0.102490 0.094534 0.038953 0.048793 0.102490 0.084354 0.239144 +0.006619 +0.057074 0.027653 0.070191 0.113895 0.044425 0.035147 0.007267 0.043914 0.055740 0.102765 0.017319 0.068516 0.035080 0.063799 0.077308 0.047654 0.027522 0.213299 0.037297 0.016659 0.016204 0.102490 0.060011 0.026291 0.049960 0.204980 0.077798 0.032375 0.067765 0.136654 0.079962 0.239144 +0.035157 +0.027616 0.049435 0.054879 0.075671 0.026210 0.062208 0.049278 0.035936 0.039243 0.066886 0.022578 0.045921 0.051425 0.018014 0.066513 0.127140 0.018223 0.130588 0.054694 0.005951 0.056092 0.239144 0.071864 0.044740 0.021894 0.239144 0.091010 0.005096 0.024679 0.239144 0.101475 0.307471 +0 +0.035403 0.013519 0.071556 0.036621 0.028876 0.257762 0.003291 0.060111 0.096001 0.074700 0.033175 0.152899 0.057543 0.033356 0.044414 0.071887 0.026359 0.085627 0.051753 0.058962 0.029189 0.102490 0.057163 0.016619 0.044177 0.102490 0.069993 0.055687 0.040917 0.170817 0.061180 0.273307 +0.071115 +0.024549 0.033330 0.060100 0.081966 0.021307 0.065443 0.057128 0.062033 0.041633 0.067560 0.047286 0.315340 0.045993 0.064639 0.039754 0.053913 0.047113 0.107428 0.055364 0.024017 0.062167 0.170817 0.101369 0.022759 0.044483 0.204980 0.052539 0.065424 0.053943 0.102490 0.063525 0.239144 +0.181063 +0.014569 0.000716 0.062707 0.034372 0.019076 0.037801 0.039603 0.000067 0.051470 0.037039 0.034813 0.073964 0.000320 0.030260 0.084576 0.034527 0.040001 0.131483 0.057648 0.002945 0.016732 0.136654 0.077718 0.055761 0.016628 0.136654 0.058501 0.033752 0.051869 0.136654 0.063813 0.341634 +0 +0.035050 0.066290 0.065761 0.037350 0.043280 0.069096 0.054243 0.018636 0.043441 0.121800 0.043678 0.115103 0.037046 0.060759 0.172026 0.084708 0.028529 0.041758 0.042492 0.041876 0.042768 0.239144 0.052481 0.065618 0.047628 0.239144 0.078242 0.033700 0.012585 0.170817 0.095074 0.273307 +0 +0.027028 0.065705 0.050324 0.074114 0.043177 0.061074 0.039965 0.060052 0.040882 0.057309 0.024783 0.065095 0.035154 0.024066 0.039208 0.055481 0.047926 0.039162 0.060748 0.004519 0.036406 0.170817 0.091808 0.015528 0.048288 0.136654 0.075676 0.036393 0.032404 0.102490 0.053846 0.273307 +0 +0.001509 0.033904 0.065154 0.034693 0.026813 0.064357 0.043878 0.060882 0.047039 0.086089 0.018785 0.062685 0.003372 0.057680 0.042329 0.036446 0.031074 0.104875 0.043523 0.067666 0.036821 0.136654 0.091807 0.059630 0.021321 0.102490 0.067524 0.058160 0.035402 0.136654 0.058750 0.204980 +0 +0.040359 0.000990 0.073067 0.071200 0.038897 0.243776 0.054609 0.050661 0.087396 0.074234 0.035988 0.256641 0.037463 0.007007 0.144450 0.076016 0.017191 0.100266 0.055463 0.031698 0.018766 0.170817 0.071510 0.037934 0.061446 0.136654 0.082040 0.060097 0.052092 0.102490 0.086061 0.239144 +0.370322 +0.001224 0.066967 0.083630 0.047994 0.043578 0.058357 0.061211 0.025595 0.040991 0.051519 0.035264 0.247755 0.019704 0.062855 0.210106 0.041372 0.040251 0.219975 0.051933 0.032232 0.020302 0.102490 0.070288 0.042649 0.016922 0.102490 0.071282 0.050423 0.050883 0.170817 0.083032 0.273307 +0.015836 +0.026866 0.041695 0.060342 0.152695 0.024236 0.158171 0.026837 0.029448 0.108207 0.069694 0.027625 0.035355 0.013440 0.042040 0.038664 0.055855 0.021656 0.151427 0.051929 0.051793 0.059573 0.307471 0.072047 0.037106 0.004343 0.239144 0.055883 0.032769 0.051798 0.307471 0.074321 0.341634 +0.072178 +0.049622 0.048616 0.058061 0.041304 0.027291 0.051789 0.053011 0.024884 0.064341 0.117025 0.035000 0.244006 0.012019 0.043741 0.046528 0.076941 0.041749 0.143574 0.057427 0.051995 0.017809 0.102490 0.056393 0.050968 0.043498 0.136654 0.060087 0.014871 0.049400 0.136654 0.074722 0.239144 +0.186124 +0.062352 0.057203 0.088763 0.047145 0.032328 0.219356 0.064315 0.064122 0.035214 0.125724 0.045251 0.066846 0.000579 0.007634 0.097427 0.061643 0.029248 0.428094 0.050570 0.037582 0.046309 0.102490 0.094708 0.022090 0.050697 0.102490 0.098618 0.053704 0.032270 0.170817 0.088216 0.204980 +0.409520 +0.046381 0.067814 0.042038 0.067453 0.044762 0.128869 0.028634 0.026604 0.042814 0.083258 0.023038 0.056450 0.044831 0.033432 0.145135 0.058300 0.050514 0.166466 0.042235 0.004660 0.037409 0.136654 0.054303 0.057137 0.029771 0.102490 0.057190 0.035533 0.058552 0.102490 0.079375 0.204980 +0.063737 +0.035262 0.006500 0.037588 0.039912 0.048599 0.186721 0.021401 0.044540 0.051876 0.035397 0.046621 0.201526 0.061809 0.064187 0.049348 0.061411 0.046457 0.179598 0.048189 0.050254 0.028267 0.170817 0.077919 0.053601 0.063424 0.102490 0.084233 0.053640 0.036878 0.136654 0.070177 0.239144 +0.564791 +0.065918 0.043825 0.116005 0.068807 0.042778 0.178734 0.066658 0.056599 0.093792 0.045723 0.019160 0.232111 0.027111 0.004053 0.093807 0.070904 0.038043 0.176566 0.038079 0.058964 0.004101 0.239144 0.061998 0.020683 0.044768 0.204980 0.088657 0.033069 0.064390 0.307471 0.076449 0.341634 +0.050181 +0.049483 0.049683 0.035293 0.050622 0.020794 0.105498 0.047686 0.050853 0.050195 0.042191 0.032718 0.194311 0.045217 0.035557 0.046580 0.037361 0.027629 0.034727 0.062937 0.045983 0.013675 0.102490 0.058192 0.000214 0.028450 0.102490 0.094307 0.013363 0.004313 0.170817 0.060004 0.204980 +0.113372 +0.024192 0.008126 0.038068 0.056835 0.049422 0.087605 0.024888 0.055859 0.102395 0.037028 0.029333 0.055677 0.022048 0.007784 0.054889 0.072382 0.037921 0.062236 0.059938 0.035617 0.035194 0.136654 0.091436 0.036645 0.016128 0.204980 0.088011 0.038754 0.015088 0.136654 0.058630 0.239144 +0 +0.020203 0.045195 0.052251 0.138787 0.018411 0.223042 0.000200 0.023226 0.047609 0.049944 0.017210 0.076256 0.005769 0.024947 0.096380 0.093347 0.036378 0.143201 0.046177 0.039869 0.062081 0.204980 0.098289 0.066138 0.053576 0.102490 0.064201 0.050800 0.049687 0.204980 0.092224 0.239144 +0.333466 +0.062313 0.016577 0.077516 0.053934 0.024855 0.121785 0.021817 0.002160 0.042426 0.139179 0.036243 0.140994 0.034731 0.053596 0.055259 0.042371 0.023112 0.239104 0.040867 0.020768 0.060969 0.170817 0.094492 0.061981 0.039174 0.239144 0.099638 0.066672 0.032068 0.136654 0.080132 0.273307 +0.231395 +0.019234 0.067513 0.120507 0.055298 0.032175 0.050972 0.055913 0.028763 0.070040 0.042151 0.049612 0.221269 0.012818 0.018381 0.050966 0.079267 0.047663 0.116886 0.045291 0.049288 0.006285 0.204980 0.086732 0.002025 0.049601 0.273307 0.068142 0.015429 0.026789 0.273307 0.059745 0.341634 +0.023774 +0.015657 0.055681 0.049129 0.108605 0.045293 0.240814 0.033003 0.009223 0.061455 0.138933 0.049074 0.094404 0.064006 0.065719 0.076350 0.119683 0.045185 0.141550 0.040815 0.054244 0.040434 0.170817 0.053041 0.004204 0.027760 0.204980 0.091699 0.066135 0.043389 0.136654 0.088650 0.273307 +0.061161 +0.026200 0.036053 0.072106 0.174632 0.017665 0.089407 0.001054 0.000010 0.101390 0.040883 0.049562 0.036060 0.036999 0.037904 0.081763 0.091846 0.021104 0.045739 0.045469 0.033269 0.059443 0.170817 0.073677 0.021848 0.017108 0.136654 0.085726 0.054568 0.026104 0.136654 0.059232 0.204980 +0 +0.019596 0.050015 0.073865 0.056598 0.025198 0.064468 0.055485 0.067090 0.051565 0.055016 0.034453 0.035609 0.018770 0.044651 0.058030 0.043850 0.042538 0.205715 0.044294 0.035821 0.023707 0.102490 0.101724 0.067287 0.040543 0.136654 0.065464 0.031316 0.005050 0.136654 0.087398 0.204980 +0.338097 +0.034074 0.041954 0.138122 0.086127 0.046284 0.056162 0.019155 0.026387 0.052757 0.100301 0.043215 0.139319 0.003837 0.021359 0.136020 0.036281 0.049364 0.050099 0.045810 0.044348 0.055756 0.273307 0.083351 0.010648 0.027067 0.136654 0.100955 0.014953 0.054793 0.170817 0.072866 0.307471 +0 +0.008013 0.041891 0.053010 0.069041 0.046065 0.331981 0.035300 0.064968 0.037366 0.053305 0.047790 0.470846 0.023059 0.051330 0.049904 0.037599 0.032566 0.127109 0.041031 0.032171 0.017951 0.102490 0.097782 0.026766 0.038207 0.136654 0.094898 0.061024 0.040366 0.204980 0.099704 0.307471 +0.349662 +0.001063 0.065412 0.055943 0.065859 0.032410 0.312137 0.044407 0.007078 0.135434 0.070087 0.028970 0.113529 0.036611 0.011815 0.037792 0.043364 0.025042 0.055457 0.043791 0.032852 0.023340 0.136654 0.089525 0.048593 0.031874 0.136654 0.084000 0.045774 0.035635 0.204980 0.083487 0.273307 +0.119666 +0.054325 0.060008 0.055605 0.064567 0.044970 0.168426 0.030288 0.015162 0.049734 0.056607 0.044709 0.333367 0.004360 0.031123 0.120885 0.087794 0.024497 0.081132 0.058125 0.002311 0.006872 0.204980 0.086451 0.033919 0.067072 0.102490 0.085868 0.038355 0.060033 0.204980 0.084761 0.307471 +0.471580 +0.022845 0.012304 0.035478 0.090677 0.033835 0.044376 0.004914 0.011641 0.072372 0.160894 0.032923 0.062076 0.003881 0.064820 0.052019 0.061093 0.026036 0.244904 0.064568 0.040785 0.018539 0.204980 0.090747 0.053945 0.040961 0.102490 0.072017 0.062738 0.063425 0.170817 0.076841 0.341634 +0 +0.041741 0.025592 0.110664 0.124516 0.045691 0.097395 0.023760 0.043827 0.050536 0.065493 0.040526 0.182094 0.004001 0.062865 0.043129 0.037715 0.034306 0.054139 0.042213 0.049336 0.015813 0.170817 0.098542 0.001471 0.035739 0.136654 0.088586 0.036950 0.007305 0.170817 0.065821 0.273307 +0.015990 +0.026019 0.017560 0.078245 0.062295 0.047601 0.050940 0.010820 0.025888 0.127824 0.089324 0.020267 0.053084 0.051154 0.057134 0.044190 0.099052 0.040173 0.042771 0.042494 0.052593 0.006807 0.170817 0.080436 0.014458 0.051355 0.136654 0.093838 0.043264 0.009046 0.102490 0.098361 0.341634 +0 +0.010804 0.049152 0.057454 0.042265 0.022802 0.118786 0.026931 0.029250 0.055325 0.052491 0.023834 0.142971 0.063516 0.029487 0.059568 0.072709 0.041270 0.136482 0.040417 0.067400 0.056787 0.136654 0.096528 0.007520 0.010589 0.102490 0.068061 0.006061 0.046439 0.204980 0.098467 0.341634 +0.005447 +0.051425 0.019014 0.075654 0.043458 0.021858 0.096708 0.042898 0.007739 0.035131 0.058267 0.031689 0.058125 0.052791 0.004839 0.056069 0.084730 0.024977 0.097023 0.044279 0.027136 0.064841 0.102490 0.073520 0.012148 0.062343 0.136654 0.069873 0.013501 0.032808 0.136654 0.087561 0.239144 +0.005007 +0.006157 0.048077 0.105437 0.048888 0.049680 0.075709 0.007510 0.049564 0.034726 0.054389 0.021311 0.384563 0.060345 0.054825 0.053931 0.092826 0.046552 0.057617 0.062998 0.028017 0.031307 0.239144 0.079578 0.049973 0.041534 0.102490 0.092565 0.010454 0.055035 0.136654 0.078602 0.273307 +0.017837 +0.006977 0.049857 0.046337 0.053979 0.030800 0.389883 0.011356 0.034374 0.053162 0.165575 0.041619 0.337406 0.044435 0.029324 0.036530 0.055391 0.038936 0.095653 0.057329 0.031341 0.015069 0.273307 0.059490 0.010107 0.033366 0.239144 0.070283 0.055260 0.026235 0.239144 0.063023 0.307471 +0.429587 +0.002886 0.034632 0.083405 0.043517 0.017125 0.328032 0.026364 0.033417 0.059413 0.042971 0.031245 0.158508 0.032032 0.016885 0.042245 0.036991 0.017522 0.131360 0.060385 0.006231 0.033910 0.170817 0.091826 0.037125 0.029215 0.204980 0.070262 0.066352 0.029485 0.204980 0.098764 0.341634 +0.604106 +0.051935 0.057790 0.042252 0.051468 0.032446 0.138938 0.019436 0.057291 0.037155 0.073328 0.021050 0.051520 0.031338 0.002139 0.096246 0.042334 0.031519 0.037822 0.064080 0.014150 0.066484 0.136654 0.094288 0.050162 0.000434 0.170817 0.073254 0.054020 0.064646 0.102490 0.092345 0.239144 +0 +0.007064 0.009097 0.052869 0.127049 0.034236 0.117075 0.060757 0.058246 0.073021 0.062049 0.046858 0.265472 0.039918 0.002024 0.036783 0.077230 0.045730 0.067491 0.042897 0.031785 0.035025 0.204980 0.085659 0.063992 0.059929 0.136654 0.095374 0.057943 0.000618 0.204980 0.057999 0.307471 +0.013439 +0.039162 0.033812 0.066740 0.087995 0.031988 0.267298 0.033632 0.051403 0.113269 0.082687 0.042957 0.088191 0.034964 0.037112 0.052378 0.063782 0.023415 0.088161 0.043651 0.028730 0.056590 0.102490 0.077345 0.016198 0.054244 0.204980 0.079153 0.039842 0.036678 0.273307 0.088263 0.341634 +0 +0.064497 0.000745 0.052278 0.072185 0.022997 0.106666 0.049806 0.014865 0.035519 0.045257 0.042249 0.037252 0.044374 0.005327 0.142517 0.046370 0.039244 0.123043 0.048452 0.044973 0.022652 0.170817 0.081641 0.049111 0.067043 0.102490 0.069515 0.060162 0.025126 0.170817 0.072719 0.204980 +0 +0.016171 0.015973 0.050863 0.048813 0.017478 0.038099 0.048680 0.002995 0.035306 0.100762 0.048101 0.034435 0.000794 0.048479 0.106001 0.038079 0.032176 0.060251 0.050311 0.031633 0.031083 0.239144 0.058893 0.035129 0.035159 0.136654 0.090244 0.026419 0.026286 0.170817 0.083193 0.307471 +0 +0.013546 0.033428 0.041108 0.068572 0.028537 0.049954 0.050009 0.026896 0.086968 0.042145 0.041492 0.131553 0.004869 0.063586 0.045633 0.050603 0.023743 0.075984 0.059466 0.038071 0.006256 0.136654 0.086583 0.056572 0.013547 0.102490 0.099325 0.051408 0.009400 0.204980 0.075408 0.273307 +0.010909 +0.036994 0.030200 0.055953 0.034653 0.017840 0.061893 0.007179 0.022569 0.057392 0.074975 0.041006 0.113454 0.066262 0.040034 0.069142 0.141221 0.024796 0.198092 0.041611 0.066640 0.045309 0.170817 0.087316 0.033231 0.038689 0.204980 0.090477 0.051880 0.019888 0.102490 0.078369 0.239144 +0.068208 +0.055117 0.000347 0.038660 0.035502 0.042945 0.050742 0.004159 0.051596 0.065837 0.054354 0.017325 0.034423 0.060772 0.044808 0.047339 0.071563 0.023259 0.257530 0.057435 0.037642 0.023953 0.273307 0.089169 0.016593 0.042583 0.136654 0.097619 0.067178 0.013536 0.239144 0.066719 0.307471 +0.002531 +0.054070 0.022556 0.054636 0.081713 0.017642 0.211652 0.049083 0.026530 0.064259 0.091647 0.040028 0.193000 0.017219 0.023280 0.085506 0.037998 0.034308 0.082199 0.044075 0.059929 0.008589 0.170817 0.079413 0.053668 0.056594 0.102490 0.059140 0.032696 0.061866 0.102490 0.053775 0.239144 +0.412037 +0.037900 0.018313 0.076105 0.040142 0.031673 0.034437 0.046921 0.022710 0.078357 0.160596 0.019625 0.101627 0.051244 0.024305 0.083177 0.078338 0.031961 0.166035 0.049289 0.016896 0.040477 0.136654 0.099621 0.044229 0.032675 0.170817 0.068432 0.045699 0.047513 0.102490 0.090407 0.204980 +0.021526 +0.033699 0.039505 0.126291 0.065670 0.043482 0.070253 0.022502 0.045675 0.070102 0.056147 0.037182 0.094365 0.057205 0.056310 0.083112 0.138717 0.021651 0.082059 0.059968 0.051299 0.038974 0.136654 0.094764 0.054917 0.019975 0.170817 0.069822 0.052735 0.065935 0.102490 0.071023 0.204980 +0.012452 +0.020571 0.057434 0.041399 0.066569 0.042662 0.139792 0.024884 0.060492 0.040046 0.040634 0.045004 0.361153 0.023775 0.008181 0.042038 0.046591 0.036943 0.070049 0.036637 0.058496 0.053078 0.102490 0.063794 0.060500 0.029881 0.204980 0.079885 0.015442 0.012169 0.204980 0.051972 0.239144 +1 +0.007935 0.044938 0.035419 0.039210 0.039461 0.034428 0.000634 0.002774 0.038700 0.064847 0.017082 0.164716 0.037942 0.005967 0.037927 0.044063 0.041419 0.224721 0.049770 0.003156 0.038792 0.307471 0.075987 0.042339 0.023613 0.307471 0.075388 0.024183 0.054631 0.102490 0.099032 0.341634 +0.174652 +0.036453 0.051399 0.113855 0.156538 0.026954 0.108537 0.018243 0.066923 0.053846 0.051984 0.049228 0.052932 0.006845 0.010679 0.086578 0.124566 0.030474 0.057871 0.049416 0.064332 0.034297 0.136654 0.064832 0.051103 0.059911 0.136654 0.062913 0.053809 0.031012 0.102490 0.060492 0.239144 +0 +0.063573 0.030986 0.039040 0.041507 0.046572 0.089345 0.050639 0.035332 0.097970 0.051418 0.028633 0.099994 0.029234 0.033773 0.037818 0.039337 0.019054 0.085624 0.039253 0.064476 0.037356 0.136654 0.063081 0.040384 0.019860 0.170817 0.058478 0.012051 0.025899 0.170817 0.081155 0.273307 +0.006659 +0.034259 0.030020 0.046384 0.043386 0.048675 0.065610 0.054050 0.006997 0.126715 0.092463 0.048454 0.088384 0.001149 0.061926 0.036757 0.083154 0.050867 0.161989 0.051580 0.042686 0.030278 0.170817 0.098401 0.035685 0.025463 0.204980 0.055299 0.056913 0.045671 0.136654 0.063842 0.239144 +0.044816 +0.041700 0.007439 0.067135 0.041717 0.035099 0.279659 0.032124 0.018130 0.044686 0.110473 0.039996 0.100024 0.052737 0.031844 0.034847 0.088683 0.036102 0.360561 0.043126 0.016362 0.003205 0.170817 0.079477 0.029330 0.040567 0.239144 0.093707 0.068082 0.016989 0.204980 0.067761 0.341634 +0.022574 +0.018978 0.001889 0.074656 0.038292 0.018305 0.101286 0.062335 0.019634 0.042387 0.044649 0.047121 0.248619 0.009220 0.062963 0.150622 0.090486 0.045739 0.116498 0.061011 0.025809 0.051276 0.204980 0.069320 0.065134 0.010820 0.204980 0.077731 0.041795 0.025442 0.102490 0.053338 0.307471 +0.032045 +0.033205 0.010102 0.084555 0.051053 0.042683 0.131715 0.021715 0.026309 0.060124 0.154636 0.045943 0.094807 0.023342 0.053058 0.075118 0.036429 0.023901 0.062091 0.044759 0.000511 0.015804 0.102490 0.063355 0.039517 0.028909 0.136654 0.093240 0.014476 0.026760 0.170817 0.075599 0.204980 +0.069950 +0.065629 0.002735 0.104145 0.050181 0.041420 0.063627 0.029126 0.011939 0.041848 0.042123 0.049046 0.118276 0.015726 0.003582 0.103617 0.056453 0.026217 0.034612 0.039134 0.064470 0.035845 0.170817 0.077056 0.062538 0.057987 0.136654 0.079494 0.024620 0.008324 0.102490 0.085866 0.204980 +0 +0.001391 0.037536 0.047946 0.093796 0.048735 0.049145 0.050661 0.014562 0.055500 0.069234 0.029020 0.155074 0.031134 0.042053 0.047242 0.051456 0.017691 0.243547 0.049612 0.021241 0.041961 0.204980 0.094511 0.027201 0.028889 0.136654 0.073020 0.024290 0.030546 0.170817 0.056240 0.341634 +0 +0.044312 0.004461 0.044531 0.045724 0.031640 0.517192 0.058985 0.057935 0.064919 0.036458 0.030489 0.281009 0.062885 0.023840 0.048515 0.045269 0.032205 0.100436 0.047630 0.064168 0.005341 0.170817 0.073270 0.052866 0.007032 0.136654 0.079734 0.002197 0.065953 0.102490 0.082666 0.307471 +0.696602 +0.008343 0.016165 0.051515 0.078173 0.038680 0.091358 0.055546 0.000963 0.082964 0.058025 0.035578 0.044118 0.062925 0.018202 0.035078 0.034979 0.022029 0.302106 0.042686 0.007776 0.019259 0.102490 0.100145 0.006982 0.001881 0.239144 0.076166 0.012160 0.058045 0.204980 0.062919 0.273307 +0.666653 +0.020073 0.022930 0.092818 0.037290 0.044224 0.394861 0.017250 0.004579 0.060107 0.045018 0.032174 0.141760 0.062933 0.031684 0.040656 0.068012 0.034915 0.059721 0.044058 0.020763 0.046252 0.204980 0.066439 0.013595 0.023369 0.136654 0.055219 0.003459 0.008404 0.102490 0.059992 0.307471 +0.538922 +0.065241 0.046322 0.100367 0.220445 0.027378 0.185219 0.017210 0.044112 0.066340 0.041456 0.032867 0.115671 0.017071 0.021515 0.052095 0.051513 0.033947 0.144430 0.041754 0.006295 0.058950 0.170817 0.075685 0.031693 0.066225 0.239144 0.099091 0.028493 0.023135 0.239144 0.094678 0.341634 +0.007234 +0.066515 0.040973 0.125522 0.034344 0.028083 0.135367 0.020678 0.048878 0.049766 0.043464 0.024012 0.075032 0.048037 0.004881 0.068815 0.042917 0.037313 0.179176 0.053850 0.055939 0.034121 0.170817 0.099289 0.009201 0.047442 0.102490 0.071194 0.033235 0.056159 0.170817 0.070095 0.204980 +0.015283 +0.011395 0.059044 0.042418 0.072391 0.025237 0.279210 0.003235 0.020587 0.048994 0.048781 0.034807 0.186221 0.040571 0.002864 0.100854 0.047596 0.039071 0.056611 0.054949 0.007062 0.061190 0.136654 0.068849 0.000230 0.005015 0.170817 0.053033 0.062365 0.040509 0.136654 0.092657 0.204980 +0.624976 +0.062266 0.046483 0.354817 0.042206 0.020736 0.109221 0.021919 0.064397 0.035454 0.054750 0.045216 0.072777 0.032096 0.056438 0.036942 0.047754 0.022787 0.148212 0.043460 0.066128 0.058306 0.273307 0.096480 0.032808 0.039537 0.239144 0.094723 0.059634 0.013546 0.102490 0.052148 0.307471 +0.037981 +0.000050 0.027152 0.122328 0.037749 0.037798 0.543623 0.059341 0.044491 0.049666 0.076393 0.042219 0.041274 0.017161 0.055294 0.068976 0.156324 0.019975 0.134328 0.053676 0.032586 0.025126 0.273307 0.059732 0.044811 0.051256 0.136654 0.089259 0.038381 0.010756 0.136654 0.073371 0.307471 +0.338220 +0.040919 0.007484 0.134058 0.049743 0.034902 0.081234 0.048711 0.027047 0.037717 0.119155 0.026778 0.646675 0.030740 0.032209 0.087387 0.049406 0.023207 0.108302 0.062695 0.044453 0.009504 0.102490 0.061141 0.067021 0.053026 0.170817 0.051905 0.002810 0.062990 0.170817 0.072600 0.204980 +0.626280 +0.034322 0.016309 0.203535 0.055739 0.037039 0.278912 0.043401 0.030737 0.037736 0.055061 0.022211 0.142834 0.016221 0.016847 0.035408 0.083016 0.043058 0.078996 0.045010 0.001929 0.022107 0.204980 0.052310 0.041836 0.039282 0.136654 0.096370 0.038129 0.033068 0.204980 0.068429 0.307471 +0 +0.048570 0.064856 0.059813 0.035881 0.022265 0.049282 0.002223 0.022836 0.100554 0.044321 0.045147 0.315780 0.008943 0.051202 0.056381 0.067663 0.023317 0.110749 0.051748 0.007331 0.012500 0.204980 0.069612 0.009959 0.025566 0.204980 0.087459 0.022578 0.036596 0.170817 0.066918 0.307471 +0.017098 +0.052623 0.020432 0.050640 0.081952 0.021046 0.041712 0.053390 0.020633 0.047573 0.115702 0.050858 0.064575 0.026333 0.053033 0.068492 0.058608 0.030347 0.275398 0.046579 0.033098 0.014573 0.307471 0.093537 0.036828 0.026107 0.170817 0.053368 0.006488 0.024231 0.102490 0.069008 0.341634 +0.004404 +0.017630 0.031021 0.116758 0.041152 0.020664 0.239325 0.040884 0.042002 0.114333 0.091624 0.032826 0.048785 0.052379 0.042100 0.043249 0.067568 0.028316 0.180847 0.054709 0.031150 0.060517 0.136654 0.054315 0.012964 0.056964 0.102490 0.080329 0.034447 0.013553 0.170817 0.101534 0.204980 +0.227862 +0.037712 0.014923 0.116431 0.110874 0.018898 0.056296 0.042523 0.045048 0.050041 0.060073 0.019066 0.065308 0.009465 0.051940 0.077332 0.041657 0.019812 0.092092 0.053841 0.035240 0.036329 0.102490 0.054849 0.020014 0.033243 0.204980 0.080714 0.029861 0.028397 0.239144 0.067820 0.273307 +0 +0.060529 0.000639 0.040487 0.035356 0.025420 0.174753 0.028415 0.053132 0.036749 0.047120 0.030708 0.069045 0.026196 0.006090 0.046003 0.046674 0.042428 0.049994 0.043965 0.040665 0.039164 0.102490 0.088944 0.017113 0.061189 0.170817 0.073316 0.000020 0.018609 0.102490 0.078747 0.273307 +0 +0.015481 0.002995 0.098478 0.071574 0.025677 0.138574 0.059236 0.011090 0.041246 0.127222 0.034135 0.165540 0.067354 0.057464 0.044167 0.073743 0.019319 0.098429 0.044561 0.029684 0.028694 0.170817 0.068941 0.033970 0.043591 0.102490 0.059407 0.061300 0.005276 0.102490 0.082153 0.204980 +0.066104 +0.050822 0.005652 0.041695 0.054203 0.040337 0.156503 0.013771 0.034021 0.040957 0.091210 0.031742 0.094202 0.001352 0.022956 0.094345 0.048602 0.017860 0.193249 0.052964 0.033769 0.025861 0.239144 0.076375 0.027800 0.054531 0.170817 0.101412 0.039726 0.049333 0.204980 0.066741 0.341634 +0.020009 +0.063074 0.046725 0.036296 0.048603 0.036799 0.111469 0.032887 0.028611 0.176939 0.040855 0.031454 0.212856 0.049083 0.017028 0.038520 0.086893 0.020187 0.142532 0.038918 0.000283 0.012916 0.204980 0.066131 0.040588 0.029129 0.204980 0.091784 0.046903 0.062782 0.170817 0.093388 0.307471 +0.006937 +0.017360 0.019740 0.040325 0.071143 0.017663 0.227121 0.012141 0.056799 0.041378 0.063646 0.035407 0.175579 0.064217 0.042159 0.043902 0.063989 0.028916 0.061292 0.053505 0.050018 0.034883 0.170817 0.093011 0.054778 0.063188 0.170817 0.085821 0.027302 0.051295 0.170817 0.059833 0.239144 +0.014990 +0.060614 0.066368 0.095315 0.034264 0.018491 0.123207 0.068091 0.025861 0.036725 0.103003 0.047594 0.126777 0.023477 0.006881 0.039468 0.063297 0.017711 0.036401 0.054230 0.001044 0.012915 0.102490 0.061159 0.035894 0.044344 0.170817 0.075546 0.013488 0.043183 0.204980 0.091942 0.341634 +0.007060 +0.008338 0.019626 0.064871 0.038259 0.045165 0.037682 0.013345 0.067694 0.059861 0.102015 0.017565 0.159632 0.029216 0.062402 0.037043 0.037925 0.031515 0.103738 0.049013 0.066483 0.033635 0.204980 0.069259 0.035865 0.034814 0.136654 0.096845 0.009665 0.022454 0.273307 0.087567 0.307471 +0.020953 +0.011463 0.021125 0.062556 0.081130 0.026384 0.059611 0.068178 0.025736 0.050870 0.094211 0.034807 0.041628 0.061171 0.010086 0.040159 0.036050 0.025848 0.140380 0.050295 0.052592 0.037678 0.273307 0.083527 0.047044 0.068310 0.102490 0.063168 0.055596 0.030942 0.170817 0.062467 0.341634 +0 +0.002087 0.026611 0.038751 0.082969 0.038821 0.109438 0.020300 0.062844 0.061104 0.038383 0.037836 0.133084 0.004627 0.028598 0.096286 0.075969 0.049957 0.492395 0.060830 0.033269 0.052488 0.204980 0.091426 0.038544 0.000629 0.204980 0.100401 0.012146 0.029510 0.136654 0.063287 0.239144 +0.168269 +0.057854 0.000956 0.155671 0.035875 0.041315 0.090286 0.014927 0.021962 0.070248 0.179615 0.034595 0.064446 0.046460 0.065188 0.040797 0.061733 0.017558 0.056948 0.055170 0.001151 0.007699 0.204980 0.088235 0.042699 0.067597 0.136654 0.078643 0.046532 0.052939 0.136654 0.098732 0.307471 +0 +0.037496 0.027727 0.043912 0.052584 0.019402 0.043875 0.010626 0.047782 0.056196 0.039075 0.033810 0.210865 0.051308 0.021139 0.041958 0.056691 0.038494 0.259396 0.045025 0.012009 0.008231 0.102490 0.056038 0.068176 0.061186 0.239144 0.079195 0.036389 0.010039 0.170817 0.074299 0.273307 +0.215760 +0.042446 0.014743 0.070310 0.093605 0.050870 0.139662 0.026236 0.016944 0.138220 0.170617 0.033978 0.121451 0.057380 0.021346 0.045135 0.037149 0.023828 0.092730 0.052441 0.026533 0.031209 0.204980 0.061083 0.046587 0.012845 0.102490 0.080904 0.038288 0.051423 0.170817 0.071929 0.239144 +0 +0.057923 0.040774 0.070736 0.080871 0.045256 0.039165 0.058089 0.037987 0.073666 0.079229 0.017413 0.128424 0.004107 0.054052 0.075199 0.040863 0.028747 0.180812 0.049717 0.035996 0.048985 0.170817 0.081600 0.015786 0.043336 0.136654 0.061517 0.061333 0.021161 0.170817 0.093593 0.204980 +0.052276 +0.026313 0.061678 0.037712 0.181846 0.045312 0.107836 0.013711 0.022079 0.036790 0.059391 0.045963 0.048893 0.013603 0.020455 0.054116 0.073937 0.041784 0.697937 0.058893 0.066332 0.011878 0.136654 0.056964 0.053352 0.013721 0.273307 0.052635 0.056137 0.067729 0.136654 0.082361 0.307471 +0.089064 +0.045061 0.006641 0.037422 0.065787 0.028997 0.230168 0.028234 0.052703 0.034491 0.036021 0.037238 0.050769 0.010472 0.037445 0.066536 0.086178 0.027985 0.181274 0.055166 0.006973 0.034999 0.273307 0.093565 0.005760 0.048861 0.204980 0.070160 0.061691 0.062802 0.204980 0.062230 0.307471 +0.016968 +0.018755 0.038909 0.044132 0.063422 0.030614 0.432225 0.009187 0.012378 0.047982 0.049270 0.047128 0.158519 0.058879 0.056999 0.105414 0.102180 0.033520 0.363761 0.038658 0.020261 0.027301 0.136654 0.086540 0.021799 0.049170 0.102490 0.099395 0.059860 0.013459 0.239144 0.084775 0.341634 +0.555813 +0.016724 0.032249 0.113402 0.049338 0.030006 0.039160 0.039469 0.061933 0.036008 0.037489 0.020595 0.071913 0.033670 0.003731 0.040731 0.090608 0.025912 0.247127 0.051477 0.040444 0.045646 0.204980 0.080152 0.015979 0.062942 0.239144 0.095774 0.041928 0.038260 0.204980 0.056091 0.307471 +0 +0.049656 0.010602 0.165379 0.043488 0.023468 0.061735 0.055911 0.007517 0.064761 0.070549 0.038482 0.045601 0.028128 0.011538 0.145717 0.049213 0.037213 0.067273 0.059955 0.033558 0.006266 0.170817 0.073084 0.051789 0.019509 0.102490 0.064436 0.033208 0.003668 0.170817 0.057556 0.239144 +0 +0.049007 0.023864 0.073509 0.036012 0.039580 0.219040 0.020604 0.063518 0.063800 0.056926 0.037795 0.360524 0.001775 0.051685 0.073878 0.038590 0.034261 0.102067 0.047333 0.066331 0.063044 0.239144 0.100626 0.035738 0.003938 0.204980 0.091079 0.061537 0.032951 0.102490 0.099749 0.273307 +0.193091 +0.026241 0.034805 0.056495 0.055177 0.049302 0.078703 0.060164 0.065198 0.037858 0.036385 0.031289 0.132038 0.045646 0.014051 0.038534 0.086095 0.021957 0.116375 0.051970 0.049769 0.004196 0.102490 0.096809 0.038601 0.003439 0.136654 0.081093 0.013803 0.029999 0.136654 0.056046 0.204980 +0.054845 +0.005891 0.010755 0.046671 0.038902 0.021897 0.265179 0.042218 0.032989 0.050290 0.096753 0.029041 0.134892 0.039885 0.046386 0.047943 0.046529 0.050798 0.122282 0.045299 0.045573 0.064028 0.239144 0.054867 0.064750 0.019465 0.239144 0.075905 0.010774 0.006986 0.136654 0.053928 0.273307 +0.451709 +0.041860 0.060296 0.062436 0.079950 0.018478 0.068185 0.038248 0.020546 0.055869 0.067686 0.038640 0.232118 0.030946 0.052744 0.073644 0.088623 0.030099 0.111304 0.061120 0.045434 0.058887 0.136654 0.092422 0.008751 0.055778 0.136654 0.101528 0.010859 0.013159 0.136654 0.063405 0.204980 +0.044768 +0.012619 0.034776 0.084420 0.063214 0.017102 0.093894 0.012831 0.045763 0.038788 0.104257 0.026703 0.175143 0.066421 0.021307 0.041173 0.039461 0.019789 0.216000 0.051812 0.017860 0.062447 0.102490 0.068422 0.044624 0.045777 0.170817 0.057378 0.034876 0.038663 0.307471 0.100117 0.341634 +0.078399 +0.013283 0.047664 0.036670 0.046561 0.029079 0.092308 0.018245 0.045244 0.192848 0.074144 0.042171 0.371021 0.040879 0.048264 0.056867 0.059935 0.035019 0.070061 0.049960 0.014632 0.015749 0.204980 0.053196 0.027452 0.003412 0.204980 0.090410 0.052672 0.051274 0.204980 0.068619 0.341634 +0.066654 +0.057935 0.004100 0.068792 0.043991 0.029177 0.123139 0.013990 0.024747 0.038808 0.187174 0.029298 0.129619 0.029718 0.064285 0.038747 0.041504 0.048793 0.089080 0.062933 0.057094 0.015342 0.204980 0.054255 0.017878 0.033664 0.102490 0.094228 0.058331 0.035947 0.170817 0.093455 0.239144 +0.005044 +0.017884 0.018163 0.040798 0.051200 0.017589 0.091927 0.004785 0.011003 0.078125 0.150561 0.026564 0.036393 0.037522 0.019448 0.042126 0.080545 0.029537 0.074038 0.046810 0.048106 0.017661 0.102490 0.084583 0.055449 0.037858 0.136654 0.057584 0.031265 0.038788 0.170817 0.088021 0.204980 +0.004669 +0.023687 0.062039 0.043947 0.050314 0.026295 0.070753 0.016360 0.057008 0.113467 0.040176 0.036540 0.233594 0.037626 0.063483 0.048808 0.161382 0.023512 0.064202 0.044903 0.013300 0.065605 0.239144 0.076442 0.048421 0.039528 0.204980 0.080137 0.056720 0.050631 0.204980 0.091840 0.273307 +0.082692 +0.054358 0.067049 0.083252 0.061621 0.019581 0.294631 0.011411 0.030500 0.063088 0.046787 0.029988 0.044996 0.026231 0.008354 0.137296 0.051904 0.048879 0.115658 0.054786 0.035370 0.039080 0.102490 0.059074 0.058011 0.036560 0.102490 0.056501 0.062364 0.014715 0.204980 0.088848 0.341634 +0.008545 +0.037586 0.017681 0.122177 0.079743 0.019750 0.180250 0.042815 0.056329 0.035474 0.056161 0.039181 0.060696 0.023203 0.010077 0.165233 0.046349 0.041614 0.186377 0.051191 0.029527 0.066151 0.136654 0.063501 0.067997 0.017786 0.273307 0.051877 0.011109 0.048325 0.273307 0.052975 0.307471 +0.184601 +0.038617 0.059288 0.128128 0.048759 0.018494 0.079020 0.065346 0.047049 0.039457 0.065994 0.028662 0.232714 0.057283 0.024256 0.068455 0.036054 0.022180 0.091396 0.056130 0.064110 0.009005 0.136654 0.088242 0.055030 0.010956 0.136654 0.089770 0.037130 0.026144 0.102490 0.080441 0.307471 +0.002963 +0.009553 0.021316 0.050685 0.060303 0.029634 0.161260 0.064637 0.030030 0.038755 0.148835 0.026640 0.092494 0.066180 0.066400 0.048432 0.047897 0.049849 0.401314 0.060888 0.050439 0.042456 0.204980 0.095965 0.028767 0.053790 0.204980 0.056956 0.051381 0.042889 0.136654 0.093662 0.239144 +0.203677 +0.037746 0.038780 0.060868 0.063724 0.027685 0.052847 0.037491 0.021276 0.047466 0.065579 0.049894 0.100484 0.007980 0.018829 0.051862 0.044804 0.028481 0.084122 0.050689 0.033371 0.065822 0.102490 0.087069 0.065223 0.022304 0.136654 0.090261 0.010658 0.007508 0.102490 0.055328 0.204980 +0.020100 +0.037027 0.065666 0.056303 0.101761 0.040294 0.120268 0.046933 0.026380 0.043914 0.076022 0.020326 0.151908 0.062474 0.051583 0.045802 0.123782 0.019085 0.099406 0.046908 0.042386 0.063888 0.136654 0.080989 0.005953 0.059623 0.102490 0.067460 0.019766 0.050670 0.170817 0.088356 0.273307 +0.064767 +0.040221 0.055614 0.071705 0.052223 0.019687 0.039725 0.001134 0.001082 0.044477 0.056558 0.030689 0.190769 0.012932 0.059792 0.075907 0.041089 0.050816 0.054636 0.050554 0.062645 0.052469 0.136654 0.074090 0.031009 0.048172 0.102490 0.090948 0.048729 0.051112 0.170817 0.082663 0.341634 +0 +0.014335 0.032704 0.050937 0.044747 0.032701 0.034386 0.026869 0.021020 0.042803 0.055970 0.037809 0.114500 0.001251 0.019995 0.082573 0.040483 0.041978 0.041516 0.043977 0.046157 0.034250 0.170817 0.071302 0.066021 0.033755 0.170817 0.084023 0.064682 0.008371 0.102490 0.095489 0.204980 +0.004565 +0.009621 0.060835 0.037914 0.042584 0.022813 0.264062 0.031654 0.040106 0.055133 0.082634 0.048744 0.054998 0.061613 0.018496 0.045575 0.108862 0.044432 0.377201 0.050598 0.023008 0.006067 0.102490 0.063164 0.000831 0.045790 0.136654 0.088558 0.016791 0.007236 0.273307 0.073425 0.341634 +0.425966 +0.026838 0.009898 0.073119 0.042998 0.029847 0.082330 0.026274 0.060041 0.131389 0.169674 0.050930 0.042976 0.056955 0.005184 0.040045 0.043749 0.023809 0.040269 0.057945 0.011698 0.032503 0.170817 0.102484 0.024245 0.000020 0.204980 0.089608 0.009786 0.043181 0.239144 0.072455 0.273307 +0 +0.018029 0.011576 0.053195 0.034908 0.025254 0.145058 0.059708 0.032205 0.065684 0.070119 0.050276 0.089505 0.064234 0.018445 0.063837 0.083882 0.047360 0.085703 0.045073 0.038060 0.028553 0.204980 0.064246 0.036264 0.020893 0.273307 0.095768 0.026227 0.016336 0.239144 0.071465 0.307471 +0 +0.027198 0.023674 0.054130 0.107148 0.018656 0.162107 0.057290 0.018415 0.039359 0.042031 0.023356 0.080454 0.052771 0.001681 0.053685 0.047888 0.032753 0.062047 0.051286 0.025012 0.040433 0.204980 0.073453 0.029835 0.054952 0.204980 0.056617 0.063448 0.032841 0.170817 0.080011 0.239144 +0.002788 +0.067122 0.035583 0.078227 0.076146 0.030891 0.272281 0.041609 0.062520 0.081816 0.048193 0.032218 0.123635 0.033673 0.018365 0.227705 0.043461 0.019813 0.058750 0.049689 0.021376 0.047859 0.170817 0.087199 0.001872 0.056119 0.170817 0.062689 0.017563 0.007214 0.102490 0.080964 0.204980 +0.250012 +0.034924 0.050211 0.043073 0.139127 0.034404 0.035462 0.026473 0.001119 0.086304 0.043461 0.019606 0.109287 0.037278 0.043827 0.063890 0.046996 0.037809 0.060004 0.041819 0.037061 0.000091 0.239144 0.063748 0.048079 0.044412 0.239144 0.078126 0.067735 0.024153 0.273307 0.084616 0.341634 +0.004879 +0.022944 0.007907 0.147980 0.170465 0.032640 0.074023 0.006755 0.004703 0.052739 0.035621 0.034362 0.049723 0.056815 0.026666 0.047163 0.064953 0.028255 0.246785 0.046451 0.030156 0.001769 0.273307 0.083035 0.038894 0.020959 0.204980 0.084140 0.021128 0.062109 0.170817 0.096277 0.307471 +0 +0.049605 0.004229 0.051457 0.035874 0.026086 0.098159 0.042647 0.035937 0.143553 0.053376 0.025767 0.100842 0.019327 0.000633 0.038594 0.045314 0.018887 0.068689 0.048760 0.043245 0.036187 0.170817 0.077644 0.067380 0.013411 0.102490 0.065453 0.011016 0.064185 0.102490 0.073136 0.204980 +0.016707 +0.013169 0.005712 0.042074 0.096850 0.033354 0.069869 0.043976 0.004041 0.124313 0.062299 0.042111 0.101557 0.038654 0.062173 0.060829 0.036139 0.040028 0.188446 0.055191 0.016492 0.066045 0.170817 0.068540 0.034454 0.018526 0.307471 0.051605 0.054416 0.027913 0.273307 0.098418 0.341634 +0.037142 +0.033040 0.061045 0.064428 0.059824 0.026258 0.037469 0.036418 0.015590 0.057187 0.099508 0.042066 0.052970 0.022771 0.013963 0.057798 0.093658 0.034882 0.048546 0.055034 0.030380 0.063498 0.102490 0.081144 0.042828 0.016962 0.170817 0.072801 0.019345 0.055016 0.136654 0.093342 0.204980 +0 +0.067449 0.035535 0.100229 0.038674 0.041369 0.249856 0.014525 0.024775 0.036175 0.060663 0.047553 0.157355 0.006569 0.060960 0.037252 0.040487 0.026811 0.860742 0.064200 0.014481 0.004437 0.170817 0.088339 0.033359 0.037236 0.170817 0.092436 0.020656 0.031471 0.170817 0.082866 0.204980 +0.774422 +0.012076 0.061480 0.096047 0.091126 0.041393 0.137829 0.029295 0.019927 0.059038 0.053222 0.040812 0.049190 0.014908 0.021154 0.041387 0.058761 0.025330 0.046937 0.053039 0.031839 0.033905 0.136654 0.074497 0.005679 0.054880 0.170817 0.083427 0.016679 0.012685 0.204980 0.085771 0.239144 +0 +0.051611 0.005237 0.157351 0.100454 0.043765 0.050189 0.048592 0.057017 0.043710 0.129112 0.021426 0.220110 0.047500 0.016752 0.141578 0.057722 0.032309 0.110791 0.046664 0.068151 0.024018 0.102490 0.087077 0.048182 0.058707 0.204980 0.099449 0.007295 0.064807 0.204980 0.057208 0.307471 +0.026461 +0.023533 0.064888 0.087268 0.053898 0.036161 0.084551 0.051359 0.066005 0.043041 0.079441 0.021239 0.082701 0.008966 0.046821 0.035593 0.047789 0.036990 0.125681 0.056506 0.002982 0.028596 0.170817 0.051740 0.044747 0.049396 0.239144 0.092565 0.065124 0.003301 0.170817 0.059514 0.341634 +0.339016 +0.011719 0.058480 0.070593 0.038161 0.047602 0.042603 0.056188 0.040725 0.075032 0.043027 0.033270 0.050277 0.050608 0.040397 0.050658 0.058669 0.049251 0.214573 0.054185 0.045374 0.021232 0.239144 0.078770 0.016354 0.011422 0.204980 0.058324 0.031962 0.017559 0.136654 0.072354 0.341634 +0.024676 +0.033498 0.065378 0.042533 0.082103 0.036768 0.072594 0.045754 0.013435 0.038086 0.104531 0.047384 0.170260 0.035329 0.012420 0.061134 0.044440 0.046893 0.237385 0.056516 0.067205 0.063341 0.307471 0.052649 0.017262 0.053924 0.307471 0.079938 0.012642 0.020848 0.136654 0.084579 0.341634 +0.038844 +0.000758 0.046846 0.036634 0.062251 0.036153 0.262161 0.044869 0.018105 0.058508 0.112658 0.023547 0.221339 0.057239 0.036528 0.136405 0.062080 0.017746 0.307680 0.044707 0.061257 0.056248 0.102490 0.080327 0.019531 0.017998 0.102490 0.052533 0.045117 0.011839 0.102490 0.053472 0.204980 +0.316259 +0.023810 0.027869 0.137864 0.095147 0.045512 0.103567 0.037292 0.011660 0.087787 0.041670 0.042098 0.048837 0.019701 0.063129 0.035519 0.061781 0.045698 0.404555 0.042895 0.049383 0.022658 0.239144 0.057701 0.026134 0.061976 0.170817 0.085286 0.037359 0.002026 0.102490 0.068673 0.341634 +0.476168 +0.028482 0.067410 0.038055 0.084558 0.029392 0.065235 0.055782 0.012928 0.042914 0.135404 0.050358 0.111799 0.045154 0.007351 0.067213 0.064434 0.033325 0.034752 0.057137 0.067145 0.053750 0.170817 0.087530 0.031162 0.029434 0.204980 0.054299 0.067033 0.018903 0.170817 0.062945 0.273307 +0.007245 +0.002705 0.026427 0.070039 0.069899 0.046431 0.047290 0.021651 0.007109 0.035981 0.084596 0.036109 0.095769 0.038514 0.021724 0.037132 0.034623 0.023146 0.093973 0.042785 0.003966 0.009529 0.273307 0.086767 0.044998 0.004881 0.307471 0.098139 0.066886 0.040410 0.102490 0.083230 0.341634 +0.064122 +0.029666 0.005129 0.089106 0.109143 0.026178 0.196277 0.039516 0.061851 0.093673 0.048865 0.045337 0.262747 0.048581 0.038766 0.049189 0.041320 0.035651 0.102742 0.039979 0.001645 0.002781 0.204980 0.079955 0.060049 0.016649 0.239144 0.097390 0.013929 0.010070 0.102490 0.090254 0.307471 +0.130724 +0.055558 0.038406 0.036888 0.040400 0.033463 0.112945 0.050384 0.027593 0.100002 0.040295 0.039790 0.191550 0.029349 0.012911 0.038749 0.063055 0.029790 0.205394 0.043865 0.014369 0.028193 0.136654 0.088756 0.039549 0.039476 0.136654 0.075671 0.042087 0.016855 0.170817 0.091305 0.307471 +0.020624 +0.003344 0.019441 0.041226 0.046228 0.042055 0.234393 0.022381 0.002341 0.108646 0.045772 0.031806 0.188822 0.011146 0.009800 0.056208 0.052239 0.020131 0.207729 0.035726 0.056322 0.038386 0.273307 0.066545 0.022899 0.058634 0.239144 0.068715 0.067346 0.003374 0.273307 0.086553 0.307471 +0.976735 +0.042741 0.027030 0.123182 0.054862 0.048333 0.109081 0.017193 0.026554 0.081623 0.059234 0.033733 0.387243 0.001014 0.064168 0.071917 0.037828 0.036309 0.041783 0.048875 0.007503 0.026521 0.307471 0.099280 0.020162 0.068274 0.102490 0.060856 0.048104 0.040386 0.136654 0.058433 0.341634 +0.317081 +0.030081 0.019761 0.049874 0.037065 0.023285 0.090343 0.052986 0.052699 0.120739 0.118462 0.027854 0.116963 0.015358 0.046944 0.036758 0.055859 0.042343 0.057657 0.058404 0.035210 0.028005 0.204980 0.069520 0.054671 0.014067 0.136654 0.093713 0.060161 0.047380 0.136654 0.062842 0.239144 +0.002922 +0.025263 0.034827 0.053245 0.051120 0.030069 0.052907 0.049389 0.057758 0.035095 0.071782 0.024627 0.418655 0.013802 0.004149 0.072326 0.040366 0.034484 0.144614 0.037653 0.016226 0.006503 0.102490 0.087413 0.046843 0.026645 0.102490 0.086333 0.005923 0.032720 0.170817 0.101614 0.239144 +0.642434 +0.000680 0.024312 0.043636 0.056166 0.035601 0.198775 0.007846 0.058222 0.071643 0.054040 0.040601 0.173569 0.041578 0.012458 0.061424 0.064139 0.017578 0.051781 0.052421 0.044977 0.013801 0.136654 0.084616 0.008545 0.043868 0.102490 0.078626 0.055903 0.052110 0.102490 0.090163 0.239144 +0.036372 +0.018463 0.032225 0.051951 0.093104 0.030861 0.067813 0.020083 0.000663 0.048401 0.034526 0.034313 0.052630 0.056221 0.049287 0.055143 0.092131 0.047646 0.122479 0.051589 0.010649 0.007137 0.102490 0.079431 0.016719 0.037438 0.170817 0.066770 0.017912 0.032144 0.170817 0.052997 0.341634 +0 +0.017884 0.044863 0.039592 0.083533 0.025149 0.134229 0.061821 0.034559 0.042953 0.049929 0.029378 0.067006 0.001906 0.024572 0.059985 0.051640 0.034903 0.076345 0.047784 0.057220 0.027899 0.273307 0.058369 0.054905 0.045723 0.136654 0.079671 0.013378 0.007816 0.239144 0.098352 0.341634 +0.047472 +0.008168 0.037917 0.051657 0.174863 0.042771 0.035724 0.066283 0.000239 0.049876 0.045011 0.044221 0.227448 0.062581 0.051045 0.046106 0.064376 0.019532 0.169203 0.043168 0.055019 0.041782 0.136654 0.082178 0.029770 0.036173 0.239144 0.078622 0.045769 0.046909 0.102490 0.063611 0.273307 +0.149527 +0.036614 0.008164 0.113412 0.080360 0.048852 0.069086 0.002563 0.001748 0.046036 0.322421 0.036480 0.160962 0.006458 0.024047 0.035006 0.042002 0.043379 0.118380 0.039815 0.019537 0.024869 0.170817 0.085523 0.064609 0.000106 0.170817 0.099978 0.011623 0.065584 0.307471 0.065530 0.341634 +0.024649 +0.005203 0.017364 0.068691 0.131612 0.045793 0.179141 0.001961 0.026142 0.058436 0.085923 0.042341 0.133058 0.015865 0.018697 0.035780 0.038750 0.020488 0.242930 0.038430 0.062589 0.041157 0.102490 0.082893 0.030308 0.033038 0.136654 0.100824 0.000838 0.009281 0.136654 0.053441 0.341634 +0.370716 +0.061825 0.026792 0.035938 0.037932 0.027052 0.049314 0.045927 0.001193 0.063882 0.051431 0.018896 0.144481 0.024683 0.036268 0.081946 0.034932 0.047702 0.275691 0.058904 0.013964 0.064333 0.170817 0.072042 0.005743 0.001627 0.136654 0.070662 0.033346 0.050989 0.136654 0.087520 0.239144 +0.021846 +0.056277 0.053663 0.083969 0.071661 0.034960 0.039202 0.009728 0.003182 0.041357 0.052045 0.019596 0.088020 0.006285 0.061792 0.148166 0.046064 0.037217 0.047596 0.054099 0.048055 0.006682 0.136654 0.052633 0.029820 0.000560 0.102490 0.064774 0.004095 0.059194 0.170817 0.055669 0.204980 +0.013307 +0.027649 0.047687 0.058170 0.077463 0.026714 0.087555 0.063708 0.037220 0.089746 0.185398 0.029361 0.037874 0.027221 0.046145 0.105674 0.153389 0.048760 0.131072 0.060028 0.039443 0.039254 0.307471 0.068681 0.005992 0.061861 0.307471 0.070728 0.015202 0.020448 0.273307 0.073844 0.341634 +0 +0.043601 0.055225 0.076311 0.146987 0.032934 0.154117 0.047958 0.059867 0.047070 0.103084 0.037373 0.756681 0.004379 0.055743 0.056914 0.082667 0.043629 0.836931 0.057357 0.018694 0.033337 0.136654 0.054806 0.055356 0.043734 0.170817 0.095659 0.042073 0.023233 0.136654 0.053331 0.204980 +0.969594 +0.033441 0.006693 0.037293 0.091296 0.035091 0.137355 0.026365 0.027218 0.050781 0.071319 0.036255 0.058401 0.010248 0.034313 0.040900 0.072009 0.033291 0.082105 0.053895 0.051470 0.017740 0.170817 0.094952 0.026207 0.061028 0.170817 0.098342 0.034545 0.065585 0.102490 0.061440 0.204980 +0 +0.066594 0.014671 0.043803 0.050069 0.042234 0.064783 0.055421 0.006002 0.041473 0.043414 0.048663 0.047969 0.060132 0.017457 0.047118 0.121873 0.038634 0.066410 0.064682 0.007216 0.036335 0.170817 0.098661 0.053771 0.018291 0.102490 0.070539 0.034670 0.042594 0.102490 0.099376 0.239144 +0 +0.046064 0.040715 0.072689 0.052810 0.035109 0.178187 0.052186 0.035261 0.040598 0.060984 0.037701 0.157077 0.047968 0.062249 0.117349 0.074905 0.027627 0.107802 0.063599 0.057626 0.045409 0.102490 0.090866 0.018508 0.048066 0.136654 0.072303 0.065698 0.056407 0.170817 0.092985 0.239144 +0.013307 +0.008414 0.000254 0.068310 0.044139 0.047240 0.109892 0.022992 0.051306 0.048403 0.039943 0.031788 0.041885 0.059540 0.061417 0.037728 0.101527 0.046194 0.122035 0.050605 0.004529 0.021547 0.102490 0.063849 0.002152 0.015006 0.102490 0.102104 0.056885 0.055254 0.136654 0.052661 0.239144 +0.003219 +0.022042 0.048840 0.048068 0.047916 0.030511 0.073631 0.043667 0.043464 0.075841 0.049658 0.020175 0.225878 0.059012 0.066979 0.037041 0.107310 0.032083 0.037198 0.041561 0.001792 0.012046 0.170817 0.097397 0.056729 0.014631 0.204980 0.101771 0.058329 0.012864 0.170817 0.060780 0.239144 +0.134735 +0.056716 0.008970 0.187419 0.062048 0.037349 0.055359 0.062842 0.026542 0.041106 0.098097 0.019470 0.097382 0.030382 0.023761 0.041847 0.045300 0.031596 0.347830 0.045759 0.046010 0.051131 0.102490 0.099154 0.005903 0.001808 0.136654 0.097314 0.028221 0.043977 0.136654 0.056559 0.307471 +0.597872 +0.017690 0.014444 0.044993 0.053037 0.038685 0.343824 0.032271 0.056239 0.037233 0.057480 0.038571 0.078729 0.053477 0.015665 0.054752 0.069298 0.041878 0.344395 0.060202 0.021083 0.032809 0.204980 0.093854 0.043943 0.002649 0.239144 0.096614 0.023059 0.016692 0.204980 0.059910 0.273307 +0.287990 +0.011494 0.064649 0.049034 0.042145 0.044190 0.213667 0.008841 0.024692 0.041761 0.039702 0.039678 0.271666 0.054490 0.061100 0.074101 0.059496 0.021500 0.182751 0.044625 0.025458 0.002096 0.204980 0.052132 0.022996 0.014997 0.102490 0.061445 0.006576 0.066904 0.102490 0.083298 0.307471 +0.008856 +0.047684 0.056026 0.038404 0.039884 0.047227 0.081372 0.034287 0.012325 0.066723 0.049236 0.021709 0.063657 0.058009 0.035198 0.086214 0.064575 0.021261 0.198069 0.052868 0.023183 0.036202 0.136654 0.065019 0.012742 0.010938 0.273307 0.077590 0.023167 0.052796 0.239144 0.102459 0.307471 +0.036819 +0.055196 0.013363 0.042130 0.064892 0.027034 0.073202 0.039316 0.050191 0.063194 0.092400 0.027055 0.151263 0.056908 0.064136 0.037375 0.037326 0.024742 0.161052 0.039981 0.057831 0.021546 0.204980 0.070682 0.034478 0.049308 0.204980 0.083321 0.040551 0.023217 0.136654 0.084565 0.273307 +0.013569 +0.018139 0.007362 0.041674 0.043692 0.030999 0.101030 0.038407 0.052731 0.044248 0.075656 0.045305 0.197415 0.013105 0.067422 0.055190 0.066519 0.036625 0.143783 0.037929 0.067060 0.059972 0.170817 0.082322 0.020095 0.060504 0.102490 0.076219 0.061647 0.019444 0.102490 0.058620 0.204980 +0.152357 +0.059738 0.042979 0.071176 0.035236 0.039659 0.232717 0.055381 0.033778 0.062335 0.111428 0.051092 0.169742 0.007974 0.045991 0.149076 0.060548 0.039347 0.079819 0.050069 0.036684 0.000896 0.204980 0.064214 0.056006 0.029291 0.170817 0.085741 0.021167 0.011357 0.170817 0.065169 0.239144 +0.077165 +0.059562 0.013433 0.037010 0.062240 0.050691 0.138494 0.055061 0.020023 0.109870 0.061312 0.023304 0.046147 0.047275 0.061370 0.052556 0.069638 0.025234 0.085233 0.055756 0.013406 0.064203 0.204980 0.073863 0.005807 0.054507 0.170817 0.081151 0.068203 0.020737 0.204980 0.073555 0.239144 +0.106481 +0.060866 0.030005 0.132744 0.074424 0.020716 0.044792 0.057371 0.015643 0.074805 0.077358 0.035965 0.142380 0.004687 0.064648 0.069934 0.083493 0.037482 0.067872 0.037752 0.054424 0.027945 0.136654 0.088941 0.033466 0.052158 0.102490 0.075220 0.059101 0.061846 0.102490 0.064533 0.239144 +0 +0.013222 0.033161 0.084391 0.170330 0.021803 0.115588 0.025643 0.001350 0.087088 0.050256 0.033507 0.061611 0.057498 0.016390 0.106433 0.042451 0.050761 0.117675 0.061679 0.010086 0.034864 0.307471 0.053704 0.048370 0.053963 0.273307 0.099601 0.018142 0.038640 0.307471 0.064056 0.341634 +0.039622 +0.022538 0.044729 0.051085 0.051826 0.026718 0.155557 0.055550 0.042877 0.105562 0.036596 0.023285 0.042156 0.016469 0.013661 0.058774 0.060983 0.030146 0.181758 0.049388 0.067842 0.004050 0.204980 0.100356 0.038456 0.052459 0.204980 0.057729 0.020621 0.010207 0.102490 0.079193 0.273307 +0.019244 +0.030369 0.063040 0.091736 0.068480 0.037269 0.103279 0.045135 0.025699 0.077076 0.063928 0.043157 0.043724 0.016842 0.068221 0.121756 0.054170 0.028012 0.044839 0.063728 0.011860 0.016678 0.102490 0.073491 0.049380 0.064996 0.170817 0.083148 0.018581 0.063780 0.204980 0.065627 0.273307 +0 +0.012055 0.068192 0.041606 0.054721 0.020521 0.080741 0.060747 0.061749 0.058224 0.061263 0.033180 0.082290 0.014632 0.061970 0.042813 0.040167 0.044142 0.333252 0.045950 0.051643 0.055641 0.239144 0.056206 0.059077 0.036487 0.239144 0.083518 0.004341 0.022565 0.239144 0.059243 0.273307 +0.593171 +0.046115 0.015728 0.059066 0.045843 0.037118 0.041203 0.034410 0.065854 0.034220 0.062194 0.050710 0.036692 0.042661 0.008595 0.119499 0.062894 0.040670 0.153173 0.056471 0.012508 0.047627 0.136654 0.066963 0.038895 0.063871 0.136654 0.063837 0.023815 0.024637 0.102490 0.090676 0.239144 +0 +0.049637 0.020000 0.068204 0.039985 0.050060 0.493006 0.021126 0.011023 0.096029 0.067690 0.034659 0.217322 0.032150 0.021556 0.053006 0.054316 0.028172 0.034168 0.044752 0.017269 0.013824 0.136654 0.053526 0.066368 0.031474 0.170817 0.060819 0.003882 0.023048 0.170817 0.059387 0.239144 +0.378705 +0.033029 0.036534 0.099527 0.059954 0.026866 0.155251 0.025773 0.008164 0.039215 0.060435 0.046116 0.132148 0.067480 0.031775 0.066886 0.077310 0.043782 0.273074 0.049646 0.008006 0.037529 0.170817 0.079445 0.030592 0.049788 0.102490 0.096991 0.022325 0.046422 0.170817 0.077033 0.239144 +0.037968 +0.035905 0.060229 0.098313 0.037875 0.025482 0.119414 0.019716 0.061001 0.036187 0.173404 0.040754 0.159612 0.057406 0.046885 0.067705 0.051440 0.045372 0.236306 0.052779 0.005298 0.018702 0.170817 0.077805 0.060457 0.011222 0.136654 0.078051 0.047456 0.016216 0.136654 0.096866 0.204980 +0.226285 +0.015264 0.067433 0.055146 0.057251 0.018756 0.261619 0.036187 0.047618 0.035081 0.064526 0.030567 0.141935 0.055063 0.025634 0.057972 0.057863 0.019224 0.087416 0.053674 0.063003 0.019304 0.136654 0.062574 0.016926 0.018803 0.204980 0.083531 0.067504 0.032198 0.204980 0.070528 0.341634 +0.399047 +0.024936 0.058666 0.079959 0.127231 0.031543 0.086637 0.006083 0.031374 0.037152 0.065024 0.049864 0.045515 0.048621 0.066665 0.068727 0.046692 0.032686 0.099995 0.039487 0.048198 0.029616 0.204980 0.052283 0.012688 0.035732 0.204980 0.089453 0.036506 0.010441 0.170817 0.052603 0.273307 +0.008791 +0.046768 0.043276 0.037727 0.112941 0.031867 0.135434 0.002384 0.016215 0.051288 0.111460 0.031941 0.057341 0.031693 0.011595 0.055680 0.066379 0.040961 0.112957 0.051487 0.020100 0.061927 0.273307 0.061708 0.061463 0.060566 0.273307 0.075990 0.059967 0.018258 0.204980 0.087228 0.307471 +0 +0.060681 0.039909 0.136423 0.097993 0.023212 0.132097 0.025273 0.022852 0.206385 0.039551 0.049195 0.081740 0.056718 0.010794 0.056980 0.044555 0.019654 0.306507 0.049156 0.008135 0.038090 0.170817 0.085126 0.053158 0.026462 0.102490 0.088089 0.019519 0.018850 0.136654 0.099544 0.239144 +0.023844 +0.061438 0.047070 0.054547 0.041495 0.042842 0.097646 0.015299 0.001379 0.086353 0.040640 0.040694 0.036102 0.047913 0.012885 0.040545 0.065322 0.025071 0.493572 0.043307 0.062012 0.018342 0.273307 0.062480 0.017820 0.035570 0.273307 0.094944 0.024515 0.050396 0.102490 0.081256 0.307471 +0.272921 +0.063938 0.000027 0.040687 0.040254 0.024153 0.105481 0.000532 0.025732 0.035954 0.083716 0.028741 0.147662 0.027956 0.057083 0.074062 0.035061 0.046446 0.153775 0.053784 0.001081 0.026749 0.204980 0.094837 0.067669 0.040569 0.204980 0.094218 0.004392 0.016492 0.204980 0.091386 0.239144 +0.182707 +0.014244 0.002522 0.156246 0.062972 0.031397 0.540737 0.064093 0.025314 0.130100 0.128052 0.050800 0.055070 0.003858 0.005841 0.057158 0.065968 0.038454 0.057288 0.054995 0.003895 0.031288 0.136654 0.100261 0.026542 0.036215 0.136654 0.090510 0.024357 0.061595 0.170817 0.102127 0.204980 +0.370514 +0.044645 0.067683 0.113860 0.080841 0.019727 0.052015 0.002308 0.041716 0.045234 0.121722 0.033663 0.095873 0.005308 0.027017 0.043087 0.060254 0.046778 0.137190 0.042485 0.010299 0.046486 0.136654 0.052613 0.001801 0.047147 0.170817 0.070641 0.015998 0.006133 0.204980 0.075616 0.307471 +0 +0.044181 0.017291 0.035382 0.052388 0.024001 0.141891 0.039359 0.026434 0.058113 0.059503 0.044418 0.134809 0.017156 0.062686 0.034510 0.078728 0.018644 0.153342 0.056909 0.015310 0.016111 0.136654 0.059322 0.051183 0.054178 0.102490 0.086879 0.066942 0.066416 0.170817 0.094415 0.204980 +0.344566 +0.030651 0.015940 0.047804 0.059882 0.038627 0.289513 0.062457 0.029827 0.041696 0.042287 0.036488 0.042978 0.002223 0.013344 0.073264 0.069582 0.017551 0.078463 0.063121 0.010739 0.062121 0.170817 0.078737 0.013891 0.001784 0.239144 0.054505 0.012633 0.018733 0.102490 0.058925 0.273307 +0.133543 +0.012147 0.062026 0.099881 0.118511 0.050281 0.055072 0.039136 0.027411 0.088402 0.079440 0.019051 0.340429 0.016875 0.016128 0.039342 0.047333 0.050494 0.118596 0.056209 0.042743 0.010980 0.136654 0.072506 0.039594 0.017746 0.102490 0.082762 0.024608 0.041381 0.170817 0.092705 0.204980 +0.262923 +0.062021 0.022634 0.079549 0.063009 0.024897 0.094625 0.011454 0.029313 0.045441 0.051567 0.028525 0.049170 0.026007 0.007533 0.089720 0.037993 0.033477 0.112238 0.051834 0.017545 0.034960 0.307471 0.087488 0.029847 0.041102 0.136654 0.054462 0.028290 0.057801 0.273307 0.052803 0.341634 +0.065983 +0.034738 0.009147 0.035832 0.058233 0.039155 0.149316 0.018398 0.049734 0.046897 0.055332 0.031558 0.144420 0.067313 0.065907 0.037381 0.049188 0.025162 0.180192 0.046926 0.023332 0.042980 0.102490 0.081297 0.055210 0.005868 0.102490 0.060820 0.062111 0.001660 0.102490 0.084186 0.204980 +0.075480 +0.001787 0.044764 0.060718 0.056872 0.018477 0.095619 0.017262 0.066550 0.109645 0.081804 0.018204 0.213715 0.046179 0.064718 0.050204 0.101088 0.027842 0.043472 0.059419 0.046537 0.039109 0.102490 0.075626 0.025876 0.060173 0.204980 0.057083 0.035807 0.015812 0.102490 0.101633 0.307471 +0.007266 +0.018366 0.028631 0.036794 0.043507 0.040111 0.061807 0.043513 0.003966 0.139021 0.075927 0.025085 0.192908 0.028438 0.022582 0.081681 0.052917 0.045115 0.078067 0.052419 0.028349 0.059009 0.307471 0.074374 0.033725 0.030395 0.307471 0.054132 0.040166 0.038553 0.273307 0.058116 0.341634 +0.025993 +0.006052 0.059322 0.071195 0.047072 0.040054 0.038606 0.054174 0.034774 0.065649 0.077647 0.040047 0.079962 0.007710 0.017608 0.051371 0.235859 0.033382 0.256012 0.045178 0.001378 0.034609 0.136654 0.071890 0.024540 0.042879 0.170817 0.073907 0.049476 0.007570 0.136654 0.101696 0.204980 +0.011571 +0.000498 0.066109 0.042878 0.056384 0.019192 0.137277 0.067644 0.007491 0.095917 0.085360 0.018398 0.055725 0.062994 0.000526 0.066676 0.099483 0.021490 0.301105 0.041483 0.051601 0.054530 0.273307 0.091654 0.051935 0.030002 0.136654 0.091100 0.032692 0.039473 0.170817 0.075339 0.341634 +0 +0.056451 0.050018 0.035751 0.072625 0.037104 0.375213 0.064192 0.033438 0.046515 0.082941 0.019197 0.200093 0.043144 0.009855 0.104444 0.135093 0.022156 0.035074 0.051595 0.056696 0.039497 0.102490 0.081334 0.050790 0.040229 0.170817 0.067210 0.030688 0.047550 0.102490 0.100812 0.204980 +0.414790 +0.017489 0.014820 0.103282 0.057336 0.036643 0.143436 0.050691 0.047935 0.127981 0.050358 0.031290 0.126867 0.006044 0.031166 0.083925 0.063425 0.017648 0.164646 0.036283 0.027674 0.047404 0.102490 0.079850 0.006559 0.045711 0.102490 0.071510 0.001343 0.043292 0.136654 0.061851 0.239144 +0.157011 +0.053347 0.022445 0.061375 0.081063 0.028205 0.103020 0.001208 0.047812 0.151546 0.036862 0.027040 0.242934 0.025301 0.028572 0.060785 0.065010 0.035015 0.070551 0.045840 0.060310 0.065328 0.204980 0.078288 0.039610 0.032763 0.136654 0.061151 0.008078 0.030368 0.273307 0.068314 0.307471 +0.063068 +0.057364 0.037683 0.111356 0.047918 0.039088 0.097953 0.036035 0.041049 0.121158 0.052621 0.038399 0.047742 0.005971 0.016140 0.111313 0.092993 0.037469 0.039273 0.046607 0.067698 0.012535 0.102490 0.072246 0.007609 0.046388 0.170817 0.100037 0.010031 0.001711 0.102490 0.065055 0.204980 +0 +0.043696 0.048036 0.060149 0.042425 0.023283 0.183883 0.030884 0.004723 0.042815 0.080744 0.024208 0.047819 0.037501 0.003468 0.129634 0.049010 0.026993 0.038736 0.058283 0.002507 0.014995 0.102490 0.072603 0.037949 0.001545 0.239144 0.065689 0.039288 0.016753 0.204980 0.059723 0.273307 +0 +0.014917 0.055395 0.049645 0.049844 0.030412 0.075026 0.054793 0.056033 0.169009 0.044590 0.039765 0.038075 0.024379 0.017592 0.072375 0.092558 0.048541 0.064576 0.062400 0.014670 0.014073 0.239144 0.059277 0.040022 0.022400 0.239144 0.067747 0.045234 0.029187 0.239144 0.075736 0.273307 +0 +0.054189 0.065393 0.058782 0.074826 0.024484 0.146129 0.041149 0.047627 0.063356 0.047183 0.032414 0.055991 0.045990 0.051059 0.084787 0.039814 0.047709 0.036698 0.042417 0.048448 0.053396 0.136654 0.066264 0.006405 0.038420 0.170817 0.059978 0.001384 0.031076 0.136654 0.074159 0.204980 +0.204997 +0.030165 0.018387 0.068288 0.120450 0.019955 0.074105 0.000933 0.034710 0.086593 0.098400 0.029311 0.038454 0.005712 0.047191 0.089006 0.097559 0.044246 0.049310 0.044890 0.025040 0.028707 0.102490 0.087575 0.028240 0.009040 0.136654 0.074161 0.006947 0.013307 0.170817 0.079275 0.273307 +0 +0.065993 0.037195 0.086081 0.042389 0.048040 0.177653 0.027389 0.061350 0.038728 0.226086 0.035869 0.101100 0.035801 0.015987 0.045165 0.061201 0.039036 0.107150 0.056450 0.037203 0.004338 0.239144 0.078446 0.066611 0.036042 0.102490 0.092302 0.033314 0.029296 0.239144 0.082326 0.273307 +0.066828 +0.040017 0.018989 0.055212 0.043555 0.039920 0.398806 0.061929 0.054991 0.062053 0.082219 0.046616 0.243205 0.057986 0.005648 0.051556 0.049193 0.024066 0.282141 0.052928 0.054515 0.007958 0.102490 0.099912 0.009995 0.025500 0.307471 0.063014 0.048707 0.037894 0.239144 0.058551 0.341634 +0.533571 +0.016091 0.036077 0.042199 0.119882 0.036186 0.149490 0.020628 0.049545 0.080009 0.053904 0.041399 0.161858 0.031870 0.027698 0.050192 0.127020 0.045696 0.054181 0.039045 0.006687 0.015106 0.136654 0.057484 0.039564 0.065520 0.136654 0.053446 0.002991 0.046676 0.170817 0.072180 0.273307 +0.086884 +0.046209 0.015854 0.049257 0.089654 0.049009 0.310027 0.022383 0.013429 0.038698 0.034528 0.048563 0.049788 0.062556 0.002295 0.109549 0.076752 0.024252 0.079178 0.063228 0.005292 0.013956 0.170817 0.096676 0.049756 0.032436 0.102490 0.091772 0.027442 0.056276 0.136654 0.057957 0.273307 +0 +0.061534 0.055900 0.131733 0.140343 0.033158 0.075461 0.022157 0.019796 0.055717 0.051664 0.050896 0.043876 0.052566 0.032429 0.096870 0.047915 0.027365 0.141352 0.062661 0.054878 0.000389 0.170817 0.089031 0.028070 0.040984 0.102490 0.076965 0.037654 0.056587 0.136654 0.071020 0.204980 +0.061878 +0.031886 0.031983 0.039569 0.045972 0.019468 0.063256 0.032047 0.012388 0.066576 0.035768 0.043439 0.143276 0.059644 0.062104 0.037618 0.035144 0.039389 0.191159 0.039444 0.049419 0.029353 0.102490 0.068963 0.029979 0.068045 0.136654 0.097197 0.039640 0.053996 0.204980 0.078469 0.273307 +0.308686 +0.017276 0.065836 0.040462 0.057851 0.025234 0.114890 0.066792 0.066162 0.035159 0.054585 0.029948 0.051339 0.031871 0.012517 0.041963 0.088177 0.049321 0.206103 0.039648 0.020883 0.002391 0.102490 0.059098 0.017046 0.057574 0.102490 0.087050 0.013840 0.015876 0.170817 0.065007 0.204980 +0.124934 +0.053714 0.014527 0.041282 0.042367 0.030742 0.187578 0.049858 0.064033 0.046718 0.042152 0.028066 0.060252 0.060336 0.036015 0.106472 0.041602 0.038311 0.044943 0.040003 0.058338 0.043868 0.136654 0.072267 0.009471 0.015354 0.136654 0.100078 0.054730 0.040793 0.102490 0.053925 0.204980 +0.018607 +0.043659 0.037893 0.042476 0.060218 0.029116 0.069701 0.013136 0.006980 0.055451 0.043661 0.031938 0.068872 0.021548 0.002094 0.065070 0.041860 0.047678 0.080311 0.047249 0.022042 0.050960 0.170817 0.056482 0.016419 0.032482 0.204980 0.099215 0.001755 0.005119 0.170817 0.073589 0.239144 +0 +0.002609 0.067964 0.044747 0.056562 0.022531 0.122440 0.049604 0.064932 0.068412 0.156740 0.041882 0.165980 0.049179 0.040196 0.037161 0.065063 0.036821 0.071156 0.043329 0.001412 0.047262 0.273307 0.088578 0.006752 0.064906 0.170817 0.059299 0.002123 0.042577 0.239144 0.066315 0.307471 +0.017939 +0.008456 0.009849 0.042580 0.057977 0.038955 0.053072 0.031591 0.028615 0.042642 0.090256 0.018219 0.102505 0.058084 0.054412 0.045652 0.075922 0.018166 0.085841 0.052500 0.000253 0.045707 0.204980 0.056350 0.060794 0.025202 0.102490 0.098658 0.057108 0.030869 0.273307 0.054639 0.341634 +0 +0.037487 0.034914 0.041070 0.035820 0.026048 0.086097 0.051039 0.044153 0.111449 0.055604 0.039655 0.088332 0.017381 0.035704 0.040797 0.045732 0.035612 0.085605 0.063957 0.063364 0.020088 0.170817 0.058535 0.000931 0.029497 0.204980 0.056843 0.021178 0.055535 0.239144 0.056865 0.341634 +0.001874 +0.004860 0.060127 0.056655 0.052577 0.020514 0.070686 0.062302 0.007753 0.036238 0.053027 0.029397 0.352674 0.055223 0.050648 0.045226 0.034552 0.017401 0.142672 0.054721 0.063274 0.041457 0.136654 0.082321 0.051363 0.013104 0.136654 0.065201 0.004904 0.044630 0.102490 0.074033 0.204980 +0.568039 +0.023034 0.012077 0.052893 0.152717 0.019926 0.178438 0.036850 0.042426 0.041352 0.061320 0.050633 0.056773 0.045591 0.002935 0.041537 0.078617 0.037949 0.042676 0.044457 0.044568 0.000402 0.136654 0.086000 0.045948 0.064869 0.136654 0.099415 0.021197 0.010727 0.170817 0.074135 0.273307 +0 +0.000801 0.017910 0.034216 0.053077 0.043459 0.156939 0.002180 0.030740 0.075092 0.036624 0.049825 0.063137 0.028866 0.066638 0.037151 0.042281 0.035566 0.097379 0.044170 0.014010 0.010599 0.136654 0.061719 0.010687 0.054675 0.170817 0.074042 0.034338 0.006953 0.204980 0.089289 0.341634 +0 +0.027987 0.019053 0.040176 0.066914 0.046820 0.131127 0.009959 0.054740 0.040849 0.122465 0.046748 0.141794 0.037302 0.024166 0.093909 0.039395 0.032218 0.074500 0.065486 0.054002 0.042939 0.170817 0.089948 0.030142 0.031704 0.102490 0.093159 0.020685 0.004336 0.102490 0.053008 0.239144 +0.001973 +0.043255 0.029517 0.036767 0.171831 0.019812 0.089585 0.035757 0.002870 0.035050 0.083946 0.050997 0.140296 0.065843 0.028075 0.066045 0.049005 0.029491 0.151326 0.047478 0.001008 0.030470 0.204980 0.059337 0.009314 0.035764 0.239144 0.065267 0.013666 0.003752 0.239144 0.088094 0.307471 +0.162085 +0.049793 0.055130 0.035884 0.046970 0.043917 0.085253 0.065484 0.058608 0.057285 0.045209 0.045950 0.040144 0.006286 0.038772 0.047267 0.039703 0.029584 0.105398 0.051164 0.053433 0.001559 0.204980 0.064666 0.025289 0.050414 0.170817 0.090501 0.023975 0.032052 0.136654 0.066456 0.307471 +0 +0.003003 0.006288 0.041980 0.055578 0.038994 0.037044 0.066975 0.036563 0.059050 0.054842 0.035707 0.106771 0.039515 0.059356 0.073093 0.087445 0.033377 0.271498 0.048071 0.004273 0.030589 0.102490 0.093293 0.029189 0.033316 0.136654 0.085224 0.066892 0.023469 0.170817 0.089871 0.204980 +0.121296 +0.026608 0.053147 0.037921 0.061278 0.032593 0.091599 0.044084 0.043909 0.088863 0.058456 0.046642 0.115331 0.064678 0.006450 0.045630 0.161101 0.034459 0.089601 0.050719 0.029478 0.040317 0.102490 0.068425 0.047222 0.006844 0.239144 0.100557 0.040849 0.046259 0.102490 0.065999 0.341634 +0.003109 +0.007927 0.028576 0.074395 0.044734 0.045910 0.123515 0.065845 0.003687 0.052291 0.088494 0.042896 0.100408 0.032178 0.008397 0.037799 0.047643 0.027206 0.061632 0.053895 0.062941 0.019321 0.102490 0.071966 0.027597 0.038888 0.102490 0.056375 0.028815 0.056406 0.204980 0.077709 0.273307 +0 +0.008677 0.034808 0.049451 0.120090 0.032115 0.136059 0.055944 0.027680 0.087563 0.055920 0.025722 0.115237 0.045747 0.064264 0.158592 0.128445 0.033318 0.366645 0.051797 0.060076 0.062078 0.170817 0.082143 0.048469 0.064246 0.102490 0.062093 0.007497 0.035889 0.136654 0.094075 0.204980 +0.074865 +0.024373 0.003060 0.038884 0.056528 0.033854 0.378131 0.054203 0.048841 0.039736 0.073065 0.036089 0.060731 0.009838 0.056591 0.047253 0.090963 0.049306 0.072869 0.060626 0.006872 0.059925 0.136654 0.069187 0.054914 0.041607 0.273307 0.072358 0.002930 0.026575 0.170817 0.088872 0.307471 +0.011299 +0.012520 0.039726 0.041577 0.041341 0.044320 0.313008 0.002332 0.053993 0.041340 0.049935 0.044821 0.043912 0.010232 0.026164 0.055309 0.043674 0.025409 0.109832 0.060086 0.019771 0.036819 0.204980 0.069751 0.017651 0.045927 0.307471 0.060786 0.030469 0.055797 0.102490 0.063837 0.341634 +0.008640 +0.016810 0.020767 0.093003 0.062408 0.019163 0.053345 0.037058 0.051825 0.039017 0.034202 0.024691 0.135264 0.033531 0.024060 0.037194 0.057350 0.017830 0.034851 0.051935 0.031018 0.023021 0.102490 0.100122 0.040221 0.061013 0.136654 0.062403 0.003942 0.000554 0.136654 0.057309 0.204980 +0.060530 +0.063615 0.008428 0.110064 0.070611 0.025814 0.038846 0.045924 0.029299 0.053527 0.125682 0.032013 0.204185 0.066772 0.052603 0.052730 0.046446 0.028205 0.113534 0.053520 0.001231 0.036161 0.136654 0.062373 0.060762 0.001107 0.170817 0.059142 0.018442 0.025800 0.170817 0.070092 0.273307 +0.160950 +0.021927 0.055214 0.040520 0.051588 0.041568 0.345884 0.044166 0.018739 0.054102 0.058316 0.051030 0.268221 0.015753 0.012706 0.049218 0.054124 0.027124 0.180636 0.058034 0.030715 0.048751 0.136654 0.064491 0.016532 0.060760 0.204980 0.092340 0.022471 0.033322 0.102490 0.077985 0.307471 +0.251110 +0.002098 0.027878 0.100543 0.056415 0.020499 0.035327 0.003512 0.028147 0.038789 0.043285 0.027253 0.089767 0.018507 0.044652 0.061509 0.085280 0.017130 0.069824 0.059674 0.062376 0.028480 0.102490 0.079139 0.036871 0.031734 0.170817 0.059900 0.057708 0.028723 0.102490 0.079660 0.239144 +0.008569 +0.033000 0.061536 0.054960 0.059491 0.025257 0.132663 0.011180 0.016966 0.053213 0.095335 0.037871 0.074109 0.010931 0.003204 0.038002 0.074624 0.034651 0.050692 0.052836 0.066310 0.062212 0.102490 0.099818 0.011218 0.028872 0.136654 0.068070 0.011646 0.056999 0.136654 0.086444 0.204980 +0.003490 +0.028839 0.033625 0.062371 0.058405 0.017391 0.166503 0.054376 0.061846 0.087155 0.070625 0.035799 0.106629 0.038093 0.038267 0.054524 0.107820 0.044724 0.197787 0.049271 0.022564 0.049410 0.239144 0.094678 0.046692 0.046583 0.102490 0.080629 0.059313 0.017896 0.170817 0.052816 0.273307 +0.156104 +0.031422 0.039117 0.034600 0.064868 0.049016 0.068934 0.053546 0.004331 0.047956 0.055509 0.043170 0.131013 0.024175 0.049219 0.054833 0.062368 0.028745 0.079387 0.052313 0.050529 0.013022 0.273307 0.080085 0.003549 0.056358 0.273307 0.083590 0.044144 0.045763 0.307471 0.055658 0.341634 +0.006448 +0.010136 0.049732 0.111549 0.053461 0.017549 0.201039 0.039154 0.025119 0.050882 0.041866 0.042056 0.096365 0.053901 0.051619 0.052530 0.056190 0.044354 0.062499 0.048645 0.000666 0.027796 0.102490 0.069017 0.030455 0.059590 0.307471 0.068075 0.022937 0.011059 0.273307 0.081290 0.341634 +0.020199 +0.056786 0.019675 0.035096 0.048063 0.017352 0.277479 0.055176 0.056244 0.069657 0.046961 0.048978 0.098755 0.007584 0.044151 0.061570 0.050545 0.019260 0.036711 0.047464 0.045738 0.063921 0.136654 0.068642 0.029423 0.037525 0.239144 0.079180 0.064310 0.050926 0.204980 0.079390 0.273307 +0.066648 +0.048196 0.022661 0.046477 0.139753 0.038700 0.284343 0.044505 0.063741 0.087142 0.082551 0.027002 0.162507 0.045844 0.023935 0.083650 0.128569 0.039429 0.163791 0.039080 0.008690 0.054443 0.204980 0.079123 0.061088 0.022006 0.239144 0.094462 0.030516 0.065446 0.239144 0.067562 0.273307 +0.157900 +0.002431 0.051566 0.054758 0.052144 0.036560 0.217665 0.060220 0.026256 0.037422 0.104032 0.033872 0.302059 0.048482 0.058799 0.035183 0.050056 0.049035 0.111241 0.052822 0.010039 0.004294 0.273307 0.059480 0.013428 0.021247 0.204980 0.051831 0.063330 0.008103 0.239144 0.084435 0.341634 +0.019880 +0.010292 0.048136 0.058321 0.078677 0.038778 0.043316 0.013223 0.030892 0.165097 0.044375 0.024812 0.144639 0.060280 0.052436 0.108536 0.055769 0.032673 0.075603 0.061222 0.061211 0.007695 0.239144 0.067859 0.042522 0.064485 0.136654 0.081889 0.060576 0.051992 0.102490 0.057472 0.341634 +0.039875 +0.014344 0.010049 0.083125 0.078759 0.043301 0.098682 0.019948 0.046290 0.040512 0.084518 0.039514 0.148332 0.020253 0.048703 0.125962 0.043272 0.029271 0.275088 0.058319 0.025407 0.012332 0.102490 0.080672 0.045950 0.009365 0.102490 0.075627 0.051568 0.044310 0.136654 0.095662 0.239144 +0.005264 +0.015856 0.022871 0.076670 0.055335 0.035813 0.362558 0.053463 0.066552 0.119276 0.057317 0.025133 0.048059 0.037563 0.003592 0.067507 0.047356 0.022534 0.046707 0.044420 0.041742 0.066676 0.136654 0.092974 0.065687 0.029345 0.136654 0.074833 0.020295 0.048173 0.239144 0.058682 0.307471 +0.176829 +0.026425 0.015638 0.051703 0.051687 0.027045 0.167826 0.053028 0.050957 0.037436 0.063527 0.021590 0.048943 0.021894 0.034927 0.046309 0.054849 0.042365 0.120241 0.046538 0.044226 0.032602 0.170817 0.093850 0.061378 0.067200 0.204980 0.079809 0.037368 0.065796 0.204980 0.068798 0.239144 +0.204562 +0.033789 0.035578 0.057280 0.038644 0.040552 0.120200 0.000903 0.048143 0.073882 0.099334 0.046302 0.154279 0.034346 0.055924 0.042740 0.072811 0.044214 0.086675 0.060196 0.053709 0.040417 0.102490 0.067974 0.028541 0.033316 0.204980 0.051831 0.044575 0.052582 0.239144 0.061143 0.273307 +0.049208 +0.008233 0.039021 0.110066 0.038560 0.025114 0.151682 0.048540 0.016476 0.038711 0.097925 0.022026 0.207480 0.008967 0.033832 0.118680 0.035288 0.046433 0.146498 0.047053 0.060800 0.005538 0.102490 0.093302 0.017382 0.023630 0.136654 0.087876 0.045386 0.035354 0.136654 0.055877 0.204980 +0.044439 +0.034614 0.033509 0.052268 0.035724 0.039710 0.087250 0.029763 0.031867 0.053568 0.046170 0.036434 0.166309 0.065477 0.032172 0.113506 0.114288 0.026152 0.072655 0.054113 0.043901 0.000693 0.170817 0.094227 0.054004 0.022332 0.136654 0.087024 0.016140 0.044719 0.136654 0.072329 0.204980 +0.038372 +0.036486 0.034149 0.061059 0.034214 0.029476 0.089756 0.035528 0.056706 0.102311 0.106137 0.026302 0.082355 0.028871 0.043528 0.081896 0.083667 0.038955 0.036695 0.038966 0.049394 0.056926 0.273307 0.070561 0.008574 0.062214 0.239144 0.087728 0.018869 0.002574 0.239144 0.100473 0.307471 +0.017960 +0.032290 0.051597 0.099331 0.057568 0.024504 0.254158 0.033801 0.026789 0.056202 0.104185 0.024532 0.225763 0.048566 0.042784 0.094901 0.065822 0.030710 0.087432 0.066561 0.028518 0.061227 0.102490 0.071152 0.065694 0.014894 0.204980 0.095189 0.009505 0.063530 0.170817 0.075979 0.239144 +0.077014 +0.031838 0.062984 0.122085 0.072843 0.017935 0.073427 0.002243 0.058794 0.103025 0.138194 0.033686 0.369923 0.042660 0.049164 0.039685 0.092351 0.022330 0.372798 0.036242 0.003943 0.025225 0.102490 0.054131 0.015823 0.043635 0.170817 0.077448 0.005521 0.063603 0.170817 0.102227 0.204980 +0.224265 +0.046754 0.057056 0.036308 0.113780 0.047138 0.125888 0.001036 0.029282 0.063384 0.063450 0.038091 0.088560 0.062587 0.052094 0.046476 0.039858 0.022771 0.054589 0.062690 0.065521 0.023338 0.170817 0.085546 0.032222 0.000780 0.170817 0.100511 0.000262 0.041350 0.136654 0.071653 0.307471 +0.002677 +0.015119 0.062607 0.062243 0.046272 0.036968 0.046597 0.015377 0.044067 0.048949 0.086524 0.025166 0.147369 0.007098 0.001091 0.043095 0.047960 0.032542 0.067099 0.040505 0.054358 0.041604 0.102490 0.096994 0.061425 0.062144 0.204980 0.058763 0.016440 0.021954 0.102490 0.051844 0.273307 +0.000960 +0.049672 0.034072 0.060091 0.157107 0.025539 0.122342 0.063177 0.021172 0.066521 0.185546 0.047700 0.253355 0.039525 0.062576 0.044210 0.086014 0.038027 0.036112 0.055597 0.047233 0.026667 0.102490 0.101484 0.059277 0.039799 0.136654 0.092030 0.036525 0.062512 0.136654 0.067559 0.204980 +0.044964 +0.064872 0.049882 0.045915 0.065045 0.030061 0.127680 0.020768 0.009305 0.107075 0.160625 0.025297 0.065724 0.018725 0.005833 0.093566 0.049553 0.022051 0.121789 0.058591 0.013509 0.022672 0.170817 0.090967 0.022690 0.012374 0.102490 0.055702 0.015390 0.007747 0.136654 0.071510 0.204980 +0.029389 +0.035966 0.062120 0.097578 0.061230 0.033388 0.073836 0.054578 0.016201 0.078573 0.044494 0.033448 0.144028 0.056982 0.064370 0.034327 0.056739 0.049737 0.337982 0.056697 0.021537 0.050478 0.204980 0.072488 0.030011 0.020480 0.136654 0.069019 0.002862 0.032016 0.204980 0.070382 0.307471 +0.319696 +0.010005 0.017643 0.053224 0.074743 0.027023 0.056182 0.037769 0.057394 0.067333 0.068207 0.018939 0.054602 0.060434 0.058833 0.043090 0.052445 0.028061 0.172252 0.059026 0.034113 0.055008 0.136654 0.091095 0.062408 0.033046 0.136654 0.093454 0.061350 0.018160 0.136654 0.094977 0.239144 +0 +0.048586 0.047072 0.106374 0.051231 0.035079 0.034436 0.022093 0.006581 0.048108 0.124017 0.030049 0.254954 0.028157 0.039683 0.102906 0.053002 0.020737 0.065793 0.056135 0.018170 0.065336 0.307471 0.079969 0.058149 0.023577 0.204980 0.071952 0.059881 0.000429 0.307471 0.081159 0.341634 +0.001653 +0.045256 0.026407 0.044607 0.048285 0.030195 0.201917 0.011018 0.051082 0.044306 0.041615 0.021047 0.074043 0.055846 0.046301 0.039029 0.060898 0.041581 0.499111 0.062415 0.015434 0.012795 0.136654 0.093558 0.010167 0.037571 0.204980 0.100261 0.046095 0.041548 0.136654 0.099632 0.239144 +0.410923 +0.010795 0.067397 0.041806 0.135987 0.018086 0.061129 0.005885 0.045987 0.049013 0.040080 0.046459 0.165103 0.013248 0.011440 0.050411 0.035199 0.041074 0.125004 0.045378 0.013647 0.031070 0.170817 0.088703 0.024965 0.049202 0.239144 0.061533 0.022226 0.001707 0.273307 0.083380 0.307471 +0.004543 +0.017101 0.016526 0.048905 0.237509 0.024344 0.114050 0.022089 0.039295 0.035369 0.042450 0.050027 0.183170 0.008205 0.016472 0.089147 0.073462 0.034728 0.128602 0.043648 0.007754 0.014238 0.102490 0.063319 0.048477 0.010876 0.102490 0.054679 0.031353 0.058578 0.170817 0.098238 0.239144 +0.083557 +0.013078 0.047507 0.040412 0.081531 0.030888 0.077456 0.048917 0.007975 0.046508 0.040783 0.034700 0.109809 0.055490 0.016320 0.037016 0.079362 0.027538 0.048254 0.061339 0.052888 0.020029 0.102490 0.084709 0.047782 0.055395 0.273307 0.094834 0.040547 0.043309 0.204980 0.059711 0.341634 +0 +0.044769 0.028949 0.079889 0.069687 0.045821 0.042557 0.001539 0.051918 0.059667 0.041176 0.048124 0.274104 0.003656 0.065287 0.034823 0.085294 0.050240 0.262412 0.062395 0.054131 0.013933 0.102490 0.100839 0.064878 0.049306 0.239144 0.055913 0.035818 0.027374 0.239144 0.089022 0.341634 +0.019317 +0.006352 0.003527 0.163860 0.036513 0.019244 0.070092 0.037997 0.028161 0.034567 0.060665 0.040988 0.073902 0.036557 0.039358 0.055068 0.051560 0.029782 0.045582 0.051629 0.028177 0.038960 0.136654 0.093887 0.018303 0.017897 0.136654 0.054625 0.007484 0.015920 0.170817 0.087300 0.239144 +0 +0.054162 0.025364 0.054540 0.064101 0.049984 0.212809 0.035363 0.015095 0.058515 0.049128 0.024927 0.092874 0.035962 0.040534 0.049932 0.038832 0.049851 0.079044 0.056829 0.005484 0.060285 0.102490 0.086124 0.000838 0.010598 0.204980 0.093515 0.001919 0.000912 0.204980 0.072923 0.239144 +0.059366 +0.013853 0.020834 0.066135 0.037817 0.018973 0.069519 0.036832 0.012711 0.037866 0.055228 0.050352 0.083053 0.004688 0.026633 0.040938 0.063170 0.050592 0.064967 0.055561 0.043674 0.052419 0.204980 0.099901 0.028881 0.009436 0.204980 0.099895 0.000902 0.036761 0.102490 0.102389 0.239144 +0.006091 +0.041187 0.005294 0.121666 0.145375 0.030950 0.124686 0.034541 0.056922 0.078615 0.101914 0.032193 0.066607 0.045356 0.005461 0.072890 0.076865 0.039327 0.375840 0.057337 0.038185 0.026861 0.204980 0.082479 0.005063 0.002723 0.273307 0.070822 0.060104 0.031027 0.102490 0.095732 0.341634 +0 +0.004950 0.012852 0.053757 0.039547 0.028523 0.139626 0.006233 0.067590 0.104269 0.096000 0.017866 0.068099 0.014034 0.001491 0.080000 0.046156 0.045547 0.128471 0.056943 0.038142 0.057357 0.136654 0.061997 0.021705 0.043476 0.239144 0.077541 0.017735 0.058128 0.170817 0.090220 0.341634 +0.005249 +0.034303 0.024747 0.046976 0.051925 0.032594 0.039515 0.011406 0.060408 0.089518 0.063828 0.049534 0.050074 0.021818 0.005159 0.037657 0.046295 0.022504 0.083071 0.056586 0.020756 0.055636 0.170817 0.088038 0.047355 0.036080 0.204980 0.059416 0.053796 0.052769 0.170817 0.062885 0.239144 +0 +0.016449 0.030704 0.045951 0.037124 0.046265 0.058170 0.063827 0.014286 0.047204 0.051418 0.047061 0.246248 0.052981 0.026418 0.108205 0.052102 0.047883 0.079658 0.058804 0.001019 0.054214 0.136654 0.058187 0.023320 0.039836 0.204980 0.057104 0.059815 0.053172 0.204980 0.072501 0.273307 +0.023487 +0.055028 0.036730 0.076846 0.105865 0.032185 0.116169 0.052007 0.047996 0.066980 0.048110 0.023577 0.142405 0.037809 0.046670 0.094403 0.039828 0.025835 0.087391 0.051670 0.052520 0.001850 0.204980 0.062254 0.049806 0.057873 0.204980 0.056195 0.051481 0.038447 0.102490 0.097345 0.239144 +0.133677 +0.048363 0.053898 0.074374 0.042817 0.041570 0.075993 0.036758 0.064362 0.065624 0.085151 0.027065 0.143321 0.049389 0.027536 0.095594 0.088263 0.029141 0.082712 0.052242 0.007697 0.011292 0.170817 0.060557 0.067065 0.061903 0.136654 0.068984 0.062900 0.014274 0.102490 0.090185 0.273307 +0 +0.006922 0.005714 0.114622 0.035417 0.028198 0.072483 0.004281 0.005352 0.035598 0.126797 0.039518 0.405163 0.024296 0.011589 0.060456 0.042925 0.042004 0.203241 0.050262 0.026312 0.025482 0.136654 0.056667 0.049129 0.050059 0.102490 0.075425 0.049449 0.023170 0.102490 0.093833 0.204980 +0.587992 +0.066760 0.028176 0.050317 0.097452 0.025833 0.037034 0.040473 0.020355 0.053497 0.078595 0.043619 0.051170 0.044190 0.030117 0.050158 0.039072 0.045616 0.235218 0.045365 0.030878 0.059484 0.204980 0.090334 0.026564 0.045453 0.136654 0.084391 0.067906 0.000029 0.136654 0.091445 0.239144 +0 +0.059521 0.042285 0.036553 0.049062 0.025154 0.050767 0.056750 0.058702 0.126674 0.045938 0.022606 0.071974 0.040856 0.038965 0.036139 0.089192 0.020382 0.061250 0.039386 0.022309 0.021379 0.273307 0.053524 0.009847 0.055075 0.136654 0.065230 0.013733 0.008239 0.204980 0.086005 0.341634 +0 +0.049442 0.035253 0.042438 0.043199 0.043858 0.076699 0.024640 0.047687 0.046000 0.111057 0.017513 0.242714 0.016087 0.050728 0.120417 0.109213 0.040028 0.531444 0.056243 0.066735 0.018942 0.102490 0.063930 0.047608 0.050498 0.102490 0.074721 0.014074 0.036106 0.239144 0.068094 0.273307 +0.026066 +0.025922 0.020978 0.052059 0.062995 0.023900 0.153137 0.003324 0.032036 0.050783 0.054072 0.021626 0.090780 0.035502 0.000522 0.085209 0.145418 0.018720 0.047716 0.042203 0.067833 0.023843 0.239144 0.054384 0.041129 0.054415 0.239144 0.097441 0.012026 0.017145 0.136654 0.085737 0.341634 +0.059730 +0.048322 0.034504 0.043801 0.072015 0.018407 0.083231 0.009850 0.035428 0.038181 0.045387 0.046763 0.091067 0.049286 0.046488 0.051268 0.061333 0.049027 0.038055 0.053581 0.067163 0.051989 0.239144 0.065449 0.003631 0.062560 0.204980 0.052897 0.045300 0.063476 0.102490 0.055645 0.273307 +0.003592 +0.018389 0.012373 0.036797 0.096833 0.037959 0.121121 0.018160 0.040403 0.099768 0.044079 0.035819 0.132775 0.024611 0.060099 0.040189 0.108219 0.026406 0.036342 0.046756 0.065197 0.068164 0.102490 0.086672 0.039078 0.038750 0.204980 0.080382 0.053176 0.008658 0.102490 0.082191 0.307471 +0 +0.021677 0.008148 0.097645 0.041631 0.034140 0.207030 0.051942 0.004305 0.070205 0.048689 0.044364 0.052069 0.020311 0.048600 0.041227 0.038448 0.035110 0.059582 0.047373 0.043330 0.008989 0.170817 0.076817 0.020897 0.026612 0.102490 0.085589 0.062845 0.041610 0.102490 0.081731 0.307471 +0.013002 +0.041513 0.025344 0.049550 0.080582 0.047800 0.066165 0.007965 0.026194 0.141122 0.090993 0.031577 0.241902 0.001471 0.056289 0.073962 0.043252 0.048716 0.239844 0.043857 0.043720 0.046496 0.204980 0.074055 0.058747 0.027610 0.136654 0.092507 0.038170 0.052399 0.102490 0.086071 0.239144 +0.166785 +0.023358 0.030851 0.040301 0.036544 0.043557 0.082425 0.014254 0.011209 0.050672 0.078313 0.050588 0.569995 0.062180 0.022104 0.039211 0.042587 0.044229 0.071147 0.054686 0.062174 0.013933 0.102490 0.071796 0.050971 0.022066 0.102490 0.057353 0.057025 0.021571 0.102490 0.096360 0.204980 +0.529951 +0.055282 0.041631 0.066339 0.054580 0.034312 0.207365 0.068021 0.047843 0.052503 0.036176 0.041258 0.060788 0.061238 0.030837 0.036350 0.059826 0.049140 0.086731 0.049157 0.000019 0.032514 0.239144 0.091808 0.019205 0.011586 0.136654 0.074262 0.031703 0.003235 0.102490 0.057299 0.307471 +0 +0.016555 0.048863 0.126404 0.036285 0.041953 0.163285 0.027905 0.045884 0.070498 0.127019 0.027461 0.267319 0.059978 0.066170 0.037980 0.034941 0.026570 0.057475 0.054120 0.011633 0.046366 0.204980 0.076030 0.005539 0.033764 0.136654 0.051536 0.002945 0.006273 0.102490 0.054288 0.239144 +0.036857 +0.047904 0.063573 0.050310 0.035229 0.044822 0.305573 0.031789 0.016655 0.049070 0.114789 0.047572 0.065898 0.060081 0.066928 0.041642 0.037113 0.042988 0.110511 0.057958 0.028679 0.017784 0.273307 0.098188 0.044626 0.033606 0.170817 0.058772 0.016248 0.044498 0.239144 0.082960 0.341634 +0.271361 +0.038144 0.016168 0.039892 0.065067 0.050068 0.207102 0.020250 0.054258 0.055778 0.087673 0.029787 0.037922 0.017010 0.003088 0.034289 0.204621 0.033813 0.067928 0.046677 0.020122 0.007966 0.102490 0.097387 0.062506 0.012149 0.102490 0.057299 0.024792 0.020225 0.102490 0.056164 0.204980 +0.001582 +0.034505 0.054233 0.040261 0.036891 0.035530 0.204852 0.068006 0.067799 0.101881 0.043016 0.046842 0.101166 0.026452 0.024942 0.036810 0.039801 0.035743 0.322462 0.049113 0.049688 0.052521 0.136654 0.091777 0.005944 0.017883 0.204980 0.083363 0.064167 0.061474 0.307471 0.068332 0.341634 +0.529683 +0.000809 0.043567 0.044553 0.081371 0.033695 0.071411 0.019888 0.036587 0.070847 0.046893 0.042639 0.503282 0.001143 0.045396 0.077593 0.035519 0.035766 0.309035 0.041679 0.044940 0.046225 0.307471 0.067414 0.053088 0.032538 0.102490 0.078249 0.053154 0.048710 0.239144 0.056710 0.341634 +0.833682 +0.011299 0.020144 0.116808 0.034558 0.017761 0.036786 0.033623 0.051698 0.122178 0.034203 0.041445 0.130473 0.001524 0.025255 0.040227 0.069642 0.029046 0.228172 0.040127 0.045352 0.031423 0.102490 0.075806 0.017951 0.044003 0.170817 0.077901 0.046470 0.047136 0.204980 0.076312 0.307471 +0.165384 +0.000786 0.062019 0.038617 0.043165 0.029969 0.099578 0.024625 0.061317 0.059021 0.048562 0.029561 0.145835 0.033615 0.038443 0.042440 0.045141 0.029335 0.056154 0.054732 0.041624 0.063724 0.170817 0.086931 0.034669 0.044148 0.102490 0.090943 0.014936 0.013667 0.170817 0.097578 0.204980 +0.087535 +0.045080 0.021266 0.034334 0.114563 0.032822 0.101766 0.003020 0.011632 0.034272 0.062486 0.024794 0.068318 0.054294 0.015301 0.119105 0.119916 0.043472 0.065515 0.053097 0.049433 0.002780 0.204980 0.062937 0.041759 0.004941 0.102490 0.094055 0.049488 0.018164 0.170817 0.068266 0.239144 +0.004081 +0.056695 0.016851 0.130363 0.044575 0.036726 0.039522 0.041080 0.046553 0.094622 0.118432 0.044765 0.087364 0.063161 0.036919 0.052895 0.058828 0.031302 0.098829 0.060524 0.030330 0.033671 0.102490 0.101138 0.001709 0.056050 0.136654 0.073750 0.006819 0.015502 0.170817 0.054594 0.204980 +0.015147 +0.039990 0.012931 0.081797 0.036433 0.036269 0.306225 0.059634 0.000693 0.156665 0.038703 0.036894 0.180021 0.013196 0.024974 0.040676 0.037697 0.044087 0.049124 0.061299 0.047006 0.001023 0.102490 0.076602 0.022625 0.050388 0.204980 0.101936 0.009838 0.007405 0.170817 0.100623 0.239144 +0.017645 +0.062739 0.037295 0.123732 0.083159 0.034197 0.397365 0.055521 0.042678 0.043267 0.037759 0.023400 0.080218 0.052401 0.019833 0.072074 0.040490 0.044392 0.169754 0.061169 0.047336 0.057270 0.239144 0.073841 0.012468 0.038059 0.136654 0.054458 0.035378 0.045027 0.102490 0.062349 0.273307 +0.215826 +0.034895 0.016685 0.054160 0.086110 0.038886 0.091087 0.047498 0.041772 0.105228 0.064893 0.029856 0.066115 0.020415 0.035408 0.080403 0.059398 0.027689 0.104038 0.052986 0.017590 0.060802 0.204980 0.081012 0.035737 0.012800 0.170817 0.096468 0.041259 0.035200 0.136654 0.060417 0.273307 +0.008333 +0.007319 0.032956 0.066246 0.083146 0.024952 0.056695 0.053801 0.000028 0.048081 0.037522 0.028232 0.047971 0.040516 0.067438 0.052994 0.045223 0.027527 0.141349 0.049455 0.010409 0.035502 0.136654 0.085783 0.047649 0.042071 0.170817 0.083940 0.042189 0.013450 0.170817 0.070872 0.239144 +0 +0.049986 0.048041 0.105373 0.046731 0.045923 0.235112 0.061531 0.047449 0.082418 0.096979 0.043886 0.197732 0.001360 0.036187 0.052842 0.078054 0.029799 0.086204 0.059377 0.057728 0.043667 0.170817 0.076079 0.035800 0.039218 0.136654 0.090505 0.027214 0.055539 0.170817 0.071972 0.239144 +0.122019 +0.054704 0.038237 0.043199 0.059095 0.029843 0.252103 0.046074 0.021566 0.060470 0.061627 0.021494 0.122995 0.040374 0.016263 0.054712 0.041492 0.045394 0.217030 0.052653 0.062186 0.059948 0.102490 0.094791 0.009953 0.033629 0.204980 0.099758 0.016630 0.067330 0.102490 0.092163 0.273307 +0.078596 +0.043292 0.013887 0.034716 0.037892 0.042933 0.048068 0.018892 0.063206 0.039689 0.036276 0.022893 0.136704 0.048941 0.067793 0.050991 0.035201 0.019722 0.519879 0.061618 0.052403 0.043942 0.170817 0.053366 0.041686 0.050200 0.102490 0.090728 0.026714 0.037584 0.102490 0.081339 0.239144 +0.339498 +0.021502 0.060366 0.066721 0.068563 0.049071 0.235838 0.004857 0.019115 0.041047 0.070641 0.035067 0.037659 0.018028 0.012880 0.130499 0.054068 0.019681 0.210426 0.066164 0.045577 0.051221 0.204980 0.070356 0.059416 0.014768 0.204980 0.081227 0.007065 0.054793 0.136654 0.065707 0.239144 +0.074113 +0.053567 0.026591 0.075667 0.096545 0.038832 0.059887 0.026290 0.008646 0.188661 0.067059 0.050469 0.050362 0.060198 0.047221 0.035580 0.044715 0.022566 0.090092 0.051086 0.063277 0.013186 0.136654 0.100964 0.010289 0.013836 0.136654 0.099804 0.012149 0.008520 0.136654 0.060831 0.204980 +0 +0.010729 0.040118 0.140004 0.047635 0.030272 0.367652 0.009750 0.063966 0.096547 0.072701 0.019167 0.098432 0.048407 0.033420 0.063340 0.084399 0.040260 0.143365 0.040887 0.010331 0.040403 0.102490 0.065246 0.043654 0.028167 0.102490 0.087310 0.026307 0.031785 0.239144 0.090659 0.273307 +0.341090 +0.003426 0.052722 0.074020 0.127388 0.018048 0.068984 0.028643 0.000358 0.078507 0.098318 0.035013 0.112129 0.031789 0.051543 0.042059 0.060983 0.029876 0.039849 0.056269 0.060923 0.063621 0.136654 0.068936 0.018316 0.014372 0.102490 0.066464 0.059453 0.027564 0.136654 0.059552 0.204980 +0.003465 +0.011226 0.032364 0.034657 0.086232 0.034179 0.037766 0.034205 0.063924 0.117521 0.042573 0.041309 0.177518 0.006423 0.043988 0.060292 0.049513 0.020644 0.073356 0.054169 0.048272 0.014964 0.136654 0.084482 0.063326 0.047864 0.239144 0.054646 0.056699 0.063325 0.239144 0.061721 0.341634 +0 +0.020051 0.031675 0.042203 0.082261 0.026083 0.135171 0.060108 0.065706 0.039089 0.074485 0.048616 0.034983 0.040021 0.050559 0.041369 0.112172 0.032814 0.153427 0.045715 0.057773 0.004902 0.170817 0.101071 0.001658 0.063667 0.170817 0.055687 0.002168 0.034489 0.273307 0.056589 0.341634 +0 +0.010158 0.019027 0.049314 0.037247 0.025332 0.088155 0.043520 0.056306 0.041818 0.088761 0.048220 0.042111 0.025593 0.055717 0.144513 0.045549 0.037759 0.103852 0.050791 0.065626 0.058397 0.170817 0.059334 0.046153 0.067016 0.102490 0.088944 0.038004 0.055795 0.102490 0.092220 0.273307 +0 +0.048951 0.032231 0.055851 0.050966 0.022538 0.089895 0.000105 0.047690 0.034758 0.047019 0.042147 0.243816 0.016579 0.008388 0.097145 0.048390 0.044266 0.045018 0.060000 0.028264 0.001837 0.136654 0.071885 0.045030 0.019539 0.136654 0.056152 0.050457 0.007649 0.170817 0.094320 0.273307 +0.005010 +0.044602 0.055458 0.036974 0.059578 0.028043 0.156989 0.021147 0.051632 0.036479 0.072348 0.049576 0.277930 0.053898 0.050465 0.043203 0.045902 0.017394 0.059275 0.047479 0.063502 0.048259 0.204980 0.063364 0.067325 0.046134 0.204980 0.066434 0.033794 0.045026 0.102490 0.062850 0.273307 +0.502437 +0.055857 0.023153 0.085772 0.037933 0.035766 0.065836 0.044028 0.015912 0.119025 0.037577 0.019391 0.217058 0.029912 0.034459 0.038046 0.043128 0.034818 0.272877 0.058809 0.056282 0.019839 0.170817 0.095041 0.041138 0.041022 0.136654 0.080731 0.002391 0.057635 0.273307 0.073017 0.307471 +0.048466 +0.055834 0.010429 0.044496 0.065023 0.044946 0.344841 0.045326 0.047630 0.057562 0.044025 0.034763 0.159332 0.007666 0.040599 0.073567 0.045131 0.038861 0.051430 0.047301 0.058085 0.044620 0.170817 0.067959 0.059166 0.023835 0.204980 0.080847 0.005679 0.062097 0.239144 0.098042 0.307471 +0.492759 +0.040465 0.047280 0.384527 0.099941 0.034122 0.193852 0.056012 0.039478 0.070391 0.043790 0.033330 0.128451 0.019542 0.064910 0.049230 0.121176 0.041943 0.057543 0.038645 0.040814 0.005266 0.136654 0.078915 0.048352 0.002182 0.170817 0.065652 0.055224 0.052232 0.170817 0.100175 0.307471 +0.010499 +0.060623 0.042285 0.044110 0.048825 0.027590 0.040422 0.017596 0.024997 0.049401 0.036040 0.024820 0.057674 0.022121 0.019239 0.073871 0.043773 0.050021 0.214054 0.048630 0.002447 0.040146 0.136654 0.092788 0.055929 0.020112 0.170817 0.076754 0.052750 0.061656 0.170817 0.098109 0.204980 +0.214060 +0.020030 0.033612 0.055414 0.046191 0.046456 0.039400 0.066864 0.064865 0.037095 0.052053 0.018410 0.064063 0.021878 0.034093 0.053468 0.103559 0.044614 0.157618 0.054182 0.022223 0.030304 0.102490 0.058039 0.026519 0.057178 0.239144 0.075192 0.051429 0.019615 0.136654 0.102459 0.307471 +0 +0.062324 0.011458 0.062830 0.097194 0.038740 0.208687 0.062222 0.062604 0.092015 0.037584 0.038945 0.061439 0.012872 0.040163 0.066757 0.045406 0.025804 0.042809 0.050538 0.048300 0.026950 0.204980 0.051410 0.036532 0.007014 0.102490 0.067307 0.056148 0.044508 0.136654 0.056290 0.341634 +0.066699 +0.027336 0.060905 0.068667 0.091794 0.045497 0.047206 0.004214 0.049105 0.138916 0.041942 0.048714 0.104922 0.009087 0.055414 0.068330 0.046039 0.039399 0.244920 0.052352 0.017866 0.015084 0.102490 0.055315 0.042547 0.020757 0.136654 0.081943 0.003631 0.024787 0.204980 0.077101 0.239144 +0 +0.034292 0.035242 0.158027 0.036159 0.051169 0.192189 0.065200 0.031911 0.046711 0.121617 0.041941 0.247981 0.047358 0.040044 0.035366 0.053806 0.022622 0.053453 0.047910 0.011527 0.034116 0.102490 0.097087 0.014444 0.018230 0.136654 0.082381 0.020077 0.034242 0.204980 0.084303 0.239144 +0.298099 +0.002475 0.042380 0.037331 0.036817 0.047347 0.080639 0.007235 0.016256 0.036289 0.061878 0.025233 0.087489 0.021765 0.009226 0.035983 0.035252 0.035310 0.070517 0.049216 0.018140 0.040800 0.136654 0.060206 0.028221 0.034725 0.102490 0.101398 0.050128 0.002385 0.239144 0.058789 0.341634 +0 +0.006221 0.059408 0.061284 0.038938 0.025726 0.145758 0.050514 0.055925 0.104997 0.051084 0.021644 0.058158 0.043504 0.042518 0.057535 0.036497 0.043240 0.216803 0.053473 0.035417 0.010114 0.170817 0.098309 0.057518 0.009773 0.170817 0.056498 0.023907 0.048383 0.102490 0.078628 0.239144 +0.009918 +0.007864 0.062407 0.043981 0.096960 0.041247 0.123501 0.049299 0.019535 0.128645 0.060842 0.027323 0.146698 0.040262 0.058270 0.131073 0.034492 0.045816 0.127198 0.051453 0.057352 0.055006 0.102490 0.087801 0.066329 0.016284 0.204980 0.095197 0.020706 0.038490 0.102490 0.099384 0.307471 +0.005015 +0.032537 0.005057 0.040170 0.067362 0.033753 0.037843 0.031509 0.065935 0.145365 0.035117 0.023195 0.068800 0.048341 0.005895 0.066762 0.085699 0.030439 0.035408 0.048368 0.035188 0.062822 0.170817 0.056900 0.029788 0.030803 0.136654 0.064843 0.037694 0.066977 0.102490 0.064656 0.204980 +0 +0.008776 0.026308 0.035430 0.038597 0.023044 0.373775 0.000565 0.005050 0.074110 0.100082 0.028124 0.069912 0.005025 0.053882 0.041167 0.038955 0.036467 0.085443 0.047260 0.020670 0.055002 0.102490 0.098671 0.011680 0.065333 0.136654 0.052690 0.042218 0.046677 0.204980 0.084579 0.239144 +0.176088 +0.016314 0.023235 0.114098 0.035351 0.031542 0.228920 0.057846 0.053827 0.037254 0.103490 0.018838 0.049382 0.060212 0.038587 0.035955 0.035469 0.018237 0.044347 0.043861 0.017736 0.005268 0.204980 0.077815 0.019634 0.027589 0.102490 0.074556 0.008325 0.042187 0.204980 0.057730 0.239144 +0.024087 +0.049331 0.023320 0.038553 0.055512 0.029879 0.054520 0.025762 0.016927 0.087569 0.043966 0.018420 0.109973 0.060019 0.024354 0.038165 0.064324 0.026292 0.078941 0.054080 0.053780 0.035304 0.170817 0.072578 0.061878 0.026561 0.170817 0.073126 0.025265 0.057038 0.136654 0.060840 0.239144 +0.015845 +0.000322 0.034298 0.075488 0.066678 0.039798 0.129336 0.065526 0.033989 0.042680 0.071759 0.048452 0.049914 0.042455 0.013350 0.052411 0.035805 0.042482 0.046090 0.045034 0.040190 0.066952 0.102490 0.092790 0.019424 0.055296 0.170817 0.061415 0.001818 0.035353 0.273307 0.092614 0.341634 +0 +0.036407 0.003193 0.060609 0.057486 0.033917 0.063934 0.052153 0.011709 0.133203 0.081177 0.037138 0.049193 0.013371 0.020292 0.090711 0.035243 0.023143 0.122522 0.042971 0.005344 0.048167 0.102490 0.055498 0.021783 0.043089 0.204980 0.083021 0.009705 0.049754 0.136654 0.053252 0.239144 +0 +0.014140 0.045474 0.036152 0.037191 0.027596 0.225375 0.025340 0.063974 0.078632 0.073359 0.041357 0.134836 0.014696 0.023032 0.039555 0.060284 0.049629 0.075618 0.063332 0.052222 0.061143 0.170817 0.083097 0.059548 0.004390 0.102490 0.093046 0.053748 0.055266 0.102490 0.058983 0.239144 +0.119625 +0.060307 0.001236 0.125644 0.034891 0.028066 0.282789 0.000387 0.023156 0.064820 0.036618 0.030026 0.256257 0.027578 0.014856 0.049096 0.086590 0.038853 0.076080 0.048147 0.029118 0.033291 0.170817 0.075174 0.035951 0.058155 0.239144 0.057283 0.023962 0.055779 0.239144 0.075224 0.273307 +0.360385 +0.023957 0.055622 0.045724 0.082030 0.035639 0.122133 0.056231 0.026838 0.081173 0.065815 0.025171 0.260713 0.006352 0.047310 0.034968 0.146956 0.017951 0.175782 0.042490 0.063353 0.034791 0.102490 0.092387 0.065919 0.058309 0.170817 0.081556 0 0.058101 0.102490 0.064509 0.204980 +0.150933 +0.029545 0.034933 0.062354 0.051829 0.025353 0.040497 0.022185 0.019457 0.080182 0.079460 0.049309 0.129461 0.008846 0.013618 0.043019 0.043814 0.035009 0.139081 0.061175 0.013337 0.008767 0.102490 0.065168 0.030071 0.047997 0.170817 0.065780 0.036888 0.044140 0.136654 0.084586 0.239144 +0 +0.067765 0.066947 0.036777 0.087309 0.041659 0.106055 0.023347 0.009208 0.086485 0.114593 0.017837 0.054691 0.005655 0.010029 0.068700 0.043815 0.036539 0.081524 0.065361 0.020340 0.015101 0.170817 0.079832 0.041666 0.015637 0.136654 0.092620 0.009121 0.045526 0.136654 0.070034 0.204980 +0.012660 +0.061647 0.039137 0.063150 0.054625 0.046167 0.277459 0.006753 0.060040 0.119333 0.101234 0.032478 0.152909 0.030254 0.000870 0.050861 0.041758 0.037026 0.075880 0.053566 0.002065 0.052529 0.170817 0.060670 0.066501 0.001323 0.204980 0.054840 0.054860 0.035796 0.170817 0.098362 0.273307 +0.020507 +0.040407 0.066158 0.047860 0.034684 0.042030 0.093514 0.054402 0.016827 0.035788 0.060763 0.046243 0.213613 0.014875 0.013750 0.109533 0.035230 0.038253 0.134507 0.053814 0.040484 0.049974 0.136654 0.098558 0.067446 0.002287 0.170817 0.058635 0.000117 0.020953 0.170817 0.087676 0.307471 +0.085429 +0.037348 0.054232 0.056669 0.108950 0.037242 0.126306 0.030772 0.022315 0.097925 0.037663 0.020010 0.105359 0.039845 0.018780 0.037429 0.059197 0.049537 0.056150 0.046289 0.003357 0.055043 0.102490 0.064275 0.016133 0.063518 0.170817 0.055061 0.038871 0.054630 0.239144 0.051280 0.307471 +0.004198 +0.036541 0.041709 0.056904 0.048627 0.033149 0.065028 0.066769 0.044338 0.035286 0.173946 0.044995 0.055351 0.007368 0.056293 0.040122 0.067659 0.048404 0.047632 0.053238 0.052980 0.002583 0.170817 0.081816 0.037421 0.038814 0.136654 0.079274 0.065318 0.055511 0.102490 0.078243 0.204980 +0.006041 +0.051286 0.042149 0.059328 0.065716 0.026408 0.240732 0.061962 0.025408 0.093555 0.039151 0.023795 0.183023 0.030426 0.035718 0.060002 0.091727 0.042003 0.102611 0.045367 0.018745 0.057519 0.170817 0.067838 0.019210 0.059957 0.102490 0.095674 0.049330 0.042128 0.102490 0.072942 0.204980 +0.136935 +0.030326 0.048428 0.058210 0.065244 0.030743 0.409822 0.059613 0.045170 0.045770 0.049113 0.040023 0.125825 0.057332 0.024133 0.043642 0.048245 0.023459 0.160566 0.061433 0.041162 0.001232 0.136654 0.098450 0.057931 0.042232 0.170817 0.101088 0.067808 0.017198 0.102490 0.095011 0.204980 +0.375595 +0.040226 0.063876 0.044174 0.113865 0.033008 0.117873 0.009830 0.010909 0.105233 0.046704 0.024344 0.260147 0.062976 0.018608 0.035603 0.090665 0.046328 0.082714 0.043825 0.046659 0.065252 0.204980 0.051584 0.043289 0.062425 0.273307 0.059250 0.015873 0.003063 0.239144 0.101282 0.307471 +0.093591 +0.048942 0.064012 0.036514 0.035575 0.042988 0.116315 0.003698 0.067287 0.103112 0.048223 0.026962 0.087162 0.003095 0.011911 0.043733 0.129243 0.047725 0.337716 0.056519 0.056067 0.006123 0.170817 0.098687 0.048113 0.038843 0.136654 0.067233 0.043814 0.045873 0.204980 0.065123 0.273307 +0.028595 +0.058665 0.059384 0.063860 0.093433 0.032525 0.215544 0.008026 0.018887 0.065916 0.050181 0.045070 0.229929 0.029965 0.063094 0.052929 0.066960 0.039214 0.093798 0.054292 0.033295 0.052451 0.307471 0.084371 0.044736 0.056136 0.273307 0.078784 0.045285 0.019997 0.136654 0.078662 0.341634 +0.003766 +0.028895 0.050964 0.061255 0.070152 0.019354 0.108208 0.066759 0.008626 0.051881 0.045275 0.039597 0.156916 0.003549 0.002867 0.062339 0.035479 0.034112 0.138827 0.050254 0.009677 0.005231 0.102490 0.061074 0.067614 0.010324 0.136654 0.061408 0.060553 0.047040 0.102490 0.072577 0.239144 +0.021201 +0.054541 0.056369 0.035362 0.041039 0.029700 0.094133 0.034609 0.064182 0.063716 0.143753 0.029598 0.069672 0.064134 0.061460 0.061543 0.111069 0.034541 0.082684 0.052128 0.001587 0.009054 0.273307 0.084200 0.039642 0.002958 0.307471 0.066578 0.030022 0.015092 0.239144 0.100669 0.341634 +0 +0.017264 0.025526 0.050108 0.049288 0.038674 0.108526 0.023456 0.018604 0.039766 0.034425 0.049428 0.126412 0.032946 0.012582 0.067825 0.047178 0.021070 0.213156 0.048490 0.000943 0.057887 0.239144 0.077408 0.002280 0.061256 0.136654 0.062155 0.004589 0.014115 0.204980 0.084431 0.341634 +0.197744 +0.059730 0.015871 0.076892 0.036675 0.026941 0.304172 0.014495 0.030917 0.077394 0.076621 0.029821 0.052393 0.067230 0.058262 0.094796 0.128336 0.034206 0.073196 0.047937 0.052013 0.030548 0.204980 0.073139 0.052631 0.023957 0.136654 0.072513 0.056649 0.000327 0.170817 0.079183 0.239144 +0.025208 +0.059319 0.007949 0.051992 0.149038 0.033823 0.067113 0.050871 0.016350 0.103598 0.062814 0.027836 0.210166 0.019838 0.052292 0.049807 0.035678 0.028807 0.187455 0.053917 0.054760 0.016883 0.102490 0.087733 0.035201 0.055460 0.136654 0.098044 0.042176 0.048487 0.170817 0.099913 0.204980 +0.103664 +0.057284 0.040282 0.045899 0.046159 0.026013 0.050819 0.018687 0.029491 0.043791 0.037304 0.017889 0.344044 0.007473 0.021099 0.065271 0.067190 0.049901 0.249679 0.053906 0.016502 0.039806 0.136654 0.052566 0.043516 0.041268 0.102490 0.069052 0.020809 0.050724 0.102490 0.079674 0.307471 +0.554487 +0.013001 0.052327 0.097286 0.066793 0.036083 0.128430 0.042785 0.067725 0.101807 0.058010 0.024266 0.050366 0.004826 0.026936 0.036734 0.156285 0.024744 0.045526 0.040296 0.057313 0.037060 0.170817 0.101756 0.049287 0.003108 0.102490 0.062688 0.050907 0.039154 0.170817 0.068470 0.204980 +0 +0.034127 0.050525 0.049895 0.072007 0.038696 0.291050 0.046585 0.052789 0.055468 0.083255 0.045795 0.361225 0.001534 0.008286 0.055235 0.090304 0.035530 0.134457 0.040719 0.032692 0.014810 0.273307 0.088189 0.010387 0.008628 0.136654 0.078655 0.034693 0.007458 0.273307 0.073230 0.341634 +0.575549 +0.006175 0.053700 0.036302 0.036720 0.034256 0.060208 0.029625 0.062388 0.083724 0.063678 0.029081 0.096561 0.066338 0.030874 0.047911 0.095109 0.022747 0.047748 0.045572 0.024007 0.023919 0.170817 0.055625 0.009510 0.049483 0.102490 0.096619 0.012004 0.018063 0.170817 0.092461 0.273307 +0 +0.052527 0.052941 0.079829 0.035028 0.036084 0.154931 0.005638 0.043586 0.037210 0.062245 0.050708 0.052914 0.046258 0.065783 0.034931 0.041615 0.050730 0.239050 0.049372 0.026490 0.059068 0.204980 0.058745 0.055845 0.008344 0.204980 0.065263 0.060540 0.013445 0.273307 0.093284 0.307471 +0.473299 +0.056535 0.046777 0.117950 0.056824 0.032736 0.051707 0.039925 0.033145 0.072582 0.035595 0.039789 0.208304 0.023565 0.008919 0.037741 0.042670 0.042662 0.138653 0.058838 0.041286 0.026258 0.102490 0.058977 0.036026 0.027049 0.204980 0.066909 0.052862 0.019081 0.204980 0.066326 0.307471 +0.062973 +0.058931 0.004750 0.037824 0.048115 0.029377 0.095967 0.039632 0.033903 0.045801 0.112501 0.025994 0.044282 0.030043 0.000605 0.064170 0.075188 0.043412 0.136808 0.050348 0.067959 0.010871 0.307471 0.072960 0.023956 0.062331 0.239144 0.097103 0.058966 0.005165 0.102490 0.080647 0.341634 +0 +0.020559 0.027350 0.043020 0.116793 0.023630 0.044749 0.055855 0.032409 0.083555 0.050915 0.040538 0.044298 0.060141 0.046984 0.053382 0.048446 0.048314 0.102781 0.047808 0.056731 0.061140 0.170817 0.058503 0.025509 0.051190 0.136654 0.069354 0.013755 0.067357 0.102490 0.056777 0.239144 +0 +0.013584 0.046142 0.048826 0.048323 0.029910 0.191246 0.053960 0.056408 0.037730 0.055903 0.024468 0.155329 0.038121 0.048139 0.107717 0.060082 0.045817 0.084689 0.056796 0.049960 0.045768 0.239144 0.061459 0.034067 0.031412 0.102490 0.072616 0.000567 0.030486 0.204980 0.074682 0.273307 +0.355070 +0.010215 0.027073 0.055369 0.086537 0.021459 0.047555 0.013983 0.050371 0.095421 0.063426 0.024217 0.072173 0.000531 0.032622 0.078219 0.053348 0.049009 0.035433 0.053420 0.010151 0.053154 0.102490 0.059124 0.056336 0.005485 0.136654 0.062274 0.016919 0.022608 0.102490 0.092051 0.273307 +0 +0.065455 0.001075 0.060161 0.152958 0.041408 0.250930 0.006557 0.033559 0.055692 0.119337 0.036366 0.058373 0.049517 0.052738 0.076399 0.059556 0.032203 0.145318 0.060902 0.019916 0.045778 0.204980 0.078849 0.011465 0.000781 0.170817 0.083648 0.023459 0.026998 0.102490 0.055578 0.307471 +0.042687 +0.065131 0.043024 0.051822 0.073121 0.042867 0.149026 0.022755 0.031815 0.050915 0.096548 0.045253 0.078500 0.014791 0.037373 0.057874 0.034818 0.033977 0.064121 0.052291 0.021438 0.017608 0.170817 0.062584 0.014033 0.026640 0.136654 0.085965 0.063249 0.024997 0.136654 0.082305 0.204980 +0.030330 +0.020648 0.038388 0.056469 0.045142 0.032818 0.124504 0.040948 0.061310 0.050953 0.067306 0.048176 0.058405 0.067572 0.000480 0.034481 0.073954 0.028348 0.108957 0.056332 0.021729 0.060719 0.136654 0.071071 0.029329 0.036990 0.136654 0.066183 0.027770 0.014623 0.102490 0.062526 0.239144 +0.008655 +0.010503 0.028714 0.073693 0.098763 0.026079 0.148184 0.012830 0.025033 0.117498 0.061881 0.021275 0.287240 0.038869 0.030308 0.048426 0.034205 0.030468 0.074780 0.042810 0.002437 0.004611 0.102490 0.083977 0.053591 0.052419 0.102490 0.052280 0.065110 0.063372 0.136654 0.075515 0.307471 +0.217966 +0.053519 0.022724 0.058286 0.041986 0.025718 0.146999 0.050420 0.037553 0.042350 0.064068 0.049235 0.077890 0.052564 0.065415 0.060511 0.045713 0.047780 0.085177 0.062822 0.022614 0.025102 0.102490 0.094854 0.037874 0.032126 0.170817 0.068855 0.058898 0.012973 0.170817 0.081491 0.204980 +0.039475 +0.014458 0.041083 0.054765 0.145762 0.025295 0.082607 0.058625 0.011725 0.052419 0.064641 0.039024 0.244994 0.046309 0.027065 0.073288 0.064143 0.029618 0.538347 0.050587 0.045326 0.004091 0.170817 0.073610 0.001408 0.013502 0.136654 0.053876 0.053912 0.005380 0.170817 0.058022 0.239144 +0.386338 +0.024202 0.014052 0.119299 0.059477 0.020830 0.118448 0.065020 0.002608 0.119281 0.043507 0.036192 0.256346 0.044882 0.025430 0.097996 0.083994 0.044118 0.223362 0.058243 0.016882 0.044490 0.136654 0.063485 0.047914 0.056031 0.239144 0.087196 0.030824 0.026877 0.102490 0.079851 0.273307 +0.297133 +0.023722 0.031963 0.077884 0.080021 0.048532 0.488152 0.028768 0.036401 0.037738 0.064528 0.039350 0.082913 0.041465 0.013712 0.070440 0.078303 0.036914 0.342295 0.045503 0.063450 0.027712 0.136654 0.083415 0.030827 0.041077 0.273307 0.082901 0.033244 0.019754 0.239144 0.072587 0.341634 +0.603982 +0.010534 0.038749 0.068153 0.112988 0.026034 0.039961 0.043497 0.032892 0.051949 0.062216 0.017302 0.068188 0.059644 0.053570 0.036198 0.040714 0.019429 0.407348 0.040861 0.041635 0.045099 0.136654 0.059502 0.011505 0.001105 0.136654 0.066404 0.045229 0.041904 0.102490 0.067388 0.204980 +0.401727 +0.025856 0.035785 0.050098 0.048105 0.041325 0.090835 0.061519 0.049549 0.151490 0.041655 0.026567 0.066079 0.027325 0.057497 0.040066 0.092165 0.040092 0.187659 0.058413 0.017560 0.055886 0.307471 0.093175 0.044666 0.041389 0.102490 0.051641 0.052741 0.032008 0.307471 0.086255 0.341634 +0 +0.019784 0.022724 0.036486 0.065671 0.049092 0.037127 0.066377 0.026233 0.035088 0.143264 0.050806 0.139849 0.064085 0.006317 0.062289 0.039746 0.033905 0.135069 0.053490 0.002706 0.050618 0.204980 0.096742 0.024375 0.012480 0.170817 0.100469 0.065106 0.053130 0.170817 0.095742 0.273307 +0.011752 +0.029872 0.020018 0.168891 0.108892 0.020835 0.137473 0.013104 0.033154 0.068890 0.045897 0.037230 0.182613 0.033509 0.055038 0.075338 0.070458 0.034832 0.067858 0.043414 0.028176 0.032267 0.170817 0.052447 0.023223 0.029721 0.170817 0.073343 0.029684 0.000458 0.102490 0.063962 0.204980 +0.143706 +0.046851 0.004109 0.038105 0.193728 0.024068 0.066733 0.029142 0.002410 0.073190 0.039022 0.024811 0.201619 0.040700 0.021443 0.092945 0.087448 0.033444 0.040679 0.062144 0.053420 0.066098 0.239144 0.084443 0.037769 0.004672 0.273307 0.054219 0.044566 0.009885 0.204980 0.078798 0.307471 +0.050543 +0.031789 0.020163 0.056027 0.038992 0.028262 0.068388 0.038150 0.021116 0.046677 0.052600 0.044786 0.038261 0.031991 0.066588 0.074054 0.168358 0.028977 0.069732 0.056655 0.033705 0.050673 0.239144 0.100317 0.023827 0.042116 0.136654 0.082335 0.064689 0.012713 0.204980 0.098337 0.307471 +0 +0.049096 0.032486 0.045271 0.047791 0.030067 0.037702 0.063134 0.047006 0.087547 0.043068 0.029587 0.436442 0.024389 0.048003 0.124058 0.089450 0.021061 0.034655 0.038204 0.031475 0.020487 0.170817 0.082158 0.028045 0.053670 0.102490 0.084074 0.063984 0.034414 0.136654 0.063697 0.204980 +0.122075 +0.068010 0.040817 0.104902 0.053117 0.036376 0.098706 0.002097 0.027188 0.081768 0.039016 0.021993 0.103040 0.011688 0.049754 0.040807 0.058613 0.050615 0.164592 0.052284 0.056692 0.041105 0.102490 0.072824 0.022278 0.018171 0.102490 0.071190 0.000840 0.044027 0.204980 0.065748 0.273307 +0.009636 +0.030519 0.045528 0.078305 0.053882 0.040326 0.087467 0.008328 0.045887 0.065032 0.067437 0.034147 0.134035 0.056498 0.009719 0.047733 0.099976 0.029526 0.116416 0.045809 0.062899 0.036221 0.102490 0.101073 0.051496 0.022199 0.102490 0.061720 0.061266 0.063888 0.102490 0.051730 0.204980 +0.013150 +0.037801 0.038610 0.087227 0.088733 0.017310 0.096148 0.037836 0.010735 0.038327 0.042860 0.034523 0.040600 0.023777 0.016700 0.043449 0.045314 0.023064 0.122522 0.054489 0.029011 0.018651 0.102490 0.093094 0.057330 0.011587 0.204980 0.082137 0.013815 0.007800 0.170817 0.089048 0.307471 +0 +0.049474 0.006838 0.103863 0.040336 0.024214 0.311479 0.015013 0.020268 0.037886 0.108969 0.036426 0.078882 0.005853 0.039700 0.088206 0.040658 0.022260 0.372917 0.053344 0.020855 0.054677 0.239144 0.080791 0.000756 0.046661 0.170817 0.058310 0.056680 0.017758 0.170817 0.065718 0.273307 +0.624361 +0.013785 0.039751 0.040510 0.055762 0.028739 0.070633 0.050325 0.054835 0.130397 0.098013 0.039585 0.052417 0.066211 0.002076 0.049423 0.058702 0.031630 0.109886 0.041015 0.056341 0.034027 0.102490 0.092387 0.056055 0.062656 0.136654 0.061177 0.047214 0.042113 0.136654 0.066708 0.204980 +0.003832 +0.020058 0.054549 0.093857 0.052648 0.019932 0.064976 0.016956 0.031636 0.056018 0.105597 0.049391 0.119687 0.028174 0.022724 0.054706 0.115268 0.024160 0.183233 0.061421 0.067557 0.025454 0.170817 0.074271 0.002421 0.033079 0.102490 0.072818 0.027974 0.018288 0.102490 0.079135 0.204980 +0.002626 +0.066688 0.064386 0.048493 0.091917 0.027013 0.124962 0.044160 0.042332 0.107531 0.055955 0.028227 0.085779 0.065881 0.041649 0.070599 0.112503 0.044670 0.252377 0.047639 0.004140 0.065251 0.136654 0.071853 0.009484 0.011993 0.170817 0.088752 0.049499 0.011948 0.136654 0.069758 0.204980 +0.054364 +0.045749 0.013860 0.054309 0.087493 0.035825 0.201737 0.056691 0.045527 0.039640 0.039874 0.037995 0.086820 0.022211 0.006751 0.103090 0.063149 0.039840 0.135102 0.060897 0.013493 0.047465 0.204980 0.083942 0.022592 0.007473 0.170817 0.054727 0.019783 0.031923 0.102490 0.069922 0.273307 +0.032006 +0.013141 0.017408 0.052716 0.100161 0.036066 0.045440 0.047039 0.067512 0.102702 0.066356 0.042041 0.097982 0.009151 0.008292 0.052110 0.130301 0.024674 0.263674 0.061795 0.034416 0.034276 0.102490 0.085048 0.066366 0.007762 0.273307 0.058613 0.028792 0.049260 0.273307 0.089076 0.307471 +0.094394 +0.000445 0.067725 0.056918 0.078821 0.029360 0.319097 0.036660 0.039419 0.076778 0.049850 0.023257 0.096052 0.017188 0.028262 0.056267 0.074096 0.026509 0.434553 0.045115 0.001999 0.022156 0.239144 0.088689 0.066540 0.021986 0.273307 0.061351 0.055517 0.030195 0.136654 0.070621 0.341634 +0.493516 +0.002117 0.067861 0.046901 0.075597 0.018726 0.189151 0.012906 0.012176 0.046333 0.061796 0.038289 0.441083 0.050513 0.026585 0.109307 0.039313 0.050972 0.209201 0.038709 0.059227 0.055315 0.170817 0.057021 0.022370 0.014574 0.170817 0.068992 0.058933 0.018138 0.102490 0.092532 0.239144 +0.881767 +0.022454 0.035838 0.067996 0.109062 0.040064 0.121575 0.043799 0.018306 0.056142 0.040714 0.051091 0.402119 0.067794 0.030229 0.072895 0.061995 0.026087 0.422704 0.053648 0.051917 0.044827 0.170817 0.080381 0.063633 0.033815 0.170817 0.091958 0.016140 0.023985 0.136654 0.078511 0.204980 +0.370917 +0.067139 0.008931 0.048453 0.047676 0.036578 0.122945 0.033629 0.045202 0.069853 0.055290 0.029064 0.129918 0.040436 0.026015 0.052525 0.065697 0.034938 0.097389 0.045279 0.015601 0.061943 0.136654 0.075358 0.054035 0.048736 0.170817 0.074595 0.009489 0.027800 0.204980 0.068726 0.239144 +0.006724 +0.066538 0.032403 0.141305 0.078632 0.037647 0.052773 0.037208 0.057338 0.060932 0.035239 0.049076 0.232435 0.036012 0.011283 0.037163 0.058850 0.018666 0.060182 0.063595 0.015983 0.062376 0.307471 0.076626 0.037413 0.062783 0.170817 0.077242 0.057725 0.016383 0.170817 0.082965 0.341634 +0.004662 +0.055289 0.036445 0.047339 0.194002 0.049122 0.045364 0.005084 0.048988 0.065816 0.045561 0.031350 0.049020 0.009344 0.036680 0.035920 0.061872 0.027756 0.177074 0.038465 0.027238 0.025657 0.170817 0.084261 0.036732 0.002762 0.136654 0.058491 0.039457 0.015448 0.102490 0.061880 0.273307 +0.017871 +0.045122 0.010964 0.060586 0.064736 0.032069 0.148875 0.027616 0.032134 0.041379 0.046994 0.040724 0.049811 0.027209 0.048260 0.048391 0.046173 0.037763 0.179752 0.046912 0.047112 0.008206 0.204980 0.099941 0.049622 0.001356 0.136654 0.060856 0.062127 0.054765 0.102490 0.089106 0.273307 +0.002829 +0.009566 0.010705 0.047518 0.035677 0.044854 0.069118 0.022941 0.024925 0.061759 0.038646 0.037916 0.042228 0.015629 0.043673 0.034926 0.045728 0.021504 0.134031 0.056999 0.032579 0.059222 0.239144 0.093683 0.042969 0.057450 0.102490 0.095445 0.009178 0.023913 0.273307 0.061132 0.341634 +0 +0.057989 0.063935 0.058180 0.123056 0.041909 0.304636 0.030641 0.003759 0.052494 0.130788 0.044342 0.067577 0.034845 0.044016 0.087693 0.045604 0.017726 0.460142 0.037088 0.027805 0.062855 0.102490 0.062872 0.001652 0.062668 0.136654 0.101614 0.060184 0.011772 0.239144 0.098103 0.273307 +0.270440 +0.015501 0.018281 0.039453 0.059761 0.023317 0.097706 0.020181 0.042349 0.057302 0.115012 0.046123 0.250682 0.038427 0.012934 0.037040 0.116439 0.041999 0.235029 0.055905 0.023458 0.052962 0.102490 0.060418 0.013790 0.051471 0.102490 0.071317 0.009691 0.006509 0.136654 0.077256 0.204980 +0.122180 +0.057152 0.005508 0.041059 0.062932 0.048385 0.273809 0.004817 0.060998 0.102731 0.129222 0.024133 0.102085 0.016722 0.028534 0.039830 0.034667 0.051180 0.054141 0.050205 0.049310 0.016061 0.204980 0.070692 0.064753 0.005231 0.204980 0.080745 0.029593 0.006677 0.102490 0.088269 0.239144 +0.041510 +0.052846 0.031151 0.136376 0.084925 0.047090 0.050804 0.032660 0.035663 0.101580 0.036663 0.028708 0.237763 0.056349 0.028359 0.046449 0.052037 0.035211 0.199838 0.043691 0.011886 0.019843 0.136654 0.099711 0.029292 0.033868 0.170817 0.091033 0.036866 0.004903 0.136654 0.060773 0.307471 +0.006683 +0.035460 0.017389 0.124986 0.034991 0.038998 0.225837 0.010738 0.051759 0.101476 0.040939 0.020743 0.050316 0.037569 0.009741 0.045495 0.104109 0.037174 0.203431 0.050199 0.059272 0.013658 0.170817 0.094545 0.052193 0.063359 0.170817 0.101683 0.005937 0.020827 0.170817 0.060595 0.341634 +0 +0.042226 0.014010 0.087377 0.048566 0.050820 0.057826 0.017127 0.016865 0.038124 0.110395 0.025388 0.058635 0.053002 0.011569 0.072413 0.065950 0.032902 0.038875 0.055678 0.007810 0.033543 0.239144 0.090543 0.005753 0.002412 0.102490 0.083193 0.001438 0.015180 0.170817 0.054862 0.307471 +0 +0.046414 0.015301 0.054359 0.036507 0.050160 0.296776 0.067039 0.057540 0.065142 0.073238 0.024997 0.058245 0.015976 0.001351 0.046986 0.082684 0.021506 0.433118 0.054013 0.030448 0.040469 0.102490 0.083768 0.009774 0.040740 0.102490 0.057912 0.035294 0.057105 0.170817 0.073874 0.204980 +0.753375 +0.024393 0.042900 0.038906 0.052962 0.025403 0.085563 0.028319 0.038747 0.056882 0.036330 0.027166 0.199887 0.023796 0.050402 0.069779 0.035477 0.040295 0.099930 0.061175 0.054048 0.035081 0.204980 0.075018 0.062803 0.026493 0.102490 0.063483 0.040733 0.046971 0.136654 0.051525 0.239144 +0.049339 +0.019743 0.011898 0.092678 0.139075 0.044276 0.088819 0.043360 0.055784 0.111087 0.051285 0.027582 0.120572 0.056370 0.025177 0.087065 0.144351 0.018359 0.056459 0.045957 0.005561 0.065504 0.170817 0.096620 0.037168 0.022162 0.102490 0.066839 0.032501 0.031619 0.239144 0.052944 0.273307 +0.003352 +0.048822 0.025881 0.091560 0.052885 0.032980 0.092436 0.058809 0.023838 0.074449 0.064659 0.042664 0.064777 0.013477 0.036473 0.058682 0.039188 0.033930 0.127173 0.041264 0.001268 0.024179 0.239144 0.097963 0.037610 0.046545 0.204980 0.093810 0.024200 0.029078 0.170817 0.087612 0.273307 +0 +0.001069 0.059015 0.151102 0.054059 0.047846 0.126060 0.041859 0.050918 0.042370 0.069037 0.046032 0.149846 0.026518 0.047881 0.081611 0.209721 0.032875 0.222522 0.052654 0.000387 0.016993 0.239144 0.080525 0.024070 0.041557 0.136654 0.062490 0.003099 0.015471 0.307471 0.096662 0.341634 +0 +0.029822 0.010464 0.055145 0.080112 0.042073 0.178860 0.017741 0.050859 0.051592 0.088038 0.033764 0.048306 0.062575 0.021813 0.041146 0.057664 0.035314 0.037375 0.051472 0.028554 0.008972 0.204980 0.078728 0.000905 0.029502 0.136654 0.060523 0.030890 0.022348 0.204980 0.078518 0.341634 +0 +0.047543 0.026077 0.081234 0.142175 0.018178 0.042750 0.064268 0.016760 0.097541 0.056553 0.033228 0.244686 0.013871 0.012758 0.105403 0.068786 0.024733 0.107207 0.046791 0.063547 0.051156 0.170817 0.083781 0.020276 0.066289 0.102490 0.071425 0.031679 0.026045 0.136654 0.083021 0.273307 +0.006426 +0.064222 0.023731 0.037243 0.124554 0.043441 0.384058 0.047636 0.038353 0.081297 0.051114 0.019671 0.062125 0.020101 0.019880 0.065067 0.046012 0.024247 0.151519 0.048096 0.030461 0.003015 0.102490 0.083769 0.058180 0.002389 0.102490 0.073268 0.038458 0.009149 0.170817 0.056806 0.239144 +0.234257 +0.068045 0.019173 0.044529 0.053046 0.032521 0.101933 0.064566 0.043128 0.036087 0.050632 0.025029 0.129363 0.011750 0.051138 0.055710 0.036116 0.045651 0.063221 0.057945 0.063150 0.037468 0.102490 0.070003 0.057975 0.006973 0.136654 0.076632 0.043354 0.010940 0.170817 0.091819 0.307471 +0.002105 +0.038298 0.057519 0.049419 0.075486 0.029208 0.045896 0.062058 0.059353 0.079988 0.044295 0.028383 0.080430 0.045457 0.020827 0.050789 0.064844 0.048384 0.067129 0.054057 0.066986 0.002227 0.102490 0.085640 0.039906 0.017586 0.136654 0.089684 0.046040 0.048064 0.136654 0.077994 0.204980 +0.017657 +0.034439 0.062490 0.035267 0.052502 0.039602 0.074975 0.040879 0.013281 0.048911 0.037964 0.032384 0.259220 0.017399 0.021859 0.064009 0.038740 0.017143 0.200548 0.041111 0.046710 0.066125 0.136654 0.093228 0.006822 0.052357 0.102490 0.078247 0.001859 0.031704 0.102490 0.054191 0.204980 +0.431859 +0.021402 0.039986 0.084889 0.055054 0.023179 0.099885 0.025551 0.038862 0.171039 0.054041 0.035319 0.149475 0.030256 0.052579 0.039206 0.044133 0.017950 0.183203 0.046346 0.041609 0.043113 0.170817 0.098688 0.002261 0.002511 0.102490 0.064898 0.005392 0.050892 0.170817 0.095507 0.204980 +0.302607 +0.024613 0.025934 0.053800 0.131884 0.038031 0.135033 0.018477 0.001669 0.043422 0.062390 0.034531 0.057579 0.012837 0.001202 0.035328 0.051210 0.046745 0.054637 0.053680 0.068002 0.050717 0.239144 0.059596 0.009337 0.009863 0.136654 0.098684 0.046496 0.011122 0.102490 0.057761 0.341634 +0 +0.045080 0.020165 0.051298 0.146810 0.038121 0.167437 0.012689 0.051558 0.085121 0.062431 0.029180 0.052888 0.015779 0.040071 0.083854 0.043586 0.026879 0.079970 0.053358 0.038187 0.062896 0.239144 0.054776 0.062505 0.035667 0.136654 0.100941 0.017080 0.068234 0.136654 0.093492 0.341634 +0 +0.019962 0.013402 0.055206 0.047257 0.023728 0.195021 0.033363 0.014271 0.040360 0.058442 0.032678 0.172660 0.052885 0.023671 0.044930 0.048135 0.036919 0.086821 0.044973 0.048293 0.027609 0.102490 0.080644 0.014854 0.036351 0.136654 0.056780 0.043487 0.004197 0.102490 0.058443 0.204980 +0.172367 +0.066772 0.001081 0.047967 0.036549 0.036218 0.091441 0.041655 0.043547 0.117272 0.108637 0.023256 0.139451 0.006993 0.004167 0.079855 0.054708 0.030244 0.196546 0.061468 0.053033 0.066078 0.170817 0.063062 0.047005 0.055007 0.136654 0.100373 0.004960 0.046108 0.136654 0.078698 0.204980 +0.124303 +0.067564 0.025876 0.040187 0.126149 0.049280 0.091051 0.036087 0.058014 0.050759 0.052396 0.042979 0.338852 0.022305 0.046561 0.043836 0.049670 0.031707 0.187706 0.038742 0.043530 0.009763 0.102490 0.065261 0.064872 0.001228 0.102490 0.076756 0.037723 0.012674 0.170817 0.066194 0.204980 +0.470084 +0.007261 0.049930 0.067557 0.073995 0.046579 0.098791 0.023752 0.065460 0.084624 0.037503 0.020705 0.056524 0.040654 0.019089 0.036746 0.047439 0.025972 0.192452 0.055184 0.012255 0.015815 0.102490 0.096020 0.049309 0.068164 0.273307 0.082029 0.053483 0.060322 0.102490 0.069379 0.307471 +0.386511 +0.002992 0.044787 0.039495 0.040886 0.030069 0.192021 0.061487 0.004226 0.139681 0.050778 0.021756 0.044739 0.022432 0.028880 0.034885 0.049961 0.035220 0.167114 0.036816 0.051948 0.002545 0.102490 0.093416 0.060655 0.067014 0.102490 0.056771 0.054240 0.007930 0.204980 0.086755 0.307471 +0.013386 +0.066695 0.055837 0.076079 0.048539 0.029296 0.046261 0.044276 0.037398 0.054954 0.037784 0.033939 0.064512 0.022566 0.009804 0.046998 0.038036 0.043595 0.043859 0.053978 0.052655 0.044575 0.239144 0.064261 0.059585 0.058194 0.136654 0.101942 0.046208 0.007465 0.204980 0.075857 0.307471 +0 +0.052464 0.053812 0.110366 0.106267 0.048707 0.090243 0.059525 0.040538 0.038145 0.051522 0.029734 0.084509 0.053740 0.047328 0.049287 0.062848 0.032965 0.337380 0.054059 0.012228 0.011413 0.136654 0.062002 0.029810 0.043499 0.307471 0.080625 0.059498 0.067717 0.307471 0.086285 0.341634 +0.135647 +0.020431 0.026664 0.037190 0.039444 0.033594 0.176646 0.016809 0.067991 0.063322 0.050429 0.040039 0.145917 0.024295 0.053288 0.036579 0.043311 0.032235 0.092089 0.054496 0.007222 0.053596 0.170817 0.089469 0.008848 0.002795 0.170817 0.054628 0.042171 0.041742 0.170817 0.084813 0.204980 +0.374476 +0.007078 0.025105 0.045293 0.037788 0.048484 0.054392 0.038198 0.038525 0.094279 0.134064 0.022878 0.096591 0.005082 0.061128 0.063279 0.046236 0.045602 0.396753 0.044818 0.054168 0.053841 0.204980 0.095234 0.059668 0.033376 0.204980 0.096641 0.028642 0.020520 0.170817 0.072595 0.239144 +0.166552 +0.016029 0.020482 0.060950 0.059699 0.032911 0.092340 0.049669 0.017917 0.075159 0.109662 0.031446 0.265708 0.052469 0.029186 0.036433 0.084294 0.025387 0.163664 0.038566 0.034029 0.043467 0.239144 0.061354 0.008996 0.053448 0.239144 0.067524 0.003005 0.062820 0.170817 0.091236 0.341634 +0.156716 +0.028184 0.041280 0.034800 0.038481 0.033186 0.042450 0.066998 0.055162 0.082586 0.097873 0.031261 0.113531 0.016874 0.018489 0.052114 0.050277 0.028875 0.107205 0.038689 0.021100 0.043140 0.170817 0.065225 0.036452 0.021711 0.136654 0.097573 0.053674 0.056201 0.273307 0.071610 0.341634 +0 +0.061478 0.017668 0.057503 0.083884 0.046710 0.086248 0.058239 0.067838 0.042624 0.048940 0.036656 0.229890 0.051232 0.007389 0.040570 0.041744 0.047542 0.036865 0.064794 0.014854 0.035431 0.102490 0.087484 0.003075 0.017473 0.136654 0.067397 0.021559 0.031998 0.136654 0.088465 0.307471 +0.007682 +0.054293 0.037347 0.036519 0.036315 0.034524 0.147337 0.055103 0.027132 0.082004 0.097799 0.047120 0.040951 0.056045 0.014891 0.051965 0.083034 0.041941 0.089537 0.047398 0.025787 0.050313 0.102490 0.083067 0.032075 0.054093 0.170817 0.089429 0.011877 0.057903 0.204980 0.076886 0.239144 +0.034370 +0.054721 0.010771 0.075417 0.064573 0.050874 0.447386 0.066074 0.064070 0.083476 0.140274 0.036892 0.211262 0.017829 0.060188 0.047128 0.039550 0.020031 0.093817 0.058691 0.036302 0.016201 0.102490 0.078034 0.037791 0.029633 0.136654 0.094218 0.023956 0.062920 0.136654 0.077840 0.273307 +0.012083 +0.051239 0.013253 0.064538 0.048467 0.022828 0.294115 0.022598 0.041637 0.081414 0.037353 0.036869 0.098784 0.038370 0.063000 0.041689 0.128891 0.018522 0.085012 0.059230 0.020433 0.057184 0.102490 0.101929 0.001692 0.022667 0.136654 0.091399 0.042524 0.038777 0.170817 0.057796 0.204980 +0.002070 +0.044383 0.038673 0.037429 0.060136 0.046670 0.456750 0.049881 0.007458 0.045905 0.090439 0.018898 0.059473 0.004545 0.033446 0.148453 0.067259 0.048391 0.206601 0.058664 0.008269 0.067681 0.204980 0.096070 0.057581 0.006146 0.170817 0.094064 0.007953 0.018395 0.204980 0.075977 0.273307 +0.005643 +0.063505 0.038083 0.060308 0.051531 0.021548 0.088042 0.016795 0.006256 0.054396 0.054003 0.024212 0.107487 0.023764 0.060425 0.061320 0.086424 0.049616 0.035850 0.053798 0.036710 0.067446 0.170817 0.061679 0.011732 0.054167 0.136654 0.078880 0.048740 0.030175 0.102490 0.100820 0.239144 +0 +0.059186 0.049673 0.079547 0.168576 0.047845 0.345959 0.054763 0.048912 0.041737 0.043867 0.043256 0.081290 0.009962 0.060113 0.056555 0.056194 0.051179 0.050390 0.057367 0.012739 0.066039 0.239144 0.058830 0.020108 0.013621 0.273307 0.075817 0.067570 0.014335 0.204980 0.060432 0.307471 +0 +0.051081 0.035287 0.035415 0.117076 0.018726 0.149314 0.034191 0.056812 0.038804 0.044241 0.039964 0.055082 0.005215 0.007350 0.062246 0.042175 0.030634 0.201252 0.059912 0.022386 0.035178 0.102490 0.067787 0.006982 0.065821 0.102490 0.091267 0.037514 0.052365 0.204980 0.088112 0.239144 +0.087251 +0.034193 0.009811 0.104520 0.303254 0.034376 0.050930 0.028640 0.031610 0.079979 0.041781 0.019336 0.117672 0.032785 0.016340 0.103571 0.041866 0.032195 0.065781 0.056832 0.060562 0.041166 0.170817 0.084534 0.020470 0.048137 0.102490 0.071807 0.001475 0.016692 0.136654 0.095257 0.204980 +0.058759 +0.068029 0.043103 0.089093 0.057932 0.018381 0.213842 0.045434 0.012786 0.040669 0.038794 0.044601 0.100477 0.039870 0.025848 0.037475 0.116891 0.036399 0.095879 0.051884 0.056279 0.060882 0.170817 0.099381 0.055018 0.045561 0.136654 0.062207 0.046313 0.011977 0.239144 0.091510 0.307471 +0.034545 +0.046090 0.061994 0.062793 0.038809 0.036049 0.075767 0.003516 0.036713 0.040683 0.052012 0.039759 0.327427 0.038460 0.015992 0.133701 0.035536 0.047033 0.101791 0.043381 0.007734 0.022067 0.204980 0.088391 0.018559 0.037231 0.239144 0.068175 0.027450 0.064059 0.239144 0.051830 0.307471 +0.242842 +0.006646 0.039032 0.180569 0.035575 0.033805 0.091768 0.061797 0.046838 0.154948 0.072576 0.019935 0.057509 0.065992 0.029641 0.038615 0.086010 0.031515 0.293118 0.058514 0.017483 0.060100 0.170817 0.091438 0.022452 0.031841 0.170817 0.083057 0.041353 0.062283 0.170817 0.068730 0.239144 +0.011720 +0.060398 0.005024 0.037192 0.034486 0.025189 0.040714 0.048851 0.066176 0.074886 0.038541 0.041666 0.057069 0.008298 0.049708 0.038163 0.035627 0.046627 0.245325 0.041666 0.011966 0.063167 0.102490 0.055376 0.051252 0.037023 0.204980 0.058370 0.014341 0.063400 0.239144 0.077638 0.273307 +0 +0.005268 0.056985 0.046836 0.083617 0.037870 0.253431 0.037080 0.024923 0.043489 0.056648 0.023380 0.102044 0.026605 0.040541 0.051512 0.078490 0.036443 0.110330 0.057072 0.067893 0.051085 0.239144 0.060275 0.010906 0.017608 0.239144 0.058828 0.000434 0.020303 0.102490 0.080803 0.273307 +0.200339 +0.029487 0.033289 0.069020 0.058430 0.032513 0.109355 0.040040 0.021363 0.171472 0.051562 0.042278 0.077785 0.009398 0.018137 0.125545 0.041061 0.031597 0.187642 0.041642 0.066616 0.014115 0.273307 0.073885 0.054795 0.021644 0.239144 0.061699 0.049220 0.058811 0.136654 0.052760 0.341634 +0.008358 +0.023279 0.032172 0.059355 0.059224 0.030379 0.098117 0.035885 0.052517 0.039320 0.050645 0.035968 0.097165 0.056335 0.041444 0.034594 0.144314 0.026254 0.171130 0.046397 0.064472 0.023857 0.170817 0.065911 0.015575 0.053959 0.170817 0.099225 0.049873 0.004610 0.102490 0.054911 0.239144 +0.061424 +0.015176 0.025235 0.034650 0.039056 0.030719 0.472132 0.063429 0.001941 0.057075 0.041274 0.046490 0.315798 0.051512 0.053220 0.133654 0.053411 0.039834 0.327367 0.049535 0.045981 0.029949 0.204980 0.055415 0.001134 0.027011 0.136654 0.091658 0.043527 0.017620 0.204980 0.077929 0.239144 +0.452648 +0.037824 0.001430 0.119473 0.036655 0.027041 0.060324 0.034865 0.038301 0.034956 0.046447 0.036476 0.088618 0.051157 0.015430 0.103779 0.056502 0.050779 0.040869 0.040548 0.020340 0.035840 0.136654 0.089933 0.051479 0.052806 0.307471 0.076092 0.009369 0.055666 0.136654 0.066410 0.341634 +0 +0.038456 0.044697 0.047317 0.079662 0.043920 0.169954 0.016114 0.003311 0.059187 0.035107 0.027283 0.203477 0.011165 0.063022 0.124988 0.082170 0.045052 0.158293 0.052348 0.048133 0.063431 0.273307 0.075815 0.031428 0.039052 0.136654 0.095763 0.049901 0.021264 0.136654 0.088987 0.341634 +0.006309 +0.018444 0.026286 0.035938 0.118843 0.038142 0.135287 0.046589 0.030399 0.044748 0.062731 0.049251 0.092264 0.038928 0.010991 0.034897 0.047912 0.032751 0.066104 0.062731 0.040733 0.041680 0.102490 0.101814 0.012464 0.011470 0.102490 0.051956 0.064868 0.056697 0.102490 0.061260 0.239144 +0.011691 +0.000809 0.047687 0.068269 0.114923 0.049158 0.067373 0.046701 0.055370 0.048307 0.051629 0.018546 0.128279 0.033388 0.033017 0.128466 0.075603 0.032939 0.240847 0.044786 0.052900 0.043006 0.170817 0.080629 0.049505 0.057954 0.170817 0.083488 0.062517 0.033387 0.136654 0.051414 0.204980 +0.302822 +0.001697 0.036745 0.042082 0.060341 0.043570 0.233733 0.020984 0.062163 0.062984 0.036451 0.044073 0.482749 0.000384 0.022561 0.041690 0.050385 0.032574 0.168742 0.041152 0.062361 0.015987 0.136654 0.076445 0.009343 0.065000 0.102490 0.065173 0.039488 0.007110 0.170817 0.062823 0.273307 +0.458177 +0.054921 0.018788 0.041437 0.034984 0.022494 0.230791 0.040493 0.010834 0.058772 0.042815 0.034529 0.047896 0.018195 0.031290 0.047907 0.051369 0.032733 0.190453 0.052286 0.046114 0.005319 0.102490 0.100865 0.025057 0.045721 0.102490 0.062917 0.005520 0.029487 0.102490 0.072957 0.204980 +0.208595 +0.052110 0.067280 0.120450 0.048749 0.046199 0.149805 0.057026 0.016345 0.047876 0.174010 0.039088 0.498714 0.013672 0.064641 0.084640 0.041058 0.026371 0.213667 0.056994 0.032116 0.029315 0.102490 0.085766 0.000870 0.018469 0.136654 0.065361 0.028053 0.034408 0.102490 0.094175 0.341634 +0.116615 +0.024523 0.023574 0.067511 0.040526 0.043034 0.470632 0.033280 0.057974 0.119815 0.034238 0.021906 0.279085 0.000290 0.026054 0.044837 0.094383 0.022099 0.175802 0.055848 0.009534 0.059755 0.273307 0.091696 0.006669 0.064710 0.170817 0.052717 0.016980 0.014711 0.170817 0.061324 0.341634 +0.591950 +0.015509 0.001067 0.038304 0.037854 0.018916 0.050018 0.016872 0.059083 0.060503 0.050142 0.040279 0.090776 0.009900 0.034431 0.054563 0.046190 0.035955 0.112541 0.047049 0.006702 0.055481 0.273307 0.055291 0.067895 0.021785 0.170817 0.060436 0.058042 0.019601 0.136654 0.068780 0.341634 +0.023042 +0.055014 0.018338 0.063545 0.061170 0.049378 0.100093 0.050686 0.014860 0.062125 0.100830 0.040325 0.121899 0.001342 0.051047 0.034686 0.096589 0.038829 0.508567 0.047369 0.059828 0.031698 0.136654 0.100741 0.024580 0.047445 0.102490 0.073308 0.018677 0.018497 0.136654 0.087521 0.204980 +0.440387 +0.018710 0.021294 0.074920 0.070917 0.047091 0.060824 0.022657 0.027976 0.051104 0.036199 0.041088 0.161479 0.009957 0.015970 0.071764 0.063923 0.049964 0.046634 0.059797 0.042106 0.007183 0.170817 0.083814 0.041441 0.015816 0.170817 0.052104 0.021316 0.023029 0.170817 0.070747 0.239144 +0.009807 +0.048248 0.003570 0.042635 0.082086 0.033522 0.108304 0.037995 0.007856 0.053240 0.038929 0.036224 0.127652 0.052489 0.019686 0.072907 0.071760 0.017091 0.081941 0.053376 0.031133 0.060509 0.102490 0.065933 0.003898 0.059640 0.239144 0.059032 0.034143 0.003982 0.102490 0.063171 0.273307 +0.013299 +0.011549 0.038989 0.065320 0.034460 0.032988 0.062827 0.031863 0.054881 0.070853 0.065918 0.044195 0.061251 0.019480 0.045971 0.091772 0.065990 0.028821 0.070045 0.048807 0.021991 0.011935 0.239144 0.090970 0.051630 0.025488 0.102490 0.063549 0.000399 0.066125 0.204980 0.071889 0.341634 +0 +0.009205 0.000421 0.041737 0.055361 0.037437 0.051321 0.028078 0.041100 0.058903 0.080673 0.035923 0.632770 0.056634 0.049380 0.049230 0.057009 0.044825 0.274758 0.045907 0.029941 0.061105 0.204980 0.063462 0.059517 0.038314 0.136654 0.099043 0.011762 0.048980 0.102490 0.061003 0.239144 +0.704583 +0.053416 0.047516 0.078272 0.132578 0.034480 0.364979 0.032272 0.010181 0.051051 0.050380 0.020477 0.103170 0.042882 0.035435 0.063326 0.041139 0.046216 0.319004 0.054830 0.062194 0.017485 0.239144 0.098327 0.047554 0.026659 0.239144 0.072694 0.032489 0.062317 0.239144 0.071572 0.273307 +0.485442 +0.013613 0.030724 0.054480 0.082738 0.020287 0.091484 0.049888 0.052776 0.046857 0.034920 0.044447 0.190627 0.023342 0.027748 0.041617 0.059485 0.037638 0.328046 0.059852 0.058162 0.025412 0.273307 0.058281 0.066209 0.027229 0.170817 0.092232 0.063055 0.008874 0.136654 0.078213 0.307471 +0.368711 +0.060055 0.008045 0.064003 0.078280 0.046522 0.144850 0.023956 0.050519 0.091629 0.043383 0.036591 0.072956 0.013210 0.043086 0.064167 0.041685 0.043688 0.045804 0.047894 0.055552 0.029063 0.136654 0.071993 0.027299 0.062749 0.102490 0.095761 0.066536 0.055138 0.204980 0.086421 0.341634 +0.171166 +0.056315 0.007333 0.056128 0.065659 0.022596 0.190721 0.005928 0.050087 0.038422 0.069455 0.020120 0.060968 0.006989 0.049560 0.037684 0.128394 0.034686 0.133835 0.049712 0.043202 0.058928 0.136654 0.060055 0.026170 0.019972 0.170817 0.086218 0.035436 0.051925 0.136654 0.066556 0.204980 +0.144071 +0.022703 0.022372 0.087064 0.038379 0.028582 0.048721 0.020733 0.006527 0.058717 0.066336 0.021844 0.081221 0.019891 0.025805 0.127574 0.067501 0.017330 0.183625 0.053018 0.037802 0.001177 0.136654 0.058920 0.028676 0.042238 0.102490 0.072953 0.011610 0.022583 0.102490 0.100649 0.204980 +0.017456 +0.042014 0.008683 0.098176 0.035710 0.032365 0.135921 0.028453 0.053884 0.055192 0.048626 0.029433 0.311642 0.009873 0.037612 0.036903 0.042330 0.043831 0.051110 0.042318 0.016979 0.061301 0.102490 0.054440 0.003339 0.032388 0.136654 0.073382 0.052086 0.066766 0.102490 0.055219 0.239144 +0.662050 +0.010359 0.028650 0.035747 0.068877 0.023439 0.184353 0.045911 0.035313 0.088782 0.116371 0.041883 0.182043 0.066454 0.026551 0.045661 0.083085 0.047532 0.331365 0.066734 0.021940 0.045935 0.102490 0.075769 0.029150 0.045297 0.239144 0.084084 0.026606 0.062006 0.170817 0.060856 0.307471 +0.098789 +0.028948 0.059398 0.051372 0.043950 0.023547 0.247689 0.042221 0.005515 0.036664 0.226600 0.023538 0.154453 0.064260 0.056259 0.040997 0.069719 0.022576 0.043044 0.043065 0.049022 0.046738 0.170817 0.061926 0.019564 0.052343 0.239144 0.092944 0.025177 0.000795 0.170817 0.054354 0.273307 +0.148618 +0.018700 0.058780 0.041878 0.060560 0.034876 0.146398 0.050506 0.028378 0.055898 0.084287 0.034456 0.193541 0.002725 0.061591 0.077716 0.111327 0.020619 0.080225 0.041074 0.038357 0.011807 0.170817 0.088664 0.058984 0.013980 0.102490 0.064122 0.052477 0.034355 0.136654 0.079209 0.273307 +0.001253 +0.034527 0.037232 0.039199 0.106807 0.021728 0.214669 0.003720 0.023839 0.084594 0.049768 0.018586 0.044809 0.032397 0.015196 0.038762 0.037718 0.027910 0.119942 0.044179 0.047615 0.027008 0.204980 0.093464 0.008156 0.061070 0.204980 0.057264 0.006085 0.003800 0.136654 0.085757 0.239144 +0.015697 +0.038810 0.050360 0.116002 0.047190 0.043551 0.040631 0.020973 0.050350 0.096244 0.052726 0.037885 0.208137 0.005417 0.068248 0.051392 0.092641 0.039392 0.099928 0.060308 0.039542 0.049757 0.239144 0.078703 0.000141 0.002396 0.239144 0.096877 0.015046 0.068293 0.136654 0.056937 0.273307 +0.122808 +0.025421 0.036661 0.036692 0.154501 0.037670 0.048330 0.038414 0.032686 0.034943 0.099859 0.024267 0.066839 0.055369 0.022872 0.083850 0.038626 0.024431 0.431975 0.038904 0.042932 0.029097 0.170817 0.070392 0.047778 0.033385 0.102490 0.096741 0.036778 0.046351 0.136654 0.102312 0.204980 +0.034715 +0.063659 0.037237 0.194162 0.086488 0.025272 0.053591 0.034648 0.039948 0.048128 0.042831 0.042523 0.553313 0.041954 0.027848 0.133185 0.071451 0.034517 0.083234 0.045832 0.010747 0.036371 0.204980 0.067899 0.007075 0.018477 0.170817 0.091986 0.057491 0.062518 0.239144 0.100478 0.273307 +0.939223 +0.006927 0.040442 0.034530 0.074217 0.039372 0.262159 0.034803 0.057256 0.076066 0.038902 0.024879 0.202098 0.003926 0.024366 0.051276 0.080380 0.045247 0.078678 0.056983 0.020742 0.027506 0.102490 0.097235 0.038931 0.014528 0.136654 0.100141 0.051994 0.006163 0.170817 0.066851 0.204980 +0.117592 +0.041914 0.059421 0.044871 0.036957 0.048475 0.070013 0.033775 0.043560 0.120721 0.092744 0.045932 0.043012 0.007783 0.008063 0.100257 0.043090 0.038211 0.062413 0.046545 0.013969 0.054676 0.307471 0.085665 0.022351 0.027806 0.239144 0.065967 0.062205 0.042321 0.136654 0.096744 0.341634 +0 +0.012015 0.021751 0.071732 0.058011 0.030299 0.053289 0.039102 0.006437 0.049470 0.044994 0.038172 0.176056 0.055537 0.011147 0.058184 0.038712 0.029826 0.046626 0.046193 0.043699 0.040847 0.239144 0.053233 0.029840 0.030561 0.273307 0.055108 0.002815 0.026186 0.170817 0.066760 0.307471 +0.090473 +0.006181 0.010855 0.047967 0.050362 0.039710 0.094968 0.004122 0.017507 0.152795 0.056609 0.034525 0.255464 0.022350 0.027941 0.035514 0.067462 0.050915 0.179729 0.058744 0.020727 0.028422 0.204980 0.081222 0.022613 0.024892 0.239144 0.073663 0.005467 0.060713 0.102490 0.076914 0.307471 +0.121856 +0.054486 0.055412 0.117738 0.058343 0.029935 0.095476 0.056027 0.042840 0.047934 0.041225 0.049785 0.040376 0.026935 0.051004 0.034685 0.092190 0.045584 0.042830 0.055391 0.019404 0.024071 0.204980 0.077921 0.036832 0.046967 0.170817 0.069691 0.007737 0.008554 0.102490 0.071412 0.239144 +0.038290 +0.062696 0.004921 0.074073 0.034955 0.038387 0.054625 0.003326 0.053484 0.039652 0.065455 0.020155 0.064018 0.061557 0.024908 0.038056 0.061310 0.028977 0.063398 0.051874 0.067775 0.055160 0.273307 0.073311 0.015813 0.033337 0.239144 0.101184 0.032135 0.050952 0.136654 0.083814 0.307471 +0 +0.007246 0.050758 0.070626 0.050540 0.019946 0.237525 0.065133 0.031267 0.036210 0.050473 0.032828 0.265818 0.035560 0.006464 0.072913 0.049912 0.042056 0.177596 0.054321 0.041510 0.005202 0.102490 0.094694 0.050822 0.065607 0.239144 0.081185 0.043006 0.006409 0.204980 0.098983 0.273307 +0.142528 +0.022716 0.064554 0.121067 0.081602 0.019443 0.049082 0.034767 0.003723 0.081195 0.036259 0.038855 0.284994 0.024282 0.053390 0.069952 0.049418 0.050740 0.112688 0.054905 0.008389 0.000091 0.170817 0.083576 0.061708 0.033398 0.136654 0.098982 0.047237 0.030687 0.170817 0.101883 0.204980 +0.280260 +0.001949 0.023485 0.045981 0.063272 0.033238 0.086905 0.022734 0.050709 0.045994 0.039523 0.024392 0.294859 0.063586 0.013515 0.061561 0.065634 0.020164 0.093478 0.044674 0.032782 0.004884 0.102490 0.082711 0.038605 0.033116 0.102490 0.058848 0.038937 0.047549 0.136654 0.052115 0.204980 +0.323269 +0.020734 0.038509 0.091106 0.038088 0.032816 0.115547 0.053275 0.033668 0.050825 0.071486 0.024582 0.064008 0.004134 0.039872 0.034190 0.034846 0.030326 0.090321 0.049208 0.036444 0.051383 0.204980 0.079321 0.034579 0.039080 0.102490 0.069196 0.033071 0.056081 0.170817 0.094830 0.273307 +0 +0.046566 0.029327 0.097770 0.073680 0.020934 0.080936 0.059775 0.009169 0.055579 0.036460 0.036963 0.160610 0.046032 0.026872 0.049692 0.079240 0.040545 0.209103 0.054686 0.004811 0.048609 0.273307 0.093324 0.030052 0.016538 0.204980 0.082486 0.037890 0.051492 0.273307 0.072448 0.307471 +0.076552 +0.036068 0.054216 0.103044 0.035292 0.022312 0.135424 0.033909 0.037550 0.130560 0.038671 0.027897 0.040176 0.015303 0.013364 0.054226 0.064129 0.025419 0.240020 0.053279 0.044435 0.015566 0.204980 0.082831 0.021568 0.058873 0.102490 0.088209 0.006857 0.038814 0.102490 0.096379 0.239144 +0.127321 +0.022251 0.000792 0.036052 0.068963 0.024937 0.085713 0.032181 0.009770 0.107840 0.049014 0.037938 0.047803 0.030591 0.056879 0.035137 0.055652 0.047701 0.174835 0.063115 0.029995 0.062256 0.102490 0.075036 0.035983 0.066851 0.170817 0.069448 0.022484 0.048458 0.136654 0.093864 0.204980 +0 +0.018252 0.035930 0.039349 0.116094 0.039367 0.109168 0.034537 0.040541 0.035430 0.063247 0.050659 0.050902 0.032130 0.052264 0.045117 0.066324 0.048461 0.226503 0.047199 0.027246 0.040854 0.170817 0.086673 0.047449 0.009976 0.136654 0.074433 0.018543 0.004762 0.102490 0.077582 0.273307 +0.380659 +0.041361 0.048863 0.063844 0.042996 0.024661 0.166440 0.067234 0.015445 0.172835 0.048494 0.039686 0.187099 0.029059 0.052022 0.037992 0.143729 0.049431 0.069744 0.051364 0.008567 0.017324 0.239144 0.069684 0.066677 0.008966 0.102490 0.065057 0.017401 0.046434 0.102490 0.095299 0.273307 +0.050639 +0.000249 0.005032 0.082943 0.036295 0.037770 0.105179 0.052575 0.057947 0.075053 0.035112 0.026520 0.478723 0.032137 0.024774 0.040109 0.059017 0.026871 0.090062 0.060159 0.056985 0.000097 0.136654 0.085182 0.015372 0.009401 0.102490 0.080662 0.049850 0.056623 0.170817 0.093924 0.239144 +0.198174 +0.033634 0.000650 0.099568 0.075349 0.031891 0.036699 0.020828 0.013552 0.046105 0.062237 0.047828 0.198303 0.034703 0.047678 0.036809 0.073611 0.021400 0.087931 0.044803 0.035088 0.018495 0.170817 0.096639 0.049768 0.026625 0.170817 0.100415 0.027493 0.067799 0.170817 0.084443 0.307471 +0.002245 +0.018477 0.039060 0.042279 0.102899 0.030656 0.225374 0.013731 0.045537 0.128704 0.042134 0.029744 0.125467 0.043683 0.000133 0.092814 0.037637 0.029483 0.059148 0.064457 0.053232 0.034075 0.102490 0.078657 0.047526 0.034604 0.170817 0.094252 0.009093 0.037185 0.170817 0.055901 0.204980 +0.090925 +0.000745 0.045754 0.095421 0.085317 0.048454 0.076521 0.060781 0.066948 0.095042 0.041392 0.029478 0.146744 0.022305 0.058708 0.036002 0.112315 0.049001 0.313136 0.044251 0.007133 0.043010 0.102490 0.082407 0.013796 0.023135 0.204980 0.082257 0.011929 0.043184 0.170817 0.092206 0.273307 +0.014661 +0.042235 0.059793 0.084564 0.041461 0.038355 0.222579 0.002308 0.017425 0.055801 0.037546 0.043101 0.060610 0.061458 0.004516 0.104008 0.067436 0.025654 0.190969 0.043457 0.007306 0.012591 0.102490 0.083595 0.037407 0.029556 0.204980 0.085917 0.031157 0.067102 0.102490 0.061412 0.273307 +0.091246 +0.037722 0.014893 0.051952 0.087124 0.025785 0.156290 0.042422 0.057237 0.065062 0.141613 0.038487 0.081765 0.042726 0.065983 0.036965 0.062710 0.020820 0.096037 0.044993 0.028493 0.051776 0.170817 0.051353 0.059797 0.015539 0.170817 0.063404 0.045589 0.013722 0.170817 0.073903 0.204980 +0.080925 +0.013196 0.032205 0.042047 0.073505 0.019434 0.054255 0.034079 0.043692 0.038067 0.039054 0.047490 0.034896 0.049056 0.049124 0.061135 0.045423 0.033253 0.273688 0.053913 0.038757 0.031042 0.102490 0.066808 0.014334 0.003211 0.239144 0.094135 0.004657 0.036200 0.136654 0.060523 0.273307 +0.522351 +0.002052 0.019762 0.045997 0.042419 0.042490 0.154180 0.017716 0.020395 0.092830 0.037369 0.027459 0.055077 0.021229 0.006583 0.145796 0.064693 0.050517 0.076086 0.048167 0.048058 0.013363 0.102490 0.083922 0.012546 0.049917 0.204980 0.064632 0.046398 0.068227 0.170817 0.062540 0.341634 +0 +0.019539 0.008466 0.048847 0.105253 0.027431 0.107000 0.019985 0.055505 0.042069 0.038013 0.027482 0.321744 0.031323 0.067487 0.059331 0.042070 0.028576 0.051496 0.043761 0.036696 0.046034 0.136654 0.076894 0.064833 0.042774 0.170817 0.077865 0.040920 0.035803 0.136654 0.092131 0.273307 +0.528591 +0.055170 0.048991 0.142135 0.052511 0.032855 0.044917 0.002715 0.066533 0.062710 0.069696 0.039370 0.201431 0.052448 0.058936 0.075293 0.054990 0.033877 0.069497 0.046736 0.021071 0.022903 0.102490 0.101904 0.030549 0.018534 0.170817 0.091546 0.053283 0.060378 0.136654 0.053385 0.273307 +0.008677 +0.051891 0.049812 0.050752 0.051337 0.041674 0.310366 0.036980 0.033543 0.106612 0.099775 0.043198 0.219105 0.028813 0.026580 0.060700 0.108501 0.042886 0.048693 0.045524 0.060109 0.004179 0.204980 0.086293 0.019908 0.013364 0.102490 0.070152 0.015685 0.001689 0.204980 0.058309 0.273307 +0.317840 +0.038972 0.059771 0.096474 0.047733 0.027359 0.036511 0.026143 0.060775 0.104122 0.087631 0.038427 0.043488 0.042166 0.024294 0.038599 0.053648 0.019648 0.040549 0.058931 0.000960 0.037849 0.136654 0.096488 0.041113 0.007549 0.136654 0.084202 0.020893 0.012850 0.239144 0.079232 0.273307 +0 +0.032295 0.009535 0.066939 0.067186 0.021959 0.041356 0.000555 0.048140 0.072107 0.133080 0.037132 0.183923 0.036847 0.066357 0.056598 0.034371 0.023248 0.148071 0.043764 0.033543 0.015236 0.136654 0.091209 0.029182 0.015769 0.170817 0.056988 0.067592 0.052536 0.170817 0.090432 0.307471 +0.066275 +0.028899 0.043628 0.047707 0.039670 0.041460 0.060575 0.000683 0.010145 0.092654 0.091146 0.048300 0.090088 0.041317 0.049591 0.056685 0.071384 0.020539 0.079137 0.043396 0.022488 0.040787 0.136654 0.095691 0.042459 0.036779 0.204980 0.100439 0.028082 0.043059 0.204980 0.057539 0.239144 +0.013108 +0.030662 0.067345 0.051610 0.044957 0.046360 0.050991 0.044145 0.067046 0.058643 0.038369 0.027266 0.225500 0.060609 0.031983 0.052917 0.039290 0.028639 0.049536 0.049686 0.057011 0.037135 0.170817 0.090671 0.014203 0.030723 0.170817 0.053754 0.047731 0.064681 0.102490 0.056718 0.204980 +0.058699 +0.035849 0.044270 0.034948 0.109392 0.035484 0.230629 0.033793 0.009036 0.053773 0.098878 0.028611 0.355805 0.018941 0.047014 0.035398 0.077713 0.033463 0.218412 0.049343 0.050655 0.006158 0.102490 0.086355 0.030690 0.046737 0.170817 0.074067 0.011994 0.030567 0.136654 0.097708 0.273307 +0.353153 +0.064418 0.057977 0.036144 0.058233 0.032386 0.072589 0.013677 0.002816 0.070774 0.069520 0.031017 0.102360 0.052533 0.021161 0.101983 0.059101 0.033117 0.045738 0.057262 0.011423 0.045273 0.136654 0.071106 0.044992 0.016912 0.102490 0.067064 0.006306 0.058954 0.170817 0.058928 0.204980 +0.005076 +0.038949 0.025526 0.035429 0.070825 0.045586 0.043303 0.001461 0.034987 0.039056 0.172048 0.022241 0.156120 0.026109 0.047208 0.060547 0.104711 0.029685 0.034717 0.064583 0.058456 0.065844 0.102490 0.083162 0.040514 0.052027 0.102490 0.075315 0.025924 0.009220 0.170817 0.088945 0.204980 +0.060281 +0.002881 0.046560 0.052335 0.116401 0.045320 0.148470 0.045072 0.060414 0.048458 0.068249 0.042098 0.038774 0.030657 0.046380 0.079354 0.085219 0.028703 0.245436 0.048649 0.047850 0.066895 0.102490 0.079479 0.020011 0.046651 0.204980 0.067493 0.058126 0.029532 0.204980 0.069309 0.307471 +0.002485 +0.024749 0.014824 0.081843 0.060548 0.024684 0.236461 0.046068 0.043205 0.041368 0.036846 0.046302 0.037989 0.015928 0.038722 0.038719 0.038482 0.049521 0.106090 0.053384 0.054517 0.020116 0.204980 0.069824 0.053653 0.026976 0.136654 0.074729 0.027856 0.058778 0.102490 0.055113 0.307471 +0.027640 +0.014870 0.005040 0.076485 0.168633 0.032491 0.128732 0.037970 0.039392 0.071397 0.058845 0.041109 0.234429 0.019641 0.040511 0.037041 0.035242 0.051049 0.138170 0.050363 0.021600 0.035229 0.204980 0.081859 0.035284 0.022253 0.102490 0.054979 0.032404 0.029558 0.204980 0.062768 0.239144 +0.384301 +0.031890 0.009044 0.037382 0.041561 0.043309 0.125604 0.030655 0.038464 0.044971 0.071829 0.040210 0.242711 0.067674 0.032223 0.054060 0.080940 0.021793 0.238108 0.045267 0.059838 0.052654 0.170817 0.066286 0.039098 0.057846 0.204980 0.074373 0.050751 0.042447 0.170817 0.091926 0.273307 +0.299227 +0.006154 0.028396 0.069978 0.109974 0.025192 0.075409 0.063386 0.034692 0.035441 0.038094 0.032815 0.045411 0.031665 0.003275 0.040725 0.073587 0.031636 0.039667 0.054949 0.007161 0.028925 0.136654 0.100542 0.012966 0.029660 0.239144 0.092403 0.013964 0.006056 0.239144 0.089813 0.341634 +0 +0.018239 0.043505 0.065148 0.053733 0.044805 0.253727 0.039429 0.043949 0.036190 0.048885 0.027482 0.129240 0.013380 0.067442 0.058831 0.140530 0.017908 0.082805 0.053489 0.020700 0.018413 0.136654 0.101935 0.014722 0.014912 0.102490 0.090750 0.007354 0.016868 0.170817 0.071343 0.273307 +0.152901 +0.039855 0.048145 0.079630 0.045997 0.035440 0.332313 0.025350 0.044574 0.039834 0.034616 0.020947 0.073930 0.037909 0.029847 0.060738 0.053005 0.030307 0.474939 0.045713 0.011042 0.035183 0.136654 0.102075 0.004482 0.046438 0.170817 0.083344 0.028732 0.021731 0.273307 0.079903 0.307471 +0.043051 +0.031441 0.006212 0.093612 0.060643 0.021573 0.059759 0.015352 0.002265 0.097071 0.036172 0.020274 0.265090 0.013125 0.046530 0.090259 0.079250 0.032955 0.055939 0.047423 0.002129 0.001260 0.102490 0.092357 0.035535 0.014133 0.170817 0.068994 0.031059 0.031661 0.102490 0.062039 0.307471 +0.012935 +0.030854 0.006617 0.093474 0.035316 0.050291 0.163113 0.029676 0.046216 0.073168 0.086794 0.046045 0.053065 0.012258 0.028815 0.120279 0.045980 0.027297 0.074370 0.044612 0.004443 0.037024 0.170817 0.063404 0.049128 0.057845 0.136654 0.096594 0.049899 0.017206 0.136654 0.079369 0.273307 +0 +0.026593 0.053944 0.089853 0.145306 0.027884 0.066136 0.066641 0.052453 0.095570 0.088128 0.050353 0.126004 0.029613 0.013425 0.072156 0.069435 0.047632 0.158119 0.056593 0.041189 0.030809 0.136654 0.080561 0.037776 0.028248 0.136654 0.060919 0.009474 0.038426 0.170817 0.095939 0.239144 +0.046760 +0.055709 0.046198 0.041559 0.140973 0.034463 0.095772 0.064771 0.039084 0.106958 0.140797 0.048464 0.140871 0.003867 0.006198 0.089024 0.125785 0.047683 0.114990 0.044204 0.028137 0.057107 0.273307 0.053710 0.035665 0.050257 0.273307 0.080975 0.067824 0.006984 0.102490 0.087151 0.307471 +0.154686 +0.049565 0.050681 0.049619 0.063241 0.020243 0.120862 0.003612 0.026687 0.045150 0.068222 0.021242 0.109343 0.047650 0.036671 0.061594 0.058401 0.040509 0.092122 0.046999 0.007478 0.060112 0.170817 0.092611 0.064350 0.057991 0.102490 0.066150 0.056460 0.052775 0.170817 0.087267 0.204980 +0.015311 +0.055480 0.004400 0.044200 0.038210 0.039165 0.226751 0.034708 0.034273 0.046699 0.058705 0.050204 0.379490 0.002581 0.057770 0.051548 0.040554 0.027126 0.141739 0.056267 0.010718 0.063275 0.102490 0.098598 0.064088 0.000323 0.204980 0.095526 0.035039 0.037859 0.204980 0.101950 0.341634 +0.133893 +0.035688 0.040664 0.040527 0.052887 0.043911 0.203270 0.064344 0.042289 0.064071 0.061488 0.018446 0.243618 0.042468 0.001248 0.041080 0.045083 0.040521 0.380269 0.058722 0.003550 0.011544 0.239144 0.066263 0.053791 0.031529 0.102490 0.053160 0.033870 0.059538 0.307471 0.080268 0.341634 +0.710145 +0.006662 0.068203 0.053903 0.043323 0.048499 0.679047 0.017459 0.021969 0.054390 0.185892 0.024714 0.107307 0.013619 0.065817 0.042035 0.034343 0.024587 0.116401 0.057120 0.039636 0.010175 0.170817 0.073456 0.014116 0.006770 0.239144 0.080542 0.007540 0.060133 0.102490 0.100513 0.273307 +0.534992 +0.006180 0.012840 0.044116 0.047131 0.029142 0.147805 0.062921 0.045916 0.067182 0.038045 0.041622 0.246524 0.017261 0.039266 0.059442 0.034389 0.018829 0.202839 0.049536 0.006838 0.046639 0.102490 0.080406 0.016046 0.025683 0.102490 0.059415 0.035798 0.045851 0.102490 0.059540 0.341634 +0.232101 +0.067099 0.060797 0.040651 0.078156 0.017628 0.054297 0.037219 0.008335 0.041132 0.038164 0.017474 0.080312 0.012017 0.007912 0.071819 0.047834 0.045394 0.051892 0.055822 0.052742 0.021549 0.170817 0.078424 0.060162 0.027874 0.136654 0.074219 0.062491 0.032673 0.102490 0.102355 0.204980 +0.007089 +0.013639 0.011363 0.088455 0.068020 0.039767 0.397001 0.014244 0.035985 0.059981 0.059016 0.038072 0.435937 0.003875 0.059176 0.039163 0.053606 0.031039 0.286025 0.053952 0.037792 0.026810 0.102490 0.057816 0.042988 0.016241 0.102490 0.089001 0.048327 0.050585 0.170817 0.072954 0.239144 +0.600955 +0.045758 0.023948 0.065813 0.044080 0.024498 0.207952 0.040867 0.056507 0.076023 0.062506 0.028469 0.262087 0.034435 0.043511 0.046479 0.064352 0.030224 0.118425 0.062639 0.015790 0.028699 0.273307 0.057772 0.011237 0.038947 0.307471 0.083566 0.067955 0.000375 0.102490 0.068515 0.341634 +0.182069 +0.008199 0.046061 0.086202 0.036734 0.024789 0.181593 0.002714 0.009943 0.098310 0.079360 0.042813 0.069188 0.028029 0.012101 0.205012 0.038774 0.017483 0.555285 0.058531 0.005506 0.026328 0.170817 0.084958 0.058523 0.008872 0.136654 0.071250 0.018567 0.043919 0.170817 0.082959 0.307471 +0.005871 +0.039409 0.063256 0.034277 0.035944 0.039017 0.080557 0.009039 0.047624 0.045812 0.047607 0.041153 0.036372 0.055910 0.034060 0.079297 0.082989 0.048865 0.087332 0.056089 0.062994 0.003463 0.204980 0.092153 0.023312 0.057750 0.102490 0.058371 0.051994 0.005145 0.136654 0.085505 0.239144 +0 +0.060317 0.003547 0.048459 0.116041 0.043566 0.068869 0.037059 0.049531 0.065778 0.037500 0.045356 0.117486 0.018811 0.013995 0.043180 0.073970 0.046177 0.126177 0.057815 0.010715 0.067998 0.102490 0.087712 0.038633 0.056088 0.102490 0.061802 0.043838 0.048687 0.136654 0.098867 0.239144 +0.001383 +0.055502 0.057041 0.072345 0.034552 0.031345 0.131185 0.015185 0.027601 0.107221 0.036220 0.023245 0.155086 0.046298 0.005555 0.042122 0.100097 0.039076 0.177231 0.051962 0.013739 0.061855 0.204980 0.095143 0.034213 0.026644 0.204980 0.076937 0.061345 0.041364 0.136654 0.066125 0.239144 +0.149167 +0.059237 0.031742 0.070271 0.149853 0.033468 0.143069 0.032905 0.011909 0.048675 0.045206 0.034887 0.141387 0.008780 0.043108 0.037677 0.167663 0.034268 0.110857 0.058743 0.067234 0.046225 0.102490 0.063341 0.051449 0.026786 0.170817 0.054442 0.062919 0.019519 0.170817 0.073069 0.307471 +0.027518 +0.067365 0.030066 0.061389 0.035116 0.041773 0.106505 0.047537 0.047079 0.037600 0.057584 0.023676 0.228937 0.061810 0.045277 0.036077 0.062418 0.032713 0.199591 0.062352 0.045283 0.021162 0.170817 0.093750 0.063579 0.048315 0.239144 0.102298 0.055820 0.016907 0.273307 0.093078 0.307471 +0.141088 +0.059961 0.031179 0.064819 0.040186 0.045289 0.119946 0.051595 0.055050 0.060921 0.135136 0.021996 0.049925 0.037645 0.026818 0.056592 0.091170 0.042075 0.100041 0.048268 0.056165 0.032494 0.102490 0.081677 0.008940 0.005770 0.102490 0.077415 0.038787 0.008035 0.204980 0.085068 0.239144 +0.004255 +0.040415 0.028978 0.067446 0.049030 0.020769 0.057130 0.038166 0.015212 0.109693 0.053653 0.024743 0.049226 0.012157 0.046274 0.067846 0.047759 0.046148 0.111661 0.040289 0.016305 0.024388 0.239144 0.087140 0.020760 0.022413 0.239144 0.077875 0.028365 0.036974 0.204980 0.058694 0.341634 +0 +0.001744 0.009325 0.122403 0.040745 0.025905 0.118217 0.010799 0.028773 0.047403 0.073995 0.030274 0.308126 0.000710 0.053180 0.051662 0.056185 0.032940 0.043079 0.040238 0.036074 0.016531 0.239144 0.095445 0.061775 0.023137 0.204980 0.055565 0.030555 0.049706 0.170817 0.057367 0.307471 +0.179875 +0.007214 0.067986 0.054788 0.035732 0.046992 0.056107 0.031022 0.058570 0.183128 0.034597 0.024084 0.240573 0.012688 0.021245 0.079750 0.043993 0.040768 0.064981 0.044650 0.037376 0.011985 0.136654 0.070811 0.046179 0.031758 0.170817 0.076731 0.034784 0.029658 0.204980 0.073980 0.239144 +0.081717 +0.002544 0.063876 0.135974 0.054330 0.022306 0.043661 0.030933 0.038801 0.051544 0.057688 0.017641 0.044690 0.033156 0.023021 0.068831 0.048117 0.045600 0.231546 0.052463 0.003239 0.063617 0.136654 0.064258 0.023929 0.032466 0.102490 0.064531 0.018685 0.014541 0.239144 0.090286 0.273307 +0.071247 +0.064242 0.002533 0.135471 0.104512 0.024241 0.202013 0.017122 0.019121 0.059314 0.073821 0.029818 0.100581 0.049430 0.026789 0.068292 0.092652 0.038555 0.040239 0.040153 0.056483 0.017786 0.136654 0.083708 0.042074 0.045728 0.136654 0.085077 0.008210 0.066693 0.102490 0.064218 0.204980 +0.001306 +0.005741 0.050628 0.036435 0.074490 0.028268 0.045808 0.008149 0.039534 0.051063 0.042780 0.022460 0.078589 0.049599 0.017327 0.094384 0.153193 0.049006 0.132924 0.052208 0.067565 0.047498 0.170817 0.091492 0.008231 0.044042 0.102490 0.098189 0.013198 0.013188 0.136654 0.086352 0.204980 +0.028650 +0.057571 0.002361 0.077493 0.055294 0.019272 0.129901 0.000611 0.022088 0.066025 0.080512 0.023488 0.132888 0.003925 0.058848 0.064515 0.058178 0.024047 0.145960 0.060959 0.021117 0.024311 0.136654 0.083279 0.000658 0.053759 0.170817 0.088925 0.036413 0.027454 0.136654 0.055299 0.204980 +0.131667 +0.067765 0.012859 0.038098 0.175319 0.025552 0.102756 0.031138 0.032812 0.041416 0.045297 0.046155 0.055898 0.018301 0.027986 0.092559 0.147168 0.043035 0.053998 0.039400 0.037580 0.002987 0.136654 0.067214 0.033398 0.037810 0.102490 0.092925 0.003055 0.020406 0.170817 0.052504 0.204980 +0.004199 +0.014607 0.050210 0.071832 0.051936 0.042996 0.059650 0.025684 0.010853 0.064485 0.233575 0.023956 0.045892 0.023604 0.012662 0.055029 0.051403 0.047770 0.288688 0.040479 0.004754 0.058579 0.136654 0.057441 0.027128 0.007738 0.136654 0.089192 0.048937 0.044765 0.102490 0.097101 0.204980 +0.034399 +0.018332 0.018949 0.037350 0.095909 0.034379 0.087857 0.050475 0.043277 0.078426 0.119689 0.044118 0.119819 0.023570 0.008631 0.042603 0.043437 0.036407 0.170568 0.050543 0.046881 0.006385 0.136654 0.079558 0.043293 0.008297 0.136654 0.060308 0.008463 0.005671 0.170817 0.054056 0.239144 +0.121885 +0.047477 0.054781 0.039013 0.039136 0.047022 0.141748 0.035860 0.018992 0.060777 0.082837 0.038334 0.187067 0.057525 0.003981 0.063168 0.049395 0.037977 0.101234 0.051036 0.014197 0.049363 0.170817 0.098969 0.042001 0.014437 0.102490 0.071035 0.011936 0.049436 0.102490 0.079568 0.239144 +0.056646 +0.019052 0.025382 0.038447 0.046596 0.017337 0.116606 0.052273 0.004206 0.043395 0.062821 0.040586 0.091437 0.065807 0.006739 0.126609 0.087157 0.022392 0.110201 0.047335 0.050101 0.030537 0.170817 0.087034 0.060210 0.036336 0.102490 0.080193 0.031704 0.025914 0.204980 0.079569 0.239144 +0.008755 +0.026148 0.008979 0.041193 0.046561 0.018636 0.039817 0.019539 0.032980 0.131291 0.038592 0.039774 0.111014 0.024893 0.037627 0.075497 0.067723 0.050829 0.138618 0.053729 0.053391 0.005150 0.307471 0.084934 0.038040 0.003403 0.102490 0.094466 0.043409 0.016891 0.170817 0.055957 0.341634 +0 +0.051157 0.048392 0.047628 0.064536 0.048456 0.128304 0.065809 0.062550 0.043825 0.048778 0.029449 0.054123 0.006235 0.049346 0.055342 0.059385 0.029811 0.044182 0.053763 0.037336 0.061101 0.102490 0.057024 0.012037 0.067875 0.239144 0.078027 0.061375 0.029668 0.170817 0.064986 0.273307 +0.029379 +0.029299 0.056022 0.109691 0.065259 0.042303 0.050817 0.019035 0.004650 0.041504 0.057544 0.022648 0.260183 0.042197 0.050096 0.052727 0.054453 0.028846 0.044852 0.057919 0.042833 0.011157 0.170817 0.076639 0.034289 0.040201 0.136654 0.087990 0.037526 0.058367 0.239144 0.083374 0.341634 +0.018029 +0.057162 0.039829 0.038628 0.057525 0.019345 0.199273 0.038758 0.020453 0.054890 0.059924 0.020601 0.197359 0.019067 0.045141 0.053208 0.059336 0.046947 0.045301 0.044325 0.065701 0.057736 0.136654 0.068681 0.058140 0.029015 0.102490 0.101461 0.020629 0.066796 0.136654 0.084300 0.204980 +0.231357 +0.054627 0.042303 0.070816 0.049902 0.023781 0.335836 0.039903 0.040770 0.070436 0.072852 0.048660 0.111386 0.015092 0.030908 0.069630 0.070672 0.028875 0.126497 0.041588 0.028660 0.026662 0.204980 0.053672 0.009117 0.011022 0.136654 0.070568 0.007468 0.064204 0.273307 0.087868 0.307471 +0.477742 +0.056476 0.014582 0.130980 0.038146 0.024148 0.229131 0.014619 0.045111 0.060175 0.037352 0.037692 0.117040 0.053127 0.002621 0.041175 0.040183 0.026937 0.286168 0.061021 0.048182 0.025242 0.136654 0.072701 0.065989 0.046463 0.136654 0.089891 0.006950 0.046634 0.136654 0.077613 0.204980 +0.403870 +0.053535 0.038174 0.098954 0.081169 0.028513 0.686588 0.026697 0.056720 0.042891 0.244083 0.023464 0.095842 0.004478 0.007235 0.034391 0.080855 0.019236 0.283557 0.055239 0.001701 0.031321 0.136654 0.055856 0.034712 0.001763 0.136654 0.063974 0.028080 0.035432 0.102490 0.080319 0.239144 +0.896305 +0.033759 0.064821 0.035749 0.061935 0.037402 0.089973 0.061766 0.024768 0.089925 0.042976 0.026145 0.056486 0.000887 0.008451 0.197969 0.047732 0.051023 0.063134 0.049094 0.046649 0.060278 0.239144 0.051387 0.062230 0.008906 0.239144 0.079378 0.009898 0.024685 0.239144 0.076607 0.273307 +0.083787 +0.027308 0.016947 0.042132 0.147061 0.028025 0.037902 0.061108 0.002048 0.036326 0.048344 0.044310 0.057547 0.019339 0.008667 0.127152 0.090708 0.019907 0.064033 0.052260 0.045907 0.055362 0.136654 0.051938 0.050896 0.014579 0.239144 0.086239 0.023534 0.025588 0.136654 0.054938 0.307471 +0 +0.046120 0.062758 0.127723 0.062998 0.049747 0.101427 0.003373 0.065998 0.041102 0.071476 0.042547 0.041745 0.052768 0.026247 0.126724 0.034349 0.041591 0.326460 0.043531 0.046869 0.033797 0.136654 0.070188 0.048244 0.036350 0.204980 0.087377 0.026868 0.043835 0.204980 0.070863 0.239144 +0.059398 +0.039798 0.051547 0.049141 0.130308 0.025921 0.122814 0.031476 0.050366 0.125794 0.057382 0.031927 0.121397 0.034047 0.055391 0.079537 0.079145 0.027029 0.045074 0.043189 0.045105 0.060102 0.136654 0.056880 0.004812 0.051544 0.170817 0.099202 0.047789 0.044529 0.170817 0.053998 0.239144 +0.020097 +0.049954 0.025497 0.036167 0.105881 0.043268 0.115686 0.031620 0.016019 0.050878 0.035517 0.030072 0.117170 0.066108 0.057598 0.098799 0.045511 0.017726 0.060242 0.066089 0.034149 0.043601 0.273307 0.097117 0.057472 0.042580 0.307471 0.101015 0.056207 0.003775 0.273307 0.061033 0.341634 +0.001276 +0.003027 0.028228 0.088012 0.038993 0.034683 0.035679 0.025920 0.017846 0.057091 0.067501 0.023069 0.067707 0.033131 0.060560 0.095661 0.055944 0.027479 0.042688 0.062826 0.059418 0.064577 0.102490 0.070102 0.055226 0.014400 0.307471 0.089770 0.049421 0.060668 0.102490 0.056515 0.341634 +0 +0.042753 0.065767 0.040174 0.226321 0.031702 0.359429 0.067462 0.061943 0.135645 0.071918 0.040446 0.049484 0.060467 0.046304 0.035652 0.110359 0.021015 0.088253 0.041757 0.015082 0.018555 0.204980 0.094365 0.065395 0.030287 0.239144 0.084133 0.025572 0.039425 0.204980 0.089859 0.341634 +0 +0.012643 0.047078 0.054469 0.060707 0.030813 0.147902 0.063761 0.040275 0.040956 0.062197 0.017671 0.114604 0.020416 0.054350 0.058773 0.098655 0.027524 0.094570 0.054500 0.066824 0.040972 0.239144 0.094212 0.034089 0.014583 0.273307 0.088197 0.031558 0.028825 0.307471 0.058490 0.341634 +0.012821 +0.014716 0.053684 0.035108 0.065963 0.035315 0.289584 0.061008 0.054946 0.035424 0.042476 0.048878 0.115931 0.027603 0.027480 0.090008 0.042228 0.046241 0.129586 0.038591 0.024432 0.025546 0.136654 0.088211 0.030543 0.014962 0.170817 0.100826 0.057738 0.014846 0.204980 0.055166 0.341634 +0 +0.000075 0.059809 0.074526 0.097665 0.031028 0.054478 0.031260 0.067500 0.043651 0.081111 0.028915 0.158720 0.055218 0.026200 0.042438 0.065607 0.042955 0.062872 0.055639 0.040268 0.058818 0.136654 0.067807 0.001876 0.039362 0.170817 0.062082 0.010559 0.008134 0.102490 0.052236 0.273307 +0.003345 +0.057911 0.007571 0.042254 0.040957 0.022643 0.085421 0.057606 0.030812 0.061331 0.037983 0.032707 0.232851 0.046908 0.002658 0.044380 0.101677 0.033471 0.230583 0.041608 0.047350 0.022699 0.170817 0.081529 0.006618 0.018896 0.136654 0.064108 0.001673 0.057872 0.170817 0.077078 0.239144 +0.802001 +0.030911 0.067461 0.096085 0.035819 0.017855 0.133644 0.025211 0.001217 0.115945 0.053927 0.047765 0.110506 0.063207 0.009604 0.053309 0.114105 0.031860 0.144094 0.058178 0.023444 0.067697 0.136654 0.052455 0.050715 0.060115 0.102490 0.068716 0.016035 0.023252 0.170817 0.081267 0.204980 +0.039821 +0.058289 0.004439 0.034797 0.037553 0.028354 0.100149 0.044913 0.048958 0.034187 0.046040 0.024504 0.144280 0.018213 0.038865 0.131067 0.056093 0.023845 0.048426 0.044523 0.066792 0.064052 0.136654 0.080323 0.018177 0.051713 0.170817 0.089061 0.023906 0.063827 0.136654 0.086379 0.204980 +0.095822 +0.013870 0.060674 0.048461 0.076855 0.046227 0.035065 0.002599 0.025834 0.037807 0.051755 0.047553 0.059880 0.019708 0.040620 0.092658 0.074606 0.028754 0.175631 0.057287 0.049824 0.020820 0.136654 0.081205 0.025488 0.017397 0.204980 0.101469 0.014226 0.063169 0.170817 0.063567 0.239144 +0 +0.067515 0.061138 0.037510 0.040782 0.044429 0.423113 0.058267 0.058478 0.057523 0.127381 0.046039 0.153508 0.059839 0.064507 0.099854 0.035616 0.032345 0.187342 0.050384 0.013841 0.051970 0.136654 0.059862 0.062142 0.050745 0.102490 0.051654 0.009288 0.055648 0.239144 0.080634 0.273307 +0.142984 +0.030020 0.003155 0.047869 0.052606 0.047657 0.111676 0.027128 0.036564 0.134256 0.102804 0.036857 0.042665 0.023161 0.047125 0.100493 0.063611 0.017563 0.188317 0.049367 0.054952 0.050650 0.102490 0.089671 0.003734 0.011244 0.170817 0.087042 0.055315 0.026661 0.273307 0.061031 0.307471 +0.028082 +0.060879 0.035775 0.089327 0.089507 0.039037 0.189011 0.043515 0.025364 0.039948 0.072249 0.029177 0.304245 0.017788 0.054260 0.114412 0.068575 0.040540 0.143360 0.059813 0.052405 0.058492 0.239144 0.070322 0.022866 0.062049 0.102490 0.060217 0.050554 0.017704 0.102490 0.096684 0.273307 +0.186643 +0.006002 0.017007 0.064531 0.058348 0.037796 0.173849 0.046385 0.055059 0.097273 0.051853 0.043856 0.382049 0.000351 0.007799 0.081208 0.036631 0.017188 0.093334 0.048363 0.036911 0.015009 0.170817 0.075193 0.006449 0.047523 0.136654 0.093822 0.026174 0.042800 0.136654 0.064302 0.204980 +0.356071 +0.054226 0.017238 0.067911 0.106653 0.025734 0.117014 0.017110 0.055011 0.043546 0.043231 0.042676 0.079748 0.051678 0.031684 0.084001 0.056739 0.051098 0.061842 0.058874 0.062725 0.021627 0.170817 0.052602 0.052087 0.024355 0.204980 0.087193 0.037776 0.048205 0.136654 0.091781 0.273307 +0.003380 +0.020697 0.051298 0.040850 0.147069 0.040830 0.074687 0.044585 0.006746 0.212018 0.065410 0.045595 0.225501 0.014808 0.056732 0.055240 0.150714 0.021706 0.121264 0.039706 0.038536 0.004683 0.204980 0.070640 0.042116 0.016386 0.102490 0.054289 0.032270 0.060609 0.102490 0.066483 0.239144 +0.134675 +0.052718 0.025321 0.038446 0.054216 0.021735 0.126393 0.015568 0.048745 0.043895 0.072361 0.050029 0.178689 0.028201 0.067987 0.040992 0.096559 0.035685 0.109408 0.047529 0.051823 0.006330 0.204980 0.053873 0.001186 0.065219 0.136654 0.064172 0.013744 0.035415 0.136654 0.078389 0.239144 +0.314954 +0.028334 0.031107 0.102092 0.122276 0.031340 0.121795 0.048336 0.026356 0.049810 0.061920 0.023039 0.127511 0.031162 0.000026 0.113451 0.060947 0.042349 0.262412 0.036103 0.059397 0.033816 0.170817 0.066875 0.004983 0.035564 0.204980 0.053001 0.048395 0.048135 0.239144 0.068571 0.307471 +0 +0.059280 0.014487 0.044732 0.083265 0.040914 0.062419 0.046822 0.060120 0.140880 0.076027 0.026412 0.059896 0.063247 0.039128 0.051379 0.036932 0.040957 0.040999 0.059919 0.026743 0.064452 0.170817 0.082784 0.034678 0.066541 0.170817 0.090519 0.010424 0.005822 0.170817 0.067901 0.239144 +0 +0.022631 0.013897 0.137002 0.061586 0.026955 0.257733 0.022868 0.056371 0.036765 0.039342 0.037907 0.063298 0.041870 0.065665 0.090834 0.041700 0.044452 0.193006 0.053764 0.047543 0.053194 0.307471 0.065340 0.046803 0.007861 0.204980 0.089858 0.033432 0.026411 0.204980 0.092362 0.341634 +0.112810 +0.018842 0.033700 0.056613 0.039605 0.029156 0.062049 0.020209 0.004643 0.059265 0.238942 0.026158 0.042898 0.056211 0.054851 0.042565 0.065245 0.044668 0.138423 0.048635 0.028096 0.038492 0.239144 0.082412 0.015318 0.039156 0.239144 0.093352 0.021973 0.044652 0.170817 0.094659 0.273307 +0.035894 +0.048684 0.063527 0.107214 0.069257 0.017549 0.334353 0.049129 0.065608 0.047536 0.074591 0.041561 0.314734 0.035762 0.055444 0.039042 0.038509 0.041468 0.055990 0.055030 0.066016 0.029080 0.102490 0.080764 0.048479 0.000549 0.170817 0.100596 0.036429 0.033914 0.102490 0.075845 0.204980 +0.278517 +0.006990 0.053295 0.078163 0.063761 0.048644 0.081507 0.042285 0.012528 0.103562 0.039713 0.032134 0.068223 0.044609 0.045406 0.133285 0.049284 0.047521 0.041064 0.052179 0.044843 0.059605 0.170817 0.060160 0.053659 0.033658 0.102490 0.098167 0.043347 0.057863 0.204980 0.052622 0.239144 +0 +0.025633 0.060655 0.098376 0.093319 0.021441 0.121333 0.049701 0.024004 0.060756 0.158473 0.029973 0.460518 0.039582 0.024041 0.071432 0.037014 0.017082 0.061473 0.046882 0.045450 0.011089 0.136654 0.055389 0.020137 0.031625 0.239144 0.072596 0.056746 0.064753 0.204980 0.097629 0.273307 +0.481062 +0.028086 0.030708 0.052409 0.053022 0.043159 0.159797 0.031548 0.049715 0.056417 0.065040 0.026839 0.111792 0.023842 0.037064 0.064224 0.046056 0.023195 0.183175 0.065706 0.020174 0.005588 0.170817 0.078278 0.020991 0.053024 0.273307 0.085545 0.032850 0.058131 0.136654 0.084206 0.307471 +0.048406 +0.062728 0.037457 0.111900 0.038543 0.048723 0.219278 0.026561 0.006578 0.049353 0.053076 0.029646 0.195732 0.009449 0.026787 0.036105 0.039291 0.039651 0.228238 0.055001 0.019637 0.025918 0.170817 0.088901 0.035522 0.053385 0.307471 0.079877 0.047908 0.009210 0.239144 0.055968 0.341634 +0.596255 +0.013744 0.053801 0.068183 0.063785 0.022647 0.042654 0.000571 0.015642 0.041341 0.060555 0.046495 0.861535 0.027384 0.047482 0.068939 0.058352 0.051021 0.595007 0.043187 0.062962 0.014650 0.204980 0.077271 0.056744 0.040808 0.102490 0.073139 0.039124 0.010286 0.204980 0.101140 0.239144 +0.844878 +0.025194 0.017360 0.092923 0.064989 0.031669 0.249326 0.067089 0.041304 0.092711 0.109303 0.029585 0.054453 0.021255 0.023994 0.192567 0.063324 0.040367 0.125459 0.051544 0.054111 0.006919 0.102490 0.081811 0.037438 0.022120 0.136654 0.055065 0.045981 0.041754 0.136654 0.093003 0.204980 +0.028550 +0.003884 0.050379 0.092811 0.139880 0.046381 0.131243 0.054673 0.029232 0.075015 0.039820 0.018411 0.668598 0.056483 0.056646 0.068921 0.086619 0.017311 0.066059 0.044555 0.063528 0.016732 0.102490 0.093284 0.053338 0.055254 0.102490 0.093042 0.016329 0.063696 0.136654 0.080747 0.239144 +0.336198 +0.009885 0.022588 0.083340 0.062717 0.022164 0.038478 0.056798 0.066867 0.205671 0.040116 0.025764 0.166674 0.060998 0.033251 0.064046 0.055446 0.042618 0.141772 0.049631 0.018173 0.030681 0.204980 0.095439 0.006421 0.061716 0.136654 0.088517 0.042281 0.066678 0.204980 0.065213 0.307471 +0 +0.006359 0.024036 0.048263 0.090196 0.040106 0.076046 0.062241 0.042028 0.127299 0.086274 0.043236 0.175874 0.000300 0.028222 0.081029 0.048668 0.019136 0.063638 0.054438 0.003035 0.023773 0.136654 0.098446 0.057045 0.000329 0.170817 0.060309 0.002058 0.041801 0.136654 0.073129 0.273307 +0.004166 +0.018694 0.027335 0.085278 0.057940 0.023172 0.076243 0.002491 0.020814 0.038152 0.102149 0.038851 0.038866 0.003790 0.032204 0.039565 0.037328 0.042443 0.097440 0.048514 0.055163 0.024760 0.102490 0.053350 0.018090 0.044117 0.102490 0.087542 0.015552 0.061738 0.170817 0.074155 0.204980 +0 +0.043837 0.032169 0.061636 0.090545 0.042042 0.131483 0.008981 0.047995 0.068269 0.037631 0.018435 0.320583 0.056710 0.068140 0.097999 0.068276 0.042175 0.151982 0.049385 0.007856 0.016323 0.204980 0.058752 0.028457 0.029542 0.136654 0.095361 0.002013 0.062093 0.102490 0.093268 0.239144 +0.084172 +0.066287 0.018233 0.054108 0.090506 0.033334 0.107248 0.055202 0.044884 0.048957 0.053375 0.023510 0.234359 0.044778 0.050955 0.038672 0.193971 0.023242 0.078284 0.057829 0.044080 0.013980 0.170817 0.101026 0.006466 0.032525 0.239144 0.056245 0.004787 0.034905 0.170817 0.084984 0.307471 +0.087161 +0.039639 0.003770 0.038889 0.043951 0.039514 0.162467 0.018542 0.016966 0.049044 0.068656 0.041936 0.048650 0.019840 0.025529 0.062992 0.059323 0.042857 0.339001 0.051105 0.014342 0.028289 0.102490 0.059331 0.030986 0.032653 0.102490 0.067147 0.049217 0.057884 0.204980 0.059874 0.307471 +0 +0.011294 0.037721 0.041485 0.050682 0.045236 0.096153 0.028914 0.065086 0.146634 0.073271 0.023267 0.185257 0.013956 0.053622 0.112260 0.055728 0.023580 0.489496 0.053185 0.053547 0.048673 0.102490 0.096825 0.037893 0.052543 0.170817 0.080712 0.036752 0.064063 0.170817 0.057858 0.204980 +0.399026 +0.062642 0.009824 0.060292 0.104329 0.050756 0.041602 0.029141 0.019401 0.041314 0.064332 0.024648 0.035902 0.047427 0.005431 0.144335 0.035967 0.050646 0.063173 0.055489 0.054006 0.062952 0.239144 0.098161 0.042390 0.041448 0.273307 0.074991 0.022605 0.030864 0.204980 0.074617 0.307471 +0 +0.041258 0.061644 0.069106 0.059448 0.020147 0.154745 0.000405 0.016392 0.139618 0.048596 0.022823 0.066494 0.049706 0.058390 0.050725 0.047897 0.029902 0.577763 0.048090 0.045407 0.055517 0.136654 0.098300 0.053311 0.010167 0.170817 0.087009 0.051847 0.004819 0.170817 0.083192 0.204980 +0.057602 +0.041620 0.014245 0.038583 0.054759 0.038398 0.117196 0.045913 0.067174 0.060640 0.089340 0.018432 0.046496 0.032858 0.035045 0.076952 0.063217 0.018220 0.038280 0.062317 0.061634 0.040136 0.307471 0.083034 0.025693 0.025262 0.136654 0.064326 0.056063 0.002722 0.136654 0.089335 0.341634 +0 +0.031324 0.026983 0.176880 0.069841 0.048844 0.040070 0.028028 0.005720 0.065749 0.098750 0.033138 0.046756 0.050634 0.059891 0.165657 0.146128 0.029608 0.209141 0.050337 0.031813 0.026864 0.170817 0.064169 0.056862 0.026535 0.170817 0.069775 0.020942 0.032436 0.239144 0.077642 0.273307 +0.016889 +0.054845 0.014927 0.042992 0.073849 0.041105 0.271655 0.025697 0.029021 0.043905 0.048809 0.024305 0.110429 0.032746 0.001924 0.039504 0.042685 0.049199 0.084476 0.055834 0.032448 0.035893 0.102490 0.051353 0.022338 0.004899 0.170817 0.051714 0.034416 0.050513 0.102490 0.089560 0.239144 +0.026602 +0.039438 0.053995 0.099045 0.083360 0.022781 0.125113 0.002889 0.055791 0.080464 0.070831 0.019019 0.040810 0.056166 0.049121 0.099839 0.069560 0.017554 0.147177 0.047489 0.065071 0.054992 0.102490 0.080157 0.052737 0.014089 0.170817 0.070116 0.053831 0.034932 0.273307 0.062429 0.307471 +0.031374 +0.033753 0.042619 0.053116 0.047150 0.037925 0.125788 0.059098 0.042587 0.052745 0.066669 0.031217 0.173125 0.063188 0.046212 0.041573 0.088287 0.024147 0.114135 0.043073 0.063394 0.059982 0.170817 0.065894 0.047926 0.052806 0.204980 0.072448 0.043274 0.003656 0.170817 0.051911 0.273307 +0.056155 +0.029628 0.060732 0.071144 0.058828 0.040316 0.220328 0.029472 0.037263 0.077217 0.063625 0.049288 0.103199 0.007349 0.059970 0.075321 0.046069 0.024680 0.101212 0.056151 0.042099 0.044708 0.102490 0.094267 0.048504 0.018485 0.102490 0.068658 0.007326 0.047194 0.102490 0.089988 0.204980 +0.186896 +0.042730 0.027679 0.047261 0.051508 0.034851 0.265289 0.044614 0.042567 0.074181 0.127587 0.035799 0.066988 0.004646 0.061376 0.056589 0.059783 0.027873 0.354572 0.055875 0.057307 0.049754 0.136654 0.066762 0.034084 0.051166 0.239144 0.065973 0.007059 0.005967 0.204980 0.076397 0.341634 +0.316775 +0.057006 0.035830 0.049570 0.070923 0.022469 0.267061 0.008453 0.034344 0.068626 0.125231 0.037228 0.235240 0.023950 0.063165 0.057970 0.036297 0.031439 0.053525 0.060643 0.001667 0.050052 0.102490 0.063048 0.010657 0.063662 0.136654 0.064231 0.039127 0.064395 0.170817 0.099160 0.204980 +0.201068 +0.043270 0.044379 0.052118 0.072607 0.045366 0.056634 0.054354 0.034133 0.056198 0.089922 0.032434 0.296556 0.031627 0.017215 0.039188 0.155383 0.042461 0.129858 0.043836 0.047596 0.036485 0.136654 0.075493 0.003574 0.037235 0.136654 0.086396 0.065241 0.063556 0.136654 0.051371 0.341634 +0.124066 +0.003651 0.011053 0.074323 0.063220 0.019878 0.050869 0.057040 0.030452 0.060894 0.149162 0.026008 0.245386 0.022799 0.020166 0.052397 0.081933 0.046735 0.107028 0.040616 0.060450 0.026664 0.204980 0.087528 0.008196 0.025903 0.239144 0.075797 0.048799 0.026795 0.307471 0.086971 0.341634 +0.073359 +0.055172 0.065769 0.039496 0.045443 0.039064 0.198411 0.004426 0.014851 0.039477 0.112847 0.020030 0.052882 0.046882 0.039901 0.055502 0.056214 0.036908 0.042515 0.045907 0.049499 0.054839 0.204980 0.083647 0.059554 0.035932 0.239144 0.083569 0.021745 0.029103 0.170817 0.061092 0.273307 +0.045813 +0.007688 0.047286 0.051350 0.080597 0.049416 0.041714 0.015921 0.038906 0.060300 0.041389 0.045155 0.096464 0.027597 0.039936 0.062649 0.059465 0.045785 0.062634 0.041670 0.000746 0.048540 0.239144 0.088063 0.002164 0.012033 0.102490 0.076637 0.026037 0.026809 0.102490 0.056362 0.273307 +0.114243 +0.028033 0.032929 0.043254 0.050415 0.045300 0.107452 0.006626 0.041434 0.043395 0.036628 0.018618 0.099014 0.053103 0.050426 0.101599 0.043808 0.038972 0.405227 0.042260 0.044890 0.058297 0.307471 0.051423 0.065556 0.041609 0.307471 0.066025 0.060270 0.064030 0.204980 0.074126 0.341634 +0.866856 +0.061747 0.037774 0.062666 0.037383 0.046496 0.173182 0.033347 0.052702 0.059277 0.052801 0.028925 0.065385 0.055552 0.042509 0.039061 0.035281 0.021285 0.066779 0.066662 0.022340 0.033905 0.170817 0.075344 0.056265 0.028643 0.102490 0.069940 0.043734 0.046690 0.102490 0.068673 0.341634 +0 +0.050843 0.062257 0.045978 0.049702 0.022759 0.124787 0.032980 0.004876 0.053652 0.055230 0.047033 0.072090 0.059414 0.012403 0.170476 0.043923 0.029313 0.077067 0.045336 0.055606 0.018687 0.170817 0.096304 0.023284 0.004989 0.239144 0.076551 0.037581 0.038747 0.239144 0.094761 0.307471 +0.021738 +0.056564 0.053299 0.066158 0.035621 0.039826 0.382036 0.051160 0.054338 0.060541 0.066961 0.024329 0.080785 0.066162 0.017147 0.057287 0.053535 0.017205 0.069561 0.048187 0.050583 0.049257 0.239144 0.098390 0.027250 0.066698 0.204980 0.055017 0.058439 0.004089 0.170817 0.072066 0.273307 +0.008239 +0.041214 0.001942 0.036795 0.055045 0.037129 0.206144 0.008124 0.064506 0.080899 0.053816 0.028344 0.089413 0.060595 0.043030 0.038093 0.109413 0.042452 0.070475 0.043136 0.002080 0.006743 0.204980 0.082236 0.003701 0.025120 0.204980 0.091255 0.048021 0.038641 0.204980 0.064757 0.273307 +0.019020 +0.049175 0.032092 0.038085 0.034809 0.041446 0.078672 0.047161 0.042213 0.080944 0.043567 0.049273 0.197287 0.002013 0.010090 0.052263 0.044117 0.025914 0.090498 0.051594 0.046606 0.049695 0.204980 0.088156 0.064099 0.017401 0.204980 0.083227 0.032365 0.027029 0.204980 0.085868 0.341634 +0.000953 +0.032646 0.019463 0.100625 0.147252 0.028036 0.242160 0.055781 0.055405 0.064666 0.035070 0.034075 0.043479 0.033590 0.051235 0.056928 0.082755 0.045272 0.108268 0.046106 0.028915 0.022925 0.102490 0.071619 0.037531 0.051816 0.136654 0.099252 0.009935 0.024051 0.136654 0.051927 0.204980 +0.037905 +0.043229 0.041189 0.079585 0.040861 0.034332 0.369989 0.037668 0.022059 0.068033 0.037958 0.034449 0.065792 0.066152 0.017420 0.103988 0.039732 0.045450 0.154739 0.048188 0.054590 0.035314 0.136654 0.091575 0.041168 0.032269 0.170817 0.063324 0.042269 0.025026 0.102490 0.073337 0.204980 +0 +0.023034 0.028759 0.039262 0.051858 0.050551 0.071622 0.003079 0.044526 0.061869 0.047974 0.030751 0.103710 0.047576 0.060115 0.080803 0.043927 0.031181 0.157542 0.059074 0.022348 0.033246 0.170817 0.077291 0.025663 0.045835 0.170817 0.056177 0.019966 0.006146 0.239144 0.054229 0.273307 +0.009748 +0.034833 0.035150 0.038914 0.072000 0.019298 0.163738 0.000584 0.063946 0.048832 0.036616 0.030465 0.144384 0.028472 0.056960 0.080991 0.038986 0.022210 0.038292 0.056745 0.068278 0.046007 0.170817 0.069383 0.031507 0.024949 0.273307 0.083280 0.011750 0.059450 0.239144 0.075970 0.341634 +0.027353 +0.060824 0.001779 0.064783 0.067664 0.023360 0.292869 0.060535 0.002921 0.112550 0.048844 0.022143 0.245257 0.036215 0.017310 0.153678 0.042019 0.024810 0.438744 0.061077 0.042450 0.043989 0.170817 0.092984 0.028954 0.055378 0.204980 0.061770 0.042496 0.004260 0.102490 0.094594 0.273307 +0.336438 +0.039039 0.001098 0.064603 0.083926 0.038379 0.274842 0.007193 0.018810 0.046376 0.041643 0.025260 0.323111 0.006041 0.043984 0.074790 0.041785 0.043843 0.098046 0.058970 0.065104 0.006035 0.102490 0.055744 0.047317 0.011102 0.170817 0.074149 0.047195 0.011095 0.204980 0.101394 0.239144 +0.244150 +0.043987 0.031114 0.154205 0.061853 0.024790 0.218439 0.029058 0.057297 0.055943 0.064410 0.030270 0.089020 0.039617 0.042203 0.047810 0.097463 0.021272 0.035543 0.048329 0.017874 0.056586 0.102490 0.100660 0.016443 0.026014 0.102490 0.070526 0.037414 0.044375 0.136654 0.066585 0.204980 +0.023014 +0.066836 0.047881 0.042250 0.052274 0.022343 0.057300 0.036031 0.039057 0.069924 0.068588 0.024210 0.072557 0.021853 0.023323 0.055932 0.049101 0.042109 0.225904 0.056467 0.065763 0.017533 0.204980 0.066696 0.042442 0.012509 0.136654 0.099724 0.036212 0.030347 0.170817 0.086437 0.239144 +0.043422 +0.046721 0.043151 0.073595 0.049031 0.041539 0.224793 0.063397 0.006168 0.056177 0.061101 0.030984 0.194693 0.066372 0.020231 0.051972 0.184622 0.026083 0.149032 0.057595 0.036744 0.007086 0.170817 0.085020 0.019367 0.001476 0.136654 0.092362 0.010494 0.009716 0.136654 0.053344 0.273307 +0.360416 +0.028791 0.003159 0.063699 0.081750 0.036173 0.234944 0.052694 0.052016 0.047591 0.037471 0.040024 0.034930 0.057872 0.005835 0.092789 0.091085 0.051107 0.242983 0.052119 0.034835 0.054948 0.204980 0.054552 0.035776 0.018226 0.170817 0.053371 0.018277 0.023463 0.136654 0.092753 0.307471 +0.015232 +0.025367 0.030075 0.062557 0.035792 0.036821 0.105219 0.044466 0.057816 0.040975 0.079852 0.031348 0.218408 0.031763 0.033882 0.071889 0.174270 0.034473 0.108365 0.044794 0.065937 0.011141 0.136654 0.084329 0.055464 0.014535 0.239144 0.101623 0.033505 0.029549 0.204980 0.097854 0.307471 +0.037208 +0.005079 0.058129 0.038042 0.054778 0.037850 0.221873 0.018402 0.018789 0.057184 0.070699 0.022848 0.312558 0.039070 0.008124 0.127063 0.040368 0.038063 0.097804 0.058254 0.040891 0.006346 0.239144 0.068250 0.018841 0.063084 0.239144 0.058628 0.007236 0.063334 0.239144 0.060333 0.273307 +0.647115 +0.062458 0.043425 0.043236 0.035466 0.046683 0.158697 0.011611 0.046663 0.048348 0.114561 0.028468 0.151755 0.000138 0.032515 0.062886 0.044209 0.025859 0.056789 0.051120 0.021723 0.049591 0.102490 0.080176 0.015925 0.054819 0.170817 0.051463 0.035995 0.041141 0.102490 0.070751 0.204980 +0.032031 +0.023304 0.006900 0.050490 0.098790 0.028746 0.056935 0.000851 0.052087 0.063923 0.038549 0.040955 0.138239 0.009030 0.021477 0.035653 0.037050 0.044311 0.523303 0.055786 0.031334 0.063654 0.102490 0.058044 0.068217 0.014471 0.170817 0.074752 0.035960 0.005087 0.170817 0.088144 0.204980 +0.336926 +0.002497 0.041079 0.188956 0.041585 0.025250 0.311875 0.013367 0.031708 0.049336 0.076207 0.038065 0.034317 0.060036 0.029120 0.034571 0.042454 0.050445 0.068125 0.060851 0.016310 0.041750 0.170817 0.075121 0.060579 0.062162 0.239144 0.062383 0.037539 0.061666 0.204980 0.071845 0.273307 +0 +0.066867 0.033948 0.040444 0.035903 0.040255 0.199426 0.034095 0.056415 0.065947 0.109543 0.020811 0.207462 0.000267 0.062697 0.119249 0.044483 0.035063 0.064842 0.052680 0.005222 0.001647 0.239144 0.079327 0.018475 0.018501 0.273307 0.062534 0.037132 0.058510 0.239144 0.053049 0.341634 +0.146004 +0.048344 0.064271 0.093635 0.108100 0.048170 0.160769 0.020285 0.011130 0.064121 0.065818 0.050550 0.065066 0.014381 0.026614 0.066315 0.116996 0.041198 0.054617 0.053730 0.045978 0.014552 0.136654 0.065382 0.032607 0.045776 0.239144 0.087054 0.030388 0.015512 0.136654 0.076227 0.273307 +0.018256 +0.060624 0.012646 0.077101 0.037899 0.021603 0.079591 0.015580 0.052388 0.042672 0.058857 0.026924 0.222718 0.034187 0.050693 0.050192 0.055498 0.027879 0.128127 0.058112 0.043488 0.040834 0.170817 0.073050 0.065210 0.058683 0.204980 0.095982 0.007349 0.002316 0.204980 0.090300 0.341634 +0.282826 +0.013173 0.055096 0.078532 0.059490 0.028562 0.169181 0.012772 0.051088 0.056639 0.086780 0.019490 0.157761 0.005410 0.018144 0.210982 0.036822 0.046464 0.243955 0.046507 0.032341 0.026255 0.102490 0.083235 0.014064 0.051280 0.136654 0.052123 0.056731 0.064897 0.136654 0.084750 0.204980 +0.450830 +0.054699 0.007884 0.040054 0.054108 0.039886 0.047710 0.042669 0.054166 0.104638 0.079347 0.041296 0.083629 0.067365 0.035746 0.073938 0.035100 0.020898 0.065330 0.045009 0.036737 0.021782 0.102490 0.079436 0.061141 0.013465 0.170817 0.071104 0.049885 0.064815 0.170817 0.064966 0.204980 +0.019870 +0.028818 0.023339 0.052407 0.134223 0.026759 0.151670 0.053826 0.023755 0.037891 0.038306 0.050233 0.058415 0.066420 0.045790 0.198173 0.051696 0.026043 0.036053 0.061531 0.030560 0.066611 0.170817 0.071394 0.019734 0.037313 0.136654 0.052507 0.056357 0.034147 0.136654 0.073101 0.204980 +0.027323 +0.029159 0.033372 0.080950 0.034236 0.048008 0.035911 0.030838 0.013018 0.099682 0.087898 0.047947 0.044157 0.058109 0.036513 0.081006 0.035431 0.041637 0.093483 0.046997 0.059592 0.044882 0.136654 0.083118 0.030663 0.011509 0.239144 0.078909 0.036252 0.062428 0.273307 0.054038 0.307471 +0 +0.006382 0.011694 0.047234 0.038098 0.025848 0.051267 0.046003 0.007691 0.043013 0.058115 0.032136 0.090191 0.053602 0.057409 0.085383 0.197275 0.037912 0.092929 0.047873 0.024161 0.012782 0.239144 0.070645 0.025946 0.031498 0.170817 0.058080 0.051099 0.046000 0.136654 0.062165 0.307471 +0.008791 +0.064196 0.028015 0.086933 0.046392 0.026789 0.164179 0.043264 0.037433 0.052347 0.044115 0.019437 0.038842 0.049689 0.005602 0.035238 0.110580 0.020178 0.121104 0.048721 0.048584 0.064063 0.136654 0.099517 0.011936 0.001949 0.136654 0.099687 0.048805 0.031524 0.136654 0.093571 0.239144 +0 +0.033757 0.061355 0.137072 0.039212 0.034862 0.142159 0.029491 0.004930 0.074682 0.060880 0.044734 0.061986 0.067390 0.013198 0.083190 0.038397 0.047801 0.184920 0.059613 0.067429 0.025455 0.307471 0.070109 0.053278 0.063419 0.204980 0.057213 0.031706 0.001296 0.204980 0.088157 0.341634 +0.003277 +0.037405 0.009414 0.076070 0.124547 0.024145 0.044310 0.045010 0.014467 0.056522 0.170720 0.040578 0.067881 0.019534 0.025534 0.036257 0.066551 0.045196 0.146379 0.048239 0.063198 0.064012 0.102490 0.067010 0.052857 0.053486 0.170817 0.062689 0.026012 0.050053 0.204980 0.099070 0.307471 +0.002654 +0.041945 0.050383 0.059462 0.047280 0.020254 0.038971 0.059602 0.033262 0.088922 0.071675 0.036260 0.194275 0.062831 0.001441 0.089643 0.104789 0.045905 0.062722 0.042607 0.033542 0.047492 0.102490 0.076039 0.012373 0.023963 0.204980 0.085981 0.008895 0.009530 0.204980 0.053910 0.307471 +0.138545 +0.035587 0.045868 0.037620 0.052266 0.040866 0.100286 0.066646 0.015336 0.041319 0.044416 0.041324 0.092888 0.041849 0.011930 0.034528 0.047332 0.019967 0.041779 0.059075 0.025675 0.026768 0.102490 0.065066 0.010890 0.026388 0.204980 0.076873 0.038428 0.005537 0.170817 0.069492 0.239144 +0.020486 +0.037454 0.047374 0.082914 0.056810 0.034226 0.286992 0.021326 0.019733 0.058795 0.042792 0.022612 0.082720 0.030055 0.037830 0.127301 0.062241 0.045379 0.162826 0.053454 0.021228 0.003145 0.204980 0.089129 0.035190 0.035780 0.170817 0.096340 0.050149 0.021035 0.170817 0.066719 0.307471 +0 +0.064816 0.048827 0.072498 0.055077 0.051061 0.100509 0.067615 0.016187 0.044231 0.036410 0.032509 0.069450 0.023883 0.027349 0.073769 0.053434 0.027215 0.052606 0.048504 0.006995 0.000979 0.239144 0.074635 0.011281 0.039266 0.136654 0.101366 0.030907 0.047790 0.239144 0.066502 0.341634 +0 +0.021738 0.036651 0.091614 0.067164 0.030929 0.077779 0.011684 0.049621 0.036485 0.046281 0.025507 0.062103 0.002747 0.004470 0.052259 0.035254 0.048872 0.114100 0.046152 0.004464 0.047885 0.204980 0.063737 0.002588 0.005967 0.102490 0.085390 0.014650 0.047996 0.102490 0.090421 0.239144 +0.001533 +0.012027 0.021276 0.044073 0.116376 0.044350 0.081085 0.043938 0.038097 0.048323 0.049755 0.017845 0.094255 0.054288 0.066649 0.051494 0.068076 0.040319 0.194499 0.057352 0.014265 0.019348 0.204980 0.078168 0.053844 0.040393 0.273307 0.092274 0.068196 0.001941 0.307471 0.091709 0.341634 +0.111974 +0.064223 0.021393 0.038141 0.100226 0.024913 0.449066 0.028726 0.067673 0.041503 0.050348 0.035127 0.097196 0.035072 0.001579 0.085927 0.052833 0.028525 0.235483 0.038024 0.038708 0.039663 0.102490 0.069236 0.051580 0.021105 0.204980 0.088403 0.026284 0.011275 0.204980 0.088020 0.341634 +0.279723 +0.033471 0.065496 0.094147 0.038017 0.024889 0.171710 0.013584 0.050098 0.054867 0.126121 0.045617 0.277211 0.028567 0.009488 0.050662 0.037269 0.044430 0.173793 0.050573 0.000358 0.047983 0.102490 0.060353 0.042652 0.025098 0.102490 0.085783 0.000490 0.044338 0.136654 0.074311 0.273307 +0.110105 +0.008146 0.012288 0.053543 0.110993 0.022186 0.086463 0.002859 0.053492 0.049073 0.043638 0.023438 0.210176 0.006262 0.020677 0.087517 0.042204 0.035535 0.178701 0.052027 0.002787 0.015351 0.136654 0.072005 0.025191 0.066340 0.204980 0.087844 0.063120 0.029618 0.239144 0.101516 0.307471 +0.314904 +0.024015 0.009031 0.056845 0.046137 0.038780 0.098153 0.004454 0.000277 0.105314 0.122371 0.050003 0.037182 0.002897 0.049458 0.070461 0.051687 0.031858 0.102064 0.054783 0.040070 0.028747 0.136654 0.087046 0.050497 0.038114 0.102490 0.057152 0.006073 0.062344 0.136654 0.071903 0.239144 +0 +0.064074 0.040835 0.111577 0.077421 0.026175 0.193162 0.011404 0.039859 0.057926 0.056376 0.037434 0.158125 0.059756 0.012693 0.089575 0.058048 0.036400 0.114332 0.051768 0.065200 0.052017 0.170817 0.070833 0.026133 0.038333 0.136654 0.087710 0.038163 0.051480 0.102490 0.055924 0.239144 +0.021114 +0.035045 0.045074 0.036164 0.072518 0.041506 0.216897 0.029791 0.014922 0.057014 0.039361 0.020533 0.101209 0.058596 0.058316 0.058052 0.071264 0.019211 0.039293 0.062284 0.028672 0.022278 0.170817 0.076223 0.058038 0.012636 0.170817 0.079304 0.052419 0.001804 0.102490 0.093719 0.204980 +0.085114 +0.050193 0.018444 0.107693 0.055088 0.042037 0.154435 0.024690 0.027568 0.049268 0.037157 0.039595 0.071598 0.012533 0.012063 0.067584 0.052654 0.037500 0.059231 0.041886 0.013876 0.052160 0.170817 0.065360 0.019253 0.014609 0.136654 0.067871 0.029954 0.015259 0.136654 0.077180 0.307471 +0 +0.019606 0.049110 0.135156 0.035114 0.043515 0.100812 0.029713 0.030972 0.113273 0.112183 0.018285 0.087806 0.065366 0.054823 0.043150 0.071737 0.022229 0.220698 0.048170 0.007449 0.052908 0.102490 0.056820 0.056544 0.006106 0.136654 0.067591 0.037272 0.068103 0.102490 0.093671 0.204980 +0.003349 +0.048903 0.031711 0.153537 0.048041 0.042979 0.051103 0.023570 0.047314 0.040163 0.086897 0.047355 0.164919 0.032233 0.022904 0.035940 0.087455 0.023886 0.220613 0.046895 0.012450 0.062468 0.102490 0.062968 0.043359 0.005662 0.136654 0.078099 0.067520 0.036639 0.102490 0.069569 0.239144 +0.342062 +0.053339 0.049448 0.046408 0.140172 0.029108 0.042240 0.059133 0.062375 0.050235 0.043572 0.049403 0.195049 0.052176 0.036689 0.034722 0.117013 0.050527 0.041254 0.054088 0.031267 0.020538 0.170817 0.090496 0.050782 0.037124 0.102490 0.085759 0.029037 0.025672 0.136654 0.067416 0.273307 +0 +0.068229 0.014765 0.115570 0.110232 0.022336 0.248703 0.047794 0.046561 0.070780 0.035946 0.026695 0.072629 0.062092 0.004855 0.093722 0.174759 0.048415 0.059656 0.055994 0.048125 0.041806 0.170817 0.080222 0.006948 0.062727 0.204980 0.094856 0.029761 0.036832 0.204980 0.067353 0.239144 +0 +0.051156 0.047298 0.086251 0.045059 0.030787 0.233918 0.051217 0.050588 0.166784 0.057373 0.043341 0.049682 0.028464 0.048549 0.041542 0.051716 0.044428 0.054374 0.055505 0.031363 0.050082 0.273307 0.052097 0.005449 0.001661 0.239144 0.051267 0.024532 0.027239 0.170817 0.060234 0.307471 +0.253648 +0.000459 0.055049 0.040811 0.070611 0.026416 0.111892 0.014675 0.021815 0.045371 0.039609 0.027742 0.115154 0.051461 0.066187 0.070278 0.066648 0.048765 0.136256 0.041333 0.018445 0.013647 0.136654 0.058889 0.051669 0.058017 0.136654 0.054352 0.017733 0.010261 0.239144 0.081485 0.273307 +0.451316 +0.025097 0.032023 0.051662 0.045889 0.023825 0.203649 0.003604 0.032357 0.049504 0.050533 0.040073 0.061978 0.012843 0.044621 0.047235 0.046543 0.047971 0.078970 0.050523 0.001595 0.059604 0.170817 0.061307 0.027833 0.002593 0.102490 0.071001 0.005502 0.044663 0.136654 0.074185 0.341634 +0.208650 +0.057249 0.013332 0.037201 0.036262 0.027475 0.193967 0.010669 0.035928 0.059485 0.037278 0.037566 0.051606 0.047674 0.024002 0.034758 0.100595 0.048501 0.141674 0.047725 0.063438 0.054690 0.102490 0.087218 0.044250 0.006287 0.102490 0.054393 0.041558 0.062342 0.102490 0.062591 0.239144 +0 +0.027709 0.007579 0.047515 0.051108 0.042447 0.097160 0.008233 0.025169 0.106938 0.040224 0.022468 0.162627 0.004765 0.048317 0.058857 0.050032 0.025318 0.079127 0.041228 0.015274 0.008197 0.170817 0.083972 0.024923 0.036590 0.136654 0.102097 0.031062 0.018165 0.170817 0.100939 0.204980 +0.015114 +0.003528 0.039381 0.050987 0.046257 0.021779 0.195612 0.012379 0.028777 0.065684 0.080809 0.022186 0.082952 0.013176 0.041877 0.135414 0.041333 0.025919 0.135305 0.044669 0.027482 0.019601 0.273307 0.100675 0.039916 0.055281 0.170817 0.067468 0.007218 0.008006 0.273307 0.055687 0.307471 +0 +0.006370 0.020642 0.066086 0.040637 0.023299 0.089993 0.068158 0.064262 0.047621 0.115101 0.039410 0.074154 0.053750 0.030319 0.037588 0.070748 0.049913 0.039872 0.059410 0.027094 0.060036 0.102490 0.088447 0.041728 0.014632 0.170817 0.073436 0.038200 0.068217 0.170817 0.094290 0.273307 +0 +0.034840 0.049179 0.041146 0.059198 0.048278 0.305857 0.060497 0.055120 0.040666 0.064459 0.040504 0.234766 0.047220 0.025172 0.036484 0.035426 0.040655 0.266471 0.039551 0.004922 0.019912 0.136654 0.083470 0.049894 0.009034 0.102490 0.101267 0.010862 0.050896 0.136654 0.075558 0.204980 +0.245428 +0.042339 0.036225 0.084366 0.126186 0.022165 0.230810 0.065700 0.051274 0.051022 0.076043 0.030191 0.116312 0.013652 0.066956 0.053010 0.151294 0.027011 0.174394 0.055748 0.016907 0.055741 0.239144 0.098144 0.043871 0.004546 0.307471 0.064235 0.013211 0.014577 0.307471 0.059578 0.341634 +0.146048 +0.035605 0.024803 0.054174 0.123743 0.042721 0.221651 0.006380 0.026572 0.043066 0.103443 0.039208 0.324272 0.067416 0.028527 0.088310 0.082585 0.032288 0.172968 0.052824 0.008502 0.059916 0.204980 0.093079 0.031175 0.022924 0.102490 0.077079 0.039762 0.005962 0.136654 0.056934 0.307471 +0.303216 +0.015570 0.020340 0.034805 0.039621 0.043016 0.073306 0.037576 0.031942 0.044473 0.079416 0.034109 0.108481 0.038090 0.061141 0.040781 0.087137 0.022350 0.282974 0.044692 0.006096 0.060448 0.136654 0.078221 0.019105 0.061135 0.136654 0.090676 0.026249 0.015892 0.102490 0.059703 0.273307 +0 +0.011306 0.054940 0.037723 0.036611 0.026312 0.141232 0.005065 0.035907 0.061125 0.042545 0.042449 0.057196 0.002814 0.019340 0.052503 0.047285 0.045240 0.075456 0.056796 0.067536 0.015134 0.170817 0.064079 0.016190 0.036192 0.239144 0.079020 0.037061 0.038379 0.170817 0.083099 0.273307 +0.001843 +0.016535 0.032337 0.092555 0.078989 0.039880 0.118379 0.020851 0.046783 0.037033 0.060833 0.050305 0.193006 0.030656 0.049849 0.057522 0.074376 0.050768 0.038936 0.044223 0.029892 0.017912 0.170817 0.090579 0.044755 0.007073 0.204980 0.055099 0.025606 0.039464 0.204980 0.101482 0.341634 +0 +0.009077 0.001989 0.060340 0.057397 0.029289 0.057357 0.049840 0.031396 0.054033 0.046621 0.043866 0.058838 0.000602 0.018567 0.045655 0.070677 0.041871 0.082599 0.054369 0.007215 0.063322 0.136654 0.086275 0.013871 0.044927 0.204980 0.051754 0.021251 0.058811 0.204980 0.072024 0.341634 +0 +0.061602 0.004341 0.041989 0.057469 0.018036 0.263384 0.025059 0.021344 0.040328 0.090733 0.021289 0.155616 0.043195 0.017897 0.101418 0.037247 0.042443 0.184087 0.052863 0.014317 0.038819 0.102490 0.082380 0.005186 0.036393 0.307471 0.101003 0.005401 0.013639 0.136654 0.091219 0.341634 +0.438056 +0.000252 0.001111 0.070594 0.034771 0.040569 0.115001 0.045973 0.001677 0.064451 0.040340 0.038447 0.424715 0.058525 0.002571 0.144076 0.056275 0.044623 0.094831 0.049026 0.062169 0.026155 0.204980 0.060274 0.029794 0.015490 0.170817 0.051681 0.044066 0.061908 0.170817 0.064130 0.273307 +0.552033 +0.006900 0.057405 0.060513 0.226646 0.027649 0.199239 0.046283 0.022093 0.036405 0.046693 0.019622 0.044435 0.004919 0.048180 0.051380 0.049660 0.030892 0.203323 0.048402 0.039079 0.029943 0.102490 0.101711 0.018810 0.040509 0.170817 0.073040 0.030572 0.032863 0.136654 0.065577 0.273307 +0.037293 +0.031547 0.057108 0.069413 0.061986 0.047225 0.175291 0.003647 0.014938 0.044026 0.038628 0.018795 0.079845 0.049485 0.054054 0.034860 0.078639 0.023114 0.072298 0.055083 0.053436 0.049665 0.102490 0.072139 0.042492 0.062786 0.204980 0.071734 0.032435 0.066793 0.239144 0.055161 0.307471 +0.002032 +0.035717 0.024077 0.067727 0.162852 0.033472 0.067172 0.019424 0.036645 0.067113 0.048823 0.020106 0.047813 0.062775 0.061892 0.035398 0.065581 0.017807 0.301172 0.052098 0.029492 0.054502 0.204980 0.095306 0.049626 0.032007 0.170817 0.083622 0.025699 0.063231 0.239144 0.081302 0.273307 +0.045661 +0.004622 0.009232 0.044946 0.040789 0.025897 0.077175 0.054924 0.007764 0.088835 0.054433 0.047503 0.174452 0.039311 0.026914 0.062894 0.097707 0.040279 0.158726 0.039089 0.028671 0.030221 0.170817 0.095237 0.067587 0.025511 0.170817 0.091569 0.021698 0.048929 0.102490 0.082497 0.204980 +0.059663 +0.062794 0.019457 0.048258 0.043351 0.034141 0.058345 0.065918 0.062454 0.044943 0.050463 0.037184 0.052080 0.005507 0.004949 0.113520 0.042440 0.037776 0.069395 0.056668 0.062872 0.060046 0.204980 0.056604 0.056180 0.001244 0.136654 0.091565 0.012800 0.012423 0.102490 0.098859 0.239144 +0.001594 +0.040123 0.032289 0.050028 0.050579 0.022556 0.244333 0.061571 0.062270 0.056986 0.035364 0.032125 0.171475 0.011380 0.014862 0.072832 0.049024 0.041326 0.227626 0.056906 0.057088 0.026158 0.102490 0.061521 0.022836 0.054256 0.170817 0.075013 0.036213 0.001465 0.136654 0.060265 0.204980 +0.340509 +0.004872 0.037800 0.036649 0.087343 0.025365 0.080146 0.021833 0.049397 0.035301 0.081969 0.038156 0.132296 0.020247 0.068116 0.126539 0.066590 0.030423 0.135930 0.043190 0.002491 0.049895 0.170817 0.072051 0.012318 0.051228 0.170817 0.078787 0.000359 0.014311 0.102490 0.058882 0.273307 +0.023995 +0.001789 0.058027 0.142614 0.132562 0.031637 0.111954 0.034279 0.066996 0.051190 0.037286 0.042718 0.069868 0.066354 0.001996 0.079625 0.170826 0.019838 0.231857 0.057888 0.051692 0.064107 0.102490 0.081613 0.008372 0.040940 0.102490 0.064365 0.028181 0.064800 0.136654 0.052116 0.204980 +0.071386 +0.063557 0.030149 0.035019 0.167575 0.039813 0.041756 0.053554 0.060176 0.065731 0.054739 0.021267 0.143243 0.051439 0.010639 0.058583 0.036952 0.018846 0.052370 0.058275 0.003671 0.041639 0.102490 0.057385 0.057636 0.028600 0.204980 0.059505 0.018326 0.050210 0.102490 0.058192 0.273307 +0.010236 +0.044946 0.060462 0.040141 0.038425 0.043837 0.114191 0.021825 0.014592 0.080028 0.051355 0.031434 0.093358 0.055592 0.004992 0.054707 0.095696 0.025344 0.294748 0.055889 0.048830 0.031753 0.239144 0.072792 0.019073 0.066490 0.170817 0.097227 0.051690 0.067526 0.170817 0.064705 0.273307 +0.446249 +0.049284 0.009289 0.076018 0.107200 0.050636 0.075444 0.038365 0.012673 0.051314 0.076240 0.029980 0.141003 0.047463 0.011360 0.037466 0.034597 0.025951 0.222123 0.045312 0.008399 0.000334 0.170817 0.061781 0.003739 0.007810 0.136654 0.063558 0.032013 0.024884 0.102490 0.064294 0.239144 +0.019790 +0.062394 0.007059 0.057242 0.066595 0.041108 0.036186 0.018197 0.028845 0.063427 0.113600 0.045751 0.168585 0.064701 0.036750 0.069252 0.090747 0.045962 0.230686 0.036494 0.010627 0.054642 0.204980 0.054419 0.009817 0.016667 0.239144 0.071178 0.005779 0.025693 0.239144 0.094666 0.273307 +0.091893 +0.039687 0.039876 0.039888 0.072348 0.050038 0.063165 0.023425 0.010367 0.042128 0.038607 0.043620 0.308289 0.002344 0.028746 0.041618 0.086398 0.028692 0.125904 0.041118 0.018255 0.047168 0.102490 0.072254 0.001381 0.039822 0.136654 0.065752 0.049926 0.035360 0.273307 0.075184 0.307471 +0.418823 +0.004619 0.046741 0.048335 0.064394 0.031515 0.132754 0.009943 0.020256 0.074815 0.052508 0.022665 0.264252 0.029185 0.020755 0.040605 0.041321 0.028804 0.036227 0.054101 0.059193 0.057713 0.239144 0.073187 0.041743 0.006758 0.239144 0.064275 0.025779 0.017909 0.204980 0.089544 0.341634 +0.013321 +0.061990 0.063681 0.043356 0.068348 0.051040 0.084951 0.042587 0.032601 0.043422 0.067737 0.040328 0.057100 0.011957 0.059666 0.104401 0.051792 0.020956 0.229295 0.063110 0.035925 0.045049 0.136654 0.073595 0.065332 0.007737 0.170817 0.073622 0.013280 0.021076 0.102490 0.051256 0.239144 +0.017635 +0.007724 0.067976 0.044219 0.037746 0.035182 0.044702 0.056831 0.063481 0.053278 0.043556 0.047204 0.061132 0.059056 0.001670 0.068048 0.071718 0.023160 0.070431 0.058101 0.033800 0.007754 0.204980 0.079241 0.053492 0.026173 0.102490 0.054334 0.053279 0.060593 0.204980 0.074208 0.239144 +0.004524 +0.035962 0.066436 0.100451 0.065152 0.023014 0.105943 0.016324 0.026999 0.036870 0.040504 0.046462 0.201539 0.022011 0.061067 0.069931 0.075858 0.018298 0.075360 0.054376 0.026397 0.050032 0.170817 0.080502 0.066283 0.050473 0.136654 0.077124 0.030524 0.063576 0.204980 0.055673 0.239144 +0.132608 +0.067435 0.062740 0.048931 0.231741 0.019008 0.280081 0.021154 0.017991 0.059091 0.048426 0.049249 0.046794 0.005520 0.037034 0.083282 0.034678 0.050357 0.195256 0.047288 0.016890 0.004626 0.102490 0.073204 0.019787 0.029263 0.204980 0.081818 0.055633 0.044395 0.170817 0.076534 0.273307 +0.060812 +0.060625 0.013572 0.036556 0.054060 0.032878 0.068098 0.053467 0.038081 0.043895 0.070093 0.024289 0.158461 0.033214 0.013297 0.075368 0.047867 0.027269 0.324146 0.040363 0.006158 0.051235 0.102490 0.055200 0.020112 0.020180 0.102490 0.094319 0.009349 0.038666 0.170817 0.064800 0.273307 +0.006344 +0.035243 0.035567 0.078712 0.062707 0.020513 0.046884 0.057059 0.067528 0.057332 0.083019 0.026438 0.342096 0.042217 0.015870 0.109148 0.053650 0.038068 0.053320 0.052193 0.041758 0.018694 0.102490 0.082385 0.050956 0.012064 0.136654 0.076888 0.017267 0.006238 0.136654 0.099164 0.204980 +0.189467 +0.053891 0.032144 0.097269 0.036285 0.026974 0.052155 0.025600 0.038623 0.084251 0.035380 0.024963 0.059140 0.035434 0.031843 0.066459 0.066521 0.045533 0.426687 0.049703 0.004873 0.065274 0.204980 0.071735 0.041345 0.000465 0.307471 0.073303 0.066592 0.000287 0.204980 0.058279 0.341634 +0.001101 +0.034511 0.007929 0.068683 0.050326 0.023093 0.040149 0.033828 0.003725 0.040090 0.042869 0.034395 0.640355 0.056542 0.057711 0.035456 0.046958 0.031132 0.055129 0.060924 0.017749 0.021375 0.136654 0.092706 0.037169 0.008766 0.136654 0.076222 0.030160 0.047799 0.170817 0.061068 0.273307 +0.525762 +0.000329 0.022178 0.067641 0.057542 0.017846 0.040969 0.004017 0.048771 0.110135 0.069135 0.045688 0.148985 0.010905 0.054655 0.055664 0.119875 0.019322 0.141107 0.052578 0.007160 0.019225 0.170817 0.086780 0.036675 0.026317 0.204980 0.073733 0.008789 0.067812 0.136654 0.053196 0.239144 +0.008645 +0.030985 0.017430 0.047531 0.046079 0.035447 0.124199 0.007756 0.047480 0.076694 0.057134 0.045164 0.051782 0.051578 0.049105 0.097277 0.105384 0.042891 0.297293 0.049649 0.060198 0.051299 0.136654 0.080073 0.061079 0.014276 0.170817 0.071618 0.053819 0.045442 0.136654 0.054099 0.239144 +0.012147 +0.010780 0.001993 0.099412 0.034508 0.022712 0.290856 0.053209 0.021107 0.049437 0.053993 0.023483 0.058921 0.035851 0.022250 0.039096 0.123421 0.037521 0.153086 0.043133 0.011881 0.060965 0.170817 0.057663 0.035536 0.040522 0.273307 0.100796 0.046857 0.053667 0.239144 0.061166 0.307471 +0.372998 +0.049758 0.031470 0.046624 0.071432 0.028611 0.256530 0.009776 0.010077 0.088004 0.069298 0.030156 0.114139 0.004835 0.029444 0.036959 0.060720 0.039044 0.071266 0.053456 0.055925 0.000394 0.307471 0.070828 0.015477 0.047102 0.136654 0.087499 0.064069 0.053052 0.307471 0.089553 0.341634 +0.048447 +0.026011 0.058000 0.088175 0.050514 0.020643 0.131916 0.044390 0.060967 0.056414 0.039253 0.041858 0.129017 0.036929 0.067750 0.139440 0.047550 0.048862 0.154533 0.057109 0.002634 0.018518 0.307471 0.090894 0.015501 0.043572 0.102490 0.062806 0.055019 0.023997 0.170817 0.081957 0.341634 +0.023854 +0.008905 0.001200 0.047558 0.035796 0.032022 0.087644 0.064475 0.010067 0.034258 0.060634 0.024541 0.098403 0.005739 0.030233 0.088134 0.142541 0.049125 0.071988 0.050325 0.066815 0.044197 0.102490 0.094994 0.045484 0.044339 0.102490 0.098637 0.037763 0.064917 0.170817 0.082929 0.239144 +0 +0.050718 0.023580 0.054452 0.104915 0.048402 0.052002 0.014736 0.012567 0.037158 0.080945 0.040592 0.664516 0.063204 0.052227 0.214092 0.055092 0.032765 0.094856 0.040111 0.006297 0.048075 0.102490 0.054913 0.008573 0.063906 0.239144 0.073600 0.031129 0.009352 0.204980 0.092053 0.273307 +0.565427 +0.059322 0.041690 0.073688 0.088362 0.017680 0.206840 0.020839 0.035205 0.047194 0.052701 0.037922 0.706394 0.000655 0.065556 0.065401 0.111738 0.037839 0.051472 0.044870 0.033161 0.049553 0.204980 0.076695 0.037912 0.014432 0.170817 0.086878 0.003770 0.057194 0.170817 0.069259 0.239144 +0.723938 +0.060173 0.044033 0.044939 0.193508 0.044122 0.077889 0.032333 0.041033 0.103222 0.069451 0.047914 0.278175 0.027561 0.051857 0.039986 0.055864 0.022778 0.073870 0.055634 0.005703 0.021500 0.239144 0.092706 0.054229 0.030304 0.170817 0.078165 0.006472 0.056732 0.102490 0.056020 0.307471 +0.029949 +0.064956 0.040982 0.078922 0.043705 0.039443 0.449141 0.028075 0.030424 0.041072 0.112383 0.024831 0.323582 0.057880 0.021342 0.073610 0.051081 0.042428 0.092313 0.037902 0.011731 0.001781 0.136654 0.071535 0.040728 0.025910 0.239144 0.063925 0.002309 0.023406 0.136654 0.070551 0.273307 +0.855540 +0.040872 0.011233 0.088365 0.035655 0.029163 0.072387 0.062356 0.018208 0.059709 0.054909 0.042484 0.239770 0.008182 0.062076 0.061444 0.077724 0.034392 0.039620 0.063914 0.055484 0.055252 0.136654 0.091686 0.018572 0.003033 0.170817 0.086858 0.018930 0.058992 0.102490 0.075564 0.204980 +0.182319 +0.027145 0.017580 0.042608 0.041517 0.050395 0.049362 0.003067 0.032270 0.035474 0.041981 0.025701 0.240377 0.055246 0.065501 0.040343 0.056466 0.019354 0.073012 0.050051 0.008682 0.009450 0.170817 0.073206 0.045402 0.047861 0.204980 0.079921 0.030499 0.032522 0.136654 0.100463 0.239144 +0.099557 +0.067055 0.020497 0.069379 0.071638 0.039776 0.357125 0.065372 0.045915 0.078789 0.072930 0.032894 0.283394 0.031433 0.027876 0.054831 0.042376 0.022456 0.109139 0.046384 0.054528 0.006543 0.273307 0.094039 0.044571 0.009261 0.170817 0.089714 0.022406 0.038638 0.273307 0.083996 0.307471 +0.369871 +0.032543 0.004352 0.041951 0.080748 0.036867 0.219244 0.060375 0.004769 0.086374 0.076716 0.026087 0.210875 0.056982 0.044883 0.117908 0.041946 0.032975 0.292909 0.059535 0.060199 0.029425 0.204980 0.081609 0.052596 0.057573 0.273307 0.068933 0.021192 0.033530 0.204980 0.064235 0.341634 +0.012295 +0.046426 0.021652 0.060388 0.042568 0.024706 0.154819 0.041594 0.045105 0.058599 0.049905 0.022114 0.038427 0.002094 0.045199 0.133869 0.096793 0.044296 0.079188 0.055129 0.019896 0.058234 0.204980 0.057206 0.058203 0.055842 0.102490 0.077139 0.020236 0.019034 0.136654 0.073860 0.273307 +0.001774 +0.010849 0.055671 0.037908 0.060859 0.027114 0.043004 0.009356 0.007041 0.045587 0.062521 0.017593 0.049730 0.055903 0.027040 0.048000 0.059843 0.025199 0.273572 0.054039 0.060756 0.015510 0.136654 0.051552 0.062576 0.058975 0.136654 0.079502 0.010966 0.048765 0.102490 0.083185 0.273307 +0 +0.047638 0.068030 0.051509 0.048698 0.030611 0.203077 0.066446 0.001924 0.046620 0.053062 0.040984 0.175978 0.020955 0.042737 0.049861 0.140919 0.035763 0.095856 0.043283 0.025473 0.047132 0.204980 0.098828 0.025871 0.002116 0.204980 0.073488 0.035794 0.063970 0.239144 0.074181 0.307471 +0.186428 +0.053123 0.050262 0.065776 0.079328 0.047648 0.053442 0.053157 0.060743 0.057097 0.038249 0.025190 0.039472 0.029390 0.023126 0.117305 0.043982 0.040703 0.148196 0.048026 0.010922 0.005144 0.102490 0.055428 0.018219 0.015149 0.170817 0.061544 0.062056 0.013231 0.204980 0.055359 0.239144 +0.059470 +0.014036 0.028673 0.042169 0.053854 0.030895 0.053759 0.041820 0.013643 0.087158 0.039135 0.044819 0.140754 0.047916 0.017794 0.092234 0.101265 0.017323 0.063106 0.055669 0.013395 0.055440 0.239144 0.082931 0.011795 0.010845 0.273307 0.086443 0.012449 0.058975 0.136654 0.073131 0.307471 +0.026574 +0.020851 0.048959 0.034641 0.064175 0.030530 0.130100 0.034495 0.046497 0.060233 0.046090 0.029934 0.050863 0.064837 0.005705 0.050416 0.051374 0.026520 0.131478 0.056362 0.001173 0.016415 0.102490 0.055840 0.002403 0.067149 0.102490 0.102346 0.005772 0.026754 0.170817 0.099268 0.204980 +0.009658 +0.041530 0.040394 0.050675 0.079650 0.032339 0.204362 0.016772 0.059279 0.062524 0.038050 0.025503 0.082105 0.024755 0.056703 0.100250 0.034286 0.048836 0.087543 0.049387 0.065979 0.002521 0.239144 0.093890 0.015013 0.060869 0.170817 0.064289 0.019726 0.019749 0.239144 0.059016 0.273307 +0.010114 +0.015201 0.049810 0.067499 0.039175 0.021947 0.156989 0.067623 0.004560 0.039946 0.041743 0.026909 0.356456 0.047090 0.017435 0.107801 0.038034 0.040014 0.251152 0.054734 0.048799 0.051470 0.102490 0.063122 0.029912 0.063490 0.136654 0.056574 0.048168 0.015310 0.102490 0.077522 0.239144 +0.387451 +0.013048 0.045544 0.071245 0.075968 0.034067 0.234817 0.041158 0.013832 0.054312 0.035156 0.051017 0.127561 0.005198 0.040851 0.034572 0.058799 0.024348 0.116708 0.060037 0.008274 0.009917 0.204980 0.099896 0.010429 0.067233 0.204980 0.065298 0.004845 0.030324 0.102490 0.087584 0.239144 +0.004688 +0.016952 0.020347 0.183134 0.047984 0.017440 0.394472 0.007069 0.042790 0.074945 0.190862 0.049671 0.084548 0.012802 0.032384 0.035388 0.084892 0.047920 0.049055 0.055174 0.016867 0.046668 0.170817 0.077627 0.052193 0.057821 0.273307 0.085224 0.045066 0.020401 0.102490 0.063363 0.341634 +0 +0.039711 0.035189 0.034907 0.076994 0.019480 0.123157 0.024601 0.051109 0.085047 0.074591 0.048848 0.088341 0.042524 0.042645 0.060948 0.050680 0.025883 0.192120 0.052738 0.037569 0.068291 0.239144 0.083356 0.055198 0.000987 0.204980 0.083099 0.056732 0.009901 0.102490 0.070646 0.273307 +0.055165 +0.017320 0.068006 0.070548 0.056496 0.026333 0.047852 0.011899 0.041982 0.066543 0.114632 0.025886 0.127397 0.052729 0.005002 0.074164 0.057206 0.023858 0.049137 0.051688 0.027533 0.055094 0.307471 0.084250 0.015880 0.021429 0.204980 0.076191 0.015940 0.048507 0.273307 0.090831 0.341634 +0.014961 +0.038632 0.053194 0.065197 0.084477 0.017482 0.254475 0.025835 0.035614 0.220390 0.056159 0.048800 0.049715 0.056220 0.005708 0.167807 0.132671 0.042391 0.130192 0.055146 0.020873 0.000393 0.239144 0.075125 0.014774 0.053096 0.170817 0.057291 0.002448 0.028419 0.239144 0.068960 0.307471 +0 +0.034410 0.065170 0.041181 0.035266 0.041357 0.098172 0.004003 0.038305 0.079444 0.061823 0.029882 0.136541 0.046157 0.002861 0.047680 0.237875 0.034564 0.089890 0.061227 0.031229 0.044562 0.102490 0.056547 0.001122 0.063292 0.170817 0.094657 0.064804 0.060228 0.136654 0.084260 0.204980 +0.104171 +0.067173 0.053229 0.090020 0.068036 0.048705 0.252755 0.024061 0.058864 0.098434 0.045568 0.034727 0.123822 0.020325 0.038669 0.069737 0.046655 0.036752 0.404853 0.057174 0.033786 0.046438 0.136654 0.092810 0.011354 0.039568 0.170817 0.058444 0.045371 0.043386 0.204980 0.101232 0.273307 +0.342662 +0.021756 0.011702 0.117759 0.042086 0.021813 0.090558 0.066141 0.059147 0.047158 0.040324 0.019589 0.550092 0.014724 0.061800 0.053583 0.075784 0.040255 0.042990 0.046236 0.017314 0.024207 0.307471 0.063606 0.063573 0.033410 0.307471 0.063986 0.025200 0.011600 0.136654 0.078258 0.341634 +0.975569 +0.037612 0.046937 0.036951 0.215832 0.021681 0.044278 0.065703 0.042989 0.060994 0.034870 0.026605 0.075185 0.052098 0.052002 0.057909 0.093881 0.044860 0.069107 0.054341 0.024589 0.027977 0.204980 0.051457 0.051461 0.040450 0.204980 0.088246 0.024660 0.037857 0.136654 0.054352 0.273307 +0.015861 +0.050991 0.010557 0.120557 0.080998 0.039553 0.067309 0.016896 0.025598 0.039142 0.046007 0.023641 0.129414 0.010021 0.007904 0.066410 0.058290 0.033805 0.045499 0.059248 0.050673 0.056189 0.170817 0.055556 0.019114 0.012821 0.102490 0.061435 0.026821 0.012854 0.102490 0.078681 0.204980 +0.010624 +0.016529 0.042257 0.052061 0.037727 0.040669 0.101667 0.055393 0.026501 0.191122 0.036677 0.045321 0.052431 0.061422 0.059199 0.041907 0.042316 0.026428 0.076389 0.045001 0.013556 0.029160 0.102490 0.084718 0.046407 0.006274 0.170817 0.059549 0.058268 0.023603 0.239144 0.074761 0.307471 +0 +0.059897 0.015448 0.048365 0.072132 0.023314 0.151074 0.046261 0.028461 0.045023 0.041884 0.028869 0.172320 0.064338 0.028331 0.077208 0.045749 0.024883 0.241592 0.051254 0.024712 0.025348 0.170817 0.065094 0.040437 0.034229 0.136654 0.065086 0.052184 0.060074 0.136654 0.093407 0.239144 +0.139694 +0.019270 0.016932 0.119782 0.043818 0.039920 0.090270 0.031499 0.009605 0.051354 0.041282 0.036256 0.217811 0.045028 0.014862 0.043879 0.066547 0.032367 0.034293 0.055986 0.006692 0.050356 0.170817 0.096696 0.038267 0.059126 0.136654 0.082994 0.050469 0.065625 0.102490 0.054055 0.273307 +0.267371 +0.004962 0.017704 0.118039 0.101616 0.045744 0.074381 0.001105 0.064860 0.097241 0.064946 0.042936 0.092005 0.053442 0.058888 0.057803 0.067194 0.051015 0.136399 0.059732 0.022965 0.048008 0.136654 0.069334 0.053872 0.066440 0.170817 0.090011 0.060777 0.018365 0.102490 0.069762 0.307471 +0 +0.012924 0.021504 0.045745 0.054341 0.022144 0.576130 0.068180 0.054061 0.098995 0.050002 0.043872 0.141862 0.005250 0.046214 0.060857 0.059205 0.031240 0.510914 0.059041 0.044501 0.038066 0.102490 0.083552 0.015203 0.023993 0.136654 0.065118 0.033859 0.053866 0.170817 0.053590 0.204980 +0.625130 +0.004835 0.040188 0.065204 0.036653 0.043830 0.098316 0.054014 0.066461 0.056672 0.039309 0.042385 0.074350 0.021911 0.051737 0.039583 0.037913 0.044237 0.207585 0.066155 0.046144 0.027599 0.170817 0.086253 0.034751 0.033444 0.170817 0.079930 0.027478 0.018277 0.170817 0.070763 0.204980 +0.133985 +0.024425 0.024228 0.041865 0.057545 0.021834 0.034397 0.062813 0.018816 0.038082 0.041237 0.046547 0.157026 0.012778 0.016944 0.041146 0.076322 0.033191 0.226338 0.061902 0.010566 0.038456 0.102490 0.099507 0.065685 0.020245 0.170817 0.080065 0.000512 0.032935 0.204980 0.094183 0.273307 +0.027047 +0.054039 0.058371 0.063252 0.038824 0.037713 0.082223 0.024824 0.006327 0.034293 0.093636 0.022369 0.139230 0.048225 0.051312 0.036364 0.097101 0.049519 0.038004 0.048752 0.006164 0.067866 0.136654 0.069451 0.055090 0.039810 0.204980 0.089918 0.008086 0.066634 0.170817 0.092908 0.239144 +0.020082 +0.024548 0.052335 0.044764 0.055660 0.034206 0.248733 0.028198 0.059470 0.039936 0.045939 0.039048 0.073836 0.058045 0.067561 0.094772 0.036830 0.024658 0.041380 0.046081 0.026093 0.014280 0.239144 0.089420 0.009055 0.054884 0.204980 0.063849 0.003355 0.000653 0.136654 0.053010 0.307471 +0.002993 +0.030178 0.053279 0.053857 0.059577 0.023623 0.045473 0.017073 0.026866 0.066409 0.064905 0.042475 0.485992 0.041602 0.022198 0.035368 0.090063 0.018586 0.197388 0.039328 0.056975 0.018698 0.102490 0.081173 0.065747 0.021750 0.170817 0.076499 0.003830 0.017399 0.170817 0.092590 0.239144 +0.406219 +0.059174 0.023502 0.038451 0.069113 0.026144 0.113971 0.007769 0.005593 0.064018 0.035394 0.032665 0.180574 0.005850 0.015403 0.040089 0.094760 0.027947 0.038595 0.064374 0.057003 0.049219 0.102490 0.067356 0.055760 0.051780 0.136654 0.081461 0.002948 0.023830 0.102490 0.052896 0.307471 +0 +0.016323 0.034743 0.115724 0.037423 0.050428 0.105170 0.031874 0.014826 0.053118 0.042899 0.021725 0.357745 0.063572 0.052630 0.091896 0.114782 0.024983 0.165620 0.053406 0.029621 0.060286 0.102490 0.062415 0.031975 0.040054 0.102490 0.084036 0.021147 0.058809 0.273307 0.059427 0.341634 +0.305614 +0.060745 0.051119 0.037648 0.073203 0.025249 0.042095 0.044637 0.048150 0.122333 0.038185 0.017767 0.063124 0.052584 0.013973 0.074606 0.045459 0.020250 0.455281 0.055948 0.010390 0.031523 0.170817 0.100985 0.020690 0.027064 0.136654 0.086597 0.045934 0.056624 0.204980 0.093476 0.239144 +0.099538 +0.014520 0.067388 0.036334 0.039862 0.041292 0.074741 0.004327 0.023203 0.037903 0.088678 0.048545 0.123440 0.000426 0.037911 0.112486 0.040081 0.042281 0.091156 0.051414 0.022130 0.047268 0.170817 0.102233 0.004116 0.053666 0.136654 0.074915 0.063209 0.053876 0.102490 0.075334 0.204980 +0.014006 +0.025905 0.040194 0.067740 0.157703 0.030480 0.194903 0.006634 0.042446 0.103746 0.064618 0.019620 0.315599 0.029588 0.014515 0.051501 0.047882 0.028938 0.069821 0.057873 0.016901 0.022836 0.204980 0.069175 0.060176 0.031165 0.239144 0.088568 0.038842 0.057026 0.273307 0.092501 0.341634 +0.271452 +0.021944 0.029463 0.114222 0.037689 0.022439 0.067636 0.052167 0.036363 0.054456 0.042850 0.026837 0.060121 0.051284 0.055462 0.101546 0.036255 0.021709 0.117582 0.050468 0.065474 0.036360 0.170817 0.085683 0.044764 0.001681 0.239144 0.060500 0.055654 0.045910 0.239144 0.062534 0.341634 +0 +0.060598 0.046678 0.080884 0.058886 0.024020 0.075856 0.052334 0.052729 0.050121 0.043493 0.035812 0.055816 0.035551 0.038159 0.045179 0.038063 0.042719 0.358285 0.051449 0.010294 0.038541 0.273307 0.067491 0.018987 0.068093 0.204980 0.068443 0.044048 0.029042 0.273307 0.076450 0.341634 +0.204807 +0.014749 0.027654 0.034384 0.069512 0.029413 0.183740 0.058082 0.063102 0.035761 0.070860 0.019352 0.062996 0.045815 0.013214 0.148625 0.101972 0.040183 0.062793 0.043711 0.010147 0.004476 0.136654 0.063910 0.016357 0.065068 0.170817 0.081733 0.022100 0.049277 0.102490 0.085886 0.204980 +0.043370 +0.049875 0.033402 0.056793 0.107394 0.047959 0.099374 0.038010 0.044302 0.042752 0.045186 0.046871 0.063259 0.026758 0.063145 0.034942 0.087023 0.030670 0.157503 0.052211 0.039997 0.055687 0.204980 0.083004 0.036269 0.046458 0.136654 0.081946 0.028644 0.018032 0.239144 0.071329 0.307471 +0 +0.034420 0.030400 0.047452 0.085130 0.034467 0.149341 0.057139 0.015255 0.034499 0.067982 0.020188 0.115260 0.058357 0.045329 0.069949 0.136925 0.033717 0.065116 0.059591 0.025722 0.060634 0.239144 0.082060 0.021894 0.041300 0.102490 0.056832 0.027019 0.030604 0.239144 0.063112 0.307471 +0.009833 +0.023528 0.062088 0.048424 0.044202 0.045844 0.059757 0.008101 0.057937 0.044773 0.048897 0.037927 0.041626 0.022099 0.014878 0.052961 0.052545 0.025779 0.056305 0.040711 0.041010 0.063132 0.102490 0.063651 0.029177 0.013818 0.170817 0.070655 0.005501 0.006922 0.102490 0.078041 0.273307 +0 +0.036995 0.051704 0.137602 0.075031 0.048767 0.034623 0.024234 0.025024 0.062120 0.274434 0.029707 0.210900 0.045705 0.017164 0.061660 0.035130 0.037297 0.040608 0.052970 0.027477 0.057439 0.136654 0.089108 0.049411 0.042766 0.170817 0.099915 0.012260 0.037514 0.136654 0.065535 0.273307 +0.004049 +0.064964 0.039020 0.042819 0.103572 0.032401 0.158282 0.063770 0.051573 0.083579 0.224942 0.028699 0.066962 0.017762 0.017740 0.052140 0.116043 0.042301 0.130978 0.035079 0.008038 0.046486 0.170817 0.074840 0.006068 0.014987 0.170817 0.100074 0.023704 0.023561 0.170817 0.083744 0.239144 +0.063008 +0.065889 0.056896 0.051841 0.048580 0.037614 0.181746 0.001029 0.023631 0.045558 0.042026 0.038445 0.168920 0.018371 0.020153 0.045157 0.037068 0.042570 0.060585 0.057692 0.015142 0.016591 0.204980 0.081661 0.020252 0.025800 0.204980 0.057760 0.043723 0.050100 0.102490 0.089197 0.273307 +0.103969 +0.006752 0.062340 0.044535 0.089133 0.017827 0.098878 0.019116 0.013199 0.038687 0.048544 0.041065 0.096495 0.029373 0.035555 0.053129 0.226188 0.027718 0.311658 0.044907 0.032898 0.026776 0.170817 0.068011 0.008969 0.034467 0.204980 0.090498 0.015139 0.038573 0.136654 0.056206 0.239144 +0.214240 +0.049003 0.029108 0.040037 0.124453 0.047464 0.171266 0.006850 0.018764 0.057643 0.100908 0.025594 0.142968 0.024492 0.056256 0.046457 0.039339 0.027601 0.307785 0.054722 0.022028 0.049442 0.136654 0.101071 0.050242 0.009431 0.170817 0.071223 0.015001 0.055048 0.204980 0.096743 0.239144 +0.408095 +0.057364 0.062873 0.070824 0.104468 0.033824 0.375435 0.054652 0.032606 0.038595 0.034504 0.040954 0.037312 0.017323 0.021368 0.039603 0.038718 0.039618 0.288900 0.040087 0.003268 0.004356 0.136654 0.067353 0.044582 0.004016 0.136654 0.060961 0.019071 0.056220 0.204980 0.079822 0.341634 +0.045660 +0.023469 0.035202 0.062024 0.073623 0.037719 0.102383 0.052475 0.022544 0.063779 0.047094 0.032669 0.131444 0.015162 0.061748 0.037189 0.040875 0.040345 0.280625 0.064429 0.062167 0.066265 0.136654 0.055620 0.050201 0.034605 0.170817 0.060286 0.060553 0.061524 0.136654 0.070854 0.204980 +0.090110 +0.032962 0.012553 0.044854 0.043334 0.027464 0.045732 0.061144 0.050613 0.051352 0.089911 0.048807 0.088106 0.002048 0.001819 0.038821 0.042670 0.034587 0.037185 0.041105 0.037496 0.046473 0.102490 0.088812 0.055988 0.052941 0.170817 0.051427 0.056163 0.044797 0.102490 0.060305 0.204980 +0.007891 +0.036276 0.038206 0.088815 0.059173 0.023773 0.409022 0.001951 0.018357 0.101841 0.057851 0.023427 0.190290 0.059166 0.025717 0.070437 0.034735 0.048834 0.055417 0.053594 0.052825 0.001050 0.273307 0.089420 0.039622 0.037756 0.273307 0.057982 0.018270 0.053473 0.102490 0.087270 0.307471 +0.312834 +0.041589 0.000587 0.061784 0.097893 0.040980 0.238095 0.042256 0.023918 0.143123 0.111306 0.018073 0.221998 0.049560 0.056547 0.035111 0.058496 0.029333 0.124414 0.054033 0.028741 0.047539 0.102490 0.079479 0.043130 0.000813 0.204980 0.086896 0.042468 0.050465 0.273307 0.053785 0.341634 +0.010046 +0.060780 0.003478 0.037151 0.067761 0.017717 0.063497 0.027859 0.067794 0.050722 0.179225 0.028664 0.067705 0.026284 0.019448 0.038052 0.090671 0.049514 0.125003 0.060554 0.063380 0.036338 0.102490 0.067409 0.021351 0.037195 0.204980 0.086888 0.029253 0.051789 0.102490 0.052641 0.273307 +0.004586 +0.008461 0.013730 0.038549 0.056231 0.041085 0.083036 0.033292 0.013972 0.161113 0.034215 0.048172 0.098219 0.039739 0.016079 0.083725 0.052786 0.020650 0.054549 0.043024 0.007545 0.047574 0.239144 0.063325 0.047834 0.045346 0.239144 0.099591 0.026985 0.021074 0.170817 0.056479 0.307471 +0.001256 +0.002307 0.049890 0.039663 0.051838 0.043814 0.189684 0.032462 0.024055 0.044954 0.040494 0.035740 0.154899 0.031946 0.066344 0.034796 0.078719 0.027096 0.074611 0.051400 0.064163 0.036031 0.204980 0.087881 0.010618 0.056097 0.239144 0.052641 0.065854 0.042841 0.136654 0.098574 0.307471 +0.457603 +0.013603 0.043535 0.048574 0.085881 0.036564 0.157606 0.048221 0.062432 0.060469 0.085263 0.031312 0.061575 0.044978 0.006920 0.097277 0.049132 0.042287 0.122995 0.053838 0.008458 0.060076 0.136654 0.060091 0.016528 0.029117 0.102490 0.100540 0.036716 0.003986 0.170817 0.054404 0.204980 +0.166514 +0.039779 0.050568 0.226070 0.041425 0.048881 0.063638 0.011422 0.005018 0.105791 0.034230 0.025017 0.055492 0.047489 0.014392 0.131800 0.050759 0.022964 0.091410 0.039850 0.006714 0.043129 0.136654 0.065216 0.049482 0.015496 0.170817 0.062175 0.030484 0.026161 0.102490 0.085327 0.307471 +0 +0.036417 0.037244 0.084450 0.088788 0.018972 0.040476 0.034254 0.049115 0.080618 0.059473 0.026084 0.089424 0.042294 0.035680 0.038255 0.104150 0.030421 0.124754 0.060984 0.059813 0.020219 0.136654 0.094255 0.035614 0.035423 0.204980 0.071444 0.025891 0.006862 0.136654 0.093394 0.239144 +0 +0.012422 0.038775 0.084376 0.040862 0.036293 0.109561 0.043975 0.046207 0.044040 0.037422 0.049007 0.096180 0.016069 0.028742 0.074680 0.048216 0.036501 0.221210 0.047343 0.062707 0.056173 0.102490 0.096609 0.051759 0.025563 0.136654 0.100275 0.059747 0.065294 0.204980 0.062902 0.273307 +0.002598 +0.025554 0.036478 0.083777 0.073286 0.039501 0.126720 0.058553 0.048351 0.063654 0.036158 0.039113 0.233265 0.042648 0.039080 0.097945 0.035417 0.047409 0.143630 0.064235 0.012487 0.023269 0.170817 0.069590 0.058287 0.057694 0.170817 0.102186 0.063874 0.057391 0.102490 0.093132 0.204980 +0.172079 +0.007273 0.000708 0.053817 0.129510 0.031368 0.111717 0.007084 0.064735 0.061093 0.116375 0.018291 0.241323 0.027923 0.053868 0.034660 0.043108 0.020753 0.249518 0.045066 0.043407 0.058680 0.204980 0.067396 0.025485 0.024117 0.136654 0.101490 0.011197 0.018884 0.170817 0.083914 0.307471 +0.276850 +0.030260 0.008295 0.169386 0.253917 0.033736 0.098227 0.008112 0.013508 0.070073 0.045159 0.023784 0.147328 0.059806 0.038596 0.087435 0.088111 0.022821 0.056708 0.040189 0.000747 0.032184 0.204980 0.074210 0.040462 0.060137 0.239144 0.063462 0.003911 0.018059 0.170817 0.058862 0.273307 +0.002468 +0.045994 0.020863 0.045960 0.046729 0.042468 0.206013 0.017857 0.044698 0.053694 0.046506 0.032719 0.054528 0.051275 0.012127 0.070030 0.053556 0.036195 0.270669 0.050081 0.053779 0.051429 0.136654 0.077745 0.043641 0.048777 0.136654 0.053506 0.019779 0.039561 0.136654 0.074100 0.204980 +0.043647 +0.045060 0.031119 0.085800 0.073313 0.048702 0.039761 0.019633 0.009627 0.064591 0.062491 0.034612 0.120825 0.027315 0.060484 0.070813 0.048458 0.044833 0.270026 0.049148 0.025366 0.036054 0.136654 0.056977 0.026848 0.010877 0.170817 0.088035 0.036518 0.011740 0.102490 0.099457 0.204980 +0.012159 +0.048416 0.045541 0.125152 0.041550 0.021144 0.115671 0.029832 0.065073 0.076330 0.062050 0.039913 0.037716 0.034835 0.061986 0.089004 0.136696 0.046814 0.056850 0.042177 0.042573 0.016580 0.136654 0.084928 0.013867 0.049545 0.170817 0.068257 0.059092 0.055158 0.136654 0.071991 0.204980 +0 +0.046742 0.001612 0.059617 0.070979 0.028536 0.075712 0.047652 0.040973 0.075163 0.041851 0.026003 0.141816 0.061577 0.051500 0.082109 0.165465 0.017645 0.328395 0.046872 0.013069 0.062295 0.136654 0.073778 0.026312 0.017418 0.239144 0.052220 0.047269 0.064198 0.102490 0.059765 0.273307 +0.011824 +0.011782 0.004839 0.064205 0.189284 0.019610 0.247537 0.010060 0.044975 0.088112 0.049127 0.024793 0.306193 0.059200 0.028171 0.048228 0.037055 0.042125 0.071033 0.050611 0.013594 0.030483 0.307471 0.069847 0.051584 0.052187 0.273307 0.091756 0.046802 0.032229 0.307471 0.090273 0.341634 +0.345582 +0.027366 0.003441 0.053513 0.036897 0.028815 0.200746 0.013433 0.007875 0.083287 0.113893 0.028501 0.216928 0.002073 0.014695 0.039104 0.048066 0.043050 0.105816 0.036817 0.002626 0.038391 0.102490 0.082831 0.045999 0.068135 0.239144 0.067235 0.048449 0.005984 0.239144 0.061787 0.273307 +0.139647 +0.036108 0.036329 0.082910 0.035786 0.048119 0.058141 0.016117 0.008706 0.046129 0.144734 0.036826 0.211426 0.038943 0.000997 0.036945 0.050327 0.021048 0.080190 0.061642 0.000384 0.006558 0.170817 0.063208 0.067799 0.052361 0.136654 0.093667 0.065247 0.013266 0.136654 0.054279 0.307471 +0.126475 +0.014217 0.066062 0.086727 0.061714 0.047533 0.067318 0.061277 0.039325 0.034869 0.048942 0.026031 0.096656 0.050589 0.022731 0.150866 0.045075 0.044254 0.082436 0.055014 0.008633 0.042382 0.239144 0.076854 0.065009 0.057104 0.136654 0.071593 0.009917 0.040239 0.204980 0.067474 0.273307 +0 +0.054222 0.034210 0.037778 0.062236 0.029632 0.035196 0.040106 0.031900 0.087039 0.034567 0.022349 0.267590 0.015544 0.065622 0.056803 0.042168 0.029728 0.157986 0.057277 0.042443 0.041009 0.102490 0.093422 0.039567 0.052202 0.102490 0.085626 0.007101 0.033416 0.102490 0.076219 0.204980 +0.045038 +0.065972 0.025115 0.057782 0.046045 0.032921 0.173110 0.022579 0.065303 0.036762 0.038958 0.048340 0.188333 0.060242 0.029969 0.047760 0.073679 0.029449 0.469806 0.058697 0.044885 0.000714 0.239144 0.065751 0.010136 0.010979 0.170817 0.095809 0.004384 0.004842 0.136654 0.091701 0.273307 +0.476809 +0.033758 0.059393 0.052664 0.078073 0.031063 0.062226 0.064680 0.014294 0.059375 0.035788 0.020663 0.084603 0.063165 0.000090 0.039149 0.034611 0.022152 0.046343 0.047731 0.015141 0.058458 0.170817 0.057854 0.001072 0.032276 0.102490 0.064225 0.025676 0.015552 0.136654 0.075343 0.273307 +0 +0.039730 0.016278 0.155688 0.037901 0.032677 0.098766 0.063474 0.043956 0.065984 0.036261 0.047215 0.047083 0.013246 0.019720 0.125844 0.067798 0.033509 0.066821 0.051135 0.000154 0.054644 0.204980 0.102358 0.024017 0.026134 0.239144 0.073062 0.016512 0.035797 0.204980 0.094501 0.307471 +0 +0.067635 0.043472 0.035473 0.088530 0.031904 0.057180 0.050337 0.030843 0.043150 0.076672 0.050537 0.053272 0.055497 0.023264 0.039217 0.073298 0.025525 0.074127 0.058831 0.038548 0.028442 0.136654 0.062213 0.005272 0.030484 0.204980 0.080529 0.033713 0.024232 0.170817 0.095583 0.273307 +0.002427 +0.027648 0.057055 0.062551 0.201986 0.035920 0.182085 0.064325 0.038826 0.040808 0.043988 0.039082 0.140029 0.050195 0.050340 0.091504 0.070919 0.019558 0.094487 0.044042 0.005997 0.029061 0.102490 0.079893 0.016214 0.008299 0.239144 0.098576 0.033229 0.056940 0.239144 0.060418 0.273307 +0.083753 +0.049732 0.014489 0.121261 0.041341 0.023539 0.055523 0.019651 0.024269 0.069036 0.053320 0.025934 0.063907 0.035806 0.040720 0.047290 0.102199 0.050502 0.036497 0.046793 0.012901 0.004121 0.170817 0.052798 0.067685 0.061076 0.136654 0.059554 0.008257 0.058718 0.170817 0.082419 0.204980 +0 +0.035064 0.063801 0.040981 0.043251 0.043701 0.076461 0.037419 0.067128 0.070631 0.129096 0.017908 0.117779 0.002029 0.012485 0.048794 0.042385 0.030097 0.094383 0.065794 0.054488 0.059163 0.204980 0.079255 0.060633 0.015734 0.273307 0.069454 0.011165 0.067044 0.136654 0.075500 0.341634 +0 +0.004354 0.049417 0.044922 0.046097 0.021129 0.059808 0.049625 0.037902 0.125720 0.045201 0.028165 0.054066 0.018017 0.047255 0.079428 0.067128 0.019880 0.035208 0.056410 0.063729 0.048282 0.102490 0.061094 0.067596 0.027985 0.136654 0.072604 0.037507 0.060399 0.136654 0.085303 0.204980 +0 +0.031758 0.063762 0.052049 0.036002 0.032572 0.181431 0.000250 0.033872 0.059098 0.077433 0.046011 0.160478 0.012632 0.016273 0.069396 0.054445 0.044143 0.034238 0.058940 0.067871 0.067321 0.136654 0.083671 0.015042 0.018126 0.102490 0.087693 0.059088 0.061100 0.204980 0.099394 0.239144 +0.013144 +0.011814 0.015477 0.051239 0.040915 0.028732 0.217868 0.011018 0.058045 0.075149 0.116744 0.050717 0.135446 0.059500 0.001746 0.038776 0.055315 0.048917 0.107883 0.042777 0.034172 0.064417 0.204980 0.079028 0.003859 0.017381 0.204980 0.054711 0.020270 0.011790 0.204980 0.094105 0.239144 +0.186510 +0.025895 0.014674 0.055653 0.035325 0.021152 0.161619 0.025662 0.055531 0.044570 0.048565 0.046477 0.361006 0.052467 0.023530 0.076215 0.041044 0.040106 0.065429 0.037948 0.054448 0.037056 0.102490 0.055129 0.038062 0.012475 0.204980 0.086026 0.009923 0.049177 0.136654 0.101119 0.341634 +0.477295 +0.050128 0.051826 0.065580 0.062680 0.029334 0.109966 0.028512 0.033990 0.086092 0.034989 0.036625 0.375727 0.029756 0.054324 0.079914 0.042373 0.041948 0.236626 0.064493 0.011270 0.003286 0.307471 0.079286 0.043925 0.015681 0.170817 0.095482 0.016214 0.026123 0.307471 0.098913 0.341634 +0.161505 +0.012223 0.011510 0.038734 0.080980 0.018908 0.097256 0.059291 0.049669 0.079089 0.073191 0.033097 0.072917 0.032831 0.025298 0.054603 0.049223 0.037499 0.212785 0.063267 0.000167 0.008242 0.136654 0.087870 0.063690 0.035624 0.170817 0.053986 0.038622 0.009375 0.102490 0.076307 0.239144 +0.004081 +0.036403 0.023739 0.099259 0.160161 0.020446 0.142652 0.000401 0.057581 0.100442 0.052165 0.032297 0.083584 0.038990 0.017556 0.034582 0.073092 0.033112 0.164213 0.053799 0.008295 0.034604 0.170817 0.080871 0.018085 0.034098 0.239144 0.071578 0.016223 0.053012 0.170817 0.062228 0.307471 +0.015349 +0.022681 0.040348 0.039943 0.040682 0.025174 0.197310 0.037072 0.005212 0.041250 0.080095 0.048800 0.041663 0.046721 0.037561 0.128961 0.075879 0.033696 0.099862 0.040271 0.062399 0.060861 0.170817 0.061980 0.058484 0.039005 0.102490 0.055547 0.025492 0.060937 0.102490 0.065809 0.204980 +0.006091 +0.001225 0.060896 0.054048 0.052328 0.027355 0.085528 0.038742 0.034173 0.101189 0.038701 0.046848 0.066509 0.041978 0.002387 0.071493 0.036655 0.023325 0.244659 0.055240 0.025964 0.002948 0.239144 0.076985 0.052070 0.004236 0.170817 0.057031 0.003946 0.055372 0.239144 0.085747 0.273307 +0.246766 +0.067482 0.044190 0.099830 0.047570 0.039739 0.146649 0.010511 0.011680 0.038589 0.047226 0.039074 0.131016 0.028300 0.029829 0.043699 0.043563 0.025955 0.270943 0.063112 0.038539 0.014279 0.204980 0.094096 0.035157 0.047972 0.170817 0.064859 0.065264 0.060016 0.204980 0.085938 0.341634 +0.248855 +0.049206 0.014879 0.056803 0.042301 0.046374 0.055099 0.040984 0.029204 0.087672 0.044623 0.022832 0.283623 0.028310 0.002901 0.057769 0.154616 0.025431 0.035741 0.060429 0.051473 0.050693 0.239144 0.090445 0.012062 0.064823 0.170817 0.077823 0.038955 0.034480 0.204980 0.088234 0.307471 +0.016965 +0.024633 0.040195 0.087912 0.070239 0.047570 0.170534 0.004609 0.007203 0.060853 0.043885 0.025404 0.167828 0.019466 0.035923 0.041733 0.040937 0.030491 0.314463 0.039045 0.049756 0.045148 0.170817 0.052689 0.061416 0.012907 0.136654 0.065335 0.024424 0.060173 0.204980 0.062925 0.239144 +0.093591 +0.037693 0.062413 0.052227 0.056832 0.031409 0.051459 0.007422 0.040112 0.110168 0.042860 0.025372 0.367723 0.063529 0.047587 0.063603 0.042257 0.028262 0.147085 0.057533 0.052037 0.021676 0.273307 0.079043 0.023711 0.018965 0.136654 0.075844 0.007919 0.015481 0.136654 0.074145 0.307471 +0.293678 +0.043794 0.044906 0.044860 0.107293 0.031947 0.078963 0.014258 0.067851 0.049318 0.092390 0.028431 0.048747 0.045959 0.030890 0.058635 0.042347 0.035412 0.056495 0.054602 0.032623 0.064184 0.170817 0.057778 0.011217 0.007840 0.170817 0.079037 0.033500 0.022518 0.136654 0.097417 0.341634 +0 +0.025681 0.066682 0.077871 0.043961 0.018928 0.088280 0.033149 0.000860 0.057132 0.045113 0.022983 0.040550 0.024144 0.033241 0.050953 0.123056 0.034215 0.130172 0.043331 0.037096 0.031465 0.102490 0.063648 0.041878 0.035694 0.273307 0.093153 0.052795 0.045329 0.239144 0.076162 0.307471 +0.012573 +0.050582 0.060188 0.061112 0.044822 0.033790 0.126776 0.062549 0.031215 0.035384 0.080928 0.018034 0.085769 0.067801 0.059412 0.038953 0.184154 0.028027 0.046399 0.059293 0.037387 0.067775 0.136654 0.078753 0.021213 0.059140 0.170817 0.052185 0.010764 0.002126 0.204980 0.065289 0.273307 +0.016094 +0.034064 0.067721 0.037291 0.074800 0.035716 0.104750 0.006697 0.040275 0.054823 0.035641 0.022763 0.045572 0.020949 0.048560 0.049681 0.058043 0.033998 0.052236 0.052938 0.016896 0.011253 0.170817 0.071231 0.021195 0.010393 0.170817 0.054743 0.039759 0.038695 0.204980 0.077464 0.239144 +0 +0.011673 0.039687 0.082104 0.037263 0.025778 0.363419 0.022304 0.027539 0.037324 0.056779 0.049860 0.087313 0.039609 0.065674 0.050352 0.121702 0.046236 0.118524 0.048632 0.004154 0.042880 0.239144 0.082391 0.046793 0.008046 0.239144 0.055757 0.047839 0.052259 0.170817 0.073997 0.307471 +0.309485 +0.062798 0.017998 0.079562 0.105263 0.026366 0.230267 0.006910 0.024503 0.086387 0.050904 0.035792 0.158448 0.009472 0.011961 0.043125 0.105472 0.023799 0.109620 0.052455 0.045003 0.031283 0.136654 0.058958 0.016590 0.009126 0.239144 0.089132 0.036840 0.009179 0.136654 0.094195 0.273307 +0.260241 +0.062532 0.019492 0.037354 0.102621 0.036963 0.095500 0.018856 0.010881 0.076528 0.049564 0.030573 0.141643 0.064914 0.062443 0.064667 0.068316 0.024274 0.050326 0.065454 0.044536 0.065065 0.273307 0.094827 0.006086 0.054561 0.170817 0.085541 0.039605 0.030416 0.170817 0.089287 0.341634 +0.004199 +0.000771 0.062473 0.128842 0.153599 0.025019 0.047685 0.012602 0.007244 0.038305 0.035921 0.026887 0.077675 0.064057 0.068116 0.037380 0.178385 0.046234 0.113568 0.042243 0.014870 0.052757 0.102490 0.076648 0.020607 0.053453 0.273307 0.064258 0.008405 0.056450 0.239144 0.086087 0.307471 +0.011729 +0.016451 0.061769 0.110956 0.067880 0.043169 0.150071 0.063456 0.042225 0.117153 0.044207 0.042294 0.040723 0.014431 0.009841 0.055095 0.099761 0.026087 0.195206 0.056480 0.012976 0.013838 0.136654 0.059924 0.066640 0.064888 0.204980 0.051688 0.013465 0.063766 0.136654 0.089187 0.239144 +0.068978 +0.062900 0.060910 0.041606 0.040486 0.031969 0.050997 0.053596 0.040544 0.108616 0.042766 0.017398 0.059195 0.060894 0.033616 0.074316 0.196328 0.048030 0.083089 0.052610 0.064827 0.020318 0.136654 0.082120 0.052732 0.055251 0.136654 0.096142 0.047563 0.038343 0.102490 0.080521 0.204980 +0.002181 +0.037320 0.030947 0.046927 0.069064 0.023172 0.057364 0.016048 0.006816 0.056783 0.043175 0.023615 0.108465 0.035128 0.000801 0.035074 0.079491 0.043638 0.045454 0.039612 0.003857 0.015086 0.102490 0.061367 0.020212 0.016499 0.307471 0.061946 0.013076 0.062580 0.102490 0.063398 0.341634 +0 +0.057207 0.037548 0.053430 0.043636 0.031763 0.101073 0.021886 0.019299 0.098281 0.080239 0.020211 0.058345 0.007178 0.017228 0.039064 0.056889 0.042598 0.191144 0.051254 0.067402 0.063260 0.204980 0.054139 0.036770 0.022225 0.170817 0.085852 0.036154 0.023179 0.136654 0.087480 0.239144 +0.072894 +0.060352 0.000863 0.046377 0.042508 0.049291 0.197664 0.053744 0.032274 0.045398 0.063591 0.035576 0.036882 0.034750 0.011080 0.069552 0.061352 0.036906 0.404609 0.044893 0.042279 0.020497 0.170817 0.056933 0.027678 0.057847 0.170817 0.060261 0.058109 0.044964 0.102490 0.072344 0.239144 +0.866372 +0.061185 0.063662 0.153929 0.043458 0.024075 0.121883 0.040823 0.057532 0.074809 0.113041 0.034357 0.100494 0.018131 0.056684 0.040374 0.105509 0.045642 0.284194 0.051785 0.035348 0.060215 0.102490 0.074805 0.009904 0.039622 0.102490 0.052793 0.023734 0.044898 0.102490 0.097866 0.239144 +0.166748 +0.027410 0.052535 0.098038 0.039589 0.024903 0.135188 0.033402 0.015815 0.045421 0.044834 0.036573 0.165715 0.001693 0.038607 0.077282 0.039604 0.032181 0.497758 0.063948 0.027099 0.066443 0.170817 0.081098 0.045797 0.067855 0.136654 0.056513 0.033343 0.000704 0.102490 0.060800 0.204980 +0.741855 +0.054714 0.001386 0.088765 0.096409 0.045350 0.113908 0.052058 0.001120 0.100142 0.034943 0.025224 0.048487 0.053622 0.042654 0.054725 0.073318 0.047394 0.454334 0.059797 0.009358 0.021644 0.102490 0.080963 0.062615 0.009908 0.102490 0.052672 0.012402 0.051804 0.170817 0.061301 0.239144 +0.260023 +0.015611 0.012392 0.039944 0.041251 0.047465 0.071083 0.015341 0.004491 0.089451 0.114787 0.040611 0.097561 0.010705 0.014458 0.051961 0.042208 0.024239 0.070341 0.044398 0.051317 0.002694 0.102490 0.073411 0.060712 0.027577 0.102490 0.070015 0.068231 0.031765 0.102490 0.079628 0.204980 +0.034083 +0.025539 0.031181 0.042723 0.038707 0.023243 0.158431 0.018215 0.036238 0.117851 0.164297 0.041828 0.174085 0.015829 0.010160 0.061634 0.111614 0.029466 0.188518 0.055864 0.013796 0.039507 0.136654 0.082562 0.024300 0.047388 0.136654 0.083753 0.046465 0.019259 0.102490 0.056061 0.307471 +0 +0.008623 0.028431 0.061254 0.075325 0.047466 0.072807 0.038619 0.003757 0.157974 0.105042 0.031428 0.042709 0.041832 0.066066 0.045401 0.058679 0.029384 0.102730 0.052861 0.025619 0.028012 0.204980 0.062333 0.001358 0.019154 0.136654 0.096383 0.057132 0.011758 0.204980 0.056064 0.273307 +0.004895 +0.015276 0.027945 0.061343 0.072005 0.033792 0.208992 0.052599 0.059441 0.089551 0.055951 0.027889 0.088360 0.000577 0.060794 0.055576 0.034673 0.049498 0.035478 0.054905 0.030841 0.053128 0.170817 0.078891 0.042484 0.064999 0.136654 0.065433 0.067611 0.039887 0.170817 0.072784 0.239144 +0.309071 +0.011391 0.056548 0.084325 0.056208 0.022678 0.046023 0.001441 0.050668 0.048290 0.043681 0.022282 0.043705 0.068138 0.033811 0.214227 0.153445 0.019541 0.073267 0.059807 0.029267 0.022639 0.170817 0.076943 0.065488 0.044279 0.102490 0.102117 0.019605 0.024136 0.239144 0.067046 0.273307 +0 +0.030788 0.011206 0.037332 0.069695 0.020526 0.112849 0.060736 0.048953 0.069408 0.112599 0.028526 0.249474 0.007455 0.002406 0.036494 0.053456 0.045853 0.066343 0.049819 0.036217 0.052467 0.136654 0.068527 0.050810 0.008491 0.307471 0.082741 0.057442 0.030286 0.204980 0.061694 0.341634 +0.043799 +0.046192 0.007051 0.052310 0.116618 0.028606 0.156908 0.028662 0.058379 0.034515 0.040878 0.018997 0.098930 0.042968 0.044725 0.037636 0.117145 0.022500 0.105993 0.041896 0.034256 0.062396 0.102490 0.085633 0.033585 0.011669 0.102490 0.088502 0.003201 0.016539 0.102490 0.088760 0.204980 +0.080407 +0.001157 0.064257 0.037688 0.113563 0.034885 0.295606 0.054347 0.059370 0.114300 0.038520 0.017287 0.203553 0.032294 0.044018 0.036497 0.113369 0.036585 0.105978 0.051427 0.061010 0.050272 0.239144 0.092720 0.016426 0.052168 0.239144 0.079038 0.032869 0.028313 0.102490 0.078236 0.307471 +0.328975 +0.044620 0.054772 0.096132 0.132585 0.025367 0.154097 0.003628 0.040993 0.038454 0.042692 0.039327 0.684303 0.030667 0.019060 0.089980 0.051594 0.024157 0.061884 0.056685 0.040386 0.020501 0.102490 0.061247 0.066911 0.057129 0.273307 0.076712 0.041418 0.024218 0.136654 0.068949 0.307471 +0.679954 +0.035809 0.052680 0.084981 0.055716 0.047413 0.044304 0.035595 0.051885 0.052538 0.046492 0.021181 0.093247 0.018631 0.013449 0.051495 0.065755 0.024315 0.038370 0.059906 0.052216 0.048520 0.136654 0.100748 0.042609 0.022030 0.136654 0.063505 0.066282 0.061883 0.102490 0.097426 0.204980 +0 +0.009532 0.034258 0.046766 0.156547 0.041791 0.272415 0.051194 0.022420 0.054271 0.036576 0.046109 0.084729 0.052890 0.016908 0.041223 0.081624 0.038412 0.179803 0.055131 0.022001 0.067899 0.170817 0.099474 0.015444 0.043401 0.170817 0.057028 0.058188 0.055399 0.204980 0.068502 0.307471 +0.270168 +0.054728 0.011236 0.071145 0.046051 0.020642 0.064611 0.000142 0.051476 0.124818 0.102554 0.032228 0.181282 0.020412 0.003562 0.095332 0.095932 0.026843 0.070109 0.061071 0.019879 0.024616 0.204980 0.098500 0.006949 0.034026 0.204980 0.060259 0.035827 0.036858 0.170817 0.082635 0.239144 +0.112404 +0.050592 0.035882 0.061086 0.151972 0.040083 0.415471 0.046602 0.006524 0.041129 0.042856 0.017562 0.201870 0.039894 0.042941 0.045016 0.037832 0.026943 0.262244 0.045609 0.030962 0.032397 0.102490 0.052947 0.022075 0.016056 0.136654 0.063170 0.059812 0.014796 0.170817 0.088233 0.204980 +0.685655 +0.026130 0.016277 0.038147 0.110902 0.017252 0.198301 0.007009 0.022723 0.041758 0.056231 0.040222 0.086618 0.036906 0.010375 0.101960 0.041045 0.033141 0.121478 0.056057 0.056701 0.005857 0.170817 0.056504 0.059719 0.003747 0.170817 0.099924 0.053064 0.020910 0.239144 0.064270 0.341634 +0.029097 +0.057261 0.005586 0.060797 0.044603 0.017762 0.078389 0.046861 0.048349 0.055407 0.074657 0.023342 0.062348 0.028276 0.007424 0.035990 0.048970 0.024062 0.248886 0.055182 0.008761 0.041540 0.307471 0.056656 0.042339 0.018042 0.273307 0.086728 0.059687 0.001419 0.307471 0.057685 0.341634 +0.011455 +0.005007 0.067563 0.088867 0.055129 0.043945 0.034735 0.062007 0.027041 0.074152 0.269577 0.024996 0.047630 0.035469 0.054444 0.036734 0.094258 0.044548 0.037498 0.046532 0.006110 0.005222 0.204980 0.052401 0.019373 0.068101 0.239144 0.082043 0.032655 0.035806 0.239144 0.060470 0.341634 +0 +0.001037 0.007384 0.094021 0.070940 0.033033 0.149568 0.027044 0.052916 0.041325 0.059266 0.046724 0.252117 0.022742 0.006175 0.037143 0.073040 0.036355 0.112020 0.059106 0.065123 0.036657 0.273307 0.098879 0.052387 0.015613 0.102490 0.061788 0.012483 0.020846 0.204980 0.091222 0.341634 +0.140051 +0.001673 0.014747 0.047208 0.037717 0.037455 0.085643 0.039424 0.046164 0.039178 0.061137 0.023116 0.340698 0.010795 0.016412 0.134781 0.038673 0.048395 0.355219 0.053126 0.060060 0.018048 0.170817 0.073408 0.026908 0.029906 0.204980 0.069937 0.057452 0.051623 0.170817 0.080121 0.307471 +0.482965 +0.023366 0.003968 0.037063 0.058767 0.041590 0.149727 0.045322 0.011653 0.058549 0.035555 0.021205 0.109367 0.037899 0.057958 0.037550 0.140160 0.039316 0.333456 0.061448 0.058422 0.006509 0.204980 0.083566 0.068098 0.055281 0.170817 0.082112 0.059868 0.050727 0.170817 0.070907 0.307471 +0 +0.043901 0.060776 0.211398 0.047402 0.017260 0.089279 0.020799 0.030069 0.052919 0.083701 0.028306 0.341277 0.035345 0.060561 0.035774 0.047576 0.047504 0.230056 0.039780 0.064150 0.001482 0.273307 0.072483 0.064671 0.054780 0.239144 0.074955 0.058463 0.049567 0.136654 0.063007 0.307471 +0.706383 +0.043437 0.039084 0.050423 0.052501 0.018744 0.165521 0.007099 0.052128 0.075563 0.102171 0.042768 0.104448 0.018218 0.040460 0.039436 0.071497 0.028020 0.098837 0.046887 0.034107 0.017857 0.204980 0.053258 0.050159 0.040070 0.136654 0.082627 0.041649 0.001677 0.136654 0.089544 0.239144 +0.004078 +0.053718 0.049662 0.048952 0.072031 0.028239 0.074976 0.007165 0.022074 0.037380 0.080807 0.037196 0.035750 0.013491 0.065393 0.064474 0.053369 0.018953 0.040375 0.043000 0.050727 0.061140 0.102490 0.055458 0.014924 0.066553 0.170817 0.075824 0.036302 0.031333 0.102490 0.085541 0.307471 +0 +0.036857 0.043082 0.098606 0.037589 0.041261 0.284956 0.005069 0.009410 0.034492 0.037719 0.045748 0.081952 0.001424 0.061773 0.061041 0.044203 0.032633 0.074283 0.055131 0.049432 0.037050 0.102490 0.065765 0.056310 0.028999 0.136654 0.077489 0.052500 0.051587 0.136654 0.088558 0.307471 +0.030847 +0.021157 0.002213 0.079415 0.055901 0.019764 0.205955 0.016990 0.008544 0.047084 0.070492 0.041999 0.072518 0.056472 0.043086 0.041045 0.110741 0.034809 0.132446 0.059348 0.064614 0.016624 0.102490 0.081748 0.044238 0.054320 0.170817 0.079397 0.019974 0.024871 0.170817 0.091232 0.204980 +0.124522 +0.059884 0.027381 0.043752 0.039349 0.032307 0.247540 0.057285 0.029372 0.043681 0.068146 0.022140 0.427723 0.019376 0.067530 0.048754 0.046742 0.048802 0.042671 0.042217 0.067606 0.013761 0.170817 0.089521 0.034315 0.041065 0.102490 0.056952 0.047331 0.063485 0.204980 0.073138 0.239144 +0.363591 +0.001006 0.001825 0.049805 0.036808 0.028715 0.214219 0.032068 0.030944 0.230466 0.042709 0.023753 0.085392 0.029302 0.000507 0.077282 0.050023 0.035904 0.129118 0.057547 0.028715 0.004597 0.102490 0.088736 0.034405 0.051154 0.136654 0.079467 0.054824 0.045208 0.170817 0.088769 0.341634 +0.088507 +0.038022 0.005518 0.053923 0.111422 0.018523 0.044362 0.016698 0.015984 0.048120 0.052038 0.037440 0.048877 0.058816 0.036377 0.035518 0.047055 0.032706 0.075506 0.039537 0.003532 0.007203 0.136654 0.097817 0.055261 0.015611 0.204980 0.084616 0.015186 0.062856 0.170817 0.071217 0.307471 +0.002465 +0.016104 0.066018 0.055893 0.123457 0.036252 0.285553 0.064548 0.051264 0.181250 0.078934 0.023677 0.090654 0.059522 0.016241 0.039053 0.035754 0.025964 0.512272 0.054589 0.017594 0.036206 0.170817 0.079845 0.037855 0.020618 0.273307 0.089629 0.057820 0.057027 0.136654 0.064625 0.307471 +0.240929 +0.012444 0.049278 0.068595 0.044605 0.029924 0.192526 0.040954 0.044582 0.057676 0.038108 0.019669 0.244021 0.021940 0.057820 0.096175 0.090952 0.027191 0.082935 0.052547 0.012867 0.014548 0.136654 0.069395 0.058339 0.019631 0.170817 0.059346 0.010935 0.066461 0.204980 0.102091 0.273307 +0.083479 +0.011846 0.018346 0.145014 0.075610 0.030948 0.090676 0.063739 0.048950 0.038925 0.058000 0.037658 0.095329 0.055616 0.014902 0.049025 0.153364 0.046492 0.064879 0.049295 0.064033 0.007602 0.239144 0.074909 0.068124 0.018149 0.239144 0.057943 0.053488 0.024286 0.239144 0.066112 0.307471 +0.011017 +0.055345 0.003127 0.059494 0.095472 0.040211 0.227418 0.022199 0.004767 0.079946 0.081841 0.030153 0.160984 0.039957 0.043995 0.224760 0.073756 0.032936 0.085989 0.064441 0.003653 0.010555 0.307471 0.066492 0.015445 0.056170 0.170817 0.097263 0.045596 0.019750 0.307471 0.085020 0.341634 +0.088690 +0.021844 0.016802 0.093738 0.049425 0.025975 0.153838 0.064279 0.037356 0.094351 0.048448 0.033658 0.142124 0.059320 0.013954 0.056043 0.056631 0.035904 0.042216 0.054026 0.011577 0.019399 0.273307 0.095889 0.049202 0.061376 0.136654 0.083832 0.015175 0.034296 0.204980 0.085873 0.341634 +0.019880 +0.006380 0.052143 0.049716 0.111396 0.034419 0.108475 0.015038 0.056346 0.043558 0.095840 0.035769 0.131542 0.001757 0.025125 0.098329 0.079307 0.022259 0.163089 0.057592 0.067700 0.067378 0.273307 0.059223 0.064324 0.064053 0.102490 0.102096 0.040640 0.026140 0.136654 0.095597 0.341634 +0.005771 +0.021823 0.059121 0.057094 0.054539 0.027145 0.121491 0.068189 0.018561 0.043798 0.076660 0.024593 0.061358 0.017424 0.033524 0.107299 0.115837 0.027730 0.215698 0.058707 0.058932 0.002860 0.136654 0.070317 0.067424 0.050675 0.170817 0.094055 0.066539 0.048029 0.102490 0.075972 0.204980 +0.034604 +0.007415 0.045420 0.062990 0.083224 0.039949 0.036153 0.034885 0.042111 0.059656 0.061290 0.050125 0.055979 0.026443 0.013385 0.036556 0.036466 0.034628 0.091004 0.060821 0.021849 0.034947 0.204980 0.074554 0.023245 0.052253 0.136654 0.091553 0.040942 0.010825 0.136654 0.098961 0.273307 +0 +0.061674 0.055278 0.077764 0.077852 0.050477 0.046454 0.036820 0.022646 0.042597 0.082214 0.030338 0.097938 0.064799 0.022701 0.143701 0.060860 0.040843 0.139989 0.051824 0.052803 0.067477 0.136654 0.064620 0.005678 0.003614 0.307471 0.085651 0.061843 0.008146 0.307471 0.077735 0.341634 +0.043948 +0.044547 0.033575 0.065695 0.082005 0.049742 0.088164 0.041027 0.016662 0.058064 0.037772 0.045933 0.143918 0.067840 0.023924 0.049025 0.046449 0.049919 0.099723 0.059190 0.065771 0.041675 0.102490 0.065689 0.000282 0.065317 0.102490 0.081597 0.040100 0.012689 0.136654 0.071090 0.204980 +0.076148 +0.021909 0.028643 0.035275 0.097214 0.039270 0.957106 0.029242 0.000166 0.047364 0.055649 0.026227 0.122558 0.002063 0.015214 0.074706 0.050475 0.038063 0.086050 0.060538 0.011798 0.031924 0.239144 0.067390 0.009007 0.022141 0.170817 0.080714 0.055757 0.059516 0.102490 0.072623 0.273307 +0.724097 +0.006748 0.042464 0.099193 0.059485 0.044944 0.188001 0.063083 0.050620 0.052261 0.039867 0.050381 0.150470 0.012885 0.025286 0.065150 0.062003 0.036022 0.071191 0.042664 0.064688 0.008235 0.136654 0.055063 0.044554 0.053396 0.136654 0.053635 0.050546 0.054938 0.204980 0.099278 0.239144 +0.106522 +0.056206 0.020483 0.038904 0.044602 0.050569 0.127113 0.018412 0.026598 0.107196 0.099901 0.023593 0.096576 0.005721 0.046716 0.056198 0.053728 0.042758 0.194006 0.058493 0.067289 0.020300 0.273307 0.100871 0.009072 0.011181 0.239144 0.054365 0.002085 0.025004 0.170817 0.055641 0.307471 +0.018698 +0.011000 0.059422 0.182425 0.053662 0.044486 0.068481 0.062907 0.000783 0.055448 0.037124 0.030265 0.082831 0.022456 0.008073 0.048123 0.050981 0.018020 0.288982 0.055660 0.045139 0.040717 0.307471 0.070478 0.015397 0.019806 0.170817 0.069693 0.003665 0.047057 0.273307 0.083666 0.341634 +0 +0.004551 0.057014 0.141024 0.045379 0.022176 0.180479 0.022591 0.013644 0.038018 0.056950 0.022290 0.096295 0.013455 0.029533 0.036820 0.093483 0.017822 0.155753 0.041430 0.059439 0.002645 0.170817 0.063156 0.033104 0.047414 0.170817 0.095681 0.049016 0.019683 0.170817 0.081131 0.273307 +0.278397 +0.048287 0.008197 0.047968 0.150025 0.038747 0.056858 0.007860 0.018339 0.037671 0.056081 0.027999 0.273532 0.043633 0.015865 0.088309 0.044310 0.046190 0.285788 0.045289 0.047045 0.054584 0.102490 0.064161 0.021698 0.044423 0.136654 0.067299 0.005790 0.030189 0.102490 0.061767 0.204980 +0.179351 +0.002246 0.063303 0.083412 0.034166 0.027039 0.096769 0.057107 0.002390 0.071755 0.048585 0.032138 0.309834 0.029181 0.004579 0.037598 0.064596 0.033073 0.158247 0.044761 0.060413 0.041688 0.204980 0.076283 0.016581 0.028110 0.136654 0.055441 0.051489 0.061973 0.170817 0.098087 0.239144 +0.565562 +0.049663 0.053230 0.035016 0.049035 0.049076 0.211615 0.021777 0.033955 0.074121 0.071040 0.037797 0.132151 0.014430 0.011477 0.079643 0.079227 0.027625 0.200796 0.055962 0.013683 0.004423 0.239144 0.087167 0.039337 0.053760 0.102490 0.066749 0.044737 0.055879 0.102490 0.100517 0.307471 +0.003757 +0.058021 0.002063 0.036947 0.058492 0.019629 0.056536 0.038099 0.052506 0.056722 0.043359 0.033388 0.259530 0.061372 0.033952 0.048568 0.075175 0.050256 0.215285 0.040070 0.058938 0.028508 0.204980 0.061989 0.059473 0.015449 0.136654 0.061418 0.064889 0.011230 0.239144 0.055605 0.273307 +0.401532 +0.060635 0.042382 0.086362 0.208104 0.037254 0.084157 0.013862 0.041984 0.043328 0.060262 0.019173 0.059841 0.038011 0.038085 0.042795 0.083315 0.023546 0.070797 0.058091 0.063855 0.004186 0.239144 0.051471 0.029924 0.026788 0.170817 0.061849 0.027801 0.007513 0.204980 0.053981 0.341634 +0 +0.063022 0.033962 0.038689 0.034701 0.025665 0.188361 0.014222 0.046103 0.146638 0.061681 0.027063 0.036222 0.024734 0.037101 0.079568 0.090090 0.032462 0.057581 0.053110 0.039824 0.063508 0.204980 0.066527 0.017308 0.051851 0.136654 0.090975 0.036384 0.038697 0.170817 0.093821 0.307471 +0 +0.044726 0.005894 0.034324 0.037671 0.043484 0.044997 0.012414 0.035161 0.059373 0.059572 0.035403 0.140658 0.057887 0.067933 0.053600 0.060363 0.028041 0.314869 0.044668 0.065875 0.053063 0.102490 0.095733 0.036093 0.054035 0.102490 0.088129 0.059471 0.020724 0.170817 0.089264 0.204980 +0.171737 +0.050677 0.060578 0.040761 0.121684 0.028778 0.251640 0.036405 0.055900 0.047504 0.046076 0.026439 0.068904 0.035030 0.038756 0.078951 0.046762 0.032996 0.078058 0.047867 0.064842 0.016386 0.136654 0.084791 0.064989 0.006119 0.102490 0.063523 0.022491 0.035050 0.136654 0.055781 0.204980 +0.038438 +0.044497 0.004948 0.056782 0.037800 0.048403 0.091265 0.066397 0.054787 0.113432 0.051941 0.028499 0.113017 0.066645 0.048793 0.044282 0.089120 0.044553 0.037032 0.045148 0.067306 0.029539 0.273307 0.093004 0.045205 0.024373 0.273307 0.063971 0.051066 0.021903 0.102490 0.063028 0.307471 +0.010717 +0.001586 0.024399 0.065002 0.057812 0.037979 0.088052 0.011193 0.036529 0.049632 0.047998 0.017314 0.077284 0.046837 0.017051 0.067225 0.187525 0.034267 0.084207 0.064317 0.058183 0.041021 0.170817 0.052922 0.027463 0.005189 0.136654 0.077890 0.048797 0.053712 0.170817 0.092839 0.204980 +0.049260 +0.037926 0.001722 0.048793 0.042548 0.044406 0.049076 0.024023 0.017106 0.037148 0.075769 0.018886 0.152865 0.029235 0.032201 0.062756 0.080572 0.034406 0.153350 0.054015 0.044448 0.019774 0.170817 0.075944 0.061186 0.010597 0.170817 0.059767 0.027369 0.009578 0.136654 0.053165 0.204980 +0.121662 +0.026467 0.022100 0.057661 0.072566 0.024915 0.171725 0.034886 0.016771 0.060152 0.052095 0.026099 0.108418 0.002921 0.060400 0.085032 0.059263 0.028372 0.306796 0.047715 0.009871 0.015248 0.170817 0.059618 0.051229 0.059597 0.102490 0.053991 0.049726 0.000059 0.204980 0.063020 0.307471 +0.574964 +0.057337 0.028687 0.066701 0.034849 0.031629 0.051020 0.061629 0.048671 0.132304 0.103565 0.041090 0.092302 0.056394 0.002672 0.044733 0.040522 0.039146 0.043496 0.050978 0.019281 0.015038 0.170817 0.098151 0.035026 0.012008 0.102490 0.084929 0.022454 0.003175 0.136654 0.097318 0.204980 +0.002011 +0.020225 0.004945 0.077014 0.041504 0.022294 0.084078 0.006277 0.015225 0.067345 0.039209 0.029312 0.137008 0.024303 0.015475 0.171441 0.060579 0.035547 0.159332 0.044076 0.018752 0.027071 0.170817 0.079835 0.026550 0.007048 0.170817 0.078968 0.007602 0.025238 0.102490 0.077037 0.307471 +0.002957 +0.056045 0.002357 0.089540 0.049494 0.020805 0.109855 0.000969 0.027437 0.055156 0.171157 0.021204 0.184001 0.016646 0.059223 0.044559 0.072966 0.042581 0.203149 0.059166 0.047376 0.014325 0.136654 0.063547 0.015577 0.027634 0.102490 0.087749 0.051912 0.004230 0.102490 0.074571 0.239144 +0.083054 +0.001429 0.022993 0.057832 0.091114 0.033782 0.091172 0.012424 0.038123 0.144380 0.039010 0.036334 0.050812 0.022157 0.065812 0.041470 0.053949 0.051226 0.034909 0.047061 0.040907 0.004863 0.204980 0.076034 0.016481 0.068073 0.204980 0.068657 0.038136 0.033296 0.204980 0.093274 0.273307 +0 +0.056875 0.036805 0.039445 0.059511 0.046755 0.206162 0.038151 0.049664 0.108402 0.072467 0.039961 0.075154 0.049675 0.040672 0.037214 0.036292 0.031201 0.173540 0.058185 0.064750 0.000227 0.239144 0.065173 0.046484 0.017706 0.239144 0.065876 0.002451 0.049684 0.170817 0.059415 0.273307 +0.035270 +0.058950 0.030071 0.051862 0.040002 0.017244 0.049499 0.059056 0.027564 0.081314 0.083234 0.031978 0.109676 0.047059 0.053110 0.049209 0.046736 0.031812 0.105035 0.050982 0.015171 0.049364 0.170817 0.098794 0.063789 0.049491 0.136654 0.055962 0.055227 0.047127 0.273307 0.086441 0.307471 +0.003072 +0.008056 0.056462 0.082471 0.118751 0.020268 0.137782 0.060634 0.062171 0.078773 0.038552 0.048961 0.104596 0.007328 0.034831 0.097179 0.052667 0.024873 0.060112 0.057699 0.018695 0.014975 0.136654 0.083103 0.030797 0.053930 0.170817 0.084895 0.003203 0.057196 0.136654 0.083301 0.204980 +0.035671 +0.053682 0.022324 0.037917 0.062714 0.045231 0.235164 0.038144 0.043422 0.056934 0.053437 0.019363 0.046673 0.047757 0.004135 0.071882 0.042441 0.034833 0.193679 0.054300 0.043538 0.018685 0.136654 0.094904 0.016782 0.049230 0.170817 0.094235 0.046260 0.047212 0.204980 0.071511 0.239144 +0.145543 +0.002906 0.020611 0.037007 0.035948 0.040720 0.111716 0.042192 0.063597 0.039583 0.036170 0.031456 0.107076 0.017954 0.048626 0.042359 0.043095 0.020219 0.102148 0.056009 0.027970 0.036811 0.204980 0.066135 0.016071 0.065105 0.170817 0.094264 0.005746 0.042242 0.204980 0.055029 0.239144 +0.020052 +0.000771 0.034904 0.071490 0.105953 0.050244 0.034295 0.064877 0.054371 0.040087 0.052819 0.046755 0.378153 0.008520 0.000375 0.042033 0.061409 0.047637 0.102118 0.042383 0.055086 0.061480 0.136654 0.066454 0.026701 0.035900 0.170817 0.062702 0.051176 0.013954 0.136654 0.084592 0.273307 +0.665015 +0.022721 0.020476 0.068705 0.057246 0.025855 0.291523 0.006531 0.033978 0.045199 0.118504 0.018033 0.045373 0.023103 0.036748 0.034790 0.044100 0.043766 0.087907 0.055957 0.040905 0.054097 0.136654 0.067319 0.004049 0.059870 0.170817 0.098902 0.050481 0.032941 0.136654 0.085925 0.239144 +0.043297 +0.002414 0.061594 0.044431 0.047937 0.026999 0.084292 0.056459 0.015478 0.060722 0.087987 0.047724 0.230907 0.018888 0.013931 0.035347 0.129800 0.023297 0.072871 0.054699 0.006867 0.018466 0.102490 0.054912 0.063396 0.029462 0.136654 0.077101 0.047229 0.062909 0.102490 0.096549 0.204980 +0.048104 +0.049354 0.020256 0.064946 0.093965 0.048233 0.280449 0.064065 0.060722 0.059847 0.099904 0.042409 0.051309 0.056087 0.059013 0.110124 0.074788 0.026473 0.113846 0.043033 0.059005 0.060005 0.239144 0.072055 0.044781 0.007026 0.102490 0.074067 0.023371 0.027398 0.102490 0.077458 0.307471 +0.253142 +0.065454 0.055534 0.049688 0.047203 0.037781 0.076818 0.059777 0.012165 0.055434 0.065819 0.033121 0.079343 0.031623 0.062925 0.039295 0.065523 0.017429 0.043268 0.053906 0.003677 0.057149 0.204980 0.056528 0.037147 0.033331 0.170817 0.084455 0.043438 0.015935 0.102490 0.068261 0.307471 +0 +0.051489 0.052403 0.052600 0.056055 0.033715 0.070697 0.039646 0.031637 0.036622 0.038678 0.032437 0.238952 0.042388 0.001821 0.042429 0.065650 0.026750 0.100082 0.053436 0.060375 0.025103 0.239144 0.090221 0.007888 0.064026 0.170817 0.059116 0.016006 0.004121 0.102490 0.095049 0.341634 +0.206730 +0.017630 0.047634 0.053763 0.034310 0.022047 0.095992 0.003169 0.051792 0.035316 0.085566 0.031312 0.146329 0.045286 0.040589 0.056579 0.117016 0.027790 0.108570 0.036418 0.019051 0.010000 0.136654 0.083335 0.047243 0.000840 0.204980 0.088822 0.012272 0.043961 0.136654 0.055327 0.273307 +0.018903 +0.048463 0.044237 0.038498 0.125829 0.049084 0.100949 0.066615 0.030812 0.052598 0.045243 0.020341 0.404328 0.007026 0.003373 0.089113 0.038049 0.033712 0.175563 0.053369 0.002445 0.043727 0.204980 0.073562 0.068151 0.026035 0.170817 0.062497 0.046000 0.002739 0.170817 0.053680 0.239144 +0.493684 +0.034428 0.060952 0.092241 0.059135 0.036602 0.216408 0.050882 0.061956 0.042071 0.044846 0.035610 0.169743 0.018548 0.059457 0.069262 0.049217 0.024034 0.063072 0.053783 0.055871 0.042604 0.102490 0.061108 0.014301 0.009902 0.170817 0.089552 0.053182 0.030206 0.102490 0.083441 0.204980 +0.225051 +0.025244 0.019482 0.152663 0.039573 0.031687 0.039031 0.066164 0.008153 0.117584 0.061877 0.039455 0.047191 0.002138 0.035084 0.038012 0.071571 0.034557 0.234957 0.041405 0.029773 0.018654 0.102490 0.053799 0.022713 0.055704 0.102490 0.076665 0.013851 0.058156 0.102490 0.070632 0.307471 +0.012758 +0.019649 0.000404 0.080477 0.050742 0.049917 0.195302 0.035521 0.010429 0.087614 0.108982 0.021957 0.126262 0.013263 0.061033 0.037072 0.088851 0.032942 0.118435 0.045142 0.067548 0.012209 0.102490 0.065279 0.029961 0.014322 0.170817 0.058361 0.029148 0.040209 0.170817 0.052165 0.204980 +0.106851 +0.061786 0.003390 0.057742 0.069872 0.041199 0.153655 0.043430 0.046156 0.045642 0.048289 0.024248 0.216269 0.058875 0.042383 0.055329 0.054221 0.024669 0.118142 0.064592 0.063860 0.062992 0.136654 0.082076 0.025401 0.063942 0.170817 0.084555 0.028628 0.066978 0.307471 0.052933 0.341634 +0.073630 +0.047654 0.038666 0.084780 0.047174 0.046245 0.053893 0.025618 0.011657 0.036939 0.081383 0.026053 0.042111 0.064062 0.056991 0.056388 0.047489 0.029380 0.081642 0.049074 0.064858 0.046551 0.102490 0.059567 0.066791 0.061273 0.239144 0.065041 0.001005 0.049599 0.239144 0.079533 0.273307 +0 +0.058629 0.038997 0.037009 0.063427 0.024921 0.082383 0.022505 0.045498 0.046886 0.058139 0.043440 0.143612 0.063935 0.001583 0.034185 0.048310 0.035968 0.037041 0.047321 0.048317 0.063489 0.102490 0.069432 0.011463 0.038392 0.102490 0.066634 0.058570 0.016016 0.102490 0.073907 0.204980 +0.014501 +0.012150 0.014242 0.055836 0.053515 0.046202 0.123519 0.025709 0.010176 0.089702 0.076891 0.019561 0.060788 0.012896 0.000079 0.051669 0.094134 0.034189 0.164181 0.041494 0.011049 0.056089 0.136654 0.058514 0.013054 0.065292 0.136654 0.083933 0.014106 0.012688 0.204980 0.085285 0.239144 +0.082480 +0.000619 0.020062 0.043030 0.041847 0.038439 0.060441 0.010056 0.057548 0.086707 0.063669 0.049806 0.318883 0.038688 0.025770 0.061923 0.043782 0.023842 0.208384 0.057275 0.006290 0.032444 0.170817 0.073800 0.028305 0.024151 0.170817 0.052497 0.053158 0.039924 0.170817 0.079242 0.204980 +0.173884 +0.045705 0.035735 0.050550 0.068706 0.035406 0.109927 0.049533 0.034223 0.084754 0.064142 0.031636 0.250615 0.009625 0.014705 0.133795 0.056519 0.050340 0.117799 0.054577 0.027576 0.051247 0.170817 0.077165 0.024191 0.053941 0.136654 0.054728 0.001032 0.012075 0.204980 0.058614 0.239144 +0.486112 +0.067145 0.006966 0.069876 0.046215 0.022083 0.041962 0.066258 0.048377 0.105730 0.050002 0.023772 0.131121 0.037003 0.023969 0.103273 0.076590 0.040482 0.044869 0.053684 0.007188 0.055385 0.102490 0.093461 0.062185 0.046648 0.102490 0.092466 0.041308 0.027640 0.170817 0.076335 0.204980 +0 +0.043102 0.028408 0.044971 0.051408 0.037984 0.503982 0.031525 0.025809 0.103170 0.070802 0.032425 0.067873 0.048012 0.001438 0.039696 0.049747 0.027743 0.056291 0.042390 0.020696 0.059918 0.102490 0.069941 0.044829 0.017275 0.204980 0.051304 0.008928 0.066779 0.204980 0.060609 0.239144 +0.292844 +0.063507 0.051212 0.043879 0.076416 0.044114 0.038306 0.052814 0.004598 0.041246 0.083482 0.045893 0.288524 0.058374 0.042890 0.053288 0.038476 0.040388 0.428581 0.053240 0.035250 0.048462 0.136654 0.056745 0.007791 0.025427 0.136654 0.077258 0.065006 0.019695 0.102490 0.097125 0.273307 +0.373977 +0.014984 0.038458 0.069523 0.081926 0.017940 0.203594 0.024521 0.051938 0.043690 0.140954 0.047447 0.063918 0.050478 0.039797 0.046318 0.057144 0.038271 0.201772 0.053916 0.032251 0.053027 0.170817 0.098539 0.008816 0.031760 0.170817 0.094556 0.055947 0.048613 0.204980 0.096550 0.239144 +0.074716 +0.066381 0.028673 0.041327 0.102771 0.049076 0.186135 0.017038 0.047041 0.066401 0.141567 0.021811 0.091013 0.063908 0.061258 0.061489 0.076737 0.046699 0.091213 0.066122 0.006834 0.064658 0.102490 0.077456 0.007129 0.051041 0.170817 0.068180 0.036286 0.044656 0.102490 0.057274 0.204980 +0.080990 +0.024737 0.038872 0.046473 0.053422 0.036424 0.084453 0.025924 0.066474 0.076663 0.051491 0.018380 0.140607 0.050947 0.014111 0.041366 0.080929 0.035277 0.176966 0.064763 0.003543 0.068105 0.136654 0.068533 0.045310 0.020990 0.204980 0.056819 0.010731 0.051676 0.170817 0.090720 0.341634 +0 +0.060906 0.034710 0.045657 0.066462 0.038307 0.049746 0.045577 0.054690 0.040176 0.069177 0.048001 0.303670 0.000225 0.028648 0.038143 0.111726 0.048086 0.122431 0.057416 0.001368 0.060365 0.307471 0.064319 0.049640 0.017184 0.170817 0.073357 0.015299 0.049781 0.102490 0.074746 0.341634 +0.063519 +0.004574 0.049880 0.094756 0.096679 0.023576 0.170858 0.044869 0.044411 0.060028 0.059469 0.025108 0.764465 0.055754 0.063892 0.051723 0.049178 0.019425 0.085241 0.061343 0.065968 0.050149 0.136654 0.059971 0.034228 0.065370 0.170817 0.060292 0.055005 0.066424 0.102490 0.083880 0.204980 +0.690671 +0.058919 0.036164 0.038561 0.063607 0.029663 0.149789 0.007617 0.012469 0.064235 0.044558 0.048514 0.137972 0.018141 0.012453 0.044312 0.096468 0.026226 0.339541 0.044084 0.009675 0.023923 0.204980 0.085430 0.013410 0.044527 0.307471 0.083515 0.015812 0.003029 0.136654 0.052808 0.341634 +0.055670 +0.023317 0.004317 0.038212 0.034340 0.020857 0.182512 0.065966 0.039981 0.051991 0.040308 0.038575 0.078754 0.037332 0.015504 0.043034 0.085595 0.035328 0.132889 0.042783 0.056398 0.037841 0.136654 0.069622 0.022230 0.050079 0.136654 0.066307 0.066741 0.066771 0.204980 0.090521 0.239144 +0.179153 +0.014445 0.000384 0.058177 0.053114 0.037148 0.113060 0.000722 0.035478 0.066417 0.066778 0.036484 0.166472 0.015130 0.046438 0.045697 0.044025 0.048809 0.036853 0.044002 0.054737 0.013155 0.170817 0.092262 0.019384 0.043100 0.102490 0.080842 0.005765 0.034427 0.204980 0.068343 0.307471 +0.006237 +0.055248 0.014146 0.052281 0.038579 0.042549 0.175075 0.051765 0.066029 0.119424 0.066039 0.036847 0.227252 0.024284 0.013571 0.052868 0.077549 0.050058 0.050913 0.039975 0.039949 0.067369 0.204980 0.069822 0.039348 0.064630 0.204980 0.051952 0.040669 0.007846 0.136654 0.057629 0.307471 +0.002140 +0.026796 0.011952 0.094927 0.233819 0.018468 0.050085 0.067350 0.066729 0.072126 0.053977 0.034544 0.708035 0.015746 0.011512 0.043143 0.036641 0.026417 0.225687 0.039786 0.036661 0.067054 0.102490 0.057678 0.034817 0.028994 0.204980 0.056048 0.035841 0.015270 0.204980 0.101951 0.307471 +0.420426 +0.006211 0.038146 0.047028 0.048063 0.045227 0.071488 0.039681 0.059302 0.075587 0.090526 0.029929 0.072438 0.028034 0.002603 0.036921 0.086920 0.041365 0.048678 0.040916 0.067330 0.030754 0.136654 0.059213 0.015512 0.008390 0.102490 0.091218 0.067704 0.005947 0.239144 0.095207 0.273307 +0 +0.027033 0.067432 0.053973 0.066990 0.048296 0.106488 0.046926 0.061426 0.077348 0.049467 0.032622 0.400013 0.016387 0.035656 0.040415 0.066992 0.042370 0.198248 0.046514 0.046185 0.061721 0.102490 0.083533 0.035813 0.062316 0.239144 0.084367 0.017532 0.027340 0.273307 0.085119 0.341634 +0.333062 +0.054422 0.041379 0.057339 0.071761 0.030519 0.229780 0.012957 0.034501 0.089360 0.049298 0.017509 0.150468 0.038494 0.056741 0.069758 0.062111 0.041074 0.072265 0.049458 0.043640 0.023039 0.239144 0.073719 0.033374 0.064111 0.204980 0.059455 0.054676 0.045543 0.239144 0.053884 0.307471 +0.129040 +0.006886 0.040259 0.057999 0.091629 0.028646 0.152132 0.064377 0.052356 0.100004 0.076503 0.048066 0.044471 0.054922 0.017110 0.044822 0.042567 0.047865 0.051158 0.043915 0.034941 0.049266 0.204980 0.093454 0.049417 0.057570 0.239144 0.076613 0.023139 0.013751 0.136654 0.057875 0.307471 +0 +0.033727 0.031683 0.071219 0.068609 0.018332 0.107171 0.054831 0.038778 0.160220 0.038071 0.028457 0.136384 0.061633 0.067115 0.058638 0.122450 0.023912 0.166230 0.037799 0.026295 0.013949 0.102490 0.094127 0.053573 0.038115 0.273307 0.080375 0.016418 0.031688 0.204980 0.084416 0.341634 +0.125994 +0.031859 0.020419 0.088030 0.085173 0.044317 0.039746 0.025400 0.062836 0.042952 0.042986 0.037671 0.113726 0.059180 0.059007 0.075361 0.047511 0.018467 0.097717 0.050690 0.066070 0.029669 0.204980 0.086765 0.002814 0.027835 0.102490 0.091556 0.039709 0.049295 0.102490 0.059083 0.239144 +0.002330 +0.030585 0.014408 0.058544 0.044100 0.041362 0.167050 0.062838 0.020166 0.101271 0.066854 0.033169 0.205760 0.064297 0.056281 0.060197 0.048986 0.021696 0.069272 0.061540 0.060994 0.066700 0.136654 0.062213 0.039470 0.043256 0.307471 0.074815 0.023733 0.034129 0.170817 0.057790 0.341634 +0.029958 +0.050316 0.035504 0.039287 0.078807 0.020103 0.085897 0.062442 0.023890 0.131762 0.042417 0.044832 0.125222 0.011215 0.063348 0.035016 0.064574 0.023019 0.043283 0.051516 0.033698 0.067850 0.170817 0.097159 0.012535 0.066787 0.204980 0.072556 0.059302 0.001761 0.239144 0.084174 0.273307 +0.034483 +0.010433 0.058298 0.111497 0.061544 0.028408 0.140393 0.036933 0.031990 0.042151 0.133803 0.036824 0.113288 0.008619 0.023638 0.089926 0.056351 0.046761 0.179005 0.051188 0.059079 0.050508 0.136654 0.085802 0.020895 0.038636 0.102490 0.057735 0.046622 0.022437 0.102490 0.054994 0.204980 +0.034041 +0.013179 0.001470 0.123946 0.036027 0.025180 0.078829 0.026064 0.024387 0.080165 0.060961 0.031900 0.286281 0.008493 0.038867 0.051460 0.046268 0.034417 0.076567 0.056003 0.037246 0.067853 0.102490 0.065493 0.028735 0.064595 0.136654 0.092030 0.045479 0.035173 0.170817 0.100246 0.204980 +0.270174 +0.045493 0.029244 0.066744 0.054902 0.017592 0.053388 0.015649 0.055373 0.057219 0.086185 0.024110 0.231373 0.056215 0.011067 0.044774 0.046573 0.028484 0.132871 0.058851 0.061027 0.037153 0.307471 0.082289 0.009451 0.023681 0.273307 0.058260 0.000908 0.041345 0.102490 0.058867 0.341634 +0.067220 +0.054719 0.025602 0.128223 0.035218 0.036131 0.109393 0.031647 0.045279 0.060349 0.085974 0.024476 0.253324 0.009012 0.008921 0.040575 0.051716 0.023531 0.057229 0.039363 0.014221 0.021787 0.136654 0.079681 0.045584 0.012308 0.170817 0.081308 0.019248 0.005737 0.170817 0.057870 0.204980 +0.037747 +0.048465 0.052683 0.065765 0.045489 0.027029 0.108433 0.024031 0.021798 0.098963 0.092048 0.020005 0.133009 0.003513 0.006035 0.049955 0.062103 0.025507 0.048880 0.038524 0.057570 0.052116 0.204980 0.101545 0.003538 0.029731 0.136654 0.100683 0.065114 0.006311 0.136654 0.090385 0.273307 +0 +0.048988 0.002532 0.040748 0.049185 0.047210 0.426782 0.050515 0.022077 0.058134 0.058943 0.044898 0.119178 0.048397 0.049897 0.090478 0.052706 0.048938 0.110839 0.046337 0.035894 0.020528 0.136654 0.085791 0.031862 0.048961 0.136654 0.064818 0.000568 0.037028 0.170817 0.072066 0.204980 +0.552965 +0.030113 0.046035 0.037730 0.053877 0.021550 0.296197 0.053417 0.030713 0.111337 0.034654 0.038041 0.085048 0.066595 0.008908 0.087405 0.043791 0.039668 0.159057 0.044459 0.062869 0.037415 0.136654 0.083469 0.059549 0.031664 0.102490 0.057417 0.038555 0.033965 0.102490 0.070677 0.204980 +0.078529 +0.065129 0.066246 0.094508 0.046128 0.024702 0.481791 0.018516 0.043677 0.070995 0.040739 0.028001 0.303624 0.014818 0.048991 0.067390 0.038578 0.042596 0.115704 0.040028 0.062918 0.052322 0.102490 0.100182 0.040675 0.048987 0.102490 0.070193 0.016341 0.035954 0.136654 0.088274 0.204980 +0.109509 +0.034195 0.015461 0.111855 0.059741 0.018193 0.221937 0.035783 0.047447 0.166795 0.136356 0.041861 0.048101 0.062833 0.033619 0.091699 0.057497 0.030325 0.035953 0.051469 0.000045 0.012614 0.239144 0.054399 0.049491 0.044966 0.204980 0.059068 0.006334 0.027534 0.239144 0.101478 0.273307 +0.015033 +0.057676 0.005446 0.037104 0.083034 0.047773 0.272858 0.023527 0.066085 0.034279 0.055631 0.045503 0.056477 0.001644 0.021623 0.040683 0.041681 0.047768 0.092216 0.045646 0.023430 0.012971 0.102490 0.101109 0.011239 0.049973 0.102490 0.071042 0.024247 0.025850 0.136654 0.102390 0.204980 +0.078686 +0.004407 0.047223 0.045650 0.151701 0.045342 0.124835 0.014448 0.049630 0.053623 0.044232 0.018816 0.095358 0.020214 0.009138 0.082563 0.136975 0.049399 0.065724 0.061142 0.042003 0.041971 0.307471 0.074224 0.028924 0.041200 0.239144 0.101413 0.060227 0.020473 0.204980 0.083543 0.341634 +0.004347 +0.035502 0.015835 0.043264 0.051836 0.029835 0.039257 0.014060 0.059110 0.083714 0.099992 0.049247 0.246533 0.035314 0.062442 0.061584 0.084123 0.047354 0.178205 0.065344 0.046762 0.063519 0.102490 0.058763 0.061820 0.054112 0.273307 0.066650 0.028645 0.050256 0.204980 0.053365 0.307471 +0.435851 +0.030033 0.037735 0.070510 0.035745 0.036794 0.054661 0.043835 0.049139 0.036903 0.036348 0.031381 0.129094 0.027363 0.032170 0.052441 0.059073 0.022552 0.053898 0.054742 0.010931 0.040733 0.204980 0.061216 0.036030 0.000684 0.170817 0.058176 0.029029 0.025133 0.102490 0.076397 0.341634 +0.001172 +0.054862 0.044852 0.041956 0.076082 0.049712 0.097567 0.009145 0.019869 0.034324 0.070626 0.020011 0.092966 0.048401 0.052541 0.091195 0.057820 0.043620 0.361364 0.056223 0.015266 0.065706 0.273307 0.071947 0.036997 0.019170 0.136654 0.075332 0.065169 0.045788 0.204980 0.101438 0.341634 +0.076516 +0.053554 0.007206 0.040768 0.081740 0.033480 0.068678 0.032555 0.047609 0.044609 0.054380 0.048694 0.184274 0.061574 0.049075 0.066706 0.100193 0.036129 0.356537 0.052059 0.046604 0.011925 0.136654 0.098154 0.033190 0.040389 0.204980 0.056816 0.046071 0.033975 0.102490 0.071653 0.273307 +0.379276 +0.061047 0.046267 0.041088 0.047510 0.026430 0.054191 0.043706 0.066486 0.123792 0.092902 0.040903 0.167979 0.064572 0.044508 0.048472 0.058547 0.045872 0.120171 0.049919 0.063789 0.061866 0.102490 0.087723 0.050374 0.067683 0.204980 0.097739 0.025001 0.029858 0.307471 0.063621 0.341634 +0.029698 +0.055422 0.021371 0.066704 0.035607 0.032463 0.275979 0.010110 0.064172 0.039509 0.036848 0.040302 0.038759 0.026447 0.061198 0.041383 0.048461 0.034751 0.082354 0.046391 0.001351 0.064640 0.102490 0.091035 0.033365 0.007590 0.204980 0.096530 0.050836 0.009274 0.170817 0.054612 0.307471 +0.016963 +0.049672 0.052413 0.049425 0.047151 0.019790 0.073457 0.004572 0.018255 0.051838 0.087679 0.038152 0.052490 0.049227 0.064566 0.039101 0.058112 0.034832 0.185697 0.054745 0.034725 0.048116 0.102490 0.091144 0.004705 0.060510 0.102490 0.063879 0.005734 0.016466 0.170817 0.058827 0.204980 +0.118773 +0.035053 0.060324 0.062019 0.062191 0.030745 0.223821 0.000940 0.042707 0.045809 0.045187 0.030130 0.122663 0.060740 0.024646 0.061615 0.087178 0.048702 0.052498 0.058268 0.036714 0.010524 0.204980 0.064748 0.051779 0.021685 0.273307 0.078503 0.031901 0.064481 0.239144 0.084611 0.307471 +0.043203 +0.029452 0.058503 0.115179 0.042509 0.028458 0.638079 0.028297 0.023307 0.043047 0.035796 0.042369 0.268509 0.000483 0.029200 0.037097 0.049066 0.037764 0.073634 0.055347 0.057899 0.060811 0.239144 0.083614 0.039038 0.053520 0.102490 0.062891 0.030982 0.023681 0.273307 0.087907 0.307471 +0.292803 +0.067871 0.048579 0.035679 0.038149 0.039988 0.083271 0.048151 0.003069 0.044278 0.059437 0.028478 0.283802 0.003090 0.037627 0.044585 0.143751 0.037226 0.087943 0.051566 0.024829 0.036627 0.136654 0.068906 0.057800 0.006803 0.170817 0.092607 0.034517 0.057620 0.204980 0.090019 0.239144 +0.175794 +0.018598 0.007626 0.086657 0.170820 0.023743 0.111893 0.029138 0.048402 0.036828 0.075282 0.030623 0.037699 0.036190 0.023737 0.041784 0.035954 0.050536 0.354446 0.042756 0.026889 0.067300 0.102490 0.099840 0.050239 0.051749 0.136654 0.070724 0.061061 0.065559 0.136654 0.096346 0.341634 +0 +0.053746 0.007416 0.044052 0.065443 0.033757 0.166132 0.051886 0.016454 0.071914 0.042679 0.032721 0.084905 0.014319 0.060494 0.106773 0.046332 0.030655 0.445320 0.041748 0.058444 0.008706 0.170817 0.067629 0.053297 0.045640 0.170817 0.090247 0.042224 0.054454 0.204980 0.075819 0.239144 +0.358892 +0.003430 0.051959 0.046322 0.035954 0.035564 0.085457 0.008915 0.007426 0.067161 0.038288 0.045574 0.071940 0.047326 0.015829 0.057088 0.059526 0.026042 0.060300 0.051950 0.046180 0.065707 0.102490 0.072022 0.033559 0.044918 0.204980 0.088321 0.011913 0.045570 0.239144 0.086903 0.341634 +0 +0.034226 0.025934 0.055760 0.040286 0.044479 0.261724 0.004340 0.043225 0.039250 0.121061 0.042537 0.077459 0.058891 0.015546 0.054605 0.056829 0.039197 0.085317 0.065536 0.031887 0.038628 0.170817 0.080042 0.000598 0.047558 0.170817 0.058739 0.003694 0.006499 0.204980 0.068273 0.307471 +0.040034 +0.057849 0.002686 0.091240 0.043431 0.028085 0.055184 0.035250 0.047871 0.055414 0.070273 0.032066 0.103991 0.010488 0.014602 0.034767 0.070665 0.049526 0.101324 0.049927 0.053899 0.007864 0.170817 0.061217 0.014097 0.048303 0.102490 0.077387 0.037695 0.012588 0.239144 0.059014 0.307471 +0 +0.041771 0.011217 0.052241 0.044938 0.029440 0.060208 0.050003 0.028096 0.036126 0.039030 0.024350 0.304724 0.022256 0.039470 0.109130 0.108425 0.028661 0.108294 0.058419 0.051576 0.032283 0.170817 0.070530 0.053082 0.023656 0.136654 0.064725 0.016628 0.035992 0.102490 0.090629 0.204980 +0.224238 +0.003084 0.057400 0.065787 0.052238 0.031425 0.358447 0.005191 0.015878 0.125901 0.038399 0.045850 0.205850 0.007347 0.038778 0.037135 0.055704 0.025432 0.066688 0.052518 0.034319 0.003983 0.170817 0.101781 0.048492 0.066765 0.102490 0.088666 0.030438 0.043084 0.170817 0.056738 0.273307 +0.200970 +0.007995 0.045665 0.041833 0.050305 0.039066 0.078753 0.037051 0.059831 0.097479 0.035594 0.031801 0.077610 0.041767 0.007903 0.061711 0.062334 0.037782 0.079992 0.051474 0.055668 0.050655 0.239144 0.071497 0.035485 0.014072 0.136654 0.088364 0.025388 0.045446 0.239144 0.082802 0.273307 +0.061917 +0.001236 0.005669 0.039508 0.053290 0.034322 0.263094 0.018177 0.046540 0.042044 0.055239 0.017214 0.099443 0.006864 0.045718 0.151999 0.067947 0.048763 0.057694 0.049141 0.008696 0.066536 0.136654 0.092160 0.007500 0.060207 0.170817 0.062239 0.040729 0.043148 0.102490 0.055100 0.204980 +0.060891 +0.042167 0.009933 0.084665 0.060639 0.017440 0.090395 0.029774 0.005839 0.048166 0.038669 0.035533 0.129895 0.030801 0.063963 0.035566 0.034699 0.023378 0.223426 0.048161 0.021066 0.046669 0.170817 0.088114 0.065623 0.051167 0.239144 0.101027 0.022319 0.000144 0.170817 0.078934 0.341634 +0.001860 +0.002329 0.053361 0.052571 0.036161 0.018664 0.234354 0.055037 0.017529 0.248056 0.038121 0.034360 0.136432 0.020822 0.052003 0.037487 0.052837 0.037933 0.135267 0.046524 0.004032 0.049396 0.273307 0.067651 0.017882 0.003609 0.170817 0.083846 0.035765 0.043322 0.239144 0.053804 0.341634 +0.264802 +0.053232 0.050657 0.043302 0.082843 0.026969 0.110761 0.062246 0.010587 0.040878 0.076988 0.034215 0.039956 0.052037 0.056302 0.045134 0.078876 0.024156 0.197225 0.048905 0.018821 0.017756 0.170817 0.089364 0.047133 0.062860 0.136654 0.068096 0.030010 0.031549 0.102490 0.077169 0.204980 +0.025861 +0.000760 0.060103 0.035000 0.107194 0.045011 0.135798 0.023106 0.003919 0.055098 0.034996 0.017951 0.135337 0.052734 0.015315 0.057618 0.155155 0.021170 0.196846 0.058988 0.020339 0.050107 0.307471 0.096909 0.033549 0.048027 0.136654 0.075034 0.062418 0.032502 0.307471 0.084087 0.341634 +0 +0.014111 0.046431 0.065006 0.035747 0.024969 0.172035 0.023179 0.052116 0.065519 0.047242 0.032225 0.039271 0.031553 0.054554 0.051781 0.056405 0.024649 0.105582 0.060626 0.037546 0.012685 0.102490 0.058147 0.056421 0.014724 0.102490 0.082750 0.050256 0.000895 0.102490 0.070933 0.204980 +0.070826 +0.005639 0.002922 0.042631 0.035351 0.034660 0.052116 0.065750 0.067680 0.064997 0.099544 0.046678 0.131235 0.063993 0.035426 0.078290 0.061106 0.042156 0.102023 0.046105 0.018362 0.041188 0.102490 0.053793 0.002057 0.000813 0.204980 0.071346 0.027895 0.057378 0.170817 0.053733 0.239144 +0.021817 +0.030769 0.034295 0.038627 0.125805 0.044063 0.181979 0.059032 0.000073 0.036660 0.037415 0.018035 0.068422 0.035163 0.062964 0.048013 0.050927 0.038200 0.439288 0.048719 0.038220 0.009021 0.204980 0.051710 0.066859 0.062143 0.170817 0.064836 0.014434 0.022210 0.204980 0.095400 0.239144 +0.358738 +0.045281 0.010202 0.069895 0.082290 0.037305 0.156010 0.058740 0.046456 0.090194 0.053572 0.041010 0.094584 0.006163 0.027863 0.048617 0.087101 0.031584 0.126698 0.055394 0.056000 0.017134 0.239144 0.066647 0.032930 0.026966 0.102490 0.079864 0.033534 0.038895 0.239144 0.097779 0.273307 +0.092853 +0.038593 0.025873 0.061979 0.061031 0.020002 0.110353 0.027153 0.057414 0.044673 0.035095 0.035041 0.080444 0.026883 0.011409 0.035194 0.037031 0.043048 0.123492 0.055916 0.026378 0.028548 0.102490 0.090937 0.039181 0.035283 0.102490 0.063439 0.061927 0.034143 0.102490 0.082818 0.239144 +0.080125 +0.014211 0.056758 0.043609 0.103867 0.040325 0.046041 0.055515 0.005735 0.048329 0.049678 0.032750 0.062633 0.028979 0.051484 0.049823 0.036681 0.017739 0.060673 0.054241 0.039613 0.007575 0.204980 0.058679 0.020268 0.008389 0.204980 0.064128 0.041307 0.013828 0.170817 0.065172 0.239144 +0 +0.057147 0.067286 0.084413 0.058482 0.019419 0.259665 0.059482 0.048234 0.064581 0.076793 0.045256 0.038405 0.015974 0.035026 0.079311 0.046406 0.024015 0.080381 0.052964 0.045850 0.012150 0.204980 0.073637 0.019148 0.065495 0.204980 0.060400 0.033432 0.021832 0.102490 0.075517 0.239144 +0.150423 +0.021254 0.028795 0.051831 0.072265 0.032716 0.114151 0.059343 0.037719 0.049657 0.133117 0.033116 0.198772 0.031345 0.006167 0.045119 0.039153 0.023130 0.062632 0.046550 0.024064 0.065766 0.102490 0.064080 0.018119 0.059916 0.102490 0.097334 0.021995 0.055036 0.170817 0.075821 0.239144 +0.046899 +0.016478 0.050995 0.048527 0.039448 0.023048 0.171887 0.027496 0.041190 0.085354 0.064192 0.037611 0.329941 0.019866 0.014256 0.036266 0.066294 0.025850 0.053205 0.038819 0.031021 0.036450 0.204980 0.084550 0.006543 0.052630 0.136654 0.066277 0.008243 0.058913 0.136654 0.075590 0.239144 +0.260057 +0.041404 0.001801 0.036929 0.035238 0.039637 0.076852 0.061354 0.042700 0.043147 0.067679 0.026339 0.073750 0.034454 0.066160 0.061321 0.082827 0.031297 0.146207 0.055836 0.049702 0.000212 0.273307 0.101972 0.059026 0.003193 0.170817 0.063570 0.008484 0.051953 0.204980 0.069316 0.307471 +0.077976 +0.051847 0.003258 0.053047 0.082255 0.030010 0.093675 0.038862 0.060777 0.082348 0.070926 0.030611 0.419265 0.024310 0.034678 0.063581 0.048403 0.039407 0.087289 0.057184 0.053440 0.013161 0.204980 0.058210 0.046799 0.004191 0.102490 0.080264 0.050397 0.016143 0.102490 0.069528 0.239144 +0.008709 +0.027422 0.044041 0.035726 0.093120 0.027923 0.155389 0.057840 0.065970 0.088679 0.043718 0.030539 0.233683 0.037795 0.057684 0.058013 0.062228 0.022037 0.210160 0.047715 0.024365 0.066912 0.204980 0.051960 0.031421 0.063182 0.307471 0.052484 0.016012 0.020157 0.102490 0.100062 0.341634 +0.552062 +0.065197 0.066796 0.151844 0.079901 0.020767 0.331714 0.057848 0.034571 0.052755 0.107454 0.038723 0.073496 0.048791 0.024204 0.051207 0.089658 0.047366 0.089731 0.049389 0.042773 0.056663 0.170817 0.093956 0.020973 0.010442 0.136654 0.093846 0.066544 0.063202 0.102490 0.076556 0.239144 +0.005059 +0.053336 0.040359 0.098658 0.067167 0.024947 0.162544 0.056451 0.004919 0.066751 0.098040 0.040083 0.044451 0.025575 0.050559 0.036067 0.038340 0.047004 0.119260 0.045734 0.065867 0.065230 0.170817 0.092594 0.009313 0.020922 0.102490 0.080477 0.066769 0.063035 0.102490 0.051562 0.239144 +0.028240 +0.042982 0.021121 0.044678 0.083736 0.047500 0.038133 0.019023 0.046435 0.061067 0.158630 0.020777 0.069499 0.034139 0.001531 0.037230 0.038221 0.017148 0.045729 0.040467 0.052981 0.066485 0.136654 0.085848 0.018915 0.062091 0.136654 0.051423 0.017730 0.040143 0.170817 0.094839 0.204980 +0.014280 +0.046326 0.042704 0.052311 0.056372 0.018981 0.227673 0.015299 0.038897 0.055522 0.055284 0.033664 0.075673 0.060547 0.043658 0.112865 0.038817 0.047939 0.169031 0.055236 0.009050 0.057451 0.102490 0.073382 0.034408 0.052741 0.170817 0.089322 0.023067 0.030009 0.136654 0.053335 0.273307 +0.012486 +0.002805 0.016393 0.047805 0.039738 0.024711 0.275053 0.028633 0.047924 0.078774 0.035186 0.044626 0.063268 0.010373 0.019329 0.072128 0.044142 0.017681 0.039667 0.059902 0.016745 0.059037 0.204980 0.094215 0.061593 0.049294 0.307471 0.075877 0.067826 0.024068 0.307471 0.095276 0.341634 +0 +0.055108 0.017052 0.058166 0.038370 0.038377 0.192714 0.037849 0.050403 0.040956 0.096225 0.028318 0.137794 0.017427 0.042783 0.119795 0.058426 0.044425 0.036451 0.040491 0.042152 0.058109 0.273307 0.061304 0.020927 0.035529 0.136654 0.082794 0.059972 0.012963 0.273307 0.090116 0.341634 +0.098632 +0.060447 0.025508 0.036702 0.043413 0.021167 0.180310 0.038141 0.063905 0.078413 0.073673 0.019742 0.036957 0.033193 0.041867 0.040846 0.073061 0.050546 0.069221 0.061702 0.008207 0.064673 0.170817 0.079283 0.049491 0.061358 0.239144 0.052784 0.054732 0.062993 0.170817 0.051358 0.307471 +0 +0.042023 0.027533 0.058189 0.083004 0.043830 0.322237 0.063333 0.033664 0.085574 0.048774 0.033148 0.040336 0.055960 0.030591 0.058134 0.103070 0.044107 0.040030 0.049271 0.020104 0.028544 0.170817 0.059283 0.019110 0.001773 0.307471 0.071664 0.053078 0.001231 0.102490 0.102224 0.341634 +0.074846 +0.040724 0.057573 0.092610 0.082381 0.041349 0.061473 0.019432 0.016737 0.153449 0.043630 0.046195 0.165246 0.030325 0.032011 0.122493 0.040302 0.020671 0.041128 0.059618 0.006141 0.019799 0.170817 0.094389 0.001405 0.043880 0.170817 0.088809 0.064710 0.047159 0.102490 0.052691 0.273307 +0.007180 +0.043318 0.045780 0.105351 0.052621 0.023266 0.110973 0.068017 0.038576 0.084237 0.052052 0.041561 0.126299 0.059024 0.015615 0.040572 0.102057 0.026607 0.092379 0.050953 0.055135 0.009132 0.136654 0.076784 0.012096 0.020645 0.204980 0.071488 0.045422 0.031575 0.136654 0.073780 0.239144 +0.008926 +0.028553 0.052921 0.090350 0.053879 0.029179 0.040829 0.023881 0.054993 0.057357 0.067301 0.047584 0.070032 0.047125 0.066180 0.056548 0.034635 0.028248 0.040317 0.044014 0.060746 0.048447 0.239144 0.087211 0.036820 0.033756 0.273307 0.062519 0.003616 0.028543 0.273307 0.083661 0.307471 +0 +0.023846 0.029310 0.039388 0.097860 0.048174 0.191265 0.014273 0.006540 0.037793 0.058952 0.029799 0.073448 0.063369 0.015779 0.037233 0.054216 0.040254 0.150824 0.043545 0.047588 0.019606 0.239144 0.073309 0.006956 0.037660 0.307471 0.093221 0.040410 0.040031 0.273307 0.079887 0.341634 +0 +0.066162 0.025211 0.100432 0.058274 0.026097 0.060405 0.009852 0.021483 0.035781 0.073062 0.047946 0.148079 0.043805 0.053249 0.035509 0.050190 0.045651 0.112885 0.052129 0.067160 0.066444 0.170817 0.062181 0.053050 0.026366 0.102490 0.067812 0.004249 0.040369 0.204980 0.054303 0.307471 +0.013466 +0.048273 0.054916 0.045526 0.048061 0.028997 0.086270 0.029231 0.063283 0.048252 0.093203 0.018816 0.173498 0.042091 0.023122 0.061229 0.048562 0.023658 0.139615 0.046597 0.049240 0.024705 0.102490 0.101626 0.007627 0.007387 0.307471 0.054780 0.000098 0.017009 0.204980 0.074114 0.341634 +0.071896 +0.026588 0.037823 0.036639 0.074884 0.025552 0.189084 0.002406 0.006128 0.132948 0.057515 0.039538 0.036785 0.038684 0.011717 0.075858 0.123433 0.038276 0.117300 0.049763 0.053305 0.064124 0.136654 0.071879 0.059670 0.006475 0.239144 0.070539 0.049648 0.000219 0.136654 0.059898 0.341634 +0 +0.010001 0.062178 0.059948 0.078158 0.039990 0.083752 0.037775 0.054812 0.071460 0.038996 0.024444 0.064209 0.022405 0.037487 0.186260 0.071918 0.024608 0.272469 0.054128 0.007389 0.050760 0.102490 0.085357 0.000813 0.004158 0.170817 0.076977 0.060956 0.035161 0.102490 0.084657 0.239144 +0 +0.016362 0.059342 0.050490 0.039817 0.032660 0.113165 0.002813 0.015180 0.045324 0.049740 0.025047 0.039603 0.007679 0.016988 0.097358 0.160393 0.045497 0.157257 0.042969 0.050231 0.013338 0.204980 0.063185 0.017249 0.014821 0.170817 0.061483 0.015166 0.014475 0.170817 0.071523 0.239144 +0.001655 +0.040709 0.043312 0.153773 0.035216 0.024423 0.190491 0.018597 0.012389 0.056867 0.038059 0.038759 0.156746 0.024521 0.021987 0.083747 0.112527 0.031690 0.039966 0.049614 0.010015 0.057230 0.136654 0.095618 0.029187 0.068019 0.136654 0.095370 0.009978 0.044963 0.102490 0.076380 0.204980 +0.075574 +0.030261 0.042554 0.073325 0.063727 0.040938 0.057767 0.009427 0.006080 0.053630 0.068853 0.047122 0.077980 0.051565 0.051775 0.041313 0.036469 0.020967 0.066526 0.042210 0.045294 0.031537 0.170817 0.073182 0.002238 0.008837 0.170817 0.066392 0.049428 0.030572 0.170817 0.101877 0.204980 +0.002420 +0.039072 0.005388 0.080278 0.069862 0.048397 0.040305 0.012923 0.025423 0.034247 0.064136 0.020683 0.049366 0.065273 0.055553 0.078911 0.038974 0.019853 0.141145 0.036564 0.031281 0.041660 0.136654 0.055564 0.022950 0.057872 0.170817 0.078857 0.017358 0.003730 0.204980 0.051493 0.273307 +0 +0.012408 0.048525 0.034852 0.071043 0.047724 0.109822 0.035323 0.002817 0.044807 0.093095 0.050195 0.313998 0.026004 0.052643 0.056918 0.039781 0.036109 0.396825 0.055970 0.058154 0.012167 0.204980 0.061118 0.021604 0.037573 0.136654 0.077572 0.004408 0.033672 0.136654 0.094345 0.273307 +0.571572 +0.007026 0.032695 0.076297 0.048022 0.043470 0.314341 0.027432 0.041935 0.076751 0.045667 0.038290 0.154041 0.060194 0.045262 0.050789 0.055459 0.040894 0.044095 0.044386 0.003107 0.039517 0.239144 0.087056 0.060964 0.028588 0.307471 0.096173 0.047504 0.001150 0.273307 0.094306 0.341634 +0.550727 +0.039531 0.003760 0.085539 0.035715 0.041273 0.102527 0.028641 0.040297 0.035980 0.056825 0.048728 0.060520 0.020182 0.054581 0.040290 0.053086 0.042127 0.126628 0.060846 0.014804 0.053586 0.136654 0.054411 0.048924 0.044952 0.170817 0.076460 0.040872 0.041876 0.136654 0.071838 0.273307 +0 +0.029674 0.017592 0.085313 0.043775 0.020349 0.034968 0.006773 0.000138 0.043467 0.081604 0.020578 0.111736 0.017092 0.044677 0.060857 0.048117 0.018785 0.075154 0.052223 0.041954 0.002204 0.136654 0.084032 0.001109 0.057322 0.204980 0.072514 0.007229 0.040640 0.239144 0.056844 0.341634 +0 +0.001228 0.043728 0.121611 0.099017 0.035611 0.373654 0.008247 0.057442 0.125810 0.039645 0.047377 0.048203 0.035101 0.003696 0.104839 0.069074 0.036145 0.050930 0.051670 0.007000 0.014268 0.170817 0.068437 0.026623 0.018590 0.170817 0.097039 0.025155 0.044574 0.204980 0.097776 0.239144 +0.087459 +0.015595 0.040275 0.044730 0.067702 0.033230 0.192639 0.035896 0.049002 0.060515 0.049186 0.049909 0.179262 0.062282 0.034317 0.139107 0.066555 0.048563 0.042798 0.057820 0.040004 0.000193 0.136654 0.093637 0.015724 0.061827 0.170817 0.078726 0.063026 0.010080 0.136654 0.062514 0.239144 +0.049618 +0.035280 0.049037 0.107952 0.047722 0.019813 0.250028 0.005813 0.048155 0.221009 0.044262 0.029731 0.421872 0.053137 0.028776 0.055823 0.058700 0.032234 0.122298 0.053197 0.007115 0.016356 0.239144 0.090438 0.037027 0.022853 0.204980 0.083344 0.028698 0.061470 0.204980 0.095685 0.273307 +0.338469 +0.061896 0.055762 0.054978 0.045707 0.034528 0.100811 0.010831 0.016531 0.044197 0.059814 0.031551 0.085108 0.032123 0.002191 0.106523 0.064890 0.046085 0.041704 0.052310 0.006866 0.011097 0.102490 0.099133 0.017168 0.037264 0.102490 0.082211 0.040833 0.033206 0.136654 0.076553 0.204980 +0.021233 +0.065876 0.046074 0.091210 0.091514 0.040169 0.152538 0.013547 0.041328 0.042849 0.093235 0.038119 0.048999 0.034212 0.019322 0.063118 0.067001 0.022930 0.109301 0.046236 0.033614 0.031830 0.239144 0.093164 0.026237 0.006916 0.102490 0.051573 0.006727 0.034541 0.307471 0.055538 0.341634 +0.004971 +0.000609 0.030451 0.079816 0.055613 0.020886 0.142500 0.060747 0.042184 0.039038 0.035095 0.017820 0.121719 0.052605 0.052782 0.049132 0.071103 0.038243 0.166040 0.048251 0.022042 0.025663 0.136654 0.076380 0.045829 0.039966 0.102490 0.081433 0.015606 0.012457 0.204980 0.071810 0.239144 +0.074442 +0.015324 0.046127 0.062526 0.052296 0.045382 0.076904 0.047709 0.063088 0.073352 0.046036 0.042487 0.102765 0.001639 0.042383 0.064973 0.056614 0.035187 0.187941 0.054729 0.034453 0.007182 0.102490 0.071341 0.051384 0.011770 0.204980 0.051372 0.015160 0.052294 0.239144 0.089226 0.273307 +0.083623 +0.055577 0.058421 0.042065 0.041981 0.036920 0.048930 0.003380 0.007744 0.051076 0.039877 0.031584 0.130094 0.008696 0.010111 0.034676 0.108076 0.022450 0.110060 0.045660 0.026223 0.054485 0.102490 0.082469 0.000804 0.019715 0.170817 0.054823 0.029805 0.015257 0.170817 0.080470 0.341634 +0 +0.005513 0.050754 0.111169 0.063452 0.021840 0.088587 0.058554 0.059741 0.047027 0.044964 0.045765 0.148920 0.038141 0.067354 0.051703 0.174479 0.020759 0.059279 0.047840 0.045387 0.017412 0.204980 0.054258 0.024639 0.006282 0.239144 0.075563 0.048691 0.006683 0.307471 0.053587 0.341634 +0.108139 +0.049511 0.031872 0.074768 0.041016 0.022047 0.054596 0.001496 0.067409 0.078928 0.068462 0.033129 0.166985 0.036264 0.004587 0.062883 0.088773 0.035327 0.094106 0.052017 0.034577 0.041802 0.136654 0.051544 0.065385 0.018704 0.204980 0.080551 0.068081 0.010575 0.170817 0.070768 0.273307 +0.037056 +0.025778 0.023474 0.089704 0.035502 0.047960 0.120975 0.002619 0.045080 0.042861 0.087024 0.026667 0.158788 0.005035 0.067742 0.035828 0.200065 0.017096 0.050672 0.057686 0.056620 0.034385 0.136654 0.096421 0.044673 0.050672 0.204980 0.071817 0.044714 0.054550 0.239144 0.071054 0.273307 +0.024068 +0.019599 0.020759 0.104151 0.038414 0.024588 0.077522 0.013969 0.048321 0.071904 0.075154 0.020766 0.159145 0.013564 0.047294 0.058958 0.036262 0.044299 0.043129 0.049603 0.011201 0.047089 0.170817 0.088535 0.018102 0.060646 0.170817 0.068710 0.035635 0.035166 0.136654 0.075534 0.204980 +0.033341 +0.056327 0.047881 0.059390 0.079571 0.046102 0.344425 0.020009 0.011823 0.041629 0.035605 0.043845 0.091380 0.015966 0.061809 0.048283 0.037724 0.024553 0.092353 0.059431 0.057959 0.010232 0.136654 0.060228 0.046660 0.040936 0.204980 0.082310 0.065561 0.058452 0.307471 0.074560 0.341634 +0.089765 +0.020247 0.015168 0.076736 0.058410 0.027056 0.058636 0.022541 0.008042 0.045263 0.054694 0.038691 0.118229 0.059676 0.062028 0.053754 0.098587 0.021371 0.298759 0.057408 0.003394 0.000991 0.170817 0.079864 0.021822 0.059108 0.204980 0.086948 0.024919 0.068019 0.170817 0.053329 0.307471 +0.024275 +0.059176 0.058221 0.043073 0.044380 0.030091 0.188935 0.027805 0.035817 0.038636 0.036736 0.044369 0.054311 0.051511 0.058039 0.035061 0.054366 0.043111 0.068698 0.055327 0.066949 0.020722 0.170817 0.060083 0.047866 0.050973 0.102490 0.072036 0.008160 0.028142 0.204980 0.059181 0.307471 +0 +0.004768 0.021139 0.058474 0.077437 0.027568 0.308692 0.059505 0.003572 0.034549 0.084546 0.045732 0.286027 0.000369 0.019348 0.070223 0.065602 0.037258 0.177993 0.044082 0.011251 0.031485 0.102490 0.064834 0.004685 0.033653 0.239144 0.090386 0.002760 0.005493 0.273307 0.088710 0.307471 +0.441262 +0.010779 0.048879 0.107997 0.049125 0.032234 0.119807 0.044261 0.003773 0.072237 0.051976 0.049814 0.055540 0.044675 0.017859 0.037440 0.045559 0.050731 0.480058 0.051223 0.055051 0.027738 0.239144 0.102025 0.006803 0.014954 0.204980 0.092881 0.025439 0.057469 0.239144 0.079543 0.273307 +0.313739 +0.025138 0.053209 0.051370 0.061561 0.050916 0.171967 0.010745 0.015092 0.052858 0.038041 0.028185 0.034393 0.063851 0.037019 0.061222 0.037267 0.049584 0.058628 0.044467 0.027820 0.013916 0.170817 0.057105 0.002646 0.017475 0.136654 0.087084 0.062469 0.052269 0.136654 0.094890 0.204980 +0 +0.044277 0.025101 0.054259 0.058794 0.043706 0.067068 0.058862 0.003761 0.079793 0.048528 0.024487 0.199510 0.025124 0.031742 0.073319 0.034951 0.051189 0.164604 0.051054 0.054268 0.048198 0.170817 0.074170 0.061025 0.065677 0.273307 0.071746 0.068042 0.055157 0.102490 0.071297 0.307471 +0.194493 +0.057558 0.008107 0.035256 0.085499 0.039955 0.063695 0.052582 0.030435 0.081211 0.054496 0.027472 0.054219 0.031563 0.059119 0.044471 0.047776 0.039181 0.062876 0.055025 0.014368 0.006536 0.170817 0.054283 0.055939 0.005042 0.273307 0.094019 0.022580 0.034700 0.136654 0.060582 0.341634 +0 +0.025326 0.034812 0.154914 0.034620 0.021921 0.187541 0.049297 0.058618 0.040436 0.074344 0.047929 0.094896 0.036065 0.041980 0.049275 0.047544 0.026234 0.246435 0.058145 0.002178 0.020296 0.273307 0.061443 0.009692 0.046281 0.102490 0.079609 0.029626 0.034386 0.136654 0.075311 0.307471 +0.021757 +0.006574 0.012166 0.044222 0.056660 0.031243 0.052850 0.062156 0.039480 0.059443 0.051570 0.034683 0.062476 0.029180 0.018711 0.052803 0.042933 0.034098 0.056368 0.041307 0.059690 0.013406 0.239144 0.088663 0.032500 0.052953 0.102490 0.082782 0.036795 0.024450 0.102490 0.058972 0.307471 +0 +0.067683 0.058231 0.042983 0.057051 0.022946 0.117380 0.030428 0.001518 0.083737 0.083279 0.032999 0.051774 0.022037 0.027945 0.065614 0.123504 0.038874 0.040540 0.051419 0.012384 0.028461 0.102490 0.060250 0.032538 0.052605 0.136654 0.083558 0.057540 0.055514 0.102490 0.101701 0.204980 +0 +0.043295 0.037562 0.036710 0.042592 0.041560 0.066153 0.031603 0.025314 0.042062 0.149894 0.039548 0.136016 0.009536 0.012169 0.037145 0.050164 0.022200 0.078875 0.051544 0.018210 0.039079 0.170817 0.062056 0.020825 0.022022 0.170817 0.067050 0.025193 0.044930 0.136654 0.075716 0.204980 +0.059354 +0.064636 0.037011 0.070038 0.037566 0.035705 0.112948 0.000126 0.039934 0.095687 0.082764 0.042149 0.241063 0.005851 0.056529 0.074788 0.114982 0.040198 0.229416 0.041530 0.043054 0.057822 0.239144 0.058659 0.037653 0.022305 0.136654 0.095936 0.043210 0.027068 0.136654 0.061115 0.273307 +0.050587 +0.058656 0.066435 0.040529 0.038608 0.029696 0.086147 0.015280 0.002111 0.034937 0.085307 0.033889 0.231776 0.021770 0.062652 0.081492 0.157004 0.017629 0.207875 0.038914 0.061759 0.023272 0.136654 0.082852 0.023234 0.006940 0.170817 0.079203 0.029175 0.059570 0.102490 0.077326 0.239144 +0.084425 +0.016083 0.054706 0.053948 0.052810 0.037629 0.100729 0.061969 0.061394 0.053233 0.040579 0.017823 0.117100 0.019384 0.039003 0.086722 0.121324 0.024034 0.062474 0.054796 0.058162 0.054679 0.204980 0.081491 0.021598 0.023856 0.204980 0.093993 0.000886 0.031335 0.136654 0.071683 0.273307 +0.023692 +0.017604 0.049136 0.041459 0.106206 0.038413 0.453237 0.034139 0.030914 0.075085 0.144266 0.050797 0.042601 0.049458 0.038025 0.065686 0.070322 0.045947 0.037908 0.044427 0.031451 0.053609 0.136654 0.051791 0.000565 0.054546 0.136654 0.067091 0.006115 0.055766 0.204980 0.089576 0.239144 +0 +0.012239 0.011008 0.075650 0.045760 0.038108 0.105718 0.022305 0.010116 0.069932 0.048955 0.017859 0.471447 0.010358 0.013053 0.056593 0.090416 0.041225 0.064621 0.046757 0.055341 0.020156 0.204980 0.057319 0.006921 0.029738 0.239144 0.084301 0.013261 0.060126 0.239144 0.053661 0.307471 +0.435120 +0.053450 0.027968 0.065033 0.055772 0.042364 0.185149 0.049594 0.026773 0.073504 0.038066 0.037904 0.201212 0.045465 0.019839 0.039290 0.066784 0.032355 0.105439 0.061868 0.035514 0.028197 0.136654 0.054730 0.036524 0.066369 0.102490 0.069514 0.019452 0.043342 0.102490 0.072956 0.204980 +0.174447 +0.008579 0.013444 0.041725 0.315281 0.037049 0.214403 0.061196 0.042430 0.036987 0.040087 0.018976 0.042883 0.039692 0.040977 0.085457 0.050213 0.018192 0.097192 0.046322 0.068073 0.049181 0.239144 0.090142 0.051022 0.001531 0.136654 0.101870 0.015940 0.000753 0.273307 0.098557 0.341634 +0.004088 +0.032821 0.036437 0.071407 0.084522 0.046462 0.147959 0.066357 0.000145 0.109069 0.083869 0.028567 0.095836 0.018990 0.046530 0.034471 0.038261 0.046290 0.107041 0.051661 0.022683 0.052463 0.136654 0.069967 0.055847 0.021489 0.273307 0.066101 0.035417 0.057140 0.102490 0.080308 0.307471 +0.039010 +0.064358 0.061518 0.071948 0.049189 0.046594 0.071320 0.007319 0.017765 0.036766 0.050776 0.034059 0.119212 0.015133 0.003939 0.087812 0.051509 0.049635 0.140114 0.059443 0.036637 0.065605 0.170817 0.087510 0.018704 0.064106 0.170817 0.065666 0.046499 0.055865 0.136654 0.058659 0.204980 +0.053665 +0.034394 0.052936 0.052208 0.065088 0.038499 0.430207 0.056369 0.055853 0.067718 0.103150 0.049757 0.056928 0.002410 0.000192 0.149024 0.189672 0.048963 0.085681 0.066571 0.066683 0.026349 0.136654 0.063312 0.043855 0.062230 0.273307 0.072521 0.020787 0.014587 0.170817 0.059089 0.341634 +0.332933 +0.001570 0.036421 0.038125 0.068030 0.019054 0.212466 0.020318 0.045954 0.049491 0.040166 0.033222 0.073502 0.050892 0.028860 0.222623 0.148274 0.035400 0.146737 0.039130 0.007036 0.033165 0.170817 0.094815 0.004615 0.056334 0.239144 0.099541 0.046283 0.047343 0.136654 0.082612 0.273307 +0.106087 +0.015135 0.016641 0.145202 0.034487 0.022923 0.176449 0.019392 0.025924 0.152700 0.058382 0.020247 0.086604 0.041383 0.062002 0.046278 0.067931 0.019899 0.120073 0.042712 0.014658 0.059778 0.204980 0.087465 0.047063 0.049184 0.170817 0.076691 0.019777 0.062623 0.136654 0.096810 0.307471 +0.002244 +0.007184 0.022348 0.036324 0.035160 0.049105 0.102704 0.067279 0.067799 0.042611 0.053060 0.031415 0.114629 0.008634 0.020380 0.103121 0.141935 0.044151 0.100673 0.050274 0.059103 0.045719 0.170817 0.084661 0.004695 0.061871 0.239144 0.076333 0.024893 0.017323 0.102490 0.098965 0.307471 +0.004715 +0.053597 0.036159 0.047478 0.057918 0.050411 0.334175 0.037605 0.033617 0.156973 0.125680 0.051219 0.074819 0.002161 0.064996 0.053359 0.067860 0.038471 0.073210 0.045080 0.010321 0.050907 0.102490 0.084267 0.042628 0.049999 0.204980 0.097463 0.031582 0.019608 0.204980 0.063642 0.273307 +0.083744 +0.025726 0.046228 0.093812 0.038497 0.042361 0.102582 0.023312 0.002946 0.070128 0.039287 0.044969 0.034333 0.037318 0.043460 0.106731 0.054092 0.032584 0.091140 0.048379 0.005253 0.020067 0.204980 0.074374 0.054769 0.035169 0.136654 0.072778 0.054110 0.032316 0.204980 0.102212 0.239144 +0 +0.016219 0.059705 0.102032 0.089602 0.049411 0.395599 0.061329 0.019357 0.053511 0.044678 0.023447 0.069683 0.044291 0.063860 0.062749 0.044321 0.050137 0.037223 0.048316 0.053084 0.021106 0.170817 0.064156 0.043942 0.032352 0.102490 0.056965 0.005986 0.002695 0.170817 0.078268 0.204980 +0.037344 +0.043664 0.044129 0.041901 0.064596 0.022467 0.236794 0.050174 0.026996 0.059482 0.046153 0.046100 0.123942 0.019729 0.062605 0.056152 0.067065 0.044148 0.308528 0.060221 0.057392 0.055830 0.102490 0.091288 0.025743 0.041342 0.170817 0.081755 0.018948 0.043888 0.102490 0.087870 0.204980 +0.085763 +0.006257 0.060459 0.058201 0.046441 0.042789 0.086211 0.048146 0.032874 0.078052 0.056861 0.022238 0.127161 0.040775 0.041617 0.135156 0.057073 0.040312 0.471380 0.044778 0.064700 0.036778 0.170817 0.052026 0.055153 0.060426 0.102490 0.096345 0.000598 0.065517 0.102490 0.053224 0.204980 +0.574969 +0.056791 0.031822 0.040577 0.054516 0.038535 0.244346 0.053959 0.061579 0.041311 0.164787 0.026399 0.191681 0.062895 0.033817 0.077562 0.037722 0.048696 0.059426 0.049406 0.004603 0.023894 0.170817 0.083406 0.021026 0.009207 0.170817 0.074502 0.041545 0.026637 0.204980 0.098110 0.273307 +0.040485 +0.057541 0.025605 0.111451 0.054474 0.034735 0.054921 0.051659 0.018090 0.052360 0.034542 0.043023 0.091236 0.048847 0.054169 0.042082 0.042877 0.049183 0.068159 0.042616 0.031140 0.032797 0.136654 0.052171 0.020482 0.008553 0.204980 0.059431 0.038026 0.007574 0.102490 0.083503 0.307471 +0.012370 +0.068013 0.047875 0.123071 0.050115 0.031586 0.148258 0.021931 0.031632 0.035685 0.119554 0.049401 0.182854 0.010599 0.052626 0.040520 0.051417 0.026593 0.190966 0.042683 0.002429 0.008405 0.273307 0.052998 0.064051 0.001136 0.239144 0.059523 0.067424 0.054435 0.136654 0.057158 0.307471 +0.044666 +0.030718 0.030515 0.051893 0.085304 0.026515 0.040190 0.023395 0.022204 0.055600 0.118969 0.020110 0.056300 0.061347 0.056512 0.120028 0.065318 0.040780 0.097538 0.048653 0.049458 0.029041 0.170817 0.066160 0.025237 0.054873 0.136654 0.063533 0.059784 0.058363 0.204980 0.056521 0.307471 +0 +0.009976 0.059134 0.061410 0.037146 0.045879 0.059171 0.046017 0.041014 0.043553 0.084517 0.033498 0.405818 0.013990 0.007260 0.062139 0.088474 0.044845 0.034482 0.044423 0.057099 0.029360 0.136654 0.099046 0.058282 0.046118 0.170817 0.053971 0.025830 0.063892 0.102490 0.093761 0.204980 +0.059265 +0.043452 0.028309 0.035652 0.120117 0.044558 0.156880 0.014334 0.058852 0.072191 0.040233 0.036363 0.063065 0.032221 0.013004 0.076778 0.041689 0.022506 0.047600 0.046806 0.057930 0.007968 0.273307 0.090121 0.003262 0.009447 0.170817 0.089242 0.068110 0.044252 0.204980 0.057431 0.307471 +0.055888 +0.039085 0.036725 0.137670 0.048282 0.038949 0.102782 0.016780 0.000172 0.055166 0.056441 0.027641 0.150976 0.007321 0.035662 0.096471 0.093045 0.047597 0.357468 0.043234 0.000500 0.066547 0.136654 0.068211 0.020743 0.041003 0.204980 0.083115 0.045978 0.044929 0.204980 0.071379 0.307471 +0.001092 +0.054105 0.029575 0.083954 0.039377 0.038717 0.132218 0.019770 0.020351 0.049541 0.078545 0.022502 0.216725 0.010948 0.037953 0.035864 0.056812 0.022174 0.047692 0.055411 0.034545 0.017406 0.239144 0.094646 0.046407 0.001277 0.136654 0.061786 0.033476 0.011429 0.102490 0.076750 0.273307 +0.093158 +0.065936 0.012338 0.072295 0.044875 0.021546 0.167542 0.014207 0.032295 0.086428 0.034969 0.029239 0.090996 0.024182 0.059911 0.041928 0.037144 0.041280 0.231611 0.049947 0.062666 0.030771 0.204980 0.055213 0.003733 0.041114 0.204980 0.098752 0.025935 0.001577 0.170817 0.088238 0.273307 +0.196321 +0.009191 0.062205 0.137804 0.068933 0.050279 0.196691 0.006564 0.065806 0.109345 0.170990 0.042319 0.113058 0.000128 0.026993 0.074735 0.047903 0.030436 0.059890 0.064796 0.036374 0.005226 0.170817 0.060886 0.050331 0.050815 0.170817 0.071031 0.022525 0.001092 0.102490 0.085408 0.204980 +0.171911 +0.055035 0.041419 0.052399 0.112645 0.041188 0.067010 0.041563 0.063581 0.092777 0.037363 0.033172 0.251346 0.008968 0.059777 0.046500 0.059255 0.022745 0.042669 0.039742 0.060300 0.028525 0.204980 0.076148 0.010388 0.034751 0.273307 0.064142 0.052831 0.025395 0.170817 0.090346 0.307471 +0.091483 +0.051999 0.060521 0.197989 0.062554 0.048213 0.358156 0.011755 0.011238 0.052249 0.037816 0.047700 0.433319 0.025964 0.041765 0.066669 0.193547 0.047290 0.208356 0.051843 0.002042 0.013560 0.204980 0.082226 0.018763 0.065138 0.170817 0.070250 0.038111 0.037029 0.239144 0.059716 0.273307 +0.479358 +0.048984 0.031420 0.056799 0.097757 0.042646 0.084977 0.048784 0.045139 0.063107 0.042343 0.040200 0.364082 0.054977 0.068166 0.077989 0.062583 0.040482 0.274976 0.052247 0.053605 0.054456 0.273307 0.072224 0.040281 0.025596 0.102490 0.062054 0.003969 0.042153 0.204980 0.067130 0.307471 +0.384425 +0.016650 0.000524 0.063430 0.066371 0.047072 0.074565 0.000136 0.053187 0.038864 0.058207 0.023146 0.037862 0.050157 0.043764 0.044229 0.055050 0.039502 0.109262 0.062211 0.047838 0.004373 0.170817 0.065528 0.055175 0.060882 0.170817 0.065674 0.062819 0.013688 0.136654 0.053890 0.239144 +0 +0.015630 0.047660 0.038865 0.056014 0.019142 0.071473 0.015625 0.050691 0.079602 0.040287 0.034435 0.066062 0.016982 0.034636 0.045626 0.034467 0.038776 0.107443 0.053053 0.032615 0.048758 0.170817 0.088030 0.047049 0.049254 0.170817 0.076414 0.060055 0.029816 0.102490 0.069547 0.239144 +0.002354 +0.026384 0.049912 0.051062 0.084021 0.042888 0.276040 0.066553 0.011964 0.128286 0.204102 0.040294 0.152021 0.061590 0.052379 0.037539 0.128469 0.034140 0.047945 0.040166 0.004085 0.021840 0.239144 0.066941 0.000477 0.043553 0.273307 0.084045 0.057563 0.012749 0.204980 0.056704 0.307471 +0.053780 +0.014042 0.063543 0.076476 0.052675 0.023624 0.266281 0.067708 0.033803 0.052495 0.090904 0.048132 0.089403 0.060719 0.016527 0.055298 0.049620 0.042030 0.059224 0.060554 0.010777 0.029128 0.136654 0.080087 0.037337 0.035422 0.136654 0.092119 0.053499 0.004311 0.204980 0.083310 0.273307 +0.026602 +0.007668 0.059614 0.051448 0.072142 0.030881 0.255885 0.020542 0.046312 0.066162 0.060431 0.033337 0.039267 0.042948 0.054049 0.068818 0.099923 0.040418 0.179131 0.063341 0.028244 0.020162 0.204980 0.076791 0.062923 0.007150 0.204980 0.059196 0.051946 0.010899 0.102490 0.101521 0.239144 +0.004949 +0.030396 0.055047 0.093911 0.084245 0.017486 0.158386 0.009559 0.047553 0.052884 0.068516 0.029685 0.069643 0.052548 0.017560 0.108851 0.060043 0.050452 0.064760 0.044138 0.033149 0.018763 0.102490 0.054963 0.043231 0.033541 0.136654 0.052246 0.060869 0.028680 0.136654 0.075128 0.204980 +0.042778 +0.009810 0.046496 0.077194 0.076978 0.034273 0.075626 0.046937 0.056385 0.047363 0.093085 0.048653 0.090587 0.043084 0.013755 0.085174 0.040029 0.031818 0.098664 0.058596 0.031915 0.001502 0.204980 0.082105 0.037920 0.058597 0.136654 0.076597 0.042297 0.010881 0.307471 0.089079 0.341634 +0 +0.053156 0.043424 0.062855 0.116548 0.049224 0.069444 0.061828 0.007007 0.048965 0.067515 0.022729 0.068229 0.064103 0.046272 0.046025 0.064401 0.045828 0.046221 0.061405 0.066919 0.034770 0.102490 0.077831 0.054365 0.030847 0.102490 0.083488 0.032866 0.028031 0.136654 0.074645 0.204980 +0.002600 +0.062060 0.035928 0.053310 0.064259 0.030246 0.049964 0.027643 0.055217 0.053073 0.058625 0.050770 0.192540 0.005963 0.065305 0.037001 0.035165 0.048606 0.150316 0.054758 0.002247 0.030853 0.170817 0.072558 0.061121 0.052072 0.102490 0.063488 0.055311 0.047070 0.136654 0.072070 0.204980 +0.021435 +0.023937 0.002284 0.052228 0.043954 0.040213 0.038542 0.004868 0.034966 0.076884 0.079779 0.034958 0.175018 0.051465 0.021246 0.047987 0.061149 0.033537 0.315322 0.059018 0.065445 0.025147 0.170817 0.096274 0.065182 0.009429 0.170817 0.071302 0.064893 0.041053 0.136654 0.089549 0.204980 +0.066929 +0.022917 0.035113 0.037028 0.056816 0.034102 0.041235 0.061021 0.004346 0.037440 0.042600 0.028589 0.133412 0.004396 0.032213 0.094298 0.048587 0.028681 0.098663 0.038941 0.057779 0.017897 0.204980 0.080376 0.043995 0.045908 0.102490 0.053689 0.009305 0.062461 0.136654 0.094175 0.273307 +0.017696 +0.035384 0.033688 0.091569 0.055207 0.038860 0.389957 0.009867 0.061410 0.097211 0.073496 0.021308 0.307808 0.019802 0.017090 0.138879 0.089618 0.031302 0.145822 0.043292 0.048025 0.012102 0.136654 0.053672 0.055250 0.021290 0.239144 0.078474 0.038459 0.062273 0.307471 0.075589 0.341634 +0.293892 +0.010630 0.051976 0.052867 0.035973 0.025988 0.186036 0.035031 0.025912 0.035154 0.065543 0.045501 0.173139 0.000780 0.058148 0.070174 0.181330 0.038648 0.078014 0.047524 0.016604 0.018165 0.136654 0.083263 0.004988 0.029607 0.102490 0.101909 0.061706 0.016230 0.102490 0.051593 0.239144 +0.101581 +0.054235 0.037551 0.058060 0.096732 0.039621 0.212563 0.015199 0.008768 0.047774 0.070620 0.017464 0.110405 0.052467 0.003069 0.036655 0.037752 0.045181 0.142458 0.053954 0.025099 0.019008 0.204980 0.079755 0.023231 0.046455 0.170817 0.054812 0.066512 0.005712 0.136654 0.071608 0.239144 +0.107684 +0.037797 0.038493 0.090576 0.057126 0.025166 0.137379 0.017562 0.018271 0.129061 0.036558 0.021624 0.384954 0.036397 0.030429 0.035638 0.064498 0.037255 0.148932 0.051511 0.064474 0.035982 0.170817 0.091881 0.061191 0.063734 0.102490 0.067973 0.001465 0.051576 0.204980 0.098207 0.273307 +0.217668 +0.040091 0.060736 0.076401 0.034674 0.042021 0.229317 0.050871 0.060225 0.093400 0.058491 0.045040 0.147421 0.048880 0.060869 0.058657 0.042726 0.028033 0.182739 0.050661 0.002667 0.054399 0.136654 0.079948 0.052773 0.022240 0.239144 0.065379 0.055611 0.062446 0.170817 0.062379 0.307471 +0.185188 +0.011144 0.048847 0.133767 0.039178 0.035148 0.054785 0.018083 0.000452 0.071716 0.085339 0.035840 0.217364 0.010934 0.067311 0.053423 0.088876 0.025261 0.198839 0.049897 0.032131 0.013035 0.102490 0.054976 0.025342 0.065066 0.102490 0.052672 0.060495 0.030589 0.170817 0.080747 0.204980 +0.508102 +0.061390 0.018860 0.066046 0.045803 0.046495 0.119548 0.006732 0.007231 0.087590 0.050895 0.037040 0.179912 0.061521 0.053375 0.067037 0.045355 0.035293 0.191621 0.040219 0.049818 0.040026 0.136654 0.094679 0.006728 0.001207 0.136654 0.089688 0.054615 0.064065 0.239144 0.070954 0.341634 +0.041364 +0.055047 0.015200 0.089798 0.034395 0.044853 0.157402 0.040030 0.021880 0.068428 0.057334 0.021568 0.087181 0.025761 0.059774 0.067303 0.080145 0.019360 0.037307 0.055639 0.007386 0.007070 0.307471 0.091168 0.028444 0.014471 0.136654 0.059075 0.063904 0.011554 0.204980 0.099890 0.341634 +0.002676 +0.014458 0.055693 0.036074 0.090093 0.036605 0.099872 0.030817 0.050175 0.077208 0.085160 0.032831 0.042445 0.044919 0.018902 0.046825 0.071675 0.044954 0.174475 0.046371 0.021246 0.024444 0.273307 0.065592 0.067016 0.065308 0.273307 0.073839 0.047384 0.021236 0.170817 0.070135 0.307471 +0.437648 +0.054340 0.059092 0.037256 0.090951 0.030271 0.102356 0.034179 0.014761 0.084236 0.070197 0.021354 0.107333 0.047306 0.026383 0.072627 0.044033 0.030645 0.114652 0.048693 0.049079 0.058776 0.170817 0.088936 0.056108 0.051391 0.170817 0.070983 0.017446 0.041619 0.102490 0.081287 0.273307 +0 +0.016269 0.008910 0.041620 0.051410 0.026717 0.206031 0.037551 0.030797 0.059796 0.063708 0.043541 0.178307 0.046614 0.058883 0.047889 0.100950 0.035496 0.474139 0.042724 0.017844 0.007565 0.102490 0.056131 0.025418 0.002827 0.102490 0.063546 0.006502 0.055877 0.204980 0.099031 0.239144 +0.585950 +0.006270 0.039109 0.047118 0.036618 0.023818 0.112005 0.011120 0.048040 0.155183 0.075955 0.032312 0.211685 0.066789 0.017703 0.051194 0.054870 0.029614 0.132862 0.037500 0.034232 0.053061 0.136654 0.060667 0.008989 0.035699 0.102490 0.051664 0.008011 0.025961 0.204980 0.074734 0.239144 +0.112479 +0.043075 0.060755 0.039634 0.034314 0.039328 0.118947 0.065844 0.034670 0.169789 0.121641 0.041852 0.197718 0.014015 0.025554 0.057074 0.101931 0.030103 0.206511 0.066018 0.048423 0.001059 0.239144 0.086318 0.058783 0.023497 0.170817 0.078224 0.035370 0.037397 0.204980 0.099890 0.341634 +0.151915 +0.020910 0.059950 0.088218 0.059962 0.020031 0.063691 0.000462 0.054934 0.034884 0.055166 0.038313 0.091174 0.008776 0.053898 0.055066 0.063096 0.023346 0.204095 0.041820 0.046325 0.008566 0.136654 0.077924 0.058610 0.033934 0.102490 0.054538 0.049527 0.038510 0.102490 0.092182 0.273307 +0.131165 +0.067394 0.064379 0.047603 0.040285 0.047116 0.064662 0.008766 0.003568 0.070818 0.037764 0.050102 0.077673 0.043899 0.034988 0.042106 0.073527 0.038220 0.082561 0.061573 0.064555 0.050195 0.204980 0.097403 0.061376 0.039066 0.273307 0.077343 0.012541 0.037861 0.239144 0.073074 0.307471 +0 +0.004390 0.020695 0.060530 0.078876 0.038653 0.049495 0.008312 0.057207 0.036325 0.058457 0.017256 0.037352 0.030664 0.014414 0.041085 0.063033 0.025527 0.053752 0.057140 0.028493 0.037339 0.136654 0.095862 0.063241 0.040975 0.204980 0.062464 0.020408 0.015683 0.204980 0.061910 0.239144 +0 +0.064377 0.058165 0.034386 0.057356 0.043694 0.627427 0.016266 0.066873 0.107262 0.088979 0.027461 0.148398 0.018340 0.059219 0.099360 0.057032 0.030721 0.049302 0.053120 0.061434 0.066189 0.102490 0.069646 0.032777 0.055180 0.204980 0.098569 0.001153 0.007514 0.239144 0.087694 0.273307 +0.271866 +0.043995 0.067913 0.120397 0.086430 0.045960 0.230646 0.009654 0.059686 0.103257 0.054559 0.019286 0.050055 0.033944 0.021354 0.039959 0.037237 0.018393 0.376379 0.052002 0.064572 0.023417 0.136654 0.091954 0.028878 0.012807 0.170817 0.071773 0.055724 0.036318 0.136654 0.072465 0.239144 +0.361961 +0.067672 0.043780 0.052930 0.039171 0.049344 0.256185 0.039524 0.048072 0.052936 0.050480 0.040973 0.210300 0.038663 0.028221 0.059446 0.185117 0.044074 0.077984 0.064721 0.015488 0.040726 0.204980 0.094147 0.048360 0.036259 0.136654 0.068308 0.054742 0.063592 0.170817 0.097677 0.239144 +0.027900 +0.025682 0.042072 0.038992 0.103461 0.044963 0.128577 0.037280 0.013261 0.064601 0.038521 0.030706 0.208056 0.065467 0.012194 0.184286 0.053106 0.050521 0.188781 0.045084 0.011723 0.012404 0.204980 0.099186 0.037725 0.049031 0.170817 0.053507 0.063613 0.046103 0.239144 0.070620 0.273307 +0.318079 +0.006614 0.035853 0.086167 0.052825 0.034977 0.368375 0.067550 0.039834 0.041095 0.091311 0.026858 0.104300 0.040423 0.023622 0.037657 0.036915 0.044992 0.075855 0.048005 0.012834 0.059994 0.136654 0.052728 0.049806 0.058590 0.204980 0.097410 0.023777 0.052051 0.239144 0.065707 0.273307 +0.439369 +0.049051 0.005775 0.072950 0.059950 0.035742 0.063532 0.045032 0.034453 0.228562 0.081081 0.024011 0.121295 0.046034 0.003569 0.070673 0.037184 0.045748 0.069719 0.042656 0.048498 0.055238 0.136654 0.053994 0.003814 0.058531 0.170817 0.052262 0.057846 0.031679 0.239144 0.052655 0.341634 +0.000985 +0.050210 0.034251 0.073038 0.101566 0.046306 0.047293 0.001507 0.030563 0.116312 0.044887 0.027255 0.208893 0.017943 0.067412 0.038031 0.045609 0.037200 0.093967 0.043768 0.057263 0.064118 0.136654 0.063417 0.003617 0.034841 0.239144 0.092540 0.012226 0.028312 0.204980 0.089537 0.307471 +0.037690 +0.064678 0.018045 0.061405 0.112429 0.047163 0.418277 0.030739 0.014821 0.178592 0.048252 0.040863 0.034182 0.013402 0.000346 0.062904 0.054358 0.050609 0.083911 0.045158 0.015330 0.002327 0.239144 0.062002 0.006352 0.044145 0.102490 0.072862 0.065800 0.023894 0.239144 0.063034 0.273307 +0.330462 +0.066942 0.024456 0.125093 0.043041 0.043532 0.041290 0.060054 0.056376 0.207410 0.109945 0.023841 0.111184 0.044367 0.023561 0.048271 0.119266 0.042907 0.412018 0.064837 0.016280 0.056136 0.170817 0.064705 0.006992 0.021263 0.204980 0.098630 0.066487 0.026580 0.170817 0.100925 0.239144 +0.170235 +0.025269 0.011427 0.111316 0.194122 0.020258 0.321428 0.037356 0.032491 0.036523 0.067189 0.019902 0.296029 0.035826 0.060266 0.036206 0.043526 0.028143 0.145417 0.057903 0.003051 0.008915 0.136654 0.051849 0.015738 0.047757 0.102490 0.075084 0.057002 0.038683 0.136654 0.076741 0.204980 +0.610068 +0.005624 0.000915 0.040036 0.060597 0.019924 0.056147 0.049983 0.018459 0.041241 0.068468 0.035778 0.207346 0.061398 0.062117 0.073731 0.153114 0.031988 0.066726 0.052763 0.049891 0.053802 0.273307 0.077133 0.025391 0.042754 0.307471 0.090674 0.019135 0.017564 0.273307 0.078740 0.341634 +0.065618 +0.040137 0.017492 0.051129 0.038020 0.037797 0.295090 0.023141 0.045473 0.052220 0.039780 0.026642 0.199373 0.048251 0.019250 0.066505 0.077101 0.039352 0.037320 0.051943 0.011701 0.033670 0.239144 0.092116 0.027630 0.024729 0.136654 0.098972 0.054798 0.005991 0.204980 0.070728 0.341634 +0.139417 +0.001729 0.007585 0.069176 0.214027 0.041066 0.200387 0.027122 0.022255 0.045906 0.069668 0.041419 0.041902 0.008400 0.051655 0.111370 0.126883 0.042275 0.068352 0.055768 0.013316 0.008034 0.204980 0.054082 0.013453 0.017834 0.136654 0.095950 0.065780 0.044893 0.136654 0.062915 0.341634 +0 +0.032723 0.066930 0.098405 0.090247 0.049535 0.137997 0.030313 0.009032 0.097006 0.070714 0.027024 0.201935 0.015109 0.064988 0.039103 0.120820 0.019458 0.140135 0.048793 0.001111 0.020867 0.170817 0.101172 0.000201 0.033240 0.239144 0.056813 0.033775 0.040893 0.102490 0.095256 0.307471 +0.101030 +0.008650 0.015979 0.047007 0.037564 0.038050 0.043185 0.019542 0.005868 0.044331 0.082699 0.033333 0.240139 0.011695 0.030532 0.042190 0.043544 0.034650 0.165668 0.050260 0.020012 0.010599 0.170817 0.094705 0.001374 0.007524 0.239144 0.090399 0.049992 0.024341 0.136654 0.090826 0.341634 +0.055320 +0.010149 0.040742 0.039186 0.112661 0.022474 0.327451 0.067927 0.034181 0.089466 0.093465 0.022379 0.076987 0.013528 0.054775 0.106907 0.079943 0.042383 0.111073 0.040070 0.021268 0.060846 0.239144 0.063153 0.016207 0.049559 0.204980 0.082482 0.068270 0.012452 0.102490 0.065147 0.341634 +0 +0.061722 0.040979 0.047526 0.135906 0.037561 0.300207 0.013426 0.005545 0.123718 0.068456 0.033398 0.100639 0.035024 0.048382 0.073447 0.044885 0.036727 0.085503 0.058518 0.022463 0.034541 0.136654 0.077320 0.005110 0.021110 0.102490 0.074884 0.004814 0.001464 0.204980 0.099891 0.273307 +0.143943 +0.025689 0.065747 0.067717 0.062677 0.022881 0.109104 0.009825 0.009960 0.058595 0.043558 0.043532 0.109710 0.051913 0.009678 0.050046 0.040380 0.043232 0.050568 0.061399 0.009980 0.044199 0.102490 0.086056 0.001737 0.015521 0.170817 0.083043 0.011743 0.061467 0.102490 0.087547 0.204980 +0.005095 +0.029529 0.014251 0.043030 0.085699 0.046038 0.217318 0.025719 0.015165 0.064945 0.036261 0.028258 0.225560 0.038924 0.061920 0.056111 0.100924 0.027116 0.068974 0.055380 0.027933 0.048469 0.136654 0.065425 0.018261 0.014417 0.170817 0.089244 0.025458 0.015744 0.239144 0.097794 0.307471 +0.312515 +0.015975 0.057916 0.085990 0.035323 0.020451 0.075460 0.060347 0.026238 0.036287 0.066501 0.026563 0.162094 0.007172 0.033046 0.070885 0.043251 0.019618 0.088927 0.063609 0.028844 0.023612 0.102490 0.056496 0.042611 0.066078 0.239144 0.072914 0.040532 0.021408 0.204980 0.058472 0.341634 +0.004399 +0.022672 0.038321 0.207021 0.060665 0.036884 0.313500 0.032475 0.037516 0.072453 0.160671 0.031896 0.045707 0.053575 0.034854 0.069400 0.034811 0.048680 0.082349 0.057003 0.062350 0.036134 0.102490 0.066196 0.066544 0.014554 0.102490 0.093853 0.046961 0.059255 0.273307 0.066045 0.307471 +0 +0.047982 0.050272 0.036609 0.049838 0.040290 0.046749 0.010581 0.049413 0.072167 0.070386 0.047710 0.480678 0.055890 0.003618 0.034994 0.051761 0.022439 0.050846 0.042230 0.030477 0.016111 0.204980 0.076613 0.058565 0.055515 0.102490 0.059906 0.063972 0.028315 0.273307 0.071036 0.341634 +0.845162 +0.032576 0.012899 0.042050 0.041745 0.031640 0.247919 0.018711 0.049311 0.047510 0.036483 0.037996 0.045736 0.034591 0.046977 0.064542 0.041209 0.019063 0.114703 0.044252 0.006743 0.024040 0.307471 0.076818 0.068119 0.038497 0.239144 0.094470 0.063896 0.029356 0.273307 0.070183 0.341634 +0.563804 +0.053703 0.004751 0.065084 0.042212 0.019195 0.157138 0.040120 0.010890 0.106135 0.115174 0.022190 0.105820 0.068210 0.035480 0.165229 0.035195 0.041625 0.119042 0.042212 0.046745 0.033621 0.239144 0.098833 0.046811 0.052240 0.170817 0.093686 0.011385 0.021050 0.273307 0.093462 0.341634 +0.007030 +0.063713 0.004543 0.042666 0.062401 0.036761 0.045955 0.001028 0.005528 0.068789 0.072383 0.024474 0.074149 0.001331 0.030510 0.151971 0.060792 0.037255 0.215634 0.046756 0.030143 0.068123 0.102490 0.093914 0.036153 0.014941 0.204980 0.062022 0.024490 0.047804 0.239144 0.081928 0.341634 +0.001691 +0.054048 0.043195 0.050129 0.036746 0.049119 0.062194 0.017158 0.049930 0.045572 0.076479 0.041545 0.038402 0.042542 0.052202 0.038552 0.046918 0.036173 0.089728 0.056617 0.004980 0.016623 0.170817 0.059060 0.046672 0.004006 0.136654 0.096681 0.031632 0.024983 0.204980 0.082948 0.273307 +0 +0.035267 0.028007 0.045489 0.074459 0.027066 0.072466 0.050124 0.012453 0.054815 0.053794 0.045576 0.080919 0.022392 0.067237 0.068233 0.083135 0.046382 0.106671 0.037631 0.039129 0.045121 0.102490 0.057114 0.058713 0.009847 0.204980 0.057574 0.055228 0.061895 0.204980 0.078758 0.239144 +0.026640 +0.011262 0.004852 0.053965 0.119405 0.044036 0.154784 0.040822 0.015221 0.041494 0.048038 0.032843 0.092164 0.003130 0.016627 0.042298 0.074196 0.039652 0.049864 0.046338 0.013640 0.006098 0.170817 0.058225 0.020173 0.056468 0.170817 0.060468 0.037971 0.032818 0.102490 0.101865 0.273307 +0.004207 +0.027661 0.049854 0.051525 0.103716 0.025437 0.159017 0.006364 0.049354 0.075158 0.039686 0.042562 0.149063 0.033505 0.021495 0.101940 0.046974 0.019650 0.067853 0.037198 0.019120 0.049719 0.170817 0.074611 0.046211 0.047475 0.204980 0.073303 0.017384 0.008376 0.102490 0.099606 0.273307 +0.450322 +0.027513 0.004203 0.128696 0.105660 0.041806 0.123384 0.045441 0.060352 0.056246 0.100619 0.044658 0.458099 0.059028 0.031352 0.034315 0.064791 0.041139 0.041770 0.039575 0.003137 0.046267 0.170817 0.073764 0.032218 0.001233 0.239144 0.101654 0.016386 0.038115 0.273307 0.060253 0.341634 +0.486699 +0.061633 0.012429 0.053837 0.079788 0.050240 0.121299 0.016095 0.068266 0.035448 0.081970 0.033100 0.193454 0.041265 0.024961 0.075808 0.056583 0.031130 0.117635 0.060886 0.012687 0.001799 0.102490 0.067249 0.062387 0.064706 0.136654 0.070321 0.003890 0.040187 0.136654 0.092565 0.204980 +0.078482 +0.029388 0.001408 0.086978 0.055802 0.034494 0.114794 0.030158 0.007731 0.039109 0.035472 0.026103 0.073197 0.063877 0.031785 0.097756 0.107269 0.045621 0.044621 0.043547 0.025242 0.002083 0.102490 0.095943 0.020797 0.064880 0.170817 0.101961 0.054575 0.023876 0.102490 0.094006 0.341634 +0 +0.010971 0.020171 0.195885 0.045269 0.025166 0.104706 0.058807 0.015778 0.034727 0.050997 0.028954 0.055649 0.053759 0.015569 0.053965 0.086954 0.041559 0.163637 0.054910 0.031646 0.031332 0.239144 0.073127 0.041365 0.055554 0.102490 0.064910 0.045637 0.001454 0.239144 0.093642 0.273307 +0.005294 +0.005766 0.052883 0.080084 0.040935 0.036954 0.080907 0.028933 0.055936 0.173499 0.039281 0.020465 0.180557 0.036929 0.032373 0.054529 0.046568 0.046156 0.642616 0.059066 0.034122 0.004753 0.136654 0.080316 0.006358 0.003522 0.204980 0.099262 0.026907 0.047496 0.204980 0.082411 0.273307 +0.492154 +0.044677 0.046218 0.041480 0.039441 0.041496 0.059324 0.054473 0.008750 0.087571 0.116976 0.030396 0.144492 0.060581 0.030120 0.065005 0.068478 0.023623 0.377515 0.046978 0.012919 0.063891 0.102490 0.092800 0.003727 0.043379 0.136654 0.096135 0.007064 0.058390 0.102490 0.069887 0.204980 +0.043733 +0.002576 0.024116 0.060972 0.047892 0.025044 0.115055 0.067085 0.018474 0.069706 0.035001 0.018355 0.051381 0.013478 0.012486 0.071359 0.057347 0.029767 0.351911 0.055895 0.027427 0.057228 0.170817 0.101988 0.013766 0.036994 0.204980 0.073073 0.003169 0.040392 0.102490 0.054201 0.341634 +0 +0.051978 0.038885 0.052154 0.079054 0.030663 0.038508 0.017803 0.034772 0.041979 0.037296 0.047459 0.170923 0.034261 0.025713 0.126729 0.052355 0.031163 0.054675 0.056467 0.000139 0.012939 0.307471 0.069753 0.060496 0.046649 0.102490 0.101949 0.066533 0.015490 0.102490 0.088792 0.341634 +0.047298 +0.053274 0.017279 0.127764 0.181346 0.024642 0.165592 0.057771 0.066118 0.093875 0.062214 0.037174 0.047313 0.008750 0.009387 0.063220 0.087945 0.018161 0.150272 0.052761 0.007530 0.013653 0.102490 0.089166 0.019797 0.000927 0.102490 0.092820 0.051502 0.023277 0.136654 0.073491 0.204980 +0.043484 +0.034885 0.010480 0.039631 0.035915 0.036909 0.059473 0.053975 0.038631 0.053949 0.053598 0.027494 0.085931 0.053384 0.005508 0.125245 0.096964 0.050351 0.087283 0.041247 0.021787 0.039106 0.204980 0.085463 0.054047 0.064317 0.170817 0.065640 0.021603 0.033188 0.273307 0.058879 0.307471 +0.028673 +0.032636 0.008173 0.132877 0.044364 0.022804 0.144293 0.042911 0.025865 0.098999 0.057381 0.049631 0.044158 0.021708 0.029393 0.051037 0.034200 0.036643 0.221445 0.040705 0.031829 0.018196 0.102490 0.095286 0.042085 0.019963 0.204980 0.091022 0.001870 0.013089 0.136654 0.075499 0.341634 +0 +0.065177 0.053277 0.044563 0.067320 0.034935 0.150026 0.034211 0.003106 0.046261 0.037676 0.038180 0.505457 0.061617 0.027076 0.047740 0.068980 0.019822 0.160448 0.059194 0.017380 0.017571 0.136654 0.059747 0.063597 0.029277 0.170817 0.084252 0.019036 0.000572 0.170817 0.057481 0.307471 +0.491188 +0.064771 0.046540 0.036944 0.038590 0.036973 0.051055 0.057895 0.035539 0.090508 0.089980 0.024648 0.044339 0.049916 0.030941 0.056679 0.094020 0.021559 0.070455 0.048926 0.044956 0.044062 0.204980 0.054673 0.021770 0.010242 0.204980 0.069030 0.036315 0.061797 0.170817 0.074740 0.341634 +0 +0.030122 0.011575 0.042650 0.044340 0.025662 0.046440 0.049081 0.054985 0.037160 0.066120 0.023307 0.221973 0.055085 0.049432 0.035512 0.052986 0.039834 0.120786 0.059252 0.002268 0.041819 0.170817 0.080119 0.049682 0.020122 0.136654 0.052928 0.018118 0.065474 0.239144 0.072478 0.307471 +0.019353 +0.054235 0.004483 0.064529 0.055625 0.043417 0.398975 0.042309 0.006473 0.120575 0.035938 0.036470 0.236294 0.031782 0.052457 0.094590 0.082861 0.017523 0.075952 0.046455 0.028813 0.010342 0.204980 0.092598 0.024387 0.051728 0.273307 0.070542 0.012971 0.067102 0.273307 0.059152 0.341634 +0.557346 +0.048174 0.063771 0.049341 0.044404 0.041724 0.035658 0.028889 0.024279 0.084358 0.034196 0.044243 0.081212 0.046379 0.009842 0.036615 0.074483 0.024283 0.100109 0.043173 0.009096 0.065475 0.307471 0.095211 0.043684 0.065136 0.273307 0.053185 0.006340 0.026906 0.239144 0.076618 0.341634 +0.024560 +0.049425 0.020236 0.064418 0.079414 0.050275 0.112464 0.058633 0.058655 0.050288 0.052560 0.030418 0.194852 0.029950 0.001767 0.060226 0.050190 0.029251 0.134341 0.041742 0.018754 0.012243 0.204980 0.091925 0.036732 0.039033 0.136654 0.075640 0.055915 0.001501 0.102490 0.062026 0.341634 +0 +0.019802 0.001907 0.038753 0.034461 0.040033 0.176487 0.052318 0.003793 0.087003 0.060487 0.048898 0.054257 0.046325 0.015604 0.071795 0.034784 0.019142 0.175459 0.048795 0.006027 0.051719 0.170817 0.086979 0.001559 0.064009 0.170817 0.087616 0.009310 0.001073 0.136654 0.060354 0.307471 +0.029144 +0.052846 0.062661 0.048027 0.113993 0.045473 0.131853 0.001219 0.015298 0.045332 0.083194 0.039057 0.553319 0.066465 0.006579 0.129642 0.054887 0.039876 0.211953 0.060698 0.012305 0.068216 0.102490 0.099847 0.040962 0.037535 0.239144 0.055644 0.022236 0.006252 0.136654 0.096041 0.273307 +0.291111 +0.019742 0.050917 0.066536 0.097946 0.038689 0.093231 0.014864 0.001249 0.061515 0.051796 0.034007 0.206951 0.067666 0.061843 0.039177 0.043805 0.047234 0.090411 0.057488 0.047334 0.031302 0.136654 0.072683 0.048068 0.048722 0.102490 0.074826 0.010049 0.047749 0.170817 0.090985 0.273307 +0.020071 +0.029957 0.010767 0.097816 0.041740 0.032861 0.061832 0.015052 0.002364 0.094887 0.047015 0.033393 0.373781 0.020157 0.031818 0.035608 0.060330 0.030080 0.178073 0.049979 0.057931 0.045209 0.136654 0.083954 0.008929 0.039314 0.239144 0.085285 0.042611 0.062365 0.239144 0.068620 0.273307 +0.560555 +0.048669 0.053397 0.034637 0.056421 0.042898 0.048430 0.019229 0.048077 0.034304 0.169186 0.019447 0.052402 0.054493 0.048301 0.041609 0.036866 0.021000 0.112973 0.063214 0.039275 0.046243 0.170817 0.062122 0.062472 0.012899 0.136654 0.074292 0.031277 0.049150 0.204980 0.097108 0.239144 +0.003334 +0.058463 0.001479 0.068800 0.100510 0.032868 0.075629 0.028758 0.008010 0.059632 0.056506 0.045059 0.117636 0.033622 0.035893 0.035410 0.158542 0.032744 0.115433 0.059258 0.035774 0.041028 0.170817 0.085209 0.032153 0.048714 0.136654 0.097374 0.016931 0.004618 0.273307 0.060582 0.341634 +0.001730 +0.047374 0.034407 0.041204 0.073024 0.023299 0.202718 0.040420 0.042384 0.074710 0.035754 0.030692 0.236965 0.010741 0.048356 0.042931 0.083588 0.019738 0.050840 0.050595 0.000029 0.020585 0.307471 0.085919 0.022777 0.053734 0.273307 0.054428 0.022903 0.053314 0.273307 0.088784 0.341634 +0.027771 +0.045639 0.056558 0.035742 0.037580 0.036188 0.116391 0.040164 0.033089 0.095065 0.038875 0.018164 0.458695 0.016247 0.060048 0.045108 0.043621 0.046188 0.140914 0.054472 0.030556 0.056115 0.273307 0.081232 0.029760 0.048698 0.204980 0.092556 0.031384 0.039255 0.204980 0.081182 0.307471 +0.202812 +0.018695 0.009361 0.089746 0.072605 0.040868 0.146555 0.017131 0.038363 0.068720 0.050829 0.044654 0.253038 0.055923 0.022757 0.069585 0.065297 0.043898 0.097588 0.058332 0.064218 0.038117 0.204980 0.074595 0.067853 0.006143 0.102490 0.100220 0.050910 0.049156 0.102490 0.065320 0.239144 +0.084902 +0.032016 0.044105 0.051965 0.057496 0.045563 0.123954 0.052609 0.061071 0.061223 0.055448 0.032770 0.075604 0.064531 0.013608 0.059629 0.039852 0.046461 0.061070 0.055255 0.065343 0.010552 0.204980 0.064815 0.026777 0.036141 0.273307 0.081927 0.067266 0.027953 0.170817 0.072615 0.307471 +0.051311 +0.036917 0.001665 0.079564 0.142207 0.046355 0.110296 0.058871 0.054092 0.055023 0.104364 0.019289 0.347897 0.035413 0.064864 0.084550 0.056038 0.040756 0.043901 0.050473 0.020470 0.041692 0.273307 0.091136 0.009507 0.034984 0.273307 0.081909 0.032328 0.023636 0.136654 0.071234 0.341634 +0.107669 +0.060997 0.055934 0.047794 0.067520 0.048314 0.194592 0.004560 0.065749 0.099390 0.053161 0.046200 0.066340 0.037132 0.025840 0.051095 0.043553 0.037527 0.140131 0.063797 0.063057 0.055977 0.136654 0.087249 0.045575 0.022444 0.102490 0.092111 0.063367 0.062036 0.273307 0.057425 0.307471 +0.012025 +0.043306 0.044127 0.050101 0.050449 0.045319 0.191416 0.022636 0.002846 0.035500 0.046030 0.025023 0.052630 0.007435 0.008561 0.075450 0.040860 0.044261 0.186891 0.044931 0.030504 0.014939 0.170817 0.053748 0.033681 0.010408 0.170817 0.056440 0.045103 0.013285 0.136654 0.061442 0.239144 +0.068353 +0.038724 0.043818 0.035230 0.052488 0.049039 0.203059 0.015830 0.068276 0.042681 0.054372 0.032395 0.096307 0.053167 0.012673 0.037845 0.078557 0.043977 0.168943 0.055674 0.033675 0.040392 0.170817 0.052023 0.063334 0.015312 0.204980 0.096932 0.067517 0.006106 0.136654 0.089388 0.341634 +0.333110 +0.001078 0.045596 0.042405 0.057298 0.042720 0.086193 0.022300 0.059708 0.089992 0.040540 0.041236 0.197821 0.065624 0.024742 0.129684 0.092837 0.017229 0.102353 0.062562 0.008329 0.005776 0.136654 0.068411 0.061041 0.014390 0.170817 0.073759 0.015306 0.023818 0.204980 0.088551 0.239144 +0.082922 +0.049421 0.055375 0.244030 0.060444 0.031811 0.303183 0.021309 0.062779 0.054004 0.038659 0.047278 0.073801 0.057858 0.051715 0.140994 0.129533 0.047096 0.104598 0.048846 0.038826 0.062101 0.170817 0.085180 0.056307 0.003249 0.170817 0.100248 0.011173 0.030545 0.170817 0.080767 0.204980 +0.126115 +0.000525 0.009161 0.078851 0.080582 0.024607 0.034881 0.054919 0.004737 0.060446 0.064050 0.021361 0.239892 0.027602 0.013072 0.123957 0.040560 0.021234 0.064000 0.061811 0.041864 0.043966 0.136654 0.058620 0.015837 0.000385 0.170817 0.078734 0.060962 0.012155 0.170817 0.095429 0.204980 +0.096407 +0.010632 0.028999 0.043652 0.044355 0.042987 0.154641 0.001049 0.031652 0.041521 0.047380 0.050931 0.151142 0.035751 0.048944 0.049095 0.040968 0.039237 0.069463 0.058441 0.020786 0.017787 0.239144 0.054627 0.008159 0.004373 0.170817 0.074121 0.015286 0.039778 0.273307 0.095830 0.307471 +0.107918 +0.002067 0.017831 0.055653 0.046089 0.043980 0.050754 0.059740 0.061745 0.086842 0.037747 0.031346 0.206764 0.007249 0.024129 0.105034 0.114055 0.028149 0.130091 0.059062 0.031110 0.024707 0.136654 0.091686 0.059252 0.010134 0.170817 0.052454 0.052707 0.043155 0.102490 0.065155 0.239144 +0.014664 +0.037212 0.013515 0.038353 0.066029 0.040441 0.077355 0.019197 0.016332 0.077835 0.097838 0.021418 0.249466 0.062106 0.029499 0.040198 0.043476 0.017406 0.045306 0.046678 0.065487 0.036854 0.102490 0.058653 0.018397 0.040516 0.102490 0.100692 0.053662 0.059616 0.102490 0.077639 0.204980 +0.017175 +0.016339 0.027198 0.096281 0.072851 0.037889 0.096086 0.030346 0.026296 0.058138 0.068301 0.028368 0.059735 0.053697 0.043418 0.050882 0.096651 0.045326 0.720325 0.043829 0.001039 0.034147 0.136654 0.101083 0.059235 0.045195 0.307471 0.052776 0.043053 0.022333 0.239144 0.058347 0.341634 +0.737041 +0.042645 0.014186 0.091414 0.040877 0.050100 0.157287 0.043779 0.039922 0.048024 0.052311 0.045883 0.187644 0.047246 0.041450 0.042081 0.049036 0.024257 0.136730 0.037866 0.030612 0.050598 0.136654 0.080130 0.055375 0.054723 0.136654 0.075318 0.031768 0.038774 0.136654 0.101262 0.204980 +0.185722 +0.057255 0.005005 0.079178 0.054135 0.043537 0.140965 0.038320 0.014728 0.045838 0.058262 0.038621 0.152388 0.057003 0.058553 0.051569 0.081787 0.020608 0.049022 0.046000 0.041211 0.031205 0.273307 0.066876 0.000050 0.004957 0.239144 0.088820 0.018581 0.057578 0.239144 0.067171 0.307471 +0.228422 +0.056802 0.012443 0.053644 0.041822 0.040918 0.059101 0.057657 0.044521 0.050241 0.041925 0.027660 0.226427 0.067305 0.000389 0.038921 0.118300 0.031118 0.107816 0.058743 0.048376 0.062821 0.102490 0.055124 0.023305 0.011977 0.204980 0.092620 0.053197 0.066988 0.102490 0.066064 0.239144 +0.203434 +0.017464 0.010610 0.038693 0.053400 0.043507 0.167481 0.067549 0.032303 0.121608 0.098093 0.022204 0.070194 0.058547 0.016777 0.143935 0.034914 0.043807 0.053862 0.052541 0.016129 0.001773 0.136654 0.083220 0.004331 0.068112 0.273307 0.100885 0.046827 0.051940 0.136654 0.100832 0.341634 +0.000908 +0.055206 0.038274 0.086274 0.052625 0.045945 0.056338 0.055172 0.044475 0.039271 0.070512 0.048067 0.105758 0.014058 0.031044 0.085293 0.046441 0.023959 0.117902 0.056305 0.043831 0.008740 0.239144 0.068243 0.000477 0.053540 0.170817 0.075768 0.052948 0.028579 0.170817 0.094705 0.273307 +0.058715 +0.065953 0.052480 0.052966 0.154892 0.030424 0.045749 0.058763 0.001207 0.070564 0.034714 0.018511 0.171581 0.040077 0.039120 0.045974 0.107521 0.037000 0.142095 0.057215 0.035728 0.027877 0.102490 0.078592 0.047590 0.054088 0.102490 0.053533 0.047511 0.010352 0.102490 0.069870 0.239144 +0 +0.024999 0.059129 0.058306 0.036016 0.033443 0.291262 0.031901 0.063004 0.053892 0.045689 0.019821 0.217522 0.041530 0.008635 0.040540 0.121200 0.037870 0.037392 0.040148 0.044497 0.000626 0.239144 0.095392 0.064938 0.013876 0.170817 0.100174 0.023612 0.023724 0.170817 0.052767 0.307471 +0.120029 +0.012938 0.000830 0.045348 0.064502 0.020304 0.086677 0.063036 0.012053 0.214971 0.042188 0.018491 0.051070 0.028444 0.003288 0.092397 0.061647 0.037719 0.352269 0.050441 0.010734 0.000856 0.102490 0.092949 0.043350 0.061004 0.102490 0.087334 0.044678 0.049704 0.170817 0.069786 0.204980 +0.012603 +0.027078 0.058833 0.096142 0.053724 0.029090 0.056428 0.033370 0.049707 0.068397 0.076777 0.026071 0.108959 0.021414 0.051680 0.051156 0.096891 0.050333 0.064424 0.051301 0.043666 0.047396 0.102490 0.090819 0.065674 0.064885 0.273307 0.082873 0.028637 0.012936 0.136654 0.061922 0.307471 +0 +0.021964 0.032946 0.057827 0.145715 0.030105 0.168763 0.005088 0.032954 0.048931 0.089413 0.017507 0.277194 0.024631 0.064480 0.114925 0.092711 0.025686 0.120166 0.050068 0.043289 0.036559 0.170817 0.084152 0.046813 0.029426 0.136654 0.067391 0.004492 0.048611 0.170817 0.061491 0.204980 +0.235314 +0.041872 0.000636 0.137621 0.090764 0.036627 0.107572 0.057828 0.036054 0.071074 0.041985 0.032253 0.173225 0.008884 0.027325 0.036892 0.220563 0.023665 0.070673 0.039649 0.063883 0.065969 0.102490 0.075409 0.064892 0.029455 0.204980 0.056587 0.019896 0.022438 0.204980 0.101134 0.239144 +0.138867 +0.020834 0.066836 0.096972 0.054708 0.029622 0.067680 0.027738 0.011842 0.055247 0.099835 0.030019 0.051476 0.060157 0.027936 0.104096 0.044641 0.026494 0.071573 0.037490 0.054951 0.028572 0.273307 0.065260 0.058640 0.037775 0.307471 0.079829 0.005230 0.061831 0.102490 0.079214 0.341634 +0 +0.041641 0.053674 0.044898 0.036308 0.024043 0.099750 0.060375 0.035237 0.122939 0.133454 0.042144 0.114081 0.007655 0.043853 0.070030 0.060341 0.026441 0.166044 0.058551 0.043543 0.003281 0.239144 0.069087 0.037134 0.002222 0.204980 0.087928 0.020575 0.013244 0.204980 0.078878 0.341634 +0.021619 +0.025922 0.044746 0.049733 0.066533 0.048195 0.042495 0.014704 0.025851 0.112988 0.058278 0.027135 0.081166 0.056249 0.067494 0.044657 0.070101 0.018970 0.070726 0.046114 0.011869 0.024425 0.136654 0.089007 0.025132 0.038594 0.170817 0.083797 0.055685 0.063399 0.170817 0.053515 0.204980 +0.037669 +0.022397 0.001499 0.039859 0.081404 0.018181 0.186257 0.056199 0.015980 0.100052 0.063856 0.037788 0.072990 0.012434 0.002818 0.036584 0.046027 0.020797 0.090674 0.054582 0.008866 0.009623 0.273307 0.067639 0.062566 0.061371 0.273307 0.072724 0.068068 0.021332 0.170817 0.058750 0.307471 +0 +0.030024 0.047718 0.065993 0.037187 0.027115 0.288463 0.042504 0.018921 0.060178 0.074409 0.046060 0.160475 0.044520 0.029161 0.113153 0.038871 0.034264 0.073496 0.053732 0.012314 0.001566 0.204980 0.062127 0.053053 0.025697 0.204980 0.099365 0.048934 0.002350 0.102490 0.095854 0.239144 +0.185818 +0.048983 0.032222 0.103069 0.046440 0.022529 0.048496 0.046071 0.023175 0.036041 0.040536 0.038457 0.049406 0.065890 0.007923 0.088317 0.035992 0.049189 0.140676 0.047030 0.007459 0.012797 0.102490 0.073655 0.028917 0.002293 0.239144 0.080598 0.039624 0.032745 0.136654 0.069513 0.307471 +0 +0.044498 0.046539 0.071559 0.040838 0.048087 0.071981 0.041137 0.023170 0.044706 0.035785 0.028834 0.245669 0.060788 0.059072 0.113977 0.067520 0.043597 0.126227 0.055587 0.065624 0.050084 0.102490 0.051686 0.012091 0.033225 0.204980 0.060389 0.038244 0.039080 0.136654 0.075579 0.273307 +0.081118 +0.037195 0.004506 0.101147 0.041059 0.030314 0.094281 0.067724 0.041078 0.056115 0.111882 0.025803 0.167234 0.060716 0.006413 0.075895 0.041942 0.040681 0.267705 0.053940 0.061082 0.022449 0.239144 0.072737 0.031355 0.026502 0.239144 0.098960 0.060682 0.064997 0.307471 0.079985 0.341634 +0.042918 +0.066008 0.011609 0.083040 0.034905 0.038852 0.102157 0.006193 0.012687 0.094629 0.050758 0.040326 0.195687 0.012371 0.061653 0.150989 0.051269 0.041859 0.264202 0.053865 0.041999 0.051798 0.204980 0.099887 0.001794 0.031061 0.204980 0.095467 0.001074 0.065293 0.239144 0.077213 0.341634 +0.007791 +0.034812 0.044858 0.154362 0.171102 0.018030 0.058333 0.055573 0.038251 0.040984 0.048477 0.050777 0.038397 0.036277 0.018970 0.034894 0.055981 0.044921 0.202261 0.056142 0.012957 0.043346 0.204980 0.087024 0.067317 0.013324 0.204980 0.074640 0.040159 0.036161 0.102490 0.095849 0.307471 +0 +0.044903 0.033799 0.059584 0.067827 0.046675 0.129020 0.005341 0.031951 0.056088 0.037036 0.036014 0.045373 0.056895 0.018026 0.037227 0.134157 0.045929 0.357162 0.043734 0.002170 0.051483 0.136654 0.076235 0.017123 0.052432 0.307471 0.096781 0.010339 0.059007 0.170817 0.073260 0.341634 +0.165229 +0.043473 0.034869 0.039083 0.117828 0.041388 0.061879 0.041568 0.019757 0.050726 0.078066 0.045149 0.037128 0.033929 0.039665 0.059301 0.106662 0.048774 0.060713 0.046790 0.001304 0.032174 0.136654 0.075402 0.010332 0.047943 0.170817 0.080262 0.005028 0.050330 0.170817 0.085113 0.204980 +0 +0.007444 0.039036 0.067314 0.035889 0.040882 0.154837 0.043193 0.059635 0.090533 0.217679 0.021079 0.098190 0.063717 0.016370 0.036123 0.075474 0.044179 0.080215 0.038829 0.015177 0.013346 0.204980 0.074515 0.051362 0.051206 0.273307 0.052114 0.058812 0.027921 0.239144 0.096275 0.307471 +0.005337 +0.022520 0.038551 0.053353 0.060242 0.019033 0.126932 0.035419 0.052757 0.112743 0.067664 0.021311 0.063414 0.011903 0.065343 0.041877 0.058283 0.034240 0.101717 0.041556 0.064485 0.021434 0.239144 0.094901 0.013180 0.051537 0.136654 0.094169 0.019857 0.001152 0.204980 0.097061 0.307471 +0 +0.040106 0.066609 0.039709 0.039863 0.033579 0.051654 0.019963 0.006743 0.034680 0.044230 0.049867 0.064217 0.058222 0.018108 0.046204 0.048314 0.017396 0.197721 0.040404 0.063566 0.053116 0.102490 0.092318 0.062113 0.016285 0.204980 0.069793 0.018779 0.021495 0.136654 0.076465 0.273307 +0.193974 +0.046177 0.049790 0.109475 0.104033 0.044465 0.277493 0.008764 0.001868 0.052638 0.048768 0.032268 0.122985 0.000061 0.059581 0.060324 0.087125 0.042409 0.081676 0.049608 0.062754 0.063927 0.136654 0.064047 0.067605 0.037806 0.102490 0.077389 0.011122 0.000390 0.170817 0.051786 0.204980 +0.034576 +0.025042 0.021720 0.055683 0.061179 0.050282 0.348413 0.039191 0.031595 0.037655 0.042447 0.047175 0.141628 0.027967 0.056661 0.049135 0.086669 0.045155 0.076577 0.054284 0.012198 0.004352 0.102490 0.090949 0.015346 0.043790 0.170817 0.055673 0.010444 0.042174 0.136654 0.099219 0.239144 +0.106822 +0.068011 0.055641 0.037609 0.073725 0.044204 0.224115 0.013287 0.065504 0.055433 0.083106 0.042564 0.113350 0.011640 0.064948 0.035198 0.057284 0.023433 0.065942 0.051142 0.027229 0.020863 0.136654 0.091712 0.062098 0.024679 0.136654 0.093463 0.056003 0.017801 0.170817 0.098505 0.204980 +0.233182 +0.028827 0.025419 0.049368 0.120890 0.035251 0.063994 0.033876 0.033570 0.047040 0.036376 0.034705 0.094214 0.058749 0.027182 0.045619 0.049228 0.031023 0.096407 0.040582 0.059706 0.038767 0.102490 0.094337 0.066337 0.014855 0.136654 0.057521 0.061144 0.056712 0.102490 0.076033 0.204980 +0.023005 +0.012434 0.013317 0.036481 0.053340 0.043240 0.103666 0.042237 0.008863 0.094279 0.122380 0.027892 0.042334 0.011361 0.041822 0.078812 0.099823 0.029190 0.291125 0.060766 0.043311 0.044769 0.204980 0.099431 0.056050 0.046983 0.136654 0.066582 0.064667 0.030349 0.204980 0.072386 0.307471 +0.012206 +0.062365 0.043699 0.071606 0.106618 0.046658 0.039634 0.044109 0.053626 0.056327 0.046477 0.024317 0.178247 0.040325 0.041845 0.107691 0.051648 0.018497 0.292256 0.065118 0.007408 0.000641 0.239144 0.060461 0.027564 0.044682 0.273307 0.090262 0.007473 0.066422 0.204980 0.091086 0.341634 +0.134013 +0.008383 0.002331 0.053142 0.042394 0.026520 0.426555 0.020295 0.005876 0.090063 0.048769 0.030925 0.136919 0.062326 0.019221 0.051222 0.042629 0.044291 0.196034 0.048212 0.023727 0.014570 0.204980 0.083653 0.044053 0.024602 0.170817 0.056287 0.013604 0.051005 0.136654 0.087818 0.273307 +0.116030 +0.013399 0.016368 0.048583 0.047459 0.050436 0.049729 0.056648 0.056167 0.039994 0.038524 0.043080 0.072898 0.007508 0.019131 0.063143 0.071138 0.023558 0.082846 0.058917 0.021347 0.009495 0.239144 0.053901 0.053801 0.014057 0.170817 0.062080 0.040126 0.016161 0.204980 0.072783 0.307471 +0 +0.066785 0.045657 0.081026 0.106956 0.021326 0.061825 0.012116 0.003951 0.041152 0.038157 0.030598 0.038457 0.044560 0.057865 0.049813 0.068240 0.037808 0.229566 0.061856 0.015383 0.028147 0.239144 0.075938 0.066377 0.027387 0.102490 0.072486 0.030814 0.052844 0.102490 0.076435 0.273307 +0 +0.016983 0.018292 0.103620 0.041038 0.049904 0.176005 0.059090 0.034430 0.036054 0.053787 0.027673 0.119120 0.001179 0.067055 0.071772 0.051202 0.019793 0.132249 0.052433 0.045729 0.043821 0.102490 0.054261 0.002157 0.057540 0.170817 0.094376 0.053743 0.008192 0.170817 0.081202 0.273307 +0.035327 +0.052046 0.044172 0.103574 0.085569 0.037644 0.173520 0.043066 0.045656 0.054559 0.083094 0.017563 0.046963 0.035671 0.057460 0.046413 0.101199 0.033339 0.234714 0.044477 0.002105 0.043695 0.239144 0.097428 0.037076 0.028060 0.170817 0.075831 0.018754 0.021650 0.170817 0.057641 0.273307 +0.096936 +0.062929 0.008934 0.048524 0.091251 0.030005 0.094264 0.034624 0.018715 0.098224 0.036959 0.050362 0.150655 0.056870 0.050180 0.037696 0.057781 0.038609 0.059290 0.039263 0.047809 0.042875 0.204980 0.098679 0.066699 0.018254 0.204980 0.060993 0.057065 0.063576 0.273307 0.060235 0.307471 +0.004416 +0.007890 0.037868 0.088203 0.055277 0.030680 0.043612 0.055485 0.067896 0.047743 0.126155 0.018293 0.241481 0.009343 0.015646 0.064244 0.054475 0.026814 0.153774 0.056359 0.012659 0.021369 0.170817 0.088814 0.065516 0.054737 0.307471 0.055332 0.059163 0.026428 0.102490 0.087293 0.341634 +0.051061 +0.041475 0.003044 0.127710 0.058458 0.021699 0.130447 0.008529 0.063783 0.090581 0.112889 0.032250 0.322768 0.042501 0.025243 0.047262 0.036402 0.027998 0.527417 0.036104 0.067621 0.001260 0.204980 0.082490 0.005959 0.056841 0.170817 0.054042 0.007928 0.019117 0.136654 0.086689 0.341634 +0.761655 +0.030383 0.028857 0.044461 0.052263 0.042694 0.103255 0.014138 0.033834 0.075749 0.035167 0.040907 0.057522 0.036575 0.063529 0.036965 0.051991 0.022744 0.101114 0.047649 0.060823 0.060748 0.102490 0.067803 0.002305 0.037416 0.102490 0.060043 0.056022 0.015867 0.273307 0.092927 0.307471 +0.034765 +0.042386 0.064285 0.084185 0.065920 0.032161 0.050371 0.027880 0.007704 0.060228 0.067356 0.029353 0.215998 0.065568 0.044735 0.078144 0.059527 0.049439 0.203722 0.054753 0.066702 0.057839 0.273307 0.076279 0.019114 0.052565 0.239144 0.074148 0.057100 0.047909 0.204980 0.098521 0.341634 +0.142941 +0.021986 0.066719 0.053268 0.040623 0.018277 0.264188 0.037425 0.023657 0.154327 0.040606 0.050884 0.135212 0.006516 0.065984 0.074109 0.046948 0.042653 0.131055 0.049470 0.003209 0.006455 0.102490 0.067736 0.023006 0.060516 0.204980 0.100368 0.040370 0.050257 0.170817 0.058891 0.273307 +0.082992 +0.011409 0.011680 0.041919 0.046119 0.034924 0.124885 0.007829 0.055992 0.068853 0.048498 0.044706 0.097168 0.008211 0.006542 0.058028 0.051947 0.037017 0.036120 0.043793 0.028222 0.028501 0.170817 0.059106 0.041322 0.022075 0.102490 0.068052 0.041592 0.001997 0.102490 0.075549 0.204980 +0.005190 +0.051605 0.021542 0.154888 0.047352 0.021742 0.063949 0.035485 0.010207 0.071542 0.050998 0.026107 0.218393 0.029096 0.007068 0.045854 0.055523 0.046368 0.136522 0.061723 0.011698 0.043531 0.136654 0.067563 0.012295 0.051212 0.102490 0.063837 0.067223 0.003026 0.136654 0.068484 0.204980 +0.093440 +0.030630 0.001569 0.069585 0.034272 0.024513 0.052804 0.013399 0.026384 0.045034 0.100990 0.022318 0.100343 0.020017 0.044963 0.095073 0.149526 0.042089 0.204016 0.048540 0.035204 0.039390 0.102490 0.057603 0.006795 0.067002 0.204980 0.099467 0.016651 0.054707 0.239144 0.063344 0.341634 +0 +0.037888 0.036654 0.042470 0.036194 0.038720 0.165251 0.010336 0.019926 0.082421 0.079799 0.048380 0.046468 0.002969 0.061314 0.089018 0.043213 0.039606 0.130415 0.042078 0.040597 0.049650 0.102490 0.052282 0.013042 0.030667 0.136654 0.054941 0.066587 0.025534 0.170817 0.067791 0.204980 +0 +0.050376 0.065583 0.036836 0.197581 0.018630 0.167169 0.013784 0.056320 0.099090 0.040054 0.037928 0.063281 0.059642 0.058951 0.264354 0.080585 0.049262 0.036684 0.037003 0.039190 0.042607 0.204980 0.087320 0.041153 0.019644 0.102490 0.086062 0.046988 0.026394 0.170817 0.060197 0.307471 +0.001718 +0.022910 0.043565 0.052874 0.040439 0.050615 0.202762 0.024701 0.036162 0.040100 0.034194 0.028583 0.206224 0.034530 0.021165 0.038657 0.046438 0.048936 0.090969 0.043817 0.018953 0.025460 0.170817 0.091659 0.006560 0.018870 0.204980 0.099394 0.058792 0.037647 0.307471 0.051361 0.341634 +0.623271 +0.030265 0.037369 0.061332 0.053139 0.018569 0.076631 0.038512 0.045010 0.047142 0.051310 0.020887 0.069435 0.044444 0.063837 0.043853 0.110410 0.027559 0.103807 0.041589 0.051644 0.050544 0.204980 0.085819 0.005515 0.000654 0.239144 0.080486 0.004103 0.015508 0.102490 0.088501 0.307471 +0.246235 +0.043621 0.007353 0.101536 0.034594 0.033554 0.104067 0.021511 0.048115 0.043798 0.043758 0.043028 0.457005 0.021535 0.033969 0.072413 0.042167 0.043631 0.073853 0.058473 0.039732 0.050021 0.102490 0.088901 0.037595 0.061130 0.170817 0.079438 0.042205 0.060682 0.102490 0.075100 0.273307 +0.386742 +0.065387 0.040992 0.084218 0.034194 0.031001 0.172790 0.044799 0.057754 0.037356 0.040864 0.019922 0.109993 0.065202 0.042847 0.070114 0.063523 0.044991 0.236704 0.049919 0.001301 0.057802 0.102490 0.065056 0.018445 0.057117 0.170817 0.081905 0.059216 0.056622 0.102490 0.095075 0.239144 +0.293635 +0.059371 0.042024 0.063369 0.038175 0.041790 0.083635 0.024970 0.028054 0.035536 0.048200 0.039977 0.286222 0.037439 0.004217 0.075652 0.059582 0.033442 0.212911 0.059580 0.039012 0.006893 0.136654 0.085599 0.055274 0.008583 0.102490 0.093454 0.043469 0.015619 0.136654 0.083242 0.239144 +0.136843 +0.022600 0.050851 0.059264 0.044729 0.021647 0.109922 0.021567 0.033096 0.075088 0.087942 0.034542 0.035647 0.003161 0.048094 0.038174 0.041548 0.038627 0.078486 0.059635 0.053389 0.023397 0.102490 0.071816 0.009447 0.024630 0.136654 0.064873 0.065510 0.063702 0.136654 0.075331 0.239144 +0.001891 +0.041627 0.031611 0.041384 0.050979 0.021275 0.313765 0.021408 0.016343 0.063412 0.045828 0.031540 0.067880 0.025194 0.031714 0.188488 0.053418 0.047801 0.142290 0.061424 0.037187 0.057236 0.102490 0.077978 0.055928 0.040836 0.136654 0.083061 0.029443 0.033288 0.102490 0.064572 0.273307 +0.075908 +0.061279 0.032209 0.064497 0.051489 0.032912 0.056102 0.019211 0.052048 0.052090 0.092008 0.030493 0.085163 0.019857 0.061129 0.100623 0.064336 0.030499 0.088889 0.053459 0.042009 0.038930 0.239144 0.063718 0.026177 0.019287 0.102490 0.055481 0.049334 0.040630 0.273307 0.055041 0.307471 +0 +0.042623 0.062855 0.117237 0.039242 0.041919 0.103103 0.025779 0.011728 0.087044 0.036680 0.049996 0.054868 0.046414 0.012972 0.054759 0.044278 0.034375 0.536896 0.052447 0.010469 0.021295 0.102490 0.070967 0.060242 0.047267 0.102490 0.087984 0.025868 0.023493 0.273307 0.074279 0.307471 +0.318552 +0.001009 0.056257 0.047540 0.059471 0.050373 0.237732 0.020515 0.043719 0.056793 0.036056 0.041929 0.036461 0.037275 0.039408 0.057680 0.075850 0.036822 0.047467 0.042585 0.024531 0.042205 0.204980 0.066642 0.054907 0.011692 0.136654 0.057501 0.034811 0.026527 0.170817 0.090076 0.307471 +0.015451 +0.031011 0.030888 0.076541 0.039589 0.021296 0.113406 0.033825 0.038828 0.077034 0.098267 0.020725 0.064032 0.060037 0.024517 0.036234 0.041010 0.044025 0.124252 0.057105 0.064470 0.030296 0.102490 0.060271 0.019803 0.057719 0.273307 0.084273 0.013103 0.016899 0.170817 0.087030 0.341634 +0 +0.018207 0.059090 0.037926 0.037596 0.028151 0.055178 0.064757 0.031754 0.067559 0.065211 0.040496 0.083402 0.066262 0.067915 0.054068 0.107097 0.026206 0.119477 0.042132 0.062925 0.018094 0.136654 0.060030 0.003120 0.045001 0.273307 0.094704 0.032604 0.018244 0.239144 0.095634 0.341634 +0 +0.041719 0.009355 0.044705 0.035227 0.029985 0.284310 0.027282 0.013922 0.051763 0.136122 0.042554 0.287555 0.041935 0.046625 0.049096 0.097511 0.046715 0.039148 0.048538 0.034631 0.060286 0.273307 0.096318 0.017226 0.001190 0.239144 0.095077 0.029950 0.056415 0.273307 0.060100 0.341634 +0.168272 +0.053915 0.062116 0.074846 0.044437 0.022938 0.101530 0.003401 0.005903 0.071506 0.042051 0.017102 0.058586 0.065100 0.063444 0.067057 0.082606 0.040393 0.142879 0.059037 0.021280 0.045933 0.102490 0.079868 0.022639 0.010923 0.102490 0.096775 0.027591 0.010687 0.102490 0.063611 0.204980 +0.109729 +0.041376 0.004688 0.047563 0.047834 0.027865 0.264379 0.007610 0.007791 0.141981 0.040213 0.021554 0.065311 0.060194 0.042123 0.059343 0.047115 0.038915 0.101408 0.042875 0.031429 0.057241 0.239144 0.100251 0.011986 0.061774 0.102490 0.081427 0.007610 0.013403 0.170817 0.078769 0.273307 +0.015947 +0.053742 0.055370 0.100868 0.124347 0.028507 0.149244 0.021473 0.023786 0.045417 0.035352 0.020650 0.268732 0.067551 0.018258 0.048100 0.035288 0.040016 0.113164 0.059985 0.055525 0.062662 0.136654 0.082196 0.025811 0.020504 0.273307 0.085501 0.027793 0.008797 0.273307 0.075887 0.341634 +0.036160 +0.013571 0.041048 0.093790 0.039457 0.026843 0.273235 0.040542 0.051502 0.063704 0.057795 0.023120 0.053337 0.054665 0.026443 0.040089 0.045471 0.026698 0.198713 0.063858 0.016814 0.051868 0.102490 0.056548 0.046651 0.066896 0.170817 0.071514 0.034319 0.019908 0.204980 0.096873 0.239144 +0.339234 +0.022457 0.062782 0.060218 0.036557 0.025536 0.323124 0.040868 0.064590 0.044496 0.045539 0.018447 0.186838 0.063889 0.047351 0.036017 0.042742 0.025129 0.078120 0.047311 0.060081 0.068275 0.273307 0.083367 0.040449 0.047712 0.273307 0.056368 0.019808 0.011407 0.204980 0.087713 0.307471 +0.367483 +0.004636 0.029959 0.058518 0.051094 0.017291 0.078639 0.059779 0.008773 0.040465 0.042927 0.033311 0.065058 0.062111 0.049676 0.118430 0.039736 0.035545 0.133112 0.047431 0.053548 0.052943 0.204980 0.083577 0.045142 0.013792 0.102490 0.094721 0.027701 0.034341 0.204980 0.054144 0.341634 +0 +0.059995 0.062240 0.232625 0.069059 0.028317 0.039782 0.021715 0.028332 0.081260 0.058308 0.026589 0.107042 0.000050 0.003898 0.050919 0.072556 0.038988 0.141801 0.058879 0.027788 0.036732 0.136654 0.061993 0.056361 0.048074 0.170817 0.089354 0.064724 0.000457 0.136654 0.067109 0.204980 +0.001215 +0.005112 0.036353 0.102572 0.036906 0.025221 0.127758 0.031899 0.042858 0.062799 0.035600 0.032605 0.082475 0.053351 0.057995 0.034284 0.039225 0.046236 0.129545 0.050813 0.019405 0.051915 0.239144 0.094207 0.042709 0.022465 0.136654 0.075624 0.033053 0.002858 0.170817 0.055839 0.273307 +0.099658 +0.026325 0.059387 0.049624 0.038086 0.042902 0.167116 0.024592 0.020050 0.057343 0.040488 0.038558 0.043241 0.018832 0.018615 0.051572 0.064418 0.042122 0.088532 0.045222 0.054568 0.056655 0.102490 0.078050 0.047749 0.037136 0.204980 0.063258 0.037798 0.041067 0.102490 0.068843 0.239144 +0.014454 +0.018096 0.013341 0.049144 0.035419 0.041628 0.144751 0.027220 0.017735 0.109874 0.049317 0.032714 0.088728 0.001796 0.012353 0.041566 0.037786 0.039119 0.145818 0.045654 0.000295 0.026182 0.170817 0.095005 0.059041 0.067139 0.170817 0.067968 0.020604 0.013597 0.170817 0.073102 0.307471 +0 +0.010013 0.043658 0.098012 0.038015 0.028005 0.175272 0.059748 0.059775 0.070856 0.050182 0.046134 0.036196 0.050663 0.056770 0.058920 0.046219 0.041208 0.105840 0.052961 0.041429 0.007980 0.102490 0.051947 0.064300 0.049147 0.170817 0.076928 0.067589 0.035162 0.136654 0.071316 0.204980 +0.149615 +0.060178 0.057860 0.058714 0.061097 0.018139 0.167921 0.026169 0.048997 0.045737 0.038971 0.032951 0.041499 0.000128 0.007878 0.054959 0.045488 0.027633 0.187702 0.057819 0.039985 0.031671 0.102490 0.083990 0.033905 0.021303 0.170817 0.075155 0.016340 0.016850 0.307471 0.057472 0.341634 +0.020024 +0.049203 0.052916 0.034937 0.128539 0.022266 0.046008 0.038057 0.055482 0.060088 0.058607 0.022102 0.130899 0.047021 0.068308 0.112134 0.054982 0.020832 0.055682 0.058953 0.014356 0.035606 0.273307 0.055010 0.002277 0.040552 0.136654 0.051425 0.014654 0.000371 0.204980 0.056229 0.341634 +0.011318 +0.029295 0.054920 0.042654 0.041636 0.025501 0.315361 0.051483 0.042290 0.041509 0.057733 0.021159 0.093139 0.046190 0.032205 0.045781 0.055777 0.046502 0.146527 0.048648 0.050691 0.036023 0.136654 0.099372 0.017233 0.024069 0.170817 0.063653 0.066670 0.044543 0.136654 0.089866 0.307471 +0.010189 +0.033494 0.035719 0.081981 0.083569 0.047232 0.035062 0.014513 0.020522 0.115750 0.046803 0.050045 0.081561 0.050302 0.007773 0.035311 0.070449 0.019060 0.043243 0.046554 0.062218 0.058951 0.307471 0.090949 0.015051 0.006348 0.239144 0.071752 0.025135 0.048588 0.170817 0.057236 0.341634 +0 +0.018761 0.030868 0.068195 0.128110 0.034089 0.206190 0.014569 0.031013 0.036696 0.054268 0.019706 0.349494 0.025825 0.062772 0.060936 0.100775 0.023514 0.158592 0.046419 0.023712 0.027098 0.136654 0.059927 0.053888 0.026822 0.102490 0.079178 0.017758 0.063008 0.239144 0.083085 0.307471 +0.338835 +0.051492 0.055583 0.045980 0.066665 0.029372 0.099750 0.050761 0.065390 0.034264 0.042325 0.030641 0.096285 0.051258 0.056030 0.205434 0.084002 0.029382 0.210497 0.039862 0.033572 0.014552 0.204980 0.062972 0.023440 0.049232 0.170817 0.079981 0.006815 0.028808 0.273307 0.097837 0.341634 +0.116709 +0.002353 0.059663 0.088104 0.035325 0.042739 0.064676 0.032604 0.055032 0.044530 0.043476 0.047158 0.047427 0.037855 0.050690 0.087980 0.040773 0.027519 0.529958 0.058016 0.038086 0.061705 0.136654 0.082861 0.036216 0.018575 0.102490 0.082828 0.000255 0.013531 0.170817 0.067208 0.239144 +0.540674 +0.009795 0.016907 0.043531 0.047579 0.018867 0.105818 0.066644 0.058550 0.130200 0.071438 0.025821 0.115216 0.000469 0.009990 0.047527 0.039544 0.041102 0.093891 0.042242 0.064996 0.051163 0.170817 0.082623 0.009647 0.043477 0.136654 0.102013 0.009080 0.055221 0.102490 0.093972 0.204980 +0.013696 +0.017440 0.009453 0.059029 0.060133 0.020528 0.106683 0.058651 0.000686 0.040878 0.035405 0.017746 0.041892 0.004310 0.002594 0.090853 0.078061 0.032363 0.079887 0.053295 0.033286 0.044389 0.136654 0.069529 0.026929 0.049331 0.170817 0.066933 0.007282 0.062231 0.170817 0.063496 0.204980 +0 +0.017872 0.041124 0.061677 0.120616 0.018815 0.135027 0.023927 0.052266 0.052644 0.035941 0.050720 0.156201 0.057741 0.015394 0.062537 0.066162 0.040642 0.066785 0.038298 0.009059 0.040231 0.170817 0.081572 0.003366 0.057382 0.204980 0.098155 0.057335 0.065588 0.136654 0.072154 0.239144 +0.222670 +0.013821 0.041645 0.046501 0.036259 0.017347 0.111431 0.043759 0.022969 0.124713 0.076806 0.049021 0.105869 0.013665 0.058035 0.053218 0.115096 0.022396 0.082012 0.052891 0.001087 0.024618 0.204980 0.063237 0.065057 0.015065 0.239144 0.086812 0.019387 0.046822 0.170817 0.053372 0.341634 +0.001865 +0.062952 0.067521 0.040791 0.048038 0.035387 0.168323 0.013193 0.022962 0.109973 0.039837 0.042481 0.216444 0.031551 0.000490 0.045283 0.068250 0.028085 0.035720 0.049820 0.034615 0.058763 0.170817 0.078009 0.042231 0.056507 0.102490 0.069831 0.009171 0.016964 0.136654 0.089455 0.204980 +0.179928 +0.006493 0.045502 0.043048 0.049341 0.018105 0.037415 0.065786 0.037366 0.050482 0.038508 0.040454 0.164555 0.058963 0.051987 0.051087 0.123661 0.039541 0.070414 0.054383 0.033666 0.059350 0.204980 0.070712 0.050622 0.028369 0.102490 0.093651 0.017472 0.007890 0.170817 0.054500 0.273307 +0 +0.007519 0.044412 0.046692 0.068305 0.048510 0.273398 0.060968 0.052304 0.094043 0.099364 0.042984 0.090309 0.067345 0.045010 0.035493 0.088085 0.025852 0.046835 0.057490 0.067849 0.018182 0.136654 0.080657 0.015544 0.010971 0.102490 0.076243 0.022291 0.026872 0.102490 0.085560 0.204980 +0.005848 +0.033728 0.008568 0.051331 0.056931 0.048424 0.271102 0.043965 0.053811 0.034885 0.120681 0.030225 0.101576 0.033365 0.068214 0.058199 0.035398 0.036412 0.057793 0.046403 0.028034 0.015991 0.136654 0.083743 0.065334 0.057989 0.136654 0.096043 0.049293 0.057076 0.239144 0.091999 0.273307 +0.513270 +0.033130 0.050657 0.065242 0.043183 0.017833 0.064245 0.029550 0.038376 0.106779 0.073139 0.041125 0.121376 0.014111 0.002426 0.063332 0.072701 0.018985 0.061421 0.064072 0.067176 0.062812 0.204980 0.094662 0.039088 0.037467 0.273307 0.057363 0.057417 0.015965 0.273307 0.060829 0.341634 +0.010476 +0.066881 0.065190 0.039879 0.052926 0.034583 0.036122 0.047906 0.043000 0.050270 0.064266 0.049662 0.203542 0.025451 0.030451 0.070111 0.054258 0.026099 0.049527 0.056475 0.055124 0.008868 0.170817 0.071813 0.030672 0.004106 0.204980 0.058524 0.043705 0.045621 0.204980 0.102160 0.239144 +0.063687 +0.003304 0.056256 0.068153 0.085984 0.028131 0.207964 0.033675 0.031280 0.045533 0.087801 0.036008 0.060848 0.057270 0.044434 0.071953 0.063285 0.040424 0.161932 0.055053 0.022094 0.052633 0.102490 0.053325 0.043866 0.047141 0.102490 0.099894 0.000152 0.046709 0.102490 0.060749 0.204980 +0.080586 +0.062552 0.037909 0.181996 0.046088 0.043735 0.132224 0.066229 0.039122 0.060781 0.058869 0.044625 0.089331 0.050612 0.015190 0.070963 0.039309 0.023337 0.335289 0.053872 0.034781 0.012256 0.136654 0.084039 0.050579 0.049951 0.102490 0.053759 0.063477 0.064584 0.170817 0.072399 0.204980 +0.454179 +0.046044 0.006428 0.069091 0.066376 0.030375 0.207280 0.040241 0.051511 0.078840 0.038553 0.037696 0.070758 0.064109 0.011463 0.061836 0.037732 0.018388 0.149972 0.055278 0.031816 0.059274 0.170817 0.090100 0.001252 0.014540 0.273307 0.078669 0.034096 0.029905 0.136654 0.068462 0.307471 +0.002124 +0.006885 0.018263 0.061791 0.091540 0.020491 0.268832 0.039262 0.013635 0.036142 0.049641 0.038816 0.176008 0.020640 0.029598 0.051852 0.077834 0.036063 0.109718 0.045564 0.021878 0.046074 0.239144 0.071926 0.001899 0.050233 0.239144 0.074924 0.068083 0.057444 0.239144 0.096969 0.307471 +0.645656 +0.047902 0.035943 0.063963 0.058493 0.044913 0.065637 0.037105 0.014285 0.096505 0.043338 0.029136 0.038085 0.054824 0.002374 0.067515 0.035992 0.049653 0.116925 0.052470 0.024752 0.052339 0.307471 0.091163 0.037942 0.013375 0.239144 0.101968 0.031899 0.000688 0.136654 0.052447 0.341634 +0 +0.041652 0.027235 0.108675 0.079208 0.032758 0.166179 0.044274 0.009840 0.039927 0.070518 0.024089 0.054038 0.008477 0.000626 0.069990 0.182489 0.046815 0.206395 0.049049 0.023208 0.010410 0.170817 0.061395 0.050573 0.018431 0.102490 0.055737 0.067655 0.039429 0.102490 0.062844 0.239144 +0.367390 +0.014522 0.067656 0.085416 0.034770 0.026296 0.364866 0.025764 0.048451 0.034964 0.071101 0.018484 0.045194 0.060229 0.043843 0.109464 0.040956 0.031152 0.054177 0.049467 0.014053 0.029950 0.273307 0.066048 0.006261 0.012547 0.239144 0.084700 0.036900 0.015333 0.239144 0.059393 0.307471 +0 +0.006283 0.011067 0.037852 0.042213 0.046262 0.057575 0.040732 0.036741 0.060218 0.043883 0.038749 0.044702 0.059039 0.060812 0.042486 0.068138 0.040686 0.550779 0.052810 0.051825 0.004879 0.136654 0.071536 0.035305 0.032570 0.273307 0.080399 0.054641 0.011172 0.136654 0.058930 0.307471 +0.045474 +0.047472 0.013747 0.062375 0.090499 0.028374 0.123231 0.022405 0.041845 0.034432 0.039180 0.031383 0.098149 0.058247 0.015960 0.053968 0.086790 0.020825 0.034189 0.049340 0.026059 0.064555 0.239144 0.052435 0.038864 0.063365 0.170817 0.099144 0.038399 0.063857 0.102490 0.055163 0.341634 +0 +0.043599 0.051476 0.066714 0.139042 0.041997 0.061225 0.066265 0.020653 0.062794 0.034460 0.020937 0.043279 0.040398 0.035378 0.199861 0.108787 0.027252 0.253141 0.049860 0.056880 0.014841 0.239144 0.091896 0.016073 0.057512 0.136654 0.099260 0.056741 0.050659 0.136654 0.095782 0.273307 +0 +0.052372 0.032423 0.073179 0.040969 0.033106 0.121542 0.010609 0.059674 0.106656 0.068234 0.026421 0.110977 0.040899 0.068257 0.100295 0.127401 0.028058 0.270557 0.062875 0.001848 0.008432 0.204980 0.058556 0.028559 0.030380 0.170817 0.082900 0.000860 0.042800 0.102490 0.088745 0.273307 +0.168732 +0.015568 0.001300 0.113965 0.111474 0.026178 0.062990 0.032905 0.009560 0.076990 0.092157 0.036974 0.040742 0.039113 0.048633 0.062482 0.086281 0.044216 0.085083 0.053502 0.025444 0.018114 0.102490 0.089050 0.044708 0.016216 0.239144 0.055003 0.065730 0.003638 0.136654 0.059482 0.273307 +0 +0.000547 0.044775 0.054919 0.079566 0.046898 0.141387 0.046075 0.037205 0.063232 0.085885 0.049479 0.322613 0.016160 0.006032 0.078174 0.035708 0.021632 0.095261 0.046462 0.053027 0.026867 0.102490 0.090081 0.017407 0.001080 0.136654 0.062387 0.013146 0.044294 0.102490 0.063669 0.204980 +0.363607 +0.024916 0.002291 0.058365 0.065548 0.022530 0.102200 0.032324 0.063302 0.042419 0.074808 0.032334 0.054140 0.035239 0.020422 0.059378 0.076175 0.029840 0.152904 0.043238 0.018007 0.025777 0.136654 0.052848 0.052127 0.028615 0.102490 0.060351 0.022230 0.006315 0.273307 0.087594 0.307471 +0 +0.057995 0.058553 0.061508 0.051849 0.026820 0.067671 0.053202 0.032667 0.065084 0.107559 0.046867 0.074529 0.063369 0.058669 0.105829 0.050510 0.037721 0.042954 0.054497 0.054254 0.015393 0.170817 0.100293 0.010290 0.049037 0.102490 0.101225 0.010446 0.025200 0.204980 0.078377 0.273307 +0 +0.051447 0.049849 0.052794 0.038295 0.043589 0.185138 0.039557 0.039406 0.064001 0.068774 0.028798 0.093428 0.055056 0.060831 0.045745 0.045388 0.045904 0.279968 0.052607 0.040827 0.025621 0.170817 0.096901 0.063626 0.011331 0.136654 0.095665 0.014148 0.009363 0.204980 0.070125 0.239144 +0.356645 +0.059581 0.056511 0.184087 0.035279 0.041444 0.086954 0.013210 0.008792 0.053782 0.062273 0.021666 0.036498 0.021176 0.003532 0.056933 0.036924 0.024787 0.086467 0.059028 0.041877 0.026120 0.170817 0.072044 0.011783 0.050671 0.170817 0.055447 0.052830 0.021306 0.170817 0.095573 0.204980 +0.031437 +0.034180 0.015513 0.037812 0.068007 0.025514 0.081072 0.064053 0.031160 0.043971 0.050482 0.045777 0.174543 0.066787 0.033659 0.175752 0.127247 0.019822 0.226087 0.042017 0.047691 0.030446 0.136654 0.052667 0.060877 0.033123 0.102490 0.062282 0.067231 0.065774 0.102490 0.084877 0.204980 +0.550585 +0.035962 0.015587 0.043084 0.036705 0.031158 0.140235 0.050710 0.046537 0.047672 0.078745 0.026079 0.119309 0.010789 0.024725 0.045598 0.042887 0.021493 0.312776 0.045329 0.057775 0.056499 0.239144 0.081619 0.055563 0.031483 0.136654 0.059550 0.060846 0.053002 0.239144 0.074521 0.273307 +0.304626 +0.056522 0.031121 0.039100 0.070440 0.017294 0.080640 0.021114 0.038029 0.041035 0.082333 0.034535 0.056160 0.034029 0.040095 0.083119 0.070087 0.023086 0.106586 0.041714 0.006108 0.025860 0.170817 0.063220 0.019450 0.027492 0.170817 0.073296 0.026741 0.046012 0.102490 0.094725 0.204980 +0.018766 +0.063490 0.058591 0.060025 0.177185 0.045091 0.069289 0.066942 0.025658 0.044793 0.080474 0.023832 0.177842 0.067942 0.002127 0.067050 0.149666 0.027755 0.035151 0.052279 0.010536 0.008443 0.170817 0.085742 0.001527 0.030053 0.136654 0.057667 0.056340 0.042355 0.239144 0.055109 0.341634 +0.139643 +0.027174 0.059839 0.064956 0.038227 0.037680 0.071930 0.054670 0.026727 0.039531 0.053546 0.029388 0.119901 0.015976 0.051673 0.049025 0.081434 0.026513 0.075914 0.040920 0.041465 0.018444 0.239144 0.066983 0.002184 0.033691 0.273307 0.081046 0.000872 0.021607 0.136654 0.076850 0.307471 +0.429114 +0.049960 0.026314 0.064057 0.080100 0.028050 0.356472 0.057842 0.034144 0.045118 0.084966 0.048463 0.161119 0.046595 0.035103 0.063319 0.034588 0.050232 0.065882 0.049077 0.037376 0.034484 0.170817 0.080325 0.027372 0.001717 0.170817 0.083882 0.038950 0.058097 0.273307 0.054459 0.307471 +0.185686 +0.066723 0.057955 0.072254 0.037217 0.020375 0.084150 0.013687 0.013861 0.069708 0.130223 0.045070 0.075989 0.052580 0.060571 0.051162 0.050179 0.018853 0.035653 0.056419 0.032719 0.004622 0.102490 0.072421 0.064631 0.021221 0.136654 0.080751 0.026315 0.008638 0.273307 0.071208 0.307471 +0 +0.054154 0.024371 0.048666 0.037010 0.031691 0.055732 0.047757 0.041914 0.038771 0.106581 0.032577 0.052151 0.010117 0.024509 0.043050 0.075813 0.027027 0.062037 0.051184 0.031398 0.042186 0.136654 0.067529 0.056428 0.038058 0.136654 0.078344 0.019268 0.028468 0.170817 0.070427 0.273307 +0 +0.004893 0.011595 0.058358 0.060283 0.029364 0.099980 0.043280 0.019178 0.045057 0.119178 0.030986 0.129211 0.014892 0.057918 0.051779 0.079370 0.038888 0.078079 0.060467 0.004755 0.021603 0.136654 0.085759 0.002282 0.005868 0.170817 0.080837 0.016157 0.066138 0.136654 0.098843 0.239144 +0.012945 +0.031405 0.018111 0.072092 0.043404 0.050677 0.349119 0.034268 0.013978 0.062286 0.059191 0.017339 0.179571 0.062045 0.007575 0.096744 0.083774 0.035421 0.116479 0.037910 0.056837 0.062831 0.204980 0.082974 0.024525 0.031285 0.273307 0.091180 0.044546 0.042846 0.204980 0.080285 0.307471 +0.253597 +0.000102 0.019021 0.037352 0.037420 0.045733 0.345956 0.065936 0.060985 0.057521 0.035981 0.026684 0.136135 0.067147 0.013674 0.073651 0.076926 0.025046 0.232164 0.057811 0.038510 0.015493 0.136654 0.097968 0.012213 0.026309 0.102490 0.101714 0.026967 0.018064 0.170817 0.088114 0.307471 +0.083346 +0.051754 0.023694 0.143283 0.059536 0.032168 0.265646 0.048808 0.049493 0.048463 0.164446 0.025540 0.089148 0.001067 0.023947 0.045929 0.057692 0.050739 0.063014 0.059033 0.053365 0.047422 0.102490 0.079967 0.012723 0.056269 0.102490 0.051820 0.011224 0.020840 0.136654 0.099411 0.204980 +0.007604 +0.013243 0.021237 0.100374 0.114831 0.047419 0.082066 0.059433 0.003018 0.048859 0.053670 0.038315 0.114336 0.045362 0.056636 0.083665 0.049226 0.041758 0.133725 0.052485 0.021832 0.027408 0.239144 0.063040 0.053045 0.029705 0.102490 0.076684 0.024934 0.020844 0.136654 0.063645 0.307471 +0 +0.059348 0.047342 0.041970 0.200091 0.049548 0.036799 0.063291 0.009739 0.057743 0.054545 0.022350 0.040394 0.050391 0.043614 0.074332 0.215870 0.022838 0.375929 0.055679 0.048275 0.045343 0.170817 0.056204 0.015181 0.066596 0.239144 0.055640 0.037336 0.031909 0.102490 0.097854 0.341634 +0.237361 +0.019506 0.066523 0.049000 0.035608 0.040386 0.072009 0.011514 0.014448 0.041048 0.118154 0.025651 0.044992 0.033865 0.010926 0.055002 0.038809 0.031775 0.053563 0.060999 0.028069 0.052160 0.136654 0.091172 0.045839 0.017487 0.204980 0.059367 0.053753 0.063485 0.136654 0.057695 0.273307 +0 +0.011621 0.036121 0.073858 0.037719 0.032241 0.302782 0.009360 0.036575 0.049259 0.040035 0.050212 0.148288 0.025124 0.048708 0.139620 0.105266 0.025906 0.037916 0.047932 0.046999 0.047057 0.273307 0.078129 0.039847 0.046730 0.204980 0.090179 0.018877 0.021655 0.102490 0.058850 0.341634 +0.057889 +0.008207 0.023376 0.131010 0.096881 0.043350 0.443623 0.048074 0.052614 0.042326 0.035014 0.050404 0.076214 0.008377 0.066306 0.057309 0.048377 0.031541 0.036934 0.054636 0.019089 0.041179 0.273307 0.087038 0.043410 0.049934 0.239144 0.093069 0.007231 0.011592 0.102490 0.097773 0.341634 +0.018180 +0.025185 0.045831 0.049435 0.045960 0.024219 0.146103 0.043831 0.049408 0.069388 0.067146 0.049079 0.258805 0.007886 0.021452 0.057360 0.034746 0.047545 0.075701 0.053311 0.049788 0.024444 0.239144 0.083816 0.042675 0.011708 0.170817 0.085923 0.047652 0.047610 0.273307 0.093394 0.307471 +0.141111 +0.026624 0.026031 0.079886 0.067665 0.019720 0.082767 0.017652 0.028390 0.050275 0.061609 0.047776 0.047732 0.048491 0.009011 0.063048 0.102605 0.041405 0.040222 0.050012 0.014177 0.051683 0.102490 0.084572 0.041081 0.062630 0.102490 0.089657 0.037282 0.067201 0.170817 0.059180 0.204980 +0 +0.048447 0.001902 0.041375 0.037989 0.036152 0.175170 0.065417 0.062886 0.119447 0.043067 0.032871 0.125972 0.048704 0.031758 0.038229 0.088908 0.017465 0.211128 0.060165 0.065735 0.059643 0.136654 0.067480 0.031451 0.051851 0.136654 0.082192 0.002962 0.052095 0.239144 0.057164 0.273307 +0.216600 +0.021477 0.034020 0.044125 0.083202 0.027155 0.553429 0.053708 0.023957 0.044083 0.048749 0.020894 0.054467 0.006631 0.066330 0.034576 0.066264 0.025042 0.198777 0.043629 0.064465 0.025788 0.170817 0.099649 0.025707 0.007328 0.170817 0.075134 0.026461 0.009066 0.102490 0.067623 0.239144 +0.347885 +0.039895 0.024100 0.054711 0.054068 0.029607 0.050014 0.045688 0.044018 0.083908 0.051194 0.049717 0.106288 0.046316 0.040771 0.069801 0.140582 0.049899 0.119195 0.046789 0.038532 0.049258 0.204980 0.053484 0.063900 0.008822 0.204980 0.073381 0.041928 0.063378 0.170817 0.065097 0.239144 +0.053353 +0.058480 0.011647 0.076716 0.098910 0.030434 0.139149 0.028450 0.018826 0.037460 0.056104 0.041934 0.092315 0.008095 0.033387 0.052564 0.112656 0.028437 0.108254 0.041723 0.029618 0.026841 0.136654 0.071792 0.047157 0.061724 0.102490 0.083990 0.034992 0.044639 0.239144 0.084479 0.307471 +0 +0.001953 0.067691 0.075648 0.053160 0.020950 0.087230 0.037744 0.007934 0.048283 0.058632 0.046211 0.059421 0.012207 0.019151 0.123810 0.034703 0.033422 0.450438 0.057936 0.059807 0.016398 0.204980 0.053487 0.025287 0.049150 0.136654 0.084515 0.058197 0.012718 0.239144 0.092758 0.307471 +0.375038 +0.057308 0.004956 0.072420 0.055324 0.028490 0.229499 0.044381 0.009638 0.045973 0.089704 0.044081 0.118408 0.033690 0.009474 0.081967 0.052190 0.038830 0.051307 0.056805 0.058528 0.054712 0.136654 0.080005 0.056428 0.021313 0.136654 0.098077 0.035486 0.043142 0.204980 0.056902 0.239144 +0.006798 +0.048975 0.038920 0.042382 0.102039 0.044856 0.106135 0.054834 0.035869 0.204451 0.045041 0.035959 0.067703 0.036313 0.018679 0.195378 0.348776 0.049209 0.090577 0.047296 0.005876 0.016769 0.170817 0.069167 0.049978 0.019404 0.170817 0.101925 0.033143 0.052969 0.239144 0.066037 0.307471 +0.001932 +0.044022 0.035547 0.075212 0.076957 0.037141 0.066749 0.048175 0.016083 0.102002 0.118931 0.044338 0.200594 0.055716 0.012138 0.125671 0.041800 0.039369 0.144657 0.061329 0.007255 0.047516 0.102490 0.085104 0.065554 0.044427 0.204980 0.073907 0.048112 0.032435 0.204980 0.061789 0.273307 +0.030831 +0.056378 0.062627 0.046930 0.101527 0.038671 0.233588 0.066311 0.050588 0.050036 0.073128 0.020664 0.119626 0.062321 0.047550 0.046352 0.045950 0.038128 0.043857 0.059348 0.058017 0.018176 0.239144 0.093464 0.003075 0.013591 0.239144 0.098251 0.015900 0.061365 0.273307 0.060665 0.307471 +0.051661 +0.027415 0.038548 0.143638 0.041329 0.046267 0.212148 0.031560 0.066734 0.134037 0.046394 0.036327 0.064274 0.066625 0.013108 0.037009 0.040762 0.031036 0.210186 0.051285 0.009825 0.040507 0.136654 0.083905 0.030641 0.023935 0.170817 0.097748 0.009977 0.022903 0.204980 0.076484 0.273307 +0.018384 +0.046695 0.016826 0.053316 0.047667 0.043641 0.089600 0.047671 0.010466 0.144921 0.034302 0.051079 0.061058 0.003001 0.031611 0.051419 0.070807 0.022858 0.202215 0.059596 0.013056 0.007069 0.102490 0.089139 0.043054 0.033697 0.102490 0.057320 0.020854 0.031591 0.170817 0.053181 0.239144 +0 +0.057959 0.003004 0.139871 0.103142 0.018519 0.087767 0.056465 0.045254 0.057623 0.086734 0.018844 0.152381 0.013700 0.024202 0.043473 0.052916 0.018361 0.085441 0.043851 0.039036 0.007034 0.239144 0.090981 0.042669 0.014597 0.170817 0.064747 0.050158 0.021783 0.239144 0.056035 0.341634 +0 +0.023082 0.045085 0.099969 0.048888 0.037437 0.097864 0.042143 0.000730 0.097658 0.035663 0.021762 0.174434 0.032855 0.029002 0.093992 0.046658 0.026804 0.252824 0.061059 0.002004 0.043280 0.170817 0.057874 0.008450 0.002396 0.102490 0.078301 0.038044 0.057082 0.136654 0.072010 0.239144 +0.203753 +0.034096 0.025336 0.039434 0.078219 0.043063 0.112876 0.008209 0.059874 0.071247 0.036938 0.036383 0.078171 0.015038 0.010194 0.040078 0.036857 0.018033 0.040256 0.040951 0.026608 0.028031 0.170817 0.062492 0.063225 0.046054 0.136654 0.089679 0.031170 0.056115 0.102490 0.087472 0.204980 +0.086577 +0.051524 0.042356 0.054282 0.066797 0.036854 0.291462 0.034477 0.018136 0.036142 0.073588 0.042781 0.122163 0.033165 0.018960 0.095519 0.060191 0.051101 0.160176 0.044577 0.023045 0.028784 0.170817 0.085694 0.043115 0.062840 0.102490 0.093959 0.061781 0.001918 0.239144 0.058646 0.341634 +0.008248 +0.008402 0.040708 0.166221 0.092406 0.022748 0.147764 0.015931 0.006496 0.037484 0.066770 0.045358 0.128368 0.010918 0.059592 0.059935 0.205520 0.050535 0.151762 0.060146 0.045550 0.031368 0.170817 0.076456 0.002718 0.058155 0.170817 0.077497 0.021607 0.002105 0.102490 0.072129 0.204980 +0.070174 +0.033068 0.043166 0.154556 0.052938 0.033233 0.167642 0.016401 0.011386 0.139864 0.142086 0.021175 0.084287 0.030155 0.061327 0.091638 0.107349 0.032664 0.124230 0.056216 0.042913 0.024353 0.102490 0.062465 0.041154 0.008043 0.102490 0.077611 0.042383 0.000093 0.136654 0.073105 0.239144 +0.006066 +0.008672 0.001822 0.093528 0.138975 0.043102 0.085848 0.023329 0.042132 0.040235 0.053351 0.028137 0.238869 0.024322 0.001342 0.038489 0.135469 0.045001 0.261838 0.047617 0.048931 0.067062 0.136654 0.087670 0.059346 0.012995 0.239144 0.097753 0.054841 0.049967 0.102490 0.058871 0.273307 +0.174715 +0.032453 0.056949 0.054911 0.043388 0.031690 0.137178 0.005235 0.027645 0.036885 0.089475 0.021311 0.140612 0.065742 0.023892 0.059595 0.054023 0.039469 0.079481 0.060892 0.060073 0.033979 0.102490 0.083358 0.009433 0.004437 0.170817 0.052326 0.012634 0.036352 0.136654 0.085460 0.204980 +0.029320 +0.068193 0.058446 0.089238 0.036586 0.039101 0.115401 0.054242 0.052602 0.070887 0.043269 0.039304 0.116417 0.040556 0.056615 0.045574 0.051015 0.040205 0.133342 0.039898 0.023127 0.028911 0.170817 0.060974 0.010777 0.035623 0.136654 0.073455 0.041374 0.023423 0.102490 0.072840 0.204980 +0.017231 +0.047287 0.022598 0.058433 0.058931 0.020851 0.258465 0.054933 0.001796 0.043855 0.055602 0.033956 0.046964 0.020575 0.044249 0.062932 0.063641 0.019444 0.082451 0.061684 0.028539 0.033192 0.204980 0.068068 0.007835 0.027620 0.102490 0.062584 0.004376 0.041489 0.136654 0.058767 0.239144 +0.082025 +0.045125 0.037652 0.038549 0.066547 0.017857 0.037801 0.034328 0.047737 0.121454 0.082805 0.022191 0.063412 0.014484 0.045536 0.124820 0.049081 0.021807 0.069419 0.038228 0.022009 0.005842 0.273307 0.076009 0.018927 0.044897 0.273307 0.090333 0.057280 0.029110 0.170817 0.078985 0.307471 +0 +0.022888 0.067303 0.040678 0.062795 0.034141 0.060726 0.007723 0.020115 0.045399 0.047183 0.029001 0.349871 0.042887 0.024526 0.067883 0.120746 0.022060 0.118892 0.047507 0.064048 0.067987 0.170817 0.086327 0.016801 0.040743 0.136654 0.073910 0.051553 0.035693 0.136654 0.100296 0.204980 +0.471470 +0.052356 0.059222 0.051568 0.035660 0.034416 0.120754 0.050120 0.039213 0.093694 0.055291 0.039956 0.491440 0.043767 0.029034 0.062072 0.046005 0.025365 0.050477 0.051326 0.012239 0.052160 0.170817 0.094484 0.006275 0.057172 0.170817 0.070772 0.048351 0.049944 0.102490 0.061663 0.341634 +0.443147 +0.003283 0.022202 0.073661 0.043992 0.028034 0.055803 0.006647 0.054019 0.035266 0.038383 0.018749 0.107684 0.018048 0.064877 0.046536 0.084322 0.017136 0.038216 0.057370 0.010353 0.067117 0.136654 0.089870 0.005747 0.045724 0.239144 0.087121 0.042324 0.015925 0.170817 0.086182 0.341634 +0 +0.063962 0.011305 0.050259 0.038084 0.038352 0.203180 0.052393 0.056790 0.035192 0.060438 0.044313 0.043437 0.024877 0.046847 0.128594 0.052124 0.023196 0.234504 0.061354 0.035625 0.010233 0.102490 0.075190 0.008377 0.047951 0.204980 0.071866 0.059953 0.056843 0.136654 0.070904 0.273307 +0.098338 +0.056138 0.065841 0.077546 0.037425 0.024807 0.252129 0.021830 0.047520 0.035570 0.041791 0.024158 0.350142 0.062221 0.053085 0.047410 0.048025 0.047969 0.039793 0.058396 0.012487 0.017410 0.204980 0.093805 0.053178 0.021439 0.170817 0.061853 0.027026 0.019102 0.170817 0.061733 0.239144 +0.127645 +0.005855 0.016736 0.046426 0.041375 0.031271 0.046073 0.052504 0.055953 0.038545 0.046627 0.029887 0.076337 0.062818 0.024503 0.036398 0.041523 0.045411 0.185566 0.040534 0.065720 0.038585 0.170817 0.082027 0.036945 0.025292 0.204980 0.058216 0.046092 0.008115 0.170817 0.078964 0.239144 +0 +0.018260 0.004078 0.096827 0.035963 0.046920 0.357296 0.050107 0.010358 0.034645 0.053377 0.045774 0.081639 0.010185 0.050462 0.069345 0.056166 0.024970 0.080079 0.041885 0.008271 0.037488 0.170817 0.054742 0.057199 0.041633 0.170817 0.099768 0.038867 0.005676 0.102490 0.099544 0.204980 +0.032340 +0.037014 0.032543 0.038101 0.042775 0.031583 0.119414 0.043908 0.030577 0.046001 0.040305 0.018746 0.534236 0.051346 0.046161 0.061830 0.047164 0.023828 0.154355 0.047155 0.038732 0.017383 0.102490 0.096883 0.059632 0.035867 0.170817 0.086963 0.002615 0.037562 0.136654 0.059790 0.204980 +0.578408 +0.037538 0.043454 0.048812 0.055360 0.046473 0.060337 0.011810 0.064198 0.073175 0.053823 0.021352 0.241610 0.052150 0.025495 0.060412 0.049626 0.036844 0.268493 0.042415 0.028043 0.048367 0.204980 0.062649 0.031183 0.065326 0.239144 0.072822 0.039343 0.066277 0.204980 0.089748 0.273307 +0.613705 +0.034026 0.052034 0.048674 0.079695 0.024066 0.302395 0.032651 0.036710 0.105809 0.047586 0.029786 0.209467 0.067631 0.054799 0.044993 0.044452 0.046408 0.056137 0.042917 0.065517 0.009366 0.204980 0.064679 0.021385 0.010913 0.170817 0.075878 0.019748 0.030168 0.170817 0.077570 0.239144 +0.459443 +0.016495 0.049222 0.038693 0.247248 0.049364 0.358123 0.058438 0.006857 0.050823 0.067105 0.049016 0.116479 0.051096 0.029337 0.072708 0.035465 0.034605 0.284448 0.049578 0.038267 0.025074 0.102490 0.062562 0.012770 0.015728 0.102490 0.051309 0.007300 0.008054 0.136654 0.095752 0.239144 +0.775887 +0.008443 0.064790 0.222841 0.049212 0.018681 0.181628 0.064388 0.008466 0.132274 0.049002 0.037303 0.194549 0.031821 0.035046 0.047734 0.085648 0.035548 0.204340 0.045232 0.053197 0.020968 0.170817 0.098351 0.046199 0.050297 0.204980 0.066324 0.061799 0.016640 0.136654 0.089036 0.239144 +0.336333 +0.064791 0.057881 0.037541 0.075980 0.042372 0.053576 0.056083 0.048115 0.059474 0.036674 0.028912 0.049216 0.018346 0.015517 0.037990 0.124114 0.047383 0.139786 0.053010 0.005904 0.057652 0.273307 0.052561 0.060932 0.005524 0.204980 0.082321 0.034020 0.015591 0.204980 0.064773 0.307471 +0.032458 +0.014424 0.047997 0.075072 0.050582 0.028181 0.077719 0.019978 0.019494 0.052529 0.040692 0.018844 0.056592 0.000103 0.028796 0.044586 0.047307 0.036765 0.050525 0.041259 0.042981 0.008085 0.102490 0.054922 0.003215 0.004863 0.136654 0.061131 0.042527 0.037262 0.136654 0.077420 0.204980 +0 +0.044515 0.046448 0.049098 0.052243 0.029375 0.083355 0.033360 0.000444 0.098485 0.075177 0.044552 0.463184 0.025635 0.044337 0.051557 0.081151 0.031710 0.162889 0.054608 0.011320 0.050370 0.170817 0.094383 0.022224 0.060663 0.170817 0.086499 0.013810 0.002940 0.136654 0.096708 0.204980 +0.342602 +0.013203 0.040588 0.057499 0.072100 0.039202 0.142507 0.002182 0.046837 0.049189 0.118906 0.027058 0.079037 0.037737 0.038381 0.062284 0.034263 0.041265 0.039282 0.041475 0.040934 0.049883 0.102490 0.081849 0.001748 0.007919 0.102490 0.087390 0.018521 0.049090 0.102490 0.080370 0.204980 +0.011187 +0.048427 0.041716 0.105366 0.039135 0.036215 0.060238 0.061541 0.045225 0.043023 0.052405 0.034924 0.125882 0.029445 0.017137 0.054662 0.081180 0.046009 0.038833 0.039381 0.029705 0.052697 0.136654 0.075599 0.029332 0.065749 0.102490 0.064180 0.014698 0.042827 0.204980 0.102021 0.239144 +0.005218 +0.066423 0.010970 0.047871 0.070554 0.047534 0.129891 0.065975 0.060006 0.039483 0.051574 0.020637 0.107331 0.053651 0.053122 0.060421 0.045319 0.037769 0.179037 0.050621 0.065077 0.043110 0.136654 0.077171 0.055330 0.054732 0.204980 0.072984 0.026276 0.033358 0.136654 0.094518 0.239144 +0.086224 +0.048587 0.060858 0.060554 0.068006 0.029141 0.073697 0.054659 0.001535 0.039277 0.039310 0.022602 0.138020 0.045872 0.034558 0.084170 0.091876 0.031313 0.118394 0.055263 0.067001 0.021351 0.204980 0.059319 0.034694 0.032348 0.136654 0.084552 0.068110 0.010888 0.170817 0.081500 0.341634 +0 +0.031050 0.067985 0.059530 0.078675 0.040225 0.052839 0.051262 0.009046 0.069138 0.057356 0.038288 0.077185 0.062150 0.001890 0.068258 0.035040 0.047437 0.086137 0.053757 0.057429 0.065979 0.136654 0.102407 0.016906 0.031861 0.136654 0.064234 0.042705 0.036690 0.136654 0.099420 0.239144 +0 +0.034158 0.006286 0.034742 0.048015 0.030554 0.095500 0.039683 0.044852 0.077595 0.043159 0.044604 0.190989 0.041786 0.011752 0.071220 0.050114 0.051173 0.082174 0.053796 0.065955 0.000523 0.136654 0.052780 0.004789 0.039974 0.136654 0.076124 0.009397 0.024289 0.170817 0.093806 0.341634 +0.049244 +0.063031 0.059541 0.057225 0.055005 0.031534 0.103383 0.030766 0.045542 0.041090 0.062527 0.032422 0.087926 0.035608 0.045028 0.060860 0.061368 0.023695 0.282351 0.043869 0.003570 0.002220 0.273307 0.096211 0.003292 0.024481 0.273307 0.065960 0.055021 0.021403 0.239144 0.074581 0.341634 +0.009832 +0.034541 0.005990 0.080823 0.035366 0.023124 0.055007 0.066292 0.050852 0.095246 0.051274 0.029956 0.108462 0.000093 0.043103 0.050825 0.085360 0.022021 0.278276 0.046205 0.013602 0.049060 0.102490 0.091539 0.000461 0.007630 0.136654 0.094101 0.016038 0.038077 0.136654 0.094568 0.239144 +0.018665 +0.014630 0.039358 0.062421 0.061710 0.018518 0.263418 0.026257 0.008724 0.053543 0.079707 0.019618 0.041796 0.020121 0.013233 0.034420 0.078148 0.023755 0.389328 0.055928 0.056031 0.067854 0.204980 0.096799 0.034879 0.021516 0.170817 0.052470 0.041323 0.007811 0.102490 0.090097 0.239144 +0.027334 +0.046273 0.002727 0.065300 0.098625 0.033453 0.056107 0.056788 0.058081 0.068172 0.044853 0.049011 0.035577 0.037127 0.022292 0.043668 0.043279 0.023781 0.144516 0.046947 0.008232 0.015251 0.170817 0.069330 0.058958 0.049481 0.136654 0.094410 0.030070 0.036893 0.204980 0.091969 0.307471 +0.012026 +0.032732 0.021198 0.117620 0.102139 0.021510 0.066341 0.014371 0.033988 0.046893 0.142041 0.021438 0.042575 0.021471 0.029335 0.080642 0.035715 0.041233 0.157281 0.048983 0.063214 0.035390 0.102490 0.069077 0.057525 0.062683 0.307471 0.070644 0.041634 0.034235 0.102490 0.057589 0.341634 +0.129271 +0.040372 0.002128 0.054951 0.053003 0.049692 0.045937 0.002536 0.028842 0.120874 0.041262 0.032318 0.131218 0.042733 0.006776 0.046346 0.064965 0.017396 0.056783 0.051020 0.056645 0.023899 0.273307 0.070702 0.062561 0.027151 0.102490 0.091215 0.005052 0.064294 0.204980 0.088990 0.341634 +0.006120 +0.032822 0.064652 0.065749 0.117137 0.021537 0.199235 0.020750 0.035296 0.072880 0.083320 0.026599 0.049621 0.020004 0.043812 0.071518 0.066797 0.048192 0.158102 0.055130 0.042447 0.027152 0.170817 0.059484 0.004896 0.060259 0.170817 0.091547 0.048930 0.018415 0.102490 0.078460 0.307471 +0.009372 +0.027699 0.004814 0.112239 0.074594 0.021601 0.051257 0.013942 0.009306 0.040993 0.064052 0.044619 0.142905 0.043987 0.067759 0.049640 0.055796 0.049691 0.325574 0.047695 0.053939 0.036325 0.170817 0.082306 0.066889 0.021702 0.170817 0.095316 0.066220 0.020766 0.239144 0.052770 0.341634 +0.210076 +0.015717 0.010880 0.068744 0.061498 0.034386 0.101147 0.001693 0.041548 0.039039 0.106020 0.026727 0.096423 0.031494 0.020185 0.050000 0.079165 0.035025 0.102559 0.057595 0.056513 0.066079 0.204980 0.078700 0.058544 0.003261 0.136654 0.081683 0.063101 0.060324 0.136654 0.084727 0.239144 +0.006824 +0.044648 0.024335 0.059253 0.049216 0.031003 0.152108 0.034495 0.019141 0.048040 0.062197 0.035262 0.053218 0.035952 0.025049 0.113559 0.039400 0.040460 0.051313 0.051104 0.053924 0.052012 0.170817 0.074859 0.000295 0.041331 0.102490 0.065939 0.027246 0.028849 0.102490 0.054633 0.239144 +0.023493 +0.026855 0.064894 0.048589 0.150838 0.046037 0.070873 0.023091 0.013077 0.046770 0.067027 0.028320 0.174157 0.033405 0.003884 0.039289 0.102390 0.045707 0.083765 0.038015 0.009233 0.027279 0.273307 0.094082 0.019517 0.057306 0.273307 0.065215 0.031209 0.045831 0.307471 0.089721 0.341634 +0.145951 +0.043341 0.036246 0.062829 0.044382 0.021534 0.155601 0.012386 0.038141 0.090683 0.049063 0.023677 0.312494 0.038917 0.015356 0.094060 0.080366 0.021942 0.127270 0.047303 0.046825 0.016675 0.136654 0.060167 0.063192 0.019506 0.170817 0.068588 0.045274 0.039863 0.204980 0.094186 0.273307 +0.308386 +0.007629 0.017694 0.094925 0.114027 0.022283 0.584372 0.064524 0.004675 0.049167 0.052432 0.050932 0.229732 0.009248 0.064937 0.041170 0.048268 0.026052 0.037730 0.054575 0.035119 0.039683 0.273307 0.089956 0.014845 0.059385 0.136654 0.062915 0.027205 0.039396 0.239144 0.080841 0.307471 +0.190706 +0.028442 0.006852 0.165897 0.036834 0.032361 0.098707 0.029099 0.000600 0.060145 0.046492 0.022295 0.159766 0.003987 0.018640 0.051765 0.055855 0.032483 0.105692 0.051981 0.023212 0.022223 0.204980 0.102459 0.039743 0.028442 0.102490 0.092263 0.010197 0.035962 0.170817 0.074380 0.239144 +0.083822 +0.014289 0.047805 0.049727 0.035870 0.025885 0.062432 0.050291 0.038440 0.062039 0.046905 0.035944 0.155450 0.044304 0.013720 0.087610 0.037504 0.037369 0.279182 0.059116 0.051866 0.060543 0.102490 0.075662 0.028379 0.039911 0.204980 0.076773 0.041453 0.032532 0.102490 0.094782 0.307471 +0.002705 +0.037450 0.058001 0.035250 0.044179 0.028124 0.251933 0.064242 0.067975 0.064252 0.129767 0.023608 0.120773 0.032787 0.035723 0.083290 0.043060 0.029076 0.050149 0.061793 0.017408 0.060289 0.102490 0.069574 0.017613 0.048697 0.170817 0.054475 0.056938 0.056747 0.102490 0.079580 0.204980 +0.109554 +0.025873 0.004129 0.059595 0.075776 0.021669 0.096097 0.049488 0.051508 0.056390 0.055034 0.033052 0.065472 0.054965 0.025465 0.040446 0.172157 0.021167 0.120946 0.040115 0.030031 0.061072 0.102490 0.065223 0.053983 0.015565 0.204980 0.088127 0.025778 0.015448 0.239144 0.079142 0.273307 +0 +0.055039 0.014549 0.049881 0.048183 0.040288 0.049654 0.023744 0.050143 0.066600 0.041894 0.038101 0.201101 0.010586 0.060866 0.127085 0.037197 0.020119 0.058084 0.055043 0.025134 0.025395 0.136654 0.055305 0.004469 0.001069 0.239144 0.072571 0.061158 0.026785 0.307471 0.061527 0.341634 +0.042799 +0.034278 0.022614 0.115371 0.062962 0.038995 0.233394 0.032333 0.061342 0.048766 0.159970 0.025027 0.508382 0.030098 0.001361 0.046870 0.151868 0.035344 0.181486 0.062261 0.043131 0.031655 0.204980 0.085083 0.013458 0.056248 0.273307 0.099288 0.008319 0.006146 0.273307 0.084323 0.307471 +0.162140 +0.036279 0.032136 0.042819 0.093938 0.035977 0.086100 0.055703 0.055876 0.069624 0.069308 0.042568 0.094951 0.041379 0.059481 0.041612 0.105545 0.030767 0.037820 0.039370 0.039852 0.061647 0.102490 0.087651 0.051616 0.028370 0.170817 0.098342 0.018590 0.041425 0.102490 0.095730 0.239144 +0 +0.060456 0.062314 0.037485 0.038858 0.041592 0.124549 0.057931 0.055179 0.069942 0.049244 0.019512 0.082316 0.050614 0.056364 0.149381 0.045729 0.031434 0.101429 0.045775 0.031346 0.040488 0.204980 0.057962 0.068241 0.035050 0.170817 0.089472 0.042835 0.041494 0.204980 0.074581 0.341634 +0.001718 +0.027824 0.032422 0.050349 0.038751 0.018502 0.060153 0.049305 0.045058 0.044344 0.070578 0.035233 0.176502 0.029177 0.026134 0.115528 0.046446 0.048248 0.059734 0.055210 0.033162 0.042321 0.307471 0.072803 0.019341 0.066047 0.136654 0.052952 0.047556 0.018056 0.170817 0.093790 0.341634 +0.002922 +0.065039 0.041076 0.059985 0.066692 0.036113 0.315488 0.024149 0.043550 0.116970 0.078109 0.032007 0.254973 0.023186 0.039182 0.034644 0.092722 0.036170 0.082409 0.054409 0.012842 0.059487 0.136654 0.097346 0.006035 0.032611 0.239144 0.084407 0.036721 0.017354 0.204980 0.100228 0.273307 +0.169254 +0.026064 0.037714 0.128435 0.083821 0.030871 0.060034 0.064419 0.019971 0.093632 0.043218 0.026627 0.305139 0.030873 0.041874 0.088571 0.064706 0.046699 0.129184 0.060441 0.025371 0.052810 0.170817 0.101057 0.028173 0.056544 0.239144 0.095722 0.049409 0.005743 0.204980 0.083942 0.341634 +0.021192 +0.026417 0.048885 0.037451 0.038764 0.018350 0.046311 0.044385 0.059658 0.049242 0.039026 0.047298 0.078602 0.003807 0.025462 0.036283 0.044773 0.019259 0.344736 0.052494 0.022202 0.053951 0.273307 0.099747 0.035337 0.051959 0.136654 0.073249 0.053852 0.050742 0.102490 0.055483 0.341634 +0.013578 +0.059068 0.052868 0.077727 0.045901 0.022895 0.249158 0.005943 0.036405 0.058989 0.134090 0.037089 0.089803 0.016026 0.018616 0.052803 0.045607 0.043740 0.043916 0.055773 0.050724 0.038934 0.239144 0.074684 0.018524 0.011361 0.136654 0.101398 0.039726 0.058928 0.239144 0.073127 0.273307 +0.222550 +0.054412 0.003296 0.128414 0.054994 0.030993 0.211021 0.050204 0.061978 0.061055 0.061280 0.032201 0.232435 0.050160 0.032215 0.082325 0.052236 0.031465 0.141060 0.045919 0.051423 0.002727 0.239144 0.083243 0.017086 0.003671 0.239144 0.060215 0.035687 0.046887 0.102490 0.076572 0.273307 +0.275809 +0.057261 0.021668 0.060718 0.048082 0.032319 0.229373 0.038969 0.056939 0.057874 0.037134 0.040986 0.179771 0.018083 0.035932 0.049912 0.040785 0.044519 0.046194 0.038083 0.022510 0.011457 0.136654 0.088340 0.043150 0.009597 0.204980 0.093347 0.002875 0.056132 0.136654 0.077211 0.273307 +0.038565 +0.027458 0.026279 0.043467 0.067231 0.032218 0.548398 0.013538 0.013349 0.034559 0.052754 0.020277 0.191858 0.025883 0.026726 0.128128 0.102166 0.046876 0.124608 0.053560 0.061678 0.011324 0.102490 0.080664 0.017973 0.046635 0.136654 0.073859 0.019272 0.016159 0.170817 0.078492 0.273307 +0.011883 +0.068113 0.027987 0.084740 0.049698 0.049993 0.256570 0.002846 0.065882 0.058875 0.094548 0.020230 0.115253 0.003694 0.064417 0.107616 0.040796 0.044474 0.073750 0.061893 0.028956 0.030164 0.239144 0.074889 0.057169 0.037022 0.136654 0.056175 0.059567 0.011527 0.136654 0.078321 0.341634 +0.029283 +0.018663 0.019038 0.081562 0.036694 0.029104 0.388957 0.040692 0.001978 0.094299 0.048882 0.019047 0.185888 0.063517 0.043711 0.047844 0.057716 0.025270 0.049633 0.058646 0.004599 0.026394 0.102490 0.078217 0.050144 0.025816 0.102490 0.096113 0.035592 0.055102 0.204980 0.061612 0.273307 +0.127241 +0.057067 0.054209 0.035503 0.036263 0.028749 0.049141 0.020740 0.002676 0.034928 0.039595 0.046061 0.083326 0.007851 0.020095 0.050423 0.067852 0.038709 0.246436 0.057424 0.037841 0.047828 0.136654 0.099695 0.048117 0.040005 0.170817 0.071310 0.064171 0.017677 0.136654 0.074480 0.204980 +0.059969 +0.045599 0.037509 0.074306 0.074719 0.020857 0.225157 0.054266 0.030346 0.055158 0.060584 0.043425 0.164785 0.050078 0.018428 0.067195 0.081244 0.042820 0.105676 0.045887 0.045940 0.005027 0.273307 0.069658 0.021907 0.037516 0.170817 0.074001 0.035947 0.043676 0.170817 0.054645 0.307471 +0.006688 +0.002290 0.030340 0.210958 0.067102 0.019250 0.057205 0.066788 0.008435 0.074671 0.055157 0.024458 0.199752 0.059832 0.051531 0.050842 0.070431 0.025138 0.082827 0.037683 0.011427 0.063833 0.136654 0.096496 0.011004 0.005635 0.239144 0.096640 0.021440 0.011034 0.102490 0.077394 0.273307 +0.000872 +0.046401 0.014974 0.050339 0.036371 0.034353 0.153765 0.028879 0.038721 0.045749 0.078393 0.040072 0.194624 0.035633 0.012921 0.062191 0.047384 0.017084 0.055121 0.052748 0.036885 0.023941 0.136654 0.059790 0.020378 0.047398 0.102490 0.058303 0.003512 0.034746 0.204980 0.089139 0.341634 +0.310557 +0.029988 0.030859 0.075894 0.064177 0.020629 0.058572 0.003973 0.007151 0.065967 0.062111 0.021889 0.220683 0.027936 0.004502 0.042452 0.058392 0.026240 0.093922 0.054046 0.047887 0.027620 0.204980 0.074445 0.066161 0.048199 0.170817 0.058857 0.031032 0.034780 0.239144 0.060199 0.307471 +0.025611 +0.021097 0.019869 0.035372 0.055657 0.018307 0.100915 0.043419 0.004724 0.061747 0.037220 0.031119 0.120695 0.006822 0.054005 0.069664 0.040228 0.043793 0.050957 0.041299 0.039966 0.011204 0.102490 0.097190 0.033236 0.033942 0.204980 0.066133 0.033383 0.011033 0.239144 0.052652 0.307471 +0.001150 +0.028099 0.027729 0.061237 0.048944 0.019532 0.077056 0.066776 0.030550 0.091487 0.034249 0.044450 0.051459 0.067719 0.031304 0.175034 0.108503 0.030131 0.075023 0.059653 0.030475 0.033634 0.102490 0.098171 0.048386 0.045171 0.102490 0.088882 0.038880 0.059995 0.170817 0.066432 0.204980 +0 +0.050126 0.037178 0.067073 0.129817 0.044196 0.369911 0.003106 0.045198 0.041145 0.074197 0.032783 0.051713 0.059966 0.043953 0.037935 0.083020 0.037010 0.128869 0.062271 0.027373 0.058958 0.273307 0.101293 0.014144 0.058605 0.273307 0.100993 0.018356 0.050021 0.102490 0.069356 0.307471 +0.111154 +0.000373 0.057578 0.044499 0.049266 0.020915 0.201917 0.027813 0.061636 0.050852 0.065354 0.039706 0.148456 0.000596 0.041275 0.067589 0.112757 0.033182 0.289593 0.047115 0.007101 0.040131 0.239144 0.062222 0.045385 0.006354 0.239144 0.072505 0.037878 0.031161 0.239144 0.097332 0.273307 +0.343608 +0.000286 0.023768 0.047724 0.034729 0.038086 0.193938 0.061020 0.013923 0.113669 0.047655 0.042021 0.180773 0.058834 0.063568 0.073050 0.150020 0.029148 0.072359 0.053465 0.007667 0.001035 0.239144 0.081913 0.006745 0.066493 0.136654 0.080645 0.030754 0.013638 0.170817 0.083000 0.273307 +0.053294 +0.017308 0.001356 0.067365 0.047395 0.040344 0.064249 0.000426 0.042664 0.104807 0.050630 0.043419 0.211994 0.033939 0.034812 0.073527 0.046266 0.029628 0.048146 0.047381 0.035889 0.029232 0.170817 0.085476 0.011694 0.056764 0.204980 0.090664 0.003593 0.066053 0.136654 0.055452 0.239144 +0.181908 +0.031269 0.007215 0.141865 0.041183 0.022440 0.078813 0.066675 0.036525 0.143169 0.036159 0.038943 0.054001 0.034490 0.042659 0.045723 0.044906 0.034396 0.135762 0.055466 0.017192 0.056339 0.273307 0.053726 0.038119 0.004947 0.239144 0.101730 0.056265 0.032769 0.204980 0.088189 0.307471 +0 +0.002038 0.057249 0.084751 0.074436 0.035818 0.155086 0.060993 0.039770 0.091533 0.077532 0.044994 0.095753 0.058220 0.026601 0.111324 0.038847 0.018778 0.044886 0.062082 0.054659 0.050876 0.273307 0.092222 0.063635 0.002755 0.136654 0.100097 0.056868 0.067142 0.170817 0.066790 0.307471 +0.089741 +0.032332 0.044108 0.054760 0.050704 0.033043 0.167057 0.007201 0.030828 0.040915 0.072018 0.027215 0.042851 0.026051 0.011519 0.074443 0.054920 0.018229 0.080905 0.049591 0.045185 0.006726 0.273307 0.089578 0.009958 0.055214 0.307471 0.085178 0.049109 0.018450 0.204980 0.071246 0.341634 +0 +0.039950 0.049564 0.045990 0.044750 0.033412 0.068031 0.055547 0.014346 0.060848 0.059821 0.022432 0.080668 0.004306 0.065072 0.055968 0.034178 0.035023 0.055183 0.038012 0.042853 0.027296 0.239144 0.092552 0.009068 0.054347 0.273307 0.100427 0.021267 0.012290 0.170817 0.063136 0.307471 +0 +0.021044 0.060338 0.062128 0.076161 0.030728 0.053359 0.057050 0.043850 0.054800 0.097707 0.018145 0.523979 0.038289 0.019301 0.052119 0.063474 0.025610 0.065653 0.045705 0.024484 0.030987 0.204980 0.091022 0.030104 0.011690 0.204980 0.092744 0.040930 0.066592 0.204980 0.067254 0.239144 +0.537697 +0.013773 0.007700 0.097264 0.064178 0.044158 0.139052 0.019023 0.004921 0.044474 0.034736 0.045787 0.081689 0.002189 0.062895 0.079102 0.059866 0.038542 0.101611 0.049507 0.066907 0.057669 0.170817 0.086813 0.022797 0.009480 0.102490 0.074258 0.017555 0.029978 0.102490 0.098323 0.204980 +0.039102 +0.028643 0.028475 0.035833 0.134654 0.020573 0.041654 0.050497 0.035333 0.039691 0.041565 0.027765 0.038181 0.059914 0.057885 0.133246 0.045195 0.028359 0.169624 0.053395 0.056085 0.040444 0.170817 0.063978 0.013442 0.017872 0.170817 0.072698 0.047679 0.028381 0.170817 0.075046 0.204980 +0 +0.067827 0.060415 0.053849 0.037844 0.025981 0.099681 0.014161 0.067842 0.062736 0.049950 0.042633 0.249125 0.029551 0.019267 0.103150 0.079452 0.031036 0.058877 0.064567 0.040638 0.012212 0.102490 0.072026 0.009546 0.034867 0.102490 0.101256 0.017500 0.033099 0.273307 0.094783 0.307471 +0.024340 +0.045207 0.020275 0.047212 0.085620 0.025988 0.145486 0.041027 0.005314 0.151000 0.065120 0.048653 0.469552 0.011665 0.011162 0.046925 0.065944 0.042173 0.129996 0.056449 0.015976 0.044234 0.136654 0.094861 0.043333 0.027187 0.170817 0.065246 0.052610 0.025387 0.136654 0.096502 0.239144 +0.261882 +0.049497 0.042055 0.060070 0.067091 0.028371 0.095257 0.051893 0.048161 0.053423 0.036454 0.043709 0.067995 0.044043 0.023966 0.040165 0.040714 0.029893 0.137448 0.052276 0.002733 0.055197 0.239144 0.091960 0.022575 0.009114 0.239144 0.067153 0.004050 0.064650 0.204980 0.058729 0.307471 +0.003879 +0.028349 0.053231 0.084488 0.051627 0.025515 0.202297 0.042098 0.058157 0.036515 0.135791 0.030333 0.045257 0.061003 0.041875 0.041906 0.037309 0.021852 0.142631 0.059883 0.004104 0.001358 0.239144 0.094098 0.040697 0.004650 0.102490 0.056173 0.059680 0.030178 0.273307 0.055554 0.341634 +0 +0.039757 0.007114 0.044755 0.039805 0.036000 0.041257 0.022325 0.021151 0.093698 0.036873 0.032646 0.320230 0.041797 0.042512 0.034212 0.034951 0.036091 0.250233 0.046421 0.049888 0.032344 0.273307 0.100159 0.036410 0.061993 0.239144 0.085178 0.026012 0.016827 0.136654 0.079636 0.341634 +0.200178 +0.028354 0.027262 0.060132 0.040842 0.021722 0.108908 0.035383 0.065382 0.040445 0.037200 0.033441 0.193875 0.027394 0.068066 0.049795 0.034941 0.019199 0.097351 0.051029 0.048792 0.045554 0.204980 0.079035 0.043108 0.016637 0.102490 0.054624 0.014068 0.045628 0.170817 0.069713 0.307471 +0.065262 +0.067738 0.024396 0.073750 0.045329 0.048642 0.184130 0.014997 0.010721 0.040166 0.049844 0.024702 0.308553 0.047308 0.064144 0.064357 0.047109 0.027584 0.099113 0.053471 0.067931 0.026989 0.170817 0.053812 0.031833 0.044844 0.102490 0.055490 0.021247 0.029675 0.170817 0.076316 0.204980 +0.286405 +0.051183 0.040296 0.054315 0.116797 0.036592 0.081845 0.038893 0.012330 0.041366 0.130872 0.021218 0.037462 0.048848 0.046431 0.054946 0.047673 0.021070 0.070780 0.056734 0.045693 0.011005 0.170817 0.052520 0.044691 0.022969 0.170817 0.052766 0.026301 0.012936 0.102490 0.053606 0.204980 +0.020245 +0.040406 0.029044 0.079930 0.125938 0.018237 0.122152 0.067706 0.028642 0.127013 0.083602 0.018266 0.081993 0.026684 0.064434 0.092745 0.034897 0.033020 0.197478 0.063517 0.029586 0.044697 0.102490 0.096561 0.014780 0.008224 0.204980 0.090275 0.011104 0.029813 0.204980 0.066191 0.239144 +0.325673 +0.061537 0.028863 0.035243 0.046408 0.038829 0.066821 0.048161 0.013134 0.045129 0.068688 0.026837 0.107388 0.009749 0.010540 0.075586 0.051079 0.028564 0.200557 0.045411 0.030810 0.065675 0.136654 0.068144 0.010155 0.056028 0.307471 0.097886 0.067664 0.017109 0.273307 0.101820 0.341634 +0.082016 +0.062004 0.035716 0.053263 0.063539 0.018958 0.080202 0.027205 0.068067 0.051773 0.044269 0.018884 0.321888 0.035811 0.057790 0.064669 0.063418 0.032517 0.045004 0.046459 0.028588 0.065626 0.273307 0.091872 0.002868 0.065657 0.136654 0.057721 0.058247 0.029154 0.273307 0.059153 0.341634 +0.110244 +0.056874 0.043745 0.145707 0.039968 0.050917 0.108722 0.018978 0.065479 0.034680 0.078594 0.018048 0.043741 0.064097 0.020133 0.035837 0.044636 0.042679 0.140410 0.040717 0.018667 0.007602 0.170817 0.083176 0.018743 0.026188 0.204980 0.067693 0.049778 0.043066 0.204980 0.088786 0.239144 +0.060898 +0.057336 0.042011 0.074747 0.094922 0.031389 0.080144 0.033607 0.034795 0.037988 0.047909 0.042104 0.076414 0.030613 0.000208 0.069825 0.090272 0.047063 0.123785 0.047065 0.029648 0.006760 0.136654 0.070896 0.001156 0.038680 0.170817 0.099535 0.027789 0.022863 0.136654 0.075763 0.204980 +0.042091 +0.047443 0.022688 0.044112 0.060953 0.022589 0.056008 0.005047 0.059486 0.068458 0.073531 0.049807 0.181655 0.052434 0.046893 0.068410 0.082234 0.036952 0.075583 0.051530 0.003325 0.037079 0.102490 0.078800 0.020649 0.048763 0.102490 0.081892 0.027824 0.010141 0.136654 0.085829 0.204980 +0.007881 +0.013178 0.006460 0.048469 0.151184 0.044186 0.151285 0.018440 0.020168 0.182782 0.078756 0.017460 0.160661 0.066737 0.047430 0.051666 0.074803 0.048933 0.041693 0.052708 0.056341 0.025971 0.136654 0.059129 0.006948 0.034727 0.136654 0.078723 0.027266 0.010563 0.307471 0.060508 0.341634 +0.014109 +0.006956 0.018697 0.046942 0.041485 0.041439 0.125972 0.032468 0.031347 0.035891 0.138770 0.045154 0.135252 0.067860 0.056141 0.074356 0.102485 0.024542 0.159306 0.047772 0.019475 0.054279 0.136654 0.078108 0.016683 0.020198 0.170817 0.086109 0.064759 0.046311 0.170817 0.079550 0.204980 +0.149972 +0.038290 0.029604 0.063306 0.056519 0.035792 0.096300 0.053028 0.033347 0.178926 0.039960 0.022322 0.123402 0.044253 0.055416 0.073647 0.068411 0.049136 0.101692 0.055357 0.060873 0.052324 0.136654 0.100653 0.049438 0.065691 0.204980 0.070166 0.008889 0.012664 0.170817 0.077824 0.239144 +0.017555 +0.014771 0.056545 0.216134 0.127002 0.031694 0.456370 0.053236 0.042946 0.035038 0.125690 0.018161 0.110963 0.014570 0.016609 0.054990 0.101264 0.021039 0.167957 0.038922 0.031922 0.007587 0.136654 0.061398 0.044607 0.009959 0.136654 0.094054 0.060911 0.030938 0.102490 0.082678 0.239144 +0.008342 +0.067381 0.041894 0.054409 0.046889 0.037243 0.236742 0.038707 0.022294 0.104373 0.132142 0.017607 0.387021 0.058673 0.021258 0.074620 0.035235 0.045736 0.057624 0.046523 0.011656 0.040259 0.136654 0.074990 0.045297 0.047774 0.170817 0.088947 0.047873 0.030476 0.307471 0.062461 0.341634 +0.147412 +0.018567 0.065970 0.056249 0.084269 0.045760 0.056073 0.049902 0.000594 0.062779 0.061331 0.049087 0.290207 0.056487 0.046212 0.036627 0.039476 0.019724 0.444022 0.044556 0.009310 0.011803 0.102490 0.076793 0.004567 0.000157 0.170817 0.078582 0.038392 0.039158 0.273307 0.078849 0.341634 +0.707353 +0.045137 0.032000 0.041829 0.035818 0.041065 0.093539 0.026040 0.005698 0.121829 0.061332 0.037207 0.151142 0.029247 0.019722 0.073633 0.054648 0.038228 0.117706 0.061013 0.053709 0.054085 0.204980 0.096861 0.015313 0.058213 0.170817 0.069870 0.039925 0.025187 0.170817 0.054809 0.273307 +0.032716 +0.017533 0.023067 0.039334 0.035312 0.035406 0.125370 0.029491 0.066883 0.056568 0.055857 0.023602 0.133653 0.022837 0.049649 0.055240 0.110337 0.039657 0.060494 0.063326 0.056580 0.062850 0.102490 0.100228 0.066061 0.065778 0.102490 0.057216 0.034614 0.016342 0.136654 0.059774 0.307471 +0 +0.065076 0.003514 0.060288 0.040487 0.039198 0.152147 0.049585 0.010378 0.111558 0.064355 0.031004 0.154718 0.042852 0.060333 0.069966 0.059485 0.043077 0.070395 0.058878 0.040335 0.030760 0.204980 0.080128 0.007332 0.053381 0.170817 0.086556 0.022636 0.004571 0.136654 0.091665 0.273307 +0.002941 +0.040419 0.056479 0.071760 0.037541 0.026812 0.035073 0.059730 0.048871 0.137138 0.037692 0.039602 0.199793 0.048181 0.057455 0.039417 0.051663 0.039826 0.051843 0.055608 0.026793 0.002690 0.170817 0.079992 0.037089 0.025657 0.239144 0.099212 0.058702 0.049447 0.204980 0.095529 0.273307 +0.045499 +0.005166 0.052564 0.066875 0.034500 0.023455 0.051146 0.041134 0.004821 0.127274 0.046869 0.036710 0.094153 0.003482 0.062007 0.065363 0.109539 0.045394 0.275767 0.043852 0.010586 0.049101 0.102490 0.051259 0.059580 0.017892 0.102490 0.098179 0.009257 0.020478 0.273307 0.068376 0.307471 +0.315592 +0.038781 0.020319 0.047243 0.056296 0.037314 0.067899 0.056029 0.037126 0.038401 0.040682 0.021025 0.386725 0.051143 0.036959 0.063448 0.056926 0.025632 0.042572 0.062547 0.012204 0.020262 0.102490 0.081756 0.042769 0.027921 0.102490 0.087688 0.034499 0.004779 0.170817 0.091614 0.273307 +0.012046 +0.020433 0.011188 0.051146 0.166151 0.034486 0.119096 0.032934 0.019746 0.115587 0.048153 0.038798 0.103509 0.013238 0.016192 0.076065 0.160853 0.036327 0.043590 0.055595 0.062089 0.013452 0.204980 0.059008 0.021793 0.043289 0.136654 0.087798 0.034296 0.064800 0.239144 0.069894 0.273307 +0.001499 +0.045438 0.044961 0.134509 0.047510 0.019220 0.099492 0.034646 0.025823 0.038713 0.066336 0.029145 0.129308 0.045442 0.015093 0.073812 0.058720 0.039839 0.043823 0.053345 0.029277 0.011736 0.102490 0.085111 0.018033 0.011220 0.170817 0.060160 0.062551 0.024196 0.102490 0.054471 0.204980 +0.009125 +0.024719 0.022962 0.037859 0.054559 0.018929 0.140415 0.060261 0.058614 0.075833 0.043444 0.017113 0.094261 0.051184 0.055525 0.108291 0.081417 0.044627 0.080308 0.053830 0.044860 0.002171 0.170817 0.099879 0.032113 0.038296 0.273307 0.053599 0.051699 0.027427 0.239144 0.094691 0.307471 +0.010606 +0.067511 0.002626 0.069652 0.046342 0.030371 0.225885 0.023178 0.052861 0.100458 0.041592 0.018906 0.053190 0.052978 0.014735 0.091636 0.038646 0.043298 0.042606 0.054325 0.031578 0.053069 0.273307 0.064197 0.066597 0.016727 0.307471 0.078666 0.014176 0.058070 0.136654 0.098375 0.341634 +0.065943 +0.063171 0.051629 0.077740 0.081983 0.036863 0.192922 0.015447 0.009469 0.061520 0.037915 0.038858 0.164597 0.041793 0.029790 0.050055 0.094224 0.050433 0.064659 0.061756 0.059251 0.029326 0.136654 0.074407 0.032866 0.001665 0.102490 0.075163 0.018143 0.026127 0.239144 0.064958 0.307471 +0.014785 +0.002426 0.037339 0.057788 0.057521 0.037723 0.271331 0.044261 0.007262 0.156807 0.044103 0.023046 0.044121 0.028018 0.030454 0.037774 0.137873 0.025709 0.081149 0.052515 0.019463 0.012539 0.102490 0.061096 0.000483 0.044930 0.102490 0.078132 0.055278 0.023038 0.204980 0.090543 0.239144 +0.224071 +0.024586 0.060923 0.147559 0.077179 0.048704 0.143468 0.039860 0.064789 0.040755 0.085586 0.025262 0.083051 0.066650 0.060387 0.047470 0.038177 0.020598 0.087535 0.053683 0.021887 0.059355 0.102490 0.087449 0.051126 0.039257 0.204980 0.090439 0.006809 0.002554 0.102490 0.101346 0.239144 +0.066339 +0.036626 0.068121 0.050510 0.036731 0.024625 0.187922 0.031227 0.016270 0.074208 0.037702 0.020531 0.239233 0.004008 0.043416 0.073917 0.062729 0.033698 0.060630 0.042920 0.000058 0.032278 0.102490 0.076586 0.044062 0.043301 0.102490 0.085195 0.052571 0.012296 0.170817 0.088648 0.273307 +0.290331 +0.067659 0.063219 0.067582 0.066032 0.036057 0.071647 0.049951 0.052427 0.131017 0.034643 0.030582 0.301703 0.033374 0.057005 0.082123 0.084545 0.039499 0.054070 0.052738 0.041486 0.063883 0.136654 0.075295 0.035244 0.012641 0.136654 0.089243 0.005024 0.052654 0.273307 0.090788 0.307471 +0.380077 +0.029574 0.043315 0.054671 0.049878 0.047423 0.081421 0.027167 0.014133 0.095992 0.098650 0.036436 0.150014 0.004094 0.004402 0.044100 0.034873 0.036033 0.054540 0.049500 0.048532 0.034661 0.102490 0.099851 0.018606 0.001991 0.136654 0.052522 0.041737 0.051141 0.102490 0.054642 0.204980 +0.021709 +0.052528 0.065061 0.060904 0.044361 0.026462 0.184724 0.040211 0.030966 0.041252 0.085282 0.028636 0.044159 0.007254 0.057095 0.114517 0.093921 0.036304 0.175976 0.057759 0.066975 0.065723 0.170817 0.080745 0.048145 0.045268 0.170817 0.053452 0.012724 0.020290 0.170817 0.065968 0.204980 +0.174010 +0.027631 0.043028 0.100561 0.103282 0.050277 0.145663 0.012574 0.054706 0.070931 0.042950 0.040762 0.047319 0.060037 0.046138 0.070852 0.034951 0.035594 0.066522 0.056127 0.022961 0.017003 0.239144 0.072750 0.019234 0.012417 0.204980 0.090572 0.003361 0.052361 0.136654 0.099699 0.307471 +0.001631 +0.027903 0.033735 0.050096 0.057104 0.030011 0.059232 0.004015 0.049363 0.053398 0.052969 0.033376 0.039817 0.052379 0.022266 0.063772 0.084998 0.050487 0.320006 0.053134 0.015593 0.029811 0.102490 0.098790 0.036202 0.003267 0.204980 0.099805 0.011038 0.052464 0.204980 0.056603 0.307471 +0 +0.025886 0.026359 0.045932 0.068391 0.026574 0.171563 0.038976 0.006239 0.077589 0.050828 0.048114 0.054792 0.032946 0.007461 0.067291 0.247811 0.032944 0.197405 0.053677 0.044183 0.036093 0.204980 0.071333 0.001188 0.010254 0.239144 0.101545 0.033817 0.051016 0.136654 0.098639 0.273307 +0.168287 +0.001443 0.011158 0.054546 0.045110 0.044858 0.050504 0.032466 0.066549 0.052167 0.087547 0.043320 0.135142 0.028696 0.061053 0.040780 0.039614 0.026417 0.141432 0.048542 0.045965 0.027777 0.102490 0.051869 0.058021 0.021544 0.102490 0.078655 0.056465 0.062420 0.136654 0.071949 0.204980 +0.071313 +0.051023 0.041411 0.072605 0.035597 0.049848 0.083465 0.029595 0.065832 0.052352 0.071524 0.044749 0.147260 0.032747 0.036950 0.091194 0.061326 0.048903 0.047466 0.056729 0.007484 0.062608 0.273307 0.077968 0.037299 0.047680 0.273307 0.097194 0.068289 0.006934 0.239144 0.052337 0.341634 +0.007144 +0.035588 0.055658 0.088425 0.083102 0.048641 0.092659 0.051066 0.002980 0.036007 0.058941 0.035295 0.184489 0.052061 0.022096 0.045529 0.066635 0.045916 0.057949 0.052995 0.011586 0.037616 0.102490 0.083553 0.034907 0.037881 0.170817 0.068946 0.029490 0.056023 0.136654 0.086144 0.204980 +0.129211 +0.016605 0.028210 0.074855 0.080873 0.026077 0.083429 0.041325 0.002387 0.045913 0.053051 0.035369 0.074613 0.061282 0.020659 0.085082 0.053990 0.045105 0.138139 0.039902 0.058549 0.065553 0.102490 0.072794 0.062127 0.014487 0.102490 0.056628 0.032951 0.008717 0.170817 0.093408 0.204980 +0.036864 +0.057860 0.052010 0.046229 0.080719 0.022320 0.034873 0.007300 0.032738 0.090427 0.034807 0.025936 0.238141 0.041474 0.063583 0.041430 0.038083 0.028098 0.065626 0.052000 0.015003 0.006741 0.204980 0.081999 0.049068 0.003662 0.102490 0.098519 0.041178 0.036499 0.239144 0.092384 0.341634 +0.014517 +0.065687 0.023553 0.119723 0.054474 0.018260 0.070882 0.060695 0.062671 0.035751 0.039884 0.042348 0.046634 0.045663 0.054055 0.084109 0.062295 0.018981 0.080213 0.057881 0.020202 0.004809 0.170817 0.074926 0.043706 0.018305 0.102490 0.075791 0.005149 0.022564 0.170817 0.086699 0.204980 +0 +0.049316 0.046390 0.050626 0.063824 0.023536 0.034636 0.002676 0.057477 0.105652 0.073759 0.049929 0.171477 0.030585 0.019839 0.036285 0.097427 0.019192 0.171965 0.058000 0.056510 0.063839 0.136654 0.093317 0.062443 0.066603 0.239144 0.092096 0.018085 0.047115 0.239144 0.098079 0.273307 +0.082319 +0.051537 0.003264 0.049201 0.074225 0.031910 0.037658 0.046439 0.061523 0.061417 0.212391 0.049604 0.069792 0.011504 0.016753 0.064540 0.035623 0.040492 0.073828 0.048375 0.044678 0.026119 0.170817 0.070199 0.007889 0.060012 0.102490 0.099968 0.056750 0.034918 0.136654 0.091889 0.204980 +0 +0.031475 0.030474 0.040109 0.067456 0.029151 0.079926 0.029749 0.021832 0.079292 0.056569 0.046688 0.043158 0.007819 0.061542 0.038146 0.042910 0.019073 0.186202 0.047476 0.045210 0.010909 0.102490 0.058357 0.007883 0.031004 0.170817 0.092066 0.021403 0.028860 0.136654 0.099727 0.204980 +0.038947 +0.001012 0.029591 0.039003 0.099867 0.019275 0.439573 0.033777 0.043621 0.048951 0.087170 0.028548 0.098165 0.051068 0.056899 0.038582 0.067266 0.018411 0.055287 0.052879 0.005417 0.046831 0.136654 0.058399 0.024423 0.044194 0.170817 0.072632 0.065176 0.024500 0.204980 0.054814 0.239144 +0.637832 +0.052661 0.017361 0.073397 0.036251 0.046240 0.161248 0.035392 0.014917 0.069367 0.053240 0.046700 0.058017 0.006180 0.031772 0.038505 0.064478 0.048917 0.064183 0.051569 0.049180 0.008286 0.170817 0.092616 0.047829 0.060829 0.136654 0.056198 0.065585 0.019317 0.170817 0.054337 0.273307 +0 +0.067254 0.050786 0.089292 0.037204 0.033378 0.060129 0.021677 0.003629 0.043884 0.065081 0.032751 0.072586 0.060142 0.003841 0.055572 0.097003 0.031736 0.118792 0.047227 0.005915 0.057216 0.102490 0.073805 0.020195 0.034471 0.102490 0.052413 0.002172 0.041891 0.170817 0.077324 0.204980 +0.032550 +0.041102 0.017683 0.068386 0.054417 0.034338 0.180314 0.019033 0.006076 0.047375 0.063808 0.041419 0.165498 0.032124 0.024486 0.040648 0.057999 0.020167 0.071482 0.058309 0.013845 0.027158 0.102490 0.089896 0.038307 0.043180 0.136654 0.091123 0.059628 0.007551 0.170817 0.056396 0.307471 +0.007168 +0.020419 0.040453 0.042551 0.035982 0.051131 0.232469 0.033810 0.032874 0.039517 0.117431 0.023142 0.220855 0.058513 0.030074 0.047414 0.057549 0.021915 0.164530 0.050770 0.051567 0.029128 0.239144 0.052541 0.058586 0.007116 0.273307 0.081408 0.047130 0.053592 0.273307 0.078069 0.307471 +0.362424 +0.055437 0.043563 0.083850 0.049360 0.019577 0.043308 0.015224 0.036800 0.037530 0.045759 0.031502 0.074626 0.038348 0.033974 0.073496 0.087927 0.047487 0.090999 0.050724 0.055927 0.060165 0.136654 0.077361 0.027082 0.018532 0.204980 0.080431 0.017790 0.060831 0.102490 0.071317 0.307471 +0 +0.012422 0.022091 0.075020 0.131075 0.023296 0.041296 0.034370 0.020476 0.035993 0.085142 0.041851 0.086979 0.018093 0.037729 0.061219 0.039441 0.032680 0.061190 0.047058 0.067857 0.055704 0.273307 0.092624 0.006012 0.029491 0.239144 0.059112 0.014538 0.000564 0.170817 0.079626 0.307471 +0 +0.018130 0.032361 0.042502 0.078398 0.021029 0.231525 0.060008 0.006403 0.073259 0.098622 0.031043 0.122991 0.003303 0.055852 0.035340 0.041676 0.046816 0.081826 0.050455 0.046758 0.009938 0.102490 0.063185 0.062631 0.027062 0.136654 0.054244 0.036111 0.046403 0.136654 0.096421 0.204980 +0.121252 +0.061090 0.014306 0.049332 0.034484 0.045049 0.074333 0.058327 0.025171 0.085607 0.048912 0.032308 0.052077 0.025463 0.049230 0.038149 0.063305 0.024302 0.279379 0.039146 0.030565 0.007762 0.136654 0.082567 0.032814 0.043946 0.136654 0.066294 0.048065 0.065123 0.239144 0.070235 0.273307 +0.014188 +0.033240 0.000038 0.118336 0.048896 0.048280 0.123545 0.025178 0.042544 0.045987 0.039858 0.046838 0.095427 0.049967 0.040153 0.036127 0.078362 0.029078 0.041789 0.062777 0.066439 0.031341 0.307471 0.097028 0.047209 0.019364 0.273307 0.102109 0.000504 0.009064 0.307471 0.067911 0.341634 +0 +0.028452 0.054520 0.039312 0.048949 0.024672 0.131816 0.029222 0.054078 0.069626 0.051899 0.020938 0.056576 0.024187 0.055772 0.083341 0.063951 0.043572 0.037129 0.057525 0.048299 0.000366 0.170817 0.082182 0.011972 0.004052 0.136654 0.060903 0.048216 0.068140 0.102490 0.055518 0.273307 +0 +0.006632 0.022493 0.076443 0.087525 0.044840 0.140593 0.049888 0.052939 0.090176 0.048832 0.021703 0.092782 0.057375 0.065535 0.135683 0.054773 0.025793 0.064741 0.056850 0.017037 0.045461 0.102490 0.057020 0.063037 0.044974 0.170817 0.095803 0.056916 0.059724 0.136654 0.100266 0.204980 +0.250061 +0.053884 0.064687 0.075220 0.034234 0.037320 0.215276 0.015432 0.067865 0.042528 0.151117 0.043683 0.213252 0.036563 0.010432 0.049083 0.132511 0.043140 0.131625 0.047995 0.025968 0.068227 0.102490 0.096156 0.012468 0.026585 0.170817 0.074498 0.059777 0.065894 0.102490 0.060114 0.204980 +0.263896 +0.053512 0.061633 0.055588 0.045023 0.049065 0.113291 0.047816 0.052525 0.056470 0.053139 0.030473 0.039183 0.058662 0.026003 0.044075 0.045663 0.019667 0.037009 0.043411 0.062964 0.006203 0.102490 0.101913 0.012734 0.007423 0.239144 0.061992 0.065787 0.061529 0.102490 0.091612 0.273307 +0 +0.067393 0.014753 0.067355 0.087342 0.028756 0.094897 0.043282 0.000554 0.039575 0.068016 0.026527 0.205845 0.063371 0.063615 0.038406 0.047620 0.035414 0.429421 0.060842 0.059668 0.033160 0.239144 0.088293 0.011066 0.022235 0.204980 0.097679 0.024644 0.016035 0.204980 0.063922 0.341634 +0.572354 +0.035584 0.060649 0.080947 0.042230 0.035196 0.121948 0.034339 0.042081 0.040992 0.036363 0.035931 0.049813 0.020801 0.059736 0.039810 0.163386 0.024623 0.094870 0.061400 0.012530 0.040140 0.170817 0.083647 0.019321 0.036900 0.102490 0.083667 0.057061 0.041747 0.170817 0.079573 0.273307 +0 +0.026153 0.050255 0.075591 0.067210 0.021459 0.281416 0.041081 0.049123 0.157382 0.071655 0.024570 0.072536 0.032200 0.019983 0.070115 0.051228 0.021589 0.062620 0.065027 0.021697 0.033594 0.136654 0.053850 0.026979 0.027934 0.239144 0.081271 0.026964 0.057731 0.102490 0.089650 0.273307 +0.001468 +0.048771 0.028177 0.083163 0.045201 0.029645 0.072559 0.026333 0.064751 0.039147 0.073589 0.019953 0.057109 0.031064 0.034213 0.040894 0.040026 0.050277 0.181374 0.043972 0.063703 0.064333 0.170817 0.082800 0.047838 0.031995 0.102490 0.079015 0.005467 0.049293 0.136654 0.087335 0.204980 +0.002320 +0.021567 0.044186 0.043200 0.067685 0.047119 0.045757 0.000500 0.004794 0.036416 0.056030 0.043590 0.179477 0.064287 0.000634 0.037800 0.045136 0.019317 0.034810 0.048040 0.029447 0.015135 0.204980 0.093264 0.023555 0.022035 0.204980 0.087089 0.007614 0.030705 0.102490 0.091661 0.239144 +0.013705 +0.001530 0.028130 0.041126 0.063770 0.029875 0.097183 0.062555 0.049322 0.034513 0.063101 0.027745 0.131119 0.027537 0.034082 0.046900 0.062094 0.038831 0.093922 0.053788 0.042213 0.005934 0.307471 0.074643 0.060274 0.066998 0.239144 0.097593 0.046295 0.000593 0.170817 0.086666 0.341634 +0.017244 +0.038934 0.023321 0.066389 0.044432 0.026566 0.154754 0.030398 0.017872 0.042199 0.071207 0.044856 0.353282 0.043539 0.044610 0.056312 0.062655 0.047638 0.210062 0.053500 0.046678 0.064965 0.102490 0.101253 0.028154 0.036190 0.170817 0.086026 0.018222 0.012324 0.170817 0.081461 0.239144 +0.086632 +0.055658 0.039307 0.065140 0.041558 0.040704 0.127520 0.022595 0.009795 0.135608 0.041565 0.042504 0.052554 0.016513 0.008874 0.045630 0.096353 0.023483 0.281859 0.045782 0.051231 0.062305 0.170817 0.084173 0.044913 0.025166 0.239144 0.055972 0.048498 0.020524 0.239144 0.096822 0.307471 +0.249241 +0.047443 0.010679 0.075382 0.054244 0.035295 0.310516 0.068194 0.006873 0.055203 0.050479 0.032116 0.101197 0.064294 0.024467 0.039158 0.055738 0.041710 0.401050 0.044927 0.019328 0.050609 0.273307 0.093694 0.062997 0.054470 0.273307 0.052529 0.001270 0.002545 0.170817 0.092078 0.307471 +0.597121 +0.061994 0.002856 0.096919 0.051570 0.031250 0.209698 0.044491 0.050285 0.080787 0.066333 0.041749 0.051680 0.033926 0.029212 0.101863 0.057761 0.050592 0.426358 0.049139 0.016098 0.000551 0.170817 0.060826 0.033126 0.035230 0.136654 0.068606 0.009913 0.013602 0.170817 0.057879 0.204980 +0.671969 +0.039448 0.063982 0.184181 0.056220 0.019897 0.087564 0.019110 0.006719 0.043080 0.095317 0.029192 0.169266 0.033444 0.001653 0.071763 0.041354 0.022476 0.043150 0.053888 0.037806 0.015846 0.204980 0.066426 0.044534 0.031911 0.204980 0.087017 0.035702 0.051190 0.102490 0.062215 0.341634 +0 +0.005319 0.002819 0.037467 0.057531 0.036586 0.129223 0.019704 0.037610 0.045165 0.068352 0.046172 0.065568 0.047421 0.057111 0.050988 0.050620 0.040104 0.067411 0.060801 0.003524 0.008093 0.239144 0.094793 0.039119 0.018071 0.102490 0.062743 0.005207 0.026924 0.170817 0.085460 0.273307 +0.028939 +0.018922 0.004580 0.048366 0.095530 0.037778 0.158766 0.036769 0.050008 0.115909 0.064862 0.027711 0.345002 0.010182 0.024371 0.048534 0.052154 0.036373 0.157071 0.057868 0.019670 0.045356 0.239144 0.063196 0.050300 0.029350 0.136654 0.072070 0.063433 0.031155 0.204980 0.085036 0.273307 +0.065884 +0.055233 0.018744 0.041834 0.034814 0.038178 0.537942 0.026489 0.040506 0.084098 0.048428 0.027591 0.118182 0.019830 0.037304 0.095641 0.069601 0.030477 0.064981 0.064081 0.029200 0.037025 0.239144 0.083324 0.026598 0.011101 0.170817 0.084339 0.006707 0.018084 0.136654 0.067190 0.273307 +0.328272 +0.042524 0.044963 0.075934 0.056101 0.028701 0.069743 0.003384 0.051170 0.085705 0.211020 0.023015 0.065803 0.043137 0.064722 0.042389 0.113099 0.037561 0.054078 0.047794 0.049047 0.065097 0.102490 0.089658 0.010146 0.046089 0.136654 0.059505 0.062990 0.060371 0.136654 0.065734 0.204980 +0 +0.024757 0.053244 0.058753 0.139704 0.041532 0.055656 0.053504 0.026756 0.035529 0.133699 0.042134 0.043614 0.046677 0.050986 0.122044 0.069905 0.044313 0.067579 0.054229 0.065254 0.023292 0.136654 0.087121 0.026013 0.040648 0.170817 0.057370 0.044994 0.002763 0.136654 0.060067 0.204980 +0.002387 +0.027413 0.038958 0.075976 0.042044 0.050402 0.216128 0.031720 0.027427 0.055014 0.042624 0.046264 0.066530 0.020537 0.018556 0.064451 0.081710 0.040456 0.047258 0.044923 0.004024 0.019828 0.170817 0.059800 0.017478 0.016362 0.170817 0.096845 0.037334 0.040973 0.170817 0.059374 0.204980 +0.024532 +0.054473 0.057652 0.048189 0.157724 0.036461 0.103715 0.030364 0.047109 0.059039 0.043643 0.040970 0.307160 0.058359 0.047029 0.063584 0.063667 0.048493 0.122275 0.042896 0.065024 0.013606 0.170817 0.068919 0.010948 0.016978 0.170817 0.069188 0.027577 0.028674 0.239144 0.068029 0.307471 +0.120197 +0.054684 0.022665 0.079149 0.100534 0.037501 0.148666 0.038064 0.059936 0.110422 0.048893 0.048520 0.122112 0.020762 0.031521 0.035526 0.052242 0.031027 0.089134 0.062762 0.034695 0.015483 0.136654 0.090230 0.013006 0.045235 0.136654 0.069684 0.001455 0.038763 0.204980 0.102459 0.341634 +0 +0.059547 0.042138 0.036072 0.091653 0.049709 0.069946 0.067490 0.005592 0.074071 0.099136 0.034965 0.306632 0.019896 0.053450 0.058628 0.068112 0.046938 0.041631 0.047457 0.046624 0.009380 0.102490 0.065945 0.020628 0.055208 0.170817 0.076898 0.035486 0.005971 0.307471 0.053577 0.341634 +0.107720 +0.005395 0.040048 0.075475 0.083850 0.040918 0.084114 0.025909 0.055058 0.066483 0.045151 0.041900 0.085982 0.055274 0.035456 0.035013 0.040984 0.026238 0.097058 0.053654 0.017486 0.040295 0.136654 0.073201 0.065891 0.026786 0.273307 0.085297 0.054455 0.042081 0.102490 0.061364 0.307471 +0 +0.010368 0.002235 0.103107 0.043014 0.025307 0.059393 0.043697 0.032987 0.126466 0.035813 0.020553 0.165423 0.066075 0.051261 0.078854 0.069038 0.035174 0.370950 0.056757 0.038292 0.016771 0.170817 0.070371 0.028353 0.032096 0.307471 0.092418 0.059440 0.053428 0.136654 0.053615 0.341634 +0.027372 +0.060479 0.002889 0.060068 0.069238 0.028179 0.094691 0.067419 0.056141 0.066354 0.102063 0.023952 0.041819 0.008422 0.023546 0.042953 0.060215 0.048456 0.102419 0.065047 0.026617 0.016167 0.170817 0.093456 0.023383 0.009611 0.136654 0.096914 0.049213 0.009181 0.170817 0.076396 0.239144 +0.003528 +0.053794 0.062817 0.048296 0.037803 0.026158 0.096566 0.006416 0.012256 0.035259 0.044801 0.043501 0.074191 0.063817 0.024625 0.037641 0.056424 0.027383 0.141673 0.046105 0.066796 0.054475 0.239144 0.094661 0.049811 0.025523 0.102490 0.078586 0.043238 0.036730 0.102490 0.070420 0.273307 +0.001001 +0.020383 0.015487 0.036260 0.045681 0.038237 0.282727 0.037099 0.036901 0.044530 0.055486 0.046360 0.242063 0.010259 0.022471 0.037856 0.070077 0.037320 0.326293 0.040239 0.013178 0.055305 0.170817 0.095009 0.046817 0.047793 0.102490 0.052137 0.047728 0.001260 0.204980 0.063554 0.341634 +0.550125 +0.060071 0.017684 0.049073 0.093373 0.042182 0.424713 0.020957 0.011951 0.072985 0.044128 0.029810 0.045803 0.016085 0.040886 0.099011 0.070634 0.017998 0.132702 0.054766 0.065090 0.002403 0.239144 0.073785 0.052904 0.021117 0.102490 0.062232 0.037468 0.050558 0.170817 0.054647 0.341634 +0 +0.033841 0.004370 0.041762 0.128869 0.018063 0.173261 0.008921 0.035866 0.251421 0.040847 0.043359 0.044237 0.059647 0.061803 0.086679 0.042383 0.026317 0.044654 0.054374 0.020786 0.021381 0.170817 0.082052 0.002408 0.045551 0.170817 0.056034 0.040155 0.045393 0.170817 0.078349 0.273307 +0.004227 +0.016700 0.017262 0.043248 0.045206 0.038908 0.069749 0.028612 0.041261 0.075713 0.070318 0.019658 0.128465 0.060767 0.020614 0.098893 0.037821 0.045540 0.046583 0.056089 0.037133 0.027647 0.170817 0.055282 0.020935 0.002863 0.204980 0.097495 0.001172 0.035317 0.239144 0.058625 0.341634 +0 +0.056452 0.032647 0.036892 0.168989 0.017439 0.161047 0.033097 0.028102 0.036885 0.034833 0.025178 0.065622 0.065438 0.013067 0.048223 0.109154 0.017732 0.121727 0.051640 0.049955 0.048904 0.136654 0.061783 0.034148 0.032097 0.102490 0.074343 0.014160 0.031808 0.273307 0.087591 0.307471 +0.005635 +0.055663 0.016458 0.034489 0.050565 0.041202 0.093678 0.032041 0.066966 0.067934 0.048373 0.046066 0.077837 0.025881 0.041371 0.035486 0.063160 0.045027 0.072337 0.058257 0.026002 0.038672 0.102490 0.078840 0.046458 0.030436 0.136654 0.080360 0.067155 0.030262 0.307471 0.088559 0.341634 +0 +0.017889 0.020057 0.177561 0.100301 0.036658 0.296620 0.057585 0.066711 0.039477 0.038908 0.039546 0.056897 0.034119 0.051596 0.041458 0.038350 0.028005 0.097677 0.056828 0.017176 0.040059 0.102490 0.093004 0.066328 0.032664 0.204980 0.078003 0.057612 0.048451 0.136654 0.071719 0.307471 +0.008296 +0.004729 0.068188 0.045602 0.055246 0.022067 0.037284 0.016279 0.033002 0.072549 0.283346 0.045570 0.087754 0.043804 0.057447 0.044285 0.040095 0.031076 0.115666 0.047650 0.014935 0.000407 0.102490 0.051850 0.058322 0.005845 0.204980 0.072084 0.038218 0.067732 0.170817 0.060079 0.273307 +0 +0.020247 0.012828 0.074837 0.071376 0.044036 0.074248 0.041243 0.054164 0.050264 0.137322 0.022280 0.131128 0.011686 0.042183 0.048416 0.040169 0.041342 0.048071 0.057769 0.017119 0.046553 0.204980 0.086501 0.066587 0.053300 0.239144 0.072814 0.063961 0.004725 0.136654 0.076116 0.307471 +0 +0.017600 0.056768 0.133088 0.053137 0.017215 0.035157 0.041521 0.054409 0.040879 0.099766 0.041479 0.111032 0.062352 0.065721 0.153030 0.059326 0.050663 0.112836 0.057475 0.060302 0.041974 0.204980 0.066152 0.067611 0.013498 0.204980 0.087732 0.008764 0.041440 0.204980 0.079366 0.273307 +0.016487 +0.062421 0.001108 0.055289 0.048766 0.030294 0.334047 0.011140 0.028255 0.085025 0.059626 0.028097 0.050038 0.029416 0.002984 0.049171 0.061308 0.049221 0.151734 0.048009 0.026309 0.055754 0.307471 0.085769 0.022523 0.042033 0.204980 0.089578 0.026676 0.042125 0.102490 0.063536 0.341634 +0 +0.008596 0.021181 0.112358 0.040647 0.042130 0.072392 0.016684 0.055319 0.112097 0.037751 0.024687 0.044099 0.029379 0.029071 0.047140 0.042653 0.039062 0.542522 0.065242 0.036598 0.045729 0.273307 0.099814 0.051826 0.035149 0.239144 0.084678 0.026503 0.046548 0.273307 0.100645 0.341634 +0.055837 +0.056352 0.026497 0.087311 0.086804 0.046831 0.171903 0.054935 0.043348 0.059506 0.067559 0.039098 0.207348 0.026522 0.057195 0.075316 0.080155 0.043148 0.108273 0.054185 0.066863 0.001511 0.102490 0.102255 0.000485 0.050053 0.170817 0.084857 0.041206 0.036093 0.102490 0.102405 0.341634 +0 +0.054686 0.041160 0.042957 0.066174 0.031086 0.040000 0.026270 0.051504 0.042136 0.046039 0.017649 0.065937 0.018092 0.012583 0.075651 0.047830 0.020624 0.035310 0.046915 0.033648 0.058531 0.136654 0.079687 0.046715 0.066994 0.170817 0.088945 0.046112 0.044398 0.170817 0.069310 0.204980 +0 +0.046298 0.051850 0.046142 0.158287 0.029247 0.269462 0.057787 0.047352 0.164295 0.100923 0.036354 0.183288 0.028460 0.061182 0.049836 0.041368 0.034311 0.071528 0.053979 0.064477 0.051171 0.136654 0.056146 0.048144 0.001849 0.204980 0.074229 0.035966 0.052723 0.136654 0.101804 0.239144 +0.082566 +0.061740 0.051572 0.038557 0.071264 0.020291 0.165376 0.059624 0.040583 0.042548 0.049664 0.033177 0.121303 0.003067 0.007352 0.075829 0.045762 0.021801 0.083935 0.048191 0.004406 0.047194 0.239144 0.081509 0.067996 0.021739 0.170817 0.054099 0.022057 0.027100 0.204980 0.074588 0.341634 +0.045172 +0.056896 0.000770 0.083618 0.058451 0.034381 0.215047 0.010612 0.041275 0.036993 0.069372 0.023902 0.037836 0.003851 0.009153 0.039241 0.094583 0.044594 0.056076 0.048925 0.053786 0.036360 0.170817 0.069444 0.067270 0.049930 0.170817 0.078460 0.032901 0.001589 0.136654 0.100488 0.204980 +0.099782 +0.058357 0.052750 0.076174 0.164178 0.049992 0.257996 0.040433 0.017037 0.077593 0.036492 0.045762 0.071880 0.009217 0.031904 0.068415 0.081713 0.031683 0.049137 0.044733 0.031185 0.052544 0.239144 0.099107 0.058581 0.001106 0.102490 0.083753 0.002635 0.066144 0.239144 0.086509 0.273307 +0.001086 +0.054904 0.005434 0.035424 0.063271 0.026850 0.053342 0.014237 0.059740 0.113201 0.059410 0.035166 0.079573 0.043535 0.010350 0.049141 0.037514 0.040067 0.103634 0.051637 0.046034 0.021627 0.170817 0.097027 0.013568 0.058759 0.170817 0.090332 0.015059 0.003300 0.204980 0.090644 0.239144 +0.006787 +0.049337 0.063779 0.080690 0.097695 0.050782 0.071178 0.042843 0.002457 0.055817 0.047393 0.041486 0.202595 0.004573 0.001904 0.117313 0.040556 0.045149 0.073346 0.041694 0.039786 0.058819 0.102490 0.059856 0.033108 0.051153 0.102490 0.082611 0.047016 0.023738 0.102490 0.080498 0.273307 +0.034471 +0.022451 0.065753 0.036423 0.038091 0.033579 0.046034 0.067721 0.033577 0.075672 0.044690 0.027205 0.115179 0.028471 0.046683 0.045396 0.063091 0.018015 0.040013 0.051882 0.032164 0.038405 0.136654 0.100214 0.058914 0.042468 0.204980 0.073354 0.011254 0.039032 0.170817 0.068444 0.273307 +0.003646 +0.047765 0.055923 0.158705 0.037448 0.037667 0.424279 0.061357 0.045999 0.046749 0.065221 0.041626 0.042489 0.019927 0.008402 0.175748 0.085486 0.020585 0.267536 0.044942 0.031284 0.022064 0.239144 0.058543 0.056443 0.060213 0.204980 0.071939 0.013648 0.006204 0.204980 0.052253 0.273307 +0.278595 +0.029229 0.056402 0.044744 0.045758 0.020840 0.059006 0.030439 0.042796 0.041473 0.051465 0.048905 0.067815 0.022451 0.014193 0.109371 0.070093 0.049562 0.584568 0.057664 0.011705 0.046914 0.239144 0.069502 0.026796 0.024819 0.239144 0.078717 0.003521 0.029872 0.136654 0.078111 0.273307 +0.072212 +0.032229 0.033265 0.179495 0.046277 0.043426 0.110568 0.008804 0.030650 0.036535 0.134108 0.032410 0.256808 0.031886 0.051575 0.061904 0.051183 0.047327 0.132939 0.057028 0.057320 0.054564 0.102490 0.052637 0.053128 0.055817 0.136654 0.077414 0.018187 0.000625 0.136654 0.053785 0.307471 +0.268578 +0.008919 0.057202 0.039075 0.057072 0.021456 0.086537 0.055797 0.012752 0.040377 0.086598 0.041298 0.107655 0.056138 0.039193 0.036911 0.039218 0.034671 0.093981 0.059104 0.021113 0.004866 0.273307 0.092222 0.059580 0.017306 0.273307 0.059306 0.011205 0.046437 0.136654 0.095456 0.307471 +0.023104 +0.001447 0.015099 0.045264 0.102679 0.024741 0.067440 0.006683 0.032058 0.036372 0.144709 0.020890 0.165712 0.048746 0.026267 0.088494 0.069832 0.050921 0.091889 0.046952 0.018370 0.042853 0.170817 0.088136 0.058255 0.024050 0.170817 0.052355 0.029077 0.003038 0.136654 0.061288 0.239144 +0.049158 +0.062127 0.001482 0.062369 0.054380 0.021155 0.050868 0.001082 0.012919 0.090553 0.036375 0.022936 0.039560 0.066190 0.043731 0.042122 0.047997 0.045263 0.204205 0.050250 0.056250 0.004011 0.204980 0.056386 0.052701 0.047362 0.239144 0.057712 0.067939 0.063891 0.204980 0.057101 0.341634 +0.002190 +0.051943 0.028120 0.056343 0.050431 0.044679 0.036906 0.034877 0.016395 0.135246 0.102145 0.038550 0.073629 0.002709 0.046049 0.104812 0.041101 0.029574 0.091845 0.058545 0.060830 0.048387 0.204980 0.056684 0.021483 0.057686 0.239144 0.059711 0.010526 0.013312 0.170817 0.086579 0.273307 +0 +0.012767 0.058151 0.050573 0.044090 0.033269 0.409075 0.027216 0.009858 0.041014 0.052139 0.023118 0.065261 0.001454 0.024702 0.066736 0.060825 0.033481 0.046394 0.051788 0.036188 0.049250 0.170817 0.058671 0.063806 0.048258 0.239144 0.080017 0.022397 0.055068 0.273307 0.068092 0.307471 +0.315504 +0.012348 0.038170 0.081538 0.059186 0.038007 0.332717 0.032057 0.017242 0.116702 0.051267 0.049625 0.081210 0.049140 0.032578 0.035185 0.072827 0.024634 0.037168 0.059413 0.034754 0.009433 0.102490 0.074756 0.065203 0.029301 0.170817 0.079739 0.055987 0.030741 0.136654 0.065259 0.204980 +0.058126 +0.051524 0.036258 0.037921 0.135965 0.045292 0.182950 0.026519 0.048164 0.051747 0.041369 0.030983 0.142467 0.047806 0.056849 0.038296 0.047242 0.037500 0.050954 0.055042 0.017111 0.031783 0.136654 0.071393 0.054610 0.028131 0.239144 0.102238 0.007218 0.065828 0.102490 0.070317 0.273307 +0.106814 +0.068049 0.061922 0.056162 0.050492 0.042089 0.175517 0.031323 0.010306 0.046498 0.055920 0.031786 0.047782 0.060627 0.050934 0.097470 0.078578 0.039928 0.046440 0.045511 0.010882 0.017534 0.136654 0.079348 0.021870 0.030692 0.170817 0.062779 0.057169 0.028459 0.102490 0.081313 0.204980 +0 +0.019481 0.051906 0.215662 0.037423 0.023057 0.296645 0.067612 0.014151 0.190970 0.038025 0.027625 0.318602 0.003400 0.063293 0.076664 0.073637 0.046407 0.112699 0.038610 0.037126 0.059498 0.102490 0.094506 0.025300 0.061620 0.102490 0.102105 0.041400 0.007359 0.170817 0.064538 0.204980 +0.179137 +0.024026 0.028989 0.072670 0.050040 0.040793 0.053106 0.032601 0.032991 0.131763 0.060827 0.038625 0.091888 0.054457 0.000961 0.035803 0.074318 0.028546 0.072012 0.056250 0.034320 0.030508 0.102490 0.080291 0.008431 0.028088 0.136654 0.073275 0.025188 0.056764 0.170817 0.097293 0.307471 +0 +0.046889 0.052347 0.068637 0.042554 0.043569 0.208064 0.030470 0.025856 0.137512 0.069900 0.028045 0.070288 0.044612 0.023599 0.036786 0.042956 0.033036 0.037849 0.045532 0.065526 0.035424 0.239144 0.067291 0.064345 0.034480 0.102490 0.082640 0.029435 0.037537 0.204980 0.060226 0.273307 +0.006738 +0.046297 0.051193 0.144424 0.038632 0.033790 0.085806 0.059055 0.018537 0.035914 0.103816 0.037990 0.157541 0.046000 0.051564 0.055144 0.076052 0.020387 0.042856 0.065022 0.018386 0.062890 0.204980 0.055408 0.035164 0.027933 0.170817 0.078213 0.067733 0.033911 0.204980 0.079580 0.307471 +0.011416 +0.015087 0.040522 0.113565 0.110576 0.018423 0.083670 0.050426 0.008597 0.048309 0.093736 0.039400 0.068793 0.066035 0.000778 0.069467 0.089831 0.041934 0.064085 0.047933 0.006996 0.051020 0.273307 0.099385 0.000673 0.045628 0.102490 0.079607 0.063012 0.051427 0.204980 0.061840 0.341634 +0 +0.059242 0.046575 0.042933 0.042399 0.024891 0.043652 0.064355 0.016646 0.044883 0.147854 0.046859 0.153379 0.043324 0.039973 0.064754 0.037846 0.036732 0.054330 0.062434 0.002214 0.005660 0.136654 0.075625 0.012868 0.063374 0.239144 0.053501 0.042909 0.057842 0.102490 0.099900 0.341634 +0.004921 +0.051165 0.015475 0.074225 0.105339 0.047454 0.143690 0.038010 0.051150 0.067114 0.042926 0.023930 0.042395 0.049757 0.048791 0.036994 0.036552 0.021962 0.219920 0.048213 0.061830 0.044664 0.170817 0.065611 0.025769 0.056363 0.170817 0.080025 0.004029 0.025305 0.170817 0.085947 0.204980 +0.247215 +0.038259 0.037714 0.067568 0.041945 0.048027 0.066414 0.013292 0.063073 0.074244 0.100309 0.042063 0.235523 0.038037 0.024641 0.058185 0.038795 0.034821 0.046631 0.041224 0.037410 0.060024 0.102490 0.071135 0.027057 0.012178 0.102490 0.072619 0.061993 0.008173 0.170817 0.059334 0.341634 +0.073453 +0.000908 0.048644 0.048373 0.056186 0.034658 0.165748 0.024290 0.015259 0.070239 0.109710 0.019137 0.104875 0.039154 0.062122 0.037307 0.147489 0.020647 0.035286 0.045417 0.022513 0.067841 0.136654 0.082779 0.031583 0.043626 0.239144 0.085863 0.018510 0.049843 0.204980 0.086580 0.341634 +0 +0.051503 0.033000 0.044325 0.085563 0.051071 0.178168 0.057010 0.057223 0.034411 0.070781 0.032777 0.148860 0.041737 0.027584 0.074003 0.034524 0.033489 0.071989 0.057941 0.017819 0.039596 0.102490 0.089166 0.066110 0.033885 0.204980 0.061807 0.064367 0.067048 0.239144 0.058393 0.273307 +0.026327 +0.049193 0.002987 0.062982 0.057868 0.025890 0.119812 0.040971 0.011982 0.192225 0.041702 0.042634 0.038279 0.061267 0.037120 0.081213 0.050763 0.025047 0.202656 0.054271 0.065955 0.049531 0.136654 0.089568 0.011749 0.027190 0.136654 0.054497 0.014889 0.014258 0.239144 0.098813 0.273307 +0.011028 +0.057960 0.062275 0.066690 0.126096 0.048506 0.067332 0.015801 0.064967 0.095526 0.046123 0.029269 0.054834 0.041644 0.062879 0.038427 0.048847 0.018304 0.150017 0.054674 0.049417 0.002836 0.102490 0.101264 0.006697 0.053977 0.273307 0.053088 0.030408 0.057369 0.170817 0.093980 0.307471 +0.034712 +0.002539 0.029768 0.048939 0.114874 0.046439 0.144420 0.062933 0.037397 0.042088 0.124919 0.020003 0.050067 0.046902 0.002939 0.044242 0.081003 0.030651 0.034897 0.048671 0.039906 0.052244 0.102490 0.068347 0.060526 0.027278 0.136654 0.059690 0.011752 0.025277 0.136654 0.068743 0.204980 +0 +0.041196 0.022059 0.107509 0.057658 0.040472 0.156853 0.001043 0.044348 0.035247 0.069050 0.043403 0.105529 0.051999 0.032014 0.058372 0.124350 0.023621 0.073062 0.045488 0.033751 0.000571 0.136654 0.065552 0.048639 0.015161 0.170817 0.099581 0.005119 0.012257 0.136654 0.073786 0.307471 +0 +0.023146 0.023979 0.051769 0.048845 0.041885 0.319034 0.043325 0.036320 0.065942 0.114743 0.037651 0.060387 0.017021 0.003385 0.089774 0.038814 0.028188 0.061297 0.065325 0.006712 0.066977 0.239144 0.087769 0.040286 0.006576 0.239144 0.069320 0.055993 0.051317 0.102490 0.080762 0.307471 +0.003329 +0.062410 0.048395 0.048063 0.073691 0.042385 0.057321 0.009736 0.042846 0.083720 0.075911 0.033881 0.111147 0.035440 0.021047 0.038320 0.105993 0.030317 0.142201 0.052279 0.049245 0.047302 0.136654 0.093653 0.047234 0.040043 0.204980 0.092743 0.015882 0.015033 0.204980 0.068557 0.239144 +0.066764 +0.017255 0.049556 0.073521 0.079149 0.041571 0.290985 0.015540 0.025803 0.075649 0.061556 0.047012 0.249213 0.013595 0.055258 0.050529 0.061788 0.045704 0.065035 0.046407 0.067707 0.007491 0.307471 0.098933 0.046979 0.016298 0.239144 0.081828 0.042925 0.032888 0.204980 0.092658 0.341634 +0.068544 +0.003803 0.049433 0.065677 0.116605 0.020407 0.058285 0.035688 0.039221 0.138825 0.089714 0.044035 0.294191 0.067015 0.011185 0.049596 0.047688 0.037673 0.215898 0.042755 0.028706 0.057540 0.136654 0.099495 0.003771 0.004092 0.102490 0.066536 0.019736 0.036323 0.239144 0.074217 0.273307 +0.152166 +0.023164 0.032334 0.088554 0.101677 0.042706 0.035687 0.064657 0.067464 0.039549 0.047607 0.024227 0.191880 0.039720 0.027624 0.052422 0.133020 0.046626 0.260018 0.052778 0.020327 0.027915 0.204980 0.074493 0.042048 0.041853 0.239144 0.072097 0.031313 0.032927 0.239144 0.097738 0.341634 +0.243628 +0.065390 0.009100 0.070189 0.036303 0.042564 0.102992 0.032342 0.024407 0.050420 0.038356 0.042363 0.063972 0.003456 0.037874 0.121691 0.095662 0.046094 0.211460 0.049654 0.013391 0.053005 0.136654 0.056145 0.066941 0.004416 0.204980 0.092466 0.044526 0.010686 0.204980 0.065786 0.239144 +0.228376 +0.008002 0.012991 0.040873 0.058510 0.027067 0.082133 0.037808 0.007122 0.050603 0.043612 0.024617 0.142771 0.029880 0.009287 0.035748 0.120290 0.025853 0.133490 0.049984 0.003757 0.043922 0.239144 0.059910 0.026194 0.015813 0.102490 0.094077 0.064545 0.057847 0.102490 0.097202 0.341634 +0.009066 +0.059277 0.022385 0.085279 0.088824 0.039434 0.093227 0.043109 0.024686 0.047039 0.038663 0.031692 0.101653 0.060515 0.009303 0.085832 0.135608 0.019494 0.064475 0.049477 0.021474 0.003557 0.273307 0.079758 0.017568 0.058619 0.307471 0.065958 0.010406 0.010373 0.136654 0.066126 0.341634 +0.006219 +0.067365 0.036420 0.111437 0.099646 0.050724 0.053347 0.043802 0.035188 0.071057 0.083916 0.033704 0.052555 0.007759 0.013445 0.067923 0.079959 0.038546 0.094761 0.048675 0.053585 0.035898 0.170817 0.052329 0.057764 0.042920 0.102490 0.051319 0.043474 0.000938 0.170817 0.058197 0.204980 +0 +0.008452 0.004132 0.041241 0.104564 0.022835 0.070809 0.023680 0.010274 0.072445 0.082062 0.033647 0.048926 0.021278 0.015218 0.068098 0.046166 0.040942 0.132212 0.042256 0.001441 0.047901 0.170817 0.058112 0.009864 0.039257 0.170817 0.057000 0.054508 0.045157 0.204980 0.066325 0.239144 +0.003832 +0.032433 0.024761 0.117371 0.047274 0.043091 0.207623 0.004594 0.032265 0.108160 0.066127 0.041313 0.065635 0.058456 0.025356 0.068637 0.035601 0.017374 0.100683 0.050429 0.043252 0.003436 0.204980 0.089216 0.032053 0.048056 0.239144 0.089334 0.015657 0.039517 0.239144 0.075929 0.273307 +0.122328 +0.056160 0.037991 0.133643 0.059633 0.040677 0.096847 0.057386 0.008041 0.049230 0.054502 0.036118 0.065875 0.004987 0.008995 0.141285 0.055476 0.026164 0.175969 0.048278 0.023053 0.058258 0.170817 0.052294 0.006257 0.064338 0.102490 0.087383 0.008555 0.051417 0.204980 0.068681 0.239144 +0.037287 +0.026459 0.036385 0.076192 0.044130 0.032434 0.158621 0.064619 0.010685 0.052619 0.070321 0.027254 0.258237 0.004380 0.030791 0.093474 0.086202 0.018430 0.078940 0.050251 0.047838 0.026280 0.136654 0.102029 0.032122 0.045850 0.170817 0.055134 0.000874 0.027157 0.170817 0.096654 0.307471 +0.230352 +0.022907 0.034209 0.047370 0.035338 0.044960 0.153654 0.004507 0.044363 0.067721 0.039255 0.029489 0.090667 0.004789 0.038263 0.083323 0.044233 0.022280 0.333778 0.046911 0.035274 0.051047 0.239144 0.053244 0.029285 0.010827 0.170817 0.059215 0.004710 0.065563 0.204980 0.080589 0.341634 +0.409315 +0.040725 0.060846 0.054144 0.050247 0.032791 0.134884 0.058687 0.048026 0.037781 0.080570 0.026599 0.371755 0.000930 0.002435 0.058758 0.054694 0.025021 0.269404 0.067001 0.056325 0.010482 0.136654 0.073443 0.059791 0.042686 0.102490 0.080782 0.007633 0.024122 0.170817 0.065213 0.204980 +0.458950 +0.024243 0.061897 0.066059 0.162611 0.041457 0.112042 0.007318 0.043779 0.042248 0.035807 0.038346 0.054082 0.009234 0.058103 0.104331 0.065669 0.044334 0.371929 0.041726 0.017666 0.045008 0.170817 0.059480 0.019914 0.013476 0.204980 0.083660 0.044505 0.039269 0.170817 0.060926 0.239144 +0.304737 +0.032322 0.014336 0.122646 0.147880 0.047591 0.101730 0.016239 0.012009 0.050196 0.048657 0.037684 0.051149 0.045379 0.012667 0.067147 0.124286 0.036649 0.136800 0.050578 0.061131 0.031720 0.170817 0.088385 0.048878 0.013809 0.102490 0.093400 0.023303 0.026633 0.204980 0.070563 0.239144 +0.038708 +0.026241 0.015513 0.063889 0.060384 0.041593 0.157078 0.064104 0.015145 0.122848 0.078768 0.048159 0.068898 0.066704 0.034650 0.035763 0.073863 0.032198 0.080513 0.050328 0.045943 0.020185 0.204980 0.085850 0.032632 0.030399 0.204980 0.086919 0.045119 0.036777 0.136654 0.053550 0.341634 +0 +0.029944 0.036050 0.034547 0.046101 0.033266 0.037070 0.006870 0.054870 0.068006 0.110627 0.018713 0.084126 0.045123 0.027675 0.043550 0.045681 0.018891 0.038769 0.064345 0.066791 0.031208 0.102490 0.096071 0.014679 0.039895 0.170817 0.082200 0.011479 0.034841 0.136654 0.075556 0.204980 +0.003935 +0.008756 0.062451 0.215520 0.057494 0.033101 0.085405 0.007877 0.025415 0.058324 0.045343 0.024858 0.103904 0.011079 0.015248 0.064532 0.068672 0.043415 0.042700 0.047221 0.008741 0.027275 0.170817 0.074869 0.051086 0.061947 0.136654 0.081608 0.002550 0.028588 0.102490 0.081573 0.307471 +0.002865 +0.003065 0.011731 0.107827 0.104147 0.045655 0.062322 0.034291 0.017940 0.062650 0.080742 0.036200 0.186936 0.010250 0.063873 0.067092 0.095340 0.044003 0.124440 0.043076 0.023881 0.037587 0.204980 0.069548 0.010275 0.042138 0.170817 0.088624 0.056098 0.045990 0.170817 0.072217 0.273307 +0.020661 +0.008095 0.041454 0.100195 0.060748 0.019632 0.068102 0.065870 0.068310 0.114063 0.171967 0.021540 0.042096 0.007574 0.044774 0.059233 0.071363 0.022493 0.218204 0.061645 0.019971 0.061039 0.102490 0.099090 0.021813 0.040538 0.102490 0.080019 0.000852 0.046978 0.102490 0.072149 0.204980 +0.035293 +0.057609 0.013031 0.088535 0.047921 0.049192 0.200516 0.058268 0.014428 0.124352 0.107971 0.048807 0.422244 0.032702 0.065546 0.045368 0.118872 0.031494 0.168785 0.057806 0.065593 0.048195 0.102490 0.097315 0.066669 0.026549 0.170817 0.088145 0.014670 0.014126 0.102490 0.056060 0.341634 +0.202738 +0.032946 0.054530 0.036508 0.038283 0.028219 0.058948 0.038176 0.041391 0.157456 0.044961 0.047537 0.329024 0.026850 0.062836 0.034602 0.040735 0.038603 0.113455 0.045887 0.029945 0.030633 0.102490 0.062557 0.018018 0.010181 0.170817 0.053117 0.033334 0.011028 0.170817 0.056536 0.341634 +0.288121 +0.016768 0.027047 0.046571 0.072385 0.044390 0.081925 0.019157 0.022178 0.059944 0.060489 0.019594 0.487712 0.029769 0.035946 0.078149 0.034556 0.038781 0.042107 0.059830 0.054152 0.039607 0.204980 0.074636 0.040595 0.002115 0.136654 0.102190 0.066794 0.014917 0.136654 0.076869 0.341634 +0.271172 +0.005096 0.042662 0.095074 0.078971 0.049982 0.121283 0.006935 0.033778 0.075079 0.036970 0.035629 0.053077 0.034873 0.004986 0.078364 0.042443 0.041650 0.370569 0.055861 0.062721 0.033591 0.136654 0.083731 0.056211 0.002981 0.170817 0.064028 0.058803 0.027815 0.170817 0.061352 0.204980 +0.142873 +0.000471 0.001113 0.040713 0.079003 0.032113 0.088008 0.041096 0.045728 0.036007 0.126387 0.044890 0.247610 0.029054 0.045404 0.073587 0.082431 0.035748 0.113243 0.043719 0.053130 0.001119 0.239144 0.095937 0.018710 0.037333 0.204980 0.064767 0.017821 0.058116 0.170817 0.056631 0.341634 +0.011607 +0.051828 0.057138 0.057848 0.040512 0.049540 0.195284 0.056093 0.055161 0.068832 0.111050 0.027299 0.075003 0.062719 0.040690 0.088280 0.047257 0.022422 0.120206 0.059425 0.067537 0.039809 0.204980 0.064001 0.062733 0.056948 0.273307 0.094186 0.019567 0.022073 0.273307 0.062449 0.307471 +0.313200 +0.018577 0.030907 0.076170 0.058754 0.043199 0.072022 0.034536 0.042647 0.057533 0.048242 0.027387 0.106003 0.017967 0.061096 0.076464 0.041802 0.043927 0.073416 0.063116 0.039737 0.054770 0.204980 0.058919 0.018262 0.027262 0.204980 0.055527 0.045857 0.007103 0.170817 0.076187 0.273307 +0.016031 +0.056377 0.035717 0.087795 0.125746 0.034448 0.034833 0.047712 0.058159 0.055798 0.038128 0.029077 0.086470 0.020522 0.038409 0.070641 0.093447 0.018758 0.173581 0.047340 0.051278 0.060203 0.136654 0.094485 0.003765 0.009303 0.136654 0.078739 0.038376 0.001376 0.136654 0.053840 0.273307 +0.010006 +0.001563 0.021216 0.067695 0.091739 0.028485 0.077755 0.021083 0.047394 0.084562 0.038204 0.040031 0.070052 0.020070 0.029431 0.072609 0.124155 0.039725 0.038191 0.053917 0.001681 0.028550 0.102490 0.059765 0.062960 0.053819 0.102490 0.057565 0.025354 0.024442 0.204980 0.101423 0.341634 +0 +0.010893 0.038120 0.071949 0.053286 0.032412 0.190936 0.036494 0.010099 0.079536 0.069912 0.027008 0.232853 0.053180 0.063457 0.076336 0.035343 0.042312 0.329957 0.045180 0.033551 0.015686 0.102490 0.101414 0.062848 0.047044 0.273307 0.089467 0.025722 0.016656 0.273307 0.058014 0.307471 +0.458903 +0.038127 0.057023 0.103672 0.045733 0.037178 0.155851 0.037890 0.008850 0.054322 0.041051 0.029052 0.157623 0.030088 0.053772 0.049192 0.041421 0.023003 0.044262 0.054981 0.062483 0.030055 0.170817 0.099020 0.042212 0.023070 0.102490 0.089627 0.026000 0.051520 0.239144 0.093609 0.307471 +0.001950 +0.028273 0.051392 0.063700 0.144977 0.036098 0.073889 0.051506 0.031209 0.049690 0.169329 0.040666 0.053211 0.037690 0.020054 0.063538 0.055042 0.029206 0.260816 0.051893 0.031991 0.027866 0.102490 0.075269 0.001088 0.024314 0.239144 0.086507 0.001034 0.057133 0.239144 0.077261 0.341634 +0 +0.042065 0.024384 0.038165 0.109075 0.049381 0.045099 0.006567 0.043810 0.042379 0.067909 0.050674 0.071471 0.001961 0.009001 0.064104 0.035358 0.030047 0.261906 0.047100 0.050592 0.050944 0.239144 0.087345 0.015630 0.034297 0.204980 0.060365 0.065104 0.037189 0.102490 0.066934 0.307471 +0.013718 +0.035835 0.029536 0.043543 0.056818 0.028738 0.533627 0.040054 0.010684 0.040625 0.083369 0.034155 0.421614 0.005569 0.013564 0.064522 0.092444 0.040766 0.043005 0.044386 0.007696 0.014799 0.204980 0.071227 0.040610 0.010991 0.170817 0.066881 0.060402 0.025155 0.204980 0.075106 0.273307 +0.298979 +0.012202 0.023759 0.102184 0.105537 0.036911 0.210203 0.049065 0.066128 0.043828 0.056839 0.030230 0.054329 0.055279 0.034162 0.146477 0.106534 0.046387 0.235787 0.040679 0.004675 0.010018 0.170817 0.071862 0.029021 0.066102 0.136654 0.072402 0.053663 0.023717 0.102490 0.088804 0.204980 +0.264910 +0.029707 0.047938 0.112319 0.113110 0.045611 0.105086 0.032520 0.040200 0.083383 0.040530 0.025342 0.044267 0.047050 0.023230 0.129064 0.042284 0.049987 0.354885 0.058657 0.010716 0.026076 0.136654 0.073100 0.025126 0.033726 0.170817 0.086728 0.000360 0.029819 0.102490 0.067747 0.341634 +0 +0.037882 0.007790 0.049166 0.046930 0.021758 0.080514 0.018201 0.059880 0.088845 0.044387 0.024761 0.052804 0.011645 0.022219 0.063520 0.066104 0.026080 0.085881 0.047603 0.016912 0.059121 0.204980 0.056579 0.054846 0.006173 0.102490 0.052392 0.060646 0.032100 0.170817 0.074803 0.239144 +0.002528 +0.019207 0.063731 0.055617 0.086396 0.039577 0.070130 0.010457 0.026503 0.043341 0.050992 0.042973 0.073620 0.001977 0.014779 0.066469 0.228448 0.018412 0.097517 0.047962 0.048528 0.041008 0.273307 0.086342 0.012703 0.064090 0.136654 0.064171 0.001405 0.043234 0.307471 0.074320 0.341634 +0.005583 +0.050223 0.031595 0.039242 0.038340 0.017955 0.034921 0.060777 0.044014 0.084372 0.046723 0.035392 0.105157 0.023515 0.000492 0.050947 0.051712 0.023866 0.261164 0.048108 0.023075 0.065330 0.136654 0.077018 0.007297 0.003488 0.170817 0.091963 0.042146 0.057160 0.136654 0.070901 0.204980 +0.080460 +0.056910 0.044080 0.075768 0.058656 0.035686 0.182015 0.014915 0.066728 0.039715 0.044947 0.041766 0.045821 0.005003 0.014447 0.131914 0.035510 0.041068 0.096050 0.061326 0.057226 0.012810 0.239144 0.074731 0.002595 0.008640 0.204980 0.083201 0.006938 0.026936 0.102490 0.087193 0.307471 +0 +0.005635 0.053281 0.036797 0.042506 0.043352 0.502328 0.029661 0.036409 0.056734 0.073865 0.033336 0.185773 0.026014 0.055444 0.035450 0.038576 0.048948 0.055870 0.048447 0.002167 0.046631 0.239144 0.085648 0.012455 0.026976 0.102490 0.057555 0.025433 0.027831 0.307471 0.054162 0.341634 +0.775184 +0.042358 0.014014 0.104303 0.051217 0.045869 0.180864 0.018012 0.057951 0.036100 0.043800 0.043327 0.196988 0.062706 0.036146 0.129034 0.085653 0.037274 0.471856 0.061106 0.000940 0.056292 0.170817 0.068012 0.046482 0.030639 0.170817 0.056077 0.023641 0.031487 0.136654 0.101101 0.239144 +0.180958 +0.003873 0.015067 0.148580 0.044935 0.018497 0.236321 0.039700 0.013408 0.071938 0.045230 0.017111 0.308622 0.041394 0.041445 0.114729 0.142295 0.036958 0.049018 0.055896 0.003940 0.066812 0.136654 0.061602 0.032694 0.051198 0.102490 0.052679 0.033190 0.063663 0.136654 0.083273 0.273307 +0.545380 +0.030844 0.054480 0.060408 0.038327 0.049507 0.090110 0.002895 0.021936 0.034306 0.042312 0.021886 0.733476 0.035470 0.040147 0.040270 0.048263 0.034921 0.396594 0.060675 0.017446 0.016465 0.102490 0.072709 0.034383 0.045293 0.102490 0.066121 0.046613 0.032311 0.170817 0.093688 0.204980 +0.938437 +0.054047 0.008367 0.070572 0.042143 0.036274 0.125535 0.049961 0.048238 0.057687 0.038137 0.022822 0.081472 0.013997 0.016749 0.133650 0.138134 0.048698 0.090842 0.058614 0.015105 0.061786 0.170817 0.069099 0.035884 0.041307 0.170817 0.051806 0.011770 0.031066 0.239144 0.074348 0.273307 +0.019692 +0.007793 0.020856 0.079117 0.089750 0.028460 0.109154 0.005738 0.064755 0.038497 0.041209 0.032265 0.090861 0.024286 0.018692 0.038921 0.037282 0.049427 0.117116 0.047508 0.019594 0.051845 0.136654 0.068083 0.024381 0.015720 0.204980 0.066256 0.003081 0.006400 0.136654 0.091230 0.273307 +0.045872 +0.066626 0.005662 0.077668 0.047079 0.028580 0.039835 0.030028 0.054550 0.088039 0.086015 0.029522 0.070096 0.030091 0.066469 0.041026 0.063551 0.047459 0.100432 0.051836 0.005224 0.026759 0.170817 0.092410 0.011674 0.063959 0.136654 0.060881 0.050941 0.036849 0.102490 0.088311 0.204980 +0.018320 +0.032000 0.017418 0.126943 0.082977 0.035544 0.209086 0.037881 0.024423 0.070682 0.062126 0.024438 0.326893 0.039309 0.023141 0.034998 0.037902 0.025824 0.210158 0.057321 0.043462 0.028122 0.204980 0.086667 0.008451 0.018857 0.204980 0.096513 0.060020 0.023997 0.204980 0.087302 0.239144 +0.201424 +0.011612 0.049230 0.036006 0.079493 0.029800 0.061955 0.010888 0.049004 0.044188 0.212014 0.048233 0.188003 0.042895 0.050509 0.106301 0.053074 0.035358 0.078882 0.039984 0.012071 0.029160 0.136654 0.087485 0.006237 0.056161 0.136654 0.072468 0.064074 0.044518 0.170817 0.065964 0.204980 +0.037473 +0.021277 0.034495 0.052278 0.038235 0.026251 0.060361 0.065825 0.058416 0.084603 0.040420 0.031153 0.077334 0.055059 0.062632 0.052317 0.100692 0.041962 0.460823 0.051218 0.009123 0.065180 0.170817 0.066981 0.044438 0.047809 0.102490 0.068366 0.055052 0.002217 0.170817 0.054374 0.204980 +0.013999 diff --git a/lib/ann/fann/datasets/building.test b/lib/ann/fann/datasets/building.test new file mode 100644 index 0000000..30f6b1e --- /dev/null +++ b/lib/ann/fann/datasets/building.test @@ -0,0 +1,4209 @@ +2104 14 3 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.819000 0.649100 0.515047 0.518215 +0.875141 0.598953 0.246073 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.991500 0.694000 0.921604 0.539464 +0.466839 0.817801 0.120419 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.700000 0.548000 0.505943 0.575893 +0.539107 0.472252 0.497383 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.608696 0 0.808000 0.633320 0.539198 0.619821 +0.708651 0.529843 0.481675 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.217391 1 0.718500 0.558000 0.505991 0.614465 +0.469785 0.495288 0.544502 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.725000 0.586060 0.508443 0.637679 +0.406543 0.529843 0.701571 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.565217 0 0.912500 0.618000 0.929245 0.614821 +0.843107 0.725655 0.104712 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.742500 0.560000 0.505377 0.520357 +0.419186 0.506807 0.607331 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.434783 1 0.758500 0.664000 0.574764 0.565714 +0.787382 0.610471 0.465969 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.752000 0.584000 0.596981 0.573035 +0.541871 0.437697 0.418848 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.759500 0.634000 0.505472 0.594107 +0.506595 0.495288 0.497383 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.840000 0.764000 0.627830 0.676965 +0.837960 0.598953 0.246073 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.844000 0.676000 0.505189 0.541250 +0.449286 0.633508 0.167539 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.731500 0.580000 0.505472 0.605000 +0.452039 0.495288 0.764398 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.777500 0.654000 0.505519 0.592857 +0.476856 0.541362 0.513089 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.391304 1 0.833500 0.780000 0.533679 0.597322 +0.813091 0.702618 0.261781 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.829500 0.772000 0.505047 0.595715 +0.471444 0.552880 0.230367 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.913500 0.710000 0.825802 0.616250 +0.876640 0.702618 0.136125 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 0.043478 1 0.764000 0.612880 0.505377 0.641428 +0.451773 0.552880 0.591623 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.846500 0.720000 0.505000 0.599643 +0.522797 0.541362 0.057592 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.347826 1 0.776000 0.632000 0.506603 0.754107 +0.530537 0.552880 0.623037 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.217391 1 0.717000 0.546000 0.505896 0.577322 +0.505616 0.483770 0.371727 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.713500 0.575920 0.507783 0.565893 +0.356902 0.460733 0.717277 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.826087 0 0.739500 0.578000 0.505424 0.611965 +0.477919 0.529843 0.591623 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.864000 0.732000 0.561321 0.605178 +0.576608 0.529843 0.057592 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.695652 0 0.812000 0.730000 0.527689 0.690535 +0.832049 0.598953 0.403142 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.846500 0.776000 0.505000 0.709285 +0.567815 0.656545 0.308900 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.599000 0.520000 0.506557 0.763393 +0.446437 0.357068 0.905760 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.565217 0 0.855000 0.702000 0.827878 0.611428 +0.805999 0.702618 0.293194 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.704500 0.568000 0.505943 0.630357 +0.576150 0.403142 0.591623 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.892500 0.886000 0.504717 0.581250 +0.451838 0.794765 0.089006 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.980500 0.700000 0.516415 0.585715 +0.408394 0.794765 0.120419 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.478261 1 0.770000 0.674000 0.609528 0.631786 +0.810657 0.645027 0.575917 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.805000 0.614000 0.504906 0.633572 +0.424661 0.633508 0.654450 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.717000 0.534000 0.518255 0.598393 +0.384259 0.426178 0.701571 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.794500 0.572000 0.505424 0.612500 +0.445778 0.518325 0.293194 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.842500 0.800000 0.535613 0.707678 +0.814176 0.691100 0.308900 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.478261 1 0.771500 0.590000 0.803962 0.737321 +0.871813 0.598953 0.387435 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.913043 0 0.752000 0.522000 0.505283 0.678928 +0.572673 0.575917 0.685864 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.785000 0.570000 0.505189 0.634822 +0.464511 0.575917 0.544502 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.869565 0 0.781500 0.562000 0.505519 0.675000 +0.625516 0.587435 0.418848 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.913043 0 0.914000 0.564000 0.504858 0.540536 +0.638552 0.598953 0.136125 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.895000 0.932000 0.530000 0.557143 +0.375009 0.817801 0.136125 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.521739 0 0.725500 0.554000 0.815708 0.602143 +0.494781 0.426178 0.465969 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.521739 0 0.912500 0.716000 0.808774 0.707322 +0.897066 0.737173 0.136125 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.347826 1 0.817500 0.713240 0.518490 0.561607 +0.624889 0.541362 0.324608 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.710000 0.600000 0.505754 0.773393 +0.616350 0.460733 0.481675 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.739130 0 0.938500 0.660000 0.670754 0.650893 +0.819821 0.794765 0.089006 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.761500 0.564000 0.505519 0.530357 +0.543074 0.437697 0.528796 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.739130 0 0.948000 0.602000 0.756604 0.611607 +0.825138 0.760210 0.089006 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.736500 0.512000 0.505802 0.546072 +0.596904 0.403142 0.544502 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.887000 0.704000 0.509953 0.624107 +0.526328 0.633508 0.277487 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.894500 0.632000 0.597170 0.656071 +0.549655 0.633508 0.104712 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.659500 0.516000 0.544056 0.576964 +0.489475 0.380105 0.795812 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.826087 0 0.794000 0.558000 0.531273 0.720000 +0.661762 0.575917 0.403142 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.826087 0 0.846000 0.702000 0.504906 0.579464 +0.699826 0.564398 0.308900 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.776500 0.650000 0.505566 0.592143 +0.515322 0.541362 0.387435 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.565217 0 0.839000 0.770000 0.628302 0.594107 +0.875301 0.598953 0.214660 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.695652 0 0.905500 0.552000 0.856132 0.666250 +0.866284 0.691100 0.136125 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.565217 0 0.924000 0.602000 0.918868 0.650178 +0.861181 0.725655 0.120419 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.803500 0.680300 0.505000 0.576964 +0.447307 0.541362 0.497383 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.478261 1 0.826000 0.768000 0.605377 0.560714 +0.848529 0.587435 0.246073 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.913043 0 0.628000 0.530000 0.506274 0.767143 +0.474154 0.391623 0.827225 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.935000 0.740000 0.642547 0.675179 +0.883892 0.783246 0.136125 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.890000 0.670000 0.505754 0.588215 +0.523287 0.656545 0.120419 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.846000 0.786000 0.583161 0.647322 +0.876471 0.610471 0.198952 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.722000 0.575320 0.505472 0.582857 +0.402791 0.483770 0.717277 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.823500 0.624000 0.666273 0.671250 +0.498863 0.506807 0.418848 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 1 0 0.743500 0.616000 0.505472 0.642143 +0.551270 0.575917 0.654450 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.755000 0.520000 0.505236 0.603215 +0.584167 0.541362 0.732985 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.865000 0.544000 0.577830 0.643929 +0.496706 0.598953 0.214660 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.721000 0.610000 0.612877 0.563393 +0.355540 0.483770 0.638744 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.695652 0 0.909500 0.636000 0.704953 0.638393 +0.889985 0.725655 0.151833 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.754500 0.614160 0.505236 0.644107 +0.333267 0.495288 0.560210 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.695652 0 0.877000 0.660000 0.699198 0.738928 +0.837854 0.702618 0.324608 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.764000 0.595220 0.610094 0.582322 +0.790955 0.564398 0.481675 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.723500 0.577320 0.538161 0.594822 +0.427788 0.472252 0.701571 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.434783 1 0.833500 0.600000 0.689623 0.628572 +0.833750 0.633508 0.214660 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.585500 0.514000 0.595472 0.765715 +0.465947 0.334032 0.921466 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0 1 0.816500 0.686000 0.505236 0.601429 +0.478514 0.587435 0.277487 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.684000 0.562000 0.595944 0.748214 +0.838323 0.437697 0.607331 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.846000 0.682000 0.767359 0.616786 +0.512335 0.598953 0.356021 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.887000 0.726000 0.681226 0.702500 +0.882914 0.771728 0.198952 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.738000 0.558000 0.595707 0.518929 +0.902435 0.483770 0.434556 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.900000 0.680000 0.569575 0.592143 +0.560680 0.598953 0.261781 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.608500 0.514000 0.506557 0.773929 +0.515408 0.322513 0.764398 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.826087 0 0.843000 0.802000 0.504717 0.640893 +0.568548 0.725655 0.324608 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0 1 0.871000 0.862000 0.504906 0.637500 +0.562956 0.691100 0.167539 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.932500 0.856000 0.776793 0.677321 +0.792199 0.909948 0.089006 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.639500 0.524000 0.514906 0.567679 +0.307547 0.287958 0.827225 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.900000 0.648000 0.855754 0.699821 +0.541064 0.587435 0.230367 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 0.043478 1 0.700000 0.538000 0.505943 0.648393 +0.539320 0.414660 0.623037 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.478261 1 0.740000 0.586000 0.550708 0.602143 +0.660868 0.460733 0.701571 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.086957 1 0.697500 0.538000 0.505991 0.630535 +0.524499 0.391623 0.623037 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.888000 0.512000 0.872642 0.676607 +0.848104 0.645027 0.183246 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.913043 0 0.874000 0.680000 0.504906 0.597500 +0.602498 0.702618 0.136125 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.947500 0.616000 0.531368 0.565535 +0.653192 0.737173 0.120419 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.860500 0.827740 0.504575 0.580893 +0.422004 0.748691 0.403142 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.217391 1 0.652000 0.530000 0.506462 0.504821 +0.527529 0.368587 0.717277 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.831500 0.770000 0.505141 0.587322 +0.471731 0.564398 0.230367 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.824000 0.736000 0.545425 0.528750 +0.715307 0.656545 0.214660 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.806500 0.574000 0.505236 0.625179 +0.517482 0.529843 0.246073 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.744500 0.524000 0.505519 0.720000 +0.420855 0.529843 0.748691 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.739130 0 0.848500 0.608000 0.550377 0.641964 +0.791093 0.691100 0.418848 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.794500 0.602000 0.505283 0.648750 +0.497557 0.529843 0.371727 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.918000 0.676000 0.504764 0.515535 +0.547869 0.702618 0.136125 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.871000 0.750000 0.504953 0.568393 +0.457728 0.679581 0.198952 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.902000 0.702000 0.504906 0.551607 +0.477111 0.679581 0.167539 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.864000 0.744000 0.505000 0.547500 +0.453603 0.679581 0.183246 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.130435 1 0.775000 0.604000 0.505472 0.533750 +0.487253 0.506807 0.434556 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.478261 1 0.795000 0.682000 0.736037 0.647678 +0.683994 0.552880 0.418848 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 1 0 0.737500 0.526000 0.505283 0.603571 +0.513920 0.506807 0.701571 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.652174 0 0.836500 0.602000 0.842170 0.761428 +0.888326 0.621990 0.167539 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.565217 0 0.821500 0.606000 0.755141 0.564465 +0.712286 0.541362 0.497383 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.733000 0.562000 0.505472 0.532143 +0.416603 0.495288 0.607331 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.875000 0.816000 0.504906 0.572321 +0.487689 0.737173 0.120419 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0 1 0.874000 0.874000 0.504906 0.606250 +0.496568 0.714137 0.246073 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.695000 0.562580 0.505660 0.632143 +0.450434 0.472252 0.827225 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.695652 0 0.949000 0.530000 0.814292 0.629286 +0.883339 0.679581 0.151833 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.796000 0.692000 0.595236 0.636072 +0.425034 0.598953 0.340314 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.347826 1 0.771000 0.632000 0.519387 0.571965 +0.631088 0.529843 0.450262 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.804500 0.562000 0.818915 0.571607 +0.818992 0.633508 0.497383 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.882500 0.840000 0.504858 0.623393 +0.526721 0.714137 0.246073 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.217391 1 0.810500 0.714000 0.505047 0.687500 +0.459174 0.610471 0.293194 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.714500 0.594000 0.505754 0.531429 +0.555630 0.414660 0.513089 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.478261 1 0.786000 0.627140 0.531698 0.632679 +0.697784 0.518325 0.513089 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.608696 0 0.784500 0.622000 0.605519 0.689465 +0.870804 0.518325 0.340314 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.840000 0.796000 0.526321 0.577500 +0.445629 0.656545 0.198952 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.173913 1 0.880500 0.732000 0.504906 0.535178 +0.445352 0.656545 0.151833 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.779000 0.626000 0.784387 0.742679 +0.514324 0.564398 0.560210 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.789000 0.638640 0.507641 0.611786 +0.314649 0.495288 0.607331 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.875500 0.740000 0.525141 0.560179 +0.512027 0.564398 0.277487 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.721000 0.514000 0.505943 0.526607 +0.517300 0.391623 0.607331 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.906000 0.856000 0.504623 0.584285 +0.501703 0.817801 0.073298 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.565217 0 0.917500 0.592000 0.889812 0.558572 +0.858619 0.691100 0.136125 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.304348 1 0.833500 0.686000 0.505236 0.603393 +0.515026 0.598953 0.340314 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.619000 0.514000 0.506509 0.779822 +0.520246 0.345550 0.748691 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.914000 0.824000 0.504717 0.507857 +0.411074 0.783246 0.151833 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.869565 0 0.793500 0.578000 0.505283 0.511250 +0.345951 0.460733 0.575917 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.800500 0.622000 0.505424 0.622500 +0.410053 0.529843 0.324608 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.696500 0.576000 0.505991 0.599285 +0.466191 0.437697 0.607331 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.608696 0 0.912000 0.724000 0.798679 0.690714 +0.890814 0.598953 0.120419 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.980500 0.698000 0.654292 0.645178 +0.657594 0.886911 0.057592 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.217391 1 0.873500 0.874000 0.504906 0.546429 +0.458069 0.725655 0.198952 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.744500 0.589980 0.522170 0.626072 +0.449892 0.564398 0.685864 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.956522 0 0.946500 0.706000 0.504481 0.641071 +0.555248 0.806283 0.073298 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.869565 0 0.702000 0.566000 0.505896 0.559286 +0.430073 0.403142 0.717277 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.347826 1 0.806500 0.700000 0.513302 0.696428 +0.586655 0.518325 0.308900 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.086957 1 0.776500 0.638620 0.505141 0.651071 +0.450827 0.506807 0.481675 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.725500 0.577140 0.544859 0.634822 +0.447840 0.518325 0.685864 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.926500 0.614000 0.714622 0.685714 +0.833857 0.633508 0.073298 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.739130 0 0.856500 0.538000 0.605519 0.617321 +0.672936 0.564398 0.403142 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.304348 1 0.731500 0.570000 0.505754 0.591607 +0.525222 0.449215 0.513089 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.804500 0.580000 0.764812 0.658215 +0.859639 0.587435 0.528796 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0 1 0.749000 0.540000 0.505566 0.649285 +0.595660 0.552880 0.340314 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.663500 0.514000 0.506179 0.568393 +0.424639 0.426178 0.811519 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.843000 0.670000 0.505189 0.592143 +0.460663 0.575917 0.261781 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.780500 0.579900 0.505141 0.590715 +0.552069 0.541362 0.497383 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.724500 0.564000 0.505708 0.588750 +0.490294 0.449215 0.623037 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.875500 0.672000 0.738821 0.591071 +0.497503 0.564398 0.230367 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.748500 0.566000 0.505519 0.646964 +0.546519 0.437697 0.544502 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 1 0 0.780500 0.666000 0.505377 0.634107 +0.622082 0.529843 0.403142 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.130435 1 0.856000 0.696000 0.505141 0.538929 +0.443013 0.656545 0.136125 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.391304 1 0.843500 0.796000 0.518255 0.606429 +0.798461 0.714137 0.261781 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.781500 0.597420 0.632877 0.601429 +0.798131 0.656545 0.544502 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0 1 0.847500 0.718000 0.505047 0.580893 +0.572036 0.679581 0.246073 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0 1 0.872000 0.630000 0.504953 0.648215 +0.541830 0.610471 0.183246 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.728000 0.566000 0.734198 0.816250 +0.794421 0.472252 0.560210 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.217391 1 0.661000 0.544000 0.506179 0.547143 +0.509284 0.368587 0.685864 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.347826 1 0.734500 0.570000 0.512500 0.531429 +0.484596 0.518325 0.732985 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.863500 0.760000 0.626934 0.630000 +0.556438 0.679581 0.277487 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.933000 0.658000 0.504670 0.548928 +0.641804 0.737173 0.104712 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.304348 1 0.871000 0.868000 0.504906 0.613928 +0.512845 0.737173 0.183246 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.782500 0.576000 0.505047 0.629465 +0.481534 0.518325 0.575917 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.876500 0.864000 0.508680 0.548036 +0.606856 0.702618 0.120419 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 0.043478 1 0.811000 0.682200 0.505189 0.523571 +0.569824 0.529843 0.340314 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.478261 1 0.826500 0.768000 0.555566 0.674821 +0.763248 0.656545 0.387435 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.869565 0 0.835000 0.668960 0.504764 0.631607 +0.480513 0.506807 0.418848 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.750000 0.552000 0.505377 0.682321 +0.340433 0.310995 0.654450 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.782609 0 0.885500 0.552000 0.512736 0.716785 +0.738314 0.679581 0.120419 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.826087 0 0.741000 0.522000 0.505566 0.611607 +0.715689 0.506807 0.497383 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.750500 0.568000 0.505424 0.586964 +0.432976 0.460733 0.670158 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.782609 0 0.661000 0.542000 0.507358 0.794107 +0.488082 0.357068 0.795812 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.658000 0.548000 0.506179 0.743393 +0.636531 0.414660 0.701571 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.921000 0.622000 0.755661 0.635357 +0.517227 0.702618 0.183246 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.724500 0.575340 0.542642 0.589822 +0.435772 0.483770 0.701571 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.944000 0.750000 0.504434 0.623572 +0.462725 0.771728 0.104712 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.736500 0.514000 0.505424 0.564107 +0.501075 0.552880 0.717277 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.924500 0.826000 0.753774 0.631072 +0.857056 0.817801 0.104712 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 1 0 0.659000 0.566000 0.506085 0.612321 +0.521235 0.368587 0.780106 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.217391 1 0.767000 0.640000 0.505283 0.640000 +0.512888 0.541362 0.434556 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.709500 0.590000 0.607783 0.605178 +0.453676 0.414660 0.481675 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.739130 0 0.912500 0.632000 0.622406 0.624465 +0.861298 0.714137 0.151833 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.913043 0 0.739500 0.562000 0.505708 0.562321 +0.497865 0.437697 0.497383 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.704500 0.528000 0.505519 0.645357 +0.437505 0.495288 0.732985 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.652174 0 0.747500 0.614000 0.576132 0.662143 +0.835239 0.598953 0.591623 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.956522 0 0.830000 0.776000 0.504858 0.643750 +0.527199 0.668063 0.371727 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.858500 0.824000 0.504953 0.689643 +0.442077 0.679581 0.308900 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.874500 0.878000 0.624057 0.663393 +0.802513 0.817801 0.371727 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.831000 0.778000 0.505141 0.558572 +0.471943 0.541362 0.230367 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 1 0 0.822500 0.673900 0.504623 0.665178 +0.545742 0.645027 0.418848 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0 1 0.912500 0.834000 0.504575 0.589464 +0.505701 0.806283 0.089006 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.304348 1 0.718500 0.588000 0.505708 0.590357 +0.409064 0.414660 0.732985 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.565217 0 0.831000 0.612000 0.617028 0.534464 +0.875163 0.656545 0.340314 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 0.043478 1 0.832000 0.590000 0.505236 0.588929 +0.495961 0.552880 0.246073 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.812500 0.688180 0.505000 0.610357 +0.349991 0.506807 0.465969 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.897000 0.718000 0.504906 0.576429 +0.466330 0.679581 0.151833 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.716000 0.554420 0.505519 0.598929 +0.434412 0.483770 0.748691 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.783500 0.690000 0.526887 0.705178 +0.740249 0.645027 0.403142 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.880500 0.686000 0.504906 0.652500 +0.452581 0.645027 0.183246 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.929500 0.592000 0.585849 0.644822 +0.646197 0.748691 0.089006 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.260870 1 0.717000 0.528000 0.505802 0.677678 +0.504776 0.449215 0.607331 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.895000 0.670000 0.624953 0.594285 +0.892323 0.679581 0.198952 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.936500 0.822000 0.781368 0.574821 +0.779387 0.806283 0.073298 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.786500 0.558000 0.565896 0.599107 +0.478536 0.598953 0.528796 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.814000 0.600000 0.504953 0.643750 +0.441789 0.645027 0.607331 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 1 0 0.713500 0.598000 0.505754 0.536607 +0.678199 0.426178 0.497383 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0 1 0.654000 0.548000 0.506179 0.569107 +0.493218 0.357068 0.685864 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.811500 0.678000 0.504953 0.675714 +0.527593 0.668063 0.450262 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.217391 1 0.806000 0.604000 0.505377 0.528215 +0.454920 0.529843 0.293194 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.836500 0.738000 0.505141 0.595715 +0.460874 0.621990 0.198952 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.086957 1 0.674500 0.556480 0.505991 0.623035 +0.487158 0.391623 0.764398 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.869565 0 0.922000 0.602000 0.507123 0.565535 +0.607176 0.691100 0.089006 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.731500 0.534000 0.505566 0.689643 +0.464766 0.529843 0.732985 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.547000 0.516000 0.507264 0.655357 +0.411180 0.149738 0.685864 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.521739 0 0.890500 0.776000 0.776793 0.686250 +0.890026 0.598953 0.136125 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.260870 1 0.712500 0.542000 0.505802 0.546072 +0.510942 0.437697 0.528796 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.260870 1 0.848000 0.814000 0.504953 0.612500 +0.502416 0.610471 0.214660 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.792500 0.680000 0.619905 0.578393 +0.459918 0.552880 0.403142 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.836500 0.708000 0.508915 0.552500 +0.376593 0.495288 0.450262 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.173913 1 0.815500 0.592000 0.505283 0.608572 +0.461300 0.541362 0.261781 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.521739 0 0.874000 0.580000 0.861321 0.624286 +0.883935 0.679581 0.183246 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.962500 0.732000 0.504481 0.575893 +0.442608 0.783246 0.136125 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.347826 1 0.787500 0.675640 0.510661 0.605178 +0.617616 0.541362 0.371727 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.565217 0 0.664000 0.570000 0.566132 0.682857 +0.724598 0.380105 0.717277 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.956522 0 0.736500 0.556000 0.505566 0.737679 +0.661272 0.518325 0.528796 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.347826 1 0.654500 0.570000 0.507547 0.559821 +0.529442 0.391623 0.858639 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.739130 0 0.825000 0.546000 0.540944 0.545714 +0.877066 0.610471 0.261781 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.823500 0.764000 0.505000 0.654643 +0.467211 0.564398 0.308900 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 0.043478 1 0.744000 0.528000 0.505283 0.796965 +0.476547 0.564398 0.701571 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.781500 0.618000 0.731179 0.750000 +0.518938 0.564398 0.638744 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.826087 0 0.864000 0.692520 0.504906 0.601607 +0.706332 0.598953 0.136125 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.801500 0.534000 0.510661 0.633035 +0.779717 0.529843 0.371727 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.837500 0.674000 0.505189 0.657857 +0.458749 0.598953 0.293194 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.754000 0.576000 0.675471 0.558572 +0.762768 0.564398 0.607331 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.086957 1 0.862500 0.686000 0.505047 0.544285 +0.446096 0.621990 0.136125 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.956522 0 0.864500 0.570000 0.505000 0.569821 +0.616106 0.575917 0.167539 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.859000 0.793540 0.504575 0.548572 +0.448275 0.668063 0.418848 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 0.043478 1 0.892500 0.696000 0.504858 0.606429 +0.502766 0.668063 0.136125 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.725500 0.574600 0.529293 0.638750 +0.451806 0.518325 0.717277 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.565217 0 0.765000 0.540000 0.802122 0.733572 +0.865423 0.541362 0.324608 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.750500 0.568000 0.505377 0.581964 +0.384961 0.460733 0.685864 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.903500 0.912000 0.504717 0.605357 +0.389522 0.840838 0.104712 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.217391 1 0.885000 0.896000 0.504670 0.563572 +0.455389 0.794765 0.120419 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.217391 1 0.849000 0.706000 0.505189 0.511428 +0.431317 0.645027 0.136125 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.086957 1 0.874000 0.828000 0.504670 0.691250 +0.534334 0.518325 0.136125 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.861500 0.580000 0.504953 0.585000 +0.507828 0.541362 0.214660 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.744000 0.539300 0.505377 0.544643 +0.410722 0.472252 0.623037 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.778000 0.642580 0.529858 0.668929 +0.866561 0.679581 0.356021 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.740500 0.596000 0.594576 0.649285 +0.454825 0.449215 0.450262 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.846500 0.682000 0.811792 0.528929 +0.511273 0.621990 0.230367 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.850000 0.618000 0.676415 0.794643 +0.492559 0.541362 0.214660 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.790500 0.632200 0.524717 0.607322 +0.315160 0.472252 0.623037 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.086957 1 0.884000 0.730000 0.504906 0.575893 +0.478886 0.668063 0.151833 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.688500 0.508000 0.505991 0.575893 +0.338539 0.287958 0.780106 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.724500 0.572000 0.505566 0.628750 +0.359241 0.483770 0.811519 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.712000 0.554000 0.505566 0.678750 +0.438887 0.529843 0.748691 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.831500 0.780000 0.506509 0.650893 +0.491039 0.541362 0.073298 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.086957 1 0.821500 0.586000 0.505283 0.592322 +0.478737 0.552880 0.230367 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.903500 0.846000 0.504906 0.517857 +0.438494 0.783246 0.151833 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0 1 0.761000 0.577320 0.505519 0.624643 +0.573621 0.552880 0.418848 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.695652 0 0.783000 0.590740 0.524575 0.826429 +0.796058 0.598953 0.371727 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.754000 0.562900 0.571321 0.613036 +0.467329 0.460733 0.623037 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.894000 0.906000 0.600896 0.571965 +0.752413 0.829320 0.104712 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.695652 0 0.808000 0.576000 0.573726 0.585000 +0.387395 0.483770 0.544502 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.869565 0 0.775000 0.600000 0.505236 0.621786 +0.549910 0.449215 0.465969 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0 1 0.772500 0.662000 0.505047 0.649285 +0.512771 0.552880 0.654450 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.938500 0.656000 0.807405 0.594643 +0.872196 0.702618 0.120419 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.835000 0.742000 0.546321 0.560893 +0.765034 0.691100 0.261781 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.866000 0.577720 0.721227 0.733929 +0.509783 0.564398 0.230367 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.957000 0.754000 0.504481 0.618393 +0.418251 0.806283 0.120419 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.815000 0.526000 0.666981 0.645893 +0.893589 0.541362 0.356021 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.582500 0.514000 0.506981 0.572679 +0.303103 0.253403 0.937173 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.814000 0.740000 0.564764 0.570179 +0.461088 0.518325 0.418848 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.780000 0.548000 0.683066 0.645535 +0.419186 0.506807 0.685864 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.826087 0 0.753000 0.586000 0.505377 0.572321 +0.492006 0.495288 0.717277 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.848500 0.796000 0.565330 0.568214 +0.500768 0.656545 0.293194 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.585500 0.516000 0.515613 0.628750 +0.284411 0.241885 0.937173 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0 1 0.835500 0.574000 0.505141 0.566072 +0.524350 0.552880 0.151833 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.695652 0 0.810000 0.570000 0.791746 0.768036 +0.904210 0.633508 0.308900 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.173913 1 0.733000 0.546000 0.505519 0.646250 +0.332820 0.322513 0.607331 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.652174 0 0.810500 0.570000 0.702641 0.595893 +0.396507 0.472252 0.528796 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.391304 1 0.804500 0.698000 0.521934 0.728572 +0.770381 0.552880 0.293194 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.750500 0.506000 0.506934 0.575357 +0.595746 0.426178 0.465969 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.691000 0.560000 0.661887 0.767857 +0.831124 0.472252 0.591623 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.629500 0.514000 0.506462 0.763750 +0.533196 0.345550 0.732985 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 1 0 0.882500 0.624000 0.504906 0.617500 +0.569463 0.621990 0.183246 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.652174 0 0.911500 0.666000 0.726132 0.622857 +0.914672 0.794765 0.198952 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.347826 1 0.843500 0.798000 0.506320 0.578750 +0.650035 0.691100 0.277487 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.739130 0 0.815000 0.740000 0.512358 0.560714 +0.788488 0.668063 0.340314 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.859500 0.746000 0.554057 0.739643 +0.557065 0.668063 0.308900 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.798500 0.546000 0.555330 0.628214 +0.490114 0.529843 0.638744 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.915500 0.846000 0.504575 0.644643 +0.436878 0.783246 0.120419 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.692000 0.568000 0.506037 0.605714 +0.575130 0.391623 0.638744 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.849000 0.752000 0.505141 0.547500 +0.449381 0.656545 0.198952 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.130435 1 0.797000 0.665200 0.505141 0.623750 +0.429181 0.668063 0.575917 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.836500 0.510000 0.895330 0.631428 +0.899606 0.633508 0.324608 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.838500 0.680000 0.505236 0.550179 +0.455028 0.552880 0.151833 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 0.043478 1 0.657500 0.566000 0.506179 0.598571 +0.500448 0.380105 0.811519 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.869500 0.538000 0.685377 0.670357 +0.494473 0.587435 0.214660 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0 1 0.727000 0.586000 0.505708 0.655893 +0.526529 0.449215 0.623037 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.130435 1 0.749500 0.595980 0.505424 0.618393 +0.417581 0.541362 0.638744 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.869565 0 0.883500 0.806000 0.512972 0.687500 +0.614087 0.783246 0.104712 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.686500 0.522000 0.734198 0.819286 +0.789211 0.472252 0.607331 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.814000 0.692700 0.561321 0.618572 +0.729883 0.598953 0.403142 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 1 0 0.814000 0.618880 0.504953 0.547321 +0.636999 0.564398 0.277487 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.857500 0.548000 0.830189 0.609821 +0.890803 0.575917 0.167539 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.825500 0.674000 0.505236 0.597857 +0.478726 0.575917 0.308900 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.673500 0.547520 0.505991 0.588929 +0.533567 0.414660 0.732985 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.130435 1 0.714000 0.598000 0.505708 0.557500 +0.337934 0.426178 0.732985 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.565217 0 0.817000 0.666000 0.707500 0.695893 +0.807658 0.668063 0.481675 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.781500 0.540000 0.865425 0.663036 +0.475463 0.506807 0.638744 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.914000 0.604000 0.936792 0.610893 +0.515312 0.610471 0.151833 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.927000 0.852000 0.803491 0.665178 +0.467733 0.817801 0.120419 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.304348 1 0.727500 0.562000 0.505660 0.599464 +0.328950 0.334032 0.638744 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.809000 0.734000 0.505283 0.546429 +0.467403 0.552880 0.293194 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.521739 0 0.745500 0.604000 0.522878 0.695893 +0.807679 0.610471 0.607331 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.892500 0.704000 0.786227 0.620000 +0.533706 0.598953 0.293194 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.782609 0 0.849000 0.554000 0.521934 0.592143 +0.551080 0.564398 0.403142 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 1 0 0.817500 0.546000 0.505236 0.668750 +0.644271 0.575917 0.198952 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.826000 0.724000 0.505236 0.515357 +0.441418 0.587435 0.214660 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.130435 1 0.816500 0.588000 0.505283 0.614285 +0.463639 0.587435 0.246073 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.565217 0 0.787000 0.544000 0.887500 0.875893 +0.784778 0.598953 0.497383 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.716000 0.580620 0.505660 0.671429 +0.397038 0.483770 0.638744 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 0.043478 1 0.655000 0.524000 0.506415 0.522678 +0.549942 0.380105 0.685864 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.739130 0 0.985000 0.620000 0.802122 0.710000 +0.792326 0.829320 0.073298 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.304348 1 0.727000 0.608000 0.508443 0.537500 +0.599084 0.483770 0.528796 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.712000 0.573240 0.538396 0.564643 +0.349905 0.472252 0.732985 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.956522 0 0.821000 0.618000 0.504906 0.500893 +0.554503 0.633508 0.560210 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.763500 0.562000 0.506509 0.516964 +0.554205 0.437697 0.450262 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 1 0 0.824500 0.528000 0.505141 0.656250 +0.648886 0.564398 0.261781 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.608696 0 0.800000 0.582000 0.834104 0.733929 +0.898511 0.621990 0.356021 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.565217 0 0.788000 0.621040 0.559104 0.583571 +0.814622 0.587435 0.434556 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.956522 0 0.826500 0.544000 0.505189 0.609643 +0.668608 0.610471 0.230367 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.723500 0.548000 0.770330 0.531607 +0.825659 0.506807 0.638744 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.739130 0 0.845000 0.766000 0.528821 0.640000 +0.723801 0.656545 0.324608 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.260870 1 0.714000 0.594000 0.505708 0.578750 +0.349151 0.426178 0.717277 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.660500 0.516000 0.515047 0.533571 +0.415432 0.403142 0.811519 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.695652 0 0.853500 0.580000 0.725661 0.601429 +0.845424 0.621990 0.434556 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.833500 0.678000 0.504764 0.606964 +0.565783 0.725655 0.403142 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.782609 0 0.908500 0.702000 0.510095 0.634286 +0.762173 0.656545 0.104712 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.347826 1 0.790000 0.626000 0.509387 0.718571 +0.626760 0.575917 0.371727 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.478261 1 0.873000 0.708000 0.759529 0.572679 +0.861064 0.691100 0.183246 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 0.043478 1 0.867500 0.612000 0.505000 0.632500 +0.523127 0.610471 0.214660 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.908500 0.888000 0.504717 0.671965 +0.346461 0.817801 0.136125 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0 1 0.712000 0.561980 0.505660 0.641964 +0.346269 0.426178 0.717277 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.434783 1 0.868500 0.714000 0.687736 0.562143 +0.814506 0.668063 0.151833 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.608696 0 0.866000 0.572900 0.833632 0.583393 +0.917469 0.598953 0.167539 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.805500 0.645620 0.576604 0.506965 +0.889399 0.587435 0.308900 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.695652 0 0.839000 0.778340 0.531510 0.602678 +0.781918 0.748691 0.293194 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.797500 0.648800 0.504906 0.785536 +0.416454 0.656545 0.560210 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.761500 0.530000 0.760000 0.702679 +0.809061 0.598953 0.544502 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.613000 0.510000 0.588821 0.540357 +0.330725 0.253403 0.890052 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.873500 0.872000 0.578773 0.633393 +0.772094 0.760210 0.230367 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.747000 0.606000 0.505519 0.660000 +0.600573 0.518325 0.575917 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.906000 0.628000 0.835283 0.639822 +0.915236 0.691100 0.041885 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.862500 0.822000 0.505000 0.603750 +0.448594 0.679581 0.183246 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.773000 0.550000 0.505236 0.654822 +0.450860 0.552880 0.607331 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.739130 0 0.862500 0.604000 0.648773 0.631250 +0.778940 0.714137 0.293194 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.900000 0.640000 0.834576 0.598571 +0.917192 0.702618 0.057592 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.173913 1 0.879500 0.860000 0.504717 0.642143 +0.477992 0.760210 0.151833 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.695652 0 0.850500 0.768000 0.574198 0.607857 +0.889750 0.691100 0.246073 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.478261 1 0.794000 0.586000 0.747783 0.743214 +0.866412 0.529843 0.356021 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.747000 0.595520 0.505424 0.661785 +0.499768 0.587435 0.591623 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.859500 0.662000 0.683774 0.685714 +0.771753 0.645027 0.356021 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.731500 0.556000 0.505660 0.541785 +0.347789 0.437697 0.701571 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.810000 0.522000 0.742736 0.676250 +0.891589 0.529843 0.356021 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0 1 0.889500 0.728000 0.504858 0.581607 +0.536578 0.679581 0.120419 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.891000 0.638000 0.643726 0.599464 +0.546370 0.587435 0.214660 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.732500 0.600000 0.505519 0.533393 +0.392701 0.460733 0.638744 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.565217 0 0.744000 0.596000 0.541981 0.696786 +0.816940 0.610471 0.638744 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.984000 0.678000 0.608254 0.675714 +0.579659 0.921466 0.057592 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.902500 0.830000 0.504670 0.583035 +0.439450 0.760210 0.136125 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.217391 1 0.739500 0.624000 0.505424 0.621786 +0.403152 0.529843 0.732985 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.769000 0.554000 0.837783 0.650357 +0.467371 0.483770 0.717277 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.652174 0 0.720500 0.568000 0.539764 0.597678 +0.912674 0.506807 0.481675 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.775500 0.644000 0.505519 0.575714 +0.536035 0.552880 0.450262 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.260870 1 0.748000 0.596000 0.505708 0.726785 +0.478227 0.529843 0.591623 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.652174 0 0.841000 0.506000 0.748254 0.590715 +0.366630 0.310995 0.497383 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0 1 0.817000 0.725200 0.504670 0.621428 +0.502958 0.633508 0.434556 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.260870 1 0.838500 0.760140 0.504858 0.623750 +0.467977 0.633508 0.450262 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.685000 0.510000 0.505991 0.588929 +0.429319 0.437697 0.654450 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.086957 1 0.872500 0.736000 0.504953 0.622857 +0.475441 0.645027 0.136125 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.771500 0.574000 0.523207 0.691072 +0.932790 0.541362 0.418848 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.841000 0.554000 0.791746 0.614643 +0.883147 0.564398 0.214660 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.833500 0.594000 0.505141 0.708928 +0.456091 0.541362 0.246073 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.829500 0.600000 0.505141 0.674643 +0.462045 0.541362 0.261781 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 0.043478 1 0.763000 0.552000 0.505189 0.636607 +0.486987 0.529843 0.654450 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.841500 0.712000 0.505189 0.516786 +0.468105 0.610471 0.198952 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.890000 0.510000 0.687736 0.662857 +0.684153 0.621990 0.183246 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.818000 0.652000 0.720378 0.542500 +0.515983 0.529843 0.293194 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0 1 0.736000 0.556000 0.505519 0.675714 +0.337997 0.334032 0.701571 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.876000 0.698000 0.504670 0.619465 +0.572631 0.575917 0.261781 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.652174 0 0.976500 0.654000 0.928019 0.695714 +0.824829 0.863875 0.073298 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.746000 0.514000 0.519387 0.589464 +0.462959 0.483770 0.607331 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0 1 0.676500 0.549700 0.505943 0.592857 +0.514409 0.414660 0.748691 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.608696 0 0.848500 0.814000 0.591132 0.642500 +0.811666 0.760210 0.308900 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.679500 0.564000 0.553585 0.766964 +0.857354 0.426178 0.544502 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.173913 1 0.791500 0.626000 0.505141 0.737500 +0.403163 0.587435 0.591623 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.086957 1 0.718500 0.534000 0.505754 0.553572 +0.578074 0.460733 0.528796 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.855000 0.772000 0.505000 0.600357 +0.495930 0.656545 0.293194 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.826087 0 0.931000 0.542000 0.541604 0.571965 +0.641636 0.633508 0.167539 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.840500 0.759420 0.504906 0.594822 +0.466138 0.610471 0.308900 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.391304 1 0.818500 0.702000 0.575330 0.533750 +0.755114 0.621990 0.261781 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 1 0 0.766000 0.591720 0.505519 0.586607 +0.633628 0.587435 0.387435 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.672000 0.512000 0.506037 0.593571 +0.424151 0.426178 0.717277 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.521739 0 0.812000 0.680000 0.660378 0.682143 +0.866072 0.506807 0.167539 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.869565 0 0.931500 0.656000 0.505000 0.575893 +0.645888 0.702618 0.073298 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.304348 1 0.849500 0.818000 0.505236 0.618214 +0.537874 0.610471 0.198952 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.908000 0.648000 0.872642 0.605000 +0.554013 0.714137 0.198952 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.866000 0.690000 0.504953 0.682500 +0.553546 0.552880 0.214660 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.782609 0 0.838500 0.679620 0.509292 0.652322 +0.540245 0.506807 0.418848 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.740500 0.560000 0.505566 0.523750 +0.583327 0.449215 0.434556 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.434783 1 0.767000 0.574000 0.679859 0.645357 +0.840800 0.506807 0.403142 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.130435 1 0.780500 0.610000 0.505472 0.674643 +0.485499 0.575917 0.403142 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.881000 0.836000 0.504858 0.657857 +0.637318 0.691100 0.167539 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.859000 0.794000 0.504953 0.612857 +0.526626 0.645027 0.277487 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.640500 0.516000 0.506415 0.756786 +0.549368 0.380105 0.685864 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.732500 0.530000 0.600566 0.678750 +0.881925 0.518325 0.544502 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.782609 0 0.802000 0.526000 0.508019 0.713393 +0.791497 0.633508 0.277487 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.839000 0.742000 0.679623 0.643393 +0.496164 0.518325 0.371727 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.826000 0.668000 0.510095 0.564107 +0.413774 0.552880 0.465969 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.842000 0.720000 0.505189 0.596071 +0.464543 0.621990 0.246073 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.923000 0.634000 0.954717 0.564465 +0.488838 0.656545 0.167539 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.868500 0.586000 0.558208 0.710357 +0.693946 0.725655 0.403142 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.478261 1 0.760500 0.642000 0.567971 0.699643 +0.878905 0.598953 0.403142 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.787500 0.692000 0.513397 0.631607 +0.429744 0.587435 0.387435 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.728000 0.624000 0.531038 0.558750 +0.702951 0.506807 0.607331 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.773000 0.512000 0.721981 0.641964 +0.801066 0.587435 0.434556 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.173913 1 0.742000 0.585200 0.505472 0.574286 +0.405640 0.541362 0.638744 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.649000 0.508000 0.543679 0.635893 +0.524797 0.357068 0.811519 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.724500 0.584860 0.534151 0.657143 +0.333915 0.449215 0.685864 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.956522 0 0.723000 0.530000 0.505754 0.559643 +0.639902 0.495288 0.450262 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.782609 0 0.742500 0.574000 0.508680 0.629821 +0.545136 0.552880 0.575917 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.716000 0.560000 0.604339 0.510179 +0.340400 0.414660 0.748691 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.922000 0.550000 0.698585 0.694643 +0.849804 0.645027 0.089006 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.759000 0.560000 0.505472 0.627679 +0.536673 0.449215 0.544502 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.739130 0 0.811000 0.574000 0.551037 0.514286 +0.369671 0.472252 0.607331 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.742500 0.590180 0.505519 0.632500 +0.499407 0.495288 0.465969 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.707500 0.524000 0.505991 0.504286 +0.519469 0.391623 0.528796 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.791500 0.686000 0.505236 0.618572 +0.570461 0.472252 0.434556 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.780500 0.578000 0.831368 0.696965 +0.852134 0.575917 0.591623 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 0.043478 1 0.817500 0.626000 0.504764 0.596071 +0.460790 0.621990 0.528796 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.836500 0.718000 0.528962 0.544285 +0.383823 0.495288 0.434556 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.894500 0.748000 0.753066 0.643571 +0.874141 0.679581 0.136125 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.347826 1 0.639500 0.528000 0.519292 0.571786 +0.642751 0.380105 0.717277 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.905000 0.686000 0.778396 0.670179 +0.877757 0.783246 0.151833 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.391304 1 0.775500 0.633960 0.535755 0.666607 +0.590579 0.506807 0.481675 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.782609 0 0.855000 0.804000 0.508915 0.676428 +0.628472 0.748691 0.308900 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.732000 0.512000 0.505802 0.553393 +0.610683 0.403142 0.481675 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.130435 1 0.781500 0.556000 0.505472 0.627500 +0.516546 0.564398 0.261781 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.790500 0.614000 0.829293 0.640357 +0.496483 0.472252 0.481675 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.815000 0.656000 0.670660 0.631607 +0.435273 0.610471 0.293194 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.652174 0 0.903500 0.618000 0.723585 0.614285 +0.911770 0.737173 0.167539 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.674500 0.520000 0.520189 0.599643 +0.520810 0.368587 0.685864 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.956000 0.594000 0.549576 0.613572 +0.649173 0.771728 0.120419 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.929500 0.808000 0.504670 0.571250 +0.409383 0.794765 0.136125 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.583000 0.516000 0.507029 0.601429 +0.301986 0.241885 0.937173 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.864500 0.838700 0.504670 0.662500 +0.491261 0.783246 0.387435 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.751500 0.547840 0.505377 0.563035 +0.419164 0.483770 0.654450 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.913043 0 0.907500 0.582000 0.504858 0.592500 +0.624697 0.610471 0.151833 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.800000 0.579880 0.636604 0.613572 +0.810487 0.575917 0.497383 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 0.043478 1 0.768000 0.602000 0.505377 0.556250 +0.332596 0.426178 0.654450 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.769000 0.556000 0.505283 0.636786 +0.540372 0.449215 0.591623 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.434783 1 0.748000 0.650000 0.629434 0.539464 +0.330257 0.426178 0.591623 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.869565 0 0.915000 0.570000 0.504906 0.615893 +0.629896 0.621990 0.167539 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.766500 0.572000 0.505189 0.501965 +0.463321 0.575917 0.591623 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.521739 0 0.817000 0.578000 0.812925 0.802500 +0.919084 0.679581 0.167539 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.913043 0 0.747000 0.514000 0.505283 0.571607 +0.585741 0.506807 0.654450 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.858500 0.738000 0.570283 0.641607 +0.556097 0.541362 0.073298 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.260870 1 0.815500 0.719380 0.505000 0.594643 +0.523808 0.529843 0.308900 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.906000 0.530000 0.733254 0.547678 +0.848847 0.702618 0.183246 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.086957 1 0.914500 0.748000 0.504717 0.544643 +0.427596 0.806283 0.073298 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.887500 0.894000 0.504717 0.554465 +0.450467 0.783246 0.120419 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.977500 0.668000 0.570519 0.607857 +0.469466 0.748691 0.104712 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.869000 0.538000 0.901321 0.731607 +0.532643 0.564398 0.293194 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.754000 0.598000 0.505141 0.656964 +0.486095 0.552880 0.575917 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.826087 0 0.935500 0.536000 0.538632 0.586250 +0.661326 0.668063 0.120419 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.913000 0.658000 0.516651 0.601964 +0.678540 0.737173 0.167539 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.725500 0.514000 0.505896 0.524464 +0.600807 0.391623 0.544502 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.978500 0.682000 0.805330 0.621250 +0.496535 0.783246 0.104712 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 0.043478 1 0.818000 0.733720 0.504670 0.642857 +0.490274 0.621990 0.418848 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.913043 0 0.769500 0.604000 0.505283 0.621428 +0.544625 0.437697 0.528796 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.888000 0.642000 0.570141 0.611428 +0.545636 0.587435 0.198952 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 1 0 0.908500 0.704000 0.504717 0.583215 +0.577692 0.691100 0.089006 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.949000 0.626000 0.759529 0.597500 +0.905083 0.725655 0.120419 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.086957 1 0.776000 0.682000 0.505141 0.542678 +0.470657 0.552880 0.623037 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.853000 0.644000 0.505047 0.716250 +0.520916 0.610471 0.277487 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.839500 0.728000 0.505189 0.624643 +0.459769 0.633508 0.277487 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.347826 1 0.636000 0.550620 0.514906 0.634286 +0.386672 0.380105 0.842933 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.718000 0.516000 0.505943 0.527857 +0.506764 0.380105 0.623037 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.130435 1 0.827500 0.778220 0.504858 0.588393 +0.461470 0.702618 0.403142 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.873000 0.672000 0.687736 0.555179 +0.817057 0.691100 0.167539 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.695652 0 0.831000 0.588560 0.759057 0.653215 +0.779780 0.645027 0.450262 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.724500 0.564040 0.505472 0.583393 +0.476504 0.506807 0.701571 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.260870 1 0.836000 0.700000 0.505189 0.513928 +0.444288 0.587435 0.230367 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.830000 0.768000 0.505141 0.589107 +0.486765 0.564398 0.230367 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.826087 0 0.785000 0.586000 0.505424 0.578928 +0.685568 0.575917 0.371727 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.739130 0 0.874000 0.650000 0.571179 0.633214 +0.853898 0.679581 0.277487 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.918500 0.608000 0.852830 0.708928 +0.836833 0.748691 0.104712 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.815000 0.658000 0.504953 0.602857 +0.580372 0.679581 0.528796 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.217391 1 0.738000 0.579060 0.505519 0.583571 +0.395455 0.506807 0.670158 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.782609 0 0.847500 0.604000 0.519953 0.616786 +0.664058 0.702618 0.434556 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.608696 0 0.781000 0.516000 0.896746 0.790536 +0.906539 0.587435 0.450262 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.521739 0 0.889500 0.758000 0.656604 0.593393 +0.843744 0.771728 0.136125 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.699500 0.578000 0.683066 0.691072 +0.327706 0.391623 0.764398 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.956522 0 0.836000 0.754000 0.504906 0.751786 +0.580700 0.702618 0.183246 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.744000 0.538000 0.525378 0.569821 +0.357082 0.437697 0.623037 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.304348 1 0.808000 0.706000 0.505141 0.648571 +0.487562 0.587435 0.246073 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.885000 0.648000 0.940094 0.574464 +0.519458 0.610471 0.198952 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.718500 0.536000 0.533207 0.592678 +0.393030 0.437697 0.638744 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.304348 1 0.884500 0.756000 0.505000 0.539464 +0.439493 0.760210 0.104712 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.518500 0.514000 0.586839 0.630357 +0.301688 0.195812 0.921466 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.347826 1 0.850000 0.776000 0.508113 0.529107 +0.582242 0.656545 0.198952 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.835000 0.716000 0.505189 0.507500 +0.465978 0.598953 0.198952 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.652174 0 0.928000 0.560000 0.875095 0.532322 +0.863287 0.679581 0.167539 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 1 0 0.716000 0.572000 0.505708 0.584107 +0.350767 0.414660 0.748691 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.857500 0.688000 0.504906 0.518393 +0.677178 0.691100 0.230367 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.896000 0.708000 0.698727 0.678750 +0.869007 0.771728 0.183246 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.956522 0 0.798000 0.674000 0.505377 0.571428 +0.616022 0.610471 0.356021 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0 1 0.825000 0.748000 0.505141 0.597143 +0.531325 0.529843 0.214660 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.304348 1 0.779500 0.608000 0.505472 0.671965 +0.532995 0.564398 0.418848 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.912500 0.868000 0.504575 0.612679 +0.481439 0.829320 0.073298 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.608696 0 0.870000 0.860000 0.611604 0.686072 +0.860235 0.909948 0.089006 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.391304 1 0.877500 0.884000 0.565000 0.599285 +0.752668 0.806283 0.151833 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.173913 1 0.674500 0.560580 0.506037 0.624286 +0.476739 0.380105 0.764398 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 1 0 0.855000 0.712000 0.505000 0.587143 +0.613873 0.668063 0.230367 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.749000 0.550000 0.658208 0.667143 +0.344791 0.437697 0.732985 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 0.043478 1 0.924500 0.734000 0.504670 0.563035 +0.443662 0.794765 0.073298 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.565217 0 0.907000 0.800000 0.686557 0.721785 +0.882009 0.737173 0.151833 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.897500 0.682000 0.553349 0.621607 +0.548113 0.645027 0.293194 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.304348 1 0.715500 0.530000 0.505896 0.648571 +0.546316 0.449215 0.607331 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.868500 0.862000 0.541037 0.645000 +0.604070 0.737173 0.246073 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.913000 0.876000 0.504717 0.536785 +0.345206 0.806283 0.120419 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.173913 1 0.793000 0.669340 0.505141 0.649464 +0.415093 0.645027 0.544502 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.913043 0 0.765500 0.584000 0.505566 0.616072 +0.657583 0.552880 0.434556 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.173913 1 0.874000 0.834000 0.504717 0.666429 +0.515312 0.506807 0.151833 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0 1 0.824000 0.740000 0.505000 0.691072 +0.531686 0.621990 0.230367 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.478261 1 0.808500 0.672000 0.716934 0.544285 +0.829328 0.645027 0.481675 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.865000 0.650000 0.505141 0.505535 +0.463746 0.598953 0.230367 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.850000 0.800000 0.513066 0.611786 +0.860617 0.737173 0.230367 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.347826 1 0.772000 0.585960 0.512170 0.568393 +0.569112 0.564398 0.732985 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.740500 0.559540 0.626698 0.611786 +0.474793 0.460733 0.623037 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.915000 0.600000 0.504623 0.570000 +0.504362 0.598953 0.167539 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.801500 0.682160 0.505047 0.576250 +0.393753 0.552880 0.497383 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 1 0 0.792500 0.588000 0.505424 0.542500 +0.586017 0.529843 0.371727 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.304348 1 0.831500 0.714000 0.505236 0.523750 +0.502383 0.610471 0.230367 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.836500 0.686000 0.515849 0.524107 +0.591015 0.598953 0.151833 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.708000 0.562000 0.701038 0.776607 +0.868433 0.437697 0.654450 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.521739 0 0.725500 0.534000 0.814528 0.672857 +0.815398 0.564398 0.575917 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.304348 1 0.731000 0.598000 0.505377 0.595893 +0.487668 0.506807 0.623037 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.791500 0.592000 0.841038 0.602500 +0.530081 0.610471 0.591623 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.217391 1 0.774000 0.653100 0.505424 0.626072 +0.500140 0.529843 0.387435 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.304348 1 0.827000 0.732220 0.504670 0.725357 +0.490550 0.645027 0.450262 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.815000 0.586840 0.668349 0.600178 +0.773379 0.645027 0.465969 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.731000 0.580000 0.505472 0.614107 +0.460067 0.506807 0.717277 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.800500 0.582000 0.708490 0.604285 +0.803235 0.541362 0.277487 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.849000 0.816000 0.531273 0.595536 +0.636329 0.668063 0.261781 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.852000 0.822000 0.505047 0.588750 +0.468742 0.668063 0.183246 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0 1 0.752500 0.544000 0.505236 0.760357 +0.503277 0.587435 0.670158 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.914500 0.742000 0.504670 0.526429 +0.518938 0.737173 0.120419 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.752000 0.548000 0.505424 0.544464 +0.475994 0.483770 0.638744 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.743500 0.562000 0.793821 0.634286 +0.507275 0.426178 0.560210 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0 1 0.862500 0.696000 0.504953 0.582322 +0.605560 0.668063 0.214660 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.478261 1 0.784000 0.570000 0.789905 0.636964 +0.886125 0.598953 0.371727 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.608696 0 0.768000 0.540000 0.670188 0.700714 +0.890749 0.529843 0.356021 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.890500 0.540000 0.680330 0.592678 +0.576810 0.506807 0.183246 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 1 0 0.863500 0.785760 0.504670 0.660893 +0.572843 0.817801 0.387435 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.826087 0 0.755000 0.630000 0.507547 0.632857 +0.610429 0.587435 0.560210 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.956522 0 0.774500 0.548000 0.505141 0.567143 +0.587877 0.564398 0.575917 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.759000 0.554000 0.505472 0.559821 +0.418165 0.483770 0.732985 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.956522 0 0.894000 0.598000 0.504858 0.622143 +0.590004 0.621990 0.183246 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.173913 1 0.713000 0.542000 0.505802 0.578571 +0.518279 0.437697 0.544502 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.521739 0 0.913000 0.636000 0.860377 0.621786 +0.872239 0.737173 0.120419 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.956522 0 0.795000 0.580000 0.505141 0.592678 +0.473155 0.552880 0.607331 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.921000 0.828000 0.504575 0.636250 +0.451296 0.783246 0.104712 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.983500 0.654000 0.801415 0.623214 +0.496015 0.760210 0.104712 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.726500 0.571360 0.506557 0.604285 +0.542679 0.518325 0.670158 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.830000 0.752000 0.531839 0.690179 +0.513834 0.645027 0.214660 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.715000 0.594000 0.505802 0.501250 +0.559213 0.403142 0.513089 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0 1 0.658500 0.546000 0.506179 0.741786 +0.585815 0.403142 0.717277 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.822000 0.670000 0.504623 0.606785 +0.442608 0.598953 0.528796 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.666500 0.568000 0.506226 0.576250 +0.475824 0.391623 0.764398 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.695652 0 0.925500 0.698000 0.672736 0.662322 +0.920382 0.598953 0.104712 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.894000 0.550000 0.725236 0.724465 +0.542584 0.621990 0.261781 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.782609 0 0.820000 0.558000 0.509717 0.538929 +0.746884 0.587435 0.293194 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.723000 0.558000 0.505566 0.571965 +0.359006 0.414660 0.701571 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.774000 0.638000 0.505047 0.658750 +0.577724 0.564398 0.732985 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.173913 1 0.649000 0.530000 0.506226 0.717322 +0.504180 0.391623 0.780106 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0 1 0.747500 0.558000 0.505472 0.609465 +0.378273 0.506807 0.780106 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.878500 0.800000 0.504906 0.619643 +0.513750 0.737173 0.120419 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.217391 1 0.827500 0.694000 0.505236 0.509821 +0.460343 0.564398 0.151833 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 1 0 0.939500 0.732000 0.504529 0.590715 +0.519566 0.852356 0.057592 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.217391 1 0.726000 0.576000 0.505472 0.589822 +0.471252 0.506807 0.654450 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.968000 0.536000 0.659905 0.561965 +0.504362 0.714137 0.183246 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.695652 0 0.934500 0.552000 0.821463 0.525893 +0.861021 0.691100 0.167539 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.913043 0 0.803000 0.612020 0.505047 0.639643 +0.344366 0.472252 0.544502 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.752500 0.576000 0.505519 0.582143 +0.537418 0.437697 0.544502 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 0.043478 1 0.828500 0.774000 0.504858 0.604643 +0.480279 0.633508 0.387435 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.782609 0 0.806500 0.685420 0.507264 0.570357 +0.696380 0.668063 0.356021 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.652174 0 0.903500 0.648000 0.683302 0.629643 +0.895248 0.748691 0.167539 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.652174 0 0.841000 0.582000 0.756274 0.530893 +0.715860 0.587435 0.450262 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.653000 0.518000 0.519292 0.563393 +0.460535 0.368587 0.811519 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.739130 0 0.832500 0.600000 0.623679 0.745714 +0.838439 0.621990 0.183246 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.913043 0 0.739500 0.524000 0.505660 0.583393 +0.626058 0.460733 0.544502 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.521739 0 0.831500 0.776000 0.610000 0.593215 +0.855717 0.621990 0.261781 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.565217 0 0.741500 0.531540 0.808774 0.610178 +0.871154 0.472252 0.544502 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.347826 1 0.795000 0.623900 0.515613 0.590893 +0.567293 0.645027 0.638744 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.586000 0.514000 0.506934 0.583929 +0.303528 0.241885 0.937173 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.695652 0 0.813000 0.722000 0.537359 0.576607 +0.383780 0.472252 0.544502 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.882500 0.782000 0.628963 0.606071 +0.845679 0.668063 0.167539 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.347826 1 0.836500 0.752000 0.514670 0.513928 +0.599202 0.633508 0.198952 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.898000 0.932000 0.504764 0.631786 +0.385545 0.817801 0.120419 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.794000 0.674220 0.505189 0.522322 +0.485691 0.541362 0.371727 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.574000 0.516000 0.506981 0.649464 +0.485605 0.310995 0.858639 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.956522 0 0.918500 0.824000 0.504575 0.608214 +0.551834 0.840838 0.073298 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.757000 0.611180 0.542783 0.541607 +0.596150 0.495288 0.450262 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.478261 1 0.851500 0.624000 0.788208 0.660178 +0.853101 0.668063 0.230367 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.914500 0.740000 0.849056 0.583750 +0.849242 0.760210 0.136125 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.217391 1 0.791500 0.576000 0.505141 0.603571 +0.444534 0.506807 0.623037 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.700000 0.534000 0.523773 0.529643 +0.639785 0.403142 0.623037 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.714000 0.560000 0.505802 0.635179 +0.454272 0.506807 0.748691 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.752000 0.648000 0.505236 0.661785 +0.424566 0.541362 0.623037 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.769500 0.550000 0.505236 0.513928 +0.416921 0.518325 0.591623 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.705000 0.588000 0.505708 0.645715 +0.423693 0.472252 0.764398 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.815000 0.694000 0.505283 0.613393 +0.462630 0.575917 0.308900 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.808000 0.682640 0.506226 0.581250 +0.533153 0.541362 0.481675 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.740000 0.574000 0.505519 0.522500 +0.580266 0.437697 0.497383 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.966000 0.542000 0.762264 0.568393 +0.504999 0.702618 0.167539 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.521739 0 0.693500 0.548000 0.768490 0.739821 +0.516397 0.449215 0.701571 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.737500 0.526000 0.505566 0.702322 +0.421471 0.529843 0.685864 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 0.043478 1 0.739500 0.612000 0.505424 0.597500 +0.493101 0.564398 0.685864 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.521739 0 0.755500 0.540000 0.798868 0.755893 +0.874865 0.541362 0.371727 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 0.043478 1 0.797500 0.552000 0.505377 0.670893 +0.559829 0.575917 0.261781 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.608696 0 0.675000 0.568000 0.600425 0.696250 +0.747692 0.391623 0.717277 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.830500 0.524000 0.694811 0.641964 +0.685132 0.506807 0.513089 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.881000 0.680000 0.507358 0.564821 +0.730563 0.679581 0.214660 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.645500 0.546760 0.506179 0.562857 +0.458738 0.299477 0.717277 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.939000 0.816000 0.504529 0.584285 +0.419706 0.840838 0.089006 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.747000 0.614000 0.505377 0.639286 +0.478217 0.518325 0.607331 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.347826 1 0.842000 0.714000 0.523444 0.713215 +0.563254 0.645027 0.387435 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.836000 0.690000 0.840566 0.663571 +0.846190 0.668063 0.434556 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.773000 0.548000 0.505283 0.525178 +0.480046 0.552880 0.591623 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.834000 0.580000 0.782076 0.689286 +0.528049 0.541362 0.356021 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.869565 0 0.736500 0.526000 0.505566 0.583215 +0.706035 0.495288 0.465969 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.739130 0 0.944500 0.636000 0.727311 0.579464 +0.846201 0.783246 0.073298 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.608696 0 0.831000 0.638000 0.796604 0.705000 +0.823840 0.679581 0.434556 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.347826 1 0.817500 0.700000 0.519292 0.544822 +0.579638 0.564398 0.151833 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.776500 0.639660 0.505283 0.580893 +0.444608 0.621990 0.544502 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.732000 0.588000 0.505472 0.608572 +0.416070 0.541362 0.764398 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.774000 0.506000 0.689764 0.628393 +0.452890 0.506807 0.654450 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.879000 0.720000 0.599764 0.664107 +0.518428 0.529843 0.277487 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.868000 0.578000 0.504906 0.571965 +0.535323 0.506807 0.183246 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.942000 0.792000 0.806273 0.547500 +0.381473 0.806283 0.151833 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.521739 0 0.796500 0.526000 0.790141 0.535536 +0.367555 0.322513 0.560210 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.904500 0.638000 0.733254 0.676965 +0.554089 0.564398 0.246073 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.886000 0.856000 0.504764 0.578928 +0.427127 0.748691 0.136125 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.608696 0 0.833000 0.604000 0.864953 0.771071 +0.876204 0.621990 0.183246 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.869565 0 0.743500 0.642000 0.505472 0.712143 +0.543318 0.541362 0.481675 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.782609 0 0.837500 0.572000 0.515944 0.536785 +0.534196 0.564398 0.450262 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0 1 0.889500 0.684000 0.504858 0.682143 +0.479907 0.679581 0.167539 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0 1 0.846000 0.658000 0.505047 0.645178 +0.512325 0.587435 0.261781 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.695652 0 0.983000 0.626000 0.880141 0.683393 +0.816728 0.840838 0.073298 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.908000 0.626000 0.505802 0.550536 +0.489157 0.633508 0.167539 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.608696 0 0.916500 0.746000 0.681132 0.613750 +0.848422 0.714137 0.104712 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 1 0 0.856500 0.698000 0.505000 0.571786 +0.552845 0.691100 0.151833 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.780000 0.562000 0.509717 0.603750 +0.462373 0.587435 0.544502 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.860000 0.614000 0.832736 0.624465 +0.545359 0.541362 0.214660 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.882000 0.572000 0.814528 0.614465 +0.572759 0.518325 0.214660 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.869565 0 0.670000 0.522000 0.506226 0.571428 +0.641901 0.403142 0.607331 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.173913 1 0.815000 0.702940 0.505000 0.616072 +0.512931 0.529843 0.340314 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.880500 0.870000 0.504764 0.578928 +0.424555 0.748691 0.151833 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.861500 0.717380 0.504575 0.530000 +0.457898 0.679581 0.387435 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.217391 1 0.712000 0.560000 0.505708 0.611607 +0.328162 0.345550 0.701571 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.713500 0.580000 0.555896 0.513928 +0.610737 0.449215 0.450262 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.173913 1 0.831000 0.785880 0.504858 0.619465 +0.452104 0.725655 0.418848 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.906000 0.538000 0.643726 0.575179 +0.731095 0.691100 0.167539 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.739130 0 0.904000 0.524000 0.589622 0.700357 +0.868411 0.691100 0.120419 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.776000 0.548000 0.520189 0.564465 +0.403876 0.518325 0.717277 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.130435 1 0.746000 0.614000 0.505472 0.536785 +0.326036 0.414660 0.654450 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.814000 0.666980 0.504953 0.608929 +0.338571 0.518325 0.591623 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 1 0 0.758000 0.548000 0.505189 0.744285 +0.521702 0.575917 0.607331 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.837500 0.762000 0.557170 0.513750 +0.838822 0.668063 0.183246 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.913043 0 0.867500 0.742000 0.504906 0.659285 +0.634468 0.633508 0.183246 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.913043 0 0.773000 0.568000 0.505566 0.636964 +0.608919 0.552880 0.371727 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.173913 1 0.713500 0.568000 0.505519 0.605536 +0.441737 0.483770 0.795812 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.750500 0.574000 0.505377 0.543571 +0.412476 0.472252 0.638744 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.434783 1 0.786500 0.649520 0.519529 0.565179 +0.762004 0.691100 0.481675 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.086957 1 0.765000 0.605260 0.505377 0.641964 +0.451168 0.472252 0.607331 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 1 0 0.885500 0.608000 0.504906 0.583571 +0.573396 0.610471 0.167539 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.646500 0.551920 0.508680 0.593393 +0.509932 0.310995 0.717277 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.741500 0.538000 0.505802 0.558928 +0.531325 0.575917 0.544502 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.739500 0.558000 0.505566 0.521429 +0.604219 0.460733 0.465969 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.130435 1 0.719000 0.540000 0.505754 0.668393 +0.526360 0.460733 0.560210 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.521739 0 0.917500 0.864000 0.604576 0.654107 +0.871081 0.840838 0.089006 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.749000 0.561360 0.661227 0.625714 +0.465904 0.472252 0.591623 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.710000 0.560920 0.505519 0.661785 +0.464522 0.506807 0.717277 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.260870 1 0.640500 0.526000 0.506274 0.748572 +0.495727 0.380105 0.795812 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.478261 1 0.884000 0.744000 0.589622 0.543571 +0.846402 0.748691 0.136125 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.835000 0.764000 0.505141 0.561786 +0.510305 0.541362 0.073298 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.593500 0.516000 0.582123 0.608393 +0.282806 0.253403 0.905760 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.434783 1 0.848500 0.758620 0.560613 0.665715 +0.783279 0.691100 0.371727 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.908500 0.878000 0.504670 0.595178 +0.433965 0.817801 0.073298 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.873000 0.502000 0.514009 0.567679 +0.688534 0.598953 0.167539 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.782609 0 0.823500 0.518000 0.541510 0.592500 +0.692924 0.610471 0.450262 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.608696 0 0.900000 0.654000 0.743160 0.650893 +0.877853 0.737173 0.167539 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.478261 1 0.810000 0.712680 0.507783 0.602500 +0.866317 0.633508 0.293194 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.819500 0.604000 0.505424 0.532857 +0.448659 0.518325 0.324608 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.913500 0.618000 0.586746 0.687857 +0.572610 0.575917 0.230367 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 0.043478 1 0.866500 0.856000 0.504953 0.638393 +0.523765 0.702618 0.183246 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.825000 0.738640 0.504906 0.660178 +0.524211 0.610471 0.277487 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.956522 0 0.794000 0.586000 0.505424 0.543750 +0.626058 0.541362 0.340314 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.830000 0.676000 0.505189 0.663750 +0.460237 0.575917 0.340314 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.173913 1 0.722500 0.544000 0.505802 0.598393 +0.511729 0.483770 0.544502 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.724500 0.586000 0.505708 0.689107 +0.489337 0.449215 0.732985 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.781500 0.647380 0.505000 0.566607 +0.335520 0.495288 0.497383 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.434783 1 0.718500 0.528000 0.563726 0.661965 +0.864541 0.483770 0.560210 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.587500 0.516000 0.506934 0.689821 +0.499140 0.334032 0.780106 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.608696 0 0.922000 0.602000 0.943868 0.611071 +0.852994 0.725655 0.104712 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 1 0 0.776500 0.584000 0.505283 0.581607 +0.346163 0.449215 0.654450 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.859500 0.840000 0.504953 0.669822 +0.442003 0.702618 0.308900 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.726000 0.588000 0.519858 0.691965 +0.453188 0.449215 0.685864 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.705000 0.558000 0.505708 0.577500 +0.341677 0.414660 0.764398 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.910000 0.834000 0.718066 0.639464 +0.437515 0.783246 0.120419 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.086957 1 0.884500 0.868000 0.504717 0.627143 +0.495270 0.714137 0.151833 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.964000 0.726000 0.504434 0.576964 +0.483363 0.817801 0.089006 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.835000 0.786000 0.504670 0.690000 +0.474813 0.725655 0.387435 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.846000 0.514000 0.505047 0.569821 +0.595788 0.575917 0.340314 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.825000 0.530000 0.505236 0.627500 +0.580914 0.529843 0.324608 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.825000 0.716000 0.604245 0.566250 +0.414093 0.575917 0.246073 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.304348 1 0.877500 0.878000 0.505283 0.580357 +0.497610 0.725655 0.198952 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.903500 0.874000 0.504717 0.641786 +0.413305 0.817801 0.089006 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.695652 0 0.809500 0.578000 0.697358 0.671607 +0.906815 0.633508 0.340314 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.864000 0.556000 0.558066 0.546429 +0.499278 0.598953 0.528796 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.765000 0.618280 0.505047 0.599107 +0.466234 0.575917 0.575917 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.608696 0 0.841500 0.800000 0.540707 0.632679 +0.788212 0.748691 0.324608 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.086957 1 0.853500 0.722000 0.505047 0.580893 +0.546126 0.656545 0.246073 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.867500 0.680000 0.688208 0.656607 +0.458110 0.645027 0.230367 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.946500 0.744000 0.743632 0.589822 +0.857896 0.829320 0.089006 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.217391 1 0.874500 0.744000 0.504906 0.561786 +0.440036 0.656545 0.167539 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.521739 0 0.795000 0.566000 0.832264 0.628928 +0.895662 0.610471 0.371727 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.707000 0.558000 0.505754 0.587143 +0.342686 0.426178 0.748691 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.770000 0.630000 0.590755 0.552857 +0.411052 0.506807 0.591623 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.793000 0.622000 0.505472 0.622679 +0.410053 0.518325 0.340314 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.830500 0.560000 0.807547 0.675714 +0.842362 0.598953 0.261781 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.898500 0.874000 0.504670 0.617143 +0.464990 0.806283 0.073298 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.835000 0.782000 0.505189 0.538929 +0.501097 0.541362 0.057592 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.913043 0 0.885000 0.710000 0.504858 0.597322 +0.640986 0.714137 0.214660 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.478261 1 0.855000 0.830000 0.550802 0.679643 +0.808476 0.714137 0.356021 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.173913 1 0.783000 0.674000 0.505236 0.588571 +0.521542 0.529843 0.418848 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.652174 0 0.933000 0.592000 0.911793 0.662500 +0.881914 0.783246 0.089006 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.869565 0 0.733000 0.600000 0.505566 0.760357 +0.670714 0.506807 0.497383 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.521739 0 0.935500 0.812000 0.696887 0.613036 +0.868219 0.829320 0.104712 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.478261 1 0.635500 0.526000 0.643963 0.671072 +0.875163 0.403142 0.717277 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.913043 0 0.781500 0.540000 0.505047 0.592678 +0.598542 0.587435 0.591623 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.391304 1 0.747000 0.587220 0.536321 0.603393 +0.726747 0.598953 0.685864 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.826087 0 0.940000 0.582000 0.555188 0.626607 +0.618659 0.691100 0.089006 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.217391 1 0.755500 0.602000 0.505660 0.699286 +0.476206 0.541362 0.575917 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.817500 0.672000 0.505236 0.594643 +0.447201 0.621990 0.261781 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.798000 0.688000 0.505236 0.570357 +0.482544 0.518325 0.465969 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.732500 0.576000 0.505660 0.670893 +0.546454 0.437697 0.607331 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.739130 0 0.815500 0.528000 0.572830 0.790536 +0.906485 0.645027 0.214660 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.750000 0.566000 0.505377 0.578928 +0.384078 0.472252 0.670158 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.667000 0.547280 0.526179 0.595715 +0.770711 0.391623 0.717277 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.901000 0.620000 0.705189 0.661607 +0.633332 0.668063 0.136125 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.756500 0.572880 0.505377 0.619107 +0.507806 0.587435 0.591623 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.759000 0.634000 0.505472 0.570179 +0.517460 0.472252 0.465969 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.773500 0.646000 0.505047 0.698393 +0.487382 0.610471 0.497383 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.608696 0 0.930500 0.570000 0.899481 0.617321 +0.878724 0.714137 0.151833 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.130435 1 0.783000 0.554000 0.505377 0.707500 +0.525796 0.518325 0.387435 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.887000 0.818000 0.504858 0.645357 +0.646493 0.691100 0.167539 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.739130 0 0.713500 0.558000 0.571557 0.515357 +0.553026 0.426178 0.685864 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.780500 0.578000 0.505519 0.596785 +0.427384 0.506807 0.324608 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.791500 0.631940 0.505141 0.585357 +0.335127 0.483770 0.607331 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.810000 0.682000 0.505283 0.578750 +0.441854 0.610471 0.277487 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.698000 0.556000 0.575707 0.798928 +0.885359 0.506807 0.591623 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.717500 0.559640 0.505519 0.604643 +0.436537 0.472252 0.717277 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.652174 0 0.967000 0.728000 0.874622 0.621965 +0.867327 0.852356 0.089006 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.173913 1 0.787500 0.590000 0.505141 0.545000 +0.447255 0.541362 0.638744 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.695652 0 0.759500 0.504000 0.724056 0.728572 +0.821980 0.598953 0.560210 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.777500 0.610000 0.782783 0.608929 +0.497375 0.610471 0.638744 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.718500 0.569580 0.565236 0.632679 +0.412711 0.460733 0.623037 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.831500 0.780000 0.517075 0.574643 +0.614789 0.575917 0.214660 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 1 0 0.842500 0.802000 0.504670 0.702679 +0.523425 0.668063 0.356021 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.705000 0.574000 0.512830 0.650357 +0.442694 0.483770 0.811519 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.130435 1 0.649000 0.532000 0.506226 0.746965 +0.511804 0.380105 0.764398 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.931000 0.612000 0.928774 0.576607 +0.494473 0.679581 0.151833 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.787500 0.564000 0.505424 0.610893 +0.587315 0.552880 0.277487 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 1 0 0.760500 0.566000 0.505566 0.550179 +0.610068 0.495288 0.497383 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.521739 0 0.833000 0.636000 0.810613 0.552500 +0.846722 0.656545 0.450262 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.855500 0.756000 0.655236 0.707678 +0.869081 0.575917 0.261781 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.859500 0.558000 0.820283 0.547321 +0.497758 0.621990 0.528796 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.434783 1 0.730000 0.584000 0.533444 0.601250 +0.630194 0.449215 0.670158 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.881000 0.838000 0.504906 0.654285 +0.498705 0.656545 0.089006 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.853500 0.642000 0.867264 0.705893 +0.828477 0.668063 0.418848 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.173913 1 0.832500 0.746420 0.504906 0.628214 +0.475366 0.633508 0.465969 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.130435 1 0.792500 0.602000 0.505047 0.528929 +0.458238 0.541362 0.623037 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.911500 0.918000 0.679859 0.630893 +0.443152 0.806283 0.136125 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.921000 0.582000 0.569812 0.698215 +0.552419 0.691100 0.089006 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.304348 1 0.787500 0.696000 0.504953 0.520000 +0.474165 0.621990 0.607331 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.928500 0.840000 0.504434 0.627321 +0.501576 0.852356 0.089006 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.864500 0.666000 0.504906 0.601607 +0.533813 0.633508 0.120419 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.910000 0.642000 0.504858 0.553928 +0.495749 0.656545 0.151833 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.347826 1 0.807500 0.734020 0.508113 0.591071 +0.612471 0.633508 0.293194 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.785000 0.558000 0.505000 0.582143 +0.475633 0.587435 0.685864 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.723500 0.586600 0.547122 0.646428 +0.339634 0.460733 0.638744 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.391304 1 0.810500 0.606000 0.589622 0.611428 +0.748797 0.575917 0.246073 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.849500 0.726000 0.505000 0.593571 +0.505318 0.645027 0.183246 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.839000 0.728000 0.505141 0.645000 +0.467658 0.656545 0.277487 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.130435 1 0.857000 0.630000 0.505047 0.628928 +0.493058 0.587435 0.214660 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.896000 0.836000 0.504670 0.572143 +0.524967 0.794765 0.089006 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.391304 1 0.855000 0.730000 0.544245 0.795536 +0.800822 0.668063 0.167539 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.680000 0.516000 0.506037 0.579286 +0.347800 0.287958 0.795812 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.826087 0 0.912500 0.888000 0.535283 0.611965 +0.609621 0.829320 0.089006 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.900500 0.830000 0.611132 0.634822 +0.415847 0.771728 0.136125 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.130435 1 0.799500 0.618000 0.505000 0.606785 +0.440482 0.529843 0.544502 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.785500 0.636000 0.813868 0.788929 +0.508593 0.575917 0.575917 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.826087 0 0.669000 0.564000 0.506037 0.650357 +0.530559 0.380105 0.764398 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.960000 0.568000 0.842924 0.574464 +0.507763 0.714137 0.183246 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.130435 1 0.819000 0.716000 0.505000 0.707143 +0.466723 0.610471 0.230367 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0 1 0.859500 0.738000 0.505000 0.571607 +0.565029 0.702618 0.214660 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 0.043478 1 0.720500 0.562000 0.505472 0.664285 +0.469837 0.518325 0.732985 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.760500 0.592000 0.505000 0.654643 +0.523043 0.564398 0.575917 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.872500 0.820000 0.505000 0.515893 +0.454304 0.702618 0.167539 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.347826 1 0.714500 0.532000 0.515047 0.623928 +0.621529 0.460733 0.591623 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.567500 0.516000 0.506981 0.698035 +0.424512 0.322513 0.952881 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0 1 0.725000 0.552000 0.505754 0.721071 +0.595831 0.483770 0.497383 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.726000 0.552900 0.505472 0.589285 +0.445958 0.495288 0.685864 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.565217 0 0.834000 0.628000 0.813868 0.657500 +0.666355 0.564398 0.418848 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.891500 0.912000 0.504717 0.583750 +0.426118 0.794765 0.104712 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.780500 0.534000 0.788302 0.604643 +0.331639 0.310995 0.638744 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.173913 1 0.773000 0.556000 0.505424 0.678035 +0.516376 0.506807 0.418848 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.260870 1 0.811500 0.747080 0.504858 0.609107 +0.431179 0.714137 0.450262 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.708500 0.564000 0.534481 0.664643 +0.537448 0.495288 0.732985 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.936000 0.586000 0.797170 0.602678 +0.840662 0.737173 0.104712 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.802500 0.724000 0.505189 0.562500 +0.462321 0.506807 0.450262 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.347826 1 0.784500 0.624020 0.505472 0.629821 +0.502734 0.472252 0.607331 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.781500 0.601200 0.537359 0.652143 +0.586156 0.610471 0.544502 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.799500 0.502000 0.833632 0.745893 +0.805638 0.621990 0.544502 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.851000 0.516000 0.505000 0.598750 +0.573705 0.518325 0.183246 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.875000 0.664000 0.504906 0.520893 +0.422704 0.633508 0.167539 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.825000 0.608000 0.505283 0.670179 +0.427702 0.541362 0.246073 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.652174 0 0.770500 0.540000 0.645330 0.707322 +0.901829 0.552880 0.371727 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.660500 0.543100 0.548962 0.546785 +0.759643 0.391623 0.827225 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.478261 1 0.883000 0.764000 0.747642 0.542857 +0.852782 0.794765 0.151833 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.704000 0.544000 0.588821 0.663750 +0.684238 0.518325 0.575917 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.826087 0 0.822500 0.518000 0.504953 0.587857 +0.351543 0.299477 0.513089 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.809000 0.732000 0.505189 0.557679 +0.466542 0.506807 0.434556 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.086957 1 0.782500 0.610000 0.505519 0.675000 +0.502606 0.564398 0.434556 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.577000 0.516000 0.506981 0.639464 +0.488635 0.310995 0.842933 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.086957 1 0.765500 0.614000 0.505472 0.644107 +0.534068 0.529843 0.465969 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.750000 0.570000 0.510661 0.596964 +0.513983 0.460733 0.685864 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.739000 0.582420 0.505236 0.514822 +0.477493 0.541362 0.591623 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 1 0 0.764500 0.564400 0.504953 0.565179 +0.547869 0.598953 0.575917 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.391304 1 0.810000 0.720660 0.508349 0.581250 +0.784788 0.610471 0.293194 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0 1 0.781000 0.562000 0.505377 0.552143 +0.449795 0.587435 0.638744 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.826087 0 0.902000 0.532000 0.570283 0.633928 +0.625144 0.587435 0.136125 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.869565 0 0.935500 0.806000 0.519151 0.627679 +0.610992 0.840838 0.073298 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.304348 1 0.729000 0.585960 0.505566 0.562143 +0.320836 0.437697 0.654450 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.826087 0 0.681000 0.522000 0.506085 0.532143 +0.653585 0.414660 0.623037 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.927000 0.734000 0.664905 0.656071 +0.528773 0.679581 0.151833 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.826087 0 0.814500 0.648000 0.505141 0.643750 +0.675201 0.541362 0.324608 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.173913 1 0.833000 0.692000 0.505236 0.527857 +0.477355 0.575917 0.151833 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.130435 1 0.850000 0.762000 0.505047 0.537322 +0.509847 0.679581 0.230367 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.875500 0.596000 0.750754 0.706786 +0.843340 0.668063 0.387435 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.862500 0.676000 0.505000 0.533393 +0.431317 0.564398 0.151833 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.869565 0 0.782500 0.578000 0.504953 0.680179 +0.567230 0.702618 0.434556 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 0.043478 1 0.823000 0.736000 0.505000 0.667857 +0.495004 0.645027 0.167539 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.391304 1 0.725500 0.568000 0.536227 0.631072 +0.319221 0.322513 0.685864 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.843500 0.792000 0.535613 0.646071 +0.509092 0.679581 0.183246 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.734000 0.582000 0.505472 0.588750 +0.447266 0.506807 0.670158 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.869565 0 0.923000 0.550000 0.504906 0.540536 +0.635256 0.645027 0.136125 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0 1 0.805000 0.696000 0.504717 0.591785 +0.436506 0.610471 0.513089 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.173913 1 0.889500 0.880000 0.504670 0.558750 +0.459313 0.794765 0.120419 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.832500 0.756000 0.532170 0.585536 +0.490220 0.633508 0.214660 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.130435 1 0.850500 0.754000 0.505047 0.563928 +0.545668 0.668063 0.246073 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 1 0 0.838000 0.730240 0.504717 0.582143 +0.511495 0.679581 0.340314 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.913043 0 0.844000 0.520000 0.505000 0.623035 +0.699559 0.575917 0.198952 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.875000 0.724000 0.734670 0.672857 +0.863297 0.679581 0.246073 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.608000 0.512000 0.514812 0.525536 +0.316286 0.276440 0.890052 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.777000 0.512000 0.646463 0.580178 +0.806340 0.564398 0.513089 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 1 0 0.733500 0.550000 0.505424 0.657500 +0.533090 0.518325 0.732985 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.565217 0 0.802000 0.656800 0.532500 0.565535 +0.795941 0.714137 0.465969 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.565217 0 0.674500 0.566000 0.762972 0.553572 +0.691585 0.414660 0.638744 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.851500 0.590000 0.505189 0.525893 +0.511517 0.529843 0.230367 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.845000 0.564000 0.657547 0.702679 +0.533260 0.495288 0.403142 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.775500 0.574080 0.820991 0.724107 +0.680208 0.598953 0.560210 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.865000 0.714000 0.504717 0.611786 +0.567719 0.575917 0.246073 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0 1 0.784500 0.637980 0.505047 0.675714 +0.469189 0.598953 0.575917 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.347826 1 0.639500 0.526000 0.510424 0.715715 +0.623687 0.380105 0.780106 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.838000 0.778000 0.507878 0.776964 +0.632384 0.771728 0.403142 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.842000 0.594000 0.506274 0.700000 +0.466191 0.541362 0.183246 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.608696 0 0.838000 0.624000 0.629434 0.549107 +0.888900 0.656545 0.293194 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.911000 0.604000 0.512972 0.545178 +0.461831 0.598953 0.151833 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.757000 0.506000 0.505377 0.677321 +0.469636 0.598953 0.560210 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.260870 1 0.650000 0.547880 0.506274 0.531785 +0.391255 0.391623 0.811519 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.717500 0.592000 0.545991 0.513928 +0.797079 0.437697 0.481675 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.858500 0.700000 0.704246 0.648571 +0.799301 0.702618 0.151833 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0 1 0.799500 0.690000 0.505047 0.626965 +0.511782 0.668063 0.528796 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.724500 0.572600 0.532405 0.586250 +0.431976 0.483770 0.717277 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.869565 0 0.713000 0.584000 0.505754 0.529285 +0.679093 0.449215 0.497383 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.835500 0.772000 0.520990 0.659464 +0.494483 0.529843 0.073298 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.709500 0.526000 0.505472 0.671072 +0.446063 0.506807 0.717277 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.086957 1 0.838000 0.792000 0.505000 0.619821 +0.523488 0.564398 0.198952 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.608696 0 0.815500 0.566000 0.803254 0.610000 +0.907878 0.633508 0.356021 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.718000 0.540000 0.506792 0.604285 +0.382005 0.437697 0.623037 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.739130 0 0.805000 0.576000 0.600000 0.677678 +0.862829 0.621990 0.418848 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.739130 0 0.831500 0.506000 0.644198 0.582857 +0.797185 0.598953 0.497383 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.826500 0.590000 0.505000 0.583393 +0.487456 0.645027 0.560210 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0 1 0.819500 0.706380 0.504953 0.612500 +0.472198 0.564398 0.481675 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.782609 0 0.919000 0.768000 0.508680 0.604822 +0.756931 0.783246 0.136125 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.735000 0.573640 0.505424 0.571072 +0.391946 0.449215 0.654450 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.733000 0.502000 0.505519 0.631072 +0.486935 0.506807 0.623037 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.739130 0 0.678500 0.560000 0.548868 0.716429 +0.681452 0.426178 0.701571 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.666000 0.526000 0.506320 0.569286 +0.527486 0.368587 0.670158 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.173913 1 0.774500 0.608000 0.505519 0.506250 +0.476653 0.518325 0.450262 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.831000 0.682000 0.505141 0.601250 +0.520203 0.541362 0.214660 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.818000 0.676700 0.505472 0.530893 +0.755953 0.587435 0.230367 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0 1 0.811500 0.730000 0.505000 0.609821 +0.427501 0.564398 0.497383 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.913043 0 0.661500 0.564000 0.506085 0.643571 +0.523287 0.380105 0.795812 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.718000 0.555820 0.505660 0.660536 +0.346121 0.426178 0.732985 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.731500 0.554000 0.569953 0.512679 +0.777813 0.518325 0.418848 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.260870 1 0.678000 0.548000 0.506226 0.576250 +0.516238 0.380105 0.670158 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.744000 0.600000 0.606981 0.586250 +0.521235 0.426178 0.544502 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.521739 0 0.851000 0.715200 0.646038 0.628035 +0.841373 0.621990 0.324608 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.826087 0 0.754000 0.583320 0.505377 0.762143 +0.565263 0.564398 0.497383 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.434783 1 0.910000 0.746000 0.702217 0.560357 +0.775815 0.806283 0.120419 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.818500 0.534000 0.505189 0.655000 +0.604645 0.564398 0.246073 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.932000 0.620000 0.611604 0.560000 +0.494272 0.679581 0.151833 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.773000 0.516000 0.805330 0.558393 +0.859767 0.564398 0.513089 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.434783 1 0.782500 0.694000 0.656839 0.659822 +0.655106 0.506807 0.465969 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.565217 0 0.739000 0.524000 0.840095 0.645000 +0.804511 0.575917 0.607331 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.347826 1 0.709500 0.580000 0.517689 0.622679 +0.576534 0.472252 0.732985 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.347826 1 0.738500 0.598000 0.551651 0.704107 +0.615916 0.529843 0.591623 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.955500 0.746000 0.824434 0.541429 +0.477068 0.783246 0.120419 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.260870 1 0.729500 0.566000 0.505708 0.683393 +0.484618 0.449215 0.481675 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.868500 0.603820 0.629906 0.610357 +0.695520 0.587435 0.246073 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.807500 0.654000 0.505141 0.596607 +0.522617 0.506807 0.403142 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.737000 0.544000 0.612736 0.589643 +0.347024 0.426178 0.717277 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.682500 0.574000 0.505991 0.757500 +0.525689 0.426178 0.560210 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.810500 0.636360 0.583632 0.568928 +0.820587 0.598953 0.418848 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.838500 0.596000 0.505189 0.625357 +0.428766 0.564398 0.167539 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.826087 0 0.934500 0.670000 0.534010 0.637321 +0.640167 0.760210 0.089006 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.762500 0.556320 0.802783 0.648036 +0.553961 0.426178 0.434556 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.913043 0 0.873500 0.550000 0.504953 0.594643 +0.615469 0.518325 0.151833 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.956522 0 0.763000 0.560000 0.505189 0.733393 +0.567038 0.587435 0.591623 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.868000 0.725820 0.520330 0.561072 +0.607547 0.598953 0.356021 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 1 0 0.833000 0.770000 0.504858 0.648393 +0.624793 0.598953 0.246073 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.695652 0 0.937000 0.664000 0.714622 0.658750 +0.847040 0.806283 0.104712 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.513000 0.514000 0.516981 0.603036 +0.383737 0.195812 0.890052 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.848500 0.788000 0.587312 0.562500 +0.520544 0.656545 0.293194 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.834500 0.686000 0.505236 0.540357 +0.490540 0.598953 0.167539 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.672000 0.564000 0.522500 0.765893 +0.777813 0.403142 0.575917 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.793500 0.544180 0.678491 0.611965 +0.796282 0.472252 0.575917 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.904000 0.784000 0.574198 0.722322 +0.555227 0.737173 0.246073 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.815000 0.626000 0.505000 0.749465 +0.564232 0.495288 0.403142 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.584500 0.512000 0.773773 0.797321 +0.474878 0.322513 0.905760 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.858500 0.510000 0.505000 0.585000 +0.594056 0.518325 0.183246 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.652174 0 0.882000 0.770000 0.725425 0.719643 +0.856035 0.771728 0.308900 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.869565 0 0.872000 0.718000 0.504858 0.648929 +0.644793 0.656545 0.183246 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.918000 0.852000 0.685849 0.578393 +0.782076 0.875393 0.136125 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.130435 1 0.749000 0.620000 0.505283 0.650178 +0.411435 0.518325 0.732985 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.608696 0 0.954000 0.766000 0.730754 0.624286 +0.857226 0.840838 0.089006 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.878000 0.668000 0.776085 0.762857 +0.501852 0.621990 0.261781 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.983000 0.684000 0.957029 0.557857 +0.407522 0.794765 0.136125 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.693000 0.584000 0.530330 0.596785 +0.448085 0.426178 0.607331 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.655500 0.548000 0.506179 0.567500 +0.506880 0.357068 0.670158 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.784000 0.698000 0.563491 0.605536 +0.536768 0.506807 0.403142 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.478261 1 0.746500 0.544000 0.754434 0.770715 +0.884221 0.529843 0.340314 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.826087 0 0.840000 0.564000 0.504717 0.593750 +0.510571 0.564398 0.434556 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.723000 0.550000 0.540471 0.581607 +0.413167 0.437697 0.654450 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.695652 0 0.941000 0.628000 0.800000 0.590536 +0.870537 0.794765 0.104712 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 1 0 0.852500 0.733100 0.504717 0.597678 +0.555566 0.702618 0.356021 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.735500 0.604000 0.505519 0.533036 +0.392052 0.460733 0.701571 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.173913 1 0.858000 0.686000 0.505047 0.553572 +0.444182 0.621990 0.151833 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.763000 0.594920 0.525283 0.690535 +0.536321 0.598953 0.654450 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.347826 1 0.775000 0.614000 0.505896 0.700714 +0.632619 0.564398 0.497383 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.810000 0.560000 0.505189 0.609465 +0.530676 0.529843 0.214660 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.700000 0.532000 0.505519 0.656964 +0.447340 0.495288 0.748691 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.745000 0.596600 0.505519 0.552679 +0.510411 0.460733 0.544502 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.845000 0.712000 0.505141 0.608214 +0.468105 0.633508 0.246073 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.796000 0.692000 0.505236 0.576429 +0.469552 0.506807 0.450262 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.086957 1 0.815000 0.702140 0.504953 0.525536 +0.529081 0.564398 0.293194 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.554000 0.516000 0.507029 0.693215 +0.424427 0.334032 0.937173 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.913043 0 0.827000 0.614000 0.504764 0.513572 +0.576692 0.633508 0.544502 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.963000 0.736000 0.571179 0.678928 +0.610131 0.840838 0.073298 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.750500 0.548000 0.505566 0.505357 +0.430477 0.460733 0.748691 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.695652 0 0.914000 0.520000 0.855188 0.677321 +0.870006 0.714137 0.136125 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.815500 0.694000 0.504953 0.593215 +0.447234 0.552880 0.513089 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.217391 1 0.815500 0.720060 0.505000 0.597857 +0.514121 0.529843 0.293194 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.555000 0.520000 0.506934 0.762679 +0.430913 0.310995 1 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.478261 1 0.878500 0.806000 0.678491 0.655178 +0.886730 0.633508 0.167539 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.803000 0.574000 0.867264 0.639643 +0.532548 0.621990 0.591623 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.695652 0 0.840500 0.622000 0.661698 0.676072 +0.876992 0.552880 0.308900 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.347826 1 0.851000 0.820000 0.515849 0.632679 +0.633884 0.598953 0.183246 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.086957 1 0.734000 0.532000 0.505377 0.782857 +0.449849 0.564398 0.717277 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.260870 1 0.854500 0.772000 0.505141 0.513928 +0.462896 0.645027 0.167539 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.652174 0 0.848000 0.768000 0.576509 0.603215 +0.886348 0.702618 0.230367 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.652174 0 0.770000 0.516000 0.759292 0.620535 +0.931768 0.552880 0.308900 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.715000 0.552780 0.505519 0.615179 +0.427511 0.483770 0.717277 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.391304 1 0.855000 0.830000 0.552217 0.634465 +0.786946 0.621990 0.198952 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.763000 0.650000 0.505424 0.557857 +0.553642 0.495288 0.434556 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.956522 0 0.834000 0.631320 0.504764 0.581607 +0.482586 0.518325 0.434556 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.260870 1 0.770000 0.610000 0.505189 0.527322 +0.437612 0.518325 0.638744 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.879500 0.648000 0.513538 0.632857 +0.539235 0.633508 0.136125 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.849000 0.736000 0.629246 0.564465 +0.828328 0.748691 0.183246 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.304348 1 0.796000 0.634000 0.505424 0.702679 +0.513292 0.587435 0.308900 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.670000 0.520000 0.506085 0.605714 +0.327131 0.276440 0.811519 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.762000 0.538000 0.505236 0.706429 +0.494846 0.621990 0.670158 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.859000 0.786000 0.608821 0.542500 +0.855302 0.702618 0.167539 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.608696 0 0.905000 0.680000 0.732359 0.618214 +0.908400 0.783246 0.183246 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.739130 0 0.693000 0.514000 0.583727 0.648571 +0.828943 0.460733 0.575917 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.826087 0 0.846500 0.594000 0.505000 0.501072 +0.609588 0.633508 0.497383 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.738500 0.587360 0.515849 0.551965 +0.551866 0.541362 0.575917 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.701000 0.572000 0.505943 0.628393 +0.469593 0.437697 0.607331 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.909500 0.750000 0.826509 0.625179 +0.508083 0.714137 0.167539 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.304348 1 0.708500 0.556000 0.506085 0.660715 +0.509422 0.483770 0.623037 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.521739 0 0.810000 0.709080 0.527453 0.579464 +0.871144 0.645027 0.293194 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.818500 0.550000 0.513632 0.559107 +0.677657 0.587435 0.403142 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.956522 0 0.770500 0.678000 0.505000 0.560000 +0.589026 0.598953 0.575917 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.478261 1 0.836000 0.760000 0.679387 0.714464 +0.797844 0.668063 0.450262 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.808500 0.562000 0.505283 0.596250 +0.581361 0.552880 0.371727 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.647500 0.518000 0.506274 0.578215 +0.326503 0.276440 0.827225 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.720500 0.574160 0.544622 0.596071 +0.401111 0.460733 0.748691 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.837500 0.720000 0.599528 0.575893 +0.733275 0.645027 0.167539 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.793000 0.614000 0.535613 0.682500 +0.672681 0.587435 0.685864 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.752000 0.565200 0.603679 0.627321 +0.458142 0.460733 0.607331 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.597000 0.512000 0.792877 0.586785 +0.509528 0.207330 0.827225 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.608696 0 0.841000 0.666000 0.946698 0.689286 +0.859587 0.587435 0.120419 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.173913 1 0.801000 0.696000 0.504906 0.616607 +0.425054 0.633508 0.575917 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.768000 0.640000 0.537264 0.638393 +0.617957 0.495288 0.434556 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.260870 1 0.738000 0.608000 0.505472 0.590536 +0.428883 0.541362 0.701571 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.887000 0.582340 0.687925 0.567857 +0.885998 0.564398 0.183246 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.739130 0 0.879000 0.629320 0.597688 0.612321 +0.886529 0.587435 0.120419 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.750500 0.600000 0.505236 0.632143 +0.420249 0 0.434556 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.724500 0.502000 0.505519 0.583393 +0.389574 0.449215 0.638744 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.830500 0.688000 0.712736 0.533571 +0.487562 0.621990 0.261781 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.260870 1 0.873000 0.832000 0.504717 0.642857 +0.516121 0.633508 0.136125 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.695652 0 0.866000 0.618000 0.744104 0.616072 +0.831805 0.725655 0.277487 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.434783 1 0.635500 0.526000 0.636792 0.759286 +0.843925 0.403142 0.717277 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.130435 1 0.776000 0.566000 0.505283 0.571607 +0.421248 0.506807 0.623037 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.838000 0.792000 0.504717 0.672143 +0.437899 0.748691 0.371727 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.841000 0.768000 0.643963 0.621965 +0.851389 0.702618 0.230367 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.792500 0.710540 0.505424 0.555893 +0.461801 0.564398 0.261781 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.173913 1 0.845000 0.796680 0.504764 0.603750 +0.451752 0.668063 0.387435 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.826087 0 0.753500 0.520000 0.505519 0.558750 +0.656052 0.426178 0.450262 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.391304 1 0.637500 0.526000 0.558632 0.734285 +0.772560 0.403142 0.780106 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.810500 0.588000 0.790849 0.717143 +0.502958 0.506807 0.450262 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.704500 0.590000 0.505708 0.657322 +0.425129 0.472252 0.795812 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.802500 0.696000 0.505377 0.572321 +0.436304 0.610471 0.277487 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.732000 0.612000 0.515849 0.573928 +0.397943 0.368587 0.387435 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.719500 0.578900 0.529293 0.579643 +0.388734 0.472252 0.701571 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.870000 0.548000 0.785378 0.649822 +0.497343 0.598953 0.214660 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.944000 0.786000 0.881981 0.666785 +0.489147 0.794765 0.120419 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 0.043478 1 0.896500 0.900000 0.504670 0.585536 +0.467723 0.829320 0.104712 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.913043 0 0.831500 0.722000 0.505000 0.550357 +0.698922 0.575917 0.308900 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.478261 1 0.812500 0.732000 0.705189 0.621250 +0.882691 0.564398 0.340314 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.820500 0.698000 0.505189 0.651964 +0.461939 0.575917 0.198952 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.863000 0.730000 0.736510 0.636250 +0.881478 0.737173 0.230367 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.909000 0.614000 0.588255 0.626786 +0.689469 0.610471 0.041885 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.791500 0.536000 0.858302 0.635357 +0.475899 0.518325 0.623037 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 0.043478 1 0.784000 0.568000 0.505283 0.603215 +0.435411 0.529843 0.607331 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.775000 0.649800 0.505377 0.616072 +0.684227 0.621990 0.308900 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.869565 0 0.887500 0.540000 0.507123 0.590000 +0.614512 0.541362 0.167539 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.736500 0.594200 0.506509 0.632321 +0.320847 0.460733 0.670158 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.086957 1 0.789500 0.524000 0.505141 0.746428 +0.427341 0.598953 0.623037 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.703500 0.558000 0.643963 0.788929 +0.856280 0.483770 0.607331 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 1 0 0.867500 0.842000 0.504717 0.675714 +0.611832 0.610471 0.136125 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.764500 0.600320 0.505377 0.609821 +0.439589 0.610471 0.732985 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.391304 1 0.789000 0.657420 0.536085 0.682857 +0.770435 0.564398 0.371727 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.778500 0.552000 0.511132 0.632500 +0.551866 0.460733 0.528796 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.217391 1 0.729500 0.630000 0.505566 0.574464 +0.322782 0.403142 0.670158 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.478261 1 0.668500 0.576000 0.585472 0.657857 +0.730330 0.380105 0.748691 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.803500 0.692000 0.505283 0.540893 +0.476292 0.575917 0.214660 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.767000 0.560000 0.542405 0.590357 +0.551387 0.449215 0.450262 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.956522 0 0.834000 0.516000 0.505047 0.642143 +0.691246 0.575917 0.214660 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.217391 1 0.746500 0.626000 0.505283 0.603215 +0.441513 0.564398 0.575917 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.830500 0.668000 0.505189 0.646607 +0.497196 0.564398 0.340314 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.782609 0 0.806500 0.556000 0.622170 0.743750 +0.734913 0.610471 0.356021 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0 1 0.769500 0.568000 0.505000 0.665893 +0.510528 0.587435 0.575917 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.880000 0.880000 0.504906 0.579286 +0.463416 0.748691 0.151833 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.809000 0.674760 0.531368 0.595357 +0.674148 0.541362 0.450262 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.862500 0.731980 0.504575 0.539464 +0.495069 0.714137 0.403142 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.725500 0.584000 0.505708 0.649107 +0.494431 0.449215 0.623037 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.391304 1 0.848500 0.716000 0.588207 0.565000 +0.744970 0.633508 0.151833 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.565217 0 0.775000 0.618000 0.630378 0.745893 +0.888527 0.598953 0.340314 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.773000 0.566000 0.505047 0.550893 +0.464841 0.587435 0.528796 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.840000 0.796000 0.504670 0.689643 +0.492293 0.668063 0.356021 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.910000 0.772000 0.504670 0.535000 +0.502202 0.737173 0.120419 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.869565 0 0.810500 0.580000 0.504953 0.553393 +0.476867 0.518325 0.575917 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.347826 1 0.832500 0.770000 0.508113 0.573750 +0.670947 0.668063 0.277487 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.819500 0.550000 0.522029 0.626965 +0.549134 0.529843 0.513089 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.763000 0.576020 0.505283 0.609107 +0.507986 0.598953 0.607331 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 0.043478 1 0.882000 0.878000 0.504764 0.674821 +0.523073 0.714137 0.167539 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.916500 0.638000 0.843396 0.612143 +0.537109 0.725655 0.183246 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.751500 0.538000 0.505802 0.580357 +0.577809 0.575917 0.638744 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.956522 0 0.765500 0.568000 0.505660 0.644464 +0.590345 0.598953 0.418848 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.848500 0.814000 0.505991 0.587322 +0.508539 0.668063 0.277487 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.901000 0.622000 0.804245 0.663929 +0.768574 0.691100 0.120419 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.565217 0 0.862500 0.834000 0.578679 0.647322 +0.821864 0.714137 0.340314 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.173913 1 0.816500 0.703720 0.505047 0.582143 +0.437420 0.575917 0.497383 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.869565 0 0.836000 0.756000 0.504764 0.598036 +0.672597 0.633508 0.230367 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.727000 0.568520 0.520330 0.552143 +0.699474 0.529843 0.623037 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 1 0 0.882500 0.644000 0.504906 0.573035 +0.566453 0.656545 0.120419 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.434783 1 0.822500 0.762000 0.564292 0.665000 +0.727012 0.702618 0.403142 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.790000 0.632000 0.505424 0.612857 +0.480258 0.529843 0.371727 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 0.043478 1 0.835000 0.786000 0.505047 0.614107 +0.544541 0.587435 0.198952 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.086957 1 0.718500 0.548000 0.505754 0.703035 +0.533280 0.472252 0.560210 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.732500 0.504000 0.505519 0.624286 +0.423918 0.483770 0.607331 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.652174 0 0.757000 0.544000 0.752170 0.577500 +0.499364 0.449215 0.434556 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.565217 0 0.889500 0.574000 0.910849 0.643571 +0.841724 0.702618 0.167539 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.695652 0 0.938000 0.574000 0.859905 0.637500 +0.869368 0.748691 0.089006 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.917000 0.656000 0.555896 0.639464 +0.759494 0.760210 0.167539 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.782609 0 0.942000 0.532000 0.638207 0.615179 +0.735157 0.691100 0.104712 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.666000 0.544560 0.534387 0.539822 +0.735891 0.391623 0.780106 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.592500 0.514000 0.506840 0.555000 +0.304399 0.253403 0.937173 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.173913 1 0.771000 0.560000 0.505566 0.606607 +0.507327 0.552880 0.308900 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.747000 0.590000 0.599387 0.615179 +0.537917 0.449215 0.497383 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.836000 0.728000 0.505000 0.625893 +0.660475 0.633508 0.198952 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.347826 1 0.817000 0.673480 0.506509 0.572857 +0.563870 0.575917 0.528796 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 1 0 0.764000 0.606000 0.505189 0.662678 +0.476887 0.541362 0.670158 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.863000 0.744000 0.505000 0.616072 +0.437271 0.633508 0.183246 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.757000 0.604940 0.505141 0.540536 +0.444288 0.564398 0.575917 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.391304 1 0.853000 0.776000 0.542547 0.566965 +0.742333 0.679581 0.183246 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.565217 0 0.812500 0.682960 0.539528 0.589464 +0.851570 0.621990 0.324608 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 1 0 0.923000 0.810000 0.504481 0.617500 +0.522553 0.829320 0.104712 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.865000 0.844000 0.521463 0.661965 +0.430435 0.714137 0.308900 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.130435 1 0.832500 0.738400 0.504906 0.615535 +0.480853 0.621990 0.481675 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.740500 0.610000 0.506792 0.520893 +0.392041 0.483770 0.654450 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.606500 0.522000 0.506462 0.779822 +0.461513 0.334032 0.905760 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.826000 0.756000 0.508680 0.594643 +0.460024 0.598953 0.230367 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.391304 1 0.892000 0.898000 0.595236 0.596429 +0.716380 0.840838 0.104712 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.915000 0.884000 0.504670 0.572857 +0.397921 0.840838 0.104712 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.942000 0.802000 0.522878 0.646964 +0.499831 0.840838 0.073298 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.849500 0.650000 0.505047 0.686428 +0.523765 0.598953 0.246073 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 1 0 0.818500 0.684000 0.505141 0.593393 +0.529667 0.645027 0.151833 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.767000 0.628000 0.507500 0.618393 +0.588229 0.495288 0.465969 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.730000 0.587480 0.524010 0.656785 +0.320741 0.460733 0.717277 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.695000 0.538000 0.518255 0.676607 +0.477578 0.403142 0.560210 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.862000 0.558000 0.892594 0.658750 +0.474666 0.598953 0.261781 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.912500 0.602000 0.675708 0.637500 +0.856004 0.633508 0.041885 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.714000 0.573060 0.505519 0.582678 +0.370893 0.472252 0.827225 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.260870 1 0.885000 0.904000 0.504717 0.566965 +0.431807 0.783246 0.120419 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.699500 0.566000 0.679859 0.568750 +0.478653 0.391623 0.654450 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.844000 0.642000 0.649529 0.776785 +0.471189 0.552880 0.214660 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.899000 0.696000 0.735330 0.611428 +0.553046 0.587435 0.261781 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.705000 0.580000 0.505754 0.725178 +0.517534 0.437697 0.591623 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.086957 1 0.719000 0.558000 0.505519 0.644822 +0.448946 0.506807 0.670158 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.721500 0.575180 0.505660 0.628035 +0.403897 0.483770 0.685864 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.826000 0.600000 0.505424 0.531250 +0.466393 0.518325 0.261781 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.608696 0 0.801500 0.576000 0.717405 0.657857 +0.386151 0.460733 0.591623 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.765500 0.584000 0.518727 0.565179 +0.574109 0.483770 0.403142 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.826087 0 0.753000 0.512000 0.505377 0.535893 +0.598945 0.587435 0.670158 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.963000 0.570000 0.893396 0.578750 +0.889250 0.794765 0.089006 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.709500 0.564000 0.505660 0.544643 +0.421248 0.437697 0.811519 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.829000 0.664000 0.540142 0.623572 +0.419931 0.529843 0.528796 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.906500 0.782000 0.504764 0.614107 +0.542159 0.645027 0.167539 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.695652 0 0.830000 0.512000 0.736745 0.542500 +0.842139 0.598953 0.434556 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.782609 0 0.756000 0.628000 0.522972 0.698928 +0.675744 0.621990 0.654450 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.719500 0.579660 0.505519 0.590893 +0.390808 0.472252 0.701571 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.956522 0 0.621000 0.526000 0.506415 0.735714 +0.467180 0.368587 0.842933 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.765000 0.584000 0.505424 0.628214 +0.424300 0.587435 0.842933 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 0.043478 1 0.723000 0.572000 0.505708 0.656607 +0.485564 0.483770 0.497383 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.782500 0.564000 0.505283 0.605893 +0.426693 0.598953 0.670158 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.888500 0.534000 0.828585 0.644643 +0.531017 0.610471 0.230367 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.930500 0.596000 0.504670 0.584107 +0.511910 0.691100 0.167539 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.792000 0.596000 0.505472 0.577857 +0.479715 0.529843 0.450262 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.782609 0 0.942500 0.644000 0.576746 0.608929 +0.724333 0.783246 0.089006 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.913043 0 0.842000 0.700000 0.504764 0.641071 +0.595660 0.621990 0.387435 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.712000 0.536000 0.505802 0.588750 +0.582381 0.472252 0.465969 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.782609 0 0.904500 0.620000 0.573019 0.663215 +0.754954 0.714137 0.151833 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.810500 0.698000 0.510095 0.578393 +0.454676 0.564398 0.308900 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.900500 0.622000 0.504670 0.573572 +0.469062 0.598953 0.151833 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.880000 0.610000 0.504906 0.655178 +0.562021 0.541362 0.041885 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.652174 0 0.809000 0.633100 0.696415 0.681250 +0.848668 0.645027 0.356021 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.772000 0.617120 0.505141 0.625714 +0.333319 0.495288 0.638744 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.777500 0.540000 0.759057 0.568572 +0.892419 0.610471 0.277487 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.710500 0.522000 0.694575 0.661785 +0.487126 0.403142 0.481675 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.779500 0.598000 0.516981 0.602500 +0.400697 0.495288 0.371727 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.815500 0.694000 0.505283 0.658750 +0.494993 0.598953 0.277487 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.773000 0.668000 0.544056 0.607679 +0.445491 0.529843 0.418848 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.730500 0.586000 0.505472 0.584643 +0.463470 0.506807 0.701571 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.753000 0.568380 0.519529 0.625714 +0.435835 0.472252 0.623037 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.796500 0.632580 0.505141 0.590000 +0.346620 0.483770 0.560210 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.130435 1 0.693500 0.540000 0.505991 0.606429 +0.518534 0.391623 0.591623 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.608696 0 0.936500 0.566000 0.818208 0.695357 +0.891335 0.760210 0.120419 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.914500 0.700000 0.857076 0.611428 +0.843638 0.806283 0.104712 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.304348 1 0.817000 0.638000 0.505283 0.665000 +0.535323 0.564398 0.434556 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.740000 0.552000 0.583396 0.523036 +0.890399 0.483770 0.387435 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.710000 0.558000 0.505519 0.683393 +0.442821 0.518325 0.732985 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.976000 0.708000 0.525707 0.607679 +0.482246 0.829320 0.073298 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.955000 0.750000 0.543019 0.680893 +0.533388 0.840838 0.073298 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.391304 1 0.824000 0.706000 0.597170 0.577322 +0.749329 0.621990 0.167539 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.565217 0 0.859000 0.690000 0.718538 0.739285 +0.803055 0.702618 0.403142 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.603000 0.512000 0.747783 0.583750 +0.559107 0.230367 0.780106 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 1 0 0.729500 0.594000 0.505660 0.626250 +0.504606 0.506807 0.387435 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.874500 0.852000 0.504906 0.584822 +0.531006 0.714137 0.230367 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.391304 1 0.740000 0.554000 0.601934 0.732143 +0.789339 0.506807 0.387435 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.478261 1 0.900500 0.778000 0.771037 0.726607 +0.892611 0.771728 0.151833 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.695652 0 0.761500 0.542000 0.674104 0.546965 +0.495738 0.449215 0.465969 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.739500 0.580980 0.505519 0.630000 +0.506998 0.483770 0.481675 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.782609 0 0.763000 0.502000 0.560142 0.812500 +0.691011 0.610471 0.654450 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.565217 0 0.733000 0.522000 0.635661 0.678393 +0.890197 0.506807 0.481675 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.921500 0.750000 0.631037 0.686965 +0.532069 0.656545 0.167539 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.838500 0.662000 0.809906 0.628928 +0.827051 0.668063 0.151833 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.721500 0.560000 0.749622 0.604285 +0.493995 0.414660 0.591623 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.956522 0 0.907000 0.712000 0.504717 0.654643 +0.614246 0.702618 0.104712 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.217391 1 0.798500 0.659220 0.505047 0.655357 +0.420631 0.668063 0.607331 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.923000 0.590000 0.705189 0.593929 +0.480013 0.621990 0.151833 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.608696 0 0.891000 0.574000 0.927359 0.639822 +0.860012 0.679581 0.151833 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.718500 0.562680 0.505519 0.606607 +0.442418 0.483770 0.732985 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.751000 0.630000 0.505472 0.644107 +0.518322 0.472252 0.465969 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.478261 1 0.830000 0.516000 0.808113 0.526964 +0.910547 0.610471 0.198952 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.794500 0.656380 0.505189 0.542322 +0.486914 0.529843 0.418848 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.723000 0.584600 0.526556 0.631965 +0.434103 0.529843 0.638744 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.759500 0.632000 0.505472 0.579107 +0.495153 0.483770 0.465969 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 0.043478 1 0.854500 0.746000 0.505047 0.564821 +0.545465 0.679581 0.230367 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.739000 0.577040 0.505472 0.559821 +0.388395 0.472252 0.638744 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.867500 0.691300 0.532500 0.632321 +0.825149 0.748691 0.544502 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.260870 1 0.841000 0.708000 0.505189 0.529107 +0.432274 0.633508 0.167539 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.588000 0.516000 0.625519 0.639822 +0.495377 0.310995 0.842933 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.772500 0.566000 0.752830 0.553035 +0.798716 0.598953 0.528796 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.608696 0 0.821000 0.688000 0.575707 0.615179 +0.383376 0.483770 0.544502 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.347826 1 0.830500 0.724160 0.505377 0.769464 +0.577841 0.645027 0.434556 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.737000 0.548000 0.505566 0.574464 +0.411923 0.460733 0.795812 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.391304 1 0.891500 0.900000 0.582924 0.552679 +0.752136 0.840838 0.136125 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.086957 1 0.827500 0.772000 0.504858 0.592322 +0.462630 0.656545 0.403142 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.521739 0 0.771500 0.584000 0.695991 0.649285 +0.408670 0.495288 0.465969 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0 1 0.788500 0.576000 0.505236 0.572143 +0.450232 0.541362 0.607331 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 1 0 0.833500 0.625880 0.504717 0.576964 +0.472433 0.518325 0.418848 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.826087 0 0.751000 0.562000 0.505472 0.500535 +0.504766 0.449215 0.481675 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.521739 0 0.817500 0.544000 0.792217 0.583215 +0.699124 0.529843 0.481675 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0 1 0.872500 0.660000 0.504953 0.585715 +0.531686 0.633508 0.136125 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.554000 0.516000 0.544953 0.788571 +0.404768 0.218848 0.921466 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.855000 0.554000 0.843066 0.704821 +0.534600 0.564398 0.308900 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 1 0 0.870500 0.576000 0.505000 0.537500 +0.575608 0.575917 0.198952 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.565217 0 0.923500 0.610000 0.914622 0.658036 +0.860118 0.748691 0.104712 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.730500 0.580000 0.505472 0.615714 +0.458473 0.495288 0.685864 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.826087 0 0.841000 0.608000 0.504623 0.596429 +0.585527 0.679581 0.465969 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.782609 0 0.841000 0.586000 0.552453 0.628928 +0.675509 0.679581 0.324608 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0 1 0.818500 0.718000 0.505189 0.559465 +0.509103 0.564398 0.230367 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.744500 0.590000 0.522029 0.526071 +0.408468 0.541362 0.670158 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.951500 0.614000 0.631981 0.563572 +0.709511 0.748691 0.104712 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.086957 1 0.890500 0.910000 0.504717 0.590357 +0.439005 0.806283 0.089006 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0 1 0.785000 0.666000 0.505519 0.567143 +0.565954 0.575917 0.387435 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.697000 0.560000 0.505802 0.596071 +0.339742 0.403142 0.764398 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.757000 0.530000 0.625754 0.706071 +0.925475 0.541362 0.434556 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.608696 0 0.816000 0.694240 0.568774 0.633035 +0.855503 0.621990 0.261781 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.854000 0.706000 0.513774 0.601607 +0.750648 0.633508 0.167539 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.924000 0.666000 0.504858 0.522143 +0.567262 0.702618 0.120419 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.434783 1 0.722500 0.554000 0.669481 0.583571 +0.764736 0.403142 0.623037 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.347826 1 0.726000 0.582520 0.529858 0.711071 +0.527624 0.518325 0.638744 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.761500 0.626000 0.505141 0.683393 +0.453113 0.541362 0.607331 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.885500 0.782000 0.504953 0.572500 +0.538215 0.737173 0.104712 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.391304 1 0.650000 0.528000 0.592736 0.611607 +0.777219 0.391623 0.575917 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.304348 1 0.766500 0.628000 0.506462 0.565714 +0.522000 0.529843 0.434556 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.755500 0.528000 0.757217 0.633572 +0.888942 0.483770 0.450262 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.890000 0.694000 0.730283 0.610893 +0.893142 0.679581 0.230367 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.521739 0 0.713500 0.576000 0.577170 0.534464 +0.909037 0.495288 0.450262 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.717500 0.528000 0.505424 0.653750 +0.457132 0.518325 0.732985 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.749500 0.528000 0.505424 0.646071 +0.438249 0.529843 0.560210 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.782609 0 0.937500 0.574000 0.661321 0.607143 +0.712223 0.748691 0.089006 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.709000 0.559280 0.505472 0.668929 +0.460386 0.495288 0.701571 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.260870 1 0.734000 0.588000 0.505377 0.614821 +0.465075 0.495288 0.638744 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.756000 0.546000 0.505377 0.663929 +0.443534 0.518325 0.575917 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.956522 0 0.796500 0.664000 0.504953 0.628572 +0.493335 0.541362 0.528796 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.695652 0 0.780000 0.618000 0.532642 0.730536 +0.882754 0.529843 0.371727 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.768000 0.564400 0.649246 0.643036 +0.591185 0.437697 0.528796 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.893000 0.902000 0.504717 0.556072 +0.425129 0.806283 0.104712 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.840500 0.798000 0.506698 0.638750 +0.410255 0.691100 0.214660 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 0.043478 1 0.777500 0.637300 0.505141 0.573572 +0.464766 0.506807 0.465969 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.391304 1 0.894500 0.920000 0.605377 0.593215 +0.751031 0.748691 0.120419 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.931500 0.830000 0.703349 0.571965 +0.852803 0.840838 0.104712 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.864000 0.508000 0.504906 0.581429 +0.628386 0.529843 0.151833 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.805000 0.532000 0.711179 0.599107 +0.479141 0.575917 0.544502 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.648500 0.510000 0.506179 0.555893 +0.493325 0.345550 0.811519 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.717000 0.573540 0.513066 0.636964 +0.362334 0.449215 0.732985 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.869565 0 0.832500 0.614000 0.504670 0.525536 +0.576990 0.656545 0.575917 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.828500 0.704000 0.508820 0.531250 +0.618009 0.621990 0.214660 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.478261 1 0.673500 0.556000 0.715330 0.717500 +0.481236 0.403142 0.780106 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.859500 0.828400 0.504575 0.578750 +0.416847 0.748691 0.403142 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.906000 0.776000 0.624717 0.683928 +0.543998 0.725655 0.261781 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.782609 0 0.825500 0.636000 0.510189 0.647500 +0.736284 0.541362 0.308900 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0 1 0.830000 0.776000 0.504764 0.620893 +0.510050 0.645027 0.387435 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.810500 0.678000 0.687453 0.729285 +0.452592 0.598953 0.560210 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.260870 1 0.847000 0.794000 0.505047 0.564821 +0.501980 0.679581 0.261781 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 0.043478 1 0.833500 0.814560 0.504764 0.546429 +0.450944 0.748691 0.356021 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0 1 0.887000 0.848000 0.504717 0.522322 +0.507178 0.783246 0.120419 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.217391 1 0.782000 0.594000 0.505141 0.563214 +0.443141 0.529843 0.670158 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.260870 1 0.821500 0.760000 0.504906 0.776071 +0.548273 0.598953 0.356021 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.913043 0 0.917000 0.618000 0.504717 0.562679 +0.611216 0.679581 0.104712 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.883500 0.672000 0.504953 0.603750 +0.498662 0.645027 0.167539 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.690000 0.582000 0.506226 0.601785 +0.466617 0.414660 0.560210 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.695652 0 0.965500 0.720000 0.870471 0.594464 +0.857693 0.806283 0.073298 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.782000 0.630000 0.505424 0.601607 +0.550154 0.541362 0.513089 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.902000 0.824000 0.504623 0.574107 +0.537852 0.829320 0.089006 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.521739 0 0.651500 0.526000 0.788066 0.703393 +0.879182 0.414660 0.638744 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.891000 0.640000 0.504717 0.573750 +0.461939 0.610471 0.151833 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.712500 0.578960 0.505708 0.674821 +0.391138 0.460733 0.623037 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.086957 1 0.791000 0.552000 0.505283 0.725000 +0.538703 0.518325 0.387435 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.173913 1 0.844000 0.806000 0.504953 0.640715 +0.513547 0.621990 0.198952 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.921000 0.868000 0.710236 0.637857 +0.348747 0.829320 0.151833 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.766500 0.612000 0.505189 0.661429 +0.411435 0 0.010471 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.714000 0.571280 0.508820 0.642678 +0.365237 0.437697 0.717277 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.768500 0.602000 0.506603 0.603750 +0.593662 0.552880 0.387435 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.956522 0 0.816000 0.586000 0.505047 0.628393 +0.488902 0.621990 0.450262 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.673000 0.566000 0.508255 0.764286 +0.645515 0.403142 0.575917 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.874000 0.522000 0.850236 0.555179 +0.869867 0.541362 0.167539 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0 1 0.805500 0.570000 0.505424 0.626965 +0.469913 0.518325 0.261781 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 1 0 0.907500 0.712000 0.504717 0.570000 +0.583072 0.725655 0.120419 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.702000 0.594000 0.505802 0.689465 +0.337146 0.414660 0.764398 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.565217 0 0.794000 0.586000 0.858490 0.719464 +0.876748 0.598953 0.340314 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.759000 0.582000 0.509623 0.690179 +0.865753 0.541362 0.434556 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.651500 0.516000 0.510424 0.772678 +0.598191 0.414660 0.654450 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 0.043478 1 0.717000 0.582000 0.505660 0.566607 +0.345439 0.426178 0.717277 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.735500 0.562000 0.505472 0.504107 +0.456579 0.483770 0.701571 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.608696 0 0.817500 0.552280 0.875095 0.645357 +0.782502 0.633508 0.481675 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.260870 1 0.883500 0.900000 0.504717 0.570535 +0.453815 0.794765 0.136125 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.217391 1 0.782000 0.604000 0.505472 0.741607 +0.479493 0.575917 0.434556 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.668500 0.574000 0.505896 0.591250 +0.481821 0.437697 0.795812 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.846500 0.630000 0.779339 0.715178 +0.468701 0.621990 0.465969 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.875000 0.596000 0.661698 0.714107 +0.800641 0.794765 0.356021 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.913043 0 0.903500 0.584000 0.504764 0.639643 +0.636414 0.633508 0.183246 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.391304 1 0.878000 0.878000 0.570519 0.650178 +0.780259 0.760210 0.151833 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.608696 0 0.749500 0.506000 0.834339 0.707322 +0.816696 0.587435 0.591623 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.790500 0.595940 0.505189 0.566965 +0.508593 0.656545 0.528796 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.654500 0.547320 0.546698 0.588215 +0.729298 0.380105 0.858639 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.130435 1 0.765500 0.621780 0.505472 0.635000 +0.520022 0.541362 0.465969 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.565217 0 0.917500 0.686000 0.873113 0.546785 +0.832049 0.806283 0.120419 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.667000 0.568000 0.506226 0.601071 +0.477876 0.391623 0.748691 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.953000 0.754000 0.504387 0.590893 +0.464319 0.760210 0.120419 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.682000 0.516000 0.659622 0.612321 +0.420207 0.414660 0.732985 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.822000 0.662000 0.592028 0.630357 +0.437409 0.506807 0.528796 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.913043 0 0.765500 0.530000 0.505708 0.546607 +0.673744 0.598953 0.450262 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.766000 0.656000 0.525944 0.573215 +0.479758 0.483770 0.418848 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.842000 0.763480 0.504906 0.543750 +0.454102 0.610471 0.308900 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.755500 0.568100 0.537925 0.601607 +0.469859 0.472252 0.591623 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.173913 1 0.889000 0.912000 0.504717 0.552143 +0.432168 0.806283 0.104712 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.217391 1 0.745500 0.614000 0.505424 0.590000 +0.423311 0.564398 0.701571 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.848000 0.814000 0.505047 0.594285 +0.407511 0.691100 0.183246 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.785500 0.560000 0.505000 0.728572 +0.548007 0.587435 0.560210 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.735500 0.566000 0.664905 0.578750 +0.416804 0.506807 0.654450 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.804000 0.678000 0.505141 0.590000 +0.503394 0.495288 0.481675 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.478261 1 0.702000 0.506000 0.747547 0.650178 +0.881426 0.426178 0.591623 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.826087 0 0.819000 0.684620 0.504764 0.680179 +0.603103 0.598953 0.403142 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0 1 0.749500 0.586000 0.505283 0.598929 +0.439824 0.564398 0.638744 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0 1 0.717500 0.576000 0.505708 0.589285 +0.349895 0.414660 0.717277 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.697000 0.504000 0.591793 0.585715 +0.306824 0.287958 0.732985 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.869565 0 0.814500 0.613520 0.504953 0.581786 +0.544243 0.621990 0.544502 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.714500 0.567720 0.505519 0.580715 +0.406906 0.472252 0.732985 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.686000 0.586000 0.526556 0.654643 +0.317786 0.403142 0.780106 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.703500 0.570000 0.505896 0.643929 +0.470412 0.437697 0.623037 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.861500 0.822600 0.504670 0.685000 +0.483957 0.771728 0.418848 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.086957 1 0.757000 0.603940 0.505377 0.640357 +0.431881 0.564398 0.638744 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.861000 0.652000 0.595944 0.690535 +0.743385 0.656545 0.340314 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.956522 0 0.824000 0.682440 0.504670 0.660178 +0.565550 0.633508 0.403142 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.086957 1 0.796500 0.716000 0.505047 0.617500 +0.419292 0.645027 0.513089 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.946500 0.784000 0.684717 0.603929 +0.829604 0.840838 0.089006 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.925500 0.770000 0.574057 0.671250 +0.840586 0.783246 0.136125 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.731000 0.582000 0.505519 0.587322 +0.454963 0.495288 0.701571 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.826087 0 0.861500 0.824000 0.504764 0.607857 +0.599563 0.725655 0.324608 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.796500 0.637300 0.505000 0.765893 +0.531824 0.668063 0.513089 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.871500 0.576000 0.505000 0.566965 +0.628472 0.575917 0.214660 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.608696 0 0.841500 0.764000 0.569953 0.645893 +0.767660 0.702618 0.340314 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 0.043478 1 0.742000 0.540000 0.505660 0.630357 +0.556810 0.518325 0.340314 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.884500 0.516000 0.577358 0.650357 +0.632055 0.598953 0.167539 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0 1 0.775000 0.672000 0.505424 0.634822 +0.580903 0.541362 0.450262 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.434783 1 0.845000 0.718000 0.668821 0.529107 +0.834303 0.656545 0.214660 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 1 0 0.822000 0.576000 0.504953 0.540536 +0.570101 0.598953 0.575917 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 0.043478 1 0.751500 0.550000 0.505424 0.638929 +0.334224 0.310995 0.560210 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.652174 0 0.873000 0.788000 0.611132 0.696250 +0.843532 0.725655 0.340314 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.799500 0.602000 0.613774 0.672678 +0.802023 0.598953 0.513089 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.853000 0.826000 0.543679 0.589464 +0.734550 0.714137 0.167539 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.841000 0.749380 0.504858 0.601071 +0.474739 0.598953 0.293194 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.521739 0 0.843500 0.504000 0.844481 0.543036 +0.931057 0.621990 0.198952 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.434783 1 0.829000 0.626000 0.690094 0.554107 +0.815462 0.621990 0.261781 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.876000 0.724000 0.630378 0.631786 +0.522043 0.518325 0.308900 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.746000 0.502000 0.505472 0.590715 +0.443619 0.529843 0.638744 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.893000 0.880000 0.613208 0.556607 +0.737411 0.817801 0.136125 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.866000 0.750000 0.505000 0.549286 +0.454804 0.679581 0.183246 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0 1 0.674500 0.524000 0.506085 0.554821 +0.329034 0.276440 0.795812 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.853000 0.572000 0.886321 0.641428 +0.840873 0.645027 0.136125 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.828500 0.586000 0.504953 0.575535 +0.502150 0.645027 0.575917 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.217391 1 0.712000 0.570000 0.505566 0.586071 +0.431721 0.495288 0.732985 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.908000 0.734000 0.863585 0.575714 +0.522659 0.725655 0.151833 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.521739 0 0.865000 0.606000 0.864151 0.666965 +0.846296 0.645027 0.198952 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.608696 0 0.933000 0.586000 0.931604 0.623214 +0.869155 0.725655 0.104712 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.217391 1 0.816500 0.693400 0.505000 0.597500 +0.438388 0.575917 0.528796 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.880000 0.712000 0.808019 0.535357 +0.438867 0.656545 0.214660 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.086957 1 0.882000 0.866000 0.504764 0.549286 +0.449987 0.771728 0.120419 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.929500 0.648000 0.504670 0.576250 +0.628228 0.725655 0.104712 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.217391 1 0.876000 0.872000 0.504764 0.590893 +0.473953 0.760210 0.167539 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.894500 0.814000 0.586179 0.646785 +0.402567 0.760210 0.120419 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.869565 0 0.853500 0.504000 0.504953 0.617679 +0.690289 0.587435 0.167539 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.842000 0.686000 0.505047 0.574107 +0.516163 0.621990 0.136125 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.217391 1 0.730500 0.552000 0.505566 0.667143 +0.333999 0.322513 0.575917 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.130435 1 0.741500 0.566000 0.505708 0.604285 +0.506615 0.460733 0.528796 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.868500 0.774000 0.761368 0.633393 +0.447266 0.587435 0.293194 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.086957 1 0.755000 0.604000 0.505189 0.647500 +0.469785 0.575917 0.607331 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.826087 0 0.877500 0.784000 0.504953 0.691786 +0.608802 0.829320 0.356021 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.806500 0.620000 0.821887 0.681428 +0.496546 0.483770 0.450262 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.675000 0.564000 0.547264 0.751786 +0.850953 0.437697 0.575917 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.849000 0.788000 0.610094 0.616072 +0.533653 0.656545 0.277487 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.936500 0.770000 0.504481 0.655715 +0.466170 0.771728 0.104712 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.347826 1 0.767000 0.562000 0.509292 0.711071 +0.475664 0.518325 0.685864 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.521739 0 0.882000 0.658000 0.762736 0.634286 +0.868571 0.737173 0.183246 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.521739 0 0.747000 0.584000 0.570377 0.617679 +0.681484 0.472252 0.670158 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.260870 1 0.732000 0.588640 0.505566 0.629643 +0.406394 0.506807 0.607331 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.521739 0 0.848500 0.716000 0.699434 0.769107 +0.811698 0.691100 0.387435 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.304348 1 0.784000 0.665360 0.505283 0.621428 +0.523244 0.529843 0.403142 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.571500 0.516000 0.506934 0.688393 +0.422886 0.322513 0.937173 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.985000 0.696000 0.671368 0.600893 +0.582722 0.852356 0.073298 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.826087 0 0.939500 0.644000 0.538962 0.574464 +0.667312 0.748691 0.089006 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.478261 1 0.789500 0.661800 0.531132 0.552143 +0.801481 0.714137 0.434556 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.721500 0.566000 0.572029 0.719822 +0.820864 0.460733 0.591623 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.714500 0.594000 0.505754 0.518750 +0.619700 0.426178 0.497383 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.565217 0 0.747000 0.576000 0.569340 0.611607 +0.672787 0.472252 0.685864 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.744500 0.616000 0.505566 0.670536 +0.551685 0.506807 0.387435 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.173913 1 0.780500 0.610000 0.505472 0.684107 +0.482299 0.564398 0.450262 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.742500 0.534000 0.505754 0.591071 +0.532664 0.575917 0.575917 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 0.043478 1 0.803500 0.676000 0.505000 0.529107 +0.443619 0.529843 0.465969 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.620000 0.512000 0.705189 0.617679 +0.534546 0.334032 0.827225 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.391304 1 0.756000 0.572000 0.531132 0.654285 +0.571122 0.575917 0.607331 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.842000 0.802000 0.506037 0.572143 +0.447765 0.656545 0.198952 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.960500 0.748000 0.846321 0.610893 +0.839832 0.840838 0.073298 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.717000 0.600000 0.505754 0.600893 +0.510804 0.437697 0.544502 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.304348 1 0.845000 0.790480 0.504858 0.659464 +0.489348 0.656545 0.387435 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0 1 0.659500 0.524000 0.506320 0.522678 +0.584869 0.403142 0.654450 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.782609 0 0.771500 0.605880 0.506746 0.745535 +0.633438 0.564398 0.403142 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.870500 0.844000 0.544387 0.648215 +0.439621 0.725655 0.293194 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.521739 0 0.823000 0.628000 0.615754 0.563572 +0.890207 0.656545 0.356021 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.760500 0.588000 0.505424 0.587857 +0.425341 0.587435 0.591623 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.391304 1 0.842000 0.752000 0.584434 0.511786 +0.761982 0.656545 0.198952 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.905500 0.864000 0.504670 0.529643 +0.413944 0.783246 0.120419 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.583000 0.514000 0.664198 0.801428 +0.470135 0.322513 0.905760 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.913043 0 0.919000 0.678000 0.504670 0.616072 +0.639796 0.702618 0.089006 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.741000 0.552000 0.506462 0.539822 +0.717656 0.506807 0.434556 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.848500 0.526520 0.870000 0.658750 +0.895949 0.633508 0.277487 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.956522 0 0.895500 0.628000 0.504764 0.562321 +0.612066 0.645027 0.089006 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.347826 1 0.776000 0.634760 0.508443 0.653036 +0.482130 0.506807 0.528796 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.556500 0.514000 0.743396 0.560535 +0.528295 0.230367 0.858639 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.652174 0 0.760000 0.570000 0.667217 0.647678 +0.696114 0.575917 0.560210 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.680000 0.518000 0.662830 0.807143 +0.783130 0.426178 0.607331 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.086957 1 0.859500 0.620000 0.505047 0.627143 +0.505658 0.598953 0.198952 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.812500 0.542000 0.505236 0.625179 +0.586963 0.575917 0.214660 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.647500 0.510000 0.506179 0.555893 +0.500448 0.345550 0.811519 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.956522 0 0.917500 0.688000 0.504670 0.589464 +0.591972 0.702618 0.104712 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.869565 0 0.829500 0.586000 0.504764 0.610714 +0.496749 0.575917 0.450262 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.391304 1 0.820500 0.720660 0.546321 0.554821 +0.786436 0.598953 0.293194 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.739130 0 0.921000 0.694000 0.582264 0.677857 +0.891123 0.598953 0.104712 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.869565 0 0.794000 0.540000 0.505000 0.599822 +0.602094 0.598953 0.528796 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.869000 0.822000 0.505000 0.501965 +0.452294 0.668063 0.167539 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.565217 0 0.849000 0.814000 0.640283 0.650715 +0.792358 0.760210 0.340314 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.130435 1 0.706500 0.556000 0.505802 0.695179 +0.478035 0.472252 0.591623 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.608696 0 0.740500 0.520000 0.623821 0.699643 +0.894099 0.518325 0.481675 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.521739 0 0.751500 0.530000 0.827217 0.646250 +0.918076 0.564398 0.324608 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.086957 1 0.913000 0.832000 0.504670 0.583571 +0.434369 0.840838 0.073298 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.652500 0.548000 0.506226 0.591607 +0.472103 0.310995 0.685864 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.130435 1 0.656500 0.566000 0.506179 0.588571 +0.484765 0.391623 0.795812 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.739130 0 0.762500 0.542000 0.580661 0.517857 +0.490667 0.460733 0.481675 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.086957 1 0.800000 0.652000 0.504858 0.542678 +0.436453 0.621990 0.591623 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.793000 0.572000 0.505472 0.621607 +0.493516 0.529843 0.356021 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.869565 0 0.802500 0.618220 0.505047 0.669822 +0.350618 0.483770 0.560210 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.478261 1 0.795000 0.558000 0.739953 0.550536 +0.685493 0.506807 0.513089 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.391304 1 0.659500 0.556640 0.515236 0.688750 +0.628749 0.380105 0.827225 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.652174 0 0.924500 0.762000 0.714151 0.681785 +0.910824 0.737173 0.136125 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 0.043478 1 0.816500 0.700720 0.504953 0.523036 +0.558756 0.587435 0.293194 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.526500 0.514000 0.507453 0.647857 +0.407915 0.115183 0.858639 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.521739 0 0.776000 0.614000 0.713915 0.695000 +0.876290 0.541362 0.371727 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.565217 0 0.801000 0.632240 0.539905 0.613928 +0.683516 0.506807 0.481675 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.260870 1 0.773000 0.587960 0.505047 0.512321 +0.439781 0.541362 0.685864 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.304348 1 0.797500 0.641920 0.505236 0.585893 +0.495717 0.645027 0.607331 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.391304 1 0.775000 0.648000 0.508680 0.690000 +0.668237 0.587435 0.638744 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.831000 0.636000 0.574529 0.728572 +0.423769 0.529843 0.214660 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.798000 0.650920 0.542311 0.543214 +0.860224 0.564398 0.356021 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.836000 0.736000 0.581604 0.540536 +0.787499 0.714137 0.214660 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.775500 0.564000 0.505141 0.557143 +0.476728 0.575917 0.591623 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.521739 0 0.900000 0.826000 0.620236 0.675893 +0.882201 0.748691 0.151833 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.739130 0 0.775000 0.591800 0.534576 0.788929 +0.736295 0.575917 0.387435 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 0.043478 1 0.744500 0.570000 0.505754 0.628214 +0.520225 0.506807 0.513089 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.391304 1 0.679500 0.550000 0.588679 0.547500 +0.687119 0.391623 0.544502 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.787500 0.567920 0.782783 0.656429 +0.806670 0.621990 0.481675 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.788000 0.600000 0.633585 0.591429 +0.794792 0.552880 0.293194 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.849500 0.812000 0.505047 0.630000 +0.469859 0.645027 0.293194 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.911000 0.614000 0.857547 0.707143 +0.861712 0.748691 0.089006 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.347826 1 0.708500 0.558000 0.510896 0.667500 +0.607612 0.483770 0.607331 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.870000 0.696000 0.592830 0.618393 +0.518650 0.621990 0.308900 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.880500 0.836000 0.593396 0.646071 +0.466755 0.714137 0.293194 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.652174 0 0.842500 0.620000 0.758160 0.737679 +0.834803 0.691100 0.434556 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.086957 1 0.743500 0.552000 0.505472 0.604107 +0.332416 0.310995 0.638744 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.767000 0.664000 0.604717 0.620714 +0.604358 0.506807 0.481675 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.970000 0.680000 0.510661 0.594822 +0.457121 0.737173 0.104712 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0 1 0.718000 0.520000 0.505943 0.503928 +0.560946 0.391623 0.607331 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.434783 1 0.912500 0.894000 0.699670 0.594464 +0.828529 0.840838 0.104712 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.434783 1 0.741500 0.548000 0.685142 0.763214 +0.862373 0.529843 0.371727 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.608696 0 0.868500 0.808000 0.615613 0.665715 +0.832921 0.714137 0.324608 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.753500 0.558000 0.505472 0.590536 +0.403502 0.483770 0.748691 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.652174 0 0.804000 0.670300 0.519151 0.614821 +0.826403 0.725655 0.434556 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.130435 1 0.875000 0.738000 0.504906 0.536785 +0.467021 0.668063 0.151833 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.913043 0 0.910500 0.620000 0.504717 0.575714 +0.617702 0.679581 0.089006 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.869565 0 0.916000 0.898000 0.510755 0.620000 +0.592343 0.840838 0.073298 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.916500 0.828000 0.504764 0.501428 +0.405927 0.783246 0.136125 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.765500 0.672000 0.538161 0.568214 +0.492548 0.495288 0.513089 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.739130 0 0.858500 0.802000 0.547359 0.614107 +0.766576 0.737173 0.277487 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.782609 0 0.827500 0.602000 0.558443 0.705178 +0.716741 0.621990 0.167539 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.869565 0 0.751000 0.594000 0.505377 0.592143 +0.475048 0.460733 0.638744 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.815500 0.611880 0.505000 0.510714 +0.690267 0.552880 0.277487 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.434783 1 0.856000 0.792000 0.690472 0.659464 +0.793836 0.702618 0.308900 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 0.043478 1 0.784000 0.656000 0.505472 0.695357 +0.531228 0.575917 0.670158 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.869000 0.792420 0.504717 0.588571 +0.567135 0.702618 0.308900 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.846500 0.692000 0.505189 0.538571 +0.412817 0.575917 0.151833 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.347826 1 0.872500 0.870000 0.526887 0.578571 +0.600861 0.760210 0.167539 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.915000 0.608000 0.510424 0.635715 +0.629716 0.679581 0.104712 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.304348 1 0.820000 0.698000 0.505377 0.542500 +0.484797 0.564398 0.151833 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.930500 0.784000 0.841934 0.636250 +0.852676 0.817801 0.089006 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.826087 0 0.935000 0.586000 0.576887 0.621965 +0.635671 0.702618 0.089006 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.714000 0.570000 0.505802 0.620714 +0.595034 0.426178 0.623037 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.733500 0.590800 0.516509 0.642143 +0.315840 0.460733 0.701571 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 1 0 0.852000 0.580000 0.505047 0.583929 +0.576342 0.564398 0.198952 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.697000 0.540000 0.515047 0.644464 +0.564954 0.506807 0.732985 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.747000 0.504000 0.505424 0.581250 +0.456559 0.472252 0.654450 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.898000 0.640000 0.504764 0.648215 +0.633543 0.656545 0.104712 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.849000 0.816000 0.506037 0.614821 +0.464427 0.645027 0.293194 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.782609 0 0.833500 0.664800 0.566840 0.642678 +0.645951 0.621990 0.434556 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.939000 0.576000 0.699529 0.597143 +0.486286 0.679581 0.151833 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.857500 0.726000 0.505047 0.537322 +0.458047 0.645027 0.198952 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.260870 1 0.836000 0.789520 0.504764 0.691607 +0.449530 0.725655 0.403142 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 1 0 0.869500 0.662000 0.504906 0.647322 +0.568368 0.645027 0.120419 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.130435 1 0.719000 0.566000 0.505472 0.643571 +0.444692 0.495288 0.685864 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.608696 0 0.900000 0.638000 0.837783 0.620357 +0.894460 0.748691 0.167539 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.769500 0.608000 0.505141 0.681607 +0.482702 0.529843 0.670158 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.982500 0.652000 0.679387 0.613750 +0.482277 0.760210 0.120419 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.709500 0.564140 0.507500 0.693572 +0.452326 0.506807 0.732985 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.876000 0.678000 0.504906 0.697143 +0.564848 0.564398 0.214660 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.842000 0.608000 0.504717 0.676607 +0.607260 0.679581 0.481675 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.717000 0.594000 0.505519 0.655893 +0.429872 0.403142 0.701571 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.668500 0.550780 0.506934 0.573035 +0.604219 0.437697 0.717277 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 1 0 0.739000 0.510000 0.505472 0.550179 +0.524020 0.564398 0.795812 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.687000 0.504000 0.742500 0.621428 +0.308111 0.276440 0.732985 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.770500 0.656000 0.505566 0.553214 +0.452974 0.529843 0.528796 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.217391 1 0.859500 0.768000 0.505047 0.513928 +0.455346 0.645027 0.183246 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.715000 0.566000 0.505802 0.587857 +0.475580 0.449215 0.544502 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.869565 0 0.824000 0.678340 0.504670 0.670357 +0.588015 0.621990 0.434556 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.782609 0 0.796000 0.580000 0.517689 0.623393 +0.749819 0.598953 0.324608 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.608696 0 0.867500 0.670000 0.686557 0.765893 +0.824702 0.702618 0.356021 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.868000 0.698000 0.763443 0.595536 +0.490570 0.575917 0.183246 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.723000 0.566640 0.505660 0.656607 +0.347301 0.437697 0.732985 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.877500 0.738000 0.504953 0.579464 +0.458132 0.679581 0.167539 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.755500 0.612000 0.505141 0.663929 +0.465671 0.541362 0.701571 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.830500 0.742000 0.701038 0.575535 +0.473284 0.564398 0.293194 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.784000 0.560000 0.505519 0.580536 +0.494164 0.518325 0.575917 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.714000 0.570000 0.505566 0.613572 +0.363930 0.483770 0.795812 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.664000 0.572000 0.523444 0.517678 +0.446521 0.391623 0.764398 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.956522 0 0.744000 0.618000 0.505472 0.598393 +0.574226 0.587435 0.670158 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.434783 1 0.768000 0.570000 0.663538 0.506607 +0.654542 0.529843 0.560210 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.674500 0.535480 0.505896 0.549286 +0.536727 0.414660 0.748691 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.799000 0.622000 0.569246 0.515893 +0.763874 0.541362 0.371727 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.860000 0.758000 0.621981 0.707857 +0.879532 0.587435 0.183246 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 0.043478 1 0.869500 0.680000 0.504953 0.539464 +0.467574 0.621990 0.120419 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.826000 0.582000 0.805094 0.728929 +0.520916 0.506807 0.434556 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.173913 1 0.828500 0.797240 0.504764 0.544107 +0.425512 0.737173 0.403142 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.644000 0.520000 0.506320 0.577679 +0.325834 0.287958 0.842933 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.391304 1 0.642500 0.549840 0.572595 0.639643 +0.402781 0.380105 0.842933 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.780500 0.558500 0.789670 0.676428 +0.814016 0.552880 0.513089 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0 1 0.729500 0.600000 0.505424 0.664107 +0.467446 0.495288 0.732985 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.771500 0.680000 0.552453 0.572857 +0.510899 0.495288 0.450262 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.724000 0.586000 0.505754 0.675357 +0.484670 0.449215 0.670158 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.875000 0.648000 0.505000 0.528215 +0.488201 0.633508 0.120419 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.800500 0.669440 0.505000 0.581964 +0.395613 0.564398 0.544502 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.956522 0 0.842500 0.802000 0.504670 0.703750 +0.551484 0.668063 0.356021 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.905500 0.914000 0.607688 0.595357 +0.332617 0.806283 0.151833 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.434783 1 0.848000 0.702000 0.702830 0.597857 +0.824924 0.668063 0.136125 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.947000 0.570000 0.505519 0.562321 +0.512655 0.679581 0.183246 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.856500 0.818000 0.537122 0.589464 +0.481353 0.668063 0.293194 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0 1 0.876000 0.656000 0.505000 0.508214 +0.488838 0.610471 0.198952 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.883500 0.900000 0.504717 0.555357 +0.484521 0.771728 0.120419 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.086957 1 0.658000 0.566000 0.506179 0.583571 +0.490752 0.391623 0.811519 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.747000 0.534000 0.505566 0.674821 +0.513495 0.449215 0.528796 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.901000 0.924000 0.504764 0.619821 +0.386162 0.829320 0.104712 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.873500 0.788000 0.738585 0.587500 +0.861958 0.771728 0.151833 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.899000 0.844000 0.590755 0.596785 +0.870666 0.714137 0.104712 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.782609 0 0.923000 0.626000 0.628774 0.626786 +0.766351 0.748691 0.151833 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0 1 0.828000 0.608000 0.505141 0.635893 +0.453113 0.564398 0.246073 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.478261 1 0.789000 0.605080 0.580424 0.612857 +0.823542 0.633508 0.560210 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.725500 0.566000 0.505566 0.653215 +0.360538 0.472252 0.811519 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.857500 0.830000 0.504953 0.683214 +0.442640 0.691100 0.324608 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.739130 0 0.754500 0.634000 0.538302 0.702679 +0.776303 0.610471 0.638744 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.697500 0.510000 0.505896 0.603571 +0.446745 0.460733 0.670158 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.434783 1 0.784000 0.654000 0.671368 0.540000 +0.797217 0.598953 0.560210 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.086957 1 0.662000 0.574000 0.506179 0.569107 +0.400420 0.391623 0.764398 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.792500 0.572000 0.832500 0.692500 +0.838418 0.610471 0.591623 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.173913 1 0.711500 0.600000 0.505754 0.571072 +0.335297 0.426178 0.732985 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.173913 1 0.775000 0.593900 0.505047 0.519464 +0.444087 0.541362 0.670158 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.086957 1 0.807000 0.697780 0.505189 0.529285 +0.558948 0.552880 0.324608 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.608696 0 0.928000 0.602000 0.927359 0.678572 +0.871601 0.748691 0.104712 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.853500 0.656000 0.520189 0.629821 +0.631449 0.702618 0.356021 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.304348 1 0.740500 0.624000 0.505424 0.567143 +0.440578 0.506807 0.638744 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.217391 1 0.733000 0.570000 0.505708 0.591250 +0.486786 0.449215 0.465969 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.811500 0.610000 0.505424 0.558035 +0.448531 0.506807 0.324608 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.755000 0.594980 0.550142 0.668393 +0.463341 0.564398 0.670158 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.797500 0.540000 0.779339 0.600893 +0.480757 0.575917 0.591623 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.805000 0.594000 0.724528 0.677857 +0.864839 0.598953 0.560210 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.753000 0.570000 0.742925 0.664285 +0.668928 0.506807 0.591623 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.695652 0 0.849000 0.758000 0.537028 0.674464 +0.763449 0.656545 0.308900 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.802500 0.619800 0.507029 0.603036 +0.592769 0.575917 0.481675 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0 1 0.754000 0.548000 0.505472 0.544464 +0.461205 0.483770 0.670158 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 0.043478 1 0.802000 0.586000 0.505000 0.539822 +0.476728 0.575917 0.591623 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.608696 0 0.836500 0.642000 0.795424 0.625535 +0.847827 0.645027 0.465969 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.836500 0.788000 0.519764 0.688393 +0.693360 0.702618 0.371727 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.733000 0.596000 0.505566 0.556250 +0.393019 0.460733 0.607331 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.876500 0.720000 0.632453 0.599464 +0.575491 0.610471 0.324608 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.565217 0 0.794500 0.526000 0.851604 0.563750 +0.818162 0.575917 0.513089 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.173913 1 0.769000 0.628620 0.505424 0.646607 +0.505148 0.529843 0.450262 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.923500 0.594000 0.805660 0.606785 +0.499790 0.621990 0.151833 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.086957 1 0.655500 0.524000 0.506415 0.502500 +0.540394 0.368587 0.685864 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.775500 0.516000 0.547122 0.567857 +0.669556 0.552880 0.513089 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.652174 0 0.825000 0.587340 0.800943 0.664643 +0.769669 0.656545 0.450262 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0 1 0.811500 0.624000 0.504858 0.549821 +0.476377 0.621990 0.560210 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.808000 0.514000 0.724293 0.739643 +0.811582 0.587435 0.481675 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.769500 0.570000 0.505141 0.507143 +0.463183 0.587435 0.544502 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.890000 0.644000 0.752358 0.615000 +0.535535 0.564398 0.198952 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.708500 0.568000 0.515849 0.569465 +0.402366 0.495288 0.701571 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.981500 0.706000 0.867264 0.603036 +0.786128 0.898430 0.073298 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.347826 1 0.708500 0.554000 0.540944 0.636428 +0.644983 0.483770 0.481675 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.830000 0.740000 0.505189 0.596071 +0.453964 0.610471 0.198952 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.391304 1 0.818500 0.671560 0.530472 0.556250 +0.702675 0.575917 0.465969 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.217391 1 0.773000 0.612000 0.505519 0.532322 +0.475623 0.495288 0.450262 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 1 0 0.942000 0.720000 0.504529 0.656250 +0.493272 0.794765 0.089006 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.841500 0.640000 0.515849 0.678035 +0.466148 0.575917 0.465969 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.826087 0 0.713000 0.586000 0.505802 0.534643 +0.707034 0.460733 0.465969 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.434783 1 0.660500 0.562000 0.654056 0.676250 +0.438558 0.380105 0.795812 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.478261 1 0.782500 0.638000 0.558443 0.648929 +0.827147 0.587435 0.497383 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.840000 0.642000 0.505047 0.610178 +0.519363 0.529843 0.198952 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.739500 0.590000 0.505377 0.593036 +0.428978 0.541362 0.607331 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.086957 1 0.716500 0.594000 0.505660 0.576250 +0.342633 0.403142 0.701571 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.391304 1 0.782500 0.627260 0.511132 0.629107 +0.583700 0.495288 0.560210 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.782609 0 0.845000 0.806000 0.506840 0.590715 +0.620328 0.725655 0.308900 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 0.043478 1 0.831500 0.750800 0.504906 0.632321 +0.517492 0.633508 0.434556 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.695652 0 0.974500 0.696000 0.876462 0.628750 +0.861883 0.840838 0.073298 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.827500 0.714000 0.519623 0.534822 +0.562095 0.587435 0.183246 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 1 0 0.821000 0.622000 0.504858 0.525536 +0.515940 0.621990 0.560210 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 1 0 0.902500 0.682000 0.504717 0.613572 +0.567517 0.668063 0.104712 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.673500 0.564000 0.528019 0.746250 +0.832230 0.414660 0.591623 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.711000 0.567760 0.505660 0.642857 +0.355095 0.449215 0.717277 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.857500 0.836000 0.504953 0.650535 +0.441280 0.702618 0.277487 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.739130 0 0.938500 0.570000 0.773113 0.628214 +0.834282 0.748691 0.089006 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.434783 1 0.766500 0.648000 0.657311 0.631786 +0.667418 0.541362 0.560210 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.565217 0 0.705000 0.538000 0.756510 0.754822 +0.514940 0.460733 0.685864 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.726500 0.559700 0.505472 0.563035 +0.456154 0.495288 0.638744 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.849000 0.596000 0.520424 0.739285 +0.475547 0.564398 0.198952 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.845000 0.544000 0.505141 0.627500 +0.582402 0.552880 0.214660 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.735500 0.522000 0.783208 0.555357 +0.328120 0.299477 0.670158 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.173913 1 0.759500 0.610000 0.505566 0.727678 +0.482395 0.541362 0.575917 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.815000 0.682000 0.505141 0.590536 +0.509571 0.610471 0.214660 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.260870 1 0.898000 0.762000 0.504858 0.518750 +0.410711 0.783246 0.089006 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.304348 1 0.837500 0.710000 0.505236 0.548750 +0.460982 0.610471 0.151833 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.217391 1 0.846500 0.786000 0.505047 0.563393 +0.494654 0.679581 0.261781 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.708000 0.552600 0.505472 0.725178 +0.493570 0.495288 0.811519 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.521739 0 0.663000 0.568000 0.629670 0.574821 +0.703377 0.403142 0.748691 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.739130 0 0.920000 0.644000 0.739009 0.641250 +0.881234 0.783246 0.151833 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.738000 0.542000 0.507641 0.610178 +0.359421 0.426178 0.654450 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.805500 0.575760 0.793349 0.758214 +0.827551 0.621990 0.497383 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0 1 0.931000 0.724000 0.504623 0.596429 +0.471826 0.817801 0.073298 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.542500 0.514000 0.507217 0.647322 +0.404779 0 0.575917 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.260870 1 0.813000 0.738000 0.505283 0.581786 +0.486106 0.621990 0.293194 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.913043 0 0.741500 0.606000 0.505519 0.744465 +0.543424 0.541362 0.528796 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.810000 0.686000 0.504717 0.609821 +0.440940 0.621990 0.513089 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.391304 1 0.761500 0.628000 0.601462 0.563572 +0.716646 0.564398 0.623037 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.826087 0 0.859500 0.608000 0.504717 0.557500 +0.512208 0.656545 0.356021 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.892000 0.530000 0.756510 0.659107 +0.540299 0.598953 0.214660 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 1 0 0.696500 0.568000 0.505896 0.529285 +0.429073 0.403142 0.717277 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.736500 0.614000 0.505283 0.583393 +0.409936 0 0.340314 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.304348 1 0.677500 0.568000 0.506415 0.620535 +0.472506 0.437697 0.560210 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.963000 0.788000 0.882453 0.534822 +0.788073 0.552880 0.073298 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.434783 1 0.730500 0.548000 0.675708 0.713750 +0.860171 0.495288 0.497383 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.260870 1 0.836500 0.682000 0.505236 0.582143 +0.480556 0.598953 0.261781 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.130435 1 0.790500 0.638000 0.505141 0.756965 +0.411839 0.575917 0.685864 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.760500 0.570000 0.780236 0.602143 +0.393157 0.472252 0.638744 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.347826 1 0.681500 0.552000 0.518349 0.556250 +0.564371 0.380105 0.701571 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.775000 0.580000 0.699670 0.603036 +0.424907 0.564398 0.654450 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.652174 0 0.875500 0.660000 0.763207 0.767500 +0.833750 0.714137 0.340314 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.787500 0.628000 0.505424 0.603571 +0.482277 0.529843 0.434556 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.956522 0 0.887000 0.850000 0.504717 0.659285 +0.631353 0.702618 0.136125 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.826087 0 0.846500 0.808000 0.504670 0.690714 +0.565455 0.748691 0.324608 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.795500 0.635520 0.577972 0.609643 +0.381186 0.483770 0.560210 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.130435 1 0.794000 0.714000 0.505141 0.639643 +0.414933 0.645027 0.513089 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.892500 0.642000 0.504953 0.503214 +0.505424 0.621990 0.183246 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.842500 0.674000 0.504764 0.632679 +0.580180 0.725655 0.371727 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.913043 0 0.734500 0.526000 0.505802 0.526607 +0.677625 0.495288 0.434556 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.956522 0 0.745000 0.514000 0.505377 0.582500 +0.562786 0.529843 0.670158 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.908500 0.898000 0.504717 0.553928 +0.394073 0.840838 0.089006 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.086957 1 0.754000 0.612000 0.505283 0.655178 +0.425384 0.529843 0.717277 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.173913 1 0.795000 0.588000 0.505047 0.565893 +0.440238 0.518325 0.528796 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.732500 0.530000 0.505754 0.680535 +0.502586 0.437697 0.544502 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 1 0 0.833000 0.752000 0.505047 0.614107 +0.625399 0.610471 0.198952 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.726500 0.567980 0.512595 0.579286 +0.643729 0.518325 0.638744 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.778500 0.526000 0.801415 0.641964 +0.894609 0.506807 0.387435 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.761500 0.638000 0.505472 0.603571 +0.551281 0.495288 0.450262 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.749500 0.640000 0.505472 0.617143 +0.516227 0.472252 0.560210 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.699500 0.548000 0.505991 0.608572 +0.519214 0.460733 0.544502 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.782609 0 0.871000 0.702040 0.514906 0.593929 +0.757602 0.633508 0.151833 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.902500 0.886000 0.504670 0.556786 +0.428149 0.806283 0.089006 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.434783 1 0.758000 0.638000 0.525047 0.707143 +0.845977 0.598953 0.450262 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.956522 0 0.863000 0.796780 0.504670 0.673036 +0.589877 0.817801 0.371727 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0 1 0.824500 0.590000 0.505000 0.632500 +0.477154 0.633508 0.623037 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.813500 0.630340 0.567075 0.605714 +0.666079 0.633508 0.450262 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.695652 0 0.764000 0.512000 0.670188 0.574643 +0.861064 0.518325 0.528796 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.868500 0.682000 0.505047 0.603571 +0.504530 0.621990 0.198952 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.857000 0.778000 0.662594 0.604822 +0.549793 0.668063 0.293194 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.913043 0 0.767000 0.582000 0.505141 0.746607 +0.573323 0.679581 0.544502 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.739000 0.608000 0.505472 0.525000 +0.401228 0.460733 0.591623 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.130435 1 0.886500 0.734000 0.504906 0.550893 +0.459918 0.656545 0.167539 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.795000 0.633020 0.505189 0.565535 +0.522075 0.541362 0.450262 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.911500 0.626000 0.672642 0.647500 +0.779312 0.737173 0.120419 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.865000 0.552000 0.657783 0.538929 +0.497865 0.610471 0.544502 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.676500 0.552000 0.506934 0.794286 +0.717603 0.483770 0.654450 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.833500 0.738000 0.508585 0.589107 +0.613320 0.668063 0.277487 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.950000 0.584000 0.897642 0.585715 +0.504254 0.702618 0.183246 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.759000 0.588000 0.699434 0.604465 +0.458218 0.621990 0.497383 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.713500 0.566000 0.505896 0.617500 +0.470710 0.449215 0.685864 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.803500 0.700000 0.505283 0.619286 +0.452901 0.598953 0.356021 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.826500 0.530000 0.764104 0.638214 +0.684058 0.506807 0.513089 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.850000 0.692000 0.504953 0.524285 +0.684579 0.621990 0.261781 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.795000 0.620000 0.505472 0.562143 +0.439301 0.506807 0.371727 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.816500 0.684000 0.505236 0.631786 +0.486775 0.598953 0.261781 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.847500 0.756000 0.510661 0.526429 +0.443757 0.668063 0.198952 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.696000 0.562000 0.641415 0.764107 +0.850378 0.449215 0.623037 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.557500 0.514000 0.620802 0.769643 +0.454868 0.264922 0.952881 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 1 0 0.716000 0.534000 0.505802 0.573928 +0.604187 0.483770 0.465969 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.260870 1 0.760000 0.554000 0.505472 0.688928 +0.502489 0.495288 0.465969 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.778000 0.594000 0.505472 0.629286 +0.586825 0.552880 0.434556 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.858500 0.834280 0.504670 0.673750 +0.483255 0.783246 0.387435 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.745000 0.534000 0.828113 0.545000 +0.827945 0.518325 0.575917 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 1 0 0.836000 0.550000 0.505189 0.645535 +0.570919 0.564398 0.214660 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.842500 0.802000 0.632689 0.695179 +0.801779 0.737173 0.308900 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.478261 1 0.804500 0.686000 0.593868 0.732143 +0.851294 0.564398 0.246073 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.173913 1 0.743500 0.624000 0.505377 0.650893 +0.407618 0.518325 0.732985 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.793000 0.546000 0.505047 0.641071 +0.337859 0.299477 0.638744 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.888500 0.914000 0.504764 0.569107 +0.427000 0.794765 0.104712 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.913043 0 0.826000 0.626000 0.504953 0.541607 +0.492857 0.645027 0.418848 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.608696 0 0.827500 0.600000 0.730047 0.543750 +0.716827 0.552880 0.465969 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.790000 0.694000 0.522406 0.569107 +0.572515 0.610471 0.308900 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.869565 0 0.766500 0.614320 0.505047 0.670536 +0.591386 0.587435 0.450262 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0 1 0.743000 0.581600 0.505424 0.594285 +0.415741 0.483770 0.623037 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.565217 0 0.928000 0.564000 0.890754 0.627321 +0.854771 0.691100 0.151833 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.870500 0.710000 0.504953 0.630179 +0.434401 0.621990 0.167539 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.565217 0 0.851000 0.576000 0.840330 0.566428 +0.825935 0.645027 0.434556 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.758000 0.584000 0.505424 0.661250 +0.620870 0.518325 0.450262 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.826500 0.744000 0.505236 0.578750 +0.452050 0.598953 0.230367 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.708000 0.526000 0.505519 0.639643 +0.436846 0.495288 0.732985 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.835000 0.786000 0.506037 0.709285 +0.576618 0.737173 0.387435 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.434783 1 0.886000 0.888000 0.619529 0.619821 +0.816504 0.852356 0.151833 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.804500 0.700000 0.505283 0.534107 +0.451093 0.598953 0.214660 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.882000 0.834000 0.504906 0.626072 +0.514366 0.679581 0.089006 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.847500 0.698000 0.505000 0.623928 +0.541936 0.575917 0.214660 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.778500 0.670000 0.505000 0.697857 +0.518640 0.621990 0.450262 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.811500 0.548000 0.504906 0.581071 +0.609737 0.633508 0.528796 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.739130 0 0.812500 0.659000 0.514103 0.685179 +0.777685 0.633508 0.434556 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.695652 0 0.795000 0.658480 0.537028 0.623035 +0.811752 0.737173 0.434556 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.521739 0 0.910500 0.586000 0.844717 0.665893 +0.876927 0.702618 0.183246 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.747000 0.502000 0.505424 0.593750 +0.465787 0.483770 0.607331 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.173913 1 0.779500 0.638660 0.505141 0.588393 +0.427628 0.506807 0.528796 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.478261 1 0.823000 0.728200 0.574434 0.597857 +0.773113 0.691100 0.356021 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.808000 0.570000 0.505141 0.546785 +0.467360 0.621990 0.607331 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.782609 0 0.804000 0.684100 0.517453 0.620179 +0.671118 0.725655 0.418848 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.173913 1 0.718500 0.532000 0.505802 0.669822 +0.509083 0.460733 0.575917 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.815500 0.660000 0.561321 0.605893 +0.437803 0.495288 0.544502 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.778500 0.566000 0.805566 0.648036 +0.472826 0.598953 0.513089 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.871500 0.838000 0.504906 0.624643 +0.447329 0.737173 0.136125 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.927000 0.660000 0.827878 0.558393 +0.510357 0.725655 0.151833 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.478261 1 0.790500 0.644000 0.714387 0.655536 +0.712148 0.529843 0.513089 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 0.043478 1 0.758000 0.574300 0.505566 0.618928 +0.526859 0.518325 0.434556 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.130435 1 0.867000 0.748000 0.504953 0.587143 +0.462576 0.656545 0.136125 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0 1 0.854000 0.810560 0.504717 0.590536 +0.510485 0.691100 0.340314 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.260870 1 0.810000 0.602000 0.505377 0.553928 +0.460557 0.518325 0.277487 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.956522 0 0.857500 0.752000 0.504953 0.606429 +0.618286 0.656545 0.183246 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.173913 1 0.656500 0.543440 0.506226 0.511607 +0.392158 0.391623 0.764398 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.851000 0.566000 0.860566 0.573215 +0.482182 0.633508 0.560210 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.810500 0.732000 0.505236 0.650000 +0.506349 0.610471 0.261781 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.646500 0.510000 0.507123 0.625893 +0.522319 0.345550 0.811519 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.793000 0.669080 0.513774 0.533215 +0.625505 0.552880 0.387435 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 1 0 0.911000 0.842000 0.504575 0.597500 +0.523520 0.817801 0.089006 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.434783 1 0.732500 0.548000 0.715755 0.701072 +0.888825 0.529843 0.340314 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.868500 0.530000 0.507783 0.605178 +0.616745 0.575917 0.183246 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.706500 0.594000 0.505660 0.629643 +0.425119 0.472252 0.795812 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.935500 0.584000 0.590095 0.621072 +0.482990 0.679581 0.151833 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.608696 0 0.787000 0.600000 0.675236 0.740535 +0.895077 0.610471 0.387435 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.859000 0.768000 0.505000 0.626607 +0.441312 0.633508 0.183246 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.864000 0.738000 0.530661 0.781428 +0.864360 0.587435 0.183246 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.695652 0 0.843500 0.630000 0.585236 0.596071 +0.894280 0.691100 0.293194 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.739500 0.554000 0.505472 0.614821 +0.372616 0.483770 0.795812 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.813000 0.530000 0.579010 0.609643 +0.881393 0.541362 0.387435 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.868500 0.640000 0.935377 0.660715 +0.818013 0.587435 0.120419 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.565217 0 0.781000 0.576000 0.691132 0.717143 +0.781099 0.483770 0.497383 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.782609 0 0.885500 0.764000 0.530095 0.709822 +0.699336 0.806283 0.371727 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.761500 0.652000 0.505472 0.574107 +0.557235 0.495288 0.450262 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.909000 0.692000 0.504858 0.510000 +0.495058 0.691100 0.136125 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.883500 0.836000 0.504906 0.607679 +0.482586 0.656545 0.089006 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.942000 0.620000 0.505377 0.568393 +0.620784 0.737173 0.104712 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.304348 1 0.799500 0.614000 0.505424 0.532322 +0.484160 0.529843 0.340314 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.923000 0.610000 0.664151 0.635715 +0.500852 0.691100 0.183246 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.646500 0.549720 0.506179 0.580536 +0.475633 0.299477 0.717277 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.911000 0.610000 0.769858 0.628572 +0.891419 0.656545 0.057592 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0 1 0.727000 0.590000 0.505708 0.643214 +0.492559 0.495288 0.607331 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.913043 0 0.877500 0.560000 0.504906 0.601071 +0.628228 0.621990 0.136125 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.729500 0.550000 0.612405 0.537500 +0.343590 0.426178 0.732985 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.716000 0.586000 0.505754 0.502679 +0.523914 0.403142 0.513089 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.900000 0.680000 0.671793 0.644464 +0.580456 0.645027 0.293194 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.738000 0.582000 0.505896 0.617321 +0.505774 0.483770 0.481675 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.904000 0.900000 0.504717 0.684821 +0.343973 0.806283 0.120419 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.869565 0 0.843000 0.620000 0.504858 0.519107 +0.494898 0.679581 0.418848 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.521739 0 0.745000 0.574000 0.628066 0.674286 +0.697008 0.575917 0.654450 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.697000 0.536000 0.505660 0.651964 +0.489188 0.495288 0.732985 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.841500 0.570000 0.569009 0.691072 +0.543201 0.518325 0.371727 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.739130 0 0.842000 0.572000 0.606745 0.537500 +0.656201 0.587435 0.434556 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.913043 0 0.862500 0.846000 0.504670 0.699643 +0.590749 0.817801 0.387435 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.802500 0.672000 0.505189 0.587143 +0.506487 0.495288 0.465969 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.130435 1 0.817500 0.698720 0.505000 0.583393 +0.446351 0.575917 0.513089 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.883500 0.710000 0.594434 0.620535 +0.577448 0.633508 0.308900 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.796000 0.679320 0.504858 0.575179 +0.420216 0.621990 0.497383 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.691000 0.566000 0.505802 0.607322 +0.339476 0.403142 0.764398 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.217391 1 0.812000 0.598000 0.505377 0.585000 +0.457579 0.529843 0.261781 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.950500 0.612000 0.913679 0.563572 +0.859693 0.794765 0.104712 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.651500 0.510000 0.506179 0.525178 +0.483128 0.357068 0.811519 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.695652 0 0.943000 0.588000 0.856604 0.606785 +0.882765 0.737173 0.089006 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.841500 0.704000 0.505189 0.527678 +0.470869 0.587435 0.167539 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.520500 0.514000 0.507500 0.608393 +0.402621 0.172775 0.858639 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.849000 0.808000 0.504717 0.661071 +0.506211 0.575917 0.277487 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.913043 0 0.833500 0.588000 0.504906 0.511072 +0.605293 0.621990 0.528796 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.434783 1 0.749500 0.570000 0.603444 0.726071 +0.644856 0.564398 0.670158 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.716000 0.614000 0.505754 0.575000 +0.483873 0.426178 0.513089 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.857500 0.534000 0.932547 0.694643 +0.815356 0.610471 0.214660 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.817000 0.686000 0.505236 0.595536 +0.455155 0.610471 0.324608 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.869565 0 0.844500 0.806000 0.504670 0.697143 +0.538852 0.714137 0.324608 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.260870 1 0.787500 0.622000 0.505047 0.696250 +0.399410 0.575917 0.544502 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.743500 0.552000 0.511792 0.590178 +0.345547 0.437697 0.607331 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.990000 0.662000 0.960707 0.591429 +0.416549 0.806283 0.136125 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.908000 0.856000 0.504623 0.624107 +0.424980 0.783246 0.120419 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.434783 1 0.855000 0.656000 0.675236 0.585536 +0.828274 0.645027 0.214660 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.800000 0.588060 0.757924 0.618928 +0.848912 0.645027 0.481675 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.956522 0 0.823000 0.682000 0.505047 0.579464 +0.549229 0.645027 0.151833 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.895500 0.856000 0.512029 0.600357 +0.401993 0.771728 0.120419 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.862500 0.710000 0.505047 0.547500 +0.461460 0.645027 0.183246 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.868000 0.848240 0.549104 0.680714 +0.832580 0.737173 0.104712 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.304348 1 0.835500 0.768000 0.505189 0.555893 +0.595129 0.668063 0.246073 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.687000 0.574000 0.505943 0.761072 +0.540012 0.426178 0.544502 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.805000 0.641540 0.605142 0.576786 +0.401451 0.483770 0.513089 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0 1 0.650500 0.510000 0.506085 0.516250 +0.492475 0.357068 0.811519 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.793000 0.638000 0.633821 0.616072 +0.418037 0.483770 0.591623 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.893500 0.658000 0.866509 0.593215 +0.568794 0.702618 0.198952 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.798000 0.603420 0.505189 0.583571 +0.594831 0.529843 0.387435 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.804000 0.652000 0.505047 0.704107 +0.569781 0.506807 0.403142 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.956522 0 0.659500 0.564000 0.506085 0.636964 +0.522872 0.380105 0.811519 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.602500 0.514000 0.695047 0.626607 +0.515184 0.310995 0.811519 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.864500 0.734000 0.510896 0.610357 +0.503978 0.645027 0.277487 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.896000 0.764000 0.865896 0.587143 +0.844510 0.771728 0.136125 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.826087 0 0.745500 0.522000 0.505566 0.571072 +0.683484 0.518325 0.387435 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.718000 0.578560 0.505660 0.658393 +0.396699 0.472252 0.654450 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.857000 0.568000 0.505754 0.566607 +0.493049 0.633508 0.544502 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.821500 0.522000 0.788538 0.546607 +0.891972 0.621990 0.324608 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.217391 1 0.876500 0.878000 0.504764 0.561786 +0.419855 0.760210 0.136125 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.521739 0 0.841000 0.756780 0.586038 0.620179 +0.788350 0.702618 0.324608 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.798000 0.552000 0.505377 0.564465 +0.591674 0.564398 0.293194 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.956522 0 0.901000 0.630000 0.504764 0.586250 +0.575172 0.656545 0.089006 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.839000 0.680000 0.504953 0.584285 +0.663293 0.575917 0.246073 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.652174 0 0.779000 0.624000 0.552453 0.696965 +0.893196 0.541362 0.403142 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.695652 0 0.824000 0.738000 0.541368 0.582322 +0.846551 0.656545 0.371727 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.913043 0 0.738000 0.576000 0.505424 0.629465 +0.466531 0.529843 0.670158 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.756500 0.572000 0.505519 0.617857 +0.531080 0.449215 0.497383 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.391304 1 0.889000 0.752000 0.598585 0.573035 +0.717411 0.771728 0.136125 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.826087 0 0.979500 0.638000 0.583302 0.668571 +0.575428 0.829320 0.089006 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.691500 0.510000 0.505943 0.601429 +0.428425 0.460733 0.701571 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.807500 0.524000 0.656132 0.613393 +0.499822 0.529843 0.607331 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.849500 0.774000 0.504953 0.707857 +0.543137 0.668063 0.308900 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.725500 0.569060 0.536227 0.627143 +0.431520 0.483770 0.764398 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.799500 0.720000 0.504858 0.562500 +0.429754 0.621990 0.544502 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.778500 0.624980 0.511462 0.697679 +0.744523 0.668063 0.434556 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.830000 0.718000 0.504858 0.556786 +0.374902 0.495288 0.465969 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.715000 0.592000 0.598821 0.621250 +0.703133 0.483770 0.654450 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.913043 0 0.836500 0.760000 0.504858 0.606250 +0.662006 0.598953 0.230367 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.521739 0 0.820000 0.612000 0.814104 0.744107 +0.869485 0.633508 0.198952 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.913043 0 0.786500 0.582000 0.505283 0.550714 +0.345482 0.460733 0.607331 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.805500 0.540000 0.514103 0.630000 +0.320592 0.310995 0.607331 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.608696 0 0.750500 0.568000 0.630613 0.648929 +0.703504 0.564398 0.591623 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.565217 0 0.862500 0.848000 0.650378 0.641428 +0.830168 0.656545 0.340314 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.755000 0.601280 0.513302 0.698572 +0.405524 0.575917 0.701571 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.740000 0.587100 0.505519 0.571965 +0.509826 0.449215 0.701571 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.824000 0.764000 0.505000 0.659107 +0.482672 0.552880 0.277487 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.391304 1 0.881000 0.860000 0.517312 0.609285 +0.791561 0.702618 0.198952 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.478261 1 0.839000 0.752000 0.727971 0.614107 +0.812316 0.702618 0.293194 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.774000 0.554000 0.505189 0.568928 +0.501735 0.506807 0.670158 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.652174 0 0.960000 0.762000 0.720849 0.595715 +0.841055 0.863875 0.073298 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.861500 0.754000 0.504670 0.598215 +0.519449 0.575917 0.293194 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.739130 0 0.926000 0.764000 0.543208 0.590000 +0.875269 0.771728 0.120419 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.695652 0 0.875000 0.600000 0.692547 0.577679 +0.690436 0.564398 0.308900 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.839000 0.792000 0.555754 0.638393 +0.852676 0.610471 0.198952 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.910500 0.552000 0.508443 0.712500 +0.536152 0.645027 0.073298 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.086957 1 0.780000 0.598000 0.505472 0.534822 +0.498258 0.518325 0.418848 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.304348 1 0.872500 0.842000 0.505660 0.614107 +0.560563 0.621990 0.151833 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0 1 0.786500 0.619860 0.505283 0.640000 +0.534153 0.472252 0.465969 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.758000 0.560000 0.575896 0.618035 +0.744960 0.518325 0.575917 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.434783 1 0.802000 0.700760 0.529198 0.600893 +0.747447 0.668063 0.387435 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.877500 0.732000 0.504906 0.615357 +0.530464 0.645027 0.293194 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.391304 1 0.716000 0.562000 0.519387 0.541250 +0.788510 0.437697 0.481675 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.826087 0 0.932500 0.586000 0.560849 0.601964 +0.631099 0.702618 0.089006 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.784000 0.589500 0.701038 0.709464 +0.705003 0.621990 0.528796 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.846500 0.676000 0.588207 0.640179 +0.447584 0.610471 0.214660 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.889000 0.890000 0.504623 0.549107 +0.447851 0.783246 0.104712 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.847500 0.630000 0.559481 0.668750 +0.474729 0.587435 0.481675 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.957000 0.750000 0.762028 0.628214 +0.497630 0.783246 0.104712 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.672500 0.520000 0.512500 0.606250 +0.524637 0.357068 0.670158 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.739130 0 0.835500 0.633580 0.668349 0.686607 +0.749361 0.621990 0.418848 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.884500 0.714000 0.802122 0.632321 +0.495388 0.587435 0.277487 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.847500 0.812000 0.505000 0.576786 +0.477504 0.668063 0.293194 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.720000 0.600000 0.505708 0.570179 +0.515834 0.449215 0.560210 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.173913 1 0.796500 0.586000 0.505424 0.554643 +0.448648 0.506807 0.324608 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.856000 0.786000 0.505047 0.628393 +0.440355 0.633508 0.183246 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.739130 0 0.908000 0.534000 0.776887 0.640535 +0.818864 0.679581 0.120419 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.822500 0.760000 0.508820 0.563750 +0.878299 0.714137 0.246073 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.910500 0.542000 0.825000 0.619643 +0.822373 0.794765 0.120419 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.550500 0.520000 0.510896 0.759107 +0.400632 0.241885 0.937173 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.861500 0.626000 0.505000 0.702143 +0.523350 0.633508 0.246073 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.217391 1 0.786500 0.696000 0.504906 0.596785 +0.422790 0.621990 0.591623 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.565217 0 0.898000 0.596000 0.886132 0.556965 +0.846711 0.656545 0.198952 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.652174 0 0.810000 0.706000 0.563726 0.718036 +0.841671 0.598953 0.418848 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.644000 0.512000 0.780472 0.656607 +0.300241 0.264922 0.811519 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.217391 1 0.835000 0.755820 0.504906 0.619107 +0.468275 0.633508 0.450262 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.739130 0 0.816000 0.728000 0.520095 0.562500 +0.373573 0.483770 0.560210 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.434783 1 0.824500 0.634000 0.691981 0.608214 +0.814825 0.621990 0.277487 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.260870 1 0.838500 0.760000 0.505189 0.546607 +0.578107 0.668063 0.261781 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0 1 0.860000 0.698000 0.505000 0.677500 +0.529974 0.575917 0.214660 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.086957 1 0.834000 0.742940 0.504906 0.614643 +0.497641 0.610471 0.465969 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.891000 0.798000 0.504858 0.603215 +0.523892 0.737173 0.151833 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.217391 1 0.886000 0.908000 0.504717 0.570357 +0.433252 0.794765 0.120419 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.751000 0.620000 0.505424 0.663215 +0.534600 0.437697 0.591623 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.863000 0.667760 0.530330 0.611607 +0.596054 0.621990 0.277487 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.304348 1 0.802500 0.608000 0.505424 0.576786 +0.496386 0.518325 0.277487 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.869565 0 0.858500 0.834000 0.504575 0.621786 +0.588974 0.702618 0.340314 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.608696 0 0.900000 0.546000 0.926887 0.671072 +0.870431 0.691100 0.167539 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.434783 1 0.655500 0.568000 0.537264 0.552143 +0.682856 0.380105 0.795812 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.869565 0 0.928500 0.672000 0.504953 0.577322 +0.624687 0.748691 0.104712 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.878500 0.870000 0.533444 0.568214 +0.761855 0.702618 0.120419 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.844000 0.696000 0.505189 0.547143 +0.412605 0.575917 0.167539 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.260870 1 0.784000 0.648140 0.505141 0.660000 +0.426192 0.506807 0.513089 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.833000 0.598000 0.505189 0.659285 +0.427276 0.552880 0.198952 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.826087 0 0.814000 0.578000 0.505802 0.636786 +0.592418 0.714137 0.356021 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.434783 1 0.752000 0.602000 0.597122 0.645000 +0.848933 0.518325 0.371727 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.725500 0.594180 0.505283 0.664822 +0.415985 0.541362 0.623037 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.478261 1 0.807500 0.616000 0.743632 0.773214 +0.874014 0.633508 0.198952 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.173913 1 0.843500 0.660000 0.505189 0.572321 +0.488413 0.598953 0.261781 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.130435 1 0.882000 0.864000 0.504717 0.622321 +0.484648 0.748691 0.151833 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.703500 0.604000 0.505754 0.683750 +0.337264 0.426178 0.748691 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.434783 1 0.777500 0.630520 0.523679 0.649822 +0.778908 0.587435 0.481675 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.652174 0 0.938000 0.554000 0.875095 0.625179 +0.870686 0.714137 0.120419 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.913043 0 0.877500 0.812000 0.504670 0.708571 +0.682251 0.621990 0.136125 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.878000 0.686000 0.504906 0.594107 +0.525307 0.621990 0.120419 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.260870 1 0.683000 0.568000 0.505991 0.630715 +0.473677 0.437697 0.575917 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.764500 0.582000 0.505754 0.577322 +0.465235 0.495288 0.403142 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.695652 0 0.884000 0.760000 0.597122 0.691607 +0.857151 0.737173 0.340314 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.869000 0.694000 0.505000 0.552857 +0.471848 0.645027 0.167539 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.798000 0.610020 0.505189 0.536785 +0.592194 0.541362 0.387435 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.851000 0.626000 0.724293 0.682143 +0.479588 0.610471 0.497383 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.608696 0 0.720000 0.570000 0.568774 0.570179 +0.901010 0.495288 0.465969 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.707500 0.560000 0.505754 0.582322 +0.339709 0.414660 0.748691 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.872500 0.816000 0.509057 0.592678 +0.591866 0.679581 0.167539 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.347826 1 0.811000 0.734200 0.506792 0.556250 +0.652203 0.598953 0.293194 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.347826 1 0.759000 0.612000 0.514812 0.553393 +0.551335 0.518325 0.638744 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.713500 0.566820 0.511934 0.668929 +0.463086 0.529843 0.732985 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.611000 0.516000 0.663538 0.596250 +0.283720 0.276440 0.874346 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.649000 0.510000 0.506085 0.550536 +0.491676 0.345550 0.827225 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.881000 0.634000 0.949528 0.651964 +0.834919 0.702618 0.136125 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.821000 0.756000 0.576368 0.560357 +0.400909 0.495288 0.481675 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.608696 0 0.870000 0.656000 0.776556 0.647857 +0.887421 0.679581 0.277487 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.086957 1 0.818000 0.704120 0.505000 0.602143 +0.448085 0.564398 0.497383 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.478261 1 0.749500 0.590000 0.512264 0.685714 +0.790795 0.633508 0.623037 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.478261 1 0.714500 0.558000 0.773349 0.623214 +0.490868 0.426178 0.497383 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.867500 0.740000 0.505943 0.606250 +0.510783 0.575917 0.277487 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.869565 0 0.970500 0.658000 0.516746 0.632857 +0.560181 0.829320 0.057592 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.391304 1 0.788000 0.622000 0.564529 0.734643 +0.791444 0.598953 0.261781 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.739130 0 0.910500 0.856000 0.549434 0.587143 +0.791922 0.852356 0.073298 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.674000 0.506000 0.785990 0.598393 +0.308290 0.264922 0.701571 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.862500 0.554000 0.750991 0.542857 +0.500746 0.621990 0.528796 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.695652 0 0.800500 0.586000 0.597924 0.689821 +0.819620 0.495288 0.465969 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.086957 1 0.751500 0.571300 0.505708 0.613036 +0.526965 0.483770 0.418848 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.869565 0 0.886500 0.750000 0.504670 0.684821 +0.669269 0.679581 0.136125 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 1 0 0.803500 0.670000 0.505000 0.628214 +0.538394 0.679581 0.560210 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.894500 0.800000 0.516273 0.706250 +0.555173 0.771728 0.073298 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.739130 0 0.839000 0.642000 0.545754 0.612857 +0.850782 0.702618 0.293194 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.652174 0 0.751500 0.516000 0.701274 0.700714 +0.907336 0.529843 0.450262 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.739130 0 0.753500 0.576000 0.519858 0.602500 +0.654425 0.506807 0.607331 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.304348 1 0.780500 0.628000 0.505047 0.721607 +0.440982 0.564398 0.591623 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.704000 0.588000 0.519056 0.610893 +0.407267 0.449215 0.732985 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.976500 0.712000 0.520566 0.640000 +0.414678 0.794765 0.136125 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.130435 1 0.846500 0.791120 0.504717 0.616607 +0.461109 0.656545 0.403142 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.830500 0.772000 0.563349 0.570179 +0.766586 0.541362 0.277487 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.781500 0.630000 0.631746 0.506607 +0.487253 0.495288 0.324608 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.776500 0.688000 0.554717 0.564465 +0.530368 0.506807 0.497383 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.598000 0.516000 0.506603 0.565535 +0.319603 0.253403 0.905760 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.987500 0.700000 0.858727 0.627321 +0.824075 0.737173 0.057592 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.831000 0.668480 0.576132 0.570535 +0.824255 0.621990 0.387435 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.782609 0 0.906000 0.650000 0.570849 0.691607 +0.745396 0.702618 0.151833 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.669500 0.580000 0.505896 0.610536 +0.432986 0.449215 0.780106 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.815000 0.548000 0.793821 0.599285 +0.833304 0.645027 0.481675 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.130435 1 0.859000 0.686000 0.505047 0.571607 +0.448435 0.645027 0.151833 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.859000 0.832000 0.609198 0.610893 +0.429520 0.598953 0.324608 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.739130 0 0.916500 0.544000 0.765566 0.600536 +0.813761 0.702618 0.136125 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.304348 1 0.639500 0.528000 0.506274 0.719285 +0.541692 0.380105 0.795812 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.726000 0.620000 0.540000 0.657500 +0.686290 0.391623 0.623037 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.716500 0.532000 0.505802 0.658215 +0.492432 0.426178 0.544502 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.698000 0.554000 0.688396 0.576786 +0.575247 0.495288 0.638744 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0 1 0.883500 0.644000 0.504953 0.565893 +0.480757 0.587435 0.167539 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.912000 0.884000 0.639340 0.519107 +0.807499 0.852356 0.136125 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.739130 0 0.872000 0.656000 0.618491 0.759107 +0.781141 0.668063 0.324608 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.130435 1 0.751500 0.614000 0.505236 0.640535 +0.451869 0.564398 0.732985 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.821000 0.572000 0.820519 0.618214 +0.550569 0.645027 0.560210 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.878500 0.812000 0.504953 0.560000 +0.488445 0.737173 0.167539 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.608696 0 0.929500 0.640000 0.882075 0.583393 +0.858311 0.806283 0.104712 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.434783 1 0.904000 0.894000 0.682405 0.581250 +0.778154 0.829320 0.104712 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.835000 0.786000 0.530000 0.608036 +0.785022 0.575917 0.214660 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0 1 0.756500 0.638000 0.505377 0.610714 +0.454900 0.472252 0.607331 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.861000 0.658000 0.640707 0.664285 +0.771370 0.656545 0.324608 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.871000 0.708000 0.625519 0.635535 +0.524648 0.633508 0.308900 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.771000 0.583560 0.506179 0.597857 +0.528347 0.587435 0.575917 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.130435 1 0.843500 0.650000 0.505141 0.700714 +0.483255 0.610471 0.183246 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.787500 0.629700 0.505236 0.619286 +0.478918 0.633508 0.638744 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.434783 1 0.830500 0.700100 0.559340 0.607143 +0.798610 0.598953 0.403142 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.861000 0.797980 0.504623 0.530357 +0.453804 0.668063 0.371727 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.868500 0.642000 0.504953 0.669464 +0.554853 0.518325 0.041885 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.867500 0.858000 0.504953 0.603929 +0.453145 0.714137 0.246073 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.665500 0.516000 0.578773 0.586785 +0.420153 0.403142 0.670158 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.608696 0 0.901000 0.556000 0.923113 0.626428 +0.863839 0.691100 0.151833 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.739130 0 0.793500 0.512000 0.729339 0.763036 +0.879767 0.610471 0.387435 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.782609 0 0.685500 0.518000 0.512170 0.586250 +0.716115 0.426178 0.560210 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.780000 0.674000 0.508113 0.716964 +0.592183 0.645027 0.497383 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.770500 0.562000 0.505141 0.515715 +0.482033 0.575917 0.560210 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.956522 0 0.932000 0.784000 0.504434 0.610178 +0.548432 0.829320 0.089006 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.755500 0.536000 0.505566 0.667143 +0.522935 0.437697 0.513089 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.789000 0.700000 0.505236 0.598036 +0.557916 0.472252 0.465969 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.913043 0 0.840000 0.758660 0.504717 0.592857 +0.561063 0.702618 0.324608 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.913043 0 0.804500 0.610000 0.505377 0.673393 +0.646866 0.598953 0.246073 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.791000 0.564000 0.793585 0.583393 +0.818259 0.621990 0.528796 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.819000 0.688000 0.505283 0.629643 +0.462991 0.587435 0.371727 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 1 0 0.904000 0.888000 0.504623 0.597143 +0.524371 0.852356 0.089006 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0 1 0.788500 0.616000 0.505424 0.675000 +0.564466 0.575917 0.371727 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.719500 0.581820 0.517547 0.639822 +0.344026 0.449215 0.670158 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.347826 1 0.753500 0.570000 0.550142 0.522143 +0.646335 0.541362 0.324608 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.391304 1 0.715500 0.588000 0.574529 0.606250 +0.719315 0.495288 0.560210 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.845000 0.808000 0.555754 0.624821 +0.498215 0.691100 0.198952 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.793500 0.526000 0.813632 0.632679 +0.872580 0.518325 0.403142 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.739130 0 0.719500 0.576000 0.514103 0.565179 +0.868805 0.495288 0.403142 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0 1 0.880000 0.884000 0.504764 0.700536 +0.590695 0.714137 0.151833 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.956522 0 0.756000 0.586000 0.505660 0.604285 +0.650363 0.541362 0.418848 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.897000 0.686000 0.884905 0.551072 +0.453113 0.633508 0.167539 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.795000 0.700000 0.523773 0.501428 +0.439930 0.598953 0.246073 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.983000 0.696000 0.613349 0.611786 +0.509677 0.817801 0.089006 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.706000 0.542000 0.505943 0.581250 +0.552888 0.483770 0.481675 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.478261 1 0.856000 0.722000 0.698727 0.602500 +0.869442 0.725655 0.214660 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 0.043478 1 0.865500 0.672000 0.505000 0.591964 +0.485011 0.598953 0.136125 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.347826 1 0.783500 0.614000 0.515849 0.586250 +0.579851 0.506807 0.340314 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.791500 0.690000 0.505472 0.637143 +0.440822 0.587435 0.308900 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.217391 1 0.845000 0.792600 0.504764 0.612321 +0.446063 0.668063 0.403142 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.922000 0.862000 0.678019 0.542857 +0.841884 0.794765 0.120419 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.173913 1 0.739000 0.612000 0.505802 0.560357 +0.539129 0.483770 0.481675 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.885500 0.822000 0.584764 0.630535 +0.492613 0.725655 0.277487 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0 1 0.759000 0.544000 0.505519 0.683035 +0.531973 0.460733 0.497383 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.743000 0.595200 0.505519 0.611786 +0.495281 0.483770 0.465969 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.869565 0 0.928000 0.598000 0.507312 0.589822 +0.601966 0.691100 0.089006 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.130435 1 0.745500 0.634000 0.505754 0.575893 +0.532409 0.472252 0.418848 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.761000 0.578000 0.505236 0.529643 +0.450827 0.575917 0.560210 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.767000 0.556000 0.804434 0.664464 +0.410031 0.483770 0.638744 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.478261 1 0.852500 0.594000 0.785849 0.633035 +0.867561 0.645027 0.214660 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.782609 0 0.876500 0.846000 0.539670 0.646785 +0.705524 0.817801 0.089006 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.793000 0.566000 0.505283 0.552321 +0.465457 0.598953 0.623037 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.260870 1 0.786500 0.562000 0.505141 0.625357 +0.450424 0.495288 0.575917 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.917000 0.902000 0.710707 0.632679 +0.768468 0.909948 0.104712 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.478261 1 0.763500 0.542000 0.741085 0.506428 +0.353063 0.357068 0.497383 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.391304 1 0.841500 0.668000 0.577783 0.568928 +0.771349 0.633508 0.230367 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.926500 0.774000 0.831556 0.698035 +0.860235 0.783246 0.167539 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.826087 0 0.836500 0.681080 0.504717 0.662500 +0.491432 0.506807 0.418848 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.869565 0 0.925000 0.590000 0.508915 0.600536 +0.623017 0.679581 0.089006 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.746500 0.584740 0.572689 0.573750 +0.698889 0.552880 0.560210 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.521739 0 0.765500 0.632000 0.580283 0.735714 +0.910780 0.610471 0.434556 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.882500 0.834000 0.504906 0.636072 +0.486000 0.633508 0.104712 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.766000 0.588000 0.775189 0.732857 +0.840735 0.575917 0.591623 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.652174 0 0.836500 0.788000 0.549339 0.633928 +0.796451 0.725655 0.308900 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.746500 0.510000 0.516415 0.601607 +0.462492 0.483770 0.607331 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.833000 0.524000 0.505189 0.597322 +0.587995 0.552880 0.308900 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.782609 0 0.758000 0.546000 0.510424 0.508214 +0.492240 0.460733 0.513089 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.173913 1 0.814500 0.718000 0.505047 0.662500 +0.460769 0.598953 0.230367 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0 1 0.811000 0.666660 0.505141 0.502321 +0.629216 0.529843 0.324608 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.904000 0.648000 0.504764 0.680357 +0.490432 0.668063 0.167539 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.735000 0.595340 0.520990 0.555893 +0.568729 0.437697 0.513089 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.652174 0 0.930000 0.598000 0.919811 0.606785 +0.856715 0.702618 0.104712 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.837500 0.592000 0.505141 0.694643 +0.451625 0.529843 0.214660 diff --git a/lib/ann/fann/datasets/building.train b/lib/ann/fann/datasets/building.train new file mode 100644 index 0000000..6bbdf18 --- /dev/null +++ b/lib/ann/fann/datasets/building.train @@ -0,0 +1,4209 @@ +2104 14 3 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.662500 0.506000 0.566132 0.594464 +0.523660 0.392432 0.821622 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.304348 1 0.642500 0.551640 0.506320 0.589107 +0.404031 0.392432 0.854053 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.795500 0.625260 0.505708 0.574464 +0.609502 0.558919 0.432432 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.304348 1 0.785000 0.608000 0.505424 0.584822 +0.494593 0.523243 0.351351 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.652174 0 0.755500 0.568000 0.543113 0.605178 +0.708910 0.499459 0.643243 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.930500 0.612000 0.926887 0.591964 +0.912821 0.796757 0.124324 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.752000 0.548000 0.505519 0.544464 +0.458489 0.487567 0.756757 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.771000 0.650000 0.662359 0.750535 +0.512596 0.582703 0.643243 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.826000 0.672000 0.505236 0.615357 +0.505274 0.594594 0.318918 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.521739 0 0.784000 0.588000 0.847924 0.740357 +0.919858 0.630270 0.351351 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.900000 0.538000 0.895802 0.555535 +0.916224 0.725405 0.172973 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.840000 0.642000 0.818679 0.746072 +0.474746 0.642162 0.529730 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.739000 0.602840 0.505141 0.647678 +0.423450 0.570811 0.627028 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 0.043478 1 0.878500 0.702000 0.504906 0.643571 +0.533331 0.749189 0.140540 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.652174 0 0.928500 0.678000 0.683962 0.642143 +0.896466 0.761081 0.108108 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.732500 0.552000 0.505566 0.542500 +0.354350 0.451892 0.789189 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.856500 0.580000 0.505189 0.747500 +0.640183 0.713513 0.464865 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.722000 0.586000 0.505708 0.675714 +0.497633 0.463784 0.691892 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.391304 1 0.805000 0.705780 0.508680 0.583035 +0.713125 0.665946 0.416216 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.304348 1 0.812500 0.749740 0.504858 0.579107 +0.495757 0.737297 0.448649 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.702000 0.564000 0.562358 0.525893 +0.336929 0.416216 0.789189 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.823500 0.704000 0.505189 0.579286 +0.538171 0.570811 0.221622 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.762000 0.616000 0.505754 0.650715 +0.510904 0.558919 0.594594 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.434783 1 0.872000 0.736000 0.533444 0.556428 +0.834005 0.749189 0.156757 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.304348 1 0.653500 0.570000 0.506226 0.593036 +0.522870 0.404324 0.886486 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.722000 0.504000 0.505660 0.638036 +0.487095 0.487567 0.659459 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.173913 1 0.772500 0.616980 0.505236 0.665178 +0.466447 0.499459 0.610810 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.833000 0.744000 0.505189 0.593393 +0.516799 0.665946 0.270271 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.863500 0.690000 0.505047 0.575179 +0.511958 0.654054 0.205405 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.755500 0.550000 0.505283 0.533571 +0.446228 0.547027 0.675675 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.869565 0 0.892500 0.546000 0.506698 0.601607 +0.649919 0.654054 0.124324 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.695652 0 0.842500 0.660000 0.831132 0.700000 +0.877146 0.642162 0.108108 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.913043 0 0.959000 0.680000 0.504434 0.616607 +0.600972 0.832432 0.075675 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.883500 0.548000 0.548868 0.608036 +0.535449 0.606486 0.221622 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.565217 0 0.823000 0.674000 0.770754 0.692857 +0.870450 0.582703 0.075675 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 0.043478 1 0.850000 0.672000 0.505047 0.596429 +0.529170 0.606486 0.140540 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.745000 0.556000 0.669481 0.543750 +0.870307 0.606486 0.578379 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.750500 0.596740 0.505472 0.645000 +0.458380 0.594594 0.724324 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.583000 0.514000 0.577783 0.755715 +0.463560 0.344865 0.951351 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.762500 0.610240 0.513774 0.701964 +0.423385 0.558919 0.659459 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.652174 0 0.907500 0.554000 0.900944 0.633572 +0.897893 0.749189 0.156757 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.913043 0 0.800000 0.582000 0.505047 0.579821 +0.490509 0.558919 0.529730 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.794500 0.661000 0.505189 0.558035 +0.519555 0.558919 0.367567 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.871000 0.866000 0.504953 0.557857 +0.476361 0.737297 0.254054 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.759500 0.578000 0.505754 0.656964 +0.731040 0.547027 0.448649 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.845000 0.785720 0.522500 0.505179 +0.425262 0.618378 0.302702 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.844000 0.686000 0.587264 0.520357 +0.771985 0.630270 0.172973 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.813000 0.648000 0.505000 0.585357 +0.525537 0.523243 0.481081 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.391304 1 0.744000 0.600000 0.530661 0.660000 +0.807705 0.535135 0.416216 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.635500 0.510000 0.692075 0.609821 +0.544439 0.368649 0.837837 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.735500 0.570000 0.581887 0.527322 +0.711829 0.547027 0.627028 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.217391 1 0.831000 0.746280 0.504858 0.649822 +0.567316 0.618378 0.335136 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.791500 0.626000 0.511792 0.506428 +0.629425 0.523243 0.383783 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.837500 0.686000 0.658444 0.680179 +0.481311 0.618378 0.335136 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.613000 0.524000 0.506462 0.751965 +0.478292 0.380540 0.918918 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.347826 1 0.742000 0.560000 0.524906 0.704821 +0.652982 0.499459 0.497297 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.711500 0.573640 0.511132 0.660893 +0.409696 0.463784 0.675675 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.695652 0 0.912500 0.660000 0.635424 0.623750 +0.943019 0.808648 0.140540 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.845500 0.736000 0.505141 0.501607 +0.470048 0.665946 0.221622 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.391304 1 0.742000 0.614000 0.523679 0.613928 +0.718197 0.558919 0.659459 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.347826 1 0.725500 0.582160 0.514812 0.561428 +0.317597 0.440000 0.708108 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.992500 0.694000 0.720613 0.613572 +0.445086 0.868108 0.124324 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.860000 0.826880 0.504717 0.649464 +0.524889 0.820540 0.432432 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.565217 0 0.878500 0.588000 0.911793 0.660536 +0.864521 0.642162 0.189189 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.595000 0.514000 0.506746 0.724822 +0.521169 0.332973 0.805406 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.478261 1 0.921000 0.872000 0.731651 0.595893 +0.843820 0.880000 0.108108 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.952500 0.612000 0.723161 0.599643 +0.885840 0.808648 0.108108 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.565217 0 0.889500 0.562000 0.909434 0.645535 +0.879670 0.701621 0.189189 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.739130 0 0.762000 0.506000 0.632877 0.713215 +0.798911 0.630270 0.610810 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.826087 0 0.744000 0.602000 0.505519 0.756072 +0.700875 0.511351 0.481081 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.823500 0.764000 0.505141 0.685357 +0.529455 0.570811 0.318918 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.869565 0 0.776500 0.586000 0.505519 0.604107 +0.665638 0.570811 0.400000 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.890500 0.918000 0.504717 0.596250 +0.439686 0.820540 0.124324 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.848500 0.580000 0.868632 0.648571 +0.471255 0.618378 0.302702 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.952000 0.810000 0.787594 0.541250 +0.791118 0.677838 0.075675 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.347826 1 0.727000 0.566000 0.510330 0.647678 +0.325720 0.344865 0.659459 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.734500 0.582000 0.505896 0.573035 +0.506174 0.499459 0.529730 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.794000 0.564000 0.695283 0.687500 +0.427632 0.535135 0.367567 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.749000 0.564000 0.505424 0.540536 +0.429345 0.511351 0.740540 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.851500 0.672000 0.505141 0.548036 +0.464516 0.642162 0.172973 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.869565 0 0.666000 0.564000 0.506037 0.647322 +0.539456 0.392432 0.821622 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.260870 1 0.823500 0.644000 0.505236 0.605714 +0.509247 0.582703 0.351351 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.913043 0 0.744500 0.554000 0.505566 0.720357 +0.705354 0.535135 0.481081 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.847500 0.812000 0.505000 0.597500 +0.491826 0.677838 0.286487 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.741500 0.608000 0.505283 0.571428 +0.423846 0 0.318918 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.753500 0.605140 0.543679 0.526429 +0.588019 0.499459 0.497297 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.741000 0.506000 0.667217 0.698215 +0.684366 0.594594 0.529730 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.820000 0.534000 0.505236 0.646071 +0.570105 0.535135 0.400000 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.849500 0.816000 0.505047 0.602322 +0.483210 0.677838 0.302702 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.738000 0.550000 0.505519 0.565357 +0.359454 0.451892 0.724324 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.911500 0.644000 0.858019 0.643036 +0.501180 0.689730 0.221622 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.739130 0 0.855000 0.752000 0.554387 0.610178 +0.887157 0.713513 0.221622 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.652174 0 0.866000 0.612000 0.761368 0.605357 +0.712643 0.606486 0.400000 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 1 0 0.778000 0.562000 0.505000 0.696786 +0.569281 0.606486 0.659459 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.713500 0.575720 0.505519 0.586964 +0.383274 0.487567 0.789189 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.782609 0 0.829500 0.520000 0.513868 0.574643 +0.361659 0.297297 0.497297 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.903500 0.664000 0.504717 0.598571 +0.700930 0.725405 0.189189 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.863500 0.844000 0.513397 0.661607 +0.441123 0.725405 0.286487 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.874500 0.818000 0.505000 0.528215 +0.475482 0.701621 0.172973 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.521739 0 0.792500 0.688000 0.695991 0.639822 +0.836728 0.677838 0.432432 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.086957 1 0.775000 0.624000 0.505519 0.740178 +0.528336 0.582703 0.578379 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.217391 1 0.816500 0.736000 0.505283 0.593571 +0.498950 0.654054 0.286487 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.885500 0.906000 0.518113 0.564465 +0.428170 0.796757 0.140540 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0 1 0.827000 0.734120 0.504953 0.641607 +0.560301 0.618378 0.254054 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.130435 1 0.774500 0.611580 0.505047 0.542322 +0.474780 0.558919 0.610810 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0 1 0.595000 0.516000 0.506792 0.514822 +0.317301 0.249730 0.951351 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.825000 0.616000 0.505236 0.683928 +0.440476 0.570811 0.318918 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.478261 1 0.659500 0.568000 0.568915 0.558393 +0.738044 0.380540 0.789189 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.927000 0.574000 0.511462 0.585178 +0.510070 0.654054 0.156757 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.743000 0.544000 0.617264 0.556250 +0.362966 0.451892 0.675675 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.723000 0.580000 0.505991 0.599107 +0.490685 0.487567 0.562161 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.521739 0 0.814000 0.652000 0.790377 0.657322 +0.704234 0.582703 0.416216 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.391304 1 0.690000 0.552000 0.588585 0.707857 +0.716529 0.547027 0.691892 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.881500 0.882000 0.523444 0.574821 +0.587174 0.784865 0.172973 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.695652 0 0.821500 0.645160 0.532642 0.570357 +0.708395 0.570811 0.448649 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0 1 0.813500 0.574000 0.504953 0.549107 +0.532256 0.606486 0.610810 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 0.043478 1 0.820000 0.564000 0.505283 0.648929 +0.498544 0.547027 0.270271 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.893500 0.914000 0.527122 0.595357 +0.528117 0.832432 0.108108 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 0.043478 1 0.881500 0.722000 0.504858 0.626965 +0.522146 0.677838 0.124324 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.802500 0.690000 0.505283 0.506250 +0.483616 0.606486 0.237838 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 1 0 0.880500 0.868000 0.504717 0.701072 +0.634112 0.725405 0.140540 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.827000 0.540000 0.702217 0.622679 +0.855268 0.689730 0.464865 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.956522 0 0.799500 0.614000 0.505377 0.636428 +0.665277 0.618378 0.286487 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.921000 0.872000 0.504670 0.581429 +0.416513 0.868108 0.091893 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.868500 0.702000 0.504953 0.604465 +0.547063 0.642162 0.156757 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.217391 1 0.648500 0.544120 0.506226 0.521429 +0.404755 0.404324 0.854053 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.853000 0.554000 0.933962 0.687500 +0.483177 0.570811 0.270271 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.347826 1 0.677000 0.570000 0.532736 0.618928 +0.477172 0.428108 0.659459 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.763500 0.620000 0.505141 0.676072 +0.453560 0 0.027028 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 1 0 0.735000 0.580000 0.505424 0.591071 +0.468028 0.523243 0.708108 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.930500 0.674000 0.872783 0.595000 +0.883786 0.737297 0.108108 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.806500 0.618000 0.505377 0.613036 +0.427523 0.547027 0.335136 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.304348 1 0.712000 0.546000 0.505896 0.533929 +0.572640 0.440000 0.610810 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.673500 0.538820 0.505943 0.559821 +0.556009 0.416216 0.772973 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.304348 1 0.839000 0.760000 0.504906 0.628750 +0.513210 0.677838 0.464865 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.478261 1 0.925500 0.840000 0.727500 0.618393 +0.889407 0.868108 0.108108 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.836500 0.786000 0.505141 0.591250 +0.513254 0.558919 0.075675 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.391304 1 0.835000 0.706000 0.593868 0.568214 +0.785816 0.677838 0.189189 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.217391 1 0.702500 0.548000 0.505566 0.757321 +0.449147 0.523243 0.756757 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.717500 0.580000 0.505660 0.733929 +0.525593 0.463784 0.594594 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.521739 0 0.801000 0.666000 0.584670 0.602322 +0.402989 0.499459 0.627028 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.347826 1 0.835000 0.714000 0.516887 0.561250 +0.581203 0.630270 0.172973 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.434783 1 0.701500 0.560000 0.703349 0.658215 +0.491893 0.451892 0.464865 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 0.043478 1 0.730500 0.556000 0.505566 0.671429 +0.345699 0.356757 0.724324 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.926500 0.862000 0.504623 0.580715 +0.369135 0.856216 0.124324 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.565217 0 0.882000 0.864000 0.520896 0.693572 +0.880428 0.856216 0.091893 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.173913 1 0.656500 0.524000 0.506462 0.500179 +0.542628 0.380540 0.708108 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.706500 0.534000 0.505991 0.700000 +0.513024 0.428108 0.594594 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.855500 0.678000 0.777925 0.692857 +0.676989 0.701621 0.367567 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.740000 0.570000 0.505472 0.650893 +0.438939 0.487567 0.691892 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.677500 0.570000 0.506037 0.770178 +0.594913 0.416216 0.578379 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.739130 0 0.874000 0.600000 0.602500 0.583571 +0.685233 0.523243 0.335136 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.866000 0.688000 0.504764 0.522143 +0.705826 0.713513 0.237838 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0 1 0.902500 0.806000 0.504670 0.568035 +0.497358 0.772973 0.124324 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.902000 0.628000 0.955189 0.593215 +0.524561 0.654054 0.172973 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.217391 1 0.793500 0.592000 0.505424 0.595893 +0.462430 0.523243 0.335136 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.893500 0.652000 0.782076 0.645357 +0.881427 0.761081 0.124324 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.824000 0.764000 0.505000 0.598393 +0.484109 0.582703 0.286487 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.808000 0.696000 0.505236 0.637679 +0.467259 0.630270 0.237838 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.913500 0.834000 0.504764 0.514286 +0.419806 0.796757 0.156757 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.885000 0.596000 0.526887 0.643036 +0.535406 0.618378 0.237838 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.890500 0.572000 0.504764 0.707143 +0.556723 0.618378 0.108108 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.822500 0.750000 0.505236 0.575000 +0.465943 0.630270 0.237838 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.866500 0.768720 0.504575 0.560893 +0.562399 0.737297 0.367567 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.761500 0.648000 0.505472 0.582857 +0.577403 0.511351 0.481081 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.304348 1 0.782500 0.640120 0.505189 0.645715 +0.488994 0.511351 0.545946 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.608696 0 0.843000 0.530000 0.805094 0.564286 +0.728472 0.606486 0.464865 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.721000 0.540000 0.505472 0.630893 +0.503209 0.535135 0.724324 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 0.043478 1 0.787500 0.647200 0.505141 0.661429 +0.459839 0.618378 0.578379 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.754000 0.600000 0.505189 0.643393 +0.424241 0 0.027028 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.822500 0.684000 0.505236 0.618214 +0.484372 0.594594 0.383783 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.791000 0.558000 0.504953 0.660893 +0.621258 0.618378 0.545946 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.826087 0 0.813000 0.568000 0.505236 0.531964 +0.693828 0.594594 0.367567 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.649000 0.549000 0.514434 0.579821 +0.618272 0.321081 0.821622 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.885000 0.724000 0.504953 0.598393 +0.476294 0.701621 0.189189 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.811500 0.684000 0.505189 0.573035 +0.504253 0.606486 0.205405 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0 1 0.780500 0.622020 0.505189 0.549107 +0.484780 0.523243 0.529730 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.434783 1 0.884500 0.854000 0.565330 0.628214 +0.888694 0.749189 0.172973 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.821000 0.758000 0.505000 0.655893 +0.483056 0.570811 0.302702 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.744000 0.552000 0.738113 0.696428 +0.352856 0.451892 0.675675 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.173913 1 0.811000 0.602000 0.505377 0.551250 +0.473627 0.547027 0.254054 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.937000 0.604000 0.918396 0.616250 +0.524780 0.725405 0.205405 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.434783 1 0.909000 0.882000 0.666037 0.580357 +0.856904 0.891892 0.124324 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.739130 0 0.949500 0.532000 0.742736 0.627679 +0.874687 0.701621 0.156757 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.826087 0 0.843000 0.618000 0.504906 0.572857 +0.614035 0.630270 0.464865 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.565217 0 0.747000 0.572000 0.677311 0.657322 +0.710930 0.582703 0.610810 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.856500 0.820000 0.504953 0.680714 +0.476129 0.701621 0.302702 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.890500 0.504000 0.791510 0.694643 +0.832139 0.654054 0.189189 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.434783 1 0.797000 0.650520 0.604905 0.650535 +0.867014 0.547027 0.351351 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.784500 0.697080 0.505283 0.545714 +0.477074 0.570811 0.286487 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.874000 0.824000 0.504953 0.575000 +0.467161 0.761081 0.124324 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.744000 0.601020 0.505660 0.602678 +0.505504 0.499459 0.513514 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.130435 1 0.849500 0.646000 0.505141 0.563393 +0.509631 0.594594 0.254054 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.768500 0.632000 0.512736 0.598929 +0.623497 0.523243 0.464865 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.788000 0.694000 0.505424 0.563750 +0.501619 0.630270 0.270271 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.652174 0 0.785000 0.570000 0.757924 0.928571 +0.853051 0.642162 0.513514 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.885000 0.664000 0.504906 0.657678 +0.584034 0.582703 0.221622 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.782609 0 0.673000 0.564000 0.510330 0.666250 +0.598853 0.440000 0.756757 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 0.043478 1 0.722000 0.552000 0.505754 0.706964 +0.554408 0.487567 0.545946 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.565217 0 0.819000 0.510000 0.808537 0.551428 +0.374788 0.309189 0.562161 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.217391 1 0.835000 0.781280 0.504764 0.691072 +0.462824 0.725405 0.416216 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.521739 0 0.837500 0.704000 0.779764 0.623928 +0.927322 0.570811 0.318918 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.655000 0.546000 0.506179 0.577322 +0.493077 0.332973 0.708108 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.869565 0 0.773500 0.528000 0.505566 0.576250 +0.697285 0.654054 0.448649 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.391304 1 0.749000 0.642000 0.598019 0.554286 +0.595089 0.535135 0.497297 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.744500 0.586000 0.505754 0.576786 +0.581818 0.547027 0.448649 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.911000 0.626000 0.640566 0.629465 +0.630270 0.737297 0.124324 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.574000 0.518000 0.570991 0.628572 +0.501486 0.321081 0.886486 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.780500 0.546000 0.598349 0.610000 +0.427325 0.547027 0.724324 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.705000 0.530000 0.505943 0.542500 +0.522739 0.404324 0.610810 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.779000 0.548000 0.825377 0.626072 +0.487414 0.570811 0.610810 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 1 0 0.891500 0.842000 0.504670 0.562321 +0.553770 0.832432 0.108108 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.831000 0.778000 0.506179 0.565000 +0.538864 0.570811 0.237838 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.712000 0.588000 0.599151 0.602857 +0.421837 0.475676 0.627028 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.824500 0.726000 0.505236 0.532857 +0.454855 0.630270 0.237838 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.652174 0 0.873500 0.846000 0.594576 0.709643 +0.908364 0.927567 0.108108 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.260870 1 0.788000 0.600000 0.505424 0.596607 +0.462100 0.523243 0.335136 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.751000 0.654000 0.505236 0.668393 +0.436382 0.570811 0.740540 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.565217 0 0.903000 0.744000 0.812029 0.705893 +0.902437 0.594594 0.140540 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.844000 0.658000 0.790613 0.600000 +0.548325 0.547027 0.237838 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.884500 0.646000 0.504764 0.578393 +0.483177 0.630270 0.156757 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.217391 1 0.713500 0.596000 0.505708 0.570357 +0.345984 0.440000 0.772973 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.795000 0.656480 0.505189 0.534643 +0.511486 0.547027 0.400000 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.740000 0.532000 0.505660 0.709285 +0.517843 0.451892 0.545946 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.173913 1 0.768000 0.562000 0.505377 0.565179 +0.430859 0.535135 0.627028 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.757000 0.606140 0.505377 0.688750 +0.474581 0.558919 0.643243 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 0.043478 1 0.719000 0.534000 0.505754 0.545178 +0.622520 0.463784 0.545946 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.854000 0.687540 0.581792 0.538393 +0.805290 0.654054 0.351351 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.921000 0.622000 0.946226 0.597857 +0.885159 0.772973 0.108108 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.854500 0.748000 0.505047 0.547500 +0.467435 0.689730 0.189189 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.926000 0.852000 0.741557 0.623393 +0.864336 0.868108 0.091893 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.792500 0.638840 0.505047 0.595893 +0.350716 0.499459 0.578379 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.304348 1 0.778000 0.562000 0.505189 0.626428 +0.468566 0.535135 0.643243 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.531500 0.514000 0.507358 0.647322 +0.422868 0.047568 0.951351 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.130435 1 0.801000 0.580000 0.505424 0.583215 +0.466053 0.511351 0.286487 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.700500 0.536000 0.796368 0.832500 +0.815378 0.487567 0.627028 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.781000 0.548000 0.505189 0.652143 +0.359059 0.309189 0.643243 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.824500 0.735680 0.504953 0.668393 +0.522387 0.594594 0.270271 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.727500 0.536000 0.563821 0.593750 +0.453878 0.463784 0.659459 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.130435 1 0.725500 0.558000 0.505566 0.618214 +0.340111 0.356757 0.708108 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.782609 0 0.849500 0.750000 0.508680 0.641071 +0.781887 0.665946 0.221622 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.883000 0.896000 0.556934 0.632321 +0.791250 0.832432 0.351351 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.652174 0 0.961500 0.722000 0.920188 0.596607 +0.890406 0.939459 0.091893 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.652174 0 0.874000 0.575000 0.777453 0.595178 +0.965281 0.582703 0.140540 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.739130 0 0.936000 0.544000 0.741321 0.557321 +0.853238 0.713513 0.156757 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.895500 0.628000 0.504764 0.539643 +0.521047 0.618378 0.156757 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.725000 0.592000 0.505519 0.671785 +0.450311 0.487567 0.772973 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.086957 1 0.851500 0.754000 0.505047 0.559107 +0.542058 0.701621 0.254054 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.869565 0 0.805000 0.654000 0.505141 0.647322 +0.673861 0.547027 0.318918 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.882500 0.504000 0.824670 0.546250 +0.915192 0.582703 0.172973 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.565217 0 0.892500 0.648000 0.854811 0.626786 +0.914841 0.784865 0.189189 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.828500 0.548000 0.871698 0.669107 +0.452440 0.547027 0.318918 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.732000 0.564000 0.505424 0.590536 +0.428676 0.535135 0.837837 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.347826 1 0.785000 0.700000 0.505519 0.605000 +0.579841 0.654054 0.610810 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.713500 0.544000 0.580849 0.686428 +0.815982 0.511351 0.594594 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 1 0 0.748000 0.588000 0.505754 0.585536 +0.642092 0.558919 0.448649 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.739130 0 0.886000 0.758000 0.569009 0.700714 +0.847024 0.772973 0.335136 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.964000 0.740000 0.709339 0.629465 +0.878847 0.880000 0.075675 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.886500 0.860000 0.585944 0.590715 +0.859912 0.713513 0.108108 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.260870 1 0.846000 0.797260 0.504764 0.600357 +0.467205 0.689730 0.400000 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.130435 1 0.660000 0.524000 0.506415 0.502500 +0.553474 0.392432 0.724324 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.796500 0.554000 0.816368 0.647143 +0.679315 0.558919 0.562161 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.739130 0 0.838000 0.628000 0.575896 0.666250 +0.877926 0.570811 0.302702 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.677000 0.568000 0.506226 0.500714 +0.483331 0.404324 0.772973 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.173913 1 0.896000 0.854000 0.504764 0.582857 +0.428116 0.856216 0.108108 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.774000 0.520000 0.736934 0.591964 +0.890297 0.582703 0.594594 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.850500 0.706000 0.505047 0.553572 +0.519620 0.654054 0.156757 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.879000 0.654000 0.510330 0.605357 +0.551608 0.606486 0.221622 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.695652 0 0.908000 0.612000 0.805094 0.583929 +0.936060 0.784865 0.140540 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0 1 0.815000 0.691480 0.504953 0.523571 +0.605001 0.618378 0.302702 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.661000 0.510000 0.798868 0.601607 +0.313492 0.261622 0.772973 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.217391 1 0.717500 0.528000 0.505802 0.676785 +0.519631 0.463784 0.627028 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.304348 1 0.691500 0.552000 0.505660 0.722500 +0.498939 0.523243 0.772973 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.565217 0 0.796500 0.670000 0.539905 0.642857 +0.841931 0.606486 0.513514 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.880000 0.532000 0.926179 0.711250 +0.563507 0.606486 0.302702 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.478261 1 0.749000 0.572000 0.645802 0.703571 +0.715332 0.582703 0.643243 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.608696 0 0.751500 0.568000 0.589622 0.603393 +0.703454 0.487567 0.659459 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.260870 1 0.876500 0.876000 0.504764 0.569465 +0.437851 0.784865 0.156757 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.865000 0.768000 0.652689 0.509286 +0.491947 0.535135 0.189189 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.757000 0.548000 0.505283 0.571072 +0.509762 0.511351 0.659459 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0 1 0.715000 0.562000 0.505660 0.587143 +0.356687 0.440000 0.772973 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.709000 0.582000 0.508019 0.573215 +0.528171 0.463784 0.545946 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.980000 0.710000 0.626226 0.660715 +0.822107 0.808648 0.059459 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.956522 0 0.865000 0.698000 0.504953 0.598750 +0.663553 0.701621 0.221622 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.910000 0.646000 0.937264 0.562143 +0.485701 0.654054 0.172973 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.851000 0.818000 0.524812 0.617857 +0.471739 0.677838 0.302702 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0 1 0.836500 0.796360 0.504717 0.566607 +0.478555 0.737297 0.367567 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.130435 1 0.736500 0.542000 0.505519 0.616965 +0.343240 0.332973 0.675675 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.852000 0.724000 0.709434 0.552321 +0.441463 0.654054 0.237838 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.718000 0.578940 0.519056 0.602857 +0.361648 0.451892 0.659459 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.882500 0.556000 0.898585 0.563393 +0.886564 0.689730 0.205405 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.839500 0.748000 0.614622 0.597678 +0.528951 0.654054 0.221622 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.705000 0.510000 0.747311 0.656785 +0.454351 0.487567 0.789189 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.724000 0.590000 0.505708 0.642321 +0.518030 0.463784 0.578379 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0 1 0.855000 0.814000 0.504953 0.686250 +0.490696 0.689730 0.302702 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.869565 0 0.748000 0.514000 0.505283 0.555714 +0.601917 0.535135 0.708108 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0 1 0.805000 0.552000 0.505283 0.685179 +0.643893 0.606486 0.286487 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.783000 0.558000 0.778396 0.642143 +0.491344 0.618378 0.545946 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.217391 1 0.673500 0.561900 0.505943 0.629286 +0.485097 0.392432 0.789189 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.901000 0.918000 0.608962 0.610536 +0.709470 0.880000 0.108108 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.696000 0.576000 0.505802 0.735178 +0.583167 0.451892 0.643243 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0 1 0.760500 0.550000 0.505283 0.550714 +0.460608 0.547027 0.627028 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.628000 0.514000 0.733963 0.590715 +0.297367 0.285405 0.854053 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.782609 0 0.797500 0.596000 0.510519 0.631965 +0.657943 0.499459 0.464865 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.956522 0 0.854500 0.748160 0.504623 0.593571 +0.581653 0.725405 0.351351 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.670000 0.546760 0.505991 0.564107 +0.557436 0.440000 0.772973 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.731500 0.532000 0.505519 0.597143 +0.499028 0.558919 0.659459 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.812500 0.742000 0.505000 0.595536 +0.422397 0.570811 0.545946 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.304348 1 0.833500 0.702000 0.505283 0.532857 +0.496459 0.582703 0.205405 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 1 0 0.799000 0.574200 0.505141 0.590715 +0.358366 0.499459 0.627028 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.730000 0.592000 0.505472 0.694286 +0.465789 0.511351 0.805406 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.679500 0.520000 0.506037 0.575179 +0.350211 0.309189 0.821622 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.826087 0 0.897500 0.626000 0.516415 0.644286 +0.713992 0.701621 0.156757 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.856000 0.788000 0.505000 0.620714 +0.531881 0.665946 0.286487 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.260870 1 0.798000 0.701940 0.505047 0.640893 +0.434163 0.665946 0.481081 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.434783 1 0.699500 0.544000 0.679387 0.704107 +0.799877 0.570811 0.610810 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.779000 0.562000 0.795188 0.628928 +0.706540 0.547027 0.594594 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.723000 0.506000 0.726132 0.616072 +0.460860 0.487567 0.691892 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.391304 1 0.869500 0.760000 0.517075 0.599643 +0.750798 0.713513 0.156757 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.652174 0 0.821500 0.560000 0.724528 0.591607 +0.952163 0.654054 0.286487 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.799000 0.554000 0.504906 0.611428 +0.625407 0.630270 0.529730 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.347826 1 0.720000 0.586000 0.506462 0.579643 +0.459049 0.440000 0.740540 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.777500 0.614000 0.643255 0.754822 +0.534726 0.582703 0.675675 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0 1 0.900500 0.892000 0.504670 0.587857 +0.523067 0.856216 0.091893 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.130435 1 0.825000 0.749360 0.504717 0.641250 +0.490838 0.642162 0.432432 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.826087 0 0.808000 0.536000 0.505000 0.565357 +0.632883 0.630270 0.513514 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.782609 0 0.760500 0.508000 0.539905 0.629286 +0.669513 0.618378 0.691892 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.833500 0.774000 0.505189 0.528750 +0.519488 0.558919 0.075675 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.797000 0.698000 0.505472 0.603215 +0.449838 0.618378 0.318918 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.708500 0.582000 0.579623 0.638393 +0.585856 0.487567 0.708108 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.862500 0.846000 0.505283 0.673750 +0.454284 0.737297 0.302702 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.086957 1 0.797500 0.686000 0.505000 0.568393 +0.461738 0.523243 0.610810 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.839000 0.704000 0.505047 0.597678 +0.567173 0.558919 0.221622 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.739500 0.575000 0.505424 0.565357 +0.406853 0.475676 0.675675 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.722000 0.614000 0.535188 0.555357 +0.488062 0.440000 0.513514 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.892500 0.904000 0.504953 0.569107 +0.448554 0.832432 0.108108 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.521739 0 0.780000 0.536000 0.786462 0.597678 +0.873480 0.582703 0.545946 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.800500 0.524000 0.792877 0.660178 +0.909550 0.535135 0.383783 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 0.043478 1 0.667000 0.568000 0.506085 0.579107 +0.420970 0.404324 0.772973 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.895000 0.932000 0.504906 0.595000 +0.398664 0.844324 0.124324 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.901000 0.792000 0.543585 0.643750 +0.562651 0.749189 0.254054 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.800500 0.526000 0.837122 0.628928 +0.935709 0.630270 0.351351 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.826087 0 0.818000 0.606000 0.517075 0.707857 +0.670182 0.618378 0.254054 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.869565 0 0.836000 0.670000 0.511321 0.612857 +0.644870 0.606486 0.124324 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 1 0 0.887000 0.640000 0.504858 0.592322 +0.578678 0.689730 0.108108 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.844000 0.582000 0.504858 0.602143 +0.515504 0.677838 0.578379 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.829000 0.748000 0.600990 0.618035 +0.489159 0.547027 0.383783 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.735500 0.592000 0.505519 0.583215 +0.414493 0.475676 0.708108 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.751000 0.588000 0.603537 0.564107 +0.423132 0.570811 0.691892 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.687500 0.564000 0.579387 0.733750 +0.794862 0.463784 0.659459 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.775500 0.598000 0.545047 0.570000 +0.678624 0.558919 0.237838 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.173913 1 0.910000 0.744000 0.504858 0.540000 +0.429971 0.808648 0.075675 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.763000 0.540000 0.505377 0.666250 +0.454505 0.570811 0.643243 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.826087 0 0.801500 0.576000 0.505189 0.514286 +0.370025 0.499459 0.675675 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.695652 0 0.915500 0.542000 0.848113 0.621607 +0.884062 0.749189 0.140540 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.826087 0 0.752000 0.550000 0.505472 0.710357 +0.721326 0.547027 0.481081 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.608696 0 0.691000 0.562000 0.770095 0.534822 +0.723499 0.428108 0.740540 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.924500 0.706000 0.778396 0.606785 +0.896192 0.749189 0.140540 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.947500 0.716000 0.555425 0.625000 +0.512793 0.784865 0.108108 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.584000 0.516000 0.506934 0.586964 +0.314228 0.261622 0.951351 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.837500 0.764000 0.505047 0.691786 +0.573134 0.665946 0.335136 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.937000 0.642000 0.628302 0.563393 +0.660304 0.761081 0.124324 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.966500 0.744000 0.824434 0.621428 +0.815585 0.951351 0.091893 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.534500 0.512000 0.670896 0.606785 +0.508072 0.225946 0.935135 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.217391 1 0.839500 0.670000 0.505189 0.547143 +0.493287 0.606486 0.270271 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.652174 0 0.877500 0.650000 0.727311 0.638036 +0.924655 0.677838 0.270271 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.805500 0.524000 0.748679 0.633928 +0.511673 0.547027 0.675675 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.130435 1 0.780000 0.633220 0.505141 0.607322 +0.452079 0.511351 0.562161 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.956522 0 0.893500 0.610000 0.504858 0.620357 +0.611324 0.618378 0.172973 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.565217 0 0.807500 0.566000 0.841698 0.606250 +0.917301 0.618378 0.383783 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.793000 0.624000 0.505519 0.540893 +0.455087 0.511351 0.383783 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.693500 0.590000 0.507547 0.624643 +0.334470 0.416216 0.789189 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.809000 0.648000 0.569151 0.617143 +0.437534 0.511351 0.545946 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.879500 0.728000 0.565000 0.623928 +0.543397 0.570811 0.286487 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.887500 0.690000 0.508820 0.592678 +0.584110 0.594594 0.270271 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.714000 0.594000 0.505754 0.519107 +0.538853 0.428108 0.529730 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.671000 0.568000 0.506274 0.543393 +0.487732 0.404324 0.789189 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.347826 1 0.834000 0.676000 0.511698 0.566607 +0.626636 0.606486 0.286487 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.854000 0.818000 0.540142 0.621250 +0.482945 0.677838 0.302702 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.913000 0.774000 0.504764 0.600357 +0.546459 0.665946 0.156757 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.825500 0.764000 0.505141 0.611607 +0.521026 0.558919 0.254054 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.781500 0.564000 0.505283 0.645535 +0.445722 0.606486 0.821622 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.783000 0.610840 0.504953 0.792143 +0.429521 0.630270 0.708108 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.652174 0 0.848500 0.586000 0.797736 0.628035 +0.874742 0.654054 0.464865 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.749500 0.642000 0.604717 0.631607 +0.475964 0.594594 0.562161 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.695652 0 0.928000 0.754000 0.612547 0.644643 +0.950385 0.772973 0.140540 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.260870 1 0.758000 0.614000 0.505424 0.712143 +0.529467 0.547027 0.481081 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.863500 0.844780 0.504670 0.643929 +0.541685 0.832432 0.383783 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.890000 0.662000 0.504906 0.588929 +0.521729 0.654054 0.156757 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.794000 0.698000 0.505236 0.565893 +0.474581 0.535135 0.416216 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.944500 0.812000 0.846085 0.649464 +0.814774 0.951351 0.091893 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.962000 0.746000 0.885236 0.544643 +0.410749 0.832432 0.156757 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.521739 0 0.790500 0.658000 0.548962 0.672500 +0.863830 0.594594 0.529730 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.842500 0.564000 0.738585 0.748572 +0.551739 0.523243 0.416216 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.086957 1 0.857000 0.584000 0.505189 0.536607 +0.526987 0.582703 0.286487 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.847500 0.712000 0.504953 0.538393 +0.712993 0.618378 0.172973 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.779000 0.584000 0.505424 0.636786 +0.604254 0.570811 0.416216 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.260870 1 0.717000 0.544000 0.505896 0.612143 +0.524813 0.487567 0.513514 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.764500 0.546000 0.576509 0.689286 +0.936202 0.558919 0.383783 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.478261 1 0.756000 0.556000 0.729151 0.614643 +0.816365 0.475676 0.545946 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.759500 0.568220 0.717405 0.670179 +0.842634 0.558919 0.562161 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 0.043478 1 0.920500 0.830000 0.504670 0.580357 +0.463341 0.856216 0.091893 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.434783 1 0.716500 0.554000 0.666510 0.574821 +0.336512 0.356757 0.659459 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.696000 0.506000 0.514009 0.521250 +0.322965 0.297297 0.756757 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.936500 0.816000 0.819151 0.637857 +0.874314 0.856216 0.108108 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 0.043478 1 0.760500 0.656000 0.505377 0.646607 +0.469806 0.499459 0.724324 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.086957 1 0.739500 0.560000 0.505896 0.639464 +0.516152 0.511351 0.545946 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.848500 0.812000 0.505047 0.653215 +0.487699 0.677838 0.302702 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.709500 0.542000 0.781179 0.834107 +0.836223 0.499459 0.578379 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.783000 0.696000 0.505283 0.613572 +0.540905 0.487567 0.432432 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.304348 1 0.749500 0.642000 0.505283 0.580893 +0.501575 0.582703 0.659459 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.826087 0 0.829000 0.664000 0.505047 0.551250 +0.695331 0.677838 0.302702 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.894000 0.768000 0.862217 0.627857 +0.513298 0.701621 0.205405 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.870000 0.742000 0.675236 0.650715 +0.899298 0.761081 0.221622 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.707500 0.549880 0.505519 0.661607 +0.502716 0.511351 0.724324 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.949500 0.804000 0.854151 0.625179 +0.451134 0.880000 0.140540 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.608696 0 0.856500 0.574000 0.843538 0.558928 +0.858265 0.665946 0.448649 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.260870 1 0.731000 0.606000 0.505943 0.534643 +0.574308 0.499459 0.529730 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 0.043478 1 0.760500 0.590000 0.505141 0.620893 +0.499510 0.594594 0.659459 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.913043 0 0.727500 0.596000 0.505660 0.719464 +0.692730 0.499459 0.513514 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.725500 0.576000 0.666510 0.656429 +0.644892 0.499459 0.594594 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.564500 0.514000 0.699198 0.759822 +0.497151 0.285405 0.967567 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.173913 1 0.798000 0.664600 0.505047 0.668393 +0.436469 0.701621 0.610810 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.434783 1 0.659000 0.555560 0.548868 0.669822 +0.709261 0.392432 0.821622 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.654500 0.544000 0.506179 0.581250 +0.496152 0.356757 0.691892 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.926500 0.620000 0.528019 0.591071 +0.505954 0.689730 0.156757 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.721000 0.604000 0.505660 0.557857 +0.542849 0.463784 0.464865 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.827500 0.772000 0.548160 0.594822 +0.790218 0.701621 0.286487 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.829000 0.602000 0.505236 0.653393 +0.440366 0.570811 0.254054 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.860500 0.803720 0.516415 0.649107 +0.727241 0.808648 0.416216 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.829000 0.540000 0.606321 0.666250 +0.675848 0.558919 0.497297 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.913043 0 0.747000 0.620000 0.505283 0.619465 +0.618470 0.606486 0.691892 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.913043 0 0.831000 0.680000 0.504906 0.573035 +0.587669 0.642162 0.481081 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.774000 0.627880 0.505424 0.604822 +0.696540 0.642162 0.367567 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.782609 0 0.714000 0.586000 0.506415 0.550357 +0.792139 0.487567 0.513514 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.913043 0 0.798000 0.584000 0.505377 0.520715 +0.664563 0.570811 0.432432 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.826500 0.660000 0.574906 0.633035 +0.445811 0.535135 0.513514 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 0.043478 1 0.797500 0.706000 0.505047 0.652678 +0.446601 0.677838 0.513514 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0 1 0.749500 0.568000 0.505377 0.523215 +0.441595 0.487567 0.675675 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.774500 0.572000 0.504953 0.761428 +0.551081 0.594594 0.610810 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 0.043478 1 0.773500 0.672000 0.505141 0.638929 +0.494176 0.570811 0.740540 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.820000 0.756000 0.624246 0.636428 +0.676989 0.665946 0.383783 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.821500 0.718840 0.504670 0.706250 +0.429093 0.737297 0.545946 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0 1 0.842500 0.586000 0.505141 0.596607 +0.546405 0.558919 0.237838 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.786000 0.664000 0.505236 0.621607 +0.429070 0.642162 0.675675 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.766500 0.500000 0.750519 0.669286 +0.594396 0.440000 0.513514 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.304348 1 0.712000 0.580000 0.505566 0.550179 +0.479828 0.499459 0.675675 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 1 0 0.867500 0.728000 0.504953 0.603215 +0.610731 0.737297 0.237838 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.086957 1 0.799000 0.720000 0.505141 0.650535 +0.465658 0.689730 0.627028 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.565217 0 0.773000 0.520000 0.887972 0.809107 +0.923633 0.642162 0.367567 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.758000 0.558000 0.745471 0.611786 +0.446864 0.547027 0.627028 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.173913 1 0.721000 0.558000 0.505660 0.629286 +0.340365 0.356757 0.724324 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 0.043478 1 0.820000 0.691000 0.504953 0.591429 +0.469620 0.606486 0.562161 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.670000 0.547860 0.512500 0.577322 +0.741743 0.428108 0.740540 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.717500 0.542000 0.505424 0.632321 +0.487414 0.535135 0.740540 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.391304 1 0.795000 0.628000 0.588679 0.586964 +0.774400 0.594594 0.335136 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.666000 0.570000 0.506226 0.506965 +0.477973 0.392432 0.789189 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.870000 0.864000 0.504953 0.652857 +0.467852 0.737297 0.254054 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.864000 0.684000 0.504858 0.650535 +0.548249 0.594594 0.221622 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.956522 0 0.751500 0.612000 0.505377 0.561786 +0.480213 0.463784 0.675675 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.928000 0.816000 0.859905 0.568572 +0.461519 0.808648 0.124324 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.565217 0 0.789500 0.588000 0.696415 0.641071 +0.406820 0.487567 0.545946 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.565217 0 0.960500 0.692000 0.925754 0.612679 +0.832205 0.903784 0.091893 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.739130 0 0.908000 0.612000 0.664434 0.618393 +0.891218 0.761081 0.140540 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.956522 0 0.778000 0.588000 0.505283 0.603750 +0.359947 0.475676 0.627028 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.824000 0.738000 0.521934 0.680893 +0.525174 0.642162 0.254054 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.652174 0 0.755500 0.512000 0.793113 0.660715 +0.859803 0.618378 0.562161 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.695652 0 0.771500 0.542000 0.560377 0.705714 +0.933172 0.558919 0.416216 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.260870 1 0.810000 0.710000 0.505047 0.656250 +0.475603 0.618378 0.270271 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.785500 0.652300 0.505236 0.629643 +0.467259 0.654054 0.562161 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 0.043478 1 0.841500 0.722000 0.505141 0.539822 +0.547228 0.689730 0.270271 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.782609 0 0.913000 0.520000 0.673585 0.666785 +0.729174 0.725405 0.124324 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.782609 0 0.868500 0.602000 0.520896 0.575893 +0.578502 0.665946 0.335136 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.938000 0.726000 0.652924 0.630715 +0.510092 0.808648 0.108108 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.687500 0.570000 0.514340 0.705536 +0.670238 0.451892 0.708108 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.434783 1 0.792000 0.634000 0.622311 0.618035 +0.900571 0.618378 0.432432 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.304348 1 0.812500 0.729340 0.505000 0.657857 +0.587700 0.630270 0.335136 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.812000 0.612800 0.504953 0.573572 +0.376951 0.523243 0.497297 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.765500 0.632000 0.505141 0.674643 +0.485964 0 0.091893 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.347826 1 0.730500 0.606000 0.563254 0.573393 +0.691017 0.499459 0.513514 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.723000 0.565520 0.505660 0.673928 +0.360507 0.451892 0.740540 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.347826 1 0.811500 0.644000 0.511792 0.625179 +0.635495 0.582703 0.416216 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.837500 0.790000 0.504670 0.684465 +0.441969 0.761081 0.400000 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.217391 1 0.824500 0.739840 0.504670 0.668036 +0.469378 0.654054 0.464865 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.652174 0 0.936500 0.538000 0.767594 0.738393 +0.937794 0.772973 0.124324 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.391304 1 0.737000 0.516000 0.617123 0.755893 +0.693904 0.535135 0.691892 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.856500 0.750000 0.505141 0.526964 +0.468314 0.665946 0.205405 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.913500 0.674000 0.775613 0.648036 +0.944644 0.808648 0.156757 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.782000 0.630000 0.505000 0.657143 +0.610851 0.606486 0.578379 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.822500 0.592000 0.841038 0.635179 +0.470234 0.654054 0.643243 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.739000 0.577000 0.505566 0.632143 +0.527656 0.511351 0.481081 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.748500 0.518000 0.505377 0.532857 +0.452572 0.499459 0.659459 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.780000 0.609280 0.518962 0.735000 +0.945456 0.701621 0.448649 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.698500 0.546000 0.505991 0.590893 +0.541893 0.475676 0.578379 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.260870 1 0.823000 0.696000 0.505283 0.524822 +0.472639 0.594594 0.172973 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.768500 0.638000 0.505141 0.701250 +0.495032 0.547027 0.545946 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.391304 1 0.788000 0.702000 0.511321 0.792678 +0.727890 0.654054 0.513514 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.745000 0.514000 0.529293 0.578571 +0.467973 0.499459 0.659459 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 1 0 0.817500 0.742000 0.505047 0.526964 +0.699229 0.535135 0.302702 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.925000 0.638000 0.661793 0.733929 +0.804916 0.642162 0.091893 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.854000 0.592000 0.505141 0.620000 +0.449038 0.618378 0.172973 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.682500 0.590000 0.505754 0.625893 +0.450498 0.487567 0.805406 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.702000 0.558000 0.631037 0.786429 +0.904105 0.523243 0.594594 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.304348 1 0.679000 0.552000 0.506179 0.587322 +0.558963 0.404324 0.724324 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.862500 0.714000 0.597783 0.624286 +0.929145 0.618378 0.189189 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.837500 0.642000 0.625471 0.755357 +0.464405 0.570811 0.237838 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.848000 0.788320 0.504906 0.546785 +0.441782 0.630270 0.302702 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.652174 0 0.817000 0.704000 0.527924 0.629107 +0.396336 0.511351 0.578379 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0 1 0.828000 0.772000 0.504906 0.633214 +0.560841 0.630270 0.432432 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.892000 0.678000 0.831132 0.637321 +0.864412 0.796757 0.140540 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 1 0 0.889000 0.642000 0.504858 0.588750 +0.566602 0.677838 0.124324 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.878000 0.804000 0.567500 0.564465 +0.781722 0.737297 0.172973 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.913043 0 0.773500 0.680000 0.505047 0.550536 +0.613157 0.618378 0.513514 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.217391 1 0.691000 0.562000 0.505991 0.630893 +0.490488 0.463784 0.562161 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.217391 1 0.791000 0.620000 0.505141 0.695714 +0.411562 0.606486 0.643243 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.877500 0.586000 0.504953 0.664285 +0.505900 0.594594 0.124324 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.434783 1 0.848000 0.784000 0.564623 0.623035 +0.898770 0.761081 0.221622 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.869565 0 0.819000 0.670000 0.505189 0.565000 +0.658601 0.665946 0.351351 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.652174 0 0.831000 0.528000 0.754434 0.846429 +0.973679 0.689730 0.172973 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.828000 0.550000 0.558868 0.587500 +0.509807 0.665946 0.562161 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.173913 1 0.734500 0.572000 0.505377 0.581429 +0.499784 0.523243 0.659459 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.869565 0 0.796500 0.684000 0.504858 0.665536 +0.616000 0.713513 0.513514 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.217391 1 0.711500 0.544000 0.505802 0.577679 +0.532969 0.451892 0.562161 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 1 0 0.731000 0.562000 0.505754 0.572857 +0.505416 0.451892 0.627028 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.735500 0.536000 0.505566 0.715893 +0.442496 0.547027 0.708108 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.521739 0 0.774500 0.554000 0.864953 0.864107 +0.828682 0.606486 0.562161 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.792000 0.565260 0.751934 0.648571 +0.842589 0.642162 0.513514 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.712500 0.572000 0.697123 0.680714 +0.337500 0.428108 0.756757 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.713000 0.602000 0.513774 0.515893 +0.663772 0.416216 0.529730 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.840500 0.740000 0.505189 0.516607 +0.468940 0.654054 0.205405 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.699500 0.554000 0.506085 0.628572 +0.563650 0.475676 0.610810 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.963500 0.540000 0.554717 0.546429 +0.518632 0.725405 0.172973 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.821500 0.704000 0.505283 0.501607 +0.433011 0.582703 0.221622 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.836000 0.718000 0.505000 0.594285 +0.695815 0.630270 0.189189 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.828000 0.570000 0.750519 0.591607 +0.569095 0.665946 0.562161 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.434783 1 0.823000 0.764000 0.633113 0.710536 +0.794224 0.713513 0.481081 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0 1 0.852500 0.790000 0.505047 0.626428 +0.528358 0.677838 0.286487 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.086957 1 0.744500 0.562000 0.505660 0.681250 +0.536548 0.475676 0.513514 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.761000 0.634000 0.505472 0.599822 +0.511432 0.511351 0.464865 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.782609 0 0.862500 0.678000 0.509387 0.576607 +0.759460 0.701621 0.302702 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.879500 0.676000 0.802830 0.615179 +0.577909 0.713513 0.221622 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.985000 0.700000 0.781604 0.590715 +0.759911 0.903784 0.091893 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.693500 0.565260 0.505708 0.626428 +0.463428 0.487567 0.772973 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.694000 0.562000 0.508820 0.590357 +0.339420 0.416216 0.789189 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.804000 0.542000 0.866793 0.528571 +0.909045 0.618378 0.351351 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.749000 0.602000 0.505236 0.602857 +0.421583 0 0.351351 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.784000 0.578580 0.769858 0.729285 +0.742401 0.630270 0.545946 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.826087 0 0.880500 0.846000 0.557076 0.633572 +0.650467 0.832432 0.108108 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.790000 0.618000 0.505424 0.593929 +0.502968 0.535135 0.302702 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.826087 0 0.937500 0.546000 0.539905 0.588750 +0.673498 0.677838 0.156757 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.742500 0.550000 0.578349 0.505535 +0.928079 0.499459 0.400000 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.173913 1 0.655000 0.566000 0.506226 0.588036 +0.499378 0.404324 0.854053 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.260870 1 0.873000 0.752000 0.504953 0.549286 +0.460015 0.677838 0.172973 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.744000 0.600000 0.505377 0.630357 +0.343712 0.499459 0.675675 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.801500 0.722100 0.505283 0.550357 +0.478929 0.594594 0.254054 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.304348 1 0.847500 0.794000 0.505047 0.585000 +0.555483 0.701621 0.286487 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.830000 0.682000 0.505236 0.533393 +0.542508 0.630270 0.270271 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.981000 0.716000 0.874151 0.611607 +0.858661 0.772973 0.059459 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.434783 1 0.809000 0.694540 0.509481 0.697679 +0.874796 0.642162 0.318918 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.698000 0.532000 0.618396 0.693928 +0.490433 0.428108 0.497297 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.701500 0.596000 0.505802 0.692500 +0.344809 0.416216 0.789189 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.869565 0 0.902000 0.822000 0.504623 0.664285 +0.676472 0.761081 0.124324 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.754000 0.590000 0.505472 0.655178 +0.626912 0.535135 0.513514 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.652000 0.510000 0.506179 0.518393 +0.503419 0.380540 0.837837 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.793500 0.658460 0.542405 0.592322 +0.361780 0.487567 0.513514 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.434783 1 0.714500 0.576000 0.527689 0.535536 +0.888617 0.499459 0.497297 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.694500 0.504000 0.672736 0.641964 +0.315194 0.297297 0.756757 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.735000 0.602000 0.505424 0.631786 +0.500268 0.511351 0.837837 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.744500 0.512000 0.532878 0.565179 +0.459774 0.499459 0.659459 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.846500 0.806000 0.505047 0.590715 +0.510235 0.677838 0.335136 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.347826 1 0.820000 0.704000 0.511462 0.519643 +0.627164 0.630270 0.286487 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.769500 0.588000 0.505377 0.612321 +0.439410 0.606486 0.659459 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.912500 0.728000 0.504623 0.552500 +0.538699 0.772973 0.108108 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.868000 0.860000 0.504953 0.585178 +0.471727 0.749189 0.254054 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.803000 0.556000 0.505377 0.675893 +0.538644 0.547027 0.578379 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.868000 0.604000 0.860802 0.722678 +0.851613 0.677838 0.432432 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.913043 0 0.663000 0.522000 0.506226 0.568572 +0.654014 0.416216 0.691892 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.713500 0.562000 0.505519 0.693572 +0.461749 0.547027 0.740540 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.826087 0 0.822500 0.570000 0.504764 0.549107 +0.502870 0.535135 0.497297 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.652174 0 0.863500 0.542000 0.754905 0.568035 +0.872755 0.594594 0.416216 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.769000 0.602000 0.677311 0.700536 +0.475514 0.463784 0.513514 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.913043 0 0.843500 0.804000 0.504670 0.680714 +0.566109 0.701621 0.367567 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 1 0 0.821000 0.632080 0.504953 0.613214 +0.532771 0.606486 0.481081 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.923500 0.630000 0.902830 0.638750 +0.511058 0.701621 0.205405 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.821000 0.684000 0.504953 0.593571 +0.451716 0.570811 0.562161 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.882000 0.852000 0.504906 0.559107 +0.502090 0.725405 0.140540 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.434783 1 0.736500 0.572000 0.695283 0.669107 +0.818484 0.487567 0.610810 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.653500 0.546000 0.506179 0.587857 +0.517227 0.368649 0.708108 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.086957 1 0.843000 0.676000 0.505141 0.564821 +0.501180 0.630270 0.156757 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.794000 0.637080 0.505141 0.591607 +0.352330 0.511351 0.578379 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.846000 0.686000 0.505000 0.572679 +0.437403 0.630270 0.156757 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.695652 0 0.752500 0.628000 0.552076 0.654464 +0.854906 0.642162 0.675675 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 1 0 0.616500 0.524000 0.506415 0.766428 +0.482649 0.380540 0.886486 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.735500 0.602000 0.531038 0.559465 +0.441562 0.451892 0.497297 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.913043 0 0.824000 0.682780 0.504670 0.678035 +0.596691 0.654054 0.432432 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.935500 0.858000 0.800283 0.624286 +0.442978 0.880000 0.140540 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.804000 0.664000 0.505141 0.593393 +0.532804 0.523243 0.481081 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.173913 1 0.878500 0.872000 0.504764 0.557500 +0.438654 0.784865 0.156757 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.707000 0.524000 0.505943 0.526250 +0.557436 0.404324 0.627028 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.173913 1 0.851000 0.660000 0.505141 0.659464 +0.496997 0.618378 0.237838 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.902000 0.590000 0.829246 0.623750 +0.855082 0.796757 0.124324 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.826087 0 0.838500 0.756000 0.504764 0.640893 +0.724739 0.654054 0.237838 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.888500 0.544000 0.760661 0.606964 +0.595221 0.535135 0.205405 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.782609 0 0.851500 0.592000 0.526321 0.536607 +0.725957 0.654054 0.481081 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0 1 0.885000 0.804000 0.504906 0.571072 +0.527152 0.772973 0.172973 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.695652 0 0.754500 0.570000 0.530000 0.599464 +0.695650 0.499459 0.708108 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.861500 0.829940 0.504717 0.650357 +0.516909 0.820540 0.432432 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.710000 0.568000 0.505660 0.575000 +0.429289 0.511351 0.691892 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.478261 1 0.785500 0.652000 0.590095 0.580536 +0.367972 0.475676 0.659459 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.478261 1 0.865000 0.790000 0.643963 0.618928 +0.912745 0.796757 0.221622 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0 1 0.843500 0.804000 0.504764 0.615893 +0.504451 0.606486 0.318918 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 1 0 0.662000 0.522000 0.506274 0.509465 +0.640424 0.404324 0.691892 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.749000 0.590000 0.615849 0.588393 +0.468643 0.499459 0.562161 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.883500 0.840000 0.504906 0.573572 +0.501497 0.725405 0.091893 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.652174 0 0.898500 0.564000 0.907547 0.655715 +0.898551 0.713513 0.156757 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.739130 0 0.853500 0.590000 0.585236 0.595715 +0.836366 0.630270 0.464865 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.130435 1 0.721000 0.540000 0.505424 0.780178 +0.456656 0.547027 0.740540 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.721500 0.560420 0.505660 0.658036 +0.356270 0.440000 0.740540 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.830000 0.680000 0.505283 0.546429 +0.508237 0.642162 0.205405 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.813000 0.706000 0.505283 0.648036 +0.522717 0.642162 0.270271 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.850000 0.712000 0.753066 0.640179 +0.930704 0.618378 0.189189 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.771500 0.614720 0.505377 0.590893 +0.455470 0.618378 0.659459 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.828500 0.656000 0.504623 0.619821 +0.469092 0.618378 0.497297 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.782609 0 0.710500 0.560000 0.510755 0.549821 +0.507238 0.416216 0.708108 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.880000 0.700000 0.736321 0.655000 +0.848935 0.796757 0.172973 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.391304 1 0.805000 0.620000 0.589622 0.561428 +0.768252 0.606486 0.318918 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.826087 0 0.882000 0.696000 0.511321 0.661965 +0.706429 0.689730 0.156757 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.786500 0.542000 0.505283 0.642321 +0.750196 0.547027 0.481081 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.130435 1 0.733500 0.552000 0.505896 0.650535 +0.504482 0.511351 0.594594 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.869565 0 0.888000 0.664000 0.506226 0.645357 +0.640369 0.737297 0.140540 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.654000 0.546000 0.506179 0.546250 +0.526679 0.368649 0.691892 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.857000 0.744000 0.636132 0.657500 +0.532178 0.547027 0.335136 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.846000 0.750000 0.504858 0.619286 +0.593123 0.606486 0.254054 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0 1 0.709000 0.538000 0.505802 0.654822 +0.568821 0.428108 0.691892 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.782609 0 0.946000 0.574000 0.666510 0.610178 +0.709305 0.772973 0.091893 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.782609 0 0.946000 0.620000 0.642453 0.650178 +0.727417 0.796757 0.091893 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.652000 0.516000 0.506179 0.579643 +0.492332 0.368649 0.837837 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.739500 0.577780 0.505472 0.567857 +0.404207 0.475676 0.659459 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0 1 0.742000 0.582000 0.505472 0.627679 +0.428555 0.475676 0.691892 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.714500 0.564000 0.610000 0.776964 +0.888243 0.463784 0.643243 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.434783 1 0.782500 0.613640 0.526085 0.651250 +0.668109 0.511351 0.627028 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.260870 1 0.646500 0.530000 0.506462 0.542857 +0.551630 0.392432 0.724324 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.130435 1 0.837000 0.684000 0.505189 0.551965 +0.500959 0.594594 0.156757 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.826087 0 0.805000 0.616460 0.505047 0.632143 +0.376897 0.475676 0.578379 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.790000 0.580000 0.505472 0.544107 +0.499916 0.535135 0.464865 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.865000 0.852000 0.505943 0.610893 +0.505439 0.737297 0.270271 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.858000 0.558000 0.705189 0.782143 +0.524780 0.570811 0.221622 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.862000 0.654000 0.505141 0.509465 +0.488776 0.606486 0.237838 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.736000 0.586000 0.505424 0.591071 +0.437182 0.558919 0.675675 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.869565 0 0.811000 0.522000 0.505000 0.623928 +0.351550 0.297297 0.529730 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0 1 0.721000 0.532000 0.505754 0.543929 +0.666615 0.487567 0.497297 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.956522 0 0.661000 0.524000 0.506274 0.569821 +0.646186 0.416216 0.643243 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.768000 0.546000 0.505283 0.547857 +0.476470 0.558919 0.643243 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.840500 0.766060 0.504906 0.518035 +0.453198 0.630270 0.318918 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.701000 0.560720 0.505708 0.708215 +0.349190 0.440000 0.772973 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.780000 0.516000 0.815472 0.727857 +0.843194 0.618378 0.562161 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.854500 0.718000 0.678302 0.605714 +0.548161 0.665946 0.221622 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.828500 0.772000 0.505141 0.590357 +0.483659 0.558919 0.237838 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.890000 0.532000 0.868160 0.720536 +0.566065 0.630270 0.270271 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.883000 0.656000 0.733963 0.594643 +0.540851 0.582703 0.221622 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 1 0 0.675500 0.536200 0.505943 0.567500 +0.541190 0.428108 0.756757 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.769000 0.646000 0.505141 0.625179 +0.591147 0.570811 0.659459 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.347826 1 0.744500 0.604000 0.512830 0.634107 +0.652862 0.511351 0.432432 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.217391 1 0.795000 0.676940 0.505141 0.657322 +0.428718 0.642162 0.529730 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.608696 0 0.749500 0.548000 0.804623 0.579821 +0.503869 0.440000 0.497297 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.800500 0.538000 0.533538 0.581786 +0.480762 0.594594 0.578379 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.997500 0.622000 0.794057 0.586250 +0.445954 0.808648 0.140540 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.847500 0.590000 0.505189 0.609465 +0.444427 0.606486 0.172973 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.739130 0 0.913500 0.526000 0.772642 0.678393 +0.861448 0.737297 0.140540 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.347826 1 0.872000 0.870000 0.516746 0.574643 +0.592356 0.784865 0.156757 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.996000 0.650000 0.659387 0.632143 +0.438467 0.808648 0.140540 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.780000 0.634640 0.523679 0.618572 +0.586670 0.654054 0.562161 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.714000 0.576160 0.505519 0.581429 +0.381901 0.499459 0.805406 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.956522 0 0.907500 0.882000 0.504623 0.600893 +0.592289 0.868108 0.075675 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.891500 0.624000 0.933019 0.675000 +0.861997 0.713513 0.124324 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.881000 0.648000 0.504906 0.571250 +0.541794 0.665946 0.108108 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.728000 0.552000 0.510330 0.514643 +0.656911 0.558919 0.562161 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.723500 0.571100 0.505424 0.608036 +0.447073 0.499459 0.789189 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.921000 0.632000 0.655189 0.728572 +0.640917 0.630270 0.091893 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.576500 0.516000 0.513207 0.707143 +0.445679 0.368649 0.951351 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.831500 0.780000 0.505141 0.578393 +0.513187 0.558919 0.059459 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.833000 0.602000 0.791273 0.670357 +0.464933 0.630270 0.302702 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.565217 0 0.940500 0.800000 0.721981 0.594643 +0.843227 0.880000 0.091893 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.608696 0 0.803000 0.694000 0.531132 0.590893 +0.832250 0.761081 0.400000 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.802000 0.568000 0.505189 0.514286 +0.475603 0.642162 0.643243 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.873500 0.552000 0.919293 0.637679 +0.515635 0.606486 0.254054 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.702500 0.592000 0.505802 0.755715 +0.603179 0.475676 0.513514 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.842500 0.736000 0.505141 0.590000 +0.548314 0.677838 0.237838 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.956522 0 0.868500 0.834000 0.504717 0.688750 +0.652302 0.630270 0.140540 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.782609 0 0.958000 0.740000 0.580849 0.668393 +0.723807 0.808648 0.075675 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.956522 0 0.728000 0.528000 0.505708 0.630893 +0.636473 0.451892 0.643243 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0 1 0.801500 0.694000 0.505047 0.618928 +0.480004 0.677838 0.481081 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.869565 0 0.840500 0.596000 0.504858 0.502679 +0.608272 0.677838 0.529730 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.347826 1 0.869000 0.840000 0.549905 0.604822 +0.676802 0.630270 0.140540 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.741500 0.573420 0.505424 0.556607 +0.418994 0.487567 0.659459 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.775500 0.590140 0.612547 0.715893 +0.682290 0.630270 0.627028 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.652174 0 0.804500 0.580000 0.779104 0.713929 +0.949594 0.654054 0.351351 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0 1 0.876000 0.612000 0.504953 0.640357 +0.575494 0.630270 0.189189 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.521739 0 0.787500 0.620200 0.546462 0.560714 +0.858452 0.594594 0.448649 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 0.043478 1 0.783000 0.594000 0.505472 0.547321 +0.536262 0.535135 0.448649 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.719000 0.571380 0.523868 0.665000 +0.480432 0.535135 0.708108 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.679500 0.512000 0.505991 0.606071 +0.444734 0.440000 0.708108 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.608696 0 0.833500 0.602000 0.784622 0.705536 +0.906005 0.558919 0.351351 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.766500 0.560000 0.520896 0.582678 +0.574781 0.451892 0.464865 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.478261 1 0.843500 0.802000 0.563349 0.688928 +0.805509 0.701621 0.351351 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.670000 0.516000 0.576509 0.793393 +0.745453 0.428108 0.627028 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.731500 0.564000 0.781604 0.686607 +0.340079 0.440000 0.691892 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 0.043478 1 0.658000 0.540000 0.506179 0.765000 +0.569698 0.416216 0.772973 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 0.043478 1 0.784000 0.610000 0.505472 0.689643 +0.545692 0.594594 0.416216 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.765500 0.640340 0.505000 0.600536 +0.510861 0.594594 0.448649 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.699500 0.568000 0.505991 0.616250 +0.596537 0.416216 0.594594 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.744500 0.616000 0.519151 0.531964 +0.402055 0.511351 0.756757 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.521739 0 0.723500 0.544800 0.794057 0.645178 +0.914358 0.463784 0.562161 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.750500 0.578000 0.505377 0.526250 +0.439543 0.499459 0.659459 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.814000 0.610960 0.505000 0.522678 +0.683487 0.570811 0.286487 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 1 0 0.851000 0.746000 0.505000 0.600536 +0.614486 0.725405 0.205405 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.857500 0.578000 0.591510 0.757143 +0.507985 0.570811 0.189189 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.956522 0 0.863500 0.552000 0.505000 0.616786 +0.608646 0.440000 0.172973 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.765500 0.621700 0.505000 0.600178 +0.489050 0.594594 0.562161 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.857500 0.810460 0.508349 0.659822 +0.605857 0.808648 0.432432 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.478261 1 0.895000 0.660000 0.792925 0.649107 +0.869023 0.737297 0.140540 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.719000 0.568000 0.510755 0.680179 +0.697626 0.475676 0.627028 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.693500 0.528000 0.780707 0.843572 +0.823842 0.475676 0.659459 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 1 0 0.744000 0.552000 0.505472 0.699821 +0.355491 0.321081 0.708108 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.434783 1 0.859000 0.776000 0.683491 0.526607 +0.846520 0.725405 0.189189 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.478261 1 0.810000 0.634000 0.636604 0.576429 +0.909638 0.654054 0.318918 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.741500 0.554000 0.505566 0.522322 +0.657965 0.475676 0.432432 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.763500 0.656000 0.505660 0.587500 +0.461101 0.547027 0.529730 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.919500 0.810000 0.549670 0.663750 +0.645869 0.868108 0.075675 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.173913 1 0.867500 0.750000 0.505000 0.560179 +0.477206 0.689730 0.172973 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.086957 1 0.747000 0.564000 0.505283 0.613572 +0.500729 0.547027 0.627028 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.764500 0.598000 0.765754 0.608929 +0.502375 0.475676 0.464865 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.565217 0 0.911000 0.718000 0.821698 0.605536 +0.872513 0.677838 0.091893 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.825000 0.522000 0.701746 0.581607 +0.901691 0.642162 0.318918 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.821500 0.672000 0.504906 0.656071 +0.574825 0.725405 0.432432 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.886500 0.508000 0.773113 0.583035 +0.923974 0.606486 0.172973 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.739130 0 0.843500 0.804000 0.518490 0.603393 +0.770920 0.737297 0.318918 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.922000 0.850000 0.504481 0.595357 +0.516964 0.856216 0.075675 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.831500 0.722000 0.505141 0.597500 +0.561663 0.558919 0.254054 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.434783 1 0.773000 0.578000 0.725000 0.640535 +0.899089 0.594594 0.400000 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.842500 0.798000 0.505047 0.627321 +0.550587 0.677838 0.335136 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0 1 0.748000 0.564000 0.505566 0.651785 +0.595758 0.487567 0.545946 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.516500 0.514000 0.507500 0.606250 +0.412022 0.178378 0.886486 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0 1 0.934000 0.856000 0.504623 0.585178 +0.381024 0.856216 0.124324 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 1 0 0.775500 0.571260 0.505189 0.602678 +0.508061 0.582703 0.578379 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.304348 1 0.835000 0.794720 0.504764 0.682500 +0.496689 0.772973 0.416216 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.739130 0 0.747500 0.570000 0.533538 0.639822 +0.678987 0.582703 0.724324 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.820500 0.758000 0.574292 0.512500 +0.923315 0.618378 0.286487 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.260870 1 0.803000 0.608000 0.505424 0.553035 +0.465393 0.547027 0.302702 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.761500 0.534000 0.801651 0.584464 +0.339233 0.332973 0.659459 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.936000 0.586000 0.881132 0.555893 +0.512485 0.713513 0.156757 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.842500 0.594000 0.505236 0.518750 +0.517941 0.547027 0.237838 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.812500 0.620000 0.505283 0.668750 +0.432353 0.582703 0.318918 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.851000 0.552000 0.508349 0.603929 +0.510839 0.582703 0.205405 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.731500 0.580000 0.505472 0.603215 +0.469357 0.511351 0.724324 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.521739 0 0.792000 0.616940 0.542405 0.570179 +0.725332 0.535135 0.529730 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.956522 0 0.699000 0.566000 0.505896 0.596071 +0.445316 0.428108 0.740540 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.790000 0.638500 0.505047 0.616072 +0.340726 0.523243 0.627028 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.757000 0.580000 0.505236 0.537143 +0.460081 0.582703 0.627028 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.739130 0 0.766500 0.512000 0.585944 0.616965 +0.928267 0.570811 0.335136 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.739130 0 0.882000 0.818000 0.612170 0.663215 +0.854072 0.880000 0.108108 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.904500 0.790000 0.504670 0.650000 +0.693849 0.772973 0.156757 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.776500 0.552000 0.754246 0.647500 +0.433559 0.523243 0.659459 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.757500 0.603220 0.505424 0.613393 +0.457161 0.618378 0.691892 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.762000 0.630640 0.504953 0.613036 +0.427808 0.618378 0.562161 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.391304 1 0.721500 0.552000 0.628774 0.671250 +0.836179 0.523243 0.464865 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.695652 0 0.876000 0.824000 0.582358 0.718929 +0.896542 0.903784 0.091893 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.715000 0.563720 0.505519 0.537857 +0.406579 0.499459 0.789189 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.434783 1 0.844000 0.802000 0.612642 0.596071 +0.895258 0.761081 0.237838 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.898500 0.888000 0.504717 0.637857 +0.426281 0.844324 0.091893 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.130435 1 0.799000 0.672600 0.505189 0.579107 +0.552002 0.558919 0.432432 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.782609 0 0.852000 0.594000 0.514434 0.565714 +0.690074 0.618378 0.448649 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.775500 0.578000 0.505660 0.601429 +0.441024 0.499459 0.351351 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.892000 0.618000 0.504764 0.623393 +0.615868 0.582703 0.059459 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.828000 0.756000 0.620708 0.640893 +0.676989 0.713513 0.400000 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.173913 1 0.862500 0.760000 0.505047 0.530893 +0.472749 0.677838 0.156757 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.857500 0.820000 0.504953 0.678035 +0.460245 0.701621 0.335136 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.812500 0.660440 0.581463 0.572679 +0.417567 0.511351 0.497297 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 0.043478 1 0.825500 0.580000 0.505283 0.601429 +0.505680 0.606486 0.189189 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.913043 0 0.772500 0.570000 0.505000 0.728750 +0.608624 0.618378 0.562161 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.708000 0.551540 0.505472 0.666429 +0.517919 0.511351 0.740540 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.304348 1 0.743500 0.570000 0.505472 0.520715 +0.473462 0.523243 0.772973 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.853500 0.806000 0.505047 0.623928 +0.457381 0.665946 0.189189 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.703000 0.584000 0.519056 0.610536 +0.585671 0.463784 0.756757 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.943500 0.818000 0.504529 0.576250 +0.393537 0.844324 0.140540 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.817500 0.730000 0.513632 0.542678 +0.568359 0.606486 0.237838 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.767000 0.518000 0.845849 0.534107 +0.860648 0.499459 0.562161 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.732000 0.516000 0.764340 0.665893 +0.542200 0.416216 0.578379 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0 1 0.776500 0.596000 0.505283 0.591607 +0.352274 0.463784 0.643243 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.956522 0 0.864500 0.688000 0.504953 0.572679 +0.605792 0.677838 0.156757 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.836500 0.788000 0.504717 0.691607 +0.444088 0.749189 0.416216 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.727000 0.582000 0.505519 0.607679 +0.429904 0.535135 0.724324 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.826087 0 0.907000 0.528000 0.567924 0.644286 +0.652884 0.701621 0.140540 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0 1 0.859000 0.668000 0.505000 0.631786 +0.572092 0.642162 0.124324 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.347826 1 0.704500 0.556000 0.514434 0.559465 +0.318817 0.344865 0.740540 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.130435 1 0.669500 0.580000 0.506226 0.536785 +0.406885 0.404324 0.789189 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.860500 0.550000 0.915566 0.694643 +0.500192 0.582703 0.254054 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.748000 0.506000 0.505377 0.607322 +0.514329 0.606486 0.643243 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.697500 0.548000 0.505943 0.573572 +0.551795 0.475676 0.529730 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.897000 0.650000 0.504906 0.616786 +0.513715 0.677838 0.172973 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.788000 0.600000 0.508443 0.593393 +0.489873 0.535135 0.497297 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.217391 1 0.774500 0.615120 0.505236 0.703215 +0.464088 0.499459 0.610810 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.904000 0.616000 0.518349 0.594285 +0.636911 0.606486 0.043244 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.880000 0.684000 0.504906 0.579464 +0.672169 0.713513 0.205405 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.900500 0.910000 0.504906 0.590178 +0.352647 0.832432 0.140540 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.130435 1 0.873500 0.830000 0.504717 0.697143 +0.543210 0.511351 0.140540 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.304348 1 0.815500 0.688180 0.505000 0.569643 +0.492332 0.594594 0.529730 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.805500 0.661460 0.504906 0.737321 +0.585528 0.713513 0.497297 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 1 0 0.751500 0.538000 0.505802 0.573572 +0.623639 0.606486 0.448649 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0 1 0.716000 0.565740 0.505519 0.584107 +0.437534 0.487567 0.708108 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.727000 0.559520 0.618302 0.615535 +0.465208 0.475676 0.675675 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.891000 0.842000 0.504717 0.566607 +0.444581 0.784865 0.140540 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.783000 0.707520 0.535283 0.589464 +0.455250 0.570811 0.286487 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.803000 0.592000 0.505283 0.609821 +0.523792 0.547027 0.286487 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.913043 0 0.861500 0.790000 0.504764 0.732143 +0.641138 0.761081 0.156757 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.695652 0 0.936000 0.588000 0.867453 0.609285 +0.886038 0.737297 0.108108 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.760500 0.522000 0.855047 0.528036 +0.842360 0.547027 0.610810 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 1 0 0.848500 0.566000 0.505047 0.569465 +0.568578 0.368649 0.156757 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.848500 0.798000 0.634292 0.575893 +0.489741 0.689730 0.205405 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.657500 0.548000 0.506085 0.805893 +0.667219 0.440000 0.724324 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.842500 0.734000 0.505141 0.570714 +0.490421 0.642162 0.189189 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.717500 0.610000 0.505708 0.562857 +0.502661 0.451892 0.497297 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.260870 1 0.733000 0.586400 0.505660 0.580715 +0.332878 0.428108 0.675675 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.758500 0.581340 0.745708 0.765179 +0.720414 0.594594 0.578379 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.770000 0.558000 0.528632 0.664822 +0.947565 0.558919 0.497297 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.652174 0 0.814000 0.643480 0.534151 0.592678 +0.729854 0.570811 0.464865 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.929500 0.846000 0.504529 0.577679 +0.422682 0.880000 0.091893 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.832000 0.780000 0.507123 0.583393 +0.643695 0.677838 0.286487 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.739130 0 0.678500 0.544000 0.524481 0.791072 +0.520445 0.440000 0.772973 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.765000 0.640000 0.505424 0.612679 +0.601378 0.511351 0.497297 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.549000 0.522000 0.506981 0.770715 +0.439707 0.285405 0.983784 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.816000 0.728000 0.505236 0.569286 +0.501311 0.582703 0.270271 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.673500 0.570000 0.596887 0.521964 +0.466666 0.404324 0.578379 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.723500 0.530000 0.505754 0.678035 +0.514659 0.451892 0.562161 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.391304 1 0.779000 0.634000 0.542170 0.594643 +0.819264 0.606486 0.545946 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.867500 0.842000 0.504953 0.607143 +0.438850 0.749189 0.156757 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.763000 0.624200 0.505141 0.563928 +0.469785 0.606486 0.545946 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.790000 0.584000 0.505472 0.618035 +0.495746 0.535135 0.464865 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.173913 1 0.846500 0.770000 0.505141 0.532857 +0.514166 0.701621 0.254054 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.703500 0.542000 0.505943 0.583929 +0.554836 0.487567 0.513514 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0 1 0.826000 0.560000 0.505236 0.627500 +0.563748 0.570811 0.270271 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.891500 0.848000 0.577406 0.615000 +0.876278 0.903784 0.108108 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.853500 0.694000 0.504953 0.657322 +0.548578 0.594594 0.221622 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.923500 0.816000 0.504717 0.544285 +0.431552 0.820540 0.124324 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.750500 0.572000 0.779764 0.656785 +0.457227 0.499459 0.675675 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.693500 0.538000 0.506037 0.572500 +0.523254 0.404324 0.724324 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.806500 0.528000 0.623349 0.593571 +0.492013 0.618378 0.562161 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 1 0 0.789000 0.670000 0.505472 0.594285 +0.610720 0.594594 0.383783 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.834000 0.778000 0.504906 0.657678 +0.580215 0.606486 0.270271 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.913043 0 0.828500 0.676000 0.505000 0.574821 +0.623244 0.677838 0.140540 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.788500 0.548000 0.579812 0.686965 +0.566877 0.475676 0.578379 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.778000 0.558000 0.816604 0.537500 +0.915446 0.606486 0.448649 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.782609 0 0.747000 0.522000 0.507312 0.596964 +0.787056 0.547027 0.416216 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 0.043478 1 0.907000 0.844000 0.504623 0.557321 +0.493528 0.820540 0.108108 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.894500 0.898000 0.504764 0.601429 +0.427842 0.832432 0.108108 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.834500 0.764000 0.554717 0.762679 +0.826453 0.749189 0.286487 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.434783 1 0.757500 0.594000 0.732830 0.734285 +0.875103 0.606486 0.448649 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.840000 0.796000 0.552311 0.690357 +0.793566 0.689730 0.351351 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.833500 0.774000 0.545519 0.690714 +0.530104 0.677838 0.189189 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.723000 0.581820 0.519292 0.658393 +0.415821 0.547027 0.772973 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.776500 0.546000 0.505424 0.657143 +0.727089 0.535135 0.481081 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.913500 0.622000 0.671132 0.715893 +0.599808 0.582703 0.221622 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.749500 0.602000 0.505283 0.602500 +0.430310 0 0.400000 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.608696 0 0.793000 0.572000 0.868160 0.969285 +0.829615 0.630270 0.513514 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.739130 0 0.939000 0.584000 0.789151 0.590000 +0.834335 0.749189 0.091893 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.712500 0.506000 0.505708 0.610893 +0.487349 0.487567 0.659459 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.478261 1 0.882000 0.798000 0.716934 0.608572 +0.870066 0.725405 0.124324 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.741000 0.572000 0.505424 0.503572 +0.426633 0.511351 0.740540 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.897500 0.788000 0.504858 0.592678 +0.554428 0.701621 0.156757 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.960000 0.766000 0.988207 0.633035 +0.797473 0.951351 0.108108 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.734000 0.588000 0.505472 0.749107 +0.516152 0.511351 0.594594 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.744000 0.590000 0.726839 0.605893 +0.384755 0.499459 0.675675 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.304348 1 0.709500 0.550000 0.506509 0.631428 +0.569851 0.499459 0.464865 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.260870 1 0.778000 0.620900 0.505236 0.672500 +0.469072 0.523243 0.643243 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.260870 1 0.789000 0.686000 0.504953 0.515179 +0.439795 0.642162 0.562161 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.304348 1 0.770000 0.608000 0.505236 0.514643 +0.480948 0.535135 0.675675 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.844000 0.694000 0.505141 0.524285 +0.433011 0.606486 0.189189 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.130435 1 0.718000 0.538000 0.505802 0.579107 +0.557251 0.463784 0.578379 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.789500 0.634000 0.505189 0.620179 +0.422276 0.642162 0.675675 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.217391 1 0.840500 0.758000 0.505141 0.553750 +0.597141 0.689730 0.254054 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.892500 0.926000 0.570519 0.584285 +0.433220 0.808648 0.108108 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.797000 0.566000 0.505424 0.641964 +0.520730 0.547027 0.513514 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.873500 0.868000 0.504953 0.608393 +0.490827 0.761081 0.254054 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.711000 0.569160 0.506085 0.656964 +0.377071 0.451892 0.740540 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.724000 0.586000 0.505708 0.635179 +0.514768 0.451892 0.740540 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.884500 0.544000 0.893490 0.646071 +0.537908 0.606486 0.254054 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.651500 0.547260 0.527358 0.575714 +0.711885 0.356757 0.870271 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.690500 0.534000 0.506179 0.621786 +0.563572 0.404324 0.594594 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.652174 0 0.850000 0.530000 0.762736 0.575714 +0.730008 0.582703 0.448649 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.347826 1 0.800000 0.608000 0.516180 0.621786 +0.613036 0.535135 0.432432 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.866000 0.692000 0.616226 0.605893 +0.544209 0.630270 0.318918 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.764000 0.662000 0.506981 0.580715 +0.459214 0.535135 0.594594 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.521739 0 0.813500 0.592000 0.791273 0.682857 +0.900076 0.558919 0.367567 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.807500 0.602000 0.675943 0.678035 +0.523616 0.547027 0.367567 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.521739 0 0.803000 0.726000 0.751698 0.657857 +0.860735 0.677838 0.448649 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.304348 1 0.873000 0.874000 0.504764 0.568393 +0.485570 0.772973 0.140540 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.173913 1 0.870500 0.866000 0.504953 0.601250 +0.482517 0.761081 0.189189 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.652174 0 0.934000 0.660000 0.826509 0.591071 +0.927586 0.749189 0.091893 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.724000 0.577960 0.521463 0.654643 +0.471937 0.535135 0.691892 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.737500 0.634000 0.505660 0.638929 +0.551608 0.523243 0.481081 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.968000 0.714000 0.911462 0.650000 +0.505570 0.808648 0.108108 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.847500 0.800000 0.542170 0.626250 +0.524857 0.701621 0.205405 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.861500 0.648000 0.505141 0.508035 +0.474615 0.594594 0.221622 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.913043 0 0.779500 0.526000 0.505377 0.706071 +0.697570 0.594594 0.367567 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.130435 1 0.894000 0.868000 0.504670 0.566428 +0.482343 0.820540 0.124324 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.751500 0.620000 0.505283 0.642500 +0.499104 0.547027 0.675675 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.901500 0.868000 0.504670 0.538750 +0.427643 0.796757 0.108108 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.800500 0.650660 0.559340 0.528750 +0.920099 0.582703 0.318918 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.391304 1 0.746000 0.598000 0.640944 0.727678 +0.810811 0.570811 0.513514 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.565217 0 0.903500 0.758000 0.850471 0.629643 +0.860351 0.772973 0.124324 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.871000 0.866000 0.504953 0.648215 +0.463845 0.749189 0.270271 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.956522 0 0.746500 0.508000 0.505377 0.557679 +0.583881 0.582703 0.578379 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.086957 1 0.822500 0.724000 0.505000 0.694643 +0.498874 0.665946 0.254054 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.780500 0.628000 0.505472 0.518929 +0.494823 0.535135 0.254054 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.818000 0.562000 0.505377 0.609821 +0.495251 0.523243 0.221622 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.086957 1 0.864500 0.852000 0.504953 0.664643 +0.509510 0.737297 0.205405 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.814000 0.552000 0.505283 0.558393 +0.623003 0.582703 0.335136 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.760500 0.608520 0.505802 0.735178 +0.423955 0.594594 0.659459 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.794000 0.612440 0.574057 0.673750 +0.602795 0.535135 0.481081 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.723500 0.516000 0.505943 0.515179 +0.600226 0.416216 0.627028 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.826000 0.742000 0.505189 0.542322 +0.504230 0.654054 0.286487 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.864000 0.666000 0.890566 0.527500 +0.543661 0.630270 0.205405 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.937000 0.762000 0.689528 0.635893 +0.883766 0.856216 0.091893 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.304348 1 0.873000 0.760000 0.504953 0.530178 +0.509742 0.677838 0.172973 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.086957 1 0.740500 0.612000 0.505424 0.598929 +0.475393 0.582703 0.691892 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.812000 0.730000 0.505236 0.546250 +0.489115 0.570811 0.237838 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.726000 0.556000 0.505660 0.557500 +0.359398 0.451892 0.772973 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.720000 0.614000 0.534010 0.677321 +0.680161 0.249730 0.594594 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.130435 1 0.732000 0.540000 0.505754 0.597322 +0.538457 0.499459 0.400000 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.434783 1 0.756000 0.575580 0.714151 0.737679 +0.782369 0.594594 0.610810 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.893500 0.566000 0.604104 0.682857 +0.543935 0.618378 0.254054 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.800000 0.570000 0.793113 0.664643 +0.869527 0.606486 0.578379 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.644500 0.510000 0.506179 0.626607 +0.527030 0.368649 0.837837 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.739130 0 0.832500 0.649280 0.530095 0.588750 +0.675155 0.558919 0.448649 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.868500 0.690000 0.745283 0.601429 +0.564188 0.689730 0.205405 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.718000 0.581180 0.505519 0.613036 +0.396699 0.487567 0.772973 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.917500 0.658000 0.605047 0.634643 +0.926938 0.808648 0.156757 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.862500 0.828940 0.527924 0.625000 +0.817694 0.856216 0.351351 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.478261 1 0.760000 0.558000 0.708632 0.632321 +0.850746 0.558919 0.562161 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.837000 0.734000 0.505189 0.620535 +0.540015 0.677838 0.286487 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.565217 0 0.760000 0.520000 0.837312 0.661965 +0.937190 0.570811 0.318918 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.681500 0.576000 0.505991 0.758214 +0.538952 0.428108 0.578379 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.728000 0.610000 0.525944 0.573215 +0.635363 0.416216 0.594594 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.797500 0.598020 0.505141 0.579643 +0.610566 0.558919 0.400000 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.871000 0.568000 0.505236 0.544822 +0.522135 0.570811 0.237838 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.913043 0 0.911500 0.604000 0.504717 0.573215 +0.657274 0.677838 0.108108 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.260870 1 0.857500 0.788000 0.505047 0.553214 +0.480312 0.677838 0.205405 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.763000 0.584000 0.516981 0.699643 +0.941977 0.558919 0.464865 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.846500 0.710000 0.505141 0.541071 +0.500301 0.630270 0.205405 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.695652 0 0.862500 0.538000 0.614576 0.570357 +0.884577 0.618378 0.416216 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.763000 0.616000 0.700330 0.616607 +0.497008 0.606486 0.691892 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.217391 1 0.813500 0.638000 0.505283 0.700893 +0.488292 0.606486 0.254054 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.668500 0.514000 0.506085 0.579643 +0.438522 0.440000 0.724324 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.608696 0 0.873500 0.824000 0.743396 0.678928 +0.884468 0.784865 0.335136 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.652174 0 0.760000 0.502000 0.743396 0.576072 +0.906531 0.535135 0.562161 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.086957 1 0.712000 0.570000 0.505754 0.620357 +0.496426 0.487567 0.594594 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 0.043478 1 0.752000 0.606000 0.505283 0.591250 +0.459094 0.547027 0.740540 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.652174 0 0.839000 0.614000 0.734905 0.662857 +0.907849 0.582703 0.286487 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.478261 1 0.882500 0.620000 0.770802 0.668571 +0.896136 0.701621 0.189189 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.652174 0 0.852000 0.822000 0.572830 0.639286 +0.837321 0.784865 0.302702 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.836500 0.736000 0.505189 0.583393 +0.530719 0.654054 0.237838 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.913043 0 0.937500 0.774000 0.504387 0.605000 +0.601301 0.856216 0.091893 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.887500 0.812000 0.504858 0.631607 +0.566406 0.725405 0.108108 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.867500 0.869260 0.533349 0.633572 +0.884742 0.796757 0.091893 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.690500 0.590000 0.505802 0.679821 +0.348838 0.440000 0.789189 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.747000 0.574080 0.663066 0.698572 +0.793895 0.570811 0.627028 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.304348 1 0.885000 0.906000 0.504858 0.568035 +0.489982 0.808648 0.124324 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.890000 0.678000 0.504858 0.597678 +0.706144 0.725405 0.205405 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.814000 0.696000 0.563019 0.625535 +0.466711 0.594594 0.335136 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.744500 0.526000 0.597547 0.695714 +0.943447 0.547027 0.562161 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.869565 0 0.885500 0.636000 0.504858 0.630893 +0.706507 0.701621 0.221622 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.769000 0.678000 0.581085 0.648929 +0.423307 0.582703 0.562161 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.988500 0.684000 0.603207 0.628750 +0.432132 0.844324 0.124324 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.775500 0.512000 0.585141 0.622321 +0.459916 0.487567 0.627028 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.913043 0 0.855500 0.830000 0.504575 0.606071 +0.603596 0.725405 0.351351 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.761500 0.558000 0.505519 0.674821 +0.555978 0.463784 0.529730 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.716000 0.580360 0.505708 0.679643 +0.407281 0.487567 0.659459 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.608696 0 0.951500 0.788000 0.878774 0.578750 +0.845334 0.880000 0.091893 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.923000 0.682000 0.504670 0.579107 +0.643267 0.689730 0.108108 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.855000 0.824000 0.553585 0.613036 +0.825465 0.725405 0.286487 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.804000 0.730000 0.505047 0.569465 +0.411101 0.570811 0.529730 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.884500 0.902000 0.522736 0.563750 +0.597174 0.808648 0.108108 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.796000 0.556000 0.504953 0.613928 +0.632335 0.642162 0.578379 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.478261 1 0.764000 0.560000 0.806463 0.838928 +0.816091 0.606486 0.481081 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.478261 1 0.765500 0.608000 0.636368 0.659285 +0.906784 0.547027 0.416216 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.810500 0.558000 0.504906 0.616250 +0.510137 0.511351 0.545946 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0 1 0.838500 0.784000 0.505047 0.671785 +0.557810 0.677838 0.351351 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.608696 0 0.829500 0.544000 0.806273 0.839464 +0.948794 0.689730 0.172973 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.742000 0.572560 0.505424 0.542857 +0.414020 0.487567 0.659459 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.876500 0.816000 0.504953 0.568572 +0.481596 0.725405 0.156757 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.715500 0.608000 0.505802 0.568214 +0.511508 0.451892 0.529730 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.815500 0.678000 0.504670 0.611071 +0.453769 0.606486 0.513514 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.695652 0 0.876500 0.642000 0.652689 0.664285 +0.919528 0.701621 0.286487 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.890500 0.668000 0.830424 0.602143 +0.919265 0.772973 0.140540 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.792500 0.588000 0.505472 0.566428 +0.499499 0.535135 0.448649 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 0.043478 1 0.675500 0.554620 0.505943 0.634643 +0.509983 0.428108 0.756757 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.933000 0.636000 0.711887 0.584107 +0.524868 0.701621 0.156757 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.826087 0 0.769000 0.520000 0.508915 0.689286 +0.624682 0.606486 0.659459 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.769000 0.584000 0.504953 0.711785 +0.544934 0.594594 0.578379 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.564000 0.518000 0.507075 0.636428 +0.496689 0.285405 0.902702 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.972500 0.728000 0.844953 0.592857 +0.825389 0.939459 0.075675 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.913043 0 0.701000 0.566000 0.505896 0.574107 +0.446864 0.416216 0.724324 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.727000 0.500000 0.505566 0.629643 +0.426852 0.511351 0.675675 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.897500 0.650000 0.504764 0.675179 +0.580730 0.582703 0.221622 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.478261 1 0.742000 0.536000 0.784858 0.681250 +0.932701 0.570811 0.318918 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.791500 0.708000 0.505236 0.553750 +0.473429 0.523243 0.432432 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.733000 0.622000 0.506226 0.568928 +0.416513 0.214054 0.367567 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.826000 0.560000 0.505283 0.607857 +0.511388 0.547027 0.221622 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.260870 1 0.748000 0.634000 0.505377 0.573035 +0.454242 0.570811 0.724324 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.347826 1 0.869500 0.768000 0.506981 0.550000 +0.604254 0.665946 0.172973 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.866000 0.757860 0.504481 0.543393 +0.545516 0.737297 0.367567 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.919000 0.764000 0.522641 0.593929 +0.537942 0.665946 0.140540 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 0.043478 1 0.864500 0.634000 0.505047 0.613036 +0.532398 0.606486 0.205405 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.881000 0.650000 0.504953 0.570893 +0.473297 0.594594 0.172973 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.852500 0.752000 0.584434 0.613750 +0.872985 0.713513 0.254054 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.391304 1 0.655000 0.570000 0.516180 0.546785 +0.652333 0.404324 0.870271 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.737000 0.588000 0.692736 0.625357 +0.483144 0.451892 0.643243 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.845500 0.808000 0.504764 0.621072 +0.514527 0.606486 0.318918 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.786500 0.600000 0.577312 0.631786 +0.497688 0.558919 0.432432 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.826087 0 0.953000 0.736000 0.553915 0.613214 +0.639305 0.820540 0.075675 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.877000 0.842000 0.504906 0.575893 +0.545846 0.737297 0.254054 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.826087 0 0.941500 0.794000 0.550000 0.682679 +0.647559 0.880000 0.075675 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.217391 1 0.873500 0.826000 0.504670 0.679821 +0.527600 0.630270 0.140540 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.706500 0.558000 0.747075 0.752143 +0.888265 0.499459 0.627028 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.695652 0 0.939500 0.650000 0.774717 0.590357 +0.907332 0.796757 0.108108 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.896000 0.870000 0.569151 0.649643 +0.902130 0.844324 0.108108 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.260870 1 0.710000 0.558000 0.506037 0.631965 +0.488401 0.499459 0.659459 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.130435 1 0.835000 0.750900 0.504858 0.596429 +0.550796 0.606486 0.286487 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.869565 0 0.896000 0.690000 0.504764 0.618214 +0.687088 0.725405 0.189189 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.801500 0.687200 0.505000 0.563750 +0.418334 0.570811 0.497297 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.608696 0 0.970000 0.682000 0.949198 0.650893 +0.839724 0.891892 0.091893 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.739000 0.510000 0.505708 0.567857 +0.611708 0.428108 0.513514 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.608696 0 0.851000 0.614000 0.803019 0.652143 +0.710897 0.582703 0.416216 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.217391 1 0.757500 0.564000 0.505424 0.523393 +0.431113 0.523243 0.643243 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.752000 0.601940 0.527453 0.681428 +0.448982 0.558919 0.643243 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.855500 0.806000 0.504953 0.684821 +0.503209 0.689730 0.286487 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.897500 0.624000 0.883491 0.661429 +0.837628 0.713513 0.124324 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.565217 0 0.807500 0.563600 0.861037 0.690000 +0.804423 0.630270 0.513514 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.747500 0.543520 0.505424 0.544285 +0.463912 0.499459 0.627028 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.130435 1 0.814000 0.695220 0.505000 0.510179 +0.535745 0.558919 0.318918 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.880000 0.680000 0.802830 0.634465 +0.866827 0.713513 0.140540 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.782609 0 0.814000 0.681900 0.506934 0.681965 +0.675583 0.642162 0.416216 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.886000 0.876000 0.653161 0.626607 +0.861471 0.832432 0.205405 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.713500 0.574740 0.533538 0.661785 +0.409585 0.475676 0.643243 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.596000 0.514000 0.506746 0.541429 +0.319881 0.261622 0.918918 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.347826 1 0.664500 0.559340 0.507453 0.675536 +0.542804 0.392432 0.837837 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.879500 0.656000 0.504858 0.538393 +0.451782 0.642162 0.156757 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.717000 0.612000 0.510991 0.560893 +0.483199 0.428108 0.513514 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.956522 0 0.825000 0.732000 0.505047 0.543750 +0.715408 0.594594 0.302702 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.940000 0.782000 0.504623 0.590715 +0.450904 0.820540 0.124324 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.857000 0.752000 0.504953 0.626607 +0.512815 0.677838 0.302702 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.739130 0 0.973500 0.702000 0.725661 0.652678 +0.852645 0.868108 0.075675 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.846000 0.700000 0.505000 0.541607 +0.701227 0.642162 0.172973 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.826000 0.766000 0.517217 0.635893 +0.634397 0.547027 0.286487 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.711000 0.574260 0.505708 0.674643 +0.406018 0.463784 0.691892 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.744000 0.608640 0.529434 0.573035 +0.508819 0.499459 0.497297 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.917000 0.614000 0.559434 0.600000 +0.514572 0.689730 0.172973 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0 1 0.765000 0.540000 0.505283 0.646428 +0.351177 0.321081 0.610810 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.838500 0.680000 0.505236 0.517143 +0.499193 0.642162 0.205405 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.791000 0.544000 0.667877 0.674107 +0.563936 0.487567 0.513514 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.086957 1 0.735000 0.542000 0.505708 0.604465 +0.561443 0.523243 0.335136 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.650500 0.514000 0.506179 0.524464 +0.493276 0.380540 0.837837 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.347826 1 0.883000 0.752000 0.522736 0.542500 +0.544682 0.772973 0.124324 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.724500 0.566840 0.514434 0.618572 +0.440464 0.499459 0.805406 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.584000 0.514000 0.506934 0.663750 +0.511301 0.344865 0.837837 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.739130 0 0.944500 0.520000 0.742264 0.653393 +0.883929 0.737297 0.124324 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0 1 0.928000 0.808000 0.504481 0.645178 +0.478281 0.796757 0.124324 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.304348 1 0.775000 0.589060 0.505047 0.550000 +0.487984 0.570811 0.756757 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.834500 0.772000 0.505141 0.551785 +0.526086 0.570811 0.059459 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.817500 0.732000 0.508443 0.676965 +0.515076 0.654054 0.318918 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0 1 0.814000 0.716000 0.504858 0.630715 +0.464680 0.570811 0.529730 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.920500 0.600000 0.504717 0.604107 +0.521597 0.689730 0.172973 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.913043 0 0.802500 0.594060 0.505000 0.590715 +0.562607 0.630270 0.578379 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.736500 0.504000 0.505519 0.601785 +0.459696 0.547027 0.643243 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.840500 0.794000 0.505141 0.548214 +0.468512 0.677838 0.221622 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.782609 0 0.756500 0.606000 0.506085 0.705357 +0.750350 0.535135 0.432432 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.565217 0 0.854000 0.680000 0.732122 0.581964 +0.911131 0.594594 0.302702 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.923500 0.584000 0.810377 0.717857 +0.872646 0.725405 0.091893 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.798500 0.536000 0.743868 0.649285 +0.350979 0.309189 0.659459 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.801500 0.586000 0.776793 0.614821 +0.450826 0.630270 0.675675 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.810000 0.734000 0.513066 0.563393 +0.468412 0.535135 0.432432 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.826000 0.764000 0.505189 0.595893 +0.494549 0.642162 0.302702 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.912000 0.640000 0.930189 0.583393 +0.861339 0.761081 0.124324 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.837500 0.582000 0.504953 0.599643 +0.518753 0.665946 0.562161 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.782609 0 0.941000 0.650000 0.616887 0.669107 +0.736100 0.820540 0.091893 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.608696 0 0.704500 0.540000 0.596981 0.721785 +0.537623 0.475676 0.724324 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.772500 0.662000 0.505283 0.649285 +0.520873 0.535135 0.562161 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.787500 0.606220 0.602500 0.554107 +0.866499 0.606486 0.448649 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.857500 0.780000 0.504717 0.646964 +0.536086 0.594594 0.286487 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.652174 0 0.939500 0.582000 0.909434 0.613393 +0.919078 0.761081 0.108108 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.956522 0 0.795000 0.588240 0.505047 0.611607 +0.549039 0.642162 0.594594 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.802000 0.616000 0.505424 0.557321 +0.456799 0.523243 0.383783 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.728000 0.614000 0.535283 0.632857 +0.710282 0.523243 0.545946 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.644000 0.542760 0.506179 0.546785 +0.469246 0.309189 0.740540 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.964500 0.584000 0.650944 0.613036 +0.739603 0.820540 0.108108 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.709000 0.562000 0.505708 0.586785 +0.350299 0.440000 0.772973 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.860000 0.704000 0.549811 0.644286 +0.905620 0.654054 0.172973 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 0.043478 1 0.770500 0.676000 0.505424 0.649285 +0.569545 0.558919 0.481081 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.820000 0.642000 0.507500 0.582143 +0.502090 0.523243 0.400000 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.603000 0.514000 0.506746 0.715893 +0.524077 0.356757 0.805406 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.756500 0.628000 0.505141 0.682500 +0.452386 0.558919 0.708108 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.797500 0.694000 0.505283 0.532678 +0.486359 0.618378 0.237838 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.898500 0.836000 0.504717 0.578215 +0.448159 0.796757 0.124324 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.260870 1 0.697000 0.548000 0.505566 0.718393 +0.454592 0.535135 0.724324 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.875500 0.814000 0.504858 0.590715 +0.514197 0.761081 0.124324 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.674500 0.557820 0.505802 0.619286 +0.444164 0.463784 0.821622 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.808000 0.669000 0.505000 0.547500 +0.367851 0.523243 0.481081 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0 1 0.832500 0.780000 0.504858 0.648215 +0.595241 0.594594 0.254054 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.790000 0.700000 0.580424 0.764822 +0.809153 0.737297 0.335136 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0 1 0.785000 0.598000 0.505424 0.548214 +0.575528 0.547027 0.416216 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.789000 0.647040 0.505047 0.614107 +0.339607 0.511351 0.578379 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.565217 0 0.666000 0.522000 0.806037 0.737857 +0.901240 0.463784 0.643243 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.784500 0.695880 0.506037 0.596964 +0.469072 0.570811 0.302702 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.217391 1 0.857500 0.760000 0.505047 0.573393 +0.479291 0.689730 0.189189 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.727000 0.557740 0.505472 0.589822 +0.470586 0.511351 0.691892 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.757000 0.551540 0.808537 0.636607 +0.463375 0.511351 0.675675 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.647000 0.558000 0.506226 0.600178 +0.479543 0.309189 0.708108 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.391304 1 0.818000 0.650000 0.575896 0.539643 +0.793544 0.594594 0.221622 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.695652 0 0.722000 0.570000 0.538490 0.598215 +0.935380 0.487567 0.529730 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.782609 0 0.754000 0.580000 0.506934 0.581250 +0.561048 0.499459 0.610810 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.739500 0.544000 0.609293 0.557143 +0.357927 0.451892 0.724324 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.892500 0.736000 0.781132 0.646607 +0.867266 0.820540 0.156757 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.782609 0 0.966500 0.738000 0.611510 0.672857 +0.724784 0.868108 0.091893 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 1 0 0.785500 0.582820 0.505141 0.610893 +0.516997 0.606486 0.562161 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.917500 0.816000 0.504717 0.540893 +0.430003 0.820540 0.140540 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.521739 0 0.844000 0.804000 0.590189 0.676965 +0.814718 0.749189 0.318918 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.434783 1 0.807500 0.542000 0.736037 0.543393 +0.904939 0.594594 0.270271 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.594000 0.514000 0.506698 0.541429 +0.323087 0.261622 0.935135 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.798000 0.558000 0.505000 0.625357 +0.489269 0.511351 0.594594 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.434783 1 0.805000 0.694000 0.545047 0.712500 +0.858155 0.582703 0.237838 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.750500 0.568000 0.505377 0.568572 +0.395206 0.475676 0.691892 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.347826 1 0.814000 0.744420 0.505047 0.545357 +0.590621 0.737297 0.432432 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.587000 0.514000 0.507029 0.573035 +0.311867 0.261622 0.951351 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.898500 0.914000 0.525613 0.561786 +0.337554 0.832432 0.140540 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.742500 0.550000 0.551415 0.519643 +0.931362 0.499459 0.432432 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.814000 0.647280 0.574292 0.509643 +0.909024 0.594594 0.286487 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 1 0 0.805500 0.688000 0.505000 0.644643 +0.503637 0.677838 0.497297 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.740000 0.576000 0.505566 0.628928 +0.568952 0.463784 0.691892 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.738000 0.610000 0.505424 0.625000 +0.495537 0.511351 0.610810 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.994000 0.656000 0.881981 0.602678 +0.438687 0.820540 0.140540 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.834000 0.642000 0.504623 0.669822 +0.481090 0.618378 0.513514 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0 1 0.741500 0.612000 0.505424 0.596250 +0.541103 0.582703 0.708108 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.849500 0.708000 0.505047 0.638572 +0.494076 0.642162 0.286487 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.760000 0.609920 0.563963 0.543929 +0.617097 0.511351 0.448649 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.817500 0.750000 0.504953 0.581429 +0.384646 0.523243 0.513514 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.823500 0.614000 0.505141 0.646785 +0.454197 0.594594 0.335136 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.897500 0.876000 0.504670 0.579643 +0.426096 0.796757 0.124324 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.130435 1 0.902500 0.840000 0.504717 0.607500 +0.436161 0.856216 0.091893 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.478261 1 0.877500 0.680000 0.801887 0.596607 +0.871656 0.725405 0.140540 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.853000 0.628000 0.672971 0.678393 +0.498183 0.606486 0.497297 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.913043 0 0.923000 0.680000 0.504670 0.571428 +0.628404 0.749189 0.108108 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.869565 0 0.739500 0.576000 0.505424 0.624821 +0.484219 0.535135 0.756757 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.712500 0.568000 0.571415 0.529107 +0.418301 0.511351 0.659459 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.834000 0.784000 0.505047 0.582322 +0.555835 0.665946 0.286487 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.667000 0.526000 0.663727 0.565179 +0.323152 0.309189 0.821622 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 0.043478 1 0.883500 0.856000 0.504764 0.535715 +0.478105 0.808648 0.124324 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.660000 0.518000 0.506179 0.635893 +0.337324 0.273513 0.821622 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.730000 0.546000 0.679623 0.641786 +0.799208 0.570811 0.610810 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.922000 0.676000 0.504670 0.582500 +0.655221 0.761081 0.124324 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.761500 0.502000 0.543113 0.604643 +0.620720 0.451892 0.432432 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.820000 0.620000 0.505236 0.664822 +0.443439 0.570811 0.221622 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.799500 0.530000 0.817783 0.635715 +0.497523 0.535135 0.643243 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.691000 0.576000 0.505943 0.755715 +0.575472 0.451892 0.545946 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.776500 0.546000 0.790849 0.646785 +0.557953 0.475676 0.513514 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.130435 1 0.802500 0.682000 0.504906 0.539822 +0.438719 0.642162 0.610810 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.904500 0.860000 0.504670 0.555714 +0.430047 0.808648 0.124324 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.130435 1 0.912500 0.740000 0.504764 0.500000 +0.434471 0.820540 0.091893 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.608696 0 0.860500 0.654000 0.836887 0.629286 +0.860637 0.749189 0.286487 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.863500 0.586000 0.853915 0.600893 +0.902328 0.654054 0.221622 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.652174 0 0.845000 0.626000 0.671132 0.580715 +0.934358 0.701621 0.302702 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.846500 0.746000 0.505047 0.593571 +0.571191 0.713513 0.237838 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.478261 1 0.781000 0.640200 0.550000 0.564286 +0.834368 0.594594 0.383783 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.850000 0.682000 0.505141 0.501250 +0.506591 0.654054 0.221622 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.304348 1 0.748000 0.574000 0.506981 0.520178 +0.572705 0.558919 0.318918 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.953000 0.750000 0.504529 0.595893 +0.457941 0.820540 0.156757 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.260870 1 0.768500 0.622000 0.505566 0.546429 +0.497875 0.511351 0.464865 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.478261 1 0.712500 0.538000 0.759057 0.695179 +0.844511 0.582703 0.594594 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.826087 0 0.906000 0.624000 0.559434 0.637321 +0.643113 0.725405 0.124324 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.782609 0 0.812500 0.738000 0.506179 0.570535 +0.377357 0.499459 0.562161 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.521739 0 0.948000 0.722000 0.879670 0.586785 +0.850647 0.939459 0.075675 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.844500 0.806000 0.505236 0.628035 +0.419048 0.701621 0.189189 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.839500 0.796000 0.575000 0.591607 +0.474757 0.689730 0.189189 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.764000 0.564000 0.567641 0.605893 +0.564582 0.463784 0.529730 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.922500 0.738000 0.864953 0.652322 +0.533013 0.772973 0.189189 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.844500 0.768000 0.560613 0.524643 +0.461497 0.689730 0.205405 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.130435 1 0.747000 0.570000 0.505377 0.601429 +0.506536 0.535135 0.643243 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.864000 0.748000 0.567878 0.697679 +0.580665 0.689730 0.318918 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.956522 0 0.736000 0.588000 0.505519 0.661607 +0.565209 0.535135 0.464865 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.788000 0.591740 0.595613 0.653215 +0.776199 0.642162 0.529730 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.651500 0.514000 0.506179 0.523750 +0.498127 0.368649 0.837837 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.739130 0 0.868000 0.802000 0.539670 0.655000 +0.809186 0.749189 0.318918 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.538500 0.514000 0.507217 0.661785 +0.423175 0 0.545946 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.762000 0.558000 0.576840 0.632500 +0.806486 0.535135 0.578379 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.895000 0.804000 0.504764 0.612321 +0.677429 0.713513 0.156757 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.756000 0.624000 0.550377 0.557679 +0.414591 0.535135 0.675675 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.724500 0.566000 0.505566 0.628393 +0.371035 0.499459 0.756757 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.743000 0.552000 0.517075 0.536429 +0.877804 0.487567 0.416216 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.434783 1 0.861000 0.810000 0.593066 0.585893 +0.831162 0.749189 0.172973 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.826087 0 0.703500 0.566000 0.505802 0.589643 +0.471277 0.428108 0.740540 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.845000 0.800000 0.505000 0.618214 +0.523484 0.689730 0.335136 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.826087 0 0.792500 0.524000 0.505236 0.693750 +0.731732 0.618378 0.302702 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.665000 0.502000 0.548066 0.605178 +0.533386 0.392432 0.805406 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 1 0 0.787000 0.686000 0.505047 0.569821 +0.493528 0.523243 0.497297 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.750000 0.506000 0.788774 0.665893 +0.546778 0.428108 0.464865 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 1 0 0.875000 0.848000 0.504906 0.633035 +0.623826 0.713513 0.172973 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.735000 0.514000 0.579953 0.646428 +0.710315 0.511351 0.643243 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.847000 0.538000 0.884905 0.707143 +0.870011 0.606486 0.254054 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.721000 0.579700 0.505519 0.598036 +0.409037 0.499459 0.724324 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.130435 1 0.676000 0.558680 0.505991 0.617321 +0.492716 0.392432 0.789189 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.654000 0.544000 0.506179 0.559821 +0.526086 0.368649 0.691892 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.797000 0.702000 0.505377 0.500357 +0.465393 0.606486 0.254054 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0 1 0.932500 0.796000 0.504623 0.592857 +0.431133 0.808648 0.156757 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.652174 0 0.688500 0.516000 0.744104 0.688928 +0.921977 0.475676 0.610810 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.826087 0 0.911500 0.658000 0.522170 0.625893 +0.713247 0.749189 0.172973 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.847500 0.784080 0.504953 0.538750 +0.439290 0.630270 0.335136 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.347826 1 0.728000 0.602000 0.534245 0.681965 +0.559501 0.558919 0.724324 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.824000 0.540000 0.597217 0.567143 +0.848474 0.642162 0.318918 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.847000 0.810000 0.505000 0.593036 +0.501771 0.689730 0.351351 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 1 0 0.827000 0.742000 0.504953 0.737500 +0.568689 0.665946 0.254054 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.434783 1 0.759000 0.590000 0.508113 0.733750 +0.791359 0.630270 0.691892 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.966500 0.570000 0.753774 0.631607 +0.859143 0.820540 0.108108 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.521739 0 0.832000 0.766000 0.575000 0.663929 +0.780371 0.654054 0.383783 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.611500 0.510000 0.676415 0.559821 +0.396666 0.237838 0.821622 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.565217 0 0.948000 0.784000 0.829953 0.600893 +0.871250 0.868108 0.108108 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.695652 0 0.752000 0.518000 0.578773 0.701964 +0.930329 0.535135 0.513514 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.863500 0.684000 0.693679 0.619821 +0.538896 0.630270 0.335136 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.978000 0.712000 0.782783 0.550893 +0.474428 0.856216 0.140540 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.347826 1 0.735500 0.576000 0.522170 0.640179 +0.644957 0.463784 0.578379 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.173913 1 0.737000 0.574000 0.505754 0.604465 +0.509423 0.475676 0.562161 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.712000 0.594000 0.505660 0.622857 +0.440409 0.511351 0.659459 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.862500 0.826000 0.669811 0.585715 +0.843006 0.808648 0.172973 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.869565 0 0.811000 0.606000 0.505283 0.674643 +0.663234 0.630270 0.254054 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.173913 1 0.749500 0.620000 0.505283 0.647500 +0.458708 0.582703 0.643243 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.731000 0.590000 0.506085 0.572500 +0.504692 0.511351 0.724324 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.958000 0.740000 0.928019 0.644822 +0.508446 0.808648 0.108108 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.391304 1 0.782500 0.556000 0.644623 0.531071 +0.824861 0.547027 0.318918 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.899500 0.816000 0.504670 0.588036 +0.463451 0.784865 0.124324 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.837500 0.726000 0.636368 0.657500 +0.676989 0.725405 0.383783 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.173913 1 0.749000 0.616000 0.505377 0.623572 +0.445932 0.582703 0.724324 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.973000 0.732000 0.936321 0.558214 +0.459016 0.856216 0.124324 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.686000 0.568000 0.506037 0.600178 +0.583925 0.416216 0.643243 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.869565 0 0.837500 0.650000 0.504858 0.556607 +0.597361 0.630270 0.481081 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.715000 0.590000 0.505754 0.502679 +0.535745 0.416216 0.529730 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.869500 0.718000 0.751415 0.630357 +0.877915 0.808648 0.172973 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.260870 1 0.780000 0.662460 0.505283 0.667500 +0.511947 0.558919 0.383783 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.972500 0.710000 0.519292 0.628393 +0.573880 0.868108 0.059459 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.743000 0.620000 0.666037 0.661607 +0.788572 0.499459 0.529730 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.521739 0 0.762000 0.524000 0.844481 0.837678 +0.934017 0.642162 0.513514 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.652174 0 0.813000 0.744000 0.561415 0.754465 +0.870109 0.630270 0.335136 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.086957 1 0.851500 0.813000 0.504717 0.645000 +0.498237 0.713513 0.367567 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.565000 0.520000 0.506840 0.735000 +0.445251 0.297297 0.983784 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.787500 0.622000 0.505189 0.663393 +0.625385 0.606486 0.643243 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.768500 0.658000 0.505566 0.582857 +0.465745 0.547027 0.545946 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.695652 0 0.848500 0.608000 0.668585 0.682679 +0.854840 0.713513 0.416216 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.304348 1 0.778000 0.641900 0.505189 0.662500 +0.467259 0.535135 0.529730 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.738500 0.588000 0.505519 0.595178 +0.426227 0.487567 0.643243 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.391304 1 0.736000 0.572000 0.577312 0.521429 +0.606340 0.535135 0.481081 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.739130 0 0.858000 0.566000 0.545660 0.586071 +0.825454 0.606486 0.400000 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.790500 0.653600 0.505047 0.573393 +0.340144 0.499459 0.529730 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.781500 0.573760 0.811085 0.718750 +0.727549 0.618378 0.545946 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.919500 0.588000 0.887264 0.602322 +0.531257 0.618378 0.156757 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.741500 0.599700 0.505519 0.599285 +0.507787 0.511351 0.497297 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.789000 0.544000 0.820047 0.626607 +0.487743 0.582703 0.578379 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.756500 0.662000 0.505236 0.656071 +0.437073 0.558919 0.708108 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.917500 0.918000 0.690236 0.629643 +0.420486 0.868108 0.140540 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.874000 0.604000 0.820283 0.724107 +0.886916 0.689730 0.416216 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.695652 0 0.871000 0.792000 0.544245 0.658215 +0.871086 0.725405 0.302702 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.260870 1 0.826500 0.745680 0.504670 0.689465 +0.466118 0.654054 0.448649 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.173913 1 0.726500 0.556000 0.505943 0.626965 +0.489993 0.511351 0.529730 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.725500 0.534000 0.512358 0.641428 +0.498578 0.558919 0.740540 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.173913 1 0.733000 0.624000 0.505566 0.553750 +0.336829 0.428108 0.675675 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.608696 0 0.925000 0.678000 0.890283 0.594822 +0.912097 0.701621 0.091893 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.688500 0.588000 0.556226 0.657322 +0.328026 0.416216 0.805406 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.860000 0.712000 0.505000 0.600178 +0.543770 0.654054 0.172973 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.845000 0.806000 0.505047 0.628214 +0.493418 0.677838 0.302702 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.707500 0.570000 0.505754 0.574821 +0.478006 0.463784 0.756757 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.861000 0.680000 0.505047 0.534285 +0.435646 0.582703 0.172973 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.786500 0.561200 0.505141 0.593215 +0.598634 0.582703 0.659459 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.714000 0.596000 0.505754 0.528215 +0.678492 0.440000 0.497297 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.913043 0 0.833000 0.782000 0.504764 0.642143 +0.579929 0.701621 0.367567 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.569000 0.518000 0.506981 0.589285 +0.501410 0.297297 0.886486 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.086957 1 0.861000 0.680000 0.505000 0.585536 +0.477139 0.665946 0.156757 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.840000 0.796000 0.527595 0.683393 +0.852436 0.749189 0.318918 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.918000 0.662000 0.504717 0.610357 +0.616219 0.725405 0.124324 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.724500 0.550000 0.505943 0.566786 +0.575724 0.570811 0.562161 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.757000 0.610180 0.505189 0.659285 +0.435184 0.570811 0.659459 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.740500 0.600000 0.567971 0.580357 +0.457161 0.570811 0.497297 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.794000 0.692000 0.505236 0.547143 +0.478347 0.618378 0.497297 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.865500 0.699720 0.568915 0.546250 +0.771129 0.677838 0.367567 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.173913 1 0.826500 0.642000 0.505189 0.741786 +0.493956 0.630270 0.205405 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.826087 0 0.841000 0.660000 0.593396 0.627500 +0.660896 0.558919 0.124324 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.695652 0 0.848000 0.812000 0.559009 0.619821 +0.835706 0.784865 0.302702 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.847500 0.746000 0.571887 0.656785 +0.548359 0.547027 0.059459 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.771000 0.596740 0.505424 0.576607 +0.685485 0.606486 0.383783 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.870000 0.718000 0.556226 0.617500 +0.536394 0.677838 0.286487 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0 1 0.658000 0.566000 0.506179 0.605000 +0.530454 0.392432 0.837837 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.862000 0.574620 0.762736 0.773214 +0.530488 0.582703 0.205405 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.934500 0.584000 0.878302 0.608393 +0.900197 0.784865 0.091893 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.645000 0.510000 0.506085 0.576429 +0.524824 0.368649 0.854053 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.918500 0.698000 0.814764 0.560179 +0.528699 0.749189 0.172973 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.719000 0.582640 0.505519 0.599643 +0.399992 0.499459 0.724324 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.670500 0.518000 0.545283 0.594822 +0.532146 0.392432 0.691892 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.820000 0.646680 0.525519 0.529464 +0.934742 0.618378 0.270271 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.173913 1 0.824000 0.744860 0.504670 0.651250 +0.484361 0.654054 0.448649 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.793000 0.669620 0.505189 0.504465 +0.505196 0.570811 0.416216 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.662500 0.550000 0.506037 0.785357 +0.680557 0.451892 0.724324 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.869565 0 0.749500 0.550000 0.505519 0.717678 +0.710195 0.547027 0.497297 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.304348 1 0.740500 0.598000 0.507358 0.702500 +0.530905 0.535135 0.594594 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.260870 1 0.873500 0.874000 0.504764 0.588571 +0.489082 0.772973 0.172973 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.714000 0.578000 0.506037 0.586607 +0.495064 0.463784 0.610810 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.903500 0.538000 0.734670 0.552500 +0.901976 0.725405 0.172973 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.173913 1 0.699000 0.556000 0.505943 0.673750 +0.493242 0.475676 0.594594 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.834500 0.786000 0.519858 0.673036 +0.462407 0.689730 0.205405 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.789500 0.628480 0.539198 0.754822 +0.945324 0.737297 0.416216 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.696000 0.564000 0.529198 0.557500 +0.333712 0.416216 0.805406 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.828500 0.772000 0.505047 0.601071 +0.504373 0.665946 0.302702 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.949000 0.736000 0.504481 0.597857 +0.576505 0.903784 0.059459 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.786500 0.576000 0.505519 0.602322 +0.448159 0.511351 0.318918 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.608696 0 0.753500 0.519780 0.790849 0.583929 +0.910571 0.499459 0.562161 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.765500 0.579920 0.798679 0.738928 +0.716331 0.618378 0.562161 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.956522 0 0.875500 0.720000 0.504906 0.593929 +0.650753 0.737297 0.237838 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.217391 1 0.654500 0.568000 0.506179 0.587857 +0.508335 0.404324 0.837837 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.788500 0.558000 0.698491 0.620179 +0.500477 0.618378 0.545946 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.731000 0.566000 0.511698 0.506072 +0.569303 0.511351 0.740540 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.304348 1 0.883500 0.902000 0.504858 0.567857 +0.519818 0.820540 0.140540 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.478261 1 0.902000 0.870000 0.775189 0.566607 +0.859000 0.903784 0.124324 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.913043 0 0.795000 0.660000 0.505189 0.640535 +0.682555 0.547027 0.367567 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.217391 1 0.844500 0.696000 0.505047 0.527322 +0.457709 0.630270 0.140540 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.391304 1 0.766500 0.622000 0.511132 0.734285 +0.802753 0.606486 0.448649 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.739130 0 0.844000 0.658000 0.794811 0.694643 +0.839824 0.654054 0.140540 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.304348 1 0.848500 0.774000 0.505141 0.513928 +0.516986 0.654054 0.221622 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.764500 0.516000 0.505283 0.563750 +0.636297 0.558919 0.691892 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.947000 0.768000 0.739953 0.698035 +0.513210 0.796757 0.108108 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 0.043478 1 0.889500 0.722000 0.504858 0.562679 +0.515406 0.713513 0.140540 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.867000 0.656000 0.505000 0.520536 +0.481090 0.665946 0.140540 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.807500 0.530000 0.633585 0.754643 +0.783544 0.618378 0.513514 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.478261 1 0.893000 0.836000 0.605519 0.677857 +0.906148 0.784865 0.156757 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0 1 0.812500 0.562000 0.505047 0.705357 +0.621050 0.558919 0.351351 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.608696 0 0.804000 0.688000 0.544859 0.675893 +0.866740 0.606486 0.448649 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.347826 1 0.828000 0.702000 0.518349 0.541965 +0.600742 0.606486 0.237838 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.807500 0.702000 0.607547 0.515357 +0.466053 0.630270 0.254054 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.772000 0.554000 0.791981 0.692500 +0.421583 0.523243 0.659459 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0 1 0.835000 0.778000 0.505000 0.623035 +0.599645 0.594594 0.205405 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.724500 0.572560 0.540471 0.607857 +0.440552 0.487567 0.724324 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.521739 0 0.900500 0.722000 0.825472 0.543571 +0.870669 0.820540 0.140540 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.869565 0 0.852000 0.546000 0.504953 0.645893 +0.700589 0.642162 0.172973 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.739130 0 0.764500 0.548000 0.521227 0.734821 +0.908331 0.558919 0.416216 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.859000 0.819060 0.504623 0.557857 +0.444273 0.761081 0.416216 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.742000 0.552000 0.505519 0.528929 +0.430772 0.451892 0.740540 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.347826 1 0.795000 0.616000 0.515378 0.532143 +0.597667 0.523243 0.351351 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.569500 0.514000 0.790849 0.564107 +0.352461 0.237838 0.870271 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.086957 1 0.652000 0.536000 0.506226 0.758036 +0.551015 0.404324 0.772973 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.719000 0.580520 0.511934 0.575357 +0.378619 0.487567 0.724324 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.865000 0.869180 0.523538 0.627857 +0.873491 0.844324 0.189189 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.959000 0.706000 0.563160 0.579643 +0.650061 0.820540 0.091893 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.901000 0.794000 0.561179 0.640893 +0.566295 0.761081 0.237838 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.874000 0.578000 0.841038 0.637679 +0.575856 0.535135 0.221622 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.876000 0.796000 0.504953 0.523929 +0.487831 0.761081 0.124324 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.824000 0.690000 0.713019 0.605893 +0.506195 0.594594 0.367567 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.894500 0.540000 0.910990 0.561428 +0.898036 0.713513 0.205405 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.086957 1 0.858500 0.632000 0.505047 0.623928 +0.516064 0.606486 0.221622 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.913043 0 0.925500 0.820000 0.504481 0.610178 +0.594617 0.868108 0.075675 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.765500 0.646000 0.508019 0.581071 +0.491608 0.499459 0.529730 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.857500 0.692000 0.505000 0.617500 +0.551937 0.558919 0.059459 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 1 0 0.728500 0.554000 0.505660 0.745357 +0.665430 0.511351 0.545946 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.662000 0.514000 0.506226 0.558035 +0.439838 0.416216 0.805406 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0 1 0.678000 0.570000 0.505943 0.531785 +0.436128 0.416216 0.789189 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0 1 0.763000 0.554000 0.505236 0.613750 +0.526766 0.558919 0.627028 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0 1 0.874000 0.682000 0.505000 0.595536 +0.506119 0.654054 0.189189 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.691000 0.584000 0.594010 0.678393 +0.336062 0.428108 0.805406 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.736500 0.599680 0.505566 0.606071 +0.559347 0.475676 0.545946 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.809000 0.536000 0.674104 0.645357 +0.351813 0.309189 0.610810 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.881000 0.712000 0.692971 0.645357 +0.910494 0.701621 0.237838 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.608696 0 0.744000 0.610000 0.537453 0.670000 +0.836322 0.630270 0.675675 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.521739 0 0.726000 0.522000 0.608632 0.669286 +0.940165 0.535135 0.578379 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.521739 0 0.809500 0.624000 0.771934 0.622857 +0.748680 0.535135 0.497297 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.695652 0 0.842500 0.576000 0.688396 0.548214 +0.717956 0.606486 0.464865 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.217391 1 0.773000 0.599700 0.505047 0.543571 +0.453747 0.547027 0.675675 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.852500 0.822000 0.504953 0.607322 +0.423450 0.737297 0.156757 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.260870 1 0.798000 0.654080 0.505047 0.640179 +0.442418 0.665946 0.627028 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.732000 0.598000 0.505519 0.538571 +0.403571 0.487567 0.724324 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.695652 0 0.943000 0.528000 0.822830 0.660000 +0.904094 0.725405 0.140540 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.434783 1 0.670000 0.514000 0.676179 0.632143 +0.863237 0.428108 0.659459 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.838000 0.666000 0.505189 0.650000 +0.518193 0.594594 0.318918 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.130435 1 0.744500 0.614000 0.505377 0.625179 +0.453187 0.570811 0.740540 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.747000 0.564800 0.505377 0.563928 +0.438072 0.511351 0.562161 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.730000 0.598000 0.505660 0.542143 +0.591751 0.463784 0.594594 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.732000 0.610000 0.590424 0.566607 +0.508183 0.440000 0.481081 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.565217 0 0.894500 0.638000 0.789198 0.638572 +0.890297 0.749189 0.189189 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.885000 0.750000 0.732359 0.568393 +0.516734 0.665946 0.189189 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 1 0 0.825000 0.594000 0.505047 0.692321 +0.650721 0.570811 0.270271 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.565217 0 0.856500 0.577660 0.858727 0.540178 +0.945830 0.654054 0.189189 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.725500 0.560000 0.505424 0.647500 +0.494198 0.570811 0.724324 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.833000 0.534000 0.505047 0.605714 +0.585671 0.547027 0.189189 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.716000 0.567820 0.505519 0.565535 +0.390453 0.487567 0.870271 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 0.043478 1 0.833500 0.782000 0.504858 0.632679 +0.576690 0.606486 0.254054 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.956522 0 0.835000 0.760000 0.504858 0.621965 +0.660973 0.618378 0.254054 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.934500 0.584000 0.695283 0.632857 +0.731150 0.749189 0.108108 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.639500 0.522000 0.506274 0.556786 +0.335018 0.309189 0.870271 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.695652 0 0.791000 0.510000 0.815472 0.777678 +0.942833 0.642162 0.497297 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0 1 0.899500 0.714000 0.504764 0.579286 +0.547327 0.701621 0.124324 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.869565 0 0.848500 0.690000 0.504764 0.703035 +0.590599 0.665946 0.416216 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.831000 0.694000 0.505047 0.625357 +0.481859 0.618378 0.156757 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.848500 0.794000 0.505047 0.606429 +0.508347 0.665946 0.302702 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.694000 0.556000 0.538632 0.781785 +0.894116 0.511351 0.594594 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.782609 0 0.936500 0.532000 0.642123 0.576072 +0.742796 0.689730 0.156757 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.608696 0 0.830000 0.506000 0.793349 0.596785 +0.377862 0.309189 0.529730 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.821000 0.518000 0.883821 0.636607 +0.914808 0.618378 0.335136 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 1 0 0.756500 0.616000 0.505377 0.671785 +0.575976 0.451892 0.545946 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.890000 0.660000 0.814292 0.720536 +0.534385 0.642162 0.270271 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.566000 0.518000 0.535283 0.630893 +0.491541 0.321081 0.886486 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.956522 0 0.788000 0.664000 0.505283 0.627500 +0.680194 0.547027 0.383783 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.521739 0 0.856000 0.832000 0.534953 0.622321 +0.853765 0.737297 0.351351 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.869565 0 0.947000 0.758000 0.511934 0.622679 +0.602904 0.844324 0.075675 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.751500 0.568000 0.537688 0.622143 +0.678515 0.499459 0.691892 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.260870 1 0.739000 0.618000 0.505472 0.592500 +0.420377 0.523243 0.691892 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.565217 0 0.812500 0.678000 0.584434 0.593929 +0.395359 0.499459 0.578379 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.608696 0 0.846000 0.764000 0.615613 0.584285 +0.916498 0.689730 0.237838 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.737000 0.640000 0.589293 0.655000 +0.706857 0.475676 0.497297 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.826087 0 0.822500 0.656320 0.506840 0.580178 +0.580819 0.654054 0.481081 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.718500 0.581460 0.506037 0.580893 +0.386380 0.487567 0.724324 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.837000 0.790000 0.504717 0.676250 +0.444690 0.761081 0.400000 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.956522 0 0.770000 0.528000 0.505424 0.679643 +0.694662 0.570811 0.335136 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.956522 0 0.713500 0.594000 0.505754 0.573393 +0.698185 0.451892 0.529730 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.391304 1 0.804500 0.657300 0.607359 0.645000 +0.715464 0.701621 0.497297 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.478261 1 0.892000 0.694000 0.785378 0.551785 +0.891197 0.737297 0.124324 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.521739 0 0.915500 0.612000 0.866037 0.680357 +0.893721 0.761081 0.124324 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.785500 0.544000 0.742264 0.651071 +0.563672 0.475676 0.545946 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.739000 0.510000 0.505519 0.630000 +0.491202 0.582703 0.772973 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.782609 0 0.762500 0.518000 0.511226 0.533036 +0.716244 0.440000 0.562161 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.652174 0 0.823000 0.512000 0.798443 0.542500 +0.878749 0.618378 0.448649 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.822000 0.766160 0.525849 0.642143 +0.902810 0.761081 0.270271 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.086957 1 0.809500 0.574000 0.505283 0.608393 +0.480762 0.547027 0.270271 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.749000 0.544000 0.576274 0.668929 +0.357423 0.463784 0.740540 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.869565 0 0.869000 0.812000 0.504623 0.684465 +0.603551 0.844324 0.383783 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.837000 0.734000 0.534717 0.721071 +0.899902 0.618378 0.189189 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.565217 0 0.839500 0.752000 0.584339 0.664285 +0.775849 0.701621 0.367567 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.217391 1 0.821000 0.760000 0.504764 0.594107 +0.438126 0.749189 0.448649 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.884500 0.790000 0.504858 0.614643 +0.553320 0.749189 0.075675 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.733500 0.544000 0.505472 0.567679 +0.365358 0.440000 0.740540 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.521739 0 0.881000 0.754000 0.681226 0.623928 +0.912021 0.808648 0.221622 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.750000 0.560880 0.505566 0.616965 +0.442638 0.499459 0.691892 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.565217 0 0.738000 0.550000 0.826509 0.582143 +0.501530 0.440000 0.481081 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.217391 1 0.776000 0.632880 0.505141 0.603393 +0.441650 0.511351 0.562161 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.856500 0.626000 0.728302 0.755357 +0.509521 0.582703 0.221622 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.719500 0.520000 0.755849 0.664643 +0.521190 0.416216 0.464865 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.796000 0.628660 0.511132 0.582143 +0.608789 0.547027 0.432432 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.391304 1 0.809500 0.738000 0.550236 0.582857 +0.822424 0.665946 0.302702 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.521739 0 0.881000 0.690000 0.769434 0.615357 +0.934918 0.796757 0.205405 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.815000 0.690180 0.504953 0.592857 +0.356368 0.535135 0.513514 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.730500 0.590000 0.505236 0.660000 +0.424207 0.558919 0.740540 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.608696 0 0.793500 0.627400 0.678962 0.717322 +0.854171 0.642162 0.383783 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.899500 0.656000 0.881604 0.612500 +0.864412 0.749189 0.140540 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.857500 0.794000 0.505000 0.625714 +0.538479 0.677838 0.302702 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.828000 0.720000 0.505236 0.513035 +0.467040 0.630270 0.221622 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0 1 0.890500 0.748000 0.504858 0.616786 +0.566065 0.772973 0.124324 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.391304 1 0.753500 0.598000 0.661698 0.608036 +0.842754 0.570811 0.448649 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.695652 0 0.826500 0.528000 0.673868 0.826607 +0.969738 0.677838 0.189189 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 0.043478 1 0.855000 0.807020 0.504717 0.673214 +0.517359 0.701621 0.383783 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.836000 0.574000 0.788066 0.725893 +0.552145 0.547027 0.432432 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.838500 0.698000 0.505189 0.524285 +0.432243 0.594594 0.237838 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.826087 0 0.766000 0.563140 0.504906 0.927500 +0.643771 0.606486 0.545946 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.891000 0.530000 0.654056 0.652500 +0.542530 0.618378 0.237838 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.843500 0.752000 0.505000 0.699821 +0.589830 0.677838 0.335136 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.819000 0.728000 0.505236 0.538750 +0.484495 0.606486 0.237838 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.086957 1 0.832500 0.806480 0.504764 0.534464 +0.448204 0.784865 0.416216 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.865000 0.550000 0.865095 0.678214 +0.509961 0.606486 0.254054 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.521739 0 0.834000 0.728000 0.804198 0.556607 +0.852601 0.725405 0.302702 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.782500 0.574000 0.592453 0.630357 +0.416874 0.523243 0.335136 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.864500 0.734000 0.668349 0.736964 +0.906915 0.749189 0.237838 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.916000 0.874000 0.504670 0.571428 +0.357851 0.844324 0.140540 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.347826 1 0.886000 0.906000 0.517924 0.581786 +0.604178 0.808648 0.156757 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.608696 0 0.950500 0.740000 0.898113 0.595893 +0.869703 0.915675 0.091893 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.744000 0.548020 0.820047 0.611428 +0.463330 0.511351 0.691892 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.563500 0.518000 0.513632 0.614821 +0.477337 0.309189 0.886486 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.933500 0.674000 0.797736 0.604465 +0.876245 0.761081 0.108108 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.521739 0 0.772500 0.572000 0.741557 0.654643 +0.821558 0.487567 0.513514 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.130435 1 0.891500 0.910000 0.504717 0.568928 +0.450761 0.820540 0.108108 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.434783 1 0.838500 0.666000 0.672971 0.634286 +0.849649 0.642162 0.237838 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.912500 0.818000 0.508349 0.619286 +0.585769 0.868108 0.091893 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0 1 0.751000 0.572000 0.505708 0.653929 +0.573869 0.535135 0.545946 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.776000 0.604760 0.603302 0.653750 +0.726242 0.677838 0.627028 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.130435 1 0.816500 0.600000 0.505283 0.572679 +0.483505 0.547027 0.237838 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.956522 0 0.902500 0.630000 0.504764 0.556607 +0.611061 0.689730 0.108108 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.391304 1 0.705000 0.554000 0.583066 0.562679 +0.322965 0.344865 0.724324 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.766500 0.546000 0.505283 0.563750 +0.516317 0.523243 0.675675 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.838000 0.748000 0.505141 0.594822 +0.529698 0.558919 0.059459 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.956522 0 0.763000 0.610000 0.505377 0.632857 +0.567590 0.451892 0.610810 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.840000 0.598000 0.778632 0.630893 +0.887278 0.665946 0.270271 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.836500 0.586000 0.867736 0.573750 +0.483297 0.654054 0.578379 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.391304 1 0.723000 0.582000 0.516509 0.589107 +0.565967 0.463784 0.740540 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.478261 1 0.921000 0.862000 0.730283 0.600178 +0.886542 0.832432 0.108108 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.662000 0.572000 0.516651 0.597322 +0.593903 0.463784 0.821622 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.478261 1 0.720000 0.524000 0.567736 0.667322 +0.923930 0.523243 0.545946 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.771500 0.614000 0.546556 0.701072 +0.512311 0.570811 0.724324 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.817500 0.677320 0.505000 0.536429 +0.717725 0.606486 0.254054 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.565217 0 0.941000 0.776000 0.844953 0.579821 +0.860889 0.915675 0.091893 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.739130 0 0.947000 0.576000 0.777359 0.613036 +0.848386 0.784865 0.108108 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.608696 0 0.915500 0.778000 0.703113 0.686607 +0.927333 0.749189 0.156757 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.876500 0.798000 0.504953 0.538215 +0.471387 0.772973 0.140540 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.912000 0.892000 0.649481 0.608393 +0.841909 0.880000 0.108108 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.791500 0.550000 0.858727 0.537678 +0.933897 0.618378 0.383783 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.086957 1 0.833500 0.784000 0.504858 0.619107 +0.558852 0.594594 0.270271 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.304348 1 0.810000 0.740000 0.505377 0.568928 +0.541433 0.642162 0.286487 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.913043 0 0.839000 0.544000 0.505000 0.608750 +0.710360 0.642162 0.189189 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.304348 1 0.729500 0.583460 0.505708 0.629107 +0.456766 0.535135 0.659459 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.217391 1 0.845000 0.808000 0.504953 0.628572 +0.516075 0.618378 0.205405 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.478261 1 0.932000 0.764000 0.799811 0.569107 +0.846431 0.927567 0.124324 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.478261 1 0.778000 0.581340 0.798443 0.721964 +0.809692 0.618378 0.497297 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.878500 0.708000 0.786934 0.621965 +0.925181 0.796757 0.205405 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.746500 0.608260 0.543208 0.555000 +0.550312 0.499459 0.497297 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.666000 0.514000 0.537830 0.582143 +0.524967 0.404324 0.740540 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.086957 1 0.822500 0.728000 0.504717 0.660536 +0.498841 0.654054 0.481081 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.693500 0.508000 0.505943 0.516250 +0.346676 0.297297 0.789189 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.729000 0.586000 0.695283 0.642143 +0.432034 0.475676 0.675675 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.739130 0 0.772500 0.556000 0.599764 0.951786 +0.804115 0.618378 0.659459 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.217391 1 0.647500 0.528000 0.506226 0.736964 +0.518512 0.392432 0.805406 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.536500 0.514000 0.507264 0.664107 +0.428444 0.011892 0.724324 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.521739 0 0.934000 0.822000 0.763207 0.585357 +0.855368 0.880000 0.108108 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.768000 0.580000 0.505708 0.591964 +0.438719 0.487567 0.416216 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.434783 1 0.862500 0.700000 0.697170 0.588036 +0.845532 0.677838 0.172973 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.826087 0 0.841500 0.768000 0.504764 0.624821 +0.586855 0.689730 0.318918 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.820000 0.638000 0.530236 0.571250 +0.507700 0.535135 0.464865 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.838500 0.792000 0.504717 0.687321 +0.487030 0.725405 0.367567 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.652174 0 0.788000 0.512000 0.871887 0.778929 +0.944600 0.630270 0.448649 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.771000 0.578000 0.505708 0.599643 +0.435425 0.511351 0.383783 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.956522 0 0.838000 0.762000 0.504717 0.601785 +0.576955 0.749189 0.335136 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.908000 0.630000 0.662594 0.698572 +0.584012 0.594594 0.221622 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 0.043478 1 0.800500 0.706000 0.505047 0.684821 +0.494758 0.689730 0.627028 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.869565 0 0.841000 0.800000 0.504717 0.611607 +0.579381 0.749189 0.335136 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.956522 0 0.902000 0.580000 0.504906 0.573393 +0.635594 0.618378 0.156757 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.857500 0.818940 0.504717 0.666785 +0.508315 0.796757 0.432432 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.719500 0.562000 0.505472 0.688393 +0.478292 0.558919 0.724324 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.759000 0.580000 0.505424 0.637500 +0.659667 0.535135 0.448649 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.829000 0.592000 0.507500 0.692500 +0.559117 0.547027 0.448649 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 0.043478 1 0.858500 0.704000 0.505000 0.590536 +0.586416 0.677838 0.237838 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.727000 0.582000 0.505943 0.572321 +0.495503 0.511351 0.545946 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.651000 0.514000 0.506085 0.540357 +0.495218 0.380540 0.837837 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.910000 0.826000 0.710236 0.629286 +0.901987 0.761081 0.091893 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.434783 1 0.785500 0.599420 0.594104 0.591785 +0.827035 0.630270 0.578379 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.782609 0 0.910000 0.848000 0.538161 0.609465 +0.690776 0.856216 0.075675 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.767000 0.552000 0.505424 0.513928 +0.432957 0.511351 0.691892 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.782609 0 0.863500 0.822000 0.516180 0.604107 +0.680314 0.737297 0.335136 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.962500 0.768000 0.853444 0.565714 +0.446908 0.868108 0.140540 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.776000 0.645600 0.505377 0.660715 +0.711138 0.654054 0.351351 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.173913 1 0.685000 0.542000 0.506037 0.580357 +0.529160 0.392432 0.627028 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.848500 0.681260 0.565896 0.546965 +0.837662 0.665946 0.400000 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.724500 0.578000 0.594811 0.518571 +0.895258 0.475676 0.464865 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.758500 0.572000 0.744104 0.559465 +0.878704 0.594594 0.432432 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.391304 1 0.816000 0.750000 0.530566 0.665893 +0.669788 0.713513 0.481081 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.853000 0.540000 0.505000 0.616607 +0.626758 0.582703 0.205405 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.478261 1 0.756000 0.580000 0.598727 0.672857 +0.391100 0.440000 0.675675 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.913043 0 0.912000 0.710000 0.504717 0.623928 +0.646297 0.796757 0.108108 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.434783 1 0.822500 0.710600 0.561321 0.534107 +0.877541 0.642162 0.302702 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.827500 0.538000 0.603302 0.627143 +0.799768 0.677838 0.481081 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.854500 0.702000 0.505047 0.644286 +0.513726 0.606486 0.237838 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.860000 0.678000 0.729151 0.710536 +0.505329 0.618378 0.302702 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.890000 0.562000 0.505000 0.539107 +0.682477 0.630270 0.172973 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.869565 0 0.752000 0.626000 0.505236 0.616965 +0.621741 0.606486 0.724324 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.130435 1 0.840000 0.796000 0.505000 0.636428 +0.530093 0.594594 0.205405 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.842500 0.676000 0.515047 0.662322 +0.461003 0.618378 0.286487 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.734000 0.580000 0.651556 0.551250 +0.805442 0.499459 0.513514 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.956522 0 0.733500 0.560000 0.505660 0.561250 +0.516251 0.463784 0.545946 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.391304 1 0.687500 0.564000 0.617123 0.673750 +0.481277 0.440000 0.578379 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.260870 1 0.712500 0.572000 0.505566 0.578571 +0.446984 0.499459 0.675675 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.521739 0 0.878500 0.596000 0.861321 0.642500 +0.874622 0.737297 0.172973 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.743500 0.603700 0.511792 0.601785 +0.499291 0.499459 0.513514 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.695652 0 0.829000 0.546000 0.698963 0.592500 +0.965171 0.654054 0.302702 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0 1 0.880000 0.654000 0.504764 0.565357 +0.468247 0.606486 0.172973 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 1 0 0.793500 0.618000 0.505424 0.656071 +0.637987 0.618378 0.318918 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 1 0 0.720000 0.532000 0.505754 0.616786 +0.625594 0.440000 0.562161 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.746500 0.506000 0.506179 0.603929 +0.480466 0.499459 0.627028 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.794000 0.625140 0.504953 0.665536 +0.534989 0.677838 0.529730 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.732000 0.580000 0.505472 0.603571 +0.461957 0.523243 0.627028 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.478261 1 0.857000 0.626000 0.787736 0.559465 +0.866717 0.701621 0.205405 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.592500 0.516000 0.506746 0.536785 +0.322955 0.261622 0.951351 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.956522 0 0.723500 0.528000 0.505754 0.562143 +0.717274 0.499459 0.497297 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.822000 0.672000 0.504953 0.581786 +0.439466 0.570811 0.497297 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.739130 0 0.841500 0.510000 0.590990 0.604643 +0.369497 0.309189 0.497297 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.813500 0.576000 0.860377 0.622321 +0.558776 0.654054 0.610810 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.799000 0.546000 0.539528 0.756072 +0.620303 0.618378 0.497297 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.796500 0.578620 0.505141 0.571072 +0.597065 0.547027 0.416216 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.260870 1 0.815000 0.702220 0.505000 0.589285 +0.453691 0.606486 0.513514 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.782609 0 0.835500 0.654000 0.515047 0.596607 +0.751808 0.701621 0.335136 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.827500 0.730000 0.525613 0.537143 +0.808242 0.665946 0.221622 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.478261 1 0.710000 0.578000 0.561085 0.573035 +0.921932 0.499459 0.481081 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0 1 0.833000 0.600000 0.505377 0.513035 +0.508984 0.570811 0.286487 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.970500 0.714000 0.934009 0.551965 +0.420114 0.820540 0.140540 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.808000 0.688000 0.505236 0.563393 +0.500740 0.582703 0.237838 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 1 0 0.717000 0.598000 0.505754 0.762500 +0.657812 0.475676 0.497297 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.217391 1 0.891500 0.868000 0.504858 0.600893 +0.427973 0.820540 0.108108 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.956522 0 0.736500 0.578000 0.505424 0.602322 +0.471288 0.535135 0.691892 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.304348 1 0.750500 0.560000 0.505566 0.686428 +0.558776 0.499459 0.529730 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.868500 0.592000 0.504953 0.616965 +0.470773 0.630270 0.140540 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.786000 0.616000 0.505519 0.611071 +0.424339 0.535135 0.351351 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.391304 1 0.844500 0.734000 0.603868 0.668214 +0.730206 0.689730 0.383783 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.782609 0 0.862500 0.672000 0.540566 0.739465 +0.682905 0.689730 0.367567 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.726500 0.573200 0.516746 0.588393 +0.703224 0.535135 0.627028 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.608696 0 0.764500 0.514000 0.813868 0.639643 +0.946290 0.558919 0.318918 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.775000 0.600000 0.505472 0.607500 +0.605056 0.570811 0.481081 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.869565 0 0.755000 0.538000 0.505189 0.695893 +0.602684 0.606486 0.708108 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.948000 0.700000 0.707972 0.605357 +0.503242 0.808648 0.124324 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.758000 0.576000 0.584104 0.609465 +0.567898 0.451892 0.513514 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.580000 0.516000 0.506840 0.631072 +0.506832 0.332973 0.854053 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.783500 0.686000 0.666037 0.684643 +0.439960 0.606486 0.610810 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.652174 0 0.937500 0.622000 0.875000 0.609821 +0.890977 0.844324 0.091893 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 0.043478 1 0.800500 0.552000 0.505236 0.744465 +0.588942 0.570811 0.351351 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.434783 1 0.841000 0.798000 0.543019 0.705357 +0.771787 0.737297 0.383783 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.888500 0.552000 0.584906 0.564107 +0.595199 0.535135 0.205405 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.800500 0.682000 0.505189 0.581250 +0.509510 0.523243 0.529730 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.772000 0.522000 0.508915 0.570179 +0.448576 0.499459 0.724324 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.902500 0.646000 0.541839 0.621965 +0.553429 0.701621 0.124324 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.719000 0.572000 0.505566 0.587678 +0.431276 0.547027 0.675675 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.597000 0.514000 0.506746 0.515893 +0.322559 0.261622 0.951351 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.853500 0.794000 0.504717 0.672678 +0.518797 0.582703 0.302702 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.816500 0.534000 0.836651 0.524643 +0.914512 0.642162 0.351351 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.791500 0.590000 0.505519 0.543750 +0.496294 0.547027 0.464865 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.260870 1 0.706000 0.560000 0.505802 0.587143 +0.338729 0.344865 0.724324 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.578000 0.518000 0.506792 0.753393 +0.448248 0.332973 0.967567 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.595500 0.516000 0.506792 0.516071 +0.313196 0.249730 0.951351 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.130435 1 0.831500 0.802920 0.504764 0.525357 +0.441310 0.761081 0.400000 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.750500 0.570000 0.505377 0.581429 +0.408104 0.487567 0.659459 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 1 0 0.764000 0.532000 0.505236 0.666072 +0.531629 0.654054 0.562161 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.665500 0.545860 0.532405 0.582143 +0.796222 0.392432 0.756757 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.869565 0 0.746000 0.522000 0.505566 0.614465 +0.651171 0.487567 0.578379 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.913043 0 0.748000 0.602000 0.505472 0.581607 +0.486898 0.463784 0.708108 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.714500 0.556000 0.505519 0.673750 +0.450761 0.523243 0.772973 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.730500 0.546000 0.505519 0.578928 +0.363822 0.428108 0.772973 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.521739 0 0.900000 0.636000 0.879246 0.623928 +0.859034 0.749189 0.124324 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.747000 0.604000 0.505519 0.573215 +0.526284 0.487567 0.497297 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.835000 0.786000 0.551037 0.653750 +0.488830 0.689730 0.205405 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.913043 0 0.895000 0.838000 0.504670 0.664822 +0.674124 0.737297 0.140540 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.521739 0 0.795500 0.675620 0.537453 0.595357 +0.842150 0.749189 0.432432 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.696000 0.588000 0.505896 0.779107 +0.584770 0.451892 0.529730 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.789000 0.629040 0.563821 0.642857 +0.584967 0.535135 0.448649 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.734000 0.534000 0.687217 0.594822 +0.896005 0.475676 0.481081 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.823500 0.630000 0.582123 0.618928 +0.511365 0.535135 0.448649 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.895000 0.894000 0.504764 0.608572 +0.423944 0.844324 0.108108 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.747000 0.528000 0.505283 0.606429 +0.603859 0.558919 0.594594 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.709500 0.536000 0.603537 0.535000 +0.821875 0.440000 0.464865 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.945500 0.766000 0.826038 0.520178 +0.473605 0.820540 0.124324 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.919500 0.764000 0.585141 0.641071 +0.533890 0.665946 0.172973 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.956522 0 0.828500 0.572000 0.504906 0.508750 +0.613079 0.642162 0.562161 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.391304 1 0.784500 0.633560 0.508349 0.603571 +0.698723 0.677838 0.594594 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.870000 0.530000 0.944811 0.682143 +0.861778 0.642162 0.205405 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.521739 0 0.897000 0.760000 0.725236 0.609465 +0.889813 0.689730 0.091893 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0 1 0.795500 0.637740 0.505189 0.598215 +0.574868 0.558919 0.400000 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.824000 0.732000 0.504906 0.588393 +0.378268 0.523243 0.497297 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.729000 0.538000 0.517689 0.610536 +0.562080 0.499459 0.659459 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.913043 0 0.713500 0.586000 0.505754 0.535536 +0.702302 0.451892 0.497297 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.791000 0.506000 0.842170 0.744107 +0.811931 0.630270 0.529730 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.920500 0.870000 0.504670 0.624286 +0.364096 0.844324 0.124324 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.761000 0.536000 0.505236 0.615893 +0.452353 0.487567 0.756757 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.930000 0.656000 0.763207 0.589822 +0.530773 0.737297 0.156757 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.347826 1 0.834000 0.785960 0.510424 0.653929 +0.588886 0.772973 0.416216 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.434783 1 0.796500 0.620000 0.656839 0.756428 +0.877420 0.642162 0.270271 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.972500 0.722000 0.842641 0.620535 +0.854193 0.868108 0.075675 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.913043 0 0.812500 0.634000 0.504906 0.658750 +0.505461 0.582703 0.497297 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.782609 0 0.983500 0.638000 0.695991 0.672143 +0.682444 0.868108 0.075675 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.829000 0.658000 0.712075 0.765893 +0.475942 0.630270 0.529730 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.789000 0.645300 0.505047 0.628214 +0.338465 0.523243 0.594594 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.347826 1 0.887000 0.890000 0.522736 0.568214 +0.566997 0.808648 0.108108 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0 1 0.929000 0.802000 0.504623 0.620714 +0.481772 0.832432 0.075675 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.869565 0 0.836500 0.784000 0.504858 0.626607 +0.576362 0.689730 0.351351 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.923000 0.810000 0.707736 0.701429 +0.717450 0.832432 0.091893 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.754000 0.532000 0.505424 0.682679 +0.444043 0.558919 0.610810 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.869500 0.782000 0.775849 0.583571 +0.492507 0.689730 0.205405 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.765500 0.556000 0.505472 0.671250 +0.725234 0.523243 0.481081 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.822500 0.764520 0.510330 0.558393 +0.920023 0.749189 0.270271 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.742500 0.554000 0.532405 0.523571 +0.912184 0.511351 0.416216 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.434783 1 0.762000 0.616000 0.563160 0.618393 +0.816629 0.570811 0.562161 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.608696 0 0.938000 0.546000 0.902736 0.623750 +0.895093 0.701621 0.172973 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.707500 0.564260 0.505754 0.671607 +0.352780 0.451892 0.756757 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.782609 0 0.793500 0.512000 0.627830 0.716250 +0.790570 0.630270 0.448649 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.780500 0.623580 0.505236 0.635179 +0.463221 0.654054 0.691892 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.741500 0.602000 0.693208 0.715000 +0.825323 0.547027 0.675675 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.859000 0.516360 0.813868 0.606250 +0.907760 0.570811 0.286487 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.941000 0.792000 0.792453 0.628572 +0.875268 0.868108 0.091893 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.739130 0 0.801500 0.664920 0.529528 0.587143 +0.793192 0.749189 0.432432 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.391304 1 0.843000 0.743460 0.531368 0.653750 +0.729658 0.701621 0.448649 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.478261 1 0.749500 0.534000 0.771273 0.794107 +0.919990 0.665946 0.448649 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 0.043478 1 0.872000 0.826000 0.504717 0.698572 +0.569940 0.582703 0.140540 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.260870 1 0.889500 0.878000 0.504858 0.597678 +0.426161 0.808648 0.108108 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0 1 0.866500 0.572000 0.505000 0.544285 +0.579535 0.570811 0.237838 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.846000 0.802000 0.505141 0.611428 +0.498248 0.665946 0.302702 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.779000 0.692000 0.505236 0.623572 +0.483978 0.654054 0.708108 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.521739 0 0.794500 0.504000 0.849056 0.668036 +0.806013 0.630270 0.562161 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.762000 0.640000 0.505566 0.576250 +0.507941 0.499459 0.464865 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.565217 0 0.827500 0.598000 0.803726 0.679465 +0.892042 0.558919 0.335136 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.673000 0.570000 0.506179 0.602678 +0.508732 0.404324 0.691892 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.954500 0.722000 0.754670 0.538215 +0.860142 0.856216 0.091893 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.434783 1 0.750000 0.560000 0.723161 0.821965 +0.789954 0.582703 0.610810 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.584500 0.512000 0.808113 0.587322 +0.323778 0.237838 0.854053 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.933500 0.654000 0.537122 0.522678 +0.602927 0.749189 0.140540 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.797500 0.714460 0.624953 0.594107 +0.466095 0.570811 0.302702 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.217391 1 0.763000 0.564000 0.505708 0.595893 +0.520356 0.570811 0.318918 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.565217 0 0.829500 0.606000 0.856462 0.760179 +0.882635 0.630270 0.205405 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.719000 0.583580 0.505519 0.592143 +0.395250 0.475676 0.691892 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.652500 0.518000 0.508113 0.575893 +0.480399 0.380540 0.837837 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.578000 0.512000 0.790849 0.741965 +0.489719 0.285405 0.935135 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.736500 0.568940 0.505566 0.648929 +0.536724 0.511351 0.432432 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.702500 0.558000 0.505708 0.596429 +0.353679 0.428108 0.772973 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 0.043478 1 0.745500 0.568000 0.505660 0.597322 +0.566591 0.499459 0.400000 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.866000 0.544440 0.731415 0.593215 +0.875268 0.582703 0.254054 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0 1 0.757000 0.600000 0.505189 0.665357 +0.477074 0.547027 0.789189 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.821500 0.620000 0.750519 0.683572 +0.509588 0.511351 0.464865 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.723500 0.544000 0.505896 0.621072 +0.544033 0.582703 0.578379 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.391304 1 0.836000 0.770220 0.548868 0.643571 +0.705826 0.784865 0.416216 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.762000 0.624000 0.506509 0.510535 +0.490531 0.499459 0.335136 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 1 0 0.895500 0.770000 0.504764 0.631786 +0.595845 0.713513 0.091893 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 1 0 0.749000 0.616000 0.505424 0.592143 +0.474965 0.475676 0.675675 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.826087 0 0.938500 0.640000 0.544859 0.630893 +0.650578 0.796757 0.091893 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.669000 0.550000 0.505991 0.764643 +0.683696 0.463784 0.691892 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.763500 0.552000 0.808537 0.685357 +0.540236 0.451892 0.578379 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.861000 0.582000 0.505047 0.540536 +0.524659 0.558919 0.237838 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.821500 0.642440 0.546556 0.523571 +0.935884 0.594594 0.254054 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.870000 0.734000 0.669717 0.653929 +0.529050 0.547027 0.318918 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.883500 0.632360 0.592500 0.554821 +0.866630 0.642162 0.189189 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.792000 0.624000 0.505519 0.529107 +0.500817 0.523243 0.383783 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 1 0 0.792500 0.580000 0.505189 0.535000 +0.477139 0.547027 0.562161 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.759500 0.620000 0.543019 0.517500 +0.481201 0.511351 0.351351 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.797500 0.574000 0.505377 0.601607 +0.583145 0.570811 0.562161 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.802500 0.698000 0.505377 0.500357 +0.464844 0.606486 0.254054 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.434783 1 0.806500 0.622000 0.653161 0.816607 +0.891361 0.749189 0.156757 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.913043 0 0.792500 0.534000 0.505047 0.637500 +0.361452 0.309189 0.610810 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.695652 0 0.693500 0.514000 0.671793 0.665893 +0.903260 0.463784 0.643243 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.857500 0.812960 0.504717 0.690535 +0.540345 0.796757 0.432432 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.914500 0.802000 0.772642 0.690357 +0.899495 0.737297 0.189189 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.904000 0.686000 0.657972 0.616250 +0.577459 0.606486 0.270271 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.775500 0.598220 0.597547 0.570893 +0.851107 0.606486 0.497297 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 1 0 0.759000 0.534000 0.505472 0.644107 +0.667143 0.570811 0.351351 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.797000 0.614740 0.505189 0.549107 +0.600236 0.547027 0.416216 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.260870 1 0.876000 0.878000 0.504906 0.585000 +0.476020 0.749189 0.205405 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.792500 0.573400 0.505047 0.575535 +0.609052 0.570811 0.594594 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.916000 0.662000 0.644387 0.634286 +0.948584 0.808648 0.172973 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.823500 0.668000 0.504953 0.582857 +0.442342 0.558919 0.562161 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.260870 1 0.802500 0.632000 0.505377 0.724107 +0.491113 0.606486 0.367567 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.852500 0.688000 0.505141 0.527857 +0.428181 0.594594 0.172973 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.807500 0.734000 0.505000 0.574107 +0.414109 0.570811 0.481081 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 1 0 0.771500 0.656000 0.505141 0.636250 +0.556778 0.582703 0.691892 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.086957 1 0.767500 0.622000 0.505377 0.573215 +0.338256 0.440000 0.675675 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.565217 0 0.821000 0.686000 0.708396 0.636428 +0.861448 0.654054 0.497297 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.695652 0 0.757000 0.570000 0.588679 0.653036 +0.704014 0.582703 0.643243 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.697000 0.592000 0.505802 0.653929 +0.350046 0.428108 0.805406 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.902000 0.862000 0.504670 0.584107 +0.490290 0.844324 0.108108 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.086957 1 0.824000 0.594000 0.505236 0.579643 +0.494484 0.547027 0.237838 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.652174 0 0.866000 0.632000 0.813868 0.640535 +0.859747 0.761081 0.286487 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.260870 1 0.781000 0.602000 0.505472 0.707143 +0.502551 0.594594 0.464865 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.746000 0.542840 0.505377 0.557321 +0.427842 0.499459 0.675675 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0 1 0.870000 0.836000 0.504717 0.666429 +0.606296 0.630270 0.140540 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.687000 0.554000 0.519953 0.779643 +0.867946 0.511351 0.627028 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.822500 0.542000 0.520990 0.589643 +0.664343 0.665946 0.464865 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.795000 0.657220 0.524812 0.522500 +0.808878 0.582703 0.383783 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.260870 1 0.841500 0.710000 0.505189 0.595893 +0.489521 0.630270 0.237838 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.782609 0 0.939000 0.586000 0.686321 0.633928 +0.718088 0.737297 0.108108 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.649000 0.518000 0.506226 0.611965 +0.340606 0.273513 0.821622 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.873000 0.610000 0.504953 0.699821 +0.536240 0.618378 0.270271 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.768000 0.552000 0.776793 0.598393 +0.468358 0.558919 0.643243 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.733000 0.558000 0.505472 0.612321 +0.378509 0.499459 0.691892 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.827000 0.628000 0.514198 0.685714 +0.429278 0.558919 0.302702 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.715500 0.542000 0.509953 0.612500 +0.393274 0.451892 0.675675 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.650500 0.508000 0.628538 0.641964 +0.546515 0.344865 0.837837 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0 1 0.890500 0.702000 0.504764 0.646250 +0.566384 0.677838 0.124324 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.695652 0 0.879500 0.585240 0.695047 0.621428 +0.969902 0.570811 0.140540 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.217391 1 0.765500 0.558000 0.505472 0.681607 +0.514231 0.523243 0.481081 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 1 0 0.830000 0.776000 0.504764 0.646250 +0.529774 0.701621 0.400000 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.304348 1 0.853500 0.788000 0.505047 0.545000 +0.518447 0.689730 0.189189 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.739500 0.562000 0.505566 0.501072 +0.600269 0.475676 0.464865 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 1 0 0.897000 0.726000 0.504858 0.559643 +0.555186 0.737297 0.108108 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.883500 0.654000 0.504906 0.675893 +0.609853 0.654054 0.124324 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.652174 0 0.847500 0.760000 0.568774 0.660000 +0.804104 0.701621 0.367567 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.347826 1 0.879000 0.862000 0.511132 0.613928 +0.624310 0.749189 0.189189 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.695652 0 0.954000 0.780000 0.611604 0.637857 +0.853666 0.891892 0.091893 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.901000 0.546000 0.542783 0.522143 +0.691467 0.665946 0.172973 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.878000 0.568000 0.512264 0.557321 +0.569566 0.535135 0.205405 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.521739 0 0.879000 0.628000 0.840330 0.592500 +0.880165 0.677838 0.205405 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.915000 0.732000 0.508443 0.587500 +0.521914 0.784865 0.124324 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.807000 0.568420 0.762028 0.594107 +0.830823 0.642162 0.416216 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.956522 0 0.764500 0.554000 0.505236 0.717678 +0.578864 0.677838 0.529730 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.173913 1 0.845500 0.754000 0.505141 0.538393 +0.581838 0.689730 0.270271 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.874000 0.868000 0.504906 0.621965 +0.532519 0.725405 0.254054 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.826000 0.742000 0.549670 0.550357 +0.414987 0.499459 0.464865 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.793500 0.694000 0.505424 0.612500 +0.449203 0.618378 0.432432 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.896500 0.746000 0.823302 0.590178 +0.524461 0.713513 0.172973 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.304348 1 0.637000 0.526000 0.506557 0.576429 +0.592443 0.380540 0.740540 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.645000 0.508000 0.690896 0.623572 +0.545186 0.368649 0.854053 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.766000 0.502000 0.750991 0.632500 +0.469422 0.511351 0.643243 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 1 0 0.722000 0.530000 0.505754 0.555000 +0.687275 0.475676 0.513514 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.893500 0.668000 0.559670 0.568928 +0.874533 0.689730 0.221622 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.855000 0.760000 0.504953 0.622500 +0.509709 0.665946 0.302702 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.930500 0.756000 0.743396 0.702322 +0.894292 0.832432 0.172973 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.887500 0.644000 0.505000 0.504821 +0.509961 0.642162 0.189189 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.391304 1 0.774000 0.590440 0.556934 0.573215 +0.744147 0.606486 0.643243 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.913043 0 0.912500 0.888000 0.504623 0.618214 +0.616889 0.856216 0.091893 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.894000 0.882000 0.504670 0.552143 +0.466118 0.820540 0.108108 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.824000 0.746000 0.505236 0.571250 +0.466162 0.606486 0.237838 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.782609 0 0.843500 0.658000 0.701887 0.677857 +0.741359 0.630270 0.124324 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.793000 0.633740 0.504906 0.577143 +0.428653 0.630270 0.675675 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.434783 1 0.885000 0.850000 0.630378 0.716429 +0.894841 0.761081 0.156757 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.869565 0 0.920000 0.576000 0.504953 0.578215 +0.653749 0.654054 0.156757 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.812000 0.708000 0.505000 0.609285 +0.450235 0.570811 0.513514 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.712500 0.572000 0.505660 0.618214 +0.411353 0.487567 0.821622 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.673500 0.564000 0.594104 0.592678 +0.593903 0.499459 0.610810 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.086957 1 0.901000 0.854000 0.504670 0.543750 +0.491124 0.820540 0.124324 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.391304 1 0.733000 0.598000 0.606321 0.734465 +0.714289 0.582703 0.675675 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.880000 0.522000 0.925472 0.687500 +0.881646 0.654054 0.205405 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.652174 0 0.918500 0.706000 0.744339 0.682321 +0.938717 0.618378 0.108108 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.887500 0.830000 0.504858 0.581964 +0.532124 0.749189 0.237838 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.878000 0.858000 0.504906 0.554286 +0.537326 0.737297 0.124324 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.775000 0.654000 0.505519 0.557679 +0.476678 0.558919 0.416216 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.909500 0.624000 0.525613 0.681072 +0.571564 0.582703 0.221622 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.810000 0.560000 0.794811 0.644286 +0.441903 0.547027 0.335136 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.217391 1 0.734000 0.606000 0.505896 0.554107 +0.561697 0.499459 0.529730 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.956522 0 0.723500 0.596000 0.505660 0.755179 +0.677021 0.511351 0.513514 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.728000 0.552000 0.505566 0.586785 +0.428127 0.451892 0.708108 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.347826 1 0.739000 0.630000 0.513774 0.617500 +0.480356 0.535135 0.837837 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.761000 0.610000 0.505141 0.670893 +0.435053 0 0.010811 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0 1 0.770500 0.615320 0.505189 0.624465 +0.488072 0.582703 0.610810 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.695652 0 0.843000 0.508000 0.676651 0.615357 +0.375535 0.321081 0.513514 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.652174 0 0.703500 0.560000 0.724056 0.516964 +0.662312 0.428108 0.724324 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.753500 0.638000 0.505189 0.623393 +0.438478 0.570811 0.643243 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.173913 1 0.853500 0.702000 0.505141 0.540357 +0.445526 0.677838 0.156757 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.967500 0.562000 0.837736 0.618035 +0.907882 0.820540 0.108108 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.852500 0.824000 0.510189 0.585536 +0.584824 0.701621 0.205405 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.904000 0.826000 0.671368 0.673393 +0.884160 0.772973 0.189189 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.478261 1 0.839500 0.711140 0.570519 0.642500 +0.856267 0.630270 0.400000 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.957500 0.710000 0.591698 0.515179 +0.814323 0.832432 0.075675 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.782609 0 0.946500 0.536000 0.642358 0.618035 +0.756507 0.689730 0.156757 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.720000 0.564880 0.506840 0.626786 +0.452068 0.475676 0.772973 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 1 0 0.657500 0.546000 0.506179 0.757679 +0.646066 0.428108 0.740540 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.086957 1 0.838000 0.726000 0.505189 0.543214 +0.525943 0.689730 0.254054 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.565217 0 0.845000 0.806000 0.566274 0.666250 +0.804664 0.761081 0.318918 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.897500 0.892000 0.504670 0.546250 +0.440816 0.832432 0.091893 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.733000 0.560000 0.597217 0.503572 +0.922229 0.499459 0.464865 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.720500 0.562000 0.505802 0.623035 +0.500850 0.463784 0.594594 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.652174 0 0.802500 0.582000 0.817312 0.756786 +0.938706 0.630270 0.270271 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.738500 0.520000 0.581463 0.574107 +0.456886 0.475676 0.643243 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.347826 1 0.749500 0.652000 0.509387 0.561965 +0.595857 0.594594 0.627028 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.304348 1 0.733000 0.606000 0.505708 0.663393 +0.483309 0.570811 0.740540 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.956522 0 0.825000 0.732000 0.504906 0.588571 +0.574529 0.642162 0.497297 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0 1 0.759500 0.632000 0.505472 0.592322 +0.551168 0.499459 0.464865 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.583333 0.434783 1 0.734500 0.570000 0.592595 0.637679 +0.351220 0.368649 0.708108 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.816500 0.572000 0.506037 0.551250 +0.490696 0.642162 0.610810 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.729000 0.556000 0.628066 0.672678 +0.698021 0.535135 0.594594 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.739130 0 0.766500 0.512000 0.581698 0.574821 +0.856191 0.511351 0.610810 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.758000 0.588000 0.505472 0.526071 +0.437951 0.582703 0.675675 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.845000 0.672000 0.505189 0.528750 +0.456721 0.606486 0.172973 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.817500 0.546000 0.806037 0.647857 +0.701851 0.523243 0.545946 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.993000 0.690000 0.833396 0.598036 +0.471980 0.868108 0.140540 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.652174 0 0.944000 0.526000 0.878774 0.650893 +0.913348 0.713513 0.156757 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.739130 0 0.750000 0.520000 0.534811 0.651429 +0.900121 0.535135 0.497297 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0 1 0.881000 0.666000 0.504906 0.583393 +0.525878 0.677838 0.124324 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.800000 0.614000 0.505000 0.633750 +0.424954 0.642162 0.675675 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.869565 0 0.784000 0.526000 0.505283 0.682500 +0.699383 0.618378 0.383783 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.810000 0.536000 0.588585 0.628393 +0.337049 0.321081 0.610810 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.739130 0 0.769000 0.612000 0.512736 0.757500 +0.870033 0.558919 0.432432 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.720000 0.568540 0.531698 0.665893 +0.478829 0.535135 0.772973 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.478261 1 0.863000 0.754000 0.670188 0.618928 +0.929540 0.784865 0.205405 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.913043 0 0.730000 0.528000 0.505660 0.581607 +0.742633 0.511351 0.513514 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.130435 1 0.866500 0.856000 0.504953 0.672678 +0.492638 0.749189 0.205405 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.703500 0.524000 0.735566 0.535893 +0.332240 0.309189 0.740540 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.854000 0.732000 0.504858 0.636428 +0.593814 0.594594 0.254054 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.890000 0.696000 0.685377 0.650893 +0.602082 0.665946 0.318918 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.869565 0 0.928000 0.658000 0.505236 0.604285 +0.650139 0.820540 0.108108 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.130435 1 0.830500 0.730000 0.505189 0.563572 +0.504417 0.665946 0.254054 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.347826 1 0.690000 0.552000 0.514812 0.708928 +0.577415 0.511351 0.789189 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.956522 0 0.781000 0.536000 0.505236 0.636428 +0.361704 0.309189 0.627028 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.652174 0 0.680500 0.562000 0.620471 0.717143 +0.770108 0.416216 0.724324 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.869565 0 0.805000 0.576000 0.505377 0.527143 +0.666231 0.558919 0.400000 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.901000 0.632000 0.504906 0.510179 +0.518413 0.642162 0.189189 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.826087 0 0.896000 0.726000 0.504575 0.602143 +0.720545 0.784865 0.124324 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.857500 0.504000 0.677359 0.769643 +0.512266 0.582703 0.205405 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.793000 0.596000 0.744764 0.705357 +0.510170 0.499459 0.545946 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.916000 0.868000 0.504575 0.609465 +0.513606 0.880000 0.091893 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.588000 0.518000 0.506603 0.758214 +0.453450 0.356757 0.967567 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.958333 1 0 0.803000 0.578000 0.505141 0.599464 +0.493659 0.630270 0.497297 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.869565 0 0.839000 0.712000 0.504953 0.568928 +0.709140 0.570811 0.302702 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.936000 0.738000 0.711887 0.667857 +0.920692 0.808648 0.172973 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.782609 0 0.759000 0.550000 0.506037 0.718750 +0.775102 0.547027 0.432432 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.565217 0 0.893000 0.710000 0.726368 0.631786 +0.911241 0.784865 0.189189 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.913043 0 0.809000 0.672000 0.505283 0.562143 +0.657308 0.665946 0.335136 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.958333 1 0 0.871500 0.686000 0.504906 0.581607 +0.654442 0.701621 0.205405 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.820500 0.740000 0.504953 0.602322 +0.379102 0.523243 0.464865 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.782609 0 0.843000 0.774000 0.514103 0.626250 +0.648360 0.689730 0.318918 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.739130 0 0.967000 0.712000 0.784622 0.627143 +0.845180 0.844324 0.091893 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.641000 0.526000 0.581698 0.565535 +0.316884 0.297297 0.854053 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.391304 1 0.726000 0.582960 0.564292 0.545178 +0.322077 0.440000 0.643243 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.743000 0.560000 0.505377 0.658571 +0.440783 0.487567 0.772973 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.688000 0.562660 0.505708 0.621786 +0.456041 0.487567 0.821622 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.869565 0 0.738500 0.524000 0.505708 0.539285 +0.686045 0.523243 0.416216 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.831000 0.558000 0.657972 0.610714 +0.550192 0.677838 0.578379 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.808000 0.558000 0.505283 0.601250 +0.599161 0.570811 0.383783 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.704500 0.508000 0.505896 0.600893 +0.479741 0.463784 0.691892 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.721000 0.584000 0.505802 0.688035 +0.488138 0.463784 0.724324 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.782609 0 0.806500 0.576000 0.510661 0.514286 +0.372681 0.499459 0.627028 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.817500 0.639660 0.505000 0.515535 +0.710886 0.582703 0.270271 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0 1 0.697500 0.565120 0.505566 0.648215 +0.484044 0.487567 0.724324 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.714000 0.570000 0.505566 0.569643 +0.431715 0.511351 0.691892 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.718000 0.546000 0.505943 0.620179 +0.545703 0.570811 0.562161 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.713500 0.594000 0.505754 0.512500 +0.615385 0.440000 0.497297 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.565217 0 0.926500 0.644000 0.839387 0.720178 +0.905916 0.761081 0.108108 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.916000 0.772000 0.512358 0.684286 +0.755650 0.796757 0.156757 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.913043 0 0.833500 0.647000 0.504717 0.593929 +0.497688 0.535135 0.448649 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.823500 0.544000 0.763207 0.597678 +0.875598 0.665946 0.481081 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.643000 0.520000 0.506274 0.582143 +0.336577 0.297297 0.854053 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.835000 0.560000 0.505189 0.603215 +0.511717 0.558919 0.221622 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.813000 0.696000 0.505236 0.658571 +0.471431 0.630270 0.205405 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.695652 0 0.784000 0.572000 0.622170 0.953571 +0.848068 0.642162 0.594594 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.550500 0.516000 0.507123 0.665893 +0.438456 0.332973 0.983784 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.833333 0.173913 1 0.833500 0.622000 0.505189 0.655000 +0.504647 0.582703 0.367567 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.782609 0 0.915000 0.564000 0.662264 0.621607 +0.707659 0.701621 0.124324 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.652174 0 0.842500 0.660000 0.864151 0.703571 +0.899320 0.642162 0.124324 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.725500 0.566220 0.505472 0.591607 +0.471299 0.511351 0.675675 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.795500 0.620000 0.505189 0.642143 +0.424636 0.654054 0.675675 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.846000 0.692000 0.505047 0.516428 +0.436304 0.594594 0.172973 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.814500 0.708000 0.520990 0.533215 +0.420936 0.558919 0.221622 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.217391 1 0.845500 0.694000 0.505141 0.616786 +0.492957 0.630270 0.237838 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.782609 0 0.894500 0.810000 0.509953 0.631072 +0.548589 0.749189 0.254054 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.722500 0.581060 0.534811 0.646250 +0.353427 0.463784 0.724324 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.960000 0.730000 0.504434 0.601964 +0.586527 0.891892 0.075675 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.781000 0.577040 0.652689 0.605714 +0.820823 0.630270 0.545946 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.826087 0 0.913500 0.772000 0.504575 0.621428 +0.709887 0.749189 0.124324 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.521739 0 0.926000 0.826000 0.835472 0.589464 +0.865411 0.927567 0.124324 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.787000 0.566000 0.505283 0.536964 +0.470136 0.606486 0.659459 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.658000 0.538000 0.506037 0.554107 +0.527217 0.380540 0.708108 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.702000 0.554000 0.521934 0.649285 +0.643816 0.487567 0.708108 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.478261 1 0.808000 0.596000 0.704057 0.819286 +0.923952 0.701621 0.156757 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.723000 0.575600 0.505472 0.590715 +0.427434 0.511351 0.691892 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.260870 1 0.653500 0.568000 0.506179 0.628750 +0.511553 0.392432 0.870271 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.795000 0.619300 0.505047 0.755715 +0.534407 0.677838 0.594594 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.826087 0 0.853000 0.680000 0.505283 0.678750 +0.600479 0.689730 0.400000 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.434783 1 0.865000 0.830000 0.582358 0.626428 +0.880219 0.642162 0.189189 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.947000 0.628000 0.869576 0.602857 +0.938046 0.737297 0.091893 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.819000 0.612000 0.667642 0.555357 +0.851678 0.630270 0.318918 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.391304 1 0.714000 0.530000 0.549670 0.645178 +0.806651 0.475676 0.578379 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.782609 0 0.907000 0.536000 0.675943 0.663393 +0.710184 0.665946 0.140540 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.956522 0 0.801000 0.599380 0.505141 0.594643 +0.357730 0.499459 0.562161 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.764000 0.666000 0.593396 0.713571 +0.501793 0.570811 0.756757 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.521739 0 0.898500 0.642000 0.845142 0.583393 +0.890912 0.725405 0.156757 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.774500 0.615380 0.505283 0.620893 +0.536251 0.535135 0.562161 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 1 0 0.828500 0.740000 0.504906 0.641786 +0.583102 0.630270 0.448649 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.130435 1 0.880000 0.870000 0.504764 0.535893 +0.450476 0.796757 0.156757 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.086957 1 0.789000 0.562000 0.505236 0.554465 +0.441584 0.547027 0.545946 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.956522 0 0.762000 0.532000 0.505754 0.548393 +0.683213 0.547027 0.481081 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.987500 0.686000 0.588915 0.673928 +0.423978 0.820540 0.124324 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0 1 0.730000 0.558000 0.505424 0.672143 +0.532871 0.535135 0.740540 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.739000 0.538000 0.505377 0.654107 +0.587328 0.535135 0.724324 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.771000 0.561100 0.794293 0.688572 +0.862470 0.570811 0.529730 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.744500 0.538000 0.555188 0.560893 +0.370694 0.451892 0.756757 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.851500 0.774000 0.510189 0.704107 +0.567064 0.677838 0.318918 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.822500 0.676000 0.712736 0.625179 +0.830163 0.701621 0.189189 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.826087 0 0.651500 0.538000 0.506085 0.775000 +0.490345 0.356757 0.837837 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.856000 0.792000 0.504953 0.685893 +0.505461 0.677838 0.302702 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.871000 0.822000 0.504953 0.528393 +0.498984 0.713513 0.189189 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 0.043478 1 0.861000 0.574000 0.505141 0.520357 +0.536053 0.582703 0.270271 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 1 0 0.891500 0.636000 0.504906 0.527143 +0.507876 0.630270 0.156757 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.652500 0.516000 0.506085 0.548750 +0.494593 0.380540 0.821622 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.608696 0 0.788000 0.580000 0.698302 0.708035 +0.835026 0.499459 0.481081 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.260870 1 0.673000 0.562740 0.505991 0.639643 +0.490631 0.392432 0.805406 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.913043 0 0.876000 0.658000 0.504906 0.615357 +0.697956 0.713513 0.221622 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.695652 0 0.708500 0.558000 0.653868 0.521071 +0.636593 0.451892 0.708108 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.916667 0.086957 1 0.794000 0.550000 0.505424 0.631428 +0.549050 0.582703 0.286487 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.695652 0 0.854500 0.534000 0.693444 0.591607 +0.724750 0.570811 0.416216 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.758000 0.634000 0.505519 0.573035 +0.543145 0.511351 0.481081 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.656000 0.518000 0.540471 0.575893 +0.483210 0.392432 0.854053 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.972000 0.710000 0.504434 0.575714 +0.425986 0.820540 0.140540 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.898500 0.792000 0.599056 0.650535 +0.534878 0.761081 0.270271 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.868500 0.862000 0.534717 0.690000 +0.855147 0.761081 0.140540 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.666000 0.544220 0.538161 0.563035 +0.789493 0.392432 0.789189 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.842500 0.784420 0.504906 0.564286 +0.443747 0.642162 0.318918 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.521739 0 0.664500 0.574000 0.548160 0.670357 +0.756990 0.392432 0.772973 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.695652 0 0.836000 0.598000 0.786934 0.759822 +0.915499 0.654054 0.172973 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.347826 1 0.716000 0.550000 0.509953 0.521071 +0.661149 0.451892 0.545946 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.837500 0.790000 0.504717 0.666785 +0.477402 0.749189 0.383783 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.304348 1 0.805000 0.682360 0.505000 0.650178 +0.463187 0.665946 0.562161 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.723000 0.585160 0.536227 0.668929 +0.429048 0.535135 0.675675 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.876500 0.634000 0.504953 0.636072 +0.565374 0.630270 0.189189 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.625000 0.652174 0 0.909500 0.532000 0.908491 0.666250 +0.905796 0.749189 0.156757 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.782609 0 0.757000 0.518000 0.507641 0.564286 +0.796091 0.547027 0.367567 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.304348 1 0.669500 0.556480 0.505991 0.712678 +0.514462 0.392432 0.821622 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.086957 1 0.792500 0.600000 0.505047 0.541965 +0.486359 0.582703 0.659459 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.747000 0.532000 0.505802 0.571786 +0.560741 0.606486 0.594594 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.750500 0.544000 0.505283 0.665000 +0.446393 0.499459 0.691892 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.826087 0 0.786500 0.516000 0.531604 0.653215 +0.708701 0.654054 0.351351 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.858000 0.714000 0.723161 0.585536 +0.501486 0.558919 0.221622 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.759000 0.634000 0.505519 0.624643 +0.517809 0.499459 0.464865 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.695652 0 0.682000 0.560000 0.617028 0.732857 +0.752083 0.440000 0.724324 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.726000 0.520000 0.576746 0.655178 +0.615034 0.570811 0.562161 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.875000 0.130435 1 0.770000 0.608360 0.505283 0.649107 +0.464362 0.487567 0.659459 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.858500 0.682000 0.727500 0.623214 +0.535328 0.630270 0.335136 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.086957 1 0.728500 0.558000 0.505660 0.637143 +0.341308 0.356757 0.724324 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.903500 0.856000 0.585566 0.586429 +0.733971 0.856216 0.140540 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.304348 1 0.888000 0.888000 0.505047 0.571965 +0.463999 0.808648 0.124324 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.826087 0 0.802500 0.638220 0.504858 0.573928 +0.638942 0.725405 0.529730 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.347826 1 0.838500 0.745480 0.511132 0.641786 +0.590632 0.654054 0.464865 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.756500 0.568000 0.505472 0.575179 +0.553540 0.463784 0.545946 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.852500 0.822000 0.615425 0.725536 +0.836585 0.772973 0.302702 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.831000 0.734000 0.557170 0.518929 +0.414459 0.523243 0.481081 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.778500 0.582000 0.601887 0.586250 +0.743993 0.535135 0.302702 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.086957 1 0.909500 0.868000 0.504717 0.636072 +0.425623 0.856216 0.075675 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.846500 0.789480 0.606321 0.536964 +0.430761 0.618378 0.302702 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.583333 0.434783 1 0.824000 0.742000 0.636792 0.644286 +0.879496 0.689730 0.270271 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.347826 1 0.731500 0.608000 0.508443 0.600357 +0.578436 0.523243 0.675675 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.260870 1 0.723500 0.556000 0.505660 0.585536 +0.341132 0.344865 0.708108 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.698500 0.560000 0.729339 0.721250 +0.879572 0.511351 0.481081 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.304348 1 0.752000 0.608000 0.505472 0.658215 +0.568172 0.511351 0.464865 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.730500 0.554000 0.505660 0.537678 +0.354843 0.440000 0.691892 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.956522 0 0.836500 0.712000 0.504858 0.647143 +0.606900 0.642162 0.416216 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.260870 1 0.757000 0.564000 0.505472 0.510000 +0.436841 0.511351 0.675675 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.541667 0.478261 1 0.860000 0.650000 0.766887 0.646250 +0.879924 0.665946 0.221622 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.347826 1 0.885000 0.906000 0.525519 0.563572 +0.572937 0.772973 0.108108 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 1 0 0.886500 0.600000 0.504858 0.657857 +0.596483 0.630270 0.205405 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.583333 0.608696 0 0.976000 0.736000 0.900896 0.580357 +0.826333 0.606486 0.075675 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.608696 0 0.680000 0.518000 0.791273 0.690179 +0.920868 0.475676 0.610810 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.876500 0.580000 0.504906 0.583571 +0.681171 0.630270 0.189189 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.877500 0.730000 0.770566 0.604465 +0.482221 0.618378 0.302702 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.787000 0.560000 0.505377 0.616965 +0.456668 0.606486 0.708108 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.559500 0.518000 0.507029 0.713035 +0.440047 0.332973 1 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.763000 0.552000 0.505472 0.506965 +0.434866 0.499459 0.708108 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.625000 0.391304 1 0.742000 0.572000 0.598019 0.659107 +0.798111 0.499459 0.400000 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.723500 0.602000 0.521839 0.564465 +0.580828 0.499459 0.659459 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.842500 0.552000 0.919340 0.700000 +0.465943 0.582703 0.302702 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.173913 1 0.822500 0.734000 0.505236 0.577322 +0.499258 0.665946 0.286487 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.860000 0.596000 0.505047 0.597857 +0.456392 0.618378 0.156757 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.541667 0.478261 1 0.890500 0.664000 0.783491 0.639464 +0.491519 0.665946 0.221622 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.935000 0.648000 0.900472 0.576429 +0.860570 0.832432 0.108108 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.717500 0.566000 0.505708 0.584464 +0.373833 0.440000 0.772973 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.260870 1 0.743000 0.588020 0.505189 0.527678 +0.455087 0.570811 0.627028 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.217391 1 0.907000 0.754000 0.504858 0.509821 +0.422999 0.796757 0.091893 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.939500 0.574000 0.802830 0.576072 +0.514900 0.677838 0.156757 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.652174 0 0.698500 0.544000 0.570613 0.737321 +0.527074 0.463784 0.724324 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.869565 0 0.745000 0.568000 0.505566 0.511964 +0.514955 0.463784 0.545946 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.652174 0 0.798500 0.584000 0.701746 0.719822 +0.856509 0.499459 0.448649 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.753000 0.598760 0.505189 0.514643 +0.453769 0.570811 0.578379 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875000 0.130435 1 0.745500 0.594220 0.505519 0.632143 +0.526744 0.499459 0.594594 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.875000 0.130435 1 0.765500 0.616000 0.505519 0.720357 +0.517359 0.570811 0.594594 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 1 0.855000 0.720000 0.505000 0.606785 +0.529061 0.642162 0.156757 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.554500 0.514000 0.582264 0.773929 +0.439466 0.225946 1 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.304348 1 0.703000 0.560000 0.505802 0.580536 +0.337290 0.332973 0.740540 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.869565 0 0.711000 0.568000 0.505896 0.608036 +0.596427 0.428108 0.545946 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.864500 0.658000 0.505047 0.524464 +0.494373 0.630270 0.189189 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.895000 0.526000 0.810849 0.734285 +0.564693 0.654054 0.286487 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.708333 0.739130 0 0.803500 0.590000 0.567264 0.675893 +0.790788 0.499459 0.448649 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.565217 0 0.717000 0.574000 0.591934 0.530178 +0.913490 0.511351 0.481081 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.791500 0.577500 0.693679 0.664464 +0.823249 0.642162 0.513514 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.748000 0.532000 0.505802 0.585893 +0.581147 0.618378 0.610810 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.869565 0 0.640000 0.532000 0.506179 0.797321 +0.484867 0.404324 0.837837 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.901000 0.944000 0.612642 0.595000 +0.396940 0.856216 0.140540 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.173913 1 0.836000 0.756580 0.504858 0.566786 +0.559699 0.618378 0.302702 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.958333 1 0 0.758000 0.570000 0.505708 0.634822 +0.591422 0.582703 0.432432 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.715000 0.550780 0.505519 0.595357 +0.443022 0.487567 0.756757 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.974500 0.696000 0.918349 0.638572 +0.504647 0.796757 0.124324 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.652174 0 0.771500 0.652000 0.565094 0.643036 +0.616680 0.523243 0.513514 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.875000 0.130435 1 0.847500 0.594000 0.505141 0.580536 +0.512266 0.582703 0.270271 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.721000 0.578000 0.506037 0.563572 +0.487523 0.475676 0.562161 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.714500 0.572980 0.505519 0.562500 +0.386249 0.499459 0.772973 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.912000 0.822000 0.761840 0.688750 +0.846146 0.939459 0.091893 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.766000 0.560000 0.505283 0.622143 +0.352515 0.309189 0.675675 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.708333 0.739130 0 0.810500 0.564000 0.714387 0.761786 +0.891175 0.642162 0.302702 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.565217 0 0.826000 0.566000 0.825141 0.825714 +0.929419 0.701621 0.156757 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.791667 0.217391 1 0.826500 0.644000 0.505236 0.626072 +0.501762 0.582703 0.254054 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.839000 0.794000 0.584198 0.647500 +0.512464 0.701621 0.205405 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.541667 0.565217 0 0.789000 0.616000 0.738349 0.680535 +0.884709 0.535135 0.318918 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.695652 0 0.914000 0.518000 0.686981 0.733393 +0.939661 0.737297 0.108108 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.695652 0 0.771500 0.512000 0.680094 0.617321 +0.953173 0.558919 0.367567 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.791667 0.826087 0 0.785000 0.602000 0.505236 0.554465 +0.593651 0.475676 0.578379 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.541667 0.565217 0 0.869000 0.730000 0.609293 0.612857 +0.593519 0.582703 0.562161 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.871000 0.650000 0.505000 0.643750 +0.542047 0.642162 0.189189 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.952000 0.770000 0.504481 0.599285 +0.470300 0.856216 0.075675 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.935000 0.658000 0.687453 0.588571 +0.819998 0.784865 0.140540 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.958333 0.043478 1 0.680000 0.570000 0.506085 0.581071 +0.565242 0.416216 0.675675 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.708333 0.739130 0 0.976000 0.712000 0.773585 0.673571 +0.804301 0.868108 0.075675 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.625000 0.391304 1 0.804000 0.690000 0.607547 0.588929 +0.766056 0.642162 0.172973 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.847500 0.810000 0.505047 0.642321 +0.487227 0.665946 0.302702 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.086957 1 0.857500 0.656000 0.505000 0.663393 +0.512353 0.654054 0.156757 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.795000 0.670000 0.505189 0.653750 +0.596648 0.499459 0.481081 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.851000 0.678000 0.505000 0.588750 +0.546954 0.642162 0.124324 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.666667 0.695652 0 0.797500 0.654420 0.521604 0.630535 +0.609940 0.547027 0.367567 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.583333 0.434783 1 0.816500 0.586000 0.714622 0.602678 +0.881712 0.618378 0.237838 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.916667 0.086957 1 0.888000 0.712000 0.504906 0.555535 +0.498654 0.677838 0.156757 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.708333 0.304348 1 0.816500 0.718500 0.505141 0.555893 +0.571762 0.547027 0.318918 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.768500 0.528000 0.505236 0.562857 +0.456360 0.487567 0.627028 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.717000 0.610000 0.505754 0.571786 +0.502277 0.451892 0.497297 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.916667 0.956522 0 0.765000 0.568000 0.505519 0.621428 +0.700007 0.523243 0.400000 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.666667 0.347826 1 0.810500 0.718240 0.508019 0.681607 +0.533342 0.677838 0.448649 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.828500 0.634000 0.504906 0.658571 +0.626867 0.689730 0.513514 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.608696 0 0.915000 0.568000 0.897170 0.554465 +0.891701 0.689730 0.172973 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.521739 0 0.732500 0.565020 0.607688 0.638572 +0.494604 0.475676 0.643243 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.666667 0.695652 0 0.694500 0.544000 0.543915 0.749821 +0.523858 0.451892 0.740540 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.916667 0.956522 0 0.903000 0.728000 0.504764 0.554465 +0.600851 0.772973 0.091893 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.217391 1 0.797000 0.714000 0.505189 0.547500 +0.471244 0.523243 0.448649 +0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.791667 0.826087 0 0.919500 0.596000 0.595283 0.590715 +0.492836 0.630270 0.156757 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.541667 0.565217 0 0.833000 0.536000 0.815236 0.566607 +0.717363 0.594594 0.481081 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.173913 1 0.847500 0.808000 0.505000 0.579464 +0.504440 0.677838 0.318918 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.583333 0.608696 0 0.814500 0.520000 0.840330 0.542678 +0.858233 0.606486 0.481081 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.833333 0.173913 1 0.708500 0.546000 0.505519 0.780893 +0.458160 0.558919 0.740540 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.750000 0.260870 1 0.753000 0.570000 0.505754 0.578215 +0.526690 0.570811 0.318918 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 1 0 0.776500 0.536000 0.505236 0.668750 +0.356479 0.321081 0.610810 +0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.791667 0.826087 0 0.866000 0.552000 0.504858 0.653571 +0.705519 0.665946 0.156757 +0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.625000 0.391304 1 0.713500 0.558000 0.575566 0.702143 +0.815126 0.451892 0.594594 +0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.958333 1 0 0.766000 0.552000 0.505189 0.599107 +0.561454 0.570811 0.610810 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.347826 1 0.898500 0.852000 0.522641 0.540893 +0.553420 0.796757 0.156757 +0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.708333 0.304348 1 0.793000 0.674340 0.505189 0.510535 +0.545955 0.570811 0.400000 +0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.875000 0.913043 0 0.685500 0.510000 0.505991 0.589107 +0.354613 0.309189 0.821622 diff --git a/lib/ann/fann/datasets/census-house.test b/lib/ann/fann/datasets/census-house.test new file mode 100644 index 0000000..ffb5562 --- /dev/null +++ b/lib/ann/fann/datasets/census-house.test @@ -0,0 +1,22785 @@ +11392 16 1 +0.000043 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085600 +0.000019 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000121 0.000175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000159 0.000208 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100000 +0.000059 0.000080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000022 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000008 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000254 0.000392 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.000078 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.006280 0.009285 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000088 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.330599 +0.019286 0.025399 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.307199 +0.000105 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000098 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000470 0.000653 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096800 +0.000601 0.000797 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157800 +0.002670 0.006341 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124400 +0.000646 0.000766 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111600 +0.000091 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000326 0.000475 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000165 0.000226 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000051 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078600 +0.000064 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001835 0.003037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090600 +0.000134 0.000188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106600 +0.000356 0.000478 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000058 0.000091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059800 +0.003443 0.004201 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.472799 +0.000025 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.001897 0.002386 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.184800 +0.000143 0.000196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079800 +0.000055 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000193 0.000241 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089600 +0.000035 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.211800 +0.000026 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031800 +0.000630 0.000793 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158200 +0.000191 0.000240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047800 +0.000263 0.000440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123200 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000214 0.000260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096000 +0.000109 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074600 +0.001225 0.001903 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000341 0.000405 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000029 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000022 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000120 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000300 0.000422 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000128 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000119 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000922 0.001182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.168000 +0.000063 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000375 0.000551 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000179 0.000238 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000050 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.000030 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.160400 +0.000336 0.000487 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000028 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000055 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000770 0.000793 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000560 0.000769 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.000439 0.000592 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000045 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000263 0.000520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116400 +0.001074 0.001356 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125000 +0.002625 0.003004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.287399 +0.001644 0.001882 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.306199 +0.000149 0.000224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000029 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000176 0.000228 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136200 +0.000325 0.000393 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.000027 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000142 0.000207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.000037 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000136 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.000017 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031800 +0.000035 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000413 0.000545 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077800 +0.000283 0.000354 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069200 +0.000296 0.000417 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000103 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000004 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000011 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096200 +0.000048 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.002204 0.003499 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080400 +0.000332 0.000427 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097800 +0.000061 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.000266 0.000448 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.232800 +0.000238 0.000322 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075200 +0.000560 0.000847 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.250999 +0.000686 0.001074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123200 +0.000031 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000044 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000451 0.000686 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.190200 +0.000222 0.000333 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000016 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000223 0.000288 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.001000 0.001494 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.000158 0.000211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.178400 +0.001961 0.002331 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132200 +0.000130 0.000158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090800 +0.000032 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000438 0.000586 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119400 +0.000071 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.180800 +0.000160 0.000236 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000031 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000052 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000341 0.000482 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041400 +0.000231 0.000289 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000351 0.000495 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000228 0.000352 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.000319 0.000418 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.319799 +0.000146 0.000209 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.000037 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134000 +0.000394 0.000439 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.551999 +0.004275 0.005931 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086200 +0.000061 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000082 0.000132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000168 0.000245 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.283799 +0.000763 0.000990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.209400 +0.000764 0.001106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078800 +0.000381 0.000483 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.000115 0.000163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079200 +0.000169 0.000240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.001946 0.002582 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.456399 +0.000034 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000913 0.001115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104600 +0.000134 0.000190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000017 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000040 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.001516 0.002322 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.000017 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032800 +0.000160 0.000197 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000098 0.000123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079800 +0.000074 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097600 +0.000094 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000047 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.160000 +0.000138 0.000253 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000013 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.007732 0.011616 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.202400 +0.000046 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045200 +0.000009 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000082 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000117 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000271 0.000384 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.173600 +0.000011 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000042 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000034 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091400 +0.000051 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.000044 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030200 +0.000133 0.000154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120600 +0.000035 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.000049 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000431 0.000528 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.259599 +0.000010 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000156 0.000247 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000457 0.000553 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123200 +0.000127 0.000166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.000027 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.145000 +0.000025 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.255599 +0.000046 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000134 0.000191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000107 0.000155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032200 +0.000413 0.000543 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069800 +0.000047 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000029 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030400 +0.000042 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000063 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067800 +0.000443 0.000641 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089000 +0.000006 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000199 0.000305 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071400 +0.000052 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000173 0.000239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084400 +0.000020 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000063 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000051 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.146000 +0.000038 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000010 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000054 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.000099 0.000155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000393 0.000470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.270199 +0.002935 0.004456 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.000028 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000111 0.000154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045200 +0.000410 0.000520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000128 0.000161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090800 +0.000190 0.000322 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000012 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000050 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.000064 0.000108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000270 0.000399 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000008 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000032 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000019 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000115 0.000155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000131 0.000205 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043000 +0.000020 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.002481 0.003294 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.286999 +0.000171 0.000253 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.001170 0.001460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132000 +0.000093 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099200 +0.000298 0.000420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000397 0.000613 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000139 0.000234 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000023 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.001127 0.001647 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.000791 0.001111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133600 +0.000026 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110000 +0.000386 0.000560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000018 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.005204 0.007495 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068000 +0.000256 0.000367 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000408 0.000517 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.268199 +0.000364 0.000458 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097000 +0.000094 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.000292 0.000346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130200 +0.002545 0.004323 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123200 +0.000167 0.000269 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118200 +0.000288 0.000327 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.225400 +0.000939 0.001282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075200 +0.000073 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000021 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.001503 0.002557 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000009 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000018 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000003 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.002422 0.003261 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.000216 0.000335 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000153 0.000212 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.165400 +0.000266 0.000357 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092200 +0.000035 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069000 +0.000085 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107600 +0.000256 0.000367 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.191000 +0.000083 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030400 +0.000026 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.005947 0.008863 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079200 +0.000124 0.000165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112200 +0.000250 0.000332 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083400 +0.001237 0.001630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.229000 +0.000677 0.000955 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069400 +0.001165 0.001593 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.274399 +0.000010 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070600 +0.000008 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000026 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002849 0.003313 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.160600 +0.000032 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000099 0.000200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083400 +0.000103 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000060 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151800 +0.000375 0.000516 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088600 +0.000436 0.000616 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.211600 +0.005283 0.007061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.228000 +0.000098 0.000160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000152 0.000198 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.321799 +0.001112 0.001384 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.166400 +0.000031 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000015 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.001078 0.001705 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038000 +0.000582 0.000810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065200 +0.000211 0.000348 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158800 +0.000017 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000283 0.000435 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.000071 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000181 0.000269 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091000 +0.000395 0.000503 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120200 +0.000037 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000025 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033400 +0.000900 0.001344 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076000 +0.000105 0.000144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077000 +0.000020 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000024 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000051 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077000 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000084 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000218 0.000347 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.000022 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030600 +0.000014 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000242 0.000329 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.187200 +0.002390 0.002694 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083400 +0.000285 0.000359 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.160200 +0.000024 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110800 +0.000189 0.000268 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000013 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000162 0.000240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.260799 +0.000186 0.000262 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.146600 +0.000634 0.000648 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110000 +0.003235 0.004614 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064000 +0.000061 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.001053 0.001537 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000292 0.000388 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000016 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.001682 0.002610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107200 +0.000105 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000025 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.000081 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111400 +0.000376 0.000455 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086800 +0.000015 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000581 0.000847 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.001317 0.001622 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108000 +0.000031 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000061 0.000080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110600 +0.000073 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064000 +0.000058 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000014 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000029 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.000017 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.000123 0.000160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118800 +0.000197 0.000297 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000058 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039800 +0.000018 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000015 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000012 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000478 0.000618 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.272799 +0.001279 0.001602 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081200 +0.000023 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.000168 0.000223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.002523 0.003540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129400 +0.000046 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000111 0.000152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001112 0.001735 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.186200 +0.002578 0.003238 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.316399 +0.000734 0.001005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099000 +0.000232 0.000360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.187800 +0.000012 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.000369 0.000634 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.259799 +0.000054 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000016 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038600 +0.000753 0.000935 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113600 +0.000490 0.000691 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.195200 +0.000044 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000027 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033600 +0.003722 0.004734 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.344599 +0.000688 0.000866 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093800 +0.000226 0.000339 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120000 +0.000131 0.000179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000152 0.000183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.000042 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000665 0.000983 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143000 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000098 0.000130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106600 +0.000208 0.000245 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000058 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000063 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030400 +0.000161 0.000240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.000317 0.000441 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080200 +0.001628 0.002193 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.141200 +0.000026 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.030857 0.047728 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.494799 +0.000056 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134200 +0.000204 0.000332 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000170 0.000243 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116000 +0.000024 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000024 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.297599 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000170 0.000234 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108800 +0.002779 0.004176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.190200 +0.000154 0.000227 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069800 +0.000192 0.000336 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.609799 +0.000644 0.000935 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079600 +0.000164 0.000246 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.000043 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.000033 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.000048 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076600 +0.000089 0.000119 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081600 +0.000616 0.000891 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117800 +0.000166 0.000260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.001716 0.002343 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077000 +0.000011 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000112 0.000164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032400 +0.000211 0.000275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158800 +0.000004 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000125 0.000158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000131 0.000195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.000984 0.001417 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000071 0.000102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.000155 0.000235 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036800 +0.000026 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.000524 0.000733 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151600 +0.000023 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000863 0.001014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110200 +0.000191 0.000256 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000481 0.000726 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.002234 0.003186 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000126 0.000161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100000 +0.000263 0.000286 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.508599 +0.000036 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.152800 +0.000085 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102400 +0.000089 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000122 0.000161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089800 +0.000080 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000355 0.000509 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.140200 +0.000028 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000850 0.001221 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121000 +0.000081 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030800 +0.000014 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000027 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076000 +0.000040 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078600 +0.000013 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046000 +0.000051 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000115 0.000164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.000210 0.000296 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083400 +0.000066 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.000023 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000449 0.000657 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000029 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.002206 0.003520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.401199 +0.000078 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.000282 0.000424 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000065 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000803 0.001207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.000024 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000260 0.000423 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.000172 0.000283 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078600 +0.000384 0.000448 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072400 +0.000105 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.001894 0.002748 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103400 +0.000046 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000091 0.000146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000236 0.000373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.000036 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037000 +0.000211 0.000244 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078000 +0.000602 0.000887 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.221600 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000168 0.000220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000033 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000019 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000014 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002631 0.003504 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077800 +0.000222 0.000306 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094800 +0.000132 0.000169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000219 0.000299 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091400 +0.000029 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000185 0.000269 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000695 0.000870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158800 +0.000030 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.004963 0.006174 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.487999 +0.000122 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.000449 0.000703 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.001532 0.002225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088800 +0.001031 0.001484 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.179200 +0.000012 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000270 0.000365 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.000144 0.000246 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114800 +0.000029 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075800 +0.000016 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.004332 0.005061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.213400 +0.000026 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078400 +0.000251 0.000388 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.262799 +0.000065 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000585 0.000753 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.000008 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000016 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001046 0.001227 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.265399 +0.000162 0.000206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082000 +0.000582 0.000865 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082400 +0.000280 0.000327 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.477399 +0.003736 0.004571 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.373999 +0.000093 0.000135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000099 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.186000 +0.000477 0.000597 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000452 0.000607 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118400 +0.000117 0.000189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032400 +0.000369 0.000550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000369 0.000437 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103800 +0.011331 0.019699 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.147400 +0.000052 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.001247 0.001780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101400 +0.000479 0.000603 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.177800 +0.002689 0.003396 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086400 +0.008668 0.010425 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.206800 +0.001482 0.001710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.259399 +0.000055 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000157 0.000207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086200 +0.000159 0.000237 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075800 +0.000330 0.000490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150600 +0.000672 0.001160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091000 +0.000042 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000061 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000225 0.000334 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069000 +0.000068 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112600 +0.000829 0.001248 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.232000 +0.000078 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.000634 0.000954 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000099 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132800 +0.000020 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000169 0.000216 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058400 +0.000012 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000913 0.001259 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000313 0.000458 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.000007 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000129 0.000220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093400 +0.000853 0.001091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069400 +0.000004 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000010 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000610 0.000759 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105000 +0.000581 0.000731 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000045 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000031 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088400 +0.000726 0.000963 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.184400 +0.000059 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000075 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124200 +0.000048 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000122 0.000172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047800 +0.003006 0.003852 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111200 +0.000290 0.000317 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133200 +0.000087 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069000 +0.000070 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052400 +0.000264 0.000364 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.628399 +0.000467 0.000747 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119600 +0.000374 0.000575 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066000 +0.000089 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075400 +0.000082 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.000095 0.000129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154800 +0.000063 0.000195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104200 +0.000056 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000028 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000198 0.000241 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.407999 +0.000069 0.000091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000081 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077000 +0.000745 0.001327 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.439199 +0.000027 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000520 0.000679 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.148000 +0.001395 0.003016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126600 +0.000294 0.000376 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.163600 +0.008053 0.010801 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.162800 +0.000016 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.001367 0.002297 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.000027 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000020 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000028 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084200 +0.000025 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.002347 0.003221 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.227000 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127600 +0.000017 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000028 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000039 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.449999 +0.002368 0.002952 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106800 +0.000217 0.000383 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124600 +0.000482 0.000740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052400 +0.000465 0.000702 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.000998 0.001576 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094400 +0.000482 0.000649 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064000 +0.000687 0.000825 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130800 +0.000771 0.001189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.000101 0.000129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.000304 0.000397 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.382399 +0.000402 0.000548 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103400 +0.000007 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000984 0.001207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.223400 +0.000022 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000673 0.000952 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000017 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000065 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000020 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000066 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000094 0.000133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000449 0.000720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129800 +0.004141 0.004926 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.335999 +0.015268 0.024806 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103000 +0.001050 0.001698 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052400 +0.000007 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000021 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.185600 +0.000010 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000382 0.000519 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119400 +0.000032 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000059 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000175 0.000226 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091800 +0.000002 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000017 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000192 0.000251 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034000 +0.040068 0.083955 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.188200 +0.000171 0.000241 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.000100 0.000170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000300 0.000457 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000006 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000999 0.001519 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000150 0.000202 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000033 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032400 +0.000034 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000196 0.000311 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000095 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.001859 0.002660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.171200 +0.001425 0.002134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046800 +0.002376 0.003184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.602799 +0.000231 0.000350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.000425 0.000566 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.182000 +0.000038 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132400 +0.000229 0.000328 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082400 +0.000154 0.000204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.000046 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112600 +0.000033 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000085 0.000123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.000543 0.000741 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000021 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000380 0.000467 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123000 +0.004589 0.006227 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.308399 +0.002456 0.002973 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.275199 +0.004662 0.006303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.231200 +0.000327 0.000510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.000256 0.000283 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000044 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000035 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.004024 0.004931 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.262199 +0.000180 0.000258 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000314 0.000361 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.412599 +0.000077 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037800 +0.000051 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000359 0.000499 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073400 +0.000007 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000096 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000034 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085200 +0.000330 0.000464 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000081 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.174400 +0.000350 0.000538 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.180800 +0.002092 0.003118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.189600 +0.000634 0.000788 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122200 +0.000127 0.000174 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034800 +0.000148 0.000200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000239 0.000289 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088800 +0.000391 0.000540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153200 +0.000425 0.000615 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.002693 0.003931 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.001125 0.001810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068000 +0.000506 0.000705 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047000 +0.001513 0.002006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.388799 +0.000192 0.000285 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.000561 0.000738 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.166200 +0.000020 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.256999 +0.000007 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000238 0.000284 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115600 +0.000209 0.000334 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.416599 +0.020058 0.031894 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.001004 0.001358 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034400 +0.000410 0.000486 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.167800 +0.000639 0.000859 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.590599 +0.000012 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000061 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000171 0.000256 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093400 +0.000429 0.000564 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000125 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000066 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000056 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034800 +0.000016 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000543 0.000886 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.164000 +0.000195 0.000295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000059 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.000053 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047000 +0.000062 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000008 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000491 0.000697 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000095 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.000428 0.000691 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039400 +0.000153 0.000217 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047800 +0.000696 0.001150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129800 +0.000216 0.000334 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000642 0.000786 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097600 +0.000439 0.000555 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095400 +0.000024 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000304 0.000490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.000086 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000027 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091200 +0.000045 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128600 +0.000039 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000117 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034800 +0.000417 0.000560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.000261 0.000369 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090800 +0.000181 0.000246 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.244199 +0.000316 0.000512 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.005082 0.007502 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086400 +0.000809 0.001035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000293 0.000408 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122600 +0.000019 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000007 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000462 0.000604 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.205400 +0.000654 0.000909 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121000 +0.000013 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000028 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033400 +0.000027 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.275599 +0.001085 0.001528 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.000061 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101400 +0.000177 0.000276 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071200 +0.000197 0.000260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.138200 +0.000156 0.000228 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032400 +0.000448 0.000734 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116800 +0.000050 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030600 +0.000049 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000031 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.000364 0.000533 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000259 0.000328 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108800 +0.000182 0.000261 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052400 +0.000028 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000022 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000359 0.000564 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.000176 0.000248 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000038 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000111 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.000024 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000702 0.000852 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.001748 0.002792 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.463199 +0.000015 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003549 0.003938 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.354599 +0.000088 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000063 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000062 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.012864 0.021252 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097400 +0.002440 0.002873 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.348599 +0.000039 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000225 0.000394 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.000017 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000076 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.001617 0.002319 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110200 +0.000045 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078400 +0.000134 0.000198 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094800 +0.000040 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030200 +0.000071 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.000601 0.000758 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.173800 +0.001433 0.001678 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.173800 +0.000934 0.001205 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143200 +0.000603 0.000918 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.443999 +0.000051 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039400 +0.000111 0.000144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090600 +0.000016 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000557 0.000814 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047400 +0.000179 0.000224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109600 +0.000006 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000116 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000047 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058400 +0.000103 0.000155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000219 0.000299 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131200 +0.004705 0.005870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.168200 +0.000032 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000099 0.000144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084600 +0.000013 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000022 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000171 0.000222 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000759 0.000896 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.375399 +0.000018 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000072 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.000023 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076800 +0.000714 0.000836 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.168800 +0.000116 0.000141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142800 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000175 0.000264 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036800 +0.000104 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.000029 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000033 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034000 +0.000012 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000068 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.265399 +0.001728 0.002268 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095600 +0.000325 0.000466 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000021 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000017 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.001057 0.001549 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125400 +0.001376 0.001931 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000528 0.000598 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094800 +0.000005 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000005 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000671 0.000887 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.418399 +0.000385 0.000580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090800 +0.006006 0.010452 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089000 +0.000255 0.000344 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.138200 +0.000401 0.000549 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092200 +0.000007 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000013 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000044 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003767 0.005638 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.165600 +0.000038 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037200 +0.000152 0.000224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.000045 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000052 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076000 +0.000176 0.000226 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073400 +0.000099 0.000166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000031 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.000009 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000132 0.000211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073400 +0.000120 0.000189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034000 +0.000060 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143200 +0.000107 0.000178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000325 0.000470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073400 +0.000237 0.000394 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000022 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047800 +0.000510 0.000683 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106400 +0.000286 0.000488 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000376 0.000425 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.549199 +0.000337 0.000532 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106200 +0.000107 0.000157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.171600 +0.000207 0.000287 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.000033 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000075 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000080 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000245 0.000596 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.315399 +0.000046 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000017 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000223 0.000351 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000020 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058400 +0.000239 0.000497 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.266799 +0.000006 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000083 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124800 +0.001485 0.001962 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122400 +0.000399 0.000527 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120600 +0.000754 0.001158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078000 +0.000139 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.159400 +0.000205 0.000282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000091 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113200 +0.000036 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000171 0.000215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076200 +0.000156 0.000255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000013 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036800 +0.000010 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000273 0.000366 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.002785 0.003980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.000062 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063600 +0.000671 0.001527 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132200 +0.000203 0.000271 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123200 +0.000350 0.000535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003006 0.004263 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069400 +0.000164 0.000232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068800 +0.000838 0.001237 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084800 +0.000571 0.000802 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074000 +0.000038 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000002 0.000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000242 0.000429 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.548199 +0.000028 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083400 +0.000019 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000372 0.000535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.146800 +0.000066 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000013 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.004362 0.006272 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130800 +0.000027 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100000 +0.000278 0.000389 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116400 +0.002118 0.002782 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.001403 0.002145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079800 +0.000425 0.000564 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081600 +0.000018 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093000 +0.002405 0.003599 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139200 +0.000695 0.001086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.167600 +0.000094 0.000150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034000 +0.000109 0.000163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000076 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070800 +0.000098 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036800 +0.000023 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000254 0.000341 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094600 +0.000007 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157600 +0.000051 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000041 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111000 +0.000024 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063600 +0.000830 0.001266 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.001391 0.002016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070800 +0.000017 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000061 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000085 0.000126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000019 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.000955 0.001026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.419399 +0.000074 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.001050 0.001519 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057400 +0.000481 0.000594 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.485399 +0.000499 0.000678 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082200 +0.000542 0.000747 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082800 +0.000031 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000889 0.001254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150400 +0.000134 0.000213 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000382 0.000530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000189 0.000240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000092 0.000130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099800 +0.000018 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000071 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.000074 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039200 +0.000023 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000052 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000029 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.000274 0.000392 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.263999 +0.001997 0.003615 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.145600 +0.000041 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000049 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000032 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000028 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058200 +0.000234 0.000359 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000962 0.001155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.165200 +0.000367 0.000520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052400 +0.000441 0.000589 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079000 +0.000005 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000005 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000073 0.000126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000676 0.000877 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117600 +0.000017 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000127 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000098 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047200 +0.000236 0.000309 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109800 +0.000012 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000121 0.000186 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090400 +0.000128 0.000190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.149000 +0.000098 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000744 0.000902 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142600 +0.000042 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104000 +0.000030 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000472 0.000705 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074400 +0.000032 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135600 +0.000270 0.000372 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.310999 +0.000056 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000176 0.000253 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000223 0.000327 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.000170 0.000221 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115400 +0.000003 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000045 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116600 +0.000713 0.001109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.000049 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064000 +0.005308 0.008030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095200 +0.000048 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031800 +0.000439 0.000581 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076400 +0.000028 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031000 +0.003184 0.004333 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.369199 +0.000371 0.000489 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.215200 +0.000585 0.000926 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.148200 +0.000186 0.000213 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103000 +0.000039 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000035 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.001325 0.001797 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109800 +0.000308 0.000359 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100200 +0.003017 0.004299 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000103 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000029 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002576 0.003741 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068600 +0.000012 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071800 +0.000057 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000159 0.000195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077800 +0.000049 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098400 +0.000351 0.000486 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073600 +0.000286 0.000405 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000921 0.001036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.270199 +0.000095 0.000119 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094400 +0.000052 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133000 +0.000050 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103200 +0.000044 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.000496 0.000777 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.000166 0.000174 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.289799 +0.000011 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000240 0.000361 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.000025 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000018 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000059 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000039 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000724 0.001090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000764 0.000865 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.336199 +0.000363 0.000441 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097400 +0.000065 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000185 0.000265 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000372 0.000664 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110600 +0.000193 0.000342 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130600 +0.000159 0.000220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124400 +0.000078 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034000 +0.000063 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.505399 +0.000089 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.014982 0.021684 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068000 +0.000452 0.000706 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.000064 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.000095 0.000130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000010 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000008 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000050 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000132 0.000193 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000225 0.000314 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096000 +0.004325 0.006439 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.000045 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031800 +0.000070 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000002 0.000003 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000157 0.000214 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122000 +0.006108 0.010053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123600 +0.000207 0.000240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105600 +0.036249 0.048083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157600 +0.000031 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035200 +0.000254 0.000347 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.001911 0.002794 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.147600 +0.001606 0.001990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.283799 +0.000141 0.000166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074400 +0.000055 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074400 +0.001106 0.001762 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.272599 +0.001208 0.001693 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000043 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068800 +0.000008 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000033 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.000011 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069400 +0.002592 0.003317 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.309999 +0.000136 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000058 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.001023 0.001170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000016 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000370 0.000477 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139600 +0.000638 0.000812 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.254199 +0.000029 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.000571 0.000829 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104000 +0.000025 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032000 +0.000450 0.000672 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000558 0.000722 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.148000 +0.000007 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000020 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000199 0.000294 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.000407 0.000575 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044400 +0.000093 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000547 0.000815 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093400 +0.000033 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115000 +0.000033 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.000856 0.001303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134400 +0.000919 0.000958 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.001924 0.003147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.199600 +0.000015 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000450 0.000537 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126000 +0.000023 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.225600 +0.000795 0.001142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088000 +0.004575 0.008095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111400 +0.000096 0.000146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000756 0.000949 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073400 +0.000603 0.000773 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.148400 +0.000557 0.000787 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.003398 0.005007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091600 +0.000009 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000014 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002683 0.003774 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095400 +0.000996 0.001444 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.000078 0.000102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.000211 0.000276 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000074 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000887 0.001201 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075400 +0.000847 0.001190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118000 +0.000099 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.205400 +0.000020 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000445 0.000581 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072800 +0.000833 0.001295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000086 0.000136 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.000313 0.000439 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000290 0.000335 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.719999 +0.000037 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030200 +0.000029 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000591 0.000733 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110200 +0.000156 0.000198 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.002014 0.002708 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089000 +0.000029 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036800 +0.000004 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002309 0.002881 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.252399 +0.000026 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000172 0.000237 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.176800 +0.001474 0.002502 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.173400 +0.001136 0.001707 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099800 +0.000043 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000032 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.000421 0.000620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000790 0.000966 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128000 +0.000049 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065200 +0.001231 0.001522 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086600 +0.000069 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000074 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000074 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.607199 +0.000300 0.000420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.000155 0.000190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099800 +0.000008 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085000 +0.000149 0.000178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098600 +0.000055 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043000 +0.001062 0.001475 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109200 +0.002289 0.003713 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067800 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000023 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000018 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000147 0.000174 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.181600 +0.000027 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042400 +0.000156 0.000179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.327799 +0.000832 0.001660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.403399 +0.000138 0.000235 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.205800 +0.000188 0.000211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125200 +0.000065 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.004785 0.007076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.201200 +0.000243 0.000352 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045200 +0.000226 0.000338 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081400 +0.000156 0.000232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031400 +0.005446 0.007322 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.363199 +0.005442 0.007598 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087400 +0.000929 0.001311 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.272999 +0.000202 0.000259 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000143 0.000209 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000039 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038600 +0.000057 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.209600 +0.001032 0.001635 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087800 +0.000024 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037000 +0.000773 0.001063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.000099 0.000132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064000 +0.000558 0.000713 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070800 +0.003482 0.004202 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.159400 +0.000104 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000048 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074400 +0.000547 0.000776 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127000 +0.000037 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000098 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.000068 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000282 0.000385 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000302 0.000346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139800 +0.000179 0.000251 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071000 +0.000826 0.001157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.260799 +0.000188 0.000297 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030200 +0.000042 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000051 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.001424 0.001833 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114400 +0.001433 0.002023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.163600 +0.000026 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062400 +0.004397 0.006091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.485599 +0.000826 0.001585 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113800 +0.000338 0.000445 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122800 +0.000268 0.000326 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.000222 0.000269 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073200 +0.000011 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000134 0.000203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.000052 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000066 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000663 0.000956 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000477 0.000673 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.000185 0.000225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079600 +0.000023 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000069 0.000102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036800 +0.000042 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003717 0.004549 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136000 +0.000353 0.000424 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.201600 +0.000260 0.000410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161800 +0.000120 0.000161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084400 +0.002593 0.003546 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089200 +0.000012 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000088 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089600 +0.000025 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000103 0.000160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047200 +0.002418 0.003211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081400 +0.000265 0.000369 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000169 0.000244 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062400 +0.000030 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000139 0.000188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092800 +0.001306 0.001563 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.365199 +0.000138 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077000 +0.003226 0.004932 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.160800 +0.000183 0.000253 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.000021 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105000 +0.000404 0.000649 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088400 +0.000019 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064000 +0.000608 0.000817 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.462599 +0.000018 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.449999 +0.013239 0.027850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.357599 +0.000100 0.000126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.000287 0.000408 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086200 +0.000008 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000214 0.000272 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110800 +0.000373 0.000492 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123000 +0.000012 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000056 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000019 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000370 0.000563 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069600 +0.000079 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.303199 +0.000266 0.000373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092800 +0.000091 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.000048 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.000003 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000062 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000329 0.000465 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000305 0.000450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.186600 +0.000190 0.000297 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.312199 +0.000093 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000416 0.000610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096800 +0.000141 0.000200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000017 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000452 0.000837 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.308399 +0.000319 0.000535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129800 +0.001803 0.002498 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087400 +0.001501 0.002796 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132400 +0.000020 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000052 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073200 +0.000024 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.000039 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.001157 0.001736 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079800 +0.000111 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000031 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000209 0.000292 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000043 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000067 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.001802 0.002802 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108000 +0.000636 0.000917 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.160800 +0.000690 0.001057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000318 0.000479 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099200 +0.000039 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000096 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000081 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.212000 +0.000370 0.000470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.219200 +0.000385 0.000586 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.144600 +0.000514 0.000742 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.000037 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031000 +0.000107 0.000164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112000 +0.000082 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065200 +0.000250 0.000306 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155600 +0.000044 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068200 +0.001168 0.001656 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127200 +0.000107 0.000144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000017 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047800 +0.000028 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036800 +0.000039 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000048 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000022 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106600 +0.000421 0.000502 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139600 +0.000247 0.000438 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082000 +0.000027 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000031 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045200 +0.000735 0.001217 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.147200 +0.000959 0.001385 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.269399 +0.000207 0.000298 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000026 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033400 +0.000126 0.000154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122200 +0.000267 0.000396 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074000 +0.000825 0.001205 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078600 +0.000098 0.000164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.001399 0.001888 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124000 +0.000122 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078800 +0.000054 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033600 +0.000021 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000006 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000362 0.000393 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.269999 +0.000445 0.000785 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.146200 +0.001158 0.001949 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.547599 +0.000015 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000308 0.000405 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000549 0.000665 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.160200 +0.000225 0.000247 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.217400 +0.000454 0.000652 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.000127 0.000177 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102800 +0.001047 0.001630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.000057 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000061 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143800 +0.000524 0.000842 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.145800 +0.000950 0.001124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.254599 +0.000190 0.000283 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087400 +0.000104 0.000123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.285999 +0.000033 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000151 0.000219 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082000 +0.000304 0.000451 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074600 +0.000024 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001069 0.001687 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113800 +0.000089 0.000133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000209 0.000310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.169200 +0.000283 0.000444 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043000 +0.000185 0.000242 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108000 +0.000200 0.000411 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155600 +0.000465 0.000652 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074800 +0.000011 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081800 +0.000033 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000280 0.000365 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000136 0.000229 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041400 +0.000009 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000470 0.000783 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.000021 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.001223 0.001558 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.300199 +0.000090 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135800 +0.000202 0.000284 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039800 +0.000016 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000034 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129200 +0.000503 0.000743 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000192 0.000243 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113200 +0.000053 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031000 +0.000148 0.000177 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076600 +0.000338 0.000850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086600 +0.002695 0.003374 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.382399 +0.000078 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.227400 +0.000008 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001271 0.001648 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.005123 0.006759 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126200 +0.000017 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000035 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.000226 0.000330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.248799 +0.000093 0.000135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000132 0.000197 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076400 +0.000248 0.000367 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000397 0.000402 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105000 +0.000017 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000210 0.000261 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082800 +0.000318 0.000428 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047200 +0.000008 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002184 0.003481 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.306399 +0.000048 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075200 +0.000865 0.001167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.587799 +0.000060 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068200 +0.000124 0.000186 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.230600 +0.000188 0.000248 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000015 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000394 0.000589 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070600 +0.000037 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.000228 0.000321 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108800 +0.000773 0.000974 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000424 0.000766 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136600 +0.000169 0.000234 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.000035 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073600 +0.000693 0.001040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000174 0.000203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109600 +0.000040 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000056 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.000754 0.000923 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098000 +0.000106 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.149600 +0.000769 0.001120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083200 +0.000007 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000171 0.000276 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000301 0.000394 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000059 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000124 0.000176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000113 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.000015 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085000 +0.000017 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000033 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000002 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092600 +0.004331 0.007352 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.331199 +0.000262 0.000332 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090800 +0.000180 0.000240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039400 +0.000253 0.000380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000060 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000021 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000478 0.000613 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.251199 +0.000744 0.001196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.000076 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086600 +0.005360 0.007137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095000 +0.000018 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000011 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000015 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000094 0.000137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.000187 0.000247 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.000022 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038000 +0.000012 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002252 0.003758 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.246000 +0.000066 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000150 0.000220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088600 +0.000019 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001691 0.001912 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.846598 +0.000062 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.000267 0.000320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.180400 +0.000274 0.000423 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079400 +0.000127 0.000166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120400 +0.000079 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069400 +0.000006 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001168 0.001934 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112800 +0.000013 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086200 +0.000755 0.000794 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142600 +0.000181 0.000262 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042400 +0.000079 0.000123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000021 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105000 +0.000589 0.000855 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000065 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000051 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000315 0.000390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.000444 0.000585 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000259 0.000380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083600 +0.001650 0.002118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.140000 +0.001825 0.002493 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092400 +0.000027 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.002121 0.002778 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153400 +0.001179 0.001369 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.431799 +0.000070 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000170 0.000264 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151200 +0.000058 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000060 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.000474 0.000548 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.173800 +0.000150 0.000202 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.002546 0.004544 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081600 +0.002371 0.003126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.190800 +0.000224 0.000340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000039 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001103 0.001303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.141800 +0.001100 0.001600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000139 0.000198 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091200 +0.000115 0.000161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.001016 0.001245 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.201600 +0.000160 0.000200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078800 +0.000671 0.001076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.000161 0.000231 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113600 +0.002643 0.003833 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079200 +0.000081 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000322 0.000403 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.241800 +0.000006 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000106 0.000155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081400 +0.000292 0.000409 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.000012 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000103 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033600 +0.001969 0.002540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107000 +0.000261 0.000360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.000107 0.000157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000449 0.000600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.541799 +0.002529 0.004071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143000 +0.000188 0.000307 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076600 +0.000806 0.001032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158800 +0.000026 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000011 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107600 +0.000776 0.000995 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.236600 +0.000301 0.000417 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105600 +0.000302 0.000434 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.219400 +0.000257 0.000364 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.282799 +0.000083 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000008 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000337 0.000512 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151400 +0.000020 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066200 +0.000208 0.000250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106000 +0.001058 0.001436 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135000 +0.000126 0.000178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070200 +0.000111 0.000172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000021 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.000502 0.000591 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111200 +0.000132 0.000187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036400 +0.000071 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001623 0.002698 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.311799 +0.000058 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085000 +0.000031 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000219 0.000240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137200 +0.000037 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.000040 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101600 +0.001385 0.002131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132200 +0.000104 0.000146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.000493 0.000579 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.234600 +0.000034 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032800 +0.000338 0.000496 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069800 +0.000339 0.000512 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000199 0.000241 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.000519 0.000643 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085200 +0.000163 0.000177 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.268599 +0.000038 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000422 0.000689 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047800 +0.005393 0.006918 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.355799 +0.000056 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000806 0.001044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081600 +0.000738 0.000873 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093000 +0.000085 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.006707 0.009292 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081200 +0.000021 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000567 0.000902 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000231 0.000356 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091800 +0.001922 0.003141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126800 +0.000066 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.000099 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052400 +0.000015 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.000417 0.000691 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.000024 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109200 +0.000231 0.000308 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122200 +0.000747 0.001158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119000 +0.000048 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000003 0.000003 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000793 0.001174 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126600 +0.000480 0.000600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075400 +0.000419 0.000614 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066000 +0.000003 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000032 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000451 0.000829 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100600 +0.000212 0.000297 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106400 +0.000145 0.000198 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074200 +0.001743 0.002398 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.412999 +0.000077 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.386999 +0.000204 0.000277 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106400 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000321 0.000654 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.283799 +0.000936 0.001262 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000098 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116200 +0.000088 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.479999 +0.000142 0.000189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124200 +0.000040 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081400 +0.000017 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033600 +0.000501 0.000750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087600 +0.000326 0.000508 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.297399 +0.000169 0.000233 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.000008 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.003735 0.006143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000415 0.000463 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000192 0.000241 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085200 +0.000420 0.000532 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.149000 +0.000062 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000444 0.000628 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042400 +0.000236 0.000307 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047000 +0.000014 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135000 +0.000051 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000580 0.000895 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000716 0.000964 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.174200 +0.000068 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124000 +0.000164 0.000203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105000 +0.000011 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000085 0.000135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000146 0.000199 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063600 +0.000039 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000066 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000073 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124800 +0.000239 0.000393 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.172600 +0.000027 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000302 0.000482 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000120 0.000161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.000050 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.000023 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000367 0.000548 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000121 0.000165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000022 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031800 +0.000023 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000002 0.000003 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001188 0.001828 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000103 0.000141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070200 +0.000027 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000008 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000071 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087600 +0.000488 0.000625 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083400 +0.002111 0.003166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000983 0.001486 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.000481 0.000671 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.173000 +0.000156 0.000252 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078600 +0.000107 0.000123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092600 +0.000008 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000090 0.000126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074600 +0.000025 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000160 0.000210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000083 0.000114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000719 0.001558 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.255999 +0.001532 0.002347 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080400 +0.000018 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000135 0.000196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.000330 0.000527 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111400 +0.000425 0.000694 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.160600 +0.035294 0.054557 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134000 +0.000265 0.000406 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131600 +0.000002 0.000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000205 0.000237 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102200 +0.000037 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000020 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000075 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000171 0.000224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070200 +0.000255 0.000404 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.000105 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000158 0.000221 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070600 +0.000087 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100000 +0.000026 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.000875 0.001253 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.267799 +0.000524 0.000760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069200 +0.000314 0.000420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076600 +0.004195 0.005548 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.213400 +0.000115 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071000 +0.000018 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000090 0.000147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000011 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.002663 0.003071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037000 +0.000015 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087600 +0.000162 0.000191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.808398 +0.000113 0.000176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001149 0.001284 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150200 +0.001241 0.001894 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074800 +0.000050 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156200 +0.000168 0.000231 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119600 +0.000037 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077200 +0.000027 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000458 0.000524 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.498199 +0.000061 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153200 +0.002854 0.004276 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.149400 +0.000028 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000007 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000113 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.003508 0.005248 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.304999 +0.000291 0.000408 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109800 +0.000089 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.001398 0.002170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090200 +0.001379 0.002224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153200 +0.000134 0.000239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.427399 +0.000011 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032200 +0.000035 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.004437 0.006432 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071200 +0.000061 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076600 +0.000168 0.000194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092000 +0.000122 0.000210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091200 +0.000043 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035200 +0.000353 0.000506 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097600 +0.000532 0.000678 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.626999 +0.000152 0.000196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086800 +0.000149 0.000234 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.355999 +0.000688 0.000827 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104800 +0.000128 0.000163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087000 +0.001646 0.002577 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.038674 0.074822 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122600 +0.000079 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068600 +0.000141 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085600 +0.002246 0.003182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.330199 +0.000032 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000162 0.000246 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034400 +0.000162 0.000232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047800 +0.000254 0.000327 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.410199 +0.000153 0.000214 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153000 +0.000446 0.000657 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.149200 +0.000015 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000136 0.000189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094800 +0.000250 0.000388 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038600 +0.000006 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000070 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075400 +0.000435 0.000522 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072200 +0.000107 0.000172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.195000 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000200 0.000335 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047200 +0.000046 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.003702 0.005337 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.198800 +0.000276 0.000443 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.187000 +0.000159 0.000224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.000020 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.287599 +0.000111 0.000166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000253 0.000358 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.293799 +0.001097 0.001476 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117600 +0.001133 0.001731 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107400 +0.000110 0.000133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103400 +0.000018 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.001972 0.002593 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136200 +0.000065 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080200 +0.000376 0.000441 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065400 +0.001505 0.001746 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.320599 +0.009682 0.014604 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071400 +0.000334 0.000443 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067800 +0.000421 0.000504 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.243600 +0.000109 0.000163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000346 0.000492 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084200 +0.000007 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000503 0.000769 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000133 0.000328 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000590 0.000945 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058400 +0.000494 0.000753 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069200 +0.000381 0.000546 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.004462 0.005546 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.278799 +0.039135 0.059684 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078800 +0.000649 0.000926 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000022 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000009 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000002 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000054 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087200 +0.000043 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082800 +0.000069 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037200 +0.000232 0.000342 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076400 +0.001063 0.001558 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161200 +0.000046 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000683 0.000854 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.378799 +0.000567 0.000978 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095600 +0.000105 0.000147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135400 +0.000087 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.001810 0.002255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087200 +0.001169 0.001496 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099800 +0.001613 0.003052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.243199 +0.000230 0.000310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070600 +0.000133 0.000208 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000564 0.000757 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102200 +0.000124 0.000189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110200 +0.000057 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123800 +0.000031 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.000020 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.008086 0.010322 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.280999 +0.000009 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000149 0.000207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.002319 0.002957 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109400 +0.000959 0.001412 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.000017 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.000116 0.000198 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000008 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000737 0.000892 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161400 +0.000514 0.000625 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000621 0.000791 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000229 0.000346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000248 0.000336 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000024 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000017 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000317 0.000576 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.271399 +0.000079 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.000009 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081600 +0.000216 0.000320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064000 +0.000259 0.000289 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.933798 +0.000151 0.000245 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000165 0.000205 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066200 +0.001771 0.002792 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107800 +0.000028 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030400 +0.000016 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000098 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000026 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000702 0.000954 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154800 +0.000060 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000032 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000079 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000609 0.000859 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000175 0.000254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073600 +0.000156 0.000229 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126400 +0.000024 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000005 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000820 0.001220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150800 +0.004980 0.007194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.177600 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000132 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158800 +0.000066 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079800 +0.000050 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097600 +0.000035 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.006602 0.008887 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113200 +0.000106 0.000133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.000007 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000221 0.000301 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123400 +0.000026 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158000 +0.000051 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128400 +0.000086 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037000 +0.000047 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000190 0.000250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067400 +0.000105 0.000132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083600 +0.000275 0.000698 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095000 +0.000105 0.000169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.000207 0.000310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034800 +0.001008 0.001279 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.146600 +0.000029 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.002746 0.003412 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.290399 +0.000043 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000161 0.000226 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102000 +0.000013 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000315 0.000476 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.000151 0.000209 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127600 +0.002065 0.003250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078000 +0.000126 0.000174 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097200 +0.000098 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031000 +0.000029 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000882 0.001236 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.169000 +0.000017 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046800 +0.000083 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000082 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073200 +0.000028 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.002686 0.003357 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000012 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000016 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000056 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000301 0.000473 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086600 +0.000057 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071400 +0.000731 0.000940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.181200 +0.000078 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000093 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000003 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000020 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000190 0.000228 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086200 +0.000024 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000142 0.000194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088600 +0.000025 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.001668 0.002516 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000072 0.000108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.000194 0.000255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067800 +0.000074 0.000133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070600 +0.000054 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000026 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000024 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000476 0.000661 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000171 0.000214 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072800 +0.003770 0.006435 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087800 +0.000227 0.000326 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000144 0.000166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111400 +0.001280 0.001931 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133600 +0.000010 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000895 0.001274 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074600 +0.000299 0.000433 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092000 +0.000245 0.000346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000055 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083600 +0.000053 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094200 +0.000026 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000062 0.000080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.002816 0.003780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074000 +0.000089 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099600 +0.000017 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000470 0.000652 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064000 +0.000108 0.000152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.009300 0.017891 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104200 +0.000022 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000264 0.000362 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083000 +0.000012 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000010 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000063 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059000 +0.000104 0.000129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107000 +0.000007 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158400 +0.000357 0.000504 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102600 +0.002055 0.003223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127400 +0.002085 0.003087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.185600 +0.000017 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036800 +0.000007 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000049 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.243000 +0.000764 0.001102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.175400 +0.000037 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000020 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035200 +0.000120 0.000175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.000120 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000049 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093000 +0.000143 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.001345 0.001689 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119800 +0.000355 0.000437 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.449599 +0.000344 0.000458 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.269399 +0.001113 0.001611 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123200 +0.000268 0.000423 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.221400 +0.000073 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072800 +0.010328 0.014531 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000066 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037000 +0.000074 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038600 +0.000376 0.000504 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072200 +0.000065 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000021 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032200 +0.000096 0.000125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000041 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.000013 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001579 0.002091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121400 +0.000056 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046000 +0.000008 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000230 0.000332 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000644 0.000815 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.000027 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000192 0.000248 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000749 0.000967 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.213200 +0.000055 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035200 +0.000098 0.000146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000546 0.000789 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161000 +0.000079 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150200 +0.000113 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122000 +0.000151 0.000221 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000460 0.000638 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.203800 +0.000151 0.000223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000044 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.000022 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076200 +0.000430 0.000650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130800 +0.002822 0.004963 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.833198 +0.000019 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.004570 0.007164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000101 0.000141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000105 0.000152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000074 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000784 0.001209 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069200 +0.000923 0.001402 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131400 +0.000258 0.000376 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036400 +0.000897 0.001109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128000 +0.000708 0.000875 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.228400 +0.000023 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000132 0.000163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000514 0.000741 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000265 0.000371 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106400 +0.000172 0.000224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073600 +0.000506 0.000945 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000071 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000118 0.000180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.186400 +0.000318 0.000487 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000013 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000022 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000309 0.000501 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082400 +0.000162 0.000262 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000599 0.000960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120000 +0.000015 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000047 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093600 +0.000388 0.000516 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106200 +0.000094 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.002237 0.003052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.166600 +0.000209 0.000303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058400 +0.000080 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000020 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000063 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000157 0.000182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078000 +0.000041 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000016 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000033 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000136 0.000217 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000177 0.000291 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.351599 +0.000139 0.000196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000097 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065200 +0.000209 0.000258 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083000 +0.000120 0.000170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.000463 0.000657 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.141000 +0.000030 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000273 0.000381 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.000043 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000061 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000152 0.000222 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150400 +0.000076 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.159600 +0.000109 0.000152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000012 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000329 0.000483 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038000 +0.000061 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124600 +0.000254 0.000336 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093400 +0.000101 0.000149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000083 0.000150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151600 +0.000551 0.000765 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123800 +0.001385 0.001643 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121000 +0.000316 0.000447 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.243999 +0.000096 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.439599 +0.001350 0.002451 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105800 +0.000915 0.001342 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073400 +0.000175 0.000232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000021 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.259399 +0.000749 0.001347 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086600 +0.000096 0.000135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000881 0.001503 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000657 0.000869 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.218800 +0.000836 0.001155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000340 0.000425 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000064 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000118 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.159000 +0.000065 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000142 0.000191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123600 +0.000072 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047400 +0.000144 0.000164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.255199 +0.000019 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000439 0.000545 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.189800 +0.000138 0.000183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000144 0.000197 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000254 0.000442 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104600 +0.004644 0.006988 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086000 +0.000370 0.000572 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038600 +0.000087 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078200 +0.000072 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039400 +0.000250 0.000532 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127000 +0.000012 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000023 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058400 +0.000070 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000028 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069200 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000081 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000104 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000027 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000553 0.000732 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064000 +0.000072 0.000091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102800 +0.000142 0.000196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.000295 0.000365 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.000156 0.000200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093600 +0.000029 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000012 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000276 0.000370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.308199 +0.000110 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078400 +0.000425 0.000485 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.488199 +0.000016 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000030 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000252 0.000321 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.390199 +0.000027 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000052 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000038 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.000071 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126600 +0.000099 0.000172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161600 +0.000022 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101600 +0.000434 0.000569 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.186600 +0.000133 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079400 +0.001615 0.002343 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104400 +0.000285 0.000578 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104400 +0.000373 0.000630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107400 +0.000093 0.000129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.000012 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.004314 0.005890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.231200 +0.000117 0.000190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036400 +0.000234 0.000247 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.272199 +0.000031 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000078 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086200 +0.000081 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.000670 0.000962 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079400 +0.000453 0.000822 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.166800 +0.001075 0.001477 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.002690 0.003977 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154800 +0.000030 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122200 +0.000053 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038600 +0.000006 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000149 0.000195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039800 +0.000067 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.014202 0.019367 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099000 +0.000034 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000145 0.000176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085400 +0.000693 0.001029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085200 +0.000177 0.000221 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077800 +0.000209 0.000294 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.000031 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.005168 0.007403 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.000124 0.000137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143800 +0.000065 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000875 0.001233 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.000186 0.000273 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000028 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000012 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000279 0.000343 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000221 0.000291 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031400 +0.000268 0.000330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081400 +0.000410 0.000533 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000439 0.000555 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128200 +0.000135 0.000200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000391 0.000789 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.872198 +0.000015 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069400 +0.000155 0.000222 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000447 0.000624 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107800 +0.000064 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036400 +0.000039 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082800 +0.000202 0.000273 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000548 0.000841 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000132 0.000200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069000 +0.001773 0.002611 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.314999 +0.000055 0.000080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.000046 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.216200 +0.000072 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084400 +0.000022 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000653 0.000958 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.000069 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074800 +0.000064 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.000036 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000015 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000063 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001236 0.001613 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.191000 +0.000048 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000019 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000070 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000019 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000408 0.000488 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104000 +0.013715 0.020269 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.000958 0.001161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106000 +0.000531 0.000540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000020 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.001593 0.002158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114800 +0.000048 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.006640 0.009478 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154400 +0.000112 0.000149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034800 +0.000585 0.000664 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133600 +0.000006 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000042 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000020 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000097 0.000157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032400 +0.000090 0.000133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.000029 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.000275 0.000398 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078600 +0.000048 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037200 +0.000033 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070600 +0.000266 0.000353 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.324199 +0.000017 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000168 0.000220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155000 +0.000058 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.001766 0.003006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.163000 +0.000177 0.000238 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.016139 0.021351 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.425799 +0.000005 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000615 0.000928 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078800 +0.000017 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000001 0.000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000012 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000015 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000030 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000450 0.000603 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091200 +0.004405 0.006718 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.298199 +0.000096 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000033 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.000137 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154200 +0.000283 0.000412 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059800 +0.000006 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000186 0.000279 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093200 +0.000088 0.000123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092000 +0.000016 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.163200 +0.002520 0.003665 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095200 +0.000017 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.010275 0.016212 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.317799 +0.000037 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.005245 0.007231 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.152000 +0.000300 0.000442 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.152600 +0.000071 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.000052 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.000016 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000033 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.002017 0.003689 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105400 +0.000579 0.000823 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.235400 +0.000090 0.000115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.001844 0.003024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106200 +0.000057 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046800 +0.011285 0.020318 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.172800 +0.000011 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000116 0.000181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.164200 +0.000034 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001225 0.001785 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068000 +0.001116 0.001626 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.311199 +0.000666 0.000741 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.529399 +0.033310 0.056386 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.337399 +0.000095 0.000161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000682 0.001041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137400 +0.001036 0.001350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131600 +0.002667 0.003850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092600 +0.000017 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000093 0.000127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000334 0.000521 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038000 +0.000141 0.000221 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123600 +0.000117 0.000207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.285399 +0.000225 0.000314 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000992 0.001380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136200 +0.000775 0.001036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.250599 +0.000440 0.000465 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.499599 +0.000454 0.000687 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.000016 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000859 0.001661 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.229000 +0.001063 0.001535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.001077 0.001495 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000017 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000060 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.000070 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143200 +0.000350 0.000539 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000132 0.000163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000631 0.000880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000039 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126800 +0.000130 0.000195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092600 +0.000024 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.000057 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.000007 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000023 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000115 0.000160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.000685 0.000849 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.403799 +0.000648 0.000814 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.264399 +0.000116 0.000174 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000039 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.002219 0.003669 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.196400 +0.000286 0.000508 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151000 +0.000006 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.003258 0.005643 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000225 0.000322 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.000960 0.002030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.640399 +0.000116 0.000161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104800 +0.000083 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.000065 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030600 +0.006121 0.008803 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103000 +0.000015 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043000 +0.001009 0.001474 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070600 +0.000350 0.000398 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.537199 +0.000092 0.000127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070800 +0.006150 0.008242 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153000 +0.000019 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000744 0.000875 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.339399 +0.000115 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000040 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066000 +0.000030 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082800 +0.000020 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000002 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000055 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129800 +0.000316 0.000429 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.190600 +0.000417 0.000541 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000070 0.000091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000250 0.000358 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000061 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000069 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000589 0.000734 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119800 +0.000198 0.000302 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.000039 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000020 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000061 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.000910 0.001196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095600 +0.000344 0.000475 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000019 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.007000 0.010300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.319199 +0.000103 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119800 +0.000080 0.000123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000137 0.000212 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.001612 0.002498 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072800 +0.002066 0.003060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.334799 +0.000272 0.000382 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.140000 +0.000027 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000260 0.000352 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129000 +0.000164 0.000255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000585 0.000746 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091000 +0.000070 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.001146 0.002112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.652399 +0.000754 0.001115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.248399 +0.000028 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000189 0.000232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.252999 +0.000006 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000319 0.000397 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.351599 +0.000084 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.001345 0.002281 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142800 +0.000227 0.000333 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.000080 0.000129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092800 +0.000056 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132400 +0.000034 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000020 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000481 0.000680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083000 +0.000626 0.000923 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.000253 0.000312 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086800 +0.000178 0.000298 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.171400 +0.000530 0.000646 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101000 +0.000047 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000397 0.000585 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000121 0.000157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000098 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000037 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.003991 0.006411 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081600 +0.000056 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000349 0.000524 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.000104 0.000133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.207800 +0.000088 0.000114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063600 +0.000088 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069800 +0.000047 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074800 +0.000423 0.000459 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.430999 +0.000599 0.001043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066000 +0.000405 0.000760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.205800 +0.000013 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000436 0.000485 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.723998 +0.000023 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000096 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101000 +0.000428 0.000533 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.000051 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063600 +0.000019 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000334 0.000484 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.179600 +0.000054 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074400 +0.000048 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.000021 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.000014 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000686 0.001167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074400 +0.000485 0.000611 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127000 +0.000002 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000790 0.000932 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.441199 +0.000111 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.001950 0.002438 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096200 +0.000062 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.001075 0.001356 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093600 +0.000643 0.000912 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.417799 +0.000710 0.000984 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.172200 +0.000110 0.000164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114000 +0.000099 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.000062 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000055 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000045 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031800 +0.000066 0.000136 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125600 +0.001340 0.001803 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.227000 +0.000117 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.215200 +0.001331 0.001990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131800 +0.000012 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074200 +0.000124 0.000188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000060 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.034411 0.057702 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104400 +0.000083 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000012 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000067 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101600 +0.000514 0.000840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089000 +0.000012 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000085 0.000126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.002133 0.003130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151000 +0.000009 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000206 0.000288 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.000345 0.000479 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.000024 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000141 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086200 +0.000096 0.000132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000346 0.000533 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129200 +0.001799 0.002425 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117800 +0.001464 0.002649 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.208400 +0.000550 0.001079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132000 +0.000782 0.001077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039800 +0.000144 0.000215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000061 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090800 +0.000665 0.000910 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000016 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000018 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.000059 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.000800 0.000925 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114000 +0.000053 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000042 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000072 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.000049 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036400 +0.000101 0.000137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030800 +0.000511 0.000737 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092800 +0.000140 0.000228 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104000 +0.000044 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000150 0.000207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121000 +0.000020 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000063 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.000257 0.000506 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095200 +0.000165 0.000296 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129200 +0.000177 0.000259 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.000083 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088800 +0.000148 0.000206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090400 +0.000055 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042400 +0.000090 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083200 +0.000565 0.000657 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.402599 +0.000477 0.000642 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.147800 +0.000668 0.000918 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085400 +0.000017 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000268 0.000332 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085800 +0.000048 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.001718 0.002152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.175600 +0.000243 0.000370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000028 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000047 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000203 0.000252 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.218200 +0.000032 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000086 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.000042 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000013 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000159 0.000210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103600 +0.000081 0.000130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118800 +0.000035 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066000 +0.000278 0.000323 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.000003 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.001760 0.002516 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065200 +0.000066 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039800 +0.000091 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000104 0.000149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.001078 0.001561 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.179600 +0.000155 0.000201 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.261999 +0.000221 0.000356 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114000 +0.000016 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000402 0.000766 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136200 +0.000338 0.000494 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117000 +0.000031 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.000062 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000063 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000026 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002657 0.003750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106800 +0.001623 0.002162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123400 +0.000096 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092600 +0.002040 0.002305 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.212400 +0.000264 0.000415 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000766 0.001151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.277799 +0.000041 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000008 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000076 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.226800 +0.004329 0.006620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062400 +0.001057 0.001283 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.301599 +0.000202 0.000265 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000072 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.232200 +0.000046 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000058 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.000049 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.000093 0.000127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.000016 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000069 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.000320 0.000415 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.217800 +0.000010 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000569 0.000833 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063600 +0.000081 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102400 +0.000223 0.000266 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.169200 +0.000030 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047200 +0.000116 0.000188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000049 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.000173 0.000226 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000110 0.000150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.169600 +0.000147 0.000205 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.210000 +0.000195 0.000279 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058200 +0.000776 0.000888 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.212600 +0.000027 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000001 0.000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000036 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044400 +0.015903 0.024333 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.499599 +0.000206 0.000317 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126200 +0.000057 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000279 0.000398 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000045 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038000 +0.000280 0.000329 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.223600 +0.000097 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.001338 0.001786 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078800 +0.000083 0.000114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000210 0.000297 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033600 +0.000046 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000060 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068000 +0.000009 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000402 0.000546 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.000048 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000100 0.000165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.146400 +0.000384 0.000431 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126400 +0.000102 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000022 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087600 +0.000014 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000050 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000003 0.000003 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000082 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122200 +0.000829 0.001197 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.140800 +0.000017 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000020 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000046 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.000134 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.000284 0.000331 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.164600 +0.000045 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085000 +0.000018 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000403 0.000558 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.000291 0.000452 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.000008 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000056 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062400 +0.000004 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000649 0.000903 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132200 +0.000904 0.001301 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161800 +0.000859 0.000989 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.320199 +0.000184 0.000242 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.259599 +0.000052 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000071 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103400 +0.000535 0.000772 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093800 +0.000174 0.000240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106400 +0.000193 0.000271 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000026 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035200 +0.000211 0.000256 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.589999 +0.000209 0.000248 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.001197 0.001847 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093200 +0.000203 0.000282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087600 +0.000140 0.000212 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087400 +0.004112 0.006188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080200 +0.000115 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073200 +0.000121 0.000189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065400 +0.000025 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000040 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000004 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000314 0.000457 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070600 +0.000044 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000084 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.000026 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084200 +0.000242 0.000349 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094000 +0.000333 0.000453 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.001227 0.001397 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.165800 +0.000183 0.000283 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034000 +0.000073 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.000709 0.000918 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.368599 +0.001039 0.001368 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.223200 +0.000213 0.000300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086000 +0.000078 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000424 0.000567 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121600 +0.000179 0.000219 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115000 +0.000029 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000179 0.000247 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.266399 +0.000553 0.000842 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097600 +0.000166 0.000205 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082200 +0.000163 0.000231 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068600 +0.000949 0.001296 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088600 +0.000305 0.000365 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.372799 +0.005968 0.009625 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.351399 +0.000248 0.000411 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094400 +0.000062 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000610 0.000830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085000 +0.000397 0.000685 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.212800 +0.000022 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000110 0.000149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.293399 +0.000059 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102600 +0.000162 0.000210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067800 +0.000021 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090000 +0.000351 0.000487 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000077 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.002136 0.002768 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153000 +0.012047 0.015797 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.339799 +0.000019 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000018 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000221 0.000296 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.000183 0.000287 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.182800 +0.000016 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003291 0.005239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000115 0.000179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037000 +0.000031 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000443 0.000683 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.299199 +0.000497 0.000690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129600 +0.000293 0.000391 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102000 +0.000009 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001202 0.001989 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119400 +0.002996 0.004077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.146200 +0.000065 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058200 +0.000277 0.000397 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069600 +0.000030 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000315 0.000484 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000236 0.000343 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000134 0.000176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000139 0.000160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.184200 +0.000026 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000035 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.001041 0.001454 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074800 +0.000018 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000030 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.013609 0.019324 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151000 +0.000010 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000516 0.000738 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070600 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000106 0.000147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000016 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.005090 0.006839 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104400 +0.000787 0.001177 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.000138 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.322399 +0.000051 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000073 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000259 0.000387 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124000 +0.000161 0.000212 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109800 +0.000610 0.000858 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000564 0.000826 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081800 +0.000016 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.306199 +0.006207 0.008274 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109200 +0.000386 0.000687 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129600 +0.008290 0.012682 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.292599 +0.001816 0.002539 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.261599 +0.000953 0.001210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092000 +0.000031 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000031 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001279 0.001457 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112600 +0.000241 0.000285 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047800 +0.000018 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000166 0.000239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.000063 0.000080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033600 +0.002505 0.003728 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110800 +0.001222 0.001414 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.152800 +0.000003 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000242 0.000392 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000541 0.000698 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103200 +0.000016 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000120 0.000183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031800 +0.000111 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120000 +0.000297 0.000358 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.296399 +0.001346 0.001892 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000041 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.000215 0.000247 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.394599 +0.000132 0.000208 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.339999 +0.000108 0.000170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047800 +0.000157 0.000270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000651 0.001032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123200 +0.000066 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032200 +0.000004 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000221 0.000346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067800 +0.001680 0.001973 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153800 +0.000046 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.144000 +0.000425 0.000622 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052400 +0.000021 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000177 0.000242 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000024 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.000154 0.000258 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.205000 +0.000151 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.000058 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.000012 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000085 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103000 +0.000022 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090000 +0.000395 0.000566 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.165400 +0.000034 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000170 0.000231 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151200 +0.000005 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000034 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002190 0.002840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.475599 +0.000013 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000011 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000772 0.001225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069800 +0.000035 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.002445 0.002804 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.177800 +0.000534 0.000818 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.000404 0.000613 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075400 +0.000130 0.000192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106000 +0.000045 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000434 0.000584 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104200 +0.000016 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000295 0.000434 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068600 +0.001193 0.001454 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105600 +0.000173 0.000252 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.000653 0.001020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000022 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.000261 0.000353 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.252999 +0.000015 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000189 0.000280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.000133 0.000183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000427 0.000640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.000125 0.000204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000210 0.000331 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070800 +0.000237 0.000334 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000456 0.000557 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.234200 +0.000489 0.000563 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.337399 +0.000310 0.000659 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101400 +0.000044 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000382 0.000570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.000148 0.000210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.000571 0.000892 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035400 +0.000262 0.000370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.000078 0.000102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.000030 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080400 +0.000074 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087800 +0.000031 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000116 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.000121 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.415999 +0.000132 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000179 0.000241 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.000015 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000074 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000110 0.000144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000017 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.000096 0.000124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000138 0.000211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000041 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161200 +0.000292 0.000378 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.265399 +0.000143 0.000207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075400 +0.000035 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.176000 +0.000040 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000154 0.000201 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.003397 0.005220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081400 +0.000567 0.000850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078600 +0.000328 0.000477 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000016 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000041 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.000448 0.000609 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099000 +0.000051 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074000 +0.000365 0.000553 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.000052 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.001194 0.001751 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.000011 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000068 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156200 +0.000631 0.000942 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000023 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000008 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000005 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000036 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.207200 +0.000498 0.000745 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031800 +0.001139 0.001381 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.167800 +0.000053 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092200 +0.000144 0.000190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.000517 0.000716 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068600 +0.000045 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000481 0.000809 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039800 +0.000669 0.000773 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.206400 +0.000076 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075400 +0.001655 0.002122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000051 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072200 +0.000797 0.002055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103600 +0.000166 0.000260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067800 +0.000011 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000147 0.000226 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000041 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047200 +0.000006 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000021 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000184 0.000259 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000111 0.000158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000491 0.000642 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.390599 +0.000043 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000176 0.000260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000103 0.000147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000567 0.000663 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091400 +0.000016 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000081 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032200 +0.000921 0.001130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.266999 +0.000873 0.001270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093200 +0.000122 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093000 +0.000017 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000178 0.000244 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000049 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000620 0.000786 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.203400 +0.000315 0.000513 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127600 +0.000020 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000443 0.000602 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095200 +0.000725 0.001115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037800 +0.000023 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000182 0.000259 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000026 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000938 0.001452 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.313799 +0.000013 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.000002 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000089 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.287599 +0.000017 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.000020 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000064 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046400 +0.000252 0.000410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124200 +0.000041 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049200 +0.000053 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.001462 0.001988 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126600 +0.000162 0.000220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070200 +0.000301 0.000495 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076200 +0.004825 0.007180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110400 +0.000041 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036800 +0.000003 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110000 +0.000231 0.000324 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000031 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161400 +0.014395 0.021957 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136600 +0.000317 0.000395 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110400 +0.000035 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000705 0.001023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.000236 0.000291 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108600 +0.000052 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.002920 0.004612 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.370199 +0.000086 0.000130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000026 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.002254 0.002735 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111000 +0.000748 0.000984 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104800 +0.000056 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000433 0.000711 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.000142 0.000172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086200 +0.000928 0.001301 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.184400 +0.000644 0.000742 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.659199 +0.000245 0.000274 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122400 +0.000055 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000055 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000115 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000214 0.000271 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.000082 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000043 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000329 0.000445 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109600 +0.007193 0.010410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.211600 +0.000031 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.001311 0.001717 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096000 +0.000053 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080200 +0.000136 0.000163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105000 +0.000018 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132000 +0.000277 0.000349 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082200 +0.000450 0.000554 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077200 +0.010991 0.020122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.166600 +0.000809 0.001471 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.175400 +0.000645 0.000944 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000308 0.000471 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000073 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.000136 0.000162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.001061 0.001624 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046400 +0.000509 0.000770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081400 +0.000090 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032400 +0.001533 0.001780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.168200 +0.000125 0.000170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.000206 0.000329 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.000026 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000711 0.000997 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.373799 +0.000600 0.000839 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130400 +0.001507 0.002001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126800 +0.000024 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000120 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059000 +0.000708 0.001194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058400 +0.000243 0.000382 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084800 +0.000024 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.000187 0.000273 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.001243 0.001920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000036 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.004706 0.007040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.147400 +0.000120 0.000181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.169400 +0.000054 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076600 +0.000011 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066200 +0.005428 0.008025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.190000 +0.000049 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000063 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000095 0.000135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000003 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000062 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000030 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000041 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000020 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000012 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000005 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003843 0.007786 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125800 +0.000770 0.001263 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.163800 +0.000045 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000060 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100000 +0.000044 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000007 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000037 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.000051 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.000005 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000020 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.000569 0.000787 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067400 +0.001009 0.001273 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000217 0.000310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.000537 0.000755 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073200 +0.000697 0.000901 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139600 +0.000034 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000065 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069400 +0.000923 0.001052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.695999 +0.000015 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030600 +0.000006 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135000 +0.000085 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157600 +0.000585 0.000911 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.000431 0.000444 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.162600 +0.000190 0.000292 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121600 +0.000005 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087600 +0.000169 0.000206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083400 +0.000202 0.000288 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.000150 0.000227 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000023 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000398 0.000532 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078800 +0.000087 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124400 +0.000458 0.000542 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.138000 +0.000449 0.000629 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.275799 +0.000126 0.000160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086600 +0.000820 0.001048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093000 +0.000004 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000049 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000011 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.000257 0.000428 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000359 0.000490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079600 +0.000035 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.000071 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041400 +0.000892 0.001281 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.298799 +0.001059 0.001369 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081800 +0.000036 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.000023 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000087 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069800 +0.001016 0.001344 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000107 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130400 +0.000126 0.000175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.176800 +0.001554 0.002271 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101800 +0.000198 0.000305 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.213200 +0.000160 0.000233 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102200 +0.000127 0.000176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.000037 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003199 0.004668 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102600 +0.000162 0.000206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000114 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.217200 +0.002351 0.003512 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.176600 +0.000091 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092600 +0.000144 0.000185 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075800 +0.000314 0.000596 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.169400 +0.000033 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000624 0.000874 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000033 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161600 +0.000460 0.000559 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.171000 +0.000121 0.000174 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000313 0.000409 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077400 +0.000081 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.000223 0.000345 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.010947 0.014912 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072200 +0.000009 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000154 0.000225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142800 +0.000487 0.000680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049200 +0.000920 0.001392 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131000 +0.000054 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075800 +0.000430 0.000629 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070200 +0.000032 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044400 +0.000528 0.000771 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046800 +0.000148 0.000192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000127 0.000181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.000128 0.000154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.000003 0.000003 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096200 +0.000109 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088000 +0.001053 0.001239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084000 +0.000063 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000043 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000040 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000644 0.000958 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000159 0.000222 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086800 +0.000207 0.000258 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.000002 0.000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.006674 0.015412 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.358599 +0.000108 0.000144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.000156 0.000225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.215200 +0.000014 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001981 0.003932 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.687799 +0.000236 0.000354 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000063 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000078 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069800 +0.000048 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000513 0.000896 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.300399 +0.000278 0.000406 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000051 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.293799 +0.000150 0.000157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.301199 +0.000108 0.000164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070200 +0.000161 0.000225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101800 +0.001792 0.002756 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.149200 +0.000968 0.001447 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158000 +0.000073 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000291 0.000445 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.217200 +0.000016 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000782 0.001319 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.000389 0.000493 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094600 +0.000229 0.000278 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088400 +0.014710 0.018431 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136400 +0.000025 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000077 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150200 +0.001878 0.002512 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135800 +0.000190 0.000261 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088600 +0.000389 0.000578 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000150 0.000223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.000209 0.000282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085400 +0.000005 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000338 0.000487 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084400 +0.000017 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.001881 0.002338 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123600 +0.000196 0.000313 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000028 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000118 0.000182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.000161 0.000287 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.269399 +0.001042 0.001210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.141400 +0.000770 0.000987 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099400 +0.000597 0.000928 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.000334 0.000499 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.000054 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000052 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000007 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000079 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000029 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031800 +0.000344 0.000419 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117400 +0.000134 0.000181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047800 +0.000069 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.000090 0.000127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000236 0.000303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096800 +0.000030 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.000211 0.000309 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099600 +0.000417 0.000569 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.576399 +0.001129 0.001644 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.000086 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036800 +0.000481 0.000533 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.370799 +0.000179 0.000239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000288 0.000325 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.457199 +0.000038 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096600 +0.000013 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000821 0.001014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.168200 +0.000026 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121800 +0.000009 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.207800 +0.000299 0.000452 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037800 +0.000049 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000009 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000056 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000101 0.000126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.001528 0.002391 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000140 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097200 +0.000160 0.000179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.201400 +0.000143 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000033 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.001995 0.003114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.362199 +0.000866 0.001263 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067800 +0.000035 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075800 +0.000332 0.000416 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.314199 +0.000056 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.000176 0.000212 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111000 +0.001634 0.002091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.285999 +0.000005 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000563 0.000853 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101800 +0.000841 0.001732 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083200 +0.000204 0.000299 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039800 +0.000396 0.000616 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.000162 0.000233 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094000 +0.000025 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000688 0.001000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052400 +0.000151 0.000208 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030800 +0.000236 0.000336 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.191000 +0.000106 0.000166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000738 0.001025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.352599 +0.000153 0.000220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052400 +0.001049 0.001201 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.231800 +0.000466 0.000679 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104800 +0.000089 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.257799 +0.000033 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.000471 0.000646 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101400 +0.000039 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065400 +0.001227 0.001380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129800 +0.000316 0.000394 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125000 +0.000240 0.000371 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057400 +0.000720 0.000947 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111600 +0.000385 0.000492 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078600 +0.000178 0.000312 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000883 0.001303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.275599 +0.000651 0.000962 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115400 +0.000237 0.000293 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.211200 +0.000665 0.000742 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.357199 +0.000262 0.000331 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.438199 +0.000087 0.000136 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000034 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042400 +0.000032 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000042 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000938 0.001258 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108400 +0.000048 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000264 0.000386 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035400 +0.000153 0.000213 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.000015 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.004587 0.005995 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131000 +0.000015 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000963 0.001172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.450199 +0.000124 0.000170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034800 +0.000758 0.001129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065200 +0.000161 0.000217 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000174 0.000231 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.002481 0.003413 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.209400 +0.000133 0.000186 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128800 +0.000009 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000080 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000421 0.000585 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.000066 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000020 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000026 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104600 +0.000217 0.000295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.204000 +0.001114 0.002203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000097 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038600 +0.000184 0.000255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.000240 0.000383 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.207000 +0.000127 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161600 +0.001117 0.001506 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000084 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000072 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000161 0.000230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.000042 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.000022 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000049 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.007152 0.010369 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.205600 +0.000125 0.000182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000202 0.000301 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.404599 +0.000755 0.000885 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.259399 +0.000053 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.000008 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.001086 0.001430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100200 +0.002743 0.004465 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.000059 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000010 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000171 0.000258 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.000048 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059800 +0.000118 0.000164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032000 +0.000218 0.000298 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078800 +0.000273 0.000308 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.213200 +0.000100 0.000126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084000 +0.000827 0.001081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072400 +0.000062 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000165 0.000278 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000261 0.000362 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.000092 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000054 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000007 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000059 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000073 0.000114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039400 +0.000035 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.000067 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000048 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.590799 +0.000067 0.000091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000101 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100400 +0.004062 0.007143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094200 +0.000035 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.000012 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.185400 +0.000537 0.000779 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129200 +0.000043 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.001892 0.002261 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.344799 +0.002354 0.003528 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137400 +0.000026 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000034 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088000 +0.000006 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000075 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000045 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069400 +0.000706 0.000941 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.000762 0.000878 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.176600 +0.000672 0.000825 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120400 +0.000076 0.000097 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000550 0.001100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.360199 +0.000450 0.000663 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.243199 +0.001025 0.001312 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084600 +0.000014 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000006 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000463 0.000760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042400 +0.000079 0.000115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.000030 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001068 0.001782 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090000 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000183 0.000339 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.183400 +0.000489 0.000620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000194 0.000250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143800 +0.000134 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000124 0.000133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.188800 +0.001789 0.002005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.336599 +0.000004 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000285 0.000423 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102600 +0.000399 0.000582 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.000008 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.574999 +0.000136 0.000200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.275199 +0.000541 0.000793 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093200 +0.006169 0.011323 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095600 +0.000087 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069600 +0.000170 0.000182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.289999 +0.000042 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.000088 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037200 +0.000046 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001484 0.002250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100000 +0.000020 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000234 0.000319 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000026 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046400 +0.000084 0.000133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.224123 0.363614 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118000 +0.000028 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000455 0.000583 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111400 +0.005397 0.006237 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122000 +0.000264 0.000363 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077200 +0.000028 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000950 0.001175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.169200 +0.000133 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000258 0.000341 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.258799 +0.000117 0.000172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038600 +0.000109 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.000060 0.000091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000022 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000168 0.000228 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093400 +0.000549 0.000720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073200 +0.000080 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.000077 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112200 +0.000552 0.000801 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.882598 +0.002970 0.003522 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.175800 +0.000005 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000173 0.000255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.003764 0.005543 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.000081 0.000097 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.862198 +0.000161 0.000236 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.002025 0.002378 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.279599 +0.000051 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095400 +0.001411 0.001422 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085000 +0.000025 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000013 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000106 0.000163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.000223 0.000271 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.002480 0.003754 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128800 +0.000017 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000005 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000414 0.000593 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000059 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000106 0.000150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000016 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000087 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000196 0.000303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000392 0.000538 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087400 +0.004619 0.007621 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000010 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000439 0.000632 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082400 +0.000387 0.000564 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070200 +0.000332 0.000422 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.178000 +0.044955 0.056943 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091000 +0.000047 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000414 0.000488 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.512199 +0.000111 0.000191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000206 0.000222 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000026 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000810 0.000954 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031400 +0.002601 0.003625 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.169200 +0.000139 0.000182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.172600 +0.001776 0.002640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130800 +0.000032 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.001370 0.001851 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102800 +0.000018 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000200 0.000272 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.169000 +0.000163 0.000244 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114600 +0.000044 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000070 0.000119 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034800 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003261 0.004744 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.271799 +0.001244 0.001519 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.661399 +0.000195 0.000229 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.159000 +0.000160 0.000201 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074000 +0.000490 0.000713 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052400 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000043 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000105 0.000169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000138 0.000203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000069 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000107 0.000144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000410 0.000498 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.436599 +0.000034 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.144600 +0.000131 0.000215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000329 0.000377 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.542799 +0.000702 0.001064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.394199 +0.000220 0.000366 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000292 0.000384 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.138800 +0.000021 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000112 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000046 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000105 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039400 +0.001137 0.001802 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125800 +0.000022 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000787 0.001161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.002474 0.003466 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.269799 +0.000071 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.017401 0.021062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131200 +0.000362 0.000448 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086600 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000059 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098400 +0.001468 0.001903 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.000012 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100800 +0.000568 0.000717 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.182200 +0.000101 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103400 +0.000013 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107600 +0.000134 0.000195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000039 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.004446 0.007515 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091600 +0.000061 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075400 +0.000086 0.000129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032400 +0.000367 0.000432 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136000 +0.001359 0.002091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079000 +0.001145 0.001662 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096600 +0.000138 0.000211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.449599 +0.000089 0.000127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128000 +0.000029 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000045 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.236800 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000049 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000459 0.000576 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.256799 +0.000318 0.000453 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.173200 +0.000028 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.009279 0.011930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.295599 +0.001293 0.001912 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.344999 +0.000043 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000213 0.000307 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000118 0.000169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157800 +0.001544 0.002097 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117200 +0.000144 0.000181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090600 +0.000525 0.000662 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069800 +0.000045 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.002282 0.002887 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110800 +0.000069 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.000206 0.000251 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.144000 +0.087193 0.131206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119000 +0.000097 0.000126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.000114 0.000157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101600 +0.000113 0.000165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000489 0.000630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.294199 +0.000296 0.000378 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000017 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002064 0.008005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.491799 +0.000118 0.000202 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131600 +0.001831 0.002194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.321999 +0.000029 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000751 0.000998 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.191000 +0.004129 0.006893 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065400 +0.000035 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.000023 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000537 0.000734 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.144800 +0.000489 0.000559 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.290599 +0.000027 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000016 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000071 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000155 0.000224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.000674 0.000836 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.217200 +0.000091 0.000154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000316 0.000478 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000655 0.001012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.198000 +0.000001 0.000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000922 0.001312 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.001023 0.001244 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.215600 +0.002078 0.003023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.168200 +0.000270 0.000376 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.611999 +0.000236 0.000316 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046000 +0.000035 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000037 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000077 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139200 +0.000030 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083600 +0.000051 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000237 0.000249 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150000 +0.000081 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.000464 0.000537 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103200 +0.001280 0.001651 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154200 +0.000107 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032200 +0.000067 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.000231 0.000298 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117600 +0.000011 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.001190 0.001386 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.364399 +0.000215 0.000315 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000105 0.000136 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000232 0.000310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.141600 +0.000300 0.000484 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.000071 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000486 0.000568 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107600 +0.000226 0.000315 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.165800 +0.000073 0.000119 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030400 +0.001216 0.001848 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.184400 +0.000030 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000020 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000331 0.000417 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.382199 +0.000050 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.000373 0.000556 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000847 0.001436 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132800 +0.000003 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000101 0.000133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.000070 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000299 0.000395 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094000 +0.000580 0.000683 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.178800 +0.000053 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032000 +0.000347 0.000607 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.253399 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000301 0.000410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.250199 +0.000351 0.000451 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000551 0.000784 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081400 +0.000064 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.000173 0.000259 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000534 0.000841 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.012272 0.020342 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075400 +0.000018 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034800 +0.000013 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000005 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000203 0.000289 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110800 +0.000034 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100000 +0.000044 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002944 0.003883 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.352399 +0.000031 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000062 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000631 0.000806 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.406799 +0.000155 0.000222 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.000007 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000033 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099400 +0.000046 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.000090 0.000158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000577 0.000826 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134000 +0.001216 0.001395 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126600 +0.000065 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.149400 +0.001019 0.001661 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000057 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079200 +0.000481 0.000682 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095200 +0.000013 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000042 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000070 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089600 +0.000319 0.000469 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.000099 0.000157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000070 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.000060 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000439 0.000678 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.000044 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.000093 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129000 +0.000076 0.000137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000010 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000021 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041400 +0.000815 0.001051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.239400 +0.000017 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000113 0.000150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092000 +0.028264 0.043715 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083200 +0.000080 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097800 +0.000482 0.000633 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086200 +0.000894 0.001057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.201800 +0.000370 0.000513 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081800 +0.000107 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.000117 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000261 0.000371 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000048 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002523 0.003998 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.651799 +0.000028 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000008 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000299 0.000453 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.138000 +0.000312 0.000494 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.002501 0.003442 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089600 +0.000130 0.000176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.000657 0.000990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069200 +0.000018 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.000243 0.000404 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.339999 +0.000011 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000192 0.000243 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.148600 +0.000675 0.000936 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135600 +0.003058 0.003814 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.159600 +0.000016 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078000 +0.000099 0.000144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.001993 0.002757 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100200 +0.000037 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.000009 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.000203 0.000232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.312599 +0.000358 0.000385 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.418199 +0.000478 0.000718 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.319599 +0.000310 0.000443 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000870 0.001217 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.152600 +0.000677 0.001008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089400 +0.000008 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000111 0.000149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058200 +0.000065 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000126 0.000160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069800 +0.000058 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031800 +0.000125 0.000149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092600 +0.000445 0.000627 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.188600 +0.000019 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.005116 0.007532 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133200 +0.000152 0.000212 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.167200 +0.001347 0.001979 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067400 +0.000082 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079800 +0.001357 0.001921 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099800 +0.000053 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087200 +0.000030 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089200 +0.000020 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044400 +0.000594 0.000807 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083200 +0.000013 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000625 0.000830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.000187 0.000227 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102000 +0.000113 0.000179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.000702 0.000836 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098200 +0.000017 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000278 0.000451 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000408 0.000509 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104400 +0.000012 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.004830 0.009122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116000 +0.000053 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000353 0.000543 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000027 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000036 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000338 0.000397 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104400 +0.000010 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081600 +0.000016 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000639 0.000831 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.140200 +0.000971 0.001175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.361399 +0.000054 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035400 +0.000028 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030400 +0.000101 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074200 +0.000422 0.000670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000147 0.000213 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.000091 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093800 +0.000108 0.000150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.000019 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035400 +0.000033 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030400 +0.000045 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000382 0.000592 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000110 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108800 +0.000082 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076600 +0.000100 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039400 +0.000071 0.000115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033600 +0.000563 0.000774 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083000 +0.000074 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070200 +0.000404 0.000571 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112000 +0.002424 0.003339 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.253599 +0.000593 0.000867 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087200 +0.000052 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000469 0.000780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120600 +0.001691 0.002427 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067800 +0.000064 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091400 +0.000161 0.000200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065400 +0.014859 0.020557 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.203200 +0.000766 0.001079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.196000 +0.000242 0.000303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.474999 +0.000847 0.001134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119200 +0.000020 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039400 +0.000054 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000089 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074000 +0.009029 0.012366 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.140200 +0.004536 0.006264 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.226400 +0.000006 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000183 0.000215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154600 +0.000111 0.000137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105600 +0.003179 0.005371 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.183400 +0.000131 0.000186 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042400 +0.000027 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000102 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092600 +0.000090 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038600 +0.000198 0.000253 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098000 +0.000265 0.000402 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.000638 0.001053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.000042 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000926 0.001316 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139600 +0.000060 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000112 0.000162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120600 +0.000379 0.000478 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094800 +0.000155 0.000226 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087400 +0.000295 0.000387 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.000554 0.000645 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137400 +0.000070 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066000 +0.000026 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033600 +0.000741 0.001122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142400 +0.000186 0.000264 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000455 0.000628 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078600 +0.000505 0.000579 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.261199 +0.000622 0.000962 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.144000 +0.001143 0.001467 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.268999 +0.000001 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000940 0.001268 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.377399 +0.000213 0.000319 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086200 +0.000137 0.000164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119000 +0.000539 0.000698 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107200 +0.000239 0.000342 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000325 0.000435 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.348199 +0.000008 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000043 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000398 0.000641 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096600 +0.004346 0.007910 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.303199 +0.000162 0.000205 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114600 +0.000030 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059000 +0.000103 0.000195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.000463 0.000569 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134400 +0.000477 0.000842 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000026 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000799 0.000972 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086200 +0.000041 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.000027 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000974 0.001180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.399399 +0.000169 0.000263 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.000057 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000092 0.000126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000188 0.000275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000052 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001897 0.003480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131400 +0.000054 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000026 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000036 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000028 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000030 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071200 +0.000074 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.000368 0.000602 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000311 0.000474 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.170400 +0.000536 0.000718 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.384999 +0.000160 0.000223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.180000 +0.000110 0.000152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000326 0.000465 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.144200 +0.000917 0.001351 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071400 +0.000046 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000104 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116200 +0.000624 0.001079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066200 +0.000272 0.000363 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102600 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.005992 0.008608 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.212600 +0.000227 0.000356 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.000389 0.000411 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.365399 +0.000137 0.000206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.001575 0.002365 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117000 +0.000039 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002943 0.004505 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.525399 +0.000059 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044400 +0.000808 0.001049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000149 0.000180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.000065 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075200 +0.003215 0.006036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108200 +0.000553 0.000775 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157400 +0.000364 0.000600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154200 +0.000259 0.000346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112000 +0.000035 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157200 +0.001158 0.001754 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.163000 +0.000960 0.001255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135200 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000084 0.000133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090600 +0.000508 0.000642 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.278599 +0.000049 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000081 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.001889 0.002733 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096600 +0.000487 0.000647 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153800 +0.000005 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.267599 +0.000113 0.000165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.179600 +0.000061 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000280 0.000328 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.445199 +0.000067 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094800 +0.000121 0.000181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161000 +0.000024 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000048 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081800 +0.000340 0.000482 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107600 +0.000018 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000027 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068200 +0.000047 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000632 0.000917 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103600 +0.000036 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076200 +0.000357 0.000526 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122800 +0.000008 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000199 0.000271 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000100 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000029 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000026 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000008 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.000006 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000039 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000111 0.000133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000001 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000031 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000007 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000163 0.000268 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000430 0.000589 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.188600 +0.000046 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.000024 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031000 +0.000048 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036000 +0.000284 0.000497 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.239000 +0.000076 0.000114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000021 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095600 +0.000138 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104800 +0.000106 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070200 +0.000518 0.000693 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.169400 +0.000176 0.000275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137400 +0.000070 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.444199 +0.001582 0.002375 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.000142 0.000202 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.000023 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.000072 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044400 +0.000227 0.000306 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143600 +0.000040 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109000 +0.000147 0.000181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105600 +0.000109 0.000176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112000 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102600 +0.000419 0.000552 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106000 +0.001144 0.001688 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.000091 0.000136 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.000039 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.000200 0.000246 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134200 +0.003609 0.005612 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.141200 +0.000037 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000314 0.000456 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067800 +0.000360 0.000520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079200 +0.000029 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000013 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000119 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000020 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000039 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000471 0.000821 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089800 +0.000073 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.002663 0.003917 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.656199 +0.000226 0.000331 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032800 +0.003340 0.005606 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.275799 +0.000827 0.001331 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.414399 +0.000807 0.001185 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.472399 +0.000096 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.366799 +0.000025 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102600 +0.000171 0.000186 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000109 0.000174 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.006643 0.008855 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.210600 +0.000147 0.000218 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000118 0.000180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000104 0.000129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126200 +0.000015 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000459 0.000675 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.171200 +0.000931 0.001350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103600 +0.000100 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.000186 0.000245 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070800 +0.002242 0.003201 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095200 +0.000132 0.000192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.000402 0.000646 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119400 +0.000220 0.000316 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.000825 0.001234 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.000608 0.000902 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000016 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000022 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.006320 0.009117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.181800 +0.000098 0.000149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000040 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000263 0.000382 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079800 +0.005067 0.005893 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.245799 +0.000223 0.000306 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088600 +0.004018 0.005697 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.336799 +0.000114 0.000150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.162400 +0.000027 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035400 +0.000187 0.000239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039400 +0.005090 0.008033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112400 +0.000387 0.000556 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000611 0.000698 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103200 +0.000330 0.000497 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.000763 0.000895 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.140400 +0.000100 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.165200 +0.000394 0.000621 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.006389 0.009036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122600 +0.000029 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102600 +0.002814 0.003859 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127000 +0.001204 0.001821 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000034 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000018 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000051 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000270 0.000422 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000294 0.000440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000965 0.001458 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.440199 +0.001063 0.001484 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100000 +0.001808 0.002602 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116800 +0.000282 0.000430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123200 +0.000716 0.001036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077000 +0.000461 0.000757 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000067 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086600 +0.000060 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000200 0.000279 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.000072 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000159 0.000203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091000 +0.000085 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000145 0.000161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.257599 +0.000654 0.000832 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153600 +0.002123 0.003429 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000073 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000817 0.001156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109000 +0.000566 0.000709 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.152200 +0.000103 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000787 0.001105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072400 +0.000041 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150600 +0.000176 0.000221 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096000 +0.000338 0.000468 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077000 +0.000019 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103800 +0.000005 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.003149 0.004428 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101200 +0.000016 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.000012 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068800 +0.000186 0.000250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000072 0.000108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.001697 0.002423 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.330399 +0.000113 0.000166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.000118 0.000147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072400 +0.000023 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000433 0.000567 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.000539 0.000693 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.178200 +0.000566 0.000738 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000014 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100000 +0.000348 0.000499 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.003212 0.004724 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.183400 +0.000064 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000251 0.000403 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106000 +0.000021 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000085 0.000115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032200 +0.000330 0.000404 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156600 +0.000256 0.000392 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.179400 +0.000019 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033600 +0.000015 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000052 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000078 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000543 0.000771 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.000082 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000329 0.000368 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000254 0.000332 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.186800 +0.000002 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000029 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000093 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098200 +0.002180 0.002874 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126200 +0.000164 0.000219 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052400 +0.000003 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000371 0.000590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.141000 +0.000030 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.000020 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000046 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038000 +0.000226 0.000302 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000011 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000422 0.000559 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078200 +0.000125 0.000212 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000021 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000020 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000055 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000209 0.000268 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130400 +0.000112 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000023 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000064 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078200 +0.000104 0.000149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069000 +0.002341 0.003512 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.141800 +0.000055 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030200 +0.000126 0.000161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.272799 +0.000381 0.000556 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072200 +0.000059 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000028 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000038 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.006222 0.010172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153400 +0.000722 0.001028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094200 +0.002059 0.003237 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.000028 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031800 +0.000017 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000018 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032800 +0.000390 0.000447 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104000 +0.000111 0.000162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068600 +0.000226 0.000278 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.287399 +0.000116 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000070 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000013 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000024 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000019 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000392 0.000582 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000012 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000314 0.000476 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.005543 0.009915 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.227000 +0.000049 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.002360 0.002773 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.174400 +0.000280 0.000420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096200 +0.000160 0.000177 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.182600 +0.000148 0.000170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123800 +0.000018 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130400 +0.000096 0.000133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107000 +0.001676 0.002043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000382 0.000596 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.260599 +0.000022 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000204 0.000259 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119000 +0.001647 0.002477 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065400 +0.000027 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000016 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000386 0.000665 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000192 0.000283 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.182000 +0.008383 0.012559 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.407599 +0.000180 0.000235 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.321599 +0.000416 0.000538 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113000 +0.000064 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000151 0.000229 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000183 0.000248 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032200 +0.000301 0.000425 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109400 +0.000023 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000026 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039200 +0.000091 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066000 +0.000066 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000181 0.000284 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103000 +0.009813 0.014279 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.457199 +0.000318 0.000489 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071200 +0.000017 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076000 +0.000028 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000019 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000014 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.000205 0.000244 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.000987 0.001273 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.223600 +0.000094 0.000166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.357599 +0.000240 0.000307 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110000 +0.000011 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000052 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.000015 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085000 +0.001366 0.001607 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133000 +0.000601 0.000716 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095800 +0.000061 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.000028 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001567 0.002394 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088200 +0.000152 0.000243 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000057 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000025 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.000029 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000035 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000257 0.000339 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.002493 0.002992 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.260399 +0.000020 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000867 0.001234 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069800 +0.000083 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131600 +0.000101 0.000141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083600 +0.002387 0.003197 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.373999 +0.001189 0.001745 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.251999 +0.000166 0.000397 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101400 +0.004789 0.006945 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.364199 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033400 +0.000777 0.000992 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.224400 +0.000309 0.000447 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000041 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000032 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000079 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049200 +0.000052 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086800 +0.000012 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000037 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000124 0.000161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073600 +0.000115 0.000164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089200 +0.000773 0.001208 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000084 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039200 +0.000025 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041400 +0.000027 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.006412 0.009117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118000 +0.000175 0.000201 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131800 +0.003559 0.006104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.246199 +0.006305 0.009900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118000 +0.000063 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001146 0.001297 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.335599 +0.000157 0.000241 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073200 +0.000492 0.000613 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094200 +0.000013 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000143 0.000189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.000868 0.001133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069400 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000924 0.001047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.299199 +0.001605 0.002143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104000 +0.009641 0.013259 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.211800 +0.000101 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031000 +0.000323 0.000519 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.188000 +0.000058 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000073 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000092 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037800 +0.000004 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030600 +0.000304 0.000421 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.215800 +0.000051 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155600 +0.000204 0.000276 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000011 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000018 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000023 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.002756 0.003482 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151400 +0.001480 0.002396 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.284799 +0.000015 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000161 0.000260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131000 +0.010474 0.015378 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000452 0.000516 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.386399 +0.000470 0.000666 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.356599 +0.000056 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000307 0.000485 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097000 +0.000090 0.000102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124800 +0.000802 0.000951 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097600 +0.000069 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000189 0.000281 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.000199 0.000303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068200 +0.000138 0.000236 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092200 +0.000029 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.000058 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074400 +0.000921 0.001362 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154600 +0.000150 0.000200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076800 +0.000452 0.000565 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.438999 +0.000891 0.001053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.264199 +0.000038 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000276 0.000332 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127400 +0.000020 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000036 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.001304 0.001859 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000093 0.000144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073200 +0.000073 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000485 0.000588 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157800 +0.000102 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126400 +0.000200 0.000299 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000138 0.000180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076400 +0.000113 0.000175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.004068 0.007515 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133200 +0.000217 0.000321 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000004 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000908 0.001386 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096400 +0.000049 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000020 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000179 0.000248 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000360 0.000477 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157400 +0.000011 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.002803 0.004821 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.306599 +0.000018 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000063 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083400 +0.000099 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066200 +0.000888 0.001205 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000115 0.000163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000201 0.000288 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.002940 0.003755 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113000 +0.000255 0.000364 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035400 +0.000050 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077800 +0.000403 0.000555 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039400 +0.000065 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000035 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.001232 0.001798 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.272399 +0.000002 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000174 0.000262 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131800 +0.004161 0.006211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049200 +0.000153 0.000201 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069200 +0.000026 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000079 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000414 0.000524 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114400 +0.000015 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000209 0.000298 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.001340 0.001548 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.252799 +0.001302 0.001678 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.272199 +0.000230 0.000420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.160000 +0.000057 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000111 0.000165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086000 +0.000151 0.000222 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.000028 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000133 0.000191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093000 +0.000155 0.000217 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000016 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000068 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003302 0.004631 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030400 +0.000030 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001046 0.001530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.000294 0.000400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000025 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000268 0.000389 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106200 +0.000207 0.000250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.318399 +0.000199 0.000265 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000116 0.000194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030800 +0.000222 0.000305 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097600 +0.000017 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000017 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000229 0.000288 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079600 +0.000650 0.000945 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000446 0.000521 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096600 +0.000053 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071200 +0.000042 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000159 0.000217 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000536 0.000866 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.272799 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.002104 0.004023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154400 +0.000081 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000015 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000083 0.000091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113600 +0.010931 0.013940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.351399 +0.000050 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000104 0.000163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000017 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000142 0.000179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.204400 +0.000007 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000031 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000086 0.000129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000167 0.000280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.203000 +0.000364 0.000614 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.184600 +0.000074 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000175 0.000255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000015 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001296 0.001820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000026 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000081 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000137 0.000198 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074200 +0.000068 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090800 +0.000610 0.001012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000071 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.000093 0.000126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000040 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000299 0.000437 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.285399 +0.000242 0.000383 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.000219 0.000309 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.644599 +0.000057 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000015 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000211 0.000286 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094400 +0.000021 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114000 +0.000483 0.000670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132600 +0.000082 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000221 0.000314 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086800 +0.000024 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000093 0.000125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084800 +0.000006 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000982 0.001349 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000783 0.001013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121200 +0.001050 0.001324 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106800 +0.000146 0.000198 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067800 +0.000253 0.000449 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000107 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000090 0.000144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064000 +0.000110 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.000065 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000405 0.000644 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.149200 +0.000044 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000150 0.000198 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086600 +0.005150 0.007701 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000106 0.000147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000011 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000037 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000209 0.000300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092600 +0.000118 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.276199 +0.000022 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000035 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102600 +0.000041 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000017 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099200 +0.000123 0.000180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.000012 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000007 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000024 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033600 +0.002533 0.003410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.175200 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000412 0.000661 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.000032 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.291999 +0.000015 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000110 0.000146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.038638 0.062995 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074000 +0.000943 0.001269 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083600 +0.000172 0.000249 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128000 +0.000007 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.000540 0.000886 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088800 +0.000019 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000291 0.000445 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.000014 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000364 0.000397 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032000 +0.000755 0.000882 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.416799 +0.000082 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.854598 +0.012327 0.016962 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.258799 +0.000062 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034400 +0.000138 0.000212 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157000 +0.000046 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000093 0.000141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.000234 0.000366 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000013 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000039 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037200 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000003 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000045 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000367 0.000549 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105400 +0.000029 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044400 +0.000178 0.000219 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074600 +0.000077 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000009 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000401 0.000454 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137000 +0.000123 0.000149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.167200 +0.000055 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000026 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.000026 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000037 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066000 +0.003449 0.004522 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.264799 +0.000043 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.241600 +0.001142 0.001307 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.301999 +0.001113 0.001373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087600 +0.000274 0.000384 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.370599 +0.000641 0.000937 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000203 0.000311 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047800 +0.005106 0.006604 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.327399 +0.000242 0.000406 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000014 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039400 +0.000057 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.000016 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000051 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000045 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000022 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000031 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001484 0.002105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088000 +0.000300 0.000403 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120200 +0.000083 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.663199 +0.000023 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000020 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095400 +0.000015 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000477 0.000694 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000054 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000045 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074400 +0.000073 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000017 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033400 +0.000017 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000130 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.007645 0.010289 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.448999 +0.000024 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037200 +0.000102 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.178000 +0.001233 0.001862 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033600 +0.000066 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.000443 0.000638 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000016 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001805 0.002212 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107200 +0.000015 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131200 +0.000526 0.000755 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075200 +0.000099 0.000130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.000257 0.000373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038000 +0.000472 0.000640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.217200 +0.000032 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078400 +0.000250 0.000371 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052400 +0.000171 0.000288 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.170600 +0.000638 0.000968 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000748 0.001094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093600 +0.000491 0.000719 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.183800 +0.000348 0.000452 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.167400 +0.000045 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075400 +0.000117 0.000199 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000123 0.000197 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000077 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047400 +0.000106 0.000152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088000 +0.000005 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000250 0.000426 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.371999 +0.000120 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142800 +0.000348 0.000705 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091600 +0.000090 0.000146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034400 +0.000012 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000092 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000214 0.000273 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000114 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106600 +0.000012 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000043 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066200 +0.000157 0.000216 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031400 +0.001333 0.002406 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114400 +0.000098 0.000212 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121800 +0.000013 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.000054 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085000 +0.000006 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000419 0.000635 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076000 +0.000904 0.001111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.279799 +0.000043 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000001 0.000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000057 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000184 0.000249 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.000038 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000024 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000319 0.000468 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.293399 +0.000194 0.000285 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000029 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000028 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000266 0.000397 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106400 +0.000168 0.000245 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.000336 0.000450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094000 +0.000009 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000205 0.000275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086200 +0.000449 0.000632 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.000068 0.000097 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087600 +0.000874 0.001191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107600 +0.000015 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000033 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120600 +0.000016 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000126 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000023 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100400 +0.002509 0.003050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.267799 +0.002803 0.005210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102000 +0.000136 0.000164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096400 +0.000974 0.001388 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.164000 +0.000329 0.000400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.282799 +0.000033 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030400 +0.000124 0.000176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.171800 +0.000002 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.006704 0.008894 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.376799 +0.000152 0.000222 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.000155 0.000231 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.086659 0.132673 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000024 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000126 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075200 +0.001018 0.001445 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.355199 +0.000013 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000029 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.000011 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001577 0.003156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.240000 +0.000216 0.000282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103000 +0.000070 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100600 +0.000044 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.000081 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093400 +0.000037 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.001081 0.001672 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000084 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000155 0.000228 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.294599 +0.000075 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000082 0.000119 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.248999 +0.000164 0.000268 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038000 +0.001253 0.001742 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094400 +0.000030 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000450 0.000692 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.193600 +0.000003 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000070 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000089 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000025 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000859 0.001228 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000067 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.000007 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.000170 0.000232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102200 +0.000142 0.000236 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135200 +0.001667 0.002257 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108000 +0.000556 0.000640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.237600 +0.000022 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.152000 +0.000057 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112200 +0.002484 0.004094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.230000 +0.000082 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000398 0.000465 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134200 +0.001425 0.002154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.000034 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.000115 0.000162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111400 +0.000075 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032400 +0.000714 0.001018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110000 +0.000275 0.000382 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.172400 +0.000052 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000148 0.000203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100600 +0.000066 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.000638 0.000774 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078400 +0.000017 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127600 +0.000038 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000111 0.000170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065200 +0.000956 0.001234 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109400 +0.000095 0.000132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042400 +0.000318 0.000416 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082200 +0.001948 0.002729 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079400 +0.001219 0.001713 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000029 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.000549 0.000861 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000075 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000729 0.001060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.439399 +0.000023 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032000 +0.000031 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.000516 0.000698 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112200 +0.000028 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000346 0.000509 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000589 0.000888 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059800 +0.000344 0.000509 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000020 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000085 0.000127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.001577 0.002199 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.000271 0.000361 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000042 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083200 +0.000056 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000009 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000020 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000009 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000568 0.000970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155400 +0.000176 0.000245 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133600 +0.000024 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086800 +0.000791 0.001048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.000837 0.001183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.226000 +0.000416 0.000618 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.000028 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033600 +0.000079 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000251 0.000361 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039200 +0.000052 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000203 0.000285 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076200 +0.000271 0.000328 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000648 0.001061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000122 0.000178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.000122 0.000183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000085 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045200 +0.000038 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000911 0.001148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136400 +0.000160 0.000216 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086000 +0.000026 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000079 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.200400 +0.000112 0.000144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073600 +0.000016 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000005 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000098 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041400 +0.000676 0.001001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.160400 +0.001106 0.001297 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110600 +0.000211 0.000304 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000031 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068800 +0.001830 0.003059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.177600 +0.000074 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000007 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000737 0.000747 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.001894 0.002529 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070800 +0.000373 0.000488 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000104 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000057 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.002130 0.003038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069600 +0.000329 0.000614 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121000 +0.003961 0.005903 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.000434 0.000532 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.140000 +0.000008 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000045 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000048 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000050 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000026 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037800 +0.000082 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.957198 +0.011961 0.016578 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.249799 +0.000072 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031800 +0.000553 0.000713 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.163000 +0.000007 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000033 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.001271 0.002437 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.160600 +0.000017 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003759 0.005308 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131200 +0.000085 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084200 +0.017238 0.022414 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116400 +0.000030 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000773 0.001013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.195400 +0.000044 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000053 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000220 0.000335 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000722 0.001022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000002 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003924 0.005359 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074000 +0.000029 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.178000 +0.000061 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.000236 0.000288 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095200 +0.000068 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075200 +0.000014 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000157 0.000228 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.170800 +0.000082 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073200 +0.000051 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000332 0.000393 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.183000 +0.000252 0.000346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058200 +0.000026 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000195 0.000335 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031400 +0.000766 0.000948 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.190400 +0.000235 0.000362 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.001608 0.002534 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104000 +0.000191 0.000287 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156200 +0.001295 0.001767 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.144800 +0.000583 0.000816 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000065 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000079 0.000115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073400 +0.000529 0.000726 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.254199 +0.000142 0.000215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.000066 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000011 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000038 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.002383 0.002758 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.411999 +0.000475 0.000768 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097000 +0.003543 0.004950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.204800 +0.000225 0.000298 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.001066 0.001504 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075200 +0.000051 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.003377 0.004746 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136200 +0.000017 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000036 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000055 0.000080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000046 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.000323 0.000485 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116200 +0.000114 0.000149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031000 +0.000036 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063600 +0.000006 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000687 0.001031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035200 +0.000068 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.255999 +0.000224 0.000367 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118200 +0.000199 0.000490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109400 +0.000085 0.000130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066200 +0.000717 0.000945 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.307199 +0.000060 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000054 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041400 +0.000020 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151800 +0.000033 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034800 +0.003982 0.004860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.299599 +0.004191 0.006892 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.478599 +0.000039 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.000242 0.000319 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123600 +0.000004 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000248 0.000320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085200 +0.000024 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000237 0.000369 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120200 +0.000225 0.000663 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.211400 +0.000192 0.000277 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081200 +0.000392 0.000488 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096200 +0.001701 0.002345 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.002546 0.004243 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134600 +0.000112 0.000123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139400 +0.000084 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000225 0.000268 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.182000 +0.000197 0.000262 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.246399 +0.000531 0.000694 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.246999 +0.000013 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000007 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000641 0.000985 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084800 +0.000113 0.000180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037400 +0.000166 0.000215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074600 +0.000100 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137400 +0.000112 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123200 +0.000482 0.000685 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.001476 0.001691 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.233200 +0.000023 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000343 0.000488 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000840 0.001163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.000482 0.000776 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099800 +0.000608 0.001097 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.449999 +0.000013 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.000081 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000109 0.000152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.169400 +0.002114 0.004788 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154600 +0.001664 0.002377 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000046 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.000099 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000098 0.000129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143600 +0.000021 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000130 0.000202 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000004 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000052 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065400 +0.000079 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000081 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000086 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.002422 0.003646 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031800 +0.000121 0.000157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087200 +0.000027 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000059 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039200 +0.000096 0.000130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083400 +0.000069 0.000164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121600 +0.000228 0.000347 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000176 0.000242 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000077 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.011959 0.018322 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154400 +0.003186 0.004249 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099800 +0.002066 0.003629 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.557799 +0.000135 0.000178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.207400 +0.000028 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000140 0.000247 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.166800 +0.000143 0.000183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067800 +0.000026 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000024 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000024 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.003415 0.004836 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106800 +0.000172 0.000223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071000 +0.000071 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066200 +0.000152 0.000250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.000956 0.001484 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089600 +0.000046 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000079 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036400 +0.000087 0.000178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.180600 +0.000423 0.000544 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037400 +0.000070 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000216 0.000255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.366999 +0.001052 0.001534 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064000 +0.000067 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082400 +0.000022 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102800 +0.000043 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106800 +0.001355 0.001769 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134000 +0.000887 0.001513 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.163800 +0.000170 0.000254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.000007 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.000311 0.000412 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093400 +0.000277 0.000357 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083400 +0.001010 0.001503 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.317999 +0.000058 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000222 0.000323 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.247599 +0.000023 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000031 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000125 0.000178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.000122 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000021 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000021 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000041 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000015 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000106 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000011 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000059 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000033 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000063 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000404 0.000502 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098800 +0.000110 0.000157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000755 0.001533 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081800 +0.000024 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000183 0.000270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.316999 +0.006860 0.009261 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.144200 +0.000028 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000242 0.000312 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.229000 +0.000948 0.001335 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083000 +0.000051 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.000463 0.000637 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.004147 0.008639 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.562199 +0.000274 0.000395 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.000283 0.000397 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.002484 0.003144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.171800 +0.000592 0.000740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.512399 +0.002058 0.002550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143400 +0.009109 0.014113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092600 +0.000332 0.000463 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.223600 +0.000129 0.000172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036800 +0.000278 0.000380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074600 +0.000108 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087200 +0.000248 0.000306 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.285599 +0.000049 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002892 0.003649 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.403599 +0.000099 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047400 +0.000069 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105200 +0.001001 0.001240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106600 +0.000421 0.000687 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000016 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000104 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.367999 +0.000132 0.000188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.000039 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.000071 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000113 0.000161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046800 +0.000284 0.000381 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080200 +0.000062 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000221 0.000265 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084400 +0.000007 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000921 0.001303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124000 +0.000433 0.000644 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030600 +0.001054 0.001954 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.011053 0.017712 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070800 +0.000394 0.000555 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000015 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.000061 0.000080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070800 +0.000057 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000050 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.000070 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.001478 0.002120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.177000 +0.000316 0.000388 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.207800 +0.000034 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000032 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000218 0.000292 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096600 +0.000018 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000319 0.000410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100000 +0.000063 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000949 0.001202 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.365199 +0.000040 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085600 +0.000013 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000162 0.000261 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000136 0.000223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.195000 +0.000026 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032800 +0.000070 0.000091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.000010 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037800 +0.008404 0.011169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151600 +0.000010 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000850 0.001395 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094400 +0.000002 0.000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000172 0.000238 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000101 0.000174 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.000490 0.000655 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069000 +0.001067 0.001614 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.321799 +0.000017 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031000 +0.036876 0.066421 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089000 +0.000609 0.000730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.140000 +0.000216 0.000289 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.001948 0.003063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094600 +0.000011 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000044 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000058 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000079 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058200 +0.000064 0.000091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000062 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118600 +0.000013 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000314 0.000349 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.176600 +0.000073 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071800 +0.000293 0.000384 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137800 +0.029731 0.051259 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.213400 +0.000620 0.000818 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099200 +0.000744 0.000894 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.357199 +0.000398 0.000522 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077400 +0.000030 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000866 0.001230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000129 0.000224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.000020 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049200 +0.000209 0.000310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000013 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000196 0.000293 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084400 +0.000052 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079200 +0.000508 0.000704 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128400 +0.000383 0.000531 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000232 0.000333 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.000044 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000004 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000221 0.000330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089200 +0.000036 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.001174 0.001920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075200 +0.000045 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156200 +0.000202 0.000315 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.000014 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.003426 0.003991 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.334799 +0.000204 0.000271 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000021 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000130 0.000186 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000020 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.000121 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104200 +0.000223 0.000283 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070600 +0.000092 0.000125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064000 +0.000126 0.000157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127200 +0.000245 0.000310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101400 +0.000111 0.000141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000321 0.000431 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041400 +0.000015 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.000338 0.000517 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.000323 0.000500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143200 +0.000020 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000076 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000018 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000045 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000454 0.000558 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130200 +0.000028 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001403 0.002037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062400 +0.000032 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000090 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056000 +0.001590 0.002281 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.211600 +0.000351 0.000438 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075400 +0.000447 0.000664 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037400 +0.000541 0.000792 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.001184 0.001335 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.232800 +0.000043 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081600 +0.001142 0.001568 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.166000 +0.000038 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000072 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.001718 0.002861 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105600 +0.000045 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037400 +0.000029 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074600 +0.000020 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000079 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.037168 0.068152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108800 +0.000037 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094000 +0.000146 0.000203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064000 +0.000087 0.000132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120600 +0.000310 0.000357 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.216800 +0.000076 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133800 +0.003436 0.005129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091600 +0.003726 0.004515 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117000 +0.005072 0.006652 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117400 +0.000581 0.000847 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.002037 0.002637 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154800 +0.000205 0.000274 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.239000 +0.000255 0.000386 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000029 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000068 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000028 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.007623 0.011769 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100600 +0.000043 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000613 0.000954 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085400 +0.000157 0.000225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.001251 0.001550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111400 +0.000023 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000032 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046800 +0.000314 0.000427 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113800 +0.000023 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.001417 0.002157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.000041 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000040 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.000740 0.001233 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098200 +0.000161 0.000248 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085600 +0.000823 0.001026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.250400 +0.000013 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.004958 0.006556 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.500399 +0.000029 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.000041 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000646 0.000876 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.000634 0.001011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.305199 +0.000020 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.001157 0.002063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135000 +0.000108 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154400 +0.001045 0.001459 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.474599 +0.000912 0.001078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118800 +0.000018 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000152 0.000233 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.000151 0.000190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074400 +0.000007 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.001194 0.001811 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.306599 +0.000088 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000211 0.000294 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000535 0.000644 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081400 +0.000175 0.000215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.355799 +0.000395 0.000466 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095800 +0.000005 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081200 +0.000021 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000384 0.000526 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.230400 +0.000145 0.000176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106000 +0.001430 0.002142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.250400 +0.000184 0.000241 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090400 +0.000044 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000115 0.000181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000051 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000501 0.000757 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.177200 +0.000084 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000019 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.000127 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000056 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.000046 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121400 +0.000033 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000056 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000005 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000639 0.000923 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056000 +0.000013 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.170000 +0.000062 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.001086 0.001802 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.000037 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.000380 0.000472 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118400 +0.000054 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076400 +0.000059 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.000018 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000681 0.000898 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.367199 +0.001134 0.001355 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088000 +0.000192 0.000285 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065200 +0.000021 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000017 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000013 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000018 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000302 0.000393 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000168 0.000260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000036 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.218800 +0.000045 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079000 +0.000115 0.000162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000435 0.000689 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000034 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000226 0.000325 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000024 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000017 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000814 0.001093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.163200 +0.000007 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000089 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.000631 0.000843 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000010 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.000009 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000256 0.000342 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113000 +0.000165 0.000247 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072200 +0.000200 0.000259 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.000041 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081600 +0.000240 0.000329 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.001624 0.002345 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109400 +0.000715 0.001001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065400 +0.000027 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000039 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000031 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089600 +0.000031 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000011 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000038 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086200 +0.000386 0.000405 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.212600 +0.000032 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000157 0.000236 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.000281 0.000440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.353999 +0.000221 0.000320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088400 +0.000714 0.001028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.173600 +0.000382 0.000485 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000004 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000044 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000716 0.001027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106000 +0.000119 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119200 +0.000030 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.145200 +0.000073 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000021 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000026 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000051 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082000 +0.000038 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003604 0.005522 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.000027 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000013 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000035 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000038 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087000 +0.000044 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000023 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002730 0.003117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.396799 +0.000337 0.000548 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112000 +0.000980 0.001206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.316399 +0.000003 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000013 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.225000 +0.000070 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000175 0.000265 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102200 +0.000306 0.000381 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069800 +0.000158 0.000229 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067400 +0.002681 0.003645 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.298399 +0.018420 0.033201 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107200 +0.000109 0.000144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000273 0.000359 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.000033 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000054 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000041 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000026 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033400 +0.000615 0.000934 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.229200 +0.000137 0.000226 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078800 +0.000032 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.000482 0.000488 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095000 +0.000941 0.001124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.000164 0.000177 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132600 +0.000027 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000737 0.000985 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.309599 +0.000127 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000125 0.000194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031000 +0.000998 0.001518 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.306399 +0.000500 0.000691 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000066 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082200 +0.000721 0.001028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000183 0.000234 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085800 +0.000018 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085600 +0.001477 0.002134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000041 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036800 +0.000036 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.177000 +0.000013 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003462 0.004497 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.185600 +0.001978 0.002374 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.841598 +0.000628 0.000676 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103200 +0.000322 0.000810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.224200 +0.000018 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000034 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000064 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.000081 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084600 +0.000021 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000050 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.002596 0.003786 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.159400 +0.000119 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044400 +0.000019 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078800 +0.000046 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.162600 +0.000259 0.000395 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.000451 0.000549 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090200 +0.000259 0.000460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.164600 +0.000007 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000059 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000720 0.000887 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.380199 +0.000277 0.000310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128000 +0.000062 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000027 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000388 0.000497 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077000 +0.000152 0.000205 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104400 +0.000060 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000028 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074400 +0.000180 0.000278 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066000 +0.000115 0.000197 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.007003 0.011390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132600 +0.000275 0.000382 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.211600 +0.000033 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088600 +0.000041 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000604 0.000885 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.313999 +0.000031 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.000071 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077800 +0.000051 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039800 +0.000035 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.175000 +0.000296 0.000393 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000860 0.001305 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066000 +0.000089 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076600 +0.000065 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000003 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000005 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000084 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030400 +0.000127 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104000 +0.000699 0.000992 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108400 +0.001630 0.002272 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.141800 +0.000034 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000009 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000234 0.000268 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154200 +0.000002 0.000003 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000075 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000151 0.000238 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000415 0.000614 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.003398 0.005734 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.525599 +0.000743 0.001378 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.250999 +0.000853 0.001098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.230800 +0.000428 0.000628 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000082 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042400 +0.000015 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.000613 0.000928 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158800 +0.000085 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.000100 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150400 +0.000822 0.001291 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000084 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095000 +0.000006 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000026 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000786 0.001123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116800 +0.000394 0.000433 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.646599 +0.000141 0.000210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000664 0.001042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107400 +0.000119 0.000182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.000018 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000237 0.000276 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069800 +0.000025 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143600 +0.000040 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000029 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139600 +0.000137 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.344999 +0.000196 0.000282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000025 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000116 0.000186 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000016 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000007 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000131 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.203600 +0.000020 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068800 +0.041260 0.063369 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.001207 0.001527 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000015 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000038 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.000263 0.000319 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.000046 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.000022 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039200 +0.000042 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097000 +0.000132 0.000189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000387 0.000599 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000506 0.000671 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093200 +0.004469 0.006785 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000015 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000076 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000061 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000411 0.000592 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066200 +0.000008 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000834 0.001291 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000292 0.000368 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084800 +0.000016 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.000045 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000081 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112600 +0.000032 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000664 0.000798 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000128 0.000204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034400 +0.000682 0.001121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.211000 +0.000145 0.000147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000251 0.000354 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074000 +0.000049 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000029 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000019 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000038 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000681 0.001140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000022 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000144 0.000194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097000 +0.004181 0.006314 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073200 +0.000161 0.000195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000221 0.000286 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000017 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000097 0.000108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001108 0.001430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.459599 +0.000059 0.000102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000014 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001385 0.001707 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.174800 +0.000026 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.001041 0.001336 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064000 +0.000163 0.000267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070200 +0.008472 0.011269 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.307399 +0.000108 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000032 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000040 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000084 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.000078 0.000124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000267 0.000338 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131600 +0.000165 0.000207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000018 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000014 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000086 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000251 0.000332 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000055 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000022 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.001350 0.002034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094000 +0.000042 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000242 0.000442 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.251599 +0.007603 0.013289 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.422599 +0.000957 0.001096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.418999 +0.000074 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.140200 +0.000023 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000123 0.000170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083400 +0.000140 0.000217 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039800 +0.000037 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000064 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.002327 0.003106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.319399 +0.005572 0.006859 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.249799 +0.000160 0.000227 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000039 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031000 +0.000009 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000169 0.000253 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000326 0.000398 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.796798 +0.000080 0.000097 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073200 +0.000099 0.000126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102600 +0.000271 0.000307 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.187600 +0.000202 0.000373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000031 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000388 0.000577 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000053 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000046 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.000675 0.000951 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076600 +0.000020 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030600 +0.001129 0.001578 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084400 +0.000128 0.000185 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073200 +0.000818 0.000989 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.260599 +0.003692 0.006069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114800 +0.000363 0.000436 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117000 +0.000092 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.227400 +0.000043 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000020 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000147 0.000191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000022 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088600 +0.000523 0.000741 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071200 +0.000572 0.000743 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.239600 +0.000832 0.001163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081600 +0.000005 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000818 0.001242 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090000 +0.000885 0.001031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115600 +0.000054 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000090 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097000 +0.000239 0.000325 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047800 +0.005172 0.007311 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.216400 +0.000012 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000139 0.000187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.000016 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.003192 0.004889 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133200 +0.000139 0.000189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000352 0.000522 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.190400 +0.000032 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000301 0.000411 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000126 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000161 0.000219 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047800 +0.000082 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000028 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.160400 +0.000071 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000555 0.000719 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142200 +0.000278 0.000424 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045200 +0.002301 0.003305 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105400 +0.000134 0.000199 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000027 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000806 0.001346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086600 +0.000232 0.000315 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000023 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.000129 0.000183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109600 +0.000027 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031000 +0.000099 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.000646 0.000816 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.147000 +0.000094 0.000132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038600 +0.000017 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000371 0.000415 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142800 +0.000213 0.000257 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120600 +0.000858 0.001147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155200 +0.000139 0.000172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113200 +0.000022 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001909 0.002213 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.429999 +0.000007 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000043 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000135 0.000186 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036000 +0.001366 0.001744 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000235 0.000339 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.000107 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101800 +0.000022 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000053 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000046 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088800 +0.000106 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073200 +0.000036 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049200 +0.000711 0.001024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000045 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086800 +0.005731 0.008482 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.280799 +0.000135 0.000437 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124000 +0.000026 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000272 0.000435 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156800 +0.000322 0.000406 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078600 +0.001363 0.002049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.345599 +0.000190 0.000238 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000120 0.000179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.001983 0.002572 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.000024 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037000 +0.000028 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000093 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.000156 0.000236 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.000096 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030600 +0.000018 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000263 0.000302 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000023 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000115 0.000164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000051 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117800 +0.000110 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.001663 0.002519 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121600 +0.000024 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.424999 +0.002574 0.003764 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092000 +0.000059 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032400 +0.000210 0.000336 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000018 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030600 +0.000074 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000008 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000029 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000023 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000415 0.000528 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102600 +0.000027 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056000 +0.000243 0.000380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.355599 +0.000107 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000134 0.000178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.000185 0.000271 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077000 +0.000085 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.001555 0.001918 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.288399 +0.000150 0.000241 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124600 +0.000083 0.000114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000109 0.000146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034400 +0.000136 0.000199 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000113 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154600 +0.000145 0.000247 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.195800 +0.000033 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099000 +0.000100 0.000158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081200 +0.000189 0.000279 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000035 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031800 +0.000102 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071400 +0.000151 0.000192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132400 +0.000121 0.000180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000017 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000719 0.000991 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.166200 +0.000007 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000250 0.000316 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102800 +0.000113 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000907 0.001401 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000034 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.164000 +0.000175 0.000239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.138800 +0.000118 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129200 +0.000379 0.000466 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.438599 +0.000716 0.000872 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.612399 +0.000016 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000624 0.000918 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150000 +0.000766 0.000983 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.300999 +0.000338 0.000361 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000044 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000913 0.001375 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000049 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073400 +0.001616 0.002187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078400 +0.000281 0.000383 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095800 +0.000119 0.000163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037400 +0.000449 0.000784 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082400 +0.000687 0.000980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111200 +0.002133 0.003195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.162400 +0.000258 0.000411 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037400 +0.000303 0.000421 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102800 +0.000154 0.000195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.000593 0.001102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.184000 +0.001849 0.002338 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045200 +0.000026 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002434 0.003592 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.000171 0.000261 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000008 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000110 0.000163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000394 0.000434 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.264599 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000214 0.000321 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081800 +0.000042 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109600 +0.000553 0.000599 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.172600 +0.000202 0.000270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122400 +0.001139 0.001561 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111800 +0.000591 0.000790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.300599 +0.000291 0.000466 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000005 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000040 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000019 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030800 +0.000597 0.000715 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.312199 +0.001815 0.002707 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074200 +0.003332 0.004840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121000 +0.000394 0.001145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.193000 +0.000093 0.000123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036000 +0.001538 0.002078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000193 0.000237 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068200 +0.000013 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000094 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.211400 +0.000027 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001614 0.001971 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100000 +0.000515 0.000715 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.000054 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000162 0.000237 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.145600 +0.000696 0.000788 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.147600 +0.003860 0.006198 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000474 0.000625 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000057 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000216 0.000283 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117400 +0.001177 0.001698 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086600 +0.002663 0.004446 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035400 +0.000009 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000304 0.000421 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000013 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000044 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.188200 +0.000043 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000196 0.000271 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074600 +0.000084 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001086 0.001793 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.308799 +0.000012 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000107 0.000179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000096 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074800 +0.001242 0.001892 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.176600 +0.000015 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.000272 0.000398 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035200 +0.000051 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000256 0.000345 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125800 +0.000021 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000128 0.000178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033600 +0.000187 0.000292 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103600 +0.000571 0.000746 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129800 +0.000831 0.001206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074200 +0.000035 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.001602 0.002462 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129200 +0.000090 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000248 0.000326 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090400 +0.001047 0.001522 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092000 +0.000677 0.001040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.225200 +0.000934 0.001178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.236400 +0.000139 0.000176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104200 +0.002135 0.003960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.216800 +0.000048 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082200 +0.000127 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073600 +0.000141 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067800 +0.013662 0.020490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.172000 +0.000113 0.000176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046400 +0.000197 0.000267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099200 +0.000063 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000038 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103400 +0.000074 0.000108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031800 +0.000023 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000062 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.000016 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000336 0.000480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.000273 0.000398 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000236 0.000389 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072400 +0.000217 0.000258 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.340199 +0.000046 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000085 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047400 +0.001344 0.001705 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.234200 +0.000057 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122800 +0.000026 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133000 +0.000024 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000200 0.000239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081400 +0.000072 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047800 +0.000195 0.000277 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069600 +0.004754 0.007215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.252399 +0.000217 0.000308 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000053 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000079 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034000 +0.001997 0.002604 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.329199 +0.000112 0.000154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000076 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000100 0.000147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074200 +0.000255 0.000345 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156400 +0.000046 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000154 0.000210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103600 +0.000146 0.000256 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.244400 +0.000109 0.000152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042400 +0.000007 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.000026 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000349 0.000417 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161800 +0.000710 0.000974 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067800 +0.000025 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030800 +0.000144 0.000206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068200 +0.000133 0.000204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074400 +0.002343 0.002684 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.358799 +0.000362 0.000548 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.574399 +0.000147 0.000232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.000007 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000018 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001658 0.002064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151200 +0.000205 0.000264 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120800 +0.000051 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.004690 0.006693 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084000 +0.000450 0.000732 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000013 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000065 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.000022 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000092 0.000133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102200 +0.000079 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.002187 0.002741 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.323399 +0.000735 0.001080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000129 0.000154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073600 +0.000640 0.000880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063600 +0.000053 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000542 0.000765 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.314799 +0.000014 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000082 0.000115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001569 0.002457 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072800 +0.000345 0.000513 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035400 +0.000197 0.000301 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.207800 +0.000070 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000348 0.000420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125600 +0.002564 0.003914 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105600 +0.000009 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000025 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100800 +0.000340 0.000504 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000139 0.000204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.000066 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000077 0.000129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002623 0.003881 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.340199 +0.000072 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122200 +0.000029 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000089 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.204400 +0.000685 0.000863 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.383199 +0.000402 0.000609 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046000 +0.001096 0.001507 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084600 +0.000197 0.000299 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130200 +0.000077 0.000146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100800 +0.000436 0.000535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.433999 +0.000231 0.000334 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065200 +0.002193 0.003254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089800 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000026 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000195 0.000277 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000026 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000095 0.000164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124800 +0.000297 0.000439 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108600 +0.000028 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000042 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111200 +0.000526 0.000641 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.396999 +0.000084 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000104 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056000 +0.000002 0.000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142600 +0.003488 0.004502 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129400 +0.000034 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158600 +0.000051 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.408399 +0.000111 0.000176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001130 0.001566 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.162800 +0.000154 0.000243 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081200 +0.000078 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.000943 0.001341 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.000056 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069400 +0.000193 0.000279 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.224200 +0.000179 0.000271 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074600 +0.000183 0.000283 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000531 0.000709 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136200 +0.001272 0.002136 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.182800 +0.000070 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124400 +0.005216 0.010015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.177800 +0.001929 0.002526 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091800 +0.003553 0.004730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.262799 +0.000032 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000675 0.001132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089600 +0.000157 0.000252 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000012 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000293 0.000446 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069600 +0.001336 0.001779 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114400 +0.000072 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047400 +0.000604 0.000871 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000012 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000237 0.000310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117200 +0.000012 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046800 +0.000013 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091600 +0.000008 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000101 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000086 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.159200 +0.000088 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137200 +0.007247 0.010513 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098800 +0.000137 0.000163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069000 +0.000094 0.000135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.003167 0.004953 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086200 +0.000135 0.000181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082200 +0.000059 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.000018 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.000265 0.000343 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.000005 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000020 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000012 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000129 0.000193 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.000142 0.000273 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000770 0.001504 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117400 +0.000299 0.000478 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000204 0.000310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151200 +0.000102 0.000141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086600 +0.000026 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001180 0.001513 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.223800 +0.000022 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031400 +0.003414 0.004959 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079400 +0.000258 0.000344 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080200 +0.000081 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058200 +0.003423 0.004696 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.282999 +0.001287 0.001926 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000698 0.001075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.166200 +0.000014 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000764 0.001110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097000 +0.000147 0.000193 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000037 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000065 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.000279 0.000332 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.176000 +0.000120 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074000 +0.000109 0.000154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.001268 0.002143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.348599 +0.000012 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.191600 +0.000017 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001233 0.001732 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071800 +0.000038 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065400 +0.000102 0.000149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039800 +0.001416 0.001821 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096400 +0.000171 0.000272 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062400 +0.000293 0.000342 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096200 +0.000336 0.000433 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092200 +0.000015 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000287 0.000487 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.256399 +0.000015 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000117 0.000141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068800 +0.000066 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000135 0.000221 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000187 0.000271 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104200 +0.000351 0.000530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.001292 0.001656 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000290 0.000419 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068800 +0.000973 0.001366 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.413799 +0.001203 0.001775 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.441599 +0.000118 0.000188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000104 0.000146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000194 0.000292 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.003244 0.005334 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062400 +0.000043 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096600 +0.000787 0.001126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.175800 +0.000046 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000053 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000830 0.001239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099600 +0.000264 0.000313 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156800 +0.001668 0.002204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.001773 0.002597 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081400 +0.000088 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000080 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107200 +0.000430 0.000605 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074400 +0.000230 0.000295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082200 +0.000011 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000057 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.000025 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000934 0.001400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.000120 0.000195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000223 0.000312 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000181 0.000221 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.214800 +0.000101 0.000152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000058 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127600 +0.000102 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092200 +0.000023 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000361 0.000486 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129800 +0.000032 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000068 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095600 +0.000098 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000468 0.000816 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.000096 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000043 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074000 +0.000311 0.000444 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083000 +0.000061 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000032 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000608 0.000883 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099200 +0.000897 0.001300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083600 +0.000015 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000615 0.000827 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000005 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000434 0.000534 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078200 +0.000270 0.000286 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115000 +0.000048 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058200 +0.000151 0.000228 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000774 0.001008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111600 +0.000022 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000229 0.000332 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.000238 0.000353 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.000052 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030200 +0.000026 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000009 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000034 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001905 0.002203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.182000 +0.000204 0.000240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.205800 +0.000253 0.000374 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.000017 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000562 0.000694 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083600 +0.000523 0.000727 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101200 +0.000103 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085600 +0.000024 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049200 +0.000059 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036000 +0.000014 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000069 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000186 0.000270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089000 +0.000012 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086200 +0.001092 0.001406 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123600 +0.000203 0.000234 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122200 +0.000057 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106600 +0.000049 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000551 0.000802 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130400 +0.000041 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000015 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000096 0.000152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065400 +0.000335 0.000452 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.240400 +0.000044 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000022 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000125 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074000 +0.001563 0.002242 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069000 +0.000332 0.000475 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.171200 +0.000122 0.000197 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000077 0.000102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000478 0.000578 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.264399 +0.000180 0.000281 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087800 +0.002558 0.003920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136800 +0.000009 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000019 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003273 0.003877 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.355599 +0.000015 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.002360 0.002864 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088800 +0.000041 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.000038 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000051 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002727 0.003705 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000010 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000120 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000885 0.001502 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135800 +0.000075 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000168 0.000221 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.448399 +0.013773 0.022429 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126800 +0.000021 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000459 0.000540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122000 +0.000188 0.000281 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095400 +0.000189 0.000299 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.196000 +0.000908 0.001322 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000008 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000062 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000991 0.001480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.231200 +0.000339 0.000417 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.160000 +0.000080 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000882 0.001394 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000230 0.000302 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125600 +0.000179 0.000268 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080200 +0.002374 0.003021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104600 +0.000040 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000222 0.000289 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089000 +0.000193 0.000247 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000560 0.000786 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082000 +0.000980 0.001414 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088000 +0.000024 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000005 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000013 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000081 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000107 0.000144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047800 +0.000113 0.000155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134400 +0.000104 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075800 +0.000378 0.000524 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000044 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122000 +0.000769 0.001179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.000019 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030600 +0.003555 0.004608 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.233200 +0.000140 0.000187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000043 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000008 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000554 0.000630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.266999 +0.000156 0.000218 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078600 +0.003733 0.004445 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161800 +0.000041 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070200 +0.000178 0.000258 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087400 +0.001505 0.002116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153200 +0.000105 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065200 +0.001251 0.001640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071400 +0.001065 0.001638 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063600 +0.000033 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000112 0.000170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000158 0.000256 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078600 +0.000126 0.000223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000122 0.000195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000268 0.000300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.225600 +0.000034 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000495 0.000693 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085400 +0.000041 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034000 +0.000483 0.000661 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092200 +0.000195 0.000272 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.000086 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000118 0.000203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074800 +0.000055 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.002241 0.003360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.185600 +0.000010 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000087 0.000132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069800 +0.001638 0.002324 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.500599 +0.000034 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000644 0.000988 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000012 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.212600 +0.000574 0.000792 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.165800 +0.004440 0.006728 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.270999 +0.000083 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070200 +0.000118 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000011 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000420 0.000602 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000084 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097600 +0.000090 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095000 +0.000563 0.000686 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100200 +0.001184 0.001851 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.000094 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.405599 +0.000917 0.001389 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036400 +0.000138 0.000196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047400 +0.000045 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000137 0.000193 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089000 +0.000014 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000514 0.000655 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158400 +0.003280 0.003953 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.168600 +0.000006 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000023 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000443 0.000677 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091000 +0.000224 0.000344 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000611 0.000742 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104400 +0.000063 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.002400 0.004888 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.197800 +0.000123 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.140400 +0.000760 0.001225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.166600 +0.000301 0.000455 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059800 +0.000106 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082200 +0.000879 0.001231 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128600 +0.000356 0.000464 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000280 0.000328 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.179800 +0.000005 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000072 0.000091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078200 +0.000012 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000268 0.000364 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.169400 +0.000155 0.000234 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000033 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000047 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070200 +0.000656 0.001671 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.783798 +0.000431 0.000505 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000091 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100800 +0.000408 0.000567 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075800 +0.000034 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000028 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000393 0.000592 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043000 +0.000122 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071800 +0.000132 0.000192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129000 +0.000034 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000018 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076200 +0.000032 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000688 0.000935 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091000 +0.000144 0.000224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071400 +0.003616 0.005526 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052400 +0.001414 0.002129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.168000 +0.000627 0.001074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.235000 +0.000110 0.000164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000017 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084600 +0.000028 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.001262 0.001636 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104400 +0.000052 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.001207 0.001796 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096000 +0.000345 0.000506 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150800 +0.000121 0.000146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089000 +0.000112 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.000018 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000007 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.001528 0.002178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095400 +0.000059 0.000080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030800 +0.000039 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128000 +0.000234 0.000336 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083200 +0.000323 0.000433 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086000 +0.000713 0.000768 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.215400 +0.000259 0.000329 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.146800 +0.003179 0.004219 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.285599 +0.000554 0.000922 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115600 +0.001889 0.002976 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.181800 +0.001650 0.001959 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.285599 +0.000202 0.000282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095800 +0.001028 0.001415 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.001662 0.002256 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129400 +0.000353 0.000546 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047000 +0.000217 0.000330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.000184 0.000258 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.000107 0.000127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077800 +0.000144 0.000223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.000028 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000223 0.000352 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044400 +0.001729 0.002127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.183200 +0.000067 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036800 +0.000023 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107600 +0.000224 0.000294 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000038 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030600 +0.000215 0.000283 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086400 +0.000114 0.000150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081600 +0.006173 0.008246 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093800 +0.000131 0.000183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069200 +0.000182 0.000296 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.210000 +0.000035 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.309799 +0.000083 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000014 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000052 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000805 0.001235 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154800 +0.000118 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037200 +0.000309 0.000490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039800 +0.000029 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.000238 0.000351 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046000 +0.000024 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000026 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000548 0.000669 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151200 +0.000157 0.000207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092600 +0.000051 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.000063 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000027 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000184 0.000228 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000710 0.001000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117200 +0.000414 0.000566 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079400 +0.000093 0.000135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000007 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000034 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000319 0.000362 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150000 +0.000088 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.000316 0.000389 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000024 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000024 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000059 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077000 +0.003137 0.003763 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.361199 +0.002471 0.003290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.636599 +0.000189 0.000262 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.184000 +0.000100 0.000136 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.217200 +0.000200 0.000286 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000015 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000343 0.000511 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.320599 +0.002328 0.003466 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000761 0.001046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108000 +0.000027 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.000235 0.000272 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030400 +0.000061 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090200 +0.000118 0.000172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000079 0.000114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090200 +0.001824 0.002341 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.253199 +0.000201 0.000349 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.340799 +0.000021 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000122 0.000165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000067 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.000081 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000472 0.000735 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095400 +0.029916 0.046422 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000066 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000015 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000039 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000107 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073600 +0.000033 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000075 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132000 +0.000875 0.001007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086600 +0.001288 0.002511 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.184000 +0.000145 0.000213 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000856 0.001149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.002016 0.002814 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.647799 +0.000479 0.000716 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.227600 +0.000067 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000662 0.000805 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.279999 +0.000038 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000007 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000040 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000180 0.000233 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000233 0.000275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088200 +0.000026 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000681 0.000924 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070800 +0.000505 0.000837 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000046 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030800 +0.000122 0.000181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000051 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030200 +0.000028 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000089 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001227 0.001882 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.202600 +0.000138 0.000234 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.183600 +0.000110 0.000210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000037 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086600 +0.000937 0.001003 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156000 +0.000077 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083200 +0.000330 0.000502 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039800 +0.000282 0.000294 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.775798 +0.002272 0.003005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.529199 +0.000057 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000227 0.000292 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081400 +0.000044 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081600 +0.001320 0.001737 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.345199 +0.001211 0.001863 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076600 +0.000071 0.000102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.000071 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000127 0.000179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062400 +0.000021 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046800 +0.000286 0.000377 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122200 +0.000054 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031000 +0.000558 0.000680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076600 +0.000005 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000013 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000246 0.000380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.000242 0.000355 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000016 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000011 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000132 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.173600 +0.000261 0.000300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.180000 +0.000810 0.001242 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102200 +0.000192 0.000299 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000016 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000021 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000040 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076600 +0.000124 0.000204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.193400 +0.000186 0.000252 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000037 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000117 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.000068 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.000068 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000161 0.000249 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082800 +0.000566 0.000727 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.000299 0.000434 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.001207 0.001918 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129800 +0.000037 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.000018 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125800 +0.000114 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084400 +0.000147 0.000232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000273 0.000430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078000 +0.000065 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078000 +0.001646 0.002385 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068800 +0.000258 0.000373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079400 +0.000062 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000059 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122600 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000107 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112000 +0.000075 0.000132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000835 0.001101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.000361 0.000471 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.171800 +0.000215 0.000290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057400 +0.000013 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000107 0.000164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.003237 0.004984 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000082 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035400 +0.000105 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034400 +0.000009 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000020 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000829 0.001018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.299399 +0.000049 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037000 +0.000137 0.000228 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000719 0.001363 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098600 +0.000018 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000089 0.000115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.000079 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000012 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000117 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038600 +0.000031 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000330 0.000440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000255 0.000403 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069800 +0.000071 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065400 +0.000022 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001323 0.001805 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094200 +0.000075 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.000154 0.000240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.301999 +0.000019 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000030 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000005 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000064 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.165800 +0.000837 0.001198 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.000069 0.000108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108400 +0.000018 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000970 0.001372 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.221600 +0.000085 0.000124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002195 0.003009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.309599 +0.000027 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.000388 0.000558 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137400 +0.001464 0.001903 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.358399 +0.000056 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134800 +0.000716 0.000971 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087400 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000040 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.000048 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000134 0.000197 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000014 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000007 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000199 0.000292 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038000 +0.000070 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000064 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071800 +0.000006 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000101 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.001134 0.001344 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.389999 +0.000246 0.000317 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049200 +0.003858 0.005447 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.639599 +0.000036 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.000033 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117800 +0.000018 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001819 0.002764 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083400 +0.005022 0.007231 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090200 +0.000114 0.000144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.000372 0.000558 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.147600 +0.000039 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000204 0.000318 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000157 0.000183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.753998 +0.000086 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076400 +0.000532 0.000758 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081400 +0.000109 0.000181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110600 +0.000019 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.001012 0.001431 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139400 +0.000268 0.000389 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.204000 +0.000933 0.001319 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074600 +0.000382 0.000529 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068600 +0.000032 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000013 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000022 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000067 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094200 +0.000044 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090800 +0.000052 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000630 0.001007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137800 +0.000035 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091800 +0.000058 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.000413 0.000518 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101600 +0.000064 0.000091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.001623 0.001923 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157000 +0.000134 0.000198 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110400 +0.000029 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000058 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000096 0.000125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095200 +0.000054 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032800 +0.000084 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039400 +0.000027 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044400 +0.000283 0.000420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000132 0.000172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095600 +0.000024 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083400 +0.000418 0.000546 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.179600 +0.000160 0.000236 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089200 +0.002468 0.004508 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.191200 +0.000090 0.000124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000056 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000042 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078200 +0.000309 0.000439 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000188 0.000299 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095000 +0.000083 0.000127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000114 0.000176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132200 +0.000413 0.000678 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090400 +0.000009 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000285 0.000363 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.164800 +0.000197 0.000277 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068200 +0.001206 0.001595 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121200 +0.000009 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000123 0.000177 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000042 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000929 0.001539 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.259999 +0.000163 0.000208 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.140800 +0.000319 0.000530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.277799 +0.000270 0.000373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000003 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.140000 +0.000017 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000019 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000433 0.000636 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000587 0.000846 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.419199 +0.000001 0.000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000341 0.000390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.200000 +0.000272 0.000420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045200 +0.000034 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.000054 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094800 +0.000042 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111800 +0.000050 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000076 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000860 0.001285 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111200 +0.000058 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.002803 0.003593 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.261599 +0.000387 0.000555 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090800 +0.000279 0.000394 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085400 +0.000104 0.000152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037200 +0.001108 0.001870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057400 +0.000057 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042400 +0.000053 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000025 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000145 0.000203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.250400 +0.000757 0.001174 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.197400 +0.000013 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000016 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.204200 +0.000373 0.000455 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.251599 +0.000083 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079400 +0.000268 0.000457 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033400 +0.000123 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000357 0.000469 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122400 +0.000042 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000512 0.000811 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153200 +0.000135 0.000175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111600 +0.000052 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000350 0.000391 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130800 +0.001441 0.001936 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158400 +0.000108 0.000160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000087 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093600 +0.000617 0.000797 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082800 +0.000514 0.000919 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108200 +0.000087 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000494 0.000632 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083000 +0.000021 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000012 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000307 0.000496 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079800 +0.000023 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000622 0.000918 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100000 +0.001186 0.001846 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000193 0.000279 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074600 +0.000013 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000015 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000011 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000237 0.000313 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098000 +0.000323 0.000508 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047400 +0.000029 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074000 +0.006796 0.010538 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.186200 +0.000048 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000099 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072800 +0.000036 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071200 +0.005626 0.008335 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093800 +0.001055 0.001190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.328199 +0.000062 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092000 +0.000166 0.000190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124800 +0.000073 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046800 +0.000138 0.000259 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112800 +0.002742 0.003935 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.162400 +0.000333 0.000473 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058200 +0.001530 0.002236 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093200 +0.000127 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.000192 0.000302 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037400 +0.000039 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056000 +0.000119 0.000166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.173200 +0.000020 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.000764 0.001019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.177000 +0.000405 0.000594 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081800 +0.000080 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000078 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000055 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.000395 0.000624 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.000874 0.001236 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069600 +0.000067 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038600 +0.014217 0.022659 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.216000 +0.000104 0.000137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000064 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000105 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069000 +0.000164 0.000251 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.002208 0.002791 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.332199 +0.000089 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.000082 0.000136 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.166800 +0.000028 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087600 +0.000815 0.001206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000051 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.001078 0.001744 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.170400 +0.000012 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000043 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000294 0.000469 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.147400 +0.000408 0.000617 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000034 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000275 0.000394 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000191 0.000269 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056000 +0.000245 0.000367 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.001551 0.002132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100200 +0.000041 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000088 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000908 0.001098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137400 +0.000023 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000141 0.000199 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000228 0.000321 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.246199 +0.000063 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130200 +0.000058 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078400 +0.000021 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.001334 0.001508 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.168400 +0.000022 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000011 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098800 +0.000084 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.000299 0.000403 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000015 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000024 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000096 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143600 +0.000480 0.000711 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.000133 0.000172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089200 +0.000040 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052400 +0.000192 0.000270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088600 +0.000181 0.000262 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000084 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000022 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.000064 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000120 0.000188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143400 +0.000194 0.000270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121200 +0.001097 0.001642 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093400 +0.004588 0.006468 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.443599 +0.000089 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097000 +0.000074 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.002116 0.002863 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079200 +0.000124 0.000178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078800 +0.000232 0.000312 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074000 +0.006102 0.008311 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095400 +0.002718 0.004146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086200 +0.000602 0.000702 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.152400 +0.000216 0.000271 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.145400 +0.000053 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000255 0.000345 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094400 +0.000109 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081400 +0.000005 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000550 0.000831 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.000114 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.000060 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.000020 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095600 +0.000005 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000060 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000012 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000424 0.000707 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000413 0.000514 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097200 +0.000237 0.000302 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002117 0.003058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.000028 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000078 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130200 +0.000011 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000060 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000071 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.000292 0.000412 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107800 +0.001174 0.001554 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.324999 +0.005852 0.010946 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.833398 +0.000173 0.000258 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.000397 0.000791 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155000 +0.001012 0.001624 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.245399 +0.000012 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069200 +0.000428 0.000641 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.141000 +0.000176 0.000235 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109600 +0.001084 0.001820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.532999 +0.000007 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000005 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000114 0.000155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000196 0.000233 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000147 0.000226 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058200 +0.000003 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.001417 0.001726 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.369399 +0.000226 0.000283 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107400 +0.000205 0.000264 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064000 +0.000048 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000057 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000599 0.001080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078400 +0.000162 0.000225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037400 +0.000039 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000028 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.000020 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117000 +0.001380 0.002005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.312999 +0.000098 0.000141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071800 +0.000033 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037800 +0.000175 0.000221 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090400 +0.000124 0.000182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000121 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000984 0.001437 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.288599 +0.000037 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000940 0.001456 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112400 +0.001360 0.001871 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.361399 +0.000113 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123000 +0.000032 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075800 +0.000015 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101600 +0.003490 0.005408 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125400 +0.000520 0.000528 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.299999 +0.000060 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000028 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000024 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000062 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000021 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031000 +0.000089 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000019 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036800 +0.000020 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000056 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.000276 0.000406 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000355 0.000701 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037200 +0.000004 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.225000 +0.000160 0.000227 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.000044 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000181 0.000282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000093 0.000146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033600 +0.000687 0.001122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000077 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100800 +0.000138 0.000176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135200 +0.000162 0.000223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000488 0.000649 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.163600 +0.000818 0.001214 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153800 +0.000165 0.000218 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076400 +0.000018 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000991 0.001416 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.474799 +0.000078 0.000123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000054 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000482 0.000638 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.404399 +0.001063 0.001923 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.861598 +0.000036 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000323 0.000408 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.000028 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000564 0.000783 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120400 +0.000156 0.000240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071000 +0.000124 0.000186 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032400 +0.000346 0.000522 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.213400 +0.000100 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.000093 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000136 0.000206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.001127 0.001337 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.166800 +0.004230 0.007364 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130000 +0.003687 0.005603 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074600 +0.000212 0.000270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099400 +0.000117 0.000161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.175000 +0.000270 0.000361 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125400 +0.000260 0.000294 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.273799 +0.000081 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047000 +0.000157 0.000225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059000 +0.000092 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000027 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030400 +0.016050 0.022683 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136000 +0.000113 0.000169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000014 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.001229 0.001807 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.169000 +0.000225 0.000333 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049200 +0.000214 0.000304 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037800 +0.000007 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.160200 +0.000132 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107400 +0.000418 0.000603 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.249599 +0.000110 0.000157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.000703 0.000885 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.288399 +0.000068 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.297999 +0.000031 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000088 0.000115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.003096 0.004014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157200 +0.000121 0.000185 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039800 +0.000172 0.000222 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117800 +0.000019 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.001155 0.001588 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.000060 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000054 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000715 0.001283 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087400 +0.000880 0.001365 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047000 +0.000229 0.000317 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098800 +0.023283 0.031733 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080200 +0.001023 0.001995 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121200 +0.000052 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000302 0.000411 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090600 +0.003683 0.005036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.202400 +0.000085 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000519 0.000757 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084800 +0.001930 0.003000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087400 +0.000088 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100000 +0.000009 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.318799 +0.000974 0.001303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114200 +0.000047 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000488 0.000712 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000771 0.001138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000781 0.001066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000024 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000035 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.000390 0.000549 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091600 +0.000104 0.000170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000119 0.000162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072800 +0.000089 0.000157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121000 +0.000288 0.000428 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000985 0.001397 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.146600 +0.000026 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000018 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000005 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000023 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000110 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000028 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000671 0.000818 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100600 +0.007755 0.009336 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.001790 0.002091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137000 +0.000472 0.000662 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091000 +0.000189 0.000264 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.452599 +0.000201 0.000306 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.000072 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000233 0.000379 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.162800 +0.000109 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.284399 +0.000335 0.000471 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.209000 +0.000010 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000214 0.000342 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079600 +0.000051 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000229 0.000339 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000196 0.000326 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.147000 +0.001654 0.002496 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063600 +0.000868 0.001235 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.456399 +0.001109 0.002019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116400 +0.000676 0.001251 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077000 +0.000004 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000268 0.000350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000564 0.000735 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.002698 0.003549 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103600 +0.000162 0.000206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101600 +0.000253 0.000329 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117800 +0.000034 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000182 0.000264 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.000020 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000049 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038000 +0.000204 0.000300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000077 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036000 +0.007203 0.014940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161000 +0.000395 0.000548 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069200 +0.000196 0.000257 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109000 +0.000093 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000053 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047400 +0.000097 0.000146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000027 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000084 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000181 0.000254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.324799 +0.000045 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000030 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000068 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000066 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.000047 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000253 0.000388 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.000695 0.000875 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.233200 +0.000096 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134200 +0.002227 0.002623 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108600 +0.000127 0.000161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091000 +0.000090 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118000 +0.000046 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.000121 0.000191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000169 0.000260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126800 +0.000320 0.000465 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083000 +0.000334 0.000390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101200 +0.000278 0.000385 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.180400 +0.000160 0.000221 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047000 +0.000053 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000012 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039200 +0.000021 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000769 0.001032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110600 +0.000047 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074400 +0.000062 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000231 0.000306 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.197000 +0.000108 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.197600 +0.000176 0.000258 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069400 +0.000425 0.000575 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000043 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.000214 0.000304 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.251799 +0.000253 0.000378 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.315799 +0.000035 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000042 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.002926 0.003812 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136000 +0.004744 0.006943 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.230200 +0.000022 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000507 0.000643 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000052 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115800 +0.000014 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000283 0.000359 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134200 +0.000028 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034800 +0.000285 0.000373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111200 +0.000029 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000013 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000054 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000197 0.000284 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.001660 0.002388 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.318199 +0.000055 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046800 +0.000032 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000203 0.000326 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000074 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000472 0.001059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.274799 +0.000004 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000112 0.000165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031400 +0.000018 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000049 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097000 +0.000069 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047000 +0.000070 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000100 0.000144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100200 +0.000029 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000171 0.000225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097200 +0.000041 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.000028 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.000014 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000431 0.000552 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101200 +0.000143 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.188000 +0.000478 0.000747 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039800 +0.000040 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067800 +0.000306 0.000424 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099200 +0.000144 0.000190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.166000 +0.000214 0.000301 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000009 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000015 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032200 +0.000039 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000439 0.000533 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001259 0.001518 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.341199 +0.000050 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000092 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000023 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046000 +0.000238 0.000358 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.000099 0.000154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047200 +0.000041 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.000132 0.000172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081200 +0.000270 0.000355 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074800 +0.000080 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046000 +0.000189 0.000227 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000052 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000167 0.000237 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045200 +0.000076 0.000091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133400 +0.000098 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.000052 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000042 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000024 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000020 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.138400 +0.000151 0.000225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041400 +0.000139 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000475 0.000732 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.000124 0.000163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.163400 +0.002467 0.004107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.172800 +0.000059 0.000080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032800 +0.000006 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.003429 0.005016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075200 +0.000026 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032200 +0.000023 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000108 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000037 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.005782 0.008546 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.313199 +0.000007 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000079 0.000114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000021 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091200 +0.000122 0.000169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062400 +0.004446 0.005399 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.147200 +0.000097 0.000125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000095 0.000124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000248 0.000303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068800 +0.000453 0.000679 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.463999 +0.000106 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000028 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039800 +0.000275 0.000326 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130200 +0.000419 0.000597 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000306 0.000450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000514 0.000718 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000108 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125600 +0.000271 0.000426 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000054 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000073 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046000 +0.001106 0.001383 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103800 +0.000093 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000007 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001739 0.002359 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114600 +0.000868 0.001103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.363799 +0.000585 0.000907 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063600 +0.000719 0.001057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086000 +0.000120 0.000152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000394 0.000465 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154600 +0.000258 0.000399 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.000221 0.000288 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000059 0.000080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000014 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000019 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080200 +0.000026 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000050 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082000 +0.001540 0.003401 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103800 +0.000055 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030400 +0.000151 0.000228 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000904 0.001142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094400 +0.000055 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092000 +0.000196 0.000275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.000122 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000003 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095000 +0.000113 0.000155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.000155 0.000233 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.000070 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000727 0.000892 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.243199 +0.000101 0.000146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000285 0.000445 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.220800 +0.000247 0.000343 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084000 +0.000143 0.000169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.265399 +0.002428 0.003217 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133600 +0.000067 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.004588 0.005569 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.356799 +0.000260 0.000352 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115200 +0.001650 0.002048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.267599 +0.015558 0.024696 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065200 +0.000086 0.000115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.162600 +0.000075 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000130 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134200 +0.000272 0.000344 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.415799 +0.000010 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000220 0.000330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.163400 +0.000035 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030400 +0.000724 0.001116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153400 +0.000128 0.000198 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.164600 +0.000512 0.000783 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000744 0.001023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112600 +0.000789 0.001048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114800 +0.000010 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000015 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000031 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000360 0.000619 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.172400 +0.000079 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000108 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000140 0.000225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000038 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109200 +0.000907 0.001213 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.170000 +0.000016 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000015 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001074 0.001339 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.000106 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081200 +0.000048 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000003 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000012 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000364 0.000599 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.321999 +0.000129 0.000201 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089600 +0.000189 0.000309 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000028 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000103 0.000161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000124 0.000207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000188 0.000249 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097800 +0.000043 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089400 +0.000005 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000083 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106400 +0.000987 0.001583 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047000 +0.000009 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000080 0.000119 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.002044 0.002587 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090400 +0.000008 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000399 0.000497 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.138400 +0.000099 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068000 +0.000039 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000147 0.000239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079400 +0.000259 0.000351 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.285599 +0.000039 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000759 0.001248 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.234000 +0.000060 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065400 +0.000019 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000078 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110800 +0.000072 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156400 +0.000173 0.000284 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000130 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000020 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.001244 0.001945 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110000 +0.000303 0.000353 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.243999 +0.000327 0.000443 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092400 +0.000127 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.000150 0.000238 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030400 +0.000264 0.000265 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000810 0.001098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.424399 +0.001134 0.001479 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131000 +0.001139 0.001688 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118800 +0.000135 0.000182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000029 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000269 0.000338 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.526599 +0.000111 0.000161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000156 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.138200 +0.000032 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000015 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.000527 0.000812 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073600 +0.002381 0.003111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133600 +0.001207 0.001403 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.320199 +0.002690 0.003714 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.370399 +0.000048 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.138800 +0.000122 0.000204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000362 0.000524 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.001157 0.001658 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.162600 +0.000005 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.000112 0.000155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088000 +0.000129 0.000198 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000304 0.000375 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000056 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000356 0.000508 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047000 +0.000008 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000053 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000209 0.000308 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037800 +0.000156 0.000231 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.000283 0.000400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.309599 +0.000597 0.000893 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124400 +0.000065 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000043 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.000067 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000063 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.167400 +0.002134 0.003333 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127800 +0.000139 0.000175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104200 +0.000019 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000024 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.000020 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115600 +0.000182 0.000192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000088 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039400 +0.000302 0.000497 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087400 +0.000073 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049200 +0.001117 0.001704 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000141 0.000192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066200 +0.000311 0.000519 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.182600 +0.000041 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033400 +0.000315 0.000431 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103600 +0.000036 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000052 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036400 +0.002421 0.002794 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.226200 +0.002149 0.003347 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093000 +0.000007 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000064 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.000075 0.000108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000026 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093800 +0.002309 0.003094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139400 +0.000055 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082000 +0.000068 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036000 +0.000012 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083400 +0.000036 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000579 0.000909 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000024 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000935 0.001334 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.219200 +0.000072 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.203000 +0.000199 0.000291 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104800 +0.000012 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000055 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065200 +0.000004 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001139 0.001729 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.000052 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000021 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000082 0.000114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000031 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036400 +0.002215 0.003487 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.334999 +0.000046 0.000080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001175 0.002426 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.201400 +0.000857 0.001043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099600 +0.000201 0.000311 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000774 0.001139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109600 +0.000140 0.000205 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000947 0.001419 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.000117 0.000192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085400 +0.000063 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094400 +0.000348 0.000520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.000073 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000283 0.000350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082000 +0.000041 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052400 +0.000013 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000023 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000323 0.000397 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.194000 +0.000183 0.000275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000195 0.000295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081200 +0.000408 0.000568 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082200 +0.000163 0.000222 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000062 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097200 +0.000372 0.000426 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108800 +0.000074 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.358399 +0.000001 0.000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000407 0.000593 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094800 +0.000021 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031000 +0.000242 0.000317 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070800 +0.000201 0.000239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.284199 +0.004943 0.008083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.160600 +0.000034 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096200 +0.000565 0.000836 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000073 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096600 +0.000064 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.000034 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001921 0.002647 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091800 +0.000483 0.000690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.166800 +0.000863 0.001231 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143800 +0.000016 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000018 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000040 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000107 0.000136 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071000 +0.000788 0.001165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066200 +0.002255 0.003344 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000360 0.000589 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.000907 0.001141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.197800 +0.000233 0.000270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114200 +0.000087 0.000129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.001877 0.002249 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.215800 +0.000055 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000234 0.000352 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.237800 +0.000268 0.000386 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049200 +0.000059 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.141600 +0.000851 0.001324 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.000329 0.000414 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.248999 +0.000228 0.000386 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000010 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000423 0.000537 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.275199 +0.000022 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000156 0.000190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154600 +0.000056 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002063 0.002449 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133800 +0.000062 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000176 0.000237 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078200 +0.000180 0.000264 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093600 +0.000013 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000470 0.000654 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000094 0.000127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067800 +0.000038 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.001023 0.001150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.204000 +0.000041 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000692 0.000994 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083600 +0.000192 0.000255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.000034 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000103 0.000147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000011 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003151 0.004065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110400 +0.000020 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.000037 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038000 +0.000312 0.000510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128200 +0.000092 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087600 +0.000089 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000087 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000950 0.001149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.160200 +0.000220 0.000336 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000005 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000047 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001516 0.002530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.146400 +0.000029 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077200 +0.000003 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000278 0.000334 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116200 +0.000150 0.000213 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000073 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.000363 0.000508 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.188200 +0.000001 0.000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000881 0.001157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143000 +0.000013 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000062 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000042 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.009396 0.015172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116600 +0.002800 0.004660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143400 +0.000057 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000112 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063600 +0.000112 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090400 +0.000072 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000008 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000016 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.009081 0.014553 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.000735 0.001100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000593 0.000772 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.172000 +0.000007 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000245 0.000347 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087800 +0.000074 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000010 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000176 0.000261 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000203 0.000278 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085000 +0.000030 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000170 0.000237 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.000079 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.001068 0.002580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.194200 +0.000012 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000023 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001959 0.002409 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.331399 +0.000215 0.000288 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078400 +0.000003 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000066 0.000097 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.000331 0.000389 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069000 +0.000123 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101400 +0.000031 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000014 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.029332 0.054743 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090400 +0.000092 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000092 0.000165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033400 +0.000273 0.000361 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000010 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000108 0.000146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000240 0.000366 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000443 0.000801 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.292999 +0.000023 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.000037 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042400 +0.000013 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036000 +0.000010 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.001081 0.001714 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.345799 +0.000119 0.000175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000028 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043000 +0.000059 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000532 0.000791 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100600 +0.000004 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000432 0.000560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158800 +0.002846 0.005166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000027 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000016 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000022 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000125 0.000188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000076 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039200 +0.000267 0.000364 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000028 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000598 0.000856 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000013 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000069 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000159 0.000213 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.407999 +0.000021 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033600 +0.000048 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.017244 0.024400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155200 +0.000101 0.000150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052400 +0.000045 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064000 +0.000040 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.001969 0.002908 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.209600 +0.000083 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000553 0.000740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069400 +0.002765 0.004408 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066000 +0.000071 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047000 +0.000135 0.000200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.000342 0.000451 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.201200 +0.000708 0.000853 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.226600 +0.000029 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000055 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125400 +0.000322 0.000494 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000017 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001159 0.001837 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102000 +0.000119 0.000164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000115 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094400 +0.000191 0.000221 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.191400 +0.000087 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056000 +0.000020 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000012 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000426 0.000576 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139000 +0.000061 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000346 0.000423 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108200 +0.001268 0.001654 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137400 +0.000422 0.000590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057400 +0.000478 0.000680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084400 +0.000520 0.000650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.207200 +0.000179 0.000298 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000084 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078600 +0.000027 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000069 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000181 0.000218 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134800 +0.000042 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113800 +0.000183 0.000233 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084000 +0.000056 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000960 0.001518 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.214200 +0.000075 0.000114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000039 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112600 +0.000023 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000060 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069200 +0.000008 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000018 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000312 0.000455 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089000 +0.000034 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046800 +0.000057 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081600 +0.000110 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000037 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.000042 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084800 +0.002059 0.002350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.201800 +0.000113 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070200 +0.000458 0.000524 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.814198 +0.000069 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.001568 0.002630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087600 +0.000033 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036400 +0.001161 0.001424 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.198200 +0.001352 0.002108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.147000 +0.000049 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.326199 +0.000128 0.000162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.000007 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000045 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087000 +0.000300 0.000391 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066200 +0.000230 0.000326 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120800 +0.000487 0.000744 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071200 +0.000376 0.000534 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.001420 0.002136 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108800 +0.000161 0.000240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032200 +0.000259 0.000315 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117600 +0.000114 0.000209 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.000275 0.000420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.250799 +0.000026 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080400 +0.000971 0.001336 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.718999 +0.000033 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000044 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.001017 0.001508 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084200 +0.000017 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000016 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000055 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033600 +0.000037 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.000035 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030200 +0.000086 0.000130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078400 +0.005732 0.006830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108800 +0.000152 0.000236 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000581 0.000792 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.202600 +0.000023 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000577 0.000611 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.346599 +0.000038 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002868 0.004154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119800 +0.000194 0.000260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059000 +0.000147 0.000172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125200 +0.000195 0.000272 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.001319 0.001452 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.259799 +0.001220 0.001951 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066000 +0.000010 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000671 0.000868 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.145400 +0.000152 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000039 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000016 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000139 0.000187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047000 +0.000533 0.000822 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079600 +0.000149 0.000205 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070600 +0.000020 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000027 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000032 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.005862 0.008977 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.257399 +0.000245 0.000319 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074400 +0.000464 0.000688 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000079 0.000132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.000808 0.001092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104200 +0.001610 0.002093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.351799 +0.000784 0.001137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000429 0.000632 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000242 0.000330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102600 +0.000083 0.000201 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.287599 +0.000258 0.000413 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.000298 0.000371 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.000050 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000014 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000200 0.000274 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092400 +0.000446 0.000459 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095000 +0.000274 0.000399 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.196400 +0.000195 0.000250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.254799 +0.000050 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000061 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000169 0.000212 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082800 +0.000202 0.000262 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.000119 0.000149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000157 0.000247 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000123 0.000182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000187 0.000262 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.000748 0.001173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.173800 +0.000015 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000012 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000081 0.000108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082200 +0.000051 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075200 +0.000055 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000040 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000021 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000363 0.000489 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090800 +0.000722 0.000866 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123200 +0.000425 0.000534 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.184200 +0.000455 0.000540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127200 +0.000049 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000033 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032200 +0.000121 0.000165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107400 +0.000244 0.000304 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.166200 +0.000095 0.000119 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.000456 0.000630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126000 +0.000009 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000245 0.000395 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132400 +0.000112 0.000136 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072400 +0.000457 0.001017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.174200 +0.001942 0.002457 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.170200 +0.006021 0.008706 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120000 +0.000063 0.000091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000121 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120200 +0.000037 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000005 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000014 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079600 +0.000049 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037400 +0.000137 0.000203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000713 0.001063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000041 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.000098 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101000 +0.000125 0.000163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000942 0.001584 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.218400 +0.000117 0.000147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086200 +0.016353 0.026568 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118800 +0.000074 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000174 0.000235 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.000322 0.000355 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.216800 +0.008343 0.011513 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132000 +0.001108 0.001909 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155600 +0.003761 0.005051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.165600 +0.000104 0.000115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000833 0.000986 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155000 +0.000017 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000030 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000333 0.000399 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000023 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000087 0.000119 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030200 +0.000024 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001000 0.001172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105000 +0.000047 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.363999 +0.000062 0.000091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073400 +0.000140 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110000 +0.000204 0.000234 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000342 0.000641 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.000107 0.000152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.000394 0.000620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102400 +0.000222 0.000352 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.005791 0.010431 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.000015 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000346 0.000370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.465199 +0.000278 0.000417 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073400 +0.000288 0.000330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.419199 +0.000073 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000576 0.000948 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091200 +0.000038 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.000113 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000314 0.000398 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.000023 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000165 0.000223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000408 0.000694 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.295599 +0.000126 0.000206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000204 0.000321 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000276 0.000352 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.000013 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000094 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000016 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000116 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072200 +0.000577 0.000871 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087600 +0.000023 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000084 0.000115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074200 +0.000050 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000054 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000372 0.000579 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074400 +0.000190 0.000260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000534 0.000832 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153000 +0.000958 0.001473 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042400 +0.001162 0.001756 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.478199 +0.000271 0.000326 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129200 +0.000784 0.001213 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.000134 0.000193 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031000 +0.000128 0.000183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.200200 +0.003210 0.004954 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124600 +0.000017 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059000 +0.000025 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032000 +0.000713 0.000915 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.181400 +0.000011 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000404 0.000489 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081200 +0.000365 0.000539 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.002466 0.003467 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076000 +0.000135 0.000197 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.000387 0.000635 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082800 +0.000344 0.000542 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115000 +0.000017 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000139 0.000192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033600 +0.000015 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000298 0.000442 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109000 +0.000039 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058400 +0.000062 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099400 +0.000026 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000062 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069200 +0.000164 0.000226 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000009 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000114 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.000445 0.000619 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136000 +0.000075 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000077 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068000 +0.001721 0.001944 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134200 +0.000021 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107000 +0.000156 0.000206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.000078 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000580 0.000677 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097000 +0.000153 0.000216 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.001275 0.001977 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000131 0.000164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.264199 +0.000599 0.000897 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073400 +0.000079 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000059 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036400 +0.000013 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000164 0.000225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.359599 +0.000116 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094600 +0.000024 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.001521 0.002567 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098000 +0.000625 0.000883 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.455799 +0.003433 0.004533 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127800 +0.000089 0.000123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000042 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000031 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129400 +0.001118 0.001891 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.217400 +0.001679 0.002565 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.265399 +0.000082 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046000 +0.000212 0.000344 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000036 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000544 0.000691 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.173000 +0.001998 0.002789 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.138000 +0.000076 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000158 0.000242 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000056 0.000091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032200 +0.000017 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000755 0.001078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.000493 0.000803 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121400 +0.000113 0.000150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100200 +0.000614 0.000921 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.215600 +0.000280 0.000419 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.000253 0.000344 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.000061 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155200 +0.000590 0.000781 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000007 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000107 0.000125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116600 +0.000246 0.000338 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.000117 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000020 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000454 0.000615 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.359599 +0.000364 0.000467 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039800 +0.000118 0.000136 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.854398 +0.000284 0.000411 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000068 0.000102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000007 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000068 0.000102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038000 +0.000029 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066200 +0.000159 0.000251 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090000 +0.000129 0.000200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.000031 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087200 +0.000433 0.000583 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064000 +0.000154 0.000234 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.000065 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104400 +0.000005 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000027 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000072 0.000097 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000148 0.000211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032800 +0.000055 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000059 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000391 0.000400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000031 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.000714 0.000823 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.234800 +0.000105 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062400 +0.000209 0.000268 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108200 +0.001037 0.001340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129000 +0.000010 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.001864 0.002199 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.242200 +0.000104 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.002708 0.006013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.392799 +0.000112 0.000178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000245 0.000386 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.001109 0.001547 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.354199 +0.000036 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090400 +0.000011 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000415 0.000585 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.001370 0.001589 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.511199 +0.011203 0.014484 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.164000 +0.000022 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033400 +0.000042 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076000 +0.000148 0.000211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085400 +0.000258 0.000445 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.188400 +0.000023 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000227 0.000279 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000052 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000181 0.000242 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083200 +0.000134 0.000221 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.000414 0.000655 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.163000 +0.000388 0.000577 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086200 +0.000074 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.504399 +0.002368 0.003103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.357999 +0.000735 0.000879 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.382599 +0.001069 0.001229 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106400 +0.000126 0.000179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068200 +0.000159 0.000211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044400 +0.000043 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000076 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088200 +0.000105 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086600 +0.000064 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001591 0.001952 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.162400 +0.000439 0.000632 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096400 +0.000523 0.000585 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.597399 +0.000029 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000371 0.000532 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.001626 0.001998 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.255399 +0.000174 0.000270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107600 +0.000162 0.000208 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124600 +0.000014 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038000 +0.000009 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000096 0.000132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047400 +0.000308 0.000420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082000 +0.002336 0.002805 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.301599 +0.001218 0.001227 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.162600 +0.000062 0.000102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059800 +0.000087 0.000114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000053 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000243 0.000379 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000515 0.000809 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.259599 +0.000048 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032800 +0.000022 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000138 0.000240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077000 +0.000123 0.000169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.204000 +0.001356 0.001813 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120000 +0.000995 0.001251 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065200 +0.000114 0.000211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.249999 +0.000041 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000071 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.001048 0.001561 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000753 0.001148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084800 +0.000179 0.000283 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.000378 0.000510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126600 +0.000134 0.000175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133000 +0.000411 0.000660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.190000 +0.000034 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.000250 0.000356 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000067 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.001499 0.001773 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.247599 +0.000054 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000028 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108400 +0.000072 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000265 0.000415 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111400 +0.000031 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.000010 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000021 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000033 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000091 0.000129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.000287 0.000439 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096400 +0.000202 0.000342 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.207800 +0.000033 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156600 +0.000378 0.000453 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.145400 +0.000050 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.000003 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.001417 0.002046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.000184 0.000264 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.001066 0.001569 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.000019 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.000061 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000609 0.000983 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.162200 +0.000009 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000368 0.000523 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000045 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000105 0.000147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047200 +0.000162 0.000261 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.000211 0.000340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.000264 0.000337 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074600 +0.000163 0.000208 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.289599 +0.000037 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030600 +0.000042 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000547 0.000682 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122000 +0.000064 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034000 +0.000190 0.000240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000048 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030400 +0.000068 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000198 0.000266 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000105 0.000126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.475999 +0.000180 0.000231 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115200 +0.000133 0.000177 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037400 +0.000290 0.000363 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.177000 +0.000718 0.001007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085200 +0.000029 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058400 +0.001800 0.002376 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143200 +0.000097 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084000 +0.001719 0.002144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158000 +0.000538 0.000753 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.229600 +0.000108 0.000165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000008 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000208 0.000275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.368399 +0.002527 0.003882 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.294199 +0.000060 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092000 +0.000603 0.000698 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.206800 +0.000094 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069400 +0.002508 0.003655 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.285599 +0.000027 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086800 +0.000904 0.001423 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113200 +0.000005 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000027 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030400 +0.000274 0.000366 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085400 +0.001588 0.002141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102800 +0.000111 0.000133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137800 +0.000011 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001026 0.001523 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091800 +0.000343 0.000495 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069200 +0.000206 0.000265 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158000 +0.000484 0.000804 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000162 0.000214 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133200 +0.000016 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078400 +0.000141 0.000204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126000 +0.000077 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000705 0.001140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000031 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000149 0.000195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161000 +0.001750 0.002409 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150400 +0.000002 0.000003 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000157 0.000237 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000646 0.000977 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.000255 0.000372 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077000 +0.000343 0.000511 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.000045 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000077 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000066 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.000062 0.000097 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000211 0.000267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101400 +0.000194 0.000274 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000048 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056000 +0.000090 0.000132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056000 +0.000119 0.000154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000232 0.000348 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000416 0.000634 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.307399 +0.000753 0.001082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074000 +0.000234 0.000283 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073400 +0.000129 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.224000 +0.000019 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000114 0.000150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.000031 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000023 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087600 +0.001900 0.002505 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.274199 +0.000024 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000665 0.000844 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091600 +0.000298 0.000398 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.197600 +0.001550 0.001987 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094400 +0.000166 0.000234 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000065 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059800 +0.000366 0.000536 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115600 +0.002840 0.003573 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.250999 +0.000031 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000393 0.000510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118800 +0.000077 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000027 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.001680 0.002358 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076400 +0.000013 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.000275 0.000444 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000019 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038000 +0.001746 0.002008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107400 +0.000004 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000097 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093800 +0.001250 0.001994 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000247 0.000317 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000157 0.000240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104000 +0.000483 0.000767 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.004251 0.006845 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153200 +0.000403 0.000498 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120200 +0.000024 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000056 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096800 +0.000260 0.000408 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.000144 0.000199 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.245599 +0.000043 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000048 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000853 0.001213 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.481199 +0.000010 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000925 0.001336 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000831 0.000965 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151600 +0.000136 0.000209 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.000171 0.000281 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001170 0.001537 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132200 +0.000124 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131400 +0.002238 0.003664 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.220600 +0.000015 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000120 0.000163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.000167 0.000198 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135000 +0.000417 0.000478 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100600 +0.000021 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000072 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087000 +0.000210 0.000322 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000143 0.000221 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000147 0.000240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000388 0.000487 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.000072 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000046 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099200 +0.000149 0.000172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000049 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000048 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126000 +0.000037 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.000103 0.000155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000244 0.000330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.171000 +0.000077 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.000361 0.000531 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.444799 +0.000154 0.000188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097600 +0.000344 0.000703 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.278599 +0.000178 0.000232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081600 +0.000156 0.000214 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155200 +0.000260 0.000402 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000315 0.000394 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123600 +0.000035 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047200 +0.001638 0.002252 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058400 +0.000149 0.000211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128200 +0.000483 0.000607 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097600 +0.000601 0.000871 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.001229 0.001844 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079400 +0.000049 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000028 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000016 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039400 +0.000031 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032000 +0.000012 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034000 +0.000140 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.200200 +0.001684 0.002086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.656999 +0.000229 0.000260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151600 +0.000213 0.000498 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128600 +0.000043 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000027 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001550 0.002319 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.172200 +0.000148 0.000224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047200 +0.002133 0.003097 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.000720 0.000992 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133200 +0.000043 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076200 +0.000350 0.000435 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110000 +0.000020 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000010 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000259 0.000386 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069600 +0.000011 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000151 0.000226 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071400 +0.000317 0.000417 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000067 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000018 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000010 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000071 0.000115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.000069 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000894 0.001123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091400 +0.000010 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000708 0.000969 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000051 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000089 0.000144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.000509 0.000613 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125400 +0.000022 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000289 0.000419 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071800 +0.001601 0.002326 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000062 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071000 +0.000379 0.000541 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000041 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.178800 +0.000340 0.000443 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.428799 +0.000121 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.371799 +0.000018 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000473 0.000697 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067800 +0.000622 0.000796 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091800 +0.000808 0.001116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.219200 +0.000283 0.000434 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000248 0.000365 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.008087 0.011684 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.201800 +0.000021 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000035 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114600 +0.000074 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.002612 0.004185 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090600 +0.000228 0.000369 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000459 0.000705 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058400 +0.000127 0.000178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096200 +0.000028 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000003 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000438 0.000525 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003003 0.004054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100000 +0.007366 0.010814 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.000051 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001956 0.002473 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.226800 +0.000011 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000258 0.000391 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000261 0.000439 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090600 +0.000295 0.000453 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.000142 0.000344 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122400 +0.001767 0.002477 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.232200 +0.000011 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153400 +0.000033 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000402 0.000554 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094200 +0.000159 0.000211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.000131 0.000158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000085 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113000 +0.000070 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000196 0.000299 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000083 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.271399 +0.000523 0.000681 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.385999 +0.002006 0.002394 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.278199 +0.000353 0.000556 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.000032 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.000755 0.001697 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084400 +0.000010 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001492 0.002573 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110800 +0.003606 0.005449 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.204000 +0.000112 0.000135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000085 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089800 +0.000032 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000180 0.000195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.288199 +0.003887 0.005423 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.140200 +0.000016 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155400 +0.000735 0.000907 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111600 +0.000033 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000051 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072800 +0.000146 0.000222 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076600 +0.000282 0.000405 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086000 +0.003017 0.006358 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.301199 +0.002029 0.002735 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.205200 +0.000038 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.464599 +0.000224 0.000277 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080200 +0.000061 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161800 +0.000109 0.000150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000055 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101000 +0.000011 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000639 0.000885 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.159400 +0.000049 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000058 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091600 +0.000065 0.000108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.000044 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000101 0.000137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.159200 +0.003833 0.005198 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.345199 +0.000186 0.000249 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047400 +0.000005 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000050 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.001259 0.001757 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081800 +0.000045 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.001220 0.001664 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.002132 0.003315 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063600 +0.000110 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056000 +0.000143 0.000219 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.001412 0.001579 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.343399 +0.000416 0.000563 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069400 +0.000445 0.000578 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122200 +0.000022 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000198 0.000321 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.000164 0.000262 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000011 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.001063 0.001313 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150200 +0.000097 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.000268 0.000354 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058200 +0.000872 0.001496 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000044 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000113 0.000174 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000035 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000053 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036800 +0.000005 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000088 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000050 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096200 +0.000771 0.000907 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151000 +0.000018 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000369 0.000445 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130600 +0.000007 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000037 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.002195 0.003213 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128600 +0.000027 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000510 0.000670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083000 +0.000263 0.000343 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083200 +0.000025 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000039 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.001089 0.001477 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113400 +0.000052 0.000080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000034 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000010 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000081 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003378 0.005665 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081200 +0.000010 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000022 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000913 0.001490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.010314 0.014875 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.315799 +0.000023 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000141 0.000193 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101800 +0.000278 0.000485 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.650799 +0.008681 0.012805 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.269999 +0.001482 0.002185 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000269 0.000369 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000060 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031400 +0.001341 0.002380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000111 0.000175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041400 +0.000152 0.000223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057400 +0.000022 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038600 +0.000009 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000161 0.000212 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102400 +0.000013 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000069 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.001120 0.001765 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.000055 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059800 +0.000082 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134200 +0.000050 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037400 +0.000034 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000019 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000182 0.000229 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.000065 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.218200 +0.000655 0.000889 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129200 +0.000013 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000100 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.433999 +0.000200 0.000297 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045200 +0.000183 0.000276 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030800 +0.009292 0.012399 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102800 +0.000196 0.000271 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066000 +0.000039 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046400 +0.000178 0.000244 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.000151 0.000201 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068600 +0.000112 0.000187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084800 +0.000294 0.000374 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103800 +0.000260 0.000357 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082000 +0.000031 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.002526 0.002929 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.556199 +0.000076 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.000014 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001776 0.002435 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107200 +0.002103 0.002443 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.244799 +0.000022 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117000 +0.000053 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000353 0.000754 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.163600 +0.000366 0.000503 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.167800 +0.001049 0.001275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038600 +0.001865 0.002246 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.260199 +0.003165 0.004506 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142000 +0.000018 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.000141 0.000185 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.003142 0.004842 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.000303 0.000385 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091600 +0.000308 0.000393 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109200 +0.000022 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000928 0.001152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102400 +0.000327 0.000491 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000005 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000234 0.000331 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.152800 +0.000024 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.000014 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000027 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112600 +0.000220 0.000317 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.000305 0.000622 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132600 +0.000051 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.000201 0.000280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000109 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000122 0.000165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123600 +0.000066 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000050 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.000019 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032000 +0.000019 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000396 0.000600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.000077 0.000123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000077 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056000 +0.000007 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031800 +0.000204 0.000303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.000024 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.000045 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.000010 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000415 0.000528 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.261199 +0.000001 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000068 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121600 +0.000898 0.001081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123600 +0.000069 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000020 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.152800 +0.004644 0.007044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.237800 +0.000765 0.001111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.204800 +0.000489 0.000651 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157000 +0.000284 0.000394 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.159600 +0.000207 0.000267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068000 +0.000023 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000028 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000031 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000222 0.000300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000031 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075800 +0.007370 0.010612 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094200 +0.000028 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.249999 +0.001143 0.001312 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131000 +0.000354 0.000464 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068800 +0.000148 0.000195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000249 0.000314 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001503 0.002471 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082400 +0.000556 0.000721 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100200 +0.000731 0.001053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.001567 0.002754 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.352599 +0.000406 0.000535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.199200 +0.000170 0.000222 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063600 +0.000231 0.000301 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.138800 +0.000735 0.001043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057400 +0.000008 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000035 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000073 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068800 +0.000688 0.000865 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133400 +0.000005 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000022 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038600 +0.000005 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000078 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.000009 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000015 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095000 +0.000225 0.000337 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000026 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075800 +0.000328 0.000434 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000060 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000029 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000029 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123400 +0.000058 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076200 +0.000031 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000009 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000243 0.000320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.549599 +0.000052 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000105 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000049 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.001357 0.001755 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088200 +0.000307 0.000442 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000017 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000066 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074800 +0.000327 0.000494 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000112 0.000130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002468 0.002966 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.211200 +0.000331 0.000460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000005 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000482 0.000723 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047400 +0.000026 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000037 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000026 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000088 0.000115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.000216 0.000320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000556 0.000803 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126800 +0.000171 0.000234 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.252399 +0.001076 0.001590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104200 +0.000062 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.001491 0.002474 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.230400 +0.000067 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000137 0.000191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069000 +0.000034 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000514 0.000624 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.188000 +0.000080 0.000124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.003650 0.005553 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.000095 0.000125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.168400 +0.001876 0.003311 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074600 +0.000209 0.000332 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000014 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000222 0.000313 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077800 +0.000007 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097600 +0.000231 0.000360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000095 0.000123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071800 +0.000035 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000194 0.000281 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.000701 0.001058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082200 +0.000008 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000122 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121200 +0.000029 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.001434 0.002252 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084200 +0.000588 0.001034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001033 0.001397 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.313599 +0.000183 0.000246 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080200 +0.000003 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.318799 +0.001788 0.002678 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125200 +0.000087 0.000114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000064 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.159800 +0.000364 0.000454 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075400 +0.001423 0.002079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122000 +0.001028 0.001645 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.000047 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078000 +0.000030 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000185 0.000245 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049200 +0.000137 0.000205 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075800 +0.001516 0.001954 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.525599 +0.000135 0.000201 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000413 0.000569 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071200 +0.000022 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000074 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000494 0.000535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.179800 +0.000575 0.000700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.193600 +0.001591 0.002359 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077000 +0.000015 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143600 +0.000136 0.000181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.000333 0.000488 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127600 +0.000222 0.000305 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000056 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000019 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000734 0.000951 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142000 +0.002726 0.003633 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000011 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000170 0.000231 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000619 0.000860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137000 +0.000021 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000020 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000015 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049200 +0.000066 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000901 0.001052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.426799 +0.000470 0.000653 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000015 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000477 0.000672 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117400 +0.000018 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.290599 +0.000005 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000026 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000345 0.000491 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.000033 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000038 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.414799 +0.000104 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078400 +0.009514 0.014943 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.002539 0.003640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.185600 +0.000118 0.000190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000380 0.000942 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105400 +0.000317 0.000438 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084400 +0.000021 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000026 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000997 0.001479 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109800 +0.005101 0.007694 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.180400 +0.000409 0.000562 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.165600 +0.000125 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151200 +0.000113 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001439 0.001944 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073600 +0.000024 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.002137 0.002975 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.225400 +0.000787 0.000886 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.200200 +0.000629 0.000797 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.776198 +0.000050 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000020 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000028 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143000 +0.000821 0.001154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.297199 +0.000080 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069400 +0.000870 0.001097 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.290399 +0.000023 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000521 0.000705 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.000048 0.000080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035200 +0.000026 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.254199 +0.000092 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000026 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000001 0.000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000113 0.000166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000011 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000302 0.000450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052400 +0.000724 0.000914 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102400 +0.000126 0.000163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031400 +0.000261 0.000384 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096200 +0.000048 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035400 +0.000014 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000940 0.001364 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070600 +0.004779 0.005330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.512799 +0.002293 0.003441 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.307199 +0.000468 0.000685 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057400 +0.000022 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.000176 0.000284 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000114 0.000154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070200 +0.003137 0.003910 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.360799 +0.000029 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000020 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002839 0.003861 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.000680 0.001117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.146800 +0.000012 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000041 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000550 0.000909 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.000023 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086200 +0.000239 0.000388 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.000056 0.000080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000055 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034400 +0.000099 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130400 +0.003299 0.003955 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.138200 +0.000078 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000323 0.000488 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104000 +0.000211 0.000232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.350599 +0.000065 0.000097 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000045 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077800 +0.000019 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121000 +0.002144 0.002486 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.289199 +0.003295 0.004400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.147200 +0.000074 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000044 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031000 +0.000053 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000029 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000062 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000002 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001074 0.001314 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.640999 +0.000140 0.000188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082800 +0.000163 0.000248 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.007530 0.014775 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.172400 +0.000245 0.000361 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091600 +0.000092 0.000124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.000055 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.145000 +0.000141 0.000212 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000135 0.000209 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000917 0.001170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.314199 +0.000184 0.000261 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069600 +0.000199 0.000267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124600 +0.000214 0.000293 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.000050 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084400 +0.000075 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000819 0.001119 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.265999 +0.000804 0.001143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.201200 +0.000143 0.000234 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.344399 +0.001619 0.002532 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083200 +0.001309 0.001925 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.000094 0.000124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078200 +0.000740 0.001187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.000074 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044400 +0.003574 0.006605 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.207600 +0.000015 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000028 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037800 +0.000034 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000185 0.000281 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137600 +0.001630 0.002576 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000077 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000020 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000048 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.218400 +0.000013 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.001248 0.003246 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154600 +0.000033 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102600 +0.000067 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.000544 0.000626 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097400 +0.000090 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000044 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084800 +0.000033 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000439 0.000456 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000210 0.000284 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000036 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000797 0.001206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119200 +0.000081 0.000124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031800 +0.002457 0.004205 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121800 +0.000592 0.000929 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125600 +0.000192 0.000247 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073400 +0.000009 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000018 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000028 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000034 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066200 +0.000246 0.000299 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.000022 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000060 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000177 0.000257 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000143 0.000197 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076200 +0.000085 0.000119 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.000300 0.000363 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.241000 +0.001030 0.001518 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.000406 0.000567 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000654 0.000888 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057400 +0.000051 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.000087 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.742399 +0.000212 0.000311 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096000 +0.000615 0.000891 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116000 +0.001229 0.001486 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101200 +0.000123 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000008 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000153 0.000187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091400 +0.000377 0.000768 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.180200 +0.000290 0.000451 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000288 0.000368 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070600 +0.000010 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000139 0.000166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000834 0.001125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.198400 +0.000676 0.000973 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.000031 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.005132 0.008568 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079800 +0.000104 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000762 0.001224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036400 +0.000023 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123600 +0.000024 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000086 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000063 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000161 0.000251 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.004953 0.008548 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093200 +0.000355 0.000489 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114600 +0.000483 0.000631 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100600 +0.000005 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000421 0.000614 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081800 +0.000018 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000010 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000043 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.000017 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000011 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.000072 0.000114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000070 0.000102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.000059 0.000091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000071 0.000114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000060 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090200 +0.000071 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.000094 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104800 +0.000102 0.000146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043000 +0.000169 0.000322 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.310199 +0.000543 0.000641 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.166200 +0.000103 0.000144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112000 +0.002546 0.003068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150800 +0.000013 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000941 0.001541 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127600 +0.000412 0.000510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105000 +0.000125 0.000165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092800 +0.000006 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000138 0.000224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.001267 0.001596 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120600 +0.000062 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082200 +0.000183 0.000211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.180200 +0.000017 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000189 0.000276 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.315599 +0.000013 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000427 0.000648 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070800 +0.000005 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000759 0.000765 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.200000 +0.003944 0.005152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098000 +0.000523 0.000773 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066000 +0.000051 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000011 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000140 0.000149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.329199 +0.000005 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.159400 +0.000053 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036800 +0.005041 0.005949 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.497399 +0.000846 0.001100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.147800 +0.003232 0.004487 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.247399 +0.000021 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043000 +0.000124 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069800 +0.000607 0.000715 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.269199 +0.000052 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000001 0.000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003198 0.004810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.166200 +0.000030 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113000 +0.001072 0.001563 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046000 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000026 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000303 0.000417 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070600 +0.000020 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000039 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000200 0.000298 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094200 +0.000014 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000024 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.138000 +0.000040 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.177400 +0.000810 0.001113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.194200 +0.001447 0.002048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102000 +0.000006 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000079 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.188000 +0.000460 0.000693 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000449 0.000594 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.146000 +0.002837 0.004750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122400 +0.000042 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094600 +0.001473 0.001932 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.185400 +0.000282 0.000398 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000026 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000043 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154200 +0.000337 0.000524 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000182 0.000239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084000 +0.004072 0.006233 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.202800 +0.000029 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076200 +0.000040 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003950 0.006169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087600 +0.000039 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.005023 0.006189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136600 +0.000408 0.000536 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106400 +0.000581 0.000702 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097200 +0.000305 0.000427 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.174200 +0.005128 0.007090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.209400 +0.000078 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000021 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000045 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000432 0.000807 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.193400 +0.000012 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000211 0.000338 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046400 +0.000001 0.000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000043 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000794 0.001244 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000460 0.000703 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.000085 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066000 +0.002593 0.004074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.208800 +0.001424 0.001739 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124800 +0.000135 0.000152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092800 +0.000417 0.000427 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142600 +0.000822 0.001087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065200 +0.000021 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000102 0.000137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059000 +0.000216 0.000265 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122400 +0.000054 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000002 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000065 0.000097 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000041 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000323 0.000463 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083400 +0.001438 0.002350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137400 +0.000468 0.000640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112200 +0.000006 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000493 0.000641 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087600 +0.000062 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000041 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000942 0.001311 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.353399 +0.000225 0.000290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000199 0.000310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000036 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000011 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000043 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031400 +0.000111 0.000150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000871 0.001354 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000481 0.000549 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.371799 +0.000064 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030400 +0.000128 0.000189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.322399 +0.000580 0.000840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000020 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111600 +0.000082 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059000 +0.000232 0.000303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.307199 +0.000052 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.000011 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000950 0.001356 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107000 +0.000024 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000175 0.000312 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117600 +0.000059 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.328199 +0.000010 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000280 0.000311 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131200 +0.000251 0.000412 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.323799 +0.004605 0.007197 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125800 +0.000181 0.000281 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000015 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000047 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000131 0.000157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081600 +0.000328 0.000519 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034400 +0.000354 0.000459 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085000 +0.000090 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.193000 +0.000027 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001096 0.001602 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.211600 +0.000714 0.001999 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139400 +0.000273 0.000394 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032200 +0.000062 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.001660 0.002817 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077400 +0.000007 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.001322 0.001636 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.334599 +0.001726 0.002421 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091600 +0.011192 0.016075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086200 +0.002296 0.002638 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.269799 +0.000661 0.001197 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.309399 +0.001481 0.002138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.170600 +0.000013 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000204 0.000294 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123000 +0.000068 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000010 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000020 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000099 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.002358 0.004373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.709999 +0.000068 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000442 0.000570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.195800 +0.000364 0.000476 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.149400 +0.000501 0.000720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.000016 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000372 0.000550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000265 0.000374 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.216000 +0.000089 0.000119 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.001407 0.002173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095000 +0.000303 0.000310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000148 0.000232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.001406 0.001591 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161400 +0.000724 0.000809 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.395799 +0.000928 0.001632 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081200 +0.000652 0.000799 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.000130 0.000181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.000867 0.001278 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094600 +0.000008 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000058 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.000312 0.000459 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139400 +0.000047 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072800 +0.000056 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081800 +0.000017 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066200 +0.000148 0.000210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.000124 0.000188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000040 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000144 0.000177 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000033 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001208 0.002203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123000 +0.000181 0.000264 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032200 +0.000127 0.000179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086600 +0.000597 0.000820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121000 +0.000577 0.000837 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.193600 +0.000294 0.000362 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111200 +0.000012 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112600 +0.000189 0.000279 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070800 +0.000181 0.000274 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.166800 +0.000043 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000072 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077000 +0.000042 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037800 +0.000009 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001022 0.001231 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104400 +0.000246 0.000315 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000168 0.000217 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112600 +0.000081 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084800 +0.000180 0.000269 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073600 +0.000252 0.000341 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071000 +0.000054 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000017 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000439 0.000654 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085800 +0.000178 0.000237 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122200 +0.000086 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.152800 +0.000078 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034400 +0.000214 0.000275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071800 +0.000101 0.000135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072800 +0.000378 0.000547 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084600 +0.000095 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.002271 0.003011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.304199 +0.000184 0.000239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089000 +0.000177 0.000279 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128400 +0.000255 0.000369 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.160600 +0.000121 0.000166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110200 +0.000090 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000129 0.000178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000665 0.001030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076600 +0.000229 0.000304 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105600 +0.000034 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000053 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086000 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000005 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.004734 0.005934 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136200 +0.000908 0.001292 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085800 +0.000211 0.000289 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078600 +0.000142 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000825 0.000998 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.000243 0.000304 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000760 0.001151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045200 +0.000064 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000009 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000003 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000206 0.000263 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.169400 +0.000162 0.000196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000244 0.000291 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099800 +0.000336 0.000489 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.000497 0.000936 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100800 +0.000244 0.000376 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.152200 +0.000340 0.000495 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000064 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000014 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000265 0.000328 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.428199 +0.000095 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.000035 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.001272 0.001774 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134800 +0.083602 0.142605 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101200 +0.000485 0.000541 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.177400 +0.000035 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000095 0.000129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078200 +0.000282 0.000444 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108600 +0.000073 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000427 0.000544 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129800 +0.000503 0.000621 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102200 +0.000102 0.000161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000465 0.000686 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.180600 +0.000172 0.000250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121400 +0.000261 0.000410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128400 +0.000146 0.000202 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032400 +0.000016 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.002671 0.003420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.199800 +0.000048 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000013 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000016 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000078 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000019 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000084 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082200 +0.001013 0.001527 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.003872 0.004791 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109400 +0.001305 0.002077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076000 +0.000013 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000044 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000013 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002008 0.002750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.000248 0.000349 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071200 +0.002601 0.004240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.000333 0.000415 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067400 +0.000070 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077400 +0.000060 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037400 +0.000016 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000010 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000871 0.001359 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.487199 +0.000107 0.000135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069800 +0.000052 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000126 0.000189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000186 0.000214 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156200 +0.000246 0.000393 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077000 +0.000018 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.221600 +0.000488 0.000567 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100200 +0.000020 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.000171 0.000223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.000252 0.000362 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038600 +0.000254 0.000328 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.254999 +0.000015 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000016 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000338 0.000497 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000809 0.001384 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.164000 +0.000073 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081400 +0.000389 0.000566 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000688 0.000787 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.209600 +0.000030 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.001051 0.001418 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000056 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.010568 0.017805 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.374799 +0.000664 0.000895 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131800 +0.000045 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000268 0.000355 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.000072 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082000 +0.002023 0.003697 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.206800 +0.000069 0.000097 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000196 0.000295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039400 +0.000191 0.000224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161800 +0.000122 0.000166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078400 +0.000017 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074600 +0.001233 0.001391 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.424799 +0.000298 0.000399 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000253 0.000367 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.001233 0.001688 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.256199 +0.000172 0.000245 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036400 +0.000432 0.000625 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.000001 0.000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105000 +0.000164 0.000325 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.221000 +0.001327 0.001676 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.495199 +0.001832 0.002413 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076800 +0.000096 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.000057 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047800 +0.000398 0.000563 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000320 0.000363 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000131 0.000187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081800 +0.001000 0.001228 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.152000 +0.000034 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000144 0.000234 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.315599 +0.000174 0.000294 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000029 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000018 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.000164 0.000226 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058200 +0.001352 0.002057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102800 +0.000051 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000008 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000261 0.000319 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000413 0.000754 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.000373 0.000540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.306199 +0.000029 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.000412 0.000537 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068600 +0.001046 0.001353 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154600 +0.000206 0.000313 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080400 +0.003010 0.006078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118600 +0.000010 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000040 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000006 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000503 0.000716 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123800 +0.000014 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046800 +0.000029 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000139 0.000208 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039400 +0.000136 0.000195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000017 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.000026 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000049 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000749 0.001097 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000035 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.000027 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000155 0.000199 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132600 +0.000197 0.000293 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092400 +0.000101 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.000037 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158800 +0.000072 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000074 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.002078 0.002934 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.174200 +0.010409 0.017130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.517999 +0.000069 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074600 +0.000023 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001310 0.001827 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151800 +0.000205 0.000263 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.269799 +0.000028 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000007 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000169 0.000248 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068000 +0.000009 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000143 0.000178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.140400 +0.000031 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069600 +0.000043 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076000 +0.000835 0.001269 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000039 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000223 0.000367 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000153 0.000202 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074800 +0.000078 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000476 0.000611 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000077 0.000137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000530 0.000758 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104000 +0.000413 0.000621 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000550 0.000789 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111600 +0.001541 0.002116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.181400 +0.000027 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000011 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001580 0.002475 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081400 +0.000040 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.240600 +0.000001 0.000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000332 0.000407 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105200 +0.000057 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.006670 0.009457 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125200 +0.000033 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000368 0.000568 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000153 0.000218 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.000013 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000022 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000278 0.000458 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086600 +0.000487 0.000692 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071800 +0.000040 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000842 0.001377 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103200 +0.000167 0.000275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.166600 +0.000177 0.000256 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.000043 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000064 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088600 +0.000070 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.344999 +0.000158 0.000233 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081800 +0.000244 0.000312 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.199000 +0.001301 0.002200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099600 +0.000082 0.000115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000044 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117600 +0.000622 0.000676 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000076 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071200 +0.000626 0.000762 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.495599 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000121 0.000213 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.001530 0.001883 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.339199 +0.000094 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.003191 0.005938 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112000 +0.000364 0.000511 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058400 +0.000048 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045200 +0.001774 0.002090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.346399 +0.000267 0.000381 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000619 0.000903 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039800 +0.000030 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.000077 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000126 0.000177 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121200 +0.000492 0.000758 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000722 0.001179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.000146 0.000196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.000210 0.000338 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000176 0.000192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139800 +0.000082 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000045 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000023 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000067 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.000780 0.001022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119200 +0.000020 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000195 0.000285 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000758 0.001076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000111 0.000160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.000157 0.000207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000079 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088600 +0.000051 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069200 +0.000281 0.000323 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.724999 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000018 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.000287 0.000469 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.007086 0.008833 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076600 +0.000029 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000102 0.000137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000151 0.000187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119600 +0.000008 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031000 +0.000371 0.000508 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078000 +0.000024 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032000 +0.000711 0.000987 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000043 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000413 0.000558 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000008 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000128 0.000223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.264999 +0.000005 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.362599 +0.000110 0.000154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081800 +0.000122 0.000175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090800 +0.000378 0.000562 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.000155 0.000229 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000066 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000148 0.000165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094600 +0.000292 0.000442 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.000027 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002894 0.003809 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.386999 +0.000102 0.000163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037000 +0.001668 0.002200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106400 +0.000062 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075400 +0.000115 0.000161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000079 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065200 +0.000455 0.000849 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131400 +0.000087 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000291 0.000348 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083200 +0.000014 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001085 0.001382 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.328399 +0.000070 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030200 +0.000599 0.000809 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.146600 +0.000245 0.000293 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.196200 +0.000080 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046400 +0.000233 0.000363 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068600 +0.000303 0.000441 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106200 +0.000111 0.000160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032000 +0.002117 0.003211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070200 +0.000015 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000014 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000003 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000251 0.000335 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087800 +0.000196 0.000344 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.299799 +0.000242 0.000300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084800 +0.000460 0.000753 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.203400 +0.000318 0.000464 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.001308 0.001782 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122200 +0.000089 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.002141 0.002623 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.210200 +0.000052 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000864 0.001302 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089000 +0.000179 0.000289 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000142 0.000203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082200 +0.001206 0.001686 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.174200 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000075 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087000 +0.000065 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074400 +0.000029 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000019 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000045 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079200 +0.015477 0.025775 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063600 +0.001483 0.002331 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103600 +0.000270 0.000412 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150000 +0.000042 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000425 0.000737 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.203200 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033400 +0.000490 0.000763 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.172000 +0.000091 0.000137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000591 0.000923 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000031 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106400 +0.000375 0.000432 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.162800 +0.000129 0.000192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000068 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000400 0.000676 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046800 +0.000491 0.000639 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084600 +0.000376 0.000622 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.288399 +0.000082 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102800 +0.000156 0.000204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.160200 +0.000201 0.000219 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000934 0.001470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093800 +0.000032 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035200 +0.000928 0.001269 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134200 +0.000182 0.000263 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000847 0.000992 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000045 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000424 0.000693 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.211400 +0.000022 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000112 0.000169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000294 0.000402 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067800 +0.000018 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000032 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109000 +0.000352 0.000470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122600 +0.004569 0.006424 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.327799 +0.001401 0.001748 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109200 +0.001041 0.001397 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.240600 +0.000062 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069000 +0.000115 0.000149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.002574 0.003402 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.295199 +0.000177 0.000233 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.000176 0.000251 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.003211 0.004118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116800 +0.000236 0.000370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.181600 +0.000019 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000050 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049200 +0.000050 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115000 +0.000020 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000124 0.000165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150800 +0.000044 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000112 0.000195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109600 +0.000435 0.000614 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087800 +0.000260 0.000324 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000113 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059000 +0.000111 0.000202 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075800 +0.000041 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.000243 0.000372 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.000071 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000054 0.000080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000055 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032800 +0.000043 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000821 0.001026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092400 +0.000079 0.000108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084200 +0.000265 0.000341 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105000 +0.000208 0.000306 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.000012 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000326 0.000405 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121000 +0.000029 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.006543 0.011406 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134200 +0.000013 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000208 0.000273 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078000 +0.000046 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045200 +0.000107 0.000133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.003088 0.004479 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.238200 +0.000641 0.001109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.002064 0.002574 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124600 +0.000115 0.000133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136600 +0.000485 0.000533 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136800 +0.000022 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000320 0.000400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063600 +0.000068 0.000114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.000055 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003139 0.004463 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.000019 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000121 0.000157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.001811 0.002739 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121000 +0.000113 0.000137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.000321 0.000491 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.001335 0.001677 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.254599 +0.001108 0.001237 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.293399 +0.000011 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000343 0.000398 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125600 +0.000120 0.000166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083400 +0.000172 0.000229 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000030 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000017 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086600 +0.000010 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.000246 0.000289 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081200 +0.000022 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000193 0.000266 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000030 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000007 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.005800 0.008520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115400 +0.000028 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000841 0.001113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122400 +0.000107 0.000155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000012 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000052 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038000 +0.000009 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000048 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000377 0.000538 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.000101 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.000066 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077400 +0.000135 0.000202 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000027 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103800 +0.000218 0.000317 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000089 0.000146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001291 0.002410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109200 +0.000400 0.000579 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000005 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030600 +0.000024 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030800 +0.000174 0.000240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.000007 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000052 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.000106 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113800 +0.000114 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059000 +0.000026 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.027752 0.048392 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.003771 0.006462 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.163800 +0.000861 0.001019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.310199 +0.000121 0.000186 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095800 +0.000399 0.000600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101600 +0.000031 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.000323 0.000445 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108600 +0.000156 0.000218 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115400 +0.000048 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117400 +0.000012 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000044 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000244 0.000322 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077000 +0.000042 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000517 0.000744 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121800 +0.000965 0.001204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.216000 +0.000024 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000463 0.000669 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.187400 +0.000283 0.000328 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113800 +0.000007 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000018 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116200 +0.000067 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094600 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002053 0.002563 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.162400 +0.000702 0.001020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.000331 0.000423 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.208000 +0.000765 0.001115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000208 0.000264 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.001106 0.001504 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109400 +0.000166 0.000262 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000492 0.000663 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.000033 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035400 +0.002227 0.003546 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068000 +0.000122 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.199000 +0.000003 0.000003 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000590 0.000801 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070200 +0.004219 0.006478 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000037 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.000071 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000128 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.002467 0.003249 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106400 +0.000092 0.000144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.001340 0.002199 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.191200 +0.000116 0.000164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.331199 +0.006463 0.009333 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150800 +0.000342 0.000437 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081800 +0.000003 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.312599 +0.000016 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001501 0.002189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137600 +0.000796 0.001367 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.274199 +0.000018 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000196 0.000323 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000245 0.000332 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093800 +0.000139 0.000197 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121400 +0.000018 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000205 0.000239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126800 +0.000025 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.004987 0.006474 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136600 +0.002067 0.003409 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155800 +0.000126 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034000 +0.000018 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000021 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000291 0.000393 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.146200 +0.000008 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000072 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070600 +0.000017 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000104 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105000 +0.001814 0.003486 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.000055 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000304 0.000431 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102000 +0.000017 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000101 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000043 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000098 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067400 +0.000858 0.001029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.421599 +0.001310 0.001947 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095600 +0.000106 0.000157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.000096 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.002499 0.003400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113400 +0.000057 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068800 +0.000021 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000015 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000114 0.000170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.000023 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.003870 0.005372 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.215600 +0.001168 0.001523 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110600 +0.000219 0.000264 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099200 +0.000101 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047000 +0.001508 0.002551 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.388199 +0.000013 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069200 +0.000497 0.000664 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117800 +0.000143 0.000214 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039400 +0.000188 0.000271 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.000059 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000193 0.000257 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.000171 0.000243 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096400 +0.000144 0.000165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076800 +0.000116 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.145800 +0.000044 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080400 +0.000088 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000051 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080200 +0.000289 0.000332 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003571 0.005351 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000210 0.000270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.233200 +0.006275 0.009259 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.149800 +0.000131 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118200 +0.000121 0.000199 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000003 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000065 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046000 +0.000454 0.000684 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112200 +0.000738 0.000900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119600 +0.000103 0.000126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082200 +0.003679 0.007046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128400 +0.000242 0.000353 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111800 +0.000469 0.000734 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122000 +0.000062 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000482 0.000677 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.006050 0.008054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.242399 +0.000315 0.000472 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079000 +0.000048 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000704 0.001007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.251599 +0.000156 0.000236 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.000142 0.000210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000158 0.000214 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.000670 0.000841 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069400 +0.000816 0.001490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100400 +0.000131 0.000160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.000016 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000434 0.000530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.548399 +0.000329 0.000428 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092600 +0.000164 0.000259 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.000343 0.000554 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086200 +0.000174 0.000260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086400 +0.000323 0.000450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069000 +0.000122 0.000150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107400 +0.000381 0.000574 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.002604 0.003714 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.308999 +0.000062 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035400 +0.003665 0.004515 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.360399 +0.000536 0.000760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.249799 +0.002504 0.005500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.164800 +0.000074 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114200 +0.000183 0.000301 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000029 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000582 0.000761 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.168800 +0.001373 0.001902 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077400 +0.000008 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000134 0.000196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000323 0.000474 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077400 +0.000187 0.000254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000164 0.000232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.173800 +0.001494 0.002240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.000062 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.000104 0.000150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000053 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000045 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032000 +0.000192 0.000288 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000018 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032800 +0.000092 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092200 +0.000194 0.000309 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.000071 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000053 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.000349 0.000519 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070800 +0.000014 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000254 0.000384 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.312399 +0.000255 0.000367 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.003149 0.004891 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000049 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000008 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001455 0.002509 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.261199 +0.000227 0.000309 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074600 +0.000025 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000135 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133600 +0.000290 0.000413 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.000003 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000053 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078400 +0.000192 0.000309 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.001716 0.002385 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.191800 +0.000033 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063600 +0.000116 0.000165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045200 +0.000019 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000531 0.000716 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129400 +0.000059 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.001095 0.002363 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086200 +0.000370 0.000444 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.324799 +0.001086 0.002066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101200 +0.001953 0.003235 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.215400 +0.000081 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059000 +0.000047 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101600 +0.000093 0.000123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.162400 +0.000002 0.000003 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000170 0.000226 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000613 0.000897 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.287799 +0.000040 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.000118 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079600 +0.000022 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000017 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076600 +0.000690 0.001018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000041 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036000 +0.000262 0.000333 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.145600 +0.002246 0.003094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.270599 +0.000244 0.000322 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069000 +0.000010 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000039 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000050 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000445 0.000584 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.182400 +0.000025 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000323 0.000497 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.001285 0.001459 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092600 +0.000013 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000217 0.000282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000014 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000074 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074400 +0.000006 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000860 0.001344 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080400 +0.001206 0.001564 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.262799 +0.000007 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000528 0.001238 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137800 +0.000024 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000026 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079600 +0.000135 0.000254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139000 +0.000271 0.000354 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000122 0.000207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000109 0.000169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.337599 +0.001601 0.002195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097600 +0.000204 0.000256 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.000098 0.000123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000111 0.000162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086600 +0.000275 0.000338 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094000 +0.000537 0.000608 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.300399 +0.000050 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.000040 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041400 +0.000455 0.000554 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.177000 +0.061305 0.098065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079800 +0.000043 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000054 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111800 +0.000313 0.000435 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.187800 +0.013244 0.023642 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099400 +0.000005 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157600 +0.000268 0.000400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109600 +0.001107 0.001573 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091600 +0.000016 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000009 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000015 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000003 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000812 0.000928 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.360399 +0.002576 0.003861 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130600 +0.000080 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107000 +0.008537 0.011669 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.214200 +0.000021 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030800 +0.000024 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000068 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000026 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.000023 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000103 0.000146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000005 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.000004 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000458 0.000724 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157400 +0.000040 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000098 0.000133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000024 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030600 +0.000461 0.000699 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115400 +0.000283 0.000345 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097800 +0.000100 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.000045 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000092 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000249 0.000356 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070600 +0.001181 0.001793 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068600 +0.001828 0.002871 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068000 +0.000110 0.000163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.001514 0.002570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115600 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001841 0.002814 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106000 +0.000014 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000004 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000156 0.000212 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071000 +0.000059 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030800 +0.000019 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000088 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000520 0.000565 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.309199 +0.000047 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.001949 0.003222 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132600 +0.000013 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000471 0.000672 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.000065 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.000380 0.000414 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112800 +0.000068 0.000097 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000022 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000211 0.000314 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.341999 +0.000075 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092400 +0.000290 0.000381 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.000253 0.000354 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102600 +0.000029 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000255 0.000364 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.191600 +0.000191 0.000254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122600 +0.002526 0.003329 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.221600 +0.000239 0.000330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.000067 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035200 +0.000101 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090200 +0.000144 0.000188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079400 +0.000041 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.001161 0.001514 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117600 +0.000015 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000018 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000099 0.000135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000467 0.000608 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087400 +0.000130 0.000187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000951 0.001136 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158000 +0.000029 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000754 0.001078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.000012 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001030 0.001537 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.191400 +0.000331 0.000485 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.000561 0.000775 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.283999 +0.000112 0.000150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000041 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000226 0.000250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106600 +0.003408 0.003917 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.165400 +0.000043 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000103 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.000022 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.004514 0.007619 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092000 +0.000033 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079200 +0.000084 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.197600 +0.000275 0.000430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068600 +0.003143 0.003977 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101600 +0.000385 0.000694 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108400 +0.001325 0.001977 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000011 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033600 +0.000906 0.001222 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.020041 0.029333 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.163400 +0.000817 0.001040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065400 +0.000006 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095000 +0.000005 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000035 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.001296 0.001827 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.149800 +0.000558 0.000774 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157200 +0.000358 0.000472 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.001092 0.001671 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000028 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000651 0.000808 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116400 +0.000525 0.000773 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044400 +0.000016 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.001289 0.002331 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113400 +0.000077 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074400 +0.000281 0.000393 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082000 +0.000025 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030200 +0.000020 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000039 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000416 0.000636 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000604 0.000940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000132 0.000172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155000 +0.001237 0.001768 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077200 +0.000513 0.000768 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074400 +0.000092 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131000 +0.000331 0.000487 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000163 0.000251 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000512 0.000759 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000809 0.001061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094000 +0.000735 0.001166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.160400 +0.001467 0.001990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074400 +0.000802 0.001207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081200 +0.001166 0.001657 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089200 +0.002337 0.002662 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110600 +0.000017 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000059 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000296 0.000445 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.192600 +0.000176 0.000209 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001203 0.001457 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.418799 +0.000932 0.001458 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132600 +0.000193 0.000254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074400 +0.000180 0.000225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.768398 +0.000043 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000105 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129000 +0.000056 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000275 0.000399 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000405 0.000611 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000141 0.000224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000081 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000310 0.000394 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.001098 0.001417 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081400 +0.000088 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000025 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000004 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.022218 0.032472 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154600 +0.000074 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000351 0.000593 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.280799 +0.000653 0.000886 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077800 +0.000015 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000447 0.000669 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000302 0.000445 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000030 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000176 0.000265 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000167 0.000221 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081200 +0.000032 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.005135 0.007742 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.313199 +0.000192 0.000284 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.000175 0.000224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.149200 +0.003182 0.004503 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103400 +0.000196 0.000304 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.000018 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000486 0.000669 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.172800 +0.000520 0.000885 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000354 0.000430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.000139 0.000190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034400 +0.000008 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000032 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039200 +0.000412 0.000585 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081800 +0.000013 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000062 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000790 0.001107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082200 +0.000528 0.000679 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093000 +0.000074 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000299 0.000338 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000005 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030600 +0.011082 0.014286 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.228800 +0.000082 0.000124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032000 +0.001284 0.001616 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113600 +0.000058 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039800 +0.000025 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000101 0.000162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000057 0.000080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000077 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000612 0.000962 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049200 +0.000347 0.000516 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.334999 +0.001559 0.002111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081400 +0.000059 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.902598 +0.000034 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000192 0.000295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000121 0.000201 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035400 +0.000437 0.000552 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.138600 +0.001966 0.002489 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111800 +0.000054 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123000 +0.001263 0.003253 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.683399 +0.000007 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034400 +0.000118 0.000160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047200 +0.000450 0.000620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.396599 +0.000244 0.000327 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.000009 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000344 0.000500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093200 +0.000896 0.001126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151800 +0.000061 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056000 +0.000070 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072800 +0.000546 0.001452 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.708599 +0.000005 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000034 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000076 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.002142 0.002955 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102800 +0.000160 0.000245 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103400 +0.000077 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.000179 0.000279 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000005 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000362 0.000406 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.229600 +0.000084 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000024 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.001237 0.001650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161000 +0.000117 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066200 +0.001336 0.002046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119200 +0.000121 0.000177 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.264799 +0.000043 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000111 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136600 +0.000329 0.000459 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104400 +0.000026 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081600 +0.000408 0.000510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113200 +0.000157 0.000174 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.274199 +0.000048 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047200 +0.000405 0.000604 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000170 0.000235 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083400 +0.000006 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000434 0.000704 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000454 0.000675 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134200 +0.004206 0.006546 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.295599 +0.000181 0.000250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101800 +0.000036 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000858 0.001065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091200 +0.000088 0.000136 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089800 +0.000059 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000262 0.000407 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.000023 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000045 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072400 +0.000072 0.000097 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000192 0.000310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131600 +0.000598 0.001006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000062 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120200 +0.000074 0.000102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000006 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.012524 0.019115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000035 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000126 0.000191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000163 0.000253 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.000274 0.000412 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108600 +0.001227 0.001892 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156000 +0.001245 0.001669 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118600 +0.000600 0.000762 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000049 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070800 +0.000121 0.000182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033600 +0.000094 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129800 +0.001655 0.002340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.484399 +0.000135 0.000178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000389 0.000572 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.144200 +0.000012 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000009 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000056 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043000 +0.000941 0.001338 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.162000 +0.000114 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.000564 0.000710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.144800 +0.000032 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000037 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000271 0.000316 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.202200 +0.000021 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000025 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000060 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056000 +0.000925 0.001399 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154600 +0.000106 0.000144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000445 0.000540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.264399 +0.000057 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.001131 0.001540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104000 +0.000023 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000117 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.000078 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091000 +0.000137 0.000181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000109 0.000163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000149 0.000179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122800 +0.001004 0.001439 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068800 +0.000527 0.000597 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.255999 +0.000148 0.000216 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.000142 0.000193 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082000 +0.000505 0.000635 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.350599 +0.000818 0.000825 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.574999 +0.000050 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000050 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.001114 0.001801 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000068 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.000043 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.138800 +0.000035 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142600 +0.000045 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000245 0.000342 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.000034 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000043 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080200 +0.000141 0.000221 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042400 +0.000060 0.000097 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000094 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.003879 0.007083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084600 +0.000204 0.000323 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000053 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.000024 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.002007 0.002525 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.187800 +0.000095 0.000119 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106200 +0.000068 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000016 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002507 0.003622 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072200 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000491 0.000592 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.162800 +0.000057 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093800 +0.000006 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000680 0.000946 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095800 +0.000268 0.000405 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069000 +0.000357 0.000566 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000056 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.002795 0.004422 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.184800 +0.000023 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000032 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161200 +0.000034 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.193200 +0.000004 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000065 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047200 +0.000030 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.145800 +0.000010 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000015 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038600 +0.000078 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.001724 0.002409 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.000296 0.000502 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042400 +0.000197 0.000297 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087000 +0.000156 0.000196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000103 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.938598 +0.002200 0.002746 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.235400 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0 0.000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000073 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112400 +0.000033 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088800 +0.000048 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.000305 0.000361 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129600 +0.000117 0.000132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119800 +0.000044 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000005 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000027 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.001487 0.001936 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087200 +0.000013 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000132 0.000225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.397599 +0.000008 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000002 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000621 0.000796 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086000 +0.000024 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000021 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.002212 0.002841 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.146000 +0.000133 0.000183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000109 0.000132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.558399 +0.000035 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031400 +0.000013 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000208 0.000276 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.194400 +0.000762 0.001096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.000018 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.000287 0.000418 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114800 +0.000033 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.001943 0.002845 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081600 +0.000130 0.000179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076200 +0.000217 0.000333 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156600 +0.000051 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.007118 0.010904 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105000 +0.000517 0.000657 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.253599 +0.000014 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.179200 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.003915 0.004681 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.318799 +0.000081 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000034 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033400 +0.000070 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.427599 +0.000523 0.000822 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.001067 0.002167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.176600 +0.000026 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.008267 0.013930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.418799 +0.000164 0.000175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.283599 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000024 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000350 0.000515 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.000012 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000025 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000803 0.001154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000655 0.000827 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.000084 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074400 +0.000024 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.000052 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068000 +0.004741 0.008231 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.267999 +0.000305 0.000467 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.310199 +0.000276 0.000389 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075200 +0.000356 0.000569 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114600 +0.000054 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.000681 0.001057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000860 0.001122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.190200 +0.000045 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000562 0.000803 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062400 +0.000477 0.000694 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000145 0.000229 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072400 +0.000061 0.000091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000188 0.000249 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000213 0.000340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000034 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000560 0.000624 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095200 +0.000039 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000025 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000085 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000067 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000112 0.000214 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.246599 +0.000093 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003668 0.004983 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123600 +0.000032 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000048 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039200 +0.022990 0.035375 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143000 +0.000455 0.000977 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.200400 +0.000016 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066000 +0.000293 0.000416 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.001278 0.001867 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.175200 +0.000508 0.000786 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.308799 +0.000165 0.000232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000021 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000232 0.000322 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105800 +0.000296 0.000416 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000102 0.000125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000053 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079600 +0.000092 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123800 +0.003568 0.004094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121800 +0.000176 0.000228 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.000446 0.000616 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119000 +0.000038 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000469 0.000594 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137400 +0.000070 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000614 0.000813 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058400 +0.000412 0.000515 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.190200 +0.015222 0.022366 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116000 +0.001670 0.002473 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.000304 0.000381 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000114 0.000196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.213200 +0.002751 0.004084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088800 +0.000360 0.000417 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.209800 +0.000165 0.000237 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000611 0.001162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079600 +0.002154 0.003294 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.171200 +0.000026 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000018 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000139 0.000299 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088400 +0.001999 0.002676 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150000 +0.000411 0.000625 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.000149 0.000192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.364399 +0.000251 0.000362 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.205200 +0.000487 0.000701 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079400 +0.000234 0.000354 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.272799 +0.000021 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036400 +0.000077 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000076 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.000002 0.000003 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120000 +0.000151 0.000208 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.003830 0.005588 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106600 +0.000233 0.000343 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.000218 0.000287 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000599 0.000944 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071000 +0.000198 0.000264 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110800 +0.000041 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000311 0.000380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142400 +0.000083 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137600 +0.000345 0.000558 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132400 +0.000141 0.000182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.000928 0.001308 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000289 0.000387 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.336399 +0.000464 0.000640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000065 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.000037 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000155 0.000208 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045200 +0.003241 0.004509 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.166200 +0.000068 0.000115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.005130 0.007687 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068000 +0.000307 0.000414 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.286199 +0.002316 0.002897 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.160400 +0.000088 0.000133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000183 0.000332 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153200 +0.000011 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000373 0.000410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.222200 +0.000164 0.000181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000061 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000277 0.000331 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098000 +0.002312 0.003688 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.002174 0.004487 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157800 +0.000609 0.000755 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155600 +0.000079 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074000 +0.000070 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000038 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000121 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.001169 0.001667 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.000013 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000324 0.000466 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.000048 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000634 0.001021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069000 +0.000327 0.000406 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089600 +0.001787 0.002471 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084400 +0.000751 0.000852 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.507399 +0.000041 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000345 0.000598 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105200 +0.065224 0.088749 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.411599 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000033 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089200 +0.000140 0.000205 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000057 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000046 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000237 0.000477 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072800 +0.000144 0.000182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000057 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.000009 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000029 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094000 +0.000017 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000048 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046400 +0.000303 0.000491 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063600 +0.000128 0.000192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087600 +0.000491 0.000620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126200 +0.000112 0.000157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074600 +0.000109 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.000003 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000209 0.000311 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105000 +0.000246 0.000280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.849998 +0.000049 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000458 0.000630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119000 +0.001009 0.001535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.000419 0.000562 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.268799 +0.000045 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119200 +0.000020 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000033 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.000119 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115400 +0.000110 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049200 +0.000035 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000470 0.000598 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.471799 +0.000275 0.000416 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088000 +0.000034 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059000 +0.000857 0.001539 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000298 0.000377 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.000092 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032200 +0.000013 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.000459 0.000603 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094200 +0.005710 0.010054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.441199 +0.000749 0.000915 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108600 +0.000177 0.000194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.256999 +0.000012 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000048 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127000 +0.004684 0.005676 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.270999 +0.000034 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102600 +0.000178 0.000217 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094200 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000144 0.000209 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000118 0.000158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.002519 0.003363 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.233200 +0.000444 0.000608 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105200 +0.000029 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082200 +0.000012 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.050332 0.108386 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.460399 +0.000070 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082200 +0.000015 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.003255 0.004720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.000560 0.000745 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113800 +0.000076 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.000086 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.000013 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129600 +0.000288 0.000531 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154400 +0.000028 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000029 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077000 +0.000049 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059000 +0.000014 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000197 0.000284 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038000 +0.000077 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000052 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000002 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000533 0.000853 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066000 +0.000614 0.000735 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124800 +0.000031 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.138400 +0.000131 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045200 +0.001661 0.002383 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000073 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000053 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.924998 +0.000228 0.000327 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103200 +0.001442 0.002127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108400 +0.004990 0.007610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000173 0.000248 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093600 +0.000103 0.000137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034400 +0.000017 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030800 +0.000012 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000184 0.000232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.242200 +0.000184 0.000215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094200 +0.002110 0.002643 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156200 +0.001473 0.001745 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122800 +0.000092 0.000124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083200 +0.000307 0.000363 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077800 +0.000156 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153800 +0.000573 0.000750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126600 +0.000203 0.000274 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078200 +0.000172 0.000261 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081200 +0.012106 0.018560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.237000 +0.000094 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000008 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000031 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.000059 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000010 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000115 0.000180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.424999 +0.000059 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035400 +0.000009 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000013 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000193 0.000297 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.430399 +0.000192 0.000248 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092600 +0.000010 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000254 0.000355 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081600 +0.000112 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.000047 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000069 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076800 +0.000015 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000657 0.000983 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000023 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000421 0.000582 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083000 +0.004803 0.009165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108400 +0.000275 0.000392 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000099 0.000154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034400 +0.000181 0.000308 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000562 0.000622 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100000 +0.000143 0.000177 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001150 0.001565 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122200 +0.004196 0.007633 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000021 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000020 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046000 +0.000012 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000611 0.000820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000134 0.000189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093600 +0.000465 0.000574 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130400 +0.000010 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000740 0.000994 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109600 +0.000419 0.000627 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000028 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038000 +0.000147 0.000213 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032400 +0.000140 0.000211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087600 +0.000038 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.003115 0.005044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.179600 +0.000284 0.000415 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.000067 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000022 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.001814 0.002313 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.254399 +0.000228 0.000394 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158600 +0.000777 0.001251 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000869 0.001246 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142200 +0.054545 0.081517 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082200 +0.000890 0.001352 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101000 +0.000940 0.001111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.455399 +0.000611 0.000855 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032000 +0.000021 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000155 0.000223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000034 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.187000 +0.000037 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.000003 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001006 0.001463 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076200 +0.000566 0.000994 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094600 +0.000032 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110000 +0.000043 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000041 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041400 +0.000351 0.000489 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.167600 +0.000275 0.000409 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128000 +0.003519 0.004357 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.189200 +0.000001 0.000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000043 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076600 +0.000083 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000499 0.000535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.253999 +0.000090 0.000135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000041 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.002442 0.003679 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.220000 +0.000023 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000087 0.000114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044400 +0.000402 0.000676 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066000 +0.000049 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000084 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.222800 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000072 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.001073 0.001843 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059800 +0.000660 0.000962 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.006627 0.009395 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.186600 +0.000094 0.000135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034800 +0.000016 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000090 0.000129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000437 0.000610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000011 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000050 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.000095 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000225 0.000277 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093000 +0.000615 0.000875 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000074 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000166 0.000247 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000266 0.000444 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081200 +0.000023 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001296 0.001642 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123200 +0.000404 0.000505 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107800 +0.000588 0.000825 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085800 +0.000181 0.000309 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000014 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.004684 0.007453 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121200 +0.000017 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.002596 0.004502 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.406399 +0.000013 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000048 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000062 0.000080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000050 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045200 +0.000606 0.001242 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127600 +0.002647 0.004234 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080400 +0.000061 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036400 +0.000050 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037200 +0.000012 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000463 0.000703 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000116 0.000160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073200 +0.000554 0.000640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104400 +0.000765 0.001157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104200 +0.000137 0.000206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113000 +0.000050 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073600 +0.000042 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.141000 +0.000110 0.000190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.412199 +0.000153 0.000221 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058200 +0.000055 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065200 +0.000076 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.001579 0.002252 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.171400 +0.000122 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035400 +0.000663 0.000717 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.002459 0.003902 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.002029 0.002823 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044400 +0.000017 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000210 0.000329 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066000 +0.000481 0.000615 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.358199 +0.000032 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000095 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047400 +0.000035 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154200 +0.000038 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000025 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131200 +0.006603 0.007918 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.172400 +0.000229 0.000269 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000234 0.000341 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082800 +0.000112 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000429 0.000477 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151000 +0.000052 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090800 +0.000152 0.000234 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000318 0.000395 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097600 +0.000458 0.000678 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114800 +0.001207 0.001461 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111800 +0.000400 0.000491 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117600 +0.000175 0.000237 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088200 +0.000070 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.008674 0.013614 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088800 +0.004704 0.007371 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.428799 +0.000167 0.000188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.163000 +0.000708 0.001046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.000015 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000070 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035200 +0.000031 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.000085 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.000901 0.001163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000233 0.000301 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103800 +0.000012 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000043 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.000419 0.000668 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157600 +0.000211 0.000275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096600 +0.000182 0.000243 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097200 +0.001150 0.001601 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.000164 0.000183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000013 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000030 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000064 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000124 0.000177 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.535999 +0.000034 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000364 0.000526 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000731 0.001157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.210800 +0.000387 0.000579 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.005204 0.007337 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081400 +0.000196 0.000233 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.152400 +0.000035 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032800 +0.000090 0.000123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.000044 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125800 +0.000038 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000039 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.000055 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079600 +0.000047 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000080 0.000108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000116 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000072 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000009 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000038 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034400 +0.000003 0.000003 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001186 0.001306 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151200 +0.000122 0.000190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000029 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000215 0.000273 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.199000 +0.000022 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068200 +0.000685 0.000859 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095600 +0.000591 0.000831 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.000500 0.000505 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093200 +0.000554 0.000671 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.000051 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078000 +0.000134 0.000185 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073200 +0.003338 0.005130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.000160 0.000190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.233000 +0.000051 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105400 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000108 0.000150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106000 +0.000025 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151800 +0.001353 0.002270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157400 +0.000717 0.000925 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155000 +0.000115 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000035 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000488 0.000649 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.340599 +0.000102 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043000 +0.000153 0.000204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083000 +0.000088 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000172 0.000342 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.194800 +0.000381 0.000528 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.001891 0.003183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082800 +0.000710 0.001173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098600 +0.000425 0.000616 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135000 +0.001535 0.001862 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000016 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000316 0.000388 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.327199 +0.000021 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070600 +0.000085 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000339 0.000436 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.000508 0.000721 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104600 +0.000182 0.000259 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032400 +0.000117 0.000419 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.140000 +0.000732 0.001084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097800 +0.000218 0.000271 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.254599 +0.000233 0.000391 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084000 +0.000026 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030600 +0.000104 0.000146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130200 +0.001139 0.001952 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.211200 +0.000007 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000621 0.000823 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110200 +0.000266 0.000354 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113400 +0.000029 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002002 0.003187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102600 +0.000005 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000012 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000037 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000178 0.000267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115200 +0.000467 0.000630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.149800 +0.000043 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000139 0.000150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.431199 +0.000140 0.000217 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155200 +0.006732 0.009529 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157200 +0.000162 0.000234 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153800 +0.000102 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127200 +0.001255 0.001843 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.246199 +0.002282 0.003126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.319599 +0.001136 0.001365 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.214400 +0.000790 0.001113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.560199 +0.001603 0.002528 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000032 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038000 +0.000008 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031400 +0.000006 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000056 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000705 0.000946 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119000 +0.000343 0.000394 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129800 +0.000082 0.000129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000141 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077800 +0.000034 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077800 +0.000051 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064000 +0.000065 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.722199 +0.000142 0.000238 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.165600 +0.000082 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000223 0.000286 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000051 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000735 0.001099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000293 0.000434 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000076 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000632 0.000902 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.000043 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000123 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107000 +0.000405 0.000554 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.149000 +0.000917 0.001152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.231400 +0.000133 0.000179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092000 +0.000107 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000005 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000006 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000018 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000115 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088000 +0.000099 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075800 +0.000493 0.000615 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069400 +0.000100 0.000147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000029 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000819 0.000995 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.000055 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.000189 0.000235 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065200 +0.000002 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001397 0.002046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.334199 +0.000012 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083400 +0.000824 0.001713 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117000 +0.000408 0.000559 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.163800 +0.002670 0.003737 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118200 +0.000502 0.000665 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132200 +0.007169 0.008929 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.422399 +0.000406 0.000532 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.183200 +0.001330 0.002174 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129800 +0.000231 0.000353 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000125 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121800 +0.000524 0.000624 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.174400 +0.000012 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000302 0.000376 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078200 +0.000059 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.000062 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032800 +0.000048 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049200 +0.000284 0.000320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.172000 +0.000538 0.000652 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.163000 +0.000010 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000011 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000105 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.315599 +0.001169 0.001745 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000753 0.001197 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.238800 +0.000033 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110600 +0.000021 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001868 0.002083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.371199 +0.000633 0.000944 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039400 +0.000280 0.000322 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117800 +0.000041 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076000 +0.000286 0.000417 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072400 +0.000303 0.000443 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.141600 +0.001051 0.001392 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153400 +0.002172 0.003516 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076600 +0.000075 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030400 +0.003103 0.004697 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.350999 +0.000022 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.026425 0.039321 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129600 +0.000145 0.000194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118200 +0.000635 0.000962 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000110 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082000 +0.000012 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000040 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000612 0.000743 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132200 +0.000402 0.000499 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073600 +0.000037 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.000177 0.000231 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.230000 +0.000038 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032800 +0.000155 0.000221 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000358 0.000457 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.235600 +0.000155 0.000220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101800 +0.000278 0.000410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000046 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.000189 0.000270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037800 +0.000020 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000701 0.000992 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000052 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000041 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000382 0.000837 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.228400 +0.000483 0.000760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.000128 0.000154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104800 +0.000016 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.000302 0.000438 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.350599 +0.000024 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.001004 0.001272 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.328599 +0.001760 0.002354 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106600 +0.000098 0.000150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035200 +0.000179 0.000297 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.173400 +0.000378 0.000590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077000 +0.000032 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.000030 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.013647 0.019036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133800 +0.000107 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077200 +0.002257 0.003783 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137400 +0.003697 0.004652 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.281799 +0.000026 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129000 +0.001829 0.002796 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.336999 +0.000070 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.000482 0.000737 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.000162 0.000206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.006528 0.012183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.534999 +0.001179 0.002050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.288599 +0.000542 0.000726 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101400 +0.001159 0.001846 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000015 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104000 +0.000417 0.000557 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.149200 +0.000103 0.000157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.267399 +0.000162 0.000214 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134800 +0.000220 0.000331 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062400 +0.000055 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067400 +0.000017 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000018 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.000479 0.000704 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.000202 0.000257 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102800 +0.000158 0.000252 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.000024 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.001554 0.002316 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.000173 0.000247 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.372799 +0.000015 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000101 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000145 0.000278 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.170600 +0.000229 0.000301 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071800 +0.000428 0.000535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113800 +0.000163 0.000262 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037200 +0.000704 0.001060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110000 +0.001685 0.001969 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.302999 +0.000029 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124000 +0.000031 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032000 +0.000063 0.000080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.000041 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.000139 0.000226 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.001155 0.001558 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132600 +0.000023 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039400 +0.000132 0.000200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122400 +0.000058 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000005 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.138800 +0.001898 0.002713 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094400 +0.030975 0.051232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161200 +0.000295 0.000470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.008801 0.013136 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000220 0.000330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070800 +0.000255 0.000318 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000059 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000034 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000942 0.001390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.000200 0.000300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000187 0.000226 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096800 +0.000442 0.000646 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.001150 0.001380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.257199 +0.000068 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000024 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.030764 0.055243 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093400 +0.000004 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000037 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.000076 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098600 +0.000101 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130200 +0.000208 0.000297 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.214800 +0.000012 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000091 0.000137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097000 +0.000132 0.000147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083600 +0.000068 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082800 +0.000061 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000524 0.000831 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039400 +0.000022 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000249 0.000298 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065400 +0.000017 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000121 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108200 +0.000164 0.000216 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.138200 +0.001080 0.001557 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000055 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034000 +0.000091 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032200 +0.000013 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000111 0.000169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000084 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.000031 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000309 0.000353 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.235800 +0.000048 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000026 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046000 +0.000171 0.000201 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.330599 +0.000262 0.000398 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.004483 0.006692 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109600 +0.000066 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000758 0.000902 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103000 +0.000019 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078000 +0.000177 0.000237 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000250 0.000373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000362 0.000448 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101800 +0.001834 0.002519 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130800 +0.000759 0.001066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077800 +0.000071 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.000036 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037000 +0.000042 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000019 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.001213 0.001487 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106200 +0.000002 0.000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000034 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031000 +0.000024 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001215 0.002015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000038 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068600 +0.000332 0.000453 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086200 +0.000177 0.000208 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.001473 0.001891 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.312799 +0.000025 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000017 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000082 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075400 +0.000144 0.000194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105800 +0.000017 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000348 0.000454 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.181200 +0.000028 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000001 0.000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000010 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000003 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000015 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000059 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129200 +0.000360 0.000503 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000143 0.000216 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085000 +0.000031 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.000035 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000142 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000032 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.000107 0.000149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074000 +0.000092 0.000124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108400 +0.000179 0.000282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.000151 0.000230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.001477 0.002194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000048 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107200 +0.000912 0.001412 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.235600 +0.001210 0.001687 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.176400 +0.000618 0.000847 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.172800 +0.000053 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.000106 0.000152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000024 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000414 0.000609 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.000170 0.000228 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080200 +0.000103 0.000147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128800 +0.000231 0.000267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079400 +0.000084 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000087 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000097 0.000133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000052 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097600 +0.000391 0.000663 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121200 +0.002932 0.003774 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.233600 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000397 0.000501 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107400 +0.000006 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000279 0.000406 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058400 +0.000036 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000207 0.000272 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000187 0.000250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000212 0.000323 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143200 +0.000252 0.000276 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.171400 +0.000036 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.177600 +0.002723 0.004266 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065200 +0.000044 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035400 +0.000327 0.000385 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.369599 +0.000308 0.000452 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.232800 +0.000420 0.000560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117400 +0.001601 0.003493 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079400 +0.000069 0.000097 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000061 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161000 +0.000093 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079400 +0.000199 0.000274 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110200 +0.000018 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000037 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000007 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000466 0.000758 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.341399 +0.000107 0.000154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.205200 +0.000077 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033400 +0.000127 0.000187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000020 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.160800 +0.000034 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.394799 +0.000193 0.000284 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076800 +0.000005 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097600 +0.000107 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089800 +0.000081 0.000115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000059 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071400 +0.001522 0.002091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.165000 +0.000158 0.000183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.166200 +0.000056 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069000 +0.005970 0.009505 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107000 +0.000026 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000256 0.000371 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000037 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000199 0.000337 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.000020 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000053 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036800 +0.000038 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000039 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000293 0.000356 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158000 +0.000176 0.000220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082200 +0.000209 0.000273 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000016 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000032 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000743 0.001042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.214600 +0.002202 0.003172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132400 +0.000073 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000054 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000014 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000544 0.000747 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000569 0.000836 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108800 +0.000118 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095200 +0.000469 0.000988 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.399199 +0.000010 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000051 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000085 0.000126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003929 0.005106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136400 +0.000133 0.000193 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.000064 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.000005 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000023 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000338 0.000410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.263399 +0.000224 0.000308 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000212 0.000304 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000181 0.000257 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000511 0.000641 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122800 +0.000115 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076800 +0.000476 0.000704 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.440599 +0.000024 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000014 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000226 0.000343 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034400 +0.000032 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070800 +0.000343 0.000503 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.001894 0.001959 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000037 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.203200 +0.000507 0.000703 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000028 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.000263 0.000369 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082400 +0.000597 0.000908 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.179600 +0.000028 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000332 0.000515 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127400 +0.003182 0.004063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.303799 +0.000328 0.000430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109800 +0.000057 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.166600 +0.001877 0.002737 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090600 +0.000962 0.001227 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.322599 +0.000082 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000017 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000165 0.000206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103600 +0.000117 0.000175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.000126 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068800 +0.000031 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000605 0.000945 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.000167 0.000208 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.193800 +0.000465 0.000963 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.351799 +0.000101 0.000129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000082 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000023 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000056 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058400 +0.000061 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000251 0.000406 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000011 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.279599 +0.000109 0.000172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000139 0.000183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000050 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096600 +0.000016 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000245 0.000298 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.165800 +0.000030 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000156 0.000256 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036000 +0.000021 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000609 0.000857 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098600 +0.000077 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085400 +0.000015 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000049 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091000 +0.000561 0.000773 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094400 +0.000017 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002253 0.003044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117000 +0.000046 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085000 +0.000376 0.000563 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.000063 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.000012 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000012 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000378 0.000471 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.182000 +0.000013 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000587 0.000905 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084800 +0.000050 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043000 +0.000049 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097600 +0.000790 0.000970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.554199 +0.000029 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000025 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000748 0.001068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.146000 +0.000010 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000078 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000013 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000022 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000836 0.000876 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000096 0.000129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.162600 +0.000342 0.000612 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.240600 +0.000137 0.000179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077200 +0.000016 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.000395 0.000516 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.162200 +0.027549 0.056992 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117000 +0.000028 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000084 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080200 +0.000033 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000478 0.000772 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080400 +0.002969 0.004295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063600 +0.000234 0.000335 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126800 +0.000024 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.137476 0.218797 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076200 +0.001968 0.002536 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000139 0.000192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.002641 0.003908 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.310199 +0.000041 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000020 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000065 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000043 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000788 0.001177 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.000256 0.000385 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.175600 +0.000028 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.000068 0.000102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000007 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000725 0.001163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.000335 0.000429 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103200 +0.000183 0.000271 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000033 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099200 +0.000012 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000009 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.006151 0.007878 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.353199 +0.001505 0.002176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000084 0.000124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000277 0.000398 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000294 0.000433 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.002430 0.003044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.200800 +0.001028 0.001471 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101400 +0.003533 0.005211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069800 +0.000040 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000013 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000194 0.000297 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000089 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094800 +0.000682 0.001031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151600 +0.000049 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121000 +0.000036 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034000 +0.002470 0.003915 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090800 +0.000164 0.000252 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.000020 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000060 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000933 0.001273 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.000099 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132200 +0.001350 0.001609 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.175200 +0.002349 0.002898 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077000 +0.000016 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000121 0.000177 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074000 +0.001761 0.001996 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.166600 +0.000040 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112400 +0.000022 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032200 +0.003784 0.005210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.191200 +0.000337 0.000459 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000146 0.000209 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108200 +0.000486 0.000754 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000024 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000032 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075400 +0.000566 0.000849 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091000 +0.000685 0.001569 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095800 +0.000359 0.000571 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110800 +0.000030 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000012 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.000161 0.000204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.180200 +0.000029 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000361 0.000396 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125400 +0.000542 0.000714 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079600 +0.000063 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.000069 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000060 0.000080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000558 0.000769 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.166600 +0.000085 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038600 +0.000277 0.000358 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.278599 +0.000017 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.001458 0.002184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121400 +0.000015 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.000306 0.000340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000048 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000026 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000166 0.000237 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084000 +0.000205 0.000319 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.000465 0.000672 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000006 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000468 0.000596 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.246399 +0.000028 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058200 +0.000185 0.000262 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130000 +0.000105 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071200 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000017 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000183 0.000243 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.189400 +0.000886 0.001055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.163600 +0.000017 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000209 0.000284 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104800 +0.000038 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000045 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156800 +0.000157 0.000217 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058200 +0.000068 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.000007 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000007 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000095 0.000124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.000114 0.000179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000217 0.000328 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000262 0.000378 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.001153 0.001461 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119600 +0.012931 0.019451 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083000 +0.000053 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.000489 0.000621 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153200 +0.000274 0.000338 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081800 +0.000078 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049200 +0.000020 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000144 0.000212 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.322199 +0.003253 0.004924 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.237200 +0.000216 0.000299 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000015 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106000 +0.000783 0.001074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085800 +0.000134 0.000182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000388 0.000529 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104400 +0.000073 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000104 0.000155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000149 0.000213 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.001184 0.001850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039400 +0.001132 0.001494 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109400 +0.000045 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.000358 0.000458 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108400 +0.002283 0.002703 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.430799 +0.000521 0.000699 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078400 +0.000057 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000443 0.000638 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078800 +0.000093 0.000127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000693 0.000914 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089000 +0.000020 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032800 +0.000013 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000255 0.000379 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000227 0.000387 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030200 +0.000084 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.002521 0.005333 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.388599 +0.000089 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000300 0.000331 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.311599 +0.000976 0.001170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.250599 +0.000890 0.000974 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123400 +0.000077 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000504 0.000745 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105200 +0.000010 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000073 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000095 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000047 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.000016 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000051 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047000 +0.000024 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000148 0.000208 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059800 +0.000012 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000106 0.000162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.002062 0.002609 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.179600 +0.001971 0.002421 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096000 +0.000092 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.000042 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000250 0.000351 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.002398 0.003121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.202800 +0.000104 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126200 +0.000014 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000802 0.000923 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156600 +0.000024 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000551 0.000617 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.556399 +0.000011 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000202 0.000270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161400 +0.000362 0.000574 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000074 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.000027 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000015 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000183 0.000280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069800 +0.000066 0.000102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127800 +0.000108 0.000157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.140200 +0.000054 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079000 +0.000157 0.000227 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.003873 0.005528 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100800 +0.000427 0.000560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074600 +0.000060 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035200 +0.000118 0.000186 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.000004 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000038 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000059 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124600 +0.088529 0.144036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.280799 +0.000125 0.000158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089200 +0.000714 0.001025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.000497 0.000732 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.000055 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.000039 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000021 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000044 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000013 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000430 0.000442 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000485 0.000666 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000012 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099200 +0.000359 0.000541 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000101 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000043 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073600 +0.000090 0.000126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000530 0.000846 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049200 +0.000030 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000170 0.000218 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000609 0.000882 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.145000 +0.000027 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030800 +0.000645 0.000853 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.000540 0.000817 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120800 +0.000028 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000024 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103400 +0.005607 0.008243 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.252999 +0.001707 0.002071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.349599 +0.000513 0.000692 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000039 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000113 0.000154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000359 0.000552 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000522 0.000958 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.177400 +0.000408 0.000530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100600 +0.000010 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000044 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000012 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000025 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000347 0.000454 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110200 +0.000174 0.000273 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121200 +0.000198 0.000245 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096400 +0.001268 0.001626 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.225200 +0.000175 0.000247 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000041 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.000146 0.000222 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.001842 0.002413 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.414999 +0.000120 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067400 +0.000562 0.000840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.000767 0.001002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125000 +0.000393 0.000635 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000392 0.000591 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.249599 +0.000126 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.228600 +0.000078 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000375 0.000473 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101000 +0.000152 0.000211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.000214 0.000312 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103600 +0.000020 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.000037 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000029 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.001170 0.001764 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.254399 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000044 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068800 +0.000018 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081200 +0.000083 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000042 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095600 +0.000107 0.000162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000142 0.000203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.003339 0.004203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.327399 +0.000131 0.000204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000337 0.000580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106200 +0.000012 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000333 0.000608 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.191800 +0.000052 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000036 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.007249 0.011576 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.003599 0.005760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000195 0.000260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000212 0.000242 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153600 +0.000023 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045200 +0.002460 0.003453 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.138000 +0.000456 0.000559 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106800 +0.000100 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.000467 0.000615 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074600 +0.000257 0.000281 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154400 +0.000761 0.001067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.141000 +0.000014 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000195 0.000265 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.001096 0.001626 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042400 +0.000154 0.000251 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.346199 +0.000048 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000679 0.000936 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000433 0.000583 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085400 +0.000170 0.000227 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.250400 +0.000702 0.000724 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.001137 0.001754 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108400 +0.000259 0.000540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113800 +0.000351 0.000466 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089600 +0.000048 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000117 0.000169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076000 +0.000035 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037200 +0.000109 0.000150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000001 0.000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000025 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000057 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078200 +0.002552 0.003758 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113200 +0.000024 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000251 0.000336 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.000008 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002953 0.004070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082200 +0.000139 0.000179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.202000 +0.000333 0.000459 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.195200 +0.004052 0.005001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.421999 +0.000066 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000694 0.000875 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122000 +0.000338 0.000472 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000035 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.002871 0.003279 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.253999 +0.000034 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047800 +0.000027 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000177 0.000211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082000 +0.000189 0.000223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104200 +0.000171 0.000261 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.005963 0.008929 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.336399 +0.000357 0.000525 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069400 +0.001234 0.001930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.273799 +0.000456 0.000516 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136200 +0.000160 0.000231 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111600 +0.000032 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000084 0.000126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046000 +0.000281 0.000450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039200 +0.001456 0.002217 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.016144 0.024524 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074800 +0.000110 0.000166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.000206 0.000244 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090200 +0.000016 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000032 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.001410 0.002702 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131400 +0.000007 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002825 0.004172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090400 +0.003460 0.003952 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110200 +0.000045 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.000533 0.000778 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.388999 +0.000227 0.000269 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.225600 +0.000117 0.000176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000061 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074000 +0.000028 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000138 0.000191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000161 0.000296 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128800 +0.000351 0.000487 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.238800 +0.000112 0.000157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035200 +0.000020 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000030 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.000007 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000065 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.159000 +0.002001 0.003017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.162400 +0.000156 0.000214 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000124 0.000176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.320399 +0.000216 0.000315 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.000494 0.000502 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000078 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000090 0.000115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030400 +0.000013 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117000 +0.000192 0.000292 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.140400 +0.000102 0.000166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161000 +0.000234 0.000338 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000288 0.000374 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000101 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.000555 0.000877 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058400 +0.000275 0.000389 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131000 +0.000076 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000579 0.000969 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.166000 +0.000132 0.000204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035400 +0.000182 0.000259 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000028 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082800 +0.000130 0.000175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.000039 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000105 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083000 +0.000115 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.166600 +0.007418 0.011013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.232000 +0.000023 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000240 0.000369 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.145200 +0.000504 0.001155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078000 +0.000730 0.000799 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.761198 +0.009796 0.014497 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.364599 +0.000081 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000015 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105000 +0.006741 0.012031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102600 +0.006854 0.010421 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077000 +0.000031 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000048 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.000207 0.000261 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119600 +0.000013 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000018 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.163600 +0.000103 0.000127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069200 +0.000044 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.936798 +0.000007 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000080 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071400 +0.000046 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.152400 +0.000115 0.000150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.000150 0.000178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.190600 +0.000569 0.000716 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.415999 +0.000185 0.000257 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000017 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000011 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000145 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118200 +0.000132 0.000178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078200 +0.000265 0.000344 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101000 +0.000033 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.010126 0.015491 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085800 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000869 0.001242 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.000278 0.000356 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095200 +0.000194 0.000249 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076200 +0.000402 0.000521 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081400 +0.000333 0.000464 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125400 +0.000162 0.000194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091400 +0.000043 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091600 +0.000052 0.000080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.000437 0.000704 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104600 +0.000002 0.000003 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.233400 +0.000015 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000273 0.000355 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.178400 +0.000107 0.000135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107600 +0.000081 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047000 +0.000041 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.000086 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000650 0.000764 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.477999 +0.000322 0.000492 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099600 +0.000192 0.000255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076000 +0.000483 0.000597 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096600 +0.000081 0.000126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.000028 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.001801 0.002264 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119800 +0.000319 0.000412 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.207200 +0.000013 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000067 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000155 0.000217 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000052 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.000367 0.000820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.426399 +0.000243 0.000388 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.180600 +0.000215 0.000321 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000016 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.000213 0.000273 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.250199 +0.001378 0.002431 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.168400 +0.000373 0.000643 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143000 +0.000018 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000049 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046800 +0.000001 0.000003 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000806 0.001000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101400 +0.000062 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081400 +0.000027 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000080 0.000123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058400 +0.000122 0.000182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039200 +0.000065 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047800 +0.000211 0.000318 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000022 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000049 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000299 0.000345 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135800 +0.000153 0.000229 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161800 +0.000331 0.000402 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082800 +0.000177 0.000223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100200 +0.000825 0.001263 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062400 +0.001557 0.002111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156000 +0.000109 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077000 +0.000079 0.000132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000180 0.000203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107600 +0.000231 0.000345 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000002 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130000 +0.000201 0.000273 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.002103 0.002456 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.229800 +0.000056 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032000 +0.004275 0.005022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.214200 +0.000746 0.001073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.170600 +0.000098 0.000135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096400 +0.000029 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000371 0.000703 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.264599 +0.000126 0.000188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108400 +0.000229 0.000248 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.612199 +0.000162 0.000229 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114000 +0.000675 0.001072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115800 +0.001835 0.002359 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.286399 +0.000022 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.000055 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000104 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158000 +0.000091 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046000 +0.000145 0.000189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074600 +0.000222 0.000260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125400 +0.000159 0.000208 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000737 0.001797 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132600 +0.000161 0.000200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069200 +0.000028 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032000 +0.000276 0.000377 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.146400 +0.000090 0.000125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000189 0.000207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.140600 +0.000032 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084600 +0.000527 0.000829 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079800 +0.000005 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103800 +0.000027 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000285 0.000365 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124400 +0.004716 0.006484 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142400 +0.000045 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126000 +0.000342 0.000493 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104200 +0.000017 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000040 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.000014 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001084 0.001406 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.152800 +0.000562 0.000835 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098000 +0.000831 0.001137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151400 +0.000029 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.000023 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000081 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000209 0.000320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096000 +0.000070 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.806598 +0.000019 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000032 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000104 0.000133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031400 +0.000299 0.000346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.323399 +0.000861 0.001428 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.149200 +0.000020 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000044 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000016 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000666 0.000939 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076400 +0.000132 0.000176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.192000 +0.000129 0.000185 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103600 +0.000121 0.000172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071000 +0.000218 0.000287 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000546 0.000781 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000157 0.000234 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000669 0.000954 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.222800 +0.000114 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000011 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000063 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000147 0.000204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082200 +0.000064 0.000091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.004609 0.006449 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106200 +0.000172 0.000227 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109600 +0.000021 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000081 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.000037 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000046 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034800 +0.000110 0.000150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076200 +0.000062 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069600 +0.000129 0.000179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000124 0.000189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058200 +0.000411 0.000495 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112600 +0.000289 0.000388 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102800 +0.000045 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032800 +0.000714 0.000849 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.459199 +0.000009 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000242 0.000311 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106200 +0.000327 0.000434 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091400 +0.001120 0.001423 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000062 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000284 0.000394 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.003734 0.005376 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.243000 +0.000657 0.000787 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.164200 +0.000131 0.000182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129600 +0.000065 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084800 +0.000051 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095400 +0.000242 0.000378 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124200 +0.000023 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072800 +0.000036 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002760 0.004014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118600 +0.001598 0.001967 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.222000 +0.000087 0.000150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.000067 0.000097 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000073 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001640 0.002138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000014 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.000183 0.000272 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047400 +0.000057 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076000 +0.001187 0.001510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.314799 +0.000741 0.000976 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.620799 +0.000024 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000003 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000017 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000037 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000131 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062400 +0.000080 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057400 +0.000059 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000080 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000070 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111200 +0.000034 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000515 0.000676 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000235 0.000314 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.004850 0.006787 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096000 +0.000013 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000041 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000067 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000170 0.000205 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000240 0.000331 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000071 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000624 0.000930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095200 +0.000259 0.000308 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.255399 +0.000099 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084200 +0.001953 0.002921 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114400 +0.000014 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000097 0.000135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.003255 0.003844 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.402399 +0.000086 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047200 +0.000097 0.000119 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151800 +0.000710 0.000732 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121800 +0.000153 0.000195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107000 +0.000039 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000095 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.000060 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085600 +0.000059 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.007392 0.012259 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.000199 0.000354 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000118 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000103 0.000124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000029 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036800 +0.000248 0.000357 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.269999 +0.000813 0.001137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000037 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003422 0.004148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.162000 +0.000315 0.000455 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083400 +0.000218 0.000301 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000238 0.000334 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058400 +0.000240 0.000394 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000072 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000116 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102400 +0.003826 0.005927 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075400 +0.000010 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000121 0.000144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112600 +0.000017 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.001262 0.001665 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.345999 +0.002138 0.003229 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.417999 +0.000136 0.000211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000462 0.000641 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156400 +0.000094 0.000115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133800 +0.000012 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.000259 0.000364 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121600 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135000 +0.000583 0.000907 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.000127 0.000183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000107 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.002487 0.003557 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.169000 +0.000005 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000028 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000090 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.149200 +0.000037 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000037 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000001 0.000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000061 0.000091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000022 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000031 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.173800 +0.000028 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000339 0.000391 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.152600 +0.002973 0.004502 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047800 +0.001549 0.002356 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125600 +0.005379 0.006932 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.181600 +0.000220 0.000303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.147200 +0.001743 0.002784 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072200 +0.000011 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.001152 0.001596 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133600 +0.000407 0.000582 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000023 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.007441 0.017488 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.247599 +0.000167 0.000226 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.000166 0.000253 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000112 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077800 +0.000192 0.000209 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104200 +0.000113 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.212600 +0.000918 0.001344 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000241 0.000321 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091600 +0.000027 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.001262 0.003880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.175200 +0.000084 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115800 +0.000004 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000066 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.000206 0.000299 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000415 0.000494 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.407799 +0.000243 0.000347 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080200 +0.000249 0.000411 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.240600 +0.000568 0.001230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.171000 +0.000869 0.001224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000021 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000247 0.000315 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117200 +0.001061 0.001702 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114600 +0.000574 0.000877 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.159200 +0.000132 0.000199 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000037 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.000738 0.000936 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.320799 +0.001350 0.002108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065200 +0.000054 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000044 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078200 +0.000021 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091200 +0.000008 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.003596 0.005203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.003148 0.004756 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.307399 +0.000153 0.000217 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097600 +0.000186 0.000276 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143800 +0.000087 0.000136 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036800 +0.000012 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000497 0.000586 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.256399 +0.000571 0.000650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.743798 +0.000222 0.000442 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.148200 +0.000657 0.000836 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033400 +0.000015 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000540 0.000775 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.002209 0.003248 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.000391 0.000589 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.235400 +0.000062 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.000128 0.000185 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085400 +0.000128 0.000170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031000 +0.003012 0.003872 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103400 +0.000718 0.000972 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111600 +0.000326 0.000496 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079000 +0.006949 0.009281 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.199800 +0.000023 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035400 +0.000915 0.001591 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.333599 +0.000851 0.001236 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.169600 +0.001784 0.002321 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110400 +0.000215 0.000313 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103200 +0.000526 0.000771 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000028 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000552 0.000881 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.144200 +0.000177 0.000234 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074200 +0.000030 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094200 +0.000135 0.000186 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.000009 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000031 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000027 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.000068 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.178200 +0.000727 0.001185 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000057 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000112 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074400 +0.000020 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001827 0.002532 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078200 +0.000159 0.000209 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.221400 +0.000161 0.000231 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000023 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000328 0.000554 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.147200 +0.000030 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000026 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068600 +0.000096 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000061 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000013 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122600 +0.000011 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000062 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000395 0.000588 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095600 +0.000012 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000018 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000221 0.000332 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062400 +0.001016 0.001330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158800 +0.000063 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068000 +0.000011 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001667 0.002239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.146600 +0.000046 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000035 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099600 +0.000143 0.000201 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.000023 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000228 0.000315 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.193000 +0.000040 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000027 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070200 +0.000272 0.000334 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.220800 +0.000847 0.001322 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000024 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106200 +0.000045 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047000 +0.000362 0.000519 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.237800 +0.000053 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000035 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037000 +0.000004 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000447 0.000500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132800 +0.000022 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.001708 0.002442 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.152000 +0.002175 0.003345 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092400 +0.000491 0.000659 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.000002 0.000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000717 0.001021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074800 +0.000037 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000011 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000078 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000234 0.000350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056000 +0.001877 0.002595 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126400 +0.012154 0.018422 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.000070 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000530 0.000803 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.000580 0.000900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.000037 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000320 0.000455 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136000 +0.000021 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.249999 +0.000041 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000112 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078000 +0.000112 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065200 +0.000125 0.000204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.000042 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.007496 0.009581 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.255399 +0.000055 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000259 0.000366 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.000076 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032000 +0.001467 0.001937 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085800 +0.000764 0.000909 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110800 +0.000745 0.001108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.217200 +0.000143 0.000183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093200 +0.000016 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137600 +0.000014 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000597 0.000813 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089600 +0.000054 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.145000 +0.000033 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000007 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002111 0.002990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098400 +0.002177 0.002978 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085000 +0.000094 0.000133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041400 +0.000143 0.000207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058200 +0.000982 0.001127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.337599 +0.000414 0.000467 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139200 +0.000034 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000057 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000038 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122200 +0.000593 0.000822 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.262599 +0.000021 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133000 +0.000351 0.000449 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052400 +0.000033 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000022 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002535 0.003872 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.172000 +0.000055 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000022 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000395 0.000545 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.000471 0.000700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.020009 0.031755 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113600 +0.000039 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001901 0.002784 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.223400 +0.000591 0.000934 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.000349 0.000485 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064000 +0.000245 0.000320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085400 +0.000017 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001074 0.001451 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.387999 +0.000053 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.000133 0.000180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110200 +0.000041 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086000 +0.000145 0.000174 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103800 +0.003194 0.004504 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.187200 +0.000058 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102000 +0.000182 0.000270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067400 +0.001486 0.001754 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000416 0.000594 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.287399 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000096 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000598 0.000621 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095000 +0.000068 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121600 +0.000061 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105400 +0.000384 0.000453 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.190600 +0.005705 0.008483 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.332199 +0.000020 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000122 0.000175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133200 +0.000126 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.288399 +0.000140 0.000175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074200 +0.000946 0.001256 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.000068 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087800 +0.000245 0.000277 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.313799 +0.000928 0.001205 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.152800 +0.000060 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000081 0.000115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001508 0.001835 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151000 +0.000020 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000074 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000015 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000599 0.000775 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135800 +0.000258 0.000376 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074200 +0.005685 0.010754 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.270999 +0.000702 0.000874 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135000 +0.000081 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000018 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000134 0.000194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099200 +0.000272 0.000281 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.501799 +0.000103 0.000161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000092 0.000124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000937 0.001220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000029 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087600 +0.000044 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030600 +0.000017 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000024 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081600 +0.000710 0.001392 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.003246 0.004674 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000005 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000179 0.000239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.000348 0.000476 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123000 +0.000063 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.001228 0.001825 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.000028 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087000 +0.000105 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001299 0.001526 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000050 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000015 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092000 +0.000259 0.000316 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142800 +0.001060 0.001656 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.000033 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000098 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079200 +0.000029 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000005 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.169600 +0.000311 0.000340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127800 +0.000146 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084600 +0.000029 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000065 0.000097 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001089 0.001505 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078800 +0.000121 0.000182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001545 0.002156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121800 +0.000040 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.146000 +0.000040 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000009 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001126 0.001752 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088800 +0.000123 0.000170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.000060 0.000091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000632 0.001020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000007 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000509 0.000715 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.175400 +0.000360 0.000514 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000016 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.002324 0.003241 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071000 +0.000006 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.262599 +0.000958 0.001281 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112200 +0.000038 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.000203 0.000263 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.145800 +0.000227 0.000334 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122200 +0.000052 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068000 +0.000017 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000013 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000015 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000159 0.000205 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.000048 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000001 0.000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000158 0.000214 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000103 0.000162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000159 0.000212 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095400 +0.000025 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000406 0.000485 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.258399 +0.000025 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000024 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030800 +0.000087 0.000152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103800 +0.001235 0.001857 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000129 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000293 0.000464 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000232 0.000333 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000124 0.000265 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.140000 +0.000025 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000092 0.000124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000094 0.000177 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.366599 +0.000149 0.000150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110000 +0.000074 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000038 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.000060 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000015 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000022 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.000122 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.000801 0.001447 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.001487 0.002384 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.265599 +0.000240 0.000261 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158600 +0.000009 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000211 0.000282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076200 +0.000185 0.000252 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.000009 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000112 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000448 0.000507 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.246999 +0.000029 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000045 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000079 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142400 +0.000076 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094400 +0.000011 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.001898 0.002714 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158800 +0.000177 0.000259 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081600 +0.000044 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000074 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087400 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000037 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000107 0.000174 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000641 0.001224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154000 +0.000162 0.000247 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.180800 +0.000038 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077200 +0.000180 0.000240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.004695 0.007495 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142600 +0.000110 0.000175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.138200 +0.000061 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002684 0.003353 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134400 +0.000015 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121400 +0.000098 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.000556 0.000853 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074200 +0.001516 0.002006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082800 +0.000020 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000017 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032200 +0.000069 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000326 0.000465 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.299799 +0.000030 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000237 0.000382 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000996 0.001332 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000120 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093200 +0.000162 0.000238 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034800 +0.000040 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000065 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057400 +0.000664 0.001063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073600 +0.011612 0.015587 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.200200 +0.000084 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.003921 0.005701 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095400 +0.001506 0.002249 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.258399 +0.000042 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000012 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.206200 +0.000237 0.000328 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.000257 0.000370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084200 +0.000027 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000072 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068600 +0.000171 0.000224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106200 +0.000083 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000030 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000253 0.000350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072800 +0.000126 0.000210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112000 +0.000026 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.004708 0.006451 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.216000 +0.001896 0.002694 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084400 +0.000060 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136600 +0.000171 0.000199 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087600 +0.000060 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068200 +0.000284 0.000454 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.000157 0.000190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072200 +0.000100 0.000136 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.165600 +0.000033 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.005810 0.008918 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076400 +0.000050 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.000087 0.000123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068800 +0.001351 0.002105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000083 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000172 0.000249 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.252999 +0.000400 0.000551 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103800 +0.000153 0.000214 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031800 +0.000017 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000074 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000142 0.000201 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087200 +0.000017 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.149000 +0.000343 0.000421 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121000 +0.000341 0.000543 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000071 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000271 0.000370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090400 +0.000517 0.000691 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077000 +0.000054 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.178400 +0.000073 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084400 +0.000088 0.000124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.001435 0.002103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000250 0.000380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.000050 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065400 +0.000033 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106200 +0.000710 0.000979 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130800 +0.000229 0.000340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069000 +0.000392 0.000485 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.217200 +0.001339 0.001734 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117600 +0.000037 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000204 0.000257 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078600 +0.000018 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039200 +0.006418 0.015911 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.787198 +0.000240 0.000338 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129600 +0.000038 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000441 0.000578 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112000 +0.000569 0.000819 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000038 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000010 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000015 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000554 0.000880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076800 +0.001411 0.002085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.167200 +0.000044 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000019 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000166 0.000244 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052400 +0.001768 0.002629 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.170000 +0.000042 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092600 +0.015767 0.022156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.145600 +0.007046 0.010447 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.448199 +0.000498 0.000867 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102800 +0.000736 0.000908 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.295599 +0.000403 0.000512 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.273199 +0.002103 0.003091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.000037 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000355 0.000439 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.359199 +0.001138 0.001667 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126000 +0.000146 0.000194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.000174 0.000245 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.000503 0.000709 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.000117 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110400 +0.000035 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000178 0.000357 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.256399 +0.000030 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000223 0.000291 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106800 +0.000290 0.000403 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107200 +0.000023 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000145 0.000245 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.170000 +0.000028 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000038 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000305 0.000369 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084000 +0.000025 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.000125 0.000165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000277 0.000429 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.005832 0.007703 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.414399 +0.000354 0.000494 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000238 0.000487 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076400 +0.001542 0.001820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115800 +0.000362 0.000449 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000070 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068800 +0.000025 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000251 0.000287 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.875598 +0.000393 0.000575 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075200 +0.000915 0.001436 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087400 +0.007476 0.009198 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099400 +0.000250 0.000397 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071400 +0.000261 0.000318 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.263599 +0.001065 0.001361 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.263599 +0.000019 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000034 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000356 0.000508 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101000 +0.001192 0.001426 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.457799 +0.000049 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000127 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000009 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.007802 0.011402 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073600 +0.000037 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071200 +0.000583 0.000732 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.190800 +0.000060 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001684 0.001871 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.281799 +0.000029 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000918 0.001155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.168400 +0.000395 0.000476 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081400 +0.000052 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000016 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000046 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000091 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.000422 0.000587 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000093 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000031 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000017 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000052 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.001344 0.001751 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000022 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000024 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049200 +0.000475 0.000629 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088600 +0.000095 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039800 +0.000024 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088800 +0.000177 0.000207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000230 0.000257 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000001 0.000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000116 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100800 +0.000007 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000101 0.000114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107200 +0.000040 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000183 0.000206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.254199 +0.000052 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.000020 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.259999 +0.001566 0.002152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.194600 +0.000005 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000241 0.000372 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000019 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000044 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035200 +0.000192 0.000282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000164 0.000245 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000016 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000026 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000021 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000846 0.001450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071800 +0.000006 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001270 0.001577 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.159400 +0.001498 0.002096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095400 +0.000166 0.000213 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.174200 +0.000032 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000156 0.000205 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.001284 0.001870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.244799 +0.000121 0.000164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000021 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032000 +0.000219 0.000330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000021 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000225 0.000325 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.002122 0.002954 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.176000 +0.000221 0.000271 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078800 +0.000146 0.000233 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000048 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000028 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000023 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000139 0.000179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038000 +0.001996 0.003569 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.000026 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000035 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000122 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104000 +0.000038 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.000141 0.000160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.179600 +0.000207 0.000250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000017 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000234 0.000323 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089800 +0.001196 0.001490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122400 +0.000056 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000197 0.000239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130600 +0.000120 0.000176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000005 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000249 0.000318 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084800 +0.000005 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000021 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000081 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.000021 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.182600 +0.000022 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000246 0.000367 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.177000 +0.000206 0.000313 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.000014 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000027 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.001074 0.001383 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.162200 +0.000113 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071400 +0.000166 0.000222 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000117 0.000175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000134 0.000189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081200 +0.000042 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.457599 +0.000351 0.000499 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133800 +0.000385 0.000594 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069200 +0.000043 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085800 +0.000121 0.000158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094800 +0.000251 0.000321 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111800 +0.000117 0.000146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077800 +0.000127 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.001438 0.001571 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.162600 +0.000432 0.000632 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.291199 +0.001323 0.001837 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.358799 +0.000057 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000156 0.000222 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077000 +0.000027 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000126 0.000176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033600 +0.002412 0.003725 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000051 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000262 0.000405 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.000048 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000062 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002952 0.004417 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.000048 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.000184 0.000295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000023 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000135 0.000177 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088400 +0.000038 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.000495 0.000672 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.000015 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000127 0.000200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000093 0.000126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000122 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059800 +0.000482 0.000633 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121000 +0.000177 0.000222 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000015 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000134 0.000186 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000059 0.000155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000217 0.000283 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126200 +0.000021 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002029 0.002709 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.617999 +0.000026 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000028 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000028 0.000080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000172 0.000199 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100600 +0.000084 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.001275 0.001831 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079400 +0.001160 0.001704 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000057 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104200 +0.000047 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.000216 0.000337 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.212400 +0.000029 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.000088 0.000127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000377 0.000579 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000272 0.000344 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.175400 +0.000085 0.000119 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038600 +0.000505 0.000718 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.218400 +0.000106 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.327399 +0.000278 0.000377 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000033 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039200 +0.000022 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000561 0.000815 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139800 +0.000159 0.000204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100400 +0.000213 0.000261 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.001084 0.001477 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.146200 +0.000072 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041400 +0.000085 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121800 +0.000182 0.000218 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068800 +0.000023 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135600 +0.003166 0.005061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000042 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.178400 +0.000195 0.000287 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.002578 0.003714 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076600 +0.000166 0.000215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000048 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105200 +0.000658 0.000765 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000461 0.000543 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.179400 +0.000329 0.000459 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.256199 +0.000041 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000415 0.000579 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087800 +0.000085 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000028 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000073 0.000115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037200 +0.000345 0.000457 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137800 +0.000129 0.000169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078800 +0.000095 0.000114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074600 +0.000029 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000012 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.005845 0.008443 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109200 +0.000025 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000024 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079400 +0.000031 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001883 0.002573 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081800 +0.006006 0.008572 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094400 +0.000048 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.001175 0.001577 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136400 +0.000052 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045200 +0.000115 0.000144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110400 +0.000161 0.000218 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076600 +0.000500 0.000772 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000041 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.001357 0.002828 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.141600 +0.000108 0.000136 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082800 +0.000088 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000340 0.000425 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.359999 +0.000547 0.000848 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.001510 0.001893 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108400 +0.000031 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000039 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.000034 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000233 0.000283 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120800 +0.000340 0.000548 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000232 0.000353 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131200 +0.000441 0.000612 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.000103 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.183600 +0.000029 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000007 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001322 0.001966 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122400 +0.000020 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000099 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.201000 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000169 0.000216 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000361 0.000553 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.000231 0.000348 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089200 +0.000608 0.000876 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111200 +0.000166 0.000229 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000010 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000284 0.000319 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.207400 +0.000461 0.000931 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123200 +0.000055 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000317 0.000441 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.000049 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.001353 0.002040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079400 +0.000688 0.000905 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.233400 +0.000046 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.006237 0.007765 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.201400 +0.000196 0.000287 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112600 +0.000025 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000132 0.000254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.305999 +0.000567 0.000766 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104800 +0.000015 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.173200 +0.000047 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000162 0.000276 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.000029 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069600 +0.000019 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000204 0.000271 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090200 +0.000157 0.000231 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069600 +0.000421 0.000627 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000031 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037200 +0.000014 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000055 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002981 0.004425 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000024 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002509 0.003418 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078400 +0.003417 0.004518 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079400 +0.001032 0.001346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134600 +0.000017 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000918 0.001195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088800 +0.001104 0.001714 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000662 0.000799 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.192800 +0.001911 0.002636 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133400 +0.000306 0.000456 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059000 +0.000762 0.000961 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.255799 +0.000048 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034000 +0.000112 0.000191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000055 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000364 0.000445 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.206200 +0.000020 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000031 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000024 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.001363 0.001842 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069000 +0.000017 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034000 +0.001030 0.001549 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000022 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000120 0.000163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000751 0.001024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.333599 +0.000751 0.000918 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.266799 +0.000343 0.000519 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000638 0.000899 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000050 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000315 0.000421 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087800 +0.000089 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.002070 0.002474 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.196600 +0.000023 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047000 +0.000048 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.000122 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.004993 0.009576 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123400 +0.000021 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000145 0.000194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.000070 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131200 +0.000020 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.002157 0.003025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000020 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000022 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000017 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.000080 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031400 +0.002686 0.003268 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.253399 +0.000037 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046000 +0.000012 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000014 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122600 +0.004690 0.006170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127000 +0.000253 0.000367 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.211400 +0.000024 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000115 0.000160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076400 +0.000199 0.000249 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056000 +0.001433 0.002030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.316199 +0.000111 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.291199 +0.000003 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001092 0.001645 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072400 +0.000015 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000168 0.000187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.372199 +0.000123 0.000150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120800 +0.000073 0.000097 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032400 +0.000172 0.000267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102800 +0.000049 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000163 0.000238 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079000 +0.000703 0.000976 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.263799 +0.000033 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.180200 +0.000054 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058400 +0.000002 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.004566 0.006513 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084000 +0.000115 0.000137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000021 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.000072 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.001350 0.001856 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156600 +0.000132 0.000198 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.187600 +0.000112 0.000194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142000 +0.012480 0.017618 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126000 +0.000706 0.001098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093200 +0.000023 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000071 0.000102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070800 +0.001266 0.001965 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068000 +0.000009 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000775 0.000922 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.368399 +0.000059 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000263 0.000495 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.434999 +0.000875 0.001434 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000017 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000045 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108000 +0.000240 0.000270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.553999 +0.000121 0.000160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000672 0.000923 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.646399 +0.000128 0.000169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092800 +0.000127 0.000144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132800 +0.000035 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098000 +0.000003 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000027 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039800 +0.001120 0.001700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131000 +0.000045 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127000 +0.000163 0.000189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091000 +0.001344 0.002009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.015760 0.026654 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077400 +0.003260 0.004058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136800 +0.000022 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000127 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.000016 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 diff --git a/lib/ann/fann/datasets/census-house.train b/lib/ann/fann/datasets/census-house.train new file mode 100644 index 0000000..a479201 --- /dev/null +++ b/lib/ann/fann/datasets/census-house.train @@ -0,0 +1,22785 @@ +11392 16 1 +0.000049 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000395 0.000524 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104800 +0.000179 0.000252 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069600 +0.000891 0.001229 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068000 +0.000050 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.000958 0.000986 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000404 0.000535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074600 +0.000393 0.000427 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000027 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000164 0.000203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000021 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000053 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000476 0.000706 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094200 +0.000128 0.000162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121200 +0.000331 0.000482 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.172600 +0.001509 0.002037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091800 +0.000017 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000218 0.000331 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039200 +0.000325 0.000464 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.000245 0.000367 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090400 +0.000238 0.000326 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073400 +0.000190 0.000271 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000265 0.000359 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.637999 +0.002158 0.003086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.000067 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068000 +0.000337 0.000578 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000013 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000066 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.183600 +0.000697 0.000810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113400 +0.000004 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000098 0.000133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000175 0.000316 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081800 +0.000127 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108200 +0.000014 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001241 0.001723 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.335999 +0.000027 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.000271 0.000334 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084600 +0.000150 0.000225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.000057 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093200 +0.001397 0.001686 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.346399 +0.006092 0.009257 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121600 +0.000235 0.000335 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095800 +0.000863 0.001285 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161200 +0.000013 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000212 0.000320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100400 +0.000103 0.000169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083200 +0.000394 0.000528 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143200 +0.001693 0.002138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.258199 +0.000076 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000195 0.000308 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.425599 +0.000139 0.000189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031000 +0.000632 0.000958 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000173 0.000268 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.166600 +0.000656 0.001007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075200 +0.001023 0.001251 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137200 +0.000015 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069200 +0.000082 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083600 +0.000045 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000028 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036000 +0.000041 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000009 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000484 0.000709 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.000124 0.000185 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.006362 0.009664 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000054 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.000289 0.000406 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.000084 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081200 +0.000010 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000332 0.000447 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037200 +0.000029 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000009 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000877 0.001314 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059800 +0.000003 0.000003 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000881 0.001458 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.630199 +0.000824 0.000981 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.462999 +0.000039 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000020 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000016 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000017 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092000 +0.000020 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000091 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000129 0.000186 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000477 0.000636 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.263199 +0.000022 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121600 +0.005402 0.008976 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086800 +0.002889 0.003921 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.407399 +0.000108 0.000164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.224600 +0.000326 0.000454 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076200 +0.000020 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000635 0.000766 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116400 +0.000133 0.000207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074200 +0.000081 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000010 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000683 0.000918 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.498399 +0.000342 0.000648 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117600 +0.000296 0.000450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154600 +0.000252 0.000358 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062400 +0.000674 0.001108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.326599 +0.000056 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.173000 +0.000385 0.000552 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000315 0.000421 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093200 +0.000073 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088000 +0.000003 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000021 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097600 +0.000047 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000746 0.001101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000077 0.000102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000134 0.000204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000041 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067800 +0.000002 0.000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000017 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000031 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000068 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111200 +0.000670 0.000813 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.274799 +0.000138 0.000253 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000026 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000197 0.000275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.256399 +0.000444 0.000591 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.265199 +0.000027 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000329 0.000415 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124600 +0.000141 0.000194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000022 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000485 0.000658 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000281 0.000430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.002433 0.002873 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139400 +0.001059 0.001394 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.179600 +0.004660 0.007587 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130400 +0.000028 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000470 0.000577 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071400 +0.000022 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000015 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000083 0.000130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000036 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.000207 0.000297 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.000193 0.000272 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.000059 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000143 0.000175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076400 +0.000131 0.000194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106400 +0.000028 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073400 +0.000085 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077000 +0.000038 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.000440 0.000543 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.148000 +0.000494 0.000681 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153800 +0.000051 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058400 +0.000161 0.000286 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038600 +0.000755 0.001428 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129200 +0.000118 0.000155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075400 +0.001098 0.001673 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.001192 0.001796 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042400 +0.000147 0.000242 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000065 0.000097 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000040 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000109 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037200 +0.000009 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000040 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078600 +0.000819 0.001203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000237 0.000339 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120200 +0.000631 0.000827 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076800 +0.000656 0.001049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059000 +0.000131 0.000211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000213 0.000233 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.167000 +0.000179 0.000295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124000 +0.000946 0.001292 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155400 +0.000028 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077000 +0.000044 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000371 0.000444 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097600 +0.000023 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046800 +0.000208 0.000263 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056000 +0.000273 0.000430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000062 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000042 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000049 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095600 +0.006078 0.009327 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.237800 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000168 0.000193 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114400 +0.000343 0.000438 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117000 +0.000111 0.000144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000123 0.000209 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000146 0.000211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101200 +0.000005 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000022 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000181 0.000235 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101600 +0.004371 0.005300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.896998 +0.004455 0.005539 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.316799 +0.000059 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121600 +0.000133 0.000146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.005842 0.007336 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.138400 +0.000040 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000007 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000004 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000090 0.000127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101000 +0.000187 0.000260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.001527 0.002225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101600 +0.000361 0.000577 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000314 0.000448 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068200 +0.000366 0.000569 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.223800 +0.001087 0.001673 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000050 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000156 0.000193 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000952 0.001078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.416799 +0.000046 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101000 +0.000158 0.000210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000242 0.000374 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.228400 +0.000236 0.000330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030800 +0.000400 0.000661 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080400 +0.000083 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117000 +0.000052 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000437 0.000543 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.244799 +0.000214 0.000327 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097600 +0.000060 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064000 +0.000464 0.000603 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000866 0.001223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.277199 +0.000136 0.000185 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036000 +0.000801 0.001017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.192400 +0.000069 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000030 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000017 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000161 0.000214 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074400 +0.000055 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046400 +0.006801 0.008818 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074400 +0.000666 0.000809 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116000 +0.000091 0.000132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000013 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000469 0.000657 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073400 +0.000679 0.001070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.000084 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103600 +0.004719 0.005541 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.381399 +0.000023 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.005638 0.009842 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131400 +0.000043 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000052 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000146 0.000210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000107 0.000144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.000136 0.000198 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.001456 0.002086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.198200 +0.000397 0.000567 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122400 +0.000031 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030400 +0.000279 0.000395 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000151 0.000225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085800 +0.000018 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000368 0.000495 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.000008 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000500 0.000519 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.175000 +0.002974 0.004302 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094000 +0.000308 0.000426 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.174400 +0.000711 0.001051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.360799 +0.000067 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.000011 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000149 0.000214 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.000207 0.000290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.308599 +0.000155 0.000208 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086200 +0.000114 0.000141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.000018 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000008 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000325 0.000463 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.000407 0.000613 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124600 +0.000116 0.000157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.202200 +0.000048 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000009 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000014 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002343 0.002963 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.467199 +0.000039 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000004 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000168 0.000245 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131200 +0.000148 0.000192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046800 +0.000196 0.000326 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000051 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074600 +0.001172 0.001467 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081800 +0.000067 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125000 +0.000017 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000052 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090800 +0.000267 0.000402 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000041 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000395 0.000643 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106000 +0.000085 0.000158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.210600 +0.000074 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.000471 0.000543 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.473399 +0.000282 0.000419 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.000046 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032800 +0.000122 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074800 +0.000186 0.000235 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000054 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076200 +0.000024 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031800 +0.000037 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000221 0.000336 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.000017 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000010 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003457 0.005516 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.149200 +0.000046 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000278 0.000392 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135800 +0.000305 0.000484 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.176000 +0.000238 0.000273 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157800 +0.000037 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.000380 0.000632 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.001545 0.002442 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000033 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.000220 0.000315 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079000 +0.000051 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036000 +0.001283 0.001655 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.310599 +0.000035 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000012 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000743 0.000860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117600 +0.000053 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046400 +0.000139 0.000181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032800 +0.000040 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065400 +0.000043 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000243 0.000321 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038600 +0.000150 0.000203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.000422 0.000585 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.174000 +0.000044 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000128 0.000204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047800 +0.000102 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.000024 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.000449 0.000709 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047200 +0.000091 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.000767 0.000951 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.175800 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000007 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000032 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086200 +0.000085 0.000141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000686 0.001064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.000022 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094400 +0.003786 0.005735 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.000108 0.000279 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066200 +0.000722 0.001080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.191800 +0.000002 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000044 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000045 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153400 +0.000557 0.000787 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.334199 +0.000061 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000036 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078400 +0.000062 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.000051 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000865 0.001063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.248399 +0.000608 0.000719 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.209000 +0.000046 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.002422 0.003006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000730 0.000850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.310799 +0.000048 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.000569 0.000891 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094200 +0.000057 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.000421 0.000553 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.000002 0.000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000892 0.001195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.181000 +0.002293 0.003655 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091800 +0.000644 0.000920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121200 +0.000049 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000743 0.001161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.872598 +0.000015 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000035 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.524999 +0.000167 0.000214 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.178800 +0.000089 0.000150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.007855 0.012962 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.448399 +0.000105 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.000008 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000120 0.000191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.229200 +0.001746 0.002396 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123000 +0.006768 0.011317 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093600 +0.003590 0.005705 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000145 0.000203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000073 0.000124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.000116 0.000174 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090800 +0.000041 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000081 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000086 0.000126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074400 +0.000584 0.000836 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093200 +0.000007 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000434 0.000597 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107600 +0.000614 0.000843 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.002713 0.004107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.284799 +0.000170 0.000272 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.183400 +0.000063 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000727 0.000904 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.162400 +0.000016 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039200 +0.000121 0.000162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091000 +0.000035 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065200 +0.000522 0.000614 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.552599 +0.000031 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.005680 0.008908 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.315599 +0.000333 0.000480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000037 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.574999 +0.000735 0.001007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.211000 +0.004957 0.006644 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132600 +0.000423 0.000591 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.138600 +0.000200 0.000296 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.180400 +0.000010 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031000 +0.004915 0.009770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090200 +0.000011 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000665 0.000997 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087400 +0.000020 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000302 0.000414 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000477 0.000662 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125000 +0.000461 0.000760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074800 +0.000049 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000016 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000180 0.000255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.000028 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000043 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.000033 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031000 +0.000110 0.000170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057400 +0.000041 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000175 0.000213 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.162800 +0.000030 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046000 +0.000038 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000019 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000210 0.000275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096800 +0.000026 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032200 +0.000056 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000012 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135000 +0.000515 0.000752 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.001743 0.002107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.277199 +0.000107 0.000155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000212 0.000326 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030800 +0.000386 0.000534 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000101 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114200 +0.000113 0.000127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.152000 +0.000023 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069000 +0.001033 0.001547 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000025 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046000 +0.000021 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000054 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032000 +0.000004 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.175000 +0.000275 0.000409 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113800 +0.002246 0.002653 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.322199 +0.000535 0.000732 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.402799 +0.000059 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000180 0.000243 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.000046 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069000 +0.000121 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.455799 +0.000053 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000522 0.000715 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101800 +0.002717 0.003718 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087800 +0.003002 0.004600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.002199 0.003273 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.374199 +0.000056 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108200 +0.000458 0.000591 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156400 +0.000072 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000604 0.000876 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.000127 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.001219 0.001944 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.211400 +0.000813 0.001168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092400 +0.000047 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100200 +0.001319 0.001603 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.336599 +0.000050 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.200800 +0.000038 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000140 0.000194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.001757 0.002626 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083600 +0.000262 0.000412 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069000 +0.000213 0.000314 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000021 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000244 0.000370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000098 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094000 +0.001317 0.002005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.000054 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000027 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000453 0.000654 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.000651 0.000878 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000027 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000256 0.000421 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116400 +0.000034 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000017 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000650 0.000884 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067400 +0.000087 0.000160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109400 +0.000126 0.000186 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044400 +0.000038 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000117 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119200 +0.000026 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000502 0.000732 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069000 +0.000583 0.000875 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081600 +0.000495 0.000642 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.002682 0.004034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000062 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000048 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000020 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079400 +0.000984 0.001305 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000442 0.000525 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.203000 +0.000701 0.000996 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000015 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.000122 0.000180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.000015 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000049 0.000080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000039 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000273 0.000418 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032800 +0.000009 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001012 0.001342 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000016 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000016 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000342 0.000554 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000035 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000021 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000093 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000092 0.000147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.000014 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000506 0.000737 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.212000 +0.000103 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037000 +0.002708 0.003599 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.327999 +0.000041 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037000 +0.000113 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072200 +0.000040 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.000292 0.000388 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086200 +0.000049 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.000073 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000070 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057400 +0.000061 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000270 0.000430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097000 +0.000223 0.000339 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065400 +0.000184 0.000242 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108800 +0.000101 0.000147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116400 +0.000195 0.000262 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.308799 +0.000020 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.001075 0.001601 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078200 +0.000016 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.000735 0.001179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111400 +0.000380 0.000531 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075800 +0.000059 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130000 +0.000015 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000801 0.000924 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.003286 0.004069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125000 +0.000238 0.000362 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100600 +0.000010 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000020 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.000022 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.001632 0.002371 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.361999 +0.000042 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068800 +0.000186 0.000213 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127800 +0.000003 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.010087 0.015310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.214000 +0.001261 0.002032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000043 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000843 0.001168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.000370 0.000544 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133200 +0.000033 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000017 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000037 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000263 0.000354 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069000 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000138 0.000200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087600 +0.000090 0.000115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.226400 +0.000085 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046000 +0.000205 0.000330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095400 +0.000009 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000589 0.000833 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150800 +0.004566 0.006254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131400 +0.000055 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000128 0.000172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096000 +0.000093 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090000 +0.000122 0.000178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.000056 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.000087 0.000146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.182400 +0.002674 0.003518 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131600 +0.002458 0.003837 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047800 +0.000027 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000026 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001828 0.002645 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121000 +0.000026 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047000 +0.000012 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000367 0.000456 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079800 +0.000035 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086800 +0.001305 0.001930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092000 +0.000774 0.001162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102600 +0.000289 0.000374 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091400 +0.000013 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001342 0.002090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059000 +0.000059 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002614 0.003917 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151800 +0.000181 0.000273 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.196200 +0.001119 0.001652 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.002136 0.003406 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135400 +0.000868 0.001015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091800 +0.000059 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047400 +0.000577 0.001091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.347999 +0.001903 0.002620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000012 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000021 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103400 +0.000058 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000038 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000040 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069800 +0.000013 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000951 0.001229 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.152400 +0.000527 0.000816 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079000 +0.000198 0.000260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000009 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000107 0.000135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161200 +0.000059 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000016 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109200 +0.000055 0.000097 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000003 0.000003 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000521 0.000746 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.001827 0.002099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.346999 +0.000035 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089200 +0.000034 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.000261 0.000328 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082200 +0.000046 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098200 +0.005038 0.009476 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.578199 +0.000112 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098800 +0.000001 0.000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000053 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000134 0.000183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.001758 0.002678 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.000036 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003125 0.005429 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.459399 +0.000007 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000061 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000014 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000192 0.000264 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082400 +0.000086 0.000129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000077 0.000091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083000 +0.000452 0.000493 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.296199 +0.000429 0.000496 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.316199 +0.000031 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032400 +0.001364 0.001901 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.193600 +0.002223 0.003971 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.242200 +0.000053 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000027 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.000547 0.000697 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.220000 +0.000123 0.000152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085000 +0.000451 0.000645 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131000 +0.000437 0.000646 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074000 +0.000028 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103400 +0.000526 0.000614 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095800 +0.000128 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000161 0.000224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.173000 +0.000098 0.000123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089800 +0.000715 0.000997 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.170600 +0.000214 0.000311 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.005441 0.007798 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.214400 +0.000278 0.000562 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158800 +0.000074 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033400 +0.000070 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069000 +0.000045 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000086 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000030 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000019 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000054 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000040 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000032 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084000 +0.000016 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.001856 0.002327 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.201200 +0.000080 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047200 +0.000062 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000987 0.001086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.758598 +0.000517 0.000727 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.528799 +0.001815 0.002692 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067400 +0.000012 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000061 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066200 +0.000077 0.000115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047000 +0.000592 0.000629 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105000 +0.000029 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.230400 +0.000056 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000195 0.000246 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.170400 +0.000043 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000010 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000033 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000034 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000395 0.000543 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126000 +0.000044 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000169 0.000235 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000222 0.000318 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000762 0.001081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074600 +0.000405 0.000415 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.312599 +0.000217 0.000343 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090800 +0.000029 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031800 +0.000454 0.000652 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089800 +0.000012 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000065 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000624 0.000860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090400 +0.000621 0.000952 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000339 0.000465 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130400 +0.000038 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000359 0.000539 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113800 +0.000262 0.000366 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124400 +0.000073 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000316 0.000406 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096800 +0.000034 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109200 +0.000039 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047000 +0.000155 0.000264 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000879 0.001364 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000604 0.000686 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.536399 +0.000027 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000195 0.000258 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000085 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000141 0.000230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.321799 +0.000034 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079600 +0.000070 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000480 0.000633 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.000117 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100400 +0.000860 0.001934 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109400 +0.000004 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135000 +0.000026 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000054 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041400 +0.000353 0.000521 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.227200 +0.000173 0.000210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.261199 +0.001045 0.001694 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066000 +0.000021 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092000 +0.000051 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.000031 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.000335 0.000521 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000019 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003921 0.004799 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125800 +0.001483 0.002166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161400 +0.000112 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089000 +0.000449 0.000709 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.000182 0.000232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.000105 0.000129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.203600 +0.000143 0.000203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046000 +0.001035 0.001492 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083600 +0.001163 0.001518 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.000106 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000531 0.000587 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122200 +0.000198 0.000339 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.315999 +0.000015 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000628 0.000995 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.003997 0.005486 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109200 +0.004751 0.007344 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081200 +0.000349 0.000497 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.248399 +0.004740 0.008018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.210800 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000073 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059000 +0.000142 0.000206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.000065 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104200 +0.000223 0.000287 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084400 +0.000007 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000025 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000256 0.000474 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123400 +0.000113 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064000 +0.000038 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000261 0.000426 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.000020 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001439 0.001925 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.629599 +0.002370 0.003234 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091800 +0.000375 0.000480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107000 +0.000162 0.000259 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058200 +0.000061 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000022 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000015 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000083 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084400 +0.000290 0.000391 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120800 +0.000084 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155600 +0.000583 0.000749 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.265999 +0.000127 0.000187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.207000 +0.001087 0.001342 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.169600 +0.000006 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107600 +0.000007 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000099 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000030 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001494 0.002070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143200 +0.000013 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000015 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000411 0.000558 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000169 0.000216 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000984 0.001251 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087400 +0.000071 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091000 +0.000072 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079800 +0.001568 0.001901 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.325599 +0.001533 0.001959 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.328999 +0.000315 0.000398 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113400 +0.000007 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000181 0.000277 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000124 0.000177 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042400 +0.001134 0.001607 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106200 +0.000856 0.001319 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133200 +0.000020 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000051 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030800 +0.000016 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000373 0.000527 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082800 +0.000192 0.000242 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100000 +0.000082 0.000123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000136 0.000212 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000014 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000016 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000680 0.000786 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.380799 +0.000037 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115800 +0.000291 0.000415 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000075 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.000016 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000128 0.000175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066000 +0.004395 0.006461 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000016 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000062 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139200 +0.000475 0.000656 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.192800 +0.002908 0.003819 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.188000 +0.000159 0.000239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075400 +0.000420 0.000657 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000056 0.000080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046000 +0.000258 0.000364 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078000 +0.000170 0.000209 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000293 0.000413 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075800 +0.000583 0.000912 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000273 0.000410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000871 0.001327 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092400 +0.000032 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000604 0.000656 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.000127 0.000204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000019 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000022 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000063 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081200 +0.000007 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002923 0.004495 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093800 +0.000031 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000018 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000177 0.000260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068200 +0.000055 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000088 0.000108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.736399 +0.001850 0.002754 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128000 +0.000287 0.000357 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.164000 +0.000071 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000022 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000235 0.000251 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000827 0.001385 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095200 +0.000149 0.000211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.000245 0.000383 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000042 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000260 0.000405 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064000 +0.002709 0.002999 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156600 +0.000123 0.000172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092400 +0.000243 0.000406 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.159800 +0.000107 0.000172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000260 0.000392 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.000063 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001657 0.002817 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131800 +0.000164 0.000226 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.000223 0.000338 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068600 +0.000365 0.000510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.217000 +0.000138 0.000181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000131 0.000177 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001879 0.002324 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082000 +0.002951 0.004152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091400 +0.000022 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000100 0.000123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.454399 +0.000099 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088800 +0.000229 0.000375 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104800 +0.000140 0.000178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125400 +0.000121 0.000178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046800 +0.000010 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001045 0.001580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000086 0.000127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.001010 0.001364 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078400 +0.000046 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075800 +0.000028 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.000003 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000141 0.000182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095800 +0.000258 0.000364 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.221000 +0.000779 0.001081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103600 +0.000027 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000011 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.001111 0.001551 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.173400 +0.000077 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.001054 0.001332 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.777598 +0.000284 0.000388 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.254199 +0.000082 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.178800 +0.000113 0.000147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.000062 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.000098 0.000150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064000 +0.000205 0.000312 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.000029 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046800 +0.000809 0.001074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.365999 +0.000661 0.001096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118400 +0.000020 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000154 0.000214 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.141000 +0.002529 0.003232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.216000 +0.000522 0.000730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103600 +0.000040 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063600 +0.000137 0.000208 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.000231 0.000282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107200 +0.000055 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000167 0.000243 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075400 +0.000052 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102600 +0.000306 0.000503 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106400 +0.000003 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000349 0.000481 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161600 +0.000061 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000340 0.000564 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.003470 0.006427 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.414399 +0.000103 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000081 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000018 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000017 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000323 0.000424 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119400 +0.000038 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068200 +0.000208 0.000301 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.000039 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000118 0.000161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101600 +0.000278 0.000429 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.186800 +0.000008 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000420 0.000594 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088200 +0.003277 0.004783 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.302199 +0.000693 0.001080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.141400 +0.000049 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000413 0.000649 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059000 +0.001273 0.001828 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.255599 +0.000328 0.000421 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.791798 +0.001380 0.001909 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099400 +0.000007 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000153 0.000192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000097 0.000147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.399999 +0.000013 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000193 0.000268 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000012 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000086 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086000 +0.001399 0.002119 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098400 +0.000181 0.000277 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000142 0.000194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000017 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.011147 0.017959 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.000027 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000194 0.000319 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000790 0.001273 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059800 +0.000110 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.147200 +0.000015 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.001821 0.002274 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.234600 +0.000039 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000122 0.000135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155000 +0.001324 0.001600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.185000 +0.000012 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.000187 0.000270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000138 0.000174 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.145400 +0.000041 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000718 0.001258 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153200 +0.000626 0.000764 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.284599 +0.000141 0.000226 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069600 +0.000465 0.000668 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.289999 +0.000023 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000011 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000045 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000448 0.000583 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124400 +0.000002 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000031 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063600 +0.000060 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.000460 0.000644 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095800 +0.000026 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000761 0.001097 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.000061 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088000 +0.000541 0.000764 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.001352 0.002180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114000 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000178 0.000299 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067400 +0.000147 0.000189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087000 +0.000152 0.000220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043000 +0.000758 0.001552 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111600 +0.001046 0.001680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085600 +0.000146 0.000189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.000030 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000441 0.000634 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139000 +0.000056 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.208400 +0.001188 0.001674 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.202200 +0.000015 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000137 0.000175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032200 +0.001341 0.001925 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.212200 +0.000032 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.159000 +0.000043 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111200 +0.000039 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000112 0.000165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074800 +0.000654 0.000823 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087000 +0.000561 0.000800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082000 +0.000104 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000059 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087600 +0.000635 0.000903 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.177200 +0.000111 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000071 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000207 0.000254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084200 +0.000377 0.000632 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.178000 +0.001963 0.002714 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123000 +0.000300 0.000457 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103400 +0.000018 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000006 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000200 0.000347 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.186800 +0.000029 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000023 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.003539 0.005066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097400 +0.000566 0.000810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000018 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096600 +0.000042 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072200 +0.000013 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000022 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000273 0.000375 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083400 +0.000503 0.000621 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092400 +0.001535 0.002359 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.186600 +0.000521 0.000644 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121200 +0.001159 0.001374 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.219800 +0.000233 0.000323 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.000287 0.000315 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.581799 +0.000140 0.000223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000061 0.000102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034000 +0.000031 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000161 0.000210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108000 +0.000469 0.000673 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.002388 0.003289 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134000 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000763 0.001111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.265199 +0.000009 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001402 0.002025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119400 +0.000104 0.000157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000237 0.000311 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079200 +0.000132 0.000186 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000835 0.001164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158400 +0.000012 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000045 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000010 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000001 0.000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000161 0.000227 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.225800 +0.000272 0.000338 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052400 +0.000038 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.004717 0.006739 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.191000 +0.000097 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.001157 0.001689 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096600 +0.002718 0.006034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083000 +0.000283 0.000420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069400 +0.000117 0.000174 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.001192 0.001381 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.344599 +0.001186 0.001536 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.319599 +0.000144 0.000299 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000227 0.000315 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080400 +0.000023 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000674 0.000745 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.165000 +0.000065 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.000017 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000098 0.000136 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.000564 0.000734 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118800 +0.000113 0.000152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000027 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033600 +0.000606 0.001158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.413399 +0.000021 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000035 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.146200 +0.001143 0.001409 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.215200 +0.000162 0.000201 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142000 +0.007593 0.009268 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.267599 +0.000938 0.001344 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.251799 +0.000003 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.000760 0.001146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088800 +0.000042 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076400 +0.000007 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003606 0.005039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.198800 +0.000064 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.253999 +0.000162 0.000245 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056000 +0.000103 0.000132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070600 +0.000022 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030200 +0.000081 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.578599 +0.000092 0.000130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000081 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073600 +0.000439 0.000720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071800 +0.000133 0.000206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085200 +0.000023 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043000 +0.000087 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.250599 +0.000625 0.000968 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.435999 +0.000206 0.000316 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000024 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085000 +0.000162 0.000212 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071200 +0.005422 0.007298 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151800 +0.000031 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000024 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000036 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000247 0.000348 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129400 +0.000051 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000015 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000120 0.000155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090600 +0.000320 0.000462 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.000054 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000089 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084000 +0.000022 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000032 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.001082 0.001599 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.265999 +0.000049 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046000 +0.000046 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000046 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.007092 0.009258 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.373399 +0.000025 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.000069 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078800 +0.001064 0.001275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088000 +0.000346 0.000522 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073200 +0.000023 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000430 0.000636 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070200 +0.000020 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000124 0.000204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074600 +0.000041 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000027 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.000044 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000038 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.819198 +0.000083 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.000038 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000258 0.000361 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.140800 +0.000014 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000143 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090600 +0.002232 0.002850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115400 +0.000590 0.000669 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.541999 +0.000074 0.000097 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.350599 +0.000048 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071800 +0.000051 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000031 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.000033 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000033 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.000281 0.000641 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098400 +0.000020 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000246 0.000330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000021 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000079 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000220 0.000252 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.239400 +0.000066 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000021 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000013 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000068 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.000208 0.000274 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058200 +0.000210 0.000276 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.274799 +0.000008 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033400 +0.000070 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.004498 0.006515 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.326799 +0.000091 0.000160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.000326 0.000439 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126200 +0.004773 0.005971 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.160200 +0.001668 0.002363 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085600 +0.001916 0.002471 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.261399 +0.000272 0.000365 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.000426 0.000665 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109600 +0.000134 0.000190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000044 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072800 +0.000024 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000001 0.000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.524999 +0.000271 0.000408 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118400 +0.000026 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000015 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000060 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.000062 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.188800 +0.000146 0.000209 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.004868 0.006568 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.450799 +0.000161 0.000244 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.001417 0.001872 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071000 +0.000289 0.000391 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122800 +0.000780 0.001112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.000822 0.001035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091000 +0.000431 0.000603 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.000140 0.000206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042400 +0.000145 0.000181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071400 +0.000070 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.000135 0.000180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085000 +0.000166 0.000225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075200 +0.000132 0.000161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080200 +0.000023 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000122 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000092 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.000101 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.000016 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000019 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000065 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135000 +0.000102 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.215600 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000681 0.000967 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.000260 0.000378 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000131 0.000176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001444 0.002785 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078600 +0.000122 0.000163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068000 +0.000051 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000144 0.000221 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045200 +0.000242 0.000354 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086200 +0.000030 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.002653 0.004700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123600 +0.000063 0.000102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000389 0.000583 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117600 +0.000887 0.001498 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.211400 +0.000031 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000104 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000157 0.000224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098600 +0.000149 0.000209 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000026 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037000 +0.000008 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000024 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085800 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000037 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000238 0.000320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123800 +0.000171 0.000240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000475 0.000588 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.141400 +0.000054 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000288 0.000443 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094800 +0.000003 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.899998 +0.000099 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000402 0.000633 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.183600 +0.000133 0.000197 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000097 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000005 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000022 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.000143 0.000284 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.191000 +0.000176 0.000241 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127600 +0.002064 0.002847 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.173400 +0.000967 0.001288 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000024 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000098 0.000144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120600 +0.000061 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.000221 0.000320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070800 +0.000096 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.000311 0.000390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.473799 +0.000552 0.000796 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000084 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074400 +0.000010 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000095 0.000141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.000034 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047000 +0.000168 0.000201 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157800 +0.000172 0.000220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.147200 +0.000132 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.164600 +0.000494 0.000705 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000118 0.000170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000071 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000007 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000050 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000020 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000508 0.000725 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.272999 +0.000171 0.000267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069800 +0.000513 0.000802 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124800 +0.000028 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000042 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.198000 +0.000066 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000601 0.000767 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.400999 +0.000261 0.000386 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.000108 0.000149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.000021 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000266 0.000320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.246199 +0.000005 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000088 0.000129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.000019 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000114 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000383 0.000520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117400 +0.000104 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.003193 0.004493 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086000 +0.002357 0.003727 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068000 +0.001782 0.002211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.167800 +0.000153 0.000231 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037400 +0.000233 0.000334 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.001117 0.001374 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121800 +0.000431 0.000538 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.649999 +0.000007 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000148 0.000195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000193 0.000273 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.000115 0.000182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000057 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082200 +0.002199 0.003016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.307799 +0.003549 0.005482 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121200 +0.000869 0.001568 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080200 +0.000588 0.000932 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.000225 0.000370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000012 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000154 0.000237 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000739 0.001050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088200 +0.001873 0.002364 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109600 +0.007136 0.011192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.230200 +0.001151 0.001563 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000040 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000166 0.000263 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000008 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.006889 0.008444 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.310199 +0.000495 0.000536 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158000 +0.000071 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000163 0.000240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081400 +0.004179 0.005075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.195600 +0.000514 0.000627 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103800 +0.000142 0.000194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000045 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000073 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000171 0.000243 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099400 +0.000248 0.000338 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000286 0.000372 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084600 +0.000165 0.000229 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142800 +0.000098 0.000126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077000 +0 0.000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000068 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046400 +0.000155 0.000207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.234400 +0.000238 0.000331 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.000302 0.000380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109400 +0.000400 0.000913 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086400 +0.000278 0.000290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.411799 +0.000405 0.000652 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000028 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000033 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085400 +0.001254 0.001810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068200 +0.000011 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000006 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000685 0.000788 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.245599 +0.000538 0.000688 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093000 +0.000029 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001260 0.001896 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097600 +0.000334 0.000418 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082200 +0.000021 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000016 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033600 +0.000255 0.000334 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.000143 0.000172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000156 0.000239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.000119 0.000165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087600 +0.000066 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000466 0.000701 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.004231 0.005461 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058200 +0.000276 0.000377 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089000 +0.000126 0.000175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000047 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000110 0.000132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086600 +0.006703 0.009764 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091000 +0.000154 0.000196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000157 0.000297 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128800 +0.000045 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000010 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000031 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.000134 0.000155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.169400 +0.000257 0.000370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000364 0.000516 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081800 +0.000191 0.000236 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142200 +0.000025 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.000792 0.001122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.005712 0.008221 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122600 +0.001782 0.002260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046400 +0.000034 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000088 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049200 +0.000048 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133400 +0.000109 0.000178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058400 +0.000115 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033600 +0.000288 0.000480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130200 +0.000009 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000039 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000061 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093000 +0.000044 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000159 0.000211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076800 +0.000029 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.001167 0.001611 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097000 +0.000046 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000083 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036000 +0.000246 0.000372 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126800 +0.000015 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000031 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034800 +0.001102 0.002016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085200 +0.000178 0.000262 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.267999 +0.000044 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067800 +0.000171 0.000239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069400 +0.000031 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000090 0.000123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000091 0.000115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.168400 +0.002574 0.004019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.195200 +0.000310 0.000472 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000106 0.000204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097600 +0.000042 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059000 +0.000657 0.000974 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150400 +0.000265 0.000383 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.000243 0.000323 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.207400 +0.000209 0.000337 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000099 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073400 +0.000046 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085800 +0.000254 0.000371 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036400 +0.000019 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000018 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.318799 +0.000039 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000217 0.000353 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087400 +0.000022 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.000029 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073200 +0.000098 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.034304 0.055135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084000 +0.000004 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000054 0.000091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000397 0.000453 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156200 +0.000601 0.000942 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100400 +0.000149 0.000200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113000 +0.000494 0.000687 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078400 +0.000021 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000411 0.000770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093000 +0.000009 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000066 0.000097 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114800 +0.000413 0.000681 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035200 +0.000022 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000159 0.000217 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.000017 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.004464 0.006714 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134600 +0.000235 0.000364 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000031 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000047 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.001272 0.001770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124400 +0.000015 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001744 0.002318 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111800 +0.000895 0.001469 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000044 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000006 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000002 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000244 0.000296 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.204800 +0.000097 0.000135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070800 +0.000031 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066200 +0.000245 0.000341 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103600 +0.000140 0.000206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084800 +0.000037 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.257599 +0.006026 0.008980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.482799 +0.000794 0.001127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082800 +0.000776 0.001264 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.366599 +0.005798 0.010128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112800 +0.000016 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000012 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000402 0.000616 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098400 +0.000119 0.000182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000037 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000030 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074200 +0.000194 0.000278 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034800 +0.000366 0.000449 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133000 +0.001823 0.002994 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139200 +0.006496 0.010331 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.322199 +0.000957 0.001320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.260199 +0.000581 0.000730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.317399 +0.000277 0.000389 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.149800 +0.000149 0.000188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106400 +0.000123 0.000165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000302 0.000400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000089 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000056 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000092 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000054 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035200 +0.000008 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000143 0.000162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157600 +0.000059 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031800 +0.000025 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000042 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.010967 0.015938 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.147400 +0.000156 0.000216 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000473 0.000668 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.315599 +0.000013 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000041 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.002016 0.003389 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156400 +0.000035 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000014 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000043 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000002 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000033 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071400 +0.000032 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115000 +0.000734 0.000843 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.355799 +0.000179 0.000235 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.000001 0.000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.262599 +0.000025 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000129 0.000196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039200 +0.000085 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034800 +0.000058 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030800 +0.001225 0.001395 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.201400 +0.000133 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.138400 +0.000014 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000072 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.000140 0.000194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.000225 0.000315 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130600 +0.000055 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000053 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000089 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097200 +0.000624 0.000741 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.273799 +0.000006 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.004876 0.006303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.243999 +0.000727 0.000978 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.271799 +0.001252 0.001646 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.189400 +0.000039 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096000 +0.000045 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083600 +0.000018 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000007 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000582 0.000781 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.001867 0.002699 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071800 +0.000430 0.000634 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.478599 +0.001435 0.002459 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081400 +0.000035 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068000 +0.001549 0.002071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.224800 +0.000065 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109400 +0.000048 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034400 +0.000306 0.000478 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.000380 0.000509 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088600 +0.000213 0.000325 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.271399 +0.000043 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.297599 +0.000239 0.000349 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101000 +0.000221 0.000321 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033600 +0.000144 0.000198 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.238400 +0.000037 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034000 +0.000042 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000053 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047000 +0.000058 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096600 +0.000007 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069200 +0.000048 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000173 0.000253 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128200 +0.000027 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110400 +0.003170 0.003790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090800 +0.000052 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000025 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000162 0.000226 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047800 +0.000055 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.000174 0.000218 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.259999 +0.000053 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000060 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000008 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000024 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000016 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058400 +0.000280 0.000426 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.207400 +0.000195 0.000309 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030600 +0.000071 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000229 0.000258 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.171400 +0.000372 0.000444 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.216600 +0.000412 0.000647 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.149000 +0.000032 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000018 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000126 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000389 0.000534 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086600 +0.000669 0.000777 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.405599 +0.000406 0.000620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.001839 0.002224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128000 +0.000046 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063600 +0.000010 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.000029 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000023 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.000116 0.000163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.002135 0.003210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000012 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000195 0.000309 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000462 0.000525 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136800 +0.000094 0.000135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000334 0.000471 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107400 +0.000035 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.005991 0.007333 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127800 +0.000260 0.000346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095800 +0.001055 0.001324 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.140000 +0.000282 0.000342 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153400 +0.000062 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000106 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.002914 0.004739 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.000022 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066200 +0.000024 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105000 +0.000046 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.004870 0.007660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081800 +0.000017 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000113 0.000161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000121 0.000192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073200 +0.000142 0.000174 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142600 +0.000624 0.000684 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.289399 +0.000006 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000245 0.000318 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000192 0.000271 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139200 +0.001590 0.002805 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000562 0.000822 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.000471 0.000681 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000065 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070200 +0.000037 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.653799 +0.000280 0.000375 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.000561 0.000650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.164600 +0.000655 0.000774 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.186400 +0.000005 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000031 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000032 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000011 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000270 0.000387 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098400 +0.000050 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.202000 +0.000217 0.000259 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083000 +0.000055 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067800 +0.000118 0.000189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000216 0.000304 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156400 +0.000037 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000041 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130600 +0.006484 0.007955 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.266799 +0.000019 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000017 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000044 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.144600 +0.000062 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000134 0.000195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.274999 +0.000240 0.000311 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000089 0.000169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108600 +0.002081 0.002750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.003979 0.005897 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093000 +0.000228 0.000258 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.183200 +0.000436 0.000488 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077400 +0.000625 0.001085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093200 +0.000021 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033400 +0.001600 0.002313 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.233800 +0.000022 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.002864 0.003730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.447199 +0.000016 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081800 +0.000063 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000023 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000011 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000222 0.000347 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.000475 0.000582 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.324799 +0.000223 0.000297 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034800 +0.000567 0.000780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.266999 +0.000129 0.000172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083200 +0.000093 0.000130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000083 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000052 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000023 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000016 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000385 0.000528 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.001698 0.002382 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.159600 +0.000192 0.000265 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.169200 +0.000017 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000176 0.000252 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.000268 0.000378 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000113 0.000179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000836 0.001091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.306199 +0.000291 0.000364 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.213000 +0.000561 0.000716 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000063 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.247999 +0.001837 0.002618 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101200 +0.000623 0.000888 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131800 +0.000167 0.000238 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037000 +0.000036 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000039 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069200 +0.003676 0.005173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.260399 +0.000059 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.165800 +0.000083 0.000123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000747 0.001038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094600 +0.023905 0.040102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000041 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000010 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000145 0.000192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041400 +0.000058 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000051 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.000003 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000185 0.000272 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000191 0.000300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000044 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000077 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074400 +0.002038 0.002560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.613599 +0.000045 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.000016 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038000 +0.000012 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000071 0.000097 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000828 0.002083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.000047 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000062 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030600 +0.000049 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000047 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000041 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000057 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091400 +0.000562 0.000827 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000607 0.000819 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088200 +0.000319 0.000439 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091800 +0.000106 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.000007 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000048 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000269 0.000316 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134400 +0.000034 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000082 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034400 +0.000042 0.000091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106400 +0.000041 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084600 +0.000054 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000005 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000261 0.000358 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.000145 0.000206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.000004 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000089 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117200 +0.000044 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000088 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.001000 0.001237 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083600 +0.000101 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065400 +0.004376 0.006429 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.331399 +0.000093 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.000441 0.000451 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142600 +0.000243 0.000373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000074 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075400 +0.000019 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000014 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000088 0.000123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039200 +0.000296 0.000355 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127000 +0.000030 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000028 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000209 0.000274 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000036 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037800 +0.003724 0.004258 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.175200 +0.002065 0.002656 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121400 +0.000205 0.000307 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000117 0.000162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115000 +0.000055 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000308 0.000437 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049200 +0.000010 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000323 0.000467 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.000295 0.000392 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069600 +0.000018 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066200 +0.000023 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000196 0.000282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000020 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000051 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000018 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000141 0.000215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079200 +0.000638 0.000785 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.184600 +0.000067 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069600 +0.000067 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032800 +0.000054 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000011 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000303 0.000475 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032200 +0.004807 0.007230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102000 +0.000178 0.000233 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069600 +0.000021 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000018 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003784 0.005393 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151200 +0.001026 0.001468 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000047 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089600 +0.000145 0.000232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000544 0.000620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.141800 +0.000435 0.000524 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095400 +0.000663 0.001028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.256999 +0.000411 0.000658 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000024 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000330 0.000509 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.000153 0.000195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108200 +0.000195 0.000237 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110000 +0.000104 0.000133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.428199 +0.000613 0.000992 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.182800 +0.000912 0.001425 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000045 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000039 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000006 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000127 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.140400 +0.000037 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.761998 +0.000079 0.000102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.000016 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000377 0.000475 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000149 0.000214 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000244 0.000396 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000103 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.205800 +0.000015 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106600 +0.001096 0.001628 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.209400 +0.000352 0.000511 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000613 0.000846 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.000329 0.000503 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000063 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.189000 +0.000105 0.000150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034400 +0.000009 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000077 0.000102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044400 +0.000079 0.000108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047400 +0.000173 0.000285 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.466399 +0.000149 0.000169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000129 0.000216 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000445 0.000642 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.189000 +0.002086 0.002786 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129000 +0.000102 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156800 +0.001983 0.002525 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.224600 +0.000017 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000933 0.001405 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000085 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036800 +0.000268 0.000362 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.000071 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039400 +0.000111 0.000163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000273 0.000407 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066000 +0.000006 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003045 0.003944 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046400 +0.000066 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000290 0.000443 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109400 +0.000050 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.000941 0.001440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.001417 0.001916 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105000 +0.000318 0.000364 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128600 +0.000040 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000036 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.001973 0.002618 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126400 +0.000129 0.000314 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157800 +0.000072 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046000 +0.000037 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.236200 +0.000087 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.001078 0.001416 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.188200 +0.000007 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000063 0.000126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066000 +0.000526 0.000735 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.327599 +0.000215 0.000272 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098400 +0.000002 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000015 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.000011 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.177200 +0.000084 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.182400 +0.000037 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001299 0.001765 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.231000 +0.001387 0.002241 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099800 +0.000013 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000134 0.000206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000006 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000062 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098000 +0.000177 0.000286 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.169200 +0.000028 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000116 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122600 +0.000024 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000016 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.002332 0.003542 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072200 +0.000151 0.000221 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.000293 0.000432 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.246799 +0.000171 0.000189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.002670 0.003928 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083000 +0.002955 0.003566 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.165800 +0.000904 0.001630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131600 +0.000022 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000718 0.001020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100800 +0.000031 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000363 0.000457 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090000 +0.003239 0.004423 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.267199 +0.000223 0.000308 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082800 +0.000126 0.000165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074800 +0.000328 0.000528 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.355399 +0.000044 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000007 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000033 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000016 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033400 +0.000087 0.000126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067800 +0.000035 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000126 0.000192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.000228 0.000304 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000214 0.000308 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072800 +0.000601 0.000927 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000041 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.000377 0.000528 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075800 +0.000049 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002369 0.003093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150600 +0.000044 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000622 0.000890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000681 0.000897 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086800 +0.000105 0.000152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000453 0.000646 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.237000 +0.004369 0.006502 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.381799 +0.000191 0.000278 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079800 +0.000242 0.000290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074200 +0.000423 0.000638 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.186000 +0.000329 0.000452 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000436 0.000652 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.148200 +0.000010 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000016 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.000020 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.000094 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070800 +0.000178 0.000209 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000472 0.000753 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102000 +0.000019 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095000 +0.000033 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101200 +0.000379 0.000691 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161800 +0.000055 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000145 0.000191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056000 +0.000184 0.000309 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.147600 +0.000033 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.000041 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000042 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034000 +0.000627 0.000774 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.176200 +0.000137 0.000224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.012648 0.015731 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.173800 +0.001212 0.001694 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062400 +0.000035 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154800 +0.000005 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000112 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000027 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001290 0.002142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083000 +0.000074 0.000102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.014369 0.027439 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123000 +0.000082 0.000126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000092 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095800 +0.000209 0.000309 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000159 0.000175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.216200 +0.000068 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000015 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000153 0.000210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000045 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102200 +0.000091 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071200 +0.000117 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000023 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000194 0.000303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.001317 0.002033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000017 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000050 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000280 0.000503 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118000 +0.000711 0.001122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.169800 +0.001133 0.002619 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128000 +0.000009 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122600 +0.000039 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000128 0.000183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000095 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.000026 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000017 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000090 0.000146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000032 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100600 +0.000093 0.000129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081800 +0.000179 0.000218 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092000 +0.000240 0.000292 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077800 +0.000292 0.000400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.000105 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034800 +0.000820 0.000961 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078400 +0.000284 0.000393 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089200 +0.000041 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.004928 0.006941 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.141600 +0.001040 0.001568 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098200 +0.000174 0.000258 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000086 0.000126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000094 0.000126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.000010 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.007017 0.009870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.140600 +0.000024 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000008 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.000093 0.000127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068200 +0.000502 0.000604 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.233600 +0.001694 0.002490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.256599 +0.000076 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000141 0.000200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086800 +0.000019 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.001582 0.002554 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080400 +0.000595 0.001000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067400 +0.000025 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000127 0.000203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136400 +0.000683 0.000991 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106400 +0.000059 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.000042 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047000 +0.000408 0.000585 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000216 0.000324 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032200 +0.000196 0.000271 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071400 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081200 +0.000367 0.000654 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134000 +0.000031 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047200 +0.000388 0.000602 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121000 +0.000007 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000166 0.000231 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078800 +0.000157 0.000206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089600 +0.000035 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000277 0.000333 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.205800 +0.000705 0.001043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062400 +0.000064 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155800 +0.000292 0.000403 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.001050 0.001638 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086400 +0.000454 0.000635 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115400 +0.001917 0.002630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.160400 +0.000016 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044400 +0.000024 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000041 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.000271 0.000399 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000104 0.000166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143200 +0.003644 0.005474 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106000 +0.000062 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.006666 0.009079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117600 +0.000174 0.000212 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000569 0.000818 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.000103 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000506 0.000758 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065200 +0.001801 0.002653 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.000157 0.000189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107400 +0.000035 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000592 0.000904 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052400 +0.000029 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000033 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000040 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000041 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089200 +0.000066 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101200 +0.000089 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000193 0.000292 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109200 +0.000005 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001023 0.001571 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085400 +0.000038 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.000026 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000561 0.000794 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000306 0.000905 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.689599 +0.000005 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000146 0.000203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.000276 0.000412 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.000085 0.000114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001772 0.002165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.266399 +0.000112 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102600 +0.000277 0.000424 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077400 +0.000267 0.000306 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094200 +0.000853 0.001014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126000 +0.001383 0.002038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.000131 0.000178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000018 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.001158 0.003411 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.149400 +0.004501 0.008200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.146800 +0.000089 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000797 0.001022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105400 +0.000065 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044400 +0.000015 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046400 +0.000144 0.000208 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.000615 0.000728 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125000 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.001873 0.002933 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000740 0.001158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.311399 +0.000021 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000106 0.000170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000139 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000023 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000059 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.220800 +0.000044 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036400 +0.000050 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068200 +0.000265 0.000435 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.000235 0.000287 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.378799 +0.001820 0.002464 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.003434 0.005635 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121800 +0.001105 0.001369 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136600 +0.000941 0.001359 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124200 +0.000047 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000041 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102000 +0.000198 0.000244 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088600 +0.000066 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034400 +0.001887 0.002630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.238400 +0.000174 0.000240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.001045 0.001258 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.387599 +0.000008 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000051 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.232000 +0.001492 0.002369 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092800 +0.000471 0.000602 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092600 +0.000109 0.000149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030800 +0.000397 0.000531 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075800 +0.009140 0.011349 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.391199 +0.000006 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000184 0.000261 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000040 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000087 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.266399 +0.000236 0.000262 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.189800 +0.000084 0.000124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034000 +0.000087 0.000119 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000010 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031000 +0.000370 0.000530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.022475 0.031066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.359799 +0.000043 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071800 +0.000015 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090400 +0.000046 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099200 +0.000031 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000016 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001506 0.002266 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069600 +0.002851 0.003610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.163200 +0.000149 0.000229 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000040 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000014 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000023 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000345 0.000471 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124600 +0.000075 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.000244 0.000323 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077000 +0.000165 0.000210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098600 +0.000075 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000592 0.000731 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.599199 +0.000056 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034800 +0.000046 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031800 +0.000109 0.000135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000028 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070200 +0.000167 0.000226 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.386199 +0.000198 0.000293 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.001394 0.002240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112400 +0.000223 0.000275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080200 +0.000097 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000077 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067800 +0.000127 0.000289 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000495 0.000748 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000042 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.243800 +0.000032 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000247 0.000351 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.170000 +0.001458 0.001693 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.258599 +0.000443 0.000563 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095800 +0.000103 0.000154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000185 0.000264 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000006 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000006 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000029 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000144 0.000196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.282399 +0.000147 0.000187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092400 +0.000179 0.000237 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.000141 0.000212 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000155 0.000226 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.000022 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003428 0.004557 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122400 +0.000033 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000536 0.000762 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.173000 +0.000185 0.000283 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071800 +0.066545 0.103549 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077800 +0.000619 0.000880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.203000 +0.000087 0.000135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057400 +0.000245 0.000343 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073600 +0.000027 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.002763 0.005033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.336199 +0.000009 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000250 0.000332 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000164 0.000207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085600 +0.001142 0.001679 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000010 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085000 +0.003510 0.004903 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.219000 +0.000045 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000745 0.000927 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.202800 +0.000034 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.001123 0.002198 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.466999 +0.000425 0.000670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088000 +0.000535 0.000812 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081800 +0.000077 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000015 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000160 0.000195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089400 +0.000035 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073200 +0.000122 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000095 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031400 +0.000611 0.000915 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106000 +0.000305 0.000433 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090400 +0.000034 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000535 0.000659 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113000 +0.000301 0.000336 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000059 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084800 +0.000403 0.000461 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092800 +0.000359 0.000524 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000959 0.001524 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.167200 +0.000056 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000019 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000102 0.000150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.000111 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.364199 +0.000042 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030800 +0.000114 0.000135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000034 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000016 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068600 +0.000124 0.000189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033600 +0.000113 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000011 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000061 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.000033 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046800 +0.000062 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083400 +0.000278 0.000348 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.650799 +0.000103 0.000166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000055 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000056 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111600 +0.000023 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000241 0.000370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058200 +0.002401 0.003096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120000 +0.000020 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000079 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000006 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000230 0.000338 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101600 +0.000034 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000049 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000024 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.000107 0.000158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031400 +0.000071 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090000 +0.000239 0.000294 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071000 +0.000065 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.002360 0.003028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.223400 +0.000463 0.000738 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.000017 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068800 +0.000780 0.000908 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.251399 +0.000242 0.000332 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.146200 +0.000015 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.006127 0.008025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.245599 +0.003958 0.007067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.147200 +0.000299 0.000443 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080200 +0.000023 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000540 0.000748 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118400 +0.000401 0.000528 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122000 +0.000246 0.000350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105600 +0.000038 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.152200 +0.000743 0.000990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091400 +0.000009 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030400 +0.000018 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000010 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.000925 0.001178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.146400 +0.001260 0.001737 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070800 +0.000129 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071000 +0.000041 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.000041 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000019 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.000045 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.000361 0.000455 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112400 +0.000211 0.000299 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067400 +0.000028 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001958 0.002863 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117000 +0.000104 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000085 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088000 +0.000156 0.000236 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000669 0.001025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000013 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000131 0.000197 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047000 +0.000075 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000087 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076600 +0.000054 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065400 +0.000052 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000041 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000144 0.000179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036000 +0.000508 0.000686 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089200 +0.000005 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000044 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030800 +0.000569 0.000649 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.421599 +0.001147 0.001722 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143800 +0.000141 0.000201 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000538 0.000758 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.253999 +0.000889 0.001323 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057400 +0.000747 0.001106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.317399 +0.000010 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000016 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.000098 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.281599 +0.000457 0.000660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000010 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000261 0.000339 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112000 +0.000038 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000026 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000110 0.000158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000158 0.000215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000029 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.000072 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000849 0.001171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115600 +0.001237 0.001626 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078600 +0.001312 0.001918 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092600 +0.000009 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000080 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.006193 0.006889 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.140800 +0.000465 0.000724 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068000 +0.001605 0.002054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117200 +0.001650 0.003964 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.147400 +0.000035 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000325 0.000463 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.001032 0.001362 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123400 +0.000007 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000100 0.000155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000023 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111200 +0.000020 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000397 0.000504 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156400 +0.000190 0.000267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000034 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104400 +0.000037 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046400 +0.000076 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000842 0.001325 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000023 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000034 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.001227 0.001784 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.000016 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000104 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000299 0.000423 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000012 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000017 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000215 0.000335 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132600 +0.000046 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000221 0.000286 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074600 +0.000038 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000372 0.000588 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.000949 0.001531 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057400 +0.000259 0.000297 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.266399 +0.000110 0.000157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000182 0.000239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.000041 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000216 0.000304 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068000 +0.000225 0.000312 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076600 +0.000166 0.000196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093800 +0.000101 0.000136 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131600 +0.000029 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000106 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115200 +0.000025 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000438 0.000637 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.187800 +0.000303 0.000408 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000187 0.000265 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.000117 0.000186 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.002759 0.003532 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.340199 +0.000268 0.000333 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.205200 +0.000016 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000436 0.000598 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.000072 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066000 +0.004546 0.005567 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135400 +0.000009 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000970 0.001356 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068000 +0.000741 0.001133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000206 0.000314 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082800 +0.000320 0.000423 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.001052 0.001569 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.251999 +0.000432 0.000597 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.192600 +0.000020 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070800 +0.000018 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074400 +0.001789 0.002586 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037400 +0.000598 0.000840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059800 +0.000113 0.000229 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.167000 +0.000763 0.000941 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.315399 +0.000027 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000179 0.000276 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104800 +0.000014 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000286 0.000698 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.512599 +0.000069 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100400 +0.000260 0.000387 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.000402 0.000522 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.315999 +0.000398 0.000569 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000505 0.000733 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116600 +0.000126 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100400 +0.000264 0.000290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.229200 +0.000010 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002408 0.003330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125800 +0.003007 0.004567 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092600 +0.000549 0.000731 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.283399 +0.000087 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078600 +0.000277 0.000366 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.000106 0.000149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056000 +0.000004 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000016 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000014 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000570 0.000764 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.375199 +0.000020 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000341 0.000568 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.002740 0.003577 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131400 +0.000184 0.000235 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071800 +0.000742 0.000917 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115600 +0.000754 0.001382 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.214800 +0.000967 0.000984 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000028 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000157 0.000202 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121800 +0.000233 0.000258 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116000 +0.000022 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.000103 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083000 +0.000111 0.000165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047800 +0.000184 0.000312 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000287 0.000351 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082200 +0.000591 0.000746 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.191400 +0.000056 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.000007 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000561 0.000880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.000350 0.000447 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090400 +0.000090 0.000154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000047 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000741 0.001124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.255399 +0.000044 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031400 +0.000053 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068200 +0.000488 0.000711 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000113 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085200 +0.000089 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076800 +0.000911 0.001414 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.167200 +0.000521 0.000841 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.194000 +0.000006 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000012 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000049 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.259399 +0.000107 0.000162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.001672 0.002549 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034800 +0.006234 0.013976 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.367999 +0.000047 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000120 0.000251 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.261399 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000144 0.000223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.205200 +0.000086 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091000 +0.000020 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000080 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.000426 0.000571 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000033 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000100 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126200 +0.000541 0.000825 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097200 +0.000012 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000030 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000272 0.000421 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000081 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.000221 0.000253 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.189800 +0.001580 0.001906 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126600 +0.000676 0.000938 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000166 0.000233 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000068 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.171200 +0.000051 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000202 0.000304 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000125 0.000179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070800 +0.000879 0.001175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.224000 +0.000661 0.000953 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.162200 +0.000107 0.000207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155400 +0.000010 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000037 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000059 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.000009 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000730 0.001070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.001376 0.001571 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151400 +0.000115 0.000219 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091000 +0.000110 0.000160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000360 0.000584 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.770798 +0.000044 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000144 0.000203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000026 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000020 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031400 +0.000101 0.000135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081400 +0.000401 0.000721 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.355199 +0.002045 0.003077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069200 +0.000048 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000211 0.000304 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057400 +0.000557 0.000821 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000246 0.000362 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000056 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.000107 0.000170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034000 +0.000151 0.000199 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103400 +0.000252 0.000354 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043000 +0.000409 0.000416 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095000 +0.000069 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000015 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000010 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039200 +0.000177 0.000257 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000048 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.001701 0.002101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.298599 +0.000017 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000103 0.000149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074000 +0.000102 0.000163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030400 +0.000165 0.000206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101400 +0.000022 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000073 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030600 +0.002623 0.003253 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.152400 +0.000078 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.002152 0.003025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101800 +0.000047 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000004 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000207 0.000238 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.447799 +0.000006 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000334 0.000463 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000111 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077800 +0.000131 0.000207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093400 +0.008572 0.012025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115800 +0.002021 0.003272 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.182600 +0.000100 0.000180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000116 0.000144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092200 +0.000204 0.000338 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128400 +0.000039 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.205200 +0.000068 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.010259 0.013646 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.368399 +0.000135 0.000163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.212600 +0.000580 0.000796 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.244799 +0.000104 0.000127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000279 0.000324 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130800 +0.000003 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085000 +0.000051 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034000 +0.000094 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000021 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000044 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067800 +0.000007 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000070 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085000 +0.000135 0.000192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047800 +0.000730 0.001077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069800 +0.000021 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000021 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000076 0.000102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000131 0.000175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079200 +0.000341 0.000484 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117000 +0.000338 0.000506 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000277 0.000364 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.004934 0.006929 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089600 +0.000114 0.000152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000601 0.000834 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.000261 0.000376 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078600 +0.000172 0.000238 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.197400 +0.000011 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000138 0.000169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103200 +0.000016 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.001239 0.002644 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155400 +0.000092 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072400 +0.000115 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000024 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000027 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074600 +0.000057 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.000080 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068600 +0.000222 0.000293 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153200 +0.000192 0.000267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094400 +0.000899 0.001052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086200 +0.000781 0.001095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088800 +0.000015 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000336 0.000472 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.405599 +0.000105 0.000144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066000 +0.000161 0.000232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035200 +0.000072 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000027 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000083 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087600 +0.001058 0.001645 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157200 +0.000081 0.000132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000080 0.000114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000048 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000020 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.000065 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000249 0.000439 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.000026 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133600 +0.000104 0.000147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115600 +0.000100 0.000160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000222 0.000288 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093400 +0.000052 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032200 +0.000209 0.000322 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.000005 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000081 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.002064 0.003081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000163 0.000218 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.000017 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000200 0.000303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000375 0.000445 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.385999 +0.000082 0.000123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000072 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083400 +0.000149 0.000228 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074000 +0.000040 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000024 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000302 0.000407 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068200 +0.000344 0.000427 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093000 +0.000161 0.000224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109200 +0.000132 0.000176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091400 +0.000525 0.000762 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.138400 +0.001508 0.002021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.267999 +0.000030 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000159 0.000219 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.000068 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068000 +0.000049 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112600 +0.000043 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000124 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110200 +0.000027 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073600 +0.000119 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098600 +0.000157 0.000203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073200 +0.000013 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043000 +0.000020 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000007 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000055 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058200 +0.000038 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000266 0.000324 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105400 +0.000226 0.000372 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.000238 0.000356 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000022 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000213 0.000290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000051 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000117 0.000165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076000 +0.002752 0.004158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.207000 +0.000108 0.000150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.002601 0.003294 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082000 +0.000029 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000107 0.000149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081200 +0.000141 0.000207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034800 +0.000002 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000020 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153800 +0.000453 0.000505 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000021 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000082 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.000047 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000371 0.000524 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.000009 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000286 0.000352 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.296799 +0.003749 0.005257 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.332799 +0.000002 0.000003 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000163 0.000267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000018 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000028 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.000011 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.001171 0.001722 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.179400 +0.000053 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000122 0.000284 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.431599 +0.001202 0.002097 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.168400 +0.000128 0.000221 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033600 +0.000087 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030400 +0.000514 0.000711 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.000104 0.000147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069600 +0.000047 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071000 +0.000013 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000278 0.000416 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090600 +0.000113 0.000180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.000367 0.000692 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.310799 +0.000124 0.000192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150600 +0.000089 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071000 +0.000193 0.000260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.303399 +0.000042 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065400 +0.000352 0.000371 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127600 +0.000009 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000166 0.000220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000153 0.000177 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.287599 +0.000151 0.000240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069800 +0.003339 0.003800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.239600 +0.000037 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000234 0.000370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143600 +0.003351 0.004489 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154800 +0.000028 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063600 +0.000410 0.000508 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.203000 +0.000146 0.000192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.184200 +0.000007 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000032 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.198400 +0.004398 0.005398 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.174400 +0.000017 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001708 0.002436 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.383199 +0.000253 0.000373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.193600 +0.000030 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078000 +0.003030 0.004429 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.203800 +0.000234 0.000318 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000084 0.000115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.000131 0.000209 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000884 0.001334 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.000025 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037000 +0.000008 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000353 0.000497 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.000164 0.000215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.000051 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000156 0.000227 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000352 0.000420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112000 +0.000104 0.000136 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083400 +0.000247 0.000393 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000074 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063600 +0.000473 0.000742 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049200 +0.000002 0.000003 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000261 0.000426 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.286999 +0.000028 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000676 0.000870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137800 +0.000042 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000458 0.000661 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000002 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001546 0.002297 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000030 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000350 0.000485 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104000 +0.000156 0.000187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.209200 +0.000023 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.000226 0.000278 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100000 +0.000011 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000126 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.162600 +0.000131 0.000207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000010 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000797 0.000935 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.160000 +0.001846 0.002584 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000003 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000752 0.000983 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000039 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030600 +0.000801 0.001425 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.183400 +0.000092 0.000141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034400 +0.000140 0.000187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000191 0.000233 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000687 0.001038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.225600 +0.000140 0.000180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000021 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094200 +0.000293 0.000425 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000726 0.001038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000224 0.000291 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000860 0.001244 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.192800 +0.000032 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092000 +0.000106 0.000147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000402 0.000580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090600 +0.000076 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000560 0.000871 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042400 +0.000305 0.000505 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067800 +0.000391 0.000471 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.213000 +0.000275 0.000456 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000216 0.000250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.396199 +0.003054 0.003741 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.180200 +0.000106 0.000158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.167400 +0.001819 0.002665 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.271399 +0.000031 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033400 +0.000084 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.190000 +0.000124 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096800 +0.002720 0.004010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139400 +0.000061 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047800 +0.000194 0.000261 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069000 +0.000029 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069600 +0.000530 0.000648 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105000 +0.000118 0.000147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.243800 +0.000026 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000010 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001515 0.002585 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084000 +0.000554 0.000836 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000057 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000185 0.000228 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.293399 +0.000086 0.000115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.002428 0.003289 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000018 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156200 +0.000091 0.000125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072200 +0.000110 0.000162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.309599 +0.000110 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068600 +0.000207 0.000337 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107200 +0.001481 0.002247 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.213600 +0.000216 0.000295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124200 +0.000494 0.000682 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082200 +0.000032 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000632 0.000807 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075400 +0.000131 0.000165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.000085 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.223000 +0.000187 0.000245 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075800 +0.000431 0.000671 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132800 +0.002047 0.002754 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108400 +0.000862 0.000980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.258399 +0.000035 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.000247 0.000347 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118200 +0.000051 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000104 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000100 0.000141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000214 0.000303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059000 +0.000055 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000235 0.000300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.180400 +0.000077 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.000144 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113400 +0.000666 0.000964 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069600 +0.000009 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000717 0.000898 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092000 +0.000182 0.000287 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.000395 0.000518 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077400 +0.000588 0.000795 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.187400 +0.000052 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000611 0.000759 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090800 +0.000183 0.000239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094800 +0.000032 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000009 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000084 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000072 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058400 +0.000111 0.000132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.005123 0.007015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073200 +0.000016 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000608 0.000673 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.364199 +0.000020 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085800 +0.000587 0.001030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107400 +0.000020 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000167 0.000241 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134000 +0.000052 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.000250 0.000284 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.001615 0.001835 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.524399 +0.000020 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000982 0.001191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103600 +0.000026 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000024 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.000006 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000062 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000013 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000286 0.000447 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000952 0.001263 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110600 +0.000022 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.000033 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.000214 0.000325 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.001539 0.002356 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151000 +0.000022 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000259 0.000332 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100000 +0.000250 0.000343 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.000015 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.010135 0.012739 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155200 +0.000134 0.000199 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.148600 +0.000028 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.000218 0.000300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000559 0.000875 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.000126 0.000198 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.000166 0.000228 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000007 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000317 0.000444 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.000127 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076600 +0.000116 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084600 +0.000165 0.000222 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081200 +0.000087 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068200 +0.000310 0.000377 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000041 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078000 +0.000215 0.000348 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.284599 +0.000226 0.000303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113400 +0.000073 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000175 0.000243 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.001387 0.002034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000637 0.001060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000276 0.000319 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.167400 +0.000977 0.001183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.192600 +0.000038 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000022 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037200 +0.002242 0.002810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142400 +0.000433 0.000605 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.141200 +0.000278 0.000409 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.000013 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000231 0.000332 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.000835 0.001344 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000632 0.000850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.226400 +0.000180 0.000291 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086800 +0.000067 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044400 +0.000146 0.000226 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.001631 0.001678 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000532 0.000729 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091200 +0.000182 0.000260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000045 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000044 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000017 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031000 +0.000037 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000129 0.000203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000342 0.000490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041400 +0.000062 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081400 +0.000147 0.000202 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134000 +0.000386 0.000560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000437 0.000694 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123000 +0.000224 0.000264 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.160000 +0.000023 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000090 0.000102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088800 +0.001543 0.001973 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.640199 +0.000016 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000034 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000013 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000019 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.000486 0.000680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.000103 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000047 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000047 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.307199 +0.002325 0.002883 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.159200 +0.000494 0.000657 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.000807 0.001022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.144600 +0.001971 0.003114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106800 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000057 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000178 0.000244 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000347 0.000618 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.239400 +0.000208 0.000319 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000304 0.000476 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134600 +0.000632 0.001004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125600 +0.000254 0.000294 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.608399 +0.000039 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000181 0.000266 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087000 +0.000030 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000057 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030400 +0.000251 0.000287 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.376799 +0.000065 0.000091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.264199 +0.000102 0.000144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000308 0.000522 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079400 +0.000273 0.000395 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063600 +0.000100 0.000130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000260 0.000393 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000005 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000050 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135600 +0.000258 0.000328 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043000 +0.000068 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.000005 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000044 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.000056 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082200 +0.000169 0.000198 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115800 +0.000298 0.000356 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.414199 +0.000063 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139200 +0.001065 0.001611 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000154 0.000178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000281 0.000432 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047400 +0.000011 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000058 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085600 +0.001140 0.001445 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.244199 +0.000467 0.000613 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137400 +0.000366 0.000500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125200 +0.000049 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.001018 0.001234 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118400 +0.000115 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000132 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000146 0.000191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000349 0.000490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117400 +0.000195 0.000309 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.000016 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000327 0.000497 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000369 0.000596 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103200 +0.000787 0.000920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090000 +0.000069 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078200 +0.000005 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000012 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000165 0.000242 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077800 +0.001192 0.001513 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.173000 +0.000028 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000654 0.000869 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.433799 +0.000027 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.000026 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000660 0.000770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.234400 +0.000021 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000949 0.001218 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109800 +0.000007 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000024 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035200 +0.000136 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032400 +0.000135 0.000161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.226800 +0.000316 0.000467 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.445599 +0.003854 0.004768 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.263999 +0.000304 0.000366 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106200 +0.000017 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000173 0.000225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067400 +0.002587 0.003311 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114200 +0.000132 0.000157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.000400 0.000791 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094000 +0.000009 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000220 0.000347 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100000 +0.000351 0.000447 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065200 +0.000229 0.000297 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.203400 +0.000037 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000031 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000466 0.000733 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.324799 +0.000054 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128600 +0.000135 0.000351 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.416399 +0.000092 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000206 0.000293 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000287 0.000460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000079 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078600 +0.000106 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000064 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110000 +0.000515 0.000760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069800 +0.000643 0.001027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000019 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.001236 0.001668 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.145000 +0.000969 0.001350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.188200 +0.000306 0.000449 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142400 +0.008565 0.018898 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.322799 +0.000021 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000212 0.000364 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.230200 +0.000587 0.000874 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032000 +0.000681 0.001095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.000052 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000515 0.000707 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.186800 +0.000048 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000153 0.000208 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065400 +0.000027 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000049 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030400 +0.000063 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069800 +0.000035 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000025 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.001549 0.002092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.141000 +0.000014 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000029 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000544 0.000722 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110400 +0.000059 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000131 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135600 +0.000200 0.000250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157600 +0.000125 0.000161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074400 +0.000502 0.000605 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092200 +0.000138 0.000182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129000 +0.000576 0.000647 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000022 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000051 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108000 +0.001130 0.001710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.000895 0.001458 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000052 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069400 +0.000027 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000357 0.000488 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129400 +0.000247 0.000461 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.412999 +0.000122 0.000185 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033400 +0.000906 0.001410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125800 +0.000003 0.000003 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.175000 +0.000307 0.000432 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116800 +0.000001 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000479 0.000669 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000046 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082400 +0.000028 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.005350 0.007442 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.000132 0.000195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139800 +0.000012 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000258 0.000353 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106600 +0.000080 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043000 +0.000083 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000249 0.000315 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000164 0.000200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.162600 +0.002084 0.003980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098400 +0.000177 0.000250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096400 +0.000029 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000095 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000045 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101200 +0.000229 0.000315 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000449 0.000664 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.001204 0.002089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087800 +0.000032 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000166 0.000265 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000296 0.000305 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000027 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000022 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000039 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000026 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000011 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002114 0.002732 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103600 +0.000060 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000092 0.000115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086600 +0.000122 0.000198 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000014 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000053 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047400 +0.000013 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000039 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.206400 +0.000085 0.000127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037000 +0.000326 0.000475 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000319 0.000362 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107400 +0.000062 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000557 0.000697 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092600 +0.000026 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000261 0.000309 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161800 +0.000009 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000115 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047800 +0.000050 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000043 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000048 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.228800 +0.000012 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087600 +0.000320 0.000400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118800 +0.000111 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000172 0.000190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000013 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000113 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078600 +0.001099 0.001710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.249199 +0.000100 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098000 +0.000170 0.000210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000354 0.000547 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078600 +0.004046 0.005240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.180600 +0.000957 0.001158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103200 +0.000360 0.000625 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000099 0.000130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039800 +0.000050 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.009500 0.015963 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084400 +0.000044 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031400 +0.001809 0.002541 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.308799 +0.000047 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.000002 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000009 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000058 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.000626 0.001009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.000150 0.000320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.306999 +0.000076 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.001980 0.003050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103400 +0.000092 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132600 +0.000267 0.000405 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.001496 0.002216 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.141200 +0.000036 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.000042 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000582 0.000903 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000366 0.000559 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000525 0.000959 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072800 +0.000073 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105000 +0.000080 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094000 +0.000181 0.000247 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150800 +0.001298 0.001810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000020 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039200 +0.003311 0.005149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.416399 +0.000538 0.000858 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081800 +0.001583 0.001872 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107200 +0.001225 0.001454 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.306799 +0.000037 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000056 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034000 +0.000008 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105000 +0.000815 0.000919 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000952 0.001367 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.000052 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.004000 0.005748 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106400 +0.001238 0.001752 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.148600 +0.000343 0.000451 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000024 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000172 0.000287 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075800 +0.000066 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000092 0.000115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.000010 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.000454 0.001749 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000135 0.000172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142600 +0.000132 0.000160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.000067 0.000127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094200 +0.000077 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000046 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000033 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000055 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.002198 0.003106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074000 +0.000019 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000048 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084200 +0.000089 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.000027 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000005 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000287 0.000368 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101200 +0.000005 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135000 +0.000148 0.000191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000027 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000063 0.000124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151400 +0.000025 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000320 0.000506 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.000043 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038000 +0.000161 0.000237 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.003916 0.005785 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000033 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000312 0.000432 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.575599 +0.001225 0.001817 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120200 +0.000155 0.000261 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000051 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069000 +0.000064 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.144400 +0.000105 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000258 0.000317 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.360599 +0.001179 0.001755 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.358999 +0.000150 0.000220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.000106 0.000160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000077 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036400 +0.000300 0.000363 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.309799 +0.000046 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077400 +0.005629 0.012301 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.190400 +0.000115 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089400 +0.000013 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000025 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035200 +0.002711 0.003973 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.000072 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000372 0.000594 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069400 +0.000353 0.000497 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154000 +0.000021 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000420 0.000615 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052400 +0.000026 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000019 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000376 0.000617 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000300 0.000403 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119400 +0.000035 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000123 0.000181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000004 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000010 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.000780 0.001159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103600 +0.000738 0.000927 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091400 +0.000415 0.000576 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068600 +0.004224 0.006693 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109000 +0.000004 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000258 0.000317 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158800 +0.000155 0.000218 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112600 +0.000394 0.000398 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090000 +0.000017 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033600 +0.000015 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000200 0.000360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.201000 +0.000119 0.000176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.016154 0.024430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.461399 +0.000123 0.000179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000715 0.000857 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.164200 +0.000020 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000020 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000026 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.001612 0.002214 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106600 +0.000207 0.000263 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.001733 0.002577 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.001148 0.001570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.273999 +0.000061 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069600 +0.000050 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000023 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037200 +0.004021 0.005065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.404999 +0.002374 0.004191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.637999 +0.000008 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000711 0.000994 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107200 +0.000362 0.000539 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.001643 0.002318 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.185400 +0.000223 0.000229 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000228 0.000322 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.000018 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038000 +0.000989 0.001497 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084800 +0.000020 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000674 0.000891 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.232600 +0.000027 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086000 +0.000181 0.000217 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.209400 +0.000180 0.000290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.000021 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000082 0.000125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084000 +0.000023 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084000 +0.000013 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000064 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094000 +0.000607 0.000827 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107000 +0.001479 0.002090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068600 +0.000023 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000016 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000018 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000047 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045200 +0.000040 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038600 +0.000005 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000378 0.000531 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086600 +0.000876 0.001120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104800 +0.001199 0.001718 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.001214 0.001571 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112800 +0.000179 0.000261 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101800 +0.001002 0.001382 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000330 0.000535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.177200 +0.000002 0.000003 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000068 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094600 +0.000800 0.000961 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122200 +0.000097 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.267999 +0.000010 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000145 0.000225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.000351 0.000551 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.391799 +0.000107 0.000174 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080400 +0.000387 0.000455 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105800 +0.000034 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000123 0.000194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.171000 +0.000011 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000070 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000051 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.001845 0.002169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103400 +0.000154 0.000196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075200 +0.000073 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045200 +0.000053 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000748 0.000972 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107200 +0.000078 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074000 +0.001047 0.001546 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044400 +0.000207 0.000320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.310999 +0.000112 0.000147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150600 +0.000497 0.000786 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100000 +0.000009 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000078 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000171 0.000223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092000 +0.000041 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000166 0.000235 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073600 +0.003717 0.004572 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.254999 +0.000336 0.000476 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089000 +0.000126 0.000186 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076000 +0.009830 0.012931 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.475199 +0.000210 0.000275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000083 0.000119 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.000063 0.000102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000134 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.170200 +0.000103 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000012 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.306199 +0.000083 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000522 0.000766 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099200 +0.000350 0.000469 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127800 +0.002881 0.004806 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115800 +0.000031 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.001037 0.001527 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.011647 0.018036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106200 +0.000393 0.000602 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.208200 +0.000122 0.000175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000559 0.001430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.220200 +0.000086 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074800 +0.001268 0.001944 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047400 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000068 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064000 +0.000132 0.000193 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.000019 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105000 +0.000061 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.397399 +0.000367 0.000765 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.679799 +0.000053 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.002200 0.002432 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150600 +0.000398 0.000576 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072400 +0.000241 0.000344 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.149000 +0.007809 0.010487 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000342 0.000431 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123200 +0.000009 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000596 0.000918 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.213000 +0.000018 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000117 0.000178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103600 +0.000086 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.000134 0.000162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088800 +0.000212 0.000311 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000445 0.000586 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095600 +0.000028 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000125 0.000278 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070600 +0.000062 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107800 +0.000066 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000017 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000120 0.000158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.000031 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000068 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032800 +0.000017 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085600 +0.000020 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101000 +0.000088 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154400 +0.000233 0.000284 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089800 +0.000695 0.000890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107000 +0.008914 0.014307 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.201000 +0.001522 0.001780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.329599 +0.000379 0.000612 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121400 +0.001638 0.002496 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127800 +0.000011 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121000 +0.000315 0.000422 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122000 +0.000167 0.000206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121400 +0.000055 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069600 +0.000062 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069600 +0.000106 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072200 +0.000120 0.000154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092000 +0.000265 0.000316 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.192200 +0.000008 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000023 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000218 0.000308 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000011 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003595 0.005990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000228 0.000297 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043000 +0.001104 0.001500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157400 +0.000604 0.000629 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.374999 +0.000161 0.000224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002093 0.003039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000001 0.000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000155 0.000231 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.000248 0.000359 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.000010 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000033 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000354 0.000458 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078000 +0.000041 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122400 +0.000117 0.000243 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.698399 +0.000254 0.000309 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117000 +0.001134 0.001874 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090000 +0.002841 0.003731 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101000 +0.000054 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000289 0.000350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101200 +0.000237 0.000339 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000048 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.000028 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108200 +0.000003 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000031 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039200 +0.000011 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000166 0.000216 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067800 +0.000553 0.000673 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121400 +0.000024 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085800 +0.000029 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.001264 0.001688 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000507 0.000729 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107200 +0.000288 0.000398 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.140600 +0.000067 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084400 +0.000539 0.000755 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158800 +0.000011 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000034 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000060 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117600 +0.000038 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.159400 +0.000574 0.000702 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.201400 +0.001122 0.001693 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099000 +0.000103 0.000166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000013 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000175 0.000281 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000049 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099400 +0.000317 0.000467 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000074 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088400 +0.000335 0.000425 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.000421 0.000500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106000 +0.000187 0.000254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.000139 0.000182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099400 +0.000021 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034000 +0.000007 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000702 0.001071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.000304 0.000428 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088200 +0.000151 0.000214 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.144800 +0.000253 0.000334 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.232800 +0.000063 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083200 +0.000626 0.000676 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.869798 +0.000134 0.000198 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000305 0.000503 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.258599 +0.000138 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000331 0.000513 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090000 +0.000068 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090400 +0.000271 0.000399 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.299999 +0.000304 0.000407 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090800 +0.000010 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000255 0.000353 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000009 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000457 0.000641 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000019 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046800 +0.000175 0.000238 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.722998 +0.000361 0.000535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034000 +0.002352 0.002682 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151800 +0.000027 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.000113 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000060 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000080 0.000136 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091000 +0.000008 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083400 +0.000028 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000032 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000087 0.000126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000030 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000835 0.001318 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.428199 +0.000029 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000024 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000678 0.000887 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.248599 +0.000433 0.000578 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000096 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000705 0.001052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.002464 0.003721 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110000 +0.000115 0.000186 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032000 +0.000921 0.001495 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.000250 0.000309 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087400 +0.000061 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000260 0.000338 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030200 +0.000202 0.000279 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000094 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037000 +0.000041 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097600 +0.001911 0.002451 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.529199 +0.000137 0.000187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000812 0.001085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068600 +0.001117 0.001515 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132200 +0.000060 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000089 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071200 +0.000048 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078600 +0.000098 0.000126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072200 +0.001860 0.002480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075400 +0.000092 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111800 +0.000007 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.004306 0.006115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.168400 +0.000165 0.000232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070800 +0.000549 0.000888 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095400 +0.002158 0.002885 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.218600 +0.000049 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000090 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.182800 +0.000052 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032400 +0.000870 0.001250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086800 +0.000027 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000227 0.000272 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099200 +0.000023 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.004012 0.006573 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101600 +0.000016 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.001090 0.001551 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.179400 +0.001877 0.002545 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119600 +0.000061 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000295 0.000375 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085200 +0.008781 0.013231 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.202400 +0.000078 0.000127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059000 +0.000042 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070800 +0.000046 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000048 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000031 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000002 0.000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000032 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030800 +0.000382 0.000535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.212400 +0.000322 0.000433 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091800 +0.000225 0.000290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.002486 0.003542 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151200 +0.000913 0.001140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.253399 +0.000022 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117000 +0.000270 0.000454 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121800 +0.000003 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000085 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068000 +0.000136 0.000182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.000568 0.000721 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117400 +0.000518 0.000748 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000039 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000032 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076600 +0.001178 0.001587 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125600 +0.000066 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.000762 0.001091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117200 +0.000672 0.000978 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.000281 0.000409 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102600 +0.000140 0.000198 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.000052 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000206 0.000304 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032000 +0.000035 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030600 +0.000012 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066200 +0.000909 0.001167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.333199 +0.000664 0.000791 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.272799 +0.001850 0.002697 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.234600 +0.000506 0.000645 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099000 +0.000217 0.000330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000082 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000032 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000212 0.000259 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093600 +0.000573 0.000812 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000035 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000082 0.000114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118400 +0.000754 0.001057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.181400 +0.000035 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000128 0.000216 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000043 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076600 +0.002639 0.003243 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092200 +0.000028 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.000189 0.000265 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.001115 0.001286 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000029 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044400 +0.000096 0.000141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.001873 0.002518 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.342799 +0.000502 0.000582 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.265199 +0.000722 0.001069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089200 +0.000790 0.001033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.253999 +0.000024 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076000 +0.000030 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.000093 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071400 +0.000018 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.005381 0.006386 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.176000 +0.002685 0.003473 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.174000 +0.001671 0.002242 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084800 +0.000022 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000064 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.000265 0.000375 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092000 +0.000186 0.000250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.000145 0.000199 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000125 0.000203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000044 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000024 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071200 +0.000644 0.000943 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000018 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000029 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.000110 0.000162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.000073 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034800 +0.000049 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030200 +0.000234 0.000305 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000436 0.000580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.224200 +0.000327 0.000526 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000186 0.000329 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114400 +0.000016 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000020 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.011625 0.019863 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119000 +0.000047 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.000110 0.000161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001745 0.002818 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000305 0.000380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088800 +0.000022 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000073 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000044 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000031 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000105 0.000170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.000056 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.001228 0.001849 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047200 +0.000011 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070800 +0.001479 0.001677 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123000 +0.006146 0.010693 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109000 +0.003302 0.004273 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087800 +0.007602 0.012584 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.548399 +0.001855 0.003221 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137600 +0.000118 0.000162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037800 +0.000028 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066200 +0.000261 0.000387 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122600 +0.000051 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000280 0.000365 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.164200 +0.000304 0.000341 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132800 +0.000224 0.000291 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.163400 +0.000041 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000206 0.000336 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000009 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.000020 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.001206 0.001726 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.163800 +0.000361 0.000668 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.175400 +0.000024 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000114 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.226000 +0.000097 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038600 +0.000495 0.000654 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036800 +0.000018 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120000 +0.000016 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.000278 0.000400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133200 +0.000071 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000996 0.001249 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092400 +0.000018 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000065 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.227400 +0.000107 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.176800 +0.004474 0.006563 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074000 +0.001487 0.002254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119400 +0.000630 0.000782 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113600 +0.000040 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.001026 0.002154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.145600 +0.002848 0.004298 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092800 +0.000394 0.000519 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128000 +0.000021 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.239600 +0.000369 0.000464 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098200 +0.000018 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000066 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039400 +0.000025 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.699999 +0.000236 0.000327 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070600 +0.000086 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037200 +0.000030 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000098 0.000179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000032 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000443 0.000586 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125200 +0.000213 0.000295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.000033 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056000 +0.000903 0.001089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.273999 +0.002069 0.003649 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100200 +0.000017 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000038 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000143 0.000186 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082200 +0.000139 0.000217 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000293 0.000390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104200 +0.000289 0.000444 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000020 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.000037 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000070 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000725 0.000979 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.413199 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065400 +0.000463 0.000693 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101000 +0.000023 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000031 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001325 0.001922 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.138000 +0.000030 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000943 0.001364 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000014 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000055 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.000162 0.000277 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000111 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037800 +0.000101 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.000052 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000978 0.001539 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000892 0.001235 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.000046 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069000 +0.006551 0.008999 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.288599 +0.000016 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000506 0.000528 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.175000 +0.000075 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.000365 0.000432 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000105 0.000137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097800 +0.000018 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034000 +0.000702 0.000939 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000331 0.000449 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120000 +0.000146 0.000189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059000 +0.000095 0.000126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074000 +0.000026 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.003807 0.005622 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.187600 +0.000127 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000016 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000046 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065200 +0.000907 0.001145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133000 +0.000064 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076000 +0.000085 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000015 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000059 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000228 0.000320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058400 +0.000070 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068600 +0.000274 0.000376 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.008231 0.010551 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.140000 +0.000008 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071200 +0.000014 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000181 0.000230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.217800 +0.000131 0.000170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.000284 0.000416 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078400 +0.000108 0.000175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091600 +0.012331 0.023035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104800 +0.000012 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030400 +0.000140 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000271 0.000386 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.000022 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002835 0.003861 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.266399 +0.000291 0.000392 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076000 +0.000018 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096200 +0.000275 0.000361 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112000 +0.000074 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000052 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068000 +0.000034 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.001834 0.002717 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062400 +0.000052 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095400 +0.000147 0.000234 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.000297 0.000384 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.567999 +0.000166 0.000211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.546399 +0.000380 0.000719 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.182000 +0.000531 0.000842 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.286399 +0.000047 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070800 +0.000014 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000209 0.000307 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000060 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000775 0.001204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.186000 +0.001335 0.001993 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086800 +0.000039 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047200 +0.001921 0.002985 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000021 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000084 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000030 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000054 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000438 0.000683 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.247199 +0.000103 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000563 0.000747 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088400 +0.000027 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035200 +0.000040 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.000131 0.000181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071000 +0.000025 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079000 +0.000047 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.000461 0.000702 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102000 +0.000058 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000111 0.000155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071800 +0.000228 0.000313 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085400 +0.000616 0.000864 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.254999 +0.000264 0.000419 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000013 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038600 +0.000127 0.000172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.000521 0.000594 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077200 +0.000125 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000246 0.000388 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000256 0.000406 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.223800 +0.000438 0.000496 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097000 +0.000072 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000120 0.000147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095400 +0.000226 0.000348 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078400 +0.000117 0.000176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088400 +0.000020 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123400 +0.000020 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000078 0.000125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000050 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000786 0.001086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156600 +0.000024 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000009 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000030 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.000028 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.004580 0.006812 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069200 +0.000416 0.000549 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.320399 +0.000016 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000073 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120000 +0.000121 0.000160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000160 0.000250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030400 +0.000594 0.000750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.168800 +0.000037 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000127 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079800 +0.004600 0.006851 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111200 +0.000011 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000139 0.000295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134000 +0.009313 0.016413 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112200 +0.000142 0.000239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085600 +0.000194 0.000303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.000763 0.000872 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155600 +0.000038 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000211 0.000298 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000162 0.000227 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000426 0.000620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000081 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000799 0.001186 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.002006 0.003097 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088000 +0.000400 0.000663 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.228600 +0.000101 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032800 +0.000216 0.000297 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000051 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038600 +0.000121 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.000066 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002985 0.003803 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.207000 +0.000049 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.000326 0.000400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.214400 +0.001528 0.002270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000262 0.000383 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037800 +0.000066 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000026 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.005693 0.008597 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082400 +0.000315 0.000463 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092000 +0.000035 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000050 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083600 +0.000009 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000050 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000653 0.000874 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.237200 +0.000177 0.000201 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030400 +0.000062 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.000063 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092600 +0.000041 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000048 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000377 0.000577 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037400 +0.000292 0.000385 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000121 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074400 +0.000466 0.000576 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128200 +0.000014 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000196 0.000275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044400 +0.000013 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000007 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000173 0.000289 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069800 +0.000272 0.000326 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.572399 +0.000108 0.000175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000060 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000257 0.000365 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000331 0.000373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.224200 +0.000232 0.000332 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031800 +0.000721 0.001107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.000705 0.000790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.146200 +0.000009 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000119 0.000174 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000117 0.000163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064000 +0.000043 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059000 +0.000057 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058400 +0.000375 0.000465 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.214800 +0.001130 0.001433 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106400 +0.000336 0.000497 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059800 +0.000019 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000513 0.000718 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000011 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087600 +0.000347 0.000488 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071200 +0.000065 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045200 +0.000081 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057400 +0.000038 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000189 0.000280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.000066 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111400 +0.000022 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000575 0.000705 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084400 +0.000072 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046000 +0.000101 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000369 0.000519 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134200 +0.000030 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000252 0.000448 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.145200 +0.000237 0.000303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071400 +0.000183 0.000262 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078600 +0.000033 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.000303 0.000365 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.001023 0.001422 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.140000 +0.000060 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081800 +0.000032 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034800 +0.000086 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106000 +0.000020 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000193 0.000242 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.000281 0.000399 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133800 +0.000016 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000002 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000103 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.208000 +0.000092 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.000012 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.649999 +0.000180 0.000268 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000011 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000028 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000303 0.000545 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103000 +0.000719 0.000960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072800 +0.004630 0.006476 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151400 +0.000160 0.000207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000119 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083400 +0.002824 0.003996 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085800 +0.000004 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.001666 0.002466 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.258399 +0.000091 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069200 +0.000197 0.000311 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.263999 +0.000460 0.000649 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070600 +0.000034 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000043 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077200 +0.000060 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076800 +0.000565 0.000730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127800 +0.000236 0.000287 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082800 +0.001477 0.001782 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.175200 +0.000790 0.001214 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000015 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036800 +0.011752 0.018780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000009 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124200 +0.000018 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000362 0.000456 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114600 +0.000374 0.000514 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000314 0.000420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000084 0.000119 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089800 +0.000002 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131200 +0.000085 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083400 +0.000027 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000117 0.000190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107200 +0.000149 0.000217 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099000 +0.000701 0.001106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.008369 0.012232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.165200 +0.000005 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000350 0.000504 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156800 +0.000024 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.000333 0.000484 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000009 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000125 0.000185 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000104 0.000125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120800 +0.000262 0.000369 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.029807 0.046198 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120000 +0.000401 0.000459 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087000 +0.000439 0.000537 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103200 +0.000190 0.000260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107200 +0.000345 0.000455 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128800 +0.000058 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.000017 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000006 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000033 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032200 +0.000272 0.000381 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103800 +0.000457 0.000636 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000715 0.001041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074600 +0.000015 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043000 +0.000158 0.000182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.244799 +0.000002 0.000003 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000045 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.000210 0.000307 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000798 0.000947 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.433799 +0.001170 0.001865 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000062 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075400 +0.000265 0.000353 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.171200 +0.001286 0.001832 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069400 +0.000050 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000128 0.000169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.000070 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000253 0.000370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.147200 +0.000079 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000263 0.000482 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.332999 +0.000211 0.000309 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039400 +0.002001 0.002545 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161000 +0.000679 0.000911 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107400 +0.000017 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000029 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000254 0.000373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.000174 0.000205 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049200 +0.000212 0.000325 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.266199 +0.000552 0.000837 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049200 +0.000021 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000251 0.000395 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071000 +0.000070 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000109 0.000163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045200 +0.001241 0.001587 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.000370 0.000445 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000016 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.000079 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150800 +0.000100 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.005025 0.006567 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097400 +0.000050 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000046 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031400 +0.000104 0.000150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037800 +0.000007 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000315 0.000453 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000041 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000212 0.000313 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076400 +0.000025 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032000 +0.000031 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107600 +0.000198 0.000243 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118000 +0.000073 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000089 0.000152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097600 +0.000026 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000045 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.000413 0.000627 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069800 +0.000017 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000054 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082200 +0.001590 0.002924 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082200 +0.005121 0.006802 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119800 +0.000137 0.000170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072200 +0.000923 0.001217 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114000 +0.000034 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000240 0.000294 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.225600 +0.000275 0.000377 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114200 +0.000029 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000062 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101200 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074200 +0.000043 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.000849 0.001009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094200 +0.000554 0.000833 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000463 0.000542 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.270199 +0.000019 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000865 0.001361 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.271199 +0.000002 0.000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000153 0.000193 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099600 +0.000145 0.000227 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000697 0.000843 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.459599 +0.000204 0.000230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.280999 +0.000020 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.000721 0.000940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000040 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100400 +0.001031 0.001561 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.000366 0.000545 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000009 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000211 0.000322 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101800 +0.000356 0.000671 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106400 +0.002505 0.003330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.189800 +0.000301 0.000380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104000 +0.000485 0.000580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.000547 0.000779 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.173600 +0.000113 0.000172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073600 +0.000797 0.001159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.189000 +0.000453 0.000654 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120800 +0.000281 0.000394 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111200 +0.000021 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.168800 +0.000240 0.000366 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000092 0.000133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.000706 0.001093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000108 0.000150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.000467 0.000567 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.236400 +0.000114 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000467 0.000572 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089600 +0.000648 0.000904 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.146000 +0.000630 0.001015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000012 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.000070 0.000114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036800 +0.000012 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030600 +0.000032 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089800 +0.000025 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037200 +0.000018 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000036 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068000 +0.000045 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096000 +0.000286 0.000393 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000269 0.000405 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.003274 0.004135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120600 +0.000167 0.000242 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088000 +0.000571 0.000796 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000093 0.000129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000059 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000371 0.000438 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.227200 +0.000029 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036400 +0.001396 0.002009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092800 +0.000743 0.000900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.404399 +0.000067 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000038 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065200 +0.000014 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078800 +0.000775 0.001084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109200 +0.000098 0.000129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078000 +0.000038 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000035 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000932 0.001312 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066000 +0.000632 0.000825 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116600 +0.000293 0.000365 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135200 +0.001349 0.001561 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.167000 +0.000014 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000246 0.000286 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.148400 +0.000012 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000014 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031800 +0.002194 0.003437 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084400 +0.000425 0.000502 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161400 +0.000558 0.000884 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.210200 +0.000012 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.349999 +0.002250 0.003081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125000 +0.000161 0.000221 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036400 +0.000020 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000036 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000096 0.000132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000074 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112000 +0.000445 0.000659 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000004 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000873 0.000987 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046400 +0.000017 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000129 0.000175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000046 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000499 0.000715 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104600 +0.000496 0.000727 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.172600 +0.000040 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066200 +0.000098 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084200 +0.000012 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001601 0.002668 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000035 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000331 0.000356 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000288 0.000415 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087600 +0.000172 0.000243 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000101 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.001300 0.001861 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.290399 +0.000439 0.000542 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.163400 +0.000256 0.000407 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.003171 0.004267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112200 +0.000071 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000048 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033600 +0.000172 0.000232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.001964 0.002917 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.409399 +0.001612 0.002236 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091000 +0.000177 0.000218 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.258599 +0.003838 0.004589 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.164200 +0.000037 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000210 0.000297 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.000619 0.000772 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124600 +0.007588 0.010875 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066000 +0.000037 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000166 0.000250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046400 +0.000050 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.009596 0.013049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.404399 +0.000038 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033400 +0.000082 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.257599 +0.001898 0.002636 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000279 0.000354 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133400 +0.000087 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037400 +0.001419 0.002366 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000365 0.000431 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077400 +0.000113 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000210 0.000293 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.003115 0.005840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.312999 +0.000320 0.000417 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094400 +0.000146 0.000193 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000550 0.000732 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137800 +0.000041 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.003637 0.005254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103200 +0.000039 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000078 0.000108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.192400 +0.001721 0.002715 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.167200 +0.000727 0.000970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.262799 +0.000021 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.000050 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003140 0.004743 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101000 +0.001927 0.002822 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.170200 +0.000115 0.000141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.266399 +0.000244 0.000371 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000790 0.000993 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134800 +0.000089 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000007 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000946 0.001445 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075200 +0.000003 0.000003 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000762 0.001152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.001031 0.001176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.349399 +0.001103 0.001740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074800 +0.000340 0.000510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082000 +0.000271 0.000327 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.301199 +0.000001 0.000003 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000417 0.000573 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.000054 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091200 +0.000021 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000042 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000236 0.000347 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000219 0.000337 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.000314 0.000481 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.000044 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084600 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036800 +0.000029 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002599 0.005262 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128000 +0.000028 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000056 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.001055 0.001381 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.159200 +0.000573 0.001100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113600 +0.000310 0.000467 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078800 +0.000011 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000158 0.000223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000247 0.000284 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.171000 +0.000100 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067400 +0.006948 0.011949 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137800 +0.000015 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000761 0.000968 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.224000 +0.000123 0.000182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000028 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000116 0.000178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000444 0.000644 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095400 +0.000110 0.000155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000175 0.000269 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030200 +0.000073 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049200 +0.000015 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000115 0.000194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000166 0.000212 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.168800 +0.000228 0.000294 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110400 +0.000004 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090000 +0.000119 0.000155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078000 +0.000261 0.000383 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080400 +0.001261 0.001822 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.228200 +0.000986 0.001408 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102600 +0.000983 0.001451 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.369399 +0.000235 0.000322 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000085 0.000132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000057 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030200 +0.000209 0.000388 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.172000 +0.000032 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047000 +0.000394 0.000528 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072800 +0.000131 0.000175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.215200 +0.000062 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000060 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.000210 0.000293 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067800 +0.000151 0.000182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.000018 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000189 0.000211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.458999 +0.000763 0.001081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073200 +0.000133 0.000180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000040 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.000326 0.000411 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086000 +0.000033 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.004818 0.008586 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.718799 +0.002136 0.002822 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.319799 +0.000096 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070800 +0.002930 0.003565 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.942398 +0.000021 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034800 +0.000069 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047000 +0.000224 0.000364 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000187 0.000294 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.152200 +0.000193 0.000273 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000825 0.001188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107000 +0.000139 0.000205 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069400 +0.000029 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000566 0.000815 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084200 +0.001344 0.002184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128000 +0.000068 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000081 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078600 +0.000062 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084600 +0.000141 0.000189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.000236 0.000371 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063600 +0.003339 0.005992 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096400 +0.000105 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.000393 0.000524 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.000114 0.000174 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037400 +0.000015 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000044 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000244 0.000310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114800 +0.000097 0.000137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.001446 0.001932 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.275399 +0.000131 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108400 +0.000092 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068800 +0.000118 0.000174 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000714 0.000885 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030400 +0.000117 0.000160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071800 +0.000255 0.000332 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073600 +0.004995 0.007388 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.266199 +0.000048 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000076 0.000102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070200 +0.000082 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.006884 0.008695 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.241200 +0.001132 0.001474 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.363599 +0.000120 0.000185 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071000 +0.000013 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032800 +0.008444 0.012571 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106400 +0.000009 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000116 0.000147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126400 +0.000084 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000383 0.000543 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000216 0.000304 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.000703 0.001219 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.323999 +0.003684 0.004176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.230000 +0.000142 0.000165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092800 +0.000378 0.000456 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.305599 +0.000007 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000154 0.000202 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.271399 +0.000387 0.000557 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084400 +0.000866 0.001252 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132200 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.218800 +0.000154 0.000227 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000015 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.008924 0.012302 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128200 +0.000123 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092800 +0.000129 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064000 +0.000157 0.000242 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000093 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000065 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000011 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003517 0.004768 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091600 +0.001007 0.001389 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.164200 +0.001213 0.001687 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.000042 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001396 0.002121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087600 +0.000017 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000039 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000196 0.000278 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085200 +0.000012 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000092 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038000 +0.001160 0.001470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112600 +0.000265 0.000311 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082000 +0.000021 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075400 +0.002598 0.003897 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056000 +0.000134 0.000207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.012423 0.020893 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.174600 +0.000033 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000265 0.000410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.175600 +0.003151 0.004076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.354799 +0.000047 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.000039 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.428599 +0.001537 0.002187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.366399 +0.000134 0.000277 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.259399 +0.000024 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.003074 0.004486 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.188000 +0.000072 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070800 +0.000044 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.000036 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046800 +0.000239 0.000344 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.000221 0.000305 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.000182 0.000252 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.000461 0.000776 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064000 +0.000233 0.000341 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135600 +0.000007 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000277 0.000381 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075800 +0.000038 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000044 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078200 +0.000640 0.000786 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111600 +0.000106 0.000155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.176000 +0.000054 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000027 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000405 0.000550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000059 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084800 +0.000056 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000702 0.000904 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.145200 +0.000741 0.000963 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091400 +0.000345 0.000565 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123000 +0.000095 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000305 0.000371 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133200 +0.000029 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035400 +0.000094 0.000126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106400 +0.000039 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000197 0.000271 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000033 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000023 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.000055 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000010 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000097 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000017 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000653 0.000779 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.168400 +0.000050 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000057 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068000 +0.000023 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090000 +0.000021 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043000 +0.000213 0.000284 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000016 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000315 0.000389 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118000 +0.000676 0.001257 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067800 +0.000093 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000015 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000035 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000575 0.000925 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000833 0.001156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099200 +0.000225 0.000361 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082800 +0.001542 0.002329 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076400 +0.000068 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076200 +0.000025 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093800 +0.002150 0.002844 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.182200 +0.000165 0.000222 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000021 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.214800 +0.000316 0.000438 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092200 +0.000954 0.001394 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000101 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.000166 0.000203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.000112 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041400 +0.000176 0.000255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.001632 0.001993 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.295799 +0.000080 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133400 +0.000150 0.000217 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001127 0.001471 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.206800 +0.000128 0.000155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000096 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091000 +0.000298 0.000373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088600 +0.000102 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000356 0.000437 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.165400 +0.000038 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.000041 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000053 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083600 +0.002016 0.003436 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.171200 +0.000197 0.000306 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.000336 0.000459 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000070 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.005305 0.007012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086800 +0.000076 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000262 0.000328 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000053 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000501 0.000775 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071400 +0.001445 0.001883 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.361399 +0.000022 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043000 +0.000028 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000019 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000024 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000166 0.000264 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046800 +0.000044 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000918 0.001140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.330799 +0.000060 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.004212 0.006237 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157400 +0.000683 0.000869 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.323199 +0.000025 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000541 0.001386 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.344399 +0.000433 0.000476 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.181600 +0.000518 0.000719 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000127 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000006 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000045 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000163 0.000243 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080400 +0.000837 0.001189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.138200 +0.000258 0.000315 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.177000 +0.005669 0.009643 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000021 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000069 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058200 +0.000067 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000510 0.000731 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121800 +0.000110 0.000164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.248399 +0.000105 0.000135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086600 +0.001175 0.001670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137600 +0.000015 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103000 +0.000072 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000350 0.000552 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044400 +0.000029 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000037 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032200 +0.000022 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031400 +0.000545 0.000763 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124000 +0.000004 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.001041 0.001466 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.000542 0.000904 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133000 +0.000206 0.000240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161400 +0.000027 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091200 +0.000132 0.000199 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.001097 0.001396 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119800 +0.002923 0.003877 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097400 +0.000469 0.000667 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000029 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000018 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000131 0.000177 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.210600 +0.000325 0.000460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090400 +0.000147 0.000229 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.002953 0.004369 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077200 +0.000164 0.000236 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047200 +0.000423 0.000504 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069800 +0.000149 0.000240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.001042 0.001195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143000 +0.002118 0.003181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.302399 +0.000198 0.000241 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.000254 0.000351 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083400 +0.000958 0.001287 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112200 +0.000599 0.000749 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110400 +0.000217 0.000300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.169800 +0.000037 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.000895 0.001175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.385799 +0.000103 0.000149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000318 0.000486 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043000 +0.053039 0.085316 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082000 +0.000061 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045200 +0.000603 0.000849 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.171000 +0.000164 0.000247 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.174200 +0.000598 0.000781 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000051 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151400 +0.000027 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.000012 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038000 +0.000119 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068800 +0.000189 0.000269 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000220 0.000309 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.000076 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031000 +0.000166 0.000243 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.148600 +0.000272 0.000366 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088000 +0.002018 0.002549 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.206000 +0.000056 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068600 +0.002388 0.003121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.324399 +0.000004 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000280 0.000420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104800 +0.000042 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047800 +0.000014 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132600 +0.000027 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000040 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000027 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.264199 +0.000109 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076200 +0.000087 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131000 +0.000459 0.000668 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.145600 +0.000859 0.001402 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102800 +0.000092 0.000132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000050 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.000113 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074800 +0.000034 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000105 0.000137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078600 +0.000066 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000056 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081600 +0.000092 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030200 +0.000024 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000052 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.162600 +0.002410 0.003881 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092000 +0.000062 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000020 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.204600 +0.000360 0.000481 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124600 +0.000266 0.000367 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072800 +0.000278 0.000398 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000205 0.000335 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000115 0.000137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003069 0.005474 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.152600 +0.000025 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000012 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000089 0.000108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094400 +0.000689 0.000862 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.384399 +0.000068 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052400 +0.000643 0.001066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103000 +0.000098 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034800 +0.000066 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041400 +0.000938 0.001194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.180200 +0.000031 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000079 0.000123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000020 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000056 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047800 +0.000330 0.000388 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156200 +0.000050 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043000 +0.000020 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000125 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000469 0.000747 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132000 +0.000054 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000275 0.000338 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.223400 +0.002912 0.004987 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.198800 +0.000014 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032200 +0.000229 0.000252 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.169600 +0.002252 0.003111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.164000 +0.002227 0.002811 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.214400 +0.000105 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097400 +0.000027 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000034 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000526 0.000726 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104200 +0.000300 0.000362 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154400 +0.000363 0.000508 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.430399 +0.000243 0.000366 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000021 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037000 +0.000185 0.000224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070600 +0.001162 0.001736 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.207600 +0.000741 0.001067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.175000 +0.000695 0.000957 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083600 +0.001025 0.001696 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.212000 +0.000132 0.000188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074200 +0.000134 0.000208 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.001167 0.001762 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.300199 +0.000145 0.000200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076800 +0.001582 0.002442 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123400 +0.000031 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000176 0.000209 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070600 +0.000122 0.000185 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000187 0.000275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000510 0.000762 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.000015 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000122 0.000178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035400 +0.000456 0.000554 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131400 +0.000217 0.000319 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074800 +0.000122 0.000192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095800 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000157 0.000205 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109000 +0.002729 0.003199 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.260399 +0.000001 0.000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127600 +0.000243 0.000345 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126000 +0.000093 0.000133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000162 0.000238 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074000 +0.000218 0.000307 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095000 +0.000062 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123400 +0.000198 0.000306 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000033 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000509 0.000702 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.236000 +0.000022 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.000283 0.000392 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000014 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000272 0.000336 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.222600 +0.000158 0.000200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125600 +0.001486 0.002601 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086000 +0.000048 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104000 +0.000164 0.000277 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000028 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000005 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000017 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000040 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000235 0.000359 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049200 +0.000569 0.000659 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.489399 +0.005859 0.009561 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.510799 +0.000042 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000769 0.001106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085800 +0.000026 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000564 0.000803 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047800 +0.001386 0.002200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000003 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000259 0.000330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.397399 +0.000045 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000017 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000154 0.000254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000341 0.000430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130600 +0.000015 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000292 0.000385 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092400 +0.000055 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046800 +0.000630 0.000647 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.262599 +0.000006 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033400 +0.000014 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000145 0.000234 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000250 0.000340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000251 0.000342 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.439999 +0.000016 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000045 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000114 0.000158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085600 +0.006767 0.008484 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.294599 +0.000031 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000068 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002571 0.003833 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000005 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000126 0.000189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079800 +0.000055 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000074 0.000108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001463 0.001935 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.217600 +0.000019 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000079 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039200 +0.000173 0.000265 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126400 +0.000016 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030600 +0.000050 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000250 0.000362 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000096 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.145000 +0.002166 0.003100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000775 0.001130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.001152 0.001632 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090200 +0.000198 0.000332 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153600 +0.003233 0.003924 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.567599 +0.000032 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.293399 +0.000422 0.000579 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136000 +0.001372 0.002352 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000096 0.000127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.168600 +0.000401 0.000607 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.000480 0.000871 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.192400 +0.000282 0.000430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.000036 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000015 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000037 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000036 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.004924 0.006697 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.304999 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000199 0.000243 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096600 +0.000408 0.000479 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.300799 +0.000948 0.001244 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.300999 +0.000386 0.000569 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043000 +0.000698 0.000963 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.271599 +0.000503 0.000719 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135200 +0.000074 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039400 +0.000012 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000124 0.000196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.002737 0.003489 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000519 0.000791 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070600 +0.000453 0.000610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.195800 +0.000016 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000033 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073200 +0.006054 0.007928 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.194800 +0.000073 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000043 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070200 +0.000044 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103200 +0.000046 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000080 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078000 +0.000040 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032000 +0.000234 0.000344 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110000 +0.000422 0.000548 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108800 +0.000043 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000043 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030200 +0.000042 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.000012 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000023 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.002983 0.004602 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135800 +0.000031 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000097 0.000147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.000059 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.000250 0.000329 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075800 +0.001245 0.001881 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.001454 0.001708 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.511199 +0.001495 0.002102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137400 +0.000234 0.000280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102200 +0.000007 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000228 0.000306 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070600 +0.000010 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000315 0.000532 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096000 +0.001818 0.002261 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.659399 +0.000016 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000191 0.000266 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000019 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.183800 +0.000005 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000339 0.000470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103200 +0.000085 0.000119 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.000005 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000031 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091600 +0.000415 0.000679 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046000 +0.000035 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000028 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123000 +0.000255 0.000348 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095000 +0.000116 0.000135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096000 +0.001069 0.001540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.001525 0.002153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000117 0.000164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.001054 0.001500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128400 +0.000032 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086400 +0.000168 0.000252 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.216600 +0.000011 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032000 +0.004474 0.005791 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.365999 +0.000018 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001273 0.001834 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052400 +0.000009 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000068 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082000 +0.000054 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.001301 0.001742 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094200 +0.001089 0.001621 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.005708 0.009042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.549399 +0.000089 0.000191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.371599 +0.000298 0.000430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.000085 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068200 +0.000161 0.000205 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.002831 0.003733 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151000 +0.017432 0.025573 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.367199 +0.000143 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089800 +0.000042 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000023 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.000004 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000570 0.000762 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000052 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000059 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.001643 0.002486 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068000 +0.000046 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000290 0.000404 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000068 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086800 +0.000224 0.000303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000787 0.001203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000535 0.000746 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000076 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044400 +0.002105 0.002864 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000139 0.000169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000120 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000031 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034400 +0.000018 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047000 +0.000132 0.000212 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000414 0.000646 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101800 +0.002930 0.004439 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.310999 +0.000022 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000561 0.000741 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102400 +0.000616 0.001015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087800 +0.000165 0.000251 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000018 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000011 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000049 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000012 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002846 0.004044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000004 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000258 0.000304 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.174800 +0.000025 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000018 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000112 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000117 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000048 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.000422 0.000610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070600 +0.000500 0.000895 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142000 +0.000044 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000104 0.000177 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000194 0.000244 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000302 0.000417 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100000 +0.000769 0.001187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.221600 +0.000610 0.000854 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.165200 +0.000160 0.000211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.000057 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000065 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.000071 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000458 0.000771 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071200 +0.000010 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000052 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000038 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.000281 0.000282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135000 +0.000179 0.000261 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.371199 +0.002440 0.003419 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101600 +0.000091 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.208400 +0.000214 0.000516 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.196200 +0.000461 0.000651 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155200 +0.000141 0.000197 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000112 0.000163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.581999 +0.000307 0.000357 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.183400 +0.000014 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000024 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000187 0.000314 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109600 +0.002941 0.005538 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118000 +0.000103 0.000135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077200 +0.000019 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037000 +0.000049 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.000776 0.001641 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129600 +0.000282 0.000403 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157000 +0.003972 0.005434 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058200 +0.000010 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001644 0.002542 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096000 +0.000130 0.000191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000018 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073400 +0.000727 0.001036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089000 +0.000788 0.000941 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103600 +0.000109 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067400 +0.000319 0.000466 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000128 0.000170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066200 +0.001001 0.001377 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.377599 +0.000028 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000084 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047000 +0.000095 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126800 +0.000093 0.000119 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088000 +0.000043 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000354 0.000509 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127400 +0.000435 0.000535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104400 +0.000406 0.000509 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139400 +0.000068 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000056 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.000006 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.574999 +0.000253 0.000345 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101000 +0.000087 0.000108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082800 +0.002668 0.003013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.389399 +0.001783 0.003022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.256599 +0.000058 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.179600 +0.001767 0.002379 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122200 +0.000213 0.000236 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.478599 +0.000922 0.001847 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088600 +0.000011 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003698 0.006675 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.000443 0.000715 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.003107 0.003817 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.395399 +0.000201 0.000287 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.000118 0.000150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000023 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046400 +0.000112 0.000155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129600 +0.001115 0.001513 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081600 +0.000043 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000061 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000118 0.000164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000103 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000686 0.000914 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.378599 +0.000318 0.000409 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.245200 +0.000014 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079200 +0.001067 0.001621 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049200 +0.000086 0.000141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068200 +0.000020 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000212 0.000316 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044400 +0.000311 0.000522 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.006250 0.007786 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.258199 +0.004464 0.006181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.167600 +0.000060 0.000080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039400 +0.000353 0.000559 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000016 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001911 0.002207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.238200 +0.000015 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000045 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.000050 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.000024 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000008 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000024 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071200 +0.000141 0.000249 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.140800 +0.000380 0.000595 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089800 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127600 +0.000028 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030800 +0.000039 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.001458 0.001581 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.268999 +0.001286 0.001496 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.829798 +0.000098 0.000123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076600 +0.000049 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000252 0.000349 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155200 +0.000721 0.001022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.394999 +0.003411 0.004262 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.375199 +0.000361 0.000563 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116800 +0.000640 0.000707 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033600 +0.000016 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000517 0.000658 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078400 +0.000024 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000448 0.000621 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.007322 0.010218 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.271199 +0.001551 0.002194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074800 +0.000007 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.274999 +0.000172 0.000277 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.003534 0.004611 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.357599 +0.000244 0.000327 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106800 +0.000366 0.000590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000063 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000470 0.000661 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088000 +0.000049 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000023 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000307 0.000362 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.469599 +0.000027 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000021 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083000 +0.000030 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002297 0.003078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102800 +0.000100 0.000135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000093 0.000126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037200 +0.000619 0.000794 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068600 +0.001867 0.002684 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098800 +0.000005 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000194 0.000278 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031800 +0.000164 0.000196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.207600 +0.000066 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032200 +0.000016 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158400 +0.000487 0.000849 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.240200 +0.000100 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000007 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000501 0.000597 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.290999 +0.000192 0.000306 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.216000 +0.000698 0.000714 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.649999 +0.000161 0.000186 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098800 +0.001297 0.001694 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096600 +0.000162 0.000242 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.001278 0.001751 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.281799 +0.000151 0.000220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.000012 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068800 +0.000057 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036000 +0.000960 0.001258 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.141000 +0.001347 0.001939 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000293 0.000349 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110000 +0.000106 0.000123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120600 +0.000174 0.000264 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075400 +0.000360 0.000620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000195 0.000226 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.001014 0.001128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131000 +0.000084 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000042 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157800 +0.000583 0.000731 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129600 +0.000054 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.019164 0.026766 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.210400 +0.000006 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000009 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000321 0.000443 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073600 +0.000032 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039400 +0.000023 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.000045 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032200 +0.000459 0.000572 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095400 +0.000115 0.000166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062400 +0.000096 0.000133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.001121 0.001548 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087800 +0.000074 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.000111 0.000157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087000 +0.000431 0.000581 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090600 +0.000321 0.000423 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.193800 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000135 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114400 +0.000032 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.370799 +0.000812 0.001328 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129000 +0.000055 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000371 0.000494 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.167000 +0.000028 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000208 0.000306 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035200 +0.000184 0.000232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084200 +0.000109 0.000149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.318799 +0.000033 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089200 +0.000366 0.000571 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039400 +0.000146 0.000229 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.003462 0.005156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.001215 0.002320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.176400 +0.000036 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106600 +0.000175 0.000225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083600 +0.000046 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000142 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096000 +0.001722 0.002095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.279199 +0.000328 0.000401 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000661 0.001147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.364399 +0.002618 0.003976 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.658999 +0.000300 0.000369 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098400 +0.000068 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106200 +0.000105 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094400 +0.000008 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000021 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000013 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000228 0.000313 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123800 +0.000376 0.000466 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114200 +0.000155 0.000218 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.000114 0.000189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000098 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059000 +0.000087 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068200 +0.000471 0.000716 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079800 +0.000128 0.000169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123800 +0.000167 0.000247 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000243 0.000355 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000117 0.000183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047200 +0.000203 0.000286 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091000 +0.000007 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000187 0.000273 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000024 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000170 0.000225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079400 +0.001260 0.001709 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.263199 +0.000514 0.000559 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.164800 +0.000046 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000077 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.174000 +0.000029 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000012 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.003526 0.004290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.236200 +0.005935 0.010058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101200 +0.000091 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000661 0.000975 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000267 0.000438 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000052 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107800 +0.000402 0.000601 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.000353 0.000471 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000092 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083000 +0.000063 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000695 0.000786 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.360999 +0.000009 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000121 0.000174 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069400 +0.000063 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.001430 0.002191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.173200 +0.000298 0.000518 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087600 +0.000028 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036000 +0.000019 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000103 0.000162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072200 +0.000010 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000399 0.000603 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059000 +0.000106 0.000161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000035 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000109 0.000132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.188800 +0.000567 0.001002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.159200 +0.000426 0.000718 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.000030 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089400 +0.000013 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000097 0.000154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.144000 +0.000213 0.000292 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087800 +0.001771 0.002188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102000 +0.000769 0.001111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104200 +0.000063 0.000080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074000 +0.000138 0.000204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074200 +0.000314 0.000477 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000018 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000061 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000334 0.000461 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135200 +0.000604 0.000926 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.000110 0.000162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000086 0.000137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037000 +0.000071 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076600 +0.000093 0.000130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.000820 0.001101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.000105 0.000166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000312 0.000431 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077000 +0.000045 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031400 +0.000090 0.000125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000908 0.001098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.360999 +0.000162 0.000229 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047400 +0.000013 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.000198 0.000242 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104400 +0.000059 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000032 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031800 +0.000376 0.000455 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107200 +0.003116 0.005220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101800 +0.000036 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000201 0.000323 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000451 0.000535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.386599 +0.000287 0.000322 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000041 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.000476 0.000767 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088800 +0.000054 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092600 +0.000405 0.000570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.272199 +0.000032 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000002 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.168800 +0.000204 0.000302 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076800 +0.000098 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.177000 +0.000024 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000003 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.337599 +0.003059 0.005139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059800 +0.000024 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000072 0.000097 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.000126 0.000161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116000 +0.000006 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.000020 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096200 +0.000045 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030400 +0.000044 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000901 0.001234 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081400 +0.000017 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000056 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000333 0.000388 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.204800 +0.000866 0.001195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000024 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.298199 +0.000055 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000343 0.000372 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.159200 +0.000436 0.000474 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.636399 +0.000037 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154600 +0.001309 0.001651 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.289799 +0.000068 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000031 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000022 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.004814 0.006749 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.391399 +0.000571 0.000857 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123400 +0.000084 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085200 +0.004570 0.006440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.181000 +0.000011 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001326 0.001837 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130800 +0.000171 0.000229 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000147 0.000185 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096600 +0.000019 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142600 +0.000237 0.000320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000045 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000047 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000035 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000023 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000325 0.000365 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.320199 +0.000184 0.000243 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000014 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000033 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000034 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000023 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032200 +0.000084 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091000 +0.000408 0.000600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000595 0.000892 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130000 +0.000132 0.000208 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.000077 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045200 +0.000075 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.001006 0.001148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.238400 +0.000040 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000035 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000400 0.000621 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092200 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000139 0.000215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000737 0.001206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117400 +0.000131 0.000161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.240800 +0.000029 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.006855 0.010016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.356399 +0.000023 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000029 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000002 0.000003 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.002728 0.003679 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.455599 +0.000025 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087200 +0.000171 0.000232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031000 +0.000058 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000212 0.000257 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161400 +0.000072 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094400 +0.000197 0.000237 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112000 +0.000327 0.000524 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084800 +0.000723 0.001192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098200 +0.000033 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.465199 +0.000106 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000040 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074400 +0.000094 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000004 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000003 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.001110 0.001628 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000034 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000012 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000389 0.000593 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.000737 0.001067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.259999 +0.002313 0.003743 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.224800 +0.000022 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000291 0.000328 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126600 +0.000882 0.001464 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155200 +0.000581 0.000854 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.000033 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000547 0.000660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133800 +0.000161 0.000298 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092600 +0.000281 0.000406 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000226 0.000279 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.241400 +0.000121 0.000141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.004926 0.007336 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000122 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.265399 +0.000177 0.000236 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000718 0.000958 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.272999 +0.000053 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036800 +0.000049 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000111 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000023 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000054 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000009 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031400 +0.001676 0.001983 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.305999 +0.000026 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083000 +0.000175 0.000246 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066200 +0.000118 0.000195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000037 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000090 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000021 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000032 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102200 +0.000187 0.000232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091800 +0.000246 0.000414 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126000 +0.000230 0.000283 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158200 +0.000103 0.000161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000033 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000369 0.000708 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.001942 0.002618 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000112 0.000144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085800 +0.001350 0.001883 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.283999 +0.001062 0.001616 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.000080 0.000125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.001212 0.001431 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.319199 +0.000022 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056000 +0.000032 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000047 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.001265 0.001732 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071800 +0.000035 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000295 0.000354 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.241000 +0.000149 0.000218 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000624 0.000645 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127600 +0.003331 0.004040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.377999 +0.017020 0.024817 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088200 +0.000004 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000225 0.000297 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000006 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000203 0.000290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082200 +0.000711 0.001061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081200 +0.000607 0.000902 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.308999 +0.000015 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000054 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000056 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.000303 0.000482 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000290 0.000371 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102600 +0.004017 0.006675 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.357999 +0.001317 0.001773 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.186800 +0.000290 0.000531 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.208400 +0.000170 0.000267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.174800 +0.000033 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056000 +0.001146 0.001343 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.269999 +0.000758 0.001191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071000 +0.000027 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.186600 +0.000106 0.000157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074200 +0.000048 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058400 +0.000117 0.000182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000869 0.001175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122800 +0.000041 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000881 0.001172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129000 +0.000021 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000207 0.000303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000016 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.000261 0.000331 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100000 +0.000062 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000043 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.000123 0.000188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.262799 +0.000004 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000229 0.000279 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109400 +0.000256 0.000358 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000033 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049200 +0.000013 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000028 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.000155 0.000243 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000096 0.000137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000351 0.000518 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.240600 +0.000442 0.000691 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.202200 +0.000183 0.000260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.000287 0.000401 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.144000 +0.000087 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000209 0.000268 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000423 0.000636 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037200 +0.000499 0.000801 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.003916 0.005509 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.337799 +0.000159 0.000190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123600 +0.000139 0.000208 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000229 0.000284 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132200 +0.000067 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.000014 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000236 0.000338 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046800 +0.002436 0.004212 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.202400 +0.000006 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000027 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.002630 0.003415 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121800 +0.000016 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000018 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000026 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000057 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000233 0.000357 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.001194 0.001721 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089800 +0.000046 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090400 +0.000294 0.000481 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089600 +0.000396 0.000819 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.635399 +0.000266 0.000335 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.168000 +0.000026 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046800 +0.000079 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000180 0.000248 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000079 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.000013 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000147 0.000196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063600 +0.000410 0.000559 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086000 +0.000044 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000132 0.000187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000291 0.000294 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097600 +0.000090 0.000133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000430 0.000670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.000004 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000199 0.000266 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095200 +0.000072 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100800 +0.000023 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000014 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.014390 0.024818 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071800 +0.000132 0.000166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078000 +0.000016 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000087 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.000168 0.000271 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.000677 0.000919 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087800 +0.000568 0.000710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.186200 +0.000026 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112200 +0.000338 0.000381 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.160000 +0.000444 0.000603 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000104 0.000137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.000013 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000066 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000771 0.001086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.483799 +0.000029 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000044 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000136 0.000165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000111 0.000133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094800 +0.000743 0.001109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.000234 0.000349 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.253999 +0.000056 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000130 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101600 +0.000106 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068000 +0.001673 0.002019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.216400 +0.000419 0.000767 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088800 +0.000359 0.000510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063600 +0.000747 0.001076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000117 0.000161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088400 +0.000073 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045200 +0.000618 0.000800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.193000 +0.000115 0.000182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000651 0.000921 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.000112 0.000137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000003 0.000003 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.649999 +0.000203 0.000252 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108800 +0.001702 0.002221 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.000232 0.000370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099600 +0.000885 0.001733 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132200 +0.000243 0.000397 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.199200 +0.000027 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000241 0.000292 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000264 0.000374 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083600 +0.000355 0.000516 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092000 +0.000212 0.000308 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.202600 +0.000569 0.000759 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.220800 +0.000008 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000167 0.000218 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000769 0.001354 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.359399 +0.001391 0.001779 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.291199 +0.001009 0.001571 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.222400 +0.000019 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001179 0.001639 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078800 +0.000312 0.000538 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.000183 0.000261 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101400 +0.000245 0.000337 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065200 +0.000090 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.018999 0.029219 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.183600 +0.000322 0.000528 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000028 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000064 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102600 +0.000192 0.000269 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077200 +0.018675 0.029559 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086000 +0.000027 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.000107 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100200 +0.000022 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000476 0.000626 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120600 +0.001984 0.002374 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.253199 +0.000007 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000165 0.000260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000007 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000193 0.000284 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093600 +0.000301 0.000471 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034000 +0.001172 0.001646 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.421599 +0.000516 0.000797 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071200 +0.000075 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075400 +0.000178 0.000265 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074800 +0.003504 0.005114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.254199 +0.000032 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000003 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108400 +0.000484 0.000699 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100000 +0.000095 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.000070 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092600 +0.000482 0.000593 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.246799 +0.000164 0.000192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116800 +0.000012 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000030 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000095 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.000295 0.000431 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.001061 0.001344 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124000 +0.000338 0.000416 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108800 +0.000129 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000211 0.000311 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000894 0.001284 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128800 +0.000282 0.000384 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.000328 0.000435 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000098 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.000095 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000013 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.000104 0.000172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000254 0.000431 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085600 +0.000038 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000487 0.000706 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.000046 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000021 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000018 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.001019 0.001514 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.147000 +0.000059 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094000 +0.000113 0.000149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085400 +0.000039 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000620 0.001039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133800 +0.000597 0.000716 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.384599 +0.000040 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.147200 +0.000064 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000364 0.000404 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033400 +0.000007 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000329 0.000499 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106000 +0.000117 0.000147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139600 +0.001138 0.001366 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.427199 +0.004931 0.008355 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083600 +0.000722 0.001558 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091200 +0.000395 0.000621 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000011 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.203200 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000073 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137000 +0.000071 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000033 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069400 +0.001048 0.001467 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000310 0.000412 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047800 +0.001796 0.002139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.145800 +0.000186 0.000248 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.202800 +0.000033 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.000079 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000137 0.000180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073200 +0.000147 0.000212 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.000540 0.000633 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.174000 +0.002379 0.002776 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114200 +0.000574 0.000763 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.394599 +0.000116 0.000175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116200 +0.000230 0.000365 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.000067 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.003467 0.004732 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.447799 +0.000101 0.000135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000093 0.000135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000019 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034400 +0.031019 0.054438 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000346 0.000516 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.262599 +0.000112 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.152200 +0.000072 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000081 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.000312 0.000445 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071800 +0.000034 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039800 +0.000166 0.000212 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.000146 0.000222 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000445 0.000639 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.140600 +0.000116 0.000154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.000086 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071400 +0.000017 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085000 +0.000104 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000028 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032000 +0.000036 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000056 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.002124 0.003241 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000892 0.000952 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.241400 +0.000059 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.000749 0.001009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.196600 +0.000343 0.000493 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.000071 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000027 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000146 0.000214 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000077 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075800 +0.002684 0.004157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122800 +0.000026 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000363 0.000561 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079400 +0.000031 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000041 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038600 +0.000175 0.000212 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.197000 +0.000010 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000714 0.000824 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.321999 +0.000122 0.000176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105400 +0.000024 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094600 +0.000045 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000073 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.218800 +0.003646 0.005966 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.253799 +0.000073 0.000097 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000004 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000016 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000069 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033600 +0.000094 0.000126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106000 +0.000160 0.000234 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057400 +0.000062 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059800 +0.000291 0.000427 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000084 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000254 0.000414 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000166 0.000211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000618 0.000917 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112600 +0.017365 0.027826 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073400 +0.000043 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.016133 0.025741 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088400 +0.000068 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.000095 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000608 0.000902 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000286 0.000365 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139400 +0.000071 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.001132 0.002032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065200 +0.000039 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154400 +0.001032 0.001533 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132600 +0.000067 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082000 +0.000248 0.000313 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078600 +0.000793 0.001073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123800 +0.000038 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000895 0.001345 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.509999 +0.000064 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000337 0.000474 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104400 +0.000150 0.000233 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103200 +0.000081 0.000132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.168200 +0.000058 0.000080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000862 0.001254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081200 +0.000261 0.000286 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115200 +0.000099 0.000135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000223 0.000348 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052400 +0.000106 0.000141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137800 +0.000031 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000367 0.000395 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.252199 +0.000008 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093800 +0.000025 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091800 +0.000105 0.000164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.000029 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093400 +0.001264 0.001544 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087800 +0.000216 0.000318 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039200 +0.000517 0.000674 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070200 +0.000582 0.000760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.000133 0.000206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000390 0.000603 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000056 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000179 0.000276 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.003416 0.005483 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.306199 +0.000056 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031000 +0.000122 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000111 0.000146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.171200 +0.000073 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046000 +0.000476 0.000613 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.000439 0.000763 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090000 +0.000585 0.000752 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.146200 +0.000070 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000028 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000592 0.000882 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000041 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000068 0.000108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000122 0.000160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.017115 0.030440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.145000 +0.000122 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119800 +0.000029 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000029 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036800 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000018 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.168800 +0.000624 0.000640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.002348 0.003390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.189200 +0.000079 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069800 +0.000229 0.000356 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000073 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085800 +0.000125 0.000157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082800 +0.000314 0.000360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.223000 +0.000021 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000250 0.000340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000073 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000005 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000875 0.001418 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.263399 +0.000042 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000044 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000054 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.138800 +0.000016 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000118 0.000162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104800 +0.000042 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115800 +0.002066 0.003102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073400 +0.000029 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000034 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000039 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112200 +0.000024 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.000220 0.000335 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.002216 0.002946 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088400 +0.000400 0.000480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.304999 +0.000037 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.009302 0.013593 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000113 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000010 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000313 0.000405 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083400 +0.000040 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000049 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000546 0.000699 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046400 +0.000016 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000095 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000013 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000081 0.000124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089800 +0.000012 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000133 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096000 +0.000094 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.000548 0.000775 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.000315 0.000434 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000073 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000170 0.000199 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077200 +0.000015 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000116 0.000158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.000037 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110000 +0.000041 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068600 +0.000033 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000107 0.000161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081200 +0.000013 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000058 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.234800 +0.000324 0.000380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.188600 +0.000015 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000667 0.000744 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.190600 +0.000144 0.000181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.145600 +0.000172 0.000240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.041118 0.081033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.262599 +0.000027 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000044 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.013073 0.023304 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118200 +0.000008 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001916 0.003794 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116600 +0.001167 0.001802 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000059 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000148 0.000243 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.009548 0.014989 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.001194 0.001776 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000349 0.000439 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.433399 +0.000483 0.000746 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058400 +0.000139 0.000224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084200 +0.000097 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.002746 0.003822 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.224800 +0.000014 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000240 0.000329 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031800 +0.000187 0.000263 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000051 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108800 +0.000024 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150000 +0.000614 0.000735 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.356199 +0.000009 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000041 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000486 0.000747 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038600 +0.000028 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001416 0.002140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.140200 +0.000028 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075200 +0.000044 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078200 +0.000439 0.000508 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.294399 +0.000007 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001369 0.001562 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.262199 +0.000333 0.000433 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.254399 +0.000219 0.000281 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139600 +0.003364 0.004253 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132200 +0.000389 0.000644 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000133 0.000181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098400 +0.000029 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000073 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000113 0.000183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083000 +0.000049 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.000176 0.000267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132200 +0.000155 0.000223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154200 +0.001591 0.002341 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081200 +0.000823 0.001078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096800 +0.000103 0.000123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091800 +0.000066 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.001525 0.001976 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.178200 +0.000100 0.000147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.000480 0.000614 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137800 +0.000022 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000588 0.000812 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.002111 0.002537 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127200 +0.000100 0.000127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000812 0.001201 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.000047 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111200 +0.000115 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084200 +0.000016 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000034 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000220 0.000333 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000262 0.000386 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087400 +0.000082 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000081 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000094 0.000130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058400 +0.000703 0.000846 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087600 +0.002251 0.003584 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.658599 +0.000006 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000212 0.000306 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.001888 0.002887 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.000012 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000294 0.000395 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.000245 0.000361 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000092 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000189 0.000288 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095000 +0.000679 0.001027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.148800 +0.001435 0.001717 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.415999 +0.000264 0.000375 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.000097 0.000144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101600 +0.000004 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000020 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104200 +0.000249 0.000352 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000006 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.003679 0.004742 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.400999 +0.000160 0.000253 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.148400 +0.000053 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.445999 +0.000034 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000024 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120600 +0.001807 0.002624 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119800 +0.000572 0.000772 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073400 +0.000030 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.000018 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.004123 0.005368 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.217000 +0.000043 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000464 0.000525 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117200 +0.001201 0.002136 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.218600 +0.000775 0.001171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071400 +0.000083 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.000089 0.000125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.000136 0.000188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102600 +0.000536 0.000651 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100200 +0.000022 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.000101 0.000150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079800 +0.000385 0.000592 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.174200 +0.000366 0.000549 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068200 +0.001352 0.001955 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150200 +0.000120 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000022 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000897 0.001303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.252599 +0.000592 0.000893 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.198000 +0.000024 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.001532 0.002249 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127800 +0.000277 0.000353 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117200 +0.000611 0.000855 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.293999 +0.000022 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000037 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.000456 0.000756 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052400 +0.000018 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000020 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000028 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000871 0.001332 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080200 +0.000118 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075800 +0.000046 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044400 +0.000044 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099400 +0.000051 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032200 +0.000076 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000079 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098000 +0.000019 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.005936 0.007606 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135000 +0.000080 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000445 0.001813 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.323599 +0.000081 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031400 +0.000176 0.000262 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000037 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000320 0.000372 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097400 +0.000009 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000416 0.000454 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.265599 +0.000457 0.000692 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000497 0.000616 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091400 +0.006578 0.009498 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095400 +0.000017 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.000045 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077800 +0.000113 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000045 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001297 0.002008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.173800 +0.000050 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.000058 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000024 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000144 0.000203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039200 +0.000179 0.000222 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071400 +0.000297 0.000357 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119200 +0.000474 0.000667 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071000 +0.002750 0.004259 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.000023 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000129 0.000172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113200 +0.000031 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047000 +0.000414 0.000600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.001949 0.003744 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123200 +0.000123 0.000192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000346 0.000386 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.200800 +0.000236 0.000339 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037200 +0.000041 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.000287 0.000380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079800 +0.000073 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.000020 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000032 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000049 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.000307 0.000427 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.258999 +0.000661 0.000924 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095800 +0.000124 0.000155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000186 0.000275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000284 0.000379 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076400 +0.000058 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072400 +0.000057 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.001199 0.001560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113400 +0.000011 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000822 0.001154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.000040 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030600 +0.000013 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000011 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000027 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000520 0.000673 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.166000 +0.000174 0.000203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105000 +0.000320 0.000430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087200 +0.000115 0.000158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000548 0.000809 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000001 0.000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000016 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000024 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.000265 0.000344 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.144800 +0.000120 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086000 +0.000143 0.000182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.216400 +0.001517 0.001854 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086000 +0.006798 0.011138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000245 0.000290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112400 +0.000036 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.000007 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000268 0.000391 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000023 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102800 +0.000056 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000070 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000187 0.000284 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000126 0.000175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079000 +0.000149 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.302599 +0.000976 0.001297 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150400 +0.000179 0.000317 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.298399 +0.000419 0.000563 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.000283 0.000404 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112000 +0.000347 0.000508 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000032 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.172200 +0.000013 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000139 0.000182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090200 +0.000009 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000668 0.000851 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.000005 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000674 0.000943 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105200 +0.000116 0.000136 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.192400 +0.000069 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095200 +0.000537 0.000821 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.138800 +0.000143 0.000179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080200 +0.000012 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000705 0.001158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000038 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000024 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000002 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000022 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078000 +0.000019 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000394 0.000563 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067800 +0.000090 0.000132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.000205 0.000276 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104800 +0.000071 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000298 0.000414 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031400 +0.000038 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000059 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085000 +0.000552 0.000651 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.334599 +0.000019 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000332 0.000450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000034 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000078 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042400 +0.000002 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095000 +0.000638 0.000966 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000005 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000026 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000021 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000071 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043000 +0.000015 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.000023 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.000120 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.004368 0.006376 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083400 +0.001343 0.001736 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126200 +0.000566 0.000705 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100600 +0.000026 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000041 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.003278 0.005026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084800 +0.000088 0.000135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058200 +0.000215 0.000362 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.343199 +0.000110 0.000176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.000088 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000020 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.000311 0.000435 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000102 0.000158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046800 +0.000023 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000233 0.000340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.000304 0.000400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.322599 +0.000678 0.000975 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000052 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000020 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000611 0.000867 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121400 +0.000207 0.000257 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000021 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000027 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034000 +0.005466 0.008506 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084800 +0.000127 0.000225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.169000 +0.000016 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001076 0.001495 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074800 +0.000228 0.000350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.148000 +0.000024 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031400 +0.000007 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000080 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086400 +0.000021 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000066 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.002219 0.002976 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150400 +0.000550 0.000808 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000181 0.000249 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.000027 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000024 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079200 +0.000096 0.000124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069200 +0.000054 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.001545 0.001977 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156400 +0.000206 0.000282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088200 +0.005882 0.007591 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.246599 +0.000075 0.000114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035200 +0.000261 0.000380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000807 0.001040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.425599 +0.000022 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.001704 0.001951 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.179600 +0.000722 0.001039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081800 +0.005493 0.008124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.320199 +0.000159 0.000216 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.001166 0.001753 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100600 +0.000015 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000014 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.008764 0.011614 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153400 +0.000342 0.000491 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.269399 +0.000027 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000185 0.000282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000194 0.000272 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000017 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000174 0.000208 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100200 +0.000065 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092000 +0.000125 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000682 0.000912 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.412399 +0.000160 0.000254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.232000 +0.000081 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000895 0.001330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074800 +0.000117 0.000175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000015 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000212 0.000307 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073600 +0.004834 0.007205 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000352 0.000489 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000034 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.001513 0.002231 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117200 +0.000220 0.000306 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000123 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.177200 +0.000822 0.001030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.183000 +0.000064 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084600 +0.000006 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000252 0.000389 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070800 +0.001286 0.001523 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.308999 +0.000068 0.000091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063600 +0.000194 0.000304 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.177800 +0.000153 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089000 +0.002722 0.004277 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076400 +0.000546 0.000872 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.002683 0.003604 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.429799 +0.000050 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034800 +0.000011 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000252 0.000273 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154400 +0.000172 0.000321 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.295799 +0.000530 0.000597 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.537799 +0.000126 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036800 +0.000372 0.000498 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.196200 +0.000050 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000093 0.000136 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033400 +0.000646 0.001029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062400 +0.000086 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075200 +0.000160 0.000242 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083200 +0.000067 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000175 0.000267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.145600 +0.000012 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000040 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000176 0.000236 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047400 +0.000282 0.000331 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.988398 +0.000204 0.000279 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.000005 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037000 +0.000237 0.000308 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.000023 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000006 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000064 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.000102 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.001875 0.002673 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.527799 +0.000413 0.000473 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.171000 +0.000024 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000076 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000027 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000038 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001190 0.001778 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000124 0.000244 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.179800 +0.001506 0.002224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056000 +0.000712 0.001085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000065 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000061 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000480 0.000746 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.000572 0.000723 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000013 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000014 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000056 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000089 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000071 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000935 0.001184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094000 +0.000201 0.000250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110000 +0.005752 0.009586 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.000581 0.000941 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105600 +0.000184 0.000268 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071800 +0.001426 0.002442 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.001286 0.001804 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120400 +0.000161 0.000236 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.000046 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.000022 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044400 +0.000500 0.000620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.219000 +0.000170 0.000221 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000031 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.205000 +0.000644 0.001109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000023 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000205 0.000231 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088200 +0.000121 0.000166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083600 +0.000053 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000022 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000053 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000023 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000011 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000023 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000148 0.000251 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118200 +0.000358 0.000478 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092800 +0.000267 0.000370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116400 +0.000227 0.000260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101600 +0.000515 0.000744 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000002 0.000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000118 0.000178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000372 0.000545 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076200 +0.000095 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000108 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069600 +0.000498 0.000530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.351799 +0.000088 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.000171 0.000234 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076800 +0.000236 0.000289 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000025 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000597 0.000812 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.298799 +0.000012 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000084 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000012 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000460 0.000574 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098000 +0.000030 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150800 +0.000124 0.000188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000086 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090600 +0.000084 0.000125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074000 +0.001419 0.001694 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124800 +0.000109 0.000158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.001351 0.001670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139800 +0.000389 0.000543 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098200 +0.000034 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000369 0.000375 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000022 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096200 +0.000072 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000006 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000152 0.000224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066200 +0.002350 0.002865 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.229000 +0.000012 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000127 0.000154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.001019 0.001654 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.329599 +0.000445 0.000595 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000209 0.000303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071800 +0.000144 0.000227 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000197 0.000351 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.392799 +0.000146 0.000200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070800 +0.000054 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085600 +0.000079 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058200 +0.000061 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036400 +0.000173 0.000233 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131400 +0.000318 0.000442 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000049 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000645 0.000770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047400 +0.000108 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.004730 0.006628 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.191200 +0.000127 0.000187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.001325 0.001714 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.004763 0.006645 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.253599 +0.000001 0.000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000071 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.000118 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038000 +0.003969 0.006214 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075400 +0.001512 0.001932 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143200 +0.000012 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105000 +0.000098 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000184 0.000292 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000010 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000089 0.000126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072400 +0.000683 0.001008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110400 +0.000022 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000153 0.000193 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.003913 0.005924 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.476399 +0.001886 0.002688 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.266599 +0.000152 0.000185 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106800 +0.000014 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000593 0.000655 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071200 +0.000104 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.206200 +0.000190 0.000305 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000079 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000108 0.000165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000409 0.000539 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116600 +0.000792 0.001010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.001003 0.001380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000024 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.000019 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.008765 0.013196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074400 +0.000525 0.000703 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.000064 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102600 +0.000056 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071200 +0.000044 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153200 +0.000049 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076000 +0.000825 0.001231 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113200 +0.000528 0.000922 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.176000 +0.000138 0.000215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000008 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002665 0.003655 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.262199 +0.000032 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000024 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002591 0.003352 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133600 +0.000249 0.000361 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094000 +0.004524 0.006351 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151800 +0.000137 0.000166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070800 +0.000248 0.000334 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041400 +0.000152 0.000223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000470 0.000732 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002268 0.002751 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126200 +0.000050 0.000080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.000043 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000442 0.000658 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107000 +0.000033 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.001203 0.001761 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156200 +0.000076 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000557 0.000798 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.313199 +0.000006 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030800 +0.000171 0.000264 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133000 +0.000117 0.000164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000204 0.000316 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000046 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000105 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114600 +0.000168 0.000209 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.000017 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003112 0.004558 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084800 +0.001164 0.001545 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.296399 +0.003022 0.004141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071000 +0.269238 0.431796 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.328199 +0.000164 0.000286 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033400 +0.000034 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000029 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.000041 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002394 0.003666 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000034 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069000 +0.000598 0.001056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000385 0.000547 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107200 +0.000120 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109200 +0.000016 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000263 0.000403 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000161 0.000204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087600 +0.000089 0.000124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047000 +0.000757 0.000920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109800 +0.000407 0.000633 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.163600 +0.000107 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056000 +0.000139 0.000203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076000 +0.000238 0.000346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049200 +0.000152 0.000194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.218000 +0.000126 0.000187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.000041 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000050 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000020 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000091 0.000119 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.000019 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000045 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000025 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000082 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071000 +0.000175 0.000272 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000584 0.000897 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132400 +0.000188 0.000218 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.611199 +0.002102 0.003314 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133400 +0.000098 0.000163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041400 +0.000749 0.001170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080400 +0.000197 0.000287 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.001668 0.002003 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111600 +0.000267 0.000457 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.217600 +0.000019 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000740 0.001223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.000147 0.000202 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077800 +0.000035 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000369 0.000511 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.416999 +0.000059 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.002287 0.002799 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126400 +0.000011 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000033 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000101 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.000083 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047800 +0.000051 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.000022 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099200 +0.000105 0.000287 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.279399 +0.000255 0.000312 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.000120 0.000165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102800 +0.000044 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000869 0.001394 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084000 +0.000009 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000687 0.000975 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077200 +0.000024 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000014 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000035 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079000 +0.000041 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094000 +0.000765 0.001309 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120800 +0.000342 0.000522 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073400 +0.000009 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000172 0.000223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.171400 +0.000012 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000054 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000268 0.000416 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093200 +0.000139 0.000197 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070600 +0.000015 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000287 0.000417 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000036 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000104 0.000141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.134087 0.213902 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000055 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000188 0.000233 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047400 +0.000008 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000309 0.000429 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066200 +0.000411 0.000538 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150200 +0.000084 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000135 0.000577 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095600 +0.000094 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000122 0.000164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037400 +0.000153 0.000157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000046 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.001197 0.001972 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.188800 +0.000026 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000952 0.001640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124000 +0.000133 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085800 +0.001001 0.001642 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.527999 +0.000942 0.001316 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076200 +0.000120 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099400 +0.001435 0.001916 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139000 +0.000115 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.000369 0.000565 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100200 +0.000083 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037200 +0.000918 0.001140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129600 +0.000137 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080200 +0.000221 0.000238 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.327199 +0.000114 0.000176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073200 +0.002412 0.002703 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.256399 +0.000038 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059000 +0.000065 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071800 +0.000031 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000597 0.000857 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157400 +0.000703 0.000780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153600 +0.000179 0.000326 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085600 +0.000033 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046400 +0.000178 0.000225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073400 +0.000054 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000051 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.000899 0.001284 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.192000 +0.000145 0.000199 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000426 0.000675 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000190 0.000277 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102000 +0.000117 0.000174 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038600 +0.000014 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000015 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000171 0.000218 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000119 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000074 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091200 +0.000156 0.000187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161400 +0.000106 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095600 +0.000261 0.000386 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000272 0.000425 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085600 +0.000295 0.000409 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066000 +0.000432 0.000606 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.000095 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057400 +0.000223 0.000327 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000073 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000024 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000027 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000137 0.000174 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088000 +0.001085 0.001346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157800 +0.000139 0.000179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.165000 +0.000056 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.197000 +0.000376 0.000473 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087400 +0.000011 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000038 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000144 0.000176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094000 +0.000031 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000190 0.000296 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.001211 0.001723 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.216400 +0.000041 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003698 0.004952 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.266599 +0.000260 0.000416 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057400 +0.001946 0.002644 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.243000 +0.000037 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035200 +0.001021 0.001051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088800 +0.000123 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087600 +0.000091 0.000136 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064000 +0.000103 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000696 0.000878 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.238400 +0.000441 0.000530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000008 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000073 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000123 0.000239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120200 +0.000179 0.000240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.001845 0.002652 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082800 +0.000017 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000098 0.000126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000209 0.000250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132400 +0.000190 0.000314 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151200 +0.000040 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033400 +0.000037 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.145000 +0.000247 0.000249 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000019 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121200 +0.000124 0.000177 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090200 +0.000013 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.004865 0.006512 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.195400 +0.000176 0.000254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034800 +0.000100 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.000133 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113200 +0.000006 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000010 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.000248 0.000399 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130400 +0.001434 0.001450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150000 +0.000421 0.000580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123600 +0.000041 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086600 +0.005022 0.006750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086800 +0.000015 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000015 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000079 0.000129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000264 0.000330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133800 +0.000565 0.000812 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.289599 +0.016696 0.023279 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085800 +0.000021 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000399 0.000654 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.000016 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000011 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000562 0.000680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151200 +0.000732 0.001071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085800 +0.000044 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000116 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000687 0.001061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000127 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000025 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093200 +0.000645 0.000873 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046400 +0.000105 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000322 0.000430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.389399 +0.000103 0.000155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000068 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000272 0.000408 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000064 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000562 0.000799 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000102 0.000135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.000140 0.000166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079800 +0.000098 0.000125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.000149 0.000206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110600 +0.000094 0.000133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095400 +0.000005 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.007045 0.009018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.222000 +0.000012 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000071 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000043 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000167 0.000222 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.003312 0.005225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074200 +0.000012 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000098 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000097 0.000123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000260 0.000397 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083000 +0.000440 0.000731 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097000 +0.000702 0.000879 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.224400 +0.000026 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000131 0.000194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.001180 0.001606 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.146600 +0.000303 0.000550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132800 +0.000094 0.000115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082400 +0.000064 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000043 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092400 +0.000085 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000498 0.000597 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085400 +0.000177 0.000293 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038000 +0.000212 0.000320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000218 0.000293 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000062 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.000089 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046800 +0.000047 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000921 0.001217 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123600 +0.000311 0.000409 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000104 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.000937 0.001104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.149200 +0.000036 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031800 +0.000598 0.000713 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114400 +0.000133 0.000245 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.234600 +0.000079 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.191200 +0.000024 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.000035 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001224 0.001780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161600 +0.001020 0.001711 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.222600 +0.000071 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039200 +0.000031 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000379 0.000535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000522 0.000865 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.235000 +0.000209 0.000306 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000341 0.000505 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.000059 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000256 0.000389 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.277199 +0.001950 0.002776 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134000 +0.001897 0.002424 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.206800 +0.000040 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.001014 0.001207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.289199 +0.000130 0.000180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000321 0.000404 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110400 +0.000007 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000181 0.000228 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154000 +0.000018 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000007 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000140 0.000181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.001818 0.002169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.172000 +0.000927 0.001245 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098200 +0.000388 0.000516 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.191600 +0.004583 0.008694 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103200 +0.000068 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.000109 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096800 +0.000025 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000260 0.000383 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116200 +0.000048 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092600 +0.000052 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000036 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000121 0.000166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097400 +0.000029 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000046 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000305 0.000404 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.141000 +0.004348 0.006450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102400 +0.000169 0.000241 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.000417 0.000583 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000025 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000201 0.000491 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.177400 +0.000320 0.000519 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000086 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099800 +0.000647 0.000747 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.439999 +0.002137 0.002662 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102600 +0.002236 0.003496 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064000 +0.000017 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000031 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000070 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058200 +0.000303 0.000351 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000201 0.000260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.141400 +0.000036 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000165 0.000258 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071000 +0.000135 0.000179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000094 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.406999 +0.000132 0.000176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035200 +0.000045 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000185 0.000247 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096000 +0.000024 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000269 0.000387 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068200 +0.000030 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000062 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000048 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084400 +0.000133 0.000155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.141600 +0.000038 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039200 +0.000057 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.002716 0.003204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136400 +0.000066 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.278999 +0.000031 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.000148 0.000194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106800 +0.000060 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078800 +0.000660 0.001029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079200 +0.000028 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118600 +0.000154 0.000197 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.164400 +0.000177 0.000232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.005965 0.008185 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.320199 +0.000137 0.000198 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000021 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.000262 0.000354 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078200 +0.000490 0.000964 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.264799 +0.000519 0.000800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085400 +0.000056 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000137 0.000161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087000 +0.000397 0.000448 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.281199 +0.000080 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122000 +0.000056 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000011 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000081 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.000007 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000056 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000401 0.000557 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058400 +0.000019 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000915 0.001283 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000103 0.000127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.000144 0.000205 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116600 +0.000145 0.000202 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.000008 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000192 0.000362 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070800 +0.000012 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.433399 +0.000026 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000140 0.000169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069000 +0.001630 0.003835 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090400 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098800 +0.000160 0.000210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094800 +0.000024 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079600 +0.000020 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069200 +0.001651 0.002312 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106000 +0.000092 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030400 +0.000009 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087600 +0.000157 0.000188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.000541 0.000725 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095200 +0.000061 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000247 0.000364 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.000132 0.000205 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000111 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.002818 0.003863 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134000 +0.003649 0.004393 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157000 +0.000011 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136800 +0.009635 0.013927 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.277799 +0.003461 0.004147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158200 +0.000028 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.004767 0.007775 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.278199 +0.000085 0.000115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.000113 0.000165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000211 0.000334 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.000010 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000001 0.000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000251 0.000328 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113400 +0.000018 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000010 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000023 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000249 0.000346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.000044 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.000002 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000178 0.000249 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105000 +0.000188 0.000338 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126400 +0.000054 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.001486 0.002289 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107000 +0.000711 0.000852 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.365999 +0.000555 0.000777 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131200 +0.000140 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132000 +0.000011 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085000 +0.000401 0.000621 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073600 +0.000166 0.000263 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116800 +0.001008 0.001627 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121400 +0.000268 0.000480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.242600 +0.000302 0.000429 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.000068 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047000 +0.000028 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000517 0.000942 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.264799 +0.000406 0.000499 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.148000 +0.000307 0.000496 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073200 +0.000410 0.000539 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.178800 +0.000221 0.000288 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150400 +0.000412 0.000657 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000347 0.000478 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133800 +0.000038 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.003074 0.004702 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.213000 +0.001600 0.002184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.000723 0.000912 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.307999 +0.000089 0.000152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.000063 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088200 +0.000148 0.000211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.000076 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065200 +0.000119 0.000238 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.320199 +0.000270 0.000369 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.171000 +0.000087 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000124 0.000160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076400 +0.000012 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.005425 0.006496 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.321399 +0.004597 0.006425 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.300799 +0.002038 0.003290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.187800 +0.000018 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.000338 0.000572 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082400 +0.000161 0.000261 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097600 +0.000703 0.000909 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.254599 +0.000183 0.000266 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034400 +0.000048 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000075 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075800 +0.001479 0.001948 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.256999 +0.000015 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000024 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.240600 +0.000212 0.000244 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000076 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044400 +0.000020 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.001272 0.001693 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.168400 +0.000030 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092600 +0.000023 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000715 0.001663 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.209400 +0.002472 0.005207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.177400 +0.000029 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000020 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000369 0.000453 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.196600 +0.000374 0.000503 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.000165 0.000245 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131800 +0.000156 0.000227 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.000134 0.000179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000198 0.000257 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156800 +0.000181 0.000238 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077200 +0.008407 0.014802 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.226200 +0.000016 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.226600 +0.002740 0.003340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.281799 +0.000003 0.000003 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000189 0.000205 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161800 +0.000092 0.000135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000378 0.000496 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.222200 +0.000101 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.000001 0.000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.002083 0.002791 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.283199 +0.000073 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.000794 0.001004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.645399 +0.000316 0.000635 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113000 +0.000099 0.000130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000046 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000131 0.000174 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077800 +0.000255 0.000315 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128400 +0.000065 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000654 0.000930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000042 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000316 0.000384 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154200 +0.000679 0.000892 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.166200 +0.000012 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000014 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000393 0.000619 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065200 +0.000040 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000013 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000133 0.000170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075800 +0.000096 0.000137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068600 +0.000055 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065400 +0.000122 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046400 +0.000135 0.000182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083400 +0.000607 0.000701 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.185400 +0.008534 0.010675 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.340999 +0.000072 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000050 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037200 +0.000046 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000535 0.000652 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092400 +0.000039 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035200 +0.000126 0.000178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.000057 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.001225 0.001413 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131200 +0.001006 0.001294 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121800 +0.000088 0.000132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076600 +0.000133 0.000203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085400 +0.002696 0.003129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109000 +0.000013 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000013 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001222 0.001581 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.305199 +0.000022 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.000199 0.000283 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097000 +0.000095 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123400 +0.000064 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000674 0.001006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000455 0.000715 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.195200 +0.000259 0.000371 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076000 +0.000196 0.000268 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127800 +0.000018 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000070 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000482 0.000724 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.342799 +0.000186 0.000243 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.000047 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047200 +0.000107 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000439 0.000649 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139800 +0.002321 0.002646 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.370799 +0.000035 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046000 +0.000248 0.000324 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000336 0.000476 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076600 +0.000041 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.185800 +0.000050 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.000005 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000181 0.000251 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000015 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000022 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000035 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000183 0.000267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.000714 0.000922 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.173400 +0.000294 0.000423 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.000242 0.000337 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.000013 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081600 +0.000100 0.000137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000223 0.000287 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.193800 +0.000086 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072200 +0.001046 0.001536 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068800 +0.000009 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.206200 +0.000109 0.000166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.000219 0.000275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112200 +0.000851 0.001214 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069400 +0.001930 0.002807 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125000 +0.000595 0.000726 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100400 +0.000187 0.000221 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078000 +0.000022 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000144 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.216600 +0.000013 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000057 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000148 0.000220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000118 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000048 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.000068 0.000108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.006766 0.010077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000146 0.000196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095600 +0.000674 0.000865 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103200 +0.000167 0.000206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000012 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000033 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000121 0.000179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000232 0.000354 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058200 +0.000225 0.000323 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.000261 0.000316 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105000 +0.000227 0.000315 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120600 +0.000007 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100000 +0.000017 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000198 0.000308 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000240 0.000328 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089600 +0.000028 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.006708 0.009650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077000 +0.000302 0.000431 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.005387 0.007653 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155600 +0.000110 0.000141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.962198 +0.000269 0.000338 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158400 +0.000010 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.862598 +0.000005 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115000 +0.000196 0.000284 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102400 +0.000913 0.001192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087400 +0.000303 0.000426 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083000 +0.000695 0.001058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079200 +0.000104 0.000149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031000 +0.000428 0.000563 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107600 +0.000196 0.000310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.001788 0.002543 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091200 +0.006831 0.009654 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119000 +0.000940 0.001281 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102800 +0.000525 0.000742 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.000032 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.000191 0.000275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000003 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.003045 0.004815 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.169200 +0.000012 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000605 0.000774 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110600 +0.000042 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000088 0.000133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000557 0.000748 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000075 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000100 0.000126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158200 +0.000135 0.000177 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.000225 0.000287 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.000309 0.000434 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080200 +0.000090 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.000182 0.000276 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.189400 +0.003269 0.005222 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000273 0.000436 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081400 +0.000105 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086600 +0.000029 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.000196 0.000293 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058200 +0.000046 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079800 +0.000002 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000042 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093200 +0.002816 0.004138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000032 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.008202 0.011651 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.226200 +0.000532 0.001028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.319199 +0.000167 0.000250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000271 0.000436 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.000042 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000004 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000021 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000688 0.000925 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125400 +0.000013 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000063 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000244 0.000368 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000994 0.001486 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.001540 0.002268 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133400 +0.001446 0.001777 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.396799 +0.000301 0.000443 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.170800 +0.000056 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.000037 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034800 +0.000033 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000082 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047000 +0.000558 0.000949 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085600 +0.000178 0.000276 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030400 +0.000106 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000028 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000186 0.000236 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113400 +0.000041 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.000018 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000329 0.000385 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.191400 +0.000335 0.000470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032000 +0.000044 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065400 +0.000742 0.001082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069400 +0.000272 0.000363 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.000153 0.000239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097400 +0.000028 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.001153 0.001644 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077400 +0.000477 0.000727 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058200 +0.000016 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.001351 0.001915 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.409199 +0.000445 0.000591 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117600 +0.000036 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063600 +0.000162 0.000228 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.206600 +0.002026 0.003184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110200 +0.004898 0.006423 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.421599 +0.000244 0.000333 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.000015 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000013 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000046 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000056 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.000038 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000019 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.160000 +0.000042 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.000024 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000080 0.000127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.001429 0.002136 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.224200 +0.000038 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000024 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000114 0.000127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.002058 0.002796 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.268799 +0.000738 0.001135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.000006 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000007 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000044 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.000102 0.000124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111600 +0.000109 0.000127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106000 +0.000051 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.000029 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000288 0.000403 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.000019 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000050 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130400 +0.000333 0.000422 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.001190 0.001663 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000104 0.000158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105800 +0.000215 0.000320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066200 +0.000035 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000053 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000205 0.000251 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.234000 +0.007812 0.011267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084600 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.001960 0.003097 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122200 +0.000908 0.001622 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126200 +0.000417 0.000600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.001699 0.002231 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097600 +0.000216 0.000292 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072400 +0.000535 0.000686 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.192400 +0.000049 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.000532 0.000846 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.001217 0.001599 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150800 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000780 0.001134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000037 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.005455 0.007919 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.002481 0.002686 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.489199 +0.000813 0.001141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.405399 +0.001119 0.001680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.002470 0.003347 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.292599 +0.000199 0.000251 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075400 +0.000057 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123200 +0.000648 0.001115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119000 +0.000027 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000090 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.261799 +0.000028 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000062 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000117 0.000192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079200 +0.000101 0.000146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064000 +0.000100 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158000 +0.001021 0.001514 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000917 0.001455 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.231200 +0.000059 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000526 0.000748 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.145600 +0.000134 0.000164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.018265 0.026830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071200 +0.000849 0.001004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.336399 +0.000019 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000315 0.000374 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.500999 +0.000548 0.000754 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.138000 +0.000210 0.000249 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139200 +0.000006 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000745 0.000987 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.403199 +0.000019 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100000 +0.000081 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.000321 0.000431 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043000 +0.000736 0.001030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098200 +0.000206 0.000312 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.001557 0.002692 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.000149 0.000193 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.234000 +0.000015 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066200 +0.000173 0.000247 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074600 +0.000012 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.003687 0.005261 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.225600 +0.000112 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071800 +0.000113 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000005 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000017 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.000093 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036400 +0.000021 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000044 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000393 0.000583 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.000123 0.000176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158600 +0.000130 0.000175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000033 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000769 0.001395 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103400 +0.000190 0.000229 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.175000 +0.001221 0.001767 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067400 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000125 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049200 +0.000345 0.000483 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052400 +0.001440 0.002324 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108000 +0.000031 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157800 +0.000043 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034400 +0.000349 0.000446 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.517999 +0.000049 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076600 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000054 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001302 0.001637 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122600 +0.000029 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000243 0.000354 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047000 +0.000024 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000135 0.000188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.001138 0.002230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.000130 0.000164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.000076 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072400 +0.000014 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000358 0.000520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000674 0.001038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.000170 0.000209 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073400 +0.000061 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.000189 0.000226 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.001715 0.002304 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095000 +0.000065 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.000039 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000832 0.001151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158400 +0.000091 0.000119 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.003369 0.005762 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.168400 +0.000288 0.000356 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123000 +0.000039 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150800 +0.000160 0.000261 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.000314 0.000458 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074800 +0.000415 0.000585 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102600 +0.000081 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000006 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000003 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000620 0.000774 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.173600 +0.000067 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035200 +0.000014 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.004081 0.005766 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073600 +0.000014 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.000402 0.000590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085600 +0.000042 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.000035 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000008 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000017 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000262 0.000374 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.000104 0.000164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046800 +0.000314 0.000471 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135800 +0.000013 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000153 0.000199 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.004174 0.007198 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.536999 +0.001446 0.002175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063600 +0.000006 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.000196 0.000266 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114600 +0.000227 0.000360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039800 +0.000168 0.000252 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088200 +0.001777 0.002397 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.329799 +0.000012 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001146 0.001899 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122800 +0.000487 0.000557 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.492199 +0.000016 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030800 +0.000312 0.000465 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000019 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000152 0.000211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037200 +0.000008 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.004452 0.005529 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.181800 +0.000022 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000154 0.000182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.473999 +0.000097 0.000132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000458 0.000596 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123000 +0.000780 0.001099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091800 +0.000226 0.000360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046000 +0.002159 0.004010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074400 +0.005121 0.007232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071400 +0.001217 0.001557 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.351999 +0.000133 0.000165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.351799 +0.000001 0.000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000078 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.166200 +0.000009 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000021 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000615 0.000886 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.000987 0.001510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000273 0.000355 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129000 +0.000441 0.000652 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121000 +0.000521 0.001438 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126800 +0.004053 0.005698 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.177400 +0.001104 0.001566 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095400 +0.000417 0.000492 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.188400 +0.000173 0.000233 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071800 +0.000081 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000130 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.174600 +0.000671 0.000940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073400 +0.000304 0.000429 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117400 +0.000236 0.000367 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000087 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000334 0.000450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105000 +0.000269 0.000362 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.000484 0.000640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117600 +0.000173 0.000245 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000030 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038000 +0.000611 0.000770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.551199 +0.000165 0.000219 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075200 +0.000021 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000115 0.000157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.000078 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.985198 +0.000051 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000157 0.000208 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121600 +0.000049 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000010 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000006 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000362 0.000379 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.225000 +0.000045 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.001603 0.002426 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074000 +0.000198 0.000239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.274799 +0.000328 0.000416 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.195200 +0.000201 0.000311 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062400 +0.000385 0.000713 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.256199 +0.000031 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000150 0.000183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136200 +0.000077 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000039 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.000079 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046400 +0.000112 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090600 +0.000655 0.000975 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000529 0.000750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000145 0.000194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112000 +0.000070 0.000137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000414 0.000651 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036800 +0.000137 0.000187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103800 +0.044236 0.070435 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114000 +0.000245 0.000396 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000118 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.000100 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155600 +0.000790 0.001099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.000918 0.001276 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155200 +0.000472 0.000599 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116000 +0.000791 0.001118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.303399 +0.000130 0.000172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087600 +0.000406 0.000735 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088000 +0.000234 0.000338 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000051 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000371 0.000545 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071000 +0.000309 0.000421 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.000429 0.000588 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000110 0.000162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.000024 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000043 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.000153 0.000203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083400 +0.000499 0.000619 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155600 +0.000014 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000015 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000041 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082200 +0.000765 0.001026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000080 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000166 0.000186 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088600 +0.000181 0.000254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000019 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000017 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000174 0.000277 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059800 +0.000433 0.000615 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100200 +0.000191 0.000285 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103000 +0.000574 0.000616 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.186000 +0.000021 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104000 +0.000138 0.000187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000252 0.000420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056000 +0.000409 0.000525 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047200 +0.001514 0.002295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000070 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123600 +0.000190 0.000283 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157200 +0.000550 0.000684 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135600 +0.000185 0.000242 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072200 +0.000005 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085000 +0.000089 0.000136 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031400 +0.001677 0.002397 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.000047 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000013 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000037 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036000 +0.000102 0.000136 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033600 +0.000226 0.000285 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.166200 +0.000040 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088400 +0.000497 0.000562 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.160000 +0.000066 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000415 0.000649 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000035 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143400 +0.000055 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000010 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000034 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000918 0.001185 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137800 +0.001611 0.002041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082000 +0.000021 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000042 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000017 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038600 +0.000024 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000078 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030800 +0.000270 0.000481 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127800 +0.000019 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034400 +0.000036 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000006 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000017 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037000 +0.000042 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000064 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034000 +0.000665 0.000959 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000537 0.000733 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101200 +0.000106 0.000164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000036 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.000150 0.000225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000070 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001687 0.002275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125400 +0.000009 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000068 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.000887 0.001338 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.007619 0.009655 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.171800 +0.001178 0.001837 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.196600 +0.000767 0.001115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.149400 +0.000239 0.000316 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119800 +0.000123 0.000166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000082 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.000071 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.296399 +0.000032 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000171 0.000240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.003248 0.003676 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.395399 +0.002148 0.003202 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086600 +0.000266 0.000392 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.000458 0.000643 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.414199 +0.000034 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089200 +0.000218 0.000248 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121800 +0.001242 0.001804 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.000295 0.000450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000113 0.000144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000021 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000143 0.000238 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068000 +0.000065 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.000347 0.000491 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.001363 0.002020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000371 0.000570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.252599 +0.000004 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000209 0.000308 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000131 0.000193 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000330 0.000713 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000203 0.000257 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.204000 +0.000054 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000195 0.000265 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.497199 +0.000093 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000042 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.000441 0.000577 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116000 +0.000010 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000018 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000401 0.000541 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085600 +0.000169 0.000270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103400 +0.000076 0.000114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000093 0.000130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000021 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.000566 0.000670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076200 +0.000420 0.000595 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000044 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000335 0.000699 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103000 +0.000795 0.001017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099800 +0.000852 0.001016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109600 +0.000700 0.001021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084800 +0.000226 0.000326 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067800 +0.000180 0.000238 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.247599 +0.000039 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.000011 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000326 0.000381 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084400 +0.001623 0.002510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000417 0.000564 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.000461 0.000625 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.000128 0.000176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.183800 +0.000146 0.000209 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087800 +0.000064 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000203 0.000249 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142200 +0.000117 0.000164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.000247 0.000359 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156600 +0.000207 0.000411 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136000 +0.000596 0.000829 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135800 +0.000031 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000149 0.000228 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000121 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123600 +0.003662 0.005407 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071200 +0.001867 0.002856 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069200 +0.001831 0.002701 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118400 +0.000011 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000033 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000039 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031000 +0.000058 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001096 0.001873 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075800 +0.000010 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000092 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059000 +0.001525 0.001953 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.145400 +0.000337 0.000434 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.342799 +0.000112 0.000161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000262 0.000367 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093200 +0.000436 0.000559 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.393799 +0.000062 0.000080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064000 +0.000048 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000032 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000010 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000015 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068800 +0.000054 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037000 +0.000204 0.000270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047000 +0.000014 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000241 0.000336 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093000 +0.000118 0.000179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000280 0.000349 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000355 0.000497 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101200 +0.000043 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000334 0.000519 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.232000 +0.000162 0.000186 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.429399 +0.000326 0.000458 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073200 +0.000056 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000068 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000194 0.000286 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000117 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089600 +0.000278 0.000381 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098400 +0.000034 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038600 +0.000177 0.000283 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000367 0.000609 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120400 +0.000881 0.001351 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130800 +0.000195 0.000284 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057400 +0.000044 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002343 0.002941 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.152800 +0.000002 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000074 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066000 +0.000672 0.000877 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124200 +0.000023 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000289 0.000439 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034400 +0.000217 0.000239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151000 +0.000205 0.000255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000032 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041400 +0.000135 0.000212 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.162600 +0.000008 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000063 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046000 +0.000133 0.000201 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.167600 +0.000023 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000242 0.000336 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.000060 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000399 0.000632 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111200 +0.000309 0.000570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100400 +0.000884 0.001366 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134800 +0.000118 0.000189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037800 +0.001338 0.001702 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000270 0.000402 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.000289 0.000404 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085600 +0.000029 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000020 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064000 +0.000564 0.000773 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126800 +0.000007 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000096 0.000133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075400 +0.001935 0.002344 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.561799 +0.000133 0.000217 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111400 +0.000033 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002235 0.003641 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.000198 0.000281 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.334999 +0.001257 0.002034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.388599 +0.000131 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000426 0.000583 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079200 +0.000011 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000264 0.000402 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000424 0.000740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117600 +0.000074 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000097 0.000137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000179 0.000265 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124800 +0.001156 0.001571 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103000 +0.000021 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000141 0.000199 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000152 0.000166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119800 +0.002636 0.003758 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.320399 +0.000019 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000063 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030600 +0.003112 0.005404 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.436599 +0.000021 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000022 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093000 +0.000067 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000008 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000005 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000021 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000024 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000037 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097200 +0.006606 0.010908 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123600 +0.000050 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000006 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000838 0.001130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108600 +0.000025 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095800 +0.000018 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000938 0.001496 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000012 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000104 0.000132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000920 0.001346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.221200 +0.000205 0.000273 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.473999 +0.000065 0.000108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.002351 0.004685 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097800 +0.000010 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000771 0.000777 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.162600 +0.000052 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100400 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142600 +0.000465 0.000546 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.425999 +0.000046 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000062 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000381 0.000610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087600 +0.000101 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037800 +0.000002 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000130 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.008743 0.012581 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.000298 0.000438 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078800 +0.000066 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034400 +0.000061 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.000088 0.000132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000179 0.000279 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.000551 0.000571 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.001120 0.001835 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.177800 +0.000012 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000026 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000018 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056000 +0.002707 0.003742 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103200 +0.001318 0.002090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120800 +0.000040 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000065 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000025 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000028 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000237 0.000359 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000131 0.000201 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.018081 0.026758 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.005615 0.008623 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000169 0.000251 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045200 +0.000006 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000020 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.001601 0.002288 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.000025 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000055 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003157 0.003671 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.152400 +0.000090 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.000317 0.000436 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.000055 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047000 +0.000172 0.000279 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000737 0.001016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.213600 +0.000055 0.000080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000205 0.000284 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000035 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000025 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000051 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.005178 0.007603 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000006 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002931 0.004019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.242800 +0.001814 0.002639 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110800 +0.000145 0.000172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127400 +0.000058 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000148 0.000177 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.145800 +0.000105 0.000183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000328 0.000585 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119000 +0.000033 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000026 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.001009 0.001435 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.002141 0.002693 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.337399 +0.000117 0.000160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.000012 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.008251 0.011860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.193800 +0.000889 0.001204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156000 +0.000148 0.000242 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115200 +0.000060 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076200 +0.002620 0.003084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.376799 +0.000211 0.000283 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125600 +0.000198 0.000291 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077800 +0.000069 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000164 0.000231 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107600 +0.000507 0.000769 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000099 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.001550 0.002111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000267 0.000356 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090200 +0.000496 0.000701 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000042 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000061 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032400 +0.000017 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.029700 0.043203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124200 +0.000006 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000115 0.000169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000078 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000833 0.001413 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.001645 0.002150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157800 +0.000018 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071200 +0.000043 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000204 0.000310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105200 +0.000018 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000145 0.000195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.000810 0.001022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.000012 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000031 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101200 +0.000012 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000107 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071800 +0.000434 0.000460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000008 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000113 0.000178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.000088 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084600 +0.000115 0.000175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153800 +0.000110 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112400 +0.000022 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000031 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000265 0.000412 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000051 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000094 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124000 +0.000053 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000297 0.000424 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069400 +0.000010 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000033 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000066 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000221 0.000336 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.004268 0.008574 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097800 +0.000052 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000009 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000175 0.000267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124000 +0.000027 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.000017 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.009675 0.013618 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058400 +0.000155 0.000225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000214 0.000267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091600 +0.000022 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000040 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000044 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.001900 0.002217 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.214400 +0.000099 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000029 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000013 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000050 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092600 +0.000015 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000042 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090800 +0.000012 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097600 +0.000052 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114600 +0.000186 0.000266 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068200 +0.000371 0.000594 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000155 0.000250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000019 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000024 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000622 0.000818 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.187000 +0.000162 0.000205 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000005 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.004023 0.005681 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095200 +0.001061 0.001494 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151400 +0.000915 0.001283 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101200 +0.000013 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000099 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076200 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000205 0.000264 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142400 +0.000099 0.000146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032800 +0.000094 0.000160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.000025 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000191 0.000280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096400 +0.000258 0.000339 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.205000 +0.000413 0.000635 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.000039 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000025 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000087 0.000124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000511 0.000733 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000031 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.000041 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.181200 +0.000021 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000741 0.000887 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.003036 0.004738 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150400 +0.000167 0.000256 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.001539 0.002044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128400 +0.000055 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047200 +0.000026 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.000399 0.000532 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071800 +0.003056 0.003975 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.263599 +0.000873 0.001040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161400 +0.000019 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000041 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001588 0.002176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.146800 +0.000032 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084000 +0.000044 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.001319 0.001430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.561799 +0.000236 0.000398 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.281399 +0.003601 0.005029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.243000 +0.000189 0.000264 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.000022 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000154 0.000196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.000399 0.000550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109000 +0.000017 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000082 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.000018 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000270 0.000356 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075400 +0.000012 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000019 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000086 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000749 0.000952 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102600 +0.000022 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000494 0.000796 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000146 0.000223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.001736 0.002895 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107000 +0.000087 0.000119 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000015 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000025 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001731 0.002531 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101400 +0.000726 0.001076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079400 +0.000010 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000047 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000123 0.000199 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047400 +0.000033 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000034 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068600 +0.001620 0.002625 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.001795 0.002584 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.367199 +0.000096 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071000 +0.000179 0.000267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090400 +0.000095 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099200 +0.000050 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000029 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000684 0.000968 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078000 +0.000065 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030800 +0.000331 0.000392 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.175400 +0.000249 0.000396 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000769 0.001187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046400 +0.006504 0.009511 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000439 0.000635 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.185600 +0.000168 0.000214 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062400 +0.000929 0.001518 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120000 +0.000034 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000039 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083000 +0.000033 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000545 0.000752 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095600 +0.000011 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000073 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075400 +0.000023 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.001342 0.002057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124400 +0.000486 0.000593 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.217200 +0.000051 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.001452 0.001693 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114200 +0.000115 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041400 +0.004274 0.007139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119600 +0.000028 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.009458 0.015655 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123400 +0.000181 0.000250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.000172 0.000231 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.000018 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000246 0.000304 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058400 +0.000291 0.000416 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000217 0.000260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125200 +0.000124 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150600 +0.000733 0.001212 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108600 +0.000061 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.000015 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000107 0.000141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059800 +0.000106 0.000130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113000 +0.000119 0.000196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.000008 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.002232 0.003287 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.001238 0.001453 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105000 +0.000126 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087200 +0.000088 0.000133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.000206 0.000281 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.260199 +0.000042 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000017 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.000984 0.001555 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087400 +0.000109 0.000165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000535 0.000810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.191200 +0.000027 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000073 0.000115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000041 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000082 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057400 +0.000073 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000116 0.000133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070800 +0.000217 0.000272 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076400 +0.000957 0.001235 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129200 +0.000072 0.000108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.001075 0.001352 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.174000 +0.002950 0.004195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103400 +0.000052 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000269 0.000356 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.159800 +0.000052 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000164 0.000193 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.194400 +0.000028 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000514 0.000778 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.000095 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102400 +0.000389 0.000558 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075200 +0.000687 0.001014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093200 +0.000050 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095800 +0.000125 0.000196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000018 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000405 0.000588 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081800 +0.000260 0.000388 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000754 0.000902 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132200 +0.000042 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000162 0.000216 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.000297 0.000318 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.508599 +0.000339 0.000448 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000135 0.000188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071400 +0.000302 0.000506 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150200 +0.000491 0.000596 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000875 0.001173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071200 +0.000067 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.179000 +0.000007 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000141 0.000177 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092800 +0.002196 0.002784 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.166600 +0.001031 0.001416 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114400 +0.002139 0.002891 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070600 +0.000121 0.000160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000195 0.000289 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.177600 +0.000175 0.000232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073400 +0.001055 0.001837 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078800 +0.000033 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000037 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001337 0.002402 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.590799 +0.002256 0.003249 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105400 +0.000044 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000040 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000059 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069400 +0.000040 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.149600 +0.001039 0.001228 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105400 +0.000033 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000754 0.001107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.312799 +0.000595 0.000801 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.670199 +0.000145 0.000198 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.004978 0.007549 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.252599 +0.002390 0.003750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000224 0.000347 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000506 0.000758 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.001025 0.001612 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.270599 +0.000017 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000013 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097600 +0.000028 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000111 0.000166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000062 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000920 0.001313 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129800 +0.000747 0.001133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052400 +0.000085 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000116 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000023 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036800 +0.002014 0.003657 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134400 +0.000453 0.000742 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000060 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.000206 0.000287 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046800 +0.000317 0.000463 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034000 +0.000087 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000268 0.000536 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.296799 +0.000257 0.000277 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000057 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072400 +0.000327 0.000393 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093400 +0.000009 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000210 0.000261 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.205000 +0.000204 0.000316 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076200 +0.000045 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033400 +0.000501 0.000653 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106800 +0.000037 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.000369 0.000453 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132400 +0.001327 0.001901 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073400 +0.000105 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000114 0.000155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087200 +0.000070 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081400 +0.000191 0.000260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127400 +0.000551 0.000895 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.003526 0.004970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.000089 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000011 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000025 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113800 +0.000029 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000025 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.001434 0.002192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062400 +0.000087 0.000119 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.000096 0.000132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072200 +0.000658 0.000975 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000025 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000061 0.000080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.002056 0.002916 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113600 +0.000028 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000029 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000092 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089200 +0.000098 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049200 +0.000105 0.000160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000018 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000359 0.000512 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.000115 0.000161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033400 +0.000085 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079200 +0.000023 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.003363 0.004556 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.511199 +0.000090 0.000187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000701 0.000946 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097400 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000087 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.000242 0.000339 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.000808 0.001268 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000443 0.000662 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129400 +0.004158 0.006095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077400 +0.001836 0.002830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.184200 +0.001547 0.002143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047400 +0.000459 0.000626 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.000053 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000238 0.000307 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000091 0.000127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000042 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.004154 0.005052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.294999 +0.000800 0.001269 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.572199 +0.000007 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000428 0.000573 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042400 +0.000017 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000052 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092600 +0.000025 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.000439 0.000640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077400 +0.001741 0.002220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.320799 +0.000041 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001146 0.001389 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.418199 +0.000098 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000205 0.000284 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099000 +0.000104 0.000154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.000023 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.000247 0.000308 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.728998 +0.000086 0.000108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.000021 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000035 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085800 +0.000025 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000025 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000146 0.000195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064000 +0.000011 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000217 0.000295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.225400 +0.001114 0.001605 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.244400 +0.000077 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000089 0.000115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038000 +0.000140 0.000178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123400 +0.000013 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002236 0.003003 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.404199 +0.000030 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.001624 0.003104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114000 +0.000113 0.000133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113600 +0.000412 0.000613 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071000 +0.000080 0.000114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000025 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100000 +0.000125 0.000192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000001 0.000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.212600 +0.000231 0.000426 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.263799 +0.000270 0.000379 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046800 +0.000037 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000063 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097000 +0.000009 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000443 0.000608 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058200 +0.000109 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157600 +0.000013 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151600 +0.000020 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.000124 0.000178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068600 +0.000743 0.000962 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.225200 +0.000066 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000113 0.000165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000158 0.000218 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000316 0.000469 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076000 +0.002127 0.003089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000460 0.000668 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046800 +0.000065 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000057 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090000 +0.000387 0.000470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.203400 +0.000012 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000005 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000131 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.000008 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000144 0.000223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000027 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151400 +0.000913 0.001219 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.001277 0.002027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075800 +0.000531 0.000676 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000023 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.004342 0.005862 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.306399 +0.002817 0.003782 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105000 +0.000887 0.001049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088600 +0.000022 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000022 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037000 +0.000212 0.000325 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030800 +0.000018 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000317 0.000419 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118400 +0.000100 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068800 +0.000016 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000267 0.000388 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000013 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000079 0.000124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000369 0.000523 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104200 +0.000620 0.000912 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000001 0.000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000032 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000875 0.001195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104400 +0.000043 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.002626 0.004054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088400 +0.000116 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108600 +0.000255 0.000359 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.000028 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000041 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091200 +0.000015 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074200 +0.000060 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081800 +0.000016 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000036 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000059 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093600 +0.000827 0.001157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.138400 +0.000019 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000049 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067800 +0.000243 0.000386 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069800 +0.000049 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000318 0.000415 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069000 +0.000162 0.000236 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.000977 0.001171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.213800 +0.000020 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000059 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000052 0.000080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083000 +0.000142 0.000175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075800 +0.000161 0.000248 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000054 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000063 0.000115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002965 0.004707 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000078 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.000077 0.000114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108800 +0.000043 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.000206 0.000334 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.000148 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.312199 +0.000104 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106600 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000431 0.000573 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.000198 0.000278 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000183 0.000278 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000033 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000031 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132200 +0.000047 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000112 0.000158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058200 +0.000239 0.000378 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.288199 +0.000033 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000004 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000020 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133800 +0.000070 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000062 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000033 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102600 +0.000538 0.000813 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130600 +0.000002 0.000003 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000006 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.016623 0.026744 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096000 +0.000091 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154600 +0.003124 0.004524 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084000 +0.000599 0.000726 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.388399 +0.000046 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153800 +0.000786 0.000871 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.167200 +0.000017 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058400 +0.002931 0.004768 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082000 +0.000043 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085400 +0.000592 0.000826 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.000157 0.000299 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.206600 +0.000336 0.000389 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000105 0.000161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071000 +0.000076 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.152800 +0.000172 0.000465 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.303599 +0.000097 0.000132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086400 +0.000031 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000024 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046000 +0.001158 0.001621 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108400 +0.000281 0.000387 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111800 +0.000941 0.001407 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069200 +0.002604 0.003216 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102600 +0.000176 0.000247 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072200 +0.000914 0.001335 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151400 +0.000272 0.000397 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085000 +0.000383 0.000555 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115000 +0.023829 0.037397 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.003104 0.004667 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059800 +0.000012 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000182 0.000271 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.000029 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.002748 0.003496 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.351799 +0.000907 0.001352 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.006773 0.009444 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043000 +0.000128 0.000190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151200 +0.000080 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077800 +0.000012 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000024 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000577 0.000752 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.138600 +0.000019 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000466 0.000653 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046400 +0.000082 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083000 +0.007999 0.012064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059000 +0.000268 0.000362 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000127 0.000165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083600 +0.001695 0.002427 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102200 +0.000052 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034400 +0.003763 0.004767 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.225200 +0.000020 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000337 0.000454 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154200 +0.000121 0.000177 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069600 +0.000148 0.000216 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000002 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001635 0.001960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.335199 +0.000030 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000498 0.000779 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126400 +0.000049 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045200 +0.000200 0.000276 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.005472 0.010637 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.541199 +0.000060 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000213 0.000317 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000070 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000129 0.000183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059000 +0.000381 0.000562 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.000553 0.000710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106600 +0.000031 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000156 0.000248 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000670 0.000814 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096800 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000274 0.000409 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090000 +0.000045 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000134 0.000186 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074000 +0.000683 0.000784 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155800 +0.000690 0.000947 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131600 +0.000140 0.000227 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.007086 0.009905 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.000020 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030800 +0.001362 0.002115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073600 +0.000058 0.000097 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.824998 +0.000045 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.000141 0.000217 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000001 0.000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105000 +0.001408 0.002335 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114200 +0.000115 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000004 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127600 +0.000449 0.000630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109400 +0.000812 0.001140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101600 +0.000026 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093800 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000017 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000181 0.000275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129800 +0.000073 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158400 +0.000015 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000012 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000025 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000282 0.000442 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.257599 +0.000003 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001350 0.001942 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000039 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032400 +0.002056 0.002615 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.300999 +0.000143 0.000193 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000004 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000115 0.000169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078200 +0.000101 0.000152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153200 +0.000030 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058400 +0.000037 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030400 +0.000048 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059800 +0.000046 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.000021 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000468 0.000612 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137000 +0.000012 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000091 0.000133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.000043 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000360 0.000503 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000017 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.000070 0.000102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000119 0.000206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139000 +0.000142 0.000185 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073400 +0.001479 0.002147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.000010 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001411 0.002060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065400 +0.000431 0.000582 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.002224 0.003699 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101200 +0.000964 0.001521 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.164800 +0.003567 0.004437 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130600 +0.000024 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000016 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000341 0.000493 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139000 +0.000012 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036400 +0.000415 0.000499 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064000 +0.002742 0.004113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.196600 +0.000073 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000056 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058200 +0.000070 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000049 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047400 +0.000035 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.574999 +0.000123 0.000190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000029 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000043 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000100 0.000129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000061 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108200 +0.000201 0.000258 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103400 +0.002337 0.002785 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.163800 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076200 +0.000089 0.000155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105600 +0.000649 0.001135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084400 +0.000372 0.000482 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000078 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000170 0.000231 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000553 0.000659 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105200 +0.000126 0.000175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000051 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124800 +0.000045 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.255199 +0.000432 0.000629 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038600 +0.000061 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075800 +0.001071 0.001270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000220 0.000360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030400 +0.000050 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066200 +0.000066 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.000045 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081600 +0.000661 0.000986 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000029 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000953 0.001368 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111400 +0.000176 0.000273 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095600 +0.000523 0.000811 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085000 +0.000311 0.000431 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083400 +0.000114 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072200 +0.000067 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.008342 0.011709 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.364199 +0.000548 0.001288 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092400 +0.000188 0.000246 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000052 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000753 0.001227 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102600 +0.000134 0.000217 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.160000 +0.003815 0.004860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.530799 +0.000073 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000059 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059800 +0.000094 0.000132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000027 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.000027 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.008872 0.011832 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.264799 +0.000030 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.004910 0.007839 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.147000 +0.004299 0.005648 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.214400 +0.000081 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000082 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000069 0.000097 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000017 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126800 +0.000064 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.217800 +0.000365 0.000490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000012 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.000066 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.357999 +0.000161 0.000166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.162600 +0.000108 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000052 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091600 +0.000265 0.000346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.000090 0.000125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087200 +0.001111 0.001444 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088200 +0.000100 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000068 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038600 +0.000033 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.000024 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086600 +0.000018 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000032 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000221 0.000336 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.000609 0.000776 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125600 +0.000343 0.000455 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088600 +0.000239 0.000325 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000037 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030400 +0.000568 0.000730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103200 +0.000415 0.000528 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072800 +0.000278 0.000425 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.000379 0.000510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090600 +0.000431 0.000626 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.000562 0.000849 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.005810 0.009651 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.172600 +0.000497 0.000694 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000317 0.000388 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.253999 +0.000016 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000094 0.000152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085600 +0.000153 0.000240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031400 +0.000043 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000008 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.324999 +0.000122 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092000 +0.000085 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000028 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103400 +0.005921 0.008497 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.258599 +0.000388 0.000518 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.001021 0.001345 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081400 +0.000809 0.001039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.171600 +0.008468 0.011765 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078200 +0.003191 0.003998 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096800 +0.000244 0.000341 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094600 +0.000046 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000881 0.001488 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.363999 +0.001131 0.001847 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.168600 +0.000016 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038600 +0.000441 0.000533 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117000 +0.000033 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000273 0.000349 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086600 +0.001180 0.001804 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.000161 0.000225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000015 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.000029 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000033 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000052 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038000 +0.000213 0.000317 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039400 +0.000009 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002759 0.003495 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086200 +0.000026 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000071 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087800 +0.000091 0.000129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.000047 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.184600 +0.003218 0.004257 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.228000 +0.000028 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000024 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001923 0.002232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.337599 +0.000040 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.000085 0.000115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000071 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.000164 0.000247 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155400 +0.000053 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.000156 0.000232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000144 0.000223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000058 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000233 0.000370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038600 +0.000148 0.000222 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.000067 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071400 +0.000379 0.000620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.000009 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000111 0.000155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000183 0.000231 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117400 +0.000008 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000497 0.000592 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074600 +0.000629 0.000911 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.001361 0.001953 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.361999 +0.000033 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000074 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000403 0.000491 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081800 +0.000281 0.000379 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125600 +0.000930 0.001393 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.159600 +0.000042 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.232000 +0.000205 0.000305 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133400 +0.000017 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.000969 0.001562 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090400 +0.005958 0.008865 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.390999 +0.000218 0.000273 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000008 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000225 0.000375 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122600 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000028 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.203400 +0.000035 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045200 +0.000024 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000326 0.000608 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000018 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000015 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000663 0.000929 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137000 +0.000280 0.000410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000259 0.000404 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067400 +0.001361 0.001621 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.274599 +0.000016 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.229200 +0.000286 0.000380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096800 +0.000031 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000736 0.000926 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.364799 +0.000124 0.000160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123600 +0.000584 0.000735 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.169600 +0.000171 0.000284 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000416 0.000537 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077000 +0.000023 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.000141 0.000183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032200 +0.000020 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000024 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000193 0.000280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000007 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000066 0.000102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000271 0.000403 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.000072 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000555 0.000851 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078000 +0.000026 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.000254 0.000326 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088800 +0.000891 0.000997 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.361999 +0.000018 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.315599 +0.000145 0.000201 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000248 0.000348 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074400 +0.000122 0.000239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.182600 +0.000120 0.000208 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.000039 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000840 0.001037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092200 +0.001433 0.001961 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090800 +0.000072 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.001443 0.001822 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125000 +0.000042 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000070 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000047 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000011 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.411199 +0.008018 0.011667 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.256199 +0.001909 0.002459 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.260199 +0.002415 0.003189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.172400 +0.000049 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000037 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.007148 0.010141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.246599 +0.000881 0.001384 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000270 0.000477 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.358599 +0.000023 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079000 +0.000009 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000537 0.000760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095200 +0.000302 0.000412 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.000041 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.000544 0.000876 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000021 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056000 +0.000005 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000070 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045200 +0.000046 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000107 0.000163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000963 0.001320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139400 +0.000282 0.000428 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.001535 0.002102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.162800 +0.005553 0.008440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105600 +0.000032 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.001099 0.001346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157600 +0.000483 0.000724 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.353199 +0.000088 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115200 +0.000036 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000218 0.000267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092000 +0.000451 0.000705 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000039 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.002024 0.002886 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091400 +0.000021 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002043 0.002997 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.000054 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044400 +0.000134 0.000180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.000066 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000059 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.149400 +0.000935 0.001346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079600 +0.000090 0.000102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109800 +0.000085 0.000126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.245399 +0.000038 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036400 +0.000091 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.004715 0.008199 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119200 +0.002487 0.002949 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052400 +0.081792 0.115897 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071400 +0.001142 0.001504 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.411599 +0.000375 0.000625 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082000 +0.000049 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065200 +0.000017 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.000369 0.000489 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000067 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.001348 0.001799 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.234000 +0.001704 0.002208 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097800 +0.000209 0.000309 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069000 +0.000073 0.000102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036000 +0.001541 0.001794 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.503199 +0.000724 0.001180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.296999 +0.000187 0.000240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000009 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000009 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000404 0.000537 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000074 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000054 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000075 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.000015 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058400 +0.001603 0.001951 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137400 +0.000183 0.000279 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110800 +0.000044 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082400 +0.000044 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003728 0.005167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133600 +0.000036 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000267 0.000333 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.404199 +0.001489 0.002678 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000026 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.000147 0.000217 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.000216 0.000316 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000987 0.002000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.146200 +0.000231 0.000296 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082800 +0.000039 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114200 +0.000186 0.000277 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.401399 +0.000052 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046400 +0.000015 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000056 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113200 +0.000144 0.000186 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074200 +0.000013 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000202 0.000234 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.001793 0.002723 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.276999 +0.000123 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000892 0.000972 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000096 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099600 +0.000042 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000464 0.000652 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.281999 +0.000124 0.000188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105400 +0.000115 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.002241 0.003371 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.374399 +0.000258 0.000393 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046800 +0.000146 0.000194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090000 +0.000281 0.000376 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111400 +0.000052 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000014 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000037 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070600 +0.000160 0.000211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156200 +0.000006 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000105 0.000204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.196800 +0.000072 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098200 +0.000408 0.000549 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080400 +0.000108 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076400 +0.000039 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000117 0.000157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088600 +0.000105 0.000129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000041 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000213 0.000289 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000358 0.000426 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074200 +0.000150 0.000190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.000020 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000743 0.000974 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.306199 +0.000096 0.000130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031400 +0.000113 0.000178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000075 0.000114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003335 0.005113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.146000 +0.000024 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000080 0.000132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000161 0.000222 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099600 +0.000005 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032800 +0.000031 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032400 +0.000633 0.000957 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.000006 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.022185 0.039104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118000 +0.000043 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000117 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102400 +0.000332 0.000468 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122400 +0.002781 0.003869 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.145400 +0.000039 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031400 +0.000223 0.000295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.144600 +0.000053 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.179800 +0.000019 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000489 0.000652 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101600 +0.000230 0.000256 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.173600 +0.000216 0.000308 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000051 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000045 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101400 +0.000737 0.000827 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.506399 +0.000474 0.000594 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000142 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107000 +0.000511 0.000688 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000263 0.000425 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000930 0.001329 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079200 +0.000942 0.001754 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.171000 +0.000051 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000005 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000111 0.000169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000044 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000037 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095600 +0.000613 0.000774 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.170600 +0.000006 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000441 0.000452 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000107 0.000136 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070600 +0.000038 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036400 +0.000053 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000050 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000250 0.000384 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.000127 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000024 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000030 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071800 +0.000035 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069400 +0.000958 0.001396 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089200 +0.000138 0.000229 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084800 +0.000335 0.000457 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103000 +0.000017 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000055 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108600 +0.000290 0.000422 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112000 +0.000038 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.253799 +0.001224 0.001721 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.231400 +0.000009 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000345 0.000438 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.185200 +0.000014 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000355 0.000514 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000091 0.000125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104400 +0.000047 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000060 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097000 +0.000024 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046800 +0.000364 0.000534 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000117 0.000160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036000 +0.000075 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000106 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108000 +0.000168 0.000264 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002193 0.003231 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087600 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000031 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000132 0.000187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000021 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.553799 +0.000991 0.001433 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.194400 +0.000028 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065400 +0.000026 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069000 +0.000039 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058400 +0.000015 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000027 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093400 +0.000069 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.000084 0.000126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000255 0.000286 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109000 +0.000202 0.000270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065200 +0.000323 0.000528 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097800 +0.004341 0.005997 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.171600 +0.000018 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086200 +0.000074 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137600 +0.000833 0.001217 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000079 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.000152 0.000242 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000135 0.000169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000056 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134400 +0.003106 0.004787 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.175800 +0.000016 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000114 0.000160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000023 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.002330 0.003157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115800 +0.000278 0.000399 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077400 +0.000462 0.000602 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.149400 +0.002372 0.003297 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.329599 +0.000052 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.036495 0.056392 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119200 +0.000411 0.000487 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.144400 +0.000186 0.000264 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000058 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000818 0.001094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.176400 +0.000045 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000082 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035200 +0.000444 0.000618 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000320 0.000464 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.257599 +0.000022 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047000 +0.000021 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000023 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000300 0.000461 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000038 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035400 +0.000160 0.000189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133800 +0.000004 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000140 0.000196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000922 0.001228 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.167200 +0.000032 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000984 0.001346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.181000 +0.002336 0.003197 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139800 +0.000997 0.001537 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081800 +0.000603 0.000777 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094200 +0.000200 0.000317 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000002 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131200 +0.000074 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.000151 0.000204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084400 +0.002915 0.003952 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.000022 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092000 +0.000178 0.000267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115000 +0.000317 0.000445 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.000025 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001545 0.002849 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000029 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089000 +0.000450 0.000733 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112200 +0.000069 0.000091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.537599 +0.000657 0.000967 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000236 0.000317 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092400 +0.000079 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035200 +0.000089 0.000123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.000342 0.000486 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000034 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.012535 0.018662 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.545799 +0.000035 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035200 +0.000106 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.312799 +0.000166 0.000190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097000 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000078 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000895 0.001202 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106600 +0.000289 0.000429 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.275999 +0.001227 0.001709 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154400 +0.000098 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122200 +0.000451 0.000523 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.325199 +0.000673 0.000919 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078200 +0.000074 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041400 +0.000041 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.000753 0.001172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.001181 0.001754 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069200 +0.000013 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000296 0.000355 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110800 +0.000301 0.000378 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114800 +0.000100 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115800 +0.000059 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.002170 0.002505 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.347799 +0.000350 0.000519 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.000192 0.000291 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.191600 +0.000473 0.000561 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.001251 0.001505 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.326399 +0.001626 0.002651 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110000 +0.000756 0.001162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.267199 +0.000276 0.000335 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097000 +0.041862 0.066764 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102800 +0.003017 0.004662 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076200 +0.000041 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.006067 0.010914 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.312599 +0.000016 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.193800 +0.000024 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033400 +0.000293 0.000409 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125600 +0.000201 0.000255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.181800 +0.000298 0.000456 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120800 +0.001699 0.002535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081800 +0.000033 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.001473 0.002038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000536 0.000693 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.396999 +0.001757 0.002604 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.286799 +0.000020 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000038 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000058 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034000 +0.000327 0.000400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.537599 +0.000363 0.000549 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151600 +0.000028 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034800 +0.000117 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.297999 +0.000561 0.000798 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128200 +0.000026 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.001905 0.002146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.338799 +0.000197 0.000291 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000037 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000022 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000016 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000050 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000061 0.000102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000309 0.000441 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071800 +0.000110 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097000 +0.000023 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000103 0.000132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047200 +0.001696 0.002316 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.276999 +0.000049 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085200 +0.000135 0.000195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.000111 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000090 0.000125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079800 +0.000095 0.000129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.167200 +0.000040 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.001358 0.002218 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099400 +0.000027 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000159 0.000224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125600 +0.000288 0.000425 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095000 +0.000391 0.000521 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066200 +0.000033 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000008 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000149 0.000235 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000587 0.000692 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104200 +0.001580 0.001866 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.233400 +0.000154 0.000244 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000057 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000138 0.000212 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000255 0.000352 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066200 +0.000007 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.182600 +0.000018 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000035 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037800 +0.000412 0.000635 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.478599 +0.000644 0.000968 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099400 +0.000142 0.000178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000017 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000068 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000064 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000014 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000090 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000658 0.000921 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.208600 +0.000140 0.000172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106000 +0.000031 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000033 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.000087 0.000097 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.159400 +0.000289 0.000630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.269599 +0.002363 0.003538 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059000 +0.000338 0.000424 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102200 +0.000340 0.000486 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.610599 +0.000160 0.000213 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072400 +0.000060 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000034 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036000 +0.000028 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.007019 0.010515 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071400 +0.000380 0.000428 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150800 +0.000040 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071400 +0.000171 0.000279 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000560 0.000707 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106000 +0.000032 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.003916 0.006385 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072800 +0.003671 0.004776 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.296799 +0.000103 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.001894 0.002729 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.445399 +0.000024 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000053 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046400 +0.001496 0.002267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092000 +0.000172 0.000236 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000161 0.000217 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.214200 +0.000011 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000312 0.000472 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.000526 0.000563 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.635999 +0.000020 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032000 +0.001962 0.002533 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102000 +0.000031 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000105 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099600 +0.000236 0.000322 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097800 +0.000092 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000345 0.000556 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.003444 0.005192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.000336 0.000619 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136800 +0.000021 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000247 0.000375 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000176 0.000272 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000369 0.000535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.000351 0.000518 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090800 +0.000456 0.000650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.257799 +0.000687 0.001037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000048 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.498599 +0.000100 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129400 +0.000327 0.000543 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.000410 0.000481 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.152400 +0.000904 0.001132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111200 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.000097 0.000149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000060 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000198 0.000280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000098 0.000206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142000 +0.000402 0.000548 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098600 +0.000300 0.000358 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.180200 +0.000015 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095000 +0.001721 0.001858 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.000032 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000024 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000038 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000096 0.000135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056000 +0.000026 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000194 0.000297 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000111 0.000263 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.146600 +0.000713 0.000855 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.180600 +0.000159 0.000203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.000092 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088200 +0.000053 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.001207 0.001716 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137200 +0.000792 0.001576 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077800 +0.000632 0.000896 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.264199 +0.000442 0.000717 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.178200 +0.000032 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000092 0.000132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000035 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001977 0.002304 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.252399 +0.000201 0.000267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.183600 +0.000165 0.000191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157000 +0.000025 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000143 0.000147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000022 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000024 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046000 +0.000052 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095000 +0.000258 0.000415 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083000 +0.000119 0.000178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.000033 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.000201 0.000284 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069800 +0.000020 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000021 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095800 +0.000270 0.000360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.173800 +0.001194 0.001488 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127400 +0.000035 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000870 0.001213 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.163600 +0.000066 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047200 +0.000038 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000009 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097600 +0.001776 0.002486 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.256999 +0.000421 0.000619 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.215400 +0.000272 0.000388 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000485 0.000676 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.000089 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107000 +0.000028 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.000046 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000039 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031800 +0.000070 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.000040 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.200800 +0.000650 0.000929 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.361199 +0.000629 0.000838 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091600 +0.000030 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.000292 0.000439 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000013 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000109 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065400 +0.000007 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000023 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000113 0.000179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059800 +0.000068 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000027 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000174 0.000228 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102200 +0.000116 0.000166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.000094 0.000127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000575 0.000705 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120600 +0.001035 0.001667 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137000 +0.001302 0.001804 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056000 +0.000003 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.001347 0.002042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056000 +0.000109 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000243 0.000367 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000091 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000449 0.000672 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000019 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073400 +0.000016 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000009 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001538 0.001974 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131200 +0.000196 0.000281 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.241400 +0.001300 0.001837 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097400 +0.000221 0.000308 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000042 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000148 0.000216 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031800 +0.000028 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000045 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000245 0.000254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000166 0.000265 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000043 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.001491 0.001786 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.339799 +0.000090 0.000114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100400 +0.003272 0.007442 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105800 +0.000002 0.000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000034 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000124 0.000166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071400 +0.004553 0.007490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.000584 0.000903 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106400 +0.000085 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000303 0.000398 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.221200 +0.000034 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000045 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.001001 0.001538 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000208 0.000417 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074000 +0.000190 0.000239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118000 +0.000031 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.001735 0.002775 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.245399 +0.000105 0.000157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039800 +0.000075 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.005183 0.008830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108600 +0.000115 0.000177 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000038 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.004364 0.008022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114400 +0.005664 0.010210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112800 +0.000120 0.000220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.001943 0.002204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112000 +0.000110 0.000179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079200 +0.000245 0.000392 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.397599 +0.000044 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.005408 0.006681 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107600 +0.000033 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000055 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.165400 +0.000015 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156200 +0.001001 0.001863 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083400 +0.000017 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000396 0.000471 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088200 +0.001772 0.002672 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.000667 0.000933 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067800 +0.000319 0.000420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.002311 0.003251 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.443199 +0.000417 0.000575 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127400 +0.000312 0.000496 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151200 +0.000024 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.000048 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.002514 0.005027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092200 +0.000030 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.191600 +0.000030 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000014 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000034 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056000 +0.000043 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041400 +0.000949 0.001249 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.214000 +0.000239 0.000386 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000290 0.000376 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.184000 +0.000067 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.001416 0.001951 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.270999 +0.000487 0.000720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078400 +0.000067 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000718 0.000833 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.393799 +0.000296 0.000411 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002202 0.003066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106400 +0.000033 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001525 0.002242 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.236000 +0.000009 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000020 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000341 0.000554 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000059 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044400 +0.000191 0.000301 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077200 +0.000017 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047800 +0.000011 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000264 0.000344 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096800 +0.011339 0.018764 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129200 +0.000039 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102600 +0.000050 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.000341 0.000531 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047200 +0.000013 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000065 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.000128 0.000180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121600 +0.000054 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077000 +0.000336 0.000639 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.002675 0.003417 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127200 +0.000021 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000926 0.001070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150000 +0.000265 0.000314 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.184800 +0.000946 0.001565 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131600 +0.000050 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000038 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.000161 0.000261 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.283999 +0.003992 0.004812 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.000474 0.000758 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076400 +0.000035 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000048 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000159 0.000220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000486 0.000728 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068800 +0.000060 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000002 0.000003 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.017309 0.025489 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079800 +0.000189 0.000256 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000067 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032800 +0.000004 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000026 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.001576 0.002090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108200 +0.001078 0.001510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.323399 +0.000006 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000198 0.000286 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000011 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000100 0.000144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000085 0.000108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095400 +0.000264 0.000435 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000165 0.000249 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063600 +0.000348 0.000412 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000024 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000114 0.000150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.000063 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.000708 0.001084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.000049 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.000335 0.000398 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.196600 +0.000056 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000209 0.000287 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057400 +0.000445 0.000484 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091000 +0.000020 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000177 0.000263 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115600 +0.000003 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000003 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000073 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089400 +0.000390 0.000459 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.529399 +0.000036 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135000 +0.000116 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032200 +0.000072 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000011 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.000011 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002171 0.002813 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.352399 +0.000043 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000809 0.001314 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.622199 +0.002482 0.003924 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100200 +0.000094 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127200 +0.000137 0.000180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056000 +0.000179 0.000218 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101200 +0.000392 0.000580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132400 +0.000024 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124200 +0.000045 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000128 0.000183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.176800 +0.000022 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000040 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000019 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000787 0.001267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.147800 +0.001007 0.001372 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.304199 +0.000027 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068000 +0.000050 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.001088 0.001580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106600 +0.000139 0.000178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.000264 0.000365 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000034 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059000 +0.000156 0.000215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087000 +0.000142 0.000210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150600 +0.000056 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032800 +0.000093 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000020 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000051 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076800 +0.000193 0.000298 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000179 0.000285 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.209200 +0.000096 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124800 +0.000070 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.000522 0.000742 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086200 +0.000314 0.000476 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.000892 0.001342 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.005097 0.005954 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.291799 +0.000150 0.000224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000311 0.000373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131600 +0.000032 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.004058 0.006131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064000 +0.000032 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000006 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000093 0.000129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.000049 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032800 +0.000878 0.001081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.211000 +0.000289 0.000318 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.173800 +0.000913 0.001361 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.000026 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000012 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000044 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036400 +0.000012 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000009 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.003059 0.004336 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.409999 +0.000147 0.000212 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.315399 +0.000009 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000033 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131200 +0.000027 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.000142 0.000201 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000198 0.000308 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.000026 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000073 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.002053 0.002791 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.000173 0.000250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.000271 0.000306 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.181200 +0.000041 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103600 +0.000103 0.000137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083200 +0.000338 0.000476 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.000026 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043000 +0.000003 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000080 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.238400 +0.000127 0.000194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000048 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000230 0.000375 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124600 +0.000024 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000237 0.000388 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000063 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131000 +0.001222 0.001746 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096200 +0.000126 0.000179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000129 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037400 +0.001140 0.002255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074600 +0.000099 0.000155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000026 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.311199 +0.000301 0.000485 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.264399 +0.000138 0.000172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079600 +0.000489 0.000714 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000117 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.000794 0.001035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116200 +0.000912 0.001146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.246399 +0.000177 0.000272 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088000 +0.000052 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044400 +0.001104 0.001384 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101400 +0.000056 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000150 0.000231 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.001399 0.001729 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.369199 +0.000013 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.000021 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000001 0.000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135000 +0.001811 0.002650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.187200 +0.000031 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031800 +0.000049 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000124 0.000190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094400 +0.000453 0.000654 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.000042 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087600 +0.000022 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000184 0.000234 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.000118 0.000175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038000 +0.000040 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000093 0.000130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000322 0.000483 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067800 +0.000024 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000192 0.000249 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096800 +0.000029 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081800 +0.000275 0.000384 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047000 +0.000235 0.000327 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.171600 +0.000087 0.000125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.000563 0.000668 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086800 +0.000066 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057400 +0.000461 0.000735 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081200 +0.002606 0.003807 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.000294 0.000386 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137200 +0.000221 0.000303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.169200 +0.000050 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093800 +0.000025 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.002508 0.003197 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.272399 +0.000002 0.000003 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000861 0.001259 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105000 +0.000155 0.000204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059000 +0.000112 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047400 +0.000006 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000063 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142000 +0.002438 0.004457 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104200 +0.000025 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.188600 +0.000033 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000603 0.000624 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131200 +0.009508 0.013869 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.215600 +0.007394 0.012654 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.265399 +0.000638 0.000830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123200 +0.000199 0.000262 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158000 +0.000908 0.001326 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086800 +0.000028 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090800 +0.001119 0.001725 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115600 +0.000140 0.000193 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093800 +0.000039 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000201 0.000269 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000058 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000050 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069200 +0.001350 0.001564 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.242600 +0.000190 0.000273 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.000029 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000087 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116800 +0.000023 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000039 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000020 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000442 0.000632 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.000015 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000783 0.001068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110600 +0.000178 0.000251 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.506599 +0.000012 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000453 0.000545 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092400 +0.001028 0.001675 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.179200 +0.000058 0.000091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.000486 0.000626 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130200 +0.000118 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065200 +0.006800 0.010519 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090400 +0.000123 0.000190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065200 +0.000774 0.000906 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092200 +0.000299 0.000455 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000143 0.000224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107200 +0.000006 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000016 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000273 0.000410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115600 +0.000114 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125400 +0.000308 0.000436 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.000184 0.000229 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154800 +0.007542 0.009358 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.217400 +0.000078 0.000123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000083 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123600 +0.000184 0.000317 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.249999 +0.000341 0.000491 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086800 +0.000007 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000110 0.000155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038600 +0.000553 0.000672 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109000 +0.000065 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046400 +0.000005 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.001614 0.002154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123200 +0.000043 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000521 0.000802 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.233200 +0.000340 0.000475 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151000 +0.000014 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000192 0.000261 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000071 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000080 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074400 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000512 0.000643 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089800 +0.000117 0.000172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131200 +0.000514 0.000714 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068600 +0.000043 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085800 +0.000577 0.000724 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157000 +0.000133 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120800 +0.000013 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000541 0.000721 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.165000 +0.000176 0.000251 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000782 0.001129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.000011 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.009751 0.013741 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107600 +0.000037 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.004638 0.006509 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.632799 +0.000143 0.000320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.168600 +0.000354 0.000530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067800 +0.000132 0.000182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106400 +0.000571 0.000788 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.000038 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.000267 0.000428 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.276599 +0.000345 0.000347 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000521 0.000771 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046000 +0.000505 0.000889 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.355399 +0.003675 0.004235 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.189400 +0.000400 0.000518 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088400 +0.001290 0.001904 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154600 +0.000112 0.000147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.000035 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073200 +0.000013 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000119 0.000166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000016 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000049 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.000075 0.000102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115400 +0.000011 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.646599 +0.000289 0.000468 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032000 +0.000454 0.000666 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.180200 +0.002785 0.004180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081600 +0.000179 0.000238 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000677 0.000991 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058200 +0.000158 0.000232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.000017 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000068 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032800 +0.000686 0.000846 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.176000 +0.000035 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096200 +0.000024 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000130 0.000186 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.001240 0.001766 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068000 +0.001614 0.002317 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000038 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.000054 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000140 0.000178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130600 +0.000386 0.000464 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136400 +0.000017 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097600 +0.000050 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000557 0.000783 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000026 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066200 +0.000120 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126000 +0.000013 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000032 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001088 0.001374 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121200 +0.000031 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000261 0.000415 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128400 +0.000566 0.000761 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129000 +0.001779 0.002933 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130800 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000220 0.000311 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000426 0.000497 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150600 +0.000393 0.000516 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102600 +0.000022 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000022 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000161 0.000225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000830 0.000967 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.193000 +0.000342 0.000353 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.163200 +0.000067 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000019 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038600 +0.000557 0.000802 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.252199 +0.000226 0.000249 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.171000 +0.000012 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049200 +0.000043 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.000054 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091400 +0.000125 0.000193 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119000 +0.000087 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000099 0.000165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.182800 +0.001175 0.001712 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074800 +0.000012 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000124 0.000162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.001432 0.001959 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104400 +0.000004 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000165 0.000208 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091800 +0.000270 0.000387 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076200 +0.000991 0.001373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080400 +0.000303 0.000400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089800 +0.000591 0.000908 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044400 +0.000105 0.000174 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039800 +0.000030 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000116 0.000150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123400 +0.000046 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000678 0.001075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139800 +0.000092 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046800 +0.004469 0.006978 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.000595 0.000845 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093600 +0.000162 0.000232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000055 0.000080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000025 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000033 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.002892 0.003748 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111000 +0.000025 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000803 0.000814 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110000 +0.000011 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115000 +0.000043 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000782 0.001065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079200 +0.000170 0.000214 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.000237 0.000306 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.004724 0.007012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.254599 +0.000008 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000463 0.000598 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.210200 +0.000003 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000264 0.000409 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000112 0.000135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000056 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046400 +0.000282 0.000333 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131000 +0.009203 0.014519 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092800 +0.000327 0.000390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.138000 +0.000224 0.000270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082000 +0.001210 0.001478 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103000 +0.000079 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000360 0.000543 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059800 +0.000019 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031800 +0.001370 0.001538 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.172800 +0.000412 0.000505 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.369599 +0.000149 0.000222 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000058 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.000043 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087000 +0.000089 0.000115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102200 +0.000210 0.000311 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034400 +0.002250 0.002638 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.149800 +0.000128 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000157 0.000165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000096 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.000145 0.000155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000347 0.000410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105200 +0.000120 0.000180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000405 0.000517 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103200 +0.000474 0.000631 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000227 0.000348 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079800 +0.000043 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000087 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.000128 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076800 +0.000010 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069200 +0.000018 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000086 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128000 +0.000111 0.000158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093800 +0.000112 0.000147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.000008 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000729 0.001126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.140800 +0.000061 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069600 +0.000132 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081400 +0.000031 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000112 0.000190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.000080 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000518 0.000610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094800 +0.000046 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000176 0.000238 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068200 +0.000207 0.000256 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068600 +0.002221 0.003163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128200 +0.000061 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000041 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.000113 0.000174 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106600 +0.000368 0.000500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132200 +0.000099 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000712 0.001013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.146400 +0.000064 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.008465 0.014004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.000154 0.000211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000094 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000261 0.000390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000329 0.000522 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000092 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.000563 0.000787 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156200 +0.000374 0.000400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.394799 +0.006693 0.011322 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116600 +0.000421 0.000660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042400 +0.000015 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.005921 0.008788 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000345 0.000512 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.002268 0.002898 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.348199 +0.000039 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038000 +0.000125 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123600 +0.000688 0.001065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000146 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100400 +0.000001 0.000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000021 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000074 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000011 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.000018 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000306 0.000458 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.001321 0.001650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.430999 +0.000009 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000172 0.000255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071000 +0.001439 0.001989 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088400 +0.000562 0.000768 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116200 +0.000336 0.000527 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088000 +0.003534 0.006270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103600 +0.000039 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.000103 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.000572 0.000750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123200 +0.000101 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068000 +0.000042 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095800 +0.000210 0.000345 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.001035 0.001502 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124800 +0.000146 0.000215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108400 +0.000581 0.000757 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.204800 +0.020444 0.031737 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121400 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091200 +0.000015 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000233 0.000354 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000007 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000028 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.002025 0.003018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.000029 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.000010 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000021 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000249 0.000312 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.265599 +0.000073 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092200 +0.000031 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135800 +0.000016 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073200 +0.000141 0.000189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.000017 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003266 0.005020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.271599 +0.000174 0.000225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074200 +0.000601 0.000815 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000164 0.000238 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.338999 +0.000557 0.000871 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154000 +0.000045 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133200 +0.000374 0.000485 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082200 +0.000015 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000121 0.000157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.002252 0.003428 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.499799 +0.000056 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000968 0.001422 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069600 +0.001855 0.003078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058200 +0.000330 0.000508 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000099 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.615346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.299399 +0.000028 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000140 0.000225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000094 0.000119 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073400 +0.000432 0.000657 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000025 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.000050 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000183 0.000251 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065200 +0.000369 0.000509 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000927 0.001495 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000099 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000054 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067400 +0.000427 0.000710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000015 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000726 0.001167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000990 0.001926 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151600 +0.000036 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000020 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.002474 0.003553 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084600 +0.000015 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000417 0.000461 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.289399 +0.000034 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000012 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000667 0.001022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000005 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000583 0.000845 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131400 +0.000007 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.002271 0.003386 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136400 +0.000020 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.001239 0.002381 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.337799 +0.000017 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000036 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124000 +0.000007 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000014 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000037 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000147 0.000207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.000156 0.000226 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000027 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066200 +0.002885 0.003723 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150000 +0.000070 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000821 0.001236 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.301999 +0.002420 0.003413 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.254799 +0.001462 0.002604 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.410599 +0.000251 0.000381 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000086 0.000124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046800 +0.002204 0.004291 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142800 +0.000648 0.000710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109600 +0.000025 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000199 0.000274 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069200 +0.000021 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.000486 0.000707 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069000 +0.000009 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000255 0.000289 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.276599 +0.000060 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.000243 0.000369 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000040 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153200 +0.000057 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121200 +0.000209 0.000294 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.000023 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000102 0.000178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081400 +0.000332 0.000398 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.172000 +0.000142 0.000201 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.244199 +0.000029 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000113 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000002 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.001467 0.002642 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156000 +0.000054 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000400 0.000586 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124400 +0.000158 0.000253 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000085 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080200 +0.000212 0.000283 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058200 +0.000765 0.001007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.209400 +0.000035 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000022 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000051 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000033 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000121 0.000181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039800 +0.000044 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035400 +0.000008 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000274 0.000412 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.000094 0.000119 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071200 +0.000357 0.000527 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000474 0.000660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000091 0.000123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000065 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000105 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000032 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000032 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078800 +0.000159 0.000274 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072200 +0.000161 0.000225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047400 +0.000268 0.000399 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079600 +0.000081 0.000147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069400 +0.000043 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000059 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000369 0.000561 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.174800 +0.000452 0.000600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073600 +0.000028 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000039 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.164200 +0.000353 0.000504 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085800 +0.000372 0.000568 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079200 +0.000040 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078600 +0.003088 0.005023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093200 +0.000056 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000256 0.000358 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000067 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000037 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069800 +0.000272 0.000405 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.271399 +0.000618 0.000806 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.191600 +0.000067 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000053 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000403 0.000610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071000 +0.000019 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000224 0.000276 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057400 +0.000408 0.000480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143400 +0.000046 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096400 +0.000225 0.000336 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000072 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000113 0.000157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.000138 0.000158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133800 +0.000106 0.000150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083600 +0.000219 0.000306 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000100 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089200 +0.000038 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000494 0.000688 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000004 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000003 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000635 0.000859 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104800 +0.000115 0.000163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000723 0.001181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072200 +0.000041 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074800 +0.000512 0.000612 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068200 +0.000330 0.000411 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124400 +0.000365 0.000471 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.000202 0.000250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136800 +0.000181 0.000264 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068200 +0.000013 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000035 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058200 +0.000245 0.000348 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000104 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000175 0.000231 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000705 0.000985 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094200 +0.000029 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000078 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.000208 0.000291 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000139 0.000195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.000013 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000036 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070600 +0.000096 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.000077 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.000119 0.000185 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.000018 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000435 0.000559 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090200 +0.000555 0.000903 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.000415 0.000540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135800 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000253 0.000279 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098600 +0.000484 0.000599 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.167600 +0.000041 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081800 +0.000075 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000011 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000551 0.000899 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117800 +0.000036 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039400 +0.002261 0.003197 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083600 +0.000028 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000377 0.000546 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032400 +0.000109 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000093 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000127 0.000185 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098200 +0.000748 0.001000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132200 +0.000414 0.000619 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131800 +0.000080 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000039 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000026 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000587 0.000746 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000146 0.000194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101000 +0.005326 0.006941 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083200 +0.001282 0.001675 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.178400 +0.000716 0.001215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120000 +0.000237 0.000377 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.005575 0.008890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101800 +0.000007 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000383 0.000444 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.332799 +0.000967 0.001363 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.221200 +0.000420 0.000520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118800 +0.000362 0.000532 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.000033 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098400 +0.000011 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000010 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000299 0.000419 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000055 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000035 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000055 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000164 0.000186 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119600 +0.000172 0.000301 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082400 +0.000018 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000132 0.000209 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000112 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000017 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.000190 0.000268 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045200 +0.000773 0.001043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.203600 +0.000004 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000031 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113400 +0.000226 0.000320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083600 +0.000016 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000643 0.000723 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.502599 +0.000038 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064000 +0.001851 0.002227 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.217200 +0.000010 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000156 0.000244 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075800 +0.000036 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000391 0.000608 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.000055 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000050 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030200 +0.000293 0.000373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.427199 +0.000043 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082200 +0.000320 0.000363 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.509399 +0.000027 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000386 0.000523 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087800 +0.000951 0.001532 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.167400 +0.000003 0.000003 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000033 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.607199 +0.000052 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.001048 0.001488 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133000 +0.000370 0.000486 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099800 +0.000114 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041400 +0.024457 0.040718 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086000 +0.000135 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000042 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046800 +0.001723 0.002081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.000920 0.001343 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072400 +0.000895 0.001255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.000097 0.000119 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.001776 0.002236 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.680199 +0.000054 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.207600 +0.000105 0.000149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000002 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000016 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000232 0.000335 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.000171 0.000226 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.290199 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000368 0.000523 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.204000 +0.000036 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.000020 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000614 0.000859 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.266799 +0.000063 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.000749 0.001072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.000124 0.000183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083600 +0.000051 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.002903 0.004098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.285799 +0.000771 0.000943 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115800 +0.001763 0.002528 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111200 +0.000477 0.000703 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000136 0.000203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.006222 0.010314 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.419599 +0.000214 0.000320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082400 +0.000315 0.000408 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097400 +0.000326 0.000423 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098200 +0.000150 0.000204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.000582 0.000724 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.174200 +0.000007 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000014 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.000094 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.000151 0.000227 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000528 0.000711 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099200 +0.000022 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002877 0.003310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.138400 +0.000475 0.000650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.213200 +0.001252 0.001660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154800 +0.000005 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000083 0.000124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.000049 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000019 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.015976 0.024484 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083200 +0.000361 0.000497 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093600 +0.002854 0.004310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.280999 +0.000035 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.004636 0.007064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.176400 +0.000063 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000008 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134200 +0.000283 0.000445 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000014 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000090 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000197 0.000284 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.002939 0.004255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083000 +0.000070 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000621 0.000808 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.247199 +0.000024 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000764 0.001066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090000 +0.000168 0.000237 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.183000 +0.000012 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000489 0.000596 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086800 +0.000020 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000025 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.704199 +0.000006 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.008308 0.012884 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000006 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000682 0.000978 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083000 +0.000050 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124400 +0.000045 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000051 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.000020 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000025 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000390 0.000498 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107200 +0.000037 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081800 +0.000110 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084200 +0.000143 0.000193 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000719 0.001048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084000 +0.000797 0.001085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154200 +0.000110 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000278 0.000391 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116800 +0.000009 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.000044 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115000 +0.001084 0.001429 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.179800 +0.000018 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000160 0.000221 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000015 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126000 +0.000085 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074000 +0.000117 0.000147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107600 +0.001396 0.002050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.351399 +0.000288 0.000321 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126400 +0.000575 0.000666 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.164000 +0.000032 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075200 +0.000177 0.000233 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086200 +0.000135 0.000241 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.230000 +0.000903 0.001264 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059800 +0.000753 0.001090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.175600 +0.000085 0.000124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000384 0.000498 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.263199 +0.001782 0.002480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114200 +0.000021 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000048 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000042 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000021 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000140 0.000216 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.000115 0.000179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.002089 0.002922 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.214800 +0.000899 0.001307 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000048 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.000631 0.000797 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.000061 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035200 +0.000096 0.000130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069000 +0.000612 0.000940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.000168 0.000232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.000152 0.000227 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059800 +0.016597 0.030268 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095400 +0.000019 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000020 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000732 0.001074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.164000 +0.000046 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000126 0.000202 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.003508 0.006358 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097200 +0.000009 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000110 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.000033 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000051 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047800 +0.000470 0.000672 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073600 +0.000051 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.331199 +0.000027 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000035 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000034 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000227 0.000295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035400 +0.000021 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000029 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101800 +0.000014 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000225 0.000297 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136400 +0.000399 0.000538 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100400 +0.000122 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000123 0.000149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113800 +0.000074 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069800 +0.000393 0.000628 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000228 0.000301 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087400 +0.001496 0.002466 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062400 +0.002334 0.003209 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086800 +0.000032 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000238 0.000350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107200 +0.000065 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000016 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000205 0.000267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069200 +0.000001 0.000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000044 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000105 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000473 0.000747 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037400 +0.000171 0.000260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.000124 0.000198 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000051 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059000 +0.000021 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000169 0.000202 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133800 +0.000063 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131400 +0.002158 0.002660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142000 +0.000545 0.000669 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.340199 +0.000096 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000038 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000032 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071000 +0.000055 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000458 0.000607 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069400 +0.000350 0.000450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153400 +0.009783 0.012718 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105800 +0.000137 0.000205 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000037 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000015 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000035 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000115 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.168400 +0.000305 0.000447 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000017 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000005 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000126 0.000179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037400 +0.000150 0.000226 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000051 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.000010 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.000040 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000022 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.140000 +0.000130 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.186200 +0.000037 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000038 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037400 +0.000082 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063600 +0.000124 0.000163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.000281 0.000401 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000228 0.000337 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087200 +0.000007 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000050 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041400 +0.001082 0.001255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.163200 +0.000007 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000216 0.000281 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.494399 +0.000396 0.000558 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075600 +0.000716 0.001231 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.152400 +0.000197 0.000269 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000636 0.000811 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092600 +0.000023 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000841 0.001120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.175200 +0.000130 0.000203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.002094 0.002809 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063600 +0.000110 0.000194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120000 +0.000076 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107600 +0.000026 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.007854 0.011744 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101800 +0.000463 0.000675 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087800 +0.000335 0.000502 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071000 +0.000238 0.000377 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000943 0.001464 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000035 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000711 0.001105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.000034 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.003056 0.004292 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.211200 +0.000871 0.001087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.000106 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000645 0.000809 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.144200 +0.000013 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075800 +0.000022 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043000 +0.000150 0.000240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083000 +0.000347 0.000490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.000027 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000019 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.000017 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000160 0.000233 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076000 +0.000019 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000545 0.000778 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.148600 +0.000173 0.000225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.207600 +0.000161 0.000214 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.000082 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000004 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000344 0.000486 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000366 0.000463 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121000 +0.000331 0.000432 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092800 +0.000019 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000655 0.000927 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058400 +0.000455 0.000671 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.001019 0.001510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.001855 0.002679 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161600 +0.000090 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071000 +0.000633 0.000956 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.000007 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000020 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000746 0.001042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.183000 +0.000102 0.000152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095400 +0.002740 0.003448 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.411599 +0.000060 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000107 0.000146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000095 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000243 0.000326 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.001375 0.001749 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.159800 +0.000034 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002329 0.003288 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099200 +0.000172 0.000209 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107400 +0.001756 0.002775 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.001162 0.001489 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.274799 +0.000153 0.000195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135400 +0.000185 0.000255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034400 +0.000018 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035200 +0.001663 0.002191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.331399 +0.000011 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.000082 0.000114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000017 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000181 0.000254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116600 +0.003522 0.004830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.284399 +0.000063 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125000 +0.000138 0.000205 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.000015 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000054 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103600 +0.000026 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.000024 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084000 +0.000571 0.000830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000189 0.000217 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.382999 +0.001072 0.001886 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073200 +0.000112 0.000170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000040 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.000034 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000044 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078400 +0.000017 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001080 0.001393 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057400 +0.000008 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000042 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.756598 +0.000280 0.000362 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072400 +0.000970 0.001474 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.145200 +0.000026 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000397 0.000588 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067400 +0.000235 0.000334 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123400 +0.000023 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002273 0.002878 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.252799 +0.000197 0.000252 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143800 +0.000017 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.000205 0.000310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153200 +0.000426 0.000578 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104800 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.058721 0.085615 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089800 +0.000069 0.000124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.000006 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.009685 0.011360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067400 +0.000084 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099200 +0.000022 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000057 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.006257 0.009785 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.207200 +0.000479 0.000536 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111600 +0.000012 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.353199 +0.032257 0.058499 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071200 +0.000295 0.000473 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.000334 0.000460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.163400 +0.000458 0.000679 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.000259 0.000343 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.181000 +0.000053 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000724 0.001041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076800 +0.000060 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.008471 0.011643 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.001832 0.002173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.310399 +0.000296 0.000382 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.260799 +0.000043 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000620 0.000917 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000866 0.001305 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.185200 +0.000022 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000141 0.000199 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122600 +0.000235 0.000308 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.001128 0.001767 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151400 +0.002212 0.004742 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.537199 +0.000100 0.000155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046000 +0.000166 0.000242 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069400 +0.000037 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.000961 0.001155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095400 +0.000326 0.000411 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.197800 +0.001507 0.002071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067800 +0.001423 0.001715 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113000 +0.000103 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.000051 0.000086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000945 0.001212 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099600 +0.000050 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.000042 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000154 0.000300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090800 +0.000181 0.000249 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000686 0.000843 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.190800 +0.000018 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000062 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034800 +0.000020 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.181800 +0.001997 0.002864 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078000 +0.000038 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000195 0.000273 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.000190 0.000249 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081600 +0.000006 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000286 0.000535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.226800 +0.000336 0.000534 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000360 0.000524 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.001871 0.002258 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.218000 +0.000042 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081200 +0.001750 0.002998 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.415799 +0.000339 0.000399 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103200 +0.000008 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.237600 +0.010547 0.012402 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.239400 +0.000891 0.001481 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103000 +0.000013 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030600 +0.000031 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000074 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137000 +0.000267 0.000348 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093600 +0.000759 0.000988 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059800 +0.000328 0.000458 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093200 +0.000042 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056000 +0.000092 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000439 0.000630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.240800 +0.000011 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000039 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000083 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000209 0.000300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000018 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111600 +0.000017 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000036 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000061 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000368 0.000555 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000184 0.000279 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034800 +0.000526 0.000911 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105000 +0.000135 0.000155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.679599 +0.000016 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000268 0.000363 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.165800 +0.000205 0.000274 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000411 0.000500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.744798 +0.000060 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000099 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041400 +0.000241 0.000306 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.265799 +0.000051 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031400 +0.000034 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.000487 0.000626 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.000021 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.005115 0.008124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126000 +0.001507 0.001777 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000611 0.000963 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000033 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.000648 0.000962 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.000017 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121800 +0.000047 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068000 +0.000021 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.187600 +0.001493 0.002136 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.144000 +0.004458 0.005217 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104000 +0.003533 0.005288 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072200 +0.000035 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049200 +0.000052 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.158200 +0.000045 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047200 +0.000135 0.000186 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.188000 +0.000117 0.000166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047200 +0.000037 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092000 +0.000007 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.274999 +0.000015 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000116 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086600 +0.002128 0.002925 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081400 +0.000143 0.000190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.000976 0.001509 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085400 +0.000726 0.000822 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.415599 +0.000237 0.000347 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000007 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000405 0.000713 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.203600 +0.000491 0.000682 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.343599 +0.000073 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095600 +0.000072 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080200 +0.000506 0.000513 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000085 0.000133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.002564 0.003669 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.289999 +0.000023 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099600 +0.000015 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.026355 0.038257 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137600 +0.000145 0.000225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131000 +0.000068 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123000 +0.000027 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000222 0.000362 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.189200 +0.000016 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000262 0.000353 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.265999 +0.000008 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001137 0.002083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081600 +0.000106 0.000146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000019 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001488 0.002209 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069400 +0.000044 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.001269 0.001532 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.508399 +0.001159 0.001837 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000133 0.000146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.284599 +0.001900 0.002953 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.160000 +0.001080 0.001447 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.392599 +0.000022 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000041 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075200 +0.000249 0.000346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087200 +0.000925 0.001370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071200 +0.000013 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000279 0.000351 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112000 +0.000797 0.001252 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000326 0.000497 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.139400 +0.000053 0.000091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000015 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000017 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000196 0.000251 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071000 +0.000085 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039800 +0.000067 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000849 0.001176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118600 +0.000366 0.000435 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.432199 +0.000222 0.000319 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086000 +0.000013 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000071 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000126 0.000146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097400 +0.000127 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094000 +0.000165 0.000230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041400 +0.000561 0.000636 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.307199 +0.000051 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092200 +0.000140 0.000215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075200 +0.000116 0.000187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033600 +0.000057 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037800 +0.000907 0.001677 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126200 +0.000353 0.000414 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.269799 +0.000557 0.000801 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000691 0.001029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000007 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000316 0.000449 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090800 +0.000020 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000056 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.000048 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000100 0.000119 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000067 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.223000 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000029 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000605 0.000862 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.831598 +0.000209 0.000300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000284 0.000421 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078200 +0.000021 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.000025 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059000 +0.000416 0.000607 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.000056 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000128 0.000186 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000101 0.000149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000416 0.000622 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000009 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000004 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000307 0.000394 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000121 0.000185 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.000037 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0 0.000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000043 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.012104 0.023565 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131600 +0.000096 0.000127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.270999 +0.014294 0.022053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075200 +0.000228 0.000284 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070800 +0.000027 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.001332 0.001715 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118000 +0.000178 0.000240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042000 +0.000311 0.000467 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107000 +0.000028 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035200 +0.000076 0.000115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003399 0.004776 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.152200 +0.000253 0.000374 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085600 +0.002186 0.003484 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.010976 0.018254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.214200 +0.000187 0.000297 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.000039 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001349 0.001943 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097800 +0.000106 0.000127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135000 +0.000225 0.000261 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123000 +0.000023 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000092 0.000130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096600 +0.021856 0.037491 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095000 +0.000023 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000304 0.000363 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096800 +0.000026 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000031 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070800 +0.000072 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077800 +0.000098 0.000160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000422 0.000629 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.168600 +0.000070 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000090 0.000123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088600 +0.003526 0.005096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.252999 +0.000460 0.000582 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077400 +0.000033 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001103 0.001553 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.246399 +0.000338 0.000423 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150800 +0.000697 0.001057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120000 +0.000403 0.000558 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083400 +0.000303 0.000410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132000 +0.001616 0.002112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079400 +0.000018 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002203 0.002769 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.455199 +0.000022 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000212 0.000316 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000017 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.312599 +0.000100 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000128 0.000202 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000061 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.419199 +0.001149 0.001330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130200 +0.000265 0.000448 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073200 +0.000093 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000030 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097800 +0.000006 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.004341 0.005292 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.295399 +0.004518 0.007433 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083200 +0.000170 0.000251 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.279599 +0.000143 0.000229 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000350 0.000507 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059000 +0.000064 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000019 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000028 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076200 +0.000371 0.000421 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.174200 +0.000211 0.000270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000192 0.000270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150800 +0.000093 0.000137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.001080 0.001682 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.163400 +0.000161 0.000220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039400 +0.000063 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.000286 0.000408 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000009 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000019 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000209 0.000288 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.000044 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000045 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078800 +0.000626 0.000949 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161600 +0.000033 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000517 0.000756 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066000 +0.000016 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085600 +0.000047 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077800 +0.000063 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000068 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030200 +0.000014 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000390 0.000505 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.250999 +0.000903 0.001295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123800 +0.002327 0.003478 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000015 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000188 0.000287 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.409199 +0.000685 0.001053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133400 +0.000101 0.000132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093800 +0.000341 0.000459 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.207400 +0.000624 0.000945 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093000 +0.000004 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110000 +0.000111 0.000152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089800 +0.000054 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000069 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000096 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.000046 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074200 +0.000106 0.000172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.280799 +0.001154 0.001977 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114400 +0.000544 0.000877 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000027 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.000012 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000027 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039400 +0.000169 0.000249 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000690 0.000864 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161000 +0.001453 0.002165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.334199 +0.001072 0.001618 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.000008 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002547 0.002783 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.522999 +0.000013 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052200 +0.000298 0.000463 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080200 +0.000001 0.000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000034 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092600 +0.000197 0.000298 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101400 +0.000012 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000249 0.000347 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000231 0.000353 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000576 0.000879 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000022 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000039 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.000034 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.000387 0.000567 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.250199 +0.000242 0.000333 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071200 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.145000 +0.001563 0.002435 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.001615 0.002735 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122200 +0.000742 0.000824 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.767798 +0.000029 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000294 0.000424 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084200 +0.000060 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000038 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086400 +0.024276 0.035699 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128200 +0.000015 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.000368 0.000466 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.230000 +0.000017 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000027 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033200 +0.000079 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000007 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122600 +0.001215 0.001612 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114000 +0.000041 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.010088 0.015952 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063600 +0.000436 0.000622 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103600 +0.000641 0.000736 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134200 +0.000313 0.000379 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104400 +0.000111 0.000147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076000 +0.000083 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000021 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000076 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.208200 +0.000719 0.000946 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094400 +0.000073 0.000115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.000034 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000006 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.172600 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000597 0.000806 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.000090 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106000 +0.000297 0.000454 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000189 0.000264 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.001122 0.001366 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.214200 +0.000012 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000509 0.000621 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094000 +0.000062 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000121 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092000 +0.000130 0.000221 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.260399 +0.000050 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030200 +0.000375 0.000527 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.000151 0.000235 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073400 +0.001240 0.002516 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.170800 +0.000015 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.002424 0.003217 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153400 +0.000178 0.000254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000024 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000039 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085200 +0.000300 0.000447 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000204 0.000306 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.009751 0.012926 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.215200 +0.005074 0.006383 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.233000 +0.000041 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000017 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000099 0.000135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000240 0.000348 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000177 0.000261 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000718 0.001052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.001709 0.003124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111000 +0.000037 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031200 +0.001928 0.002618 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.160000 +0.000053 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.000259 0.000379 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046200 +0.000158 0.000215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070200 +0.000199 0.000232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.250999 +0.000336 0.000473 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070000 +0.000390 0.000477 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071800 +0.000126 0.000191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000029 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.001617 0.002667 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157600 +0.000091 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.002902 0.005580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108600 +0.000150 0.000183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.314599 +0.000060 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034800 +0.000506 0.000779 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.525799 +0.000004 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.001712 0.002334 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.149600 +0.000029 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.000102 0.000155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000051 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000096 0.000147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.000167 0.000240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069400 +0.000032 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036400 +0.000775 0.000938 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111600 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.003172 0.004639 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000013 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.005882 0.007953 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069800 +0.000145 0.000195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093600 +0.005084 0.007686 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128000 +0.000020 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032800 +0.000384 0.000478 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000265 0.000395 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057400 +0.000082 0.000108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030200 +0.000891 0.001250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.301599 +0.000039 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000076 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073400 +0.000386 0.000577 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000183 0.000308 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.270999 +0.000039 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000337 0.000476 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000215 0.000296 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068800 +0.000348 0.000454 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137400 +0.000052 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.000900 0.001394 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143200 +0.000591 0.000607 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092600 +0.000223 0.000306 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.000254 0.000358 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000187 0.000214 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114800 +0.053376 0.091153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097600 +0.000062 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034800 +0.000077 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000503 0.000725 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112800 +0.001770 0.002709 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.162400 +0.000103 0.000137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045200 +0.001297 0.001712 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.000399 0.000525 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.293799 +0.000232 0.000311 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.206000 +0.000086 0.000137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001159 0.002055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121200 +0.000334 0.000395 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.183400 +0.000212 0.000280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101800 +0.000396 0.000567 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000123 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071800 +0.000300 0.000486 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.000028 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065200 +0.000009 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000499 0.000672 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000944 0.001436 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153600 +0.000101 0.000127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072800 +0.000203 0.000248 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124200 +0.000968 0.001417 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155200 +0.002976 0.004020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.216000 +0.000022 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.000373 0.000546 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113400 +0.000075 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.175200 +0.000001 0.000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000012 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000133 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133800 +0.000096 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000177 0.000265 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000118 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089000 +0.000028 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073400 +0.000016 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000220 0.000277 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000722 0.001257 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151200 +0.000103 0.000151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.000220 0.000303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000057 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000061 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000880 0.001335 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.000024 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000420 0.000600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068200 +0.000179 0.000211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.202200 +0.000054 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058200 +0.000816 0.001190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068800 +0.000065 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068800 +0.000078 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000348 0.000526 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000210 0.000316 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.008620 0.011956 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121800 +0.001218 0.001507 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125000 +0.000180 0.000225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076600 +0.000025 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000018 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000298 0.000409 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000011 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100000 +0.000596 0.000991 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123000 +0.000160 0.000185 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064000 +0.000024 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000081 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.000248 0.000339 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133000 +0.003309 0.004404 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115600 +0.000079 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049200 +0.000592 0.000743 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083400 +0.000207 0.000275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047400 +0.000057 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.000023 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077000 +0.001274 0.002012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.174600 +0.003187 0.004435 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.244999 +0.000427 0.000594 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083600 +0.000122 0.000170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079000 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000007 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000613 0.001094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153200 +0.000113 0.000169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123000 +0.000077 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000267 0.000359 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143600 +0.000753 0.000910 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.207400 +0.000015 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000059 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000573 0.000760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111000 +0.000484 0.000864 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.152600 +0.000242 0.000367 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091000 +0.001450 0.001698 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.215000 +0.000036 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000290 0.000395 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.197400 +0.000039 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000135 0.000193 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.001285 0.001893 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.000292 0.000436 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093800 +0.000027 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032000 +0.000108 0.000124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.290799 +0.005642 0.008071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135600 +0.000010 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000065 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000012 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.001194 0.001317 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115800 +0.000236 0.000303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094200 +0.000051 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000048 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114200 +0.004497 0.005601 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112200 +0.001459 0.002026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143600 +0.000329 0.000453 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000376 0.000465 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101000 +0.000177 0.000219 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.296599 +0.000696 0.000845 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135600 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000069 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000046 0.000080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000085 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.000013 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000697 0.000787 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.725599 +0.000099 0.000164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000146 0.000169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070600 +0.000317 0.000391 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.000075 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030800 +0.000046 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000335 0.000504 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.000434 0.000593 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134000 +0.000055 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133600 +0.000059 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075200 +0.000080 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000064 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000446 0.000594 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078800 +0.000150 0.000223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.002918 0.005678 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122800 +0.001571 0.002418 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070200 +0.000355 0.000587 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047800 +0.000818 0.001254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151600 +0.000050 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047400 +0.000447 0.000558 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156400 +0.000055 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000064 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074600 +0.000489 0.000747 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.204000 +0.000121 0.000154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.000150 0.000243 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000730 0.000944 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109400 +0.000055 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000837 0.001367 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071000 +0.002382 0.002848 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078800 +0.000022 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.002349 0.003950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129600 +0.000247 0.000353 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.380999 +0.000081 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000367 0.000634 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000101 0.000177 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059800 +0.001006 0.001440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068400 +0.000045 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052800 +0.000631 0.000981 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099800 +0.000132 0.000195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.196600 +0.000031 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.001291 0.001695 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116200 +0.000091 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.000168 0.000234 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000731 0.000902 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131800 +0.000055 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035400 +0.000896 0.001233 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102600 +0.000037 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.005430 0.007611 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.171600 +0.000535 0.000583 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.199600 +0.000003 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000031 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000076 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073600 +0.000005 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000196 0.000279 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077200 +0.000071 0.000109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046000 +0.000040 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094400 +0.001217 0.001243 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.212600 +0.000028 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000013 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.000999 0.001258 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107600 +0.000032 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034400 +0.000116 0.000160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.361999 +0.000066 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000166 0.000242 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000580 0.000724 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.004984 0.005995 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.423199 +0.000012 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000045 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000005 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000325 0.000501 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.000066 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000036 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000176 0.000296 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.000838 0.001153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082600 +0.000021 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000997 0.001248 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.175800 +0.000089 0.000137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074200 +0.000103 0.000144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000014 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000229 0.000250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122800 +0.000053 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000036 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000596 0.000769 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.382999 +0.000308 0.000386 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000059 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000040 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.001089 0.001441 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108400 +0.000350 0.000387 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.388199 +0.000025 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000166 0.000229 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091200 +0.003654 0.006170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143600 +0.000048 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036800 +0.000073 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000011 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000073 0.000091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.000039 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000007 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092600 +0.000117 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077000 +0.003412 0.005193 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.498599 +0.000037 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053400 +0.000034 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077200 +0.000035 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.000389 0.000547 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085600 +0.000044 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.000035 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.007631 0.011865 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000027 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000079 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000089 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.557199 +0.000012 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000187 0.000252 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045200 +0.002883 0.003891 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.175000 +0.000202 0.000285 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.000078 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038000 +0.000065 0.000126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000419 0.000468 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091800 +0.000115 0.000160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157000 +0.000020 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000012 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000049 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044400 +0.000117 0.000137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.209400 +0.000043 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000072 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.003028 0.005303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119600 +0.000011 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000281 0.000447 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000573 0.000810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.166800 +0.000057 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084800 +0.000442 0.000687 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.213000 +0.000453 0.000677 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119800 +0.000023 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039200 +0.000652 0.000820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.307199 +0.000016 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000010 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000119 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161200 +0.000316 0.000517 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000100 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.447999 +0.000496 0.000679 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101800 +0.002593 0.003486 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125800 +0.002160 0.003103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091000 +0.000032 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112000 +0.000085 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086000 +0.000026 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032000 +0.000322 0.000483 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000097 0.000124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079400 +0.003926 0.006292 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090600 +0.000048 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.266199 +0.000201 0.000313 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046600 +0.000584 0.000694 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.409999 +0.002924 0.004562 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.253399 +0.000185 0.000248 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000028 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.000021 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000270 0.000345 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065000 +0.000856 0.001053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118600 +0.000009 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000114 0.000135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069600 +0.000021 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074200 +0.000110 0.000156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063600 +0.000007 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000028 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.000253 0.000358 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113800 +0.001100 0.001490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104400 +0.000277 0.000415 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081400 +0.000431 0.000516 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093200 +0.000093 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.000672 0.000945 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062400 +0.000018 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137200 +0.000080 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000283 0.000375 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076800 +0.000196 0.000271 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075400 +0.000522 0.000676 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.245599 +0.000027 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000088 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000162 0.000215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.008599 0.013130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.213000 +0.000414 0.000462 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.514999 +0.000015 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000024 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.146200 +0.000020 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000557 0.000736 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087200 +0.000542 0.000766 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000080 0.000115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.002123 0.002718 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.331399 +0.000021 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000033 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000071 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059000 +0.000052 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076200 +0.000130 0.000195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037400 +0.000333 0.000467 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156800 +0.000116 0.000165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.143200 +0.003341 0.005153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.263399 +0.000106 0.000147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000049 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.000058 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075800 +0.000013 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.000096 0.000130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.000290 0.000391 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074000 +0.000177 0.000235 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047200 +0.001279 0.001537 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110600 +0.000265 0.000377 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.001003 0.001495 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000567 0.000834 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000120 0.000207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156600 +0.000180 0.000311 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070600 +0.000181 0.000275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.000014 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.001029 0.001493 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.152000 +0.000036 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104000 +0.000137 0.000166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083200 +0.000205 0.000280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.000148 0.000219 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000007 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100800 +0.000201 0.000332 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033000 +0.000096 0.000130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052400 +0.000092 0.000157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000065 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000118 0.000145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132600 +0.000530 0.000858 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000512 0.000708 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051400 +0.000272 0.000419 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035200 +0.000129 0.000181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.250799 +0.000599 0.000934 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000023 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000009 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001258 0.001907 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000039 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046000 +0.000037 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032000 +0.000631 0.000853 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065400 +0.000037 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102800 +0.000024 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044800 +0.000081 0.000125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000088 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099600 +0.000866 0.001331 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.000020 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038600 +0.000065 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000006 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000127 0.000207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.001183 0.001828 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124200 +0.003342 0.004761 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079000 +0.000789 0.001257 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107600 +0.000172 0.000215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118200 +0.000519 0.000765 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.000544 0.000823 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039200 +0.000059 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000060 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.001121 0.001569 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084200 +0.000045 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000089 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047200 +0.000049 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.000129 0.000188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.461199 +0.000045 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000457 0.000542 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.260199 +0.000083 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103600 +0.003693 0.004673 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107000 +0.000358 0.000564 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.001513 0.001890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.237600 +0.000343 0.000388 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125400 +0.000136 0.000226 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095600 +0.000031 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000007 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000128 0.000161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155000 +0.000109 0.000127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.000142 0.000190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000305 0.000446 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118800 +0.000143 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105600 +0.000010 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000012 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000023 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.001396 0.002757 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119800 +0.000379 0.000461 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092600 +0.002427 0.003456 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.001324 0.002028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.165600 +0.000955 0.001277 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095200 +0.000597 0.000792 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081400 +0.000002 0.000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000652 0.000999 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085400 +0.000104 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106600 +0.000213 0.000279 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150400 +0.001874 0.002509 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.244999 +0.000012 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129000 +0.000093 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000182 0.000306 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109600 +0.000080 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063200 +0.000210 0.000344 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075200 +0.000042 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046000 +0.000012 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031400 +0.000040 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072200 +0.000996 0.001657 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.168600 +0.000068 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077400 +0.000070 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.000018 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000403 0.000488 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.153800 +0.000059 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001557 0.002556 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000219 0.000310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.292599 +0.000037 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000470 0.000593 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105400 +0.000289 0.000464 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032000 +0.000187 0.000229 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161400 +0.003016 0.004558 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089800 +0.000017 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000108 0.000129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.278599 +0.000019 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000029 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000017 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.001016 0.001422 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000090 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049800 +0.000054 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000081 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000593 0.000972 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058400 +0.000020 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000117 0.000167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106200 +0.000038 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000037 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.001302 0.001377 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.270999 +0.000014 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000669 0.000945 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.000231 0.000349 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123800 +0.000200 0.000278 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057600 +0.000350 0.000470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.141000 +0.000235 0.000323 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050800 +0.000100 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000156 0.000225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000015 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.299999 +0.000101 0.000141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.000042 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000064 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.000082 0.000124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129800 +0.000020 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000441 0.000670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066200 +0.000200 0.000313 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071200 +0.003446 0.004726 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.169400 +0.007002 0.009802 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.339799 +0.000004 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000115 0.000152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157600 +0.000635 0.000959 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069800 +0.000068 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000051 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.000224 0.000299 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.180800 +0.000533 0.000692 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.181000 +0.000155 0.000188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.164200 +0.000040 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000579 0.000780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039200 +0.000582 0.000719 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.426199 +0.000087 0.000138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000503 0.000655 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136600 +0.000145 0.000223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048200 +0.000076 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083600 +0.000054 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.207200 +0.002662 0.003327 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.166000 +0.000145 0.000201 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.226400 +0.000270 0.000300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.209200 +0.002012 0.002211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161400 +0.000569 0.000795 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096000 +0.000851 0.001097 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046800 +0.000544 0.000719 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.205600 +0.000090 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000137 0.000224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074000 +0.000262 0.000400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000053 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135600 +0.000261 0.000411 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047200 +0.000024 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113800 +0.000094 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041400 +0.000988 0.001179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.262599 +0.000826 0.000940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.306399 +0.000068 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043000 +0.000080 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127000 +0.000457 0.000627 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000378 0.000459 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076800 +0.000235 0.000342 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000124 0.000186 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000038 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001615 0.002208 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.197200 +0.000050 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.000601 0.000934 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.216200 +0.000809 0.001106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076200 +0.000001 0.000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000029 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.000835 0.001276 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.000124 0.000193 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039200 +0.000094 0.000129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084000 +0.000076 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046000 +0.000048 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068600 +0.000052 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000026 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000542 0.001157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.459999 +0.000004 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000187 0.000271 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.213600 +0.000156 0.000184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.191600 +0.000870 0.001402 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.190400 +0.000654 0.001128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089800 +0.000021 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032200 +0.000179 0.000252 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000667 0.001020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.000782 0.000986 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113200 +0.000053 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000023 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.000137 0.000188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.148200 +0.000018 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131200 +0.000262 0.000348 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105800 +0.000020 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.000011 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.000069 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000002 0.000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000675 0.001052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084400 +0.000017 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000259 0.000358 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101800 +0.001337 0.001818 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.228600 +0.000063 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000018 0.000034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000028 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000113 0.000162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.208200 +0.000235 0.000345 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.204200 +0.002225 0.003262 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114600 +0.001387 0.001765 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112200 +0.000177 0.000263 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070200 +0.000533 0.000830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.000012 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000001 0.000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000007 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049200 +0.000013 0.000019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000051 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111400 +0.000128 0.000189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.089800 +0.000583 0.000878 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082800 +0.000100 0.000132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045200 +0.000250 0.000358 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.000066 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063600 +0.000665 0.000875 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.261399 +0.000054 0.000091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000066 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000257 0.000269 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.518399 +0.000045 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000024 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000527 0.000789 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036600 +0.000021 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044600 +0.000051 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000044 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000023 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083400 +0.000342 0.000535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000041 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043200 +0.002153 0.002863 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082200 +0.000226 0.000289 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062400 +0.000038 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035400 +0.000074 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046000 +0.000067 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000446 0.000600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.284199 +0.000104 0.000158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071000 +0.000069 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.109800 +0.000426 0.000486 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000979 0.001446 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099400 +0.000145 0.000186 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085200 +0.000022 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.001272 0.002270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.156400 +0.000282 0.000384 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.161600 +0.000067 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077800 +0.002407 0.003095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.173400 +0.000105 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044000 +0.000237 0.000340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000570 0.000838 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047400 +0.000034 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000354 0.000472 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095600 +0.000010 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048400 +0.000107 0.000149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000686 0.001028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081200 +0.000038 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088600 +0.000013 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036000 +0.000016 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000790 0.001187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079200 +0.000059 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000016 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.000062 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000168 0.000251 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.000726 0.000920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.168200 +0.000433 0.000548 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092800 +0.000780 0.001128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.138800 +0.000192 0.000297 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.002436 0.003846 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066400 +0.001085 0.001680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099000 +0.000016 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080000 +0.000146 0.000273 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088200 +0.000552 0.000784 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000075 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083400 +0.000064 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049400 +0.000128 0.000170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000107 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000053 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030800 +0.000132 0.000150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000011 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000071 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000179 0.000245 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114400 +0.000265 0.000326 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077200 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000519 0.000685 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128400 +0.000085 0.000122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088200 +0.000999 0.001323 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.361799 +0.000275 0.000310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.141600 +0.000004 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000021 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001249 0.001984 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083600 +0.000043 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132000 +0.000036 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.001186 0.001501 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070200 +0.000019 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000374 0.000461 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.268399 +0.000014 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000035 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.549999 +0.000336 0.000516 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.000131 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079400 +0.000107 0.000146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000048 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078200 +0.000405 0.000519 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031400 +0.000019 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000144 0.000214 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000055 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071200 +0.000037 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061600 +0.006360 0.009590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000022 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000814 0.001168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104400 +0.000010 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000174 0.000228 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.224400 +0.000028 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000046 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000066 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095800 +0.000436 0.000685 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000128 0.000182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000054 0.000082 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000002 0.000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000318 0.000393 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126800 +0.005791 0.009211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069800 +0.004537 0.005589 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.382399 +0.000080 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078000 +0.000526 0.000746 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.167400 +0.001113 0.001563 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074000 +0.000289 0.000409 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078800 +0.000026 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000297 0.000408 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.001386 0.002018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000081 0.000114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000030 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000041 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039200 +0.000173 0.000220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057400 +0.000148 0.000215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091800 +0.000247 0.000348 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124200 +0.000230 0.000289 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127600 +0.000011 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050400 +0.000685 0.001001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090400 +0.000010 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000005 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.150000 +0.000079 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000715 0.001026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093600 +0.000065 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000079 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.000025 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000930 0.001159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133000 +0.000135 0.000216 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000643 0.000776 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104600 +0.000058 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.001261 0.002250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115000 +0.000029 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.000018 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073200 +0.001281 0.001655 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132000 +0.000059 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073600 +0.000033 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001179 0.002036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.210600 +0.000134 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086000 +0.001577 0.002362 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069000 +0.000366 0.000425 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.196400 +0.000149 0.000199 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051600 +0.000323 0.000483 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075400 +0.000088 0.000127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.000021 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036800 +0.000182 0.000258 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045200 +0.000106 0.000142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100800 +0.000141 0.000189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000228 0.000348 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.000052 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.000165 0.000230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047800 +0.000088 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052400 +0.001089 0.001341 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134600 +0.000105 0.000110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.191000 +0.000184 0.000221 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000454 0.000558 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124400 +0.000539 0.000917 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094000 +0.000571 0.000754 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079600 +0.000387 0.000620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000005 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120000 +0.000112 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.267599 +0.000021 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095800 +0.000376 0.000457 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.127800 +0.000408 0.000652 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085600 +0.000287 0.000366 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.148200 +0.000009 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.159400 +0.000118 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037000 +0.000017 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030400 +0.000032 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000038 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037000 +0.000007 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.001595 0.002071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.267799 +0.000052 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048000 +0.000015 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110000 +0.000258 0.000326 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.176400 +0.000921 0.001228 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.129000 +0.000020 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.001213 0.001722 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.253599 +0.000556 0.000642 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.152800 +0.000587 0.000664 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.171400 +0.000308 0.000373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125200 +0.000006 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000104 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.124000 +0.000053 0.000076 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039400 +0.000025 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000123 0.000176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079200 +0.000155 0.000198 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112600 +0.000049 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081800 +0.000106 0.000126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092400 +0.000044 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.000145 0.000209 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.000045 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.000039 0.000056 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060000 +0.000041 0.000057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000012 0.000014 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000184 0.000251 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086600 +0.000019 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.001171 0.001677 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079800 +0.000029 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000263 0.000357 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.125000 +0.000286 0.000323 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085600 +0.000007 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000301 0.000485 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.401799 +0.005168 0.007193 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.257399 +0.000149 0.000206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.000023 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.000223 0.000255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081200 +0.000025 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080600 +0.000073 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000037 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038200 +0.000041 0.000064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043000 +0.000193 0.000311 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.003034 0.004055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086600 +0.001118 0.001580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.104400 +0.000104 0.000181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.002344 0.003456 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068600 +0.000015 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.000023 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000060 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.000022 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000081 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000052 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078000 +0.000713 0.001022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075800 +0.000056 0.000089 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000310 0.000361 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113400 +0.000109 0.000158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069400 +0.000149 0.000194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.000206 0.000282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.177400 +0.000016 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002607 0.003671 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.145800 +0.000007 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000140 0.000182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.210000 +0.000352 0.000474 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075800 +0.001215 0.002019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151800 +0.000217 0.000323 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.002088 0.002402 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119600 +0.000034 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091200 +0.000141 0.000165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120000 +0.000061 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073200 +0.010121 0.014524 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.211800 +0.000153 0.000215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.000039 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001104 0.001857 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088400 +0.002083 0.003011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136200 +0.000125 0.000190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000028 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090000 +0.000591 0.000828 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.250199 +0.000220 0.000345 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.271199 +0.001176 0.001564 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.163000 +0.001095 0.001410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096800 +0.000002 0.000003 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000167 0.000241 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.091200 +0.000082 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098000 +0.000091 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000028 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000055 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120000 +0.000037 0.000050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000006 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000150 0.000217 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068600 +0.000842 0.001633 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.121400 +0.001644 0.002599 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.674999 +0.000053 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000001 0.000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002851 0.003850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116000 +0.001716 0.002778 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.238400 +0.000154 0.000194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060600 +0.000054 0.000067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000060 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085200 +0.000078 0.000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054200 +0.000043 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000234 0.000346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039200 +0.000081 0.000121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.001106 0.001704 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083800 +0.000024 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000252 0.000390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037800 +0.000393 0.000585 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.204000 +0.000087 0.000118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.000148 0.000177 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.476799 +0.000710 0.000882 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.302799 +0.000502 0.000611 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.330599 +0.000094 0.000140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055600 +0.000160 0.000223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082200 +0.000027 0.000037 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001747 0.002390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106800 +0.000013 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000120 0.000139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079200 +0.000028 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.090400 +0.000060 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108400 +0.000042 0.000054 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.000032 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.000216 0.000305 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000082 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045800 +0.000231 0.000292 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.265199 +0.000240 0.000376 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000021 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000032 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033600 +0.000187 0.000216 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.282599 +0.000080 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082400 +0.000155 0.000229 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064000 +0.000199 0.000300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.000138 0.000188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082800 +0.000006 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000393 0.000576 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068800 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000923 0.001324 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000076 0.000114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000192 0.000197 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.142600 +0.000083 0.000123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000582 0.000783 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.708399 +0.001201 0.001636 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.165400 +0.000198 0.000237 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074600 +0.000176 0.000231 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076600 +0.000099 0.000149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.000116 0.000176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000012 0.000017 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.001152 0.001620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069800 +0.000008 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.002254 0.002715 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.112800 +0.000057 0.000074 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000080 0.000093 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000043 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000124 0.000207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000082 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000096 0.000128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049200 +0.000648 0.000762 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.190800 +0.000189 0.000262 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000207 0.000277 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000034 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072000 +0.000014 0.000018 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000128 0.000188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000055 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000214 0.000293 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132600 +0.002879 0.004181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151400 +0.000018 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000280 0.000333 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083600 +0.000431 0.000650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000344 0.000540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.138200 +0.000039 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035200 +0.000040 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032200 +0.000166 0.000258 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088400 +0.000193 0.000284 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065200 +0.000200 0.000323 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.373199 +0.000035 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035000 +0.000130 0.000154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.159800 +0.000021 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000024 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000030 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000121 0.000147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000075 0.000102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068600 +0.004926 0.007293 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.165800 +0.043605 0.070862 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060400 +0.001507 0.002032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108200 +0.000155 0.000215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.235400 +0.000078 0.000127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000228 0.000251 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.375399 +0.000162 0.000190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084800 +0.001159 0.001491 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.145400 +0.000082 0.000119 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065600 +0.000124 0.000189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.004901 0.008306 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066800 +0.000015 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000117 0.000146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.001353 0.001912 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136000 +0.000037 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105000 +0.000149 0.000214 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000470 0.000534 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115800 +0.001128 0.001457 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086000 +0.004864 0.006784 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.177800 +0.000303 0.000416 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000694 0.000823 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116000 +0.000139 0.000267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.186400 +0.002396 0.003739 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037400 +0.000279 0.000359 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000488 0.000671 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087200 +0.000015 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000097 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.223400 +0.000052 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000275 0.000423 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081000 +0.000991 0.001747 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.000046 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000298 0.000405 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059200 +0.000054 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056800 +0.000157 0.000252 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.002887 0.003982 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136600 +0.000019 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042800 +0.000335 0.000498 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083000 +0.000432 0.000493 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.600799 +0.000141 0.000235 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000183 0.000236 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063800 +0.000042 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001771 0.002639 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000194 0.000339 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.303799 +0.000337 0.000752 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111600 +0.000152 0.000227 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.239400 +0.009426 0.013758 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.181800 +0.000024 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037000 +0.000119 0.000228 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.332599 +0.000213 0.000282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122400 +0.002374 0.003266 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.312599 +0.000181 0.000256 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066200 +0.000516 0.000525 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135000 +0.000016 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000052 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000156 0.000209 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.001370 0.001761 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.141200 +0.000049 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000080 0.000119 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033400 +0.003323 0.004842 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155400 +0.000051 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036800 +0.001004 0.001600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100800 +0.000093 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.003955 0.006185 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.263999 +0.000040 0.000070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106600 +0.001591 0.001958 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.000238 0.000301 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081400 +0.000787 0.001120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086200 +0.000050 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094400 +0.000015 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051200 +0.000012 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001574 0.002124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098200 +0.000090 0.000177 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126800 +0.000027 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000994 0.001910 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.381399 +0.000162 0.000280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059600 +0.000034 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000024 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000528 0.000723 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.242200 +0.000057 0.000078 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.000052 0.000075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036400 +0.002552 0.003568 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.244199 +0.000846 0.001346 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.436199 +0.000006 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000631 0.000826 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080400 +0.001257 0.001635 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137400 +0.000308 0.000433 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.001437 0.001619 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.287199 +0.000537 0.000685 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.128800 +0.000148 0.000195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087600 +0.000238 0.000319 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060200 +0.000357 0.000527 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079000 +0.000043 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000045 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000012 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002021 0.003185 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057000 +0.000059 0.000092 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000146 0.000185 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099000 +0.000259 0.000431 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032000 +0.000055 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033600 +0.000103 0.000148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073000 +0.000701 0.001003 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000291 0.000451 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030800 +0.000231 0.000296 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.203800 +0.000026 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035400 +0.000079 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.108400 +0.000402 0.000443 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037800 +0.000041 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077600 +0.002098 0.002928 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000052 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.396799 +0.000420 0.000612 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103400 +0.000486 0.000711 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.059400 +0.000040 0.000053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070600 +0.000189 0.000258 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136800 +0.000118 0.000162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054400 +0.000036 0.000059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000020 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000166 0.000214 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000032 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113000 +0.000427 0.000603 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064600 +0.000027 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050000 +0.000100 0.000130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.140600 +0.000012 0.000013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000783 0.001147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049600 +0.000066 0.000105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000375 0.000584 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.154400 +0.000066 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038400 +0.000062 0.000098 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000326 0.000381 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050600 +0.000021 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000412 0.000534 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.193000 +0.000017 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031600 +0.000013 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000008 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000072 0.000103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.146800 +0.000393 0.000529 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058800 +0.000324 0.000326 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.262599 +0.000061 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000254 0.000494 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.105600 +0.000009 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.444999 +0.000024 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035800 +0.000216 0.000333 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107800 +0.000788 0.001208 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077400 +0.000181 0.000214 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098200 +0.005952 0.008510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082800 +0.000888 0.001496 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075800 +0.001450 0.002057 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.220600 +0.000061 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082000 +0.000128 0.000154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066600 +0.000031 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031400 +0.000162 0.000228 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.083000 +0.000053 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.000918 0.001086 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.579399 +0.000225 0.000300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101200 +0.000080 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057800 +0.001299 0.003407 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080400 +0.000169 0.000266 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110800 +0.000149 0.000177 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.001123 0.001693 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.070400 +0.000022 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.020584 0.031614 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130000 +0.000045 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.001699 0.002595 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000082 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.000019 0.000023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.000055 0.000080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041600 +0.000038 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074200 +0.000017 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000037 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000469 0.000480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101600 +0.000187 0.000235 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068800 +0.000397 0.000578 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.100400 +0.000414 0.000597 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.226200 +0.000350 0.000533 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051000 +0.000265 0.000450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.155200 +0.000031 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117600 +0.000099 0.000154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000040 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045600 +0.001046 0.001522 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102600 +0.000051 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.044200 +0.000776 0.001119 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000493 0.000693 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063000 +0.000048 0.000066 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031400 +0.000020 0.000025 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000888 0.001290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.479199 +0.000469 0.000599 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.133200 +0.000211 0.000310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.066000 +0.000005 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002083 0.003459 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065200 +0.000218 0.000292 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.072600 +0.000077 0.000134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.426199 +0.000023 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000069 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074000 +0.000070 0.000113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.002339 0.003899 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.168000 +0.009793 0.014229 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.309799 +0.000194 0.000280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.255199 +0.000904 0.001322 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.001152 0.001794 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086400 +0.000123 0.000149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079800 +0.000114 0.000153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000027 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000081 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.608599 +0.000199 0.000265 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.386199 +0.000128 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056400 +0.000013 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000170 0.000278 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.431199 +0.000056 0.000072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000249 0.000309 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061800 +0.000032 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000279 0.000421 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000001 0.000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000063 0.000088 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030600 +0.000136 0.000174 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069400 +0.000464 0.000703 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106600 +0.001211 0.001736 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126400 +0.000039 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086600 +0.000111 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033600 +0.000035 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065400 +0.000059 0.000079 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000015 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000050 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111400 +0.000219 0.000267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.215600 +0.001403 0.002016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073400 +0.000931 0.001250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097800 +0.000052 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043000 +0.000041 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.000096 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.829998 +0.000043 0.000068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000320 0.000376 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000036 0.000047 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.087200 +0.000065 0.000099 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035200 +0.000372 0.000549 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045400 +0.000086 0.000129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034600 +0.000194 0.000301 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000106 0.000160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.049000 +0.000441 0.000738 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.213400 +0.000708 0.001012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071600 +0.000047 0.000065 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033400 +0.000038 0.000048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.006906 0.009024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093800 +0.000117 0.000137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119800 +0.000098 0.000152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041200 +0.000619 0.000892 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.000842 0.001187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120400 +0.000184 0.000240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039000 +0.000027 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135200 +0.000041 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055400 +0.000032 0.000049 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040800 +0.000127 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.051800 +0.000179 0.000234 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.000217 0.000320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043600 +0.000035 0.000051 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055800 +0.000031 0.000039 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000010 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034200 +0.000176 0.000223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000005 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000245 0.000347 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041400 +0.002583 0.003178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099000 +0.000273 0.000361 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.219800 +0.000210 0.000283 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.122800 +0.000027 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036200 +0.000002 0.000003 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000358 0.000401 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115200 +0.000066 0.000081 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071400 +0.000141 0.000192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115800 +0.000002 0.000003 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037600 +0.000030 0.000046 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040600 +0.000193 0.000235 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110000 +0.000027 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.050200 +0.000251 0.000291 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131400 +0.000328 0.000442 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093600 +0.000236 0.000362 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123400 +0.000568 0.000819 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084000 +0.000255 0.000315 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085400 +0.000574 0.000741 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.231200 +0.001400 0.003033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.092600 +0.000059 0.000077 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.000035 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034400 +0.000029 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095600 +0.000122 0.000159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111200 +0.000029 0.000044 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000102 0.000129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.693799 +0.000068 0.000087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086200 +0.000134 0.000201 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067600 +0.000213 0.000355 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.360799 +0.000709 0.001459 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.157400 +0.000074 0.000107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061200 +0.000146 0.000192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074600 +0.000120 0.000181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120400 +0.001156 0.001817 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.239600 +0.000569 0.000860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.000680 0.001180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.166400 +0.000008 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075000 +0.000026 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102600 +0.000332 0.000454 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084400 +0.000029 0.000040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000411 0.000504 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.115200 +0.000015 0.000027 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000050 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043800 +0.000077 0.000115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039200 +0.000056 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086400 +0.000278 0.000375 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074400 +0.000179 0.000290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035400 +0.000255 0.000339 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000003 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000248 0.000358 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.114200 +0.000426 0.000558 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069000 +0.000319 0.000474 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111200 +0.000137 0.000179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.098000 +0.000758 0.001129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042200 +0.000129 0.000168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077200 +0.000066 0.000083 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000016 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000031 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000872 0.000985 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.424999 +0.000014 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000105 0.000149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065800 +0.000139 0.000181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062000 +0.000005 0.000006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000195 0.000252 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079200 +0.000039 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000055 0.000058 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.178200 +0.000011 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.001859 0.002825 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.300599 +0.000064 0.000084 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.079200 +0.000238 0.000305 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.110800 +0.000024 0.000030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000192 0.000245 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.000425 0.000582 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.233000 +0.000067 0.000095 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.071800 +0.000080 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.046400 +0.000017 0.000022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000355 0.000528 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058600 +0.000543 0.000777 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.304199 +0.000166 0.000212 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074200 +0.000031 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039600 +0.000333 0.000428 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.159600 +0.001961 0.004768 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.119800 +0.000026 0.000033 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000584 0.000958 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086800 +0.000033 0.000035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.229200 +0.000232 0.000289 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.111000 +0.000096 0.000131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000429 0.000568 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101000 +0.000062 0.000091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030000 +0.000074 0.000112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000539 0.000558 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095000 +0.000081 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041000 +0.000133 0.000166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086600 +0.000938 0.001428 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.084400 +0.000063 0.000090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030600 +0.000099 0.000144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.001746 0.002317 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.166400 +0.000073 0.000102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095200 +0.000032 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035400 +0.000006 0.000008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.045000 +0.000410 0.000537 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.000021 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033800 +0.000115 0.000164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.130200 +0.000016 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040000 +0.000009 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.004138 0.005744 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.060800 +0.000024 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053200 +0.000078 0.000124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052600 +0.000460 0.000677 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061000 +0.000077 0.000117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.080800 +0.000089 0.000130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054000 +0.000366 0.000560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000019 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067200 +0.000016 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032000 +0.000067 0.000071 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.069200 +0.000094 0.000144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000651 0.000901 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064400 +0.001949 0.002984 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075400 +0.001037 0.001461 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.247799 +0.000042 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062800 +0.001233 0.001655 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134000 +0.000040 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056000 +0.000035 0.000060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000713 0.000915 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076000 +0.000020 0.000026 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000507 0.000870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.102400 +0.000225 0.000356 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.043400 +0.000009 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000035 0.000045 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.096000 +0.000055 0.000062 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.323999 +0.000009 0.000015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.006397 0.009672 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.137000 +0.000004 0.000005 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000043 0.000061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.000225 0.000369 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.094200 +0.000153 0.000199 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047600 +0.000022 0.000028 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.103400 +0.000533 0.000819 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030600 +0.000127 0.000172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055200 +0.000067 0.000091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000310 0.000483 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.039800 +0.000179 0.000226 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000015 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.058000 +0.001139 0.001618 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.031400 +0.000146 0.000219 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.001002 0.001733 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.123600 +0.000001 0.000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000185 0.000258 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.000016 0.000020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048600 +0.000083 0.000111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.082400 +0.000008 0.000012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000065 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000064 0.000094 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000210 0.000312 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.134600 +0.000359 0.000523 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.291599 +0.000469 0.000635 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113000 +0.000142 0.000157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000050 0.000069 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.117800 +0.000001 0.000002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 +0.000260 0.000340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.188400 +0.000138 0.000182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.057200 +0.000031 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076000 +0.000831 0.001075 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074000 +0.000058 0.000073 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077200 +0.002347 0.003068 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.198400 +0.000015 0.000024 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000231 0.000316 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126800 +0.000504 0.000744 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.036400 +0.000747 0.001151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.073800 +0.000338 0.000475 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052400 +0.000468 0.000665 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.194600 +0.000135 0.000181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.093600 +0.000154 0.000196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.131600 +0.001237 0.001831 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077400 +0.007663 0.009345 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.276199 +0.000005 0.000007 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000456 0.000676 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.132200 +0.000024 0.000036 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.000429 0.000647 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054600 +0.000100 0.000143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053600 +0.000031 0.000038 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.136800 +0.000331 0.000381 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116000 +0.000040 0.000055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.067000 +0.000063 0.000080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.047200 +0.000302 0.000387 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.107000 +0.000837 0.001236 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.088000 +0.003754 0.005124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.197600 +0.000012 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000292 0.000404 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.078800 +0.000105 0.000120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.151000 +0.000447 0.000657 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.076000 +0.000388 0.000510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.170400 +0.000024 0.000031 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.074400 +0.000078 0.000097 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.086200 +0.000210 0.000286 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.286599 +0.000024 0.000032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040400 +0.000127 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.034800 +0.000316 0.000439 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.000063 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.042600 +0.000214 0.000312 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.065400 +0.000248 0.000390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.040200 +0.000427 0.000590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.085000 +0.000877 0.001300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.077800 +0.000011 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000333 0.000471 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053000 +0.000222 0.000328 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.063400 +0.000109 0.000133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056200 +0.000002 0.000003 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.032600 +0.000009 0.000010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000123 0.000170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064200 +0.000117 0.000173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000515 0.000610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.171400 +0.000080 0.000116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.183400 +0.000403 0.000589 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000124 0.000187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.041800 +0.000140 0.000228 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.068200 +0.000062 0.000085 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.052000 +0.000970 0.001511 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.162000 +0.000534 0.000740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.097400 +0.000077 0.000104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.095200 +0.000068 0.000114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000319 0.000472 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062200 +0.000048 0.000063 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.035600 +0.000006 0.000009 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075800 +0.000120 0.000198 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.353199 +0.001032 0.001389 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.061400 +0.000305 0.000549 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099000 +0.000020 0.000029 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000797 0.001217 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.135600 +0.000008 0.000011 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.062600 +0.000032 0.000043 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030600 +0.000295 0.000444 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.101200 +0.000306 0.000454 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.053800 +0.000013 0.000021 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.056600 +0.000034 0.000041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000197 0.000268 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.081400 +0.000123 0.000171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.064800 +0.000198 0.000317 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.029998 +0.000617 0.000734 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.118000 +0.000002 0.000004 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.162600 +0.000973 0.001272 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.113000 +0.000411 0.000593 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.149400 +0.000077 0.000106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.116000 +0.000693 0.001067 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.198200 +0.000453 0.000655 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.099200 +0.000092 0.000125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.030400 +0.000063 0.000101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.106600 +0.000031 0.000042 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.037000 +0.000074 0.000096 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.055000 +0.004675 0.006685 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.234800 +0.000301 0.000427 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.054800 +0.000013 0.000016 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.038800 +0.001081 0.001397 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.120600 +0.000365 0.000503 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.126600 +0.000258 0.000308 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.075400 +0.000044 0.000052 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.048800 +0.000147 0.000204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.033400 diff --git a/lib/ann/fann/datasets/diabetes.test b/lib/ann/fann/datasets/diabetes.test new file mode 100644 index 0000000..520a279 --- /dev/null +++ b/lib/ann/fann/datasets/diabetes.test @@ -0,0 +1,769 @@ +384 8 2 +0.058823 0.755000 0.491803 0 0 0.388972 0.043125 0.016667 +0 1 +0.882353 0.680000 0.573770 0.320000 0.130024 0.552906 0.032024 0.366667 +1 0 +0.823529 0.875000 0.508197 0.300000 0 0.500745 0.057216 0.283333 +1 0 +0.411765 0.500000 0 0 0 0.447094 0.173356 0.183333 +1 0 +0.235294 0.580000 0.590164 0.120000 0.102837 0.329359 0.164389 0.266667 +0 1 +0.411765 0.310000 0.639344 0 0 0.485842 0.133646 0.333333 +0 1 +0.058823 0.700000 0.606557 0.260000 0.212766 0.359165 0.320239 0.033333 +0 1 +0.058823 0.485000 0.540984 0.150000 0.165485 0.345753 0.174637 0.016667 +0 1 +0.411765 0.405000 0.639344 0.400000 0.056738 0.695976 0.078138 0.350000 +0 1 +0.235294 0.740000 0.491803 0.270000 0.375887 0.460507 0.030743 0.133333 +1 0 +0 0.625000 0.557377 0 0 0.368107 0.054654 0 +0 1 +0.352941 0.510000 0.737705 0.390000 0 0.532042 0.254483 0.116667 +0 1 +0.411765 0.625000 0.704918 0 0 0.560358 0.096499 0.500000 +0 1 +0.117647 0.450000 0.557377 0.420000 0 0.569300 0.181469 0.100000 +1 0 +0.470588 0.905000 0.557377 0.360000 0.585106 0.448584 0.229291 0.650000 +1 0 +0.411765 0.970000 0.557377 0.280000 0 0.535022 0.284799 0.333333 +1 0 +0 0.510000 0.704918 0.170000 0.124113 0.436662 0.263450 0.100000 +0 1 +0.117647 0.495000 0.573770 0.160000 0.052010 0.304024 0.067037 0.100000 +0 1 +0.529412 0.360000 0.639344 0.250000 0 0.470939 0.086251 0.283333 +0 1 +0.117647 0.610000 0.426230 0.430000 0.186761 0.539493 0.315115 0.116667 +0 1 +0.411765 0.935000 0.557377 0.390000 0.359338 0.561848 0.075149 0.333333 +1 0 +0.470588 0.755000 0.639344 0.320000 0.248227 0.639344 0.187020 0.250000 +1 0 +0.058823 0.535000 0.590164 0.300000 0.096927 0.459016 0.317250 0.050000 +0 1 +0.117647 0.470000 0.622951 0.180000 0.078014 0.470939 0.243809 0.033333 +0 1 +0.235294 0.625000 0.573770 0.180000 0.144208 0.430700 0.455167 0.400000 +1 0 +0.411765 0.545000 0.655738 0.310000 0 0.535022 0.447908 0.366667 +1 0 +0.117647 0.525000 0.655738 0.450000 0.225768 0.502235 0.270282 0.133333 +1 0 +0.117647 0.470000 0.557377 0.180000 0.089834 0.387481 0.206234 0 +0 1 +0.117647 0.530000 0.459016 0.270000 0.195035 0.432191 0.148591 0.016667 +0 1 +0.352941 0.740000 0.590164 0.350000 0 0.500745 0.234415 0.483333 +1 0 +0 0.475000 0.524590 0.390000 0.124113 0.664680 0.122972 0.016667 +0 1 +0.058823 0.785000 0.590164 0.210000 0.198582 0.381520 0.019214 0.050000 +0 1 +0.058823 0.630000 0.459016 0.290000 0.179669 0.427720 0.308711 0 +0 1 +0.647059 0.555000 0.688525 0.400000 0 0.697466 0.361657 0.400000 +1 0 +0.176471 0.870000 0.475410 0.220000 0.229314 0.490313 0.219898 0.250000 +1 0 +0.117647 0.695000 0.614754 0 0 0.381520 0.038002 0.133333 +0 1 +0.117647 0.500000 0.524590 0.230000 0 0.442623 0.123826 0 +0 1 +0.411765 0.805000 0.704918 0 0 0.453055 0.037148 0.433333 +1 0 +0.529412 0.920000 0.696721 0.150000 0 0.447094 0.484629 0.466667 +1 0 +0 0.490000 0.672131 0.150000 0.099291 0.375559 0.094364 0.016667 +0 1 +0.235294 0.615000 0.508197 0 0 0.476900 0.063194 0.233333 +1 0 +0.294118 0.220000 0.508197 0 0 0.372578 0.217336 0.250000 +0 1 +0.176471 0.815000 0.573770 0.180000 0.124113 0.470939 0.081127 0.116667 +1 0 +0 0.510000 0.426230 0 0 0.374069 0 0 +0 1 +0.058823 0.495000 0.590164 0.300000 0.021277 0.575261 0.142613 0 +0 1 +0.235294 0.660000 0.704918 0.310000 0 0.417288 0.145602 0.700000 +0 1 +0.058823 0 0.557377 0.350000 0 0.476900 0.132792 0.016667 +0 1 +0.235294 0.470000 0.532787 0.220000 0 0.368107 0.029889 0 +0 1 +0 0.510000 0.614754 0.230000 0 0 0.210931 0 +0 1 +0 0.505000 0.622951 0 0 0.532042 0.051238 0.083333 +0 1 +0 0.585000 0.655738 0.310000 0.062648 0.673621 0.004697 0.050000 +0 1 +0.176471 0.580000 0.606557 0.150000 0.124113 0.391952 0.012383 0.050000 +0 1 +0.117647 0.585000 0.737705 0.190000 0.083924 0.375559 0.100342 0 +0 1 +0.294118 0.425000 0.606557 0.220000 0 0.432191 0.489325 0.183333 +1 0 +0 0.620000 0.459016 0.130000 0.124113 0.324888 0.159693 0 +0 1 +0.058823 0.395000 0.614754 0.300000 0 0.476900 0.135781 0.016667 +0 1 +0.352941 0.570000 0 0 0 0 0.047395 0.083333 +0 1 +0.764706 0.380000 0.491803 0 0 0.488823 0.043552 0.333333 +0 1 +0.058823 0.395000 0.655738 0.250000 0.043735 0.378539 0.215628 0.016667 +0 1 +0 0.660000 0.639344 0 0 0.482861 0.134500 0 +0 1 +0.176471 0.865000 0.639344 0.390000 0.218676 0.503726 0.380871 0.166667 +1 0 +0.411765 0.485000 0.622951 0.320000 0.107565 0.609538 0.338599 0.183333 +1 0 +0.058823 0.395000 0.491803 0.420000 0.056738 0.648286 0.256191 0.033333 +0 1 +0.117647 0.540000 0.508197 0.320000 0.066194 0.375559 0.021349 0 +0 1 +0.117647 0.370000 0 0 0 0 0.010248 0.016667 +0 1 +0.529412 0.820000 0.639344 0 0 0.488823 0.029889 0.400000 +1 0 +0 0.760000 0.672131 0.390000 0.321513 0.618480 0.081981 0.100000 +0 1 +0.470588 0.970000 0.655738 0 0 0.388972 0.201964 0.766667 +0 1 +0.411765 0.570000 0.524590 0 0 0.408346 0.279249 0.216667 +1 0 +0.352941 0.720000 0.590164 0.270000 0.269504 0.505216 0.075576 0.316667 +0 1 +0.294118 0.550000 0.557377 0 0 0.387481 0.091375 0.150000 +0 1 +0.352941 0.625000 0.622951 0 0 0.503726 0.018360 0.550000 +1 0 +0.058823 0.580000 0.639344 0.290000 0.212766 0.538003 0.178480 0.066667 +0 1 +0.235294 0.645000 0.704918 0.200000 0.319149 0.523100 0.065329 0.033333 +0 1 +0.058823 0.650000 0.573770 0.130000 0.124113 0.385991 0.168232 0.016667 +0 1 +0.117647 0.480000 0.557377 0.130000 0.057920 0.314456 0.242955 0.083333 +0 1 +0.058823 0.945000 0.491803 0.230000 1 0.448584 0.136635 0.633333 +1 0 +0.411765 0.595000 0 0 0 0.375559 0.055935 0.266667 +0 1 +0.705882 0.700000 0.672131 0.430000 0.384161 0.584203 0.192143 0.616667 +1 0 +0.352941 0.495000 0.491803 0.190000 0.063830 0.400894 0.178907 0.183333 +0 1 +0.294118 0.660000 0.655738 0 0 0.399404 0.046114 0.800000 +0 1 +0 0.655000 0.721311 0 0 0.470939 0.283945 0.183333 +1 0 +0.294118 0.560000 0.540984 0 0 0.563338 0.078138 0.333333 +1 0 +0.176471 0.495000 0.442623 0.190000 0.101655 0.381520 0.032451 0.050000 +0 1 +0.176471 0.500000 0.557377 0.230000 0.095745 0.470939 0.371904 0.116667 +0 1 +0.588235 0.575000 0.803279 0 0 0.357675 0.403074 0.216667 +0 1 +0.588235 0.610000 0.557377 0 0 0.464978 0.076857 0.333333 +0 1 +0 0.475000 0.696721 0.250000 0.042553 0.557377 0.072160 0.050000 +1 0 +0.117647 0.450000 0.573770 0.170000 0 0.406855 0.002989 0.016667 +0 1 +0.117647 0.555000 0.491803 0 0 0.390462 0.113151 0.033333 +0 1 +0.117647 0.420000 0.409836 0.230000 0.089834 0.453055 0.380017 0 +0 1 +0.176471 0.965000 0.573770 0.310000 0 0.520119 0.069599 0.066667 +1 0 +0.058823 0.630000 0.491803 0 0 0.448584 0.115713 0.433333 +1 0 +0 0.685000 0.573770 0.380000 0 0.494784 0.039283 0.016667 +0 1 +0.352941 0.770000 0.606557 0.320000 0.228132 0.436662 0.324936 0.300000 +0 1 +0.117647 0.500000 0.540984 0.200000 0.106383 0.490313 0.336892 0.116667 +1 0 +0.058823 0.535000 0.557377 0.190000 0 0.394933 0.037148 0.050000 +0 1 +0.058823 0.860000 0.557377 0.490000 0.684397 0.631893 0.266439 0.116667 +1 0 +0.058823 0.595000 0.442623 0.130000 0.059102 0.332340 0.054227 0.050000 +0 1 +0.235294 0.570000 0.532787 0 0 0.326379 0.151153 0.266667 +0 1 +0.588235 0.840000 0.606557 0 0 0.566319 0.195986 0.216667 +1 0 +0 0.565000 0.622951 0 0 0.496274 0.085397 0.033333 +1 0 +0.705882 0.605000 0.639344 0.170000 0 0.394933 0.077284 0.683333 +0 1 +0.235294 0.575000 0.590164 0 0 0.430700 0.127242 0.416667 +1 0 +0.235294 0.610000 0.557377 0 0 0.521610 0.134927 0.133333 +0 1 +0.411765 0.570000 0.540984 0 0 0.488823 0.076857 0.350000 +1 0 +0.117647 0.985000 0.573770 0.450000 0.641844 0.454545 0.034159 0.533333 +1 0 +0.647059 0.635000 0.868852 0 0 0.581222 0.047822 0.500000 +0 1 +0.117647 0.560000 0.704918 0.420000 0.189125 0.572280 0.071734 0.116667 +0 1 +0.176471 0.695000 0.442623 0 0 0.381520 0.138343 0.016667 +1 0 +0.176471 0.480000 0.459016 0.340000 0.135934 0.368107 0.369769 0.300000 +0 1 +0.411765 0.510000 0.606557 0.400000 0.124113 0.554396 0.053800 0.400000 +0 1 +0.117647 0.465000 0.524590 0.320000 0.189125 0.566319 0.254483 0.033333 +1 0 +0.352941 0.515000 0.540984 0 0 0.362146 0.073014 0.133333 +0 1 +0.176471 0.390000 0.573770 0 0 0.484352 0.081981 0.300000 +0 1 +0.058823 0.545000 0.459016 0.210000 0.159574 0.375559 0.322374 0.033333 +0 1 +0 0.525000 0.737705 0 0 0.441133 0.050811 0.416667 +0 1 +0.117647 0.540000 0.426230 0.260000 0.074468 0.484352 0.102477 0.016667 +0 1 +0.117647 0.340000 0.573770 0.320000 0.078014 0.372578 0.046541 0.066667 +0 1 +0.235294 0.480000 0.459016 0.170000 0.057920 0.309985 0.111870 0.083333 +0 1 +0.235294 0.915000 0 0 0 0.423249 0.057216 0.250000 +1 0 +0 0.535000 0.508197 0.300000 0.087470 0.545455 0.289923 0.066667 +1 0 +0.058823 0.355000 0.639344 0.500000 0.053192 0.494784 0.146883 0 +0 1 +0.588235 0.450000 0.696721 0.320000 0 0.520119 0.318958 0.583333 +1 0 +0.176471 0.565000 0.360656 0.130000 0 0.333830 0.026473 0.016667 +0 1 +0.352941 0.525000 0.655738 0.280000 0 0.484352 0.341588 0.083333 +0 1 +0.529412 0.725000 0.655738 0.460000 0.153664 0.564829 0.238685 0.316667 +1 0 +0.058823 0.965000 0.409836 0.160000 0.443262 0.385991 0.246371 0.050000 +0 1 +0 0.595000 0.524590 0.180000 0.108747 0.520119 0.276260 0.033333 +0 1 +0 0.895000 0.409836 0.360000 0.187943 0.563338 0.160974 0.016667 +1 0 +0.117647 0.775000 0.606557 0.170000 0.113475 0.396423 0.151580 0.100000 +1 0 +0 0.670000 0.475410 0.200000 0.343972 0.393443 0.116994 0 +0 1 +0 0.595000 0.540984 0.270000 0 0.578241 0.077284 0.016667 +0 1 +0.176471 0.790000 0.622951 0.360000 0.289598 0.470939 0.330060 0.116667 +1 0 +0.117647 0.490000 0.491803 0.170000 0.141844 0.517139 0.051238 0.016667 +0 1 +0.117647 0.670000 0.573770 0 0 0.430700 0.198121 0.033333 +1 0 +0.235294 0.550000 0.754098 0 0 0.560358 0.048249 0.150000 +0 1 +0.352941 0.975000 0.573770 0 0 0.460507 0.106746 0.166667 +1 0 +0.352941 0.520000 0.606557 0.180000 0.184397 0.445604 0.274979 0.333333 +1 0 +0.470588 0.630000 0.721311 0.360000 0.127660 0.573770 0.115713 0.466667 +0 1 +0.294118 0.680000 0.672131 0 0 0 0.239966 0.800000 +0 1 +0.117647 0.410000 0.426230 0.220000 0.135934 0.424739 0.692143 0.066667 +0 1 +0 0.500000 0.573770 0.260000 0.059102 0.459016 0.221605 0 +0 1 +0.058823 0.640000 0.393443 0.450000 0.229314 0.603577 0.228437 0.050000 +1 0 +0 0.530000 0.573770 0.370000 0.174941 0.587183 0.225021 0.016667 +0 1 +0.235294 0.655000 0.557377 0.210000 0.196217 0.493294 0.035013 0.116667 +0 1 +0 0.865000 0.639344 0.320000 0.313239 0.692996 0.461571 0.616667 +0 1 +0.235294 0.475000 0.573770 0.320000 0 0.478390 0.228010 0.050000 +0 1 +0 0.690000 0 0 0 0.540984 0.365073 0.066667 +1 0 +0.705882 0.530000 0.655738 0 0 0.351714 0.025192 0.383333 +0 1 +0.470588 0.425000 0.450820 0.200000 0 0.363636 0.024765 0.350000 +0 1 +0.529412 0.780000 0.704918 0 0 0.369598 0.064902 0.533333 +1 0 +0.117647 0.610000 0.491803 0.180000 0.125296 0.444113 0.272844 0.016667 +0 1 +0.176471 0.650000 0.524590 0 0 0.344262 0.100769 0.016667 +0 1 +0.705882 0.700000 0.696721 0.330000 0 0.557377 0.070880 0.333333 +0 1 +0.117647 0.545000 0.754098 0 0 0.636364 0.327498 0.550000 +0 1 +0.176471 0.645000 0.524590 0.290000 0.135934 0.393443 0.060205 0.116667 +1 0 +0.117647 0.785000 0.606557 0.350000 0.520095 0.587183 0.023911 0.150000 +0 1 +0.470588 0.625000 0.786885 0 0 0 0.065756 0.550000 +1 0 +0.235294 0.680000 0.573770 0 0 0.464978 0.471392 0.016667 +1 0 +0.470588 0.500000 0.606557 0.400000 0.254137 0.587183 0.248933 0.366667 +1 0 +0 0.420000 0.524590 0.220000 0.078014 0.533532 0.199402 0 +0 1 +0 0.700000 0.532787 0.260000 0.153664 0.634873 0.150726 0.050000 +1 0 +0 0.540000 0.557377 0.200000 0 0.406855 0.302733 0.183333 +0 1 +0.058823 0.465000 0.573770 0.310000 0 0.453055 0.101196 0.033333 +0 1 +0.588235 0.375000 0.672131 0 0 0.496274 0.078992 0.283333 +0 1 +0.117647 0.645000 0.606557 0.260000 0.242317 0.494784 0.219044 0.066667 +0 1 +0.176471 0.495000 0.508197 0.190000 0.087470 0.324888 0.085824 0.083333 +0 1 +0.058823 0.540000 0.491803 0.460000 0.210402 0.529061 0.143894 0.050000 +0 1 +0 0.510000 0.524590 0.460000 0.092199 0.605067 0.178480 0 +0 1 +0.352941 0.460000 0.508197 0.320000 0.148936 0.476900 0.002989 0.416667 +0 1 +0.176471 0.900000 0.524590 0.250000 0.082742 0.506706 0.082408 0.083333 +0 1 +0.117647 0.645000 0 0 0 0.573770 0.096499 0.333333 +0 1 +0.588235 0.645000 0.622951 0.280000 0.144208 0.535022 0.086251 0.300000 +0 1 +0.176471 0.555000 0.508197 0 0 0.336811 0.027327 0 +0 1 +0.117647 0.790000 0.737705 0 0 0.470939 0.310418 0.750000 +1 0 +0.705882 0.460000 0.508197 0.070000 0.304965 0.411326 0.362084 0.383333 +1 0 +0.058823 0.355000 0.508197 0 0 0.324888 0.144321 0.083333 +0 1 +0.176471 0.560000 0.606557 0.300000 0 0.470939 0.050811 0.066667 +1 0 +0.058823 0.405000 0.590164 0.180000 0.047281 0.396423 0.087532 0.050000 +0 1 +0.411765 0.680000 0.606557 0.260000 0.159574 0.387481 0.242955 0.500000 +0 1 +0.470588 0.560000 0.590164 0 0 0.351714 0.325363 0.616667 +0 1 +0.176471 0.710000 0.655738 0.150000 0 0.482861 0.052092 0.700000 +0 1 +0.117647 0.505000 0.475410 0.170000 0.313239 0.360656 0.228864 0.033333 +0 1 +0.235294 0.625000 0.655738 0 0 0.481371 0.195559 0.100000 +1 0 +0.294118 0.715000 0.639344 0 0 0.670641 0.047822 0.433333 +0 1 +0.294118 0.525000 0.590164 0.290000 0.384161 0.549925 0.034586 0.116667 +0 1 +0 0.525000 0.688525 0 0 0.415797 0.283091 0.683333 +1 0 +0.529412 0.560000 0.672131 0.240000 0 0.420268 0.514091 0.483333 +1 0 +0 0.705000 0 0 0 0.631893 0.054227 0.133333 +1 0 +0.411765 0.750000 0.639344 0.290000 0.148936 0.524590 0.262169 0.550000 +1 0 +0.058823 0.905000 0.524590 0.300000 0.212766 0.508197 0.106746 0.283333 +1 0 +0.411765 0.470000 0.524590 0.250000 0.093381 0.496274 0.281810 0.333333 +0 1 +0.176471 0.935000 0.573770 0.220000 0.236407 0.542474 0.140905 0.250000 +1 0 +0.411765 0.980000 0.737705 0 0 0.593145 0.159266 0.333333 +1 0 +0.470588 0.600000 0.704918 0 0 0.423249 0.077284 0.016667 +1 0 +0 0.730000 0.573770 0 0 0.564829 0.109308 0.116667 +1 0 +0 0.630000 0.704918 0.270000 0.141844 0.408346 0.186593 0 +0 1 +0.411765 0.710000 0.491803 0.330000 0.224586 0.429210 0.260034 0.666667 +0 1 +0.117647 0.440000 0.475410 0.260000 0.018912 0.423249 0.293766 0.016667 +0 1 +0.529412 0.770000 0.639344 0.300000 0.118203 0.460507 0.036721 0.400000 +0 1 +0.058823 0.415000 0.557377 0 0 0.271237 0.233134 0.100000 +0 1 +0.470588 0.500000 0.622951 0 0 0.576751 0.047822 0.350000 +0 1 +0.117647 0.985000 0.573770 0.990000 0 0.517139 0.212212 0.683333 +1 0 +0 0.895000 0.737705 0.270000 0 0.657228 0.259607 0.033333 +1 0 +0.352941 0.950000 0.754098 0 0 0.529061 0.085397 0.750000 +1 0 +0.588235 0.895000 0.573770 0 0 0.523100 0.052092 0.266667 +0 1 +0.588235 0.805000 0.557377 0.230000 0.156028 0.380030 0.105892 0.433333 +1 0 +0.411765 0.665000 0.721311 0.150000 0.183215 0.482861 0.078565 0.266667 +0 1 +0.235294 0.705000 0.606557 0 0 0.411326 0.070880 0.316667 +0 1 +0 0.590000 0.688525 0.470000 0.271868 0.682563 0.201964 0.166667 +1 0 +0.235294 0.380000 0.508197 0 0 0.506706 0.133646 0.066667 +0 1 +0.235294 0.450000 0 0 0 0.417288 0.227156 0.166667 +0 1 +0.294118 0.720000 0.672131 0.260000 0.336879 0.476900 0.159693 0.616667 +1 0 +0.058823 0.560000 0.655738 0.450000 0.156028 0.518629 0.059351 0.050000 +0 1 +0 0.370000 0.426230 0.100000 0.042553 0.414307 0.081554 0.016667 +0 1 +0 0.495000 0 0 0 0.372578 0.074722 0.016667 +0 1 +0.117647 0.645000 0.688525 0 0 0.417288 0.087959 0.100000 +0 1 +0.235294 0.790000 0.639344 0 0 0.490313 0.309564 0.166667 +1 0 +0.529412 0.445000 0.508197 0 0 0.335320 0.027327 0.200000 +0 1 +0.176471 0.530000 0.442623 0.210000 0.186761 0.460507 0.091375 0.050000 +0 1 +0.294118 0.530000 0.672131 0.300000 0 0.588674 0.088813 0.283333 +0 1 +0.176471 0.600000 0.573770 0.300000 0.159574 0.639344 0.159693 0.150000 +0 1 +0.294118 0.365000 0.491803 0 0 0.399404 0.081127 0.100000 +0 1 +0.058823 0.530000 0.622951 0 0 0.558867 0.050811 0.083333 +0 1 +0.470588 0.545000 0.622951 0.390000 0.134752 0.415797 0.239966 0.166667 +1 0 +0.058823 0.485000 0.524590 0.190000 0.096927 0.271237 0.094364 0 +0 1 +0.176471 0.740000 0.540984 0.250000 0 0.484352 0.076003 0.016667 +0 1 +0.235294 0.495000 0.590164 0.170000 0 0.381520 0.092229 0.116667 +0 1 +0.058823 0.595000 0.721311 0.410000 0.200946 0.675112 0.183177 0.083333 +0 1 +0.058823 0.430000 0.540984 0.520000 0.076832 0.615499 0.358241 0.133333 +0 1 +0.470588 0.535000 0.655738 0 0 0.366617 0.332195 0.216667 +0 1 +0.058823 0.435000 0.639344 0.270000 0.037825 0.515648 0.009821 0.016667 +0 1 +0.294118 0.680000 0.688525 0.410000 0.104019 0.521610 0.088813 0.233333 +1 0 +0.470588 0.630000 0.606557 0.380000 0.088652 0.385991 0.035867 0.300000 +0 1 +0.058823 0.540000 0.721311 0.190000 0 0.403875 0.137489 0.050000 +0 1 +0.235294 0.670000 0.590164 0 0 0.354694 0.084970 0.650000 +1 0 +0.058823 0.695000 0.508197 0.410000 0.567376 0.606557 0.195559 0 +0 1 +0.117647 0.280000 0.459016 0.280000 0.053192 0.360656 0.108454 0.016667 +0 1 +0.058823 0.460000 0.508197 0.250000 0.048463 0.290611 0.172502 0.066667 +0 1 +0.352941 0.810000 0.508197 0 0 0.362146 0.042698 0.483333 +1 0 +0.058823 0 0.393443 0.200000 0 0.368107 0.026473 0.016667 +0 1 +0.235294 0.720000 0.475410 0.280000 0.165485 0.439642 0.089240 0.266667 +0 1 +0.294118 0.695000 0.524590 0.350000 0.165485 0.426230 0.142186 0.083333 +0 1 +0.529412 0.560000 0.672131 0.320000 0.206856 0.509687 0.077711 0.250000 +1 0 +0.058823 0.595000 0.704918 0.390000 0.260047 0.679583 0.311699 0.133333 +1 0 +0.117647 0.560000 0.614754 0.320000 0 0.532042 0.029889 0 +0 1 +0.470588 0.770000 0.639344 0.320000 0 0.482861 0.155850 0.400000 +1 0 +0.117647 0.505000 0.475410 0.350000 0.106383 0.324888 0.032878 0.016667 +0 1 +0.176471 0.705000 0 0 0 0.447094 0.291631 0.100000 +1 0 +0 0.595000 0 0 0 0.482861 0.026900 0.050000 +1 0 +0.058823 0.680000 0.606557 0.500000 0.241135 0.557377 0.137062 0.050000 +0 1 +0.058823 0.655000 0.524590 0.140000 0.490544 0.353204 0.132792 0 +0 1 +0.058823 0.440000 0.508197 0.240000 0.052010 0.445604 0.146883 0.033333 +0 1 +0 0.420000 0.672131 0.310000 0.147754 0.569300 0.066183 0.033333 +0 1 +0.117647 0.730000 0 0 0 0.409836 0.069172 0.116667 +1 0 +0.235294 0.555000 0.590164 0.470000 0.244681 0.552906 0.560205 0.583333 +1 0 +0.470588 0.600000 0.639344 0 0 0.372578 0.141332 0.716667 +0 1 +0.058823 0.440000 0.245902 0.420000 0.117021 0.819672 0.178480 0.083333 +1 0 +0 0.525000 0.557377 0.220000 0 0.298063 0.067464 0.016667 +0 1 +0.058823 0.425000 0.540984 0.290000 0 0.396423 0.116567 0.166667 +0 1 +0 0.470000 0 0 0 0 0.076003 0.066667 +0 1 +0.058823 0.480000 0.524590 0.270000 0.102837 0.494784 0.090094 0 +0 1 +1 0.815000 0.590164 0.410000 0.134752 0.609538 0.315542 0.433333 +1 0 +0.352941 0.555000 0.524590 0.390000 0 0.509687 0.077711 0.050000 +0 1 +0.235294 0.730000 0.696721 0.270000 0.118203 0.430700 0.047395 0.100000 +0 1 +0.117647 0.355000 0.573770 0.270000 0 0.417288 0.216909 0.016667 +0 1 +0.352941 0.825000 0.557377 0.260000 0.198582 0.500745 0.236123 0.466667 +0 1 +0.058823 0.605000 0.639344 0.390000 0.087470 0.581222 0.078138 0.116667 +0 1 +0.411765 0.760000 0.721311 0.440000 0 0.745156 0.110589 0.250000 +1 0 +0.294118 0.520000 0.606557 0 0 0.429210 0.032024 0.450000 +0 1 +0.588235 0.540000 0.540984 0 0 0.482861 0.082835 0.350000 +1 0 +0.058823 0.675000 0.442623 0 0 0.397914 0.260034 0.683333 +0 1 +0.058823 0.745000 0.557377 0.290000 0.150118 0.436662 0.115713 0.350000 +1 0 +0.294118 0.485000 0.622951 0.270000 0 0.530551 0.128096 0.516667 +1 0 +0.352941 0.540000 0.360656 0.200000 0.153664 0.357675 0.313834 0.233333 +0 1 +0.764706 0.520000 0.590164 0 0 0.464978 0.165243 0.283333 +1 0 +0 0.365000 0 0 0 0.314456 0.112724 0.066667 +0 1 +0.235294 0.920000 0.639344 0.390000 0.327423 0.551416 0.079419 0.166667 +1 0 +0.705882 0.440000 0.606557 0.400000 0.063830 0.526080 0.128096 0.450000 +0 1 +0.176471 0.435000 0.491803 0.180000 0 0.324888 0.156277 0 +0 1 +0.294118 0.580000 0.606557 0.290000 0 0.481371 0.248506 0.233333 +1 0 +0.058823 0.515000 0.245902 0.380000 0.098109 0.645306 0.044833 0.200000 +0 1 +0.294118 0.390000 0.393443 0 0 0.502235 0.245944 0.066667 +0 1 +0.529412 0.650000 0.573770 0 0 0.509687 0.245090 0.400000 +1 0 +0.058823 0.600000 0.655738 0.480000 0.236407 0.579732 0.462852 0.333333 +0 1 +0.294118 0 0.655738 0.320000 0 0.611028 0.114432 0.266667 +1 0 +0.176471 0.400000 0.672131 0.310000 0.082742 0.509687 0.518360 0.100000 +1 0 +0.117647 0.560000 0.540984 0.220000 0 0.372578 0.097780 0.050000 +0 1 +0.352941 0.455000 0 0 0 0.444113 0.180615 0.166667 +0 1 +0.176471 0.865000 0.688525 0.330000 0.560284 0.532042 0.076857 0.016667 +1 0 +0.352941 0 0.557377 0.410000 0 0.581222 0.277114 0.333333 +1 0 +0 0.570000 0.655738 0.340000 0.336879 0.658718 0.038002 0.100000 +0 1 +0.176471 0.605000 0.426230 0 0 0.536513 0.020922 0.066667 +1 0 +0.529412 0.455000 0.557377 0 0 0.360656 0.052092 0.616667 +0 1 +0.470588 0.550000 0.622951 0 0 0.414307 0.067891 0.616667 +0 1 +0.529412 0.600000 0.590164 0.220000 0.066194 0.309985 0.279675 0.450000 +0 1 +0.235294 0.865000 0.573770 0.140000 0.198582 0.442623 0.120837 0.200000 +1 0 +0 0.825000 0.737705 0.330000 0.803783 0.779434 0.149018 0.033333 +0 1 +0.176471 0.540000 0.508197 0.240000 0 0.387481 0.061913 0.066667 +0 1 +0.176471 0.790000 0.573770 0.300000 0.387707 0.529061 0.113578 0.233333 +1 0 +0.411765 0.795000 0.540984 0 0 0.453055 0.130231 0.250000 +1 0 +0.294118 0.735000 0.614754 0 0 0.445604 0.152007 0.116667 +0 1 +0 0.630000 0.688525 0.290000 0.254137 0.457526 0.188728 0.050000 +0 1 +0.117647 0.640000 0.524590 0.420000 0 0.596125 0.436806 0.050000 +0 1 +0 0.655000 0.540984 0.400000 0 0.511177 0.050384 0.016667 +1 0 +0.294118 0.685000 0.885246 0 0 0.727273 0.063621 0.266667 +1 0 +0 0.640000 0.557377 0.190000 0.212766 0.454545 0.560632 0.066667 +1 0 +0.176471 0.575000 0.540984 0.390000 0.165485 0.567809 0.030743 0.116667 +0 1 +0.058823 0.665000 0.836066 0.280000 0.165485 0.488823 0.066610 0.400000 +1 0 +0.294118 0.840000 0.524590 0 0 0.490313 0.024338 0.333333 +1 0 +0 0.500000 0.721311 0.600000 0.130024 0.697466 0.377455 0.166667 +0 1 +0.647059 0.675000 0 0 0 0.779434 0.213493 0.316667 +1 0 +0.294118 0.605000 0.590164 0.230000 0.132388 0.390462 0.071307 0.150000 +0 1 +0.117647 0.540000 0.655738 0 0 0.402385 0.077284 0.516667 +1 0 +0 0.625000 0.786885 0 0 0.335320 0.078565 0 +0 1 +0.764706 0.530000 0.590164 0.540000 0 0.545455 0.042698 0.400000 +0 1 +0.117647 0.540000 0.508197 0.100000 0.328605 0.377049 0.342869 0.016667 +0 1 +0.294118 0.495000 0.442623 0.280000 0.098109 0.506706 0.179761 0.150000 +0 1 +0 0.690000 0.491803 0.350000 0.197400 0.515648 0.194705 0 +1 0 +0.117647 0.650000 0.786885 0 0 0.336811 0.081127 0 +0 1 +0 0.655000 0 0 0 0.643815 0.081981 0.083333 +1 0 +0.647059 0.425000 0.606557 0 0 0.448584 0.094791 0.233333 +0 1 +0.117647 0.625000 0.491803 0.200000 0.165485 0.503726 0.004270 0.166667 +0 1 +0 0.900000 0.737705 0.260000 0.106383 0.543964 0.100769 0.233333 +1 0 +0.176471 0.420000 0.590164 0.320000 0 0.554396 0.080700 0.116667 +0 1 +0.058823 0.475000 0.672131 0.250000 0.212766 0.521610 0.066183 0.366667 +1 0 +0 0.900000 0.639344 0.630000 0.016548 0.885246 1 0.066667 +1 0 +0.235294 0.545000 0.524590 0.440000 0.117021 0.518629 0.353117 0.083333 +1 0 +0.117647 0.495000 0.491803 0.170000 0.189125 0.545455 0.160120 0 +0 1 +0.235294 0.475000 0.524590 0 0 0.476900 0.035440 0.166667 +1 0 +0.117647 0.600000 0.442623 0 0 0.399404 0.160974 0.100000 +0 1 +0.117647 0.445000 0.737705 0.300000 0 0.499255 0.091375 0.350000 +0 1 +0.058823 0.590000 0.475410 0.360000 0.111111 0.496274 0.078138 0.033333 +0 1 +0.294118 0.830000 0.590164 0.190000 0.206856 0.384501 0.217336 0.500000 +1 0 +0.470588 0.600000 0 0 0 0.447094 0.044833 0.283333 +1 0 +0.588235 0.575000 0 0 0 0.526080 0.023911 0.133333 +0 1 +0.235294 0.550000 0.540984 0 0 0.475410 0.167805 0.133333 +0 1 +0.411765 0.735000 0.622951 0 0 0.587183 0.076430 0.366667 +1 0 +0.117647 0.405000 0.491803 0.220000 0 0.412817 0.090521 0.066667 +0 1 +0.294118 0.475000 0.590164 0.330000 0 0.561848 0.124680 0.100000 +0 1 +0.294118 0.775000 0.688525 0.440000 0.644208 0.576751 0.230999 0.216667 +0 1 +0.235294 0.515000 0.491803 0.330000 0.226950 0.357675 0.379163 0.200000 +0 1 +0.352941 0.490000 0.475410 0.330000 0.224586 0.506706 0.150299 0.366667 +0 1 +0.352941 0.570000 0.721311 0 0 0.414307 0.072160 0.750000 +0 1 +0.058823 0.365000 0.409836 0.100000 0 0.342772 0.072587 0 +0 1 +0.588235 0.505000 0.704918 0.370000 0 0.679583 0.451751 0.283333 +1 0 +0.058823 0.595000 0.360656 0.470000 0.074468 0.529061 0.086251 0.066667 +0 1 +0.058823 0.765000 0.672131 0.420000 0.573286 0.605067 0.260034 0.033333 +0 1 +0.294118 0.630000 0.639344 0.270000 0.026005 0.441133 0.154142 0.316667 +0 1 +0.176471 0.415000 0.475410 0.310000 0.021277 0.511177 0.110162 0.066667 +0 1 +0 0.620000 0.573770 0.200000 0 0.408346 0.075149 0.250000 +1 0 +0.235294 0.985000 0.573770 0.390000 0.879433 0.546945 0.961144 0.166667 +0 1 +0.235294 0.585000 0.524590 0.270000 0.141844 0.494784 0.064902 0.050000 +0 1 +0.176471 0.620000 0.655738 0.330000 0.153664 0.494784 0.096926 0.083333 +0 1 +0 0.390000 0.721311 0.290000 0.047281 0.549925 0.152007 0 +0 1 +0.058823 0.450000 0.508197 0.120000 0.050827 0.405365 0.214347 0.050000 +0 1 +0.470588 0.895000 0.590164 0.420000 0.153664 0.487332 0.273698 0.250000 +1 0 +0 0.520000 0.524590 0.370000 0.075650 0.500745 0.184458 0.016667 +1 0 +0.352941 0.465000 0.409836 0.300000 0.075650 0.427720 0.118702 0.033333 +0 1 +0.117647 0.570000 0.557377 0.220000 0 0.427720 0.005978 0.066667 +0 1 +0.529412 0.285000 0.655738 0.370000 0 0.488823 0.007686 0.333333 +0 1 +0.058823 0.475000 0.491803 0.180000 0.068558 0.356185 0.077711 0.016667 +0 1 +0.352941 0.670000 0.573770 0.230000 0.153664 0.527571 0.198121 0.133333 +1 0 +0.058823 0.620000 0.491803 0.320000 0 0.533532 0.186166 0 +0 1 +0.588235 0.610000 0.639344 0.310000 0 0.411326 0.185312 0.400000 +0 1 +0 0.990000 0.540984 0.320000 0.323877 0.615499 0.181042 0.116667 +1 0 +0.411765 0.975000 0.573770 0.330000 0.171395 0.374069 0.036294 0.566667 +1 0 +0.176471 0.450000 0.639344 0 0 0.636364 0.205380 0 +0 1 +0.235294 0.425000 0.475410 0.220000 0.057920 0.414307 0.097353 0.116667 +0 1 +0.117647 0.500000 0.573770 0.520000 0.067376 0.603577 0.255764 0.066667 +0 1 +0.058823 0.695000 0.377049 0.190000 0.098109 0.427720 0.245944 0.016667 +0 1 +0.117647 0.455000 0.508197 0 0 0.406855 0.190863 0.016667 +0 1 +0.058823 0.495000 0.475410 0.100000 0 0.378539 0.201964 0 +0 1 +0.176471 0.495000 0.655738 0.110000 0.075650 0.287630 0.087959 0.150000 +0 1 +0.294118 0.640000 0.655738 0 0 0.515648 0.028181 0.400000 +0 1 +0 0.585000 0.540984 0.310000 0.222222 0.459016 0.177199 0.016667 +0 1 +0 0.615000 0.721311 0.370000 0 0.524590 0.050811 0.133333 +0 1 +0.117647 0.340000 0.508197 0.130000 0.017731 0.299553 0.076430 0.033333 +0 1 +0.352941 0.970000 0.639344 0 0 0.350224 0.021776 0.633333 +1 0 +0.117647 0.450000 0.491803 0 0 0.350224 0.048249 0.066667 +0 1 +0.176471 0.850000 0.524590 0.370000 0.265957 0.514158 0.118702 0.150000 +1 0 +0.529412 0.725000 0.721311 0.340000 0.195035 0.451565 0.295901 0.533333 +1 0 +0.352941 0.525000 0.573770 0.320000 0.080378 0.459016 0.018787 0.266667 +0 1 diff --git a/lib/ann/fann/datasets/diabetes.train b/lib/ann/fann/datasets/diabetes.train new file mode 100644 index 0000000..0594fef --- /dev/null +++ b/lib/ann/fann/datasets/diabetes.train @@ -0,0 +1,769 @@ +384 8 2 +0.058823 0.445000 0.196721 0.190000 0.029551 0.414307 0.205380 0 +0 1 +0 0.590000 0.524590 0.230000 0.105201 0 0.705807 0 +0 1 +0.058823 0.720000 0.672131 0.400000 0 0.615499 0.225875 0.116667 +0 1 +0 0.825000 0.622951 0.430000 0.301418 0.713860 0.077284 0.083333 +0 1 +0.058823 0.510000 0.606557 0 0 0.588674 0.091802 0.350000 +1 0 +0.058823 0.450000 0.557377 0.080000 0 0.365127 0.452605 0.250000 +0 1 +0.058823 0.575000 0.573770 0.300000 0.113475 0.515648 0.192570 0.183333 +1 0 +0.235294 0.475000 0.491803 0.320000 0 0.527571 0.087959 0.116667 +0 1 +0.058823 0.640000 0.721311 0.390000 0.130024 0.543964 0.418019 0.266667 +1 0 +0.176471 0.400000 0 0 0 0 0.040991 0.016667 +0 1 +0.058823 0.840000 0.721311 0.290000 0 0.521610 0.353117 0.516667 +1 0 +0 0.475000 0.655738 0.450000 0.108747 0.543964 0.107600 0.083333 +0 1 +0.117647 0.495000 0.426230 0.150000 0.111111 0.366617 0.238685 0 +0 1 +0.470588 0.985000 0.606557 0 0 0.385991 0.475235 0.300000 +1 0 +0.058823 0.585000 0.721311 0.240000 0.171395 0.514158 0.138770 0.316667 +1 0 +0.058823 0.815000 0.590164 0 0 0.581222 0.488471 0.200000 +1 0 +0.117647 0.460000 0.426230 0 0 0.448584 0.026900 0.016667 +0 1 +0.117647 0.560000 0.557377 0.220000 0.111111 0.508197 0.101196 0.083333 +0 1 +0.058823 0.475000 0.540984 0.130000 0.044917 0.292101 0.109308 0.066667 +0 1 +0.058823 0.485000 0.573770 0.150000 0 0.271237 0.029462 0 +0 1 +0.352941 0.545000 0.491803 0.270000 0 0.372578 0.054654 0.100000 +0 1 +0.058823 0.405000 0.606557 0.410000 0.067376 0.690015 0.434671 0.183333 +0 1 +0.294118 0.545000 0.508197 0.410000 0.152482 0.533532 0.186166 0.066667 +1 0 +0.588235 0.575000 0 0 0 0 0.078138 0.150000 +1 0 +0.117647 0.620000 0.557377 0.280000 0.242317 0.490313 0.340307 0.150000 +1 0 +0.294118 0.440000 0.639344 0.300000 0 0.411326 0.076857 0.266667 +0 1 +0.235294 0.735000 0.606557 0.250000 0.346336 0.520119 0.131085 0.150000 +0 1 +0 0.615000 0.590164 0 0 0.540984 0.076857 0.516667 +1 0 +0.588235 0.555000 0.573770 0.270000 0 0.409836 0.026900 0.316667 +1 0 +0.411765 0.415000 0.639344 0.260000 0.083924 0.436662 0.294193 0.250000 +0 1 +0.058823 0.585000 0.491803 0.230000 0.125296 0.503726 0.165670 0.100000 +0 1 +0.294118 0.620000 0.606557 0 0 0.506706 0.060632 0.283333 +1 0 +0.176471 0.615000 0.819672 0.350000 0.283688 0.853949 0.342442 0.016667 +0 1 +0.235294 0.780000 0.614754 0 0 0.719821 0.068318 0.183333 +1 0 +0 0.835000 0 0 0 0.481371 0.324936 0.150000 +1 0 +0.470588 0.455000 0.672131 0 0 0.530551 0.217336 0.783333 +0 1 +0.411765 0.535000 0.606557 0 0 0.441133 0.075149 0.166667 +1 0 +0.176471 0.510000 0.606557 0 0 0.439642 0.018360 0.183333 +0 1 +0.176471 0.650000 0.639344 0.230000 0.093381 0.423249 0.104611 0.216667 +1 0 +0.294118 0.735000 0.639344 0 0 0.502235 0.059778 0.733333 +0 1 +0.058823 0.735000 0.770492 0.410000 0 0.734724 0.119556 0.100000 +1 0 +0.294118 0.440000 0.540984 0.210000 0.027187 0.363636 0.112724 0.150000 +0 1 +0 0.535000 0.491803 0.250000 0 0.393443 0.023484 0.033333 +0 1 +0.117647 0.440000 0.606557 0.190000 0.062648 0.432191 0.064475 0.016667 +0 1 +0.411765 0.685000 0.737705 0.410000 0 0.476900 0.133646 0.300000 +0 1 +0.058823 0.525000 0.475410 0 0 0.362146 0.046541 0 +0 1 +0 0.905000 0.721311 0.440000 0.602837 0.645306 0.061486 0.083333 +1 0 +0.176471 0.865000 0.672131 0.480000 0.549645 0.572280 0.879163 0.066667 +1 0 +0.058823 0.640000 0.803279 0.410000 0.068558 0.476900 0.530743 0.200000 +1 0 +0.176471 0.555000 0.459016 0.390000 0 0.448584 0.204526 0.150000 +0 1 +0 0.505000 0.508197 0 0 0.326379 0.110162 0.066667 +0 1 +0.058823 0.690000 0.672131 0 0 0.597615 0.067464 0.116667 +0 1 +0.117647 0.500000 0.442623 0.280000 0.124113 0.563338 0.179334 0.050000 +0 1 +0.176471 0.555000 0.737705 0.120000 0.092199 0.423249 0.178053 0.133333 +0 1 +0.470588 0.370000 0.573770 0.400000 0.057920 0.526080 0.267720 0.300000 +0 1 +0 0.675000 0.770492 0.460000 0.171395 0.605067 0.087959 0.083333 +0 1 +0.411765 0.920000 0.688525 0.330000 0 0.529061 0.118275 0.333333 +1 0 +0.235294 0.945000 0.901639 0.310000 0 0.424739 0.257045 0.266667 +0 1 +0.058823 0.820000 0.672131 0.430000 0.079196 0.488823 0.112297 0.483333 +0 1 +0.176471 0.660000 0.655738 0 0 0.512668 0.138343 0.383333 +1 0 +0.529412 0.820000 0.688525 0.210000 0 0.459016 0.321520 0.183333 +1 0 +0.588235 0.740000 0.688525 0.480000 0.280142 0.560358 0.394108 0.500000 +1 0 +0.352941 0.755000 0.508197 0.310000 0.141844 0.529061 0.262169 0.116667 +0 1 +0.470588 0.665000 0.590164 0 0 0.490313 0.081981 0.300000 +1 0 +0.117647 0.525000 0.475410 0.400000 0.111111 0.520119 0.062767 0.066667 +0 1 +0.235294 0.495000 0.557377 0.380000 0 0.488823 0.028608 0.200000 +0 1 +0.058823 0.995000 0.622951 0.430000 0 0.639344 0.561913 0.016667 +1 0 +0 0.485000 0.524590 0.360000 0.118203 0.548435 0.222886 0.066667 +0 1 +0.117647 0.610000 0.622951 0.270000 0.236407 0.535022 0.172929 0.083333 +0 1 +0.058823 0.625000 0.573770 0.240000 0.130024 0.362146 0.061059 0.066667 +0 1 +0.058823 0.480000 1 0 0 0.333830 0.055081 0.100000 +0 1 +0.117647 0.550000 0.606557 0.290000 0.147754 0.482861 0.264731 0.100000 +0 1 +0.117647 0.595000 0 0 0 0.292101 0.321947 0.850000 +0 1 +0.058823 0.570000 0.540984 0.360000 0.236407 0.567809 0.090094 0 +0 1 +0.235294 0.710000 0.704918 0 0 0.655738 0.242101 0.016667 +1 0 +0.176471 0.445000 0.606557 0.160000 0.100473 0.453055 0.201964 0.283333 +0 1 +0.294118 0.695000 0.655738 0.350000 0.189125 0.470939 0.120837 0.066667 +1 0 +0 0.705000 0.688525 0.260000 0 0.482861 0.151580 0.016667 +0 1 +0.117647 0.600000 0.622951 0.370000 0.124113 0.591654 0.058497 0.133333 +0 1 +0.588235 0.460000 0.508197 0 0 0.385991 0.038002 0.166667 +0 1 +0.588235 0.470000 0.590164 0.180000 0 0.344262 0.220751 0.583333 +0 1 +0.117647 0.640000 0.639344 0.370000 0.215130 0.645306 0.489325 0.166667 +1 0 +0.411765 0.680000 0.737705 0 0 0.445604 0.056362 0.483333 +0 1 +0.764706 0.790000 0.934426 0 0 0.630402 0.076430 0.383333 +1 0 +0 0.565000 0.655738 0.160000 0 0.461997 0.339880 0 +0 1 +0.411765 0.935000 0.409836 0.330000 0.463357 0.505216 0.319385 0.216667 +1 0 +0 0.685000 0.688525 0.270000 0 0.406855 0.065329 0.633333 +0 1 +0.294118 0.385000 0.672131 0.410000 0.049645 0.533532 0.033305 0.233333 +0 1 +0.411765 0.515000 0.540984 0.320000 0 0.582712 0.113578 0.166667 +1 0 +0 0.725000 0 0 0 0.658718 0.235696 0.166667 +1 0 +0.058823 0.555000 0.704918 0.190000 0 0.448584 0.027754 0.033333 +0 1 +0 0.755000 0.737705 0.460000 0 0.627422 0.125107 0 +1 0 +0.058823 0 0.606557 0.200000 0.027187 0.412817 0.094364 0 +0 1 +0.058823 0.440000 0.639344 0.290000 0.089834 0.476900 0.122545 0.133333 +0 1 +0.294118 0.580000 0.606557 0 0 0.381520 0.052519 0.150000 +0 1 +0 0.685000 0.557377 0.140000 0.174941 0.369598 0.027754 0 +0 1 +0.764706 0.530000 0.573770 0 0 0.509687 0.073868 0.516667 +0 1 +0 0.525000 0.524590 0.410000 0.167849 0.618480 0.040564 0.016667 +0 1 +0.058823 0.455000 0.524590 0.240000 0 0.435171 0.048676 0 +0 1 +0.176471 0.420000 0.557377 0.300000 0.125296 0.475410 0.219044 0.066667 +0 1 +0.117647 0.530000 0.524590 0.350000 0.140662 0.454545 0.564475 0.216667 +0 1 +0.764706 0.725000 0.672131 0.190000 0.130024 0.330849 0.071307 0.600000 +0 1 +0.117647 0.425000 0.532787 0 0 0.590164 0.363792 0.100000 +0 1 +0.058823 0.515000 0.655738 0.110000 0.096927 0.289121 0.176345 0.016667 +0 1 +0.176471 0.305000 0.672131 0.280000 0 0.512668 0.070453 0.416667 +0 1 +0.235294 0.730000 0.639344 0 0 0.573770 0.188728 0.766667 +1 0 +0.470588 0.775000 0.508197 0.260000 0.585106 0.506706 0.198548 0.416667 +1 0 +0.176471 0.855000 0.590164 0.330000 0.159574 0.496274 0.051665 0.050000 +1 0 +0.352941 0.625000 0.557377 0.300000 0.141844 0.447094 0.164816 0.183333 +0 1 +0.235294 0.495000 0.622951 0.150000 0.060284 0.345753 0.061913 0 +0 1 +0.529412 0.620000 0.573770 0.330000 0.475177 0.527571 0.087105 0.216667 +0 1 +0.764706 0.630000 0.737705 0 0 0.646796 0.215628 0.350000 +1 0 +0.117647 0.575000 0.524590 0.220000 0 0.459016 0.146456 0 +0 1 +0.117647 0.875000 0.721311 0 0 0.341282 0.105892 0.016667 +0 1 +0.294118 0.545000 0.614754 0.260000 0 0.536513 0.199829 0.650000 +0 1 +0.058823 0.715000 0.704918 0.300000 0.390071 0.448584 0.347566 0.033333 +0 1 +0.235294 0.640000 0.573770 0 0 0.511177 0.096072 0.050000 +0 1 +0.058823 0.650000 0.491803 0.230000 0.200946 0.426230 0.262169 0 +0 1 +0.352941 0.585000 0.786885 0 0 0.427720 0.033732 0.150000 +0 1 +0.352941 0.625000 0.639344 0.310000 0 0.411326 0.207942 0.466667 +1 0 +0.352941 0.670000 0.655738 0.370000 0.437352 0.688525 0.068318 0.416667 +1 0 +0.529412 0.855000 0.901639 0.240000 0.283688 0.676602 0.274552 0.550000 +1 0 +0.411765 0.530000 0.754098 0.180000 0 0.338301 0.067037 0.450000 +0 1 +0.764706 0.645000 0 0.300000 0 0.594635 0.209650 0.383333 +1 0 +0.117647 0.435000 0 0.230000 0 0.430700 0.296755 0.066667 +0 1 +0.588235 0.810000 0.688525 0 0 0.412817 0.044406 0.550000 +0 1 +0.058823 0.555000 0.508197 0.130000 0.215130 0.357675 0.025619 0.033333 +0 1 +0.176471 0.630000 0.721311 0.410000 0.277778 0.585693 0.267293 0.100000 +0 1 +0.411765 0.665000 0.688525 0 0 0.599106 0.263877 0.266667 +0 1 +0.058823 0.445000 0.622951 0.340000 0.043735 0.464978 0.048676 0.033333 +0 1 +0.647059 0.775000 0.622951 0.280000 0.177305 0.496274 0.544406 0.500000 +1 0 +0.117647 0.635000 0.377049 0.210000 0.395981 0.512668 0.041845 0.016667 +0 1 +0.058823 0.580000 0.573770 0.280000 0 0.408346 0.053800 0 +0 1 +0 0.735000 0.696721 0.540000 0 0.637854 0.126815 0.050000 +0 1 +0 0.810000 0.622951 0.360000 0 0.739195 0.122118 0.083333 +1 0 +0 0.465000 0.819672 0.390000 0.085106 0.646796 0.402647 0.233333 +0 1 +0.058823 0.610000 0.524590 0.320000 0.184397 0.523100 0.262169 0.150000 +1 0 +0.176471 0.625000 0.475410 0 0 0.470939 0.031170 0.050000 +0 1 +0.294118 0.430000 0.557377 0.280000 0.083924 0.450075 0.122118 0.050000 +0 1 +0 0.940000 0.672131 0.140000 0.218676 0.476900 0.257899 0.016667 +1 0 +0.647059 0.715000 0.770492 0.330000 0.172577 0.545455 0.075149 0.500000 +1 0 +0.235294 0.420000 0.737705 0.230000 0.066194 0.588674 0.034586 0.066667 +0 1 +0.058823 0.500000 0.540984 0.150000 0.066194 0.351714 0.251067 0.083333 +0 1 +0.176471 0.810000 0.426230 0.380000 0 0.554396 0.245090 0.050000 +1 0 +0.470588 0.420000 0.606557 0.310000 0 0.570790 0.161827 0.300000 +0 1 +0.117647 0.420000 0 0 0 0 0.096499 0 +0 1 +0 0.885000 0.491803 0.290000 0.565012 0.515648 0.424424 0 +1 0 +0.352941 0.645000 0.737705 0.070000 0.385343 0.292101 0.215201 0.650000 +0 1 +0 0.805000 0.409836 0 0 0.326379 0.075149 0.733333 +0 1 +0.647059 0.600000 0.655738 0.370000 0.177305 0.630402 0.301879 0.450000 +1 0 +0.176471 0.410000 0.573770 0 0 0.314456 0.132792 0.066667 +0 1 +0.235294 0.590000 0.573770 0 0 0.663189 0.352690 0.083333 +0 1 +0.470588 0.930000 0.737705 0.350000 0.265957 0.514158 0.147310 0.266667 +1 0 +0.176471 0.515000 0.590164 0.300000 0.179669 0.411326 0.278395 0.100000 +0 1 +0.058823 0.500000 0.590164 0.120000 0.082742 0.377049 0.247652 0.116667 +0 1 +0.647059 0.680000 0.688525 0.350000 0.153664 0.421759 0.077711 0.350000 +1 0 +0.058823 0.905000 0.639344 0.420000 0.346336 0.596125 0.503843 0.016667 +1 0 +0.117647 0.460000 0.508197 0.280000 0 0.470939 0.022203 0.050000 +0 1 +0.647059 0.690000 0.622951 0 0 0.494784 0.146029 0.233333 +0 1 +0.058823 0.465000 0.459016 0.110000 0 0.335320 0.144748 0.016667 +0 1 +0.235294 0.615000 0.655738 0.150000 0.208038 0.476900 0.155850 0.216667 +0 1 +0.058823 0.625000 0.409836 0.400000 0.197400 0.496274 0.377455 0.116667 +1 0 +0.529412 0.530000 0.426230 0 0 0.464978 0.128950 0.350000 +0 1 +0.470588 0.715000 0.540984 0 0 0.520119 0.021776 0.333333 +1 0 +0.294118 0.585000 0.704918 0.300000 0.124113 0.582712 0.073868 0.350000 +0 1 +0.117647 0.525000 0.614754 0 0 0.347243 0.205807 0.533333 +0 1 +0.411765 0.525000 0 0 0 0 0.096926 0.050000 +0 1 +0.411765 0.530000 0.491803 0.240000 0 0.394933 0.093083 0.133333 +1 0 +0.529412 0.760000 0.639344 0.340000 0.202128 0.509687 0.347993 0.200000 +1 0 +0.117647 0.510000 0.704918 0.360000 0.141844 0.678092 0.020922 0.033333 +1 0 +0.470588 0.915000 0.524590 0 0 0.347243 0.253629 0.183333 +1 0 +0 0.430000 0.557377 0.320000 0 0.533532 0.068318 0.066667 +0 1 +0 0.520000 0.524590 0.230000 0.137116 0.414307 0.160547 0.033333 +0 1 +0.117647 0.375000 0.524590 0.240000 0.065012 0.442623 0.124680 0.200000 +0 1 +0 0.645000 0.655738 0 0 0.464978 0.266866 0.133333 +0 1 +0.235294 0.685000 0.688525 0 0 0.464978 0.074295 0.150000 +0 1 +0.235294 0.585000 0.508197 0.120000 0 0.442623 0.128950 0.150000 +1 0 +0.294118 0.650000 0.672131 0 0 0.582712 0.374893 0.266667 +1 0 +0.235294 0.720000 0.672131 0.320000 0 0.573770 0.203245 0.266667 +1 0 +0.294118 0.495000 0.606557 0.270000 0 0.432191 0.053373 0.183333 +0 1 +0.058823 0.485000 0.573770 0.400000 0 0.567809 0.059778 0.150000 +0 1 +0.058823 0.420000 0.524590 0.230000 0.135934 0.549925 0.167805 0.116667 +0 1 +0.411765 0.890000 0.688525 0 0 0.594635 0.108027 0.333333 +1 0 +0 0.470000 0.573770 0.270000 0.135934 0.648286 0.114859 0 +0 1 +0.470588 0.325000 0.590164 0.230000 0 0.476900 0.222886 0.350000 +0 1 +0 0.685000 0.327869 0.350000 0.198582 0.642325 0.943638 0.200000 +1 0 +0.352941 0.595000 0.409836 0.220000 0.208038 0.403875 0.529462 0.200000 +1 0 +0.235294 0.600000 0.557377 0 0 0.441133 0.269428 0.216667 +0 1 +0.588235 0.645000 0.508197 0.360000 0 0.614009 0.154996 0.283333 +1 0 +0.529412 0.510000 0.622951 0.370000 0 0.490313 0.250640 0.416667 +1 0 +0.058823 0.610000 0.737705 0.510000 0.260047 0.740686 0.105465 0.166667 +1 0 +0.058823 0.435000 0.491803 0.370000 0.088652 0.554396 0.184031 0.016667 +0 1 +0.117647 0.415000 0.540984 0.230000 0.059102 0.479881 0.178907 0.016667 +0 1 +0 0.695000 0.508197 0.170000 0.248227 0.329359 0.055081 0 +0 1 +0.352941 0.425000 0.639344 0 0 0.464978 0.129804 0.350000 +0 1 +0 0.585000 0 0 0 0.503726 0.364646 0.383333 +0 1 +0.529412 0.595000 0.655738 0.350000 0 0.432191 0.078992 0.133333 +1 0 +0.058823 0.530000 0.573770 0.280000 0.159574 0.509687 0.027327 0.016667 +0 1 +0.352941 0.400000 0.655738 0.360000 0 0.593145 0.042272 0.116667 +0 1 +0.235294 0.450000 0.721311 0.470000 0.063830 0.561848 0.121264 0.133333 +0 1 +0.117647 0.610000 0.573770 0.270000 0 0.548435 0.111870 0.100000 +0 1 +0.176471 0.845000 0.606557 0.190000 0.147754 0.445604 0.081127 0.166667 +1 0 +0.058823 0.555000 0.770492 0 0 0.488823 0.079846 0.400000 +0 1 +0.529412 0.700000 0.770492 0 0 0.487332 0.280102 0.400000 +1 0 +0.529412 0.850000 0.606557 0.310000 0 0.655738 0.138770 0.366667 +1 0 +0.117647 0.720000 0.475410 0.330000 0.159574 0.470939 0.146883 0.066667 +1 0 +0.235294 0.635000 0.721311 0.110000 0.183215 0.514158 0.222032 0.116667 +0 1 +0.588235 0.340000 0.868852 0.230000 0.057920 0.529061 0.088386 0.433333 +0 1 +0.705882 0.500000 0.688525 0.330000 0.124113 0.447094 0.175064 0.416667 +0 1 +0.529412 0.780000 0.704918 0.280000 0.183215 0.511177 0.474381 0.350000 +1 0 +0.235294 0.645000 0.491803 0.120000 0.273050 0.409836 0.191716 0.166667 +0 1 +0.117647 0.475000 0.442623 0.140000 0.104019 0.388972 0.286080 0.016667 +0 1 +0.058823 0.400000 0.450820 0 0 0.284650 0.076857 0 +0 1 +0.470588 0.495000 0.688525 0 0 0.527571 0.132365 0.483333 +0 1 +0.058823 0.730000 0.459016 0 0 0.442623 0.207515 0.133333 +0 1 +0.470588 0.525000 0.819672 0.360000 0 0.645306 0.068745 0.400000 +1 0 +0.294118 0.570000 0.606557 0 0 0.371088 0.284372 0.600000 +0 1 +0.176471 0.955000 0.557377 0.150000 0.153664 0.460507 0.094364 0.216667 +0 1 +0.235294 0.725000 0.672131 0.180000 0 0.484352 0.067037 0.816667 +1 0 +0.411765 0.620000 0.573770 0.330000 0.254137 0.380030 0.035440 0.266667 +0 1 +0.058823 0.450000 0.508197 0.180000 0.069740 0.374069 0.508113 0.066667 +0 1 +0.117647 0.775000 0.426230 0.270000 0.638298 0.576751 0.069172 0.066667 +1 0 +0.411765 0.795000 0.524590 0 0 0.408346 0.092229 0.316667 +0 1 +0.352941 0.575000 0.491803 0.390000 0 0.502235 0.071307 0.316667 +1 0 +0 0.545000 0.721311 0.300000 0 0.484352 0.331768 0.283333 +1 0 +0.117647 0.730000 0.622951 0.350000 0.229314 0.569300 0.107173 0.133333 +0 1 +0.058823 0.400000 0.606557 0.110000 0.070922 0.447094 0.191716 0.016667 +0 1 +0 0.510000 0.639344 0.400000 0.106383 0.514158 0.068318 0.050000 +0 1 +0.117647 0.710000 0.672131 0.180000 0.075650 0.368107 0.291631 0 +0 1 +0.058823 0.410000 0.524590 0.130000 0.112293 0.315946 0.143894 0.033333 +0 1 +0.117647 0.635000 0.475410 0.240000 0.325059 0.412817 0.649872 0.066667 +0 1 +0 0.465000 0.491803 0 0 0.526080 0.078992 0.066667 +0 1 +0.176471 0.510000 0.360656 0.200000 0.111111 0.459016 0.137489 0.083333 +0 1 +0.117647 0.495000 0 0 0 0.330849 0.012810 0.033333 +0 1 +0.470588 0.980000 0.622951 0.290000 0.330969 0.558867 0.225021 0.600000 +1 0 +0.058823 0.715000 0.606557 0.220000 0.072104 0.390462 0.076003 0 +0 1 +0 0.505000 0.532787 0.280000 0 0.366617 0.067891 0.016667 +0 1 +0 0.555000 0.532787 0 0 0.366617 0.248506 0.166667 +0 1 +0.176471 0.565000 0.409836 0.100000 0.100473 0.439642 0.233988 0.066667 +0 1 +0.294118 0.555000 0.590164 0.280000 0 0.356185 0.140478 0.100000 +0 1 +0.117647 0.730000 0.573770 0.380000 0.425532 0.417288 0.110589 0.133333 +1 0 +0.470588 0.940000 0.639344 0 0 0.713860 0.025192 0.366667 +1 0 +0.058823 0.435000 0.557377 0.340000 0.091017 0.560358 0.137916 0.050000 +0 1 +0.176471 0.555000 0.475410 0.310000 0.052010 0.439642 0.150299 0.016667 +0 1 +0.764706 0.765000 0.721311 0.370000 0.165485 0.605067 0.467976 0.300000 +0 1 +0 0.505000 0.524590 0.170000 0 0.312966 0.074295 0 +0 1 +0 0.455000 0.655738 0 0 0.482861 0.223313 0.100000 +0 1 +0 0.675000 0.557377 0.420000 0.295508 0.630402 0.122545 0.050000 +1 0 +0.058823 0.355000 0.393443 0.180000 0.089834 0.304024 0.104611 0.016667 +0 1 +0.411765 0.800000 0.442623 0.320000 0.206856 0.454545 0.217763 0.300000 +1 0 +0 0.335000 0.622951 0 0 0.675112 0.049530 0.416667 +0 1 +0.529412 0.610000 0.459016 0 0 0.496274 0.442357 0.200000 +1 0 +0.588235 0.695000 0.655738 0 0 0.403875 0.581981 0.600000 +0 1 +0.235294 0.455000 0.573770 0.320000 0.104019 0.493294 0.157131 0.016667 +0 1 +0.352941 0.460000 0.754098 0 0 0.296572 0.046968 0.116667 +0 1 +0.352941 0.510000 0.672131 0 0 0.459016 0.043552 0.250000 +1 0 +0.588235 0.665000 0.557377 0 0 0.402385 0.071307 0.250000 +0 1 +0.176471 0.910000 0.606557 0 0 0.454545 0.114005 0.133333 +1 0 +0.352941 0.400000 0.540984 0.300000 0 0.390462 0.100342 0.333333 +0 1 +0.058823 0.640000 0.672131 0.170000 0.216312 0.409836 0.015798 0.016667 +0 1 +0.058823 0.900000 0 0 0 0.645306 0.087105 0.333333 +1 0 +0.411765 0.750000 0.540984 0.420000 0.404255 0.517139 0.273271 0.350000 +0 1 +0 0.455000 0.557377 0.320000 0.248227 0.594635 0.129377 0.066667 +0 1 +0.176471 0.880000 0.704918 0.270000 0.184397 0.496274 0.459436 0.516667 +1 0 +0.117647 0.435000 0.475410 0.160000 0.061466 0.487332 0.037575 0.066667 +0 1 +0.294118 0.935000 0.622951 0.270000 0.244681 0.649776 0.408198 0.533333 +1 0 +0.352941 0.615000 0.590164 0.450000 0.271868 0.500745 0.279675 0.216667 +0 1 +0.294118 0.615000 0.606557 0.400000 0.091017 0.508197 0.081554 0.116667 +0 1 +0.352941 0.770000 0.639344 0.410000 0.165485 0.687034 0.210504 0.100000 +0 1 +0.117647 0.615000 0.393443 0.320000 0.195035 0.627422 0.188728 0.083333 +0 1 +0.235294 0.485000 0.491803 0.230000 0 0.420268 0.155850 0.016667 +0 1 +0.823529 0.500000 0.639344 0.250000 0.217494 0.545455 0.142613 0.416667 +1 0 +0.176471 0.535000 0.508197 0.130000 0.056738 0.341282 0.256191 0.033333 +1 0 +0.411765 0.710000 0.737705 0.240000 0.567376 0.453055 0.021349 0.366667 +1 0 +0.411765 0.570000 0.622951 0.170000 0.130024 0.354694 0.165670 0.166667 +0 1 +0.352941 0.735000 0.655738 0 0 0.439642 0.042698 0.483333 +1 0 +0.058823 0.560000 0.590164 0.300000 0.208038 0.512668 0.192143 0.066667 +0 1 +0.352941 0.435000 0.655738 0 0 0.345753 0.002562 0.183333 +0 1 +0.647059 0.690000 0.606557 0.260000 0.170213 0.538003 0.204526 0.483333 +1 0 +0 0.945000 0.852459 0.250000 0 0.511177 0.152434 0.333333 +1 0 +0.176471 0.640000 0.590164 0.250000 0.224586 0.482861 0.201110 0.100000 +1 0 +0.058823 0.715000 0.688525 0.230000 0.366430 0.631893 0.426132 0.016667 +0 1 +0 0.535000 0.622951 0 0 0.675112 0.259607 0.050000 +0 1 +0.705882 0.755000 0.573770 0.400000 0.320331 0.622951 0.283518 0.283333 +1 0 +0.058823 0.500000 0.606557 0.120000 0.054373 0.290611 0.030316 0.116667 +0 1 +0.411765 0.895000 0.778689 0.310000 0 0.509687 0.036721 0.650000 +0 1 +0.058823 0.545000 0.311475 0.180000 0.141844 0.344262 0.140478 0.083333 +0 1 +0.176471 0.390000 0.409836 0.320000 0.104019 0.461997 0.072587 0.083333 +1 0 +0.235294 0.770000 0.508197 0.310000 0.335697 0.488823 0.067891 0.033333 +0 1 +0.588235 0.625000 0.573770 0.260000 0.135934 0.463487 0.054227 0.333333 +1 0 +0.705882 0.420000 0.590164 0.310000 0 0.442623 0.093510 0.416667 +1 0 +0.176471 0.405000 0.704918 0.160000 0.078014 0.409836 0.097353 0.016667 +0 1 +0.176471 0.610000 0.639344 0 0 0.342772 0.075149 0.316667 +0 1 +0.235294 0.460000 0.655738 0 0 0.628912 0.067891 0.133333 +0 1 +0.117647 0.450000 0.655738 0.140000 0.065012 0.363636 0.073014 0.050000 +0 1 +0.470588 0.475000 0.590164 0 0 0.548435 0.173783 0.600000 +0 1 +0 0.600000 0.606557 0.180000 0.074468 0.454545 0.088386 0.083333 +0 1 +0.294118 0.810000 0.852459 0 0 0.561848 0.031170 0.516667 +1 0 +0.294118 0.515000 0.885246 0.370000 0 0.584203 0.096926 0.733333 +0 1 +0.470588 0.620000 0.622951 0.240000 0.709220 0.427720 0.260034 0.516667 +1 0 +0.117647 0.870000 0.721311 0.370000 0.141844 0.663189 0.242528 0.050000 +1 0 +0.058823 0.720000 0.672131 0.460000 0.212766 0.687034 0.109735 0.416667 +1 0 +0.294118 0.945000 0.524590 0.330000 0.384161 0.464978 0.215628 0.133333 +1 0 +0.352941 0.480000 0 0 0 0.353204 0.047822 0.116667 +0 1 +0.588235 0.505000 0.622951 0.480000 0.212766 0.490313 0.039710 0.700000 +0 1 +0.117647 0.535000 0.606557 0.300000 0.118203 0.500745 0.139197 0.033333 +0 1 +0.058823 0.980000 0.622951 0.360000 0.294326 0.543964 0.340307 0.133333 +1 0 +0.117647 0.460000 0.622951 0.200000 0 0.360656 0.691716 0.116667 +0 1 +0.235294 0.550000 0.622951 0.200000 0.118203 0.423249 0.017079 0.100000 +0 1 +0.411765 0.840000 0.721311 0.420000 0.379433 0.569300 0.302733 0.316667 +1 0 +0.117647 0.415000 0.532787 0.280000 0.078014 0.548435 0.235269 0.050000 +0 1 +0.176471 0.370000 0.557377 0.280000 0.053192 0.442623 0.091802 0.033333 +0 1 +0.294118 0.610000 0.704918 0 0 0.517139 0.090521 0.200000 +0 1 +0.058823 0.500000 0.540984 0.290000 0.231678 0.476900 0.156277 0.350000 +0 1 +0.058823 0.385000 0.459016 0.300000 0.066194 0.496274 0.500854 0.050000 +0 1 +0.058823 0.455000 0.442623 0.250000 0.118203 0.375559 0.066610 0.033333 +0 1 +0 0.605000 0.540984 0.300000 0.195035 0.511177 0.053373 0.200000 +1 0 +0.352941 0.620000 0.590164 0 0 0.411326 0.123826 0.133333 +1 0 +0.235294 0.570000 0.524590 0 0 0.430700 0.020495 0.050000 +0 1 +0 0.810000 0.622951 0.560000 0.118203 0.792846 0.290777 0.066667 +1 0 +0.058823 0.545000 0.475410 0.180000 0.137116 0.424739 0.060205 0.016667 +0 1 +0.058823 0.835000 0.606557 0.170000 0.170213 0.348733 0.157558 0.200000 +1 0 +0.117647 0.605000 0.573770 0.320000 0.112293 0.582712 0.345004 0.033333 +0 1 +0.529412 0.825000 0.721311 0 0 0.453055 0.095645 0.466667 +1 0 +0.294118 0.790000 0.573770 0 0 0.444113 0.055081 0.700000 +0 1 +0.058823 0.865000 0.606557 0 0 0.548435 0.004270 0.283333 +1 0 +0.470588 0.880000 0.737705 0.340000 0.354610 0.502235 0.166097 0.616667 +1 0 +0.176471 0.645000 0.754098 0.490000 0.183215 0.542474 0.380017 0.183333 +1 0 +0.117647 0.705000 0.475410 0.340000 0.151300 0.378539 0.265158 0.050000 +0 1 +0 0.465000 0.491803 0.250000 0.108747 0.427720 0.193851 0.016667 +0 1 +0.058823 0.535000 0.409836 0.190000 0 0.421759 0.043979 0.133333 +0 1 +0.294118 0.830000 0.622951 0 0 0.681073 0.111870 0.100000 +1 0 +0.058823 0.505000 0.409836 0.150000 0.042553 0.360656 0.191289 0.083333 +0 1 +0.647059 0.515000 0.557377 0.400000 0 0.688525 0.020495 0.350000 +0 1 +0.352941 0.535000 0.721311 0 0 0.548435 0.277114 0.166667 +0 1 +0.294118 0.575000 0.803279 0 0 0.788376 0.055935 0.116667 +1 0 +0.294118 0.540000 0.590164 0.430000 0.088652 0.538003 0.078992 0.200000 +0 1 +0 0.635000 0.655738 0.370000 0.248227 0.540984 0.309991 0.033333 +0 1 +0.470588 0.540000 0.573770 0 0 0.454545 0.374466 0.200000 +1 0 +0.176471 0.750000 0.622951 0 0 0.312966 0.055081 0.266667 +0 1 +0.235294 0.770000 0.590164 0.290000 0.148936 0.466468 0.111016 0.266667 +0 1 +0 0.900000 0.540984 0.390000 0 0.625931 0.774979 0.066667 +1 0 +0.058823 0.565000 0.524590 0.350000 0 0.500745 0.198548 0 +1 0 +0.117647 0.590000 0.655738 0 0 0.639344 0.262596 0 +1 0 +0.529412 0.615000 0.573770 0.440000 0.111111 0.493294 0.126388 0.316667 +0 1 +0.235294 0.660000 0 0 0 0.490313 0.095645 0.033333 +1 0 +0.176471 0.440000 0.475410 0.110000 0.063830 0.369598 0.080700 0.016667 +0 1 +0.235294 0.855000 0.590164 0 0 0.649776 0.171221 0.083333 +1 0 +0.352941 0.830000 0.606557 0 0 0.396423 0.096499 0.750000 +0 1 +0 0.520000 0.622951 0 0 0.274218 0.215201 0.100000 +0 1 +0.117647 0.500000 0.557377 0.250000 0.083924 0.573770 0.105038 0.083333 +0 1 +0.294118 0.790000 0.688525 0.410000 0.248227 0.587183 0.135354 0.133333 +1 0 +0.058823 0.545000 0.491803 0.080000 0.215130 0.378539 0.371050 0 +0 1 +0.058823 0.475000 0.606557 0.210000 0.086288 0.385991 0.254056 0.250000 +0 1 +0.470588 0.835000 0.868852 0.460000 0.273050 0.560358 0.037148 0.366667 +1 0 +0.117647 0.540000 0.524590 0 0 0.459016 0.034159 0 +0 1 +0.352941 0.685000 0.500000 0 0 0.360656 0.031170 0.566667 +0 1 +0.294118 0.575000 0.622951 0 0 0.464978 0.113151 0.383333 +1 0 +0.352941 0.515000 0.590164 0.320000 0.224586 0.561848 0.105038 0.566667 +0 1 +0 0.285000 0.491803 0 0 0.323398 0.280529 0.766667 +0 1 +0.294118 0.585000 0.754098 0 0 0.508197 0.110589 0.283333 +0 1 +0 0.645000 0.901639 0.460000 0.153664 1 0.102904 0.083333 +1 0 +0 0.730000 0.672131 0 0 0.603577 0.727156 0.383333 +0 1 +0.058823 0.620000 0.606557 0.360000 0 0.414307 0.009394 0.150000 +0 1 +0.058823 0.485000 0.557377 0.210000 0 0.405365 0.434244 0.016667 +0 1 +0.235294 0.730000 0.754098 0 0 0.464978 0.196840 0.666667 +1 0 +0.470588 0.590000 0.590164 0.190000 0 0.344262 0.596926 0.416667 +0 1 +0.176471 0.480000 0.639344 0.390000 0 0.555887 0.068318 0.316667 +0 1 +0.176471 0.640000 0.639344 0 0 0.314456 0.081127 0.566667 +0 1 +0.764706 0.760000 0.737705 0.330000 0.034279 0.399404 0.278822 0.366667 +1 0 +0.352941 0.915000 0.770492 0 0 0.608048 0.590521 0.400000 +0 1 +0.176471 0.790000 0.524590 0.130000 0.457447 0.464978 0.092656 0.050000 +0 1 +0.058823 0.445000 0.540984 0.230000 0.111111 0.418778 0.038002 0 +0 1 +0.235294 0.560000 0.639344 0.400000 0 0.587183 0.067464 0.283333 +0 1 +0.411765 0.645000 0.557377 0.490000 0.147754 0.573770 0.154142 0.366667 +1 0 +0.176471 0.530000 0.590164 0 0 0.384501 0.055081 0.100000 +0 1 +0.529412 0.670000 0.606557 0.330000 0.070922 0.385991 0.163108 1 +0 1 +0.294118 0.480000 0.606557 0.180000 0.079196 0.500745 0.392400 0.366667 +0 1 +0.235294 0.415000 0.704918 0.190000 0 0.436662 0.102050 0.216667 +0 1 +0.235294 0.755000 0.737705 0.380000 0 0.442623 0.092229 0.250000 +0 1 +0.411765 0.905000 0.688525 0.210000 0.226950 0.535022 0.216909 0.500000 +1 0 +0.176471 0.580000 0 0 0 0.350224 0.046541 0.033333 +0 1 +0.117647 0.405000 0.590164 0.150000 0.089834 0.448584 0.200256 0.066667 +0 1 +0.117647 0.560000 0.639344 0.500000 0.165485 0.587183 0.041418 0.050000 +0 1 diff --git a/lib/ann/fann/datasets/gene.test b/lib/ann/fann/datasets/gene.test new file mode 100644 index 0000000..72c71e1 --- /dev/null +++ b/lib/ann/fann/datasets/gene.test @@ -0,0 +1,3175 @@ +1587 120 3 +0 0 1 1 1 0 1 1 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 +0 1 0 +1 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1 0 1 0 1 1 0 1 0 1 1 1 0 0 0 1 0 1 0 1 1 1 1 0 0 0 0 1 0 1 0 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 1 1 1 0 0 0 1 1 0 1 1 1 1 0 1 0 1 0 0 1 1 0 1 0 1 1 0 1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0 0 0 0 +0 0 1 +0 0 1 1 1 0 1 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 0 0 1 1 0 0 1 1 1 1 1 0 1 1 1 1 0 0 0 1 0 1 1 1 0 0 1 1 0 0 0 1 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 1 1 1 1 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 +0 1 0 +1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 1 0 0 0 0 1 0 0 0 1 1 0 1 0 1 0 0 1 0 0 0 1 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 0 0 0 1 0 0 0 1 0 1 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 +1 0 0 +1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 1 0 0 1 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 0 0 0 1 1 0 0 0 0 0 1 0 1 1 1 0 1 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 1 0 0 0 0 1 0 1 1 1 1 0 1 0 1 1 1 0 0 1 0 1 1 1 1 0 0 0 0 0 0 1 0 1 0 1 1 0 0 1 1 1 +0 0 1 +1 1 1 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0 1 0 1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 0 0 0 0 1 1 0 1 1 1 0 0 0 1 1 0 0 1 1 1 1 0 1 1 1 0 1 0 1 0 0 1 0 1 0 0 1 1 1 1 0 1 1 0 1 1 1 0 0 0 +0 0 1 +0 1 1 1 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 1 1 0 1 0 0 0 0 1 0 1 1 0 0 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 1 0 0 1 0 0 1 0 0 1 0 1 1 1 0 0 0 1 0 0 0 0 1 0 1 1 0 1 0 1 1 1 0 +0 0 1 +1 1 0 1 0 0 1 1 1 0 1 1 0 1 1 1 0 0 0 1 0 1 1 0 1 1 0 0 0 1 1 1 1 0 1 0 0 0 0 1 1 0 1 0 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 0 1 1 1 0 1 0 1 1 0 0 0 0 0 0 1 0 0 1 1 0 0 1 1 1 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 1 0 1 0 1 +0 0 1 +1 1 1 0 0 1 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 0 1 0 1 0 0 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 1 1 1 0 1 1 +0 1 0 +1 1 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 1 0 0 0 1 0 0 0 1 1 1 0 0 1 1 1 1 0 1 0 0 1 0 0 1 0 0 1 1 0 0 1 0 0 0 0 0 1 1 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 1 1 1 1 +0 1 0 +0 1 1 0 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 +1 0 0 +0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 0 1 0 0 1 0 0 0 1 1 1 0 1 0 0 0 1 0 1 0 0 1 1 1 0 1 0 1 0 0 1 0 1 0 1 1 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 1 1 1 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 0 1 1 1 1 1 1 0 1 0 1 0 1 1 0 1 1 1 1 0 0 0 1 1 1 0 0 1 +0 0 1 +1 1 1 0 0 0 1 1 1 0 1 1 1 1 0 1 0 0 1 1 1 0 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 1 1 0 0 1 1 1 1 0 1 1 0 1 0 1 0 0 0 1 1 1 1 0 1 1 0 1 0 1 0 0 0 1 1 1 1 1 0 1 0 1 1 0 0 1 0 1 1 1 1 0 1 0 0 0 0 1 1 0 0 1 1 1 +0 1 0 +1 1 0 0 0 1 0 1 0 1 0 1 1 0 0 0 1 1 0 1 1 1 0 0 1 1 1 0 0 0 1 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 0 1 0 0 1 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 +0 1 0 +0 0 0 1 1 0 1 0 1 1 0 0 0 0 0 0 1 1 1 0 0 1 0 1 0 1 0 0 1 1 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 1 1 0 0 0 1 1 0 1 1 1 0 1 1 1 0 0 1 1 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 1 0 0 0 0 1 1 0 0 0 1 1 1 0 1 1 1 0 +0 1 0 +0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 1 0 1 0 1 0 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 0 1 1 0 +0 0 1 +0 0 1 1 1 0 1 0 1 1 1 0 1 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 0 1 1 1 0 0 1 1 1 0 0 0 1 0 1 1 0 0 1 1 1 0 1 0 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1 1 0 1 1 +1 0 0 +1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 1 0 0 1 1 1 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 1 1 1 0 +0 1 0 +0 0 0 1 1 0 0 1 0 0 1 1 1 0 1 0 1 0 1 1 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 0 1 1 1 1 1 1 0 0 1 0 1 0 0 0 1 0 1 0 1 1 0 1 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 1 0 0 0 0 0 1 0 0 0 1 1 0 +1 0 0 +0 0 1 0 0 1 1 0 0 1 0 1 1 0 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 1 1 0 0 1 0 1 0 0 1 0 1 0 1 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 1 0 1 0 1 0 0 1 1 0 1 0 0 0 +0 0 1 +1 0 0 1 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 0 1 1 1 0 1 0 1 0 1 1 0 0 1 1 1 1 0 1 1 0 1 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 1 0 1 0 0 1 0 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 0 1 1 0 1 1 1 0 1 0 1 1 0 1 1 0 0 1 1 0 1 1 1 0 1 0 0 1 0 1 0 1 1 0 +1 0 0 +1 1 1 0 0 1 1 1 1 1 0 0 1 1 0 0 0 1 1 1 1 0 0 1 0 1 0 1 1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 0 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 0 0 0 1 0 1 1 0 1 1 1 0 0 1 0 0 1 1 1 0 0 1 0 1 1 0 1 0 1 0 0 1 0 0 0 1 0 0 0 0 1 0 1 1 1 0 0 0 1 0 +1 0 0 +0 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 1 1 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 1 1 1 0 1 0 0 0 +0 1 0 +0 0 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 +0 1 0 +1 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 0 0 0 1 0 1 0 1 0 1 1 1 1 0 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 0 1 1 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 1 0 1 0 1 0 1 0 0 1 1 1 1 1 1 0 +1 0 0 +1 0 0 0 0 0 1 0 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 1 0 1 1 1 0 0 0 1 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 0 0 1 0 1 1 0 0 0 0 1 0 1 0 1 0 1 1 0 1 0 0 0 1 1 0 0 0 0 1 1 +1 0 0 +0 0 1 0 0 1 1 0 0 1 0 1 0 1 1 1 1 1 0 1 1 1 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 1 1 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 1 1 0 1 1 0 0 0 1 0 1 0 1 1 1 1 1 1 1 0 1 1 1 0 1 1 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 0 0 0 1 0 1 +1 0 0 +1 1 0 0 0 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 1 0 1 1 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 1 0 1 0 0 1 1 1 1 1 0 0 0 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 0 1 0 +1 0 0 +1 1 1 0 1 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 1 1 0 1 0 1 0 1 1 1 1 0 1 1 0 1 0 1 0 0 0 1 1 0 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 0 1 1 +0 0 1 +1 1 0 1 1 0 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 1 0 0 0 0 0 1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1 1 0 0 0 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 0 1 1 0 1 0 1 0 1 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 1 0 1 1 0 +0 0 1 +0 1 0 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0 0 1 1 0 1 0 1 1 0 1 0 0 1 1 1 0 1 1 1 0 1 1 0 1 0 0 1 1 1 0 1 0 0 0 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 0 1 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1 0 0 1 1 +0 0 1 +0 0 1 1 1 1 1 1 1 0 1 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 1 1 1 1 1 0 1 0 1 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 1 1 0 1 0 0 0 0 0 1 1 1 1 1 0 1 1 1 1 0 0 1 1 0 0 1 1 1 0 0 0 1 1 +0 0 1 +1 0 1 1 1 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 0 1 1 1 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 0 1 0 1 0 +1 0 0 +1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 1 0 1 0 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 0 1 0 0 0 0 1 1 0 1 0 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 +0 0 1 +1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 1 1 1 1 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 1 1 0 1 0 1 0 +0 1 0 +0 1 0 0 0 1 1 0 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 1 0 1 0 0 1 1 0 1 0 1 1 0 1 1 1 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 0 0 1 1 0 0 1 1 0 0 0 1 1 1 1 1 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 +0 0 1 +1 0 0 0 1 1 0 0 0 0 1 1 0 1 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 +0 1 0 +1 1 0 0 0 1 0 1 1 0 1 0 0 1 0 0 0 1 0 0 0 0 1 0 1 1 0 0 1 1 0 1 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 1 1 0 0 1 0 0 1 1 1 1 0 1 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 +1 0 0 +1 1 1 0 0 1 1 1 0 1 1 0 1 1 0 0 0 1 0 1 1 1 0 1 0 0 0 0 0 1 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 0 1 0 1 1 1 0 0 1 0 0 0 0 0 1 1 0 1 1 0 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 1 0 1 0 0 +0 0 1 +0 0 0 1 1 0 0 1 0 0 1 1 0 1 1 1 0 1 0 0 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0 1 0 +1 0 0 +0 0 0 0 0 1 0 1 1 0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 0 0 1 1 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 0 0 0 1 0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 +1 0 0 +1 0 1 0 1 1 1 0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 1 0 1 1 0 1 0 0 1 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 1 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 +1 0 0 +1 1 0 1 1 0 0 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 0 0 1 0 1 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 1 0 0 0 1 +0 0 1 +1 1 1 0 1 0 0 0 1 0 0 1 1 0 1 1 0 1 1 1 1 0 1 0 1 1 1 0 0 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 +1 0 0 +1 1 0 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 1 1 1 1 0 1 1 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1 0 0 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 0 0 0 0 0 +1 0 0 +0 0 0 1 1 1 0 0 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0 1 0 1 1 1 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 0 +0 1 0 +0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 1 1 0 0 1 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 +0 0 1 +0 0 0 1 1 0 0 1 0 1 1 0 1 0 1 0 0 0 1 0 1 1 1 0 0 1 0 1 1 0 0 1 0 1 0 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 1 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 0 0 1 1 1 0 1 0 0 0 1 1 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 1 0 0 1 0 1 1 1 0 +0 0 1 +0 0 0 0 1 0 1 1 0 0 1 1 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 0 0 1 1 1 1 1 1 0 1 1 0 0 1 1 0 1 1 0 0 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 0 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 0 1 1 0 0 +1 0 0 +1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 1 0 0 0 0 1 0 1 1 1 0 0 1 1 1 0 1 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 0 0 1 0 0 1 1 1 0 0 1 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 0 0 0 1 1 1 0 0 1 1 +0 0 1 +1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 1 0 1 0 1 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 1 1 1 0 1 0 0 0 0 1 0 0 0 0 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 1 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 +0 0 1 +1 0 0 1 1 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 1 1 1 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 0 1 1 0 0 +1 0 0 +1 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 1 0 0 0 1 1 0 0 1 0 0 1 0 1 0 0 1 0 1 1 1 0 0 1 0 0 1 0 1 0 1 0 0 +0 1 0 +0 0 1 1 1 0 1 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 0 1 1 1 1 0 1 0 0 0 1 1 1 0 1 0 0 0 1 0 0 1 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 0 0 1 0 1 0 1 0 1 1 1 0 0 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 0 1 0 0 +1 0 0 +1 1 1 0 1 0 1 1 1 1 0 0 0 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 0 0 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 1 1 1 1 1 0 0 0 1 1 0 1 0 0 0 0 1 0 1 0 1 1 0 1 0 0 0 1 1 1 0 0 1 0 0 1 1 +0 1 0 +1 1 1 0 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 1 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 1 0 +1 0 0 +1 1 1 0 1 0 1 1 0 0 1 1 1 0 1 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 1 1 0 0 0 0 0 0 1 0 1 1 1 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 +0 1 0 +0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 1 1 1 0 1 0 +0 0 1 +1 0 1 0 1 0 0 0 0 1 0 0 0 1 1 0 1 1 1 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 1 0 1 1 1 0 0 0 0 0 1 1 1 0 1 1 0 0 0 1 0 1 0 1 0 1 1 0 1 1 0 1 1 1 1 0 1 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 0 0 0 1 1 1 1 0 +1 0 0 +1 0 0 0 1 0 1 0 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 0 0 0 1 1 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 1 1 0 1 0 0 0 0 0 0 1 0 1 1 1 0 0 0 1 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 0 1 0 +0 1 0 +0 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 0 0 1 0 1 1 1 0 1 0 0 1 1 1 1 1 1 0 1 1 +0 0 1 +0 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 1 1 +0 1 0 +1 0 0 1 0 0 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0 0 0 0 0 1 1 0 1 0 0 1 1 1 1 1 1 1 1 1 0 1 0 1 0 0 1 0 1 1 1 0 1 1 0 1 1 0 1 0 1 0 1 1 1 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 1 1 1 0 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 1 1 1 0 1 1 1 0 0 1 0 1 1 1 +0 0 1 +1 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 1 0 0 0 0 1 0 1 0 1 1 0 1 1 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 1 0 1 1 1 0 1 0 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 0 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 1 0 1 0 1 1 0 0 1 1 1 1 0 1 1 1 0 1 0 1 1 1 1 1 1 1 0 +0 0 1 +1 1 1 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 1 0 0 1 1 0 0 1 0 1 1 1 0 1 1 1 0 0 0 1 0 0 1 0 1 0 1 1 1 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 1 1 1 1 0 0 0 0 0 1 0 0 0 1 1 0 +1 0 0 +1 0 1 0 1 0 1 0 0 0 0 1 1 0 1 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 0 1 1 0 0 1 0 0 +0 1 0 +1 1 1 0 1 0 0 0 1 0 0 1 1 0 1 1 0 1 1 1 1 0 1 0 1 1 1 0 0 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 +1 0 0 +0 0 0 1 0 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 1 1 1 0 1 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 0 0 0 1 0 1 1 0 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0 1 0 0 0 0 1 1 1 0 1 1 1 1 1 0 +0 0 1 +1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 0 1 0 0 1 0 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 +0 0 1 +1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 0 1 0 1 1 1 1 1 0 1 1 1 0 0 0 0 0 1 1 1 1 1 0 1 1 0 0 0 0 1 0 0 0 1 0 1 1 0 0 0 0 0 0 0 1 0 1 1 0 0 0 1 1 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 1 0 1 1 1 1 0 1 1 0 1 0 0 +0 0 1 +0 0 1 1 1 0 1 0 1 1 1 1 1 0 0 1 1 0 0 1 0 1 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 1 1 0 0 0 0 1 0 1 0 0 1 1 0 0 1 1 1 0 1 0 0 0 0 1 1 0 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 1 0 1 1 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 1 0 0 0 0 0 1 1 1 0 +0 0 1 +1 1 1 1 1 1 0 0 1 0 0 0 0 1 0 1 0 0 1 0 1 0 1 0 1 1 1 1 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 1 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 0 0 0 0 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 0 1 1 1 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 0 0 0 1 1 +1 0 0 +0 1 0 0 0 0 0 1 0 1 0 1 0 0 1 1 1 0 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 1 0 0 1 0 0 1 1 1 1 1 1 0 0 1 0 1 1 0 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 1 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 1 0 1 0 1 1 0 1 0 0 0 0 1 1 0 0 1 0 1 0 1 +0 0 1 +1 0 0 0 1 1 1 1 1 0 1 1 1 1 0 1 0 0 0 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 1 0 0 1 1 1 0 1 1 0 0 1 1 1 1 0 1 0 0 1 0 1 1 1 1 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 1 1 0 1 0 0 1 1 1 1 0 1 0 0 0 1 1 1 +0 0 1 +0 0 1 0 0 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 0 0 0 1 1 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 1 0 1 1 1 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 1 0 1 0 1 0 0 1 1 1 1 0 1 0 0 0 1 0 0 0 1 1 1 0 1 1 0 0 0 0 1 0 0 0 1 0 1 0 0 1 1 0 1 0 0 1 +0 0 1 +0 0 1 1 0 0 1 1 1 1 0 0 0 1 0 1 1 1 0 1 0 0 0 0 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1 0 0 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1 0 1 0 0 1 0 1 0 0 1 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 1 1 0 0 1 1 0 1 1 1 1 0 1 0 1 1 +0 0 1 +1 1 1 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 0 1 1 0 1 0 0 1 0 1 1 1 0 0 0 1 1 1 1 0 1 0 1 0 0 0 1 1 0 1 1 1 0 0 0 1 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 0 0 1 1 1 0 1 0 1 0 0 1 0 0 1 0 +1 0 0 +0 1 1 0 0 1 1 0 0 0 0 1 0 0 1 1 0 1 1 1 1 1 1 1 1 0 0 0 1 1 0 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 1 0 1 0 0 +0 0 1 +1 0 1 0 0 0 1 1 0 1 0 1 1 0 1 0 0 1 0 0 0 1 0 0 0 0 1 1 0 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 0 1 0 0 0 0 1 1 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1 1 0 0 0 1 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0 1 0 0 1 1 1 0 0 0 1 1 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 0 1 +0 1 0 +1 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 0 1 1 1 1 1 0 0 1 1 0 0 1 0 0 1 1 0 1 0 1 1 1 0 0 1 0 0 0 0 1 1 1 0 1 0 0 1 0 0 0 1 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 0 0 0 1 0 0 1 1 0 1 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 +0 0 1 +0 0 0 0 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 0 0 1 0 1 1 0 0 1 1 1 1 0 1 0 1 1 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 0 0 0 0 1 0 1 1 1 1 1 0 1 0 1 0 0 1 1 1 1 0 0 1 0 1 0 0 1 1 0 1 0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 0 1 +0 0 1 +0 1 0 1 0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 0 1 1 0 1 1 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 1 1 0 0 1 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 0 1 0 0 1 1 1 0 1 0 1 1 1 0 0 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 0 1 1 0 1 0 0 0 1 +0 0 1 +0 1 1 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 0 0 1 0 0 1 1 1 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 0 1 1 1 1 0 1 0 1 0 1 0 0 1 0 1 1 0 0 1 0 0 0 0 0 1 0 1 1 0 0 1 0 0 0 1 1 1 1 1 0 0 1 1 1 0 0 1 +0 0 1 +0 1 0 1 1 0 0 0 0 1 0 1 0 1 1 0 1 1 1 0 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 1 1 1 1 0 1 0 0 0 1 1 1 1 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 +0 0 1 +1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 1 0 1 0 0 1 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 1 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 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1 +0 0 1 +0 1 1 1 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 1 0 0 0 1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 1 0 0 1 0 1 1 0 0 0 1 0 0 +1 0 0 +0 0 1 1 0 0 0 1 1 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 1 0 1 0 1 0 0 1 1 1 1 1 0 0 0 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 0 0 +0 1 0 +0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 1 1 1 1 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 0 0 0 0 1 1 +1 0 0 +1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 1 1 0 1 0 0 0 1 1 0 1 1 1 0 1 1 0 1 1 0 0 1 0 0 0 1 0 1 1 0 0 0 0 1 1 1 1 0 1 1 1 0 0 0 0 0 0 1 1 0 0 1 0 0 +0 1 0 +1 0 1 1 0 0 0 1 0 0 1 0 0 0 0 1 1 1 1 0 0 1 0 1 1 0 1 0 1 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 0 0 0 1 1 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 0 1 0 1 1 1 1 0 1 1 1 1 0 0 0 1 1 1 0 1 1 0 1 0 1 1 1 1 +0 0 1 +1 1 1 1 1 0 0 1 0 1 1 0 0 1 0 1 1 1 0 1 1 1 1 1 0 0 0 0 0 0 0 1 0 1 1 0 1 1 0 0 0 0 1 1 1 1 0 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 1 1 0 1 0 1 1 0 0 1 1 0 0 1 0 1 0 1 1 1 0 1 1 0 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 1 0 1 0 1 0 0 1 1 0 0 1 +1 0 0 +0 0 1 1 1 0 0 1 0 1 0 0 1 1 1 1 0 0 0 1 1 1 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 1 0 0 1 0 1 1 1 1 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 1 1 0 0 1 1 1 1 1 0 0 0 1 1 1 1 0 1 1 0 1 0 1 0 0 0 0 1 1 0 0 1 0 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 1 1 0 1 0 +0 0 1 +0 1 0 0 0 0 1 1 1 0 1 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 0 0 1 1 0 0 1 0 1 0 1 1 1 0 1 0 1 0 0 1 0 1 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 0 1 1 0 1 1 0 1 1 1 1 0 0 1 1 1 1 0 1 0 0 1 0 1 0 1 +0 0 1 +0 1 0 1 1 0 0 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1 1 1 1 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 1 1 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 1 0 +1 0 0 +0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 +0 1 0 +0 0 0 1 1 1 0 0 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0 1 0 1 1 1 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 0 +0 1 0 +0 0 0 1 1 0 1 0 0 0 0 1 1 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 0 1 1 1 1 0 1 0 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 1 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 0 0 1 1 1 1 1 0 1 0 0 0 0 1 1 0 1 1 +0 0 1 +1 0 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 +1 0 0 +0 1 0 1 0 1 0 1 0 1 1 1 1 0 0 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 1 0 0 1 1 0 0 1 1 1 0 0 1 1 0 1 0 0 1 1 1 1 1 0 0 0 0 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 +0 1 0 +1 0 1 0 0 1 1 1 0 1 1 0 0 0 0 1 1 1 1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 1 0 0 1 1 1 0 0 1 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 1 1 1 0 1 0 1 1 1 0 0 0 0 1 1 0 0 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 +0 1 0 +0 0 1 1 0 0 1 0 0 1 0 0 1 0 1 0 1 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 1 1 0 0 0 1 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 1 0 0 0 0 1 1 +0 0 1 +1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 1 1 1 0 0 0 1 1 1 1 1 0 1 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 0 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 +0 1 0 +0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0 0 0 1 0 0 1 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 1 1 0 1 1 0 0 1 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 +1 0 0 +1 1 0 0 0 0 1 1 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 1 0 0 0 0 1 0 1 1 0 1 1 0 1 0 0 1 1 0 0 0 0 +0 1 0 +1 1 0 1 0 1 0 1 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 0 1 0 1 0 0 0 1 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 0 0 1 0 0 1 1 1 1 0 1 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 1 1 0 1 1 0 0 1 0 1 1 0 0 0 0 0 0 1 0 1 0 1 +0 1 0 +0 0 1 1 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 0 1 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 0 1 0 0 1 1 1 1 0 1 1 1 +0 0 1 +1 1 0 0 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 1 1 0 0 0 1 0 1 0 1 +1 0 0 +0 0 0 0 0 0 1 1 1 1 1 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 1 1 1 1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 +0 0 1 +1 1 0 0 0 0 1 1 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 1 0 0 0 0 1 0 1 1 0 1 1 0 1 0 0 1 1 0 0 0 0 +0 1 0 +1 0 0 1 0 1 1 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 1 0 0 0 1 1 0 1 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 1 1 0 0 1 0 1 1 0 1 1 0 1 0 0 0 0 1 1 +0 1 0 +1 0 1 0 0 0 0 1 1 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 1 0 0 1 1 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 0 0 1 +0 0 1 +0 1 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 1 1 1 1 0 1 0 0 1 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 +1 0 0 +0 0 0 0 0 1 1 1 0 1 1 1 0 1 1 1 1 0 1 0 0 1 0 0 1 0 1 1 1 1 0 0 0 0 0 0 0 1 0 1 0 1 0 1 1 1 0 0 0 0 1 1 1 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 1 0 0 0 1 0 1 1 +0 0 1 +1 1 0 0 0 0 0 1 0 1 0 0 0 1 1 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 0 1 0 0 1 0 0 0 0 1 0 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 0 0 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 0 1 1 1 1 0 0 0 0 0 1 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 1 0 1 0 0 0 1 0 1 0 1 0 1 0 +1 0 0 +0 0 1 1 0 0 0 1 0 0 0 1 1 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 0 0 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 0 0 1 0 1 1 1 1 1 1 1 0 0 1 1 1 0 +1 0 0 +0 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 0 1 0 1 0 0 1 1 0 1 0 0 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 1 0 1 0 1 0 1 1 0 0 0 1 1 1 0 1 0 0 1 0 1 0 0 1 1 0 1 1 1 0 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 1 1 0 0 1 1 1 1 1 1 0 +0 0 1 +1 1 0 0 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 1 0 1 1 1 0 0 0 1 0 0 0 1 1 0 1 0 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1 1 1 1 0 1 0 1 0 0 0 0 1 1 1 1 1 0 1 1 1 0 0 1 0 1 1 0 0 0 0 1 0 1 0 1 0 1 1 0 0 0 0 0 +0 1 0 +1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 1 1 1 0 1 1 1 0 0 0 0 1 1 0 0 1 0 0 1 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 +0 0 1 +1 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 1 0 1 1 0 0 0 0 1 1 1 0 1 0 0 1 0 1 0 0 0 1 1 0 0 0 1 1 0 1 0 0 0 1 1 0 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 0 1 0 1 1 0 1 0 1 0 1 1 0 1 0 1 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 +1 0 0 +0 0 0 0 1 1 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 0 1 0 1 1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 1 1 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 +0 0 1 +0 0 1 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 1 0 1 1 1 1 1 0 0 0 0 1 0 0 1 1 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 +0 0 1 +1 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 1 0 1 0 0 0 0 0 1 1 0 1 1 1 1 1 1 1 0 1 0 1 0 0 0 0 1 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 0 1 0 0 0 0 0 1 0 1 0 1 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 1 0 +1 0 0 +0 0 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 0 1 1 0 0 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 +1 0 0 +1 0 0 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 0 0 +0 0 1 +1 1 1 0 0 0 1 1 0 0 1 1 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 0 1 0 1 0 1 0 0 1 0 0 0 0 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 0 0 0 1 1 0 1 1 0 1 1 1 1 1 1 1 0 1 0 1 +0 0 1 +1 1 0 0 1 1 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 1 1 1 1 0 1 1 0 0 1 1 1 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 0 0 0 1 0 0 1 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 1 1 1 0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 +1 0 0 +1 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 1 1 1 0 1 1 0 1 0 0 0 1 1 0 1 1 0 1 0 0 0 0 1 0 0 0 1 1 0 1 1 1 0 1 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 1 0 1 1 0 1 0 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 +0 0 1 +1 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 1 1 0 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 0 0 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 1 1 1 0 0 0 0 0 0 +1 0 0 +0 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 1 1 1 0 1 0 0 0 1 1 1 0 0 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 0 1 1 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 1 1 1 0 +0 0 1 +0 1 0 0 0 1 0 1 0 1 0 1 0 1 1 1 1 0 1 0 0 0 0 1 0 1 0 0 0 1 1 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 1 1 0 0 1 0 0 0 0 0 1 0 1 0 1 1 0 1 0 0 1 1 1 0 0 1 0 0 0 0 0 0 1 1 1 0 0 1 0 0 1 0 0 0 0 1 1 1 0 1 1 1 1 0 0 0 1 0 1 1 0 0 0 +0 0 1 +0 0 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 0 1 0 1 0 0 1 1 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1 0 1 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 0 1 1 1 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 +0 1 0 +1 1 0 0 0 1 0 1 1 0 1 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 1 0 1 1 1 0 0 1 1 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 0 1 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 0 1 0 1 0 0 0 1 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 1 1 1 1 0 +1 0 0 +0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 0 0 0 1 0 1 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 1 0 1 1 1 0 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 0 0 0 0 1 1 0 +0 1 0 +0 1 1 0 0 1 1 1 0 0 0 1 1 0 1 1 0 1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 1 1 1 0 1 0 1 1 0 0 0 1 1 0 0 1 1 0 1 1 0 1 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 0 0 1 0 1 +0 0 1 +1 0 0 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 1 1 0 0 1 0 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 0 1 1 0 0 1 0 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 +1 0 0 +1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 1 1 0 0 1 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 1 0 1 0 0 1 1 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 +1 0 0 +0 0 1 1 1 0 1 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 0 1 1 1 1 0 1 0 0 0 1 1 1 0 1 0 0 0 0 1 0 1 0 1 1 0 0 0 0 1 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 0 1 0 0 1 1 0 1 0 0 0 0 1 0 0 +1 0 0 +1 0 1 0 0 1 1 1 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 1 0 +0 0 1 +1 0 1 1 0 1 1 0 0 1 0 1 0 1 1 0 1 1 0 1 1 1 0 0 0 0 1 1 1 0 0 1 0 1 0 0 1 1 1 0 1 0 1 0 1 1 1 0 0 1 0 1 0 1 1 1 1 1 1 1 0 1 0 1 1 0 1 0 0 0 1 1 0 0 0 1 1 0 0 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1 1 0 0 1 0 1 1 0 1 1 1 0 1 1 +0 0 1 +0 0 1 1 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 1 1 1 0 0 1 1 1 0 1 0 1 1 1 1 0 0 1 0 0 1 1 1 1 1 1 0 1 1 0 1 1 1 0 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 +0 0 1 +0 1 1 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 1 1 0 1 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 1 0 0 0 0 0 0 1 1 0 0 +0 0 1 +1 0 1 1 0 1 0 1 1 0 1 0 0 1 0 0 1 1 1 0 0 0 1 1 1 1 1 0 1 0 0 0 1 1 0 1 1 1 1 1 0 1 0 1 0 0 1 1 0 1 1 1 0 0 0 1 1 0 1 1 1 1 0 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 1 0 1 1 0 0 +0 0 1 +0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 1 1 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 0 1 0 0 0 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 1 1 0 1 1 0 0 +0 1 0 +1 0 0 0 1 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 0 1 1 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 0 0 1 1 0 1 0 0 1 +0 1 0 +1 0 1 1 0 1 0 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 0 0 0 1 0 1 1 0 1 1 0 0 0 0 0 0 1 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 1 1 1 0 1 1 1 0 1 1 0 0 0 0 1 0 0 1 0 1 1 1 1 0 0 1 1 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 1 +0 0 1 +0 1 1 1 0 0 0 1 0 1 0 1 1 0 0 1 0 0 0 0 1 1 0 1 1 1 0 1 0 1 0 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 1 0 0 0 1 0 1 0 1 1 1 0 1 1 1 1 0 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 0 1 1 1 0 0 0 1 1 1 1 0 1 +0 0 1 +1 0 1 0 0 1 0 0 1 1 0 1 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 1 0 1 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 1 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 1 1 0 1 1 0 1 0 0 0 1 1 1 1 +0 0 1 +1 0 0 0 0 0 1 0 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 1 0 1 1 1 0 0 0 1 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 0 0 1 0 1 1 0 0 0 0 1 0 1 0 1 0 1 1 0 1 0 0 0 1 1 0 0 0 0 1 1 +1 0 0 +0 0 0 0 0 1 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 0 1 0 0 1 1 1 1 0 0 1 0 1 0 1 1 0 0 0 1 1 1 0 +0 1 0 +1 0 1 0 0 0 1 1 1 0 1 0 0 1 0 0 0 1 1 0 1 1 1 0 0 1 0 1 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 0 0 1 0 1 0 0 1 1 1 1 1 0 0 1 0 1 1 0 0 1 0 1 0 1 0 1 1 0 0 1 1 1 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 1 0 1 1 0 0 1 0 1 0 0 0 0 1 1 1 0 +0 0 1 +1 0 1 1 0 1 1 0 0 1 0 0 0 0 1 1 1 1 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 0 1 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0 0 0 1 1 0 1 1 1 0 1 1 1 0 0 0 0 0 0 0 1 0 1 0 1 1 0 1 0 0 1 0 1 0 0 0 1 1 0 0 1 0 1 1 0 +0 1 0 +1 0 1 1 1 0 0 1 0 1 0 0 1 1 0 0 1 1 1 0 1 0 0 1 0 0 1 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 0 0 0 1 1 0 1 1 0 1 1 1 1 0 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0 0 0 1 0 1 0 1 0 1 0 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 1 1 0 0 0 1 1 0 1 0 1 1 +0 0 1 +0 1 0 1 1 1 0 0 0 1 0 1 1 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 0 0 0 1 1 0 1 1 1 1 0 0 1 0 1 0 1 0 0 0 0 0 1 0 0 1 0 0 1 1 0 0 0 0 1 1 0 1 1 1 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 1 0 1 +0 0 1 +0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 +0 1 0 +0 1 1 0 1 1 1 0 1 1 1 0 0 1 0 0 0 1 1 1 1 0 1 0 1 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 1 0 1 1 1 1 1 1 1 0 0 1 1 0 0 1 0 0 0 0 1 1 1 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 +0 1 0 +1 1 0 1 1 1 1 1 1 1 0 1 0 0 1 1 1 0 1 0 0 1 0 1 0 1 1 0 1 1 1 0 1 1 0 0 0 1 0 1 1 1 0 1 0 1 1 0 0 0 1 1 1 0 1 1 1 1 1 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 0 1 1 0 1 1 0 0 1 1 1 0 0 0 1 0 0 1 1 0 0 0 1 1 1 1 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 1 0 1 +0 0 1 +1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 1 1 0 1 0 0 1 0 0 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 1 0 1 1 1 0 1 0 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 +0 1 0 +0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 0 0 1 0 1 0 1 1 0 0 1 1 0 1 1 0 1 1 1 0 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 1 0 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 1 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 +0 0 1 +1 0 0 0 0 0 1 1 1 0 0 0 1 0 1 0 1 0 1 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 0 1 0 0 0 0 1 0 1 0 1 0 0 1 0 1 +0 0 1 +0 1 1 1 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 1 0 1 1 0 0 0 1 1 1 0 0 1 0 1 1 0 1 1 1 1 0 0 1 1 1 0 1 1 1 0 1 1 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 1 1 0 0 0 1 1 1 0 0 1 1 1 1 1 1 1 0 0 0 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 +0 0 1 +1 1 1 0 0 0 1 1 1 0 1 1 1 0 1 1 1 1 1 0 0 0 1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 0 +0 0 1 +1 1 0 1 0 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 1 0 1 1 0 0 1 0 1 1 1 1 0 1 1 0 0 1 1 1 1 1 0 0 1 1 1 1 1 1 0 1 1 1 0 1 0 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 0 0 1 0 0 0 1 1 1 +0 1 0 +0 1 0 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 0 0 1 1 1 0 1 0 1 1 1 1 1 0 1 1 1 0 1 1 1 0 1 0 0 1 1 1 0 0 0 0 1 1 1 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 0 1 +0 0 1 +0 1 1 0 1 1 0 1 1 0 0 0 0 0 0 1 0 1 0 1 1 0 0 1 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 1 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 0 1 1 0 0 1 0 1 1 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 0 1 1 0 1 1 0 0 0 0 1 1 1 1 1 0 1 1 1 1 1 +0 0 1 +0 1 1 1 1 1 1 0 0 1 0 1 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 1 0 0 1 1 0 1 0 0 1 0 1 0 0 1 1 0 0 1 0 1 1 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 1 1 1 0 0 1 1 0 0 0 0 0 1 0 0 1 1 1 1 0 0 0 0 1 1 +0 0 1 +0 1 1 0 1 0 1 0 1 0 1 0 0 1 0 1 1 0 0 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 1 0 1 1 1 1 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 0 1 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 0 0 1 0 0 0 0 0 1 1 1 0 1 0 0 1 1 1 1 1 1 0 1 +0 0 1 +1 1 0 0 1 1 0 0 0 0 1 0 1 1 1 0 0 1 1 1 1 0 0 1 0 1 1 1 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 1 1 0 0 0 1 0 0 1 0 1 0 0 0 +1 0 0 +1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 1 1 1 1 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 1 1 0 1 0 1 0 +0 1 0 +0 0 0 1 1 0 0 1 1 0 1 1 0 0 0 0 0 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 1 0 0 0 1 1 1 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 0 0 0 1 1 0 1 0 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 1 0 1 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 1 1 0 +0 0 1 +1 0 1 0 0 0 0 1 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 1 0 0 0 0 1 1 0 0 0 1 1 0 1 0 1 1 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 1 1 0 0 0 1 1 0 0 1 0 1 1 1 0 +0 1 0 +0 1 1 1 1 1 0 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 1 0 1 1 0 1 0 1 1 1 0 1 0 1 0 0 1 1 1 0 1 1 1 0 0 1 0 1 1 0 1 1 1 1 1 1 0 1 0 0 0 1 1 1 1 1 1 0 1 1 0 1 0 1 0 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 0 1 1 1 1 0 0 1 1 0 1 0 1 0 1 +0 0 1 +1 0 1 0 1 0 0 1 1 0 1 1 0 0 0 0 1 1 0 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 0 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 0 1 1 1 1 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 1 1 0 1 1 0 0 1 1 0 0 0 0 1 +0 0 1 +0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 0 1 0 1 1 0 0 0 0 0 1 1 1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 0 1 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 1 0 0 0 1 1 0 0 1 1 1 0 0 1 1 0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 1 1 1 0 1 0 0 1 0 1 0 0 1 1 +1 0 0 +1 0 1 1 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 0 1 1 0 1 1 1 1 1 0 1 1 1 0 1 1 1 0 0 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 0 1 0 1 0 0 1 0 1 0 1 1 1 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 1 0 0 0 1 0 0 1 1 1 1 0 1 0 +0 0 1 +1 1 1 0 0 1 0 1 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 0 1 1 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 1 1 1 1 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 1 1 0 0 0 1 0 1 0 1 0 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 0 1 1 1 0 1 0 1 1 1 0 0 0 0 1 1 0 0 0 0 1 +1 0 0 +0 1 1 1 1 1 0 0 0 0 0 1 0 1 0 1 0 1 0 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 1 0 1 1 0 0 1 1 0 0 1 +0 1 0 +1 0 0 1 0 1 1 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 1 0 0 0 0 1 0 0 1 1 0 0 1 1 0 0 1 0 0 0 0 1 0 0 0 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 0 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0 0 0 1 1 0 1 1 +0 0 1 +1 1 1 1 1 0 1 1 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 0 1 1 1 0 0 0 0 0 1 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 0 1 1 1 0 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 1 1 0 0 1 0 0 0 +0 1 0 +1 0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 0 1 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 0 1 0 1 1 0 1 0 1 1 1 0 1 1 1 0 0 0 1 1 0 1 0 1 1 0 1 0 1 0 1 1 1 0 0 0 0 0 0 0 1 0 1 1 1 0 1 0 1 0 1 1 1 1 1 0 0 1 1 0 0 0 1 1 0 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 +1 0 0 +1 0 0 1 0 1 1 0 0 0 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 1 0 0 1 0 0 1 0 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 1 0 1 0 0 0 1 0 0 0 0 0 1 0 1 1 0 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 +0 0 1 +1 0 1 0 1 0 1 1 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 0 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 0 0 1 0 1 0 1 0 0 1 1 1 1 0 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 1 0 0 1 0 1 1 0 1 1 1 1 0 0 0 0 0 1 +0 0 1 +0 0 0 1 1 1 0 1 0 0 1 1 1 1 1 0 1 0 0 0 1 1 0 0 1 1 0 1 1 1 1 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 1 1 0 1 0 0 1 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 1 0 1 1 0 0 1 0 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 +0 1 0 +1 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 0 1 1 0 0 1 0 0 1 1 0 1 1 1 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1 1 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 0 1 1 1 1 0 0 1 0 0 1 1 0 1 0 0 1 1 1 1 0 1 0 1 0 1 1 1 1 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 1 +1 0 0 +1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 1 1 1 1 1 0 1 0 0 0 0 0 1 0 1 1 1 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 1 0 0 1 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 1 1 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 +1 0 0 +1 0 1 0 0 1 0 1 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 0 1 1 1 0 0 1 0 1 0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 0 0 0 0 0 1 1 0 1 1 1 1 1 0 1 1 0 0 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 0 1 0 1 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 +0 1 0 +0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 1 1 0 1 0 1 1 0 0 1 1 1 0 1 1 1 1 0 0 0 0 0 1 0 1 1 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 1 1 0 0 1 1 1 0 +1 0 0 +1 1 1 0 0 1 0 1 1 1 0 1 1 0 0 1 0 1 1 1 0 0 1 1 1 1 0 1 0 1 0 0 1 1 0 0 0 0 1 1 0 1 1 0 0 1 1 0 0 0 0 1 0 1 0 0 1 1 0 0 1 1 1 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 1 0 1 1 0 1 1 1 1 1 1 +0 0 1 +0 1 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 0 0 1 0 0 0 0 1 1 1 0 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0 1 1 0 1 1 1 1 1 0 1 1 1 0 0 0 1 1 0 0 1 1 +0 1 0 +1 1 0 0 0 1 0 0 0 0 1 0 1 1 1 0 1 0 0 0 0 0 0 1 0 0 1 1 1 0 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 1 1 1 0 1 0 1 1 1 1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 1 1 1 0 0 1 0 0 1 0 0 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 +0 0 1 +1 1 0 1 0 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 0 1 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 1 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 1 0 1 1 1 0 0 0 0 0 1 1 0 0 1 1 0 0 1 0 0 1 1 0 0 0 1 0 0 +0 1 0 +0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 0 1 1 0 1 0 0 0 1 1 0 1 1 1 1 1 0 0 0 0 1 1 0 1 1 1 1 0 1 1 0 0 0 1 1 1 0 0 1 1 1 0 1 0 0 1 0 0 0 1 0 0 0 1 1 1 0 1 1 1 0 1 0 1 0 1 0 1 1 1 1 0 0 0 1 1 1 0 0 0 1 1 0 1 0 1 1 1 1 0 +0 0 1 +0 0 1 1 1 0 1 0 0 1 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 1 1 0 1 0 0 1 1 1 1 0 0 1 1 1 0 1 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 0 0 1 1 1 1 0 0 1 0 0 0 1 1 1 0 0 0 1 +0 0 1 +1 0 1 1 0 0 0 1 1 0 1 0 1 0 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 1 +0 0 1 +1 0 1 0 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 0 1 0 0 0 0 1 0 1 1 1 1 0 1 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 0 1 0 1 0 0 0 0 1 0 0 0 1 +1 0 0 +0 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 +0 0 1 +1 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 1 1 0 0 1 1 1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 +0 0 1 +0 1 1 0 0 0 0 1 0 1 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 1 1 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 0 1 1 1 0 0 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 1 +0 1 0 +1 0 0 0 0 1 1 0 1 1 0 1 0 1 0 1 0 1 1 0 0 0 0 1 0 0 0 1 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 0 0 0 1 0 0 0 1 1 1 1 0 1 1 1 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 0 1 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 1 0 1 1 1 1 1 1 0 0 1 0 1 +0 0 1 +1 0 1 1 0 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 1 1 0 0 0 0 +0 0 1 +0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 1 0 1 0 0 0 1 0 1 1 1 1 0 0 1 0 1 0 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 0 1 0 1 1 1 0 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 1 0 0 0 0 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 1 +0 0 1 +0 1 0 1 0 0 1 1 0 1 1 1 0 1 1 1 1 1 1 0 0 0 1 0 1 0 0 1 0 0 0 1 1 1 1 1 1 0 0 1 1 0 1 0 1 1 1 0 1 0 0 1 0 0 1 0 1 0 0 0 0 1 0 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 1 0 1 0 1 0 0 1 0 0 0 1 0 0 0 1 +0 0 1 +1 0 1 1 1 0 1 0 1 0 0 0 0 1 0 1 1 0 1 1 1 0 0 0 0 0 1 0 0 1 0 1 1 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 1 0 0 0 1 0 1 1 0 1 0 1 1 0 1 0 0 1 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 1 0 0 1 1 +1 0 0 +1 0 1 0 0 0 0 1 1 1 1 1 1 0 1 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 1 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 0 0 1 1 0 0 1 0 0 0 1 1 0 1 1 1 0 1 0 0 1 0 0 0 1 0 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 1 0 1 1 +0 0 1 +1 1 0 1 0 1 1 0 0 1 0 1 1 0 0 0 1 1 1 0 1 1 0 0 0 0 0 1 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 0 1 0 1 1 1 0 1 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 1 0 1 1 1 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 1 1 1 1 +0 0 1 +0 1 0 1 1 0 0 1 0 0 1 1 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 1 1 0 1 1 1 0 1 0 1 1 1 1 0 0 0 1 1 0 1 0 0 1 1 1 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0 +0 0 1 +0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 1 0 1 1 1 1 0 0 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 1 1 0 1 0 1 1 0 1 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 +1 0 0 +0 0 0 0 1 1 1 1 1 1 1 0 0 1 1 0 1 0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 1 1 1 0 1 1 1 0 0 0 0 1 1 0 1 0 1 1 0 1 0 0 1 0 1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 +1 0 0 +1 0 0 1 0 1 0 0 0 0 1 0 0 1 0 1 1 0 0 1 0 0 1 0 1 1 1 0 1 1 1 1 1 1 1 0 0 0 0 1 0 1 0 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 0 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 +1 0 0 +1 1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 0 1 1 0 0 0 1 0 0 0 1 1 0 1 1 1 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 1 0 1 1 0 1 0 1 1 0 0 0 1 0 1 1 0 1 1 1 0 0 1 +1 0 0 +0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 1 0 0 0 1 1 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 1 0 0 1 0 0 0 0 1 1 1 0 0 0 +0 0 1 +0 1 0 1 0 0 1 1 0 1 0 1 0 1 1 1 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 1 0 1 1 0 0 0 1 0 1 1 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0 +0 0 1 +1 1 0 0 0 1 1 1 1 1 0 0 0 1 1 0 1 1 0 1 1 1 1 1 0 1 1 1 0 1 0 1 1 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 0 1 0 1 0 0 0 1 1 1 1 1 0 0 1 1 1 1 1 0 0 1 0 1 0 0 1 0 0 1 1 1 1 1 0 0 1 1 0 0 0 0 1 0 +0 0 1 +1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 0 0 1 0 1 0 1 0 1 0 0 1 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 +0 0 1 +0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 0 1 1 1 1 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 +1 0 0 +1 1 0 0 1 1 1 0 0 0 1 0 0 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 0 0 1 0 1 1 0 0 0 0 0 1 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 1 1 1 0 1 1 0 1 0 0 0 0 1 1 1 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 1 0 +1 0 0 +0 0 0 0 0 1 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 0 1 0 0 1 1 1 1 0 0 1 0 1 0 1 1 0 0 0 1 1 1 0 +0 1 0 +1 0 1 1 1 0 0 1 1 1 1 1 0 1 1 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 1 0 0 1 0 1 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 1 1 1 0 0 0 0 1 1 0 +0 0 1 +1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 1 1 0 0 1 1 0 0 1 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 1 0 1 1 0 1 0 0 1 0 1 0 1 0 0 0 1 1 0 1 1 1 0 0 1 0 0 1 1 1 0 0 0 1 1 0 1 0 0 1 1 1 1 1 1 1 0 1 0 1 0 0 1 0 1 1 1 1 0 1 0 1 0 1 1 +0 1 0 +0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 0 1 1 1 1 0 1 1 1 1 0 1 0 0 0 0 1 0 0 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 1 0 +1 0 0 +1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 0 0 0 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 1 1 1 1 0 0 0 0 1 0 1 0 1 0 1 1 1 0 1 1 +0 1 0 +0 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 1 1 1 1 0 0 1 0 0 0 1 0 0 0 0 1 1 0 1 1 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 0 1 1 0 0 0 1 1 0 0 1 1 1 1 1 0 1 0 1 0 1 1 0 1 0 1 1 1 1 0 1 0 1 0 1 1 1 0 0 0 1 0 0 0 1 1 1 1 0 0 0 1 1 0 +1 0 0 +1 1 1 0 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1 1 1 1 1 0 1 0 1 0 0 1 1 1 1 1 1 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 1 1 0 1 0 1 0 0 0 1 1 1 1 0 0 0 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 0 1 1 0 0 0 0 0 1 1 +1 0 0 +1 0 0 1 0 1 1 1 1 0 0 0 1 1 1 1 0 1 1 0 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 0 0 +0 0 1 +1 0 1 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 1 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1 +1 0 0 +1 1 0 0 0 1 1 0 0 1 0 1 1 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 1 1 1 1 1 1 1 0 1 1 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 1 1 1 0 0 1 1 1 1 0 0 1 1 0 0 0 1 1 0 1 0 1 0 1 0 1 1 0 1 1 1 1 0 0 1 1 0 1 1 0 0 0 0 0 1 0 1 0 0 1 0 +0 0 1 +1 1 1 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 0 1 0 0 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 1 0 1 0 0 0 0 0 +0 1 0 +0 1 0 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 0 1 1 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 1 0 0 1 0 0 0 1 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 0 0 0 1 1 1 1 0 0 +0 1 0 +0 1 1 0 0 1 0 0 1 0 0 1 1 1 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 1 1 0 1 0 1 0 1 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 1 0 1 0 1 0 0 0 1 1 1 0 0 0 0 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 1 0 0 0 1 1 0 0 +0 0 1 +1 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 0 0 0 0 1 1 +1 0 0 +0 0 0 1 1 0 0 0 0 0 0 1 0 0 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 0 0 1 0 0 0 0 1 1 0 +1 0 0 +0 1 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 1 1 1 0 1 0 0 1 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 1 0 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 1 0 +1 0 0 +0 1 0 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0 0 0 0 1 0 0 0 1 1 0 1 1 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 1 1 0 1 1 0 0 0 1 0 0 0 1 0 0 0 1 0 1 1 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 1 1 1 1 0 0 1 0 0 0 1 0 0 1 1 1 0 +0 0 1 +1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 1 0 1 0 0 0 1 1 0 0 1 0 0 0 0 0 1 1 1 0 1 1 0 0 0 1 0 1 0 0 1 0 0 0 1 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 1 0 1 1 0 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 +1 0 0 +1 1 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 1 1 1 1 0 0 0 0 1 0 1 1 1 0 1 0 1 0 1 1 1 1 0 1 0 0 0 1 1 0 1 1 1 0 1 1 1 1 1 1 0 1 0 0 1 0 1 0 1 0 0 1 1 1 1 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 0 1 1 1 0 1 0 1 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 0 1 1 1 +0 0 1 +0 1 0 1 1 0 0 1 1 0 1 1 1 0 0 0 0 1 0 1 0 1 1 1 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 1 1 0 1 0 0 1 0 1 1 1 0 0 1 1 1 0 1 0 +1 0 0 +1 1 0 0 0 1 1 1 1 0 0 1 0 0 0 1 0 1 1 1 1 0 0 1 0 1 1 0 0 1 1 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 1 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 0 0 0 1 1 0 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 0 0 0 1 0 1 0 1 0 1 1 1 +1 0 0 +0 0 1 1 0 0 1 1 1 0 1 1 0 0 0 0 1 1 1 1 0 1 1 1 0 0 0 1 0 1 0 0 1 1 1 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 0 1 1 1 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 +0 1 0 +0 0 0 1 1 0 0 1 0 1 1 1 1 0 0 1 1 0 0 0 0 1 0 1 1 0 1 1 1 0 0 1 0 1 1 0 0 1 0 1 0 0 1 1 1 1 1 1 1 0 1 1 1 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 1 0 1 1 1 0 1 1 1 0 0 1 1 1 1 1 0 0 1 0 1 0 0 1 1 0 0 0 1 1 0 0 1 0 1 +0 0 1 +0 0 0 1 0 0 1 0 1 0 1 1 1 0 1 1 0 0 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 1 1 0 1 1 1 0 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 1 0 0 0 1 1 0 1 1 1 0 1 1 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 +0 1 0 +0 1 0 1 1 0 1 0 0 1 0 0 1 1 1 1 0 1 1 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 0 1 1 0 1 1 1 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 0 +0 1 0 +1 1 1 0 1 1 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 0 1 1 0 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 1 1 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 1 1 0 1 1 1 0 0 1 1 1 1 1 0 0 1 0 1 1 0 0 1 0 0 0 0 1 1 0 1 1 0 1 1 1 1 1 0 +0 0 1 +1 0 0 1 1 1 0 0 1 0 1 0 1 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 +0 0 1 +1 1 0 0 0 0 1 0 1 0 0 0 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 1 1 0 1 1 0 0 0 0 1 0 1 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 0 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 1 0 1 0 1 0 +0 0 1 +1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 1 1 1 1 0 1 0 0 0 1 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 1 1 0 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 1 0 1 0 0 1 0 0 1 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 1 1 0 1 0 0 1 +0 0 1 +0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 1 0 1 1 0 1 1 0 1 1 0 0 1 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 1 1 1 1 0 0 0 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 0 +0 1 0 +1 0 1 0 1 0 0 0 1 0 0 0 1 1 1 0 1 1 0 0 0 0 1 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 0 1 1 1 0 1 1 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0 1 0 1 1 1 1 1 0 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 1 0 0 +0 1 0 +0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 1 1 1 1 0 1 1 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 0 0 0 0 1 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 1 1 1 1 1 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 1 0 1 0 0 1 1 1 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 1 1 +1 0 0 +0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 +1 0 0 +1 0 1 0 0 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 0 0 1 0 1 1 1 1 1 1 0 1 0 0 0 1 1 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 0 1 1 1 1 0 1 1 0 0 1 0 1 0 0 0 1 1 1 +0 0 1 +0 1 1 0 1 0 0 1 0 1 1 1 1 0 1 1 1 0 0 0 0 1 0 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 1 1 1 1 1 0 1 0 1 0 1 0 0 0 1 1 1 1 0 1 0 0 1 1 0 1 1 0 0 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 0 1 1 1 1 0 0 0 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 0 1 +0 0 1 +1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 +1 0 0 +0 1 0 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 1 0 1 1 1 1 1 0 0 0 1 1 0 1 1 1 0 1 1 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 0 0 1 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 1 1 1 0 0 1 0 0 0 1 1 0 1 1 1 1 0 0 1 1 0 0 0 1 1 1 1 0 0 0 0 +0 0 1 +0 1 1 1 1 1 0 0 1 1 1 0 1 1 0 0 0 1 0 0 1 0 1 1 0 0 1 1 1 0 1 1 0 0 0 1 1 1 1 0 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 0 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 0 1 0 1 1 0 1 0 1 0 0 1 1 1 0 1 1 1 0 0 0 1 1 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 1 +0 1 0 +0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 1 0 0 0 0 0 1 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 +0 0 1 +0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0 0 0 0 0 1 1 0 1 0 1 1 0 0 1 1 0 0 1 1 1 0 1 0 0 1 0 0 0 1 0 0 1 1 0 1 1 1 1 0 1 0 1 0 0 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 1 1 0 0 0 0 1 1 +0 1 0 +0 0 0 0 1 1 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 1 0 1 0 0 1 1 1 1 1 0 1 1 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 1 0 0 1 1 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 0 1 0 0 1 1 0 0 0 0 1 0 1 0 0 0 0 1 0 1 0 1 1 1 0 1 0 +0 1 0 +0 0 0 0 0 0 0 1 1 0 1 0 1 1 1 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 1 0 1 0 1 1 1 1 1 1 1 0 1 1 1 1 0 0 0 1 1 1 0 1 1 0 0 0 0 1 0 1 0 1 1 0 0 0 1 0 0 0 0 1 0 1 1 1 0 0 1 0 0 0 1 0 1 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 1 0 1 0 0 0 0 +0 0 1 +0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 1 0 1 0 1 0 0 1 1 1 1 0 1 1 1 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 1 0 1 0 1 1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 0 1 0 0 0 0 +0 0 1 +0 1 1 1 1 0 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 1 1 0 0 1 0 1 0 0 0 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 0 1 0 1 0 0 0 0 1 1 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 0 1 1 0 0 0 1 0 1 1 1 0 1 1 0 0 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 1 0 1 0 +0 0 1 +0 1 0 1 1 1 1 1 1 0 0 1 0 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 0 1 0 1 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 1 1 0 1 +0 0 1 +1 1 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 1 1 1 0 0 0 0 0 1 1 0 1 0 1 0 0 1 0 1 0 0 0 0 1 0 0 1 0 1 1 0 0 1 0 0 1 0 1 1 1 0 1 1 1 1 1 1 1 0 0 0 0 1 0 1 0 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 +0 1 0 +1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 1 0 1 1 0 1 1 1 1 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 0 1 0 1 0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 0 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 1 0 0 1 +0 0 1 +1 1 1 1 0 1 1 1 1 1 0 0 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 0 1 1 0 0 1 1 1 1 1 0 0 0 1 1 0 1 0 1 1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 0 +0 0 1 +0 0 0 1 1 1 0 0 1 1 1 0 1 1 1 0 0 0 0 0 1 0 1 0 0 0 1 1 0 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 1 +0 0 1 +0 1 1 0 0 1 0 1 1 0 0 0 0 0 1 0 1 0 0 1 0 1 1 0 1 1 1 0 1 0 1 1 1 0 0 1 0 1 1 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 1 0 1 0 1 0 0 1 0 0 0 1 1 1 1 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 1 1 0 1 0 +0 0 1 +0 1 0 0 0 1 1 0 0 0 1 1 0 1 0 1 0 1 0 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 0 1 1 1 0 0 1 0 1 1 1 1 0 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 0 1 1 0 0 0 0 1 0 1 0 1 1 1 1 0 +0 0 1 +1 0 1 0 1 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 1 1 0 1 0 0 1 1 1 0 0 0 0 1 0 1 0 0 0 0 1 1 1 0 0 1 0 0 1 0 0 0 0 1 0 1 1 1 1 0 0 0 1 1 0 0 0 1 1 0 0 1 0 0 1 0 0 0 0 1 1 0 0 1 0 1 1 0 1 0 1 0 0 1 0 0 1 1 1 0 0 0 0 0 1 0 1 1 0 0 +0 0 1 +0 0 0 1 1 0 1 0 1 0 0 1 0 0 1 1 0 0 0 1 1 0 1 0 0 0 0 1 1 0 0 1 0 1 1 1 1 1 0 0 0 1 0 1 1 1 0 0 1 1 0 0 0 0 1 0 0 1 1 0 1 0 1 1 0 1 1 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 0 0 +1 0 0 +1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 0 0 1 1 1 1 1 0 1 0 1 0 1 1 0 0 1 1 0 0 1 1 1 1 0 0 1 1 1 0 1 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 1 1 1 1 1 0 0 0 0 0 1 1 0 0 1 1 1 0 1 1 1 0 1 0 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 +0 0 1 +1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 +0 1 0 +1 1 0 0 0 0 1 1 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 0 0 0 1 0 1 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 0 1 0 1 1 0 0 0 1 0 1 1 1 0 0 1 1 1 0 0 1 1 1 1 1 0 0 0 1 1 1 0 1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 1 0 0 0 1 1 0 +0 1 0 +1 0 0 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 0 1 1 1 1 0 0 1 0 0 1 1 0 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 0 0 1 1 1 0 1 1 0 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 1 1 0 1 1 1 0 1 0 1 0 0 1 0 0 1 1 1 0 0 1 1 0 0 1 +0 1 0 +0 0 0 1 1 0 0 1 1 1 1 1 1 0 1 1 1 0 1 1 1 0 1 0 0 1 0 1 1 1 1 0 1 0 1 1 0 0 0 0 1 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 1 0 1 1 1 1 1 1 1 1 0 0 1 0 1 1 1 1 0 1 0 1 0 0 1 0 1 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 0 0 0 +0 0 1 +0 1 0 1 0 1 1 1 0 1 1 1 0 1 0 1 0 1 1 1 0 0 1 0 1 0 0 1 1 0 1 0 1 0 1 0 0 1 0 1 1 0 1 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1 0 0 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 0 0 1 1 0 0 0 1 1 0 1 0 1 1 1 1 +0 0 1 +0 1 1 0 1 1 1 0 0 1 0 1 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 1 0 1 1 0 0 1 1 1 0 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 +0 0 1 +0 1 0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 1 1 1 1 1 0 1 1 1 0 0 0 1 1 0 1 0 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 0 0 1 1 1 0 0 1 1 0 0 1 0 1 +0 1 0 +0 0 1 1 1 0 0 1 1 1 0 0 0 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 1 1 0 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 +1 0 0 +1 0 0 1 0 0 0 0 0 1 1 0 1 0 1 1 0 0 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 0 1 1 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 0 0 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 0 1 1 +0 1 0 +1 0 1 0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 1 0 1 1 1 1 1 0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 0 1 1 1 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 +0 1 0 +0 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 1 0 0 1 1 1 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 1 1 1 0 +0 1 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 1 1 1 1 1 0 0 0 1 1 0 0 0 0 1 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 1 1 1 1 0 0 1 1 1 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 +0 0 1 +1 0 0 1 0 0 0 0 1 1 0 0 1 0 1 1 1 0 1 1 1 1 1 0 1 0 0 1 0 0 0 0 1 0 0 1 0 1 1 1 1 1 0 0 1 0 0 0 0 1 0 1 1 0 0 0 1 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 0 1 0 1 1 0 0 1 0 1 1 1 0 1 0 1 0 1 1 0 1 1 0 1 0 1 0 1 1 1 1 1 +1 0 0 +1 0 1 0 1 0 0 1 1 0 0 0 0 1 1 0 1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 0 0 1 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 0 1 0 1 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 1 1 0 1 1 0 +0 0 1 +0 1 1 0 0 1 1 1 1 1 1 1 1 0 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 0 0 0 1 1 1 1 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 0 1 1 1 0 0 0 1 0 1 0 1 1 1 1 1 1 1 0 1 +1 0 0 +0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 0 0 0 0 1 1 0 1 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 0 0 1 1 1 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 0 0 0 1 1 0 +0 1 0 +1 0 1 1 1 0 1 1 0 0 1 1 0 0 0 1 1 1 0 0 0 1 0 1 1 1 0 1 0 0 0 0 0 1 1 1 1 1 1 0 1 1 1 1 0 1 0 0 1 1 1 1 0 0 1 1 0 1 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 +0 1 0 +0 1 1 0 1 0 1 0 1 0 1 0 1 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 1 1 1 1 0 0 0 0 1 1 0 1 0 0 0 0 1 0 1 0 0 1 0 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 1 1 0 0 0 1 1 1 1 1 1 0 0 1 1 1 +0 1 0 +1 1 1 1 0 0 1 0 0 0 1 0 0 1 1 0 1 1 1 0 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 0 1 0 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 1 1 0 1 1 0 1 1 1 1 1 1 1 0 0 1 1 0 1 1 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 1 0 0 0 0 0 1 1 1 0 1 0 1 1 +0 0 1 +0 1 1 0 1 1 1 0 0 1 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 1 0 1 0 1 0 0 1 1 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 1 1 0 1 1 1 1 0 0 1 1 1 0 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 1 0 0 1 1 1 0 1 0 0 0 0 0 0 1 0 1 1 1 0 1 0 0 0 0 0 1 0 1 0 1 1 0 0 1 +0 0 1 +1 1 0 0 0 0 0 1 0 1 0 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 0 1 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 0 0 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 0 1 0 0 1 +1 0 0 +1 0 1 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 0 0 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 1 1 0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 0 0 0 1 1 +0 1 0 +0 0 1 1 1 0 1 0 0 1 0 0 0 1 1 0 1 0 1 1 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 1 1 1 0 0 1 0 0 0 0 0 1 0 1 1 1 1 0 0 1 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1 1 0 1 1 1 1 0 1 1 1 0 1 0 0 1 0 0 1 0 1 1 1 0 1 1 1 1 1 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 0 +0 0 1 +1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1 0 0 1 1 1 0 0 1 0 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 1 1 1 1 0 0 1 0 0 0 0 0 0 1 1 +1 0 0 +0 1 0 1 1 0 1 0 0 1 1 1 1 0 0 0 0 0 1 0 0 1 1 0 1 0 0 1 0 1 1 1 1 0 1 0 1 1 1 1 0 0 1 1 1 1 0 0 0 1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 1 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 1 0 1 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 1 +1 0 0 +0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 1 0 0 1 0 0 0 1 1 0 0 1 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 1 1 0 1 0 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 +0 1 0 +0 0 0 0 0 0 1 1 0 0 1 0 1 1 1 0 0 0 1 0 1 0 1 1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 1 0 1 1 0 0 1 0 0 0 0 0 1 1 0 0 0 1 0 1 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 1 1 0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 0 1 0 1 0 1 0 +1 0 0 +1 0 0 1 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 0 0 1 1 1 0 1 1 1 0 0 0 1 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 1 1 1 +1 0 0 +0 1 1 1 0 0 0 0 1 1 1 0 1 1 1 0 1 1 1 1 1 0 0 1 0 0 0 1 1 1 1 1 0 0 0 1 1 1 0 0 1 1 1 0 0 1 0 1 1 1 0 0 0 0 1 1 0 1 1 0 0 1 1 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 0 1 1 1 0 1 1 1 1 1 1 1 0 0 1 0 0 0 0 +0 1 0 +1 0 0 1 1 1 1 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 1 0 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0 0 0 1 1 0 1 0 1 1 0 1 0 0 1 1 1 1 1 1 0 1 1 1 0 1 0 0 1 1 1 0 0 1 1 1 1 0 1 0 1 1 1 0 1 1 1 0 1 1 0 0 0 1 0 1 0 1 0 1 0 0 1 1 1 0 +1 0 0 +1 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 1 1 1 0 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0 0 1 1 0 1 1 1 0 1 1 1 0 0 0 0 0 0 0 1 0 1 0 1 1 0 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 1 0 +0 1 0 +1 0 1 0 0 1 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 1 0 1 1 0 1 1 1 0 1 1 0 0 0 0 0 0 1 1 1 1 0 1 1 0 1 0 1 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 0 0 1 0 1 0 0 1 1 1 0 1 0 1 1 0 0 0 1 1 1 0 0 1 0 0 1 1 1 1 0 1 0 0 1 +0 1 0 +0 0 0 0 1 1 1 0 0 1 0 0 1 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 0 1 0 0 0 0 0 1 0 0 1 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 +0 0 1 +1 1 0 1 1 0 1 1 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 1 1 0 1 0 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 1 1 1 0 0 1 0 0 +0 1 0 +1 0 1 1 1 0 1 0 1 1 0 1 0 1 0 0 1 1 0 1 1 1 1 1 1 0 1 1 0 1 0 0 1 1 1 0 0 1 0 0 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 0 1 1 1 0 1 0 1 0 1 1 1 1 1 1 0 1 0 0 1 1 1 0 1 1 0 0 1 1 0 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 +0 0 1 +1 0 0 1 0 0 0 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 1 0 1 1 0 0 0 1 1 0 1 0 0 1 1 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 1 0 1 1 1 1 1 1 1 0 1 1 +0 0 1 +1 1 0 0 0 1 0 1 1 0 1 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 1 0 1 1 1 0 0 1 1 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 0 1 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 0 1 0 1 0 0 0 1 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 1 1 1 1 0 +1 0 0 +0 1 1 0 0 1 0 0 1 1 1 0 1 0 0 1 0 1 1 0 1 1 1 1 0 0 0 1 1 1 0 1 0 0 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 0 1 1 1 0 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 0 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 1 1 +0 0 1 +1 1 0 1 0 0 1 1 1 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 1 0 1 0 0 1 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 0 1 1 1 0 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 0 +0 1 0 +0 1 0 0 0 0 0 1 1 0 1 1 1 1 1 0 1 1 0 0 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 0 1 0 1 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 1 0 1 0 1 1 0 1 1 0 1 1 1 0 1 1 0 1 1 1 0 0 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 1 1 1 0 1 1 1 1 1 0 0 1 0 0 +1 0 0 +0 0 0 0 1 0 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 1 1 1 1 0 0 1 0 0 1 1 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 1 1 0 1 1 1 0 0 1 1 0 1 1 1 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 1 0 1 1 1 0 1 0 1 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 1 1 1 0 0 0 0 +1 0 0 +0 1 1 1 0 0 1 0 1 1 1 1 1 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 1 0 1 0 1 1 1 1 0 0 1 1 0 1 0 0 1 1 1 1 1 0 1 1 0 1 1 0 0 0 1 1 1 0 1 1 1 0 1 0 1 1 0 0 0 1 0 0 1 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 1 1 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 1 1 +0 0 1 +1 1 1 0 0 1 0 0 0 1 0 1 0 1 0 1 1 1 1 1 1 0 1 0 0 1 0 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 1 1 0 1 1 0 0 0 1 0 1 1 1 1 0 1 0 0 0 0 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 0 0 1 1 1 0 1 0 1 0 1 1 1 1 1 1 0 1 1 1 0 1 1 0 1 1 0 1 1 0 1 0 +0 0 1 +1 0 0 1 1 1 1 1 1 0 0 1 0 1 1 0 1 1 1 0 1 0 0 0 1 1 1 0 1 0 0 1 0 1 0 1 1 0 0 1 1 0 1 1 1 0 0 1 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 1 0 1 1 +0 0 1 +0 0 1 0 1 0 0 0 1 0 0 1 1 0 0 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 1 1 0 0 0 0 0 1 0 0 0 0 1 1 1 0 1 1 0 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 0 0 +0 0 1 +1 1 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 +0 1 0 +1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 1 1 1 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 1 +0 1 0 +0 0 0 1 0 0 1 1 1 0 0 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 1 1 1 0 0 1 0 0 0 0 1 1 1 0 0 1 0 0 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 1 1 0 1 1 1 0 0 1 0 1 0 0 0 0 0 1 1 0 1 1 1 0 +0 0 1 +0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 1 1 1 1 1 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 1 1 1 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 0 0 1 0 1 1 0 1 1 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 1 0 +1 0 0 +0 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 1 0 0 1 0 0 1 0 0 1 0 1 1 1 0 0 0 1 0 0 0 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 1 1 +1 0 0 +0 1 0 1 0 0 0 1 1 0 1 0 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 0 1 1 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 0 1 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 0 1 1 1 1 1 0 0 1 1 1 0 1 0 0 1 1 0 0 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 +0 0 1 +0 0 1 1 0 0 0 1 0 0 1 1 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 0 0 1 1 0 0 1 0 0 0 0 1 1 0 1 0 1 1 1 0 1 1 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 1 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 +0 1 0 +1 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 0 0 1 0 0 1 1 0 0 1 1 0 1 0 1 1 0 1 1 1 0 1 0 0 0 0 1 1 1 1 1 0 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 0 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 1 1 0 1 0 0 1 1 1 0 1 0 0 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 +1 0 0 +1 1 1 0 1 1 1 1 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 1 0 0 1 0 1 0 0 1 1 0 0 1 0 0 0 1 0 1 1 0 0 1 1 1 0 0 0 1 0 1 1 0 1 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 +1 0 0 +1 0 0 0 0 1 0 1 0 1 0 0 0 1 0 0 1 1 0 0 1 1 1 0 1 1 1 0 1 1 1 0 1 0 0 0 1 1 0 0 0 0 1 1 0 0 1 0 1 0 0 0 1 1 1 1 1 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 0 1 +1 0 0 +1 0 1 1 0 1 1 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 0 1 1 0 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 +0 0 1 +0 0 1 1 1 0 1 0 1 1 1 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 1 0 0 0 1 0 0 1 1 1 1 1 1 0 0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 1 +0 0 1 +0 1 0 1 1 1 1 1 1 0 0 0 1 1 1 0 1 1 1 1 1 0 1 1 1 0 0 1 0 1 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 1 0 0 0 1 1 1 1 0 1 0 1 1 0 0 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 1 0 1 1 1 0 1 +0 0 1 +1 1 1 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 1 1 0 1 0 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 1 0 0 1 0 0 0 1 1 0 0 1 1 1 0 0 0 1 0 1 0 1 0 1 0 0 0 1 1 1 0 +0 0 1 +1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 1 0 1 0 0 0 1 0 0 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 1 1 1 0 1 0 1 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 1 0 0 0 1 1 0 1 0 0 1 1 1 1 1 0 1 1 1 1 0 0 1 0 1 1 0 1 1 0 0 1 1 1 0 0 1 0 1 0 1 1 0 1 0 0 1 1 1 1 1 +0 0 1 +1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 1 0 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 1 0 0 1 1 1 0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 1 0 1 0 1 0 0 0 1 0 1 0 0 1 1 0 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 +1 0 0 +0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 0 1 1 0 0 1 0 1 1 0 0 0 0 1 0 0 0 0 1 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 0 1 0 1 1 1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 +0 1 0 +1 0 1 1 1 1 1 1 0 0 1 1 0 1 0 1 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 1 0 1 1 0 0 0 0 1 1 0 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 1 0 0 1 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 1 1 1 1 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 +0 1 0 +0 1 0 0 0 0 0 0 1 1 1 1 0 1 0 1 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 1 1 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 0 1 0 1 0 1 1 1 0 1 0 0 0 0 0 1 1 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 0 1 1 1 0 0 1 0 0 0 0 0 1 0 1 0 1 0 1 +0 0 1 +0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 1 1 1 0 0 1 0 0 0 1 1 0 1 1 1 0 0 0 1 1 1 1 0 1 1 1 0 1 0 1 0 1 0 0 1 0 0 1 0 1 1 0 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 0 1 1 1 1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 0 1 0 +0 0 1 +1 0 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 +1 0 0 +0 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 0 1 1 1 1 0 0 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 1 1 0 1 1 0 1 1 1 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 1 1 1 0 1 1 1 0 1 0 1 0 0 1 0 0 1 1 1 0 0 1 1 0 +0 1 0 +1 0 0 0 1 1 0 0 0 1 1 0 1 0 1 0 0 0 1 1 1 1 0 0 1 1 1 1 1 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 1 0 1 1 1 0 0 1 1 1 1 0 1 0 1 1 1 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0 1 0 1 1 0 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 1 +0 1 0 +1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 1 1 1 0 0 0 1 1 1 0 1 1 0 1 0 0 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 1 1 0 1 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 0 1 0 0 1 1 1 0 1 0 1 1 1 1 +0 0 1 +1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 1 1 0 1 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 1 0 0 1 1 0 1 0 0 1 0 1 1 1 0 0 0 1 0 1 0 0 0 1 1 0 1 0 +0 0 1 +1 0 1 0 1 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 1 1 0 1 1 1 1 1 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1 1 0 0 0 0 0 0 0 1 1 1 0 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 0 0 1 1 0 1 1 1 0 0 0 1 0 0 0 1 0 0 0 1 1 +0 0 1 +1 0 1 1 0 1 1 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 0 1 0 1 1 1 1 0 0 0 1 0 1 1 1 1 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 1 1 0 0 1 1 0 1 1 0 1 0 0 0 0 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 1 +0 0 1 +0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 0 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 1 1 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 1 1 +0 0 1 +1 1 1 0 1 0 1 0 1 1 0 1 0 0 0 0 0 1 0 0 1 1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 1 1 0 0 1 0 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 +0 0 1 +1 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 1 0 1 0 1 0 0 0 1 1 0 0 0 1 1 0 1 0 0 1 0 0 1 0 1 1 1 1 +0 1 0 +1 1 1 0 1 1 1 0 1 0 0 1 0 0 0 1 0 1 1 0 1 1 0 1 0 0 0 1 0 1 0 0 1 0 1 1 1 0 0 1 1 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 0 0 1 1 +0 0 1 +0 0 0 1 0 1 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 1 1 0 0 0 1 0 1 1 0 1 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 1 1 1 0 0 0 0 0 0 0 +1 0 0 +0 0 1 1 0 1 1 0 0 1 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 0 0 1 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 0 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 0 1 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1 0 1 1 1 1 1 0 1 0 0 1 1 0 0 0 +0 0 1 +1 1 0 0 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 1 1 1 0 0 1 0 1 +1 0 0 +1 1 0 0 1 0 0 1 1 1 1 0 1 0 0 0 1 0 0 0 0 0 1 1 0 1 1 0 1 0 0 1 1 0 1 1 0 0 0 0 0 1 1 1 1 0 0 1 0 1 0 1 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0 0 1 +1 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 1 0 1 0 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 0 1 1 0 1 1 1 0 0 1 1 1 1 0 0 0 1 +0 1 0 +0 0 0 0 1 0 0 0 1 0 1 1 0 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 1 0 0 0 0 1 1 1 1 1 0 1 0 1 0 1 1 0 0 0 0 0 1 1 0 1 0 1 0 0 1 0 0 0 1 1 1 0 0 1 1 0 0 1 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 1 1 1 0 0 1 0 1 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 +0 1 0 +1 1 0 0 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 0 1 1 0 1 1 1 0 0 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 1 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 1 1 1 1 1 0 1 1 0 +0 0 1 +1 0 0 1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 0 0 1 0 1 1 0 0 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 0 0 1 0 1 1 0 0 0 1 1 1 1 1 1 1 1 0 1 0 0 1 1 0 1 1 0 1 0 0 1 1 1 0 0 1 1 1 1 1 0 0 0 0 0 1 1 +0 0 1 +1 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 1 0 0 1 0 0 1 0 1 0 1 1 1 1 0 1 0 1 0 0 1 1 1 1 1 0 1 1 0 1 1 1 0 1 1 1 1 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 1 0 0 0 1 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 1 1 0 1 0 0 0 1 1 1 1 0 1 1 1 0 1 1 0 1 1 0 1 0 1 0 0 1 +0 0 1 +1 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 0 1 0 1 0 1 1 0 1 0 0 1 1 1 1 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 1 1 1 1 0 1 1 0 1 0 1 1 0 1 1 0 1 1 0 0 1 1 1 0 1 0 1 1 0 0 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 0 +1 0 0 +1 0 0 1 1 1 1 1 0 1 0 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 0 1 0 0 1 0 0 1 1 0 1 0 0 0 1 1 0 0 0 1 0 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 0 1 0 1 1 0 0 0 0 0 1 1 0 0 1 1 0 0 1 0 0 1 1 0 0 0 1 0 0 +0 1 0 +1 0 1 0 0 1 0 1 1 0 0 1 1 1 1 0 1 1 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 +1 0 0 +0 1 0 0 1 1 0 0 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 1 0 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 1 0 0 1 1 1 0 1 1 1 1 0 0 1 0 1 1 0 0 0 0 1 1 0 1 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 +0 0 1 +1 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 0 1 0 1 1 1 1 0 0 1 0 0 1 1 0 1 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 1 1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 1 0 +0 0 1 +1 0 0 1 1 0 0 0 1 1 0 0 1 1 1 0 1 1 1 0 0 1 0 0 1 0 0 1 1 1 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 1 1 0 1 0 0 +0 0 1 +1 0 0 1 0 1 1 0 1 1 0 0 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 1 1 0 1 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 0 0 0 1 0 1 1 0 1 1 1 0 1 0 0 0 0 1 1 1 1 0 1 1 1 0 0 0 1 1 1 0 1 1 1 0 0 1 0 0 0 0 0 1 1 1 1 1 1 1 0 1 1 1 0 1 0 1 +0 0 1 +1 0 1 0 1 0 1 1 1 0 1 1 0 1 1 0 0 0 1 0 0 0 1 1 1 0 0 0 0 1 0 1 0 1 0 0 1 0 0 1 1 1 1 0 0 1 0 1 1 0 0 0 0 1 0 1 1 0 0 1 1 0 1 1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 1 1 1 0 1 1 1 1 0 1 0 0 1 1 1 1 1 0 0 0 1 1 0 1 1 0 0 0 0 1 1 1 1 0 1 0 0 1 0 1 0 1 +1 0 0 +1 1 1 1 1 0 0 0 0 1 1 0 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 0 1 1 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 1 1 1 1 0 0 1 0 1 1 0 0 1 0 0 0 0 0 1 0 0 0 1 0 1 1 0 1 0 0 0 1 1 1 0 0 1 0 1 0 1 0 1 1 0 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 +0 0 1 +1 0 1 1 0 1 1 1 1 1 1 1 0 0 0 1 0 0 0 1 1 1 0 1 1 1 1 1 0 1 0 0 0 1 0 1 1 1 1 1 1 1 1 0 1 1 0 0 0 1 0 0 0 1 1 1 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 0 1 1 1 0 0 0 0 1 0 0 1 1 1 1 1 1 1 0 1 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 +0 0 1 +0 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 0 0 1 0 0 0 1 0 1 0 1 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1 1 +0 1 0 +1 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 0 0 1 1 0 0 1 1 1 0 +0 1 0 +1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 1 1 1 0 1 1 1 0 0 0 0 0 1 1 0 1 0 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 0 1 0 0 1 1 1 0 1 0 1 0 1 1 1 1 1 0 1 1 0 1 1 0 1 1 0 0 1 1 0 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 1 1 0 1 0 0 0 1 0 1 1 0 1 1 1 1 1 0 +0 0 1 +0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 1 +0 1 0 +1 0 1 1 0 0 0 0 1 1 1 0 1 1 1 0 0 0 0 0 1 1 1 0 1 1 1 0 1 1 1 1 0 1 0 0 1 1 1 1 1 0 0 0 1 1 0 1 0 0 0 1 1 0 1 1 1 1 0 1 1 0 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 1 1 0 1 0 0 1 0 1 0 0 +0 0 1 +0 1 1 1 0 0 1 0 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 1 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 1 0 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 1 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 +1 0 0 +0 1 0 1 1 1 0 1 0 1 1 1 1 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 1 0 1 0 0 1 0 1 0 0 1 1 1 1 0 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 0 1 1 0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 0 1 1 0 1 0 0 1 1 0 0 0 1 1 +0 0 1 +1 0 0 1 1 1 1 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 0 1 0 1 1 1 1 0 1 0 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 0 1 1 0 1 0 1 1 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 +1 0 0 +1 1 0 1 1 1 1 0 1 1 1 0 0 1 1 0 1 0 0 1 0 0 1 0 0 0 0 1 1 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 1 0 1 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 1 0 1 1 1 1 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 0 0 1 1 0 1 1 1 0 +1 0 0 +1 0 1 0 0 1 0 0 0 1 1 0 1 0 0 1 1 1 1 0 1 1 0 1 1 0 0 0 1 1 0 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 1 1 1 0 0 1 1 1 0 0 0 0 0 1 0 1 1 1 1 1 1 1 0 0 1 0 1 0 1 0 1 1 0 0 0 1 1 1 1 0 1 1 0 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 0 1 1 0 1 0 0 +0 0 1 +0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 0 0 0 0 0 0 1 1 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 0 0 0 1 1 0 0 0 1 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 0 0 1 0 1 0 0 0 +0 1 0 +1 0 1 0 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 1 0 0 0 1 0 1 0 1 0 1 1 0 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 1 0 1 0 0 0 0 0 0 1 0 1 1 1 0 1 0 1 1 0 0 0 0 0 0 1 0 1 1 1 +0 0 1 +0 0 1 1 1 0 1 0 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 1 0 0 0 0 1 0 1 0 1 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 1 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 0 1 1 0 1 1 0 0 0 1 0 1 1 0 1 0 +0 1 0 +1 0 0 1 1 0 1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 1 0 0 0 1 0 1 1 1 0 0 0 0 0 1 1 1 0 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 0 1 0 1 1 0 0 1 0 1 0 1 1 0 1 0 0 1 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 1 0 0 1 0 1 1 0 0 0 0 0 0 0 1 0 1 0 1 0 +0 1 0 +0 0 0 1 1 0 1 1 1 1 0 0 0 1 1 1 1 1 0 0 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 1 1 0 1 1 0 1 0 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 +0 0 1 +1 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 0 1 1 1 0 0 0 1 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1 1 0 0 0 0 0 1 1 0 1 0 0 1 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 +0 0 1 +1 1 1 0 0 1 0 0 0 1 0 1 1 1 0 1 1 0 0 0 0 0 0 0 1 1 1 0 1 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 0 1 1 1 1 0 1 0 1 0 1 1 0 1 0 1 0 0 1 1 1 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 +0 0 1 +0 1 0 1 1 0 0 0 0 1 0 1 0 0 1 1 1 1 1 1 1 1 0 1 0 1 1 0 1 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 0 1 0 1 1 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 1 0 0 1 1 1 1 0 1 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 0 0 1 0 1 1 1 0 1 0 0 0 0 0 0 1 0 1 +0 0 1 +0 1 1 0 0 1 1 0 1 1 1 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 0 1 1 1 0 1 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 0 0 1 1 1 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 1 0 1 1 0 1 1 1 1 1 1 1 0 1 1 0 0 1 0 1 1 1 1 0 1 0 +0 0 1 +1 1 1 1 0 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 1 0 1 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 0 1 0 0 0 1 1 0 0 1 0 0 0 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 0 1 1 0 1 1 0 0 1 1 +0 1 0 +1 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 0 0 1 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 0 0 1 0 0 1 1 1 0 0 0 1 1 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 1 1 0 1 1 1 0 1 1 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 0 1 0 1 +0 0 1 +1 1 1 1 0 0 0 1 0 1 1 0 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0 1 1 0 1 0 0 1 0 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 0 0 1 1 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 0 1 0 1 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0 0 1 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 +1 0 0 +0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 1 1 1 1 1 1 1 0 1 0 1 0 1 1 1 1 1 1 1 0 0 0 1 0 0 0 1 1 1 1 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 1 1 1 1 0 1 0 1 1 1 1 1 0 0 0 1 1 1 0 0 1 1 1 0 1 0 1 0 0 1 1 1 +0 0 1 +0 0 1 1 1 0 0 1 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0 1 1 1 0 +0 1 0 +0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 1 1 1 0 0 1 0 1 1 1 1 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 1 0 1 0 0 0 +0 0 1 +0 0 0 0 1 0 1 0 0 1 1 0 1 1 0 1 1 1 1 1 1 0 1 0 1 0 0 1 0 0 0 0 1 0 1 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 0 1 0 1 1 0 1 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 1 0 0 1 0 1 0 0 1 0 0 1 1 0 0 1 1 0 +0 0 1 +1 0 1 0 1 0 0 0 0 1 1 0 1 1 1 0 0 0 1 0 1 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 1 1 1 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 1 1 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 1 0 +1 0 0 +1 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 1 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 0 1 1 1 1 1 1 1 0 1 0 0 1 0 0 1 1 1 1 1 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 1 1 1 1 0 0 0 +0 0 1 +1 1 1 1 1 1 1 0 1 0 0 1 0 1 0 0 0 0 1 1 0 1 1 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 0 1 0 0 1 0 0 1 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 1 0 0 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 1 +0 0 1 +1 1 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 1 1 0 0 1 1 0 1 1 0 0 1 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 1 1 1 0 1 0 1 1 1 0 1 1 1 1 1 0 0 1 1 0 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 0 1 1 1 0 0 0 +0 0 1 +1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 0 1 0 0 1 0 1 1 0 0 0 0 0 1 1 1 1 1 0 1 0 1 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 1 0 1 0 0 1 0 1 1 1 0 1 +1 0 0 +0 1 1 0 0 0 0 1 1 0 0 1 0 1 0 0 1 0 0 0 1 1 0 1 0 1 1 0 1 1 0 1 1 1 1 0 1 1 0 1 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 1 0 1 1 0 0 0 0 1 1 0 1 1 1 1 1 0 0 1 1 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 0 0 1 1 1 1 0 1 0 1 0 1 0 0 0 1 +0 0 1 +0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0 1 1 1 0 1 0 0 1 1 1 1 0 1 0 0 1 0 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1 1 1 +0 0 1 +0 0 1 1 1 0 0 1 0 0 1 1 0 1 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 1 1 0 0 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 0 0 1 1 0 0 1 0 0 0 0 1 1 1 1 0 0 0 1 0 1 0 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 1 1 0 0 0 0 0 0 1 0 0 1 0 1 1 1 0 0 0 1 1 0 0 0 0 0 1 0 0 1 0 0 1 1 1 0 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 1 0 0 1 0 0 1 0 0 1 0 1 0 1 0 0 0 1 1 0 0 0 1 0 1 0 1 1 1 0 1 0 0 0 0 +0 0 1 +1 0 0 0 1 1 0 0 0 0 1 0 1 0 1 0 1 1 0 0 0 0 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 1 0 0 1 0 0 1 1 0 0 1 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 1 1 0 0 1 1 0 1 0 1 0 +1 0 0 +0 0 1 1 0 0 0 1 0 0 0 1 1 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 0 0 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 0 0 1 0 1 1 1 1 1 1 1 0 0 1 1 1 0 +1 0 0 +0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 1 0 0 1 0 1 0 1 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 1 1 0 1 1 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 1 0 0 1 +0 0 1 +1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0 1 1 1 1 1 0 1 1 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 1 1 1 0 0 0 1 1 1 0 1 1 0 1 0 0 0 0 +0 0 1 +0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 0 0 0 1 1 1 0 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 0 1 1 1 1 1 0 1 1 1 0 0 1 1 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 1 1 1 1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 +1 0 0 +0 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 0 1 0 0 0 0 0 1 0 1 0 0 1 0 0 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 1 1 0 0 1 1 1 0 0 1 0 1 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 +0 1 0 +1 1 1 1 0 0 0 0 1 1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 1 1 0 1 1 1 1 1 0 1 0 1 1 0 0 1 1 0 0 1 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 1 1 0 1 1 0 0 0 1 1 1 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 0 1 0 0 1 +0 0 1 +0 0 0 0 0 1 1 0 0 1 0 1 1 1 1 0 0 0 0 0 1 1 0 0 0 1 0 0 1 0 1 1 1 0 0 0 1 1 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 1 0 0 0 0 0 1 1 1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 +0 0 1 +0 0 1 1 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 1 0 1 1 0 0 0 0 0 0 1 1 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 0 0 1 0 0 1 1 1 1 1 1 0 0 1 1 1 0 0 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 0 1 1 0 0 1 0 1 1 1 0 1 0 1 1 1 0 0 0 1 1 0 0 1 +0 0 1 +1 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 1 1 1 0 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1 1 0 +0 0 1 +1 0 1 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 0 1 1 1 1 1 0 0 1 0 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 1 1 1 1 0 0 1 0 1 1 1 0 1 1 1 0 0 0 0 1 0 0 0 0 +0 0 1 +1 0 0 1 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 1 0 1 0 0 0 1 1 0 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 0 1 1 1 0 1 0 0 1 0 1 1 1 0 0 1 1 1 0 0 0 0 1 0 1 1 0 1 1 1 0 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1 1 1 0 1 1 0 0 0 1 1 1 1 +0 0 1 +0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 1 1 0 0 1 0 1 1 0 1 1 1 1 1 0 1 0 0 0 1 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 1 0 1 0 1 1 0 0 0 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 1 +0 0 1 +1 0 1 0 1 0 1 0 1 0 0 1 0 1 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 1 1 0 0 0 0 1 0 1 0 1 0 0 0 1 1 0 1 0 1 1 0 0 1 1 1 0 1 0 1 0 0 1 1 0 1 0 0 0 0 1 1 0 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 0 0 0 0 0 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 0 +0 0 1 +0 1 0 1 1 1 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 0 0 1 0 1 0 1 0 1 0 0 1 0 0 1 0 1 1 1 1 1 0 0 1 1 0 1 1 0 0 1 1 0 0 0 1 1 1 1 1 0 0 1 0 0 0 0 0 1 1 0 1 1 1 1 1 1 0 1 0 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 1 0 0 1 0 0 0 1 0 1 0 1 0 1 0 1 +0 0 1 +1 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 0 1 0 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 1 1 0 1 1 1 0 0 0 1 1 1 1 0 0 1 1 0 1 1 1 0 1 0 1 0 0 1 1 0 0 0 0 0 1 1 0 1 1 1 1 0 1 +0 1 0 +1 0 0 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 0 0 1 1 0 1 0 1 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 1 0 1 1 0 0 1 0 0 1 1 0 1 1 1 0 1 0 1 1 0 0 1 1 1 0 0 0 0 1 1 1 0 1 0 1 0 1 0 0 0 1 1 0 0 0 0 0 1 1 0 1 1 1 1 0 0 0 1 0 1 1 0 0 0 1 1 +0 0 1 +0 0 0 1 1 1 0 1 1 1 1 0 1 1 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 1 0 1 0 0 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 0 0 1 1 1 0 +0 1 0 +0 0 0 1 1 0 0 1 0 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 1 1 1 1 0 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 0 0 1 1 0 1 1 0 0 0 1 1 0 0 1 0 0 0 1 +0 0 1 +1 0 1 0 0 1 0 1 0 0 0 0 0 0 1 1 1 0 0 1 0 1 1 0 0 1 1 1 0 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 0 1 1 0 0 0 0 1 1 1 0 1 1 0 0 0 1 0 0 1 1 0 0 1 1 0 1 1 1 1 0 1 0 1 0 0 1 0 0 1 1 1 1 0 1 0 0 1 0 1 0 0 0 1 1 0 0 1 1 1 1 1 1 1 0 1 1 +0 0 1 +1 0 1 0 0 1 1 1 1 0 0 0 0 1 1 0 1 1 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 0 1 1 1 0 0 0 1 0 1 1 0 1 0 1 1 1 1 0 1 0 0 0 1 0 1 1 0 0 1 0 0 0 1 1 0 1 1 0 0 1 1 0 0 0 1 0 1 +1 0 0 +1 1 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 +0 1 0 +0 1 0 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 0 1 1 1 0 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 0 1 0 0 1 1 1 1 0 1 0 0 1 1 1 0 1 0 1 1 0 1 0 1 1 1 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 0 1 0 0 +0 0 1 +0 0 1 1 0 1 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 0 1 1 1 0 0 1 0 1 0 1 1 1 0 1 1 1 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 0 1 0 0 0 1 0 0 1 1 1 1 1 1 0 1 1 0 0 1 0 0 0 0 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 0 +0 0 1 +1 0 0 1 0 0 0 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 +1 0 0 +1 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 1 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 0 1 0 1 0 0 1 1 1 1 1 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 1 0 0 1 1 1 1 1 0 0 1 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 +0 0 1 +1 1 1 0 1 0 0 1 0 0 0 0 0 1 1 1 0 0 1 0 0 0 1 0 1 0 0 1 1 1 0 1 1 0 0 1 0 0 0 1 0 1 1 0 0 1 0 1 0 0 0 0 1 0 0 1 1 0 1 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 1 0 1 1 0 0 0 0 +0 0 1 +1 0 1 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 1 1 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 0 0 1 +1 0 0 +0 1 1 0 0 1 0 1 0 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 1 0 1 1 0 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 1 1 0 0 1 1 1 1 0 1 1 1 1 0 0 1 0 1 0 0 0 0 0 1 1 1 1 1 0 1 1 1 1 0 1 0 1 1 1 0 +0 0 1 +0 1 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 0 1 1 1 1 0 0 1 1 1 1 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 0 1 0 0 1 1 1 0 1 0 0 0 1 0 1 0 0 1 1 1 0 0 0 1 1 +0 0 1 +1 1 0 1 0 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 1 0 0 1 0 1 1 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1 1 0 0 1 0 1 1 0 0 1 1 1 0 1 0 1 0 0 0 1 1 0 1 1 1 0 1 1 1 1 1 1 0 0 0 1 0 1 +0 1 0 +0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 0 1 1 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 1 1 0 0 1 0 0 0 1 0 1 0 0 1 1 1 0 1 0 1 0 0 1 0 0 0 1 1 0 0 0 1 0 1 1 +0 1 0 +0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 1 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 0 0 1 0 0 0 1 1 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 1 0 1 0 0 1 0 0 0 1 1 1 1 0 1 0 1 1 0 1 1 1 0 0 1 1 0 0 0 0 +0 0 1 +1 0 1 0 1 0 1 0 0 0 0 1 1 0 1 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 0 1 1 0 0 1 0 0 +0 1 0 +1 1 1 0 0 0 0 1 1 0 1 1 1 1 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 1 1 1 0 1 1 1 1 0 0 0 1 1 1 1 0 1 1 1 1 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 1 1 0 1 1 0 1 1 +0 0 1 +1 1 1 0 0 0 0 1 1 1 1 0 1 1 0 1 1 1 0 0 1 1 1 0 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 1 1 1 0 1 0 1 0 0 0 0 1 0 1 1 1 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 0 0 1 1 1 0 +0 1 0 +1 0 1 1 1 0 1 0 0 0 1 1 1 0 1 1 1 1 0 1 0 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 1 0 1 1 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 1 0 0 0 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 1 1 1 1 0 1 0 0 0 0 1 1 1 1 1 0 1 0 0 1 1 0 0 1 1 1 0 0 0 0 0 1 0 1 1 +0 0 1 +1 1 1 1 1 1 1 0 0 1 0 1 0 1 1 0 0 1 1 1 1 1 0 0 1 1 1 0 0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 1 1 0 0 0 1 0 1 0 1 1 0 0 1 1 0 1 0 1 1 1 1 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 1 0 0 1 1 0 1 1 1 1 0 1 1 0 1 1 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 1 1 0 1 0 1 1 +1 0 0 +0 1 1 1 1 0 1 0 0 1 1 1 1 1 1 0 1 1 0 1 0 1 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 1 1 1 0 1 1 1 0 1 1 1 1 1 0 0 1 0 1 0 1 0 0 1 1 1 0 1 0 1 1 1 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 0 0 1 1 0 1 1 1 1 1 0 1 1 0 0 1 0 0 0 0 1 1 0 1 0 +0 0 1 +0 0 1 1 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 1 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 1 0 0 1 1 0 1 1 1 1 1 0 0 +0 0 1 +0 1 0 1 1 0 0 0 1 1 1 1 0 0 1 0 1 0 1 0 1 1 1 0 1 0 0 1 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 0 1 0 1 0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 0 0 1 1 1 0 0 1 1 1 0 1 0 1 0 1 1 0 0 +1 0 0 +1 0 1 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 1 0 1 0 1 0 0 1 1 0 1 1 1 0 1 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 1 0 1 0 0 1 1 1 1 1 0 0 0 0 0 1 0 1 +1 0 0 +0 0 0 0 0 0 0 1 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 1 0 0 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 0 0 0 0 1 1 0 1 0 0 0 1 0 0 1 1 0 1 1 1 0 0 0 0 0 0 1 1 0 1 1 1 0 1 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 0 1 0 0 0 1 1 +1 0 0 +1 1 1 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 1 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 1 1 1 1 +0 1 0 +1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 0 1 1 0 1 1 1 1 0 1 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 1 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 1 1 0 0 1 0 1 1 1 1 1 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 +0 1 0 +0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 1 1 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 1 1 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 1 0 0 1 0 0 +0 1 0 +0 1 0 1 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 0 1 1 0 0 0 1 1 1 0 1 1 0 1 1 1 0 1 0 1 0 1 0 0 0 1 1 0 0 1 0 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0 1 0 1 1 1 0 1 0 1 1 1 1 1 1 0 0 1 1 1 0 1 1 0 0 0 1 0 0 1 1 1 1 1 0 1 1 1 0 1 1 1 0 0 1 1 1 1 0 1 0 1 1 +0 0 1 +0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 0 1 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 1 0 0 1 0 0 +0 1 0 +1 0 0 0 1 1 1 1 1 0 0 0 0 1 0 0 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 0 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1 0 0 0 1 0 0 1 1 1 0 0 1 0 1 1 0 0 0 1 0 1 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 0 0 1 0 0 0 1 1 0 0 +0 0 1 +1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 1 0 1 1 1 1 0 0 0 1 1 1 0 1 1 1 0 0 0 1 1 0 0 1 1 1 0 0 0 1 0 1 1 0 1 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 +0 0 1 +0 0 1 1 1 1 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 0 0 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 0 0 1 0 1 0 0 1 0 0 0 1 0 0 1 1 1 1 0 1 1 1 1 0 1 1 0 1 1 1 0 0 +0 1 0 +0 0 1 1 0 1 0 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 1 1 0 0 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 0 1 1 1 0 0 1 0 0 1 1 1 1 1 1 1 1 0 1 0 1 1 0 0 1 0 1 0 0 0 1 0 1 +0 0 1 +0 1 1 1 1 1 1 0 1 0 0 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 1 1 1 0 0 1 0 0 0 0 1 1 0 0 1 0 1 1 1 0 1 1 1 1 1 0 1 0 0 1 0 0 0 0 1 0 0 1 0 1 1 1 1 1 0 0 1 0 0 0 0 1 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 1 0 1 1 1 0 0 0 +0 0 1 +0 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 0 0 1 0 1 1 0 0 1 0 1 0 0 0 1 1 1 1 0 1 1 1 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 0 0 1 1 0 1 1 1 1 0 0 1 1 +0 1 0 +1 1 1 1 0 0 0 1 0 1 1 0 0 1 0 0 0 0 0 1 1 1 1 1 1 0 0 1 1 0 1 0 0 1 0 0 0 0 1 1 1 0 0 1 1 0 1 0 0 1 0 1 0 0 0 1 0 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 0 1 0 1 1 1 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0 1 1 1 1 1 +1 0 0 +0 1 1 0 0 1 1 0 1 1 1 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 1 0 0 1 0 1 0 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 0 0 1 1 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 1 +0 0 1 +1 1 0 0 1 1 1 1 1 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 0 0 1 0 1 0 1 0 1 1 1 1 1 0 1 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 0 1 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 0 1 1 0 1 0 1 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 1 1 +0 0 1 +1 1 1 0 1 0 0 1 1 0 0 1 0 1 0 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 1 0 0 1 0 1 0 0 0 0 1 1 0 1 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 0 1 0 1 0 1 0 1 1 0 1 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 0 +0 0 1 +1 0 0 1 1 1 0 1 0 0 1 1 1 0 0 0 1 1 0 0 0 1 0 1 1 1 1 0 1 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 0 0 1 0 1 1 0 0 1 1 1 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 0 0 1 0 1 1 0 1 0 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 0 0 0 0 0 1 0 0 1 0 0 0 +0 0 1 +0 0 1 0 0 0 1 1 1 0 0 1 1 1 0 1 0 0 0 0 1 1 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 1 1 1 0 1 1 0 1 0 1 0 0 0 0 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 1 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 1 1 1 0 1 1 1 0 1 1 1 1 0 1 0 0 +0 0 1 +1 0 1 1 1 0 1 0 0 0 1 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 1 1 0 1 0 1 1 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 1 +0 0 1 +0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 1 0 0 0 0 1 0 +0 0 1 +1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 1 0 0 1 0 0 0 0 0 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 0 1 0 0 1 1 0 0 0 0 1 1 1 0 0 1 1 1 0 1 1 0 1 1 0 1 0 0 1 0 1 0 0 0 1 0 1 0 1 1 1 1 0 0 0 0 1 0 1 +0 0 1 +0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 1 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 0 0 1 0 0 1 1 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 1 1 0 0 1 +0 1 0 +1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 1 1 1 0 0 1 1 1 0 1 0 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 0 0 1 0 1 1 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 0 1 0 1 0 1 1 0 1 1 1 1 0 0 0 1 0 0 0 1 1 1 1 1 1 1 0 1 1 1 0 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 0 +0 0 1 +1 1 0 0 0 1 0 1 1 0 0 1 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 0 0 1 1 0 1 0 1 1 1 0 0 1 0 1 1 1 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 1 1 0 1 0 1 1 0 1 0 0 1 1 1 0 1 0 1 0 1 0 0 1 1 1 1 0 0 0 1 0 1 0 +1 0 0 +1 1 1 0 1 0 0 0 0 1 0 1 0 1 0 1 0 0 0 1 0 0 1 1 1 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 1 0 0 1 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 0 0 0 1 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 1 0 1 1 1 0 0 1 0 1 1 0 0 1 0 0 1 0 0 0 1 +0 0 1 +1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 1 1 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 1 0 1 0 1 1 1 0 1 1 0 0 0 1 1 1 1 0 1 1 0 1 0 1 1 0 1 1 1 0 0 0 0 0 0 1 1 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 0 0 1 1 0 1 1 1 +1 0 0 +1 0 0 1 0 1 1 0 1 0 0 0 1 1 1 1 0 1 1 1 1 0 1 1 1 0 1 0 0 1 1 1 1 0 0 1 1 1 0 1 0 0 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 0 1 0 0 0 1 1 0 0 1 1 1 1 0 0 1 0 1 0 1 1 0 0 0 0 1 1 0 0 1 0 1 0 0 1 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 1 0 0 1 1 1 +0 0 1 +1 0 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 0 1 1 0 1 1 0 0 1 1 1 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 0 0 0 1 1 1 1 1 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 1 1 0 0 1 1 1 0 1 0 0 0 1 0 1 0 1 1 1 0 0 1 1 0 0 0 0 0 1 +0 0 1 +0 1 0 1 0 1 0 1 1 0 1 0 0 1 0 1 0 1 1 1 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 1 1 0 0 1 0 1 0 1 1 1 0 0 1 1 1 0 1 0 0 1 0 1 0 1 1 0 0 1 0 1 1 0 0 0 1 1 1 1 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 1 0 1 0 0 1 1 1 0 0 0 1 1 1 1 0 1 1 0 1 1 1 0 1 1 1 1 +0 0 1 +1 1 1 1 0 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 1 0 1 1 1 1 0 0 1 1 1 0 1 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 0 1 0 0 0 1 1 0 1 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 0 1 1 1 1 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 +1 0 0 +0 0 0 0 0 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 0 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 1 1 1 1 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 0 0 0 1 0 1 1 1 1 0 0 1 0 1 1 +1 0 0 +1 1 1 1 1 1 0 1 1 1 1 1 0 1 0 0 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 1 1 0 1 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 1 1 0 0 1 0 0 1 1 +0 0 1 +1 0 1 0 0 0 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 1 1 0 1 1 1 1 0 0 1 0 0 0 1 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 0 0 1 0 0 0 0 1 1 1 0 1 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 1 0 0 1 0 1 0 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 1 1 1 1 0 0 0 1 1 1 0 0 +0 0 1 +1 1 0 0 0 0 0 0 1 1 1 0 0 1 0 0 1 1 0 0 1 1 0 0 0 0 1 0 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 0 0 0 1 0 1 1 1 0 0 1 1 0 1 1 0 1 0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 +0 1 0 +1 1 1 0 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 1 0 1 1 0 0 1 1 1 0 1 1 1 0 1 0 1 1 1 1 1 0 1 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 1 1 +0 0 1 +0 0 1 1 1 0 1 1 1 1 1 0 1 1 1 0 0 1 1 1 1 0 1 1 1 0 1 1 0 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 1 0 1 0 1 0 +1 0 0 +1 1 0 0 1 0 1 1 1 0 1 0 0 0 1 0 1 1 1 1 1 1 1 0 1 1 1 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 1 1 0 0 0 1 1 0 0 0 1 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 0 +0 0 1 +1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 0 1 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 0 0 1 0 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 1 1 0 +0 0 1 +1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0 0 0 1 1 0 0 1 1 0 0 0 1 1 0 1 1 0 1 1 1 1 1 0 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 0 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 0 1 1 0 1 0 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 0 0 1 0 1 +0 0 1 +1 0 1 0 1 0 1 1 0 1 0 0 0 0 1 0 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 1 1 1 0 1 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 1 0 1 1 1 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 0 1 1 0 0 1 0 1 0 0 +0 0 1 +1 0 1 1 0 0 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 1 1 0 1 0 0 0 1 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 0 1 1 0 1 1 0 0 1 0 1 1 0 1 0 +0 0 1 +1 0 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 1 1 1 1 1 0 0 0 0 1 1 0 1 1 1 0 0 1 1 0 0 0 0 0 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 1 1 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 0 1 0 0 0 1 1 0 0 1 1 0 +0 0 1 +1 0 1 0 1 1 0 1 0 1 1 0 0 1 1 0 0 1 0 1 0 1 1 1 0 1 1 0 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 1 0 1 0 1 0 0 1 1 0 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 0 0 0 1 0 1 1 1 1 1 1 0 1 0 0 1 1 1 0 0 1 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 1 0 1 1 +0 0 1 +1 0 0 0 0 0 0 1 1 1 1 0 1 0 0 1 0 1 0 1 0 1 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 1 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 1 0 1 0 1 0 1 1 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 0 0 0 0 1 0 1 0 0 0 1 1 0 0 1 0 0 +0 0 1 +0 0 0 0 1 1 1 1 0 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 0 0 1 1 0 1 0 1 1 0 1 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 +0 1 0 +1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 0 1 1 1 0 1 0 0 1 0 0 0 0 1 0 0 1 1 0 1 1 0 1 1 0 0 1 0 0 0 1 1 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 1 1 0 1 0 0 1 0 0 1 1 0 +0 1 0 +0 1 0 1 1 0 1 1 1 1 1 0 0 0 0 1 0 0 1 0 1 1 1 0 1 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 1 0 1 1 1 0 0 1 1 0 1 1 0 0 1 1 0 1 1 1 1 0 1 0 1 0 0 1 0 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 1 0 0 1 1 0 0 1 1 +1 0 0 +0 0 1 0 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 1 0 1 1 1 0 1 1 0 0 1 0 0 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1 1 0 1 1 0 1 1 1 1 0 1 1 1 1 1 0 1 0 1 1 0 1 0 1 1 0 +0 1 0 +0 1 1 0 0 1 0 1 1 1 1 0 1 1 0 0 1 0 1 1 1 0 1 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 1 0 1 0 1 0 0 1 1 0 0 0 0 1 1 0 0 1 0 0 1 0 0 0 1 1 1 0 1 1 1 1 1 0 1 0 0 0 0 1 1 1 1 0 0 1 1 0 1 1 0 1 0 0 0 1 1 0 1 1 0 1 0 0 0 0 0 1 1 0 0 1 +0 0 1 +0 0 1 1 1 1 1 1 1 0 1 0 0 0 1 1 0 0 0 1 0 0 1 1 1 1 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 0 1 1 0 1 0 0 0 1 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 0 0 1 0 1 1 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 0 1 1 0 1 1 +0 1 0 +0 0 0 0 0 1 0 1 1 1 1 1 0 0 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 0 0 0 0 1 1 0 0 1 0 1 0 0 0 1 1 0 0 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 0 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 1 0 1 1 0 0 1 0 1 1 0 1 0 1 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 +0 0 1 +1 1 0 0 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 1 1 1 0 0 1 0 1 +1 0 0 +0 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 1 0 1 0 1 0 0 0 1 1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 0 1 0 0 0 0 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 0 1 0 1 1 0 0 0 0 1 1 0 +0 0 1 +0 1 1 0 0 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 1 1 0 0 1 1 1 0 1 0 1 1 0 1 0 1 1 0 0 0 1 0 0 1 0 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 1 0 0 0 1 0 1 0 1 0 1 +1 0 0 +0 0 0 1 1 1 1 0 1 0 0 0 0 1 0 0 1 1 1 0 0 1 0 0 1 1 0 1 1 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 1 1 1 1 0 0 0 +0 1 0 +1 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 1 0 1 0 1 0 1 0 0 0 1 1 0 0 1 0 1 1 1 0 0 1 0 0 0 1 1 1 1 1 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 +0 0 1 +0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 0 0 0 1 0 0 0 0 1 1 1 1 0 0 1 1 0 1 0 0 1 0 0 1 1 0 1 0 0 1 0 0 0 1 1 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 +0 1 0 +0 1 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 0 0 1 1 1 1 0 1 0 0 0 0 1 1 1 0 1 1 0 1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1 +1 0 0 +1 0 1 1 1 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 1 1 0 0 1 1 1 0 1 1 0 1 0 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 1 0 0 0 1 1 1 +0 0 1 +1 0 0 1 0 0 0 1 1 0 1 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 0 1 1 1 0 0 1 0 1 1 0 0 1 1 0 0 1 0 1 1 1 1 1 0 0 0 0 0 1 1 0 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 0 0 1 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 +0 0 1 +0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 0 0 1 0 1 1 1 1 1 1 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0 1 1 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 0 0 0 0 1 0 1 1 1 1 0 0 1 1 1 0 1 1 1 0 1 1 0 0 0 0 0 0 0 0 +0 0 1 +1 1 0 1 1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 1 1 0 1 0 1 0 1 0 0 1 1 0 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 0 1 0 0 1 1 1 0 0 1 1 +0 0 1 +0 0 0 1 0 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 1 0 1 1 0 1 0 0 1 1 1 1 0 1 1 1 0 0 0 0 0 1 1 0 0 1 1 1 1 0 1 0 0 0 0 0 1 1 1 0 0 0 1 0 1 +0 1 0 +1 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 1 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 0 0 0 1 0 1 1 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 +1 0 0 +0 1 1 1 0 1 0 0 0 0 1 1 1 0 1 1 0 1 1 0 1 1 1 0 1 1 1 1 0 0 0 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 1 1 1 0 0 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0 1 0 0 1 1 0 0 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 1 0 1 1 1 0 1 1 1 1 0 1 0 0 0 1 0 1 1 1 1 1 1 0 1 1 1 0 1 1 1 +0 0 1 +1 0 0 1 1 0 0 0 1 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 0 1 0 1 0 1 1 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1 1 0 1 0 0 1 1 1 1 0 0 0 1 1 1 0 0 0 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 0 1 1 1 0 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 1 0 1 1 0 0 +0 0 1 +1 0 1 0 1 1 0 1 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 1 0 1 1 0 1 1 0 0 0 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 0 0 0 0 1 +0 0 1 +1 1 1 1 1 0 1 0 1 0 1 0 0 0 0 1 1 1 1 1 0 1 0 0 0 1 0 0 1 0 1 1 1 1 1 1 0 0 0 1 1 1 0 1 0 1 1 0 0 1 0 0 0 1 0 1 1 1 1 0 1 0 1 1 1 0 0 0 0 1 0 1 1 1 0 1 0 0 1 1 0 0 0 0 1 0 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 1 +0 0 1 +0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 1 0 1 1 1 0 1 1 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 1 1 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 1 1 1 1 0 0 1 0 1 +1 0 0 +1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 0 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1 0 1 1 0 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 1 1 1 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 1 0 1 0 0 1 0 0 1 1 1 1 1 1 0 1 0 0 0 1 1 0 0 0 +0 0 1 +1 0 1 0 0 0 1 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 +0 0 1 +1 0 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 1 1 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 0 1 0 0 0 1 1 1 1 1 0 0 0 0 0 1 0 1 1 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 1 1 1 1 0 0 0 1 0 1 0 1 0 1 1 1 1 0 1 0 0 0 0 0 0 0 0 1 +0 0 1 +0 0 1 1 0 1 1 1 1 0 0 1 0 0 0 1 0 1 1 0 0 1 0 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 0 1 0 1 1 0 0 0 1 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0 1 0 1 1 0 1 1 1 1 0 0 1 0 0 1 0 0 1 1 1 1 +0 0 1 +0 0 0 0 0 1 0 0 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 1 0 0 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1 0 0 0 1 1 1 1 0 0 1 0 1 0 0 0 1 0 1 0 0 1 1 1 1 1 1 1 0 +0 1 0 +1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 0 1 1 1 1 0 0 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1 1 0 1 1 0 1 1 1 0 1 1 1 0 0 1 1 0 0 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 0 1 1 1 0 1 1 1 0 1 0 1 0 0 1 0 0 1 1 1 0 0 1 1 0 +0 1 0 +0 0 0 0 0 0 0 1 1 1 0 0 1 1 1 1 0 1 0 1 1 1 0 0 0 0 0 0 1 0 0 1 1 0 0 1 1 0 1 1 0 0 0 0 1 0 1 0 0 1 1 0 1 0 1 0 0 0 1 1 1 0 1 1 1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 1 0 0 0 1 1 0 1 0 1 0 +0 0 1 +1 0 1 1 1 1 1 0 0 1 0 1 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0 1 1 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 1 0 1 1 1 0 1 1 0 0 0 0 0 1 1 0 1 1 0 1 0 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 1 1 1 0 1 1 1 0 0 1 1 1 0 1 1 1 1 0 1 1 1 1 0 0 0 0 +1 0 0 +0 0 1 1 1 0 0 1 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 0 1 0 1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 1 1 0 +0 1 0 +1 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 1 +0 0 1 +0 1 0 1 1 1 1 0 1 1 0 1 1 1 0 1 1 1 1 0 1 1 0 1 0 1 1 1 0 1 0 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 1 1 1 0 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 1 0 0 0 1 1 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 +0 1 0 +1 1 0 0 1 1 1 1 1 0 1 0 0 0 1 1 0 0 0 1 1 0 1 1 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 1 1 0 0 1 1 1 0 0 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 0 1 0 0 1 0 0 0 1 1 0 1 1 1 0 1 0 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 1 1 0 1 1 1 1 1 0 0 0 1 +1 0 0 +0 0 1 1 0 0 0 1 1 0 1 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 1 1 1 0 0 0 0 1 1 0 1 1 1 0 0 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 1 1 0 0 1 1 0 1 0 1 1 +0 1 0 +0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 0 0 1 1 0 1 1 1 0 0 1 0 1 1 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 0 1 1 1 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 0 +0 1 0 +0 0 0 0 1 1 0 1 1 0 1 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 1 1 0 0 0 0 1 1 0 0 0 0 1 0 0 1 1 1 1 1 0 0 0 0 1 1 0 1 0 1 0 1 0 +0 0 1 +0 1 0 0 0 1 0 0 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 1 1 0 1 1 1 1 1 0 1 0 0 1 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 0 1 0 1 0 0 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 +0 0 1 +0 1 0 1 0 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 0 1 1 0 1 1 1 0 1 1 0 0 1 1 0 1 +0 1 0 +1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 0 1 0 1 1 0 0 1 1 1 1 0 +0 1 0 +0 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 0 1 0 0 1 1 1 0 1 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 0 0 1 1 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0 0 1 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 1 0 1 0 0 1 1 0 1 0 0 1 1 1 0 0 0 0 0 1 0 +0 0 1 +0 0 0 1 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 1 1 1 0 0 1 0 0 1 1 1 0 1 1 0 1 0 1 0 1 1 1 1 1 1 1 0 0 0 1 0 0 0 1 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 1 0 1 1 0 0 1 +0 0 1 +0 1 0 1 0 1 1 0 0 1 1 0 1 1 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 1 1 0 0 1 1 1 1 0 1 0 0 1 1 1 1 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 1 1 1 1 1 0 0 1 1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 1 0 1 1 0 1 0 0 0 1 0 1 1 0 1 0 1 1 1 0 1 0 0 1 0 1 0 0 1 1 +0 0 1 +1 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 1 0 1 0 1 1 0 1 0 0 0 +0 1 0 +1 0 0 1 0 1 0 0 0 1 1 0 1 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 1 1 1 0 1 1 1 1 1 1 0 1 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 0 0 1 1 1 1 1 1 0 1 1 1 0 +1 0 0 +1 0 1 1 1 0 0 1 1 1 0 0 0 1 0 1 1 0 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 1 0 1 1 1 1 1 1 1 0 1 0 1 1 0 1 0 1 0 0 1 0 0 1 0 0 0 1 1 1 0 1 1 1 0 0 1 0 1 1 0 0 0 0 1 0 1 1 1 0 0 0 1 1 1 1 0 1 0 +0 1 0 +1 0 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 +1 0 0 +0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 0 1 0 1 1 0 1 0 1 0 0 1 1 1 0 1 1 1 0 0 0 1 1 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 1 1 1 0 1 0 0 1 0 1 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 1 0 0 0 0 1 1 0 0 +0 0 1 +1 1 0 0 1 1 1 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 1 1 1 0 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1 1 0 0 1 0 1 1 1 1 1 0 1 0 0 0 1 0 1 1 0 0 1 0 1 1 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 1 1 1 0 +0 1 0 +0 0 0 1 0 1 0 1 1 1 0 1 1 0 0 1 0 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 0 1 1 1 1 0 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 1 0 1 1 1 1 1 1 0 1 0 0 0 1 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 1 1 0 1 1 0 1 1 0 0 1 0 1 1 1 1 1 0 1 1 +0 0 1 +1 0 0 1 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 0 1 0 1 1 1 1 1 1 0 1 1 1 0 0 1 0 0 0 1 0 1 0 1 1 1 0 0 0 1 0 0 1 1 1 1 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 0 0 1 1 1 1 1 0 0 1 1 0 1 0 1 1 1 1 1 1 0 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 1 0 0 1 1 1 1 1 1 +1 0 0 +0 1 0 1 1 1 1 1 1 0 0 1 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 0 1 0 0 0 0 1 1 0 1 1 0 0 1 1 1 1 1 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 0 0 0 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 0 1 0 1 1 0 1 0 0 0 0 1 0 1 0 1 0 0 1 0 0 0 0 1 1 0 0 1 0 1 0 0 +0 0 1 +0 1 1 0 1 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 0 0 0 1 0 1 1 0 0 0 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 1 0 0 0 1 0 1 1 1 0 1 1 0 0 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 1 0 1 1 0 0 0 1 1 0 1 0 0 1 +1 0 0 +1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 1 0 1 1 0 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 0 0 0 1 1 1 +0 1 0 +0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 1 1 0 1 1 1 0 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 0 1 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 1 1 0 0 0 1 1 1 0 1 0 1 1 +1 0 0 +1 1 1 0 1 0 0 0 1 0 0 1 0 0 1 1 0 1 0 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 1 0 0 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 1 1 0 0 +1 0 0 +0 0 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 0 1 0 0 1 0 0 0 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 1 0 0 1 0 1 0 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 0 1 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 +1 0 0 +0 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 1 1 +0 1 0 +0 1 1 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 0 0 0 1 1 0 0 0 1 1 0 0 1 0 1 0 0 0 1 1 0 0 0 1 +0 0 1 +0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 1 0 1 1 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 1 0 1 1 0 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 1 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 +1 0 0 +0 1 0 1 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 1 1 0 0 1 0 1 0 1 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 0 1 1 0 0 1 0 1 1 0 0 0 0 0 0 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 +0 0 1 +0 1 0 1 1 0 1 0 1 1 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 0 0 0 1 0 1 1 0 0 1 1 1 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 0 1 1 1 1 1 0 1 0 1 0 0 1 1 0 0 1 0 0 1 0 1 0 1 0 0 0 0 1 1 0 1 0 +1 0 0 +1 0 0 1 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 1 1 0 1 0 1 0 0 1 1 0 0 0 0 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 0 0 1 1 0 1 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 1 1 0 1 0 0 0 0 0 1 1 0 0 1 1 1 0 1 0 0 1 0 1 +0 0 1 +1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 0 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 1 1 1 1 1 1 0 1 1 0 0 1 1 1 1 1 0 1 1 1 0 0 1 0 1 0 1 1 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 0 1 0 0 0 +0 0 1 +0 1 1 0 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 0 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 +1 0 0 +0 1 0 0 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 1 0 1 0 0 1 1 1 1 0 0 0 0 1 1 0 1 1 1 0 1 0 1 0 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 0 1 1 1 0 1 0 +0 0 1 +1 1 0 1 1 1 1 0 1 0 1 0 1 0 1 0 0 0 0 1 0 0 0 1 1 0 1 0 0 1 1 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 1 0 0 0 0 0 1 0 1 1 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 1 1 1 0 1 0 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 0 0 1 0 0 1 +0 0 1 +1 1 1 0 1 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 1 0 1 1 1 1 0 0 1 0 1 1 1 0 0 0 1 0 1 0 1 1 1 1 0 0 1 0 0 1 0 0 0 1 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 1 0 1 1 0 0 0 0 0 1 0 1 1 0 0 1 1 0 1 0 1 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 +0 0 1 +1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 1 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 1 1 1 0 1 1 1 0 0 1 1 0 1 0 1 1 0 1 0 0 0 +0 0 1 +0 1 0 1 0 1 1 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0 1 1 0 0 0 1 1 1 0 1 1 1 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 1 1 1 0 0 0 1 0 1 0 0 0 1 1 0 0 1 0 1 1 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 1 1 1 0 1 0 +0 0 1 +1 1 0 1 1 0 0 1 1 1 1 0 1 0 1 1 0 0 0 0 1 1 1 0 0 1 1 0 1 0 0 1 0 1 0 1 0 1 1 0 1 1 1 1 1 1 0 1 1 1 0 1 1 0 0 0 1 1 1 1 1 0 1 1 0 0 1 1 0 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 0 0 1 1 1 0 1 1 0 1 1 1 1 1 0 1 1 0 0 0 1 1 0 +0 0 1 +0 1 1 1 1 1 0 0 0 1 0 1 0 1 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 0 1 1 0 1 0 0 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 0 0 0 1 0 1 1 0 0 1 0 1 1 1 0 0 1 1 1 0 1 0 0 1 0 1 0 1 0 1 1 0 1 0 1 1 0 0 0 0 1 1 0 0 +0 0 1 +0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 1 1 0 1 1 1 0 1 1 1 0 0 1 1 1 1 1 0 1 0 1 1 0 1 1 1 0 1 1 1 1 0 0 0 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 0 1 0 1 +0 0 1 +0 1 1 0 0 0 0 1 1 1 1 1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 1 0 1 0 0 0 0 1 0 1 1 0 1 0 1 1 1 0 1 0 0 1 0 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 1 0 1 0 0 1 1 0 0 1 1 0 1 1 0 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 +1 0 0 +1 0 1 0 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 0 1 1 0 1 1 1 0 1 0 0 0 0 1 0 1 1 1 1 0 1 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 0 1 0 1 0 0 0 0 1 0 0 0 1 +1 0 0 +1 0 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 1 1 0 1 0 0 1 1 1 1 1 0 1 1 0 1 1 0 0 0 1 1 1 0 1 1 1 0 1 0 1 1 0 0 0 1 0 0 1 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 1 1 0 1 0 1 1 0 0 1 0 0 0 1 1 1 0 0 0 1 1 1 0 1 1 0 1 0 1 1 1 1 0 1 1 1 0 1 0 +0 0 1 +1 1 0 0 0 1 0 0 0 1 1 1 1 1 0 1 1 0 0 1 1 1 1 0 0 0 0 1 0 1 0 1 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 1 1 1 0 1 1 0 1 0 1 0 0 1 0 1 1 1 1 0 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 0 1 0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 1 1 0 1 0 1 1 0 1 +0 0 1 +0 0 0 0 1 1 0 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 0 0 1 0 1 0 1 1 0 0 0 0 1 1 0 0 1 0 0 1 1 0 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 0 0 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 1 0 1 0 1 1 1 0 0 1 0 1 +0 0 1 +1 0 1 0 1 0 0 0 0 1 1 0 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 1 0 1 0 1 0 1 0 1 1 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 1 0 0 1 0 1 0 1 1 1 1 0 1 0 0 0 0 0 +1 0 0 +0 0 0 0 0 0 0 1 0 1 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 0 0 +1 0 0 +1 1 0 1 1 0 0 0 1 1 0 0 0 1 0 1 1 1 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 0 1 0 1 0 0 0 1 1 1 1 1 1 0 1 1 0 0 1 1 1 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 +0 0 1 +1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 0 1 0 1 1 0 0 0 +0 1 0 +1 1 0 0 0 0 0 1 0 1 0 0 0 1 1 0 1 0 1 0 1 1 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 0 1 1 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 1 0 0 1 1 1 +1 0 0 +1 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 1 0 0 1 1 0 1 1 1 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 0 0 1 0 0 0 1 0 1 1 0 0 0 0 1 0 1 1 0 0 1 0 0 0 1 1 1 1 +0 1 0 +1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0 1 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 0 1 0 0 1 1 0 1 0 0 0 1 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 1 0 1 1 1 1 1 1 0 0 0 0 1 1 0 1 1 1 1 0 0 1 1 1 0 1 1 0 1 1 0 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 1 1 0 1 +1 0 0 +0 1 1 0 0 0 1 0 1 0 1 0 0 1 1 0 0 1 0 1 1 1 1 0 1 0 1 0 0 1 0 0 0 0 1 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 1 0 1 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 +1 0 0 +1 1 1 0 0 1 0 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1 0 0 0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 1 0 1 1 0 0 1 0 0 0 1 1 1 1 1 0 1 1 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 1 0 0 1 0 0 1 1 1 0 1 0 0 1 0 1 +0 1 0 +0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 1 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 1 +0 1 0 +0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 1 0 1 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 1 0 1 0 1 0 0 0 0 0 1 1 0 1 1 0 1 0 0 1 0 1 0 1 0 0 1 1 0 1 0 0 1 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 0 0 0 0 0 0 1 0 +0 0 1 +1 0 0 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 0 1 0 0 1 1 1 0 0 0 1 0 1 1 1 1 1 0 1 1 0 0 0 1 1 0 1 0 1 0 0 1 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 0 1 0 1 0 0 1 1 0 0 1 0 1 1 1 0 0 0 0 0 1 0 1 1 0 0 0 0 1 1 0 1 0 0 1 +0 0 1 +0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 0 1 1 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 1 1 0 0 1 0 0 0 1 0 1 0 0 1 1 1 0 1 0 1 0 0 1 0 0 0 1 1 0 0 0 1 0 1 1 +0 1 0 +0 0 1 1 0 1 0 1 0 0 0 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 1 1 0 1 1 1 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 0 1 1 0 1 1 0 1 0 1 1 1 0 0 1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 1 0 1 0 1 0 1 1 0 0 1 0 0 0 1 0 1 1 1 0 0 0 1 1 1 0 0 +0 1 0 +0 0 0 1 0 1 0 0 0 1 1 1 0 1 0 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 0 1 1 1 1 0 1 0 1 1 1 0 1 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 1 1 0 1 1 0 0 0 0 1 0 1 1 0 0 1 1 1 1 1 1 1 0 1 0 1 0 1 1 1 1 1 0 1 1 1 1 0 1 0 0 0 0 0 0 1 1 0 1 1 1 0 0 1 0 0 1 1 0 1 +0 0 1 +1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 +0 0 1 +1 1 1 0 0 0 1 1 0 1 0 0 1 1 1 1 0 1 0 1 0 1 1 1 0 0 1 0 1 1 0 1 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 0 0 1 0 1 1 0 0 1 1 1 1 0 0 1 0 0 0 1 1 1 0 1 1 0 0 1 +1 0 0 +0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 1 0 0 0 0 1 0 +0 0 1 +1 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 1 1 0 1 1 0 1 0 1 1 0 1 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 1 1 1 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 +1 0 0 +0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 1 1 1 0 1 0 1 1 0 0 1 0 1 0 0 1 1 0 0 1 1 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 1 1 0 0 1 0 1 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 1 1 +0 1 0 +1 1 0 0 0 0 1 1 1 1 1 0 1 0 1 1 0 1 0 1 0 0 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 0 0 1 1 1 1 1 0 0 0 1 1 0 1 1 1 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 0 1 0 1 1 1 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 1 0 0 0 1 0 0 1 1 +0 1 0 +1 0 0 1 1 1 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 0 1 0 0 1 1 1 0 0 1 1 1 0 1 0 0 1 0 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 0 0 0 1 0 1 1 0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 1 1 1 0 1 0 0 1 1 0 +0 0 1 +1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 0 1 0 0 1 1 1 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 +0 0 1 +0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 0 0 1 1 0 1 1 1 0 1 1 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 0 0 1 0 0 0 1 1 0 1 1 0 1 1 1 1 0 1 1 1 0 1 0 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 1 1 0 0 0 0 1 0 1 0 0 0 0 1 0 1 0 1 0 0 0 0 +0 1 0 +0 0 1 1 1 0 0 1 1 0 1 0 0 0 1 1 1 1 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 1 0 1 0 1 0 0 1 1 1 0 +0 1 0 +0 0 0 1 1 0 0 0 0 1 0 1 0 1 0 1 0 1 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 1 1 0 0 1 1 1 0 1 1 0 0 0 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 1 0 1 0 1 0 0 0 1 0 +1 0 0 +1 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 1 1 0 0 0 0 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 0 +0 0 1 +0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 0 1 1 1 0 1 1 0 0 1 0 1 1 0 0 0 0 1 1 0 1 1 1 1 0 0 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 0 0 0 0 1 0 1 0 1 1 0 1 0 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 1 1 0 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1 0 0 0 +0 0 1 +0 0 0 0 1 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 0 0 1 0 0 1 1 0 0 1 0 1 0 1 1 0 1 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 1 0 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 +0 0 1 +1 1 1 0 0 1 0 1 1 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 1 1 1 1 1 1 1 0 0 0 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1 0 1 1 0 0 1 1 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1 +0 0 1 +1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 0 1 1 0 0 1 1 1 1 1 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 1 1 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 0 1 1 1 0 1 1 0 0 1 1 0 0 1 0 1 1 1 0 1 0 1 0 1 0 0 0 0 1 1 1 +0 1 0 +0 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 1 0 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 0 1 1 0 1 0 0 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 1 1 0 1 1 1 1 1 0 0 1 0 0 1 1 +0 1 0 +1 1 0 0 0 0 1 0 0 0 1 1 1 0 0 1 0 0 1 0 0 0 1 1 1 0 0 0 1 1 1 1 1 1 1 0 1 0 0 0 1 1 1 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 0 1 0 1 0 0 1 1 0 0 0 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 0 0 0 0 1 +0 1 0 +0 1 0 1 1 0 0 0 1 1 1 1 0 0 1 1 1 0 0 1 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0 1 1 1 0 1 0 1 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 1 0 1 1 0 0 1 +0 0 1 +0 1 0 1 1 0 0 1 0 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 1 1 0 0 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 1 0 1 0 1 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1 0 1 +0 1 0 +0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 1 0 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 1 0 0 1 1 1 0 1 1 1 1 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 0 0 1 0 0 1 1 0 1 1 1 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 1 0 1 0 1 0 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 +0 1 0 +1 1 0 0 1 1 1 0 1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1 1 1 0 1 1 1 0 1 1 1 1 1 0 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 1 0 1 1 0 1 0 0 1 0 1 0 1 +1 0 0 +0 1 0 0 1 1 1 0 1 0 1 0 1 0 0 0 0 0 1 1 0 1 1 1 0 0 0 1 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 1 1 1 0 0 0 1 1 0 1 0 0 1 0 1 0 1 0 1 0 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 1 1 +0 0 1 +1 0 0 1 0 1 0 1 1 0 1 1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0 1 0 1 0 1 1 0 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 1 1 0 1 0 1 0 0 0 0 1 0 1 1 0 0 1 1 1 +1 0 0 +1 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 0 1 1 1 0 1 1 1 1 0 1 1 1 0 1 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 0 0 0 1 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 1 0 1 0 1 0 0 0 +0 0 1 +1 0 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 1 1 1 1 1 0 0 0 1 1 1 0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 0 0 0 1 1 0 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 0 1 +0 0 1 +1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0 0 0 1 1 1 1 1 1 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 1 1 1 0 1 0 1 1 0 1 0 1 0 0 1 1 1 1 +0 0 1 +0 0 0 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 0 0 0 0 1 1 1 1 1 0 1 0 1 0 1 1 0 0 0 1 1 0 1 0 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 0 0 1 1 1 1 1 0 0 0 0 1 1 0 1 1 0 1 1 1 1 1 1 1 1 0 0 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 0 0 1 1 1 1 0 +0 0 1 +1 1 0 1 0 1 0 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 0 1 0 0 0 1 0 1 1 0 1 0 1 1 1 0 0 0 0 0 0 1 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 1 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 +0 0 1 +0 0 1 1 1 0 1 0 1 0 0 1 0 1 1 0 1 1 1 0 0 0 1 1 1 0 1 1 1 0 0 1 0 1 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0 1 0 0 1 0 1 1 1 0 0 0 1 1 0 1 0 0 1 0 0 1 1 0 1 0 0 1 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 1 1 +0 0 1 +0 1 0 0 1 1 1 1 0 1 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 1 1 0 1 0 1 1 1 1 0 0 0 1 0 0 1 1 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 1 0 0 1 1 0 1 0 +0 0 1 +0 1 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 1 1 0 1 0 1 0 1 1 1 0 1 1 1 1 1 0 1 0 0 1 0 0 0 1 0 1 1 0 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 0 1 0 0 0 1 0 1 1 1 0 1 1 1 0 0 0 1 1 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 1 1 0 0 1 1 1 0 1 0 1 0 0 1 +0 0 1 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 1 1 1 1 0 0 0 1 1 0 1 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 0 0 0 1 1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 1 1 1 +0 0 1 +1 0 0 1 1 1 1 0 1 0 1 1 1 0 1 0 1 0 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 0 0 1 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 1 0 1 1 1 0 0 1 0 1 0 1 1 0 1 0 0 0 0 1 1 0 0 1 1 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 1 0 1 1 0 0 1 1 0 0 1 1 1 +0 0 1 +0 0 0 1 0 1 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 1 1 0 1 0 1 0 0 0 1 0 1 1 1 0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 +1 0 0 +1 0 1 0 0 1 1 0 0 0 0 0 1 1 1 0 0 1 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 0 1 0 1 1 0 0 0 0 0 1 0 1 1 0 0 0 0 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1 0 0 1 1 0 +0 1 0 +0 0 1 1 1 0 1 1 1 0 0 1 1 1 1 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 0 1 0 0 1 1 0 0 0 1 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0 1 1 1 0 +0 1 0 +1 0 0 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 0 0 1 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 0 1 1 1 0 1 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 0 1 +0 0 1 +1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 1 1 0 0 1 1 1 1 0 0 0 1 1 1 1 0 1 0 1 0 0 1 1 1 0 0 1 1 0 0 0 1 0 0 1 1 1 1 1 1 0 1 1 0 1 0 0 0 1 1 0 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 0 0 1 1 1 1 1 0 0 1 0 0 1 1 +0 1 0 +0 1 0 0 0 1 0 1 1 0 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 0 0 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 0 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 0 1 0 1 +0 0 1 +1 1 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 0 1 1 0 1 1 0 0 0 1 1 1 0 0 1 0 1 0 0 1 0 1 1 1 0 0 1 0 1 0 1 1 1 1 1 1 0 1 1 0 0 0 0 1 0 1 1 1 0 0 1 0 0 0 1 1 1 1 1 0 1 0 1 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 1 0 1 1 1 0 0 0 1 1 0 1 1 1 1 0 1 1 0 0 1 0 +0 0 1 +0 0 1 1 0 0 0 1 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 1 1 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 0 0 0 1 1 1 1 0 0 1 0 +0 1 0 +1 0 1 1 1 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 0 1 1 1 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 0 1 0 1 0 +1 0 0 +1 0 0 1 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 1 1 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 1 1 0 1 0 1 1 0 0 0 1 1 1 1 1 0 1 1 1 0 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 1 0 0 1 1 1 1 1 0 +1 0 0 +1 1 0 1 1 1 0 0 1 1 1 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 0 1 0 1 0 1 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 1 1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 +0 0 1 +0 1 1 0 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 0 1 1 1 1 1 0 1 1 1 1 0 1 1 0 1 1 1 1 0 0 1 1 1 1 1 0 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 1 0 1 1 0 0 0 1 0 0 0 1 1 1 0 1 0 1 1 0 1 1 1 0 1 1 1 1 0 1 0 1 1 0 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 1 1 1 0 0 1 0 1 +0 1 0 +0 1 0 0 0 1 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0 0 0 0 1 1 0 0 0 1 0 1 1 1 0 0 1 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 0 +0 0 1 +0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 1 1 0 0 1 0 1 1 0 1 0 0 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 1 1 0 0 0 1 1 0 0 +0 0 1 +0 0 0 0 1 0 0 1 0 0 1 1 1 0 0 1 1 0 0 0 0 1 0 1 0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 0 0 0 1 1 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 1 0 1 0 1 1 1 1 0 1 0 0 1 0 0 0 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 0 0 1 0 0 1 +0 0 1 +0 1 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 1 0 0 1 0 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 1 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 0 +0 1 0 +0 1 0 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 0 1 0 0 1 1 1 1 0 0 0 1 0 0 0 0 0 1 0 1 1 0 1 1 1 0 1 0 0 0 0 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 0 0 1 1 1 0 0 1 0 1 1 0 0 1 1 1 1 1 1 0 1 0 1 0 1 0 0 1 0 1 0 0 0 1 0 0 0 1 +0 0 1 +1 1 0 1 1 1 0 1 0 0 0 0 0 1 0 1 1 0 0 1 1 0 1 0 0 0 1 1 0 0 1 0 1 0 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 1 1 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 0 0 0 1 0 1 0 +1 0 0 +1 0 0 1 0 1 0 1 0 0 0 0 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 1 0 0 1 0 1 0 1 1 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 0 1 1 1 0 1 1 1 1 1 1 1 0 0 1 1 0 1 1 0 0 1 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0 1 0 1 1 0 1 1 0 1 1 1 1 1 +1 0 0 +0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 0 0 0 1 1 1 1 0 0 1 1 0 1 1 0 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 1 1 0 1 1 1 1 0 1 0 1 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 1 1 0 1 0 0 1 0 0 1 1 1 0 1 0 1 1 1 1 0 0 0 1 0 0 +0 0 1 +1 1 1 1 0 0 1 1 1 0 1 0 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 +0 1 0 +1 1 1 0 0 1 0 0 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 0 1 1 1 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 1 1 1 0 0 1 1 1 0 1 0 0 1 0 1 0 0 0 0 +0 1 0 +1 1 1 0 0 1 0 0 1 1 1 1 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 1 0 1 1 1 0 0 1 1 1 1 1 0 1 1 1 1 0 0 1 0 0 1 1 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1 1 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 1 1 1 1 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 0 +0 0 1 +0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 0 1 1 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 1 1 0 1 0 0 0 1 0 1 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 1 1 0 1 1 0 1 1 1 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 +0 0 1 +0 1 1 1 1 0 1 1 0 1 0 1 1 1 1 1 0 0 1 0 1 0 0 1 0 1 0 0 1 0 0 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 0 1 0 0 0 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 0 1 1 0 1 0 0 1 0 0 0 1 1 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 +0 1 0 +0 0 1 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 1 1 1 0 1 0 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 +0 0 1 +0 1 0 1 1 0 1 0 1 1 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 0 0 0 1 0 1 1 0 0 1 1 1 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 0 1 1 1 1 1 0 1 0 1 0 0 1 1 0 0 1 0 0 1 0 1 0 1 0 0 0 0 1 1 0 1 0 +1 0 0 +1 0 1 1 1 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 0 0 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 1 0 0 0 1 1 1 0 0 1 0 1 0 0 1 0 0 0 1 0 +0 0 1 +1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 0 0 1 0 1 1 1 1 0 0 0 0 0 0 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 1 0 1 0 1 1 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 1 1 0 1 0 1 0 1 0 0 1 1 0 1 1 0 1 1 1 +1 0 0 +1 1 1 0 1 0 0 1 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 0 0 0 0 1 0 1 1 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 0 1 0 1 0 0 0 0 1 0 0 0 1 +1 0 0 +1 1 1 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 0 1 0 1 1 0 1 0 0 1 0 1 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 +1 0 0 +1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 0 1 1 0 0 1 1 0 0 0 1 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 1 0 0 0 1 1 0 0 1 0 0 0 0 1 0 0 1 1 0 0 1 1 1 +0 1 0 +1 0 0 1 0 0 1 1 0 1 0 1 0 0 1 0 0 1 0 0 0 1 0 0 0 1 1 1 0 1 0 0 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 1 1 1 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 1 0 1 0 1 0 0 1 0 1 0 1 1 1 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 1 0 0 0 1 0 0 1 1 1 0 1 0 0 1 0 0 0 1 0 1 +0 0 1 +1 0 1 0 0 1 0 0 0 1 1 1 1 1 0 0 1 0 0 1 0 1 0 0 0 1 1 0 0 1 1 0 1 1 1 1 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0 0 1 1 1 1 1 0 1 1 1 1 0 1 0 0 0 1 1 0 1 1 1 1 1 0 0 0 0 0 0 1 1 0 1 1 1 0 1 1 1 1 1 0 0 0 1 1 0 0 0 0 1 0 1 1 1 1 1 0 1 0 1 0 1 1 1 0 0 +0 0 1 +1 0 0 0 1 1 1 0 1 1 1 0 0 1 1 1 1 0 0 1 1 0 1 1 1 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 1 1 0 1 1 1 0 0 1 1 0 0 0 1 1 0 1 1 1 0 0 1 1 0 1 1 0 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 0 1 0 0 0 0 0 1 1 0 1 0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 0 1 0 +1 0 0 +0 0 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 0 1 0 1 0 0 1 1 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1 0 1 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 0 1 1 1 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 +0 1 0 +1 1 1 1 1 0 1 0 1 0 1 1 0 1 0 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 0 1 1 0 1 0 1 1 0 0 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 1 1 1 0 0 1 0 1 1 1 0 0 1 1 1 0 1 1 1 1 0 0 1 1 0 0 1 0 0 0 1 1 0 0 1 +0 1 0 +0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 1 1 1 1 1 0 0 1 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 1 1 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 1 0 0 0 1 1 1 0 0 1 1 0 1 1 0 0 0 0 0 +1 0 0 +1 1 1 0 0 1 0 0 1 1 1 1 0 1 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 1 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 0 1 1 1 1 0 0 1 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 1 0 1 1 1 +0 1 0 +0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 1 0 0 1 1 1 1 1 1 0 1 0 0 1 1 1 1 0 1 0 1 1 1 1 1 1 0 1 1 0 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 1 0 +0 0 1 +0 0 0 0 1 1 0 1 0 0 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 1 1 1 0 0 0 1 0 1 0 1 0 1 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 0 1 0 0 0 1 0 0 0 0 1 1 0 1 0 1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 1 1 0 1 0 1 0 0 1 1 1 1 1 0 0 +0 0 1 +1 1 0 0 0 0 1 1 0 0 1 1 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 0 1 1 0 1 1 1 0 0 0 1 1 +0 1 0 +0 1 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 1 0 1 0 0 1 1 0 1 1 1 0 1 0 0 1 1 0 0 0 0 1 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 0 1 1 1 1 0 1 0 1 1 0 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 1 0 0 1 1 0 0 0 0 1 1 1 0 1 0 0 1 0 0 0 1 +1 0 0 +1 1 0 0 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 1 1 0 0 1 0 1 1 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 0 0 1 0 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 0 1 0 0 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 1 0 0 1 1 +1 0 0 +0 1 0 1 1 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 1 0 0 1 0 1 1 1 0 1 1 1 1 1 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 1 0 1 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 1 1 0 1 1 1 0 0 0 1 0 0 1 1 1 1 0 0 +1 0 0 +1 1 0 0 0 1 1 1 0 1 1 0 1 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 0 0 0 1 1 1 0 0 0 1 0 0 0 1 1 0 1 0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 1 1 0 0 0 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1 1 1 0 1 0 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 0 0 0 0 0 0 1 +0 0 1 +1 1 0 0 0 1 1 1 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 1 1 1 0 0 0 0 1 0 0 0 1 0 1 1 0 1 1 1 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 0 1 0 1 0 0 1 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 0 1 0 0 1 1 0 0 0 0 1 +0 0 1 +0 0 1 1 0 0 1 1 1 0 1 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0 1 0 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 1 1 0 0 0 0 1 1 0 0 1 0 0 1 0 1 1 0 0 1 1 1 0 1 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 1 1 0 +0 1 0 +1 0 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 1 0 1 1 1 0 0 0 0 1 0 0 0 1 1 0 1 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 1 1 1 1 0 1 0 0 1 1 0 0 +0 0 1 +0 1 0 1 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 1 0 0 0 1 0 0 1 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 1 0 1 0 1 0 +0 1 0 +0 0 0 0 1 0 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 1 0 1 1 0 1 1 1 0 0 0 1 1 1 1 0 0 0 0 1 0 1 0 1 1 0 1 0 0 1 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 0 0 +0 0 1 +1 1 1 0 1 1 1 0 1 0 1 0 0 0 0 0 0 1 1 0 1 1 1 1 0 0 1 1 1 0 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 1 1 0 0 0 +0 0 1 +0 1 0 0 1 1 0 1 1 1 0 1 0 1 1 1 1 0 0 1 0 1 1 1 0 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 0 1 1 1 1 1 1 1 1 0 0 1 0 1 1 1 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 1 0 0 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 1 1 1 1 1 1 +0 0 1 +0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 0 0 1 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 1 0 0 1 1 0 1 1 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 +0 1 0 +0 0 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 1 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 1 0 0 0 0 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 1 0 1 0 0 0 0 1 1 1 0 0 1 1 1 1 1 0 1 0 1 0 0 0 0 0 0 1 +0 0 1 +1 1 1 0 1 0 0 1 1 1 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 0 1 1 1 0 1 0 0 1 0 0 0 0 0 1 1 1 0 1 1 0 1 1 0 1 1 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 1 1 1 1 0 +0 0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 1 1 1 0 1 0 1 1 0 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 1 1 0 1 0 0 0 0 1 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 0 1 1 0 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0 1 1 +1 0 0 +0 0 1 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 1 0 1 0 1 0 0 1 0 0 0 1 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 0 0 0 1 0 0 0 0 0 1 0 1 1 1 0 0 0 0 1 1 +1 0 0 +0 0 1 1 1 0 1 0 1 0 0 0 1 1 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0 1 1 0 0 1 1 0 0 0 0 1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 1 0 0 0 1 0 1 0 1 1 1 1 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 1 1 1 0 0 0 0 1 +0 0 1 +0 1 0 1 0 1 1 0 0 1 1 0 1 0 1 1 0 0 0 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 1 0 1 0 1 0 0 1 1 1 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 1 0 1 1 0 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 0 1 1 1 0 1 1 1 1 0 0 1 0 0 0 0 1 0 0 1 1 0 0 1 0 1 0 1 1 0 1 1 0 0 1 1 +0 0 1 +1 1 1 0 0 1 1 1 1 0 0 1 1 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 1 0 1 0 1 1 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1 0 1 0 0 0 1 1 0 1 1 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 1 0 1 1 1 1 0 1 1 0 0 0 0 0 0 1 1 1 0 1 0 +0 0 1 +0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 0 1 1 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 1 1 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 1 1 1 1 1 1 0 0 0 0 1 1 0 0 +0 1 0 +1 0 1 1 1 0 0 0 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 0 1 0 1 1 0 0 0 0 1 0 1 0 1 1 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 1 1 1 1 0 1 1 1 0 1 0 1 0 1 0 1 1 1 1 0 1 0 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1 1 0 +1 0 0 +0 0 0 1 0 1 1 0 1 0 0 1 0 1 0 0 0 1 1 1 0 0 1 1 1 0 1 1 1 0 0 1 0 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 1 0 1 1 1 0 0 1 0 0 0 1 1 0 1 1 1 0 0 1 1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 1 0 1 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 0 +1 0 0 +1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 1 0 1 1 1 0 1 0 1 1 1 0 1 1 0 0 0 0 0 1 0 1 1 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 0 1 +0 0 1 +1 1 0 0 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 1 0 0 1 1 1 1 0 1 0 0 1 0 0 1 0 0 0 1 0 1 1 1 1 0 0 1 0 0 0 1 1 1 1 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 1 0 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 1 1 0 1 1 1 1 0 0 +1 0 0 +0 1 1 0 1 0 1 1 0 0 1 0 1 0 0 0 1 0 0 1 1 0 0 1 0 1 1 1 0 0 0 0 1 1 1 0 0 1 0 0 1 1 0 0 1 1 1 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 +0 0 1 +1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 0 0 0 0 1 1 0 0 1 0 0 0 1 1 0 0 1 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 0 0 1 0 1 0 1 0 1 0 1 0 0 1 0 0 0 1 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 +0 1 0 +0 1 0 1 1 1 1 0 1 0 1 1 1 0 0 1 0 0 1 1 1 1 0 0 0 0 1 0 1 1 1 1 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 1 1 1 1 0 1 0 1 0 0 1 1 0 1 1 1 0 0 1 0 1 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0 0 0 0 0 0 1 0 1 1 0 1 1 1 0 0 0 0 0 1 1 0 +0 0 1 +1 0 0 1 0 0 1 1 0 1 1 1 0 1 0 1 1 1 1 0 0 1 0 1 1 1 0 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 0 1 1 1 1 1 1 1 1 0 0 1 0 1 1 1 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 1 0 0 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 1 1 1 1 +1 0 0 +0 1 0 0 0 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0 0 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 0 0 1 0 1 0 1 0 1 1 0 0 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1 1 1 1 0 1 1 0 1 1 1 0 0 1 1 1 1 0 1 1 0 1 1 1 1 1 0 1 0 +0 0 1 +0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 1 1 0 0 0 1 0 0 0 1 1 0 1 0 1 0 1 0 1 0 0 1 0 0 1 1 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 0 0 +0 1 0 +1 0 1 0 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 0 1 0 0 0 0 1 0 1 1 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 0 1 0 1 0 0 0 0 1 0 0 0 1 +1 0 0 +0 0 1 1 1 0 0 1 1 0 1 0 0 0 0 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 1 1 +1 0 0 +0 1 0 0 0 0 0 1 0 1 0 1 1 0 0 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 0 1 0 0 1 1 1 1 1 0 1 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 1 0 1 1 0 0 0 1 0 1 0 1 0 0 0 1 1 1 0 0 1 1 1 1 1 0 1 0 0 1 1 0 +0 0 1 +0 1 0 0 1 1 0 0 0 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 0 1 1 0 1 1 0 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 0 1 0 1 0 0 0 0 1 0 0 0 1 1 0 1 1 0 0 1 0 1 1 0 1 1 0 1 1 1 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 1 1 1 0 1 0 0 1 0 0 1 1 0 0 1 1 +0 1 0 +0 0 0 1 1 1 0 0 1 1 1 0 0 0 1 1 0 0 0 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 0 1 1 1 1 0 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 1 1 0 1 0 0 0 0 1 0 1 0 0 1 1 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 1 1 +1 0 0 +0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 1 0 1 1 1 0 0 1 0 0 0 0 0 0 +0 0 1 +1 1 1 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 0 0 0 1 0 1 1 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 1 0 0 1 1 0 1 1 0 0 0 1 1 0 0 0 0 1 1 0 1 0 1 0 1 0 0 0 1 0 0 1 0 1 0 1 0 1 1 0 0 0 1 0 1 0 +0 0 1 +1 1 1 0 1 1 1 1 0 1 0 1 1 1 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 1 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 1 0 0 0 1 1 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 1 1 1 +0 0 1 +0 0 1 1 0 0 1 0 0 1 1 0 0 1 1 1 0 1 0 1 1 0 0 0 1 1 1 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 0 0 1 0 0 1 0 1 0 1 0 1 1 1 1 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 0 0 1 1 0 +1 0 0 +1 1 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 0 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 0 1 0 0 0 1 1 0 0 0 0 1 0 1 1 1 0 0 0 0 0 1 0 1 1 1 0 +0 0 1 +1 0 0 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 1 1 1 0 1 1 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 0 0 1 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 1 0 0 0 +0 1 0 +0 1 0 1 1 1 0 1 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 1 1 1 1 1 1 0 1 1 1 0 1 0 1 0 0 0 1 1 1 1 1 0 0 0 1 0 1 0 0 1 1 0 0 1 0 1 1 1 1 0 1 0 1 0 1 0 1 0 0 1 0 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 0 0 1 0 1 1 1 0 1 1 0 0 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 1 0 +0 0 1 +1 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 1 0 0 1 0 1 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 1 0 0 1 1 1 0 1 0 1 0 +0 1 0 +1 1 1 1 1 0 0 1 0 1 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 1 1 0 0 0 1 0 0 1 0 1 1 0 1 0 1 1 1 0 1 0 0 0 0 1 1 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 +0 0 1 +1 0 1 0 0 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 1 1 1 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 1 1 0 1 0 1 0 1 1 1 0 +0 0 1 +0 0 1 1 1 0 1 1 1 0 0 0 0 1 0 1 1 1 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 1 1 0 1 1 0 0 0 0 0 0 1 1 1 0 1 1 1 0 0 1 1 0 1 1 1 1 1 0 0 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 1 1 0 0 0 1 0 1 1 1 0 1 1 0 0 0 0 0 1 0 0 1 1 +0 0 1 +1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 0 1 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 1 1 0 1 1 0 1 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 1 1 1 0 1 0 0 1 1 1 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 1 1 0 1 1 1 1 1 1 0 0 1 0 1 +0 1 0 +0 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 0 0 0 0 1 1 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 1 1 0 1 0 1 1 0 0 1 1 0 0 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 0 +0 1 0 +1 0 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 1 0 0 0 1 1 0 1 0 1 1 0 1 0 1 0 0 0 0 0 1 1 1 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 +1 0 0 +0 1 0 1 1 0 0 0 1 1 1 0 0 1 0 0 0 1 1 0 1 1 1 0 1 0 0 1 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 0 1 +1 0 0 +1 0 1 1 1 1 0 0 1 1 0 1 1 0 0 1 0 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 0 0 1 0 1 1 0 1 1 0 0 0 0 1 0 1 0 0 0 1 1 0 1 0 1 1 1 1 1 1 0 1 1 1 0 1 0 0 1 0 0 1 1 1 1 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 1 1 0 1 0 1 1 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 +0 0 1 +0 1 1 1 1 0 1 0 1 1 0 0 1 1 0 0 0 1 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 1 0 1 0 0 1 1 1 0 1 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 0 +1 0 0 +1 0 1 0 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 0 0 0 0 1 0 1 1 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 0 1 0 0 0 0 1 0 0 0 1 0 1 +1 0 0 +0 0 1 1 1 1 0 0 1 0 1 0 1 0 0 1 1 0 1 1 1 1 1 0 0 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 1 1 1 0 0 0 1 1 1 1 0 0 1 1 1 0 0 1 1 1 1 0 1 1 0 1 1 0 1 0 1 1 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 0 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 1 0 +1 0 0 +1 1 1 0 1 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 0 0 0 1 0 0 1 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 0 0 1 1 0 1 0 1 1 1 1 1 0 0 1 1 1 0 1 0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 1 0 0 0 1 0 1 1 0 +0 0 1 +0 0 1 1 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 1 1 1 0 0 1 0 1 0 0 1 1 1 1 1 0 1 1 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 1 0 0 1 1 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 0 1 0 0 1 1 0 0 0 0 1 0 1 1 0 0 0 1 0 1 0 1 1 1 0 1 0 +0 1 0 +1 0 1 0 1 1 0 0 0 1 0 0 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 1 0 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1 1 +0 0 1 +1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 1 0 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 0 1 1 0 1 0 1 1 0 1 1 0 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 1 0 1 0 0 0 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 0 0 0 0 1 1 0 +1 0 0 +0 1 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 1 1 1 0 1 0 0 1 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 +1 0 0 +0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 1 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 1 0 0 0 1 0 1 0 0 1 1 1 1 0 1 0 1 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 1 1 1 1 1 0 1 0 0 0 1 0 1 0 1 +0 1 0 +0 1 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 1 0 1 1 0 1 0 1 1 1 1 1 1 1 0 1 0 1 0 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 1 1 1 1 1 1 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 0 0 0 1 1 0 0 +0 0 1 +1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0 1 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 0 1 0 0 1 1 1 0 0 1 1 1 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 0 1 1 +0 0 1 +1 1 0 0 0 0 1 0 1 0 1 1 1 0 1 1 1 0 1 0 0 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 1 0 0 1 0 0 1 0 0 1 0 0 1 0 1 1 1 0 0 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 1 1 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 +1 0 0 +1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 1 1 1 0 1 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 1 1 0 0 1 0 0 1 1 0 0 0 1 1 0 0 0 1 0 1 0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 1 1 0 0 1 1 1 0 1 0 1 0 0 1 0 0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 1 1 0 0 1 1 0 0 +0 0 1 +0 1 0 0 0 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 0 1 1 1 1 0 0 0 1 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0 0 0 1 1 0 1 1 1 1 1 1 1 0 1 1 0 0 +0 0 1 +0 0 1 1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 1 1 0 0 0 0 0 0 +0 0 1 +0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 1 1 1 1 1 1 0 0 1 1 0 0 +0 0 1 +0 1 1 1 1 1 1 0 0 1 1 1 0 0 0 1 1 0 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 1 0 0 1 1 1 1 0 0 1 0 0 1 1 0 0 1 1 1 0 0 1 0 0 1 0 0 1 1 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 1 1 0 +0 0 1 +1 0 1 0 1 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 0 1 0 1 1 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 1 0 +0 1 0 +0 1 0 0 1 1 1 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 0 1 1 0 1 0 0 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 1 1 0 0 1 0 0 0 0 1 1 0 1 1 +0 1 0 +1 0 0 1 0 1 0 0 1 0 1 1 0 0 1 1 1 0 1 0 0 0 1 1 0 1 0 1 0 1 1 1 0 1 0 0 0 1 0 1 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 0 1 1 1 1 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 0 0 1 1 1 1 0 0 1 0 1 1 0 0 0 1 1 +0 0 1 +0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 1 0 1 0 0 1 1 0 1 1 1 0 1 1 1 0 0 0 1 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 0 0 1 0 0 0 1 0 1 0 1 0 1 0 0 0 0 1 1 0 0 1 0 0 1 0 1 1 1 0 0 1 0 0 0 1 1 1 0 0 1 1 1 0 1 1 0 0 0 0 +0 0 1 +1 0 0 1 1 0 1 1 1 1 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 1 1 1 0 1 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 0 1 1 0 0 1 1 1 0 1 1 1 0 0 0 1 1 0 0 0 1 1 0 1 1 1 0 1 1 1 0 0 1 +0 0 1 +0 1 1 1 0 0 1 0 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 1 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 1 0 0 1 1 1 0 1 1 0 1 0 0 1 0 1 1 1 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 +1 0 0 +0 0 1 1 0 1 0 1 1 0 1 0 0 1 0 0 1 1 1 1 1 0 1 0 1 0 0 0 0 1 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 1 1 1 0 1 1 1 0 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 +0 0 1 +1 1 0 0 1 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 1 0 1 1 1 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 0 0 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 1 0 0 0 1 1 0 +0 0 1 +0 1 1 0 0 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 0 1 0 0 0 0 1 1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 1 1 1 0 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 1 1 1 +1 0 0 +0 0 0 1 1 1 1 1 1 0 0 1 1 0 1 0 0 1 0 0 0 0 1 0 1 1 1 0 1 1 1 1 0 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 0 1 +0 0 1 +1 1 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 1 1 1 0 0 0 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 0 0 0 0 1 1 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 0 1 +0 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 1 0 0 1 1 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 0 1 1 1 0 0 0 0 0 1 0 1 1 0 1 0 1 0 0 0 0 0 0 1 1 1 0 0 1 1 1 1 0 1 0 1 1 1 0 0 1 1 1 1 0 1 1 0 1 1 0 1 0 1 1 1 0 1 0 1 1 0 0 0 0 0 0 1 1 1 0 1 0 +0 0 1 +1 0 1 1 0 0 0 1 0 0 0 0 1 0 1 1 1 0 1 1 0 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 1 1 0 1 0 1 1 1 1 0 1 1 1 1 1 0 0 0 1 0 0 0 1 0 1 0 0 1 0 1 0 1 1 1 1 0 1 1 1 1 1 0 0 0 1 1 0 0 0 0 0 1 0 1 1 0 0 0 1 1 0 1 1 1 1 +0 0 1 +1 1 1 0 1 0 1 1 0 0 0 1 0 1 1 1 1 1 0 0 1 1 1 0 0 1 0 1 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 0 0 0 1 1 0 1 1 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 0 +0 0 1 +0 1 0 1 1 0 1 0 0 1 0 1 0 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 0 1 1 0 1 0 1 1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 1 1 1 0 0 1 1 1 0 1 0 0 1 1 0 0 0 1 0 0 0 0 +0 0 1 +1 0 1 1 1 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 0 1 1 1 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 0 1 0 1 0 +1 0 0 +0 0 0 0 1 0 1 0 0 1 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 1 0 0 1 1 0 1 1 1 0 1 0 1 0 0 1 1 0 +1 0 0 +0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 1 0 0 1 1 1 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 1 0 1 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 1 0 1 1 1 0 1 1 1 1 1 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 1 +0 1 0 +0 1 1 0 0 1 1 0 0 0 1 1 0 1 0 1 0 1 1 1 0 1 1 1 0 0 1 0 0 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 0 1 0 1 0 0 1 1 1 0 1 1 0 0 0 1 1 0 1 1 0 0 1 1 0 1 0 1 1 0 0 0 1 +1 0 0 +0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 0 0 1 1 0 1 1 1 1 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 0 1 0 1 1 0 1 0 0 0 1 1 0 0 0 0 1 0 1 1 1 0 1 0 1 1 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 1 1 0 1 0 0 0 1 0 1 0 0 0 0 0 1 1 1 0 +0 0 1 +0 1 1 0 1 1 1 0 1 0 0 1 1 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 0 1 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 +1 0 0 +1 1 0 1 0 0 0 0 0 1 1 1 1 0 1 1 0 1 0 0 1 1 0 0 1 1 1 0 0 0 0 0 1 1 1 1 0 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 +0 1 0 +1 0 0 1 0 1 1 0 1 0 0 0 1 1 1 1 1 0 0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 1 1 1 1 1 1 1 0 0 1 1 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 1 1 0 1 0 1 0 0 0 1 0 1 1 0 0 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 1 +0 0 1 +0 0 0 0 1 1 1 0 0 1 0 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 1 1 1 0 0 1 1 1 0 1 1 1 1 0 0 1 1 0 1 1 0 0 1 0 1 1 1 1 0 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 1 0 1 1 1 0 1 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 0 1 1 +0 1 0 +1 0 0 1 0 0 0 1 0 0 1 1 1 0 0 1 1 0 1 1 0 1 1 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 1 1 0 1 1 0 1 1 1 1 1 1 1 1 0 0 1 0 1 1 0 0 1 1 0 0 0 1 1 1 0 +0 1 0 +0 1 1 0 1 0 0 1 0 0 0 1 1 0 0 0 0 1 0 1 1 1 1 0 1 0 1 1 1 1 1 0 1 1 0 1 1 1 0 0 0 1 0 1 0 0 1 1 0 1 1 1 1 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 1 0 1 0 0 1 1 1 0 0 0 1 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 +1 0 0 +1 1 1 0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 1 0 1 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 0 1 1 0 1 0 0 1 1 0 0 0 1 1 0 1 0 1 0 0 1 0 1 1 1 1 0 0 +1 0 0 +0 0 0 1 0 1 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1 0 0 1 0 0 0 1 0 1 1 0 1 1 1 1 1 1 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 1 1 0 1 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 0 1 1 1 0 1 1 1 1 0 0 0 0 1 1 0 0 0 1 +0 0 1 +0 1 1 0 0 0 1 0 1 0 0 1 0 1 0 0 0 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 0 0 0 0 1 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1 0 1 1 0 0 1 1 1 1 1 0 1 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 1 0 1 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 +0 0 1 +0 0 1 1 1 0 0 0 0 0 1 1 1 1 0 0 1 0 0 1 1 0 1 0 1 0 0 0 0 0 1 0 1 0 0 1 0 1 0 0 1 1 1 0 1 1 1 0 0 1 1 0 0 1 0 0 1 0 0 0 1 0 1 1 0 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 0 1 0 1 0 1 1 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0 +1 0 0 +1 0 1 0 0 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 1 1 1 1 1 0 0 1 0 1 1 1 1 0 1 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 1 0 1 1 0 0 1 1 0 1 1 0 0 1 0 1 1 0 0 1 0 0 1 1 1 0 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0 1 1 0 +1 0 0 +1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 0 1 0 1 0 +0 0 1 +1 1 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 0 0 0 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 1 1 0 0 1 0 1 1 0 1 0 0 0 1 0 1 0 0 1 1 1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 1 0 1 1 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 1 1 0 1 1 1 0 0 0 1 +0 0 1 +0 0 0 0 1 1 1 1 1 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 1 1 1 0 1 1 1 0 1 1 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 0 0 1 0 0 1 0 1 0 1 0 0 0 1 1 1 0 1 1 1 0 0 0 1 1 1 0 0 1 0 1 0 0 0 1 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 1 1 0 0 1 0 1 1 1 +0 1 0 +1 0 1 1 1 0 1 0 0 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 0 1 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 +1 0 0 +0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 0 1 0 0 0 0 1 0 0 1 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 1 0 0 1 0 1 1 1 1 0 0 0 1 0 1 1 0 +0 1 0 +1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 0 1 0 1 1 1 0 1 0 0 0 0 1 1 0 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 1 1 0 1 0 0 1 1 0 1 1 0 1 1 0 1 0 1 0 0 1 0 0 +0 0 1 +1 1 0 0 0 1 1 0 1 1 0 1 0 1 1 1 1 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 0 0 1 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 0 1 1 0 1 1 0 0 1 1 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 1 0 1 0 0 1 1 1 0 1 1 1 1 0 1 0 1 0 0 1 0 0 +0 1 0 +1 1 0 0 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 1 1 1 0 1 0 0 1 0 1 1 1 0 0 1 0 0 0 0 0 0 1 1 1 0 1 1 1 1 0 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 0 +1 0 0 +0 1 0 1 1 0 1 0 0 1 0 1 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 0 1 0 1 0 1 1 1 1 0 1 1 1 0 1 0 0 1 1 1 1 0 0 1 0 0 0 1 0 0 0 1 1 0 1 1 0 1 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 1 0 0 0 0 0 1 1 0 0 1 1 0 1 0 0 1 1 1 1 0 0 1 1 0 1 0 +1 0 0 +0 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 0 0 0 1 0 1 1 1 1 0 0 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 1 1 1 1 1 0 1 1 1 0 0 0 1 0 1 1 0 1 0 1 0 1 0 0 0 0 0 0 1 1 1 1 1 0 1 +0 0 1 +0 1 0 0 0 0 0 1 1 0 1 1 0 0 1 1 1 1 1 0 1 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 0 1 0 1 0 1 1 1 0 1 1 0 1 1 1 0 0 1 0 1 1 1 1 0 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 1 1 0 0 1 1 0 0 1 1 1 1 1 0 0 0 1 0 1 0 1 1 1 1 0 1 1 0 0 1 0 1 0 1 1 1 1 1 0 0 1 0 1 +0 0 1 +1 0 0 1 0 1 1 0 0 0 1 0 0 1 0 1 1 0 0 0 0 0 1 0 0 1 0 1 0 1 0 1 0 1 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 0 0 0 1 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 0 0 1 0 0 0 0 1 1 1 1 1 1 0 1 0 1 0 0 1 1 1 1 0 0 0 0 1 1 0 +1 0 0 +0 0 0 1 1 1 0 1 0 0 1 1 1 1 1 0 1 1 1 0 0 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 0 0 1 1 1 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 1 1 1 1 0 1 0 1 1 0 0 1 1 0 0 1 0 1 1 1 0 1 +0 0 1 +1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 0 1 0 0 0 1 1 1 1 0 0 0 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 0 1 1 0 0 1 0 0 1 0 0 1 1 1 1 1 1 +0 0 1 +1 0 1 0 0 0 1 1 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 1 1 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 +1 0 0 +1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 1 1 1 1 1 0 1 1 0 0 1 1 1 1 0 1 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 1 1 0 1 0 1 1 1 0 1 1 1 1 0 1 0 1 1 1 0 1 1 1 0 1 1 0 1 1 1 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 0 1 1 1 1 1 0 0 0 0 1 1 0 +0 1 0 +0 0 0 0 1 1 1 0 1 1 1 0 1 0 1 0 1 1 1 0 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0 1 0 1 1 0 0 1 0 1 1 0 1 1 1 0 1 0 1 0 0 1 0 0 1 1 1 1 +0 0 1 +0 0 1 1 1 1 0 0 1 0 0 0 1 1 0 1 1 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 1 1 1 0 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 +0 0 1 +0 1 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 0 0 0 0 0 0 1 0 1 0 1 0 1 1 1 1 0 1 0 1 0 0 1 0 1 0 1 1 0 1 0 0 1 0 1 0 1 0 1 1 0 0 1 0 0 1 1 0 0 0 1 1 1 0 1 1 1 0 0 0 1 0 1 0 0 0 1 1 1 1 1 1 0 1 1 0 0 1 0 1 1 0 0 0 1 1 1 1 1 +0 0 1 +1 1 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 1 1 1 0 0 0 1 1 0 1 0 0 1 0 0 0 0 1 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 0 1 0 1 1 0 1 1 1 0 0 1 1 0 0 1 0 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 1 1 1 0 1 1 1 0 +0 0 1 +0 1 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 1 0 0 1 1 0 1 0 0 0 1 0 1 0 0 1 1 0 1 0 0 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 0 1 1 1 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 0 0 0 0 1 1 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +1 0 0 +1 0 1 0 1 1 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 1 1 0 0 1 1 0 1 1 1 0 1 0 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 1 0 0 0 1 0 0 1 1 +0 0 1 +1 0 0 1 0 1 1 1 0 0 1 0 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 1 1 0 1 0 1 0 0 0 1 1 0 0 0 1 1 0 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 1 1 0 0 1 1 0 0 0 0 0 1 1 1 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 +1 0 0 +1 1 1 1 0 1 1 0 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 0 0 0 1 0 0 1 0 1 0 1 0 1 0 1 1 0 1 1 0 +1 0 0 +0 1 1 1 1 0 1 0 1 1 1 0 1 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 0 0 0 1 1 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 1 +1 0 0 +1 0 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 +1 0 0 +0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 +0 1 0 +1 1 1 0 1 0 0 0 0 1 1 1 1 1 1 1 0 1 0 0 1 1 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 1 1 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 0 1 1 1 0 1 1 0 0 1 1 0 1 1 0 1 0 0 1 +0 0 1 +0 1 0 1 0 0 0 1 0 1 0 1 1 1 0 1 0 0 0 1 0 1 1 1 1 1 0 0 1 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 0 1 0 +0 0 1 +0 1 0 1 1 1 1 0 1 0 0 1 0 0 0 1 0 1 1 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 0 1 1 1 1 1 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 1 0 0 1 1 1 0 1 0 1 0 0 1 1 0 1 1 1 0 0 1 +0 0 1 +0 1 0 0 1 1 1 0 0 1 0 1 0 1 1 0 1 1 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 1 1 1 0 1 1 1 1 0 0 0 1 1 0 0 1 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 0 0 0 0 1 1 0 1 1 1 1 1 0 1 0 1 0 1 0 1 1 0 0 0 0 0 0 1 1 1 +0 0 1 +1 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 0 1 1 1 0 1 1 0 1 0 0 0 0 0 1 0 0 0 1 1 0 0 1 1 1 1 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0 0 +0 1 0 +0 1 0 0 0 1 0 0 0 1 1 1 1 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1 1 1 1 0 1 1 1 0 1 0 0 0 0 0 1 1 0 1 1 0 0 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 0 1 1 1 0 0 1 0 1 0 0 0 1 0 1 0 1 0 1 1 1 1 1 1 1 0 1 0 1 +0 0 1 +1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 0 1 0 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 0 0 1 0 1 1 1 0 0 0 1 0 0 0 1 1 1 1 0 0 1 0 0 1 0 0 0 1 1 0 0 0 1 0 0 1 0 0 1 0 1 1 1 0 1 0 1 0 1 0 1 0 0 1 1 0 1 1 1 1 0 0 0 0 1 0 1 0 1 0 0 0 1 0 +0 0 1 +1 0 1 0 1 0 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 0 0 1 0 0 0 1 0 0 1 1 0 0 1 1 1 0 0 1 0 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 1 1 0 0 0 1 0 1 1 0 1 0 +0 1 0 +1 0 1 1 1 0 0 0 0 1 1 0 0 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 1 1 1 1 1 1 0 0 1 1 0 0 0 1 0 0 1 0 0 1 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 0 0 0 1 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 0 1 1 0 1 1 1 0 1 0 1 0 1 0 0 1 1 1 0 0 0 0 1 1 1 0 1 0 +1 0 0 +0 0 1 1 1 0 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 0 1 0 0 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 0 0 1 1 1 1 1 1 1 0 1 1 0 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 0 0 0 1 0 0 1 0 0 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 1 0 0 1 0 1 1 0 0 0 1 0 0 1 0 1 1 1 1 1 0 0 0 1 +0 1 0 +1 0 1 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 0 0 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 1 +1 0 0 +1 0 1 0 0 1 0 1 1 0 1 0 0 0 1 1 1 0 1 1 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 1 0 0 0 1 0 0 +0 0 1 +1 1 1 1 0 0 0 0 1 1 0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 1 1 0 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0 1 1 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 0 1 0 1 0 0 1 1 1 0 0 0 0 1 1 1 0 1 1 0 0 1 1 1 1 1 1 0 +0 0 1 +1 1 1 0 1 1 1 0 1 0 0 1 1 0 0 1 0 0 0 1 1 1 1 0 1 0 0 0 1 1 1 0 1 0 0 1 1 1 1 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 1 1 0 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 0 0 1 1 0 1 0 1 1 1 1 0 0 1 0 1 1 1 0 1 0 1 1 1 0 1 1 0 0 0 0 0 0 1 1 1 1 1 0 +0 0 1 +0 1 0 0 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 1 0 0 1 1 0 0 1 1 1 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 1 1 0 1 0 0 1 0 0 0 1 0 1 1 0 1 0 1 0 0 0 0 1 0 0 +0 1 0 +0 0 1 1 0 1 1 0 0 1 1 0 0 1 0 0 0 0 1 0 0 1 1 0 1 1 1 0 1 1 0 0 0 0 1 1 0 0 0 1 1 0 1 1 0 1 1 1 0 1 1 1 0 0 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 1 1 0 0 +1 0 0 +1 1 0 1 1 1 1 0 0 1 0 1 0 1 0 1 1 0 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 0 1 1 1 0 1 0 0 1 1 1 1 0 1 0 1 1 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0 1 1 1 1 1 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 1 0 1 0 0 1 1 1 0 1 0 0 1 1 1 0 1 0 0 1 0 0 1 0 1 1 0 0 0 1 1 1 1 +0 0 1 +1 0 0 1 0 1 1 0 0 1 1 1 1 0 1 1 1 0 1 1 1 1 0 0 0 1 1 0 0 0 1 1 0 1 1 1 1 0 0 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 0 1 1 1 1 0 1 1 1 1 0 1 1 0 1 1 1 0 1 0 1 0 0 1 1 0 0 0 0 1 1 0 1 0 1 0 0 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +0 0 1 +1 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 1 0 1 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1 1 1 0 1 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0 +0 1 0 +1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 0 1 1 0 0 0 0 1 0 1 1 1 0 0 1 0 0 1 0 1 1 1 0 1 0 0 1 1 1 1 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 0 0 0 0 0 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 1 1 1 1 0 0 0 0 1 1 0 +1 0 0 +0 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 0 1 1 0 1 1 1 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 1 1 0 1 1 1 0 0 0 1 1 0 1 0 1 1 1 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 1 0 1 1 1 1 0 0 0 1 1 0 0 1 1 1 1 1 1 0 1 0 1 1 0 0 1 0 1 0 0 1 1 1 1 1 1 0 0 0 0 0 1 0 1 +1 0 0 +1 0 0 0 0 0 0 1 0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 1 0 1 1 0 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 1 1 1 1 0 0 0 0 0 0 1 1 0 1 1 0 0 0 1 1 0 0 1 +0 0 1 +1 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 1 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 1 1 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 1 1 0 1 0 1 0 0 0 0 0 0 0 1 0 1 1 0 1 1 1 0 0 1 1 0 0 1 1 1 +1 0 0 +1 0 0 1 0 0 0 0 1 1 0 0 1 1 0 0 0 1 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 1 0 1 0 0 0 0 0 1 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 0 0 0 1 1 1 1 1 0 1 1 0 0 0 0 0 +0 1 0 +1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 1 1 1 1 0 1 0 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 0 1 1 1 0 0 0 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 1 0 0 0 0 1 0 1 0 1 1 0 0 1 1 0 0 0 1 0 1 0 +0 0 1 +0 1 1 1 1 1 1 0 0 0 1 1 1 0 1 0 0 1 0 0 0 1 1 0 1 0 1 0 0 1 1 0 1 1 1 1 1 0 0 0 1 1 1 1 1 0 1 0 0 1 0 0 0 0 0 1 0 1 0 1 0 1 1 1 1 0 0 0 0 0 0 1 1 0 1 1 0 1 1 1 1 0 1 1 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 +0 0 1 +1 0 1 0 1 1 1 0 1 0 0 1 1 1 1 1 1 1 0 1 0 1 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 0 0 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 1 1 1 0 1 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 +0 1 0 +0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 0 0 1 1 0 1 1 0 1 0 0 1 1 1 0 1 0 1 1 0 1 1 1 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 0 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 0 0 1 1 0 0 0 0 1 0 0 +0 1 0 +0 1 1 0 1 0 1 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 0 0 0 1 0 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 1 1 1 1 1 1 1 0 0 1 0 1 0 0 1 1 0 0 0 1 1 0 0 1 1 1 0 1 0 0 0 +0 0 1 +1 0 1 1 0 1 1 1 1 1 1 1 0 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 0 1 1 1 1 1 1 0 0 0 0 1 1 0 1 0 1 0 1 0 0 1 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 1 0 0 0 1 0 1 0 1 0 1 0 0 1 0 0 1 1 0 1 1 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 +0 1 0 +0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 1 1 0 1 1 1 0 0 0 0 1 1 0 1 1 1 0 1 0 0 0 0 1 0 0 1 0 0 1 1 1 0 0 1 1 0 0 1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 1 0 1 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 1 1 1 1 0 0 0 1 0 0 1 0 +0 0 1 +0 0 0 0 1 1 0 0 1 1 0 0 0 1 1 0 1 0 1 0 1 1 1 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 0 1 1 0 1 0 0 1 1 1 1 0 0 1 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 1 1 1 0 1 1 1 0 0 1 0 1 0 0 1 0 +0 1 0 +0 1 0 1 0 1 0 0 1 1 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 1 1 0 1 0 0 1 0 0 0 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 0 0 0 0 0 1 0 1 1 0 +0 0 1 +0 1 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 1 1 1 0 0 1 1 1 1 1 1 1 0 1 0 0 0 1 0 0 1 1 1 1 0 0 1 1 0 1 0 0 1 1 1 1 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1 +0 0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 0 0 1 0 1 1 1 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 0 1 0 0 0 0 0 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 1 1 1 0 0 0 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 1 0 0 0 1 0 1 0 1 0 1 +0 0 1 +0 0 0 1 1 0 1 0 0 1 1 1 0 1 1 1 1 0 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 1 1 0 1 1 0 1 0 0 1 1 1 0 1 0 1 1 0 1 1 1 0 0 1 0 0 1 0 0 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 1 1 1 0 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 +0 0 1 +0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 0 0 1 1 0 1 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 0 0 0 0 1 0 1 0 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 0 1 1 1 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 1 1 0 1 1 1 1 0 1 0 0 0 0 1 1 1 0 1 1 1 1 0 0 0 0 1 0 1 0 1 1 0 1 1 1 0 +0 0 1 +0 1 1 0 0 0 1 1 0 1 0 1 1 0 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 1 0 1 0 0 0 0 1 1 1 1 0 1 0 0 1 1 0 1 1 0 0 0 0 1 1 1 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 1 0 1 +0 1 0 +1 1 1 1 1 1 1 1 0 0 1 0 1 1 1 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 0 0 0 1 1 1 1 1 1 1 0 1 1 1 0 1 0 0 1 0 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 1 0 0 1 1 0 0 1 1 0 0 1 0 0 1 1 1 1 0 1 1 1 0 0 0 0 0 1 0 1 1 0 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 1 0 1 0 +0 1 0 +1 0 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 1 0 1 0 0 0 1 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 1 0 1 0 0 1 0 1 0 1 1 0 0 1 +1 0 0 +1 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 1 0 0 1 0 0 1 1 1 1 1 1 0 1 1 0 1 1 1 0 0 0 1 1 1 1 1 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 0 1 0 1 1 1 1 1 1 1 0 0 1 0 1 0 1 0 0 0 1 1 1 0 0 1 0 0 0 1 1 0 1 0 1 0 0 1 0 0 1 0 1 0 0 1 1 0 0 0 0 0 +0 0 1 +0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 1 0 0 1 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 0 1 1 1 1 1 1 0 1 0 1 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 0 1 1 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 0 0 0 1 0 1 1 0 1 0 1 0 1 0 0 0 +0 0 1 +1 0 0 1 1 0 1 0 1 0 0 1 0 0 1 1 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 0 0 0 0 1 0 1 1 1 0 0 1 1 0 1 1 1 1 1 0 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 0 +0 1 0 +1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 1 0 0 1 0 0 1 1 0 0 0 1 1 1 1 1 1 1 0 1 0 1 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 1 +0 0 1 +1 0 1 0 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 0 1 0 0 0 0 1 0 1 1 1 1 0 1 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 0 1 0 1 0 0 0 0 1 0 0 0 1 +1 0 0 +1 0 0 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 0 0 0 0 1 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 1 0 1 0 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 +0 0 1 +0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0 1 1 1 0 1 1 0 1 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 0 1 0 1 1 1 1 0 0 0 1 1 1 0 1 0 0 0 1 1 1 1 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1 0 1 0 0 +0 0 1 +0 0 1 1 1 1 1 0 1 1 1 1 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 0 0 1 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 1 0 0 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 1 1 1 0 0 0 1 +0 0 1 +0 1 0 0 0 1 0 1 1 0 1 1 0 1 0 1 1 1 1 0 1 1 0 0 1 0 0 1 1 1 0 1 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 0 1 1 1 0 1 1 0 1 0 1 1 0 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 1 1 0 +1 0 0 +0 1 1 1 0 1 1 1 0 0 1 1 1 1 0 0 1 0 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 0 0 1 1 0 0 1 0 1 1 1 0 0 0 1 1 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1 0 1 0 0 1 0 1 1 0 1 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0 1 0 1 1 +0 0 1 +0 0 0 1 1 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0 1 0 1 1 1 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 0 +0 1 0 +1 0 1 1 1 1 1 1 0 1 1 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 1 0 1 0 0 1 0 0 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 0 1 0 0 1 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 +1 0 0 +0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 1 0 1 0 0 0 1 0 0 1 1 0 0 1 0 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 1 0 0 0 1 0 1 1 1 0 1 1 1 0 1 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 1 0 1 0 0 0 0 1 0 1 1 0 1 0 0 0 0 0 1 1 1 1 0 0 1 0 1 0 0 0 0 0 0 1 1 0 +0 0 1 +0 1 0 0 0 0 1 1 0 0 0 1 0 1 0 1 1 1 1 1 1 0 0 1 0 1 0 0 1 0 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 0 0 1 1 1 0 1 1 0 0 0 0 0 0 0 1 1 1 0 0 1 0 1 0 1 1 0 0 1 1 0 0 1 0 1 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 0 1 0 0 1 0 0 0 0 +0 0 1 +1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1 1 1 0 1 0 0 1 1 0 1 0 1 1 1 0 1 0 0 1 1 1 0 0 1 1 0 0 1 1 0 1 1 1 0 1 0 0 1 1 1 0 0 0 0 0 0 1 0 1 0 1 1 0 1 0 1 1 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 0 1 0 1 0 0 0 1 1 1 0 0 0 0 1 1 0 1 1 1 0 0 0 +0 0 1 +0 1 0 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 1 1 0 1 1 1 0 1 1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 0 1 0 0 1 1 0 0 0 0 1 0 0 0 1 1 0 1 1 0 1 0 0 1 0 0 1 0 1 0 1 +0 0 1 +1 0 1 0 1 0 0 1 0 0 1 1 0 0 1 1 1 0 0 1 0 0 0 0 0 1 1 1 0 0 1 1 1 0 1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 0 0 1 0 1 1 0 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 +0 1 0 +0 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 0 1 0 0 1 1 1 1 0 1 0 1 0 0 1 0 1 0 0 0 1 0 0 1 1 1 0 1 0 1 1 1 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 1 0 0 0 1 0 0 0 1 0 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 0 1 0 0 0 0 +0 0 1 +0 0 1 1 1 1 0 1 0 0 0 1 0 0 0 1 0 1 0 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1 0 0 1 0 1 0 1 1 0 1 1 0 0 0 1 0 0 0 0 +0 1 0 +0 1 0 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 1 0 0 1 0 0 1 0 0 0 0 1 1 1 1 1 0 1 1 1 1 1 0 0 0 0 1 0 0 0 0 +1 0 0 +1 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1 0 0 1 1 0 1 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1 0 1 0 0 0 0 0 0 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 +1 0 0 +0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 0 1 1 1 0 0 0 0 1 0 1 0 0 0 1 1 1 0 1 1 0 1 1 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 0 0 1 0 1 0 1 0 1 1 0 1 1 1 1 0 1 1 0 0 0 1 1 1 0 1 0 1 0 0 0 0 1 +0 0 1 +0 0 0 1 1 1 0 1 1 1 1 0 1 1 1 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 1 0 0 1 1 1 0 0 0 1 0 1 0 1 1 1 0 0 0 1 1 0 1 0 0 1 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 0 0 1 1 1 1 0 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 0 1 0 0 +0 0 1 +1 1 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 1 1 1 0 0 0 0 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 1 0 0 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 1 1 0 +1 0 0 +1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 1 0 0 1 1 1 0 1 1 0 0 1 0 0 1 1 1 0 0 1 0 1 1 0 0 1 1 1 1 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 0 1 0 1 1 0 1 1 1 0 1 0 1 0 0 1 1 1 1 0 1 0 1 0 0 1 1 0 0 1 0 1 1 1 1 1 1 0 1 0 1 0 1 0 0 1 1 0 1 1 1 1 +1 0 0 +1 0 0 1 0 0 0 1 1 1 0 0 0 1 0 0 0 1 1 0 1 1 0 1 0 1 0 0 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1 0 1 0 0 1 1 1 0 0 1 1 1 0 1 1 1 1 0 0 0 0 1 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 0 1 0 1 1 0 0 0 0 0 0 0 1 0 1 1 0 0 +0 1 0 +1 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 0 0 1 1 0 1 1 0 0 0 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 0 0 1 0 0 0 1 1 0 0 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 0 0 1 1 1 0 1 1 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 +0 1 0 +0 1 0 1 1 0 0 0 1 1 1 1 0 1 1 1 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 0 1 1 0 0 0 1 1 0 0 1 0 0 1 0 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 0 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 +0 0 1 +0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 1 0 1 1 0 0 0 1 1 0 1 0 1 0 0 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 1 0 1 1 0 0 0 0 1 0 1 1 0 1 1 1 0 0 1 1 1 1 0 0 0 1 1 1 0 0 1 0 1 1 0 1 0 1 0 +0 0 1 +0 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 1 0 0 1 1 1 1 0 0 1 1 0 1 1 0 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 1 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 +0 0 1 +1 1 1 0 1 0 0 0 1 0 0 1 0 0 1 1 0 1 0 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 1 1 0 0 0 0 +1 0 0 +0 1 1 1 1 1 0 0 1 1 0 1 0 0 1 1 1 1 0 1 1 0 1 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 1 0 0 0 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 1 1 1 1 0 1 0 1 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 1 0 1 +0 0 1 +0 1 1 0 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 0 1 1 0 0 1 1 1 1 0 1 0 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 1 0 0 1 1 1 0 0 0 0 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 0 0 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 0 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 +0 0 1 +1 1 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 0 0 1 0 1 0 1 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 0 0 0 1 0 0 0 1 0 0 0 1 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 0 0 1 0 1 1 0 0 0 1 1 0 1 1 1 0 1 +1 0 0 +1 1 1 1 0 0 1 0 0 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 0 0 1 1 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 1 0 1 0 0 1 0 1 0 1 1 1 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0 1 1 0 0 1 0 1 0 0 1 0 0 1 0 1 0 1 1 1 0 0 0 0 0 1 0 1 0 1 0 +1 0 0 +1 1 1 1 0 1 1 0 1 1 1 0 1 0 0 0 0 1 0 1 0 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 1 0 1 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 0 1 1 1 0 0 1 0 +0 0 1 +1 0 0 1 0 1 0 0 1 0 0 1 0 0 0 1 0 1 1 1 0 1 1 0 0 0 1 1 1 1 1 1 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 0 0 1 1 1 0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 0 0 1 1 1 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 +0 0 1 +1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0 0 1 1 0 0 1 1 1 1 1 0 0 1 1 1 0 0 0 1 0 1 0 1 1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 0 1 1 0 0 0 1 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 +0 0 1 +0 1 1 1 1 0 0 1 1 0 0 1 0 1 1 0 0 1 0 1 0 0 1 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 1 0 0 1 1 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 0 1 1 0 1 1 0 1 0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 0 +1 0 0 +1 1 0 0 0 0 0 1 0 1 0 0 0 1 1 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 0 1 0 0 1 0 0 0 0 1 0 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 0 0 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 0 1 1 1 1 0 0 0 0 0 1 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 1 0 1 0 0 0 1 0 1 0 1 0 1 0 +1 0 0 +1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 0 0 0 1 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0 1 1 0 1 1 0 0 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1 0 +0 0 1 +1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 0 0 1 1 0 1 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 0 1 1 1 1 1 1 0 1 0 0 0 1 1 0 0 +1 0 0 +0 1 1 1 1 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 0 1 1 0 0 1 0 0 1 1 0 0 1 1 0 1 1 1 1 1 0 0 0 0 1 0 0 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 1 1 1 1 0 1 0 0 1 1 0 1 0 +0 1 0 +0 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1 1 1 0 1 0 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 1 1 +1 0 0 +1 1 1 1 1 1 1 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 1 1 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1 0 0 0 1 1 0 0 1 0 1 1 1 1 0 0 1 1 1 1 1 0 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 1 0 1 1 0 0 1 1 0 0 1 1 1 0 0 0 1 1 0 +0 0 1 +0 1 0 1 1 1 0 1 1 1 0 0 0 1 0 1 0 0 1 0 1 1 0 1 0 1 1 1 0 1 1 0 1 1 1 1 0 0 1 1 1 0 1 0 0 1 0 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 0 0 0 1 1 1 1 1 0 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 0 1 0 0 1 +1 0 0 +0 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 0 0 1 1 1 1 0 1 1 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 1 1 1 0 0 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 +0 0 1 +0 1 0 1 1 0 1 0 0 1 0 0 0 0 0 1 1 0 1 1 1 0 0 1 0 1 1 0 0 1 0 0 1 0 1 1 0 0 0 1 1 0 1 0 1 0 1 0 0 0 0 1 0 1 1 0 1 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 0 0 1 0 1 0 0 1 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0 1 0 0 0 0 +0 0 1 +1 1 1 1 0 1 0 0 0 0 1 1 0 1 0 1 1 1 1 1 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 1 1 0 0 0 1 0 1 0 1 0 0 0 1 0 1 1 1 1 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 1 0 1 0 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 1 0 1 1 1 0 1 0 0 0 1 0 1 +0 0 1 +1 0 1 1 1 0 1 1 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 1 0 0 1 1 0 0 1 0 0 1 0 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 1 1 1 1 1 0 1 1 1 1 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 +1 0 0 +0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 1 1 0 0 0 0 1 1 0 1 1 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 1 0 0 +0 0 1 +0 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 0 0 0 1 1 1 1 1 1 0 1 0 0 0 1 0 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1 1 0 0 1 1 0 1 0 0 0 1 0 0 +0 1 0 +1 1 1 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 0 1 0 0 1 1 1 1 0 1 1 0 1 1 1 1 0 1 0 0 0 1 1 +0 0 1 +0 1 0 1 1 0 1 0 1 0 1 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 1 0 0 1 0 1 1 1 1 0 1 0 1 0 0 0 1 1 1 1 1 0 0 1 0 1 1 0 1 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 0 0 0 0 1 1 0 1 0 1 1 0 0 0 1 1 1 0 1 1 1 0 1 0 0 1 1 0 0 1 +0 0 1 +0 1 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 0 0 1 0 1 1 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 1 0 1 1 0 1 0 0 0 0 0 1 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 1 1 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 1 +0 0 1 +0 0 1 0 0 0 1 0 1 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 0 1 1 1 0 0 0 1 0 0 0 0 1 0 1 1 1 0 1 0 1 0 0 0 1 1 0 1 0 0 1 0 1 1 1 0 1 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 1 1 0 1 1 1 1 0 0 1 0 1 1 1 0 0 1 1 0 1 0 1 1 1 1 0 0 +0 0 1 +1 0 0 1 0 1 1 1 0 1 0 1 0 1 0 1 1 0 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 1 0 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 1 0 0 1 1 0 1 1 1 0 1 0 0 1 1 1 0 1 1 0 1 1 0 1 1 0 0 1 1 0 1 1 1 1 1 +0 0 1 +1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 1 1 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 1 1 0 0 0 1 1 1 1 0 1 1 0 1 0 1 1 0 1 1 1 0 0 0 0 0 0 1 1 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 0 0 1 1 0 1 1 0 +1 0 0 +0 1 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 1 0 0 1 1 1 1 1 0 1 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 1 0 1 0 1 1 1 0 0 0 1 0 1 1 0 1 0 1 1 0 1 +0 0 1 +0 0 0 0 1 1 1 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 1 1 0 1 1 0 0 0 1 1 0 1 0 0 1 0 0 1 1 0 1 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 +0 1 0 +0 1 0 1 1 0 0 1 0 1 0 1 0 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 1 0 0 1 1 0 1 1 0 1 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 1 1 1 0 1 0 1 1 1 0 0 1 1 1 0 0 1 1 1 1 1 1 1 0 0 0 1 0 1 0 0 0 1 0 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 +0 0 1 +0 0 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 0 0 0 1 1 1 1 0 0 0 1 1 1 0 0 0 1 0 0 1 1 1 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 1 0 0 1 1 0 0 0 1 0 1 1 0 0 1 1 0 0 0 1 1 1 0 1 1 1 1 0 0 1 1 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 1 0 0 0 1 +0 1 0 +1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 0 0 1 0 1 0 0 1 1 1 1 1 0 1 0 0 0 0 0 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 1 0 1 0 1 1 0 1 1 1 1 0 1 0 1 0 0 1 0 0 0 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 1 1 1 0 0 0 0 1 1 0 1 1 1 0 +0 0 1 +1 0 0 1 1 0 0 0 0 0 1 1 0 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 1 1 1 1 1 0 1 1 0 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 +0 0 1 +1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 0 0 +0 0 1 +0 1 0 1 1 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 0 1 1 0 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 1 1 0 1 0 0 1 1 1 0 0 1 0 1 1 0 0 1 1 1 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 0 0 0 +0 1 0 +0 0 1 1 1 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 1 1 0 1 0 1 1 0 1 1 1 1 0 0 0 0 0 1 1 0 0 1 0 1 1 1 0 1 0 1 1 0 0 1 0 0 0 0 0 1 0 1 0 0 1 0 1 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 1 0 0 0 1 1 1 0 1 0 0 0 1 1 1 0 1 0 1 1 1 1 +0 0 1 +0 1 1 1 1 0 1 1 1 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 1 1 1 0 1 0 1 0 1 1 1 1 0 1 1 1 1 0 1 1 0 0 1 0 0 0 1 0 0 1 1 0 1 1 0 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 0 1 1 1 0 0 0 0 0 0 1 +0 0 1 +1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 0 1 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 1 0 0 1 1 1 1 1 1 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 1 1 0 0 0 0 0 0 1 0 0 1 0 1 1 1 0 1 0 1 0 0 1 1 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 1 1 0 0 +0 0 1 +0 1 1 1 0 0 1 0 0 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 1 1 1 0 0 0 0 1 1 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 1 1 0 1 1 1 0 1 0 0 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 1 0 1 0 1 1 0 0 0 1 0 0 1 1 +1 0 0 +1 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 0 1 0 1 0 1 0 0 0 1 0 1 1 1 0 1 0 1 1 1 1 1 0 0 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 1 0 1 0 1 1 1 0 1 0 1 1 1 1 1 0 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 1 1 1 +0 1 0 +0 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 0 1 0 1 1 1 1 1 0 0 1 1 1 1 0 1 0 0 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0 0 1 0 1 1 1 0 1 0 1 1 1 0 1 1 1 0 1 0 1 1 1 1 1 0 0 1 0 0 1 1 0 0 1 1 1 0 0 1 1 0 1 0 +0 1 0 +0 1 0 1 0 1 0 1 0 0 1 1 1 1 0 1 1 1 0 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 0 1 1 1 1 1 0 0 0 0 1 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0 0 1 1 1 1 0 1 1 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 1 1 1 0 1 1 1 1 0 0 1 1 0 0 0 1 0 1 +0 1 0 +1 1 1 0 0 1 0 0 0 0 0 1 1 0 1 0 1 1 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 1 0 0 1 0 0 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 1 0 0 1 1 0 1 1 0 0 1 1 0 0 +0 1 0 +1 1 1 0 0 0 0 1 1 0 1 0 0 1 0 1 1 1 1 0 1 0 0 0 1 1 1 0 1 0 0 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 0 0 0 0 0 0 0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 1 0 1 1 1 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1 0 0 0 1 +0 0 1 +1 0 1 0 0 0 1 1 1 1 1 0 0 1 1 1 0 0 0 1 1 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 0 1 1 1 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 1 0 1 1 1 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 0 1 0 0 1 0 +0 0 1 +1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 0 0 1 0 1 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 1 0 1 1 0 1 1 1 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 1 0 1 1 1 0 0 1 1 1 1 0 1 0 1 1 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 +0 0 1 +1 1 0 0 0 0 1 0 0 0 1 1 1 0 0 1 0 0 1 0 0 0 1 1 1 0 0 0 1 1 1 1 1 1 1 0 1 0 0 0 1 1 1 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 0 1 0 1 0 0 1 1 0 0 0 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 0 0 0 0 1 +0 1 0 +1 0 0 0 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 0 1 1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 1 1 1 1 0 0 0 0 0 1 1 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 0 1 0 1 1 1 0 0 1 0 1 0 1 0 1 1 0 0 1 1 0 1 1 1 0 1 0 1 0 0 0 1 1 +1 0 0 +1 1 0 1 0 1 0 1 1 0 1 0 1 1 1 1 0 0 1 1 1 1 0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 1 0 0 1 1 1 1 1 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 0 1 1 0 1 1 1 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 1 1 0 1 1 +0 1 0 +1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 1 1 1 1 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 1 1 0 1 0 1 0 +0 1 0 +1 1 1 0 1 0 1 1 1 0 1 1 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 1 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 0 1 1 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 1 0 1 1 0 1 1 0 0 0 0 0 0 +0 0 1 +1 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 1 0 0 1 1 0 0 0 1 0 0 0 1 1 1 1 0 0 1 1 1 1 1 0 0 0 0 1 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 1 1 1 1 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 1 1 1 0 +0 0 1 +0 0 0 1 0 0 1 1 0 1 0 0 1 1 1 0 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 0 0 0 0 1 1 1 0 0 0 1 0 0 0 1 1 1 0 1 1 1 0 1 0 0 1 0 0 0 1 0 0 1 1 1 0 0 1 1 0 0 1 0 1 0 0 0 1 1 1 0 0 0 0 1 0 0 0 0 0 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0 +0 0 1 +0 0 1 1 1 0 1 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 1 1 1 0 1 1 0 1 1 0 1 0 1 1 1 0 0 1 0 1 0 0 1 0 0 0 1 1 0 1 1 1 1 0 1 0 0 0 1 1 0 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 1 0 1 1 0 0 0 1 1 1 1 1 0 0 1 1 +0 0 1 +0 0 0 1 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 1 1 0 0 1 1 1 1 0 1 0 0 0 0 1 0 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 1 1 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 0 1 0 0 0 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 0 1 0 0 1 0 0 0 0 1 1 0 0 1 1 0 1 +0 0 1 +0 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 1 0 0 1 1 1 0 1 0 1 0 1 1 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 1 0 1 0 0 1 +0 0 1 +1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 0 1 1 1 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 1 0 1 1 0 0 1 1 0 1 1 1 1 0 0 0 1 0 1 1 +0 1 0 +0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 1 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 1 0 0 0 1 0 1 0 0 1 1 1 1 0 1 0 1 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 1 1 1 1 1 0 1 0 0 0 1 0 1 0 1 +0 1 0 +0 1 0 1 0 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 0 1 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 1 1 1 0 0 1 1 1 0 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 0 1 0 0 0 1 0 1 1 1 1 0 0 1 1 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 0 1 0 0 +0 0 1 +0 1 0 0 1 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 1 1 1 1 1 0 0 0 1 1 0 +0 0 1 +1 0 0 1 0 1 1 1 1 1 0 0 0 1 0 1 1 1 0 1 0 1 1 0 1 1 0 1 1 1 1 1 0 0 1 1 1 0 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 0 1 1 0 0 1 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 1 0 1 1 0 1 1 0 1 0 1 1 0 0 0 +0 0 1 +1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 0 1 1 0 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1 0 0 1 1 1 1 0 1 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 1 1 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 1 0 1 +0 1 0 +0 0 1 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 1 0 1 0 1 0 0 1 0 0 0 1 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 1 1 +1 0 0 +0 1 0 0 0 0 0 1 0 0 1 1 0 0 1 0 1 0 1 1 0 0 0 0 1 1 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 1 0 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 +0 0 1 +1 1 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 0 1 0 1 1 1 0 1 1 1 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 0 0 1 1 1 1 1 0 0 1 1 0 1 0 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 0 1 1 1 1 0 1 0 1 0 1 1 1 0 1 1 0 1 0 0 0 1 1 0 1 1 1 1 1 0 1 1 1 1 +0 0 1 +1 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 1 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 0 1 1 1 0 0 1 0 1 1 0 0 1 1 0 0 0 1 0 1 0 0 0 0 1 1 1 1 1 0 0 0 1 0 0 0 0 1 0 1 1 0 1 0 0 1 1 +0 1 0 +0 1 0 0 0 0 1 1 0 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 0 1 0 1 0 0 0 0 1 1 1 1 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 1 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 1 1 1 0 +0 0 1 +1 1 0 0 0 1 1 0 0 1 1 1 1 0 1 1 0 0 0 1 1 1 1 0 1 1 0 1 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 1 1 0 1 0 0 1 0 1 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 0 0 0 1 0 1 1 0 1 0 1 0 0 1 1 1 1 1 1 0 1 0 0 1 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 +1 0 0 +1 1 0 0 1 1 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 1 1 0 1 1 0 0 1 1 1 1 0 1 1 0 0 1 1 0 1 1 1 1 1 1 1 0 0 1 0 0 1 0 0 1 1 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 1 0 0 1 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 +1 0 0 +0 0 1 1 0 0 0 1 1 0 1 1 1 0 0 1 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 1 0 0 0 1 1 1 0 0 1 1 1 1 1 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0 0 0 0 1 0 0 0 1 1 1 0 0 1 1 0 0 +0 0 1 +0 0 0 1 0 0 1 0 1 1 1 1 1 0 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 0 1 1 1 0 0 0 1 0 0 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 1 1 1 0 1 1 0 1 0 1 1 0 1 0 1 1 1 1 0 0 1 1 1 1 1 0 1 1 0 1 1 1 0 0 +0 0 1 +0 1 0 0 1 1 1 1 1 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 1 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 1 0 1 1 1 1 1 1 0 1 1 1 0 1 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 1 1 0 1 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 1 1 1 0 +1 0 0 +1 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 0 0 1 1 1 0 0 1 0 1 0 0 0 1 0 0 0 1 0 1 1 0 1 0 0 0 0 0 1 1 1 1 1 0 0 1 0 0 0 0 0 1 1 0 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 0 0 0 0 1 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 1 1 +0 0 1 +0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 1 0 1 0 1 1 1 0 0 0 1 1 0 1 0 1 0 0 1 0 1 1 1 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 0 0 1 1 1 0 1 1 0 0 1 0 1 1 0 0 0 0 0 0 1 0 0 1 0 1 1 1 0 0 0 0 1 0 0 1 1 1 1 1 0 1 1 0 0 0 0 0 1 0 1 1 0 1 1 0 0 0 1 0 1 0 0 0 1 1 1 +0 0 1 +1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 1 1 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 1 0 0 0 1 1 1 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 0 1 0 1 1 0 0 1 0 1 0 0 +0 0 1 +0 0 0 0 0 1 1 0 1 1 1 1 1 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 1 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 0 0 0 0 1 1 0 1 1 0 0 1 1 1 1 1 0 0 0 0 1 1 0 1 0 1 1 0 0 1 1 0 0 0 0 0 0 1 0 0 1 1 0 1 0 1 0 0 0 0 1 1 0 0 1 0 1 1 0 1 0 1 1 1 0 0 1 +0 1 0 +0 1 0 1 0 1 0 0 1 1 1 0 1 0 1 1 1 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 0 0 1 1 0 1 1 1 1 1 0 1 1 0 0 1 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 0 1 1 1 0 1 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 1 1 0 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 0 1 1 1 0 0 0 0 1 +1 0 0 +0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 0 0 1 1 0 0 0 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 1 0 1 0 1 0 1 0 0 1 1 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 1 0 +1 0 0 +1 0 1 0 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 0 1 0 1 0 0 0 1 1 0 0 1 1 0 1 1 0 1 0 1 1 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 1 1 1 0 1 1 1 1 1 0 1 1 1 0 0 1 1 0 1 0 1 0 1 0 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 0 1 0 1 1 1 0 1 1 0 1 1 +0 0 1 +0 1 1 1 1 1 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 0 1 1 0 0 0 0 1 0 1 1 1 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 1 1 1 0 1 0 0 1 1 1 0 0 1 1 0 0 1 0 1 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0 0 1 1 0 0 0 0 0 1 1 +0 0 1 +0 0 1 0 1 0 1 0 0 0 0 1 0 1 1 0 1 1 0 0 0 1 0 0 1 1 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 1 1 1 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 1 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 0 1 1 1 0 1 0 0 0 0 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 +0 0 1 +0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 0 0 0 1 1 0 0 0 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 1 0 0 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 +0 0 1 +0 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 0 1 0 0 0 0 1 1 1 0 0 1 1 1 0 0 0 1 1 0 0 1 1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 1 0 0 0 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 1 1 0 1 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 1 0 1 0 0 +0 0 1 +1 0 1 0 1 0 0 1 1 1 1 0 0 0 0 1 1 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 0 0 1 0 1 0 1 1 0 1 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 0 1 0 1 +1 0 0 +0 0 0 1 1 1 0 0 1 0 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 1 1 1 0 1 0 0 0 1 1 0 1 0 0 0 0 0 1 0 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 0 0 0 0 1 1 +0 0 1 +1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 0 0 0 0 0 1 1 1 0 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 0 0 0 1 0 1 1 1 0 1 1 1 0 0 1 0 0 1 1 1 0 1 0 1 1 1 0 1 0 1 0 0 1 1 1 +0 1 0 +0 1 0 1 0 1 1 1 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 0 0 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 1 0 1 0 1 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 1 0 0 1 0 1 0 1 1 0 1 1 0 1 0 0 0 1 1 1 1 0 +0 1 0 +0 0 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 1 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 1 0 1 0 1 1 1 1 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 1 1 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 1 1 +0 0 1 +0 1 1 1 1 0 0 1 0 0 0 0 1 1 1 1 1 1 1 0 1 0 1 0 0 0 1 1 1 1 1 1 1 0 1 1 1 0 1 0 0 1 0 0 0 1 1 0 0 0 1 1 0 1 0 0 1 1 1 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 1 0 1 1 0 1 1 1 0 1 0 1 1 +0 0 1 +1 1 0 0 1 1 0 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 1 0 0 1 0 0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 +0 0 1 +1 1 1 1 1 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 1 1 +0 1 0 +1 0 1 0 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 1 1 0 0 0 1 1 0 1 1 1 1 0 0 1 1 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 0 0 1 1 1 0 0 0 0 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 1 0 1 0 0 +0 0 1 +1 0 1 1 1 0 0 1 1 0 1 1 1 1 1 0 1 0 0 0 0 1 1 1 0 1 1 0 0 0 0 1 0 1 1 0 1 1 0 1 0 1 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1 1 0 1 0 0 1 0 0 0 1 0 0 0 1 0 1 1 1 1 0 1 0 1 0 0 1 1 0 1 0 1 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 +0 0 1 +0 1 0 1 1 0 1 0 0 1 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 0 0 0 1 1 0 1 1 1 0 1 0 1 1 0 0 0 1 1 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 1 0 0 1 1 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 1 +0 0 1 +1 1 1 0 0 0 1 1 1 0 0 1 0 1 0 1 0 1 0 0 0 1 0 0 0 1 1 1 1 0 0 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 1 0 0 0 1 1 0 1 1 1 1 1 0 1 1 0 1 1 1 1 0 0 1 0 1 1 1 1 0 1 0 0 0 1 0 0 0 0 0 1 0 1 1 0 0 1 0 1 0 1 1 0 1 1 0 1 0 0 0 0 +0 1 0 +1 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1 1 1 0 1 0 0 0 1 1 1 0 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 0 0 1 1 0 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 1 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 1 +0 0 1 +0 0 1 1 0 0 0 0 0 1 0 0 1 1 1 1 0 1 0 1 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 1 0 0 1 1 1 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 +0 0 1 +1 0 1 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 1 1 0 1 0 0 0 0 0 1 0 1 1 1 0 0 0 1 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 1 1 0 1 1 1 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 1 1 1 0 1 0 1 0 0 0 +0 0 1 +1 1 1 0 1 0 0 0 1 1 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 0 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 0 1 0 0 1 0 1 1 1 1 0 1 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 1 0 1 0 1 1 0 1 1 1 1 +0 0 1 +0 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 1 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 0 1 1 1 1 1 0 1 0 1 0 1 0 0 1 0 1 1 1 1 0 1 0 1 0 1 1 1 0 0 0 1 0 1 0 1 0 1 1 0 0 0 1 1 0 +1 0 0 +0 1 1 1 1 0 0 1 1 1 1 0 1 1 1 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 1 1 1 1 1 0 0 0 0 1 1 1 0 1 0 0 1 1 0 1 1 0 0 1 1 +0 0 1 +1 0 1 0 0 0 0 0 1 0 0 0 0 1 0 1 0 1 1 1 0 1 0 0 0 0 0 1 0 1 1 0 1 1 1 0 1 0 0 1 0 0 0 0 1 1 1 0 1 1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0 1 0 0 0 1 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 0 0 0 1 +1 0 0 +0 1 1 0 1 1 0 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 0 0 0 0 1 1 0 1 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 0 1 1 0 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0 0 1 +0 1 0 +1 0 1 1 0 0 0 1 0 1 1 0 0 1 1 1 1 1 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 1 1 1 1 0 0 0 1 1 0 0 0 1 1 0 1 0 0 1 0 0 +0 0 1 +0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 0 1 1 1 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 1 0 0 0 0 1 1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 1 1 0 1 0 1 0 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 0 0 0 0 0 1 1 1 1 1 0 1 1 1 0 1 0 1 0 1 1 1 1 +1 0 0 +1 1 0 1 0 0 0 1 0 1 0 0 0 1 1 0 1 0 1 0 0 1 0 0 0 0 0 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 0 1 1 0 0 1 0 1 1 1 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 1 1 0 1 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 1 0 1 0 1 1 0 0 1 1 +0 0 1 +0 1 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 1 0 1 0 0 1 0 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 1 0 0 0 1 1 0 1 0 1 0 0 0 1 1 0 1 1 1 0 0 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 0 0 1 1 1 1 +0 0 1 +0 0 1 1 0 0 1 0 0 1 1 0 1 1 1 1 1 1 1 0 0 1 0 0 1 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 1 0 0 1 1 1 1 0 0 1 1 0 1 0 0 1 1 1 1 0 0 1 0 1 0 0 0 +0 0 1 +1 1 1 0 1 1 1 1 1 1 0 0 1 1 1 0 0 1 0 1 0 1 1 0 0 1 1 0 1 0 1 0 0 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 1 0 1 1 1 1 1 0 1 1 0 0 1 1 1 1 0 1 0 0 0 1 1 1 0 1 1 0 1 1 0 0 1 1 1 0 0 1 0 0 1 1 1 1 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 1 0 1 1 +0 0 1 +0 0 0 0 0 1 1 0 1 1 0 1 1 0 1 1 0 0 1 1 1 1 1 1 0 0 0 1 1 0 1 0 1 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 0 0 0 0 0 0 1 1 1 0 0 1 0 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 0 1 0 0 1 +0 0 1 +0 0 0 0 1 1 1 0 0 0 0 0 1 0 0 1 0 0 0 1 0 1 1 0 0 1 0 0 0 0 0 1 0 1 0 0 1 0 1 1 0 0 0 1 0 1 1 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 1 0 1 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 +0 0 1 +0 0 0 0 1 1 1 0 1 0 0 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 1 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 1 +0 1 0 +1 0 1 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 0 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 0 1 1 1 1 1 1 0 0 1 0 1 1 1 1 0 0 1 0 1 1 0 1 0 0 0 0 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 +0 0 1 +1 1 1 1 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 1 1 0 1 1 0 1 1 0 0 0 1 1 1 0 1 0 1 0 0 1 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 1 +0 0 1 +1 1 1 1 1 1 1 1 0 1 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 0 1 1 1 0 0 0 1 0 0 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 0 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 1 0 0 1 1 0 1 0 0 1 1 +0 0 1 +0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 1 0 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 0 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 1 1 1 1 1 1 0 0 0 0 1 1 0 1 0 1 1 1 1 1 0 0 +1 0 0 +1 0 1 1 1 0 0 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 0 1 1 0 1 0 1 1 1 0 0 1 0 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 1 1 1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 0 1 1 1 0 1 +0 1 0 +0 1 1 0 0 1 1 0 0 1 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 0 1 1 0 1 1 0 0 0 1 0 1 1 0 1 0 0 1 0 0 0 1 0 0 0 0 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 0 1 1 1 1 0 0 0 0 0 1 0 0 1 0 1 1 1 0 1 0 0 1 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 0 0 0 0 0 1 +0 0 1 +0 1 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 1 0 1 1 1 0 1 1 0 1 0 0 1 0 0 1 0 1 1 1 0 1 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 0 1 1 0 1 1 1 0 1 1 0 1 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 0 0 0 0 1 0 0 1 1 +0 0 1 +1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 0 1 0 0 0 1 0 0 0 0 0 1 0 1 0 1 0 0 0 1 1 1 0 0 0 0 1 0 1 0 1 1 0 1 0 0 0 0 0 0 1 0 1 0 0 1 1 0 1 1 0 1 0 0 1 0 0 1 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 1 0 1 0 1 0 0 0 1 1 0 1 +0 0 1 +0 0 0 1 1 1 1 1 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 1 0 0 0 1 0 1 1 0 1 0 1 1 1 0 0 0 0 1 1 1 1 1 1 1 0 1 0 1 0 0 1 1 0 1 1 1 0 1 0 1 1 0 1 1 0 1 1 1 0 1 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 1 1 1 1 0 1 1 1 0 0 1 +0 0 1 +1 1 0 0 1 1 1 1 1 0 0 1 1 1 0 0 0 1 0 0 1 1 1 0 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 1 1 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 +0 1 0 +0 0 1 1 1 0 0 1 1 0 1 0 0 0 0 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 1 1 +1 0 0 +0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 1 0 0 1 1 0 1 0 1 1 1 1 1 1 0 0 1 0 1 1 1 0 0 0 1 1 1 1 1 1 0 1 1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 1 0 1 0 0 1 1 1 1 1 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 1 1 0 1 0 0 0 0 1 1 0 +0 0 1 +1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 1 0 0 1 0 1 1 1 1 1 0 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 1 1 1 0 0 0 1 1 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 1 1 1 1 1 +1 0 0 +0 0 1 0 0 1 1 0 0 1 1 0 1 1 0 1 1 0 0 0 0 1 1 0 1 1 1 1 1 0 1 1 0 1 1 0 0 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 0 0 1 0 0 0 1 1 0 1 0 1 0 1 0 1 0 +1 0 0 +0 0 1 1 1 0 0 0 1 1 1 0 1 1 0 1 0 1 1 1 1 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 1 1 1 0 1 1 1 0 1 0 1 1 0 0 1 1 1 0 0 1 1 0 +1 0 0 +0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 0 0 0 0 0 0 1 +0 0 1 +1 0 0 0 0 0 1 1 0 1 1 1 1 1 0 1 0 0 1 1 1 0 0 0 0 1 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 0 1 0 1 1 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 0 1 0 0 0 0 0 1 0 1 1 0 1 1 1 0 1 1 0 1 1 1 1 0 1 0 1 1 0 0 0 1 0 1 1 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 1 +0 0 1 +0 1 0 1 0 1 1 0 0 1 0 1 0 1 1 1 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 1 0 0 1 0 1 1 0 1 0 1 1 1 1 1 0 0 1 1 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 0 0 0 0 1 1 1 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 0 1 1 0 1 1 0 1 0 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 +1 0 0 +1 1 0 0 0 1 0 0 0 1 0 0 1 1 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 0 0 1 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 1 1 0 1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 +0 1 0 +0 1 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 1 1 1 1 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1 1 0 1 1 0 0 1 1 1 0 1 1 0 1 0 1 1 1 +0 1 0 +1 1 0 1 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 1 1 1 0 1 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 1 0 1 1 0 0 1 +0 0 1 +1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 0 1 0 1 1 0 0 0 +0 1 0 +0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0 0 1 1 1 1 0 1 0 0 1 0 0 1 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 0 1 1 0 0 0 0 1 1 1 0 0 1 0 1 1 0 1 1 1 1 0 1 1 0 0 1 0 1 0 1 1 1 0 1 0 1 1 0 0 1 0 1 1 1 1 0 1 0 1 1 1 1 1 1 1 0 +0 0 1 +1 1 0 0 0 0 1 0 0 0 1 1 1 0 0 1 0 0 1 0 0 0 1 1 1 0 0 0 1 1 1 1 1 1 1 0 1 0 0 0 1 1 1 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 0 1 0 1 0 0 1 1 0 0 0 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 0 0 0 0 1 +0 1 0 +0 1 1 1 0 1 0 0 0 0 1 1 1 1 1 0 1 0 0 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 1 1 1 1 1 1 1 0 0 1 0 1 1 0 0 0 0 1 0 0 0 0 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 1 0 0 1 0 1 1 0 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 0 0 1 1 0 1 1 0 0 0 1 0 0 1 0 0 1 0 1 +1 0 0 +1 1 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 0 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 0 1 0 +1 0 0 +1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 0 0 0 0 1 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 0 1 0 1 1 1 1 0 1 1 0 1 0 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 1 1 1 0 0 0 0 0 0 1 +0 0 1 +1 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 0 1 1 1 1 1 1 0 1 0 0 0 0 0 1 1 1 0 1 1 1 0 1 0 0 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 1 0 0 1 1 1 0 0 0 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 0 1 0 1 1 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 +1 0 0 +1 1 0 1 0 1 1 0 0 1 1 0 1 1 0 1 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 0 1 0 1 0 0 1 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 1 0 0 0 1 1 0 1 0 0 1 0 1 1 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 0 0 1 0 1 1 1 1 0 0 0 0 0 1 1 +0 0 1 +1 1 1 1 0 0 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 0 1 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 1 0 1 0 1 0 1 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 +0 0 1 +0 1 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 0 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0 0 0 1 0 0 0 0 1 1 1 0 1 0 1 0 1 1 0 1 0 1 1 0 0 1 1 0 1 0 1 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 1 +1 0 0 +0 1 1 1 0 0 1 1 1 0 0 0 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 1 0 0 1 0 0 1 1 0 0 1 1 1 0 1 0 0 0 0 1 1 0 1 0 1 1 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0 +0 0 1 +0 0 1 1 1 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 1 0 1 1 1 0 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 0 0 0 0 1 1 0 +0 1 0 +1 0 0 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 0 1 1 1 1 0 0 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 0 1 1 0 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 0 1 1 1 0 1 1 1 0 0 0 1 0 0 1 0 0 1 1 1 0 0 1 1 0 +0 1 0 +1 0 1 0 0 0 1 1 0 0 0 1 0 0 1 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 0 1 1 1 1 1 0 1 0 0 1 0 0 0 1 1 0 1 1 1 0 0 0 1 1 1 0 1 1 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 1 0 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 0 1 1 1 0 1 0 0 0 1 1 1 0 0 0 1 0 0 0 1 +0 0 1 +0 1 0 0 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 0 1 1 0 1 0 0 0 1 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 1 0 +0 0 1 +1 0 1 1 1 1 1 0 0 0 0 0 0 0 1 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 0 0 0 1 0 1 0 1 0 1 1 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 1 1 1 0 1 1 1 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 1 1 0 1 0 1 0 0 1 1 1 0 0 0 1 1 0 1 1 1 0 1 1 0 0 +1 0 0 +1 0 0 0 1 0 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 1 0 0 0 0 1 0 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 1 1 0 1 1 0 0 0 1 1 0 0 0 0 1 0 1 0 1 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0 1 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 0 1 1 0 +0 0 1 +0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 1 0 0 1 1 0 0 0 1 0 1 1 0 1 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 0 1 0 0 0 1 1 0 0 1 1 0 0 0 0 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 0 1 1 +1 0 0 +0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1 0 0 1 1 1 1 0 0 1 1 1 0 0 0 0 0 1 1 0 1 0 0 0 0 1 0 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 0 1 +0 1 0 +1 0 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0 +1 0 0 +1 0 0 0 1 0 1 1 0 0 0 0 1 0 0 1 0 0 1 1 1 0 0 0 1 0 1 0 1 0 1 0 0 0 0 1 1 0 1 1 1 0 0 1 0 1 1 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 1 1 1 1 1 1 0 1 0 0 1 0 1 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 1 1 0 1 1 1 0 +0 0 1 +0 0 1 1 1 0 1 1 0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 0 1 1 1 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 0 +0 0 1 +1 1 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 0 0 1 0 1 0 0 0 1 1 1 1 0 1 0 0 0 1 0 0 1 1 0 1 0 1 0 0 1 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 1 +0 0 1 +0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 0 0 1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0 0 0 1 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 1 0 0 1 1 0 0 1 0 0 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 +1 0 0 +0 0 1 1 1 0 1 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 0 0 1 1 0 0 1 1 1 1 1 0 1 1 1 1 0 0 0 1 0 1 1 1 0 0 1 1 0 0 0 1 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 1 1 1 1 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 +0 1 0 +0 0 1 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 1 1 1 0 1 0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 1 0 1 1 0 1 1 1 0 +0 1 0 +0 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 1 1 0 1 1 0 1 0 0 1 1 1 0 0 1 0 0 1 1 1 0 1 1 1 0 1 0 1 0 0 1 0 1 1 0 1 1 0 0 1 0 1 1 1 1 1 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 +0 0 1 +1 0 0 0 1 1 1 1 1 0 0 1 1 1 1 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 0 1 +0 0 1 +1 0 0 1 1 0 1 0 1 0 0 0 0 0 0 1 1 0 1 1 1 1 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 0 1 1 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 0 1 1 0 1 1 0 1 1 0 0 1 1 0 1 0 0 1 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0 1 1 1 0 +0 0 1 +1 0 0 1 0 0 0 0 0 1 1 0 1 0 1 1 0 0 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 0 1 1 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 0 0 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 0 1 1 +0 1 0 +0 1 0 0 1 1 1 1 1 0 0 1 0 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 1 1 0 1 1 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 0 1 1 1 1 0 0 1 0 1 1 1 0 1 1 1 1 1 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 0 0 1 1 1 0 0 0 0 +0 1 0 +1 0 1 1 0 0 0 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 0 0 1 0 1 0 0 1 1 0 1 0 0 0 0 1 1 1 1 1 1 0 1 0 1 0 1 0 0 1 0 0 1 0 0 1 1 0 0 1 1 1 0 0 1 0 0 1 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 1 1 1 0 0 1 0 0 1 0 0 1 0 1 1 1 0 1 0 0 1 0 0 1 1 0 +0 0 1 +0 0 0 0 1 1 1 0 1 0 0 0 0 1 0 1 1 0 0 0 1 0 0 0 1 1 1 0 0 1 1 0 0 0 1 0 1 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1 1 1 0 1 0 0 0 0 0 1 1 1 1 1 0 1 1 0 0 1 0 1 1 0 0 1 0 0 1 0 1 1 0 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 1 +0 1 0 +1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 1 1 1 0 0 0 0 1 0 1 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 1 1 1 0 +0 0 1 +0 1 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 0 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 1 0 1 1 1 0 0 1 0 0 1 1 1 1 0 0 0 1 0 0 0 0 1 0 0 1 0 1 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 1 0 1 1 +0 1 0 +0 1 0 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 1 0 1 1 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 1 0 1 1 0 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 +0 0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 1 1 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 1 0 1 1 0 1 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 1 1 1 0 1 1 0 1 1 1 1 1 0 1 0 0 1 1 1 0 1 1 1 0 0 0 +0 0 1 +1 0 1 1 1 1 0 1 0 1 0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 1 0 0 1 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1 1 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 0 1 0 1 1 0 0 1 +0 1 0 +1 0 1 1 1 0 0 1 0 1 0 0 0 1 0 0 1 1 1 1 0 0 1 1 1 0 1 0 1 0 1 1 1 1 1 1 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 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 1 1 1 1 0 0 +0 0 1 +1 0 1 0 0 0 1 1 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 0 0 0 0 1 1 1 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 +1 0 0 +0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 0 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 1 1 0 1 1 1 0 1 0 1 0 1 1 1 1 1 0 1 0 0 0 0 0 1 1 0 1 1 1 1 1 1 0 0 1 0 1 0 1 1 0 1 0 1 +0 0 1 +1 0 1 0 1 0 0 1 1 0 0 0 0 1 0 0 0 1 1 0 1 1 1 0 1 0 0 1 0 0 0 0 0 1 1 1 0 0 0 1 1 0 1 0 1 0 0 1 1 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 1 0 1 0 0 0 0 0 1 0 0 1 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0 0 0 1 1 1 1 0 0 1 0 0 1 1 0 1 1 1 1 0 0 1 1 0 0 1 0 +0 0 1 +0 1 0 1 1 0 1 0 0 1 0 0 0 0 1 0 1 0 0 1 1 1 1 1 1 1 0 0 0 0 1 0 0 1 0 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 +1 0 0 +0 0 0 1 0 0 0 0 0 1 0 1 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 0 1 0 1 0 1 0 1 1 1 1 0 0 1 0 1 1 0 0 1 0 0 0 1 1 0 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 1 1 1 0 0 1 0 0 0 0 0 1 0 1 1 0 0 1 0 1 +1 0 0 +1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 0 1 1 1 1 1 1 0 1 0 1 0 0 1 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 0 1 1 1 0 0 1 1 1 1 1 0 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 +1 0 0 +1 1 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 1 1 0 1 0 0 0 1 0 0 0 0 1 0 1 0 1 0 1 0 0 1 1 1 1 1 1 +0 0 1 +0 1 1 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 1 1 0 0 1 0 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 0 0 1 1 1 1 1 1 1 1 0 0 1 0 1 0 1 1 1 1 1 0 0 0 0 0 1 1 0 0 1 0 0 0 1 0 1 1 0 1 1 1 1 1 1 1 0 +0 1 0 +0 0 1 1 1 0 1 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 0 0 1 1 0 0 1 1 1 1 1 0 1 1 1 1 0 0 0 1 0 1 1 1 0 0 1 1 0 0 0 1 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 1 1 1 1 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 +0 1 0 +0 1 1 0 1 0 1 1 1 1 1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 0 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 1 0 0 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 1 0 1 0 0 0 1 0 1 0 1 1 0 1 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 +0 0 1 +1 1 1 0 0 1 1 1 1 0 0 0 1 0 1 0 1 0 1 0 0 1 0 0 1 1 1 0 1 0 0 1 1 0 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1 1 0 1 0 0 1 1 1 1 1 1 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 1 0 1 1 1 1 0 0 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1 0 0 0 1 1 0 +0 0 1 +1 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 0 0 0 0 0 0 1 1 1 0 1 1 1 0 1 0 0 1 1 1 1 0 1 1 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 0 0 0 1 1 1 0 0 0 1 1 0 1 0 0 1 1 1 0 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 1 1 0 0 1 +0 1 0 +0 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 1 1 0 1 1 0 1 0 1 1 0 1 1 1 0 0 1 1 1 1 0 1 0 0 0 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 0 1 1 1 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 +0 0 1 +1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 1 0 1 1 1 0 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 0 0 0 1 0 1 1 0 0 0 0 1 1 0 0 1 1 0 1 1 1 1 1 0 1 0 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 1 0 +0 0 1 +1 0 1 0 0 1 0 1 1 0 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 1 1 1 1 1 1 0 1 0 1 0 1 1 1 0 1 0 0 1 0 1 1 0 1 0 1 1 1 0 1 0 1 0 1 0 1 1 +0 0 1 +0 0 0 1 0 1 1 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 1 0 1 1 0 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 1 1 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 0 0 1 0 0 0 1 0 1 1 1 0 1 0 1 1 0 0 1 1 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 0 0 1 0 1 1 0 +0 0 1 +0 1 0 1 1 0 0 0 1 1 1 1 1 1 0 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 1 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 0 1 0 1 1 0 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 1 0 1 0 1 1 1 0 1 1 1 1 1 0 0 1 +0 0 1 +1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 0 0 +0 0 1 +1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 0 0 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 0 1 1 0 1 1 0 1 0 1 1 1 1 1 1 0 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0 1 0 0 0 1 0 1 0 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 0 1 1 0 1 0 1 1 1 0 0 0 0 +0 0 1 +1 1 0 0 1 0 0 1 1 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 0 1 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 1 1 0 +0 0 1 +0 1 1 1 0 0 1 1 0 0 1 0 1 0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 0 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 0 0 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 +0 0 1 +1 0 1 0 1 1 1 0 1 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 0 1 0 1 1 0 1 0 0 0 1 1 1 0 1 1 1 0 0 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 1 0 1 0 0 0 1 0 1 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 1 1 0 1 0 +0 0 1 +1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 0 1 0 1 1 0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 1 1 1 0 0 1 1 0 1 1 1 0 1 0 0 0 0 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 0 0 +1 0 0 +1 1 1 0 1 0 1 0 1 1 1 1 1 0 1 0 1 0 1 0 0 1 0 0 0 1 1 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 0 0 1 0 1 0 1 1 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 1 1 0 1 0 0 1 1 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 1 1 1 1 0 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 +0 0 1 +1 1 0 1 1 1 1 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 1 0 1 0 1 1 1 1 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 1 1 0 1 0 1 0 1 1 0 0 0 0 0 0 1 0 1 0 1 0 1 1 1 1 1 1 1 0 0 1 1 0 1 1 0 0 0 0 0 1 +0 0 1 +1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 1 1 1 1 0 0 1 0 1 1 0 0 1 0 1 1 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 0 1 1 1 1 1 0 1 0 0 1 0 0 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 0 1 1 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 0 1 1 1 1 0 0 0 1 0 0 0 0 0 1 1 0 1 1 1 0 1 0 0 1 +0 0 1 +1 1 0 0 1 1 1 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 0 1 0 0 1 1 1 0 0 0 1 0 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 0 0 0 +0 1 0 +1 0 0 1 1 1 0 0 0 0 1 1 1 0 1 0 0 1 1 1 0 1 1 1 1 1 0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 1 1 1 1 0 0 1 0 0 1 1 0 1 0 0 1 1 1 0 1 0 1 1 1 0 0 1 0 1 1 1 0 0 0 0 1 1 1 1 0 1 1 1 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 +1 0 0 +0 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 0 1 1 0 1 1 1 0 1 1 0 0 1 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 1 1 0 0 0 1 1 0 1 0 1 0 1 1 1 1 1 1 1 0 1 1 0 0 0 1 1 0 0 0 1 +0 0 1 +1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 +0 0 1 +1 0 1 1 1 0 1 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 0 1 0 1 1 1 0 1 1 0 0 1 0 1 1 1 0 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 0 0 0 0 0 0 1 0 1 0 1 +0 1 0 +0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 0 1 1 0 0 1 0 1 1 0 1 1 1 1 0 0 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 1 0 1 1 1 0 0 0 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +0 0 1 +1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 1 0 0 1 0 1 1 0 1 0 1 1 0 0 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 1 1 1 1 1 1 0 1 0 1 0 0 1 0 1 1 1 +0 0 1 +0 0 1 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 1 1 1 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 0 1 1 1 0 1 0 1 1 1 1 1 0 0 1 1 0 +0 0 1 +0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 1 0 0 1 1 0 1 0 0 0 0 0 1 0 0 1 0 1 1 1 1 0 1 0 1 1 0 1 1 1 0 0 1 1 1 0 1 0 1 0 0 0 0 1 1 0 0 1 0 1 0 1 1 0 0 1 1 1 0 0 1 0 0 1 1 1 0 1 1 1 0 1 0 0 0 0 1 1 0 1 1 1 0 1 0 1 0 0 1 0 +0 0 1 +1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 0 1 0 0 1 0 1 0 1 1 1 0 0 1 1 1 1 0 0 0 1 0 1 1 0 1 1 1 1 0 0 0 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 1 0 0 0 0 +1 0 0 +0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 1 1 1 1 0 1 1 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1 1 1 0 1 1 1 0 0 0 0 1 0 0 1 1 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 0 0 0 1 1 0 +0 1 0 +0 1 1 0 0 0 1 1 0 1 0 1 1 0 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 1 0 1 0 0 0 0 1 1 1 1 0 1 0 0 1 1 0 1 1 0 0 0 0 1 1 1 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 1 0 1 +0 1 0 +0 0 0 0 1 1 0 1 0 0 0 1 0 1 1 0 1 0 1 1 1 0 1 1 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 1 1 0 1 0 0 0 1 0 0 1 0 0 1 1 0 1 1 1 0 1 0 1 0 0 0 +0 0 1 +1 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 1 1 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 1 0 1 1 1 0 1 1 1 0 0 0 1 1 0 1 0 1 1 0 1 0 1 0 1 1 1 0 0 0 0 0 0 0 1 0 1 1 1 0 1 0 1 0 1 1 1 1 1 0 0 1 1 0 0 0 1 1 0 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 +1 0 0 +1 1 0 1 1 1 0 1 1 1 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 1 1 1 0 0 0 0 1 0 1 0 0 1 1 0 0 1 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 1 0 1 0 1 1 1 1 0 1 1 0 0 1 0 1 1 0 0 1 1 1 +0 0 1 +1 1 0 1 1 1 0 1 1 0 0 1 0 0 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1 1 0 1 1 0 1 1 1 1 0 1 1 1 1 1 0 1 0 1 1 0 1 0 1 1 0 0 0 0 1 0 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0 0 1 1 0 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 +1 0 0 +0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 1 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 0 0 0 1 1 1 0 1 1 1 1 1 1 0 1 0 1 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 1 1 1 1 0 0 1 1 1 0 1 0 1 1 1 1 +0 0 1 +0 1 0 1 0 0 1 1 0 0 0 1 0 1 0 1 0 0 0 1 1 0 0 1 0 1 1 0 1 0 1 1 1 0 1 1 0 0 1 1 1 0 1 1 1 1 0 1 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 1 1 0 1 0 +0 0 1 +0 1 1 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 1 1 0 0 1 1 1 0 1 0 1 1 0 1 0 1 1 0 0 0 1 0 0 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 0 0 1 1 1 0 1 1 0 0 0 1 0 1 0 1 0 1 +1 0 0 +1 1 1 0 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 0 1 1 1 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 0 1 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 0 1 0 0 0 1 0 1 0 1 0 1 0 0 0 1 1 +1 0 0 +0 0 1 0 1 1 0 0 0 1 0 1 1 1 0 0 0 1 0 1 1 0 1 1 0 0 1 1 0 1 0 0 0 1 0 0 1 1 1 0 1 1 1 1 0 0 0 1 0 1 0 1 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 0 1 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 1 1 0 +1 0 0 +0 1 1 1 1 1 0 0 0 0 0 1 0 1 0 1 0 1 0 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 1 0 1 1 0 0 1 1 0 0 1 +0 1 0 +1 0 1 0 0 0 1 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 0 0 0 1 0 1 0 0 1 1 1 0 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 0 0 0 1 1 0 1 0 1 1 0 0 1 1 0 1 1 0 0 1 1 1 0 1 0 1 1 1 0 1 1 1 1 0 0 1 1 0 1 0 0 0 0 0 1 +0 0 1 +1 1 1 1 1 1 0 0 1 0 1 1 1 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 0 +0 0 1 +0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 0 0 1 1 1 0 0 0 1 1 1 1 0 1 1 1 1 0 1 1 1 0 0 0 0 1 0 0 0 1 0 1 0 1 0 1 1 1 1 0 1 0 0 1 1 1 1 1 0 0 0 1 0 1 1 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 +0 0 1 +1 0 1 0 0 1 0 0 1 0 0 1 0 1 1 0 1 1 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 0 1 1 1 0 0 0 1 0 1 1 0 1 0 1 1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0 0 0 1 1 0 1 0 1 1 1 1 1 1 0 1 0 1 +1 0 0 +0 0 1 1 0 1 0 1 1 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 1 1 0 1 0 0 0 1 1 0 1 1 1 0 0 0 1 1 0 0 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 0 0 0 1 1 1 1 0 1 1 0 1 1 1 1 1 0 0 0 1 1 0 1 1 0 0 0 1 0 1 1 0 1 1 1 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 1 1 +0 0 1 +0 1 0 0 1 1 1 1 0 0 0 1 1 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 0 1 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 1 1 0 1 0 1 1 1 0 1 0 0 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 0 1 1 0 0 1 0 1 1 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 +1 0 0 +0 1 1 0 1 0 1 1 1 1 0 1 0 0 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1 0 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 0 1 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 1 +0 1 0 +1 0 0 1 1 0 1 1 1 0 0 1 0 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 1 1 1 1 0 0 0 1 1 0 0 1 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 0 1 1 1 1 0 1 0 0 1 1 1 0 0 1 0 1 1 0 0 1 0 1 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 1 1 1 1 1 0 1 0 0 0 1 0 1 +0 0 1 +0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 1 0 0 1 0 1 0 1 1 0 0 0 1 0 0 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 0 1 1 0 1 0 0 0 +0 0 1 +0 1 1 0 0 1 0 1 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 0 0 0 0 1 1 1 0 0 1 1 1 0 0 1 0 0 0 1 0 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1 0 1 0 0 0 0 0 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 1 1 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 1 0 +1 0 0 +1 1 0 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0 0 1 1 0 1 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 +0 0 1 +0 0 0 0 1 1 1 1 1 1 0 1 0 0 1 1 0 0 0 1 1 0 1 1 1 1 1 1 0 1 0 0 0 1 0 1 1 1 0 0 1 1 0 1 1 0 1 0 0 0 0 1 1 0 1 1 0 1 1 0 0 1 0 1 1 1 1 0 1 1 0 1 0 1 1 1 0 0 0 1 0 0 1 1 1 0 0 0 1 1 1 1 1 1 0 1 0 1 0 1 0 0 1 1 1 1 1 0 0 1 1 1 0 1 0 0 1 1 1 0 +0 0 1 +1 0 1 1 1 1 0 0 1 1 0 1 0 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 1 1 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 +0 0 1 +1 0 1 1 1 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 0 1 1 1 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 0 1 0 1 0 +1 0 0 +1 1 1 0 0 0 1 0 1 0 0 1 0 1 0 1 1 0 1 0 0 1 1 1 0 1 0 1 1 0 0 1 0 0 0 0 0 1 0 1 1 0 1 1 0 0 1 1 1 0 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 1 0 0 1 1 1 0 1 1 1 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 1 0 +0 0 1 +1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 0 0 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 0 1 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 1 1 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 1 1 0 1 1 1 0 0 1 0 0 0 1 1 0 1 1 0 1 1 0 +0 1 0 +0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 0 1 1 0 1 0 0 0 0 1 0 1 0 0 1 1 1 0 1 0 0 1 1 1 0 +0 0 1 +0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 1 0 1 1 0 1 1 0 0 1 0 0 0 1 1 1 1 0 1 0 0 1 1 0 0 1 0 0 0 0 +0 0 1 +0 1 0 1 0 1 0 1 0 1 1 1 1 0 0 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 1 0 0 1 1 0 0 1 1 1 0 0 1 1 0 1 0 0 1 1 1 1 1 0 0 0 0 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 +0 1 0 +1 1 1 0 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1 1 1 1 1 0 1 0 1 0 0 1 1 1 1 1 1 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 1 1 0 1 0 1 0 0 0 1 1 1 1 0 0 0 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 0 1 1 0 0 0 0 0 1 1 +1 0 0 +1 1 0 1 1 0 0 1 1 0 0 0 0 1 0 1 1 0 1 0 1 0 1 1 1 1 0 0 0 1 0 0 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 0 0 1 0 1 0 1 1 1 0 0 0 1 0 1 1 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 1 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 +0 0 1 +1 1 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 1 0 1 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 0 0 0 1 0 0 +0 1 0 +0 1 0 0 1 1 1 0 1 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 0 1 1 0 0 0 1 0 1 1 1 0 0 1 1 0 0 0 1 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 1 1 1 1 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 +0 1 0 +1 0 0 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 0 0 0 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 1 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 1 1 0 1 1 0 1 +0 1 0 +1 0 1 1 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 +0 0 1 +1 0 1 0 1 0 1 0 0 1 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 1 0 0 1 0 1 0 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1 1 0 1 0 0 0 0 1 0 1 1 0 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 1 +0 0 1 +0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 1 0 1 1 0 1 0 0 1 1 1 1 1 0 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 1 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 0 0 0 1 1 1 0 0 0 1 0 0 0 1 1 0 0 1 1 1 1 1 0 1 0 0 1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 1 0 0 0 1 1 1 +0 0 1 +0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 1 1 0 0 1 1 0 0 0 0 1 0 1 0 1 1 0 1 1 1 0 0 0 1 0 0 0 1 1 0 1 0 0 1 0 1 0 1 0 1 1 0 0 0 0 1 0 0 0 1 1 0 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 0 0 1 1 1 1 1 0 1 1 0 1 0 0 0 1 0 0 0 1 +0 1 0 +0 0 0 0 1 1 1 0 0 1 0 0 1 0 1 1 0 0 0 1 0 0 0 1 1 0 0 1 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 0 1 1 1 1 1 1 1 0 0 0 1 0 1 1 1 0 1 0 0 0 1 0 1 1 0 0 0 1 0 1 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 1 1 0 0 0 1 0 1 0 +0 0 1 +1 1 1 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 0 1 1 0 0 1 0 1 0 1 0 0 1 0 0 0 1 1 1 1 0 1 1 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 0 +0 1 0 +1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 1 0 1 0 0 1 0 1 1 0 0 1 1 0 0 +0 1 0 +1 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 0 0 0 0 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 1 1 1 0 1 1 1 0 1 0 1 0 0 1 1 1 0 0 1 0 0 1 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 0 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 +0 0 1 +0 0 1 0 0 0 0 0 1 1 1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 0 1 1 0 0 1 0 0 1 1 1 1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 1 0 1 1 1 0 1 1 0 0 0 0 1 1 1 0 0 0 1 0 1 1 1 1 0 1 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 0 1 1 0 1 1 1 1 0 0 +0 0 1 +1 0 1 1 1 0 1 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 1 1 0 0 1 0 0 0 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 1 1 0 0 1 1 0 1 1 0 0 0 1 1 1 1 0 0 0 0 1 0 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 0 1 0 0 1 1 1 0 0 1 1 0 1 0 1 0 0 0 1 1 +0 1 0 +0 0 1 1 1 0 0 0 1 1 1 0 1 1 1 0 0 1 1 1 0 1 1 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 1 0 0 1 1 0 1 1 +1 0 0 +1 1 1 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 1 0 0 1 1 0 0 1 0 1 1 1 0 1 1 1 0 0 0 1 0 0 1 0 1 0 1 1 1 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 1 1 1 1 0 0 0 0 0 1 0 0 0 1 1 0 +1 0 0 +1 0 1 1 1 0 0 0 1 0 0 1 0 1 0 1 0 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 1 0 0 1 0 0 1 1 0 0 1 1 1 0 1 0 0 0 0 1 1 0 1 0 1 1 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 +1 0 0 +0 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 1 1 0 1 1 1 0 1 0 1 1 0 0 0 1 1 0 0 1 1 1 1 1 0 1 0 1 0 1 0 0 1 0 1 1 1 1 0 1 0 1 0 1 1 1 0 0 0 1 0 1 0 1 0 1 1 0 0 0 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 1 0 1 0 1 1 1 0 0 1 +1 0 0 +0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 1 0 0 1 1 1 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 1 1 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1 0 0 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 0 0 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 +0 0 1 +0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 0 0 1 1 0 0 0 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 1 0 1 0 1 0 1 0 0 1 1 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 1 0 +1 0 0 +0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 0 1 0 0 0 0 1 1 0 1 0 1 1 0 0 0 1 +1 0 0 +1 0 0 1 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 0 1 0 1 0 0 0 1 0 0 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0 1 1 0 1 1 1 1 1 1 1 1 0 0 0 0 1 0 1 1 0 1 1 1 0 1 1 0 1 1 0 0 1 1 1 1 1 1 1 0 0 0 1 0 1 1 0 0 0 1 0 0 0 1 1 1 1 +0 0 1 +0 0 1 1 1 0 0 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 0 1 1 1 1 1 0 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 0 0 1 1 1 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 1 0 1 1 1 0 1 1 1 1 0 0 1 1 0 1 1 +1 0 0 +1 0 1 0 1 0 0 1 0 0 0 1 1 0 1 0 0 1 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 1 1 0 0 1 1 1 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 1 0 0 0 0 0 0 1 0 1 1 0 1 0 0 1 0 1 0 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 1 0 1 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 +0 0 1 +0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 +1 0 0 +0 1 1 1 1 1 0 0 0 1 1 1 1 1 0 1 0 0 1 1 0 0 0 1 1 0 1 1 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 0 1 1 1 0 0 0 1 0 0 1 1 1 0 0 1 0 0 0 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 1 1 +0 0 1 +0 0 0 1 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 1 1 1 0 0 0 1 1 0 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 1 0 0 1 1 1 1 1 0 0 1 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 1 0 1 1 1 0 1 1 0 0 1 1 1 0 +0 1 0 +0 0 0 1 0 0 0 1 1 0 1 0 0 0 0 0 0 1 0 1 1 1 1 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 1 1 0 1 1 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 +0 1 0 +1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 0 1 1 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 1 1 0 0 0 1 1 1 0 1 1 0 0 1 1 1 1 0 +0 1 0 +0 0 1 1 1 1 0 1 1 1 1 0 0 1 1 0 0 1 0 1 0 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 0 0 1 0 0 0 0 1 1 1 1 0 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 0 0 1 1 1 1 1 +0 0 1 +0 0 0 0 1 0 1 1 0 0 0 0 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 0 0 1 0 1 0 +1 0 0 +1 1 0 1 1 0 1 0 0 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 0 1 1 1 1 1 1 0 0 1 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 1 1 0 0 1 1 1 1 0 1 0 1 1 0 1 1 0 1 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 1 1 0 1 0 0 1 1 0 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 0 0 1 1 0 0 1 0 1 1 0 +0 0 1 +0 0 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 0 1 1 0 0 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 +1 0 0 +1 0 0 0 1 0 0 0 0 0 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 +0 1 0 +0 0 1 1 0 0 0 1 0 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 1 0 1 1 1 1 0 0 1 1 1 0 1 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 0 1 0 0 0 1 1 0 1 1 1 0 1 0 1 1 1 0 0 1 1 0 +0 1 0 +0 0 0 0 0 1 0 1 1 0 1 0 0 0 1 1 0 1 0 1 0 0 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 0 0 1 1 1 1 0 1 1 0 1 1 1 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 0 1 1 1 1 1 0 1 1 0 1 1 +0 1 0 +0 1 1 1 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 0 0 1 0 1 1 0 0 1 0 1 0 0 1 1 1 1 0 0 +0 0 1 +1 1 0 1 1 0 0 1 1 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 0 0 1 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 0 1 1 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 0 0 0 0 0 1 0 0 0 1 1 0 1 1 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 0 0 +1 0 0 +0 0 1 0 1 0 1 1 1 0 1 1 1 0 0 0 0 0 1 0 1 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 1 1 0 1 0 1 0 0 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 0 0 1 1 1 1 0 1 +0 0 1 +0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0 1 1 0 1 1 0 0 0 1 1 0 0 1 1 0 1 1 1 0 1 1 1 1 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 1 +0 0 1 +1 0 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 1 0 1 0 1 1 1 1 1 1 0 1 1 1 0 0 1 0 1 1 0 0 1 0 1 1 1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 0 1 1 1 0 1 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 1 0 0 0 0 1 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 1 1 1 0 +0 0 1 +0 1 0 1 1 1 1 1 1 1 0 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 1 0 0 1 0 1 1 0 0 0 1 1 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 1 0 1 1 1 1 1 0 1 0 1 0 1 1 1 0 1 1 1 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 0 1 1 1 1 1 0 0 1 1 0 0 1 0 1 0 1 1 0 1 0 0 0 0 1 +0 1 0 +0 1 1 0 1 0 0 0 1 0 1 1 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 1 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 0 1 0 1 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 +1 0 0 +1 0 1 0 1 0 0 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 1 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 1 1 1 0 1 0 1 0 0 1 1 0 1 1 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 +0 0 1 +0 0 1 1 0 0 1 0 0 0 1 0 1 1 0 0 1 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 1 1 +1 0 0 +0 1 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 0 1 1 0 0 0 0 1 1 0 1 0 1 1 1 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 0 1 0 0 1 0 1 1 0 0 1 0 0 0 0 0 1 1 1 0 1 0 1 1 1 1 1 0 0 0 1 0 0 +0 0 1 +1 1 1 1 1 0 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 0 1 0 1 1 0 1 0 0 0 0 0 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 0 1 0 0 1 1 0 0 1 1 0 1 1 0 1 0 1 1 0 1 1 0 0 1 1 1 0 1 1 0 1 0 0 0 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 +1 0 0 +0 0 1 0 1 1 0 0 1 1 1 0 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 1 1 0 1 1 1 0 0 1 0 1 1 0 1 0 0 0 0 1 0 0 0 0 1 0 1 1 1 0 1 0 0 1 1 0 1 0 1 1 1 0 0 0 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 0 0 0 1 1 0 +0 0 1 +0 0 0 1 0 1 0 1 1 1 1 1 1 0 1 1 1 0 1 0 0 1 0 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 1 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 0 0 1 1 0 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 +1 0 0 +0 1 1 1 1 0 0 0 0 1 1 1 1 0 1 1 0 1 1 1 0 0 1 1 1 0 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 1 0 1 1 1 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 0 1 1 1 0 +0 1 0 +1 0 1 1 0 1 1 0 0 1 0 0 0 0 1 1 1 1 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 0 1 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0 0 0 1 1 0 1 1 1 0 1 1 1 0 0 0 0 0 0 0 1 0 1 0 1 1 0 1 0 0 1 0 1 0 0 0 1 1 0 0 1 0 1 1 0 +0 1 0 +0 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 0 0 0 0 1 1 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 1 1 0 1 0 1 1 0 0 1 1 0 0 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 0 +0 1 0 +0 1 0 1 0 1 0 1 1 1 0 1 0 0 1 1 1 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 0 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 0 1 0 0 1 0 1 1 0 1 1 0 1 1 0 1 0 0 1 1 1 1 1 0 1 1 1 0 1 1 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 1 0 1 0 1 0 0 +0 0 1 +1 0 1 1 1 1 0 1 0 1 1 1 1 1 1 1 0 0 1 1 0 1 1 1 1 0 0 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 +1 0 0 +1 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0 0 1 0 1 1 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 1 0 0 1 1 1 0 0 1 1 0 +0 1 0 +0 0 0 1 1 1 0 0 1 1 1 0 0 1 1 0 1 0 1 1 1 0 1 0 1 1 1 1 0 1 0 1 0 1 0 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 0 1 1 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 0 0 1 1 0 1 1 0 0 0 1 0 1 0 1 1 1 1 0 1 1 0 1 0 1 1 1 +0 0 1 +1 0 1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 1 1 1 0 0 1 1 1 1 0 1 0 1 1 0 0 1 1 1 1 1 1 1 0 1 1 1 0 1 0 0 0 0 1 0 0 1 1 1 0 0 0 1 1 0 0 1 0 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1 1 0 1 1 1 0 0 0 1 0 0 0 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 0 1 0 1 +0 0 1 +0 1 1 0 0 0 1 0 0 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 0 0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 1 1 1 1 1 0 1 0 0 0 0 1 0 0 +1 0 0 +1 1 1 1 0 0 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 1 0 1 0 0 1 0 0 1 1 0 0 0 1 0 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 0 0 1 0 1 0 1 0 1 1 0 0 1 1 1 0 1 1 1 0 0 0 0 0 1 1 1 +0 1 0 +0 0 1 0 0 0 0 1 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 0 0 0 1 0 1 1 0 0 1 1 1 0 1 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 0 1 1 1 1 0 0 0 1 1 1 0 +0 0 1 +1 0 1 0 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 0 1 0 0 0 1 0 1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 1 1 0 1 1 1 1 1 0 1 0 1 1 0 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 0 0 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 1 0 1 0 1 1 1 0 +0 0 1 +0 0 1 0 1 0 1 1 1 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 1 0 1 0 1 0 1 1 1 1 0 0 0 0 0 1 0 1 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 0 1 0 0 0 0 1 1 1 1 1 0 0 0 1 0 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 0 1 0 0 1 0 1 +0 0 1 +0 0 1 1 1 1 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 1 0 0 0 1 1 1 0 0 0 1 1 0 0 0 1 0 0 1 1 0 0 1 0 0 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 0 0 0 0 1 1 0 1 1 0 1 0 +0 0 1 +1 1 1 0 1 0 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 1 0 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 0 0 1 0 1 1 0 1 1 1 1 0 0 0 0 1 0 1 1 1 0 1 0 1 0 0 0 0 1 1 1 0 0 0 1 1 1 1 0 1 1 1 1 1 0 0 1 +0 1 0 +1 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 0 0 1 1 0 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 1 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 1 0 0 1 0 1 0 1 1 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 1 0 0 1 1 0 0 1 0 0 0 1 0 1 1 0 1 0 1 1 0 0 1 1 +0 0 1 +1 1 1 0 1 0 0 1 1 1 1 1 0 1 0 0 0 1 1 0 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 1 1 0 1 1 1 0 0 0 1 0 0 0 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 +0 0 1 +1 1 1 1 0 0 0 0 1 1 1 1 0 1 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0 1 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 1 1 1 1 1 0 1 0 0 0 0 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 1 0 1 1 1 0 1 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 +0 0 1 +0 0 1 1 0 1 1 1 0 0 1 0 0 0 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 0 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 0 0 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 1 1 0 0 1 1 0 1 0 0 1 0 0 1 0 0 1 1 0 0 1 1 0 1 1 0 1 0 1 1 0 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 0 1 1 0 1 +0 0 1 +0 1 1 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 1 0 0 1 1 1 0 0 0 1 1 0 1 1 0 0 1 1 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 0 1 0 1 0 1 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 0 1 1 1 0 1 1 0 +1 0 0 +0 0 1 1 1 0 0 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 1 1 1 0 1 1 1 0 0 1 1 1 1 1 0 1 0 0 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1 1 1 1 0 0 1 0 0 0 1 1 0 1 0 1 0 1 1 1 0 0 1 +0 0 1 +1 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 1 1 1 0 0 1 1 1 1 0 1 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 1 1 0 1 1 1 1 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 0 1 0 1 1 0 1 0 +0 1 0 +0 1 1 1 1 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 0 1 1 1 0 1 1 0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 1 1 1 0 1 1 1 1 1 0 0 1 0 0 1 0 1 0 1 1 0 1 1 0 0 0 0 0 1 1 1 0 1 0 1 1 1 1 0 1 0 1 1 1 1 0 0 0 1 1 0 0 1 0 1 +0 0 1 +0 0 0 1 0 0 0 0 1 1 0 1 1 0 1 0 1 1 1 1 1 1 0 1 0 0 0 1 0 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 0 0 1 0 0 1 1 0 0 0 1 0 0 1 0 1 1 1 1 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 1 1 1 1 1 1 1 0 1 1 1 0 1 0 0 0 1 1 0 0 0 0 1 1 0 0 1 0 1 0 1 1 1 1 0 +0 0 1 +0 0 1 0 1 1 0 0 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 0 1 1 0 1 0 0 1 0 0 1 1 1 1 0 0 1 1 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 1 1 1 0 1 0 0 0 0 0 1 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 1 1 +0 1 0 +0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 1 1 1 1 0 1 1 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1 1 1 0 1 1 1 0 0 0 0 1 0 0 1 1 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 0 0 0 1 1 0 +0 1 0 +0 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 1 0 1 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0 0 1 0 0 +0 1 0 +1 0 0 1 1 1 1 0 1 0 0 0 1 1 0 0 0 1 1 0 0 1 0 1 0 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 0 1 0 0 1 1 1 1 1 0 0 0 0 0 1 0 0 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 1 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 0 1 0 1 0 0 0 0 0 0 0 1 1 0 0 1 +0 0 1 +1 1 1 0 1 0 0 1 0 1 1 1 1 1 1 1 0 1 0 1 1 0 1 1 0 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0 0 1 0 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 0 0 1 1 1 0 1 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 1 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 0 0 0 1 1 0 1 1 1 1 1 0 +0 0 1 +1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 1 1 1 0 1 0 0 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 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 1 0 1 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 1 1 0 0 0 0 1 1 0 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 +0 1 0 +1 0 0 0 1 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 1 0 1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 1 0 1 1 0 0 0 0 +1 0 0 +0 1 1 1 1 0 1 0 0 0 0 0 1 0 1 1 0 0 0 1 1 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 0 0 0 1 1 1 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 +0 0 1 +0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 1 0 0 1 0 1 0 0 0 1 1 0 1 0 1 0 1 0 0 0 1 1 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 1 1 1 0 1 0 0 1 0 1 1 0 0 1 0 0 1 0 1 0 1 1 1 1 1 0 1 1 1 0 1 0 1 0 0 0 1 0 1 0 1 1 1 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1 +0 0 1 +0 0 1 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 1 0 1 0 1 1 1 0 0 1 0 1 1 0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 1 0 0 1 0 0 1 1 1 0 1 0 0 0 0 0 0 1 0 1 1 1 0 0 0 1 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 0 1 1 0 +0 0 1 +1 1 1 0 1 0 0 0 0 1 1 0 0 0 1 0 1 0 1 0 0 1 1 1 1 0 1 0 1 0 1 0 0 1 1 0 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 0 1 1 1 0 1 0 0 1 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 1 0 0 0 0 1 +0 0 1 +0 1 0 1 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 0 0 1 1 0 1 1 0 0 1 1 1 0 1 0 0 0 0 1 0 0 1 0 0 1 1 0 0 0 1 1 1 1 1 1 0 1 0 1 1 1 1 0 0 0 0 1 1 0 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 0 0 1 +0 0 1 +1 0 0 1 0 0 1 0 0 1 1 1 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 1 0 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 0 1 1 1 1 0 1 1 0 0 +1 0 0 +1 0 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 0 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 1 0 0 1 0 0 0 1 1 1 1 1 0 1 1 0 1 0 1 0 1 1 0 1 0 1 1 0 0 0 1 1 0 0 1 1 1 1 1 0 0 1 1 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 1 0 1 1 1 0 1 0 1 1 0 0 1 0 1 0 1 0 1 0 +1 0 0 +0 0 0 0 0 0 0 1 0 1 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 1 0 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 +1 0 0 +1 1 0 0 1 1 0 0 0 0 1 0 1 1 1 0 1 0 1 1 1 0 0 1 0 1 1 1 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 1 1 0 1 1 1 0 1 0 1 0 1 0 1 1 0 0 0 1 1 0 1 0 +1 0 0 +0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 0 0 1 1 1 1 0 1 1 1 0 0 1 1 0 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 0 1 0 0 1 1 1 1 1 0 1 1 1 0 0 +0 0 1 +0 1 1 0 1 0 0 1 0 1 0 1 1 0 0 0 1 1 1 1 1 0 0 1 0 0 0 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 0 0 1 1 0 0 1 0 1 0 1 1 1 0 0 1 0 0 1 1 1 1 0 0 1 1 0 1 1 1 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 1 0 0 0 0 1 1 0 1 1 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 1 0 0 0 +0 0 1 +0 0 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 1 1 1 0 1 1 0 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 0 0 0 0 1 0 1 1 1 0 1 0 1 1 0 0 0 0 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 +0 0 1 +1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 1 0 0 1 1 1 0 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 +1 0 0 +0 1 1 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 1 0 1 0 0 0 1 1 1 0 0 0 1 0 0 1 0 0 1 0 1 1 1 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 1 0 1 0 1 1 0 1 1 1 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 0 0 +0 0 1 +0 1 1 1 1 0 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 0 0 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 0 1 1 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 1 0 1 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 1 0 1 1 1 1 1 0 1 0 1 1 0 1 0 +0 0 1 +1 0 1 1 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 1 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 0 1 1 0 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0 1 1 1 1 1 1 1 0 1 0 0 1 1 0 1 1 0 1 1 0 0 1 0 1 1 1 1 0 1 0 0 1 1 1 1 1 1 0 0 0 0 1 0 1 1 0 1 1 +0 0 1 +1 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 1 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 1 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 1 0 1 1 0 1 0 +0 0 1 +0 0 1 1 0 0 0 1 1 1 1 1 1 0 0 1 0 1 0 1 0 0 0 1 1 0 0 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 1 1 0 1 1 0 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 0 1 0 0 0 0 0 1 1 0 1 0 1 1 1 1 0 1 1 1 1 0 0 1 0 0 0 0 1 1 1 1 +0 1 0 +0 1 1 0 0 0 1 1 1 0 1 0 1 0 0 1 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 1 1 0 0 1 1 1 0 +0 0 1 +0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 1 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 0 0 1 0 0 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 +0 1 0 +0 1 0 1 0 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 0 1 1 0 1 1 1 0 1 1 0 0 1 1 0 1 +0 1 0 +0 1 1 1 0 1 0 0 0 0 1 1 0 1 1 1 1 1 1 0 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 0 1 1 1 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 1 0 0 1 0 1 0 0 1 1 0 0 1 1 0 1 1 0 1 +0 1 0 +1 0 0 1 0 1 0 1 0 0 1 1 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 1 0 1 1 1 1 1 0 1 0 0 1 1 1 1 0 1 0 0 0 1 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 0 1 0 1 0 0 0 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 0 0 1 +1 0 0 +1 0 0 1 0 1 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 1 1 0 1 1 1 1 1 0 0 0 0 1 0 1 0 0 1 0 1 1 0 0 1 0 0 0 0 1 0 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1 1 0 0 0 1 1 1 0 0 1 1 1 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 1 1 0 0 +0 0 1 +0 1 1 1 1 1 0 0 0 1 0 0 1 0 0 1 1 1 0 1 1 1 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 0 0 0 1 1 1 0 1 1 0 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 0 0 1 1 1 0 +0 0 1 +0 0 1 1 1 0 0 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 1 1 1 0 1 1 1 0 0 1 1 1 1 1 0 1 0 0 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1 1 1 1 0 0 1 0 0 0 1 1 0 1 0 1 0 1 1 1 0 0 1 +0 1 0 +1 0 1 0 1 1 1 1 0 1 1 1 1 0 0 1 1 0 1 0 0 0 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 1 0 0 1 1 1 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1 1 0 0 1 1 1 1 1 1 1 0 0 1 1 0 1 0 0 +0 0 1 +0 0 1 1 1 0 0 0 1 1 1 0 1 1 1 0 0 0 1 1 1 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 1 1 1 0 0 1 0 0 0 1 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 1 0 0 1 1 0 +1 0 0 +0 1 1 1 0 1 1 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1 0 0 0 1 0 1 1 0 0 1 1 1 1 1 0 0 1 1 1 1 0 1 0 0 1 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 0 1 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 1 1 0 0 1 0 0 0 0 0 0 1 0 1 1 1 0 0 0 1 1 1 0 0 1 +0 0 1 +1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 1 1 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 1 1 0 1 1 0 0 0 0 1 1 +1 0 0 +1 0 1 1 1 0 1 1 1 1 1 0 1 0 1 0 0 0 0 1 0 1 0 0 0 1 0 1 0 1 1 1 1 0 0 1 1 1 0 0 1 1 1 1 1 1 1 0 0 1 1 0 1 0 0 1 0 1 0 0 0 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 0 1 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 +0 0 1 +0 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 0 1 0 1 1 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 1 1 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 1 0 0 1 0 0 +0 1 0 +0 1 0 1 0 1 0 1 1 1 0 1 1 0 0 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 1 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 0 1 0 1 1 1 0 0 0 1 1 1 1 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 0 1 1 0 0 1 1 1 1 1 0 0 1 1 1 1 0 0 1 1 0 +0 0 1 +1 1 1 0 0 0 1 1 0 0 0 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 1 0 0 0 0 1 1 0 1 0 1 1 0 0 0 1 0 0 +1 0 0 +1 1 1 0 1 1 1 1 0 1 0 0 1 1 0 1 1 0 0 1 1 0 0 1 0 1 1 0 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 0 1 0 0 1 0 1 1 1 0 1 1 0 1 1 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 1 1 0 0 1 0 1 0 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 0 1 1 1 0 1 0 0 0 0 0 1 1 1 1 0 0 1 0 1 +0 0 1 +0 0 1 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 1 0 0 1 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 0 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 +0 1 0 +1 0 0 1 0 1 1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1 1 0 0 1 0 1 0 1 1 1 0 0 1 1 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 1 1 1 0 0 0 1 0 1 1 1 +1 0 0 +1 0 1 1 0 0 0 1 1 1 0 1 1 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 0 1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 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 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 1 1 0 0 0 0 1 1 0 1 1 1 +0 0 1 +1 0 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 1 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 0 1 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 1 0 1 1 0 0 1 0 0 0 0 0 1 0 1 1 0 0 0 1 1 1 0 0 1 0 0 0 1 1 0 1 1 1 0 0 0 1 1 1 0 +0 0 1 +0 1 1 1 1 1 0 1 1 0 1 0 1 0 1 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 0 0 1 1 1 1 1 0 0 1 0 0 0 1 1 0 1 0 1 1 1 1 1 0 0 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 0 1 1 1 1 1 1 0 0 0 1 0 1 0 0 1 0 1 0 1 0 1 0 +0 1 0 +0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 0 1 1 1 1 0 1 1 1 1 0 1 0 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 0 1 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 1 0 0 +1 0 0 +1 1 1 0 0 0 1 0 0 0 1 1 1 0 0 0 1 1 1 1 1 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 1 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 1 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 1 0 0 1 1 0 1 0 0 0 0 1 0 0 1 0 0 1 1 0 1 0 1 0 0 1 0 0 +1 0 0 +0 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 0 0 0 0 1 1 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 1 1 0 1 0 1 1 0 0 1 1 0 0 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 0 +0 1 0 +1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 1 0 0 0 1 0 1 1 1 0 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 0 1 1 0 1 1 1 0 0 0 0 0 1 0 0 0 1 0 +0 1 0 +1 0 0 1 0 0 0 1 1 0 0 1 0 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 0 0 1 0 0 0 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 0 1 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 1 1 0 0 +0 0 1 +1 1 0 1 0 0 1 1 0 1 1 1 1 1 0 1 0 1 0 0 0 1 0 0 0 1 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 0 0 1 0 0 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 0 1 1 1 1 1 0 1 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 +0 1 0 +0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 1 0 1 0 1 0 0 1 1 0 1 0 0 0 1 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0 1 1 1 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 1 1 1 0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 0 1 0 1 0 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 0 1 1 1 0 +0 0 1 +1 0 1 1 1 0 1 1 1 1 0 1 0 0 0 0 1 0 0 1 1 0 1 0 1 0 0 0 0 1 1 1 1 1 1 1 0 0 1 1 0 1 0 1 0 0 0 1 1 0 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 0 +0 0 1 +0 1 1 1 0 1 0 0 0 0 1 1 0 1 1 1 1 1 1 0 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 0 1 1 1 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 1 0 0 1 0 1 0 0 1 1 0 0 1 1 0 1 1 0 1 +0 1 0 +1 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 1 1 0 1 1 0 1 0 1 1 0 1 1 1 0 0 1 1 1 1 0 1 0 0 0 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 0 1 1 1 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 +1 0 0 +1 0 0 1 0 0 0 1 0 1 1 0 1 1 0 1 0 0 0 1 1 1 1 0 0 1 0 0 1 1 0 1 1 1 0 1 1 1 0 0 0 1 1 0 1 0 0 1 1 1 1 1 1 1 0 0 0 1 0 1 0 1 1 1 1 1 1 0 0 1 1 0 1 0 0 1 0 1 0 1 0 0 0 0 0 1 1 1 1 1 1 0 0 1 0 0 0 0 1 0 0 0 1 0 0 1 1 0 0 1 0 0 1 1 1 1 0 0 1 1 +0 0 1 +1 1 1 1 0 1 0 1 1 0 1 1 1 0 0 0 1 1 0 1 1 0 1 1 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 1 0 1 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 1 0 0 0 0 1 0 1 1 1 0 0 0 1 1 1 1 0 0 1 1 1 1 1 +0 0 1 +1 1 1 0 0 1 0 0 0 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1 1 1 1 1 0 1 1 0 0 1 1 1 1 1 0 0 1 0 1 0 0 0 0 0 1 1 1 1 1 0 1 0 0 1 1 1 0 0 0 0 1 1 1 0 1 1 1 1 0 0 1 1 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 0 1 0 1 1 0 1 1 1 0 0 1 0 0 0 1 +0 0 1 +0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 1 1 0 0 1 0 1 0 1 1 0 0 1 1 0 1 1 1 1 1 1 1 0 0 1 0 1 0 1 0 0 1 1 0 0 1 0 0 1 1 0 0 1 0 0 0 0 0 1 1 1 0 1 0 1 0 1 1 0 0 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 1 0 1 1 0 1 1 1 0 1 0 0 1 1 0 1 0 0 0 +0 0 1 +1 0 0 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 1 1 0 0 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 1 +0 0 1 +0 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 1 1 1 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 0 1 0 1 1 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 1 0 +0 1 0 +0 1 0 0 0 1 1 1 1 0 1 1 1 0 1 1 0 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 0 1 0 1 1 1 1 1 1 0 1 1 1 0 0 1 0 0 0 1 0 1 0 1 1 1 0 0 0 1 0 0 1 1 1 1 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 1 +0 0 1 +1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 1 1 1 0 1 0 1 0 0 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 1 1 1 1 0 1 1 0 0 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 1 0 1 1 1 0 0 1 0 0 0 0 0 1 1 0 +0 0 1 +1 0 0 0 1 0 1 0 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 0 0 0 1 1 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 1 1 0 1 0 0 0 0 0 0 1 0 1 1 1 0 0 0 1 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 0 1 0 +0 1 0 +0 1 1 1 1 1 0 0 1 0 0 0 0 1 0 1 1 0 1 1 1 0 1 0 0 1 0 0 1 1 1 0 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 1 1 0 1 1 0 0 1 1 1 1 0 1 0 0 1 1 1 1 0 1 0 1 0 1 1 0 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 0 0 1 0 1 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 +0 0 1 +0 1 0 1 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 1 0 0 1 1 0 0 1 0 0 0 1 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 1 1 0 1 1 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 1 1 0 0 0 0 0 1 1 0 1 1 0 +1 0 0 +0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 0 1 1 1 1 1 1 0 0 0 0 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 0 0 0 0 1 0 1 1 1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 0 0 0 1 0 1 0 0 1 0 1 0 0 0 1 0 +0 0 1 +1 1 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 0 1 0 1 0 0 0 1 1 0 1 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 0 0 1 0 0 1 1 0 1 1 1 0 0 0 1 1 0 1 0 0 1 0 0 1 1 1 1 1 1 1 0 +0 0 1 +0 0 0 0 0 1 0 1 0 0 0 1 1 1 0 1 1 0 1 1 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 0 1 1 1 0 1 0 +0 0 1 +0 1 0 1 0 1 1 0 0 1 1 0 0 1 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 0 0 0 1 1 0 1 1 0 1 0 0 1 0 1 1 1 0 0 0 0 0 1 0 1 0 0 1 1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1 1 1 0 0 1 0 1 1 0 1 0 0 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 0 1 +0 0 1 +1 0 0 1 1 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 0 1 1 0 0 1 1 1 1 0 1 1 0 0 1 0 0 0 0 1 1 0 0 0 1 1 1 0 1 1 0 0 0 1 1 0 0 0 1 0 1 0 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 1 0 0 0 1 1 1 0 0 1 0 0 1 0 0 0 +0 0 1 +0 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 0 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 0 0 1 0 1 0 0 1 1 1 0 1 1 0 1 0 0 1 0 0 0 1 1 1 0 1 1 0 1 +0 1 0 +1 0 1 0 1 0 0 0 0 0 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 1 1 1 1 1 0 0 1 0 1 1 0 1 1 0 1 1 1 1 1 1 1 0 0 0 0 0 1 0 0 0 1 0 0 1 1 1 1 +0 1 0 +1 1 1 0 0 1 1 0 0 0 0 1 0 1 1 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 0 +0 0 1 +1 1 1 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 1 0 0 0 0 1 1 0 1 0 1 1 0 0 0 1 +1 0 0 +1 0 1 0 1 1 1 0 0 1 0 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 0 1 1 1 1 1 1 1 0 1 1 0 0 0 1 1 1 1 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 1 1 0 +1 0 0 +1 1 0 0 1 1 1 0 0 1 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 1 1 1 0 1 0 1 1 0 1 0 0 0 1 0 1 1 0 1 1 0 0 1 0 0 1 0 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 1 0 0 1 1 1 0 1 0 1 0 0 1 1 1 0 0 1 1 +1 0 0 +1 0 0 0 1 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0 1 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 0 1 0 0 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 1 1 1 0 0 1 0 1 0 1 1 0 +0 0 1 +0 1 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 1 0 1 0 0 1 0 0 1 1 1 1 0 1 1 1 0 1 0 1 1 1 1 0 0 0 0 0 0 1 +0 1 0 +1 1 0 0 0 1 1 1 0 1 1 0 1 1 0 0 0 0 1 1 1 1 1 1 1 0 1 0 1 1 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 1 1 0 1 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 0 1 1 0 0 1 0 0 1 1 1 1 1 1 1 1 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 0 0 0 1 1 0 0 0 1 0 1 1 1 0 1 +0 0 1 +0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 1 0 1 1 1 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 1 0 0 1 1 1 1 1 0 1 1 0 1 0 0 0 1 1 0 0 0 0 1 0 1 0 1 0 1 1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 +0 1 0 +1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 0 1 1 0 0 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 0 0 +0 0 1 +1 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 1 0 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 1 1 1 0 1 0 0 0 1 1 1 1 0 1 1 1 1 1 0 1 0 0 0 1 1 0 1 0 1 1 0 0 0 1 1 0 1 1 1 0 1 0 0 1 1 0 0 1 0 0 1 0 0 0 1 1 1 0 0 1 1 0 0 1 0 0 0 0 0 1 1 0 1 1 0 1 0 1 0 0 0 1 1 1 1 0 +1 0 0 +1 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 0 1 1 1 0 1 0 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 1 0 0 0 +0 0 1 +0 0 0 0 1 1 0 1 1 1 1 0 1 0 1 0 0 1 1 1 1 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 0 0 1 1 1 1 0 0 1 1 1 0 1 0 1 0 0 0 0 1 1 0 1 1 1 1 +1 0 0 +0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 1 1 1 1 0 1 0 0 0 0 +0 1 0 +0 1 1 0 1 1 0 1 0 1 0 0 1 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 1 1 1 0 1 0 1 1 1 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 1 +0 0 1 +1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 1 1 1 0 0 1 1 0 1 0 0 0 1 0 0 0 0 1 0 +0 1 0 +1 1 0 1 0 0 1 1 1 1 1 1 1 0 0 1 1 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 1 0 0 0 1 1 1 0 1 1 1 1 1 1 1 0 1 0 1 0 1 1 0 0 0 0 1 0 1 0 1 1 1 0 1 0 1 1 0 1 0 0 1 1 0 +0 0 1 +1 0 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 1 0 0 0 1 1 1 1 0 0 1 1 1 0 1 0 0 0 0 0 0 1 0 0 1 1 1 0 1 1 0 0 0 1 0 0 1 1 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 1 0 +1 0 0 +1 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 1 0 1 1 1 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 1 1 0 0 1 0 1 1 1 0 1 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0 1 0 1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 1 +0 0 1 +1 0 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 1 0 1 0 1 1 0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 1 0 1 0 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 0 0 0 0 1 1 1 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 +1 0 0 +1 0 1 0 0 0 1 1 1 0 1 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 1 0 1 1 1 0 0 0 0 1 1 0 1 1 0 1 0 1 1 0 1 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 1 0 +0 0 1 +0 0 1 1 0 1 0 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 0 1 0 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 0 1 0 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 +0 1 0 +0 1 0 1 1 0 1 0 1 1 1 1 0 1 0 0 0 0 1 1 1 1 1 0 0 1 0 1 0 0 0 1 0 1 1 1 1 0 0 1 0 0 0 1 1 0 0 0 0 1 0 1 1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 1 0 1 1 0 1 1 1 0 1 0 0 0 +0 0 1 +0 1 1 1 1 0 1 0 0 1 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 1 1 1 0 1 1 1 0 1 0 1 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 0 1 0 1 0 0 0 1 1 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 0 +0 0 1 +0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 1 0 1 0 0 1 0 0 0 0 1 1 0 0 1 0 0 1 1 0 0 1 1 1 0 0 1 0 1 1 0 0 0 1 1 1 1 0 1 1 1 1 1 1 0 0 1 1 0 0 1 0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 1 +0 0 1 +1 0 0 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 0 1 1 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 0 1 0 0 0 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 1 1 +0 0 1 +0 1 0 1 0 1 0 1 1 0 0 0 0 1 1 1 1 1 0 0 1 1 0 1 0 1 1 0 1 0 0 0 1 1 1 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 1 0 1 1 1 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 1 0 0 1 0 1 0 1 1 1 0 0 1 1 1 0 0 1 1 1 1 +0 1 0 +1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 1 0 1 0 1 1 1 1 0 1 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1 1 1 1 0 0 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 0 +0 0 1 +1 1 1 0 1 1 1 0 1 0 1 1 0 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1 1 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 1 1 0 1 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0 1 1 1 0 1 0 1 1 1 1 +0 1 0 +0 0 1 1 1 0 1 0 1 1 1 0 0 0 1 0 1 0 1 1 0 1 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 1 0 1 0 1 1 1 0 0 0 +0 0 1 +0 0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 0 1 1 0 1 1 0 1 0 0 1 0 1 1 1 0 0 1 0 1 0 0 1 1 1 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 1 0 1 0 1 0 1 1 0 1 0 0 0 0 0 0 0 1 +0 1 0 +0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 1 1 1 +1 0 0 +1 0 1 1 0 0 1 1 1 0 1 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 0 0 1 0 1 1 0 0 1 0 0 0 1 1 1 0 1 0 0 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 1 1 0 0 1 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 0 1 1 0 0 1 +0 0 1 +0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 1 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 0 1 0 0 0 0 0 1 1 0 1 1 1 1 0 0 1 1 0 1 0 0 0 0 1 +0 1 0 +1 1 0 0 1 1 0 0 0 1 0 0 1 1 1 1 0 0 1 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 0 1 1 1 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 0 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 1 0 1 1 +0 0 1 +1 1 1 1 0 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 1 0 1 1 1 1 1 0 1 0 0 1 1 1 1 1 1 0 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 1 0 1 0 1 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 0 1 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 1 1 1 0 1 1 0 0 1 0 0 0 0 1 0 1 1 0 0 +0 0 1 +1 1 1 0 1 0 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 1 0 1 0 0 0 0 0 1 1 0 1 1 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 1 0 0 1 0 1 1 1 0 0 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 1 1 1 1 1 1 0 0 1 0 1 1 1 1 1 0 1 1 1 0 1 0 1 0 1 1 0 1 1 1 0 0 0 1 0 0 0 0 +1 0 0 +0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 1 1 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 1 0 0 1 1 1 0 0 1 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 0 1 1 0 0 1 0 1 0 0 1 1 0 0 0 0 0 1 +0 1 0 +1 0 1 0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 1 0 1 1 1 1 1 0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 0 1 1 1 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 +0 1 0 +0 0 1 0 0 1 0 1 1 1 1 0 1 0 1 1 0 1 1 1 0 0 1 1 1 0 1 0 1 0 0 0 0 1 1 0 0 1 0 1 0 1 1 0 0 1 1 1 0 0 1 0 0 1 1 1 0 1 1 1 0 1 0 0 0 0 1 1 0 1 1 1 0 1 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 1 1 0 1 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 +0 0 1 +1 0 1 0 0 0 1 1 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 1 1 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1 0 1 0 0 1 1 1 0 1 1 1 0 1 1 0 0 1 1 +1 0 0 +0 0 0 1 1 1 1 0 0 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 1 0 0 1 1 0 0 1 1 1 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 1 0 0 0 1 0 0 0 1 1 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0 1 1 1 1 1 0 0 0 1 0 1 +0 0 1 +1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 +0 1 0 +0 0 1 1 1 0 0 0 0 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 0 0 1 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 0 1 0 0 0 1 1 0 1 1 1 1 1 0 0 1 0 1 1 1 0 1 1 1 0 0 0 0 0 1 1 1 1 0 1 1 1 0 1 0 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 0 0 0 1 1 0 1 1 1 1 1 0 0 +0 1 0 +0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 0 0 1 1 0 0 1 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 1 1 1 1 0 1 1 0 0 0 1 0 0 0 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 +0 1 0 +0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 1 1 1 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 0 1 1 1 1 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 +0 0 1 +0 1 0 0 0 0 1 1 1 0 0 1 1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 1 1 0 1 1 1 1 0 0 1 0 0 1 1 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 1 1 1 1 0 1 0 1 1 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 1 1 1 1 0 1 0 0 1 1 0 1 0 1 +0 0 1 +0 1 1 0 0 0 1 0 0 1 0 1 0 1 1 0 1 1 1 0 0 1 0 1 0 1 0 0 1 1 0 0 0 0 1 1 1 1 0 1 0 0 1 1 1 0 0 1 1 0 1 1 0 0 1 1 1 0 1 1 0 1 0 1 0 1 1 1 0 1 1 0 1 1 1 0 1 1 0 0 0 1 1 1 0 1 1 0 0 0 1 1 0 0 0 1 0 1 1 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 1 1 0 1 1 +0 0 1 +1 0 1 1 1 1 1 0 1 0 1 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 1 1 0 0 0 1 1 0 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0 1 1 0 1 0 0 0 0 1 1 1 0 1 1 0 1 0 0 1 1 1 0 0 1 1 1 1 0 1 0 0 1 1 1 1 0 1 0 0 0 0 1 1 1 0 1 +0 0 1 +1 0 1 1 1 0 1 1 0 1 1 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 1 1 0 1 0 0 1 0 1 0 1 0 0 1 1 1 1 1 0 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 1 0 1 0 0 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 +1 0 0 +0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 1 1 1 1 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 1 1 0 1 1 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 +0 1 0 +0 0 0 0 0 1 0 1 0 1 1 0 1 0 0 1 0 1 0 0 0 1 1 0 0 1 0 1 1 0 1 1 0 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1 0 0 1 1 0 +0 1 0 +1 0 1 1 1 0 0 0 0 1 0 1 1 0 1 0 1 1 1 0 1 1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 0 0 0 1 1 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 1 1 0 1 0 0 0 1 1 +0 0 1 +0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 0 0 1 0 0 1 1 1 1 1 0 1 1 0 0 1 1 1 0 0 1 0 0 0 0 0 1 0 0 0 0 1 1 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 1 1 1 1 1 1 1 0 0 0 1 1 0 0 0 1 0 1 1 1 1 1 0 0 0 0 0 1 0 1 1 0 0 1 0 0 0 1 1 0 +0 0 1 +0 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 0 1 1 0 0 0 1 1 0 0 1 1 1 1 1 0 1 0 1 0 1 0 0 1 0 1 1 1 1 0 1 0 1 0 1 1 1 0 0 0 1 0 0 0 0 1 1 1 0 0 0 1 1 0 +1 0 0 +1 0 1 1 1 1 0 0 0 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 0 0 0 0 1 1 1 1 1 0 1 0 0 1 0 1 1 0 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 1 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 1 0 0 0 1 1 0 +0 0 1 +1 1 1 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 1 1 0 0 0 0 1 0 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 0 0 0 0 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 0 0 +0 0 1 +0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 0 0 1 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 1 0 0 1 1 0 1 0 0 1 1 1 1 0 1 0 1 0 1 0 0 0 0 0 0 1 1 0 0 1 0 0 1 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 +0 0 1 +1 1 0 0 0 0 0 1 0 1 1 1 1 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 1 0 1 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 1 1 1 0 1 1 1 0 0 1 0 1 0 1 1 1 0 1 1 0 1 0 0 0 0 1 0 0 1 1 1 0 0 1 0 1 0 1 1 0 1 0 1 1 1 0 0 1 0 1 0 0 1 1 0 0 1 1 +0 0 1 +1 1 1 0 1 0 1 1 0 1 0 1 1 1 1 1 1 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 1 0 0 1 0 0 0 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 1 0 1 1 1 1 1 1 1 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 1 1 0 1 0 0 1 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 1 1 0 0 +0 1 0 +0 0 1 1 1 0 1 1 0 0 0 0 0 0 1 1 1 1 1 0 1 0 1 0 0 0 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 1 1 1 0 1 0 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 +0 1 0 +0 1 0 1 0 1 1 0 0 0 1 1 0 1 1 1 1 0 0 0 0 1 0 1 1 1 1 0 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 1 0 1 1 0 1 0 0 1 1 1 0 1 1 1 0 1 0 1 1 1 1 1 1 0 0 1 0 0 0 1 0 0 1 1 1 0 1 0 0 0 0 1 0 1 0 1 0 1 0 0 0 1 0 1 1 1 1 0 0 0 0 1 1 0 +0 1 0 +1 0 1 0 1 0 1 0 1 0 0 1 1 0 1 1 1 1 0 0 0 0 1 0 1 0 1 0 0 0 1 0 1 0 1 1 1 0 0 1 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 0 1 0 0 1 0 0 1 1 0 1 0 0 1 1 1 0 1 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 +0 0 1 +0 0 1 1 1 0 1 0 1 0 0 0 0 1 1 0 1 0 1 0 1 0 1 0 0 1 1 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 1 1 1 1 0 1 0 1 1 1 1 0 0 0 1 1 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 1 0 0 0 1 0 0 1 1 1 0 0 1 1 1 1 0 0 0 0 0 1 1 0 1 0 0 1 1 +0 0 1 +0 1 0 1 1 1 0 1 1 1 0 0 0 1 0 1 0 0 1 0 1 1 0 1 0 1 1 1 0 1 1 0 1 1 1 1 0 0 1 1 1 0 1 0 0 1 0 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 0 0 0 1 1 1 1 1 0 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 0 1 0 0 1 +1 0 0 +1 0 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 0 1 1 1 1 1 1 0 0 0 1 0 1 0 1 0 1 1 1 1 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 1 0 1 0 0 1 0 1 0 0 1 1 0 0 1 0 0 1 1 0 1 0 0 1 1 0 1 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 +0 1 0 +1 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 1 1 0 1 1 1 1 1 1 0 1 0 0 0 1 1 1 1 0 1 0 0 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 0 0 0 1 0 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 +0 0 1 +0 0 1 1 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 0 1 0 0 1 0 0 0 1 1 1 1 0 1 1 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 0 0 0 0 1 1 1 0 1 1 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 1 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 +1 0 0 +0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 1 0 1 0 0 0 1 0 1 1 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 1 1 0 0 1 1 1 0 0 0 1 1 1 1 1 0 1 0 1 0 1 1 1 1 1 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 +1 0 0 +1 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 1 1 1 0 1 1 0 0 0 0 0 0 1 1 1 0 1 1 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 1 0 0 1 1 0 1 1 0 +0 0 1 +0 1 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 0 1 0 1 1 1 1 0 1 1 0 0 0 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 0 +0 0 1 +1 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 0 1 1 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 1 0 1 0 +0 0 1 +1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 1 0 1 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 1 0 0 1 1 0 1 0 0 1 1 1 0 1 0 0 1 0 0 0 1 0 1 0 1 1 0 1 1 0 1 1 1 1 1 0 1 1 1 1 0 0 1 0 0 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 1 1 1 1 1 0 0 1 0 1 +0 0 1 +1 0 0 1 0 0 1 0 1 0 1 1 0 0 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 +0 0 1 +1 0 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 0 0 1 1 0 1 1 1 0 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 0 0 0 1 1 0 1 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 1 1 0 0 0 +1 0 0 +1 1 0 0 0 0 1 1 1 0 0 1 0 0 1 1 1 0 1 1 1 0 1 0 0 1 0 0 1 1 1 0 1 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 1 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 +0 1 0 +1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 1 0 1 1 0 1 1 1 1 1 1 1 1 1 0 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 1 0 1 0 1 1 0 0 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 1 1 1 +0 0 1 +0 1 0 1 1 0 0 1 1 0 1 0 1 0 0 0 0 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 1 0 0 0 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 1 1 0 1 0 0 0 1 0 1 0 0 1 1 0 +0 0 1 +0 0 1 1 0 0 0 1 0 1 0 1 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 1 1 1 0 1 0 1 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 1 0 1 1 1 1 0 1 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 0 1 1 0 1 1 1 0 1 0 1 1 0 1 1 1 +0 0 1 +1 0 0 0 1 1 1 1 0 1 0 0 1 1 1 1 0 1 0 0 0 1 0 1 0 1 0 1 1 0 0 0 0 1 1 0 0 0 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 0 0 0 1 1 0 0 1 0 0 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 0 1 0 1 1 1 1 1 0 0 1 1 1 0 0 1 0 0 +0 0 1 +0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 0 0 0 1 1 1 0 0 1 0 1 1 0 1 0 0 0 1 1 1 0 0 0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 1 0 1 1 1 1 0 1 1 0 0 0 1 0 1 1 0 0 0 1 0 0 1 1 0 +0 0 1 +1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0 1 0 0 0 1 1 0 1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 0 1 1 1 0 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 0 1 1 1 0 0 1 0 0 1 1 0 0 0 0 1 1 1 0 1 1 1 1 1 1 0 1 0 1 0 1 0 1 +0 0 1 +1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 0 1 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0 1 1 0 1 1 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 1 1 0 1 1 1 1 0 1 1 0 0 0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 0 +0 0 1 +0 0 0 1 1 0 1 1 0 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 1 1 0 0 1 0 0 1 0 0 1 1 0 0 0 1 1 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 1 0 0 1 1 1 0 1 1 0 1 1 1 1 1 1 1 0 0 0 1 0 0 0 1 1 0 0 1 0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 1 1 1 1 0 +0 0 1 +1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 0 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 0 0 1 0 1 1 1 0 1 1 1 0 1 0 1 0 1 1 1 1 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 +0 1 0 +0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 0 0 1 0 1 1 0 0 1 0 0 0 1 1 1 1 1 1 0 0 1 0 1 1 0 0 1 1 1 0 1 1 1 1 0 1 1 1 0 1 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 0 1 0 1 1 0 1 1 0 0 0 1 0 0 1 1 1 0 1 0 0 0 1 1 +0 0 1 +0 0 1 0 1 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 1 0 1 0 0 1 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 +0 0 1 +1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 1 1 0 1 1 0 0 0 0 1 0 1 0 0 0 1 0 1 1 0 1 1 0 1 0 1 0 0 0 1 0 1 0 0 1 1 1 0 1 0 0 0 1 1 0 1 0 0 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 1 0 1 0 0 1 1 0 1 0 1 1 1 1 0 +0 0 1 +0 1 0 0 1 0 0 1 0 0 0 0 1 1 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 1 0 0 0 1 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 1 1 1 0 0 1 1 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 1 1 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 0 1 1 1 +1 0 0 +0 1 1 0 1 0 0 1 1 0 1 0 0 1 0 0 0 1 0 0 0 0 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 1 1 0 1 1 1 0 0 0 0 1 1 0 1 0 1 0 1 0 0 0 1 1 1 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 0 1 0 1 0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 1 1 1 1 1 0 0 1 1 0 0 1 +0 0 1 +0 1 0 1 1 1 1 1 0 1 1 1 0 0 1 0 1 0 0 1 0 1 1 0 0 0 0 1 1 0 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 0 0 1 0 0 0 1 1 0 1 1 1 1 0 1 1 1 0 1 0 0 1 1 1 0 1 1 0 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 1 1 +0 0 1 +0 0 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 1 0 0 1 1 1 0 1 1 0 1 0 0 1 0 0 0 1 0 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 0 1 0 1 1 0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 1 1 0 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 1 +0 0 1 +0 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 0 1 1 0 0 0 1 1 0 0 1 1 1 1 1 0 1 0 1 0 1 0 0 1 0 1 1 1 1 0 1 0 1 0 1 1 1 0 0 0 1 0 0 0 0 1 1 1 0 0 0 1 1 0 +1 0 0 +1 0 0 0 0 1 0 1 0 0 0 0 0 1 1 0 1 1 1 0 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 1 1 0 1 1 0 0 0 0 0 0 1 1 1 1 1 0 1 0 1 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 +0 0 1 +1 0 0 0 0 1 0 0 0 1 0 0 1 1 1 0 0 1 0 0 0 0 0 0 1 1 1 0 0 1 1 1 0 1 0 0 0 1 1 0 1 0 0 0 0 1 1 1 1 0 1 0 0 0 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 1 1 0 1 0 1 0 0 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 0 0 1 1 1 0 0 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1 +0 0 1 +0 1 0 1 0 1 0 1 1 0 1 1 1 0 0 0 1 1 0 1 1 1 0 0 1 1 1 1 0 1 1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 0 1 0 1 1 0 1 0 1 1 0 0 0 1 1 1 1 1 0 0 0 1 1 0 1 1 1 0 1 0 0 0 0 1 1 1 1 0 0 1 0 0 1 1 1 1 0 1 1 0 0 1 1 0 1 0 1 0 0 1 1 1 1 1 0 1 1 0 0 1 1 0 1 1 +0 0 1 +1 1 0 0 0 1 1 0 1 0 0 1 1 1 1 1 0 1 1 1 1 1 1 0 1 0 1 0 0 1 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 1 0 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 0 0 0 0 1 +0 0 1 +1 1 1 1 1 1 1 1 0 0 1 1 1 0 1 0 1 1 0 1 1 1 0 0 1 1 1 1 1 1 1 0 0 1 1 0 1 0 0 1 0 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 1 1 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 1 1 0 1 0 1 0 1 0 0 1 0 0 0 1 1 0 1 0 1 0 0 1 1 0 +0 0 1 +1 0 0 1 0 1 1 1 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 1 1 1 0 0 0 1 1 1 1 1 0 1 1 0 0 1 0 1 1 1 1 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 0 0 0 1 1 1 1 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 1 0 0 0 0 0 0 1 +0 1 0 +0 1 0 0 1 1 1 0 1 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 0 1 1 0 0 0 1 0 1 1 1 0 0 1 1 0 0 0 1 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 1 1 1 1 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 +0 1 0 +0 0 0 1 0 0 1 1 0 0 0 1 1 0 1 1 0 1 1 1 1 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 1 1 0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 1 1 1 1 1 0 0 1 0 1 0 0 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 0 1 +1 0 0 +1 1 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 0 1 1 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 0 1 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 1 0 0 0 0 1 1 0 1 1 0 1 1 0 1 1 0 0 0 0 1 +0 0 1 +0 1 1 0 1 1 0 0 0 1 0 0 1 1 1 0 0 1 1 0 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 0 1 0 1 1 0 0 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 0 +0 1 0 +0 0 0 0 1 0 1 0 0 0 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 1 0 1 1 0 0 0 1 1 1 1 0 1 0 1 1 1 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 0 +0 1 0 +0 1 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 0 0 1 1 1 1 0 1 0 0 0 0 1 1 1 0 1 1 0 1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1 +1 0 0 +0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 0 1 0 1 1 1 1 1 0 0 0 0 1 0 1 0 1 0 0 1 0 0 0 0 1 1 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 1 0 0 1 0 1 +0 0 1 +0 1 1 0 1 0 0 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 1 1 0 1 0 0 1 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 0 1 1 0 0 0 0 0 0 1 1 0 1 1 0 1 1 1 0 0 0 0 0 1 1 0 0 1 +0 0 1 +0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 1 0 1 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 0 0 1 0 0 0 1 +0 1 0 +0 0 1 1 1 1 1 1 1 1 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 1 1 0 0 1 1 1 0 1 1 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 1 0 1 1 1 1 0 1 1 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 1 0 1 1 0 1 1 0 1 0 1 0 1 1 0 1 0 1 1 0 0 0 +0 1 0 +1 0 1 1 0 0 0 1 0 1 0 0 0 1 0 1 1 0 1 1 0 1 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 1 0 1 1 1 1 1 0 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 0 1 1 1 1 1 1 1 0 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 1 0 0 0 1 0 1 1 0 0 1 1 0 1 0 1 0 0 0 1 0 +0 0 1 +1 0 0 0 1 1 1 0 0 1 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 0 0 1 1 1 1 1 0 1 1 1 0 0 1 1 0 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 1 0 1 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 1 1 0 +0 0 1 +1 1 0 0 1 1 1 1 1 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 1 1 0 1 1 1 0 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 1 0 1 1 0 0 1 1 1 0 0 0 0 1 0 1 1 1 1 0 1 1 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 +0 0 1 +0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0 0 1 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 1 1 1 0 1 0 +0 1 0 +0 0 1 1 1 1 0 0 0 1 0 0 1 1 1 0 0 0 1 1 0 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 1 1 0 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 0 1 1 1 1 0 0 1 1 0 1 0 1 1 1 1 1 0 0 0 1 0 1 1 0 1 1 0 1 1 0 0 0 0 0 1 1 0 1 1 1 +0 0 1 +0 1 0 1 0 0 0 1 1 0 1 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 0 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 1 0 1 0 0 1 0 1 0 0 0 0 0 0 1 1 1 1 0 1 0 0 1 1 1 1 1 0 0 1 1 1 0 1 1 0 1 1 1 0 0 0 1 1 0 0 1 1 0 1 1 0 1 0 0 1 0 1 0 1 0 0 0 1 0 0 1 1 +0 0 1 +0 1 0 0 1 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 0 0 1 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1 0 0 1 +0 0 1 +1 1 0 1 1 1 1 1 0 0 1 1 1 0 0 0 0 0 0 1 0 1 1 1 0 0 0 1 0 0 0 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 1 0 1 0 0 1 1 0 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 1 1 1 0 0 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 0 0 0 0 0 0 0 0 +0 0 1 +0 0 0 0 1 1 1 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 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 1 0 1 1 0 0 0 1 0 1 1 0 1 1 1 0 1 1 1 0 0 1 1 0 1 0 1 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 0 +0 1 0 +1 1 0 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 1 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 0 1 0 0 0 0 1 1 0 1 1 0 1 1 0 0 0 1 1 0 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 0 0 0 0 +0 1 0 +0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 1 1 0 1 0 0 1 1 1 1 0 0 1 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 0 1 1 0 1 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 0 0 0 0 1 1 0 0 0 1 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 +1 0 0 +1 1 1 1 1 1 0 0 0 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 1 1 0 1 0 1 1 1 1 0 1 1 0 1 1 1 0 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0 0 0 +0 0 1 +1 0 1 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 0 1 0 1 0 0 0 1 1 0 0 0 0 1 1 0 1 1 0 0 1 1 1 1 0 1 1 0 1 0 0 0 1 0 0 0 1 1 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 0 1 0 1 0 0 1 0 1 0 0 0 1 0 1 0 1 0 +0 0 1 +1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 0 1 1 1 0 0 1 0 1 0 0 1 1 1 1 1 0 0 1 0 1 1 0 0 0 0 0 0 +0 1 0 +1 1 0 1 1 0 0 0 0 1 0 0 0 1 1 1 1 0 1 1 1 0 0 1 0 0 1 1 1 0 1 0 0 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 +0 1 0 +1 1 1 0 0 1 0 0 0 1 0 1 0 1 1 1 1 0 0 1 1 1 1 1 0 1 1 0 0 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 1 0 0 0 1 1 0 1 0 1 1 0 0 0 1 1 0 0 1 1 0 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 0 1 0 1 0 0 0 1 0 1 0 0 1 1 1 0 1 0 1 0 0 0 0 0 0 1 +0 1 0 +1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 1 1 1 1 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 1 1 0 1 1 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 +0 1 0 +1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 1 0 0 1 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1 1 0 1 1 1 1 1 1 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 1 0 0 0 1 1 1 0 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 +1 0 0 +0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 1 0 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 0 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 1 1 1 1 1 1 0 0 0 0 1 1 0 1 0 1 1 1 1 1 0 0 +1 0 0 +1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 1 0 1 1 0 0 1 1 1 0 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 0 0 1 0 1 0 1 1 1 0 0 0 1 1 0 0 0 0 +0 0 1 +0 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 1 0 1 0 0 0 0 1 0 1 1 0 0 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 0 1 0 1 1 1 1 +0 0 1 +0 1 1 1 0 0 1 0 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 1 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 1 0 0 1 1 1 0 1 1 0 1 0 0 1 0 1 1 1 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 +1 0 0 +1 0 1 0 0 0 1 1 1 1 1 1 1 0 0 1 1 0 0 1 0 1 1 0 1 0 1 0 1 1 1 0 1 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 1 0 1 0 0 1 1 1 1 0 0 0 1 1 1 1 0 1 1 0 0 0 0 0 0 1 0 1 1 0 0 0 0 1 1 0 1 1 0 0 +0 0 1 +1 1 1 0 0 1 0 0 1 1 1 0 0 0 1 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 1 0 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 1 0 0 0 1 1 1 0 +0 0 1 +0 0 1 1 1 0 1 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 0 0 1 1 0 0 1 1 1 1 1 0 1 1 1 1 0 0 0 1 0 1 1 1 0 0 1 1 0 0 0 1 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 1 1 1 1 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 +0 1 0 +1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 +0 0 1 +1 0 1 0 1 0 0 1 0 1 0 0 0 0 1 1 1 0 0 1 0 0 1 0 1 0 0 1 1 0 0 1 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 0 1 0 1 0 1 0 0 0 1 0 0 1 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 0 0 0 1 0 1 0 +0 1 0 +1 1 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 1 0 1 1 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 +0 1 0 +0 0 1 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0 0 0 1 1 0 0 1 0 0 0 0 0 1 0 1 0 1 0 1 1 1 0 0 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 0 1 0 1 1 0 1 1 1 0 0 1 0 0 0 0 1 0 1 1 1 0 0 0 1 0 1 1 1 0 1 1 0 1 0 1 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0 +0 0 1 +1 0 0 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 0 1 1 1 1 0 0 1 0 0 1 1 0 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 0 0 1 1 1 0 1 1 0 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 1 1 0 1 1 1 0 1 0 1 0 0 1 0 0 1 1 1 0 0 1 1 0 0 1 +0 1 0 +1 1 1 1 0 1 0 1 0 0 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 0 1 1 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 1 0 1 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 0 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 0 0 1 1 +0 0 1 +0 1 1 1 1 0 1 0 0 1 0 0 1 1 0 0 1 1 1 0 1 1 1 1 0 0 1 0 0 0 1 1 0 0 0 1 1 0 1 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 1 1 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 1 0 0 0 1 0 1 0 0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 +0 0 1 +0 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 0 0 1 1 0 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 1 1 0 0 1 0 1 0 0 1 1 1 0 1 1 1 1 0 1 0 0 1 1 0 1 0 1 0 1 0 0 1 1 1 0 0 1 1 0 1 1 0 0 0 1 1 0 0 1 0 1 1 0 1 1 1 1 1 1 0 1 0 0 +0 1 0 +1 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0 0 0 1 1 0 1 1 1 0 0 1 0 1 1 1 0 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 0 1 1 1 1 0 0 1 1 +1 0 0 +0 0 1 1 1 1 1 0 0 0 0 0 1 1 0 1 1 1 0 1 0 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 1 0 0 1 0 1 1 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 1 0 0 0 1 1 0 1 1 1 0 1 1 1 1 1 1 0 0 0 1 0 1 +0 1 0 +1 1 1 1 0 1 1 1 0 1 0 1 0 0 1 1 1 1 1 0 1 0 1 0 0 0 1 1 1 1 1 0 1 0 1 1 0 0 1 1 1 1 0 0 1 1 1 0 1 1 1 1 0 1 0 0 0 1 1 0 1 1 0 0 1 1 1 1 1 0 1 0 1 1 1 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 1 0 0 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 0 1 0 0 1 1 0 0 +0 1 0 +1 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 0 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 0 1 1 1 1 0 +0 0 1 +0 0 0 1 1 0 1 0 1 0 0 0 1 0 1 1 1 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 1 0 1 1 0 0 0 1 0 1 0 0 0 0 1 1 1 0 0 0 0 1 0 1 1 0 0 1 1 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1 0 1 1 1 1 0 1 1 0 0 0 1 0 0 1 0 0 1 1 0 0 0 1 0 1 1 1 1 0 0 0 1 0 0 +0 0 1 +0 1 0 0 0 1 0 1 0 1 1 0 0 1 0 1 1 1 1 0 1 0 0 1 0 1 0 1 0 1 1 0 1 1 0 0 0 1 1 0 0 1 1 0 1 0 1 0 0 1 1 1 1 0 0 1 0 1 0 0 1 1 1 1 1 0 0 1 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 0 1 0 0 0 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 0 0 1 1 0 0 0 0 0 +0 0 1 +0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 1 0 1 1 1 0 1 1 1 1 1 0 1 0 0 1 1 1 0 1 1 1 0 1 0 1 1 0 0 0 0 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 1 0 1 1 0 1 1 1 0 0 1 0 1 1 1 1 1 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 0 1 0 1 1 1 0 0 0 1 1 1 1 1 +1 0 0 +1 1 1 0 1 0 0 0 0 0 1 1 1 1 1 0 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 0 0 0 1 0 0 0 1 0 1 1 1 0 1 0 0 1 1 0 0 1 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 1 0 0 1 1 0 0 0 0 0 +1 0 0 +1 1 0 1 1 1 1 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 0 0 1 0 1 1 0 0 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 1 0 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 1 0 1 0 +1 0 0 +0 1 1 0 1 0 0 1 1 0 0 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 1 0 1 1 1 0 0 0 0 0 1 1 1 0 1 1 0 0 1 0 0 1 1 0 0 0 +0 0 1 +0 1 0 0 0 0 1 1 1 1 1 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 1 0 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 0 1 1 1 0 1 1 1 1 1 1 1 0 1 0 1 1 1 +0 0 1 +0 1 0 1 1 0 0 1 1 0 1 1 1 0 0 0 0 1 0 1 0 1 1 1 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 1 1 1 1 0 1 0 1 1 0 0 1 1 1 0 1 0 1 0 +1 0 0 +0 0 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 0 1 1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 1 0 0 1 1 0 0 1 1 1 0 1 1 1 0 +0 1 0 +0 0 1 1 1 0 1 1 0 0 0 0 0 0 1 1 1 1 1 0 1 0 1 0 0 0 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 +0 1 0 +1 1 1 0 0 1 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 1 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0 +0 0 1 +0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 1 1 0 0 1 0 0 0 0 1 1 1 0 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1 0 1 0 1 +0 1 0 +0 1 1 1 1 0 1 0 0 0 0 0 1 1 1 1 1 0 1 0 1 0 1 0 0 1 0 0 0 1 0 1 1 0 1 1 0 0 1 0 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 1 1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 1 1 0 1 0 0 0 0 1 1 1 1 0 +0 0 1 +0 1 1 0 0 0 1 0 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 0 0 1 1 1 0 1 0 1 1 0 1 0 0 1 1 1 0 1 0 1 0 1 1 0 1 1 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1 0 1 1 1 0 1 0 0 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 0 0 1 0 0 1 1 1 0 1 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 0 0 0 +0 0 1 +1 0 0 1 0 0 0 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0 1 1 0 1 0 0 0 0 0 0 1 1 1 0 1 0 1 1 0 0 1 1 1 1 0 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0 0 0 1 0 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 0 0 1 0 0 1 1 1 0 0 1 0 1 0 0 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 0 1 +0 0 1 +1 0 1 0 1 1 1 0 0 1 0 0 0 1 0 1 0 0 0 1 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 0 0 0 1 0 1 1 0 1 1 1 0 0 0 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 1 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 1 1 0 0 1 0 0 0 0 0 1 1 1 1 1 1 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 +1 0 0 +0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 0 0 0 1 1 0 1 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 1 0 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 0 0 +0 0 1 +0 1 0 1 0 1 1 0 0 0 0 1 1 0 1 0 0 1 0 1 0 1 0 0 0 0 1 1 1 0 1 1 1 0 1 0 1 1 0 1 1 1 1 0 0 1 0 1 1 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 1 1 0 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 +0 0 1 +1 0 1 0 1 0 1 0 0 1 0 1 1 1 1 1 1 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 1 0 1 0 1 1 0 1 0 1 1 0 1 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 1 1 0 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 0 0 0 +1 0 0 +1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 1 1 0 0 1 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0 0 1 1 0 0 0 1 1 0 1 0 1 0 1 1 1 0 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 1 1 0 +1 0 0 +0 0 0 1 0 1 0 1 1 1 1 1 1 0 1 1 1 0 1 0 0 1 0 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 1 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 0 0 1 1 0 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 +1 0 0 +0 0 0 0 0 1 0 1 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 0 0 0 0 1 1 0 0 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 1 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 1 0 1 1 1 1 0 +0 1 0 +1 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 0 0 0 0 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 1 0 1 0 1 1 1 0 1 0 0 1 1 1 0 1 1 1 1 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 0 0 1 0 0 0 0 1 1 1 1 1 1 0 1 1 0 0 1 1 1 +0 0 1 +0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0 1 0 1 1 1 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 +0 1 0 +0 1 1 1 1 1 1 1 1 0 1 0 0 1 1 0 1 0 1 0 0 0 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 0 0 1 1 0 0 0 0 0 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 0 0 0 0 1 1 0 +1 0 0 +0 1 1 0 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 +1 0 0 +1 0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 0 1 0 0 1 1 1 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 0 1 0 0 1 0 0 0 1 1 1 0 0 0 1 1 0 0 0 1 1 0 +0 0 1 +0 0 1 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 1 0 1 0 1 0 0 1 0 0 0 1 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 0 0 1 0 0 0 1 1 0 1 1 0 1 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 1 1 1 +1 0 0 +1 1 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 0 0 0 0 0 1 1 1 0 1 1 0 0 1 1 0 1 1 1 1 1 1 0 1 0 1 0 0 0 1 0 0 0 1 0 1 1 0 1 1 0 0 0 0 1 1 1 0 1 1 +0 0 1 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 0 1 0 1 0 0 0 0 1 1 0 1 0 1 1 0 0 1 0 0 0 0 1 0 1 1 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 1 1 1 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1 1 0 +0 1 0 +0 1 1 0 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 1 1 1 +1 0 0 +1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 1 0 1 0 0 1 1 0 1 1 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 0 0 1 1 1 1 1 1 0 1 1 1 1 0 0 1 0 0 0 +0 0 1 +1 0 0 1 0 1 0 1 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 1 1 0 1 1 1 0 0 1 0 1 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 1 1 0 0 1 0 0 0 1 1 1 0 0 0 1 1 0 1 0 1 0 1 1 1 0 0 0 0 0 1 1 0 1 0 0 0 0 1 0 1 0 1 0 1 1 1 1 1 0 0 1 1 1 0 1 0 +0 0 1 +0 1 0 0 0 1 1 0 1 0 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 1 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 0 0 0 1 1 0 0 0 1 0 1 1 0 0 1 0 1 0 1 0 0 1 1 1 1 1 1 0 0 0 1 0 1 1 1 +0 0 1 +1 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 1 0 1 1 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 1 0 1 0 1 1 1 +1 0 0 +0 1 0 1 1 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1 1 0 1 0 1 1 0 1 0 0 1 1 1 1 1 1 0 1 0 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 1 0 0 1 0 1 1 1 0 1 1 1 0 0 1 1 0 1 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 1 0 1 0 0 1 1 1 1 1 0 0 1 0 1 1 0 +0 0 1 +1 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 0 1 1 1 0 1 0 1 0 0 1 1 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 0 1 0 0 1 0 1 1 1 1 0 1 1 1 1 0 0 1 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 0 1 1 1 0 0 1 0 0 1 1 +0 0 1 +0 0 1 1 1 0 0 1 0 1 0 1 1 1 0 0 0 0 1 0 1 0 0 0 0 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 0 1 1 0 0 0 1 0 0 0 1 0 0 1 1 1 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 1 1 0 0 1 1 1 0 1 1 1 0 1 1 0 0 0 0 1 1 1 1 1 0 1 1 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 0 1 1 1 0 +1 0 0 +1 1 0 1 0 1 1 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 0 0 0 1 1 1 0 0 0 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 0 0 +0 0 1 +1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 0 0 1 0 1 1 1 1 1 0 0 1 1 1 0 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 1 0 0 1 1 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 0 1 1 1 0 1 0 1 0 0 1 1 0 1 1 1 1 0 0 1 0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 0 +0 0 1 +0 0 1 1 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 1 1 0 0 1 0 0 1 0 0 0 0 1 1 1 1 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 1 1 1 0 +0 0 1 +0 0 0 1 0 0 0 0 1 0 1 0 1 0 1 0 0 0 1 1 1 1 1 0 0 0 1 1 1 0 1 1 1 1 1 0 1 0 0 1 1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 0 1 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 1 0 0 1 0 0 +0 0 1 +0 1 0 1 0 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 0 1 1 0 0 1 1 0 1 0 1 0 1 1 0 0 0 1 0 1 0 1 0 1 0 0 1 1 1 0 0 1 1 0 1 1 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 0 1 1 1 0 1 1 0 0 0 0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 1 1 0 0 0 1 1 0 1 0 0 +0 0 1 +1 0 0 0 1 1 0 0 1 1 1 1 1 1 0 1 1 1 1 0 0 0 0 1 0 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 0 1 0 1 0 1 1 0 1 0 0 0 0 1 0 1 1 0 0 1 0 0 1 0 1 0 0 0 1 1 1 0 1 0 0 0 1 1 1 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 1 1 +0 0 1 +1 1 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 1 0 0 1 1 1 1 0 1 1 0 0 1 1 0 1 0 0 0 1 0 1 0 1 0 1 1 1 1 1 1 0 1 0 1 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 1 1 0 1 0 0 0 1 1 1 0 1 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 0 +1 0 0 +1 1 1 1 1 1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 0 0 0 1 0 1 0 0 1 1 1 0 0 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 1 1 0 1 1 1 0 +0 0 1 +1 0 1 1 1 0 0 1 1 0 1 1 0 0 0 1 0 0 0 0 1 1 1 0 1 1 1 0 0 1 0 0 0 0 0 1 0 0 1 1 0 0 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 1 0 0 1 1 1 1 0 0 1 1 1 0 1 0 1 1 0 1 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 0 1 0 0 0 0 1 1 0 0 1 0 0 +0 1 0 +1 1 0 0 1 1 1 0 0 1 1 1 1 0 0 1 0 0 1 1 0 1 1 1 1 0 0 0 0 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 1 0 0 1 1 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 1 1 0 0 1 0 +0 1 0 +1 1 1 1 0 1 1 0 1 1 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 1 0 0 1 1 1 1 0 1 1 1 1 0 1 0 0 1 1 0 1 1 0 1 1 0 0 1 0 1 1 1 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 1 1 0 1 1 0 1 0 1 0 1 1 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 1 0 0 1 1 0 1 +0 0 1 +1 0 0 1 0 0 0 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 1 0 1 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 0 1 0 0 0 0 1 1 1 1 0 1 1 0 0 1 1 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 +1 0 0 +0 0 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 0 0 1 0 1 0 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 0 0 1 1 1 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 0 1 1 1 0 0 1 0 0 1 1 1 1 0 0 0 1 0 1 0 1 0 0 1 1 0 1 1 1 0 1 0 0 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 +0 0 1 +1 1 1 0 1 0 1 0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 1 0 1 1 1 0 1 0 0 0 0 0 1 1 0 1 1 0 0 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 1 1 0 1 0 1 0 1 1 1 0 0 1 0 0 0 0 1 1 1 1 0 0 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 +0 0 1 +1 1 1 1 1 1 1 1 0 1 1 0 0 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 1 1 0 1 1 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 +0 0 1 +0 0 0 0 0 1 0 1 1 0 1 0 0 0 1 1 1 0 0 1 0 0 0 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 0 0 1 1 1 0 1 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 1 0 1 0 0 1 0 0 1 0 1 0 0 1 1 +0 1 0 +1 0 1 1 1 1 0 1 0 0 0 0 1 1 0 1 1 1 1 1 1 0 1 1 1 0 0 0 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 1 1 0 1 0 0 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 1 1 0 1 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 0 1 1 1 0 0 1 0 0 0 1 1 0 0 0 0 1 1 1 1 0 1 1 +0 0 1 +1 0 0 1 0 1 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 0 1 0 1 0 0 0 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0 0 1 0 1 +0 0 1 +0 0 1 0 1 0 0 1 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 1 0 0 0 0 0 1 1 1 1 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 1 1 1 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 1 +0 0 1 +0 1 1 0 1 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 1 1 1 0 1 0 0 1 0 0 0 0 0 0 1 1 1 0 0 1 0 1 0 1 0 1 0 0 1 1 1 1 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 1 1 1 0 1 0 1 0 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 +1 0 0 +1 0 1 0 0 1 0 1 1 1 1 0 1 0 1 1 1 0 0 1 0 0 1 1 1 0 1 0 0 1 0 0 1 1 1 1 1 1 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 1 1 1 0 0 0 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 1 1 0 1 0 0 1 1 0 +0 0 1 +0 0 0 1 1 1 1 1 0 0 1 1 0 0 0 1 0 0 0 1 1 1 0 0 1 1 1 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 0 1 1 1 1 1 1 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 0 1 0 1 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1 0 0 1 0 1 0 1 1 0 +0 0 1 +1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1 1 0 1 1 0 1 1 0 0 1 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 0 0 1 1 1 1 0 0 0 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 0 1 +0 1 0 +1 0 1 1 1 0 0 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 1 0 0 0 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0 1 0 0 1 0 1 1 1 0 0 0 1 1 0 1 0 0 1 0 0 1 1 0 1 0 0 1 0 0 0 0 0 1 1 0 1 0 +0 1 0 +0 1 0 1 0 1 1 1 1 0 1 1 1 0 0 1 0 1 1 1 1 1 1 1 0 0 1 1 1 0 1 0 0 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 0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 0 1 1 0 0 0 1 1 1 1 1 0 1 1 0 1 1 1 0 0 1 0 1 0 1 0 0 1 1 1 0 1 0 0 1 0 1 0 1 0 1 +0 1 0 +0 0 1 0 1 1 0 0 0 0 1 1 0 0 0 1 0 1 1 0 1 1 1 0 1 1 1 0 1 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 1 1 1 0 1 0 0 0 0 0 1 0 1 1 1 0 0 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 0 0 1 0 1 0 1 0 +0 1 0 +1 0 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 0 1 0 1 1 1 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 0 1 1 0 0 1 1 0 0 1 0 1 0 +0 0 1 +0 1 1 1 1 0 0 0 0 0 0 1 1 0 1 0 1 1 1 1 0 1 0 1 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 0 1 1 1 0 0 0 +0 0 1 +0 0 0 1 1 1 1 0 0 1 0 0 0 0 1 1 1 1 1 1 1 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 1 1 0 0 1 1 1 0 0 0 1 0 0 0 1 0 1 0 1 1 0 1 1 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 1 1 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 1 1 +1 0 0 +1 1 0 1 0 1 1 1 0 0 1 0 1 1 1 1 1 0 0 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 +0 1 0 +1 0 0 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 1 1 0 1 0 0 1 0 0 1 0 0 1 1 0 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 1 0 1 0 1 0 0 0 1 0 1 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0 0 1 1 0 +0 0 1 +1 1 0 1 0 1 0 0 1 1 1 1 1 1 1 1 0 0 0 1 0 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 1 1 1 1 0 1 0 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 0 0 0 1 1 0 1 0 1 1 1 0 1 0 0 1 0 1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 0 1 0 1 0 0 0 1 0 0 +0 1 0 +1 0 0 0 0 0 1 0 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 1 0 1 1 1 0 0 0 1 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 0 0 1 0 1 1 0 0 0 0 1 0 1 0 1 0 1 1 0 1 0 0 0 1 1 0 0 0 0 1 1 +1 0 0 +0 1 1 1 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 1 1 1 0 0 0 0 1 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 0 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 0 1 1 0 0 1 0 0 1 0 1 0 0 1 1 0 1 1 1 1 1 1 0 0 0 1 0 0 1 1 0 0 1 1 +0 0 1 +1 0 0 1 1 1 1 1 1 1 0 1 1 0 0 1 1 1 1 0 1 1 1 1 1 0 0 1 0 1 0 0 0 1 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 1 1 1 1 1 0 0 0 0 0 1 1 0 1 1 1 0 0 1 1 0 1 1 0 1 1 1 0 0 0 1 1 0 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1 1 1 1 1 0 1 1 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 0 +1 0 0 +1 1 0 1 1 0 1 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 1 0 1 1 1 0 0 1 1 0 0 1 0 0 0 0 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 0 0 1 1 1 0 1 1 0 0 1 1 0 0 1 0 1 0 0 1 1 0 0 0 1 1 0 0 1 0 1 1 0 0 0 1 0 1 1 1 0 1 0 +0 0 1 +0 1 1 1 1 0 1 1 0 1 0 0 1 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 1 0 0 0 1 1 0 1 1 1 1 1 1 0 1 0 1 0 0 1 0 1 1 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 1 1 0 0 1 1 0 0 1 1 0 1 1 0 0 +0 0 1 +0 0 0 1 0 0 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 1 0 0 0 1 1 0 1 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 +0 1 0 +0 1 1 0 1 0 1 0 1 0 0 0 1 1 1 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 0 1 0 0 1 0 0 0 1 1 0 0 1 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 0 0 0 1 1 0 1 0 0 1 0 0 0 +0 0 1 +0 1 1 0 1 1 1 1 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 0 1 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 1 +1 0 0 +1 0 0 1 1 0 0 1 0 1 0 1 1 0 1 0 0 1 1 1 1 1 0 0 0 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 0 1 1 0 0 0 1 1 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 1 +0 0 1 +1 1 1 1 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 1 0 0 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 1 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 0 1 0 1 1 0 0 0 1 1 1 1 0 1 0 1 +0 0 1 +1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 1 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 +0 1 0 +0 1 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 1 1 1 1 0 0 1 1 1 1 1 0 1 0 0 0 1 1 0 1 0 1 0 0 1 0 0 0 1 1 1 0 0 1 1 0 0 0 1 1 0 1 0 1 1 1 1 1 0 1 0 1 0 0 1 1 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 1 1 0 0 1 1 0 1 1 0 1 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 1 1 1 +1 0 0 +0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 0 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 1 1 1 0 1 1 0 1 0 0 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 1 0 1 1 1 0 1 1 0 1 1 0 0 0 1 1 1 0 1 0 1 0 0 1 +1 0 0 +0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0 1 1 0 0 0 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 0 0 0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 1 0 0 0 0 1 0 1 1 0 1 1 0 1 0 0 0 1 1 1 1 0 +0 1 0 +0 1 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 0 1 1 1 1 0 0 0 0 1 0 0 1 1 1 0 1 0 1 0 1 1 1 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 0 0 0 1 0 1 1 0 1 0 1 0 0 0 1 1 1 1 1 0 0 1 1 0 1 1 +0 0 1 +1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 0 0 0 0 1 1 1 0 1 1 0 0 0 0 1 1 1 0 1 1 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 1 0 1 1 1 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 +0 0 1 +1 1 0 0 0 1 1 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 1 1 1 0 0 0 1 1 1 0 0 0 1 0 1 1 1 1 0 1 0 1 0 0 1 1 1 1 0 1 0 1 1 0 0 1 1 1 0 0 1 1 1 1 1 0 1 0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 1 1 1 0 1 0 0 0 1 1 0 1 0 0 0 0 +0 0 1 +1 0 1 0 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 0 1 0 0 0 0 1 0 1 1 1 1 0 1 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 1 0 0 0 0 1 1 1 1 1 1 1 0 1 0 1 0 0 0 0 1 0 0 0 1 0 1 +1 0 0 +1 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 0 1 1 1 1 0 0 0 1 1 0 1 1 1 1 0 0 0 0 0 0 1 0 1 0 1 1 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 0 1 1 0 1 1 0 1 1 1 1 +1 0 0 +0 1 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 1 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 +1 0 0 +1 1 0 0 1 1 1 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 1 1 1 0 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1 1 0 0 1 0 1 1 1 1 1 0 1 0 0 0 1 0 1 1 0 0 1 0 1 1 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 1 1 1 0 +0 1 0 +0 1 1 1 0 0 0 0 1 1 1 0 1 1 1 0 1 1 1 1 1 0 0 1 0 0 0 1 1 1 1 1 0 0 0 1 1 1 0 0 1 1 1 0 0 1 0 1 1 1 0 0 0 0 1 1 0 1 1 0 0 1 1 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 0 1 1 1 0 1 1 1 1 1 1 1 0 0 1 0 0 0 0 +0 1 0 +0 1 1 1 0 0 1 0 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 1 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 1 0 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 +1 0 0 +1 1 0 0 0 1 0 1 0 1 1 1 1 0 0 0 1 1 0 0 1 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 1 0 1 1 1 0 0 0 1 1 0 0 1 1 0 1 1 1 1 1 1 0 1 0 0 1 1 1 0 1 1 1 1 0 1 1 0 0 1 1 1 1 1 1 0 1 0 0 0 0 0 1 1 0 0 1 0 1 1 1 1 1 1 0 1 0 1 0 0 1 1 1 1 1 1 0 0 +0 0 1 +0 0 1 1 1 0 1 1 1 1 0 1 0 0 0 1 0 0 1 0 0 0 1 1 1 1 1 0 1 1 0 1 0 1 1 1 1 1 1 0 0 1 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 1 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 0 1 0 0 0 0 0 1 0 1 0 1 1 0 1 1 1 0 0 1 +0 1 0 +1 0 0 1 0 0 0 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 1 0 1 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 0 1 0 0 0 0 1 1 1 1 0 1 1 0 0 1 1 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 +1 0 0 +1 1 0 1 1 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 0 1 0 0 0 0 1 1 1 0 1 1 1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 1 0 0 0 1 0 1 1 0 0 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1 0 0 1 1 1 0 0 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 1 1 1 0 1 1 1 1 0 0 +0 0 1 +0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 0 0 0 1 0 1 0 0 0 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 1 0 0 0 0 0 1 0 1 0 1 1 0 1 0 1 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 0 1 0 1 0 0 0 0 0 0 1 1 0 1 1 0 0 0 +1 0 0 +0 1 1 1 0 0 0 0 1 0 0 1 1 0 1 0 0 1 0 0 0 0 1 1 1 1 1 1 1 0 1 0 0 0 1 1 0 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 1 0 1 1 0 1 1 1 0 1 0 1 0 0 0 0 1 1 1 0 0 0 0 1 0 0 1 1 0 1 0 1 0 1 0 0 1 1 1 1 0 0 0 1 0 1 0 +1 0 0 +1 0 0 1 1 1 1 0 1 1 1 0 1 0 1 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 1 0 1 1 0 1 0 0 0 0 1 1 0 1 0 1 0 1 0 0 1 0 0 0 1 1 0 1 0 1 0 0 1 0 0 1 1 1 0 1 0 1 0 0 1 1 0 1 0 +0 0 1 +1 1 0 1 0 0 0 1 0 0 0 1 0 1 1 1 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 1 0 1 1 1 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 0 0 1 1 0 1 0 1 1 1 1 0 0 1 0 0 1 0 1 0 0 0 0 1 1 1 0 +0 1 0 +1 0 1 0 0 1 0 0 0 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 0 1 0 1 1 0 1 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 +0 0 1 +1 0 0 1 0 1 1 1 1 1 1 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 1 0 0 0 0 1 1 0 1 1 1 1 0 1 1 0 0 0 0 1 0 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 1 0 +1 0 0 +0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0 1 1 1 0 0 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 +1 0 0 +1 1 1 1 1 1 1 0 0 1 0 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 0 0 1 1 0 1 1 1 1 0 1 0 1 0 1 1 1 1 1 1 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 1 +1 0 0 +0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1 1 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1 0 0 1 0 0 0 1 1 0 1 0 0 1 1 0 0 1 0 0 0 1 0 0 1 1 1 1 1 1 1 0 1 0 0 1 1 1 1 1 1 0 1 0 1 0 0 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 0 +0 0 1 +1 0 0 0 1 1 1 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 0 0 1 1 1 1 1 1 1 1 0 0 0 1 0 0 1 1 0 1 1 1 0 1 1 1 0 1 0 1 1 1 1 1 1 1 0 0 0 1 0 1 1 0 0 1 0 1 1 1 1 1 0 0 1 1 0 1 1 1 0 1 1 0 0 1 0 1 1 0 1 1 0 1 1 0 0 1 +0 0 1 +0 1 1 0 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 0 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 +0 1 0 +0 0 1 1 1 0 1 1 1 0 0 0 0 0 1 1 1 1 0 0 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 1 0 1 0 1 1 0 0 0 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 +1 0 0 +1 0 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 0 0 1 1 1 0 1 0 1 1 1 1 1 0 1 1 1 0 1 1 1 0 1 0 0 1 1 1 +0 0 1 +1 0 1 0 1 1 1 0 0 0 0 1 0 1 1 1 0 0 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 1 0 0 1 0 0 0 0 1 1 1 0 1 1 1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 1 1 1 0 1 0 0 1 0 0 0 0 1 1 +0 0 1 +1 0 0 1 1 0 1 0 0 1 1 1 1 0 0 1 0 1 1 0 0 0 1 1 0 1 0 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 0 1 1 0 1 0 1 1 1 0 1 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 1 0 1 0 1 0 0 1 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 1 0 +1 0 0 +0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 0 1 0 1 1 0 0 0 0 0 1 1 1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 0 1 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 1 0 0 0 1 1 0 0 1 1 1 0 0 1 1 0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 1 1 1 0 1 0 0 1 0 1 0 0 1 1 +1 0 0 +0 1 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 1 0 1 1 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 1 1 +1 0 0 +0 0 0 1 0 1 0 0 0 0 1 1 0 1 1 0 0 1 0 1 0 1 1 1 0 0 0 1 0 0 0 1 1 0 0 1 0 1 1 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1 1 1 0 0 1 0 0 0 0 1 1 1 1 0 0 0 1 1 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 1 0 1 0 0 0 +0 0 1 +0 0 0 1 0 0 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 0 1 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 1 0 0 1 1 1 1 1 0 1 1 1 1 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 0 1 0 0 0 0 +0 0 1 +1 1 0 1 0 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 1 0 1 1 0 1 1 0 0 1 0 1 1 0 1 1 1 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 1 0 0 1 1 +0 0 1 +1 1 1 0 0 0 1 1 1 1 1 0 1 0 1 0 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 0 0 1 0 1 1 0 0 0 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 1 +1 0 0 +0 0 0 1 1 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 1 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 +0 1 0 +0 1 0 0 1 1 1 1 1 0 1 0 1 0 0 0 1 1 1 1 0 1 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 0 1 1 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 +0 1 0 +0 0 0 0 0 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 0 1 1 0 1 1 1 0 0 1 1 1 0 1 0 1 1 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 0 1 1 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 1 0 1 1 1 1 0 0 0 +1 0 0 +0 0 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 0 1 0 1 0 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 0 1 0 0 0 0 1 1 0 0 0 0 1 0 1 1 0 +0 1 0 +1 0 1 0 1 0 0 1 1 1 0 0 0 0 0 1 0 0 1 1 0 0 0 1 0 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 0 0 0 1 0 0 0 1 1 0 1 0 1 1 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 +0 1 0 +0 0 0 1 1 1 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 0 1 1 1 0 1 1 0 1 0 1 1 0 1 0 0 1 0 0 1 1 0 1 1 0 0 1 0 0 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 0 1 1 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 +1 0 0 +1 1 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 1 0 1 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 0 0 0 1 0 0 +0 1 0 +0 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 1 1 1 1 0 1 0 0 1 0 0 0 1 1 1 1 1 1 0 0 1 0 0 1 0 1 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 0 0 1 1 1 0 +1 0 0 +0 1 1 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0 1 1 1 0 0 1 0 1 0 1 0 1 0 1 1 0 1 0 0 1 0 1 0 1 1 1 0 1 1 1 0 0 1 1 1 1 0 0 0 0 1 0 1 1 1 1 0 0 0 1 0 1 0 1 0 1 0 0 1 1 1 0 1 0 0 1 0 1 0 1 1 1 0 1 0 1 1 0 0 0 1 1 1 1 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 1 0 1 +0 0 1 +0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 1 0 1 1 1 0 1 0 1 1 1 0 1 1 1 1 0 0 1 1 0 0 0 0 0 1 1 1 1 0 1 1 0 0 0 0 1 1 1 1 1 1 1 0 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0 1 1 0 +0 1 0 +1 0 0 0 0 0 1 0 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 1 0 1 1 1 0 0 0 1 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 0 0 1 0 1 1 0 0 0 0 1 0 1 0 1 0 1 1 0 1 0 0 0 1 1 0 0 0 0 1 1 +1 0 0 +1 1 0 0 1 1 0 1 1 0 0 1 0 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 0 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 1 1 1 1 0 1 1 +0 0 1 +0 0 0 1 1 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 0 1 1 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 1 0 1 1 1 0 1 1 0 1 0 1 1 0 0 0 1 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 1 1 1 1 1 1 0 1 0 1 1 0 1 +0 0 1 +0 1 0 0 0 1 0 0 0 0 0 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 0 0 1 0 1 0 0 0 1 1 0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 0 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 +0 0 1 +1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 1 1 0 0 1 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0 0 1 1 0 0 0 1 1 0 1 0 1 0 1 1 1 0 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 1 1 0 +1 0 0 +1 0 1 1 0 0 0 1 1 1 0 0 1 0 0 1 0 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 0 0 1 0 0 0 1 0 1 1 1 1 1 0 1 0 1 0 1 +0 0 1 +1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 0 0 1 1 1 0 1 1 0 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 0 0 0 1 1 1 0 1 1 0 0 0 0 0 1 0 0 0 0 1 1 0 0 +0 1 0 +0 1 1 0 1 0 1 0 0 0 0 0 0 1 0 0 1 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 0 0 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 0 1 1 0 0 1 1 1 0 1 0 1 0 +0 0 1 +0 0 1 0 0 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 0 1 0 1 1 0 0 0 0 0 1 0 1 1 0 0 0 0 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 1 0 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 1 1 0 1 0 0 1 0 0 1 1 +1 0 0 +0 0 0 1 1 1 0 0 1 1 0 0 1 1 0 1 1 1 1 1 1 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 0 0 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 0 1 1 0 1 0 0 1 0 1 0 1 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 0 1 1 0 0 1 1 1 1 1 0 +0 1 0 +1 0 0 0 1 1 1 0 1 1 1 0 1 0 0 1 1 1 1 1 0 0 1 1 0 0 1 0 0 1 0 0 1 1 1 0 1 0 1 1 1 1 0 1 1 1 1 0 1 0 1 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 1 1 1 0 1 0 1 0 0 1 0 1 1 1 1 1 0 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 +0 0 1 +0 1 1 1 1 1 1 0 1 0 0 0 1 1 1 1 0 1 1 0 1 1 0 0 0 0 1 0 0 1 0 0 0 0 1 1 1 0 1 0 1 1 0 1 0 0 1 1 1 0 0 0 1 1 0 0 1 1 1 0 1 0 0 1 1 0 1 1 1 1 1 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 1 1 1 0 1 0 0 0 +0 0 1 +0 1 0 0 0 1 1 1 1 0 0 0 0 0 1 0 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 0 1 0 0 1 0 0 1 1 1 0 0 0 0 0 0 1 0 0 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 1 1 +1 0 0 +1 1 0 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 1 0 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 1 0 1 0 0 0 1 1 0 0 0 1 1 0 1 0 0 1 0 0 0 1 1 0 0 0 0 1 +0 1 0 +1 0 0 1 1 0 0 1 1 1 0 0 1 0 0 1 0 0 0 0 1 1 1 0 1 0 0 1 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 0 1 0 1 1 1 0 0 1 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 1 0 0 0 1 1 1 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 +1 0 0 +1 0 1 1 0 0 0 1 0 0 0 1 0 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 1 0 0 1 1 1 1 0 1 1 0 1 1 0 1 1 1 0 0 1 0 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 0 1 1 0 0 1 1 0 1 1 1 0 1 0 0 1 0 1 1 0 1 1 1 1 0 0 0 0 +0 0 1 +1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 1 1 0 0 0 1 0 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 1 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 1 +0 1 0 +0 0 1 1 0 0 0 1 0 1 1 1 1 0 1 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 0 0 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 0 1 1 1 1 0 1 1 0 0 1 1 1 1 0 0 +0 0 1 +0 1 1 1 0 1 1 0 0 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 1 0 1 1 0 0 0 0 1 0 1 0 0 1 1 0 1 1 0 1 1 1 1 1 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 0 1 0 1 1 0 1 1 1 0 0 1 0 1 1 0 1 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 +0 0 1 +1 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1 1 0 1 1 0 0 0 1 1 1 0 1 0 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 1 0 1 1 1 0 1 0 0 0 1 0 0 +0 0 1 +0 0 0 0 0 0 1 1 1 0 1 0 0 1 0 0 0 0 0 0 1 0 1 1 0 0 1 1 1 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 1 0 1 0 1 0 1 1 0 1 0 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 1 1 +1 0 0 +0 0 0 0 1 1 0 1 0 1 1 0 1 1 0 1 1 0 0 0 1 1 1 0 1 0 1 0 1 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 0 0 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 +0 0 1 +1 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 1 1 0 1 1 1 0 1 0 0 1 0 0 0 1 0 1 1 0 1 0 0 0 0 1 1 0 1 1 1 0 0 1 0 1 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 0 1 1 1 0 1 0 1 0 +0 0 1 +1 1 0 0 0 0 0 1 0 1 0 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 0 1 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 0 0 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 0 1 0 0 1 +1 0 0 +0 1 1 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 0 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 0 1 1 0 0 0 1 0 0 1 0 0 0 1 1 1 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 0 1 0 1 0 0 1 0 1 0 0 0 1 1 1 +0 0 1 +0 1 0 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 0 1 0 1 0 0 0 1 0 1 1 0 1 0 1 1 1 1 0 1 0 1 0 1 1 0 1 1 1 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 1 1 1 0 1 1 0 0 1 0 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 1 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 1 +0 0 1 +1 1 0 0 0 0 0 1 0 1 0 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 0 1 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 0 0 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 0 1 0 0 1 +1 0 0 +0 0 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 1 0 1 0 0 1 1 0 1 0 0 1 1 1 1 0 1 1 1 1 1 0 1 1 1 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 +0 0 1 +0 1 0 0 0 1 1 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 0 1 1 1 0 1 1 1 0 0 +0 0 1 +0 0 0 0 1 1 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 0 1 1 1 0 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 0 1 0 0 0 1 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 1 0 0 1 1 0 0 0 1 0 0 1 1 +0 0 1 +1 0 1 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 1 1 0 1 0 1 1 0 1 1 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 0 +1 0 0 +1 1 1 1 0 1 0 0 0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 0 1 0 1 0 0 0 1 1 0 1 1 1 1 0 0 0 1 0 1 1 1 1 1 0 1 1 1 1 0 0 0 1 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 1 1 1 0 1 1 0 0 1 1 0 1 1 1 1 1 0 1 0 1 1 1 0 0 0 1 0 0 1 1 1 1 0 0 1 1 0 0 +0 0 1 +0 0 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 0 1 1 0 0 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 +1 0 0 +0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 1 1 0 1 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 0 1 1 1 1 1 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 0 1 1 1 0 1 0 +0 1 0 +0 0 0 0 0 1 1 0 1 1 0 1 1 0 1 1 1 0 1 1 0 0 1 0 1 0 1 0 0 1 1 0 0 0 0 1 0 1 1 0 1 1 1 1 0 0 0 1 1 0 0 0 0 1 0 1 0 1 0 1 0 0 1 1 0 0 0 1 0 1 0 1 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 0 1 0 1 0 1 1 1 1 1 0 1 1 1 0 1 0 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0 0 +0 0 1 +1 1 1 0 1 0 0 0 0 1 1 0 0 1 0 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 1 1 0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 +1 0 0 +0 1 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 1 1 1 0 1 0 0 1 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 1 0 +1 0 0 +1 0 0 1 1 1 1 0 1 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 1 0 1 0 0 0 1 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 1 1 0 1 0 1 0 0 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 +0 0 1 +0 1 1 1 0 0 0 1 0 1 1 0 0 1 1 1 0 0 1 1 1 0 1 0 1 1 1 1 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 1 0 1 0 0 1 1 0 1 0 0 1 1 1 1 0 0 1 0 1 1 0 1 1 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 0 1 0 0 +0 0 1 +0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 0 0 1 1 0 1 0 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 1 0 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 1 1 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 0 0 1 +0 0 1 +1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 0 0 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 0 1 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 1 1 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 1 1 0 1 1 1 0 0 1 0 0 0 1 1 0 1 1 0 1 1 0 +0 1 0 +1 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 1 0 0 1 0 1 0 0 1 1 0 0 1 0 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 0 0 1 1 0 0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 0 +0 0 1 +0 1 1 1 0 0 1 0 0 0 0 1 1 1 0 1 1 1 0 0 0 0 1 1 1 0 0 1 0 0 0 0 1 1 0 0 1 1 0 1 1 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 1 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 1 1 0 1 0 1 0 0 1 1 0 1 1 1 0 1 0 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 +0 1 0 +0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 0 0 0 1 1 1 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0 1 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 1 0 1 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 +0 0 1 +1 1 1 1 0 0 1 1 0 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1 1 1 0 1 1 0 0 1 0 1 1 1 0 1 0 1 0 0 0 0 1 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 1 1 0 0 0 1 0 1 1 0 1 0 0 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 1 0 1 1 0 0 0 +1 0 0 +1 0 0 1 1 1 0 1 0 1 0 1 0 1 1 0 1 0 0 1 1 1 1 1 1 1 1 0 1 0 1 0 0 0 1 1 1 0 0 1 0 1 0 0 0 1 1 0 1 0 1 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 1 0 0 1 0 1 1 1 1 0 1 0 0 0 0 1 0 0 1 1 0 0 0 1 1 0 1 0 1 0 0 0 0 1 0 1 0 1 1 0 +0 0 1 +1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 1 1 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 1 1 0 0 0 0 1 0 0 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 1 1 0 0 1 0 1 0 0 0 1 1 0 0 0 1 0 0 0 1 0 1 1 0 1 0 +0 0 1 +1 1 0 0 0 1 1 0 0 1 0 0 0 0 1 1 1 1 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 0 1 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0 0 0 1 1 0 1 1 1 0 1 1 1 0 0 0 0 0 0 0 1 0 1 0 1 1 0 1 0 0 1 0 1 0 0 0 1 1 0 0 1 0 1 1 0 +0 1 0 +1 1 0 0 1 1 1 0 0 1 1 0 1 0 0 1 1 1 1 0 1 1 1 0 0 1 0 1 0 1 0 0 1 1 1 1 0 1 0 1 0 1 1 1 1 1 1 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 1 1 0 1 0 1 1 1 1 1 1 1 0 1 1 0 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 0 1 1 1 0 1 1 0 1 0 1 1 1 0 1 0 0 1 1 0 0 0 1 1 0 1 1 +1 0 0 +0 1 0 1 1 0 1 0 0 1 1 0 1 1 1 0 0 1 1 1 1 1 1 1 0 0 1 1 0 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1 0 0 1 0 +0 1 0 +1 1 0 1 1 0 0 1 0 1 1 1 0 0 1 1 1 0 0 0 0 1 0 1 0 1 1 1 1 0 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1 1 0 0 0 1 1 0 1 1 1 1 1 1 1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 1 1 1 0 1 0 1 1 1 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 1 1 0 1 1 1 0 0 1 1 +0 0 1 +1 0 1 1 1 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 1 1 1 1 1 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 1 1 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 0 0 0 0 1 0 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 +0 0 1 +1 0 1 0 1 0 0 1 0 0 0 0 1 0 1 0 1 0 0 0 1 1 1 0 0 1 0 0 0 0 1 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 1 1 1 1 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 0 1 1 0 1 1 1 1 0 1 0 0 0 1 1 +0 1 0 +1 0 0 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1 1 1 0 0 0 1 1 0 0 0 0 0 1 0 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 1 0 1 0 +0 0 1 +0 1 0 0 1 1 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 1 0 1 1 1 1 1 1 1 1 0 0 1 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 0 1 0 1 1 1 1 0 +1 0 0 +0 1 1 1 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 1 1 1 1 0 1 0 1 0 1 1 0 0 1 1 0 0 1 0 0 0 0 0 0 1 1 0 1 0 1 1 1 1 1 1 1 1 0 1 0 1 0 1 1 1 1 0 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 0 1 0 1 1 1 +0 0 1 +0 1 1 0 0 0 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 1 1 0 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 1 1 0 0 1 0 0 0 0 0 1 0 1 1 1 0 1 1 1 0 0 0 0 1 1 1 1 1 0 0 1 1 1 1 0 0 1 0 1 0 0 0 1 1 1 1 1 1 0 0 1 +0 0 1 +1 1 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 1 0 0 0 0 +0 0 1 +1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 1 +0 0 1 +0 0 1 1 0 0 1 1 1 0 1 1 1 1 0 0 0 1 1 0 1 1 1 0 1 1 0 1 0 1 0 1 1 1 0 1 1 0 1 1 1 1 0 1 0 0 1 1 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 1 1 0 0 0 0 1 1 0 1 1 0 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 +0 0 1 +1 1 1 1 1 0 0 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 1 0 1 0 1 1 0 0 0 1 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 1 1 0 1 1 1 1 1 1 0 +0 0 1 +1 0 1 1 0 0 1 1 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 0 1 0 1 0 1 1 0 0 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 1 1 1 0 1 0 1 1 1 1 0 1 1 0 1 0 1 0 1 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 0 1 0 1 1 1 1 1 1 0 1 0 0 1 0 0 1 1 1 1 1 1 1 0 1 0 1 0 0 0 0 1 1 1 0 1 +0 0 1 +0 0 0 1 0 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 0 0 1 0 1 1 1 0 0 0 0 1 1 0 0 1 1 0 1 1 1 0 1 1 0 1 1 0 0 1 1 1 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 1 0 1 1 0 +0 1 0 +0 1 0 0 0 0 1 0 1 0 1 0 0 1 0 0 0 1 1 0 1 0 0 1 1 1 1 1 1 1 1 0 0 1 0 0 1 1 1 0 1 1 1 0 0 0 1 1 0 1 1 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 0 1 0 0 1 1 1 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 0 0 0 1 0 1 0 1 0 1 1 0 0 0 1 0 1 1 +1 0 0 +1 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 1 0 1 1 0 0 0 1 1 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 +0 1 0 +1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 1 0 0 0 0 0 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 0 1 1 0 1 1 1 1 0 1 0 0 1 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 1 1 0 1 0 1 0 1 1 0 1 0 1 0 0 0 1 0 0 1 1 0 1 1 1 0 +0 0 1 +0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 0 1 1 0 0 1 0 1 0 0 0 1 0 1 1 0 0 1 1 1 1 1 1 1 0 1 0 1 1 1 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 1 1 1 0 0 0 0 1 0 0 0 1 0 0 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 0 1 0 0 1 1 1 1 0 0 1 0 0 0 0 0 1 1 1 0 1 1 1 0 +0 1 0 +1 1 0 0 0 1 1 1 0 1 0 1 0 0 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 1 1 1 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 1 1 0 1 1 0 0 1 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 1 1 0 1 0 +0 1 0 +1 0 1 0 0 0 0 1 1 1 0 0 1 0 1 1 1 1 1 0 0 1 1 0 0 1 0 1 1 1 1 0 0 1 0 1 1 1 1 0 1 0 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 1 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 0 0 0 1 1 1 0 1 1 0 1 1 1 1 0 0 1 1 0 0 +0 0 1 +1 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 1 1 1 0 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0 0 1 1 0 1 1 1 0 1 1 1 0 0 0 0 0 0 0 1 0 1 0 1 1 0 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 1 0 +0 1 0 +0 1 1 1 1 0 1 0 1 0 0 0 1 1 0 1 1 1 1 1 0 1 0 1 1 0 1 1 1 0 0 0 0 1 1 0 0 1 1 0 1 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 1 0 1 0 1 0 0 0 1 0 1 1 1 1 0 1 0 0 0 0 1 1 1 0 1 1 0 0 1 +0 0 1 diff --git a/lib/ann/fann/datasets/gene.train b/lib/ann/fann/datasets/gene.train new file mode 100644 index 0000000..cfd28bc --- /dev/null +++ b/lib/ann/fann/datasets/gene.train @@ -0,0 +1,3177 @@ +1588 120 3 +0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 0 1 0 1 0 0 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 1 1 1 0 0 0 0 1 1 0 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 1 1 0 0 1 1 1 0 1 1 1 0 0 1 1 0 1 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 1 0 1 1 +0 0 1 +1 0 0 1 1 1 0 0 0 1 0 1 0 1 0 1 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 1 0 1 0 0 1 0 1 0 1 0 1 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 0 1 1 1 0 1 0 0 1 0 1 1 1 1 1 1 1 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 1 1 1 1 0 1 1 0 0 1 1 0 +0 0 1 +1 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 1 1 1 0 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0 0 1 1 0 1 1 1 0 1 1 1 0 0 0 0 0 0 0 1 0 1 0 1 1 0 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 1 0 +0 1 0 +1 1 0 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 1 0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 1 0 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 0 0 1 1 0 1 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 1 0 1 0 1 0 +0 0 1 +0 1 1 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 1 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 0 1 0 1 1 1 0 0 1 1 0 0 0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 1 0 1 0 0 1 0 0 0 1 1 0 1 0 +1 0 0 +1 0 0 1 0 1 1 1 1 1 0 0 1 1 0 0 0 1 1 0 1 1 0 1 1 0 0 0 1 1 1 1 0 0 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 0 1 1 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 1 1 1 1 1 0 0 1 0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 1 +0 0 1 +1 0 1 0 0 0 0 0 1 1 1 0 1 1 0 1 0 1 1 0 1 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 0 1 0 1 0 1 0 0 1 0 0 0 1 1 0 0 0 0 1 1 0 1 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 0 +0 0 1 +0 0 0 1 1 1 0 0 0 1 1 0 1 1 0 1 1 0 0 1 1 1 1 1 0 0 0 1 0 0 1 1 1 1 0 1 1 1 0 0 0 1 0 0 0 1 1 1 1 0 1 0 1 1 0 1 0 1 1 0 0 0 1 0 1 0 1 0 0 1 1 1 1 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 1 0 1 0 0 0 0 0 0 1 0 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 1 1 1 1 0 1 +0 0 1 +1 0 0 1 0 1 1 0 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 0 1 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 0 0 1 1 1 1 0 1 0 0 1 0 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 +0 0 1 +0 0 0 0 1 1 0 0 1 1 0 1 1 1 0 0 0 0 1 0 1 1 0 1 1 1 1 1 0 1 1 0 1 0 1 1 0 0 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 1 1 1 1 0 0 0 0 1 0 0 0 0 0 1 1 1 1 1 1 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 1 1 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 1 0 +0 0 1 +0 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 0 0 1 1 0 1 1 0 1 0 0 1 1 1 0 0 0 1 1 0 1 1 1 1 0 0 1 0 1 0 0 1 1 1 0 1 0 0 1 0 0 1 0 0 1 0 1 0 1 0 1 1 0 1 0 +0 1 0 +1 0 0 0 1 1 1 1 1 0 1 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 0 1 0 1 1 0 0 0 0 1 0 0 1 1 1 0 1 0 1 0 1 0 1 1 0 1 1 1 1 0 1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 1 0 0 0 1 0 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 +1 0 0 +1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 0 1 0 1 1 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 0 1 1 0 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 1 1 0 1 0 0 1 0 1 1 1 0 1 0 1 1 0 0 0 0 0 1 1 1 1 0 0 1 0 +0 0 1 +1 0 0 0 1 1 0 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 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 0 0 0 1 1 0 1 0 1 0 1 1 0 0 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 1 +0 0 1 +1 0 1 0 1 1 0 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 0 1 1 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 1 0 1 1 0 1 0 0 1 1 1 0 0 1 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 0 0 0 1 1 0 0 0 1 1 0 1 0 1 0 1 1 1 0 1 1 1 +0 1 0 +1 0 0 1 1 0 1 1 0 1 0 1 0 1 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 0 0 0 0 0 1 0 1 1 0 1 1 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 0 1 0 1 0 1 1 0 1 0 1 1 1 0 0 1 0 0 1 1 1 0 0 0 0 1 0 0 +0 0 1 +1 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1 1 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 0 0 +1 0 0 +1 0 0 1 0 1 1 1 1 0 1 0 1 1 1 0 1 1 1 1 1 0 1 1 0 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0 1 0 1 0 1 1 1 0 0 1 1 1 0 1 1 1 0 0 1 1 1 1 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 1 1 1 1 0 1 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 1 1 0 0 0 1 0 1 1 0 1 1 1 1 1 0 1 1 +0 0 1 +1 1 0 0 0 0 0 0 1 1 1 0 1 0 0 1 0 1 0 0 0 1 1 1 0 1 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 1 0 1 1 0 0 1 0 1 0 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 1 0 1 1 0 0 1 0 1 0 0 0 1 0 0 0 0 1 1 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 0 1 0 0 1 1 0 0 0 0 +0 0 1 +1 0 0 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 0 1 1 1 0 0 0 1 1 0 1 1 0 0 1 1 1 1 0 1 1 1 0 0 0 0 1 0 1 0 1 1 1 1 0 0 0 0 1 0 1 1 0 0 0 1 1 0 1 1 0 1 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 0 1 1 1 0 0 0 0 0 0 0 1 0 0 1 1 +0 0 1 +0 1 1 0 1 1 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 1 1 1 1 1 0 1 1 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 +0 0 1 +0 1 1 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 0 0 1 1 1 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 1 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 1 1 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 0 1 1 1 1 0 0 1 0 1 1 1 0 1 0 +0 0 1 +0 1 1 1 1 1 1 0 1 1 1 1 1 0 0 1 0 1 1 1 0 1 1 1 1 0 0 1 0 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 1 1 1 0 0 1 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 1 1 1 0 1 0 0 1 1 1 0 0 1 1 0 1 1 1 0 1 1 1 1 0 0 1 0 1 0 0 0 1 1 0 0 1 +0 0 1 +0 0 1 1 1 0 1 1 1 1 1 0 1 1 1 0 0 1 1 1 1 0 1 1 1 0 1 1 0 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 1 0 1 0 1 0 +1 0 0 +0 1 1 0 1 0 1 0 0 0 0 1 0 0 1 1 1 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0 0 0 0 1 0 0 0 0 1 1 0 1 1 1 0 1 1 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 1 1 1 1 1 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 0 1 0 1 1 0 0 1 1 0 0 1 0 1 1 1 1 1 1 0 +0 0 1 +1 0 0 1 0 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 1 1 1 0 1 1 1 0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 1 0 1 1 0 1 0 0 0 0 0 1 +0 0 1 +0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 1 1 1 1 1 1 0 1 0 0 0 1 1 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 1 1 0 1 0 1 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 1 0 0 0 0 1 0 1 +0 0 1 +0 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 0 1 0 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 0 0 1 1 1 0 0 1 0 1 1 0 0 1 0 0 1 0 0 0 1 1 1 1 1 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 +0 0 1 +1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 1 1 0 1 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 1 0 0 0 0 0 1 1 0 0 0 1 1 0 1 1 1 0 1 0 0 1 0 0 1 1 1 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 +0 0 1 +0 0 1 0 0 0 1 1 1 0 1 0 0 1 0 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 0 1 0 1 0 1 0 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 1 1 0 0 1 1 1 0 0 1 1 1 1 1 0 0 1 1 0 +1 0 0 +0 0 0 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 0 1 0 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 0 0 0 0 1 1 1 0 +1 0 0 +1 1 0 0 1 0 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 1 1 1 1 1 1 0 1 0 1 0 0 1 1 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 0 1 0 0 0 1 0 1 +0 0 1 +1 1 0 1 0 1 0 1 0 1 1 0 0 1 0 0 1 0 1 0 0 1 0 1 1 0 0 1 1 1 0 1 0 0 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 1 0 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 0 0 1 0 1 0 0 1 1 +0 0 1 +1 0 1 0 0 1 1 0 0 1 0 0 0 1 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 0 1 0 0 1 1 0 1 1 1 0 0 0 0 1 1 0 1 1 1 0 1 0 0 0 1 0 0 0 1 0 0 1 1 1 0 0 1 1 0 0 1 0 1 0 0 0 1 1 +0 0 1 +0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 1 1 0 0 1 1 0 1 1 0 0 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 +0 0 1 +0 1 0 0 1 1 1 0 1 0 0 0 0 0 1 0 1 1 1 0 1 1 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 0 1 0 1 1 1 0 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 0 1 1 0 0 0 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 0 1 0 0 0 0 1 0 1 1 0 1 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 1 0 1 1 0 0 1 1 +0 0 1 +1 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 1 0 0 0 1 1 0 0 1 1 +0 1 0 +0 0 0 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 0 1 1 0 1 0 0 0 0 1 0 0 0 0 1 1 1 1 1 0 1 0 1 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 0 1 1 1 0 +0 0 1 +0 1 1 0 0 1 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 0 1 0 0 1 0 0 0 1 1 0 0 0 1 1 0 1 1 1 1 1 1 0 1 1 0 0 0 0 1 1 1 1 1 1 1 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 1 0 1 1 0 0 1 1 0 1 0 1 1 0 1 0 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 0 0 0 0 1 0 0 0 1 0 0 1 +0 0 1 +0 0 1 1 0 1 1 1 1 0 0 1 0 1 0 1 0 0 0 1 1 0 1 0 1 0 0 1 0 1 1 0 0 0 1 1 1 0 0 1 0 1 0 0 1 1 1 1 1 1 1 0 0 1 0 1 1 1 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 1 1 1 1 0 0 1 1 1 0 1 1 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 0 1 1 0 0 1 1 +0 0 1 +0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 1 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 1 0 0 0 1 0 1 0 0 1 1 1 1 0 1 0 1 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 1 1 1 1 1 0 1 0 0 0 1 0 1 0 1 +0 1 0 +1 0 1 0 0 0 0 0 1 1 1 0 0 1 0 0 1 1 1 1 0 0 1 1 0 1 1 0 0 0 0 0 0 1 0 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 0 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 1 1 1 0 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 1 1 0 1 1 1 1 0 0 0 1 0 0 1 0 +0 1 0 +1 0 0 0 0 0 1 1 0 0 1 1 0 1 1 1 1 1 0 0 1 0 1 1 1 0 0 0 1 0 1 1 0 0 1 1 0 0 0 0 1 0 1 1 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 1 1 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 1 0 1 0 0 1 0 1 +0 1 0 +0 1 0 0 0 0 0 1 1 0 1 0 1 0 0 1 0 1 1 1 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 0 1 1 1 0 0 1 1 1 1 0 1 1 0 0 0 0 1 0 0 1 1 0 0 1 1 1 1 1 1 0 1 1 0 0 0 0 1 0 0 0 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 0 1 +0 0 1 +0 0 0 1 0 0 0 1 1 0 1 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 1 1 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 1 0 0 0 1 0 0 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 1 0 0 0 1 1 0 1 0 1 1 0 0 0 1 0 0 0 0 1 1 0 0 0 1 +0 0 1 +1 1 0 0 1 1 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 1 1 1 0 1 1 0 0 1 1 1 1 0 0 1 1 0 1 0 0 0 1 1 0 0 1 0 1 0 0 0 1 0 0 0 0 1 1 1 1 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 0 0 0 1 0 1 1 0 +0 1 0 +0 1 1 0 1 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 +0 0 1 +1 1 1 0 1 0 0 0 0 0 1 1 1 0 0 1 0 0 0 1 0 0 1 1 1 1 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 1 1 1 1 0 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 1 1 0 1 1 1 0 0 1 0 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 1 0 0 1 0 0 1 1 1 1 1 1 1 0 0 1 1 0 0 0 +0 1 0 +1 0 1 1 1 0 1 1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 1 0 0 1 1 1 1 0 1 0 0 1 1 1 1 1 1 1 0 0 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1 0 1 1 0 0 0 1 0 1 0 1 0 1 1 1 0 0 0 0 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 +1 0 0 +1 1 1 1 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 0 1 1 0 0 0 0 0 0 1 0 0 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 1 1 0 0 0 1 1 1 0 0 0 1 1 0 1 1 0 0 0 1 1 1 +1 0 0 +0 0 1 1 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 0 1 0 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 1 1 1 0 1 0 1 0 0 1 1 1 1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 1 1 0 1 1 1 0 1 0 1 0 0 0 +1 0 0 +0 1 1 0 1 0 1 0 0 1 1 0 1 1 1 1 1 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 1 0 0 1 1 1 1 1 1 0 1 0 1 1 0 0 1 0 1 1 0 0 0 1 1 1 0 0 0 0 1 0 0 0 1 1 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 1 0 1 1 0 1 1 0 1 1 1 1 0 0 1 +0 0 1 +1 0 1 1 0 0 0 0 1 0 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 1 0 1 1 0 0 1 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 1 0 1 0 0 1 1 0 1 1 1 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1 0 1 0 0 1 1 0 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 +0 0 1 +0 1 1 0 1 1 0 1 1 1 1 1 1 1 0 0 1 1 0 1 0 1 0 1 0 0 0 1 1 1 1 0 1 1 0 0 1 0 0 0 0 1 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 1 0 0 0 0 1 1 1 1 0 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 0 1 1 1 +0 0 1 +0 0 0 0 0 1 0 1 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 0 1 1 1 0 0 0 1 1 0 0 0 1 1 0 1 0 1 1 0 1 0 1 0 0 0 1 0 1 1 1 1 1 1 1 0 1 0 1 0 1 1 0 1 1 0 1 0 1 0 0 0 1 1 1 1 1 0 1 0 1 0 0 1 1 1 1 0 1 1 1 1 1 1 0 +1 0 0 +1 0 0 0 1 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 1 0 1 1 0 1 0 0 0 0 0 0 1 0 1 1 0 1 1 1 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 1 1 +1 0 0 +0 0 0 0 0 0 1 1 0 0 1 0 1 1 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 1 0 1 1 0 0 1 0 0 0 0 0 1 1 0 0 0 1 0 1 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 0 1 0 1 0 1 0 +1 0 0 +0 1 1 0 0 0 1 1 1 0 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 0 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 1 0 0 0 1 0 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 1 0 0 1 1 0 0 1 1 +1 0 0 +0 0 0 0 1 1 1 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 1 1 0 1 1 1 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 0 1 0 0 0 1 0 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 +1 0 0 +1 0 1 1 1 0 1 0 1 1 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 1 1 1 0 1 1 0 0 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 0 1 1 0 0 0 1 1 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0 +0 0 1 +1 0 1 0 0 1 0 1 1 0 0 1 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 1 1 0 1 0 1 1 0 0 0 1 1 0 1 1 0 1 1 1 0 0 0 1 1 1 1 0 1 0 0 0 1 1 0 1 1 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 1 0 1 +1 0 0 +0 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 1 1 1 0 1 1 1 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 1 1 0 0 0 1 0 0 0 0 1 1 1 1 0 +0 1 0 +1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 1 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0 0 0 0 1 1 1 1 1 1 0 1 1 1 1 1 0 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 1 0 1 1 0 0 0 0 1 1 0 1 1 0 0 0 0 1 1 0 1 1 1 1 +0 0 1 +1 0 0 1 0 1 0 0 0 1 0 0 1 1 1 0 0 0 0 1 1 1 0 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 1 1 0 1 1 1 1 0 1 0 0 1 0 1 1 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 1 +1 0 0 +0 1 1 0 1 0 1 0 1 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 +0 1 0 +0 1 0 1 0 1 0 1 0 0 1 1 0 1 1 1 1 0 0 1 0 0 0 1 0 1 1 0 1 1 1 1 0 0 0 1 1 1 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 0 1 0 1 0 1 1 0 1 0 1 0 1 1 0 0 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 1 1 1 0 1 0 0 0 1 1 0 0 0 1 1 1 1 1 0 0 +1 0 0 +0 0 1 1 1 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 1 0 1 0 1 1 0 1 1 0 1 1 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 1 0 1 1 0 0 0 0 0 1 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 1 1 1 +1 0 0 +0 0 0 1 1 1 1 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 0 0 1 0 0 0 1 1 1 1 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 0 0 0 1 1 1 0 0 0 0 1 0 0 0 1 1 0 1 1 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 0 1 0 1 1 1 0 +0 0 1 +0 0 0 1 1 0 1 0 0 1 0 0 1 1 1 1 0 1 1 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 0 0 0 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 1 1 0 1 0 1 1 1 1 1 1 0 0 1 1 0 0 1 0 1 1 1 1 1 0 0 0 1 1 1 1 0 1 0 0 0 1 0 0 0 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 +0 1 0 +0 1 1 1 0 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 0 1 0 0 1 0 1 1 1 0 1 1 1 0 1 0 1 1 0 0 0 0 1 1 1 1 1 1 1 0 1 0 1 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 0 1 1 0 1 0 1 0 0 0 0 0 1 0 0 1 +0 0 1 +0 1 0 0 1 0 0 1 1 0 1 1 0 1 1 1 1 0 1 1 1 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 1 1 1 1 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 1 1 1 0 1 0 1 0 1 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 0 +0 0 1 +1 1 1 0 0 1 0 1 1 1 1 1 1 1 0 0 1 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 1 0 1 1 0 0 0 1 1 0 1 1 1 0 0 0 0 1 0 1 1 1 0 1 0 1 1 0 0 0 0 1 1 1 0 0 1 0 1 0 0 0 0 0 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 +0 1 0 +0 1 0 1 0 1 0 0 1 1 1 0 0 0 0 1 0 0 1 0 1 1 1 0 1 0 0 1 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 1 0 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 1 1 +1 0 0 +0 0 0 1 1 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 1 1 0 0 0 1 0 1 1 0 1 1 1 1 0 0 1 1 1 1 1 0 0 0 0 0 1 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 1 1 1 1 0 0 1 0 0 1 0 0 0 0 1 0 1 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 0 1 1 1 1 0 1 1 0 0 1 1 0 +1 0 0 +1 0 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 1 0 1 0 1 0 1 0 1 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 +1 0 0 +1 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 1 1 1 0 1 0 1 1 1 0 0 1 0 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 0 1 0 0 0 1 1 1 1 0 0 1 0 0 1 1 1 0 0 1 0 1 1 0 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 +0 0 1 +0 1 0 1 0 0 1 1 0 1 1 0 0 1 1 1 1 1 1 0 1 0 0 0 0 0 0 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 1 1 1 1 1 1 0 1 0 1 0 1 1 0 1 0 1 1 1 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 1 1 0 1 0 0 1 1 0 1 1 1 1 1 1 0 0 +0 0 1 +1 1 0 0 1 1 0 1 0 1 1 1 1 1 1 1 0 1 0 1 1 0 0 1 0 1 0 0 0 1 0 1 0 0 1 1 0 1 0 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 0 0 1 0 1 0 0 0 0 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 0 0 1 1 0 1 1 1 1 1 0 0 0 1 1 0 1 +0 0 1 +0 1 1 1 0 0 0 1 1 1 1 1 1 1 1 0 1 0 1 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 1 1 0 1 0 0 1 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 0 1 1 0 0 1 0 1 0 1 +0 0 1 +1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 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 1 1 0 0 1 1 0 0 1 1 0 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 1 1 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 1 1 +0 0 1 +0 1 1 0 0 0 1 0 0 1 0 0 1 0 1 1 1 0 1 1 1 0 1 0 0 1 1 0 0 0 1 1 1 1 0 0 1 0 1 0 0 0 1 0 1 1 1 0 1 0 1 1 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 0 0 1 0 0 0 0 1 1 0 1 0 0 1 0 1 0 0 0 0 1 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 +0 0 1 +1 1 1 0 1 0 0 0 1 0 0 1 1 0 1 1 0 1 1 1 1 0 1 0 1 1 1 0 0 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 +1 0 0 +1 0 1 0 0 0 1 0 0 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 1 0 0 1 0 0 1 0 1 0 0 0 1 0 1 0 1 1 1 0 0 0 1 0 0 0 1 1 1 0 1 0 0 0 1 0 1 0 0 0 1 0 0 1 1 0 1 1 1 0 1 1 0 1 1 1 1 0 0 0 0 1 1 0 +0 0 1 +1 0 0 0 1 1 1 0 1 1 0 1 0 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 0 1 0 0 1 1 1 0 1 0 1 0 1 1 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 0 1 1 1 1 1 0 0 1 1 1 1 0 1 0 0 1 0 1 0 1 0 0 0 1 0 1 1 1 1 0 0 1 0 1 1 0 1 1 1 1 0 1 0 1 +0 0 1 +1 0 1 0 1 1 0 1 0 1 0 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 0 0 1 1 1 1 1 1 1 0 1 0 1 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 0 1 1 1 +0 0 1 +0 0 0 1 1 0 0 0 0 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 0 0 1 0 0 1 1 1 1 0 1 1 0 1 1 1 0 0 0 0 0 1 0 1 0 1 0 0 0 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 0 1 1 1 1 1 1 1 0 1 0 1 0 1 1 1 1 1 0 1 0 1 0 1 0 0 1 1 1 1 1 +0 0 1 +0 0 0 0 1 0 1 0 0 1 1 1 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 0 0 1 0 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 0 0 0 0 0 0 1 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 0 1 1 1 1 0 0 0 0 0 1 1 0 1 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 0 0 1 0 0 0 1 0 1 1 0 1 1 1 1 +0 1 0 +1 0 1 0 1 1 0 0 1 1 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 1 0 0 1 1 0 0 1 1 1 0 1 0 0 1 0 0 1 1 0 0 0 0 1 0 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 0 1 0 1 0 0 0 1 1 0 0 0 1 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 1 0 0 0 1 1 0 0 1 1 +1 0 0 +0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 1 0 1 0 1 0 0 1 1 0 1 0 0 0 0 1 1 1 0 1 1 1 1 1 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 1 1 0 1 1 0 0 1 1 0 1 1 1 0 0 0 0 0 1 0 0 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 +0 1 0 +0 0 0 0 0 0 1 1 1 0 1 0 0 1 0 0 0 0 0 0 1 0 1 1 0 0 1 1 1 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 1 0 1 0 1 0 1 1 0 1 0 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 +1 0 0 +0 1 1 0 0 1 0 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 1 1 1 0 1 0 0 1 0 0 0 1 0 1 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 1 1 1 0 1 0 1 1 0 0 0 0 1 1 1 0 1 0 1 1 0 0 1 0 +0 0 1 +0 1 0 1 1 1 1 0 1 0 0 1 1 1 0 1 1 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 0 0 1 1 0 0 0 1 1 0 0 1 0 0 0 0 0 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 1 1 0 1 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 1 0 1 0 0 0 0 0 +0 0 1 +1 1 0 0 1 0 1 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 1 0 0 0 0 1 0 1 0 0 0 1 0 1 1 0 0 1 0 0 0 0 1 0 0 1 1 0 1 1 1 0 1 1 1 0 0 0 1 1 0 0 1 1 1 0 0 0 1 1 0 1 1 0 1 0 0 0 1 1 1 1 1 1 1 0 1 1 0 0 0 1 0 0 0 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 0 1 1 0 0 0 0 1 +0 0 1 +0 0 1 1 1 0 1 1 0 0 0 0 1 1 1 0 1 1 1 0 1 0 1 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 1 0 1 0 1 1 1 1 1 0 0 0 1 1 1 0 1 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 +0 1 0 +1 0 1 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 1 1 0 1 1 0 0 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 0 1 0 1 0 1 1 1 0 1 0 0 1 1 0 0 1 0 +0 1 0 +1 1 1 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 0 1 0 0 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 1 0 1 0 0 0 0 0 +0 1 0 +0 1 1 1 1 0 0 1 1 0 0 1 0 1 1 0 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 1 0 1 1 0 1 1 1 0 1 0 0 0 0 1 1 0 0 1 0 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 0 1 0 0 0 1 0 0 1 1 1 1 0 1 +0 0 1 +1 1 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 0 0 0 1 0 1 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 0 1 0 1 1 0 1 0 1 1 1 0 0 0 1 1 0 0 0 1 1 0 0 1 0 0 1 1 1 1 0 0 0 1 +0 0 1 +0 0 0 1 0 1 0 1 1 1 1 1 0 1 0 0 0 0 1 1 1 0 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 1 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 1 0 1 1 1 0 1 0 0 1 0 0 0 1 0 1 1 1 1 0 0 0 0 0 0 1 0 1 1 1 +0 1 0 +1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 1 0 0 0 1 1 1 1 0 1 1 1 0 1 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 1 0 1 0 1 1 0 0 0 0 0 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 1 1 1 0 0 1 +0 0 1 +0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 0 1 1 0 0 0 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 +0 1 0 +1 1 1 0 0 0 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 0 1 0 1 1 1 0 0 1 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 1 1 0 1 0 1 0 1 0 +1 0 0 +1 0 0 1 1 0 0 1 0 0 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 0 0 1 0 0 0 1 1 1 0 1 1 1 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 0 0 +0 0 1 +0 1 0 0 1 1 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 1 1 1 1 0 1 0 0 1 1 1 0 0 0 0 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 1 0 0 0 0 1 0 0 0 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 0 0 0 1 1 0 1 0 1 1 +1 0 0 +1 0 0 1 0 1 1 0 1 0 0 1 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 1 1 0 0 1 0 0 1 1 1 0 1 0 0 1 1 1 1 0 0 1 1 0 0 1 0 1 1 0 1 0 1 0 1 1 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 0 1 0 0 1 1 1 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 +0 0 1 +1 1 0 0 1 1 1 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 1 1 1 0 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1 1 0 0 1 0 1 1 1 1 1 0 1 0 0 0 1 0 1 1 0 0 1 0 1 1 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 1 1 1 0 +0 1 0 +1 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 0 0 0 0 1 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 1 1 0 0 0 1 0 0 1 1 1 0 1 1 1 0 1 1 1 0 0 1 0 1 0 0 0 1 0 0 1 1 1 0 0 1 0 1 1 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 1 0 0 1 0 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 0 0 0 1 1 0 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 0 0 1 0 1 1 0 1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 0 1 1 0 1 0 1 1 0 1 1 0 1 1 1 0 1 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 0 1 0 0 0 0 1 1 0 1 1 1 0 0 0 +1 0 0 +0 1 1 1 1 0 0 0 1 0 1 0 1 0 1 1 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 1 1 0 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 +0 0 1 +1 1 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 1 0 0 1 1 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 0 0 0 1 1 0 1 0 1 1 0 1 0 0 1 0 0 1 1 1 1 1 0 0 0 0 0 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 0 1 0 1 1 0 1 0 +1 0 0 +0 0 0 1 1 0 0 1 0 1 0 1 1 0 0 1 0 0 0 1 0 1 1 0 1 1 0 0 1 1 1 0 1 0 1 1 0 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 0 1 0 0 1 0 0 1 1 0 0 0 0 0 0 1 1 1 1 1 0 0 1 1 0 1 1 0 0 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 0 0 +0 0 1 +0 0 0 1 0 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 0 0 1 1 0 1 0 0 1 1 1 0 1 1 1 1 0 1 1 1 0 0 1 1 0 1 0 0 1 0 0 1 0 0 0 0 1 1 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 1 0 1 0 1 1 1 1 0 +0 1 0 +1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 0 0 1 0 1 1 0 1 1 0 0 0 0 0 0 1 0 1 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 1 0 0 1 1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 0 1 0 1 1 0 0 0 0 0 1 1 1 0 1 1 1 0 1 1 0 0 0 0 +0 1 0 +1 0 1 0 1 1 1 0 0 0 1 0 0 0 0 1 1 1 1 1 1 0 1 0 0 0 0 1 0 1 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 1 1 0 1 0 1 1 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 0 0 0 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 +1 0 0 +0 1 0 1 1 0 1 0 1 0 0 1 1 0 1 1 1 0 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 0 1 1 0 0 1 1 1 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0 0 0 1 1 1 1 0 1 1 0 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 0 1 0 1 1 0 0 1 1 1 1 0 +0 0 1 +1 0 1 1 1 0 0 1 0 0 1 0 0 1 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0 0 0 1 0 1 0 1 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 1 0 0 1 1 0 1 1 1 1 1 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 1 1 1 0 0 0 0 0 0 0 1 0 +1 0 0 +1 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 1 0 1 1 1 0 0 1 1 1 1 0 0 1 1 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 1 1 0 1 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 0 1 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0 0 1 0 1 1 0 0 1 1 1 +0 1 0 +1 0 1 1 1 1 0 0 1 1 0 1 1 0 0 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 0 0 1 0 0 1 0 1 1 1 1 0 1 1 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 1 0 1 0 0 1 1 1 1 1 0 1 1 0 1 0 0 0 1 0 1 0 0 1 1 1 0 1 0 1 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 1 +0 0 1 +1 1 0 1 0 1 1 1 1 0 0 1 1 1 0 0 0 0 1 1 1 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 1 0 0 1 1 1 0 0 +0 1 0 +1 0 0 0 1 1 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 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 1 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 1 0 1 0 1 1 0 0 1 0 1 1 1 1 0 0 1 0 1 0 1 0 1 1 0 1 0 1 1 0 0 0 1 1 1 0 1 1 0 0 1 0 1 +0 1 0 +1 1 1 0 0 0 1 1 1 1 0 0 1 1 1 0 0 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 0 0 1 1 1 0 1 1 1 0 1 1 0 1 0 0 1 0 1 1 1 1 1 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 1 0 1 0 0 0 1 0 0 0 1 0 0 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 0 1 1 1 0 0 0 +0 0 1 +0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 0 1 0 1 1 1 1 0 1 1 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 1 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 +0 0 1 +1 1 0 0 0 1 0 1 0 0 1 1 0 1 0 1 1 1 1 1 1 1 0 0 0 1 0 1 1 0 0 1 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 0 1 0 0 1 1 0 1 1 1 0 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 1 0 1 1 1 0 0 0 1 0 1 1 0 1 1 0 0 1 1 0 1 0 0 0 1 0 0 1 1 +0 0 1 +0 1 1 1 1 0 0 1 0 1 1 0 0 1 1 1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 1 0 1 1 1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 1 0 0 +0 0 1 +1 0 1 0 0 0 0 1 1 1 0 0 1 0 0 0 0 1 1 0 1 0 0 0 1 0 1 1 1 1 1 0 1 0 1 0 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1 1 0 1 0 0 0 0 1 +0 0 1 +0 0 1 1 0 1 1 1 0 0 0 0 0 0 0 1 0 1 1 0 1 1 0 0 1 1 0 1 1 1 1 0 1 1 0 0 0 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 0 1 1 1 0 1 1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 0 0 1 0 1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 0 0 1 0 1 0 1 0 0 0 1 +0 0 1 +0 1 0 0 0 0 1 1 1 1 1 1 1 0 1 0 0 0 1 1 0 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 0 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 1 0 0 1 0 0 0 1 1 1 0 +0 0 1 +0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 +0 1 0 +1 0 1 1 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 1 1 1 1 0 0 1 1 0 1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 1 0 1 1 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 0 0 1 0 1 +0 0 1 +0 1 0 0 0 1 0 1 0 1 0 1 1 1 0 0 0 1 0 1 1 0 0 1 1 0 1 0 1 1 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 1 1 0 0 1 1 1 0 1 1 1 0 1 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 1 0 0 0 0 0 1 0 0 1 0 +0 0 1 +1 0 0 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 1 0 0 1 0 0 1 1 0 1 1 1 1 0 1 1 1 0 0 1 1 0 1 1 0 0 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 1 1 0 1 0 1 +1 0 0 +1 1 1 1 0 1 1 0 0 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 1 0 1 0 1 1 0 0 0 1 0 1 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 0 1 1 0 0 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 0 1 0 1 0 1 1 0 0 0 0 1 1 1 1 1 1 1 +0 0 1 +0 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 1 1 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 0 1 0 0 1 1 1 0 1 1 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 0 0 +0 1 0 +1 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1 1 1 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 0 0 1 1 0 1 1 1 0 0 0 1 1 0 0 1 0 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 1 1 0 1 0 0 0 1 1 0 1 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 +0 0 1 +1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 0 0 1 0 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0 0 1 0 0 0 1 1 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 1 0 1 0 +0 0 1 +1 1 1 0 0 0 1 1 1 0 1 1 1 0 0 0 1 1 1 1 1 1 0 1 1 1 1 0 1 0 0 1 1 1 0 1 1 0 1 1 0 1 0 1 1 0 0 1 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 1 1 0 0 1 1 0 1 1 1 0 1 0 1 0 0 1 1 0 1 1 0 0 0 0 1 1 1 0 0 1 1 1 0 1 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 +0 0 1 +0 0 0 0 0 1 0 1 1 0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 0 1 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 +1 0 0 +1 1 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 0 1 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 0 0 0 1 0 0 +0 1 0 +1 0 1 0 1 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 0 1 0 1 1 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 1 0 +0 1 0 +0 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 0 0 1 0 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 1 0 1 1 0 1 0 0 1 1 0 0 0 0 1 0 1 0 0 +0 1 0 +0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 0 1 1 0 1 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 0 1 0 0 1 0 0 1 1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 1 0 0 0 1 1 0 1 0 1 0 0 1 1 1 0 1 0 0 1 0 1 0 0 0 0 1 1 1 0 1 1 1 +1 0 0 +0 0 0 1 1 1 1 0 1 0 0 0 1 1 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 1 0 1 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 1 0 0 1 1 0 0 1 0 1 1 0 1 1 1 1 1 1 0 1 0 1 1 1 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 +0 0 1 +0 0 1 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 1 1 0 1 1 1 0 1 1 1 1 1 0 1 0 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 1 0 1 1 1 0 0 1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 1 1 0 0 0 0 0 1 1 0 1 0 0 1 0 1 1 1 1 1 0 0 0 1 1 0 0 0 1 0 0 1 1 0 1 1 1 1 1 +0 0 1 +0 0 1 1 1 0 1 1 0 0 0 0 1 1 1 0 0 1 0 1 0 0 1 1 0 0 1 0 0 1 1 1 1 0 0 1 0 1 1 1 0 0 0 1 1 0 0 0 1 1 0 0 1 0 1 0 1 1 0 0 0 1 1 0 1 0 0 0 1 0 1 1 1 0 0 0 1 1 1 1 0 1 0 1 0 0 1 0 1 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 +0 0 1 +0 1 1 0 0 1 0 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 1 0 0 0 1 1 1 1 0 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 0 1 0 0 1 0 0 0 0 1 1 0 0 1 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 +0 0 1 +0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 0 1 0 0 0 1 1 0 0 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 1 1 1 1 0 0 0 0 1 1 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1 +0 0 1 +1 1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 0 0 0 1 1 0 1 0 1 0 0 0 1 1 0 1 0 1 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 1 0 0 1 0 0 1 1 1 0 1 0 1 0 1 0 0 0 1 1 0 0 0 0 +1 0 0 +0 1 1 1 1 1 0 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0 1 1 0 1 1 1 0 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 1 1 0 1 0 1 1 0 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 +0 0 1 +1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 1 1 1 1 1 0 1 0 0 0 0 0 1 0 1 1 1 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 1 0 0 1 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 1 1 0 1 1 0 1 0 1 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 +1 0 0 +1 1 1 1 0 0 0 1 0 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 1 1 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1 1 1 1 0 0 0 1 0 1 0 1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 0 0 0 1 0 1 1 1 1 1 0 0 1 0 0 0 0 1 0 0 +0 0 1 +0 1 1 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 1 0 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 0 1 1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 1 0 1 0 0 0 0 1 1 1 0 1 0 1 1 1 0 0 0 0 0 1 0 +0 1 0 +0 0 1 1 1 1 0 0 0 0 0 1 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 1 1 0 0 1 0 0 0 0 1 1 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 1 1 0 0 0 1 1 1 0 0 0 0 1 0 0 1 0 1 1 0 0 1 0 1 0 +0 0 1 +1 0 1 0 0 0 1 0 0 0 0 0 1 1 1 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 0 0 1 0 1 1 1 0 0 1 1 1 0 1 1 1 0 0 1 1 0 0 1 0 0 0 0 0 0 +0 0 1 +0 0 0 1 1 0 0 1 1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 1 0 0 0 0 1 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 1 1 0 1 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 1 0 0 1 0 0 0 1 1 0 0 0 1 0 0 1 0 0 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 0 1 1 1 0 0 1 0 +0 0 1 +1 1 1 0 0 0 0 0 1 1 0 1 0 1 1 1 1 0 0 1 0 1 0 0 0 1 0 0 1 1 1 1 1 1 1 0 1 0 1 0 1 0 0 0 0 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 1 1 1 0 1 1 1 0 0 0 0 1 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 1 0 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 0 1 1 +0 0 1 +1 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 1 0 1 1 0 0 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 1 0 1 0 1 1 1 1 1 0 1 0 1 0 0 1 1 1 1 0 1 0 1 1 1 1 1 1 +1 0 0 +0 0 0 0 1 1 1 0 0 1 1 1 1 1 0 1 0 1 1 1 1 0 0 1 0 0 0 1 1 0 1 1 0 0 1 0 1 1 1 0 1 0 0 1 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 1 1 0 0 0 1 0 1 1 1 1 0 0 0 0 1 0 0 1 1 1 1 0 0 1 1 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 +0 0 1 +1 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 0 0 1 0 1 0 1 1 0 1 1 0 1 1 0 0 0 1 1 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0 0 1 1 0 1 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 0 0 0 1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 1 0 1 1 0 0 1 1 1 0 +0 0 1 +1 0 0 1 0 0 0 1 0 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 1 0 1 1 1 0 1 0 1 0 0 0 0 1 0 1 1 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 1 0 1 1 1 0 1 1 1 1 0 0 1 0 0 0 1 0 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1 1 0 1 1 0 0 0 0 +0 0 1 +0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 1 0 0 1 1 1 1 1 0 0 1 1 0 0 0 1 1 0 0 1 1 0 1 1 1 1 0 0 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 0 0 0 1 0 1 1 0 0 0 0 1 +0 0 1 +0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 1 0 0 0 0 1 1 1 0 1 1 1 0 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 1 0 0 1 1 0 1 0 1 0 0 1 1 0 1 1 1 0 1 1 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 +0 0 1 +0 0 0 1 0 1 0 1 1 0 0 0 1 1 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1 1 1 1 0 1 1 1 1 0 0 0 1 0 1 0 0 0 0 0 1 0 1 1 1 1 1 0 1 1 1 0 0 0 1 1 0 0 0 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 1 1 1 0 1 0 +0 0 1 +0 1 0 0 0 0 1 1 1 0 0 1 0 0 0 0 1 1 1 0 1 1 1 0 0 1 0 1 0 0 0 1 1 1 0 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 1 0 0 1 0 0 1 1 0 1 1 0 0 1 1 1 0 1 0 1 1 1 1 0 0 1 0 1 1 1 0 0 0 0 1 1 0 0 +0 0 1 +0 0 0 0 1 1 0 1 1 1 1 0 1 1 0 1 0 0 0 0 1 1 1 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 1 0 1 1 0 0 0 1 1 1 1 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 1 0 0 1 0 0 0 1 1 0 0 1 1 0 0 0 1 1 1 1 +0 0 1 +0 0 1 1 1 0 0 1 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 0 0 1 1 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 +0 1 0 +0 0 0 0 1 1 1 1 0 1 0 1 1 0 0 0 1 1 0 1 1 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 0 0 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 0 1 1 1 0 0 0 +0 1 0 +0 0 1 1 1 0 0 0 0 1 0 1 0 1 0 1 1 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 0 0 1 0 1 1 0 1 0 1 1 1 1 +0 0 1 +1 1 1 1 1 0 1 1 0 0 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 1 1 1 0 1 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 1 0 1 1 1 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 0 1 1 0 0 1 1 0 1 0 1 1 0 0 1 1 0 1 1 1 0 1 1 1 1 1 +0 0 1 +1 1 0 0 1 0 1 0 0 1 0 0 1 1 1 1 0 0 1 1 1 0 1 1 1 0 1 1 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 0 1 0 1 0 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 0 0 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 1 0 1 1 1 1 1 +0 0 1 +0 1 1 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 1 0 1 0 0 0 0 1 1 1 0 0 1 0 1 1 1 0 0 0 1 1 1 0 1 0 0 1 0 0 1 1 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 1 0 1 1 0 0 0 1 +0 1 0 +0 0 0 1 1 1 0 0 1 0 0 0 0 1 1 1 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 1 0 0 0 0 1 1 0 0 1 1 1 1 1 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 1 1 0 1 1 0 1 0 0 0 0 0 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 0 0 1 1 0 1 +0 0 1 +1 0 0 1 0 0 0 1 1 0 1 0 1 0 0 1 1 1 0 1 1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 1 1 0 0 1 0 0 1 1 1 0 1 1 1 0 0 0 1 1 1 0 1 1 0 0 0 0 1 1 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 0 0 0 1 1 1 0 0 0 1 1 +0 1 0 +1 1 1 0 0 0 1 0 1 1 0 0 0 0 1 1 1 0 0 0 1 0 1 0 0 1 0 0 0 1 0 1 1 0 0 0 0 1 0 1 0 1 0 1 1 0 1 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 1 0 1 0 1 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 +0 0 1 +0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 0 0 0 1 1 1 1 1 0 0 1 1 0 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0 +1 0 0 +1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 1 1 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 1 1 0 0 0 0 0 1 1 0 1 0 1 1 0 1 1 1 1 1 0 1 0 1 0 1 1 1 0 0 0 0 1 0 1 1 0 1 1 0 1 1 0 0 1 1 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 1 0 0 0 1 1 1 0 1 +1 0 0 +1 1 1 1 0 0 1 1 0 1 1 1 1 0 0 1 1 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 0 1 1 1 1 1 1 0 1 1 1 0 0 0 1 0 0 0 0 1 0 1 1 0 1 0 1 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 0 1 0 1 0 +1 0 0 +0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 +0 1 0 +0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 1 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 1 1 0 1 1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 0 0 0 0 1 0 1 1 0 1 1 0 0 1 0 1 1 0 1 1 0 0 1 1 1 0 1 0 0 0 0 1 1 0 +0 1 0 +1 0 1 1 0 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 0 1 1 0 1 1 1 1 0 0 1 0 1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 1 1 1 0 1 0 0 1 0 0 0 1 1 0 1 1 1 1 0 1 0 0 0 0 1 1 1 1 0 1 1 1 1 1 0 0 0 1 0 1 0 1 0 0 +0 0 1 +0 0 0 0 0 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 0 1 0 0 1 0 0 1 1 0 0 0 1 0 1 1 1 0 1 0 1 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 0 0 1 1 0 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 +0 0 1 +0 0 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 1 1 1 1 1 1 1 0 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 1 1 0 0 0 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 1 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 0 +0 0 1 +0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 1 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1 1 1 1 0 1 1 0 1 0 1 1 1 1 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 0 1 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 1 0 0 1 0 1 +0 0 1 +1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 0 0 1 1 1 1 1 1 0 1 1 1 0 1 1 0 1 1 0 0 1 1 1 0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 0 1 0 1 0 0 1 0 1 1 1 0 0 0 0 1 0 1 1 1 1 1 0 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 1 1 1 0 0 1 0 0 0 1 0 0 0 1 +0 0 1 +1 1 1 0 1 1 1 0 1 0 0 1 1 0 0 0 0 1 1 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 1 1 1 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 +1 0 0 +1 1 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 0 0 1 0 1 0 1 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 0 0 0 1 0 0 0 1 0 0 0 1 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 0 0 1 0 1 1 0 0 0 1 1 0 1 1 1 0 1 +1 0 0 +1 1 1 0 0 1 0 0 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 0 1 1 1 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 1 1 1 0 0 1 1 1 0 1 0 0 1 0 1 0 0 0 0 +0 1 0 +0 1 0 1 1 1 1 1 0 0 0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 1 0 0 0 0 1 1 1 1 0 1 1 0 0 1 0 1 1 1 1 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 1 0 1 1 1 0 1 1 0 0 1 1 1 0 1 +0 0 1 +1 0 0 1 1 0 0 1 0 1 0 1 0 1 1 0 0 0 0 0 0 0 1 0 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 1 0 1 0 0 0 1 1 1 1 0 0 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 +0 0 1 +0 0 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 0 1 0 1 0 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 0 1 0 0 0 0 1 1 0 0 0 0 1 0 1 1 0 +0 1 0 +0 1 0 0 1 1 0 0 0 1 1 1 0 0 1 0 0 1 0 1 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 1 0 1 1 0 0 0 0 0 0 1 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 1 0 0 1 1 1 0 1 1 +1 0 0 +1 1 0 1 1 0 1 0 0 1 1 1 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 0 1 1 1 0 0 0 1 1 1 0 0 1 0 1 1 1 1 0 1 1 0 1 0 0 0 1 1 0 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 1 1 0 1 1 +1 0 0 +0 0 1 1 1 0 1 0 1 0 0 1 0 1 1 0 1 1 1 0 0 1 1 0 0 0 1 1 0 0 1 0 0 0 0 1 1 0 1 1 1 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 0 1 0 1 1 0 1 1 1 0 0 0 0 0 1 1 0 0 1 1 1 0 1 0 0 1 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 +0 0 1 +1 0 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 1 0 0 1 0 1 0 1 0 1 1 1 1 0 1 1 1 0 1 0 0 1 0 0 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 0 1 0 0 1 1 1 1 0 0 1 1 1 0 1 0 1 1 1 0 0 0 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 0 1 0 0 1 0 0 1 1 1 1 0 0 0 0 +0 0 1 +0 0 1 1 1 1 0 0 1 1 0 1 1 1 0 1 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 0 1 0 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 0 1 1 1 1 0 1 0 0 1 1 0 0 0 0 1 0 1 1 0 1 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 0 1 0 1 0 0 1 0 1 1 0 0 1 0 0 1 0 +0 0 1 +1 0 0 1 0 1 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 0 1 0 0 0 1 1 1 0 0 0 1 1 0 1 0 1 0 0 0 1 0 0 1 1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 0 0 +0 0 1 +1 0 1 1 1 1 1 1 0 0 0 1 1 0 1 1 1 0 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 0 0 1 0 1 0 0 0 0 1 1 1 1 1 0 0 1 0 0 0 1 0 0 0 1 0 1 0 1 1 0 1 1 0 1 1 1 1 0 0 1 0 1 1 1 1 1 0 1 0 0 1 1 1 1 1 1 0 1 0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 0 0 1 1 0 +0 0 1 +0 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 1 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 +0 0 1 +0 1 1 1 0 0 1 1 1 1 1 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 0 1 1 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 0 0 1 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 0 1 0 0 0 0 1 1 1 0 1 0 1 1 1 1 +1 0 0 +0 1 0 0 0 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 1 1 0 1 1 0 1 0 0 1 0 1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 1 1 0 1 0 0 0 0 1 0 0 1 1 1 0 0 0 0 +0 1 0 +1 0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 0 1 0 1 1 0 1 1 0 1 1 1 0 1 0 1 0 1 0 0 1 1 1 0 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 1 1 0 1 1 1 0 1 0 +1 0 0 +0 1 1 0 0 0 0 1 0 1 0 1 1 0 0 1 1 0 1 0 1 1 0 0 0 0 1 1 1 0 0 1 1 1 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 1 1 0 1 0 1 1 1 1 1 0 0 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 0 1 1 0 1 1 1 1 0 1 1 +1 0 0 +1 0 0 0 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 1 1 0 1 1 1 1 0 0 1 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 1 0 1 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 1 0 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 +0 0 1 +1 1 1 0 0 1 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 0 1 1 0 0 1 1 1 0 0 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 0 0 1 1 1 1 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 1 1 0 0 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 0 0 0 1 +0 0 1 +1 0 0 1 1 1 1 0 0 1 1 0 0 1 0 1 1 0 0 1 0 1 0 0 1 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 1 0 0 1 1 0 1 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 1 0 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 1 0 1 1 0 1 0 0 1 1 0 0 0 0 1 0 1 +0 0 1 +1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 1 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 1 1 1 0 1 1 0 1 0 1 0 1 1 1 0 1 0 1 1 0 1 0 0 1 1 0 1 1 0 1 0 1 0 1 1 0 0 0 0 1 1 1 1 0 1 1 0 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 +0 0 1 +1 1 0 0 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 1 1 1 0 0 1 0 1 +1 0 0 +1 0 1 0 0 1 1 0 1 1 1 1 1 0 1 0 0 0 1 1 1 0 1 0 0 1 1 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 0 0 1 0 1 0 1 1 1 1 1 1 0 1 1 0 0 0 1 0 1 1 0 1 1 1 0 1 1 0 1 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 +0 0 1 +1 1 1 1 1 0 1 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 +0 0 1 +0 0 1 0 0 0 1 1 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 0 1 0 1 0 0 0 0 1 0 1 0 1 1 0 1 0 1 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 0 1 0 1 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 1 1 +1 0 0 +0 0 1 1 1 0 1 0 0 0 0 0 1 1 0 1 0 0 0 0 1 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0 1 0 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 1 0 1 1 1 1 0 1 0 0 1 0 1 0 1 0 1 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 1 0 1 0 1 +1 0 0 +1 0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 1 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 0 1 0 1 1 0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 1 1 0 1 0 0 0 0 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 +1 0 0 +0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 1 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 0 0 0 1 1 0 0 0 1 1 0 0 1 1 1 1 1 0 1 0 1 0 1 0 0 1 0 0 0 1 1 1 1 1 1 0 1 0 1 1 0 1 0 1 0 0 0 1 +0 0 1 +0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0 1 0 0 1 1 0 0 0 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 0 0 0 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 0 0 0 1 0 0 0 1 1 1 0 1 0 1 1 1 +0 0 1 +0 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 1 1 0 1 0 0 1 1 1 0 1 1 1 0 0 1 1 1 1 0 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 1 1 0 1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 +1 0 0 +0 1 1 1 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 1 0 1 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 1 0 1 1 1 1 0 1 0 0 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 0 +0 0 1 +0 0 0 1 1 0 1 0 1 0 0 0 1 1 1 1 0 0 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 1 0 0 1 1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 1 1 1 1 1 0 1 1 0 0 1 0 0 0 1 1 1 0 0 +0 0 1 +1 0 0 1 1 1 1 0 0 1 0 0 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1 0 0 0 0 1 0 1 0 1 0 1 0 1 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 1 0 1 0 1 1 0 0 1 0 1 0 1 +0 0 1 +1 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 1 +0 0 1 +0 0 0 1 1 0 0 1 1 1 1 0 1 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 0 0 0 1 1 0 0 1 1 1 1 1 1 0 0 1 0 0 1 0 1 0 1 0 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 1 0 1 1 1 0 0 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 0 0 1 1 1 1 +0 0 1 +1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 1 1 0 1 1 1 1 1 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 0 1 1 1 0 1 1 1 0 1 0 1 0 1 1 0 0 1 1 1 1 1 0 0 1 0 0 0 1 0 0 0 0 1 1 1 1 +0 0 1 +0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 1 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 +0 1 0 +0 1 1 0 1 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 1 1 1 0 0 0 1 1 1 0 0 0 1 0 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 0 1 1 1 1 1 0 0 1 0 1 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 1 0 1 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 0 +0 0 1 +0 1 1 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 1 0 1 1 0 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 0 1 1 1 1 1 0 1 0 1 0 0 0 1 1 0 0 0 1 1 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 1 0 1 1 1 0 1 1 +0 1 0 +1 0 0 0 1 0 0 1 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 1 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 1 1 1 1 0 0 1 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 1 1 1 1 1 1 1 +0 1 0 +1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 0 1 1 0 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1 0 0 1 1 1 1 0 1 1 0 0 0 1 1 0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 0 1 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 0 1 0 1 1 0 1 0 1 +0 1 0 +0 0 0 0 1 1 1 1 1 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 1 1 1 0 1 1 1 0 1 1 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 0 0 1 0 0 1 0 1 0 1 0 0 0 1 1 1 0 1 1 1 0 0 0 1 1 1 0 0 1 0 1 0 0 0 1 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 1 1 0 0 1 0 1 1 1 +0 1 0 +0 0 0 1 0 0 1 1 1 0 0 1 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 0 0 1 0 0 0 1 1 1 1 0 0 1 1 0 1 1 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 1 1 0 1 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 1 0 1 +0 0 1 +1 0 0 0 0 1 0 1 1 1 1 0 1 0 0 0 0 1 1 1 0 1 1 0 0 1 0 1 0 1 1 0 1 1 1 0 1 1 1 0 0 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 1 0 1 1 0 0 1 0 1 1 0 1 0 1 0 +0 0 1 +0 1 0 1 0 1 1 0 1 1 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 1 0 0 0 0 0 1 0 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 +0 0 1 +1 1 1 1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 1 0 1 1 0 0 0 0 1 1 1 1 1 0 0 1 0 1 1 1 0 0 0 1 0 0 0 0 1 1 1 0 1 1 1 0 1 0 1 0 0 1 0 0 1 1 1 1 1 0 0 1 1 0 1 0 0 1 0 0 1 1 0 0 1 0 1 0 1 0 0 1 1 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 0 0 0 1 1 1 0 +0 0 1 +0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 +1 0 0 +1 1 1 1 1 1 1 0 0 0 0 1 0 0 1 1 1 0 0 1 0 1 1 1 1 0 0 0 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 1 1 1 0 0 0 0 1 1 1 0 0 1 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 0 1 0 1 1 1 0 1 +0 1 0 +0 0 1 1 1 0 1 1 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 1 0 1 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 1 0 0 0 0 0 1 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 0 0 0 0 0 1 1 1 0 1 1 0 1 0 1 1 1 0 0 0 0 0 0 0 1 1 0 +0 0 1 +1 1 0 0 1 0 0 0 1 1 1 0 1 1 1 0 1 0 0 1 1 1 0 0 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 1 1 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 0 0 0 +0 0 1 +0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 1 0 0 0 0 1 0 1 1 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 +1 0 0 +1 0 1 0 1 1 0 1 1 1 1 0 0 1 1 0 0 1 0 1 1 1 0 0 1 1 0 1 1 0 1 0 0 0 0 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 1 0 1 0 1 0 0 1 1 0 1 1 1 1 0 1 0 0 0 1 1 0 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 0 0 1 1 0 +0 0 1 +1 0 0 0 1 0 1 1 1 0 0 1 0 0 1 1 1 0 0 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 1 1 0 1 0 0 1 0 0 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1 1 1 0 1 1 1 1 0 1 0 1 0 0 0 1 1 0 0 0 0 1 1 0 1 +1 0 0 +1 1 1 0 1 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 1 0 0 1 0 0 0 1 1 1 1 0 1 0 1 1 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 0 1 0 0 1 0 1 1 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 1 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 +0 0 1 +1 1 1 1 1 0 0 1 0 1 1 0 1 1 1 1 1 0 0 0 0 0 1 1 0 1 1 0 0 1 0 0 0 0 0 1 1 0 0 1 1 0 1 0 0 1 0 0 0 1 1 1 0 1 0 1 1 0 1 1 0 1 1 1 0 0 0 1 1 1 1 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 1 0 1 0 0 1 1 0 1 1 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 1 0 0 1 +0 0 1 +0 1 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 1 1 1 1 0 1 0 0 1 0 0 0 1 1 1 1 1 1 0 0 1 0 0 1 0 1 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 0 0 1 1 +1 0 0 +1 1 0 0 1 1 0 0 0 0 1 0 1 1 1 0 0 1 1 1 1 0 0 1 0 1 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 0 1 0 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 1 1 0 1 1 1 0 1 0 1 0 1 0 1 1 0 0 0 1 1 0 1 0 0 1 0 0 +1 0 0 +1 0 1 0 1 0 1 0 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 0 0 1 1 0 0 1 1 0 1 0 1 1 0 0 0 1 0 1 1 1 1 0 0 1 0 0 0 1 1 1 0 0 0 1 0 1 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 1 1 0 1 1 1 1 0 1 0 1 1 0 0 0 1 1 0 +0 0 1 +0 1 0 0 0 0 1 1 1 1 1 0 1 0 0 0 0 0 1 0 1 1 1 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 1 0 0 1 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 1 1 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 0 1 0 1 0 +0 0 1 +1 1 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1 1 1 0 1 1 0 0 0 0 0 0 1 1 0 1 0 1 1 0 0 1 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 1 0 0 0 1 0 1 +0 1 0 +1 0 1 1 1 1 1 1 0 0 1 1 0 1 0 1 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 1 0 1 1 0 0 0 0 1 1 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 1 0 0 1 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 1 1 1 1 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 +0 1 0 +1 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 1 1 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 0 1 0 1 1 0 0 1 0 1 0 0 0 1 0 1 1 1 0 1 1 1 1 0 0 0 1 0 1 1 0 0 1 0 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 1 1 0 1 0 0 1 +0 1 0 +1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 0 1 1 1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 0 1 1 1 0 1 1 1 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 1 0 0 1 0 1 0 1 1 0 0 1 0 1 0 0 0 1 1 1 1 1 0 0 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 +0 0 1 +0 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 1 0 1 1 0 0 1 1 1 0 1 1 0 1 0 1 0 1 0 0 0 0 0 1 0 0 1 1 1 0 1 0 0 1 1 1 0 1 1 0 1 0 1 1 1 1 1 1 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 1 1 0 1 0 1 0 0 0 0 0 0 0 1 0 1 1 0 1 1 0 1 0 1 0 1 1 0 +0 0 1 +0 0 1 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 1 0 1 0 1 1 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 1 1 +1 0 0 +0 1 0 1 1 1 0 1 1 1 1 1 0 1 0 0 0 0 1 1 1 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 0 0 0 1 0 1 0 1 1 0 0 1 1 0 1 1 1 0 1 0 1 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 1 0 0 1 1 0 1 1 0 0 0 0 0 1 1 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 0 1 0 0 1 0 +0 0 1 +0 0 0 1 0 1 1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 1 1 0 0 0 0 0 1 0 0 0 1 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 1 1 1 1 0 0 1 1 1 0 1 1 1 0 0 0 0 0 1 1 1 1 1 0 1 0 0 1 +1 0 0 +0 1 0 1 0 0 0 0 1 1 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 0 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 1 1 0 1 1 0 1 1 0 0 0 0 0 1 1 0 1 1 0 0 0 0 1 0 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0 0 1 0 1 0 0 0 1 1 1 +0 0 1 +1 0 0 0 0 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 0 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0 0 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 1 0 0 1 0 0 1 1 0 0 1 0 0 0 0 0 1 +0 1 0 +1 0 1 0 1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 1 0 1 0 1 0 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 1 1 0 1 0 0 1 0 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 1 0 1 1 0 0 0 1 1 0 1 1 1 1 1 1 0 0 0 0 0 1 +0 0 1 +0 1 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 1 0 1 0 0 1 1 1 0 0 1 1 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 1 1 0 1 1 0 1 0 1 0 1 1 0 1 1 1 0 0 1 1 0 1 1 1 1 0 0 0 1 0 1 0 1 1 1 0 1 1 1 0 0 0 0 0 0 0 1 0 0 1 1 1 1 0 0 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 0 +1 0 0 +0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0 1 0 1 1 1 0 1 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 +0 0 1 +0 0 1 1 1 0 0 0 1 1 1 0 1 1 1 0 0 1 1 1 1 0 1 1 1 0 1 1 0 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 1 0 0 1 1 0 +1 0 0 +1 0 1 0 0 0 0 1 0 1 1 1 1 0 0 1 0 0 1 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 0 1 1 1 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 1 0 0 0 1 1 0 0 0 0 1 +0 1 0 +1 1 0 1 1 1 0 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 0 0 1 0 1 0 1 0 1 1 0 0 1 0 0 0 1 1 1 1 0 1 1 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 0 +0 1 0 +0 1 0 1 0 0 0 1 1 0 1 0 0 0 1 0 0 0 1 1 0 1 0 0 1 0 0 1 1 0 1 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 1 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 1 0 1 0 1 0 0 0 0 1 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 +0 0 1 +1 0 1 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 0 1 1 1 0 0 1 1 1 0 1 0 0 1 1 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 0 1 1 1 0 0 0 1 0 0 1 1 1 0 1 0 1 1 0 0 1 1 1 1 +0 0 1 +0 1 1 1 1 0 1 1 1 1 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 0 1 0 0 0 1 0 1 1 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 1 1 1 0 1 0 1 0 0 0 0 1 0 1 1 1 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 0 0 1 1 1 0 +0 1 0 +1 1 1 0 1 1 1 0 1 1 0 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 0 1 0 1 1 0 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 0 1 1 0 1 1 0 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 0 0 1 0 1 0 1 +0 0 1 +0 0 0 1 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 0 1 1 1 0 1 0 0 1 1 1 1 0 1 1 0 1 1 0 +0 0 1 +1 1 1 1 1 1 1 0 1 1 1 0 1 0 0 1 0 0 1 0 0 1 0 1 1 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 1 1 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 0 0 0 1 1 0 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 1 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 0 0 0 0 1 1 0 +1 0 0 +1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 1 0 0 1 0 1 0 1 1 1 1 1 0 0 1 1 0 1 1 1 1 1 1 0 1 0 1 1 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 +0 0 1 +1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 1 0 1 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 0 +0 1 0 +1 1 0 1 0 0 0 0 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 1 0 0 0 0 0 1 1 1 1 0 1 1 1 1 0 1 0 0 0 1 0 1 1 1 0 1 0 1 1 1 1 0 1 0 0 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 0 1 1 1 0 0 0 0 0 0 0 1 1 0 1 1 1 0 1 0 1 1 0 1 1 1 1 1 +0 0 1 +1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 0 0 1 0 0 1 1 0 0 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 0 0 1 0 0 1 0 0 1 1 1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 1 1 0 1 1 1 1 0 0 0 0 0 1 0 0 0 1 1 0 1 0 +0 0 1 +1 0 0 1 1 0 1 0 1 1 1 0 0 1 0 1 1 0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 1 0 1 0 1 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 0 0 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 1 0 0 1 1 1 1 0 +1 0 0 +0 0 0 0 0 0 1 1 0 0 0 1 0 0 1 1 0 0 1 1 0 1 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 0 0 0 1 0 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 0 1 0 0 0 0 1 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 1 1 1 1 0 1 1 0 1 1 1 1 0 1 1 1 0 1 0 0 1 0 1 1 1 0 0 0 0 0 1 1 0 0 1 +0 0 1 +1 1 1 0 1 1 1 0 1 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 1 1 1 0 1 0 0 0 0 0 1 0 1 1 1 0 0 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 0 0 1 0 1 0 1 0 1 0 1 1 1 0 0 1 0 1 0 0 1 0 0 1 0 0 1 1 +0 0 1 +1 0 1 0 0 1 1 1 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 1 1 1 0 0 1 0 1 0 0 1 0 0 1 1 0 1 1 1 0 1 1 1 0 0 0 0 1 1 0 0 1 0 0 1 0 1 0 1 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 1 +0 1 0 1 1 1 0 1 1 1 0 0 1 1 0 0 0 1 0 1 0 1 1 0 0 1 0 1 1 1 0 1 0 1 1 0 0 0 0 0 0 1 0 0 1 1 0 0 1 1 1 1 1 0 0 1 0 1 0 1 1 1 1 1 0 0 0 0 0 1 0 1 1 0 1 1 0 1 1 0 1 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 1 0 +0 0 1 +0 1 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 0 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 1 0 1 1 1 0 0 1 0 0 1 1 1 1 0 0 0 1 0 0 0 0 1 0 0 1 0 1 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 1 0 1 1 +0 1 0 +1 0 1 0 0 0 0 0 1 1 1 0 1 1 1 1 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1 1 1 0 0 1 0 1 0 1 0 1 1 0 1 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 1 1 0 1 1 0 0 1 0 0 1 0 1 1 0 1 1 0 0 1 1 1 1 1 1 0 0 0 1 1 1 0 +0 0 1 +0 0 0 0 0 0 0 1 1 0 1 1 0 1 1 1 1 0 1 1 0 0 1 0 1 1 1 0 0 1 0 1 1 0 1 1 1 0 1 1 0 1 0 1 0 0 1 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 0 0 0 0 0 1 0 0 0 0 1 1 1 0 1 0 +0 0 1 +0 1 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 1 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 1 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 +0 0 1 +1 0 1 1 1 1 0 0 0 1 1 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 0 0 1 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 0 1 0 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 0 1 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 0 1 0 0 1 1 1 1 0 0 1 +0 0 1 +0 1 1 1 0 0 0 1 0 1 1 1 0 1 0 1 1 0 0 0 1 1 0 0 0 0 1 1 0 1 1 0 1 1 0 0 0 0 0 1 1 0 0 1 0 0 1 0 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 +0 0 1 +1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 1 0 1 0 1 1 0 1 0 0 1 0 1 1 1 1 0 0 0 0 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 1 0 1 1 +1 0 0 +1 0 0 1 0 1 1 1 0 0 0 1 1 1 1 0 0 0 0 1 0 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1 0 0 1 0 1 0 1 1 0 1 1 1 1 0 0 0 1 1 0 0 0 0 1 0 1 1 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 0 1 0 0 0 1 0 1 0 1 +0 0 1 +0 0 0 0 1 1 0 0 0 1 0 1 1 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 1 1 0 1 0 0 0 1 0 1 1 1 0 1 1 0 1 1 1 0 0 1 1 0 1 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 1 1 1 1 0 1 0 1 0 1 0 0 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 0 1 0 0 0 1 0 1 +0 0 1 +1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0 1 1 0 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 0 0 0 1 0 1 1 0 1 1 1 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 0 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 1 1 +1 0 0 +1 0 0 1 1 1 1 0 1 1 0 1 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 1 1 1 0 0 1 0 0 0 1 1 1 0 0 1 0 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 0 1 0 1 1 0 0 1 1 0 0 1 1 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 1 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 +0 0 1 +1 1 1 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0 1 1 1 0 1 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 0 0 0 1 1 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 +0 0 1 +1 0 1 0 0 0 1 1 0 1 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 1 1 1 1 0 1 0 1 0 0 1 1 0 1 0 1 1 0 0 0 1 1 1 1 0 1 1 0 0 1 1 0 0 1 1 +1 0 0 +0 1 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 1 1 1 0 1 0 0 1 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 1 0 +1 0 0 +0 1 0 0 0 1 0 0 1 1 1 0 0 1 0 1 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 0 0 0 1 1 0 1 0 0 1 1 0 0 0 0 1 1 0 1 0 0 1 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 0 1 1 0 1 0 0 0 1 1 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 1 1 1 0 1 0 0 1 1 0 +0 0 1 +0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0 1 1 0 1 1 1 0 0 1 0 1 1 0 1 0 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 1 1 1 0 0 0 0 0 0 1 0 1 1 0 1 0 0 1 1 1 1 1 0 0 0 1 1 1 +0 0 1 +0 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 1 0 1 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0 0 1 0 0 +0 1 0 +0 1 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 0 1 0 0 1 1 1 1 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 1 1 1 0 0 1 1 1 1 0 1 1 0 0 1 +0 0 1 +1 0 0 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 1 0 0 1 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1 0 0 1 1 1 0 1 0 1 0 +0 1 0 +0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 1 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 +0 1 0 +0 0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 1 1 1 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 1 0 1 0 0 0 1 0 1 1 0 0 0 0 0 1 0 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 0 1 1 0 1 1 0 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 0 0 0 1 1 0 1 1 0 1 1 1 0 0 0 0 0 0 1 +0 0 1 +1 1 0 1 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 1 1 0 0 0 1 0 0 0 0 0 1 0 1 1 1 1 0 1 1 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 0 0 1 0 1 0 1 0 1 1 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 1 +0 0 1 +1 1 1 1 0 0 1 1 1 1 0 1 1 1 0 1 0 1 0 0 1 1 0 1 1 0 0 0 0 1 1 1 0 1 0 1 1 0 0 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 0 1 0 0 1 0 0 1 1 1 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 0 0 1 +0 0 1 +1 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 0 0 1 1 0 1 1 1 0 1 1 0 1 0 1 1 0 0 1 0 1 1 0 1 1 1 1 1 1 1 0 0 1 0 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 1 0 0 0 0 1 0 +0 0 1 +0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 1 0 1 0 0 0 1 1 1 0 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 0 0 0 1 0 1 1 0 1 0 1 1 1 1 0 1 0 0 0 1 0 1 1 0 0 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 0 1 1 0 1 0 1 0 1 0 +0 1 0 +0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0 1 1 1 1 0 1 1 0 1 1 1 1 0 1 0 0 1 1 1 0 1 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 1 1 1 1 0 1 1 0 1 0 0 0 0 1 1 1 1 0 1 0 1 1 +0 0 1 +0 1 0 1 1 0 0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 0 1 1 1 0 1 0 1 1 0 0 1 1 0 0 1 0 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 1 0 0 1 +0 1 0 +1 1 1 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 1 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 1 1 0 0 1 1 0 1 1 1 0 0 0 0 1 0 1 1 0 0 1 0 0 1 0 0 1 1 1 1 0 0 1 0 0 1 1 1 1 1 0 0 0 0 1 0 1 0 1 0 1 1 1 1 0 +0 1 0 +1 1 1 1 1 0 1 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 1 0 1 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 1 0 0 0 1 0 0 +0 1 0 +1 1 1 0 0 1 0 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1 0 0 1 1 1 0 1 1 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 0 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 1 1 0 1 0 1 1 +0 0 1 +0 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 0 0 1 0 0 0 1 1 0 1 0 0 1 1 1 0 1 1 1 1 0 1 0 0 1 1 0 0 0 0 1 0 1 0 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 0 1 1 1 1 0 1 0 0 1 0 1 0 1 0 0 0 1 1 1 0 0 0 0 1 1 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 +1 0 0 +1 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 1 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 1 0 1 0 0 0 1 1 0 1 0 1 1 1 0 1 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 1 0 1 1 0 1 0 0 0 1 1 1 0 +0 1 0 +0 0 0 1 0 1 1 0 1 1 1 1 1 1 1 0 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 1 0 1 1 1 0 0 1 0 0 0 1 0 1 1 1 0 0 1 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1 1 0 0 0 0 1 1 0 1 1 0 1 0 +1 0 0 +1 1 1 1 1 0 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 1 0 1 1 1 1 0 1 1 1 0 0 1 0 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 0 0 1 0 0 1 1 1 1 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 1 0 0 0 0 1 +1 0 0 +1 0 0 0 1 1 0 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 1 0 0 0 0 1 0 0 1 1 0 1 1 1 1 1 1 0 1 1 1 1 0 0 0 1 0 1 0 0 1 1 1 1 1 1 1 1 0 1 1 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 0 1 1 1 1 1 1 1 0 1 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 1 +0 0 1 +1 0 1 0 0 1 0 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 1 1 +0 0 1 +1 0 0 1 0 0 1 0 0 1 1 1 1 0 0 1 1 0 1 0 1 1 1 0 0 1 0 0 0 1 1 0 1 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 1 1 1 0 1 0 1 1 0 0 1 1 1 0 0 0 1 0 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1 0 1 0 1 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 0 1 0 1 1 1 0 1 1 0 1 +0 0 1 +0 1 0 1 1 0 1 0 1 0 0 0 1 0 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 0 1 0 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 1 1 0 0 1 1 1 1 0 1 1 1 1 0 0 0 1 0 1 1 0 1 1 1 1 0 0 0 1 1 1 1 0 0 1 1 0 +1 0 0 +1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 1 1 0 1 0 0 0 1 0 1 1 1 1 0 1 1 0 1 1 0 0 1 0 0 0 1 0 1 0 1 0 0 0 1 1 1 1 0 1 1 1 0 0 0 0 0 0 1 1 0 0 1 0 0 +0 1 0 +1 0 1 1 1 1 0 1 1 1 0 0 0 1 0 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1 0 1 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1 1 0 0 0 0 0 1 0 0 1 0 1 1 1 0 +1 0 0 +0 0 1 0 0 0 0 0 1 0 0 1 1 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 0 0 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 1 0 1 0 1 1 0 1 0 0 0 0 1 0 1 1 0 1 0 0 0 +0 0 1 +0 0 1 1 0 0 0 1 0 0 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 1 0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 1 1 1 1 0 1 1 0 0 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 1 +0 1 0 +1 0 0 0 0 1 0 0 0 0 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 0 0 1 1 1 1 1 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 1 1 1 0 1 1 0 0 0 0 0 0 1 0 1 1 0 0 1 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 +1 0 0 +1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 1 0 1 1 1 0 1 1 0 0 0 1 1 0 0 1 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 1 0 +0 1 0 +0 0 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 0 1 1 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 1 1 0 1 1 0 1 0 1 1 0 0 1 1 0 1 0 1 0 0 1 0 0 1 1 0 1 0 0 0 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 0 1 0 0 +1 0 0 +1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 0 0 0 1 0 1 0 1 1 1 0 1 0 1 1 0 0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 0 1 1 1 0 1 +0 0 1 +0 0 1 1 1 0 0 1 1 0 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 1 0 1 1 1 0 0 1 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1 1 1 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 0 0 1 0 1 0 0 1 1 0 1 0 +1 0 0 +1 0 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 1 1 1 0 1 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 1 1 1 1 0 0 1 1 1 0 1 0 0 1 1 1 0 1 1 1 0 0 0 1 1 0 1 0 0 0 1 1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 1 0 1 1 1 0 0 1 1 1 1 1 0 0 1 0 0 +0 0 1 +0 0 0 1 0 1 1 0 1 1 0 0 1 1 0 0 0 1 0 0 0 1 1 1 1 0 1 0 0 0 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 1 0 1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 0 1 1 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 1 0 +0 1 0 +0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 1 0 0 1 1 1 0 1 0 0 0 0 1 0 1 1 0 1 1 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 0 0 1 0 0 0 0 1 1 1 0 0 1 0 +0 1 0 +0 0 0 1 1 1 1 0 0 1 0 1 1 0 0 0 1 1 1 1 1 1 1 0 0 1 1 0 1 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 0 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 0 0 0 1 0 1 1 0 0 1 0 1 1 1 1 0 1 1 1 0 +0 0 1 +1 0 0 0 1 1 1 0 1 0 0 1 0 0 0 1 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1 0 0 0 0 1 0 1 0 1 0 0 1 0 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 1 1 0 1 0 +1 0 0 +0 1 1 0 1 0 0 1 1 1 1 1 1 1 0 0 1 0 1 1 1 0 1 1 0 1 0 0 0 0 0 1 1 0 1 1 1 1 1 1 0 1 0 1 1 0 1 0 0 0 0 0 0 1 1 1 1 0 1 1 1 0 0 0 1 1 0 1 0 0 1 1 1 1 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 1 0 1 1 1 0 0 0 +0 0 1 +1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 1 0 0 0 0 1 0 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 1 1 0 1 1 1 0 0 0 1 1 1 0 1 1 1 1 1 1 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 0 1 +0 0 1 +1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 1 1 1 0 1 1 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 1 1 1 1 0 1 1 1 1 1 0 0 0 1 1 1 0 0 0 0 1 0 1 1 0 1 1 0 0 0 1 0 1 1 0 0 0 1 1 +0 1 0 +0 0 0 1 1 0 1 0 1 1 1 0 1 1 1 1 1 0 0 1 0 0 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 1 0 0 0 1 1 0 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 1 0 0 1 0 0 0 0 0 0 +0 0 1 +0 1 0 0 0 1 1 1 0 1 1 1 1 0 1 0 0 0 1 1 0 1 1 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 0 1 0 1 1 1 0 1 1 0 1 0 1 0 0 1 0 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 +0 0 1 +0 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 0 1 1 1 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 1 0 1 1 0 0 1 1 0 1 1 1 1 0 0 0 1 0 1 1 +0 1 0 +1 1 1 0 0 0 1 1 0 0 1 1 0 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 0 0 1 1 1 1 0 1 0 0 1 0 0 0 1 0 1 1 0 1 0 1 1 0 0 1 0 0 1 1 0 0 1 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 1 1 1 0 0 1 0 1 1 1 0 0 0 0 1 1 0 1 1 +0 0 1 +1 0 1 0 1 1 1 0 0 1 0 1 0 0 0 0 1 1 1 0 1 0 0 1 0 0 1 0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 1 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 1 1 1 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 +0 0 1 +0 1 1 0 1 0 0 1 1 0 1 1 1 1 1 1 1 0 1 0 1 1 0 1 0 1 0 1 1 0 0 1 1 1 1 1 1 0 1 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 0 1 0 0 0 0 1 1 1 1 1 1 1 0 1 0 1 1 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 1 1 1 1 0 0 0 0 1 0 1 0 1 0 1 1 0 1 1 +0 0 1 +0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 1 1 1 1 1 1 0 0 0 0 1 1 0 1 0 0 0 0 1 0 0 1 1 1 0 1 0 0 1 0 1 0 0 0 1 1 1 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 1 0 1 1 0 1 1 0 1 0 0 0 0 1 0 1 0 1 0 0 0 1 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 0 +0 0 1 +1 0 1 0 1 0 1 0 1 1 1 0 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 1 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 0 1 0 1 1 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 1 1 1 0 0 +0 0 1 +0 1 0 0 0 1 1 1 1 0 0 0 0 0 1 0 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 0 1 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 +0 1 0 +1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1 0 0 1 1 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 1 0 0 1 0 0 0 0 0 0 1 1 +1 0 0 +0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 1 1 0 1 0 0 1 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 1 1 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 0 0 1 1 0 +0 0 1 +0 1 0 0 0 1 0 1 0 1 0 1 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 1 0 1 1 1 0 0 1 1 0 1 0 1 1 1 0 1 1 0 1 1 0 1 0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 1 1 0 1 1 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 1 +0 1 0 +1 0 1 0 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0 +1 0 0 +0 0 0 1 0 0 1 1 0 1 0 0 0 1 0 1 1 0 0 0 0 1 1 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 0 1 1 0 1 0 0 1 0 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 +1 0 0 +1 1 0 0 0 0 1 1 1 1 1 1 0 1 0 0 0 1 1 0 0 1 0 0 0 1 1 0 0 0 1 1 0 1 1 0 1 1 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 1 0 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 0 0 0 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 +0 0 1 +1 0 0 1 0 1 0 1 0 0 0 0 1 1 1 1 1 0 0 1 0 1 0 1 0 1 1 0 0 1 1 1 0 0 0 1 0 1 1 0 0 0 1 1 1 0 0 1 0 1 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 0 1 1 1 0 1 1 0 0 1 0 0 0 1 1 1 0 1 1 1 1 1 0 0 1 1 1 0 0 1 1 1 1 0 0 0 1 1 1 0 0 1 1 +0 0 1 +0 0 1 1 0 0 0 0 0 1 1 1 1 0 1 0 1 1 1 1 0 1 0 0 1 1 1 0 1 0 1 0 1 1 0 1 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 0 1 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 0 0 1 0 1 +0 1 0 +0 0 1 0 0 0 0 1 0 1 0 0 1 1 1 1 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 1 1 0 0 1 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 0 1 1 0 1 1 1 0 1 0 1 0 1 1 1 0 0 1 0 0 0 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 +0 0 1 +0 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 1 1 0 1 1 1 0 0 0 0 1 1 0 1 0 1 0 0 1 1 1 1 1 0 1 0 0 0 1 1 0 1 0 1 1 1 0 1 1 0 1 0 1 1 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 1 0 1 1 1 0 0 0 0 1 1 0 1 1 1 +0 0 1 +0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 1 0 1 0 0 0 1 1 1 1 0 0 1 1 0 1 1 0 0 1 0 0 0 1 0 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 1 1 1 0 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 +0 0 1 +1 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 1 0 0 1 0 1 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 0 1 1 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 1 1 1 1 1 0 +0 1 0 +1 0 0 0 1 0 1 0 1 1 1 0 1 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 1 0 0 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 1 1 0 1 0 0 0 1 0 1 0 1 0 1 1 1 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 1 0 0 +0 0 1 +1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 0 0 0 0 1 0 0 0 1 1 1 1 0 1 1 1 0 0 0 1 1 0 0 0 1 1 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 0 1 0 0 1 1 1 0 1 1 1 1 0 0 1 1 0 0 1 1 1 1 +0 0 1 +0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 1 0 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 1 1 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 1 1 0 1 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 1 1 1 1 1 0 +0 0 1 +1 1 1 1 1 0 1 0 0 1 1 1 1 1 1 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 0 1 1 0 0 1 0 1 0 0 1 1 1 0 1 1 1 0 0 1 0 1 1 1 1 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 1 1 1 0 1 0 0 1 1 0 0 0 1 1 1 1 0 1 0 1 1 +1 0 0 +0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 1 1 0 0 0 0 1 1 1 1 0 1 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 1 0 0 0 1 1 1 0 1 1 0 0 0 1 1 0 1 1 0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 0 0 1 0 1 0 1 1 0 0 0 +0 0 1 +1 0 0 1 1 0 1 1 1 0 1 1 0 0 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 1 1 1 0 1 0 1 1 1 0 1 1 1 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 0 1 0 1 1 0 1 1 0 1 1 1 0 1 0 0 1 1 0 0 0 1 1 0 0 1 0 0 1 1 0 1 1 0 1 0 +0 0 1 +1 1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 1 1 +0 0 1 +0 0 1 1 1 0 0 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 1 0 0 0 1 1 0 1 1 1 1 1 0 1 1 1 0 0 0 1 1 0 0 1 1 1 1 1 1 0 0 1 0 0 1 1 0 0 1 1 1 0 0 1 1 0 1 0 0 1 0 0 1 0 1 +0 1 0 +0 1 1 0 0 1 0 0 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 0 0 0 1 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 0 0 1 0 1 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1 0 0 +0 1 0 +1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 1 1 0 1 1 0 0 1 0 0 1 1 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 0 1 1 0 1 1 0 1 0 1 1 1 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 +0 0 1 +1 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 1 1 1 0 1 0 1 0 0 1 1 0 1 1 1 1 1 1 0 1 0 1 0 1 1 1 1 1 0 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 0 0 0 1 0 1 1 0 0 0 0 0 1 1 1 0 0 1 0 1 1 1 0 1 0 0 +1 0 0 +0 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 1 1 0 1 0 0 1 0 1 1 1 0 1 0 0 1 1 1 0 0 1 0 1 0 0 0 1 1 1 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 0 1 1 1 1 1 0 0 1 0 1 0 1 1 1 0 1 1 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 +0 0 1 +0 0 0 0 0 0 0 1 0 1 0 1 1 1 1 0 1 1 0 0 1 1 0 0 0 1 1 0 0 1 0 1 1 1 1 0 1 1 0 1 1 1 1 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 1 0 0 0 0 1 1 1 0 1 1 1 0 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0 0 0 1 0 1 0 0 0 0 0 1 1 1 1 1 1 0 0 1 0 0 0 1 1 0 1 1 1 1 1 1 +0 0 1 +1 0 1 0 0 0 1 1 1 0 0 1 0 0 1 1 1 1 1 1 0 1 1 1 1 0 1 0 0 0 1 1 0 1 0 1 1 0 0 1 0 1 1 0 1 1 1 1 1 1 1 1 0 0 0 1 0 0 1 1 1 0 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 0 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 1 1 1 +0 0 1 +1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 1 0 0 1 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1 0 0 1 1 1 0 1 0 1 0 +0 1 0 +1 0 0 0 0 0 0 1 0 1 1 0 1 1 1 0 1 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 1 1 1 0 0 1 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 0 0 1 1 0 1 1 1 0 1 0 0 1 0 1 1 1 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 1 0 0 1 0 1 0 1 1 0 0 1 1 1 0 +0 0 1 +0 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 0 1 1 0 0 1 0 0 0 0 0 1 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 1 1 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 1 0 0 0 0 0 1 0 0 0 0 +0 0 1 +0 0 1 0 0 1 1 0 0 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 1 0 1 0 1 0 0 0 1 0 0 1 1 1 0 0 1 0 1 0 1 1 0 0 1 0 1 0 0 0 1 1 0 1 1 1 0 0 1 1 0 1 1 0 1 1 1 1 1 1 1 0 0 0 0 0 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 1 +1 0 0 +1 0 1 1 1 1 0 0 1 0 0 1 1 1 1 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 1 1 0 1 1 1 0 0 1 1 0 1 1 1 1 1 0 1 0 1 1 1 0 0 0 1 0 0 0 0 0 1 0 0 1 1 0 0 1 1 1 1 0 1 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 0 +0 0 1 +1 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 0 0 0 0 1 1 +1 0 0 +0 1 0 1 1 0 1 1 1 0 0 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 1 0 1 0 1 0 1 1 1 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 0 1 0 0 0 1 1 1 0 0 0 0 +0 1 0 +1 1 1 1 1 1 1 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 1 1 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 1 1 0 1 1 0 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 1 1 0 1 0 0 0 0 0 1 1 1 1 0 1 1 1 0 1 0 1 1 0 0 1 0 1 0 0 0 1 1 1 0 1 0 0 1 0 0 0 0 +0 1 0 +1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 1 0 0 0 1 1 1 0 1 0 0 0 1 0 1 1 1 0 1 0 0 1 1 0 0 0 0 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 0 1 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 1 1 0 0 0 0 0 1 1 0 1 1 0 1 1 1 0 1 0 1 0 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 0 1 0 1 1 +0 0 1 +0 0 0 1 1 1 1 0 0 1 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0 1 0 0 0 0 0 0 1 1 0 0 1 0 1 0 1 1 0 1 1 1 1 0 0 1 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 1 +0 0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 0 0 1 0 0 1 1 0 0 0 1 0 1 1 0 1 1 1 1 0 1 0 1 0 0 0 1 1 0 1 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 1 0 1 0 0 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 1 +0 0 1 +0 1 0 1 1 0 0 0 1 1 1 1 0 0 1 0 1 0 1 0 1 1 1 0 1 0 0 1 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 0 1 0 1 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 0 0 1 1 1 0 0 1 1 1 0 1 0 1 0 1 0 1 1 +1 0 0 +0 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 1 1 1 1 1 1 0 1 1 0 1 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 1 1 1 0 1 1 1 1 1 0 1 1 0 1 1 0 0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 1 0 1 1 1 1 1 1 0 0 1 0 1 1 0 +0 0 1 +0 1 0 1 1 0 1 0 1 0 0 1 1 1 0 1 0 0 1 1 1 1 1 1 1 0 0 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 0 1 0 0 0 0 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 1 0 1 1 1 1 1 0 0 1 1 0 0 1 0 1 0 1 1 0 1 1 0 0 0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 1 0 1 1 1 1 1 +0 0 1 +1 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 1 0 1 1 0 0 0 0 1 1 0 1 0 0 1 0 1 0 0 0 1 1 0 1 0 0 1 1 1 0 0 0 1 0 1 1 0 1 1 0 0 1 1 1 1 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 1 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0 +0 0 1 +0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 0 0 1 1 0 1 0 1 0 1 0 0 0 1 1 0 0 0 1 1 1 1 0 1 1 1 1 0 0 0 1 1 0 1 0 +0 0 1 +0 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 0 1 1 0 0 0 1 1 0 0 1 1 1 1 1 0 1 0 1 0 1 0 0 1 0 1 1 1 1 0 1 0 1 0 1 1 1 0 0 0 1 0 0 0 0 1 1 1 0 0 0 1 1 0 +1 0 0 +1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 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 1 1 1 1 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 1 1 1 0 0 1 0 0 0 0 0 1 1 0 1 1 0 0 0 1 0 1 0 0 0 1 1 0 1 0 1 0 1 0 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 1 0 1 1 0 1 +0 1 0 +0 1 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 1 0 0 1 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 1 0 0 0 1 0 1 0 1 0 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 0 1 1 +0 0 1 +1 0 0 1 1 1 1 0 1 0 0 1 0 1 1 1 1 0 0 1 0 1 0 0 0 0 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 0 1 0 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 0 0 1 0 0 0 1 0 0 1 1 1 1 0 0 1 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 0 1 0 1 1 1 1 0 0 1 0 0 0 1 0 1 1 1 1 1 1 1 +0 0 1 +1 1 1 0 1 0 1 0 1 1 1 1 0 0 0 0 0 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 0 1 1 0 1 1 1 1 1 0 1 1 0 1 0 1 1 0 1 1 0 1 1 1 1 0 0 1 1 0 1 1 0 0 1 1 1 0 0 0 0 0 0 1 1 0 1 1 0 0 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 0 0 1 1 1 1 0 1 0 0 1 1 1 0 1 1 1 0 1 0 1 +0 0 1 +0 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 1 0 1 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0 0 1 0 0 +0 1 0 +0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 1 1 1 1 1 1 1 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0 1 1 1 0 0 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 +1 0 0 +1 1 0 1 1 1 0 0 1 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0 1 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 0 0 1 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 1 0 0 0 0 1 1 1 0 1 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 0 0 1 1 0 0 +0 0 1 +1 0 0 0 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 1 0 0 1 1 0 1 0 1 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0 1 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 1 0 1 1 0 1 1 1 1 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 0 +0 0 1 +1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 1 1 1 1 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 1 1 0 0 1 1 1 1 1 0 0 0 1 1 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 1 0 0 1 0 1 1 0 0 1 +1 0 0 +0 0 0 1 0 1 1 0 0 1 1 0 1 0 1 1 1 1 1 1 0 0 1 1 1 0 0 1 1 0 1 1 1 0 1 1 1 0 0 1 1 0 1 0 0 1 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 0 1 0 0 1 1 0 1 1 1 0 1 0 0 1 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 0 1 1 0 1 1 1 0 +0 0 1 +0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 1 1 1 1 0 1 0 1 0 1 1 0 0 0 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 1 1 0 1 1 1 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 1 0 0 1 0 1 0 0 1 0 1 0 1 1 1 1 1 1 0 0 1 1 0 0 0 1 0 0 0 0 +0 0 1 +1 0 0 1 0 0 0 1 0 1 0 0 1 0 0 1 1 1 0 1 0 0 0 0 1 1 1 1 0 0 1 1 0 1 0 0 1 0 0 1 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 1 1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 1 1 0 1 1 1 1 0 1 1 0 0 0 1 1 0 1 1 1 0 1 0 0 0 1 1 1 1 0 0 1 0 1 0 1 0 1 0 1 1 0 0 0 1 1 1 1 0 +0 0 1 +1 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0 1 0 1 1 1 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 1 1 1 0 1 0 0 0 1 1 1 0 1 0 0 0 1 1 1 0 1 0 0 0 0 1 1 0 0 0 1 0 1 0 +1 0 0 +1 0 1 0 0 1 0 1 1 0 0 1 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 1 1 0 1 0 1 1 0 0 0 1 1 0 1 1 0 1 1 1 0 0 0 1 1 1 1 0 1 0 0 0 1 1 0 1 1 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 1 0 1 +1 0 0 +1 0 1 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 0 0 0 1 0 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 1 1 0 0 0 0 1 0 0 0 +0 0 1 +0 1 1 1 0 1 1 0 0 1 1 1 1 0 1 1 1 0 1 0 0 1 0 1 1 0 1 1 1 1 0 1 0 1 1 1 0 1 1 0 0 0 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1 0 0 0 0 1 1 1 1 1 0 1 1 1 1 0 1 1 0 1 1 0 1 0 1 1 0 0 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 +0 0 1 +0 0 0 0 1 1 0 0 0 1 1 0 1 1 0 1 0 0 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 1 1 1 0 1 1 0 1 0 0 1 1 0 1 1 0 1 0 0 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 0 0 1 1 1 1 0 1 1 0 0 0 0 1 1 0 1 0 1 +0 0 1 +0 1 0 0 1 1 0 1 1 1 1 1 0 1 0 0 1 0 1 1 0 1 1 1 0 1 0 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 1 0 0 0 0 1 0 0 0 1 1 0 1 1 0 1 0 0 0 1 1 1 1 0 0 1 1 1 1 1 1 +1 0 0 +1 1 0 1 1 0 0 1 1 0 0 0 1 1 0 1 0 1 1 0 1 1 1 0 0 0 0 0 0 1 0 1 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 1 0 0 0 +0 1 0 +0 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 1 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 0 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 1 1 1 0 1 1 0 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 0 0 1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 0 0 0 0 +0 0 1 +0 0 1 1 1 0 0 0 1 1 0 1 0 0 1 1 1 1 0 0 1 1 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 1 0 0 0 1 0 1 0 0 1 0 0 1 1 1 0 0 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 1 1 0 1 0 0 0 1 1 1 0 1 1 1 0 1 0 1 1 1 0 1 1 1 1 0 0 +0 0 1 +1 1 1 0 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 0 0 0 1 1 1 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 0 1 0 1 0 1 0 0 1 0 0 0 1 1 0 1 0 1 0 0 0 0 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 +1 0 0 +1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 1 0 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 1 0 0 0 0 1 1 1 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 +0 1 0 +0 0 0 1 0 0 0 0 1 1 1 0 1 0 1 1 1 0 1 1 0 0 1 1 1 0 0 0 1 1 0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 +0 0 1 +0 0 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 0 0 1 0 0 1 1 0 0 0 1 1 0 1 1 1 0 1 1 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 +0 1 0 +0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0 0 1 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 1 1 1 0 1 0 +0 1 0 +0 0 0 0 0 0 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 0 1 0 0 0 1 0 0 0 0 1 1 1 0 1 0 1 0 1 1 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1 0 1 1 1 0 0 1 1 0 0 1 0 0 0 1 1 0 0 0 1 0 0 1 1 0 1 0 0 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 0 1 1 0 0 1 1 1 0 1 +0 1 0 +1 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 1 0 1 0 0 1 0 1 0 0 1 0 1 0 0 1 0 1 1 0 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 0 0 0 1 1 1 1 0 1 0 1 0 0 0 0 1 1 1 1 1 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 +1 0 0 +0 0 0 1 0 1 1 0 0 0 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 1 1 0 1 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 +1 0 0 +1 0 0 1 0 1 1 0 1 1 1 0 1 0 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 0 1 1 0 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 1 0 1 0 0 0 1 0 1 1 0 0 0 1 1 1 1 1 0 1 1 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 0 1 0 0 +0 0 1 +0 0 0 1 0 0 0 1 1 0 1 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 1 0 1 0 1 1 1 0 0 0 0 1 1 1 1 1 1 1 0 1 0 0 0 1 1 1 0 1 1 1 0 0 0 1 1 1 1 1 1 1 0 1 1 1 0 0 1 1 0 1 1 1 1 1 1 0 1 1 1 0 0 0 1 1 0 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 0 0 +0 0 1 +0 1 1 0 1 1 0 0 1 1 1 1 1 0 0 0 1 1 1 0 1 1 0 0 0 0 1 1 1 0 1 0 0 0 0 1 0 0 1 1 1 0 0 0 1 1 0 0 1 1 0 1 0 1 1 0 1 0 1 0 0 0 1 1 1 1 1 1 0 1 1 1 0 1 0 0 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 0 1 0 0 1 1 1 1 0 1 1 0 1 1 0 0 0 0 1 1 0 0 0 1 +0 0 1 +1 0 0 1 0 1 1 1 1 1 0 0 1 1 0 1 1 0 0 1 1 0 0 0 1 1 1 1 1 0 0 1 0 0 0 0 0 1 1 0 1 1 1 1 1 1 0 1 0 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 1 0 0 1 0 0 0 1 0 1 0 1 0 1 0 1 0 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 0 1 1 0 0 1 0 0 0 1 1 1 1 0 0 1 +0 0 1 +1 0 0 1 0 1 1 1 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 1 1 1 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 0 0 1 1 0 1 1 1 0 0 0 1 1 0 0 1 0 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 1 1 0 1 0 0 0 1 1 0 1 0 1 1 1 1 0 0 0 0 0 +0 0 1 +0 1 0 0 1 1 0 0 1 1 1 1 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 1 1 0 1 0 1 1 0 0 1 0 1 0 0 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 1 0 1 1 0 0 0 1 0 0 1 1 1 1 1 0 1 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 0 +1 0 0 +0 1 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 1 0 1 1 1 1 0 0 1 1 1 0 1 0 0 1 0 1 0 1 0 0 0 0 0 1 0 0 1 0 1 1 1 0 1 0 1 1 1 0 1 1 0 0 0 0 +0 0 1 +1 0 0 1 0 1 1 0 0 0 0 1 1 0 1 1 1 1 1 0 0 0 1 1 0 1 0 1 1 1 1 0 0 1 0 1 1 0 1 1 0 1 1 1 1 1 1 0 0 1 0 1 0 1 0 1 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 1 1 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 1 1 0 1 1 1 1 0 1 0 0 0 1 1 0 +0 0 1 +0 0 1 0 1 1 0 1 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 1 0 0 0 1 1 1 1 1 1 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 1 0 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 0 1 1 0 1 0 0 1 0 0 1 1 0 0 1 0 1 0 0 1 +0 1 0 +0 1 1 0 1 0 1 0 0 0 0 0 0 1 1 1 1 0 1 1 0 0 0 0 1 0 0 1 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 0 0 0 1 1 0 1 0 1 1 0 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 0 0 1 1 1 0 1 1 1 0 1 0 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 1 1 0 1 0 1 0 0 0 0 1 +1 0 0 +1 0 0 0 1 1 1 0 1 1 0 0 0 1 0 1 0 1 1 0 1 1 1 0 0 0 1 1 0 0 1 1 1 1 1 0 1 1 0 0 0 1 0 1 1 1 0 0 1 1 0 0 0 1 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 1 1 1 1 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 +0 1 0 +0 1 1 0 1 0 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 1 1 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 0 1 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 1 0 1 0 1 0 0 0 1 0 0 0 1 1 1 0 1 0 0 0 1 1 1 0 0 0 +0 0 1 +0 0 1 1 0 0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 1 0 1 1 1 1 1 0 0 1 0 0 1 1 0 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 0 0 +0 0 1 +1 1 1 1 1 1 1 0 1 0 0 1 1 0 1 1 1 0 0 1 1 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 0 0 0 0 0 1 0 0 1 1 0 0 1 1 +1 0 0 +0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 0 1 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 1 0 0 1 0 0 +0 1 0 +0 0 1 1 1 0 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 0 1 0 1 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 1 0 1 0 0 1 1 1 1 0 1 1 1 1 0 1 0 1 0 0 1 0 1 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 0 1 1 1 0 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0 1 +0 0 1 +1 1 1 1 1 1 1 0 1 0 0 1 1 0 1 1 1 0 0 1 1 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 0 0 0 0 0 1 0 0 1 1 0 0 1 1 +1 0 0 +1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 1 0 1 0 0 1 0 1 1 0 0 1 1 1 1 1 0 0 0 1 1 0 1 0 0 1 0 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0 0 0 1 0 1 0 0 1 0 1 1 0 0 1 0 0 0 1 0 0 0 0 1 0 1 1 1 0 1 1 1 1 +0 0 1 +0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 1 0 1 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 +0 1 0 +1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 1 1 1 1 0 0 1 0 1 1 0 0 1 1 1 0 0 0 1 0 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 1 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 1 1 1 0 +1 0 0 +1 0 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 1 0 0 0 1 1 0 1 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0 +0 1 0 +1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 1 0 0 1 0 0 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 1 +0 1 0 +0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 0 1 0 0 0 0 1 1 0 0 1 0 1 1 0 1 0 1 0 0 1 0 1 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 1 0 1 1 1 0 0 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 0 1 0 1 1 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 +0 0 1 +1 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 1 1 1 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 0 0 0 0 0 0 1 1 1 0 +0 1 0 +1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 1 0 0 1 1 0 1 0 1 1 0 0 1 1 0 0 1 1 1 0 1 1 +0 0 1 +0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0 0 0 0 0 1 1 0 1 0 1 1 0 0 1 1 0 0 1 1 1 0 1 0 0 1 0 0 0 1 0 0 1 1 0 1 1 1 1 0 1 0 1 0 0 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 1 1 0 0 0 0 1 1 +0 1 0 +1 1 1 1 0 1 0 1 1 1 1 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 1 1 1 1 0 0 0 0 1 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 1 1 0 0 1 1 0 1 1 1 0 0 0 1 0 0 0 0 0 1 0 1 0 0 +0 1 0 +1 1 1 0 1 1 0 0 0 1 0 1 1 1 1 0 1 0 1 0 0 1 0 1 1 1 0 1 1 1 1 0 1 0 0 1 0 1 0 1 0 1 1 1 1 0 0 0 1 1 1 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 0 +0 0 1 +0 0 1 1 1 1 0 1 0 1 0 0 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 1 1 1 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 0 1 1 1 0 0 1 0 1 0 1 0 1 1 1 1 0 1 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 0 1 0 1 1 0 1 1 1 0 0 1 +0 0 1 +0 0 1 1 1 1 1 0 1 1 1 1 0 1 0 0 0 1 1 0 1 0 1 0 1 0 1 1 1 0 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 1 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 1 0 0 0 0 +0 0 1 +1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 +1 0 0 +0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 0 1 0 0 1 0 0 0 1 0 1 0 0 1 1 1 1 0 0 0 0 1 0 1 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 0 1 1 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 1 1 0 +1 0 0 +1 1 1 0 0 1 0 0 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 0 1 1 1 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 1 1 1 0 0 1 1 1 0 1 0 0 1 0 1 0 0 0 0 +0 1 0 +0 1 1 0 1 1 1 1 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 1 0 1 0 1 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 +0 0 1 +1 1 1 0 0 1 0 1 1 0 1 0 1 0 1 0 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 1 1 0 0 1 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 1 0 1 1 1 0 0 0 1 0 0 0 1 0 1 +0 0 1 +1 0 1 0 0 1 1 0 0 0 0 0 1 1 1 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 0 0 0 0 1 0 1 1 1 1 0 1 0 0 1 0 1 0 0 0 1 1 0 1 1 0 0 0 1 0 0 1 1 0 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 1 1 0 1 1 0 1 1 1 1 0 0 0 1 1 0 0 0 0 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 0 1 0 0 1 1 +0 0 1 +0 0 1 1 1 1 1 1 1 0 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 0 1 1 1 0 1 0 0 0 1 0 0 0 0 1 1 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 1 0 1 0 1 1 0 0 1 0 1 1 0 0 0 0 1 1 0 1 1 +0 1 0 +0 1 1 1 1 1 0 0 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 1 1 0 0 1 1 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 1 1 1 0 1 1 0 0 0 1 0 1 1 0 1 1 0 1 0 0 0 1 0 1 1 0 0 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 1 +0 0 1 +0 1 1 1 0 1 1 1 1 0 0 0 0 1 0 1 0 1 0 1 1 1 1 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 1 1 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 1 1 1 1 1 0 0 1 1 1 0 1 0 0 1 1 1 1 0 1 0 1 1 1 1 0 1 1 0 0 0 0 0 1 1 1 1 0 1 1 1 0 0 1 0 0 1 1 0 0 +0 0 1 +1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 1 0 1 1 1 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 1 0 0 1 1 1 1 1 0 1 1 0 1 0 0 0 1 1 0 0 0 0 1 0 1 0 1 0 1 1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 +0 1 0 +1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 0 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 0 0 1 1 1 0 0 0 1 1 1 1 1 1 0 1 1 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 1 0 0 1 1 1 0 1 +0 0 1 +1 0 1 0 0 1 1 1 1 0 1 1 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 1 0 1 1 0 0 0 0 0 0 0 1 0 1 1 0 1 0 0 0 1 1 1 0 0 0 0 1 0 0 0 1 1 0 1 0 0 0 0 1 1 0 0 1 1 0 1 1 1 0 1 0 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 +0 0 1 +0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 1 1 0 1 0 1 1 1 1 0 1 1 1 0 1 0 1 1 0 0 0 0 1 0 0 0 1 1 1 1 0 1 1 0 0 0 0 1 1 1 1 1 0 +0 0 1 +1 1 0 1 0 0 0 0 0 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 1 0 1 1 0 1 1 1 1 0 0 1 0 1 1 1 0 1 0 1 1 1 0 0 0 0 0 0 1 0 1 1 1 0 0 0 1 1 0 1 1 1 0 1 0 0 1 1 1 0 0 0 1 0 1 1 0 +0 0 1 +0 1 0 1 0 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 0 1 1 0 1 1 1 0 1 1 0 0 1 1 0 1 +0 1 0 +1 1 0 0 1 1 1 0 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 1 1 0 1 1 +0 0 1 +1 0 0 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0 1 1 0 1 1 0 0 0 1 1 0 1 0 0 0 0 1 0 0 0 1 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 1 0 1 0 1 1 1 1 0 1 1 +0 0 1 +0 0 0 1 0 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 1 0 1 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 +0 0 1 +1 1 1 0 0 0 0 1 0 1 1 1 0 0 1 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 1 0 0 1 0 0 +0 1 0 +1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 1 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 1 1 0 1 1 1 0 0 0 0 1 0 1 1 1 1 0 1 0 1 1 1 0 0 0 0 1 1 1 0 0 1 1 1 1 1 0 1 0 0 0 +0 0 1 +0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 0 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 1 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 0 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 1 1 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 0 1 1 0 0 0 0 0 1 0 1 1 0 0 +0 0 1 +0 0 1 1 1 1 1 1 1 1 1 0 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 0 0 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 1 1 0 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 +0 1 0 +0 0 1 1 1 1 0 1 0 1 1 0 0 1 0 1 1 1 0 0 0 0 0 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 1 0 1 0 1 0 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 +0 0 1 +0 1 1 0 1 0 0 1 0 0 0 1 1 0 0 0 0 1 0 1 1 1 1 0 1 0 1 1 1 1 1 0 1 1 0 1 1 1 0 0 0 1 0 1 0 0 1 1 0 1 1 1 1 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 1 0 1 0 0 1 1 1 0 0 0 1 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 +1 0 0 +1 0 1 1 1 0 0 1 0 0 0 0 1 1 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0 1 1 0 1 +0 1 0 +0 1 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 1 0 0 1 1 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 0 1 0 1 1 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 0 1 0 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 1 0 0 0 1 1 0 0 1 0 1 1 0 +1 0 0 +0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 1 0 1 1 0 1 0 0 1 0 0 1 1 0 0 +0 0 1 +0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 1 0 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 0 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 1 1 1 1 1 1 0 0 0 0 1 1 0 1 0 1 1 1 1 1 0 0 +1 0 0 +0 1 1 0 1 0 1 1 1 0 1 1 1 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 1 1 1 1 1 1 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 1 1 0 0 0 1 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 1 0 0 1 0 0 0 1 1 1 1 0 0 1 0 1 1 1 +0 0 1 +1 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 1 1 0 1 1 0 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 0 1 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 +0 1 0 +1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 1 1 1 0 1 0 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 1 0 1 0 1 0 1 1 1 1 0 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 0 1 1 0 1 0 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 0 +0 0 1 +0 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 0 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 0 1 1 1 0 0 1 1 0 1 1 1 1 1 1 1 0 0 1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 0 0 0 1 1 0 1 0 1 0 1 0 +1 0 0 +0 1 0 1 1 0 0 0 1 1 1 1 0 0 1 0 1 0 1 0 1 1 1 0 1 0 0 1 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 0 1 0 1 0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 0 0 1 1 1 0 0 1 1 1 0 1 0 1 0 1 1 0 0 +1 0 0 +1 0 0 1 1 1 1 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 1 +0 1 0 +0 1 0 1 0 0 1 1 1 0 1 1 0 0 0 1 1 0 1 0 1 0 1 0 0 1 0 1 1 0 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 1 1 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 1 0 0 1 0 1 0 1 1 0 +1 0 0 +1 1 1 1 0 0 1 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 1 1 1 1 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 1 0 0 1 1 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 1 0 0 1 1 1 1 1 0 0 1 1 0 0 0 1 0 0 1 0 0 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 1 1 1 1 0 +0 0 1 +1 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 1 1 1 0 1 0 1 0 0 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 1 1 0 0 1 1 0 0 0 1 1 0 1 0 0 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 1 0 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 0 1 1 +0 0 1 +1 1 1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 0 0 1 0 0 0 1 1 0 1 0 1 0 1 0 0 0 0 0 0 1 +0 0 1 +0 1 0 0 0 0 1 1 1 0 0 0 1 0 0 1 1 0 0 1 1 1 1 1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 1 0 1 0 1 0 0 0 0 1 0 0 1 1 1 0 1 1 1 0 0 1 1 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 +1 0 0 +0 1 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 0 0 0 0 1 1 0 1 0 1 1 0 0 1 1 0 1 0 0 0 0 1 0 1 0 1 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 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 1 1 0 0 1 1 +0 0 1 +0 0 1 1 1 0 1 1 0 0 0 0 1 1 1 0 1 1 1 0 1 0 1 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 +0 1 0 +1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 1 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 1 1 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 +0 0 1 +1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 0 0 1 0 1 1 1 1 0 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 1 1 1 1 1 0 1 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 1 1 1 0 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 +0 0 1 +0 0 1 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 1 0 1 0 1 0 0 1 0 0 0 1 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 0 0 0 1 0 0 0 0 0 1 0 1 1 1 0 0 1 1 1 1 +1 0 0 +0 1 0 1 0 1 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 1 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 1 1 0 0 0 1 1 1 0 0 1 0 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 1 0 1 1 0 1 1 1 0 +0 0 1 +0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 0 1 1 1 1 1 1 0 0 1 0 1 0 1 0 1 1 1 1 1 1 1 0 0 0 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 0 1 1 0 0 0 1 1 1 1 0 0 1 1 1 1 0 1 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 1 0 1 0 0 1 0 1 1 1 1 0 0 1 0 0 +0 0 1 +1 1 1 1 1 0 1 1 0 1 1 1 1 1 0 1 0 1 0 1 1 0 1 0 0 1 0 1 0 0 0 1 1 0 0 1 0 0 1 0 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 0 1 1 1 0 1 0 1 0 1 1 0 1 0 0 1 0 0 1 0 0 1 0 1 1 1 0 0 0 1 0 0 1 1 1 1 0 0 0 1 1 1 1 0 1 1 0 1 +1 0 0 +1 1 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 1 0 0 1 1 0 0 1 0 1 0 0 0 1 1 1 1 0 1 1 1 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 0 0 0 +0 1 0 +1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 0 1 0 1 1 0 1 1 1 1 0 0 1 1 0 0 1 0 0 0 1 1 0 0 1 1 0 1 1 1 1 1 0 0 1 0 1 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 1 1 1 1 0 0 1 1 0 +0 1 0 +1 0 0 0 0 1 0 1 0 1 0 1 1 1 1 1 1 1 0 0 0 0 0 1 0 1 1 1 0 0 0 1 0 1 0 1 1 1 1 0 1 0 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 0 1 1 0 0 0 1 1 1 0 0 0 0 1 0 0 1 1 1 0 1 1 0 1 1 1 1 0 1 0 1 1 0 0 1 0 1 0 1 1 1 1 1 1 0 1 0 0 0 1 0 1 1 1 0 1 +0 0 1 +1 0 0 1 0 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 1 0 1 1 1 0 1 1 1 1 0 0 1 0 1 0 1 0 0 1 0 0 1 1 0 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 1 0 0 1 1 1 1 1 0 0 1 1 1 0 1 1 0 0 1 0 1 1 1 0 1 0 0 1 0 0 1 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 0 1 1 0 1 +0 0 1 +1 1 0 1 0 1 1 1 0 1 0 0 0 1 0 1 0 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 0 0 1 1 0 0 1 0 0 0 0 1 1 1 1 1 1 0 1 0 1 1 0 0 1 1 0 1 1 1 1 1 0 0 1 1 0 0 1 1 0 1 1 0 1 0 1 1 0 1 1 0 1 1 0 1 0 0 1 1 0 0 1 1 0 1 1 1 1 0 1 1 0 1 0 0 1 0 0 1 1 1 1 1 0 1 1 +0 0 1 +0 1 1 1 0 0 0 1 0 1 1 0 0 1 0 0 0 0 0 1 1 1 0 0 1 0 0 1 1 0 0 1 0 0 0 1 0 0 1 0 1 0 1 0 0 1 1 1 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 0 1 0 1 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 0 0 1 1 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 1 1 1 1 +1 0 0 +1 1 1 0 0 1 0 1 1 0 1 1 1 0 1 1 0 0 1 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 1 0 1 0 0 1 1 1 1 1 1 1 1 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 0 0 1 1 1 1 0 1 0 1 1 1 0 1 1 1 1 0 1 1 1 0 1 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 1 1 +0 0 1 +1 1 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 0 0 0 1 1 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 1 1 1 0 1 1 0 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 1 1 1 1 0 1 0 0 0 0 0 1 1 0 1 1 1 1 1 1 1 0 1 0 0 1 1 1 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 0 1 0 0 0 1 +0 0 1 +0 0 0 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 1 0 1 1 0 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 0 1 1 0 1 0 1 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 +0 0 1 +0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 1 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 +0 1 0 +1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 1 0 0 1 1 1 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 1 1 1 0 +0 1 0 +0 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 0 0 1 0 1 0 1 1 1 0 1 0 0 1 0 1 0 1 0 0 1 0 0 0 0 1 0 0 1 1 1 0 1 1 1 1 0 1 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 0 1 1 0 1 1 +0 0 1 +0 0 1 1 0 0 1 0 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 1 0 1 0 0 0 0 1 1 1 1 0 1 1 0 0 0 1 0 0 0 0 1 1 1 1 1 0 1 0 1 1 1 0 1 1 1 0 1 1 0 0 0 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 1 1 0 1 0 0 0 0 0 1 1 1 1 1 0 0 0 1 +1 0 0 +1 1 1 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 1 0 1 0 1 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 0 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1 0 0 0 1 1 0 1 0 1 0 1 0 0 1 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 1 1 1 0 1 0 1 0 1 1 0 0 +1 0 0 +1 1 0 0 0 0 0 1 0 1 0 0 0 1 1 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 0 1 0 0 1 0 0 0 0 1 0 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 0 0 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 0 1 1 1 1 0 0 0 0 0 1 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 1 1 0 1 0 0 0 1 0 1 0 1 0 1 0 0 1 +1 0 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 1 0 0 1 1 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 1 +0 0 1 +1 0 0 0 1 0 0 0 1 1 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 1 1 1 1 0 0 1 0 1 1 0 0 1 1 1 0 0 0 1 0 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 1 0 1 0 1 0 0 0 1 1 1 0 1 1 0 0 1 0 1 0 0 0 1 0 +1 0 0 +0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 1 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 0 0 1 0 1 1 1 1 0 0 0 1 1 0 1 1 1 1 0 1 0 0 1 0 1 1 1 1 0 0 1 0 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 +1 0 0 +0 0 1 1 1 1 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0 1 0 0 0 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 1 1 0 1 0 1 1 0 1 0 1 0 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 1 +1 0 0 +1 0 0 0 0 0 0 1 1 1 1 0 1 0 1 1 0 0 0 1 0 1 1 0 0 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 0 0 1 0 1 0 1 0 1 0 1 1 0 1 0 1 0 0 0 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 +0 0 1 +1 1 1 0 0 1 0 1 1 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 1 1 1 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 1 1 0 0 0 1 1 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 0 1 1 0 1 0 1 0 0 0 0 1 1 0 1 0 +1 0 0 +0 1 0 0 0 0 1 1 1 1 1 1 1 0 1 0 0 0 1 1 1 1 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 0 1 1 1 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 0 0 1 0 0 1 1 0 1 1 1 +0 0 1 +0 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 1 1 0 0 0 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 0 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 1 0 0 0 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 0 0 1 1 1 1 1 0 0 0 1 0 0 0 1 1 1 1 0 0 +0 0 1 +0 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 1 1 1 0 0 0 0 1 1 1 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 1 1 1 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 1 0 1 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 +0 1 0 +0 0 0 0 1 0 0 1 0 1 1 0 1 0 1 0 0 1 1 1 0 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 0 0 0 1 0 1 0 1 1 0 1 0 1 1 1 0 0 1 0 0 1 1 1 0 1 0 1 0 0 1 0 1 1 0 0 0 1 1 0 1 0 1 0 1 1 0 0 0 0 1 0 1 0 0 1 0 0 1 1 1 0 0 0 1 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 1 0 1 0 0 +0 0 1 +0 0 1 1 1 1 1 1 0 0 1 0 0 1 1 0 0 1 1 1 1 1 1 1 0 0 1 1 1 0 0 0 0 0 1 1 1 1 0 1 1 1 1 0 0 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 0 0 0 1 0 0 1 0 0 0 1 1 1 0 0 1 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0 0 1 1 1 1 1 0 0 0 0 +0 0 1 +1 0 0 0 1 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 0 1 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 1 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 0 0 1 1 1 1 1 0 0 0 1 1 1 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 1 0 0 1 1 1 0 1 1 0 1 +0 0 1 +0 0 1 0 1 0 0 0 1 1 1 0 1 1 0 0 1 1 0 1 0 0 0 1 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 1 1 1 1 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 0 0 0 1 0 0 0 1 1 1 1 +0 0 1 +1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 1 1 0 0 0 1 0 1 1 0 0 0 0 0 1 1 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 1 1 1 1 0 0 0 0 1 0 1 0 0 1 0 1 0 0 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 0 +0 1 0 +1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 1 0 0 0 1 0 0 1 0 1 0 0 0 1 0 1 1 1 0 0 1 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 0 0 0 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 0 1 0 1 0 +1 0 0 +0 0 1 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 0 1 0 0 1 1 1 0 1 1 1 1 1 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 0 1 1 0 0 1 0 1 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 +1 0 0 +0 1 0 1 0 1 1 0 0 0 0 0 0 1 0 0 0 1 0 1 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 0 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 +0 0 1 +1 1 0 1 1 1 1 1 1 1 0 0 0 1 1 1 0 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 0 0 1 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 1 1 0 1 1 0 0 1 0 1 0 1 1 1 0 1 1 1 1 0 1 1 0 0 0 1 0 1 0 1 1 1 1 0 1 1 0 1 0 0 0 1 1 0 0 0 0 1 +0 0 1 +1 0 0 1 1 1 0 0 0 1 0 0 0 1 0 0 1 1 0 1 1 1 0 0 1 1 0 0 0 0 0 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 1 1 1 0 1 0 0 1 0 1 1 0 0 1 1 1 1 1 0 1 1 0 0 0 1 0 1 0 0 0 0 0 0 1 1 1 1 0 1 1 0 1 1 1 1 1 0 0 0 0 0 1 0 1 1 1 1 0 1 1 +0 0 1 +1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 1 0 1 1 1 0 0 1 1 1 0 0 0 1 1 0 1 0 1 1 0 1 0 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0 0 1 0 1 1 1 1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 1 0 +1 0 0 +1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 1 0 1 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 1 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 0 0 0 1 1 0 0 1 0 0 1 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 +1 0 0 +1 1 0 1 0 0 0 1 0 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 0 0 1 1 1 0 1 +0 0 1 +1 1 1 1 0 0 0 1 1 0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 1 1 0 0 1 1 1 0 1 0 1 0 0 0 0 0 0 1 0 1 1 0 1 1 0 1 0 0 0 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1 +1 0 0 +0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 0 1 0 0 0 0 1 1 0 1 0 1 1 1 1 1 1 0 0 1 0 0 0 0 1 1 1 1 0 1 1 1 1 0 1 1 0 1 1 0 1 1 0 1 0 1 0 1 1 1 0 1 0 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1 0 0 1 0 0 0 0 1 1 1 0 0 1 0 0 0 0 1 1 1 1 +0 0 1 +1 1 0 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 0 0 +1 0 0 +1 0 1 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 0 0 1 1 0 1 1 1 1 0 0 0 1 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 1 1 1 1 1 1 0 0 1 1 +0 0 1 +1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 0 0 1 1 0 0 0 1 0 0 1 1 1 1 1 0 0 1 0 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 1 0 1 0 0 0 1 0 1 0 0 1 1 0 1 0 1 1 1 1 1 0 0 0 0 1 0 1 1 1 1 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 0 0 0 +0 0 1 +1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 0 0 0 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 0 0 1 0 0 0 1 1 1 1 1 0 0 1 1 1 1 1 0 0 0 1 1 0 1 +0 0 1 +0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0 0 1 0 0 1 1 1 1 1 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 1 1 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 +0 0 1 +0 1 1 0 1 0 0 1 0 1 0 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0 0 0 1 0 0 1 1 1 0 0 1 0 0 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 1 0 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 1 0 0 1 1 1 0 0 1 0 1 +0 0 1 +0 0 1 1 1 0 0 0 1 1 0 0 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 0 1 1 1 1 0 0 0 0 0 1 1 0 1 0 0 1 0 0 1 1 1 1 0 0 1 0 1 0 0 0 0 1 1 0 1 1 0 0 1 1 1 0 1 1 0 0 0 0 0 1 0 1 0 0 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 1 0 0 +0 1 0 +1 0 0 1 1 0 1 1 1 1 1 0 1 0 0 0 0 1 1 0 0 0 0 1 0 1 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 1 1 0 1 0 1 1 1 1 1 1 0 1 0 1 1 0 0 1 1 0 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 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 1 0 0 1 1 0 1 1 0 0 0 0 0 +0 0 1 +1 0 0 1 1 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 0 1 0 0 0 1 0 1 1 1 1 0 0 0 0 1 0 1 0 1 0 1 1 1 0 1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 1 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 1 0 0 1 1 0 0 0 0 1 0 1 1 0 0 1 1 0 1 1 1 0 +0 0 1 +0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0 0 0 0 0 1 1 0 1 0 1 1 0 0 1 1 0 0 1 1 1 0 1 0 0 1 0 0 0 1 0 0 1 1 0 1 1 1 1 0 1 0 1 0 0 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 1 1 0 0 0 0 1 1 +0 1 0 +0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 0 1 0 0 0 1 0 1 1 0 1 0 0 1 1 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 1 0 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 0 1 1 1 1 1 1 0 0 1 1 1 0 0 1 +0 0 1 +0 1 1 0 1 0 1 0 0 0 0 1 0 0 0 1 1 0 0 1 1 1 1 0 1 1 1 1 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 1 1 0 1 0 0 0 0 1 1 1 0 1 1 1 0 0 1 1 0 1 0 0 0 +0 0 1 +1 0 1 1 1 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 1 1 1 1 0 1 0 1 0 0 1 0 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 1 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 0 0 1 1 0 1 0 1 +0 0 1 +0 1 0 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 0 0 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 0 0 0 0 1 +0 0 1 +1 1 1 0 1 0 1 0 1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 1 1 0 0 1 0 1 1 1 1 0 1 1 1 0 0 1 1 0 0 0 1 0 0 1 1 1 0 1 1 1 1 1 1 1 0 1 1 0 0 0 1 1 0 0 0 0 1 0 0 1 0 1 1 0 1 0 1 0 0 1 1 1 1 1 1 1 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 1 1 1 +0 0 1 +1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 0 1 1 0 1 0 0 0 0 0 1 0 1 1 1 0 0 0 1 0 0 1 1 1 0 1 1 1 1 0 0 1 1 1 1 0 0 0 1 0 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 1 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1 1 +0 1 0 +1 1 1 1 1 0 1 0 1 0 1 0 0 1 0 0 0 1 1 1 0 0 1 1 1 1 0 1 1 1 1 0 1 0 1 0 0 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 1 1 0 1 1 1 0 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 1 1 0 0 +0 0 1 +0 0 1 1 1 1 0 1 1 0 0 1 1 0 1 1 0 1 1 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 0 1 1 1 0 1 1 0 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 0 1 0 1 1 0 1 0 1 0 1 1 1 1 0 1 +0 0 1 +1 0 0 1 0 0 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 0 0 1 1 0 1 0 1 1 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 1 0 0 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 0 1 0 0 1 0 1 1 1 0 1 1 0 1 1 0 1 0 1 0 1 1 0 0 1 +1 0 0 +0 0 1 1 1 0 0 0 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 1 1 1 0 0 1 1 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 1 +0 0 1 +1 1 0 0 1 1 0 0 0 1 0 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 0 1 1 0 1 0 1 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 1 1 1 1 1 0 1 0 0 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 1 +0 1 0 +0 0 0 1 0 0 1 1 1 0 1 0 1 1 1 1 0 1 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 1 1 1 0 1 0 0 1 1 1 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 1 0 1 1 0 1 0 1 1 0 1 1 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 1 0 1 1 1 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 0 1 +1 0 0 +0 1 1 1 1 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 1 1 0 1 1 1 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 +0 0 1 +0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 1 1 1 1 1 1 1 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 0 1 1 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 1 0 1 1 1 0 0 1 1 0 +0 0 1 +0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 0 1 1 0 1 1 1 1 1 0 0 1 0 1 0 1 0 1 1 1 1 0 0 0 0 1 0 1 1 1 1 1 0 1 1 0 0 1 1 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 0 1 0 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 0 +0 0 1 +0 1 1 0 0 0 1 1 1 0 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 0 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 1 0 0 0 1 0 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 1 1 0 0 1 1 1 0 +1 0 0 +1 0 1 0 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1 0 1 0 0 1 0 1 1 0 1 1 1 0 0 1 1 0 1 1 0 1 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 0 0 1 1 0 +1 0 0 +0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 1 1 0 1 1 0 0 1 1 +0 0 1 +0 1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 1 1 0 1 1 1 0 0 0 1 0 0 1 1 1 1 0 1 0 0 1 0 0 0 0 0 0 1 1 1 0 1 1 1 1 0 1 0 0 0 1 1 0 0 1 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 0 0 1 1 1 0 0 1 1 0 1 0 +0 1 0 +0 0 0 1 1 0 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 0 0 1 0 0 1 1 +0 0 1 +0 1 0 1 1 1 1 0 1 1 0 0 1 0 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 0 1 1 0 1 1 1 1 0 1 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 0 1 +0 1 0 +1 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 0 1 0 1 1 1 0 1 1 0 1 0 0 0 0 0 1 0 0 0 1 1 0 0 1 1 1 1 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 1 1 1 1 0 0 1 1 0 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0 0 +0 1 0 +0 0 0 1 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 0 0 1 0 1 1 0 1 1 0 0 0 0 1 1 1 0 1 1 1 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 1 0 0 1 0 1 +1 0 0 +1 0 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 0 1 1 1 0 1 0 1 0 1 1 0 1 1 0 0 1 1 1 1 0 1 0 0 1 1 1 1 0 1 1 1 1 1 1 1 0 0 1 1 0 1 0 1 0 0 1 1 0 1 1 0 1 1 1 1 0 0 0 0 1 1 1 1 0 1 1 1 0 1 0 1 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 +1 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 1 1 0 0 0 1 1 0 1 0 0 0 0 1 1 1 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 1 0 1 1 0 1 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1 0 0 1 1 0 1 1 1 0 0 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 +0 0 1 +0 0 0 0 0 1 1 1 0 0 0 1 0 1 0 1 1 0 1 0 0 1 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1 0 1 0 0 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0 1 0 1 1 1 1 0 1 1 1 1 +1 0 0 +0 0 0 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 1 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 1 0 1 1 0 0 1 1 1 1 0 1 0 1 1 1 0 0 1 0 0 0 1 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 1 0 1 0 1 0 0 1 +0 0 1 +1 0 0 0 0 1 1 1 0 0 1 1 0 1 1 1 0 0 1 0 0 0 0 1 1 1 1 0 0 1 1 1 0 0 0 1 0 1 1 0 0 0 1 1 0 1 1 0 1 0 1 1 0 0 1 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 1 0 0 0 1 1 1 1 1 1 1 0 1 0 1 1 0 1 0 0 1 1 1 1 1 0 1 0 1 1 1 0 1 1 1 0 1 0 0 0 0 1 0 1 1 0 +1 0 0 +0 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 0 0 1 1 0 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 1 1 1 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 0 1 1 0 1 1 0 1 1 1 1 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 0 1 0 1 1 0 0 0 0 1 +0 0 1 +0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 0 1 0 1 0 0 1 1 1 1 1 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 0 1 0 1 0 0 0 0 1 +1 0 0 +0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 1 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1 0 1 0 0 1 1 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 0 1 1 0 +0 1 0 +0 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 0 0 0 1 1 0 1 1 1 0 1 1 1 1 1 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 1 0 1 0 1 0 0 1 1 1 1 0 0 0 0 0 +0 1 0 +0 1 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 0 0 1 1 1 1 0 1 0 0 0 0 1 1 1 0 1 1 0 1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1 +1 0 0 +1 0 1 1 0 0 0 1 0 0 0 1 1 1 0 1 1 1 0 1 0 0 1 1 1 0 0 1 0 0 0 0 1 1 0 0 1 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 1 1 0 1 1 0 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 1 1 0 1 0 1 0 0 1 1 0 1 1 1 0 1 0 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 +0 1 0 +0 0 0 0 1 1 1 0 1 0 1 1 1 0 0 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 0 0 1 1 1 1 1 1 1 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 0 1 0 1 +0 0 1 +0 0 1 1 1 0 1 1 1 0 1 0 1 1 0 1 1 1 1 0 0 1 0 1 1 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 1 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 1 0 0 1 0 1 0 0 0 1 1 0 0 1 0 1 1 1 1 0 0 1 1 1 0 0 0 1 1 0 0 1 0 0 0 0 1 1 1 1 1 1 1 0 +0 0 1 +1 1 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 1 1 1 0 1 0 1 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 1 1 0 1 0 0 1 0 1 1 1 0 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 0 0 0 1 0 0 1 0 0 1 1 1 1 0 0 1 0 1 1 1 1 1 +0 1 0 +0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 1 1 0 1 0 1 0 0 0 0 1 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 1 0 1 0 0 0 1 1 0 0 1 0 1 0 0 0 1 1 1 0 1 0 0 0 1 1 0 0 +0 0 1 +0 0 1 0 1 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 0 1 0 1 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 1 1 0 1 0 1 0 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 1 1 0 0 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 +0 0 1 +1 0 1 0 1 0 1 1 0 0 0 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 0 1 1 0 0 0 1 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 +0 0 1 +0 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 0 0 0 0 1 1 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 1 1 0 1 0 1 1 0 0 1 1 0 0 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 0 +0 1 0 +0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 1 1 0 1 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 1 +0 0 1 +1 1 1 0 1 1 0 0 1 1 1 1 1 0 1 0 1 0 1 0 0 0 0 1 1 1 1 0 1 1 1 0 0 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 0 0 0 1 1 0 0 1 0 1 1 1 1 1 0 0 1 1 1 0 1 0 1 0 0 0 0 1 1 0 +0 0 1 +0 0 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1 1 0 1 0 0 0 0 1 1 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 1 1 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 0 1 0 0 1 1 0 1 1 1 0 1 1 0 1 0 1 0 1 0 1 0 1 0 0 +0 0 1 +1 0 0 0 0 1 1 1 0 0 0 1 0 1 0 0 1 0 1 1 1 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 +1 0 0 +1 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 0 0 0 1 1 1 1 1 1 1 0 1 1 0 0 1 1 0 0 1 1 0 1 1 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 1 1 1 0 0 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 1 1 1 1 0 +0 1 0 +1 1 0 0 1 1 1 1 0 0 0 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 0 0 1 1 0 0 0 0 0 1 1 1 0 1 1 1 1 1 1 0 1 0 0 1 0 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 +0 0 1 +0 0 0 0 1 1 1 0 1 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 1 1 1 1 1 0 0 0 0 1 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 1 1 1 0 0 1 0 1 1 1 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 1 0 0 0 1 0 1 1 0 1 0 1 0 0 0 +0 0 1 +1 0 0 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 0 0 1 0 1 1 1 0 0 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 0 0 0 1 0 1 1 0 1 1 0 1 1 1 1 0 0 1 0 0 1 1 1 1 1 1 0 1 0 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 1 0 0 0 1 0 1 0 0 1 1 0 1 1 0 1 0 1 1 +1 0 0 +0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 1 1 0 0 0 1 0 0 0 0 1 1 1 1 1 1 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 1 0 1 0 1 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 1 0 0 0 0 0 +0 1 0 +0 0 0 1 0 1 0 0 0 1 0 1 0 1 1 0 0 0 0 1 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 1 1 0 1 0 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 1 0 1 1 0 0 1 1 0 1 1 1 0 0 1 0 1 1 0 0 1 +0 0 1 +1 0 0 1 0 0 0 0 0 1 0 1 1 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 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 1 1 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 0 1 0 0 1 0 1 0 0 0 0 0 1 0 1 0 1 1 1 0 +0 0 1 +1 1 0 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1 1 0 1 1 0 1 0 1 1 1 1 1 1 0 0 1 1 0 1 1 0 1 1 1 1 1 0 1 1 0 1 1 0 0 1 0 1 0 1 1 1 0 1 0 0 1 1 1 0 1 1 1 0 1 1 0 0 0 1 0 1 0 1 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 0 1 1 1 1 0 +0 0 1 +0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 0 1 1 1 0 1 0 1 1 1 0 1 1 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1 0 1 1 0 1 0 +0 0 1 +0 0 0 1 1 1 1 1 1 0 1 1 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 0 0 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 +0 0 1 +0 0 0 1 0 1 1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 1 0 1 0 1 1 1 1 0 0 0 0 1 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 +1 0 0 +0 0 1 1 1 0 0 0 0 1 0 1 0 1 1 1 1 0 0 0 0 1 0 1 0 1 1 0 0 1 1 0 1 1 1 0 0 0 0 1 0 1 0 1 1 1 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 0 1 1 0 0 1 0 1 0 1 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 +0 0 1 +1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 1 1 1 1 0 0 1 0 1 1 0 0 1 1 1 0 0 0 1 0 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 1 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 1 1 1 0 +1 0 0 +0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 1 0 1 0 0 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 0 0 1 0 1 0 1 1 1 0 0 1 1 0 0 0 0 0 1 0 1 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 0 1 1 1 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 +1 0 0 +0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 0 1 1 1 0 0 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 1 +0 1 0 +0 1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 0 0 1 0 0 1 1 0 +0 0 1 +1 0 0 1 0 0 0 0 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 0 1 0 0 1 0 1 1 1 1 1 1 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 0 0 0 0 0 0 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 0 0 0 0 1 1 1 0 1 0 0 0 1 1 1 0 0 1 0 1 0 0 0 0 0 0 +1 0 0 +0 0 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 0 1 0 1 0 0 1 1 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1 0 1 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 0 1 1 1 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 +0 1 0 +0 0 1 1 1 0 1 0 0 1 1 1 1 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 1 0 1 0 0 0 0 1 0 1 1 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 0 0 1 0 1 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 0 1 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 1 0 +1 0 0 +1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 0 0 1 1 1 1 0 0 1 0 0 0 0 0 0 1 1 1 0 1 1 0 0 1 0 0 0 0 0 0 1 0 0 1 1 1 1 0 0 1 1 1 0 0 0 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 +0 0 1 +0 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0 1 0 0 1 0 1 1 1 0 0 1 1 1 0 1 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 +0 0 1 +0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 1 0 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 1 1 0 1 0 0 0 0 0 1 1 +0 1 0 +1 1 0 0 0 1 1 0 0 1 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 0 1 1 1 0 1 0 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 0 0 1 0 0 0 1 1 0 1 1 0 0 +0 0 1 +0 0 0 1 1 0 1 0 0 1 0 1 0 0 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 1 1 0 1 +1 0 0 +0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 1 0 1 1 0 0 1 0 0 0 1 0 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 0 1 0 1 0 1 1 1 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 +1 0 0 +0 1 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 0 1 0 0 1 1 1 0 0 1 1 1 0 1 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 1 1 0 0 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 0 0 1 1 0 0 1 1 1 0 1 1 1 0 1 0 1 0 1 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1 0 1 +1 0 0 +0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 1 0 1 1 0 0 0 1 0 0 1 1 1 0 1 0 0 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1 1 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 1 0 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 +0 0 1 +1 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 0 0 1 0 0 1 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 1 1 1 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 1 1 0 0 0 0 1 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 +1 0 0 +0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 1 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 +0 1 0 +0 0 0 0 0 1 0 1 0 0 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 0 1 1 0 1 0 0 0 1 1 1 0 0 1 0 1 1 0 1 0 1 0 0 1 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 1 1 0 0 1 1 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 +0 0 1 +0 0 0 1 1 1 0 0 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0 1 0 1 1 1 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 0 +0 1 0 +0 1 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 1 1 1 0 1 0 0 1 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 1 1 0 1 1 0 0 1 1 0 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 1 0 1 1 0 0 0 0 1 1 +1 0 0 +1 0 1 1 0 1 1 1 0 1 0 1 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 1 1 1 1 0 0 0 0 0 1 1 1 0 1 1 0 1 1 1 0 0 1 1 0 1 0 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 0 0 0 1 1 0 1 1 0 1 0 1 1 0 1 0 0 1 0 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 0 1 0 +0 1 0 +1 0 0 1 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 1 0 0 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 0 0 0 0 0 0 1 1 +1 0 0 +0 1 1 0 0 0 0 0 1 0 1 1 1 1 0 0 1 0 1 0 0 0 1 1 1 1 0 0 1 1 1 0 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1 0 0 1 1 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 0 0 1 0 1 1 1 0 0 0 0 1 0 0 0 1 +0 1 0 +0 1 0 1 0 1 0 1 1 1 1 0 1 1 0 0 1 1 1 0 0 0 1 1 0 0 0 1 1 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 1 0 0 0 0 1 1 0 0 1 0 1 0 1 +0 0 1 +0 1 1 0 1 0 0 0 1 1 1 0 0 0 0 1 0 0 1 0 1 1 1 0 1 0 0 1 1 1 0 0 0 0 1 1 1 0 0 1 0 1 0 1 0 1 0 0 1 1 1 1 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 1 1 1 0 1 0 1 0 1 1 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 1 0 +1 0 0 +0 0 1 1 1 1 1 0 0 1 0 1 1 1 1 0 1 1 0 1 1 1 0 0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 0 1 0 0 1 1 1 1 1 0 1 1 0 0 0 1 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 0 0 0 0 1 0 1 1 1 1 1 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 1 1 1 0 1 0 +0 0 1 +0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 0 1 0 1 0 0 0 1 0 1 1 1 1 0 1 0 0 0 0 1 0 1 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 0 0 1 0 1 0 1 1 1 1 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 1 1 0 1 1 +0 0 1 +1 0 1 1 1 0 0 1 1 0 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 1 1 0 1 0 0 0 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 0 0 0 0 1 0 1 0 0 1 1 0 1 1 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 1 1 0 0 +0 0 1 +1 0 1 1 1 1 0 1 0 1 1 1 1 1 1 1 0 0 1 1 0 1 1 1 1 0 0 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 +1 0 0 +1 0 1 1 1 1 1 0 0 1 0 1 0 0 0 1 0 1 1 1 1 1 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1 1 1 1 0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 0 1 0 0 0 1 0 1 0 0 1 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 1 0 1 1 0 1 1 0 1 1 1 0 1 1 1 0 0 1 1 1 0 1 1 1 0 0 1 0 1 0 1 0 1 1 1 +0 1 0 +0 0 1 1 1 0 0 1 0 0 0 1 1 0 0 1 0 1 1 1 1 0 0 1 0 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 1 1 1 0 0 1 1 0 1 1 +0 0 1 +0 1 0 1 1 1 0 1 1 1 0 0 0 1 0 1 0 0 1 0 1 1 0 1 0 1 1 1 0 1 1 0 1 1 1 1 0 0 1 1 1 0 1 0 0 1 0 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 0 0 0 1 1 1 1 1 0 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 0 1 0 0 1 +1 0 0 +0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0 1 0 1 1 1 1 0 0 1 1 1 1 0 1 0 1 1 1 0 1 1 1 0 1 0 0 0 1 0 1 0 1 0 0 1 1 0 1 1 0 1 1 0 1 1 1 0 1 1 1 1 1 0 1 1 1 0 0 0 1 +0 0 1 +0 1 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 1 0 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 1 1 1 0 1 0 0 0 0 1 1 1 0 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 1 1 1 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 1 1 1 1 1 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 0 1 1 1 0 +0 0 1 +0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 1 1 1 1 1 1 0 0 1 1 1 1 1 0 0 1 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 +0 1 0 +1 0 0 1 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 1 1 0 1 0 1 1 1 0 1 1 1 1 0 0 1 1 +1 0 0 +1 1 0 0 1 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 1 1 0 0 0 1 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 +0 0 1 +0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 1 1 1 0 0 1 0 0 0 0 1 0 1 0 1 1 0 0 0 1 1 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 1 0 0 0 0 1 1 1 0 1 1 0 0 0 0 0 1 +1 0 0 +1 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 0 1 0 0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 0 1 1 1 0 1 1 0 1 1 1 1 1 0 1 0 0 1 1 1 0 1 1 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 1 1 0 1 0 0 1 +0 0 1 +0 1 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 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 1 1 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 1 1 1 0 1 0 0 1 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 0 0 1 1 +0 1 0 +1 0 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 1 1 0 1 0 0 1 0 1 0 0 1 0 0 0 1 1 0 0 1 1 1 0 0 1 0 1 0 1 1 1 0 0 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 1 0 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 0 1 +1 0 0 +0 1 1 1 0 0 1 1 0 0 0 1 0 0 1 1 1 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 1 1 0 1 0 0 1 1 1 1 1 0 0 1 1 1 0 1 1 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 1 1 1 0 1 0 0 1 0 1 +0 1 0 +0 1 1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 0 1 0 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 1 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 +0 0 1 +1 0 1 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 1 0 1 0 1 1 0 0 0 1 1 0 1 1 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 0 0 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 1 1 0 1 +0 0 1 +0 0 1 0 1 0 0 0 0 1 1 1 0 0 1 0 0 1 0 0 1 1 1 1 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 1 0 1 0 0 1 1 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 +1 0 0 +1 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 1 1 1 1 0 1 1 0 0 0 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 0 1 0 0 0 0 1 0 1 1 0 1 1 1 0 0 1 1 0 1 1 0 1 0 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 1 +1 0 0 +1 1 1 1 0 1 0 1 0 0 1 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 0 1 0 1 1 1 0 1 1 0 1 0 0 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 0 1 0 0 0 1 1 0 0 0 1 1 1 0 1 1 1 0 1 1 0 1 1 0 1 1 0 1 0 1 0 1 1 0 0 1 1 1 1 0 +0 1 0 +1 0 0 1 1 0 1 1 1 1 0 1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 1 1 1 0 1 0 0 1 1 0 1 0 1 1 1 1 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 1 1 0 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 0 1 +0 0 1 +1 0 1 1 0 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 0 1 1 0 0 1 1 0 0 1 0 0 0 1 0 0 1 0 1 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 0 1 1 1 0 1 1 1 0 1 1 1 1 1 0 0 0 0 0 0 1 0 1 1 0 0 1 0 0 1 1 1 0 1 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 +0 0 1 +1 0 1 1 0 1 1 1 1 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 +1 0 0 +1 1 1 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 1 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 1 1 1 1 1 1 0 1 0 0 0 1 1 0 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 0 1 1 0 0 0 0 1 0 0 1 0 1 0 1 1 0 0 1 0 0 0 +0 1 0 +0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 0 1 1 0 1 1 0 1 1 1 0 0 1 1 0 1 1 1 1 1 1 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 0 1 1 1 1 0 1 0 1 0 0 1 1 1 0 1 1 0 1 0 0 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 1 0 1 1 1 1 1 +0 0 1 +1 0 1 0 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 0 1 1 0 1 1 1 0 1 0 0 0 0 1 0 1 1 1 1 0 1 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 0 1 0 1 0 0 0 0 1 0 0 0 1 +1 0 0 +1 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1 1 0 1 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 1 1 1 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 1 0 0 1 1 1 0 1 0 +0 0 1 +1 0 0 1 1 1 1 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 1 +0 1 0 +1 0 0 1 1 1 0 0 1 1 1 0 1 0 0 0 1 1 1 0 0 1 0 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 1 1 0 0 1 1 0 1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 1 0 1 1 0 1 1 1 0 0 1 1 1 0 0 0 1 1 1 1 +0 1 0 +1 0 0 1 1 1 1 1 0 0 1 1 0 0 1 0 1 0 1 0 0 0 0 0 1 0 0 1 1 1 1 0 1 1 1 1 0 0 1 1 0 0 0 1 1 0 1 0 0 1 0 1 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 1 1 0 1 0 0 0 1 1 1 1 0 0 1 0 0 0 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 0 1 1 0 0 0 1 1 +1 0 0 +1 1 1 1 0 0 0 0 1 1 0 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 1 1 1 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 0 1 +0 0 1 +1 1 1 0 1 1 1 0 1 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1 1 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 0 0 1 1 0 1 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 0 1 1 0 0 1 1 1 1 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 0 1 1 +0 0 1 +0 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 1 0 0 0 0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 0 0 1 1 1 0 1 1 0 0 1 1 1 1 0 0 1 1 0 1 1 0 1 1 0 1 1 1 1 0 1 1 0 0 0 0 0 1 0 1 0 1 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 1 1 1 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 1 0 1 +0 1 0 +0 0 1 1 0 0 0 1 0 0 0 1 1 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 0 0 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 0 0 1 0 1 1 1 1 1 1 1 0 0 1 1 1 0 +1 0 0 +1 1 1 0 1 1 0 0 0 1 0 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 1 1 1 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1 1 1 1 0 0 1 1 1 0 1 1 1 0 1 0 1 0 1 1 0 0 0 0 0 0 1 1 1 0 1 1 1 1 0 0 1 1 0 1 0 1 1 1 1 0 1 1 1 0 1 1 1 1 1 +0 0 1 +1 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 0 1 0 0 0 0 1 0 0 0 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 0 0 0 0 0 1 1 0 1 1 1 1 1 0 1 1 0 1 1 1 1 0 1 0 0 1 0 0 0 0 1 0 +0 0 1 +0 1 1 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 1 1 0 0 1 1 0 1 1 1 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1 1 1 0 1 1 0 1 0 0 1 1 1 0 1 0 0 0 1 1 1 0 0 1 1 1 1 1 1 0 1 0 1 0 1 1 0 0 1 1 0 0 1 0 1 0 1 1 1 1 1 1 1 1 0 0 0 1 1 0 1 0 1 0 1 1 0 0 0 1 1 1 0 1 1 1 0 +0 0 1 +0 1 0 0 1 0 1 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 0 0 1 0 1 1 1 1 1 1 0 1 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 1 0 0 0 1 0 0 0 0 0 1 +0 0 1 +1 0 0 0 1 0 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 0 1 0 1 1 1 1 0 1 1 0 0 1 1 1 1 1 1 0 1 1 1 0 1 1 0 1 0 1 1 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 1 1 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 1 0 0 1 0 1 0 0 0 0 1 1 0 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 +0 0 1 +0 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 1 1 1 0 0 1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 0 1 0 0 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 0 1 1 1 1 1 0 1 1 1 0 1 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 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 0 0 1 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 1 0 0 1 1 0 1 0 1 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 1 +0 1 0 +1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 0 0 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 +0 0 1 +1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 1 1 1 1 1 0 0 1 0 1 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 0 1 1 1 0 0 1 1 1 1 0 1 0 0 1 0 0 1 0 0 1 1 0 0 1 0 0 0 0 0 1 1 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 1 1 1 1 +0 1 0 +1 0 0 1 1 1 1 0 1 0 0 1 0 0 0 0 1 1 1 1 1 0 1 0 0 1 0 1 0 1 0 1 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 1 1 1 1 0 1 0 1 1 1 1 0 0 1 1 1 0 1 1 1 1 0 0 1 1 0 1 0 1 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0 0 +0 0 1 +1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 0 0 0 0 1 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 0 1 1 1 0 1 0 1 1 0 1 0 0 0 1 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 0 1 +0 1 0 +1 1 1 0 0 1 1 1 1 0 1 0 1 1 1 0 1 1 1 1 1 0 1 0 0 1 0 1 1 0 0 1 1 1 1 0 1 1 1 0 1 1 1 1 1 0 1 0 1 1 0 1 0 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 0 1 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 1 1 1 1 1 1 0 0 1 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 1 0 1 0 0 0 +0 0 1 +0 1 1 0 0 1 1 0 0 1 0 1 0 1 1 0 1 1 1 1 1 0 1 0 1 1 1 0 1 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 1 1 1 1 1 0 1 0 1 0 0 0 0 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 0 1 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 1 0 1 1 1 0 1 1 0 1 0 1 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 1 0 1 +1 0 0 +0 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 0 0 0 0 1 0 1 0 1 1 0 1 0 1 1 0 0 1 0 0 0 1 1 0 1 0 0 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 0 1 0 +0 0 1 +0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 0 0 1 0 1 0 1 0 0 0 1 0 1 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 1 0 1 1 1 0 1 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 1 0 +1 0 0 +0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0 1 0 1 1 1 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 +0 1 0 +1 0 0 0 1 1 0 1 1 1 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 1 0 1 1 0 0 0 0 0 1 1 1 0 1 1 1 1 0 1 1 0 1 1 1 1 0 1 0 1 1 0 1 0 1 0 0 0 0 1 0 1 0 1 1 0 1 0 0 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1 1 1 1 0 1 1 0 1 0 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 1 +0 0 1 +0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 1 0 0 1 1 0 0 1 0 0 1 1 0 0 0 1 0 1 0 1 1 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 1 0 +0 1 0 +0 1 0 1 1 0 1 0 0 0 1 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 0 0 0 1 1 1 0 0 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 1 1 0 0 0 0 0 1 1 1 0 0 1 1 1 0 1 0 1 0 1 +0 0 1 +1 0 0 1 1 0 1 0 1 1 1 0 0 1 0 1 1 0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 1 0 1 0 1 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 0 0 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 1 0 0 1 1 1 1 0 +1 0 0 +1 1 0 0 1 1 0 1 0 0 0 0 1 0 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 1 1 1 1 0 1 1 0 0 1 1 1 1 0 0 1 1 1 0 1 0 1 0 1 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 1 +0 1 0 +0 0 0 0 0 1 1 0 1 1 1 0 0 1 0 1 1 0 1 1 0 0 0 0 0 1 0 1 0 1 1 1 1 1 0 0 0 0 1 0 1 0 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 1 1 0 0 1 0 0 0 0 1 1 0 0 1 0 1 0 0 1 0 1 0 0 0 1 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 1 1 1 1 0 1 0 1 1 1 1 0 +0 0 1 +1 1 0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 0 0 1 0 1 1 1 1 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 1 0 1 1 0 1 1 0 0 1 0 1 1 1 1 1 0 0 0 0 0 1 1 0 1 1 0 0 0 1 0 1 1 1 0 1 0 0 0 0 0 1 1 0 0 1 1 1 1 1 1 1 0 0 +0 0 1 +1 0 0 1 1 1 0 0 1 0 1 1 0 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 0 1 0 0 0 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 1 1 1 0 1 0 0 0 1 1 0 0 0 0 0 1 0 1 +0 0 1 +1 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 1 0 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 0 0 0 1 1 0 0 1 +0 0 1 +0 1 0 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 1 1 1 0 1 0 0 0 0 1 0 0 0 1 1 0 1 1 1 0 0 0 0 1 0 0 1 1 0 0 1 1 1 0 1 0 0 1 0 0 0 1 1 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 0 1 1 0 0 0 0 0 +0 0 1 +0 1 1 0 1 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 1 0 0 1 0 0 1 0 1 1 0 0 0 1 0 1 1 1 0 1 0 1 0 0 0 1 0 1 1 0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 0 1 0 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 1 1 1 1 0 1 0 0 1 0 0 1 0 1 1 1 0 0 1 +0 0 1 +1 0 1 1 0 0 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 1 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 1 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 1 1 1 1 0 0 0 1 1 0 1 1 1 0 0 1 1 0 1 0 0 0 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 0 0 1 0 1 1 0 1 1 1 0 1 0 0 1 +0 0 1 +0 0 0 1 1 0 0 1 0 0 0 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0 1 0 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 1 1 1 1 0 0 0 0 0 1 1 0 0 1 0 1 1 0 0 1 0 0 1 1 0 0 0 1 +0 0 1 +1 0 0 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 0 0 0 0 0 1 0 1 0 1 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 1 1 0 1 1 0 1 0 1 0 1 0 1 0 0 1 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 +0 0 1 +0 1 1 1 1 0 1 1 0 0 0 0 0 1 1 1 0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 1 0 1 0 0 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 1 1 0 1 1 1 0 0 0 1 1 1 0 +0 1 0 +0 1 1 0 0 0 0 1 0 1 0 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 1 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 0 1 1 1 0 1 1 1 0 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 0 1 1 0 0 1 1 1 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 +0 0 1 +0 1 0 1 1 0 1 0 0 1 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 1 1 1 0 0 0 1 1 1 1 1 1 1 0 1 1 0 1 0 0 1 0 1 1 1 0 0 0 0 1 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 0 1 1 1 1 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 1 0 +0 1 0 +1 1 1 1 1 0 0 1 0 0 0 1 1 0 0 0 0 1 0 1 0 1 1 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 0 1 1 0 1 1 0 0 0 0 1 1 0 0 0 1 0 0 1 1 1 0 1 1 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 +0 0 1 +0 1 0 0 1 1 1 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 1 1 0 0 0 1 1 0 1 1 1 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 1 1 1 +0 0 1 +0 1 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 0 0 0 1 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 1 1 1 1 0 0 0 0 1 0 0 1 1 1 1 0 0 1 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 1 0 0 1 0 1 0 0 0 0 0 1 +1 0 0 +1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 0 0 0 0 0 0 0 1 0 1 1 0 1 1 1 0 0 1 0 0 0 1 1 0 1 0 0 1 0 0 0 0 1 1 +0 0 1 +0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 1 1 1 0 1 1 0 0 1 0 0 0 1 1 0 1 1 1 0 0 1 1 0 0 1 1 0 1 1 0 1 0 1 1 1 0 0 1 0 1 1 0 0 0 1 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 0 +0 1 0 +1 1 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 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 1 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 0 1 0 1 1 0 1 1 0 0 0 1 0 0 1 1 1 0 1 1 0 1 1 0 0 0 1 0 0 1 1 1 1 0 0 1 0 0 1 1 0 0 +0 1 0 +0 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 1 1 +0 1 0 +1 0 0 0 0 1 1 0 1 1 1 0 1 0 1 1 1 1 1 0 0 1 1 1 1 0 0 1 0 1 1 1 0 1 0 0 0 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 1 0 1 1 0 0 1 1 0 1 0 1 1 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 0 1 1 1 1 1 0 0 0 +1 0 0 +0 1 0 1 1 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 1 +0 0 1 +0 1 0 1 1 0 0 0 1 1 1 0 0 0 0 1 0 0 1 0 1 1 1 0 1 0 0 1 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 1 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 +1 0 0 +1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 0 1 1 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 1 1 0 0 0 1 1 1 0 1 1 0 0 1 1 1 1 0 +0 1 0 +0 0 0 1 1 1 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1 0 1 1 1 1 0 0 1 0 0 1 1 1 0 0 1 0 0 0 1 1 0 0 1 0 1 1 1 0 1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 0 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 0 1 1 1 0 0 1 0 0 1 1 +0 0 1 +0 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 1 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 0 1 1 1 1 1 0 1 0 1 0 1 0 0 1 0 1 1 1 1 0 1 0 1 0 1 1 1 0 0 0 1 0 1 0 1 0 1 1 0 0 0 1 1 0 +1 0 0 +1 1 1 0 0 1 1 1 1 0 0 1 0 1 0 1 1 0 0 1 1 0 1 0 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 0 0 1 1 0 1 1 0 1 0 1 1 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 1 1 1 0 0 1 1 0 1 1 1 1 0 0 0 0 1 0 0 0 1 0 1 +1 0 0 +1 1 0 1 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 1 1 1 1 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 1 1 1 0 1 0 0 0 0 1 0 1 0 1 0 1 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 0 1 0 1 1 0 1 0 1 0 1 0 1 1 0 1 0 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 0 1 +1 0 0 +0 0 0 0 0 0 1 1 1 0 0 1 0 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 0 1 1 0 0 1 1 0 1 0 1 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 0 1 0 0 0 0 0 1 1 1 0 0 1 0 0 1 0 +0 1 0 +1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 1 1 0 0 1 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0 0 1 1 0 0 0 1 1 0 1 0 1 0 1 1 1 0 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 1 1 0 +1 0 0 +1 1 0 1 1 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 0 1 0 0 0 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 0 1 0 1 1 0 1 0 0 0 1 1 +0 0 1 +1 0 0 0 1 1 0 0 1 1 0 1 0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 1 0 0 0 1 0 0 1 0 1 0 0 0 1 1 1 1 1 0 1 1 0 1 0 1 0 1 1 1 1 0 1 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 0 +1 0 0 +0 0 0 1 1 0 1 1 0 0 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 1 1 0 1 0 1 1 0 0 1 0 0 0 1 1 1 1 1 1 0 0 1 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 1 1 0 0 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 1 0 0 0 1 1 0 0 +0 0 1 +0 0 1 0 1 0 0 1 1 0 0 1 0 0 1 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 1 0 0 1 0 1 0 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 +1 0 0 +0 1 1 1 0 0 0 1 1 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 0 0 0 1 0 0 1 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 +1 0 0 +1 0 0 1 1 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 1 1 0 1 0 1 1 1 1 1 1 1 0 1 0 0 1 1 1 0 0 1 1 0 1 1 1 1 1 0 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 1 0 0 0 0 0 1 1 0 1 1 1 0 1 1 1 0 1 0 0 1 1 0 1 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 1 0 0 1 1 0 +0 0 1 +1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 0 1 0 1 0 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 0 1 0 0 0 0 1 1 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 0 1 0 1 0 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 1 0 1 1 0 1 0 0 1 0 1 0 0 1 0 1 0 1 0 1 1 0 1 1 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 0 0 0 0 0 0 1 1 1 0 +0 1 0 +1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 0 0 1 1 0 0 0 1 0 0 1 1 1 0 1 0 1 1 +0 1 0 +1 0 1 1 1 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 +0 1 0 +0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 0 1 1 1 0 0 0 1 0 0 1 1 0 0 0 1 1 0 1 1 0 1 0 1 1 0 1 0 0 0 1 0 0 1 0 1 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 1 0 +1 0 0 +0 1 1 0 1 0 0 0 1 1 1 0 0 0 0 0 1 1 0 1 1 1 0 0 0 1 1 0 0 1 0 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 1 1 0 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 1 0 1 0 0 0 1 1 0 0 0 1 0 0 0 1 0 1 1 0 1 1 0 1 0 0 0 0 0 1 1 1 1 1 +0 0 1 +0 0 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 0 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 1 0 1 0 0 0 1 1 0 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 0 1 1 0 1 1 1 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 0 1 0 1 1 1 0 0 0 1 0 0 0 0 +0 0 1 +1 1 1 1 1 1 1 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 0 1 0 0 0 0 0 0 1 1 0 +0 1 0 +0 1 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 1 1 0 0 0 1 0 1 1 0 0 1 0 0 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 0 0 1 0 0 1 0 0 1 0 1 1 0 0 0 1 0 0 1 1 1 0 0 0 0 1 0 0 1 1 0 0 0 0 1 1 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 +0 0 1 +0 1 1 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 0 1 1 0 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 1 1 1 0 1 0 0 0 1 1 1 0 0 0 1 0 0 1 1 1 0 1 0 1 1 1 0 0 0 1 0 1 1 1 1 1 0 0 1 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 1 1 0 0 1 0 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 +1 0 0 +0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 1 1 1 0 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 0 0 1 1 0 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 1 1 1 1 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 1 1 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 0 1 1 1 +1 0 0 +1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0 0 1 1 1 1 0 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 1 1 1 0 1 1 1 1 1 1 0 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 +0 0 1 +0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0 1 1 1 0 0 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 +1 0 0 +1 1 1 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 1 1 1 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0 0 1 0 0 0 1 1 1 0 1 0 1 0 0 1 0 1 1 0 0 0 1 1 1 0 0 1 0 1 1 0 1 0 0 0 0 1 1 0 0 1 0 1 1 0 1 0 1 1 1 1 0 0 0 0 1 0 0 1 1 0 0 1 1 1 0 0 0 1 1 0 1 0 1 1 +0 0 1 +0 1 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 0 0 1 1 1 1 0 1 0 0 0 0 1 1 1 0 1 1 0 1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1 +1 0 0 +0 0 0 1 1 1 0 1 0 0 1 1 1 1 1 0 1 0 0 0 1 1 0 0 1 1 0 1 1 1 1 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 1 1 0 1 0 0 1 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 1 0 1 1 0 0 1 0 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 +0 1 0 +1 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 0 1 1 0 0 1 1 1 0 1 1 0 1 0 0 0 0 1 1 0 1 0 1 0 0 1 0 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 1 1 0 +1 0 0 +1 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 1 0 1 0 1 0 1 0 1 1 1 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 +0 0 1 +1 1 1 1 0 0 1 1 0 0 0 1 1 0 1 0 0 1 1 1 1 1 1 1 1 0 1 1 1 0 1 0 0 0 0 1 0 0 0 0 1 1 1 1 0 0 1 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 0 1 1 0 0 0 1 0 1 1 1 0 0 1 1 0 0 0 1 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 +0 0 1 +1 0 0 1 0 1 1 1 1 1 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 1 0 1 0 0 1 0 1 0 1 1 0 0 0 1 0 1 1 0 1 0 1 0 0 0 1 1 0 1 1 0 0 1 1 0 0 1 0 1 0 1 1 0 1 0 0 1 1 1 1 1 1 1 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 0 1 +0 0 1 +0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 1 0 0 0 1 1 1 0 1 0 1 0 0 0 1 0 1 1 1 0 1 0 1 1 0 1 1 0 1 1 1 0 0 0 0 1 1 1 1 0 1 0 0 0 1 1 1 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 0 1 1 1 1 0 1 0 0 +0 0 1 +0 0 0 1 1 0 0 1 1 0 0 0 1 1 1 0 0 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 1 0 0 1 1 0 0 0 0 1 0 1 0 1 0 0 1 1 0 0 1 0 1 0 0 1 0 1 0 1 0 1 1 0 1 1 1 1 0 0 1 1 0 1 1 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 0 0 1 0 0 0 1 1 0 1 1 1 0 1 0 1 0 0 +0 0 1 +0 0 1 0 0 1 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 0 1 1 1 0 1 0 1 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 0 1 0 1 1 +0 0 1 +1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 1 0 0 1 1 1 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 0 1 1 1 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 0 1 1 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 +0 1 0 +0 1 0 0 0 1 1 1 1 0 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 0 0 1 1 1 0 1 0 1 0 1 1 1 1 1 0 0 1 1 0 0 0 1 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 1 0 1 0 1 1 0 1 0 1 1 1 0 0 1 0 1 0 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 1 1 0 1 0 0 1 1 1 0 1 1 +0 0 1 +1 0 0 1 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 0 1 1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 1 1 1 1 0 1 0 1 0 0 1 0 1 1 1 0 0 0 0 0 0 0 1 0 1 1 1 1 0 1 0 1 0 1 0 0 1 0 1 1 0 1 1 0 0 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 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 1 1 1 0 0 0 0 1 0 0 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 0 0 0 1 1 0 0 1 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1 0 0 0 1 0 1 1 0 0 0 0 0 +0 1 0 +1 1 1 1 0 0 0 1 1 0 1 0 1 0 0 1 0 1 0 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 1 1 1 1 1 0 1 0 1 1 1 1 1 1 0 1 1 1 0 1 1 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 +0 0 1 +0 1 1 1 1 1 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 0 0 1 0 1 1 0 0 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 0 0 1 0 1 1 0 1 0 1 1 0 0 1 0 1 0 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1 1 1 1 1 0 1 1 1 1 0 0 0 1 0 1 0 0 1 1 +1 0 0 +0 0 1 1 1 0 1 1 0 1 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 1 0 0 1 1 0 1 0 0 1 1 0 0 0 0 1 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 0 1 1 0 0 +0 0 1 +0 1 1 1 0 0 0 1 0 1 0 0 0 1 0 1 1 1 1 0 1 1 0 0 1 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 1 0 1 0 0 1 1 0 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 0 1 0 +0 0 1 +1 1 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 1 0 0 1 1 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 0 0 0 1 1 0 1 0 1 1 0 1 1 1 1 0 0 1 1 1 1 1 0 0 0 0 0 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 0 1 0 1 1 0 1 0 +1 0 0 +0 1 0 0 1 1 1 0 1 0 0 0 0 0 1 1 0 0 1 0 1 1 1 0 1 0 1 1 1 0 1 1 0 1 1 1 1 0 0 1 0 0 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 0 0 0 0 1 1 1 0 1 0 0 1 0 0 0 0 +1 0 0 +1 0 0 1 1 1 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 0 0 0 1 1 0 0 0 1 1 0 1 1 1 1 0 1 0 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 0 1 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0 1 +1 0 0 +1 0 0 0 0 1 1 0 0 0 1 1 1 1 1 0 1 0 0 1 1 0 0 1 1 0 1 1 0 1 0 0 0 1 0 1 0 1 1 1 1 1 0 0 0 0 0 1 1 0 0 1 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 1 0 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 0 0 +1 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 0 1 0 0 1 0 0 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 1 1 1 0 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 +1 0 0 +0 0 1 1 1 0 0 1 1 0 1 0 0 1 1 1 1 1 0 0 0 0 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 0 1 0 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 0 0 0 1 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 0 0 1 1 1 +1 0 0 +1 1 0 0 1 1 1 0 1 1 1 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 1 1 0 1 1 1 0 0 0 0 1 1 0 1 1 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 1 0 0 0 1 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 +0 0 1 +0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 1 0 1 1 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 1 0 1 1 0 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 1 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 +1 0 0 +1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 1 1 0 0 1 1 0 1 0 1 0 0 1 0 1 1 0 0 0 0 1 1 1 1 0 1 0 0 1 1 1 1 0 1 0 0 1 1 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 0 1 1 +0 0 1 +0 1 1 1 1 1 1 0 1 0 1 1 1 0 1 0 0 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 1 1 1 1 1 0 0 1 1 1 0 0 1 0 1 1 0 0 1 1 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 1 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 0 1 +0 0 1 +0 0 1 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 1 0 1 0 1 0 0 1 0 0 0 1 1 1 0 0 1 1 1 1 0 1 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 1 0 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 1 1 +1 0 0 +0 1 1 0 1 0 0 1 1 1 1 0 1 0 0 0 1 0 0 1 1 1 0 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 1 0 0 0 1 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 0 +1 0 0 +1 0 0 1 0 1 0 0 1 1 1 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 0 1 1 0 0 1 1 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 1 0 0 0 0 1 0 1 0 1 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 1 0 0 0 1 1 +0 0 1 +0 1 1 1 1 1 0 0 0 1 1 0 1 0 0 1 1 1 1 1 0 1 1 1 1 0 0 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 1 1 1 1 0 0 0 1 0 0 1 0 1 1 0 0 1 1 1 1 1 0 0 0 1 0 0 1 1 1 0 1 0 0 1 0 0 1 0 0 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 1 1 0 1 0 1 0 +0 0 1 +0 1 0 0 1 1 0 1 1 1 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 0 0 1 0 0 0 0 1 1 1 0 1 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 +0 0 1 +0 1 1 1 0 1 1 1 1 1 0 0 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1 0 0 1 1 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 0 1 1 0 1 1 1 0 1 1 1 0 0 0 1 0 1 1 0 1 1 0 1 1 0 0 1 0 0 1 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 1 1 1 0 1 1 +0 0 1 +0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 0 0 1 1 1 1 1 1 1 0 1 1 1 0 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 0 1 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 0 1 1 0 1 0 0 1 1 1 1 0 1 1 1 0 1 0 1 0 0 1 1 1 0 0 0 1 1 0 1 0 +1 0 0 +0 1 0 1 1 1 1 1 0 1 0 1 0 1 0 1 1 0 1 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 0 1 1 1 1 0 1 1 1 0 0 0 0 1 1 1 1 0 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 0 0 0 0 1 1 1 0 1 0 1 1 0 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 1 1 0 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 +0 1 0 +0 1 0 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 1 0 1 1 1 0 1 0 0 1 0 0 0 0 0 0 1 1 1 0 1 1 0 0 0 1 0 1 0 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 +1 0 0 +0 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0 1 0 1 0 0 1 0 1 0 1 1 1 1 1 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 1 1 1 1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 +0 0 1 +0 0 1 1 1 1 1 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 0 1 1 1 0 0 0 0 1 1 1 1 0 0 1 0 0 0 1 1 0 0 1 1 0 0 0 0 1 0 1 1 0 0 1 0 0 0 0 0 0 1 1 1 0 1 1 0 0 1 1 0 0 1 1 1 1 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 1 +0 1 0 +0 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 0 1 1 0 1 0 0 1 0 1 0 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 +0 1 0 +1 0 0 1 1 1 0 0 1 0 1 1 1 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 0 0 1 0 0 0 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 0 0 1 1 1 0 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 +0 0 1 +1 0 1 1 0 0 1 0 1 1 0 0 0 0 1 1 0 0 0 1 0 0 1 0 1 0 1 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 1 1 1 0 0 1 1 0 1 0 1 1 1 0 1 0 1 0 0 1 1 1 0 0 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 1 1 1 1 0 0 0 0 1 0 1 0 1 0 1 1 1 0 0 0 1 1 0 1 0 0 1 1 0 +0 0 1 +1 0 1 1 1 0 1 0 0 0 0 0 1 0 1 1 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 1 1 0 0 1 0 1 0 1 1 0 0 1 1 0 0 1 0 1 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 1 1 0 0 1 1 0 0 0 1 1 1 1 0 0 1 0 0 1 1 0 0 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 1 1 0 0 0 1 +0 0 1 +0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 1 1 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 1 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 1 0 0 1 0 1 0 0 1 1 0 1 1 1 1 0 1 0 1 0 1 0 1 0 0 0 0 1 1 1 0 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0 1 1 0 0 0 1 +0 0 1 +1 1 1 1 0 1 1 1 0 1 1 1 0 1 0 1 0 1 1 1 1 1 0 1 1 0 1 0 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 1 0 0 0 1 0 1 1 1 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 0 1 0 1 0 0 1 1 1 1 0 0 0 1 0 1 1 0 0 0 0 0 0 0 1 1 0 1 1 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 1 0 +0 0 1 +0 1 1 0 1 0 0 1 0 0 1 0 0 0 1 1 0 0 0 1 1 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 0 1 0 1 0 1 1 0 1 1 1 0 1 0 0 1 0 1 1 0 0 0 1 0 0 1 0 1 1 0 0 0 0 0 1 0 +0 1 0 +0 0 0 1 0 1 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 1 0 1 0 0 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 +0 1 0 +0 0 0 1 1 0 1 0 1 0 1 1 0 1 1 1 1 1 1 0 0 1 0 0 1 1 1 0 0 1 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 1 0 0 1 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 0 1 0 1 0 1 1 1 1 0 1 1 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 1 1 0 +0 0 1 +1 1 1 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 1 1 0 0 1 0 1 0 1 0 0 0 0 1 1 1 0 1 1 1 1 1 1 0 0 0 1 0 1 0 0 0 1 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1 0 0 1 1 1 0 0 1 1 1 0 1 1 0 1 1 1 1 1 1 0 0 1 0 0 1 1 0 1 0 1 1 1 0 1 0 0 0 1 0 0 +0 0 1 +1 0 1 0 1 1 1 0 0 1 0 1 1 0 0 1 0 0 0 1 1 1 1 1 1 0 1 1 1 0 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 0 0 0 0 0 1 1 0 0 1 1 1 1 1 0 1 1 1 0 1 0 1 1 1 0 1 1 0 1 0 1 0 1 0 0 1 1 1 1 1 0 1 1 0 1 0 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 +0 0 1 +1 1 1 1 0 0 0 1 1 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 1 1 0 0 1 1 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0 0 1 0 0 1 1 1 1 1 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 1 1 0 1 1 0 +0 0 1 +1 0 0 1 1 1 1 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 0 1 0 1 1 1 1 0 1 0 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 0 1 1 0 1 0 1 1 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 +1 0 0 +1 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 0 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 1 0 1 1 1 0 0 1 1 1 1 +0 0 1 +1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 0 1 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 1 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 0 1 1 1 0 0 1 1 1 0 0 0 0 1 0 0 0 1 1 0 0 1 1 1 0 0 0 1 +0 0 1 +1 0 1 1 0 1 1 0 0 1 0 0 0 1 0 0 0 0 1 1 0 1 0 1 1 0 0 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 1 1 0 1 0 1 1 1 0 1 1 0 0 1 1 1 0 0 0 0 1 1 1 1 1 0 1 1 1 1 1 1 0 1 0 1 0 0 0 0 0 1 0 0 1 0 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 1 1 +0 1 0 +0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 0 1 0 1 1 1 0 0 0 0 1 1 0 1 1 0 1 1 0 0 1 1 0 0 1 1 1 0 0 1 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 0 0 1 0 0 1 1 1 1 1 1 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 1 1 0 +0 0 1 +1 1 1 1 1 0 1 0 0 1 0 1 1 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 0 1 1 1 0 0 0 0 +0 0 1 +1 1 0 0 1 0 1 1 0 0 1 0 1 1 1 0 1 0 0 1 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 0 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 1 1 1 0 1 1 1 0 0 0 +1 0 0 +0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 1 0 1 1 0 1 0 1 0 0 0 0 0 1 1 1 1 0 1 1 1 1 0 1 1 0 0 1 1 1 1 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 0 1 0 0 1 0 0 0 1 1 0 1 1 1 1 0 1 0 0 0 1 1 0 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 1 0 +0 1 0 +1 1 0 1 0 1 0 0 1 1 1 1 1 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 1 0 1 0 0 0 1 0 1 0 1 0 1 1 1 1 0 1 0 0 0 0 1 1 0 1 1 1 1 1 0 1 0 0 1 1 1 1 1 1 1 0 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 1 1 1 1 0 1 0 0 1 1 1 1 1 1 1 0 1 +0 0 1 +1 1 0 0 1 1 0 1 1 0 0 1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 1 1 0 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 0 0 0 1 1 0 0 0 1 1 1 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 1 0 1 0 0 0 1 1 0 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 1 0 1 +0 0 1 +0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 1 0 0 1 1 1 0 0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 1 1 0 +0 0 1 +1 1 1 0 1 0 0 0 0 0 1 1 1 0 0 1 0 0 0 1 0 0 1 1 1 1 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 1 1 1 1 0 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 1 1 0 1 1 1 0 0 1 0 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 1 0 0 1 0 0 1 1 1 1 1 1 1 0 0 1 1 0 0 0 +0 1 0 +1 1 1 0 0 0 1 0 1 0 0 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 0 1 1 1 0 0 0 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 0 0 1 1 0 1 0 1 1 0 0 0 1 0 0 1 0 +1 0 0 +0 0 0 1 1 0 0 0 1 1 1 1 1 0 1 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 +0 0 1 +0 0 1 1 1 0 0 1 0 0 0 0 1 1 1 1 0 1 0 1 1 0 1 1 0 0 0 1 1 1 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 1 1 0 1 1 1 0 0 0 1 1 0 1 1 0 1 0 0 1 1 1 1 1 0 1 0 0 0 1 1 0 1 0 1 1 1 0 1 1 1 0 0 1 1 0 0 0 +0 0 1 +1 0 1 0 1 1 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 0 0 1 0 0 1 1 0 0 0 0 1 1 1 0 1 0 0 0 1 1 1 1 1 1 0 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 0 0 1 +0 0 1 +0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 0 1 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 1 0 0 1 0 0 +0 1 0 +1 0 1 0 0 0 1 1 1 0 0 0 0 0 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 1 1 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 1 1 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1 0 0 0 1 1 1 0 1 1 1 0 0 1 1 0 0 1 1 +1 0 0 +0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 1 1 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 1 1 0 0 1 0 0 0 0 0 1 0 0 0 1 0 1 1 0 0 0 1 1 1 0 1 1 0 0 0 0 1 1 1 1 1 0 1 0 0 1 1 1 1 0 0 1 1 0 0 0 1 1 1 0 +0 1 0 +1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 1 0 0 0 0 1 1 1 0 1 0 1 1 1 0 1 1 1 0 0 0 1 0 1 0 1 0 1 0 0 1 1 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 1 0 1 0 0 1 0 0 0 0 1 +0 0 1 +0 1 0 1 0 1 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 1 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 1 1 1 1 0 1 0 0 0 1 1 0 1 1 1 0 0 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 0 1 1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 +0 0 1 +1 0 1 1 0 0 0 1 0 0 0 0 1 0 0 1 1 1 0 0 0 0 1 1 1 0 0 1 0 0 0 0 1 1 0 0 1 1 1 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 1 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 0 1 1 0 1 1 1 0 1 0 1 1 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 +0 1 0 +1 1 0 1 0 0 0 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 0 1 1 0 0 1 0 0 1 0 1 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 0 1 1 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 1 1 0 0 1 0 1 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 0 1 1 0 0 0 0 1 0 1 1 1 1 0 0 0 0 1 +1 0 0 +0 1 0 1 1 0 0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 0 1 1 1 0 1 0 1 1 0 0 1 1 0 0 1 0 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 1 0 0 1 +0 1 0 +1 0 1 0 1 0 1 1 1 0 1 1 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 1 1 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 1 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 0 0 1 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 1 0 +1 0 0 +0 1 1 0 1 0 1 1 1 0 1 1 0 1 1 1 1 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 1 0 0 1 1 1 1 0 1 1 0 0 0 0 0 1 0 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 1 1 0 0 1 0 1 0 1 1 1 0 1 0 1 +0 0 1 +0 1 1 0 0 1 1 0 0 1 0 1 0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 1 0 0 0 1 0 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 0 0 1 1 0 1 0 1 1 0 1 0 1 0 1 0 0 1 1 1 1 1 1 0 0 1 1 1 0 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 1 0 0 0 1 1 1 1 0 0 1 1 1 0 1 0 0 0 +1 0 0 +0 0 0 0 0 0 0 1 0 1 1 0 0 0 1 0 1 0 1 0 0 1 1 1 1 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 0 0 0 1 0 1 1 0 1 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 1 0 1 1 0 0 0 1 0 0 1 1 1 0 1 1 1 0 0 0 +0 0 1 +1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 1 0 1 1 0 1 1 1 1 0 0 1 1 1 0 1 0 1 1 0 0 1 0 1 1 1 1 0 1 1 1 1 1 0 0 0 0 0 1 1 1 0 1 1 1 1 0 0 1 1 1 0 1 0 0 0 0 1 0 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 +0 0 1 +1 0 1 0 0 1 0 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 1 0 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 0 0 1 1 0 1 +0 1 0 +1 0 1 0 1 0 1 1 0 0 0 0 0 0 1 1 1 0 1 1 1 0 0 1 0 0 0 1 1 1 1 0 1 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 1 1 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 1 1 0 1 1 1 1 0 1 1 1 0 +0 1 0 +1 1 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 1 0 0 1 1 1 0 0 1 0 0 1 1 0 1 0 1 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 1 1 0 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 1 0 0 0 1 1 +0 1 0 +1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 1 0 1 1 1 0 1 1 0 0 1 0 0 0 0 1 1 0 0 1 0 0 1 0 1 0 1 1 1 0 0 1 0 0 0 0 0 1 1 0 1 1 1 0 0 0 1 1 1 1 1 0 1 0 1 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 0 1 0 +0 1 0 +1 0 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 0 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 1 0 0 1 0 0 0 1 1 1 1 1 0 1 1 0 1 0 1 0 1 1 0 1 0 1 1 0 0 0 1 1 0 0 1 1 1 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 1 0 1 1 1 0 1 0 1 1 0 0 1 0 1 0 1 0 +1 0 0 +1 0 0 1 1 1 0 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 1 0 1 0 0 0 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 0 0 1 0 1 0 1 0 1 1 1 1 0 0 0 0 1 0 1 1 0 1 1 1 0 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1 1 1 0 1 1 0 0 0 1 1 1 1 +0 0 1 +0 1 0 1 1 0 0 1 0 1 1 1 0 0 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 1 1 1 0 0 1 0 1 0 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 0 0 0 0 0 1 1 0 1 0 1 1 0 +0 0 1 +0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 1 1 0 1 1 0 0 0 1 1 0 0 1 0 0 1 1 1 1 0 0 0 1 1 0 0 1 0 0 1 1 1 1 1 1 0 0 0 1 0 1 1 0 0 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 0 1 0 1 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 0 0 0 1 +0 0 1 +0 0 1 1 1 0 0 1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 1 1 1 1 1 1 0 0 1 0 1 0 1 0 0 0 1 1 1 1 1 0 1 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 0 1 0 1 0 0 1 0 1 0 1 1 0 1 1 1 1 1 1 +1 0 0 +0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0 0 0 1 0 1 1 0 0 0 0 1 0 0 0 0 1 0 1 1 0 0 1 0 0 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 1 1 1 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 1 1 1 0 0 1 0 0 1 0 0 1 1 0 1 0 1 0 0 0 1 0 0 0 0 0 1 1 +0 0 1 +0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 1 1 1 1 0 0 1 0 0 0 1 0 1 0 0 1 1 1 1 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1 +0 1 0 +1 0 1 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 0 1 0 1 0 1 0 0 0 1 1 0 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 0 1 0 0 1 1 1 1 1 0 1 0 1 0 1 1 0 1 0 1 0 1 1 1 0 1 1 0 1 0 0 1 +0 0 1 +0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 1 0 1 1 0 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 +0 0 1 +1 0 0 1 1 0 1 1 0 1 1 1 1 0 1 0 0 1 1 1 1 1 1 1 0 0 0 1 0 0 0 1 1 1 1 1 0 0 1 1 0 1 0 1 0 0 0 1 0 0 0 1 1 1 1 1 0 1 1 0 0 1 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 1 1 1 0 0 0 1 1 1 0 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 1 0 1 1 0 1 0 0 0 1 1 1 0 +0 1 0 +1 0 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 0 0 1 1 1 1 1 0 0 1 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 0 0 0 0 1 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1 1 1 +1 0 0 +0 0 1 1 0 0 1 1 1 1 1 1 1 0 1 1 0 0 0 0 1 1 1 1 1 1 1 0 1 0 1 0 0 0 0 0 0 0 1 1 1 1 1 0 1 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 0 0 0 1 1 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 0 0 1 0 1 0 0 0 1 1 0 1 1 1 0 0 0 0 1 1 1 0 0 1 1 1 1 0 1 0 1 +0 0 1 +0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 1 1 1 1 0 0 1 0 1 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 0 0 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 1 1 +0 1 0 +1 0 0 1 1 1 1 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 1 +0 1 0 +1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 1 1 1 0 0 1 1 0 1 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 1 1 1 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 +0 0 1 +1 1 1 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 0 0 1 1 0 1 0 0 1 0 1 1 1 1 0 1 1 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 1 1 1 1 0 1 0 1 0 1 1 1 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 1 1 1 1 1 0 1 1 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 1 1 0 1 0 0 0 1 0 1 1 0 +0 0 1 +0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 0 0 1 0 0 0 0 1 0 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 1 1 1 0 1 1 1 0 1 0 0 1 0 0 0 1 0 1 0 0 1 1 1 0 1 1 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 +1 0 0 +0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 0 1 0 0 1 1 1 0 1 1 0 0 0 1 0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 1 0 0 0 1 0 0 0 0 1 1 1 1 0 0 1 1 0 1 0 0 1 0 0 1 1 0 1 0 0 1 0 0 0 0 1 0 0 1 1 0 +0 0 1 +0 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 1 0 0 1 1 1 0 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 0 1 0 1 1 0 0 0 0 1 0 1 1 1 1 0 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 1 1 1 +1 0 0 +0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 1 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 1 1 0 1 1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 0 0 0 0 1 0 1 1 0 1 1 0 0 1 0 1 1 0 1 1 0 0 1 1 1 0 1 0 0 0 0 1 1 0 +0 1 0 +0 0 0 0 0 0 0 1 0 1 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 0 0 +1 0 0 +1 0 1 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0 1 1 0 0 1 0 0 1 1 1 0 0 1 0 1 1 0 0 1 1 0 0 0 1 1 0 1 1 1 1 1 1 0 1 1 1 0 1 1 1 0 0 1 1 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 0 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 1 +1 0 0 +1 1 0 0 1 1 1 0 1 0 1 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 0 1 0 1 1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 1 1 0 1 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 +0 0 1 +0 0 1 0 0 0 1 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 1 0 0 0 1 1 1 0 0 0 1 1 0 1 0 0 0 0 0 1 0 1 1 1 1 0 0 1 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 0 0 1 1 0 1 0 1 1 0 0 0 1 0 0 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0 0 0 1 0 1 1 0 1 1 0 0 1 1 +0 0 1 +0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 1 1 1 1 0 1 0 0 0 1 0 0 1 1 0 1 0 0 1 0 0 1 1 1 1 1 1 0 1 0 1 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 1 1 1 0 0 0 1 1 +1 0 0 +1 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 1 1 1 0 1 0 0 1 1 1 0 1 1 1 1 0 1 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 1 1 1 0 1 0 0 1 0 0 0 1 0 0 0 1 1 1 0 1 0 0 0 1 1 1 1 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 +0 0 1 +0 1 1 0 0 1 1 1 0 1 0 0 0 1 0 0 1 0 1 1 1 0 0 0 0 0 0 1 1 1 1 0 1 1 1 0 0 0 0 1 1 0 0 0 0 1 0 0 1 0 0 1 1 0 1 0 1 0 1 0 0 0 1 1 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 0 1 1 0 +0 0 1 +1 0 0 0 0 0 1 0 0 1 0 1 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 1 0 1 0 0 1 1 0 0 0 0 1 1 0 1 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 1 0 0 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 0 0 +0 0 1 +0 1 1 1 1 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 1 1 1 1 0 1 0 1 1 1 0 1 0 0 0 0 0 1 1 0 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 1 0 0 1 1 1 0 0 0 1 +1 0 0 +1 1 1 0 0 0 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 0 1 0 1 1 1 1 0 1 1 0 1 1 0 0 0 0 1 1 0 1 1 1 1 1 0 0 1 1 1 0 0 0 0 0 1 1 0 1 1 0 1 1 0 0 1 0 1 0 1 1 0 1 0 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0 0 +0 0 1 +1 1 1 0 0 1 0 0 0 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 0 1 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 0 0 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 0 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 0 1 +0 0 1 +0 1 0 1 1 0 1 1 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 1 0 1 0 1 1 1 0 1 1 0 0 1 1 0 0 0 0 1 0 1 1 1 1 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 1 1 1 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 0 1 0 0 1 0 0 0 1 1 0 0 1 0 0 0 1 1 0 1 0 1 1 1 0 0 0 0 0 0 1 1 0 0 1 0 0 +0 1 0 +0 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 1 0 0 1 1 0 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 0 1 0 1 1 0 0 1 0 1 0 0 0 1 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 1 0 1 0 1 1 0 0 1 1 0 1 0 1 0 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 0 1 1 1 0 0 0 0 +1 0 0 +1 1 1 0 1 1 0 1 0 1 0 1 1 1 1 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 0 1 1 1 0 1 1 0 1 1 0 0 0 1 1 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0 0 0 1 1 0 1 1 1 0 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0 1 0 1 1 1 1 0 1 0 1 0 1 0 1 0 0 0 +0 0 1 +0 1 1 1 0 1 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 1 1 1 0 1 0 0 1 1 1 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 1 0 0 0 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 0 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 1 1 1 0 1 0 0 1 0 1 1 1 1 1 1 0 0 0 1 1 0 0 +0 0 1 +0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0 1 1 0 1 1 1 1 0 0 1 0 1 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 +0 0 1 +0 0 0 1 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 1 1 1 0 0 1 0 0 0 1 0 1 0 1 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 +0 0 1 +1 0 0 0 0 0 0 1 0 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 1 1 1 0 0 0 0 0 1 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0 1 0 0 0 1 1 0 1 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 0 1 0 1 0 1 0 1 +0 0 1 +0 1 0 1 1 1 0 0 0 0 1 1 0 1 0 1 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 1 0 1 1 0 1 1 0 1 0 1 0 1 0 0 0 1 1 1 1 1 0 1 1 0 0 0 1 1 0 1 0 1 0 1 1 0 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 0 1 1 1 0 0 1 1 0 1 0 1 0 0 0 0 1 1 1 +0 0 1 +0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 1 0 0 1 0 1 1 1 0 1 0 0 1 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 1 1 1 1 1 1 1 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 1 1 0 1 1 0 0 1 1 0 1 1 1 1 0 1 0 0 1 0 1 1 1 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 +1 0 0 +0 0 0 1 1 1 0 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0 1 0 1 1 1 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 0 +0 1 0 +1 0 1 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 1 0 1 1 1 0 0 0 0 0 0 1 1 1 0 1 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 0 1 0 1 0 1 1 1 0 0 1 1 1 0 1 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 1 0 0 1 1 0 0 1 1 1 0 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 +0 0 1 +0 1 1 1 1 0 1 1 1 1 0 1 1 1 0 1 1 0 1 1 0 1 0 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 0 0 1 1 1 0 1 1 1 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 1 1 1 1 1 1 0 0 0 1 +0 0 1 +0 1 0 1 1 0 0 0 1 1 1 0 0 0 0 1 0 0 1 0 1 1 1 0 1 0 0 1 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 +1 0 0 +0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 0 0 1 1 0 0 1 1 0 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 1 0 1 0 1 0 1 0 0 1 1 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 +1 0 0 +0 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0 0 1 0 1 0 1 0 1 0 1 1 0 0 0 1 1 1 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 1 1 0 0 0 1 1 1 +0 0 1 +1 1 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 1 0 1 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 0 0 0 1 0 0 +0 1 0 +0 0 1 0 1 0 0 1 1 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 0 0 1 0 0 1 1 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 +0 0 1 +0 0 0 1 0 0 1 0 0 0 1 1 0 0 1 1 1 1 1 1 0 1 0 0 1 1 0 0 0 0 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 0 1 0 0 1 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 1 0 0 1 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0 0 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 1 1 1 1 1 0 0 +0 0 1 +1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 0 0 1 1 1 0 0 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 1 0 1 1 0 0 1 1 0 1 0 1 0 1 0 0 0 1 0 1 1 1 1 0 0 0 1 1 1 0 0 1 1 1 1 1 1 1 1 0 1 0 1 1 1 0 0 1 0 0 0 0 0 1 0 1 0 0 1 1 1 0 1 1 0 0 0 1 0 0 +0 0 1 +0 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 1 1 0 0 0 1 0 0 1 1 0 0 1 0 1 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 1 0 0 1 1 1 1 0 0 0 0 1 0 1 1 1 1 1 1 0 1 0 0 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 0 1 0 0 0 0 1 0 1 1 1 1 1 0 0 0 0 0 1 1 0 0 1 0 1 +0 0 1 +1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 1 0 1 1 1 0 0 0 0 0 0 0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 1 0 1 1 1 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 1 0 0 1 1 1 0 0 1 1 0 +0 1 0 +0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 1 1 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 1 0 1 1 1 0 0 1 0 0 0 0 0 0 1 1 1 0 1 1 0 0 0 0 0 1 1 0 1 1 1 0 1 1 0 0 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 1 0 1 +0 0 1 +1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 0 1 0 1 1 0 0 0 +0 1 0 +1 1 1 0 1 0 0 1 1 0 0 1 0 0 1 1 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 1 1 0 0 1 0 0 1 1 0 0 1 0 0 0 1 0 1 0 1 0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 1 1 1 0 0 0 0 0 1 0 1 0 +0 1 0 +1 1 0 1 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 0 1 0 1 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 1 0 0 1 0 0 0 0 +0 0 1 +1 0 1 1 0 1 0 0 1 1 1 0 1 1 1 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 1 0 0 1 1 1 0 0 1 0 0 1 1 1 1 0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 1 1 0 0 0 0 1 1 1 0 1 1 0 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 0 0 0 0 0 1 0 1 +0 0 1 +1 1 1 1 0 0 0 1 1 1 1 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 0 0 0 1 1 0 0 0 0 1 0 1 0 0 0 1 1 0 1 1 1 1 0 1 0 0 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 1 1 0 1 0 1 1 0 0 1 1 0 0 1 0 1 +0 1 0 +1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 1 1 1 1 1 1 0 1 0 0 1 0 1 0 1 1 1 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 1 1 0 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 1 1 0 1 0 0 1 0 1 1 1 1 1 +0 0 1 +1 0 0 0 0 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 0 1 0 0 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 0 1 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 1 0 0 0 0 +0 0 1 +0 0 1 0 1 1 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 0 +1 0 0 +1 1 1 0 1 0 1 0 1 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 0 1 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 0 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 0 0 0 1 1 0 0 1 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 1 0 +0 0 1 +0 0 0 0 0 1 1 0 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 0 0 0 1 1 1 1 0 0 1 0 1 0 1 1 1 0 1 0 0 1 0 +0 1 0 +1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 0 1 0 1 1 1 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 0 1 1 0 0 1 1 0 0 1 0 1 0 0 1 1 1 1 1 1 0 +0 1 0 +1 1 1 1 1 1 0 0 0 0 1 1 1 0 1 1 1 1 1 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 0 0 1 1 0 1 1 0 1 0 1 1 1 0 0 1 1 1 0 0 0 1 1 1 1 0 1 0 1 1 0 1 0 1 0 0 0 0 1 0 1 0 1 0 1 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 1 1 0 1 1 1 0 0 +0 1 0 +0 1 1 1 1 1 1 1 1 1 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 +0 1 0 +1 1 1 0 1 0 1 0 0 1 0 0 0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 0 1 1 1 1 0 1 1 1 0 0 0 1 1 0 1 0 0 1 1 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 1 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 1 1 1 +0 0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1 0 0 1 1 1 0 0 0 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 +0 0 1 +1 1 1 0 0 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 0 0 0 1 1 1 1 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 1 1 0 0 0 1 0 1 1 1 0 1 0 1 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 0 0 0 1 1 0 1 1 0 0 1 0 1 1 1 1 0 0 1 0 1 0 1 0 0 0 0 0 0 1 1 1 1 +0 0 1 +1 0 1 1 1 0 1 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 1 0 0 0 1 1 0 +0 1 0 +0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 1 0 0 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 0 0 1 1 1 1 0 1 0 1 1 0 1 0 1 0 1 1 1 0 1 0 0 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 1 0 1 1 1 1 1 0 1 0 0 0 0 1 1 1 0 0 1 1 1 1 +1 0 0 +1 0 0 0 1 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 0 1 1 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 0 0 1 1 0 1 0 0 1 +0 1 0 +0 0 1 0 0 0 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 1 1 0 0 1 0 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 1 1 0 0 1 0 0 1 1 0 1 0 1 0 1 1 0 0 0 0 1 1 1 1 0 0 1 0 0 1 0 1 1 1 1 1 0 0 0 0 0 0 1 1 1 0 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 0 1 0 1 0 1 1 +0 0 1 +0 1 0 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 0 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 1 1 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 0 0 1 1 0 1 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 1 0 0 1 1 0 1 0 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 0 +1 0 0 +0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 0 1 0 0 1 1 0 1 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 1 1 0 0 1 0 1 +0 0 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 0 1 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 0 1 0 0 1 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 1 0 1 0 0 0 0 1 1 1 1 0 0 1 1 1 0 0 1 1 0 0 1 1 1 0 0 0 1 1 0 0 0 1 +0 0 1 +1 1 0 1 1 1 1 1 0 1 0 0 1 1 1 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 1 1 0 0 1 1 1 1 1 1 1 0 1 0 0 0 0 1 1 0 1 1 1 0 1 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 0 1 1 1 1 +0 0 1 +1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 0 1 1 0 0 1 0 1 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 1 0 0 0 1 0 1 1 0 1 0 +0 0 1 +0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 1 1 1 1 1 0 1 1 1 0 0 1 1 1 0 0 0 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 +0 1 0 +0 1 0 0 0 1 1 0 1 1 1 0 0 1 0 0 1 1 0 1 1 1 1 1 1 1 0 0 0 1 0 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 0 1 0 1 1 0 0 1 1 1 0 0 0 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 1 1 0 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 +1 0 0 +1 0 0 1 0 0 1 1 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 1 1 0 1 0 1 1 0 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 1 0 1 0 0 1 0 0 1 1 1 1 +0 0 1 +1 0 1 0 0 0 0 1 1 0 1 0 0 1 0 1 1 0 1 1 1 0 0 0 1 1 1 0 1 1 1 0 1 0 0 1 0 1 1 1 0 1 0 1 0 0 0 1 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 0 0 1 1 0 0 0 1 1 1 1 0 1 1 1 1 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 0 0 1 0 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 0 1 0 +0 0 1 +0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 1 1 0 1 0 0 1 0 0 1 1 1 0 1 1 1 0 1 1 1 0 0 1 1 1 0 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 0 0 0 1 1 1 1 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 +0 0 1 +0 0 1 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 1 0 1 0 1 0 0 1 0 0 0 1 1 1 0 0 1 1 1 1 0 1 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 1 0 1 0 0 1 1 1 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 1 1 1 0 +1 0 0 +1 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 1 0 1 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1 1 1 0 1 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0 +0 1 0 +0 0 0 0 1 1 1 0 0 1 0 0 0 1 0 0 1 1 0 1 0 1 1 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 1 1 0 0 1 0 1 1 0 0 0 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 1 1 1 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 1 1 0 1 0 1 1 0 1 +1 0 0 +0 0 1 1 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0 1 1 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 0 0 1 0 1 1 1 0 1 1 1 0 1 0 1 1 0 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 0 0 0 0 1 0 1 1 0 0 1 0 1 1 1 1 0 1 0 1 1 0 1 1 0 0 1 1 0 1 0 0 1 0 0 0 0 1 0 +0 0 1 +0 1 1 0 1 1 1 1 0 1 1 0 1 1 1 0 1 0 1 0 1 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 1 0 0 0 0 1 0 0 0 1 1 1 1 0 1 1 0 1 1 1 0 1 0 0 0 1 1 1 0 1 1 1 1 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 1 1 1 0 0 0 0 1 0 0 0 1 0 1 +0 0 1 +0 1 0 0 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 0 0 1 0 1 0 0 0 1 0 1 1 0 1 0 1 0 0 1 0 1 0 0 0 0 1 1 1 1 1 1 0 0 +0 0 1 +0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 0 1 0 1 0 0 1 0 0 0 1 1 1 0 1 1 0 0 1 1 1 1 0 0 1 1 0 1 1 1 1 1 0 1 0 0 1 1 0 0 0 0 0 1 0 0 1 0 0 1 1 0 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 +0 0 1 +0 1 1 0 0 0 1 0 0 1 1 1 1 1 1 0 1 1 1 1 0 1 0 0 0 0 0 0 1 1 1 1 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 1 1 0 0 0 0 0 1 +0 0 1 +0 0 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 1 1 0 1 1 1 1 1 0 0 0 1 1 0 1 1 1 0 1 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 0 1 0 1 1 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 1 0 0 1 1 0 1 1 0 0 0 0 0 1 0 1 0 0 0 1 1 1 1 0 1 1 0 0 0 1 0 1 1 1 0 1 +0 0 1 +0 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 0 0 1 0 0 0 1 1 1 0 1 1 1 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 +0 1 0 +0 0 1 1 0 0 1 0 0 0 1 1 1 0 0 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 0 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 1 1 1 1 1 0 1 1 0 0 0 1 1 0 0 0 1 1 +0 1 0 +1 0 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 1 1 0 0 1 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 +0 0 1 +0 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 0 1 1 1 0 1 0 1 1 0 0 0 1 1 0 1 1 1 1 1 1 1 0 0 0 0 1 0 1 1 0 0 0 0 1 0 1 1 0 1 1 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 0 0 1 0 1 1 1 1 1 0 1 0 0 1 1 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 0 +0 0 1 +1 0 1 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 1 1 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 0 +1 0 0 +1 1 0 1 0 1 1 1 1 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 +0 1 0 +1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0 1 0 1 0 1 1 1 1 1 1 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 0 1 1 1 1 0 1 0 1 1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 0 1 +0 0 1 +0 0 0 1 1 0 0 1 0 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 1 0 1 0 1 1 0 1 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 1 0 0 0 0 0 1 0 0 0 1 1 0 +1 0 0 +0 0 0 0 0 1 0 1 0 1 1 1 1 0 1 0 1 1 1 0 0 1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 1 1 1 0 1 0 1 1 0 1 0 0 1 1 1 1 1 0 1 0 1 0 1 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 1 0 1 0 1 1 1 0 0 0 1 0 0 1 0 1 1 0 1 0 0 +0 0 1 +0 1 0 1 1 1 1 0 1 1 0 1 0 0 0 1 1 0 0 1 1 0 0 0 1 1 0 1 0 1 0 1 1 1 0 1 1 0 1 1 0 1 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 0 1 1 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 1 0 1 +0 0 1 +1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 1 0 1 1 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 +0 1 0 +0 1 1 0 1 0 1 0 1 0 1 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 0 0 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 1 0 0 0 0 1 1 0 1 1 1 0 1 0 0 1 +1 0 0 +0 0 1 1 1 0 1 0 0 1 1 0 1 0 1 1 1 0 1 0 1 0 0 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 0 0 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 0 1 0 1 0 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 1 1 1 0 1 0 0 0 1 1 1 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 +0 0 1 +0 0 0 1 1 0 1 1 1 1 0 0 0 1 1 1 0 1 1 0 1 0 0 0 1 1 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 0 0 1 1 0 1 1 0 1 1 1 1 0 1 0 0 1 0 0 1 1 1 1 1 1 1 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 1 0 0 1 1 +1 0 0 +1 0 1 0 0 0 1 0 0 0 1 1 1 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 1 1 0 1 0 0 1 1 1 0 0 1 0 1 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 0 1 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 1 1 0 1 0 +0 0 1 +0 1 0 1 0 1 1 1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 1 1 1 1 0 1 1 1 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 1 1 1 1 0 0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 1 1 1 0 0 1 1 1 0 0 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 0 1 0 1 0 1 1 0 0 0 +0 0 1 +1 1 1 0 0 1 1 0 1 0 1 0 0 0 1 1 1 1 0 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 1 0 0 1 1 1 1 0 0 1 1 0 1 0 1 1 1 1 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 0 1 1 1 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 1 0 0 0 1 1 +0 0 1 +1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 1 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 1 0 0 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 +0 0 1 +0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 1 0 0 1 1 0 1 1 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 1 +0 1 0 +1 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 0 0 1 1 0 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 1 1 1 0 0 0 1 1 1 0 0 1 0 1 0 0 1 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 1 0 0 0 0 0 0 +0 0 1 +1 0 1 0 0 0 0 1 1 0 1 1 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 0 1 0 1 1 0 1 0 1 1 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 1 1 0 1 1 0 1 0 0 1 1 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 1 1 1 1 1 1 1 0 0 +0 0 1 +0 0 1 1 1 0 1 1 0 1 0 1 1 0 0 1 0 0 1 1 1 1 0 0 0 0 1 1 0 1 0 0 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1 1 1 1 +0 0 1 +1 1 1 1 1 1 1 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1 0 0 1 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 0 1 0 0 0 0 0 1 1 1 0 1 1 0 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 1 1 0 0 1 0 1 0 0 0 0 0 1 1 0 1 1 1 1 0 0 0 1 0 1 +0 1 0 +1 1 1 1 1 1 0 0 0 1 1 0 0 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 1 1 0 1 1 1 1 1 1 0 1 0 +0 0 1 +1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 1 1 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 1 1 0 1 0 0 0 1 0 0 1 0 1 1 1 1 1 0 1 0 1 1 1 0 +0 1 0 +1 1 1 1 1 1 0 1 0 0 1 1 0 1 0 1 1 1 1 1 1 1 0 1 0 1 0 1 1 0 0 1 0 0 0 0 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 1 1 0 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 1 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 1 0 0 1 +0 1 0 +0 0 1 1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 1 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 0 0 0 1 1 1 0 1 1 1 1 0 0 0 1 0 1 1 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 1 0 0 1 0 0 1 0 0 1 0 0 1 1 1 1 0 0 0 1 1 0 +0 0 1 +0 0 1 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 1 0 1 0 1 0 0 1 0 0 0 1 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 1 1 +1 0 0 +1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 +0 1 0 +0 0 0 0 1 0 1 1 1 0 0 1 1 0 0 0 0 0 1 0 0 1 0 1 0 1 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 1 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 +0 0 1 +0 0 0 0 0 1 0 1 1 0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 0 1 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 +1 0 0 +1 1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 1 0 1 0 1 0 0 0 0 1 0 0 1 1 1 0 1 1 1 0 0 1 1 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 +0 0 1 +0 1 1 1 1 0 1 0 0 1 1 0 1 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 1 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 1 0 0 1 1 0 0 1 1 0 0 0 0 1 0 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 0 0 0 1 0 +0 0 1 +0 0 0 1 0 0 0 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 1 1 1 0 1 1 0 0 0 0 0 1 0 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 1 0 0 0 0 1 1 0 0 0 1 0 0 1 1 0 1 0 1 1 0 1 1 0 1 1 1 0 0 1 0 1 1 0 0 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 0 0 1 1 0 1 0 0 0 0 1 1 +0 0 1 +0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 1 1 1 1 0 1 0 1 1 0 0 0 0 0 1 1 0 0 0 1 1 1 1 0 1 1 0 1 1 0 0 0 0 0 1 1 1 1 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 1 0 1 0 0 0 1 1 0 1 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 +0 0 1 +0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 0 1 1 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 1 1 1 1 0 0 1 0 1 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 +1 0 0 +1 0 1 1 0 0 0 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 0 1 0 1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 1 0 1 1 0 0 0 0 1 0 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1 0 0 1 1 1 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 1 1 1 1 1 0 0 1 0 1 0 0 +0 0 1 +0 0 0 0 1 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 1 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 1 1 1 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 1 1 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 1 +0 0 1 +0 0 1 1 1 0 0 1 1 1 0 0 0 1 0 1 1 1 0 1 0 0 1 1 1 0 1 0 1 0 0 0 0 1 0 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 0 1 1 1 1 0 1 1 1 0 1 0 0 0 1 1 1 0 0 1 0 1 1 0 0 0 0 0 +0 0 1 +1 0 0 1 1 1 0 0 1 1 0 1 0 0 1 1 1 0 1 1 0 0 1 1 0 1 0 1 1 1 0 1 1 1 0 0 1 1 1 1 0 1 0 1 1 0 1 0 1 0 0 0 1 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1 0 1 1 1 0 0 1 0 0 1 1 1 1 1 1 1 0 1 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 1 1 1 1 +0 0 1 +0 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 0 1 1 1 0 1 1 1 1 0 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 +0 0 1 +1 1 0 1 0 0 1 1 1 1 1 0 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 1 1 1 1 0 0 1 1 1 0 0 1 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 0 1 1 1 0 1 0 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 0 1 0 1 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 1 0 0 1 1 0 1 1 0 1 1 0 0 0 1 1 1 +0 0 1 +1 0 1 0 1 0 1 0 0 0 0 1 1 0 1 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 0 1 1 0 0 1 0 0 +0 1 0 +1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 1 1 1 0 1 0 0 0 1 0 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 0 1 0 0 1 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 0 1 0 1 0 +1 0 0 +0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 1 1 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 1 0 0 1 1 1 0 0 1 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 0 1 1 0 0 1 0 1 0 0 1 1 0 0 0 0 0 1 +0 1 0 +0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 1 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 1 0 0 0 1 0 1 0 0 1 1 1 1 0 1 0 1 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 1 1 1 1 1 0 1 0 0 0 1 0 1 0 1 +0 1 0 +0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 0 0 1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0 0 0 1 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 1 0 0 1 1 0 0 1 0 0 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 +1 0 0 +1 1 0 1 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 1 1 1 1 1 1 0 0 1 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 1 0 1 1 0 1 0 0 0 0 1 0 1 1 1 0 0 1 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 1 0 1 0 0 1 0 1 +0 0 1 +0 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 1 0 0 0 1 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 1 0 0 1 0 0 0 0 0 0 +1 0 0 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 1 0 1 0 1 0 0 0 1 1 0 1 0 1 0 1 1 0 0 1 1 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 0 1 1 +0 0 1 +1 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 0 0 0 1 0 1 0 1 0 +1 0 0 +1 1 1 0 1 1 1 1 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 1 0 0 1 0 1 0 0 1 1 0 0 1 0 0 0 1 0 1 1 0 0 1 1 1 0 0 0 1 0 1 1 0 1 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 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 1 0 1 0 1 0 1 0 1 1 0 0 0 1 0 0 1 0 1 1 1 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 0 1 1 0 1 0 0 1 1 0 0 0 1 1 0 0 1 0 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 0 0 0 1 0 0 0 0 1 0 1 1 0 0 0 0 0 0 +0 0 1 +0 0 0 0 1 1 1 1 1 1 1 0 0 1 1 0 1 0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 1 1 1 0 1 1 1 0 0 0 0 1 1 0 1 0 1 1 0 1 0 0 1 0 1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 +1 0 0 +0 0 1 1 1 0 1 0 1 1 1 0 1 1 1 0 0 1 0 1 1 1 1 0 1 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 0 0 0 0 1 0 0 0 1 0 0 1 1 0 1 0 1 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 +0 1 0 +1 1 1 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 1 1 0 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 1 1 1 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 0 1 0 1 1 1 1 1 1 0 1 0 1 1 0 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 +0 0 1 +0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 0 1 1 0 1 1 0 1 0 1 0 1 0 0 1 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 0 0 1 1 1 1 1 0 0 1 1 0 1 0 1 0 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 1 1 1 1 +0 1 0 +1 0 0 0 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 0 0 1 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 1 1 1 1 1 0 +0 1 0 +0 1 0 0 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 1 0 1 1 1 1 0 0 1 1 1 0 0 1 0 1 1 1 0 0 0 0 0 1 1 0 0 1 0 0 0 1 1 0 0 1 0 1 1 1 0 0 0 1 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 0 1 1 1 0 +0 0 1 +0 1 0 1 1 1 0 1 0 1 0 0 0 0 1 1 1 1 0 0 1 1 1 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 1 1 1 1 0 1 1 0 1 0 0 1 0 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 1 0 1 0 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 1 0 1 0 0 1 +0 1 0 +0 0 1 1 1 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 1 1 1 1 1 1 1 0 1 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 0 0 1 1 0 1 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 0 1 +0 0 1 +1 1 0 1 0 0 0 0 1 1 0 1 0 1 0 1 0 0 0 1 0 1 0 0 0 1 1 1 1 0 1 1 1 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 0 0 1 0 1 0 0 0 0 1 1 0 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 1 0 0 0 1 0 0 0 1 1 1 1 0 1 0 1 0 0 1 1 1 0 1 0 1 0 0 1 0 +0 1 0 +1 1 1 1 0 1 1 1 1 1 0 1 0 1 1 0 0 1 1 1 0 1 0 0 0 1 1 1 1 1 1 0 1 0 0 0 0 1 0 1 1 0 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 1 1 1 1 0 0 1 1 1 0 1 0 1 0 0 1 1 1 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 1 0 1 0 0 1 +0 0 1 +0 1 1 0 1 1 1 0 1 1 1 0 0 1 0 0 1 1 1 1 0 0 0 1 0 0 0 0 1 0 0 1 0 1 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 1 0 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 0 0 1 1 0 1 0 1 1 0 0 0 0 +1 0 0 +1 0 0 1 0 1 0 1 0 1 1 1 1 0 0 0 0 1 1 0 1 1 1 1 1 0 0 1 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 0 1 0 1 0 0 0 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 0 0 0 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0 1 0 1 1 1 0 1 0 0 1 1 1 0 1 1 1 0 0 1 1 1 0 0 1 0 1 0 0 0 0 0 1 1 0 +1 0 0 +0 1 1 0 1 1 0 1 1 1 1 0 1 1 1 1 0 0 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 1 0 0 0 0 1 1 +0 0 1 +0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 1 1 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 1 0 0 1 1 1 0 0 1 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 0 1 1 0 0 1 0 1 0 0 1 1 0 0 0 0 0 1 +0 1 0 +0 0 0 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 0 1 0 0 1 0 1 0 1 1 1 1 0 1 1 1 1 1 0 1 0 0 1 1 0 0 1 0 1 0 0 1 1 0 0 0 1 1 0 0 1 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 1 0 0 0 1 0 0 1 1 0 0 1 1 1 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0 0 1 1 0 +0 0 1 +0 0 0 0 0 1 1 1 0 0 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 1 0 0 0 1 0 1 0 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 0 0 0 1 1 1 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 1 1 1 0 1 0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 0 1 1 1 +0 0 1 +1 1 0 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 1 0 0 0 0 0 +0 0 1 +1 1 1 1 1 0 0 1 1 1 0 1 0 1 0 0 0 1 1 1 1 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 1 0 0 0 1 1 0 0 1 0 1 1 1 1 0 0 1 0 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 1 0 0 1 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1 1 0 +0 1 0 +0 1 1 0 0 1 1 1 0 1 1 0 0 1 1 0 1 0 0 1 1 1 1 0 0 1 0 0 0 1 1 1 1 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0 0 0 0 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 1 1 1 0 0 1 0 1 0 0 1 1 1 1 0 1 1 1 1 0 1 0 0 1 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 1 0 1 0 +0 0 1 +0 0 0 1 0 1 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 0 0 1 0 0 0 1 1 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 1 1 0 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 +1 0 0 +1 1 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 1 0 0 0 1 0 1 0 1 1 1 0 0 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 1 1 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 1 0 0 1 1 1 0 0 0 0 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 +1 0 0 +0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 1 1 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 1 0 0 1 1 1 0 0 1 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 0 1 1 0 0 1 0 1 0 0 1 1 0 0 0 0 0 1 +0 1 0 +0 1 0 0 0 0 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 1 0 1 1 0 0 1 1 1 1 0 1 0 0 0 0 0 1 0 1 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 1 1 1 1 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 0 1 0 0 0 1 1 0 1 1 1 1 1 1 1 1 +0 0 1 +0 1 1 0 1 1 1 0 0 0 1 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 1 0 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 1 0 1 0 0 0 0 1 1 0 1 0 1 1 0 0 1 1 1 0 +0 1 0 +0 1 1 0 1 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 0 0 0 1 1 0 0 1 1 0 1 0 1 0 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 1 0 1 0 1 0 0 1 1 1 0 0 1 1 1 1 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 +1 0 0 +1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 0 1 1 1 1 1 1 1 0 1 0 1 0 0 1 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 0 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 +0 0 1 +1 0 0 1 1 0 1 0 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 1 0 0 1 1 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 1 1 0 1 0 0 1 1 1 0 0 0 0 0 0 1 0 1 1 1 1 0 0 0 1 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 +0 0 1 +1 1 1 1 1 1 1 1 1 0 0 0 1 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 1 0 0 1 0 0 0 0 0 1 0 1 1 1 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 +0 0 1 +1 1 0 0 1 1 0 1 1 1 1 1 1 0 1 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 1 0 1 0 0 0 1 0 1 0 0 0 0 1 0 0 0 1 1 1 0 1 0 1 1 0 1 1 1 0 0 0 1 0 1 0 1 1 1 1 0 +0 1 0 +0 0 0 1 0 1 0 1 1 1 1 1 1 0 1 1 1 0 1 0 0 1 0 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 1 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 0 0 1 1 0 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 +1 0 0 +0 1 0 1 1 0 0 1 0 1 1 1 1 0 0 0 1 1 1 1 0 1 0 0 0 1 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 0 1 1 1 0 0 0 1 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 +0 0 1 +0 0 0 1 0 0 1 0 0 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 0 1 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 0 1 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 +1 0 0 +1 0 1 0 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 1 1 1 0 1 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 0 0 1 1 1 0 1 1 1 1 1 0 1 0 0 1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 0 0 1 0 0 0 1 1 1 1 1 1 1 0 1 0 1 0 0 1 1 +0 0 1 +1 1 1 0 1 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 1 0 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 0 1 0 1 0 1 1 1 0 1 0 0 1 1 1 0 1 1 1 0 1 0 0 1 0 0 0 1 0 1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 +0 1 0 +1 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 1 1 1 0 0 0 1 0 1 0 1 0 1 0 0 0 1 0 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 1 0 0 0 1 0 1 0 0 1 +0 0 1 +0 0 1 1 1 0 0 1 1 0 1 0 0 1 1 1 1 1 0 0 0 0 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 0 1 0 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 0 0 0 1 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 0 0 1 1 1 +1 0 0 +0 1 0 1 0 1 0 0 1 0 0 0 1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1 0 0 0 1 0 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 1 1 1 1 1 1 0 1 1 1 1 1 0 0 1 0 1 1 0 0 1 +0 1 0 +0 1 1 0 0 1 0 0 0 1 1 0 0 0 0 1 0 1 0 1 1 1 1 1 0 0 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1 0 0 1 1 1 1 1 1 0 1 1 0 0 0 1 0 0 1 1 1 0 0 0 1 1 1 0 1 1 1 1 0 0 0 0 0 1 0 1 1 0 1 0 1 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 +0 1 0 +1 1 0 1 1 1 0 0 1 1 1 0 0 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 1 0 1 0 0 1 0 0 0 1 0 1 0 1 0 1 0 1 0 0 1 1 1 0 0 1 1 1 1 1 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 0 1 1 1 0 0 0 1 1 +0 1 0 +0 1 1 1 0 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 0 1 1 0 1 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1 0 0 0 1 0 0 1 0 1 0 1 1 1 0 0 0 0 1 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0 0 1 0 0 1 0 1 0 0 0 1 0 +0 0 1 +0 1 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 1 0 1 1 1 1 1 1 0 1 0 1 1 0 0 0 1 0 0 1 1 1 1 1 0 0 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 1 1 0 1 1 0 0 0 1 1 1 0 1 0 1 0 0 1 1 1 1 1 0 1 1 0 +0 0 1 +1 0 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 0 0 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 1 1 0 1 0 1 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 0 0 1 0 1 0 1 1 1 1 0 1 0 1 1 0 0 1 0 +1 0 0 +1 0 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 1 1 0 0 0 1 1 1 1 1 0 1 0 0 1 0 1 1 1 0 0 0 0 0 1 0 0 1 0 0 1 0 1 1 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 1 1 0 1 0 1 0 0 0 0 1 0 0 0 +0 1 0 +0 0 1 1 1 1 0 0 1 0 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 0 1 1 1 0 1 0 0 1 0 1 1 0 1 0 0 0 1 0 0 0 0 1 1 0 1 1 1 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 0 0 1 0 +0 0 1 +1 1 1 1 0 0 0 1 1 0 0 0 0 1 0 0 0 1 1 1 0 0 1 1 1 0 1 0 0 1 0 0 1 1 0 0 1 1 1 1 1 1 0 1 0 1 0 0 1 1 1 1 0 0 1 1 1 1 0 1 0 1 0 1 1 0 0 1 1 1 0 0 0 1 1 0 1 0 1 1 1 1 0 0 1 1 1 0 0 1 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1 1 +0 0 1 +0 0 1 1 0 1 0 1 1 0 1 1 1 1 1 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 0 1 0 1 1 1 1 1 1 0 0 1 0 1 1 1 0 1 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 0 1 0 1 1 1 0 0 0 0 1 1 +0 0 1 +0 1 1 0 1 0 1 1 1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 0 1 0 1 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 1 1 1 1 1 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0 1 1 1 +0 0 1 +0 1 1 0 1 0 1 0 1 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 0 0 0 1 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 1 0 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 0 1 0 1 0 1 1 0 1 0 1 0 1 1 +0 0 1 +1 0 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 0 0 1 0 1 1 1 1 1 1 1 1 0 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 0 0 1 1 0 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 0 1 0 0 0 +1 0 0 +0 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 0 0 0 1 0 0 1 1 0 0 1 1 1 0 1 0 0 1 1 0 0 1 0 0 0 1 1 0 0 1 1 0 0 0 1 1 1 0 1 1 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 0 0 0 1 1 +0 0 1 +1 0 1 0 1 1 1 0 0 1 1 1 0 1 1 0 1 0 0 1 0 0 1 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 1 1 0 1 0 0 1 1 1 0 1 1 1 1 1 1 1 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 1 0 1 0 0 1 1 1 1 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 1 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 +0 0 1 +0 0 0 0 1 0 1 1 1 0 1 0 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 0 0 1 0 0 1 0 0 1 1 1 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 1 1 1 1 0 1 0 0 1 0 1 0 0 0 1 0 +0 0 1 +1 1 1 1 1 0 1 0 1 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 1 0 0 1 1 1 1 1 0 0 1 0 1 0 0 1 1 0 0 0 0 1 1 1 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 1 1 0 +0 0 1 +1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 0 1 1 1 0 1 0 0 1 1 0 0 1 1 1 0 1 0 1 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 1 1 1 0 1 0 0 1 0 1 1 1 1 0 1 0 1 0 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 +0 0 1 +0 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 0 0 1 0 1 1 1 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 1 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 1 0 1 0 0 0 +0 0 1 +1 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 1 1 0 0 0 0 1 0 1 0 1 1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1 1 0 1 1 1 1 0 0 1 1 0 1 0 0 0 1 0 1 0 1 0 0 0 0 1 0 1 1 0 1 0 0 1 1 1 1 0 0 1 0 0 +0 0 1 +1 0 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 0 1 1 1 1 0 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 1 0 1 1 1 1 1 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 1 +0 1 0 +0 1 0 1 1 1 1 1 0 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0 0 1 1 0 1 1 0 1 1 1 1 0 0 1 1 1 0 1 1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 0 1 1 1 1 0 1 1 0 1 1 0 1 1 0 0 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 1 1 0 1 1 1 0 0 1 1 1 1 0 0 +0 0 1 +1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 1 0 0 0 1 1 1 0 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 0 1 0 1 0 1 1 0 1 0 0 0 0 1 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 1 0 1 0 0 1 1 1 0 1 1 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 1 1 1 0 1 0 1 1 1 1 1 +0 1 0 +1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 0 0 1 1 0 1 0 0 0 1 1 0 0 1 0 1 1 0 1 1 1 0 0 1 1 1 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 1 1 0 0 0 0 1 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 0 0 1 1 1 1 0 1 1 1 1 1 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1 1 1 +1 0 0 +0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 +0 0 1 +0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 1 0 0 0 1 0 1 0 0 1 1 0 1 0 1 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 0 0 1 0 0 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 +0 0 1 +0 0 1 1 0 0 0 1 0 0 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 1 0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 1 1 1 1 0 1 1 0 0 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 1 +0 1 0 +1 1 1 0 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 1 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 0 0 1 0 1 1 0 1 1 1 1 0 0 0 0 1 0 1 1 1 1 0 1 1 1 0 0 1 0 1 0 0 0 1 0 0 0 1 0 1 1 1 0 1 0 0 0 1 1 1 0 0 1 0 1 1 0 1 0 0 0 +0 0 1 +0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 0 1 0 0 1 0 1 0 0 0 1 0 1 1 0 0 1 1 1 0 0 0 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 0 1 +0 1 0 +1 1 1 1 0 0 0 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 1 0 1 1 0 0 +0 0 1 +0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 0 1 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 1 +0 1 0 +1 1 1 0 1 1 0 0 1 1 0 1 0 1 1 1 0 1 1 0 0 0 1 0 1 0 0 1 1 0 1 1 0 1 0 1 0 0 0 1 1 1 1 0 1 1 0 0 0 0 1 1 0 0 0 1 0 0 1 1 1 0 0 0 1 0 1 0 0 1 1 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 1 1 0 0 1 0 1 1 1 1 0 1 1 0 0 0 1 +0 0 1 +1 1 0 0 1 1 1 0 1 0 1 0 0 0 0 1 1 1 0 1 1 0 1 0 0 1 1 0 1 1 1 0 1 1 0 1 1 1 0 0 0 0 1 1 1 0 1 0 1 1 0 1 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 1 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 1 1 0 1 1 1 1 0 0 0 0 1 1 0 0 +0 0 1 +1 1 1 0 0 1 0 1 1 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 1 1 1 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 1 1 0 0 0 1 1 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 0 1 1 0 1 0 1 0 0 0 0 1 1 0 1 0 +1 0 0 +1 1 1 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 1 1 0 1 1 0 0 0 1 1 0 1 0 0 1 0 1 0 1 1 1 0 0 0 1 1 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 1 1 1 0 1 1 1 0 0 1 1 1 0 1 +0 1 0 +0 1 1 0 1 1 1 0 1 1 1 1 0 0 1 0 1 1 1 1 1 0 1 1 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 1 0 0 1 0 0 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 1 0 1 0 +1 0 0 +0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 1 1 0 0 1 1 0 0 0 0 0 1 1 1 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 0 +0 0 1 +0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 0 1 0 0 1 0 1 0 1 1 0 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 1 0 +0 0 1 +1 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1 0 1 0 0 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 1 0 0 0 1 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1 0 1 0 0 1 0 0 0 0 1 1 1 0 1 0 1 1 1 1 1 0 0 0 1 1 0 1 +0 0 1 +1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 0 1 0 1 1 0 1 1 0 0 1 0 1 0 0 1 1 1 0 0 0 0 1 1 1 1 0 1 1 0 0 0 0 0 1 0 0 0 0 1 1 0 1 1 0 0 1 0 0 1 0 1 0 0 1 1 1 0 0 0 0 +0 1 0 +1 1 0 1 0 0 0 1 1 1 0 0 1 0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 1 0 1 1 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 1 0 1 1 0 0 0 0 0 +1 0 0 +1 1 0 1 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 0 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 1 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 0 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 1 1 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 0 1 1 0 0 0 0 0 1 0 +0 0 1 +1 0 1 1 0 0 0 1 1 1 1 1 0 1 0 1 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 1 1 0 1 1 0 0 1 0 0 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 1 1 0 1 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 1 1 1 1 0 1 +0 1 0 +0 1 1 0 1 0 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 1 0 1 1 1 1 0 0 0 1 1 1 0 1 1 0 1 0 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 0 1 1 0 1 1 1 1 1 1 0 1 0 1 1 0 1 0 0 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 1 1 1 0 1 0 0 0 0 0 1 0 0 1 1 0 1 1 1 0 1 0 +0 1 0 +0 1 0 0 0 0 0 1 0 1 1 0 1 0 0 0 1 1 1 0 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 1 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 1 0 0 1 1 1 0 1 1 1 0 0 0 1 0 1 1 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 1 1 0 0 0 0 0 0 +0 0 1 +1 1 1 1 1 0 0 1 0 1 0 1 1 1 0 0 1 1 1 0 1 0 0 1 0 1 0 0 1 1 1 0 0 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 1 0 1 1 1 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0 0 1 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 +0 0 1 +0 1 0 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 0 0 1 1 0 0 0 1 0 1 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 0 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 1 0 0 0 1 0 1 1 1 0 1 0 1 1 0 1 0 0 1 1 0 1 1 +0 0 1 +1 1 0 0 1 1 0 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 0 0 0 1 0 0 1 0 0 1 1 0 1 1 0 1 0 0 0 0 1 0 1 0 1 1 1 0 0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 0 0 1 1 1 1 1 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 +1 0 0 +0 0 0 1 1 0 1 0 1 1 1 1 1 1 0 0 1 1 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 1 1 0 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 1 0 0 1 0 1 0 0 0 1 0 1 1 1 1 0 1 0 0 1 1 1 0 0 1 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 0 1 0 0 0 1 +0 0 1 +0 0 0 1 0 1 0 1 1 0 0 0 0 1 0 0 1 1 0 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 1 1 0 0 0 1 1 0 1 1 0 0 0 0 0 0 1 1 1 0 1 1 0 1 1 0 1 0 1 1 0 0 0 1 1 0 0 1 0 1 1 0 0 1 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 1 0 0 0 1 0 0 1 1 +0 0 1 +0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 1 1 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 0 0 1 1 0 1 1 1 1 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 0 0 1 1 0 1 1 0 0 1 1 0 0 1 1 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1 0 +0 0 1 +0 0 1 1 0 0 0 0 1 0 1 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 0 1 1 1 1 0 1 0 0 0 1 1 1 0 1 1 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 0 1 1 0 0 0 0 1 1 0 1 1 1 1 1 0 +1 0 0 +1 0 1 0 0 1 0 1 0 0 1 1 0 1 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 1 0 0 1 1 1 0 0 1 1 1 0 1 0 1 1 0 0 0 0 1 1 0 1 1 0 1 0 0 0 0 1 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 1 1 +0 1 0 +0 0 0 1 0 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 0 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 0 1 0 1 0 0 0 0 1 1 1 1 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 1 0 1 1 0 1 1 1 1 1 0 +0 0 1 +1 0 1 0 0 1 1 0 0 1 1 1 0 0 1 0 0 1 1 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 1 0 1 0 0 0 1 0 0 1 0 1 0 1 1 1 1 0 1 0 1 0 1 1 1 0 0 0 0 0 0 1 0 1 1 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 +0 0 1 +0 1 1 1 0 0 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 0 1 0 1 0 0 1 1 1 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 0 1 1 0 0 1 0 1 1 1 1 1 1 0 1 1 1 0 0 1 1 0 1 0 0 0 1 1 0 0 0 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 0 0 0 1 0 0 1 0 1 0 +0 0 1 +0 1 1 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 0 1 1 0 1 1 0 1 0 1 1 0 0 1 0 1 1 0 1 1 1 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 0 1 0 0 1 1 1 0 1 1 +0 0 1 +1 1 1 1 0 0 1 1 1 1 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 0 0 0 1 1 1 1 0 1 0 0 1 1 0 1 1 1 1 1 1 1 0 1 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 0 0 1 1 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 1 0 1 1 1 0 0 1 1 0 +0 1 0 +0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 0 0 1 1 1 1 0 0 0 1 0 1 1 0 0 0 0 1 1 0 1 0 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 1 1 0 1 1 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 0 1 1 0 0 1 0 1 0 1 +0 0 1 +1 0 1 1 0 0 1 1 1 1 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 0 0 1 1 1 0 1 0 1 1 0 0 0 0 0 0 1 1 1 1 0 1 0 0 1 1 1 1 0 0 0 0 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 0 0 1 1 1 1 0 0 0 1 1 +0 0 1 +0 0 0 0 1 1 1 0 0 1 0 1 0 0 0 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 1 1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 0 1 0 1 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 1 +0 1 0 +1 1 1 0 1 0 1 0 0 1 0 1 0 1 1 1 1 0 1 1 1 1 0 1 0 0 0 1 1 1 0 0 0 1 1 1 1 1 0 0 0 1 0 0 0 1 1 1 0 1 1 1 1 1 1 0 1 1 0 0 0 1 0 0 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 0 0 1 0 1 0 1 1 1 1 1 1 1 0 0 0 1 1 0 +0 0 1 +0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 0 1 1 0 0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 0 1 0 0 1 0 0 1 1 1 1 0 0 1 1 1 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 0 1 0 0 0 1 1 0 0 0 1 0 1 1 0 0 0 0 1 1 0 0 1 0 0 1 1 1 1 1 1 +0 0 1 +1 1 1 1 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 0 0 1 1 0 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 0 0 1 0 1 0 1 1 1 0 0 0 1 0 1 0 1 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 1 0 1 0 0 0 0 1 1 +0 0 1 +0 0 0 0 0 1 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 +0 0 1 +1 1 0 0 1 1 1 0 0 0 0 1 0 1 1 0 1 1 1 0 1 0 0 1 0 0 0 1 1 1 1 1 1 1 1 0 0 1 0 1 1 0 0 0 0 1 0 0 1 1 1 1 1 1 1 0 0 1 1 0 1 0 0 0 0 0 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 0 1 0 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 0 1 1 1 0 1 +0 0 1 +0 1 0 1 1 0 1 0 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 0 1 0 0 1 0 1 1 0 1 1 1 0 0 0 1 1 1 0 1 1 1 0 0 1 0 1 0 1 1 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 0 0 1 0 1 1 1 0 0 1 0 1 0 1 0 0 1 0 0 1 1 0 0 0 1 1 +1 0 0 +0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 0 1 0 1 0 0 0 0 1 0 1 1 1 1 1 1 1 1 0 1 1 0 0 1 1 0 0 0 1 0 1 1 1 0 1 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 0 1 0 0 1 1 0 1 0 0 1 1 1 1 0 0 1 0 1 1 0 1 0 0 1 +0 0 1 +1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 +1 0 0 +1 0 1 0 1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 1 1 1 1 1 1 1 0 0 0 1 0 1 1 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 1 1 +1 0 0 +1 1 0 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 1 1 0 0 1 1 0 1 1 1 0 0 0 1 1 1 0 1 1 0 1 0 0 1 1 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 0 0 0 1 1 0 0 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 1 1 0 0 0 0 1 0 1 0 1 0 0 0 1 +0 1 0 +0 1 1 1 1 0 1 0 1 0 1 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 1 0 0 1 1 0 1 1 1 1 0 1 1 0 0 0 1 1 0 1 1 0 1 0 1 1 1 0 0 0 1 0 0 1 0 1 0 1 1 0 0 1 0 0 1 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1 1 1 0 0 0 0 1 0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 0 0 1 0 1 +0 0 1 +0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 1 1 1 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 1 1 1 0 0 0 1 1 0 0 +1 0 0 +1 0 0 1 1 0 0 1 0 1 0 1 0 1 1 0 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 0 0 1 1 1 1 0 0 0 0 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 1 1 1 1 1 0 0 0 0 1 1 0 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 1 1 1 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 0 0 0 1 1 0 1 1 +0 0 1 +1 1 1 0 1 1 1 1 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 1 0 0 1 0 1 0 0 1 1 0 0 1 0 0 0 1 0 1 1 0 0 1 1 1 0 0 0 1 0 1 1 0 1 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 +1 0 0 +1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 1 1 1 0 1 0 0 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 0 0 +1 0 0 +1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 0 1 0 0 1 0 0 1 1 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 1 0 1 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 1 1 1 0 1 0 1 1 1 1 1 1 0 1 1 0 1 0 0 1 1 0 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 0 1 +0 0 1 +0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 0 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 0 0 1 1 0 1 1 0 1 1 0 1 0 1 0 1 1 0 0 0 0 0 0 1 1 1 0 +0 0 1 +1 0 1 1 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 0 0 0 1 1 1 1 0 1 1 0 0 0 0 0 0 +1 0 0 +1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 0 0 1 0 1 0 0 0 1 0 1 1 1 1 1 1 1 0 0 0 1 1 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 1 0 1 0 1 1 1 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 +1 0 0 +0 1 1 0 0 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 0 0 1 1 1 1 0 1 1 1 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 0 0 0 1 1 1 1 0 1 1 0 1 1 0 1 0 0 0 1 0 1 0 1 1 1 0 1 1 0 1 1 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 1 1 1 0 1 +0 0 1 +0 1 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 1 1 1 0 1 0 0 1 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 1 0 +1 0 0 +0 1 0 1 1 0 1 0 1 0 0 1 1 0 1 0 0 1 0 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 1 1 1 0 1 1 0 0 1 1 +0 0 1 +1 0 0 1 1 1 1 1 0 0 1 1 1 1 0 1 0 0 0 1 1 0 0 1 0 1 0 1 0 1 0 0 0 1 0 1 1 0 1 1 1 0 1 0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 1 1 0 1 0 1 1 1 0 0 1 0 1 0 1 0 0 0 0 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 0 0 1 0 0 0 1 1 1 0 1 0 0 1 1 1 0 1 0 0 1 1 1 +0 0 1 +0 1 1 1 1 0 0 1 1 0 1 1 0 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 1 1 0 1 1 0 0 0 1 1 0 1 0 0 0 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 0 1 0 1 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 0 1 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 +1 0 0 +1 0 0 1 0 0 0 1 1 1 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 0 1 0 0 0 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 1 0 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 0 0 0 1 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 1 1 1 0 0 0 1 1 0 1 +0 0 1 +1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 0 0 1 1 1 0 0 1 0 0 0 0 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 1 1 1 1 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 1 1 0 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 0 1 0 0 0 1 1 +0 1 0 +1 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 1 0 1 1 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 1 1 1 0 1 1 1 1 1 1 1 0 0 1 0 0 0 0 0 0 1 1 1 0 1 1 1 0 0 1 1 1 0 0 +0 1 0 +0 0 1 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 1 0 0 0 0 1 1 0 1 0 1 0 0 0 1 1 1 1 0 0 1 1 0 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 +0 0 1 +0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 1 1 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 1 1 1 1 1 0 1 1 1 1 0 0 0 0 0 0 1 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 0 1 0 0 1 1 0 0 0 0 0 +0 0 1 +0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0 0 0 0 1 1 1 0 0 0 1 0 1 1 1 1 0 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 0 0 0 0 1 +0 0 1 +0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 1 1 1 1 1 0 1 0 1 0 0 0 0 1 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 1 0 1 1 1 0 0 0 1 0 1 0 0 1 1 0 0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 1 0 1 0 1 0 0 0 0 0 1 0 0 1 +0 1 0 +0 1 0 1 1 1 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 1 1 0 0 0 0 0 1 1 0 1 1 0 1 1 1 0 1 0 1 0 1 1 1 0 0 0 1 1 0 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 1 1 0 1 1 1 1 0 1 0 0 1 0 0 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 0 1 0 1 1 0 0 0 1 0 0 1 1 1 0 0 0 +0 0 1 +1 1 0 0 0 1 1 1 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 0 0 0 0 0 1 0 1 1 0 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 0 1 1 1 1 1 0 1 1 1 0 0 1 1 1 1 0 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 1 1 0 1 1 1 0 1 1 1 0 0 1 1 1 +0 0 1 +1 0 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 +1 0 0 +0 0 0 1 1 0 1 1 1 0 0 1 0 1 0 0 1 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 0 1 1 0 1 0 1 0 0 0 1 1 0 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 0 +1 0 0 +1 0 1 1 1 0 0 0 0 0 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 1 1 1 0 0 1 0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 +0 1 0 +0 1 1 0 0 0 1 1 1 0 0 1 0 1 1 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 0 0 0 1 0 1 1 0 1 1 0 1 0 0 1 1 0 0 0 1 +0 1 0 +1 1 0 0 0 0 0 0 0 0 1 0 1 1 0 1 1 1 0 0 1 1 1 1 0 1 1 1 0 0 1 1 0 0 1 1 1 0 1 1 0 0 0 1 0 0 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 1 1 0 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 +0 1 0 +0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 1 1 0 1 0 0 1 0 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 0 1 1 0 1 1 1 0 1 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 +0 0 1 +0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 1 1 0 0 1 0 0 0 0 1 0 1 1 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 1 0 0 +0 0 1 +1 1 1 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 1 0 0 0 0 1 1 0 1 0 1 1 0 0 0 1 0 0 +1 0 0 +0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 1 1 0 1 0 0 0 0 1 0 1 1 0 1 1 1 0 1 0 1 0 1 0 0 1 0 1 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 1 0 0 0 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 +0 0 1 +1 1 1 0 0 1 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 1 1 1 0 1 1 +0 1 0 +1 0 1 0 1 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 0 0 1 0 0 1 0 0 0 1 1 1 0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 1 1 0 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 1 1 1 0 0 1 0 0 1 1 0 0 1 1 1 0 0 1 0 0 1 1 0 0 +0 0 1 +1 1 1 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 1 1 1 1 1 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 1 1 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 0 0 0 0 1 0 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0 +1 0 0 +1 1 0 1 0 1 0 0 0 0 0 1 0 1 1 0 1 1 0 1 0 1 0 0 1 0 0 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 1 1 0 0 0 0 1 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 1 0 1 1 0 1 1 0 1 1 1 1 0 0 0 0 0 1 1 1 0 1 0 +0 1 0 +1 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 0 0 0 0 0 0 1 1 1 0 +0 1 0 +0 0 0 0 1 0 1 1 0 0 0 0 0 0 1 1 0 1 1 1 1 1 0 0 1 1 1 0 1 0 0 0 0 0 0 1 0 0 1 1 1 1 1 0 0 1 1 1 1 1 0 0 1 0 1 0 1 0 1 0 1 0 0 1 0 0 0 1 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 1 0 0 1 1 1 1 0 1 0 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 1 1 0 1 0 1 0 +0 0 1 +0 1 0 1 1 1 1 0 0 1 0 0 1 1 1 0 1 0 1 0 0 1 0 1 1 0 0 1 0 0 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 0 1 1 0 1 0 1 1 1 0 1 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 1 1 1 1 1 0 1 0 0 0 1 1 0 0 0 1 0 1 0 0 +1 0 0 +1 0 1 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 1 1 0 1 1 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 0 1 1 0 1 0 1 0 1 1 0 1 1 1 1 1 1 1 1 0 0 0 1 0 1 0 0 1 1 1 0 0 0 1 1 0 0 0 1 0 1 1 0 0 0 0 1 1 0 0 1 0 0 0 +0 0 1 +1 1 0 1 1 1 0 0 1 1 1 1 1 0 1 0 0 0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 1 1 0 1 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 1 0 1 1 +0 0 1 +0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 1 0 1 0 0 1 0 1 0 1 1 0 0 1 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 0 1 1 0 1 0 0 0 1 0 +0 0 1 +0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 1 1 0 1 0 0 0 1 1 1 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 +0 1 0 +0 1 1 0 0 0 0 1 1 1 0 1 0 1 1 1 1 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 1 1 1 0 1 0 0 1 1 0 0 1 1 0 0 1 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 1 0 1 1 1 0 1 1 0 0 0 0 0 1 0 0 0 0 1 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 1 1 0 0 0 0 +0 0 1 +1 0 0 0 0 0 1 1 1 0 0 0 1 0 1 0 1 0 1 0 0 0 0 1 1 1 1 1 1 0 1 1 0 0 0 1 0 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 1 1 0 1 0 1 0 1 1 +1 0 0 +0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 0 0 0 1 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 0 1 0 0 1 0 1 1 0 0 0 1 1 1 0 1 1 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 0 0 0 0 1 0 1 1 0 0 0 0 1 +0 0 1 +1 1 1 0 0 0 1 1 0 1 0 1 0 0 1 1 1 1 0 0 0 1 0 1 1 0 0 1 1 1 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 0 1 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 0 1 1 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 1 1 +0 0 1 +0 1 1 0 1 1 0 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 0 1 1 0 1 0 0 1 1 1 1 0 1 1 0 1 1 0 1 1 1 1 0 0 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 1 0 1 1 1 1 1 1 1 0 1 0 0 0 0 0 1 1 1 1 1 0 0 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 +0 0 1 +0 1 0 1 0 1 1 1 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 0 1 1 1 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 0 0 0 1 0 1 1 0 1 1 1 0 0 1 0 0 1 1 1 1 0 1 +0 0 1 +0 1 0 1 1 1 1 0 1 1 0 1 0 0 0 0 0 1 0 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 0 1 1 0 1 1 0 0 1 0 1 1 0 1 0 1 1 0 0 0 1 1 0 1 1 1 1 1 0 1 0 0 1 0 1 1 1 1 1 0 0 +0 1 0 +1 1 0 1 1 1 0 1 0 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 1 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 1 0 0 0 1 0 0 1 1 1 1 1 0 0 1 0 1 0 0 0 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 1 1 0 0 1 0 1 1 0 +0 0 1 +0 1 0 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 0 1 1 0 0 0 0 1 1 1 0 0 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 1 0 0 0 1 1 1 1 1 0 1 1 1 0 1 0 0 1 1 1 1 1 0 0 0 0 0 1 1 0 0 1 0 0 0 1 1 1 1 1 1 0 1 1 0 1 1 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 0 1 1 1 1 0 0 1 1 +0 0 1 +1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 1 0 1 0 0 0 0 0 1 1 1 1 0 1 1 0 0 0 0 0 1 0 1 1 0 1 0 1 0 0 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 1 1 0 0 1 1 1 0 0 1 1 1 1 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 +0 0 1 +0 1 1 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 0 1 0 0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 0 1 1 1 0 1 1 0 1 1 1 1 1 0 1 0 0 1 1 1 0 1 1 1 0 0 0 1 0 0 1 1 0 +0 0 1 +1 0 0 1 0 0 1 1 1 0 1 0 1 1 0 1 0 1 0 1 1 0 1 1 0 0 1 1 1 1 1 1 1 0 0 1 0 1 0 1 0 1 1 1 0 1 1 1 1 0 1 1 1 0 1 1 0 1 0 1 1 1 0 1 1 1 1 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 1 0 1 +0 0 1 +0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 1 1 0 1 1 1 1 0 0 1 1 1 0 0 0 1 1 1 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 1 0 1 1 0 0 1 1 0 1 1 1 0 0 1 0 1 0 0 0 0 0 0 1 1 0 0 1 1 1 1 +0 0 1 +1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 0 1 1 1 0 1 1 1 1 1 0 0 1 1 0 1 1 1 0 1 0 0 1 1 1 1 1 0 0 1 1 0 1 1 1 0 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 +0 0 1 +0 1 0 1 0 0 0 1 0 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 0 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 1 0 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 0 1 1 1 1 1 1 0 1 0 1 0 1 1 0 +0 1 0 +0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 1 0 1 1 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 1 0 1 1 0 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 1 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 +1 0 0 +0 1 1 1 0 0 0 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 0 1 1 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 +0 1 0 +1 1 1 0 1 0 1 0 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 0 1 0 1 0 0 1 0 1 0 0 1 1 0 0 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 0 1 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 +0 1 0 +0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 1 0 0 0 1 1 1 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 1 0 0 0 0 0 0 0 0 +0 0 1 +1 0 1 0 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 0 1 1 1 0 0 1 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 0 0 1 1 0 1 1 1 0 0 1 0 1 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 1 1 1 0 1 1 1 0 1 0 1 0 0 0 0 1 1 1 1 0 1 1 1 1 0 +0 0 1 +0 0 1 1 0 1 1 0 0 0 0 0 1 1 0 1 1 0 0 1 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 1 1 0 1 1 1 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 1 1 1 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 0 1 1 0 1 0 0 0 1 1 0 1 1 1 0 0 0 1 0 1 1 0 1 0 1 0 1 1 +0 0 1 +0 1 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 1 1 1 0 1 0 0 1 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 1 0 0 1 1 1 0 1 1 1 1 1 0 0 0 0 0 1 1 +1 0 0 +1 0 1 1 1 1 0 0 1 1 1 0 0 1 0 1 1 0 1 0 1 0 1 1 0 1 1 0 1 0 1 0 0 0 0 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 0 0 0 0 0 0 1 1 1 0 +0 1 0 +0 0 1 0 0 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 1 1 1 0 1 0 1 1 0 1 1 1 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 1 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 1 0 +1 0 0 +0 1 0 1 1 0 0 0 0 0 1 1 1 1 0 0 1 0 1 1 1 1 1 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 1 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 0 0 1 1 0 0 1 0 1 1 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 0 1 1 0 0 1 0 1 +0 0 1 +1 0 1 1 1 0 1 0 1 0 0 1 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1 1 0 1 0 1 1 1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 +0 1 0 +0 0 1 1 0 0 0 1 1 1 0 0 1 1 1 0 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 1 1 0 1 1 1 1 0 0 +0 1 0 +0 1 1 1 1 0 1 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 0 1 1 0 0 1 0 1 0 0 0 1 1 1 1 0 1 0 1 1 0 1 0 0 0 0 1 1 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 1 1 1 0 1 0 0 0 0 1 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1 0 0 0 1 1 0 1 1 0 +1 0 0 +1 1 1 1 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 1 0 1 1 1 0 0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 1 1 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0 1 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 0 1 0 1 1 0 0 0 1 0 1 1 0 1 0 1 1 0 1 1 0 0 1 0 1 0 1 1 0 1 0 1 0 1 0 +0 0 1 +1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 1 0 1 1 0 0 1 1 0 0 1 0 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 1 1 0 0 0 0 1 0 0 1 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 1 0 1 1 1 0 1 1 +0 0 1 +0 1 0 1 1 1 1 1 1 0 0 1 1 0 0 1 0 0 0 1 1 1 1 0 1 1 0 0 0 0 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 0 0 0 1 1 0 1 1 1 0 1 0 0 0 0 1 0 1 1 1 1 0 0 1 1 0 1 0 0 1 1 1 1 0 0 1 0 0 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0 1 0 1 1 0 0 0 +0 1 0 +0 1 1 1 0 1 1 0 0 1 0 0 0 0 1 1 1 1 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 0 1 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0 0 0 1 1 0 1 1 1 0 1 1 1 0 0 0 0 1 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 0 0 1 1 0 0 1 0 1 1 0 +0 1 0 +1 1 0 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 0 1 0 0 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 1 0 0 0 0 1 1 1 0 0 1 0 0 0 1 0 0 1 1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 +0 0 1 +0 1 1 1 1 1 1 1 0 1 1 1 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 1 1 1 0 1 1 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 1 0 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 0 1 0 1 1 0 1 0 1 0 1 1 1 0 0 0 1 1 0 0 1 0 1 1 1 0 1 0 1 1 1 1 1 1 +0 0 1 +1 1 0 0 0 1 0 1 0 0 0 0 0 1 1 1 1 1 0 1 0 1 1 1 1 0 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 0 1 1 1 1 1 1 1 0 1 1 1 0 0 1 1 0 1 0 0 0 0 1 1 1 0 1 1 1 0 0 0 0 1 1 1 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 0 0 1 0 0 +0 1 0 +0 0 1 0 0 0 1 1 1 1 1 0 1 0 1 0 0 1 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 1 1 0 0 0 1 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 1 0 1 1 1 0 0 0 0 1 0 1 1 1 1 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 1 0 +0 0 1 +0 1 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 0 1 0 0 1 1 0 0 0 0 0 1 1 1 1 1 0 1 1 0 0 0 0 1 0 1 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 0 0 0 0 1 1 0 0 1 1 1 0 1 0 +1 0 0 +1 0 0 0 1 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 0 1 0 0 1 0 1 0 1 1 1 0 0 1 1 1 0 1 1 1 0 1 0 0 1 0 0 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 1 1 1 1 1 0 1 0 0 1 1 0 1 0 1 1 1 1 0 1 1 1 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 +0 0 1 +1 0 1 1 1 0 1 1 1 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 1 1 0 1 0 0 1 0 1 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 1 0 0 0 0 0 0 1 +0 0 1 +1 0 0 1 0 0 1 1 0 0 0 0 0 1 0 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 1 1 0 1 0 1 1 1 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 0 1 0 0 0 1 0 0 1 1 0 0 1 1 0 1 1 0 1 0 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 0 1 0 +0 0 1 +0 0 1 1 0 1 0 0 0 1 0 1 1 0 0 0 0 1 0 0 1 1 1 0 0 1 0 1 1 0 0 0 1 1 1 0 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 0 +0 0 1 +1 1 1 1 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 1 1 1 0 1 1 0 1 1 1 1 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 0 0 0 1 1 0 0 0 0 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 1 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 1 0 1 1 0 1 0 0 1 0 0 +0 0 1 +1 0 1 1 1 0 0 0 1 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 +0 1 0 +0 1 1 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 1 0 0 1 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 1 0 0 0 1 1 1 1 1 0 0 0 0 1 1 0 1 1 1 1 0 1 0 1 1 1 0 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 +0 0 1 +1 1 0 0 0 1 0 1 1 1 1 1 0 0 1 1 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 0 0 1 0 0 1 1 1 1 1 0 0 1 1 0 1 1 1 1 1 0 0 0 1 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 0 0 0 0 0 1 1 0 +0 0 1 +0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 0 0 1 0 1 1 1 0 0 0 0 1 0 0 +0 0 1 +1 0 0 1 0 0 0 1 1 1 0 0 1 0 0 1 1 0 0 1 1 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1 0 0 0 0 1 0 1 0 1 0 0 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0 0 0 1 0 0 1 1 0 1 0 0 1 1 0 1 1 0 1 0 0 0 1 1 0 0 1 0 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 +0 0 1 +0 0 0 1 1 0 0 1 0 1 1 0 0 0 1 0 1 0 0 0 0 1 0 1 0 1 0 1 1 0 0 0 0 1 1 0 1 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 0 0 0 1 1 0 0 1 1 1 1 1 1 0 0 0 1 0 1 +0 0 1 +1 1 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 1 1 1 0 1 1 0 0 1 0 0 0 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 1 1 0 0 1 0 1 1 0 0 0 1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 0 1 0 0 1 1 1 1 0 1 0 0 0 0 1 0 0 1 1 0 0 +1 0 0 +1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 1 1 0 0 0 1 1 0 1 1 1 0 0 1 0 1 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1 1 0 0 0 1 1 1 1 1 1 1 0 1 1 0 1 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0 1 0 1 1 1 0 +0 0 1 +0 1 1 0 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 1 0 1 0 0 1 0 1 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 +0 0 1 +1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 1 0 0 1 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1 0 0 1 1 1 0 1 0 1 0 +0 1 0 +1 1 1 0 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1 1 1 1 1 0 1 0 1 0 0 1 1 1 1 1 1 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 1 1 0 1 0 1 0 0 0 1 1 1 1 0 0 0 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 0 1 1 0 0 0 0 0 1 1 +1 0 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 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 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 1 1 1 1 1 0 0 1 1 0 0 0 0 +0 0 1 +1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 1 0 1 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 1 1 1 0 0 +0 0 1 +1 1 1 0 1 1 1 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0 0 0 1 0 1 1 1 1 0 1 0 1 0 1 0 0 1 0 0 0 1 0 1 1 1 1 0 0 1 0 0 1 1 1 0 1 1 +0 0 1 +1 1 0 1 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 0 1 1 0 1 1 1 1 1 0 0 1 1 1 0 0 0 0 1 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 1 1 0 1 0 1 1 1 1 0 1 0 1 1 1 0 1 0 0 1 1 1 0 1 0 0 0 1 1 1 1 0 0 1 0 0 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 0 0 0 0 0 +0 0 1 +1 1 1 1 0 0 1 1 1 0 1 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 1 1 1 1 0 0 0 0 1 0 0 0 1 1 1 0 1 1 0 0 0 1 0 1 1 0 1 1 0 0 0 0 0 1 1 0 1 1 1 1 0 0 1 1 0 1 0 0 1 0 1 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 0 1 1 0 +0 0 1 +1 0 0 1 0 1 1 0 0 0 0 1 0 1 0 1 1 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 0 1 1 0 1 0 1 1 1 1 0 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 1 1 0 0 0 1 0 1 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 0 1 0 1 0 +0 0 1 +1 0 0 1 0 0 1 0 0 1 1 1 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 1 0 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 0 1 1 1 1 0 1 1 0 0 +1 0 0 +0 1 1 0 0 1 0 1 0 1 1 1 0 1 0 1 1 1 0 0 0 1 1 0 0 1 0 1 0 1 0 1 1 0 0 0 0 1 0 1 0 0 0 1 1 1 0 0 0 1 0 0 0 1 1 0 1 1 0 0 0 0 1 1 1 1 1 0 1 0 1 1 1 1 0 1 1 1 0 0 1 1 1 1 1 0 1 0 0 1 1 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 +0 0 1 +0 1 1 0 1 1 1 1 1 1 1 0 0 1 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 0 1 1 1 0 0 1 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 1 0 1 1 1 0 1 0 1 0 0 1 0 0 0 0 1 1 1 1 1 0 1 1 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 1 1 1 +0 0 1 +0 1 1 0 1 0 0 0 1 1 1 0 0 1 0 0 0 0 1 1 1 0 0 1 1 1 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 0 1 0 +0 1 0 +0 1 0 0 0 0 0 1 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1 0 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 1 1 0 1 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0 0 1 0 0 1 1 1 1 0 0 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 +1 0 0 +1 0 0 0 1 1 0 0 0 1 1 0 1 0 1 0 0 0 1 1 1 1 0 0 1 1 1 1 1 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 1 0 1 1 1 0 0 1 1 1 1 0 1 0 1 1 1 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0 1 0 1 1 0 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 1 +0 1 0 +1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 1 1 1 1 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 1 1 0 1 0 1 0 +0 1 0 +1 1 0 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 0 0 0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 1 1 0 1 0 1 1 0 0 0 1 0 1 0 1 1 1 0 0 1 0 1 0 1 0 0 1 1 0 0 1 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 1 0 +0 1 0 +1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 0 0 0 1 1 1 0 0 0 0 0 1 0 1 1 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 1 1 0 1 0 0 0 0 1 1 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 1 1 1 0 +0 0 1 +1 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 1 0 1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 1 1 0 1 1 0 1 0 1 1 0 1 1 1 0 0 0 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 +1 0 0 +0 1 1 1 0 1 1 1 1 1 0 1 0 0 1 1 1 1 1 0 1 0 1 1 0 1 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0 1 1 0 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1 0 0 1 0 1 1 1 1 1 0 1 1 1 1 0 1 1 1 0 0 0 0 1 1 1 1 0 1 0 0 1 1 0 1 1 0 0 0 1 1 1 1 1 0 1 0 1 1 1 0 0 1 1 1 1 0 0 1 1 1 0 +0 0 1 +0 0 0 0 0 0 1 1 1 0 1 0 0 1 0 0 0 0 0 1 1 0 1 1 0 0 1 1 1 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 1 0 1 0 1 0 1 1 0 1 0 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 1 1 0 0 0 0 +1 0 0 +1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 0 1 0 1 1 0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 1 1 0 1 0 0 0 0 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 +1 0 0 +1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 1 1 0 0 1 1 0 1 1 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 +0 1 0 +1 0 1 0 0 1 1 1 1 0 0 0 1 1 0 0 0 1 1 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 1 1 0 1 1 1 1 1 0 1 0 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 0 0 1 0 0 1 1 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 1 0 1 1 1 1 0 0 1 +0 0 1 +0 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 1 1 0 1 1 0 1 1 0 0 0 1 1 1 0 1 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 +0 0 1 +0 0 0 1 0 1 1 0 1 1 1 1 1 0 0 1 0 0 1 1 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 1 1 1 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 1 1 1 1 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 1 1 0 1 0 1 1 0 1 1 1 +0 1 0 +1 1 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 1 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 1 1 1 0 1 0 0 1 0 0 0 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 1 1 1 1 1 1 1 0 1 0 1 0 0 1 0 0 0 1 1 0 1 0 1 1 1 0 0 0 1 0 +0 0 1 +1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 0 0 1 1 0 1 1 0 0 0 0 0 1 0 1 1 0 0 1 0 1 1 1 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 1 0 1 0 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 1 0 0 1 1 1 0 0 1 0 1 1 0 0 1 1 1 1 1 +0 0 1 +0 0 1 1 1 0 0 0 1 1 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 0 0 1 0 1 1 0 0 0 0 1 1 0 1 0 1 0 1 0 0 0 0 0 0 1 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 1 0 1 0 0 1 +1 0 0 +0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 1 0 1 1 1 0 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 1 1 0 0 0 0 1 1 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 1 0 1 1 1 1 0 0 0 1 1 0 0 1 1 +0 0 1 +0 1 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 0 1 1 0 1 1 1 0 1 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 0 1 0 0 0 1 +0 1 0 +0 0 0 1 0 1 0 1 0 0 0 1 1 0 0 1 1 0 1 1 1 0 0 1 0 1 0 0 1 1 1 1 1 1 0 0 1 1 1 0 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 1 0 1 1 1 1 0 1 1 0 0 1 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0 +1 0 0 +0 0 0 0 0 1 1 0 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 0 0 0 1 1 1 1 0 0 1 0 1 0 1 1 1 0 1 0 0 1 0 +0 1 0 +0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 1 1 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1 1 0 0 0 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 0 1 0 1 0 1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 0 0 0 1 1 0 +1 0 0 +1 0 0 1 0 1 1 1 1 1 1 0 1 1 0 1 1 1 0 0 0 1 1 1 1 1 1 1 1 0 0 1 0 1 0 0 0 1 0 1 0 0 1 1 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 0 1 1 0 0 0 0 1 0 1 1 1 0 0 0 0 0 1 1 1 1 0 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 +0 0 1 +0 0 1 1 1 0 0 1 1 0 0 1 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 0 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 1 1 1 0 0 1 1 1 0 0 1 0 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1 0 1 0 1 0 0 0 +0 0 1 +0 0 1 1 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 0 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 0 1 0 0 0 1 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 +0 0 1 +0 0 0 0 1 1 1 0 0 1 0 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 1 1 1 0 0 1 1 1 0 1 1 1 1 0 0 1 1 0 1 1 0 0 1 0 1 1 1 1 0 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 1 0 1 1 1 0 1 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 0 1 1 +0 1 0 +0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 1 1 1 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 1 1 0 1 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 1 0 1 1 0 1 0 1 1 0 1 1 1 0 1 0 0 0 1 1 1 1 1 0 1 0 1 0 0 0 1 1 1 0 1 1 0 1 0 1 1 1 0 1 0 0 0 0 1 0 1 1 1 1 0 0 0 1 1 1 +1 0 0 +1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 0 1 1 1 1 1 0 1 1 1 0 1 0 1 1 0 0 1 0 1 1 1 0 0 0 1 1 0 1 0 1 0 1 0 0 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 0 0 0 0 1 0 1 1 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 0 1 0 1 0 0 1 0 1 1 0 1 1 1 0 1 0 +1 0 0 +0 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 1 1 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 0 1 1 0 0 1 1 1 1 0 1 0 0 0 1 1 0 0 1 1 0 0 0 0 1 0 0 1 1 1 0 0 1 0 0 0 1 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 0 0 0 1 1 0 0 1 0 1 0 +0 1 0 +1 0 0 1 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 0 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 0 1 1 0 +1 0 0 +1 0 1 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 1 1 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 +1 0 0 +1 0 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 1 0 1 0 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 0 1 1 0 1 1 1 1 1 1 0 0 1 0 1 +0 0 1 +1 0 0 1 1 0 0 0 0 1 1 0 1 1 1 1 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 1 0 1 1 0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 1 0 0 0 0 1 0 0 1 1 1 0 1 0 1 1 0 1 0 0 0 1 0 0 1 0 1 0 1 0 0 0 1 0 0 1 1 0 1 0 1 0 0 0 +0 0 1 +1 0 1 1 0 1 1 0 0 0 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 1 1 0 0 1 1 1 0 1 0 1 0 0 0 0 0 0 1 0 1 1 0 1 1 0 1 0 0 0 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 +0 1 0 +1 1 1 1 0 0 1 1 0 1 1 1 1 0 0 1 1 0 1 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 1 1 0 1 0 0 0 0 1 0 1 0 1 1 1 0 1 0 1 1 1 1 0 0 0 1 1 1 1 0 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 +1 0 0 +0 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 1 0 1 1 0 0 0 1 0 0 0 0 0 1 0 1 0 1 0 0 1 0 0 0 1 1 1 0 0 1 0 1 1 1 0 0 0 1 1 0 0 0 1 0 1 1 0 1 1 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 0 1 0 0 0 +0 0 1 +0 1 0 1 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 0 1 0 0 1 1 0 1 1 1 1 1 0 1 1 1 0 0 0 0 1 0 0 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 0 1 0 1 1 0 0 0 1 1 0 1 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 1 1 1 1 1 1 1 0 0 0 0 +0 0 1 +1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 0 0 0 1 0 1 0 1 1 0 0 0 0 0 1 1 1 1 0 1 1 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1 1 1 0 0 1 1 1 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 1 0 0 1 0 0 1 1 1 0 1 1 1 0 0 1 0 0 0 1 1 1 0 1 0 0 1 1 1 0 0 1 1 1 0 0 +0 0 1 +1 1 1 1 1 1 0 1 0 0 0 1 1 0 0 1 0 1 1 1 0 0 0 1 1 0 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 0 1 1 0 0 1 0 1 1 1 1 1 0 1 1 1 0 0 0 1 0 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 0 +0 0 1 +0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 0 1 1 1 1 1 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 0 0 1 1 0 1 0 0 0 0 1 1 1 1 0 0 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 0 1 1 0 0 1 1 1 1 1 0 +0 1 0 +1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 1 1 0 0 0 1 0 1 1 1 0 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 1 0 1 1 0 0 0 1 1 1 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 1 1 1 1 0 1 0 1 0 1 1 0 0 0 1 1 0 0 1 0 1 0 1 1 0 0 1 1 1 +0 1 0 +1 1 0 0 1 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 1 0 1 1 0 0 0 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 0 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 1 0 0 1 +0 0 1 +0 1 1 0 1 1 1 0 0 0 1 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 1 0 1 1 0 0 0 1 0 0 1 0 1 1 0 0 0 0 0 1 0 1 0 0 0 0 1 1 0 1 0 1 1 0 0 1 1 1 0 +0 1 0 +1 0 1 0 1 1 1 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 1 0 1 1 0 1 0 0 1 1 1 1 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 1 0 0 1 1 1 0 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 +0 0 1 +0 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 1 0 1 1 1 0 1 1 0 1 0 0 0 0 1 1 1 0 1 1 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 0 1 1 1 0 1 1 1 0 1 1 0 1 0 0 1 1 1 1 0 +0 0 1 +1 1 0 0 1 0 1 0 1 0 0 0 1 1 1 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 1 1 0 1 0 0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 0 1 1 0 1 0 1 0 1 0 0 1 1 0 1 0 0 1 1 1 1 0 1 0 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 1 1 1 0 0 1 0 1 0 0 1 1 1 0 1 0 1 1 0 0 0 1 1 0 0 +0 0 1 +1 1 0 0 1 1 1 0 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0 1 1 1 0 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 0 1 0 1 0 0 0 1 1 0 1 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 1 1 0 1 1 0 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1 1 0 1 1 1 +0 0 1 +1 0 0 0 1 1 1 0 0 1 1 1 0 1 0 1 0 1 1 0 0 1 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 0 1 0 1 1 0 1 0 1 1 1 1 1 0 1 0 0 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 0 0 1 0 0 1 1 0 0 0 1 0 0 0 1 1 0 +0 0 1 +1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 1 1 1 1 1 1 0 1 0 1 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 1 0 1 1 1 0 1 1 0 0 0 0 1 1 0 0 1 0 1 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 1 0 0 0 0 1 +0 0 1 +1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 1 1 1 1 0 0 1 0 1 1 0 0 1 1 1 0 0 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 0 1 0 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 1 1 +1 0 0 +1 1 0 0 1 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 0 1 1 1 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 0 0 0 1 0 1 1 0 1 1 0 0 1 1 1 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 +1 0 0 +0 0 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 1 0 1 0 0 1 1 0 0 0 1 0 1 0 0 1 1 0 1 1 1 0 1 1 0 0 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 0 1 0 0 0 0 1 0 1 1 0 1 1 1 0 0 1 0 0 1 1 1 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 +0 0 1 +1 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 1 0 1 1 1 0 1 1 0 1 1 1 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 0 1 1 1 0 1 0 0 1 +0 1 0 +0 1 0 1 1 0 0 1 0 1 1 0 1 0 0 0 0 0 0 1 1 0 1 1 1 1 1 0 1 1 0 1 1 1 1 0 1 0 0 1 0 0 0 0 1 0 1 1 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 +0 0 1 +1 1 0 0 0 1 0 0 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 1 0 0 0 1 0 1 1 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 1 0 0 1 1 0 1 1 0 0 0 1 0 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 0 1 0 0 0 1 0 0 +0 1 0 +0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 1 1 1 1 1 0 0 0 1 0 0 0 0 0 1 0 0 1 1 0 1 0 0 0 1 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 0 +0 0 1 +1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 1 1 1 0 1 1 1 1 1 1 1 0 1 0 1 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 0 0 1 0 1 1 1 1 0 1 0 1 0 1 1 0 0 0 0 1 1 1 0 1 1 1 1 1 1 0 +0 0 1 +1 0 0 1 1 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 1 1 1 1 0 0 0 1 0 +1 0 0 +1 1 1 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 1 1 1 1 0 1 0 0 0 0 0 0 1 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 +0 0 1 +1 0 0 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 1 1 0 1 0 0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 1 0 1 0 1 0 0 0 1 0 1 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0 0 1 1 0 +0 0 1 +1 0 0 0 0 0 0 1 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 1 1 0 0 1 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 0 0 0 1 1 0 0 0 +1 0 0 +0 0 0 0 0 1 1 0 1 1 0 0 0 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 1 0 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 0 0 1 1 0 +0 0 1 +0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 0 1 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 1 1 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 0 1 1 0 0 0 1 1 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 1 0 1 0 +0 1 0 +1 1 0 0 0 0 1 1 0 0 1 0 0 0 1 0 1 1 0 0 1 0 0 0 1 0 1 0 1 0 1 1 1 0 1 1 1 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 0 1 1 0 1 0 1 1 +0 0 1 +0 0 1 1 1 0 0 1 1 0 0 1 1 0 1 0 0 1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1 1 0 1 1 1 0 1 1 0 0 0 0 0 1 1 1 1 0 1 1 1 0 1 0 1 0 0 0 0 0 0 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 1 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 1 1 1 0 0 1 0 +0 0 1 +0 0 0 0 0 0 1 1 1 0 1 1 1 0 1 1 0 1 1 0 0 0 0 0 1 1 1 1 1 0 1 1 1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 0 0 1 1 0 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 1 0 1 0 0 0 1 1 0 1 0 0 0 +1 0 0 +1 0 0 1 1 0 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 1 0 1 0 0 0 1 1 0 0 0 1 0 0 0 1 0 1 0 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 0 1 1 0 1 1 0 0 1 0 1 1 0 1 0 1 0 0 1 1 1 0 1 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 0 1 0 0 1 0 1 0 1 +0 0 1 +1 0 1 1 1 0 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 0 1 0 1 0 1 0 0 1 0 1 0 0 0 1 1 0 1 0 1 0 1 0 0 1 0 0 0 1 1 1 0 1 1 0 0 0 1 1 1 0 1 1 1 0 0 0 1 1 0 1 1 1 1 0 0 1 1 0 1 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0 1 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 +0 1 0 +1 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 1 1 0 1 1 0 1 0 1 1 0 1 1 1 0 0 1 1 1 1 0 1 0 0 0 1 0 1 0 0 0 0 1 1 0 1 0 0 0 1 0 1 1 1 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 +1 0 0 +1 0 0 0 1 1 1 0 1 1 0 0 0 1 1 1 0 1 1 0 1 0 0 0 0 1 1 1 0 0 1 0 0 1 0 0 1 0 0 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 0 1 1 0 1 1 1 1 1 0 1 0 0 0 1 1 1 1 1 0 1 1 0 0 1 1 1 1 1 0 1 0 0 0 0 1 1 1 0 0 0 1 0 0 1 1 0 0 1 1 1 1 0 0 +1 0 0 +1 1 1 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 1 1 1 0 1 0 1 1 0 0 0 0 1 1 1 1 1 0 1 0 1 1 1 0 1 0 1 1 0 0 0 0 +0 1 0 +1 0 0 1 0 1 0 1 1 1 1 0 0 0 0 1 0 1 1 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 1 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 1 1 1 1 1 1 0 0 1 0 0 1 0 1 0 +0 0 1 +1 1 1 0 1 0 1 0 0 0 0 1 0 1 0 1 1 0 1 0 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 0 0 0 1 1 0 1 0 0 1 0 1 0 1 0 0 1 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 1 0 1 1 1 1 1 1 1 0 1 0 0 0 1 1 1 1 +0 0 1 +0 0 1 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 0 0 1 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 0 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 0 0 0 1 0 0 1 0 0 1 0 0 1 0 1 1 0 0 1 0 0 1 0 0 1 1 0 +0 1 0 +1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 1 0 1 0 1 0 0 1 1 0 0 1 0 0 1 1 1 1 1 1 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 0 1 1 0 0 0 1 0 1 0 0 0 1 1 1 1 1 0 1 1 0 0 1 0 0 0 1 1 0 0 1 1 1 0 0 0 1 0 1 0 0 +0 0 1 +0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 1 0 1 1 0 1 1 1 1 0 0 1 0 1 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1 0 1 0 0 1 1 1 1 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 1 0 0 0 1 1 1 1 1 0 1 0 1 0 +1 0 0 +0 0 0 0 1 1 1 0 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 1 0 0 0 1 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 0 0 1 1 1 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 0 0 +0 0 1 +0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 1 1 1 1 +0 1 0 +1 1 1 1 1 1 1 0 1 0 0 1 1 0 1 1 1 0 0 1 1 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 0 0 0 0 0 1 0 0 1 1 0 0 1 1 +1 0 0 +0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 1 1 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 1 1 0 1 0 0 0 1 1 0 1 1 1 0 1 1 0 1 1 0 0 1 0 0 0 1 0 1 1 0 0 0 0 1 1 1 1 0 1 1 1 0 0 0 0 0 0 1 1 0 0 1 0 0 +0 1 0 +1 1 0 0 1 1 1 0 0 0 1 1 0 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 0 0 1 0 1 0 1 0 0 0 0 1 1 1 1 1 0 0 0 1 0 0 1 0 0 1 1 0 0 1 0 0 0 0 0 1 +0 1 0 +0 0 1 1 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 0 0 1 1 0 +0 0 1 +1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 1 1 0 0 0 0 1 0 0 1 1 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 1 1 1 0 1 0 0 1 0 1 0 1 0 1 1 0 0 0 0 1 0 1 0 1 1 1 1 0 +0 1 0 +0 0 0 1 0 0 1 1 1 0 1 0 0 1 1 0 1 1 1 0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 1 1 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 1 1 1 1 0 1 0 0 1 1 1 0 1 0 1 1 1 1 0 1 1 1 0 1 1 0 +0 0 1 +0 1 0 0 1 1 1 1 0 0 1 1 1 0 0 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 1 0 0 1 0 1 1 1 1 1 1 0 0 1 0 1 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0 1 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 0 1 0 1 0 1 0 0 1 1 1 0 0 0 1 0 0 0 0 1 1 0 1 0 +0 0 1 +1 1 1 0 1 1 1 0 0 1 0 1 1 1 1 0 1 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 0 1 1 1 1 0 1 1 0 1 1 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 1 0 1 1 1 1 0 1 0 1 0 1 1 +0 1 0 +0 1 1 0 1 0 1 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 1 0 1 1 0 0 1 1 0 0 1 0 0 0 0 0 1 1 1 1 1 0 1 1 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 1 1 0 0 1 0 +0 0 1 +1 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 0 0 1 1 0 1 0 1 0 0 1 1 0 0 1 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 0 0 1 0 1 0 0 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 0 0 1 1 1 0 0 0 0 0 1 1 0 1 1 1 1 1 1 0 1 0 1 0 1 1 0 1 0 1 1 0 1 1 0 0 1 1 1 1 0 0 0 0 1 0 1 0 1 +1 0 0 +0 0 1 1 1 0 1 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 0 0 1 1 0 0 1 1 1 1 0 1 1 1 1 1 0 0 0 1 0 1 1 1 0 0 1 1 0 0 0 1 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 +0 1 0 +1 0 0 0 1 1 1 1 1 1 1 0 1 1 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1 +0 0 1 +1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 0 1 1 1 0 0 1 0 1 1 1 1 0 1 1 0 0 0 1 0 1 0 0 0 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 1 0 0 0 0 1 0 1 1 0 0 1 0 0 1 1 0 1 1 1 1 0 0 1 0 1 0 1 1 0 1 0 0 0 1 1 0 0 0 1 1 0 0 1 1 1 1 1 1 1 0 0 1 1 +0 0 1 +1 1 1 1 0 0 0 1 1 0 1 1 1 0 1 0 0 0 0 1 1 0 1 1 1 0 1 0 1 0 1 1 0 0 1 1 1 0 1 0 1 0 0 1 0 0 0 1 1 0 0 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 0 1 1 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 1 0 0 1 1 1 0 1 0 0 1 1 0 0 0 0 0 1 1 1 0 0 1 0 1 +0 0 1 +0 0 0 1 0 1 1 1 0 1 0 0 0 1 0 0 1 1 1 1 0 1 0 1 1 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 0 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 0 1 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 1 1 1 1 1 0 1 1 1 1 0 1 0 0 1 1 1 0 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 +0 1 0 +1 0 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 0 0 1 0 1 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 0 0 1 0 0 1 0 +0 1 0 +0 0 1 1 0 0 0 1 1 0 1 1 1 0 1 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 1 0 1 1 1 0 1 0 0 1 1 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 0 1 0 1 1 0 0 1 1 1 0 1 1 0 0 0 0 1 0 1 0 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 0 0 1 0 0 1 +0 0 1 +0 1 1 0 1 1 0 0 0 1 0 0 1 1 1 0 1 0 1 0 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 0 0 0 0 1 0 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 0 1 0 0 0 0 0 1 0 0 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 +0 0 1 +1 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 0 1 1 0 0 1 1 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 1 0 0 0 1 1 0 0 0 1 1 1 0 +0 0 1 +1 0 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0 1 1 0 0 1 1 0 0 0 1 1 0 1 1 1 1 0 0 1 1 0 1 0 1 0 0 0 0 1 0 1 0 0 0 1 1 0 1 1 1 1 0 1 1 1 0 1 0 0 1 1 1 1 1 1 0 0 0 1 1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 0 1 +0 0 1 +0 0 0 0 0 1 0 1 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1 1 0 0 1 1 0 1 0 1 0 0 0 0 1 0 1 1 0 1 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 0 1 0 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 0 1 1 1 1 1 0 1 0 1 0 0 1 1 0 1 0 0 1 +1 0 0 +0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 1 0 1 +0 1 0 +1 1 1 0 1 0 1 1 1 0 0 1 1 1 1 0 1 0 0 0 0 1 0 0 1 1 0 1 1 1 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 1 1 0 1 0 0 1 0 1 0 0 1 1 1 1 1 0 1 0 1 0 0 1 0 0 1 1 1 0 1 1 0 1 0 1 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 1 1 1 1 0 1 0 1 0 0 0 0 1 1 0 0 1 0 1 +0 0 1 +1 1 1 1 0 1 0 0 0 0 0 1 0 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 0 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 0 1 1 1 1 1 1 0 0 1 1 1 0 0 0 0 1 1 1 1 0 1 1 1 0 0 1 0 1 0 1 1 0 1 0 +0 0 1 +0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 0 1 0 0 0 0 1 1 1 0 0 1 0 0 1 1 1 1 0 0 1 1 1 0 0 0 1 1 0 0 1 1 1 0 0 1 0 0 0 0 0 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 0 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 +0 0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 1 1 0 1 1 1 0 1 0 0 1 1 1 0 0 0 0 0 1 1 0 1 1 1 0 0 0 1 1 1 1 0 0 0 1 0 1 0 0 1 0 0 1 1 1 1 0 1 1 1 0 0 1 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 0 0 0 1 1 0 0 0 +0 0 1 +1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 1 1 1 1 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 1 1 0 1 0 1 0 +0 1 0 +0 0 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0 0 1 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 0 1 1 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 1 1 1 0 0 0 1 0 1 1 1 0 0 0 1 0 0 1 1 1 1 1 1 1 0 0 1 1 0 0 1 0 0 0 0 0 1 0 1 0 1 1 1 1 0 1 1 0 1 0 0 0 1 0 1 0 1 0 1 1 0 +0 0 1 +1 0 1 0 0 0 0 1 1 0 0 1 0 0 0 1 1 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 1 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 1 1 0 +0 0 1 +1 0 1 0 0 1 0 1 1 1 1 1 1 0 1 1 0 0 1 1 0 0 0 1 1 0 1 0 1 0 1 0 0 1 1 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 0 1 0 1 1 1 1 0 1 1 0 0 1 1 0 0 0 0 1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 1 1 0 1 0 0 1 +0 0 1 +1 0 1 1 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 1 0 1 1 1 1 1 1 0 1 0 1 1 0 1 1 0 0 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 1 0 0 0 0 0 1 1 0 0 1 1 1 0 0 1 0 1 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 1 0 1 1 1 +0 0 1 +1 1 1 0 0 1 0 1 0 1 1 1 0 1 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 0 1 1 1 0 1 1 1 0 1 1 0 0 1 0 1 1 1 0 0 0 1 0 1 1 0 0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 1 0 0 0 0 0 1 0 1 0 1 0 1 1 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 1 1 0 1 1 0 1 1 1 1 1 0 1 +0 0 1 +0 0 1 0 0 0 0 1 0 0 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 1 0 1 1 1 0 0 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 1 0 1 0 1 1 1 0 +0 0 1 +1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 1 1 0 1 1 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 +0 1 0 +0 1 0 0 0 1 1 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 1 1 0 1 0 0 1 0 1 1 1 1 1 0 0 1 0 1 0 1 1 1 0 1 1 1 0 1 0 0 1 0 0 0 1 1 1 0 1 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1 1 1 1 1 0 1 1 0 1 0 1 0 1 +0 0 1 +1 0 1 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 1 1 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 1 1 1 0 1 1 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 +1 0 0 +0 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 1 0 0 1 0 0 1 1 1 1 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 0 1 0 1 1 0 0 1 1 1 0 1 1 1 1 1 1 0 1 1 1 0 0 1 0 0 +1 0 0 +0 0 1 1 0 0 1 1 0 1 1 0 1 0 0 1 1 1 1 0 1 1 0 0 0 0 1 1 1 1 1 0 1 0 0 0 0 1 0 1 1 0 1 0 1 0 0 1 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 1 1 0 1 0 1 0 0 0 1 0 1 0 0 0 0 1 0 1 0 1 1 0 1 1 0 1 0 1 +0 0 1 +0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 1 0 1 1 1 0 1 1 1 0 1 0 1 0 1 0 0 0 0 1 0 0 1 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1 0 0 0 1 1 1 1 0 0 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 1 0 0 1 1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 0 0 0 0 +0 1 0 +0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 0 0 0 1 1 0 1 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 0 0 0 1 1 1 0 1 1 0 1 0 1 1 1 0 0 0 0 0 0 +0 0 1 +0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 1 0 1 1 0 1 0 1 1 1 1 0 0 0 0 0 1 1 0 1 1 0 0 0 1 0 1 0 1 1 1 1 0 1 0 0 1 0 1 0 1 1 1 0 1 1 1 1 0 1 1 1 0 1 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 0 1 +0 0 1 +1 0 0 0 1 0 1 0 0 0 1 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 1 0 0 1 1 1 1 0 0 0 1 1 1 0 1 0 0 0 1 0 1 0 1 0 0 0 1 0 +1 0 0 +0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0 1 0 1 1 0 1 1 1 0 1 1 0 0 0 1 1 0 0 1 0 1 0 1 1 0 0 1 1 0 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 1 0 1 1 0 0 0 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 +0 0 1 +1 0 1 1 1 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 1 0 1 0 1 1 1 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 1 0 0 1 1 0 +0 0 1 +1 1 1 0 1 1 1 1 0 1 0 0 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 0 1 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 0 0 1 1 0 1 0 0 1 0 0 0 1 0 0 0 1 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 +0 0 1 +1 1 0 1 0 1 0 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 0 0 0 0 0 0 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 1 1 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0 1 1 1 0 0 1 1 +0 0 1 +1 0 1 1 1 1 0 1 1 1 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 1 0 1 1 0 0 1 0 1 1 1 0 1 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 1 0 +1 0 0 +1 0 1 0 0 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0 1 0 1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 0 0 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 1 0 0 0 0 0 1 0 1 1 0 1 1 1 1 0 0 0 0 0 1 +0 0 1 +0 0 0 0 0 1 0 1 1 0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 0 0 1 1 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 +1 0 0 +1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 1 1 0 0 1 1 0 1 1 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 +0 1 0 +1 1 1 1 1 0 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 1 0 1 1 1 1 0 1 1 1 0 0 1 0 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 0 0 1 0 0 1 1 1 0 0 1 1 0 0 0 0 1 0 0 1 1 1 1 0 1 0 1 1 0 0 1 1 0 0 1 +1 0 0 +1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 0 0 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 1 0 1 0 0 0 1 1 +0 1 0 +0 1 1 0 0 1 0 1 0 1 1 0 0 0 0 0 0 1 0 1 0 1 0 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0 0 1 1 1 1 1 0 0 1 1 1 0 0 1 0 1 0 1 1 1 1 0 1 1 1 0 1 1 1 1 1 0 1 1 1 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 1 1 1 0 0 1 0 0 0 0 1 1 0 1 +0 0 1 +0 1 1 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 1 1 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 1 1 0 0 1 0 0 0 1 0 1 0 1 1 1 1 1 0 1 1 1 1 0 0 0 0 1 0 0 0 1 +0 1 0 +1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 0 1 1 0 1 0 0 0 1 1 1 1 1 0 1 1 0 0 1 0 0 1 1 0 1 0 1 0 1 0 0 1 0 1 1 1 0 0 1 0 1 0 1 1 1 1 1 0 1 1 1 0 0 1 1 0 0 1 1 1 1 0 1 1 1 1 1 +0 0 1 +0 1 0 1 1 0 1 0 1 1 1 0 0 1 0 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 0 1 0 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 +0 0 1 +1 1 0 1 0 1 0 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 0 1 0 1 0 0 0 0 1 1 0 0 1 1 1 1 0 1 1 1 0 1 1 0 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 1 1 1 1 1 0 1 0 0 0 0 1 0 1 1 0 0 1 +0 1 0 +0 0 0 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 1 0 0 1 1 1 0 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 +0 0 1 +1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 1 0 0 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 +1 0 0 +1 1 1 1 1 0 1 1 0 1 0 1 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 1 0 1 1 1 0 1 1 0 1 0 1 0 0 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 0 0 1 0 0 0 1 1 1 1 0 0 1 1 0 1 0 1 0 1 0 0 1 1 0 1 1 0 0 0 0 0 1 0 1 1 1 0 0 1 1 +0 0 1 +1 0 1 0 1 1 1 1 1 0 0 1 0 1 1 1 1 1 1 0 1 1 0 1 0 1 0 1 1 1 1 0 0 0 1 1 0 0 0 1 1 0 1 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 0 1 0 0 1 1 1 1 0 0 0 0 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 1 0 1 1 1 0 1 0 0 0 0 1 0 +0 0 1 +1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 1 1 0 1 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 1 0 0 0 1 1 1 0 0 1 1 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 0 1 0 1 0 1 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 1 +0 0 1 +0 1 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 1 1 1 0 1 1 1 0 1 0 0 1 0 0 1 0 1 1 0 0 0 1 0 1 0 1 1 1 0 1 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 +0 0 1 +1 0 1 0 0 1 1 1 1 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 0 0 1 1 1 1 1 1 0 1 0 0 0 0 1 0 1 0 1 0 0 1 1 0 1 1 1 1 0 1 0 0 0 1 0 0 0 1 1 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 1 0 0 1 0 1 1 0 1 0 0 1 0 0 1 1 0 0 1 0 +0 0 1 +1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 0 0 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 0 0 0 1 1 0 0 1 0 0 1 1 1 1 0 0 1 0 1 0 0 1 1 1 1 0 0 1 0 1 0 1 0 0 1 1 1 1 0 0 1 0 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 0 0 1 1 +0 1 0 +1 1 0 1 0 1 0 0 1 1 0 0 1 1 1 1 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 1 1 1 1 1 1 0 0 0 1 0 1 0 1 1 1 0 1 1 0 1 1 1 0 0 0 1 0 1 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 0 1 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 +0 0 1 +1 1 0 0 0 0 1 1 1 1 1 0 0 1 0 0 0 0 1 1 1 0 1 0 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 0 0 1 0 0 1 1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 1 0 1 0 1 0 0 1 0 1 +0 1 0 +0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 0 1 0 1 1 0 0 0 0 0 1 1 1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 0 1 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 1 0 0 0 1 1 0 0 1 1 1 0 0 1 1 0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 1 1 1 0 1 0 0 1 0 1 0 0 1 1 +1 0 0 +0 1 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 1 1 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 1 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 1 1 0 +1 0 0 +1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 1 0 0 0 1 1 0 1 1 0 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 0 1 0 1 1 1 1 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 1 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 +0 0 1 +0 0 1 1 1 0 0 1 0 1 0 1 1 1 0 0 0 0 1 0 1 0 0 0 0 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 0 1 1 0 0 0 1 0 0 0 1 0 0 1 1 1 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 1 1 0 0 1 1 1 0 1 1 1 0 1 1 0 0 0 0 1 1 1 1 1 0 1 1 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 0 1 1 1 0 +1 0 0 +1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 1 0 0 0 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 1 1 0 0 0 0 1 1 +0 0 1 +0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 0 0 0 0 0 +0 1 0 +1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 1 1 1 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 1 1 0 0 0 1 0 1 0 1 0 0 0 0 1 0 1 1 0 1 1 1 0 1 1 1 0 1 0 1 1 0 0 1 1 1 0 1 0 1 1 1 0 0 0 0 0 1 1 1 0 1 1 0 0 1 1 1 1 1 0 1 0 0 0 0 1 1 0 0 1 0 1 0 1 0 1 0 0 +0 0 1 +0 0 0 1 0 0 0 1 0 1 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 0 0 0 1 1 1 1 0 1 1 0 0 0 1 1 0 1 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 +0 0 1 +0 1 1 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 1 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1 0 0 1 1 0 1 1 1 0 1 0 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 0 0 1 0 1 0 1 1 0 1 1 +0 1 0 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 0 0 0 1 1 0 1 0 1 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 1 0 +0 0 1 +0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 1 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 1 1 0 1 1 0 1 1 0 1 0 0 1 1 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 +1 0 0 +1 0 0 1 0 0 0 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 0 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 0 1 0 0 0 0 1 1 1 1 0 1 1 0 0 1 1 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 +1 0 0 +1 1 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 1 1 0 1 1 1 1 0 0 0 0 0 1 1 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 1 0 1 1 0 1 0 0 1 0 0 1 1 1 1 0 0 +0 0 1 +0 0 0 0 1 0 0 1 1 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 1 1 1 0 1 1 0 0 0 1 0 0 1 1 1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 1 1 0 1 0 0 0 0 0 1 1 0 1 1 0 0 1 0 0 1 1 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 1 1 1 0 1 0 0 0 0 0 +0 1 0 +0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 1 1 1 0 0 0 0 1 0 1 1 0 0 1 1 0 1 0 0 0 1 0 1 0 1 0 0 0 1 0 +1 0 0 +0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 1 1 0 0 1 0 0 0 0 1 1 1 0 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1 0 1 0 1 +0 1 0 +0 1 0 0 1 0 1 1 1 1 1 1 0 0 0 1 1 1 1 0 0 1 0 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 0 1 1 1 1 1 1 0 1 0 0 1 1 1 1 1 0 0 1 1 1 1 0 1 0 0 0 0 0 1 0 1 1 1 1 0 1 1 0 1 0 0 1 1 1 0 +0 1 0 +1 0 1 1 0 0 1 1 1 1 0 1 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 1 1 0 1 1 0 0 1 1 0 1 1 0 0 1 0 1 1 0 1 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 1 1 1 0 1 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 0 1 1 1 +0 0 1 +1 0 1 0 0 0 1 1 1 0 0 0 1 1 1 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 1 0 0 0 0 1 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 0 1 0 1 1 0 1 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 1 1 0 0 0 +1 0 0 +0 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 0 1 1 0 0 1 0 1 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 0 0 0 1 0 1 1 0 0 1 1 1 0 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 1 0 1 1 1 0 1 1 0 1 0 1 0 1 1 1 1 0 1 1 1 1 0 0 0 0 +0 0 1 +0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 1 1 0 0 1 0 0 1 1 1 0 1 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 1 1 0 1 1 1 1 0 0 1 0 0 0 0 1 1 1 0 0 0 1 0 1 0 0 0 1 0 0 0 1 1 1 0 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 1 +0 1 0 +1 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 0 0 1 0 1 0 0 1 1 1 0 1 0 0 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 0 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 0 1 1 0 1 0 0 1 1 1 1 0 1 0 0 0 0 0 0 1 1 0 1 1 1 0 +0 0 1 +1 0 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 1 1 0 0 1 1 1 1 0 1 1 0 0 0 1 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 0 1 0 1 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 +1 0 0 +0 0 0 0 1 0 1 0 1 0 1 1 1 0 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 1 0 0 0 1 0 1 0 1 0 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 1 +0 0 1 +1 1 1 1 0 1 0 0 1 1 1 1 1 0 0 0 0 1 0 0 1 1 1 1 1 0 1 1 0 1 0 1 0 1 0 0 0 0 0 1 1 0 1 0 1 1 1 1 1 0 1 0 0 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 0 1 1 0 1 1 1 0 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 0 0 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 1 0 0 1 0 1 1 1 +0 0 1 +0 1 1 0 1 1 1 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 0 1 1 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 0 1 1 1 0 1 1 0 0 0 0 1 1 1 0 1 1 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 +1 0 0 +0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 1 1 1 0 1 1 0 1 0 0 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 1 0 1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 0 1 0 1 0 0 1 +1 0 0 +0 1 1 0 0 0 0 1 0 1 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 1 1 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 0 1 1 1 0 0 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 1 +0 1 0 +1 1 1 1 0 0 0 1 1 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 0 1 1 0 0 1 1 1 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 1 1 0 1 0 0 1 +0 1 0 +1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 0 1 1 0 0 1 0 0 0 1 0 1 1 0 1 1 0 1 0 0 1 1 1 0 1 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 0 0 1 0 1 1 1 0 0 1 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 0 0 1 1 1 1 0 1 0 0 0 1 1 1 0 0 0 0 0 0 1 0 1 1 0 1 0 +1 0 0 +1 0 1 0 1 0 1 0 0 0 0 1 1 0 1 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 0 1 1 0 0 1 0 0 +0 1 0 +1 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 0 1 1 0 0 0 0 1 1 0 1 0 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 0 1 0 1 0 0 0 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 0 0 0 1 0 1 1 1 0 0 0 1 +1 0 0 +0 0 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 1 1 0 1 0 1 0 0 1 0 1 1 1 1 0 0 0 1 1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 1 0 1 1 0 1 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 +0 1 0 +0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 0 1 1 0 1 0 1 0 0 0 0 1 0 1 1 0 0 0 1 1 0 0 1 1 0 1 1 1 1 0 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 1 0 0 0 0 1 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 0 0 0 0 1 0 0 0 0 +1 0 0 +1 0 1 0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0 0 1 0 0 0 0 1 0 1 1 1 0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 1 0 0 1 1 1 0 0 +0 0 1 +1 1 1 0 1 1 0 0 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 +0 1 0 +1 1 1 1 1 1 1 1 0 1 1 0 0 1 0 0 0 1 1 1 1 1 0 1 0 0 0 1 0 0 0 0 0 1 0 1 0 1 0 1 1 0 0 0 0 1 0 0 0 1 1 1 1 0 0 0 0 0 1 0 1 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 1 1 1 1 1 0 1 0 1 1 1 0 1 0 0 1 1 1 1 1 +0 0 1 +0 1 0 0 1 1 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 1 0 1 0 1 0 1 0 0 1 1 1 1 1 0 1 1 1 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 0 0 1 1 0 0 1 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 1 1 0 1 0 1 0 0 0 0 1 1 0 +0 1 0 +1 1 0 0 1 1 0 1 1 1 1 1 0 1 0 1 0 1 1 1 1 1 0 0 0 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 0 1 1 0 1 1 0 1 0 0 1 0 0 1 1 1 0 0 1 0 1 0 0 1 0 1 1 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 0 0 1 1 0 0 1 1 1 1 0 1 1 1 0 0 1 1 1 1 0 0 1 0 1 +0 1 0 +1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 1 1 0 1 1 0 0 0 0 1 0 0 0 0 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 0 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 0 1 1 0 0 1 1 0 0 1 0 1 0 0 1 1 1 1 1 1 0 +0 1 0 +1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 1 1 0 0 1 1 0 1 1 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 +0 1 0 +1 0 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 1 1 0 0 0 1 0 1 1 0 0 0 0 1 1 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 0 1 0 1 1 1 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 +0 0 1 +1 0 1 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 1 1 1 1 0 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 +1 0 0 +1 1 1 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 0 1 +1 0 0 +1 0 1 1 1 1 0 0 0 1 0 0 1 0 1 1 1 1 1 1 1 0 0 1 0 1 0 1 0 0 0 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 1 1 0 1 0 0 0 1 0 1 1 0 1 1 1 0 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 0 0 0 0 1 0 0 1 1 0 0 1 1 1 0 1 1 1 0 +0 0 1 +0 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 1 0 1 0 0 0 1 1 0 1 0 0 1 0 1 0 0 0 0 1 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 1 0 1 0 1 1 0 1 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 +1 0 0 +0 1 0 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 1 0 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 1 0 0 0 0 1 1 0 0 1 1 1 0 1 1 0 1 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 0 0 1 1 1 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 +1 0 0 +1 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 0 1 0 1 0 0 0 0 1 1 1 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 1 0 0 0 1 1 1 0 0 0 0 0 1 0 0 1 0 1 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0 1 1 1 1 0 1 1 1 1 0 0 0 0 0 0 0 +0 0 1 +0 1 0 1 0 0 0 1 1 1 1 1 0 0 0 0 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 0 1 0 0 1 1 0 1 1 1 1 1 0 1 0 0 0 1 0 0 +0 0 1 +1 1 0 1 0 1 0 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 0 0 1 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 0 1 1 1 1 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0 1 0 1 1 1 1 1 1 0 0 1 1 0 1 +0 0 1 +1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 1 0 0 1 1 1 0 0 1 0 0 0 1 0 1 0 0 0 1 1 1 1 0 1 1 1 1 0 0 1 1 1 0 1 1 1 0 0 0 1 1 1 0 1 0 0 0 0 1 0 1 1 0 1 1 0 0 1 1 1 0 1 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 0 1 0 1 0 0 +1 0 0 +0 0 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 1 0 1 0 0 1 1 1 1 0 1 0 1 0 1 0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1 0 1 0 0 1 0 0 0 0 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 0 0 0 0 1 1 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 +0 1 0 +1 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 1 1 0 1 1 1 0 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 1 1 1 0 1 0 1 0 0 0 0 1 0 0 1 1 1 0 1 1 1 0 1 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 0 +0 0 1 +0 0 1 1 1 1 0 1 0 1 1 0 1 0 0 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 1 0 1 0 0 0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 0 0 0 1 +0 1 0 +1 0 1 1 1 0 0 1 0 1 0 0 1 1 0 0 1 1 1 0 1 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 1 1 1 0 1 1 0 1 1 0 1 0 1 1 0 1 0 0 1 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 1 1 1 0 0 0 1 1 1 0 +1 0 0 +1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 1 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 0 0 +1 0 0 +0 1 0 0 1 1 0 0 0 1 1 1 0 0 1 0 0 1 0 1 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 1 0 1 1 0 0 0 0 0 0 1 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 1 0 0 1 1 1 0 1 1 +1 0 0 +0 1 0 0 1 1 1 1 0 1 0 1 0 1 1 0 1 0 0 1 0 0 0 1 0 1 0 1 0 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 0 0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 1 0 0 1 1 1 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 0 1 0 0 0 0 1 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0 1 1 +0 0 1 +0 0 1 1 0 1 1 0 0 1 1 0 1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 1 1 1 1 1 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 0 0 1 1 1 1 0 1 0 1 0 1 1 1 0 0 0 0 1 1 1 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 1 +0 0 1 +1 0 1 0 0 1 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 0 1 1 1 1 0 1 0 0 0 0 1 0 0 1 1 1 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 0 1 0 1 0 1 1 0 0 0 1 1 0 0 0 0 0 1 +0 0 1 +1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 1 1 0 1 1 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 0 1 1 0 0 1 0 0 0 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 0 0 0 0 0 1 1 0 1 1 0 0 +0 1 0 +0 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 1 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 0 1 1 1 1 1 0 1 0 1 0 1 0 0 1 0 1 1 1 1 0 1 0 1 0 1 1 1 0 0 0 1 0 1 0 1 0 1 1 0 0 0 1 1 0 +1 0 0 +0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0 0 1 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 1 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1 0 0 +0 0 1 +1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 0 0 1 1 0 1 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 1 1 1 1 1 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0 +0 1 0 +1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 1 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 +0 1 0 +0 0 0 1 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 0 0 1 1 1 0 1 0 1 0 1 1 0 0 1 0 0 0 1 1 0 0 0 1 0 1 1 0 1 0 0 0 1 1 1 1 0 1 0 1 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 0 1 1 1 1 1 1 1 0 0 1 +0 0 1 +0 1 0 1 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 0 0 1 1 1 1 0 0 1 1 1 0 1 1 1 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 1 0 1 1 1 0 1 0 0 0 0 1 0 1 1 1 1 0 1 0 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 1 0 +0 0 1 +0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 0 0 1 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 1 0 0 1 1 0 1 1 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 +0 1 0 +0 1 1 0 1 1 1 0 1 0 0 0 0 1 1 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 1 0 0 0 1 1 0 0 0 1 1 0 1 1 1 0 0 0 0 1 0 1 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 0 0 0 1 0 0 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 0 0 0 0 +0 0 1 +1 0 1 1 0 0 0 0 0 1 0 0 1 1 1 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 +0 0 1 +1 1 0 1 0 0 1 1 0 0 1 1 1 1 1 0 0 0 1 0 1 1 1 1 1 1 1 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 0 0 1 1 0 0 1 1 1 0 1 0 0 0 1 0 0 0 1 1 1 1 0 1 0 0 0 1 1 0 0 1 0 1 1 1 1 0 0 1 0 1 1 0 0 1 1 1 0 0 1 1 0 1 0 0 +0 1 0 +1 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 1 0 0 0 1 1 1 1 1 0 1 0 1 1 1 0 1 0 0 0 1 0 0 1 1 1 1 1 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 1 0 0 0 0 1 1 0 0 1 0 1 1 0 1 1 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 1 0 1 0 1 +0 0 1 +0 1 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 1 1 1 0 1 0 0 1 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 +1 0 0 +0 0 1 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 1 0 1 0 1 0 0 1 0 0 0 1 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 1 1 +1 0 0 +1 1 1 0 0 0 0 0 1 1 0 1 1 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 1 1 1 0 1 0 0 1 1 0 1 1 1 1 0 0 0 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 0 1 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0 1 0 1 1 1 0 0 0 0 1 1 1 1 1 0 1 1 0 1 0 1 0 1 0 0 0 0 0 1 1 0 1 1 0 1 0 1 +0 0 1 +1 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 1 0 1 0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 0 1 1 1 1 0 1 1 1 0 1 0 1 1 0 1 1 0 0 1 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 0 +0 0 1 +0 1 0 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 0 0 1 0 1 1 1 1 1 0 1 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 1 0 1 1 1 1 0 1 0 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 0 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 1 0 1 0 1 0 1 1 0 1 0 1 1 0 0 0 1 +0 0 1 +1 1 0 0 0 0 0 1 0 1 0 0 0 1 1 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 0 0 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 0 1 1 1 1 0 0 0 1 1 1 0 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 0 1 0 0 0 1 0 1 0 1 0 1 0 0 1 1 1 +1 0 0 +1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1 0 1 1 1 0 0 0 0 0 0 0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 1 0 1 1 1 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 1 0 0 1 1 1 0 0 1 1 0 +0 1 0 +0 1 1 0 1 1 1 0 1 1 0 0 0 1 0 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 0 0 1 0 1 0 1 1 1 0 1 0 0 1 0 1 0 1 0 0 1 0 0 0 0 1 0 0 1 1 1 0 1 1 1 1 0 1 0 1 1 1 0 1 0 0 0 +0 0 1 +0 1 1 0 0 0 0 1 1 0 1 0 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 1 0 0 1 0 1 0 1 0 1 0 0 0 1 0 0 +0 0 1 +1 0 1 0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 1 1 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 0 0 0 1 0 0 1 1 0 0 1 1 1 +0 1 0 +1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 1 1 0 0 1 1 1 0 1 1 1 0 1 0 0 1 1 0 1 1 1 0 1 0 0 1 1 0 1 1 1 0 0 1 1 0 0 1 0 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 0 0 1 1 0 1 1 0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 0 0 +1 0 0 +1 0 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 1 1 1 1 0 0 0 1 1 1 0 1 0 1 1 0 0 0 1 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 +1 0 0 +0 1 0 1 1 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1 1 0 1 0 +0 1 0 +0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 0 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 0 0 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0 0 1 1 1 0 0 1 1 1 0 0 1 0 0 0 +0 0 1 +1 0 0 1 1 1 1 1 0 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 1 1 0 1 1 0 0 1 0 0 0 1 1 1 0 0 1 0 0 0 1 0 1 1 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 1 0 1 1 +0 1 0 +1 0 1 0 0 0 0 1 0 0 0 0 0 1 0 1 1 1 1 0 1 1 0 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 0 0 1 0 0 1 1 1 1 0 0 0 0 0 1 0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 0 1 1 1 0 1 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 0 0 1 1 1 1 1 0 1 1 1 +0 0 1 +0 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0 1 1 0 1 0 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 0 1 0 1 0 1 0 1 1 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 0 0 1 1 1 0 1 0 1 0 1 0 0 1 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1 0 1 0 1 0 0 1 1 1 1 0 +1 0 0 +1 0 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 1 1 1 1 0 0 0 1 1 1 0 1 0 1 1 0 0 0 1 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 +1 0 0 +0 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 1 1 0 1 1 0 1 1 1 1 0 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 0 0 1 1 0 1 0 1 0 0 1 0 0 0 0 1 1 1 0 0 1 0 1 0 1 0 1 0 0 0 1 0 0 +0 1 0 +0 0 0 0 1 1 0 1 0 0 0 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 1 0 0 0 0 0 1 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 1 1 1 0 0 0 0 0 0 1 1 1 +0 1 0 +0 1 1 1 0 0 0 0 0 1 1 0 1 1 0 0 1 1 0 1 0 1 1 1 0 1 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 1 1 0 0 0 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 1 0 1 0 0 1 1 0 1 1 1 0 1 1 0 0 0 0 1 0 1 1 1 0 1 0 0 1 1 1 0 0 0 1 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 +0 0 1 +0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 0 1 1 1 1 0 0 1 0 0 0 0 1 0 0 1 1 1 0 1 0 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 +0 1 0 +0 1 1 0 0 0 1 1 1 0 1 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 0 1 0 1 1 1 0 1 1 0 0 0 0 0 1 1 0 1 1 1 0 1 1 1 0 0 1 1 0 1 0 1 1 1 0 0 0 1 0 0 1 0 0 1 1 1 0 1 0 1 1 1 0 1 0 0 1 1 0 +0 0 1 +1 0 0 1 0 0 1 1 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 0 0 1 0 1 1 1 1 0 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 1 1 1 1 1 0 +0 1 0 +0 0 0 0 0 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 0 1 0 1 1 1 1 1 1 1 0 1 0 1 1 0 0 0 0 1 1 1 0 1 1 1 1 0 0 1 1 1 0 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0 1 1 1 0 1 1 1 0 0 1 0 1 0 1 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 1 +0 0 1 +0 1 0 1 0 1 1 0 1 1 1 0 1 1 0 1 0 1 1 1 1 1 1 1 0 1 0 1 0 1 0 0 1 1 0 1 1 0 1 0 1 0 1 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 1 0 1 0 1 1 0 1 1 0 0 0 0 1 0 1 0 0 1 1 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 1 1 1 0 0 1 0 1 0 1 1 1 0 1 0 1 1 0 1 0 +0 0 1 +1 1 0 0 0 0 1 0 0 0 1 1 1 0 0 1 0 0 1 0 0 0 1 1 1 0 0 0 1 1 1 1 1 1 1 0 1 0 0 0 1 1 1 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 0 1 0 1 0 0 1 1 0 0 0 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 0 0 0 0 1 +0 1 0 +1 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 0 1 1 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 0 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 0 1 1 1 1 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 +0 0 1 +0 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 1 0 0 1 1 1 1 1 1 1 0 1 0 1 0 1 1 1 1 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 0 1 0 1 1 0 0 1 1 1 0 1 1 1 1 1 1 0 1 1 1 0 0 1 0 0 +1 0 0 +0 1 1 1 1 0 1 1 0 1 0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 0 1 1 0 1 1 1 1 1 1 0 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 1 1 1 0 1 1 0 1 0 1 1 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 0 1 0 1 1 1 1 0 1 1 0 1 0 0 1 1 1 1 1 1 0 1 0 1 +1 0 0 +1 0 0 0 1 1 1 0 1 0 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0 1 0 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 0 1 1 0 1 1 1 0 1 0 0 1 0 1 0 1 0 0 1 1 0 1 1 1 1 1 0 0 1 1 1 1 0 1 0 1 0 1 1 0 0 1 0 1 1 0 0 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 1 0 1 0 +0 0 1 +1 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 1 0 0 0 1 0 1 1 1 1 1 1 1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 0 0 1 0 0 0 1 1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 1 0 0 0 0 1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 1 1 1 0 1 0 0 0 1 1 1 0 1 1 0 1 0 0 +0 0 1 +0 0 0 0 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 0 1 1 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0 1 0 1 1 0 0 1 1 0 0 1 1 1 1 1 0 0 1 1 1 0 0 1 0 1 1 1 +0 1 0 +1 0 1 0 1 1 0 0 0 1 1 0 0 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0 0 1 1 1 1 0 1 0 0 1 0 0 1 1 0 1 0 0 1 0 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 0 0 0 1 1 0 +0 1 0 +0 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 1 0 1 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0 0 1 0 0 +0 1 0 +1 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 0 0 0 1 1 1 1 1 1 0 1 0 1 1 0 1 0 1 0 1 0 0 0 1 1 1 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 1 1 1 0 1 1 +1 0 0 +0 0 0 1 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 1 0 1 0 0 1 0 1 0 1 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 0 1 1 1 0 0 0 1 0 0 0 0 +0 1 0 +0 0 1 1 0 0 1 0 1 0 1 0 0 0 1 1 0 0 0 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 1 1 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 +0 1 0 +0 0 0 1 1 0 1 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 0 1 0 0 1 0 1 1 1 0 1 0 1 0 0 0 0 0 0 1 1 1 1 0 0 1 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 1 1 1 1 1 0 1 0 0 0 1 1 1 1 +1 0 0 +1 0 0 1 1 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 1 1 1 1 0 0 0 1 0 +1 0 0 +0 1 1 0 1 1 1 0 1 1 1 0 0 1 0 0 1 1 1 1 0 0 0 1 0 0 0 0 1 0 0 1 0 1 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 1 0 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 0 0 1 1 0 1 0 1 1 0 0 0 0 +1 0 0 +0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 1 1 0 1 1 1 0 1 0 1 1 1 1 0 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 0 0 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 1 0 0 0 1 1 1 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 +0 0 1 +0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 0 0 1 1 0 0 0 0 1 0 1 1 1 0 1 0 0 1 0 0 0 1 1 0 1 1 1 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 1 0 +0 1 0 +1 0 1 0 0 0 0 1 0 1 1 0 1 0 0 1 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 1 0 1 0 1 1 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 0 1 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 +1 0 0 +1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 1 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 +0 1 0 +1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 1 1 1 1 0 0 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 1 0 0 0 0 0 1 +1 0 0 +1 0 1 0 0 0 1 1 1 1 1 1 0 1 0 0 1 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 1 1 0 0 1 +1 0 0 +0 0 0 0 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 1 1 0 0 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 0 1 1 0 0 0 0 1 1 0 0 1 0 0 0 1 0 1 1 0 1 1 0 1 0 0 +0 1 0 +0 0 0 0 0 1 0 0 1 1 1 0 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 0 0 0 0 0 1 1 1 1 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 +0 1 0 +1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 1 0 1 1 0 0 1 0 1 1 1 1 0 1 1 0 0 1 1 1 1 1 0 0 1 1 1 1 1 1 0 1 1 1 0 1 0 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 0 0 1 0 0 0 1 1 1 1 1 1 1 0 1 0 0 1 1 1 1 1 1 1 1 0 1 0 1 1 1 0 1 1 1 0 1 0 1 0 0 0 1 1 1 +1 0 0 +0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 0 0 1 0 0 0 0 1 0 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 1 1 1 0 1 1 1 0 1 0 0 1 0 0 0 1 0 1 0 0 1 1 1 0 1 1 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 +1 0 0 +1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 1 1 1 0 0 1 0 0 0 0 1 1 1 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 1 0 1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 1 0 0 0 0 0 0 0 1 0 1 1 1 0 1 0 0 1 1 0 0 0 1 0 1 0 1 0 +0 1 0 +0 1 0 1 1 0 1 1 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 0 0 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 1 0 1 0 1 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 1 0 0 1 0 1 0 1 1 0 1 1 0 1 0 0 0 1 1 1 1 0 +0 1 0 +1 0 0 1 1 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 1 0 1 0 1 1 0 1 1 0 1 0 0 1 0 1 1 1 0 1 1 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0 1 1 1 0 1 0 1 1 1 0 0 0 0 1 0 0 +1 0 0 +1 1 1 0 1 0 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 0 1 0 0 1 1 1 1 1 1 0 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 1 1 0 1 1 0 1 0 1 0 1 1 0 0 0 1 1 1 1 1 0 1 0 1 0 1 0 0 1 0 0 0 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 +0 0 1 +1 1 1 1 0 0 0 0 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0 0 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 1 0 1 0 0 0 0 0 1 1 1 0 0 0 1 0 0 1 1 1 0 1 1 1 0 0 1 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 +0 0 1 +1 0 0 0 0 1 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 1 1 1 1 0 0 0 1 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 1 1 1 0 1 0 0 1 0 0 0 1 0 1 1 0 0 1 1 1 1 1 0 0 1 0 0 0 1 1 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 1 0 +0 1 0 +0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 1 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1 1 1 1 0 0 0 1 1 1 0 1 1 1 1 0 1 0 1 0 1 0 0 0 1 1 1 1 1 0 0 1 1 0 1 1 1 0 1 1 0 1 1 0 1 0 0 0 1 0 0 0 1 1 0 1 0 0 1 1 1 1 0 +0 0 1 +1 0 0 1 1 1 1 0 1 0 1 0 0 1 1 0 0 1 0 1 0 0 0 0 1 1 1 0 0 0 1 0 1 1 0 1 1 0 0 1 0 0 1 1 0 0 0 0 1 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 0 1 0 1 0 0 0 1 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 1 1 0 0 1 1 0 0 0 0 0 1 1 1 1 0 1 1 0 0 1 0 +0 0 1 +1 0 1 0 1 0 0 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 0 0 1 0 1 1 1 0 0 0 1 1 0 1 1 0 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 1 0 1 1 0 1 1 1 1 1 1 1 0 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 1 1 1 0 0 1 0 0 0 0 1 0 0 0 1 0 1 0 0 1 0 0 1 1 1 1 0 0 1 0 0 1 0 0 0 0 1 +0 0 1 +0 0 0 0 0 1 0 1 1 1 0 0 0 1 0 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0 1 1 1 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 1 1 1 0 1 0 1 1 0 0 1 0 1 1 1 1 0 0 1 +0 0 1 +0 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1 1 1 0 0 1 1 0 0 0 1 0 1 0 0 1 1 1 1 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 1 1 0 1 0 0 0 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 1 0 1 1 1 0 1 1 1 +0 0 1 +1 0 1 0 0 0 1 1 1 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 0 1 0 1 0 0 0 1 1 0 1 1 1 0 0 0 0 0 1 1 1 1 0 1 1 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 0 0 0 0 1 1 1 1 0 1 0 0 0 1 0 1 1 1 1 1 1 1 +0 0 1 +1 0 1 0 0 0 0 0 0 0 1 1 0 1 1 0 1 1 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0 1 0 0 1 0 0 +0 0 1 +0 1 1 0 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 0 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 1 1 1 +1 0 0 +0 1 0 0 1 1 1 0 1 0 0 0 1 0 1 0 0 1 0 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 0 0 1 0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 1 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 1 1 +0 0 1 +0 1 1 1 1 1 0 1 1 1 1 1 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 0 0 1 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 0 1 1 0 1 0 1 0 0 1 1 0 1 1 1 0 0 0 1 0 0 0 0 1 0 1 0 1 0 1 1 0 0 0 0 1 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 0 1 0 0 1 0 0 0 0 1 1 0 1 0 +0 0 1 +1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 1 0 1 1 1 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 1 0 0 1 1 1 1 1 0 1 1 0 1 0 0 0 1 1 0 0 0 0 1 0 1 0 1 0 1 1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 +0 1 0 +0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 0 1 0 1 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 0 1 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 +1 0 0 +0 0 1 1 0 0 0 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 1 0 1 +0 0 1 +0 1 1 0 1 1 1 0 1 1 1 0 0 1 0 0 0 1 1 1 1 0 1 0 1 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 1 0 1 1 1 1 1 1 1 0 0 1 1 0 0 1 0 0 0 0 1 1 1 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 +0 1 0 +0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 1 0 0 1 1 0 1 1 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 0 1 1 1 1 1 0 1 1 0 1 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 1 1 1 0 0 1 1 1 0 1 0 1 0 1 0 1 0 1 1 0 0 1 1 1 0 0 1 0 1 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 0 1 +1 0 0 +0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 1 0 1 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 1 1 1 0 0 1 1 0 1 1 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 0 1 0 1 0 1 1 0 1 1 1 0 0 0 1 0 0 +1 0 0 +1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0 0 1 1 0 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 0 1 0 1 1 1 1 0 1 0 1 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 1 0 1 1 0 +0 1 0 +0 1 0 0 0 0 0 1 1 1 1 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 0 0 0 1 1 1 1 1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 1 1 1 0 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 1 1 0 0 0 1 1 0 0 1 0 0 0 0 1 1 1 1 1 +0 1 0 +1 1 1 1 0 0 1 0 1 1 0 0 0 1 0 0 1 1 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 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 1 1 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 1 0 1 0 0 +0 0 1 +0 0 1 1 0 0 1 1 1 0 1 0 0 1 0 0 0 1 1 0 1 0 1 1 1 0 1 0 1 1 0 1 0 1 0 1 1 0 0 1 0 0 0 1 0 0 1 1 1 1 1 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 1 1 0 0 1 1 1 0 1 0 0 1 1 0 +1 0 0 +1 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 1 1 1 1 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0 1 1 0 0 1 0 1 0 1 0 0 0 0 0 1 0 0 1 1 1 1 0 1 1 1 1 0 0 1 1 0 0 0 1 1 0 1 0 0 1 0 1 0 1 0 1 +0 1 0 +1 0 0 0 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 0 0 1 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 1 1 1 1 1 0 +0 1 0 +0 1 1 0 0 1 1 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 +0 1 0 +0 0 0 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 0 1 0 1 1 0 1 1 1 0 1 1 1 0 1 0 1 1 0 0 0 0 1 +0 1 0 +1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 1 0 1 0 1 1 0 1 0 0 0 +0 1 0 +1 1 0 1 0 1 1 1 0 1 1 1 0 1 0 0 0 1 0 1 0 1 0 1 1 1 0 0 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 0 0 0 1 1 0 0 1 1 0 1 1 0 0 1 1 0 0 0 1 0 0 0 1 0 0 1 1 1 0 +0 0 1 +1 0 0 0 0 1 1 0 1 1 0 1 0 1 1 0 0 1 1 0 1 1 0 0 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0 1 0 0 0 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 1 1 1 1 0 1 0 1 1 0 1 0 1 0 1 1 0 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 +0 1 0 +0 0 0 1 0 1 0 1 1 1 1 1 1 0 1 1 1 0 1 0 0 1 0 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 1 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 0 0 1 1 0 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 +1 0 0 +1 0 0 0 0 0 0 1 0 1 1 1 1 1 0 0 0 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 1 1 0 1 1 1 0 0 1 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 1 0 0 1 1 0 0 1 1 1 0 0 0 1 1 0 1 1 1 0 1 1 1 0 0 1 1 0 1 1 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 1 1 1 1 0 1 1 1 1 +0 1 0 +1 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 0 1 0 1 0 0 1 1 0 0 1 1 1 0 0 0 1 0 0 0 1 0 0 1 1 1 0 0 1 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 0 0 0 1 0 1 0 1 0 0 1 1 1 1 0 1 0 0 0 1 0 0 1 1 0 1 0 +0 0 1 +1 1 1 1 1 0 0 1 0 0 0 1 1 1 0 1 0 0 0 1 1 1 0 0 0 0 0 1 0 1 0 0 0 1 1 1 1 1 0 1 0 1 0 1 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 1 1 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 1 0 0 1 1 1 1 0 1 +0 0 1 +1 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 1 1 0 1 0 1 1 0 0 0 1 0 1 0 1 1 1 0 0 0 1 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 1 0 1 0 1 0 0 0 0 1 0 0 0 1 1 1 0 1 0 0 0 1 0 0 +0 0 1 +0 0 0 0 1 1 0 1 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 0 1 1 0 1 0 0 0 1 1 0 1 1 0 1 0 1 1 0 1 1 0 0 0 1 1 1 1 1 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 +0 0 1 +0 0 0 0 0 0 1 0 0 1 0 1 1 1 1 0 0 1 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 0 0 1 1 1 0 1 1 1 0 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0 1 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 +0 1 0 +0 0 0 1 0 1 0 1 1 0 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 1 0 1 1 1 1 1 0 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 0 0 1 0 1 1 1 0 1 1 1 1 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 +0 1 0 +0 1 0 0 1 0 0 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 1 0 1 1 0 1 0 1 1 0 1 0 0 0 0 1 0 0 0 1 1 1 1 0 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 0 1 0 1 1 1 0 1 1 1 0 1 0 1 1 0 0 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 0 0 1 1 1 0 1 +1 0 0 +1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 1 0 0 1 1 1 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 1 1 1 0 +0 1 0 +1 0 1 0 0 0 1 0 1 0 1 1 1 1 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 0 0 0 0 0 1 1 0 1 1 1 0 0 1 1 0 1 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1 1 +1 0 0 +1 1 0 0 0 0 1 1 1 0 1 0 1 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 1 1 0 1 1 0 1 0 1 1 0 0 0 1 1 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 0 0 0 0 1 0 0 0 0 +0 0 1 +1 0 0 1 0 1 0 1 1 1 0 1 0 1 0 0 0 0 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 0 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 1 1 1 0 1 0 0 0 1 0 0 1 1 1 0 0 1 1 1 1 0 1 0 +0 1 0 +0 0 1 1 0 0 0 1 0 0 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 1 0 0 0 0 0 0 1 1 1 1 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 0 1 0 1 0 1 0 1 0 1 1 0 0 0 0 0 1 0 0 1 1 1 1 1 0 1 1 0 0 1 1 1 0 1 1 0 1 0 1 1 1 +0 1 0 +1 1 1 0 1 0 1 1 1 0 0 1 0 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 0 1 1 0 1 1 1 0 1 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 +1 0 0 +1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 0 1 0 1 0 0 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 +0 0 1 +0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 1 1 1 +1 0 0 +1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 1 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 1 1 1 0 1 1 1 0 1 0 1 1 0 0 0 0 1 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 1 +0 0 1 +0 1 0 0 1 1 0 0 0 1 1 0 1 0 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1 0 1 1 0 0 0 1 0 0 1 0 1 0 0 1 1 1 0 1 1 1 0 0 1 0 0 0 0 1 1 0 1 0 1 1 0 0 0 1 1 0 1 1 0 0 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 0 1 1 0 1 1 0 1 0 0 1 1 0 1 1 1 0 1 1 1 0 0 0 0 1 1 1 +1 0 0 +0 1 0 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 1 1 1 0 1 1 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 0 0 1 1 1 1 0 1 1 1 1 1 1 +0 0 1 +0 0 1 1 1 0 1 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 0 1 1 1 1 0 1 0 0 0 1 1 1 0 1 0 0 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 0 0 0 0 1 0 0 +1 0 0 +1 1 1 1 1 1 0 1 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 1 1 0 1 1 1 0 1 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 1 0 0 0 1 0 1 1 1 0 0 1 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 0 0 1 1 0 1 1 1 0 1 0 0 1 0 1 1 1 1 0 1 0 0 1 1 0 0 1 1 0 +0 0 1 +1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 1 1 0 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 1 1 0 0 0 0 0 0 1 0 0 1 0 0 1 1 0 0 0 1 1 1 +0 0 1 +1 0 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 1 1 1 0 1 0 1 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 1 1 0 1 1 1 1 1 0 0 1 0 1 0 0 0 1 1 1 1 1 1 1 1 0 1 1 0 1 1 0 0 0 0 1 0 1 1 1 0 1 0 1 1 0 1 1 0 0 0 1 1 1 1 0 0 0 0 1 0 1 0 1 1 1 0 1 +0 0 1 +1 0 0 0 1 1 1 0 0 1 1 0 0 0 1 0 0 1 0 0 0 0 1 1 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 1 1 0 0 0 1 1 1 1 0 0 1 0 1 0 1 0 1 1 1 0 1 0 0 1 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 0 1 0 1 0 +0 0 1 +1 0 0 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 1 1 0 1 1 1 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 +1 0 0 +0 1 1 0 1 1 0 0 0 0 0 0 1 0 1 1 0 1 1 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 0 1 1 1 0 0 0 1 1 1 1 1 0 0 1 1 0 1 0 1 0 1 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 1 1 0 1 +0 0 1 +0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 0 0 1 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 1 0 0 1 1 0 1 0 1 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 +0 1 0 +0 1 0 0 0 1 0 1 0 0 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 0 1 1 1 0 0 0 0 1 1 1 0 1 0 1 1 0 1 0 0 0 1 1 1 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 1 1 0 0 1 0 0 1 0 0 +0 1 0 +0 0 0 1 1 0 0 0 1 1 1 0 1 1 0 0 1 1 0 0 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 0 0 0 1 0 1 1 0 1 0 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 0 1 0 1 1 1 0 0 0 0 1 0 0 1 0 1 0 0 0 1 1 0 0 +0 1 0 +0 1 0 0 0 0 1 0 1 1 1 1 0 0 0 1 0 0 1 1 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 1 1 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 +0 1 0 +1 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 0 0 0 1 1 0 1 0 1 0 1 0 0 1 1 1 1 0 1 0 0 1 0 1 0 0 0 1 1 1 0 0 0 1 0 0 0 1 0 0 0 1 1 1 1 0 1 0 1 0 0 0 0 1 1 1 0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 1 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 +0 0 1 +1 0 0 0 1 1 1 0 0 1 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 1 1 1 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 0 0 1 1 +0 1 0 +0 1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 1 1 1 1 0 1 0 1 1 0 0 1 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 +0 0 1 +1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 0 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 0 1 +0 0 1 +0 1 0 0 0 0 0 1 0 0 1 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1 0 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 1 1 0 1 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0 0 1 0 0 1 1 1 1 0 0 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 +1 0 0 +1 0 0 0 1 1 1 0 0 1 1 1 0 1 0 1 0 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 1 1 1 1 0 0 0 0 0 0 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 1 1 0 1 1 1 1 0 0 0 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 1 1 +1 0 0 +0 1 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 0 1 0 1 0 0 1 0 1 0 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 0 0 0 1 0 0 1 1 0 0 1 1 1 0 1 0 0 1 0 0 0 0 1 1 1 1 0 0 1 1 1 0 1 0 1 1 0 1 1 0 0 1 1 0 0 1 0 1 0 0 0 1 1 1 1 0 1 0 1 0 0 1 0 0 1 0 1 1 1 0 1 1 1 0 0 1 +0 0 1 +1 0 0 0 0 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 0 1 0 0 1 0 1 1 1 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 1 1 1 1 1 1 1 0 0 1 0 1 +0 0 1 +1 1 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 1 0 0 1 0 1 1 0 1 1 1 0 0 0 0 1 0 1 0 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 1 1 +0 0 1 +0 0 1 1 0 1 1 0 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 1 1 0 0 1 0 1 0 1 0 0 1 1 1 1 0 1 0 0 0 1 0 0 1 0 1 1 1 1 1 0 1 0 1 1 0 0 1 1 0 0 0 0 1 1 1 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 1 0 1 1 0 0 0 1 1 +0 0 1 +1 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 0 1 1 0 1 1 1 1 0 1 1 1 0 1 0 1 1 1 0 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 1 0 1 0 1 0 1 1 1 1 0 1 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 1 0 0 1 1 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 1 0 +0 0 1 +1 1 1 1 1 0 1 1 0 1 0 1 0 0 1 1 1 1 1 0 0 1 0 0 0 1 0 1 1 0 0 1 0 1 1 0 1 1 1 1 0 1 1 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 0 1 0 1 1 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 1 0 1 1 0 1 0 0 1 1 1 1 0 +0 0 1 +1 0 0 1 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 1 0 0 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 0 0 0 0 0 0 1 1 +1 0 0 +0 0 1 1 0 0 0 0 0 1 0 0 1 0 1 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 1 1 0 1 0 0 1 1 1 0 0 0 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1 0 0 1 1 1 0 0 1 0 0 0 1 1 0 1 1 0 0 1 1 0 1 0 0 0 0 1 1 1 0 1 0 0 0 1 1 1 0 1 0 1 1 +0 0 1 +1 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 0 0 1 1 0 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 1 1 0 0 0 1 1 0 1 0 0 0 0 1 1 1 0 0 0 +0 0 1 +1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 1 0 1 1 0 1 1 1 0 0 0 0 1 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 +0 1 0 +0 1 1 0 1 0 0 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 0 1 1 0 1 1 1 0 0 1 0 0 1 1 1 1 1 0 1 0 1 0 0 1 0 1 1 0 1 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 1 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 0 0 0 0 1 0 0 1 1 1 0 0 1 0 1 1 0 +0 0 1 +1 1 1 1 1 0 1 1 1 0 0 1 0 1 0 1 0 1 1 0 1 1 1 1 1 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 1 0 0 0 1 1 0 1 0 1 0 1 1 1 1 0 1 1 1 0 0 1 0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 1 1 0 0 1 1 0 1 0 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 +0 0 1 +1 0 0 1 1 1 1 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 0 1 0 1 1 1 1 0 1 0 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 0 1 1 0 1 0 1 1 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 +1 0 0 +0 0 1 1 0 1 0 0 0 1 1 1 1 0 1 0 1 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 1 0 0 1 0 0 0 0 0 1 1 0 0 1 1 1 1 0 1 0 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 0 0 0 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 1 0 1 0 1 1 1 1 0 0 1 +0 0 1 +0 0 1 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 1 0 1 0 0 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 0 0 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 1 0 0 0 0 0 0 1 +0 1 0 +0 1 0 0 1 1 0 0 1 0 0 0 1 1 1 0 1 1 0 1 1 1 0 1 0 0 0 1 0 1 1 1 0 1 0 0 0 0 0 1 0 1 0 1 1 0 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 0 0 +0 0 1 +0 1 0 1 1 0 1 0 0 1 1 0 1 1 1 0 0 1 1 1 1 1 1 1 0 0 1 1 0 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1 0 0 1 0 +0 1 0 +0 1 1 0 1 0 1 0 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 1 0 1 0 0 0 0 0 1 1 0 1 1 1 1 1 0 0 1 1 0 0 1 0 0 1 0 1 0 1 0 0 0 0 1 0 1 0 1 0 1 1 0 0 0 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 0 1 0 1 0 0 0 0 1 0 0 0 0 0 +0 0 1 +1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 0 0 0 1 1 0 1 0 0 1 1 0 0 0 1 0 1 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1 0 +0 0 1 +1 1 0 0 0 1 1 0 1 0 1 1 1 1 1 0 1 1 0 0 1 1 1 0 0 1 0 1 1 0 1 1 0 0 0 1 0 0 1 1 1 0 0 0 0 1 0 0 0 1 1 0 1 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 0 1 1 0 1 1 1 0 0 1 1 1 1 0 1 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 1 1 +0 0 1 +1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 1 0 0 0 0 1 1 0 1 1 0 1 0 1 0 0 0 0 1 0 1 1 0 0 0 0 1 1 0 1 1 1 0 1 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1 0 1 +0 0 1 +1 1 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 +0 1 0 +0 1 0 0 0 0 1 0 0 1 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 1 0 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 1 1 1 0 1 0 1 0 0 0 1 1 0 0 1 1 +1 0 0 +1 0 0 1 0 1 0 1 1 0 1 1 1 0 0 0 0 0 1 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 1 1 0 0 0 0 0 1 0 1 1 0 0 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1 1 0 0 1 0 0 1 1 +0 0 1 +0 0 1 0 1 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 0 1 1 1 0 1 0 1 0 0 0 1 1 0 1 0 0 1 0 1 1 1 0 1 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 1 0 1 1 1 1 0 0 1 0 1 1 1 0 0 0 1 0 0 0 1 1 1 1 0 0 1 0 0 1 +0 0 1 +0 1 1 0 1 0 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 1 0 0 0 0 0 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 1 0 +0 0 1 +1 0 1 0 1 1 1 1 0 1 0 1 0 0 0 1 1 1 1 1 0 0 0 0 1 1 0 0 0 1 0 1 1 0 1 0 0 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 1 0 0 1 1 1 0 1 1 0 1 0 1 0 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 +1 0 0 +1 1 1 1 0 0 0 1 1 0 1 0 0 0 0 0 1 0 0 1 1 1 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 1 1 0 0 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 1 1 1 0 1 1 0 0 0 1 1 0 0 1 1 0 1 0 0 1 0 1 0 1 1 0 0 1 0 1 1 1 1 0 0 0 1 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 +0 0 1 +1 1 1 1 0 0 0 1 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1 0 1 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 0 0 0 1 0 0 0 1 0 0 1 1 0 0 1 1 1 0 1 1 0 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 +1 0 0 +0 0 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 0 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 1 0 1 1 0 1 1 1 1 0 1 0 1 1 0 1 1 0 1 0 0 0 1 1 1 0 1 1 0 0 1 1 0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 0 1 1 1 0 1 1 0 0 1 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 +0 0 1 +0 0 1 1 1 1 0 0 1 0 0 1 1 1 1 1 1 1 1 0 1 1 0 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1 0 0 1 0 1 0 1 1 1 1 1 1 1 1 0 1 0 1 1 0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 1 0 1 +0 0 1 +1 0 0 0 0 0 0 1 1 1 0 0 1 0 0 1 0 0 0 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1 0 0 1 0 1 1 1 0 1 0 0 0 0 1 1 1 1 1 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 1 1 0 0 0 1 +1 0 0 +0 1 0 1 0 0 1 1 1 1 1 0 1 0 0 0 1 1 1 1 1 0 1 0 1 0 0 1 1 0 1 1 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 1 1 1 1 1 0 0 1 1 1 0 1 0 0 0 1 1 1 0 1 1 1 0 1 1 1 0 0 1 0 0 0 0 1 1 1 1 1 0 1 0 1 0 0 0 0 1 0 1 1 0 1 1 1 1 0 1 0 0 1 1 +0 0 1 +1 1 1 0 1 0 1 0 1 0 0 0 1 1 1 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 1 1 1 1 0 1 0 +0 0 1 +0 1 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 1 0 0 1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 1 1 0 1 0 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 +1 0 0 +0 0 0 0 1 1 0 1 0 0 1 1 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 0 1 0 0 1 1 1 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 0 0 0 1 1 1 0 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0 +1 0 0 +0 1 0 1 1 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 0 1 1 0 0 1 0 1 0 1 0 0 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 0 1 1 0 0 0 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 0 0 1 0 1 1 1 1 1 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 1 0 1 1 +0 0 1 +1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 1 0 1 0 0 1 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1 1 1 0 1 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0 +0 1 0 +0 0 0 1 0 0 1 1 1 0 0 1 0 0 0 1 0 0 1 0 1 0 1 1 1 0 1 0 0 1 1 0 1 1 1 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 1 1 0 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 0 1 0 0 0 1 1 0 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 1 1 1 0 +1 0 0 +0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 0 0 1 1 0 0 0 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 1 0 1 0 1 0 1 0 0 1 1 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 1 0 +1 0 0 +1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 1 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 1 0 1 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 +1 0 0 +0 1 0 1 0 0 0 0 0 1 0 1 0 0 1 1 1 0 1 1 1 1 0 1 0 0 0 1 0 1 1 1 0 0 0 1 0 1 1 0 1 0 1 1 0 0 1 1 0 1 1 1 1 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 1 1 1 0 1 0 0 0 0 1 1 1 1 0 1 0 1 1 0 1 1 1 1 1 1 1 0 1 0 1 1 1 1 0 1 0 1 1 1 0 1 1 1 0 0 0 1 1 1 1 0 +1 0 0 +1 1 1 0 1 0 1 0 0 1 1 1 0 1 1 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 0 0 1 1 1 1 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 0 0 1 1 1 1 0 1 0 0 1 0 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 1 +0 1 0 +0 0 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 0 1 1 0 0 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 +1 0 0 +1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 1 0 1 1 1 1 1 0 1 1 1 1 0 1 0 1 1 1 1 0 1 1 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 1 1 1 1 1 1 1 +0 0 1 +1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 1 0 0 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 1 0 1 1 0 1 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 1 0 0 1 1 1 1 1 1 1 0 0 1 1 +1 0 0 +0 1 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 1 1 0 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 0 1 1 1 1 0 1 1 0 0 1 1 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 1 1 0 0 1 0 1 1 0 1 1 1 1 1 0 0 0 1 1 1 1 1 0 1 1 0 1 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 0 1 1 0 1 +0 0 1 +0 0 1 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1 1 0 1 1 1 1 0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 1 1 +0 0 1 +1 0 0 0 1 1 0 1 1 1 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 1 0 0 1 1 1 1 1 0 0 1 0 1 0 1 1 0 1 0 0 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 0 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 1 0 1 1 1 0 1 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 1 0 1 0 1 0 1 1 1 1 0 1 1 +0 0 1 +0 0 1 1 0 0 0 1 0 1 0 1 0 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 +0 0 1 +1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 1 1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 0 1 0 1 1 0 1 1 0 1 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 1 0 1 1 1 0 0 0 1 1 0 0 1 0 +0 1 0 +1 1 1 0 0 1 0 0 0 0 1 1 1 0 0 1 1 1 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 0 1 0 0 1 0 1 0 0 0 0 +0 1 0 +1 0 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0 +1 0 0 +1 1 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 1 1 0 1 0 0 0 0 1 0 1 1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 0 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 +1 0 0 +1 0 0 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1 0 0 0 0 1 1 0 1 1 1 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 +0 0 1 +1 1 0 0 0 1 0 1 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 1 1 1 0 0 1 0 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 0 1 1 0 1 1 0 1 0 0 0 1 0 0 1 0 1 1 1 0 0 0 0 0 0 1 1 0 0 1 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 +0 0 1 +0 1 1 0 1 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 +0 1 0 +1 1 0 1 0 0 0 0 0 1 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 1 0 1 1 1 1 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 1 0 1 1 0 0 0 1 0 0 0 1 1 0 1 1 1 0 1 1 0 1 1 0 1 1 1 0 1 0 1 1 1 1 0 1 0 1 1 0 1 0 +0 0 1 +1 1 1 0 0 0 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 1 0 0 0 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 1 1 0 1 0 1 1 1 0 0 0 1 0 1 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 1 1 1 1 0 1 0 0 1 0 0 +0 1 0 +1 1 0 0 1 1 0 0 1 1 1 1 1 0 1 1 0 0 0 1 1 0 0 0 1 1 1 0 1 1 0 0 1 1 1 1 1 1 0 0 0 1 1 0 0 1 0 1 1 0 0 1 0 0 0 0 1 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 0 1 0 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 +1 0 0 +0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 1 1 1 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 1 1 1 0 0 1 1 1 1 0 0 0 0 0 1 0 0 0 0 1 1 1 0 1 1 1 0 0 0 +0 0 1 +1 1 1 1 0 0 0 0 1 0 0 1 0 1 1 0 0 1 0 0 0 0 1 1 1 1 0 0 0 1 1 0 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 1 1 0 0 1 0 0 0 1 0 0 0 0 0 1 1 1 0 1 0 1 0 1 1 0 0 1 0 1 1 0 1 1 1 1 1 0 1 0 1 1 0 0 1 1 1 0 +0 0 1 +0 1 1 1 1 0 0 1 1 1 1 0 1 1 1 0 0 0 0 1 1 0 1 0 0 0 0 1 0 0 1 1 0 1 0 1 1 0 1 1 0 1 1 0 1 0 0 0 0 1 0 0 1 1 0 0 0 1 1 0 1 0 0 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 1 0 0 1 0 0 1 0 1 1 1 0 1 1 1 0 0 1 0 0 1 0 1 1 1 1 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 1 +0 0 1 +1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 0 1 1 0 1 0 0 1 1 1 1 1 0 0 0 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 0 +0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 0 1 0 0 0 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 1 0 0 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 +0 0 1 +1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 1 +0 1 0 +0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 1 0 1 1 0 1 1 0 0 0 1 1 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 1 0 1 0 1 0 0 0 0 1 0 0 0 1 0 0 1 0 1 1 1 0 1 1 1 1 1 1 0 0 0 1 0 0 1 0 1 1 1 1 1 0 0 1 0 0 0 1 1 0 1 0 1 1 1 1 1 1 1 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 1 1 1 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 1 1 0 1 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 1 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 1 1 1 0 0 0 1 1 0 0 1 1 +0 1 0 +1 0 1 0 0 1 1 0 0 1 1 1 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 1 1 0 0 1 1 0 1 0 0 1 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 +0 0 1 +0 1 0 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 0 1 1 0 1 0 0 0 1 1 0 1 1 1 0 0 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 +0 1 0 +0 1 0 1 0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 0 1 0 1 1 1 1 1 0 0 0 1 1 0 0 1 0 1 1 1 0 0 0 1 1 1 0 0 0 1 0 1 0 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 1 1 0 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 1 1 1 0 1 0 1 1 0 0 0 1 0 1 +0 0 1 +0 1 0 1 1 1 1 1 1 0 1 1 0 0 1 1 1 0 1 1 1 0 1 0 1 1 1 1 1 1 0 1 0 1 1 0 0 1 0 1 0 0 0 1 0 0 0 0 1 1 1 1 1 1 0 1 0 1 1 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 1 1 1 0 1 1 1 1 +0 0 1 +1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 0 1 1 0 1 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 0 1 1 1 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 0 +0 1 0 +1 0 1 1 0 1 1 1 0 1 0 1 1 1 0 0 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 1 0 1 1 0 0 0 1 0 1 1 0 1 0 1 1 0 0 1 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 0 1 1 1 1 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 0 1 1 1 0 1 1 1 1 1 1 1 +1 0 0 +0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 1 1 0 1 0 0 1 0 1 0 1 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 1 1 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 1 0 1 +0 0 1 +1 1 1 0 0 0 1 1 1 0 1 1 0 0 0 1 0 1 1 1 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 0 1 1 1 1 0 1 0 0 1 1 1 0 0 1 1 0 0 1 0 1 1 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 1 1 0 0 0 1 1 1 0 1 1 0 0 0 1 0 1 1 1 0 0 0 1 1 1 0 0 0 1 0 1 0 1 +0 0 1 +1 0 1 1 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 1 1 1 0 0 0 0 1 0 1 1 0 1 1 1 1 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0 1 1 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 0 0 0 0 1 1 1 0 0 0 0 1 0 1 1 0 0 0 1 1 1 0 1 1 0 1 1 1 0 0 1 1 +0 0 1 +1 0 1 0 1 0 1 0 0 0 0 0 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 0 1 1 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 1 1 0 1 1 1 0 1 0 0 1 0 0 0 1 1 1 0 0 0 1 0 0 0 0 1 1 1 0 0 0 +0 0 1 +0 1 1 1 1 0 1 0 1 1 1 1 0 1 1 1 1 0 1 0 0 1 1 0 1 0 0 0 0 1 1 1 0 0 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 0 1 1 1 1 0 1 1 1 0 0 1 1 0 1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 +1 0 0 +1 1 1 0 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 0 1 0 0 1 1 0 0 1 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 1 0 0 1 0 0 1 0 0 0 1 0 1 0 1 1 0 0 0 1 1 1 0 0 1 0 1 1 1 1 0 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 1 0 1 1 0 0 1 1 +0 0 1 +1 0 0 0 1 1 1 0 0 0 0 1 0 0 1 1 1 0 1 0 0 1 1 1 1 0 1 0 1 0 0 1 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 0 0 1 0 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 0 0 1 1 0 1 0 1 1 0 0 1 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 +1 0 0 +1 1 1 0 1 1 1 1 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 1 0 0 1 0 1 0 0 1 1 0 0 1 0 0 0 1 0 1 1 0 0 1 1 1 0 0 0 1 0 1 1 0 1 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 +1 0 0 +1 1 0 0 0 1 0 1 1 1 0 0 1 1 0 1 0 1 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 1 1 1 0 0 1 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 0 0 0 1 0 1 1 1 0 0 1 1 0 0 0 0 0 1 0 1 1 1 0 1 1 0 0 1 0 0 1 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 1 1 0 0 0 1 +0 1 0 +1 0 0 1 1 0 0 1 1 1 1 1 0 0 1 1 1 0 1 0 0 0 0 1 0 1 0 1 0 1 1 1 0 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 1 0 1 1 1 1 1 1 1 0 1 0 1 1 0 0 1 0 0 1 1 1 1 1 0 1 0 1 1 1 0 1 0 +0 0 1 +1 1 1 0 0 0 1 1 1 1 1 0 1 0 1 0 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 0 0 1 1 0 1 0 1 1 0 1 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 +1 0 0 +0 1 1 0 0 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 1 1 0 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 1 0 0 1 0 0 0 0 0 0 1 1 1 1 1 0 0 1 1 1 0 0 0 1 0 1 1 1 1 1 0 0 1 1 1 0 0 1 0 1 1 1 1 1 +0 0 1 diff --git a/lib/ann/fann/datasets/kin32fm.test b/lib/ann/fann/datasets/kin32fm.test new file mode 100644 index 0000000..f6bd8c4 --- /dev/null +++ b/lib/ann/fann/datasets/kin32fm.test @@ -0,0 +1,4097 @@ +2048 32 1 +0.865610 0.505274 0.347428 0.225534 0.354921 0.552486 0.225779 0.466419 0 0.500000 0 0.500000 0 0 0 0.500000 0.919703 0.500000 0.874641 0.867322 0.879382 0.889299 0.500000 0.500000 0.892676 0.500000 0.890567 0.500000 0.500000 0.500000 0.851037 0.870029 +0.418140 +0.205272 0.611681 0.726687 0.827612 0.268008 0.611422 0.370336 0.432594 0.500000 0.500000 0 1 0.500000 0.500000 0.500000 0 0.500000 0.882419 0.902444 0.878616 0.874468 0.500000 0.900155 0.877962 0.500000 0.500000 0.891156 0.914631 0.886417 0.500000 0.846554 0.879832 +0.573900 +0.225352 0.491517 0.326220 0.586081 0.864862 0.730597 0.141377 0.318489 0 1 0 1 0.500000 0 1 0.500000 0.893698 0.878998 0.500000 0.500000 0.889465 0.500000 0.869037 0.865901 0.906511 0.897653 0.886590 0.500000 0.500000 0.500000 0.862869 0.500000 +0.514972 +0.715360 0.854028 0.251180 0.189365 0.459946 0.109817 0.300375 0.608293 0.500000 0.500000 0 1 1 0 1 1 0.500000 0.500000 0.500000 0.879754 0.500000 0.859707 0.872808 0.883728 0.500000 0.879443 0.500000 0.867001 0.500000 0.847490 0.886900 0.901852 +0.436842 +0.161952 0.520905 0.651734 0.293970 0.147668 0.458542 0.518836 0.282187 0.500000 0.500000 1 1 1 0 0 0 0.859426 0.861448 0.500000 0.883957 0.886107 0.887089 0.500000 0.500000 0.867642 0.864667 0.849896 0.500000 0.844871 0.500000 0.874813 0.878528 +0.561219 +0.844081 0.263936 0.171388 0.720581 0.611063 0.733018 0.835748 0.220763 0 0.500000 0.500000 0.500000 0 1 0 1 0.832884 0.917015 0.500000 0.894745 0.904520 0.880615 0.903370 0.500000 0.500000 0.500000 0.500000 0.500000 0.866543 0.861911 0.500000 0.500000 +0.422661 +0.835097 0.470601 0.799442 0.417942 0.548557 0.603204 0.650508 0.495141 0.500000 0 0.500000 1 1 1 1 0.500000 0.890853 0.500000 0.896099 0.860379 0.882704 0.873825 0.910892 0.500000 0.500000 0.500000 0.500000 0.500000 0.887774 0.500000 0.878381 0.915415 +0.544524 +0.692509 0.800151 0.344502 0.647297 0.122307 0.618106 0.704737 0.713596 1 0 1 0.500000 1 0.500000 1 1 0.862842 0.873886 0.887606 0.867139 0.908321 0.500000 0.884428 0.861105 0.886618 0.874900 0.500000 0.867922 0.500000 0.500000 0.881436 0.500000 +0.629784 +0.198248 0.153512 0.273553 0.212235 0.833627 0.566210 0.489361 0.891082 0.500000 0 1 0.500000 0 0.500000 0.500000 0.500000 0.897115 0.880522 0.865133 0.500000 0.900423 0.500000 0.500000 0.500000 0.500000 0.871202 0.873485 0.500000 0.889399 0.500000 0.500000 0.500000 +0.318148 +0.389329 0.447424 0.862674 0.756560 0.506098 0.593784 0.733245 0.650590 0 0 1 1 1 1 0 1 0.874123 0.860586 0.856223 0.886330 0.500000 0.904802 0.872489 0.888452 0.889115 0.868827 0.891940 0.500000 0.500000 0.500000 0.500000 0.840302 +0.639031 +0.515542 0.114588 0.476613 0.242089 0.188046 0.680485 0.310487 0.153594 1 0.500000 0 0 0.500000 0 1 0 0.882249 0.874615 0.858513 0.500000 0.500000 0.870655 0.500000 0.869537 0.880652 0.908387 0.500000 0.873258 0.500000 0.500000 0.500000 0.888961 +0.449398 +0.636935 0.361599 0.789677 0.302222 0.440455 0.519620 0.648688 0.305351 0 0.500000 1 1 0.500000 0.500000 0.500000 1 0.866280 0.864458 0.883796 0.880254 0.874476 0.877477 0.894517 0.895472 0.500000 0.871214 0.500000 0.897035 0.500000 0.500000 0.887244 0.500000 +0.699491 +0.620068 0.886647 0.481310 0.770015 0.239402 0.632856 0.616798 0.322475 1 0 0 1 0.500000 0.500000 1 0.500000 0.886703 0.897731 0.869932 0.500000 0.500000 0.896947 0.891476 0.500000 0.896188 0.876408 0.500000 0.856596 0.500000 0.877402 0.903082 0.872333 +0.597210 +0.733378 0.478181 0.190707 0.608962 0.618274 0.325987 0.655466 0.609828 1 1 0.500000 0 0 1 0.500000 0.500000 0.885937 0.881003 0.877661 0.887282 0.500000 0.880146 0.852261 0.877157 0.840118 0.500000 0.500000 0.882836 0.873739 0.500000 0.500000 0.853032 +0.609311 +0.870725 0.879387 0.858364 0.325710 0.812644 0.710844 0.151251 0.669380 1 0 1 1 0.500000 1 0.500000 0 0.853659 0.500000 0.876713 0.879965 0.848405 0.892502 0.897849 0.892484 0.876297 0.864206 0.500000 0.500000 0.887251 0.500000 0.893901 0.500000 +0.651623 +0.581776 0.511011 0.758518 0.605838 0.119953 0.248578 0.444757 0.830582 0.500000 1 0.500000 0 0 1 0.500000 0 0.500000 0.900617 0.500000 0.880823 0.859464 0.880175 0.500000 0.500000 0.500000 0.500000 0.901840 0.500000 0.882443 0.924815 0.897090 0.899644 +0.425515 +0.436671 0.128635 0.571251 0.420377 0.676361 0.604162 0.743915 0.785511 1 0 1 1 0.500000 0.500000 0 0.500000 0.884035 0.907209 0.500000 0.500000 0.500000 0.860560 0.860397 0.870495 0.846448 0.500000 0.500000 0.500000 0.885291 0.500000 0.500000 0.500000 +0.384208 +0.320073 0.459831 0.578013 0.459822 0.430921 0.286017 0.882253 0.231977 1 0 0.500000 0.500000 1 1 0 0 0.500000 0.883222 0.500000 0.929693 0.893535 0.886173 0.890506 0.862905 0.500000 0.500000 0.875690 0.500000 0.881779 0.500000 0.500000 0.897435 +0.567997 +0.599077 0.895165 0.437988 0.660549 0.452211 0.513705 0.439943 0.721433 0.500000 0.500000 1 0 0 1 0.500000 1 0.869729 0.500000 0.500000 0.500000 0.884896 0.902592 0.500000 0.883074 0.500000 0.500000 0.890536 0.500000 0.879374 0.874845 0.893814 0.883207 +0.470427 +0.236207 0.528029 0.379199 0.599782 0.728942 0.329942 0.727437 0.630765 1 0 0.500000 0 0 0 1 0.500000 0.886555 0.866776 0.864182 0.500000 0.874234 0.899660 0.857389 0.906117 0.881011 0.500000 0.500000 0.885912 0.500000 0.885278 0.500000 0.880315 +0.629338 +0.310780 0.277132 0.349800 0.883279 0.678102 0.259337 0.468592 0.627857 0.500000 0.500000 1 0 0.500000 0.500000 0.500000 0.500000 0.880198 0.881697 0.896726 0.500000 0.908002 0.847965 0.882142 0.920859 0.500000 0.500000 0.876652 0.500000 0.500000 0.500000 0.500000 0.500000 +0.584239 +0.205390 0.182098 0.722072 0.859401 0.160582 0.700823 0.536424 0.686258 0.500000 0.500000 0.500000 1 0 1 0.500000 0 0.500000 0.900788 0.500000 0.854884 0.926450 0.500000 0.865654 0.500000 0.500000 0.861975 0.500000 0.500000 0.500000 0.900538 0.500000 0.500000 +0.267115 +0.102750 0.717040 0.284631 0.795706 0.823287 0.388449 0.857521 0.559224 1 0 0.500000 0.500000 0 0 0 0.500000 0.869351 0.500000 0.500000 0.874594 0.500000 0.894242 0.878281 0.883858 0.500000 0.500000 0.500000 0.500000 0.887453 0.500000 0.854114 0.500000 +0.311953 +0.842947 0.417421 0.590493 0.620149 0.639369 0.483073 0.802872 0.462044 0 0 0.500000 0 0.500000 0 0.500000 0 0.500000 0.500000 0.873224 0.500000 0.884239 0.874430 0.890348 0.887762 0.500000 0.871660 0.862999 0.500000 0.836263 0.500000 0.884243 0.863322 +0.436984 +0.757528 0.781716 0.894323 0.689534 0.394216 0.191105 0.107495 0.464073 1 1 0 1 0 1 0 0 0.870619 0.892639 0.920009 0.500000 0.500000 0.885400 0.854536 0.500000 0.500000 0.915601 0.886202 0.881528 0.850988 0.897832 0.500000 0.500000 +0.556486 +0.853047 0.560908 0.175603 0.365364 0.877293 0.859300 0.849688 0.898493 0.500000 1 0.500000 0 0 1 1 0.500000 0.874292 0.899934 0.500000 0.881075 0.878458 0.860770 0.890964 0.902023 0.500000 0.891730 0.885840 0.882276 0.882830 0.875962 0.500000 0.500000 +0.628203 +0.767566 0.687188 0.169977 0.198624 0.881682 0.235527 0.309844 0.554256 0.500000 0.500000 0.500000 0 1 0 0 0 0.500000 0.500000 0.892416 0.854569 0.500000 0.892920 0.870735 0.892832 0.883233 0.500000 0.500000 0.500000 0.857549 0.885685 0.500000 0.500000 +0.434169 +0.715721 0.531360 0.374429 0.434156 0.260387 0.525013 0.887743 0.493676 0.500000 0.500000 1 0 0 1 0 0.500000 0.876371 0.500000 0.866829 0.885133 0.860800 0.500000 0.872637 0.883373 0.882123 0.870768 0.859214 0.873219 0.500000 0.896235 0.500000 0.500000 +0.595051 +0.449084 0.762390 0.893863 0.155966 0.728550 0.134579 0.465376 0.167456 0 0.500000 0.500000 1 0 0.500000 0.500000 0 0.874403 0.883269 0.884125 0.500000 0.880488 0.500000 0.880517 0.869490 0.875340 0.906330 0.500000 0.886702 0.878941 0.895132 0.890394 0.903101 +0.782703 +0.143710 0.340026 0.616366 0.270393 0.689896 0.880063 0.227468 0.850876 1 1 0.500000 0 0 0 0.500000 0 0.500000 0.898859 0.884134 0.500000 0.500000 0.500000 0.854168 0.500000 0.500000 0.870222 0.846966 0.500000 0.500000 0.500000 0.874729 0.845717 +0.288575 +0.853330 0.515984 0.347391 0.397697 0.288326 0.489055 0.545276 0.652420 0.500000 0 0 0 0 1 0 1 0.875843 0.500000 0.890484 0.878673 0.889528 0.864751 0.911572 0.500000 0.500000 0.500000 0.500000 0.870677 0.896055 0.500000 0.500000 0.500000 +0.502005 +0.717719 0.505489 0.753957 0.753376 0.586042 0.205518 0.745482 0.713161 1 0.500000 1 0 1 0 0.500000 1 0.830769 0.500000 0.873230 0.500000 0.903706 0.863714 0.867365 0.500000 0.500000 0.500000 0.500000 0.865329 0.884123 0.885345 0.500000 0.500000 +0.347850 +0.655317 0.517092 0.568421 0.847817 0.652054 0.871136 0.584699 0.837757 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0 0.500000 0.887643 0.848996 0.867096 0.860063 0.894631 0.882229 0.875546 0.868100 0.500000 0.500000 0.886295 0.500000 0.882739 0.932877 0.887369 +0.665219 +0.620900 0.458801 0.874812 0.763391 0.109281 0.880829 0.295121 0.295104 1 0.500000 1 1 0 0.500000 0 0.500000 0.866409 0.882406 0.847084 0.908805 0.500000 0.500000 0.853210 0.855529 0.500000 0.500000 0.859651 0.865244 0.885697 0.867401 0.857588 0.500000 +0.544116 +0.164129 0.310665 0.750868 0.838000 0.474475 0.306112 0.229582 0.382649 0 1 0 1 0.500000 1 0 0 0.874140 0.500000 0.850240 0.500000 0.500000 0.873788 0.897317 0.500000 0.872282 0.500000 0.871246 0.909739 0.885663 0.942709 0.500000 0.880774 +0.620335 +0.799986 0.772809 0.802702 0.808663 0.191185 0.653142 0.755676 0.846540 1 0.500000 1 0 1 1 0 1 0.871504 0.881337 0.903251 0.894338 0.500000 0.500000 0.868506 0.883731 0.500000 0.861634 0.500000 0.874830 0.500000 0.881663 0.860290 0.929000 +0.633596 +0.304149 0.833503 0.878923 0.266493 0.756137 0.598709 0.308702 0.551821 0 0.500000 1 0 1 1 0.500000 0.500000 0.892174 0.500000 0.881657 0.887817 0.872130 0.872911 0.898232 0.869660 0.867827 0.500000 0.500000 0.859939 0.895784 0.892053 0.883253 0.867480 +0.694309 +0.745995 0.539942 0.611597 0.116031 0.730525 0.542314 0.477044 0.272396 1 1 1 0 1 1 0 1 0.903414 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.896163 0.500000 0.888724 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.058568 +0.424695 0.452944 0.836461 0.202439 0.199882 0.424525 0.791743 0.620490 1 1 1 1 0 0.500000 0 0 0.865097 0.876679 0.500000 0.866992 0.500000 0.874251 0.500000 0.500000 0.872578 0.500000 0.500000 0.500000 0.500000 0.900716 0.500000 0.886580 +0.315215 +0.333854 0.890615 0.758225 0.492087 0.298433 0.771701 0.577489 0.464749 1 1 1 0.500000 1 1 1 1 0.909228 0.889403 0.869569 0.500000 0.500000 0.896240 0.925729 0.500000 0.500000 0.500000 0.857488 0.885833 0.500000 0.500000 0.908833 0.874698 +0.525644 +0.388587 0.783493 0.368940 0.167066 0.886603 0.533240 0.767303 0.264770 0.500000 0 0 0 0 0.500000 1 1 0.500000 0.901715 0.867044 0.881727 0.908566 0.871321 0.871080 0.500000 0.500000 0.864108 0.500000 0.500000 0.500000 0.500000 0.883126 0.862107 +0.514648 +0.123190 0.249927 0.724580 0.609014 0.704413 0.865741 0.316950 0.779285 1 0.500000 1 0.500000 0.500000 1 1 1 0.500000 0.872476 0.500000 0.850391 0.876009 0.905419 0.859103 0.500000 0.500000 0.500000 0.899569 0.904904 0.868203 0.500000 0.500000 0.500000 +0.449730 +0.423445 0.234491 0.489235 0.380542 0.774030 0.515227 0.427111 0.262635 1 0.500000 0.500000 1 0 1 1 1 0.905006 0.870020 0.876922 0.861630 0.500000 0.500000 0.500000 0.898716 0.843897 0.500000 0.500000 0.894978 0.894070 0.865838 0.500000 0.500000 +0.495841 +0.405906 0.661036 0.631781 0.149612 0.328087 0.750350 0.129299 0.526557 0.500000 0 0 1 0.500000 0.500000 1 0.500000 0.885270 0.877503 0.897853 0.864126 0.500000 0.500000 0.884059 0.857352 0.856357 0.858916 0.500000 0.880349 0.890006 0.500000 0.876295 0.500000 +0.630936 +0.145023 0.800232 0.895496 0.405517 0.517509 0.370799 0.211473 0.823507 1 1 1 1 0.500000 0 0 0.500000 0.500000 0.500000 0.922826 0.915375 0.895828 0.500000 0.916065 0.872253 0.904931 0.880304 0.879588 0.500000 0.880147 0.500000 0.500000 0.500000 +0.451319 +0.112236 0.158082 0.282337 0.629311 0.235150 0.359760 0.286475 0.591960 0.500000 0 1 0.500000 1 1 0.500000 0 0.500000 0.500000 0.500000 0.875153 0.881728 0.856803 0.500000 0.889443 0.848610 0.862958 0.860064 0.500000 0.853122 0.878175 0.500000 0.500000 +0.485479 +0.596126 0.898417 0.701076 0.784928 0.490555 0.152521 0.423235 0.703321 0 0.500000 0.500000 0 0.500000 1 0.500000 1 0.889183 0.500000 0.849158 0.881919 0.872347 0.500000 0.500000 0.500000 0.869579 0.893772 0.500000 0.875032 0.870106 0.500000 0.885801 0.895850 +0.477586 +0.844836 0.164336 0.600468 0.271522 0.469104 0.435980 0.522130 0.431435 0 0 0.500000 0 1 0 0.500000 1 0.852816 0.901885 0.858949 0.500000 0.864454 0.874262 0.886567 0.831459 0.500000 0.500000 0.894018 0.871646 0.500000 0.500000 0.500000 0.500000 +0.500179 +0.419873 0.207535 0.236835 0.687548 0.614639 0.830531 0.527616 0.646858 1 1 1 0 0 0.500000 1 0 0.869735 0.500000 0.903279 0.905685 0.500000 0.893315 0.864465 0.500000 0.897483 0.500000 0.874370 0.500000 0.500000 0.500000 0.906421 0.883479 +0.475657 +0.666097 0.887767 0.899545 0.456705 0.843797 0.297502 0.311963 0.153805 0.500000 1 0 0 0 0 0 1 0.869613 0.500000 0.500000 0.937246 0.936245 0.885317 0.898557 0.879336 0.500000 0.893815 0.500000 0.500000 0.500000 0.897359 0.899520 0.858465 +0.522573 +0.618673 0.634976 0.235750 0.853447 0.887534 0.189447 0.241137 0.193439 0 0.500000 0.500000 1 0 1 1 0.500000 0.868896 0.856051 0.500000 0.904018 0.883801 0.882690 0.500000 0.908748 0.500000 0.883693 0.500000 0.500000 0.859026 0.500000 0.846773 0.924941 +0.471297 +0.213845 0.694726 0.461207 0.513261 0.179992 0.522070 0.229591 0.533147 1 0 0.500000 0 0.500000 0.500000 1 0.500000 0.885430 0.500000 0.881546 0.911591 0.500000 0.902639 0.888363 0.885037 0.886798 0.500000 0.852886 0.878573 0.500000 0.500000 0.500000 0.866673 +0.541039 +0.159249 0.702362 0.794091 0.889108 0.246201 0.493365 0.178843 0.415794 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.894210 0.902846 0.891393 0.874592 0.901565 0.882609 0.900740 0.500000 0.882922 0.865577 0.896446 0.907915 0.500000 0.907820 0.910954 0.500000 +0.741751 +0.376307 0.787842 0.654988 0.583223 0.829180 0.236599 0.716774 0.612907 0.500000 0.500000 1 0 0 0 1 1 0.500000 0.500000 0.918870 0.500000 0.901067 0.875767 0.915862 0.859248 0.500000 0.907700 0.500000 0.906471 0.500000 0.896121 0.850196 0.887097 +0.470345 +0.515638 0.121617 0.214649 0.612043 0.404614 0.547732 0.338803 0.869273 0.500000 1 1 0 0.500000 0 0.500000 0 0.904616 0.895564 0.861286 0.500000 0.900865 0.898913 0.880969 0.899709 0.500000 0.880852 0.500000 0.500000 0.500000 0.500000 0.875624 0.500000 +0.638074 +0.130795 0.870879 0.255859 0.424372 0.620198 0.670674 0.216469 0.791227 1 0 0 0.500000 1 1 0 0 0.863362 0.894730 0.870501 0.500000 0.500000 0.898139 0.500000 0.500000 0.500000 0.500000 0.898674 0.858823 0.500000 0.840246 0.500000 0.500000 +0.286448 +0.155660 0.380934 0.153489 0.692503 0.700406 0.721700 0.208587 0.318106 0 0.500000 0 1 0 0 1 1 0.880085 0.500000 0.500000 0.868398 0.876570 0.883513 0.500000 0.874416 0.500000 0.877147 0.867971 0.500000 0.500000 0.883911 0.910567 0.500000 +0.441752 +0.594259 0.703194 0.378379 0.418798 0.530068 0.254408 0.829141 0.368440 0.500000 0.500000 0 1 0 1 0.500000 0 0.856104 0.887754 0.500000 0.852283 0.880208 0.867408 0.922311 0.866821 0.500000 0.500000 0.500000 0.500000 0.872178 0.896754 0.841611 0.500000 +0.608369 +0.808000 0.255596 0.794653 0.737339 0.662796 0.608720 0.561065 0.420922 0 1 0 0.500000 0.500000 1 1 0 0.855971 0.500000 0.871479 0.874119 0.893952 0.500000 0.500000 0.881066 0.898372 0.907983 0.881674 0.874436 0.878102 0.500000 0.500000 0.500000 +0.545877 +0.352386 0.346007 0.337258 0.489697 0.135172 0.834192 0.456797 0.788466 1 1 0 1 0 0.500000 0 1 0.500000 0.863438 0.851679 0.860715 0.837132 0.874024 0.881638 0.920142 0.904945 0.893009 0.500000 0.900879 0.900425 0.500000 0.500000 0.500000 +0.639111 +0.257341 0.522069 0.208416 0.644507 0.434391 0.214275 0.720813 0.501000 0.500000 1 0.500000 0.500000 1 0.500000 0 0 0.869211 0.500000 0.896652 0.901444 0.875277 0.500000 0.918597 0.500000 0.890720 0.500000 0.500000 0.894901 0.500000 0.882518 0.878047 0.500000 +0.537041 +0.356475 0.268917 0.688827 0.509993 0.459184 0.110942 0.810230 0.128947 0 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.899462 0.500000 0.500000 0.879120 0.891424 0.857052 0.901248 0.867797 0.500000 0.889187 0.861784 0.500000 0.500000 0.500000 0.852813 0.874168 +0.545255 +0.892133 0.680416 0.753956 0.741104 0.734790 0.216373 0.782075 0.534133 0.500000 0 0 0.500000 1 0.500000 0.500000 0 0.886332 0.500000 0.889764 0.879910 0.891217 0.920016 0.900509 0.923766 0.500000 0.862623 0.884941 0.500000 0.500000 0.852767 0.851248 0.879635 +0.632213 +0.894421 0.737611 0.421643 0.359853 0.252275 0.188928 0.306352 0.256380 0.500000 0.500000 1 0 0.500000 0 1 1 0.904167 0.878707 0.909184 0.894012 0.906878 0.881396 0.874517 0.908017 0.500000 0.877941 0.500000 0.500000 0.876551 0.500000 0.500000 0.500000 +0.660376 +0.208284 0.828987 0.191173 0.437247 0.206867 0.220364 0.664941 0.668660 1 0 0 0.500000 0 1 1 0.500000 0.870938 0.910900 0.852611 0.849057 0.500000 0.850151 0.879589 0.500000 0.921198 0.500000 0.847489 0.500000 0.500000 0.882140 0.500000 0.500000 +0.518744 +0.281629 0.741438 0.754004 0.748885 0.318210 0.357372 0.146411 0.132454 1 1 0.500000 1 0 0.500000 0.500000 0 0.500000 0.847819 0.500000 0.891831 0.887424 0.890850 0.500000 0.884930 0.500000 0.500000 0.879082 0.500000 0.500000 0.885008 0.884014 0.500000 +0.436066 +0.743542 0.117316 0.729545 0.867895 0.506225 0.331955 0.162196 0.629098 1 0.500000 0.500000 0.500000 1 0.500000 1 0 0.891001 0.500000 0.892757 0.840226 0.903019 0.919979 0.904450 0.883657 0.500000 0.871303 0.500000 0.879741 0.500000 0.875433 0.500000 0.852632 +0.704132 +0.558082 0.679835 0.589834 0.743689 0.175178 0.414066 0.212604 0.629776 1 1 0.500000 0.500000 1 0.500000 0.500000 0 0.865870 0.859415 0.500000 0.859648 0.500000 0.869039 0.870869 0.500000 0.857259 0.857129 0.500000 0.500000 0.912846 0.879811 0.500000 0.500000 +0.441076 +0.638501 0.291671 0.718650 0.157639 0.838602 0.176246 0.759399 0.216246 0 1 1 1 0 0 0 0.500000 0.884335 0.898849 0.889697 0.865269 0.897591 0.828925 0.874727 0.500000 0.862160 0.500000 0.500000 0.895506 0.881096 0.500000 0.898296 0.500000 +0.675815 +0.887340 0.122214 0.644718 0.768730 0.237559 0.848442 0.765216 0.381949 0.500000 1 0 0 0 0 0.500000 0.500000 0.886803 0.500000 0.910627 0.849481 0.844709 0.900536 0.500000 0.500000 0.500000 0.500000 0.902070 0.902650 0.889568 0.500000 0.500000 0.500000 +0.362484 +0.463028 0.710915 0.549775 0.261027 0.872433 0.787630 0.301485 0.850204 1 1 0 1 0 1 0 0.500000 0.868940 0.864650 0.857804 0.500000 0.878796 0.500000 0.870700 0.500000 0.500000 0.500000 0.907261 0.886585 0.878995 0.863873 0.866383 0.871960 +0.639864 +0.804883 0.661797 0.630713 0.586830 0.647791 0.430092 0.758673 0.821511 0 0.500000 1 1 0 0.500000 0 1 0.500000 0.866118 0.500000 0.500000 0.500000 0.500000 0.873123 0.874465 0.874318 0.884115 0.902171 0.500000 0.864844 0.500000 0.897287 0.891412 +0.443777 +0.326273 0.674750 0.717630 0.603721 0.546556 0.572763 0.230288 0.244507 1 1 0 0.500000 0 0.500000 0 0.500000 0.500000 0.878347 0.895640 0.500000 0.500000 0.905112 0.898014 0.900114 0.500000 0.500000 0.890517 0.500000 0.898717 0.500000 0.857132 0.864142 +0.448213 +0.323096 0.875839 0.429094 0.781861 0.146250 0.615796 0.287849 0.474396 0.500000 1 0 0 0.500000 1 1 0 0.500000 0.500000 0.870869 0.936999 0.913956 0.868829 0.869930 0.500000 0.500000 0.500000 0.500000 0.880744 0.926802 0.904760 0.500000 0.891741 +0.481428 +0.352990 0.899888 0.621753 0.398839 0.280969 0.838300 0.703800 0.172457 0 0.500000 1 0 0.500000 1 0 1 0.500000 0.896789 0.866798 0.889649 0.500000 0.500000 0.872855 0.500000 0.848826 0.500000 0.884846 0.500000 0.901579 0.891210 0.911667 0.855388 +0.505803 +0.795461 0.721875 0.757957 0.786183 0.774130 0.599374 0.285897 0.465191 0 0.500000 0.500000 0 0 1 0 0.500000 0.837742 0.500000 0.864764 0.500000 0.500000 0.869704 0.846980 0.500000 0.882380 0.859239 0.500000 0.500000 0.500000 0.500000 0.880506 0.912871 +0.274433 +0.623169 0.200462 0.559802 0.793486 0.321127 0.583226 0.885674 0.128969 0.500000 0 1 0 0 1 0.500000 1 0.500000 0.866118 0.500000 0.500000 0.500000 0.895852 0.870701 0.863186 0.882909 0.898167 0.500000 0.500000 0.903557 0.500000 0.500000 0.500000 +0.263942 +0.208672 0.152078 0.180683 0.138769 0.484222 0.126334 0.291725 0.827204 0.500000 0.500000 0 0 0.500000 1 0.500000 0 0.876778 0.895993 0.500000 0.500000 0.867860 0.899306 0.884139 0.871377 0.500000 0.500000 0.860262 0.895552 0.500000 0.884557 0.500000 0.500000 +0.552538 +0.183753 0.535354 0.293372 0.505272 0.303532 0.856388 0.715790 0.875626 1 0.500000 0 0 0.500000 0 0.500000 0.500000 0.886793 0.500000 0.896751 0.880523 0.860685 0.894836 0.907638 0.500000 0.500000 0.500000 0.909201 0.500000 0.500000 0.864442 0.500000 0.902736 +0.473048 +0.529148 0.782352 0.386847 0.330760 0.884053 0.873581 0.883951 0.758116 0 0 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.888993 0.879349 0.500000 0.877010 0.914137 0.500000 0.500000 0.500000 0.500000 0.890288 0.500000 0.915214 0.848425 0.500000 0.500000 0.906321 +0.336837 +0.379533 0.609648 0.152720 0.571080 0.738958 0.671976 0.503900 0.442145 0 0.500000 1 0.500000 1 0.500000 0 0.500000 0.884449 0.854464 0.861705 0.889112 0.878352 0.899483 0.856997 0.873787 0.500000 0.500000 0.500000 0.500000 0.907125 0.876563 0.500000 0.894960 +0.747774 +0.571050 0.236906 0.280712 0.529207 0.186563 0.558289 0.156377 0.432860 1 0.500000 0 0.500000 1 0 1 0 0.500000 0.914693 0.500000 0.500000 0.879834 0.860658 0.902772 0.897176 0.500000 0.500000 0.880713 0.893599 0.868272 0.881394 0.861034 0.500000 +0.570815 +0.753717 0.728587 0.763111 0.212526 0.128639 0.633649 0.344854 0.166474 0.500000 0.500000 0 0.500000 1 0.500000 1 0.500000 0.500000 0.879027 0.903530 0.500000 0.876162 0.899259 0.872135 0.858629 0.500000 0.500000 0.924420 0.879614 0.883576 0.500000 0.873431 0.500000 +0.517488 +0.473817 0.437040 0.737062 0.805067 0.556557 0.649972 0.283690 0.185238 1 1 0 0 1 0.500000 1 0.500000 0.500000 0.852756 0.500000 0.901136 0.886790 0.500000 0.890535 0.878184 0.871382 0.924226 0.500000 0.910217 0.893061 0.500000 0.500000 0.500000 +0.489719 +0.666098 0.110213 0.549922 0.332769 0.252375 0.273939 0.286909 0.677765 0 0 1 1 0.500000 0 0 0.500000 0.875181 0.500000 0.887920 0.500000 0.839042 0.500000 0.884163 0.901932 0.911702 0.500000 0.500000 0.500000 0.890360 0.500000 0.874856 0.500000 +0.445672 +0.641418 0.517188 0.575481 0.312004 0.844429 0.522305 0.183016 0.141910 0.500000 0.500000 0 1 1 0 1 1 0.879069 0.880702 0.891567 0.871755 0.500000 0.890946 0.500000 0.864328 0.920844 0.500000 0.500000 0.898053 0.500000 0.890790 0.899088 0.892656 +0.606226 +0.585902 0.262898 0.328584 0.305700 0.503928 0.110237 0.159742 0.177508 0.500000 0 0.500000 1 0.500000 0 0 0 0.867287 0.881331 0.500000 0.852395 0.500000 0.874646 0.912734 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.370656 +0.706792 0.854732 0.876223 0.485147 0.471294 0.434824 0.279581 0.722769 0.500000 0 1 0.500000 0.500000 0 1 0.500000 0.901730 0.881254 0.500000 0.889731 0.858700 0.500000 0.882683 0.851369 0.882229 0.903541 0.886135 0.842538 0.870400 0.500000 0.500000 0.883183 +0.669906 +0.243003 0.344565 0.109335 0.200158 0.260328 0.327639 0.427713 0.764868 0 0.500000 0 0 0 1 0 1 0.500000 0.900084 0.500000 0.852905 0.877884 0.500000 0.894066 0.902207 0.884654 0.866641 0.912555 0.500000 0.847975 0.880881 0.500000 0.916430 +0.576198 +0.880934 0.463329 0.174964 0.822977 0.782511 0.656834 0.415491 0.155414 0 1 1 1 1 0.500000 0.500000 0.500000 0.911133 0.500000 0.901117 0.500000 0.868383 0.873150 0.869704 0.867960 0.500000 0.500000 0.500000 0.892856 0.500000 0.500000 0.865438 0.500000 +0.423266 +0.221278 0.813359 0.729592 0.859904 0.614695 0.177108 0.854786 0.194883 0.500000 0.500000 1 0.500000 0.500000 0 0.500000 1 0.500000 0.876867 0.891158 0.500000 0.500000 0.887709 0.873992 0.871545 0.500000 0.500000 0.871556 0.500000 0.500000 0.500000 0.885903 0.500000 +0.366220 +0.176209 0.149437 0.581959 0.391532 0.684233 0.105497 0.481079 0.895361 0.500000 0.500000 1 0.500000 1 1 0.500000 0 0.862828 0.882176 0.500000 0.897498 0.892614 0.500000 0.892262 0.500000 0.500000 0.500000 0.500000 0.890696 0.500000 0.903962 0.500000 0.879245 +0.442413 +0.826720 0.477017 0.628659 0.476116 0.688542 0.519723 0.788271 0.672597 0.500000 1 1 0.500000 0.500000 0 0 1 0.500000 0.500000 0.500000 0.870014 0.873261 0.500000 0.500000 0.500000 0.500000 0.500000 0.870949 0.889445 0.856075 0.500000 0.860484 0.500000 +0.271536 +0.790161 0.436036 0.653837 0.436808 0.825474 0.344704 0.838945 0.348637 0.500000 0.500000 1 0.500000 0 0 1 1 0.869267 0.863346 0.895770 0.500000 0.876513 0.500000 0.874509 0.917993 0.500000 0.866881 0.880354 0.902897 0.884286 0.871956 0.866149 0.500000 +0.600507 +0.663356 0.420856 0.725381 0.484532 0.530800 0.563308 0.517137 0.523227 0.500000 1 0.500000 0.500000 0.500000 1 1 0 0.866640 0.860749 0.869683 0.875468 0.880216 0.908455 0.838518 0.867103 0.876784 0.500000 0.877034 0.500000 0.500000 0.847342 0.500000 0.500000 +0.637811 +0.436840 0.572807 0.160995 0.443790 0.570423 0.106589 0.439068 0.413036 0.500000 0 0 1 0 1 1 1 0.879519 0.883636 0.500000 0.862190 0.500000 0.890856 0.889484 0.885986 0.883275 0.863968 0.908044 0.500000 0.875292 0.831004 0.848098 0.500000 +0.705553 +0.581239 0.283682 0.844169 0.144710 0.341826 0.465478 0.283703 0.399192 0.500000 0.500000 0 1 0 0 0 0.500000 0.876902 0.841326 0.892575 0.500000 0.902594 0.500000 0.878796 0.887298 0.881882 0.881930 0.500000 0.500000 0.845467 0.878776 0.500000 0.500000 +0.580037 +0.554655 0.685077 0.683240 0.214431 0.133825 0.590633 0.571860 0.250562 0 0 0.500000 1 0.500000 1 0.500000 1 0.891151 0.901936 0.861894 0.885898 0.875982 0.500000 0.881160 0.868944 0.500000 0.500000 0.500000 0.500000 0.884856 0.500000 0.882117 0.890404 +0.542285 +0.659761 0.811015 0.528694 0.365723 0.506195 0.626716 0.608745 0.171918 1 1 0.500000 0 1 0.500000 1 0.500000 0.870344 0.876807 0.500000 0.877006 0.500000 0.885465 0.500000 0.500000 0.886871 0.923385 0.500000 0.500000 0.878874 0.500000 0.878947 0.918168 +0.475275 +0.735254 0.819132 0.147019 0.746192 0.644217 0.350061 0.469609 0.115463 1 0.500000 1 0.500000 0.500000 0.500000 0 0 0.500000 0.878832 0.500000 0.864742 0.500000 0.886638 0.859814 0.883401 0.500000 0.500000 0.880003 0.500000 0.874652 0.870964 0.500000 0.500000 +0.382782 +0.730280 0.418218 0.397427 0.554591 0.416377 0.640424 0.600958 0.507930 0 0.500000 0 0.500000 0.500000 1 0 1 0.500000 0.894770 0.882687 0.878749 0.842992 0.899475 0.896596 0.881017 0.858915 0.500000 0.907808 0.500000 0.860718 0.500000 0.869028 0.885329 +0.682990 +0.286371 0.441695 0.575216 0.652388 0.887220 0.502096 0.531763 0.740902 0.500000 1 0.500000 0.500000 0.500000 0.500000 0 1 0.865568 0.875117 0.861706 0.879352 0.500000 0.892342 0.500000 0.858579 0.500000 0.500000 0.868046 0.500000 0.880208 0.906631 0.500000 0.500000 +0.494196 +0.581777 0.529356 0.283093 0.544713 0.795862 0.254982 0.885090 0.703162 1 0 0 1 0 0.500000 1 1 0.500000 0.500000 0.851927 0.890222 0.886542 0.887379 0.885584 0.873276 0.500000 0.500000 0.905948 0.875821 0.857551 0.915009 0.500000 0.500000 +0.587564 +0.791454 0.569018 0.485429 0.411168 0.307611 0.624136 0.451786 0.567047 0 0.500000 0.500000 0 0 0.500000 0.500000 0 0.894574 0.895323 0.941049 0.872877 0.500000 0.819453 0.881952 0.898941 0.500000 0.500000 0.867096 0.881787 0.500000 0.500000 0.500000 0.866985 +0.640898 +0.568914 0.337213 0.531434 0.817645 0.759187 0.663576 0.115009 0.350299 0.500000 1 0 0 0.500000 0 0 0 0.500000 0.500000 0.906816 0.500000 0.877162 0.921699 0.905082 0.875777 0.907270 0.500000 0.500000 0.500000 0.907584 0.500000 0.867978 0.883037 +0.443855 +0.431555 0.549176 0.593699 0.890645 0.468868 0.459227 0.825528 0.441668 0 0 1 1 1 0 0.500000 0 0.883685 0.874137 0.500000 0.880212 0.500000 0.500000 0.886951 0.908190 0.500000 0.891611 0.882267 0.860173 0.872472 0.898704 0.903292 0.500000 +0.562666 +0.299330 0.642577 0.792763 0.173613 0.509652 0.317115 0.350847 0.883989 0.500000 1 0.500000 1 1 1 1 1 0.500000 0.500000 0.878501 0.500000 0.873787 0.872380 0.898133 0.893546 0.500000 0.872279 0.878045 0.500000 0.863372 0.859593 0.500000 0.500000 +0.436409 +0.719801 0.297224 0.436126 0.575815 0.327392 0.281271 0.318559 0.618070 0 0.500000 0 0.500000 0 1 0.500000 1 0.863392 0.500000 0.885001 0.906311 0.894035 0.867096 0.865415 0.891717 0.886060 0.882365 0.880653 0.898913 0.500000 0.881395 0.500000 0.500000 +0.667437 +0.622056 0.689460 0.751270 0.390974 0.897129 0.651642 0.345532 0.354129 1 0 0 0.500000 1 0 0 0 0.929222 0.863889 0.904470 0.864675 0.500000 0.889486 0.902222 0.500000 0.898046 0.500000 0.500000 0.500000 0.500000 0.863697 0.852666 0.500000 +0.508064 +0.291885 0.302608 0.530499 0.303973 0.282298 0.778389 0.184695 0.362871 0.500000 0.500000 1 0 1 1 0 1 0.896652 0.897654 0.839796 0.500000 0.882521 0.878535 0.890976 0.874613 0.500000 0.893190 0.871210 0.855969 0.907934 0.881142 0.864201 0.500000 +0.773605 +0.614454 0.125322 0.879102 0.865771 0.814382 0.310639 0.314538 0.248466 0 0.500000 0 0 0.500000 0.500000 0.500000 0 0.908869 0.500000 0.890652 0.500000 0.500000 0.848289 0.876717 0.920776 0.500000 0.500000 0.855482 0.892853 0.500000 0.870373 0.500000 0.907831 +0.480109 +0.396659 0.451607 0.757958 0.796839 0.675982 0.631581 0.783916 0.281062 1 0.500000 1 0.500000 1 1 0 0.500000 0.500000 0.889740 0.872320 0.874746 0.500000 0.880562 0.874036 0.903114 0.500000 0.500000 0.500000 0.500000 0.904982 0.915323 0.889802 0.890915 +0.628364 +0.889323 0.652880 0.346732 0.517586 0.874910 0.805726 0.440587 0.337513 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0 0.879506 0.871836 0.888106 0.849549 0.869505 0.884808 0.929119 0.500000 0.921470 0.500000 0.903287 0.874066 0.917198 0.500000 0.500000 0.500000 +0.713583 +0.303676 0.883114 0.290374 0.520121 0.270763 0.518546 0.207524 0.847800 0.500000 0.500000 0.500000 0 1 0.500000 0.500000 0.500000 0.877730 0.878150 0.500000 0.865890 0.905449 0.881909 0.883549 0.894337 0.500000 0.861412 0.881663 0.500000 0.500000 0.500000 0.500000 0.500000 +0.653466 +0.651760 0.727300 0.731922 0.814021 0.659341 0.138588 0.649219 0.424394 0 1 0 0 1 0 0.500000 1 0.874264 0.500000 0.865362 0.500000 0.500000 0.893203 0.859161 0.867966 0.500000 0.500000 0.500000 0.500000 0.500000 0.877955 0.500000 0.500000 +0.292040 +0.438472 0.791195 0.219097 0.161858 0.555155 0.296608 0.488727 0.635355 0 0 0.500000 1 1 0.500000 0 0.500000 0.884688 0.891072 0.883484 0.910644 0.852802 0.500000 0.884638 0.846072 0.861726 0.870915 0.500000 0.500000 0.840626 0.896280 0.888785 0.500000 +0.706634 +0.870646 0.354589 0.583429 0.292643 0.253673 0.482605 0.141528 0.457833 0.500000 0.500000 0 1 0 0 0 1 0.893813 0.500000 0.868489 0.863494 0.500000 0.896999 0.500000 0.872299 0.500000 0.871304 0.500000 0.500000 0.851724 0.500000 0.876603 0.915904 +0.437345 +0.635737 0.228139 0.125074 0.721190 0.437679 0.277101 0.638512 0.477425 0 0.500000 0 0 1 1 1 0 0.500000 0.899300 0.500000 0.500000 0.901509 0.893206 0.887108 0.893708 0.889592 0.877889 0.500000 0.500000 0.838846 0.861161 0.917145 0.860833 +0.582803 +0.587581 0.480960 0.496957 0.557654 0.691459 0.751720 0.758390 0.868169 0 0.500000 0.500000 1 0.500000 1 1 1 0.928735 0.500000 0.874596 0.500000 0.904159 0.886132 0.500000 0.880141 0.500000 0.898959 0.876597 0.882738 0.911980 0.500000 0.500000 0.500000 +0.493723 +0.805017 0.513626 0.704038 0.168069 0.131429 0.324496 0.396433 0.649031 0.500000 0 1 0 0.500000 0.500000 0 0.500000 0.500000 0.857925 0.888463 0.500000 0.900976 0.892796 0.881164 0.500000 0.500000 0.500000 0.891810 0.500000 0.500000 0.500000 0.875971 0.500000 +0.341795 +0.307715 0.772296 0.184448 0.216655 0.713522 0.367030 0.876755 0.619405 0 1 0 1 1 0 0.500000 1 0.899968 0.857072 0.893883 0.882227 0.500000 0.902687 0.850970 0.898617 0.912906 0.500000 0.847469 0.500000 0.878521 0.876378 0.500000 0.500000 +0.688845 +0.280797 0.355597 0.727218 0.152922 0.760981 0.406054 0.752263 0.288201 1 0.500000 0.500000 1 0 1 0.500000 0 0.880768 0.875230 0.500000 0.896740 0.887600 0.880626 0.890204 0.868030 0.907360 0.859069 0.900401 0.886344 0.500000 0.500000 0.855429 0.869586 +0.906728 +0.200691 0.409418 0.485027 0.853556 0.309357 0.355771 0.448038 0.771148 1 0 0 0.500000 0 0 0.500000 1 0.886032 0.500000 0.500000 0.500000 0.918528 0.874703 0.893102 0.500000 0.500000 0.500000 0.881853 0.500000 0.500000 0.500000 0.500000 0.917554 +0.261373 +0.839444 0.738724 0.741448 0.122090 0.159654 0.302594 0.294525 0.681816 0 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.869144 0.889020 0.871629 0.889121 0.905364 0.500000 0.856060 0.500000 0.869571 0.860845 0.500000 0.500000 0.500000 0.912321 0.887400 +0.494838 +0.144648 0.103699 0.661877 0.366862 0.444173 0.610818 0.615215 0.112513 1 0.500000 0.500000 0 0 0.500000 0.500000 0.500000 0.880979 0.500000 0.852316 0.874073 0.500000 0.500000 0.884137 0.900864 0.500000 0.500000 0.903620 0.895326 0.894042 0.500000 0.500000 0.500000 +0.476051 +0.596844 0.157362 0.187810 0.719177 0.216864 0.226491 0.439537 0.299612 0.500000 0.500000 0 1 0.500000 1 1 0.500000 0.883202 0.891325 0.500000 0.500000 0.894754 0.500000 0.877865 0.500000 0.877714 0.500000 0.500000 0.500000 0.868990 0.877025 0.500000 0.890135 +0.379933 +0.165273 0.335277 0.805670 0.293145 0.688571 0.207312 0.497703 0.288654 0.500000 0.500000 0.500000 0 1 0 0 0.500000 0.500000 0.851997 0.851693 0.906421 0.882479 0.892192 0.856343 0.500000 0.879518 0.500000 0.880831 0.852293 0.500000 0.878313 0.887035 0.868914 +0.646478 +0.604886 0.114145 0.234362 0.728588 0.775064 0.297036 0.489087 0.284131 0.500000 0 0.500000 0 1 1 1 0 0.500000 0.862448 0.500000 0.865582 0.500000 0.859407 0.868770 0.900289 0.895355 0.500000 0.869086 0.911336 0.500000 0.904110 0.500000 0.898719 +0.584836 +0.865759 0.615279 0.389309 0.115142 0.189110 0.172517 0.489177 0.201739 0.500000 1 0 0 0.500000 1 1 1 0.899731 0.886693 0.860716 0.500000 0.867511 0.500000 0.914388 0.500000 0.918252 0.500000 0.897791 0.840043 0.500000 0.888921 0.500000 0.901960 +0.516809 +0.491042 0.350975 0.633517 0.515986 0.372404 0.792468 0.802935 0.734877 1 0.500000 0.500000 0 0 0.500000 0 0 0.878079 0.884679 0.880526 0.500000 0.908912 0.873344 0.892209 0.905573 0.500000 0.889788 0.500000 0.500000 0.865487 0.892787 0.500000 0.871370 +0.578876 +0.285162 0.120302 0.520014 0.871875 0.210557 0.626459 0.298438 0.840016 1 1 0 1 1 1 1 0.500000 0.880917 0.500000 0.500000 0.500000 0.877264 0.880567 0.883455 0.866121 0.880882 0.890357 0.878908 0.500000 0.500000 0.883527 0.500000 0.897406 +0.528373 +0.742912 0.718296 0.596582 0.545963 0.208605 0.632238 0.617344 0.697879 1 1 1 0.500000 1 0.500000 1 0 0.500000 0.874224 0.500000 0.500000 0.901300 0.894270 0.861019 0.838061 0.500000 0.500000 0.500000 0.888585 0.500000 0.500000 0.867206 0.500000 +0.361722 +0.237210 0.593823 0.586496 0.646691 0.328637 0.395496 0.898137 0.790528 0 0 1 1 0.500000 1 0 0.500000 0.500000 0.878460 0.905799 0.500000 0.867741 0.876362 0.500000 0.863738 0.500000 0.500000 0.500000 0.886105 0.500000 0.500000 0.878539 0.902076 +0.415287 +0.795806 0.108624 0.240978 0.712087 0.245553 0.806365 0.781427 0.840428 0.500000 0.500000 1 1 0 0.500000 0 1 0.868348 0.908048 0.881932 0.897798 0.500000 0.909476 0.870761 0.887830 0.500000 0.500000 0.900488 0.873143 0.888243 0.873342 0.500000 0.879611 +0.685645 +0.541950 0.756197 0.799045 0.142631 0.601683 0.680408 0.611548 0.879511 0.500000 0 0 0 0.500000 0.500000 0.500000 0 0.500000 0.863681 0.500000 0.905176 0.875502 0.500000 0.500000 0.871177 0.886987 0.500000 0.869195 0.500000 0.500000 0.500000 0.905300 0.500000 +0.265698 +0.469990 0.117508 0.764772 0.127376 0.207409 0.521969 0.125515 0.126538 0.500000 1 1 0 0.500000 1 0.500000 0 0.897989 0.500000 0.873471 0.885064 0.874094 0.875630 0.500000 0.500000 0.897243 0.894992 0.867108 0.899880 0.500000 0.500000 0.855413 0.500000 +0.575229 +0.138644 0.788728 0.346634 0.477918 0.571682 0.459337 0.269508 0.217778 0.500000 0 0 0 0 0 1 0.500000 0.881260 0.865807 0.883938 0.870861 0.891998 0.500000 0.880493 0.500000 0.500000 0.884247 0.500000 0.891148 0.500000 0.500000 0.885866 0.500000 +0.496666 +0.568318 0.725896 0.339288 0.215052 0.184194 0.747464 0.428544 0.331037 1 1 0.500000 0 0.500000 1 0 0.500000 0.880896 0.885907 0.874091 0.500000 0.845882 0.500000 0.500000 0.870963 0.865545 0.866030 0.874004 0.879985 0.500000 0.882573 0.850221 0.500000 +0.610869 +0.391299 0.767210 0.305294 0.871132 0.507375 0.444410 0.597132 0.198379 1 0 1 0.500000 0.500000 1 0 1 0.846152 0.893217 0.500000 0.500000 0.889198 0.886830 0.900043 0.873054 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.887843 0.500000 +0.461352 +0.672854 0.858766 0.677225 0.716654 0.211541 0.374816 0.533048 0.735057 1 0.500000 0 1 1 1 0 1 0.500000 0.859582 0.905090 0.914730 0.500000 0.877489 0.876097 0.500000 0.926687 0.872299 0.876137 0.874573 0.895780 0.500000 0.867819 0.500000 +0.538352 +0.636524 0.651534 0.140539 0.646665 0.699057 0.444150 0.228728 0.435167 0.500000 0 1 0 0 1 1 1 0.883671 0.880823 0.906424 0.873866 0.500000 0.895209 0.888797 0.871928 0.500000 0.919295 0.903467 0.874610 0.889662 0.861492 0.500000 0.881490 +0.748645 +0.709224 0.121177 0.820922 0.632828 0.144630 0.595102 0.474275 0.146765 0.500000 0.500000 0.500000 0 0 0.500000 0.500000 0 0.500000 0.891789 0.874689 0.877383 0.922010 0.897081 0.500000 0.863542 0.500000 0.500000 0.921871 0.870970 0.887870 0.902906 0.500000 0.500000 +0.563867 +0.534064 0.207060 0.259818 0.554828 0.396718 0.633948 0.560205 0.358944 0 1 1 0.500000 0 0.500000 0.500000 0.500000 0.866034 0.880097 0.912054 0.880486 0.500000 0.896468 0.500000 0.874416 0.500000 0.500000 0.500000 0.889850 0.500000 0.865835 0.500000 0.500000 +0.517649 +0.440569 0.842283 0.453105 0.335707 0.828038 0.226181 0.818904 0.323575 0 0.500000 1 0 1 0 0 1 0.894780 0.846241 0.877932 0.500000 0.500000 0.870807 0.500000 0.500000 0.886456 0.892223 0.896607 0.843245 0.878206 0.500000 0.877697 0.500000 +0.487065 +0.447759 0.877555 0.469753 0.139127 0.108310 0.571702 0.802388 0.339068 0.500000 0 0 0 1 1 0.500000 0.500000 0.891456 0.888887 0.500000 0.500000 0.500000 0.500000 0.500000 0.858021 0.887739 0.869834 0.500000 0.500000 0.500000 0.882643 0.887208 0.901201 +0.327607 +0.364711 0.292007 0.757725 0.880443 0.198802 0.670059 0.287940 0.414682 0 0.500000 0 0.500000 0.500000 0 0.500000 0 0.861798 0.500000 0.500000 0.910139 0.905169 0.871506 0.901954 0.876305 0.500000 0.893536 0.908330 0.891348 0.500000 0.500000 0.843931 0.904553 +0.645490 +0.683696 0.680128 0.703792 0.837806 0.400035 0.389697 0.243492 0.572014 0.500000 0 0.500000 1 1 0 0.500000 1 0.894693 0.895724 0.886530 0.874152 0.500000 0.885910 0.906747 0.906165 0.907696 0.500000 0.878310 0.500000 0.500000 0.882963 0.500000 0.868731 +0.637322 +0.771450 0.356503 0.747315 0.320280 0.743160 0.890608 0.654203 0.197037 0.500000 1 0 1 0 0 0 0.500000 0.500000 0.500000 0.866574 0.894600 0.891459 0.500000 0.500000 0.881387 0.500000 0.875466 0.868838 0.500000 0.879163 0.893584 0.867641 0.500000 +0.418674 +0.379352 0.768646 0.440220 0.576056 0.377538 0.686635 0.472795 0.861340 1 0.500000 0 0 0 0.500000 0.500000 0.500000 0.882043 0.500000 0.930415 0.854259 0.500000 0.872061 0.892534 0.891578 0.500000 0.892629 0.898699 0.500000 0.878771 0.883247 0.500000 0.898309 +0.511570 +0.186268 0.402682 0.870767 0.778720 0.148961 0.594880 0.753832 0.260110 1 0.500000 1 0 0.500000 0 0.500000 0.500000 0.500000 0.873448 0.883002 0.500000 0.500000 0.500000 0.873204 0.874624 0.886137 0.500000 0.500000 0.870483 0.500000 0.500000 0.500000 0.868831 +0.299598 +0.186082 0.483035 0.161341 0.656935 0.504096 0.538124 0.445656 0.737366 0 1 0.500000 1 0.500000 0 1 1 0.500000 0.500000 0.898540 0.874243 0.846061 0.500000 0.898211 0.883354 0.500000 0.500000 0.500000 0.500000 0.500000 0.892001 0.849041 0.889150 +0.429611 +0.687079 0.728657 0.345363 0.710803 0.268610 0.322578 0.163738 0.141161 1 1 0 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.853997 0.884150 0.903335 0.500000 0.889148 0.500000 0.900942 0.500000 0.500000 0.874483 0.500000 0.850623 0.901532 0.865017 +0.472008 +0.325433 0.157463 0.287384 0.665251 0.268631 0.689140 0.172813 0.676515 1 0.500000 0 0 0 0.500000 0.500000 0 0.889784 0.876929 0.916352 0.847564 0.859736 0.886668 0.500000 0.894180 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.863648 +0.663925 +0.697127 0.807819 0.412841 0.417688 0.286724 0.763746 0.483518 0.283102 1 1 1 1 0 0.500000 1 0.500000 0.858173 0.500000 0.500000 0.897756 0.500000 0.893554 0.500000 0.871109 0.880614 0.500000 0.500000 0.905790 0.854161 0.909501 0.862024 0.865037 +0.505184 +0.104837 0.597281 0.301339 0.807613 0.147250 0.622336 0.596245 0.482289 0.500000 1 1 0 0 0 0 0.500000 0.871680 0.887519 0.500000 0.866371 0.924795 0.888462 0.868799 0.882999 0.895380 0.868117 0.500000 0.500000 0.888800 0.500000 0.500000 0.858115 +0.604833 +0.647901 0.679288 0.191565 0.633586 0.884845 0.583218 0.740611 0.449758 1 0.500000 0 0 0 0 1 1 0.878284 0.500000 0.890976 0.500000 0.877222 0.500000 0.918001 0.860586 0.500000 0.500000 0.888968 0.884491 0.884275 0.874485 0.900268 0.870541 +0.432380 +0.361487 0.513809 0.588548 0.725441 0.687560 0.813729 0.541400 0.318044 1 1 0 0.500000 0.500000 0.500000 1 0.500000 0.869848 0.898465 0.900387 0.858318 0.884163 0.500000 0.845864 0.885687 0.883464 0.876822 0.500000 0.897558 0.500000 0.500000 0.874889 0.906461 +0.650250 +0.623831 0.126203 0.491138 0.358085 0.139546 0.744235 0.558934 0.600494 1 0 0 0.500000 0.500000 0 1 0 0.500000 0.899705 0.911845 0.924453 0.879159 0.500000 0.500000 0.885657 0.874310 0.500000 0.862558 0.887130 0.500000 0.857122 0.868661 0.500000 +0.526175 +0.251433 0.441475 0.876856 0.712756 0.285490 0.831876 0.734403 0.114651 1 1 0.500000 1 1 0 0 0.500000 0.871980 0.873194 0.885895 0.500000 0.868102 0.873821 0.902120 0.916947 0.500000 0.881782 0.500000 0.500000 0.902050 0.872615 0.500000 0.865153 +0.715833 +0.324895 0.718182 0.288525 0.643675 0.840023 0.863915 0.817290 0.398587 1 0 0.500000 1 0.500000 0.500000 1 0.500000 0.876071 0.868768 0.877258 0.500000 0.500000 0.865812 0.870909 0.500000 0.904327 0.500000 0.905148 0.500000 0.500000 0.865653 0.871788 0.876710 +0.556171 +0.474203 0.521550 0.297892 0.474592 0.672221 0.626568 0.529270 0.432641 0.500000 0.500000 1 0.500000 0.500000 0 0.500000 1 0.891566 0.904419 0.500000 0.886022 0.896444 0.500000 0.500000 0.899072 0.847801 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.356817 +0.545876 0.344899 0.119408 0.696534 0.449446 0.447524 0.133979 0.788143 0 0.500000 0 0.500000 0 1 1 0 0.895298 0.905468 0.500000 0.500000 0.912149 0.500000 0.870478 0.914677 0.500000 0.500000 0.881762 0.889234 0.500000 0.892297 0.500000 0.500000 +0.407338 +0.369326 0.263992 0.318980 0.495049 0.485537 0.623311 0.187999 0.698374 0 1 0 0.500000 0.500000 0.500000 0.500000 0 0.883307 0.911076 0.885140 0.871962 0.500000 0.500000 0.500000 0.863265 0.882232 0.500000 0.500000 0.500000 0.500000 0.876060 0.919228 0.500000 +0.473344 +0.746054 0.726553 0.180861 0.736400 0.866916 0.858904 0.597574 0.429623 1 0 0 0.500000 0.500000 0.500000 0 0 0.500000 0.887239 0.868318 0.500000 0.500000 0.896230 0.918386 0.893456 0.500000 0.500000 0.936047 0.869536 0.500000 0.887466 0.500000 0.913051 +0.429862 +0.865722 0.795818 0.320762 0.851648 0.247708 0.232569 0.181996 0.601548 1 1 0.500000 0 0.500000 1 0 0.500000 0.500000 0.500000 0.840396 0.855294 0.862523 0.500000 0.886689 0.500000 0.500000 0.500000 0.500000 0.894040 0.883361 0.881459 0.877560 0.500000 +0.387549 +0.722906 0.476178 0.129937 0.853504 0.245895 0.159911 0.628535 0.786313 0.500000 0.500000 0.500000 1 0 0.500000 1 0.500000 0.856927 0.871334 0.876165 0.869237 0.849975 0.500000 0.500000 0.884875 0.896134 0.500000 0.912291 0.500000 0.500000 0.500000 0.500000 0.500000 +0.424595 +0.222909 0.231128 0.769901 0.734032 0.274336 0.571962 0.362878 0.691268 1 0.500000 0.500000 0.500000 1 1 0 1 0.889433 0.500000 0.893502 0.888683 0.890493 0.866001 0.878223 0.883573 0.876637 0.877229 0.500000 0.883838 0.500000 0.500000 0.888779 0.500000 +0.666284 +0.789211 0.469378 0.244253 0.560702 0.721376 0.362880 0.725742 0.137834 1 1 1 0 1 1 0 0 0.895260 0.500000 0.882515 0.883705 0.500000 0.500000 0.500000 0.500000 0.862626 0.500000 0.500000 0.897140 0.880021 0.891067 0.500000 0.876738 +0.469030 +0.817477 0.328290 0.161921 0.798223 0.726860 0.543648 0.490338 0.505145 0.500000 1 0 0 1 0.500000 0.500000 0 0.876534 0.500000 0.869136 0.824318 0.868454 0.500000 0.907480 0.888465 0.885964 0.870593 0.500000 0.872764 0.500000 0.895569 0.886319 0.500000 +0.564455 +0.178218 0.307667 0.751185 0.565867 0.328671 0.176281 0.559550 0.554762 1 0.500000 0.500000 1 0.500000 0 0.500000 0.500000 0.872929 0.500000 0.875333 0.500000 0.886753 0.500000 0.500000 0.885096 0.859844 0.865399 0.891099 0.856985 0.500000 0.500000 0.500000 0.500000 +0.409942 +0.279658 0.405430 0.659857 0.815602 0.826940 0.186816 0.823923 0.670585 0 0.500000 1 0.500000 1 1 0 0.500000 0.911934 0.904836 0.887900 0.860170 0.500000 0.853547 0.871895 0.875146 0.889337 0.500000 0.899410 0.500000 0.908529 0.901516 0.500000 0.500000 +0.649519 +0.898974 0.454858 0.203496 0.360882 0.744951 0.593341 0.489955 0.468870 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 1 0.500000 0.500000 0.865937 0.927152 0.500000 0.906091 0.500000 0.500000 0.500000 0.869786 0.882639 0.500000 0.500000 0.500000 0.902700 0.500000 +0.267068 +0.205519 0.753878 0.226900 0.109405 0.570670 0.251922 0.659626 0.141443 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0 0.904008 0.864652 0.920735 0.904744 0.851009 0.500000 0.864681 0.880556 0.885515 0.500000 0.880167 0.911037 0.500000 0.500000 0.887011 0.500000 +0.612662 +0.883168 0.407262 0.245538 0.554438 0.232642 0.607348 0.704732 0.622578 1 1 0.500000 1 1 1 0 1 0.870903 0.853138 0.906717 0.891603 0.500000 0.876614 0.869529 0.500000 0.905151 0.500000 0.878765 0.844411 0.500000 0.500000 0.856451 0.500000 +0.494682 +0.883877 0.323360 0.504562 0.380346 0.676743 0.613701 0.277965 0.760535 0 1 0 1 0.500000 0.500000 1 1 0.891963 0.500000 0.868449 0.500000 0.500000 0.870591 0.865040 0.885555 0.879369 0.500000 0.865387 0.894617 0.500000 0.869212 0.883581 0.500000 +0.505401 +0.188987 0.511552 0.254199 0.518613 0.535723 0.893497 0.403802 0.493586 1 1 1 0.500000 0 0.500000 1 0 0.889225 0.500000 0.882242 0.862337 0.500000 0.901703 0.863999 0.876244 0.500000 0.500000 0.500000 0.500000 0.871303 0.896585 0.870047 0.500000 +0.508521 +0.522990 0.487904 0.395085 0.394885 0.231882 0.633856 0.617940 0.322413 0.500000 1 1 0 1 1 0.500000 0 0.500000 0.880483 0.889679 0.854119 0.500000 0.500000 0.902153 0.891567 0.878106 0.500000 0.500000 0.859990 0.912212 0.876751 0.500000 0.500000 +0.475101 +0.352279 0.160637 0.821336 0.390145 0.566317 0.693352 0.561710 0.857708 0.500000 0.500000 1 0 1 0 1 0 0.860961 0.898988 0.500000 0.500000 0.500000 0.500000 0.500000 0.858634 0.880086 0.874408 0.500000 0.913786 0.864662 0.868391 0.870205 0.898828 +0.602080 +0.713729 0.645826 0.202664 0.767184 0.654226 0.569635 0.447993 0.819247 0.500000 0.500000 0.500000 1 0 0.500000 1 0.500000 0.922774 0.500000 0.883148 0.866392 0.886877 0.891773 0.500000 0.500000 0.868033 0.832691 0.874955 0.894380 0.896299 0.870077 0.500000 0.851281 +0.677035 +0.503155 0.719767 0.519312 0.275389 0.669856 0.867811 0.696033 0.821906 0.500000 0.500000 1 0 0.500000 0 0 0.500000 0.854869 0.861798 0.893218 0.882600 0.928001 0.904864 0.878823 0.897785 0.500000 0.912115 0.893475 0.500000 0.500000 0.500000 0.500000 0.500000 +0.644125 +0.776287 0.856019 0.115846 0.828773 0.580887 0.771267 0.485192 0.415268 0.500000 0 1 1 1 0 0.500000 1 0.904623 0.875634 0.500000 0.500000 0.852131 0.878989 0.500000 0.500000 0.859980 0.904145 0.839516 0.500000 0.500000 0.861565 0.500000 0.900470 +0.450799 +0.478846 0.161947 0.448383 0.169974 0.152812 0.512086 0.424213 0.355432 0 0 0 0.500000 0.500000 0.500000 0 0.500000 0.874373 0.500000 0.882835 0.500000 0.893458 0.883669 0.500000 0.500000 0.500000 0.878074 0.906804 0.500000 0.885234 0.500000 0.875036 0.889906 +0.415237 +0.531967 0.170097 0.625210 0.897465 0.695594 0.642685 0.207567 0.776848 1 1 0 0 1 0.500000 0 0.500000 0.858238 0.865549 0.923258 0.890079 0.500000 0.879193 0.500000 0.867729 0.877150 0.500000 0.861924 0.887084 0.896042 0.500000 0.500000 0.882381 +0.540930 +0.833553 0.126407 0.714805 0.331814 0.203435 0.128665 0.278688 0.109639 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0 1 0.883188 0.500000 0.866142 0.878292 0.500000 0.888123 0.500000 0.888535 0.889667 0.882765 0.500000 0.871226 0.500000 0.500000 0.887574 0.898502 +0.505086 +0.365195 0.430310 0.421182 0.612843 0.257304 0.704700 0.886766 0.878756 1 0 0.500000 1 1 0.500000 0 0.500000 0.892762 0.500000 0.873390 0.899898 0.861575 0.500000 0.899927 0.500000 0.500000 0.500000 0.500000 0.895652 0.869652 0.500000 0.500000 0.879084 +0.421138 +0.441386 0.170887 0.295871 0.895941 0.672731 0.383939 0.262516 0.305382 1 1 1 1 1 1 1 0.500000 0.893361 0.500000 0.861539 0.866708 0.500000 0.901210 0.856407 0.871164 0.888928 0.500000 0.871449 0.853735 0.500000 0.894884 0.909492 0.500000 +0.610825 +0.859543 0.132548 0.731812 0.561601 0.632880 0.217120 0.532954 0.760078 0.500000 0 1 0 1 0.500000 1 1 0.500000 0.884698 0.860072 0.879222 0.895210 0.500000 0.872343 0.873731 0.500000 0.888864 0.894627 0.500000 0.500000 0.903322 0.884205 0.901221 +0.654851 +0.357525 0.325607 0.673612 0.803858 0.239690 0.676227 0.745296 0.791811 0 1 0.500000 0 0 0 0.500000 0.500000 0.500000 0.885215 0.867917 0.500000 0.500000 0.500000 0.899506 0.881384 0.879296 0.897621 0.500000 0.898399 0.500000 0.870878 0.905356 0.900680 +0.437769 +0.525088 0.554218 0.549014 0.274448 0.854460 0.315366 0.555110 0.340637 0.500000 0 0 0 0 0.500000 1 1 0.856993 0.853835 0.887399 0.870966 0.859080 0.905436 0.863936 0.886371 0.500000 0.500000 0.869141 0.500000 0.876876 0.500000 0.890170 0.875570 +0.706508 +0.657094 0.777208 0.332740 0.554662 0.807224 0.819807 0.297815 0.778164 0.500000 0 1 0 0.500000 0.500000 0.500000 1 0.500000 0.894639 0.894239 0.905147 0.500000 0.859377 0.893286 0.846169 0.895446 0.904975 0.894148 0.500000 0.500000 0.500000 0.500000 0.500000 +0.478142 +0.767290 0.845024 0.120166 0.635396 0.107833 0.545260 0.382229 0.322416 1 0.500000 0 0 1 0.500000 0.500000 0 0.874588 0.868737 0.500000 0.871001 0.500000 0.862148 0.878373 0.819509 0.500000 0.876365 0.883178 0.884870 0.898438 0.500000 0.851680 0.873858 +0.661208 +0.766255 0.240512 0.893375 0.753982 0.368418 0.192792 0.462481 0.312358 0.500000 0 0 0 1 1 0 0 0.860448 0.895018 0.893326 0.877315 0.500000 0.904128 0.884674 0.500000 0.892986 0.857761 0.868778 0.500000 0.500000 0.907645 0.500000 0.902361 +0.603758 +0.364566 0.266684 0.754712 0.640421 0.559040 0.791537 0.362938 0.102109 0 0.500000 1 1 0 0 0.500000 1 0.500000 0.923101 0.500000 0.882068 0.903878 0.921032 0.864740 0.885035 0.869798 0.500000 0.931085 0.500000 0.841626 0.500000 0.889598 0.500000 +0.527697 +0.202710 0.744511 0.397804 0.499203 0.712936 0.113694 0.653785 0.363604 1 1 0 1 0.500000 0.500000 1 0.500000 0.885459 0.500000 0.891408 0.500000 0.872447 0.846070 0.864675 0.876161 0.500000 0.500000 0.500000 0.500000 0.500000 0.882126 0.500000 0.500000 +0.440865 +0.153588 0.752952 0.662769 0.151341 0.587496 0.641409 0.362357 0.737111 1 1 1 0.500000 1 1 0 0 0.500000 0.500000 0.500000 0.500000 0.894463 0.894775 0.905453 0.500000 0.500000 0.500000 0.500000 0.869042 0.902047 0.849968 0.500000 0.897935 +0.424335 +0.486186 0.333539 0.389570 0.510337 0.632478 0.654198 0.899464 0.689063 0.500000 0.500000 0 0 0 0.500000 0 0 0.833024 0.867871 0.863514 0.872785 0.871726 0.500000 0.500000 0.500000 0.876049 0.500000 0.907084 0.500000 0.500000 0.884934 0.500000 0.867821 +0.408783 +0.791815 0.237203 0.467312 0.704459 0.837778 0.740984 0.319656 0.666682 0 1 0.500000 0 1 0 0.500000 1 0.902261 0.500000 0.895380 0.500000 0.879206 0.901202 0.861339 0.500000 0.500000 0.871118 0.500000 0.500000 0.910409 0.500000 0.500000 0.888893 +0.399110 +0.349488 0.447413 0.676913 0.280851 0.462655 0.841173 0.196312 0.410511 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0 0.903480 0.879037 0.500000 0.500000 0.880141 0.879596 0.880715 0.500000 0.500000 0.861569 0.926122 0.500000 0.853987 0.913488 0.500000 0.500000 +0.536605 +0.451512 0.760220 0.420465 0.560667 0.124449 0.617933 0.201091 0.741892 0.500000 0.500000 1 0 0.500000 0 0.500000 0.500000 0.849851 0.500000 0.855600 0.500000 0.877941 0.891462 0.875336 0.868773 0.918338 0.854854 0.904028 0.885302 0.500000 0.865886 0.500000 0.893711 +0.740406 +0.740213 0.162075 0.200653 0.577404 0.629868 0.799125 0.693143 0.257174 0 0 0.500000 1 0.500000 0.500000 1 1 0.885496 0.500000 0.873052 0.897507 0.500000 0.914303 0.500000 0.893693 0.905582 0.870598 0.902292 0.875696 0.500000 0.892538 0.882542 0.500000 +0.605863 +0.241568 0.238196 0.359492 0.582694 0.740704 0.413072 0.303030 0.421960 1 0 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.881492 0.500000 0.879232 0.871710 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.863425 0.857290 0.500000 0.922312 0.500000 0.898645 +0.320968 +0.113592 0.535477 0.768681 0.222708 0.860092 0.561490 0.364813 0.420313 0.500000 0.500000 0.500000 0 0.500000 0.500000 0 1 0.874959 0.500000 0.890168 0.833658 0.866220 0.896387 0.889775 0.913276 0.500000 0.500000 0.908568 0.500000 0.851774 0.500000 0.862112 0.869985 +0.639730 +0.791990 0.780024 0.464567 0.181836 0.325023 0.467885 0.751561 0.482185 0 1 0 1 0.500000 1 1 0.500000 0.896333 0.880395 0.907674 0.500000 0.878337 0.500000 0.906811 0.500000 0.914430 0.883223 0.896964 0.500000 0.883241 0.882026 0.919940 0.886114 +0.643259 +0.813204 0.522191 0.656558 0.567974 0.533757 0.653039 0.628202 0.794560 1 0 0 0 1 0 0 0 0.879986 0.886095 0.500000 0.887459 0.883171 0.877122 0.873293 0.879667 0.888789 0.889707 0.500000 0.867571 0.884387 0.873658 0.500000 0.500000 +0.564707 +0.200259 0.348125 0.735649 0.244592 0.650798 0.565328 0.865297 0.851495 1 0.500000 0 0.500000 0 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.900664 0.500000 0.500000 0.500000 0.868095 0.500000 0.500000 0.500000 0.843539 0.848888 0.864409 0.851510 0.500000 +0.162858 +0.563400 0.470534 0.459108 0.436058 0.230692 0.644382 0.732948 0.465856 0 0.500000 0 0 1 1 0 1 0.888883 0.837530 0.891701 0.853810 0.870878 0.870993 0.882208 0.856940 0.862486 0.888862 0.907560 0.870723 0.500000 0.914665 0.884291 0.913078 +0.933096 +0.588845 0.124268 0.777451 0.422700 0.519062 0.876855 0.708029 0.836666 0.500000 0.500000 1 0.500000 0 0 1 0 0.862780 0.881446 0.500000 0.862867 0.500000 0.884475 0.876655 0.887647 0.500000 0.500000 0.917764 0.907119 0.500000 0.882921 0.500000 0.500000 +0.477628 +0.111366 0.722183 0.326867 0.255286 0.397963 0.761703 0.542311 0.421883 0.500000 1 0 0 0 0 1 1 0.500000 0.500000 0.875703 0.889998 0.878358 0.500000 0.908345 0.883064 0.500000 0.500000 0.870651 0.500000 0.889697 0.500000 0.500000 0.885080 +0.455416 +0.758166 0.298225 0.472563 0.158562 0.347617 0.192590 0.267652 0.229071 0.500000 0.500000 0.500000 0 1 0.500000 1 0 0.500000 0.881373 0.500000 0.869484 0.895066 0.500000 0.902543 0.500000 0.500000 0.500000 0.883836 0.904456 0.500000 0.889491 0.500000 0.853926 +0.424230 +0.102420 0.770423 0.696642 0.654539 0.238672 0.358943 0.155330 0.425720 1 0 0 0 0.500000 0.500000 0 1 0.907684 0.500000 0.895112 0.889327 0.874267 0.844895 0.500000 0.896220 0.900050 0.893614 0.500000 0.905614 0.857352 0.904309 0.869702 0.862956 +0.742495 +0.333050 0.176528 0.713618 0.371492 0.670396 0.350813 0.317591 0.357054 0.500000 0.500000 0 0 0 1 1 1 0.500000 0.891137 0.870147 0.892743 0.896842 0.917565 0.920367 0.878630 0.895513 0.861855 0.500000 0.500000 0.500000 0.896358 0.500000 0.500000 +0.620154 +0.571615 0.139965 0.598436 0.513208 0.888149 0.117575 0.282948 0.499474 0.500000 0 0.500000 0 0 0 0 1 0.891188 0.847910 0.866502 0.898689 0.869538 0.911122 0.883367 0.870616 0.500000 0.877465 0.500000 0.882771 0.875968 0.500000 0.880969 0.500000 +0.760738 +0.748297 0.821578 0.467358 0.681968 0.433034 0.600596 0.825282 0.321329 1 0 0.500000 0 1 1 0 1 0.867604 0.906225 0.886042 0.500000 0.883155 0.898062 0.879449 0.869825 0.500000 0.500000 0.500000 0.879337 0.500000 0.500000 0.927400 0.860738 +0.514581 +0.754744 0.390684 0.823079 0.895014 0.303334 0.727251 0.708081 0.115060 0.500000 0.500000 0.500000 0.500000 1 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.884024 0.500000 0.861220 0.500000 0.500000 0.500000 0.500000 0.500000 0.869207 0.500000 0.873582 0.903708 0.500000 +0.143159 +0.392662 0.478299 0.572750 0.816884 0.777330 0.789196 0.223875 0.461684 0.500000 0.500000 1 0 0.500000 1 1 1 0.896077 0.500000 0.500000 0.886637 0.880688 0.857057 0.892732 0.500000 0.500000 0.500000 0.500000 0.500000 0.865372 0.500000 0.500000 0.500000 +0.344154 +0.373902 0.375032 0.156181 0.333469 0.818251 0.544042 0.722021 0.807774 0.500000 0 0.500000 0 1 0.500000 1 1 0.500000 0.500000 0.500000 0.877698 0.879456 0.908576 0.877942 0.863213 0.500000 0.500000 0.928607 0.873069 0.841581 0.855047 0.500000 0.500000 +0.425641 +0.897758 0.816132 0.133774 0.545379 0.785510 0.671281 0.820508 0.875098 1 0.500000 0 0 0 0.500000 0.500000 0.500000 0.853334 0.870687 0.883416 0.500000 0.859239 0.907736 0.932651 0.500000 0.500000 0.901123 0.872351 0.880958 0.855575 0.862445 0.500000 0.500000 +0.488938 +0.774158 0.273665 0.486319 0.156685 0.803210 0.549191 0.855112 0.863229 0.500000 0 0 0.500000 0 0 1 1 0.898205 0.881573 0.881103 0.871148 0.920621 0.867683 0.868034 0.500000 0.863853 0.879911 0.892122 0.500000 0.500000 0.876998 0.500000 0.901020 +0.695431 +0.125364 0.785710 0.833896 0.294259 0.212990 0.724229 0.309979 0.422438 0 0.500000 1 0.500000 0 1 1 0 0.884978 0.887371 0.850576 0.500000 0.903403 0.869377 0.847798 0.865488 0.873610 0.887569 0.500000 0.500000 0.500000 0.867615 0.879421 0.884992 +0.740854 +0.641198 0.820650 0.857846 0.415193 0.747959 0.753158 0.130464 0.104051 0 0 0.500000 1 0.500000 1 1 0 0.872456 0.897177 0.900449 0.869909 0.883083 0.874324 0.868864 0.868224 0.877711 0.886281 0.859697 0.891501 0.889235 0.913146 0.500000 0.500000 +0.831000 +0.843659 0.374980 0.884104 0.140812 0.428409 0.477143 0.334291 0.223559 1 0.500000 0.500000 0.500000 1 1 1 0.500000 0.888112 0.500000 0.500000 0.859430 0.871417 0.887501 0.869345 0.911081 0.872216 0.886626 0.500000 0.880144 0.855859 0.898479 0.874161 0.880619 +0.638321 +0.806085 0.863184 0.538086 0.617574 0.566792 0.666018 0.359419 0.159070 1 0 1 0 0 0 1 0.500000 0.897507 0.871490 0.500000 0.871968 0.884599 0.500000 0.876264 0.842899 0.881885 0.500000 0.500000 0.908357 0.500000 0.907344 0.865382 0.874387 +0.562837 +0.326154 0.271907 0.534881 0.347961 0.374756 0.322144 0.872498 0.275589 1 1 0 0 0.500000 0.500000 0 1 0.881884 0.856317 0.897583 0.850212 0.500000 0.901906 0.500000 0.878678 0.871826 0.500000 0.500000 0.882731 0.866379 0.500000 0.500000 0.892564 +0.602515 +0.195434 0.853428 0.563648 0.629623 0.670484 0.216379 0.883799 0.609688 1 0 0 0 0 0 0 0 0.879871 0.500000 0.500000 0.827307 0.500000 0.856260 0.884948 0.500000 0.868098 0.890859 0.855264 0.500000 0.500000 0.500000 0.500000 0.876372 +0.237722 +0.574561 0.850498 0.115074 0.640600 0.359952 0.314871 0.245259 0.674093 1 0.500000 1 0 0.500000 1 0 0.500000 0.867056 0.500000 0.891418 0.500000 0.500000 0.910726 0.897645 0.895025 0.884302 0.500000 0.500000 0.884686 0.500000 0.500000 0.500000 0.500000 +0.364363 +0.338733 0.482376 0.296733 0.193570 0.723789 0.127616 0.236092 0.198102 0 0 0 0.500000 0.500000 0.500000 1 0 0.890591 0.500000 0.890226 0.869939 0.896426 0.884375 0.856600 0.903590 0.856934 0.888591 0.877468 0.884673 0.500000 0.500000 0.887187 0.886048 +0.701566 +0.649128 0.502453 0.133417 0.146354 0.776754 0.711102 0.489827 0.715774 0.500000 0 0.500000 1 0.500000 1 0.500000 0 0.873500 0.884491 0.500000 0.500000 0.892044 0.884140 0.895025 0.858663 0.897937 0.900888 0.864611 0.850183 0.901437 0.500000 0.500000 0.500000 +0.642025 +0.591773 0.531231 0.606362 0.130854 0.269548 0.898547 0.481421 0.244712 0 0 1 0.500000 1 0.500000 1 1 0.500000 0.847765 0.870689 0.500000 0.500000 0.500000 0.887181 0.887786 0.500000 0.875863 0.500000 0.887240 0.500000 0.500000 0.867875 0.881241 +0.360435 +0.826837 0.852180 0.388559 0.306974 0.306556 0.479177 0.131210 0.654116 0 1 0.500000 0 0.500000 0.500000 0.500000 0 0.908377 0.500000 0.852372 0.500000 0.881246 0.882542 0.892568 0.902494 0.500000 0.500000 0.900408 0.500000 0.909523 0.500000 0.923451 0.500000 +0.538332 +0.420996 0.686453 0.614920 0.753369 0.468947 0.189747 0.480893 0.173347 1 0.500000 1 1 1 1 0 1 0.903671 0.863897 0.898970 0.879599 0.871378 0.858581 0.875192 0.500000 0.878054 0.500000 0.500000 0.860046 0.868995 0.500000 0.500000 0.854609 +0.626551 +0.829528 0.475734 0.661133 0.658596 0.415176 0.468295 0.434452 0.432123 0.500000 1 1 0 0 0.500000 1 1 0.888465 0.855729 0.877016 0.906333 0.908790 0.896807 0.877515 0.906130 0.500000 0.876214 0.851324 0.870665 0.500000 0.500000 0.500000 0.915465 +0.708845 +0.126464 0.886859 0.840792 0.197904 0.775811 0.848216 0.166083 0.361756 0 0 0.500000 0.500000 0.500000 1 0 1 0.893474 0.880238 0.885569 0.893210 0.500000 0.500000 0.864871 0.892487 0.884540 0.500000 0.500000 0.858615 0.500000 0.500000 0.878438 0.500000 +0.456250 +0.718888 0.147190 0.425795 0.531835 0.349888 0.764548 0.361728 0.558489 0 0 0.500000 0.500000 0.500000 0 1 0.500000 0.891293 0.905219 0.902405 0.873918 0.913210 0.853029 0.500000 0.899962 0.872362 0.897100 0.500000 0.883925 0.500000 0.893036 0.500000 0.500000 +0.638959 +0.633629 0.796593 0.545362 0.502064 0.793515 0.813675 0.435000 0.853263 0 0 0 0.500000 0 0 0 1 0.500000 0.900395 0.500000 0.866511 0.878574 0.500000 0.500000 0.500000 0.862017 0.500000 0.856844 0.909028 0.912913 0.882889 0.888617 0.500000 +0.428114 +0.476957 0.419477 0.751871 0.102424 0.836352 0.770969 0.273773 0.707383 0.500000 1 1 0.500000 0 0.500000 0.500000 0 0.868215 0.883412 0.922465 0.859376 0.885604 0.873333 0.500000 0.874342 0.878359 0.923292 0.886272 0.500000 0.878499 0.873312 0.500000 0.883398 +0.828064 +0.271672 0.591086 0.183292 0.790122 0.583786 0.694573 0.289256 0.123480 0 1 0.500000 1 1 0 0 0 0.901402 0.500000 0.847885 0.865941 0.914918 0.894603 0.851179 0.875303 0.882711 0.889504 0.500000 0.890604 0.500000 0.869865 0.868280 0.858031 +0.723331 +0.337681 0.397073 0.209794 0.606647 0.118401 0.565311 0.586240 0.340121 0.500000 0.500000 1 0.500000 0.500000 0.500000 0 0.500000 0.880668 0.879801 0.500000 0.896687 0.879442 0.896143 0.500000 0.878456 0.500000 0.879966 0.871690 0.890852 0.500000 0.500000 0.500000 0.876468 +0.576519 +0.787592 0.451401 0.500600 0.179240 0.682302 0.450063 0.407758 0.596412 1 0.500000 0.500000 1 0 0.500000 0.500000 0 0.878052 0.500000 0.864731 0.894297 0.500000 0.879414 0.500000 0.873097 0.500000 0.500000 0.500000 0.880267 0.500000 0.500000 0.500000 0.500000 +0.354141 +0.129884 0.766194 0.828087 0.259871 0.645018 0.220432 0.196747 0.526970 0 0 0.500000 0 0.500000 1 1 1 0.877899 0.853680 0.901434 0.500000 0.500000 0.862182 0.873111 0.874263 0.500000 0.500000 0.867459 0.892800 0.500000 0.903855 0.891898 0.881522 +0.570669 +0.355125 0.779108 0.268177 0.246878 0.679599 0.613920 0.747938 0.386302 1 1 0.500000 1 1 0.500000 1 1 0.500000 0.884743 0.928702 0.861916 0.874678 0.898006 0.500000 0.889618 0.866837 0.500000 0.500000 0.500000 0.886740 0.885195 0.903878 0.500000 +0.538332 +0.292055 0.772199 0.154979 0.133472 0.271988 0.308803 0.659284 0.791309 0.500000 0.500000 0 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.867187 0.500000 0.842212 0.500000 0.863889 0.877643 0.500000 0.856807 0.881388 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.266468 +0.255252 0.626569 0.545636 0.304464 0.526132 0.497382 0.499260 0.859751 0.500000 1 0 0 0 0.500000 0 1 0.869560 0.875050 0.839404 0.870309 0.500000 0.876101 0.848705 0.891337 0.880307 0.878254 0.500000 0.500000 0.500000 0.500000 0.855848 0.500000 +0.567263 +0.731429 0.522547 0.243524 0.303306 0.257256 0.695597 0.699767 0.391578 1 0 0 0 0 1 0.500000 1 0.874937 0.921553 0.850198 0.874700 0.500000 0.877733 0.900893 0.866230 0.500000 0.878743 0.500000 0.500000 0.500000 0.500000 0.898443 0.500000 +0.587385 +0.327872 0.342450 0.556037 0.713384 0.440326 0.755103 0.810927 0.657086 1 0 0.500000 0 1 0.500000 0.500000 1 0.500000 0.868733 0.912555 0.913003 0.885656 0.880284 0.888464 0.500000 0.500000 0.500000 0.881727 0.500000 0.835002 0.896448 0.879357 0.500000 +0.543193 +0.695766 0.339857 0.171212 0.159503 0.162455 0.179545 0.209476 0.854450 0 0.500000 1 1 1 0 0 1 0.500000 0.892578 0.875356 0.500000 0.500000 0.870855 0.851607 0.859143 0.861533 0.888368 0.500000 0.500000 0.888395 0.878448 0.500000 0.500000 +0.394288 +0.488824 0.663159 0.310753 0.617573 0.556110 0.343244 0.309276 0.593369 0 0.500000 0.500000 1 0 0.500000 1 0.500000 0.500000 0.864726 0.500000 0.880045 0.887789 0.844689 0.896985 0.857917 0.500000 0.864913 0.500000 0.500000 0.881413 0.901243 0.500000 0.500000 +0.455513 +0.118222 0.749867 0.823541 0.649838 0.425633 0.207833 0.443958 0.207495 0 0.500000 0 1 0 0.500000 0.500000 1 0.883767 0.500000 0.839971 0.895481 0.500000 0.500000 0.500000 0.888283 0.500000 0.880625 0.884876 0.500000 0.500000 0.884049 0.500000 0.883470 +0.367333 +0.322283 0.817842 0.867638 0.190603 0.459587 0.470947 0.206432 0.110298 0.500000 1 0.500000 0 1 0 1 0.500000 0.880138 0.500000 0.500000 0.500000 0.905218 0.500000 0.500000 0.874456 0.883746 0.854798 0.500000 0.903615 0.838304 0.884727 0.500000 0.912396 +0.530829 +0.566329 0.892511 0.630112 0.897463 0.655591 0.326742 0.557644 0.524294 1 1 0.500000 1 1 0.500000 1 1 0.887740 0.899673 0.500000 0.898811 0.500000 0.896665 0.858023 0.882968 0.500000 0.500000 0.872069 0.500000 0.500000 0.888964 0.901666 0.893359 +0.551384 +0.812700 0.856964 0.796614 0.890054 0.141945 0.265358 0.866245 0.782777 0 0 1 0.500000 0 0 0.500000 0 0.500000 0.893289 0.897844 0.911219 0.860026 0.888107 0.882322 0.500000 0.500000 0.883307 0.876929 0.500000 0.839139 0.884808 0.500000 0.880923 +0.619318 +0.546514 0.661146 0.877978 0.377223 0.192203 0.148030 0.137108 0.572441 0.500000 0.500000 1 1 1 1 1 1 0.500000 0.895519 0.884085 0.894242 0.500000 0.874536 0.500000 0.873318 0.500000 0.500000 0.887046 0.500000 0.500000 0.500000 0.880500 0.878536 +0.320795 +0.374696 0.121846 0.869950 0.652633 0.208749 0.637318 0.411022 0.240295 0.500000 0 1 1 1 0.500000 0.500000 0 0.500000 0.897265 0.915968 0.914361 0.883152 0.500000 0.860348 0.873868 0.500000 0.500000 0.836747 0.500000 0.863322 0.500000 0.888276 0.918746 +0.612729 +0.270313 0.142984 0.131954 0.356002 0.330092 0.860513 0.446045 0.875245 1 0 0 0 0 0.500000 0 1 0.869479 0.890459 0.500000 0.873761 0.874252 0.500000 0.895827 0.910386 0.849477 0.500000 0.500000 0.900267 0.500000 0.500000 0.500000 0.500000 +0.480929 +0.277205 0.780243 0.138641 0.733405 0.132317 0.855017 0.865629 0.834289 0.500000 0.500000 1 1 0 0.500000 1 1 0.500000 0.500000 0.500000 0.863784 0.875830 0.919493 0.873441 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.887284 +0.257330 +0.714108 0.609109 0.695770 0.412510 0.462807 0.194830 0.303360 0.364363 1 1 0.500000 0 0 1 0 0.500000 0.500000 0.500000 0.860262 0.500000 0.891721 0.500000 0.904590 0.858546 0.880449 0.868629 0.875024 0.900893 0.877133 0.500000 0.861774 0.852297 +0.596732 +0.720584 0.657877 0.339452 0.564543 0.482392 0.559931 0.556770 0.228533 0 0 0.500000 0.500000 0.500000 0.500000 0 1 0.500000 0.500000 0.908375 0.500000 0.500000 0.900412 0.500000 0.864220 0.500000 0.500000 0.872414 0.894961 0.500000 0.500000 0.500000 0.877840 +0.230838 +0.777299 0.272324 0.352655 0.872754 0.572999 0.190117 0.303796 0.499456 0 1 0 0.500000 0.500000 0 1 0 0.885394 0.870540 0.500000 0.500000 0.500000 0.899811 0.500000 0.882976 0.500000 0.867529 0.857844 0.500000 0.888481 0.500000 0.899235 0.500000 +0.341917 +0.138546 0.739862 0.660198 0.144154 0.594968 0.631545 0.172965 0.820398 1 1 1 0.500000 0.500000 1 0 0 0.848574 0.892960 0.851090 0.876381 0.865829 0.892205 0.899867 0.870465 0.500000 0.500000 0.500000 0.871063 0.500000 0.500000 0.875089 0.500000 +0.751598 +0.457368 0.780332 0.845755 0.407422 0.542486 0.160541 0.813217 0.742049 0.500000 0.500000 0 1 0.500000 1 0 1 0.500000 0.851518 0.500000 0.854618 0.872907 0.889226 0.500000 0.500000 0.899431 0.500000 0.892469 0.904124 0.500000 0.884464 0.500000 0.897939 +0.434972 +0.564664 0.106905 0.144507 0.132547 0.710818 0.524638 0.197164 0.334006 0 0.500000 1 1 0 0 1 0 0.875860 0.899321 0.881997 0.876826 0.500000 0.876626 0.500000 0.500000 0.500000 0.845425 0.873932 0.871913 0.500000 0.886512 0.854350 0.500000 +0.498887 +0.744762 0.610695 0.153949 0.426484 0.111268 0.674187 0.867433 0.744834 0 0 1 1 0 1 1 1 0.865859 0.500000 0.500000 0.876991 0.898433 0.893171 0.886796 0.893424 0.500000 0.903837 0.902239 0.850131 0.500000 0.872782 0.500000 0.500000 +0.557705 +0.499781 0.814403 0.672193 0.139430 0.396415 0.339451 0.552391 0.230514 1 0 0 0 1 1 0 0 0.500000 0.500000 0.867827 0.500000 0.500000 0.500000 0.880760 0.500000 0.876646 0.500000 0.913229 0.500000 0.500000 0.891605 0.500000 0.853274 +0.271066 +0.868196 0.764170 0.405683 0.111529 0.266396 0.715981 0.887524 0.812540 0.500000 0.500000 1 0 1 0.500000 1 0 0.500000 0.898641 0.847232 0.869715 0.910668 0.500000 0.500000 0.937175 0.921395 0.500000 0.500000 0.906983 0.867157 0.902200 0.500000 0.894657 +0.594468 +0.326672 0.184365 0.420937 0.495766 0.540775 0.213748 0.667568 0.807980 1 0 1 0 0.500000 1 0 1 0.858934 0.882254 0.500000 0.500000 0.856714 0.852645 0.500000 0.893590 0.500000 0.889262 0.864897 0.500000 0.892686 0.500000 0.915457 0.500000 +0.493733 +0.103504 0.586134 0.162559 0.325357 0.480801 0.222461 0.707157 0.591432 0.500000 0.500000 0 0.500000 0 1 0.500000 0 0.886929 0.500000 0.500000 0.898871 0.867233 0.500000 0.897704 0.869785 0.500000 0.904412 0.884938 0.883570 0.500000 0.500000 0.500000 0.857547 +0.487656 +0.572086 0.848912 0.668089 0.778279 0.729344 0.688663 0.151442 0.692843 1 0 0 1 0 0.500000 0 0 0.500000 0.500000 0.886782 0.865096 0.895342 0.880139 0.879394 0.500000 0.500000 0.882278 0.500000 0.899666 0.879407 0.500000 0.900459 0.875912 +0.450398 +0.584910 0.389776 0.771170 0.452855 0.136641 0.721641 0.813874 0.580924 0.500000 1 0.500000 0.500000 0 1 1 0.500000 0.905508 0.923832 0.896804 0.500000 0.500000 0.877514 0.861998 0.865996 0.500000 0.917059 0.880348 0.500000 0.864130 0.500000 0.500000 0.500000 +0.580427 +0.475728 0.565037 0.785018 0.390788 0.178515 0.505204 0.763649 0.451081 1 0 0.500000 0 0 0 0 1 0.855461 0.906137 0.850393 0.500000 0.910168 0.500000 0.887511 0.885544 0.884184 0.892081 0.869949 0.897788 0.866239 0.850139 0.877531 0.500000 +0.734791 +0.583943 0.132548 0.731818 0.666831 0.437364 0.584040 0.159168 0.135245 0.500000 1 0.500000 0 0 0 0.500000 1 0.842074 0.874277 0.500000 0.867637 0.500000 0.895513 0.855842 0.500000 0.500000 0.861120 0.500000 0.867360 0.500000 0.888868 0.905308 0.500000 +0.393933 +0.266125 0.158830 0.853783 0.136564 0.228317 0.731308 0.890220 0.531620 1 0 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.877171 0.890915 0.897940 0.903452 0.500000 0.898506 0.851122 0.849257 0.903225 0.500000 0.893381 0.910894 0.500000 0.874015 0.500000 +0.620328 +0.601968 0.674917 0.323327 0.753699 0.414205 0.142777 0.648976 0.336300 0.500000 1 1 0.500000 0.500000 0 0 1 0.500000 0.899823 0.500000 0.896120 0.913622 0.875351 0.500000 0.500000 0.904427 0.861491 0.875482 0.500000 0.870499 0.884968 0.905975 0.500000 +0.584960 +0.247296 0.504579 0.658708 0.707561 0.179317 0.378937 0.199421 0.670634 0 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.873823 0.897831 0.874567 0.500000 0.500000 0.910986 0.500000 0.883962 0.500000 0.901303 0.907928 0.872440 0.500000 0.500000 0.901103 +0.476159 +0.447407 0.569711 0.128844 0.883194 0.835126 0.163801 0.395160 0.851894 0.500000 1 0.500000 0 1 0.500000 0 0 0.929004 0.888973 0.500000 0.924123 0.500000 0.870465 0.500000 0.855843 0.880223 0.883231 0.901180 0.500000 0.866838 0.500000 0.500000 0.500000 +0.441217 +0.185755 0.589487 0.504785 0.124337 0.334295 0.296701 0.461915 0.403995 0.500000 0.500000 1 0 0.500000 1 1 0 0.897144 0.500000 0.859003 0.500000 0.897549 0.896369 0.873863 0.878875 0.500000 0.874738 0.500000 0.500000 0.500000 0.895164 0.500000 0.500000 +0.496943 +0.745192 0.647263 0.349148 0.327114 0.402329 0.546374 0.714312 0.841135 0 0 1 0 1 1 0 1 0.855788 0.500000 0.865641 0.882933 0.899319 0.892010 0.900325 0.881434 0.915577 0.891348 0.500000 0.910664 0.872039 0.500000 0.500000 0.500000 +0.648869 +0.238357 0.671210 0.426911 0.899644 0.512302 0.852731 0.851843 0.327790 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 0.894845 0.890582 0.891668 0.881215 0.500000 0.867135 0.912438 0.875596 0.864030 0.865400 0.874745 0.906086 0.867687 0.500000 0.856075 0.500000 +0.740173 +0.593780 0.656127 0.529841 0.431001 0.831344 0.607114 0.768926 0.331684 0.500000 0.500000 0 0 1 0.500000 1 1 0.865458 0.876016 0.500000 0.500000 0.882685 0.903715 0.903000 0.899292 0.876502 0.500000 0.500000 0.500000 0.500000 0.913356 0.500000 0.500000 +0.428535 +0.759704 0.543620 0.824162 0.683102 0.293474 0.613524 0.498704 0.323337 0 0 1 1 1 0.500000 0.500000 0.500000 0.500000 0.881295 0.890939 0.891984 0.500000 0.500000 0.895478 0.850477 0.864173 0.500000 0.847843 0.500000 0.500000 0.880794 0.500000 0.500000 +0.380850 +0.869174 0.405600 0.318416 0.624416 0.355177 0.863281 0.565639 0.500306 1 0.500000 0.500000 1 0 0 1 1 0.879386 0.913127 0.891006 0.883461 0.919730 0.879771 0.886530 0.879888 0.500000 0.865637 0.500000 0.500000 0.500000 0.500000 0.845940 0.500000 +0.662137 +0.338444 0.425275 0.598339 0.490257 0.749637 0.144154 0.588551 0.770558 0.500000 1 0.500000 0.500000 0.500000 1 0 1 0.500000 0.855969 0.891211 0.885748 0.886827 0.869118 0.875048 0.900427 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.899665 0.500000 +0.620834 +0.560329 0.850582 0.730738 0.121870 0.473052 0.385334 0.514231 0.487553 0 0 0 1 0 0.500000 0.500000 0.500000 0.838162 0.500000 0.500000 0.889635 0.838962 0.500000 0.900451 0.878384 0.500000 0.500000 0.904975 0.877435 0.887272 0.895035 0.858678 0.888701 +0.614609 +0.649473 0.695814 0.339561 0.807635 0.515809 0.599855 0.362077 0.834302 1 1 0 0.500000 1 1 1 1 0.872947 0.901415 0.500000 0.881144 0.500000 0.871743 0.902087 0.500000 0.500000 0.895910 0.500000 0.895596 0.829228 0.500000 0.890651 0.868017 +0.549940 +0.602262 0.822822 0.575754 0.892201 0.230648 0.704834 0.748581 0.794299 0.500000 0 0 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.868328 0.875678 0.844078 0.885798 0.890735 0.874091 0.500000 0.880147 0.500000 0.500000 0.901037 0.500000 0.500000 0.500000 0.500000 +0.456770 +0.232368 0.816870 0.530474 0.676898 0.823044 0.302683 0.197376 0.694046 0 0.500000 1 1 0.500000 1 0 1 0.500000 0.877609 0.877979 0.500000 0.875469 0.873543 0.500000 0.847848 0.868593 0.888529 0.911774 0.500000 0.500000 0.897959 0.500000 0.500000 +0.449729 +0.599749 0.176876 0.159596 0.132493 0.617379 0.486435 0.507035 0.335706 1 1 0.500000 1 0.500000 0.500000 0 1 0.846174 0.883931 0.500000 0.500000 0.500000 0.500000 0.892866 0.897288 0.500000 0.500000 0.500000 0.500000 0.904419 0.500000 0.864491 0.500000 +0.334879 +0.109463 0.748941 0.454519 0.106964 0.340253 0.432717 0.873719 0.797463 1 1 0 0 1 0.500000 0 1 0.500000 0.500000 0.902792 0.893631 0.887175 0.500000 0.879755 0.888699 0.861333 0.500000 0.885607 0.888639 0.500000 0.500000 0.500000 0.922206 +0.510999 +0.523260 0.233590 0.552273 0.660185 0.733825 0.795835 0.591874 0.625859 0.500000 0 0.500000 1 1 0 1 0.500000 0.894743 0.500000 0.889315 0.867849 0.500000 0.892025 0.876725 0.879704 0.500000 0.500000 0.874470 0.500000 0.500000 0.500000 0.500000 0.917895 +0.463336 +0.507658 0.407163 0.181182 0.528411 0.404824 0.870294 0.824023 0.762014 0 0.500000 0.500000 1 0.500000 1 1 1 0.914158 0.500000 0.853814 0.500000 0.889447 0.879500 0.917584 0.856022 0.500000 0.860574 0.500000 0.867840 0.912231 0.500000 0.878668 0.500000 +0.576261 +0.499711 0.439602 0.597890 0.135726 0.542412 0.514978 0.226849 0.857264 0 0.500000 1 1 0 0.500000 0 0 0.909124 0.853052 0.891221 0.892433 0.906251 0.500000 0.886078 0.909171 0.500000 0.879939 0.500000 0.500000 0.500000 0.870923 0.500000 0.883083 +0.672310 +0.101636 0.393353 0.879652 0.508087 0.419156 0.147726 0.628330 0.534471 1 0 0 1 0.500000 0 0 0.500000 0.500000 0.855631 0.865022 0.500000 0.850966 0.874140 0.888297 0.855483 0.892111 0.500000 0.857966 0.877629 0.500000 0.895427 0.885200 0.500000 +0.628247 +0.736431 0.587827 0.603622 0.478851 0.248563 0.203392 0.205196 0.125552 1 0.500000 0 1 0.500000 1 1 0 0.500000 0.885765 0.500000 0.909385 0.871658 0.891812 0.500000 0.897903 0.500000 0.901197 0.500000 0.881611 0.500000 0.500000 0.856350 0.500000 +0.402349 +0.386247 0.648443 0.181092 0.619506 0.234960 0.377627 0.579349 0.517282 0.500000 0 0 0.500000 0 0 0 0.500000 0.886792 0.500000 0.500000 0.869615 0.867799 0.878185 0.862940 0.870602 0.500000 0.500000 0.876680 0.500000 0.868459 0.892378 0.500000 0.882192 +0.563286 +0.603732 0.719563 0.294493 0.139298 0.580863 0.370081 0.152941 0.281968 1 0.500000 1 0 1 0.500000 0 0.500000 0.831322 0.887611 0.500000 0.866974 0.893742 0.500000 0.857766 0.864663 0.500000 0.500000 0.500000 0.500000 0.893599 0.881279 0.883305 0.892383 +0.577000 +0.266053 0.548241 0.883483 0.100842 0.658991 0.668811 0.108112 0.432748 0.500000 0.500000 1 1 0 1 1 0.500000 0.877219 0.500000 0.891679 0.879190 0.890014 0.892238 0.896025 0.869691 0.905051 0.500000 0.885832 0.500000 0.500000 0.500000 0.889198 0.500000 +0.663001 +0.423865 0.102898 0.810903 0.242978 0.724897 0.337444 0.429329 0.739494 1 0 0.500000 0 0.500000 0.500000 1 1 0.889070 0.500000 0.500000 0.858461 0.500000 0.500000 0.862879 0.882645 0.890797 0.897492 0.866742 0.885967 0.902474 0.883538 0.500000 0.917991 +0.640561 +0.677881 0.539075 0.433613 0.740194 0.635885 0.316104 0.156543 0.826210 1 0.500000 0 0.500000 0 1 0 0 0.914215 0.871350 0.874593 0.500000 0.890334 0.860439 0.500000 0.878618 0.866457 0.912695 0.894031 0.866199 0.500000 0.500000 0.900753 0.500000 +0.630257 +0.788991 0.774274 0.624340 0.690787 0.649610 0.596691 0.786513 0.718549 1 0 0 0 0.500000 0 1 1 0.500000 0.898310 0.900399 0.868222 0.876969 0.500000 0.500000 0.867306 0.880144 0.917917 0.500000 0.906636 0.500000 0.865470 0.500000 0.885989 +0.452510 +0.851867 0.724969 0.746324 0.471777 0.551013 0.269865 0.616772 0.681062 0.500000 0 1 0.500000 0.500000 1 0 0.500000 0.891099 0.850266 0.866642 0.500000 0.861741 0.887291 0.861899 0.923392 0.500000 0.870292 0.891450 0.500000 0.500000 0.500000 0.500000 0.500000 +0.566883 +0.803704 0.857007 0.721830 0.802424 0.149036 0.254262 0.783319 0.641652 0.500000 0 0 1 1 0.500000 0.500000 1 0.889642 0.500000 0.879485 0.887064 0.500000 0.896649 0.859486 0.500000 0.885573 0.500000 0.500000 0.859404 0.500000 0.901879 0.906500 0.879427 +0.508738 +0.361111 0.585620 0.310883 0.414379 0.666170 0.516826 0.899025 0.520987 0.500000 1 0 1 0 0.500000 0 1 0.500000 0.917976 0.849657 0.861331 0.930987 0.904733 0.891535 0.881577 0.917564 0.500000 0.890165 0.873421 0.900556 0.500000 0.862452 0.500000 +0.772168 +0.627228 0.422027 0.411123 0.345811 0.251529 0.443176 0.663965 0.266606 0 0.500000 0.500000 1 0.500000 0 1 0.500000 0.500000 0.873982 0.500000 0.900900 0.866863 0.891609 0.892930 0.874082 0.500000 0.847978 0.883125 0.887619 0.876049 0.869404 0.500000 0.500000 +0.570298 +0.751010 0.826590 0.691726 0.436993 0.749085 0.464866 0.399265 0.253930 1 0.500000 0 1 1 0 1 0.500000 0.904976 0.875763 0.873670 0.933093 0.500000 0.895171 0.910267 0.876407 0.859364 0.898565 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.548037 +0.567947 0.878513 0.562978 0.577821 0.433686 0.365734 0.695975 0.660233 1 0 0.500000 1 0.500000 0.500000 1 0 0.500000 0.877788 0.904305 0.500000 0.851177 0.920342 0.883533 0.861817 0.908615 0.500000 0.880519 0.500000 0.866170 0.843681 0.873447 0.500000 +0.680770 +0.171517 0.483208 0.669294 0.227037 0.808642 0.647301 0.187961 0.862303 0 0 0.500000 0 0 0 1 1 0.500000 0.896880 0.872800 0.500000 0.500000 0.865825 0.885242 0.887158 0.500000 0.500000 0.892987 0.500000 0.500000 0.500000 0.879100 0.892770 +0.394013 +0.436193 0.101635 0.385602 0.204626 0.156576 0.572065 0.495054 0.571151 0 0 0 0 1 0.500000 0 0 0.857909 0.892644 0.916883 0.500000 0.887342 0.882739 0.878286 0.897178 0.500000 0.896816 0.911857 0.500000 0.896794 0.878773 0.867987 0.861991 +0.752779 +0.586139 0.233372 0.879264 0.397756 0.488855 0.385121 0.134150 0.452205 0.500000 1 0 0.500000 0 1 0 1 0.891179 0.892331 0.886547 0.868574 0.500000 0.935257 0.902812 0.846793 0.856786 0.500000 0.500000 0.883466 0.500000 0.500000 0.500000 0.500000 +0.617243 +0.190772 0.103927 0.501907 0.550920 0.311203 0.182266 0.351999 0.250371 0 0 1 0 0 1 1 0 0.869919 0.902255 0.899973 0.500000 0.866554 0.905066 0.879640 0.500000 0.881635 0.840641 0.500000 0.893823 0.500000 0.500000 0.500000 0.500000 +0.563825 +0.702615 0.253264 0.805718 0.307382 0.764358 0.371581 0.556668 0.113393 0.500000 0.500000 1 0.500000 1 0.500000 1 0 0.500000 0.500000 0.853384 0.862947 0.893333 0.917804 0.500000 0.919983 0.879572 0.500000 0.500000 0.500000 0.914059 0.500000 0.500000 0.500000 +0.404735 +0.496870 0.701630 0.496123 0.133095 0.320927 0.425107 0.167229 0.410774 1 1 0.500000 1 0 0 1 0.500000 0.887207 0.897228 0.869395 0.500000 0.500000 0.902915 0.868810 0.874454 0.896000 0.916988 0.873505 0.910133 0.867516 0.888775 0.890707 0.500000 +0.727591 +0.466618 0.242117 0.654766 0.857558 0.380513 0.279021 0.107973 0.497209 1 0.500000 0 1 0 0 1 1 0.500000 0.897471 0.883549 0.882072 0.500000 0.882653 0.892927 0.890086 0.500000 0.500000 0.500000 0.500000 0.500000 0.882723 0.500000 0.500000 +0.499741 +0.232638 0.553697 0.586886 0.796973 0.533038 0.572149 0.309510 0.542987 0.500000 1 1 0.500000 1 0 0.500000 0.500000 0.500000 0.866692 0.887246 0.917050 0.500000 0.918423 0.891446 0.847988 0.863200 0.500000 0.886727 0.500000 0.889075 0.890366 0.500000 0.500000 +0.630654 +0.718965 0.646480 0.792771 0.296036 0.476349 0.597807 0.339671 0.242223 1 0.500000 0 0 1 0.500000 0 1 0.500000 0.892263 0.500000 0.500000 0.883662 0.895137 0.889219 0.883424 0.878562 0.877699 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.395311 +0.867117 0.230698 0.738843 0.341436 0.319853 0.770593 0.358826 0.591656 0 1 0 1 1 1 0.500000 1 0.887080 0.896336 0.500000 0.899287 0.852599 0.882877 0.500000 0.867288 0.500000 0.896636 0.854221 0.880300 0.500000 0.879203 0.500000 0.893788 +0.550084 +0.843244 0.606900 0.371651 0.134123 0.805314 0.704695 0.813674 0.421044 1 1 1 0.500000 0.500000 0 1 1 0.897003 0.874909 0.881467 0.886469 0.915012 0.864364 0.910091 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.557963 +0.803235 0.178777 0.111688 0.537122 0.417879 0.288028 0.285839 0.288993 0.500000 0 1 1 0 1 1 1 0.875992 0.500000 0.500000 0.500000 0.884272 0.872031 0.861281 0.912223 0.500000 0.869141 0.877762 0.916478 0.864386 0.870577 0.891698 0.500000 +0.592458 +0.784477 0.113740 0.630906 0.634585 0.872964 0.104275 0.755818 0.838623 0.500000 0.500000 0.500000 0.500000 0 0.500000 1 0 0.909463 0.904620 0.500000 0.874417 0.910577 0.893744 0.500000 0.858586 0.856419 0.875089 0.882503 0.500000 0.500000 0.500000 0.877398 0.500000 +0.469380 +0.351675 0.396844 0.357386 0.382423 0.385994 0.392814 0.624793 0.296415 0.500000 0.500000 0.500000 0.500000 0 0.500000 0 0.500000 0.862916 0.915798 0.867712 0.500000 0.888808 0.895996 0.882768 0.882029 0.500000 0.899561 0.500000 0.873508 0.894956 0.863609 0.872503 0.500000 +0.685677 +0.147366 0.184018 0.195458 0.458540 0.475253 0.574552 0.702072 0.727229 0 0.500000 0.500000 0.500000 0.500000 1 0 0 0.899157 0.862977 0.868367 0.928857 0.500000 0.890413 0.890564 0.873871 0.864575 0.911019 0.882049 0.500000 0.500000 0.887497 0.867333 0.881731 +0.765483 +0.829944 0.277085 0.367031 0.894630 0.251713 0.340822 0.394361 0.230710 0 0 0.500000 1 0.500000 0.500000 0.500000 0 0.851861 0.879835 0.901557 0.851127 0.893131 0.500000 0.500000 0.873162 0.868263 0.500000 0.875237 0.875300 0.877814 0.500000 0.500000 0.500000 +0.525142 +0.888459 0.533625 0.830457 0.885283 0.759289 0.770576 0.864135 0.520396 0 0.500000 0.500000 0 0.500000 1 0 1 0.884783 0.500000 0.500000 0.903811 0.894556 0.940444 0.500000 0.895891 0.500000 0.850501 0.500000 0.500000 0.500000 0.901390 0.908694 0.877884 +0.445425 +0.863500 0.243350 0.590638 0.648790 0.414405 0.299751 0.510289 0.633875 0 0.500000 1 0 0.500000 0.500000 1 1 0.871778 0.898095 0.860746 0.500000 0.500000 0.861661 0.896760 0.891226 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.864316 +0.396153 +0.841703 0.298851 0.581135 0.135616 0.289960 0.762366 0.482960 0.506398 1 1 0 0 1 1 0.500000 1 0.893544 0.500000 0.924087 0.500000 0.883125 0.878398 0.892739 0.500000 0.877377 0.862070 0.887741 0.500000 0.500000 0.917354 0.500000 0.886878 +0.549892 +0.486538 0.640106 0.863512 0.451482 0.253961 0.514486 0.772553 0.498556 0 0.500000 1 1 1 0.500000 1 0.500000 0.500000 0.880725 0.879914 0.876439 0.879273 0.865790 0.500000 0.906942 0.500000 0.885925 0.878520 0.864886 0.881390 0.883744 0.868713 0.885156 +0.735124 +0.357141 0.276453 0.147894 0.256936 0.121862 0.328903 0.869737 0.273165 1 0 0 0 0.500000 1 1 0 0.844354 0.907419 0.500000 0.893437 0.895683 0.892891 0.921409 0.500000 0.872343 0.500000 0.882837 0.877646 0.500000 0.863240 0.500000 0.500000 +0.558012 +0.478079 0.869269 0.398924 0.107478 0.178329 0.583635 0.548542 0.352629 0.500000 0.500000 1 0 0.500000 0 0 1 0.908654 0.878423 0.870835 0.850979 0.500000 0.898195 0.500000 0.855711 0.500000 0.867796 0.500000 0.880863 0.886530 0.874539 0.857505 0.873136 +0.756073 +0.255889 0.133643 0.741918 0.815715 0.330933 0.594686 0.682222 0.707759 0 1 1 0.500000 0 1 1 0.500000 0.881052 0.899280 0.500000 0.500000 0.859189 0.500000 0.866031 0.500000 0.916273 0.500000 0.500000 0.500000 0.500000 0.500000 0.853483 0.500000 +0.310262 +0.614753 0.362229 0.179256 0.147998 0.400125 0.301721 0.818010 0.497841 0 1 0 1 0 1 0 1 0.500000 0.859708 0.894477 0.500000 0.500000 0.904616 0.890043 0.885275 0.500000 0.500000 0.863573 0.500000 0.500000 0.869754 0.874862 0.894398 +0.445195 +0.459113 0.504160 0.819910 0.419654 0.522936 0.393249 0.742217 0.234810 0 0 0.500000 0 1 0.500000 0.500000 0 0.888813 0.876159 0.870661 0.880482 0.889255 0.884464 0.875635 0.853324 0.870437 0.500000 0.859176 0.500000 0.909297 0.884481 0.870348 0.862699 +0.803044 +0.718052 0.501312 0.146328 0.336324 0.795767 0.249199 0.487870 0.625576 1 0 1 0 1 0.500000 0 1 0.875172 0.890415 0.894770 0.500000 0.887916 0.880506 0.500000 0.500000 0.500000 0.900902 0.500000 0.898826 0.874018 0.500000 0.877488 0.867824 +0.506882 +0.283268 0.281705 0.423773 0.157516 0.369716 0.425025 0.403687 0.171173 0 0 0.500000 0 1 1 0.500000 0 0.838575 0.500000 0.907528 0.864370 0.500000 0.861944 0.897566 0.875704 0.853730 0.852056 0.899090 0.500000 0.879722 0.894375 0.500000 0.864446 +0.706370 +0.275586 0.779039 0.706775 0.565269 0.672206 0.368943 0.220975 0.518888 0 1 0 1 0 0 1 1 0.894648 0.909069 0.866376 0.848854 0.500000 0.863265 0.882529 0.500000 0.894071 0.886690 0.889785 0.867577 0.883987 0.500000 0.867684 0.874485 +0.686716 +0.386497 0.847522 0.497950 0.440781 0.406781 0.170409 0.264006 0.546402 0.500000 0.500000 0 1 0 1 0 0 0.903616 0.894599 0.500000 0.883079 0.876856 0.874426 0.500000 0.500000 0.500000 0.500000 0.878243 0.500000 0.500000 0.877846 0.500000 0.500000 +0.402750 +0.564519 0.869109 0.122875 0.559884 0.566206 0.428246 0.138802 0.251133 0 0.500000 0.500000 0 0 1 0 0.500000 0.891049 0.873229 0.880491 0.853184 0.863980 0.870323 0.892178 0.853883 0.500000 0.875810 0.877023 0.891494 0.500000 0.880572 0.500000 0.500000 +0.749673 +0.118760 0.191277 0.600678 0.596062 0.607077 0.145746 0.156380 0.481559 0 1 0.500000 0.500000 1 1 1 0.500000 0.500000 0.877675 0.500000 0.500000 0.889712 0.884927 0.865061 0.902488 0.500000 0.500000 0.864429 0.500000 0.898489 0.876020 0.883105 0.500000 +0.485782 +0.626473 0.534719 0.818455 0.771454 0.423428 0.753249 0.852511 0.352168 1 0 1 0 1 0 1 0.500000 0.873350 0.888904 0.884392 0.500000 0.500000 0.863734 0.901523 0.500000 0.834040 0.500000 0.878068 0.873411 0.899468 0.500000 0.500000 0.884395 +0.549032 +0.871930 0.327669 0.140164 0.743545 0.163235 0.488056 0.555441 0.298280 0.500000 1 1 0.500000 0.500000 0.500000 0 0 0.891979 0.872124 0.500000 0.861070 0.880369 0.880169 0.871414 0.876328 0.872293 0.500000 0.500000 0.500000 0.500000 0.884788 0.500000 0.500000 +0.555846 +0.217921 0.395411 0.276205 0.773797 0.608698 0.192775 0.168303 0.869977 0 0.500000 0 0 0.500000 0.500000 0.500000 0.500000 0.862366 0.872255 0.500000 0.871066 0.500000 0.882119 0.884644 0.896016 0.500000 0.500000 0.500000 0.500000 0.500000 0.885303 0.500000 0.500000 +0.430455 +0.493575 0.508398 0.843182 0.358549 0.727084 0.294489 0.869762 0.693923 0.500000 0 0 0 1 0.500000 1 0 0.500000 0.885077 0.901263 0.904029 0.884299 0.500000 0.864291 0.854609 0.891587 0.859601 0.893356 0.903551 0.918465 0.850867 0.888743 0.883408 +0.812250 +0.758288 0.741196 0.675858 0.153931 0.110373 0.847389 0.672982 0.605144 0.500000 0.500000 1 0.500000 0.500000 0 1 0.500000 0.500000 0.500000 0.500000 0.873743 0.866306 0.500000 0.887617 0.903111 0.904630 0.500000 0.887315 0.894147 0.500000 0.500000 0.887501 0.890954 +0.444515 +0.294706 0.531533 0.868088 0.563642 0.527373 0.555589 0.383966 0.711555 0 0 1 0.500000 0.500000 1 0 0.500000 0.886919 0.500000 0.500000 0.853409 0.891989 0.500000 0.500000 0.883468 0.500000 0.500000 0.500000 0.890571 0.500000 0.876767 0.878462 0.500000 +0.324671 +0.418988 0.539343 0.134583 0.543076 0.474616 0.274653 0.299634 0.154937 0 1 0 0.500000 0.500000 0 1 0 0.872634 0.500000 0.862249 0.862363 0.500000 0.835662 0.500000 0.500000 0.897437 0.925835 0.500000 0.855429 0.849942 0.856724 0.856890 0.500000 +0.528560 +0.304368 0.519867 0.797434 0.276385 0.607436 0.570448 0.514311 0.231679 0.500000 1 1 1 0 1 0.500000 0 0.874724 0.842110 0.879950 0.891193 0.500000 0.500000 0.500000 0.500000 0.871572 0.916130 0.500000 0.500000 0.500000 0.855454 0.879787 0.500000 +0.363379 +0.591139 0.276625 0.639412 0.397683 0.855231 0.472803 0.200844 0.583811 0 0.500000 1 1 0.500000 0 1 0.500000 0.904902 0.500000 0.859140 0.896632 0.861881 0.925374 0.872970 0.879446 0.907011 0.500000 0.500000 0.905715 0.905691 0.500000 0.500000 0.500000 +0.692255 +0.433674 0.156407 0.133679 0.538043 0.691193 0.281598 0.224854 0.123375 0 0.500000 0 0.500000 0.500000 1 0 1 0.500000 0.869674 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.870764 0.500000 0.885586 0.871380 0.500000 0.853011 0.858089 +0.315885 +0.636512 0.453734 0.507097 0.579994 0.159082 0.298099 0.741837 0.248355 1 1 0 1 1 1 0.500000 1 0.883357 0.885639 0.891336 0.900967 0.891477 0.872396 0.500000 0.888366 0.897836 0.874928 0.500000 0.500000 0.500000 0.871661 0.500000 0.906810 +0.613787 +0.490725 0.617993 0.406223 0.382178 0.268710 0.403688 0.185861 0.768853 1 0.500000 1 0.500000 0.500000 0 1 0 0.893329 0.500000 0.856720 0.500000 0.906596 0.847471 0.881031 0.881485 0.500000 0.858935 0.870577 0.882576 0.500000 0.500000 0.893714 0.500000 +0.549133 +0.758996 0.651953 0.773496 0.354767 0.371625 0.493379 0.428467 0.639855 1 1 0 0 1 0 1 0 0.500000 0.500000 0.896034 0.500000 0.903692 0.500000 0.858465 0.500000 0.500000 0.892160 0.500000 0.901835 0.500000 0.500000 0.500000 0.500000 +0.187982 +0.523724 0.824672 0.462837 0.709104 0.504034 0.292327 0.535023 0.327308 0.500000 0 0.500000 1 0 0.500000 0 0 0.892405 0.500000 0.500000 0.500000 0.500000 0.861710 0.876060 0.887427 0.860512 0.903463 0.928311 0.891213 0.890881 0.877907 0.500000 0.876752 +0.629382 +0.439639 0.411653 0.444763 0.125231 0.159083 0.312249 0.162158 0.782777 0 0 1 0 1 0 0 0.500000 0.879231 0.878849 0.916507 0.896460 0.864607 0.500000 0.884253 0.857033 0.906829 0.500000 0.500000 0.500000 0.500000 0.878911 0.849427 0.823728 +0.676979 +0.856166 0.188791 0.412919 0.128173 0.805352 0.545800 0.663128 0.586617 0 0.500000 0 1 1 1 1 1 0.500000 0.500000 0.883510 0.500000 0.856605 0.922449 0.900235 0.500000 0.500000 0.833732 0.500000 0.900357 0.500000 0.500000 0.929574 0.500000 +0.323702 +0.296494 0.176332 0.608517 0.342638 0.524896 0.532422 0.608377 0.391998 0.500000 0 1 0.500000 0.500000 1 0.500000 0 0.862448 0.910288 0.500000 0.891576 0.868892 0.855276 0.878677 0.500000 0.500000 0.882007 0.864832 0.917856 0.867703 0.890159 0.500000 0.500000 +0.698571 +0.321252 0.289947 0.543177 0.583050 0.321503 0.496627 0.609535 0.648214 0 0 0 1 0 1 1 1 0.841476 0.890810 0.881390 0.500000 0.857001 0.885494 0.500000 0.500000 0.500000 0.877486 0.500000 0.500000 0.500000 0.896866 0.500000 0.500000 +0.387133 +0.188428 0.702998 0.281574 0.619999 0.526210 0.205156 0.253198 0.500122 0 0.500000 1 0.500000 1 0 0 0 0.880115 0.500000 0.857499 0.500000 0.870856 0.907363 0.897938 0.871133 0.500000 0.500000 0.849251 0.880389 0.500000 0.859035 0.907451 0.500000 +0.583134 +0.533398 0.213781 0.409985 0.418541 0.211121 0.504787 0.156751 0.311198 0 1 0.500000 0 1 0 0 0 0.500000 0.884622 0.882853 0.870099 0.897641 0.863129 0.866313 0.500000 0.902289 0.874349 0.888585 0.905078 0.901980 0.500000 0.903873 0.500000 +0.688788 +0.521531 0.767795 0.526379 0.653184 0.664764 0.885837 0.459664 0.175277 0.500000 1 1 0.500000 0.500000 0.500000 0 0 0.892715 0.898997 0.896216 0.890013 0.500000 0.918025 0.885847 0.884459 0.874592 0.886060 0.500000 0.857542 0.849164 0.500000 0.897261 0.914081 +0.823048 +0.371616 0.344096 0.224081 0.721697 0.163688 0.112123 0.649606 0.529622 1 1 1 0 1 0 0.500000 0.500000 0.500000 0.877772 0.500000 0.906118 0.888124 0.872143 0.882390 0.891215 0.904886 0.500000 0.846249 0.883608 0.915172 0.861710 0.500000 0.860282 +0.700204 +0.697153 0.445970 0.424372 0.626046 0.555709 0.804766 0.294605 0.428897 1 0 1 0.500000 1 0.500000 0 1 0.500000 0.894164 0.885505 0.873720 0.876022 0.500000 0.882423 0.869621 0.892100 0.927539 0.897002 0.907046 0.500000 0.500000 0.500000 0.500000 +0.538533 +0.326459 0.599036 0.202657 0.648342 0.879220 0.453938 0.737470 0.455300 0.500000 1 0 0 1 0 1 1 0.905314 0.867790 0.896195 0.880477 0.861542 0.847484 0.875556 0.872628 0.848975 0.500000 0.500000 0.893447 0.500000 0.897053 0.864635 0.875508 +0.773068 +0.435228 0.672475 0.893373 0.721530 0.560133 0.750884 0.315574 0.846285 0.500000 0.500000 0.500000 0 0.500000 0 0 0 0.871975 0.871766 0.902228 0.870354 0.500000 0.861717 0.500000 0.882973 0.500000 0.500000 0.500000 0.500000 0.500000 0.883882 0.883815 0.899602 +0.345914 +0.269933 0.170491 0.845178 0.314332 0.782036 0.674833 0.519508 0.368024 1 1 0.500000 1 0.500000 0.500000 1 0 0.865478 0.868573 0.896007 0.500000 0.874711 0.500000 0.873005 0.860816 0.500000 0.500000 0.500000 0.867094 0.876120 0.884377 0.500000 0.500000 +0.540478 +0.794143 0.166563 0.431626 0.135184 0.230114 0.521170 0.309859 0.806384 0 1 1 0 1 0.500000 0.500000 1 0.500000 0.500000 0.888719 0.874854 0.500000 0.889843 0.893357 0.890818 0.911464 0.862982 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.364562 +0.870878 0.248321 0.127174 0.821152 0.498867 0.655066 0.289738 0.231842 1 0 0 0 0.500000 1 0.500000 0.500000 0.500000 0.846596 0.874153 0.892964 0.500000 0.907526 0.500000 0.500000 0.896486 0.500000 0.500000 0.876186 0.905061 0.500000 0.500000 0.906611 +0.315984 +0.382364 0.193009 0.899175 0.639450 0.235357 0.638519 0.581003 0.312833 0.500000 0.500000 1 0 0 0 1 1 0.869722 0.893343 0.888824 0.886846 0.500000 0.876945 0.880913 0.500000 0.500000 0.500000 0.883252 0.500000 0.500000 0.879053 0.924027 0.500000 +0.499379 +0.881901 0.706345 0.541693 0.429736 0.373147 0.489132 0.240315 0.768070 0 1 0 0.500000 1 1 0 1 0.500000 0.903497 0.906897 0.875461 0.884680 0.884707 0.883150 0.897558 0.500000 0.875699 0.866826 0.500000 0.500000 0.862584 0.500000 0.878997 +0.692149 +0.835297 0.631727 0.828398 0.688580 0.368053 0.473411 0.813004 0.351292 0 1 1 0 0.500000 0.500000 0 0 0.873950 0.500000 0.894381 0.894977 0.500000 0.500000 0.837224 0.884216 0.875944 0.500000 0.912719 0.500000 0.500000 0.881780 0.892427 0.884049 +0.491735 +0.643706 0.573287 0.227878 0.546008 0.150896 0.307446 0.253006 0.477911 0.500000 1 0 0 0.500000 0 0.500000 0 0.500000 0.866120 0.861533 0.500000 0.500000 0.912199 0.863966 0.500000 0.883591 0.500000 0.890640 0.846251 0.896277 0.878518 0.873563 0.500000 +0.564405 +0.320900 0.758768 0.809199 0.414288 0.737085 0.389930 0.153596 0.892812 1 1 1 0.500000 0.500000 1 0.500000 0 0.892382 0.500000 0.844629 0.900690 0.887400 0.878603 0.835084 0.894771 0.500000 0.914101 0.886643 0.500000 0.500000 0.893242 0.500000 0.500000 +0.620895 +0.675909 0.200061 0.228955 0.254467 0.222964 0.362929 0.753728 0.899208 0.500000 0 1 0 0 0 0 1 0.854031 0.871716 0.871569 0.500000 0.880623 0.900721 0.873576 0.500000 0.871884 0.863702 0.500000 0.887661 0.868866 0.884121 0.859172 0.500000 +0.670358 +0.182192 0.706667 0.357521 0.263440 0.642654 0.479663 0.289962 0.799507 1 1 0.500000 0 1 0 1 0.500000 0.500000 0.903812 0.885782 0.882223 0.500000 0.856665 0.880000 0.880346 0.500000 0.500000 0.500000 0.500000 0.871387 0.916086 0.883410 0.500000 +0.545105 +0.694898 0.146946 0.326505 0.574392 0.398713 0.565369 0.764330 0.691042 0 0 1 1 0.500000 1 1 0.500000 0.500000 0.905675 0.500000 0.849706 0.500000 0.899078 0.500000 0.500000 0.500000 0.894992 0.500000 0.500000 0.500000 0.500000 0.865268 0.500000 +0.201449 +0.254231 0.260261 0.802965 0.426635 0.262132 0.248552 0.821307 0.699632 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.938780 0.500000 0.867887 0.500000 0.500000 0.871383 0.853575 0.500000 0.500000 0.885467 0.500000 0.500000 0.890991 0.883101 0.884750 +0.413320 +0.800356 0.578725 0.439195 0.146655 0.229834 0.620941 0.354891 0.856150 1 0.500000 0.500000 0.500000 0.500000 0 1 0 0.893330 0.500000 0.877907 0.877991 0.500000 0.863522 0.887722 0.854492 0.879672 0.896778 0.500000 0.858061 0.500000 0.500000 0.887398 0.500000 +0.562019 +0.450286 0.160002 0.547408 0.482703 0.194726 0.163589 0.840210 0.810691 1 0.500000 1 1 1 0 0.500000 0.500000 0.500000 0.886888 0.900978 0.873959 0.888729 0.860823 0.500000 0.500000 0.500000 0.856994 0.500000 0.885231 0.902546 0.500000 0.500000 0.873192 +0.589367 +0.503888 0.252973 0.711063 0.638065 0.164468 0.410635 0.142894 0.212092 1 0.500000 0 1 0 1 1 0 0.500000 0.500000 0.890781 0.882774 0.867011 0.898465 0.917367 0.861370 0.903066 0.881630 0.500000 0.500000 0.500000 0.881763 0.866445 0.901900 +0.580389 +0.729781 0.833698 0.155154 0.678754 0.824725 0.548494 0.346131 0.820230 0 0.500000 1 0 0 1 0 1 0.500000 0.887575 0.899963 0.860655 0.869906 0.500000 0.879075 0.849498 0.500000 0.500000 0.500000 0.891487 0.867030 0.500000 0.500000 0.500000 +0.371745 +0.624931 0.215900 0.831943 0.260023 0.805493 0.523201 0.833956 0.504130 0 0.500000 0 0 0.500000 0.500000 0 0 0.892975 0.867402 0.500000 0.500000 0.903006 0.904080 0.879863 0.891493 0.500000 0.500000 0.861622 0.500000 0.500000 0.500000 0.500000 0.500000 +0.424035 +0.511224 0.347572 0.236106 0.435511 0.627596 0.201772 0.185253 0.139606 0 0.500000 1 0.500000 0.500000 1 1 0 0.500000 0.874066 0.894381 0.880203 0.877198 0.500000 0.881761 0.882421 0.500000 0.500000 0.500000 0.904398 0.500000 0.896406 0.500000 0.874933 +0.467125 +0.850644 0.172528 0.685156 0.413184 0.588615 0.252952 0.357931 0.747834 0 0 0.500000 0.500000 0.500000 1 0 0 0.890368 0.878286 0.873499 0.500000 0.876163 0.911307 0.500000 0.883391 0.880003 0.500000 0.500000 0.867831 0.500000 0.500000 0.891564 0.883483 +0.530709 +0.688829 0.554203 0.289842 0.374287 0.433095 0.824517 0.261490 0.663390 0 0 0.500000 0.500000 0.500000 1 1 0.500000 0.875103 0.879952 0.500000 0.500000 0.880438 0.902665 0.904796 0.882582 0.500000 0.868203 0.855586 0.500000 0.858746 0.500000 0.894514 0.864391 +0.641244 +0.245793 0.840483 0.597401 0.714964 0.596818 0.524902 0.630558 0.387010 1 0.500000 1 1 1 1 0 1 0.500000 0.896244 0.893757 0.885692 0.902482 0.870248 0.868454 0.500000 0.871907 0.856047 0.881208 0.872871 0.500000 0.877753 0.870597 0.500000 +0.684542 +0.750978 0.281943 0.419204 0.155896 0.336024 0.553494 0.366738 0.762634 0 0 0 0 0 0 0.500000 1 0.853894 0.857379 0.847744 0.887231 0.875515 0.500000 0.884878 0.871253 0.878062 0.860480 0.500000 0.500000 0.861921 0.846199 0.888150 0.500000 +0.671348 +0.674663 0.868174 0.394897 0.431917 0.234491 0.485491 0.652864 0.892443 0 1 0 0.500000 0.500000 0 1 1 0.500000 0.920512 0.895247 0.902264 0.500000 0.500000 0.500000 0.882884 0.500000 0.500000 0.500000 0.902263 0.899104 0.500000 0.860760 0.867105 +0.356773 +0.162442 0.764526 0.792899 0.856070 0.169265 0.235343 0.407641 0.216253 0 0.500000 1 1 0.500000 1 0 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.872385 0.881585 0.916977 0.859255 0.881342 0.500000 0.500000 0.853951 0.500000 0.862677 0.500000 +0.262269 +0.524027 0.321147 0.123404 0.654559 0.567661 0.881405 0.380653 0.242666 0 0 0 0 0 1 0.500000 0.500000 0.854205 0.887060 0.922858 0.859674 0.500000 0.500000 0.870180 0.500000 0.881369 0.500000 0.500000 0.500000 0.889766 0.500000 0.500000 0.856877 +0.419821 +0.430034 0.581097 0.299469 0.582849 0.148325 0.299477 0.706700 0.107515 1 0 1 0 1 0 0 0 0.882719 0.864806 0.879689 0.500000 0.880687 0.851623 0.500000 0.906764 0.888338 0.500000 0.876488 0.893914 0.882881 0.849335 0.888392 0.500000 +0.686846 +0.833068 0.766815 0.868564 0.552937 0.616574 0.567139 0.110875 0.484209 1 0 0 0.500000 0 1 1 0.500000 0.878171 0.500000 0.500000 0.916095 0.869694 0.500000 0.856477 0.500000 0.500000 0.500000 0.886028 0.500000 0.500000 0.500000 0.922790 0.890510 +0.267576 +0.619918 0.767308 0.341155 0.394379 0.527336 0.728064 0.778882 0.472338 0.500000 1 0 0.500000 0.500000 1 0.500000 0.500000 0.895721 0.870807 0.500000 0.846532 0.500000 0.917197 0.892945 0.894352 0.883275 0.500000 0.869582 0.886341 0.500000 0.500000 0.863159 0.899811 +0.574459 +0.264077 0.139566 0.287280 0.523264 0.292977 0.261010 0.593370 0.171026 0 0.500000 1 1 0 0 0 0.500000 0.846614 0.841243 0.889603 0.885288 0.896680 0.877835 0.500000 0.500000 0.891676 0.869068 0.500000 0.500000 0.500000 0.500000 0.500000 0.869941 +0.507837 +0.145936 0.149144 0.469617 0.246815 0.416314 0.395253 0.813348 0.546299 0 0 0 0 0 0 1 0.500000 0.876658 0.883371 0.854173 0.849270 0.893889 0.500000 0.913043 0.886350 0.903767 0.910709 0.888370 0.866770 0.500000 0.889438 0.874166 0.500000 +0.676093 +0.776808 0.815598 0.764617 0.725102 0.587621 0.347854 0.189730 0.193885 0.500000 1 0 1 1 0 0.500000 0 0.901249 0.500000 0.870115 0.903754 0.890416 0.895624 0.862628 0.500000 0.500000 0.892637 0.500000 0.920425 0.868005 0.500000 0.500000 0.500000 +0.484117 +0.185594 0.270631 0.698105 0.453344 0.346145 0.263280 0.341254 0.454865 0 0.500000 0 0 1 0.500000 0 0.500000 0.875431 0.500000 0.922400 0.888508 0.885747 0.500000 0.500000 0.877550 0.874251 0.500000 0.883586 0.880010 0.856612 0.920255 0.500000 0.500000 +0.501837 +0.405756 0.545666 0.807593 0.616996 0.443367 0.665101 0.147482 0.537449 0 0.500000 0 0 1 0.500000 1 0.500000 0.881763 0.500000 0.885910 0.900615 0.902904 0.884726 0.843531 0.843261 0.878289 0.500000 0.878239 0.500000 0.863946 0.500000 0.500000 0.500000 +0.525995 +0.485922 0.697916 0.474604 0.873804 0.619070 0.104432 0.192359 0.383463 0 0.500000 0 0 0.500000 1 1 0.500000 0.864492 0.882626 0.868990 0.500000 0.500000 0.859364 0.883269 0.862370 0.861230 0.899272 0.880752 0.500000 0.500000 0.500000 0.886800 0.500000 +0.500952 +0.783008 0.208322 0.663067 0.372307 0.771482 0.106716 0.169512 0.387883 0 0.500000 0.500000 0 1 0 0 0 0.880752 0.857962 0.500000 0.864919 0.500000 0.878469 0.868842 0.500000 0.899838 0.901821 0.500000 0.500000 0.500000 0.500000 0.500000 0.917265 +0.393166 +0.123078 0.770860 0.838258 0.802545 0.576179 0.835535 0.642484 0.830382 0.500000 0 0.500000 0.500000 0.500000 0 0 0 0.864646 0.895857 0.893897 0.910613 0.856969 0.864664 0.873835 0.900362 0.500000 0.500000 0.500000 0.500000 0.870877 0.500000 0.500000 0.905556 +0.572211 +0.662152 0.189785 0.321485 0.193922 0.243580 0.447804 0.847989 0.354848 0 0.500000 0 0 0 0.500000 0.500000 1 0.910158 0.870990 0.500000 0.888883 0.862295 0.500000 0.886825 0.912643 0.880315 0.500000 0.500000 0.500000 0.888434 0.500000 0.863781 0.500000 +0.464262 +0.592289 0.405015 0.885285 0.779400 0.370076 0.867571 0.667775 0.301427 1 0.500000 1 0.500000 0 1 0 1 0.500000 0.878708 0.500000 0.891110 0.860046 0.874375 0.891598 0.500000 0.894114 0.892653 0.886819 0.874745 0.500000 0.500000 0.500000 0.500000 +0.511144 +0.334109 0.376128 0.178415 0.418540 0.202311 0.445853 0.847400 0.854610 0.500000 1 0 1 0 0 0.500000 0.500000 0.500000 0.500000 0.908242 0.856101 0.879573 0.876043 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.877898 0.500000 0.500000 +0.357270 +0.420283 0.703217 0.772133 0.642764 0.740554 0.292925 0.188176 0.467855 0 0.500000 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.866816 0.876575 0.912579 0.871341 0.889117 0.889159 0.500000 0.871873 0.500000 0.500000 0.899785 0.866989 0.500000 +0.454592 +0.558513 0.726728 0.709683 0.638860 0.717493 0.712793 0.110441 0.387334 0.500000 0 1 0 0.500000 0.500000 1 0.500000 0.887456 0.500000 0.500000 0.500000 0.867052 0.500000 0.893558 0.906320 0.500000 0.897415 0.890280 0.500000 0.896453 0.858599 0.500000 0.500000 +0.306486 +0.584420 0.144208 0.703403 0.696151 0.402891 0.392351 0.848024 0.142158 1 0.500000 1 0 0 0.500000 1 0 0.854243 0.500000 0.889756 0.883268 0.865250 0.881882 0.904868 0.500000 0.885754 0.878798 0.500000 0.891316 0.894837 0.876547 0.500000 0.500000 +0.667230 +0.305319 0.502045 0.472759 0.268966 0.706476 0.336257 0.467373 0.141365 0 0.500000 1 1 0 0 1 0 0.500000 0.500000 0.862029 0.903327 0.864791 0.913140 0.886211 0.871240 0.880046 0.893725 0.886079 0.500000 0.500000 0.857475 0.868368 0.866089 +0.645519 +0.431338 0.897179 0.683923 0.494844 0.242029 0.774981 0.513497 0.144129 0 0.500000 0.500000 0 1 0 0 1 0.500000 0.893966 0.906773 0.856914 0.500000 0.500000 0.500000 0.887500 0.500000 0.500000 0.895306 0.881074 0.500000 0.859804 0.866762 0.867463 +0.413454 +0.539263 0.385712 0.457904 0.199578 0.107876 0.479373 0.226757 0.101638 0.500000 0.500000 0 0 1 1 0 1 0.500000 0.851315 0.899505 0.500000 0.883678 0.500000 0.500000 0.872578 0.500000 0.905133 0.873491 0.500000 0.500000 0.500000 0.500000 0.908193 +0.355226 +0.305014 0.167634 0.822226 0.153393 0.673929 0.517825 0.882774 0.191344 0 0.500000 1 1 1 1 0 0 0.898751 0.500000 0.854588 0.875395 0.880806 0.892077 0.910620 0.868170 0.500000 0.500000 0.849035 0.862271 0.878897 0.500000 0.890894 0.866427 +0.751594 +0.869488 0.880786 0.365453 0.764040 0.619377 0.472566 0.212914 0.251248 0.500000 1 0 0.500000 0 0.500000 0 1 0.902855 0.500000 0.856891 0.500000 0.892295 0.865840 0.875835 0.900844 0.857534 0.886018 0.500000 0.500000 0.500000 0.885540 0.850822 0.500000 +0.473298 +0.547125 0.526800 0.532548 0.339335 0.195723 0.120716 0.271627 0.628823 1 1 1 0.500000 1 0.500000 0 0 0.884474 0.874723 0.910481 0.913168 0.500000 0.904478 0.857401 0.885940 0.500000 0.896370 0.500000 0.500000 0.892709 0.500000 0.891744 0.500000 +0.609284 +0.305421 0.608413 0.193633 0.186153 0.877439 0.111495 0.500850 0.384949 0.500000 0.500000 0 0.500000 0.500000 0 0 0.500000 0.500000 0.886775 0.890515 0.872838 0.877337 0.881460 0.885185 0.852933 0.500000 0.893523 0.500000 0.500000 0.874559 0.500000 0.898835 0.862359 +0.634929 +0.143313 0.869186 0.603876 0.749356 0.231890 0.781079 0.601581 0.565249 0 0 0.500000 0.500000 0.500000 1 0 1 0.884339 0.881570 0.861901 0.904173 0.880071 0.823201 0.877888 0.500000 0.500000 0.500000 0.876453 0.881045 0.880251 0.852829 0.500000 0.874763 +0.651143 +0.674023 0.505651 0.279693 0.208079 0.585235 0.238864 0.387859 0.542739 0.500000 1 0 1 1 0.500000 0 1 0.887215 0.885121 0.500000 0.908378 0.860582 0.899298 0.876110 0.500000 0.500000 0.500000 0.859557 0.500000 0.500000 0.500000 0.884966 0.880219 +0.518032 +0.874530 0.824030 0.865372 0.503984 0.253553 0.861962 0.789234 0.853328 0.500000 0.500000 0.500000 0 0 1 1 0.500000 0.500000 0.877905 0.500000 0.500000 0.500000 0.897303 0.875420 0.500000 0.500000 0.900421 0.906399 0.881733 0.500000 0.873296 0.895479 0.878433 +0.508586 +0.850655 0.367161 0.672102 0.210821 0.267016 0.734825 0.810144 0.290986 0.500000 1 0 0 0 0 1 0 0.877907 0.904955 0.869353 0.500000 0.889122 0.902530 0.500000 0.875910 0.500000 0.500000 0.500000 0.876586 0.856135 0.500000 0.906067 0.887008 +0.543119 +0.122011 0.431794 0.570076 0.668656 0.698913 0.428325 0.659975 0.397765 1 0.500000 0 0 0 0 0.500000 1 0.897319 0.865676 0.500000 0.895949 0.855033 0.877143 0.500000 0.884856 0.500000 0.500000 0.925923 0.872428 0.886931 0.878953 0.500000 0.500000 +0.509384 +0.334366 0.682453 0.583891 0.850666 0.548620 0.854642 0.173579 0.745515 0.500000 1 1 0 0 0.500000 1 1 0.500000 0.856593 0.917158 0.889393 0.898590 0.891097 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.887919 0.872208 0.500000 0.874510 +0.353849 +0.110763 0.190860 0.786893 0.702925 0.665306 0.405880 0.223266 0.639294 1 1 0 0.500000 0 1 0.500000 0.500000 0.914051 0.898188 0.500000 0.873408 0.878964 0.882615 0.897842 0.500000 0.874287 0.500000 0.889251 0.500000 0.883803 0.877717 0.500000 0.899891 +0.695974 +0.234892 0.833086 0.282750 0.385996 0.428584 0.205100 0.114979 0.655309 0.500000 0 0.500000 0.500000 0 1 0.500000 0.500000 0.500000 0.500000 0.890232 0.884859 0.500000 0.867902 0.899183 0.500000 0.863614 0.869903 0.851875 0.869334 0.894219 0.871167 0.886578 0.886234 +0.652391 +0.613952 0.487318 0.160200 0.685404 0.591188 0.300516 0.580215 0.676677 0 1 1 0 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.877324 0.860415 0.901615 0.880539 0.913263 0.500000 0.500000 0.500000 0.861187 0.884526 0.890282 0.500000 0.500000 +0.374780 +0.299352 0.210366 0.626964 0.787882 0.530491 0.167563 0.431266 0.479865 0.500000 1 0 0.500000 0.500000 0.500000 1 0.500000 0.886418 0.866374 0.500000 0.900747 0.909363 0.880980 0.500000 0.877051 0.500000 0.500000 0.500000 0.500000 0.500000 0.889617 0.500000 0.500000 +0.436791 +0.535580 0.898240 0.116356 0.586970 0.604524 0.435930 0.473651 0.851517 0.500000 0.500000 1 1 0.500000 0 1 1 0.500000 0.500000 0.914042 0.500000 0.898271 0.894448 0.866210 0.868631 0.500000 0.500000 0.913888 0.500000 0.500000 0.500000 0.500000 0.892469 +0.404690 +0.297671 0.754869 0.887043 0.724551 0.127649 0.793830 0.507037 0.365396 0.500000 1 0.500000 0 1 0.500000 0.500000 0 0.891384 0.500000 0.500000 0.859386 0.500000 0.904548 0.896180 0.856625 0.500000 0.878487 0.500000 0.500000 0.859507 0.500000 0.869845 0.858398 +0.416470 +0.563625 0.244246 0.444565 0.805830 0.584383 0.324704 0.698245 0.401267 0 1 0 0 0.500000 0.500000 1 0.500000 0.897504 0.864224 0.500000 0.500000 0.864499 0.868503 0.500000 0.888379 0.500000 0.863866 0.500000 0.876166 0.884115 0.842957 0.500000 0.500000 +0.404165 +0.369124 0.870810 0.711243 0.465011 0.435101 0.138500 0.768677 0.147475 0.500000 0 0 1 0.500000 0 0 1 0.500000 0.879048 0.875897 0.854934 0.886153 0.876960 0.874102 0.878992 0.500000 0.500000 0.884567 0.894950 0.862870 0.500000 0.903204 0.913927 +0.674978 +0.618682 0.782543 0.407053 0.742918 0.827502 0.822262 0.760387 0.829086 0 1 0 0.500000 0 1 1 0.500000 0.889443 0.871556 0.867634 0.883258 0.500000 0.901188 0.879748 0.500000 0.872313 0.500000 0.878238 0.867332 0.886954 0.867290 0.886072 0.500000 +0.573719 +0.146187 0.359737 0.704868 0.514640 0.154209 0.795194 0.230760 0.187458 0.500000 1 0 1 0 0 1 0.500000 0.500000 0.500000 0.874278 0.907222 0.500000 0.865034 0.500000 0.908256 0.500000 0.881623 0.500000 0.500000 0.500000 0.867892 0.500000 0.895367 +0.349422 +0.722189 0.436111 0.312348 0.239292 0.383704 0.320518 0.741790 0.261636 1 0.500000 1 0.500000 0 0.500000 1 1 0.875219 0.500000 0.888723 0.902059 0.907778 0.884184 0.500000 0.851067 0.500000 0.831927 0.500000 0.500000 0.844869 0.869449 0.886841 0.500000 +0.581241 +0.841141 0.457250 0.403354 0.169089 0.476130 0.117641 0.599088 0.271747 0 0 1 0 1 0.500000 0.500000 1 0.892746 0.500000 0.500000 0.882479 0.886317 0.863235 0.886048 0.856801 0.500000 0.891396 0.500000 0.856451 0.500000 0.869271 0.500000 0.875058 +0.557606 +0.357640 0.663184 0.736438 0.715716 0.436311 0.474300 0.558639 0.446265 0.500000 1 0 1 0 0 0 1 0.891100 0.500000 0.880231 0.500000 0.880221 0.861820 0.500000 0.867575 0.500000 0.901439 0.500000 0.877565 0.500000 0.500000 0.500000 0.500000 +0.319844 +0.203652 0.574426 0.179154 0.839119 0.881929 0.386346 0.712085 0.210873 0 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.884446 0.907144 0.500000 0.869963 0.880037 0.885734 0.890401 0.500000 0.500000 0.500000 0.899381 0.500000 0.500000 0.865929 0.889329 +0.487447 +0.454268 0.684575 0.251247 0.516550 0.258345 0.610741 0.126975 0.676894 1 1 0 0.500000 0.500000 0 0 0.500000 0.500000 0.890592 0.500000 0.864609 0.500000 0.897846 0.874218 0.885330 0.500000 0.500000 0.852212 0.500000 0.500000 0.500000 0.839493 0.882070 +0.469962 +0.459038 0.859987 0.394653 0.330374 0.794164 0.519983 0.362448 0.658081 0.500000 0.500000 1 0.500000 0 0 0.500000 0.500000 0.920323 0.500000 0.897657 0.912455 0.500000 0.895014 0.865516 0.868358 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.898385 0.500000 +0.426634 +0.185055 0.818133 0.158230 0.365499 0.749194 0.700744 0.807457 0.727989 0 0.500000 0 0 0.500000 0.500000 0.500000 1 0.892232 0.500000 0.500000 0.865901 0.886794 0.500000 0.866211 0.500000 0.500000 0.500000 0.886281 0.500000 0.500000 0.500000 0.875659 0.500000 +0.250822 +0.638225 0.448368 0.716938 0.178276 0.485293 0.515068 0.151326 0.334710 1 0.500000 0 1 1 0.500000 1 1 0.901076 0.881531 0.500000 0.847950 0.904678 0.872760 0.837770 0.856164 0.878270 0.885258 0.500000 0.904100 0.876507 0.500000 0.865506 0.500000 +0.612473 +0.410108 0.888121 0.442896 0.758251 0.129956 0.374605 0.178267 0.335070 0.500000 1 1 0 0 0.500000 1 0.500000 0.500000 0.870450 0.942275 0.500000 0.500000 0.882671 0.890472 0.906222 0.500000 0.873900 0.500000 0.885221 0.500000 0.500000 0.895633 0.500000 +0.427469 +0.697620 0.292413 0.380635 0.724771 0.633491 0.883588 0.267454 0.105143 0 0.500000 0.500000 0.500000 0.500000 0 0 0.500000 0.891131 0.854365 0.876820 0.846402 0.913774 0.500000 0.500000 0.923617 0.500000 0.500000 0.500000 0.873217 0.500000 0.500000 0.500000 0.886641 +0.383309 +0.136678 0.542616 0.748136 0.529608 0.519288 0.666377 0.799817 0.329189 1 0.500000 0.500000 0 0.500000 0.500000 1 0.500000 0.863148 0.884571 0.898279 0.883984 0.871865 0.888789 0.877838 0.874703 0.500000 0.500000 0.500000 0.500000 0.895434 0.500000 0.500000 0.890604 +0.662547 +0.772358 0.414467 0.547107 0.223250 0.360512 0.133550 0.775167 0.423752 0.500000 1 0 0 0 0.500000 0.500000 1 0.500000 0.854369 0.858295 0.882854 0.854694 0.908736 0.879401 0.872348 0.500000 0.880786 0.870762 0.868072 0.500000 0.913064 0.878939 0.893423 +0.746076 +0.463799 0.866612 0.541504 0.457577 0.297778 0.157877 0.836524 0.456257 0.500000 1 0 1 0 1 1 0.500000 0.500000 0.889628 0.500000 0.881983 0.879779 0.877815 0.500000 0.888581 0.903464 0.500000 0.910660 0.500000 0.867798 0.500000 0.500000 0.500000 +0.424373 +0.421222 0.479349 0.625803 0.462906 0.265841 0.189121 0.358947 0.224521 0 0 0.500000 1 1 0.500000 0.500000 0 0.863924 0.860239 0.500000 0.902259 0.862371 0.883866 0.872061 0.500000 0.883566 0.895899 0.500000 0.862623 0.500000 0.894486 0.500000 0.877497 +0.549859 +0.430517 0.698864 0.407771 0.806885 0.708880 0.752886 0.356621 0.326516 1 1 0.500000 0 0.500000 1 0.500000 0 0.859281 0.901305 0.894297 0.875606 0.500000 0.500000 0.500000 0.500000 0.858819 0.893100 0.910196 0.500000 0.898082 0.500000 0.500000 0.500000 +0.440074 +0.726037 0.311160 0.267587 0.742107 0.790285 0.119941 0.852380 0.550254 0 0.500000 1 0.500000 1 0.500000 0.500000 0 0.883165 0.873335 0.869760 0.876191 0.861938 0.500000 0.882119 0.890554 0.500000 0.911622 0.879982 0.500000 0.500000 0.858805 0.500000 0.500000 +0.602746 +0.614496 0.831147 0.493448 0.785116 0.451719 0.243606 0.880133 0.595406 1 1 1 0 0.500000 1 1 1 0.863470 0.500000 0.887394 0.500000 0.500000 0.906836 0.894752 0.500000 0.500000 0.500000 0.500000 0.904293 0.500000 0.500000 0.888864 0.887167 +0.384145 +0.625050 0.623564 0.441969 0.368662 0.305775 0.158438 0.670605 0.652531 1 1 0 0.500000 0 0 1 0 0.888088 0.893676 0.899513 0.848414 0.500000 0.846937 0.500000 0.867126 0.500000 0.500000 0.500000 0.500000 0.863782 0.500000 0.871788 0.869045 +0.549747 +0.243228 0.139960 0.507080 0.298915 0.858344 0.786315 0.597539 0.632684 0 1 1 0 0.500000 0 0.500000 0.500000 0.867815 0.880225 0.892103 0.500000 0.889279 0.887476 0.500000 0.900216 0.500000 0.893514 0.500000 0.500000 0.893815 0.500000 0.866961 0.500000 +0.586379 +0.872721 0.818416 0.117219 0.706181 0.184187 0.636843 0.420831 0.303171 0.500000 0 1 1 0 0 0 1 0.500000 0.864129 0.896324 0.873275 0.901556 0.500000 0.500000 0.862501 0.902873 0.873722 0.890219 0.910543 0.910793 0.882599 0.500000 0.896943 +0.738842 +0.698412 0.810120 0.679062 0.396621 0.612418 0.308955 0.803449 0.569328 1 0.500000 0.500000 0 1 1 0 0 0.500000 0.862548 0.884168 0.871933 0.500000 0.887294 0.877751 0.881241 0.892698 0.885506 0.881380 0.500000 0.500000 0.500000 0.883749 0.500000 +0.540841 +0.141952 0.389428 0.508493 0.842829 0.830143 0.410098 0.712253 0.630951 0.500000 0 0.500000 1 1 1 0 0 0.500000 0.500000 0.883027 0.868852 0.889289 0.873090 0.869133 0.500000 0.500000 0.888703 0.912563 0.895965 0.869241 0.868854 0.876892 0.500000 +0.580486 +0.503232 0.427503 0.441869 0.288854 0.571539 0.463472 0.174729 0.876190 1 0 0.500000 0 0.500000 0.500000 0 1 0.500000 0.886167 0.843606 0.500000 0.860953 0.886227 0.864918 0.863040 0.877897 0.500000 0.887929 0.906042 0.877265 0.860423 0.927628 0.500000 +0.656897 +0.224056 0.315095 0.807289 0.299940 0.491032 0.179890 0.417468 0.583643 1 0 1 0 1 0.500000 0 1 0.874198 0.500000 0.891656 0.500000 0.888195 0.894201 0.500000 0.893936 0.500000 0.841951 0.500000 0.886033 0.500000 0.500000 0.896062 0.500000 +0.511218 +0.205261 0.420411 0.448375 0.838021 0.825704 0.206353 0.382989 0.299809 1 1 0 0 1 0 0.500000 0 0.872038 0.861734 0.884404 0.874789 0.873049 0.500000 0.859593 0.842636 0.500000 0.887486 0.882711 0.897566 0.892495 0.500000 0.500000 0.890172 +0.679160 +0.888334 0.834530 0.543374 0.693028 0.724706 0.335364 0.658688 0.377971 1 0.500000 0 0 0 0.500000 0.500000 0 0.908188 0.878464 0.500000 0.836802 0.500000 0.908780 0.882086 0.880812 0.500000 0.876296 0.878296 0.500000 0.500000 0.862242 0.888583 0.861688 +0.470256 +0.489404 0.821395 0.591751 0.161983 0.253518 0.271753 0.356324 0.140286 0.500000 1 0 0.500000 0 0.500000 0 0 0.893696 0.500000 0.500000 0.885201 0.881835 0.500000 0.885267 0.500000 0.500000 0.867088 0.872282 0.500000 0.896933 0.500000 0.500000 0.897500 +0.336797 +0.390077 0.226472 0.119426 0.193617 0.718654 0.221070 0.526067 0.206261 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.925856 0.889713 0.853087 0.877771 0.849958 0.901413 0.500000 0.882498 0.500000 0.500000 0.500000 0.500000 0.500000 0.866721 +0.533613 +0.240557 0.839935 0.196208 0.262344 0.612337 0.542364 0.516725 0.803840 1 0 1 1 1 1 0.500000 0.500000 0.912662 0.877480 0.857390 0.916878 0.873441 0.899920 0.902327 0.886720 0.500000 0.500000 0.892334 0.888421 0.867540 0.500000 0.880316 0.500000 +0.730237 +0.547444 0.299728 0.128713 0.282707 0.449691 0.553475 0.856388 0.710568 0 1 1 1 0.500000 0 0 0 0.898806 0.913035 0.500000 0.892052 0.871585 0.872830 0.500000 0.880377 0.870603 0.500000 0.500000 0.500000 0.500000 0.875842 0.839760 0.880814 +0.533907 +0.776419 0.677375 0.833640 0.785129 0.664371 0.683155 0.383463 0.269871 1 0.500000 1 0 0 1 0 0.500000 0.870821 0.862911 0.890500 0.896990 0.500000 0.500000 0.500000 0.857675 0.887641 0.865081 0.500000 0.500000 0.500000 0.881352 0.500000 0.887590 +0.407027 +0.193517 0.633831 0.197420 0.639210 0.207381 0.853401 0.105524 0.133656 0 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.883279 0.855253 0.500000 0.855598 0.922810 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.888447 0.500000 0.872966 0.848814 0.885444 +0.410539 +0.625571 0.577039 0.891265 0.492840 0.165406 0.176580 0.786978 0.536347 0 0.500000 1 1 0.500000 0.500000 0 0.500000 0.878161 0.500000 0.500000 0.862213 0.858082 0.909804 0.500000 0.500000 0.500000 0.500000 0.870447 0.837027 0.882419 0.500000 0.500000 0.907457 +0.347610 +0.281930 0.196565 0.674129 0.680302 0.441461 0.630582 0.786869 0.301696 0.500000 1 0.500000 0.500000 0 0 0.500000 0 0.500000 0.906634 0.873321 0.872830 0.500000 0.869672 0.875071 0.867596 0.500000 0.500000 0.500000 0.868706 0.500000 0.500000 0.903342 0.855254 +0.484791 +0.713945 0.271138 0.421197 0.851078 0.267575 0.530707 0.596782 0.713462 0 0 0 1 1 0.500000 1 1 0.861449 0.861192 0.901334 0.871555 0.899374 0.884193 0.868928 0.865637 0.861825 0.862784 0.500000 0.500000 0.500000 0.500000 0.898287 0.888503 +0.731517 +0.201280 0.709775 0.587028 0.786132 0.726240 0.511098 0.618743 0.210659 1 0.500000 0.500000 0 0.500000 1 0.500000 1 0.899910 0.500000 0.891850 0.500000 0.865745 0.879712 0.893732 0.856107 0.893154 0.873298 0.500000 0.885359 0.875084 0.500000 0.868668 0.893469 +0.784612 +0.733219 0.213828 0.413183 0.573432 0.269643 0.883606 0.566578 0.279406 0 0.500000 0.500000 0 0 0 0.500000 0 0.853974 0.883660 0.894005 0.854155 0.892723 0.884087 0.867753 0.500000 0.896568 0.875408 0.858418 0.500000 0.886837 0.866275 0.844244 0.896363 +0.721266 +0.615057 0.666355 0.431164 0.373216 0.840122 0.124051 0.318141 0.804015 0.500000 1 1 1 0 1 0.500000 0.500000 0.874958 0.500000 0.876704 0.869151 0.880062 0.862652 0.881749 0.500000 0.895160 0.500000 0.859916 0.500000 0.500000 0.897996 0.874557 0.500000 +0.581602 +0.188306 0.255657 0.227577 0.294619 0.653219 0.453131 0.781059 0.254334 0.500000 1 0 0.500000 1 0.500000 0.500000 0.500000 0.900692 0.875218 0.917538 0.884940 0.500000 0.886232 0.881534 0.872273 0.500000 0.873260 0.500000 0.901143 0.880088 0.872197 0.855564 0.876648 +0.825999 +0.884007 0.105257 0.461443 0.476910 0.429721 0.126285 0.271603 0.235000 0 0.500000 1 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.874233 0.859798 0.870730 0.855071 0.862644 0.887595 0.500000 0.500000 0.896816 0.868739 0.500000 0.869231 0.500000 0.500000 0.500000 +0.460645 +0.479092 0.294089 0.548846 0.650049 0.781785 0.453239 0.194742 0.421358 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.886614 0.500000 0.873957 0.909104 0.868167 0.876924 0.500000 0.868349 0.500000 0.500000 0.500000 0.848465 0.868177 0.884041 0.500000 0.500000 +0.449925 +0.811678 0.469143 0.282871 0.804316 0.740462 0.345946 0.113281 0.106417 1 0.500000 0.500000 1 1 0 1 0.500000 0.848140 0.911097 0.500000 0.865818 0.883150 0.886837 0.877059 0.883279 0.500000 0.900471 0.500000 0.500000 0.893555 0.871564 0.500000 0.895516 +0.669929 +0.178715 0.657595 0.396434 0.666180 0.686740 0.637021 0.214774 0.305259 0 0 1 0 0 1 0.500000 0 0.500000 0.500000 0.500000 0.858893 0.500000 0.500000 0.893748 0.844392 0.500000 0.500000 0.500000 0.500000 0.892205 0.894507 0.898007 0.500000 +0.214814 +0.573751 0.828301 0.660076 0.490327 0.322453 0.460473 0.170745 0.310888 0.500000 1 1 1 0 0.500000 1 1 0.879076 0.864839 0.500000 0.865366 0.500000 0.500000 0.500000 0.888938 0.500000 0.500000 0.500000 0.843253 0.898389 0.500000 0.873123 0.500000 +0.324019 +0.590033 0.890300 0.280460 0.290195 0.711295 0.536417 0.568123 0.648526 1 0.500000 1 1 0 1 0 0 0.883484 0.863876 0.879567 0.500000 0.864714 0.500000 0.874396 0.873496 0.903151 0.500000 0.907606 0.500000 0.902322 0.863365 0.911728 0.901963 +0.667383 +0.237505 0.746544 0.160971 0.833588 0.706641 0.715958 0.501433 0.590375 0 1 1 1 1 0 1 0.500000 0.882407 0.856246 0.500000 0.886992 0.865823 0.500000 0.872020 0.875141 0.500000 0.500000 0.500000 0.866787 0.500000 0.500000 0.500000 0.867921 +0.510460 +0.772414 0.557056 0.242620 0.314802 0.681641 0.540983 0.494066 0.764422 1 1 0.500000 0.500000 0.500000 1 0 0 0.882495 0.883611 0.883204 0.887122 0.868835 0.500000 0.500000 0.845314 0.890090 0.873603 0.500000 0.875494 0.857736 0.500000 0.875470 0.867242 +0.695028 +0.861753 0.479270 0.891331 0.807265 0.704596 0.738587 0.830403 0.781244 0 1 0.500000 0 0.500000 1 0 0.500000 0.877048 0.822328 0.881139 0.883058 0.882570 0.905935 0.886436 0.892758 0.500000 0.878882 0.901773 0.891120 0.500000 0.500000 0.500000 0.500000 +0.607510 +0.792099 0.213091 0.824385 0.442464 0.691242 0.305377 0.671513 0.721652 0 0 1 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.896012 0.902036 0.500000 0.500000 0.500000 0.868592 0.836835 0.890687 0.875079 0.500000 0.874687 0.500000 0.886797 0.500000 0.500000 +0.311822 +0.871030 0.405427 0.616079 0.245830 0.673010 0.281439 0.737104 0.700480 0.500000 0 0 0 0 0 0 1 0.500000 0.875435 0.869708 0.500000 0.500000 0.888334 0.902048 0.855295 0.500000 0.913200 0.875933 0.500000 0.885415 0.854639 0.886555 0.891698 +0.454918 +0.709139 0.296296 0.840752 0.318901 0.767772 0.139431 0.414478 0.728666 0.500000 0.500000 1 0 1 1 0.500000 0.500000 0.918263 0.878330 0.876896 0.895995 0.500000 0.889258 0.914973 0.836510 0.870755 0.861136 0.500000 0.874467 0.878437 0.903744 0.500000 0.845841 +0.735760 +0.285699 0.345878 0.569898 0.877411 0.451054 0.269698 0.212634 0.333412 1 0 1 1 1 1 1 0 0.882104 0.500000 0.913673 0.862357 0.500000 0.897365 0.500000 0.897020 0.867708 0.500000 0.876689 0.875736 0.500000 0.876390 0.872849 0.500000 +0.475808 +0.868210 0.204584 0.236074 0.698058 0.464608 0.873086 0.563393 0.347879 0.500000 0 0 1 0.500000 1 0 0 0.896697 0.852409 0.851770 0.500000 0.885214 0.871793 0.888675 0.880034 0.500000 0.500000 0.500000 0.899410 0.891796 0.500000 0.826243 0.500000 +0.581696 +0.861520 0.568884 0.635173 0.350631 0.451921 0.437445 0.337044 0.896291 0 0.500000 0 1 0.500000 1 0 1 0.874213 0.894734 0.888562 0.500000 0.863854 0.883746 0.890933 0.500000 0.500000 0.500000 0.883813 0.851547 0.500000 0.889502 0.879417 0.860834 +0.534436 +0.744286 0.614807 0.457315 0.693010 0.417487 0.898413 0.625129 0.342232 1 0.500000 1 1 0.500000 1 1 0.500000 0.828933 0.500000 0.895386 0.910360 0.500000 0.899364 0.883903 0.867398 0.897927 0.500000 0.500000 0.903854 0.500000 0.500000 0.500000 0.500000 +0.456922 +0.362174 0.853440 0.764272 0.521899 0.559555 0.637321 0.452270 0.697054 0.500000 1 1 0.500000 1 1 0.500000 1 0.876357 0.888429 0.897100 0.500000 0.894151 0.871351 0.500000 0.500000 0.500000 0.850572 0.500000 0.878538 0.500000 0.500000 0.500000 0.500000 +0.326044 +0.830341 0.540794 0.522289 0.708097 0.387718 0.582299 0.504638 0.849282 0.500000 0 1 1 0.500000 0 1 1 0.863211 0.879223 0.900633 0.892057 0.500000 0.500000 0.500000 0.500000 0.500000 0.932343 0.500000 0.500000 0.500000 0.500000 0.500000 0.881523 +0.221122 +0.506516 0.421826 0.235616 0.203015 0.280550 0.208198 0.180683 0.144710 0 0 0.500000 0.500000 0.500000 0 0.500000 1 0.908195 0.882279 0.870040 0.886858 0.864134 0.500000 0.896004 0.500000 0.877839 0.500000 0.863471 0.872879 0.500000 0.500000 0.882213 0.884004 +0.651586 +0.278140 0.494791 0.147763 0.446387 0.231446 0.512375 0.490356 0.806279 0 0.500000 0.500000 0 1 0 0 1 0.858492 0.500000 0.844678 0.884236 0.870339 0.908632 0.880854 0.500000 0.890195 0.892402 0.864114 0.500000 0.500000 0.500000 0.500000 0.500000 +0.497243 +0.225304 0.486703 0.221930 0.570621 0.220656 0.757612 0.579993 0.151244 0.500000 1 1 1 1 0 1 0 0.888401 0.867243 0.902368 0.500000 0.875989 0.833468 0.890964 0.500000 0.884233 0.908142 0.500000 0.880439 0.500000 0.873208 0.500000 0.896276 +0.598545 +0.494718 0.532697 0.436472 0.789480 0.195174 0.484999 0.379516 0.318144 1 0 1 0 0 0 0.500000 1 0.867978 0.904631 0.890763 0.859067 0.883745 0.910793 0.500000 0.864320 0.863803 0.889291 0.500000 0.500000 0.904596 0.866367 0.500000 0.500000 +0.664553 +0.550947 0.767712 0.728834 0.108201 0.329106 0.282159 0.853400 0.896126 0.500000 1 0 1 1 0 0.500000 0 0.836490 0.892007 0.883468 0.847603 0.895742 0.886534 0.874533 0.887671 0.873527 0.865807 0.883478 0.500000 0.901718 0.500000 0.500000 0.500000 +0.781472 +0.755674 0.818691 0.739955 0.626586 0.832764 0.457605 0.769708 0.686502 1 0 1 1 0 0 0 0.500000 0.893270 0.890070 0.500000 0.893520 0.890514 0.870376 0.500000 0.500000 0.500000 0.500000 0.881984 0.895524 0.901706 0.880231 0.903642 0.879221 +0.618812 +0.528733 0.219143 0.143512 0.212824 0.324799 0.695463 0.843532 0.636171 0 0 0 0.500000 0 0.500000 0.500000 1 0.901209 0.500000 0.902197 0.901680 0.903127 0.905137 0.891874 0.877723 0.500000 0.875250 0.500000 0.500000 0.877129 0.500000 0.875242 0.500000 +0.565130 +0.507033 0.303317 0.452952 0.171682 0.859728 0.846397 0.798044 0.130964 0.500000 1 0 0.500000 0 0.500000 0.500000 0.500000 0.865381 0.500000 0.897546 0.500000 0.890142 0.894883 0.500000 0.897452 0.890414 0.883397 0.500000 0.500000 0.500000 0.500000 0.860394 0.873195 +0.411654 +0.711617 0.353805 0.204155 0.234612 0.128762 0.307211 0.303057 0.871926 0 0 0.500000 1 0.500000 0.500000 0 0.500000 0.884600 0.884146 0.904718 0.858031 0.882538 0.896172 0.500000 0.880912 0.500000 0.500000 0.868849 0.500000 0.883167 0.886879 0.889520 0.500000 +0.593759 +0.362269 0.854264 0.219150 0.247954 0.358299 0.526703 0.489743 0.115761 0 0 0 0.500000 0 0.500000 1 1 0.876884 0.873168 0.500000 0.500000 0.873921 0.900349 0.904522 0.892861 0.500000 0.500000 0.500000 0.859684 0.903152 0.879950 0.500000 0.500000 +0.493016 +0.158959 0.617061 0.738739 0.188699 0.463893 0.842993 0.377562 0.277089 0.500000 0 0 0 1 0 0.500000 0.500000 0.889395 0.897031 0.864105 0.895472 0.877947 0.894173 0.884343 0.910800 0.875466 0.500000 0.895749 0.900582 0.500000 0.900241 0.889257 0.866963 +0.857552 +0.726923 0.795913 0.303799 0.547441 0.233987 0.811293 0.398000 0.588583 0.500000 1 1 0 0 0.500000 0 0.500000 0.500000 0.500000 0.873886 0.500000 0.902478 0.500000 0.888875 0.924508 0.500000 0.500000 0.896071 0.500000 0.873967 0.865849 0.863946 0.500000 +0.437790 +0.211234 0.816838 0.795927 0.540738 0.375054 0.531753 0.568847 0.806452 1 1 0 0.500000 1 0 1 0 0.862866 0.860118 0.863809 0.500000 0.860012 0.500000 0.922196 0.844478 0.500000 0.879002 0.873707 0.500000 0.864208 0.888907 0.883284 0.500000 +0.588679 +0.395744 0.262229 0.280858 0.573783 0.572535 0.387403 0.875464 0.518786 0 1 0.500000 0.500000 0 0 0 0.500000 0.880432 0.500000 0.899728 0.871473 0.500000 0.500000 0.886118 0.863613 0.500000 0.864238 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.355507 +0.452506 0.661980 0.500953 0.524507 0.384299 0.708405 0.762414 0.484136 0 1 0 0.500000 0.500000 0.500000 0 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.887606 0.881218 0.861903 0.500000 0.500000 0.876488 0.900101 0.500000 0.500000 0.500000 0.500000 +0.134193 +0.648474 0.705353 0.662398 0.315315 0.498824 0.738621 0.604921 0.707196 0.500000 1 0 1 0 0 0.500000 0 0.856188 0.878505 0.932838 0.911026 0.879228 0.500000 0.859843 0.887809 0.500000 0.869572 0.500000 0.500000 0.882120 0.500000 0.878956 0.500000 +0.541249 +0.277644 0.164015 0.801789 0.663419 0.681980 0.639619 0.672052 0.183367 0.500000 0.500000 0.500000 1 0 0.500000 1 1 0.892630 0.500000 0.886696 0.868360 0.881993 0.886371 0.871031 0.887500 0.500000 0.500000 0.922252 0.500000 0.887217 0.500000 0.500000 0.500000 +0.655048 +0.210178 0.654236 0.736562 0.391169 0.174043 0.533998 0.702903 0.298206 0 0.500000 0 1 1 1 0.500000 1 0.890445 0.865691 0.896891 0.870541 0.500000 0.861249 0.500000 0.866734 0.500000 0.500000 0.500000 0.500000 0.903454 0.500000 0.500000 0.500000 +0.465975 +0.742235 0.536019 0.267011 0.647871 0.172703 0.413614 0.612291 0.579105 0.500000 1 0 0 1 0 1 0 0.858444 0.847096 0.900218 0.889920 0.878048 0.875979 0.889096 0.500000 0.500000 0.500000 0.875252 0.836700 0.878278 0.906221 0.846853 0.500000 +0.688509 +0.807659 0.118366 0.777526 0.877430 0.762487 0.126594 0.664099 0.106382 0 0 1 0 1 0 0.500000 0.500000 0.883439 0.901542 0.909740 0.899187 0.842762 0.500000 0.855600 0.847819 0.901721 0.880639 0.500000 0.500000 0.500000 0.869165 0.500000 0.875412 +0.590395 +0.714711 0.343500 0.598558 0.162158 0.786315 0.595410 0.854405 0.188442 0 1 0.500000 0.500000 0.500000 0.500000 0.500000 0 0.913391 0.500000 0.881002 0.869080 0.906596 0.500000 0.500000 0.500000 0.500000 0.500000 0.916754 0.893074 0.904132 0.500000 0.500000 0.854733 +0.393884 +0.797037 0.807974 0.624275 0.389303 0.821307 0.703645 0.766946 0.657556 0.500000 1 1 0 0.500000 0.500000 0.500000 0 0.500000 0.861610 0.500000 0.868024 0.870367 0.859875 0.919920 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.918570 0.883299 0.924693 +0.384292 +0.674368 0.708484 0.499176 0.254041 0.274409 0.189081 0.488309 0.804070 0.500000 0 1 1 1 1 1 0.500000 0.500000 0.901951 0.839653 0.500000 0.886109 0.500000 0.500000 0.886981 0.500000 0.500000 0.867280 0.500000 0.862595 0.851771 0.865416 0.888709 +0.335310 +0.293400 0.172368 0.394419 0.395470 0.456423 0.102996 0.850640 0.103738 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.855419 0.500000 0.870811 0.894347 0.500000 0.885736 0.870040 0.886101 0.864273 0.900271 0.897476 0.881531 0.863690 0.500000 0.872147 0.884542 +0.754021 +0.647458 0.430882 0.436747 0.612579 0.618932 0.193662 0.681644 0.587421 0 0 0.500000 0.500000 0.500000 0 1 0 0.885155 0.874331 0.877414 0.500000 0.907619 0.851814 0.882633 0.902090 0.500000 0.500000 0.852414 0.500000 0.500000 0.500000 0.500000 0.500000 +0.565842 +0.309527 0.820304 0.646491 0.177367 0.398922 0.885720 0.103278 0.800839 1 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.866034 0.855222 0.500000 0.871238 0.887994 0.907906 0.868312 0.905405 0.859757 0.881040 0.877283 0.500000 0.890222 0.500000 +0.633763 +0.110372 0.818951 0.317275 0.637646 0.311889 0.510990 0.416662 0.635252 1 1 0.500000 1 1 1 0 1 0.500000 0.901764 0.906705 0.877533 0.500000 0.500000 0.500000 0.903768 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.885349 +0.326644 +0.835541 0.741716 0.624306 0.103352 0.433693 0.470176 0.841451 0.862136 0.500000 0 0 0.500000 1 1 0.500000 0 0.902227 0.845106 0.905128 0.500000 0.851177 0.881895 0.876474 0.849578 0.832200 0.500000 0.500000 0.500000 0.500000 0.500000 0.878736 0.500000 +0.561602 +0.788131 0.725162 0.802338 0.295623 0.739932 0.234629 0.409873 0.134101 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 0 0.913936 0.500000 0.500000 0.858757 0.877170 0.500000 0.876997 0.500000 0.872428 0.885920 0.850589 0.883296 0.894320 0.911570 0.838234 0.868475 +0.725185 +0.556665 0.860975 0.212176 0.643341 0.826801 0.236733 0.572590 0.517889 0 0 0 0.500000 1 1 0 0 0.858288 0.500000 0.500000 0.500000 0.915090 0.500000 0.500000 0.878973 0.884586 0.500000 0.902887 0.929932 0.500000 0.896886 0.500000 0.873099 +0.320443 +0.436764 0.885381 0.805306 0.577257 0.557562 0.748462 0.403252 0.848940 0 0 1 1 0 0 0 1 0.873354 0.877420 0.500000 0.892420 0.912410 0.500000 0.870996 0.886653 0.902929 0.500000 0.869549 0.500000 0.903370 0.865556 0.859356 0.500000 +0.553649 +0.581598 0.719885 0.110033 0.732412 0.244094 0.282287 0.596755 0.255707 0 0 1 1 0.500000 0 0.500000 1 0.883124 0.500000 0.861099 0.500000 0.500000 0.859541 0.881934 0.500000 0.889870 0.500000 0.500000 0.863431 0.882677 0.887613 0.884708 0.500000 +0.442397 +0.124899 0.171306 0.140724 0.541481 0.865388 0.781369 0.668455 0.528033 0.500000 0 0 1 0 0 1 0 0.890531 0.848310 0.904984 0.500000 0.910995 0.500000 0.500000 0.500000 0.905067 0.896486 0.500000 0.863261 0.500000 0.855030 0.879044 0.500000 +0.405647 +0.676305 0.462192 0.266195 0.537901 0.695103 0.398532 0.721832 0.833586 1 1 0.500000 0 0 0.500000 1 1 0.861179 0.500000 0.883155 0.893937 0.914638 0.500000 0.868015 0.903661 0.831089 0.500000 0.867936 0.500000 0.869229 0.500000 0.500000 0.500000 +0.520290 +0.864388 0.763747 0.502551 0.183003 0.734267 0.226208 0.483628 0.532204 0 0 1 0 1 0 0.500000 0.500000 0.881323 0.884278 0.901370 0.500000 0.918906 0.891967 0.869486 0.871473 0.500000 0.500000 0.500000 0.855141 0.883180 0.500000 0.500000 0.500000 +0.555950 +0.425026 0.404151 0.758210 0.230567 0.136935 0.868739 0.291601 0.340957 0 1 0.500000 1 0.500000 0 0.500000 0 0.877306 0.904974 0.860835 0.890990 0.897415 0.869612 0.863850 0.500000 0.500000 0.500000 0.500000 0.889300 0.500000 0.861409 0.500000 0.861074 +0.629751 +0.212565 0.771729 0.241086 0.131937 0.864354 0.200725 0.179303 0.140609 0 0.500000 1 0 1 0 0.500000 0 0.877061 0.874603 0.893146 0.500000 0.875869 0.500000 0.500000 0.884459 0.913291 0.500000 0.500000 0.862236 0.866443 0.500000 0.871027 0.902318 +0.549762 +0.290857 0.640098 0.725336 0.525525 0.690876 0.554677 0.260423 0.330329 1 0.500000 0.500000 1 0.500000 0.500000 0 0.500000 0.500000 0.854934 0.500000 0.500000 0.902656 0.874877 0.860390 0.500000 0.500000 0.879417 0.862345 0.893023 0.500000 0.500000 0.500000 0.500000 +0.288435 +0.127452 0.678011 0.324028 0.542847 0.625076 0.245875 0.621017 0.831848 0 0 0.500000 1 0.500000 0 0 1 0.891386 0.884832 0.864923 0.500000 0.856698 0.884487 0.895141 0.913242 0.892095 0.500000 0.500000 0.891827 0.914445 0.500000 0.870796 0.500000 +0.625188 +0.460167 0.633122 0.277246 0.675306 0.462221 0.744311 0.233993 0.126478 0 0.500000 0 0 1 1 0 0.500000 0.885960 0.884725 0.903776 0.871668 0.878303 0.879498 0.871502 0.904615 0.500000 0.500000 0.882896 0.890612 0.500000 0.500000 0.895462 0.500000 +0.704358 +0.730583 0.706329 0.270406 0.109078 0.674743 0.607879 0.823011 0.542002 1 0 0 0 1 1 0 1 0.870100 0.860643 0.870734 0.500000 0.881903 0.869533 0.500000 0.500000 0.906115 0.889921 0.882687 0.858667 0.500000 0.500000 0.878853 0.885141 +0.580510 +0.399054 0.697646 0.744345 0.803903 0.202981 0.493629 0.621159 0.821877 1 0 0.500000 0.500000 0 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.913151 0.852310 0.500000 0.500000 0.500000 0.891979 0.500000 0.899464 0.884496 0.500000 0.879231 +0.242012 +0.617052 0.586795 0.861465 0.439925 0.425871 0.221308 0.515862 0.697433 0 1 1 0 1 1 0.500000 0.500000 0.884712 0.903599 0.853437 0.500000 0.831161 0.880135 0.877735 0.500000 0.500000 0.896159 0.500000 0.886726 0.905352 0.500000 0.500000 0.874558 +0.535339 +0.503691 0.130184 0.206808 0.824537 0.596778 0.647464 0.530077 0.399289 1 0 1 1 1 0.500000 0 1 0.500000 0.862946 0.500000 0.895087 0.500000 0.853448 0.873080 0.890905 0.891216 0.897726 0.500000 0.881118 0.500000 0.500000 0.500000 0.888345 +0.472753 +0.204223 0.573336 0.266477 0.472622 0.363411 0.852542 0.875602 0.442310 0.500000 0.500000 1 0 0 1 0 0.500000 0.896633 0.885547 0.859416 0.879281 0.500000 0.500000 0.887346 0.500000 0.879859 0.865463 0.862534 0.887834 0.500000 0.866362 0.500000 0.500000 +0.575365 +0.113205 0.440142 0.864783 0.199901 0.739565 0.461252 0.454888 0.700796 1 0 1 0.500000 1 0 1 1 0.909274 0.879535 0.870886 0.880061 0.889790 0.866497 0.898133 0.500000 0.500000 0.874740 0.889906 0.846880 0.500000 0.884990 0.500000 0.500000 +0.741365 +0.586132 0.113722 0.329559 0.703591 0.645638 0.239596 0.686109 0.434113 0 0.500000 0 1 0 0 0.500000 0.500000 0.895116 0.500000 0.877949 0.500000 0.872349 0.857490 0.914508 0.912727 0.500000 0.881827 0.859250 0.500000 0.893074 0.500000 0.902664 0.864498 +0.592290 +0.468912 0.406207 0.118179 0.836040 0.324960 0.199611 0.664400 0.373643 1 0.500000 1 0 1 0.500000 0.500000 0 0.500000 0.914678 0.500000 0.865190 0.887795 0.500000 0.875626 0.904920 0.500000 0.878402 0.500000 0.500000 0.897880 0.500000 0.869008 0.892672 +0.493287 +0.160030 0.231109 0.444162 0.426059 0.176342 0.786551 0.564243 0.234766 0 1 0.500000 0 0.500000 0.500000 0.500000 0 0.878365 0.500000 0.500000 0.500000 0.910464 0.500000 0.906422 0.889810 0.887988 0.866643 0.500000 0.892652 0.891337 0.500000 0.500000 0.500000 +0.404891 +0.831322 0.226358 0.602917 0.630517 0.496324 0.310605 0.537397 0.231048 0 0.500000 0 1 0 0.500000 1 0 0.875013 0.851673 0.873539 0.500000 0.854583 0.906405 0.885324 0.872886 0.500000 0.855412 0.500000 0.875442 0.500000 0.500000 0.500000 0.897672 +0.533043 +0.719012 0.627696 0.284323 0.410329 0.598677 0.571018 0.495315 0.160542 1 0.500000 1 1 0 0.500000 1 0.500000 0.882718 0.867529 0.874353 0.500000 0.902426 0.883671 0.924185 0.500000 0.500000 0.877253 0.864349 0.500000 0.500000 0.879182 0.885265 0.876935 +0.618861 +0.858884 0.258786 0.821850 0.225310 0.585178 0.882995 0.699027 0.740075 0 0.500000 1 1 1 1 0.500000 0 0.915426 0.872136 0.500000 0.861202 0.877920 0.884909 0.917185 0.931155 0.847596 0.500000 0.884066 0.890799 0.889355 0.872687 0.500000 0.893849 +0.856002 +0.625638 0.892597 0.477127 0.866497 0.221370 0.766174 0.479062 0.600671 0.500000 1 0 0.500000 0.500000 1 0 1 0.500000 0.884549 0.875674 0.863229 0.500000 0.910570 0.923140 0.914497 0.926309 0.500000 0.500000 0.885156 0.875910 0.500000 0.500000 0.500000 +0.504649 +0.893667 0.858085 0.430152 0.159428 0.505866 0.682741 0.627912 0.723108 1 1 0 1 0.500000 0 1 0 0.500000 0.878540 0.854895 0.500000 0.896774 0.917817 0.894984 0.500000 0.500000 0.888193 0.884782 0.500000 0.904456 0.500000 0.500000 0.500000 +0.374368 +0.696542 0.574362 0.695853 0.199406 0.411168 0.302765 0.775937 0.580970 0.500000 1 1 1 1 0.500000 0 1 0.500000 0.888327 0.863680 0.866325 0.891077 0.888734 0.500000 0.882662 0.871327 0.500000 0.854622 0.500000 0.873637 0.878925 0.500000 0.904522 +0.583666 +0.134973 0.698674 0.419483 0.858441 0.826177 0.162903 0.518085 0.458692 0.500000 0 0.500000 0 1 1 0.500000 0.500000 0.904193 0.863777 0.855704 0.500000 0.864785 0.883829 0.500000 0.500000 0.872521 0.857453 0.861673 0.500000 0.500000 0.500000 0.500000 0.895873 +0.380006 +0.420796 0.512868 0.777804 0.759057 0.878441 0.154099 0.535373 0.622167 0 0 0.500000 0.500000 0.500000 0.500000 0 1 0.870162 0.903066 0.895360 0.857504 0.862329 0.882907 0.879922 0.899470 0.862661 0.500000 0.500000 0.500000 0.500000 0.881027 0.893129 0.500000 +0.600946 +0.760548 0.333091 0.853735 0.120580 0.393295 0.715931 0.860546 0.193233 1 0 1 0.500000 0 0.500000 1 0 0.896169 0.500000 0.500000 0.877811 0.500000 0.500000 0.500000 0.883612 0.500000 0.881905 0.500000 0.500000 0.500000 0.870432 0.889437 0.879013 +0.336534 +0.365496 0.685957 0.275416 0.316454 0.434923 0.353654 0.866114 0.171759 0.500000 0.500000 1 0 1 1 1 0 0.900693 0.500000 0.871074 0.500000 0.892613 0.877716 0.903872 0.500000 0.869790 0.902796 0.500000 0.896760 0.879486 0.500000 0.868786 0.854370 +0.582009 +0.503453 0.136163 0.685230 0.867188 0.625334 0.582516 0.151269 0.176750 0.500000 0.500000 1 0.500000 0.500000 0.500000 0 0 0.884774 0.870602 0.886041 0.873251 0.889050 0.871556 0.878387 0.874656 0.886073 0.900091 0.500000 0.500000 0.900770 0.852999 0.857462 0.500000 +0.780233 +0.771867 0.172668 0.627939 0.366068 0.712666 0.384962 0.660061 0.241674 0.500000 0.500000 0 1 1 0.500000 0.500000 0.500000 0.861329 0.500000 0.864848 0.866755 0.869650 0.878884 0.892675 0.844229 0.500000 0.500000 0.881033 0.902592 0.850716 0.500000 0.898854 0.888039 +0.693897 +0.288315 0.313682 0.246519 0.248361 0.795628 0.316252 0.251678 0.546293 0 1 0.500000 1 1 1 0 0 0.869381 0.889353 0.849742 0.904546 0.905036 0.865951 0.874538 0.878539 0.500000 0.500000 0.892522 0.500000 0.888292 0.500000 0.868472 0.876226 +0.768465 +0.472338 0.381168 0.886784 0.386075 0.164939 0.335041 0.825986 0.148795 0 0.500000 0.500000 0 1 1 0.500000 0.500000 0.905795 0.500000 0.500000 0.871606 0.878897 0.850013 0.919483 0.884156 0.500000 0.500000 0.876375 0.500000 0.888834 0.900014 0.500000 0.869920 +0.510428 +0.159030 0.216555 0.641071 0.278316 0.250792 0.854654 0.363128 0.885513 0.500000 1 1 0 0 0.500000 1 1 0.500000 0.869651 0.500000 0.500000 0.863965 0.500000 0.883897 0.500000 0.907786 0.889706 0.500000 0.500000 0.883787 0.889522 0.882681 0.880029 +0.574281 +0.829281 0.326431 0.124608 0.887170 0.458194 0.275143 0.530220 0.406762 1 0 1 0.500000 0.500000 0.500000 0.500000 0 0.895073 0.500000 0.894726 0.867862 0.874777 0.882665 0.500000 0.500000 0.887794 0.500000 0.866014 0.880865 0.500000 0.500000 0.894032 0.885557 +0.597587 +0.366766 0.428785 0.390424 0.458777 0.457604 0.746980 0.300765 0.759597 0 1 0 0.500000 1 0.500000 0.500000 0.500000 0.894778 0.881015 0.880492 0.867522 0.876184 0.500000 0.500000 0.500000 0.500000 0.500000 0.857247 0.864609 0.500000 0.500000 0.877924 0.500000 +0.444886 +0.115975 0.588068 0.656636 0.279661 0.456589 0.496070 0.856472 0.531123 0.500000 0 0 0 0 0 1 1 0.880677 0.878036 0.874268 0.500000 0.856959 0.916144 0.914675 0.500000 0.500000 0.500000 0.853167 0.500000 0.500000 0.500000 0.911643 0.500000 +0.492702 +0.887904 0.804737 0.607285 0.444365 0.641199 0.826497 0.742881 0.203490 0 0.500000 0.500000 1 0 0.500000 0.500000 0 0.852194 0.849788 0.864757 0.500000 0.500000 0.907166 0.869577 0.861242 0.500000 0.862378 0.500000 0.865662 0.908139 0.500000 0.905470 0.859904 +0.579874 +0.159601 0.219410 0.623439 0.736901 0.491940 0.235538 0.482075 0.827437 0.500000 1 1 0 1 0.500000 0 1 0.878076 0.500000 0.500000 0.881363 0.884443 0.902463 0.500000 0.888862 0.869133 0.867622 0.835369 0.500000 0.500000 0.911656 0.875132 0.861289 +0.651989 +0.514911 0.710039 0.225356 0.560558 0.699972 0.633991 0.492865 0.590058 0.500000 0 0 0.500000 0 1 0 0 0.877018 0.889178 0.896040 0.500000 0.500000 0.500000 0.897793 0.885980 0.905607 0.500000 0.871670 0.861176 0.500000 0.500000 0.883800 0.500000 +0.444794 +0.824835 0.795111 0.424168 0.384791 0.190263 0.344596 0.631598 0.274606 0 0 0.500000 0 0 0 1 0.500000 0.880576 0.901054 0.875466 0.887618 0.874382 0.500000 0.875485 0.850767 0.500000 0.886663 0.892012 0.500000 0.862093 0.873728 0.881321 0.859580 +0.749951 +0.827607 0.192725 0.123130 0.851620 0.585245 0.412052 0.761265 0.381792 0 1 1 0 1 0.500000 1 1 0.868572 0.879225 0.899964 0.875787 0.876945 0.868371 0.890770 0.894105 0.500000 0.500000 0.898810 0.500000 0.500000 0.500000 0.891543 0.876136 +0.753847 +0.453966 0.406351 0.136803 0.242706 0.166825 0.834860 0.494167 0.869582 1 1 0 0 0.500000 0 0.500000 0 0.908006 0.889261 0.500000 0.500000 0.891789 0.857179 0.874752 0.880240 0.500000 0.856126 0.500000 0.879360 0.500000 0.500000 0.833457 0.500000 +0.553560 +0.116653 0.780870 0.278224 0.315790 0.485189 0.380075 0.117839 0.715496 1 1 0 0.500000 0.500000 0.500000 0 0.500000 0.884843 0.500000 0.500000 0.500000 0.891380 0.856198 0.901312 0.877208 0.500000 0.873588 0.872064 0.500000 0.500000 0.500000 0.881155 0.500000 +0.480636 +0.581015 0.523406 0.282787 0.198155 0.198682 0.239949 0.227538 0.429978 0.500000 1 0 1 1 1 1 0.500000 0.887860 0.500000 0.881882 0.500000 0.906868 0.500000 0.872775 0.872175 0.500000 0.500000 0.500000 0.921104 0.877164 0.500000 0.500000 0.848605 +0.331971 +0.715250 0.611319 0.236807 0.222981 0.636765 0.703089 0.222705 0.809859 0 0 0.500000 1 1 0 1 0.500000 0.893038 0.877735 0.892276 0.863983 0.854697 0.874127 0.500000 0.500000 0.862776 0.864704 0.500000 0.893952 0.500000 0.871489 0.917576 0.500000 +0.604652 +0.611951 0.465217 0.706647 0.807802 0.123685 0.569952 0.190248 0.892512 1 0 0 1 1 1 1 0.500000 0.890302 0.500000 0.878563 0.500000 0.889903 0.896351 0.862145 0.894645 0.500000 0.911489 0.500000 0.867852 0.880130 0.880959 0.894357 0.886596 +0.703832 +0.597372 0.226191 0.198873 0.261320 0.212519 0.807499 0.639149 0.783435 0 0.500000 1 1 1 1 0 1 0.883611 0.857159 0.879034 0.882269 0.883022 0.500000 0.854787 0.867093 0.500000 0.888024 0.888521 0.500000 0.870677 0.500000 0.500000 0.500000 +0.597315 +0.324713 0.846940 0.314011 0.189686 0.254493 0.665968 0.327889 0.637385 1 0 0.500000 0.500000 0 1 0 1 0.500000 0.500000 0.873971 0.889211 0.500000 0.500000 0.500000 0.896306 0.879661 0.899914 0.500000 0.500000 0.874016 0.892103 0.500000 0.842913 +0.405857 +0.231029 0.705302 0.604026 0.871632 0.125023 0.659832 0.399177 0.364309 1 0 0.500000 0 1 0.500000 0.500000 0.500000 0.500000 0.882690 0.500000 0.863216 0.891812 0.500000 0.878210 0.500000 0.500000 0.879515 0.500000 0.500000 0.887395 0.880053 0.883842 0.876969 +0.414615 +0.389461 0.278259 0.899036 0.702083 0.106622 0.193350 0.234883 0.685631 0.500000 0 1 1 0 1 0.500000 0 0.894073 0.884423 0.881572 0.896566 0.500000 0.874226 0.500000 0.913056 0.500000 0.869821 0.905650 0.908875 0.500000 0.500000 0.500000 0.874076 +0.570854 +0.495504 0.137153 0.530490 0.150076 0.123232 0.155333 0.488501 0.827914 0.500000 0 0 0 0 0 1 1 0.885720 0.887460 0.896380 0.500000 0.855446 0.855927 0.884228 0.500000 0.500000 0.500000 0.874526 0.500000 0.875414 0.500000 0.500000 0.905114 +0.463458 +0.694836 0.706177 0.115747 0.765193 0.803409 0.699497 0.646230 0.585070 1 0 1 1 0 0 1 0.500000 0.500000 0.863432 0.873422 0.500000 0.500000 0.862353 0.500000 0.896645 0.922607 0.500000 0.500000 0.860825 0.859297 0.897253 0.500000 0.500000 +0.383969 +0.372027 0.865844 0.432828 0.344879 0.578003 0.302525 0.731840 0.228009 0 0.500000 1 0 0.500000 0.500000 0.500000 0 0.873306 0.909972 0.884269 0.892190 0.890468 0.875598 0.886318 0.879141 0.500000 0.500000 0.886897 0.500000 0.500000 0.500000 0.887957 0.895001 +0.783673 +0.465455 0.700380 0.288789 0.274758 0.463072 0.649361 0.413622 0.743355 0 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.869518 0.854752 0.861787 0.906599 0.858975 0.887963 0.500000 0.500000 0.500000 0.500000 0.500000 0.873326 0.909836 0.890611 0.500000 +0.472848 +0.473580 0.458822 0.416586 0.165984 0.291459 0.348630 0.427272 0.555187 1 1 0.500000 1 0 0 0 1 0.910191 0.500000 0.871255 0.500000 0.872240 0.500000 0.879754 0.500000 0.500000 0.500000 0.500000 0.500000 0.897008 0.500000 0.834801 0.500000 +0.308713 +0.629132 0.417208 0.210199 0.206973 0.397288 0.625282 0.518948 0.566495 0.500000 0.500000 1 1 1 0.500000 1 1 0.500000 0.881947 0.500000 0.500000 0.889881 0.874505 0.500000 0.906337 0.847655 0.890204 0.500000 0.882427 0.500000 0.855437 0.500000 0.906795 +0.424961 +0.599883 0.838127 0.204419 0.662540 0.315775 0.232592 0.571655 0.804944 1 1 0 0 0.500000 0 0 0 0.888405 0.500000 0.871491 0.500000 0.894460 0.875996 0.882039 0.500000 0.500000 0.500000 0.500000 0.500000 0.909586 0.500000 0.917750 0.888206 +0.398875 +0.368054 0.478845 0.152844 0.243628 0.449863 0.250979 0.797235 0.130888 1 0 0.500000 0 1 0.500000 0.500000 1 0.904269 0.860318 0.500000 0.870192 0.860047 0.867865 0.879640 0.877879 0.888793 0.500000 0.500000 0.500000 0.880525 0.500000 0.500000 0.500000 +0.614084 +0.623307 0.127786 0.699247 0.445905 0.127397 0.563509 0.691329 0.167675 1 1 0 0.500000 0.500000 0.500000 0 0 0.907545 0.888744 0.877915 0.500000 0.500000 0.500000 0.890674 0.500000 0.906574 0.500000 0.500000 0.863886 0.500000 0.500000 0.500000 0.500000 +0.286585 +0.662061 0.252762 0.362656 0.162454 0.160711 0.476942 0.165803 0.443852 1 0 0 1 1 0.500000 0.500000 1 0.877620 0.859102 0.500000 0.884572 0.500000 0.500000 0.500000 0.883226 0.865436 0.500000 0.864157 0.885285 0.500000 0.500000 0.885873 0.876392 +0.432248 +0.186050 0.734018 0.838118 0.845825 0.780801 0.729526 0.546319 0.576356 0.500000 0.500000 0 1 0.500000 0.500000 0 1 0.870413 0.500000 0.897401 0.500000 0.500000 0.500000 0.849492 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.878852 0.921937 +0.125870 +0.237474 0.226128 0.729441 0.706567 0.274389 0.651953 0.766547 0.349211 0.500000 0.500000 0 0.500000 0.500000 0 0 1 0.896839 0.870271 0.862569 0.893430 0.890613 0.500000 0.871960 0.913958 0.500000 0.887152 0.500000 0.855167 0.500000 0.887910 0.500000 0.887942 +0.701323 +0.320886 0.537732 0.266372 0.306536 0.156599 0.164504 0.220672 0.239943 0 0.500000 0.500000 1 0.500000 0 1 1 0.896872 0.860695 0.902008 0.500000 0.865929 0.894479 0.868337 0.878927 0.869433 0.904578 0.891715 0.864612 0.896108 0.862614 0.500000 0.889620 +0.746913 +0.465272 0.821756 0.247833 0.733830 0.878738 0.345356 0.601916 0.609671 0.500000 1 1 1 1 0 0 0 0.882741 0.871865 0.919424 0.880974 0.896032 0.899846 0.884110 0.500000 0.500000 0.500000 0.861626 0.500000 0.500000 0.500000 0.500000 0.500000 +0.561886 +0.898618 0.864461 0.401998 0.580010 0.430175 0.556619 0.101229 0.755085 0.500000 0.500000 0 0 1 0 0.500000 0.500000 0.878013 0.879803 0.500000 0.853795 0.833678 0.893479 0.500000 0.892014 0.852444 0.877941 0.904007 0.500000 0.849316 0.877849 0.880605 0.500000 +0.621936 +0.600202 0.600843 0.170077 0.292088 0.523051 0.710660 0.258470 0.302874 0 1 1 0 1 0.500000 1 0.500000 0.862425 0.500000 0.500000 0.500000 0.500000 0.871679 0.872865 0.869974 0.896931 0.865580 0.500000 0.862326 0.500000 0.909268 0.879793 0.500000 +0.395570 +0.443018 0.401441 0.816310 0.726922 0.783228 0.707352 0.662334 0.853853 0.500000 1 0 0 0.500000 0 0 1 0.500000 0.500000 0.500000 0.880410 0.890254 0.500000 0.500000 0.886918 0.500000 0.500000 0.500000 0.500000 0.886912 0.906600 0.867927 0.872405 +0.234495 +0.574967 0.474854 0.267586 0.711152 0.532025 0.349771 0.399378 0.549276 1 1 1 1 1 0.500000 0.500000 1 0.894538 0.903608 0.863955 0.882732 0.891124 0.898744 0.500000 0.892399 0.895931 0.869898 0.862796 0.902179 0.891661 0.869097 0.500000 0.500000 +0.798934 +0.727301 0.752534 0.831940 0.221517 0.839575 0.545015 0.275307 0.889322 1 0 0 0.500000 0 1 0.500000 1 0.870139 0.500000 0.864971 0.854811 0.851852 0.869120 0.901856 0.878900 0.500000 0.883637 0.859148 0.500000 0.881208 0.913882 0.500000 0.861312 +0.595590 +0.399186 0.519791 0.321147 0.125276 0.118398 0.508454 0.190517 0.618577 0.500000 0 0 0.500000 1 1 0 1 0.846373 0.858683 0.500000 0.500000 0.500000 0.882665 0.500000 0.898520 0.500000 0.893891 0.500000 0.500000 0.873455 0.500000 0.890602 0.886529 +0.311919 +0.118387 0.336788 0.588057 0.469197 0.402250 0.811365 0.808871 0.494243 0.500000 1 1 0 0.500000 0 0 0.500000 0.855757 0.500000 0.500000 0.500000 0.872784 0.500000 0.848552 0.895338 0.500000 0.500000 0.890446 0.500000 0.500000 0.500000 0.500000 0.500000 +0.206036 +0.205066 0.348244 0.330534 0.279717 0.607067 0.781674 0.198190 0.771584 0 0.500000 1 1 0 1 0 1 0.880396 0.500000 0.500000 0.906961 0.901689 0.500000 0.897642 0.854628 0.868612 0.500000 0.885921 0.897806 0.500000 0.879061 0.860981 0.877471 +0.636668 +0.717251 0.640602 0.389436 0.644027 0.361629 0.500870 0.729622 0.562163 0.500000 1 0.500000 0 0 0.500000 1 1 0.848498 0.894698 0.863689 0.860362 0.857905 0.916690 0.897200 0.500000 0.877171 0.500000 0.861861 0.871453 0.500000 0.880420 0.500000 0.870771 +0.710159 +0.457169 0.634678 0.840698 0.217385 0.182571 0.664609 0.689242 0.283695 0 0.500000 0 0 0 0.500000 0.500000 0 0.882499 0.500000 0.885988 0.500000 0.868083 0.888978 0.500000 0.895909 0.500000 0.895891 0.500000 0.850334 0.866870 0.857165 0.887302 0.500000 +0.449980 +0.426689 0.363398 0.624544 0.116758 0.148064 0.710787 0.797542 0.484978 1 0 0 0.500000 0.500000 0 0 1 0.908886 0.500000 0.500000 0.875244 0.500000 0.876088 0.500000 0.865517 0.866512 0.500000 0.500000 0.864838 0.500000 0.847554 0.500000 0.878890 +0.302071 +0.248948 0.262989 0.254939 0.152216 0.894220 0.561246 0.262306 0.774531 0 0.500000 0 1 0 0.500000 0.500000 0.500000 0.883649 0.871444 0.869943 0.500000 0.863080 0.908546 0.500000 0.891666 0.905400 0.880715 0.500000 0.874625 0.869342 0.500000 0.500000 0.500000 +0.512266 +0.455198 0.318098 0.875956 0.798753 0.844388 0.635444 0.111037 0.805381 0 0 1 1 0.500000 0 0.500000 0.500000 0.870896 0.873236 0.844606 0.876235 0.877208 0.896732 0.891400 0.897362 0.856811 0.896384 0.500000 0.500000 0.882332 0.863243 0.500000 0.500000 +0.727749 +0.470989 0.104995 0.857577 0.689673 0.337343 0.331652 0.678180 0.776690 0.500000 0 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.919967 0.847997 0.500000 0.500000 0.856239 0.880396 0.895939 0.886108 0.878142 0.864188 0.500000 0.500000 0.912360 0.861944 0.903051 0.500000 +0.611562 +0.592614 0.264014 0.681428 0.167863 0.674734 0.461301 0.478084 0.161044 0.500000 1 1 1 0 1 0 0.500000 0.895783 0.876340 0.500000 0.870103 0.901841 0.880319 0.902863 0.500000 0.877979 0.500000 0.867682 0.500000 0.889806 0.905068 0.922732 0.865197 +0.691736 +0.577512 0.842606 0.276384 0.593386 0.433810 0.851637 0.862962 0.804157 0.500000 0 0.500000 1 0.500000 1 0.500000 1 0.883212 0.853909 0.891992 0.500000 0.876895 0.875584 0.500000 0.891228 0.895486 0.885406 0.500000 0.885496 0.500000 0.908067 0.868270 0.893918 +0.732042 +0.837807 0.429487 0.192702 0.537441 0.164191 0.550483 0.166631 0.765592 0 0 0 0.500000 0 0.500000 0 0.500000 0.500000 0.500000 0.894240 0.500000 0.500000 0.881738 0.888411 0.500000 0.500000 0.889301 0.500000 0.856325 0.851690 0.500000 0.500000 0.875385 +0.286965 +0.400211 0.147595 0.835143 0.447484 0.271674 0.629128 0.362173 0.836472 0.500000 1 0.500000 1 0 0 0.500000 1 0.887877 0.500000 0.500000 0.889633 0.876204 0.500000 0.500000 0.897596 0.882444 0.500000 0.881404 0.500000 0.905231 0.500000 0.902567 0.906312 +0.478791 +0.727749 0.277538 0.773398 0.302934 0.406059 0.834077 0.131623 0.386727 1 0 1 1 0.500000 1 1 0.500000 0.500000 0.897760 0.864786 0.500000 0.864865 0.894023 0.500000 0.876196 0.500000 0.853157 0.864248 0.870100 0.500000 0.861394 0.500000 0.500000 +0.422039 +0.627931 0.229082 0.780453 0.473887 0.815072 0.710164 0.722648 0.141334 0.500000 0.500000 0.500000 1 0 1 0 0.500000 0.861192 0.857688 0.908261 0.878088 0.500000 0.876544 0.895427 0.915726 0.892643 0.500000 0.885649 0.500000 0.893541 0.500000 0.886174 0.500000 +0.654009 +0.215087 0.767910 0.856625 0.691410 0.725556 0.219014 0.361389 0.467654 1 0.500000 0.500000 1 0 0.500000 0 0.500000 0.854828 0.500000 0.895808 0.865981 0.500000 0.882471 0.893829 0.902067 0.500000 0.845883 0.867937 0.885710 0.846475 0.500000 0.500000 0.500000 +0.528635 +0.728570 0.480022 0.732884 0.177409 0.307998 0.714556 0.149954 0.469711 0 0 0.500000 0 1 0.500000 0.500000 1 0.871025 0.885688 0.500000 0.865791 0.887827 0.880268 0.866167 0.872457 0.841655 0.500000 0.500000 0.902594 0.500000 0.897317 0.879543 0.500000 +0.617358 +0.220021 0.500495 0.815721 0.419885 0.400571 0.590072 0.741699 0.328412 0.500000 0 0 1 0 0 1 0 0.867123 0.882743 0.870979 0.898087 0.871880 0.500000 0.903987 0.872994 0.500000 0.900704 0.896901 0.867725 0.500000 0.500000 0.865259 0.500000 +0.605790 +0.812420 0.139842 0.130484 0.441292 0.200592 0.343597 0.635127 0.376421 0 1 0.500000 0 1 0 1 0 0.898403 0.500000 0.500000 0.878744 0.872026 0.868207 0.500000 0.845467 0.500000 0.889037 0.500000 0.500000 0.500000 0.500000 0.930093 0.884794 +0.401878 +0.202895 0.663701 0.625424 0.493638 0.772634 0.256844 0.174745 0.338943 1 1 0 0 0.500000 1 0 0 0.878086 0.876723 0.865812 0.855463 0.856961 0.870735 0.879609 0.500000 0.924743 0.860151 0.910425 0.862311 0.902746 0.880777 0.871441 0.500000 +0.881244 +0.816059 0.495743 0.150978 0.895287 0.891132 0.662970 0.334499 0.521633 1 0 0.500000 0.500000 0.500000 0.500000 0.500000 0 0.878229 0.882344 0.884571 0.500000 0.870572 0.912410 0.849529 0.868740 0.872089 0.896637 0.500000 0.500000 0.932756 0.500000 0.858945 0.500000 +0.568694 +0.535893 0.550967 0.302555 0.441562 0.726305 0.816350 0.595645 0.803228 1 0 1 0.500000 0.500000 0 0 0.500000 0.910617 0.884759 0.863173 0.930545 0.500000 0.862502 0.905326 0.894638 0.500000 0.500000 0.893005 0.935495 0.861195 0.869954 0.885472 0.889937 +0.751551 +0.597656 0.209718 0.136828 0.670120 0.508511 0.352716 0.295172 0.353951 0 0.500000 1 0.500000 0 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.893778 0.887324 0.876891 0.500000 0.899759 0.500000 0.859138 0.500000 0.868847 0.500000 0.904627 0.910210 +0.424300 +0.644978 0.351158 0.516486 0.786721 0.225407 0.619355 0.899311 0.512722 1 0 1 1 1 0.500000 0 0.500000 0.867195 0.870826 0.500000 0.878226 0.500000 0.867936 0.905619 0.861357 0.500000 0.872049 0.500000 0.500000 0.500000 0.500000 0.866705 0.881298 +0.496609 +0.561009 0.285076 0.280432 0.618672 0.622635 0.826966 0.614975 0.888006 0 0.500000 0.500000 1 0.500000 0 1 0 0.890945 0.907177 0.500000 0.868984 0.864948 0.500000 0.900586 0.874732 0.883549 0.500000 0.850039 0.500000 0.873980 0.876691 0.500000 0.899497 +0.648487 +0.438970 0.373306 0.747731 0.111256 0.482567 0.296228 0.504125 0.233314 1 0.500000 1 0.500000 0 0.500000 1 1 0.876478 0.500000 0.881768 0.500000 0.500000 0.500000 0.849767 0.865856 0.888521 0.901491 0.894139 0.500000 0.879388 0.500000 0.907607 0.500000 +0.436479 +0.528644 0.319204 0.263339 0.541614 0.709716 0.388878 0.877553 0.441384 0 0.500000 0.500000 1 0 0.500000 0.500000 0 0.500000 0.500000 0.885707 0.871868 0.893914 0.895427 0.896007 0.500000 0.500000 0.886149 0.500000 0.890859 0.875204 0.500000 0.500000 0.500000 +0.430688 +0.693899 0.168807 0.542435 0.107091 0.880496 0.292874 0.136516 0.230979 1 0 0.500000 1 0 0.500000 0.500000 1 0.877735 0.500000 0.893242 0.500000 0.860440 0.891237 0.500000 0.862847 0.893796 0.500000 0.882880 0.882066 0.500000 0.500000 0.888518 0.500000 +0.433706 +0.733728 0.763498 0.313246 0.130536 0.512918 0.816672 0.410572 0.683779 0.500000 0 0 0 0 0 0.500000 0.500000 0.886761 0.865357 0.897493 0.875593 0.870536 0.500000 0.899744 0.871776 0.500000 0.500000 0.867732 0.500000 0.889335 0.500000 0.875737 0.868248 +0.643217 +0.512137 0.494205 0.706423 0.244539 0.567483 0.284407 0.226213 0.563006 0 0.500000 0 0.500000 0 0 1 0.500000 0.904647 0.840495 0.860725 0.846203 0.826586 0.500000 0.904945 0.849960 0.500000 0.500000 0.892848 0.851072 0.883911 0.874445 0.500000 0.500000 +0.626904 +0.197277 0.627530 0.701040 0.184577 0.784672 0.174982 0.321995 0.767860 1 0.500000 1 0 0.500000 0 1 1 0.888234 0.871274 0.879711 0.500000 0.858988 0.873844 0.885071 0.500000 0.909768 0.500000 0.500000 0.500000 0.856345 0.500000 0.500000 0.500000 +0.513017 +0.726976 0.888382 0.831317 0.142510 0.159670 0.577337 0.302270 0.455530 0 0 1 0.500000 1 0 0 0 0.891253 0.500000 0.500000 0.844899 0.500000 0.898938 0.882003 0.885478 0.898650 0.500000 0.500000 0.879976 0.867893 0.896844 0.917233 0.500000 +0.492985 +0.456468 0.855204 0.810534 0.442465 0.702093 0.269367 0.242732 0.594195 0.500000 0.500000 0.500000 0.500000 0.500000 0 0 1 0.854594 0.871989 0.904752 0.500000 0.897076 0.862516 0.903533 0.830195 0.500000 0.875232 0.500000 0.500000 0.500000 0.871070 0.500000 0.893649 +0.572733 +0.539070 0.347699 0.770971 0.302900 0.638416 0.450918 0.379846 0.276118 0 1 1 0.500000 0 0.500000 1 0 0.500000 0.500000 0.884441 0.851691 0.500000 0.906532 0.849476 0.885896 0.500000 0.902597 0.500000 0.500000 0.886804 0.500000 0.871851 0.862601 +0.403659 +0.439033 0.625796 0.349480 0.314985 0.552308 0.434315 0.535503 0.393302 1 0.500000 1 0 1 1 0.500000 0.500000 0.500000 0.500000 0.884705 0.886912 0.883714 0.878364 0.869512 0.500000 0.500000 0.831076 0.888468 0.500000 0.879600 0.869006 0.867978 0.500000 +0.605262 +0.781684 0.361686 0.648594 0.313925 0.330807 0.874172 0.402521 0.574858 0 1 0.500000 0.500000 0.500000 0 0 0.500000 0.500000 0.918469 0.878376 0.887484 0.906383 0.855862 0.878277 0.841147 0.500000 0.893035 0.500000 0.889980 0.500000 0.898499 0.500000 0.884548 +0.662273 +0.856211 0.136986 0.120235 0.192491 0.191043 0.667483 0.186173 0.414292 1 1 0 1 0.500000 0.500000 0 0 0.855968 0.894284 0.884500 0.873534 0.865884 0.888382 0.877239 0.500000 0.880794 0.879772 0.882805 0.500000 0.875278 0.861104 0.500000 0.905819 +0.705523 +0.150682 0.711211 0.723664 0.418910 0.820606 0.122512 0.850770 0.694307 0.500000 0 0.500000 1 1 0.500000 1 0 0.905365 0.876018 0.856693 0.917028 0.888334 0.887881 0.872071 0.895778 0.500000 0.500000 0.865853 0.500000 0.860633 0.892483 0.891810 0.883029 +0.907788 +0.320475 0.823523 0.354821 0.482401 0.714091 0.335505 0.639927 0.254931 1 1 1 0.500000 0 0 0.500000 0.500000 0.500000 0.901923 0.883845 0.852106 0.872913 0.886950 0.887524 0.500000 0.887740 0.500000 0.500000 0.882829 0.887214 0.500000 0.500000 0.903976 +0.529733 +0.649443 0.184476 0.691865 0.382788 0.117710 0.145845 0.219847 0.764893 0.500000 0 1 0 1 1 0.500000 0.500000 0.500000 0.890484 0.894274 0.890459 0.500000 0.904240 0.882088 0.896609 0.500000 0.500000 0.500000 0.865141 0.876221 0.873333 0.500000 0.866299 +0.485254 +0.600036 0.201532 0.154935 0.198382 0.811545 0.630037 0.437373 0.735089 0.500000 0 0.500000 1 1 0 1 0 0.500000 0.877897 0.500000 0.864181 0.882466 0.500000 0.500000 0.896827 0.500000 0.500000 0.861041 0.500000 0.911255 0.908452 0.898310 0.500000 +0.396687 +0.212867 0.256978 0.823849 0.237118 0.640233 0.588478 0.349877 0.575169 1 1 0.500000 1 1 0.500000 0 0.500000 0.500000 0.885266 0.862447 0.875235 0.867315 0.898407 0.914545 0.848350 0.500000 0.500000 0.883267 0.500000 0.500000 0.500000 0.500000 0.894978 +0.640234 +0.502459 0.228774 0.402765 0.672000 0.104309 0.525847 0.514500 0.200019 0 0 0 0 0.500000 0 0.500000 0.500000 0.865738 0.869562 0.893043 0.845410 0.866840 0.843845 0.886407 0.877260 0.500000 0.904461 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.692357 +0.419149 0.829122 0.852073 0.189176 0.485796 0.171235 0.543126 0.523909 1 0 0 1 1 0.500000 1 0.500000 0.876378 0.500000 0.894633 0.902295 0.857711 0.872766 0.500000 0.871649 0.500000 0.873174 0.500000 0.500000 0.918958 0.897281 0.867896 0.500000 +0.522344 +0.795687 0.515448 0.133705 0.180020 0.198395 0.229838 0.682024 0.581020 0.500000 0.500000 0 0.500000 0.500000 0.500000 0 0.500000 0.870010 0.904948 0.500000 0.500000 0.905022 0.868918 0.889800 0.872723 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.443780 +0.700688 0.662251 0.246239 0.346960 0.362606 0.127462 0.846710 0.447359 0.500000 0.500000 0 0 0.500000 0.500000 0 1 0.865115 0.849538 0.887532 0.904121 0.900131 0.892615 0.887665 0.500000 0.847788 0.875323 0.859042 0.500000 0.860972 0.500000 0.500000 0.906951 +0.648364 +0.635720 0.748681 0.878965 0.170829 0.125689 0.650801 0.619054 0.645905 1 0.500000 0 0 0 0.500000 0.500000 0 0.901586 0.892163 0.890924 0.898920 0.855015 0.859363 0.500000 0.500000 0.878537 0.851590 0.869283 0.866412 0.897364 0.500000 0.863872 0.500000 +0.665067 +0.464418 0.871457 0.369329 0.309222 0.502165 0.889327 0.716380 0.391729 1 0.500000 0 0 0.500000 1 1 0 0.500000 0.892340 0.500000 0.500000 0.846960 0.875251 0.500000 0.889690 0.500000 0.500000 0.867080 0.914745 0.891274 0.500000 0.500000 0.500000 +0.280287 +0.473222 0.837420 0.314987 0.579068 0.588320 0.101220 0.609833 0.869450 0 1 0.500000 0 1 0.500000 0.500000 1 0.877081 0.923978 0.883937 0.880065 0.878053 0.885847 0.907901 0.894957 0.918631 0.890748 0.500000 0.500000 0.869292 0.851303 0.852975 0.500000 +0.792974 +0.572050 0.241661 0.198492 0.259087 0.282148 0.665605 0.620592 0.882253 0 0.500000 0 1 0 1 0 1 0.867507 0.869661 0.500000 0.500000 0.869740 0.900887 0.875000 0.911285 0.500000 0.872671 0.500000 0.500000 0.853327 0.500000 0.852080 0.500000 +0.504204 +0.455417 0.800179 0.816989 0.141413 0.122335 0.276950 0.502180 0.342425 0 1 0.500000 0 0.500000 1 1 1 0.896585 0.885121 0.500000 0.866850 0.899527 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.897028 0.500000 0.864313 0.894598 0.864220 +0.379893 +0.344917 0.417048 0.731232 0.422092 0.695501 0.685125 0.693582 0.437015 0 0.500000 1 1 1 0 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.897073 0.500000 0.500000 0.500000 0.500000 0.500000 0.889162 0.500000 0.881043 0.500000 0.500000 0.903647 +0.134621 +0.865552 0.337009 0.302740 0.344041 0.894439 0.242301 0.545581 0.181773 1 1 1 0.500000 0.500000 1 1 1 0.890285 0.500000 0.862193 0.867535 0.869514 0.919508 0.500000 0.891076 0.872972 0.500000 0.500000 0.887221 0.900788 0.877967 0.869423 0.876897 +0.654047 +0.193750 0.552550 0.515015 0.864392 0.830716 0.445097 0.146624 0.511716 0.500000 0.500000 1 0 0 0.500000 0 0.500000 0.862376 0.500000 0.851664 0.500000 0.911851 0.871243 0.500000 0.500000 0.889727 0.500000 0.500000 0.500000 0.889141 0.500000 0.500000 0.500000 +0.235504 +0.495608 0.281356 0.157647 0.165633 0.792392 0.340504 0.658268 0.503991 0.500000 0 0 0.500000 0 1 0 0 0.884265 0.500000 0.876714 0.857304 0.874255 0.855750 0.500000 0.847767 0.500000 0.871441 0.867920 0.869011 0.500000 0.912626 0.904248 0.500000 +0.573482 +0.864304 0.158958 0.606191 0.459059 0.404028 0.290589 0.135853 0.287044 0.500000 1 1 0.500000 0 0 0.500000 0.500000 0.884758 0.500000 0.500000 0.899014 0.500000 0.888894 0.873828 0.500000 0.500000 0.500000 0.500000 0.878024 0.500000 0.500000 0.869578 0.500000 +0.293814 +0.496995 0.400612 0.489061 0.644633 0.150948 0.388470 0.419663 0.675757 1 0.500000 1 1 0.500000 0.500000 1 0 0.911310 0.500000 0.500000 0.500000 0.861559 0.899339 0.892357 0.500000 0.500000 0.500000 0.500000 0.859538 0.500000 0.500000 0.500000 0.902049 +0.323332 +0.233106 0.404215 0.248029 0.814951 0.275809 0.516149 0.716304 0.720070 1 0.500000 0 0.500000 1 1 1 1 0.863778 0.500000 0.500000 0.877491 0.883905 0.500000 0.891314 0.500000 0.879421 0.904445 0.877553 0.500000 0.896890 0.500000 0.874318 0.500000 +0.547627 +0.469704 0.109332 0.135400 0.664053 0.146961 0.573061 0.435639 0.384299 1 1 0 0.500000 0 1 1 0.500000 0.869008 0.868417 0.828860 0.891975 0.877503 0.500000 0.862979 0.904102 0.891350 0.500000 0.500000 0.869625 0.500000 0.881712 0.500000 0.872871 +0.657113 +0.293287 0.674248 0.292506 0.343404 0.590308 0.704227 0.141931 0.829421 0 0.500000 1 1 1 0.500000 0.500000 0 0.866685 0.878723 0.914506 0.500000 0.500000 0.921490 0.861213 0.876692 0.869139 0.874926 0.500000 0.500000 0.868257 0.923877 0.500000 0.911528 +0.590130 +0.118669 0.274289 0.578587 0.514218 0.268546 0.859012 0.809711 0.204780 0 0.500000 1 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.847471 0.500000 0.896412 0.880697 0.890444 0.893660 0.870676 0.500000 0.500000 0.500000 0.856802 0.500000 0.895166 0.876285 +0.500402 +0.749864 0.772143 0.814876 0.614361 0.160686 0.854957 0.658726 0.213848 1 1 1 0 0.500000 0 1 0.500000 0.870558 0.500000 0.500000 0.937614 0.500000 0.500000 0.500000 0.500000 0.893948 0.870235 0.500000 0.500000 0.880090 0.500000 0.890473 0.500000 +0.287201 +0.411759 0.628499 0.176063 0.888244 0.114956 0.261198 0.559187 0.848172 0 0 0.500000 1 0.500000 0.500000 1 0 0.500000 0.865092 0.901562 0.874687 0.879154 0.885415 0.893653 0.895373 0.500000 0.500000 0.500000 0.500000 0.500000 0.850896 0.500000 0.500000 +0.567965 +0.740113 0.883488 0.186313 0.356868 0.483414 0.134472 0.277194 0.603160 1 0 0 1 0 0.500000 0 1 0.500000 0.886262 0.887158 0.867200 0.905873 0.881618 0.877186 0.860833 0.500000 0.500000 0.500000 0.500000 0.868369 0.500000 0.860751 0.864930 +0.595137 +0.568828 0.488896 0.274512 0.319141 0.800374 0.889689 0.403824 0.861801 0.500000 0 0 0.500000 0 0 1 0.500000 0.842168 0.891125 0.882817 0.900798 0.856742 0.884164 0.500000 0.876850 0.879167 0.873490 0.867142 0.837996 0.500000 0.500000 0.871695 0.906683 +0.614844 +0.772684 0.304183 0.602761 0.411482 0.775209 0.332133 0.756490 0.124079 1 0.500000 0 0 0 0 0 1 0.500000 0.895287 0.500000 0.879693 0.870512 0.863526 0.876972 0.877215 0.500000 0.500000 0.885799 0.500000 0.500000 0.852133 0.500000 0.500000 +0.476960 +0.196438 0.131551 0.769269 0.506035 0.335866 0.296886 0.359010 0.474131 0 1 1 0 0 0 0.500000 0.500000 0.903990 0.894110 0.500000 0.889756 0.899696 0.892052 0.904556 0.864138 0.500000 0.850664 0.905889 0.500000 0.879654 0.936891 0.889265 0.500000 +0.731710 +0.206535 0.232274 0.831905 0.423770 0.109468 0.832928 0.812831 0.658797 0.500000 1 0 1 0 1 1 0.500000 0.861246 0.500000 0.891850 0.895723 0.888939 0.500000 0.500000 0.866364 0.500000 0.500000 0.858782 0.882027 0.894917 0.903023 0.910161 0.500000 +0.569914 +0.169923 0.887291 0.895480 0.129390 0.453883 0.606063 0.700978 0.742944 0.500000 0 0.500000 0.500000 0.500000 1 1 0.500000 0.884722 0.886278 0.883780 0.875252 0.500000 0.911699 0.871322 0.869761 0.892334 0.895525 0.868292 0.908638 0.500000 0.500000 0.500000 0.902055 +0.668326 +0.131633 0.563803 0.835278 0.314596 0.411992 0.556441 0.297788 0.318737 0.500000 0.500000 0 1 1 0.500000 1 0.500000 0.500000 0.866774 0.500000 0.890212 0.884933 0.907610 0.896221 0.500000 0.907498 0.880626 0.500000 0.500000 0.500000 0.500000 0.867742 0.882972 +0.489686 +0.418060 0.140212 0.739531 0.692901 0.180713 0.642298 0.109821 0.359311 1 0 1 1 1 0.500000 0.500000 1 0.500000 0.855264 0.500000 0.842709 0.854010 0.879525 0.872659 0.903897 0.861473 0.907795 0.500000 0.905930 0.500000 0.500000 0.864669 0.908095 +0.572144 +0.799770 0.334117 0.507166 0.141909 0.469571 0.273200 0.674262 0.524849 0.500000 0.500000 1 0.500000 0 1 0.500000 1 0.870774 0.500000 0.880031 0.884335 0.500000 0.868587 0.869987 0.887678 0.890576 0.500000 0.884592 0.500000 0.500000 0.500000 0.500000 0.888041 +0.503902 +0.298152 0.836353 0.786158 0.362312 0.786193 0.138327 0.262170 0.885556 0.500000 0 0.500000 0 0.500000 1 0 0.500000 0.500000 0.897510 0.870452 0.897585 0.893173 0.897952 0.896304 0.883479 0.500000 0.500000 0.873255 0.500000 0.874075 0.898884 0.887578 0.878119 +0.721505 +0.871647 0.365418 0.174533 0.772253 0.261761 0.417297 0.118071 0.613848 0 0 1 1 0 1 0 0.500000 0.872980 0.879600 0.884162 0.851795 0.879780 0.880638 0.909631 0.500000 0.500000 0.500000 0.500000 0.885786 0.500000 0.500000 0.500000 0.864903 +0.551902 +0.435166 0.433428 0.820929 0.745503 0.267858 0.493804 0.368495 0.690129 1 0 0.500000 1 1 1 1 0 0.500000 0.500000 0.854175 0.850150 0.870759 0.900109 0.500000 0.888912 0.866446 0.500000 0.500000 0.500000 0.500000 0.897393 0.500000 0.500000 +0.377732 +0.816324 0.151477 0.465445 0.535256 0.251920 0.611428 0.479129 0.113079 1 0 0.500000 0.500000 0 0.500000 1 0.500000 0.866084 0.880707 0.873379 0.883882 0.911873 0.500000 0.870720 0.500000 0.500000 0.868262 0.500000 0.500000 0.900693 0.887711 0.882395 0.873451 +0.653259 +0.435012 0.251847 0.187053 0.791861 0.203022 0.397727 0.791962 0.303567 1 0 1 1 0.500000 0.500000 1 1 0.873736 0.500000 0.879600 0.500000 0.500000 0.500000 0.888888 0.885978 0.500000 0.895516 0.500000 0.500000 0.880116 0.500000 0.868060 0.903682 +0.442824 +0.568294 0.319107 0.225981 0.668342 0.218017 0.411319 0.430708 0.702429 0 0.500000 0.500000 0.500000 0.500000 0 0 0 0.500000 0.917649 0.500000 0.912310 0.863057 0.864839 0.898943 0.500000 0.500000 0.881128 0.894230 0.883245 0.892444 0.960531 0.881907 0.858149 +0.699092 +0.739546 0.154633 0.720039 0.297725 0.870993 0.574371 0.861146 0.677491 0.500000 0.500000 1 0 0.500000 1 0.500000 1 0.860464 0.500000 0.892504 0.884626 0.881689 0.898403 0.500000 0.864861 0.500000 0.500000 0.875002 0.500000 0.858906 0.861852 0.500000 0.871465 +0.543769 +0.661326 0.712643 0.796730 0.449157 0.386303 0.794094 0.134188 0.303860 1 0.500000 0 1 0.500000 0 0.500000 0 0.871094 0.862855 0.894110 0.500000 0.892500 0.846897 0.848977 0.877010 0.877890 0.873332 0.500000 0.500000 0.500000 0.861971 0.500000 0.500000 +0.555017 +0.702575 0.381392 0.654912 0.106166 0.534753 0.595997 0.323607 0.664816 0 1 1 0 0.500000 0 1 0 0.889999 0.903926 0.895940 0.881872 0.871942 0.912210 0.881394 0.883424 0.500000 0.879655 0.500000 0.881048 0.500000 0.884276 0.500000 0.878641 +0.717255 +0.228485 0.348337 0.306915 0.115775 0.426580 0.124326 0.148935 0.155727 1 0 1 0 1 0.500000 1 0 0.500000 0.867910 0.500000 0.913604 0.880948 0.883420 0.500000 0.898740 0.868921 0.872776 0.500000 0.890312 0.886462 0.872279 0.881422 0.500000 +0.612471 +0.376941 0.242348 0.538255 0.244646 0.772776 0.242922 0.594673 0.471636 0.500000 0 1 1 0 1 0 0.500000 0.500000 0.869273 0.854194 0.892090 0.862694 0.873516 0.500000 0.900457 0.500000 0.907972 0.500000 0.500000 0.500000 0.892428 0.848298 0.894337 +0.576346 +0.460803 0.120962 0.406260 0.210917 0.288458 0.312852 0.702859 0.357637 0.500000 1 0.500000 0.500000 0 0.500000 0.500000 1 0.894880 0.881752 0.882371 0.500000 0.500000 0.500000 0.882069 0.858699 0.881963 0.855060 0.891024 0.880387 0.500000 0.500000 0.500000 0.862284 +0.569083 +0.339385 0.242474 0.257091 0.322646 0.503896 0.376598 0.881965 0.179735 0 1 0.500000 0 0 0 0.500000 0 0.500000 0.888339 0.877059 0.892220 0.500000 0.500000 0.866471 0.500000 0.500000 0.862147 0.873634 0.879599 0.500000 0.500000 0.885118 0.886557 +0.435599 +0.737264 0.203320 0.600780 0.712259 0.739412 0.303218 0.391909 0.612447 1 1 1 0 1 1 0.500000 0.500000 0.922339 0.877924 0.892347 0.885736 0.901181 0.896747 0.897556 0.886088 0.853358 0.892662 0.854092 0.876276 0.500000 0.877656 0.500000 0.500000 +0.897597 +0.635325 0.513717 0.635696 0.344590 0.519888 0.356834 0.702077 0.812799 0 0.500000 1 1 1 1 0 0 0.861954 0.874830 0.903239 0.893706 0.860725 0.500000 0.880948 0.500000 0.878181 0.868701 0.500000 0.500000 0.874267 0.500000 0.500000 0.500000 +0.482849 +0.271284 0.464752 0.884522 0.765755 0.641816 0.809861 0.325785 0.469647 1 0.500000 0 0.500000 0.500000 1 0.500000 0.500000 0.849324 0.868170 0.500000 0.885934 0.860860 0.849595 0.889120 0.500000 0.853212 0.842174 0.500000 0.500000 0.500000 0.500000 0.500000 0.859284 +0.422858 +0.752316 0.375886 0.122552 0.737975 0.153948 0.404526 0.668849 0.747895 0.500000 0.500000 0 0 0 0.500000 0 0 0.879316 0.911605 0.500000 0.893096 0.894986 0.500000 0.888561 0.500000 0.500000 0.876756 0.886992 0.500000 0.895643 0.500000 0.500000 0.500000 +0.404217 +0.213972 0.422747 0.511955 0.622787 0.185462 0.464991 0.108190 0.152474 0.500000 0.500000 0 1 1 0 0 0 0.908498 0.904323 0.500000 0.500000 0.858742 0.866072 0.891348 0.886633 0.500000 0.500000 0.500000 0.890861 0.500000 0.500000 0.881027 0.875315 +0.530180 +0.249742 0.806410 0.733923 0.840912 0.614021 0.846648 0.210603 0.608508 0 0.500000 1 1 0.500000 0 0 1 0.874663 0.500000 0.848156 0.898008 0.888092 0.887874 0.887406 0.500000 0.500000 0.500000 0.874652 0.500000 0.895388 0.880774 0.500000 0.500000 +0.470241 +0.738524 0.578007 0.357948 0.229840 0.722659 0.325216 0.507401 0.893750 1 0.500000 1 0.500000 1 1 0.500000 1 0.500000 0.861212 0.868034 0.897000 0.880192 0.899453 0.876990 0.884164 0.895488 0.500000 0.500000 0.840031 0.858588 0.500000 0.500000 0.878395 +0.602037 +0.631172 0.313748 0.558953 0.124337 0.331640 0.479084 0.160590 0.829871 1 0.500000 1 0.500000 0 0.500000 0 1 0.900454 0.908854 0.895445 0.867156 0.888492 0.834974 0.500000 0.500000 0.500000 0.889540 0.861947 0.883351 0.900976 0.500000 0.500000 0.500000 +0.570221 +0.636333 0.654563 0.637767 0.744296 0.790888 0.647088 0.603791 0.111615 0 0.500000 0.500000 1 0.500000 0 0 1 0.500000 0.890168 0.878108 0.842397 0.897290 0.831037 0.500000 0.901964 0.859202 0.887230 0.500000 0.500000 0.500000 0.871880 0.861240 0.911601 +0.538677 +0.299136 0.582506 0.779727 0.278895 0.380659 0.337478 0.189366 0.467922 0.500000 1 1 0.500000 0.500000 1 1 0 0.500000 0.500000 0.877914 0.913793 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.877249 0.500000 0.883484 0.500000 0.500000 0.500000 +0.116476 +0.843466 0.333335 0.163637 0.843264 0.145287 0.444689 0.490318 0.169337 1 1 1 0.500000 0 0.500000 0.500000 1 0.853135 0.869096 0.890958 0.875957 0.867462 0.870193 0.873571 0.500000 0.891531 0.881472 0.500000 0.500000 0.888231 0.904842 0.909049 0.868786 +0.848293 +0.149324 0.283583 0.775180 0.648313 0.395657 0.407545 0.204791 0.514789 0 1 0.500000 0 1 1 1 1 0.909297 0.500000 0.874516 0.500000 0.872056 0.500000 0.500000 0.500000 0.500000 0.907928 0.877855 0.500000 0.500000 0.882606 0.500000 0.896984 +0.278302 +0.766084 0.573150 0.330857 0.120878 0.602284 0.394487 0.747467 0.482226 0 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.870050 0.882852 0.852340 0.500000 0.918883 0.866692 0.857858 0.873193 0.884830 0.500000 0.866357 0.500000 0.500000 0.500000 0.500000 0.886406 +0.577673 +0.790208 0.419894 0.552546 0.443457 0.588087 0.180134 0.515211 0.149219 0 1 1 0 0.500000 0 1 1 0.500000 0.864004 0.500000 0.855310 0.500000 0.500000 0.887036 0.873819 0.500000 0.500000 0.500000 0.869680 0.864399 0.889162 0.500000 0.500000 +0.288592 +0.312076 0.468254 0.549313 0.498458 0.180339 0.760022 0.285437 0.731311 0 0.500000 1 0 0.500000 0 0.500000 0.500000 0.858677 0.884553 0.500000 0.866319 0.889175 0.881457 0.500000 0.917625 0.886635 0.500000 0.500000 0.871717 0.500000 0.852778 0.860901 0.881806 +0.567616 +0.339233 0.880653 0.529822 0.121321 0.838913 0.611241 0.533585 0.171420 0.500000 0.500000 1 0.500000 0 0 1 0.500000 0.869526 0.847829 0.889720 0.844544 0.853179 0.897780 0.917969 0.902313 0.500000 0.867260 0.500000 0.500000 0.883154 0.500000 0.882994 0.500000 +0.655325 +0.239573 0.307263 0.363325 0.200369 0.596857 0.381503 0.124832 0.651121 0.500000 1 1 0.500000 0 1 0.500000 1 0.500000 0.860649 0.873138 0.850675 0.869464 0.855156 0.880554 0.893742 0.500000 0.906668 0.500000 0.868907 0.500000 0.500000 0.880927 0.882908 +0.681502 +0.463176 0.794447 0.478241 0.391192 0.568416 0.775758 0.757331 0.661814 0 0 0.500000 0 0.500000 0.500000 0.500000 1 0.873473 0.884080 0.904257 0.500000 0.883306 0.878507 0.905218 0.500000 0.500000 0.878243 0.899218 0.838373 0.909835 0.500000 0.895849 0.875788 +0.621008 +0.561341 0.261828 0.741521 0.542571 0.793718 0.223442 0.397618 0.562100 0 0 0.500000 1 0 0 0 0.500000 0.843353 0.897889 0.874562 0.871498 0.500000 0.910628 0.868090 0.862016 0.883970 0.500000 0.855777 0.500000 0.867270 0.500000 0.880468 0.882912 +0.675149 +0.530725 0.896112 0.360323 0.145331 0.384256 0.790376 0.854348 0.824972 1 0.500000 0.500000 0 0.500000 0 0.500000 0.500000 0.854365 0.500000 0.899852 0.500000 0.863717 0.877050 0.882132 0.500000 0.861264 0.500000 0.915024 0.500000 0.880695 0.500000 0.893438 0.887599 +0.509664 +0.280571 0.562501 0.548968 0.299888 0.422643 0.367839 0.868854 0.632685 0 0 1 0.500000 0 0.500000 1 1 0.874740 0.500000 0.901658 0.871838 0.500000 0.885096 0.882777 0.853220 0.839013 0.500000 0.859524 0.885968 0.500000 0.500000 0.852354 0.500000 +0.523923 +0.465259 0.615202 0.702529 0.398167 0.184456 0.352426 0.231071 0.608160 1 1 0 0 0 0.500000 1 0.500000 0.500000 0.929820 0.894889 0.897860 0.894933 0.887770 0.500000 0.908386 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.871186 0.886364 +0.460391 +0.866450 0.222955 0.207178 0.646513 0.548812 0.887578 0.118796 0.805460 1 1 1 1 1 0 0 0 0.900887 0.500000 0.897050 0.858239 0.500000 0.856398 0.500000 0.892422 0.500000 0.500000 0.500000 0.889448 0.873700 0.500000 0.500000 0.500000 +0.392814 +0.671999 0.891399 0.341112 0.467960 0.410761 0.659995 0.741317 0.322216 0.500000 1 1 1 0.500000 0.500000 0.500000 0 0.863220 0.500000 0.883757 0.860186 0.500000 0.887556 0.915581 0.885436 0.858501 0.500000 0.882899 0.865855 0.878988 0.500000 0.500000 0.500000 +0.542956 +0.138682 0.627159 0.862779 0.128713 0.281004 0.627068 0.133757 0.254119 1 1 1 0 0 0 1 1 0.500000 0.854318 0.871944 0.884495 0.500000 0.887816 0.863522 0.879044 0.500000 0.912870 0.500000 0.500000 0.500000 0.841577 0.900023 0.900602 +0.561273 +0.691304 0.550636 0.332346 0.346063 0.488456 0.876777 0.192579 0.870465 0.500000 0.500000 1 0.500000 0 0 0.500000 0 0.500000 0.500000 0.500000 0.882285 0.859673 0.902012 0.875066 0.902083 0.896533 0.871635 0.500000 0.869236 0.878714 0.832264 0.500000 0.871800 +0.624635 +0.324194 0.131858 0.336489 0.362977 0.748949 0.590786 0.737701 0.335639 0.500000 0 0 1 1 0 1 0.500000 0.500000 0.500000 0.500000 0.920007 0.866882 0.889449 0.879940 0.500000 0.882314 0.908787 0.849579 0.500000 0.500000 0.907909 0.900523 0.884550 +0.525105 +0.226050 0.219200 0.291918 0.867221 0.382227 0.285369 0.403575 0.685537 0.500000 1 0 0 0.500000 1 1 0.500000 0.885773 0.885256 0.868412 0.875725 0.500000 0.893054 0.917282 0.880340 0.500000 0.886822 0.500000 0.500000 0.500000 0.500000 0.885067 0.859972 +0.579662 +0.734790 0.223630 0.343912 0.331387 0.228414 0.746633 0.858312 0.243215 1 1 1 1 1 0 0.500000 1 0.895958 0.880668 0.500000 0.884099 0.856324 0.882099 0.912291 0.880728 0.869968 0.500000 0.500000 0.500000 0.500000 0.500000 0.861638 0.890850 +0.541698 +0.724455 0.114590 0.519082 0.418742 0.404766 0.699561 0.118624 0.313723 0 0.500000 1 0 1 0.500000 0 1 0.862893 0.874518 0.857014 0.889687 0.849962 0.500000 0.876701 0.500000 0.844934 0.905920 0.879392 0.893864 0.500000 0.859726 0.850921 0.500000 +0.619948 +0.220330 0.880380 0.753419 0.504622 0.573844 0.799260 0.566754 0.826472 0 0 1 0 0 1 1 1 0.897270 0.910254 0.905606 0.868330 0.866269 0.854264 0.885076 0.889248 0.500000 0.869146 0.862914 0.860500 0.500000 0.500000 0.904046 0.500000 +0.651539 +0.810260 0.634536 0.851183 0.426060 0.188019 0.240931 0.727384 0.540762 1 0 0 0 0.500000 1 0.500000 1 0.500000 0.877284 0.905788 0.500000 0.500000 0.899851 0.890510 0.883477 0.500000 0.912748 0.876940 0.500000 0.876334 0.885106 0.874932 0.885814 +0.581030 +0.251186 0.289705 0.479620 0.374532 0.561987 0.710491 0.614236 0.460828 0.500000 0 0 0 1 1 0 1 0.500000 0.500000 0.896327 0.500000 0.500000 0.500000 0.889545 0.865164 0.500000 0.887902 0.867628 0.878131 0.500000 0.500000 0.500000 0.859308 +0.302947 +0.470584 0.502159 0.781367 0.631515 0.469673 0.393549 0.174240 0.655384 1 1 1 1 0.500000 1 0 0 0.876524 0.901201 0.875676 0.889047 0.843660 0.892471 0.904596 0.878806 0.500000 0.500000 0.902534 0.500000 0.500000 0.877840 0.891388 0.873290 +0.715203 +0.725089 0.377236 0.401649 0.309701 0.544498 0.383811 0.514077 0.298853 0.500000 0 1 0 1 0.500000 0.500000 1 0.884888 0.500000 0.878979 0.898658 0.500000 0.884572 0.874554 0.881956 0.500000 0.500000 0.500000 0.868620 0.500000 0.936233 0.500000 0.500000 +0.520740 +0.383508 0.219593 0.501500 0.107136 0.829285 0.397062 0.826838 0.874081 0.500000 0.500000 0.500000 0 1 0 1 1 0.500000 0.893207 0.857205 0.500000 0.886822 0.858420 0.841618 0.863989 0.891374 0.500000 0.884867 0.500000 0.875900 0.882731 0.500000 0.500000 +0.528142 +0.602291 0.497658 0.331206 0.373825 0.684532 0.332449 0.465166 0.647618 1 0 0 1 0.500000 0 0 1 0.500000 0.500000 0.904348 0.865382 0.500000 0.886968 0.884371 0.872963 0.881635 0.872274 0.500000 0.500000 0.901292 0.500000 0.924983 0.500000 +0.499512 +0.691760 0.216170 0.566328 0.876645 0.376708 0.334354 0.480044 0.300999 1 0 0.500000 0.500000 1 0 0.500000 1 0.877002 0.904176 0.500000 0.500000 0.863756 0.865091 0.889423 0.893379 0.500000 0.500000 0.500000 0.500000 0.895096 0.899952 0.500000 0.901908 +0.561953 +0.224294 0.308566 0.668606 0.662675 0.173507 0.338025 0.581549 0.694241 0 1 0.500000 1 1 0.500000 0 0 0.878613 0.859830 0.889428 0.867655 0.872690 0.875361 0.893253 0.866429 0.500000 0.500000 0.867648 0.865669 0.898473 0.500000 0.500000 0.867260 +0.705716 +0.536278 0.623136 0.454601 0.672615 0.842442 0.725566 0.386379 0.470681 0.500000 0 1 0.500000 0.500000 1 1 0.500000 0.859832 0.500000 0.894787 0.900552 0.877313 0.886746 0.898846 0.883881 0.867271 0.500000 0.889001 0.500000 0.880576 0.500000 0.901446 0.500000 +0.687035 +0.498989 0.306326 0.617859 0.564368 0.740610 0.430893 0.623779 0.850025 0 1 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.885225 0.889903 0.843600 0.922182 0.893134 0.883926 0.891445 0.500000 0.500000 0.872958 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.554580 +0.826047 0.373799 0.241209 0.600747 0.152812 0.502625 0.621335 0.579719 0 0 0 0 1 0 1 0 0.500000 0.905743 0.890495 0.893623 0.887035 0.876334 0.907647 0.912509 0.500000 0.890045 0.889866 0.884376 0.500000 0.866136 0.500000 0.869720 +0.670047 +0.801833 0.611582 0.663145 0.881515 0.623144 0.573981 0.697420 0.143785 1 0.500000 0.500000 0.500000 0 0 0 0.500000 0.856012 0.906095 0.858090 0.500000 0.882864 0.883606 0.862349 0.500000 0.500000 0.500000 0.500000 0.874215 0.856783 0.500000 0.817803 0.500000 +0.353324 +0.546947 0.736557 0.321527 0.898189 0.855599 0.250570 0.322221 0.560581 0 0 1 0 0 1 1 0.500000 0.500000 0.500000 0.500000 0.886967 0.908206 0.884059 0.500000 0.860373 0.500000 0.902175 0.900626 0.882591 0.500000 0.836454 0.500000 0.500000 +0.377338 +0.897878 0.443832 0.480538 0.603643 0.830130 0.190646 0.392673 0.657717 1 0.500000 1 1 0.500000 0.500000 0 0.500000 0.864187 0.922015 0.841429 0.500000 0.859634 0.880031 0.854869 0.885421 0.870770 0.878443 0.500000 0.500000 0.876098 0.882634 0.907919 0.872710 +0.820898 +0.627544 0.131906 0.338867 0.332708 0.820033 0.103071 0.513522 0.556923 0.500000 0.500000 0 0.500000 0.500000 1 0.500000 1 0.915814 0.898034 0.869289 0.500000 0.887006 0.879245 0.856774 0.500000 0.500000 0.875003 0.897947 0.902827 0.500000 0.500000 0.500000 0.886888 +0.605880 +0.136205 0.589942 0.150553 0.146481 0.508075 0.218181 0.762557 0.488140 0 0.500000 1 0 1 1 0 1 0.882427 0.500000 0.891835 0.868343 0.834106 0.879131 0.869872 0.903505 0.884280 0.878678 0.500000 0.898312 0.882104 0.500000 0.874027 0.874926 +0.772932 +0.888477 0.830513 0.237527 0.319818 0.176853 0.576066 0.549493 0.329686 0.500000 0 1 0 0 0.500000 0.500000 1 0.500000 0.854548 0.500000 0.860825 0.500000 0.500000 0.886761 0.868558 0.894483 0.500000 0.500000 0.500000 0.860623 0.904050 0.887856 0.500000 +0.319147 +0.464910 0.336453 0.566501 0.580579 0.389002 0.560006 0.226514 0.814051 0 1 0 0 0 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.895214 0.903219 0.500000 0.907708 0.500000 0.500000 0.850634 0.500000 0.873953 0.853681 0.854679 +0.296666 +0.181543 0.201248 0.172767 0.695387 0.375829 0.755708 0.580549 0.690381 0 0 1 1 0.500000 0.500000 1 0 0.878467 0.891275 0.903763 0.883541 0.868196 0.878859 0.500000 0.500000 0.500000 0.500000 0.846414 0.914321 0.877212 0.878380 0.500000 0.500000 +0.504715 +0.836683 0.734578 0.656608 0.618825 0.795933 0.641247 0.835944 0.317543 0 0.500000 0.500000 0 1 0 0.500000 0.500000 0.500000 0.881135 0.896216 0.871587 0.904957 0.895086 0.891942 0.919368 0.885876 0.849138 0.879775 0.881600 0.913832 0.857949 0.500000 0.500000 +0.718713 +0.225283 0.126584 0.494761 0.449567 0.876945 0.619056 0.679577 0.259091 0 1 0 1 0.500000 0.500000 0 0 0.889840 0.910924 0.871854 0.500000 0.500000 0.500000 0.901647 0.500000 0.888659 0.500000 0.867280 0.500000 0.872336 0.893554 0.906434 0.899580 +0.585194 +0.443551 0.567417 0.779630 0.246809 0.311241 0.821524 0.358535 0.493088 0 1 0.500000 0.500000 0 0 1 0.500000 0.500000 0.865477 0.500000 0.876551 0.898364 0.876822 0.881653 0.871491 0.500000 0.500000 0.895454 0.500000 0.887533 0.874367 0.933417 0.500000 +0.567986 +0.685380 0.186396 0.155653 0.263983 0.158013 0.731053 0.599755 0.274318 0 0.500000 0.500000 1 0 0.500000 0 1 0.500000 0.928173 0.500000 0.859620 0.873371 0.869167 0.500000 0.866943 0.896503 0.500000 0.842013 0.500000 0.500000 0.500000 0.894018 0.500000 +0.444968 +0.382199 0.611699 0.220946 0.837985 0.219154 0.322542 0.366035 0.147665 0.500000 1 0.500000 0.500000 0.500000 1 0 0 0.881887 0.500000 0.500000 0.903953 0.873461 0.885136 0.886245 0.500000 0.879449 0.500000 0.877184 0.898632 0.896055 0.500000 0.500000 0.500000 +0.530462 +0.333806 0.874024 0.315871 0.241737 0.677509 0.690577 0.326323 0.704764 0.500000 1 0.500000 1 1 1 1 0 0.917288 0.500000 0.844037 0.500000 0.885689 0.883277 0.900422 0.500000 0.898531 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.880689 +0.400853 +0.856668 0.618273 0.313477 0.805465 0.850281 0.478955 0.394689 0.136229 0 1 0.500000 1 0 1 0 0.500000 0.880895 0.854551 0.871194 0.856684 0.885193 0.500000 0.852972 0.500000 0.500000 0.910344 0.884557 0.500000 0.877324 0.862132 0.882538 0.864745 +0.703827 +0.416658 0.565691 0.571618 0.190712 0.689454 0.658117 0.375604 0.180342 1 1 0.500000 0 0 0.500000 0 0 0.500000 0.500000 0.868866 0.881405 0.875835 0.883332 0.500000 0.878567 0.500000 0.892261 0.500000 0.500000 0.500000 0.500000 0.908505 0.500000 +0.389804 +0.257684 0.697672 0.381626 0.588433 0.388026 0.160720 0.618462 0.284703 0.500000 1 0.500000 0.500000 0 0 0.500000 0 0.500000 0.874035 0.893481 0.847855 0.500000 0.910293 0.500000 0.500000 0.500000 0.869747 0.900836 0.871243 0.890145 0.500000 0.500000 0.849496 +0.515265 +0.304374 0.607084 0.254545 0.742096 0.604506 0.128541 0.595484 0.496882 1 0.500000 0 0 1 0 0 1 0.500000 0.867016 0.500000 0.880163 0.888001 0.898261 0.904141 0.911453 0.890493 0.883313 0.883846 0.500000 0.893732 0.892290 0.866394 0.944856 +0.745284 +0.350350 0.540228 0.605925 0.776133 0.674670 0.175489 0.841048 0.492095 0.500000 0 0.500000 0.500000 1 1 1 1 0.500000 0.856305 0.866503 0.500000 0.500000 0.900759 0.892940 0.904506 0.866249 0.887346 0.500000 0.852692 0.885811 0.899616 0.878724 0.879067 +0.725143 +0.500201 0.677326 0.812178 0.873655 0.525269 0.398388 0.708011 0.538506 0.500000 1 0.500000 0.500000 0 1 1 0.500000 0.851850 0.500000 0.500000 0.845325 0.907441 0.894221 0.883438 0.500000 0.500000 0.922141 0.870096 0.911660 0.500000 0.500000 0.910887 0.859564 +0.533272 +0.476936 0.859013 0.837040 0.334736 0.512036 0.390655 0.339153 0.345267 1 0 0.500000 0.500000 0 0 0 0 0.889313 0.887832 0.881300 0.883760 0.500000 0.869253 0.877472 0.857430 0.876846 0.500000 0.500000 0.887738 0.500000 0.859046 0.500000 0.879935 +0.600917 +0.410589 0.173574 0.657978 0.439032 0.615847 0.338644 0.589499 0.716260 1 0.500000 0.500000 0 1 0.500000 1 0.500000 0.894104 0.870117 0.922895 0.870219 0.879399 0.870923 0.500000 0.500000 0.500000 0.867414 0.500000 0.851172 0.500000 0.500000 0.500000 0.878173 +0.565155 +0.714917 0.604533 0.586303 0.588097 0.349935 0.759062 0.162289 0.597346 0.500000 1 1 0.500000 0.500000 1 0.500000 1 0.500000 0.884464 0.886311 0.889877 0.864347 0.880830 0.880898 0.861244 0.885895 0.908411 0.911452 0.500000 0.889302 0.882799 0.500000 0.500000 +0.640794 +0.796808 0.146794 0.172498 0.174451 0.193742 0.416678 0.113783 0.551514 1 1 0.500000 0.500000 0.500000 0 1 1 0.500000 0.864717 0.862320 0.500000 0.897861 0.866784 0.892546 0.887281 0.897728 0.876666 0.895661 0.863743 0.500000 0.888084 0.500000 0.500000 +0.609544 +0.664858 0.871447 0.205081 0.604585 0.666631 0.274198 0.650028 0.426661 1 1 0 0 0 0 0 0.500000 0.879810 0.880871 0.869499 0.500000 0.882042 0.500000 0.500000 0.882469 0.896799 0.500000 0.500000 0.872298 0.500000 0.500000 0.500000 0.907572 +0.372807 +0.214008 0.227381 0.195315 0.467559 0.860054 0.730685 0.819089 0.231344 0.500000 0 0 0.500000 1 0.500000 1 1 0.853499 0.903624 0.872889 0.879590 0.877592 0.500000 0.500000 0.886488 0.874744 0.863040 0.880300 0.876850 0.500000 0.500000 0.890849 0.500000 +0.567782 +0.176797 0.425964 0.177703 0.457024 0.603195 0.491138 0.364854 0.293425 0.500000 0.500000 0.500000 0.500000 0 0 1 1 0.858863 0.871551 0.877867 0.866778 0.854288 0.500000 0.905828 0.894362 0.883332 0.500000 0.875328 0.500000 0.902625 0.912092 0.500000 0.904192 +0.781282 +0.721302 0.717617 0.390425 0.468293 0.407554 0.363052 0.419326 0.604557 0 0.500000 1 1 0.500000 0.500000 1 0.500000 0.883860 0.500000 0.500000 0.882785 0.867868 0.907348 0.878055 0.935706 0.500000 0.878926 0.866391 0.896937 0.500000 0.927019 0.872008 0.500000 +0.646197 +0.663359 0.475515 0.185294 0.832102 0.543322 0.609694 0.128094 0.282827 1 1 0.500000 0 0 0 1 1 0.881434 0.500000 0.894740 0.500000 0.859620 0.872008 0.500000 0.500000 0.915625 0.500000 0.500000 0.500000 0.500000 0.500000 0.895857 0.500000 +0.250193 +0.300711 0.656653 0.561535 0.321567 0.777355 0.399624 0.675945 0.813749 1 0.500000 0 0 0 0 1 0 0.848019 0.919689 0.500000 0.873427 0.907782 0.893907 0.869594 0.892166 0.896494 0.500000 0.870796 0.852429 0.860523 0.500000 0.500000 0.500000 +0.553439 +0.670905 0.101554 0.612024 0.880965 0.186657 0.538552 0.435178 0.632612 0.500000 1 0 0.500000 0 0.500000 0.500000 1 0.896730 0.500000 0.891296 0.895246 0.911167 0.893196 0.889506 0.857852 0.849713 0.500000 0.865478 0.500000 0.500000 0.500000 0.911601 0.500000 +0.655594 +0.428274 0.602818 0.568747 0.730382 0.534785 0.338346 0.376635 0.700191 0 0.500000 0.500000 0.500000 0 0 1 1 0.862627 0.871301 0.500000 0.867857 0.887605 0.500000 0.500000 0.887026 0.500000 0.500000 0.857089 0.887273 0.861836 0.885859 0.880412 0.855373 +0.531182 +0.124626 0.388372 0.368894 0.199331 0.755737 0.273554 0.223962 0.329849 1 0.500000 1 1 0 0.500000 1 1 0.889661 0.940003 0.917887 0.867325 0.859743 0.859735 0.500000 0.912178 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.891034 +0.669405 +0.340238 0.183475 0.668703 0.688130 0.804112 0.505149 0.643988 0.508672 1 0 1 0 0 0 1 0.500000 0.500000 0.500000 0.500000 0.890076 0.885712 0.500000 0.883253 0.877073 0.856564 0.878378 0.500000 0.896700 0.891405 0.500000 0.500000 0.500000 +0.329919 +0.726913 0.626863 0.687575 0.272481 0.591137 0.238965 0.479575 0.424872 0 1 0 0.500000 1 0.500000 0.500000 0 0.500000 0.500000 0.856569 0.869329 0.917821 0.500000 0.500000 0.500000 0.500000 0.913047 0.500000 0.500000 0.875546 0.879004 0.846943 0.500000 +0.277110 +0.864437 0.786280 0.808395 0.488913 0.562372 0.784219 0.568609 0.808461 1 1 0.500000 0.500000 0.500000 1 0 1 0.882868 0.911387 0.889488 0.500000 0.870443 0.884074 0.881920 0.854697 0.878527 0.869386 0.884798 0.500000 0.500000 0.881995 0.500000 0.931143 +0.716864 +0.839047 0.463952 0.244373 0.184939 0.475822 0.541350 0.263543 0.760974 0 0.500000 0.500000 0.500000 1 1 0.500000 1 0.500000 0.878600 0.500000 0.894258 0.911076 0.500000 0.885964 0.895919 0.500000 0.853878 0.500000 0.874559 0.500000 0.500000 0.899319 0.901735 +0.445363 +0.310609 0.600722 0.529599 0.370424 0.312416 0.582105 0.436759 0.814149 0.500000 0 0.500000 0.500000 0 1 1 1 0.891097 0.902216 0.881413 0.500000 0.879086 0.861099 0.866776 0.500000 0.887748 0.886173 0.500000 0.500000 0.500000 0.874635 0.500000 0.880389 +0.539730 +0.440548 0.482508 0.113599 0.661288 0.864933 0.329384 0.152692 0.101385 0 1 0.500000 0 0 0.500000 0.500000 1 0.886642 0.854618 0.926033 0.500000 0.500000 0.896880 0.905571 0.905097 0.878859 0.500000 0.500000 0.500000 0.500000 0.500000 0.910434 0.868392 +0.494265 +0.233467 0.887183 0.678485 0.295574 0.704345 0.523755 0.554286 0.877576 1 1 1 1 1 0 0.500000 0.500000 0.877187 0.906248 0.864280 0.901143 0.886713 0.865515 0.872420 0.907099 0.500000 0.500000 0.873280 0.887306 0.878265 0.500000 0.855744 0.898637 +0.783723 +0.473136 0.188909 0.795927 0.541551 0.454984 0.714706 0.268460 0.214245 0 1 0.500000 1 0 1 0.500000 0 0.870432 0.500000 0.871376 0.500000 0.873595 0.860247 0.849466 0.500000 0.500000 0.500000 0.920400 0.500000 0.500000 0.873035 0.872200 0.855916 +0.495395 +0.831682 0.687111 0.476516 0.200993 0.692325 0.111685 0.481624 0.457115 0.500000 1 1 0.500000 0 0.500000 0.500000 1 0.867982 0.884640 0.500000 0.861688 0.864397 0.900485 0.500000 0.861027 0.878054 0.500000 0.500000 0.896596 0.500000 0.500000 0.500000 0.500000 +0.435405 +0.168277 0.430999 0.804309 0.622979 0.205901 0.770668 0.817557 0.877199 1 1 1 0.500000 1 1 0 0.500000 0.500000 0.871785 0.882004 0.500000 0.891713 0.500000 0.500000 0.885451 0.500000 0.859917 0.500000 0.500000 0.500000 0.903074 0.930956 0.877280 +0.471976 +0.562824 0.382415 0.251461 0.110851 0.871547 0.284107 0.785042 0.801065 0.500000 1 0 0.500000 1 1 0 1 0.872813 0.881206 0.871074 0.878230 0.884262 0.905737 0.868770 0.500000 0.500000 0.905477 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.560629 +0.767205 0.216273 0.707714 0.350198 0.374349 0.689467 0.869010 0.845459 0 0.500000 1 1 0.500000 0.500000 0 0.500000 0.884033 0.869292 0.876454 0.500000 0.500000 0.874388 0.856412 0.902964 0.500000 0.874755 0.500000 0.898760 0.855262 0.500000 0.887886 0.500000 +0.508668 +0.144692 0.836679 0.659733 0.334433 0.214008 0.232991 0.881602 0.485454 1 0 0 0 0.500000 1 1 0 0.500000 0.860819 0.890925 0.881215 0.500000 0.870641 0.892011 0.500000 0.500000 0.500000 0.868948 0.500000 0.500000 0.920068 0.893149 0.500000 +0.374096 +0.415092 0.644472 0.638191 0.676035 0.716336 0.467790 0.751525 0.686317 1 1 0 0.500000 0 0.500000 0.500000 1 0.912434 0.892082 0.500000 0.500000 0.857290 0.864401 0.500000 0.885259 0.500000 0.899554 0.904550 0.885776 0.500000 0.500000 0.500000 0.500000 +0.426681 +0.567740 0.608188 0.413572 0.697243 0.360630 0.500817 0.639745 0.399961 1 1 0 1 1 1 1 1 0.899192 0.883687 0.500000 0.500000 0.500000 0.500000 0.897314 0.892675 0.872499 0.901852 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.283099 +0.119330 0.184503 0.338951 0.157858 0.525103 0.809821 0.467944 0.139787 1 1 0.500000 1 0.500000 1 0 0 0.859050 0.897586 0.500000 0.500000 0.898442 0.863677 0.500000 0.867003 0.500000 0.866924 0.847981 0.500000 0.906377 0.500000 0.500000 0.500000 +0.455555 +0.298607 0.493929 0.872517 0.593403 0.718991 0.278176 0.311934 0.481124 1 0.500000 0 1 1 0.500000 0.500000 0 0.500000 0.895238 0.885709 0.901495 0.853753 0.882120 0.867501 0.868449 0.500000 0.891995 0.500000 0.500000 0.872940 0.500000 0.855382 0.500000 +0.647217 +0.125284 0.247908 0.395772 0.747389 0.760960 0.849948 0.477672 0.441557 1 1 0 1 0 0 1 0 0.500000 0.892717 0.892084 0.500000 0.500000 0.500000 0.880459 0.876397 0.500000 0.857318 0.894019 0.500000 0.884907 0.887637 0.500000 0.500000 +0.433769 +0.840500 0.888147 0.891178 0.632296 0.793843 0.720321 0.233198 0.366928 1 0 0 0.500000 0 1 0.500000 0.500000 0.500000 0.500000 0.873511 0.884339 0.893927 0.862479 0.893605 0.500000 0.856929 0.500000 0.880436 0.500000 0.889316 0.500000 0.500000 0.500000 +0.328940 +0.560960 0.260096 0.429569 0.759417 0.528769 0.819363 0.839561 0.296193 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0 0.500000 0.500000 0.872499 0.880223 0.888385 0.906346 0.861435 0.868432 0.869594 0.904954 0.500000 0.873168 0.884614 0.895418 0.500000 0.500000 +0.641201 +0.210675 0.207075 0.513868 0.776661 0.749960 0.784150 0.210945 0.749300 1 0 1 0.500000 0 0 0.500000 0 0.887624 0.876326 0.881832 0.892579 0.876941 0.867993 0.500000 0.895026 0.878815 0.890159 0.500000 0.883339 0.865173 0.500000 0.874725 0.861069 +0.714188 +0.246791 0.811021 0.631971 0.138375 0.274027 0.173856 0.605210 0.757341 1 1 0.500000 0 0.500000 0 0.500000 0.500000 0.853134 0.881809 0.876928 0.872105 0.902156 0.500000 0.880153 0.871735 0.891376 0.500000 0.934621 0.877458 0.863647 0.874172 0.500000 0.881771 +0.766722 +0.507927 0.127436 0.408865 0.792109 0.378059 0.630499 0.193687 0.302183 0.500000 1 0 1 0 0 0.500000 0 0.876761 0.872220 0.500000 0.875002 0.500000 0.906989 0.500000 0.867054 0.861452 0.500000 0.879077 0.899229 0.897070 0.873854 0.896078 0.890522 +0.718992 +0.423265 0.411985 0.426836 0.432016 0.294601 0.365422 0.240356 0.657667 1 0 0 0.500000 1 0 0.500000 0.500000 0.500000 0.855072 0.500000 0.500000 0.889903 0.500000 0.889208 0.912257 0.500000 0.500000 0.889104 0.500000 0.500000 0.894773 0.872655 0.500000 +0.325467 +0.835913 0.592337 0.404644 0.258945 0.281895 0.404435 0.735538 0.790594 0.500000 0 0 0 0 1 1 0.500000 0.894561 0.500000 0.862020 0.500000 0.882349 0.890400 0.893971 0.879848 0.897059 0.500000 0.500000 0.500000 0.500000 0.896617 0.500000 0.500000 +0.458844 +0.541341 0.115317 0.740496 0.124728 0.501020 0.835688 0.814229 0.147566 0 1 1 0 1 1 0 0 0.874354 0.882785 0.883798 0.500000 0.500000 0.860787 0.500000 0.873118 0.500000 0.908895 0.500000 0.500000 0.500000 0.500000 0.500000 0.904627 +0.356477 +0.791556 0.688171 0.686433 0.285210 0.129430 0.327933 0.576990 0.862716 1 0.500000 0.500000 0 0 0.500000 0 0.500000 0.500000 0.863723 0.883679 0.500000 0.863602 0.500000 0.933133 0.874627 0.899293 0.500000 0.500000 0.500000 0.845495 0.500000 0.905486 0.910074 +0.509873 +0.782540 0.350478 0.282555 0.307749 0.532189 0.692581 0.416920 0.177040 0.500000 0 0.500000 1 0 0 0 0 0.862085 0.500000 0.920466 0.907486 0.861229 0.500000 0.843931 0.900957 0.912222 0.886230 0.500000 0.874647 0.500000 0.881914 0.500000 0.895358 +0.628866 +0.530775 0.139782 0.723424 0.390095 0.534637 0.246142 0.304299 0.159329 0.500000 0.500000 0.500000 0.500000 1 0 0 0.500000 0.891602 0.500000 0.878481 0.893679 0.879282 0.898830 0.863428 0.892150 0.500000 0.871602 0.892196 0.500000 0.500000 0.500000 0.893921 0.879168 +0.639501 +0.673446 0.414941 0.506731 0.826389 0.521165 0.226080 0.720670 0.496771 0.500000 0 0 0.500000 1 1 0.500000 0.500000 0.902837 0.500000 0.500000 0.862398 0.911548 0.500000 0.875489 0.500000 0.500000 0.862705 0.500000 0.500000 0.910654 0.877695 0.875324 0.500000 +0.318062 +0.815916 0.506490 0.779323 0.689075 0.678098 0.202091 0.748595 0.228288 0 0.500000 1 0 0.500000 1 1 0 0.884334 0.843748 0.873841 0.879573 0.880136 0.856504 0.901129 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.903058 0.500000 0.500000 +0.496909 +0.854471 0.494640 0.812301 0.538389 0.108846 0.781037 0.685055 0.312439 0 1 1 0.500000 1 0 1 0.500000 0.865293 0.880811 0.880498 0.500000 0.894585 0.500000 0.876577 0.500000 0.863973 0.902901 0.500000 0.897222 0.873157 0.885701 0.500000 0.907624 +0.625724 +0.295449 0.209232 0.763100 0.814018 0.604180 0.260257 0.742908 0.658264 0.500000 1 0.500000 0.500000 0 1 1 1 0.500000 0.907384 0.876596 0.882746 0.877424 0.888926 0.888869 0.914999 0.500000 0.872255 0.500000 0.893422 0.901249 0.882383 0.500000 0.500000 +0.674368 +0.589305 0.656277 0.640790 0.362646 0.798075 0.646239 0.747239 0.645352 0 0.500000 0 0 0.500000 0 0 0.500000 0.871432 0.877771 0.885311 0.871216 0.880817 0.851723 0.500000 0.500000 0.500000 0.500000 0.500000 0.882955 0.854291 0.500000 0.879103 0.893569 +0.458976 +0.890686 0.366460 0.895820 0.248074 0.779067 0.383601 0.183934 0.379824 1 0 1 0 0 0.500000 0 0.500000 0.855973 0.890047 0.865476 0.901338 0.882361 0.500000 0.500000 0.891650 0.500000 0.841165 0.894241 0.500000 0.500000 0.500000 0.875812 0.500000 +0.448259 +0.193798 0.557909 0.174336 0.669983 0.596971 0.698682 0.547567 0.753267 0 1 0.500000 1 0 0.500000 0 0 0.500000 0.889308 0.890712 0.885347 0.500000 0.906524 0.500000 0.903470 0.886495 0.893921 0.893885 0.864197 0.907194 0.895852 0.894785 0.863685 +0.769416 +0.122474 0.221956 0.211796 0.658388 0.131866 0.471390 0.453523 0.166767 1 1 1 0 1 0.500000 0.500000 0.500000 0.897781 0.897137 0.879217 0.500000 0.500000 0.843995 0.859846 0.894973 0.500000 0.500000 0.500000 0.500000 0.864522 0.500000 0.500000 0.904871 +0.510612 +0.532855 0.688628 0.378515 0.295369 0.473265 0.757433 0.781035 0.659741 0.500000 0 0.500000 1 0 0.500000 0.500000 0 0.859118 0.896931 0.863993 0.846447 0.866167 0.500000 0.902717 0.897040 0.500000 0.894287 0.500000 0.874145 0.500000 0.500000 0.878976 0.890150 +0.606549 +0.504897 0.398940 0.391462 0.305895 0.576114 0.543769 0.131499 0.696904 0 0 0 0 0.500000 0 1 1 0.858526 0.877397 0.500000 0.500000 0.857638 0.500000 0.890518 0.888148 0.928014 0.881719 0.500000 0.863994 0.880220 0.874816 0.500000 0.877675 +0.517599 +0.828888 0.114764 0.243027 0.746853 0.562106 0.322688 0.410949 0.616069 1 0.500000 0.500000 0.500000 0 1 1 0 0.875321 0.855061 0.874980 0.874986 0.910847 0.890293 0.865163 0.863845 0.500000 0.929306 0.500000 0.500000 0.875250 0.500000 0.500000 0.500000 +0.705954 +0.226278 0.853213 0.149725 0.624879 0.143454 0.830702 0.205610 0.690307 0.500000 0 0 0.500000 1 0.500000 0 0 0.884875 0.866894 0.869309 0.500000 0.891712 0.883343 0.889968 0.876502 0.871178 0.500000 0.500000 0.500000 0.858507 0.500000 0.500000 0.500000 +0.593979 +0.877178 0.523056 0.800901 0.141782 0.734481 0.617523 0.502009 0.666579 0 0 0 0.500000 0 0 1 0.500000 0.893795 0.868129 0.902841 0.878707 0.500000 0.500000 0.500000 0.883336 0.500000 0.898798 0.500000 0.500000 0.858734 0.862891 0.882689 0.500000 +0.403828 +0.141786 0.797956 0.241600 0.763414 0.502609 0.349140 0.200677 0.183054 1 1 0 0.500000 0 1 0 1 0.890454 0.500000 0.885381 0.500000 0.853649 0.906725 0.500000 0.905951 0.913072 0.500000 0.852608 0.876585 0.887647 0.500000 0.500000 0.500000 +0.509775 +0.433708 0.736372 0.409931 0.314839 0.500569 0.464960 0.376398 0.717615 0 0.500000 1 0 0 0 0.500000 0 0.500000 0.898076 0.500000 0.871360 0.881566 0.865672 0.840296 0.895537 0.866602 0.500000 0.500000 0.500000 0.500000 0.877676 0.874871 0.878032 +0.518965 +0.284143 0.595324 0.202094 0.794632 0.386173 0.214857 0.100156 0.313106 0 0.500000 0.500000 0.500000 1 0.500000 0 0.500000 0.864950 0.882531 0.897445 0.899011 0.890514 0.894818 0.862780 0.500000 0.879511 0.910658 0.500000 0.500000 0.858240 0.891041 0.500000 0.880445 +0.765661 +0.397912 0.703138 0.236491 0.509070 0.140753 0.228331 0.157653 0.268284 0.500000 0.500000 0 0 0 0.500000 0 0.500000 0.910073 0.888182 0.893927 0.899926 0.500000 0.911882 0.889059 0.881666 0.876058 0.500000 0.500000 0.895310 0.500000 0.500000 0.500000 0.841834 +0.679246 +0.312833 0.381853 0.403719 0.702214 0.705963 0.521653 0.424590 0.278024 0 0 0 0.500000 0.500000 0 0.500000 0 0.865972 0.868255 0.877838 0.500000 0.880197 0.908022 0.886672 0.894648 0.888538 0.500000 0.500000 0.896038 0.500000 0.847875 0.873228 0.856302 +0.673976 +0.275799 0.347544 0.571426 0.163493 0.819438 0.492299 0.676405 0.544461 0.500000 0 0.500000 0.500000 0 0 0 0 0.883027 0.879925 0.500000 0.500000 0.897825 0.500000 0.889895 0.852965 0.888680 0.895306 0.500000 0.905007 0.500000 0.882115 0.880502 0.500000 +0.528387 +0.240162 0.604132 0.252088 0.235214 0.639242 0.735749 0.327324 0.727551 0 1 0.500000 0.500000 0 1 0 0 0.869939 0.917791 0.869949 0.866121 0.875054 0.884264 0.886729 0.500000 0.862750 0.880874 0.500000 0.500000 0.500000 0.500000 0.850057 0.500000 +0.548825 +0.148087 0.297729 0.131018 0.616591 0.851725 0.740543 0.107177 0.722927 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.869206 0.888144 0.888303 0.908803 0.862350 0.898603 0.860629 0.500000 0.910564 0.854752 0.500000 0.500000 0.500000 0.875696 0.500000 +0.675356 +0.236698 0.787547 0.499920 0.747412 0.360687 0.663555 0.566140 0.121855 0 1 0.500000 1 0 1 1 0 0.908832 0.500000 0.500000 0.882911 0.901080 0.891708 0.500000 0.880904 0.876275 0.874880 0.872771 0.500000 0.876228 0.500000 0.852417 0.500000 +0.540680 +0.259096 0.430480 0.874996 0.657142 0.786473 0.855724 0.758430 0.731626 0.500000 0.500000 0.500000 1 0.500000 1 1 0.500000 0.500000 0.875953 0.865120 0.911031 0.500000 0.859532 0.939693 0.869941 0.500000 0.500000 0.884163 0.500000 0.500000 0.857777 0.500000 0.500000 +0.436127 +0.596428 0.373574 0.452708 0.861486 0.791223 0.683645 0.624042 0.469144 0 1 0.500000 1 0 0.500000 0 0 0.500000 0.861805 0.902277 0.500000 0.500000 0.855896 0.910162 0.907289 0.898117 0.870736 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.324565 +0.449075 0.611085 0.300112 0.189394 0.137279 0.252131 0.171218 0.263299 1 0.500000 0.500000 0 1 0.500000 0 0 0.500000 0.920695 0.879462 0.848661 0.859923 0.500000 0.909422 0.895059 0.888455 0.500000 0.882960 0.500000 0.500000 0.887835 0.899932 0.879342 +0.682963 +0.109876 0.493792 0.162818 0.677057 0.289757 0.552004 0.123471 0.171557 0 0 1 0.500000 0 0 1 1 0.500000 0.883794 0.852290 0.500000 0.885254 0.885868 0.858304 0.500000 0.500000 0.863134 0.895297 0.887290 0.884897 0.500000 0.893132 0.500000 +0.477675 +0.606800 0.284073 0.209172 0.545384 0.860969 0.106019 0.464782 0.596210 1 0.500000 0 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.877130 0.500000 0.500000 0.898402 0.878229 0.904727 0.922115 0.893110 0.500000 0.500000 0.883053 0.500000 0.875650 0.500000 +0.358617 +0.339447 0.479036 0.153134 0.318423 0.728888 0.226804 0.887606 0.594520 0 0.500000 0.500000 0 0.500000 0.500000 0 1 0.500000 0.500000 0.899296 0.888725 0.848095 0.895658 0.500000 0.881083 0.868074 0.889266 0.500000 0.500000 0.903099 0.921374 0.901759 0.909646 +0.614362 +0.459938 0.774596 0.443087 0.761778 0.208780 0.371991 0.251787 0.777971 0 0.500000 0 0.500000 0 0.500000 0.500000 1 0.500000 0.848966 0.834758 0.863481 0.896388 0.838122 0.894842 0.896168 0.500000 0.500000 0.884953 0.500000 0.500000 0.881922 0.500000 0.500000 +0.500989 +0.420850 0.633519 0.546590 0.337771 0.311520 0.708411 0.867882 0.287369 0.500000 1 0.500000 1 1 0 1 1 0.500000 0.879330 0.875290 0.879042 0.866547 0.500000 0.500000 0.867927 0.882359 0.500000 0.500000 0.500000 0.500000 0.875209 0.500000 0.859878 +0.454424 +0.336087 0.820077 0.841736 0.860427 0.596201 0.542146 0.854986 0.355826 0.500000 0 0 1 0.500000 1 1 0.500000 0.903311 0.875376 0.500000 0.907039 0.896779 0.857203 0.871858 0.500000 0.500000 0.500000 0.500000 0.893499 0.500000 0.906422 0.500000 0.500000 +0.437255 +0.876248 0.105016 0.410552 0.349149 0.341859 0.219522 0.106801 0.811161 0.500000 1 1 1 1 0 0 0.500000 0.887965 0.884053 0.886298 0.500000 0.868828 0.500000 0.885374 0.859239 0.900829 0.901761 0.907913 0.874804 0.500000 0.861451 0.500000 0.500000 +0.470889 +0.186903 0.677887 0.645176 0.465100 0.330426 0.863993 0.534988 0.542441 0 1 1 0.500000 0.500000 0 0 1 0.500000 0.500000 0.500000 0.500000 0.883189 0.884700 0.500000 0.500000 0.867804 0.855756 0.890088 0.500000 0.500000 0.890170 0.896707 0.500000 +0.374685 +0.255804 0.302758 0.645957 0.801385 0.277694 0.199990 0.636937 0.397030 0 0 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.906020 0.883305 0.500000 0.891666 0.912486 0.858341 0.500000 0.888215 0.879706 0.897018 0.500000 0.500000 0.895282 0.500000 +0.470900 +0.571442 0.421155 0.159114 0.832959 0.539509 0.520558 0.417827 0.216853 1 0.500000 0.500000 0.500000 1 1 0 0 0.872267 0.895548 0.910300 0.890773 0.877501 0.890536 0.883857 0.500000 0.500000 0.500000 0.909237 0.500000 0.852639 0.920481 0.500000 0.500000 +0.646333 +0.391254 0.805204 0.460089 0.114541 0.495930 0.895106 0.254914 0.546365 0.500000 0.500000 0 0.500000 1 0 0.500000 0 0.874842 0.899915 0.500000 0.890152 0.883979 0.860646 0.865701 0.899447 0.864462 0.500000 0.500000 0.500000 0.500000 0.889478 0.500000 0.500000 +0.627589 +0.119925 0.576535 0.421988 0.548937 0.586172 0.787460 0.638974 0.241115 0.500000 0.500000 0 1 1 1 0.500000 0 0.500000 0.871153 0.890455 0.500000 0.878107 0.881297 0.500000 0.889259 0.500000 0.872735 0.500000 0.500000 0.878786 0.500000 0.895525 0.500000 +0.448885 +0.866863 0.775808 0.799711 0.147487 0.622211 0.108088 0.832420 0.277969 1 0 0.500000 0 1 1 0 0.500000 0.909921 0.863789 0.909329 0.873863 0.902331 0.864099 0.500000 0.885089 0.500000 0.500000 0.908567 0.869163 0.852840 0.500000 0.870710 0.877383 +0.597628 +0.382836 0.129342 0.445857 0.118664 0.185094 0.668723 0.231482 0.324723 0 0.500000 1 0 0 0 0 1 0.500000 0.500000 0.882002 0.500000 0.865207 0.872114 0.500000 0.500000 0.500000 0.500000 0.500000 0.887603 0.897138 0.500000 0.891291 0.500000 +0.226558 +0.181776 0.105798 0.754351 0.172693 0.258965 0.625598 0.217939 0.698868 0.500000 1 0 1 0.500000 0 1 0 0.864550 0.860059 0.500000 0.893300 0.500000 0.863668 0.877761 0.500000 0.500000 0.860771 0.877583 0.500000 0.500000 0.500000 0.857433 0.500000 +0.423451 +0.401096 0.615412 0.223581 0.322901 0.796490 0.412178 0.480114 0.670252 0 1 0 0 0.500000 0.500000 1 1 0.885023 0.851969 0.840728 0.500000 0.908897 0.910105 0.884189 0.500000 0.874550 0.908065 0.500000 0.500000 0.894584 0.870999 0.889386 0.500000 +0.542816 +0.682408 0.623512 0.365321 0.157937 0.242425 0.239861 0.346808 0.196152 0 0.500000 0.500000 0.500000 0 0 0 0.500000 0.500000 0.903134 0.913050 0.500000 0.500000 0.877441 0.910848 0.875766 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.856341 0.899603 +0.370511 +0.170481 0.671446 0.385896 0.352852 0.175745 0.339265 0.624423 0.470112 0.500000 0 1 1 1 0 1 1 0.500000 0.843019 0.892360 0.903576 0.912533 0.872459 0.500000 0.500000 0.894921 0.882860 0.876219 0.881551 0.883802 0.908897 0.500000 0.500000 +0.666395 +0.527098 0.730612 0.391138 0.457615 0.134125 0.832355 0.794061 0.381183 0 1 0.500000 0 0.500000 0.500000 0 0 0.860685 0.860694 0.866941 0.893799 0.896807 0.883712 0.914547 0.895999 0.886701 0.500000 0.500000 0.500000 0.914968 0.859836 0.905809 0.500000 +0.774141 +0.228603 0.728891 0.270043 0.407578 0.762804 0.653853 0.710962 0.541578 1 1 0.500000 0 0.500000 0 1 1 0.880874 0.878187 0.862011 0.500000 0.905160 0.867503 0.883369 0.500000 0.876173 0.500000 0.500000 0.900997 0.500000 0.899382 0.500000 0.500000 +0.571569 +0.281604 0.321582 0.225206 0.443529 0.189773 0.113047 0.174318 0.358155 0.500000 0.500000 1 1 0 1 0 0 0.883798 0.917642 0.500000 0.864784 0.897097 0.909674 0.888794 0.864832 0.903506 0.887699 0.500000 0.500000 0.905878 0.880941 0.500000 0.500000 +0.714104 +0.241399 0.597487 0.562066 0.439076 0.553460 0.606871 0.675421 0.806973 0.500000 1 1 0.500000 0 1 1 0.500000 0.882690 0.885325 0.870269 0.875309 0.500000 0.871152 0.500000 0.867115 0.872703 0.832564 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.461084 +0.116467 0.863577 0.735365 0.280086 0.402284 0.579703 0.872585 0.143773 0.500000 1 0.500000 0.500000 1 0 0 0 0.852534 0.855967 0.883238 0.500000 0.500000 0.877917 0.500000 0.500000 0.894282 0.900265 0.500000 0.500000 0.857886 0.500000 0.902499 0.858848 +0.425079 +0.590878 0.684498 0.558857 0.113288 0.235796 0.830236 0.381313 0.133370 0 0.500000 0.500000 0 0.500000 0 0.500000 0 0.901372 0.500000 0.500000 0.853816 0.500000 0.907529 0.860030 0.896452 0.891901 0.500000 0.500000 0.868458 0.886376 0.876231 0.846240 0.872303 +0.622501 +0.785932 0.562322 0.749458 0.348125 0.744796 0.385958 0.602299 0.635602 0 1 1 0 0.500000 0 0.500000 0.500000 0.846909 0.500000 0.863795 0.892846 0.899773 0.867108 0.922900 0.852576 0.500000 0.876149 0.869457 0.500000 0.918930 0.866244 0.500000 0.500000 +0.565172 +0.283796 0.357578 0.418846 0.544449 0.350491 0.496547 0.866567 0.595150 0.500000 0 1 0.500000 0.500000 0.500000 1 0.500000 0.873469 0.891272 0.888887 0.885060 0.500000 0.500000 0.904491 0.875500 0.861145 0.500000 0.500000 0.875902 0.500000 0.861535 0.500000 0.500000 +0.476362 +0.634953 0.656271 0.554406 0.501156 0.728771 0.649543 0.275579 0.661437 0 0 1 0.500000 0.500000 1 0 0.500000 0.873695 0.879870 0.500000 0.500000 0.898887 0.871250 0.875608 0.899812 0.870505 0.500000 0.889641 0.882853 0.867212 0.500000 0.500000 0.500000 +0.515847 +0.425010 0.149819 0.601016 0.675533 0.275328 0.438378 0.818715 0.341473 0 0 0 1 0.500000 0.500000 0 0.500000 0.887631 0.866940 0.911131 0.500000 0.883163 0.904683 0.868496 0.884484 0.500000 0.876699 0.500000 0.500000 0.500000 0.852810 0.500000 0.885889 +0.648696 +0.835079 0.168403 0.157136 0.380757 0.382743 0.168419 0.423239 0.770784 0.500000 0 0.500000 1 1 0.500000 0 0 0.500000 0.883777 0.500000 0.870210 0.500000 0.500000 0.872558 0.875719 0.846337 0.855289 0.500000 0.500000 0.889572 0.500000 0.500000 0.500000 +0.327101 +0.423357 0.362702 0.124179 0.870556 0.431741 0.465842 0.813535 0.477923 1 1 0 0.500000 0.500000 0.500000 0 0.500000 0.889355 0.860193 0.881031 0.894535 0.876107 0.500000 0.500000 0.895842 0.500000 0.500000 0.904581 0.890171 0.871664 0.500000 0.500000 0.500000 +0.600879 +0.529539 0.166251 0.772356 0.383393 0.689473 0.167879 0.136029 0.834511 0 1 0.500000 0.500000 0 1 0 0.500000 0.896780 0.872171 0.500000 0.871301 0.500000 0.894289 0.866822 0.857816 0.500000 0.875818 0.911736 0.500000 0.878215 0.500000 0.500000 0.880839 +0.501979 +0.345177 0.796923 0.476226 0.130794 0.852289 0.627305 0.110611 0.834405 1 0 0 0 0.500000 1 1 1 0.893192 0.877063 0.868526 0.500000 0.855597 0.853924 0.911334 0.878761 0.880316 0.873858 0.500000 0.892351 0.884090 0.500000 0.879943 0.870396 +0.781368 +0.787640 0.458845 0.801587 0.478088 0.232953 0.232840 0.739428 0.570649 1 1 0 1 0 0.500000 0 0.500000 0.500000 0.852620 0.876693 0.896690 0.882044 0.500000 0.895055 0.871594 0.500000 0.860358 0.500000 0.874126 0.872947 0.860729 0.500000 0.500000 +0.599668 +0.724223 0.212312 0.536072 0.369222 0.113628 0.345277 0.866982 0.366993 0 0.500000 1 0 0.500000 0.500000 1 0.500000 0.500000 0.883882 0.889111 0.898885 0.868980 0.872448 0.876220 0.871300 0.904575 0.879616 0.500000 0.828451 0.889341 0.885125 0.500000 0.500000 +0.674073 +0.861445 0.110003 0.224105 0.327829 0.427821 0.187987 0.489172 0.113320 1 0 0 0.500000 0.500000 0.500000 1 1 0.878624 0.876966 0.887174 0.500000 0.868790 0.500000 0.915371 0.500000 0.927513 0.902072 0.903824 0.500000 0.500000 0.500000 0.891717 0.864240 +0.537231 +0.285777 0.850922 0.843456 0.162645 0.177092 0.593429 0.369370 0.204348 0 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.860833 0.841558 0.861731 0.882787 0.863104 0.869570 0.500000 0.500000 0.500000 0.881420 0.500000 0.873665 0.841280 0.500000 0.879591 0.902726 +0.559439 +0.716772 0.595952 0.359766 0.387154 0.694066 0.572100 0.284004 0.652785 0 0 0 0.500000 0 1 0 0 0.874979 0.855105 0.883105 0.839371 0.860029 0.500000 0.884734 0.898058 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.906692 0.500000 +0.557444 +0.896459 0.589071 0.712738 0.790561 0.761867 0.103442 0.343080 0.742767 1 0.500000 1 1 0 0 0.500000 1 0.890780 0.860164 0.891169 0.500000 0.893232 0.898770 0.500000 0.887990 0.500000 0.500000 0.881341 0.500000 0.500000 0.500000 0.500000 0.500000 +0.457097 +0.594718 0.425967 0.227128 0.744464 0.401925 0.158452 0.896511 0.664478 1 0 1 1 0.500000 0.500000 0.500000 1 0.879553 0.877437 0.882001 0.886422 0.500000 0.865090 0.900148 0.500000 0.500000 0.500000 0.878426 0.894618 0.890293 0.889118 0.500000 0.910685 +0.681326 +0.858638 0.136869 0.562353 0.468027 0.736738 0.148960 0.576779 0.533236 1 1 0 1 0 1 0 0.500000 0.858935 0.887474 0.500000 0.891805 0.887801 0.885862 0.875503 0.500000 0.500000 0.881411 0.500000 0.891276 0.867596 0.500000 0.873927 0.500000 +0.625602 +0.371431 0.448385 0.209826 0.343229 0.854386 0.670685 0.406205 0.888132 1 0 0 1 0.500000 0 1 0 0.879187 0.920777 0.901580 0.884693 0.500000 0.859361 0.875645 0.880821 0.500000 0.871888 0.500000 0.898033 0.896922 0.893329 0.864322 0.500000 +0.652984 +0.425861 0.838859 0.506945 0.426162 0.305588 0.218687 0.466909 0.331794 1 1 1 0 1 0.500000 0.500000 0 0.879976 0.906375 0.897462 0.869318 0.899302 0.500000 0.892836 0.868796 0.857826 0.871807 0.500000 0.500000 0.853410 0.500000 0.858974 0.500000 +0.678352 +0.196019 0.293929 0.264645 0.892695 0.531158 0.167874 0.854647 0.251974 1 0.500000 0.500000 0.500000 1 0 0.500000 0 0.500000 0.848879 0.930802 0.500000 0.500000 0.876832 0.890428 0.882549 0.500000 0.875282 0.500000 0.500000 0.500000 0.876460 0.881283 0.887484 +0.517808 +0.198449 0.330509 0.661144 0.850467 0.395590 0.888374 0.701086 0.153715 0.500000 1 1 0 1 1 0.500000 1 0.887344 0.500000 0.889814 0.924342 0.870144 0.908924 0.500000 0.849764 0.500000 0.500000 0.500000 0.898630 0.889379 0.500000 0.894731 0.885279 +0.629369 +0.331982 0.622912 0.690380 0.216188 0.870805 0.622755 0.446163 0.459086 1 0 0.500000 0.500000 1 1 0.500000 0 0.896106 0.500000 0.500000 0.897232 0.500000 0.889232 0.500000 0.908541 0.500000 0.500000 0.500000 0.500000 0.881532 0.870749 0.902887 0.500000 +0.380141 +0.469944 0.156585 0.724397 0.746562 0.473143 0.307651 0.487248 0.585500 1 1 1 0.500000 1 1 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.880429 0.880646 0.872193 0.500000 0.500000 0.500000 0.500000 0.500000 0.896460 0.886539 0.500000 +0.292147 +0.586889 0.847125 0.227185 0.891054 0.139556 0.115445 0.479587 0.622523 0.500000 1 1 0 0 0.500000 0 0 0.867898 0.872694 0.879270 0.866090 0.500000 0.893681 0.842975 0.500000 0.500000 0.500000 0.887289 0.500000 0.885966 0.500000 0.870945 0.500000 +0.539291 +0.383480 0.547832 0.414091 0.627282 0.533173 0.440419 0.717421 0.299887 0.500000 1 0.500000 1 1 1 0 1 0.500000 0.890032 0.852236 0.877945 0.885324 0.870717 0.899046 0.872077 0.500000 0.500000 0.913922 0.879581 0.500000 0.878852 0.896976 0.500000 +0.680104 +0.552283 0.826467 0.238287 0.288752 0.456037 0.811692 0.715010 0.568793 1 0.500000 0.500000 0 0.500000 0 1 1 0.935073 0.873298 0.867890 0.872826 0.890432 0.851172 0.896844 0.847692 0.500000 0.853589 0.899809 0.862463 0.884727 0.905547 0.500000 0.500000 +0.795753 +0.448541 0.428986 0.568949 0.122544 0.589994 0.237450 0.619094 0.512155 1 0.500000 0.500000 0 1 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.861042 0.500000 0.883521 0.500000 0.882167 0.864406 0.500000 0.500000 0.900651 0.500000 0.908090 0.879142 0.873955 +0.443142 +0.602571 0.405444 0.899062 0.336559 0.748008 0.769449 0.321767 0.139156 0.500000 0.500000 0 0.500000 0.500000 0 0 0.500000 0.888741 0.875650 0.863839 0.869603 0.870969 0.858619 0.895604 0.853562 0.500000 0.852359 0.877858 0.902294 0.500000 0.926742 0.897104 0.500000 +0.712196 +0.173060 0.823708 0.268095 0.467452 0.670902 0.855704 0.411046 0.642746 0.500000 0 1 0 0 0.500000 0.500000 0 0.871483 0.500000 0.872332 0.500000 0.876413 0.820972 0.875865 0.869296 0.500000 0.900899 0.500000 0.500000 0.500000 0.889854 0.500000 0.889702 +0.433921 +0.420929 0.350909 0.334162 0.465961 0.404006 0.725737 0.854631 0.775891 0.500000 1 0.500000 0 1 0.500000 0 1 0.893318 0.863651 0.846491 0.896986 0.867032 0.891315 0.500000 0.883005 0.895853 0.500000 0.909160 0.500000 0.903976 0.927160 0.862973 0.500000 +0.750734 +0.713429 0.407736 0.213996 0.837432 0.520582 0.824147 0.437892 0.656726 0 1 1 1 0.500000 1 1 0.500000 0.500000 0.864644 0.887031 0.500000 0.877701 0.889575 0.887706 0.883044 0.920257 0.888469 0.500000 0.877986 0.883696 0.871756 0.883608 0.900361 +0.801316 +0.551349 0.328755 0.793255 0.433939 0.605072 0.843215 0.115285 0.199181 1 0 0.500000 0.500000 0.500000 1 0 1 0.884110 0.887291 0.887223 0.874512 0.500000 0.894353 0.888543 0.500000 0.500000 0.500000 0.877896 0.898344 0.500000 0.500000 0.875271 0.500000 +0.549845 +0.813814 0.367027 0.820612 0.219928 0.527927 0.264874 0.731285 0.512263 0 1 0 0.500000 1 1 0.500000 1 0.889045 0.870637 0.884789 0.854349 0.883056 0.500000 0.872269 0.861751 0.500000 0.500000 0.867976 0.500000 0.500000 0.887395 0.878821 0.885409 +0.662459 +0.615596 0.129078 0.812006 0.383853 0.417605 0.493705 0.300220 0.389978 0 0.500000 0 0 0.500000 1 0.500000 0 0.848903 0.500000 0.904559 0.890329 0.874579 0.878758 0.868055 0.896315 0.500000 0.500000 0.500000 0.500000 0.856222 0.876303 0.500000 0.902119 +0.570567 +0.223896 0.814798 0.103012 0.320286 0.854075 0.244142 0.292830 0.186706 0.500000 1 0.500000 1 0 0 1 1 0.899605 0.850863 0.885001 0.885880 0.500000 0.884348 0.864331 0.854505 0.897318 0.500000 0.853450 0.875680 0.883803 0.500000 0.898244 0.500000 +0.709871 +0.881590 0.285988 0.395785 0.158757 0.428312 0.434006 0.133515 0.192891 0.500000 0 1 0.500000 0 1 1 0.500000 0.500000 0.918646 0.500000 0.896777 0.500000 0.907416 0.500000 0.500000 0.874257 0.500000 0.500000 0.500000 0.870647 0.500000 0.870721 0.500000 +0.200410 +0.880794 0.497981 0.172329 0.537661 0.670440 0.280206 0.818525 0.355145 0 1 0 0.500000 0 0 1 0.500000 0.500000 0.500000 0.500000 0.893861 0.895089 0.884243 0.862080 0.849676 0.500000 0.500000 0.898258 0.886953 0.500000 0.500000 0.878369 0.863352 +0.391371 +0.831507 0.135675 0.482463 0.153277 0.323015 0.314608 0.619448 0.854898 0.500000 0 0 0.500000 1 0 0.500000 0.500000 0.883124 0.906263 0.872961 0.903037 0.885183 0.904297 0.500000 0.500000 0.863171 0.888298 0.877303 0.500000 0.500000 0.500000 0.500000 0.500000 +0.494780 +0.280575 0.631398 0.102424 0.844661 0.411485 0.824383 0.410363 0.375850 0 0 0 0.500000 1 0.500000 0.500000 0 0.500000 0.859803 0.500000 0.500000 0.880128 0.500000 0.500000 0.883776 0.500000 0.500000 0.500000 0.861006 0.500000 0.500000 0.500000 0.866674 +0.180294 +0.506503 0.197842 0.529350 0.183178 0.480695 0.836077 0.143938 0.165430 0.500000 1 1 0 1 0 1 0 0.500000 0.500000 0.500000 0.888180 0.877217 0.500000 0.865669 0.500000 0.500000 0.884154 0.500000 0.867669 0.898438 0.500000 0.500000 0.863421 +0.344725 +0.828529 0.488748 0.186747 0.455039 0.838850 0.355715 0.295174 0.392826 1 1 0.500000 0.500000 1 1 0.500000 1 0.924373 0.500000 0.500000 0.857748 0.500000 0.898886 0.852557 0.872351 0.901749 0.901482 0.890667 0.865547 0.500000 0.500000 0.893749 0.877416 +0.517897 +0.758908 0.765193 0.802958 0.322920 0.323363 0.566823 0.389758 0.468202 0.500000 0 0 1 0.500000 0 0 0 0.864966 0.891106 0.879988 0.500000 0.901066 0.846435 0.902368 0.875476 0.908127 0.865771 0.877051 0.923381 0.893618 0.500000 0.892429 0.924631 +0.797502 +0.822355 0.723150 0.589392 0.519413 0.377669 0.475389 0.456778 0.468167 1 0.500000 0 0 1 1 0.500000 0 0.500000 0.846894 0.847019 0.861013 0.874958 0.883189 0.876269 0.889456 0.869333 0.500000 0.873925 0.873083 0.900334 0.891783 0.500000 0.500000 +0.714992 +0.505535 0.727052 0.561319 0.684253 0.432470 0.719407 0.876754 0.600841 0 0.500000 0 0 1 1 1 1 0.500000 0.865167 0.863515 0.500000 0.900502 0.885890 0.500000 0.872755 0.869950 0.871880 0.861647 0.500000 0.500000 0.500000 0.500000 0.500000 +0.340135 +0.133440 0.532150 0.853098 0.622096 0.572890 0.757082 0.470129 0.861249 1 1 0.500000 0.500000 1 0.500000 1 1 0.500000 0.885470 0.872724 0.500000 0.916742 0.876484 0.887942 0.500000 0.500000 0.500000 0.846264 0.873414 0.878124 0.500000 0.878106 0.881627 +0.638790 +0.538628 0.121301 0.500413 0.244059 0.496674 0.602834 0.834111 0.703242 0.500000 0 0.500000 1 0 1 0 0.500000 0.500000 0.847846 0.893345 0.500000 0.884894 0.886574 0.888791 0.500000 0.868981 0.500000 0.500000 0.500000 0.894673 0.838989 0.884615 0.870255 +0.568305 +0.115622 0.250771 0.512723 0.729779 0.791229 0.778501 0.462034 0.805649 1 0 1 0.500000 1 1 1 0 0.894585 0.863622 0.500000 0.500000 0.883419 0.500000 0.500000 0.500000 0.500000 0.901550 0.885597 0.500000 0.884753 0.875814 0.500000 0.500000 +0.381889 +0.178940 0.441194 0.140425 0.316595 0.407277 0.508917 0.769314 0.467428 0 0 0.500000 1 1 1 0.500000 0 0.892612 0.885283 0.500000 0.916704 0.500000 0.500000 0.851453 0.913432 0.936215 0.891318 0.867152 0.879191 0.927509 0.500000 0.500000 0.500000 +0.609523 +0.527147 0.753232 0.570204 0.426304 0.299111 0.157359 0.131385 0.384340 0.500000 1 0 1 0.500000 0.500000 0.500000 0.500000 0.849910 0.894815 0.500000 0.851209 0.902372 0.500000 0.854647 0.889432 0.500000 0.899779 0.500000 0.901225 0.891829 0.500000 0.871351 0.849851 +0.557015 +0.399793 0.318783 0.389453 0.143495 0.723555 0.182919 0.118270 0.767736 0 0 0.500000 1 0.500000 0.500000 0.500000 0 0.500000 0.873559 0.500000 0.887623 0.897932 0.500000 0.906464 0.904009 0.500000 0.875263 0.500000 0.868112 0.500000 0.500000 0.500000 0.500000 +0.391372 +0.876872 0.189402 0.283225 0.368805 0.299266 0.370959 0.512660 0.470477 0 0.500000 0.500000 0 0.500000 1 0 0.500000 0.500000 0.907425 0.890029 0.874029 0.500000 0.880467 0.905075 0.874419 0.870874 0.861658 0.500000 0.500000 0.859305 0.883732 0.500000 0.500000 +0.573631 +0.245302 0.592329 0.269549 0.106261 0.525065 0.169318 0.320593 0.404703 0.500000 0.500000 0 0 0 0.500000 0 0.500000 0.500000 0.878250 0.851772 0.500000 0.890605 0.500000 0.882425 0.897923 0.500000 0.500000 0.885758 0.876979 0.868841 0.500000 0.500000 0.873910 +0.485140 +0.190976 0.337894 0.779365 0.591413 0.879206 0.223705 0.811433 0.360174 1 1 0.500000 0 1 0 0 1 0.867853 0.500000 0.884320 0.850581 0.883495 0.880122 0.902994 0.875210 0.500000 0.862517 0.500000 0.877134 0.500000 0.873493 0.843660 0.873924 +0.651688 +0.381191 0.469018 0.586418 0.124391 0.440564 0.751648 0.340288 0.221592 0.500000 1 0 0 1 1 0 0.500000 0.897909 0.500000 0.872400 0.500000 0.895532 0.500000 0.891292 0.875689 0.896562 0.500000 0.500000 0.500000 0.885484 0.840205 0.883681 0.851817 +0.506921 +0.508239 0.574027 0.669438 0.252128 0.118137 0.121405 0.651679 0.170915 1 1 0 1 0 1 1 0 0.855241 0.895729 0.500000 0.874492 0.877986 0.500000 0.500000 0.861956 0.500000 0.882993 0.862553 0.880235 0.500000 0.881201 0.500000 0.500000 +0.457588 +0.520992 0.504646 0.189881 0.337617 0.136713 0.333645 0.566206 0.430087 1 0.500000 1 0 1 1 1 0.500000 0.916551 0.500000 0.854408 0.500000 0.884323 0.873128 0.848521 0.500000 0.500000 0.500000 0.500000 0.500000 0.896435 0.902528 0.882770 0.854392 +0.517114 +0.359899 0.220480 0.212061 0.302357 0.318729 0.285439 0.771432 0.859514 0.500000 1 0 1 0.500000 0.500000 0.500000 0 0.884411 0.846325 0.872615 0.500000 0.500000 0.840340 0.877076 0.878903 0.500000 0.500000 0.500000 0.500000 0.878886 0.879083 0.903337 0.913362 +0.568020 +0.599426 0.349897 0.110851 0.876524 0.742140 0.550027 0.502549 0.145023 1 0.500000 0 1 1 1 1 0.500000 0.837483 0.500000 0.900566 0.882768 0.910635 0.878999 0.872821 0.898596 0.887202 0.874721 0.500000 0.500000 0.500000 0.500000 0.500000 0.873363 +0.628128 +0.249360 0.796889 0.715564 0.279342 0.700460 0.832614 0.344364 0.723798 0 1 0 0 1 1 0.500000 1 0.875582 0.864652 0.902248 0.870973 0.845665 0.500000 0.500000 0.500000 0.886931 0.500000 0.868907 0.500000 0.845568 0.857128 0.500000 0.500000 +0.432214 +0.781074 0.505955 0.583939 0.859362 0.295654 0.450343 0.308251 0.171049 0.500000 0 0 0.500000 1 0.500000 1 0 0.902383 0.874772 0.918601 0.885941 0.864816 0.913584 0.911278 0.834523 0.500000 0.899460 0.500000 0.862348 0.500000 0.867955 0.904307 0.889975 +0.763294 +0.826374 0.276494 0.839132 0.284845 0.392886 0.242395 0.524573 0.698836 1 0 1 0 1 0.500000 0 0 0.500000 0.500000 0.906100 0.500000 0.500000 0.894308 0.500000 0.915027 0.866837 0.500000 0.500000 0.863966 0.500000 0.500000 0.865285 0.500000 +0.232690 +0.804748 0.799852 0.105335 0.159030 0.221263 0.574204 0.450477 0.174711 0.500000 1 0.500000 0 1 0.500000 0.500000 1 0.871921 0.863110 0.884147 0.899116 0.500000 0.875364 0.875624 0.891882 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.896456 0.500000 +0.536247 +0.630860 0.660125 0.524831 0.228496 0.540284 0.750092 0.589665 0.296255 0 1 0 1 0 1 0 1 0.836778 0.880084 0.500000 0.500000 0.500000 0.500000 0.923535 0.868029 0.500000 0.500000 0.500000 0.888179 0.884313 0.873315 0.500000 0.500000 +0.321543 +0.490360 0.884906 0.807771 0.405072 0.244729 0.554693 0.533250 0.137624 0.500000 0.500000 1 0 0.500000 1 0.500000 1 0.882635 0.886145 0.859242 0.871024 0.860928 0.500000 0.907714 0.905414 0.500000 0.500000 0.858695 0.500000 0.911239 0.500000 0.905777 0.500000 +0.573533 +0.702751 0.140799 0.207048 0.862343 0.793358 0.563228 0.773819 0.177270 0.500000 0 0 1 0 0.500000 1 1 0.891017 0.500000 0.500000 0.912845 0.890745 0.500000 0.853980 0.915023 0.500000 0.500000 0.500000 0.500000 0.892722 0.894812 0.500000 0.500000 +0.381478 +0.808040 0.125038 0.116130 0.798663 0.127400 0.613353 0.829194 0.466851 0 0 0.500000 0 1 0.500000 0.500000 0 0.500000 0.500000 0.893990 0.852113 0.500000 0.500000 0.896838 0.891425 0.500000 0.901661 0.500000 0.871218 0.500000 0.500000 0.500000 0.500000 +0.238261 +0.553814 0.148694 0.100791 0.598974 0.749578 0.754951 0.653971 0.293707 0.500000 1 1 1 0.500000 0.500000 0 0.500000 0.872523 0.890266 0.874425 0.872655 0.870666 0.881364 0.500000 0.899951 0.887492 0.892234 0.849061 0.500000 0.879078 0.500000 0.500000 0.914330 +0.773473 +0.706683 0.619110 0.782471 0.794943 0.801672 0.302106 0.891351 0.327940 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.865171 0.888582 0.500000 0.500000 0.890095 0.500000 0.500000 0.893598 0.500000 0.500000 0.500000 0.895770 0.911414 0.500000 0.500000 0.889818 +0.269233 +0.582154 0.464814 0.333055 0.261999 0.411494 0.186095 0.696757 0.195260 0 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.872415 0.901878 0.500000 0.881002 0.890008 0.883845 0.885861 0.884261 0.917258 0.500000 0.881279 0.884864 0.500000 0.861083 0.876866 0.875689 +0.785626 +0.208120 0.475032 0.863820 0.827504 0.864606 0.432436 0.156121 0.133835 1 0 0.500000 0 1 0 0 0 0.894857 0.862615 0.885613 0.878776 0.910217 0.884716 0.500000 0.878677 0.879150 0.500000 0.500000 0.853532 0.897403 0.932366 0.500000 0.869626 +0.618961 +0.513230 0.463489 0.459434 0.305232 0.625961 0.719765 0.482778 0.656994 1 1 0 0 1 0 0 0 0.899852 0.882004 0.880652 0.883088 0.881786 0.865103 0.889316 0.929324 0.500000 0.879894 0.904103 0.895247 0.874756 0.849353 0.500000 0.500000 +0.773878 +0.582896 0.137680 0.590328 0.250528 0.425980 0.453717 0.226506 0.687213 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.902823 0.875257 0.898119 0.874668 0.890370 0.884342 0.891821 0.871003 0.500000 0.500000 0.889692 0.500000 0.500000 0.904709 +0.575292 +0.846308 0.104491 0.385626 0.612462 0.243331 0.267647 0.136889 0.885000 1 0.500000 0 0 1 0 0 0.500000 0.880380 0.917076 0.878802 0.870524 0.892272 0.875409 0.869645 0.873375 0.500000 0.857061 0.500000 0.904027 0.500000 0.500000 0.857122 0.500000 +0.681993 +0.100630 0.285014 0.832938 0.190647 0.397344 0.759469 0.595492 0.640173 0.500000 0 1 1 1 1 0.500000 0 0.874669 0.874265 0.883146 0.897928 0.880714 0.500000 0.879243 0.858958 0.858106 0.895342 0.500000 0.855854 0.500000 0.907558 0.894712 0.500000 +0.693441 +0.611249 0.654256 0.273653 0.281549 0.201996 0.745560 0.427139 0.733112 1 1 1 0.500000 0 1 1 0 0.842624 0.852908 0.892672 0.860687 0.872755 0.878655 0.500000 0.880509 0.500000 0.500000 0.879058 0.878049 0.857570 0.500000 0.500000 0.884534 +0.707136 +0.361531 0.458817 0.333677 0.307271 0.510918 0.792593 0.504265 0.189151 1 0 0.500000 0.500000 1 1 0.500000 1 0.888562 0.861206 0.902849 0.500000 0.910354 0.880591 0.885680 0.500000 0.500000 0.500000 0.500000 0.909150 0.500000 0.500000 0.500000 0.500000 +0.522306 +0.893152 0.201037 0.631635 0.897304 0.382780 0.783177 0.663882 0.466600 1 1 0.500000 1 0.500000 1 0 0 0.891109 0.870872 0.893673 0.863696 0.916852 0.500000 0.911137 0.500000 0.872061 0.858005 0.500000 0.500000 0.900954 0.500000 0.867612 0.500000 +0.626596 +0.810146 0.321803 0.741912 0.707737 0.730378 0.459176 0.778082 0.624738 0 0.500000 0 0.500000 0.500000 0 1 1 0.884716 0.865151 0.500000 0.849773 0.500000 0.837275 0.500000 0.500000 0.854139 0.872821 0.876538 0.500000 0.500000 0.500000 0.500000 0.500000 +0.242186 +0.732928 0.124965 0.481830 0.721480 0.509795 0.317588 0.295075 0.325991 1 1 0 0.500000 0 1 0.500000 1 0.890339 0.899638 0.864705 0.500000 0.859496 0.500000 0.500000 0.849785 0.500000 0.882943 0.881215 0.866410 0.884201 0.500000 0.896898 0.500000 +0.530785 +0.248598 0.792411 0.644362 0.386585 0.729504 0.177822 0.851139 0.495002 0.500000 0 1 0.500000 1 0 0.500000 0 0.899584 0.889827 0.861293 0.886906 0.884554 0.500000 0.896135 0.895211 0.500000 0.500000 0.500000 0.911475 0.500000 0.500000 0.500000 0.885361 +0.535004 +0.833071 0.819271 0.887435 0.122049 0.273219 0.186271 0.462926 0.596045 0 0 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.863874 0.500000 0.844063 0.893017 0.500000 0.886917 0.500000 0.500000 0.500000 0.881843 0.869569 0.500000 0.500000 0.500000 +0.218325 +0.280241 0.618276 0.358926 0.671708 0.801508 0.752001 0.680590 0.476016 0.500000 0.500000 0.500000 1 0 0.500000 0 0.500000 0.896073 0.876087 0.880591 0.880529 0.500000 0.898436 0.868329 0.878737 0.885844 0.900791 0.500000 0.500000 0.500000 0.500000 0.500000 0.887676 +0.573423 +0.201801 0.668484 0.208797 0.659150 0.131079 0.843968 0.775020 0.357914 0.500000 0 1 1 0 1 1 1 0.912053 0.898075 0.500000 0.500000 0.869336 0.883153 0.500000 0.860702 0.895449 0.500000 0.500000 0.500000 0.500000 0.904542 0.500000 0.889512 +0.464499 +0.730173 0.224671 0.250824 0.598599 0.849864 0.664374 0.737313 0.224957 0 0 1 1 0 0 0.500000 0 0.858251 0.878296 0.500000 0.875054 0.899659 0.500000 0.869244 0.873671 0.895518 0.889402 0.500000 0.500000 0.911306 0.878082 0.500000 0.500000 +0.567737 +0.495171 0.137016 0.634490 0.877474 0.705554 0.850351 0.855809 0.584507 1 0.500000 0 1 0.500000 0.500000 0.500000 1 0.885226 0.891892 0.885623 0.500000 0.890217 0.868788 0.912198 0.500000 0.500000 0.500000 0.869388 0.850979 0.500000 0.869601 0.852191 0.890379 +0.593339 +0.257942 0.233124 0.718134 0.281326 0.446666 0.116060 0.423148 0.856851 0.500000 1 1 1 0.500000 0 1 0.500000 0.500000 0.875156 0.873082 0.500000 0.884190 0.500000 0.500000 0.872269 0.500000 0.500000 0.912244 0.500000 0.500000 0.888293 0.870823 0.500000 +0.414550 +0.274761 0.514857 0.608598 0.102918 0.339548 0.577777 0.503586 0.773784 0.500000 1 0.500000 0.500000 1 0 0.500000 1 0.500000 0.912035 0.500000 0.870107 0.882147 0.899135 0.920334 0.885687 0.904596 0.500000 0.500000 0.500000 0.500000 0.500000 0.877033 0.887015 +0.602374 +0.806826 0.516603 0.350263 0.677999 0.127430 0.313609 0.619382 0.554561 1 0.500000 0 1 0.500000 0.500000 0.500000 0.500000 0.868013 0.884652 0.500000 0.885081 0.855295 0.895684 0.860048 0.870017 0.871557 0.872576 0.899856 0.500000 0.500000 0.500000 0.500000 0.500000 +0.562261 +0.300153 0.866093 0.620593 0.110710 0.896225 0.649715 0.756303 0.185266 0.500000 0.500000 0.500000 0 0.500000 1 1 1 0.888873 0.898399 0.894196 0.874489 0.500000 0.500000 0.500000 0.863888 0.500000 0.500000 0.866175 0.500000 0.500000 0.500000 0.868522 0.904330 +0.404631 +0.673784 0.481977 0.787744 0.613285 0.480170 0.825407 0.816486 0.477557 0 0 0.500000 0.500000 0 0 0.500000 1 0.891820 0.500000 0.858314 0.882440 0.892441 0.934570 0.869446 0.500000 0.500000 0.500000 0.893725 0.890297 0.500000 0.896468 0.913944 0.500000 +0.571406 +0.837325 0.320304 0.355046 0.261323 0.251100 0.436180 0.671146 0.145126 0 1 1 1 1 0 0 0.500000 0.500000 0.904837 0.500000 0.868228 0.500000 0.867066 0.877573 0.853954 0.865460 0.870580 0.500000 0.898729 0.883755 0.500000 0.500000 0.868705 +0.513592 +0.741890 0.341575 0.256037 0.210814 0.156470 0.389875 0.836089 0.349602 1 1 1 0 0.500000 0 0.500000 0 0.500000 0.867128 0.917631 0.869205 0.500000 0.876786 0.884344 0.500000 0.500000 0.895382 0.500000 0.873185 0.869793 0.873156 0.500000 0.500000 +0.508301 +0.447030 0.627108 0.811189 0.249370 0.163653 0.322753 0.717547 0.817471 0 0 1 1 1 1 1 0.500000 0.873798 0.863912 0.866846 0.901318 0.863023 0.893526 0.500000 0.872722 0.894464 0.500000 0.847225 0.500000 0.896899 0.500000 0.865567 0.894662 +0.605400 +0.825278 0.251455 0.810918 0.491837 0.110869 0.373237 0.402764 0.659002 1 1 0.500000 0 1 0.500000 1 0 0.500000 0.842334 0.500000 0.872296 0.500000 0.873098 0.846845 0.893330 0.899220 0.909555 0.909488 0.500000 0.923397 0.500000 0.500000 0.857334 +0.522100 +0.525347 0.106894 0.773886 0.503535 0.710310 0.784842 0.645175 0.448577 0 1 0 0.500000 0 0.500000 0 1 0.888388 0.895691 0.913531 0.500000 0.863569 0.500000 0.500000 0.885775 0.500000 0.845800 0.878097 0.500000 0.500000 0.923282 0.500000 0.500000 +0.329485 +0.342769 0.325872 0.325815 0.168474 0.550538 0.294074 0.309177 0.542056 0 1 0 1 0.500000 1 0.500000 0.500000 0.869058 0.872249 0.500000 0.868149 0.500000 0.907374 0.885129 0.879978 0.500000 0.859891 0.500000 0.904861 0.890001 0.500000 0.922250 0.500000 +0.512369 +0.800218 0.667580 0.214665 0.881558 0.545117 0.377092 0.381666 0.468075 1 0 0 0 0.500000 0.500000 0 0 0.500000 0.500000 0.500000 0.896088 0.893760 0.500000 0.899167 0.883719 0.852859 0.901161 0.887990 0.500000 0.500000 0.500000 0.882905 0.500000 +0.331306 +0.156600 0.170834 0.208435 0.173528 0.683005 0.262020 0.772359 0.435661 1 1 1 0.500000 0 0.500000 0.500000 0 0.500000 0.908502 0.500000 0.867757 0.872778 0.877915 0.500000 0.500000 0.500000 0.500000 0.860281 0.879608 0.500000 0.500000 0.500000 0.897537 +0.433920 +0.681446 0.459035 0.806605 0.801707 0.897592 0.433345 0.221211 0.485630 0.500000 0.500000 1 0.500000 1 0.500000 0 1 0.872702 0.500000 0.902308 0.500000 0.870547 0.858771 0.500000 0.883962 0.887849 0.500000 0.864454 0.500000 0.500000 0.881221 0.842965 0.500000 +0.424363 +0.700272 0.866760 0.635837 0.308191 0.763289 0.791042 0.843439 0.675781 0.500000 0 0.500000 0.500000 0 0 1 0.500000 0.853515 0.872204 0.877564 0.500000 0.883779 0.884503 0.869592 0.881920 0.897887 0.884992 0.882861 0.500000 0.500000 0.500000 0.500000 0.901662 +0.549382 +0.495382 0.480615 0.293285 0.637320 0.444606 0.695252 0.495525 0.495294 0.500000 0.500000 0 1 0 1 0 0.500000 0.901733 0.883226 0.891400 0.884119 0.841185 0.874360 0.881913 0.877485 0.500000 0.875593 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.708406 +0.405499 0.229718 0.263253 0.692565 0.140856 0.365716 0.389088 0.400484 1 0.500000 0 0.500000 1 1 0 0 0.883857 0.500000 0.500000 0.869704 0.500000 0.500000 0.500000 0.874867 0.897300 0.862799 0.892463 0.500000 0.895911 0.500000 0.862458 0.898491 +0.492018 +0.294346 0.877204 0.160706 0.394014 0.791399 0.449858 0.161439 0.699709 0 1 0 0 0 0 1 0 0.849623 0.865170 0.500000 0.863931 0.500000 0.901867 0.894055 0.871313 0.500000 0.914326 0.856604 0.891959 0.500000 0.865113 0.500000 0.884236 +0.586126 +0.873623 0.786308 0.474915 0.498619 0.488902 0.368203 0.584310 0.702807 0 1 0.500000 0.500000 0.500000 0 0 1 0.859544 0.871796 0.905898 0.869338 0.500000 0.886431 0.883806 0.862905 0.884913 0.500000 0.892487 0.500000 0.890177 0.500000 0.906689 0.500000 +0.674173 +0.371694 0.864536 0.858775 0.833721 0.546266 0.495564 0.342854 0.146727 1 0.500000 1 0 0.500000 0.500000 0.500000 0 0.880158 0.891374 0.893483 0.500000 0.500000 0.883262 0.500000 0.865752 0.500000 0.500000 0.500000 0.879505 0.878808 0.500000 0.860477 0.858976 +0.407571 +0.364640 0.700758 0.243607 0.896593 0.445682 0.381960 0.597773 0.572465 1 0 0.500000 1 0 0 1 0 0.500000 0.891363 0.868183 0.865833 0.896153 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.244725 +0.143836 0.849715 0.552999 0.850012 0.753297 0.869008 0.816069 0.672894 1 0 0 1 0.500000 0.500000 1 0 0.885799 0.884737 0.880390 0.842661 0.900183 0.875830 0.891522 0.500000 0.859360 0.500000 0.500000 0.876912 0.500000 0.500000 0.500000 0.500000 +0.475828 +0.104837 0.595240 0.396284 0.545745 0.531295 0.876640 0.291689 0.213053 0 0 0 0 1 0 1 1 0.868804 0.851537 0.878474 0.883116 0.500000 0.884173 0.500000 0.869712 0.500000 0.895408 0.500000 0.500000 0.893431 0.842019 0.874577 0.876643 +0.613054 +0.739804 0.486898 0.294360 0.308132 0.567299 0.386893 0.305652 0.493072 1 1 1 0 0.500000 1 1 1 0.917711 0.500000 0.500000 0.909106 0.500000 0.878750 0.885408 0.859019 0.903986 0.878813 0.867717 0.500000 0.500000 0.887035 0.901579 0.843315 +0.591702 +0.686854 0.148001 0.459580 0.367990 0.200522 0.771163 0.337851 0.867767 1 0.500000 1 1 1 0 0 1 0.889371 0.500000 0.500000 0.886345 0.874689 0.894413 0.906884 0.866025 0.904622 0.859919 0.500000 0.500000 0.500000 0.500000 0.875773 0.863816 +0.531010 +0.854763 0.608623 0.527339 0.781184 0.752158 0.116780 0.527962 0.860254 1 0.500000 0 1 0.500000 0 0.500000 0.500000 0.897495 0.866619 0.500000 0.894139 0.500000 0.875496 0.877467 0.500000 0.500000 0.888293 0.500000 0.885806 0.500000 0.500000 0.500000 0.886887 +0.338394 +0.284969 0.870575 0.747319 0.385151 0.633578 0.752003 0.713417 0.198114 0 0 1 1 1 0.500000 1 0 0.883050 0.500000 0.874228 0.500000 0.875030 0.888605 0.894598 0.887199 0.877346 0.500000 0.500000 0.500000 0.500000 0.842535 0.903544 0.500000 +0.481880 +0.385431 0.531065 0.216130 0.699546 0.678016 0.421194 0.810794 0.816272 1 0.500000 1 0 0.500000 0.500000 0.500000 1 0.500000 0.885356 0.900672 0.897246 0.890563 0.871729 0.883936 0.500000 0.500000 0.888421 0.500000 0.500000 0.500000 0.873790 0.500000 0.500000 +0.531124 +0.638734 0.199534 0.167026 0.207117 0.422474 0.713230 0.260316 0.134015 0.500000 1 0 0.500000 1 0 0 0.500000 0.895913 0.891065 0.500000 0.500000 0.904241 0.500000 0.500000 0.877065 0.901234 0.879955 0.868149 0.874283 0.500000 0.500000 0.883554 0.902482 +0.541560 +0.442725 0.283632 0.805601 0.744247 0.751732 0.154983 0.192177 0.510630 1 0 0 0.500000 0.500000 0 0.500000 0 0.896902 0.905418 0.907317 0.500000 0.886089 0.870666 0.500000 0.881822 0.500000 0.500000 0.882680 0.896381 0.859465 0.500000 0.500000 0.881667 +0.513467 +0.107419 0.784149 0.191022 0.306706 0.609831 0.822391 0.532806 0.667398 0 0 0 1 0 0 1 1 0.892889 0.902597 0.899098 0.882363 0.858615 0.500000 0.500000 0.500000 0.891785 0.500000 0.500000 0.500000 0.839216 0.500000 0.500000 0.500000 +0.428297 +0.229696 0.702357 0.716848 0.263755 0.323913 0.200023 0.379317 0.176209 0 1 1 0 0 0.500000 0 0 0.904732 0.880897 0.913105 0.890802 0.500000 0.882736 0.500000 0.891982 0.881381 0.500000 0.500000 0.905345 0.855657 0.500000 0.500000 0.883648 +0.644527 +0.527872 0.142314 0.867279 0.565851 0.859813 0.684953 0.201038 0.638510 0.500000 0 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.890325 0.905265 0.871074 0.500000 0.916965 0.865394 0.862585 0.500000 0.877560 0.903685 0.874802 0.500000 0.500000 0.500000 0.894712 +0.504736 +0.463598 0.695456 0.733718 0.603158 0.672273 0.693179 0.855935 0.307726 0 1 0.500000 0 0.500000 0 0.500000 0 0.500000 0.500000 0.500000 0.873713 0.901603 0.877645 0.897552 0.854138 0.896569 0.500000 0.886782 0.907468 0.882705 0.500000 0.843284 0.500000 +0.414492 +0.244494 0.609446 0.755168 0.312642 0.378908 0.511306 0.121863 0.356013 0.500000 1 1 1 0 1 1 0 0.500000 0.904261 0.500000 0.877909 0.886187 0.891534 0.896155 0.896711 0.500000 0.500000 0.886099 0.500000 0.851686 0.500000 0.500000 0.500000 +0.477737 +0.604049 0.447924 0.461877 0.563723 0.297520 0.613084 0.296512 0.472851 0 0 1 1 0 0.500000 1 1 0.863586 0.862112 0.867618 0.906200 0.856071 0.867745 0.500000 0.869466 0.879269 0.874643 0.895408 0.866687 0.500000 0.500000 0.889098 0.869088 +0.749515 +0.850553 0.239637 0.578279 0.141326 0.273016 0.783191 0.886195 0.876395 0 0 0.500000 0.500000 1 0 1 0 0.898000 0.500000 0.864170 0.908243 0.500000 0.882687 0.500000 0.863777 0.872767 0.500000 0.500000 0.500000 0.500000 0.500000 0.884442 0.879883 +0.423169 +0.666327 0.755490 0.116913 0.357607 0.102873 0.377879 0.815005 0.389146 0.500000 1 0.500000 0 0 1 1 0 0.500000 0.850713 0.902683 0.861532 0.897263 0.871817 0.859561 0.845736 0.500000 0.500000 0.857811 0.919581 0.891388 0.871457 0.886597 0.500000 +0.749168 +0.374217 0.860861 0.694609 0.896332 0.846630 0.716770 0.553789 0.539394 0 0 1 1 1 1 1 1 0.500000 0.894697 0.500000 0.867086 0.500000 0.893093 0.921128 0.874145 0.500000 0.500000 0.872287 0.921024 0.890929 0.892693 0.500000 0.500000 +0.454547 +0.138388 0.485627 0.534727 0.155185 0.389228 0.350649 0.754514 0.509255 1 0 0 0.500000 1 1 0 0.500000 0.876786 0.861669 0.500000 0.910634 0.846453 0.500000 0.500000 0.882131 0.886381 0.849203 0.853887 0.500000 0.856424 0.880519 0.500000 0.875262 +0.612327 +0.246582 0.495911 0.570725 0.381902 0.421455 0.401700 0.376932 0.888957 0 0.500000 0.500000 1 0.500000 1 0 0 0.905729 0.899535 0.899445 0.902339 0.500000 0.852964 0.882236 0.893852 0.500000 0.500000 0.894780 0.887049 0.910481 0.500000 0.500000 0.899086 +0.687909 +0.135614 0.260471 0.327980 0.562106 0.312701 0.568731 0.463678 0.442656 1 0 0.500000 0 0.500000 1 0.500000 0 0.500000 0.500000 0.500000 0.876653 0.500000 0.902022 0.891758 0.880781 0.909819 0.881568 0.500000 0.865841 0.910101 0.869560 0.899576 0.875445 +0.701381 +0.788746 0.647818 0.872927 0.282417 0.384093 0.457659 0.867938 0.425832 0 0 1 0 0 0.500000 0.500000 0 0.896846 0.877128 0.500000 0.500000 0.892159 0.897416 0.901905 0.928260 0.903479 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.890985 +0.474356 +0.327434 0.179533 0.814787 0.720432 0.501534 0.688635 0.486944 0.272501 0 1 0 0.500000 0 1 0.500000 0 0.863086 0.860401 0.500000 0.865685 0.874313 0.500000 0.876016 0.500000 0.500000 0.917154 0.870233 0.500000 0.889318 0.888955 0.500000 0.881512 +0.478164 +0.294036 0.458912 0.340775 0.402840 0.330198 0.245282 0.259865 0.544308 0.500000 0 0 0.500000 0 1 1 1 0.500000 0.500000 0.500000 0.500000 0.880854 0.900189 0.865096 0.870261 0.900797 0.889605 0.894286 0.889339 0.860178 0.500000 0.873789 0.880205 +0.705841 +0.220918 0.370544 0.740604 0.336827 0.444796 0.678537 0.365014 0.595075 1 0.500000 0 0.500000 0.500000 1 1 1 0.925941 0.866958 0.883076 0.834005 0.500000 0.863825 0.854347 0.899247 0.500000 0.500000 0.500000 0.500000 0.862875 0.863078 0.911859 0.500000 +0.619973 +0.277613 0.437069 0.415128 0.459318 0.752058 0.834631 0.637621 0.688175 1 0.500000 1 0.500000 0 0.500000 0 0 0.912873 0.850361 0.885105 0.904496 0.500000 0.899067 0.885052 0.866493 0.500000 0.885932 0.500000 0.500000 0.887215 0.500000 0.889168 0.880730 +0.606307 +0.101410 0.599198 0.517493 0.897214 0.471320 0.879380 0.741638 0.118523 0 0 1 0.500000 1 0 1 0.500000 0.902502 0.857350 0.866622 0.886693 0.500000 0.905625 0.500000 0.500000 0.878411 0.500000 0.892644 0.500000 0.854694 0.868717 0.884843 0.883171 +0.546390 +0.881975 0.357030 0.806389 0.382644 0.898829 0.424739 0.394127 0.285919 1 1 1 0 1 0 0 1 0.500000 0.500000 0.896817 0.890154 0.902014 0.900434 0.856569 0.874222 0.888079 0.896362 0.500000 0.902161 0.912324 0.912885 0.868191 0.862034 +0.783928 +0.134404 0.732102 0.646301 0.186130 0.487041 0.290932 0.293926 0.215608 1 0.500000 1 0 0 0.500000 0.500000 0 0.898943 0.500000 0.500000 0.908609 0.869457 0.882180 0.856694 0.844350 0.895054 0.500000 0.860001 0.861321 0.903600 0.887575 0.862926 0.500000 +0.692019 +0.215643 0.505357 0.129521 0.262309 0.823431 0.397343 0.736409 0.232553 1 0 0 0 1 0.500000 1 0 0.851097 0.909181 0.866654 0.500000 0.896172 0.879542 0.853143 0.500000 0.500000 0.873137 0.837748 0.890128 0.870876 0.500000 0.500000 0.882758 +0.639565 +0.474182 0.180840 0.384438 0.654738 0.380838 0.150761 0.447636 0.411137 0.500000 0 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.882904 0.500000 0.500000 0.893467 0.880392 0.500000 0.500000 0.500000 0.500000 0.500000 0.901599 0.864418 0.500000 0.860478 0.500000 +0.245454 +0.718250 0.632734 0.163071 0.133643 0.746282 0.561186 0.856461 0.337999 0 0.500000 0 0 0.500000 1 0.500000 0 0.500000 0.878131 0.897781 0.500000 0.500000 0.891667 0.500000 0.861467 0.900695 0.902745 0.500000 0.895489 0.901453 0.500000 0.887309 0.500000 +0.449828 +0.759701 0.488297 0.609845 0.260200 0.587421 0.188476 0.720008 0.574354 0.500000 1 1 0 0.500000 0 1 0 0.902293 0.897307 0.880848 0.873468 0.916844 0.500000 0.868130 0.860929 0.500000 0.890900 0.888454 0.500000 0.500000 0.500000 0.905810 0.898865 +0.658799 +0.701607 0.107296 0.325319 0.639552 0.352712 0.238446 0.568063 0.428581 0 1 1 1 0.500000 0 0.500000 0.500000 0.500000 0.867035 0.870323 0.500000 0.887668 0.500000 0.871805 0.500000 0.877904 0.500000 0.500000 0.905486 0.500000 0.500000 0.863289 0.919433 +0.471368 +0.540125 0.489602 0.139194 0.427512 0.601558 0.185883 0.342533 0.360764 0 0.500000 0.500000 0.500000 1 0.500000 1 0 0.873282 0.882954 0.896107 0.878683 0.500000 0.865658 0.875552 0.872265 0.863008 0.871263 0.871555 0.899675 0.500000 0.858181 0.500000 0.500000 +0.606953 +0.457540 0.473891 0.891557 0.602660 0.302341 0.837343 0.628419 0.439920 0 1 0.500000 1 0 0.500000 0.500000 0 0.874715 0.908083 0.904571 0.863835 0.866733 0.903978 0.898628 0.864376 0.875438 0.888772 0.500000 0.500000 0.500000 0.500000 0.892642 0.870750 +0.749396 +0.645102 0.825309 0.766330 0.713694 0.850290 0.618828 0.838039 0.314547 0.500000 1 0 1 0 0.500000 0 1 0.889372 0.897463 0.500000 0.500000 0.901849 0.888772 0.500000 0.853926 0.500000 0.500000 0.500000 0.500000 0.896073 0.884425 0.500000 0.500000 +0.279162 +0.573055 0.341804 0.898834 0.506634 0.805542 0.540011 0.159369 0.311428 1 0.500000 0 0.500000 1 0 0 0 0.882501 0.500000 0.500000 0.871917 0.890577 0.873156 0.500000 0.862736 0.500000 0.881640 0.887866 0.874211 0.500000 0.895072 0.500000 0.880987 +0.504429 +0.413984 0.422158 0.215874 0.393034 0.315634 0.254540 0.656882 0.421068 0 0.500000 0.500000 1 0 1 1 0.500000 0.886654 0.878015 0.905047 0.890966 0.880445 0.878137 0.500000 0.866223 0.500000 0.500000 0.866211 0.852477 0.891439 0.500000 0.500000 0.500000 +0.539607 +0.322353 0.382418 0.300974 0.271514 0.333057 0.288302 0.883693 0.424462 0.500000 0 0 0 0.500000 0 0 0.500000 0.871898 0.500000 0.870200 0.889742 0.846178 0.895977 0.500000 0.500000 0.914945 0.915790 0.872462 0.500000 0.867772 0.868722 0.867003 0.500000 +0.599205 +0.556189 0.875856 0.711538 0.622790 0.235601 0.748677 0.818126 0.848679 1 1 1 0 0.500000 0 0.500000 0.500000 0.876861 0.884242 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.888424 0.500000 0.867767 0.894132 0.886882 0.884543 0.500000 0.500000 +0.402329 +0.235277 0.899258 0.424235 0.721130 0.235259 0.601505 0.895393 0.267768 0.500000 0.500000 0 1 0.500000 1 1 0 0.500000 0.876287 0.873334 0.862704 0.878193 0.500000 0.924824 0.866911 0.874225 0.500000 0.910378 0.882798 0.500000 0.874636 0.900794 0.500000 +0.651045 +0.593772 0.531437 0.869800 0.527008 0.817443 0.559488 0.311169 0.416858 1 0 1 0.500000 1 1 0 0 0.857275 0.909356 0.901692 0.873563 0.500000 0.500000 0.868242 0.893338 0.500000 0.881275 0.881644 0.878215 0.500000 0.500000 0.500000 0.500000 +0.478678 +0.378051 0.495190 0.463176 0.792888 0.675913 0.274612 0.405310 0.248524 0 1 1 0 0.500000 0.500000 0 0.500000 0.878992 0.861453 0.873332 0.910871 0.872309 0.898193 0.899350 0.902512 0.851417 0.500000 0.500000 0.500000 0.500000 0.871652 0.500000 0.864422 +0.630187 +0.382045 0.436435 0.164373 0.408959 0.776705 0.676179 0.733357 0.135518 0 0 0 0.500000 0 1 0 0.500000 0.889376 0.849841 0.860099 0.875121 0.901654 0.864808 0.895071 0.500000 0.500000 0.882009 0.866972 0.500000 0.893565 0.855156 0.880803 0.891521 +0.692713 +0.115440 0.400197 0.703200 0.478325 0.208967 0.312275 0.600052 0.479869 0.500000 0.500000 0 1 0 0 0.500000 0 0.500000 0.886178 0.877335 0.866961 0.864186 0.868245 0.900556 0.860558 0.500000 0.500000 0.875071 0.881304 0.893213 0.880559 0.500000 0.875301 +0.745219 +0.587256 0.611104 0.631594 0.193488 0.147338 0.503279 0.407898 0.548261 0.500000 0.500000 0.500000 0.500000 1 1 1 0.500000 0.898938 0.879259 0.902593 0.500000 0.896415 0.500000 0.883373 0.500000 0.867709 0.500000 0.500000 0.872176 0.890141 0.500000 0.500000 0.500000 +0.403139 +0.845038 0.352822 0.485532 0.538367 0.529462 0.460449 0.565940 0.755564 0.500000 0 0.500000 0.500000 0.500000 0 1 0 0.896313 0.880820 0.867629 0.878470 0.902638 0.907754 0.905124 0.876858 0.891267 0.500000 0.885656 0.893636 0.500000 0.864278 0.845939 0.500000 +0.744672 +0.271926 0.858010 0.774927 0.402814 0.701871 0.539983 0.487307 0.772968 0 1 1 1 1 0.500000 0 0 0.500000 0.500000 0.903151 0.893838 0.902424 0.868453 0.500000 0.500000 0.500000 0.858748 0.500000 0.885570 0.883364 0.500000 0.887528 0.500000 +0.390421 +0.835641 0.811738 0.683691 0.589423 0.233443 0.474364 0.828466 0.230523 0 0 1 0 0.500000 0 1 0 0.902031 0.909373 0.500000 0.893860 0.880456 0.882601 0.879638 0.500000 0.500000 0.500000 0.856068 0.899044 0.500000 0.870971 0.500000 0.500000 +0.474746 +0.616346 0.720761 0.423363 0.470142 0.274934 0.220419 0.780752 0.694478 0 1 0 0.500000 0.500000 0 0.500000 1 0.500000 0.868238 0.500000 0.864102 0.874983 0.500000 0.892742 0.500000 0.500000 0.500000 0.500000 0.909015 0.892868 0.875691 0.865866 0.850332 +0.460774 +0.153349 0.728382 0.522896 0.515298 0.812856 0.279380 0.542053 0.890025 0.500000 0 0.500000 0 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.844324 0.867300 0.888203 0.863038 0.894042 0.902227 0.866694 0.887910 0.892560 0.898484 0.895545 0.866359 0.500000 0.861297 +0.628467 +0.187751 0.528804 0.604231 0.311084 0.584163 0.628535 0.789193 0.169027 0 0.500000 1 1 0 0 0 0.500000 0.904528 0.865350 0.856205 0.859307 0.887654 0.903705 0.896277 0.919891 0.900676 0.887054 0.898066 0.500000 0.500000 0.500000 0.891060 0.883043 +0.867864 +0.429244 0.101101 0.202720 0.119684 0.529194 0.759767 0.803649 0.723109 1 0.500000 0 0 0 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.864657 0.933537 0.861532 0.851027 0.500000 0.500000 0.907212 0.500000 0.500000 0.895235 0.500000 0.885337 0.885782 +0.462134 +0.251350 0.646071 0.320611 0.710714 0.368489 0.590728 0.562485 0.285394 1 1 0.500000 0 0 0.500000 0 0.500000 0.875682 0.500000 0.911733 0.904725 0.889390 0.882952 0.863033 0.500000 0.873979 0.500000 0.500000 0.888090 0.895693 0.910912 0.500000 0.886099 +0.617056 +0.480120 0.773159 0.287969 0.889360 0.476885 0.812426 0.236651 0.800308 0.500000 1 1 0 1 1 0 0.500000 0.893048 0.500000 0.901112 0.888487 0.909084 0.500000 0.872416 0.500000 0.500000 0.879289 0.500000 0.905627 0.837133 0.855557 0.500000 0.902127 +0.546766 +0.542983 0.521545 0.210744 0.575014 0.455838 0.665619 0.859527 0.678310 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.849711 0.887582 0.910564 0.863221 0.916197 0.916450 0.500000 0.500000 0.500000 0.500000 0.500000 0.878195 0.500000 0.862771 0.500000 0.500000 +0.550701 +0.676826 0.415404 0.295822 0.873740 0.344090 0.115695 0.681177 0.736702 0 1 0 0.500000 1 0.500000 1 1 0.901904 0.874843 0.875928 0.882659 0.500000 0.901031 0.500000 0.500000 0.869614 0.875310 0.855274 0.893176 0.500000 0.863440 0.870086 0.894208 +0.626917 +0.826656 0.201286 0.812294 0.426823 0.211369 0.676048 0.135694 0.808916 0.500000 0.500000 0 0 0.500000 0.500000 0 0.500000 0.883950 0.830655 0.891583 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.881585 0.896889 0.912819 0.500000 0.894357 0.882877 0.500000 +0.353638 +0.671591 0.431436 0.144279 0.295434 0.764048 0.747273 0.410484 0.812847 0 0.500000 0.500000 0 0.500000 0 0.500000 1 0.500000 0.900536 0.500000 0.884900 0.891401 0.874165 0.895854 0.921608 0.854243 0.500000 0.873170 0.500000 0.500000 0.876002 0.865981 0.500000 +0.536957 +0.349060 0.456971 0.512823 0.815748 0.872011 0.885976 0.407293 0.776360 0.500000 0 0.500000 0 0 0 1 1 0.839979 0.871777 0.878256 0.500000 0.863433 0.500000 0.500000 0.860892 0.500000 0.500000 0.887980 0.851874 0.500000 0.879364 0.500000 0.500000 +0.325495 +0.309692 0.397338 0.652473 0.716083 0.208693 0.497678 0.678947 0.860828 0 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.872073 0.885064 0.500000 0.898591 0.860304 0.500000 0.500000 0.900045 0.881392 0.861698 0.878830 0.892429 0.868361 0.500000 0.884541 +0.666804 +0.339057 0.337462 0.723983 0.179372 0.503382 0.537726 0.166808 0.535411 0.500000 0.500000 0 0 1 0 0 0.500000 0.500000 0.894570 0.880172 0.882474 0.859720 0.500000 0.500000 0.879581 0.897168 0.884306 0.889601 0.880710 0.500000 0.896837 0.500000 0.500000 +0.552447 +0.534187 0.683183 0.857184 0.494342 0.601433 0.490764 0.476648 0.816012 0.500000 0 0.500000 0 1 1 0 1 0.500000 0.883271 0.500000 0.888886 0.859690 0.500000 0.875913 0.500000 0.895176 0.879777 0.500000 0.896911 0.889051 0.500000 0.875423 0.500000 +0.387969 +0.275817 0.652979 0.417762 0.719039 0.282946 0.479614 0.265195 0.526471 0.500000 0 1 1 1 0 1 0 0.869010 0.876721 0.882828 0.870443 0.918720 0.855085 0.893561 0.865849 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.842940 0.870837 +0.718724 +0.208446 0.353553 0.767823 0.197883 0.426153 0.160763 0.538225 0.541542 0 0 0 0.500000 0.500000 0 0 0.500000 0.867369 0.894795 0.891968 0.874112 0.500000 0.500000 0.500000 0.500000 0.881814 0.855046 0.500000 0.891435 0.500000 0.500000 0.890631 0.500000 +0.342034 +0.161547 0.116985 0.770694 0.460035 0.802819 0.385453 0.110945 0.849906 0.500000 0.500000 1 1 0 1 0.500000 0.500000 0.909399 0.500000 0.866597 0.866374 0.880448 0.882307 0.866488 0.870752 0.500000 0.890617 0.500000 0.500000 0.500000 0.500000 0.500000 0.917461 +0.556608 +0.828694 0.867197 0.774761 0.807198 0.372565 0.291989 0.458664 0.158482 0.500000 0 0.500000 1 1 0.500000 0.500000 0 0.878647 0.500000 0.862467 0.890811 0.900604 0.893800 0.908183 0.500000 0.500000 0.500000 0.843034 0.500000 0.852645 0.886446 0.862651 0.500000 +0.463755 +0.502572 0.520194 0.708331 0.325910 0.165912 0.675861 0.194146 0.804144 0 0.500000 0.500000 1 0.500000 0 0.500000 1 0.881151 0.858755 0.903144 0.500000 0.872989 0.847658 0.880453 0.874425 0.907809 0.500000 0.500000 0.851541 0.500000 0.876613 0.895699 0.866208 +0.658415 +0.193796 0.536959 0.873985 0.465656 0.882298 0.187341 0.837617 0.424238 1 1 1 0.500000 0 0 0.500000 0 0.872493 0.845391 0.877588 0.886062 0.893290 0.871886 0.500000 0.500000 0.888380 0.897092 0.863871 0.851412 0.874169 0.852325 0.913740 0.882348 +0.809620 +0.325588 0.349043 0.173938 0.380253 0.704876 0.648640 0.291603 0.367279 0 0.500000 0.500000 0.500000 0 0 0.500000 1 0.500000 0.854474 0.500000 0.868776 0.886326 0.869953 0.882344 0.887340 0.906868 0.879838 0.875072 0.500000 0.500000 0.912029 0.848848 0.500000 +0.579799 +0.483404 0.766650 0.486095 0.407115 0.185522 0.670717 0.145348 0.663282 1 0.500000 0.500000 0.500000 0.500000 0 1 0.500000 0.855108 0.880998 0.880376 0.897512 0.857340 0.500000 0.500000 0.500000 0.500000 0.872637 0.500000 0.872302 0.500000 0.867135 0.892390 0.500000 +0.405723 +0.594419 0.204287 0.846895 0.367952 0.365878 0.719307 0.800032 0.745109 1 0 0 1 0 1 0 0 0.880618 0.882314 0.500000 0.885816 0.906791 0.500000 0.863563 0.859003 0.500000 0.500000 0.868555 0.878680 0.500000 0.500000 0.867737 0.891655 +0.536195 +0.642993 0.587559 0.103460 0.650669 0.788301 0.377536 0.643684 0.193413 0.500000 0.500000 1 0 0.500000 0 0.500000 0.500000 0.891227 0.500000 0.880229 0.911328 0.883889 0.881849 0.500000 0.886894 0.500000 0.870287 0.890784 0.878809 0.907378 0.879414 0.500000 0.899198 +0.764043 +0.820544 0.675675 0.271919 0.739863 0.680477 0.184871 0.119479 0.285767 1 0 0 1 0 0 0.500000 0 0.842268 0.500000 0.883791 0.880719 0.893517 0.848165 0.879289 0.873929 0.910042 0.500000 0.892265 0.893139 0.919482 0.500000 0.500000 0.885621 +0.720238 +0.288784 0.188562 0.558488 0.314585 0.224529 0.258109 0.634626 0.763857 1 0.500000 0.500000 1 1 1 0 0.500000 0.500000 0.500000 0.857461 0.852591 0.895611 0.875248 0.881375 0.892493 0.901585 0.890807 0.851779 0.874319 0.500000 0.500000 0.500000 0.910153 +0.627733 +0.344235 0.164660 0.433540 0.309281 0.688256 0.524482 0.764555 0.473751 0 0.500000 0.500000 1 0 0.500000 0.500000 1 0.500000 0.859065 0.500000 0.500000 0.500000 0.500000 0.500000 0.903295 0.500000 0.849109 0.896693 0.890100 0.885236 0.500000 0.500000 0.500000 +0.255000 +0.410931 0.320533 0.202884 0.467478 0.309999 0.757000 0.696526 0.316667 1 1 0 0.500000 1 0.500000 1 0 0.887217 0.839724 0.872747 0.945710 0.500000 0.882919 0.905282 0.853829 0.878081 0.896396 0.870248 0.892765 0.870353 0.882892 0.860877 0.899181 +0.981794 +0.519916 0.820180 0.160056 0.665810 0.873836 0.363591 0.672350 0.383772 1 0.500000 0 1 0 0.500000 0 1 0.882919 0.500000 0.500000 0.892606 0.892607 0.873540 0.500000 0.857590 0.865553 0.901710 0.870497 0.500000 0.887567 0.882427 0.882649 0.876274 +0.728502 +0.848415 0.310366 0.521393 0.846130 0.315062 0.254534 0.554269 0.602821 0.500000 0.500000 0 0.500000 0 1 1 1 0.861059 0.500000 0.874131 0.500000 0.500000 0.854575 0.897854 0.881818 0.852700 0.861040 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.309779 +0.540277 0.642920 0.163809 0.539215 0.389037 0.352913 0.413653 0.459807 0 0.500000 1 0 0.500000 0 0.500000 0 0.500000 0.500000 0.500000 0.895094 0.500000 0.877461 0.900313 0.872800 0.500000 0.890351 0.900192 0.867649 0.882620 0.500000 0.904577 0.500000 +0.496298 +0.168518 0.489266 0.893282 0.793297 0.344548 0.615314 0.188533 0.879583 0 0.500000 0.500000 1 1 0.500000 1 1 0.500000 0.500000 0.500000 0.911931 0.500000 0.879697 0.851863 0.876077 0.500000 0.500000 0.864983 0.883160 0.500000 0.889179 0.881308 0.500000 +0.362698 +0.528387 0.807833 0.642298 0.895176 0.625802 0.451774 0.366491 0.616111 1 1 1 0.500000 0.500000 0 0 0.500000 0.500000 0.881843 0.879653 0.886670 0.871240 0.500000 0.500000 0.881440 0.894562 0.894129 0.889573 0.898944 0.500000 0.500000 0.500000 0.500000 +0.503526 +0.107471 0.867790 0.343915 0.378972 0.778165 0.426992 0.651114 0.268019 1 0.500000 0 0.500000 0.500000 1 0 0 0.500000 0.891291 0.874644 0.500000 0.893655 0.885485 0.858213 0.861496 0.892636 0.855956 0.880354 0.500000 0.911885 0.500000 0.863166 0.500000 +0.637227 +0.320210 0.366544 0.699539 0.550065 0.336203 0.370503 0.836995 0.373982 0 0.500000 0 0.500000 0 0 0 0.500000 0.882097 0.886176 0.865827 0.872430 0.863520 0.500000 0.500000 0.877734 0.841674 0.500000 0.876563 0.500000 0.500000 0.865067 0.860490 0.500000 +0.496371 +0.282004 0.634647 0.310371 0.606400 0.756970 0.197830 0.328807 0.858895 0.500000 0.500000 0.500000 1 1 1 1 1 0.500000 0.871517 0.919386 0.897753 0.905095 0.888542 0.500000 0.864821 0.865819 0.500000 0.500000 0.881741 0.500000 0.886038 0.863311 0.500000 +0.610299 +0.727170 0.142367 0.160569 0.478529 0.442320 0.677170 0.601088 0.289703 0.500000 1 1 0 0 0 1 1 0.886277 0.883906 0.890148 0.871100 0.500000 0.500000 0.882301 0.868540 0.500000 0.500000 0.897380 0.500000 0.500000 0.500000 0.500000 0.500000 +0.449050 +0.160974 0.887370 0.634321 0.435732 0.345140 0.166831 0.126748 0.853030 0 0 1 0.500000 1 0.500000 0.500000 0 0.860058 0.896926 0.895629 0.895876 0.857105 0.871353 0.884253 0.857662 0.888377 0.500000 0.864156 0.500000 0.887784 0.500000 0.500000 0.872296 +0.720186 +0.203735 0.375190 0.412476 0.679686 0.482541 0.666498 0.427254 0.256283 0 0 0.500000 0.500000 0 0 0 0 0.878429 0.908083 0.869829 0.861726 0.500000 0.893623 0.500000 0.880006 0.901682 0.895815 0.500000 0.905843 0.500000 0.916280 0.887185 0.500000 +0.629988 +0.490157 0.671751 0.715599 0.870252 0.119156 0.447893 0.730084 0.328864 0 1 0 1 0.500000 1 0 1 0.500000 0.500000 0.856510 0.901956 0.500000 0.500000 0.900795 0.879828 0.500000 0.884020 0.500000 0.872590 0.500000 0.500000 0.891334 0.500000 +0.319073 +0.179282 0.600625 0.503949 0.477682 0.606280 0.345142 0.209701 0.638136 0.500000 0.500000 1 0 0.500000 1 0.500000 0 0.911351 0.896948 0.861210 0.868836 0.887207 0.889249 0.500000 0.864970 0.881934 0.500000 0.902601 0.500000 0.500000 0.500000 0.844504 0.500000 +0.632712 +0.543434 0.102605 0.678456 0.603990 0.258026 0.846742 0.189119 0.328074 0.500000 0 0.500000 0.500000 0 1 0 0 0.500000 0.901880 0.879409 0.900498 0.875444 0.500000 0.887296 0.905993 0.500000 0.500000 0.500000 0.879460 0.500000 0.890721 0.876282 0.886742 +0.518196 +0.556772 0.258905 0.419940 0.538314 0.437387 0.162436 0.653379 0.745847 0.500000 0 0.500000 0.500000 0 0 1 0 0.867295 0.889836 0.864092 0.849266 0.894073 0.879707 0.841508 0.883472 0.868797 0.885738 0.500000 0.500000 0.500000 0.868992 0.500000 0.500000 +0.689792 +0.554706 0.743892 0.398269 0.306614 0.663941 0.657556 0.551629 0.225660 1 0 0.500000 0.500000 0 1 0.500000 1 0.897388 0.869244 0.887039 0.852357 0.500000 0.875988 0.500000 0.881039 0.900131 0.500000 0.500000 0.888214 0.914734 0.860503 0.863981 0.895947 +0.680437 +0.460986 0.799336 0.238006 0.372476 0.395988 0.368305 0.707871 0.585894 0 0.500000 0 1 0 1 0.500000 0 0.869362 0.882510 0.885677 0.891103 0.500000 0.500000 0.500000 0.892331 0.896020 0.867514 0.500000 0.872404 0.855245 0.909767 0.500000 0.888553 +0.568681 +0.702065 0.608381 0.456550 0.631749 0.413324 0.537922 0.255736 0.754579 1 1 0.500000 1 0 0 1 1 0.500000 0.909391 0.948342 0.891770 0.859787 0.878227 0.500000 0.871668 0.500000 0.862708 0.500000 0.861049 0.500000 0.500000 0.500000 0.500000 +0.463922 +0.522243 0.739679 0.786758 0.833829 0.767005 0.857058 0.773978 0.447258 0.500000 0.500000 0.500000 0.500000 0 0 1 0.500000 0.895081 0.500000 0.873987 0.500000 0.909368 0.902783 0.854154 0.869626 0.876080 0.500000 0.851169 0.500000 0.885335 0.500000 0.500000 0.867250 +0.413716 +0.544302 0.277715 0.553617 0.840356 0.867908 0.735112 0.833492 0.693207 0.500000 0 0 0 1 1 1 0.500000 0.914877 0.879959 0.861196 0.853613 0.872252 0.866512 0.500000 0.892132 0.500000 0.500000 0.898114 0.500000 0.878293 0.890214 0.856342 0.500000 +0.641371 +0.422016 0.230328 0.117675 0.364102 0.458209 0.514567 0.534235 0.684779 0.500000 0 1 0.500000 0.500000 1 0 0 0.500000 0.500000 0.903428 0.885367 0.863111 0.895136 0.855962 0.897111 0.861216 0.890347 0.500000 0.500000 0.500000 0.872839 0.891851 0.867685 +0.659489 +0.780991 0.722203 0.661153 0.202524 0.816969 0.593058 0.522769 0.781817 0 0 0.500000 0.500000 1 0.500000 1 0.500000 0.911539 0.905954 0.500000 0.888011 0.881303 0.874293 0.880636 0.871639 0.500000 0.500000 0.870289 0.889169 0.872622 0.884691 0.861905 0.869973 +0.710488 +0.254893 0.189395 0.169086 0.421702 0.551248 0.217435 0.235269 0.769703 0.500000 1 1 0.500000 0 1 0.500000 0.500000 0.906035 0.887981 0.894079 0.866000 0.871964 0.897774 0.861149 0.891319 0.901064 0.500000 0.894531 0.855229 0.500000 0.894964 0.500000 0.500000 +0.877623 +0.266284 0.437038 0.705807 0.295756 0.571142 0.184805 0.624451 0.149831 1 1 0 0 0 1 1 1 0.828860 0.934624 0.887260 0.500000 0.866817 0.889920 0.882175 0.908896 0.894965 0.876888 0.500000 0.500000 0.500000 0.891883 0.882713 0.883733 +0.692128 +0.745162 0.130115 0.647798 0.540876 0.302372 0.565968 0.416781 0.245802 0 0.500000 0 1 1 0.500000 1 0 0.875375 0.500000 0.870908 0.877937 0.896201 0.875278 0.854142 0.870017 0.500000 0.899237 0.907862 0.900272 0.500000 0.500000 0.500000 0.500000 +0.563765 +0.568692 0.599489 0.609343 0.623387 0.662263 0.460119 0.611635 0.744851 0.500000 0 0 0.500000 0.500000 1 0.500000 1 0.882259 0.889816 0.865947 0.500000 0.500000 0.859598 0.891703 0.874397 0.500000 0.900200 0.500000 0.500000 0.893791 0.908033 0.500000 0.500000 +0.416401 +0.619028 0.208693 0.503914 0.688257 0.527149 0.792633 0.384045 0.445739 0.500000 1 1 0.500000 1 0.500000 0 0.500000 0.871074 0.860312 0.500000 0.891526 0.893861 0.902809 0.870815 0.885193 0.500000 0.500000 0.866849 0.500000 0.887357 0.883716 0.500000 0.876324 +0.698169 +0.396982 0.279088 0.425121 0.411549 0.304829 0.265092 0.401790 0.282600 0 1 1 0 0 0.500000 0 0 0.500000 0.500000 0.871720 0.858043 0.879663 0.887552 0.892686 0.893219 0.896703 0.871498 0.500000 0.886220 0.887062 0.863557 0.500000 0.906603 +0.769395 +0.419258 0.265119 0.859639 0.148436 0.570624 0.276780 0.841398 0.776880 0.500000 0 0.500000 0.500000 0 0 1 0.500000 0.880694 0.894918 0.886616 0.890962 0.891535 0.913620 0.909513 0.881949 0.500000 0.500000 0.500000 0.866304 0.500000 0.500000 0.500000 0.869967 +0.767650 +0.643422 0.595288 0.408217 0.296808 0.645357 0.309006 0.869753 0.539712 1 1 1 0 1 1 0.500000 0 0.887219 0.887073 0.867682 0.500000 0.500000 0.866290 0.500000 0.873046 0.500000 0.500000 0.500000 0.500000 0.892477 0.500000 0.875571 0.500000 +0.425317 +0.831982 0.118139 0.165483 0.672502 0.540090 0.688017 0.502955 0.566574 0 0 0 0 1 1 0.500000 0.500000 0.869273 0.871083 0.866439 0.864829 0.895725 0.895111 0.500000 0.868716 0.898158 0.500000 0.895251 0.500000 0.868744 0.860836 0.932432 0.861940 +0.702179 +0.894545 0.420076 0.417233 0.641920 0.147058 0.600313 0.867319 0.438405 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.882454 0.897784 0.500000 0.880735 0.887391 0.500000 0.885371 0.863440 0.500000 0.500000 0.854688 0.500000 0.866625 0.876566 0.500000 0.861475 +0.536109 +0.710593 0.729131 0.305275 0.554533 0.235538 0.493432 0.515075 0.271877 1 0.500000 0.500000 0 1 0.500000 0 0 0.875561 0.865022 0.865890 0.881187 0.856051 0.915121 0.897453 0.500000 0.500000 0.500000 0.858757 0.846271 0.822381 0.874567 0.881027 0.906546 +0.756617 +0.645373 0.591081 0.102098 0.164493 0.831932 0.874644 0.348828 0.553297 0 0 0 1 0.500000 0.500000 0 1 0.500000 0.500000 0.881363 0.500000 0.870456 0.873114 0.870837 0.898076 0.925243 0.882230 0.500000 0.893154 0.500000 0.887705 0.937473 0.500000 +0.512333 +0.876357 0.333275 0.753553 0.365866 0.513436 0.724823 0.698230 0.146415 0 0.500000 0 0.500000 1 0.500000 0 0.500000 0.874387 0.862022 0.901874 0.887693 0.500000 0.500000 0.500000 0.500000 0.909070 0.500000 0.885397 0.888842 0.875981 0.868898 0.857699 0.850598 +0.611529 +0.279414 0.307750 0.546583 0.216881 0.526229 0.526362 0.374484 0.551513 1 0.500000 0 1 1 0.500000 1 0.500000 0.884171 0.865394 0.898224 0.855875 0.864103 0.500000 0.876328 0.856437 0.883644 0.500000 0.500000 0.500000 0.866026 0.914959 0.500000 0.500000 +0.555393 +0.832624 0.515292 0.709091 0.298770 0.824449 0.723116 0.818568 0.279297 1 0.500000 0 1 1 0 0.500000 0 0.893739 0.910412 0.884907 0.500000 0.884960 0.500000 0.859217 0.881427 0.885465 0.892622 0.500000 0.903931 0.932291 0.500000 0.878568 0.500000 +0.580388 +0.353816 0.382008 0.604540 0.708588 0.639729 0.131973 0.675644 0.543821 0 0.500000 1 0 1 1 0.500000 0 0.500000 0.500000 0.837267 0.866534 0.500000 0.892819 0.500000 0.926602 0.500000 0.886116 0.893702 0.500000 0.893316 0.875648 0.500000 0.500000 +0.392599 +0.123243 0.337882 0.581101 0.370934 0.880700 0.531643 0.325561 0.710898 0 1 1 0 1 0 1 1 0.910002 0.864450 0.876438 0.882689 0.500000 0.857593 0.863181 0.855846 0.500000 0.500000 0.500000 0.500000 0.500000 0.891979 0.913925 0.500000 +0.621842 +0.318391 0.203658 0.673226 0.712191 0.400707 0.481195 0.439951 0.852853 0.500000 1 1 1 0 0 0 0 0.500000 0.900640 0.874044 0.500000 0.873700 0.887192 0.892699 0.500000 0.895828 0.500000 0.884933 0.500000 0.903138 0.500000 0.879989 0.918900 +0.604715 +0.158805 0.429895 0.639498 0.235099 0.306323 0.564214 0.551753 0.719489 1 1 1 0 0.500000 0.500000 1 0.500000 0.884092 0.892131 0.910349 0.927494 0.889749 0.876995 0.860719 0.853656 0.500000 0.880104 0.886104 0.930221 0.835664 0.914062 0.500000 0.500000 +0.927139 +0.427986 0.552523 0.855614 0.501458 0.202787 0.449273 0.736002 0.582646 1 0.500000 0 0 1 1 1 1 0.899004 0.862408 0.876122 0.885268 0.897392 0.860701 0.868579 0.847904 0.500000 0.500000 0.870102 0.500000 0.901028 0.500000 0.877306 0.886503 +0.767309 +0.861145 0.663729 0.299526 0.737153 0.729600 0.181075 0.335346 0.360948 0 1 1 0 1 1 1 0 0.895072 0.887371 0.500000 0.904953 0.902110 0.893731 0.500000 0.500000 0.500000 0.500000 0.500000 0.881937 0.500000 0.500000 0.871410 0.905093 +0.373129 +0.127720 0.395241 0.609819 0.627196 0.675139 0.866178 0.459349 0.481070 1 0 0 0.500000 1 1 0 0 0.833073 0.500000 0.899674 0.500000 0.500000 0.868635 0.900676 0.870045 0.500000 0.500000 0.881939 0.500000 0.886031 0.877892 0.884893 0.857123 +0.530448 +0.556955 0.144398 0.698459 0.798473 0.133077 0.822968 0.623667 0.565886 1 0 1 1 0.500000 0 0 0 0.500000 0.908370 0.870375 0.500000 0.500000 0.876896 0.877185 0.911529 0.833537 0.500000 0.828895 0.870663 0.830122 0.881187 0.895374 0.500000 +0.617211 +0.627657 0.429443 0.254368 0.167737 0.162579 0.663957 0.131667 0.331121 0.500000 0.500000 1 0.500000 0 1 0 0.500000 0.860106 0.856689 0.500000 0.500000 0.500000 0.893822 0.500000 0.500000 0.933898 0.500000 0.907699 0.500000 0.861326 0.500000 0.894746 0.901653 +0.489950 +0.347404 0.625513 0.395493 0.853258 0.100236 0.867381 0.666947 0.776833 0.500000 0 1 0 1 0 1 0.500000 0.897569 0.500000 0.857497 0.500000 0.904348 0.879542 0.500000 0.899412 0.884206 0.500000 0.859690 0.874772 0.919475 0.886957 0.866018 0.500000 +0.610437 +0.818576 0.410085 0.502174 0.241027 0.739635 0.840811 0.504166 0.112536 0.500000 1 0.500000 0.500000 0.500000 0 0 1 0.874226 0.885468 0.871130 0.880186 0.885285 0.884952 0.861326 0.884542 0.883454 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.864082 +0.622208 +0.698360 0.731306 0.858677 0.781718 0.139484 0.515186 0.539167 0.385827 1 1 0 0.500000 1 1 0.500000 0.500000 0.859689 0.900524 0.500000 0.500000 0.893736 0.875654 0.859011 0.889952 0.894468 0.882327 0.889311 0.872025 0.500000 0.500000 0.921521 0.895765 +0.692026 +0.154469 0.357750 0.108936 0.692703 0.861450 0.182663 0.620930 0.167641 0 1 0.500000 1 0 0.500000 0 1 0.870513 0.884510 0.500000 0.500000 0.879683 0.898308 0.500000 0.896190 0.500000 0.500000 0.500000 0.500000 0.875225 0.881868 0.885069 0.500000 +0.422781 +0.346156 0.437307 0.415511 0.494810 0.465413 0.796902 0.135779 0.637010 1 0.500000 1 0 1 1 0.500000 0 0.858836 0.834448 0.500000 0.891061 0.882437 0.500000 0.879664 0.872287 0.500000 0.848355 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.435575 +0.656592 0.341215 0.592742 0.813742 0.765385 0.824311 0.792211 0.487432 0.500000 1 0.500000 0 1 0 0 0.500000 0.889062 0.911405 0.861661 0.882211 0.500000 0.500000 0.888010 0.500000 0.500000 0.880908 0.500000 0.886232 0.500000 0.500000 0.500000 0.866807 +0.312672 +0.766834 0.376459 0.154753 0.334434 0.230249 0.400209 0.113767 0.276207 1 0 0 0 1 0.500000 0.500000 0.500000 0.896083 0.881174 0.890644 0.853338 0.500000 0.862025 0.885493 0.836080 0.500000 0.880537 0.500000 0.900822 0.500000 0.910107 0.500000 0.877743 +0.558126 +0.311671 0.855713 0.566246 0.289700 0.386505 0.190544 0.272105 0.674681 0 0 1 0 0.500000 0.500000 0.500000 0 0.500000 0.895680 0.500000 0.900851 0.500000 0.859543 0.500000 0.883733 0.891039 0.500000 0.500000 0.500000 0.500000 0.500000 0.878225 0.500000 +0.258206 +0.461261 0.606626 0.555433 0.158388 0.624850 0.447763 0.153352 0.786924 0.500000 0.500000 0 0.500000 1 1 1 0.500000 0.886858 0.884758 0.892998 0.500000 0.882509 0.877842 0.874198 0.898212 0.872438 0.500000 0.500000 0.500000 0.867357 0.883402 0.866219 0.500000 +0.628205 +0.449908 0.202398 0.298120 0.304598 0.382681 0.714301 0.661629 0.201148 1 0.500000 0.500000 0.500000 0 0 0.500000 1 0.500000 0.944520 0.859114 0.896650 0.900068 0.907080 0.896837 0.934803 0.500000 0.500000 0.500000 0.500000 0.883077 0.878821 0.500000 0.500000 +0.624312 +0.331348 0.373040 0.277484 0.673115 0.448088 0.814636 0.592102 0.450769 0 0 0 1 0.500000 1 1 0 0.857504 0.882987 0.890076 0.885129 0.500000 0.899406 0.500000 0.920489 0.848024 0.500000 0.886905 0.860276 0.884362 0.918161 0.878791 0.882052 +0.819852 +0.468627 0.414778 0.179673 0.768107 0.175794 0.372592 0.747183 0.506882 0 0.500000 0.500000 0.500000 0 1 0.500000 0.500000 0.872344 0.500000 0.500000 0.851276 0.903762 0.887336 0.873344 0.500000 0.500000 0.872475 0.500000 0.500000 0.879996 0.500000 0.892137 0.857300 +0.427090 +0.774255 0.310847 0.613145 0.522824 0.107007 0.262051 0.489381 0.432406 0.500000 1 0 0.500000 1 0 1 0.500000 0.897625 0.500000 0.879343 0.500000 0.500000 0.914581 0.855114 0.894311 0.905884 0.907685 0.883721 0.895676 0.500000 0.500000 0.893999 0.500000 +0.514348 +0.507359 0.184900 0.614538 0.734863 0.645207 0.193267 0.436981 0.542525 1 0 1 0.500000 1 1 0 0 0.842065 0.870647 0.895616 0.500000 0.868864 0.500000 0.500000 0.500000 0.881846 0.500000 0.880470 0.500000 0.869566 0.500000 0.500000 0.880747 +0.440402 +0.394972 0.891537 0.262726 0.637435 0.773537 0.235129 0.814623 0.375249 0.500000 1 1 1 0 1 0.500000 0.500000 0.500000 0.879671 0.875446 0.891443 0.908721 0.900112 0.878704 0.875804 0.500000 0.500000 0.500000 0.881940 0.500000 0.500000 0.875790 0.864163 +0.643072 +0.328219 0.570246 0.328449 0.438082 0.639961 0.819700 0.103598 0.571926 0.500000 1 0 1 0 1 0 0.500000 0.873609 0.876537 0.881444 0.500000 0.886490 0.893458 0.500000 0.855622 0.865484 0.500000 0.856328 0.889832 0.500000 0.902164 0.500000 0.500000 +0.554550 +0.305429 0.752894 0.486432 0.464885 0.725794 0.220912 0.262597 0.866200 1 1 0 0 0.500000 0.500000 1 0 0.875170 0.891643 0.500000 0.861139 0.500000 0.883938 0.897936 0.873951 0.861812 0.882579 0.887120 0.500000 0.863993 0.882892 0.865547 0.500000 +0.700222 +0.279017 0.844197 0.622081 0.315521 0.763226 0.540230 0.643391 0.873833 0 0.500000 0 1 1 0.500000 0.500000 0.500000 0.878281 0.500000 0.873948 0.881309 0.500000 0.861323 0.891252 0.500000 0.909717 0.500000 0.500000 0.500000 0.500000 0.855611 0.918505 0.500000 +0.447463 +0.442546 0.463862 0.328813 0.155341 0.616390 0.660603 0.553552 0.552460 0.500000 0.500000 0 1 0 1 0 0 0.500000 0.886082 0.877214 0.500000 0.500000 0.500000 0.874627 0.891877 0.500000 0.500000 0.500000 0.909348 0.500000 0.873840 0.852611 0.895667 +0.404292 +0.809348 0.510299 0.789401 0.457221 0.721350 0.725023 0.860031 0.340237 0 1 0.500000 0 1 1 0 1 0.893670 0.866277 0.500000 0.890154 0.869123 0.870552 0.889513 0.887461 0.500000 0.500000 0.500000 0.869119 0.867192 0.887093 0.500000 0.500000 +0.584751 +0.608791 0.150705 0.290871 0.874382 0.735332 0.521966 0.874305 0.248483 0.500000 0.500000 0.500000 0 1 0 0.500000 0 0.871267 0.867055 0.500000 0.865027 0.853601 0.500000 0.909463 0.500000 0.878098 0.500000 0.500000 0.893305 0.500000 0.500000 0.500000 0.885773 +0.362123 +0.705885 0.807562 0.893349 0.313038 0.624203 0.784456 0.547128 0.579988 1 0 0.500000 1 0 0 1 0.500000 0.500000 0.920205 0.500000 0.893905 0.866808 0.859133 0.500000 0.866400 0.500000 0.857616 0.888112 0.878032 0.883226 0.856117 0.500000 0.878376 +0.567567 +0.369058 0.550406 0.477183 0.220538 0.382975 0.859433 0.697064 0.553125 0.500000 0 1 0 0.500000 0.500000 0.500000 0 0.880086 0.500000 0.884180 0.909224 0.500000 0.820060 0.897860 0.902033 0.500000 0.500000 0.500000 0.500000 0.880373 0.500000 0.879440 0.878249 +0.520130 +0.782812 0.125260 0.644625 0.811395 0.511862 0.670042 0.793525 0.173552 0 0 1 0.500000 0 1 1 1 0.883414 0.900132 0.871933 0.500000 0.864927 0.874256 0.886923 0.882142 0.847071 0.877558 0.500000 0.863027 0.874534 0.500000 0.888880 0.878136 +0.671261 +0.740759 0.535488 0.146740 0.865234 0.587898 0.202372 0.658785 0.404553 0 1 1 1 1 0 0 1 0.500000 0.885496 0.893251 0.861534 0.884500 0.887675 0.877870 0.855547 0.874495 0.500000 0.500000 0.887312 0.500000 0.500000 0.884027 0.500000 +0.604596 +0.189929 0.340478 0.209172 0.550017 0.331340 0.224370 0.785660 0.794415 1 0.500000 0.500000 0.500000 0.500000 0 1 0.500000 0.849161 0.888832 0.864938 0.857413 0.837529 0.882589 0.500000 0.894960 0.917136 0.500000 0.863073 0.890416 0.901761 0.500000 0.847433 0.880538 +0.780443 +0.786935 0.618932 0.184008 0.816628 0.472696 0.795883 0.602498 0.783804 1 0.500000 1 0.500000 1 1 0 0 0.855957 0.894048 0.500000 0.883882 0.864865 0.500000 0.885494 0.901859 0.875249 0.500000 0.500000 0.873954 0.500000 0.882176 0.500000 0.875200 +0.577592 +0.866733 0.178000 0.652815 0.856424 0.525245 0.786264 0.538548 0.371208 1 0.500000 1 1 0 0.500000 0.500000 0 0.867745 0.892751 0.889750 0.903549 0.500000 0.860606 0.877957 0.884142 0.883889 0.877074 0.500000 0.500000 0.500000 0.885475 0.903303 0.500000 +0.675752 +0.732890 0.276422 0.418863 0.828609 0.224503 0.614585 0.735557 0.308006 1 0.500000 1 0 0.500000 1 0.500000 0 0.885673 0.862929 0.899473 0.882392 0.872603 0.865014 0.880443 0.915412 0.884851 0.500000 0.887848 0.871072 0.857543 0.886113 0.500000 0.500000 +0.874393 +0.661732 0.332347 0.363181 0.187906 0.736738 0.152147 0.538967 0.215723 0 1 0.500000 1 1 0.500000 0 0.500000 0.500000 0.887606 0.898833 0.868236 0.500000 0.875767 0.892070 0.869241 0.500000 0.500000 0.899648 0.500000 0.500000 0.500000 0.500000 0.852712 +0.443830 +0.831298 0.618842 0.282904 0.563632 0.367414 0.133660 0.220149 0.236699 1 0 1 1 1 0 0.500000 0.500000 0.500000 0.872191 0.500000 0.867122 0.871875 0.870366 0.883871 0.500000 0.500000 0.500000 0.500000 0.877686 0.882177 0.500000 0.500000 0.900815 +0.418152 +0.654313 0.441117 0.456769 0.309504 0.440268 0.581959 0.391889 0.282356 0 0.500000 0.500000 0 0 0.500000 0 0 0.868876 0.904802 0.869541 0.862771 0.916413 0.500000 0.500000 0.500000 0.500000 0.901313 0.905853 0.500000 0.500000 0.500000 0.886618 0.500000 +0.441146 +0.388735 0.877338 0.811595 0.682805 0.900000 0.895479 0.123774 0.462366 1 0.500000 1 0 1 0.500000 0 0 0.899574 0.500000 0.500000 0.863530 0.871360 0.887494 0.871416 0.500000 0.850273 0.884393 0.500000 0.904387 0.500000 0.500000 0.861582 0.881247 +0.470837 +0.483864 0.497544 0.818454 0.748864 0.752756 0.574047 0.204770 0.172814 1 0.500000 0.500000 0 0.500000 0.500000 1 0 0.855768 0.868480 0.892470 0.889594 0.500000 0.500000 0.903307 0.870128 0.902266 0.500000 0.902445 0.913040 0.500000 0.500000 0.884324 0.856334 +0.676767 +0.842875 0.806043 0.161184 0.419411 0.438110 0.317638 0.349677 0.421075 0.500000 1 1 0 0.500000 0.500000 0.500000 1 0.860142 0.500000 0.884187 0.500000 0.869769 0.841401 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.873680 0.872032 +0.243165 +0.153311 0.106167 0.553048 0.878731 0.226608 0.805364 0.761238 0.730129 0 1 0.500000 0.500000 0.500000 1 1 1 0.881610 0.888095 0.902229 0.500000 0.912377 0.870333 0.500000 0.885855 0.500000 0.500000 0.908559 0.888201 0.908978 0.884458 0.500000 0.500000 +0.642901 +0.589830 0.680808 0.147973 0.778666 0.833984 0.164684 0.837857 0.456647 1 0 1 1 0 1 1 0.500000 0.500000 0.500000 0.886312 0.919818 0.877203 0.500000 0.891312 0.899742 0.887348 0.500000 0.870275 0.500000 0.500000 0.500000 0.865030 0.875834 +0.467531 +0.260389 0.563180 0.771228 0.629711 0.557206 0.355536 0.488740 0.856428 0.500000 1 1 0 1 1 0 1 0.906313 0.860930 0.886850 0.871763 0.500000 0.914454 0.500000 0.888797 0.500000 0.873733 0.500000 0.500000 0.890132 0.859118 0.865871 0.500000 +0.634160 +0.678222 0.672817 0.237502 0.702372 0.161694 0.197149 0.885296 0.177670 1 1 1 0.500000 0.500000 0 0.500000 1 0.500000 0.500000 0.885633 0.836976 0.875050 0.890294 0.500000 0.890572 0.500000 0.500000 0.500000 0.896697 0.860722 0.500000 0.500000 0.875111 +0.446033 +0.438491 0.313203 0.209852 0.787235 0.856183 0.471824 0.545489 0.239045 0 0 1 0 0 0 0 1 0.500000 0.842063 0.921784 0.869785 0.500000 0.905857 0.899191 0.875280 0.875104 0.500000 0.500000 0.873679 0.890100 0.500000 0.500000 0.859725 +0.438613 +0.834485 0.583497 0.626102 0.692764 0.276755 0.422074 0.392652 0.298875 0 0.500000 0 0.500000 0.500000 0 0 0 0.872093 0.500000 0.870768 0.874626 0.500000 0.871959 0.500000 0.879161 0.500000 0.875327 0.500000 0.878772 0.871149 0.882225 0.891095 0.500000 +0.549460 +0.378336 0.491703 0.248629 0.502039 0.364205 0.587229 0.158415 0.275467 0.500000 1 0.500000 0 0 0 0 0.500000 0.882137 0.874221 0.889128 0.500000 0.500000 0.500000 0.500000 0.882813 0.871953 0.903100 0.500000 0.889297 0.912914 0.876729 0.903756 0.500000 +0.537337 +0.369079 0.110457 0.646819 0.892265 0.490564 0.309637 0.270639 0.831285 0.500000 1 0 1 1 1 1 0.500000 0.873852 0.893392 0.500000 0.886860 0.887810 0.874547 0.890210 0.902812 0.500000 0.500000 0.886697 0.887839 0.500000 0.882154 0.857998 0.863660 +0.734460 +0.602186 0.334132 0.763558 0.519849 0.499926 0.851522 0.528960 0.827793 0 1 1 0 1 0 0.500000 1 0.846376 0.878240 0.500000 0.500000 0.896212 0.851867 0.903115 0.886942 0.500000 0.901808 0.500000 0.500000 0.500000 0.500000 0.884897 0.500000 +0.421238 +0.628267 0.288048 0.619699 0.280574 0.614061 0.719916 0.627751 0.409713 1 0 0 0.500000 0 0 0.500000 1 0.905703 0.871203 0.500000 0.888518 0.500000 0.878632 0.888332 0.864211 0.868323 0.500000 0.888859 0.876454 0.500000 0.916665 0.500000 0.500000 +0.547819 +0.472440 0.502737 0.106657 0.791040 0.817919 0.557361 0.565786 0.571842 1 1 0.500000 0 0 0.500000 0.500000 0.500000 0.879195 0.864629 0.896452 0.902544 0.500000 0.500000 0.914791 0.890912 0.894747 0.876229 0.874992 0.906318 0.500000 0.879024 0.866113 0.500000 +0.652874 +0.698593 0.654058 0.144541 0.694762 0.259367 0.188564 0.588041 0.201273 0.500000 0 0 0 1 1 1 0.500000 0.500000 0.879338 0.893844 0.868058 0.881926 0.883439 0.500000 0.906444 0.500000 0.865632 0.500000 0.500000 0.908361 0.860518 0.500000 0.868562 +0.494938 +0.598696 0.880591 0.298833 0.280183 0.434125 0.545143 0.813653 0.864719 1 0.500000 1 0 0.500000 1 0 0.500000 0.500000 0.871479 0.500000 0.869729 0.500000 0.894596 0.874451 0.891351 0.886146 0.500000 0.500000 0.896044 0.500000 0.859687 0.893168 0.500000 +0.467654 +0.743827 0.106309 0.533491 0.191451 0.323470 0.761810 0.739314 0.255574 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.886983 0.853300 0.500000 0.500000 0.860805 0.906220 0.890757 0.870773 0.866082 0.909041 0.500000 0.887267 0.500000 0.903469 0.500000 0.863288 +0.569557 +0.203489 0.233262 0.637163 0.190716 0.757443 0.153190 0.470159 0.565768 0 0.500000 0.500000 1 0.500000 0 0.500000 0.500000 0.890594 0.889078 0.897264 0.871365 0.869887 0.859231 0.885315 0.879547 0.864618 0.886853 0.500000 0.870633 0.881907 0.905634 0.500000 0.880500 +0.916532 +0.441388 0.208566 0.771398 0.282204 0.797926 0.538527 0.819623 0.396983 0 1 1 1 1 0.500000 0 0 0.883690 0.500000 0.882332 0.860857 0.884042 0.500000 0.893240 0.877178 0.500000 0.865994 0.917744 0.500000 0.500000 0.500000 0.885911 0.917790 +0.584218 +0.729952 0.511566 0.493999 0.436442 0.282795 0.333539 0.391956 0.603055 0.500000 0.500000 1 0 0.500000 0 1 0 0.500000 0.865948 0.897083 0.500000 0.500000 0.864338 0.500000 0.874362 0.500000 0.871570 0.500000 0.894676 0.500000 0.877783 0.500000 0.500000 +0.349524 +0.852819 0.737138 0.474454 0.743952 0.597358 0.799728 0.421435 0.865717 1 1 1 0 0.500000 0.500000 0 0.500000 0.904531 0.891337 0.908954 0.500000 0.897333 0.500000 0.500000 0.878656 0.888457 0.873008 0.500000 0.500000 0.500000 0.500000 0.888609 0.500000 +0.415845 +0.723417 0.275962 0.692765 0.302607 0.517695 0.308152 0.111991 0.826773 0.500000 0.500000 0.500000 0 0.500000 1 1 0.500000 0.897782 0.500000 0.500000 0.883927 0.839441 0.500000 0.894466 0.500000 0.909968 0.500000 0.871479 0.891703 0.874795 0.500000 0.883409 0.871074 +0.527326 +0.848625 0.639420 0.530362 0.389046 0.498709 0.404800 0.480234 0.285893 0.500000 0.500000 1 0.500000 0 1 0.500000 0.500000 0.881845 0.500000 0.879822 0.857839 0.878042 0.904879 0.873947 0.889190 0.500000 0.907317 0.893187 0.500000 0.500000 0.896783 0.900169 0.898419 +0.674303 +0.233125 0.729291 0.601597 0.837613 0.367688 0.736122 0.205067 0.365249 0.500000 0.500000 0 1 1 0.500000 1 0.500000 0.859510 0.500000 0.865494 0.918646 0.500000 0.500000 0.884603 0.879162 0.500000 0.888300 0.500000 0.500000 0.500000 0.854879 0.870380 0.500000 +0.382192 +0.470622 0.337516 0.829469 0.280539 0.821223 0.890309 0.431321 0.612599 0 1 0.500000 0.500000 0.500000 1 0.500000 0 0.896835 0.500000 0.500000 0.500000 0.883988 0.500000 0.500000 0.873913 0.851308 0.867406 0.500000 0.863152 0.500000 0.500000 0.500000 0.500000 +0.201698 +0.710527 0.427028 0.459179 0.817546 0.690881 0.637274 0.457624 0.286657 0.500000 1 1 0.500000 0 0.500000 1 0.500000 0.857354 0.500000 0.893491 0.915225 0.833265 0.500000 0.500000 0.500000 0.891977 0.500000 0.915945 0.865525 0.500000 0.896290 0.500000 0.500000 +0.401989 +0.216033 0.668068 0.415930 0.340214 0.571213 0.584175 0.822178 0.149762 0.500000 0 1 1 1 0 0.500000 0 0.500000 0.882024 0.903203 0.500000 0.500000 0.500000 0.872194 0.892068 0.833807 0.916989 0.878078 0.500000 0.881854 0.893215 0.890270 0.879521 +0.592352 +0.866665 0.642444 0.161597 0.160048 0.526463 0.469826 0.561950 0.898481 0 0.500000 0.500000 0.500000 0 1 0 0 0.867132 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.855517 0.500000 0.885361 0.883236 0.500000 0.894373 0.500000 0.500000 0.500000 +0.123197 +0.675640 0.474460 0.850347 0.774665 0.800720 0.294789 0.316650 0.531064 0 1 0.500000 1 0 0.500000 0 0 0.500000 0.898755 0.909219 0.881246 0.898674 0.500000 0.923234 0.500000 0.500000 0.500000 0.500000 0.500000 0.882855 0.868606 0.500000 0.910889 +0.414383 +0.256215 0.809854 0.215965 0.331404 0.498962 0.650124 0.427574 0.827896 0 0.500000 0.500000 0 1 0.500000 0 0 0.500000 0.892031 0.911541 0.500000 0.914977 0.899597 0.886558 0.500000 0.878358 0.896061 0.886731 0.500000 0.878376 0.500000 0.897197 0.500000 +0.562398 +0.156119 0.890346 0.240926 0.648763 0.764758 0.685516 0.868834 0.299576 1 1 0.500000 0.500000 0 0.500000 0 0.500000 0.887205 0.901315 0.500000 0.500000 0.902552 0.888656 0.500000 0.873355 0.500000 0.500000 0.500000 0.500000 0.868802 0.500000 0.872376 0.862701 +0.353648 +0.516527 0.665192 0.888876 0.346978 0.662707 0.717640 0.781668 0.894938 0.500000 0.500000 1 1 1 0 1 0 0.889884 0.903574 0.897943 0.836590 0.500000 0.891799 0.874925 0.893772 0.500000 0.895476 0.891178 0.894123 0.500000 0.882870 0.500000 0.890227 +0.644817 +0.713867 0.571016 0.458600 0.690471 0.140740 0.811015 0.521582 0.824181 0 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.856152 0.901040 0.500000 0.886569 0.883493 0.875731 0.873586 0.896083 0.886592 0.901521 0.879721 0.500000 0.882159 0.926799 0.879667 +0.744492 +0.609998 0.444486 0.280757 0.479318 0.894329 0.794789 0.619621 0.575962 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.925577 0.902833 0.500000 0.850404 0.903135 0.929708 0.887874 0.500000 0.500000 0.886594 0.854203 0.892522 0.862224 0.860713 0.870656 +0.724604 +0.324955 0.112419 0.828210 0.725869 0.685102 0.308901 0.691652 0.796088 1 1 0 0.500000 1 0.500000 1 1 0.500000 0.886245 0.500000 0.891825 0.917443 0.878853 0.500000 0.500000 0.500000 0.500000 0.890942 0.500000 0.500000 0.874850 0.500000 0.906497 +0.407445 +0.171143 0.593699 0.103994 0.819719 0.419664 0.699193 0.329469 0.778557 0.500000 0 1 1 1 1 1 0.500000 0.871915 0.906457 0.872690 0.892132 0.888523 0.872248 0.500000 0.886304 0.905152 0.900544 0.895419 0.883031 0.899655 0.500000 0.500000 0.880050 +0.787040 +0.642431 0.731076 0.193421 0.625061 0.805380 0.222633 0.387023 0.898720 0 0 1 0.500000 1 1 0 0.500000 0.902886 0.888085 0.878490 0.903502 0.500000 0.500000 0.866066 0.500000 0.875545 0.500000 0.864263 0.851834 0.500000 0.888962 0.906027 0.500000 +0.541501 +0.807383 0.288975 0.197386 0.862088 0.505653 0.312458 0.477875 0.651356 0 0 0.500000 0.500000 0.500000 1 0 0.500000 0.890917 0.847374 0.891779 0.896534 0.500000 0.860861 0.884250 0.500000 0.891154 0.500000 0.500000 0.861077 0.500000 0.892259 0.860088 0.877389 +0.596859 +0.599510 0.163971 0.863643 0.250623 0.414896 0.560696 0.623502 0.203917 0 0.500000 0.500000 0 0.500000 0 0 1 0.500000 0.865950 0.500000 0.882974 0.500000 0.500000 0.863534 0.919213 0.898675 0.500000 0.845958 0.889971 0.899668 0.500000 0.837614 0.854323 +0.489315 +0.511695 0.254590 0.694849 0.119430 0.257399 0.699012 0.502204 0.741182 0.500000 1 1 0 0.500000 0 0.500000 1 0.883277 0.915337 0.868282 0.867157 0.873957 0.500000 0.889406 0.910041 0.848440 0.500000 0.500000 0.882929 0.500000 0.500000 0.500000 0.874886 +0.596557 +0.185131 0.488277 0.278482 0.655481 0.862564 0.508811 0.581390 0.417572 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.895412 0.884562 0.500000 0.862948 0.871967 0.859559 0.913777 0.500000 0.500000 0.500000 0.500000 0.880800 0.500000 0.500000 0.872978 +0.552742 +0.268631 0.681614 0.886076 0.486438 0.556191 0.898246 0.214843 0.658496 0 1 1 0 0.500000 0 0 0.500000 0.500000 0.867553 0.900219 0.856944 0.871342 0.883687 0.883534 0.500000 0.500000 0.500000 0.890829 0.500000 0.890998 0.871795 0.853316 0.879676 +0.580391 +0.581360 0.721775 0.673115 0.446842 0.673820 0.299734 0.233668 0.257061 0.500000 1 1 0 1 0.500000 1 0 0.500000 0.500000 0.897913 0.887868 0.500000 0.846433 0.872802 0.868847 0.878936 0.500000 0.500000 0.500000 0.887391 0.500000 0.865860 0.500000 +0.363690 +0.405679 0.843402 0.856258 0.122772 0.429855 0.780292 0.165049 0.576761 0 0.500000 0.500000 0.500000 1 0.500000 1 0 0.500000 0.870119 0.858084 0.500000 0.857571 0.882267 0.876436 0.849537 0.500000 0.861441 0.500000 0.500000 0.895235 0.500000 0.892696 0.500000 +0.509762 +0.686035 0.792444 0.400673 0.703026 0.764774 0.163039 0.398802 0.464301 0.500000 1 1 1 1 0.500000 0.500000 0 0.500000 0.884587 0.894128 0.899528 0.873354 0.865376 0.890489 0.877291 0.889071 0.500000 0.907052 0.884916 0.881100 0.500000 0.871367 0.500000 +0.708915 +0.824366 0.112310 0.595957 0.445981 0.607428 0.442296 0.261953 0.447891 1 0 0 1 0 1 0 1 0.500000 0.881307 0.879919 0.500000 0.879561 0.500000 0.900428 0.846828 0.871325 0.880929 0.856179 0.500000 0.500000 0.500000 0.884926 0.859868 +0.546296 +0.889519 0.740631 0.782617 0.837208 0.757689 0.276529 0.616918 0.740978 0 0 0.500000 1 0 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.864119 0.894717 0.500000 0.872319 0.873219 0.899426 0.500000 0.934152 0.500000 0.890299 0.897256 0.500000 0.881142 +0.392463 +0.323700 0.629251 0.821322 0.154684 0.773038 0.653870 0.197301 0.235710 0 0 0.500000 1 1 1 0 1 0.884158 0.869827 0.903375 0.844196 0.876472 0.500000 0.895274 0.500000 0.901429 0.500000 0.500000 0.500000 0.876375 0.500000 0.890132 0.500000 +0.442853 +0.296275 0.490688 0.791483 0.248436 0.469410 0.775269 0.547013 0.240245 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 0.887352 0.883315 0.863706 0.500000 0.500000 0.897108 0.500000 0.500000 0.500000 0.500000 0.909515 0.866285 0.500000 0.876008 0.900818 0.873409 +0.476563 +0.293428 0.648224 0.502398 0.808028 0.718284 0.403458 0.319503 0.491675 0.500000 0.500000 1 0.500000 0 1 0 1 0.500000 0.904774 0.869789 0.500000 0.876829 0.890526 0.896367 0.902760 0.863307 0.500000 0.500000 0.500000 0.894265 0.500000 0.862352 0.861078 +0.575284 +0.162531 0.659363 0.510435 0.672609 0.744462 0.377689 0.812229 0.137949 0 0.500000 1 1 0 1 0 0 0.500000 0.500000 0.891914 0.893445 0.889397 0.500000 0.889223 0.884435 0.500000 0.880776 0.902003 0.895801 0.871511 0.500000 0.896425 0.500000 +0.527445 +0.610303 0.764679 0.153437 0.611141 0.451317 0.681704 0.799170 0.655325 1 0 1 1 0.500000 0.500000 1 0.500000 0.872104 0.851094 0.500000 0.876266 0.882589 0.500000 0.891054 0.500000 0.880204 0.858961 0.862850 0.878596 0.878647 0.500000 0.883440 0.500000 +0.595300 +0.284211 0.126134 0.128797 0.891941 0.659515 0.661242 0.899902 0.857978 0 0.500000 0.500000 0.500000 0 0 0 0 0.873759 0.886253 0.868809 0.886901 0.500000 0.500000 0.872745 0.868352 0.500000 0.500000 0.500000 0.872698 0.500000 0.500000 0.900739 0.857526 +0.417271 +0.717495 0.737912 0.694126 0.778177 0.614055 0.614711 0.444188 0.860729 1 0 1 0 0 1 1 1 0.896770 0.880550 0.888282 0.500000 0.870063 0.865265 0.500000 0.500000 0.872445 0.500000 0.500000 0.500000 0.500000 0.895764 0.500000 0.500000 +0.268549 +0.212402 0.446443 0.362959 0.455611 0.849256 0.845741 0.161774 0.739622 0.500000 0 0 0 1 0.500000 0 1 0.888624 0.902463 0.884137 0.872165 0.500000 0.889808 0.882173 0.500000 0.844571 0.865462 0.500000 0.895576 0.500000 0.500000 0.500000 0.882699 +0.533949 +0.745373 0.479436 0.487023 0.799334 0.206400 0.370272 0.159455 0.155613 0.500000 0 0.500000 0.500000 0 0.500000 0 1 0.884290 0.888233 0.842894 0.874913 0.858135 0.500000 0.894578 0.884552 0.879119 0.500000 0.890239 0.500000 0.500000 0.879778 0.899011 0.906475 +0.697924 +0.723239 0.474562 0.161473 0.470514 0.125943 0.125032 0.814368 0.891726 0 0 1 1 0.500000 0.500000 1 0.500000 0.863887 0.859931 0.881564 0.855933 0.500000 0.860735 0.898804 0.870470 0.500000 0.859042 0.500000 0.500000 0.500000 0.902263 0.867618 0.500000 +0.525770 +0.568390 0.333474 0.893847 0.693846 0.864949 0.601128 0.155157 0.727140 0.500000 1 1 0 0 0 0 1 0.856723 0.864897 0.500000 0.886349 0.858529 0.876918 0.863341 0.877426 0.864521 0.500000 0.873152 0.500000 0.873915 0.893710 0.500000 0.888993 +0.647061 +0.480134 0.215357 0.508976 0.153903 0.447328 0.840461 0.235215 0.661819 0 1 1 0 0 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.895730 0.892876 0.892008 0.835561 0.500000 0.500000 0.500000 0.500000 0.500000 0.892274 0.500000 0.883196 +0.299216 +0.257990 0.244662 0.239693 0.712879 0.763066 0.242656 0.114265 0.644831 0 0.500000 0 1 0 0.500000 1 1 0.872476 0.500000 0.500000 0.880109 0.871317 0.862974 0.867114 0.863411 0.874946 0.865718 0.500000 0.500000 0.896512 0.500000 0.500000 0.500000 +0.541577 +0.308025 0.376318 0.184684 0.188205 0.163803 0.430379 0.771940 0.603061 1 0.500000 1 0.500000 0 0 1 0.500000 0.884584 0.902059 0.893470 0.902887 0.891277 0.877846 0.500000 0.890925 0.856733 0.500000 0.500000 0.857284 0.500000 0.897240 0.500000 0.865821 +0.675122 +0.390623 0.605238 0.437360 0.515487 0.793374 0.837107 0.659792 0.532157 0 0 0 0.500000 1 1 0 0 0.884126 0.500000 0.892755 0.886904 0.892315 0.500000 0.500000 0.929890 0.853193 0.500000 0.904356 0.876937 0.859609 0.500000 0.500000 0.500000 +0.470291 +0.384866 0.634705 0.494753 0.313701 0.580943 0.110663 0.113287 0.219849 1 1 1 0 1 0.500000 1 0.500000 0.855011 0.899892 0.866276 0.889501 0.500000 0.866200 0.500000 0.861754 0.891757 0.500000 0.500000 0.884197 0.500000 0.500000 0.907219 0.883949 +0.493929 +0.801409 0.678229 0.788297 0.303874 0.210022 0.436121 0.484291 0.471883 1 1 0.500000 0 1 0.500000 0.500000 1 0.903623 0.921856 0.891289 0.893683 0.898128 0.881402 0.874532 0.883243 0.893959 0.500000 0.500000 0.865592 0.914738 0.877676 0.882307 0.875905 +0.804974 +0.320659 0.713036 0.191148 0.821454 0.772489 0.225291 0.267653 0.237085 1 1 0.500000 0 0 1 1 1 0.841626 0.882813 0.500000 0.500000 0.897388 0.911681 0.877088 0.852729 0.895006 0.500000 0.500000 0.500000 0.500000 0.500000 0.860056 0.500000 +0.468746 +0.814092 0.252399 0.664243 0.129019 0.617425 0.456506 0.688777 0.468020 0.500000 0.500000 1 0 0 0 1 1 0.888080 0.859117 0.892465 0.891796 0.859032 0.859728 0.888577 0.878019 0.896222 0.500000 0.842929 0.500000 0.500000 0.500000 0.500000 0.500000 +0.645411 +0.515740 0.245265 0.770959 0.105782 0.475068 0.673031 0.634164 0.187370 0.500000 1 1 0 0.500000 1 1 1 0.857503 0.889351 0.500000 0.878467 0.885905 0.863236 0.891054 0.500000 0.892693 0.500000 0.500000 0.887918 0.883007 0.907627 0.500000 0.868693 +0.611327 +0.442206 0.359034 0.878128 0.501465 0.327627 0.234840 0.747617 0.602630 0.500000 0 0 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.871211 0.500000 0.893349 0.921249 0.867615 0.905982 0.500000 0.500000 0.500000 0.500000 0.873597 0.883178 0.877526 0.500000 +0.416486 +0.363505 0.834671 0.513011 0.778371 0.681739 0.587707 0.191763 0.764570 1 0.500000 0.500000 0.500000 0 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.885404 0.860728 0.869385 0.500000 0.500000 0.500000 0.905321 0.878548 0.500000 0.884542 0.930055 0.500000 +0.333555 +0.669735 0.429286 0.806200 0.410360 0.318855 0.803799 0.851934 0.249831 1 1 0 0.500000 0.500000 1 0.500000 0 0.841244 0.858039 0.914646 0.500000 0.897587 0.500000 0.500000 0.837901 0.500000 0.500000 0.884796 0.845924 0.886493 0.500000 0.500000 0.500000 +0.408983 +0.250727 0.562731 0.421386 0.839929 0.886739 0.416993 0.609574 0.511239 0.500000 0.500000 0 1 0 1 1 0.500000 0.893857 0.897232 0.500000 0.500000 0.867750 0.500000 0.874823 0.500000 0.500000 0.883061 0.880046 0.500000 0.857758 0.500000 0.855269 0.500000 +0.335394 +0.595800 0.212452 0.478329 0.282767 0.661002 0.855999 0.567153 0.346775 0.500000 1 0.500000 0 0.500000 1 0.500000 1 0.879282 0.858154 0.863764 0.886854 0.868334 0.500000 0.872039 0.859530 0.500000 0.500000 0.868634 0.500000 0.864941 0.500000 0.500000 0.900215 +0.565013 +0.782034 0.645713 0.693706 0.111742 0.639910 0.764817 0.873154 0.895856 1 0 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.846747 0.910237 0.873990 0.903151 0.500000 0.885606 0.500000 0.864602 0.500000 0.500000 0.500000 0.500000 0.907418 0.877147 0.500000 0.500000 +0.405927 +0.541761 0.775873 0.303455 0.363904 0.334074 0.585813 0.356591 0.629266 0 0.500000 1 0.500000 0 1 1 0 0.852442 0.500000 0.906549 0.883284 0.847378 0.500000 0.871459 0.500000 0.500000 0.500000 0.500000 0.879714 0.883712 0.500000 0.866188 0.851941 +0.440942 +0.282702 0.371627 0.542961 0.146662 0.350692 0.680081 0.714519 0.314947 1 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.877780 0.876209 0.900252 0.873616 0.869667 0.883825 0.911766 0.852544 0.864181 0.500000 0.500000 0.500000 0.884842 0.500000 0.877649 0.898174 +0.746579 +0.494573 0.492898 0.341166 0.581855 0.236128 0.800194 0.267602 0.191849 0.500000 0.500000 0.500000 0.500000 0 1 0.500000 0 0.871272 0.896162 0.869979 0.886763 0.873788 0.500000 0.500000 0.863452 0.862547 0.869899 0.855533 0.875742 0.500000 0.884068 0.888666 0.500000 +0.698397 +0.870217 0.329899 0.809978 0.698650 0.810052 0.337977 0.587110 0.556442 0 0 0 0 0.500000 1 0.500000 0.500000 0.500000 0.891547 0.897991 0.867423 0.856096 0.882678 0.900234 0.889700 0.889708 0.500000 0.851069 0.873650 0.911145 0.829724 0.500000 0.500000 +0.596991 +0.700856 0.290031 0.343240 0.230586 0.459832 0.602187 0.353742 0.744640 0 1 0.500000 0 0 0 0.500000 0.500000 0.878237 0.861918 0.888000 0.894499 0.500000 0.852689 0.868499 0.899850 0.858466 0.500000 0.500000 0.500000 0.881542 0.885012 0.856445 0.863080 +0.652522 +0.472466 0.137076 0.832978 0.868485 0.832560 0.234182 0.899958 0.197499 0 0 1 1 0.500000 0.500000 1 0 0.875288 0.866585 0.893469 0.904161 0.912524 0.869218 0.500000 0.894750 0.500000 0.500000 0.500000 0.915423 0.500000 0.500000 0.500000 0.500000 +0.554504 +0.826943 0.238358 0.679180 0.784995 0.808104 0.401596 0.222886 0.639879 0 1 0.500000 0.500000 1 1 0 1 0.890892 0.899963 0.863944 0.872955 0.883084 0.500000 0.885226 0.894035 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.886136 0.500000 +0.495621 +0.549417 0.660455 0.471811 0.319839 0.541537 0.216073 0.539570 0.758153 1 1 1 0 0.500000 1 1 1 0.892553 0.880570 0.500000 0.869590 0.898094 0.897449 0.500000 0.500000 0.500000 0.500000 0.910983 0.500000 0.500000 0.500000 0.500000 0.861427 +0.411858 +0.546562 0.672797 0.693681 0.489493 0.713164 0.746474 0.581236 0.237863 0.500000 0.500000 1 0.500000 1 0 1 0 0.500000 0.500000 0.899798 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.903951 0.875349 0.896105 0.871834 0.837037 0.500000 +0.373493 +0.866864 0.791604 0.695583 0.461270 0.761638 0.245480 0.379641 0.832823 1 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.878912 0.903550 0.500000 0.500000 0.500000 0.500000 0.866073 0.870836 0.899920 0.866579 0.500000 0.862540 0.874306 0.869426 0.500000 0.500000 +0.400837 +0.580142 0.249458 0.843207 0.773296 0.188013 0.140691 0.791393 0.347796 1 0.500000 1 0 1 0 0 0 0.884754 0.850312 0.850325 0.500000 0.895632 0.884921 0.870646 0.920340 0.500000 0.854115 0.885708 0.500000 0.899010 0.891810 0.500000 0.500000 +0.603068 +0.691325 0.893913 0.190195 0.804463 0.817082 0.100238 0.892826 0.322604 0.500000 0.500000 0 0.500000 0 0.500000 1 0.500000 0.891048 0.500000 0.500000 0.874232 0.882685 0.877841 0.866112 0.500000 0.862483 0.880346 0.500000 0.884194 0.500000 0.887730 0.872642 0.500000 +0.410490 +0.507909 0.628875 0.105323 0.760278 0.592826 0.625926 0.138647 0.844163 1 0.500000 0.500000 0.500000 1 1 0 1 0.872659 0.892712 0.500000 0.901586 0.879059 0.888738 0.896785 0.500000 0.500000 0.861185 0.500000 0.876979 0.500000 0.500000 0.884560 0.907219 +0.607103 +0.350632 0.475281 0.251435 0.467810 0.275205 0.773544 0.351454 0.687076 1 1 0 1 1 1 0.500000 0 0.880442 0.862750 0.889411 0.500000 0.878773 0.880434 0.914510 0.865088 0.500000 0.500000 0.870315 0.903176 0.500000 0.891047 0.500000 0.860320 +0.722450 +0.203071 0.422069 0.309342 0.105428 0.122501 0.672586 0.347177 0.803872 0.500000 0 0.500000 0 0.500000 1 0.500000 1 0.852256 0.854396 0.858580 0.868596 0.883266 0.916931 0.877697 0.905182 0.500000 0.500000 0.890758 0.500000 0.500000 0.865371 0.500000 0.912221 +0.705399 +0.798290 0.252499 0.750180 0.483650 0.102479 0.167164 0.128419 0.130437 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0 0.887457 0.896004 0.500000 0.908843 0.883313 0.920016 0.890425 0.500000 0.883477 0.866485 0.868302 0.907685 0.884742 0.500000 0.500000 0.500000 +0.577679 +0.609850 0.348532 0.375513 0.252385 0.428857 0.798503 0.631754 0.495138 0.500000 1 1 0.500000 1 0 0.500000 0.500000 0.871077 0.500000 0.500000 0.881949 0.894993 0.500000 0.500000 0.863803 0.500000 0.500000 0.500000 0.878478 0.500000 0.500000 0.843510 0.854484 +0.308390 +0.567020 0.506104 0.690550 0.666458 0.554793 0.613835 0.120408 0.693745 1 0.500000 0.500000 0 1 0 0 1 0.882689 0.890235 0.500000 0.862629 0.858021 0.893169 0.888018 0.824817 0.500000 0.500000 0.875204 0.500000 0.906087 0.500000 0.872609 0.893491 +0.593446 +0.569097 0.218999 0.113656 0.823124 0.838175 0.205545 0.386225 0.290008 1 1 0.500000 0.500000 0.500000 0 1 1 0.863992 0.853449 0.868340 0.885580 0.856997 0.500000 0.500000 0.500000 0.868956 0.887694 0.917906 0.500000 0.500000 0.500000 0.500000 0.868732 +0.499289 +0.191290 0.815778 0.580631 0.463752 0.885972 0.331133 0.755836 0.332100 0 1 1 1 0.500000 1 0.500000 1 0.892549 0.863623 0.879545 0.876566 0.500000 0.843017 0.907538 0.870984 0.500000 0.897682 0.893879 0.906107 0.500000 0.904201 0.891740 0.892715 +0.850678 +0.108817 0.284538 0.833005 0.515283 0.567040 0.835300 0.685610 0.839762 0.500000 0.500000 0.500000 0 0 0.500000 1 1 0.907844 0.866115 0.879499 0.875485 0.877411 0.868964 0.500000 0.866000 0.500000 0.500000 0.500000 0.856192 0.926544 0.904564 0.500000 0.500000 +0.568422 +0.794740 0.593176 0.101225 0.692818 0.390925 0.877571 0.730158 0.769644 0.500000 0 0 0 0 1 1 1 0.500000 0.904552 0.500000 0.908438 0.895141 0.870997 0.884137 0.855904 0.907623 0.500000 0.892147 0.500000 0.500000 0.891597 0.500000 0.866713 +0.570997 +0.570538 0.430893 0.613805 0.418268 0.429257 0.327327 0.781409 0.544885 0.500000 1 0 0.500000 0.500000 1 0.500000 1 0.873909 0.922662 0.895768 0.880223 0.867484 0.500000 0.907826 0.500000 0.881244 0.500000 0.500000 0.500000 0.902932 0.500000 0.500000 0.500000 +0.474189 +0.232676 0.387752 0.347100 0.313272 0.565206 0.416441 0.131783 0.671979 0.500000 0.500000 0 0.500000 0.500000 0 0.500000 0.500000 0.861374 0.856640 0.895800 0.890876 0.500000 0.839415 0.862743 0.860261 0.877606 0.896701 0.500000 0.900677 0.859943 0.500000 0.886412 0.873371 +0.803055 +0.388178 0.313131 0.584694 0.746188 0.585594 0.679412 0.683503 0.642515 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.867344 0.896213 0.878321 0.500000 0.500000 0.871811 0.861361 0.500000 0.500000 0.500000 0.910034 0.500000 0.500000 0.880226 0.500000 0.500000 +0.381591 +0.377653 0.218702 0.733018 0.827052 0.455973 0.530789 0.378474 0.415502 0 0.500000 1 0.500000 0.500000 1 0 1 0.937363 0.880660 0.500000 0.500000 0.859403 0.850428 0.876753 0.500000 0.877581 0.872920 0.865080 0.893348 0.500000 0.500000 0.500000 0.843123 +0.572471 +0.825605 0.148847 0.278835 0.177769 0.769614 0.709927 0.739258 0.100688 0.500000 0.500000 0 0 1 0 0 1 0.871522 0.500000 0.857229 0.872704 0.500000 0.851089 0.878592 0.500000 0.871407 0.500000 0.906529 0.896130 0.500000 0.500000 0.876310 0.500000 +0.434913 +0.801912 0.336499 0.537455 0.399783 0.153597 0.100282 0.835323 0.270410 0 0 0.500000 1 0 0.500000 1 0.500000 0.500000 0.500000 0.854290 0.500000 0.871123 0.500000 0.912897 0.500000 0.856047 0.500000 0.500000 0.500000 0.500000 0.500000 0.879614 0.896271 +0.231619 +0.565223 0.694973 0.603817 0.558669 0.157746 0.241459 0.800201 0.383483 0.500000 0.500000 0 0 0 1 0 1 0.919034 0.861456 0.888489 0.852196 0.883957 0.500000 0.872760 0.894144 0.842958 0.500000 0.861653 0.870046 0.500000 0.500000 0.500000 0.903106 +0.596362 +0.177902 0.600211 0.747541 0.114378 0.158247 0.661123 0.499758 0.429458 0.500000 1 0.500000 1 0.500000 1 1 1 0.500000 0.867508 0.500000 0.877999 0.899317 0.884979 0.500000 0.893902 0.851938 0.500000 0.863714 0.500000 0.500000 0.906383 0.500000 0.500000 +0.431788 +0.518964 0.831327 0.309305 0.293011 0.837964 0.653882 0.390894 0.354437 0.500000 1 1 0 0.500000 0 1 1 0.500000 0.500000 0.500000 0.879236 0.893944 0.878667 0.889517 0.500000 0.918333 0.867749 0.903577 0.500000 0.889138 0.500000 0.500000 0.871486 +0.412952 +0.767287 0.792832 0.520965 0.854624 0.661833 0.427107 0.187207 0.191280 1 0 0.500000 0 1 0.500000 0 0.500000 0.889678 0.500000 0.500000 0.868984 0.500000 0.877736 0.868896 0.500000 0.500000 0.881704 0.500000 0.500000 0.897869 0.500000 0.846654 0.938185 +0.342556 +0.385787 0.113918 0.415201 0.876888 0.454065 0.470299 0.522864 0.779048 1 0 0 0.500000 0 1 0 1 0.906303 0.850909 0.882583 0.500000 0.500000 0.500000 0.500000 0.865320 0.875370 0.871262 0.500000 0.500000 0.500000 0.500000 0.885229 0.500000 +0.307669 +0.692103 0.377861 0.517966 0.856550 0.233869 0.433757 0.755843 0.458192 0 0 0.500000 0.500000 0 0 0 0 0.500000 0.875310 0.500000 0.889434 0.500000 0.500000 0.875180 0.860290 0.500000 0.500000 0.890457 0.880248 0.500000 0.871519 0.879734 0.500000 +0.378326 +0.216058 0.292733 0.161545 0.889480 0.894292 0.160690 0.122796 0.828274 0 0 0.500000 0 1 0 0.500000 0 0.877461 0.907068 0.899780 0.890387 0.869753 0.912054 0.500000 0.881462 0.872201 0.500000 0.869350 0.895907 0.881642 0.500000 0.500000 0.908243 +0.718498 +0.365989 0.183924 0.214982 0.601911 0.523036 0.466151 0.407508 0.383640 1 0 0 1 1 0.500000 0 0 0.860587 0.500000 0.901041 0.882680 0.884602 0.903908 0.859317 0.887913 0.876648 0.500000 0.906254 0.887843 0.877543 0.500000 0.895360 0.881804 +0.832342 +0.287342 0.756457 0.375156 0.644256 0.215346 0.318213 0.399240 0.620963 1 1 0.500000 1 0.500000 1 0 1 0.891719 0.899539 0.885015 0.887052 0.500000 0.859910 0.851379 0.857566 0.500000 0.876380 0.869556 0.500000 0.872071 0.500000 0.930637 0.500000 +0.673474 +0.320253 0.287834 0.232555 0.745527 0.666202 0.251530 0.465942 0.881084 0.500000 1 0.500000 0.500000 1 1 1 0.500000 0.878217 0.906524 0.883513 0.887047 0.861492 0.500000 0.868791 0.896231 0.893297 0.500000 0.883362 0.884035 0.500000 0.840813 0.500000 0.500000 +0.680844 +0.285504 0.264644 0.878683 0.225902 0.132105 0.487451 0.785513 0.708704 0 0 0 1 1 0 0.500000 1 0.853963 0.891837 0.888940 0.500000 0.921659 0.895005 0.906076 0.909518 0.928079 0.891715 0.884607 0.870516 0.875556 0.500000 0.898904 0.500000 +0.740754 +0.499441 0.705136 0.213275 0.706215 0.761298 0.128110 0.552805 0.796979 0.500000 0.500000 0 0.500000 1 0.500000 0 0.500000 0.890065 0.500000 0.500000 0.500000 0.500000 0.913896 0.500000 0.897510 0.500000 0.500000 0.500000 0.859856 0.500000 0.888423 0.880718 0.884093 +0.306309 +0.302900 0.636688 0.207374 0.742191 0.606169 0.884270 0.522429 0.662920 0 1 0.500000 1 1 1 0.500000 1 0.500000 0.871348 0.881746 0.500000 0.870105 0.905188 0.500000 0.902772 0.878505 0.500000 0.881637 0.500000 0.500000 0.500000 0.500000 0.500000 +0.333172 +0.514167 0.198980 0.463677 0.418056 0.872842 0.462250 0.442287 0.120377 0 0 0 0 1 0.500000 0.500000 0 0.894045 0.863792 0.900739 0.882422 0.914190 0.869911 0.891503 0.881391 0.500000 0.881770 0.500000 0.500000 0.894217 0.500000 0.500000 0.500000 +0.655295 +0.159808 0.493498 0.816214 0.712518 0.283980 0.254942 0.213882 0.506761 0.500000 0.500000 0 0.500000 1 0 0 1 0.871572 0.500000 0.877313 0.500000 0.862685 0.876630 0.500000 0.890791 0.500000 0.896435 0.500000 0.842686 0.874714 0.500000 0.888009 0.894006 +0.484531 +0.664161 0.351534 0.430100 0.888409 0.497117 0.850739 0.170510 0.365509 0 0 0 1 1 1 1 0.500000 0.904638 0.500000 0.500000 0.876065 0.886637 0.882912 0.824632 0.500000 0.500000 0.882826 0.500000 0.500000 0.500000 0.500000 0.500000 0.867316 +0.303694 +0.250331 0.317511 0.610999 0.468475 0.265805 0.384838 0.168479 0.630868 1 1 0 0.500000 0 1 1 1 0.500000 0.880103 0.877498 0.859619 0.894449 0.500000 0.886888 0.500000 0.887241 0.874350 0.500000 0.500000 0.500000 0.893101 0.500000 0.500000 +0.433190 +0.148092 0.373883 0.846312 0.158618 0.500969 0.778870 0.267644 0.885861 1 1 0.500000 0 0.500000 0.500000 0 1 0.868141 0.877693 0.928252 0.838348 0.889352 0.500000 0.924733 0.500000 0.500000 0.500000 0.871557 0.857786 0.904379 0.873678 0.500000 0.893194 +0.689039 +0.180952 0.666204 0.295289 0.720023 0.821561 0.175985 0.382730 0.749131 0.500000 0.500000 0.500000 0.500000 1 0 0 1 0.879847 0.897624 0.870648 0.872787 0.878594 0.500000 0.876900 0.866893 0.500000 0.882424 0.876501 0.896336 0.878155 0.888679 0.500000 0.500000 +0.653750 +0.478327 0.245482 0.414979 0.352244 0.357925 0.643656 0.522041 0.536198 1 1 0 1 0.500000 0.500000 0 0 0.927544 0.898884 0.868549 0.500000 0.871575 0.500000 0.893179 0.909029 0.886679 0.500000 0.878132 0.500000 0.500000 0.500000 0.500000 0.877863 +0.602164 +0.736431 0.593055 0.470865 0.423206 0.226851 0.891906 0.869932 0.351356 1 1 0.500000 1 0 0.500000 0.500000 1 0.892345 0.885113 0.910730 0.866031 0.865495 0.869010 0.859843 0.865701 0.500000 0.500000 0.500000 0.883911 0.876350 0.500000 0.500000 0.500000 +0.700154 +0.603669 0.465301 0.512588 0.866524 0.672732 0.413491 0.149204 0.671079 0.500000 0.500000 0.500000 0 0 1 1 0.500000 0.877211 0.500000 0.919023 0.894168 0.500000 0.884371 0.500000 0.904338 0.500000 0.920284 0.500000 0.932541 0.880294 0.898321 0.500000 0.500000 +0.473362 +0.358392 0.497505 0.165666 0.539800 0.619558 0.316923 0.328818 0.249833 1 0 0.500000 0 0 0.500000 0.500000 1 0.863333 0.850827 0.500000 0.500000 0.870998 0.500000 0.895522 0.500000 0.500000 0.892650 0.846119 0.500000 0.500000 0.500000 0.500000 0.883657 +0.323940 +0.331580 0.268493 0.759543 0.234795 0.796311 0.595889 0.111333 0.174594 0 1 0 0.500000 0.500000 1 0.500000 0.500000 0.879081 0.901929 0.865116 0.892680 0.500000 0.500000 0.500000 0.500000 0.900389 0.500000 0.858176 0.500000 0.500000 0.500000 0.500000 0.500000 +0.286028 +0.177697 0.361060 0.539451 0.360920 0.580396 0.514667 0.601759 0.357302 0.500000 1 0 0 1 0.500000 1 1 0.892072 0.878778 0.865445 0.857652 0.886140 0.898437 0.870292 0.500000 0.500000 0.893989 0.907458 0.889160 0.868458 0.862274 0.500000 0.500000 +0.768265 +0.679934 0.657821 0.203249 0.203865 0.164782 0.897310 0.487403 0.780329 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.902292 0.907596 0.891943 0.500000 0.500000 0.500000 0.862554 0.873951 0.500000 0.500000 0.890997 0.887807 0.500000 0.880620 0.500000 0.500000 +0.500415 +0.459895 0.853105 0.742704 0.422820 0.137339 0.452122 0.617485 0.666527 0 0.500000 1 1 1 0 0.500000 0 0.873639 0.895056 0.899524 0.500000 0.866600 0.857592 0.855685 0.846621 0.500000 0.857389 0.500000 0.912003 0.900416 0.500000 0.500000 0.500000 +0.598387 +0.430354 0.359128 0.858272 0.380891 0.242179 0.896475 0.852851 0.462350 0.500000 1 0.500000 0 1 0 0 0.500000 0.886043 0.854337 0.876737 0.916390 0.500000 0.500000 0.867408 0.500000 0.500000 0.889223 0.903280 0.867122 0.500000 0.886546 0.500000 0.500000 +0.458707 +0.511129 0.340517 0.877149 0.847620 0.543347 0.229670 0.256267 0.873384 1 0.500000 0.500000 1 0 0 0 1 0.859734 0.889710 0.894807 0.500000 0.500000 0.881584 0.890826 0.889811 0.500000 0.859162 0.892518 0.500000 0.500000 0.892598 0.500000 0.885748 +0.544074 +0.356166 0.676146 0.187315 0.396654 0.364334 0.353775 0.490770 0.576631 0.500000 1 0.500000 0 1 0 1 1 0.880365 0.500000 0.881513 0.880105 0.883499 0.500000 0.500000 0.896324 0.500000 0.871518 0.500000 0.500000 0.869939 0.500000 0.500000 0.500000 +0.344470 +0.834264 0.879251 0.170053 0.675832 0.501635 0.783751 0.709093 0.331478 0 0 1 0.500000 0.500000 0 0.500000 0.500000 0.885363 0.884087 0.873854 0.500000 0.883720 0.877463 0.871264 0.500000 0.500000 0.500000 0.500000 0.893221 0.866535 0.897360 0.500000 0.500000 +0.458910 +0.417592 0.266634 0.715449 0.759402 0.271194 0.552910 0.161681 0.769972 0 1 0 1 0 0.500000 0.500000 1 0.874751 0.871207 0.863274 0.851863 0.500000 0.500000 0.884644 0.866853 0.874206 0.872907 0.500000 0.500000 0.500000 0.500000 0.877188 0.868834 +0.539062 +0.802046 0.184958 0.796916 0.368491 0.634217 0.291666 0.633049 0.649927 0 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.897032 0.871365 0.500000 0.884544 0.900033 0.888294 0.883339 0.500000 0.500000 0.500000 0.885850 0.500000 0.500000 0.911603 0.500000 0.880927 +0.496709 +0.430558 0.580985 0.820465 0.148830 0.786698 0.640444 0.138632 0.584722 0.500000 0.500000 0.500000 0 1 0 1 1 0.500000 0.845694 0.500000 0.881662 0.500000 0.899082 0.846232 0.869497 0.500000 0.500000 0.500000 0.500000 0.857427 0.870001 0.500000 0.500000 +0.322957 +0.755041 0.581109 0.494002 0.486111 0.674214 0.507156 0.769153 0.157050 0.500000 0.500000 0.500000 0 0 0.500000 0.500000 0 0.867527 0.897849 0.500000 0.886655 0.500000 0.500000 0.869502 0.858339 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.880759 0.500000 +0.336901 +0.342906 0.220895 0.782501 0.486608 0.215984 0.637415 0.426478 0.818221 1 1 1 1 0 1 0 0 0.875469 0.873244 0.853719 0.918598 0.902896 0.890930 0.500000 0.902623 0.500000 0.885157 0.842285 0.886580 0.873169 0.862187 0.500000 0.500000 +0.799692 +0.423206 0.218919 0.365204 0.588378 0.263582 0.622415 0.322288 0.898040 1 0.500000 0 1 1 0.500000 1 1 0.908394 0.500000 0.500000 0.886808 0.842372 0.500000 0.500000 0.885283 0.910690 0.500000 0.886639 0.862885 0.872812 0.865435 0.876957 0.500000 +0.590828 +0.564908 0.205430 0.863862 0.736642 0.145744 0.123954 0.294195 0.733897 0.500000 0.500000 0.500000 0 0 1 1 0 0.903608 0.889172 0.500000 0.907931 0.881955 0.878840 0.915371 0.879095 0.500000 0.500000 0.500000 0.500000 0.836331 0.900196 0.882126 0.500000 +0.576441 +0.487702 0.207275 0.674686 0.449337 0.200870 0.224561 0.796676 0.328595 0.500000 1 0 0 0.500000 0.500000 0.500000 1 0.901155 0.889834 0.500000 0.500000 0.923009 0.500000 0.911321 0.925423 0.500000 0.890190 0.500000 0.500000 0.500000 0.500000 0.875878 0.500000 +0.452887 +0.667866 0.223863 0.263458 0.139373 0.245517 0.203422 0.710228 0.206406 0.500000 0 0 0.500000 0 0 0 0.500000 0.500000 0.885454 0.889804 0.905051 0.500000 0.500000 0.887504 0.871131 0.500000 0.883249 0.500000 0.500000 0.879776 0.858798 0.500000 0.500000 +0.453586 +0.633195 0.703187 0.270131 0.293342 0.801736 0.572703 0.818927 0.700142 0 0.500000 1 1 1 1 1 0.500000 0.867030 0.876535 0.857926 0.883144 0.860476 0.906258 0.881565 0.882888 0.878156 0.884485 0.868164 0.500000 0.893396 0.885771 0.862595 0.500000 +0.827231 +0.377284 0.413569 0.650303 0.249591 0.682337 0.239714 0.275178 0.310354 0 1 0 0 1 0.500000 0 0 0.866310 0.917275 0.912139 0.888600 0.875332 0.500000 0.868389 0.871279 0.500000 0.868020 0.500000 0.845027 0.892039 0.873660 0.890003 0.500000 +0.647570 +0.130770 0.444861 0.180514 0.506506 0.242377 0.231980 0.679704 0.783405 0.500000 0.500000 1 0.500000 1 0 1 0.500000 0.879990 0.880681 0.875606 0.886547 0.500000 0.889968 0.876436 0.887744 0.862948 0.500000 0.847765 0.500000 0.500000 0.500000 0.882585 0.500000 +0.723595 +0.780719 0.142036 0.201085 0.642416 0.486004 0.471738 0.702244 0.418609 0.500000 1 0.500000 1 0 0 0.500000 1 0.500000 0.864262 0.882557 0.500000 0.856281 0.500000 0.842705 0.915917 0.864799 0.500000 0.910127 0.871942 0.868204 0.863725 0.500000 0.862243 +0.606939 +0.651285 0.751403 0.235414 0.798783 0.541457 0.463445 0.516261 0.192560 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.876401 0.500000 0.884625 0.500000 0.500000 0.500000 0.854675 0.500000 0.876094 0.869336 0.866365 0.500000 0.853017 +0.367254 +0.156074 0.129122 0.749500 0.252705 0.218326 0.812936 0.822535 0.552024 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.885031 0.871109 0.500000 0.874029 0.500000 0.865676 0.868375 0.886527 0.893149 0.500000 0.500000 0.500000 0.500000 0.890387 0.897916 0.849600 +0.569205 +0.400590 0.113570 0.177249 0.821042 0.255901 0.326253 0.339499 0.564937 1 0 0.500000 1 0 0 1 0 0.858806 0.835451 0.899890 0.500000 0.890230 0.913393 0.500000 0.500000 0.500000 0.500000 0.500000 0.914534 0.873672 0.880629 0.500000 0.500000 +0.466192 +0.392085 0.378360 0.890428 0.825399 0.673025 0.537286 0.760013 0.140705 0 0.500000 0.500000 0.500000 1 0 0.500000 1 0.500000 0.842117 0.901788 0.886986 0.898848 0.864731 0.500000 0.850548 0.875735 0.500000 0.500000 0.500000 0.500000 0.500000 0.871603 0.873613 +0.432532 +0.733258 0.859185 0.513963 0.783816 0.192601 0.443789 0.565915 0.340823 0.500000 0 1 0.500000 0.500000 1 0 1 0.901030 0.848535 0.500000 0.911608 0.872438 0.874276 0.885836 0.881624 0.867588 0.882273 0.500000 0.500000 0.891751 0.500000 0.500000 0.500000 +0.626031 +0.565949 0.104616 0.876969 0.224519 0.884075 0.455139 0.119428 0.233268 1 0.500000 0 0 0 0.500000 1 0.500000 0.877884 0.870474 0.899685 0.889156 0.500000 0.876300 0.866695 0.858671 0.500000 0.876553 0.900540 0.884104 0.500000 0.886754 0.885505 0.500000 +0.688035 +0.211388 0.205050 0.868617 0.643209 0.208282 0.788234 0.847602 0.249213 1 0.500000 0.500000 0.500000 0 0.500000 0 0 0.889975 0.500000 0.872180 0.893948 0.880721 0.873503 0.863039 0.886373 0.500000 0.500000 0.500000 0.500000 0.858074 0.853378 0.869504 0.883418 +0.647872 +0.346095 0.215515 0.757582 0.877397 0.204949 0.785027 0.549914 0.204824 0 0.500000 1 0.500000 1 1 0.500000 0.500000 0.889945 0.500000 0.912554 0.907186 0.500000 0.908793 0.907840 0.500000 0.859299 0.500000 0.874985 0.884296 0.890697 0.884390 0.869396 0.884109 +0.633116 +0.593149 0.454891 0.745375 0.521642 0.244007 0.427716 0.814832 0.677430 0 0 0.500000 0.500000 0 0.500000 0.500000 1 0.500000 0.500000 0.877851 0.883539 0.894427 0.872289 0.882551 0.894462 0.500000 0.500000 0.859861 0.500000 0.848374 0.881550 0.500000 0.500000 +0.448659 +0.800375 0.107283 0.100771 0.262565 0.329292 0.215781 0.436701 0.626774 1 0 0.500000 0 0.500000 1 1 0.500000 0.898932 0.884880 0.876696 0.500000 0.895071 0.872039 0.880043 0.867320 0.909174 0.888804 0.500000 0.895654 0.500000 0.500000 0.500000 0.500000 +0.606826 +0.636372 0.511590 0.887696 0.513337 0.652923 0.269775 0.715067 0.725964 1 0.500000 0 0.500000 0 0 1 0 0.886286 0.500000 0.888539 0.500000 0.500000 0.874329 0.855065 0.500000 0.870218 0.867665 0.500000 0.500000 0.861740 0.500000 0.500000 0.858816 +0.337023 +0.125438 0.429245 0.125669 0.326145 0.115911 0.323688 0.422679 0.160326 0.500000 0.500000 0 0 0 0 0 0 0.894745 0.910125 0.902268 0.868517 0.500000 0.500000 0.842455 0.849292 0.500000 0.500000 0.500000 0.904654 0.872200 0.882408 0.895492 0.500000 +0.600584 +0.169561 0.405688 0.205214 0.426335 0.813929 0.713063 0.649479 0.790018 0.500000 1 0.500000 0.500000 1 1 1 0.500000 0.872866 0.858136 0.500000 0.854912 0.500000 0.500000 0.500000 0.872513 0.500000 0.873552 0.862674 0.500000 0.883327 0.883657 0.500000 0.500000 +0.435924 +0.605488 0.642062 0.129092 0.241513 0.103183 0.792558 0.717094 0.392903 0.500000 0.500000 1 0.500000 0 0 0.500000 0.500000 0.896398 0.883693 0.857603 0.500000 0.874258 0.500000 0.857400 0.500000 0.500000 0.893925 0.500000 0.884138 0.500000 0.888813 0.864963 0.500000 +0.440121 +0.614512 0.295985 0.426969 0.264735 0.805263 0.660706 0.683831 0.547583 0 0.500000 0.500000 0 0 1 0 0 0.892001 0.500000 0.859289 0.855695 0.880234 0.500000 0.877613 0.500000 0.878723 0.500000 0.500000 0.864922 0.500000 0.864340 0.869956 0.853729 +0.457548 +0.239572 0.294628 0.808720 0.351137 0.152084 0.282075 0.237122 0.702293 0.500000 1 1 0.500000 0 1 0.500000 1 0.870688 0.500000 0.869564 0.883656 0.888553 0.895117 0.844001 0.867266 0.878081 0.500000 0.500000 0.500000 0.869143 0.881786 0.864863 0.904679 +0.723481 +0.442580 0.240096 0.287848 0.459519 0.141383 0.420545 0.305356 0.315827 0 1 1 0 0 1 1 0.500000 0.885567 0.870948 0.500000 0.875235 0.500000 0.500000 0.859940 0.870633 0.500000 0.500000 0.500000 0.500000 0.876062 0.838436 0.500000 0.500000 +0.324333 +0.264632 0.666858 0.876743 0.420697 0.446440 0.320572 0.846950 0.490831 1 0 0.500000 0 0 0.500000 0 0.500000 0.500000 0.868526 0.883259 0.891515 0.885342 0.896713 0.841725 0.888042 0.500000 0.500000 0.875291 0.500000 0.900473 0.912036 0.500000 0.882479 +0.604283 +0.775736 0.389786 0.131592 0.661821 0.232293 0.348585 0.463600 0.718741 1 1 0.500000 0 0 0 1 0 0.888342 0.868879 0.500000 0.900646 0.865111 0.890390 0.500000 0.500000 0.856021 0.500000 0.500000 0.500000 0.884413 0.500000 0.500000 0.500000 +0.342134 +0.479342 0.502290 0.586149 0.404888 0.356199 0.439513 0.698226 0.885683 0 0 0 0.500000 1 0 0 0 0.862411 0.859489 0.888815 0.500000 0.873195 0.896465 0.500000 0.500000 0.500000 0.500000 0.500000 0.886596 0.887505 0.895288 0.861327 0.864973 +0.513061 +0.725474 0.442217 0.549390 0.192827 0.236354 0.599596 0.812695 0.760531 1 0 1 0.500000 0.500000 0 0.500000 0.500000 0.876325 0.907723 0.500000 0.869846 0.500000 0.909880 0.874142 0.898619 0.500000 0.888300 0.500000 0.900138 0.500000 0.871161 0.909145 0.862909 +0.621648 +0.183351 0.178286 0.650147 0.827038 0.221833 0.541089 0.685171 0.671235 1 0.500000 0.500000 1 0.500000 0 1 1 0.896575 0.873227 0.884595 0.863223 0.500000 0.877627 0.500000 0.875618 0.500000 0.500000 0.500000 0.500000 0.885165 0.500000 0.881776 0.862805 +0.530192 +0.263202 0.629329 0.533284 0.707646 0.813377 0.226625 0.287270 0.352367 1 1 1 0 1 0.500000 0 0 0.876703 0.887462 0.883613 0.873948 0.881144 0.900410 0.500000 0.883603 0.902496 0.887209 0.875197 0.878038 0.500000 0.879664 0.500000 0.500000 +0.683813 +0.354878 0.631733 0.142563 0.256603 0.134009 0.494615 0.395249 0.752735 0 0 0 0.500000 0.500000 0.500000 0 0.500000 0.860466 0.887492 0.500000 0.911417 0.500000 0.500000 0.500000 0.882225 0.500000 0.894325 0.911990 0.500000 0.500000 0.500000 0.500000 0.500000 +0.291116 +0.168946 0.482438 0.537753 0.613537 0.712358 0.799723 0.350516 0.122896 0 0.500000 0 0 1 1 1 0 0.888142 0.500000 0.875323 0.846733 0.500000 0.500000 0.500000 0.500000 0.869545 0.850263 0.500000 0.500000 0.898587 0.500000 0.500000 0.866950 +0.284028 +0.260369 0.222483 0.268235 0.418825 0.199663 0.732157 0.757441 0.110195 0 1 0.500000 1 1 1 1 0.500000 0.500000 0.882709 0.923549 0.872712 0.886964 0.873228 0.918857 0.874773 0.916125 0.900908 0.868719 0.878698 0.908963 0.500000 0.500000 0.500000 +0.766830 +0.790600 0.614536 0.713131 0.191077 0.428408 0.457295 0.354460 0.808462 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.893354 0.897102 0.500000 0.862878 0.894437 0.500000 0.879282 0.885099 0.500000 0.500000 0.889919 0.500000 0.844508 0.883749 0.500000 +0.486910 +0.492468 0.304392 0.114059 0.387517 0.400769 0.730360 0.164448 0.875441 0 0 0.500000 0 1 0 0.500000 0 0.500000 0.925493 0.862638 0.879839 0.894559 0.873389 0.868457 0.902124 0.891050 0.500000 0.500000 0.500000 0.500000 0.899629 0.910464 0.500000 +0.690192 +0.319981 0.522356 0.242608 0.105488 0.329805 0.827762 0.388018 0.811211 0.500000 0 0 1 1 1 0.500000 0 0.500000 0.888957 0.884680 0.500000 0.500000 0.500000 0.851910 0.859433 0.500000 0.500000 0.875134 0.861968 0.500000 0.866507 0.858933 0.500000 +0.314700 +0.200154 0.185714 0.698982 0.788813 0.177971 0.150456 0.108879 0.530824 0 1 0 0 1 0.500000 1 0 0.500000 0.886457 0.854756 0.831276 0.500000 0.884721 0.500000 0.870121 0.500000 0.888985 0.500000 0.500000 0.909403 0.890537 0.500000 0.500000 +0.382244 +0.715975 0.789544 0.464663 0.186824 0.158004 0.575971 0.552175 0.603737 1 0.500000 0 1 0.500000 1 0.500000 1 0.873787 0.500000 0.889998 0.869401 0.500000 0.500000 0.907354 0.884765 0.500000 0.877207 0.902977 0.500000 0.500000 0.862781 0.500000 0.500000 +0.439255 +0.778450 0.404402 0.179133 0.495698 0.203786 0.424808 0.744296 0.784495 0.500000 0 1 0 1 0 0.500000 1 0.886370 0.899046 0.890269 0.890488 0.889500 0.889535 0.897938 0.878996 0.898438 0.874633 0.867013 0.895696 0.500000 0.895754 0.880792 0.500000 +0.854698 +0.394393 0.759015 0.162284 0.509872 0.817003 0.366656 0.179877 0.198123 0.500000 0.500000 0 0.500000 0.500000 1 1 0 0.921271 0.852176 0.856880 0.500000 0.500000 0.875183 0.889771 0.879916 0.891095 0.500000 0.500000 0.885026 0.901737 0.890957 0.500000 0.910058 +0.632779 +0.465467 0.106633 0.383042 0.395177 0.345189 0.184029 0.376435 0.538353 0 1 0.500000 1 0 0 0.500000 1 0.872990 0.892454 0.500000 0.858870 0.500000 0.500000 0.858515 0.500000 0.889812 0.871793 0.500000 0.880844 0.500000 0.861470 0.500000 0.500000 +0.347142 +0.577326 0.114869 0.409501 0.277939 0.328168 0.526664 0.638571 0.656097 1 0 1 0 0.500000 0.500000 0 0 0.500000 0.891183 0.500000 0.921076 0.895903 0.500000 0.500000 0.891293 0.500000 0.500000 0.867995 0.904492 0.500000 0.895942 0.500000 0.856492 +0.445350 +0.361073 0.748390 0.798942 0.824561 0.205509 0.582142 0.266907 0.510699 0 1 1 0.500000 0 0 0.500000 1 0.887511 0.899564 0.866769 0.881414 0.909198 0.887125 0.905882 0.886460 0.500000 0.898273 0.500000 0.872038 0.911909 0.874067 0.888987 0.500000 +0.753931 +0.228192 0.230986 0.778013 0.260450 0.780251 0.285564 0.465994 0.159910 0.500000 1 0 0.500000 1 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.866520 0.879867 0.873373 0.500000 0.500000 0.500000 0.853259 0.500000 0.500000 0.853237 0.500000 0.500000 0.843248 +0.229397 +0.876210 0.269233 0.406794 0.395195 0.639742 0.340224 0.738341 0.694718 0 1 0.500000 1 0.500000 1 0.500000 1 0.849798 0.891868 0.500000 0.500000 0.899800 0.913049 0.500000 0.872339 0.500000 0.872564 0.880851 0.500000 0.500000 0.500000 0.875090 0.894565 +0.430684 +0.750326 0.534618 0.728516 0.374705 0.272933 0.180643 0.262257 0.757815 1 0 0.500000 0 0.500000 1 0 1 0.854124 0.859815 0.500000 0.884506 0.837882 0.500000 0.847451 0.886700 0.500000 0.902494 0.500000 0.849987 0.500000 0.500000 0.500000 0.886329 +0.440252 +0.620912 0.668780 0.381053 0.551943 0.708860 0.412702 0.482506 0.883339 1 0 0.500000 0 1 1 1 0.500000 0.853391 0.859361 0.867376 0.870526 0.877136 0.857920 0.869295 0.899485 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.869440 0.873839 +0.602651 +0.720919 0.687541 0.501219 0.184905 0.695287 0.289146 0.678679 0.361868 0.500000 0.500000 0.500000 0.500000 1 0 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.900327 0.876031 0.869933 0.500000 0.500000 0.881194 0.916647 0.889206 0.500000 0.879655 0.869629 +0.404395 +0.419109 0.170536 0.799816 0.303556 0.460655 0.821313 0.815180 0.138272 0 1 0.500000 0.500000 0 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.884754 0.873083 0.893777 0.500000 0.500000 0.500000 0.500000 0.877168 0.500000 0.500000 0.867379 0.500000 +0.192266 +0.726301 0.733810 0.545516 0.687258 0.545234 0.754734 0.212737 0.474698 1 1 0 1 1 0.500000 0 1 0.500000 0.900196 0.500000 0.889678 0.500000 0.868930 0.500000 0.892786 0.896693 0.867278 0.500000 0.851852 0.885817 0.500000 0.500000 0.500000 +0.388421 +0.748413 0.385596 0.117447 0.530846 0.533260 0.299504 0.370340 0.511315 0 1 0.500000 0 0.500000 1 1 0 0.500000 0.500000 0.500000 0.913809 0.500000 0.500000 0.885202 0.890339 0.500000 0.500000 0.500000 0.899045 0.500000 0.854520 0.500000 0.861059 +0.220671 +0.350728 0.480714 0.355762 0.294278 0.527147 0.756275 0.512096 0.605654 0 1 0.500000 0 0.500000 1 0.500000 0.500000 0.500000 0.895807 0.875153 0.914171 0.867570 0.500000 0.848818 0.883973 0.500000 0.500000 0.922934 0.875525 0.500000 0.886966 0.500000 0.888528 +0.588129 +0.190299 0.160763 0.549044 0.779381 0.851630 0.752817 0.793942 0.777940 0.500000 0 1 1 0.500000 0.500000 1 1 0.897928 0.864107 0.845322 0.886049 0.906498 0.500000 0.875188 0.887904 0.862766 0.867985 0.897944 0.500000 0.500000 0.870531 0.852958 0.500000 +0.688896 +0.649620 0.763443 0.183242 0.747786 0.234724 0.404956 0.692857 0.251251 0.500000 1 0.500000 1 1 1 0.500000 0 0.914378 0.882079 0.500000 0.891517 0.500000 0.889321 0.500000 0.500000 0.881618 0.879290 0.884378 0.865928 0.877509 0.500000 0.885594 0.500000 +0.516414 +0.351682 0.511666 0.574583 0.419226 0.533809 0.727507 0.218807 0.897388 0 0 1 0.500000 1 0.500000 0 1 0.500000 0.500000 0.886373 0.858777 0.897680 0.500000 0.868222 0.500000 0.500000 0.905932 0.865565 0.500000 0.500000 0.882714 0.879602 0.870461 +0.448167 +0.826152 0.540956 0.842390 0.655593 0.351079 0.787550 0.554604 0.628246 1 0.500000 1 0.500000 0 0 0.500000 0.500000 0.873860 0.886548 0.927321 0.500000 0.907471 0.873387 0.869124 0.908263 0.500000 0.500000 0.500000 0.500000 0.854408 0.500000 0.500000 0.500000 +0.556534 +0.395620 0.579526 0.286519 0.521315 0.334788 0.579893 0.858137 0.506605 0 0 0.500000 0.500000 0.500000 0 1 1 0.500000 0.863184 0.500000 0.890468 0.880036 0.884765 0.911519 0.876222 0.886577 0.879660 0.869037 0.500000 0.500000 0.500000 0.908544 0.500000 +0.509258 +0.633416 0.421458 0.441897 0.755011 0.877892 0.529915 0.877347 0.171491 1 0.500000 0 1 0 0 0 1 0.500000 0.896127 0.875059 0.886942 0.500000 0.500000 0.880547 0.871348 0.891599 0.500000 0.500000 0.500000 0.900326 0.500000 0.500000 0.867301 +0.290464 +0.884708 0.696133 0.115858 0.217664 0.871712 0.656839 0.497856 0.459097 0 0 0.500000 0.500000 0.500000 1 1 0 0.895240 0.500000 0.877081 0.885023 0.873753 0.853637 0.843632 0.500000 0.500000 0.880103 0.500000 0.500000 0.500000 0.500000 0.500000 0.897211 +0.435020 +0.374258 0.749945 0.523319 0.424772 0.139606 0.154062 0.721893 0.248491 0.500000 0 0.500000 0 1 0 1 1 0.860429 0.871188 0.907416 0.871709 0.889586 0.500000 0.899858 0.500000 0.500000 0.856909 0.847271 0.500000 0.874090 0.865314 0.500000 0.500000 +0.572603 +0.245440 0.506179 0.353538 0.508557 0.319268 0.537524 0.766112 0.251397 1 0 0 0 1 1 0.500000 1 0.500000 0.861808 0.879279 0.500000 0.500000 0.500000 0.500000 0.868040 0.500000 0.892821 0.500000 0.500000 0.500000 0.877978 0.500000 0.895915 +0.213629 +0.140760 0.351649 0.772273 0.590224 0.100420 0.766717 0.809505 0.751686 0 1 1 1 1 0 1 1 0.500000 0.887863 0.874662 0.900043 0.500000 0.852866 0.898425 0.500000 0.884245 0.500000 0.500000 0.863609 0.864647 0.500000 0.500000 0.500000 +0.491094 +0.716426 0.375349 0.696889 0.814868 0.485633 0.627147 0.658617 0.781356 0.500000 1 0.500000 0.500000 1 0 0.500000 1 0.865082 0.500000 0.877554 0.873264 0.869747 0.500000 0.500000 0.909573 0.890225 0.853703 0.500000 0.847915 0.857544 0.500000 0.500000 0.500000 +0.496182 +0.661479 0.884194 0.851777 0.819019 0.645130 0.495680 0.692628 0.398042 0.500000 0 0.500000 0.500000 1 0.500000 1 1 0.903954 0.902672 0.852924 0.903594 0.896039 0.500000 0.888196 0.884998 0.883471 0.900749 0.882924 0.500000 0.500000 0.909363 0.500000 0.500000 +0.601137 +0.164964 0.742945 0.470274 0.893704 0.678127 0.685110 0.439958 0.170837 0 0.500000 0.500000 0.500000 0 1 0.500000 1 0.907301 0.888670 0.890390 0.871476 0.500000 0.500000 0.500000 0.500000 0.879612 0.500000 0.500000 0.500000 0.858057 0.848015 0.864444 0.881407 +0.438177 +0.195278 0.642689 0.272588 0.792792 0.658716 0.842682 0.752922 0.153704 0 0.500000 1 0 0 1 0 1 0.868700 0.890755 0.500000 0.871854 0.500000 0.875983 0.885599 0.884082 0.500000 0.894303 0.893570 0.891251 0.500000 0.878414 0.500000 0.500000 +0.551509 +0.455568 0.133794 0.882069 0.341156 0.412242 0.749183 0.521652 0.401943 0.500000 0 0 0 0.500000 0 1 0.500000 0.500000 0.500000 0.500000 0.896169 0.500000 0.500000 0.868544 0.899111 0.902149 0.500000 0.500000 0.500000 0.887913 0.891601 0.500000 0.500000 +0.183143 +0.261288 0.467497 0.621163 0.888996 0.755168 0.312073 0.402957 0.703239 0 1 0.500000 1 0 0 0 1 0.870650 0.874027 0.847117 0.876083 0.873238 0.866693 0.500000 0.900880 0.917801 0.879309 0.876186 0.873801 0.500000 0.500000 0.861111 0.893655 +0.667077 +0.695305 0.587406 0.731170 0.178455 0.289297 0.822137 0.248870 0.565227 1 1 1 1 0.500000 1 0 0 0.883042 0.919361 0.864412 0.500000 0.873152 0.500000 0.877495 0.500000 0.900423 0.857523 0.861295 0.883468 0.500000 0.899508 0.500000 0.500000 +0.489876 +0.394781 0.881824 0.216434 0.209602 0.582953 0.293004 0.724131 0.263061 1 0.500000 0 1 0.500000 0.500000 0 0.500000 0.859287 0.500000 0.893931 0.896054 0.846381 0.893215 0.901716 0.898362 0.857441 0.898352 0.500000 0.887218 0.899429 0.882168 0.857429 0.500000 +0.864454 +0.795169 0.606352 0.756283 0.640261 0.268472 0.415038 0.551821 0.258996 0 0.500000 0 0.500000 0.500000 0.500000 1 0 0.500000 0.840176 0.500000 0.881035 0.887327 0.871088 0.894598 0.886365 0.500000 0.882387 0.860044 0.500000 0.896479 0.500000 0.500000 0.868820 +0.508404 +0.604019 0.752678 0.855873 0.863419 0.484092 0.328514 0.734368 0.327173 0.500000 0.500000 0.500000 0 0 1 0 0 0.500000 0.868492 0.886257 0.881281 0.856470 0.500000 0.500000 0.896482 0.899295 0.875747 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.314995 +0.313737 0.383023 0.860090 0.528482 0.791038 0.779306 0.402529 0.711369 0 0 0.500000 0 0.500000 1 0.500000 0.500000 0.877552 0.500000 0.500000 0.500000 0.500000 0.500000 0.903723 0.883135 0.500000 0.500000 0.877857 0.500000 0.841840 0.500000 0.500000 0.872445 +0.224387 +0.230132 0.824345 0.568081 0.743113 0.105974 0.506946 0.434339 0.136269 1 0.500000 0 1 0.500000 0 0.500000 0.500000 0.868360 0.844229 0.865627 0.500000 0.886400 0.882280 0.500000 0.881194 0.500000 0.500000 0.500000 0.862859 0.873251 0.500000 0.500000 0.500000 +0.423701 +0.866980 0.338636 0.456057 0.344357 0.607617 0.426376 0.695681 0.517173 0 1 1 0.500000 1 0 0.500000 0.500000 0.887778 0.500000 0.856089 0.500000 0.875573 0.500000 0.898349 0.879882 0.500000 0.500000 0.890722 0.500000 0.903772 0.873560 0.500000 0.895042 +0.462840 +0.112238 0.186263 0.323604 0.612955 0.542545 0.348028 0.714714 0.390214 0 0.500000 1 0.500000 0.500000 0 0 1 0.844794 0.909164 0.890405 0.883808 0.900756 0.882115 0.925314 0.858860 0.866187 0.500000 0.500000 0.911748 0.500000 0.500000 0.500000 0.500000 +0.723513 +0.476996 0.279090 0.461886 0.723463 0.236391 0.419952 0.729164 0.865273 0.500000 0 0.500000 1 0 0.500000 1 0 0.500000 0.898897 0.870890 0.921422 0.857759 0.500000 0.911086 0.893421 0.500000 0.500000 0.500000 0.875408 0.901049 0.854683 0.500000 0.871117 +0.569293 +0.348458 0.738283 0.527454 0.312619 0.784127 0.629581 0.775959 0.142599 1 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.895675 0.500000 0.500000 0.852881 0.849627 0.897636 0.881826 0.500000 0.500000 0.500000 0.500000 0.500000 0.873602 0.500000 0.882285 +0.396475 +0.107574 0.201888 0.529479 0.756937 0.438276 0.703106 0.500779 0.800087 1 0 0.500000 0.500000 0 0.500000 0 0 0.868345 0.500000 0.500000 0.889109 0.500000 0.500000 0.877744 0.500000 0.500000 0.500000 0.887951 0.500000 0.892644 0.500000 0.500000 0.905568 +0.259850 +0.495478 0.506214 0.144184 0.307583 0.146208 0.712600 0.870199 0.838439 1 0.500000 0 0.500000 1 0.500000 0.500000 0 0.867331 0.898184 0.500000 0.868572 0.500000 0.889120 0.500000 0.912768 0.500000 0.500000 0.500000 0.500000 0.879462 0.500000 0.873696 0.500000 +0.407715 +0.821682 0.612632 0.703493 0.615399 0.813095 0.293012 0.844713 0.492070 1 1 1 1 0.500000 1 1 1 0.889751 0.877062 0.500000 0.856477 0.883594 0.905602 0.500000 0.851599 0.885835 0.500000 0.905030 0.500000 0.866068 0.500000 0.500000 0.500000 +0.538332 +0.748252 0.873991 0.567374 0.852623 0.638592 0.221651 0.693470 0.144317 0 1 0.500000 0 0.500000 1 0 0.500000 0.500000 0.900132 0.500000 0.871568 0.903299 0.500000 0.876561 0.871862 0.500000 0.500000 0.893548 0.500000 0.912031 0.500000 0.500000 0.876468 +0.395241 +0.815827 0.603107 0.622523 0.551524 0.856957 0.677922 0.440574 0.133870 0.500000 0 0 0.500000 1 0.500000 0.500000 0 0.895260 0.883734 0.867794 0.864623 0.901012 0.500000 0.875795 0.500000 0.886858 0.864374 0.897173 0.844029 0.500000 0.879551 0.500000 0.892013 +0.622168 +0.610377 0.401020 0.135675 0.490615 0.363037 0.161519 0.444586 0.349802 0 1 0 0.500000 0.500000 0 0.500000 0.500000 0.907003 0.500000 0.846252 0.500000 0.879985 0.891680 0.858720 0.857456 0.500000 0.500000 0.500000 0.900040 0.500000 0.879430 0.891500 0.864228 +0.551142 +0.811154 0.460633 0.459848 0.863512 0.453103 0.308590 0.275909 0.604860 0.500000 1 1 1 0.500000 0 1 0 0.874418 0.500000 0.883002 0.500000 0.897346 0.885752 0.883050 0.875201 0.861453 0.500000 0.500000 0.885325 0.880056 0.500000 0.500000 0.500000 +0.517258 +0.673360 0.557433 0.171830 0.144995 0.323637 0.370349 0.663816 0.159075 0 1 1 1 1 1 0.500000 0.500000 0.500000 0.902711 0.500000 0.889797 0.865254 0.886213 0.891998 0.901348 0.500000 0.500000 0.892492 0.500000 0.500000 0.866383 0.889182 0.856490 +0.520440 +0.781399 0.368279 0.257335 0.428966 0.234888 0.763594 0.332422 0.815219 1 1 1 0.500000 0.500000 1 0 0 0.500000 0.500000 0.901808 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.880605 0.874324 0.500000 0.500000 0.500000 0.894356 +0.214065 +0.412616 0.641778 0.165456 0.220000 0.140870 0.601741 0.853088 0.443549 0.500000 0 0 0 1 0 0 1 0.500000 0.500000 0.861689 0.500000 0.910964 0.910071 0.500000 0.500000 0.500000 0.899051 0.500000 0.916508 0.901086 0.500000 0.879097 0.882712 +0.354915 +0.665544 0.399495 0.104879 0.505167 0.136431 0.402279 0.501302 0.779639 0.500000 0.500000 0.500000 0.500000 0 0 1 1 0.878791 0.878994 0.500000 0.884262 0.888248 0.500000 0.500000 0.884380 0.500000 0.863927 0.904356 0.500000 0.500000 0.500000 0.869063 0.872522 +0.502443 +0.610201 0.652751 0.588119 0.711933 0.855300 0.828620 0.417088 0.591246 0.500000 1 0.500000 0.500000 0 0.500000 1 0 0.892612 0.897026 0.889558 0.892034 0.884853 0.874373 0.892518 0.868140 0.887304 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.600139 +0.587599 0.777191 0.854853 0.521341 0.782412 0.604763 0.451177 0.725710 0.500000 0 1 0.500000 0.500000 0 1 0.500000 0.500000 0.500000 0.500000 0.917465 0.500000 0.500000 0.906401 0.869963 0.500000 0.500000 0.500000 0.877712 0.500000 0.500000 0.903829 0.500000 +0.147448 +0.697684 0.571556 0.747475 0.617985 0.282121 0.213779 0.386237 0.480276 0 1 0 1 0.500000 1 1 1 0.500000 0.500000 0.500000 0.500000 0.878990 0.857589 0.870123 0.891382 0.877477 0.500000 0.500000 0.500000 0.903924 0.500000 0.500000 0.901287 +0.330236 +0.873981 0.392602 0.255969 0.665021 0.413825 0.161738 0.122935 0.773618 1 0.500000 0 0.500000 1 0.500000 0.500000 1 0.865063 0.875019 0.867321 0.500000 0.500000 0.924199 0.864765 0.877235 0.500000 0.897517 0.500000 0.911278 0.863683 0.896184 0.910562 0.887088 +0.747904 +0.738641 0.135989 0.166095 0.555894 0.711903 0.354031 0.791135 0.802927 0.500000 0.500000 1 1 1 1 0 0.500000 0.500000 0.877796 0.872495 0.500000 0.846622 0.919446 0.886976 0.855653 0.852392 0.500000 0.872685 0.500000 0.879254 0.500000 0.847648 0.500000 +0.585929 +0.887199 0.148877 0.768309 0.361500 0.735433 0.623017 0.854713 0.558535 0 0 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.842559 0.857181 0.913882 0.883231 0.889986 0.890519 0.850891 0.889708 0.500000 0.902782 0.500000 0.928985 0.869262 0.500000 0.500000 +0.615694 +0.264472 0.376609 0.266986 0.238277 0.116253 0.457956 0.265907 0.499182 0 0 0.500000 0 0 1 0 0.500000 0.500000 0.500000 0.858622 0.891052 0.907945 0.883253 0.500000 0.892152 0.500000 0.883009 0.884803 0.500000 0.874193 0.500000 0.908047 0.868602 +0.529630 +0.704192 0.355742 0.754319 0.441321 0.674532 0.251126 0.875502 0.360730 0.500000 0 0.500000 0.500000 1 0.500000 0.500000 1 0.878002 0.500000 0.882187 0.889894 0.861754 0.891879 0.500000 0.847750 0.500000 0.873293 0.895037 0.866256 0.500000 0.878432 0.500000 0.500000 +0.506912 +0.628543 0.114327 0.100415 0.667241 0.111603 0.705799 0.155802 0.359799 0 0.500000 0 0.500000 0.500000 0.500000 1 0 0.500000 0.500000 0.892564 0.926441 0.892727 0.894985 0.891382 0.500000 0.894055 0.500000 0.873977 0.500000 0.500000 0.880951 0.846392 0.500000 +0.524207 +0.476220 0.830447 0.727385 0.558106 0.282079 0.305994 0.634828 0.157358 0 0 0 0.500000 0 1 0.500000 1 0.908981 0.866180 0.896053 0.878925 0.905586 0.880371 0.500000 0.891793 0.500000 0.500000 0.870352 0.500000 0.500000 0.863345 0.911909 0.857881 +0.626460 +0.120997 0.192925 0.283517 0.463410 0.726741 0.134976 0.738244 0.674540 0.500000 0.500000 0 0.500000 1 0 0 1 0.869150 0.904030 0.870096 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.901648 0.500000 0.891855 0.892827 0.500000 0.871618 0.500000 +0.353990 +0.788029 0.603975 0.801509 0.764198 0.869079 0.411350 0.155281 0.406832 0 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.895396 0.877848 0.880028 0.858593 0.851893 0.885952 0.500000 0.895051 0.860550 0.881863 0.880585 0.892392 0.892645 0.500000 0.830099 +0.724589 +0.193746 0.481449 0.720518 0.341161 0.485998 0.361299 0.546208 0.320787 0.500000 0.500000 0.500000 0 0.500000 1 0.500000 0 0.500000 0.903197 0.500000 0.500000 0.500000 0.885136 0.500000 0.897581 0.902294 0.500000 0.843795 0.894089 0.906536 0.500000 0.910186 0.500000 +0.450088 +0.583472 0.213809 0.882084 0.588382 0.333124 0.614585 0.728939 0.279652 0 0.500000 1 1 1 0 0.500000 0 0.891194 0.500000 0.887553 0.874368 0.500000 0.884331 0.919727 0.500000 0.890402 0.500000 0.893305 0.500000 0.500000 0.500000 0.500000 0.500000 +0.376737 +0.784949 0.830319 0.176210 0.165966 0.789768 0.229973 0.553312 0.509902 0.500000 0 1 1 0.500000 1 0 0.500000 0.880495 0.500000 0.885262 0.873171 0.913883 0.500000 0.500000 0.858379 0.875500 0.918055 0.869849 0.500000 0.500000 0.500000 0.899017 0.500000 +0.403658 +0.118746 0.768470 0.677695 0.619265 0.188201 0.101818 0.251096 0.377789 1 0 0.500000 0 1 0 0.500000 0 0.880475 0.895694 0.500000 0.500000 0.871770 0.882193 0.500000 0.935919 0.909188 0.913539 0.500000 0.500000 0.500000 0.915413 0.500000 0.901999 +0.515628 +0.335961 0.289827 0.129027 0.754505 0.367172 0.867116 0.216811 0.138192 0.500000 1 0 1 0 0.500000 0 0 0.872704 0.865911 0.891632 0.875106 0.895648 0.500000 0.869316 0.500000 0.500000 0.869684 0.500000 0.500000 0.865638 0.878833 0.500000 0.500000 +0.561394 +0.819187 0.267168 0.896559 0.664189 0.829531 0.526818 0.834584 0.645655 0.500000 0 1 0 0.500000 0.500000 0 0 0.846913 0.500000 0.884925 0.864375 0.870791 0.884255 0.500000 0.898452 0.500000 0.867367 0.500000 0.500000 0.500000 0.860695 0.500000 0.500000 +0.391325 +0.540696 0.474995 0.234449 0.579503 0.702532 0.456507 0.719744 0.136740 1 1 0 0 1 1 1 1 0.888873 0.889910 0.500000 0.863397 0.500000 0.863274 0.500000 0.888601 0.500000 0.884705 0.892372 0.500000 0.500000 0.874571 0.500000 0.500000 +0.427264 +0.133001 0.341741 0.645906 0.738769 0.687915 0.385862 0.586316 0.818336 0.500000 1 0 0 0.500000 1 1 0 0.912262 0.909217 0.500000 0.858726 0.865619 0.874561 0.881345 0.855190 0.854154 0.500000 0.888099 0.500000 0.500000 0.500000 0.870004 0.500000 +0.574294 +0.102387 0.209479 0.109829 0.500918 0.732576 0.613076 0.162192 0.568716 0 0.500000 0 0.500000 0 0.500000 1 1 0.877740 0.872281 0.894743 0.870678 0.888027 0.500000 0.881713 0.500000 0.500000 0.888040 0.872672 0.500000 0.500000 0.909643 0.882360 0.500000 +0.521554 +0.491215 0.849111 0.802617 0.189216 0.350856 0.231550 0.665469 0.744439 1 0 0 0.500000 0.500000 0.500000 1 0.500000 0.879245 0.879724 0.870376 0.905153 0.899565 0.886893 0.870640 0.917517 0.880330 0.914043 0.871786 0.892994 0.891700 0.899980 0.500000 0.500000 +0.973264 +0.899631 0.304095 0.726646 0.132336 0.366600 0.848051 0.593376 0.269864 0.500000 0.500000 0 1 1 0.500000 1 0 0.500000 0.882891 0.870092 0.864843 0.864200 0.891839 0.908160 0.869211 0.500000 0.500000 0.885643 0.879971 0.903005 0.500000 0.500000 0.500000 +0.587390 +0.805425 0.174960 0.746292 0.722647 0.133645 0.778038 0.688915 0.400616 0.500000 0 1 0.500000 0 1 1 0.500000 0.858015 0.922566 0.854723 0.500000 0.893386 0.500000 0.902325 0.867830 0.878403 0.500000 0.876822 0.500000 0.879970 0.894904 0.500000 0.867746 +0.568113 +0.639963 0.858926 0.170992 0.465801 0.114114 0.514103 0.727813 0.560150 0 1 0 0 0.500000 1 1 0 0.891605 0.865206 0.899360 0.871649 0.870018 0.860524 0.500000 0.894905 0.890142 0.866695 0.889345 0.500000 0.857759 0.500000 0.500000 0.873131 +0.718756 +0.699041 0.183476 0.673311 0.537580 0.104525 0.158347 0.737338 0.631841 0 1 1 0 0.500000 0.500000 0 0 0.864858 0.888195 0.500000 0.862782 0.500000 0.915186 0.879224 0.500000 0.500000 0.878087 0.865413 0.902889 0.873565 0.861190 0.858300 0.500000 +0.626828 +0.895320 0.641589 0.189146 0.776988 0.636552 0.329920 0.361532 0.470863 0.500000 0 1 1 1 0.500000 0 0 0.883799 0.859642 0.911701 0.879360 0.500000 0.893519 0.857645 0.500000 0.500000 0.873031 0.500000 0.500000 0.847054 0.500000 0.500000 0.500000 +0.475077 +0.145708 0.321186 0.769443 0.225434 0.266829 0.798655 0.798140 0.135244 0.500000 0.500000 0 0.500000 0 1 1 0.500000 0.500000 0.866538 0.867040 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.891739 0.879139 0.887613 0.500000 0.876293 +0.260430 +0.528805 0.633070 0.201525 0.838654 0.262541 0.729910 0.589837 0.794867 0 1 0 0.500000 1 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.868415 0.895722 0.878540 0.860649 0.886484 0.500000 0.900050 0.500000 0.897181 0.500000 0.904555 0.500000 0.500000 +0.342875 +0.614858 0.518447 0.143224 0.168846 0.388968 0.791155 0.333920 0.396812 0.500000 0 0.500000 0 1 0 0.500000 0.500000 0.856363 0.899191 0.500000 0.500000 0.500000 0.500000 0.500000 0.910540 0.905804 0.500000 0.854906 0.500000 0.882186 0.500000 0.904322 0.500000 +0.328231 +0.471582 0.479177 0.129226 0.896133 0.709191 0.373776 0.647098 0.778657 1 0 0 1 0 0.500000 0 0 0.875997 0.888144 0.909588 0.869396 0.878797 0.500000 0.884246 0.894662 0.500000 0.500000 0.500000 0.500000 0.500000 0.899597 0.500000 0.500000 +0.510776 +0.538801 0.632779 0.115135 0.873242 0.781871 0.303503 0.378266 0.114467 1 0.500000 0 0.500000 0.500000 1 0.500000 1 0.895162 0.905296 0.905018 0.883533 0.873307 0.859095 0.500000 0.870848 0.902972 0.865269 0.500000 0.897434 0.500000 0.500000 0.500000 0.876357 +0.622442 +0.789354 0.467253 0.517935 0.341738 0.583395 0.520147 0.717085 0.255529 0.500000 1 0.500000 1 1 0 0.500000 0 0.892177 0.500000 0.500000 0.878225 0.500000 0.500000 0.860520 0.877515 0.500000 0.500000 0.889533 0.903041 0.883564 0.500000 0.500000 0.500000 +0.370497 +0.294350 0.141611 0.264088 0.323573 0.898525 0.111115 0.507958 0.658082 0.500000 1 0 0 0.500000 0.500000 0.500000 0 0.909284 0.899696 0.871734 0.500000 0.870984 0.500000 0.901575 0.880132 0.876591 0.500000 0.500000 0.866165 0.500000 0.891048 0.500000 0.500000 +0.600892 +0.859343 0.770471 0.707860 0.409356 0.241528 0.362417 0.145022 0.783302 0 0 0 1 0 1 0 0 0.906684 0.903866 0.886061 0.500000 0.859188 0.500000 0.882553 0.857716 0.876281 0.884919 0.913454 0.500000 0.500000 0.500000 0.855533 0.851371 +0.620056 +0.642481 0.783749 0.677594 0.518188 0.586873 0.573828 0.527623 0.753203 1 1 1 0 0 0.500000 0.500000 0 0.890979 0.899851 0.890611 0.870500 0.500000 0.888980 0.870274 0.899732 0.500000 0.893320 0.880724 0.500000 0.899180 0.500000 0.500000 0.861918 +0.674715 +0.609488 0.662653 0.613000 0.486582 0.582472 0.201484 0.140955 0.437034 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0 0.500000 0.856374 0.500000 0.888538 0.902119 0.880471 0.908796 0.851229 0.500000 0.500000 0.500000 0.500000 0.911375 0.877718 0.899676 0.500000 +0.515146 +0.405959 0.747839 0.325941 0.686428 0.191075 0.392914 0.707118 0.733203 1 0.500000 0 1 1 1 0.500000 1 0.500000 0.890107 0.882335 0.880104 0.902175 0.882754 0.849007 0.877749 0.500000 0.500000 0.892744 0.500000 0.500000 0.500000 0.500000 0.500000 +0.559495 +0.240956 0.355248 0.459025 0.635063 0.103852 0.837898 0.356293 0.415794 0.500000 1 0 0.500000 1 0.500000 0.500000 0.500000 0.916818 0.500000 0.872642 0.877335 0.833858 0.918952 0.895527 0.880518 0.500000 0.500000 0.500000 0.880437 0.875390 0.903311 0.909677 0.500000 +0.732791 +0.542479 0.847409 0.208182 0.715995 0.336715 0.175715 0.634433 0.710936 0 0.500000 0 0 1 0 0.500000 0.500000 0.500000 0.887121 0.500000 0.500000 0.837317 0.888684 0.877397 0.867285 0.500000 0.500000 0.889624 0.500000 0.928019 0.862421 0.500000 0.500000 +0.316372 +0.609883 0.101268 0.605493 0.727144 0.502694 0.178091 0.580497 0.611749 0 0.500000 0.500000 0.500000 0.500000 1 0.500000 0 0.500000 0.876801 0.875759 0.900572 0.860998 0.869742 0.500000 0.500000 0.500000 0.891912 0.900135 0.500000 0.866422 0.500000 0.500000 0.500000 +0.401106 +0.818760 0.296185 0.588025 0.736159 0.826575 0.444081 0.665686 0.383238 0.500000 1 1 0 0 1 1 0 0.892850 0.885314 0.500000 0.862164 0.500000 0.500000 0.882393 0.911783 0.885803 0.881737 0.865340 0.863805 0.500000 0.889877 0.868051 0.874934 +0.727132 +0.424777 0.228532 0.339026 0.611805 0.414750 0.499028 0.159001 0.532779 0 1 1 0.500000 0 1 1 1 0.863623 0.891782 0.893550 0.877571 0.883591 0.910269 0.863415 0.881460 0.500000 0.891885 0.885834 0.500000 0.864277 0.892479 0.871648 0.500000 +0.801636 +0.727943 0.334165 0.509807 0.531310 0.328994 0.796130 0.751062 0.103162 0.500000 0.500000 0 0.500000 0 0.500000 1 1 0.888096 0.500000 0.881597 0.861479 0.500000 0.500000 0.500000 0.886527 0.874979 0.865753 0.500000 0.855114 0.900196 0.500000 0.500000 0.877650 +0.463888 +0.341544 0.522660 0.552707 0.747036 0.433005 0.109539 0.418303 0.220993 1 0 0.500000 0 0.500000 0.500000 0 1 0.848369 0.929979 0.866672 0.500000 0.866134 0.861980 0.867110 0.881422 0.886731 0.500000 0.500000 0.500000 0.856782 0.904003 0.897360 0.500000 +0.616014 +0.337970 0.458300 0.454910 0.265086 0.292903 0.623661 0.469065 0.569587 0.500000 0 0 0.500000 0.500000 0 0.500000 0 0.909122 0.500000 0.500000 0.882430 0.875457 0.500000 0.911240 0.907557 0.887713 0.500000 0.898856 0.882097 0.880511 0.873274 0.500000 0.500000 +0.578576 +0.858794 0.349831 0.610144 0.496770 0.605142 0.428553 0.492066 0.749891 0.500000 0.500000 0 1 1 0 0.500000 1 0.500000 0.500000 0.888493 0.855822 0.500000 0.892184 0.900370 0.904691 0.863642 0.881886 0.500000 0.895141 0.891136 0.879199 0.873582 0.922448 +0.742291 +0.155323 0.305702 0.526104 0.835714 0.442983 0.608521 0.418711 0.672197 0 0 0.500000 1 1 0 1 1 0.893478 0.896560 0.500000 0.500000 0.903162 0.875442 0.500000 0.865784 0.500000 0.901556 0.855649 0.500000 0.886589 0.500000 0.869678 0.500000 +0.496212 +0.377958 0.548218 0.493511 0.235935 0.756997 0.650038 0.582206 0.534411 0.500000 0.500000 1 0.500000 1 0 0 0 0.500000 0.862496 0.875656 0.500000 0.500000 0.884735 0.500000 0.500000 0.500000 0.500000 0.500000 0.855718 0.500000 0.500000 0.500000 0.500000 +0.158674 +0.180400 0.177794 0.385558 0.269831 0.841953 0.504059 0.718388 0.546979 0.500000 0 0.500000 0.500000 0 0 0 1 0.500000 0.500000 0.852315 0.891397 0.500000 0.873077 0.910747 0.866682 0.500000 0.500000 0.500000 0.862890 0.500000 0.883785 0.893841 0.500000 +0.406958 +0.899328 0.812929 0.701314 0.789531 0.251222 0.888266 0.489657 0.269574 0.500000 0 0 1 0 0 1 0 0.500000 0.500000 0.500000 0.895427 0.881308 0.500000 0.858368 0.894544 0.500000 0.884068 0.500000 0.500000 0.500000 0.500000 0.891248 0.500000 +0.208892 +0.318394 0.254473 0.321777 0.306427 0.724283 0.432314 0.498156 0.704137 0 1 1 0.500000 1 0 0.500000 0 0.500000 0.871953 0.500000 0.870848 0.500000 0.500000 0.871401 0.500000 0.500000 0.879318 0.500000 0.913028 0.500000 0.500000 0.892082 0.861028 +0.316705 +0.105304 0.443423 0.806550 0.691094 0.212866 0.242896 0.161061 0.752022 0 0.500000 1 1 1 0 0.500000 0 0.879774 0.867041 0.500000 0.500000 0.850478 0.866317 0.905635 0.500000 0.866719 0.907875 0.500000 0.869170 0.895348 0.500000 0.886036 0.500000 +0.555195 +0.205769 0.153946 0.370134 0.239193 0.315868 0.186483 0.820724 0.517002 1 0 0 1 0.500000 0 0 0.500000 0.500000 0.907456 0.845103 0.883251 0.878542 0.500000 0.919712 0.500000 0.500000 0.866725 0.500000 0.875686 0.500000 0.879023 0.500000 0.918729 +0.551463 +0.860456 0.287684 0.104781 0.460252 0.450271 0.698081 0.851175 0.292749 0.500000 1 0 1 1 0.500000 1 1 0.500000 0.904441 0.500000 0.500000 0.500000 0.500000 0.868601 0.890923 0.500000 0.845665 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.129093 +0.311583 0.173499 0.192855 0.713424 0.322240 0.895199 0.204892 0.626541 1 0.500000 0 0 0 1 1 1 0.869460 0.868080 0.889943 0.923174 0.871911 0.899007 0.881564 0.500000 0.851464 0.882333 0.500000 0.910409 0.894563 0.885554 0.870426 0.500000 +0.858878 +0.510851 0.475513 0.147458 0.125819 0.444952 0.111496 0.518162 0.146536 1 0.500000 0.500000 1 0.500000 0 0 1 0.873485 0.500000 0.500000 0.866655 0.903425 0.500000 0.500000 0.913230 0.500000 0.873946 0.904046 0.500000 0.500000 0.877211 0.886366 0.881471 +0.535891 +0.876690 0.330225 0.687366 0.755981 0.368780 0.686986 0.770740 0.433255 0 0.500000 0.500000 0.500000 0 0 0 0 0.500000 0.899967 0.887441 0.902771 0.500000 0.886503 0.894441 0.500000 0.500000 0.898085 0.500000 0.500000 0.500000 0.500000 0.929284 0.500000 +0.371461 +0.216240 0.138981 0.856979 0.242312 0.734760 0.513188 0.544139 0.747790 0 0.500000 0 1 0.500000 0.500000 0 0 0.871552 0.500000 0.922552 0.500000 0.500000 0.891935 0.875438 0.898206 0.500000 0.886252 0.844528 0.869533 0.880787 0.869749 0.863736 0.882343 +0.655806 +0.267703 0.288418 0.449282 0.887339 0.102548 0.516564 0.483676 0.541507 0.500000 0 0.500000 0 0 0 1 1 0.500000 0.887116 0.852274 0.879424 0.500000 0.906378 0.500000 0.864155 0.500000 0.500000 0.500000 0.885791 0.500000 0.896945 0.869324 0.892283 +0.431808 +0.552078 0.567913 0.321713 0.838579 0.592779 0.628701 0.373396 0.663623 0 0.500000 0.500000 0.500000 0 1 0.500000 0.500000 0.899681 0.909786 0.500000 0.887789 0.500000 0.936033 0.885374 0.862282 0.500000 0.500000 0.500000 0.500000 0.847898 0.898313 0.871447 0.897372 +0.521821 +0.295134 0.511200 0.730952 0.511337 0.648515 0.596853 0.309976 0.374679 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.894176 0.882922 0.887638 0.909649 0.892519 0.500000 0.500000 0.876725 0.871703 0.902689 0.500000 0.893932 0.500000 0.500000 0.887197 0.500000 +0.622296 +0.657235 0.744215 0.221386 0.228307 0.553123 0.543090 0.714128 0.151891 0 0 0.500000 0 1 1 0.500000 1 0.500000 0.856119 0.500000 0.896846 0.911230 0.869338 0.500000 0.878663 0.500000 0.500000 0.500000 0.877035 0.500000 0.867601 0.500000 0.890521 +0.381360 +0.762986 0.504296 0.710650 0.898862 0.173837 0.285343 0.755324 0.537644 0.500000 0.500000 1 0 0.500000 1 0 0 0.876935 0.862858 0.889061 0.868952 0.892732 0.874847 0.500000 0.877560 0.500000 0.500000 0.874247 0.500000 0.880613 0.500000 0.500000 0.885064 +0.564175 +0.234294 0.371719 0.480141 0.336246 0.294266 0.335952 0.140726 0.576317 1 0 0.500000 1 1 1 0 0.500000 0.883906 0.908483 0.841017 0.919664 0.884712 0.500000 0.500000 0.895402 0.500000 0.888890 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.524797 +0.514326 0.477070 0.716326 0.292048 0.644185 0.617686 0.848338 0.623511 0 1 1 0.500000 0.500000 0.500000 0 0.500000 0.871049 0.892135 0.864056 0.875833 0.500000 0.886092 0.500000 0.875552 0.858485 0.891756 0.915521 0.846453 0.858149 0.896367 0.500000 0.500000 +0.623008 +0.119542 0.537105 0.118818 0.366067 0.695267 0.750152 0.798308 0.570700 1 1 0.500000 0.500000 1 1 1 1 0.866760 0.500000 0.904678 0.865570 0.831962 0.500000 0.500000 0.500000 0.500000 0.500000 0.907945 0.880719 0.500000 0.500000 0.500000 0.885111 +0.466445 +0.873496 0.247111 0.588206 0.584693 0.731043 0.433666 0.831993 0.303768 1 1 0.500000 0 0 0.500000 0 0 0.898126 0.500000 0.887950 0.500000 0.887041 0.934946 0.870209 0.500000 0.500000 0.882727 0.500000 0.500000 0.881405 0.860648 0.500000 0.500000 +0.402507 +0.515832 0.186822 0.116474 0.183852 0.608093 0.422677 0.137511 0.146608 0 1 0.500000 0 1 0.500000 1 1 0.500000 0.500000 0.892536 0.500000 0.500000 0.868464 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.897534 0.881117 0.894813 +0.199252 +0.420043 0.660021 0.372325 0.266055 0.578601 0.744871 0.845008 0.654583 0 1 0.500000 0.500000 0.500000 0 0.500000 1 0.500000 0.896599 0.837914 0.876658 0.886473 0.862848 0.873282 0.886683 0.500000 0.888471 0.867042 0.500000 0.500000 0.892001 0.500000 0.908176 +0.566746 +0.480603 0.888203 0.221120 0.562743 0.627195 0.662836 0.488775 0.647783 0 1 0 0.500000 0.500000 0 0 0.500000 0.869730 0.901244 0.500000 0.904393 0.877968 0.500000 0.903031 0.874443 0.500000 0.891422 0.883466 0.500000 0.890896 0.500000 0.858878 0.500000 +0.529965 +0.310174 0.491638 0.757871 0.133120 0.752692 0.301803 0.601643 0.821252 0.500000 0.500000 1 0.500000 0.500000 0.500000 0 0.500000 0.894417 0.873222 0.500000 0.500000 0.889271 0.893028 0.500000 0.900333 0.882889 0.500000 0.841140 0.500000 0.888696 0.500000 0.900276 0.500000 +0.540881 +0.432587 0.283976 0.187103 0.844334 0.519828 0.147357 0.832011 0.615921 1 0.500000 0 1 0.500000 1 0.500000 0 0.909064 0.500000 0.894794 0.883574 0.500000 0.857988 0.500000 0.880853 0.500000 0.500000 0.883805 0.500000 0.500000 0.871237 0.500000 0.901249 +0.481038 +0.150910 0.537216 0.392006 0.641203 0.891018 0.340407 0.613766 0.563026 0.500000 1 1 1 1 0.500000 0 0 0.500000 0.500000 0.500000 0.889693 0.898580 0.500000 0.500000 0.500000 0.894736 0.905999 0.500000 0.500000 0.500000 0.890493 0.500000 0.500000 +0.174426 +0.685758 0.143411 0.113299 0.420568 0.679569 0.116244 0.312605 0.546106 0 1 0 0 0 0 1 0.500000 0.866617 0.878472 0.892813 0.500000 0.883676 0.861738 0.500000 0.888292 0.887999 0.500000 0.844700 0.500000 0.500000 0.864941 0.873232 0.500000 +0.528261 +0.439351 0.376559 0.230629 0.384085 0.309102 0.870258 0.227848 0.844694 0 0.500000 1 1 1 0 1 0 0.899017 0.880231 0.895692 0.876399 0.500000 0.500000 0.877388 0.914289 0.886468 0.500000 0.884229 0.895841 0.500000 0.835003 0.883067 0.867080 +0.716579 +0.717609 0.252756 0.265985 0.207695 0.523772 0.830513 0.224886 0.659982 0.500000 0.500000 1 0 0.500000 1 0 1 0.500000 0.844896 0.881754 0.872282 0.500000 0.500000 0.500000 0.875185 0.500000 0.500000 0.892415 0.500000 0.500000 0.896703 0.902580 0.500000 +0.327878 +0.333745 0.650253 0.205189 0.807299 0.470292 0.395144 0.587575 0.379699 0 0 1 0.500000 0.500000 0 1 0.500000 0.880908 0.893888 0.908899 0.895567 0.876066 0.897285 0.869248 0.873921 0.500000 0.500000 0.888894 0.890230 0.500000 0.871846 0.875574 0.874367 +0.850752 +0.495797 0.252783 0.721079 0.172230 0.466531 0.385304 0.800421 0.873916 0 0.500000 0 0 0.500000 1 1 1 0.875346 0.862997 0.878352 0.879167 0.500000 0.896232 0.863947 0.894115 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.907658 0.500000 +0.509863 +0.230738 0.611792 0.191842 0.492361 0.110457 0.643182 0.553501 0.485210 1 1 1 0 0.500000 0.500000 1 0 0.500000 0.875572 0.889111 0.895507 0.880504 0.500000 0.857094 0.500000 0.500000 0.886689 0.870328 0.905675 0.500000 0.500000 0.500000 0.898459 +0.570745 +0.337517 0.847094 0.503638 0.844408 0.170407 0.223140 0.108687 0.503961 1 1 1 1 1 0.500000 0.500000 0 0.500000 0.877343 0.876732 0.500000 0.500000 0.893034 0.875062 0.874939 0.896290 0.500000 0.892836 0.868627 0.889561 0.500000 0.500000 0.500000 +0.383701 +0.813375 0.201449 0.356513 0.121167 0.648091 0.657545 0.361179 0.132508 1 1 1 0 0 0 1 0.500000 0.837088 0.855982 0.890181 0.500000 0.500000 0.889140 0.500000 0.882462 0.867244 0.500000 0.500000 0.500000 0.500000 0.900945 0.500000 0.888953 +0.389950 +0.523512 0.468207 0.555919 0.334107 0.344165 0.578088 0.126404 0.675173 0.500000 0 1 1 0 1 0 0.500000 0.500000 0.915167 0.866672 0.875748 0.889718 0.904250 0.500000 0.500000 0.917123 0.500000 0.500000 0.500000 0.848815 0.500000 0.891126 0.500000 +0.458470 +0.892240 0.878571 0.750009 0.797510 0.754500 0.285772 0.768889 0.516976 0 1 0 0.500000 1 1 0.500000 0 0.500000 0.921170 0.868607 0.878887 0.500000 0.878819 0.500000 0.500000 0.500000 0.872824 0.871631 0.500000 0.500000 0.889761 0.500000 0.500000 +0.273469 +0.455722 0.327572 0.104434 0.230133 0.837443 0.709724 0.524181 0.502835 0 0.500000 0.500000 0 0.500000 0.500000 1 0 0.924772 0.883249 0.893184 0.896368 0.884705 0.846503 0.500000 0.500000 0.879870 0.860312 0.866107 0.861438 0.500000 0.500000 0.855017 0.855404 +0.670324 +0.489648 0.122394 0.477048 0.337361 0.621885 0.225516 0.844458 0.206275 1 1 0 0 0 0 1 0.500000 0.900677 0.870682 0.926969 0.921002 0.880844 0.500000 0.500000 0.879750 0.500000 0.906195 0.500000 0.500000 0.875214 0.500000 0.500000 0.863237 +0.612434 +0.797038 0.818537 0.547674 0.154246 0.615525 0.526309 0.274264 0.148970 1 1 1 1 1 0 1 0.500000 0.849556 0.866453 0.500000 0.500000 0.500000 0.871977 0.859388 0.903371 0.500000 0.500000 0.500000 0.500000 0.500000 0.864974 0.500000 0.892539 +0.392304 +0.239442 0.500452 0.895357 0.460943 0.868779 0.164249 0.740312 0.224233 1 0 0.500000 1 1 0 1 0.500000 0.877870 0.885635 0.500000 0.500000 0.876821 0.851060 0.500000 0.855679 0.500000 0.500000 0.500000 0.896605 0.500000 0.500000 0.500000 0.500000 +0.312545 +0.486511 0.185050 0.730359 0.135628 0.500690 0.896234 0.809623 0.336390 0 0 0.500000 1 1 1 0 1 0.858779 0.883207 0.905640 0.873849 0.500000 0.862829 0.879841 0.866208 0.500000 0.500000 0.865660 0.863873 0.892257 0.887021 0.500000 0.862054 +0.623202 +0.640556 0.426665 0.760734 0.257960 0.525173 0.382237 0.449529 0.234989 1 1 0.500000 0 0.500000 1 0 0.500000 0.870869 0.881320 0.500000 0.500000 0.500000 0.859935 0.856386 0.876532 0.902687 0.872686 0.878325 0.888057 0.866763 0.500000 0.905828 0.500000 +0.626116 +0.346149 0.324112 0.358174 0.823914 0.516825 0.877794 0.485275 0.221316 1 0.500000 0.500000 1 0.500000 1 0.500000 1 0.859784 0.500000 0.500000 0.500000 0.500000 0.861869 0.854846 0.866150 0.882218 0.500000 0.897391 0.858521 0.500000 0.891602 0.500000 0.871354 +0.430236 +0.288010 0.776071 0.423338 0.841332 0.466907 0.302574 0.756564 0.564433 0 1 1 1 0 0 1 1 0.895335 0.888075 0.500000 0.883610 0.874662 0.880707 0.878251 0.860657 0.500000 0.835300 0.887260 0.500000 0.500000 0.500000 0.500000 0.500000 +0.523941 +0.506449 0.892957 0.130285 0.295826 0.152442 0.688087 0.882815 0.866903 1 0.500000 0 0.500000 0 1 0 1 0.500000 0.500000 0.905475 0.500000 0.500000 0.873338 0.908763 0.893795 0.865709 0.500000 0.500000 0.882638 0.500000 0.853063 0.884237 0.862343 +0.470596 +0.670721 0.204684 0.330176 0.672910 0.197135 0.647563 0.585817 0.428519 1 0.500000 0.500000 0 1 0.500000 0.500000 0.500000 0.864204 0.852957 0.500000 0.500000 0.500000 0.886438 0.906469 0.500000 0.500000 0.500000 0.887388 0.500000 0.500000 0.500000 0.500000 0.886907 +0.314547 +0.622382 0.576008 0.360428 0.310171 0.450252 0.386047 0.492177 0.210795 0.500000 0 1 0 0 0.500000 0.500000 0 0.855272 0.919227 0.500000 0.882538 0.860042 0.500000 0.884458 0.906550 0.887355 0.914712 0.890787 0.859994 0.500000 0.858668 0.902277 0.500000 +0.706259 +0.237231 0.142986 0.160762 0.520293 0.762162 0.259919 0.655692 0.420218 0.500000 0.500000 1 1 0.500000 0.500000 0 1 0.872656 0.848498 0.500000 0.500000 0.880237 0.876403 0.879265 0.821020 0.870158 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.891543 +0.445063 +0.750615 0.578333 0.244677 0.490675 0.571900 0.119022 0.602006 0.520248 1 0 0.500000 0.500000 1 0 1 0 0.903462 0.907983 0.877657 0.843699 0.902466 0.500000 0.889449 0.500000 0.849975 0.500000 0.500000 0.877152 0.852996 0.500000 0.500000 0.883133 +0.597899 +0.246420 0.176460 0.367173 0.884904 0.775896 0.677968 0.415372 0.564436 0 0 1 0 0.500000 0.500000 0 0.500000 0.500000 0.907035 0.500000 0.870156 0.892197 0.878432 0.892201 0.888023 0.500000 0.500000 0.897853 0.890979 0.500000 0.500000 0.500000 0.897504 +0.536496 +0.162029 0.220226 0.744861 0.680592 0.508730 0.822870 0.572616 0.154100 0.500000 0 0 0 1 0.500000 0.500000 1 0.862591 0.878050 0.889612 0.885511 0.500000 0.865240 0.500000 0.886113 0.907284 0.884786 0.902094 0.500000 0.898881 0.891304 0.843300 0.500000 +0.580266 +0.669124 0.563011 0.333837 0.604307 0.790244 0.235948 0.175847 0.467515 0 0 1 1 0 0.500000 1 0.500000 0.500000 0.500000 0.902232 0.500000 0.854308 0.874941 0.883154 0.870353 0.500000 0.500000 0.500000 0.884333 0.887743 0.500000 0.887675 0.500000 +0.422806 +0.886681 0.242648 0.786332 0.875531 0.854918 0.814134 0.151156 0.673659 1 0.500000 1 0 1 1 1 0.500000 0.500000 0.883482 0.871942 0.874612 0.884764 0.500000 0.860117 0.883906 0.867260 0.500000 0.500000 0.866015 0.902936 0.500000 0.500000 0.500000 +0.482265 +0.795803 0.853639 0.109093 0.131335 0.353186 0.196862 0.861767 0.723772 1 0 0.500000 1 0.500000 1 0.500000 0 0.500000 0.858302 0.500000 0.892696 0.500000 0.894081 0.892389 0.500000 0.500000 0.500000 0.500000 0.500000 0.874231 0.900703 0.919832 0.500000 +0.303844 +0.136056 0.494501 0.874189 0.687257 0.530051 0.771425 0.738412 0.293442 1 1 1 0.500000 1 1 0 0 0.890714 0.873980 0.868090 0.888600 0.893606 0.500000 0.869246 0.500000 0.500000 0.500000 0.500000 0.500000 0.849859 0.500000 0.500000 0.876018 +0.526072 +0.790398 0.413779 0.176815 0.735087 0.404644 0.253798 0.182645 0.318375 1 1 0.500000 0.500000 0 1 1 0.500000 0.893563 0.899909 0.500000 0.877369 0.886416 0.883432 0.899744 0.500000 0.865747 0.874274 0.500000 0.500000 0.500000 0.899679 0.500000 0.500000 +0.475826 +0.333974 0.509336 0.604838 0.119925 0.579622 0.300491 0.159676 0.677784 0.500000 0.500000 0.500000 0 0.500000 0 1 1 0.879236 0.881893 0.870153 0.500000 0.905960 0.908672 0.500000 0.856197 0.500000 0.911926 0.954443 0.500000 0.893023 0.847894 0.876776 0.896847 +0.775715 +0.619295 0.698969 0.573563 0.867876 0.186158 0.162571 0.526940 0.473303 0.500000 0.500000 0.500000 1 0 1 0 0.500000 0.861121 0.912863 0.863855 0.895744 0.500000 0.912462 0.500000 0.890741 0.904964 0.841019 0.893415 0.896403 0.500000 0.500000 0.896689 0.500000 +0.660595 +0.452289 0.219970 0.433396 0.281097 0.595028 0.835155 0.642305 0.215527 0 1 0.500000 0.500000 1 0 1 1 0.884181 0.876088 0.926541 0.843973 0.886149 0.846182 0.866789 0.890897 0.500000 0.500000 0.500000 0.883432 0.876130 0.500000 0.878057 0.860093 +0.793703 +0.139604 0.123777 0.523268 0.358136 0.192019 0.261041 0.308564 0.640544 0 0.500000 0.500000 1 0.500000 0.500000 0 1 0.869866 0.910978 0.868496 0.882442 0.500000 0.873872 0.860586 0.901379 0.500000 0.867392 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.539804 +0.732022 0.896284 0.843826 0.791383 0.177776 0.876541 0.231804 0.121411 1 0 1 0.500000 1 1 1 0.500000 0.500000 0.862327 0.895448 0.882568 0.879175 0.500000 0.885331 0.923328 0.862963 0.500000 0.500000 0.500000 0.886214 0.846217 0.500000 0.500000 +0.478265 +0.368413 0.125586 0.521186 0.578335 0.278669 0.585596 0.716935 0.128275 0 0 0 0.500000 0.500000 1 1 0 0.500000 0.906465 0.880328 0.895120 0.881922 0.904078 0.500000 0.827761 0.861238 0.865914 0.500000 0.855674 0.500000 0.500000 0.500000 0.500000 +0.462243 +0.596640 0.721392 0.636678 0.843722 0.634426 0.596640 0.726551 0.146388 0.500000 0.500000 0.500000 0 1 1 0.500000 1 0.500000 0.899084 0.883629 0.868345 0.885451 0.896348 0.877377 0.858418 0.912617 0.865285 0.858464 0.881394 0.500000 0.500000 0.500000 0.878644 +0.667484 +0.895861 0.133194 0.397041 0.473506 0.816483 0.423787 0.390591 0.870278 0.500000 0 1 0 0.500000 1 0.500000 1 0.500000 0.898587 0.875352 0.896668 0.915528 0.868382 0.500000 0.813989 0.896040 0.500000 0.500000 0.500000 0.876772 0.500000 0.899711 0.500000 +0.506109 +0.673068 0.450731 0.439550 0.517392 0.808408 0.721244 0.540536 0.181572 1 0 1 0.500000 0 0 0 0.500000 0.500000 0.874356 0.500000 0.875119 0.862928 0.873788 0.500000 0.890965 0.872103 0.500000 0.870337 0.886140 0.500000 0.500000 0.500000 0.500000 +0.409787 +0.437833 0.460154 0.401493 0.884868 0.180190 0.652916 0.165152 0.717915 0.500000 1 1 0.500000 0.500000 0 0 0 0.882988 0.889601 0.893948 0.500000 0.918057 0.881525 0.868840 0.500000 0.500000 0.865298 0.500000 0.500000 0.500000 0.500000 0.886271 0.500000 +0.472318 +0.367119 0.761323 0.559362 0.600623 0.463684 0.542070 0.368018 0.681944 1 0.500000 0 1 0.500000 0 0.500000 0.500000 0.868716 0.866417 0.500000 0.897611 0.887350 0.500000 0.878987 0.903636 0.500000 0.901815 0.500000 0.895485 0.500000 0.500000 0.879109 0.848434 +0.526718 +0.532799 0.549239 0.855649 0.295273 0.448310 0.545247 0.172651 0.350910 0 0 1 1 0 1 0 0 0.898078 0.906117 0.877597 0.852589 0.892718 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.863550 0.892820 0.862152 0.500000 +0.427147 +0.884190 0.779230 0.716338 0.486035 0.192417 0.553444 0.333968 0.405364 0 0.500000 0 0 0 0.500000 0 0 0.876115 0.859159 0.500000 0.500000 0.881097 0.500000 0.500000 0.888318 0.870779 0.500000 0.881802 0.863231 0.874325 0.500000 0.500000 0.500000 +0.332976 +0.138704 0.204290 0.100484 0.233495 0.546641 0.388491 0.763860 0.802450 0.500000 0.500000 0 0 0.500000 0.500000 0.500000 0 0.500000 0.890464 0.841600 0.894022 0.881176 0.500000 0.894857 0.875390 0.500000 0.882628 0.500000 0.891533 0.500000 0.500000 0.500000 0.500000 +0.530063 +0.765429 0.773006 0.117946 0.110490 0.401183 0.482105 0.531230 0.582702 1 1 1 0 1 0.500000 0.500000 0.500000 0.500000 0.880642 0.873828 0.860835 0.500000 0.500000 0.890154 0.500000 0.887356 0.500000 0.906999 0.857666 0.500000 0.500000 0.898220 0.889981 +0.426400 +0.715590 0.726152 0.645400 0.242700 0.863855 0.618489 0.746064 0.101526 0 1 0.500000 0.500000 0.500000 0 0.500000 1 0.910617 0.894187 0.867393 0.895868 0.500000 0.500000 0.500000 0.859684 0.500000 0.500000 0.867307 0.915214 0.902124 0.500000 0.500000 0.500000 +0.409399 +0.858489 0.821988 0.146123 0.885183 0.671786 0.508387 0.658016 0.279711 0.500000 0 1 0 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.879340 0.500000 0.500000 0.907534 0.500000 0.879542 0.500000 0.881048 0.500000 0.500000 0.860822 0.500000 0.500000 +0.123526 +0.215709 0.823194 0.419187 0.668236 0.838313 0.128755 0.189409 0.396269 0 1 0 0.500000 1 0.500000 0.500000 0 0.877806 0.861394 0.901520 0.500000 0.872107 0.915879 0.855679 0.896876 0.921010 0.864568 0.500000 0.500000 0.500000 0.888410 0.895838 0.881004 +0.700173 +0.772185 0.707691 0.760288 0.761744 0.432315 0.519437 0.781691 0.476934 1 1 0.500000 0.500000 1 0.500000 0 0.500000 0.869651 0.888627 0.862356 0.886819 0.885082 0.854798 0.908887 0.851905 0.500000 0.500000 0.884206 0.500000 0.500000 0.878940 0.876286 0.500000 +0.707586 +0.214043 0.824095 0.362435 0.439744 0.580713 0.235934 0.743292 0.701063 0.500000 0.500000 0 0 1 0.500000 1 0 0.868555 0.876777 0.500000 0.500000 0.892161 0.866849 0.500000 0.864625 0.876994 0.880234 0.859268 0.861874 0.500000 0.876318 0.850647 0.872990 +0.599791 +0.188720 0.821952 0.349415 0.823294 0.504085 0.354649 0.778981 0.530676 1 0.500000 0 0 0 0 0.500000 1 0.500000 0.864783 0.904795 0.500000 0.500000 0.886296 0.500000 0.500000 0.878874 0.500000 0.906748 0.898483 0.878541 0.861246 0.882578 0.500000 +0.467567 +0.419612 0.612728 0.717742 0.883891 0.553398 0.368462 0.136460 0.888340 0 0 0 0 1 1 1 0.500000 0.886818 0.861640 0.500000 0.500000 0.871536 0.919891 0.500000 0.893880 0.881756 0.500000 0.500000 0.500000 0.500000 0.895158 0.910148 0.891725 +0.395804 +0.604066 0.745871 0.852856 0.556097 0.124582 0.448705 0.785152 0.242572 0 1 1 0.500000 1 0.500000 0 1 0.900003 0.865280 0.892817 0.500000 0.918669 0.897264 0.898900 0.898461 0.500000 0.500000 0.884958 0.500000 0.500000 0.888710 0.500000 0.851405 +0.602545 +0.373416 0.201729 0.255735 0.734068 0.876359 0.374317 0.137714 0.360176 1 0 0 0.500000 0 0.500000 0 0 0.904985 0.903100 0.859689 0.871728 0.500000 0.895244 0.897508 0.872544 0.500000 0.911724 0.500000 0.500000 0.872859 0.899979 0.865442 0.500000 +0.724487 +0.152431 0.499653 0.273797 0.308682 0.216546 0.481532 0.506812 0.587420 0 1 1 1 1 0.500000 0 0 0.500000 0.500000 0.866994 0.500000 0.500000 0.890571 0.860074 0.858877 0.877825 0.892574 0.500000 0.868079 0.500000 0.873514 0.890017 0.500000 +0.418028 +0.592728 0.580128 0.815024 0.707685 0.669233 0.798502 0.617755 0.400342 1 0 1 1 0.500000 0.500000 0.500000 1 0.899654 0.891059 0.896361 0.500000 0.920147 0.893670 0.884028 0.906565 0.895933 0.902789 0.876052 0.883338 0.500000 0.872264 0.863192 0.869240 +0.818931 +0.249555 0.862958 0.739160 0.869979 0.338914 0.325062 0.316166 0.394859 0.500000 0 0 0 1 1 1 1 0.863738 0.876934 0.892115 0.896312 0.875526 0.909581 0.872877 0.883178 0.500000 0.884534 0.500000 0.500000 0.500000 0.887383 0.877664 0.878057 +0.676517 +0.770632 0.212766 0.163082 0.321595 0.452572 0.174120 0.231109 0.449759 0 0.500000 1 1 1 0 1 1 0.880986 0.891062 0.500000 0.500000 0.500000 0.500000 0.888286 0.500000 0.500000 0.500000 0.881272 0.869198 0.900712 0.500000 0.888909 0.859457 +0.334562 +0.584115 0.616872 0.763030 0.447789 0.590063 0.595502 0.802530 0.320469 1 0 0 1 1 0 0 0 0.889478 0.867195 0.841307 0.500000 0.895048 0.500000 0.500000 0.875146 0.888091 0.845833 0.902370 0.856745 0.886296 0.877014 0.500000 0.873640 +0.678243 +0.184419 0.527964 0.883570 0.761744 0.428677 0.180673 0.776337 0.896352 0.500000 0.500000 0 0 0 0.500000 0 1 0.863377 0.900835 0.898778 0.500000 0.897879 0.500000 0.882659 0.857192 0.500000 0.500000 0.912917 0.869938 0.500000 0.887242 0.862053 0.500000 +0.501582 +0.153012 0.669179 0.684901 0.138209 0.670903 0.873504 0.380591 0.791491 0.500000 1 0.500000 1 0 0.500000 1 0 0.500000 0.874567 0.890503 0.500000 0.879025 0.900379 0.911862 0.881887 0.500000 0.869577 0.902760 0.856448 0.870371 0.500000 0.500000 0.500000 +0.584051 +0.712925 0.731815 0.620819 0.700400 0.629230 0.463312 0.690103 0.363180 0 0.500000 0 0 1 0.500000 0 0 0.885521 0.878745 0.500000 0.868407 0.890211 0.885340 0.500000 0.872891 0.500000 0.893488 0.500000 0.875645 0.852283 0.500000 0.500000 0.500000 +0.456972 +0.271721 0.609674 0.594090 0.270950 0.452225 0.737896 0.418807 0.689250 0.500000 0.500000 0 0.500000 0 0 0 1 0.873783 0.910853 0.879318 0.874028 0.897153 0.880826 0.877895 0.872166 0.915515 0.500000 0.890330 0.877101 0.885702 0.500000 0.862191 0.883651 +0.831295 +0.659301 0.278287 0.563879 0.510087 0.431370 0.642746 0.425289 0.835128 0 0 1 0.500000 0.500000 1 1 1 0.879322 0.896989 0.848662 0.857904 0.500000 0.900467 0.922330 0.874943 0.852724 0.500000 0.885714 0.500000 0.500000 0.897832 0.500000 0.500000 +0.619209 +0.170118 0.181547 0.265574 0.508155 0.766652 0.512993 0.476186 0.249893 0 1 0.500000 1 1 1 1 0 0.881666 0.875280 0.913303 0.889328 0.889570 0.906532 0.868093 0.880171 0.500000 0.887104 0.896617 0.890363 0.877882 0.500000 0.877567 0.500000 +0.831987 +0.529931 0.351257 0.583616 0.229740 0.639751 0.502017 0.792728 0.372422 0 0 1 1 0 0.500000 1 1 0.894673 0.920484 0.889090 0.896898 0.891108 0.857427 0.500000 0.881122 0.901376 0.500000 0.877443 0.905563 0.500000 0.918446 0.500000 0.500000 +0.660266 +0.537751 0.573034 0.777997 0.791060 0.344353 0.545889 0.561533 0.285384 1 1 0 0 0.500000 1 0 0.500000 0.900296 0.871333 0.500000 0.876968 0.856146 0.881525 0.500000 0.867692 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.871517 0.850052 +0.393878 +0.703691 0.735959 0.655388 0.110144 0.188845 0.523132 0.478164 0.708807 0 0 0 0.500000 0 1 0.500000 1 0.897502 0.500000 0.892872 0.500000 0.842286 0.878612 0.500000 0.896982 0.901322 0.500000 0.500000 0.500000 0.859604 0.884339 0.500000 0.900264 +0.361927 +0.128609 0.125273 0.871057 0.862681 0.885044 0.735659 0.415238 0.700731 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0 0.894004 0.500000 0.908928 0.915722 0.500000 0.500000 0.872344 0.500000 0.500000 0.897026 0.500000 0.500000 0.869330 0.500000 0.500000 0.500000 +0.325955 +0.436860 0.898202 0.281305 0.895149 0.175228 0.463465 0.861366 0.377636 1 1 0 1 1 1 1 0.500000 0.873807 0.892563 0.500000 0.500000 0.877883 0.500000 0.500000 0.885633 0.892955 0.902783 0.870993 0.881808 0.900846 0.500000 0.500000 0.874871 +0.498075 +0.277742 0.209512 0.674361 0.584653 0.855677 0.764392 0.128561 0.132744 1 0.500000 0 0 0.500000 1 1 0 0.500000 0.500000 0.881584 0.896797 0.878231 0.500000 0.896272 0.500000 0.500000 0.878500 0.500000 0.864263 0.500000 0.500000 0.901057 0.500000 +0.330619 +0.773966 0.241187 0.222909 0.224091 0.891122 0.493726 0.656138 0.707662 0 1 1 1 1 0.500000 1 1 0.871928 0.882926 0.859623 0.887674 0.861631 0.904393 0.895412 0.858831 0.866952 0.886305 0.871955 0.500000 0.895800 0.500000 0.500000 0.500000 +0.751320 +0.828248 0.559379 0.890286 0.835069 0.801771 0.359781 0.636721 0.771055 0 0 1 0 0.500000 0.500000 0 0 0.500000 0.500000 0.880635 0.859476 0.879630 0.500000 0.870555 0.500000 0.500000 0.880605 0.866808 0.500000 0.500000 0.863435 0.906299 0.500000 +0.342261 +0.762594 0.324449 0.409100 0.747544 0.165726 0.751368 0.436521 0.811543 0.500000 0 1 0 0.500000 1 1 1 0.869458 0.900038 0.500000 0.500000 0.899712 0.844439 0.889227 0.867514 0.500000 0.875785 0.500000 0.500000 0.895948 0.892165 0.882143 0.500000 +0.513226 +0.828340 0.502226 0.313229 0.636897 0.520337 0.709468 0.224542 0.483245 0.500000 1 1 1 1 0.500000 0.500000 1 0.848552 0.879453 0.874395 0.500000 0.879069 0.905740 0.876892 0.862285 0.500000 0.900269 0.500000 0.896824 0.500000 0.500000 0.872001 0.884583 +0.687757 +0.277107 0.743887 0.302205 0.159187 0.461974 0.602377 0.353450 0.633024 0 0 0 0.500000 0 0 0 0.500000 0.875258 0.500000 0.500000 0.878190 0.886659 0.906370 0.878807 0.876641 0.500000 0.878239 0.910159 0.870984 0.883811 0.500000 0.500000 0.500000 +0.528612 +0.661505 0.509711 0.508703 0.378144 0.469342 0.437271 0.616005 0.595008 0.500000 0.500000 0 0 0 0.500000 0.500000 0 0.500000 0.500000 0.876192 0.500000 0.886932 0.875981 0.500000 0.885571 0.500000 0.500000 0.924236 0.500000 0.500000 0.896028 0.880809 0.500000 +0.260276 +0.621383 0.585985 0.849380 0.531750 0.517675 0.759778 0.196735 0.318187 1 1 0 0.500000 1 0 0.500000 0 0.500000 0.884720 0.887140 0.870411 0.864836 0.914742 0.882974 0.882311 0.500000 0.500000 0.897712 0.882627 0.500000 0.909132 0.863827 0.878056 +0.765709 +0.384735 0.842996 0.442101 0.190305 0.264159 0.721071 0.832413 0.170253 1 1 1 0.500000 1 0.500000 1 0 0.500000 0.864920 0.850819 0.883873 0.876340 0.500000 0.500000 0.500000 0.902214 0.877785 0.918181 0.500000 0.887639 0.899844 0.889013 0.500000 +0.575984 +0.336463 0.737304 0.861267 0.319554 0.540485 0.138703 0.179333 0.652785 0 0.500000 1 0 0.500000 0.500000 1 0.500000 0.910755 0.500000 0.500000 0.887669 0.879147 0.873106 0.500000 0.890792 0.500000 0.885115 0.500000 0.500000 0.887663 0.500000 0.500000 0.887547 +0.399546 +0.885755 0.682762 0.174364 0.332684 0.416237 0.689814 0.310286 0.778557 0.500000 0 0 0.500000 1 1 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.925856 0.872708 0.889841 0.500000 0.903082 0.899720 0.500000 0.500000 0.500000 0.500000 0.500000 +0.169884 +0.375880 0.812827 0.578186 0.167331 0.529676 0.872181 0.540103 0.113103 0 0.500000 0.500000 0 0.500000 0.500000 0 0.500000 0.855437 0.873171 0.845988 0.500000 0.881737 0.877366 0.887970 0.864544 0.856291 0.500000 0.899994 0.900710 0.500000 0.893325 0.855621 0.500000 +0.605636 +0.615470 0.411613 0.579427 0.234785 0.639433 0.747234 0.553771 0.224429 0 0.500000 0.500000 1 0 0 0.500000 1 0.894392 0.907583 0.885894 0.858646 0.888255 0.500000 0.500000 0.922553 0.500000 0.901941 0.500000 0.500000 0.500000 0.500000 0.872111 0.892875 +0.500852 +0.402974 0.175709 0.541305 0.316488 0.205559 0.636863 0.761365 0.470178 1 0.500000 0.500000 1 1 1 0.500000 1 0.894304 0.500000 0.883051 0.500000 0.883175 0.500000 0.500000 0.500000 0.500000 0.500000 0.860728 0.890991 0.500000 0.500000 0.500000 0.880803 +0.279536 +0.360090 0.228666 0.182176 0.436031 0.580807 0.231399 0.521092 0.588593 1 0.500000 1 0 0.500000 0 0 1 0.878281 0.876101 0.912171 0.863425 0.500000 0.920466 0.859696 0.858410 0.869812 0.500000 0.500000 0.898076 0.887678 0.886723 0.862678 0.500000 +0.758338 +0.669285 0.866534 0.831683 0.693353 0.591056 0.471798 0.111671 0.246833 1 0.500000 0.500000 0 1 1 0 1 0.500000 0.500000 0.906061 0.882381 0.886439 0.888169 0.500000 0.500000 0.869270 0.910742 0.500000 0.909014 0.843180 0.500000 0.894160 0.500000 +0.464848 +0.299338 0.773052 0.885537 0.221060 0.357731 0.586283 0.263234 0.374195 0.500000 0.500000 0.500000 1 1 0 0.500000 0 0.877309 0.500000 0.903112 0.500000 0.882773 0.910494 0.868965 0.876966 0.882136 0.904883 0.500000 0.903306 0.500000 0.873148 0.500000 0.500000 +0.497289 +0.541148 0.878538 0.183918 0.111448 0.514820 0.771350 0.275286 0.536278 0.500000 1 0.500000 0 1 0 0.500000 0.500000 0.875936 0.883987 0.500000 0.870243 0.500000 0.500000 0.864052 0.500000 0.500000 0.500000 0.849520 0.500000 0.500000 0.500000 0.897729 0.875479 +0.319200 +0.178214 0.234900 0.165446 0.849823 0.783205 0.319615 0.764619 0.752738 0 0.500000 0.500000 1 1 0.500000 0.500000 0 0.890648 0.500000 0.500000 0.500000 0.500000 0.500000 0.862503 0.858539 0.893198 0.500000 0.890607 0.500000 0.899977 0.842644 0.500000 0.864340 +0.395102 +0.393264 0.195478 0.797634 0.439307 0.437468 0.728068 0.839878 0.825243 0.500000 0 0.500000 0.500000 1 0 0.500000 0 0.850122 0.855966 0.876820 0.500000 0.500000 0.500000 0.500000 0.879768 0.907094 0.500000 0.886574 0.500000 0.500000 0.500000 0.868941 0.500000 +0.269050 +0.646818 0.868422 0.573846 0.833584 0.638877 0.209173 0.568312 0.614073 0 0 0.500000 0.500000 1 0 0 1 0.864175 0.874460 0.879855 0.876577 0.875113 0.866886 0.874512 0.500000 0.868225 0.500000 0.852723 0.863980 0.500000 0.500000 0.500000 0.500000 +0.508974 +0.245568 0.264203 0.667550 0.506646 0.205884 0.496927 0.846648 0.220965 0 0.500000 0.500000 1 0 0.500000 0.500000 0.500000 0.869454 0.843748 0.890640 0.902734 0.879492 0.890118 0.892439 0.891136 0.876498 0.899876 0.889525 0.866120 0.855042 0.500000 0.882564 0.897857 +0.939075 +0.425576 0.850743 0.235231 0.130401 0.657158 0.258762 0.413219 0.374315 0 0 1 0.500000 1 0 1 0 0.889708 0.500000 0.903720 0.851593 0.893069 0.876001 0.895833 0.500000 0.841276 0.500000 0.500000 0.887419 0.500000 0.500000 0.901786 0.891042 +0.594368 +0.154103 0.608491 0.700799 0.132759 0.282836 0.223449 0.511056 0.723417 0 0 0 0 0.500000 1 0.500000 0 0.901034 0.871575 0.887175 0.500000 0.853720 0.905566 0.887107 0.893398 0.500000 0.843206 0.871630 0.500000 0.500000 0.856586 0.867399 0.889223 +0.602543 +0.539060 0.173152 0.762604 0.490762 0.439713 0.862882 0.264489 0.668270 0.500000 0.500000 0 0.500000 1 1 1 1 0.500000 0.875732 0.500000 0.854187 0.878538 0.860924 0.500000 0.883362 0.500000 0.500000 0.500000 0.852324 0.500000 0.500000 0.908991 0.868284 +0.371455 +0.490804 0.346478 0.261763 0.456473 0.143623 0.471849 0.169153 0.747823 1 0 1 0.500000 0.500000 0 0.500000 1 0.500000 0.886595 0.876072 0.863917 0.885355 0.500000 0.878559 0.875598 0.500000 0.500000 0.897279 0.865330 0.500000 0.500000 0.896363 0.500000 +0.559709 +0.797581 0.352586 0.511302 0.849548 0.146851 0.323458 0.562782 0.480747 0 1 1 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.926682 0.500000 0.913714 0.883313 0.895547 0.500000 0.876999 0.891051 0.907973 0.883962 0.500000 0.883715 0.872498 0.500000 +0.662878 +0.481356 0.747993 0.526925 0.228788 0.641432 0.743157 0.839731 0.753350 0 0.500000 0.500000 1 0.500000 1 0 1 0.500000 0.871321 0.892764 0.890232 0.865112 0.500000 0.864199 0.897983 0.846368 0.868043 0.500000 0.500000 0.500000 0.500000 0.893015 0.858220 +0.480170 +0.147748 0.204596 0.450404 0.539309 0.369720 0.482139 0.313850 0.676572 0 0 1 0 0.500000 0.500000 1 0.500000 0.862920 0.500000 0.500000 0.876674 0.500000 0.876077 0.500000 0.880585 0.500000 0.500000 0.500000 0.906072 0.500000 0.500000 0.500000 0.500000 +0.279798 +0.770161 0.294321 0.459169 0.653906 0.793576 0.236713 0.233746 0.763044 1 0.500000 0 0.500000 1 0.500000 0 0.500000 0.865433 0.880182 0.500000 0.500000 0.871090 0.500000 0.500000 0.838935 0.500000 0.865597 0.869516 0.500000 0.889553 0.500000 0.869140 0.873833 +0.446027 +0.533491 0.177001 0.652098 0.812143 0.287711 0.554146 0.139126 0.889934 0.500000 0 0 1 0.500000 1 1 0 0.853332 0.500000 0.500000 0.500000 0.893082 0.500000 0.862876 0.500000 0.903080 0.899166 0.500000 0.892989 0.500000 0.883731 0.882434 0.883262 +0.473940 +0.157403 0.870300 0.140455 0.823380 0.352596 0.673708 0.816497 0.664013 0 0 0 0 1 0 0 0 0.911973 0.897705 0.500000 0.905761 0.500000 0.873129 0.894542 0.500000 0.500000 0.893956 0.500000 0.500000 0.500000 0.500000 0.859301 0.890615 +0.350529 +0.677787 0.559720 0.213196 0.190659 0.606183 0.313808 0.767910 0.860294 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.930454 0.915102 0.897789 0.500000 0.866874 0.882147 0.860093 0.500000 0.500000 0.872131 0.879020 0.897366 0.890580 0.885710 0.500000 0.890357 +0.669584 +0.641265 0.345142 0.207246 0.187886 0.398914 0.749830 0.186355 0.274509 0 1 0 1 0.500000 0 1 1 0.906276 0.890761 0.500000 0.923180 0.881285 0.500000 0.500000 0.852987 0.500000 0.873786 0.500000 0.854338 0.874954 0.500000 0.500000 0.500000 +0.409010 +0.842483 0.603743 0.104027 0.587544 0.654500 0.381013 0.680760 0.133379 0 0.500000 1 1 1 0 0 0.500000 0.878858 0.891064 0.885597 0.874897 0.870405 0.884700 0.500000 0.882208 0.852406 0.851288 0.881630 0.868116 0.872772 0.500000 0.904175 0.500000 +0.824774 +0.631932 0.280146 0.619893 0.343839 0.694514 0.101606 0.685997 0.158383 0.500000 0.500000 0 1 0.500000 0 1 0 0.874578 0.891132 0.863393 0.881170 0.888205 0.500000 0.891695 0.500000 0.884838 0.500000 0.885040 0.871941 0.879876 0.907023 0.895412 0.872192 +0.738759 +0.665040 0.721771 0.605395 0.676669 0.172089 0.491873 0.705316 0.847013 1 0 0.500000 0.500000 1 0.500000 0 0 0.880385 0.500000 0.868164 0.888664 0.500000 0.883615 0.873646 0.848962 0.500000 0.849472 0.500000 0.877932 0.873825 0.865915 0.500000 0.500000 +0.538244 +0.590799 0.162543 0.858447 0.116074 0.658553 0.503058 0.697567 0.208427 1 0 0 0 0 1 0 0.500000 0.830792 0.902834 0.903821 0.900439 0.500000 0.500000 0.863769 0.500000 0.500000 0.500000 0.853122 0.500000 0.896135 0.856112 0.902496 0.868982 +0.537398 +0.451389 0.293771 0.803805 0.149331 0.411297 0.861422 0.518203 0.831970 1 0.500000 0 1 0 0.500000 1 1 0.500000 0.895673 0.500000 0.866578 0.872495 0.871833 0.500000 0.500000 0.500000 0.872864 0.500000 0.500000 0.884676 0.500000 0.500000 0.881143 +0.387529 +0.730206 0.775153 0.197921 0.259025 0.832463 0.206999 0.825810 0.392719 0.500000 0.500000 0 0.500000 1 0.500000 0 1 0.886568 0.862760 0.500000 0.855566 0.500000 0.901779 0.886921 0.500000 0.885519 0.905353 0.500000 0.873347 0.500000 0.894712 0.849849 0.897242 +0.625097 +0.414687 0.240784 0.650670 0.808017 0.547532 0.164611 0.424826 0.246557 1 1 1 0.500000 0.500000 0 0 0 0.500000 0.893207 0.877746 0.500000 0.916245 0.867884 0.500000 0.872460 0.500000 0.500000 0.918428 0.500000 0.500000 0.900128 0.877019 0.500000 +0.531322 +0.245783 0.669230 0.740136 0.461546 0.598092 0.325320 0.653226 0.575536 0.500000 0 1 0 0.500000 0 0.500000 1 0.861804 0.500000 0.854607 0.883946 0.871771 0.890690 0.893462 0.893226 0.500000 0.846874 0.500000 0.884645 0.500000 0.500000 0.868138 0.500000 +0.562638 +0.171313 0.262677 0.615911 0.609761 0.451185 0.860656 0.437658 0.718697 0 0.500000 1 0 0 0 0.500000 1 0.500000 0.877655 0.500000 0.897511 0.500000 0.865423 0.500000 0.500000 0.500000 0.898450 0.500000 0.500000 0.898932 0.843923 0.500000 0.863509 +0.271057 +0.391823 0.768714 0.775688 0.394051 0.611135 0.348535 0.422240 0.785595 0.500000 1 1 0.500000 0.500000 0 0.500000 0 0.881939 0.852045 0.903834 0.887300 0.925193 0.865610 0.889106 0.889117 0.882889 0.500000 0.877115 0.500000 0.892107 0.500000 0.873309 0.877389 +0.786421 +0.567124 0.645436 0.848586 0.793262 0.560112 0.404677 0.809977 0.689252 0.500000 0 0 1 0.500000 0.500000 0 0.500000 0.882555 0.500000 0.917572 0.500000 0.846140 0.865801 0.861315 0.875231 0.500000 0.500000 0.500000 0.898718 0.884332 0.500000 0.500000 0.846279 +0.482839 +0.129045 0.259339 0.511405 0.192173 0.455989 0.808982 0.768076 0.460043 0 0.500000 0.500000 1 1 0 0.500000 1 0.885015 0.500000 0.500000 0.887522 0.500000 0.500000 0.867593 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.874625 0.891661 0.867108 +0.235953 +0.101592 0.452120 0.588352 0.630264 0.248621 0.375777 0.691376 0.157687 1 0.500000 1 0 0.500000 0.500000 0 0.500000 0.864210 0.500000 0.858000 0.862865 0.885863 0.843869 0.940700 0.864460 0.500000 0.895446 0.500000 0.500000 0.872131 0.856924 0.888083 0.885579 +0.721173 +0.376128 0.180124 0.346393 0.426514 0.615042 0.403765 0.675296 0.303446 0 1 0 1 1 0 1 1 0.890190 0.874837 0.888659 0.500000 0.500000 0.500000 0.889230 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.864110 0.500000 +0.256852 +0.721552 0.121786 0.659459 0.535270 0.485421 0.267645 0.115037 0.831495 1 1 1 1 1 1 0 0.500000 0.898530 0.500000 0.500000 0.864132 0.854513 0.500000 0.861560 0.880533 0.500000 0.500000 0.500000 0.500000 0.903533 0.500000 0.885072 0.500000 +0.360061 +0.606311 0.865702 0.461526 0.268295 0.628158 0.849433 0.625897 0.446895 1 1 1 0.500000 0 1 1 0.500000 0.875721 0.894938 0.500000 0.500000 0.902853 0.873837 0.888232 0.900827 0.500000 0.500000 0.886614 0.500000 0.903849 0.841835 0.879062 0.878893 +0.630693 +0.780209 0.366890 0.119215 0.638867 0.844819 0.674761 0.102307 0.474601 1 1 0.500000 0.500000 0.500000 0.500000 1 0 0.899106 0.500000 0.879846 0.500000 0.500000 0.874357 0.872392 0.500000 0.500000 0.852047 0.500000 0.500000 0.864879 0.500000 0.500000 0.500000 +0.275184 +0.454095 0.179852 0.579944 0.125881 0.679943 0.794751 0.788390 0.274582 1 0.500000 0 1 0.500000 1 0 1 0.500000 0.500000 0.857192 0.923980 0.862282 0.880794 0.888274 0.886754 0.917258 0.896756 0.500000 0.861734 0.500000 0.909375 0.847779 0.875297 +0.774339 +0.260771 0.571061 0.419267 0.416406 0.337699 0.701557 0.861134 0.480586 0.500000 0.500000 1 0 0.500000 0 1 0.500000 0.500000 0.500000 0.851698 0.885736 0.890853 0.892500 0.898630 0.891724 0.500000 0.500000 0.872855 0.880413 0.500000 0.904828 0.500000 0.856073 +0.619674 +0.644084 0.518080 0.376114 0.749321 0.444405 0.523320 0.439191 0.884827 0 0 0 1 0.500000 1 0.500000 0.500000 0.896276 0.835785 0.888894 0.885567 0.887310 0.883926 0.500000 0.875989 0.500000 0.894002 0.902467 0.500000 0.500000 0.500000 0.500000 0.500000 +0.576111 +0.650389 0.885943 0.644289 0.768802 0.649669 0.789688 0.490612 0.312860 1 0 1 0.500000 1 0 0 0.500000 0.880496 0.500000 0.877191 0.500000 0.500000 0.901137 0.500000 0.500000 0.855692 0.500000 0.500000 0.500000 0.895492 0.500000 0.500000 0.899613 +0.237994 +0.442844 0.675919 0.370181 0.239549 0.696234 0.209152 0.217816 0.225769 0 1 0 0 0 0 0 0.500000 0.868313 0.895276 0.500000 0.919543 0.500000 0.500000 0.892082 0.500000 0.500000 0.862045 0.876704 0.500000 0.500000 0.858226 0.884404 0.891709 +0.342672 +0.448941 0.755174 0.416677 0.884418 0.621733 0.866337 0.724347 0.697307 1 1 0 0 0 0.500000 0.500000 0.500000 0.500000 0.895912 0.500000 0.916827 0.912304 0.914847 0.891640 0.934970 0.880471 0.500000 0.859879 0.873375 0.500000 0.889671 0.892639 0.897171 +0.587588 +0.374714 0.425610 0.619814 0.610883 0.104589 0.425551 0.430129 0.573575 0 0 0.500000 1 1 0.500000 1 1 0.500000 0.862181 0.917654 0.500000 0.880203 0.848827 0.905561 0.864914 0.500000 0.500000 0.500000 0.890895 0.500000 0.907594 0.872806 0.917706 +0.578297 +0.828099 0.455323 0.817124 0.805506 0.741682 0.842850 0.382304 0.789643 0.500000 1 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.872051 0.890067 0.879098 0.876274 0.887834 0.919474 0.500000 0.879870 0.500000 0.890025 0.500000 0.898528 0.500000 0.500000 0.500000 0.918778 +0.576099 +0.892870 0.271030 0.201691 0.419939 0.519850 0.513437 0.738359 0.205988 1 1 0.500000 0.500000 0 0.500000 0 1 0.875895 0.897727 0.500000 0.873554 0.500000 0.500000 0.500000 0.873674 0.500000 0.500000 0.924182 0.500000 0.908780 0.500000 0.500000 0.500000 +0.298918 +0.244025 0.730922 0.799205 0.436580 0.202506 0.513024 0.191517 0.634476 1 1 1 1 1 0 1 1 0.869094 0.866311 0.500000 0.876629 0.500000 0.890559 0.500000 0.887699 0.914201 0.500000 0.859740 0.882907 0.857415 0.876900 0.876341 0.500000 +0.595656 +0.311573 0.807642 0.644049 0.725436 0.608645 0.891903 0.821816 0.457034 1 1 0 0 1 0.500000 0 1 0.500000 0.500000 0.911996 0.859242 0.912839 0.500000 0.887762 0.500000 0.835115 0.889734 0.873556 0.850879 0.500000 0.500000 0.500000 0.895557 +0.406161 +0.861218 0.293271 0.401734 0.146723 0.566085 0.792714 0.149020 0.783063 0 0.500000 0 0.500000 1 0 1 1 0.500000 0.866191 0.854675 0.893516 0.500000 0.915969 0.500000 0.500000 0.854703 0.882262 0.500000 0.871013 0.872731 0.500000 0.500000 0.873835 +0.425924 +0.107981 0.643330 0.655290 0.865029 0.335317 0.675438 0.286594 0.183076 0 0 1 1 1 1 1 0 0.884700 0.500000 0.882579 0.500000 0.500000 0.904400 0.884574 0.875760 0.900754 0.500000 0.500000 0.500000 0.500000 0.879922 0.849453 0.868115 +0.519886 +0.632272 0.402750 0.419202 0.128522 0.269456 0.148319 0.192036 0.555944 1 0.500000 0 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.863825 0.500000 0.873806 0.899785 0.883980 0.500000 0.500000 0.891603 0.500000 0.865810 0.882162 0.890611 0.884998 0.884219 +0.637442 +0.548765 0.885544 0.336728 0.381010 0.628461 0.345264 0.647750 0.530471 0.500000 1 0 0.500000 0 0 0 0 0.877318 0.500000 0.500000 0.500000 0.902058 0.857654 0.500000 0.500000 0.861439 0.500000 0.857410 0.500000 0.869612 0.884320 0.896686 0.902395 +0.411149 +0.554884 0.537654 0.548680 0.267913 0.613165 0.859853 0.545085 0.645162 0 1 1 0 1 0 0.500000 1 0.901723 0.888045 0.901145 0.500000 0.500000 0.871270 0.897054 0.892722 0.869119 0.874768 0.500000 0.891499 0.500000 0.877519 0.500000 0.500000 +0.531807 +0.334008 0.271350 0.786020 0.440354 0.429055 0.128917 0.506430 0.570492 0.500000 0 0 0.500000 1 0 0 1 0.896114 0.896502 0.846712 0.840394 0.878125 0.869453 0.902997 0.500000 0.500000 0.500000 0.878310 0.500000 0.884415 0.500000 0.900705 0.500000 +0.574246 +0.764720 0.842420 0.356168 0.708009 0.503958 0.617042 0.420751 0.555752 1 0 0 1 0 1 0 1 0.869528 0.862524 0.899793 0.911879 0.865783 0.858005 0.500000 0.889855 0.500000 0.898720 0.500000 0.855781 0.868651 0.500000 0.500000 0.500000 +0.601713 +0.428683 0.276011 0.717057 0.578145 0.283682 0.840807 0.436076 0.533779 0 0 1 0.500000 1 0.500000 1 0 0.500000 0.893333 0.873432 0.875446 0.500000 0.500000 0.500000 0.879917 0.500000 0.500000 0.500000 0.890037 0.910095 0.900298 0.500000 0.901612 +0.400586 +0.188088 0.592829 0.669503 0.541052 0.854597 0.219030 0.629514 0.447046 0 1 0.500000 0.500000 1 0 0 1 0.882074 0.887427 0.887713 0.500000 0.882599 0.883895 0.893353 0.500000 0.894231 0.500000 0.500000 0.500000 0.900099 0.500000 0.500000 0.836060 +0.516487 +0.692219 0.730509 0.269957 0.562016 0.407183 0.528422 0.596995 0.301759 1 0 0 0 0.500000 0.500000 0 0.500000 0.929210 0.500000 0.500000 0.500000 0.848700 0.889635 0.500000 0.896220 0.870417 0.500000 0.500000 0.895678 0.881883 0.871055 0.500000 0.500000 +0.374669 +0.748944 0.505622 0.596105 0.540765 0.834618 0.430673 0.113366 0.742199 1 0.500000 0 0 0 0.500000 1 0.500000 0.878916 0.866206 0.903857 0.500000 0.892812 0.500000 0.906308 0.500000 0.913698 0.928147 0.500000 0.500000 0.500000 0.865943 0.500000 0.500000 +0.416591 +0.636491 0.896589 0.364288 0.388963 0.702422 0.211093 0.845911 0.633156 1 0.500000 0.500000 1 0 1 0.500000 0.500000 0.855331 0.500000 0.872770 0.500000 0.882236 0.500000 0.500000 0.876198 0.921910 0.904217 0.500000 0.500000 0.500000 0.500000 0.877769 0.500000 +0.307698 +0.227948 0.119087 0.886885 0.477980 0.803980 0.693593 0.611505 0.170179 0.500000 0 1 0 0 1 0.500000 0 0.878998 0.860655 0.896487 0.500000 0.500000 0.843445 0.879274 0.882159 0.500000 0.882786 0.888667 0.500000 0.500000 0.844649 0.906653 0.500000 +0.522073 +0.141477 0.398116 0.135157 0.587348 0.554959 0.196604 0.517281 0.540041 1 0 1 0 1 0 0 1 0.902363 0.899514 0.904009 0.910047 0.860552 0.887032 0.885370 0.856832 0.500000 0.500000 0.500000 0.500000 0.500000 0.884843 0.500000 0.838659 +0.673935 +0.221195 0.223202 0.356281 0.215671 0.176742 0.303116 0.273107 0.704336 0.500000 1 0 0 0 0 0.500000 0.500000 0.500000 0.891876 0.500000 0.879743 0.500000 0.882827 0.852227 0.855190 0.500000 0.500000 0.500000 0.500000 0.919318 0.500000 0.865682 0.864854 +0.496288 +0.436330 0.790078 0.645315 0.409805 0.588991 0.164712 0.511471 0.492204 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.881773 0.850712 0.854762 0.879178 0.867613 0.889842 0.872156 0.895103 0.898825 0.883388 0.500000 0.874070 0.856738 0.500000 0.500000 0.873080 +0.708552 +0.571688 0.555776 0.330748 0.688800 0.868843 0.442373 0.754625 0.786513 1 0.500000 1 0.500000 0 0 0.500000 0 0.844581 0.876627 0.500000 0.857994 0.500000 0.865141 0.885748 0.886865 0.896970 0.890462 0.500000 0.885004 0.500000 0.500000 0.500000 0.500000 +0.436545 +0.874393 0.125093 0.239792 0.783189 0.863041 0.535003 0.792340 0.254854 0 1 1 1 1 1 1 0.500000 0.910574 0.897517 0.879856 0.883858 0.500000 0.500000 0.910857 0.902937 0.500000 0.854330 0.500000 0.500000 0.500000 0.500000 0.500000 0.899274 +0.466946 +0.815225 0.891000 0.834126 0.161350 0.802105 0.372221 0.110124 0.655223 0.500000 0 0.500000 1 0 0 0 1 0.885497 0.884488 0.876936 0.872878 0.500000 0.873622 0.924024 0.855505 0.500000 0.895745 0.500000 0.500000 0.500000 0.923066 0.500000 0.891517 +0.614260 +0.844019 0.827268 0.886431 0.848572 0.548428 0.837178 0.252262 0.766170 0.500000 0 0.500000 1 1 0.500000 1 0 0.866963 0.845303 0.888196 0.863266 0.898338 0.908743 0.500000 0.875726 0.500000 0.886028 0.900300 0.847505 0.500000 0.865023 0.882045 0.871094 +0.684073 +0.686109 0.433293 0.148677 0.611166 0.858970 0.116783 0.564709 0.856477 0.500000 0.500000 1 1 1 0.500000 0 0.500000 0.500000 0.862074 0.500000 0.879144 0.835452 0.908280 0.891767 0.500000 0.864286 0.857078 0.873362 0.865123 0.919569 0.877905 0.500000 0.500000 +0.603498 +0.296205 0.109113 0.458071 0.592765 0.407853 0.587475 0.290400 0.145174 0 0 1 0.500000 0 0 0 0 0.500000 0.949323 0.871673 0.891500 0.885935 0.899076 0.869733 0.883332 0.500000 0.859204 0.500000 0.883103 0.881980 0.500000 0.500000 0.909128 +0.665005 +0.349032 0.787345 0.308923 0.265026 0.895655 0.668235 0.829942 0.235937 1 0 1 1 0.500000 1 0.500000 1 0.884941 0.860800 0.869764 0.885981 0.908887 0.864346 0.882448 0.500000 0.500000 0.500000 0.873594 0.908499 0.871784 0.500000 0.500000 0.500000 +0.623745 +0.107232 0.855905 0.600490 0.628035 0.383660 0.374101 0.519859 0.670847 1 1 0.500000 0 0 0 0.500000 1 0.500000 0.876957 0.500000 0.500000 0.500000 0.885786 0.863287 0.881205 0.899364 0.500000 0.880060 0.500000 0.877541 0.886396 0.500000 0.894157 +0.479115 +0.368614 0.297831 0.239032 0.813015 0.548272 0.611494 0.776642 0.425416 0.500000 0.500000 1 1 0.500000 0 0.500000 1 0.889106 0.882080 0.500000 0.874648 0.865439 0.863451 0.880324 0.896080 0.889534 0.921573 0.881443 0.500000 0.870451 0.857863 0.500000 0.908877 +0.752792 +0.183151 0.820736 0.707653 0.116910 0.313717 0.838957 0.543232 0.705065 0.500000 1 1 0.500000 0.500000 1 0.500000 1 0.500000 0.871136 0.852230 0.906446 0.896249 0.858111 0.500000 0.882940 0.500000 0.873827 0.500000 0.500000 0.901943 0.898212 0.500000 0.891098 +0.613311 +0.895937 0.607008 0.582209 0.591262 0.745034 0.393135 0.412591 0.214377 1 0 0 0.500000 0 0 0 0.500000 0.500000 0.500000 0.852966 0.500000 0.500000 0.870881 0.889048 0.888182 0.917994 0.881965 0.500000 0.845889 0.500000 0.888567 0.500000 0.888668 +0.362652 +0.537992 0.635088 0.531259 0.274354 0.869664 0.649879 0.308756 0.657363 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0 0.500000 0.500000 0.868289 0.500000 0.869525 0.916425 0.856717 0.887344 0.500000 0.867664 0.500000 0.903053 0.901390 0.500000 0.880124 0.872526 +0.514081 +0.427243 0.881229 0.611129 0.238477 0.285248 0.761312 0.373257 0.737251 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0 0.500000 0.917734 0.887988 0.886537 0.878267 0.500000 0.905297 0.868128 0.884948 0.500000 0.860227 0.500000 0.880387 0.500000 0.878871 0.500000 +0.519895 +0.114434 0.291407 0.279909 0.638018 0.168908 0.636625 0.755166 0.275802 0.500000 0.500000 0 0.500000 0 0 0.500000 0 0.887387 0.879780 0.870739 0.880268 0.871545 0.500000 0.915093 0.874225 0.500000 0.858669 0.850014 0.500000 0.500000 0.898077 0.500000 0.500000 +0.638644 +0.754599 0.350184 0.141988 0.185152 0.849236 0.506502 0.177425 0.573568 0 1 0.500000 0 1 1 1 1 0.872777 0.500000 0.883062 0.861872 0.894797 0.904938 0.863252 0.500000 0.500000 0.911301 0.861741 0.876954 0.500000 0.500000 0.500000 0.500000 +0.453741 +0.409068 0.199973 0.350686 0.576121 0.671771 0.258331 0.373070 0.787425 1 0.500000 0 0.500000 1 1 0 0 0.888972 0.500000 0.500000 0.905238 0.879054 0.864648 0.884315 0.881601 0.912344 0.898554 0.881645 0.878431 0.882227 0.855070 0.864855 0.500000 +0.784303 +0.481325 0.224560 0.774424 0.740355 0.153689 0.844105 0.674182 0.771782 0 1 0 1 0.500000 0 1 0 0.878299 0.885038 0.500000 0.896601 0.892711 0.500000 0.865733 0.871042 0.500000 0.868785 0.895691 0.855475 0.885325 0.500000 0.877263 0.500000 +0.553125 +0.712662 0.307162 0.269216 0.120287 0.259846 0.240107 0.476194 0.395314 0 0.500000 1 0 0.500000 0.500000 0 0.500000 0.906291 0.882913 0.892105 0.900693 0.863961 0.867867 0.897472 0.500000 0.877557 0.874679 0.500000 0.500000 0.902576 0.874300 0.883848 0.892229 +0.799648 +0.872017 0.191495 0.252368 0.149556 0.183150 0.793500 0.556150 0.210389 0 0.500000 0 0 0.500000 1 1 0 0.873490 0.500000 0.884458 0.500000 0.897122 0.906174 0.500000 0.919193 0.905883 0.500000 0.915828 0.500000 0.886822 0.500000 0.500000 0.500000 +0.438548 +0.715717 0.455902 0.139691 0.789882 0.539275 0.596416 0.170852 0.508304 1 1 1 0 0 1 0.500000 0 0.889054 0.863535 0.866497 0.900332 0.500000 0.895700 0.927580 0.500000 0.500000 0.876892 0.846113 0.500000 0.500000 0.906919 0.898686 0.500000 +0.615790 +0.204717 0.875968 0.202564 0.698852 0.207003 0.894313 0.516671 0.692782 0.500000 0 0 0.500000 0 0.500000 0 0.500000 0.874088 0.885234 0.500000 0.500000 0.879978 0.877913 0.885436 0.870960 0.500000 0.881118 0.885007 0.500000 0.899541 0.858991 0.851149 0.883168 +0.588084 +0.787976 0.505464 0.326819 0.241820 0.465493 0.548998 0.814519 0.221441 0 1 0.500000 0.500000 0 0 0 0.500000 0.888701 0.900483 0.500000 0.500000 0.911488 0.500000 0.500000 0.903611 0.862317 0.915612 0.896626 0.500000 0.838426 0.849016 0.500000 0.500000 +0.465347 +0.290815 0.726965 0.707311 0.773050 0.857775 0.830218 0.874532 0.862535 1 0.500000 1 0.500000 0.500000 0 0.500000 0 0.830347 0.893654 0.904264 0.894618 0.888151 0.500000 0.858615 0.864647 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.372191 +0.560011 0.303600 0.408649 0.361262 0.736002 0.582521 0.222965 0.368120 1 0.500000 0.500000 1 0 0 1 0 0.500000 0.893520 0.912640 0.500000 0.861982 0.911132 0.500000 0.914466 0.500000 0.881858 0.500000 0.875024 0.500000 0.879912 0.500000 0.500000 +0.465463 +0.730780 0.816670 0.376962 0.607902 0.405263 0.258036 0.203138 0.735047 0.500000 0 0 1 1 0.500000 0 1 0.913624 0.883364 0.857292 0.500000 0.500000 0.500000 0.866973 0.882378 0.500000 0.871307 0.862355 0.500000 0.892432 0.877636 0.500000 0.885069 +0.474466 +0.463328 0.159756 0.418748 0.490249 0.607898 0.342195 0.273924 0.833209 1 1 0.500000 0 1 0 0.500000 0 0.870787 0.500000 0.865413 0.500000 0.876630 0.893960 0.907076 0.907567 0.500000 0.859462 0.863451 0.862287 0.876386 0.500000 0.500000 0.880901 +0.613567 +0.577564 0.118264 0.660734 0.348223 0.779011 0.233655 0.842900 0.419269 0.500000 0.500000 1 0.500000 0.500000 0 1 1 0.915625 0.929053 0.882873 0.905501 0.500000 0.500000 0.500000 0.885354 0.896441 0.500000 0.500000 0.888458 0.500000 0.500000 0.500000 0.500000 +0.450116 +0.401624 0.686589 0.495981 0.146641 0.787185 0.823357 0.767482 0.867460 0.500000 0.500000 0 0 0.500000 0 0 0 0.500000 0.897029 0.874936 0.896092 0.893038 0.891598 0.858792 0.500000 0.500000 0.859291 0.500000 0.870271 0.855189 0.500000 0.858244 0.500000 +0.501542 +0.311796 0.559591 0.449224 0.707928 0.748049 0.653091 0.705407 0.770776 0 1 0 0 0 1 0.500000 0.500000 0.500000 0.887642 0.856503 0.867421 0.899157 0.882189 0.500000 0.500000 0.911616 0.881912 0.883362 0.500000 0.890705 0.872620 0.500000 0.868470 +0.517801 +0.105547 0.523472 0.591495 0.662145 0.866561 0.485318 0.139245 0.488983 0 0.500000 0.500000 0 0 0.500000 0 0.500000 0.500000 0.878833 0.873807 0.905343 0.859638 0.883068 0.873932 0.842651 0.875965 0.500000 0.863211 0.882892 0.902933 0.880631 0.500000 0.906827 +0.651085 +0.542902 0.746759 0.577649 0.739633 0.806744 0.746481 0.713690 0.783390 0 0 0.500000 1 0 0.500000 0 1 0.500000 0.894305 0.871833 0.857712 0.500000 0.500000 0.890386 0.500000 0.865808 0.500000 0.878970 0.861651 0.500000 0.500000 0.915107 0.913687 +0.388861 +0.812540 0.562646 0.587207 0.592867 0.513689 0.163779 0.826425 0.327928 0.500000 0.500000 0 0 0.500000 0 0 0 0.922605 0.912519 0.500000 0.892950 0.891974 0.500000 0.500000 0.882617 0.500000 0.500000 0.904942 0.500000 0.894174 0.500000 0.878044 0.878423 +0.395544 +0.528701 0.485235 0.340835 0.622228 0.379719 0.540740 0.423008 0.890088 1 1 0 1 0.500000 1 0.500000 1 0.500000 0.864793 0.500000 0.500000 0.868734 0.909897 0.864472 0.877664 0.500000 0.891305 0.882716 0.863744 0.854228 0.500000 0.500000 0.870954 +0.549581 +0.542219 0.467310 0.674900 0.845860 0.570803 0.889838 0.511380 0.558661 1 0.500000 0.500000 0 0.500000 0 1 0 0.899514 0.906507 0.897229 0.859552 0.908124 0.884025 0.500000 0.900418 0.500000 0.856669 0.500000 0.903369 0.500000 0.500000 0.866230 0.500000 +0.500094 +0.249235 0.293299 0.873176 0.467390 0.417241 0.775901 0.768761 0.758945 0.500000 0 1 0 0.500000 1 0 0 0.891285 0.500000 0.881622 0.884448 0.500000 0.874002 0.883468 0.500000 0.885991 0.871382 0.500000 0.900920 0.500000 0.500000 0.886669 0.500000 +0.435024 +0.471835 0.728808 0.474964 0.523305 0.193944 0.616697 0.232931 0.678362 0.500000 0 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.888426 0.500000 0.873637 0.925060 0.500000 0.886031 0.894539 0.868577 0.892468 0.500000 0.879124 0.500000 0.899038 0.500000 0.500000 0.855161 +0.579008 +0.111492 0.440418 0.702764 0.355918 0.507308 0.132471 0.234344 0.416622 1 0.500000 1 0.500000 0.500000 0 0 1 0.920489 0.869434 0.869319 0.856617 0.880187 0.859990 0.862687 0.500000 0.879506 0.860596 0.865227 0.885475 0.911532 0.500000 0.900372 0.865174 +0.925133 +0.587504 0.786660 0.798475 0.167406 0.200322 0.610852 0.388825 0.780082 1 1 1 0 0 1 0 0 0.874244 0.865850 0.881224 0.500000 0.886630 0.859010 0.874992 0.878004 0.861465 0.500000 0.919972 0.500000 0.873583 0.500000 0.833831 0.894443 +0.732884 +0.628715 0.613359 0.117438 0.381719 0.559629 0.293453 0.267267 0.151266 0 0 0.500000 1 0 0.500000 0.500000 0 0.851141 0.864786 0.861461 0.872788 0.891150 0.500000 0.895677 0.500000 0.500000 0.862348 0.500000 0.867731 0.887617 0.500000 0.500000 0.500000 +0.447818 +0.760498 0.281851 0.467285 0.254349 0.636507 0.367694 0.833269 0.157324 0 1 1 1 1 0 0.500000 0.500000 0.865422 0.891760 0.862860 0.500000 0.883514 0.500000 0.898985 0.500000 0.861182 0.500000 0.500000 0.500000 0.862639 0.887822 0.500000 0.500000 +0.423253 +0.869524 0.688168 0.644885 0.377401 0.771895 0.646113 0.222280 0.852187 0.500000 0.500000 1 0.500000 0 1 1 0 0.929462 0.879652 0.916295 0.500000 0.500000 0.866439 0.902496 0.859213 0.500000 0.870664 0.500000 0.500000 0.500000 0.876133 0.500000 0.882708 +0.528752 +0.611825 0.745642 0.211480 0.147539 0.693437 0.389434 0.612402 0.843735 1 0 0.500000 0.500000 0.500000 0.500000 0 1 0.875084 0.500000 0.893182 0.500000 0.897283 0.500000 0.911949 0.863874 0.897546 0.906152 0.500000 0.872206 0.500000 0.500000 0.898505 0.851409 +0.480131 +0.334140 0.893902 0.802788 0.653204 0.194279 0.647639 0.261666 0.413512 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.919517 0.500000 0.884140 0.860279 0.500000 0.901854 0.500000 0.896358 0.890500 0.903917 0.869526 0.897310 0.500000 0.884893 0.911818 0.888010 +0.726447 +0.793916 0.344434 0.300797 0.488647 0.883247 0.129611 0.175453 0.234160 0.500000 0.500000 0 0.500000 0.500000 1 0.500000 1 0.500000 0.873741 0.902605 0.500000 0.889674 0.500000 0.871899 0.867863 0.500000 0.500000 0.885453 0.500000 0.500000 0.500000 0.500000 0.877888 +0.332733 +0.837420 0.322393 0.266430 0.493197 0.567705 0.820747 0.892424 0.766243 1 0 0 0.500000 1 1 0.500000 0 0.902193 0.857571 0.881010 0.854975 0.864540 0.894835 0.907164 0.894983 0.859100 0.500000 0.864453 0.889912 0.500000 0.500000 0.892252 0.900413 +0.778518 +0.540763 0.800145 0.233023 0.623043 0.480098 0.405627 0.768207 0.258946 0 1 0 0 0.500000 0.500000 0.500000 0 0.910899 0.880415 0.858221 0.924329 0.875556 0.860048 0.881091 0.899874 0.500000 0.500000 0.500000 0.872299 0.897480 0.500000 0.876878 0.500000 +0.728445 +0.249784 0.726223 0.232604 0.778090 0.750874 0.141221 0.100056 0.233586 0.500000 0.500000 1 0.500000 1 1 1 0 0.500000 0.887781 0.883544 0.874612 0.500000 0.893882 0.500000 0.915577 0.858859 0.888888 0.868662 0.877032 0.880903 0.899412 0.500000 0.500000 +0.584709 +0.872368 0.494224 0.220179 0.741851 0.482608 0.184736 0.251654 0.149202 1 1 1 1 0 0 0 1 0.888005 0.850729 0.870865 0.500000 0.500000 0.894841 0.873937 0.876684 0.500000 0.500000 0.877411 0.500000 0.500000 0.895794 0.865005 0.500000 +0.502342 +0.642412 0.415561 0.526415 0.449860 0.200502 0.431117 0.378802 0.323244 0 0 1 1 1 1 1 0.500000 0.887761 0.897018 0.881888 0.500000 0.863502 0.865284 0.884108 0.885863 0.500000 0.886674 0.500000 0.904873 0.500000 0.500000 0.922853 0.500000 +0.491574 +0.619704 0.366139 0.290391 0.801782 0.557913 0.247366 0.875391 0.101354 0.500000 1 1 0 1 0.500000 1 0 0.500000 0.886659 0.864917 0.885451 0.846476 0.894529 0.877076 0.872593 0.500000 0.897805 0.500000 0.870151 0.857103 0.500000 0.894232 0.500000 +0.724952 +0.142706 0.267012 0.678613 0.853134 0.431320 0.590009 0.488814 0.497158 1 0 0.500000 0 1 0 0.500000 0.500000 0.500000 0.500000 0.864978 0.500000 0.500000 0.500000 0.500000 0.500000 0.864925 0.500000 0.500000 0.500000 0.500000 0.500000 0.908101 0.500000 +0.013528 +0.673262 0.511071 0.177486 0.804933 0.714966 0.628074 0.234213 0.615973 1 0 0.500000 0.500000 1 1 1 0.500000 0.866964 0.500000 0.871617 0.858678 0.500000 0.500000 0.871604 0.888977 0.896935 0.870865 0.500000 0.903852 0.888509 0.886614 0.500000 0.865403 +0.641064 +0.661209 0.335646 0.604373 0.304412 0.460698 0.753999 0.667216 0.495083 0 0.500000 0.500000 1 0 0.500000 0 0 0.500000 0.500000 0.881199 0.500000 0.500000 0.883594 0.879846 0.500000 0.500000 0.500000 0.893561 0.872559 0.898913 0.500000 0.877202 0.500000 +0.280742 +0.879665 0.726217 0.135156 0.574782 0.557886 0.596698 0.108629 0.328965 0 1 0 1 1 0.500000 1 0 0.500000 0.899466 0.879066 0.867362 0.890366 0.500000 0.874008 0.869398 0.500000 0.500000 0.500000 0.883958 0.903737 0.500000 0.874494 0.857435 +0.473631 +0.221190 0.144938 0.178400 0.162449 0.875423 0.630742 0.281243 0.658174 0.500000 0.500000 0.500000 0.500000 0 0 0 0 0.500000 0.878659 0.889686 0.500000 0.873221 0.868567 0.500000 0.500000 0.919167 0.500000 0.889144 0.883235 0.878008 0.500000 0.888044 0.915227 +0.533524 +0.172892 0.388716 0.545869 0.217962 0.281715 0.582692 0.711227 0.189147 1 0 1 0.500000 0 0.500000 0.500000 1 0.888887 0.500000 0.880210 0.864481 0.909671 0.886389 0.899921 0.500000 0.500000 0.916630 0.887817 0.500000 0.500000 0.500000 0.838458 0.883720 +0.633776 +0.653589 0.267413 0.205140 0.783295 0.235345 0.435434 0.133246 0.461448 0.500000 1 0.500000 0 0.500000 0.500000 0 0.500000 0.879411 0.841190 0.879027 0.918264 0.879753 0.500000 0.912720 0.906497 0.500000 0.879639 0.884508 0.500000 0.879528 0.904340 0.500000 0.500000 +0.633963 +0.833197 0.544806 0.761781 0.251325 0.211407 0.522318 0.400088 0.474002 0 1 0 0 1 0.500000 0 1 0.879616 0.902148 0.500000 0.887748 0.907457 0.500000 0.900740 0.500000 0.892595 0.904853 0.890897 0.500000 0.500000 0.500000 0.500000 0.855922 +0.531628 +0.186641 0.283431 0.618975 0.112561 0.816711 0.269897 0.353204 0.491522 0.500000 0 0.500000 0 0 1 0 0 0.881452 0.898007 0.877083 0.500000 0.500000 0.873380 0.500000 0.894380 0.893729 0.500000 0.879560 0.500000 0.869508 0.500000 0.500000 0.908901 +0.503080 +0.309679 0.175025 0.242678 0.493543 0.776505 0.524639 0.211884 0.530278 0.500000 1 0 1 1 0 1 0.500000 0.500000 0.500000 0.920191 0.500000 0.876925 0.887534 0.924923 0.500000 0.853780 0.878020 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.313001 +0.178092 0.583884 0.741304 0.892183 0.728112 0.780096 0.869246 0.814799 0 1 1 1 1 0 0.500000 0 0.883354 0.500000 0.888359 0.890903 0.867685 0.874847 0.880026 0.500000 0.894251 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.934640 +0.451695 +0.446596 0.534078 0.449771 0.309704 0.587080 0.854609 0.411514 0.522491 0 0 0.500000 0 1 0 1 0.500000 0.851667 0.500000 0.879408 0.861417 0.898893 0.500000 0.919422 0.863451 0.860466 0.861311 0.864106 0.877501 0.885205 0.500000 0.879707 0.867223 +0.638562 +0.227014 0.423560 0.567203 0.388172 0.208132 0.673728 0.345186 0.135424 0 1 1 0 0.500000 0.500000 0 1 0.882572 0.884315 0.884802 0.890960 0.874204 0.910130 0.500000 0.500000 0.874601 0.923191 0.873983 0.880088 0.886878 0.500000 0.500000 0.500000 +0.695300 +0.548036 0.637132 0.477988 0.148636 0.732838 0.215797 0.692297 0.440474 1 0.500000 0.500000 1 1 0 1 0.500000 0.842737 0.892853 0.889305 0.875889 0.500000 0.872262 0.500000 0.500000 0.864461 0.897663 0.500000 0.500000 0.889420 0.500000 0.500000 0.875581 +0.486354 +0.771295 0.159488 0.720921 0.712942 0.220264 0.577539 0.490155 0.638492 0 0 1 0.500000 1 0.500000 0 0 0.500000 0.888160 0.500000 0.899770 0.900656 0.853832 0.905896 0.500000 0.500000 0.859286 0.500000 0.500000 0.864807 0.500000 0.879564 0.876693 +0.418401 +0.537394 0.184033 0.442840 0.610177 0.252761 0.354842 0.835126 0.164358 0 0 0 0 0 0.500000 0.500000 0 0.500000 0.500000 0.901208 0.882483 0.890341 0.860062 0.500000 0.869088 0.899581 0.500000 0.861251 0.892724 0.500000 0.875679 0.500000 0.883494 +0.436427 +0.609885 0.141326 0.268508 0.217425 0.857529 0.693919 0.501196 0.604913 0.500000 1 1 0 1 0 0.500000 0.500000 0.881826 0.865627 0.933988 0.876652 0.500000 0.861064 0.500000 0.885761 0.500000 0.500000 0.500000 0.888837 0.500000 0.868683 0.889752 0.500000 +0.567120 +0.226540 0.454431 0.224574 0.220416 0.730882 0.135692 0.768132 0.587774 0.500000 0.500000 1 0 1 0 1 1 0.883589 0.500000 0.500000 0.867654 0.864424 0.892030 0.500000 0.500000 0.500000 0.872988 0.500000 0.859809 0.500000 0.884062 0.500000 0.866843 +0.413449 +0.552384 0.119530 0.344920 0.476892 0.121776 0.482627 0.517870 0.836529 0.500000 0 1 0 1 0.500000 0.500000 0.500000 0.893595 0.864142 0.500000 0.500000 0.860775 0.873629 0.897260 0.877244 0.500000 0.877512 0.500000 0.891939 0.500000 0.500000 0.887974 0.500000 +0.562051 +0.389990 0.364106 0.525866 0.832438 0.591124 0.823439 0.539350 0.263268 0 0.500000 1 0 0.500000 0 1 1 0.903152 0.866581 0.879025 0.881123 0.886645 0.500000 0.500000 0.859477 0.874962 0.500000 0.913263 0.902856 0.871901 0.863755 0.500000 0.882300 +0.656043 +0.780544 0.400035 0.388990 0.352476 0.265293 0.578843 0.817263 0.733381 0.500000 1 0.500000 1 0.500000 0 0.500000 1 0.862767 0.500000 0.875821 0.889635 0.881646 0.920635 0.500000 0.500000 0.870844 0.500000 0.500000 0.874730 0.500000 0.500000 0.872495 0.892027 +0.435057 +0.447083 0.722364 0.166159 0.839934 0.168784 0.153934 0.171288 0.632302 0 1 1 0.500000 0.500000 0 0 1 0.864526 0.500000 0.909173 0.898773 0.500000 0.500000 0.889979 0.885273 0.500000 0.500000 0.859737 0.891221 0.870145 0.867907 0.896226 0.823515 +0.665933 +0.128100 0.383480 0.550625 0.146774 0.627261 0.179540 0.131769 0.442059 0 0 1 0 0 0.500000 0 0.500000 0.904896 0.864748 0.863778 0.851426 0.903785 0.889110 0.888845 0.891108 0.500000 0.500000 0.894853 0.851632 0.912759 0.500000 0.500000 0.895665 +0.831120 +0.145772 0.584013 0.506303 0.832672 0.521665 0.615710 0.430810 0.831762 0.500000 1 0 0.500000 0.500000 0 0.500000 1 0.500000 0.500000 0.918762 0.871364 0.873309 0.863505 0.877388 0.878465 0.861426 0.500000 0.869371 0.896576 0.500000 0.500000 0.500000 0.902348 +0.511931 +0.594074 0.810488 0.474635 0.592773 0.542417 0.595589 0.666067 0.392082 0 1 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.858772 0.872112 0.872619 0.874774 0.500000 0.500000 0.856805 0.886303 0.903308 0.500000 0.885483 0.914311 0.894729 0.500000 0.875359 0.857036 +0.659910 +0.719173 0.149344 0.623685 0.881301 0.233194 0.295790 0.340614 0.895192 1 0 0 0 0 0.500000 0 1 0.898782 0.856818 0.500000 0.905636 0.901434 0.883692 0.500000 0.850719 0.864591 0.879084 0.902476 0.842511 0.891243 0.500000 0.909982 0.894702 +0.660756 +0.410640 0.231933 0.691200 0.403865 0.760796 0.491961 0.582052 0.343952 0 0 0.500000 0 1 1 0 1 0.500000 0.500000 0.500000 0.896746 0.872752 0.877742 0.897291 0.889867 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.376838 +0.443552 0.578938 0.803254 0.497843 0.244235 0.254898 0.266457 0.142763 0.500000 0.500000 0.500000 0 1 0 0.500000 1 0.904939 0.500000 0.500000 0.500000 0.858085 0.500000 0.500000 0.887073 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.862642 0.500000 +0.127663 +0.365704 0.188401 0.255905 0.401274 0.408121 0.295313 0.330844 0.703136 0 1 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.889249 0.886571 0.904872 0.500000 0.898216 0.500000 0.500000 0.873681 0.893613 0.899010 0.500000 0.869376 0.883988 0.500000 0.500000 0.500000 +0.525016 +0.366711 0.308510 0.535452 0.349119 0.639731 0.165495 0.878298 0.152537 1 1 0 0 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.879039 0.500000 0.500000 0.876997 0.888807 0.887012 0.500000 0.500000 0.891957 0.500000 0.500000 0.500000 0.881527 0.500000 +0.327656 +0.896321 0.669335 0.112333 0.173063 0.862765 0.694273 0.840252 0.718521 0.500000 0 0 0 0.500000 0.500000 0.500000 0 0.891859 0.500000 0.907992 0.886812 0.878185 0.882305 0.871257 0.855766 0.871697 0.878232 0.898931 0.500000 0.500000 0.500000 0.877566 0.500000 +0.610806 +0.421457 0.436030 0.554285 0.876142 0.725776 0.715026 0.839685 0.787787 0.500000 0.500000 0 1 0.500000 0.500000 0.500000 0 0.867719 0.873113 0.500000 0.909070 0.912840 0.884228 0.856782 0.500000 0.500000 0.860891 0.500000 0.904400 0.500000 0.500000 0.894192 0.500000 +0.489912 +0.490996 0.367211 0.713261 0.776600 0.513593 0.150244 0.554180 0.698830 1 0 1 0.500000 0.500000 0 0.500000 1 0.500000 0.919382 0.855117 0.918377 0.904117 0.906245 0.500000 0.500000 0.500000 0.889959 0.500000 0.500000 0.868306 0.500000 0.500000 0.879439 +0.463104 +0.308678 0.152207 0.735683 0.826579 0.516415 0.390539 0.789867 0.301911 1 0.500000 0.500000 0 1 0 1 0.500000 0.879374 0.871837 0.900008 0.871009 0.898450 0.894873 0.891402 0.500000 0.863525 0.500000 0.500000 0.894262 0.870072 0.500000 0.500000 0.500000 +0.606084 +0.387355 0.883372 0.642324 0.538286 0.779676 0.211664 0.836200 0.618452 0 0.500000 0.500000 1 1 0 0 1 0.881221 0.886988 0.872959 0.500000 0.500000 0.500000 0.879878 0.905397 0.873169 0.890859 0.880139 0.864031 0.888421 0.898656 0.500000 0.500000 +0.552171 +0.456227 0.809322 0.866957 0.742008 0.731414 0.275597 0.152772 0.635211 0 0.500000 0.500000 1 1 0.500000 1 0 0.500000 0.865097 0.906342 0.500000 0.911679 0.879609 0.500000 0.500000 0.889332 0.892310 0.872348 0.500000 0.865619 0.500000 0.500000 0.877825 +0.406910 +0.841323 0.319846 0.654919 0.230317 0.744994 0.514344 0.782380 0.858057 1 1 1 0 1 1 0.500000 0.500000 0.500000 0.873175 0.900825 0.500000 0.859118 0.835670 0.879233 0.859107 0.500000 0.878449 0.882744 0.500000 0.861245 0.500000 0.877186 0.866676 +0.607623 +0.263424 0.373915 0.587708 0.216651 0.654737 0.360396 0.574059 0.406534 1 0 0.500000 0 0 0.500000 1 0 0.887553 0.865430 0.895086 0.868221 0.890963 0.500000 0.873540 0.500000 0.874866 0.500000 0.500000 0.500000 0.908257 0.500000 0.880115 0.500000 +0.544363 +0.654185 0.691414 0.793733 0.470994 0.190472 0.660684 0.308760 0.730624 0.500000 1 0 0 0 0.500000 0 0.500000 0.890009 0.860226 0.886893 0.500000 0.500000 0.864601 0.862477 0.500000 0.500000 0.500000 0.886124 0.863217 0.870493 0.877846 0.875030 0.898434 +0.536494 +0.102718 0.184571 0.684907 0.236489 0.469832 0.662898 0.725488 0.669351 0.500000 0 0.500000 1 0 0.500000 0 1 0.877325 0.899084 0.891247 0.500000 0.904496 0.883357 0.880427 0.500000 0.500000 0.879057 0.896824 0.885615 0.852348 0.869706 0.904113 0.867817 +0.807295 +0.395134 0.414857 0.698560 0.105705 0.775722 0.158983 0.229604 0.758628 1 1 1 0.500000 1 1 1 0 0.500000 0.888315 0.897563 0.886144 0.500000 0.875731 0.877579 0.888479 0.870993 0.500000 0.876470 0.849858 0.500000 0.500000 0.500000 0.903204 +0.530020 +0.214061 0.331020 0.453565 0.862544 0.171206 0.862130 0.421910 0.840368 0 0.500000 1 1 0 0.500000 0.500000 1 0.500000 0.896338 0.841614 0.854507 0.876460 0.891696 0.864890 0.855504 0.875709 0.890858 0.500000 0.870567 0.895872 0.864649 0.860757 0.500000 +0.729402 +0.700204 0.525575 0.742642 0.180467 0.503332 0.508407 0.191395 0.168565 0.500000 0.500000 0.500000 1 0 0.500000 0.500000 0 0.500000 0.500000 0.882781 0.892483 0.893222 0.929923 0.901708 0.500000 0.881749 0.500000 0.500000 0.500000 0.500000 0.862800 0.500000 0.500000 +0.343011 +0.531931 0.358689 0.682739 0.600727 0.613448 0.813671 0.365596 0.776158 0 0 0.500000 0.500000 0.500000 1 0 1 0.500000 0.894477 0.862537 0.921625 0.854680 0.863511 0.886615 0.871824 0.897603 0.500000 0.500000 0.500000 0.500000 0.500000 0.873208 0.500000 +0.525594 +0.599833 0.789404 0.520521 0.598980 0.860869 0.822298 0.561653 0.698583 0.500000 1 0 0.500000 1 0.500000 1 0 0.891848 0.878098 0.901784 0.932175 0.500000 0.878668 0.867128 0.829871 0.913484 0.500000 0.871899 0.864682 0.879688 0.886330 0.500000 0.500000 +0.661641 +0.609205 0.709749 0.156102 0.610287 0.492715 0.467914 0.428437 0.142693 1 1 0 1 0.500000 0.500000 0.500000 0.500000 0.894248 0.500000 0.904825 0.500000 0.899204 0.911767 0.902284 0.867320 0.874754 0.896155 0.889005 0.500000 0.925416 0.873339 0.500000 0.500000 +0.629820 +0.543474 0.764365 0.482440 0.563129 0.711661 0.287055 0.726911 0.595007 0.500000 1 0 0.500000 0.500000 0 0 0.500000 0.888259 0.919162 0.500000 0.908972 0.879471 0.500000 0.500000 0.500000 0.868926 0.889851 0.873758 0.855278 0.886632 0.860191 0.500000 0.500000 +0.577760 +0.249061 0.575415 0.807928 0.650811 0.772777 0.258525 0.428408 0.446407 0.500000 1 0 0 1 0.500000 0 0 0.901073 0.899357 0.899381 0.863722 0.885584 0.500000 0.500000 0.837399 0.879853 0.500000 0.907299 0.500000 0.869089 0.500000 0.500000 0.500000 +0.405495 +0.224124 0.655585 0.219928 0.529912 0.822857 0.352795 0.825936 0.113296 0 0 1 0 0 0 0.500000 0 0.872254 0.855285 0.901424 0.913907 0.854346 0.867952 0.500000 0.875027 0.500000 0.500000 0.500000 0.500000 0.900270 0.878367 0.500000 0.906084 +0.530289 +0.388757 0.433851 0.726151 0.620926 0.897729 0.334892 0.727797 0.276359 0 0 0 0 1 0.500000 1 0 0.877959 0.887196 0.870079 0.894242 0.902402 0.903315 0.866254 0.500000 0.901502 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.507731 +0.584158 0.544968 0.281306 0.117639 0.562216 0.570919 0.438385 0.137569 0 1 1 1 0 0.500000 0.500000 0 0.911248 0.885829 0.873239 0.500000 0.883640 0.917257 0.500000 0.881149 0.500000 0.870020 0.869407 0.500000 0.500000 0.849950 0.500000 0.863575 +0.574630 +0.229085 0.829553 0.889354 0.380621 0.497631 0.691188 0.203685 0.339866 0 0.500000 1 0.500000 1 1 0.500000 1 0.873197 0.878348 0.500000 0.847796 0.881528 0.860708 0.874969 0.880192 0.877645 0.868480 0.500000 0.870947 0.500000 0.500000 0.867804 0.500000 +0.579234 +0.647090 0.636017 0.131611 0.189302 0.194270 0.493202 0.652800 0.604810 0.500000 0.500000 1 0 0.500000 1 0 0 0.879737 0.873460 0.906903 0.500000 0.878618 0.500000 0.882567 0.873148 0.864086 0.500000 0.880998 0.875345 0.500000 0.500000 0.873665 0.872561 +0.632775 +0.529056 0.839505 0.163904 0.528932 0.365486 0.523895 0.496129 0.245926 1 0 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.896054 0.868776 0.500000 0.500000 0.892063 0.894072 0.500000 0.500000 0.500000 0.500000 0.839288 0.500000 0.500000 +0.187561 +0.477022 0.701845 0.112281 0.105031 0.648837 0.401262 0.203740 0.464899 0 0 0 0 0.500000 0 0 0 0.864018 0.500000 0.869410 0.500000 0.898829 0.500000 0.892347 0.894636 0.500000 0.870298 0.879373 0.500000 0.500000 0.500000 0.500000 0.874264 +0.373070 +0.403950 0.593929 0.765574 0.806231 0.121509 0.809644 0.694118 0.642430 1 0.500000 0.500000 0 1 0 0.500000 0 0.500000 0.500000 0.881424 0.897397 0.500000 0.903900 0.902082 0.870006 0.920807 0.859573 0.851979 0.890811 0.894530 0.855902 0.500000 0.887416 +0.771942 +0.419319 0.500748 0.276377 0.476059 0.524521 0.621131 0.347104 0.383947 0.500000 1 0 0.500000 0 0.500000 0 0.500000 0.873965 0.500000 0.871685 0.846445 0.897529 0.879019 0.909992 0.884163 0.500000 0.862897 0.888460 0.500000 0.500000 0.500000 0.906938 0.500000 +0.572230 +0.271314 0.176859 0.675537 0.342165 0.571089 0.888166 0.413600 0.368246 0.500000 0.500000 0.500000 1 0.500000 1 0 0.500000 0.876175 0.887269 0.890575 0.879915 0.500000 0.897519 0.872804 0.864227 0.500000 0.500000 0.880587 0.500000 0.906448 0.887478 0.500000 0.882798 +0.631935 +0.196841 0.505837 0.195628 0.115978 0.647855 0.700107 0.499838 0.176677 1 1 1 1 0.500000 0.500000 0.500000 0 0.872384 0.500000 0.853241 0.896842 0.867316 0.876986 0.902015 0.880592 0.500000 0.881768 0.500000 0.500000 0.500000 0.891046 0.500000 0.903183 +0.635289 +0.485280 0.308490 0.185100 0.781110 0.314120 0.417150 0.833255 0.713185 0 0.500000 1 0.500000 1 1 0.500000 1 0.918134 0.861064 0.882827 0.913089 0.883670 0.887860 0.500000 0.882833 0.886776 0.872414 0.500000 0.500000 0.500000 0.909533 0.876532 0.844452 +0.740198 +0.479280 0.261326 0.313254 0.256678 0.586372 0.161013 0.749938 0.413005 1 0 0 1 0.500000 1 0 1 0.868084 0.888828 0.868901 0.896593 0.873570 0.897204 0.885145 0.864919 0.896309 0.500000 0.500000 0.908435 0.908528 0.500000 0.500000 0.886628 +0.775296 +0.457647 0.665936 0.582905 0.282430 0.608028 0.122083 0.851900 0.490327 0 0.500000 0 0.500000 0 1 1 1 0.909172 0.856174 0.500000 0.879848 0.903197 0.865332 0.847763 0.874673 0.500000 0.858702 0.500000 0.500000 0.500000 0.500000 0.876712 0.881916 +0.527180 +0.116667 0.226148 0.272505 0.186588 0.180324 0.505295 0.698738 0.693768 0 0.500000 1 0 1 0.500000 0.500000 0 0.844298 0.896094 0.891930 0.874584 0.896638 0.858195 0.500000 0.905119 0.500000 0.500000 0.500000 0.867972 0.500000 0.500000 0.887576 0.500000 +0.573280 +0.320164 0.396661 0.474704 0.152278 0.339266 0.644251 0.134252 0.576267 1 0 0.500000 1 0 0 0 1 0.902490 0.848931 0.871735 0.931241 0.886361 0.865065 0.861263 0.500000 0.878663 0.859647 0.881474 0.882588 0.894055 0.500000 0.500000 0.500000 +0.698222 +0.515521 0.555652 0.637958 0.768560 0.592235 0.296336 0.716700 0.174587 1 1 1 0.500000 0.500000 0.500000 1 0.500000 0.884741 0.500000 0.913232 0.885987 0.500000 0.500000 0.849945 0.891709 0.905609 0.858472 0.500000 0.500000 0.500000 0.840094 0.500000 0.500000 +0.418908 +0.704385 0.404593 0.194782 0.300249 0.882695 0.455652 0.737094 0.533635 0 0.500000 1 1 0.500000 0.500000 1 1 0.847656 0.500000 0.879793 0.879314 0.868497 0.879693 0.500000 0.888517 0.500000 0.500000 0.500000 0.897853 0.857623 0.866098 0.500000 0.858121 +0.502736 +0.203797 0.616961 0.660071 0.406366 0.385061 0.726577 0.572130 0.783965 0 1 0 0.500000 1 1 0.500000 0.500000 0.500000 0.880508 0.869018 0.906481 0.899537 0.883160 0.882752 0.500000 0.500000 0.865945 0.873461 0.500000 0.868310 0.500000 0.867119 0.892305 +0.639574 +0.468677 0.451060 0.371103 0.521447 0.160451 0.896085 0.699663 0.231121 1 1 0.500000 1 0.500000 0 0.500000 0 0.874464 0.500000 0.500000 0.910591 0.875367 0.884219 0.918257 0.857674 0.869443 0.500000 0.500000 0.892856 0.851542 0.500000 0.500000 0.500000 +0.507090 +0.248500 0.740032 0.323766 0.137152 0.510611 0.444094 0.885713 0.783998 1 1 0 1 0.500000 0.500000 0.500000 0 0.885552 0.500000 0.884217 0.886756 0.500000 0.910296 0.848855 0.880245 0.881212 0.864900 0.500000 0.500000 0.500000 0.500000 0.904194 0.500000 +0.578704 +0.847812 0.582424 0.205743 0.515269 0.319263 0.454158 0.425593 0.343505 1 0.500000 1 1 1 0 0 0.500000 0.500000 0.846303 0.500000 0.881935 0.500000 0.879300 0.887525 0.893247 0.500000 0.853128 0.882846 0.844475 0.500000 0.500000 0.901942 0.500000 +0.398377 +0.886999 0.794495 0.472310 0.720407 0.888891 0.585063 0.547453 0.436026 0.500000 0 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.860108 0.879219 0.894143 0.902794 0.871483 0.897327 0.889450 0.863842 0.500000 0.861762 0.500000 0.899039 0.500000 0.500000 0.871774 +0.620378 +0.309426 0.721844 0.231399 0.523796 0.448052 0.218499 0.506164 0.891135 1 1 0.500000 0.500000 0.500000 0 1 1 0.500000 0.500000 0.500000 0.869666 0.881661 0.889189 0.500000 0.881092 0.867501 0.500000 0.886368 0.500000 0.863385 0.500000 0.500000 0.500000 +0.344679 +0.584690 0.689763 0.250757 0.267281 0.399512 0.403840 0.343444 0.455255 0.500000 0.500000 1 1 0.500000 0 0 0 0.865475 0.872289 0.889018 0.859009 0.892331 0.877272 0.885362 0.500000 0.905197 0.893433 0.866132 0.500000 0.500000 0.500000 0.902336 0.500000 +0.575841 +0.749231 0.517218 0.281184 0.452492 0.433444 0.292309 0.244614 0.233526 0 0.500000 0 1 1 1 0 0 0.870463 0.500000 0.876601 0.868709 0.903352 0.500000 0.500000 0.500000 0.915984 0.880812 0.500000 0.500000 0.500000 0.500000 0.873507 0.500000 +0.317277 +0.471031 0.813501 0.710462 0.128281 0.216486 0.284121 0.215400 0.431706 1 0.500000 1 0.500000 0.500000 0.500000 1 0 0.850842 0.868807 0.870849 0.898898 0.866848 0.861209 0.854608 0.871223 0.872111 0.864308 0.500000 0.500000 0.500000 0.853134 0.500000 0.884320 +0.632460 +0.275872 0.776102 0.152488 0.669034 0.649467 0.588373 0.188806 0.657772 0 0.500000 1 0.500000 0.500000 1 1 0.500000 0.874261 0.873927 0.851048 0.868662 0.895641 0.884612 0.500000 0.500000 0.500000 0.898509 0.873222 0.500000 0.873517 0.500000 0.500000 0.500000 +0.534287 +0.356156 0.509808 0.535781 0.263378 0.397890 0.332018 0.419808 0.709176 0 1 0.500000 1 0.500000 1 0 0.500000 0.500000 0.891836 0.926280 0.898394 0.500000 0.871901 0.877967 0.500000 0.500000 0.500000 0.500000 0.895444 0.500000 0.500000 0.881545 0.894250 +0.452895 +0.731742 0.191509 0.491711 0.385578 0.602871 0.648374 0.630697 0.332642 0.500000 0.500000 0.500000 0.500000 1 0.500000 0 1 0.915170 0.500000 0.910661 0.873856 0.881354 0.855311 0.879035 0.874860 0.885528 0.500000 0.500000 0.500000 0.500000 0.895719 0.858096 0.875766 +0.603658 +0.345990 0.855333 0.582877 0.618014 0.755679 0.102264 0.553072 0.482459 1 1 0.500000 1 0 0.500000 0 1 0.857135 0.901041 0.891375 0.893804 0.896203 0.889737 0.866985 0.500000 0.500000 0.500000 0.500000 0.895270 0.906672 0.914044 0.500000 0.500000 +0.702243 +0.824946 0.266790 0.138817 0.499837 0.152772 0.642530 0.808592 0.613392 1 0.500000 1 0.500000 0.500000 0 1 0 0.500000 0.896779 0.871158 0.899706 0.500000 0.883194 0.906070 0.500000 0.500000 0.500000 0.860086 0.849848 0.500000 0.500000 0.500000 0.500000 +0.424831 +0.683072 0.598315 0.880744 0.461180 0.846791 0.212128 0.631414 0.380968 1 1 0 0 0.500000 0 0.500000 1 0.500000 0.500000 0.500000 0.877803 0.853169 0.889858 0.865915 0.900177 0.847590 0.500000 0.880351 0.500000 0.868736 0.880197 0.858220 0.500000 +0.497527 +0.410939 0.451121 0.589802 0.195642 0.362640 0.698016 0.561926 0.484316 1 0 0 0 0.500000 1 1 0 0.880973 0.893730 0.886083 0.853135 0.866985 0.872440 0.848048 0.869979 0.881404 0.500000 0.500000 0.892247 0.854736 0.500000 0.900967 0.500000 +0.728797 +0.609990 0.308458 0.448769 0.254334 0.388117 0.873989 0.533796 0.502897 0.500000 0.500000 0.500000 1 1 1 0 0.500000 0.849171 0.500000 0.899645 0.500000 0.879200 0.900357 0.864158 0.864076 0.500000 0.874276 0.876148 0.872500 0.500000 0.875228 0.887712 0.500000 +0.645674 +0.165688 0.126592 0.627509 0.340915 0.352178 0.859134 0.464352 0.557226 1 1 0.500000 0 0.500000 0 0.500000 0 0.882733 0.878135 0.882131 0.867313 0.500000 0.500000 0.500000 0.864442 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.885136 0.889573 +0.409786 +0.228863 0.294446 0.153499 0.860783 0.173311 0.245096 0.320263 0.466138 0 1 0 0.500000 1 1 0 1 0.873029 0.500000 0.875595 0.500000 0.855813 0.868876 0.866778 0.873991 0.909497 0.877396 0.913330 0.500000 0.878376 0.863559 0.891345 0.500000 +0.623388 +0.614422 0.385659 0.369843 0.154142 0.469725 0.465444 0.515221 0.315182 1 1 0 0 0.500000 0 0.500000 0 0.500000 0.887355 0.894952 0.500000 0.885792 0.877797 0.866503 0.881249 0.500000 0.877763 0.500000 0.887498 0.500000 0.884013 0.888966 0.500000 +0.540187 +0.634564 0.519381 0.637468 0.516330 0.559503 0.568381 0.179958 0.753825 0 0 1 0.500000 0 0.500000 0 0 0.500000 0.874705 0.847413 0.865048 0.924368 0.886320 0.855409 0.877031 0.889663 0.500000 0.500000 0.500000 0.500000 0.877142 0.883229 0.876372 +0.592107 +0.699604 0.844404 0.896814 0.147010 0.600721 0.525041 0.562816 0.247877 1 0.500000 0.500000 0 1 1 0 0 0.857364 0.852873 0.899061 0.500000 0.500000 0.500000 0.871889 0.914108 0.500000 0.881290 0.500000 0.893169 0.500000 0.500000 0.897503 0.500000 +0.442056 +0.848925 0.883164 0.341927 0.568082 0.761208 0.221340 0.266450 0.833444 1 1 0.500000 0 1 1 0.500000 0.500000 0.500000 0.899693 0.500000 0.856326 0.889384 0.862062 0.904548 0.500000 0.500000 0.862444 0.500000 0.500000 0.884019 0.877259 0.500000 0.865782 +0.454289 +0.313690 0.391608 0.348492 0.509333 0.555858 0.103832 0.499273 0.284506 0 1 0.500000 1 0 0 0.500000 1 0.500000 0.874107 0.500000 0.911078 0.500000 0.500000 0.500000 0.862265 0.500000 0.500000 0.876330 0.906107 0.500000 0.874820 0.500000 0.500000 +0.253051 +0.378247 0.603209 0.729317 0.228053 0.279074 0.199453 0.398351 0.878727 0 1 0 0.500000 0.500000 1 0 0.500000 0.905351 0.867506 0.500000 0.500000 0.500000 0.923940 0.859526 0.908742 0.500000 0.500000 0.900669 0.500000 0.500000 0.500000 0.897800 0.500000 +0.385880 +0.422074 0.393284 0.527128 0.442945 0.770441 0.195459 0.472521 0.254358 1 1 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.910190 0.885335 0.500000 0.885390 0.892733 0.500000 0.874513 0.890002 0.500000 0.862695 0.500000 0.868252 0.500000 0.890344 0.500000 +0.458238 +0.356462 0.853022 0.140018 0.683817 0.320105 0.207038 0.689699 0.774981 0.500000 0 0.500000 1 0 0 1 1 0.880587 0.908226 0.881288 0.860667 0.500000 0.500000 0.500000 0.886394 0.896850 0.500000 0.878667 0.898036 0.895844 0.887173 0.500000 0.500000 +0.594220 +0.826171 0.856452 0.193706 0.617341 0.655197 0.100425 0.837323 0.290815 1 0 1 0 0.500000 0.500000 0.500000 0 0.903410 0.906264 0.500000 0.891400 0.887725 0.884975 0.889589 0.912272 0.860415 0.891446 0.500000 0.500000 0.905171 0.500000 0.500000 0.500000 +0.577401 +0.655600 0.474166 0.708652 0.110627 0.310601 0.463090 0.158672 0.597470 0 0 0 1 0.500000 1 0 0.500000 0.886061 0.922528 0.909277 0.899710 0.500000 0.873290 0.879689 0.500000 0.892475 0.874525 0.861310 0.500000 0.901646 0.500000 0.500000 0.866906 +0.633780 +0.232696 0.723829 0.790184 0.814776 0.535711 0.694044 0.189578 0.843071 1 0 1 1 0.500000 1 0 0 0.500000 0.892370 0.867952 0.500000 0.500000 0.859991 0.878235 0.500000 0.877864 0.888628 0.500000 0.500000 0.912256 0.500000 0.913500 0.857988 +0.479893 +0.778960 0.172629 0.781600 0.544142 0.798254 0.455547 0.584313 0.741063 1 0.500000 1 0.500000 0.500000 0.500000 0 0.500000 0.899015 0.864835 0.859526 0.500000 0.884653 0.901360 0.500000 0.870014 0.867775 0.500000 0.901955 0.500000 0.913904 0.855563 0.882351 0.500000 +0.614887 +0.242559 0.889141 0.791429 0.152298 0.676977 0.552425 0.806147 0.312920 0 0.500000 1 0.500000 0 0.500000 0.500000 0 0.872183 0.500000 0.891549 0.870082 0.886717 0.891054 0.500000 0.866852 0.896930 0.868333 0.500000 0.854309 0.500000 0.883509 0.849813 0.857140 +0.620778 +0.167709 0.479823 0.592264 0.777457 0.523303 0.158406 0.129909 0.380284 0.500000 1 0.500000 1 0.500000 1 0 1 0.500000 0.857482 0.865428 0.879852 0.885037 0.874738 0.500000 0.878723 0.500000 0.500000 0.500000 0.907582 0.500000 0.895261 0.500000 0.500000 +0.449418 +0.336472 0.891389 0.177240 0.677137 0.844283 0.460073 0.647794 0.467189 0 1 0.500000 0 0 1 0.500000 0 0.885720 0.500000 0.888646 0.879118 0.894040 0.888545 0.874302 0.891226 0.500000 0.500000 0.884653 0.500000 0.913081 0.500000 0.500000 0.895220 +0.552176 +0.235884 0.702113 0.619593 0.106136 0.830121 0.849878 0.101400 0.438150 0 0 0 0 1 1 0.500000 0 0.897656 0.500000 0.834636 0.500000 0.880782 0.500000 0.881703 0.500000 0.851366 0.500000 0.863491 0.500000 0.877422 0.500000 0.862340 0.500000 +0.265317 +0.160030 0.231772 0.398566 0.501390 0.669874 0.365213 0.731982 0.224149 0 1 0.500000 1 1 1 0 1 0.879996 0.500000 0.886666 0.883297 0.892827 0.870626 0.856240 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.886248 +0.512883 +0.652467 0.612675 0.626206 0.835677 0.626484 0.713874 0.676271 0.684005 0 0.500000 0 0.500000 1 0.500000 0 0.500000 0.834853 0.898329 0.500000 0.500000 0.500000 0.877517 0.500000 0.500000 0.893308 0.857160 0.888754 0.500000 0.500000 0.500000 0.500000 0.500000 +0.155775 +0.335797 0.736861 0.628051 0.653275 0.598288 0.420967 0.184432 0.749807 0.500000 0.500000 0 0 0 1 1 0 0.852789 0.904570 0.500000 0.500000 0.500000 0.500000 0.500000 0.885391 0.500000 0.500000 0.899552 0.879634 0.500000 0.500000 0.874429 0.899292 +0.289887 +0.461254 0.498647 0.154877 0.822879 0.720710 0.364742 0.817250 0.521763 1 0 0.500000 1 1 0 0.500000 0.500000 0.882332 0.500000 0.890481 0.879466 0.913717 0.894822 0.905499 0.854143 0.870272 0.500000 0.870781 0.500000 0.500000 0.500000 0.889057 0.871452 +0.657702 +0.408874 0.151805 0.380318 0.205977 0.457899 0.111109 0.404719 0.716811 0.500000 0 0.500000 1 1 0.500000 0.500000 0 0.851257 0.500000 0.887397 0.500000 0.500000 0.910141 0.891991 0.875496 0.884287 0.500000 0.500000 0.877303 0.895654 0.500000 0.909179 0.881489 +0.475182 +0.667165 0.445960 0.246081 0.890002 0.861985 0.387840 0.230723 0.363465 0 1 0 0 0 0.500000 0.500000 0.500000 0.872090 0.888283 0.500000 0.908446 0.899812 0.877896 0.500000 0.886726 0.863218 0.876370 0.500000 0.832878 0.500000 0.500000 0.500000 0.500000 +0.494338 +0.336576 0.225481 0.257574 0.450618 0.137473 0.309973 0.322292 0.161622 0.500000 1 1 1 0 0.500000 1 0 0.861514 0.896798 0.908788 0.875656 0.873202 0.500000 0.892110 0.883708 0.840652 0.500000 0.907230 0.500000 0.500000 0.889822 0.500000 0.500000 +0.618116 +0.211987 0.661765 0.885165 0.361154 0.520960 0.780536 0.272515 0.364885 1 1 1 0.500000 0.500000 0 1 0.500000 0.880630 0.855247 0.886376 0.923647 0.500000 0.890881 0.888912 0.895526 0.883889 0.500000 0.878275 0.884143 0.500000 0.857201 0.500000 0.500000 +0.703334 +0.772126 0.519709 0.545604 0.559323 0.740421 0.462028 0.699511 0.877490 0 1 1 0 0.500000 1 0.500000 0.500000 0.870153 0.500000 0.850491 0.878138 0.893059 0.887007 0.868792 0.869771 0.866412 0.879870 0.500000 0.500000 0.892482 0.500000 0.500000 0.500000 +0.583963 +0.499249 0.677121 0.579019 0.570897 0.863245 0.763078 0.448151 0.275660 0.500000 0.500000 0.500000 0.500000 1 0 1 0.500000 0.898330 0.899636 0.882296 0.873058 0.883885 0.870484 0.882920 0.867456 0.896936 0.911909 0.500000 0.890630 0.500000 0.500000 0.500000 0.892954 +0.811802 +0.213540 0.359188 0.269233 0.390522 0.501826 0.785156 0.314869 0.208701 1 0 0.500000 0 1 1 1 1 0.863261 0.880456 0.872275 0.879925 0.500000 0.840866 0.866665 0.500000 0.885349 0.883837 0.858640 0.906169 0.899769 0.500000 0.888605 0.500000 +0.752265 +0.575929 0.638116 0.211638 0.397435 0.694358 0.670812 0.142510 0.158474 0.500000 1 1 0.500000 0 1 1 0 0.887029 0.898661 0.874616 0.873497 0.896786 0.858484 0.904467 0.500000 0.500000 0.879315 0.863375 0.865887 0.500000 0.873389 0.500000 0.500000 +0.642113 +0.293868 0.842415 0.268650 0.199847 0.623003 0.607807 0.404395 0.866546 0 1 1 0.500000 0.500000 0.500000 1 0.500000 0.886637 0.861783 0.500000 0.500000 0.500000 0.917788 0.877017 0.888178 0.500000 0.500000 0.500000 0.500000 0.500000 0.872437 0.867029 0.874853 +0.407793 +0.417667 0.725283 0.432999 0.816286 0.319250 0.232458 0.728361 0.160423 0.500000 0.500000 0.500000 0 1 1 0.500000 1 0.850141 0.847898 0.500000 0.862609 0.500000 0.500000 0.500000 0.500000 0.928929 0.500000 0.500000 0.901123 0.835090 0.500000 0.886137 0.905279 +0.351440 +0.855940 0.386628 0.661295 0.181934 0.366701 0.150017 0.737397 0.834618 0.500000 0.500000 0 0 1 0 0 0 0.500000 0.859760 0.886695 0.500000 0.500000 0.893908 0.879272 0.869218 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.301565 +0.898985 0.636987 0.445672 0.203456 0.483901 0.326277 0.732972 0.853543 0 0.500000 1 0 0.500000 1 0.500000 1 0.858129 0.500000 0.862524 0.895503 0.909159 0.887925 0.883537 0.900024 0.884154 0.884093 0.917986 0.500000 0.500000 0.500000 0.901315 0.875441 +0.658265 +0.653222 0.494536 0.668573 0.108731 0.434093 0.797804 0.892132 0.655391 0 0.500000 0.500000 1 1 0.500000 0 0 0.500000 0.878289 0.866311 0.500000 0.500000 0.909456 0.875582 0.848677 0.887305 0.500000 0.500000 0.500000 0.500000 0.884479 0.500000 0.893858 +0.404137 +0.387727 0.723024 0.859299 0.837460 0.183853 0.619363 0.237092 0.209175 0.500000 0 1 0 0 0.500000 1 0 0.898975 0.500000 0.500000 0.885456 0.875867 0.500000 0.500000 0.881234 0.933978 0.874790 0.897527 0.908328 0.500000 0.500000 0.500000 0.500000 +0.370701 +0.258970 0.716916 0.600851 0.301767 0.799526 0.240444 0.541240 0.813113 0.500000 0.500000 0 0.500000 0.500000 0 0.500000 0.500000 0.918559 0.881056 0.500000 0.864522 0.500000 0.864282 0.911864 0.859131 0.907760 0.862281 0.869466 0.893112 0.500000 0.895685 0.866434 0.500000 +0.719364 +0.378830 0.801397 0.484416 0.186511 0.493675 0.598155 0.588254 0.579000 0 0.500000 0 0 1 0 0 0.500000 0.500000 0.905555 0.884949 0.879889 0.857419 0.892616 0.874068 0.890940 0.500000 0.500000 0.500000 0.500000 0.878367 0.894023 0.500000 0.500000 +0.588691 +0.723933 0.148925 0.786527 0.163715 0.551689 0.443170 0.551422 0.753213 0 0 0 0 1 0.500000 0.500000 0.500000 0.879944 0.891610 0.888677 0.862894 0.874222 0.500000 0.863304 0.875494 0.500000 0.500000 0.500000 0.908034 0.853587 0.893801 0.500000 0.916885 +0.656548 +0.773926 0.380209 0.772703 0.625484 0.702501 0.730137 0.414265 0.345191 0 0 0 0 1 0 0 1 0.844718 0.500000 0.876579 0.500000 0.500000 0.500000 0.871593 0.886207 0.889499 0.901069 0.884427 0.888462 0.500000 0.917944 0.500000 0.885928 +0.428645 +0.680009 0.312463 0.573451 0.590824 0.583971 0.600033 0.146979 0.883937 0.500000 1 0.500000 0.500000 1 0.500000 0 0.500000 0.878600 0.500000 0.891020 0.890165 0.860414 0.858547 0.500000 0.500000 0.885702 0.878138 0.860209 0.500000 0.500000 0.858995 0.873788 0.500000 +0.571307 +0.859134 0.458723 0.355248 0.460928 0.625053 0.667066 0.381610 0.325285 1 1 0 0.500000 1 0.500000 0.500000 0 0.500000 0.893494 0.500000 0.865776 0.500000 0.876718 0.873660 0.913973 0.911439 0.500000 0.908685 0.871068 0.913135 0.907996 0.500000 0.500000 +0.598173 +0.636685 0.160454 0.146844 0.201141 0.784999 0.876287 0.758806 0.656453 0.500000 0 0 1 0.500000 0 1 0.500000 0.888949 0.867991 0.885558 0.500000 0.500000 0.895594 0.913725 0.896885 0.873597 0.880928 0.500000 0.500000 0.882005 0.891774 0.883921 0.500000 +0.585934 +0.374200 0.587834 0.719947 0.351304 0.561588 0.412033 0.431199 0.159730 1 0 1 0.500000 1 1 0 0.500000 0.883486 0.875369 0.899553 0.875783 0.500000 0.500000 0.895205 0.500000 0.869483 0.500000 0.500000 0.848535 0.500000 0.500000 0.909251 0.865448 +0.484032 +0.324018 0.370635 0.667585 0.306365 0.483514 0.221556 0.688958 0.308834 0.500000 1 1 0 0.500000 0 1 0.500000 0.859385 0.500000 0.500000 0.871316 0.500000 0.870078 0.500000 0.500000 0.500000 0.888272 0.892532 0.913670 0.904488 0.500000 0.500000 0.500000 +0.358060 +0.610484 0.601523 0.393064 0.828618 0.377787 0.861089 0.519155 0.846030 0 1 1 0 1 1 0.500000 0.500000 0.891009 0.908553 0.500000 0.897272 0.896763 0.500000 0.500000 0.880976 0.886291 0.884436 0.500000 0.889364 0.879328 0.890705 0.877402 0.898727 +0.656450 +0.887306 0.347758 0.171068 0.138080 0.117875 0.533216 0.360939 0.107119 0.500000 0.500000 0 1 1 0 0.500000 0.500000 0.855207 0.500000 0.887894 0.500000 0.874927 0.500000 0.906554 0.847664 0.847854 0.500000 0.500000 0.883007 0.881937 0.500000 0.892684 0.500000 +0.396760 +0.711507 0.897152 0.242059 0.481786 0.774506 0.522373 0.527700 0.458804 0 0 0.500000 1 1 0.500000 0.500000 0 0.500000 0.500000 0.891576 0.886963 0.856598 0.846297 0.500000 0.869231 0.881369 0.889276 0.500000 0.882392 0.860895 0.871061 0.500000 0.906484 +0.616126 +0.857947 0.519976 0.245584 0.535829 0.270640 0.847201 0.700823 0.529775 0 0 0.500000 0.500000 0.500000 0 1 0 0.878456 0.904770 0.905770 0.892179 0.894999 0.852923 0.882845 0.888887 0.872947 0.912310 0.918147 0.500000 0.874719 0.876776 0.895425 0.902758 +0 +0.518257 0.153929 0.878335 0.784300 0.327035 0.674964 0.327045 0.842699 0 0.500000 0.500000 0.500000 0.500000 1 0 0 0.871042 0.500000 0.875042 0.853715 0.889702 0.866801 0.890405 0.500000 0.876084 0.915185 0.883779 0.500000 0.500000 0.865174 0.916779 0.874503 +0.643910 +0.514282 0.540271 0.528029 0.389079 0.253085 0.205101 0.129868 0.492797 0 1 0 0.500000 0 0 1 0 0.500000 0.909135 0.874477 0.829320 0.500000 0.840174 0.873873 0.858400 0.870554 0.856162 0.920402 0.895254 0.500000 0.500000 0.857218 0.860182 +0.692670 +0.203909 0.891771 0.189835 0.363539 0.607624 0.531406 0.332798 0.740597 0 0 1 1 1 0.500000 1 1 0.865921 0.870180 0.887582 0.839008 0.500000 0.864044 0.883835 0.500000 0.500000 0.500000 0.500000 0.500000 0.901586 0.500000 0.884163 0.500000 +0.450741 +0.205025 0.452385 0.242714 0.299310 0.306538 0.181061 0.899015 0.340667 0 0.500000 0 0 0 0.500000 1 0 0.500000 0.899211 0.853245 0.888426 0.865584 0.872825 0.847366 0.895305 0.877811 0.500000 0.862455 0.871879 0.876555 0.886967 0.500000 0.879360 +0.808525 +0.748291 0.725890 0.233745 0.749057 0.793061 0.375245 0.542687 0.335034 1 0.500000 0.500000 1 1 0 1 1 0.500000 0.870617 0.913668 0.876234 0.500000 0.500000 0.876737 0.899887 0.500000 0.500000 0.876558 0.500000 0.500000 0.895867 0.500000 0.500000 +0.361522 +0.603168 0.839939 0.253522 0.339874 0.461232 0.129010 0.477758 0.285753 0.500000 0.500000 0 0 0.500000 0.500000 0 1 0.500000 0.888387 0.869431 0.500000 0.889997 0.887072 0.920676 0.500000 0.865137 0.500000 0.867394 0.500000 0.500000 0.500000 0.892917 0.924618 +0.424370 +0.183802 0.561443 0.369986 0.158240 0.542256 0.303831 0.295825 0.128956 0.500000 1 0.500000 0 0 1 0 0 0.877268 0.903429 0.896885 0.500000 0.863711 0.500000 0.882972 0.901463 0.500000 0.500000 0.847990 0.871051 0.500000 0.878871 0.500000 0.500000 +0.532930 +0.823326 0.245062 0.562256 0.432304 0.328555 0.627653 0.365367 0.128189 0 0 0.500000 0 1 0 1 0 0.903900 0.866242 0.920968 0.867778 0.855868 0.873015 0.500000 0.500000 0.500000 0.500000 0.898611 0.849554 0.876100 0.500000 0.500000 0.500000 +0.547121 +0.714504 0.866995 0.586914 0.455617 0.163114 0.857482 0.708001 0.381741 0 1 1 0 1 1 0 0 0.884415 0.500000 0.870480 0.500000 0.500000 0.899065 0.500000 0.890165 0.869159 0.874121 0.867065 0.852988 0.879996 0.500000 0.902395 0.500000 +0.516575 +0.808677 0.440102 0.186186 0.631827 0.122256 0.559453 0.525694 0.338003 0 1 0.500000 1 0.500000 0 0 1 0.500000 0.500000 0.500000 0.872820 0.500000 0.500000 0.500000 0.890906 0.500000 0.500000 0.898378 0.881503 0.500000 0.500000 0.500000 0.500000 +0.100044 +0.564224 0.718424 0.348226 0.830370 0.237236 0.227266 0.664895 0.682887 1 1 0 1 0.500000 0.500000 0.500000 1 0.902476 0.903111 0.885083 0.876166 0.500000 0.500000 0.880654 0.500000 0.868276 0.500000 0.889394 0.889888 0.500000 0.904449 0.500000 0.500000 +0.483673 +0.584505 0.778462 0.613228 0.323012 0.259147 0.490066 0.733343 0.700889 1 0.500000 1 0.500000 0 1 0.500000 1 0.500000 0.500000 0.500000 0.896739 0.855101 0.500000 0.893229 0.916673 0.859662 0.500000 0.894034 0.500000 0.881082 0.500000 0.871913 0.500000 +0.385870 +0.423125 0.462146 0.279482 0.654206 0.243632 0.520351 0.132914 0.481009 0.500000 1 0 0 1 0 0 1 0.880710 0.869616 0.866265 0.500000 0.500000 0.874704 0.893401 0.500000 0.500000 0.878374 0.877791 0.893954 0.500000 0.892763 0.500000 0.917406 +0.595021 +0.635178 0.441373 0.753652 0.427793 0.510133 0.412749 0.470284 0.256173 1 1 1 1 1 0 0.500000 0.500000 0.916822 0.500000 0.896845 0.886024 0.908251 0.873252 0.865538 0.854251 0.880759 0.500000 0.881544 0.887418 0.879981 0.869895 0.500000 0.500000 +0.651062 +0.878403 0.317928 0.407342 0.790189 0.114434 0.285290 0.669974 0.456898 1 0 1 0 0 1 0 1 0.876646 0.861688 0.898292 0.903090 0.874149 0.875144 0.500000 0.500000 0.500000 0.500000 0.500000 0.894524 0.500000 0.500000 0.893170 0.500000 +0.422644 +0.843080 0.253778 0.639919 0.120787 0.663426 0.803201 0.402112 0.891767 0 0.500000 1 0.500000 0 0 1 1 0.500000 0.885603 0.857028 0.893151 0.866949 0.899457 0.878614 0.500000 0.500000 0.500000 0.892110 0.912757 0.500000 0.500000 0.500000 0.500000 +0.411581 +0.470852 0.206935 0.564229 0.796675 0.315647 0.474624 0.404715 0.647213 0 1 0 0.500000 1 1 0 0 0.873082 0.500000 0.921305 0.886356 0.893874 0.878040 0.869793 0.500000 0.863644 0.500000 0.500000 0.903539 0.831755 0.889552 0.500000 0.877278 +0.663934 +0.864103 0.776633 0.267674 0.604724 0.593054 0.460490 0.456714 0.196436 0 0 0.500000 1 1 0 0 1 0.915081 0.894977 0.892381 0.868212 0.500000 0.867924 0.500000 0.882529 0.500000 0.884661 0.500000 0.500000 0.873167 0.500000 0.500000 0.500000 +0.422593 +0.552356 0.449453 0.564444 0.403304 0.127172 0.777493 0.328469 0.786336 0 0 0 0 0.500000 0.500000 1 0.500000 0.890858 0.500000 0.500000 0.859290 0.889667 0.904023 0.887109 0.894231 0.500000 0.500000 0.500000 0.500000 0.868051 0.500000 0.500000 0.500000 +0.471606 +0.454225 0.761713 0.705444 0.595539 0.631401 0.150052 0.531024 0.323234 1 0 1 0 0.500000 1 1 0 0.901985 0.847074 0.500000 0.875771 0.881894 0.854140 0.874926 0.895617 0.500000 0.922023 0.500000 0.883709 0.500000 0.880882 0.500000 0.876256 +0.576294 +0.714849 0.258978 0.842407 0.130361 0.779745 0.579202 0.443435 0.220417 1 0 1 0.500000 0 0 0 0 0.500000 0.876721 0.500000 0.880064 0.500000 0.857235 0.500000 0.858958 0.500000 0.878293 0.872604 0.500000 0.500000 0.851967 0.500000 0.500000 +0.261001 +0.750096 0.668498 0.450088 0.821773 0.545404 0.410996 0.602056 0.557212 0.500000 0 0.500000 0 0.500000 1 0.500000 0 0.860358 0.904169 0.859882 0.862144 0.500000 0.870610 0.500000 0.840447 0.891938 0.500000 0.871099 0.880703 0.500000 0.860750 0.500000 0.907238 +0.602611 +0.887301 0.267967 0.717010 0.590700 0.888050 0.864677 0.828243 0.477847 0 0.500000 0.500000 0.500000 0.500000 0 1 0 0.500000 0.500000 0.867175 0.846182 0.500000 0.901123 0.884646 0.876327 0.500000 0.840232 0.861015 0.874898 0.500000 0.877279 0.942635 0.500000 +0.402895 +0.415334 0.713576 0.480693 0.808603 0.793686 0.488507 0.137183 0.236086 0 1 1 0.500000 0 0.500000 1 1 0.889565 0.868870 0.500000 0.500000 0.891985 0.869263 0.877938 0.883497 0.865466 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.414633 +0.733619 0.531489 0.137337 0.427748 0.556197 0.209311 0.493902 0.404744 0 1 0 1 1 0 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.910090 0.888298 0.500000 0.899007 0.868230 0.895148 0.894438 0.500000 0.840282 0.500000 0.500000 0.500000 +0.274540 +0.240725 0.460878 0.581796 0.849160 0.832807 0.391631 0.741013 0.802944 1 1 1 0 0.500000 0 1 0.500000 0.872306 0.891768 0.500000 0.500000 0.861603 0.869005 0.854914 0.859402 0.500000 0.500000 0.500000 0.889413 0.500000 0.500000 0.885733 0.500000 +0.409646 +0.295341 0.788305 0.444699 0.648367 0.496046 0.451304 0.472446 0.594406 1 1 1 1 0.500000 0.500000 0 0.500000 0.500000 0.885237 0.902137 0.875117 0.858513 0.898810 0.500000 0.892353 0.878582 0.886935 0.872041 0.876612 0.500000 0.888489 0.500000 0.885766 +0.763274 +0.485112 0.676521 0.889076 0.497516 0.347344 0.405399 0.139266 0.837626 0.500000 1 1 1 0.500000 0 0 0.500000 0.875638 0.868427 0.919400 0.893006 0.868058 0.903039 0.862847 0.908948 0.500000 0.500000 0.883218 0.500000 0.872832 0.500000 0.853195 0.918280 +0.817311 +0.577374 0.119495 0.556885 0.558872 0.364771 0.513235 0.544933 0.494272 0 1 0 1 0.500000 0.500000 0 0.500000 0.884545 0.876730 0.893039 0.500000 0.864055 0.500000 0.868679 0.859538 0.500000 0.908624 0.500000 0.500000 0.895351 0.887254 0.887021 0.500000 +0.497386 +0.650613 0.656944 0.665056 0.196890 0.526954 0.719439 0.608446 0.752016 0 0 1 0 1 0 0.500000 0 0.500000 0.892024 0.882792 0.500000 0.901358 0.500000 0.500000 0.908934 0.500000 0.901894 0.850909 0.500000 0.500000 0.904730 0.899293 0.500000 +0.364057 +0.197208 0.270949 0.446709 0.830063 0.668176 0.632637 0.133439 0.514475 0.500000 0.500000 1 1 0.500000 0 0.500000 0 0.911746 0.883718 0.878428 0.894638 0.500000 0.894048 0.882188 0.896693 0.500000 0.869273 0.500000 0.500000 0.884581 0.894092 0.898786 0.500000 +0.773896 +0.770318 0.535477 0.758688 0.275261 0.103216 0.557002 0.127605 0.853224 0 0 0 0.500000 0.500000 0.500000 1 0.500000 0.926157 0.865019 0.897232 0.890859 0.914037 0.895799 0.894678 0.922285 0.500000 0.500000 0.500000 0.500000 0.500000 0.852338 0.901153 0.872701 +0.651894 +0.162178 0.332347 0.354560 0.885879 0.361915 0.503162 0.842578 0.610283 0.500000 0 0 0.500000 1 0 1 1 0.875681 0.849635 0.906977 0.500000 0.500000 0.872698 0.891989 0.892823 0.500000 0.884717 0.846535 0.881178 0.879008 0.871612 0.500000 0.500000 +0.591461 +0.796230 0.844526 0.544530 0.114821 0.395158 0.813238 0.287668 0.630057 1 1 0 0 1 0 0.500000 0 0.888581 0.893084 0.892996 0.867990 0.875819 0.500000 0.500000 0.866486 0.500000 0.894790 0.500000 0.893287 0.867229 0.500000 0.500000 0.500000 +0.456863 +0.536091 0.683554 0.692121 0.672953 0.123961 0.404102 0.745363 0.315890 0.500000 1 1 1 0.500000 0 1 0.500000 0.876528 0.500000 0.920180 0.851751 0.500000 0.500000 0.887836 0.867282 0.873520 0.859664 0.892833 0.870639 0.500000 0.500000 0.873387 0.500000 +0.450383 +0.627230 0.451592 0.508272 0.320476 0.848267 0.224692 0.604188 0.382349 1 0 0 1 0 1 0 1 0.500000 0.500000 0.886970 0.902246 0.878051 0.883762 0.888094 0.500000 0.858053 0.912713 0.898869 0.885040 0.869178 0.893443 0.500000 0.921988 +0.745253 +0.263188 0.401807 0.571938 0.754204 0.103662 0.843713 0.480973 0.708920 0.500000 0 1 0 0.500000 1 1 0.500000 0.500000 0.869675 0.500000 0.886339 0.898352 0.885457 0.885086 0.500000 0.867249 0.878648 0.887939 0.902125 0.500000 0.882936 0.890447 0.887628 +0.684198 +0.473469 0.190874 0.219154 0.323556 0.613332 0.474115 0.650018 0.247275 0 0 0.500000 1 0.500000 0 1 1 0.862928 0.500000 0.500000 0.500000 0.893490 0.860635 0.889067 0.891638 0.500000 0.912907 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.321901 +0.137871 0.598764 0.429853 0.739025 0.192600 0.421018 0.243567 0.231577 0 0.500000 0.500000 0 0.500000 0.500000 0.500000 1 0.861621 0.849540 0.881784 0.500000 0.500000 0.895070 0.864542 0.856255 0.857912 0.500000 0.500000 0.500000 0.898715 0.849811 0.500000 0.881528 +0.512732 +0.793075 0.611439 0.647903 0.699173 0.802777 0.475589 0.623100 0.638215 0 1 0 0 0.500000 0 1 0 0.867696 0.880593 0.892443 0.879927 0.908828 0.877363 0.914741 0.894614 0.500000 0.877748 0.500000 0.872011 0.500000 0.923391 0.885791 0.896425 +0.719448 +0.170765 0.647722 0.867244 0.768881 0.378255 0.728913 0.636655 0.458495 0.500000 0.500000 0.500000 0.500000 0.500000 0 0 0 0.890363 0.500000 0.500000 0.500000 0.500000 0.875174 0.864752 0.500000 0.500000 0.500000 0.500000 0.500000 0.853165 0.841802 0.858688 0.902001 +0.238199 +0.204608 0.652819 0.127432 0.341289 0.242231 0.179465 0.461800 0.868253 0 1 1 0.500000 1 0 0 0 0.881428 0.902370 0.891847 0.881351 0.918424 0.870889 0.500000 0.874394 0.500000 0.500000 0.845820 0.500000 0.854251 0.868217 0.500000 0.871601 +0.748894 +0.772605 0.570726 0.394418 0.376686 0.765732 0.250223 0.890323 0.662368 0.500000 0.500000 1 1 0.500000 0.500000 0 1 0.500000 0.885792 0.908847 0.897523 0.500000 0.899250 0.500000 0.500000 0.862306 0.860397 0.500000 0.500000 0.895924 0.500000 0.500000 0.848611 +0.382793 +0.826641 0.751437 0.799945 0.882517 0.664557 0.614761 0.482630 0.556588 0.500000 0 0.500000 0.500000 0 1 0.500000 0 0.874648 0.890004 0.894731 0.904258 0.850530 0.861234 0.893395 0.848809 0.500000 0.500000 0.894846 0.500000 0.847034 0.500000 0.889565 0.851935 +0.744001 +0.604299 0.650822 0.169175 0.320396 0.290605 0.396277 0.433252 0.259743 0 1 1 0 1 0 0 0 0.877921 0.866886 0.869417 0.846134 0.500000 0.858487 0.893224 0.837532 0.904969 0.500000 0.500000 0.500000 0.908733 0.500000 0.500000 0.500000 +0.529609 +0.890992 0.696363 0.780588 0.334981 0.629138 0.528104 0.848041 0.432146 1 0 1 1 0.500000 0.500000 0 0 0.887955 0.871291 0.500000 0.852799 0.500000 0.500000 0.889196 0.500000 0.869785 0.874531 0.500000 0.902666 0.869963 0.860922 0.500000 0.861854 +0.534901 +0.503301 0.773127 0.543297 0.195917 0.177850 0.531684 0.220424 0.867111 0 0 1 0.500000 1 0 1 0 0.500000 0.832493 0.500000 0.867865 0.860572 0.882014 0.500000 0.890631 0.500000 0.843091 0.500000 0.874040 0.500000 0.500000 0.500000 0.500000 +0.299040 +0.510182 0.431262 0.418319 0.483189 0.362776 0.575872 0.477319 0.106614 1 0.500000 1 1 1 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.895232 0.500000 0.873061 0.852362 0.903574 0.857097 0.500000 0.873366 0.894289 0.843757 0.880352 0.500000 0.884379 +0.580405 +0.406267 0.325502 0.506907 0.579253 0.507711 0.496207 0.747764 0.670591 0.500000 0 0 1 0.500000 0.500000 0 0 0.852097 0.903341 0.911320 0.500000 0.500000 0.500000 0.890966 0.898691 0.847806 0.863724 0.879987 0.500000 0.883855 0.500000 0.856984 0.500000 +0.557382 +0.417253 0.176168 0.262914 0.592414 0.897154 0.261581 0.589645 0.756422 0.500000 1 0 1 1 0.500000 0.500000 0.500000 0.500000 0.877462 0.932362 0.869146 0.893818 0.876377 0.902189 0.847106 0.500000 0.872163 0.500000 0.500000 0.901201 0.887043 0.907971 0.873876 +0.835721 +0.768804 0.685420 0.854304 0.895724 0.226663 0.127192 0.313307 0.351883 1 1 0 1 0.500000 0.500000 0.500000 0 0.901935 0.889171 0.891843 0.881421 0.860460 0.869434 0.894437 0.500000 0.500000 0.500000 0.500000 0.500000 0.891496 0.880600 0.500000 0.500000 +0.606925 +0.365870 0.583104 0.421598 0.394566 0.466430 0.282586 0.828772 0.571051 0 0.500000 1 0.500000 0 1 0 1 0.876829 0.884436 0.871703 0.863794 0.500000 0.500000 0.914162 0.500000 0.882919 0.892918 0.500000 0.500000 0.884966 0.891488 0.854462 0.865888 +0.628413 +0.188585 0.150383 0.485173 0.103190 0.121355 0.608166 0.838570 0.437816 0 0 0 0 0 0 0.500000 0.500000 0.500000 0.895022 0.856106 0.500000 0.500000 0.908630 0.866366 0.500000 0.902706 0.896701 0.500000 0.500000 0.500000 0.500000 0.921177 0.500000 +0.389965 +0.242396 0.552272 0.637376 0.580095 0.259684 0.701930 0.729023 0.885901 1 0.500000 0 1 0 0.500000 0 1 0.916612 0.500000 0.900217 0.887596 0.500000 0.500000 0.500000 0.500000 0.896674 0.868720 0.500000 0.877492 0.500000 0.881534 0.500000 0.500000 +0.315026 +0.788351 0.411125 0.386114 0.818523 0.308343 0.128685 0.604772 0.605275 0 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.887151 0.500000 0.882560 0.883223 0.878872 0.500000 0.875126 0.500000 0.878935 0.500000 0.870583 0.886343 0.500000 0.500000 0.903400 +0.413369 +0.446489 0.338327 0.862127 0.375252 0.664690 0.451305 0.488962 0.591754 0 0.500000 0.500000 0.500000 0.500000 0 0 0 0.911645 0.500000 0.892038 0.500000 0.876168 0.873606 0.878045 0.889562 0.500000 0.912098 0.500000 0.500000 0.880131 0.500000 0.846592 0.870666 +0.587638 +0.207632 0.271200 0.660770 0.162862 0.620280 0.444271 0.655820 0.174599 0 1 0.500000 0.500000 0 1 1 0 0.890436 0.500000 0.500000 0.871033 0.873913 0.500000 0.854109 0.500000 0.871199 0.896006 0.500000 0.500000 0.896404 0.500000 0.500000 0.500000 +0.362471 +0.899156 0.309277 0.624381 0.565670 0.216157 0.354835 0.704689 0.702965 0.500000 0 0 0.500000 1 1 0.500000 0.500000 0.860746 0.500000 0.500000 0.885586 0.864354 0.912137 0.500000 0.500000 0.500000 0.909412 0.500000 0.500000 0.921785 0.880930 0.500000 0.500000 +0.312926 +0.798892 0.775739 0.437927 0.446834 0.541279 0.680984 0.706415 0.125347 0.500000 1 1 0 1 0 0.500000 0.500000 0.873506 0.895617 0.853409 0.873308 0.875448 0.855806 0.867459 0.887928 0.879861 0.500000 0.500000 0.884690 0.500000 0.878280 0.874205 0.891902 +0.742198 +0.397976 0.181693 0.311690 0.380764 0.498893 0.294426 0.610704 0.305662 1 0 0 0.500000 0.500000 0 1 1 0.500000 0.885192 0.859601 0.500000 0.893044 0.854190 0.884242 0.923505 0.867417 0.500000 0.500000 0.858765 0.500000 0.896622 0.500000 0.500000 +0.578151 +0.759261 0.298671 0.756431 0.737405 0.167460 0.293981 0.332114 0.435903 1 0.500000 0 1 1 0.500000 0.500000 0 0.854817 0.868291 0.500000 0.500000 0.500000 0.884269 0.883241 0.927516 0.500000 0.500000 0.883531 0.500000 0.849960 0.883842 0.890425 0.878258 +0.545232 +0.456157 0.430914 0.180041 0.555372 0.731430 0.551980 0.530837 0.383801 0 0 0 0.500000 0 0.500000 0 0 0.877858 0.500000 0.500000 0.500000 0.878823 0.500000 0.893702 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.886287 0.880976 0.500000 +0.173985 +0.540272 0.543106 0.183474 0.651178 0.548715 0.852674 0.695774 0.471590 0.500000 0 0 0.500000 0 1 0.500000 1 0.897526 0.903962 0.904612 0.894263 0.870436 0.896220 0.500000 0.863174 0.500000 0.500000 0.892769 0.854500 0.500000 0.500000 0.500000 0.500000 +0.582559 +0.731419 0.356033 0.845543 0.844471 0.417049 0.739854 0.524119 0.270324 0 0.500000 1 0 0 0.500000 0 1 0.907380 0.895775 0.906018 0.869568 0.871697 0.887773 0.878573 0.863297 0.500000 0.500000 0.891566 0.500000 0.500000 0.890489 0.860926 0.500000 +0.642215 +0.435584 0.266141 0.425052 0.843185 0.407204 0.871205 0.141656 0.205902 1 0 1 1 1 0.500000 0.500000 0.500000 0.877831 0.863549 0.956609 0.500000 0.898545 0.889809 0.882161 0.500000 0.500000 0.873970 0.884222 0.500000 0.500000 0.889510 0.889117 0.500000 +0.593048 +0.726778 0.758168 0.324008 0.210652 0.624735 0.124611 0.140977 0.806796 1 0 1 0.500000 0.500000 1 0.500000 0.500000 0.893726 0.898293 0.909579 0.906880 0.872263 0.876730 0.500000 0.895764 0.863131 0.889009 0.888569 0.884942 0.913328 0.500000 0.885113 0.888188 +0.873015 +0.201616 0.768277 0.639237 0.660985 0.573141 0.181029 0.361462 0.893996 1 1 1 0 0 1 0 0 0.500000 0.867920 0.500000 0.500000 0.856892 0.850269 0.885484 0.859840 0.500000 0.500000 0.500000 0.500000 0.891338 0.500000 0.848668 0.876328 +0.446838 +0.580391 0.423950 0.720949 0.384891 0.264580 0.591920 0.593871 0.581549 1 0 0 0.500000 1 0 0.500000 1 0.500000 0.852956 0.896991 0.889448 0.890287 0.865509 0.850503 0.918378 0.872309 0.845666 0.855833 0.873120 0.500000 0.500000 0.877072 0.879957 +0.709996 +0.500576 0.578924 0.577054 0.340075 0.636971 0.165325 0.414654 0.496776 1 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.891410 0.859781 0.888778 0.500000 0.500000 0.896233 0.908457 0.500000 0.500000 0.916464 0.890432 0.862874 0.500000 0.500000 +0.419888 +0.645383 0.756537 0.116170 0.665488 0.262641 0.800257 0.521194 0.714119 1 0.500000 0.500000 0 0.500000 0.500000 1 0.500000 0.500000 0.894448 0.890791 0.500000 0.500000 0.500000 0.880589 0.891611 0.500000 0.886464 0.871030 0.901845 0.888169 0.879290 0.886092 0.915589 +0.655594 +0.629598 0.256988 0.201495 0.334448 0.472078 0.812632 0.513738 0.198364 0.500000 0 0 1 1 0 1 0.500000 0.500000 0.893546 0.889280 0.866004 0.860296 0.500000 0.897288 0.889830 0.500000 0.866193 0.500000 0.877824 0.869640 0.865770 0.500000 0.882346 +0.625939 +0.111295 0.337778 0.429391 0.172731 0.888518 0.725276 0.310056 0.115480 0 0 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.849824 0.867269 0.903831 0.500000 0.500000 0.873488 0.886314 0.500000 0.500000 0.895797 0.500000 0.923427 0.500000 0.500000 0.894421 0.500000 +0.431986 +0.483198 0.517306 0.163191 0.553285 0.861739 0.248211 0.674905 0.120217 1 0.500000 0.500000 1 0 0 0.500000 0.500000 0.885189 0.859961 0.874575 0.897936 0.500000 0.886995 0.878688 0.500000 0.500000 0.879805 0.500000 0.893682 0.500000 0.914468 0.500000 0.909959 +0.549827 +0.722973 0.805091 0.171880 0.192083 0.542444 0.263518 0.352575 0.327570 1 1 0 0.500000 0 0.500000 0.500000 0 0.906425 0.876382 0.878683 0.884673 0.911154 0.500000 0.500000 0.911895 0.500000 0.500000 0.500000 0.500000 0.906969 0.500000 0.500000 0.879474 +0.479280 +0.358065 0.596281 0.296847 0.509502 0.205708 0.737395 0.789907 0.175104 1 0 1 0.500000 0 0.500000 0 0.500000 0.500000 0.881677 0.500000 0.868271 0.872591 0.895036 0.853012 0.500000 0.500000 0.500000 0.500000 0.870018 0.500000 0.500000 0.861022 0.500000 +0.345416 +0.767720 0.876289 0.785360 0.537860 0.817565 0.214367 0.662363 0.541285 1 0.500000 1 0.500000 1 0.500000 0.500000 1 0.873774 0.500000 0.500000 0.893995 0.844697 0.500000 0.909831 0.888949 0.885776 0.881803 0.500000 0.912265 0.867935 0.500000 0.500000 0.890913 +0.519686 +0.416826 0.197384 0.837513 0.276998 0.511746 0.316461 0.562230 0.799931 1 1 0 1 0.500000 0.500000 0 0 0.894401 0.890292 0.846066 0.500000 0.895660 0.896466 0.866759 0.872869 0.884777 0.500000 0.500000 0.884695 0.922545 0.500000 0.894112 0.500000 +0.689298 +0.601699 0.157442 0.733557 0.294464 0.454257 0.500136 0.379117 0.819285 0 0.500000 1 1 1 0 1 0.500000 0.873957 0.891345 0.874581 0.865970 0.500000 0.895566 0.500000 0.889326 0.500000 0.500000 0.887863 0.500000 0.500000 0.500000 0.500000 0.500000 +0.419534 +0.454259 0.525894 0.496285 0.467522 0.235191 0.248449 0.685681 0.437891 1 1 0 0 0.500000 0 0 0.500000 0.868663 0.500000 0.888906 0.500000 0.500000 0.883453 0.894914 0.881810 0.500000 0.500000 0.500000 0.874099 0.500000 0.500000 0.904812 0.889328 +0.473364 +0.717555 0.149305 0.764643 0.347237 0.220223 0.685481 0.277086 0.380029 0 1 0.500000 0.500000 1 1 0.500000 1 0.856927 0.888484 0.857278 0.867581 0.500000 0.897571 0.885774 0.901631 0.898555 0.875659 0.500000 0.865826 0.878218 0.852287 0.878110 0.861515 +0.717296 +0.223965 0.380820 0.644531 0.837061 0.686090 0.116882 0.633748 0.394716 0.500000 0 0 0.500000 0.500000 0.500000 0 0 0.863305 0.895606 0.500000 0.877615 0.500000 0.500000 0.500000 0.870392 0.891540 0.500000 0.500000 0.891705 0.500000 0.500000 0.877110 0.500000 +0.283268 +0.864723 0.793067 0.476656 0.156730 0.766556 0.513665 0.571333 0.195577 1 0 0.500000 1 0.500000 0 1 1 0.884113 0.858697 0.863423 0.500000 0.876350 0.893409 0.887658 0.883620 0.500000 0.885700 0.500000 0.500000 0.903001 0.500000 0.500000 0.500000 +0.524095 +0.260491 0.670437 0.234794 0.783663 0.830824 0.653132 0.595980 0.844281 0.500000 0 0 0.500000 1 1 0 0.500000 0.903216 0.850405 0.881611 0.899466 0.890161 0.913125 0.500000 0.886717 0.500000 0.500000 0.864274 0.870860 0.890301 0.500000 0.500000 0.500000 +0.581809 +0.371427 0.375644 0.845008 0.645123 0.376600 0.118874 0.511944 0.436651 0.500000 0 1 0.500000 1 1 0 1 0.863231 0.873236 0.887824 0.880190 0.869467 0.500000 0.853381 0.897528 0.874122 0.500000 0.500000 0.500000 0.500000 0.881667 0.500000 0.500000 +0.596523 +0.318098 0.879193 0.802782 0.562750 0.733139 0.463567 0.166901 0.502888 0 1 0 0.500000 1 1 0.500000 0.500000 0.500000 0.857650 0.848422 0.893162 0.896419 0.865937 0.867189 0.887720 0.876343 0.909117 0.878328 0.500000 0.876428 0.500000 0.886299 0.500000 +0.701789 +0.370250 0.590288 0.370761 0.379853 0.397853 0.510648 0.256041 0.277983 0 0.500000 0 1 1 0.500000 0.500000 0.500000 0.897713 0.890291 0.892826 0.896168 0.500000 0.885021 0.886007 0.899703 0.907084 0.881591 0.873715 0.500000 0.852200 0.500000 0.891848 0.911518 +0.732465 +0.233039 0.887192 0.838293 0.591977 0.760540 0.192529 0.835060 0.648994 1 0 0 1 0 1 0 1 0.500000 0.883114 0.885084 0.884276 0.846259 0.871232 0.871015 0.900030 0.500000 0.896764 0.500000 0.500000 0.857914 0.500000 0.893340 0.875607 +0.606929 +0.140571 0.371915 0.568325 0.833017 0.723302 0.736218 0.220280 0.839196 0.500000 0 0.500000 0 0 0.500000 0 1 0.849525 0.500000 0.857665 0.864063 0.500000 0.500000 0.500000 0.875870 0.500000 0.500000 0.903780 0.847450 0.500000 0.500000 0.500000 0.500000 +0.222060 +0.447791 0.631243 0.694728 0.495493 0.754003 0.735787 0.176568 0.576304 0.500000 0.500000 1 0.500000 0.500000 1 1 0 0.875235 0.866182 0.927615 0.862856 0.500000 0.858872 0.898525 0.908366 0.500000 0.895784 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.583332 +0.712317 0.103740 0.558092 0.852804 0.480182 0.225793 0.710013 0.596227 0 0 0 0 0.500000 0 0 1 0.878321 0.500000 0.867279 0.886882 0.882592 0.881385 0.892584 0.852118 0.864919 0.500000 0.881847 0.887434 0.878665 0.500000 0.872902 0.500000 +0.651931 +0.526506 0.389426 0.482804 0.283193 0.631233 0.536905 0.757073 0.319318 0.500000 0.500000 0 1 0.500000 1 0.500000 0.500000 0.882077 0.873806 0.878648 0.500000 0.891891 0.500000 0.853793 0.869983 0.890132 0.904246 0.899288 0.860317 0.500000 0.888857 0.894879 0.500000 +0.683485 +0.246465 0.140639 0.727268 0.197531 0.108617 0.123457 0.740660 0.476035 0 1 0 0.500000 0 0.500000 0.500000 1 0.500000 0.881366 0.898758 0.881453 0.884173 0.878142 0.872659 0.863979 0.500000 0.857004 0.871510 0.500000 0.500000 0.500000 0.500000 0.500000 +0.605601 +0.535003 0.796522 0.148648 0.121955 0.294909 0.739303 0.862262 0.242000 0 0.500000 1 0 0.500000 0.500000 0.500000 1 0.891029 0.500000 0.878720 0.881797 0.878825 0.500000 0.500000 0.879434 0.863741 0.500000 0.889839 0.500000 0.500000 0.500000 0.500000 0.911748 +0.420121 +0.859910 0.701280 0.205966 0.267587 0.733022 0.101221 0.613283 0.451307 0.500000 0.500000 0 1 1 0.500000 1 1 0.877242 0.875971 0.500000 0.874444 0.872835 0.863570 0.857185 0.867464 0.500000 0.908765 0.500000 0.871642 0.500000 0.500000 0.500000 0.500000 +0.560958 +0.513541 0.877241 0.787448 0.445319 0.670085 0.719342 0.588024 0.726517 0.500000 1 0.500000 1 0 0.500000 0 0 0.874454 0.500000 0.865785 0.875480 0.877547 0.880155 0.863454 0.500000 0.500000 0.886004 0.855312 0.880592 0.500000 0.915764 0.500000 0.881225 +0.630358 +0.301829 0.232494 0.534335 0.763053 0.825965 0.601217 0.849155 0.743825 1 0 0.500000 0 1 0 0 0.500000 0.854724 0.882398 0.880521 0.500000 0.500000 0.876797 0.907129 0.858437 0.500000 0.893403 0.500000 0.500000 0.500000 0.862612 0.500000 0.900023 +0.405636 +0.492904 0.429742 0.473926 0.674922 0.418927 0.314088 0.684337 0.245868 0.500000 0.500000 1 0.500000 0 0 0 0 0.500000 0.877835 0.881048 0.877521 0.898829 0.877335 0.500000 0.907834 0.880504 0.893871 0.500000 0.500000 0.865456 0.500000 0.875625 0.500000 +0.597734 +0.730477 0.527527 0.740996 0.513513 0.405079 0.365305 0.678473 0.891086 1 0.500000 0 1 1 0 0 0 0.891378 0.500000 0.849159 0.500000 0.896915 0.906345 0.908753 0.840975 0.874418 0.500000 0.500000 0.500000 0.500000 0.500000 0.859925 0.869160 +0.436810 +0.282287 0.605301 0.694972 0.595565 0.265226 0.247495 0.640760 0.650426 1 0.500000 0.500000 1 0 0.500000 0 0 0.902219 0.861426 0.920691 0.852730 0.500000 0.500000 0.500000 0.891305 0.827484 0.895538 0.886199 0.876997 0.500000 0.500000 0.500000 0.834479 +0.510700 +0.556772 0.274389 0.654300 0.227883 0.630808 0.589138 0.242234 0.218916 0 0 1 1 0.500000 0 0 0.500000 0.876114 0.882209 0.866178 0.885240 0.881793 0.879545 0.893460 0.908272 0.869246 0.500000 0.500000 0.883172 0.500000 0.500000 0.500000 0.847002 +0.659495 +0.768568 0.723217 0.112758 0.127372 0.143195 0.480724 0.534967 0.193936 0.500000 0 0.500000 1 0.500000 0.500000 0 1 0.500000 0.898923 0.500000 0.860961 0.500000 0.888475 0.903385 0.892742 0.500000 0.500000 0.500000 0.500000 0.869331 0.500000 0.844070 0.875721 +0.369282 +0.735974 0.120790 0.714385 0.472047 0.299486 0.854506 0.277567 0.462452 1 1 0 0.500000 0 0.500000 0.500000 1 0.870285 0.913034 0.894271 0.900086 0.500000 0.500000 0.871794 0.500000 0.500000 0.850880 0.500000 0.872421 0.907961 0.500000 0.500000 0.500000 +0.485772 +0.319070 0.403165 0.196391 0.150961 0.600740 0.840168 0.105548 0.545054 0 0 1 1 1 0.500000 0 0 0.876091 0.500000 0.918477 0.876607 0.891316 0.837466 0.500000 0.874199 0.500000 0.500000 0.500000 0.885977 0.500000 0.917319 0.890057 0.876947 +0.590340 +0.887253 0.253323 0.201258 0.334954 0.179279 0.536042 0.654122 0.422564 0.500000 1 0.500000 0.500000 0 0.500000 0.500000 0 0.898418 0.885716 0.905732 0.860772 0.500000 0.882656 0.500000 0.860297 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.883832 0.500000 +0.482347 +0.227817 0.321229 0.698147 0.351043 0.171652 0.362058 0.516295 0.762332 1 1 1 1 0.500000 1 0.500000 0.500000 0.500000 0.918261 0.500000 0.500000 0.500000 0.870897 0.894740 0.500000 0.854039 0.500000 0.500000 0.883546 0.500000 0.897484 0.879801 0.885029 +0.406890 +0.785681 0.346896 0.876469 0.618453 0.144580 0.548971 0.355693 0.739688 0 1 0 0.500000 0.500000 0.500000 0 0 0.880270 0.871459 0.876315 0.864362 0.874209 0.923382 0.879589 0.891364 0.500000 0.887910 0.884150 0.878293 0.894938 0.890358 0.890671 0.883843 +0.888616 +0.694861 0.322515 0.705156 0.550397 0.322747 0.611672 0.574273 0.808110 0.500000 1 0 0 0 1 1 0.500000 0.500000 0.500000 0.500000 0.895078 0.890350 0.896499 0.871121 0.500000 0.500000 0.906538 0.830385 0.500000 0.904138 0.859889 0.925757 0.872743 +0.530063 +0.713581 0.551857 0.855403 0.161760 0.502427 0.483119 0.788176 0.668937 0.500000 1 0 0 0 0.500000 1 0 0.905339 0.863837 0.848137 0.890472 0.903183 0.500000 0.895553 0.500000 0.853692 0.884405 0.500000 0.907898 0.887363 0.500000 0.500000 0.500000 +0.591458 +0.790963 0.320914 0.199419 0.638339 0.771219 0.478262 0.743160 0.885825 0 1 0 1 1 1 0.500000 0 0.908734 0.910116 0.867931 0.500000 0.845993 0.852817 0.879712 0.893758 0.500000 0.500000 0.500000 0.869588 0.500000 0.500000 0.500000 0.500000 +0.530805 +0.466900 0.195390 0.120247 0.398424 0.518555 0.359205 0.555365 0.612056 0.500000 0 1 0.500000 0.500000 0 0 0.500000 0.904318 0.500000 0.910997 0.850763 0.500000 0.880849 0.863005 0.889890 0.500000 0.918382 0.877664 0.866770 0.878570 0.875478 0.909260 0.500000 +0.679479 +0.683056 0.329307 0.463890 0.795045 0.124456 0.736643 0.166262 0.163419 0.500000 1 0 1 1 1 0 1 0.882088 0.500000 0.882542 0.870534 0.863957 0.905934 0.875821 0.904597 0.500000 0.500000 0.500000 0.893841 0.500000 0.500000 0.899877 0.500000 +0.568693 +0.173522 0.587279 0.197026 0.412542 0.194167 0.368803 0.268863 0.572960 0 0 0 0 1 0.500000 1 1 0.890284 0.877666 0.863045 0.500000 0.500000 0.887356 0.500000 0.500000 0.500000 0.500000 0.500000 0.879497 0.500000 0.500000 0.864403 0.500000 +0.237759 +0.599675 0.530405 0.314845 0.597491 0.628928 0.192708 0.640849 0.546678 0 0 0 0.500000 0 0 0.500000 0.500000 0.905374 0.875725 0.859877 0.500000 0.500000 0.500000 0.888923 0.842304 0.500000 0.872644 0.500000 0.847556 0.500000 0.500000 0.500000 0.908021 +0.331116 +0.228410 0.685061 0.424225 0.545024 0.424566 0.672787 0.533584 0.152499 1 0 1 0.500000 0.500000 1 0 0.500000 0.880855 0.874715 0.899712 0.500000 0.500000 0.873217 0.859232 0.874177 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.460457 +0.483935 0.100563 0.765405 0.363117 0.715675 0.544071 0.409554 0.370133 0 1 0.500000 1 0 1 0.500000 0.500000 0.500000 0.887274 0.904166 0.878382 0.903633 0.885149 0.855907 0.882258 0.888596 0.500000 0.500000 0.878049 0.877876 0.500000 0.873656 0.867548 +0.788773 +0.882054 0.875767 0.818461 0.874950 0.679138 0.878029 0.441856 0.866116 0 1 0.500000 1 0 0.500000 1 0 0.897901 0.878985 0.891428 0.893654 0.874219 0.865291 0.863879 0.500000 0.871140 0.865215 0.500000 0.888996 0.867991 0.500000 0.500000 0.500000 +0.516974 +0.149639 0.780676 0.222793 0.678355 0.513306 0.138880 0.762620 0.753021 0 1 1 1 0 0 1 0 0.924219 0.885545 0.905625 0.864049 0.903043 0.500000 0.883442 0.867127 0.500000 0.881465 0.854919 0.903364 0.500000 0.904064 0.901394 0.500000 +0.789901 +0.630062 0.843474 0.473070 0.691921 0.522929 0.268203 0.684053 0.275214 0 0.500000 0 0.500000 0.500000 0.500000 1 1 0.500000 0.858281 0.500000 0.500000 0.886483 0.500000 0.500000 0.889116 0.500000 0.500000 0.500000 0.500000 0.853556 0.500000 0.854427 0.891312 +0.177998 +0.371417 0.210094 0.852483 0.676863 0.242090 0.200054 0.112067 0.511293 1 1 0.500000 0 0 0.500000 1 0 0.876686 0.500000 0.901933 0.902361 0.500000 0.876276 0.889470 0.876345 0.863260 0.914302 0.885320 0.883024 0.500000 0.500000 0.890387 0.500000 +0.652573 +0.746755 0.504331 0.493633 0.696086 0.112046 0.150210 0.773732 0.319850 1 0 0.500000 0 0 0.500000 1 0 0.863950 0.876931 0.861044 0.500000 0.500000 0.894353 0.500000 0.858937 0.500000 0.875216 0.500000 0.500000 0.854166 0.500000 0.874394 0.897796 +0.419716 +0.718107 0.619376 0.455028 0.663039 0.690842 0.777216 0.476263 0.747236 0.500000 0.500000 1 0 1 1 0.500000 0 0.855245 0.500000 0.886713 0.500000 0.883970 0.500000 0.888849 0.914244 0.500000 0.500000 0.871022 0.911202 0.906876 0.500000 0.500000 0.500000 +0.445373 +0.266802 0.339811 0.200697 0.506415 0.311758 0.723677 0.635632 0.859805 0.500000 0.500000 1 1 0.500000 0.500000 0 0 0.898610 0.874505 0.500000 0.885770 0.878968 0.929516 0.880030 0.884841 0.888256 0.500000 0.500000 0.500000 0.500000 0.886459 0.906127 0.870952 +0.651339 +0.730583 0.710781 0.689100 0.297385 0.754938 0.445884 0.566996 0.100980 0.500000 0 0.500000 1 0 1 1 1 0.500000 0.895501 0.870978 0.857389 0.500000 0.875862 0.872203 0.500000 0.500000 0.500000 0.858247 0.500000 0.500000 0.500000 0.500000 0.868774 +0.346274 +0.659373 0.686578 0.314684 0.300086 0.541018 0.284781 0.120981 0.721700 0 0.500000 0.500000 0 1 1 0.500000 0 0.500000 0.869430 0.500000 0.872797 0.849353 0.500000 0.887742 0.500000 0.900683 0.886710 0.884415 0.500000 0.867635 0.500000 0.890678 0.880362 +0.524302 +0.492590 0.754143 0.681695 0.639337 0.738001 0.574694 0.676017 0.410970 0 0.500000 0.500000 0.500000 1 1 1 0.500000 0.874772 0.500000 0.906025 0.891508 0.909081 0.879326 0.881669 0.500000 0.890607 0.500000 0.900184 0.885820 0.867640 0.500000 0.889736 0.500000 +0.609931 +0.301185 0.622895 0.393028 0.222080 0.704436 0.453103 0.300852 0.611344 1 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.883322 0.861624 0.857385 0.500000 0.896998 0.500000 0.869775 0.886462 0.500000 0.500000 0.500000 0.500000 0.871194 0.943616 0.500000 0.500000 +0.506141 +0.144093 0.368142 0.368510 0.150209 0.756170 0.349053 0.340734 0.513593 0 0 0 0.500000 0.500000 0.500000 0 1 0.886349 0.500000 0.866435 0.898979 0.923209 0.902133 0.880474 0.867050 0.500000 0.500000 0.915560 0.500000 0.500000 0.886580 0.500000 0.500000 +0.603427 +0.151596 0.867155 0.871333 0.696030 0.770690 0.385052 0.565579 0.281982 0 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 0.905009 0.901126 0.884686 0.858764 0.500000 0.891359 0.863678 0.500000 0.882825 0.878542 0.500000 0.879376 0.500000 0.889735 0.500000 +0.590475 +0.233740 0.672296 0.270435 0.598245 0.502193 0.553969 0.357016 0.572982 1 1 0.500000 0.500000 0.500000 0 0 0.500000 0.885972 0.500000 0.890948 0.891359 0.500000 0.500000 0.847885 0.871385 0.886209 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.865876 +0.369859 +0.525793 0.405445 0.117620 0.238962 0.439348 0.320641 0.419440 0.135179 0 1 0.500000 1 0 0.500000 0 1 0.900330 0.866218 0.500000 0.877372 0.884169 0.903834 0.886148 0.500000 0.500000 0.879034 0.860233 0.866681 0.500000 0.890342 0.887711 0.911380 +0.656526 +0.791393 0.338899 0.871293 0.829693 0.843407 0.147920 0.693347 0.479389 0.500000 1 0 1 0 0.500000 0.500000 0.500000 0.897380 0.500000 0.500000 0.886940 0.894563 0.500000 0.854649 0.898529 0.500000 0.855089 0.916611 0.907993 0.500000 0.500000 0.500000 0.500000 +0.431909 +0.254067 0.698379 0.254141 0.339823 0.399017 0.873966 0.150623 0.518020 0 0.500000 1 1 0.500000 0 0 0 0.892248 0.892471 0.887357 0.500000 0.892403 0.884693 0.500000 0.500000 0.883519 0.878892 0.907003 0.500000 0.861463 0.860019 0.500000 0.860304 +0.562383 +0.178528 0.713254 0.658979 0.458482 0.308978 0.393077 0.246573 0.347341 0 0.500000 0 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.883062 0.500000 0.903569 0.873001 0.861666 0.871789 0.875656 0.500000 0.885788 0.866652 0.500000 0.500000 0.875437 0.874445 0.896732 +0.589484 +0.802430 0.235809 0.240027 0.730647 0.187395 0.142927 0.778959 0.167846 0.500000 0 0.500000 0.500000 0 1 0 0.500000 0.888644 0.880913 0.892862 0.869788 0.896871 0.867173 0.500000 0.885380 0.885291 0.500000 0.500000 0.864372 0.500000 0.853997 0.879262 0.884994 +0.721435 +0.138884 0.822601 0.858629 0.777568 0.789598 0.575057 0.388492 0.791503 0.500000 0.500000 0.500000 0.500000 1 0 1 0.500000 0.907467 0.500000 0.869125 0.869092 0.500000 0.905693 0.880304 0.882092 0.500000 0.854533 0.877907 0.898318 0.879996 0.889505 0.500000 0.500000 +0.569238 +0.601786 0.812045 0.241631 0.495163 0.800856 0.192667 0.758321 0.494019 1 0 0.500000 0.500000 1 0.500000 1 1 0.899706 0.872321 0.500000 0.876237 0.500000 0.500000 0.500000 0.500000 0.897803 0.500000 0.912363 0.500000 0.500000 0.889434 0.913217 0.875423 +0.462917 +0.424921 0.245891 0.889186 0.747851 0.532137 0.633609 0.471135 0.172750 0.500000 1 0 1 0.500000 0 1 1 0.891435 0.873313 0.914638 0.500000 0.873426 0.894197 0.874033 0.891132 0.500000 0.877518 0.895819 0.500000 0.897183 0.887217 0.888536 0.869510 +0.770896 +0.499333 0.482643 0.787316 0.619499 0.123137 0.165710 0.490505 0.124197 0.500000 0.500000 1 0 1 0.500000 1 1 0.886927 0.895273 0.902272 0.891583 0.885454 0.500000 0.873293 0.500000 0.866666 0.500000 0.907858 0.880386 0.500000 0.500000 0.896661 0.860361 +0.576048 +0.466400 0.587478 0.337834 0.569400 0.513389 0.732556 0.275321 0.317407 0.500000 0 0.500000 0.500000 1 1 0 1 0.840401 0.881583 0.500000 0.879494 0.850825 0.866197 0.500000 0.886165 0.895798 0.500000 0.911049 0.893403 0.886779 0.891087 0.500000 0.882264 +0.675367 +0.410293 0.802371 0.843864 0.614606 0.289691 0.235074 0.692189 0.215847 1 1 0.500000 0 0 0 0 0 0.876137 0.862061 0.891008 0.907989 0.500000 0.889503 0.877658 0.886643 0.500000 0.847201 0.855836 0.500000 0.874441 0.500000 0.843370 0.500000 +0.654850 +0.472983 0.829993 0.295485 0.820922 0.640930 0.312548 0.397731 0.868892 0.500000 1 0.500000 0 0 0.500000 1 0.500000 0.834347 0.866999 0.500000 0.891815 0.883710 0.881301 0.864695 0.886895 0.500000 0.500000 0.500000 0.864669 0.885139 0.851155 0.871425 0.500000 +0.558068 +0.402965 0.830783 0.777159 0.319373 0.705876 0.666268 0.562737 0.516793 0 1 0 1 0 0.500000 0 0.500000 0.900116 0.853213 0.881098 0.500000 0.500000 0.875846 0.894050 0.500000 0.500000 0.860598 0.868206 0.904352 0.500000 0.500000 0.906532 0.889326 +0.496514 +0.883058 0.157628 0.646530 0.828464 0.195824 0.208169 0.491974 0.799068 0.500000 0 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.875246 0.889814 0.882362 0.500000 0.886069 0.864086 0.853220 0.904303 0.500000 0.890911 0.896432 0.854064 0.931583 0.902759 0.500000 0.500000 +0.679120 +0.793634 0.401610 0.464570 0.232007 0.334860 0.200243 0.882366 0.533284 1 1 1 0 0 1 1 0 0.874226 0.500000 0.875859 0.880078 0.895997 0.846558 0.897115 0.896582 0.500000 0.500000 0.863867 0.500000 0.900241 0.897749 0.910892 0.500000 +0.735165 +0.626666 0.567379 0.133542 0.634091 0.576199 0.368914 0.531338 0.799171 1 1 0.500000 0.500000 0 0 1 0 0.917458 0.500000 0.862440 0.500000 0.887288 0.847739 0.893763 0.500000 0.500000 0.899367 0.860555 0.854342 0.904676 0.500000 0.500000 0.902580 +0.652541 +0.295324 0.508353 0.885402 0.343749 0.797367 0.754115 0.214767 0.189666 1 0 0 0 1 0.500000 0 0 0.875111 0.877144 0.904124 0.500000 0.843535 0.500000 0.865744 0.872692 0.500000 0.848402 0.500000 0.860636 0.500000 0.500000 0.500000 0.500000 +0.482068 +0.524370 0.478544 0.687104 0.358262 0.717629 0.598149 0.491651 0.181774 1 0 0 1 0 1 0 0 0.500000 0.895089 0.868747 0.500000 0.869708 0.877495 0.883565 0.500000 0.500000 0.880699 0.863539 0.877069 0.867127 0.500000 0.886961 0.500000 +0.518896 +0.666100 0.146164 0.781905 0.881377 0.707621 0.393520 0.497827 0.781914 0 0.500000 1 0 1 0.500000 1 0.500000 0.500000 0.903070 0.896240 0.900194 0.909146 0.884373 0.500000 0.500000 0.876171 0.500000 0.500000 0.500000 0.901423 0.891761 0.873973 0.500000 +0.471169 +0.612759 0.445971 0.442749 0.676773 0.317006 0.115275 0.832079 0.145066 1 0.500000 0.500000 1 0.500000 1 0 0.500000 0.500000 0.500000 0.889310 0.888770 0.500000 0.500000 0.885471 0.500000 0.500000 0.875979 0.500000 0.500000 0.902499 0.500000 0.500000 0.500000 +0.202513 +0.194143 0.766840 0.488064 0.683612 0.866328 0.581131 0.861015 0.871764 1 0.500000 0.500000 0 0 0.500000 0.500000 1 0.831034 0.848064 0.888346 0.866791 0.500000 0.892381 0.885201 0.889783 0.500000 0.500000 0.894330 0.895528 0.880158 0.500000 0.864812 0.879434 +0.560929 +0.630835 0.242266 0.764476 0.753618 0.659360 0.467965 0.495956 0.527742 0 0 1 0 1 0 1 1 0.859292 0.906263 0.875917 0.854626 0.500000 0.862551 0.882464 0.500000 0.868700 0.500000 0.500000 0.500000 0.880060 0.500000 0.500000 0.500000 +0.409967 +0.398506 0.297618 0.664548 0.453494 0.467582 0.455561 0.819116 0.685167 0.500000 1 0.500000 0 1 0.500000 0 0.500000 0.862669 0.893972 0.881659 0.874873 0.901457 0.500000 0.853174 0.500000 0.852212 0.882043 0.500000 0.870116 0.856104 0.913310 0.905491 0.500000 +0.704603 +0.616480 0.581417 0.871314 0.374184 0.315921 0.276266 0.204474 0.788325 1 0 1 0.500000 1 0 0 1 0.890623 0.881474 0.855580 0.500000 0.500000 0.500000 0.884209 0.895434 0.500000 0.893444 0.500000 0.885763 0.500000 0.500000 0.884986 0.500000 +0.424851 +0.609671 0.533320 0.506332 0.528019 0.211352 0.387762 0.514960 0.735752 0.500000 1 0.500000 0 1 1 0 0.500000 0.875148 0.893780 0.864260 0.864280 0.865232 0.873198 0.864963 0.500000 0.867388 0.841241 0.500000 0.500000 0.500000 0.874695 0.872976 0.860087 +0.702635 +0.385905 0.507789 0.203029 0.506707 0.429354 0.356558 0.865843 0.416017 0 1 1 0 0 1 1 1 0.871723 0.866071 0.899514 0.859686 0.500000 0.500000 0.883823 0.930779 0.500000 0.500000 0.867372 0.868124 0.500000 0.896395 0.860834 0.877186 +0.610454 +0.833782 0.781175 0.610826 0.754787 0.304812 0.772711 0.760485 0.876731 0 1 1 0.500000 0.500000 1 0 0.500000 0.880204 0.921225 0.500000 0.892574 0.904005 0.500000 0.894147 0.500000 0.500000 0.500000 0.845809 0.839461 0.500000 0.869855 0.899648 0.932895 +0.560209 +0.344971 0.521839 0.351844 0.842180 0.319952 0.839908 0.527195 0.771006 0 0.500000 0.500000 1 1 1 0.500000 0 0.500000 0.912170 0.901161 0.904428 0.500000 0.500000 0.870274 0.500000 0.899746 0.879810 0.500000 0.864347 0.892981 0.500000 0.500000 0.500000 +0.414977 +0.166741 0.217041 0.813697 0.813897 0.165893 0.369174 0.101764 0.151746 0 0 0 0.500000 1 0 0.500000 1 0.891189 0.874421 0.915516 0.877336 0.500000 0.873906 0.914200 0.876997 0.894676 0.500000 0.500000 0.500000 0.848923 0.897434 0.500000 0.500000 +0.606137 +0.824986 0.131837 0.788672 0.213211 0.439462 0.645083 0.509243 0.639064 0 1 0 0.500000 0.500000 0.500000 0 1 0.879435 0.886961 0.864380 0.500000 0.500000 0.911615 0.500000 0.845313 0.500000 0.500000 0.887294 0.500000 0.885496 0.500000 0.500000 0.500000 +0.304372 +0.711777 0.638012 0.866739 0.289723 0.781048 0.873520 0.647608 0.545131 0.500000 1 0.500000 1 0.500000 0 1 0 0.912687 0.500000 0.882204 0.866685 0.891565 0.898459 0.866185 0.500000 0.907873 0.500000 0.500000 0.909161 0.867622 0.902028 0.900479 0.892095 +0.649116 +0.644177 0.482835 0.799634 0.441567 0.816421 0.195058 0.137567 0.284307 0 1 1 0.500000 0.500000 0 1 0.500000 0.897955 0.850122 0.897392 0.909431 0.894113 0.500000 0.500000 0.862871 0.500000 0.500000 0.500000 0.848007 0.886862 0.897058 0.880048 0.843013 +0.646364 +0.891777 0.289913 0.763544 0.284000 0.582372 0.134016 0.615504 0.180540 0 1 1 1 1 1 0.500000 0 0.500000 0.863090 0.860038 0.864524 0.894429 0.881928 0.861123 0.922891 0.500000 0.882071 0.893906 0.899276 0.500000 0.860239 0.500000 0.500000 +0.547540 +0.527309 0.288629 0.795153 0.344707 0.890180 0.647614 0.644182 0.566971 0.500000 0 0 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.885984 0.857408 0.844985 0.895232 0.885112 0.882628 0.900189 0.877718 0.500000 0.500000 0.500000 0.500000 0.500000 0.886586 +0.415011 +0.543548 0.405126 0.357221 0.808489 0.468976 0.673805 0.840475 0.460283 0 1 0 0 0 0.500000 0 0 0.500000 0.500000 0.879402 0.500000 0.903751 0.500000 0.866570 0.903814 0.500000 0.880963 0.500000 0.879900 0.885776 0.500000 0.500000 0.896899 +0.306017 +0.772416 0.600521 0.350880 0.644520 0.641014 0.117112 0.505803 0.431403 0.500000 0.500000 0 0.500000 0.500000 0.500000 0 0 0.500000 0.897374 0.870286 0.500000 0.885312 0.500000 0.837617 0.500000 0.864750 0.892441 0.500000 0.500000 0.500000 0.885704 0.860654 0.500000 +0.357106 +0.213666 0.886658 0.659719 0.105433 0.218327 0.821264 0.778742 0.516087 0.500000 0.500000 0.500000 0 0 0 0 0.500000 0.881798 0.880035 0.500000 0.902737 0.902493 0.893849 0.867465 0.891499 0.882775 0.500000 0.889545 0.500000 0.854075 0.500000 0.896271 0.500000 +0.604467 +0.730968 0.787007 0.230335 0.234238 0.235303 0.541635 0.266172 0.156362 0 0 0.500000 0 1 0 1 0 0.893855 0.903594 0.848676 0.882933 0.500000 0.876039 0.874722 0.869157 0.500000 0.895555 0.860015 0.500000 0.841368 0.500000 0.885730 0.500000 +0.550362 +0.446596 0.543050 0.844692 0.135645 0.783591 0.418970 0.226326 0.854439 1 1 0 0.500000 0 1 0 0 0.875383 0.910670 0.895748 0.500000 0.909718 0.889759 0.869182 0.898112 0.868471 0.500000 0.500000 0.841386 0.887653 0.500000 0.891340 0.500000 +0.677698 +0.737662 0.483683 0.668451 0.453852 0.882898 0.673377 0.847334 0.541963 0 1 0.500000 1 0.500000 1 1 0 0.862920 0.894864 0.861144 0.863440 0.859694 0.500000 0.500000 0.895632 0.500000 0.500000 0.896415 0.881995 0.500000 0.500000 0.500000 0.865001 +0.435594 +0.358161 0.617880 0.105629 0.314324 0.645362 0.404131 0.432645 0.469041 0 0 0.500000 1 1 0 0 1 0.500000 0.883675 0.856940 0.886663 0.852893 0.500000 0.500000 0.894015 0.876986 0.896451 0.848405 0.500000 0.886619 0.500000 0.884772 0.887891 +0.559817 +0.181652 0.419094 0.717895 0.254784 0.759271 0.467476 0.268676 0.637478 1 0 0.500000 1 1 0 0.500000 0.500000 0.884012 0.500000 0.869927 0.904647 0.892971 0.923305 0.870755 0.874766 0.500000 0.500000 0.500000 0.889643 0.893613 0.903694 0.500000 0.884799 +0.717907 +0.702430 0.335927 0.526247 0.840288 0.513012 0.787713 0.885243 0.878220 0.500000 1 0.500000 0.500000 0.500000 0 1 0 0.870632 0.876973 0.879402 0.850703 0.883245 0.878356 0.902173 0.887028 0.849293 0.500000 0.879296 0.892989 0.897670 0.500000 0.500000 0.867013 +0.779883 +0.859103 0.739966 0.809729 0.522236 0.626629 0.749715 0.666071 0.457580 0 0 1 1 0 1 1 1 0.500000 0.900426 0.500000 0.500000 0.859759 0.874379 0.500000 0.874457 0.500000 0.882859 0.908984 0.883957 0.881401 0.500000 0.897049 0.500000 +0.472383 +0.538027 0.426180 0.601631 0.619676 0.696068 0.615144 0.532679 0.130230 0 1 1 0.500000 0.500000 1 0.500000 0 0.870011 0.889597 0.896373 0.500000 0.876114 0.850400 0.883582 0.886494 0.864611 0.854766 0.500000 0.874240 0.500000 0.500000 0.500000 0.853566 +0.665202 +0.878840 0.459137 0.115383 0.236219 0.741219 0.268548 0.888758 0.758536 0 0.500000 0.500000 0 0 1 0.500000 0 0.853910 0.500000 0.871750 0.500000 0.500000 0.892476 0.876108 0.877146 0.500000 0.500000 0.892880 0.851438 0.500000 0.500000 0.500000 0.500000 +0.329535 +0.102216 0.537176 0.520660 0.529736 0.266480 0.532090 0.640141 0.644022 0 0.500000 0 0.500000 1 1 1 0 0.892429 0.500000 0.500000 0.860198 0.852429 0.877058 0.500000 0.891864 0.863442 0.896270 0.874909 0.500000 0.500000 0.500000 0.900081 0.500000 +0.444355 +0.884937 0.537892 0.543459 0.522349 0.113109 0.428630 0.181902 0.619219 0 0 0.500000 0 0.500000 0.500000 1 1 0.887521 0.500000 0.893573 0.853628 0.883162 0.896124 0.500000 0.884085 0.901813 0.907555 0.901950 0.500000 0.907960 0.500000 0.500000 0.864634 +0.635352 +0.369097 0.414389 0.837899 0.371589 0.693247 0.405642 0.219265 0.580729 0.500000 1 1 0 1 0.500000 1 0.500000 0.500000 0.905878 0.864531 0.869432 0.878788 0.886049 0.877791 0.500000 0.500000 0.861958 0.873256 0.861527 0.500000 0.899112 0.500000 0.500000 +0.587167 +0.817249 0.498196 0.578238 0.247710 0.257619 0.408148 0.743063 0.860319 0.500000 0.500000 0.500000 1 1 0 1 0 0.860050 0.908062 0.888739 0.500000 0.500000 0.899232 0.500000 0.887137 0.846999 0.500000 0.500000 0.500000 0.500000 0.880740 0.500000 0.500000 +0.322350 +0.611889 0.212477 0.895688 0.424703 0.577139 0.183314 0.352176 0.827096 0.500000 0 1 1 0 0.500000 1 0 0.863470 0.888584 0.883842 0.848263 0.889177 0.901687 0.892972 0.904506 0.879189 0.500000 0.500000 0.890879 0.863619 0.882528 0.500000 0.500000 +0.766524 +0.785651 0.631301 0.872217 0.344311 0.640809 0.669584 0.299666 0.678007 0 0.500000 0 0.500000 0 0.500000 0 1 0.911279 0.883929 0.877474 0.895591 0.909896 0.500000 0.862837 0.500000 0.872778 0.869516 0.870274 0.873279 0.500000 0.860488 0.500000 0.904337 +0.614336 +0.825662 0.296771 0.830505 0.889909 0.106673 0.251508 0.100738 0.506968 1 0 1 1 1 0.500000 0 1 0.886859 0.872655 0.893510 0.911916 0.909948 0.882480 0.896268 0.914127 0.886307 0.500000 0.500000 0.900782 0.895914 0.500000 0.500000 0.872383 +0.726047 +0.179206 0.110395 0.405117 0.202202 0.213211 0.443238 0.898912 0.213250 0 0 1 0.500000 1 0 0 0.500000 0.500000 0.906237 0.500000 0.880967 0.867067 0.897975 0.500000 0.915279 0.843527 0.870316 0.500000 0.872403 0.500000 0.886962 0.850718 0.873880 +0.617330 +0.146016 0.686608 0.825308 0.751535 0.854659 0.453989 0.786618 0.894853 1 0 0.500000 1 0 1 0 0.500000 0.500000 0.500000 0.872995 0.891841 0.500000 0.890917 0.868749 0.860274 0.881576 0.895932 0.896763 0.864967 0.500000 0.891039 0.874419 0.500000 +0.617866 +0.841776 0.731842 0.265200 0.616011 0.699424 0.217803 0.813843 0.865779 0 1 0 1 1 0 1 1 0.500000 0.862181 0.877784 0.878552 0.886797 0.869898 0.500000 0.888767 0.887914 0.500000 0.500000 0.877649 0.882281 0.500000 0.848502 0.500000 +0.500413 +0.225366 0.728606 0.279359 0.191470 0.628498 0.168180 0.403384 0.669275 1 1 0 1 0.500000 0.500000 1 1 0.897758 0.876887 0.888203 0.908337 0.878951 0.890682 0.896070 0.500000 0.876654 0.892554 0.849579 0.868996 0.500000 0.877396 0.875811 0.500000 +0.862831 +0.321280 0.754865 0.813944 0.161610 0.373940 0.201598 0.461039 0.886596 0.500000 0 1 1 0.500000 0 1 0.500000 0.888113 0.881151 0.890964 0.903159 0.866583 0.500000 0.899308 0.895987 0.884449 0.877295 0.500000 0.500000 0.866840 0.868528 0.858526 0.500000 +0.744627 +0.875814 0.811836 0.723609 0.301860 0.759203 0.122246 0.396752 0.412924 0 0.500000 0.500000 1 0 0.500000 0 0 0.500000 0.911845 0.880205 0.868288 0.875623 0.500000 0.874250 0.500000 0.500000 0.500000 0.500000 0.500000 0.875256 0.850191 0.858200 0.500000 +0.377069 +0.321290 0.125123 0.739603 0.302031 0.432369 0.633188 0.586762 0.313995 1 0 1 0.500000 1 1 0 0 0.885953 0.914589 0.877406 0.500000 0.872593 0.906013 0.916812 0.884370 0.500000 0.889867 0.500000 0.856634 0.874034 0.500000 0.500000 0.877411 +0.755092 +0.876970 0.241824 0.540433 0.849627 0.686600 0.688184 0.104257 0.444930 0.500000 1 0.500000 0.500000 0.500000 0 0 0 0.500000 0.500000 0.867030 0.888893 0.500000 0.903740 0.876979 0.895365 0.500000 0.500000 0.868188 0.908142 0.500000 0.896656 0.873889 0.861746 +0.541343 +0.275467 0.366854 0.320522 0.818995 0.255608 0.207349 0.313500 0.397516 0.500000 0 0.500000 0 1 0.500000 0 0.500000 0.849197 0.895649 0.852125 0.500000 0.907666 0.500000 0.500000 0.890613 0.884784 0.936817 0.865914 0.899813 0.866193 0.876626 0.883332 0.867553 +0.755874 +0.253336 0.425724 0.143949 0.344403 0.588745 0.844704 0.347195 0.302620 1 0 0 0 0 0.500000 1 0.500000 0.865263 0.500000 0.862924 0.884686 0.500000 0.883987 0.500000 0.882287 0.500000 0.500000 0.885356 0.891626 0.880057 0.907255 0.847769 0.877464 +0.628529 +0.471263 0.720800 0.288117 0.174176 0.377549 0.861864 0.751256 0.162262 0 0 0 1 0.500000 1 1 0.500000 0.888918 0.500000 0.874656 0.879858 0.885396 0.892844 0.895893 0.500000 0.878522 0.859091 0.876246 0.913137 0.908893 0.879787 0.500000 0.862909 +0.773036 +0.821040 0.218748 0.690065 0.529914 0.861031 0.341510 0.766456 0.425179 0.500000 0 0.500000 0 1 1 1 0 0.869962 0.500000 0.884448 0.855884 0.905545 0.870384 0.922593 0.500000 0.500000 0.500000 0.500000 0.500000 0.914724 0.500000 0.865722 0.880453 +0.513723 +0.366372 0.210300 0.313122 0.435104 0.185521 0.647708 0.624251 0.783634 0 0.500000 1 0.500000 1 1 1 0 0.895388 0.891317 0.892799 0.836108 0.500000 0.888918 0.891173 0.500000 0.903395 0.500000 0.500000 0.500000 0.500000 0.500000 0.909060 0.500000 +0.488257 +0.502599 0.180948 0.600995 0.322438 0.216478 0.148662 0.359363 0.814790 1 0 0.500000 1 0.500000 1 0.500000 0 0.500000 0.896433 0.882239 0.855241 0.868053 0.500000 0.891007 0.500000 0.873136 0.866825 0.500000 0.861250 0.500000 0.500000 0.500000 0.500000 +0.408535 +0.443900 0.822662 0.281373 0.430493 0.288618 0.607377 0.384864 0.602805 0 0.500000 1 0.500000 0.500000 0.500000 0 1 0.888565 0.500000 0.863075 0.893974 0.896772 0.878710 0.859912 0.905067 0.500000 0.888827 0.500000 0.865103 0.500000 0.892002 0.500000 0.874329 +0.673320 +0.746773 0.811839 0.771175 0.535921 0.226109 0.414288 0.742914 0.759275 0.500000 1 0 0.500000 1 0.500000 1 1 0.874600 0.865039 0.896148 0.885505 0.500000 0.500000 0.500000 0.863039 0.880864 0.861767 0.853146 0.500000 0.500000 0.882762 0.909339 0.500000 +0.491031 +0.276277 0.392883 0.176421 0.513634 0.848212 0.104587 0.390432 0.593766 0.500000 0.500000 1 0 0 0 0.500000 0 0.860793 0.889436 0.500000 0.885560 0.888511 0.877458 0.500000 0.899180 0.888286 0.500000 0.500000 0.500000 0.500000 0.877467 0.880714 0.500000 +0.486139 +0.425516 0.651866 0.119946 0.125372 0.124281 0.189358 0.339852 0.888766 1 0 0.500000 0.500000 1 0.500000 0 1 0.911282 0.885222 0.886785 0.876436 0.858776 0.500000 0.873283 0.845080 0.870969 0.500000 0.854706 0.894685 0.875635 0.500000 0.871464 0.874559 +0.765620 +0.293518 0.555357 0.492106 0.631649 0.324569 0.829687 0.752765 0.729873 1 0.500000 0.500000 1 0 1 0 1 0.897999 0.877291 0.904191 0.884757 0.500000 0.500000 0.859694 0.896602 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.853753 +0.392163 +0.247715 0.348086 0.879749 0.536103 0.888924 0.348912 0.361092 0.270342 1 1 0.500000 0 0 0.500000 0 0 0.873945 0.877674 0.916425 0.500000 0.898172 0.885040 0.500000 0.890912 0.500000 0.500000 0.864624 0.883359 0.879611 0.858825 0.500000 0.877828 +0.534533 +0.506032 0.285145 0.626788 0.232038 0.854356 0.162929 0.150201 0.628281 0.500000 0 0 1 0.500000 0 1 0 0.885559 0.897752 0.500000 0.500000 0.500000 0.894800 0.500000 0.848691 0.873951 0.883840 0.500000 0.886971 0.901811 0.500000 0.500000 0.500000 +0.403147 +0.106472 0.869384 0.729589 0.796129 0.739567 0.500459 0.206591 0.381218 0 0.500000 1 0 1 1 1 0.500000 0.500000 0.500000 0.901682 0.867721 0.883240 0.858602 0.888351 0.865671 0.873725 0.500000 0.500000 0.500000 0.906189 0.500000 0.500000 0.500000 +0.382759 +0.475652 0.879040 0.621821 0.746666 0.623438 0.723821 0.665988 0.667923 0.500000 1 0 0.500000 1 0 0 0 0.500000 0.917198 0.500000 0.903717 0.900769 0.866979 0.885558 0.883291 0.868642 0.500000 0.500000 0.500000 0.500000 0.500000 0.884037 0.916585 +0.390094 +0.360734 0.648903 0.709644 0.795758 0.899596 0.516742 0.278721 0.664116 0.500000 0 0 1 0 0.500000 0.500000 0.500000 0.890412 0.874468 0.847952 0.881724 0.863114 0.500000 0.902891 0.500000 0.500000 0.889540 0.900711 0.856580 0.874758 0.500000 0.500000 0.500000 +0.486492 +0.143354 0.755727 0.109113 0.457188 0.155303 0.775573 0.851740 0.194255 0 0.500000 0.500000 0 0.500000 1 1 1 0.911873 0.896429 0.872385 0.902120 0.892159 0.884319 0.859719 0.872367 0.877930 0.500000 0.885712 0.848327 0.500000 0.852552 0.500000 0.500000 +0.727354 +0.350441 0.454279 0.875037 0.554860 0.127671 0.367956 0.434231 0.717734 1 1 0 0.500000 1 0 0 1 0.866430 0.884561 0.500000 0.500000 0.852176 0.856153 0.853658 0.500000 0.500000 0.500000 0.866220 0.879095 0.921186 0.500000 0.910248 0.915712 +0.569580 +0.627624 0.677747 0.692607 0.837365 0.197479 0.835858 0.460705 0.862035 0.500000 0.500000 0 0 1 0.500000 1 1 0.500000 0.867418 0.880372 0.876300 0.882873 0.856966 0.500000 0.881250 0.500000 0.500000 0.857965 0.876501 0.910927 0.890717 0.500000 0.848117 +0.529153 +0.600522 0.366001 0.375526 0.470496 0.629167 0.212106 0.260551 0.878724 0 0.500000 1 0.500000 1 1 1 0 0.500000 0.871585 0.886895 0.906132 0.906342 0.860954 0.880560 0.881337 0.887358 0.904081 0.883105 0.871340 0.500000 0.500000 0.884931 0.893694 +0.715994 +0.510738 0.167789 0.222371 0.794902 0.123395 0.500774 0.702739 0.739066 1 0.500000 0 1 1 0 0 0.500000 0.915397 0.500000 0.890797 0.880313 0.500000 0.500000 0.884461 0.886308 0.500000 0.881488 0.500000 0.905285 0.874184 0.915002 0.500000 0.878571 +0.594374 +0.255612 0.274812 0.569234 0.115393 0.415763 0.723309 0.859124 0.289705 0.500000 1 0.500000 0.500000 0.500000 0 0 0 0.500000 0.883863 0.500000 0.904683 0.500000 0.500000 0.863098 0.500000 0.500000 0.500000 0.872106 0.899604 0.875981 0.500000 0.878807 0.834186 +0.433558 +0.370250 0.600199 0.550216 0.478434 0.432380 0.807077 0.745954 0.655285 1 1 1 1 0 1 0 0 0.892807 0.890100 0.500000 0.900551 0.863756 0.877325 0.900188 0.500000 0.500000 0.500000 0.886290 0.871105 0.863133 0.906740 0.863722 0.902893 +0.794421 +0.700986 0.867834 0.279550 0.194446 0.247062 0.570952 0.187934 0.405362 0 0.500000 1 0 0.500000 1 1 0 0.867990 0.500000 0.901787 0.863033 0.873460 0.500000 0.846098 0.889830 0.887081 0.500000 0.500000 0.898949 0.891378 0.500000 0.882650 0.500000 +0.545125 +0.859424 0.537788 0.401291 0.695017 0.554936 0.608503 0.116212 0.578840 1 0 0.500000 0 1 0.500000 0 0 0.856588 0.883462 0.500000 0.897547 0.878464 0.906749 0.500000 0.860971 0.500000 0.500000 0.500000 0.880511 0.500000 0.500000 0.500000 0.500000 +0.406146 +0.652917 0.180943 0.508556 0.303315 0.410897 0.540224 0.538969 0.244048 0 0 0.500000 1 0.500000 0 0 1 0.836187 0.889223 0.896031 0.500000 0.923885 0.850465 0.500000 0.881473 0.886921 0.922608 0.500000 0.500000 0.500000 0.883665 0.500000 0.887189 +0.536185 +0.755836 0.344384 0.258047 0.394389 0.697669 0.316486 0.173114 0.133809 0 1 0 1 1 1 1 0 0.500000 0.500000 0.879253 0.886869 0.891403 0.500000 0.867845 0.500000 0.500000 0.862209 0.897893 0.500000 0.500000 0.500000 0.875208 0.900753 +0.365372 +0.369991 0.234431 0.288932 0.272764 0.546589 0.324566 0.780963 0.251112 1 0.500000 0.500000 1 1 0 0.500000 0 0.914379 0.892321 0.500000 0.879857 0.865306 0.500000 0.889957 0.878659 0.500000 0.899023 0.500000 0.906441 0.857906 0.892638 0.500000 0.900504 +0.711619 +0.692717 0.291607 0.445937 0.662245 0.150720 0.554564 0.750770 0.794331 0 1 1 1 1 0.500000 1 0 0.886403 0.872753 0.866666 0.899569 0.865346 0.500000 0.857648 0.500000 0.500000 0.865739 0.500000 0.500000 0.500000 0.500000 0.871417 0.500000 +0.492274 +0.328424 0.818807 0.297574 0.731380 0.498731 0.765483 0.878123 0.410529 1 1 0.500000 1 0.500000 1 0 1 0.892487 0.910427 0.873480 0.889993 0.500000 0.903773 0.500000 0.860690 0.863660 0.500000 0.889102 0.500000 0.877388 0.848435 0.863456 0.894938 +0.674520 +0.253128 0.127155 0.500972 0.835339 0.539093 0.729381 0.511053 0.667737 0.500000 0.500000 0 0 0 0.500000 0.500000 0 0.879768 0.500000 0.500000 0.875949 0.500000 0.500000 0.839941 0.891252 0.890230 0.908055 0.500000 0.500000 0.900982 0.875591 0.500000 0.865367 +0.325945 +0.339326 0.845601 0.215479 0.152578 0.585452 0.695607 0.862149 0.737607 0 0.500000 0.500000 1 0 0 0 0 0.892076 0.500000 0.859903 0.875235 0.890787 0.500000 0.886590 0.500000 0.500000 0.500000 0.884293 0.881628 0.500000 0.500000 0.500000 0.500000 +0.386127 +0.372003 0.450915 0.320222 0.568633 0.415689 0.288452 0.216450 0.473000 0 1 1 0 0 1 0 0 0.500000 0.500000 0.873703 0.851037 0.875788 0.500000 0.887802 0.500000 0.500000 0.880161 0.869526 0.877314 0.500000 0.864964 0.924785 0.500000 +0.445230 +0.280377 0.493483 0.561932 0.597166 0.764820 0.128696 0.793231 0.835213 1 1 1 1 1 0 0 1 0.870133 0.893951 0.500000 0.894164 0.899120 0.871850 0.885007 0.874474 0.876348 0.867421 0.880458 0.500000 0.877337 0.901392 0.890770 0.500000 +0.763144 +0.335332 0.119114 0.541935 0.505903 0.515350 0.879943 0.603544 0.757941 0.500000 0 0 0.500000 1 0.500000 0.500000 1 0.868872 0.907306 0.851636 0.888405 0.873841 0.887960 0.894777 0.874423 0.882281 0.860608 0.899739 0.500000 0.500000 0.903286 0.500000 0.500000 +0.786213 +0.228506 0.699698 0.816991 0.163352 0.849062 0.789789 0.590230 0.195545 0 1 0 0.500000 0.500000 0.500000 1 0.500000 0.887349 0.913303 0.500000 0.500000 0.874701 0.890642 0.873064 0.500000 0.858666 0.875495 0.877388 0.865752 0.500000 0.892988 0.915410 0.901540 +0.638012 +0.405345 0.829203 0.613160 0.778527 0.109621 0.199138 0.706492 0.603587 1 0 0 1 1 0.500000 1 0 0.875389 0.877000 0.886494 0.860723 0.872234 0.867554 0.859144 0.892355 0.890265 0.871210 0.859223 0.500000 0.875404 0.871013 0.862179 0.833516 +0.856004 +0.336723 0.300705 0.545524 0.830174 0.130476 0.312401 0.331066 0.430667 1 1 1 0.500000 0 0 0 0.500000 0.500000 0.878410 0.500000 0.893267 0.914703 0.907455 0.500000 0.851622 0.500000 0.890552 0.876681 0.500000 0.500000 0.500000 0.889631 0.930810 +0.565442 +0.422779 0.244830 0.662476 0.836156 0.668254 0.337637 0.470385 0.368319 0 0 0.500000 0 0 1 0.500000 0.500000 0.917423 0.867198 0.881020 0.855478 0.871739 0.874161 0.867201 0.891717 0.853486 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.880970 +0.633450 +0.570809 0.193679 0.154753 0.330076 0.590009 0.479166 0.737373 0.431410 0.500000 0.500000 0.500000 0.500000 0 0.500000 0 0 0.874521 0.908468 0.860173 0.878513 0.862020 0.874457 0.873866 0.500000 0.500000 0.856806 0.877689 0.859644 0.918455 0.905501 0.500000 0.500000 +0.747962 +0.332073 0.555053 0.169629 0.749935 0.355991 0.146861 0.497817 0.614242 0.500000 0.500000 0.500000 0.500000 0 0.500000 1 1 0.500000 0.911053 0.500000 0.896444 0.881114 0.907289 0.892644 0.870128 0.500000 0.500000 0.880533 0.877422 0.862303 0.500000 0.902583 0.867529 +0.656492 +0.777572 0.858558 0.380816 0.578107 0.449546 0.512600 0.261482 0.531650 0.500000 0.500000 0 0.500000 0.500000 1 1 0.500000 0.895029 0.500000 0.500000 0.886535 0.911571 0.867526 0.500000 0.881840 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.869771 0.500000 +0.325551 +0.762655 0.535177 0.525212 0.241273 0.878363 0.443476 0.101680 0.341460 1 0 0 1 1 1 1 0 0.500000 0.864648 0.911257 0.874776 0.878884 0.860244 0.882626 0.849541 0.902027 0.878690 0.500000 0.500000 0.896177 0.500000 0.500000 0.500000 +0.586364 +0.415524 0.703930 0.755112 0.171111 0.867304 0.177593 0.210233 0.778711 1 0.500000 0.500000 1 1 0.500000 0 0.500000 0.500000 0.889825 0.865635 0.500000 0.500000 0.874972 0.853252 0.862325 0.914727 0.500000 0.903942 0.500000 0.500000 0.866915 0.500000 0.500000 +0.380720 +0.840534 0.661282 0.761249 0.116766 0.293384 0.704437 0.477164 0.700627 0.500000 0 0 1 1 0.500000 0 0.500000 0.500000 0.873492 0.500000 0.887087 0.875503 0.893202 0.500000 0.891626 0.872862 0.500000 0.909735 0.500000 0.902324 0.880510 0.861361 0.500000 +0.596745 +0.572594 0.587982 0.813372 0.143534 0.576881 0.641782 0.237114 0.579988 1 1 0.500000 0.500000 1 1 1 0.500000 0.500000 0.929638 0.876368 0.891688 0.500000 0.885967 0.914209 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.860932 0.865937 0.875279 +0.482080 +0.235569 0.202353 0.343902 0.165800 0.404507 0.351468 0.122280 0.167113 1 1 1 0.500000 0 1 0.500000 0 0.500000 0.878598 0.500000 0.880299 0.500000 0.865708 0.900124 0.880219 0.500000 0.859244 0.500000 0.903290 0.500000 0.500000 0.905961 0.896277 +0.564830 +0.204902 0.780551 0.528056 0.831513 0.242094 0.280691 0.172206 0.864049 1 0 0.500000 0 0 0 1 0.500000 0.500000 0.500000 0.500000 0.886199 0.500000 0.500000 0.882402 0.872920 0.888510 0.500000 0.873183 0.500000 0.500000 0.500000 0.500000 0.883990 +0.242523 +0.709569 0.320773 0.236375 0.160429 0.536110 0.192789 0.413206 0.150444 1 1 0 1 1 0 0 0 0.901814 0.865318 0.500000 0.855273 0.886057 0.500000 0.889165 0.890423 0.500000 0.889208 0.500000 0.500000 0.877586 0.858298 0.892698 0.500000 +0.592104 +0.884035 0.570826 0.476154 0.521833 0.241849 0.157490 0.740512 0.387493 1 0 0.500000 0 0.500000 0 0.500000 1 0.500000 0.878723 0.500000 0.500000 0.872350 0.865658 0.500000 0.869146 0.500000 0.909465 0.914216 0.858753 0.870381 0.867042 0.900908 0.500000 +0.563377 +0.369343 0.554407 0.517992 0.492861 0.507712 0.523743 0.350318 0.792357 0.500000 0.500000 1 1 0 1 0 1 0.500000 0.878354 0.888424 0.500000 0.886954 0.885154 0.890737 0.854055 0.831352 0.887144 0.500000 0.896008 0.868524 0.907775 0.869526 0.886569 +0.850387 +0.773084 0.615858 0.526815 0.778847 0.686143 0.197455 0.423828 0.269695 0 0.500000 0 1 0.500000 0 0.500000 1 0.500000 0.908115 0.859815 0.847806 0.862302 0.876059 0.883066 0.876705 0.898349 0.500000 0.500000 0.909834 0.858849 0.863338 0.877130 0.500000 +0.681812 +0.470010 0.459471 0.124272 0.844082 0.282813 0.640533 0.840618 0.475181 0 0 1 1 0.500000 0.500000 1 0 0.500000 0.892104 0.500000 0.883620 0.500000 0.879615 0.855061 0.853550 0.500000 0.895144 0.500000 0.870957 0.500000 0.849702 0.899654 0.500000 +0.404240 +0.349375 0.141267 0.869845 0.479967 0.604964 0.636326 0.523061 0.887235 1 1 1 1 1 1 0 1 0.500000 0.500000 0.877838 0.894569 0.500000 0.893258 0.877809 0.500000 0.500000 0.500000 0.892391 0.896730 0.884056 0.902717 0.500000 0.500000 +0.522106 +0.780479 0.117479 0.271673 0.615342 0.645205 0.162137 0.432275 0.646795 0.500000 0 0 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.907435 0.500000 0.500000 0.500000 0.910797 0.899004 0.500000 0.500000 0.500000 0.871856 0.500000 0.500000 0.500000 0.500000 +0.149504 +0.185188 0.651228 0.582705 0.129839 0.807875 0.563488 0.344508 0.749516 0.500000 0.500000 1 1 0.500000 0 0 1 0.856250 0.904314 0.860109 0.500000 0.853188 0.851428 0.896223 0.877762 0.500000 0.889761 0.500000 0.500000 0.500000 0.500000 0.880174 0.500000 +0.551357 +0.162378 0.494167 0.864072 0.254270 0.109543 0.483099 0.448649 0.643996 1 0 0 0.500000 0 0 1 0.500000 0.894391 0.868114 0.883790 0.861561 0.880547 0.879136 0.883527 0.890510 0.880117 0.900602 0.873837 0.500000 0.857976 0.886598 0.500000 0.500000 +0.797060 +0.281592 0.115661 0.108155 0.360776 0.554422 0.767710 0.695374 0.157849 0 0 1 1 0 0 0 1 0.911236 0.500000 0.888029 0.876367 0.879927 0.500000 0.500000 0.882412 0.887079 0.500000 0.867231 0.883643 0.500000 0.850058 0.891137 0.904024 +0.605727 +0.386298 0.715367 0.169270 0.318803 0.726613 0.391408 0.200835 0.430602 0.500000 1 0.500000 0 0.500000 0 1 0 0.895845 0.859638 0.500000 0.863451 0.916149 0.859718 0.878835 0.886537 0.500000 0.500000 0.500000 0.893561 0.879523 0.500000 0.870739 0.874674 +0.712593 +0.245290 0.396513 0.394089 0.461099 0.298764 0.733038 0.361751 0.148405 1 0.500000 0.500000 0 0.500000 1 1 0.500000 0.874431 0.882420 0.850041 0.892477 0.872198 0.500000 0.865726 0.500000 0.867406 0.869122 0.887815 0.500000 0.891663 0.906861 0.500000 0.500000 +0.628145 +0.615037 0.333108 0.352145 0.298597 0.317504 0.495082 0.235988 0.844257 1 0.500000 1 1 0 0.500000 0.500000 1 0.880338 0.500000 0.885123 0.500000 0.500000 0.878575 0.500000 0.902059 0.914395 0.500000 0.500000 0.500000 0.898896 0.500000 0.932942 0.500000 +0.381120 +0.168194 0.643541 0.185227 0.511460 0.310513 0.594820 0.533005 0.807636 0.500000 1 1 0.500000 0 0 0 0.500000 0.878890 0.500000 0.875930 0.902864 0.881946 0.938410 0.875372 0.886592 0.908336 0.500000 0.853542 0.500000 0.883323 0.500000 0.877667 0.500000 +0.708113 +0.746548 0.234708 0.130012 0.517745 0.334041 0.821237 0.336245 0.274776 1 1 1 0 0.500000 0 0.500000 0 0.500000 0.866846 0.857680 0.500000 0.500000 0.897834 0.898309 0.894702 0.500000 0.500000 0.500000 0.853050 0.883870 0.889434 0.900217 0.500000 +0.520853 +0.625511 0.358315 0.796149 0.272714 0.495794 0.209462 0.633114 0.145650 0 0 1 0.500000 1 0.500000 0 1 0.884906 0.894415 0.890109 0.861942 0.890431 0.899157 0.863114 0.877710 0.850340 0.500000 0.846380 0.882249 0.882323 0.500000 0.500000 0.500000 +0.715668 +0.441265 0.540489 0.194877 0.304961 0.885546 0.366430 0.393223 0.301780 0 0 0 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.869110 0.500000 0.874407 0.908765 0.500000 0.888250 0.870455 0.500000 0.904178 0.500000 0.843232 0.500000 0.500000 0.500000 0.500000 +0.359531 +0.439234 0.798510 0.759593 0.285984 0.340919 0.426247 0.132761 0.313121 0.500000 0.500000 0 0 0 0.500000 1 0 0.500000 0.871564 0.884252 0.500000 0.901285 0.861694 0.500000 0.500000 0.879595 0.500000 0.861854 0.892178 0.500000 0.864199 0.878641 0.858327 +0.475389 +0.730261 0.892184 0.743633 0.845837 0.185721 0.809741 0.711591 0.704490 0.500000 0.500000 1 0 0 1 1 1 0.926064 0.877664 0.871297 0.888455 0.500000 0.886994 0.885780 0.898229 0.500000 0.865512 0.896704 0.500000 0.500000 0.884544 0.881405 0.889380 +0.719711 +0.622833 0.157361 0.173960 0.749908 0.697685 0.599218 0.854634 0.829436 0.500000 1 1 0 0.500000 1 1 0 0.893683 0.500000 0.883643 0.500000 0.878579 0.500000 0.500000 0.500000 0.880738 0.500000 0.500000 0.860704 0.500000 0.913968 0.500000 0.880168 +0.359268 +0.271180 0.324117 0.438597 0.506225 0.317116 0.366550 0.801407 0.645915 1 0.500000 0 1 0.500000 1 0 1 0.869938 0.500000 0.883168 0.500000 0.500000 0.500000 0.500000 0.875006 0.500000 0.841885 0.865439 0.500000 0.500000 0.500000 0.886898 0.500000 +0.298517 +0.542563 0.661766 0.896334 0.891886 0.520876 0.166005 0.637917 0.863436 1 1 0.500000 1 1 1 0 0 0.872877 0.902511 0.500000 0.500000 0.500000 0.500000 0.877799 0.882597 0.500000 0.891129 0.500000 0.865406 0.500000 0.500000 0.848048 0.500000 +0.299866 +0.712816 0.504352 0.842057 0.653184 0.656505 0.487163 0.744928 0.207658 1 0 0.500000 0 0.500000 0.500000 0 0 0.869932 0.500000 0.500000 0.916291 0.916569 0.894604 0.892185 0.884829 0.500000 0.906241 0.864021 0.500000 0.500000 0.500000 0.875400 0.500000 +0.419837 +0.865894 0.489340 0.535183 0.619980 0.206042 0.752088 0.546193 0.873605 0.500000 1 0 0 0 1 0.500000 0.500000 0.881986 0.500000 0.852755 0.883643 0.888302 0.500000 0.500000 0.924551 0.890095 0.500000 0.893975 0.863524 0.887601 0.877848 0.500000 0.882475 +0.566916 +0.811292 0.379862 0.536605 0.517786 0.231677 0.394442 0.790181 0.780615 1 0 1 0 0.500000 0.500000 1 0.500000 0.881724 0.865284 0.895274 0.878545 0.862883 0.500000 0.903633 0.886648 0.500000 0.500000 0.886492 0.500000 0.877597 0.500000 0.915377 0.500000 +0.548388 +0.833042 0.331500 0.526327 0.575948 0.162397 0.800967 0.450597 0.587384 0 0.500000 0.500000 1 1 0.500000 0 0.500000 0.910332 0.500000 0.890499 0.500000 0.875508 0.879073 0.500000 0.856750 0.875814 0.881524 0.862843 0.500000 0.500000 0.500000 0.874358 0.896187 +0.534339 +0.654532 0.112567 0.116870 0.437894 0.687875 0.512450 0.148873 0.713993 0 1 1 0 0 0 1 0.500000 0.500000 0.879087 0.857402 0.880095 0.871742 0.500000 0.902861 0.872173 0.878820 0.500000 0.500000 0.853334 0.500000 0.886930 0.852462 0.500000 +0.524679 +0.193081 0.513095 0.592233 0.256703 0.209341 0.189236 0.683971 0.500735 1 1 0 0.500000 0 1 1 0 0.856821 0.901580 0.500000 0.875921 0.500000 0.863345 0.901202 0.921188 0.500000 0.500000 0.867629 0.873348 0.896725 0.884412 0.500000 0.500000 +0.591311 +0.448514 0.780335 0.886321 0.594086 0.195992 0.635905 0.652362 0.451303 0.500000 0 0 1 0 0 1 1 0.875842 0.892510 0.911549 0.850011 0.880193 0.873495 0.500000 0.893921 0.882075 0.892877 0.500000 0.889377 0.500000 0.500000 0.500000 0.897465 +0.526065 +0.768577 0.880170 0.424177 0.538746 0.496401 0.808010 0.430073 0.445487 0 1 0 0 0.500000 0 1 0 0.863596 0.500000 0.500000 0.879702 0.867461 0.500000 0.910369 0.500000 0.500000 0.872983 0.500000 0.500000 0.500000 0.500000 0.500000 0.895246 +0.212519 +0.526990 0.512734 0.119859 0.275797 0.316082 0.589518 0.230097 0.245908 0.500000 0.500000 0 0 0.500000 1 0.500000 1 0.886700 0.876846 0.887671 0.914335 0.862910 0.911023 0.877959 0.856159 0.500000 0.876846 0.500000 0.859294 0.877586 0.500000 0.840634 0.500000 +0.725359 +0.497610 0.324883 0.509049 0.588366 0.860497 0.174658 0.470904 0.277497 1 0.500000 0.500000 0 0 1 0.500000 0 0.861847 0.903165 0.500000 0.873223 0.500000 0.874795 0.882590 0.896022 0.500000 0.500000 0.858792 0.500000 0.890684 0.500000 0.880594 0.885188 +0.544201 +0.121990 0.879583 0.148689 0.811220 0.775296 0.197786 0.395921 0.839492 1 0.500000 1 1 0 0 0.500000 0.500000 0.856409 0.903276 0.500000 0.500000 0.883771 0.895816 0.873546 0.873434 0.500000 0.880301 0.898583 0.500000 0.500000 0.500000 0.500000 0.500000 +0.488691 +0.347368 0.819727 0.549770 0.183383 0.712345 0.578350 0.525256 0.172995 0.500000 0.500000 0.500000 1 0 0 1 1 0.876087 0.878295 0.856447 0.500000 0.868555 0.855492 0.870187 0.876250 0.869347 0.500000 0.500000 0.870821 0.500000 0.500000 0.885972 0.842802 +0.605574 +0.202556 0.560920 0.385024 0.106115 0.466746 0.802990 0.848533 0.695985 1 0.500000 1 1 0.500000 0 0 1 0.892853 0.889576 0.901576 0.926722 0.899788 0.864528 0.891265 0.906932 0.500000 0.500000 0.500000 0.853066 0.915775 0.500000 0.882965 0.878193 +0.774095 +0.384219 0.170597 0.219059 0.332781 0.452975 0.545294 0.158043 0.431026 0.500000 0 0 0 0.500000 0.500000 0 1 0.500000 0.885796 0.861568 0.500000 0.897555 0.873795 0.500000 0.883208 0.888707 0.873351 0.869664 0.500000 0.500000 0.868791 0.500000 0.500000 +0.522899 +0.603862 0.505700 0.292240 0.671705 0.738753 0.429401 0.334875 0.435798 1 1 0 0.500000 0.500000 1 0 0.500000 0.867478 0.500000 0.876956 0.876115 0.500000 0.868017 0.890060 0.877610 0.500000 0.500000 0.923089 0.890259 0.500000 0.876055 0.884406 0.500000 +0.581080 +0.587455 0.753459 0.380319 0.220321 0.740357 0.184543 0.218681 0.372604 0 1 1 0 0 0 0.500000 1 0.866738 0.867721 0.500000 0.869656 0.882922 0.500000 0.927796 0.906579 0.877239 0.880023 0.866368 0.500000 0.911153 0.893546 0.876020 0.864805 +0.788649 +0.859723 0.765347 0.192710 0.682247 0.328962 0.262396 0.694832 0.638125 0.500000 0 1 0 1 0 0 1 0.876853 0.851065 0.877132 0.906776 0.500000 0.864627 0.841769 0.890873 0.892438 0.883115 0.857817 0.500000 0.892721 0.500000 0.895658 0.500000 +0.735693 +0.116407 0.644333 0.706140 0.287766 0.678303 0.436841 0.579832 0.629314 0 0 1 0 0 0 0 0 0.500000 0.884685 0.500000 0.881711 0.841950 0.897801 0.860982 0.860592 0.889488 0.500000 0.500000 0.500000 0.872762 0.869518 0.500000 0.892022 +0.464439 +0.242127 0.834597 0.880239 0.777364 0.558292 0.220447 0.453809 0.164544 1 0 0 0 1 1 1 0.500000 0.887355 0.913759 0.870047 0.859933 0.500000 0.908473 0.500000 0.863817 0.500000 0.874949 0.881651 0.841623 0.893786 0.872926 0.500000 0.500000 +0.508713 +0.724653 0.238549 0.701391 0.470827 0.586515 0.164710 0.487735 0.764400 0 1 1 1 0 0.500000 0 0 0.500000 0.890167 0.500000 0.881668 0.845112 0.882897 0.859249 0.856531 0.500000 0.500000 0.500000 0.500000 0.867981 0.500000 0.889047 0.500000 +0.446409 +0.257355 0.769733 0.295414 0.423807 0.726086 0.326950 0.840472 0.418471 1 1 0 0 1 0 1 1 0.500000 0.500000 0.869196 0.856517 0.873857 0.500000 0.891690 0.889294 0.883323 0.500000 0.888677 0.877952 0.913277 0.870715 0.854767 0.880402 +0.663764 +0.431264 0.447333 0.120078 0.742826 0.883641 0.352022 0.632110 0.869462 0.500000 1 0 1 0 0 1 1 0.858469 0.500000 0.500000 0.904019 0.500000 0.500000 0.500000 0.500000 0.897609 0.877286 0.888425 0.893400 0.500000 0.879434 0.500000 0.866345 +0.506602 +0.517148 0.703659 0.203039 0.679088 0.828061 0.617142 0.510188 0.534082 0.500000 0 0 1 0 0.500000 0 1 0.874921 0.862176 0.873607 0.887499 0.500000 0.884136 0.863123 0.900321 0.500000 0.905323 0.905394 0.500000 0.887567 0.892734 0.891626 0.856755 +0.668137 +0.431578 0.125837 0.739136 0.459107 0.415497 0.254615 0.318080 0.567322 1 0 1 1 0.500000 0 0 0.500000 0.500000 0.500000 0.500000 0.908679 0.871625 0.896632 0.886093 0.500000 0.500000 0.500000 0.500000 0.500000 0.876679 0.914335 0.897376 0.500000 +0.396184 +0.258152 0.558634 0.366793 0.886152 0.153533 0.629321 0.404393 0.838121 0 0.500000 1 1 0.500000 1 1 0.500000 0.870594 0.851420 0.500000 0.869249 0.500000 0.908785 0.910779 0.884339 0.500000 0.500000 0.864702 0.870917 0.500000 0.861929 0.500000 0.500000 +0.574198 +0.773984 0.546146 0.871746 0.438833 0.468703 0.888792 0.532209 0.229360 1 0.500000 1 0 0 0 1 1 0.886719 0.903474 0.894243 0.879319 0.891201 0.500000 0.870579 0.898058 0.878377 0.500000 0.500000 0.870035 0.500000 0.500000 0.500000 0.500000 +0.574400 +0.336611 0.823810 0.374093 0.379742 0.123519 0.178380 0.639670 0.741349 1 0.500000 1 0.500000 0 1 0.500000 0 0.881181 0.896405 0.873562 0.900330 0.884613 0.823003 0.888663 0.919634 0.500000 0.500000 0.886930 0.888816 0.906276 0.863980 0.500000 0.500000 +0.794136 +0.373949 0.363291 0.431742 0.492552 0.125698 0.807767 0.340933 0.666247 0 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.853218 0.867438 0.500000 0.500000 0.879036 0.864535 0.500000 0.898591 0.500000 0.500000 0.858834 0.500000 0.500000 0.500000 0.878880 0.859442 +0.347512 +0.664497 0.400851 0.509561 0.384856 0.472224 0.865041 0.542728 0.237284 0 1 0 1 0.500000 0.500000 1 0.500000 0.500000 0.888659 0.500000 0.888941 0.898657 0.841927 0.500000 0.912352 0.863071 0.863329 0.500000 0.500000 0.500000 0.872705 0.500000 0.500000 +0.425503 +0.888072 0.433775 0.255562 0.229326 0.889366 0.570194 0.258551 0.865545 0 0.500000 1 0 0.500000 0 0.500000 0.500000 0.914267 0.882969 0.914533 0.500000 0.883020 0.899490 0.883015 0.909924 0.500000 0.883663 0.861115 0.891409 0.500000 0.500000 0.896464 0.858682 +0.631321 +0.318548 0.432429 0.827349 0.663684 0.342378 0.150607 0.252793 0.899633 0 1 0 0 0 0.500000 0.500000 0.500000 0.878131 0.870096 0.895906 0.500000 0.878165 0.907259 0.894286 0.875377 0.500000 0.500000 0.861094 0.500000 0.500000 0.866877 0.500000 0.500000 +0.523652 +0.811043 0.203536 0.226405 0.592304 0.647520 0.662573 0.863671 0.719604 0 0.500000 0.500000 0.500000 0 0 0 0 0.858313 0.500000 0.858712 0.871498 0.888918 0.500000 0.897300 0.878298 0.879326 0.500000 0.500000 0.500000 0.872524 0.905541 0.887753 0.927399 +0.473096 +0.218577 0.215071 0.491745 0.161617 0.499769 0.613541 0.781167 0.479957 0.500000 0.500000 0 1 0 1 0 0 0.886518 0.879630 0.500000 0.500000 0.881968 0.874661 0.863369 0.884884 0.883066 0.881193 0.500000 0.500000 0.500000 0.868327 0.500000 0.848496 +0.541512 +0.764722 0.876681 0.175989 0.445867 0.290775 0.858900 0.536485 0.898264 0.500000 0 1 0 0.500000 1 0 0.500000 0.500000 0.863466 0.888346 0.855672 0.892336 0.880470 0.500000 0.834726 0.500000 0.859536 0.500000 0.870878 0.873989 0.500000 0.500000 0.500000 +0.413124 +0.329587 0.374794 0.167556 0.320350 0.326332 0.857729 0.853360 0.223221 1 1 0 0 0 1 0 0.500000 0.905860 0.914800 0.500000 0.901667 0.500000 0.885876 0.827152 0.892839 0.500000 0.892014 0.893439 0.949306 0.883233 0.872935 0.500000 0.500000 +0.706126 +0.491774 0.643446 0.197388 0.104081 0.684809 0.188375 0.611023 0.867245 1 1 0.500000 0.500000 0.500000 1 1 1 0.873975 0.500000 0.876665 0.500000 0.901755 0.878363 0.500000 0.500000 0.879458 0.902324 0.874087 0.874806 0.500000 0.880681 0.898341 0.895666 +0.618965 +0.257938 0.161979 0.187025 0.326705 0.733507 0.248765 0.396561 0.402472 0.500000 1 0 1 0 1 1 1 0.500000 0.500000 0.883030 0.887148 0.500000 0.500000 0.875657 0.500000 0.841762 0.500000 0.500000 0.500000 0.873910 0.885510 0.500000 0.500000 +0.296879 +0.396697 0.283558 0.360814 0.406427 0.622994 0.468040 0.149959 0.564461 1 1 0 0.500000 0 0.500000 0.500000 1 0.903555 0.500000 0.864804 0.863931 0.884450 0.854282 0.898682 0.906020 0.500000 0.899847 0.892736 0.895285 0.901259 0.895533 0.500000 0.500000 +0.803185 +0.175484 0.762502 0.378853 0.390086 0.377127 0.169233 0.493827 0.750234 0.500000 0 0 0 1 0 0 0.500000 0.880838 0.907257 0.899116 0.887501 0.500000 0.500000 0.868079 0.500000 0.500000 0.910280 0.864024 0.500000 0.500000 0.500000 0.500000 0.500000 +0.395918 +0.469389 0.416283 0.666516 0.730842 0.259700 0.175834 0.235917 0.458725 0.500000 0 1 1 0.500000 1 0 1 0.500000 0.891948 0.893584 0.903840 0.897015 0.500000 0.878735 0.890649 0.852994 0.911336 0.870457 0.863664 0.882807 0.500000 0.867720 0.919166 +0.713251 +0.171852 0.508664 0.516346 0.833977 0.851226 0.360849 0.197412 0.504453 0 0 0.500000 0 0.500000 0 0 1 0.500000 0.877846 0.894525 0.894288 0.877173 0.874995 0.878704 0.883448 0.500000 0.926218 0.500000 0.858089 0.500000 0.500000 0.500000 0.876287 +0.566972 +0.718077 0.119440 0.431582 0.204025 0.454255 0.458518 0.113775 0.412424 0.500000 0 0.500000 0 0.500000 1 1 0 0.875829 0.500000 0.913442 0.876932 0.500000 0.874457 0.500000 0.500000 0.891356 0.500000 0.898096 0.500000 0.876503 0.870128 0.843316 0.851166 +0.518614 +0.722233 0.377694 0.896541 0.368234 0.301765 0.760438 0.888115 0.346018 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 0.876258 0.500000 0.873027 0.890404 0.873151 0.500000 0.884604 0.867605 0.500000 0.500000 0.500000 0.876944 0.500000 0.882509 0.500000 0.500000 +0.473936 +0.894815 0.162419 0.381479 0.512626 0.713665 0.364128 0.101889 0.644392 0 0 1 0 0.500000 0 0.500000 0 0.884854 0.901929 0.900871 0.500000 0.500000 0.919889 0.500000 0.888309 0.909332 0.500000 0.867594 0.500000 0.854927 0.907660 0.880882 0.500000 +0.512313 +0.200217 0.447264 0.568875 0.481263 0.781104 0.219897 0.807411 0.749660 0.500000 0.500000 0.500000 1 0 0 0.500000 0 0.500000 0.500000 0.866114 0.886736 0.920339 0.500000 0.882392 0.500000 0.500000 0.500000 0.500000 0.865376 0.861951 0.500000 0.500000 0.875869 +0.317645 +0.175848 0.476781 0.665693 0.496482 0.573111 0.472002 0.343721 0.323841 0.500000 1 0.500000 0.500000 0.500000 0 1 0.500000 0.857923 0.873723 0.835538 0.866516 0.500000 0.900873 0.869372 0.918403 0.500000 0.867144 0.500000 0.879140 0.500000 0.844214 0.928711 0.880546 +0.694738 +0.622440 0.753803 0.565527 0.216705 0.763134 0.593620 0.377080 0.176966 1 0 1 1 0.500000 0 0.500000 0 0.500000 0.881177 0.865990 0.872815 0.500000 0.897404 0.500000 0.500000 0.500000 0.500000 0.500000 0.873635 0.883340 0.500000 0.500000 0.905407 +0.288965 +0.749608 0.456095 0.186852 0.618182 0.387454 0.136151 0.497654 0.274712 0.500000 1 1 0 0 0 1 0 0.500000 0.500000 0.880473 0.876026 0.500000 0.862974 0.864087 0.891305 0.500000 0.500000 0.500000 0.935486 0.855459 0.886637 0.500000 0.500000 +0.444982 +0.719508 0.167450 0.130447 0.623723 0.711575 0.434349 0.303597 0.353038 0 0.500000 1 0 0.500000 0 1 0 0.894178 0.880697 0.911450 0.867913 0.500000 0.500000 0.900839 0.898386 0.885202 0.500000 0.893776 0.920426 0.905004 0.500000 0.892587 0.500000 +0.566519 +0.792358 0.566612 0.855339 0.676925 0.481306 0.713715 0.409169 0.310411 0.500000 0.500000 0 0 1 1 0.500000 0 0.500000 0.884569 0.863363 0.500000 0.929334 0.500000 0.894889 0.500000 0.500000 0.500000 0.500000 0.871526 0.878705 0.904948 0.500000 0.869166 +0.370270 +0.260420 0.275426 0.477307 0.704775 0.558720 0.210545 0.430236 0.783013 0 1 1 0 0.500000 0 0.500000 0.500000 0.827871 0.863428 0.848016 0.888027 0.874434 0.500000 0.889137 0.876324 0.500000 0.500000 0.888542 0.500000 0.884519 0.500000 0.856165 0.500000 +0.584194 +0.283061 0.808306 0.606323 0.275167 0.138888 0.889138 0.740289 0.631775 1 0 0 1 1 0.500000 0.500000 1 0.901546 0.867898 0.500000 0.879556 0.857398 0.905478 0.886269 0.908087 0.862706 0.500000 0.500000 0.898547 0.500000 0.500000 0.913326 0.914547 +0.617119 +0.764584 0.158467 0.346529 0.318043 0.753259 0.219682 0.399323 0.419491 0 1 0 1 1 0 0.500000 1 0.500000 0.891040 0.887727 0.865328 0.888641 0.873226 0.931880 0.912426 0.888223 0.897541 0.500000 0.500000 0.880778 0.865662 0.888233 0.924272 +0.835729 +0.618100 0.610282 0.410338 0.753771 0.829058 0.574864 0.338477 0.178217 0 0 0 1 1 0.500000 1 0 0.500000 0.877165 0.868897 0.887050 0.917269 0.500000 0.893179 0.920627 0.865932 0.500000 0.868490 0.883400 0.500000 0.885760 0.884911 0.500000 +0.571123 +0.434260 0.414608 0.520538 0.878112 0.235006 0.339477 0.193798 0.561766 0 0 0 1 0.500000 1 0.500000 0 0.500000 0.920886 0.500000 0.889142 0.912700 0.500000 0.917863 0.879255 0.500000 0.866742 0.500000 0.910509 0.500000 0.901608 0.500000 0.500000 +0.377606 +0.223116 0.505905 0.538002 0.802917 0.427588 0.274883 0.163093 0.510518 0.500000 1 0.500000 0 1 0 1 1 0.900267 0.500000 0.868841 0.881805 0.500000 0.892751 0.500000 0.857195 0.500000 0.500000 0.849435 0.500000 0.904291 0.869844 0.840725 0.500000 +0.451305 +0.106069 0.498328 0.402029 0.300063 0.158352 0.823553 0.852115 0.898690 0.500000 0 0 0 0.500000 0 1 0.500000 0.500000 0.899443 0.854325 0.500000 0.894712 0.877571 0.500000 0.891264 0.500000 0.873438 0.877980 0.873196 0.836717 0.500000 0.500000 0.886123 +0.477163 +0.528359 0.330493 0.394753 0.419849 0.603876 0.738644 0.182966 0.108514 1 0 1 1 1 0 0.500000 1 0.841460 0.875100 0.873646 0.855688 0.892315 0.879980 0.897664 0.875319 0.867111 0.880468 0.500000 0.500000 0.882015 0.500000 0.500000 0.500000 +0.649384 +0.315867 0.184598 0.346425 0.167241 0.613440 0.677717 0.196371 0.604985 0 1 1 1 1 1 0 0.500000 0.862186 0.500000 0.500000 0.862487 0.890954 0.500000 0.868020 0.882100 0.500000 0.500000 0.903801 0.897322 0.894036 0.500000 0.500000 0.500000 +0.494241 +0.831080 0.169970 0.883013 0.205476 0.833708 0.330096 0.116625 0.319371 1 0.500000 1 0.500000 1 0 0.500000 1 0.884697 0.500000 0.882757 0.876190 0.912424 0.500000 0.874705 0.871047 0.931998 0.905445 0.882951 0.500000 0.500000 0.881592 0.906557 0.914251 +0.737664 +0.800682 0.456458 0.684188 0.152018 0.759448 0.246330 0.265908 0.521760 0.500000 1 0 0 0.500000 0 0 1 0.870395 0.500000 0.878526 0.500000 0.878060 0.862293 0.500000 0.880077 0.500000 0.500000 0.878218 0.868783 0.500000 0.500000 0.500000 0.500000 +0.307473 +0.263267 0.121997 0.197423 0.686857 0.209435 0.178602 0.367527 0.420597 0.500000 1 0.500000 1 0.500000 1 1 0 0.885853 0.853802 0.500000 0.902774 0.902430 0.860784 0.887851 0.500000 0.896262 0.500000 0.882662 0.500000 0.500000 0.884566 0.920305 0.886059 +0.610188 +0.411191 0.685155 0.407036 0.452529 0.249411 0.842387 0.605892 0.233509 1 1 0.500000 1 0 1 0 0.500000 0.886593 0.904321 0.500000 0.868460 0.500000 0.882211 0.871206 0.500000 0.500000 0.500000 0.899514 0.876515 0.500000 0.909854 0.500000 0.500000 +0.435112 +0.772533 0.160056 0.656124 0.482670 0.426444 0.246947 0.231039 0.874232 0.500000 1 1 0 0 0.500000 0 0 0.873314 0.872398 0.500000 0.883941 0.500000 0.878644 0.869483 0.500000 0.888255 0.500000 0.500000 0.500000 0.875778 0.500000 0.500000 0.500000 +0.386149 +0.755392 0.873069 0.265816 0.565483 0.271090 0.410673 0.776817 0.162471 0.500000 1 0.500000 1 0.500000 1 0 1 0.500000 0.500000 0.904253 0.500000 0.895079 0.929705 0.500000 0.500000 0.858460 0.863623 0.921024 0.500000 0.500000 0.500000 0.500000 0.500000 +0.204753 +0.152185 0.380704 0.293430 0.676937 0.688235 0.172834 0.213888 0.619899 0.500000 0 1 1 0.500000 0.500000 0.500000 1 0.903533 0.882374 0.892784 0.879947 0.500000 0.890798 0.893083 0.500000 0.500000 0.868853 0.871422 0.859378 0.903069 0.850361 0.858225 0.878389 +0.764956 +0.753249 0.857858 0.618785 0.119365 0.767768 0.871536 0.897858 0.101375 1 0 0.500000 1 0 0.500000 1 1 0.875399 0.878150 0.875016 0.500000 0.500000 0.898459 0.500000 0.885975 0.860785 0.850345 0.863885 0.901671 0.500000 0.881138 0.500000 0.884543 +0.601425 +0.347274 0.830698 0.148647 0.105670 0.191080 0.475748 0.103068 0.459933 1 0 0 0 0 0 0.500000 0.500000 0.839727 0.500000 0.500000 0.893889 0.500000 0.845618 0.500000 0.500000 0.500000 0.500000 0.869874 0.500000 0.879114 0.877448 0.877711 0.861134 +0.371629 +0.225078 0.684302 0.471557 0.853980 0.239041 0.165705 0.397904 0.569088 1 0 0.500000 0.500000 0 1 1 1 0.857544 0.845237 0.890292 0.880497 0.890135 0.897970 0.878373 0.500000 0.500000 0.880884 0.500000 0.500000 0.500000 0.904658 0.500000 0.878530 +0.621227 +0.679929 0.560981 0.607274 0.245851 0.211510 0.648621 0.774015 0.269066 1 1 0.500000 0 1 0 1 0.500000 0.878526 0.898139 0.500000 0.907986 0.500000 0.873879 0.894811 0.500000 0.500000 0.500000 0.865097 0.500000 0.500000 0.500000 0.905299 0.500000 +0.407928 +0.821455 0.798404 0.573215 0.627995 0.519402 0.183255 0.171501 0.216090 1 1 0.500000 0 0.500000 1 0.500000 0.500000 0.864867 0.894162 0.882489 0.849455 0.906040 0.888950 0.881731 0.500000 0.500000 0.926661 0.500000 0.870755 0.870246 0.500000 0.500000 0.500000 +0.587973 +0.505251 0.754438 0.839656 0.291514 0.478221 0.864826 0.137421 0.229338 0 1 0.500000 0 1 0 0.500000 1 0.876086 0.840662 0.866014 0.914992 0.500000 0.878468 0.883461 0.882760 0.883959 0.500000 0.500000 0.889921 0.866615 0.883599 0.500000 0.900314 +0.688486 +0.112177 0.765329 0.682216 0.609886 0.150136 0.327443 0.326775 0.314118 0.500000 0.500000 1 1 0.500000 1 1 0.500000 0.880777 0.500000 0.893342 0.890807 0.500000 0.866959 0.500000 0.500000 0.903204 0.500000 0.500000 0.500000 0.927081 0.906180 0.500000 0.500000 +0.378225 +0.481234 0.297078 0.386467 0.342896 0.857061 0.823059 0.547035 0.617582 1 1 1 0 1 1 0.500000 0.500000 0.862228 0.905258 0.500000 0.888377 0.898777 0.883191 0.882292 0.857623 0.500000 0.500000 0.500000 0.885113 0.500000 0.500000 0.500000 0.877633 +0.608348 +0.444577 0.208971 0.379212 0.816447 0.621069 0.107681 0.397689 0.158965 1 1 0.500000 0 0 0 0 0 0.889674 0.881993 0.500000 0.500000 0.904920 0.500000 0.899107 0.500000 0.500000 0.887601 0.500000 0.500000 0.893572 0.500000 0.500000 0.500000 +0.336835 +0.740682 0.834401 0.778688 0.414051 0.755367 0.445755 0.807813 0.319375 1 0.500000 0 0 0.500000 0.500000 1 0 0.866781 0.500000 0.853356 0.500000 0.862387 0.880574 0.876267 0.500000 0.895328 0.500000 0.871479 0.870652 0.877976 0.500000 0.857345 0.919734 +0.570243 +0.810150 0.392967 0.788712 0.875810 0.744297 0.805113 0.530171 0.392024 0 0.500000 1 0 0 1 1 0 0.500000 0.500000 0.922025 0.905182 0.880566 0.910746 0.857221 0.887061 0.870010 0.500000 0.900825 0.500000 0.500000 0.884159 0.500000 0.863593 +0.558490 diff --git a/lib/ann/fann/datasets/kin32fm.train b/lib/ann/fann/datasets/kin32fm.train new file mode 100644 index 0000000..faad168 --- /dev/null +++ b/lib/ann/fann/datasets/kin32fm.train @@ -0,0 +1,4097 @@ +2048 32 1 +0.310129 0.539574 0.818272 0.897531 0.210375 0.779998 0.825176 0.134719 0.500000 0 0 0.500000 1 0.500000 0.500000 1 0.903734 0.500000 0.897931 0.880138 0.908718 0.903462 0.500000 0.875589 0.500000 0.500000 0.858626 0.899508 0.893301 0.500000 0.913013 0.500000 +0.559041 +0.388131 0.312793 0.520018 0.136972 0.689263 0.649287 0.766775 0.184790 0 1 0.500000 0.500000 1 0 0 0 0.889251 0.915272 0.882835 0.500000 0.896246 0.868433 0.852139 0.869458 0.500000 0.500000 0.500000 0.859678 0.892552 0.873567 0.500000 0.871333 +0.665232 +0.463603 0.780651 0.601465 0.220453 0.554149 0.184218 0.358054 0.416600 0.500000 0 1 0.500000 0 0 1 0.500000 0.882282 0.911558 0.500000 0.891728 0.500000 0.500000 0.866708 0.889763 0.500000 0.500000 0.872858 0.920309 0.866279 0.894533 0.893614 0.864310 +0.652144 +0.368106 0.565047 0.144901 0.349955 0.288521 0.577019 0.558989 0.724507 0 0.500000 1 0.500000 0.500000 0 1 1 0.500000 0.902290 0.880976 0.866746 0.883139 0.500000 0.500000 0.877427 0.879526 0.885941 0.500000 0.500000 0.500000 0.500000 0.881787 0.905362 +0.530235 +0.820701 0.126260 0.648165 0.314510 0.571796 0.783127 0.615366 0.255301 1 1 1 0 1 0.500000 0.500000 1 0.909275 0.875463 0.895715 0.874943 0.873597 0.500000 0.500000 0.907683 0.876874 0.500000 0.865300 0.500000 0.500000 0.500000 0.895296 0.890289 +0.506297 +0.366004 0.427005 0.873451 0.298734 0.229213 0.590332 0.304668 0.751784 0 0 0.500000 1 0.500000 1 0.500000 1 0.899813 0.888681 0.892519 0.500000 0.910600 0.500000 0.500000 0.500000 0.863090 0.847349 0.872549 0.500000 0.843454 0.892234 0.890156 0.500000 +0.483148 +0.798793 0.721044 0.382147 0.538226 0.561947 0.848154 0.729071 0.889137 1 1 0 0.500000 0.500000 1 1 0.500000 0.500000 0.890124 0.875364 0.887784 0.867417 0.910504 0.895305 0.907115 0.500000 0.500000 0.898060 0.500000 0.500000 0.848706 0.889527 0.500000 +0.588722 +0.875096 0.741170 0.245884 0.773080 0.558456 0.576062 0.467172 0.762615 1 1 1 0 1 1 0 0.500000 0.863727 0.897905 0.877215 0.896533 0.500000 0.864586 0.863805 0.886392 0.500000 0.500000 0.866617 0.500000 0.895624 0.500000 0.500000 0.500000 +0.516354 +0.206798 0.658656 0.627051 0.641539 0.148801 0.291139 0.572929 0.614115 1 0.500000 0 1 1 0 0 0 0.872884 0.500000 0.500000 0.905971 0.881930 0.861525 0.500000 0.881374 0.500000 0.887107 0.890809 0.869005 0.500000 0.500000 0.872306 0.500000 +0.432782 +0.218156 0.346169 0.656890 0.544925 0.362213 0.720434 0.540729 0.229878 0.500000 0.500000 0 0.500000 1 0 0.500000 1 0.500000 0.879104 0.893234 0.500000 0.888596 0.880703 0.906273 0.888597 0.874237 0.500000 0.874689 0.860627 0.872784 0.885619 0.500000 0.836177 +0.681916 +0.397840 0.288980 0.284960 0.717322 0.226966 0.423974 0.330155 0.317067 0 0.500000 1 0 0.500000 1 1 0 0.821505 0.848788 0.861483 0.877461 0.500000 0.500000 0.500000 0.880629 0.862862 0.886752 0.500000 0.883524 0.500000 0.500000 0.500000 0.500000 +0.401120 +0.134292 0.450769 0.266636 0.756359 0.333728 0.371334 0.408880 0.242584 0.500000 0.500000 0.500000 0.500000 0 1 0 0 0.911584 0.500000 0.913059 0.877010 0.873686 0.500000 0.900884 0.500000 0.500000 0.500000 0.500000 0.901568 0.500000 0.500000 0.851837 0.887965 +0.435093 +0.602750 0.226153 0.360385 0.398103 0.721366 0.195897 0.635494 0.142680 0.500000 1 0 0.500000 0.500000 0 1 0 0.500000 0.861596 0.865587 0.895582 0.880579 0.879839 0.853711 0.892341 0.897196 0.851098 0.500000 0.867044 0.500000 0.875758 0.883453 0.893371 +0.799875 +0.495848 0.322242 0.127500 0.687652 0.760827 0.215670 0.164683 0.829692 1 0.500000 0 0 0.500000 0.500000 1 1 0.903298 0.500000 0.903825 0.500000 0.500000 0.866739 0.884035 0.500000 0.500000 0.864523 0.500000 0.500000 0.893695 0.500000 0.500000 0.893324 +0.323672 +0.123364 0.784621 0.132996 0.265826 0.729361 0.167144 0.581635 0.543659 1 0.500000 0 0 1 0 0.500000 0.500000 0.842847 0.862809 0.851061 0.868130 0.916396 0.500000 0.878807 0.867950 0.500000 0.883210 0.500000 0.500000 0.890498 0.500000 0.889783 0.500000 +0.611744 +0.669203 0.298860 0.740129 0.352089 0.163202 0.731526 0.555941 0.706060 0.500000 1 0 1 0.500000 1 0 1 0.882098 0.908127 0.500000 0.907959 0.901254 0.883425 0.871412 0.865520 0.500000 0.500000 0.500000 0.882294 0.855962 0.897643 0.870759 0.901615 +0.731166 +0.502220 0.204110 0.284439 0.768693 0.425868 0.170611 0.466686 0.588398 0.500000 0 0 0 0 0.500000 0.500000 0 0.885819 0.860382 0.888444 0.889827 0.898261 0.883961 0.873873 0.887381 0.500000 0.500000 0.896658 0.869429 0.863127 0.871143 0.862103 0.500000 +0.775453 +0.799725 0.373632 0.632907 0.674994 0.819712 0.293848 0.497710 0.418309 0 1 0 0.500000 1 0 0 0.500000 0.888458 0.500000 0.852648 0.881789 0.500000 0.921985 0.864880 0.900696 0.500000 0.500000 0.899203 0.500000 0.868614 0.500000 0.500000 0.500000 +0.437039 +0.893937 0.599207 0.674502 0.555704 0.723052 0.534867 0.104849 0.790135 1 0 0.500000 1 0 0.500000 1 0.500000 0.865798 0.885729 0.500000 0.851924 0.924437 0.500000 0.886089 0.883939 0.500000 0.863437 0.870921 0.913836 0.881405 0.500000 0.898349 0.500000 +0.594669 +0.571350 0.487081 0.163724 0.713576 0.476010 0.496391 0.639462 0.432268 0.500000 0.500000 1 1 1 0.500000 0.500000 1 0.500000 0.890613 0.883331 0.889792 0.500000 0.870076 0.885486 0.905852 0.900479 0.903945 0.500000 0.500000 0.500000 0.500000 0.898909 0.500000 +0.502667 +0.491088 0.322843 0.616335 0.535282 0.683015 0.428490 0.233728 0.463106 0.500000 0 0.500000 0 1 1 0 1 0.914281 0.500000 0.896965 0.876119 0.500000 0.500000 0.900490 0.861888 0.877892 0.500000 0.856272 0.902836 0.884094 0.500000 0.876901 0.500000 +0.485760 +0.893045 0.808930 0.687985 0.772690 0.407892 0.436300 0.288727 0.839837 0 0.500000 0 0.500000 0.500000 0 0.500000 1 0.910422 0.865554 0.500000 0.500000 0.865922 0.888129 0.500000 0.861357 0.874132 0.500000 0.500000 0.500000 0.500000 0.890911 0.898962 0.881345 +0.396649 +0.686746 0.746359 0.250289 0.413852 0.606313 0.100683 0.382824 0.721843 0 0.500000 1 0 0.500000 0 1 0 0.500000 0.909822 0.500000 0.500000 0.875219 0.500000 0.500000 0.899353 0.896821 0.500000 0.882734 0.500000 0.876176 0.887935 0.910894 0.500000 +0.382979 +0.760118 0.308838 0.446400 0.440485 0.234081 0.806269 0.767842 0.526340 1 0 0.500000 0.500000 1 0 0.500000 0.500000 0.905064 0.863691 0.880865 0.500000 0.908221 0.864479 0.887691 0.863688 0.876863 0.500000 0.869864 0.500000 0.868651 0.500000 0.889554 0.886090 +0.660188 +0.659528 0.888852 0.734472 0.474200 0.476802 0.217435 0.225602 0.694227 1 0.500000 0 0.500000 0.500000 0.500000 1 0 0.857040 0.868455 0.894623 0.500000 0.500000 0.500000 0.847145 0.500000 0.874390 0.880801 0.500000 0.500000 0.891476 0.500000 0.920496 0.899974 +0.454813 +0.532122 0.380204 0.688016 0.481386 0.448430 0.168790 0.246542 0.631627 1 1 1 0.500000 0.500000 1 0.500000 0 0.500000 0.883433 0.876518 0.853337 0.500000 0.500000 0.500000 0.900672 0.500000 0.867658 0.500000 0.873105 0.500000 0.897715 0.918699 0.500000 +0.422273 +0.459001 0.222037 0.781235 0.824867 0.537691 0.370714 0.386084 0.319689 0.500000 0.500000 0 0 0 0 1 0 0.892257 0.889177 0.865852 0.901520 0.878969 0.875566 0.874442 0.500000 0.500000 0.500000 0.877355 0.884650 0.890181 0.894513 0.868046 0.868540 +0.676332 +0.378643 0.858453 0.213303 0.378803 0.339097 0.199886 0.482371 0.213842 1 0 1 1 0 0 0.500000 1 0.500000 0.881789 0.500000 0.872969 0.868527 0.877504 0.849806 0.897179 0.889784 0.500000 0.887518 0.871227 0.878974 0.500000 0.871961 0.895800 +0.705519 +0.697400 0.598391 0.565552 0.630632 0.838904 0.452385 0.232177 0.796832 0.500000 0 0.500000 1 1 0 1 0 0.872210 0.897733 0.890832 0.500000 0.500000 0.852348 0.500000 0.867131 0.500000 0.500000 0.500000 0.891104 0.888222 0.500000 0.864079 0.500000 +0.386008 +0.121911 0.363438 0.501932 0.175397 0.899911 0.197005 0.867474 0.640473 0.500000 0.500000 0 1 0.500000 1 0 0 0.875231 0.500000 0.867500 0.878615 0.898595 0.892250 0.500000 0.877679 0.500000 0.500000 0.500000 0.500000 0.886532 0.500000 0.500000 0.857655 +0.445920 +0.594559 0.159473 0.460866 0.375318 0.166618 0.550955 0.100390 0.262649 0 0.500000 0 1 1 0.500000 1 0.500000 0.894633 0.885160 0.500000 0.500000 0.500000 0.893309 0.500000 0.859478 0.886440 0.500000 0.858352 0.500000 0.885216 0.906871 0.500000 0.860012 +0.407979 +0.312708 0.687830 0.553123 0.542207 0.276666 0.519611 0.504696 0.220510 1 0.500000 0 0 0.500000 1 1 1 0.500000 0.500000 0.500000 0.858709 0.500000 0.883731 0.873403 0.888007 0.500000 0.862088 0.500000 0.500000 0.886342 0.852268 0.862061 0.883306 +0.425716 +0.516947 0.521685 0.157415 0.275871 0.764613 0.655015 0.240421 0.151073 1 0 0.500000 0.500000 1 1 1 0 0.500000 0.918838 0.877936 0.920175 0.910400 0.903759 0.905710 0.500000 0.848722 0.881796 0.882907 0.842445 0.879664 0.856410 0.892513 0.868155 +0.772077 +0.557454 0.530916 0.109175 0.704788 0.772242 0.877096 0.756879 0.259372 0 1 0 0.500000 0.500000 0 0 0 0.875402 0.866467 0.868982 0.500000 0.897564 0.894291 0.896874 0.500000 0.919122 0.500000 0.500000 0.875295 0.883153 0.500000 0.500000 0.500000 +0.449342 +0.194915 0.128241 0.344533 0.365321 0.155889 0.232140 0.173509 0.363933 1 0.500000 0 0.500000 0.500000 0.500000 1 0.500000 0.862636 0.887381 0.500000 0.500000 0.867800 0.884575 0.500000 0.500000 0.500000 0.874473 0.861620 0.852260 0.887646 0.500000 0.907891 0.903528 +0.585938 +0.156670 0.549041 0.727983 0.216668 0.141545 0.746795 0.388938 0.282729 1 0 0.500000 0.500000 0 1 0.500000 0.500000 0.873712 0.884895 0.869398 0.500000 0.878363 0.907352 0.890411 0.500000 0.500000 0.500000 0.864664 0.901180 0.500000 0.884595 0.500000 0.500000 +0.522712 +0.505734 0.866094 0.643252 0.138914 0.524754 0.533577 0.824009 0.515903 0.500000 0 1 1 0.500000 0.500000 0 1 0.857238 0.896413 0.500000 0.897057 0.889370 0.500000 0.500000 0.500000 0.873538 0.500000 0.862916 0.500000 0.500000 0.855662 0.500000 0.500000 +0.257646 +0.409135 0.534784 0.319506 0.538871 0.207060 0.255328 0.304753 0.581505 1 0.500000 0 0.500000 1 0.500000 0 0 0.880150 0.896134 0.864226 0.500000 0.500000 0.500000 0.500000 0.500000 0.887775 0.870076 0.500000 0.500000 0.500000 0.853989 0.500000 0.500000 +0.262143 +0.630300 0.853869 0.771701 0.575605 0.790449 0.482211 0.725478 0.515090 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.901973 0.500000 0.500000 0.888318 0.894937 0.858252 0.898096 0.500000 0.878631 0.500000 0.500000 0.884789 0.500000 0.881882 0.904009 0.500000 +0.428628 +0.527785 0.278088 0.420341 0.872848 0.557012 0.301826 0.189618 0.717716 0.500000 0 0 0.500000 0.500000 0 0 1 0.500000 0.916468 0.878229 0.861128 0.500000 0.883480 0.867699 0.901147 0.500000 0.500000 0.890281 0.874380 0.500000 0.500000 0.500000 0.879149 +0.498082 +0.231893 0.833804 0.345352 0.527184 0.581639 0.612750 0.297803 0.569344 0 0 0 0 1 0.500000 1 1 0.500000 0.870200 0.500000 0.847243 0.500000 0.898783 0.500000 0.850867 0.500000 0.500000 0.500000 0.500000 0.871689 0.879914 0.500000 0.854989 +0.268533 +0.563791 0.641159 0.156529 0.582065 0.565489 0.365445 0.630247 0.754581 1 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875058 0.876837 0.500000 0.910948 0.836141 0.872516 0.872331 0.500000 0.500000 0.895087 0.500000 0.895026 0.500000 0.882362 0.500000 0.500000 +0.498924 +0.406204 0.862725 0.811888 0.807889 0.788236 0.888863 0.116432 0.275159 1 0.500000 0.500000 0 0 1 1 0.500000 0.873800 0.898027 0.500000 0.872291 0.500000 0.892030 0.881123 0.890078 0.894475 0.870939 0.500000 0.500000 0.500000 0.500000 0.500000 0.860757 +0.429967 +0.574089 0.119067 0.563662 0.872560 0.508658 0.410064 0.150814 0.530951 1 0.500000 1 0.500000 0 0.500000 1 0.500000 0.500000 0.878712 0.500000 0.884634 0.867797 0.909654 0.500000 0.875923 0.500000 0.882536 0.500000 0.500000 0.878023 0.885907 0.500000 0.914020 +0.499400 +0.881950 0.736585 0.785950 0.855767 0.679902 0.116318 0.756302 0.173865 1 0.500000 0.500000 0 1 0 0.500000 1 0.856695 0.500000 0.899529 0.874555 0.500000 0.865536 0.872576 0.875869 0.500000 0.846472 0.869313 0.500000 0.858977 0.871323 0.500000 0.905146 +0.563620 +0.747933 0.314487 0.184823 0.123500 0.661331 0.791258 0.467505 0.753498 0 0 0 1 1 0.500000 0 0 0.889953 0.884837 0.862405 0.883856 0.893783 0.890389 0.866555 0.903825 0.910984 0.896536 0.500000 0.500000 0.877450 0.500000 0.500000 0.500000 +0.746756 +0.226439 0.358144 0.324372 0.722883 0.101289 0.164655 0.354087 0.137656 0 0 0 1 0 1 0 0.500000 0.847386 0.879428 0.894725 0.500000 0.865081 0.897119 0.500000 0.857266 0.876042 0.848019 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.475316 +0.177421 0.513368 0.371348 0.638092 0.616093 0.477623 0.401374 0.493145 0.500000 0 0.500000 0.500000 0 0 0.500000 1 0.897595 0.898677 0.500000 0.500000 0.885503 0.874745 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.245553 +0.331635 0.387421 0.390015 0.780337 0.126361 0.741410 0.272820 0.689980 1 1 0 0.500000 0 0 0.500000 1 0.500000 0.894521 0.858585 0.500000 0.865711 0.899515 0.902895 0.500000 0.887730 0.889418 0.500000 0.891253 0.500000 0.500000 0.500000 0.500000 +0.423691 +0.215574 0.154549 0.897462 0.642280 0.607272 0.224112 0.452150 0.279278 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.867463 0.917291 0.850077 0.500000 0.500000 0.891973 0.886487 0.924914 0.500000 0.870181 0.866588 0.876635 0.500000 0.500000 0.897817 0.500000 +0.571019 +0.491159 0.704750 0.126949 0.228619 0.191337 0.805615 0.174210 0.152868 1 1 0.500000 1 1 0 0.500000 1 0.882882 0.500000 0.863611 0.500000 0.898149 0.851933 0.883256 0.875971 0.500000 0.500000 0.500000 0.884528 0.878495 0.915734 0.891750 0.500000 +0.649471 +0.898802 0.760247 0.879015 0.212289 0.142519 0.312623 0.846638 0.848203 1 0 0 0 0 0 0.500000 0.500000 0.859770 0.870192 0.856461 0.500000 0.884595 0.892407 0.890041 0.500000 0.500000 0.500000 0.907048 0.500000 0.856792 0.890929 0.500000 0.885183 +0.520598 +0.160601 0.216871 0.348000 0.242621 0.325603 0.603789 0.876327 0.631248 1 0.500000 0 0.500000 0 1 0.500000 0 0.873454 0.886117 0.500000 0.500000 0.500000 0.892177 0.876834 0.878163 0.891609 0.894679 0.890773 0.500000 0.500000 0.864255 0.881646 0.878111 +0.657661 +0.480871 0.592003 0.388066 0.828359 0.833632 0.654560 0.593144 0.368444 0.500000 1 0.500000 0.500000 1 0 1 0 0.500000 0.860612 0.879485 0.897785 0.500000 0.886598 0.911440 0.863333 0.500000 0.500000 0.885323 0.500000 0.500000 0.500000 0.886862 0.500000 +0.438179 +0.867910 0.771759 0.746031 0.339567 0.110774 0.373396 0.669033 0.636976 0 1 1 0 0.500000 0 0 0 0.500000 0.901757 0.903171 0.876880 0.931054 0.863605 0.881807 0.871276 0.500000 0.500000 0.886561 0.500000 0.500000 0.900832 0.500000 0.867762 +0.613433 +0.148445 0.708393 0.562772 0.313006 0.886882 0.431303 0.312612 0.663451 0.500000 0 0 0.500000 1 1 0 1 0.871942 0.887439 0.500000 0.500000 0.890234 0.874898 0.888782 0.500000 0.500000 0.500000 0.889955 0.886283 0.867430 0.500000 0.867853 0.500000 +0.438945 +0.707292 0.454066 0.493221 0.170738 0.195915 0.148580 0.580357 0.656519 1 0.500000 0.500000 1 1 0 0.500000 0 0.863807 0.910107 0.500000 0.500000 0.887659 0.883452 0.895334 0.886590 0.500000 0.891230 0.892653 0.874726 0.500000 0.897055 0.500000 0.500000 +0.501673 +0.369830 0.732124 0.205751 0.653664 0.728278 0.374191 0.427606 0.573118 0.500000 0 0.500000 0 0 0 0 0 0.500000 0.886685 0.846516 0.893960 0.894806 0.888652 0.500000 0.893859 0.922254 0.852035 0.500000 0.887527 0.873506 0.500000 0.500000 0.500000 +0.586686 +0.474827 0.617356 0.110506 0.673534 0.291902 0.591958 0.440372 0.739461 0 0 0 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.880544 0.870543 0.889793 0.887072 0.500000 0.887912 0.500000 0.500000 0.870794 0.901260 0.863492 0.500000 0.500000 0.500000 0.500000 +0.357853 +0.100490 0.339245 0.285234 0.527604 0.444443 0.353362 0.746827 0.126716 0 0.500000 0.500000 1 0.500000 0 1 0.500000 0.500000 0.839717 0.866269 0.500000 0.877882 0.890784 0.872616 0.881008 0.500000 0.500000 0.500000 0.882211 0.500000 0.500000 0.877704 0.500000 +0.525534 +0.843269 0.228610 0.848597 0.166820 0.742102 0.708302 0.635303 0.135509 1 0 0 1 0 0 0.500000 1 0.860353 0.500000 0.500000 0.877891 0.891974 0.863893 0.891749 0.500000 0.880539 0.895126 0.500000 0.890429 0.500000 0.500000 0.500000 0.500000 +0.366108 +0.824134 0.215179 0.712196 0.482521 0.324617 0.835747 0.197872 0.237701 1 0.500000 0.500000 0.500000 1 0 0.500000 0 0.879234 0.500000 0.889750 0.901412 0.904281 0.916234 0.866811 0.500000 0.500000 0.882494 0.500000 0.872939 0.881285 0.500000 0.888868 0.500000 +0.617375 +0.647906 0.756493 0.185538 0.128969 0.576666 0.225461 0.729192 0.535488 0 1 1 0 0 1 0 0 0.910061 0.875142 0.892635 0.881902 0.878891 0.500000 0.859179 0.911447 0.500000 0.500000 0.500000 0.875710 0.500000 0.500000 0.916345 0.869491 +0.586021 +0.300382 0.722790 0.127525 0.314834 0.408994 0.567608 0.789644 0.544151 0 0 1 0 1 0 0.500000 0 0.902560 0.867034 0.500000 0.894452 0.905719 0.898974 0.500000 0.902049 0.500000 0.500000 0.500000 0.869852 0.500000 0.883720 0.877464 0.500000 +0.536107 +0.171963 0.783392 0.278118 0.132856 0.303827 0.224899 0.880905 0.771821 0 0.500000 1 0.500000 0.500000 1 1 0.500000 0.872685 0.500000 0.895309 0.877289 0.870446 0.888383 0.859679 0.916126 0.500000 0.500000 0.500000 0.500000 0.878985 0.500000 0.500000 0.824575 +0.625444 +0.619297 0.730951 0.489580 0.573464 0.814057 0.462610 0.881759 0.716422 0 0 1 1 0 0.500000 1 0.500000 0.880181 0.873007 0.913375 0.874613 0.893001 0.910525 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.441049 +0.295870 0.891101 0.129762 0.317608 0.633274 0.442123 0.554927 0.451863 0 1 0 0 0.500000 0 1 1 0.500000 0.895332 0.500000 0.891301 0.500000 0.500000 0.881059 0.500000 0.898775 0.857900 0.899908 0.907841 0.500000 0.913942 0.894734 0.911393 +0.537167 +0.155073 0.117755 0.108597 0.587449 0.655109 0.223858 0.181600 0.359339 0.500000 1 0.500000 0.500000 0.500000 0.500000 0 0 0.902080 0.873964 0.500000 0.881294 0.500000 0.500000 0.883247 0.834323 0.500000 0.500000 0.500000 0.895017 0.500000 0.890611 0.854735 0.500000 +0.499468 +0.440937 0.622166 0.142300 0.628156 0.812887 0.797041 0.872282 0.643973 0 1 1 1 1 0 1 0 0.894951 0.839423 0.500000 0.881653 0.872749 0.893609 0.864304 0.895511 0.500000 0.500000 0.863344 0.896927 0.500000 0.880062 0.926515 0.500000 +0.639464 +0.452525 0.179612 0.535778 0.215387 0.208173 0.560182 0.777199 0.180476 1 0 1 1 1 0 1 0 0.903704 0.500000 0.889020 0.500000 0.500000 0.891560 0.500000 0.500000 0.500000 0.882832 0.500000 0.873952 0.500000 0.500000 0.877781 0.912680 +0.370459 +0.748714 0.639421 0.549683 0.329538 0.337129 0.720246 0.575989 0.852332 0.500000 0.500000 0 0 0.500000 1 1 0 0.869378 0.872785 0.500000 0.862312 0.856621 0.500000 0.500000 0.500000 0.867636 0.500000 0.500000 0.500000 0.873422 0.887818 0.880124 0.866801 +0.386353 +0.839031 0.201205 0.257750 0.203063 0.273593 0.879655 0.565739 0.579118 1 1 0 1 0.500000 0 0.500000 0 0.500000 0.881965 0.500000 0.883784 0.880522 0.867175 0.500000 0.904838 0.500000 0.500000 0.890198 0.863999 0.500000 0.500000 0.500000 0.500000 +0.454938 +0.148306 0.785439 0.274028 0.190599 0.390846 0.348246 0.373767 0.494459 0 1 1 1 1 0 0.500000 1 0.500000 0.890754 0.500000 0.901161 0.500000 0.873142 0.892841 0.902434 0.500000 0.904005 0.887084 0.500000 0.500000 0.872406 0.500000 0.500000 +0.373860 +0.601757 0.325677 0.252095 0.353536 0.480138 0.279252 0.783478 0.115753 1 1 0.500000 1 1 0 0 1 0.854731 0.500000 0.500000 0.500000 0.904229 0.500000 0.884805 0.885074 0.897522 0.500000 0.500000 0.500000 0.500000 0.500000 0.851500 0.875014 +0.317004 +0.438723 0.216809 0.101671 0.187418 0.534383 0.783431 0.132609 0.164542 1 0 1 0 1 0 1 0.500000 0.500000 0.500000 0.500000 0.873127 0.500000 0.884063 0.885793 0.899952 0.500000 0.863509 0.875261 0.500000 0.893236 0.893954 0.879965 0.869667 +0.609413 +0.813068 0.627199 0.726023 0.872262 0.302912 0.840768 0.586738 0.706573 0.500000 0.500000 0.500000 0 1 0.500000 1 0 0.500000 0.500000 0.907319 0.866516 0.882267 0.500000 0.500000 0.875871 0.500000 0.876371 0.909161 0.500000 0.500000 0.500000 0.500000 0.874973 +0.292235 +0.506891 0.318735 0.383049 0.510726 0.769093 0.741006 0.686982 0.713846 0 0 1 0 1 1 0.500000 0 0.905348 0.500000 0.881691 0.867532 0.881988 0.500000 0.861692 0.911371 0.500000 0.500000 0.876886 0.874969 0.874078 0.500000 0.500000 0.887362 +0.553219 +0.480103 0.492888 0.161930 0.156046 0.465281 0.178333 0.645438 0.876148 1 1 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.894674 0.883978 0.899570 0.500000 0.888282 0.890290 0.872625 0.500000 0.500000 0.500000 0.871611 0.500000 0.874510 0.500000 0.500000 0.500000 +0.474410 +0.322605 0.627071 0.188679 0.133701 0.116326 0.891260 0.411484 0.803791 1 0 1 1 0 1 0 0 0.500000 0.892424 0.874277 0.883874 0.890509 0.500000 0.894399 0.853277 0.883434 0.887650 0.500000 0.500000 0.500000 0.906532 0.837946 0.500000 +0.587680 +0.793760 0.121242 0.306809 0.732627 0.667390 0.216686 0.436718 0.120783 0.500000 1 1 1 0 1 0 0 0.500000 0.887733 0.879092 0.938257 0.500000 0.500000 0.903183 0.848321 0.500000 0.500000 0.500000 0.500000 0.876631 0.500000 0.890225 0.500000 +0.430982 +0.471875 0.598626 0.510255 0.853684 0.873755 0.594158 0.611101 0.582431 0 0 0 0 0 0 0 1 0.894236 0.855709 0.887533 0.500000 0.500000 0.892305 0.882861 0.872537 0.864090 0.876155 0.500000 0.887530 0.859509 0.500000 0.500000 0.500000 +0.415797 +0.379676 0.620915 0.713866 0.543943 0.643083 0.500540 0.778203 0.262587 1 0.500000 1 0.500000 1 0 0.500000 1 0.853758 0.500000 0.832233 0.864609 0.882829 0.500000 0.884653 0.901306 0.500000 0.500000 0.500000 0.878815 0.500000 0.500000 0.865672 0.838116 +0.513231 +0.663206 0.302888 0.430647 0.490949 0.374237 0.399336 0.640871 0.115306 0.500000 0 0.500000 1 0.500000 1 0.500000 1 0.896705 0.882764 0.884862 0.876667 0.925906 0.891812 0.874690 0.882399 0.888698 0.863649 0.885830 0.857820 0.861252 0.500000 0.910211 0.500000 +0.827661 +0.290878 0.185191 0.699951 0.284359 0.226333 0.180137 0.559201 0.296819 1 0.500000 1 0.500000 0 1 1 0 0.881357 0.895385 0.896618 0.885461 0.859946 0.885297 0.890376 0.866893 0.500000 0.500000 0.853087 0.862708 0.500000 0.896076 0.893292 0.500000 +0.817524 +0.756398 0.181000 0.672565 0.791447 0.443095 0.895033 0.623776 0.810449 0.500000 1 0.500000 1 0.500000 1 0 1 0.500000 0.500000 0.500000 0.887921 0.881972 0.872027 0.887923 0.897596 0.500000 0.500000 0.880489 0.500000 0.500000 0.500000 0.500000 0.886427 +0.356248 +0.418830 0.276242 0.603106 0.604398 0.710006 0.475031 0.844217 0.151653 0 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.865504 0.878148 0.904697 0.848699 0.878471 0.843485 0.891411 0.902177 0.500000 0.500000 0.500000 0.500000 0.500000 0.899520 0.886683 +0.576341 +0.706081 0.896215 0.482387 0.478393 0.543478 0.830044 0.347558 0.802993 0 1 0.500000 0 1 0.500000 1 0.500000 0.500000 0.864241 0.851429 0.881831 0.867266 0.859245 0.875653 0.889593 0.895813 0.500000 0.500000 0.853074 0.877713 0.500000 0.500000 0.887393 +0.585491 +0.514729 0.847681 0.772539 0.269731 0.774072 0.433413 0.565933 0.633905 1 0 0 0 1 0 1 0.500000 0.855373 0.858973 0.500000 0.500000 0.884637 0.874626 0.500000 0.917323 0.500000 0.500000 0.500000 0.889290 0.500000 0.500000 0.500000 0.500000 +0.279621 +0.161778 0.804236 0.201151 0.147337 0.485704 0.226641 0.560949 0.870973 0 0 0.500000 0 0 0 1 0.500000 0.500000 0.869372 0.500000 0.894706 0.500000 0.500000 0.877021 0.896327 0.500000 0.500000 0.500000 0.500000 0.872151 0.878042 0.885439 0.895710 +0.385365 +0.411952 0.675415 0.700384 0.361537 0.544807 0.765663 0.694067 0.591647 1 1 0 0.500000 1 0.500000 0.500000 0.500000 0.878057 0.883116 0.500000 0.893765 0.895905 0.500000 0.500000 0.889142 0.894049 0.877071 0.500000 0.885062 0.500000 0.500000 0.866995 0.500000 +0.523707 +0.715311 0.830613 0.307875 0.251175 0.896106 0.255662 0.316798 0.625403 0 0 1 0.500000 1 0.500000 1 1 0.874151 0.500000 0.907792 0.500000 0.867175 0.860133 0.892633 0.899679 0.857061 0.886860 0.500000 0.500000 0.500000 0.500000 0.842865 0.500000 +0.495252 +0.774465 0.635168 0.268059 0.675641 0.499054 0.594692 0.788830 0.462894 1 0.500000 0 1 0 0 0 0.500000 0.892001 0.858600 0.500000 0.872412 0.500000 0.500000 0.885713 0.500000 0.500000 0.500000 0.854205 0.887201 0.865947 0.870406 0.869254 0.500000 +0.415759 +0.153883 0.114112 0.487593 0.783017 0.373802 0.298060 0.891240 0.869872 0 0 1 0.500000 0 0 0 0 0.862043 0.883558 0.500000 0.894101 0.500000 0.871833 0.500000 0.890626 0.888305 0.500000 0.872734 0.895168 0.500000 0.500000 0.500000 0.500000 +0.357318 +0.296924 0.200021 0.345131 0.819150 0.461301 0.482843 0.136019 0.671678 0 1 0 1 1 0.500000 1 1 0.903148 0.899732 0.869652 0.903412 0.500000 0.500000 0.500000 0.500000 0.870489 0.500000 0.500000 0.859206 0.865902 0.886114 0.500000 0.931248 +0.461597 +0.655436 0.112935 0.703772 0.490177 0.207176 0.614738 0.105392 0.329970 0.500000 0 0.500000 1 1 0.500000 0 0 0.500000 0.500000 0.901375 0.890280 0.903038 0.900091 0.500000 0.500000 0.895575 0.500000 0.867240 0.500000 0.500000 0.874185 0.500000 0.891660 +0.434020 +0.529796 0.475230 0.195449 0.316845 0.609906 0.491315 0.133164 0.682949 0 1 0 0.500000 0.500000 1 0 0.500000 0.890692 0.895513 0.500000 0.864513 0.500000 0.883729 0.500000 0.864298 0.500000 0.500000 0.500000 0.931823 0.891551 0.500000 0.900330 0.500000 +0.414355 +0.759690 0.307383 0.782334 0.887572 0.830972 0.741016 0.859457 0.291006 1 0.500000 1 1 1 0.500000 1 0 0.901436 0.884099 0.871299 0.852895 0.500000 0.886348 0.500000 0.889516 0.500000 0.907955 0.500000 0.500000 0.500000 0.856124 0.891435 0.884916 +0.579264 +0.191687 0.283231 0.463566 0.158805 0.440200 0.248457 0.816187 0.256816 0.500000 1 0 0 0 0.500000 0 0.500000 0.500000 0.862958 0.871129 0.890577 0.898313 0.500000 0.880475 0.899942 0.500000 0.500000 0.500000 0.899679 0.885128 0.500000 0.500000 0.500000 +0.568600 +0.784909 0.162567 0.466896 0.115392 0.393592 0.103063 0.380367 0.225611 1 0.500000 1 1 0 0.500000 0 1 0.903180 0.875151 0.892831 0.856353 0.907841 0.877216 0.500000 0.905225 0.873645 0.500000 0.500000 0.500000 0.500000 0.922322 0.866058 0.500000 +0.635961 +0.158870 0.735228 0.384393 0.685963 0.381754 0.346689 0.595557 0.124727 0.500000 1 0.500000 0.500000 0 1 0 1 0.500000 0.859667 0.865653 0.909507 0.500000 0.872678 0.886263 0.897474 0.500000 0.500000 0.891207 0.500000 0.885698 0.500000 0.866383 0.500000 +0.580873 +0.816263 0.725352 0.788196 0.214737 0.482743 0.859611 0.477458 0.836994 0 1 0.500000 0.500000 0.500000 0 1 0.500000 0.929682 0.908596 0.881411 0.897553 0.880951 0.874378 0.880537 0.872190 0.500000 0.500000 0.500000 0.500000 0.500000 0.908446 0.924142 0.500000 +0.710587 +0.397002 0.606186 0.368054 0.482627 0.511903 0.552119 0.469607 0.884108 0 0.500000 1 0.500000 0 1 0.500000 0 0.500000 0.500000 0.883839 0.500000 0.870730 0.500000 0.891042 0.912730 0.906629 0.500000 0.923484 0.500000 0.880743 0.883548 0.881378 0.500000 +0.492083 +0.729536 0.717397 0.687175 0.743851 0.503619 0.528229 0.548996 0.772607 0.500000 0 0.500000 0 1 0 1 0 0.881591 0.500000 0.910315 0.869426 0.910225 0.888160 0.891836 0.876926 0.500000 0.500000 0.500000 0.500000 0.888898 0.500000 0.888220 0.500000 +0.534500 +0.431181 0.651227 0.578047 0.238548 0.671588 0.374930 0.841448 0.825008 0.500000 0.500000 0 0 0 1 1 1 0.913443 0.853621 0.879016 0.881566 0.871385 0.873536 0.893207 0.874261 0.500000 0.876105 0.865161 0.500000 0.893424 0.897913 0.500000 0.500000 +0.639673 +0.670722 0.230956 0.276224 0.288855 0.593898 0.240625 0.388014 0.747886 0 1 0.500000 0.500000 0 0 0.500000 1 0.893359 0.873756 0.893545 0.885579 0.889765 0.900052 0.500000 0.881871 0.908750 0.878984 0.907533 0.500000 0.500000 0.877971 0.500000 0.500000 +0.662745 +0.434880 0.425839 0.483198 0.503701 0.297900 0.608993 0.344350 0.485645 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.888672 0.853222 0.883440 0.904973 0.908879 0.864286 0.500000 0.919104 0.500000 0.500000 0.500000 0.500000 0.500000 0.900259 0.500000 0.892062 +0.572278 +0.773412 0.533874 0.223112 0.435924 0.379716 0.482368 0.161569 0.483353 1 1 1 0 0.500000 1 0.500000 0.500000 0.882003 0.886180 0.863211 0.904863 0.870539 0.861314 0.875358 0.898471 0.500000 0.864881 0.906550 0.874612 0.500000 0.500000 0.919482 0.500000 +0.735690 +0.367063 0.632646 0.285421 0.473091 0.239030 0.781678 0.270968 0.767784 0 1 1 1 1 0 0.500000 1 0.873017 0.884657 0.897421 0.500000 0.500000 0.892698 0.881307 0.878975 0.500000 0.500000 0.902778 0.890655 0.881319 0.500000 0.894394 0.860699 +0.635713 +0.311699 0.530423 0.617093 0.481639 0.701987 0.893883 0.485344 0.575286 0 0.500000 0.500000 1 0 0.500000 0.500000 0.500000 0.880601 0.876921 0.866053 0.900259 0.500000 0.850737 0.890517 0.861031 0.855900 0.881657 0.500000 0.904369 0.901122 0.896752 0.500000 0.902747 +0.668661 +0.696168 0.688291 0.301949 0.653945 0.661328 0.746027 0.284320 0.359220 1 0.500000 0.500000 0 0.500000 0.500000 0 1 0.500000 0.879144 0.833342 0.500000 0.500000 0.500000 0.850759 0.869347 0.893202 0.899806 0.885076 0.500000 0.500000 0.895788 0.882891 0.909486 +0.511959 +0.431793 0.550322 0.667279 0.751080 0.395392 0.755468 0.544779 0.293626 1 0 0.500000 0 0.500000 1 1 1 0.500000 0.883822 0.887944 0.500000 0.897618 0.500000 0.500000 0.871318 0.887986 0.500000 0.500000 0.884484 0.866235 0.851377 0.500000 0.500000 +0.355487 +0.594868 0.544756 0.707022 0.725485 0.625023 0.156430 0.519700 0.402675 1 1 0.500000 1 0.500000 0 0.500000 1 0.863860 0.876887 0.866005 0.900759 0.500000 0.883991 0.500000 0.894819 0.500000 0.500000 0.904133 0.500000 0.500000 0.874849 0.858149 0.867975 +0.580435 +0.149890 0.193066 0.259120 0.833162 0.757271 0.462180 0.853061 0.795624 0 0.500000 1 0 0 0.500000 0.500000 0.500000 0.918362 0.896862 0.888922 0.820685 0.887665 0.899390 0.881355 0.884383 0.871727 0.905611 0.500000 0.500000 0.500000 0.500000 0.500000 0.862925 +0.749000 +0.750434 0.749453 0.257903 0.377174 0.167804 0.483578 0.494889 0.202144 1 0 0.500000 0.500000 1 1 0 0 0.888388 0.847706 0.851359 0.916085 0.904759 0.500000 0.903808 0.876824 0.908780 0.500000 0.500000 0.900457 0.860522 0.500000 0.821521 0.500000 +0.652126 +0.327340 0.196334 0.783008 0.217563 0.782888 0.591072 0.745558 0.398270 0 1 0 0 1 0.500000 0.500000 0.500000 0.500000 0.868212 0.898306 0.871335 0.879907 0.875659 0.887211 0.892177 0.500000 0.500000 0.892192 0.905913 0.500000 0.500000 0.500000 0.500000 +0.608736 +0.714050 0.442221 0.601732 0.717554 0.124749 0.851678 0.759979 0.359569 0 0.500000 1 0.500000 0.500000 0.500000 0 0.500000 0.870025 0.500000 0.877599 0.866766 0.875824 0.881809 0.864273 0.893155 0.500000 0.885205 0.500000 0.881787 0.500000 0.500000 0.500000 0.875341 +0.626248 +0.501177 0.274051 0.581066 0.568942 0.804497 0.579228 0.891254 0.307424 1 0.500000 0.500000 0 1 0 0 0 0.863387 0.876058 0.500000 0.500000 0.881166 0.500000 0.888681 0.885818 0.906756 0.500000 0.852015 0.885954 0.500000 0.500000 0.916536 0.904016 +0.511013 +0.304207 0.212281 0.805169 0.677056 0.275476 0.521848 0.494879 0.826796 0 1 0.500000 1 1 0 1 1 0.907759 0.500000 0.873461 0.866733 0.854719 0.853494 0.500000 0.899380 0.500000 0.500000 0.500000 0.500000 0.879871 0.500000 0.858781 0.888850 +0.551581 +0.226463 0.762467 0.576968 0.502797 0.300944 0.572567 0.135987 0.137801 0 0 1 0 0.500000 0 1 0 0.500000 0.871889 0.894028 0.886585 0.500000 0.868145 0.500000 0.885607 0.500000 0.870165 0.850487 0.890692 0.500000 0.500000 0.843638 0.856089 +0.519156 +0.448938 0.698975 0.670128 0.633721 0.746866 0.771358 0.422222 0.479327 0 0.500000 0.500000 1 1 1 0 1 0.868315 0.911713 0.500000 0.500000 0.870902 0.500000 0.891288 0.886546 0.500000 0.869683 0.500000 0.500000 0.891716 0.866701 0.893827 0.891471 +0.577889 +0.355543 0.609154 0.644222 0.434266 0.510979 0.224246 0.299808 0.669270 0.500000 0.500000 1 0 1 1 1 0 0.500000 0.897292 0.500000 0.500000 0.500000 0.897280 0.500000 0.500000 0.881932 0.500000 0.500000 0.885919 0.500000 0.890601 0.500000 0.500000 +0.191933 +0.256301 0.651634 0.212527 0.148343 0.593185 0.256813 0.464046 0.224730 0.500000 0 1 0.500000 0 1 0 0 0.881263 0.500000 0.500000 0.916602 0.500000 0.860516 0.864419 0.876783 0.903629 0.500000 0.848768 0.907418 0.865974 0.500000 0.500000 0.500000 +0.470757 +0.335631 0.355558 0.855052 0.656295 0.149005 0.531204 0.144632 0.622275 0.500000 0.500000 0 1 1 0.500000 0 0.500000 0.901571 0.879857 0.866927 0.871461 0.877160 0.890695 0.880514 0.883948 0.880418 0.904071 0.892983 0.884783 0.876677 0.500000 0.873460 0.867274 +0.952050 +0.712972 0.716011 0.601960 0.549200 0.205528 0.114287 0.225406 0.596089 0 1 0.500000 0.500000 0 0 0 0 0.500000 0.871974 0.877428 0.867059 0.865737 0.500000 0.851592 0.898736 0.500000 0.500000 0.919305 0.500000 0.500000 0.894356 0.883688 0.864789 +0.537160 +0.439498 0.443907 0.138949 0.322444 0.316612 0.695738 0.676097 0.168038 0.500000 1 0 1 0.500000 0.500000 1 0 0.872709 0.873117 0.885565 0.500000 0.500000 0.500000 0.895008 0.500000 0.500000 0.500000 0.901076 0.500000 0.892663 0.500000 0.500000 0.500000 +0.295491 +0.475107 0.523784 0.243402 0.663184 0.733715 0.540566 0.685659 0.864054 1 0 0 0.500000 1 0 0.500000 0 0.862121 0.892989 0.864481 0.851482 0.859449 0.879345 0.910481 0.870388 0.890933 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.875946 +0.663970 +0.286101 0.706396 0.594980 0.826471 0.305731 0.228795 0.760461 0.475069 1 0 0.500000 0 1 1 0.500000 0 0.846383 0.869416 0.857784 0.917931 0.500000 0.893354 0.500000 0.873934 0.500000 0.500000 0.895140 0.500000 0.892274 0.870048 0.875826 0.862691 +0.530047 +0.345949 0.172410 0.300714 0.702083 0.112088 0.859341 0.749640 0.206883 0.500000 0 1 0.500000 0.500000 1 0 0.500000 0.887396 0.859037 0.500000 0.862909 0.500000 0.500000 0.902246 0.500000 0.896316 0.500000 0.500000 0.873628 0.910778 0.500000 0.866136 0.879812 +0.445543 +0.888708 0.718547 0.821763 0.367652 0.124751 0.893978 0.495416 0.255214 1 1 0 0.500000 0 1 0 0.500000 0.914677 0.500000 0.872991 0.500000 0.500000 0.856586 0.862132 0.500000 0.893546 0.898741 0.887354 0.897093 0.500000 0.500000 0.500000 0.500000 +0.366001 +0.850705 0.401765 0.661829 0.362380 0.317084 0.633023 0.217774 0.328859 0 1 1 1 0 1 0 0.500000 0.854899 0.901032 0.500000 0.846455 0.913447 0.899250 0.500000 0.869443 0.500000 0.500000 0.862255 0.868969 0.500000 0.875522 0.878111 0.870166 +0.554641 +0.641261 0.265376 0.374110 0.658442 0.236770 0.386146 0.554328 0.795780 0.500000 0.500000 0 0 0 1 0.500000 1 0.877155 0.887055 0.500000 0.875085 0.500000 0.868595 0.886334 0.865609 0.500000 0.500000 0.500000 0.500000 0.892364 0.500000 0.905341 0.922114 +0.491277 +0.554462 0.643839 0.402737 0.208360 0.500509 0.262076 0.113765 0.242661 0 0.500000 1 1 0.500000 0.500000 0 1 0.859186 0.882485 0.899785 0.870543 0.879305 0.884347 0.877744 0.886836 0.500000 0.500000 0.500000 0.896059 0.881881 0.500000 0.869594 0.906557 +0.795017 +0.663499 0.428654 0.588979 0.773116 0.361187 0.269432 0.548729 0.293495 0 0 1 1 1 1 0 0.500000 0.866583 0.865742 0.500000 0.500000 0.500000 0.893374 0.500000 0.500000 0.500000 0.500000 0.500000 0.892006 0.909513 0.888345 0.500000 0.883432 +0.353584 +0.771039 0.644924 0.232461 0.779533 0.207097 0.871401 0.243745 0.819015 0.500000 0 0 0.500000 0 0.500000 0 0.500000 0.921812 0.500000 0.866133 0.925975 0.878716 0.500000 0.876714 0.500000 0.883760 0.500000 0.880282 0.877298 0.500000 0.851711 0.500000 0.500000 +0.400001 +0.379548 0.858301 0.866095 0.658892 0.604030 0.126429 0.300000 0.706056 0.500000 0 0 1 1 0.500000 0 1 0.877264 0.899270 0.877088 0.892259 0.927704 0.867697 0.500000 0.856725 0.865851 0.856060 0.896334 0.881032 0.896545 0.884469 0.500000 0.500000 +0.692986 +0.304630 0.111111 0.440526 0.128499 0.691136 0.116870 0.435246 0.175487 1 0 0.500000 0.500000 0 1 1 1 0.884334 0.500000 0.500000 0.876126 0.500000 0.884207 0.882958 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.900399 0.894274 0.500000 +0.326053 +0.515380 0.583711 0.227891 0.761320 0.513293 0.716586 0.668516 0.743933 0 0.500000 1 0.500000 1 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.895009 0.922935 0.855823 0.500000 0.500000 0.500000 0.500000 0.862676 0.917854 0.500000 0.888238 0.869842 0.891649 +0.400077 +0.327462 0.650555 0.485028 0.871143 0.701074 0.752051 0.726614 0.405684 0 0 0 0.500000 1 0 0.500000 1 0.500000 0.872884 0.500000 0.891848 0.500000 0.884643 0.500000 0.896288 0.500000 0.882953 0.834581 0.872766 0.500000 0.867448 0.868789 0.500000 +0.395338 +0.791853 0.866161 0.170118 0.170572 0.596980 0.847251 0.755707 0.560219 0.500000 1 0 0 1 1 0.500000 0 0.892808 0.897941 0.500000 0.500000 0.836745 0.867982 0.898512 0.885020 0.500000 0.500000 0.500000 0.500000 0.864631 0.500000 0.500000 0.862426 +0.468052 +0.442863 0.201358 0.427103 0.122298 0.469480 0.349525 0.266285 0.453818 0 0 1 1 0.500000 0 0 0.500000 0.500000 0.875227 0.871354 0.859429 0.914649 0.500000 0.500000 0.500000 0.500000 0.888100 0.859277 0.500000 0.879958 0.500000 0.500000 0.889194 +0.412498 +0.234988 0.844216 0.146587 0.693138 0.177821 0.842380 0.477909 0.422367 0.500000 0.500000 0 1 0.500000 0 0.500000 0.500000 0.890103 0.872808 0.887536 0.863595 0.500000 0.500000 0.913835 0.905839 0.884825 0.500000 0.500000 0.500000 0.856743 0.877361 0.882675 0.500000 +0.531460 +0.661725 0.219585 0.366730 0.626424 0.505637 0.841791 0.175010 0.796893 1 1 1 1 0 1 0.500000 1 0.902353 0.901089 0.500000 0.869048 0.878160 0.882068 0.500000 0.893860 0.881408 0.863877 0.875868 0.500000 0.500000 0.500000 0.879703 0.890912 +0.608109 +0.823899 0.269869 0.681812 0.212697 0.591594 0.714085 0.221040 0.820853 0 1 1 1 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.935535 0.882651 0.842309 0.894065 0.912811 0.888629 0.911378 0.868145 0.892455 0.902142 0.872300 0.500000 0.925910 0.908284 +0.765077 +0.133723 0.488855 0.384746 0.220336 0.183150 0.802422 0.109228 0.800456 1 0.500000 0 0 1 1 1 1 0.500000 0.500000 0.500000 0.844779 0.855630 0.881983 0.500000 0.874335 0.500000 0.500000 0.500000 0.867641 0.890632 0.888758 0.500000 0.500000 +0.355569 +0.296825 0.129454 0.730716 0.542949 0.739501 0.198055 0.109444 0.428987 0.500000 0 0.500000 1 1 1 0.500000 0.500000 0.862379 0.884777 0.892871 0.868263 0.847493 0.876587 0.862896 0.500000 0.865722 0.500000 0.880904 0.880734 0.500000 0.500000 0.899626 0.891307 +0.648794 +0.747176 0.379400 0.780266 0.529771 0.865905 0.663899 0.754010 0.841086 0 0.500000 0 0.500000 0 0.500000 0.500000 0 0.897358 0.500000 0.859870 0.859458 0.864993 0.919264 0.889701 0.500000 0.891981 0.883368 0.500000 0.500000 0.500000 0.894871 0.500000 0.883523 +0.425819 +0.132544 0.667085 0.691478 0.274624 0.597069 0.734794 0.280023 0.152598 0 0 0.500000 0 1 0 0.500000 0.500000 0.880922 0.500000 0.862067 0.879216 0.500000 0.877453 0.880069 0.902258 0.865856 0.897277 0.500000 0.500000 0.855910 0.878938 0.891608 0.500000 +0.524124 +0.619088 0.416867 0.886092 0.752409 0.336383 0.189515 0.580926 0.620292 1 0.500000 0 1 0 0 0 1 0.891191 0.896663 0.901838 0.500000 0.500000 0.868903 0.500000 0.500000 0.500000 0.859856 0.857262 0.500000 0.909019 0.882537 0.500000 0.500000 +0.368638 +0.276752 0.372486 0.569226 0.783553 0.582799 0.898294 0.222461 0.705930 1 0 0.500000 1 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.895433 0.500000 0.500000 0.894817 0.500000 0.500000 0.500000 0.500000 0.875081 0.908821 0.500000 +0.143632 +0.240320 0.865023 0.237293 0.390949 0.481054 0.481903 0.348667 0.245436 0.500000 0.500000 1 0 1 0 0 1 0.888922 0.500000 0.870894 0.878739 0.864405 0.500000 0.834574 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.873082 +0.377790 +0.707515 0.206385 0.106980 0.617801 0.383605 0.256381 0.398821 0.790767 0 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.864579 0.907581 0.897892 0.886740 0.873893 0.887003 0.500000 0.873332 0.500000 0.500000 0.921199 0.500000 0.500000 0.879481 0.500000 0.893314 +0.521394 +0.143553 0.887444 0.271676 0.665267 0.551063 0.319608 0.653197 0.875556 0.500000 0.500000 0.500000 0 1 0.500000 1 0.500000 0.881374 0.854833 0.899781 0.856231 0.891345 0.882704 0.867216 0.890081 0.896857 0.836738 0.500000 0.500000 0.500000 0.820272 0.921733 0.500000 +0.770207 +0.199118 0.379331 0.408352 0.166605 0.329444 0.360065 0.614093 0.467693 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0 0.892016 0.885964 0.878529 0.917562 0.878555 0.876868 0.500000 0.500000 0.865053 0.500000 0.888327 0.882419 0.893974 0.871103 0.500000 0.500000 +0.653135 +0.777614 0.758617 0.678120 0.567451 0.553466 0.702665 0.297948 0.616117 1 0 1 0.500000 1 0 0.500000 0 0.845233 0.500000 0.919312 0.867338 0.871349 0.500000 0.910533 0.500000 0.500000 0.500000 0.868343 0.858696 0.890655 0.923463 0.878120 0.500000 +0.531886 +0.849154 0.727158 0.736721 0.673647 0.593083 0.151454 0.885240 0.829508 0 0 0 1 1 0 0 0 0.883416 0.888344 0.893056 0.500000 0.893261 0.897045 0.895965 0.903570 0.852504 0.500000 0.925527 0.880708 0.872304 0.500000 0.872293 0.866058 +0.684783 +0.330118 0.493399 0.758952 0.712342 0.536826 0.238367 0.833397 0.710803 0 0.500000 1 1 1 1 0.500000 1 0.867546 0.896360 0.890309 0.904073 0.890435 0.866290 0.856145 0.500000 0.876530 0.840603 0.903442 0.869413 0.500000 0.887205 0.500000 0.500000 +0.724313 +0.349242 0.307546 0.322346 0.267201 0.654272 0.552203 0.269275 0.302139 1 1 0 1 1 1 0 1 0.500000 0.854750 0.500000 0.863217 0.500000 0.877654 0.910954 0.885817 0.500000 0.900475 0.873113 0.500000 0.500000 0.500000 0.500000 0.500000 +0.438367 +0.452493 0.457656 0.817611 0.185239 0.713575 0.447584 0.351144 0.280931 0 1 0 0 1 1 1 0.500000 0.880020 0.884951 0.500000 0.876694 0.899665 0.500000 0.861251 0.500000 0.500000 0.500000 0.906792 0.500000 0.500000 0.893915 0.903059 0.896523 +0.475155 +0.246423 0.238952 0.270104 0.642280 0.605469 0.317806 0.760683 0.206288 1 0.500000 0 1 1 0.500000 0 0 0.500000 0.879827 0.500000 0.902638 0.885771 0.500000 0.500000 0.887436 0.500000 0.888649 0.500000 0.876445 0.885009 0.884519 0.500000 0.864273 +0.539555 +0.324598 0.523844 0.448709 0.849916 0.744077 0.300391 0.876625 0.834289 0.500000 0.500000 1 1 0.500000 1 0.500000 0 0.905763 0.890346 0.500000 0.889552 0.885438 0.860980 0.901130 0.882656 0.856981 0.899318 0.500000 0.500000 0.875376 0.500000 0.875185 0.854344 +0.745713 +0.757833 0.303962 0.882519 0.692194 0.300998 0.676143 0.141934 0.887943 1 0 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.893415 0.892325 0.500000 0.913488 0.500000 0.879046 0.879300 0.901547 0.894468 0.500000 0.870151 0.500000 0.878273 0.500000 0.877654 +0.513756 +0.482154 0.557150 0.218099 0.197707 0.655420 0.647139 0.670026 0.524467 0.500000 0.500000 1 0 0 0.500000 0 0.500000 0.871605 0.500000 0.862471 0.891001 0.899505 0.860637 0.500000 0.500000 0.500000 0.500000 0.500000 0.867237 0.500000 0.868654 0.869804 0.500000 +0.389512 +0.578444 0.509000 0.559804 0.817942 0.150408 0.898737 0.475607 0.120032 1 1 0.500000 0.500000 0 1 0 0.500000 0.500000 0.500000 0.500000 0.885219 0.500000 0.500000 0.877329 0.500000 0.500000 0.878482 0.881799 0.500000 0.870072 0.500000 0.872671 0.500000 +0.333447 +0.501761 0.491036 0.237317 0.789142 0.113255 0.471728 0.533539 0.190048 1 0.500000 0 0 0.500000 0 1 0.500000 0.900566 0.500000 0.892318 0.907797 0.500000 0.865763 0.886768 0.877489 0.885722 0.500000 0.500000 0.894912 0.895462 0.863849 0.500000 0.906727 +0.602876 +0.811975 0.662611 0.695685 0.574763 0.234513 0.865753 0.505684 0.839354 1 1 0.500000 1 0.500000 0.500000 0.500000 0 0.879128 0.872479 0.879104 0.866849 0.500000 0.897558 0.872012 0.500000 0.892488 0.907278 0.889861 0.877694 0.851666 0.500000 0.500000 0.500000 +0.637073 +0.852056 0.713707 0.271344 0.677346 0.359243 0.395793 0.296645 0.313678 0 1 0 0.500000 0 0.500000 0.500000 0 0.867255 0.888044 0.871883 0.885651 0.500000 0.910990 0.500000 0.859515 0.868916 0.500000 0.901386 0.898217 0.500000 0.500000 0.500000 0.500000 +0.455224 +0.871121 0.334681 0.384192 0.512335 0.608028 0.120987 0.836610 0.305582 0 0 1 0 0 1 0 0.500000 0.874171 0.500000 0.500000 0.500000 0.500000 0.876656 0.870609 0.500000 0.893398 0.500000 0.500000 0.500000 0.863277 0.500000 0.500000 0.874733 +0.186910 +0.813864 0.412556 0.437091 0.796517 0.853579 0.706135 0.205939 0.624420 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 0.871892 0.500000 0.500000 0.500000 0.845913 0.893392 0.500000 0.888673 0.901561 0.922006 0.876847 0.870982 0.500000 0.862159 0.500000 +0.552113 +0.373808 0.396340 0.690168 0.659266 0.482080 0.120408 0.701126 0.831241 0.500000 0 0 1 1 0.500000 1 1 0.887536 0.835140 0.500000 0.882003 0.880340 0.896298 0.500000 0.500000 0.500000 0.500000 0.500000 0.892997 0.877377 0.889015 0.500000 0.500000 +0.399916 +0.333869 0.344020 0.541345 0.183451 0.255865 0.522421 0.525608 0.494150 0.500000 1 1 1 0 0.500000 0 0.500000 0.900520 0.500000 0.500000 0.500000 0.876736 0.855565 0.890834 0.854937 0.874502 0.924060 0.500000 0.892886 0.500000 0.873167 0.876162 0.500000 +0.494292 +0.355665 0.259431 0.451197 0.262764 0.469499 0.670538 0.325434 0.166198 1 1 0 1 0.500000 0.500000 1 0 0.500000 0.500000 0.877320 0.894196 0.880396 0.905429 0.899272 0.500000 0.879795 0.892384 0.500000 0.862201 0.500000 0.500000 0.500000 0.846124 +0.512571 +0.261574 0.468699 0.824059 0.556855 0.866619 0.658818 0.156406 0.119316 1 0.500000 0 1 1 0 0 1 0.500000 0.858000 0.500000 0.869772 0.900361 0.868757 0.905682 0.887624 0.500000 0.905389 0.860857 0.500000 0.823592 0.500000 0.500000 0.878725 +0.526853 +0.279238 0.557308 0.484136 0.282162 0.897215 0.497279 0.363916 0.533371 0.500000 1 1 1 0 0 0.500000 1 0.880129 0.895900 0.880148 0.880114 0.870022 0.879340 0.907058 0.893386 0.500000 0.500000 0.886011 0.500000 0.875974 0.859652 0.500000 0.500000 +0.684440 +0.750482 0.751568 0.607965 0.659920 0.269445 0.758420 0.559145 0.148407 1 0.500000 1 0.500000 1 0.500000 0.500000 0 0.500000 0.852416 0.909940 0.918302 0.500000 0.876606 0.893443 0.500000 0.897642 0.500000 0.894413 0.500000 0.893976 0.500000 0.875005 0.500000 +0.463190 +0.358781 0.639241 0.730802 0.395441 0.784988 0.687559 0.803968 0.487471 0 1 0 1 0 0 0 0.500000 0.894728 0.905493 0.500000 0.860441 0.895789 0.500000 0.906642 0.866347 0.867321 0.500000 0.890767 0.870498 0.886487 0.856055 0.500000 0.500000 +0.530698 +0.817548 0.728567 0.418031 0.448371 0.778773 0.232033 0.771822 0.218031 1 1 0.500000 1 1 1 0 0 0.907355 0.500000 0.876715 0.871698 0.877775 0.884633 0.500000 0.876801 0.500000 0.500000 0.500000 0.911794 0.500000 0.841424 0.880972 0.500000 +0.518626 +0.646916 0.112905 0.199121 0.428367 0.571517 0.887312 0.447710 0.866468 0.500000 1 0.500000 1 0 1 1 0.500000 0.500000 0.878781 0.883284 0.886256 0.500000 0.886712 0.883359 0.875107 0.895236 0.500000 0.500000 0.500000 0.881885 0.500000 0.500000 0.500000 +0.491212 +0.395796 0.340767 0.271113 0.791379 0.100983 0.627764 0.632382 0.646317 0.500000 0.500000 1 0 0 1 0 1 0.883076 0.877561 0.892333 0.877272 0.500000 0.921683 0.855936 0.837582 0.500000 0.500000 0.500000 0.894272 0.500000 0.500000 0.500000 0.887893 +0.529301 +0.628025 0.219732 0.436206 0.313022 0.368644 0.802137 0.113179 0.802041 1 1 0 0.500000 0.500000 1 0.500000 0.500000 0.886560 0.500000 0.500000 0.868785 0.868553 0.500000 0.500000 0.500000 0.852385 0.897007 0.857064 0.500000 0.880263 0.500000 0.869232 0.875482 +0.492665 +0.690073 0.652487 0.153253 0.729825 0.761362 0.412545 0.239191 0.279390 1 1 0.500000 1 0.500000 1 1 1 0.880307 0.885995 0.500000 0.877692 0.846962 0.500000 0.863180 0.893555 0.500000 0.905698 0.901899 0.882321 0.902091 0.865385 0.907946 0.500000 +0.700663 +0.492341 0.577560 0.857055 0.730000 0.510119 0.168059 0.767645 0.406895 0.500000 1 1 0 0 0.500000 1 1 0.500000 0.500000 0.897284 0.500000 0.500000 0.851869 0.875178 0.500000 0.889480 0.884278 0.500000 0.884112 0.867660 0.886375 0.500000 0.500000 +0.390996 +0.481644 0.790669 0.174868 0.800371 0.831661 0.330047 0.101700 0.668258 0.500000 1 0.500000 0.500000 0.500000 0 0 1 0.867269 0.853005 0.879626 0.500000 0.887498 0.853295 0.500000 0.867554 0.500000 0.880965 0.500000 0.900812 0.902433 0.903863 0.500000 0.500000 +0.501944 +0.353910 0.368306 0.725283 0.431165 0.383828 0.805362 0.724867 0.647720 1 0.500000 1 0.500000 0 0.500000 1 0 0.872046 0.892466 0.885726 0.884784 0.500000 0.858591 0.897530 0.899243 0.893447 0.500000 0.883682 0.500000 0.500000 0.870219 0.880301 0.500000 +0.663607 +0.819258 0.665429 0.868535 0.870407 0.333169 0.574363 0.712182 0.239847 0 0.500000 0 0.500000 0 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.873770 0.869300 0.500000 0.500000 0.881385 0.888196 0.871373 0.879056 0.897035 0.898311 0.854835 0.500000 0.500000 +0.395209 +0.112900 0.102807 0.871731 0.190180 0.555328 0.800980 0.667137 0.774906 1 0 0.500000 0.500000 1 1 1 1 0.873023 0.500000 0.899989 0.873852 0.858044 0.500000 0.882466 0.904292 0.500000 0.500000 0.881525 0.500000 0.892274 0.500000 0.892447 0.500000 +0.598288 +0.141115 0.718905 0.442839 0.597280 0.278486 0.717271 0.179709 0.563950 0 0 1 1 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.844226 0.500000 0.915638 0.859444 0.862833 0.904645 0.500000 0.904882 0.881340 0.884402 0.870154 0.500000 0.500000 0.867414 +0.545700 +0.197943 0.623828 0.871844 0.482277 0.225759 0.139189 0.356111 0.556009 0 1 0.500000 0 0 1 1 1 0.500000 0.883799 0.853920 0.913526 0.500000 0.500000 0.868933 0.859103 0.500000 0.910759 0.898024 0.930260 0.500000 0.878684 0.500000 0.500000 +0.486926 +0.718246 0.558208 0.407637 0.157523 0.496266 0.138445 0.639505 0.360346 0.500000 1 0.500000 0 1 1 1 0.500000 0.854944 0.885166 0.852914 0.500000 0.868457 0.500000 0.855502 0.500000 0.885997 0.892250 0.500000 0.500000 0.500000 0.888344 0.500000 0.886175 +0.422079 +0.810500 0.680719 0.245811 0.341761 0.170863 0.692963 0.425377 0.706260 1 0 0 0.500000 0 0.500000 0.500000 0 0.903503 0.900129 0.882980 0.858499 0.910200 0.875919 0.500000 0.875361 0.500000 0.500000 0.500000 0.881439 0.878138 0.500000 0.500000 0.500000 +0.570626 +0.642531 0.823187 0.305059 0.131594 0.699263 0.709071 0.764446 0.245831 1 0.500000 0 0 0 1 0.500000 1 0.879312 0.500000 0.500000 0.893930 0.875659 0.881287 0.882588 0.889803 0.862444 0.878684 0.500000 0.500000 0.500000 0.887795 0.500000 0.500000 +0.482788 +0.386442 0.736138 0.469905 0.298769 0.815459 0.812505 0.779174 0.582026 1 1 0.500000 0 0 0 1 0 0.889690 0.850999 0.895707 0.912259 0.500000 0.500000 0.859249 0.868557 0.500000 0.848801 0.876959 0.868735 0.875537 0.864356 0.870701 0.500000 +0.619390 +0.532522 0.695254 0.531164 0.265766 0.529301 0.163344 0.729081 0.262882 1 0 1 1 0.500000 0.500000 0 0 0.903199 0.884817 0.500000 0.848563 0.875351 0.869150 0.912298 0.500000 0.893709 0.500000 0.900760 0.500000 0.500000 0.902611 0.500000 0.500000 +0.526767 +0.448973 0.492495 0.769829 0.318935 0.538270 0.507575 0.611076 0.154843 0 0.500000 0.500000 1 1 0 0.500000 0.500000 0.893856 0.896540 0.851384 0.500000 0.856655 0.886407 0.881302 0.886684 0.500000 0.500000 0.500000 0.500000 0.903162 0.500000 0.500000 0.913558 +0.594660 +0.733261 0.110394 0.392019 0.860560 0.432144 0.846377 0.459663 0.163156 1 0 1 0 1 0.500000 1 0 0.500000 0.500000 0.500000 0.883487 0.869101 0.500000 0.889067 0.853889 0.857038 0.500000 0.500000 0.500000 0.867871 0.863773 0.907615 0.874620 +0.489210 +0.835374 0.324555 0.597776 0.625027 0.232966 0.454038 0.818242 0.394991 0.500000 1 1 0 1 0 1 0 0.887386 0.500000 0.866991 0.879695 0.500000 0.500000 0.873137 0.500000 0.880844 0.843449 0.500000 0.865588 0.500000 0.868997 0.863677 0.500000 +0.448925 +0.246170 0.778321 0.634851 0.536267 0.442091 0.817255 0.605818 0.580670 0 1 0 0.500000 0.500000 0.500000 0 1 0.873069 0.885125 0.857786 0.500000 0.500000 0.871595 0.500000 0.854669 0.896138 0.500000 0.880519 0.500000 0.500000 0.872914 0.868052 0.885661 +0.484711 +0.604896 0.289305 0.155291 0.580183 0.131936 0.854023 0.170844 0.380277 0 0 0 0 1 0 1 1 0.500000 0.918685 0.918708 0.500000 0.500000 0.888448 0.884874 0.891143 0.888469 0.889413 0.500000 0.500000 0.500000 0.882912 0.898351 0.861791 +0.475494 +0.607013 0.660861 0.893418 0.676280 0.843500 0.110220 0.666616 0.813806 0 0.500000 1 1 1 1 1 1 0.500000 0.887035 0.908215 0.866255 0.500000 0.873404 0.856444 0.855064 0.500000 0.500000 0.871824 0.500000 0.500000 0.872322 0.500000 0.873721 +0.439655 +0.806281 0.159300 0.761559 0.528164 0.254832 0.758443 0.159329 0.443820 0 1 0.500000 0.500000 1 1 0 0 0.500000 0.500000 0.895553 0.868139 0.500000 0.500000 0.500000 0.500000 0.500000 0.910476 0.887288 0.500000 0.914361 0.500000 0.898907 0.910002 +0.369016 +0.653105 0.138044 0.305221 0.449930 0.571834 0.607872 0.698227 0.103508 1 0.500000 1 0.500000 0.500000 0 1 0 0.947485 0.874026 0.500000 0.500000 0.500000 0.902469 0.500000 0.855567 0.500000 0.884793 0.500000 0.871621 0.500000 0.875816 0.885119 0.500000 +0.405172 +0.169583 0.786188 0.856782 0.143647 0.882583 0.177505 0.319616 0.786351 0.500000 1 0.500000 1 1 0 1 0.500000 0.859550 0.885054 0.873703 0.887755 0.500000 0.856409 0.851850 0.500000 0.888108 0.857944 0.500000 0.500000 0.889540 0.893536 0.500000 0.500000 +0.528443 +0.231125 0.715167 0.811357 0.672955 0.156399 0.801926 0.578302 0.528957 1 0 0.500000 0 0 1 0.500000 0.500000 0.890203 0.500000 0.884384 0.500000 0.898329 0.500000 0.500000 0.865549 0.883824 0.864714 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.223671 +0.393787 0.177297 0.824184 0.263720 0.544417 0.616037 0.338840 0.685841 1 1 1 1 1 1 0 0.500000 0.896534 0.908324 0.887523 0.908133 0.500000 0.500000 0.500000 0.878746 0.500000 0.917082 0.883185 0.500000 0.884141 0.500000 0.885164 0.500000 +0.515175 +0.894280 0.757130 0.477541 0.636086 0.494309 0.853569 0.529904 0.690641 0.500000 1 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.897976 0.500000 0.865752 0.880280 0.904189 0.862958 0.500000 0.865198 0.895610 0.500000 0.893994 0.859900 0.500000 0.500000 +0.435841 +0.175159 0.897505 0.572149 0.305704 0.563007 0.262693 0.873198 0.835623 0.500000 0 0.500000 0.500000 0 1 0 0.500000 0.905401 0.872353 0.911785 0.881062 0.500000 0.923478 0.846544 0.897438 0.889816 0.904242 0.883403 0.896174 0.859753 0.500000 0.500000 0.907870 +0.743705 +0.790247 0.290570 0.604378 0.388180 0.335952 0.148884 0.891308 0.409379 0.500000 1 0 0 0.500000 0.500000 0 0.500000 0.901183 0.846287 0.858940 0.899652 0.500000 0.870374 0.931010 0.904882 0.892899 0.500000 0.885549 0.867510 0.500000 0.887575 0.859501 0.876975 +0.708074 +0.847553 0.225510 0.740004 0.650340 0.858502 0.237945 0.147234 0.356202 0.500000 1 0 1 1 0.500000 0 1 0.908472 0.500000 0.500000 0.908181 0.889018 0.872487 0.858099 0.864712 0.870150 0.857100 0.500000 0.500000 0.500000 0.500000 0.899905 0.500000 +0.494226 +0.761553 0.427642 0.383481 0.563685 0.457035 0.781423 0.774880 0.413735 0 0.500000 0 1 0 0 0 1 0.882522 0.500000 0.879213 0.868819 0.500000 0.878913 0.500000 0.865839 0.500000 0.911521 0.849389 0.879825 0.900573 0.881285 0.500000 0.500000 +0.477452 +0.340141 0.142079 0.121932 0.704085 0.163084 0.350409 0.722093 0.410674 1 0 0.500000 0 0 1 0.500000 0 0.500000 0.883077 0.862033 0.862489 0.883188 0.885298 0.872509 0.888212 0.500000 0.500000 0.852837 0.883474 0.867830 0.885379 0.863847 0.500000 +0.790950 +0.227034 0.765034 0.518745 0.355106 0.463768 0.347617 0.197236 0.748483 1 1 1 1 0 0.500000 0.500000 0.500000 0.896621 0.878017 0.500000 0.876189 0.500000 0.871285 0.500000 0.900246 0.878791 0.871614 0.500000 0.500000 0.500000 0.902592 0.500000 0.500000 +0.404951 +0.279925 0.100283 0.852804 0.473214 0.704547 0.719035 0.214149 0.209841 0.500000 1 0.500000 0 1 0.500000 0.500000 1 0.865332 0.862253 0.500000 0.870629 0.500000 0.500000 0.500000 0.898019 0.858953 0.500000 0.500000 0.500000 0.870402 0.857297 0.880006 0.500000 +0.419213 +0.276838 0.215956 0.177950 0.611242 0.545450 0.382707 0.354118 0.664402 0.500000 0.500000 0 0.500000 0 0.500000 0 1 0.500000 0.881317 0.872356 0.500000 0.500000 0.500000 0.886348 0.881736 0.500000 0.882057 0.880179 0.500000 0.500000 0.884431 0.860834 0.500000 +0.390765 +0.291090 0.555868 0.279493 0.838620 0.494841 0.199679 0.197702 0.581978 1 0.500000 0.500000 0 0 1 0 0 0.847949 0.874421 0.891087 0.500000 0.853306 0.875391 0.500000 0.864852 0.500000 0.893939 0.870417 0.883762 0.500000 0.901766 0.872155 0.840818 +0.700994 +0.122587 0.515881 0.209455 0.506001 0.561511 0.706920 0.600109 0.625170 0 1 0 0 1 1 0.500000 0 0.500000 0.918853 0.903129 0.915096 0.866476 0.901703 0.500000 0.863938 0.890873 0.500000 0.883386 0.855595 0.500000 0.500000 0.500000 0.880501 +0.548456 +0.649416 0.530265 0.364793 0.872309 0.298653 0.466455 0.704509 0.883546 0 1 0.500000 0 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.873317 0.500000 0.875713 0.890438 0.903853 0.905462 0.859290 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.250564 +0.776869 0.235049 0.266440 0.665403 0.419965 0.155772 0.663006 0.150321 0 0 0.500000 1 1 0.500000 0.500000 0 0.863292 0.900038 0.875518 0.500000 0.908848 0.850072 0.500000 0.500000 0.892580 0.500000 0.500000 0.869394 0.500000 0.500000 0.500000 0.500000 +0.356442 +0.689732 0.532319 0.488504 0.889517 0.718341 0.562996 0.873251 0.122113 0.500000 0 0 0.500000 0 1 0.500000 0 0.880001 0.872509 0.500000 0.892759 0.887787 0.892498 0.879121 0.904989 0.891105 0.500000 0.885147 0.500000 0.919983 0.867241 0.902903 0.865574 +0.740288 +0.697191 0.291996 0.584787 0.716246 0.539119 0.369824 0.636849 0.517333 0.500000 0.500000 0 0.500000 1 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.877433 0.879010 0.863232 0.919592 0.500000 0.500000 0.873010 0.873407 0.500000 0.500000 0.843520 0.500000 +0.310715 +0.707299 0.571875 0.505239 0.546532 0.164621 0.587251 0.529197 0.809718 0 1 1 1 0 0.500000 0 1 0.880941 0.857746 0.500000 0.872705 0.500000 0.500000 0.854495 0.870961 0.500000 0.500000 0.881393 0.500000 0.500000 0.907160 0.891990 0.860579 +0.413643 +0.666333 0.851078 0.266842 0.218770 0.272124 0.183810 0.694923 0.573271 1 0.500000 0 0 1 0 0.500000 0 0.500000 0.872143 0.500000 0.500000 0.883488 0.888436 0.858308 0.853957 0.500000 0.924678 0.500000 0.888795 0.500000 0.500000 0.880520 0.500000 +0.464440 +0.162697 0.251342 0.500977 0.115249 0.392525 0.561963 0.312360 0.434338 0 1 1 1 1 0 1 1 0.888048 0.876361 0.876437 0.500000 0.903932 0.869928 0.500000 0.500000 0.500000 0.871646 0.500000 0.500000 0.894631 0.838692 0.500000 0.500000 +0.418293 +0.521130 0.431282 0.754001 0.696768 0.381771 0.630410 0.303453 0.328867 0 0 1 0 1 0 1 0 0.883508 0.878181 0.500000 0.500000 0.868748 0.500000 0.891834 0.500000 0.500000 0.863080 0.888984 0.904225 0.500000 0.500000 0.500000 0.920032 +0.350121 +0.433307 0.393004 0.610451 0.848161 0.840061 0.705433 0.411939 0.460121 1 0 0.500000 0 0.500000 1 0.500000 0.500000 0.867701 0.922498 0.500000 0.875999 0.856712 0.900138 0.500000 0.500000 0.500000 0.867274 0.882277 0.875048 0.887672 0.885981 0.875720 0.500000 +0.537344 +0.550777 0.306886 0.426677 0.156663 0.427563 0.651051 0.813099 0.357657 0 0 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.882221 0.873176 0.873307 0.873446 0.500000 0.893753 0.500000 0.877758 0.866937 0.906652 0.868215 0.897978 0.891335 0.500000 0.500000 0.876587 +0.640620 +0.779077 0.542840 0.504387 0.627952 0.582464 0.879893 0.569879 0.552748 1 0 0 0 1 0.500000 0 0.500000 0.500000 0.892876 0.872653 0.867414 0.500000 0.895185 0.500000 0.857835 0.891616 0.892346 0.500000 0.500000 0.830424 0.500000 0.869446 0.885068 +0.378531 +0.646678 0.113048 0.202969 0.291690 0.230534 0.391112 0.812933 0.767463 0.500000 0 0.500000 0 0.500000 0.500000 0.500000 1 0.851992 0.862320 0.870593 0.899452 0.871353 0.886698 0.868039 0.905909 0.500000 0.500000 0.500000 0.500000 0.500000 0.912413 0.883931 0.881116 +0.752891 +0.583584 0.488412 0.139251 0.597575 0.447323 0.754359 0.309085 0.594307 1 0.500000 0.500000 0 0.500000 0.500000 0.500000 1 0.500000 0.874628 0.898998 0.853894 0.500000 0.500000 0.500000 0.895714 0.500000 0.500000 0.888125 0.914071 0.864909 0.500000 0.500000 0.500000 +0.338018 +0.184589 0.184964 0.890056 0.173401 0.142036 0.195156 0.189388 0.839412 0 0 0 0 1 0 1 1 0.500000 0.851813 0.500000 0.865260 0.871795 0.500000 0.894341 0.887512 0.866673 0.887341 0.888572 0.500000 0.500000 0.500000 0.910193 0.881350 +0.538703 +0.693006 0.353123 0.731643 0.126959 0.403547 0.218748 0.691293 0.355039 0 0 0 0 1 0 1 0.500000 0.500000 0.865045 0.917497 0.904673 0.852953 0.500000 0.500000 0.879098 0.849097 0.863609 0.904692 0.874109 0.903897 0.918890 0.876399 0.884992 +0.776429 +0.193936 0.484876 0.715658 0.266799 0.288795 0.384778 0.768682 0.246738 1 0.500000 0.500000 0 1 0 1 0.500000 0.877169 0.868679 0.884909 0.878262 0.883809 0.874572 0.880955 0.906724 0.500000 0.500000 0.500000 0.884445 0.898717 0.903906 0.874592 0.875386 +0.834385 +0.438572 0.885786 0.401907 0.644157 0.149400 0.763708 0.632420 0.486201 0.500000 0.500000 1 0 1 1 0 0 0.500000 0.931549 0.500000 0.905056 0.887657 0.891612 0.890151 0.500000 0.873617 0.500000 0.907728 0.882732 0.500000 0.859723 0.500000 0.500000 +0.494989 +0.779749 0.646014 0.155225 0.271931 0.149754 0.313495 0.310643 0.382177 0 1 0 0.500000 1 1 0 1 0.884390 0.899294 0.869266 0.907548 0.905582 0.898459 0.500000 0.500000 0.884756 0.500000 0.500000 0.889560 0.903087 0.500000 0.500000 0.500000 +0.460095 +0.302672 0.810188 0.225844 0.765642 0.349069 0.595485 0.521213 0.220982 1 0.500000 0.500000 0.500000 1 0 0.500000 0.500000 0.500000 0.868243 0.862812 0.867446 0.885855 0.866060 0.887558 0.882366 0.856669 0.500000 0.868405 0.500000 0.500000 0.500000 0.500000 0.500000 +0.536871 +0.240130 0.856456 0.248134 0.183735 0.236850 0.136902 0.313799 0.620580 1 1 0 0.500000 0 1 0 1 0.500000 0.882596 0.878965 0.858797 0.858871 0.872217 0.898457 0.882062 0.882658 0.871977 0.500000 0.864158 0.500000 0.879580 0.896861 0.865530 +0.715958 +0.793554 0.654041 0.667287 0.889694 0.487465 0.232450 0.588995 0.240722 0.500000 0.500000 1 0 0.500000 0 0 0.500000 0.880905 0.500000 0.878942 0.884934 0.500000 0.895254 0.500000 0.895798 0.500000 0.500000 0.500000 0.882670 0.886696 0.858931 0.500000 0.872447 +0.457023 +0.629749 0.399350 0.873208 0.198700 0.549373 0.705530 0.441996 0.834945 0 0 1 0.500000 0.500000 0 0 1 0.847669 0.878478 0.879592 0.892659 0.880964 0.500000 0.899454 0.870070 0.858027 0.850704 0.500000 0.868585 0.500000 0.500000 0.885226 0.875828 +0.619845 +0.815979 0.760871 0.160603 0.247049 0.357711 0.256743 0.880511 0.554256 0.500000 0.500000 1 0.500000 0 1 1 0 0.500000 0.893896 0.857260 0.915840 0.500000 0.500000 0.923940 0.500000 0.876062 0.500000 0.500000 0.500000 0.500000 0.859846 0.500000 0.500000 +0.271583 +0.840353 0.816304 0.627552 0.274239 0.537697 0.473339 0.414793 0.421157 0 0 0 0 0.500000 0.500000 0.500000 0 0.891962 0.860292 0.500000 0.500000 0.886648 0.884904 0.500000 0.885101 0.851599 0.500000 0.885367 0.896963 0.500000 0.500000 0.877485 0.500000 +0.424871 +0.614329 0.427930 0.414642 0.293234 0.582067 0.605578 0.554611 0.742949 0.500000 0 0 1 0.500000 1 0 0 0.869712 0.500000 0.500000 0.877007 0.897359 0.885446 0.500000 0.893019 0.500000 0.876511 0.855877 0.500000 0.500000 0.500000 0.851485 0.500000 +0.450247 +0.801678 0.406879 0.214028 0.567509 0.722358 0.870377 0.627867 0.768609 0.500000 1 0 0 0.500000 1 0.500000 1 0.888979 0.500000 0.890417 0.854160 0.918767 0.894050 0.890788 0.865492 0.872893 0.883832 0.912344 0.862442 0.500000 0.889932 0.905440 0.890608 +0.830862 +0.257576 0.478248 0.518480 0.699003 0.340718 0.243077 0.788163 0.453411 1 0.500000 0 1 1 0 0 1 0.890704 0.500000 0.883108 0.500000 0.867686 0.892094 0.897883 0.500000 0.900203 0.500000 0.500000 0.500000 0.841717 0.869933 0.876724 0.877223 +0.542724 +0.593564 0.227215 0.603925 0.768658 0.638935 0.373112 0.698911 0.396944 0.500000 0 1 0.500000 1 0.500000 1 0.500000 0.923848 0.898312 0.500000 0.851209 0.879898 0.886891 0.500000 0.891114 0.872801 0.500000 0.500000 0.886051 0.883115 0.879955 0.500000 0.874411 +0.654279 +0.234616 0.193320 0.536118 0.340238 0.185134 0.554714 0.876458 0.437940 1 1 1 0.500000 0 0.500000 1 1 0.849553 0.871886 0.873644 0.874034 0.884752 0.500000 0.872150 0.912582 0.872327 0.879567 0.878954 0.500000 0.500000 0.892985 0.500000 0.500000 +0.650098 +0.403508 0.362854 0.288035 0.397649 0.290449 0.179859 0.698373 0.155691 1 0 0 1 0.500000 0.500000 0 0.500000 0.885231 0.838408 0.868041 0.863191 0.840989 0.867182 0.874492 0.500000 0.500000 0.888981 0.500000 0.878856 0.500000 0.844851 0.877621 0.867621 +0.698502 +0.582829 0.615604 0.259797 0.208759 0.806186 0.175569 0.585211 0.644133 0.500000 0.500000 1 0.500000 1 0 0.500000 0.500000 0.907801 0.905606 0.882859 0.500000 0.869061 0.500000 0.874110 0.500000 0.500000 0.863713 0.500000 0.910489 0.500000 0.500000 0.500000 0.865543 +0.458274 +0.231094 0.188784 0.295417 0.472437 0.449286 0.156180 0.308932 0.420978 0.500000 0 1 0.500000 1 1 0 1 0.903514 0.500000 0.500000 0.877045 0.873549 0.500000 0.868377 0.851264 0.500000 0.500000 0.500000 0.895272 0.500000 0.500000 0.884856 0.868256 +0.431515 +0.752846 0.487654 0.202537 0.233158 0.487687 0.759705 0.566141 0.137301 0.500000 0 0 0 0.500000 1 0.500000 1 0.500000 0.500000 0.883168 0.868914 0.871936 0.861658 0.869933 0.874204 0.879980 0.500000 0.874498 0.500000 0.500000 0.500000 0.892912 0.871240 +0.518120 +0.473500 0.716844 0.189899 0.628114 0.103718 0.189752 0.558343 0.271299 1 0 0 0.500000 1 0 0 1 0.898927 0.920372 0.849164 0.855457 0.873846 0.910955 0.894851 0.878634 0.500000 0.500000 0.879222 0.500000 0.895862 0.880381 0.500000 0.883095 +0.776894 +0.873422 0.609411 0.171008 0.732135 0.397660 0.465459 0.775263 0.442346 0 1 0.500000 0 0.500000 0 1 0.500000 0.500000 0.893014 0.896516 0.500000 0.500000 0.900638 0.867956 0.895486 0.916803 0.871535 0.898280 0.909659 0.500000 0.500000 0.500000 0.500000 +0.490915 +0.133052 0.406104 0.794919 0.404005 0.709245 0.478203 0.564356 0.538658 0.500000 0.500000 0 1 0.500000 0 0.500000 1 0.899207 0.871672 0.898810 0.859396 0.500000 0.891858 0.897226 0.890505 0.500000 0.880788 0.500000 0.500000 0.875261 0.500000 0.898493 0.892619 +0.666141 +0.450908 0.211185 0.784169 0.522340 0.774814 0.103298 0.333616 0.887928 0.500000 1 0.500000 0.500000 0 0 0 0 0.877768 0.905068 0.876780 0.881008 0.500000 0.868253 0.500000 0.500000 0.500000 0.903246 0.500000 0.880417 0.860440 0.500000 0.876868 0.899830 +0.548421 +0.418217 0.373434 0.512348 0.832701 0.202579 0.149715 0.466649 0.765068 0 0 0.500000 0 0.500000 1 0.500000 0 0.849683 0.866428 0.895640 0.908582 0.876693 0.500000 0.902677 0.894612 0.909019 0.500000 0.500000 0.500000 0.500000 0.500000 0.895490 0.500000 +0.592768 +0.519835 0.270006 0.586997 0.258047 0.387677 0.690862 0.309361 0.434761 1 0.500000 0 0.500000 1 1 1 0 0.849416 0.500000 0.903796 0.877564 0.883316 0.898900 0.500000 0.847691 0.871074 0.500000 0.500000 0.500000 0.500000 0.832605 0.878749 0.852886 +0.506702 +0.116311 0.631356 0.199385 0.857767 0.687634 0.466493 0.542533 0.159726 1 0.500000 0 1 0.500000 1 1 0 0.500000 0.500000 0.860267 0.873436 0.500000 0.866284 0.927745 0.500000 0.857218 0.500000 0.500000 0.500000 0.874876 0.500000 0.500000 0.873197 +0.304593 +0.325822 0.293008 0.779823 0.285961 0.750076 0.334337 0.207455 0.492453 1 0 0.500000 1 1 0.500000 1 0 0.894941 0.883111 0.871095 0.500000 0.882845 0.884299 0.875569 0.898041 0.868142 0.500000 0.500000 0.500000 0.500000 0.885238 0.912117 0.871199 +0.724510 +0.168304 0.889336 0.878104 0.888584 0.225306 0.524946 0.568178 0.760467 0.500000 1 0 0.500000 0 1 0 0 0.857773 0.856414 0.883864 0.916256 0.500000 0.874634 0.865665 0.500000 0.916947 0.874507 0.907649 0.874826 0.875775 0.500000 0.878116 0.852025 +0.735573 +0.500969 0.779665 0.831883 0.855361 0.257475 0.374717 0.466901 0.213184 1 1 0 0.500000 1 0.500000 1 1 0.500000 0.862978 0.896572 0.889279 0.909264 0.882364 0.500000 0.905337 0.872804 0.500000 0.500000 0.500000 0.887251 0.899648 0.880922 0.500000 +0.574320 +0.620896 0.399521 0.554989 0.706438 0.509721 0.688666 0.210660 0.760363 0.500000 1 0 1 0 0 1 0 0.500000 0.865613 0.844349 0.882099 0.880856 0.906596 0.500000 0.821887 0.877589 0.892951 0.851343 0.500000 0.884911 0.500000 0.861488 0.500000 +0.553513 +0.260239 0.434005 0.114381 0.209306 0.413653 0.468880 0.662919 0.280617 0.500000 0 1 0 0 0.500000 1 1 0.875907 0.500000 0.500000 0.846684 0.500000 0.870648 0.901873 0.500000 0.885905 0.877410 0.500000 0.877412 0.836894 0.500000 0.500000 0.500000 +0.392720 +0.586751 0.130407 0.747750 0.434967 0.295945 0.541323 0.607422 0.338681 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0 0.500000 0.500000 0.852471 0.500000 0.500000 0.884815 0.886550 0.500000 0.500000 0.500000 0.500000 0.903464 0.500000 0.500000 0.880275 0.500000 +0.188220 +0.592414 0.111153 0.356376 0.216445 0.389778 0.793297 0.336490 0.384008 0.500000 1 0.500000 1 1 0 0.500000 0.500000 0.896995 0.894457 0.892397 0.923594 0.901557 0.904773 0.873041 0.500000 0.830708 0.867180 0.873835 0.871645 0.865627 0.500000 0.500000 0.897688 +0.792709 +0.664161 0.349399 0.546591 0.359278 0.177361 0.311837 0.438444 0.331737 0.500000 0.500000 0.500000 0 0.500000 0.500000 0 0 0.881785 0.500000 0.904065 0.866831 0.500000 0.500000 0.873479 0.896850 0.898745 0.500000 0.500000 0.901141 0.500000 0.500000 0.500000 0.500000 +0.358790 +0.293773 0.839456 0.130264 0.744660 0.504503 0.179523 0.634855 0.614067 1 0 1 1 0 0.500000 1 0.500000 0.500000 0.874229 0.500000 0.901845 0.879385 0.500000 0.904450 0.883448 0.898204 0.500000 0.884650 0.880884 0.500000 0.857863 0.875391 0.866469 +0.597541 +0.595399 0.667480 0.139910 0.468119 0.668947 0.785742 0.559853 0.854543 0 0 1 1 1 1 0.500000 0.500000 0.877658 0.917813 0.500000 0.898391 0.888318 0.875697 0.500000 0.921701 0.850194 0.878774 0.500000 0.500000 0.884442 0.888130 0.882104 0.500000 +0.657653 +0.706080 0.885439 0.181160 0.160985 0.273976 0.116111 0.484550 0.831965 1 1 0 0 1 0.500000 0.500000 0.500000 0.909209 0.887788 0.909149 0.882878 0.882129 0.500000 0.865323 0.918379 0.938890 0.500000 0.855365 0.500000 0.892625 0.500000 0.500000 0.872994 +0.591007 +0.661074 0.462831 0.599315 0.891941 0.660867 0.190972 0.268502 0.112720 0 1 0.500000 0 1 0 0 0 0.886109 0.868602 0.864568 0.500000 0.500000 0.897926 0.887909 0.500000 0.500000 0.884544 0.500000 0.868749 0.500000 0.881781 0.500000 0.500000 +0.407894 +0.894662 0.783499 0.470451 0.664794 0.589874 0.608911 0.571479 0.253000 0.500000 0.500000 1 0 1 1 0 0.500000 0.888119 0.890162 0.500000 0.886699 0.500000 0.500000 0.500000 0.879884 0.854012 0.872270 0.500000 0.894428 0.500000 0.500000 0.500000 0.897382 +0.398247 +0.506574 0.591213 0.716516 0.287191 0.619730 0.810651 0.815837 0.766146 1 0.500000 0 1 0 0 0 0 0.881614 0.860028 0.887454 0.902350 0.865116 0.875668 0.891273 0.847018 0.500000 0.869016 0.852028 0.500000 0.847120 0.500000 0.500000 0.876404 +0.683823 +0.240135 0.151831 0.820235 0.292434 0.730818 0.651564 0.638027 0.325091 1 0.500000 0 0 0.500000 1 1 0 0.500000 0.898354 0.899624 0.882265 0.882189 0.500000 0.500000 0.857358 0.500000 0.878281 0.879991 0.898106 0.500000 0.902579 0.882709 0.882681 +0.694408 +0.613034 0.262477 0.459074 0.663512 0.652263 0.381432 0.523898 0.545836 0.500000 0.500000 0.500000 0 1 0 0 0.500000 0.500000 0.915258 0.889205 0.500000 0.859053 0.500000 0.878282 0.882868 0.873554 0.847815 0.882407 0.882117 0.500000 0.500000 0.500000 0.888997 +0.534182 +0.268428 0.477300 0.578990 0.883389 0.121807 0.205316 0.547974 0.391335 0.500000 0.500000 0 0.500000 1 0.500000 0.500000 0 0.878526 0.886398 0.500000 0.500000 0.500000 0.887373 0.500000 0.868970 0.892569 0.500000 0.894940 0.862707 0.890388 0.886541 0.500000 0.874705 +0.592279 +0.710100 0.456634 0.442287 0.111036 0.778415 0.618632 0.754457 0.361996 0 0 0.500000 0.500000 1 0 1 1 0.867998 0.891749 0.500000 0.500000 0.850671 0.925839 0.890340 0.900446 0.500000 0.863249 0.500000 0.888669 0.888350 0.873200 0.863305 0.897611 +0.640191 +0.869278 0.548564 0.709987 0.152090 0.374157 0.658122 0.452271 0.724515 0 1 0.500000 0 0 0 0 0.500000 0.500000 0.901004 0.883462 0.854829 0.877638 0.500000 0.500000 0.921055 0.500000 0.500000 0.500000 0.866212 0.500000 0.500000 0.500000 0.500000 +0.354350 +0.389778 0.798424 0.120049 0.256615 0.324860 0.122502 0.684394 0.411392 1 0.500000 0 0.500000 1 1 1 0.500000 0.500000 0.877961 0.898349 0.500000 0.500000 0.895547 0.887948 0.872138 0.881713 0.500000 0.921789 0.897713 0.865319 0.500000 0.891723 0.861849 +0.641205 +0.232211 0.569084 0.792141 0.106714 0.145012 0.621991 0.401294 0.747667 1 0.500000 1 0.500000 0 0.500000 1 0 0.924188 0.500000 0.500000 0.849594 0.876551 0.905566 0.500000 0.898623 0.863489 0.500000 0.500000 0.875002 0.500000 0.892267 0.500000 0.500000 +0.460587 +0.349737 0.634245 0.763440 0.130918 0.538749 0.559782 0.453634 0.424215 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0 0.500000 0.873709 0.500000 0.853953 0.859740 0.937985 0.500000 0.500000 0.885077 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.234042 +0.294833 0.266222 0.189031 0.448902 0.102756 0.816197 0.415792 0.412896 0.500000 1 0.500000 0.500000 1 0 0.500000 1 0.896535 0.500000 0.896259 0.500000 0.891668 0.500000 0.500000 0.881834 0.860130 0.500000 0.860184 0.892940 0.877459 0.887446 0.500000 0.871949 +0.578821 +0.215570 0.886703 0.622684 0.850863 0.661009 0.171484 0.738755 0.458909 0 0.500000 0 1 0 0 1 0.500000 0.895227 0.899932 0.500000 0.901199 0.894574 0.923169 0.900809 0.861549 0.500000 0.868648 0.500000 0.875784 0.869573 0.952324 0.500000 0.888073 +0.729241 +0.455035 0.778687 0.398430 0.605941 0.257532 0.542150 0.115969 0.498271 0 0 0.500000 0.500000 0.500000 1 0 0.500000 0.897373 0.500000 0.892902 0.877567 0.500000 0.500000 0.883393 0.500000 0.887205 0.500000 0.865795 0.878747 0.500000 0.500000 0.920280 0.500000 +0.330183 +0.186523 0.699634 0.546588 0.297913 0.815872 0.561626 0.254490 0.610382 0.500000 0.500000 1 0.500000 1 1 0 1 0.500000 0.500000 0.891011 0.912764 0.895965 0.885439 0.903202 0.890958 0.932043 0.893628 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.545003 +0.598656 0.205777 0.289818 0.771366 0.552070 0.449078 0.651938 0.527367 0.500000 1 0.500000 1 0 0 1 0.500000 0.909346 0.500000 0.887015 0.864593 0.867652 0.874629 0.863410 0.500000 0.500000 0.500000 0.500000 0.900114 0.500000 0.894682 0.500000 0.930942 +0.581731 +0.178115 0.182722 0.812218 0.743887 0.305755 0.624728 0.804548 0.646077 0.500000 1 1 0 0 0.500000 0.500000 1 0.860622 0.500000 0.869431 0.895320 0.910713 0.880380 0.880526 0.888065 0.500000 0.877078 0.879651 0.500000 0.899230 0.865569 0.856216 0.500000 +0.704356 +0.296927 0.258862 0.498838 0.162205 0.776453 0.440040 0.758766 0.771921 0 1 0.500000 1 0 1 1 0.500000 0.848876 0.500000 0.500000 0.847337 0.500000 0.859786 0.500000 0.877062 0.500000 0.500000 0.500000 0.869722 0.500000 0.500000 0.854817 0.901539 +0.310233 +0.435162 0.365695 0.840295 0.634803 0.526157 0.113025 0.608113 0.747202 1 0.500000 1 0 1 0.500000 1 1 0.874516 0.897150 0.880619 0.885976 0.872654 0.500000 0.897893 0.873677 0.500000 0.500000 0.892639 0.874931 0.500000 0.500000 0.888192 0.886123 +0.653377 +0.427082 0.563563 0.798192 0.219493 0.411918 0.108510 0.734393 0.738902 0.500000 1 0 0 1 0.500000 0.500000 1 0.888151 0.885265 0.500000 0.500000 0.500000 0.893941 0.500000 0.875883 0.500000 0.500000 0.872657 0.500000 0.500000 0.500000 0.886001 0.861701 +0.335828 +0.801858 0.221972 0.483835 0.806674 0.368381 0.383056 0.616482 0.612916 1 1 1 0.500000 1 0.500000 0 1 0.907855 0.867945 0.500000 0.869129 0.500000 0.884632 0.902001 0.884132 0.895446 0.500000 0.873621 0.883054 0.899713 0.907850 0.500000 0.870340 +0.675996 +0.656816 0.106756 0.852748 0.331558 0.688338 0.295637 0.164117 0.108263 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0 0.500000 0.842036 0.891654 0.500000 0.884422 0.500000 0.500000 0.892391 0.888782 0.500000 0.500000 0.500000 0.857258 0.500000 0.500000 0.500000 +0.277454 +0.459419 0.856992 0.457781 0.527913 0.834434 0.532651 0.469156 0.509040 0.500000 0.500000 0 0 0.500000 0 0 1 0.860109 0.500000 0.500000 0.877695 0.879671 0.880259 0.872244 0.500000 0.888829 0.861988 0.877846 0.500000 0.910685 0.881560 0.500000 0.500000 +0.445020 +0.462476 0.233337 0.288342 0.768600 0.464608 0.865561 0.476656 0.157801 0 1 0 0 0.500000 0.500000 1 0 0.500000 0.868363 0.861464 0.887040 0.500000 0.896857 0.871810 0.500000 0.500000 0.500000 0.885315 0.500000 0.500000 0.500000 0.500000 0.864616 +0.359374 +0.631016 0.893154 0.235511 0.829285 0.387627 0.644881 0.316305 0.335306 0.500000 0.500000 0 1 0.500000 0.500000 1 0.500000 0.860147 0.908158 0.913379 0.500000 0.929873 0.903653 0.863114 0.867159 0.500000 0.883205 0.860157 0.895943 0.500000 0.500000 0.843523 0.882743 +0.672799 +0.719997 0.389827 0.825440 0.570737 0.573253 0.467760 0.249586 0.589197 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.887886 0.900384 0.871287 0.887386 0.888556 0.903417 0.500000 0.913487 0.857957 0.500000 0.889277 0.898666 0.500000 +0.554138 +0.300415 0.473923 0.618566 0.441623 0.151284 0.436467 0.695545 0.626025 0 0 0 1 0 1 0.500000 0 0.877055 0.890786 0.851507 0.898809 0.500000 0.883199 0.500000 0.500000 0.500000 0.500000 0.500000 0.887950 0.500000 0.880197 0.500000 0.500000 +0.374692 +0.114338 0.279476 0.546603 0.556890 0.653897 0.643980 0.370815 0.491375 0 0 1 0 0.500000 0.500000 1 0 0.500000 0.875207 0.862814 0.864334 0.500000 0.893207 0.884196 0.500000 0.863726 0.500000 0.894325 0.500000 0.500000 0.500000 0.500000 0.500000 +0.400807 +0.745257 0.143105 0.565013 0.379843 0.226881 0.588743 0.804414 0.790661 1 0.500000 1 0 0 1 0 1 0.895320 0.900591 0.500000 0.925692 0.859265 0.875825 0.867166 0.882248 0.500000 0.500000 0.868413 0.849122 0.500000 0.500000 0.916152 0.500000 +0.606684 +0.351730 0.524288 0.700971 0.626556 0.327387 0.189089 0.613875 0.796343 0 0.500000 0.500000 1 0.500000 0.500000 0 0.500000 0.883068 0.873853 0.843460 0.853738 0.883786 0.500000 0.500000 0.888292 0.897342 0.877019 0.500000 0.500000 0.887582 0.856627 0.897500 0.500000 +0.616921 +0.535505 0.432296 0.205587 0.305926 0.294545 0.217316 0.637009 0.815483 0.500000 0 0.500000 1 1 1 1 0.500000 0.864931 0.500000 0.500000 0.862330 0.500000 0.884074 0.881791 0.500000 0.500000 0.500000 0.908552 0.879207 0.500000 0.500000 0.887474 0.500000 +0.271702 +0.379831 0.814555 0.821166 0.734265 0.196042 0.684377 0.127050 0.335493 0.500000 1 0.500000 1 0.500000 1 1 0 0.500000 0.901669 0.862668 0.500000 0.876481 0.886082 0.872426 0.500000 0.912769 0.500000 0.500000 0.857840 0.500000 0.915028 0.500000 0.500000 +0.419749 +0.108363 0.652213 0.340166 0.569205 0.423027 0.415665 0.685764 0.228944 1 1 0.500000 0 0.500000 0 0 0.500000 0.868222 0.500000 0.875880 0.500000 0.500000 0.883512 0.894285 0.903352 0.934457 0.500000 0.836764 0.500000 0.500000 0.500000 0.500000 0.873555 +0.400900 +0.201170 0.455965 0.399457 0.269159 0.753711 0.627320 0.369363 0.884141 1 1 1 0 0.500000 0.500000 0 1 0.848866 0.890785 0.886150 0.847038 0.862103 0.878187 0.885185 0.868110 0.500000 0.500000 0.882199 0.500000 0.895711 0.908240 0.500000 0.500000 +0.776084 +0.137402 0.719295 0.584125 0.785840 0.611261 0.864453 0.262952 0.427051 1 1 0 0 1 0 0 0.500000 0.500000 0.914960 0.887407 0.895997 0.868939 0.500000 0.846891 0.881927 0.500000 0.500000 0.881206 0.500000 0.874659 0.902695 0.901934 0.500000 +0.527692 +0.507111 0.818611 0.188398 0.197646 0.433979 0.482103 0.503731 0.811529 0.500000 0.500000 1 0.500000 0 1 0 0.500000 0.870214 0.500000 0.857790 0.888359 0.910714 0.869264 0.500000 0.852356 0.500000 0.862870 0.500000 0.898275 0.869136 0.831970 0.912374 0.500000 +0.669117 +0.355191 0.290139 0.572582 0.378417 0.252326 0.250943 0.194029 0.440020 0.500000 1 1 0 0.500000 0 0.500000 0.500000 0.886073 0.500000 0.909207 0.935689 0.500000 0.500000 0.881443 0.900696 0.882107 0.897491 0.911322 0.500000 0.887965 0.500000 0.839733 0.894499 +0.713231 +0.183505 0.374988 0.215030 0.610162 0.798723 0.343469 0.890852 0.747996 0.500000 0 0.500000 1 0 0 0 0 0.873622 0.891004 0.857752 0.875501 0.500000 0.500000 0.912423 0.880068 0.862304 0.867117 0.500000 0.500000 0.901043 0.879040 0.856152 0.869772 +0.598157 +0.191228 0.560752 0.760638 0.243899 0.213588 0.376461 0.181682 0.129655 0 0 0.500000 1 0 1 1 0.500000 0.500000 0.956880 0.875460 0.500000 0.878695 0.857362 0.500000 0.886372 0.500000 0.500000 0.879115 0.500000 0.500000 0.887492 0.898608 0.898715 +0.422463 +0.208637 0.369991 0.231382 0.241809 0.288931 0.256498 0.758450 0.274464 0 0 1 0.500000 1 1 0.500000 1 0.500000 0.856557 0.863346 0.858599 0.500000 0.500000 0.893236 0.864162 0.882262 0.850567 0.878098 0.863077 0.500000 0.893710 0.500000 0.904414 +0.561673 +0.106769 0.264110 0.693679 0.467911 0.384559 0.289237 0.607632 0.678929 0.500000 0.500000 1 0 1 0 0 1 0.500000 0.884124 0.500000 0.908843 0.893727 0.893819 0.880554 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.884967 0.900269 0.500000 +0.493997 +0.278198 0.666125 0.555264 0.525167 0.282779 0.867317 0.402554 0.332415 1 0 1 1 0 0.500000 1 0.500000 0.900358 0.886488 0.872678 0.875905 0.500000 0.500000 0.870832 0.870728 0.888857 0.500000 0.878753 0.873316 0.500000 0.922967 0.500000 0.882109 +0.657499 +0.783512 0.684017 0.467957 0.347906 0.253711 0.323854 0.811277 0.126544 0.500000 0.500000 0.500000 0 1 0.500000 1 0.500000 0.876980 0.500000 0.500000 0.893454 0.500000 0.849783 0.898890 0.866561 0.868738 0.874184 0.500000 0.500000 0.500000 0.500000 0.855416 0.500000 +0.417438 +0.329979 0.556433 0.164952 0.554166 0.473594 0.688848 0.870025 0.313130 0.500000 0.500000 1 1 1 0.500000 0 0 0.500000 0.846586 0.845485 0.883896 0.843364 0.881929 0.868631 0.909066 0.500000 0.500000 0.500000 0.865060 0.837359 0.500000 0.500000 0.500000 +0.574419 +0.418486 0.886908 0.860000 0.626495 0.100580 0.241745 0.804571 0.232875 0.500000 0.500000 0 0.500000 0 1 0.500000 0.500000 0.865722 0.500000 0.906723 0.868626 0.901170 0.859248 0.887710 0.926930 0.876088 0.875050 0.500000 0.883772 0.897932 0.500000 0.500000 0.882024 +0.755617 +0.180346 0.880047 0.748955 0.694532 0.402620 0.639790 0.348043 0.153142 0.500000 0 0.500000 0 1 0 1 0.500000 0.872394 0.870593 0.870762 0.857669 0.878213 0.869371 0.899204 0.869857 0.861471 0.860036 0.912957 0.880328 0.893334 0.881014 0.500000 0.500000 +0.844230 +0.105541 0.428491 0.248898 0.235955 0.288560 0.422125 0.450560 0.755520 0.500000 1 0 0.500000 0.500000 1 1 0.500000 0.881033 0.890570 0.847980 0.500000 0.881086 0.500000 0.867480 0.855763 0.903599 0.890414 0.500000 0.881393 0.900975 0.500000 0.500000 0.500000 +0.601018 +0.120053 0.324861 0.134373 0.200911 0.113544 0.541702 0.585287 0.312994 1 1 1 0 0.500000 1 0 0 0.849053 0.847269 0.500000 0.879341 0.878106 0.883500 0.877905 0.894408 0.881661 0.500000 0.500000 0.853338 0.500000 0.500000 0.500000 0.500000 +0.540679 +0.717601 0.116445 0.498636 0.780919 0.306154 0.130092 0.256530 0.493311 1 0.500000 1 1 0 1 0.500000 0 0.877432 0.500000 0.500000 0.888226 0.886398 0.500000 0.901304 0.888900 0.880466 0.500000 0.500000 0.885269 0.884282 0.500000 0.874307 0.921701 +0.546967 +0.502041 0.408596 0.269563 0.351802 0.139015 0.628454 0.226372 0.830903 0.500000 0.500000 0 0 0 0 1 0.500000 0.862797 0.881644 0.891763 0.873146 0.912675 0.891326 0.881295 0.867642 0.845151 0.500000 0.500000 0.878393 0.500000 0.869021 0.880775 0.901618 +0.841577 +0.729629 0.668902 0.843526 0.547407 0.472692 0.731588 0.793261 0.534961 1 0.500000 0.500000 0 0.500000 0 1 1 0.876962 0.884201 0.900423 0.870466 0.500000 0.500000 0.894232 0.879624 0.500000 0.500000 0.859024 0.500000 0.902476 0.500000 0.500000 0.882525 +0.475765 +0.402774 0.822348 0.597835 0.806329 0.166994 0.471756 0.206383 0.882286 1 0 0 0 0 0.500000 0 0.500000 0.500000 0.500000 0.847103 0.897664 0.882754 0.869452 0.878782 0.888621 0.853111 0.500000 0.500000 0.500000 0.894523 0.500000 0.853690 0.863246 +0.501904 +0.468357 0.683354 0.536950 0.717946 0.317851 0.725626 0.604471 0.337544 0.500000 0.500000 0 0.500000 0 0.500000 0.500000 0 0.906872 0.879416 0.878786 0.874157 0.871508 0.500000 0.896914 0.868382 0.500000 0.500000 0.500000 0.500000 0.916785 0.864159 0.874335 0.500000 +0.596338 +0.218200 0.295277 0.527820 0.863945 0.518241 0.669331 0.838207 0.752364 0.500000 1 0.500000 0.500000 0.500000 0 1 0.500000 0.500000 0.500000 0.891900 0.500000 0.500000 0.500000 0.896302 0.859940 0.887635 0.500000 0.500000 0.500000 0.877139 0.500000 0.876655 0.879257 +0.284151 +0.493968 0.711775 0.599938 0.161708 0.420952 0.739886 0.267463 0.254958 0.500000 0.500000 0 0.500000 1 1 0 0.500000 0.500000 0.500000 0.894736 0.500000 0.500000 0.500000 0.863300 0.877197 0.500000 0.886679 0.872016 0.500000 0.500000 0.500000 0.858520 0.881394 +0.304511 +0.177869 0.845059 0.698691 0.708696 0.853249 0.763012 0.136418 0.185470 0.500000 1 0 1 0.500000 0.500000 0.500000 0.500000 0.871712 0.500000 0.896051 0.500000 0.886638 0.500000 0.500000 0.901692 0.861147 0.895010 0.500000 0.500000 0.500000 0.500000 0.500000 0.889968 +0.341544 +0.529078 0.418139 0.656864 0.109936 0.691948 0.176627 0.766397 0.226823 0.500000 1 0 0 0 0.500000 0 0.500000 0.877975 0.886763 0.859049 0.500000 0.903563 0.500000 0.500000 0.871049 0.867613 0.500000 0.893158 0.500000 0.500000 0.884771 0.873742 0.500000 +0.443718 +0.617780 0.832583 0.628738 0.193395 0.181970 0.167197 0.676196 0.218074 0.500000 0.500000 1 0 0.500000 0.500000 0.500000 0.500000 0.884102 0.500000 0.906297 0.500000 0.500000 0.894061 0.500000 0.868955 0.500000 0.849036 0.500000 0.857285 0.891017 0.500000 0.500000 0.851469 +0.361386 +0.122549 0.676135 0.794961 0.313512 0.598967 0.634292 0.750716 0.685333 0 1 0 0.500000 1 0.500000 1 1 0.871645 0.878767 0.898741 0.500000 0.882291 0.893513 0.500000 0.893625 0.873526 0.878945 0.500000 0.865373 0.500000 0.890653 0.500000 0.500000 +0.582046 +0.273811 0.548513 0.660525 0.851025 0.181455 0.306643 0.348750 0.844766 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.500000 1 0.864739 0.897011 0.500000 0.838079 0.500000 0.880926 0.897785 0.891511 0.866268 0.500000 0.500000 0.879394 0.500000 0.500000 0.500000 0.871547 +0.533129 +0.701414 0.859359 0.248470 0.235325 0.114884 0.661134 0.680904 0.150488 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.885851 0.883025 0.910108 0.896654 0.500000 0.884137 0.872679 0.500000 0.896549 0.878009 0.500000 0.500000 0.890772 0.500000 0.909203 0.883210 +0.612402 +0.343744 0.713857 0.393301 0.803737 0.609299 0.680464 0.758801 0.571546 0.500000 0 0.500000 0 0 0.500000 1 0.500000 0.500000 0.500000 0.873165 0.891901 0.500000 0.873131 0.878252 0.903542 0.500000 0.500000 0.876899 0.901930 0.884702 0.923617 0.882533 0.500000 +0.453191 +0.724737 0.847578 0.638617 0.630614 0.521666 0.647065 0.223805 0.888925 0 1 1 0 0.500000 0 0.500000 0.500000 0.835197 0.884279 0.847413 0.500000 0.871757 0.879304 0.500000 0.858888 0.500000 0.901717 0.500000 0.500000 0.500000 0.871107 0.500000 0.500000 +0.415093 +0.111014 0.412279 0.565212 0.524032 0.408064 0.129464 0.105025 0.552566 1 1 0 0 0 0.500000 1 1 0.889925 0.878373 0.896370 0.865577 0.883484 0.881836 0.927081 0.871725 0.874813 0.862161 0.500000 0.904550 0.881559 0.865756 0.500000 0.500000 +0.938419 +0.322017 0.344483 0.330072 0.527448 0.218702 0.730670 0.565715 0.174376 0.500000 0.500000 0 0.500000 0 0 0 1 0.500000 0.864466 0.873847 0.898303 0.885569 0.863775 0.500000 0.897233 0.885769 0.889970 0.895518 0.900350 0.878744 0.500000 0.500000 0.859802 +0.638616 +0.400574 0.648037 0.563173 0.643671 0.774225 0.599422 0.292226 0.435198 0 0 0 1 1 1 0.500000 1 0.901363 0.869849 0.829351 0.877244 0.500000 0.880587 0.500000 0.897793 0.500000 0.500000 0.871115 0.500000 0.888682 0.500000 0.904410 0.895074 +0.499172 +0.182401 0.214671 0.182456 0.330281 0.840905 0.499167 0.103299 0.351379 0 0 1 1 0.500000 0.500000 0 0 0.894414 0.871857 0.500000 0.878868 0.875763 0.852328 0.881556 0.500000 0.882425 0.887352 0.500000 0.863405 0.500000 0.500000 0.905229 0.500000 +0.611034 +0.837883 0.104065 0.415958 0.802276 0.856995 0.517913 0.759047 0.701245 0.500000 0 0.500000 0 0.500000 0 1 0.500000 0.895070 0.903145 0.903693 0.900363 0.903530 0.873180 0.875868 0.870964 0.873598 0.898118 0.889200 0.500000 0.915318 0.500000 0.500000 0.909108 +0.797670 +0.699689 0.675909 0.210567 0.805282 0.179051 0.714902 0.349669 0.284539 1 0.500000 0 0 0.500000 1 0.500000 0 0.887086 0.500000 0.887131 0.500000 0.856451 0.500000 0.875190 0.904258 0.500000 0.892043 0.500000 0.500000 0.500000 0.500000 0.851493 0.500000 +0.366106 +0.511055 0.705460 0.867108 0.887419 0.650248 0.123682 0.520158 0.894224 0.500000 0 1 1 1 1 0.500000 0 0.876063 0.854581 0.867531 0.921529 0.877195 0.845289 0.898694 0.905051 0.500000 0.908358 0.500000 0.500000 0.873075 0.500000 0.500000 0.893468 +0.660289 +0.223030 0.670273 0.677527 0.189519 0.648909 0.810135 0.140957 0.471933 1 0 0 0.500000 1 1 1 0.500000 0.500000 0.872383 0.855926 0.840038 0.880854 0.916506 0.864883 0.896258 0.911025 0.500000 0.867274 0.500000 0.500000 0.850670 0.500000 0.870166 +0.603363 +0.224486 0.332842 0.680414 0.720891 0.220257 0.453425 0.111296 0.347050 0 0 0 1 0.500000 1 0.500000 0 0.901543 0.872940 0.873917 0.500000 0.500000 0.875005 0.877158 0.858274 0.500000 0.896392 0.500000 0.500000 0.500000 0.500000 0.500000 0.895487 +0.443916 +0.884032 0.529102 0.821898 0.238739 0.686266 0.668794 0.625298 0.783235 1 0 1 0.500000 0 0.500000 1 0.500000 0.500000 0.500000 0.883528 0.500000 0.864022 0.880748 0.900782 0.877482 0.894837 0.500000 0.500000 0.879143 0.500000 0.881585 0.500000 0.912071 +0.412168 +0.585232 0.195487 0.152822 0.675801 0.784281 0.809804 0.174875 0.123157 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0 0.882071 0.500000 0.867758 0.860048 0.904812 0.893634 0.872585 0.500000 0.500000 0.500000 0.500000 0.867071 0.837195 0.500000 0.877145 0.889737 +0.523723 +0.383751 0.299461 0.434768 0.148143 0.442297 0.279284 0.525169 0.319607 0.500000 1 0 0.500000 0 0.500000 1 1 0.898606 0.903973 0.848472 0.866437 0.500000 0.869034 0.877499 0.863595 0.872705 0.500000 0.500000 0.883589 0.849750 0.892235 0.500000 0.500000 +0.611633 +0.643492 0.175091 0.561473 0.883434 0.868524 0.678298 0.354006 0.383882 0 0 1 1 1 1 0 0 0.500000 0.500000 0.500000 0.888422 0.870042 0.907309 0.906546 0.875744 0.500000 0.881610 0.891407 0.500000 0.500000 0.906694 0.500000 0.891771 +0.466783 +0.104464 0.723175 0.202406 0.431569 0.781731 0.360150 0.449431 0.182348 0 1 1 0 0.500000 0 0 0.500000 0.877656 0.886205 0.500000 0.857276 0.875246 0.857501 0.500000 0.884386 0.894521 0.874652 0.500000 0.500000 0.500000 0.864133 0.500000 0.500000 +0.543586 +0.419559 0.525744 0.371906 0.417032 0.449727 0.365698 0.878788 0.390260 1 1 0 1 0 0 0 0.500000 0.893313 0.894153 0.909839 0.881591 0.853588 0.500000 0.877081 0.912935 0.897084 0.500000 0.500000 0.879548 0.500000 0.862725 0.858433 0.500000 +0.713306 +0.787701 0.692376 0.166199 0.703485 0.468614 0.195571 0.764073 0.369759 0 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.860217 0.863514 0.500000 0.891864 0.500000 0.853614 0.871658 0.500000 0.500000 0.500000 0.500000 0.872126 0.878371 0.500000 0.500000 0.871412 +0.373127 +0.192176 0.504231 0.407909 0.719282 0.379456 0.114835 0.625359 0.213123 0.500000 1 0 0.500000 1 1 0.500000 0 0.899710 0.881369 0.892101 0.875987 0.500000 0.500000 0.870191 0.500000 0.500000 0.500000 0.910416 0.500000 0.500000 0.500000 0.857958 0.854527 +0.461468 +0.440283 0.828258 0.738697 0.284088 0.464211 0.593593 0.722724 0.629598 0 1 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.872995 0.866813 0.877952 0.849832 0.834950 0.500000 0.902399 0.879360 0.883534 0.500000 0.891185 0.872412 0.500000 0.877310 0.904565 +0.624275 +0.379178 0.240658 0.133380 0.321885 0.524023 0.260202 0.612340 0.604794 0 0 0 0 0 0 1 0 0.500000 0.872981 0.864710 0.500000 0.876801 0.887668 0.893690 0.887252 0.500000 0.500000 0.904461 0.869936 0.889208 0.887593 0.864817 0.500000 +0.599820 +0.744509 0.357070 0.671324 0.738355 0.131487 0.506868 0.724831 0.833557 0 1 1 0.500000 0 1 0.500000 0.500000 0.894909 0.889314 0.500000 0.885222 0.901037 0.870939 0.500000 0.858651 0.867688 0.500000 0.883334 0.500000 0.879904 0.895852 0.500000 0.872999 +0.647011 +0.770541 0.281547 0.152677 0.647034 0.504641 0.103441 0.329055 0.227050 0 0 0.500000 0 1 0.500000 1 0 0.861521 0.914105 0.893942 0.904968 0.500000 0.882386 0.875725 0.914467 0.929431 0.848702 0.875921 0.867040 0.847256 0.904664 0.901582 0.912881 +0.956742 +0.707249 0.535862 0.838709 0.386015 0.757529 0.790951 0.108913 0.303814 1 1 1 1 0 1 1 0.500000 0.896120 0.853409 0.500000 0.500000 0.859294 0.500000 0.889519 0.880941 0.876630 0.892221 0.500000 0.877007 0.893471 0.882398 0.500000 0.500000 +0.491652 +0.118641 0.606610 0.301289 0.758101 0.804343 0.393759 0.509405 0.169058 1 0.500000 1 0.500000 0 0 0 0 0.874305 0.844863 0.894729 0.888383 0.878592 0.500000 0.882676 0.911511 0.899056 0.884303 0.875131 0.893609 0.855644 0.873504 0.850345 0.500000 +0.864691 +0.305941 0.541846 0.600961 0.556222 0.625812 0.619296 0.706539 0.596911 0.500000 0.500000 0 0 0.500000 0.500000 1 0.500000 0.872864 0.500000 0.844251 0.500000 0.500000 0.892517 0.500000 0.500000 0.891245 0.500000 0.500000 0.500000 0.862457 0.500000 0.876904 0.895945 +0.262101 +0.310904 0.759778 0.197066 0.295390 0.813568 0.230922 0.509413 0.301317 0.500000 0 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.882105 0.500000 0.906701 0.857172 0.898377 0.500000 0.870517 0.500000 0.500000 0.871320 0.852444 0.500000 0.500000 0.500000 0.899675 +0.371854 +0.232069 0.588465 0.132973 0.684293 0.314804 0.709929 0.771164 0.353942 0 1 0 1 0.500000 0.500000 1 1 0.914943 0.500000 0.500000 0.898585 0.859135 0.922517 0.852447 0.880397 0.500000 0.500000 0.500000 0.500000 0.500000 0.840387 0.880302 0.500000 +0.517387 +0.125369 0.884686 0.313380 0.781406 0.486018 0.711820 0.555433 0.167473 0.500000 1 0.500000 1 0 1 0 0 0.500000 0.901605 0.882267 0.500000 0.500000 0.899039 0.500000 0.884363 0.886844 0.883699 0.883594 0.500000 0.500000 0.877052 0.500000 0.875940 +0.449020 +0.428780 0.310226 0.564754 0.818746 0.867349 0.128330 0.241022 0.663638 0 1 1 0.500000 0 0.500000 0.500000 0 0.888392 0.500000 0.500000 0.904867 0.881380 0.878113 0.901801 0.500000 0.500000 0.500000 0.500000 0.500000 0.882867 0.500000 0.888353 0.500000 +0.373497 +0.189448 0.249302 0.613659 0.370624 0.480472 0.300927 0.271471 0.414202 1 0.500000 0.500000 1 1 1 1 0.500000 0.897250 0.500000 0.884636 0.500000 0.887249 0.870589 0.864766 0.867061 0.500000 0.849574 0.869955 0.876248 0.500000 0.893985 0.500000 0.860856 +0.584567 +0.263156 0.663146 0.899516 0.760056 0.866222 0.392724 0.708431 0.397347 1 0 0.500000 0 0.500000 0.500000 0.500000 0 0.856069 0.843752 0.909893 0.500000 0.885700 0.850267 0.853812 0.880432 0.500000 0.500000 0.500000 0.869618 0.888289 0.500000 0.500000 0.500000 +0.467280 +0.701883 0.748302 0.107537 0.373192 0.446343 0.279163 0.889718 0.897818 0 1 0 1 0 0 0 1 0.877303 0.873325 0.500000 0.500000 0.500000 0.893692 0.863083 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.926438 0.879708 0.500000 +0.242960 +0.896886 0.558632 0.334010 0.300665 0.673959 0.235649 0.748989 0.461881 1 1 1 1 0.500000 0 1 0.500000 0.906317 0.500000 0.851403 0.500000 0.897894 0.885778 0.879743 0.500000 0.500000 0.857791 0.500000 0.895234 0.891968 0.879809 0.500000 0.891913 +0.601511 +0.761594 0.310615 0.707486 0.515490 0.835987 0.234056 0.379651 0.190396 0 0.500000 0.500000 1 1 0.500000 0 0.500000 0.884551 0.881839 0.500000 0.500000 0.500000 0.867443 0.895572 0.884141 0.500000 0.500000 0.500000 0.500000 0.876401 0.880369 0.500000 0.884449 +0.395967 +0.772354 0.360183 0.201008 0.144735 0.763197 0.859991 0.474250 0.522294 1 0.500000 0.500000 0 0.500000 0 1 0 0.872062 0.876004 0.886616 0.500000 0.500000 0.500000 0.500000 0.887558 0.877581 0.500000 0.500000 0.500000 0.824342 0.898519 0.500000 0.500000 +0.359882 +0.434628 0.187698 0.434932 0.505141 0.511541 0.868376 0.590602 0.847437 1 0.500000 0 0.500000 1 0 1 0 0.888250 0.859766 0.879298 0.879255 0.500000 0.867891 0.894727 0.894977 0.886845 0.872978 0.886125 0.500000 0.873639 0.883783 0.853473 0.889038 +0.808945 +0.530751 0.536305 0.276909 0.615557 0.269196 0.577091 0.169991 0.440002 0 0 0 1 1 0 0 0 0.891956 0.875759 0.911410 0.866584 0.910053 0.500000 0.867945 0.886477 0.862213 0.887024 0.500000 0.860549 0.500000 0.500000 0.859535 0.875206 +0.631751 +0.430283 0.767435 0.872808 0.678660 0.837731 0.747196 0.725802 0.347999 0 0 0.500000 1 1 0 0 1 0.500000 0.849719 0.897023 0.500000 0.894209 0.880479 0.500000 0.896568 0.891039 0.500000 0.877638 0.852247 0.879343 0.500000 0.840801 0.500000 +0.491061 +0.180583 0.856500 0.194506 0.469054 0.396249 0.748843 0.407269 0.369927 1 1 0.500000 0 1 0.500000 1 0 0.500000 0.897390 0.898806 0.500000 0.889777 0.860990 0.500000 0.881361 0.890404 0.500000 0.909940 0.913771 0.500000 0.500000 0.888665 0.500000 +0.529054 +0.235221 0.765835 0.385779 0.794531 0.285165 0.171061 0.821493 0.625753 0.500000 1 0.500000 0 0.500000 1 1 1 0.915012 0.909578 0.500000 0.908393 0.882664 0.500000 0.879498 0.896398 0.897000 0.500000 0.500000 0.500000 0.901222 0.500000 0.500000 0.871496 +0.543528 +0.744268 0.312884 0.445139 0.853132 0.396157 0.817035 0.105222 0.673846 1 0.500000 0 0.500000 0 0 0.500000 0.500000 0.881153 0.500000 0.870098 0.866774 0.906638 0.900299 0.864569 0.878475 0.500000 0.500000 0.887632 0.875832 0.500000 0.500000 0.500000 0.907528 +0.539262 +0.687904 0.210533 0.224171 0.645667 0.717486 0.593913 0.504055 0.644732 0 0.500000 0.500000 1 1 1 1 1 0.500000 0.876676 0.849496 0.500000 0.500000 0.500000 0.500000 0.874728 0.500000 0.882980 0.883127 0.500000 0.890085 0.500000 0.500000 0.500000 +0.222994 +0.385259 0.841858 0.505338 0.620868 0.727635 0.762976 0.336900 0.875207 0 0.500000 0 1 1 0 1 1 0.890619 0.863288 0.500000 0.891071 0.895152 0.884086 0.901219 0.880721 0.500000 0.900109 0.914981 0.870114 0.860907 0.500000 0.500000 0.905493 +0.694305 +0.365465 0.172015 0.851944 0.426156 0.198060 0.194708 0.654266 0.445902 1 0.500000 1 0.500000 0.500000 0 0 1 0.885013 0.863871 0.867683 0.899004 0.500000 0.500000 0.500000 0.890939 0.876669 0.500000 0.500000 0.863973 0.933304 0.883184 0.500000 0.908844 +0.582146 +0.840785 0.877265 0.399729 0.845537 0.749490 0.874452 0.313664 0.746118 0 1 1 0.500000 0 1 0.500000 0.500000 0.500000 0.891773 0.836121 0.878265 0.885725 0.880642 0.832543 0.881181 0.500000 0.866724 0.500000 0.500000 0.899751 0.884970 0.903799 0.883994 +0.670553 +0.185482 0.792096 0.156353 0.828036 0.206120 0.461246 0.356013 0.504996 0.500000 0 0.500000 1 1 0.500000 0 0 0.500000 0.500000 0.890087 0.500000 0.930498 0.884889 0.890521 0.877652 0.500000 0.500000 0.860844 0.500000 0.500000 0.500000 0.863335 0.873664 +0.449578 +0.430866 0.165197 0.672252 0.332189 0.101765 0.163361 0.204325 0.689046 0 1 1 0.500000 1 1 1 0 0.884167 0.863192 0.500000 0.873551 0.881103 0.874535 0.885339 0.856423 0.500000 0.896124 0.878928 0.887896 0.500000 0.867688 0.906926 0.853524 +0.664278 +0.616896 0.375618 0.404289 0.689197 0.329697 0.612645 0.123270 0.806951 0 1 0 0.500000 0 0 0.500000 0.500000 0.500000 0.859949 0.880697 0.899412 0.855342 0.500000 0.911103 0.889386 0.894309 0.909468 0.872719 0.875454 0.892460 0.500000 0.871896 0.500000 +0.586773 +0.551449 0.395947 0.488576 0.493125 0.156935 0.198770 0.126659 0.156234 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.871005 0.867914 0.866246 0.894050 0.877286 0.500000 0.875214 0.871584 0.500000 0.883483 0.500000 0.895950 0.883887 0.879618 0.500000 0.890580 +0.673406 +0.529412 0.434216 0.469031 0.799458 0.688215 0.621918 0.775159 0.290704 0.500000 0 1 1 0 1 0.500000 0.500000 0.897573 0.849801 0.906957 0.907242 0.500000 0.865381 0.880395 0.882633 0.883940 0.500000 0.500000 0.500000 0.899435 0.870172 0.870128 0.922595 +0.761857 +0.377627 0.571660 0.894559 0.651048 0.760437 0.866188 0.629751 0.427024 0.500000 1 1 0.500000 0 1 1 1 0.500000 0.891019 0.867115 0.500000 0.500000 0.500000 0.892166 0.907168 0.500000 0.500000 0.873352 0.500000 0.500000 0.882791 0.500000 0.918331 +0.313465 +0.445927 0.502956 0.588426 0.270562 0.336365 0.689302 0.496603 0.204617 1 1 0 1 0 1 0.500000 0 0.500000 0.852023 0.902512 0.882244 0.882779 0.872419 0.500000 0.859172 0.500000 0.866245 0.868375 0.873754 0.500000 0.907724 0.903245 0.907270 +0.702439 +0.300009 0.848665 0.512901 0.525337 0.742716 0.626782 0.117328 0.131303 0.500000 0 1 1 0.500000 0.500000 0.500000 0 0.500000 0.898267 0.500000 0.896987 0.500000 0.897189 0.500000 0.500000 0.875488 0.863316 0.884465 0.500000 0.500000 0.873809 0.905058 0.500000 +0.367541 +0.473996 0.256247 0.543130 0.590389 0.469089 0.185111 0.157253 0.756195 1 0 0 0 0 0 0 0.500000 0.897710 0.867307 0.866832 0.500000 0.863305 0.876209 0.872619 0.889938 0.500000 0.898843 0.500000 0.908524 0.500000 0.867890 0.500000 0.500000 +0.590821 +0.594489 0.582925 0.627329 0.520506 0.341906 0.212834 0.503159 0.789039 1 0 0 0.500000 0 0.500000 0 0 0.904188 0.893191 0.880774 0.895388 0.892031 0.500000 0.872430 0.879536 0.841080 0.500000 0.500000 0.905548 0.500000 0.500000 0.902828 0.911346 +0.596269 +0.439420 0.728857 0.507483 0.671366 0.652245 0.882371 0.601937 0.155264 0 1 1 1 1 1 0.500000 0.500000 0.500000 0.875549 0.878852 0.867554 0.875893 0.872668 0.895630 0.905839 0.500000 0.500000 0.500000 0.500000 0.500000 0.881968 0.891906 0.500000 +0.648101 +0.629111 0.872622 0.759232 0.611363 0.182360 0.323140 0.808725 0.448497 0.500000 1 0 0 0 0.500000 0 0.500000 0.850425 0.500000 0.887494 0.879151 0.918790 0.868796 0.920215 0.500000 0.500000 0.875903 0.500000 0.500000 0.500000 0.885790 0.500000 0.500000 +0.423944 +0.548539 0.288033 0.371165 0.766574 0.811449 0.626327 0.471360 0.741791 0 0.500000 0.500000 1 0 1 0.500000 0.500000 0.890610 0.500000 0.875915 0.871596 0.897903 0.864092 0.500000 0.500000 0.859862 0.890581 0.500000 0.500000 0.885247 0.881773 0.905795 0.905660 +0.642718 +0.254160 0.659333 0.802910 0.310124 0.450529 0.233934 0.722418 0.272634 1 1 1 0.500000 0.500000 0 0 0.500000 0.886747 0.867726 0.882421 0.889487 0.500000 0.908297 0.872255 0.907521 0.878396 0.885277 0.500000 0.855678 0.500000 0.871341 0.873227 0.889731 +0.761463 +0.844957 0.589863 0.432342 0.173749 0.392447 0.859160 0.111225 0.754468 0.500000 0 1 1 0 1 1 0 0.500000 0.500000 0.500000 0.878192 0.500000 0.879917 0.500000 0.897621 0.870541 0.883104 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.175980 +0.699317 0.818276 0.172370 0.427321 0.580331 0.221198 0.268150 0.604106 0.500000 1 1 0 0.500000 1 0.500000 0 0.874908 0.843933 0.881381 0.904095 0.896143 0.500000 0.500000 0.857080 0.500000 0.500000 0.500000 0.500000 0.880287 0.814305 0.866058 0.870917 +0.516786 +0.548853 0.769661 0.700108 0.520500 0.236438 0.409601 0.365837 0.819862 0.500000 1 1 0 0.500000 0.500000 0 0.500000 0.919427 0.889600 0.872470 0.500000 0.500000 0.901877 0.500000 0.500000 0.500000 0.876117 0.888290 0.865710 0.893370 0.500000 0.500000 0.897719 +0.536204 +0.801333 0.204622 0.875726 0.134098 0.389834 0.131829 0.642814 0.769761 1 1 0 1 0 1 0 0 0.893332 0.500000 0.905342 0.873217 0.881632 0.917165 0.910364 0.916343 0.500000 0.500000 0.500000 0.864920 0.500000 0.906706 0.500000 0.866567 +0.703598 +0.312756 0.686376 0.121953 0.268926 0.833846 0.252593 0.723562 0.314427 1 0.500000 1 0.500000 0.500000 0 0 0.500000 0.897313 0.500000 0.500000 0.500000 0.500000 0.883326 0.908797 0.500000 0.500000 0.913249 0.500000 0.871979 0.500000 0.870939 0.500000 0.500000 +0.270007 +0.410787 0.302849 0.580752 0.898251 0.312766 0.859301 0.875690 0.319641 0.500000 1 0 0.500000 0.500000 0 0 0 0.500000 0.911284 0.500000 0.890076 0.872689 0.887244 0.879674 0.916209 0.500000 0.500000 0.901303 0.500000 0.871495 0.889245 0.500000 0.890293 +0.538679 +0.643486 0.870907 0.730438 0.665385 0.117968 0.480834 0.769318 0.525951 1 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.870572 0.500000 0.869172 0.899235 0.500000 0.877513 0.500000 0.869224 0.500000 0.500000 0.883158 0.500000 0.500000 +0.256566 +0.407877 0.186106 0.888716 0.848897 0.409932 0.325414 0.634428 0.638871 0 0.500000 0 0 0.500000 0.500000 1 1 0.885707 0.855038 0.860480 0.890124 0.883017 0.883364 0.897814 0.861021 0.863531 0.500000 0.876763 0.889386 0.882521 0.500000 0.500000 0.898471 +0.683369 +0.145639 0.750336 0.695416 0.851296 0.739413 0.315083 0.603196 0.510116 0 0.500000 1 0 0 0 1 0 0.887440 0.500000 0.500000 0.500000 0.500000 0.867825 0.500000 0.500000 0.876566 0.878125 0.500000 0.904421 0.871586 0.500000 0.915437 0.500000 +0.263831 +0.586589 0.594590 0.672376 0.816119 0.721229 0.294744 0.358412 0.834458 0 1 1 0 0 1 0 1 0.870822 0.500000 0.878535 0.884041 0.500000 0.878171 0.892151 0.867333 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.897504 0.902610 +0.391227 +0.216206 0.378181 0.290462 0.391829 0.867827 0.170237 0.579851 0.156406 0 0.500000 0.500000 1 0 1 0.500000 1 0.500000 0.886623 0.905186 0.500000 0.500000 0.907699 0.500000 0.883567 0.500000 0.500000 0.500000 0.859276 0.891022 0.500000 0.500000 0.500000 +0.302468 +0.499259 0.845438 0.683306 0.521198 0.776442 0.268392 0.671996 0.835994 0 0 1 0 0 1 0 1 0.853694 0.500000 0.500000 0.500000 0.877984 0.500000 0.500000 0.500000 0.871796 0.500000 0.898810 0.500000 0.500000 0.857729 0.500000 0.896905 +0.149960 +0.497685 0.791521 0.100373 0.767162 0.298608 0.503002 0.551121 0.491092 0.500000 0 0.500000 0.500000 0.500000 1 1 0.500000 0.903120 0.862746 0.853980 0.913692 0.867347 0.500000 0.500000 0.904170 0.500000 0.500000 0.500000 0.906717 0.500000 0.500000 0.871394 0.500000 +0.438908 +0.145300 0.657861 0.863976 0.244861 0.384019 0.809127 0.802440 0.415509 0.500000 0.500000 1 0 0 0 0.500000 1 0.500000 0.856475 0.500000 0.885813 0.888856 0.875694 0.862134 0.879141 0.898298 0.500000 0.500000 0.853321 0.500000 0.500000 0.500000 0.881648 +0.461838 +0.558747 0.665201 0.228655 0.811874 0.573761 0.208997 0.804528 0.306006 1 0 0 1 0.500000 0 0 1 0.875949 0.500000 0.898418 0.886678 0.897790 0.500000 0.500000 0.500000 0.500000 0.876432 0.500000 0.922687 0.500000 0.500000 0.500000 0.870967 +0.282771 +0.735790 0.214779 0.396401 0.116975 0.606610 0.291384 0.683876 0.510247 1 1 1 0.500000 1 0 1 0.500000 0.875413 0.882572 0.865139 0.500000 0.906808 0.500000 0.908559 0.876074 0.852151 0.500000 0.500000 0.869504 0.886911 0.895968 0.500000 0.500000 +0.617041 +0.663075 0.507315 0.250943 0.200766 0.867748 0.435835 0.481742 0.844487 1 1 1 0.500000 0 0 0 0.500000 0.500000 0.864489 0.500000 0.500000 0.500000 0.858050 0.881879 0.500000 0.500000 0.500000 0.500000 0.500000 0.889307 0.887087 0.881515 0.500000 +0.282926 +0.536995 0.679909 0.226444 0.450827 0.447474 0.103351 0.419611 0.607387 0.500000 0.500000 0.500000 1 0 1 1 0.500000 0.908250 0.500000 0.897598 0.873409 0.866874 0.894719 0.500000 0.865059 0.881568 0.500000 0.869337 0.900024 0.500000 0.913001 0.500000 0.500000 +0.532154 +0.322740 0.492329 0.380849 0.333673 0.243590 0.614243 0.583207 0.559872 0.500000 1 1 0.500000 0.500000 0 0 0.500000 0.500000 0.500000 0.500000 0.852513 0.500000 0.500000 0.500000 0.886092 0.881117 0.500000 0.867185 0.896699 0.500000 0.891125 0.912819 0.500000 +0.419103 +0.876260 0.295466 0.503704 0.351301 0.517629 0.790584 0.347225 0.813669 0 1 0.500000 0 0.500000 0.500000 0.500000 1 0.500000 0.881362 0.500000 0.853222 0.500000 0.500000 0.901523 0.872228 0.875490 0.863696 0.889837 0.880159 0.500000 0.866005 0.894869 0.895875 +0.582843 +0.733947 0.442825 0.352978 0.700122 0.746018 0.124111 0.528081 0.461118 0.500000 0 0.500000 1 0.500000 0 1 0 0.500000 0.500000 0.888588 0.500000 0.500000 0.883661 0.868802 0.888909 0.500000 0.500000 0.500000 0.500000 0.868774 0.886309 0.890090 0.906579 +0.383817 +0.646604 0.478717 0.399634 0.851663 0.500168 0.125923 0.596237 0.354043 0 0.500000 0.500000 0.500000 0 0.500000 1 0 0.500000 0.858682 0.500000 0.500000 0.894976 0.861433 0.500000 0.882946 0.500000 0.500000 0.884990 0.500000 0.882556 0.500000 0.886640 0.871367 +0.327787 +0.189265 0.371053 0.486517 0.298751 0.511345 0.769749 0.569807 0.138659 0 0.500000 0.500000 0 0.500000 0 0.500000 0 0.866548 0.895524 0.884528 0.900922 0.500000 0.500000 0.500000 0.500000 0.500000 0.907818 0.874302 0.885255 0.902002 0.870745 0.897123 0.500000 +0.549852 +0.451831 0.525628 0.835123 0.118445 0.507370 0.367931 0.809866 0.423170 0.500000 0.500000 0 1 0 0 1 0 0.864483 0.859682 0.871505 0.874368 0.864203 0.858088 0.880775 0.889744 0.871777 0.880635 0.500000 0.861736 0.500000 0.500000 0.500000 0.877191 +0.679140 +0.526868 0.864842 0.405602 0.355801 0.154122 0.130680 0.543231 0.688179 1 1 1 0.500000 1 1 0.500000 0.500000 0.500000 0.877639 0.916032 0.863587 0.896894 0.500000 0.867232 0.895422 0.500000 0.887215 0.500000 0.500000 0.857097 0.500000 0.862490 0.872280 +0.536747 +0.880264 0.400282 0.544673 0.118606 0.806178 0.827412 0.122267 0.733142 0.500000 0.500000 0.500000 0.500000 1 1 0 0.500000 0.832839 0.859624 0.500000 0.500000 0.500000 0.884996 0.868680 0.864797 0.848488 0.884557 0.500000 0.871555 0.500000 0.891120 0.500000 0.894938 +0.484485 +0.225841 0.711759 0.337705 0.803963 0.406784 0.225106 0.355300 0.520877 0 0.500000 0 1 0.500000 0 1 0.500000 0.871006 0.902877 0.500000 0.875189 0.867646 0.897602 0.882270 0.903098 0.500000 0.500000 0.888018 0.908814 0.890433 0.500000 0.902447 0.870107 +0.705623 +0.747215 0.246808 0.301918 0.133711 0.281475 0.549051 0.892750 0.655414 0.500000 0.500000 0.500000 0.500000 1 0 1 1 0.883792 0.916105 0.500000 0.881868 0.883463 0.500000 0.872294 0.866832 0.890039 0.905518 0.902753 0.500000 0.870079 0.500000 0.868997 0.500000 +0.624249 +0.703993 0.203464 0.615678 0.706938 0.113145 0.221005 0.224471 0.883813 1 0 1 0 0 0 0 1 0.885552 0.899465 0.500000 0.906728 0.890430 0.892054 0.873583 0.500000 0.883285 0.500000 0.882565 0.882257 0.500000 0.869924 0.912878 0.885629 +0.629603 +0.540725 0.172614 0.522710 0.579341 0.378680 0.676103 0.270313 0.146346 1 0 0.500000 0 0 0 0.500000 1 0.500000 0.500000 0.500000 0.861631 0.877672 0.869374 0.892100 0.500000 0.500000 0.879858 0.887857 0.500000 0.500000 0.862021 0.868077 0.880795 +0.347310 +0.539756 0.677468 0.809082 0.836652 0.211245 0.187791 0.402141 0.578911 0 0 0 0.500000 0.500000 0 0 0.500000 0.871359 0.890897 0.859669 0.500000 0.877996 0.874504 0.895721 0.892895 0.500000 0.500000 0.500000 0.500000 0.913748 0.892049 0.893523 0.500000 +0.550439 +0.536675 0.104677 0.305555 0.457248 0.366908 0.423917 0.173266 0.275707 0.500000 0.500000 0.500000 0.500000 0.500000 0 0.500000 0 0.896544 0.906473 0.892254 0.874711 0.877093 0.871385 0.874995 0.879119 0.882646 0.925588 0.831754 0.884225 0.882052 0.886965 0.897086 0.500000 +0.964378 +0.134171 0.818930 0.762690 0.334001 0.154919 0.724653 0.251097 0.382773 1 1 1 0 0 0.500000 0 1 0.878883 0.500000 0.872953 0.901256 0.500000 0.872442 0.892557 0.897898 0.911610 0.852029 0.500000 0.889830 0.877739 0.896380 0.889117 0.500000 +0.758950 +0.742687 0.142880 0.788502 0.556474 0.852646 0.221765 0.206529 0.125560 1 1 1 0.500000 1 1 0 0 0.500000 0.878338 0.500000 0.500000 0.881045 0.899303 0.500000 0.500000 0.873143 0.898989 0.500000 0.500000 0.873739 0.500000 0.850692 0.500000 +0.342119 +0.480724 0.534304 0.239531 0.400241 0.650004 0.824530 0.477780 0.641703 0.500000 0 1 0.500000 0.500000 0 0 0.500000 0.893345 0.877507 0.864537 0.878875 0.500000 0.882927 0.895885 0.870633 0.500000 0.860066 0.897927 0.860232 0.500000 0.500000 0.880770 0.500000 +0.637036 +0.132113 0.618984 0.262195 0.513991 0.439173 0.576806 0.174887 0.331351 0.500000 1 0.500000 0.500000 0 1 0 0 0.500000 0.500000 0.500000 0.500000 0.873593 0.862673 0.882063 0.500000 0.500000 0.500000 0.907521 0.500000 0.500000 0.500000 0.926944 0.894667 +0.314499 +0.181615 0.600968 0.663387 0.146437 0.571852 0.111065 0.472140 0.253690 1 0.500000 0 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.895994 0.892003 0.885140 0.891153 0.500000 0.901978 0.851250 0.872766 0.500000 0.500000 0.896581 0.500000 0.500000 0.500000 0.500000 +0.469910 +0.256582 0.577265 0.686541 0.491211 0.778961 0.203115 0.347592 0.577993 0 0.500000 1 1 0 1 1 1 0.900123 0.884224 0.890751 0.870487 0.880072 0.888677 0.894297 0.907474 0.907917 0.500000 0.840928 0.500000 0.500000 0.500000 0.907528 0.500000 +0.686268 +0.662720 0.132753 0.176698 0.360582 0.493919 0.693788 0.691242 0.311369 0.500000 1 0 0 0.500000 0 0 0.500000 0.500000 0.910437 0.891455 0.883866 0.867158 0.500000 0.500000 0.880589 0.500000 0.500000 0.858762 0.500000 0.858853 0.500000 0.500000 0.500000 +0.415600 +0.403553 0.307718 0.812868 0.476342 0.474645 0.755806 0.632389 0.761177 0.500000 0 1 1 0 1 1 0.500000 0.905141 0.500000 0.863504 0.872792 0.872888 0.891805 0.889914 0.500000 0.500000 0.852919 0.893609 0.500000 0.500000 0.872938 0.500000 0.862783 +0.513965 +0.205992 0.713671 0.471255 0.591133 0.170043 0.505198 0.662163 0.374275 0 1 1 1 1 0.500000 0.500000 0.500000 0.901010 0.500000 0.878127 0.921226 0.500000 0.500000 0.870119 0.897085 0.884153 0.500000 0.862544 0.895349 0.892908 0.500000 0.500000 0.500000 +0.519570 +0.330766 0.187724 0.875738 0.334291 0.221224 0.711486 0.546268 0.529480 1 0 0 0.500000 1 0 1 0 0.875268 0.911380 0.878621 0.888902 0.500000 0.919524 0.875632 0.875239 0.893878 0.500000 0.500000 0.885417 0.500000 0.500000 0.894640 0.500000 +0.657162 +0.640151 0.818244 0.419159 0.199843 0.564768 0.261433 0.496314 0.142645 1 0 0.500000 0.500000 0.500000 1 1 0.500000 0.876356 0.500000 0.889619 0.839439 0.876500 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.853930 0.865501 0.500000 0.915139 +0.284738 +0.570218 0.649218 0.411008 0.810388 0.387902 0.473903 0.287861 0.686077 1 1 0.500000 0.500000 0 0 0.500000 0.500000 0.500000 0.871138 0.877497 0.895152 0.844189 0.883462 0.889042 0.500000 0.893927 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.419488 +0.444580 0.263274 0.241001 0.308414 0.519144 0.659881 0.424107 0.173330 0.500000 0.500000 0 0 0 0 0 1 0.874897 0.866796 0.891616 0.878902 0.878807 0.867980 0.906146 0.500000 0.867972 0.862005 0.500000 0.500000 0.500000 0.500000 0.917579 0.500000 +0.660306 +0.693345 0.444039 0.760755 0.616814 0.595835 0.797470 0.875378 0.678359 0.500000 0 0.500000 0 0.500000 0 0.500000 0.500000 0.500000 0.870984 0.885465 0.500000 0.863856 0.881346 0.884960 0.889429 0.500000 0.868047 0.872177 0.871827 0.500000 0.500000 0.500000 0.500000 +0.405818 +0.194669 0.802555 0.736438 0.708516 0.221546 0.517403 0.200518 0.700406 1 1 0.500000 0.500000 0 0 1 0.500000 0.500000 0.915354 0.867251 0.949875 0.871608 0.872346 0.500000 0.874908 0.886944 0.895855 0.500000 0.877742 0.500000 0.500000 0.500000 0.885130 +0.544532 +0.270121 0.119966 0.471423 0.199121 0.434284 0.814085 0.124935 0.787210 0.500000 0.500000 0.500000 0 1 0 0.500000 0.500000 0.880431 0.879973 0.894857 0.500000 0.891737 0.500000 0.500000 0.856952 0.500000 0.882750 0.886311 0.500000 0.500000 0.863107 0.500000 0.500000 +0.447721 +0.709505 0.857533 0.754320 0.457230 0.864547 0.245625 0.419490 0.169970 1 1 0.500000 0.500000 1 0 0 0.500000 0.894187 0.500000 0.901495 0.876686 0.900138 0.911280 0.873906 0.915602 0.841523 0.500000 0.881971 0.853444 0.500000 0.500000 0.878691 0.500000 +0.709046 +0.288857 0.619099 0.592303 0.637151 0.801311 0.637740 0.299909 0.770047 1 0.500000 0 0 0.500000 0 1 1 0.886945 0.882736 0.881317 0.887619 0.890959 0.894207 0.892597 0.881512 0.500000 0.500000 0.899335 0.500000 0.500000 0.894465 0.891542 0.902164 +0.647767 +0.465252 0.490131 0.223444 0.420634 0.188428 0.705759 0.288106 0.797557 1 0 1 0 0.500000 0 0 0.500000 0.877892 0.863369 0.868095 0.883503 0.500000 0.500000 0.500000 0.874245 0.870356 0.500000 0.500000 0.500000 0.868812 0.500000 0.866242 0.500000 +0.372798 +0.802858 0.227679 0.396610 0.418161 0.235823 0.474868 0.506133 0.382935 0 1 1 1 0 0.500000 1 1 0.500000 0.500000 0.500000 0.904595 0.884214 0.500000 0.856008 0.893611 0.861915 0.500000 0.500000 0.887296 0.853152 0.500000 0.878955 0.839680 +0.522076 +0.856235 0.536575 0.818777 0.582305 0.599099 0.457770 0.341558 0.761853 1 0 0 0 0 0.500000 0.500000 0 0.911325 0.500000 0.871703 0.901007 0.868544 0.500000 0.902066 0.500000 0.889168 0.915076 0.860293 0.864937 0.874373 0.500000 0.500000 0.500000 +0.501940 +0.139741 0.819495 0.660509 0.574022 0.585596 0.714111 0.669441 0.294272 0.500000 0 1 0 0.500000 0.500000 0.500000 0 0.872284 0.500000 0.500000 0.851585 0.883824 0.878980 0.855527 0.872990 0.887132 0.900458 0.500000 0.880221 0.879680 0.500000 0.894471 0.500000 +0.547201 +0.701884 0.765870 0.183564 0.556020 0.424159 0.235057 0.409300 0.103572 0 0 1 0 0.500000 1 0 1 0.500000 0.500000 0.844221 0.902203 0.829017 0.892895 0.882084 0.876776 0.882283 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.885235 +0.466215 +0.697337 0.336234 0.888326 0.703210 0.644520 0.640206 0.142413 0.127334 0 0.500000 0 1 0 1 1 1 0.500000 0.880365 0.881553 0.892020 0.913879 0.884902 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.896987 0.873565 +0.358333 +0.650577 0.842205 0.740103 0.714526 0.443312 0.544688 0.377446 0.729137 0.500000 0 1 0.500000 0.500000 0.500000 0 1 0.500000 0.500000 0.881450 0.886433 0.878104 0.866442 0.500000 0.838697 0.500000 0.874458 0.883243 0.862379 0.911555 0.500000 0.500000 0.500000 +0.417520 +0.422991 0.610455 0.121222 0.771621 0.832237 0.402651 0.348836 0.681474 0 0 1 0.500000 0 0.500000 1 0 0.500000 0.500000 0.841011 0.885481 0.877448 0.500000 0.905463 0.893602 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.876176 0.500000 +0.327637 +0.300048 0.708296 0.538607 0.559829 0.443515 0.754406 0.298221 0.402100 1 1 0.500000 0.500000 1 0 1 0.500000 0.500000 0.915023 0.500000 0.500000 0.500000 0.903708 0.899263 0.500000 0.915684 0.907339 0.878339 0.500000 0.500000 0.883685 0.500000 0.500000 +0.352736 +0.700607 0.106141 0.114922 0.488120 0.836187 0.404059 0.825074 0.819711 0 1 0 0.500000 0.500000 0 0 0.500000 0.882453 0.871463 0.902038 0.886827 0.877354 0.886317 0.500000 0.870742 0.861327 0.500000 0.500000 0.500000 0.500000 0.877231 0.500000 0.500000 +0.513305 +0.103575 0.187858 0.726853 0.411370 0.491258 0.766231 0.652300 0.198162 0 0 0.500000 0 0 0 0 0.500000 0.915486 0.500000 0.910801 0.887700 0.500000 0.500000 0.862610 0.880610 0.854181 0.894808 0.500000 0.864009 0.500000 0.500000 0.500000 0.500000 +0.418394 +0.521948 0.580604 0.803599 0.695411 0.765094 0.729599 0.175822 0.847183 0.500000 0.500000 1 0 0.500000 0.500000 1 0.500000 0.882555 0.902599 0.500000 0.500000 0.875535 0.500000 0.883994 0.879382 0.500000 0.500000 0.848089 0.500000 0.876002 0.885346 0.500000 0.909539 +0.501839 +0.336468 0.814403 0.666326 0.738704 0.394665 0.535312 0.390070 0.898708 1 0 0.500000 0.500000 0.500000 0 0.500000 1 0.500000 0.866272 0.500000 0.857102 0.500000 0.922174 0.500000 0.885840 0.900346 0.889174 0.886763 0.892139 0.500000 0.500000 0.888476 0.883371 +0.550631 +0.448981 0.621781 0.868859 0.714373 0.271529 0.596123 0.841667 0.494267 0 0 0 1 0.500000 1 0.500000 0.500000 0.500000 0.847746 0.857567 0.500000 0.500000 0.871535 0.887932 0.893305 0.908170 0.883298 0.902730 0.500000 0.859339 0.500000 0.500000 0.857716 +0.418479 +0.253701 0.147147 0.498481 0.567337 0.240570 0.257408 0.863034 0.418553 0.500000 1 1 1 0.500000 1 0.500000 0.500000 0.872119 0.853693 0.500000 0.894620 0.908453 0.500000 0.500000 0.887403 0.882428 0.888192 0.500000 0.896569 0.500000 0.857551 0.500000 0.500000 +0.495616 +0.881115 0.305646 0.385813 0.559695 0.597153 0.547072 0.431739 0.439715 1 0 1 1 0.500000 0 0.500000 1 0.890912 0.500000 0.500000 0.895936 0.891980 0.892144 0.500000 0.879546 0.915722 0.876494 0.500000 0.500000 0.879285 0.858950 0.866542 0.500000 +0.524986 +0.283662 0.499577 0.588513 0.141732 0.683629 0.355347 0.513801 0.458837 1 1 0 0 0 0 1 0 0.903118 0.918428 0.867145 0.902398 0.500000 0.500000 0.876247 0.500000 0.500000 0.872697 0.500000 0.500000 0.880285 0.888918 0.889937 0.500000 +0.479008 +0.799324 0.838453 0.874569 0.673725 0.290702 0.421958 0.852144 0.588301 0.500000 0.500000 0 0 1 0 0 1 0.876343 0.885097 0.885670 0.855626 0.884282 0.500000 0.500000 0.897899 0.500000 0.500000 0.871139 0.890122 0.886947 0.874747 0.500000 0.875696 +0.531346 +0.299852 0.609626 0.581199 0.419662 0.652072 0.366754 0.230033 0.761987 0.500000 0 0.500000 0.500000 0.500000 0.500000 0 0 0.863514 0.869341 0.500000 0.878583 0.500000 0.500000 0.889528 0.864998 0.858854 0.889484 0.500000 0.500000 0.848212 0.858808 0.907097 0.871727 +0.574599 +0.173893 0.416155 0.112774 0.394308 0.128843 0.862570 0.606747 0.192655 0.500000 0 0 1 0.500000 1 0 0.500000 0.500000 0.888553 0.878750 0.894658 0.889214 0.500000 0.842586 0.872546 0.862424 0.884281 0.500000 0.866972 0.500000 0.881677 0.891139 0.500000 +0.653997 +0.235890 0.808615 0.185814 0.783361 0.541117 0.346445 0.498008 0.621287 0.500000 0 0 0.500000 0 0.500000 0.500000 1 0.885331 0.873288 0.891299 0.877345 0.863776 0.897670 0.916458 0.883222 0.911259 0.888404 0.896127 0.889802 0.500000 0.891121 0.500000 0.911612 +0.820336 +0.307406 0.368036 0.185463 0.474702 0.120278 0.107558 0.725210 0.805593 0.500000 1 1 1 1 1 0 0.500000 0.870357 0.500000 0.500000 0.868620 0.887145 0.895995 0.500000 0.876653 0.500000 0.500000 0.872380 0.500000 0.500000 0.500000 0.500000 0.877364 +0.384108 +0.341535 0.373646 0.873221 0.421701 0.534493 0.221338 0.235395 0.491501 1 1 1 1 0.500000 0.500000 0 0.500000 0.884511 0.500000 0.917388 0.858649 0.861896 0.843726 0.917729 0.500000 0.500000 0.500000 0.869779 0.872988 0.872767 0.893970 0.500000 0.500000 +0.625877 +0.861572 0.639189 0.647675 0.871427 0.680431 0.206673 0.148898 0.332886 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0 0.887781 0.912280 0.903659 0.897393 0.877039 0.500000 0.899272 0.500000 0.902496 0.500000 0.500000 0.500000 0.500000 0.500000 0.859289 0.500000 +0.487367 +0.587585 0.541017 0.265328 0.370654 0.189111 0.194393 0.163603 0.269736 1 0.500000 0 0.500000 0.500000 0.500000 0.500000 1 0.876400 0.879639 0.888726 0.862795 0.863686 0.500000 0.896470 0.893491 0.500000 0.500000 0.500000 0.911687 0.886943 0.500000 0.500000 0.867708 +0.612574 +0.358799 0.131015 0.564775 0.366337 0.428826 0.276384 0.577601 0.748399 0 1 1 0.500000 0.500000 0 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.886677 0.500000 0.871162 0.500000 0.900138 0.500000 0.500000 0.898800 0.881456 0.500000 0.900408 +0.269246 +0.596485 0.529061 0.122496 0.590609 0.167769 0.691485 0.387680 0.739341 1 0 0 1 1 1 0 0.500000 0.500000 0.855125 0.888093 0.500000 0.894362 0.870015 0.935125 0.500000 0.866378 0.859742 0.500000 0.885769 0.500000 0.915154 0.873577 0.500000 +0.514740 +0.889254 0.288166 0.198330 0.738022 0.129197 0.411668 0.709644 0.795363 1 1 0 0 0.500000 0 0 0 0.874495 0.870497 0.879836 0.500000 0.500000 0.878843 0.500000 0.877052 0.500000 0.869677 0.897191 0.870934 0.850195 0.500000 0.500000 0.895124 +0.469194 +0.688412 0.744976 0.204314 0.497055 0.611065 0.775043 0.741055 0.719101 0.500000 0.500000 0 0 0.500000 0 1 1 0.870843 0.500000 0.500000 0.898646 0.500000 0.856951 0.876366 0.896080 0.887308 0.500000 0.903608 0.899597 0.867502 0.500000 0.894149 0.500000 +0.452363 +0.242485 0.452030 0.665873 0.321261 0.434084 0.648314 0.415148 0.789252 0 0 1 0.500000 0 0.500000 0.500000 1 0.894288 0.865048 0.882817 0.900982 0.500000 0.500000 0.872356 0.500000 0.849629 0.500000 0.861762 0.875487 0.500000 0.865141 0.500000 0.883834 +0.514199 +0.637397 0.130854 0.267657 0.319017 0.327175 0.634840 0.358458 0.808774 0.500000 0.500000 0.500000 0 1 0 0 0 0.500000 0.500000 0.876611 0.899255 0.869387 0.874959 0.500000 0.910884 0.500000 0.919844 0.897876 0.850416 0.882913 0.500000 0.874004 0.500000 +0.548285 +0.735991 0.394162 0.876710 0.663709 0.765134 0.601002 0.434361 0.512079 0 0 0.500000 1 0 0 1 1 0.873108 0.898395 0.848571 0.500000 0.874994 0.861896 0.500000 0.851400 0.500000 0.886046 0.500000 0.500000 0.500000 0.889839 0.853246 0.881059 +0.392462 +0.562518 0.839119 0.879231 0.632116 0.179370 0.468307 0.637975 0.245996 0 1 0 0.500000 0 0.500000 0 1 0.844515 0.865308 0.868719 0.868991 0.910850 0.918226 0.500000 0.500000 0.500000 0.863181 0.868767 0.500000 0.500000 0.899848 0.885737 0.891299 +0.615543 +0.267942 0.309181 0.609175 0.196953 0.789763 0.140608 0.202232 0.706091 0 0 0.500000 0 1 0 0 1 0.915851 0.837831 0.897251 0.888346 0.890993 0.859650 0.500000 0.877436 0.910382 0.500000 0.500000 0.866088 0.500000 0.500000 0.861888 0.500000 +0.625596 +0.391008 0.679668 0.177519 0.565358 0.567669 0.209501 0.485940 0.186095 1 0 1 1 0 1 0 0.500000 0.877645 0.871717 0.895682 0.909713 0.500000 0.500000 0.865737 0.829912 0.500000 0.881879 0.907189 0.500000 0.854351 0.500000 0.878997 0.500000 +0.581394 +0.450366 0.696739 0.696392 0.467250 0.470339 0.381525 0.494068 0.793505 1 1 1 0 0.500000 0.500000 0.500000 0.500000 0.853706 0.500000 0.500000 0.500000 0.500000 0.877355 0.897345 0.885490 0.878008 0.877066 0.874061 0.500000 0.500000 0.862464 0.900822 0.500000 +0.517131 +0.257749 0.179690 0.249143 0.339921 0.452985 0.723040 0.339057 0.334619 0 0 0 1 1 0 0 0 0.864153 0.500000 0.500000 0.500000 0.885737 0.500000 0.894090 0.856564 0.500000 0.886255 0.500000 0.882594 0.500000 0.500000 0.500000 0.887203 +0.280134 +0.758602 0.416344 0.891513 0.666649 0.573053 0.299391 0.869253 0.130272 1 0.500000 1 0.500000 0 1 1 0.500000 0.912081 0.500000 0.500000 0.500000 0.900918 0.877896 0.500000 0.500000 0.894908 0.873015 0.854929 0.872125 0.500000 0.900766 0.500000 0.902071 +0.512170 +0.424790 0.444721 0.233656 0.848742 0.199074 0.434980 0.512397 0.855622 0.500000 0 1 0.500000 1 0.500000 0.500000 1 0.886323 0.500000 0.862919 0.500000 0.895773 0.894935 0.871180 0.901049 0.500000 0.872730 0.500000 0.915446 0.870616 0.876461 0.500000 0.869224 +0.684050 +0.633837 0.300052 0.773149 0.113334 0.207771 0.201968 0.276842 0.281623 0.500000 0.500000 1 0 1 0 0 1 0.859011 0.854855 0.898197 0.903221 0.874745 0.898043 0.872115 0.877075 0.864632 0.500000 0.500000 0.862421 0.891788 0.887284 0.841083 0.500000 +0.826788 +0.380377 0.390622 0.584871 0.523421 0.528197 0.802271 0.763649 0.440406 0.500000 1 0.500000 1 0 0 1 1 0.898944 0.903745 0.856362 0.869961 0.870700 0.500000 0.500000 0.500000 0.875896 0.500000 0.864404 0.915719 0.834681 0.500000 0.500000 0.500000 +0.515836 +0.847918 0.762153 0.109227 0.774504 0.493103 0.576373 0.894899 0.764504 0.500000 1 0 0 1 0.500000 0 1 0.872291 0.500000 0.872539 0.500000 0.500000 0.500000 0.500000 0.500000 0.867008 0.872363 0.920196 0.500000 0.500000 0.901194 0.900142 0.903280 +0.445809 +0.812243 0.367970 0.664958 0.156959 0.604057 0.584710 0.226723 0.331302 0.500000 0 1 0 0 0.500000 1 0 0.500000 0.870908 0.500000 0.880830 0.864076 0.500000 0.847658 0.500000 0.500000 0.909864 0.866220 0.897626 0.921257 0.500000 0.868707 0.892828 +0.592978 +0.828285 0.378971 0.768667 0.792732 0.448495 0.450218 0.622417 0.361595 1 0.500000 0 0 0 0 0.500000 0.500000 0.850823 0.884855 0.500000 0.839742 0.871256 0.500000 0.887864 0.890048 0.500000 0.839940 0.500000 0.905985 0.500000 0.500000 0.896626 0.893549 +0.487033 +0.362597 0.768035 0.569350 0.464704 0.880040 0.638666 0.664022 0.412420 0.500000 0.500000 0 1 0 1 0.500000 0.500000 0.877508 0.909807 0.864673 0.500000 0.880022 0.904204 0.500000 0.500000 0.500000 0.500000 0.876943 0.889314 0.896435 0.906459 0.893333 0.901723 +0.623369 +0.896319 0.634373 0.506725 0.732967 0.780896 0.716470 0.305775 0.160811 0.500000 0 1 1 0 0.500000 0.500000 1 0.500000 0.860308 0.862710 0.883309 0.852914 0.500000 0.916177 0.883452 0.500000 0.869054 0.500000 0.913239 0.860290 0.500000 0.500000 0.500000 +0.465238 +0.746021 0.179665 0.635917 0.849937 0.296458 0.362995 0.255136 0.264749 0 0.500000 0.500000 1 1 0 0.500000 0.500000 0.880009 0.877086 0.871025 0.864762 0.873572 0.887058 0.894631 0.873180 0.850004 0.500000 0.500000 0.893207 0.890968 0.500000 0.884597 0.878165 +0.852607 +0.337071 0.554510 0.644314 0.382479 0.516230 0.469082 0.868905 0.684175 1 0 1 0 0 0.500000 0.500000 0 0.887024 0.903176 0.895336 0.871222 0.891538 0.883947 0.889391 0.500000 0.902505 0.500000 0.500000 0.888721 0.500000 0.500000 0.500000 0.500000 +0.564816 +0.242867 0.464832 0.624873 0.832582 0.613780 0.798374 0.869078 0.395065 1 0 0 1 1 0 0 1 0.890741 0.500000 0.500000 0.908915 0.870401 0.863695 0.500000 0.889197 0.897074 0.895299 0.500000 0.870509 0.874372 0.868916 0.899111 0.850830 +0.633768 +0.355195 0.360934 0.810798 0.881919 0.217960 0.250265 0.811244 0.386800 0 1 0 0.500000 0.500000 1 0.500000 0 0.879240 0.878391 0.864192 0.500000 0.843391 0.909608 0.500000 0.877632 0.500000 0.500000 0.886224 0.500000 0.500000 0.884646 0.500000 0.895713 +0.486162 +0.827964 0.585444 0.565044 0.896152 0.227380 0.174090 0.537077 0.458420 1 1 1 1 1 0.500000 1 1 0.891630 0.891237 0.866122 0.873546 0.878122 0.500000 0.865351 0.885328 0.890657 0.873459 0.500000 0.500000 0.890012 0.500000 0.871288 0.861358 +0.678510 +0.506160 0.825068 0.720204 0.666138 0.774947 0.738265 0.221931 0.593060 0.500000 1 0.500000 0.500000 0 0.500000 0 0 0.897363 0.884088 0.874829 0.863268 0.862896 0.500000 0.500000 0.867577 0.500000 0.900940 0.500000 0.500000 0.500000 0.856505 0.868317 0.899480 +0.488149 +0.838169 0.110395 0.402412 0.342743 0.676012 0.333752 0.774555 0.540955 1 0 0.500000 0.500000 0 0.500000 0 0.500000 0.500000 0.889557 0.500000 0.873769 0.888678 0.895736 0.873112 0.870421 0.882203 0.884681 0.884644 0.500000 0.884347 0.500000 0.500000 0.910959 +0.560719 +0.433317 0.566023 0.542641 0.366140 0.310257 0.297304 0.186463 0.484861 0.500000 1 1 1 0 1 1 1 0.887258 0.876924 0.885200 0.500000 0.928418 0.500000 0.867098 0.500000 0.500000 0.500000 0.500000 0.885374 0.500000 0.843097 0.500000 0.500000 +0.441861 +0.552728 0.305866 0.882746 0.506835 0.176472 0.559508 0.652355 0.327810 1 0.500000 1 0.500000 0.500000 0 0 0 0.876111 0.861866 0.868922 0.883986 0.897885 0.500000 0.869941 0.882062 0.866380 0.500000 0.893158 0.500000 0.500000 0.500000 0.500000 0.500000 +0.541639 +0.288632 0.838944 0.324939 0.653078 0.486832 0.783429 0.887410 0.507508 0 0 1 0.500000 0 0.500000 1 0 0.846239 0.844340 0.883280 0.862814 0.863392 0.871493 0.906644 0.500000 0.500000 0.500000 0.853494 0.500000 0.881492 0.921689 0.500000 0.868789 +0.563431 +0.748907 0.672826 0.387168 0.125802 0.153392 0.655352 0.299731 0.177982 0 0 1 0 1 0.500000 1 0 0.833251 0.500000 0.887331 0.869180 0.500000 0.902976 0.892445 0.880004 0.500000 0.881785 0.899460 0.500000 0.500000 0.500000 0.500000 0.904256 +0.395619 +0.520939 0.428087 0.652379 0.737047 0.555017 0.376841 0.162170 0.195436 1 0 0 0.500000 1 1 1 1 0.500000 0.887297 0.916072 0.875805 0.876758 0.920162 0.879393 0.912253 0.500000 0.500000 0.857282 0.500000 0.500000 0.878443 0.500000 0.891959 +0.604644 +0.349030 0.744288 0.640628 0.826786 0.786089 0.796002 0.204083 0.615276 0 0.500000 0 0.500000 0.500000 0.500000 1 0 0.853816 0.500000 0.911164 0.889626 0.891368 0.897953 0.871646 0.865497 0.500000 0.886751 0.886112 0.500000 0.923990 0.500000 0.500000 0.885696 +0.590208 +0.498653 0.253865 0.512823 0.816825 0.571610 0.857269 0.317551 0.485132 0 0 0 0 1 0 0 1 0.869541 0.865626 0.875698 0.903652 0.500000 0.500000 0.895236 0.500000 0.500000 0.875449 0.891942 0.500000 0.853487 0.878954 0.886439 0.500000 +0.425815 +0.616027 0.168169 0.214987 0.691639 0.577470 0.130049 0.339540 0.453463 1 0 1 1 1 0.500000 1 1 0.500000 0.889702 0.500000 0.880230 0.869541 0.890275 0.891589 0.897400 0.891949 0.879008 0.852302 0.500000 0.500000 0.500000 0.500000 0.500000 +0.480123 +0.882723 0.126123 0.747075 0.289731 0.108417 0.772099 0.870863 0.800838 1 0 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.905590 0.874751 0.870892 0.500000 0.874327 0.500000 0.905267 0.871580 0.917043 0.500000 0.861408 0.500000 0.500000 0.852494 0.876980 0.879964 +0.565542 +0.704635 0.607216 0.871950 0.659614 0.731296 0.685439 0.366470 0.264557 0 0.500000 1 0 0 0.500000 0.500000 1 0.500000 0.866823 0.886238 0.868057 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.891692 0.500000 0.500000 0.880200 0.500000 0.874670 +0.171532 +0.564475 0.131390 0.465734 0.597729 0.637851 0.562234 0.870732 0.187973 0 1 0 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.879404 0.913054 0.851719 0.500000 0.500000 0.884767 0.858336 0.871041 0.500000 0.898534 0.861539 0.500000 0.500000 0.928539 0.841282 +0.572994 +0.832376 0.344951 0.198992 0.660238 0.815913 0.451630 0.352044 0.198008 0 0 0 1 1 0.500000 0 1 0.892349 0.880471 0.867637 0.888163 0.500000 0.858096 0.876966 0.858064 0.500000 0.875723 0.858065 0.882477 0.876042 0.906426 0.500000 0.500000 +0.648015 +0.201091 0.740502 0.222795 0.722120 0.872618 0.683842 0.734158 0.787412 1 1 1 0 1 1 0.500000 0.500000 0.500000 0.893824 0.500000 0.852643 0.500000 0.500000 0.864951 0.500000 0.893275 0.918392 0.845123 0.500000 0.892277 0.884278 0.910182 0.852004 +0.619092 +0.331005 0.196240 0.805300 0.472697 0.812713 0.261358 0.837489 0.678649 1 0.500000 1 0.500000 1 1 1 1 0.877348 0.871563 0.500000 0.863151 0.500000 0.500000 0.500000 0.902196 0.910351 0.500000 0.882252 0.500000 0.500000 0.893574 0.500000 0.500000 +0.344563 +0.415864 0.824499 0.754596 0.298411 0.393211 0.104825 0.386883 0.144673 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.892823 0.867510 0.850048 0.500000 0.883720 0.884881 0.500000 0.865583 0.866850 0.873502 0.500000 0.895635 0.500000 0.500000 0.500000 0.500000 +0.477719 +0.409201 0.847813 0.592354 0.700888 0.827301 0.654550 0.429228 0.641009 1 0.500000 1 0 0 0.500000 0 1 0.500000 0.500000 0.500000 0.879644 0.882119 0.500000 0.871367 0.871527 0.500000 0.500000 0.500000 0.907423 0.877251 0.500000 0.500000 0.500000 +0.213894 +0.288778 0.891158 0.291792 0.352987 0.848447 0.850179 0.356177 0.865381 1 1 0.500000 1 0 0.500000 0.500000 1 0.855887 0.500000 0.892299 0.500000 0.891165 0.914496 0.883367 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.851788 0.893222 0.500000 +0.347796 +0.230458 0.710091 0.307770 0.888326 0.693323 0.885986 0.559563 0.775566 1 0.500000 0.500000 0.500000 0.500000 0 0 1 0.864110 0.864774 0.875791 0.500000 0.500000 0.876448 0.874204 0.871476 0.866672 0.500000 0.500000 0.867035 0.500000 0.500000 0.500000 0.500000 +0.437958 +0.330145 0.148794 0.174539 0.870346 0.103782 0.472164 0.655364 0.505295 1 0 1 0.500000 0 0 1 0.500000 0.500000 0.500000 0.894503 0.879458 0.500000 0.885858 0.861263 0.875570 0.500000 0.892061 0.500000 0.891880 0.500000 0.500000 0.500000 0.500000 +0.442059 +0.548048 0.838044 0.410855 0.643984 0.432105 0.190102 0.837361 0.132226 0 0.500000 1 1 0.500000 1 0 0 0.500000 0.500000 0.892794 0.848082 0.500000 0.880805 0.500000 0.874851 0.875407 0.500000 0.870049 0.500000 0.500000 0.500000 0.865314 0.500000 +0.283635 +0.614912 0.619826 0.813360 0.745013 0.841962 0.659422 0.701328 0.219351 0.500000 0 1 1 0.500000 0 0.500000 0 0.907422 0.861782 0.921757 0.884771 0.500000 0.866828 0.879588 0.873670 0.891545 0.836680 0.500000 0.880523 0.861091 0.846626 0.915582 0.500000 +0.647285 +0.462985 0.782092 0.824791 0.871002 0.737548 0.171413 0.346217 0.667363 0.500000 0.500000 0 0 0.500000 0 1 0.500000 0.888787 0.890124 0.879309 0.867991 0.500000 0.874113 0.500000 0.500000 0.862543 0.500000 0.500000 0.918470 0.500000 0.500000 0.868733 0.912033 +0.340658 +0.424496 0.300673 0.803051 0.272542 0.805416 0.820617 0.315879 0.381209 1 0.500000 0 1 1 1 1 1 0.500000 0.896225 0.865483 0.847526 0.901302 0.500000 0.500000 0.878733 0.882715 0.853266 0.885200 0.890607 0.500000 0.500000 0.893910 0.500000 +0.499661 +0.476528 0.402200 0.771013 0.217792 0.626136 0.463469 0.117497 0.566652 1 0.500000 0.500000 1 0.500000 1 0.500000 1 0.880127 0.875798 0.905455 0.500000 0.500000 0.881994 0.900146 0.851422 0.901085 0.500000 0.500000 0.872243 0.857421 0.861599 0.500000 0.863297 +0.667088 +0.877412 0.469856 0.276080 0.278860 0.594489 0.578067 0.568670 0.240722 0.500000 1 0.500000 0.500000 0 0 1 1 0.500000 0.894536 0.889816 0.829525 0.890849 0.886372 0.876563 0.898955 0.914936 0.500000 0.500000 0.866491 0.896298 0.893712 0.500000 0.500000 +0.635715 +0.750942 0.476877 0.674957 0.201710 0.743945 0.479049 0.369292 0.486901 0 0.500000 0 1 0.500000 0.500000 0.500000 0.500000 0.866638 0.868425 0.885495 0.910874 0.885973 0.900103 0.865060 0.500000 0.500000 0.500000 0.500000 0.873944 0.873377 0.500000 0.500000 0.885077 +0.573826 +0.160781 0.852613 0.467107 0.470868 0.474134 0.169546 0.166859 0.598071 1 1 0.500000 0.500000 0.500000 0 1 0.500000 0.885014 0.895318 0.917621 0.500000 0.500000 0.500000 0.892132 0.860008 0.500000 0.500000 0.500000 0.500000 0.500000 0.863523 0.864539 0.500000 +0.430542 +0.887850 0.700972 0.644431 0.759695 0.391645 0.170776 0.836713 0.441752 1 1 0.500000 1 0.500000 0 0 0 0.862028 0.500000 0.864223 0.863282 0.870591 0.909330 0.882984 0.862866 0.500000 0.874461 0.500000 0.500000 0.500000 0.500000 0.873206 0.881265 +0.528394 +0.481348 0.611846 0.295562 0.518603 0.363737 0.724295 0.625725 0.765207 0 0 0.500000 1 1 0.500000 0.500000 0 0.867814 0.870791 0.889509 0.500000 0.893851 0.500000 0.867961 0.500000 0.500000 0.500000 0.500000 0.500000 0.894374 0.500000 0.500000 0.876913 +0.329217 +0.581028 0.743477 0.620159 0.815331 0.273471 0.428452 0.384690 0.886950 1 0.500000 1 0.500000 1 0 1 1 0.878039 0.900747 0.870894 0.866028 0.500000 0.891558 0.500000 0.920202 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.894441 0.864033 +0.515758 +0.845346 0.725846 0.290897 0.508357 0.158299 0.739323 0.407580 0.804904 0 0.500000 0.500000 0 0 1 1 1 0.500000 0.905085 0.500000 0.500000 0.876163 0.889835 0.887685 0.857066 0.500000 0.847270 0.500000 0.882696 0.500000 0.883238 0.500000 0.869448 +0.398612 +0.368181 0.222087 0.818281 0.254384 0.438110 0.319623 0.107660 0.842585 1 1 0 0 0.500000 1 1 0 0.500000 0.911464 0.836648 0.500000 0.888061 0.861236 0.894744 0.912482 0.500000 0.500000 0.868862 0.500000 0.500000 0.500000 0.899411 0.870202 +0.574736 +0.364337 0.408090 0.563020 0.477567 0.269479 0.530865 0.853891 0.339609 1 1 0 1 1 1 0.500000 0.500000 0.898047 0.872294 0.856132 0.864092 0.890496 0.500000 0.882030 0.903342 0.500000 0.894967 0.895291 0.882469 0.883591 0.877918 0.863218 0.870434 +0.933075 +0.148621 0.481023 0.761155 0.139935 0.880750 0.562058 0.316265 0.462489 0.500000 0 0.500000 1 0 1 0 0 0.848632 0.869783 0.500000 0.892123 0.861893 0.875981 0.855423 0.500000 0.900507 0.900420 0.827797 0.860758 0.901948 0.889736 0.862968 0.500000 +0.794827 +0.104359 0.556388 0.209808 0.841294 0.631750 0.421839 0.451036 0.754327 0.500000 0.500000 0.500000 0.500000 1 0 0.500000 0.500000 0.500000 0.500000 0.869107 0.892334 0.876041 0.859904 0.500000 0.866549 0.913685 0.500000 0.878450 0.500000 0.877196 0.875775 0.890147 0.500000 +0.502261 +0.456421 0.871972 0.234848 0.884241 0.831490 0.655315 0.483201 0.557183 1 0 0 0.500000 0 0.500000 0.500000 1 0.882195 0.500000 0.887839 0.884986 0.911851 0.500000 0.866255 0.500000 0.500000 0.884087 0.880182 0.863907 0.500000 0.500000 0.500000 0.500000 +0.365889 +0.435936 0.584059 0.481401 0.714289 0.454838 0.657095 0.793149 0.248907 0.500000 0.500000 0 1 0.500000 1 1 1 0.879682 0.878533 0.500000 0.873276 0.873495 0.890953 0.880656 0.876688 0.500000 0.500000 0.923825 0.500000 0.500000 0.857995 0.500000 0.500000 +0.516933 +0.594518 0.256984 0.134233 0.246082 0.897697 0.589939 0.898993 0.775533 0 0 0.500000 0.500000 1 1 1 0 0.877198 0.887094 0.500000 0.500000 0.910063 0.896475 0.908713 0.860054 0.863969 0.500000 0.896532 0.895079 0.894771 0.891245 0.500000 0.897992 +0.679628 +0.687193 0.256098 0.440445 0.362648 0.821579 0.480525 0.381143 0.463428 0 0 1 1 1 0 1 0.500000 0.500000 0.908170 0.883911 0.839268 0.860857 0.869775 0.922989 0.500000 0.500000 0.883138 0.500000 0.906511 0.500000 0.879619 0.500000 0.500000 +0.577551 +0.828987 0.183215 0.289624 0.707376 0.264910 0.547214 0.430960 0.137897 0 1 0.500000 1 0.500000 1 0.500000 0.500000 0.884365 0.883841 0.893337 0.864665 0.896307 0.879393 0.500000 0.500000 0.896389 0.500000 0.856714 0.500000 0.891080 0.500000 0.883183 0.885868 +0.580750 +0.469423 0.199504 0.462488 0.439452 0.467531 0.390366 0.274482 0.623525 0.500000 1 0.500000 0 0 0 0.500000 1 0.888971 0.500000 0.878431 0.883066 0.500000 0.899656 0.882121 0.879934 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.865466 0.868995 +0.525080 +0.615585 0.737207 0.831592 0.763774 0.150971 0.772113 0.296808 0.644167 0 0.500000 0.500000 0.500000 0 1 0 1 0.500000 0.880339 0.864213 0.880409 0.500000 0.857701 0.865174 0.905068 0.881554 0.500000 0.865075 0.862583 0.852606 0.500000 0.500000 0.880439 +0.563510 +0.607977 0.862710 0.571381 0.199044 0.734443 0.786849 0.766120 0.371780 1 0 0.500000 1 1 0.500000 0 0.500000 0.903761 0.859304 0.854157 0.500000 0.872202 0.500000 0.899401 0.899005 0.500000 0.902037 0.878494 0.500000 0.877985 0.500000 0.856780 0.849580 +0.549756 +0.541545 0.344845 0.809721 0.385882 0.122669 0.291550 0.280013 0.773663 1 1 1 0 0 1 0 1 0.876514 0.500000 0.877744 0.887553 0.500000 0.872268 0.854026 0.890440 0.868111 0.500000 0.893972 0.500000 0.500000 0.855578 0.868192 0.861904 +0.568777 +0.387820 0.697570 0.262899 0.343084 0.818914 0.489469 0.297202 0.870879 0 0 0.500000 1 0.500000 0.500000 0 1 0.898293 0.888202 0.500000 0.853008 0.500000 0.500000 0.902961 0.887199 0.882714 0.876098 0.500000 0.500000 0.500000 0.500000 0.893584 0.892247 +0.432116 +0.834609 0.281358 0.182829 0.201620 0.828077 0.893169 0.490131 0.227069 0.500000 0.500000 0 1 0.500000 0 0 0 0.892679 0.892028 0.858743 0.891696 0.829715 0.873905 0.500000 0.500000 0.500000 0.500000 0.885510 0.900995 0.870780 0.895184 0.848048 0.500000 +0.550513 +0.559211 0.454748 0.757813 0.762150 0.848544 0.883110 0.231677 0.386710 0.500000 1 0.500000 0 0 0 1 0.500000 0.884439 0.884783 0.500000 0.864699 0.886685 0.835772 0.500000 0.500000 0.883199 0.860727 0.891484 0.877809 0.500000 0.500000 0.890574 0.500000 +0.434873 +0.690620 0.245109 0.545688 0.375357 0.830275 0.239699 0.818260 0.693075 1 0.500000 1 0.500000 0 0 1 1 0.842417 0.500000 0.893059 0.888771 0.500000 0.843430 0.500000 0.500000 0.500000 0.864531 0.500000 0.855479 0.897453 0.500000 0.500000 0.500000 +0.337648 +0.247965 0.543245 0.122482 0.350233 0.168759 0.531861 0.790988 0.739518 0.500000 1 0 0 1 0 1 0 0.873412 0.897898 0.500000 0.843590 0.500000 0.848865 0.877796 0.500000 0.500000 0.848617 0.913863 0.841512 0.500000 0.500000 0.500000 0.500000 +0.465436 +0.310681 0.221867 0.318068 0.366604 0.109040 0.841051 0.551018 0.366799 0 0 0 0.500000 1 1 1 1 0.500000 0.883691 0.500000 0.874705 0.883922 0.885910 0.894588 0.894142 0.500000 0.500000 0.895667 0.500000 0.857417 0.500000 0.500000 0.893566 +0.506380 +0.708619 0.357722 0.439404 0.467256 0.577992 0.110109 0.396395 0.817800 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.888776 0.500000 0.908339 0.853993 0.864333 0.878309 0.500000 0.873890 0.891690 0.879746 0.891873 0.500000 0.851192 0.888198 0.868981 +0.637638 +0.663660 0.725865 0.614752 0.342030 0.706532 0.481782 0.715865 0.536034 0.500000 1 0 0 1 1 0.500000 0 0.903017 0.500000 0.911355 0.853778 0.500000 0.500000 0.874181 0.877728 0.924630 0.896293 0.500000 0.500000 0.900380 0.900091 0.866661 0.872545 +0.624211 +0.590765 0.382246 0.604992 0.301613 0.602412 0.130366 0.862154 0.819496 1 1 0 0 1 0.500000 1 0.500000 0.886250 0.882654 0.500000 0.866541 0.875444 0.917887 0.884768 0.500000 0.905363 0.500000 0.500000 0.907836 0.858822 0.856620 0.500000 0.500000 +0.552045 +0.463582 0.427400 0.311859 0.818630 0.521795 0.402191 0.616220 0.210803 1 0 0.500000 0 1 1 0 0 0.500000 0.918123 0.885671 0.500000 0.893195 0.890931 0.870791 0.885646 0.884567 0.500000 0.500000 0.500000 0.883497 0.889396 0.892808 0.500000 +0.608314 +0.548446 0.331894 0.744442 0.844667 0.521498 0.224764 0.203256 0.329025 0.500000 0.500000 1 1 1 1 1 1 0.500000 0.500000 0.893381 0.863424 0.870396 0.500000 0.500000 0.500000 0.880614 0.861384 0.880210 0.500000 0.500000 0.901703 0.500000 0.881482 +0.332941 +0.578416 0.839486 0.650047 0.747937 0.378613 0.352844 0.851268 0.257052 0.500000 0 0.500000 0 0.500000 0.500000 1 0.500000 0.868057 0.869566 0.874298 0.884536 0.920577 0.872605 0.887896 0.500000 0.884297 0.500000 0.848517 0.500000 0.500000 0.878709 0.857255 0.913980 +0.673306 +0.520799 0.470966 0.522267 0.344046 0.175965 0.845132 0.335101 0.248467 0 1 0 0 1 0.500000 0 0 0.866806 0.870690 0.874346 0.914104 0.895976 0.881149 0.878359 0.882719 0.881748 0.887681 0.500000 0.500000 0.899840 0.890739 0.500000 0.500000 +0.779134 +0.526579 0.807860 0.306583 0.137690 0.751451 0.245280 0.223870 0.375713 0.500000 0.500000 0 1 1 1 0.500000 0 0.869064 0.500000 0.880633 0.902329 0.500000 0.879981 0.875166 0.898624 0.870175 0.500000 0.500000 0.908465 0.894484 0.500000 0.500000 0.500000 +0.498974 +0.738746 0.298882 0.305489 0.156961 0.637579 0.787364 0.635439 0.821548 1 0 1 1 0 1 0 0 0.500000 0.864216 0.890264 0.848853 0.854085 0.845806 0.874157 0.861575 0.500000 0.871762 0.500000 0.500000 0.500000 0.500000 0.500000 0.869330 +0.591227 +0.642891 0.475657 0.159063 0.769397 0.259965 0.629307 0.162270 0.279877 1 1 0 0.500000 0 0.500000 1 0 0.861796 0.882376 0.859708 0.903599 0.915395 0.843412 0.877695 0.500000 0.500000 0.882133 0.500000 0.894002 0.890925 0.907032 0.500000 0.944254 +0.789928 +0.885005 0.875858 0.748316 0.345164 0.576131 0.837377 0.397928 0.181688 0 0.500000 1 0.500000 0.500000 0 0.500000 1 0.884694 0.865307 0.895323 0.897993 0.500000 0.891277 0.861464 0.500000 0.500000 0.500000 0.874859 0.500000 0.928072 0.877028 0.893190 0.500000 +0.586214 +0.832071 0.819431 0.375386 0.512311 0.209916 0.256780 0.705081 0.890671 0 0.500000 0.500000 0.500000 0 0.500000 0 0.500000 0.884634 0.917515 0.884259 0.500000 0.500000 0.854916 0.500000 0.500000 0.879501 0.500000 0.500000 0.500000 0.500000 0.500000 0.884533 0.500000 +0.234712 +0.360387 0.420593 0.308354 0.303351 0.212513 0.702613 0.222328 0.863149 1 0.500000 1 1 0.500000 0 0 0.500000 0.879878 0.500000 0.889726 0.894967 0.842254 0.500000 0.860991 0.889674 0.500000 0.500000 0.908609 0.885978 0.875933 0.500000 0.500000 0.915058 +0.623474 +0.525038 0.509659 0.443220 0.592920 0.601424 0.337242 0.231395 0.462012 0.500000 1 0.500000 0.500000 0 0.500000 0.500000 0 0.500000 0.867863 0.867737 0.896850 0.500000 0.871878 0.500000 0.874736 0.890245 0.865392 0.895940 0.884380 0.879215 0.500000 0.500000 0.500000 +0.513150 +0.477341 0.473114 0.622435 0.660074 0.468976 0.687366 0.769154 0.173185 0.500000 1 0.500000 1 0.500000 1 1 1 0.500000 0.904568 0.887921 0.867607 0.500000 0.874452 0.872850 0.500000 0.500000 0.500000 0.892626 0.500000 0.500000 0.869254 0.872753 0.883678 +0.490575 +0.834716 0.466121 0.691418 0.866199 0.805682 0.491271 0.193985 0.507165 0 0 0 0 0.500000 1 0 0.500000 0.876914 0.870610 0.500000 0.500000 0.880680 0.900665 0.868647 0.899357 0.884948 0.500000 0.500000 0.500000 0.899005 0.889270 0.500000 0.921509 +0.427163 +0.433410 0.527671 0.771966 0.234193 0.289901 0.567002 0.201834 0.417037 0.500000 0.500000 1 0 0.500000 0 1 0 0.901483 0.891602 0.884991 0.500000 0.884018 0.891742 0.874500 0.500000 0.877483 0.500000 0.500000 0.903870 0.500000 0.882474 0.500000 0.500000 +0.501243 +0.160572 0.529714 0.699455 0.735977 0.172951 0.587436 0.430399 0.310885 0.500000 0.500000 0.500000 0 1 0 0.500000 0.500000 0.500000 0.877546 0.500000 0.897287 0.859426 0.864621 0.867650 0.876307 0.500000 0.860039 0.890790 0.892649 0.882119 0.500000 0.500000 0.862542 +0.667847 +0.144849 0.273539 0.771314 0.479587 0.616456 0.170620 0.610660 0.357549 1 1 1 0 1 1 1 0.500000 0.875146 0.915249 0.894983 0.500000 0.877751 0.890622 0.881002 0.944683 0.855222 0.500000 0.893405 0.500000 0.500000 0.500000 0.500000 0.500000 +0.684449 +0.271284 0.466161 0.561324 0.774713 0.798840 0.707963 0.538439 0.137678 0.500000 0 0.500000 1 0 0.500000 0 1 0.910268 0.865337 0.870789 0.848080 0.884291 0.859889 0.894850 0.885073 0.500000 0.500000 0.867770 0.904122 0.500000 0.878547 0.500000 0.886951 +0.743202 +0.563664 0.109444 0.419946 0.626827 0.877156 0.156387 0.602911 0.530195 1 0 0.500000 0.500000 1 1 1 0.500000 0.891506 0.898998 0.500000 0.915506 0.837543 0.500000 0.896669 0.898156 0.895449 0.500000 0.890215 0.875017 0.500000 0.870868 0.892613 0.500000 +0.670897 +0.887852 0.720507 0.162751 0.350579 0.382374 0.357801 0.158842 0.265114 1 0 0.500000 0.500000 0 1 1 1 0.500000 0.500000 0.871340 0.881678 0.868026 0.879248 0.885436 0.500000 0.500000 0.900232 0.500000 0.914809 0.872155 0.500000 0.895713 0.908990 +0.585978 +0.718225 0.206829 0.381870 0.696494 0.573023 0.594340 0.472708 0.207621 1 1 0.500000 1 0.500000 0.500000 1 0.500000 0.888505 0.860031 0.500000 0.894420 0.500000 0.903000 0.500000 0.500000 0.847377 0.500000 0.500000 0.894086 0.852674 0.894840 0.868816 0.500000 +0.451751 +0.349992 0.107174 0.670866 0.244013 0.533215 0.344216 0.637173 0.366333 0 0 0 0 1 0 1 0.500000 0.884097 0.500000 0.915219 0.500000 0.855127 0.500000 0.903160 0.885974 0.864108 0.500000 0.500000 0.889117 0.909085 0.867527 0.890585 0.877520 +0.556076 +0.530653 0.477778 0.620227 0.362583 0.534759 0.701421 0.190229 0.570748 1 1 0.500000 0.500000 0.500000 0 0 0.500000 0.882317 0.874253 0.876598 0.500000 0.866676 0.860016 0.901191 0.880803 0.874715 0.500000 0.879748 0.893662 0.887598 0.901010 0.500000 0.500000 +0.731018 +0.437561 0.688646 0.674833 0.526489 0.899731 0.385268 0.201071 0.404870 1 1 0.500000 0 0 1 0.500000 0.500000 0.881358 0.500000 0.898799 0.500000 0.886862 0.892873 0.500000 0.862786 0.886921 0.500000 0.904933 0.500000 0.899643 0.889995 0.883474 0.500000 +0.566237 +0.183658 0.537798 0.568675 0.320000 0.837083 0.250605 0.115672 0.302750 0.500000 1 1 0 0 0.500000 0 0.500000 0.500000 0.859441 0.893018 0.882115 0.500000 0.907665 0.883294 0.500000 0.913754 0.500000 0.868944 0.870887 0.880912 0.500000 0.500000 0.922982 +0.620437 +0.734437 0.683246 0.321495 0.370766 0.471441 0.505665 0.506370 0.363345 0.500000 0 0.500000 1 0.500000 0.500000 0 0.500000 0.899640 0.887174 0.858923 0.894111 0.864748 0.899308 0.918333 0.907649 0.887848 0.884695 0.500000 0.500000 0.855395 0.891138 0.500000 0.500000 +0.810486 +0.853333 0.562485 0.292313 0.302279 0.603949 0.378873 0.713177 0.172712 0.500000 0 0 0.500000 1 0.500000 1 1 0.870738 0.864894 0.877218 0.893866 0.500000 0.870920 0.500000 0.854780 0.500000 0.875478 0.866701 0.856097 0.500000 0.869303 0.890512 0.500000 +0.601932 +0.331112 0.401145 0.639541 0.163133 0.372297 0.589222 0.854705 0.432769 0 0 0.500000 1 0.500000 0.500000 0 0.500000 0.874536 0.500000 0.889071 0.857781 0.870657 0.500000 0.873568 0.884675 0.500000 0.897964 0.500000 0.500000 0.500000 0.500000 0.869450 0.500000 +0.489710 +0.294656 0.487280 0.318576 0.101842 0.653422 0.661941 0.643451 0.277079 0 0 1 1 1 0.500000 0.500000 0.500000 0.883414 0.919520 0.500000 0.858526 0.874652 0.500000 0.500000 0.859571 0.500000 0.500000 0.888237 0.870658 0.500000 0.500000 0.500000 0.893955 +0.371235 +0.326821 0.280995 0.491046 0.406999 0.633619 0.641124 0.373508 0.153460 0 1 0.500000 1 0 1 1 1 0.848711 0.866088 0.899773 0.500000 0.500000 0.500000 0.890133 0.500000 0.883247 0.898768 0.891006 0.500000 0.500000 0.500000 0.895821 0.500000 +0.411679 +0.790268 0.637804 0.567733 0.480631 0.558085 0.739460 0.297319 0.447275 1 1 0 1 1 1 0.500000 0.500000 0.904231 0.868455 0.903716 0.933285 0.500000 0.866590 0.894372 0.889588 0.862112 0.888449 0.883865 0.881573 0.500000 0.869380 0.900088 0.500000 +0.760108 +0.485082 0.177499 0.229243 0.293204 0.881092 0.713914 0.551211 0.397624 1 0.500000 0 0 0 0.500000 1 0.500000 0.902781 0.895109 0.862094 0.874205 0.886646 0.500000 0.852270 0.500000 0.864497 0.500000 0.874554 0.500000 0.500000 0.500000 0.500000 0.500000 +0.479244 +0.743718 0.673887 0.612387 0.592702 0.150022 0.824339 0.461599 0.692583 0.500000 0 0.500000 0 1 0 0 0.500000 0.500000 0.857211 0.500000 0.873554 0.500000 0.500000 0.887446 0.500000 0.910702 0.857433 0.920155 0.845769 0.500000 0.500000 0.500000 0.500000 +0.312966 +0.408054 0.768203 0.195208 0.256023 0.786999 0.891420 0.691113 0.543076 0.500000 1 0 0 0 0 0 0 0.882776 0.500000 0.500000 0.863925 0.500000 0.904075 0.882613 0.500000 0.500000 0.909810 0.883112 0.899645 0.500000 0.886493 0.500000 0.888703 +0.315069 +0.431880 0.408306 0.199677 0.173278 0.478848 0.203446 0.314351 0.291634 1 1 1 0 1 0.500000 0 0 0.880418 0.500000 0.500000 0.893245 0.892743 0.875187 0.905250 0.880187 0.858479 0.877327 0.500000 0.904109 0.500000 0.500000 0.500000 0.500000 +0.453884 +0.263190 0.429876 0.319061 0.257131 0.206495 0.360133 0.156199 0.629732 0 0 0 0.500000 0 0 1 0 0.854185 0.500000 0.922464 0.873757 0.500000 0.874819 0.876185 0.890807 0.895926 0.500000 0.875903 0.500000 0.898784 0.874908 0.500000 0.900922 +0.654296 +0.783211 0.434330 0.792903 0.113309 0.584032 0.830427 0.391245 0.662720 0 1 1 1 0.500000 1 0.500000 1 0.500000 0.862737 0.870562 0.868042 0.903493 0.888872 0.880664 0.500000 0.500000 0.500000 0.867039 0.879331 0.885119 0.500000 0.886139 0.500000 +0.561701 +0.206475 0.832158 0.681034 0.730858 0.526410 0.373193 0.456329 0.121381 0 0.500000 1 0 0 1 0.500000 1 0.899371 0.500000 0.500000 0.865809 0.849033 0.907601 0.893892 0.887399 0.872841 0.870999 0.868562 0.889620 0.875963 0.500000 0.500000 0.500000 +0.572750 +0.216873 0.388215 0.136391 0.527990 0.531627 0.847500 0.131131 0.117266 1 0 1 0.500000 0 1 0 1 0.859266 0.894228 0.889270 0.927370 0.500000 0.879054 0.871353 0.863471 0.868957 0.500000 0.888753 0.500000 0.500000 0.903043 0.894450 0.500000 +0.696396 +0.833939 0.220790 0.623709 0.473014 0.552106 0.244408 0.763177 0.508531 1 0.500000 0 1 0.500000 0.500000 0 0.500000 0.861283 0.885556 0.873599 0.500000 0.873628 0.500000 0.866859 0.886111 0.500000 0.880989 0.500000 0.500000 0.500000 0.864358 0.885800 0.500000 +0.485878 +0.759374 0.600046 0.378064 0.721285 0.432030 0.523920 0.127844 0.880780 0 0 1 0 0.500000 1 0 0.500000 0.899350 0.500000 0.876947 0.500000 0.880519 0.862857 0.500000 0.883756 0.500000 0.500000 0.915505 0.500000 0.500000 0.500000 0.500000 0.500000 +0.305431 +0.427085 0.626036 0.385432 0.563416 0.740731 0.869706 0.554202 0.267847 0 1 1 0.500000 0.500000 1 0.500000 0 0.864962 0.500000 0.500000 0.866219 0.500000 0.892695 0.851439 0.849099 0.500000 0.500000 0.870031 0.836772 0.878278 0.500000 0.500000 0.500000 +0.415275 +0.859638 0.129778 0.584537 0.513692 0.219484 0.259786 0.824369 0.175898 0.500000 0.500000 1 0 1 0 0 0 0.865819 0.845797 0.854890 0.500000 0.896980 0.886136 0.890689 0.905601 0.870690 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.563162 +0.359551 0.773462 0.582841 0.810988 0.874370 0.544506 0.515000 0.603097 0.500000 1 0 0.500000 1 0 1 0 0.896598 0.885987 0.500000 0.849767 0.882608 0.500000 0.887268 0.500000 0.500000 0.900677 0.875091 0.500000 0.876838 0.867960 0.500000 0.500000 +0.403171 +0.493473 0.404478 0.667329 0.794706 0.821882 0.768842 0.526719 0.765895 0.500000 1 0 0.500000 1 0 0.500000 0 0.881947 0.500000 0.868478 0.893313 0.877700 0.913650 0.873206 0.863938 0.500000 0.500000 0.500000 0.500000 0.870763 0.500000 0.883767 0.500000 +0.544891 +0.713324 0.244461 0.855558 0.362826 0.612780 0.791772 0.308380 0.742328 0.500000 1 0 0 0.500000 0 0.500000 0.500000 0.879178 0.500000 0.900581 0.500000 0.871853 0.855294 0.890847 0.900597 0.864327 0.500000 0.500000 0.500000 0.500000 0.898023 0.895977 0.500000 +0.456266 +0.896736 0.447119 0.531643 0.330351 0.412025 0.298094 0.670260 0.456360 1 1 0.500000 0.500000 1 0 1 0.500000 0.865844 0.875155 0.876530 0.882650 0.841514 0.873849 0.879531 0.901523 0.500000 0.875883 0.500000 0.500000 0.500000 0.867878 0.895197 0.885131 +0.777742 +0.869478 0.714291 0.483163 0.718658 0.279931 0.195464 0.562768 0.242900 0 1 1 0 1 0.500000 1 0 0.869804 0.888604 0.500000 0.860930 0.500000 0.859538 0.500000 0.881090 0.500000 0.850426 0.500000 0.500000 0.500000 0.874994 0.865248 0.500000 +0.342087 +0.218194 0.192527 0.794507 0.672791 0.592389 0.474824 0.566842 0.713006 0.500000 1 0 1 0 0 0.500000 1 0.860779 0.859872 0.879329 0.916700 0.500000 0.854499 0.500000 0.899809 0.500000 0.870893 0.888915 0.912359 0.500000 0.500000 0.869260 0.861988 +0.583855 +0.641823 0.121721 0.369083 0.185396 0.147448 0.764346 0.157307 0.862489 1 1 1 0 0.500000 1 1 1 0.926099 0.500000 0.878308 0.859629 0.500000 0.857894 0.855214 0.867414 0.500000 0.896422 0.922741 0.886474 0.884761 0.500000 0.905257 0.500000 +0.721968 +0.221594 0.524872 0.122426 0.217192 0.149347 0.678802 0.823021 0.708115 1 0 0.500000 0 0 0 0 0 0.914970 0.500000 0.500000 0.875026 0.914454 0.500000 0.887366 0.847142 0.873379 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.414485 +0.854182 0.441220 0.589283 0.271820 0.683716 0.211283 0.835914 0.614683 1 1 0 1 0 1 0.500000 1 0.500000 0.856452 0.892806 0.867905 0.500000 0.500000 0.500000 0.867639 0.500000 0.902428 0.877681 0.500000 0.891505 0.871978 0.500000 0.500000 +0.402159 +0.642938 0.463309 0.627292 0.693507 0.776162 0.350294 0.389950 0.487688 1 0 0.500000 0.500000 0 1 1 0.500000 0.865949 0.863324 0.500000 0.872895 0.866426 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.895285 0.874666 0.893234 0.870004 +0.336601 +0.510008 0.706266 0.811529 0.372493 0.697071 0.679630 0.346858 0.239929 1 1 0.500000 0 0 0 0.500000 1 0.500000 0.897062 0.875691 0.500000 0.879431 0.870500 0.868535 0.500000 0.872975 0.500000 0.500000 0.886588 0.500000 0.500000 0.875121 0.500000 +0.369921 +0.804310 0.644216 0.346842 0.781270 0.610555 0.194374 0.646121 0.360437 0.500000 1 0 1 0 0 0.500000 0 0.500000 0.885133 0.871232 0.885624 0.866154 0.867510 0.877921 0.875249 0.500000 0.868299 0.868550 0.862988 0.891122 0.887584 0.886219 0.873972 +0.865333 +0.565803 0.844005 0.596377 0.311220 0.482599 0.835697 0.151247 0.605931 1 1 1 1 0.500000 0 1 0 0.904364 0.887845 0.894919 0.860016 0.500000 0.864749 0.873998 0.500000 0.858871 0.500000 0.867597 0.500000 0.500000 0.888201 0.881046 0.500000 +0.535015 +0.176708 0.536969 0.239973 0.624297 0.764456 0.406259 0.191402 0.285829 0 0 1 0 0 0.500000 0 1 0.500000 0.881883 0.908743 0.893143 0.500000 0.875597 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.870267 0.867455 0.500000 0.500000 +0.257009 +0.592863 0.451359 0.596834 0.785639 0.438277 0.729440 0.699129 0.860875 0 1 0.500000 0.500000 0.500000 0.500000 0.500000 0 0.861022 0.500000 0.874216 0.500000 0.500000 0.500000 0.887100 0.886672 0.868922 0.500000 0.875427 0.500000 0.500000 0.500000 0.878762 0.500000 +0.246399 +0.599599 0.860680 0.845017 0.807955 0.299205 0.140965 0.603128 0.178686 0 0.500000 0 1 0.500000 1 0.500000 1 0.885516 0.883611 0.875884 0.899866 0.870042 0.902302 0.880060 0.500000 0.896769 0.885369 0.500000 0.882922 0.500000 0.500000 0.894988 0.500000 +0.555883 +0.624862 0.659820 0.196029 0.464250 0.442606 0.677959 0.258789 0.861601 0 1 1 0 1 1 0.500000 1 0.500000 0.886245 0.878038 0.500000 0.849913 0.500000 0.869314 0.500000 0.893670 0.915717 0.500000 0.500000 0.500000 0.500000 0.879522 0.885734 +0.368656 +0.454432 0.236527 0.304926 0.291330 0.586173 0.810257 0.582244 0.368297 0.500000 0.500000 0.500000 0 0.500000 1 1 0.500000 0.500000 0.876404 0.879126 0.881241 0.848948 0.500000 0.500000 0.917289 0.878245 0.874589 0.846422 0.852561 0.500000 0.500000 0.500000 0.500000 +0.416401 +0.187122 0.353920 0.533806 0.675966 0.363550 0.782978 0.514472 0.523405 0 0.500000 0.500000 0.500000 1 1 0 0.500000 0.500000 0.898693 0.870417 0.500000 0.500000 0.868735 0.500000 0.883913 0.500000 0.500000 0.872590 0.902927 0.834843 0.500000 0.855697 0.500000 +0.322974 +0.500774 0.702288 0.362490 0.566155 0.361310 0.740164 0.142867 0.572062 0.500000 0.500000 0 1 1 1 0 0 0.500000 0.883955 0.500000 0.890486 0.886503 0.500000 0.886999 0.500000 0.881205 0.500000 0.868192 0.500000 0.500000 0.500000 0.879971 0.500000 +0.289828 +0.882120 0.389491 0.771865 0.134719 0.427512 0.586982 0.809907 0.303181 0.500000 0 1 0 0 0.500000 0.500000 1 0.882854 0.877526 0.500000 0.903586 0.500000 0.883528 0.869997 0.500000 0.500000 0.872115 0.500000 0.500000 0.875050 0.500000 0.500000 0.500000 +0.321591 +0.864189 0.625876 0.898671 0.166898 0.456043 0.114018 0.492667 0.455017 0.500000 0.500000 1 0 0 1 0.500000 0.500000 0.876484 0.500000 0.873537 0.848018 0.878114 0.500000 0.500000 0.849006 0.500000 0.885623 0.880621 0.500000 0.500000 0.874249 0.876093 0.500000 +0.383643 +0.726305 0.811272 0.853928 0.166495 0.880780 0.271743 0.183180 0.503491 1 0 0 0.500000 0 0 1 0 0.908101 0.500000 0.875215 0.886406 0.500000 0.884524 0.500000 0.500000 0.500000 0.500000 0.838240 0.500000 0.500000 0.850513 0.500000 0.851119 +0.227020 +0.235425 0.195757 0.684509 0.738194 0.622781 0.878391 0.122819 0.422898 1 0.500000 0 0.500000 0.500000 0 1 1 0.853390 0.500000 0.887760 0.878164 0.899933 0.500000 0.864360 0.882170 0.891985 0.500000 0.883962 0.892688 0.914626 0.500000 0.500000 0.500000 +0.603744 +0.700507 0.827955 0.435316 0.554577 0.172620 0.617089 0.419835 0.374381 0.500000 0 0.500000 1 0 0 0.500000 1 0.855206 0.882352 0.500000 0.500000 0.890289 0.500000 0.900987 0.500000 0.500000 0.888779 0.889392 0.500000 0.868913 0.886408 0.500000 0.889730 +0.443368 +0.839894 0.301883 0.355931 0.730573 0.537261 0.338491 0.420666 0.731133 0 0.500000 0 0.500000 0 0.500000 0.500000 0 0.897293 0.882306 0.500000 0.500000 0.500000 0.899448 0.873975 0.905206 0.500000 0.500000 0.500000 0.500000 0.873901 0.500000 0.857791 0.896465 +0.382606 +0.270239 0.506374 0.424816 0.883706 0.640808 0.653506 0.468434 0.362434 0.500000 0.500000 1 1 1 0 1 1 0.889067 0.500000 0.898001 0.901913 0.500000 0.874877 0.500000 0.907236 0.500000 0.500000 0.500000 0.500000 0.886025 0.874576 0.500000 0.841364 +0.504154 +0.672281 0.821550 0.791352 0.448463 0.712854 0.332653 0.695689 0.648449 0 1 0.500000 0 1 0.500000 0 0.500000 0.500000 0.894707 0.866972 0.891913 0.500000 0.906769 0.888400 0.878186 0.886446 0.500000 0.500000 0.883979 0.500000 0.895577 0.883811 0.500000 +0.537843 +0.516289 0.668090 0.794025 0.583374 0.166571 0.555508 0.620525 0.555638 0.500000 0.500000 0 0 1 0.500000 1 1 0.903391 0.887392 0.885614 0.500000 0.896313 0.866250 0.500000 0.887979 0.861430 0.500000 0.861964 0.500000 0.862912 0.500000 0.864860 0.500000 +0.513532 +0.454467 0.834230 0.298422 0.572028 0.680208 0.457285 0.182887 0.384456 0 0 0 0 1 0.500000 0 0 0.500000 0.500000 0.884715 0.895277 0.875195 0.899723 0.905751 0.885080 0.500000 0.500000 0.897657 0.500000 0.500000 0.889486 0.500000 0.896189 +0.495280 +0.404452 0.232896 0.889931 0.477173 0.850399 0.856691 0.204213 0.410116 0 0.500000 1 0 1 0 0 0 0.871306 0.922242 0.906025 0.500000 0.865443 0.847909 0.875611 0.871111 0.500000 0.500000 0.876430 0.910911 0.500000 0.500000 0.500000 0.500000 +0.517642 +0.799649 0.693964 0.457474 0.164457 0.220861 0.214607 0.694240 0.284837 0 0.500000 1 1 0.500000 0 0 1 0.908446 0.872892 0.500000 0.872531 0.878828 0.885281 0.500000 0.893562 0.904176 0.500000 0.500000 0.870313 0.500000 0.500000 0.500000 0.500000 +0.487713 +0.759673 0.820274 0.144884 0.857449 0.142612 0.281465 0.385498 0.868669 1 1 1 0 0.500000 0.500000 0.500000 1 0.500000 0.886068 0.857733 0.884082 0.880581 0.892462 0.898112 0.865626 0.500000 0.887445 0.500000 0.500000 0.500000 0.911854 0.867396 0.500000 +0.650086 +0.407248 0.814178 0.886960 0.130349 0.575609 0.852766 0.638696 0.357296 0.500000 0 1 0.500000 0 0.500000 0.500000 0 0.500000 0.886874 0.500000 0.500000 0.868564 0.914546 0.868014 0.500000 0.882142 0.500000 0.896729 0.500000 0.877279 0.851492 0.500000 0.500000 +0.335384 +0.726028 0.158753 0.353316 0.786305 0.421076 0.423867 0.128769 0.422215 0.500000 1 1 0 0 0 1 1 0.897809 0.856555 0.500000 0.894672 0.874957 0.859134 0.500000 0.500000 0.871328 0.500000 0.500000 0.883876 0.500000 0.500000 0.912023 0.873085 +0.427372 +0.699910 0.387524 0.522598 0.300186 0.619135 0.406855 0.605197 0.549147 0 0.500000 0.500000 0.500000 1 1 0 1 0.500000 0.912497 0.500000 0.882477 0.500000 0.909014 0.887428 0.500000 0.881395 0.879278 0.500000 0.895909 0.500000 0.500000 0.889066 0.500000 +0.421017 +0.891370 0.662194 0.102398 0.405401 0.174203 0.822312 0.796519 0.894990 1 1 0 0 1 0 0.500000 0 0.837611 0.835840 0.500000 0.500000 0.883255 0.871551 0.908761 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.299213 +0.607844 0.236841 0.782591 0.409538 0.101563 0.774818 0.172189 0.581843 1 1 1 1 0 0.500000 0.500000 0.500000 0.936759 0.898201 0.897754 0.860834 0.918779 0.850877 0.871958 0.916324 0.880005 0.895635 0.500000 0.913796 0.500000 0.500000 0.883037 0.876658 +0.798387 +0.309016 0.225936 0.707813 0.407147 0.713013 0.612408 0.139580 0.515253 1 0.500000 0 0 0.500000 0 0.500000 1 0.883934 0.860197 0.865496 0.898868 0.861439 0.866592 0.872516 0.883265 0.500000 0.877454 0.869125 0.500000 0.500000 0.885252 0.849526 0.500000 +0.706974 +0.670727 0.312407 0.416292 0.824565 0.257551 0.855818 0.740058 0.750616 0.500000 1 1 0.500000 0.500000 0 0 0 0.864481 0.876042 0.893897 0.883098 0.500000 0.905214 0.873770 0.845622 0.873234 0.500000 0.876281 0.500000 0.500000 0.500000 0.500000 0.866968 +0.587483 +0.821184 0.232300 0.460245 0.339531 0.290994 0.538108 0.176842 0.382649 0 0 1 0 0.500000 1 1 1 0.878011 0.878743 0.500000 0.828651 0.500000 0.864508 0.893895 0.500000 0.902386 0.500000 0.858398 0.500000 0.500000 0.500000 0.902856 0.884221 +0.425369 +0.519398 0.129084 0.119547 0.618292 0.639217 0.313438 0.148275 0.264366 0 0.500000 0.500000 0 1 0 0 0 0.884593 0.500000 0.500000 0.875626 0.500000 0.911754 0.858239 0.891175 0.500000 0.500000 0.500000 0.870357 0.875291 0.500000 0.500000 0.500000 +0.333162 +0.843200 0.664754 0.716737 0.801598 0.664444 0.305534 0.102288 0.149449 1 1 0 1 0.500000 0.500000 0 0 0.894892 0.500000 0.500000 0.902881 0.915214 0.845029 0.500000 0.500000 0.849890 0.500000 0.862900 0.907796 0.500000 0.500000 0.895865 0.500000 +0.383268 +0.400121 0.239673 0.386426 0.458847 0.833456 0.899962 0.257824 0.656177 0.500000 0 0 0 1 0.500000 0 0 0.906318 0.909819 0.500000 0.500000 0.870009 0.881349 0.886207 0.858738 0.864875 0.500000 0.500000 0.500000 0.500000 0.901606 0.500000 0.500000 +0.482715 +0.292634 0.897778 0.355095 0.287994 0.514125 0.306184 0.633440 0.830451 1 0 0.500000 0.500000 0 0 0.500000 0 0.879117 0.854210 0.500000 0.871177 0.883471 0.500000 0.891885 0.500000 0.500000 0.500000 0.500000 0.867639 0.876838 0.894595 0.863522 0.500000 +0.434045 +0.501568 0.454143 0.186595 0.295146 0.722493 0.735541 0.841584 0.701317 1 0.500000 1 0 1 0.500000 0.500000 1 0.883798 0.500000 0.868157 0.897296 0.891311 0.861378 0.863999 0.916721 0.891463 0.864746 0.500000 0.500000 0.500000 0.912091 0.500000 0.500000 +0.604018 +0.353002 0.300281 0.620511 0.321992 0.725866 0.636860 0.709974 0.740446 1 1 1 0.500000 1 1 1 1 0.925890 0.872283 0.500000 0.500000 0.888539 0.500000 0.874818 0.864245 0.500000 0.858572 0.903636 0.876282 0.500000 0.500000 0.898437 0.888246 +0.580430 +0.846603 0.254601 0.879094 0.729423 0.415652 0.456958 0.295400 0.190763 1 1 0.500000 0 1 1 0 0 0.900661 0.872334 0.883626 0.847794 0.867083 0.500000 0.500000 0.871469 0.500000 0.500000 0.885350 0.894923 0.873661 0.500000 0.848924 0.500000 +0.495127 +0.345366 0.763891 0.515734 0.144599 0.879313 0.407886 0.333611 0.807717 0 1 1 0 1 0.500000 0 0.500000 0.500000 0.892230 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.901199 0.856127 0.880656 0.500000 0.500000 0.867110 0.863741 0.899565 +0.393217 +0.345544 0.557433 0.183087 0.548949 0.786333 0.892699 0.596210 0.709969 1 0.500000 0 0.500000 0 1 1 0.500000 0.500000 0.500000 0.876512 0.500000 0.867580 0.834338 0.893353 0.886049 0.500000 0.500000 0.500000 0.500000 0.888820 0.890980 0.919073 0.500000 +0.346867 +0.177883 0.283625 0.686165 0.572369 0.810031 0.787049 0.137920 0.618279 0.500000 1 1 0 1 1 1 0.500000 0.852640 0.878294 0.883472 0.904786 0.894282 0.855162 0.500000 0.870064 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.912936 +0.654500 +0.199408 0.446111 0.392682 0.802580 0.362080 0.870046 0.670356 0.480018 1 0 1 0.500000 0.500000 1 0.500000 0 0.900723 0.838054 0.876189 0.871629 0.902377 0.854897 0.871126 0.879011 0.873347 0.892280 0.500000 0.869490 0.500000 0.500000 0.500000 0.500000 +0.674929 +0.497575 0.543941 0.616881 0.112025 0.611585 0.701945 0.193254 0.212089 1 0 1 0.500000 0.500000 1 1 0.500000 0.875656 0.866672 0.860831 0.864583 0.500000 0.906128 0.847496 0.906714 0.873753 0.885596 0.500000 0.862158 0.500000 0.500000 0.887732 0.860491 +0.696964 +0.468015 0.536614 0.675102 0.246449 0.665903 0.824753 0.228301 0.454386 0 1 0 0.500000 0 1 0.500000 0 0.855854 0.894393 0.887141 0.865011 0.890892 0.893287 0.500000 0.900492 0.500000 0.896896 0.500000 0.884938 0.863502 0.500000 0.873248 0.500000 +0.576041 +0.708959 0.477202 0.528828 0.214295 0.259801 0.276141 0.493927 0.835151 0.500000 0 1 1 1 0 1 0 0.856592 0.500000 0.899124 0.500000 0.890131 0.500000 0.905254 0.882114 0.500000 0.500000 0.891203 0.500000 0.890912 0.500000 0.500000 0.500000 +0.367925 +0.377216 0.860920 0.880556 0.511191 0.591668 0.359629 0.491717 0.492185 0 0.500000 0 1 1 0.500000 0.500000 1 0.888530 0.853473 0.872346 0.860771 0.860778 0.500000 0.500000 0.500000 0.881103 0.869852 0.500000 0.500000 0.500000 0.869564 0.863628 0.905830 +0.508684 +0.379503 0.113894 0.823068 0.707551 0.805002 0.264090 0.353201 0.447976 0.500000 1 1 1 0 1 1 0.500000 0.500000 0.862946 0.873345 0.859556 0.899860 0.868847 0.867415 0.500000 0.500000 0.857953 0.865192 0.500000 0.500000 0.500000 0.862797 0.886012 +0.589478 +0.641283 0.649651 0.479507 0.879762 0.758247 0.857503 0.250377 0.286436 1 0.500000 0 0.500000 0.500000 0 0 0 0.883687 0.828257 0.862459 0.888286 0.866657 0.886672 0.852199 0.876212 0.500000 0.922255 0.500000 0.500000 0.865442 0.500000 0.873170 0.500000 +0.618417 +0.417303 0.207586 0.290454 0.261485 0.584888 0.816959 0.437094 0.837727 1 0 1 0 0.500000 0 0 1 0.826457 0.882868 0.500000 0.500000 0.882334 0.894113 0.873617 0.858935 0.902222 0.500000 0.500000 0.500000 0.500000 0.856760 0.885231 0.500000 +0.471783 +0.767724 0.131174 0.833560 0.246864 0.439210 0.404449 0.179345 0.855770 1 0 0 0.500000 0 1 0.500000 0.500000 0.500000 0.864940 0.921384 0.888939 0.869388 0.915493 0.500000 0.896055 0.866819 0.500000 0.500000 0.500000 0.897033 0.500000 0.889619 0.905758 +0.606551 +0.882587 0.238619 0.271896 0.357191 0.314019 0.311521 0.729549 0.125140 0 1 0.500000 1 0.500000 1 0.500000 0.500000 0.924780 0.880634 0.873061 0.876403 0.873732 0.894440 0.865362 0.500000 0.886263 0.500000 0.500000 0.869322 0.862332 0.902445 0.500000 0.500000 +0.651263 +0.472255 0.594510 0.137172 0.848541 0.835325 0.314557 0.562855 0.896601 0.500000 0.500000 0 0 0.500000 0.500000 0.500000 0.500000 0.902868 0.890450 0.500000 0.868108 0.500000 0.874748 0.910521 0.890810 0.884309 0.500000 0.879665 0.500000 0.500000 0.500000 0.500000 0.500000 +0.426886 +0.719370 0.246499 0.715377 0.336278 0.829972 0.739705 0.418304 0.227467 1 0.500000 1 0 0 0 0 0 0.500000 0.876957 0.894038 0.888258 0.500000 0.859942 0.878952 0.870035 0.877300 0.500000 0.906556 0.500000 0.500000 0.886375 0.865753 0.881878 +0.566729 +0.308706 0.626272 0.347817 0.356639 0.639126 0.393857 0.560869 0.326040 1 1 1 0.500000 1 0.500000 0.500000 0.500000 0.880497 0.500000 0.876939 0.923386 0.894278 0.500000 0.500000 0.500000 0.903187 0.879171 0.500000 0.887999 0.871495 0.500000 0.857742 0.500000 +0.534053 +0.593833 0.756779 0.193270 0.486995 0.321606 0.634582 0.816921 0.588482 0.500000 0.500000 1 0.500000 0.500000 0 1 0 0.500000 0.500000 0.885050 0.500000 0.862161 0.890583 0.500000 0.879866 0.500000 0.500000 0.866910 0.500000 0.873304 0.903688 0.874881 0.884594 +0.490197 +0.233165 0.595854 0.317168 0.436178 0.649044 0.682412 0.696216 0.698758 0 0 1 1 0.500000 0 0.500000 0 0.890307 0.862165 0.878081 0.905697 0.500000 0.500000 0.500000 0.879687 0.500000 0.500000 0.887979 0.868624 0.500000 0.852013 0.500000 0.843865 +0.425252 +0.525808 0.662632 0.259799 0.238818 0.416523 0.704490 0.568638 0.496539 1 0 0 1 0 0 0.500000 1 0.887295 0.871388 0.882276 0.890632 0.889454 0.876822 0.895896 0.897696 0.863628 0.843206 0.500000 0.500000 0.500000 0.884240 0.500000 0.898022 +0.774145 +0.670267 0.572785 0.592993 0.231761 0.203690 0.410466 0.497351 0.776928 0.500000 0 1 0 0.500000 0.500000 0 1 0.500000 0.882515 0.894484 0.847926 0.862289 0.500000 0.879173 0.873655 0.500000 0.500000 0.500000 0.880323 0.500000 0.869322 0.856560 0.500000 +0.486832 +0.384697 0.200226 0.601406 0.831920 0.679204 0.387183 0.377191 0.452377 0 0.500000 0 1 0 1 1 0.500000 0.875220 0.923780 0.500000 0.500000 0.871855 0.882184 0.500000 0.500000 0.500000 0.500000 0.857683 0.880191 0.862942 0.890882 0.897994 0.872110 +0.499451 +0.154267 0.159929 0.125599 0.739830 0.123215 0.673434 0.202602 0.528693 0 1 1 1 0 0.500000 0.500000 1 0.897111 0.500000 0.876264 0.500000 0.873485 0.902831 0.886416 0.500000 0.860608 0.871602 0.886616 0.500000 0.894754 0.903499 0.894391 0.500000 +0.673566 +0.828276 0.226207 0.456273 0.781327 0.764840 0.459958 0.314267 0.488323 0 0.500000 0.500000 1 0 0.500000 1 0 0.925795 0.500000 0.876350 0.500000 0.500000 0.500000 0.500000 0.902512 0.500000 0.500000 0.894942 0.885093 0.500000 0.861548 0.500000 0.913015 +0.291630 +0.344838 0.691167 0.651467 0.613248 0.659352 0.321900 0.779908 0.114493 0.500000 0 1 0.500000 1 1 0 0 0.500000 0.500000 0.875741 0.500000 0.908247 0.892580 0.897492 0.888264 0.500000 0.887792 0.871154 0.500000 0.871206 0.864987 0.877390 0.894100 +0.576941 +0.503481 0.599227 0.207849 0.718407 0.869419 0.528206 0.153238 0.474967 0.500000 0.500000 1 1 0 1 0 0 0.885769 0.891820 0.897042 0.888232 0.884541 0.874069 0.880389 0.874886 0.500000 0.500000 0.883370 0.500000 0.500000 0.500000 0.500000 0.905417 +0.749153 +0.504127 0.269747 0.239299 0.491207 0.723576 0.536496 0.279848 0.402740 0 0.500000 0.500000 0.500000 0 0.500000 0.500000 0 0.883431 0.858217 0.862937 0.500000 0.859306 0.840121 0.500000 0.894638 0.883732 0.500000 0.869608 0.917946 0.849587 0.898249 0.500000 0.500000 +0.655067 +0.379374 0.346504 0.684631 0.401012 0.805908 0.288857 0.622311 0.175411 0 0 1 0.500000 1 0 1 1 0.861893 0.870345 0.912256 0.825589 0.500000 0.891930 0.500000 0.500000 0.500000 0.896580 0.500000 0.500000 0.901050 0.500000 0.500000 0.885243 +0.397062 +0.374921 0.697869 0.485362 0.877096 0.755958 0.790529 0.213070 0.463277 1 0 0.500000 0.500000 0 1 0.500000 0.500000 0.892167 0.856371 0.500000 0.883448 0.890059 0.883281 0.894796 0.500000 0.500000 0.899839 0.851116 0.500000 0.891440 0.882426 0.857747 0.909577 +0.582967 +0.167243 0.647331 0.688955 0.269658 0.343517 0.883907 0.829913 0.556362 0.500000 1 0 0 1 0.500000 0 0.500000 0.883985 0.864040 0.873146 0.861918 0.500000 0.888602 0.879351 0.864730 0.500000 0.900146 0.858978 0.895404 0.908561 0.864531 0.500000 0.500000 +0.640681 +0.346731 0.502954 0.551861 0.126016 0.548300 0.275886 0.208070 0.427299 0 0 0 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.881879 0.874512 0.907192 0.500000 0.874740 0.861373 0.886633 0.856405 0.500000 0.500000 0.500000 0.500000 0.858831 0.500000 0.899140 +0.434243 +0.242146 0.350207 0.525699 0.419829 0.266972 0.805170 0.689540 0.504555 0 0 0 1 0.500000 0 0.500000 0.500000 0.862166 0.915552 0.862321 0.845801 0.860954 0.500000 0.500000 0.893566 0.500000 0.500000 0.500000 0.898314 0.876743 0.500000 0.893460 0.874415 +0.541266 +0.661605 0.597846 0.199145 0.837173 0.168958 0.677953 0.162161 0.843454 0 0.500000 1 0 1 1 1 1 0.846948 0.896293 0.500000 0.865624 0.866560 0.500000 0.824703 0.875714 0.500000 0.500000 0.500000 0.500000 0.888352 0.865931 0.839720 0.892545 +0.443556 +0.389066 0.838023 0.851913 0.700098 0.354092 0.227371 0.826998 0.363272 0 1 0.500000 1 1 0 1 0 0.500000 0.878841 0.500000 0.872969 0.880060 0.845037 0.909466 0.844682 0.500000 0.500000 0.871912 0.851475 0.500000 0.880280 0.500000 0.904219 +0.527971 +0.726302 0.760664 0.677975 0.520240 0.665567 0.785679 0.305497 0.294185 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0 0.904247 0.500000 0.500000 0.899514 0.881105 0.500000 0.883618 0.861031 0.500000 0.856091 0.500000 0.892107 0.500000 0.500000 0.877759 0.916542 +0.465592 +0.898251 0.296756 0.585602 0.809443 0.504931 0.171580 0.748345 0.836109 1 0.500000 0 0.500000 0 0.500000 0 0.500000 0.873393 0.874382 0.915439 0.871431 0.865016 0.879988 0.866680 0.893696 0.911598 0.500000 0.900310 0.500000 0.847257 0.500000 0.500000 0.889053 +0.737845 +0.391686 0.866897 0.544202 0.210498 0.437375 0.763232 0.648365 0.474702 0 0.500000 0 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.902194 0.879925 0.884402 0.500000 0.859957 0.500000 0.872936 0.500000 0.890042 0.896118 0.500000 0.500000 0.907224 0.875797 0.500000 +0.467802 +0.682930 0.604542 0.732862 0.617333 0.517441 0.824893 0.174684 0.114653 1 1 1 1 0.500000 0.500000 1 0 0.900738 0.886681 0.500000 0.852443 0.880392 0.903576 0.872106 0.891688 0.500000 0.500000 0.919461 0.862169 0.500000 0.891429 0.898787 0.882469 +0.765984 +0.747137 0.537168 0.389371 0.357032 0.836079 0.184397 0.163180 0.359880 1 0.500000 0 1 0 0.500000 0 0 0.873767 0.879091 0.856032 0.854030 0.500000 0.500000 0.895244 0.898905 0.500000 0.500000 0.911986 0.859515 0.864521 0.500000 0.893602 0.915247 +0.657978 +0.194728 0.189022 0.285406 0.225746 0.718774 0.631076 0.292199 0.792013 0 0.500000 0 0 1 1 1 0.500000 0.500000 0.875794 0.842055 0.891748 0.878275 0.869059 0.866862 0.500000 0.500000 0.500000 0.880100 0.500000 0.500000 0.500000 0.872759 0.844591 +0.482636 +0.244058 0.483870 0.607013 0.663804 0.751626 0.783881 0.495950 0.430701 0.500000 0 0 1 0 1 0 0 0.853433 0.902428 0.500000 0.873068 0.890499 0.894327 0.894021 0.500000 0.500000 0.869880 0.500000 0.874154 0.897979 0.860812 0.868473 0.500000 +0.522979 +0.121386 0.329608 0.727857 0.500255 0.787645 0.551083 0.653343 0.140174 1 1 0.500000 0.500000 1 0 0 1 0.886445 0.500000 0.885140 0.500000 0.868638 0.500000 0.922210 0.500000 0.500000 0.881482 0.500000 0.500000 0.500000 0.500000 0.869222 0.874419 +0.378414 +0.255800 0.224300 0.405939 0.409151 0.801851 0.114989 0.814886 0.784162 0.500000 1 0 1 1 0.500000 0.500000 1 0.882505 0.882541 0.880863 0.500000 0.877099 0.890117 0.846978 0.500000 0.500000 0.500000 0.850371 0.500000 0.500000 0.918733 0.843503 0.500000 +0.540570 +0.607569 0.409221 0.382606 0.263241 0.483119 0.779185 0.758326 0.577717 0 0 1 0.500000 1 0 1 0.500000 0.889489 0.872125 0.877578 0.891414 0.875476 0.906337 0.500000 0.500000 0.841043 0.881661 0.500000 0.868972 0.500000 0.500000 0.875716 0.500000 +0.590943 +0.864761 0.634234 0.578412 0.767146 0.819964 0.536823 0.183714 0.678715 0 0.500000 1 0.500000 0 0 0 0.500000 0.851568 0.888914 0.500000 0.883238 0.884289 0.882729 0.853868 0.877899 0.500000 0.500000 0.500000 0.904347 0.875596 0.912628 0.909113 0.500000 +0.547264 +0.425731 0.254213 0.753993 0.561009 0.274683 0.798249 0.374804 0.335260 0.500000 0 1 0 1 1 0.500000 0 0.867045 0.879723 0.916751 0.887606 0.898959 0.893404 0.882290 0.876714 0.500000 0.873410 0.500000 0.500000 0.902987 0.500000 0.867201 0.500000 +0.745713 +0.441767 0.176908 0.690531 0.350811 0.277952 0.544464 0.610207 0.751739 0 1 0 1 0 0.500000 0 0.500000 0.877426 0.897347 0.899182 0.500000 0.878852 0.500000 0.500000 0.856409 0.500000 0.872742 0.856853 0.500000 0.500000 0.500000 0.847953 0.500000 +0.345493 +0.154593 0.840109 0.715612 0.298537 0.118590 0.548415 0.604052 0.509859 0.500000 0 0 1 0 1 0.500000 0.500000 0.860241 0.865494 0.876245 0.500000 0.866595 0.858755 0.886903 0.875632 0.878500 0.500000 0.500000 0.917532 0.833122 0.500000 0.500000 0.500000 +0.546284 +0.794101 0.255403 0.761123 0.395251 0.776846 0.654055 0.101683 0.393834 0 0.500000 1 0.500000 0.500000 0 0.500000 0.500000 0.888295 0.890151 0.908107 0.847608 0.500000 0.883853 0.881843 0.500000 0.500000 0.890113 0.500000 0.500000 0.860626 0.500000 0.500000 0.874983 +0.452908 +0.374728 0.657533 0.158013 0.716758 0.359138 0.236757 0.179073 0.274915 1 0.500000 0 0.500000 0 0 0.500000 0 0.500000 0.867123 0.500000 0.865270 0.871580 0.500000 0.880912 0.500000 0.894901 0.898690 0.896110 0.500000 0.876666 0.500000 0.500000 0.886851 +0.481145 +0.544562 0.658278 0.673936 0.642327 0.585908 0.360809 0.318928 0.430523 1 0.500000 0 1 0.500000 1 0 1 0.500000 0.903933 0.901247 0.911600 0.883225 0.883138 0.875811 0.500000 0.500000 0.500000 0.899235 0.883705 0.896915 0.879432 0.500000 0.500000 +0.523642 +0.806188 0.207200 0.208336 0.898603 0.628349 0.864775 0.874166 0.306075 0.500000 1 1 1 0.500000 1 1 0 0.842398 0.889183 0.866070 0.500000 0.500000 0.870969 0.866715 0.500000 0.868759 0.500000 0.500000 0.500000 0.849758 0.887798 0.500000 0.901345 +0.416865 +0.526682 0.142409 0.868724 0.838521 0.429810 0.808787 0.685584 0.417551 0.500000 1 1 0.500000 1 0 0 0 0.898932 0.868641 0.888522 0.915483 0.877182 0.905421 0.500000 0.500000 0.894560 0.500000 0.888456 0.500000 0.872044 0.895408 0.500000 0.890514 +0.695906 +0.594450 0.718273 0.206979 0.489639 0.771182 0.661750 0.638052 0.734416 0 1 1 0.500000 0 0.500000 0 1 0.880167 0.879894 0.500000 0.500000 0.892135 0.900941 0.874266 0.890210 0.500000 0.878869 0.894827 0.500000 0.901786 0.918602 0.867047 0.857241 +0.651876 +0.884515 0.641460 0.411280 0.588376 0.227850 0.873489 0.130629 0.484998 0 0 1 0.500000 0 0 0 0.500000 0.892766 0.877493 0.500000 0.890790 0.866749 0.500000 0.500000 0.862290 0.500000 0.500000 0.884915 0.863869 0.892918 0.500000 0.851027 0.500000 +0.432364 +0.290276 0.468513 0.893486 0.220677 0.319804 0.738368 0.356586 0.544115 0 0 0 1 0 1 0 1 0.500000 0.872671 0.865542 0.902205 0.500000 0.500000 0.500000 0.878459 0.921192 0.853106 0.500000 0.867230 0.860598 0.500000 0.875609 0.922172 +0.449613 +0.237571 0.252604 0.112572 0.204626 0.144805 0.339232 0.864649 0.361353 1 0.500000 1 1 1 0 0 1 0.500000 0.888326 0.500000 0.889189 0.884577 0.902446 0.500000 0.891292 0.500000 0.896577 0.500000 0.500000 0.500000 0.500000 0.897600 0.500000 +0.482164 +0.351977 0.684159 0.466125 0.767409 0.445507 0.631118 0.200592 0.350753 0 0 0.500000 1 0.500000 1 1 0.500000 0.500000 0.890805 0.863747 0.886353 0.919043 0.889414 0.878358 0.500000 0.905356 0.500000 0.887849 0.868542 0.500000 0.882457 0.877599 0.500000 +0.618396 +0.152012 0.664292 0.157286 0.514159 0.869996 0.615698 0.237862 0.351748 1 0.500000 1 1 1 0.500000 1 0.500000 0.894177 0.500000 0.840864 0.500000 0.500000 0.500000 0.902716 0.881474 0.920137 0.500000 0.500000 0.500000 0.862434 0.873174 0.893154 0.500000 +0.438571 +0.107795 0.706822 0.560854 0.867137 0.574607 0.824945 0.252746 0.107410 1 0 1 1 0 0 1 0.500000 0.500000 0.867350 0.897050 0.876495 0.883167 0.890293 0.500000 0.897296 0.876316 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.859136 +0.468081 +0.422410 0.453252 0.403211 0.167114 0.876647 0.399417 0.404400 0.144447 1 0 0.500000 0 1 1 0 0.500000 0.865502 0.500000 0.905868 0.500000 0.860337 0.881486 0.888957 0.890635 0.500000 0.894209 0.500000 0.852899 0.910281 0.882328 0.500000 0.889530 +0.583488 +0.150992 0.325088 0.756283 0.648682 0.203132 0.646365 0.459363 0.716544 1 1 0.500000 0 1 0 0.500000 1 0.894895 0.500000 0.911415 0.500000 0.500000 0.908211 0.500000 0.500000 0.910759 0.857209 0.500000 0.500000 0.853219 0.879223 0.846034 0.500000 +0.434492 +0.177459 0.359970 0.612943 0.340843 0.756152 0.854350 0.859014 0.844065 1 0 1 0 1 0.500000 1 1 0.500000 0.905049 0.500000 0.881547 0.887380 0.892248 0.500000 0.894950 0.873946 0.500000 0.896910 0.879266 0.500000 0.877800 0.500000 0.905851 +0.614387 +0.752255 0.142317 0.126560 0.885674 0.116766 0.284512 0.393201 0.722971 1 0.500000 0 0.500000 1 0 1 1 0.886488 0.915269 0.892820 0.500000 0.500000 0.878158 0.880172 0.879048 0.859569 0.500000 0.500000 0.878798 0.876885 0.888680 0.858009 0.500000 +0.642358 +0.315365 0.534518 0.638409 0.336741 0.601363 0.101194 0.164231 0.433944 1 1 0.500000 1 0.500000 1 0 0.500000 0.500000 0.884973 0.888803 0.874624 0.895335 0.861518 0.500000 0.868384 0.500000 0.906754 0.925234 0.877498 0.500000 0.892148 0.500000 0.869149 +0.737974 +0.283620 0.595348 0.607876 0.765872 0.210918 0.306897 0.615881 0.108998 0 0.500000 0.500000 0 1 1 0 0 0.896351 0.873552 0.883252 0.500000 0.500000 0.904861 0.881477 0.876444 0.500000 0.500000 0.500000 0.891383 0.903604 0.500000 0.500000 0.870453 +0.533177 +0.185657 0.536714 0.754685 0.192396 0.199435 0.111505 0.660946 0.721943 0 0 0 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.920684 0.500000 0.886108 0.876338 0.861759 0.886077 0.905594 0.500000 0.852785 0.500000 0.881209 0.500000 0.500000 0.500000 0.500000 +0.471197 +0.674059 0.312101 0.879821 0.153285 0.466657 0.106557 0.697289 0.335960 0 0.500000 0.500000 1 0.500000 1 1 0 0.842444 0.905128 0.869146 0.500000 0.879488 0.876253 0.885088 0.898216 0.903997 0.904890 0.500000 0.500000 0.887716 0.903885 0.879544 0.885145 +0.704456 +0.729925 0.843318 0.240749 0.872257 0.228862 0.282832 0.151422 0.342484 0 1 0 0 1 1 0 1 0.911912 0.500000 0.500000 0.878404 0.500000 0.500000 0.890021 0.855604 0.884891 0.500000 0.921131 0.500000 0.885206 0.500000 0.500000 0.861239 +0.319535 +0.177027 0.284208 0.876502 0.368760 0.345230 0.883838 0.464530 0.348326 0 1 1 0 0.500000 1 0 0 0.500000 0.897912 0.895150 0.883305 0.927418 0.886928 0.902198 0.888597 0.891702 0.888834 0.891265 0.500000 0.872867 0.857185 0.854161 0.500000 +0.836873 +0.842330 0.431910 0.113620 0.215891 0.684268 0.699806 0.239790 0.745591 0 0 1 1 0.500000 0.500000 0 0.500000 0.887767 0.878510 0.899476 0.878373 0.500000 0.883475 0.892454 0.500000 0.872784 0.860429 0.500000 0.880684 0.500000 0.895666 0.500000 0.500000 +0.597817 +0.547676 0.193916 0.154265 0.138566 0.280052 0.639543 0.191815 0.831983 0 0 0 0 1 0.500000 1 0.500000 0.854510 0.835543 0.500000 0.500000 0.500000 0.896087 0.918667 0.500000 0.900113 0.905006 0.500000 0.500000 0.900287 0.500000 0.916487 0.500000 +0.425622 +0.366602 0.875719 0.805765 0.285799 0.417997 0.681410 0.665709 0.769040 1 0.500000 0 1 0.500000 0.500000 1 1 0.870490 0.897721 0.897880 0.500000 0.874118 0.500000 0.876138 0.896315 0.500000 0.500000 0.862706 0.856843 0.899864 0.840214 0.500000 0.859963 +0.569309 +0.130681 0.561257 0.446013 0.334725 0.321849 0.717173 0.125339 0.380142 0.500000 0 0.500000 0 1 0 1 0.500000 0.500000 0.856164 0.872561 0.500000 0.838390 0.500000 0.911543 0.877713 0.500000 0.500000 0.865517 0.884365 0.500000 0.879872 0.889325 0.500000 +0.498567 +0.802839 0.718331 0.381380 0.459954 0.247248 0.503935 0.237751 0.878616 1 0 0.500000 1 1 0 1 0 0.895626 0.899159 0.912213 0.500000 0.500000 0.873708 0.846048 0.896891 0.886101 0.856737 0.895962 0.500000 0.500000 0.878035 0.500000 0.908524 +0.569952 +0.512501 0.199606 0.576795 0.792257 0.470757 0.216022 0.488806 0.369200 0.500000 1 1 1 0 1 0.500000 0.500000 0.874866 0.901056 0.884654 0.856363 0.850510 0.889181 0.880296 0.863201 0.884938 0.500000 0.500000 0.853240 0.872000 0.500000 0.500000 0.500000 +0.723913 +0.606590 0.766101 0.857710 0.539604 0.525909 0.754161 0.185026 0.328315 0.500000 1 1 0 0 0.500000 0 1 0.904445 0.914942 0.884796 0.875646 0.894463 0.863616 0.500000 0.908897 0.879011 0.868595 0.889073 0.500000 0.500000 0.500000 0.500000 0.884940 +0.632829 +0.789455 0.566915 0.337232 0.856285 0.582925 0.620417 0.346331 0.191285 1 0 0 1 1 0 0.500000 1 0.888142 0.852086 0.500000 0.860092 0.905493 0.884065 0.891172 0.905374 0.500000 0.500000 0.882620 0.856427 0.500000 0.500000 0.500000 0.886973 +0.587044 +0.426348 0.237313 0.717227 0.238827 0.565543 0.489207 0.698457 0.761971 0 1 1 0.500000 0 1 0 0.500000 0.500000 0.859328 0.875065 0.880416 0.878379 0.500000 0.500000 0.887671 0.500000 0.500000 0.886977 0.500000 0.871060 0.500000 0.500000 0.893429 +0.374993 +0.302230 0.584917 0.496728 0.713968 0.652946 0.665884 0.505600 0.222531 0 1 0.500000 1 0.500000 1 0 0 0.911400 0.500000 0.875857 0.860403 0.887481 0.872320 0.869416 0.924371 0.902154 0.890203 0.872050 0.891085 0.500000 0.864416 0.872147 0.500000 +0.758581 +0.592586 0.584846 0.106657 0.783133 0.712137 0.293743 0.345693 0.663825 0 0.500000 0 0 0.500000 0 0.500000 0 0.500000 0.881285 0.900421 0.500000 0.841981 0.874274 0.869990 0.500000 0.889867 0.500000 0.882560 0.500000 0.902233 0.873265 0.867269 0.897626 +0.499703 +0.157138 0.417316 0.422059 0.152000 0.469735 0.633103 0.770333 0.794636 0.500000 0 0.500000 1 0 0 1 0.500000 0.500000 0.896892 0.500000 0.874183 0.883165 0.883546 0.887072 0.500000 0.500000 0.500000 0.889980 0.500000 0.500000 0.500000 0.884410 0.500000 +0.429994 +0.561217 0.580947 0.169179 0.395022 0.129722 0.444146 0.153990 0.301906 1 0.500000 0 0.500000 0.500000 0 0 0.500000 0.897037 0.882381 0.890633 0.500000 0.892615 0.880584 0.500000 0.853548 0.500000 0.500000 0.500000 0.873078 0.500000 0.500000 0.500000 0.894747 +0.549149 +0.343820 0.380383 0.490480 0.501817 0.642847 0.536960 0.886006 0.107699 1 1 1 1 0 0 0 0 0.883261 0.876654 0.891441 0.847197 0.887327 0.895588 0.884219 0.889634 0.866285 0.500000 0.880979 0.880728 0.880476 0.500000 0.500000 0.850849 +0.762877 +0.304484 0.858358 0.223874 0.442945 0.774391 0.195734 0.302087 0.580944 0 0 0 0.500000 0 0 0.500000 0.500000 0.919771 0.866079 0.871567 0.889295 0.500000 0.874731 0.500000 0.894850 0.500000 0.880686 0.500000 0.500000 0.865953 0.885962 0.853636 0.876176 +0.534897 +0.260435 0.533890 0.486453 0.819420 0.187597 0.342007 0.313573 0.822055 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.899126 0.870092 0.877605 0.500000 0.500000 0.860714 0.500000 0.500000 0.865710 0.896836 0.500000 0.500000 0.500000 0.907575 0.500000 +0.325771 +0.312488 0.179815 0.748475 0.625752 0.415642 0.300587 0.170393 0.796425 0 0 0 0 0 0.500000 0 0 0.873158 0.886274 0.500000 0.500000 0.500000 0.500000 0.917005 0.500000 0.500000 0.500000 0.500000 0.895766 0.849783 0.500000 0.917158 0.859392 +0.330118 +0.132095 0.326359 0.516912 0.733236 0.494200 0.622906 0.578494 0.551969 0 0.500000 1 0.500000 0 1 0.500000 0.500000 0.893685 0.877069 0.876807 0.866305 0.864245 0.893969 0.890758 0.500000 0.500000 0.500000 0.889173 0.861955 0.500000 0.500000 0.500000 0.500000 +0.595911 +0.338511 0.745805 0.537004 0.824415 0.140165 0.747496 0.163510 0.317623 1 0.500000 1 0.500000 0 0 0.500000 0.500000 0.878651 0.898590 0.873532 0.500000 0.895870 0.500000 0.500000 0.879241 0.845711 0.500000 0.500000 0.881299 0.500000 0.500000 0.898834 0.856950 +0.407228 +0.149420 0.300924 0.227405 0.603839 0.129639 0.648904 0.733731 0.816454 1 1 1 0 0.500000 0.500000 0 1 0.879205 0.838467 0.883286 0.875276 0.500000 0.864549 0.909220 0.925096 0.916393 0.500000 0.833209 0.500000 0.500000 0.872374 0.500000 0.904720 +0.739621 +0.366967 0.611530 0.579367 0.813557 0.852224 0.333404 0.516117 0.171795 0 0 1 1 0 0.500000 0 0.500000 0.882275 0.863679 0.500000 0.871371 0.878615 0.895401 0.887531 0.882968 0.868932 0.500000 0.868984 0.500000 0.869944 0.500000 0.500000 0.500000 +0.564967 +0.676875 0.438976 0.469883 0.724036 0.280932 0.225194 0.243938 0.860485 1 0 1 0.500000 1 0 0 0 0.870467 0.500000 0.877774 0.870149 0.863892 0.500000 0.869927 0.877800 0.500000 0.913700 0.500000 0.862619 0.866048 0.884989 0.500000 0.500000 +0.509673 +0.873829 0.250735 0.697445 0.555026 0.523219 0.339729 0.432898 0.710256 1 0 0.500000 0 0 1 1 1 0.862016 0.883298 0.900208 0.903233 0.888550 0.891168 0.895374 0.892128 0.500000 0.886147 0.888061 0.500000 0.500000 0.500000 0.868784 0.500000 +0.742547 +0.820199 0.478928 0.736220 0.252599 0.837646 0.114457 0.681693 0.606329 0 0 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.886969 0.911439 0.897789 0.890267 0.898447 0.867853 0.905310 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.894472 0.891400 +0.569587 +0.584223 0.829960 0.533183 0.599150 0.514225 0.384790 0.163471 0.464440 0.500000 0.500000 0.500000 0 0.500000 0 0.500000 0.500000 0.856786 0.884488 0.888281 0.898048 0.869099 0.901051 0.873013 0.860845 0.877300 0.889712 0.901410 0.870328 0.871691 0.861764 0.500000 0.500000 +0.875697 +0.439400 0.391647 0.217728 0.358212 0.669201 0.260073 0.838851 0.372112 1 0 0 0 0 0.500000 0.500000 0 0.864151 0.500000 0.886691 0.884078 0.879326 0.897721 0.940021 0.891690 0.876691 0.932178 0.892026 0.500000 0.500000 0.500000 0.886932 0.500000 +0.672902 +0.282957 0.662763 0.859898 0.499979 0.148825 0.694216 0.684709 0.101660 1 1 0.500000 0.500000 1 1 1 0 0.899249 0.894283 0.889155 0.862490 0.887070 0.880432 0.856445 0.926331 0.500000 0.500000 0.871865 0.921187 0.862180 0.892997 0.500000 0.873472 +0.840005 +0.586175 0.844567 0.443907 0.142030 0.895717 0.122867 0.420430 0.773282 1 0.500000 1 0 1 0 0 1 0.500000 0.500000 0.913522 0.871194 0.500000 0.891755 0.500000 0.869875 0.500000 0.500000 0.853242 0.899888 0.500000 0.500000 0.500000 0.891793 +0.320007 +0.799998 0.170885 0.266274 0.272641 0.875644 0.352600 0.749931 0.289323 0.500000 1 1 1 0 0.500000 1 0 0.894160 0.500000 0.500000 0.500000 0.906508 0.873515 0.500000 0.871055 0.878794 0.500000 0.500000 0.839805 0.500000 0.893873 0.879070 0.861512 +0.491492 +0.637527 0.722933 0.128893 0.106985 0.692246 0.371046 0.374206 0.678876 0.500000 0.500000 1 0.500000 0 0 0 1 0.500000 0.877197 0.870572 0.500000 0.886784 0.907030 0.882906 0.892079 0.500000 0.500000 0.500000 0.883545 0.500000 0.500000 0.500000 0.890795 +0.486388 +0.249936 0.877000 0.733746 0.269184 0.368791 0.865452 0.253231 0.252538 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.887779 0.896372 0.914075 0.872577 0.886109 0.900981 0.876332 0.500000 0.885490 0.870317 0.500000 0.890933 0.500000 0.500000 0.500000 0.891820 +0.631042 +0.283645 0.213301 0.346683 0.508014 0.795644 0.582230 0.137100 0.442047 1 0.500000 0 0.500000 1 1 1 1 0.500000 0.912317 0.917546 0.907180 0.500000 0.845012 0.916644 0.877322 0.911209 0.500000 0.885939 0.885587 0.848430 0.500000 0.500000 0.864077 +0.663561 +0.693215 0.673323 0.745066 0.129134 0.162165 0.102715 0.130625 0.421241 1 1 0.500000 0 0.500000 0 0.500000 0 0.878069 0.885606 0.872136 0.500000 0.906814 0.881578 0.500000 0.500000 0.889355 0.868526 0.889962 0.500000 0.500000 0.911298 0.500000 0.881538 +0.613987 +0.639043 0.591854 0.291962 0.797590 0.499077 0.183005 0.767726 0.176560 0.500000 0.500000 0 0.500000 0.500000 1 1 0 0.895972 0.897322 0.500000 0.886215 0.500000 0.868466 0.888438 0.914562 0.892863 0.867905 0.500000 0.500000 0.870454 0.500000 0.894823 0.500000 +0.530440 +0.857409 0.272932 0.161240 0.553773 0.261101 0.516876 0.137787 0.783588 0 0.500000 1 0.500000 0.500000 1 0.500000 0 0.903923 0.866910 0.500000 0.879777 0.882882 0.500000 0.500000 0.874283 0.500000 0.881787 0.878007 0.500000 0.834244 0.500000 0.875068 0.899224 +0.449369 +0.805166 0.633084 0.443567 0.828906 0.414978 0.327349 0.362528 0.414247 1 0 0.500000 1 0 0 0 0.500000 0.894848 0.884342 0.873456 0.500000 0.870808 0.887147 0.875496 0.864913 0.875466 0.897565 0.500000 0.868502 0.500000 0.881756 0.500000 0.874950 +0.680215 +0.580851 0.167328 0.482386 0.468250 0.470504 0.765546 0.336987 0.736653 0 1 1 0.500000 0.500000 0 0.500000 0 0.500000 0.500000 0.862160 0.500000 0.845115 0.891395 0.885088 0.500000 0.500000 0.500000 0.500000 0.880279 0.500000 0.500000 0.887931 0.849781 +0.313535 +0.273687 0.865152 0.817012 0.527710 0.617097 0.546685 0.338852 0.880836 0.500000 0.500000 1 0.500000 0 0 1 0.500000 0.836315 0.876524 0.899788 0.903873 0.877073 0.500000 0.500000 0.500000 0.904129 0.897526 0.500000 0.879853 0.824620 0.885465 0.500000 0.500000 +0.490598 +0.211172 0.568111 0.437546 0.432048 0.824296 0.548153 0.213046 0.865515 0.500000 0.500000 0 0 0 0 0 0.500000 0.860164 0.875407 0.500000 0.500000 0.899906 0.855268 0.866741 0.864079 0.500000 0.870174 0.917650 0.500000 0.895983 0.500000 0.500000 0.872783 +0.457288 +0.274346 0.726724 0.643716 0.733151 0.671354 0.442561 0.721951 0.424145 1 0.500000 1 0 1 0 1 0 0.500000 0.500000 0.500000 0.500000 0.899971 0.500000 0.880621 0.500000 0.906259 0.895379 0.500000 0.500000 0.863886 0.879162 0.500000 0.907538 +0.458847 +0.643587 0.171708 0.501636 0.796067 0.496957 0.552013 0.279021 0.111404 0.500000 1 1 0 1 1 0 0 0.882468 0.500000 0.864925 0.500000 0.891254 0.888623 0.891307 0.500000 0.500000 0.500000 0.896675 0.859232 0.500000 0.500000 0.905216 0.500000 +0.473608 +0.568701 0.751089 0.548914 0.200720 0.898779 0.374614 0.338658 0.817885 1 0 1 0.500000 0 1 0.500000 0.500000 0.901554 0.865581 0.500000 0.882403 0.891653 0.860015 0.901194 0.871526 0.871493 0.877417 0.879924 0.500000 0.500000 0.500000 0.891066 0.884538 +0.730533 +0.517131 0.417283 0.677526 0.173622 0.669353 0.424605 0.530809 0.715121 1 1 0.500000 1 0.500000 0 1 1 0.871832 0.915376 0.909511 0.888381 0.870362 0.500000 0.933668 0.893963 0.500000 0.500000 0.884931 0.850879 0.500000 0.500000 0.866729 0.867627 +0.664149 +0.596620 0.384652 0.239190 0.266887 0.170390 0.740376 0.501017 0.785913 0 1 0 0 0 0 1 0.500000 0.917144 0.867537 0.888303 0.898325 0.901882 0.500000 0.500000 0.500000 0.500000 0.866288 0.864373 0.911998 0.881499 0.890692 0.500000 0.500000 +0.525546 +0.265852 0.367299 0.600847 0.237528 0.337361 0.631959 0.740957 0.659629 0 1 0 1 0.500000 0 0 1 0.500000 0.911480 0.853534 0.886649 0.500000 0.881235 0.850285 0.866374 0.881973 0.886747 0.877899 0.500000 0.500000 0.500000 0.500000 0.500000 +0.508356 +0.836787 0.880829 0.294050 0.700735 0.647968 0.198327 0.685435 0.300491 0 0.500000 0 1 1 0.500000 1 0 0.500000 0.875112 0.871892 0.500000 0.904261 0.903188 0.500000 0.881487 0.500000 0.878948 0.500000 0.500000 0.500000 0.878718 0.882312 0.500000 +0.408456 +0.616292 0.612463 0.273823 0.738869 0.775224 0.585914 0.453423 0.884498 0 0 0 0 0.500000 0 0 0 0.883705 0.500000 0.874886 0.883511 0.500000 0.873122 0.844219 0.876890 0.884725 0.500000 0.863239 0.500000 0.896770 0.882795 0.500000 0.872512 +0.476748 +0.292742 0.311298 0.186134 0.548769 0.155775 0.704223 0.880929 0.371285 0.500000 1 0 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.871881 0.895375 0.909977 0.887098 0.877668 0.876417 0.500000 0.897349 0.896672 0.500000 0.886629 0.500000 0.500000 0.881521 +0.542669 +0.475552 0.800703 0.816690 0.705501 0.753788 0.307720 0.856733 0.119337 0 0 0 1 0 0 1 0.500000 0.872267 0.853767 0.861127 0.893357 0.856071 0.500000 0.893179 0.903272 0.892811 0.898929 0.851391 0.886841 0.873114 0.834981 0.884040 0.500000 +0.633463 +0.274625 0.623491 0.806367 0.803591 0.555444 0.343291 0.284017 0.876863 1 0.500000 1 1 0.500000 0.500000 0 0.500000 0.500000 0.881323 0.863010 0.887143 0.885794 0.882363 0.500000 0.860680 0.905987 0.865674 0.869594 0.884267 0.873617 0.500000 0.903797 0.853485 +0.777482 +0.638633 0.104223 0.682740 0.609129 0.232417 0.831545 0.772378 0.755064 0 0 0.500000 0 0 0.500000 0 1 0.877110 0.892542 0.874384 0.500000 0.500000 0.898796 0.500000 0.500000 0.500000 0.834874 0.893888 0.877058 0.500000 0.863206 0.500000 0.500000 +0.325126 +0.524349 0.128442 0.528304 0.212022 0.446088 0.801658 0.858994 0.506730 1 1 1 0.500000 1 1 0 1 0.879029 0.500000 0.857113 0.879029 0.901088 0.500000 0.500000 0.500000 0.500000 0.883518 0.877742 0.500000 0.500000 0.898185 0.500000 0.879551 +0.467002 +0.733743 0.226815 0.275821 0.720480 0.504877 0.863822 0.848604 0.290483 1 1 0.500000 1 0.500000 0.500000 0.500000 1 0.897071 0.884013 0.865627 0.500000 0.874463 0.856668 0.500000 0.849684 0.887779 0.500000 0.887550 0.881470 0.500000 0.859755 0.500000 0.500000 +0.544437 +0.133593 0.691455 0.677814 0.220749 0.735990 0.384495 0.801234 0.140015 1 0 0.500000 1 0 0 0.500000 1 0.500000 0.500000 0.904123 0.882880 0.855195 0.866122 0.848182 0.500000 0.500000 0.856981 0.881161 0.884286 0.910250 0.500000 0.905327 0.500000 +0.569384 +0.271228 0.335806 0.885681 0.245400 0.639598 0.322276 0.696539 0.537152 0 0.500000 0.500000 0 0.500000 0 0 0.500000 0.500000 0.846309 0.861928 0.500000 0.864882 0.853500 0.500000 0.879470 0.876237 0.864714 0.866442 0.500000 0.900002 0.500000 0.500000 0.500000 +0.490849 +0.464679 0.454073 0.605163 0.782030 0.569960 0.313147 0.856707 0.473553 1 1 1 0.500000 0.500000 1 0.500000 0 0.867842 0.872428 0.887422 0.868650 0.881687 0.869904 0.879604 0.892280 0.855295 0.870085 0.500000 0.872121 0.500000 0.878831 0.884130 0.892061 +0.858673 +0.182738 0.273531 0.632788 0.260737 0.802253 0.463285 0.230558 0.779951 1 1 0.500000 0 1 1 1 0.500000 0.840390 0.872379 0.874289 0.872967 0.882929 0.500000 0.891198 0.875859 0.895329 0.932569 0.500000 0.881271 0.883422 0.500000 0.500000 0.500000 +0.629429 +0.556844 0.679343 0.317393 0.227772 0.372039 0.259224 0.173728 0.845664 0.500000 0 0.500000 0 1 0 1 0 0.500000 0.882944 0.500000 0.863312 0.500000 0.886304 0.908529 0.500000 0.500000 0.903959 0.500000 0.500000 0.875389 0.910164 0.500000 0.904886 +0.388817 +0.657038 0.633661 0.537001 0.777018 0.347320 0.801665 0.178311 0.279233 0.500000 0 1 0.500000 0.500000 0 0.500000 0 0.500000 0.902167 0.875512 0.883832 0.500000 0.872044 0.500000 0.930662 0.860493 0.897283 0.875559 0.500000 0.837119 0.866186 0.878447 0.882730 +0.612204 +0.133742 0.808578 0.366467 0.208958 0.158339 0.609605 0.229908 0.267118 1 1 0 1 1 1 0.500000 1 0.500000 0.871933 0.894505 0.861112 0.845081 0.886693 0.500000 0.500000 0.875557 0.875501 0.897509 0.890670 0.910378 0.887978 0.500000 0.865526 +0.735531 +0.840936 0.207794 0.586305 0.634542 0.147785 0.823286 0.375632 0.651239 1 1 1 0.500000 0 1 0.500000 1 0.895327 0.900407 0.500000 0.857109 0.904169 0.899087 0.866900 0.876121 0.500000 0.864765 0.847300 0.500000 0.500000 0.899189 0.892555 0.500000 +0.636816 +0.626692 0.220989 0.758512 0.514082 0.370925 0.731780 0.830610 0.267491 1 0.500000 1 1 0.500000 0.500000 0.500000 0 0.866089 0.500000 0.500000 0.500000 0.889937 0.862529 0.889211 0.877097 0.884118 0.904654 0.500000 0.880968 0.884069 0.500000 0.872720 0.500000 +0.542323 +0.617494 0.817419 0.162428 0.525640 0.238684 0.563700 0.699558 0.874402 0 0 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.857554 0.500000 0.878218 0.500000 0.887863 0.885287 0.876964 0.909494 0.911600 0.894365 0.500000 0.500000 0.500000 0.500000 +0.321033 +0.590591 0.670354 0.445075 0.576468 0.100488 0.299587 0.156954 0.524316 0.500000 1 1 0 0.500000 1 0 1 0.887453 0.905780 0.869746 0.872170 0.500000 0.500000 0.860964 0.858517 0.500000 0.500000 0.914316 0.500000 0.500000 0.859887 0.864538 0.500000 +0.527078 +0.245337 0.381448 0.792398 0.439042 0.771635 0.277240 0.566801 0.822326 0 1 0 1 0 0.500000 1 1 0.887072 0.902676 0.889398 0.905572 0.879023 0.500000 0.885593 0.880694 0.892861 0.895151 0.500000 0.889014 0.500000 0.500000 0.500000 0.500000 +0.676991 +0.579052 0.332317 0.647555 0.457502 0.640175 0.413776 0.128511 0.883858 1 1 1 0 1 0.500000 1 0.500000 0.905544 0.894952 0.848204 0.891843 0.891388 0.886775 0.500000 0.907610 0.886843 0.891577 0.874192 0.905884 0.904379 0.500000 0.887295 0.500000 +0.776752 +0.344249 0.391850 0.417685 0.225058 0.351206 0.518063 0.886983 0.522506 0 0.500000 1 0.500000 1 1 1 1 0.887637 0.896948 0.890871 0.891065 0.881783 0.893437 0.903605 0.874470 0.500000 0.844803 0.500000 0.895288 0.853381 0.866657 0.889751 0.911853 +0.869787 +0.340555 0.708625 0.452979 0.612131 0.290754 0.500478 0.526709 0.592444 0.500000 0 0 0 0 1 1 0.500000 0.867782 0.861926 0.861936 0.878654 0.500000 0.862694 0.877740 0.829361 0.891001 0.845933 0.500000 0.500000 0.500000 0.892053 0.873948 0.905194 +0.679010 +0.698434 0.387745 0.229955 0.255659 0.264743 0.141267 0.871773 0.890878 0.500000 1 0.500000 0.500000 0 1 0 1 0.500000 0.904593 0.500000 0.900165 0.843636 0.881106 0.500000 0.500000 0.500000 0.500000 0.500000 0.896739 0.903320 0.893077 0.884225 0.500000 +0.500996 +0.132932 0.782756 0.783165 0.462300 0.474099 0.377422 0.333499 0.512846 0.500000 1 1 0.500000 1 1 0 1 0.882779 0.858262 0.500000 0.500000 0.889466 0.893582 0.897479 0.500000 0.866569 0.886115 0.914069 0.891851 0.500000 0.884258 0.826449 0.860187 +0.692275 +0.276753 0.381176 0.228786 0.607703 0.267905 0.483034 0.154742 0.144272 0 0 1 0 1 0 0.500000 1 0.500000 0.869881 0.867603 0.900941 0.868893 0.898350 0.880908 0.873742 0.500000 0.915466 0.890174 0.851542 0.885952 0.500000 0.500000 0.871690 +0.671643 +0.363156 0.559653 0.694201 0.433401 0.370668 0.418706 0.586946 0.201335 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.897679 0.873357 0.851284 0.500000 0.862855 0.908925 0.882588 0.893189 0.500000 0.500000 0.886151 0.898051 0.912574 0.875581 0.895601 0.862839 +0.869353 +0.199407 0.432224 0.592030 0.856496 0.133285 0.327860 0.149176 0.204051 1 0.500000 1 1 0.500000 1 1 0.500000 0.882569 0.500000 0.871894 0.882894 0.851506 0.862759 0.915437 0.500000 0.500000 0.500000 0.888040 0.876355 0.500000 0.867117 0.877098 0.500000 +0.628305 +0.133546 0.706119 0.744770 0.755815 0.780232 0.762610 0.585474 0.257410 1 0 1 1 0 0.500000 0 0 0.500000 0.500000 0.900075 0.500000 0.882793 0.869125 0.500000 0.500000 0.884039 0.500000 0.902501 0.500000 0.875791 0.500000 0.868839 0.870841 +0.398654 +0.802561 0.846865 0.654091 0.710400 0.687305 0.533131 0.526942 0.511733 0 0.500000 1 0 0 0.500000 0 0 0.500000 0.880440 0.500000 0.871221 0.883893 0.876550 0.879941 0.500000 0.869133 0.500000 0.500000 0.500000 0.887850 0.500000 0.868001 0.500000 +0.350498 +0.146579 0.554918 0.315252 0.247906 0.349659 0.126741 0.734401 0.883371 0.500000 1 0 0 0 1 0.500000 1 0.858567 0.883857 0.907095 0.885726 0.881144 0.857611 0.871269 0.896693 0.879509 0.500000 0.500000 0.500000 0.885125 0.500000 0.886586 0.500000 +0.740369 +0.398164 0.149726 0.640338 0.756893 0.502334 0.531351 0.212154 0.277042 0.500000 0 1 0.500000 0.500000 1 1 1 0.864330 0.896543 0.500000 0.895547 0.877403 0.875322 0.904032 0.500000 0.500000 0.882165 0.500000 0.874464 0.872416 0.894287 0.872059 0.898944 +0.677504 +0.110439 0.347170 0.678662 0.878472 0.680306 0.504867 0.697126 0.798947 0 1 0 1 0 0.500000 1 0 0.861900 0.872654 0.500000 0.500000 0.871265 0.851091 0.500000 0.500000 0.500000 0.500000 0.500000 0.895075 0.500000 0.500000 0.500000 0.500000 +0.232392 +0.239002 0.311295 0.134210 0.674467 0.767825 0.235788 0.689969 0.508459 0 1 1 0 0 1 0 1 0.850553 0.500000 0.879516 0.855136 0.878289 0.500000 0.882325 0.894521 0.869589 0.500000 0.500000 0.500000 0.903205 0.500000 0.500000 0.892589 +0.544776 +0.838746 0.207905 0.855405 0.194337 0.815316 0.814713 0.273485 0.659286 1 0.500000 0.500000 0.500000 0.500000 1 0 0.500000 0.500000 0.897544 0.868188 0.867042 0.876904 0.905615 0.500000 0.894101 0.858114 0.500000 0.500000 0.500000 0.500000 0.861926 0.880936 0.872246 +0.511220 +0.197749 0.565691 0.574949 0.173194 0.675079 0.659613 0.721340 0.569372 1 1 0 0 0 1 0 0.500000 0.893424 0.885745 0.878585 0.866335 0.881612 0.876777 0.500000 0.500000 0.500000 0.892078 0.500000 0.500000 0.500000 0.882413 0.500000 0.500000 +0.501602 +0.263036 0.246573 0.346872 0.470318 0.838630 0.655263 0.408645 0.293354 0 0 0.500000 1 0 0 0.500000 0 0.856455 0.856121 0.886040 0.870262 0.500000 0.846283 0.889500 0.885743 0.500000 0.500000 0.500000 0.850618 0.921719 0.884228 0.891441 0.500000 +0.637619 +0.818986 0.889846 0.636996 0.592776 0.587722 0.441537 0.314156 0.225966 0.500000 0 0.500000 1 1 0 0.500000 0 0.500000 0.862604 0.868076 0.500000 0.889485 0.855907 0.894921 0.865601 0.870203 0.878382 0.500000 0.500000 0.500000 0.880395 0.500000 0.500000 +0.412023 +0.822964 0.551482 0.166559 0.350864 0.370440 0.587673 0.418729 0.178183 0.500000 0.500000 0 1 0.500000 0 0.500000 1 0.894751 0.879257 0.884849 0.500000 0.891220 0.903772 0.500000 0.864965 0.870866 0.849793 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.488097 +0.570695 0.670107 0.291953 0.649503 0.393665 0.521341 0.773390 0.168001 0.500000 1 1 1 1 0.500000 0.500000 0 0.500000 0.872558 0.856365 0.861781 0.500000 0.876419 0.885610 0.500000 0.500000 0.500000 0.877676 0.871409 0.906310 0.880240 0.500000 0.895545 +0.565447 +0.375454 0.854454 0.203336 0.870596 0.303813 0.784016 0.358247 0.448972 0.500000 0 1 0.500000 1 0.500000 0.500000 0 0.500000 0.865166 0.876600 0.500000 0.874863 0.861175 0.500000 0.895195 0.500000 0.500000 0.863015 0.905354 0.500000 0.500000 0.874430 0.500000 +0.399271 +0.613079 0.223489 0.372673 0.507106 0.723411 0.162743 0.214507 0.613774 1 0 0.500000 0 1 1 0 0.500000 0.500000 0.887715 0.861457 0.849352 0.876448 0.895406 0.887493 0.500000 0.890405 0.855912 0.867800 0.868144 0.875196 0.500000 0.500000 0.876259 +0.607027 +0.187165 0.277590 0.854309 0.175446 0.123188 0.225246 0.307011 0.132070 1 1 0 0.500000 1 0.500000 0 1 0.500000 0.500000 0.854374 0.500000 0.897483 0.884527 0.843737 0.500000 0.856712 0.859744 0.500000 0.500000 0.500000 0.500000 0.868547 0.500000 +0.327431 +0.419467 0.582571 0.276991 0.382022 0.851315 0.252894 0.182265 0.321013 0 0.500000 0 0 0.500000 0 0 1 0.500000 0.873331 0.500000 0.874100 0.500000 0.853813 0.500000 0.896661 0.881757 0.500000 0.500000 0.500000 0.882362 0.500000 0.874711 0.500000 +0.305104 +0.372216 0.827690 0.794008 0.290561 0.464380 0.240225 0.867949 0.615324 0 0.500000 1 0.500000 0 0 0.500000 0 0.877714 0.898779 0.500000 0.862380 0.861560 0.865713 0.500000 0.886052 0.878805 0.880843 0.500000 0.883699 0.886859 0.500000 0.500000 0.500000 +0.566461 +0.480645 0.798730 0.463369 0.849766 0.621532 0.682359 0.605049 0.459128 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.904618 0.884828 0.898458 0.878251 0.860896 0.917186 0.878156 0.500000 0.500000 0.889974 0.500000 0.870536 0.835292 0.881073 0.878627 0.500000 +0.663811 +0.589809 0.325091 0.797656 0.810045 0.235108 0.454423 0.880087 0.622386 1 1 0 1 1 0.500000 0.500000 0 0.860344 0.881970 0.868662 0.881670 0.886466 0.500000 0.500000 0.500000 0.901627 0.500000 0.863639 0.500000 0.500000 0.859485 0.500000 0.888458 +0.470326 +0.416900 0.637726 0.861868 0.821913 0.485414 0.146888 0.139581 0.543616 1 0.500000 1 0.500000 0.500000 0 1 1 0.893832 0.500000 0.875537 0.877954 0.500000 0.846782 0.500000 0.904379 0.500000 0.500000 0.886300 0.500000 0.500000 0.887461 0.894212 0.500000 +0.384856 +0.808136 0.150206 0.706144 0.359512 0.111514 0.821950 0.317321 0.613132 0 0 1 0 1 1 0 0 0.500000 0.880999 0.884730 0.841679 0.500000 0.856231 0.874198 0.868829 0.880787 0.500000 0.500000 0.895917 0.851363 0.850215 0.500000 0.855166 +0.575195 +0.768332 0.750972 0.181922 0.166271 0.319878 0.387338 0.588199 0.468337 0 0 0.500000 0 1 0.500000 0.500000 0 0.892101 0.885598 0.500000 0.866269 0.878683 0.851374 0.891872 0.858899 0.500000 0.500000 0.500000 0.895937 0.500000 0.500000 0.500000 0.500000 +0.517411 +0.208134 0.705440 0.536303 0.248190 0.324490 0.299906 0.714567 0.327337 0 0 0 0 0.500000 0.500000 0.500000 0.500000 0.859647 0.881516 0.500000 0.500000 0.500000 0.500000 0.904929 0.881773 0.880691 0.500000 0.500000 0.856038 0.901155 0.500000 0.889093 0.500000 +0.341873 +0.755703 0.505666 0.536824 0.203186 0.744732 0.113758 0.135784 0.715430 0.500000 0.500000 0.500000 1 0.500000 0 0 0.500000 0.878289 0.500000 0.833694 0.889719 0.884144 0.899419 0.500000 0.909892 0.873891 0.500000 0.500000 0.500000 0.500000 0.500000 0.895747 0.500000 +0.478050 +0.302663 0.661800 0.669381 0.888733 0.342567 0.128664 0.255040 0.255059 0.500000 0 0 0.500000 1 0.500000 0 0.500000 0.897570 0.887114 0.500000 0.879911 0.500000 0.860743 0.500000 0.899837 0.500000 0.500000 0.500000 0.899769 0.500000 0.500000 0.885191 0.880968 +0.340302 +0.317876 0.347092 0.177438 0.795355 0.530469 0.600093 0.363806 0.294293 1 0 0 0.500000 0 1 1 0 0.910395 0.879461 0.500000 0.500000 0.872470 0.500000 0.865527 0.879057 0.500000 0.500000 0.500000 0.883184 0.500000 0.500000 0.500000 0.884371 +0.406386 +0.850070 0.125840 0.785944 0.760311 0.339808 0.149324 0.292373 0.518423 0.500000 0 0.500000 0.500000 0.500000 0 0.500000 1 0.870822 0.500000 0.881805 0.878300 0.868958 0.894283 0.885803 0.883202 0.883866 0.500000 0.500000 0.500000 0.500000 0.864900 0.913237 0.891114 +0.583984 +0.882511 0.565645 0.587579 0.440326 0.752761 0.654821 0.179974 0.224223 1 0.500000 0.500000 0 0.500000 0 0.500000 1 0.859861 0.892044 0.901746 0.912945 0.880224 0.867767 0.917664 0.500000 0.500000 0.500000 0.891551 0.894740 0.500000 0.888913 0.871633 0.500000 +0.581524 +0.481438 0.530982 0.411622 0.738547 0.155864 0.602359 0.854796 0.351028 1 1 0 0 0 0.500000 1 0.500000 0.878392 0.855881 0.500000 0.890474 0.886610 0.500000 0.876643 0.500000 0.500000 0.500000 0.861809 0.881626 0.898258 0.885800 0.873417 0.887721 +0.574933 +0.884290 0.863083 0.429302 0.277832 0.118681 0.463894 0.865658 0.510996 0.500000 1 0.500000 1 0.500000 0.500000 0 0 0.874436 0.500000 0.857173 0.880696 0.500000 0.870975 0.500000 0.500000 0.861454 0.873838 0.500000 0.861206 0.862747 0.888065 0.868177 0.500000 +0.541621 +0.435130 0.629777 0.858714 0.604760 0.399723 0.743676 0.758870 0.120063 0.500000 0 1 0 0 0 0.500000 1 0.500000 0.928739 0.895217 0.500000 0.500000 0.860459 0.500000 0.826799 0.500000 0.853750 0.500000 0.905153 0.500000 0.848424 0.500000 0.857884 +0.280150 +0.819496 0.663865 0.177425 0.589158 0.583288 0.320032 0.583971 0.595550 1 1 0 0 1 1 1 0 0.500000 0.894323 0.881638 0.500000 0.500000 0.500000 0.500000 0.873373 0.886546 0.859557 0.875386 0.500000 0.878231 0.500000 0.882063 0.855161 +0.441017 +0.167154 0.758280 0.604153 0.596573 0.402497 0.163103 0.679955 0.210046 1 0.500000 1 0.500000 0 0.500000 0 0 0.897282 0.500000 0.891428 0.878496 0.864506 0.846378 0.500000 0.911062 0.500000 0.500000 0.500000 0.500000 0.866233 0.500000 0.500000 0.500000 +0.463481 +0.808100 0.338616 0.111997 0.132730 0.588685 0.632736 0.195497 0.321007 0 1 0 0 1 0 0 1 0.876752 0.500000 0.878388 0.500000 0.868256 0.890844 0.870245 0.859972 0.885928 0.841727 0.500000 0.500000 0.500000 0.500000 0.500000 0.872047 +0.425749 +0.373635 0.675884 0.575296 0.399657 0.433452 0.429164 0.366993 0.250432 0.500000 1 0 0 0.500000 1 1 1 0.876380 0.876033 0.500000 0.500000 0.887672 0.500000 0.853647 0.891758 0.908013 0.500000 0.871063 0.500000 0.863235 0.857527 0.500000 0.864695 +0.474477 +0.420204 0.173066 0.125351 0.575657 0.864893 0.451896 0.810369 0.877790 0.500000 0 1 1 1 0.500000 0 1 0.882571 0.884828 0.896869 0.908170 0.899768 0.875177 0.883059 0.863705 0.500000 0.862717 0.500000 0.844577 0.500000 0.500000 0.893006 0.500000 +0.768070 +0.129906 0.336551 0.606682 0.712685 0.703101 0.418534 0.895779 0.353481 0 0 0.500000 0 1 0 1 0 0.500000 0.892711 0.500000 0.851658 0.500000 0.916148 0.914158 0.879404 0.500000 0.896998 0.864201 0.869237 0.880565 0.500000 0.870206 0.500000 +0.489743 +0.423262 0.363205 0.578110 0.495164 0.820059 0.533784 0.311539 0.237983 1 1 1 1 0 0 0 1 0.500000 0.879170 0.500000 0.893114 0.879995 0.874371 0.891413 0.500000 0.500000 0.893010 0.500000 0.894371 0.905796 0.897442 0.860132 0.500000 +0.578916 +0.177980 0.310852 0.696924 0.608539 0.710860 0.419983 0.456104 0.346704 1 1 1 0.500000 0.500000 0.500000 1 0 0.910402 0.500000 0.851676 0.500000 0.881590 0.500000 0.500000 0.859470 0.892950 0.878277 0.500000 0.500000 0.857375 0.500000 0.500000 0.910004 +0.402220 +0.384285 0.473232 0.209725 0.250930 0.785841 0.629625 0.704719 0.415280 0.500000 0.500000 0 0 0 0 1 0 0.865712 0.877468 0.864102 0.500000 0.851089 0.871651 0.860013 0.881758 0.500000 0.500000 0.888087 0.500000 0.500000 0.893974 0.500000 0.871583 +0.547455 +0.607419 0.290589 0.133468 0.194326 0.633024 0.236551 0.714320 0.180413 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.874792 0.500000 0.500000 0.500000 0.889932 0.882883 0.500000 0.500000 0.897644 0.901935 0.500000 0.891927 0.500000 0.500000 0.884950 0.500000 +0.325182 +0.456421 0.873456 0.374412 0.147010 0.591555 0.867983 0.397863 0.676842 1 0 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.880490 0.500000 0.863387 0.861799 0.892173 0.853586 0.904406 0.877579 0.500000 0.857723 0.858546 0.500000 0.870187 0.500000 0.890866 +0.612876 +0.209077 0.560012 0.314300 0.247113 0.624859 0.602462 0.181888 0.383964 1 0 0 1 0 1 0 0 0.874554 0.883982 0.895941 0.500000 0.879430 0.500000 0.500000 0.882455 0.500000 0.500000 0.500000 0.888434 0.856460 0.898408 0.870158 0.885785 +0.506609 +0.717813 0.485721 0.506606 0.330707 0.784559 0.677745 0.657544 0.348074 1 0.500000 1 1 1 1 0 0 0.500000 0.879602 0.887708 0.500000 0.902042 0.500000 0.500000 0.884254 0.500000 0.500000 0.500000 0.870206 0.875870 0.881604 0.500000 0.500000 +0.363707 +0.314249 0.186506 0.413984 0.427781 0.312621 0.819897 0.209888 0.594524 0 0.500000 1 0.500000 1 0.500000 0.500000 1 0.883863 0.867192 0.917280 0.885498 0.861110 0.500000 0.892925 0.886045 0.893624 0.500000 0.858331 0.500000 0.917108 0.500000 0.863768 0.876242 +0.730105 +0.277182 0.404195 0.705766 0.404400 0.143858 0.428580 0.139477 0.396933 0 0 0.500000 0.500000 0.500000 1 0 1 0.893051 0.500000 0.901587 0.500000 0.887202 0.915404 0.900994 0.907522 0.500000 0.500000 0.500000 0.902304 0.500000 0.885562 0.500000 0.901706 +0.546631 +0.140176 0.139593 0.732213 0.899135 0.757786 0.304470 0.623924 0.888352 0 0.500000 1 1 0 0 0 0.500000 0.500000 0.873657 0.854724 0.880927 0.864860 0.874380 0.892229 0.500000 0.500000 0.500000 0.890031 0.500000 0.879680 0.853013 0.500000 0.896114 +0.531165 +0.196339 0.876824 0.187337 0.775006 0.121933 0.732987 0.305828 0.249743 1 0.500000 0.500000 0.500000 0 1 0.500000 0 0.500000 0.872262 0.884740 0.904364 0.500000 0.860574 0.500000 0.883157 0.500000 0.869768 0.500000 0.500000 0.500000 0.909037 0.500000 0.500000 +0.373869 +0.179246 0.779931 0.505047 0.530790 0.381617 0.441078 0.594551 0.823714 0 0.500000 0 0.500000 0 0 0 0.500000 0.500000 0.852378 0.901327 0.880123 0.500000 0.500000 0.500000 0.500000 0.500000 0.892157 0.899558 0.500000 0.892014 0.500000 0.500000 0.871941 +0.221341 +0.372966 0.640655 0.482919 0.618842 0.283148 0.667611 0.742300 0.843544 1 1 1 0.500000 0 0 1 0.500000 0.863080 0.907462 0.500000 0.913643 0.874649 0.500000 0.882011 0.500000 0.500000 0.500000 0.500000 0.897163 0.500000 0.500000 0.500000 0.911361 +0.403962 +0.671788 0.542660 0.688298 0.426538 0.230302 0.493573 0.489208 0.712525 0.500000 0 0 1 0.500000 1 0 0.500000 0.868325 0.874684 0.867188 0.500000 0.871974 0.882006 0.859695 0.842744 0.869800 0.901869 0.887265 0.857755 0.875958 0.500000 0.500000 0.871669 +0.676490 +0.343403 0.567555 0.697569 0.246138 0.241757 0.214556 0.644346 0.122886 1 0 1 1 0.500000 1 0 0.500000 0.500000 0.500000 0.871080 0.864600 0.901603 0.907178 0.500000 0.878520 0.500000 0.896302 0.866612 0.500000 0.500000 0.500000 0.891642 0.860445 +0.483397 +0.232706 0.893229 0.699300 0.540854 0.726086 0.334344 0.317375 0.714380 0.500000 0 1 1 1 0.500000 1 1 0.877864 0.902603 0.872180 0.890631 0.891559 0.863718 0.889359 0.892797 0.904618 0.500000 0.899537 0.500000 0.500000 0.500000 0.500000 0.500000 +0.653538 +0.366010 0.529518 0.608016 0.719487 0.612101 0.588714 0.319674 0.160985 0 0 0 0 0 0.500000 0.500000 0 0.881034 0.875151 0.859396 0.864970 0.840515 0.881096 0.897609 0.872355 0.892127 0.500000 0.500000 0.889918 0.500000 0.500000 0.882487 0.871485 +0.659654 +0.713599 0.853654 0.362974 0.711952 0.385354 0.840222 0.204735 0.384609 0 0 0 1 0 1 0 0 0.883537 0.500000 0.888663 0.886773 0.889564 0.876688 0.500000 0.851522 0.864800 0.878356 0.500000 0.500000 0.845613 0.500000 0.871966 0.889285 +0.563222 +0.225876 0.501454 0.141736 0.749296 0.810004 0.344697 0.716904 0.400984 0 0.500000 0 0.500000 0 1 1 1 0.500000 0.853735 0.500000 0.500000 0.868851 0.500000 0.883400 0.906340 0.900838 0.872327 0.911930 0.500000 0.500000 0.907073 0.500000 0.901020 +0.446297 +0.761335 0.758722 0.836392 0.646936 0.445150 0.241303 0.585505 0.786917 0 0.500000 0.500000 0.500000 1 0 0 1 0.500000 0.500000 0.861039 0.881923 0.907704 0.500000 0.500000 0.886791 0.897738 0.500000 0.867011 0.877121 0.895163 0.902069 0.898874 0.500000 +0.481005 +0.124604 0.820664 0.302686 0.243357 0.704859 0.363885 0.820719 0.423236 1 0 0 0 0 0.500000 0.500000 0 0.500000 0.855365 0.893477 0.846197 0.500000 0.860103 0.919617 0.837094 0.899769 0.891978 0.500000 0.500000 0.500000 0.500000 0.892865 0.500000 +0.451259 +0.418210 0.250955 0.398579 0.711651 0.111475 0.155557 0.242966 0.535643 0 1 0 0 0.500000 0.500000 0 0.500000 0.871381 0.853865 0.870708 0.863601 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.889369 0.889426 0.500000 0.880111 +0.315275 +0.687888 0.730643 0.117177 0.785892 0.688008 0.358862 0.398049 0.616350 1 1 0 0 0 0 0.500000 1 0.500000 0.500000 0.926180 0.884591 0.500000 0.500000 0.873086 0.889232 0.870746 0.879834 0.896427 0.500000 0.899270 0.876781 0.868662 0.500000 +0.420254 +0.458736 0.567844 0.753406 0.288025 0.239250 0.470847 0.132623 0.386623 0.500000 0.500000 0 0.500000 0 1 0 0 0.858634 0.864019 0.905175 0.877154 0.897646 0.854762 0.500000 0.879964 0.500000 0.881439 0.500000 0.500000 0.500000 0.857336 0.500000 0.500000 +0.589950 +0.270513 0.314452 0.401252 0.834634 0.701603 0.835901 0.385001 0.505561 0 0 1 1 1 1 0.500000 1 0.899614 0.901999 0.874669 0.896082 0.500000 0.876692 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.894807 0.500000 0.893059 0.500000 +0.450189 +0.774879 0.387664 0.462469 0.121013 0.458007 0.321016 0.317915 0.190169 0.500000 0 0.500000 0 0.500000 0 0 1 0.875703 0.923905 0.861244 0.500000 0.910695 0.843369 0.500000 0.500000 0.883903 0.927312 0.500000 0.500000 0.870706 0.500000 0.500000 0.500000 +0.450833 +0.140033 0.128363 0.802449 0.553178 0.655181 0.633189 0.600624 0.493725 1 1 0 0 0 1 0 0.500000 0.879364 0.898803 0.882777 0.873469 0.883685 0.885702 0.879794 0.862177 0.876898 0.902610 0.500000 0.500000 0.878032 0.500000 0.892743 0.500000 +0.793893 +0.690895 0.875777 0.192795 0.505488 0.738811 0.601448 0.738622 0.625783 0 0 1 0.500000 0.500000 0 0 1 0.893262 0.500000 0.882998 0.858664 0.500000 0.912717 0.500000 0.897504 0.500000 0.884711 0.858122 0.880970 0.500000 0.500000 0.500000 0.500000 +0.359940 +0.390078 0.242150 0.415923 0.222198 0.286598 0.260400 0.745109 0.846036 0 0.500000 1 1 1 0.500000 0 0.500000 0.875735 0.894239 0.500000 0.868389 0.500000 0.500000 0.500000 0.874819 0.854913 0.500000 0.872362 0.887033 0.885369 0.500000 0.880100 0.500000 +0.418253 +0.458309 0.592328 0.258185 0.313392 0.186137 0.609326 0.342564 0.875964 0 0 0 1 0 0.500000 1 1 0.901811 0.873042 0.878071 0.500000 0.500000 0.869680 0.920026 0.886931 0.500000 0.874149 0.881153 0.500000 0.897533 0.500000 0.500000 0.895604 +0.576363 +0.839556 0.217266 0.588431 0.351881 0.666599 0.530842 0.454934 0.669321 1 1 0 0.500000 0 0.500000 0.500000 1 0.500000 0.500000 0.928428 0.898667 0.922839 0.884797 0.500000 0.875954 0.882191 0.859995 0.500000 0.913837 0.500000 0.500000 0.865066 0.873012 +0.587894 +0.412896 0.549546 0.417622 0.769281 0.703585 0.560099 0.184186 0.622180 0.500000 0.500000 0 0 0 1 0.500000 0 0.500000 0.886173 0.871947 0.863153 0.856217 0.877201 0.500000 0.888766 0.500000 0.500000 0.500000 0.856980 0.500000 0.500000 0.500000 0.500000 +0.425696 +0.189595 0.320863 0.141925 0.726889 0.225214 0.568287 0.207346 0.266367 0 0 0.500000 1 0 0.500000 1 0.500000 0.500000 0.897011 0.894824 0.903102 0.877438 0.500000 0.893211 0.856578 0.500000 0.902150 0.500000 0.901165 0.877949 0.859660 0.500000 0.500000 +0.621688 +0.761128 0.479800 0.205879 0.409472 0.590789 0.784853 0.824505 0.852839 0 0.500000 1 0 1 1 0.500000 0.500000 0.915096 0.500000 0.500000 0.500000 0.500000 0.908737 0.500000 0.883899 0.500000 0.900123 0.500000 0.500000 0.882078 0.500000 0.500000 0.500000 +0.149771 +0.210903 0.845897 0.388492 0.778230 0.705829 0.661673 0.141504 0.858281 0.500000 0.500000 0.500000 0.500000 0 0 0.500000 1 0.858006 0.500000 0.860419 0.886143 0.500000 0.500000 0.500000 0.917682 0.866314 0.500000 0.893362 0.500000 0.892943 0.892297 0.872379 0.500000 +0.421003 +0.180943 0.509477 0.572159 0.470083 0.877479 0.792396 0.393649 0.252464 0 0.500000 0.500000 1 1 0.500000 1 1 0.500000 0.500000 0.500000 0.855388 0.500000 0.869784 0.876848 0.890362 0.500000 0.900962 0.877565 0.882418 0.929006 0.855825 0.500000 0.500000 +0.393260 +0.737318 0.298732 0.186507 0.414929 0.317546 0.389744 0.224833 0.568171 1 0.500000 0 0.500000 0.500000 1 1 0 0.500000 0.872740 0.892427 0.864534 0.870941 0.500000 0.500000 0.897061 0.901148 0.885228 0.871907 0.869194 0.917598 0.856579 0.500000 0.870508 +0.664173 +0.124622 0.314460 0.526023 0.262668 0.463891 0.819764 0.373406 0.840493 1 0.500000 1 0.500000 0.500000 1 1 1 0.900035 0.899144 0.500000 0.895468 0.887016 0.899042 0.887389 0.500000 0.873238 0.500000 0.899836 0.888658 0.882956 0.895898 0.902253 0.500000 +0.742067 +0.213304 0.395182 0.421380 0.730704 0.345367 0.789117 0.488333 0.411674 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0 0.901618 0.867346 0.883095 0.888971 0.500000 0.899636 0.500000 0.500000 0.857125 0.500000 0.500000 0.500000 0.500000 0.876178 0.908564 0.877171 +0.519775 +0.751853 0.588987 0.105782 0.484541 0.686370 0.818846 0.137490 0.587089 0 0 0.500000 0 0 0 1 0 0.500000 0.872846 0.500000 0.500000 0.500000 0.860153 0.500000 0.500000 0.500000 0.500000 0.500000 0.857973 0.500000 0.500000 0.500000 0.882062 +0.026302 +0.884740 0.430862 0.103695 0.595697 0.883325 0.645568 0.665302 0.335455 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0 0.879181 0.901298 0.500000 0.858228 0.858768 0.850085 0.879338 0.886338 0.500000 0.868546 0.879214 0.871887 0.500000 0.904034 0.500000 0.876576 +0.739420 +0.251313 0.809443 0.510772 0.751385 0.732158 0.772568 0.746432 0.688133 1 1 1 0.500000 1 0 1 0.500000 0.875035 0.865675 0.841930 0.500000 0.500000 0.895357 0.898892 0.500000 0.500000 0.500000 0.500000 0.880824 0.500000 0.868189 0.500000 0.500000 +0.402703 +0.640498 0.256602 0.114969 0.489484 0.558621 0.148694 0.896302 0.348898 0 1 1 0 1 0 1 0.500000 0.887212 0.906815 0.839691 0.897966 0.500000 0.500000 0.879439 0.858341 0.891811 0.896873 0.872985 0.874797 0.878469 0.895193 0.875300 0.895351 +0.875336 +0.170333 0.585453 0.701949 0.260372 0.280160 0.849118 0.127808 0.267675 0.500000 1 0.500000 1 0.500000 0 1 1 0.841150 0.868030 0.500000 0.874501 0.844401 0.879865 0.869009 0.885089 0.500000 0.891159 0.500000 0.868232 0.500000 0.875047 0.902755 0.873759 +0.711759 +0.747571 0.624088 0.446083 0.720063 0.698630 0.467883 0.705880 0.722424 0.500000 0.500000 1 0 0 1 1 0 0.886803 0.500000 0.500000 0.853105 0.857531 0.860855 0.500000 0.500000 0.881079 0.884953 0.896468 0.500000 0.500000 0.500000 0.500000 0.500000 +0.318844 +0.589735 0.683910 0.272450 0.864241 0.694146 0.311348 0.230311 0.635519 0.500000 0 0.500000 0.500000 0.500000 0.500000 0 0 0.872915 0.873534 0.898594 0.854436 0.500000 0.500000 0.500000 0.890622 0.867279 0.936256 0.500000 0.839794 0.500000 0.500000 0.853179 0.887294 +0.490382 +0.803308 0.591971 0.657764 0.838295 0.625969 0.855461 0.337564 0.844313 0 0.500000 0.500000 1 1 0.500000 1 1 0.500000 0.902258 0.853713 0.878981 0.867234 0.843815 0.883853 0.500000 0.500000 0.917842 0.500000 0.894079 0.869297 0.880281 0.500000 0.903602 +0.579072 +0.374183 0.290238 0.621861 0.610048 0.482052 0.444383 0.151931 0.897608 1 0.500000 1 0 0 0 1 0.500000 0.500000 0.500000 0.852250 0.900981 0.500000 0.895048 0.893975 0.870113 0.500000 0.500000 0.902293 0.500000 0.861865 0.500000 0.500000 0.500000 +0.402523 +0.141399 0.686930 0.630743 0.303057 0.880297 0.157144 0.521375 0.548491 0 0 0 1 1 0 0 0 0.864136 0.873100 0.883816 0.908940 0.500000 0.891254 0.887120 0.500000 0.500000 0.895685 0.500000 0.887651 0.901714 0.887417 0.500000 0.500000 +0.522768 +0.171581 0.759615 0.650524 0.760630 0.113186 0.122066 0.558612 0.790639 0.500000 1 1 1 0 0.500000 0.500000 1 0.884887 0.876939 0.886106 0.500000 0.883297 0.500000 0.861169 0.864930 0.500000 0.500000 0.500000 0.863069 0.500000 0.886331 0.912255 0.899254 +0.615125 +0.654315 0.477156 0.561975 0.520892 0.432395 0.268534 0.655150 0.113405 0.500000 0.500000 0.500000 0.500000 1 0.500000 0 1 0.880030 0.500000 0.884652 0.924319 0.864021 0.500000 0.500000 0.500000 0.892537 0.500000 0.870641 0.906458 0.866049 0.909435 0.881074 0.500000 +0.542986 +0.187682 0.171027 0.250925 0.700076 0.785927 0.479356 0.743674 0.727226 0 0.500000 0 0 1 0.500000 0 0.500000 0.854028 0.500000 0.858462 0.500000 0.890658 0.890911 0.867418 0.871415 0.500000 0.872260 0.872073 0.500000 0.867971 0.500000 0.500000 0.886140 +0.428087 +0.613707 0.370636 0.673176 0.676961 0.287956 0.681210 0.497872 0.733276 0.500000 0 0 1 0 0 1 0.500000 0.500000 0.500000 0.902756 0.886881 0.879320 0.500000 0.921844 0.894916 0.500000 0.829605 0.500000 0.500000 0.841755 0.500000 0.858530 0.500000 +0.364731 +0.125431 0.320628 0.191630 0.133241 0.385921 0.766860 0.819507 0.856325 0.500000 0 0 0 0 1 0.500000 1 0.872831 0.885190 0.500000 0.891961 0.857752 0.885221 0.885562 0.500000 0.500000 0.500000 0.893259 0.500000 0.871119 0.831567 0.500000 0.903326 +0.619754 +0.351933 0.744267 0.294095 0.649217 0.395875 0.868921 0.149451 0.828008 0.500000 0.500000 0 0 0.500000 0 0.500000 1 0.894181 0.905257 0.868253 0.870161 0.892713 0.906102 0.866400 0.912273 0.500000 0.500000 0.500000 0.500000 0.865928 0.895864 0.870168 0.889207 +0.704185 +0.806473 0.194421 0.632127 0.353115 0.607204 0.676128 0.678924 0.481650 1 0.500000 0 1 0 0 1 1 0.871865 0.500000 0.889075 0.887508 0.870395 0.865687 0.500000 0.870747 0.913509 0.911887 0.918112 0.500000 0.500000 0.920469 0.500000 0.500000 +0.507537 +0.469930 0.715176 0.162399 0.847036 0.334633 0.382553 0.159771 0.666086 1 0 1 0.500000 1 0 1 0.500000 0.841171 0.905089 0.500000 0.878243 0.861248 0.887725 0.896672 0.869716 0.500000 0.920008 0.500000 0.500000 0.500000 0.500000 0.891092 0.852691 +0.648565 +0.237088 0.135920 0.609101 0.556367 0.661428 0.820808 0.318680 0.253327 0 0.500000 1 0 0 0.500000 0 1 0.875917 0.895310 0.907779 0.888662 0.872956 0.500000 0.898122 0.874717 0.500000 0.500000 0.874572 0.891082 0.889519 0.878976 0.890666 0.888924 +0.770359 +0.429672 0.105649 0.650520 0.687820 0.390836 0.174632 0.844705 0.350476 0 1 0.500000 0 1 1 0 0.500000 0.904546 0.888170 0.878045 0.500000 0.500000 0.500000 0.500000 0.901315 0.895367 0.500000 0.500000 0.903352 0.500000 0.500000 0.500000 0.500000 +0.268357 +0.489398 0.717455 0.864694 0.318820 0.212846 0.696627 0.403162 0.150147 0.500000 1 0.500000 1 0 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.868306 0.886803 0.892046 0.893785 0.898324 0.917374 0.886248 0.500000 0.878514 0.900604 0.500000 0.877467 0.500000 +0.590168 +0.183603 0.416509 0.466406 0.683892 0.778153 0.222486 0.316094 0.798707 1 1 0 1 1 0 0 1 0.862246 0.500000 0.869268 0.886149 0.878376 0.865025 0.500000 0.500000 0.892198 0.500000 0.840862 0.500000 0.862757 0.868279 0.899955 0.883830 +0.618237 +0.282729 0.819834 0.754243 0.756738 0.293367 0.420446 0.244369 0.103664 1 0 0.500000 1 1 1 0 0.500000 0.887451 0.870677 0.880288 0.906929 0.872551 0.902594 0.500000 0.855399 0.878125 0.880996 0.905332 0.880564 0.500000 0.500000 0.500000 0.860716 +0.706285 +0.596084 0.182242 0.741159 0.853105 0.734283 0.488160 0.706012 0.544580 0 0 1 0.500000 0 1 0 0.500000 0.880288 0.870592 0.910064 0.915317 0.877497 0.877686 0.848970 0.500000 0.862062 0.908812 0.500000 0.500000 0.500000 0.500000 0.500000 0.897884 +0.553187 +0.598983 0.899074 0.537165 0.324594 0.445067 0.441949 0.828985 0.155309 1 0 0 0 0.500000 0.500000 0.500000 0 0.876297 0.885517 0.878537 0.500000 0.885443 0.500000 0.852870 0.856082 0.889769 0.874247 0.874051 0.500000 0.500000 0.500000 0.867290 0.852763 +0.545263 +0.864373 0.520748 0.412075 0.344475 0.198051 0.842807 0.463643 0.653324 0.500000 0 0.500000 0 0.500000 1 0.500000 1 0.887602 0.872290 0.851087 0.857844 0.500000 0.870433 0.500000 0.871799 0.500000 0.882263 0.500000 0.914951 0.500000 0.887290 0.891537 0.903232 +0.538512 +0.858171 0.276890 0.298333 0.674337 0.177688 0.195924 0.292122 0.288622 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.860713 0.500000 0.864556 0.927469 0.500000 0.861267 0.895634 0.886590 0.883964 0.891812 0.885974 0.857889 0.500000 0.896583 0.500000 +0.544317 +0.393308 0.135082 0.129074 0.751223 0.408775 0.884431 0.833320 0.216747 1 0.500000 0 0.500000 0 0.500000 0 0.500000 0.871522 0.862644 0.895927 0.871782 0.901984 0.877942 0.887444 0.892460 0.851233 0.500000 0.500000 0.888461 0.872989 0.500000 0.921336 0.899440 +0.769829 +0.151103 0.588434 0.409496 0.195180 0.594981 0.853745 0.288616 0.562222 1 0 0.500000 0 0.500000 0 0.500000 0.500000 0.500000 0.858562 0.875382 0.500000 0.890737 0.500000 0.894313 0.865002 0.500000 0.500000 0.500000 0.870859 0.500000 0.500000 0.858815 0.500000 +0.338956 +0.713929 0.800753 0.853692 0.198407 0.422817 0.888189 0.794813 0.216061 0 1 0.500000 0.500000 1 0.500000 1 0 0.864840 0.875787 0.909250 0.881110 0.500000 0.893239 0.873926 0.902235 0.901260 0.500000 0.911304 0.891286 0.897206 0.500000 0.870163 0.500000 +0.628707 +0.185960 0.829145 0.436523 0.841021 0.832675 0.566475 0.148469 0.324643 0.500000 0.500000 1 1 0 0 1 0 0.500000 0.885433 0.873585 0.500000 0.842924 0.500000 0.901357 0.882858 0.500000 0.500000 0.500000 0.500000 0.887225 0.500000 0.500000 0.500000 +0.317400 +0.231229 0.869225 0.470896 0.146734 0.757806 0.647603 0.461477 0.243614 0 0.500000 0.500000 1 0.500000 0.500000 0 1 0.500000 0.894107 0.500000 0.882978 0.853779 0.896086 0.860157 0.873671 0.500000 0.500000 0.500000 0.851463 0.500000 0.500000 0.500000 0.897590 +0.456614 +0.507637 0.859359 0.241877 0.627893 0.392961 0.694263 0.677783 0.499269 0 1 0.500000 0.500000 1 1 0.500000 1 0.873847 0.897621 0.887652 0.871577 0.883035 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.913441 0.500000 0.898490 0.500000 +0.333224 +0.810351 0.562820 0.308609 0.597504 0.850420 0.417343 0.875951 0.712331 0 0 0 0 1 1 0.500000 0.500000 0.900949 0.904048 0.879423 0.873717 0.874359 0.874185 0.914661 0.879722 0.500000 0.500000 0.500000 0.872275 0.500000 0.500000 0.908929 0.850388 +0.720252 +0.405263 0.259382 0.427637 0.299163 0.228171 0.667535 0.268362 0.153771 1 0.500000 0 0 0 0.500000 0 0.500000 0.500000 0.866425 0.891335 0.500000 0.870824 0.893557 0.500000 0.900307 0.859435 0.883586 0.925185 0.863745 0.883670 0.500000 0.500000 0.855875 +0.603664 +0.711233 0.291560 0.442025 0.511107 0.780993 0.746853 0.552571 0.857047 0.500000 0 0.500000 0 1 0.500000 0.500000 0.500000 0.902952 0.875438 0.500000 0.500000 0.845511 0.882192 0.867775 0.856291 0.879570 0.879523 0.500000 0.876125 0.500000 0.500000 0.500000 0.888954 +0.439469 +0.535980 0.418443 0.163983 0.261894 0.260642 0.804434 0.318918 0.256947 0 1 0 1 0 1 0 1 0.905327 0.893501 0.500000 0.903915 0.899097 0.880378 0.878220 0.895719 0.875630 0.874940 0.864021 0.872292 0.500000 0.881413 0.901402 0.897656 +0.851346 +0.521187 0.586794 0.844710 0.443829 0.425998 0.743105 0.767760 0.749607 0.500000 0.500000 0 1 0.500000 1 1 1 0.870772 0.856458 0.877770 0.890901 0.889649 0.862307 0.871210 0.858305 0.500000 0.894947 0.500000 0.858479 0.500000 0.500000 0.880950 0.902324 +0.656369 +0.302938 0.476252 0.570191 0.204637 0.328030 0.596697 0.891968 0.311321 0.500000 0 0.500000 0 1 0 0 1 0.890787 0.500000 0.898226 0.911181 0.500000 0.876630 0.884125 0.890839 0.881584 0.889926 0.500000 0.500000 0.500000 0.500000 0.500000 0.889160 +0.530468 +0.475829 0.650405 0.363698 0.867775 0.899444 0.359391 0.485837 0.864551 0 1 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.880493 0.868721 0.500000 0.888637 0.873874 0.905309 0.500000 0.889061 0.877995 0.883311 0.500000 0.904730 0.885273 0.500000 +0.531597 +0.262679 0.644818 0.857735 0.155003 0.530783 0.266726 0.666348 0.308421 1 0 0.500000 1 0.500000 0 0.500000 1 0.500000 0.884486 0.500000 0.846238 0.875486 0.851546 0.870519 0.896507 0.864513 0.500000 0.500000 0.500000 0.868463 0.869356 0.500000 0.892419 +0.528128 +0.149042 0.345167 0.621036 0.348590 0.559025 0.532685 0.229518 0.109441 0.500000 0 0 1 1 1 0.500000 1 0.892020 0.866164 0.866363 0.500000 0.500000 0.877643 0.893709 0.500000 0.500000 0.500000 0.500000 0.902471 0.500000 0.500000 0.500000 0.500000 +0.358208 +0.150981 0.141857 0.393587 0.816879 0.686244 0.299803 0.586893 0.107989 1 0 0.500000 0 1 1 1 0 0.879164 0.500000 0.500000 0.882750 0.500000 0.878162 0.873880 0.879240 0.871272 0.893174 0.884459 0.500000 0.875751 0.863226 0.500000 0.897237 +0.612017 +0.691257 0.564223 0.699703 0.109837 0.622440 0.746121 0.248034 0.114521 0 1 1 0.500000 1 0.500000 0 0 0.500000 0.897066 0.500000 0.868900 0.500000 0.867011 0.845127 0.500000 0.500000 0.895091 0.500000 0.500000 0.893962 0.500000 0.894932 0.888307 +0.335150 +0.861035 0.414984 0.443211 0.447944 0.795437 0.304254 0.196352 0.281706 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.500000 0 0.877920 0.865709 0.500000 0.875553 0.896111 0.879206 0.885189 0.867995 0.890935 0.500000 0.500000 0.902973 0.500000 0.874574 0.884876 0.871619 +0.711797 +0.772939 0.592019 0.663367 0.601595 0.806446 0.531601 0.413487 0.876782 0 0.500000 0 1 0 1 0.500000 0 0.868079 0.899535 0.500000 0.500000 0.923454 0.890022 0.881181 0.894029 0.861901 0.500000 0.888768 0.500000 0.856961 0.500000 0.500000 0.500000 +0.437196 +0.793058 0.324449 0.409827 0.154250 0.685900 0.114100 0.277321 0.330956 0 1 0.500000 0.500000 0 0 0 1 0.866484 0.500000 0.500000 0.897261 0.881914 0.892099 0.500000 0.500000 0.877766 0.876710 0.500000 0.500000 0.500000 0.500000 0.500000 0.895032 +0.282030 +0.707411 0.856227 0.405875 0.137715 0.373424 0.341896 0.844905 0.523146 1 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.867196 0.500000 0.858258 0.500000 0.500000 0.500000 0.500000 0.871190 0.875628 0.500000 0.889807 +0.251640 +0.130666 0.306975 0.330661 0.815565 0.195603 0.496523 0.453792 0.681743 1 1 1 0 1 0 1 0 0.888003 0.850635 0.876916 0.916295 0.850331 0.853973 0.878275 0.868828 0.500000 0.879517 0.500000 0.884730 0.882902 0.881896 0.500000 0.500000 +0.829597 +0.420714 0.733593 0.894634 0.308464 0.547631 0.239674 0.394546 0.142456 1 1 0 1 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.876607 0.854479 0.500000 0.881261 0.500000 0.500000 0.500000 0.500000 0.500000 0.852549 0.897801 +0.201926 +0.133157 0.562166 0.528132 0.512746 0.325086 0.712293 0.501083 0.296737 0 0 0.500000 0 0 0.500000 0 0 0.875154 0.500000 0.874732 0.891234 0.863939 0.500000 0.872651 0.861642 0.883642 0.874422 0.867624 0.864894 0.863706 0.500000 0.500000 0.500000 +0.503686 +0.192921 0.219941 0.755649 0.393588 0.828224 0.163422 0.425278 0.646124 0.500000 0.500000 0.500000 1 1 0.500000 1 1 0.866467 0.890907 0.893808 0.500000 0.862002 0.500000 0.857008 0.890338 0.500000 0.500000 0.500000 0.879153 0.500000 0.500000 0.500000 0.500000 +0.480226 +0.897590 0.396911 0.686499 0.591734 0.668069 0.430807 0.767241 0.825810 0.500000 1 0 0 0 1 1 0 0.500000 0.881709 0.880762 0.910805 0.895605 0.500000 0.855013 0.500000 0.500000 0.893939 0.500000 0.500000 0.895833 0.500000 0.500000 0.500000 +0.319440 +0.372165 0.785060 0.299125 0.390184 0.422737 0.335949 0.895777 0.328493 0.500000 0.500000 1 1 1 0 0.500000 0 0.900468 0.865605 0.500000 0.869695 0.500000 0.864874 0.888141 0.879374 0.907515 0.852686 0.894237 0.890085 0.877147 0.500000 0.500000 0.500000 +0.665927 +0.222537 0.380639 0.799397 0.472609 0.131456 0.788192 0.147305 0.753160 0 1 0 0 0 0 0.500000 1 0.858431 0.870784 0.500000 0.872848 0.844025 0.850673 0.896366 0.881255 0.500000 0.500000 0.863668 0.865016 0.500000 0.500000 0.500000 0.500000 +0.551416 +0.531866 0.870623 0.762820 0.117445 0.503667 0.528829 0.233341 0.370162 1 1 0.500000 1 0.500000 0 0 0 0.867749 0.867932 0.500000 0.888696 0.867319 0.867024 0.887062 0.914250 0.500000 0.896638 0.500000 0.500000 0.894629 0.876320 0.500000 0.888201 +0.674347 +0.254890 0.130610 0.162451 0.119006 0.338377 0.896162 0.389029 0.208182 1 1 1 1 0.500000 1 1 0.500000 0.500000 0.500000 0.888911 0.877571 0.851581 0.500000 0.888919 0.500000 0.859487 0.500000 0.500000 0.500000 0.500000 0.500000 0.849790 0.500000 +0.352872 +0.212998 0.851448 0.883033 0.538072 0.368783 0.738352 0.879551 0.422106 0 0.500000 1 0.500000 0.500000 0 0 0.500000 0.889524 0.872610 0.500000 0.500000 0.884349 0.844456 0.850226 0.912735 0.884460 0.904757 0.885731 0.500000 0.500000 0.500000 0.906906 0.893425 +0.505659 +0.786826 0.381607 0.267633 0.706706 0.200805 0.733014 0.768748 0.552066 0.500000 0.500000 0 0.500000 0.500000 0 0 1 0.910808 0.884105 0.857114 0.843906 0.880342 0.857869 0.895586 0.866053 0.500000 0.921640 0.896331 0.500000 0.500000 0.500000 0.500000 0.500000 +0.601202 +0.459586 0.468918 0.511838 0.257398 0.689953 0.234060 0.452461 0.712746 0 0 1 0 0 1 1 1 0.500000 0.896799 0.878888 0.500000 0.500000 0.895339 0.884413 0.892039 0.500000 0.875973 0.500000 0.889794 0.883828 0.856637 0.500000 0.866850 +0.545538 +0.200198 0.129294 0.451618 0.148233 0.343545 0.552575 0.133588 0.620992 0.500000 0.500000 0 0.500000 1 0.500000 1 0 0.878298 0.861626 0.883078 0.874525 0.843192 0.500000 0.869050 0.876044 0.851099 0.500000 0.500000 0.500000 0.895946 0.853020 0.500000 0.865181 +0.616728 +0.194653 0.539082 0.543107 0.206465 0.656584 0.214909 0.183302 0.152811 0.500000 0.500000 1 0.500000 1 0 0 1 0.909899 0.500000 0.908023 0.866068 0.893510 0.886564 0.500000 0.500000 0.869110 0.500000 0.893289 0.884920 0.904657 0.872264 0.871933 0.865825 +0.704459 +0.123151 0.397145 0.620746 0.280301 0.814209 0.616003 0.569137 0.881936 0.500000 1 1 0.500000 0 0.500000 0.500000 0 0.891474 0.874591 0.904032 0.902930 0.835312 0.876778 0.885239 0.880047 0.882344 0.913532 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.710428 +0.456827 0.497618 0.464787 0.678550 0.589105 0.490255 0.721794 0.185318 0.500000 0 0.500000 0 0.500000 0.500000 1 0 0.859398 0.901007 0.877177 0.500000 0.500000 0.876719 0.500000 0.901061 0.500000 0.918268 0.872488 0.500000 0.500000 0.500000 0.882045 0.851913 +0.409316 +0.497222 0.203232 0.722492 0.718223 0.174766 0.697860 0.332610 0.775162 0 0 0 0.500000 0 1 1 0.500000 0.500000 0.896256 0.843287 0.500000 0.888330 0.874801 0.500000 0.873231 0.500000 0.500000 0.897005 0.500000 0.856870 0.879311 0.500000 0.899592 +0.474926 +0.145767 0.510977 0.195664 0.723805 0.398633 0.831850 0.303684 0.211403 0.500000 1 1 1 0.500000 1 0 0 0.500000 0.500000 0.874755 0.858952 0.869905 0.885217 0.879732 0.500000 0.890657 0.894462 0.500000 0.882412 0.500000 0.500000 0.875486 0.874882 +0.550498 +0.893781 0.369841 0.123507 0.778207 0.323971 0.375144 0.451108 0.367965 0.500000 0.500000 0 0 0.500000 0 0 0 0.500000 0.890416 0.892950 0.500000 0.901137 0.888471 0.500000 0.873818 0.862410 0.863509 0.910195 0.880318 0.896724 0.848168 0.892560 0.909885 +0.674123 +0.679813 0.215527 0.164818 0.692796 0.829397 0.673600 0.600147 0.468910 0.500000 0 1 0 0 1 0.500000 1 0.870716 0.859764 0.871462 0.891639 0.866552 0.500000 0.854989 0.868171 0.500000 0.889245 0.500000 0.902662 0.883489 0.876039 0.500000 0.500000 +0.542436 +0.605991 0.296325 0.530902 0.667497 0.417890 0.479893 0.161022 0.104587 0.500000 0 1 0.500000 0 0.500000 1 1 0.898647 0.835770 0.884719 0.894910 0.906262 0.500000 0.887420 0.892294 0.888769 0.500000 0.500000 0.500000 0.500000 0.876695 0.901717 0.892894 +0.610954 +0.173748 0.390544 0.869170 0.348010 0.410756 0.578213 0.624046 0.548841 0.500000 1 1 0 0 0.500000 0.500000 1 0.887486 0.892390 0.500000 0.866266 0.500000 0.863462 0.500000 0.858673 0.888612 0.500000 0.892615 0.500000 0.500000 0.894283 0.883928 0.925382 +0.533892 +0.366251 0.581173 0.773865 0.154429 0.483117 0.751598 0.313930 0.420078 0.500000 1 0 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.862868 0.500000 0.901127 0.865435 0.500000 0.897368 0.500000 0.500000 0.500000 0.871506 0.880867 0.904883 0.500000 0.911053 +0.450711 +0.425166 0.368603 0.112922 0.474634 0.579431 0.296795 0.439636 0.359322 0 1 1 0.500000 0 0.500000 0.500000 0.500000 0.910682 0.887405 0.883230 0.909834 0.500000 0.857597 0.500000 0.851700 0.500000 0.500000 0.902391 0.878667 0.500000 0.878895 0.500000 0.500000 +0.559490 +0.419111 0.206049 0.865683 0.138266 0.831493 0.705930 0.764384 0.807923 0.500000 1 0 1 0 0 0.500000 0 0.879923 0.906074 0.885470 0.883606 0.863208 0.892855 0.908843 0.893090 0.895566 0.883659 0.904132 0.500000 0.500000 0.859162 0.895415 0.871516 +0.784775 +0.560660 0.814880 0.688899 0.126581 0.440045 0.842583 0.689017 0.504254 1 1 0 0 1 0.500000 0 0.500000 0.909787 0.500000 0.846405 0.891374 0.887799 0.851002 0.878674 0.823899 0.500000 0.500000 0.853771 0.867414 0.500000 0.879106 0.863160 0.500000 +0.603505 +0.339336 0.213323 0.722894 0.276875 0.841239 0.510611 0.445096 0.122550 1 0.500000 1 0 0 0 0 0 0.882942 0.885806 0.885115 0.879764 0.878757 0.858308 0.500000 0.875310 0.884792 0.856608 0.500000 0.500000 0.888122 0.500000 0.899416 0.881408 +0.616798 +0.665298 0.263615 0.381969 0.747989 0.456156 0.411493 0.155866 0.645204 0 1 0 0.500000 0.500000 0 0.500000 1 0.881247 0.887301 0.896603 0.500000 0.851947 0.887331 0.500000 0.877556 0.886172 0.864771 0.500000 0.500000 0.500000 0.500000 0.892557 0.868889 +0.546615 +0.513263 0.203302 0.294218 0.324482 0.176700 0.394091 0.486113 0.693535 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.917624 0.500000 0.911943 0.864950 0.888581 0.500000 0.500000 0.897697 0.869399 0.915621 0.867483 0.500000 0.903057 0.888259 0.914859 +0.635732 +0.687692 0.644175 0.453489 0.385543 0.823851 0.261887 0.131024 0.728202 1 0 1 1 0 0 0.500000 1 0.890518 0.858937 0.876559 0.500000 0.897233 0.849004 0.915039 0.913891 0.500000 0.500000 0.500000 0.500000 0.865080 0.868951 0.875435 0.500000 +0.647084 +0.352265 0.724136 0.359839 0.806277 0.893171 0.519865 0.765434 0.844677 1 0.500000 0.500000 0 1 0 1 1 0.500000 0.500000 0.859982 0.842546 0.884818 0.875247 0.875018 0.500000 0.897958 0.500000 0.500000 0.500000 0.500000 0.500000 0.887388 0.500000 +0.351355 +0.846398 0.813916 0.489598 0.877321 0.542374 0.688123 0.681400 0.497861 0.500000 0.500000 1 1 1 0 0.500000 0 0.846317 0.898880 0.500000 0.878741 0.500000 0.864776 0.500000 0.500000 0.878562 0.870597 0.500000 0.862471 0.854455 0.500000 0.870086 0.500000 +0.477908 +0.370184 0.290376 0.555246 0.212356 0.475232 0.229316 0.707162 0.665256 0 1 0 0.500000 1 0.500000 0 1 0.858745 0.860432 0.880473 0.871990 0.855610 0.875332 0.892794 0.860041 0.500000 0.500000 0.500000 0.500000 0.500000 0.894083 0.889735 0.877095 +0.658540 +0.591339 0.440455 0.527828 0.205521 0.784213 0.467367 0.835634 0.698581 0.500000 0.500000 1 1 0.500000 1 1 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.860219 0.500000 0.879263 0.882245 0.500000 0.500000 0.882365 0.915327 0.902612 0.500000 0.500000 +0.323878 +0.388892 0.299566 0.600128 0.148248 0.610161 0.771481 0.886736 0.379846 0 0.500000 0.500000 1 0 0.500000 0.500000 0.500000 0.870142 0.500000 0.500000 0.888728 0.921282 0.861522 0.883289 0.500000 0.895613 0.500000 0.895744 0.901865 0.886335 0.500000 0.500000 0.849989 +0.527665 +0.845205 0.761750 0.534308 0.319892 0.630250 0.805453 0.644085 0.531773 0 0 0.500000 1 0 1 1 1 0.881535 0.916647 0.878643 0.500000 0.500000 0.860602 0.892537 0.872684 0.500000 0.877131 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.463098 +0.104767 0.219988 0.745405 0.219174 0.659045 0.764774 0.154098 0.530033 0.500000 0.500000 1 0 1 0 0.500000 1 0.838838 0.866792 0.841360 0.500000 0.882729 0.853866 0.866044 0.884319 0.886227 0.879126 0.500000 0.891391 0.842882 0.892870 0.500000 0.500000 +0.681597 +0.411048 0.676011 0.318939 0.599829 0.731201 0.700298 0.513320 0.371568 0 0 0.500000 1 0 0 0.500000 0.500000 0.882636 0.910763 0.500000 0.888250 0.917072 0.868659 0.500000 0.870536 0.864855 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.882074 +0.432901 +0.737138 0.478223 0.892551 0.496881 0.885631 0.202137 0.716462 0.168989 0.500000 1 1 0.500000 0 0.500000 0 1 0.888310 0.871740 0.865866 0.903610 0.872080 0.920555 0.925673 0.883665 0.896241 0.903265 0.500000 0.882573 0.896031 0.500000 0.500000 0.500000 +0.750532 +0.778944 0.714246 0.540447 0.287793 0.339339 0.264865 0.578151 0.391285 0.500000 0 1 0 0 0 0.500000 0 0.500000 0.889735 0.878034 0.500000 0.870933 0.905593 0.884136 0.886157 0.904879 0.860966 0.833869 0.500000 0.500000 0.500000 0.886300 0.500000 +0.570279 +0.355012 0.481840 0.877575 0.804672 0.314618 0.780226 0.661988 0.630439 1 0 0 1 1 0 0.500000 0.500000 0.882938 0.897644 0.879808 0.500000 0.891407 0.889477 0.888221 0.500000 0.500000 0.500000 0.890393 0.871934 0.868007 0.896623 0.500000 0.500000 +0.525690 +0.304999 0.724484 0.606224 0.207243 0.131630 0.505293 0.658774 0.209207 0 1 0 0.500000 0.500000 0.500000 0.500000 1 0.889356 0.500000 0.872714 0.864658 0.500000 0.907228 0.500000 0.888556 0.872990 0.857277 0.905701 0.500000 0.886539 0.500000 0.887537 0.902645 +0.634463 +0.139740 0.807424 0.176625 0.728373 0.363633 0.573924 0.546792 0.532656 0.500000 0 1 1 0 0.500000 1 0 0.500000 0.500000 0.500000 0.500000 0.877769 0.881945 0.885129 0.872983 0.879707 0.500000 0.500000 0.500000 0.894677 0.500000 0.877094 0.888317 +0.424828 +0.231524 0.226166 0.570545 0.556021 0.439962 0.236159 0.527566 0.609919 1 1 0.500000 0.500000 0 1 0 1 0.891267 0.500000 0.891535 0.896535 0.880991 0.875520 0.500000 0.875705 0.868409 0.886551 0.897477 0.868701 0.500000 0.903058 0.500000 0.500000 +0.718648 +0.129288 0.340058 0.355985 0.843040 0.370135 0.256279 0.289167 0.224022 0.500000 0.500000 0 0.500000 0.500000 0.500000 0 1 0.884799 0.500000 0.897969 0.888605 0.500000 0.500000 0.868200 0.883421 0.856500 0.500000 0.500000 0.500000 0.500000 0.884942 0.500000 0.888077 +0.480134 +0.623281 0.483223 0.131960 0.445667 0.132223 0.879569 0.708876 0.682931 0.500000 1 0 0.500000 1 0.500000 0.500000 0 0.500000 0.898397 0.866388 0.500000 0.500000 0.500000 0.886138 0.869151 0.500000 0.500000 0.848623 0.871396 0.500000 0.500000 0.896106 0.888844 +0.353989 +0.142687 0.742055 0.724419 0.315673 0.110922 0.468098 0.328230 0.767057 0 0 1 1 1 0.500000 0 1 0.500000 0.877785 0.885837 0.884377 0.898382 0.500000 0.879312 0.899020 0.500000 0.500000 0.500000 0.500000 0.500000 0.890194 0.500000 0.882029 +0.516710 +0.649080 0.491347 0.672745 0.624215 0.177842 0.393258 0.885258 0.324656 1 0.500000 1 0.500000 1 1 1 0 0.872747 0.500000 0.862110 0.863542 0.500000 0.861959 0.912030 0.891000 0.884033 0.500000 0.881675 0.500000 0.500000 0.899857 0.500000 0.875051 +0.553721 +0.518871 0.873623 0.775025 0.450040 0.817986 0.898871 0.330953 0.132747 1 1 0.500000 0 0.500000 0.500000 1 1 0.881833 0.889360 0.500000 0.864142 0.883901 0.870169 0.873330 0.500000 0.500000 0.500000 0.869967 0.500000 0.890266 0.500000 0.500000 0.500000 +0.416618 +0.189799 0.559156 0.333472 0.866004 0.735011 0.723455 0.107418 0.782433 0 0 1 1 0.500000 1 0 1 0.888072 0.872145 0.873156 0.837832 0.870602 0.500000 0.868225 0.896200 0.500000 0.882592 0.500000 0.877394 0.887831 0.870488 0.878793 0.862078 +0.776186 +0.244437 0.450503 0.598293 0.508209 0.862464 0.433454 0.465848 0.110914 0 0.500000 0 0 1 0 1 0 0.886397 0.500000 0.500000 0.906519 0.500000 0.500000 0.872543 0.866629 0.500000 0.500000 0.500000 0.912296 0.894785 0.500000 0.860586 0.894893 +0.353169 +0.553802 0.749854 0.599131 0.187916 0.100866 0.257410 0.889300 0.259370 0 1 1 0.500000 1 0.500000 0 0.500000 0.500000 0.881533 0.500000 0.900169 0.898164 0.500000 0.885315 0.874399 0.500000 0.500000 0.500000 0.904278 0.889720 0.500000 0.887591 0.880893 +0.465066 +0.217498 0.491122 0.880086 0.612081 0.238706 0.139328 0.282008 0.702962 0.500000 0 0 0 0.500000 0 0.500000 0 0.847213 0.500000 0.500000 0.868544 0.500000 0.500000 0.902339 0.500000 0.886252 0.500000 0.500000 0.500000 0.863212 0.500000 0.857596 0.857565 +0.191657 +0.452072 0.575605 0.799271 0.751606 0.443798 0.705519 0.259273 0.195897 1 0 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.885272 0.500000 0.884781 0.866405 0.500000 0.891466 0.500000 0.883172 0.910531 0.876963 0.500000 0.899142 0.500000 0.500000 0.500000 0.867287 +0.475798 +0.512872 0.846908 0.585112 0.571194 0.251303 0.656973 0.344199 0.350740 1 1 1 0 0 0.500000 0 0.500000 0.500000 0.887463 0.861802 0.908292 0.865966 0.900153 0.890027 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.468846 +0.425824 0.228409 0.664700 0.615515 0.362218 0.800382 0.225542 0.489365 0 0 0 0 0 0 0.500000 1 0.879987 0.500000 0.500000 0.877414 0.888421 0.913537 0.500000 0.500000 0.500000 0.500000 0.500000 0.844844 0.500000 0.866534 0.500000 0.910487 +0.337829 +0.646926 0.284127 0.330235 0.859364 0.335643 0.555825 0.349205 0.489764 0.500000 0.500000 1 0.500000 0.500000 0.500000 0 0.500000 0.882791 0.882513 0.500000 0.869007 0.870273 0.896490 0.862752 0.500000 0.882276 0.500000 0.887413 0.500000 0.883056 0.500000 0.879998 0.872357 +0.592612 +0.530911 0.820887 0.853308 0.139724 0.536688 0.316227 0.624583 0.771349 0 0.500000 0 1 1 1 1 0 0.894966 0.867950 0.873530 0.833486 0.500000 0.877418 0.897855 0.894174 0.851505 0.900896 0.899397 0.890973 0.500000 0.500000 0.883856 0.860462 +0.701043 +0.443390 0.248843 0.108311 0.577607 0.834496 0.767723 0.120404 0.637564 0.500000 0.500000 0 0.500000 0 0 1 0.500000 0.884710 0.849224 0.910409 0.500000 0.919841 0.500000 0.877463 0.875648 0.500000 0.865823 0.871925 0.881931 0.892995 0.854945 0.868468 0.882424 +0.682071 +0.703121 0.750560 0.454903 0.153669 0.520951 0.626294 0.725787 0.895195 0 0 1 0.500000 1 0.500000 0.500000 0 0.500000 0.891821 0.500000 0.871729 0.879459 0.500000 0.888077 0.902446 0.856926 0.500000 0.881801 0.500000 0.500000 0.500000 0.917155 0.898117 +0.444838 +0.243873 0.581836 0.710225 0.156236 0.453018 0.466516 0.133526 0.377161 1 0 0.500000 0 0.500000 0.500000 0.500000 1 0.500000 0.864380 0.500000 0.863033 0.901809 0.500000 0.867842 0.888835 0.500000 0.897845 0.898355 0.500000 0.882882 0.500000 0.885718 0.906110 +0.498307 +0.285332 0.570710 0.119067 0.561609 0.757044 0.637821 0.860270 0.352691 1 0 1 1 1 0.500000 0 0 0.500000 0.882065 0.850547 0.861862 0.500000 0.892051 0.871122 0.500000 0.898818 0.886456 0.849251 0.898669 0.500000 0.500000 0.500000 0.868752 +0.545557 +0.187573 0.734216 0.163429 0.557863 0.201485 0.166019 0.873647 0.381615 0.500000 0 0 0.500000 0 0 1 0.500000 0.500000 0.867498 0.897537 0.891282 0.860452 0.873668 0.894780 0.872298 0.843135 0.900686 0.500000 0.888293 0.500000 0.500000 0.876595 0.911293 +0.762000 +0.864796 0.427260 0.364925 0.698103 0.424680 0.202150 0.134348 0.581011 0.500000 1 0 0 0 1 1 0 0.886712 0.879691 0.885198 0.876192 0.895749 0.500000 0.896002 0.500000 0.873430 0.887104 0.855669 0.500000 0.500000 0.500000 0.840038 0.500000 +0.509457 +0.463280 0.142470 0.295838 0.342147 0.258842 0.151340 0.579181 0.895663 1 1 0.500000 0 0 1 0.500000 0.500000 0.857951 0.918388 0.870331 0.500000 0.500000 0.860304 0.846237 0.867768 0.871544 0.500000 0.853312 0.500000 0.500000 0.500000 0.877272 0.500000 +0.475595 +0.128481 0.376340 0.551340 0.175734 0.166421 0.438679 0.277693 0.178189 0.500000 0.500000 0 0 0.500000 0.500000 1 0 0.500000 0.500000 0.894403 0.883572 0.893227 0.870720 0.886713 0.902535 0.898599 0.870619 0.871939 0.868722 0.865916 0.500000 0.893213 0.500000 +0.730681 +0.660733 0.344604 0.755938 0.441754 0.763079 0.467698 0.804440 0.422508 0.500000 1 0 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.849384 0.872727 0.881390 0.863233 0.500000 0.886092 0.870764 0.500000 0.846063 0.874719 0.871759 0.500000 0.855602 0.862111 0.892210 +0.694721 +0.833847 0.266135 0.336551 0.613876 0.822220 0.855513 0.409735 0.215423 1 0.500000 0 1 0 0.500000 1 1 0.500000 0.884074 0.500000 0.893576 0.838179 0.873280 0.858942 0.902900 0.864585 0.500000 0.876058 0.874958 0.500000 0.500000 0.500000 0.884237 +0.469433 +0.137272 0.135011 0.534526 0.780774 0.261722 0.564415 0.730554 0.213387 0 0.500000 1 0.500000 0 1 0 0.500000 0.911110 0.886579 0.895738 0.500000 0.939991 0.888262 0.911468 0.500000 0.500000 0.500000 0.500000 0.876639 0.886323 0.865378 0.500000 0.500000 +0.581016 +0.693208 0.549823 0.278769 0.677150 0.263083 0.235709 0.154665 0.457197 0 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.888919 0.500000 0.845328 0.887021 0.864399 0.896750 0.881593 0.867480 0.500000 0.500000 0.500000 0.882687 0.500000 0.500000 0.912361 +0.469700 +0.804046 0.199152 0.144689 0.782476 0.881628 0.114214 0.586654 0.100212 0.500000 0 1 0.500000 0.500000 0.500000 0 0 0.875565 0.927259 0.893814 0.848590 0.500000 0.895510 0.875860 0.915083 0.915992 0.500000 0.888750 0.500000 0.873241 0.867277 0.500000 0.878969 +0.679040 +0.436173 0.567130 0.755306 0.228672 0.283017 0.874124 0.404263 0.246619 0 0 0.500000 0 0.500000 0.500000 0 1 0.876286 0.902115 0.885528 0.881318 0.849342 0.870209 0.886057 0.889664 0.891119 0.900173 0.865615 0.836539 0.858076 0.895591 0.500000 0.881111 +0.835322 +0.855671 0.656388 0.107085 0.779298 0.256658 0.257458 0.101314 0.578426 0 1 0.500000 1 0 1 0.500000 1 0.883023 0.880476 0.912830 0.500000 0.500000 0.500000 0.915606 0.500000 0.500000 0.500000 0.885075 0.857197 0.500000 0.500000 0.500000 0.500000 +0.243697 +0.537783 0.322382 0.878422 0.639835 0.314413 0.543818 0.144740 0.841085 0 0 0 0.500000 0 0.500000 0.500000 0 0.868237 0.893571 0.902711 0.876969 0.895988 0.885190 0.868783 0.500000 0.836082 0.877661 0.879664 0.500000 0.852013 0.500000 0.500000 0.500000 +0.612692 +0.211947 0.799059 0.391416 0.324892 0.662390 0.181941 0.484454 0.814962 0.500000 1 0 0.500000 0 0.500000 0.500000 1 0.893721 0.848342 0.500000 0.852750 0.500000 0.500000 0.917578 0.902532 0.500000 0.902007 0.887699 0.862757 0.500000 0.500000 0.883583 0.500000 +0.492056 +0.146822 0.639814 0.748396 0.889772 0.199516 0.658636 0.292113 0.150358 1 1 0 0.500000 0 0.500000 0 0.500000 0.882867 0.500000 0.845649 0.884890 0.890146 0.908859 0.500000 0.888715 0.898095 0.898566 0.889447 0.500000 0.879939 0.908983 0.870394 0.856529 +0.832111 +0.743106 0.784690 0.492150 0.569782 0.526905 0.687803 0.897848 0.725995 0.500000 1 0.500000 0.500000 1 1 0 1 0.500000 0.882955 0.500000 0.873870 0.877599 0.904345 0.878368 0.500000 0.500000 0.889243 0.500000 0.879661 0.874336 0.879729 0.891679 0.897582 +0.596758 +0.238136 0.146591 0.751692 0.290937 0.379158 0.714736 0.773731 0.293848 0.500000 0 1 1 1 0 0.500000 0 0.860967 0.500000 0.876308 0.500000 0.877764 0.902839 0.500000 0.858440 0.500000 0.898715 0.901905 0.911884 0.847704 0.500000 0.500000 0.874006 +0.605536 +0.122278 0.118013 0.450535 0.342476 0.193694 0.411727 0.894427 0.837400 1 0 0 0.500000 0 1 0 0 0.864491 0.901320 0.500000 0.870858 0.872018 0.869312 0.874591 0.881675 0.500000 0.500000 0.500000 0.877972 0.876742 0.500000 0.500000 0.500000 +0.602703 +0.379885 0.130465 0.130667 0.318395 0.270601 0.194851 0.657875 0.310475 1 0.500000 1 1 1 0.500000 0 1 0.873537 0.888574 0.892163 0.894260 0.901694 0.857255 0.865860 0.500000 0.500000 0.876010 0.500000 0.500000 0.845558 0.871946 0.500000 0.879112 +0.705566 +0.296897 0.555577 0.177218 0.304114 0.237609 0.896964 0.281746 0.302013 0 0 0 1 0 0.500000 1 1 0.867446 0.500000 0.500000 0.897931 0.500000 0.893816 0.892280 0.869658 0.878601 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.890369 +0.405937 +0.568442 0.396960 0.710628 0.531286 0.717464 0.223538 0.409768 0.778465 1 1 0 0 0.500000 0 0 1 0.500000 0.859585 0.895059 0.893245 0.880486 0.500000 0.857586 0.500000 0.500000 0.500000 0.867374 0.500000 0.868222 0.500000 0.865377 0.500000 +0.352532 +0.523297 0.856939 0.368793 0.108403 0.532612 0.614546 0.877979 0.397816 1 0 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.899933 0.860586 0.901555 0.883809 0.500000 0.849895 0.500000 0.854434 0.500000 0.901755 0.902143 0.854612 0.926178 0.500000 +0.535213 +0.630969 0.899122 0.537677 0.135716 0.379842 0.212042 0.793097 0.176723 1 0 0.500000 0 0 0.500000 0.500000 0.500000 0.887141 0.500000 0.875268 0.851373 0.884358 0.891874 0.877596 0.875892 0.500000 0.918813 0.902618 0.885591 0.500000 0.500000 0.895486 0.892306 +0.639444 +0.515902 0.572266 0.682169 0.610795 0.226275 0.810594 0.647546 0.300537 0 0.500000 1 0.500000 0.500000 0 0.500000 0 0.500000 0.500000 0.884241 0.500000 0.853946 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.884789 0.500000 0.500000 0.885896 0.500000 +0.065052 +0.389791 0.210663 0.814403 0.663984 0.582598 0.717553 0.107193 0.186112 0 0 0.500000 0.500000 1 0 1 1 0.884823 0.500000 0.896610 0.500000 0.500000 0.905033 0.885146 0.500000 0.863202 0.500000 0.887723 0.500000 0.883141 0.892060 0.500000 0.849527 +0.397311 +0.737118 0.149972 0.787255 0.400700 0.365258 0.691772 0.417852 0.642513 0.500000 0.500000 1 0.500000 0.500000 0 1 1 0.882377 0.883152 0.500000 0.500000 0.500000 0.500000 0.869424 0.500000 0.815572 0.896985 0.500000 0.500000 0.906249 0.899861 0.893529 0.878711 +0.563151 +0.586433 0.372957 0.480715 0.376680 0.668478 0.109052 0.236348 0.492369 0 0 0 1 0 1 0 0.500000 0.897449 0.899994 0.500000 0.891701 0.500000 0.891924 0.873648 0.896361 0.837494 0.500000 0.869108 0.888179 0.500000 0.889440 0.891930 0.500000 +0.578280 +0.600786 0.813551 0.754082 0.449540 0.425376 0.699141 0.261455 0.880319 0.500000 1 0 0 1 1 1 0.500000 0.500000 0.896482 0.500000 0.901690 0.857340 0.899669 0.896043 0.500000 0.500000 0.878776 0.500000 0.854714 0.500000 0.500000 0.500000 0.500000 +0.363506 +0.388108 0.739588 0.861667 0.643820 0.882532 0.123911 0.366599 0.834039 0 0 0 0 0 0.500000 0.500000 0.500000 0.500000 0.873707 0.855235 0.919506 0.875819 0.862366 0.500000 0.899479 0.897822 0.866650 0.888062 0.500000 0.874015 0.861216 0.500000 0.500000 +0.481199 +0.544812 0.862146 0.691920 0.494059 0.651610 0.607140 0.406607 0.450948 1 0.500000 0 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.922840 0.871020 0.893374 0.852668 0.500000 0.500000 0.889725 0.896991 0.877538 0.854306 0.500000 0.500000 0.885862 0.904128 0.500000 +0.525320 +0.840327 0.377677 0.618524 0.525078 0.382783 0.840072 0.890987 0.615051 0.500000 0 0 0.500000 0 0.500000 0.500000 0 0.888382 0.500000 0.905973 0.871765 0.500000 0.883527 0.889379 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.862760 0.886611 +0.317194 +0.608289 0.517886 0.302601 0.406981 0.321986 0.616861 0.578547 0.639047 1 0.500000 1 0.500000 0.500000 0 1 1 0.902648 0.892406 0.909922 0.882559 0.500000 0.845807 0.500000 0.500000 0.500000 0.891176 0.868999 0.870260 0.909501 0.500000 0.500000 0.905987 +0.625273 +0.689520 0.168779 0.871425 0.647310 0.338753 0.827175 0.125528 0.341644 0.500000 0.500000 0 1 0 1 0.500000 0 0.869663 0.886087 0.857745 0.500000 0.924461 0.500000 0.871925 0.500000 0.500000 0.500000 0.500000 0.869412 0.500000 0.500000 0.905010 0.500000 +0.344286 +0.554330 0.820123 0.813147 0.361438 0.488146 0.467590 0.577402 0.599402 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.871626 0.859546 0.500000 0.863672 0.909364 0.867060 0.902457 0.862802 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.910454 +0.469722 +0.571090 0.105453 0.554266 0.549282 0.781592 0.414350 0.175575 0.696884 1 0.500000 1 0 1 1 0 0.500000 0.885004 0.866992 0.500000 0.907877 0.846031 0.500000 0.866109 0.500000 0.500000 0.500000 0.500000 0.874716 0.881657 0.500000 0.942804 0.500000 +0.433044 +0.494146 0.509975 0.158583 0.702345 0.516530 0.727760 0.454570 0.158166 1 1 1 0 0.500000 1 0.500000 0 0.868084 0.500000 0.863797 0.500000 0.500000 0.849809 0.500000 0.500000 0.500000 0.857476 0.891016 0.880634 0.500000 0.500000 0.500000 0.848297 +0.345934 +0.836991 0.302931 0.360222 0.843559 0.302372 0.564634 0.402742 0.290655 0.500000 1 0.500000 1 0 1 1 0.500000 0.500000 0.500000 0.900338 0.500000 0.500000 0.883100 0.900414 0.500000 0.500000 0.896030 0.500000 0.500000 0.500000 0.856943 0.861270 0.897421 +0.344379 +0.299271 0.444095 0.106982 0.651091 0.692741 0.699180 0.113023 0.569488 0.500000 0.500000 0 0 0.500000 0.500000 0.500000 0 0.892480 0.500000 0.500000 0.864168 0.877111 0.886503 0.869222 0.500000 0.886710 0.900456 0.500000 0.500000 0.896482 0.874162 0.500000 0.877807 +0.536265 +0.834645 0.870715 0.704427 0.304803 0.617612 0.397215 0.192698 0.474848 0 1 1 1 0 1 0.500000 0.500000 0.500000 0.891288 0.879248 0.500000 0.893065 0.910651 0.500000 0.912008 0.500000 0.892678 0.871296 0.892063 0.500000 0.890003 0.895975 0.868418 +0.586285 +0.459364 0.725284 0.452409 0.630001 0.620449 0.884786 0.391110 0.779205 0 0 0.500000 0.500000 0.500000 0 0.500000 0 0.888866 0.500000 0.886823 0.500000 0.876463 0.898815 0.838623 0.500000 0.500000 0.911442 0.500000 0.500000 0.891365 0.500000 0.853612 0.500000 +0.374487 +0.566301 0.413493 0.180866 0.820355 0.699077 0.788316 0.629269 0.330332 1 1 1 0 1 1 1 0.500000 0.899308 0.500000 0.500000 0.893520 0.500000 0.847630 0.883527 0.882584 0.500000 0.896133 0.500000 0.500000 0.500000 0.878008 0.841232 0.870425 +0.473210 +0.541482 0.890226 0.629693 0.257506 0.100092 0.840774 0.691737 0.617538 1 0 0 0 1 0 1 1 0.880784 0.883267 0.886888 0.500000 0.912757 0.500000 0.917285 0.901237 0.500000 0.886377 0.843260 0.500000 0.500000 0.868334 0.500000 0.500000 +0.488705 +0.382167 0.885184 0.695171 0.743298 0.806719 0.326306 0.418150 0.849336 0.500000 1 0.500000 0.500000 0 0.500000 1 0 0.886433 0.500000 0.846432 0.882016 0.856721 0.896942 0.866444 0.888497 0.878779 0.500000 0.884396 0.894481 0.888124 0.878212 0.898056 0.907346 +0.843325 +0.613659 0.368840 0.889857 0.822913 0.499241 0.543272 0.567151 0.306435 1 0 0.500000 0.500000 0.500000 0.500000 0.500000 0 0.895289 0.892280 0.888172 0.892619 0.897282 0.885504 0.869379 0.500000 0.850240 0.859646 0.868425 0.500000 0.851646 0.500000 0.500000 0.911151 +0.677239 +0.624944 0.437117 0.426447 0.297818 0.826662 0.308826 0.246733 0.648434 1 0.500000 1 1 0.500000 0 0.500000 0 0.869516 0.500000 0.500000 0.908850 0.884507 0.912083 0.916394 0.906695 0.500000 0.872828 0.500000 0.500000 0.500000 0.500000 0.890177 0.863816 +0.565406 +0.198781 0.310197 0.875211 0.277483 0.652203 0.179118 0.237215 0.678949 1 1 0 1 1 0.500000 1 0 0.876165 0.500000 0.880256 0.889553 0.898711 0.887320 0.899556 0.870116 0.500000 0.500000 0.500000 0.863985 0.500000 0.875822 0.500000 0.869509 +0.665894 +0.807156 0.465029 0.749790 0.315116 0.351956 0.318900 0.744937 0.364780 1 0 0.500000 1 0.500000 0 0.500000 0 0.899151 0.500000 0.882015 0.876020 0.908395 0.500000 0.864958 0.500000 0.500000 0.855487 0.895403 0.500000 0.500000 0.500000 0.878082 0.874652 +0.515008 +0.309926 0.332862 0.208007 0.177012 0.845591 0.847187 0.469212 0.653088 1 1 0.500000 1 0 0.500000 0.500000 0 0.864849 0.876098 0.881784 0.887402 0.500000 0.881910 0.875994 0.872065 0.905902 0.500000 0.500000 0.500000 0.500000 0.872416 0.500000 0.500000 +0.634901 +0.364388 0.472421 0.185882 0.320382 0.856208 0.892138 0.756094 0.671752 1 0.500000 1 0.500000 0 0 1 1 0.500000 0.500000 0.872156 0.854776 0.875328 0.859744 0.922014 0.852022 0.500000 0.500000 0.901264 0.500000 0.864059 0.866989 0.500000 0.860882 +0.559180 +0.696775 0.500413 0.238048 0.275653 0.297947 0.590810 0.338004 0.230427 0 1 1 1 0.500000 0.500000 1 0 0.870655 0.500000 0.899269 0.500000 0.860104 0.500000 0.500000 0.912805 0.864819 0.500000 0.858405 0.500000 0.873032 0.500000 0.500000 0.500000 +0.297569 +0.104644 0.553739 0.496112 0.751335 0.687335 0.247104 0.476565 0.224452 0.500000 0 0 1 0 0 0 1 0.883884 0.895552 0.500000 0.851666 0.868511 0.500000 0.856538 0.905096 0.869907 0.850461 0.500000 0.500000 0.500000 0.500000 0.500000 0.885707 +0.436362 +0.884444 0.252083 0.161001 0.545319 0.583841 0.823313 0.815499 0.695854 0 1 1 0 0 0.500000 1 1 0.500000 0.855851 0.873781 0.500000 0.918816 0.875660 0.878999 0.889178 0.879334 0.886403 0.862818 0.916075 0.500000 0.890246 0.891234 0.500000 +0.641346 +0.719390 0.592563 0.200678 0.190173 0.438045 0.828302 0.668021 0.427489 0 0.500000 0 0 0 0 1 0 0.885563 0.900683 0.871805 0.871459 0.910325 0.500000 0.853325 0.873631 0.878102 0.884539 0.875423 0.500000 0.500000 0.865145 0.878258 0.500000 +0.580787 +0.301633 0.142852 0.318920 0.289185 0.533314 0.413850 0.572284 0.174380 0.500000 0 0.500000 0.500000 0 0.500000 0.500000 0 0.849863 0.500000 0.876896 0.922381 0.870102 0.500000 0.900881 0.500000 0.500000 0.500000 0.921596 0.868654 0.861277 0.500000 0.896747 0.883631 +0.509542 +0.829003 0.456418 0.810732 0.577963 0.423715 0.785938 0.658236 0.771360 0.500000 1 1 1 0.500000 1 1 0 0.500000 0.860734 0.871212 0.500000 0.904320 0.875340 0.870133 0.500000 0.500000 0.915285 0.500000 0.500000 0.500000 0.500000 0.500000 0.903034 +0.386934 +0.766947 0.679363 0.652562 0.612472 0.423325 0.626313 0.250330 0.304194 1 0 0.500000 0 0.500000 0.500000 1 1 0.873682 0.859703 0.500000 0.853828 0.500000 0.500000 0.908360 0.885208 0.500000 0.500000 0.500000 0.500000 0.901096 0.500000 0.879406 0.895431 +0.377062 +0.745553 0.318096 0.843417 0.317245 0.139701 0.151656 0.277971 0.860668 1 0 0.500000 0 0 1 1 1 0.500000 0.872283 0.879524 0.851067 0.890076 0.500000 0.890287 0.879854 0.885997 0.500000 0.863446 0.880795 0.863051 0.500000 0.500000 0.500000 +0.576877 +0.164842 0.304276 0.560146 0.179020 0.189483 0.839185 0.374597 0.850484 1 0.500000 0 0.500000 0.500000 1 0.500000 0 0.500000 0.862775 0.868504 0.500000 0.884599 0.882700 0.885476 0.500000 0.500000 0.904944 0.500000 0.880677 0.883047 0.890427 0.869286 0.500000 +0.564020 +0.843586 0.749733 0.169834 0.207443 0.299116 0.248164 0.685418 0.819530 0.500000 0.500000 1 0 0 0.500000 0.500000 0.500000 0.863178 0.905525 0.893481 0.889349 0.500000 0.884298 0.899487 0.881570 0.866220 0.500000 0.873301 0.890505 0.907948 0.500000 0.879013 0.500000 +0.751301 +0.818948 0.254238 0.379685 0.764381 0.759368 0.496225 0.250382 0.363323 0 0 0 1 0 1 1 1 0.885345 0.886943 0.873201 0.500000 0.500000 0.500000 0.500000 0.890061 0.905023 0.500000 0.500000 0.500000 0.903697 0.931290 0.500000 0.500000 +0.303852 +0.899824 0.350266 0.728570 0.472002 0.332958 0.233075 0.683342 0.334692 0.500000 0 0.500000 0 0 1 0.500000 0 0.500000 0.899385 0.500000 0.921344 0.500000 0.848983 0.897528 0.901037 0.865483 0.500000 0.883978 0.500000 0.500000 0.875770 0.500000 0.866860 +0.487726 +0.728280 0.405484 0.768298 0.185438 0.861351 0.125689 0.661345 0.226763 0 0 1 1 0 0.500000 0.500000 1 0.881567 0.500000 0.903609 0.872529 0.869766 0.867117 0.882026 0.500000 0.874961 0.500000 0.888176 0.500000 0.500000 0.896502 0.878427 0.500000 +0.507325 +0.408802 0.528067 0.226534 0.353314 0.756351 0.199653 0.571178 0.782984 0.500000 1 1 0 0.500000 0.500000 0.500000 1 0.889039 0.890528 0.884878 0.500000 0.875717 0.897119 0.870012 0.897240 0.886807 0.500000 0.859785 0.890767 0.851355 0.890946 0.500000 0.875177 +0.725540 +0.848668 0.569533 0.332772 0.302827 0.219136 0.821058 0.519975 0.221686 0.500000 0 0 0 1 0.500000 1 0.500000 0.864986 0.853747 0.856448 0.500000 0.500000 0.914793 0.879187 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.876892 0.500000 0.500000 +0.264438 +0.185881 0.304979 0.389841 0.260863 0.532634 0.185829 0.230649 0.714301 1 0.500000 1 0.500000 0 0.500000 1 0.500000 0.864479 0.881079 0.863633 0.500000 0.889722 0.889618 0.901752 0.879700 0.500000 0.877812 0.858707 0.500000 0.863736 0.500000 0.893603 0.879039 +0.773571 +0.513781 0.116386 0.303297 0.120714 0.234730 0.507074 0.197917 0.189495 0 0 0.500000 1 0 0 0.500000 0 0.500000 0.918391 0.500000 0.885335 0.887836 0.500000 0.850257 0.867336 0.886173 0.500000 0.500000 0.500000 0.500000 0.500000 0.920995 0.500000 +0.400617 +0.565046 0.122035 0.849153 0.712012 0.584794 0.826228 0.213348 0.340296 0 0 1 1 0 0 0.500000 1 0.921453 0.880466 0.875242 0.896980 0.870619 0.864315 0.861920 0.905944 0.878915 0.500000 0.877900 0.500000 0.500000 0.500000 0.500000 0.901643 +0.622053 +0.713651 0.134797 0.129005 0.394999 0.552567 0.785520 0.831271 0.168588 1 1 0.500000 0 0 0 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.897423 0.858496 0.866601 0.847918 0.500000 0.893728 0.873374 0.881409 0.500000 0.912488 0.888141 +0.455491 +0.570171 0.670613 0.800462 0.766030 0.471258 0.631842 0.377001 0.461842 1 0.500000 1 1 1 1 0 0 0.856468 0.847736 0.874876 0.884344 0.909081 0.869873 0.500000 0.500000 0.500000 0.500000 0.500000 0.866856 0.500000 0.500000 0.500000 0.500000 +0.389878 +0.284742 0.262958 0.540164 0.333124 0.607516 0.324009 0.216925 0.465426 0 0.500000 1 0 0 0 0 1 0.500000 0.875657 0.890788 0.500000 0.914329 0.500000 0.899120 0.500000 0.500000 0.500000 0.500000 0.868925 0.893080 0.500000 0.874861 0.932830 +0.358456 +0.595490 0.606846 0.254845 0.176699 0.379935 0.160561 0.354629 0.441289 0 0.500000 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.884242 0.866481 0.872635 0.879050 0.889981 0.883276 0.880585 0.874180 0.500000 0.889283 0.865493 0.894333 0.500000 0.874124 0.883691 +0.754571 +0.679459 0.672189 0.873732 0.215606 0.686134 0.859723 0.769217 0.424993 1 1 0.500000 0 1 1 1 0.500000 0.500000 0.900037 0.905783 0.891852 0.880017 0.500000 0.879122 0.500000 0.500000 0.896112 0.500000 0.500000 0.926478 0.858206 0.898866 0.500000 +0.507536 +0.182869 0.878889 0.487342 0.559815 0.204867 0.198940 0.576252 0.475357 1 1 0 1 1 0.500000 0 0.500000 0.500000 0.500000 0.896883 0.500000 0.891819 0.500000 0.500000 0.868297 0.500000 0.894024 0.500000 0.883278 0.894512 0.500000 0.893539 0.500000 +0.338343 +0.716764 0.452378 0.125350 0.558639 0.449126 0.663683 0.321523 0.828709 0 0 0.500000 0.500000 0.500000 0 0.500000 0 0.881330 0.500000 0.849530 0.500000 0.871683 0.858960 0.500000 0.883904 0.500000 0.500000 0.500000 0.905100 0.500000 0.500000 0.878193 0.904718 +0.379784 +0.794010 0.334639 0.485203 0.609400 0.785492 0.360405 0.729102 0.622732 1 1 0 0 0 0 0 1 0.854104 0.500000 0.500000 0.895944 0.883387 0.500000 0.887666 0.904448 0.500000 0.858595 0.500000 0.851090 0.913383 0.890954 0.500000 0.878119 +0.375690 +0.367058 0.542630 0.190397 0.202917 0.228673 0.306021 0.289991 0.479426 0 0.500000 0.500000 0 0 0 0.500000 0 0.899824 0.922800 0.898895 0.867698 0.500000 0.500000 0.851750 0.500000 0.877450 0.924295 0.889550 0.883446 0.500000 0.500000 0.896427 0.876433 +0.599662 +0.428205 0.233596 0.654580 0.122152 0.406597 0.270359 0.125201 0.460343 0.500000 1 0 0.500000 0.500000 0.500000 1 0 0.500000 0.884969 0.850822 0.500000 0.500000 0.500000 0.863130 0.903768 0.856626 0.882727 0.879310 0.500000 0.500000 0.500000 0.927696 0.889428 +0.466900 +0.426702 0.580125 0.768974 0.339340 0.287517 0.501125 0.215330 0.844490 1 0 0.500000 0 1 0 1 0.500000 0.500000 0.889950 0.885356 0.860592 0.899340 0.500000 0.869658 0.878836 0.860800 0.500000 0.863378 0.500000 0.903965 0.500000 0.879535 0.500000 +0.558963 +0.551152 0.217306 0.460947 0.141401 0.729693 0.153218 0.130538 0.544618 1 0 1 1 1 0 0 0.500000 0.849730 0.500000 0.500000 0.888033 0.863826 0.872115 0.500000 0.879766 0.500000 0.902848 0.870871 0.500000 0.500000 0.886752 0.500000 0.500000 +0.382546 +0.142918 0.617054 0.619315 0.227282 0.131160 0.608900 0.375732 0.735073 0 0.500000 0 1 0 1 1 0 0.500000 0.929780 0.889640 0.887151 0.890734 0.916706 0.500000 0.500000 0.500000 0.893908 0.859424 0.500000 0.500000 0.500000 0.882290 0.500000 +0.507201 +0.119611 0.108756 0.862314 0.314190 0.788457 0.589089 0.214673 0.213198 0 1 0.500000 1 0.500000 0 0 0 0.867139 0.854745 0.877454 0.500000 0.500000 0.500000 0.500000 0.878108 0.918062 0.500000 0.500000 0.856055 0.500000 0.871170 0.500000 0.889238 +0.417564 +0.257649 0.899688 0.452770 0.305943 0.582587 0.534071 0.335287 0.174939 0.500000 0.500000 1 1 1 0 1 0 0.845577 0.893479 0.898309 0.873170 0.500000 0.883976 0.869985 0.500000 0.889118 0.500000 0.906201 0.500000 0.500000 0.878126 0.888760 0.903352 +0.573522 +0.100632 0.326713 0.866273 0.455803 0.885247 0.143310 0.810037 0.893889 0.500000 0 1 0 0 0 1 0.500000 0.914672 0.873138 0.877630 0.887852 0.856000 0.882375 0.876261 0.500000 0.904695 0.500000 0.873974 0.500000 0.500000 0.500000 0.500000 0.500000 +0.543823 +0.618216 0.157595 0.106172 0.638650 0.386442 0.735380 0.537047 0.756174 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.870526 0.854144 0.870182 0.896511 0.879301 0.874009 0.870192 0.500000 0.500000 0.891048 0.500000 0.888355 0.863393 0.500000 0.885081 0.882734 +0.682777 +0.396757 0.491645 0.869769 0.807800 0.895347 0.297929 0.294497 0.212115 0.500000 0 0 0 0.500000 0.500000 0 0.500000 0.898125 0.904465 0.876328 0.891223 0.931770 0.500000 0.885095 0.833477 0.898916 0.500000 0.500000 0.884171 0.500000 0.916861 0.500000 0.879316 +0.572232 +0.114296 0.365454 0.785885 0.567651 0.718141 0.397163 0.111161 0.479313 1 1 0.500000 0 0.500000 0.500000 0 0.500000 0.887399 0.500000 0.880530 0.905818 0.500000 0.500000 0.500000 0.883540 0.907488 0.886484 0.500000 0.854958 0.899511 0.500000 0.854507 0.500000 +0.482053 +0.834650 0.162171 0.202404 0.406356 0.219593 0.502044 0.462166 0.619416 0 0 0 0.500000 0.500000 1 0.500000 0 0.890990 0.500000 0.889893 0.903513 0.907381 0.869668 0.874709 0.885761 0.500000 0.905442 0.500000 0.874694 0.500000 0.500000 0.500000 0.883069 +0.628522 +0.453680 0.407321 0.448797 0.730885 0.176652 0.384300 0.723788 0.113090 0 0 1 0 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.863432 0.500000 0.848725 0.875939 0.887659 0.836459 0.884510 0.500000 0.886282 0.500000 0.906646 0.500000 0.500000 0.500000 +0.402894 +0.780008 0.188741 0.369261 0.775532 0.169556 0.329259 0.459790 0.687001 0 0 1 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.874045 0.924871 0.893810 0.920612 0.500000 0.500000 0.500000 0.885056 0.877251 0.500000 0.500000 0.500000 0.864572 0.845407 +0.340591 +0.414376 0.617540 0.793626 0.269795 0.252527 0.424928 0.365879 0.721323 0 0 0.500000 0.500000 0.500000 0 1 0.500000 0.500000 0.885637 0.845632 0.864157 0.902480 0.891843 0.500000 0.500000 0.881673 0.878375 0.863995 0.878606 0.500000 0.500000 0.876560 0.885803 +0.540163 +0.321892 0.635922 0.134882 0.754995 0.600920 0.660208 0.307237 0.726782 1 0.500000 1 1 0 0 0 0.500000 0.884770 0.861389 0.908828 0.851272 0.863424 0.877514 0.884699 0.895980 0.866800 0.500000 0.869579 0.500000 0.500000 0.500000 0.871962 0.500000 +0.726977 +0.553124 0.554736 0.442357 0.492611 0.311827 0.274303 0.816014 0.549790 0.500000 0.500000 1 0 0 0.500000 0.500000 0 0.500000 0.873675 0.853135 0.898250 0.860006 0.894000 0.948375 0.500000 0.881048 0.859979 0.500000 0.882138 0.500000 0.500000 0.882543 0.905819 +0.681496 +0.897937 0.623161 0.867044 0.608820 0.638438 0.820598 0.793577 0.244633 0.500000 1 1 0 0 0 1 1 0.863820 0.875082 0.862520 0.859663 0.888314 0.866144 0.847002 0.500000 0.873952 0.882732 0.883040 0.925955 0.896735 0.500000 0.876447 0.884242 +0.723813 +0.351542 0.566110 0.404707 0.508649 0.256192 0.412669 0.725832 0.863544 0 0.500000 0 0.500000 0 1 0.500000 1 0.867726 0.885647 0.884754 0.870705 0.884479 0.882843 0.500000 0.861905 0.871998 0.500000 0.874319 0.500000 0.500000 0.500000 0.894834 0.500000 +0.552164 +0.205507 0.553141 0.840479 0.539617 0.745166 0.211603 0.619248 0.703491 0.500000 0.500000 0 0.500000 0.500000 0.500000 0 0 0.870345 0.861501 0.890900 0.872411 0.869454 0.500000 0.500000 0.861559 0.868323 0.500000 0.904363 0.500000 0.892927 0.874788 0.918334 0.500000 +0.634916 +0.456214 0.588443 0.554885 0.546363 0.523931 0.305515 0.599032 0.123235 0 0 0.500000 0.500000 1 0.500000 0 0 0.896112 0.500000 0.890312 0.885336 0.500000 0.916366 0.500000 0.500000 0.883086 0.880980 0.879096 0.865154 0.500000 0.907071 0.882919 0.900821 +0.620535 +0.381587 0.726791 0.183417 0.486781 0.736309 0.142452 0.791918 0.361527 0.500000 1 0.500000 0.500000 0 1 0.500000 0 0.897946 0.904909 0.867613 0.871106 0.893829 0.500000 0.884483 0.860835 0.897756 0.500000 0.500000 0.904981 0.500000 0.500000 0.500000 0.873492 +0.630997 +0.784661 0.798945 0.868834 0.288469 0.490329 0.358974 0.668408 0.527420 0.500000 0 1 0 1 0.500000 0.500000 1 0.862070 0.900372 0.857103 0.888652 0.893504 0.500000 0.854478 0.893081 0.862179 0.500000 0.922352 0.877419 0.851418 0.500000 0.867772 0.500000 +0.672360 +0.856133 0.425142 0.766647 0.437353 0.389771 0.675575 0.197696 0.470993 0 0.500000 0.500000 0 1 0 0.500000 1 0.500000 0.889956 0.890162 0.904927 0.858940 0.874805 0.877795 0.500000 0.869661 0.500000 0.500000 0.861134 0.882319 0.500000 0.878990 0.500000 +0.482435 +0.553766 0.138778 0.633863 0.728843 0.265486 0.617727 0.731198 0.653371 0.500000 0 1 0 0 0 1 1 0.895088 0.500000 0.829660 0.877083 0.868517 0.500000 0.879040 0.500000 0.500000 0.500000 0.896610 0.500000 0.855192 0.863317 0.500000 0.500000 +0.350940 +0.562628 0.296805 0.604315 0.124845 0.875443 0.178421 0.515944 0.469007 0.500000 0 0 1 1 0.500000 1 0 0.500000 0.886238 0.908305 0.886580 0.861564 0.894722 0.889273 0.500000 0.861043 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.879985 +0.455560 +0.242757 0.209625 0.170959 0.715620 0.418068 0.268921 0.757379 0.675787 0.500000 1 0 0.500000 0 0.500000 0 0.500000 0.879187 0.879749 0.500000 0.881145 0.500000 0.917170 0.893761 0.904900 0.860577 0.924066 0.500000 0.500000 0.887963 0.500000 0.500000 0.500000 +0.493757 +0.814078 0.814389 0.442260 0.464444 0.516533 0.765495 0.277169 0.184787 0 1 0.500000 0.500000 0 1 1 0.500000 0.880460 0.858366 0.876570 0.879721 0.883067 0.881311 0.874584 0.500000 0.500000 0.500000 0.869450 0.500000 0.868572 0.500000 0.500000 0.500000 +0.585138 +0.445444 0.372511 0.188907 0.765905 0.762596 0.352968 0.532800 0.573338 0 0.500000 1 0 1 0.500000 0 1 0.887447 0.869339 0.858264 0.500000 0.890612 0.887684 0.914399 0.883797 0.857672 0.500000 0.866214 0.500000 0.500000 0.500000 0.500000 0.500000 +0.593697 +0.306802 0.614549 0.130472 0.248069 0.690448 0.554918 0.313750 0.592650 1 1 1 0.500000 0.500000 1 0 1 0.874594 0.880434 0.500000 0.878001 0.889053 0.500000 0.500000 0.896771 0.848771 0.500000 0.500000 0.872674 0.500000 0.500000 0.500000 0.865158 +0.477320 +0.683318 0.717815 0.521371 0.487539 0.664070 0.427640 0.339065 0.460430 0 0 0.500000 0 0.500000 0.500000 0.500000 0 0.889650 0.500000 0.500000 0.884590 0.500000 0.857508 0.900560 0.875840 0.500000 0.500000 0.855349 0.902627 0.500000 0.500000 0.500000 0.881439 +0.378592 +0.252301 0.629039 0.454945 0.868311 0.299462 0.459474 0.186633 0.137178 0 1 0 0 0.500000 0.500000 1 0.500000 0.500000 0.865314 0.500000 0.916577 0.888524 0.500000 0.897780 0.500000 0.500000 0.500000 0.884765 0.886309 0.888197 0.500000 0.874669 0.877537 +0.435072 +0.422304 0.260462 0.189466 0.553716 0.107467 0.795236 0.136004 0.415393 0 1 0.500000 0 0 1 1 0 0.875760 0.871237 0.874185 0.874601 0.880727 0.857373 0.869397 0.500000 0.862102 0.878618 0.500000 0.848237 0.500000 0.500000 0.882023 0.901121 +0.724773 +0.382494 0.778782 0.393569 0.511770 0.711881 0.777438 0.203230 0.683792 1 1 1 0 0.500000 0.500000 0 0.500000 0.500000 0.905748 0.876899 0.878944 0.872410 0.898533 0.853947 0.500000 0.917473 0.500000 0.842676 0.854409 0.894095 0.500000 0.500000 0.893286 +0.593490 +0.117682 0.474147 0.384740 0.129882 0.722010 0.618350 0.814464 0.889833 0.500000 1 0.500000 0.500000 0.500000 0 1 1 0.886069 0.866947 0.892822 0.500000 0.886126 0.864997 0.859233 0.901044 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.866032 +0.634058 +0.443725 0.279146 0.603561 0.255362 0.873242 0.770745 0.509384 0.609740 1 0 0.500000 0.500000 0 0.500000 1 1 0.905244 0.500000 0.500000 0.888056 0.891902 0.500000 0.876190 0.870349 0.883864 0.500000 0.861722 0.857374 0.500000 0.892856 0.880194 0.876288 +0.555343 +0.749724 0.810377 0.203933 0.494040 0.326916 0.272616 0.457484 0.341195 0 0.500000 0.500000 0 1 0 1 0 0.500000 0.905558 0.500000 0.500000 0.862354 0.907807 0.888276 0.872845 0.500000 0.500000 0.500000 0.917672 0.500000 0.874800 0.500000 0.865210 +0.408579 +0.348486 0.404034 0.393841 0.287585 0.836938 0.220987 0.724721 0.586528 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.855954 0.879886 0.882249 0.867190 0.500000 0.890207 0.500000 0.865045 0.863423 0.500000 0.500000 0.500000 0.891013 0.500000 0.906178 0.883340 +0.518949 +0.675926 0.487464 0.212227 0.695351 0.556569 0.854528 0.660552 0.490423 0 1 1 0 1 1 0 1 0.500000 0.500000 0.901948 0.500000 0.500000 0.500000 0.888997 0.866765 0.879766 0.500000 0.852795 0.500000 0.904466 0.500000 0.881603 0.896087 +0.442743 +0.353233 0.189548 0.335102 0.253225 0.157025 0.118889 0.763865 0.880206 0 0 0 0.500000 1 1 0 0 0.877575 0.500000 0.500000 0.864664 0.868045 0.500000 0.863099 0.895304 0.883171 0.882291 0.500000 0.500000 0.500000 0.873245 0.500000 0.870348 +0.452833 +0.747878 0.180520 0.591337 0.406770 0.789188 0.880214 0.354045 0.237177 1 0.500000 0 1 0.500000 0.500000 0 0 0.884829 0.871419 0.500000 0.880380 0.882295 0.500000 0.904698 0.873258 0.500000 0.500000 0.500000 0.886455 0.500000 0.867864 0.879901 0.867524 +0.542974 +0.379030 0.156937 0.248007 0.457192 0.220437 0.285661 0.501473 0.464113 0.500000 0 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.862430 0.898559 0.500000 0.841861 0.896423 0.863492 0.500000 0.500000 0.912328 0.891412 0.902065 0.500000 0.843750 0.500000 0.843141 0.500000 +0.592656 +0.732049 0.540577 0.886214 0.398798 0.395385 0.633289 0.682060 0.387820 1 0.500000 0.500000 0 0 1 0 0 0.916543 0.500000 0.881219 0.500000 0.500000 0.500000 0.500000 0.888463 0.500000 0.500000 0.885033 0.500000 0.500000 0.894867 0.898792 0.500000 +0.192176 +0.253910 0.470121 0.728896 0.356039 0.144794 0.154085 0.301503 0.357367 1 0 0 1 0 1 0.500000 0 0.891951 0.902180 0.868590 0.887543 0.904153 0.909587 0.886200 0.868435 0.890875 0.500000 0.878600 0.500000 0.500000 0.500000 0.500000 0.881776 +0.733665 +0.102094 0.894162 0.380752 0.302977 0.335283 0.893795 0.608640 0.804499 0.500000 0 0 0.500000 0.500000 0.500000 1 0.500000 0.923865 0.500000 0.500000 0.874824 0.500000 0.890543 0.500000 0.910195 0.500000 0.889214 0.866774 0.890496 0.500000 0.898043 0.500000 0.872664 +0.467424 +0.469241 0.337615 0.101939 0.684944 0.860639 0.155821 0.685101 0.290048 1 1 1 0.500000 1 1 0.500000 0 0.895088 0.500000 0.500000 0.906651 0.500000 0.500000 0.911538 0.887825 0.881068 0.859779 0.500000 0.500000 0.911544 0.877515 0.500000 0.500000 +0.462054 +0.810740 0.703955 0.371644 0.822657 0.191520 0.671454 0.535035 0.536942 0.500000 0.500000 0 0 0 1 1 0 0.877168 0.903124 0.908580 0.912114 0.902874 0.878657 0.867869 0.878377 0.500000 0.500000 0.878929 0.500000 0.500000 0.843188 0.500000 0.500000 +0.633086 +0.621526 0.590252 0.563128 0.691212 0.605122 0.881325 0.633942 0.461924 0.500000 0.500000 0 1 0.500000 0.500000 0 0.500000 0.856301 0.858607 0.898533 0.884896 0.890523 0.896009 0.866222 0.500000 0.884843 0.893274 0.500000 0.500000 0.850492 0.500000 0.866302 0.889525 +0.653450 +0.553616 0.819557 0.893082 0.638408 0.324901 0.810997 0.221462 0.718312 1 1 1 1 0.500000 0 0.500000 1 0.500000 0.881000 0.895348 0.902045 0.500000 0.879346 0.862006 0.844754 0.500000 0.910086 0.500000 0.500000 0.500000 0.500000 0.873551 0.891139 +0.450713 +0.664287 0.864572 0.664905 0.867107 0.862775 0.864061 0.873643 0.322623 0 1 1 1 1 1 0.500000 0 0.892519 0.500000 0.500000 0.895003 0.500000 0.868232 0.893123 0.500000 0.500000 0.500000 0.857149 0.500000 0.871257 0.883414 0.500000 0.500000 +0.294967 +0.672272 0.681514 0.812016 0.553554 0.577773 0.435027 0.502760 0.488540 1 0.500000 0 0.500000 0.500000 0 1 1 0.863438 0.500000 0.889560 0.905843 0.500000 0.879398 0.842419 0.885450 0.500000 0.850707 0.500000 0.892344 0.880280 0.500000 0.500000 0.897964 +0.514588 +0.383260 0.851407 0.190600 0.411188 0.641265 0.343120 0.617882 0.139471 0 1 0.500000 0 1 0.500000 0.500000 0 0.908259 0.892324 0.875937 0.887434 0.880347 0.500000 0.860876 0.887771 0.500000 0.500000 0.500000 0.876993 0.901753 0.500000 0.900685 0.500000 +0.694961 +0.740607 0.380855 0.423777 0.211837 0.547196 0.130446 0.602523 0.402014 1 0 0.500000 0.500000 0 0 0 1 0.877144 0.865113 0.908420 0.888353 0.911131 0.500000 0.892800 0.500000 0.500000 0.907199 0.500000 0.500000 0.500000 0.500000 0.891954 0.893236 +0.588070 +0.372899 0.312249 0.164624 0.643488 0.107127 0.687321 0.806816 0.350778 0.500000 0.500000 1 1 0.500000 0.500000 0 0.500000 0.878290 0.892889 0.871724 0.881298 0.870220 0.917626 0.866553 0.905134 0.500000 0.892327 0.500000 0.500000 0.908247 0.893945 0.500000 0.872952 +0.809646 +0.472424 0.232239 0.245008 0.457653 0.768599 0.442995 0.810805 0.196998 1 0 1 0.500000 1 0.500000 1 1 0.500000 0.892487 0.882326 0.500000 0.500000 0.860332 0.869603 0.881169 0.500000 0.872023 0.841566 0.861759 0.500000 0.831271 0.500000 0.872243 +0.594205 +0.594002 0.395153 0.739820 0.757985 0.447651 0.663040 0.707108 0.565355 0.500000 0.500000 1 0.500000 0 1 0.500000 0 0.876796 0.860830 0.901429 0.882544 0.870000 0.899614 0.500000 0.500000 0.865415 0.500000 0.893437 0.500000 0.500000 0.869701 0.500000 0.500000 +0.453084 +0.217351 0.422816 0.871541 0.187630 0.892420 0.703138 0.233154 0.421357 0 1 0 0.500000 0.500000 0.500000 0 0 0.905718 0.892885 0.500000 0.500000 0.891166 0.500000 0.500000 0.916892 0.931692 0.892792 0.500000 0.862860 0.869478 0.500000 0.500000 0.867875 +0.422485 +0.590138 0.245455 0.755289 0.748719 0.723720 0.569507 0.705584 0.549430 1 0.500000 0.500000 1 0.500000 1 0.500000 0 0.856900 0.500000 0.884107 0.874951 0.500000 0.860651 0.836609 0.861843 0.500000 0.868583 0.500000 0.500000 0.500000 0.891753 0.500000 0.500000 +0.443926 +0.126804 0.189621 0.765501 0.371975 0.780938 0.623429 0.566793 0.691807 0 0.500000 0 0.500000 1 1 0.500000 0 0.889852 0.500000 0.500000 0.500000 0.896697 0.895384 0.500000 0.869562 0.890999 0.500000 0.850997 0.868558 0.872911 0.866814 0.877019 0.500000 +0.498561 +0.857106 0.780513 0.689862 0.314117 0.361701 0.114333 0.200598 0.456159 0.500000 0.500000 1 1 1 1 0.500000 0.500000 0.885417 0.882005 0.867796 0.500000 0.876836 0.885854 0.907444 0.892699 0.500000 0.850548 0.500000 0.500000 0.500000 0.500000 0.500000 0.866018 +0.541376 +0.855938 0.343671 0.276683 0.815442 0.527857 0.697204 0.514215 0.216128 1 1 0 1 0 1 0 0.500000 0.879138 0.883569 0.900102 0.885911 0.890175 0.862802 0.863849 0.891648 0.500000 0.905727 0.500000 0.500000 0.896909 0.500000 0.500000 0.897163 +0.744613 +0.576417 0.838692 0.894968 0.330264 0.540229 0.627807 0.555789 0.547151 0 1 1 1 1 1 0 0 0.869642 0.500000 0.909208 0.500000 0.500000 0.500000 0.881447 0.500000 0.500000 0.500000 0.887230 0.500000 0.906969 0.877855 0.875443 0.500000 +0.296113 +0.779449 0.396547 0.163229 0.394283 0.522279 0.537551 0.421469 0.635602 0.500000 1 0 1 0 0.500000 0.500000 0 0.894282 0.500000 0.898659 0.886602 0.856175 0.500000 0.901898 0.881223 0.874818 0.500000 0.500000 0.892433 0.500000 0.913121 0.500000 0.500000 +0.551861 +0.744374 0.485632 0.616916 0.712421 0.254079 0.110874 0.462934 0.731047 0.500000 0.500000 0 0 0 0 0 0.500000 0.500000 0.500000 0.896749 0.845325 0.881184 0.879600 0.864689 0.909166 0.500000 0.876246 0.887613 0.500000 0.863408 0.868690 0.500000 0.500000 +0.511663 +0.624500 0.179138 0.574607 0.820381 0.339908 0.238386 0.356889 0.841123 0 0.500000 0 1 0.500000 1 0.500000 1 0.500000 0.866004 0.500000 0.859385 0.883705 0.902161 0.500000 0.882475 0.888030 0.500000 0.891793 0.500000 0.500000 0.869604 0.894912 0.500000 +0.422681 +0.357757 0.219820 0.320086 0.677654 0.737732 0.867149 0.781393 0.263768 0.500000 1 0.500000 1 0.500000 0.500000 0 0 0.892653 0.500000 0.841705 0.500000 0.500000 0.886506 0.892769 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.890201 0.500000 0.878648 +0.289421 +0.664309 0.445203 0.326309 0.478588 0.636751 0.478992 0.222295 0.309305 0 0 0.500000 0 1 0.500000 0 0 0.856511 0.905084 0.500000 0.881250 0.867780 0.879163 0.896244 0.871430 0.500000 0.500000 0.500000 0.870635 0.500000 0.871126 0.865360 0.500000 +0.584872 +0.774960 0.157303 0.796315 0.670334 0.898774 0.292418 0.476191 0.348550 1 1 0 1 0 0 1 1 0.924629 0.848789 0.878038 0.859191 0.846106 0.500000 0.878054 0.500000 0.500000 0.500000 0.892280 0.882477 0.500000 0.886065 0.500000 0.901852 +0.477532 +0.437217 0.500182 0.358730 0.571898 0.892199 0.195699 0.509687 0.117454 1 0.500000 1 0.500000 0 1 0 0.500000 0.500000 0.876726 0.863022 0.500000 0.886387 0.849547 0.873105 0.500000 0.905145 0.500000 0.500000 0.901220 0.500000 0.843488 0.887855 0.863726 +0.549542 +0.703236 0.292626 0.767804 0.680740 0.599287 0.419655 0.534119 0.334441 0 0 1 0 0.500000 0.500000 0 1 0.875134 0.895506 0.888970 0.500000 0.500000 0.860718 0.875794 0.500000 0.884485 0.500000 0.872953 0.891382 0.898233 0.909029 0.862673 0.883196 +0.677806 +0.466914 0.430832 0.397836 0.224453 0.582204 0.502561 0.348359 0.664655 1 0.500000 1 1 1 1 0.500000 1 0.867072 0.500000 0.855245 0.894392 0.881196 0.884502 0.500000 0.889776 0.500000 0.873849 0.500000 0.892725 0.897446 0.883340 0.500000 0.893499 +0.660838 +0.639945 0.563315 0.630889 0.346055 0.348251 0.456225 0.776595 0.428542 0 0.500000 0.500000 0.500000 1 1 0.500000 1 0.500000 0.902446 0.885438 0.500000 0.869159 0.878533 0.830392 0.897419 0.500000 0.844426 0.500000 0.500000 0.882864 0.500000 0.500000 0.909079 +0.484052 +0.763522 0.710043 0.296395 0.102754 0.778361 0.509509 0.314526 0.838801 0 0.500000 0 0.500000 0 0 0.500000 0.500000 0.899537 0.886750 0.500000 0.873707 0.500000 0.879945 0.879000 0.893977 0.888032 0.897715 0.500000 0.500000 0.500000 0.860205 0.849429 0.500000 +0.531791 +0.412608 0.494630 0.644579 0.830974 0.784550 0.525250 0.870050 0.729492 1 0.500000 1 1 0.500000 1 1 0.500000 0.500000 0.875892 0.873624 0.500000 0.875119 0.874595 0.867770 0.893866 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.410733 +0.809173 0.776650 0.554433 0.149281 0.372059 0.601324 0.248293 0.461023 0.500000 0 0 0.500000 0 0 0.500000 0 0.889310 0.884902 0.500000 0.898501 0.887289 0.885131 0.500000 0.875272 0.500000 0.893038 0.903908 0.906696 0.902253 0.500000 0.500000 0.886439 +0.574969 +0.830678 0.598389 0.516114 0.132732 0.631204 0.851232 0.448092 0.875444 0 1 0.500000 0.500000 1 1 0.500000 0 0.893836 0.859538 0.500000 0.500000 0.898643 0.500000 0.851026 0.891448 0.861155 0.912232 0.500000 0.844586 0.500000 0.895149 0.850294 0.885399 +0.614263 +0.339379 0.137456 0.830434 0.508190 0.552966 0.292699 0.400019 0.116257 0.500000 0 1 0.500000 1 0 0.500000 0 0.897806 0.500000 0.851693 0.871709 0.500000 0.855275 0.866802 0.874792 0.500000 0.874947 0.913223 0.500000 0.500000 0.874752 0.885371 0.500000 +0.581875 +0.266609 0.289363 0.326525 0.104001 0.138968 0.634635 0.106366 0.689799 1 1 0 0.500000 0.500000 1 0 1 0.500000 0.858571 0.845626 0.913910 0.860492 0.500000 0.868309 0.500000 0.850980 0.866238 0.500000 0.864524 0.500000 0.856013 0.905734 0.873806 +0.578647 +0.609921 0.734283 0.497489 0.699055 0.426124 0.470895 0.124989 0.893216 0.500000 0.500000 1 1 1 1 1 0.500000 0.891548 0.500000 0.886124 0.500000 0.500000 0.897363 0.869866 0.877626 0.500000 0.873748 0.856004 0.500000 0.861273 0.500000 0.870395 0.500000 +0.460032 +0.253115 0.706070 0.716302 0.691713 0.223246 0.294245 0.776790 0.513782 0 1 0.500000 0 0 0 1 0.500000 0.500000 0.500000 0.865734 0.869371 0.868068 0.500000 0.500000 0.876183 0.500000 0.882324 0.882155 0.500000 0.500000 0.901704 0.868086 0.500000 +0.342896 +0.804434 0.318561 0.658824 0.247255 0.609960 0.606474 0.415037 0.528968 0 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.885755 0.500000 0.860873 0.500000 0.500000 0.885590 0.859091 0.875561 0.500000 0.859394 0.894230 0.500000 0.865358 0.500000 0.500000 0.866721 +0.449274 +0.670399 0.389200 0.684135 0.850038 0.387210 0.839673 0.588584 0.536968 0 0.500000 0.500000 0 1 0.500000 0.500000 0 0.500000 0.865953 0.871702 0.896934 0.884615 0.897874 0.867572 0.883432 0.860836 0.912620 0.500000 0.886544 0.500000 0.874959 0.858927 0.903564 +0.762221 +0.565453 0.573552 0.690405 0.635274 0.456285 0.176548 0.243427 0.279115 1 0 0 0 0.500000 0.500000 1 1 0.874726 0.868093 0.918084 0.500000 0.882185 0.910036 0.500000 0.895242 0.500000 0.877587 0.500000 0.500000 0.863367 0.500000 0.901462 0.881747 +0.530832 +0.506048 0.546289 0.874473 0.665944 0.725038 0.313893 0.605163 0.775399 0 0 0 0 0 1 1 1 0.883089 0.875114 0.853306 0.500000 0.500000 0.500000 0.883278 0.500000 0.500000 0.904910 0.879755 0.500000 0.500000 0.500000 0.500000 0.905001 +0.257959 +0.642517 0.579493 0.534027 0.395314 0.234915 0.415940 0.500886 0.189389 1 1 1 0.500000 0.500000 1 1 0 0.886515 0.863112 0.883810 0.904637 0.500000 0.870096 0.500000 0.871188 0.500000 0.500000 0.500000 0.846819 0.500000 0.500000 0.500000 0.868307 +0.543642 +0.719877 0.775495 0.345218 0.686363 0.703059 0.514837 0.259711 0.358783 1 0 0 1 1 0.500000 1 1 0.873934 0.899609 0.887961 0.500000 0.500000 0.890154 0.868023 0.500000 0.885635 0.904667 0.897971 0.876853 0.500000 0.899346 0.500000 0.500000 +0.496020 +0.239658 0.131775 0.534911 0.849725 0.725429 0.490560 0.249756 0.248714 0 1 0.500000 0 1 0 0 0.500000 0.907299 0.500000 0.892807 0.902539 0.500000 0.900058 0.500000 0.887173 0.869136 0.881643 0.500000 0.890467 0.909173 0.844957 0.500000 0.905670 +0.685522 +0.845125 0.208302 0.325838 0.566862 0.244876 0.622911 0.668573 0.899295 0 0 1 1 0 1 0.500000 1 0.500000 0.895691 0.890460 0.901892 0.500000 0.500000 0.910341 0.871011 0.836858 0.893498 0.887702 0.902082 0.897957 0.887972 0.500000 0.857863 +0.675710 +0.859717 0.670135 0.756595 0.290140 0.574917 0.429293 0.124955 0.312142 1 0 1 0 0 1 0.500000 1 0.889200 0.862632 0.900420 0.902366 0.884784 0.901536 0.500000 0.500000 0.861337 0.500000 0.919810 0.868984 0.500000 0.895026 0.902896 0.879844 +0.737592 +0.268780 0.783898 0.779083 0.646955 0.777890 0.596674 0.496899 0.389006 0.500000 1 0.500000 0 0 0.500000 0 1 0.860737 0.877754 0.912107 0.500000 0.877507 0.500000 0.887778 0.500000 0.877704 0.851459 0.500000 0.894766 0.885101 0.890696 0.878175 0.884003 +0.616710 +0.388116 0.867365 0.400212 0.158552 0.188046 0.694936 0.781859 0.103261 0.500000 0 0.500000 0.500000 0.500000 0 0 0.500000 0.500000 0.892589 0.912033 0.847650 0.885362 0.865274 0.879831 0.881684 0.500000 0.500000 0.500000 0.889681 0.876603 0.500000 0.500000 0.500000 +0.594063 +0.438240 0.895467 0.706908 0.402872 0.862448 0.161948 0.462132 0.855560 0.500000 1 0.500000 0 0.500000 0 1 1 0.875704 0.500000 0.860736 0.876551 0.885384 0.881649 0.877561 0.500000 0.888398 0.865013 0.899195 0.500000 0.500000 0.876508 0.877556 0.863759 +0.716847 +0.561912 0.253018 0.679969 0.446984 0.662710 0.768036 0.579793 0.788728 0 1 0.500000 0.500000 0 1 0 1 0.907502 0.500000 0.862686 0.500000 0.840294 0.500000 0.861092 0.500000 0.500000 0.500000 0.878467 0.900698 0.500000 0.500000 0.500000 0.878911 +0.283622 +0.829861 0.466999 0.245896 0.177004 0.707064 0.628337 0.655010 0.145753 0 0 0.500000 1 1 0.500000 0.500000 1 0.880189 0.887976 0.893804 0.500000 0.500000 0.902852 0.899730 0.500000 0.872989 0.500000 0.500000 0.500000 0.890958 0.862256 0.879572 0.500000 +0.454511 +0.127851 0.192685 0.253362 0.858172 0.290740 0.267602 0.193515 0.604961 0.500000 0.500000 0 0.500000 0.500000 0 1 0.500000 0.880475 0.500000 0.867527 0.886510 0.863504 0.500000 0.500000 0.866788 0.876149 0.885292 0.876905 0.500000 0.500000 0.500000 0.500000 0.500000 +0.408004 +0.367892 0.166958 0.667410 0.563613 0.843791 0.193505 0.437834 0.470284 0 0.500000 0 1 0.500000 1 0 1 0.500000 0.865374 0.867553 0.917973 0.500000 0.893492 0.859304 0.500000 0.500000 0.500000 0.500000 0.500000 0.893016 0.500000 0.895282 0.500000 +0.372409 +0.527641 0.258982 0.110947 0.885695 0.468915 0.453597 0.605794 0.177387 1 0.500000 0 0.500000 0 0 0.500000 1 0.500000 0.500000 0.912976 0.857401 0.871777 0.913036 0.845901 0.898764 0.888577 0.500000 0.868367 0.500000 0.862934 0.500000 0.500000 0.500000 +0.458103 +0.683595 0.582106 0.454816 0.298134 0.533573 0.757441 0.108092 0.896809 1 0.500000 1 0.500000 1 1 0 0 0.500000 0.853501 0.500000 0.500000 0.860254 0.868528 0.500000 0.500000 0.849751 0.500000 0.500000 0.500000 0.500000 0.866672 0.500000 0.876742 +0.216774 +0.514183 0.474926 0.675626 0.252748 0.142654 0.182614 0.592862 0.438274 1 0.500000 1 0 0 0.500000 0 0 0.866001 0.876282 0.892044 0.891972 0.873601 0.873737 0.892869 0.838882 0.500000 0.903519 0.500000 0.924771 0.889249 0.856674 0.829159 0.856204 +0.909434 +0.232742 0.701156 0.533762 0.744345 0.800654 0.788491 0.366299 0.589624 0.500000 0 1 0 1 1 0.500000 0.500000 0.887227 0.878448 0.500000 0.500000 0.887659 0.500000 0.858831 0.868698 0.500000 0.866292 0.500000 0.888350 0.500000 0.500000 0.878086 0.882761 +0.431600 +0.519244 0.732858 0.552161 0.375971 0.748254 0.103306 0.455313 0.647918 0 0.500000 1 0 0.500000 0 0.500000 0.500000 0.865891 0.843814 0.891472 0.844241 0.918072 0.870269 0.500000 0.884387 0.893311 0.876580 0.897566 0.871644 0.500000 0.500000 0.895817 0.921314 +0.707673 +0.478631 0.545069 0.374970 0.726375 0.380845 0.260988 0.225844 0.756495 0 1 0.500000 1 1 0.500000 0.500000 0 0.905346 0.879284 0.877868 0.884303 0.878692 0.869293 0.864671 0.500000 0.500000 0.500000 0.500000 0.887724 0.500000 0.886333 0.500000 0.500000 +0.532054 +0.299567 0.621697 0.266392 0.658429 0.811245 0.393243 0.631364 0.333579 0 0.500000 1 0.500000 0 0 0.500000 0.500000 0.898856 0.500000 0.876070 0.877383 0.500000 0.500000 0.500000 0.873770 0.884792 0.860816 0.500000 0.902724 0.820857 0.500000 0.500000 0.500000 +0.411120 +0.227637 0.489569 0.389150 0.646532 0.855030 0.287692 0.234874 0.533981 0.500000 0.500000 1 1 1 0 0.500000 1 0.500000 0.883993 0.842747 0.500000 0.889112 0.890033 0.900025 0.856618 0.877333 0.500000 0.927347 0.862055 0.864458 0.500000 0.500000 0.881953 +0.638295 +0.825858 0.390276 0.372971 0.730564 0.389029 0.212784 0.455863 0.297635 0 0.500000 0.500000 0.500000 1 1 0 1 0.500000 0.500000 0.914737 0.879259 0.861193 0.828531 0.886800 0.500000 0.500000 0.898594 0.500000 0.896701 0.886039 0.500000 0.500000 0.500000 +0.410937 +0.892297 0.240226 0.871574 0.743627 0.747350 0.114195 0.272366 0.258331 0 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.879277 0.500000 0.877607 0.868883 0.861812 0.500000 0.878951 0.500000 0.858823 0.500000 0.500000 0.500000 0.500000 0.871075 0.500000 0.500000 +0.303799 +0.477904 0.329628 0.258625 0.508103 0.686498 0.573339 0.301651 0.456057 0 0.500000 0 0.500000 1 0.500000 0 0 0.888249 0.876600 0.856397 0.892505 0.500000 0.884236 0.500000 0.878976 0.500000 0.889717 0.500000 0.878989 0.881707 0.500000 0.904734 0.866192 +0.607106 +0.745127 0.351809 0.257557 0.152408 0.126824 0.529261 0.284585 0.825021 1 0 0 1 1 0.500000 0.500000 0 0.500000 0.892546 0.902207 0.500000 0.500000 0.902046 0.888224 0.903643 0.863275 0.860456 0.891238 0.500000 0.888625 0.500000 0.918385 0.875875 +0.731956 +0.247048 0.338659 0.841152 0.634915 0.816375 0.214387 0.201045 0.760144 1 0 0.500000 1 0.500000 0.500000 1 0 0.897569 0.883507 0.875604 0.855470 0.837089 0.500000 0.862568 0.500000 0.875252 0.500000 0.500000 0.500000 0.500000 0.883982 0.893260 0.882953 +0.547796 +0.124786 0.683235 0.133331 0.286649 0.306042 0.655733 0.303341 0.859003 1 0 1 0.500000 0 0.500000 0 0.500000 0.867385 0.868145 0.860800 0.500000 0.881777 0.859072 0.897797 0.883075 0.500000 0.500000 0.877269 0.500000 0.838440 0.500000 0.500000 0.882043 +0.665419 +0.539159 0.249779 0.639883 0.307725 0.140175 0.122619 0.253058 0.542312 0.500000 1 0 0.500000 1 0 1 0 0.897242 0.883547 0.878545 0.879154 0.500000 0.500000 0.889610 0.866342 0.500000 0.500000 0.500000 0.500000 0.889175 0.500000 0.500000 0.500000 +0.425380 +0.875652 0.482944 0.232870 0.442601 0.598124 0.868119 0.282831 0.133778 0.500000 1 0.500000 1 0 0 1 0 0.895702 0.901633 0.835130 0.900354 0.500000 0.887384 0.866103 0.500000 0.500000 0.500000 0.500000 0.500000 0.880532 0.872512 0.500000 0.900932 +0.527438 +0.835258 0.775964 0.234975 0.625360 0.223880 0.545909 0.885532 0.139353 1 1 1 1 0 0.500000 0 1 0.500000 0.867731 0.500000 0.833355 0.864384 0.859285 0.896698 0.886241 0.500000 0.500000 0.500000 0.500000 0.500000 0.883724 0.500000 0.500000 +0.452538 +0.347816 0.342859 0.227389 0.324006 0.169717 0.629488 0.806534 0.417327 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.905710 0.859988 0.908998 0.500000 0.904637 0.500000 0.500000 0.500000 0.500000 0.874212 0.851078 0.892300 0.500000 0.894040 0.885619 0.500000 +0.456482 +0.403073 0.244936 0.836451 0.833058 0.606456 0.111900 0.102128 0.658831 0.500000 0 0.500000 1 1 1 0.500000 1 0.500000 0.883863 0.500000 0.890187 0.886496 0.500000 0.871287 0.500000 0.500000 0.918154 0.500000 0.875360 0.500000 0.878212 0.875718 0.872080 +0.400430 +0.678535 0.339306 0.519749 0.413362 0.373868 0.595480 0.425124 0.452634 0.500000 0.500000 0 0 0 1 0.500000 1 0.891762 0.500000 0.894610 0.500000 0.895390 0.500000 0.896440 0.858111 0.500000 0.500000 0.881126 0.500000 0.500000 0.899396 0.500000 0.500000 +0.399344 +0.487706 0.278101 0.639054 0.775260 0.401104 0.754953 0.689728 0.463554 1 0 0.500000 0 0 0.500000 0.500000 0.500000 0.887049 0.863333 0.500000 0.884731 0.872077 0.865503 0.500000 0.846389 0.911735 0.500000 0.885306 0.851858 0.908098 0.500000 0.870580 0.875403 +0.594942 +0.667471 0.785712 0.858001 0.630647 0.277382 0.566635 0.433071 0.416732 0 0 0 0 0.500000 0.500000 0 0 0.873385 0.500000 0.900017 0.904097 0.880508 0.500000 0.866218 0.874077 0.500000 0.870516 0.910442 0.500000 0.500000 0.500000 0.885366 0.500000 +0.415948 +0.818485 0.482710 0.303131 0.519800 0.480649 0.865399 0.154864 0.598143 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.865925 0.870208 0.855915 0.893783 0.869214 0.912020 0.895479 0.889909 0.500000 0.822449 0.858937 0.862459 0.893416 0.876061 0.929736 +0.798365 +0.541937 0.536795 0.521307 0.205271 0.587344 0.496781 0.797302 0.449558 1 0 0.500000 0.500000 0 1 0 0.500000 0.873499 0.500000 0.867980 0.500000 0.889295 0.877219 0.500000 0.871381 0.500000 0.500000 0.882991 0.867438 0.500000 0.862751 0.500000 0.914799 +0.482187 +0.590035 0.118219 0.702058 0.485501 0.808046 0.223707 0.839333 0.466081 1 0.500000 0.500000 1 0 0 0 0.500000 0.886292 0.873398 0.500000 0.886379 0.883646 0.852589 0.500000 0.500000 0.874349 0.500000 0.500000 0.500000 0.877960 0.864486 0.500000 0.900246 +0.468566 +0.324543 0.395756 0.466409 0.743905 0.609913 0.604096 0.445306 0.457884 1 0.500000 0 1 1 1 1 0.500000 0.874154 0.894593 0.888154 0.889204 0.886645 0.878437 0.882733 0.885528 0.500000 0.891197 0.880751 0.882733 0.500000 0.500000 0.500000 0.880713 +0.720898 +0.386794 0.249066 0.657761 0.795920 0.427769 0.106005 0.222290 0.229382 0 0 1 0.500000 1 0 0.500000 1 0.500000 0.500000 0.900546 0.500000 0.891670 0.899812 0.500000 0.863688 0.500000 0.856384 0.883177 0.888907 0.883024 0.500000 0.882696 0.500000 +0.446693 +0.368564 0.254699 0.125731 0.553897 0.753020 0.210114 0.391083 0.327730 0 1 0 1 1 1 1 0.500000 0.883039 0.897703 0.894311 0.893881 0.893737 0.500000 0.839649 0.888677 0.500000 0.500000 0.500000 0.500000 0.894183 0.913155 0.897329 0.500000 +0.593007 +0.772530 0.113060 0.398014 0.823831 0.724132 0.286239 0.624917 0.780721 0 0 0 1 0.500000 0.500000 1 1 0.883271 0.887835 0.500000 0.893232 0.871767 0.500000 0.500000 0.500000 0.892324 0.500000 0.500000 0.500000 0.500000 0.852464 0.900488 0.500000 +0.309187 +0.659823 0.250156 0.579592 0.609014 0.702271 0.877003 0.783334 0.892609 1 0.500000 1 0.500000 0 0 1 0 0.895334 0.870709 0.855045 0.894567 0.861838 0.894820 0.879635 0.863227 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.883404 0.868412 +0.551389 +0.175076 0.296028 0.342581 0.353932 0.733504 0.194168 0.388951 0.499744 0 0 1 1 0.500000 0.500000 0.500000 1 0.864409 0.500000 0.868988 0.500000 0.500000 0.895067 0.500000 0.873806 0.869184 0.879935 0.903673 0.500000 0.500000 0.500000 0.500000 0.500000 +0.344965 +0.213176 0.644483 0.826738 0.779196 0.155275 0.299848 0.553595 0.475867 0.500000 0 0.500000 1 1 0.500000 0 0 0.876449 0.500000 0.500000 0.894483 0.884940 0.500000 0.898254 0.881803 0.874365 0.500000 0.500000 0.914890 0.865975 0.500000 0.877325 0.886418 +0.522303 +0.461037 0.849430 0.567324 0.818088 0.206397 0.319419 0.679522 0.134471 0 0 0 0.500000 0 0 0.500000 1 0.500000 0.838916 0.500000 0.871673 0.875116 0.917689 0.500000 0.873753 0.864044 0.500000 0.846959 0.500000 0.500000 0.500000 0.872846 0.863230 +0.380164 +0.387980 0.175503 0.284792 0.304969 0.217254 0.389559 0.324069 0.433120 0.500000 0 1 0.500000 0 1 1 1 0.862993 0.899951 0.890671 0.500000 0.500000 0.908152 0.500000 0.902849 0.865281 0.913180 0.861796 0.500000 0.500000 0.899043 0.886416 0.500000 +0.533633 +0.596334 0.381484 0.594002 0.390971 0.846026 0.162500 0.145020 0.752228 0.500000 0 0 0.500000 0.500000 0 0 0.500000 0.848162 0.917848 0.876712 0.500000 0.500000 0.903494 0.918242 0.883139 0.500000 0.873905 0.500000 0.500000 0.893833 0.882379 0.500000 0.500000 +0.472633 +0.328436 0.226050 0.218204 0.360311 0.754224 0.441930 0.517377 0.551967 0 0.500000 1 0.500000 0 1 0.500000 0.500000 0.500000 0.907033 0.500000 0.913108 0.885811 0.900540 0.895936 0.891157 0.500000 0.500000 0.500000 0.500000 0.897067 0.500000 0.500000 0.500000 +0.531329 +0.305640 0.288196 0.715171 0.883090 0.695706 0.132540 0.605576 0.509694 0 1 1 0 1 1 1 0 0.880090 0.500000 0.876389 0.893819 0.880349 0.500000 0.900068 0.500000 0.500000 0.867965 0.884466 0.844015 0.877604 0.500000 0.500000 0.500000 +0.427222 +0.207810 0.870853 0.632828 0.143847 0.241323 0.113743 0.681752 0.809287 0 1 0.500000 0 0.500000 0.500000 0 0 0.845027 0.892785 0.500000 0.500000 0.897184 0.500000 0.887344 0.863352 0.500000 0.500000 0.882607 0.896019 0.878076 0.858660 0.500000 0.500000 +0.500876 +0.114431 0.235571 0.236714 0.247407 0.775407 0.462046 0.212747 0.640692 0 0.500000 1 0.500000 0 0.500000 0 0 0.886974 0.500000 0.500000 0.879840 0.887810 0.500000 0.885742 0.878791 0.897279 0.887303 0.500000 0.888865 0.500000 0.500000 0.500000 0.881826 +0.524882 +0.190577 0.826626 0.495277 0.315524 0.818079 0.862279 0.529973 0.260877 1 1 0 0 0 0 0.500000 0 0.893926 0.500000 0.853592 0.889861 0.500000 0.500000 0.903023 0.885803 0.500000 0.500000 0.500000 0.879771 0.879387 0.902635 0.870725 0.500000 +0.371769 +0.281900 0.493906 0.475532 0.470637 0.594628 0.508885 0.226584 0.395357 0 1 0.500000 0.500000 0 1 0 0 0.901563 0.500000 0.846945 0.889312 0.887375 0.500000 0.500000 0.882409 0.500000 0.895288 0.896747 0.500000 0.500000 0.500000 0.500000 0.500000 +0.380229 +0.459507 0.727291 0.578043 0.170646 0.249738 0.743154 0.792904 0.136456 1 0.500000 1 0.500000 0.500000 0.500000 1 0 0.863183 0.864871 0.853406 0.871341 0.500000 0.864227 0.902188 0.891926 0.500000 0.500000 0.500000 0.894172 0.500000 0.500000 0.500000 0.901250 +0.619441 +0.644320 0.487627 0.552721 0.177707 0.525157 0.118563 0.888831 0.389442 1 0 0 1 0.500000 0.500000 0.500000 0 0.898933 0.500000 0.500000 0.899747 0.500000 0.500000 0.859034 0.900962 0.884137 0.500000 0.861008 0.837287 0.500000 0.885131 0.500000 0.500000 +0.397914 +0.688182 0.872400 0.233517 0.120854 0.188908 0.778978 0.483317 0.116098 0 0 0.500000 1 0 0.500000 0.500000 0 0.874649 0.870869 0.915936 0.862424 0.851043 0.885849 0.859236 0.902236 0.874807 0.500000 0.910101 0.500000 0.876765 0.904897 0.907674 0.500000 +0.807708 +0.526748 0.457147 0.269425 0.424741 0.419240 0.764374 0.630746 0.351599 1 0 0.500000 0 1 1 0.500000 0.500000 0.886711 0.905261 0.500000 0.876592 0.886067 0.914426 0.878778 0.913264 0.884752 0.500000 0.500000 0.858649 0.886399 0.500000 0.869830 0.500000 +0.659632 +0.591059 0.531222 0.451788 0.606923 0.762193 0.774982 0.515375 0.513198 1 0 0 1 1 1 1 0.500000 0.500000 0.858541 0.500000 0.500000 0.500000 0.500000 0.895907 0.846804 0.865088 0.500000 0.500000 0.858937 0.879236 0.500000 0.500000 0.883512 +0.248864 +0.467506 0.767623 0.834548 0.850926 0.107181 0.795931 0.617868 0.706264 1 1 0 0 0.500000 0 0.500000 0 0.897578 0.876627 0.890648 0.895640 0.853047 0.877122 0.871402 0.500000 0.500000 0.500000 0.850303 0.891453 0.500000 0.871249 0.865222 0.876147 +0.656976 +0.178846 0.471994 0.203441 0.240526 0.321986 0.625388 0.702121 0.746606 0.500000 0 0 1 0 0.500000 1 0 0.882515 0.894132 0.902886 0.899791 0.889498 0.500000 0.903978 0.821411 0.500000 0.500000 0.500000 0.873812 0.500000 0.905434 0.500000 0.500000 +0.604465 +0.540965 0.194191 0.762532 0.871908 0.765509 0.507941 0.360624 0.403570 0.500000 0 0 0 0.500000 0 0.500000 0 0.500000 0.878216 0.910534 0.500000 0.500000 0.923011 0.891804 0.845600 0.907804 0.886879 0.500000 0.500000 0.500000 0.500000 0.867959 0.899980 +0.324922 +0.693459 0.759915 0.895602 0.586235 0.247369 0.138547 0.758689 0.287501 0 1 1 0.500000 0.500000 0 0.500000 0.500000 0.860398 0.893897 0.880783 0.500000 0.500000 0.904010 0.500000 0.889732 0.914195 0.500000 0.500000 0.903971 0.857823 0.868243 0.500000 0.856868 +0.535967 +0.799480 0.259047 0.398011 0.768777 0.234715 0.256161 0.696429 0.282866 1 0.500000 1 1 0.500000 0 0.500000 0 0.856852 0.877790 0.867944 0.896265 0.902101 0.887529 0.500000 0.912603 0.500000 0.500000 0.869642 0.874315 0.874021 0.500000 0.500000 0.893630 +0.671599 +0.538524 0.765971 0.279137 0.459976 0.610486 0.635758 0.591965 0.548539 0 0 1 0 0 0.500000 0.500000 0 0.500000 0.901920 0.875997 0.878524 0.899479 0.889535 0.500000 0.854401 0.500000 0.899095 0.500000 0.500000 0.500000 0.500000 0.500000 0.854889 +0.456534 +0.244749 0.888923 0.333416 0.716271 0.171804 0.515364 0.330450 0.465067 0.500000 0 0.500000 1 1 0 0 0.500000 0.889071 0.892529 0.910873 0.500000 0.867509 0.896224 0.500000 0.896515 0.500000 0.500000 0.500000 0.500000 0.500000 0.859331 0.500000 0.500000 +0.467011 +0.122527 0.313379 0.765866 0.104586 0.381892 0.259731 0.704846 0.148554 0 0.500000 1 0 1 0 1 0 0.866610 0.892706 0.881094 0.886785 0.870570 0.500000 0.879689 0.500000 0.881185 0.500000 0.864406 0.883482 0.851408 0.500000 0.500000 0.886745 +0.665216 +0.376472 0.360117 0.685995 0.113904 0.179671 0.726076 0.165257 0.869769 1 0 0 0.500000 0 0 0.500000 0.500000 0.874049 0.500000 0.908011 0.500000 0.500000 0.863680 0.937056 0.919179 0.500000 0.918818 0.895822 0.906246 0.500000 0.500000 0.875569 0.894918 +0.578055 +0.491800 0.284571 0.593279 0.242461 0.840845 0.280944 0.426601 0.489993 0 1 0 0 1 0.500000 1 0.500000 0.868900 0.885236 0.855969 0.889328 0.500000 0.872847 0.876473 0.913368 0.886301 0.500000 0.500000 0.500000 0.500000 0.887626 0.500000 0.500000 +0.617637 +0.188761 0.704524 0.338686 0.488106 0.600151 0.529599 0.373041 0.298653 0.500000 0 0.500000 1 1 0 0.500000 1 0.500000 0.882951 0.500000 0.888509 0.500000 0.500000 0.880628 0.500000 0.500000 0.500000 0.870256 0.871263 0.915896 0.500000 0.500000 0.500000 +0.210837 +0.870308 0.271856 0.490228 0.263713 0.425963 0.165306 0.101168 0.524364 0.500000 0.500000 1 0.500000 0 0.500000 1 1 0.878451 0.884383 0.836582 0.868277 0.876247 0.893839 0.879490 0.875201 0.893698 0.865499 0.859372 0.500000 0.500000 0.875218 0.901395 0.853200 +0.732011 +0.607182 0.307393 0.154959 0.590258 0.666442 0.295246 0.799859 0.229987 1 0.500000 1 0 0.500000 0 0.500000 0.500000 0.888327 0.890433 0.898946 0.500000 0.500000 0.855379 0.894882 0.906862 0.851295 0.879496 0.869640 0.500000 0.869201 0.895130 0.500000 0.500000 +0.621368 +0.418707 0.613693 0.144879 0.786755 0.788079 0.649711 0.690587 0.488767 0.500000 0.500000 0.500000 0 1 0.500000 1 0 0.901756 0.871233 0.905811 0.891047 0.888760 0.896431 0.912979 0.890833 0.886070 0.843931 0.883317 0.878025 0.500000 0.500000 0.500000 0.500000 +0.796370 +0.168598 0.218603 0.660134 0.677451 0.520595 0.248551 0.794584 0.377008 0.500000 1 1 1 1 0.500000 0 1 0.873075 0.915084 0.912880 0.500000 0.882123 0.861854 0.862645 0.878825 0.900942 0.500000 0.876392 0.500000 0.500000 0.500000 0.500000 0.895515 +0.623171 +0.840953 0.502065 0.807140 0.194657 0.592745 0.871413 0.441038 0.728809 0.500000 1 0 0 0.500000 0 0.500000 0.500000 0.905187 0.856019 0.906666 0.876859 0.885765 0.875000 0.500000 0.899159 0.879727 0.875728 0.500000 0.851819 0.896233 0.888549 0.875933 0.500000 +0.664671 +0.413226 0.486690 0.792273 0.725765 0.538081 0.528141 0.658179 0.612880 1 0 0.500000 0 1 0 1 0 0.892811 0.500000 0.884447 0.926152 0.886739 0.866613 0.864861 0.904874 0.500000 0.911165 0.886525 0.500000 0.844588 0.500000 0.500000 0.500000 +0.616668 +0.488927 0.803067 0.549971 0.356930 0.718078 0.145756 0.314241 0.851361 0 1 0 0 1 0 0 0 0.894999 0.914754 0.500000 0.855629 0.874712 0.872857 0.879407 0.896120 0.500000 0.889671 0.883634 0.872447 0.500000 0.878278 0.500000 0.886970 +0.622445 +0.709358 0.787193 0.145950 0.375395 0.669227 0.689953 0.241248 0.456766 0 0.500000 0.500000 0.500000 0 0.500000 1 1 0.500000 0.871827 0.901988 0.500000 0.922613 0.500000 0.500000 0.887628 0.500000 0.904254 0.866187 0.856479 0.500000 0.500000 0.500000 0.500000 +0.307363 +0.764797 0.540377 0.709104 0.517063 0.876436 0.866763 0.688048 0.223083 1 0.500000 1 0.500000 1 0 0 1 0.500000 0.898934 0.887806 0.906066 0.883682 0.897187 0.879086 0.897942 0.500000 0.500000 0.500000 0.885170 0.500000 0.911976 0.892942 0.500000 +0.586195 +0.112117 0.551119 0.458096 0.222909 0.229920 0.460467 0.868570 0.658756 1 0 0.500000 1 0.500000 0 0.500000 0.500000 0.873668 0.887920 0.870571 0.872993 0.885709 0.883009 0.867116 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.920238 0.500000 +0.618719 +0.128670 0.360251 0.543852 0.723941 0.279250 0.753775 0.103540 0.393686 1 0 0 1 1 0.500000 1 0.500000 0.890873 0.500000 0.500000 0.500000 0.886600 0.874455 0.887122 0.891433 0.500000 0.877463 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.440217 +0.371405 0.799252 0.424470 0.669483 0.207536 0.250678 0.551587 0.329332 1 0.500000 1 1 1 0.500000 1 0 0.851419 0.500000 0.875616 0.863747 0.846372 0.862098 0.880973 0.874667 0.910945 0.872666 0.870552 0.876137 0.500000 0.876351 0.500000 0.500000 +0.682603 +0.869148 0.768431 0.828031 0.120086 0.892648 0.537827 0.255826 0.663315 0.500000 1 0.500000 0.500000 1 0.500000 0 1 0.500000 0.500000 0.892581 0.500000 0.874848 0.500000 0.859272 0.887099 0.500000 0.880852 0.500000 0.500000 0.881186 0.500000 0.500000 0.857672 +0.273436 +0.812623 0.354068 0.617025 0.142921 0.669503 0.532956 0.791909 0.220884 0.500000 0.500000 1 1 1 0 0 0 0.895011 0.882381 0.500000 0.910606 0.500000 0.895878 0.877476 0.901509 0.886756 0.500000 0.873871 0.901566 0.500000 0.879898 0.896985 0.500000 +0.627223 +0.106996 0.879909 0.836745 0.180864 0.775200 0.178655 0.447849 0.801468 1 1 1 1 0 1 0 1 0.895486 0.500000 0.897386 0.889193 0.500000 0.858808 0.862966 0.848706 0.868275 0.500000 0.500000 0.908678 0.500000 0.856742 0.866468 0.897054 +0.599964 +0.724472 0.407966 0.891994 0.737608 0.380151 0.599116 0.735099 0.609388 0.500000 0 0.500000 1 0 1 0 1 0.500000 0.916972 0.500000 0.500000 0.886872 0.892636 0.500000 0.873321 0.500000 0.878155 0.908024 0.916865 0.893261 0.500000 0.500000 0.880065 +0.422546 +0.257598 0.851491 0.808212 0.619060 0.748969 0.125736 0.639343 0.829976 1 0.500000 1 0.500000 1 0.500000 0 1 0.872855 0.863079 0.885702 0.878702 0.500000 0.880785 0.500000 0.898722 0.872985 0.902604 0.500000 0.871025 0.500000 0.900521 0.849562 0.881724 +0.655641 +0.478704 0.178574 0.687914 0.374480 0.477757 0.265956 0.520450 0.202003 1 0.500000 0 1 0.500000 1 1 1 0.500000 0.853833 0.890998 0.867991 0.851635 0.855792 0.855200 0.500000 0.500000 0.500000 0.893603 0.882704 0.865430 0.500000 0.895414 0.500000 +0.589012 +0.726081 0.240315 0.769773 0.169797 0.371936 0.125489 0.491517 0.327786 0.500000 1 0.500000 0 0 1 0.500000 0 0.885944 0.877184 0.500000 0.891590 0.886532 0.902649 0.860714 0.850186 0.500000 0.902112 0.870366 0.500000 0.500000 0.500000 0.889371 0.500000 +0.671088 +0.531119 0.324027 0.514353 0.122297 0.438018 0.367617 0.332890 0.680288 0 1 0.500000 0.500000 0 0 0 0.500000 0.852332 0.500000 0.863830 0.903316 0.881782 0.876770 0.864669 0.500000 0.914642 0.882366 0.880329 0.904200 0.884182 0.864414 0.500000 0.875983 +0.806108 +0.609756 0.373009 0.555997 0.847216 0.154259 0.839046 0.445538 0.362266 1 0.500000 1 0 0.500000 1 1 1 0.888685 0.500000 0.888278 0.883169 0.874714 0.868612 0.889199 0.886065 0.910211 0.500000 0.500000 0.882274 0.898958 0.871524 0.500000 0.871127 +0.755963 +0.457691 0.617493 0.798855 0.154794 0.229816 0.320571 0.839812 0.528368 0.500000 0.500000 0 0.500000 1 0.500000 1 0 0.867272 0.896912 0.870990 0.500000 0.902140 0.500000 0.865082 0.908779 0.500000 0.500000 0.898058 0.500000 0.500000 0.500000 0.907340 0.500000 +0.512189 +0.175468 0.491197 0.542505 0.478229 0.195114 0.273287 0.542257 0.320386 0 1 0 0.500000 0.500000 0.500000 0 1 0.876689 0.500000 0.500000 0.889480 0.917588 0.874915 0.500000 0.843301 0.887468 0.500000 0.872983 0.500000 0.500000 0.500000 0.500000 0.500000 +0.399172 +0.628674 0.729152 0.663078 0.546516 0.697416 0.876703 0.554528 0.160374 0.500000 0.500000 0 0 1 0.500000 0.500000 1 0.904736 0.500000 0.865210 0.875120 0.884318 0.887726 0.877311 0.500000 0.500000 0.918108 0.868447 0.500000 0.500000 0.500000 0.883535 0.883114 +0.509266 +0.717695 0.895951 0.844579 0.638076 0.341939 0.761519 0.649180 0.562484 0 1 0.500000 0 1 1 0 1 0.897651 0.500000 0.500000 0.500000 0.868282 0.870873 0.877372 0.500000 0.869073 0.500000 0.868816 0.500000 0.500000 0.500000 0.500000 0.500000 +0.230457 +0.762494 0.244202 0.508749 0.338679 0.385443 0.740061 0.801225 0.784070 0.500000 0 1 0 0.500000 0.500000 1 0.500000 0.887954 0.500000 0.910338 0.886607 0.840220 0.877646 0.884337 0.865513 0.879817 0.889567 0.500000 0.500000 0.500000 0.838395 0.500000 0.886813 +0.583358 +0.507418 0.367955 0.413031 0.408173 0.370978 0.820424 0.262457 0.122678 0.500000 0.500000 1 0 0 1 0.500000 0 0.863666 0.866951 0.500000 0.500000 0.878281 0.850662 0.500000 0.889290 0.928026 0.880519 0.866862 0.879373 0.500000 0.500000 0.500000 0.500000 +0.407010 +0.472690 0.708002 0.390983 0.242762 0.306804 0.649367 0.515784 0.185026 0 0 1 0 0 0.500000 1 0 0.882565 0.910468 0.866420 0.500000 0.871599 0.897966 0.858321 0.916816 0.871694 0.867415 0.500000 0.500000 0.500000 0.840092 0.500000 0.500000 +0.642252 +0.390993 0.426632 0.202983 0.538565 0.658524 0.805395 0.472695 0.777200 0 0 0 1 0.500000 0 0 1 0.500000 0.883402 0.893910 0.885536 0.878225 0.873473 0.500000 0.901455 0.500000 0.869345 0.500000 0.855645 0.500000 0.500000 0.895813 0.883761 +0.509453 +0.301571 0.710298 0.570225 0.763333 0.737189 0.540470 0.673746 0.646438 1 0 1 1 0 0 0 0.500000 0.874715 0.882023 0.887841 0.500000 0.500000 0.500000 0.890037 0.875314 0.859685 0.867080 0.897623 0.500000 0.874542 0.869116 0.500000 0.500000 +0.516886 +0.280710 0.484710 0.315314 0.488669 0.455187 0.131455 0.762785 0.323029 0.500000 1 1 0.500000 0 0.500000 0.500000 0.500000 0.905931 0.500000 0.918759 0.893616 0.845972 0.906461 0.870892 0.500000 0.500000 0.500000 0.891574 0.500000 0.883877 0.895420 0.872041 0.865954 +0.663588 +0.346470 0.129122 0.754040 0.544622 0.869413 0.430013 0.227533 0.348352 0.500000 0 1 0 0.500000 0.500000 0.500000 0.500000 0.859605 0.861023 0.868739 0.898182 0.500000 0.500000 0.500000 0.886422 0.860271 0.875995 0.850049 0.500000 0.500000 0.872449 0.500000 0.500000 +0.484582 +0.287423 0.521852 0.562906 0.153251 0.684281 0.116665 0.194054 0.862343 1 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.882839 0.500000 0.500000 0.500000 0.869283 0.889987 0.500000 0.500000 0.500000 0.885848 0.870397 0.896548 0.881779 0.869258 0.888120 0.500000 +0.546347 +0.566604 0.712003 0.441258 0.423193 0.811739 0.696877 0.604289 0.477290 0.500000 1 0 0 1 0 0.500000 0 0.912956 0.898231 0.908783 0.500000 0.876123 0.913854 0.887777 0.852027 0.904686 0.897742 0.874305 0.906817 0.849109 0.911341 0.865762 0.868563 +0.878661 +0.433323 0.655005 0.874677 0.896411 0.578797 0.847686 0.864828 0.163329 0.500000 1 0.500000 0 0 0.500000 0 0.500000 0.887775 0.500000 0.500000 0.500000 0.856870 0.866403 0.872257 0.866713 0.500000 0.500000 0.873864 0.869054 0.899594 0.855590 0.852765 0.874957 +0.464382 +0.553283 0.825944 0.246983 0.838403 0.837973 0.820784 0.713149 0.491296 0.500000 1 0.500000 0 0 0 0 1 0.895943 0.500000 0.894483 0.891830 0.879580 0.886358 0.876830 0.872427 0.879221 0.889572 0.500000 0.500000 0.889320 0.885262 0.891125 0.500000 +0.630898 +0.356386 0.374149 0.528824 0.142781 0.720108 0.656948 0.732482 0.621242 0.500000 1 0 1 0.500000 1 0 1 0.897337 0.889806 0.500000 0.886079 0.500000 0.893494 0.889845 0.878629 0.861106 0.878104 0.500000 0.500000 0.500000 0.884440 0.500000 0.875886 +0.587894 +0.806105 0.413524 0.695635 0.534217 0.381297 0.658633 0.248436 0.464270 1 0 0.500000 1 0 1 0.500000 0 0.500000 0.867841 0.863035 0.893346 0.875771 0.900892 0.500000 0.500000 0.500000 0.500000 0.500000 0.880475 0.500000 0.500000 0.500000 0.873204 +0.373713 +0.424293 0.886416 0.590358 0.748492 0.101904 0.100189 0.883260 0.348568 0 0.500000 1 0 0.500000 1 0 0.500000 0.851647 0.500000 0.894885 0.500000 0.868937 0.859275 0.500000 0.887276 0.834665 0.864280 0.874226 0.500000 0.893177 0.874669 0.500000 0.905218 +0.559565 +0.571146 0.247103 0.465245 0.368196 0.464705 0.889714 0.819372 0.192200 0 1 1 1 0.500000 0.500000 1 0 0.888221 0.896214 0.858411 0.860241 0.851828 0.874688 0.854666 0.896945 0.500000 0.500000 0.861695 0.872723 0.500000 0.500000 0.891413 0.881719 +0.782870 +0.838861 0.540404 0.376514 0.269462 0.239731 0.553402 0.426108 0.191193 1 1 0 0 0 0 0 0.500000 0.500000 0.500000 0.887488 0.843367 0.889343 0.886287 0.500000 0.500000 0.500000 0.500000 0.891417 0.500000 0.858189 0.904765 0.500000 0.500000 +0.365468 +0.382156 0.693213 0.631073 0.251471 0.269363 0.185293 0.812061 0.501354 1 1 1 0 0.500000 0.500000 1 0 0.884484 0.500000 0.884879 0.887687 0.827195 0.868831 0.864418 0.896261 0.863706 0.500000 0.873362 0.500000 0.858138 0.882495 0.904499 0.879972 +0.772162 +0.209160 0.347189 0.198022 0.356840 0.808841 0.798690 0.583909 0.359921 0.500000 0.500000 0 1 0.500000 0.500000 1 1 0.876672 0.895195 0.862438 0.901090 0.885468 0.901295 0.881723 0.867708 0.500000 0.918866 0.890562 0.913229 0.909346 0.890891 0.500000 0.876422 +0.930875 +0.420755 0.622376 0.472293 0.421659 0.628442 0.818704 0.154617 0.445039 1 0 1 1 0.500000 0 0.500000 1 0.884298 0.891086 0.865321 0.869168 0.849014 0.500000 0.870576 0.862942 0.500000 0.500000 0.881083 0.500000 0.500000 0.500000 0.866885 0.500000 +0.539940 +0.754342 0.833027 0.888213 0.395260 0.131145 0.347856 0.211732 0.372915 0.500000 1 0 0 0 1 0.500000 1 0.500000 0.886006 0.896051 0.878528 0.914285 0.907864 0.879509 0.500000 0.848377 0.889112 0.500000 0.500000 0.860467 0.881540 0.869050 0.893431 +0.713171 +0.797235 0.134256 0.646999 0.705047 0.330416 0.694111 0.523143 0.671075 0.500000 0 1 0 1 1 0 0.500000 0.907055 0.867332 0.881941 0.903681 0.500000 0.500000 0.500000 0.500000 0.895105 0.500000 0.910498 0.882790 0.905725 0.891956 0.500000 0.897986 +0.549579 +0.120267 0.725473 0.419646 0.394409 0.227077 0.689373 0.898883 0.534401 0 0.500000 0 0.500000 0 0 0.500000 1 0.890779 0.500000 0.500000 0.855430 0.887057 0.500000 0.878071 0.904610 0.500000 0.500000 0.500000 0.500000 0.890894 0.905123 0.906443 0.883844 +0.479918 +0.498800 0.324575 0.129777 0.563231 0.815217 0.759554 0.430667 0.818842 1 0.500000 0 0 0.500000 1 0.500000 0.500000 0.874869 0.933102 0.500000 0.889645 0.500000 0.898342 0.500000 0.500000 0.869588 0.500000 0.881605 0.883836 0.869482 0.889753 0.898930 0.500000 +0.622037 +0.678772 0.321858 0.859544 0.155551 0.147679 0.636764 0.697348 0.526584 1 1 0.500000 1 1 0 0 0.500000 0.883277 0.500000 0.880639 0.897521 0.899516 0.500000 0.500000 0.500000 0.891546 0.500000 0.867842 0.500000 0.500000 0.500000 0.887362 0.500000 +0.332604 +0.671969 0.383042 0.383006 0.577620 0.266632 0.683750 0.778745 0.567397 0.500000 1 0 0 0.500000 1 0.500000 0.500000 0.876421 0.890043 0.852780 0.500000 0.867159 0.869040 0.860830 0.869841 0.903072 0.873320 0.864973 0.875416 0.500000 0.904525 0.881850 0.873982 +0.756898 +0.357530 0.413494 0.190358 0.349384 0.297212 0.239196 0.369375 0.284033 0 0 1 0 0 0.500000 1 0 0.894908 0.500000 0.875067 0.500000 0.887598 0.500000 0.887110 0.903429 0.500000 0.500000 0.871092 0.895776 0.881554 0.500000 0.873223 0.875387 +0.549349 +0.832779 0.719031 0.152753 0.322200 0.219539 0.389797 0.312350 0.258576 0.500000 0.500000 0.500000 0 0 0.500000 1 1 0.866386 0.895869 0.911644 0.882976 0.868512 0.859483 0.500000 0.830336 0.500000 0.904920 0.500000 0.500000 0.866782 0.897203 0.500000 0.500000 +0.590772 +0.796688 0.535524 0.749859 0.682879 0.547479 0.882298 0.180742 0.324954 1 0.500000 0 0 1 0.500000 0 0 0.500000 0.500000 0.882800 0.883326 0.888450 0.500000 0.890035 0.500000 0.890743 0.500000 0.901792 0.855066 0.500000 0.917048 0.894589 0.500000 +0.509554 +0.843134 0.347618 0.212858 0.897908 0.144613 0.310065 0.268031 0.200931 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0 0.888196 0.500000 0.880525 0.893425 0.858804 0.879787 0.870938 0.873293 0.895611 0.500000 0.910756 0.884923 0.883410 0.877192 0.881817 0.500000 +0.754301 +0.601821 0.603525 0.436278 0.718509 0.176306 0.183188 0.642619 0.700298 0.500000 1 0 1 0.500000 1 1 0 0.882746 0.885659 0.929287 0.500000 0.896393 0.890313 0.900393 0.500000 0.500000 0.888618 0.500000 0.889952 0.500000 0.877245 0.884592 0.868512 +0.620694 +0.555377 0.824095 0.359392 0.497852 0.401363 0.312763 0.803390 0.369731 1 0.500000 0 1 0.500000 0 1 0 0.862991 0.902049 0.864655 0.874548 0.903250 0.500000 0.500000 0.868349 0.902498 0.500000 0.500000 0.849970 0.500000 0.500000 0.884690 0.876735 +0.559346 +0.178514 0.479214 0.752962 0.836927 0.835433 0.521609 0.491065 0.725138 0.500000 0.500000 0 0 1 0 1 0 0.862656 0.500000 0.894170 0.888549 0.500000 0.873199 0.860035 0.902247 0.500000 0.500000 0.500000 0.500000 0.500000 0.856639 0.500000 0.848008 +0.448402 +0.389632 0.740650 0.308751 0.574685 0.538191 0.777906 0.867022 0.233023 0.500000 1 0 1 0.500000 0 1 0 0.864970 0.892596 0.896761 0.903602 0.884962 0.877817 0.902884 0.908140 0.893364 0.870255 0.500000 0.500000 0.500000 0.893438 0.500000 0.500000 +0.735992 +0.524719 0.753586 0.126835 0.721170 0.896381 0.872006 0.797138 0.895552 0.500000 1 1 0.500000 1 1 1 0.500000 0.869487 0.880437 0.866396 0.884156 0.866637 0.500000 0.893474 0.500000 0.500000 0.898884 0.884012 0.500000 0.875301 0.500000 0.879863 0.892752 +0.591546 +0.321019 0.365392 0.551007 0.178540 0.128629 0.473678 0.512465 0.393688 0 0 0.500000 0.500000 1 0.500000 0.500000 0 0.500000 0.880841 0.894844 0.500000 0.868787 0.898718 0.500000 0.500000 0.877565 0.910878 0.882378 0.500000 0.500000 0.899187 0.872752 0.874546 +0.533926 +0.186968 0.179326 0.536867 0.126756 0.181552 0.341490 0.424700 0.538277 0.500000 0 0 0.500000 0 1 0 1 0.869636 0.900894 0.500000 0.889299 0.889496 0.879516 0.882401 0.873929 0.500000 0.861324 0.500000 0.899006 0.500000 0.500000 0.899492 0.899083 +0.665572 +0.653175 0.506108 0.751796 0.428573 0.819803 0.226307 0.543701 0.580753 0 0 0.500000 0 0 0 1 0 0.851315 0.895018 0.891450 0.870063 0.500000 0.892195 0.891935 0.886744 0.500000 0.866094 0.859142 0.500000 0.889685 0.500000 0.891972 0.863143 +0.658578 +0.848924 0.871306 0.235870 0.474898 0.214528 0.172422 0.499491 0.751442 1 0 0 0.500000 0 1 0 0 0.869910 0.500000 0.889921 0.500000 0.500000 0.875277 0.908944 0.863797 0.870775 0.500000 0.500000 0.896366 0.500000 0.901965 0.500000 0.877935 +0.409785 +0.331850 0.810955 0.323162 0.390702 0.334400 0.457766 0.274082 0.295659 0.500000 0 0.500000 0.500000 0 0 1 0 0.884289 0.868643 0.888917 0.500000 0.872868 0.892658 0.881515 0.898267 0.889286 0.500000 0.863222 0.500000 0.500000 0.500000 0.500000 0.500000 +0.574888 +0.663968 0.317327 0.723146 0.518160 0.115081 0.760268 0.425348 0.222490 0.500000 0.500000 1 0.500000 0 0.500000 0.500000 0.500000 0.887547 0.870673 0.896775 0.911850 0.500000 0.909626 0.500000 0.859025 0.889413 0.500000 0.899845 0.500000 0.894291 0.500000 0.500000 0.500000 +0.541767 +0.588056 0.452612 0.847369 0.332566 0.837511 0.253914 0.527886 0.383003 0.500000 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.871005 0.500000 0.500000 0.891727 0.860390 0.848475 0.500000 0.915072 0.885696 0.874230 0.871765 0.888109 0.861784 0.500000 0.500000 0.500000 +0.486567 +0.880037 0.589692 0.753159 0.136556 0.893065 0.347868 0.421284 0.723500 1 0 0.500000 0.500000 1 1 1 0 0.900321 0.893877 0.871756 0.874727 0.500000 0.909690 0.500000 0.854149 0.500000 0.869654 0.500000 0.908579 0.500000 0.923442 0.901293 0.888551 +0.634742 +0.627080 0.329610 0.760960 0.852484 0.695916 0.457681 0.445651 0.649948 1 0 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.904401 0.917011 0.901489 0.913146 0.860796 0.880780 0.500000 0.500000 0.890693 0.884676 0.905103 0.500000 0.918536 0.836943 0.500000 0.870906 +0.658901 +0.226165 0.555419 0.719784 0.805995 0.157184 0.395050 0.605603 0.173046 0.500000 0.500000 0 0.500000 1 0.500000 0 0.500000 0.882535 0.500000 0.870800 0.898541 0.877708 0.878784 0.894477 0.888047 0.899232 0.500000 0.861683 0.866044 0.500000 0.500000 0.500000 0.500000 +0.675441 +0.393886 0.245277 0.178514 0.487923 0.728213 0.874530 0.821300 0.584991 0 0 0.500000 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.872956 0.873380 0.866661 0.500000 0.500000 0.500000 0.879443 0.500000 0.500000 0.875473 0.500000 0.500000 0.500000 0.868224 0.500000 +0.218260 +0.405582 0.819718 0.405809 0.624692 0.205806 0.784363 0.591584 0.550138 1 0.500000 0.500000 0.500000 0 0 0.500000 1 0.864370 0.886088 0.500000 0.500000 0.869903 0.904296 0.882111 0.852987 0.500000 0.863347 0.500000 0.862282 0.914571 0.881024 0.892761 0.500000 +0.624108 +0.608546 0.830584 0.632451 0.204081 0.592962 0.511288 0.625087 0.443087 1 1 1 0 0 0.500000 0 1 0.500000 0.868423 0.898299 0.867623 0.893987 0.500000 0.868941 0.887232 0.500000 0.500000 0.500000 0.861359 0.500000 0.500000 0.873074 0.898908 +0.459023 +0.281186 0.495487 0.649437 0.885707 0.684979 0.643622 0.753045 0.623309 0 1 0.500000 0.500000 0 0.500000 1 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.913967 0.500000 0.847859 0.878100 0.890501 0.885421 0.500000 0.500000 0.500000 0.500000 +0.185451 +0.743015 0.858530 0.707772 0.518501 0.250419 0.197866 0.131012 0.512926 0 0 0 1 0.500000 0.500000 0 0.500000 0.500000 0.893957 0.897729 0.500000 0.868356 0.899585 0.906412 0.500000 0.500000 0.500000 0.843723 0.840942 0.500000 0.880957 0.863057 0.500000 +0.448002 +0.417902 0.684956 0.261532 0.572997 0.166995 0.488555 0.139092 0.313550 0.500000 0.500000 1 0.500000 1 0 1 0.500000 0.908689 0.881791 0.894710 0.500000 0.893781 0.874227 0.872506 0.903154 0.854165 0.500000 0.893748 0.879165 0.500000 0.912658 0.500000 0.500000 +0.633315 +0.212035 0.664625 0.157623 0.577526 0.286094 0.574819 0.381686 0.789795 1 0 0.500000 1 0.500000 1 1 1 0.913877 0.500000 0.876867 0.879418 0.894583 0.500000 0.890826 0.500000 0.500000 0.500000 0.866558 0.500000 0.500000 0.500000 0.500000 0.917565 +0.446834 +0.352380 0.258596 0.818009 0.484974 0.763578 0.863470 0.545437 0.156556 0 0 1 1 0.500000 0 0.500000 0.500000 0.500000 0.893597 0.891611 0.828527 0.500000 0.500000 0.891419 0.500000 0.917091 0.500000 0.858419 0.868264 0.906402 0.500000 0.500000 0.500000 +0.380159 +0.624400 0.890126 0.551933 0.533556 0.471478 0.327773 0.287304 0.123680 0.500000 0.500000 1 0 0 0 0 1 0.888974 0.500000 0.893959 0.895877 0.883115 0.883339 0.894962 0.864018 0.500000 0.906360 0.857003 0.500000 0.917023 0.902882 0.866862 0.500000 +0.744582 +0.691525 0.266308 0.833566 0.346766 0.292768 0.755266 0.356549 0.723002 0.500000 1 0 0 1 1 0.500000 0 0.908777 0.918993 0.860091 0.886234 0.889625 0.883662 0.893821 0.500000 0.500000 0.884049 0.500000 0.500000 0.882860 0.500000 0.909136 0.500000 +0.576511 +0.184054 0.797324 0.830139 0.337982 0.670458 0.581271 0.814160 0.580679 0.500000 1 1 1 0 0 0.500000 0 0.865357 0.500000 0.898326 0.500000 0.500000 0.500000 0.864305 0.878207 0.864619 0.500000 0.923338 0.895038 0.500000 0.894847 0.893070 0.878707 +0.631043 +0.357825 0.557599 0.568035 0.765942 0.593151 0.489483 0.542399 0.297166 0 1 0.500000 0.500000 1 0 1 0 0.500000 0.881863 0.851901 0.872163 0.861322 0.500000 0.500000 0.500000 0.898277 0.500000 0.880504 0.500000 0.897364 0.500000 0.500000 0.500000 +0.332561 +0.382064 0.748651 0.375047 0.420956 0.814687 0.653027 0.428386 0.876983 0.500000 1 0.500000 0 0.500000 1 0 0.500000 0.890320 0.868517 0.869186 0.880435 0.876475 0.871737 0.868944 0.500000 0.500000 0.912524 0.913255 0.500000 0.500000 0.500000 0.881557 0.920625 +0.636829 +0.843848 0.348391 0.405520 0.568919 0.416221 0.431713 0.804494 0.523999 1 0 1 0 1 0 0.500000 0 0.500000 0.871536 0.913814 0.869998 0.500000 0.888368 0.868610 0.892511 0.898711 0.882564 0.500000 0.873526 0.917116 0.500000 0.869632 0.500000 +0.655250 +0.321899 0.758245 0.817895 0.163939 0.319022 0.399021 0.151735 0.815316 1 1 1 0.500000 0 1 0.500000 1 0.902524 0.883590 0.894177 0.898739 0.500000 0.500000 0.882982 0.865478 0.886486 0.500000 0.500000 0.500000 0.885605 0.871706 0.891622 0.500000 +0.603594 +0.875625 0.832095 0.414431 0.740169 0.215164 0.465534 0.432359 0.462798 1 0 0 0.500000 0 0 0 0.500000 0.881296 0.902194 0.500000 0.888433 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.887094 0.856283 0.864230 +0.252645 +0.388593 0.881460 0.506356 0.132248 0.485494 0.700411 0.810814 0.350458 1 0 0.500000 1 0.500000 0.500000 1 0.500000 0.915092 0.880753 0.500000 0.500000 0.901867 0.878106 0.851878 0.845981 0.870696 0.845266 0.500000 0.500000 0.875656 0.500000 0.500000 0.500000 +0.465613 +0.353181 0.112963 0.376678 0.634718 0.707649 0.857230 0.459160 0.495012 1 0.500000 0.500000 0 1 0.500000 1 0 0.500000 0.895947 0.881661 0.500000 0.866676 0.500000 0.888002 0.885757 0.894515 0.871294 0.892449 0.890671 0.896146 0.893256 0.500000 0.500000 +0.664695 +0.314524 0.803526 0.259189 0.382230 0.335327 0.835584 0.665430 0.881420 1 0 0.500000 0 1 1 0.500000 0 0.500000 0.849800 0.500000 0.869828 0.878939 0.500000 0.500000 0.899198 0.899492 0.903936 0.888105 0.500000 0.852174 0.500000 0.899758 0.500000 +0.459550 +0.203132 0.641012 0.887516 0.682503 0.634316 0.357186 0.231898 0.111817 0 0.500000 0.500000 1 0.500000 1 1 0.500000 0.902986 0.849171 0.845329 0.500000 0.881866 0.500000 0.500000 0.892992 0.500000 0.500000 0.500000 0.897458 0.500000 0.500000 0.500000 0.500000 +0.299627 +0.453936 0.702627 0.449067 0.470717 0.343575 0.256819 0.555433 0.165175 0 0.500000 0 0.500000 1 0.500000 0 1 0.500000 0.872962 0.891710 0.500000 0.900067 0.892874 0.865871 0.870643 0.500000 0.500000 0.500000 0.859232 0.500000 0.892961 0.841392 0.500000 +0.507713 +0.726011 0.670072 0.503078 0.230632 0.435770 0.184655 0.487806 0.353319 1 0.500000 1 0 0.500000 1 1 1 0.896014 0.500000 0.500000 0.875188 0.872826 0.917111 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.890783 0.500000 0.893334 +0.285898 +0.699674 0.414152 0.850320 0.331918 0.350199 0.394986 0.328307 0.449123 0.500000 0 0 0 0.500000 0.500000 0 0 0.892969 0.860917 0.892285 0.908815 0.500000 0.500000 0.500000 0.500000 0.857939 0.500000 0.500000 0.500000 0.896616 0.862830 0.870121 0.893226 +0.366757 +0.375977 0.843598 0.149256 0.741590 0.107285 0.142120 0.803007 0.343331 0 1 0.500000 0.500000 0.500000 0.500000 1 0 0.876317 0.870848 0.893651 0.880487 0.848460 0.500000 0.890517 0.877505 0.500000 0.864728 0.500000 0.500000 0.858213 0.500000 0.872211 0.500000 +0.621284 +0.497541 0.769467 0.627540 0.867923 0.191141 0.708078 0.863475 0.624352 1 1 0 1 0.500000 0.500000 1 0.500000 0.904056 0.888070 0.884691 0.857659 0.500000 0.500000 0.880891 0.867812 0.500000 0.500000 0.880864 0.880856 0.500000 0.880870 0.895459 0.500000 +0.510196 +0.320718 0.103904 0.116969 0.491118 0.814551 0.767258 0.301981 0.386583 1 1 0 0.500000 1 1 0 0.500000 0.893832 0.500000 0.889468 0.889882 0.500000 0.500000 0.899648 0.870931 0.500000 0.888664 0.500000 0.873952 0.500000 0.895275 0.500000 0.881762 +0.549110 +0.492937 0.188927 0.291044 0.568467 0.820473 0.293881 0.255449 0.727243 0.500000 0 0 0.500000 0.500000 0.500000 1 1 0.500000 0.873468 0.500000 0.500000 0.890152 0.897316 0.878921 0.500000 0.882052 0.908332 0.889580 0.893340 0.886225 0.500000 0.870277 0.500000 +0.529756 +0.851535 0.741555 0.320270 0.576627 0.376937 0.181916 0.856070 0.162591 1 1 0 0.500000 0 0.500000 0 0 0.852747 0.896296 0.863556 0.868569 0.846865 0.500000 0.865473 0.894725 0.500000 0.500000 0.500000 0.870002 0.886436 0.847968 0.500000 0.872171 +0.681438 +0.635335 0.683367 0.754022 0.250038 0.187068 0.245686 0.636567 0.589536 0.500000 0.500000 0 0 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.866858 0.850738 0.895077 0.500000 0.852526 0.500000 0.500000 0.859556 0.500000 0.500000 0.500000 0.891367 0.881229 +0.264741 +0.460054 0.326493 0.367450 0.729134 0.351682 0.521002 0.672857 0.105254 0.500000 0 0.500000 0 0 0 0 0.500000 0.879007 0.876875 0.877747 0.895090 0.899010 0.932023 0.500000 0.500000 0.895716 0.878401 0.897570 0.500000 0.897376 0.500000 0.500000 0.904304 +0.622460 +0.196485 0.115458 0.709820 0.548559 0.633840 0.342026 0.636614 0.575798 1 1 0 0.500000 1 0.500000 0 0 0.872299 0.854604 0.500000 0.500000 0.913757 0.500000 0.895127 0.500000 0.876684 0.500000 0.878738 0.500000 0.500000 0.500000 0.921924 0.500000 +0.358048 +0.285536 0.797025 0.605184 0.322339 0.148679 0.646008 0.865203 0.871677 1 1 0 0 1 0 0 0.500000 0.854269 0.853405 0.876961 0.905513 0.900379 0.884655 0.897831 0.500000 0.867274 0.869028 0.884962 0.862005 0.500000 0.891105 0.500000 0.898336 +0.766109 +0.401085 0.429395 0.233432 0.295603 0.400155 0.800479 0.258173 0.113814 0 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.907264 0.500000 0.902795 0.897639 0.858571 0.881505 0.894857 0.906212 0.863294 0.877753 0.500000 0.500000 0.859220 0.500000 0.500000 0.885177 +0.650106 +0.506958 0.643353 0.237054 0.373104 0.558450 0.461953 0.246221 0.837017 1 0 0.500000 1 0.500000 1 0 0 0.894248 0.500000 0.879604 0.903554 0.896219 0.500000 0.500000 0.905415 0.500000 0.855520 0.500000 0.500000 0.906263 0.867213 0.500000 0.500000 +0.457331 +0.496245 0.589670 0.389514 0.364767 0.447375 0.828139 0.324365 0.603866 0.500000 1 1 1 1 1 0.500000 0 0.875697 0.900941 0.899113 0.891345 0.871970 0.895093 0.921185 0.500000 0.500000 0.500000 0.868680 0.862138 0.891872 0.901171 0.916616 0.500000 +0.764915 +0.176925 0.174133 0.459332 0.196892 0.557565 0.790036 0.731982 0.224412 1 0.500000 1 0 1 1 0.500000 0.500000 0.869509 0.879642 0.871083 0.897884 0.848037 0.885688 0.900620 0.864837 0.896781 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.621807 +0.341568 0.130978 0.742190 0.587905 0.327687 0.441849 0.756972 0.232711 0 0.500000 0.500000 0.500000 0.500000 1 1 0 0.500000 0.858076 0.875175 0.876447 0.878206 0.888294 0.885373 0.863130 0.500000 0.867031 0.500000 0.904843 0.500000 0.500000 0.901401 0.864325 +0.640460 +0.770455 0.444462 0.678788 0.593289 0.400497 0.157093 0.468094 0.256985 0 0 0 0.500000 0.500000 0.500000 0.500000 0 0.913051 0.500000 0.888821 0.877151 0.500000 0.862397 0.896684 0.886669 0.500000 0.500000 0.873296 0.865765 0.500000 0.500000 0.500000 0.892943 +0.436004 +0.826787 0.806206 0.500733 0.812003 0.329576 0.176737 0.219675 0.269825 1 1 0.500000 1 0 1 0 1 0.887507 0.500000 0.879846 0.918535 0.898247 0.853325 0.876804 0.500000 0.868720 0.900563 0.500000 0.864965 0.904095 0.898131 0.875263 0.500000 +0.717151 +0.672080 0.654076 0.458942 0.830787 0.836371 0.281663 0.513502 0.229706 1 0 0 1 0.500000 0.500000 1 0.500000 0.886678 0.887374 0.500000 0.500000 0.871950 0.915456 0.500000 0.868532 0.894491 0.870097 0.500000 0.500000 0.894348 0.500000 0.897049 0.500000 +0.422852 +0.887999 0.801053 0.296397 0.141754 0.257467 0.241950 0.259863 0.524498 0 0.500000 1 1 0.500000 1 1 0.500000 0.899620 0.888746 0.870590 0.500000 0.500000 0.888896 0.883495 0.874712 0.500000 0.901953 0.500000 0.884442 0.845685 0.878032 0.500000 0.500000 +0.438721 +0.719213 0.814097 0.327720 0.183916 0.874640 0.266294 0.608398 0.751986 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.873189 0.909618 0.500000 0.879130 0.500000 0.884889 0.882547 0.877937 0.898012 0.881301 0.866243 0.890444 0.889962 0.886148 +0.806220 +0.560080 0.657864 0.127795 0.856601 0.292058 0.825763 0.399601 0.296298 1 0 1 0 0 1 0.500000 0 0.500000 0.889812 0.500000 0.881697 0.859245 0.500000 0.500000 0.883474 0.904314 0.500000 0.500000 0.871225 0.861064 0.902477 0.500000 0.500000 +0.380875 +0.492563 0.305592 0.282750 0.382627 0.614720 0.592569 0.311962 0.152290 0.500000 1 0 0 0 0.500000 1 0.500000 0.898065 0.872022 0.880439 0.912705 0.915031 0.883317 0.896196 0.881730 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.891434 0.873461 +0.694477 +0.274898 0.407408 0.299343 0.849769 0.671552 0.566670 0.229784 0.583851 0 1 0.500000 1 0 1 0.500000 0 0.500000 0.500000 0.865644 0.856556 0.901101 0.500000 0.878675 0.500000 0.866316 0.500000 0.500000 0.875131 0.899218 0.884793 0.500000 0.500000 +0.425767 +0.538812 0.808716 0.284612 0.480885 0.836837 0.111000 0.180775 0.877439 0 1 1 1 0 1 1 1 0.500000 0.891630 0.876060 0.880476 0.500000 0.886229 0.850990 0.852775 0.500000 0.500000 0.886109 0.500000 0.859741 0.878031 0.852150 0.886847 +0.555657 +0.709593 0.723180 0.288521 0.568160 0.458213 0.579282 0.193897 0.634067 0 1 1 1 0 0 0 0 0.878465 0.500000 0.500000 0.855085 0.848574 0.888767 0.500000 0.883239 0.866787 0.872178 0.876706 0.921094 0.500000 0.869964 0.500000 0.500000 +0.485562 +0.207468 0.715204 0.628363 0.291251 0.862064 0.110647 0.642445 0.170538 1 0.500000 0.500000 0.500000 1 0 1 0.500000 0.500000 0.904603 0.875638 0.898283 0.889281 0.500000 0.877725 0.891677 0.500000 0.881214 0.885473 0.500000 0.500000 0.500000 0.500000 0.889638 +0.520041 +0.886838 0.487015 0.668959 0.197310 0.394573 0.582097 0.305865 0.870950 1 0.500000 0.500000 1 1 0.500000 0.500000 1 0.879964 0.841364 0.851394 0.888716 0.500000 0.863001 0.868934 0.500000 0.887611 0.500000 0.500000 0.899496 0.500000 0.500000 0.500000 0.890961 +0.506830 +0.145323 0.241691 0.698027 0.747799 0.454169 0.619305 0.861607 0.434031 0.500000 0 0 0 0.500000 1 1 0 0.901490 0.847499 0.500000 0.856568 0.500000 0.899988 0.903090 0.871957 0.500000 0.888901 0.881346 0.903163 0.500000 0.887130 0.876466 0.500000 +0.536880 +0.170654 0.373657 0.259877 0.745333 0.619185 0.443525 0.120901 0.180511 0.500000 0 0 0 0.500000 0.500000 0 0 0.875955 0.876006 0.894850 0.856179 0.878761 0.500000 0.872338 0.500000 0.930509 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.436251 +0.714397 0.670887 0.601146 0.465564 0.126278 0.159993 0.400911 0.705770 0.500000 0.500000 0 1 1 0.500000 0.500000 1 0.901608 0.886960 0.861486 0.917932 0.500000 0.901828 0.880750 0.500000 0.500000 0.898628 0.860510 0.861027 0.869722 0.500000 0.500000 0.906076 +0.611256 +0.666338 0.149139 0.382713 0.451215 0.574817 0.344188 0.165944 0.423494 0 0.500000 0.500000 0.500000 0 0.500000 0 0.500000 0.884208 0.886001 0.888153 0.500000 0.883565 0.858221 0.500000 0.500000 0.862832 0.500000 0.500000 0.874311 0.888556 0.500000 0.881961 0.879789 +0.525920 +0.556234 0.822974 0.719255 0.715815 0.511035 0.361588 0.612388 0.603014 1 0.500000 1 0 0 1 1 0 0.874169 0.863269 0.844981 0.854161 0.500000 0.904400 0.881684 0.905393 0.875399 0.879224 0.500000 0.877295 0.915277 0.885249 0.500000 0.500000 +0.686154 +0.296217 0.321477 0.857029 0.289820 0.803993 0.106802 0.816545 0.672608 1 0.500000 1 0 0.500000 1 1 0.500000 0.866143 0.875025 0.901103 0.902055 0.500000 0.500000 0.885888 0.500000 0.855502 0.500000 0.863607 0.870505 0.500000 0.500000 0.500000 0.868858 +0.450507 +0.276412 0.261490 0.666765 0.112684 0.477733 0.651947 0.676687 0.484943 0 1 1 0 0 0 0 0 0.500000 0.908805 0.892023 0.863384 0.880645 0.901886 0.909468 0.500000 0.882656 0.841798 0.889779 0.500000 0.500000 0.500000 0.876548 0.500000 +0.542740 +0.346093 0.181987 0.449697 0.664196 0.147784 0.810182 0.128760 0.265688 1 1 0.500000 1 0 1 0 0 0.904272 0.500000 0.886847 0.893743 0.906768 0.500000 0.877899 0.893133 0.500000 0.907253 0.500000 0.876788 0.500000 0.868633 0.500000 0.872729 +0.626021 +0.294796 0.432449 0.364178 0.134395 0.581993 0.151525 0.476050 0.377510 0 1 0 0 0.500000 1 1 0 0.856563 0.878051 0.900458 0.883188 0.882093 0.907578 0.500000 0.902476 0.500000 0.880177 0.500000 0.842263 0.833228 0.911511 0.912105 0.500000 +0.713776 +0.886680 0.230101 0.304950 0.689079 0.747027 0.281699 0.315788 0.451730 0.500000 0 1 1 1 1 1 0.500000 0.896108 0.902663 0.877142 0.895006 0.849470 0.882123 0.879921 0.500000 0.500000 0.898580 0.500000 0.500000 0.913189 0.500000 0.894966 0.500000 +0.574628 +0.309562 0.609579 0.600097 0.422254 0.218495 0.448987 0.728670 0.559354 0.500000 0 0 1 0.500000 0.500000 0 0 0.876253 0.899277 0.500000 0.887907 0.500000 0.500000 0.879871 0.500000 0.883234 0.500000 0.881915 0.500000 0.904311 0.500000 0.869213 0.895538 +0.442362 +0.403407 0.254351 0.683653 0.751330 0.599730 0.665719 0.132830 0.678336 0 0.500000 1 0 0.500000 1 0 0 0.500000 0.886609 0.500000 0.894188 0.909823 0.890153 0.881714 0.869530 0.500000 0.500000 0.500000 0.867441 0.883649 0.500000 0.886983 0.892683 +0.544943 +0.397186 0.512272 0.348801 0.891510 0.607820 0.629807 0.565305 0.487941 0 0.500000 0.500000 0 1 1 0.500000 0 0.857755 0.854815 0.849890 0.865214 0.892783 0.500000 0.500000 0.500000 0.884103 0.870045 0.874628 0.500000 0.500000 0.500000 0.500000 0.500000 +0.404492 +0.254907 0.427273 0.581234 0.192107 0.146817 0.557956 0.168362 0.262586 1 0 0.500000 0 0.500000 0.500000 0 0.500000 0.896249 0.850345 0.500000 0.905597 0.500000 0.866716 0.500000 0.900341 0.901156 0.500000 0.500000 0.917660 0.500000 0.903674 0.873091 0.500000 +0.471622 +0.782025 0.500706 0.361567 0.256332 0.370266 0.853442 0.797350 0.453207 0.500000 1 0 0.500000 1 0 0.500000 0.500000 0.874179 0.884257 0.882886 0.880545 0.500000 0.895257 0.849664 0.916586 0.500000 0.865573 0.895026 0.500000 0.879416 0.500000 0.900566 0.500000 +0.576250 +0.785589 0.392623 0.608356 0.832855 0.396820 0.759117 0.287460 0.342358 0.500000 0 0 1 0 0 1 1 0.500000 0.874801 0.892312 0.500000 0.888050 0.859586 0.895072 0.872568 0.500000 0.868976 0.500000 0.500000 0.895779 0.901796 0.865910 0.500000 +0.458220 +0.377328 0.350900 0.183170 0.333722 0.261646 0.880471 0.682873 0.440101 0 0.500000 0.500000 0 0 0.500000 0.500000 1 0.874008 0.500000 0.500000 0.892901 0.890348 0.500000 0.500000 0.500000 0.500000 0.886692 0.888463 0.500000 0.500000 0.856939 0.877040 0.500000 +0.297180 +0.601084 0.226829 0.515345 0.808178 0.854641 0.159379 0.483352 0.692589 0.500000 0.500000 0.500000 0.500000 1 0 1 0.500000 0.862446 0.853207 0.500000 0.890325 0.880829 0.500000 0.862457 0.861988 0.887972 0.500000 0.500000 0.500000 0.500000 0.893385 0.890620 0.500000 +0.480128 +0.217177 0.693381 0.256518 0.297595 0.280361 0.221319 0.709042 0.270965 1 0 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.876143 0.882911 0.899891 0.884550 0.500000 0.902401 0.850170 0.500000 0.500000 0.500000 0.500000 0.887730 0.903843 0.893292 0.897075 +0.684593 +0.396333 0.569098 0.222298 0.369988 0.186327 0.605071 0.820212 0.699418 0 0.500000 1 1 0.500000 0.500000 0 0 0.893068 0.500000 0.859176 0.875823 0.873351 0.500000 0.500000 0.500000 0.887667 0.870605 0.500000 0.925126 0.903079 0.876053 0.500000 0.866863 +0.507945 +0.262307 0.786183 0.782701 0.659560 0.624846 0.378816 0.558054 0.206277 1 0.500000 0 0.500000 0 0.500000 1 0 0.500000 0.859465 0.884364 0.886183 0.878129 0.909416 0.500000 0.500000 0.900108 0.899090 0.889803 0.500000 0.914018 0.899206 0.500000 0.868373 +0.610616 +0.876802 0.605348 0.678642 0.537368 0.537348 0.202504 0.489776 0.671672 0 1 1 1 0 0.500000 1 0 0.870148 0.892292 0.887279 0.859602 0.891032 0.874442 0.890357 0.869254 0.891072 0.838156 0.500000 0.886954 0.910712 0.874834 0.857248 0.887271 +0.945532 +0.847091 0.465251 0.477865 0.477422 0.235973 0.591941 0.152944 0.335269 1 1 0.500000 1 1 1 0 0.500000 0.896885 0.500000 0.890092 0.874268 0.892356 0.500000 0.500000 0.842046 0.898947 0.500000 0.500000 0.500000 0.500000 0.864275 0.500000 0.500000 +0.328473 +0.386283 0.452163 0.500839 0.209576 0.139217 0.816107 0.515815 0.701341 0.500000 0.500000 0 0.500000 0.500000 0 0.500000 0.500000 0.866157 0.887294 0.877045 0.884892 0.841930 0.500000 0.500000 0.500000 0.500000 0.899807 0.500000 0.883999 0.500000 0.500000 0.862619 0.851855 +0.413527 +0.575701 0.808842 0.813116 0.634360 0.291650 0.369319 0.142158 0.643924 0 0.500000 0.500000 0.500000 0 0 0.500000 0 0.909101 0.500000 0.914638 0.915176 0.874582 0.500000 0.861238 0.500000 0.888081 0.892890 0.500000 0.500000 0.873015 0.500000 0.500000 0.847707 +0.454817 +0.535313 0.403819 0.784295 0.238772 0.444405 0.512463 0.369971 0.709124 1 0 0.500000 0 0.500000 1 1 0.500000 0.915660 0.500000 0.876972 0.864452 0.854734 0.881156 0.898415 0.898378 0.500000 0.896475 0.878438 0.836093 0.907290 0.500000 0.500000 0.863046 +0.681576 +0.289916 0.824057 0.534178 0.522724 0.816837 0.771784 0.372969 0.683756 1 0 0.500000 0 0 1 0 1 0.500000 0.870543 0.888116 0.883059 0.856821 0.893737 0.864789 0.895143 0.500000 0.888522 0.897672 0.500000 0.500000 0.903426 0.500000 0.500000 +0.536192 +0.111361 0.638059 0.853490 0.804799 0.859425 0.553222 0.593809 0.348713 0 1 1 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.862630 0.857790 0.868248 0.924557 0.905824 0.910405 0.868203 0.867187 0.500000 0.500000 0.905977 0.902813 0.500000 0.500000 0.500000 +0.562116 +0.752456 0.329789 0.564326 0.826069 0.736066 0.862347 0.859901 0.550118 0.500000 0.500000 0.500000 0.500000 0 0.500000 1 0 0.912102 0.500000 0.877663 0.879668 0.500000 0.500000 0.861007 0.871280 0.500000 0.500000 0.500000 0.500000 0.500000 0.869852 0.861685 0.891154 +0.346008 +0.675164 0.473763 0.336895 0.797282 0.112298 0.386824 0.745822 0.824250 0.500000 1 1 0.500000 1 0 0.500000 0.500000 0.883901 0.874301 0.906186 0.856730 0.900507 0.927882 0.500000 0.872547 0.500000 0.868356 0.899489 0.868933 0.500000 0.887082 0.862264 0.500000 +0.765768 +0.478870 0.564755 0.835263 0.864697 0.357802 0.176261 0.215615 0.847739 0 1 0.500000 1 0 1 0 0 0.500000 0.868599 0.500000 0.500000 0.500000 0.890702 0.878860 0.500000 0.884093 0.873976 0.892896 0.500000 0.886714 0.865657 0.890414 0.500000 +0.470363 +0.622959 0.680280 0.862070 0.204764 0.863270 0.377900 0.371844 0.175674 1 0.500000 0.500000 0.500000 0 0 1 0 0.500000 0.862441 0.890511 0.875797 0.901597 0.500000 0.900659 0.897382 0.500000 0.866479 0.887068 0.897673 0.500000 0.500000 0.500000 0.869674 +0.568247 +0.646139 0.657927 0.371626 0.524942 0.494059 0.644998 0.684017 0.471231 0 0.500000 0 0.500000 0.500000 0 0.500000 1 0.853699 0.887905 0.500000 0.500000 0.878771 0.918752 0.500000 0.500000 0.500000 0.844954 0.500000 0.875884 0.902016 0.875871 0.500000 0.861011 +0.420575 +0.133990 0.173127 0.338603 0.699552 0.765778 0.233335 0.266635 0.735391 1 1 0.500000 1 0 0 1 0.500000 0.881002 0.861498 0.875724 0.500000 0.872048 0.500000 0.867421 0.500000 0.916494 0.500000 0.500000 0.886212 0.500000 0.876602 0.500000 0.500000 +0.464923 +0.592273 0.132056 0.468155 0.483699 0.121155 0.451185 0.872026 0.335757 1 1 1 0.500000 0.500000 0 1 0 0.894006 0.904233 0.896962 0.500000 0.869660 0.500000 0.890497 0.500000 0.500000 0.500000 0.882001 0.894765 0.500000 0.500000 0.500000 0.870983 +0.538817 +0.875990 0.570892 0.782853 0.806918 0.470282 0.221505 0.637593 0.217779 0.500000 1 0.500000 1 0.500000 0 0 1 0.870606 0.897308 0.500000 0.898706 0.906693 0.900832 0.500000 0.871695 0.860982 0.882642 0.500000 0.903789 0.500000 0.500000 0.500000 0.500000 +0.526032 +0.461199 0.375893 0.228734 0.537455 0.402475 0.602596 0.828513 0.210968 0 0 0.500000 0.500000 1 0 0.500000 0.500000 0.894189 0.849935 0.500000 0.864893 0.900428 0.846935 0.853704 0.500000 0.842985 0.500000 0.889423 0.500000 0.500000 0.908266 0.500000 0.855746 +0.488095 +0.181517 0.552960 0.193492 0.227016 0.463192 0.274563 0.373524 0.412400 0 0 1 0.500000 1 0.500000 0.500000 0.500000 0.861806 0.858626 0.500000 0.902080 0.500000 0.500000 0.845261 0.880287 0.500000 0.500000 0.500000 0.500000 0.899968 0.500000 0.884859 0.500000 +0.318990 +0.667191 0.873211 0.251781 0.691267 0.723067 0.790651 0.675456 0.585517 0 0 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 0.909678 0.872275 0.890470 0.857300 0.906946 0.874714 0.500000 0.500000 0.895927 0.500000 0.879161 0.849510 0.895489 0.882139 +0.555044 +0.876401 0.266575 0.518151 0.762135 0.596197 0.483899 0.298152 0.838776 1 1 0.500000 0 1 0 0 1 0.820153 0.868886 0.880911 0.500000 0.871446 0.500000 0.500000 0.500000 0.875575 0.500000 0.500000 0.914694 0.881040 0.881823 0.500000 0.870360 +0.405590 +0.709282 0.303593 0.285931 0.248744 0.844550 0.148452 0.832682 0.688078 1 0.500000 0.500000 1 0.500000 0.500000 0 0.500000 0.500000 0.885523 0.870182 0.909988 0.500000 0.899121 0.896673 0.500000 0.500000 0.500000 0.500000 0.850927 0.875329 0.500000 0.886506 0.884367 +0.536465 +0.488722 0.554099 0.140880 0.772155 0.209502 0.496076 0.153839 0.166437 1 0.500000 0 0 1 0 1 0 0.862229 0.500000 0.885119 0.844950 0.878978 0.890921 0.910549 0.883000 0.852050 0.913691 0.500000 0.500000 0.905015 0.893318 0.897606 0.500000 +0.712632 +0.379376 0.378642 0.831405 0.818707 0.206809 0.844241 0.556313 0.559423 1 1 1 0 0 0.500000 0.500000 0 0.895284 0.859424 0.500000 0.896661 0.500000 0.842436 0.852093 0.853345 0.868760 0.500000 0.886356 0.500000 0.500000 0.884471 0.500000 0.891949 +0.554493 +0.124054 0.381003 0.515530 0.707596 0.765193 0.792527 0.209356 0.452590 0.500000 1 1 0 0 0.500000 0.500000 0.500000 0.878002 0.879672 0.877072 0.862361 0.886344 0.910357 0.878730 0.911192 0.500000 0.500000 0.854044 0.500000 0.903159 0.500000 0.864332 0.500000 +0.641648 +0.295883 0.306739 0.364132 0.159929 0.128629 0.471262 0.693596 0.662765 1 0.500000 0 0.500000 1 0.500000 0.500000 0 0.898373 0.869898 0.500000 0.910880 0.500000 0.882016 0.500000 0.500000 0.888043 0.879699 0.876460 0.884838 0.500000 0.500000 0.500000 0.500000 +0.395144 +0.700208 0.604208 0.729107 0.698260 0.652938 0.527394 0.118131 0.835233 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.899956 0.882884 0.500000 0.871451 0.500000 0.875475 0.871520 0.500000 0.500000 0.500000 0.500000 0.500000 0.889306 0.500000 0.500000 0.873572 +0.325768 +0.710223 0.110561 0.798486 0.353856 0.251356 0.747564 0.502648 0.200532 0 1 1 1 0 0 1 0.500000 0.891081 0.911217 0.861188 0.500000 0.500000 0.867187 0.879447 0.915110 0.500000 0.500000 0.500000 0.500000 0.500000 0.895010 0.893004 0.863369 +0.499625 +0.647736 0.298303 0.185308 0.265303 0.748488 0.830358 0.834345 0.641646 0 0 0.500000 0.500000 0.500000 0 1 1 0.500000 0.867876 0.500000 0.888310 0.500000 0.914553 0.865200 0.881124 0.500000 0.500000 0.500000 0.871502 0.500000 0.891585 0.500000 0.500000 +0.360550 +0.440517 0.768090 0.692630 0.430186 0.742142 0.578189 0.228126 0.715215 1 0 0 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.895358 0.500000 0.894896 0.880585 0.500000 0.845491 0.886508 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.919056 +0.342568 +0.483567 0.304953 0.737871 0.806213 0.627520 0.524171 0.335795 0.708874 1 0 0.500000 1 0.500000 0.500000 0 1 0.500000 0.864843 0.500000 0.904748 0.904175 0.898641 0.863457 0.899908 0.877007 0.500000 0.500000 0.867843 0.500000 0.898177 0.500000 0.906886 +0.543724 +0.617778 0.786815 0.195753 0.613470 0.395998 0.544392 0.202874 0.301159 0 1 0 1 0.500000 0 1 1 0.872150 0.861504 0.500000 0.883551 0.878678 0.865913 0.880334 0.500000 0.888150 0.500000 0.500000 0.500000 0.500000 0.500000 0.867239 0.500000 +0.416279 +0.423861 0.835980 0.110199 0.315231 0.682809 0.164458 0.240703 0.889207 0 1 0.500000 0 1 0 0 0 0.878022 0.874596 0.886645 0.864424 0.868484 0.500000 0.897270 0.905060 0.500000 0.874546 0.870937 0.878160 0.905660 0.882564 0.903044 0.500000 +0.815134 +0.720917 0.652704 0.600216 0.834495 0.751820 0.835619 0.447549 0.556872 0 1 1 1 1 0.500000 0.500000 0.500000 0.893761 0.881068 0.874920 0.866776 0.886032 0.883775 0.905482 0.500000 0.500000 0.500000 0.905273 0.500000 0.500000 0.500000 0.500000 0.866145 +0.529185 +0.679314 0.622378 0.515288 0.637652 0.421840 0.459069 0.564712 0.119225 1 0 0.500000 0 0 1 1 0 0.898055 0.893971 0.886215 0.858441 0.500000 0.500000 0.869497 0.896081 0.885180 0.884902 0.500000 0.895120 0.890522 0.865428 0.500000 0.500000 +0.582831 +0.841836 0.136835 0.790421 0.802161 0.513244 0.698080 0.825711 0.321401 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0 0 0.898843 0.893490 0.879625 0.865800 0.869358 0.904967 0.893345 0.918507 0.888485 0.886136 0.864218 0.500000 0.500000 0.863036 0.868259 0.500000 +0.728971 +0.244570 0.287360 0.266137 0.367587 0.640129 0.450686 0.478476 0.351492 0.500000 0 0.500000 0 0 0 0 1 0.500000 0.500000 0.854082 0.500000 0.880622 0.897457 0.876222 0.500000 0.881611 0.868315 0.500000 0.500000 0.884208 0.500000 0.905873 0.877168 +0.326912 +0.346844 0.813377 0.231177 0.789648 0.612422 0.384752 0.320620 0.855752 0.500000 0 0 1 0 0.500000 0.500000 1 0.890757 0.894216 0.897872 0.848952 0.899777 0.862865 0.500000 0.884268 0.868489 0.868711 0.883317 0.500000 0.889729 0.500000 0.910588 0.500000 +0.708300 +0.124684 0.561822 0.344213 0.593790 0.826066 0.688757 0.142725 0.576849 0 1 0 0 1 0.500000 0 1 0.861786 0.500000 0.889945 0.901579 0.500000 0.500000 0.868651 0.892712 0.862892 0.879110 0.889083 0.862208 0.860140 0.500000 0.500000 0.866202 +0.581360 +0.411656 0.498151 0.623407 0.196349 0.239989 0.887144 0.834763 0.459884 1 0.500000 0 0 0 1 0.500000 0 0.856333 0.886799 0.866789 0.886352 0.500000 0.875758 0.838032 0.848341 0.500000 0.878601 0.500000 0.500000 0.850586 0.500000 0.885260 0.883299 +0.650860 +0.191709 0.656618 0.773593 0.382001 0.487614 0.334033 0.696216 0.699002 0 0.500000 0.500000 0.500000 1 1 1 0.500000 0.891156 0.913256 0.867245 0.500000 0.906792 0.500000 0.898762 0.500000 0.882787 0.500000 0.500000 0.500000 0.889214 0.904310 0.500000 0.901105 +0.492009 +0.149141 0.412121 0.317608 0.637375 0.567924 0.492115 0.784532 0.236338 0 0 1 0.500000 0 0 1 0.500000 0.864887 0.500000 0.500000 0.887526 0.500000 0.500000 0.874983 0.500000 0.896187 0.858636 0.888388 0.866689 0.901313 0.872300 0.500000 0.891463 +0.491761 +0.448898 0.831160 0.708511 0.138304 0.681489 0.382311 0.897603 0.618679 1 0 0 0 0.500000 0 1 0.500000 0.500000 0.884842 0.500000 0.859859 0.500000 0.918501 0.500000 0.500000 0.500000 0.874560 0.500000 0.500000 0.874892 0.927552 0.500000 0.500000 +0.229527 +0.343869 0.398670 0.650227 0.567400 0.499121 0.122021 0.607525 0.466956 0 1 0.500000 0 1 0.500000 0.500000 0 0.500000 0.885623 0.894091 0.865167 0.500000 0.890073 0.886020 0.500000 0.500000 0.879644 0.500000 0.903450 0.882497 0.871866 0.861251 0.500000 +0.531305 +0.266808 0.434184 0.735961 0.697632 0.498509 0.244132 0.133084 0.142605 0 1 0.500000 0 1 1 0 0 0.500000 0.500000 0.500000 0.869350 0.885882 0.887846 0.896807 0.500000 0.500000 0.897533 0.899975 0.500000 0.905489 0.500000 0.899572 0.500000 +0.353194 +0.263613 0.344502 0.650290 0.822357 0.761581 0.892547 0.443787 0.533276 0.500000 0.500000 0 0.500000 1 0 0 1 0.500000 0.886242 0.500000 0.881202 0.911259 0.879610 0.500000 0.500000 0.500000 0.500000 0.500000 0.854462 0.500000 0.500000 0.500000 0.500000 +0.242210 +0.894400 0.379689 0.830286 0.412774 0.897522 0.851412 0.289675 0.774356 0.500000 1 0 1 0.500000 0 0.500000 0.500000 0.868862 0.878635 0.919012 0.500000 0.868707 0.856752 0.882358 0.868228 0.891738 0.883374 0.887191 0.879311 0.500000 0.500000 0.500000 0.880146 +0.627105 +0.590801 0.188796 0.488803 0.318567 0.754556 0.417479 0.774262 0.414888 0.500000 0.500000 0.500000 0 1 0 0 1 0.867331 0.500000 0.871732 0.900625 0.893692 0.852093 0.895124 0.901755 0.892959 0.500000 0.899168 0.500000 0.878958 0.894793 0.915482 0.880400 +0.687038 +0.109168 0.584901 0.223788 0.612529 0.570698 0.717723 0.567856 0.152283 0.500000 0 0 1 0.500000 1 0 0 0.500000 0.871898 0.879225 0.873245 0.856778 0.876336 0.866243 0.881436 0.500000 0.500000 0.900564 0.500000 0.500000 0.500000 0.900865 0.500000 +0.599627 +0.864982 0.361033 0.873751 0.536374 0.641304 0.197217 0.420064 0.209878 0.500000 1 0 1 1 0.500000 1 0.500000 0.885993 0.850863 0.891609 0.884429 0.892314 0.500000 0.869331 0.894864 0.500000 0.887238 0.865610 0.500000 0.500000 0.500000 0.500000 0.886099 +0.589620 +0.359749 0.100252 0.329213 0.489957 0.504008 0.658289 0.859753 0.465108 0.500000 0 1 1 0 1 0 0.500000 0.869001 0.500000 0.863897 0.875451 0.900833 0.500000 0.867706 0.878202 0.862592 0.902954 0.861259 0.500000 0.903742 0.854358 0.500000 0.871070 +0.698322 +0.329934 0.605364 0.156960 0.631574 0.671573 0.135036 0.145166 0.810672 0 0.500000 1 1 0.500000 0.500000 0 0 0.899312 0.500000 0.892011 0.500000 0.500000 0.873485 0.891970 0.500000 0.500000 0.899166 0.872190 0.882171 0.869447 0.889366 0.889630 0.854949 +0.678121 +0.187187 0.655585 0.213786 0.499055 0.623800 0.404171 0.310208 0.274126 0 0 0.500000 0 0 0.500000 0.500000 0.500000 0.500000 0.856689 0.875056 0.865214 0.873297 0.500000 0.861966 0.886773 0.500000 0.500000 0.500000 0.882433 0.858146 0.500000 0.500000 0.875484 +0.494754 +0.837963 0.639920 0.127480 0.354543 0.596873 0.639705 0.514308 0.177427 0.500000 0.500000 0.500000 0.500000 1 0 0 0 0.868238 0.895252 0.500000 0.500000 0.912714 0.899152 0.881011 0.893063 0.500000 0.500000 0.500000 0.897918 0.856100 0.500000 0.885122 0.500000 +0.514930 +0.436696 0.554828 0.393042 0.463802 0.127945 0.176842 0.385366 0.247132 0 1 0 1 0 0.500000 0.500000 0.500000 0.500000 0.863051 0.500000 0.500000 0.500000 0.874187 0.849485 0.500000 0.872207 0.872315 0.500000 0.500000 0.500000 0.500000 0.500000 0.906256 +0.196844 +0.432783 0.386673 0.607549 0.867879 0.240899 0.190476 0.732805 0.455785 0.500000 1 1 0 0 1 0 1 0.500000 0.500000 0.850854 0.879643 0.500000 0.898406 0.865210 0.500000 0.873778 0.500000 0.500000 0.500000 0.500000 0.500000 0.871538 0.859318 +0.341837 +0.220077 0.630987 0.406429 0.647851 0.632055 0.752463 0.437280 0.756923 0 1 0.500000 0 0 0 1 0.500000 0.892781 0.922848 0.869739 0.500000 0.500000 0.874069 0.872697 0.891367 0.500000 0.928945 0.500000 0.500000 0.901986 0.500000 0.500000 0.500000 +0.505468 +0.531219 0.392715 0.559699 0.653221 0.483786 0.788267 0.609260 0.832272 0 0 1 0.500000 0 1 0 1 0.861155 0.886490 0.915143 0.899257 0.869440 0.895081 0.913835 0.911486 0.878567 0.500000 0.500000 0.500000 0.500000 0.889318 0.500000 0.891640 +0.738002 +0.896935 0.582467 0.127741 0.739300 0.821446 0.646128 0.468779 0.566363 1 1 1 1 0 0.500000 1 0 0.878346 0.870800 0.917520 0.500000 0.847401 0.872131 0.500000 0.874009 0.500000 0.500000 0.871937 0.881471 0.500000 0.903901 0.850323 0.899342 +0.655619 +0.585242 0.358921 0.577529 0.328381 0.899796 0.668362 0.568188 0.127651 1 0 1 0.500000 1 0 0 1 0.874313 0.500000 0.907768 0.500000 0.500000 0.904789 0.887447 0.500000 0.884775 0.869204 0.500000 0.500000 0.860433 0.500000 0.500000 0.500000 +0.357312 +0.851924 0.878540 0.215662 0.828717 0.450006 0.256285 0.379201 0.634737 0 1 0.500000 0 0 0.500000 0.500000 0.500000 0.885349 0.500000 0.882090 0.875414 0.894289 0.500000 0.500000 0.500000 0.500000 0.889233 0.873076 0.897768 0.882507 0.879229 0.500000 0.874982 +0.463676 +0.224665 0.144479 0.463133 0.884746 0.526382 0.696091 0.207534 0.216455 0.500000 0 0 0.500000 1 1 0 0.500000 0.864180 0.847988 0.895690 0.500000 0.883529 0.872831 0.906683 0.500000 0.500000 0.913038 0.500000 0.854088 0.889711 0.880039 0.908008 0.500000 +0.629066 +0.644646 0.360914 0.484251 0.599247 0.541497 0.332161 0.431031 0.533710 1 0.500000 0.500000 0.500000 1 1 0.500000 1 0.882535 0.878922 0.875097 0.885075 0.839440 0.899431 0.500000 0.877137 0.500000 0.500000 0.500000 0.500000 0.500000 0.874651 0.893125 0.500000 +0.660395 +0.530070 0.285237 0.582796 0.848925 0.882094 0.747558 0.401274 0.417870 0 1 1 0.500000 0.500000 0.500000 0.500000 0 0.825619 0.877408 0.918641 0.909330 0.897604 0.882845 0.910703 0.500000 0.500000 0.500000 0.888896 0.902639 0.500000 0.500000 0.500000 0.500000 +0.488864 +0.397237 0.557106 0.284725 0.770346 0.205341 0.161337 0.596384 0.422536 0 1 0.500000 1 1 0 0.500000 0 0.882816 0.877651 0.865267 0.886579 0.500000 0.500000 0.500000 0.902585 0.500000 0.500000 0.500000 0.919214 0.500000 0.864252 0.868882 0.500000 +0.378969 +0.511400 0.895934 0.562116 0.481456 0.839134 0.327878 0.440261 0.462698 1 0.500000 1 0.500000 0.500000 1 0 0 0.500000 0.500000 0.865035 0.864377 0.859498 0.500000 0.500000 0.500000 0.500000 0.877199 0.882642 0.500000 0.500000 0.916031 0.500000 0.893209 +0.359084 +0.509699 0.303665 0.698555 0.818869 0.537655 0.566812 0.214661 0.799575 0 0.500000 1 0.500000 1 0 0 0.500000 0.863508 0.856488 0.889371 0.878911 0.873383 0.500000 0.867107 0.884669 0.500000 0.878244 0.500000 0.500000 0.500000 0.902486 0.848451 0.500000 +0.606564 +0.605005 0.526323 0.515385 0.670377 0.824742 0.832416 0.221394 0.367867 0.500000 1 0 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.879705 0.856703 0.500000 0.900463 0.854159 0.901966 0.500000 0.500000 0.500000 0.894624 0.869729 0.866596 +0.375249 +0.805854 0.191648 0.435508 0.585759 0.253372 0.221442 0.379461 0.203592 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.500000 1 0.878733 0.888340 0.500000 0.500000 0.859697 0.879631 0.500000 0.892703 0.500000 0.875787 0.875488 0.500000 0.926493 0.500000 0.500000 0.875859 +0.452695 +0.500011 0.681487 0.356077 0.782937 0.629639 0.146022 0.788364 0.627014 1 1 1 0.500000 0.500000 1 0 0 0.880066 0.908019 0.858128 0.891152 0.889097 0.890689 0.864207 0.869955 0.877055 0.500000 0.500000 0.500000 0.890957 0.500000 0.872382 0.873942 +0.756005 +0.323896 0.711812 0.421346 0.156856 0.479050 0.393441 0.759900 0.639185 0.500000 0 0.500000 1 1 0.500000 0.500000 1 0.500000 0.876160 0.885542 0.500000 0.905553 0.500000 0.872701 0.500000 0.860884 0.885476 0.875614 0.500000 0.870039 0.892165 0.500000 0.500000 +0.442836 +0.361282 0.266243 0.551029 0.545140 0.769086 0.635938 0.418484 0.863516 0.500000 1 0.500000 1 1 0.500000 0 1 0.887716 0.874808 0.870360 0.896636 0.852419 0.899895 0.888885 0.874312 0.869467 0.500000 0.890578 0.500000 0.873819 0.900822 0.870459 0.500000 +0.858634 +0.878129 0.506587 0.805956 0.302962 0.888264 0.445510 0.691218 0.705575 0.500000 0.500000 0 0 0.500000 0 0.500000 1 0.864597 0.500000 0.891180 0.896861 0.500000 0.500000 0.500000 0.893620 0.500000 0.500000 0.890304 0.500000 0.905179 0.887236 0.500000 0.904830 +0.327212 +0.227525 0.211046 0.857859 0.630193 0.648845 0.538085 0.599968 0.659383 1 0.500000 1 0 1 1 1 1 0.869524 0.881523 0.885885 0.895048 0.500000 0.855444 0.500000 0.857930 0.886042 0.877964 0.874295 0.500000 0.893876 0.883265 0.500000 0.500000 +0.595004 +0.298272 0.450573 0.172236 0.565970 0.451825 0.419403 0.299032 0.438528 0 0.500000 0 0 1 0.500000 0 0 0.904896 0.899549 0.500000 0.500000 0.885195 0.849620 0.500000 0.856010 0.500000 0.500000 0.874683 0.885898 0.500000 0.878113 0.879407 0.500000 +0.480557 +0.442706 0.753240 0.711567 0.314449 0.344683 0.479502 0.786334 0.112747 1 0 0 0.500000 0.500000 0 0 1 0.883953 0.909472 0.872681 0.865041 0.863294 0.884780 0.907567 0.889577 0.500000 0.500000 0.500000 0.884186 0.500000 0.500000 0.905921 0.500000 +0.696462 +0.514468 0.467995 0.184453 0.295557 0.424887 0.477646 0.803925 0.565586 0.500000 1 0 0.500000 1 0 0 1 0.889071 0.870280 0.500000 0.916582 0.500000 0.500000 0.500000 0.500000 0.500000 0.929495 0.500000 0.852027 0.867787 0.887441 0.890365 0.863529 +0.468687 +0.552387 0.165844 0.332936 0.646946 0.629796 0.386031 0.230751 0.827750 0 1 1 1 1 0 0 1 0.500000 0.901181 0.500000 0.500000 0.500000 0.500000 0.884636 0.500000 0.878945 0.923586 0.500000 0.500000 0.500000 0.500000 0.908563 0.868590 +0.286061 +0.621730 0.811477 0.297067 0.206241 0.890711 0.777701 0.627821 0.783092 1 0.500000 1 0.500000 1 0.500000 0 0 0.876051 0.876867 0.500000 0.500000 0.500000 0.500000 0.902413 0.879297 0.888320 0.887490 0.862020 0.500000 0.864828 0.898908 0.500000 0.885696 +0.598802 +0.594191 0.370624 0.481981 0.861412 0.352177 0.841947 0.407369 0.447938 1 0.500000 0.500000 0 0 0.500000 1 0.500000 0.894789 0.917616 0.852156 0.885857 0.500000 0.847336 0.500000 0.870278 0.877106 0.500000 0.500000 0.894133 0.500000 0.500000 0.899139 0.500000 +0.463463 +0.579913 0.406197 0.760349 0.192389 0.885790 0.477591 0.667184 0.755108 1 1 0 0 0.500000 0 1 0.500000 0.901193 0.882622 0.894692 0.878894 0.896334 0.500000 0.879299 0.500000 0.500000 0.500000 0.879902 0.933470 0.500000 0.500000 0.500000 0.500000 +0.513972 +0.611855 0.440720 0.176267 0.326769 0.200022 0.366231 0.245027 0.773249 0 0.500000 0.500000 1 1 0.500000 1 0 0.866418 0.500000 0.875513 0.858335 0.852416 0.892673 0.911642 0.500000 0.500000 0.856685 0.888049 0.869307 0.880172 0.890972 0.500000 0.867360 +0.578057 +0.612179 0.298654 0.483272 0.152908 0.528262 0.303616 0.676887 0.634798 0.500000 0 1 1 0.500000 0 0 1 0.500000 0.892761 0.500000 0.853386 0.840819 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.884906 0.500000 0.877905 0.875112 0.500000 +0.214505 +0.490148 0.512919 0.835111 0.713601 0.889918 0.256470 0.284773 0.786605 1 0.500000 1 0 1 0 1 0.500000 0.884257 0.883501 0.872764 0.878468 0.919874 0.500000 0.886804 0.910287 0.894228 0.500000 0.500000 0.868621 0.865812 0.500000 0.500000 0.500000 +0.648183 +0.743002 0.633293 0.755459 0.401813 0.666543 0.382987 0.260796 0.206508 0.500000 0 0.500000 0.500000 0 0.500000 0 0 0.867776 0.884051 0.889390 0.500000 0.500000 0.886502 0.904423 0.915332 0.912634 0.500000 0.500000 0.889760 0.500000 0.882250 0.500000 0.500000 +0.552282 +0.344482 0.303538 0.161731 0.814418 0.123262 0.671673 0.215151 0.235683 0.500000 0.500000 0.500000 1 1 0.500000 0 0.500000 0.883164 0.876004 0.500000 0.500000 0.500000 0.927874 0.500000 0.880687 0.863850 0.865374 0.838429 0.844930 0.880438 0.500000 0.500000 0.924326 +0.578914 +0.727695 0.175671 0.695304 0.576994 0.133297 0.521134 0.501162 0.828604 0 0.500000 1 0 0.500000 0 1 1 0.861557 0.500000 0.922441 0.862771 0.879424 0.906393 0.915278 0.885552 0.500000 0.863361 0.922332 0.880622 0.888016 0.900772 0.887100 0.872863 +0.910483 +0.270571 0.490664 0.383103 0.606651 0.183698 0.411385 0.752564 0.549902 1 1 0 0.500000 1 0.500000 1 0.500000 0.860671 0.500000 0.900603 0.874372 0.890942 0.894839 0.850699 0.890089 0.500000 0.500000 0.500000 0.500000 0.868452 0.876642 0.500000 0.879696 +0.629661 +0.334074 0.588931 0.761246 0.862426 0.600213 0.785564 0.777568 0.791145 0 1 0 0 1 0 0 0.500000 0.500000 0.884449 0.870661 0.907172 0.892374 0.869753 0.500000 0.500000 0.500000 0.857448 0.500000 0.858885 0.882024 0.500000 0.500000 0.886949 +0.332769 +0.504941 0.346716 0.248353 0.669767 0.178158 0.109128 0.718332 0.402987 0.500000 1 0 1 0.500000 0 1 1 0.850770 0.500000 0.881081 0.890336 0.895172 0.500000 0.882514 0.875522 0.864739 0.500000 0.881962 0.500000 0.887325 0.500000 0.873238 0.859408 +0.635210 +0.746542 0.123078 0.780232 0.767913 0.115479 0.255577 0.477579 0.468006 0.500000 1 0 1 1 1 0 1 0.500000 0.894344 0.500000 0.500000 0.856368 0.900006 0.870898 0.891443 0.500000 0.500000 0.892878 0.891854 0.875331 0.858738 0.500000 0.900762 +0.574109 +0.785852 0.817426 0.285483 0.720591 0.772286 0.811454 0.705385 0.413480 1 0.500000 1 0 1 0 0.500000 1 0.874990 0.500000 0.883606 0.913739 0.902748 0.873110 0.500000 0.898376 0.890291 0.864838 0.500000 0.500000 0.500000 0.500000 0.500000 0.890522 +0.421414 +0.273675 0.653202 0.163249 0.726616 0.437684 0.357469 0.173751 0.437358 0.500000 1 1 0 1 0 0.500000 1 0.889825 0.900235 0.913057 0.876034 0.889214 0.872171 0.885468 0.500000 0.889351 0.500000 0.878403 0.500000 0.500000 0.500000 0.500000 0.884251 +0.679306 +0.601277 0.258531 0.530207 0.184725 0.868636 0.164334 0.561574 0.181330 0.500000 0 1 0 1 1 0.500000 1 0.849547 0.876845 0.894597 0.500000 0.865386 0.876069 0.896804 0.871707 0.500000 0.500000 0.850455 0.500000 0.888176 0.918736 0.500000 0.898809 +0.595567 +0.673274 0.715797 0.195563 0.631193 0.668577 0.166577 0.656193 0.827861 0.500000 1 0 0 0.500000 1 0 1 0.500000 0.900530 0.885758 0.883377 0.858737 0.500000 0.896721 0.885612 0.500000 0.914098 0.867243 0.874464 0.866798 0.907536 0.911283 0.500000 +0.646896 +0.395261 0.149083 0.232466 0.859130 0.399017 0.879770 0.899046 0.874927 0 0.500000 0.500000 0 1 1 0.500000 0.500000 0.873071 0.901430 0.862665 0.878528 0.847985 0.879463 0.917142 0.862119 0.865728 0.842588 0.500000 0.500000 0.500000 0.500000 0.880472 0.895281 +0.773253 +0.522620 0.667086 0.710643 0.784359 0.523382 0.677237 0.120434 0.339854 0 0 1 0 1 0 1 0.500000 0.897828 0.884298 0.500000 0.906865 0.859949 0.906995 0.912862 0.875081 0.894202 0.875933 0.500000 0.500000 0.500000 0.865279 0.500000 0.886624 +0.664540 +0.449918 0.364573 0.371551 0.855843 0.347254 0.503888 0.246305 0.640868 1 0.500000 1 1 0 1 1 0.500000 0.869092 0.500000 0.500000 0.858661 0.500000 0.500000 0.855040 0.886273 0.500000 0.500000 0.876348 0.500000 0.500000 0.500000 0.913575 0.500000 +0.337814 +0.645340 0.833092 0.383955 0.527442 0.112126 0.701686 0.634680 0.860339 1 0.500000 0.500000 0 0 1 0 0 0.878300 0.500000 0.926884 0.500000 0.870290 0.500000 0.888605 0.500000 0.500000 0.899429 0.500000 0.883927 0.500000 0.891997 0.901063 0.890502 +0.440292 +0.741381 0.587498 0.673892 0.696793 0.801440 0.402301 0.874282 0.649701 0.500000 0.500000 0 0 1 1 0 0.500000 0.877569 0.886983 0.880154 0.891107 0.858184 0.500000 0.500000 0.885040 0.897397 0.839572 0.886405 0.500000 0.500000 0.500000 0.895808 0.500000 +0.508140 +0.266164 0.822700 0.120355 0.606898 0.334028 0.605668 0.459409 0.681781 0.500000 1 0 0.500000 0 0 0 0 0.890873 0.500000 0.500000 0.874518 0.909610 0.887769 0.891918 0.897021 0.892085 0.500000 0.877585 0.500000 0.875487 0.500000 0.500000 0.883126 +0.466321 +0.611538 0.724762 0.469970 0.585658 0.152095 0.452746 0.707975 0.738675 1 0.500000 0.500000 1 0 1 0.500000 1 0.500000 0.870747 0.889967 0.898411 0.860165 0.851303 0.885469 0.893682 0.878525 0.500000 0.880441 0.500000 0.500000 0.500000 0.500000 0.500000 +0.598583 +0.714461 0.139049 0.394163 0.893389 0.197044 0.711196 0.476163 0.667898 1 0.500000 0.500000 0 1 1 1 0.500000 0.500000 0.864364 0.882700 0.915882 0.863508 0.875257 0.900488 0.890821 0.500000 0.500000 0.897129 0.500000 0.500000 0.500000 0.862255 0.915634 +0.665093 +0.583837 0.740885 0.259515 0.260601 0.113804 0.898341 0.220895 0.780616 1 1 0.500000 0 1 1 0.500000 0.500000 0.866123 0.912963 0.865023 0.865630 0.886047 0.869763 0.500000 0.873203 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.887764 0.887063 +0.620070 +0.884263 0.412666 0.671749 0.684813 0.253208 0.670060 0.301734 0.236879 0.500000 1 1 0 0 1 1 0 0.876783 0.889839 0.866333 0.895193 0.878220 0.893701 0.882011 0.856832 0.896741 0.500000 0.891139 0.882757 0.861105 0.500000 0.500000 0.500000 +0.726560 +0.229948 0.133455 0.781104 0.217524 0.125153 0.450126 0.669797 0.674263 0.500000 1 1 1 0 1 0 0 0.894119 0.500000 0.500000 0.882076 0.869579 0.860333 0.876225 0.883164 0.500000 0.500000 0.500000 0.887995 0.500000 0.885381 0.500000 0.899503 +0.586609 +0.342879 0.570948 0.117215 0.629908 0.669519 0.809615 0.200105 0.166782 0 1 0 1 1 0 0.500000 0 0.500000 0.500000 0.859204 0.872932 0.864379 0.920841 0.890940 0.868394 0.500000 0.879396 0.500000 0.863369 0.500000 0.500000 0.500000 0.873167 +0.556211 +0.155094 0.468652 0.831636 0.703191 0.325504 0.549501 0.460511 0.814116 1 0 0 0.500000 0.500000 0 0.500000 0.500000 0.894851 0.884478 0.880587 0.859458 0.911356 0.877071 0.901600 0.898844 0.875473 0.886621 0.889226 0.875693 0.500000 0.500000 0.500000 0.500000 +0.733394 +0.136116 0.704077 0.827938 0.155883 0.129389 0.440196 0.172779 0.898391 0 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.850121 0.907595 0.888541 0.894081 0.863838 0.912723 0.885793 0.889662 0.879091 0.500000 0.500000 0.500000 0.900045 0.910348 0.500000 0.500000 +0.749947 +0.474079 0.852114 0.886412 0.524266 0.338178 0.766079 0.491555 0.170493 1 0.500000 0.500000 0 0.500000 0 1 0.500000 0.858461 0.891081 0.892236 0.880666 0.876965 0.869868 0.500000 0.500000 0.500000 0.895090 0.500000 0.893015 0.500000 0.500000 0.896475 0.500000 +0.501318 +0.201517 0.697667 0.288210 0.153393 0.682901 0.112745 0.708716 0.387855 0.500000 0 0 1 0.500000 0.500000 0.500000 0.500000 0.910290 0.886396 0.500000 0.878293 0.858673 0.893953 0.882924 0.887378 0.890602 0.885065 0.862937 0.848710 0.500000 0.884172 0.500000 0.500000 +0.766611 +0.312278 0.649590 0.261453 0.844280 0.417936 0.448342 0.288134 0.475479 0.500000 1 0.500000 0.500000 0 0 0 0.500000 0.864674 0.500000 0.901035 0.500000 0.500000 0.846706 0.500000 0.866074 0.500000 0.915765 0.928630 0.852144 0.500000 0.500000 0.500000 0.874117 +0.362315 +0.287924 0.132845 0.118593 0.588529 0.414139 0.640498 0.256433 0.473753 0 0 1 0 0 1 0.500000 0.500000 0.873501 0.888080 0.887511 0.876691 0.500000 0.500000 0.887794 0.500000 0.500000 0.500000 0.883467 0.888015 0.500000 0.500000 0.896583 0.876015 +0.502589 +0.725874 0.765570 0.727823 0.723333 0.453285 0.153636 0.767138 0.696714 0 0 0 0.500000 0.500000 1 1 0 0.886056 0.500000 0.901070 0.897085 0.500000 0.908226 0.876798 0.500000 0.500000 0.889371 0.880713 0.500000 0.500000 0.500000 0.500000 0.888452 +0.409637 +0.177072 0.243040 0.169980 0.251831 0.728181 0.342750 0.796901 0.119043 0 0 0.500000 1 1 0 0 1 0.867683 0.857835 0.885695 0.500000 0.859219 0.886305 0.861626 0.871128 0.894336 0.500000 0.500000 0.500000 0.897166 0.500000 0.500000 0.500000 +0.546434 +0.315664 0.771513 0.611786 0.881747 0.523988 0.459268 0.720046 0.410219 0 0.500000 0.500000 1 0.500000 1 0 0 0.500000 0.500000 0.848539 0.904956 0.882581 0.926239 0.909813 0.869526 0.893772 0.500000 0.500000 0.879959 0.500000 0.500000 0.859736 0.854968 +0.542787 +0.236171 0.728159 0.776044 0.767530 0.880551 0.412942 0.518891 0.392657 0.500000 0 0.500000 0 0.500000 0 0.500000 0.500000 0.897676 0.861413 0.500000 0.850764 0.881452 0.500000 0.847732 0.876215 0.500000 0.902393 0.875894 0.872902 0.500000 0.500000 0.902046 0.878199 +0.484663 +0.800793 0.721826 0.726765 0.546931 0.466491 0.520764 0.674215 0.523767 1 1 0.500000 0 0 1 0.500000 1 0.500000 0.902017 0.881542 0.500000 0.887320 0.500000 0.880454 0.865105 0.884781 0.875922 0.864207 0.937584 0.500000 0.500000 0.870108 0.500000 +0.547494 +0.449588 0.422044 0.698902 0.242897 0.161468 0.391987 0.328392 0.283471 0.500000 0 1 0 0.500000 1 0.500000 0.500000 0.500000 0.854483 0.909279 0.886492 0.500000 0.913549 0.898149 0.920024 0.500000 0.873318 0.879754 0.878538 0.898762 0.885052 0.885348 0.500000 +0.681867 +0.787947 0.824687 0.707878 0.704635 0.604429 0.444497 0.464119 0.651849 0.500000 1 0 0 0 0 0.500000 0 0.879707 0.500000 0.500000 0.874110 0.868542 0.864393 0.500000 0.869263 0.500000 0.500000 0.500000 0.500000 0.895523 0.500000 0.500000 0.500000 +0.292225 +0.342344 0.370473 0.335325 0.801762 0.211725 0.257460 0.131811 0.354878 1 0 0.500000 0 0 0.500000 0.500000 0.500000 0.905888 0.882907 0.875588 0.884650 0.891538 0.500000 0.887520 0.902724 0.884532 0.890006 0.886004 0.500000 0.500000 0.500000 0.857297 0.907233 +0.776146 +0.382129 0.244280 0.213085 0.721221 0.163956 0.604127 0.162798 0.346896 1 1 0.500000 0 0 0.500000 0 1 0.863377 0.883172 0.886182 0.500000 0.500000 0.862422 0.850526 0.500000 0.864080 0.500000 0.881378 0.500000 0.890777 0.898294 0.868710 0.915391 +0.632698 +0.367775 0.589254 0.584037 0.112147 0.256214 0.791252 0.376951 0.408674 1 1 1 0 0 0 0.500000 1 0.859967 0.893856 0.868490 0.872220 0.899791 0.909887 0.881897 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.882695 0.500000 0.500000 +0.597947 +0.887530 0.113594 0.576895 0.866656 0.486073 0.836590 0.765711 0.696828 0.500000 0 0 0.500000 0 0.500000 0.500000 1 0.873399 0.852693 0.865462 0.898553 0.500000 0.848727 0.500000 0.890549 0.867072 0.882191 0.843418 0.860829 0.900333 0.920853 0.500000 0.500000 +0.553015 +0.432383 0.865368 0.439400 0.403725 0.806843 0.808345 0.458085 0.826473 0 0 0 0.500000 0 0 1 0.500000 0.855527 0.500000 0.883774 0.892035 0.857344 0.500000 0.853289 0.871637 0.500000 0.876627 0.905105 0.893820 0.500000 0.880532 0.879621 0.500000 +0.525629 +0.362957 0.411138 0.598929 0.794058 0.328265 0.543072 0.411492 0.143469 0 1 1 0.500000 1 0 1 0.500000 0.500000 0.891056 0.873571 0.890433 0.865957 0.855159 0.862951 0.500000 0.500000 0.500000 0.883958 0.892103 0.500000 0.500000 0.903247 0.500000 +0.501217 +0.395733 0.892860 0.897892 0.670127 0.616760 0.478171 0.823504 0.835656 0 0 0 0 0.500000 1 1 0 0.879875 0.857151 0.900425 0.500000 0.500000 0.875919 0.897299 0.875263 0.851833 0.877809 0.500000 0.895624 0.500000 0.500000 0.902257 0.500000 +0.376148 +0.261334 0.442596 0.502780 0.822169 0.796553 0.674411 0.620102 0.651486 0 0 1 1 1 0.500000 0 0 0.909266 0.500000 0.893510 0.500000 0.877745 0.868230 0.874893 0.873582 0.500000 0.871858 0.500000 0.901157 0.874539 0.500000 0.500000 0.877172 +0.492955 +0.115294 0.349435 0.349760 0.218764 0.172817 0.727124 0.170111 0.853477 0.500000 0.500000 0 1 0.500000 1 1 1 0.500000 0.878619 0.500000 0.854048 0.908825 0.863152 0.865281 0.890011 0.500000 0.871647 0.886710 0.894261 0.868213 0.500000 0.500000 0.500000 +0.596171 +0.421550 0.389245 0.638490 0.103901 0.864037 0.474749 0.104636 0.424686 0 0 0 1 0 0.500000 1 0.500000 0.500000 0.500000 0.859065 0.500000 0.889998 0.865797 0.886178 0.880912 0.859238 0.905938 0.884356 0.886628 0.841824 0.874895 0.899388 0.500000 +0.602019 +0.700172 0.792330 0.894369 0.665202 0.251784 0.732346 0.738610 0.411866 1 0 1 1 0.500000 1 0 1 0.894769 0.841941 0.916738 0.890432 0.902593 0.500000 0.500000 0.500000 0.500000 0.500000 0.858668 0.880321 0.500000 0.500000 0.500000 0.885736 +0.423620 +0.729957 0.595553 0.852311 0.188276 0.549091 0.765317 0.486776 0.648240 1 0.500000 1 0.500000 1 1 0.500000 0 0.882840 0.878609 0.500000 0.880620 0.864127 0.880895 0.885654 0.500000 0.840888 0.500000 0.500000 0.500000 0.870250 0.884542 0.500000 0.500000 +0.480636 +0.358037 0.123205 0.511090 0.487955 0.456374 0.875855 0.695347 0.497414 0 1 0 1 0 0.500000 0 1 0.878809 0.917289 0.933487 0.500000 0.871174 0.899701 0.860152 0.500000 0.875275 0.500000 0.500000 0.500000 0.893808 0.880733 0.500000 0.500000 +0.517387 +0.619942 0.361807 0.287519 0.538492 0.229345 0.406540 0.123212 0.622080 0 0 0.500000 0 1 0 1 0 0.500000 0.875758 0.500000 0.910534 0.865746 0.894985 0.893718 0.864811 0.901041 0.500000 0.500000 0.500000 0.890283 0.500000 0.500000 0.500000 +0.476754 +0.658203 0.218893 0.737390 0.711957 0.458734 0.538523 0.760236 0.688246 0 0.500000 0.500000 0 0.500000 0.500000 1 0.500000 0.885270 0.869804 0.500000 0.872535 0.500000 0.877774 0.871092 0.907853 0.500000 0.889512 0.500000 0.500000 0.500000 0.904773 0.886444 0.884799 +0.527546 +0.646407 0.365928 0.748057 0.799494 0.503887 0.226175 0.725677 0.645442 0 0 1 1 0.500000 1 0.500000 0.500000 0.500000 0.877006 0.908121 0.851448 0.500000 0.891338 0.862313 0.870421 0.886178 0.876747 0.500000 0.891823 0.851626 0.500000 0.500000 0.500000 +0.552600 +0.367382 0.395575 0.628908 0.655103 0.121589 0.551015 0.313473 0.745327 0.500000 1 0 1 0 1 0 0 0.875761 0.906088 0.500000 0.500000 0.866523 0.500000 0.500000 0.904180 0.919844 0.871461 0.500000 0.500000 0.872898 0.892387 0.905686 0.500000 +0.504433 +0.354533 0.435925 0.391399 0.841978 0.129194 0.356270 0.832565 0.318651 0.500000 1 1 1 1 0.500000 0 1 0.890166 0.500000 0.869534 0.500000 0.899678 0.500000 0.500000 0.500000 0.882416 0.500000 0.500000 0.890136 0.500000 0.867683 0.861609 0.887578 +0.428926 +0.208674 0.190177 0.506636 0.825477 0.393065 0.837245 0.585044 0.240396 0.500000 0 1 1 0 0 1 0.500000 0.500000 0.870654 0.500000 0.881457 0.500000 0.857354 0.877993 0.878827 0.500000 0.500000 0.500000 0.500000 0.500000 0.863224 0.871798 0.864087 +0.398769 +0.669343 0.255768 0.492413 0.192626 0.866970 0.171966 0.827320 0.173415 0.500000 0 0 0 1 0 0 1 0.500000 0.899655 0.500000 0.893500 0.909516 0.500000 0.500000 0.867693 0.500000 0.898453 0.884618 0.886173 0.875623 0.500000 0.500000 0.500000 +0.373159 +0.365150 0.481364 0.886239 0.810415 0.841199 0.637362 0.343639 0.534798 0.500000 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.876867 0.877491 0.857518 0.500000 0.851803 0.890534 0.889316 0.500000 0.880182 0.500000 0.500000 0.861046 0.882564 0.500000 0.500000 +0.417961 +0.484529 0.474833 0.710277 0.232357 0.624404 0.153188 0.430814 0.899000 1 0 0.500000 1 0 0 1 1 0.891763 0.866261 0.859253 0.500000 0.894386 0.914023 0.500000 0.500000 0.500000 0.892206 0.858363 0.500000 0.907646 0.500000 0.500000 0.873403 +0.447382 +0.590057 0.496414 0.228902 0.152606 0.250101 0.441474 0.847886 0.212479 0 1 1 1 0 1 0.500000 1 0.885799 0.894895 0.500000 0.885684 0.500000 0.884698 0.887073 0.858513 0.862431 0.500000 0.500000 0.500000 0.500000 0.883222 0.500000 0.867225 +0.509412 +0.660447 0.327824 0.340228 0.817062 0.554406 0.501043 0.434627 0.168827 1 0 0 0 1 0 0.500000 1 0.904991 0.883641 0.880255 0.855836 0.910418 0.500000 0.906966 0.885308 0.867554 0.500000 0.875387 0.916493 0.858879 0.874705 0.500000 0.871336 +0.770495 +0.170307 0.144697 0.114642 0.586563 0.172411 0.303162 0.247103 0.465433 0 0 1 1 1 0.500000 0 0 0.871940 0.500000 0.500000 0.895268 0.500000 0.879950 0.889480 0.500000 0.500000 0.500000 0.873115 0.869538 0.500000 0.840982 0.893157 0.885301 +0.365662 +0.195835 0.397235 0.529244 0.810199 0.415399 0.210871 0.309972 0.301680 0 0 1 0 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.873877 0.867799 0.909146 0.889940 0.872850 0.893774 0.500000 0.863536 0.881165 0.500000 0.500000 0.500000 0.861839 0.879146 +0.576595 +0.333763 0.152802 0.340388 0.295602 0.383632 0.697901 0.224217 0.611655 0 0 0 1 1 0 0.500000 1 0.500000 0.906940 0.892790 0.909141 0.872547 0.500000 0.870779 0.500000 0.909586 0.871827 0.885229 0.880552 0.873120 0.886260 0.500000 0.500000 +0.662516 +0.552673 0.166689 0.137708 0.259203 0.626801 0.438591 0.399661 0.498593 1 0.500000 1 0 1 1 0 1 0.891074 0.901121 0.876204 0.500000 0.500000 0.870485 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.884755 0.500000 0.500000 +0.306142 +0.265325 0.320534 0.221116 0.497910 0.568158 0.428347 0.231083 0.803988 1 1 0.500000 0.500000 1 1 0.500000 1 0.875563 0.500000 0.500000 0.500000 0.887833 0.908541 0.924773 0.500000 0.863124 0.500000 0.893770 0.500000 0.910048 0.874936 0.500000 0.500000 +0.479474 +0.303880 0.312910 0.884499 0.374098 0.469977 0.701601 0.805503 0.692231 0 0.500000 0.500000 1 0.500000 0 1 0.500000 0.895584 0.871396 0.500000 0.873662 0.877699 0.892742 0.500000 0.863035 0.912288 0.880327 0.894284 0.895867 0.890308 0.895923 0.500000 0.500000 +0.716445 +0.121021 0.598800 0.233210 0.555419 0.722582 0.643908 0.761647 0.408337 1 1 0.500000 1 1 0.500000 0.500000 0.500000 0.912739 0.873042 0.942780 0.500000 0.859119 0.910956 0.500000 0.883735 0.884967 0.880694 0.500000 0.500000 0.881192 0.500000 0.500000 0.898543 +0.627534 +0.441239 0.101999 0.100914 0.254454 0.802874 0.509866 0.723099 0.523658 0.500000 0 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.883936 0.867142 0.500000 0.879239 0.500000 0.500000 0.500000 0.898608 0.884427 0.856728 0.500000 0.893529 +0.344716 +0.652291 0.851903 0.533879 0.301932 0.379296 0.632037 0.439577 0.166970 1 0 1 0.500000 0 0 1 0.500000 0.885218 0.874944 0.867920 0.876620 0.898839 0.898411 0.884898 0.883481 0.500000 0.893664 0.897373 0.500000 0.500000 0.872967 0.894541 0.882962 +0.798740 +0.249133 0.178034 0.420145 0.778072 0.452808 0.150867 0.622481 0.635041 0.500000 1 0 0.500000 0 1 1 1 0.500000 0.871451 0.906441 0.907518 0.500000 0.500000 0.500000 0.875112 0.500000 0.500000 0.897349 0.889563 0.500000 0.890726 0.500000 0.835588 +0.409381 +0.525026 0.309429 0.780448 0.386357 0.896449 0.420240 0.779572 0.872551 0 1 0 0 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.895609 0.879891 0.500000 0.874894 0.500000 0.500000 0.500000 0.875719 0.500000 0.863406 0.500000 0.500000 +0.117395 +0.591993 0.226142 0.164138 0.461758 0.166791 0.252109 0.590462 0.897291 0 0.500000 0.500000 0.500000 0 0.500000 0 0.500000 0.840460 0.888520 0.890848 0.500000 0.500000 0.882478 0.500000 0.500000 0.500000 0.500000 0.868190 0.896682 0.859249 0.500000 0.890860 0.887514 +0.405062 +0.532050 0.770748 0.564387 0.257315 0.891643 0.450989 0.769724 0.144816 0.500000 0 0.500000 0 1 0 0 0 0.500000 0.897171 0.867541 0.900029 0.500000 0.500000 0.500000 0.885496 0.886404 0.891038 0.500000 0.872106 0.881449 0.500000 0.838532 0.891633 +0.536975 +0.217767 0.209472 0.802088 0.899112 0.367469 0.251900 0.275295 0.688973 0.500000 1 1 0.500000 1 0.500000 1 0 0.870091 0.882808 0.895187 0.872080 0.500000 0.500000 0.885153 0.500000 0.500000 0.900549 0.873298 0.867791 0.853178 0.500000 0.500000 0.500000 +0.531302 +0.764927 0.331923 0.425770 0.123868 0.453298 0.374797 0.214571 0.894151 0 1 0.500000 0 1 0.500000 0 1 0.500000 0.500000 0.895246 0.500000 0.891236 0.904487 0.876927 0.887453 0.500000 0.902317 0.904540 0.875884 0.895104 0.500000 0.895475 0.500000 +0.535916 +0.276995 0.457287 0.223916 0.358156 0.528853 0.636982 0.352663 0.208382 1 0 0.500000 0 0 0 1 0.500000 0.900554 0.894325 0.891963 0.872284 0.894906 0.921771 0.879508 0.862823 0.863472 0.869723 0.500000 0.875941 0.500000 0.500000 0.894467 0.860997 +0.756507 +0.307892 0.548157 0.281630 0.757460 0.438164 0.424101 0.866760 0.638460 0.500000 0.500000 0 0 0.500000 0 0.500000 1 0.902328 0.896074 0.881106 0.500000 0.871345 0.908169 0.895080 0.874721 0.881262 0.500000 0.880880 0.908477 0.500000 0.886589 0.861582 0.500000 +0.723719 +0.173021 0.163526 0.582129 0.838346 0.681134 0.821266 0.815426 0.260008 0.500000 1 0 1 1 1 0 1 0.871282 0.912186 0.881235 0.500000 0.875467 0.866820 0.890856 0.857395 0.500000 0.500000 0.927016 0.500000 0.873672 0.861602 0.500000 0.500000 +0.639290 +0.338229 0.810288 0.304457 0.400904 0.587541 0.609620 0.490720 0.537600 0.500000 0.500000 0 0.500000 1 1 0 0.500000 0.888656 0.905052 0.500000 0.892180 0.856206 0.887159 0.903378 0.889961 0.871809 0.500000 0.886187 0.500000 0.500000 0.500000 0.500000 0.869356 +0.558021 +0.248044 0.279613 0.462883 0.670209 0.396085 0.403184 0.509972 0.101826 0.500000 1 0 1 0 0.500000 1 0 0.500000 0.500000 0.500000 0.902294 0.883840 0.864667 0.884970 0.880010 0.500000 0.860343 0.870762 0.880287 0.860397 0.500000 0.500000 0.500000 +0.476303 +0.115196 0.291390 0.795806 0.111078 0.691228 0.869916 0.878234 0.682171 1 0.500000 0.500000 1 0.500000 0 0.500000 0 0.887475 0.883140 0.885166 0.920922 0.876896 0.500000 0.863096 0.889754 0.500000 0.500000 0.855913 0.500000 0.500000 0.875228 0.881025 0.883705 +0.657585 +0.243697 0.818835 0.755937 0.426095 0.782272 0.652570 0.737256 0.861819 1 0 0 1 1 0.500000 0.500000 1 0.876238 0.912070 0.867844 0.868316 0.500000 0.500000 0.866034 0.871674 0.888829 0.863580 0.892061 0.900249 0.500000 0.892074 0.500000 0.500000 +0.556476 +0.694840 0.771086 0.637547 0.253493 0.664143 0.857857 0.606138 0.354299 0.500000 0.500000 1 1 1 1 0.500000 1 0.875708 0.916768 0.500000 0.880475 0.881918 0.883658 0.876239 0.879764 0.875847 0.500000 0.896035 0.500000 0.876145 0.500000 0.500000 0.893411 +0.699120 +0.460961 0.363432 0.404128 0.373966 0.651320 0.538037 0.581862 0.351313 1 0 1 1 1 0 0.500000 0 0.883897 0.896024 0.887214 0.500000 0.881444 0.907846 0.883185 0.893937 0.882880 0.852442 0.500000 0.500000 0.500000 0.500000 0.884073 0.500000 +0.703589 +0.265960 0.591902 0.289393 0.835439 0.627597 0.228407 0.634653 0.415639 0 1 0.500000 1 0 0.500000 0 0.500000 0.859652 0.876477 0.898345 0.887732 0.500000 0.500000 0.500000 0.859260 0.500000 0.500000 0.860049 0.500000 0.877924 0.500000 0.861895 0.890319 +0.482080 +0.176451 0.212180 0.710547 0.768095 0.770756 0.693003 0.296710 0.607266 0 1 1 1 0.500000 0.500000 1 1 0.893160 0.898546 0.500000 0.500000 0.891685 0.855624 0.876694 0.856055 0.500000 0.500000 0.894953 0.500000 0.917838 0.500000 0.882151 0.500000 +0.518100 +0.754450 0.240850 0.159741 0.175360 0.275498 0.891346 0.256933 0.865268 0 0 0.500000 0 1 1 1 0 0.500000 0.880709 0.500000 0.902407 0.854027 0.853321 0.895494 0.883281 0.909057 0.500000 0.500000 0.890327 0.886754 0.500000 0.832431 0.870322 +0.563338 +0.599784 0.765050 0.792681 0.388151 0.659013 0.236074 0.702973 0.670339 0 0.500000 0.500000 0.500000 0 0 0 0 0.868945 0.914068 0.920623 0.884307 0.841314 0.500000 0.900908 0.500000 0.873501 0.500000 0.912727 0.865485 0.893465 0.862131 0.500000 0.860204 +0.593102 +0.838415 0.242686 0.628401 0.130440 0.511067 0.104037 0.749099 0.710138 0 0 0 0 0.500000 0.500000 0.500000 1 0.886546 0.903828 0.500000 0.894917 0.860921 0.865970 0.865633 0.892078 0.902969 0.844405 0.500000 0.878558 0.900555 0.886351 0.500000 0.904268 +0.656835 +0.670901 0.835631 0.642927 0.266216 0.884865 0.133557 0.898160 0.366401 1 0.500000 1 0.500000 0 0 0.500000 1 0.888425 0.901016 0.888315 0.902615 0.870610 0.500000 0.872483 0.861467 0.500000 0.862499 0.907311 0.875914 0.500000 0.500000 0.888681 0.904218 +0.701788 +0.645645 0.357473 0.255659 0.259234 0.338664 0.125626 0.401185 0.517981 0 0 0 0.500000 0.500000 1 0.500000 1 0.899227 0.500000 0.882854 0.891872 0.896972 0.882553 0.890500 0.884410 0.500000 0.500000 0.881963 0.500000 0.861098 0.905513 0.893562 0.916291 +0.711366 +0.376775 0.657281 0.721887 0.152627 0.604510 0.198672 0.879296 0.125053 0.500000 1 0.500000 0 1 1 0.500000 0.500000 0.500000 0.877784 0.872120 0.500000 0.881218 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.866737 0.891911 0.500000 +0.195024 +0.427815 0.885423 0.712766 0.456693 0.647299 0.151947 0.378017 0.733213 0 1 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.878920 0.500000 0.881123 0.877099 0.500000 0.881127 0.876903 0.500000 0.881493 0.500000 0.874395 0.500000 0.500000 0.882524 0.863287 0.500000 +0.426942 +0.660178 0.606099 0.499132 0.313016 0.255707 0.259239 0.426138 0.697177 1 0 0.500000 0 0 1 1 0 0.906659 0.856818 0.888460 0.500000 0.916530 0.860070 0.500000 0.888879 0.500000 0.855609 0.899075 0.500000 0.897834 0.500000 0.870749 0.500000 +0.517935 +0.746912 0.758115 0.242528 0.362188 0.299538 0.143713 0.380135 0.321223 0.500000 1 1 1 0 1 0.500000 0 0.892641 0.888333 0.862802 0.500000 0.875849 0.885575 0.881755 0.500000 0.500000 0.500000 0.894760 0.500000 0.500000 0.856328 0.500000 0.500000 +0.497610 +0.688161 0.530939 0.492435 0.562889 0.667112 0.357517 0.181602 0.378311 1 0 0 1 1 0 0 0.500000 0.906240 0.892859 0.874670 0.500000 0.878428 0.500000 0.878481 0.912607 0.900410 0.878335 0.873351 0.897603 0.875433 0.893160 0.864297 0.500000 +0.717332 +0.843417 0.311685 0.295256 0.169635 0.852917 0.782823 0.303933 0.399713 0.500000 0 0 0 0.500000 1 0.500000 0 0.870776 0.869373 0.500000 0.910588 0.885689 0.876204 0.500000 0.500000 0.889626 0.500000 0.883965 0.887909 0.905264 0.880726 0.875018 0.500000 +0.536457 +0.809002 0.291356 0.212535 0.273264 0.146744 0.126724 0.453992 0.842267 0 1 1 1 0 0.500000 0.500000 0.500000 0.500000 0.883174 0.880774 0.903226 0.863804 0.500000 0.894631 0.880748 0.500000 0.873662 0.888228 0.500000 0.893363 0.870680 0.500000 0.500000 +0.477427 +0.197806 0.733268 0.244313 0.761419 0.574349 0.486281 0.333130 0.714092 0 0 0.500000 1 1 0.500000 1 0 0.875530 0.500000 0.875924 0.893520 0.897254 0.896238 0.888218 0.500000 0.500000 0.897061 0.500000 0.881996 0.879631 0.881703 0.864196 0.500000 +0.644158 +0.737926 0.123458 0.751060 0.863448 0.164336 0.602885 0.890391 0.200028 0.500000 0 1 0 0 0.500000 0 1 0.858494 0.500000 0.500000 0.873352 0.891005 0.902285 0.500000 0.877523 0.500000 0.500000 0.881353 0.841282 0.903649 0.500000 0.500000 0.894087 +0.404817 +0.367622 0.416951 0.701363 0.804175 0.766975 0.344011 0.398429 0.598209 1 0.500000 0.500000 0.500000 1 0 0 0.500000 0.500000 0.500000 0.925624 0.914390 0.500000 0.500000 0.850661 0.865098 0.890852 0.879470 0.500000 0.898924 0.897585 0.876549 0.866477 0.875090 +0.734013 +0.598519 0.309977 0.384584 0.697185 0.188532 0.855228 0.413886 0.384375 0.500000 0.500000 0 0.500000 0 0.500000 0 0.500000 0.869013 0.500000 0.893556 0.902425 0.859440 0.500000 0.500000 0.871132 0.831788 0.892395 0.909079 0.921111 0.500000 0.500000 0.871588 0.500000 +0.501671 +0.637599 0.322070 0.433102 0.140999 0.364699 0.888521 0.775233 0.742065 1 1 0 0.500000 1 0 0.500000 1 0.911016 0.912582 0.889525 0.892484 0.888758 0.889740 0.884545 0.867707 0.500000 0.877837 0.880204 0.500000 0.852159 0.500000 0.882418 0.500000 +0.748188 +0.871032 0.441948 0.824014 0.602506 0.117986 0.786475 0.888251 0.229477 0 0.500000 0 1 0 0 1 0.500000 0.875013 0.890815 0.896035 0.846024 0.500000 0.869235 0.878159 0.877336 0.898149 0.500000 0.500000 0.864518 0.500000 0.500000 0.879580 0.868827 +0.633414 +0.158897 0.378163 0.791820 0.320294 0.177701 0.415043 0.634499 0.224190 0 0 0.500000 1 1 1 0 1 0.500000 0.500000 0.881156 0.902057 0.874508 0.875100 0.895518 0.500000 0.500000 0.500000 0.886845 0.500000 0.500000 0.905220 0.846865 0.914821 +0.418453 +0.290179 0.438806 0.811555 0.808742 0.718613 0.324774 0.272131 0.311956 1 0.500000 0 0.500000 1 0 0 0 0.866753 0.858928 0.500000 0.500000 0.898405 0.500000 0.500000 0.500000 0.500000 0.848015 0.500000 0.500000 0.911075 0.500000 0.500000 0.872415 +0.214497 +0.325011 0.258114 0.717918 0.641614 0.598603 0.118373 0.893556 0.604062 1 1 1 1 1 0 1 1 0.880048 0.500000 0.887288 0.500000 0.887158 0.500000 0.867208 0.500000 0.500000 0.867039 0.873429 0.878895 0.889986 0.883578 0.500000 0.882462 +0.556975 +0.635147 0.709393 0.561886 0.618348 0.776446 0.331874 0.401303 0.101884 0.500000 1 1 0 0 0.500000 0 0 0.500000 0.883449 0.900431 0.500000 0.500000 0.889333 0.866981 0.873091 0.500000 0.861560 0.894763 0.878393 0.500000 0.867560 0.893289 0.500000 +0.564264 +0.491443 0.679330 0.890904 0.829414 0.158499 0.891326 0.716091 0.341979 1 0 1 0.500000 1 1 0.500000 0.500000 0.500000 0.924994 0.500000 0.889595 0.892834 0.500000 0.876308 0.863786 0.500000 0.500000 0.873277 0.500000 0.875855 0.900331 0.870630 0.897492 +0.571216 +0.306337 0.806131 0.837400 0.782241 0.118467 0.872442 0.132211 0.677968 0.500000 1 0.500000 0 0 0.500000 0 1 0.898112 0.875766 0.897464 0.500000 0.891969 0.889660 0.918141 0.882118 0.891372 0.890439 0.863394 0.500000 0.884504 0.500000 0.500000 0.863595 +0.668889 +0.151884 0.116974 0.586969 0.584150 0.416760 0.681876 0.493493 0.739215 0 1 1 0 1 1 1 0 0.874816 0.892857 0.871247 0.500000 0.896535 0.500000 0.866999 0.877568 0.500000 0.500000 0.886595 0.871907 0.835883 0.899339 0.500000 0.892274 +0.669888 +0.629296 0.782389 0.215354 0.456990 0.827299 0.614536 0.702825 0.582117 1 0.500000 0.500000 0.500000 0.500000 0 0.500000 1 0.870055 0.838047 0.500000 0.895831 0.500000 0.902235 0.867428 0.883434 0.500000 0.871318 0.899583 0.898497 0.500000 0.890822 0.500000 0.500000 +0.524590 +0.130730 0.573703 0.825954 0.416496 0.241664 0.244768 0.415721 0.825297 0.500000 0.500000 0 1 1 1 1 0.500000 0.873127 0.872540 0.888538 0.863805 0.894557 0.860178 0.500000 0.881749 0.868210 0.500000 0.500000 0.500000 0.500000 0.500000 0.910950 0.500000 +0.523240 +0.582803 0.175324 0.469987 0.875753 0.584365 0.821861 0.417225 0.502204 1 0 0 1 0.500000 0.500000 0.500000 1 0.903709 0.898172 0.882052 0.860530 0.500000 0.890016 0.897028 0.500000 0.500000 0.500000 0.905741 0.878046 0.890515 0.500000 0.500000 0.869185 +0.525028 +0.450128 0.699825 0.558448 0.438173 0.581806 0.205806 0.787944 0.783276 1 0 0 1 0 0.500000 0.500000 0 0.500000 0.878157 0.896386 0.500000 0.876019 0.893129 0.842760 0.500000 0.500000 0.500000 0.867968 0.500000 0.837257 0.500000 0.879034 0.911185 +0.410595 +0.473050 0.358268 0.803945 0.102107 0.311629 0.142349 0.654702 0.571308 0.500000 1 1 0.500000 0 1 1 0.500000 0.874013 0.871781 0.835421 0.819793 0.500000 0.896674 0.886434 0.890757 0.892444 0.866832 0.865454 0.500000 0.873496 0.500000 0.897060 0.868635 +0.733843 +0.474687 0.660737 0.398812 0.639273 0.466458 0.757353 0.226691 0.603348 1 0 0 1 1 0.500000 0 1 0.904871 0.820160 0.908614 0.867417 0.500000 0.500000 0.903542 0.852559 0.500000 0.862886 0.857916 0.500000 0.500000 0.885283 0.895907 0.500000 +0.572807 +0.278532 0.685683 0.475439 0.507936 0.286624 0.687476 0.204363 0.521742 0 0 0.500000 1 1 1 0.500000 0.500000 0.889051 0.901058 0.500000 0.889393 0.879058 0.886126 0.500000 0.897655 0.500000 0.500000 0.500000 0.500000 0.894053 0.906080 0.500000 0.500000 +0.528845 +0.181193 0.713658 0.251654 0.146028 0.889186 0.749416 0.439695 0.554674 0 0 0 0.500000 1 0.500000 0 1 0.890290 0.896718 0.867383 0.877922 0.500000 0.889991 0.872745 0.920399 0.500000 0.500000 0.500000 0.500000 0.500000 0.882339 0.500000 0.871638 +0.608678 +0.608224 0.224523 0.157906 0.530017 0.197796 0.555153 0.254715 0.393255 1 0 0.500000 0.500000 1 0.500000 0.500000 0 0.910236 0.500000 0.890253 0.895200 0.881235 0.500000 0.855657 0.849198 0.869931 0.500000 0.500000 0.500000 0.500000 0.500000 0.883802 0.500000 +0.446994 +0.190143 0.725575 0.533934 0.431524 0.816851 0.214270 0.634566 0.554575 0 1 0.500000 0 1 0 1 0.500000 0.866209 0.500000 0.890249 0.500000 0.833467 0.866545 0.845737 0.500000 0.885969 0.898935 0.835610 0.883339 0.848103 0.903287 0.887913 0.878073 +0.749916 +0.628580 0.741871 0.821189 0.319911 0.146861 0.487749 0.204031 0.547670 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.879621 0.883150 0.885789 0.902910 0.841838 0.875701 0.878630 0.893108 0.884830 0.876974 0.500000 0.885964 0.500000 0.500000 0.879444 0.867516 +0.745211 +0.737697 0.273679 0.723533 0.614428 0.498284 0.451230 0.816971 0.628583 1 0 0.500000 0 1 0.500000 0.500000 1 0.865882 0.853053 0.874708 0.885237 0.854459 0.871598 0.500000 0.500000 0.500000 0.500000 0.500000 0.878812 0.500000 0.895457 0.500000 0.905305 +0.460219 +0.654937 0.525960 0.811249 0.456511 0.782843 0.647003 0.784964 0.289078 0 1 1 0.500000 1 1 0.500000 0 0.872609 0.500000 0.879415 0.900411 0.900135 0.500000 0.500000 0.898276 0.856304 0.500000 0.858188 0.866323 0.500000 0.894444 0.856475 0.500000 +0.482240 +0.468870 0.501677 0.686490 0.444936 0.640084 0.492899 0.358447 0.617291 0.500000 1 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.892835 0.886663 0.500000 0.906267 0.876484 0.869340 0.500000 0.853660 0.902112 0.909330 0.500000 0.886246 0.500000 0.877129 0.500000 0.868034 +0.664348 +0.663799 0.664566 0.757526 0.742346 0.806634 0.492521 0.400593 0.158794 0 0.500000 0 0.500000 1 0.500000 0 1 0.891063 0.500000 0.869316 0.500000 0.898265 0.861013 0.867717 0.883043 0.854831 0.871845 0.894305 0.899552 0.861265 0.500000 0.895307 0.883057 +0.686260 +0.386286 0.511668 0.608950 0.427961 0.147900 0.351967 0.506300 0.790967 0.500000 0.500000 0.500000 0 1 0.500000 0 1 0.908228 0.881357 0.893187 0.895313 0.878506 0.500000 0.500000 0.834050 0.500000 0.870605 0.500000 0.899355 0.887259 0.892797 0.500000 0.500000 +0.586122 +0.235789 0.704276 0.159536 0.719073 0.852268 0.264474 0.418752 0.571668 0 0 0.500000 0 0 1 0.500000 1 0.877226 0.500000 0.876605 0.872284 0.500000 0.887100 0.873010 0.852840 0.500000 0.878705 0.877394 0.870120 0.500000 0.500000 0.500000 0.500000 +0.491063 +0.528121 0.329828 0.423901 0.704702 0.130199 0.460865 0.351601 0.754505 0 0.500000 0 0.500000 0.500000 0.500000 1 0 0.880930 0.896150 0.886019 0.879625 0.500000 0.918496 0.889046 0.500000 0.500000 0.897547 0.885753 0.500000 0.500000 0.500000 0.500000 0.881793 +0.516659 +0.620855 0.502655 0.325103 0.204066 0.335055 0.267633 0.709542 0.670100 0 0.500000 1 0.500000 1 1 0 1 0.500000 0.888108 0.500000 0.500000 0.916635 0.860948 0.882362 0.500000 0.500000 0.890673 0.500000 0.500000 0.895603 0.500000 0.898042 0.849735 +0.338501 +0.307995 0.668356 0.456083 0.780373 0.735640 0.105602 0.644911 0.819290 0.500000 0 0 0 1 1 1 0 0.911856 0.500000 0.877620 0.500000 0.882923 0.875418 0.944263 0.881609 0.500000 0.881410 0.893736 0.500000 0.863273 0.885264 0.901471 0.500000 +0.603342 +0.179872 0.104088 0.800145 0.234451 0.615535 0.702509 0.863411 0.344951 0 1 1 1 0.500000 1 1 0 0.500000 0.868498 0.500000 0.871260 0.500000 0.901978 0.500000 0.909217 0.500000 0.500000 0.500000 0.500000 0.869021 0.895616 0.500000 0.878838 +0.438099 +0.691858 0.254229 0.225386 0.270581 0.649320 0.517144 0.637743 0.339172 1 0 1 0 0 0.500000 0.500000 1 0.500000 0.907020 0.500000 0.500000 0.500000 0.870577 0.850885 0.880965 0.890006 0.880392 0.500000 0.871709 0.500000 0.884490 0.500000 0.500000 +0.369923 +0.477830 0.695767 0.347558 0.804395 0.475140 0.274185 0.422506 0.465315 1 0 1 0.500000 0.500000 1 0 0.500000 0.859601 0.874790 0.898970 0.851068 0.866642 0.880804 0.881425 0.500000 0.872014 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.857809 +0.509694 +0.373827 0.707586 0.590157 0.576203 0.447447 0.434119 0.445216 0.539174 0.500000 1 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.888917 0.500000 0.869066 0.887185 0.874519 0.500000 0.500000 0.910243 0.500000 0.500000 0.500000 0.500000 0.889475 0.500000 0.500000 0.500000 +0.382709 +0.830332 0.385750 0.306091 0.664422 0.745145 0.650219 0.435573 0.876617 1 1 0 0 0 0 0.500000 1 0.896144 0.500000 0.500000 0.500000 0.500000 0.500000 0.868831 0.500000 0.876633 0.500000 0.500000 0.500000 0.500000 0.910508 0.886724 0.500000 +0.140450 +0.810758 0.211951 0.857144 0.612264 0.125351 0.580209 0.567270 0.711951 0 0 0.500000 0 0 0.500000 0.500000 0 0.890382 0.873841 0.500000 0.876718 0.893870 0.916643 0.500000 0.861310 0.500000 0.500000 0.500000 0.500000 0.911222 0.868543 0.500000 0.862362 +0.464288 +0.399622 0.652366 0.516701 0.387515 0.362358 0.742896 0.453527 0.220594 0.500000 1 0 0 0 1 1 0.500000 0.500000 0.850514 0.886297 0.912057 0.879439 0.876694 0.891493 0.897189 0.500000 0.898152 0.500000 0.500000 0.500000 0.870478 0.500000 0.500000 +0.542162 +0.738644 0.195895 0.608940 0.261272 0.203473 0.767573 0.792331 0.101238 0 0 1 0 0.500000 0.500000 1 1 0.500000 0.500000 0.866377 0.878565 0.850935 0.851830 0.881509 0.500000 0.500000 0.891453 0.500000 0.500000 0.908368 0.871170 0.849738 0.500000 +0.442979 +0.889809 0.818519 0.245376 0.228256 0.506592 0.889773 0.220058 0.319022 0.500000 1 1 0 0.500000 1 0 0 0.877348 0.861592 0.910903 0.874485 0.500000 0.837995 0.886288 0.878732 0.500000 0.500000 0.883138 0.500000 0.500000 0.500000 0.500000 0.896688 +0.573707 +0.372766 0.482723 0.521380 0.635175 0.392906 0.566437 0.315153 0.181596 0 0.500000 0 1 0.500000 0.500000 0 0 0.888494 0.883279 0.894076 0.500000 0.864761 0.500000 0.914595 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.867502 0.876682 0.901807 +0.413540 +0.674139 0.849245 0.668771 0.229309 0.592076 0.828389 0.537024 0.365094 0 1 0 0 1 0 0 0.500000 0.863690 0.500000 0.880195 0.500000 0.500000 0.873845 0.886622 0.892961 0.500000 0.898993 0.500000 0.862304 0.895640 0.500000 0.897136 0.500000 +0.403497 +0.209142 0.843150 0.618028 0.201283 0.768516 0.657051 0.857439 0.770670 1 1 0.500000 1 0.500000 1 0 0.500000 0.500000 0.884122 0.867459 0.500000 0.899710 0.500000 0.880331 0.869464 0.500000 0.500000 0.500000 0.500000 0.912084 0.863911 0.500000 0.881689 +0.393641 +0.709534 0.535254 0.220908 0.206097 0.868600 0.357797 0.888224 0.573344 0.500000 1 0.500000 1 0.500000 1 0 0.500000 0.904117 0.843293 0.888940 0.875164 0.878241 0.500000 0.880051 0.883179 0.902845 0.873497 0.500000 0.877941 0.500000 0.859253 0.940089 0.891085 +0.771802 +0.825200 0.535210 0.280477 0.584266 0.764762 0.753036 0.471640 0.657811 1 0 0.500000 1 1 0 0 0 0.904352 0.890175 0.901619 0.871730 0.500000 0.871256 0.500000 0.500000 0.500000 0.500000 0.893724 0.830373 0.866975 0.500000 0.874028 0.500000 +0.406373 +0.850944 0.410594 0.252902 0.324999 0.854578 0.693584 0.467362 0.759812 1 0 0 0 0 1 1 1 0.874783 0.855975 0.845686 0.500000 0.891099 0.887069 0.500000 0.872683 0.500000 0.879352 0.854731 0.890307 0.890967 0.500000 0.500000 0.500000 +0.476533 +0.505668 0.554568 0.825659 0.253119 0.765337 0.825664 0.339697 0.688965 0.500000 0.500000 1 0 0 0 0.500000 1 0.500000 0.874347 0.846896 0.907554 0.500000 0.500000 0.884170 0.865232 0.500000 0.500000 0.880892 0.887506 0.895185 0.889239 0.902342 0.500000 +0.436418 +0.241774 0.494296 0.625815 0.675038 0.771281 0.720258 0.779043 0.773938 0.500000 0 0 0 0 1 1 0 0.500000 0.500000 0.500000 0.876281 0.862608 0.865561 0.500000 0.905733 0.500000 0.500000 0.872411 0.875346 0.500000 0.888769 0.889544 0.500000 +0.300315 +0.854146 0.628303 0.886327 0.694376 0.173824 0.864746 0.378613 0.343791 1 0.500000 0 0.500000 0 0 0 0 0.500000 0.887553 0.500000 0.865864 0.869207 0.500000 0.915277 0.888565 0.500000 0.902659 0.897301 0.859299 0.884382 0.500000 0.902239 0.500000 +0.494908 +0.161205 0.766827 0.253141 0.340133 0.812493 0.571851 0.893403 0.417660 0.500000 1 1 0.500000 1 0 1 0.500000 0.864536 0.871641 0.900076 0.885640 0.500000 0.903631 0.867677 0.500000 0.500000 0.500000 0.885985 0.500000 0.500000 0.896205 0.500000 0.871285 +0.596088 +0.502501 0.129015 0.551746 0.591387 0.448913 0.276113 0.830819 0.575921 0.500000 1 0.500000 0 0 0 0 1 0.862983 0.500000 0.918958 0.500000 0.870137 0.500000 0.500000 0.500000 0.500000 0.500000 0.883991 0.875114 0.500000 0.500000 0.500000 0.500000 +0.186373 +0.855733 0.898691 0.499250 0.687139 0.147388 0.545709 0.735414 0.305142 1 0.500000 0.500000 0.500000 1 0 1 1 0.500000 0.500000 0.500000 0.891691 0.867108 0.500000 0.903098 0.892312 0.893809 0.887738 0.500000 0.500000 0.500000 0.871501 0.500000 0.897651 +0.372906 +0.856715 0.614954 0.523698 0.395875 0.865270 0.400227 0.413686 0.214710 1 0.500000 1 1 0 0.500000 0 0 0.896926 0.876225 0.874760 0.895652 0.500000 0.896215 0.891674 0.871514 0.884316 0.881674 0.857694 0.500000 0.500000 0.856734 0.500000 0.870046 +0.739370 +0.524396 0.131384 0.368756 0.286689 0.181183 0.536720 0.845339 0.620904 0.500000 1 0.500000 0 0.500000 0.500000 1 1 0.500000 0.880201 0.500000 0.500000 0.876616 0.891384 0.897311 0.889835 0.500000 0.873976 0.865236 0.500000 0.860200 0.884485 0.500000 0.500000 +0.485126 +0.155080 0.223355 0.521665 0.618940 0.329609 0.745639 0.154110 0.722937 0 1 1 0.500000 1 1 0 1 0.903770 0.500000 0.926489 0.500000 0.881301 0.900800 0.500000 0.877119 0.500000 0.868886 0.889537 0.871536 0.500000 0.500000 0.893249 0.826108 +0.530060 +0.866094 0.645976 0.314064 0.275406 0.143823 0.627007 0.713699 0.144964 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.852092 0.500000 0.500000 0.886761 0.500000 0.865586 0.884095 0.865086 0.500000 0.884233 0.500000 0.500000 0.500000 0.500000 0.500000 0.874948 +0.356381 +0.453001 0.192336 0.796502 0.607030 0.150118 0.824838 0.844504 0.185456 0 0.500000 0 0 0.500000 1 0 0.500000 0.888197 0.862463 0.880264 0.904349 0.858364 0.869419 0.500000 0.500000 0.500000 0.928806 0.857397 0.500000 0.500000 0.500000 0.500000 0.904295 +0.451807 +0.195887 0.478077 0.844224 0.278001 0.570447 0.497907 0.528475 0.679146 0 1 0 0 0 1 0 1 0.500000 0.882021 0.878868 0.500000 0.500000 0.886284 0.902236 0.500000 0.916239 0.867414 0.872446 0.500000 0.888166 0.500000 0.905747 0.500000 +0.487451 +0.315414 0.567769 0.298407 0.319700 0.596688 0.737213 0.135714 0.342508 1 0 0 1 0.500000 1 0 0.500000 0.902432 0.869019 0.500000 0.877295 0.500000 0.895867 0.890288 0.877680 0.500000 0.500000 0.500000 0.885085 0.926624 0.500000 0.910130 0.880712 +0.573980 +0.203254 0.291264 0.273570 0.493064 0.725156 0.698623 0.356855 0.258202 0.500000 0 1 0 0 1 1 1 0.896594 0.866990 0.863335 0.500000 0.871522 0.876054 0.500000 0.868318 0.896439 0.500000 0.870586 0.500000 0.500000 0.893519 0.500000 0.500000 +0.499382 +0.293233 0.572087 0.868591 0.206704 0.672301 0.359236 0.278604 0.302421 0.500000 0.500000 0 1 0 1 0 1 0.500000 0.870869 0.852830 0.863253 0.862648 0.862327 0.873784 0.500000 0.500000 0.895300 0.500000 0.500000 0.905354 0.500000 0.879331 0.855257 +0.497327 +0.554386 0.169606 0.367144 0.390158 0.788311 0.536405 0.355553 0.776970 0 1 1 1 0 0.500000 0 0.500000 0.500000 0.500000 0.902079 0.859708 0.869301 0.500000 0.888651 0.888807 0.500000 0.886829 0.858203 0.500000 0.875373 0.901661 0.500000 0.500000 +0.504795 +0.578295 0.404029 0.323028 0.533678 0.119983 0.754593 0.246757 0.243810 0 0.500000 1 0 0.500000 1 0.500000 0.500000 0.856031 0.898960 0.500000 0.883697 0.905568 0.909033 0.873398 0.887277 0.500000 0.881324 0.500000 0.886677 0.830448 0.500000 0.922223 0.500000 +0.672314 +0.562297 0.333215 0.537171 0.426856 0.770422 0.683330 0.135069 0.705140 0 0.500000 1 1 1 0 0 0 0.500000 0.907587 0.500000 0.866293 0.500000 0.878555 0.862522 0.887230 0.889769 0.863642 0.898814 0.858628 0.900465 0.500000 0.500000 0.500000 +0.516720 +0.244051 0.356676 0.454880 0.566108 0.369682 0.650739 0.371254 0.661599 0.500000 0 1 1 0 1 1 0 0.500000 0.877578 0.876052 0.500000 0.903215 0.897888 0.863016 0.847981 0.882479 0.874132 0.868141 0.500000 0.500000 0.890222 0.874636 0.500000 +0.650223 +0.378307 0.811890 0.835143 0.455430 0.208837 0.519652 0.383787 0.101772 0 0.500000 0 1 0 1 1 0.500000 0.842503 0.500000 0.851616 0.886711 0.885070 0.886520 0.500000 0.877532 0.500000 0.897595 0.500000 0.500000 0.885344 0.887639 0.873017 0.897629 +0.505468 +0.257368 0.187099 0.773327 0.703784 0.691390 0.391095 0.525330 0.616824 1 0 1 0 0.500000 1 0 1 0.856410 0.878253 0.500000 0.870627 0.877036 0.500000 0.500000 0.895350 0.889601 0.873897 0.500000 0.500000 0.892630 0.500000 0.500000 0.500000 +0.404255 +0.450353 0.476461 0.886422 0.702094 0.287186 0.527968 0.156393 0.694555 1 0.500000 0.500000 1 0.500000 0.500000 0 0.500000 0.858587 0.868752 0.500000 0.880865 0.885570 0.871525 0.885357 0.873375 0.500000 0.877692 0.500000 0.500000 0.915050 0.500000 0.500000 0.500000 +0.592228 +0.174173 0.332701 0.697723 0.430518 0.713546 0.772662 0.722469 0.336528 0 1 0.500000 1 1 0 0.500000 0.500000 0.890820 0.872187 0.899035 0.892460 0.898671 0.877997 0.871156 0.886597 0.500000 0.890748 0.500000 0.878021 0.856588 0.500000 0.875832 0.500000 +0.736991 +0.121094 0.233958 0.326934 0.587368 0.886403 0.369316 0.100434 0.189668 1 0 0 0 1 0 0.500000 0 0.500000 0.864113 0.500000 0.873889 0.875943 0.900421 0.855548 0.878747 0.882486 0.500000 0.500000 0.884934 0.890639 0.855720 0.888265 0.500000 +0.549374 +0.406994 0.544361 0.478958 0.445930 0.540435 0.896586 0.313329 0.720117 1 0 1 0.500000 0 0 0.500000 0.500000 0.892574 0.889672 0.883532 0.500000 0.500000 0.500000 0.832680 0.907915 0.500000 0.500000 0.500000 0.916825 0.500000 0.903197 0.500000 0.886570 +0.389687 +0.711944 0.238763 0.284835 0.214808 0.884178 0.583314 0.757195 0.769126 0.500000 1 1 0 1 0.500000 1 1 0.864392 0.861161 0.894465 0.882938 0.500000 0.899073 0.500000 0.863087 0.500000 0.908748 0.500000 0.853214 0.880574 0.861718 0.888157 0.500000 +0.605493 +0.122093 0.210851 0.770189 0.762301 0.187519 0.625267 0.269945 0.360227 0 0 1 1 1 1 0 0 0.500000 0.875255 0.879742 0.500000 0.916557 0.500000 0.851959 0.874210 0.500000 0.500000 0.894586 0.891329 0.902883 0.500000 0.500000 0.904177 +0.497828 +0.570908 0.251999 0.338837 0.635070 0.216082 0.689780 0.536613 0.658686 0 0.500000 0 0 0 1 1 0 0.863361 0.870030 0.909818 0.884587 0.855748 0.879844 0.867587 0.500000 0.871013 0.500000 0.885808 0.860169 0.500000 0.911522 0.500000 0.864912 +0.618366 +0.659346 0.233594 0.612737 0.868521 0.638302 0.143294 0.538443 0.216949 1 1 0.500000 0 0.500000 0 0.500000 0 0.875762 0.879375 0.500000 0.902731 0.898341 0.862199 0.876513 0.500000 0.859018 0.892955 0.857492 0.863448 0.872408 0.500000 0.500000 0.879057 +0.654275 +0.710181 0.217833 0.525782 0.215577 0.210880 0.453846 0.787147 0.187462 0.500000 0.500000 0.500000 0 0 0 1 0.500000 0.901929 0.891110 0.853149 0.500000 0.887887 0.900286 0.886755 0.885642 0.894922 0.500000 0.863676 0.500000 0.848218 0.893806 0.866404 0.915635 +0.716053 +0.374196 0.516620 0.631305 0.147356 0.812308 0.656386 0.877771 0.891358 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 0.890610 0.882408 0.869170 0.857204 0.500000 0.905618 0.875212 0.500000 0.500000 0.500000 0.864181 0.886547 0.500000 0.905354 0.500000 0.873650 +0.626472 +0.248153 0.503101 0.620448 0.869922 0.174542 0.133577 0.423880 0.358683 0.500000 1 0 0.500000 0.500000 1 0.500000 0 0.912519 0.897852 0.500000 0.500000 0.500000 0.887610 0.868430 0.885259 0.914492 0.500000 0.877330 0.890992 0.886843 0.500000 0.840277 0.500000 +0.636702 +0.490561 0.251797 0.153770 0.605712 0.397642 0.167801 0.424874 0.256248 0.500000 0.500000 0 0.500000 0.500000 1 0.500000 0.500000 0.864926 0.894512 0.500000 0.851524 0.872535 0.878681 0.858082 0.890447 0.884189 0.500000 0.918845 0.500000 0.500000 0.858633 0.883554 0.500000 +0.616790 +0.801528 0.282825 0.835510 0.215227 0.719452 0.826601 0.888938 0.578794 1 0 0.500000 1 1 0 0.500000 0.500000 0.869286 0.893575 0.911151 0.869757 0.878635 0.500000 0.900386 0.877496 0.912691 0.500000 0.500000 0.878066 0.500000 0.869110 0.899847 0.500000 +0.580408 +0.752195 0.739772 0.746359 0.252869 0.568707 0.853827 0.871767 0.782905 1 0.500000 0 1 0.500000 0.500000 0 0 0.500000 0.908098 0.874561 0.871976 0.500000 0.872501 0.890802 0.500000 0.500000 0.500000 0.893519 0.500000 0.857551 0.888893 0.500000 0.500000 +0.339515 +0.816278 0.186540 0.172492 0.880033 0.521866 0.794071 0.558591 0.447562 1 0.500000 0 1 0.500000 1 0 1 0.864211 0.879170 0.870106 0.500000 0.500000 0.855226 0.870293 0.500000 0.500000 0.500000 0.902383 0.865004 0.500000 0.899056 0.500000 0.500000 +0.454863 +0.840891 0.252061 0.581792 0.771178 0.590286 0.340201 0.351098 0.310191 1 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.877839 0.868801 0.864072 0.886902 0.500000 0.500000 0.821057 0.892471 0.859091 0.875715 0.870720 0.500000 0.873661 0.500000 0.883636 +0.563845 +0.566381 0.167079 0.304401 0.272039 0.356693 0.747561 0.458463 0.790795 1 0 0 0.500000 0 0 0 0.500000 0.886018 0.500000 0.882669 0.500000 0.865391 0.500000 0.500000 0.875679 0.500000 0.843933 0.881761 0.878384 0.893915 0.825996 0.500000 0.500000 +0.408210 +0.370175 0.135170 0.803061 0.452091 0.892736 0.415677 0.883746 0.514063 1 1 1 1 0 0.500000 0 0.500000 0.893250 0.884818 0.890571 0.500000 0.883202 0.856596 0.500000 0.908975 0.500000 0.896674 0.500000 0.500000 0.500000 0.864833 0.500000 0.853348 +0.533974 +0.125355 0.644560 0.523580 0.801152 0.366131 0.160548 0.137262 0.763376 1 0.500000 0 1 0.500000 0.500000 0.500000 1 0.895104 0.885717 0.500000 0.894436 0.902912 0.500000 0.500000 0.917498 0.869244 0.867634 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.386714 +0.879902 0.719600 0.123251 0.474737 0.703480 0.387840 0.220367 0.712663 0 0 1 1 0.500000 1 0 0.500000 0.891370 0.885434 0.861974 0.862098 0.500000 0.871842 0.500000 0.500000 0.884826 0.500000 0.880429 0.893422 0.500000 0.500000 0.895035 0.859168 +0.439187 +0.815654 0.895730 0.333603 0.659529 0.104430 0.147286 0.431033 0.574025 1 1 1 1 1 1 1 1 0.500000 0.872933 0.500000 0.500000 0.909084 0.897748 0.868589 0.916596 0.877352 0.500000 0.500000 0.500000 0.500000 0.500000 0.915827 0.854038 +0.311678 +0.754028 0.349990 0.882468 0.632376 0.549132 0.666479 0.104601 0.626814 1 0.500000 0.500000 1 1 0 0 0.500000 0.868312 0.870826 0.875692 0.894682 0.500000 0.888186 0.873404 0.898658 0.500000 0.500000 0.500000 0.500000 0.878654 0.884943 0.500000 0.888927 +0.551950 +0.802647 0.692069 0.611589 0.780228 0.686826 0.478764 0.379954 0.495292 0.500000 0.500000 0.500000 0 0 0.500000 0 0 0.500000 0.886298 0.500000 0.500000 0.500000 0.879882 0.883066 0.862699 0.876454 0.879477 0.500000 0.871620 0.500000 0.895902 0.903703 0.500000 +0.385671 +0.676130 0.718050 0.465361 0.714344 0.587716 0.340521 0.129617 0.276951 0.500000 0.500000 1 1 0 0 0 1 0.500000 0.500000 0.874635 0.893414 0.870439 0.893000 0.500000 0.854930 0.500000 0.888442 0.864791 0.873258 0.919546 0.892860 0.842475 0.896458 +0.698465 +0.393984 0.281007 0.691927 0.613715 0.506545 0.105790 0.616744 0.222687 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0 0.850000 0.864870 0.886535 0.500000 0.932791 0.865770 0.859336 0.859408 0.500000 0.880327 0.500000 0.500000 0.879018 0.500000 0.871504 0.500000 +0.583272 +0.227932 0.645909 0.786698 0.625329 0.512855 0.559724 0.284898 0.487259 1 1 0 0.500000 0.500000 1 0 0.500000 0.905079 0.872760 0.886784 0.889216 0.902828 0.500000 0.884945 0.500000 0.885760 0.500000 0.889913 0.895661 0.500000 0.500000 0.862096 0.500000 +0.656871 +0.194150 0.872772 0.878334 0.752769 0.787594 0.492242 0.517393 0.830053 0.500000 1 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.889498 0.884531 0.500000 0.905861 0.500000 0.500000 0.865082 0.908009 0.500000 0.890688 0.866451 0.847560 0.899154 0.875122 0.500000 0.900345 +0.634456 +0.380228 0.294974 0.235909 0.316216 0.441809 0.890460 0.558982 0.603730 1 1 0.500000 0 1 0.500000 0.500000 0 0.881195 0.500000 0.860635 0.914640 0.866897 0.890067 0.839026 0.902489 0.500000 0.500000 0.907773 0.892170 0.500000 0.868710 0.500000 0.500000 +0.667282 +0.878711 0.687188 0.169338 0.665141 0.824288 0.409677 0.836038 0.287187 0.500000 0 0 1 0.500000 0 0.500000 0.500000 0.895761 0.861027 0.882644 0.895614 0.876184 0.872490 0.886128 0.877847 0.881928 0.500000 0.500000 0.844211 0.500000 0.892220 0.864834 0.895192 +0.729387 +0.628813 0.667559 0.660031 0.536071 0.352273 0.855394 0.806391 0.414256 0 0.500000 0 0 0.500000 0 0.500000 1 0.500000 0.904403 0.922188 0.883567 0.868822 0.500000 0.897990 0.874138 0.867763 0.874628 0.500000 0.500000 0.500000 0.890454 0.863939 0.910657 +0.464462 +0.270183 0.364317 0.873872 0.173315 0.307888 0.474245 0.438759 0.820798 0 0 0 0 0.500000 0.500000 1 1 0.884258 0.905167 0.878612 0.876319 0.904001 0.905574 0.866058 0.904224 0.880468 0.889578 0.500000 0.500000 0.910104 0.500000 0.878031 0.876662 +0.831275 +0.445391 0.286459 0.322376 0.767200 0.130021 0.656058 0.175063 0.882975 0.500000 0.500000 1 0 0.500000 0.500000 1 0 0.891078 0.875917 0.897994 0.875931 0.500000 0.873074 0.866862 0.869027 0.500000 0.500000 0.879708 0.898037 0.866607 0.500000 0.872265 0.500000 +0.625705 +0.837301 0.721347 0.684758 0.124419 0.101975 0.493485 0.607663 0.398769 1 0 0 0 0.500000 0 0.500000 1 0.880559 0.500000 0.888022 0.887952 0.888332 0.876589 0.500000 0.892881 0.500000 0.500000 0.500000 0.910219 0.880787 0.878056 0.500000 0.500000 +0.517196 +0.393531 0.682962 0.334600 0.618947 0.450110 0.406655 0.458135 0.867288 1 1 0 0 0.500000 1 0 0.500000 0.500000 0.873968 0.875152 0.894633 0.856082 0.875193 0.500000 0.904027 0.500000 0.500000 0.855218 0.879052 0.500000 0.882705 0.878007 0.893026 +0.596785 +0.535750 0.544465 0.621615 0.481219 0.848381 0.536480 0.823694 0.823549 1 0 1 0.500000 0.500000 1 1 0 0.874073 0.859540 0.500000 0.923372 0.913533 0.500000 0.500000 0.904949 0.874534 0.500000 0.866392 0.500000 0.900836 0.869356 0.882334 0.867071 +0.595438 +0.337458 0.654848 0.627167 0.188208 0.205921 0.314139 0.737542 0.874611 0.500000 0 0.500000 0 1 1 0.500000 1 0.891958 0.500000 0.879913 0.500000 0.500000 0.500000 0.850304 0.500000 0.500000 0.500000 0.500000 0.869034 0.500000 0.911759 0.898179 0.882916 +0.289280 +0.715809 0.410450 0.237935 0.772787 0.431519 0.739677 0.746449 0.161605 0 0 1 1 0.500000 1 0 1 0.891416 0.500000 0.882906 0.872092 0.500000 0.891888 0.886082 0.889898 0.500000 0.500000 0.873215 0.888384 0.500000 0.500000 0.500000 0.500000 +0.469919 +0.259788 0.858117 0.166840 0.284327 0.487472 0.340348 0.421558 0.517935 0 1 0 1 0.500000 0.500000 0.500000 0.500000 0.864848 0.500000 0.859126 0.500000 0.865242 0.877626 0.863216 0.500000 0.500000 0.863376 0.500000 0.909141 0.869383 0.855490 0.873977 0.896896 +0.613544 +0.770538 0.237506 0.763236 0.704765 0.388619 0.515642 0.201922 0.297586 0 0 1 1 0.500000 0.500000 0.500000 0 0.896105 0.903004 0.500000 0.913247 0.871976 0.868588 0.500000 0.881093 0.899929 0.884240 0.500000 0.858200 0.500000 0.875921 0.500000 0.909970 +0.637502 +0.807056 0.391420 0.393482 0.659565 0.706985 0.894210 0.387031 0.231142 0 0 0 0.500000 1 1 0 0.500000 0.894108 0.870765 0.500000 0.921123 0.874685 0.870812 0.500000 0.500000 0.870021 0.867402 0.500000 0.867220 0.902494 0.888720 0.500000 0.500000 +0.525843 +0.107701 0.728964 0.690462 0.789340 0.238810 0.287745 0.329109 0.336424 1 1 1 0.500000 0 0.500000 0.500000 0.500000 0.880909 0.500000 0.858696 0.879814 0.896076 0.869529 0.880134 0.915968 0.885200 0.898184 0.901346 0.500000 0.886476 0.500000 0.500000 0.863471 +0.734687 +0.313669 0.829384 0.463966 0.481569 0.326992 0.757443 0.142628 0.546760 1 0.500000 1 0 0.500000 0.500000 0 1 0.877762 0.882114 0.864690 0.865255 0.500000 0.500000 0.854668 0.895991 0.889975 0.866710 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.456749 +0.627678 0.776540 0.302657 0.561535 0.312470 0.677830 0.483997 0.341032 1 1 0 1 0 0 1 0 0.880465 0.842657 0.880714 0.878360 0.868788 0.901876 0.880431 0.500000 0.500000 0.858542 0.500000 0.865351 0.500000 0.500000 0.887898 0.500000 +0.585472 +0.284800 0.435087 0.711905 0.381404 0.857703 0.408102 0.775378 0.771295 0 0.500000 1 1 0.500000 0 1 1 0.500000 0.872947 0.500000 0.500000 0.500000 0.500000 0.500000 0.900304 0.500000 0.500000 0.881113 0.924768 0.854784 0.500000 0.904379 0.868306 +0.382214 +0.374036 0.227072 0.607334 0.467173 0.777172 0.529715 0.715471 0.314907 1 1 0 0.500000 1 1 0 0 0.853892 0.867655 0.500000 0.885343 0.851939 0.888608 0.894299 0.869619 0.500000 0.500000 0.884161 0.873869 0.874304 0.891000 0.500000 0.868168 +0.807694 +0.290096 0.638524 0.680961 0.313463 0.570849 0.863083 0.444848 0.764494 0 0 1 0 0 0.500000 0 0.500000 0.890504 0.500000 0.882402 0.891003 0.855212 0.880796 0.863084 0.886876 0.500000 0.500000 0.903627 0.893798 0.892092 0.881325 0.500000 0.500000 +0.646098 +0.445229 0.764786 0.362092 0.278290 0.627823 0.826431 0.429095 0.797783 0.500000 0 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.851104 0.882154 0.863109 0.500000 0.902999 0.500000 0.882333 0.894333 0.500000 0.898990 0.909400 0.897550 0.884241 0.864332 0.500000 0.500000 +0.532167 +0.326518 0.780338 0.136685 0.666060 0.267361 0.141234 0.316088 0.697459 1 1 0.500000 0.500000 0 0 0 1 0.871601 0.890755 0.500000 0.500000 0.857873 0.877308 0.876749 0.500000 0.500000 0.500000 0.894089 0.500000 0.500000 0.500000 0.868917 0.500000 +0.341360 +0.729501 0.123801 0.124710 0.204826 0.309173 0.477447 0.658133 0.645464 0.500000 0 0 0.500000 0.500000 1 0 0.500000 0.500000 0.874008 0.876266 0.500000 0.918273 0.500000 0.870686 0.500000 0.500000 0.864576 0.889164 0.500000 0.890706 0.875911 0.874794 0.500000 +0.447465 +0.831284 0.393919 0.792103 0.271157 0.729543 0.829470 0.308301 0.212065 0.500000 0 1 1 0 1 0.500000 1 0.500000 0.874511 0.877819 0.888961 0.500000 0.875524 0.500000 0.877677 0.500000 0.899250 0.879566 0.500000 0.500000 0.860208 0.848877 0.500000 +0.386093 +0.339412 0.695946 0.166996 0.503982 0.226380 0.162761 0.527555 0.420070 0 0 0.500000 1 1 0.500000 0.500000 0 0.868753 0.902034 0.903675 0.887705 0.894161 0.500000 0.903647 0.500000 0.500000 0.865049 0.887258 0.907604 0.909573 0.500000 0.918913 0.882565 +0.593769 +0.478660 0.232220 0.718286 0.428534 0.166577 0.651127 0.496605 0.239222 1 0 0 0.500000 0.500000 1 0.500000 1 0.500000 0.917750 0.891836 0.853333 0.877025 0.861635 0.901497 0.500000 0.890470 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.883533 +0.463858 +0.267097 0.495725 0.642588 0.180283 0.619017 0.813172 0.774276 0.653855 1 0.500000 1 0 1 1 0.500000 0.500000 0.868978 0.500000 0.909009 0.844676 0.897431 0.500000 0.912449 0.887051 0.903637 0.500000 0.500000 0.500000 0.840393 0.500000 0.897224 0.500000 +0.532799 +0.294664 0.619427 0.507821 0.746586 0.869169 0.330191 0.125520 0.216015 0.500000 0 0.500000 1 1 1 0 1 0.500000 0.890032 0.863667 0.873273 0.892394 0.856688 0.500000 0.873656 0.859535 0.500000 0.500000 0.871446 0.888899 0.500000 0.873656 0.905458 +0.588491 +0.712296 0.555473 0.831750 0.220451 0.516232 0.509942 0.401389 0.748441 1 0 1 0 0.500000 0.500000 0 1 0.867360 0.500000 0.500000 0.923540 0.884269 0.909774 0.897267 0.500000 0.879695 0.893263 0.858137 0.500000 0.500000 0.885023 0.903556 0.897785 +0.645856 +0.199652 0.554548 0.491492 0.705256 0.631532 0.765791 0.457301 0.457211 0.500000 0 0.500000 1 1 1 0 1 0.883255 0.890868 0.884638 0.874741 0.886576 0.861878 0.899191 0.500000 0.500000 0.500000 0.500000 0.903067 0.500000 0.872662 0.871849 0.500000 +0.636367 +0.710244 0.471081 0.860389 0.761901 0.677953 0.163802 0.413774 0.101369 1 0.500000 0.500000 0 1 1 0.500000 0 0.882541 0.500000 0.874200 0.856942 0.873869 0.901604 0.903489 0.885227 0.887196 0.500000 0.500000 0.870819 0.901622 0.872313 0.886501 0.897523 +0.659218 +0.801631 0.415714 0.711640 0.727730 0.763982 0.443454 0.531305 0.247174 1 0.500000 0.500000 0 0 0.500000 0 0 0.500000 0.894271 0.500000 0.867500 0.870168 0.500000 0.909883 0.893311 0.857421 0.911154 0.881477 0.500000 0.891645 0.500000 0.500000 0.871983 +0.490973 +0.371808 0.384921 0.759388 0.831807 0.380277 0.310570 0.746656 0.453568 0 0.500000 0 1 0.500000 1 0.500000 1 0.919303 0.893916 0.874227 0.500000 0.901493 0.905699 0.500000 0.882007 0.884490 0.500000 0.500000 0.869383 0.884084 0.885854 0.901076 0.892186 +0.708373 +0.154382 0.498420 0.352038 0.106390 0.290171 0.298720 0.790378 0.877958 1 0 0 1 0 1 0 0 0.866599 0.500000 0.893519 0.500000 0.890054 0.500000 0.867505 0.879078 0.500000 0.500000 0.500000 0.500000 0.909241 0.891105 0.877529 0.899725 +0.509156 +0.628742 0.275146 0.573090 0.118150 0.352014 0.491529 0.535097 0.771801 1 1 1 1 0.500000 0.500000 0 0 0.898149 0.840073 0.880332 0.886308 0.886609 0.875698 0.894433 0.910458 0.873246 0.870570 0.879144 0.849796 0.879519 0.500000 0.883097 0.500000 +0.755226 +0.338895 0.815407 0.744655 0.416923 0.219058 0.309058 0.135631 0.554441 0 1 1 0 0 0 1 0.500000 0.500000 0.898954 0.500000 0.853236 0.858134 0.862670 0.841771 0.500000 0.879222 0.500000 0.882918 0.500000 0.500000 0.500000 0.903042 0.500000 +0.353464 +0.784784 0.467054 0.371505 0.888132 0.637310 0.262139 0.370644 0.810802 0 0 0 0 1 0.500000 0 1 0.500000 0.860926 0.500000 0.889018 0.500000 0.500000 0.883729 0.500000 0.500000 0.500000 0.500000 0.884753 0.500000 0.868758 0.838595 0.500000 +0.238977 +0.697678 0.477897 0.208457 0.537974 0.324263 0.481696 0.857862 0.687945 1 0 0 1 0.500000 0.500000 1 0 0.904148 0.863092 0.500000 0.878839 0.869894 0.862963 0.858607 0.500000 0.500000 0.500000 0.878075 0.847220 0.925279 0.868122 0.500000 0.500000 +0.594544 +0.342405 0.604981 0.115852 0.126702 0.886923 0.309543 0.282562 0.425157 0 1 0 0.500000 0.500000 0.500000 0.500000 0 0.889673 0.874176 0.897764 0.897676 0.873245 0.849657 0.873845 0.882295 0.863526 0.500000 0.869667 0.500000 0.500000 0.500000 0.500000 0.500000 +0.716648 +0.481595 0.771067 0.316772 0.193093 0.722166 0.840090 0.395038 0.405505 0 0 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.904945 0.500000 0.500000 0.881236 0.906630 0.500000 0.866974 0.500000 0.862868 0.500000 0.500000 0.500000 0.500000 0.500000 0.909825 0.500000 +0.269076 +0.657518 0.702190 0.314770 0.136851 0.248165 0.709830 0.712199 0.531144 1 1 1 0.500000 0.500000 1 1 1 0.883694 0.901644 0.500000 0.858800 0.500000 0.900991 0.837494 0.870260 0.500000 0.500000 0.884365 0.500000 0.874209 0.879370 0.882361 0.500000 +0.554372 +0.638383 0.705815 0.425517 0.667669 0.121047 0.243638 0.630627 0.752964 1 1 0.500000 1 1 0.500000 1 1 0.883586 0.871313 0.827591 0.882295 0.873266 0.890501 0.847755 0.879095 0.500000 0.500000 0.500000 0.500000 0.908391 0.500000 0.500000 0.500000 +0.575919 +0.506684 0.845511 0.312046 0.753937 0.412027 0.339104 0.328270 0.628248 1 0 1 1 0.500000 0.500000 0 0.500000 0.849094 0.905394 0.887121 0.890841 0.902604 0.866830 0.871400 0.500000 0.500000 0.500000 0.864682 0.895399 0.500000 0.500000 0.500000 0.500000 +0.614137 +0.449536 0.352741 0.723237 0.439581 0.240175 0.816966 0.543313 0.468588 0.500000 0 0.500000 1 1 0 0.500000 1 0.890106 0.867610 0.908516 0.889018 0.890188 0.500000 0.860193 0.500000 0.882262 0.500000 0.500000 0.500000 0.500000 0.500000 0.892384 0.500000 +0.432407 +0.615808 0.483301 0.646502 0.353485 0.420076 0.423407 0.398927 0.168536 1 0 0 1 1 0 0 1 0.875451 0.500000 0.849515 0.838048 0.846426 0.864148 0.875542 0.500000 0.500000 0.882283 0.500000 0.836756 0.883501 0.500000 0.888718 0.862489 +0.529781 +0.739551 0.234756 0.151299 0.682772 0.347583 0.432241 0.877712 0.701454 1 0.500000 0 1 0.500000 0.500000 1 0 0.929461 0.867240 0.500000 0.877806 0.500000 0.500000 0.870777 0.878445 0.891920 0.877257 0.912673 0.500000 0.905114 0.500000 0.500000 0.500000 +0.460144 +0.599596 0.806922 0.538258 0.306118 0.323179 0.669365 0.616269 0.238626 0.500000 0 1 0 1 0 1 1 0.890683 0.899429 0.884897 0.895139 0.888842 0.500000 0.869018 0.500000 0.888936 0.500000 0.500000 0.500000 0.911583 0.907965 0.500000 0.500000 +0.529649 +0.662146 0.884286 0.792101 0.234179 0.839802 0.345444 0.478158 0.593421 0 0 0.500000 0 0 1 1 0 0.500000 0.896403 0.884252 0.500000 0.899752 0.866705 0.891825 0.500000 0.500000 0.500000 0.894108 0.864688 0.500000 0.500000 0.500000 0.895991 +0.392498 +0.429713 0.779951 0.830656 0.228928 0.585442 0.521166 0.242697 0.801702 1 1 1 0 0.500000 0.500000 0.500000 0 0.857641 0.849419 0.866120 0.890498 0.884444 0.500000 0.841271 0.896677 0.858989 0.905870 0.899052 0.500000 0.500000 0.500000 0.500000 0.500000 +0.572181 +0.166483 0.678659 0.829441 0.622371 0.388644 0.145780 0.718758 0.366094 0 0 0 0.500000 0.500000 0 0 1 0.926613 0.862255 0.500000 0.842857 0.871035 0.889023 0.900241 0.500000 0.875804 0.500000 0.893490 0.869566 0.500000 0.500000 0.500000 0.895887 +0.527439 +0.142763 0.424966 0.209112 0.349055 0.374387 0.526082 0.468388 0.395819 1 0 0 0 0 1 1 0 0.876227 0.861232 0.885168 0.500000 0.500000 0.886417 0.500000 0.500000 0.884076 0.924799 0.877113 0.878022 0.871176 0.908290 0.883651 0.500000 +0.576345 +0.540345 0.172410 0.286933 0.290346 0.842236 0.468189 0.253089 0.263548 1 0 1 0 0 0.500000 0 0.500000 0.500000 0.500000 0.875370 0.820200 0.500000 0.887261 0.500000 0.871230 0.500000 0.874920 0.874408 0.500000 0.884075 0.870875 0.871471 0.500000 +0.461235 +0.114813 0.263261 0.833202 0.622294 0.691114 0.548499 0.414633 0.144182 0 1 1 1 0 0 0 0.500000 0.500000 0.890232 0.500000 0.500000 0.867405 0.874120 0.500000 0.858388 0.500000 0.500000 0.906546 0.892082 0.881230 0.500000 0.893564 0.893923 +0.451974 +0.568796 0.761993 0.624463 0.346429 0.238893 0.868198 0.795563 0.830059 0.500000 1 0 1 1 0.500000 0.500000 0.500000 0.871992 0.500000 0.908270 0.500000 0.500000 0.500000 0.899353 0.912208 0.500000 0.895109 0.500000 0.500000 0.893759 0.909040 0.892455 0.500000 +0.438382 +0.512828 0.895157 0.307024 0.359818 0.454992 0.845857 0.526099 0.745992 0.500000 1 1 0 0.500000 0 0.500000 0.500000 0.890824 0.872807 0.869486 0.500000 0.869083 0.833358 0.897015 0.884049 0.889245 0.870594 0.500000 0.500000 0.876955 0.873647 0.500000 0.871884 +0.696620 +0.829558 0.187622 0.769089 0.678057 0.302245 0.829118 0.791409 0.613473 0.500000 0 0.500000 0 1 0.500000 0.500000 0.500000 0.500000 0.864919 0.897632 0.870092 0.873175 0.878056 0.500000 0.915746 0.849127 0.500000 0.500000 0.854625 0.872450 0.902011 0.900649 0.861142 +0.618446 +0.414319 0.463161 0.549589 0.334386 0.220840 0.656929 0.406861 0.712644 1 1 0.500000 0.500000 0 0 1 0.500000 0.884664 0.841526 0.500000 0.877923 0.907901 0.900031 0.857438 0.885026 0.500000 0.856820 0.869613 0.500000 0.500000 0.851050 0.500000 0.860878 +0.696650 +0.701250 0.502749 0.303500 0.324258 0.398498 0.158559 0.301128 0.458129 1 1 1 1 0 0.500000 0 0.500000 0.879393 0.847762 0.500000 0.891711 0.500000 0.886925 0.881642 0.867148 0.876206 0.833014 0.500000 0.500000 0.904790 0.500000 0.500000 0.500000 +0.423953 +0.727545 0.850690 0.142712 0.361042 0.226215 0.597717 0.437465 0.668707 1 0 1 1 0.500000 0.500000 0.500000 1 0.921794 0.888852 0.500000 0.898423 0.889760 0.500000 0.868639 0.911114 0.500000 0.870983 0.500000 0.500000 0.894960 0.500000 0.865963 0.886789 +0.605606 +0.262047 0.420516 0.605101 0.525639 0.209777 0.315725 0.195740 0.404275 0.500000 0 1 0.500000 0 0 1 0 0.881464 0.924963 0.500000 0.915687 0.894445 0.870181 0.861858 0.500000 0.500000 0.859020 0.500000 0.500000 0.500000 0.500000 0.901742 0.500000 +0.481059 +0.190532 0.871099 0.763361 0.400141 0.568944 0.844249 0.685962 0.361807 0 0 1 0 0 1 0.500000 1 0.500000 0.881239 0.877252 0.876405 0.500000 0.500000 0.891642 0.852097 0.500000 0.500000 0.906147 0.500000 0.500000 0.500000 0.885639 0.887050 +0.418249 +0.563021 0.488317 0.149785 0.830336 0.455712 0.148686 0.771518 0.710404 1 0 0.500000 0.500000 0 0 0.500000 0 0.500000 0.887169 0.500000 0.875086 0.874050 0.500000 0.900498 0.912265 0.500000 0.879869 0.500000 0.875034 0.500000 0.918001 0.855834 0.868238 +0.509695 +0.862326 0.506005 0.621799 0.368809 0.379027 0.898866 0.237619 0.265701 0 1 0.500000 0 0 1 0.500000 0.500000 0.865068 0.905747 0.873572 0.876244 0.885439 0.867534 0.880732 0.500000 0.874758 0.886199 0.500000 0.500000 0.907335 0.500000 0.858206 0.500000 +0.633842 +0.267086 0.310334 0.775463 0.601411 0.114692 0.622852 0.469070 0.660986 0.500000 0.500000 0.500000 1 0 1 1 0.500000 0.863997 0.892815 0.881103 0.913406 0.883610 0.880467 0.867536 0.841403 0.500000 0.500000 0.882733 0.500000 0.500000 0.885234 0.845627 0.886403 +0.754475 +0.296386 0.756613 0.599550 0.842449 0.832343 0.582730 0.545213 0.391828 1 0 0.500000 1 1 1 0.500000 0 0.885251 0.500000 0.884776 0.500000 0.872486 0.500000 0.868835 0.885471 0.500000 0.864625 0.500000 0.500000 0.898443 0.500000 0.860851 0.905374 +0.452251 +0.480053 0.449030 0.641922 0.176754 0.507297 0.736154 0.740466 0.412721 1 0.500000 0 0.500000 1 1 1 1 0.870638 0.858384 0.899956 0.500000 0.857709 0.862619 0.870896 0.500000 0.877698 0.891052 0.500000 0.500000 0.913866 0.500000 0.500000 0.883631 +0.544314 +0.539848 0.628129 0.359352 0.634833 0.246103 0.452288 0.198814 0.860447 0 1 1 1 0 0 0.500000 0 0.873825 0.904924 0.857675 0.500000 0.899680 0.874847 0.893371 0.500000 0.864511 0.875221 0.912139 0.869632 0.500000 0.859959 0.861746 0.883550 +0.725998 +0.298053 0.781095 0.859657 0.450121 0.584051 0.346256 0.519763 0.662134 1 0 1 1 0 1 0.500000 1 0.500000 0.903712 0.888952 0.875294 0.881098 0.872634 0.500000 0.914336 0.892844 0.500000 0.500000 0.500000 0.886769 0.500000 0.851405 0.500000 +0.544109 +0.476061 0.555526 0.121232 0.153149 0.572310 0.614736 0.863456 0.297886 0 0 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.890776 0.500000 0.500000 0.500000 0.866603 0.891861 0.893250 0.882016 0.873053 0.500000 0.885288 0.500000 0.500000 0.860266 0.865092 0.500000 +0.473169 +0.713408 0.851692 0.191708 0.635630 0.841861 0.550769 0.171421 0.465409 1 0 1 0.500000 0.500000 0 1 0.500000 0.500000 0.877735 0.858764 0.907483 0.878264 0.898496 0.871188 0.908584 0.895987 0.862945 0.904825 0.500000 0.897219 0.836662 0.900461 0.500000 +0.726956 +0.219024 0.536437 0.894439 0.237680 0.485671 0.472390 0.465253 0.511024 0 1 0.500000 0.500000 1 1 0 1 0.874731 0.885933 0.892335 0.500000 0.865113 0.886651 0.868327 0.500000 0.500000 0.500000 0.500000 0.500000 0.888880 0.874295 0.889901 0.868732 +0.528413 +0.235949 0.192195 0.823647 0.833348 0.688176 0.775560 0.637542 0.162839 0 0.500000 1 0.500000 0 0 0.500000 0 0.901403 0.500000 0.866585 0.500000 0.877320 0.500000 0.880737 0.857338 0.891988 0.500000 0.500000 0.878936 0.875596 0.883513 0.911651 0.859353 +0.549309 +0.381294 0.602841 0.141852 0.305049 0.756189 0.674355 0.482590 0.697689 1 0.500000 0.500000 0.500000 0.500000 1 1 0 0.858909 0.896966 0.877472 0.889491 0.849357 0.500000 0.945458 0.500000 0.500000 0.897415 0.879329 0.500000 0.859419 0.500000 0.500000 0.869955 +0.583724 +0.705013 0.545410 0.507523 0.536520 0.691014 0.471978 0.726269 0.203451 0.500000 1 1 1 1 0.500000 0.500000 1 0.909726 0.913687 0.901298 0.890668 0.901888 0.500000 0.867921 0.890313 0.500000 0.899705 0.500000 0.898529 0.851181 0.880326 0.500000 0.500000 +0.714633 +0.355135 0.151238 0.457674 0.328092 0.847140 0.483432 0.448698 0.666773 0 0 1 1 1 0 0 0.500000 0.862732 0.870820 0.500000 0.868133 0.905157 0.863221 0.861490 0.500000 0.500000 0.500000 0.893170 0.860915 0.500000 0.872870 0.872617 0.884565 +0.617456 +0.694066 0.566283 0.125120 0.686909 0.284411 0.292856 0.633580 0.771506 0.500000 1 1 1 1 0.500000 0 0.500000 0.500000 0.878176 0.886241 0.861499 0.500000 0.876606 0.895246 0.872695 0.869931 0.500000 0.915017 0.908726 0.500000 0.885381 0.854416 0.500000 +0.633737 +0.374346 0.640060 0.897261 0.460181 0.857044 0.531210 0.250300 0.592875 1 0 0.500000 0 1 0.500000 1 0.500000 0.870730 0.898507 0.856801 0.870275 0.872222 0.500000 0.881415 0.500000 0.867616 0.500000 0.844835 0.896166 0.869750 0.500000 0.884741 0.899572 +0.713910 +0.681567 0.896997 0.825716 0.409670 0.724265 0.117111 0.492661 0.353149 0.500000 1 1 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.888751 0.862241 0.881961 0.893503 0.873536 0.910282 0.858416 0.500000 0.500000 0.874261 0.869208 0.500000 0.899758 0.500000 0.500000 +0.608999 +0.598012 0.591325 0.195083 0.555094 0.867459 0.385277 0.348940 0.827224 0 1 1 0.500000 0 1 0.500000 0 0.867277 0.500000 0.888652 0.871782 0.901056 0.918505 0.877086 0.882169 0.853140 0.500000 0.910559 0.500000 0.901627 0.849702 0.878922 0.879416 +0.857542 +0.673183 0.791345 0.339038 0.804115 0.561280 0.833005 0.510043 0.489337 0.500000 1 1 0 0 0 1 1 0.873392 0.500000 0.500000 0.851193 0.500000 0.888534 0.866619 0.863282 0.893941 0.500000 0.500000 0.500000 0.500000 0.500000 0.876606 0.869462 +0.322844 +0.753725 0.849921 0.819748 0.112957 0.273364 0.230684 0.512912 0.708568 0 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.873626 0.500000 0.884031 0.887089 0.500000 0.902450 0.500000 0.500000 0.500000 0.500000 0.889020 0.500000 0.895584 0.500000 0.500000 +0.223110 +0.275012 0.719778 0.705260 0.708005 0.447827 0.428025 0.419380 0.717005 0.500000 0 0.500000 1 0 0 1 0 0.500000 0.851027 0.500000 0.500000 0.871822 0.888165 0.897121 0.879904 0.500000 0.869460 0.864763 0.500000 0.871732 0.500000 0.500000 0.862616 +0.408523 +0.445195 0.188164 0.278782 0.896088 0.753784 0.241234 0.216916 0.301004 1 1 0 0 0 1 0.500000 1 0.500000 0.891788 0.878225 0.500000 0.500000 0.500000 0.857395 0.500000 0.877416 0.500000 0.907739 0.500000 0.500000 0.500000 0.500000 0.500000 +0.189424 +0.873383 0.745247 0.758615 0.651041 0.646704 0.559051 0.173209 0.123307 0.500000 0.500000 0 0 1 0 0.500000 0.500000 0.855534 0.892118 0.500000 0.500000 0.895748 0.852732 0.500000 0.500000 0.854782 0.500000 0.500000 0.500000 0.851411 0.500000 0.899385 0.500000 +0.216498 +0.373946 0.307605 0.514072 0.209564 0.738279 0.462319 0.802531 0.334394 0 0.500000 0 0.500000 1 1 1 1 0.500000 0.906170 0.858073 0.500000 0.896205 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.856110 0.899755 0.500000 +0.176625 +0.837492 0.720329 0.366435 0.466234 0.191498 0.305174 0.461320 0.803379 0 1 1 1 1 0 0 0 0.890128 0.896860 0.903493 0.883480 0.875002 0.916952 0.500000 0.901201 0.500000 0.500000 0.886403 0.500000 0.887269 0.500000 0.500000 0.500000 +0.562781 +0.574897 0.893974 0.414729 0.153234 0.398600 0.271707 0.386341 0.631768 1 0.500000 1 0 0.500000 0 1 0.500000 0.500000 0.897839 0.891835 0.500000 0.838991 0.500000 0.872871 0.860665 0.500000 0.861015 0.863585 0.895367 0.870952 0.878151 0.925933 0.500000 +0.627984 +0.897390 0.231704 0.847432 0.597359 0.816664 0.269209 0.795635 0.431187 1 0 0.500000 1 1 0.500000 1 0.500000 0.879018 0.500000 0.891894 0.888658 0.855249 0.500000 0.870592 0.884384 0.875174 0.887656 0.500000 0.500000 0.877257 0.500000 0.893590 0.500000 +0.481097 +0.331371 0.749144 0.657431 0.842479 0.538828 0.276997 0.494760 0.426846 0.500000 0.500000 0 1 1 1 0.500000 1 0.855567 0.885387 0.911317 0.889460 0.876927 0.873245 0.865629 0.874693 0.500000 0.864268 0.500000 0.907670 0.500000 0.873406 0.500000 0.880432 +0.780533 +0.626728 0.810684 0.562543 0.459414 0.774145 0.851371 0.392214 0.147598 1 0 0 1 0 0 1 0.500000 0.912731 0.910823 0.870525 0.907265 0.871062 0.871634 0.881605 0.861359 0.877079 0.884555 0.886749 0.500000 0.500000 0.926297 0.894331 0.500000 +0.757761 +0.285457 0.278627 0.675544 0.472183 0.182056 0.808263 0.676511 0.723808 0.500000 0.500000 1 0 0 1 0.500000 0 0.920685 0.906047 0.874884 0.500000 0.873943 0.869397 0.872939 0.875607 0.901431 0.500000 0.500000 0.883820 0.898308 0.874388 0.500000 0.500000 +0.726530 +0.557658 0.754089 0.569716 0.214421 0.769984 0.525961 0.827803 0.285241 1 0.500000 0.500000 0 1 0.500000 0 1 0.866815 0.500000 0.912328 0.889290 0.500000 0.897640 0.883532 0.896538 0.881480 0.878113 0.917713 0.500000 0.500000 0.500000 0.500000 0.500000 +0.456721 +0.880426 0.726401 0.818420 0.191338 0.821650 0.868831 0.237052 0.339676 0 0 0.500000 0.500000 1 0 1 0 0.500000 0.500000 0.500000 0.905169 0.872711 0.901915 0.890170 0.868195 0.500000 0.500000 0.500000 0.874858 0.891340 0.500000 0.895540 0.871322 +0.470891 +0.715120 0.830348 0.654001 0.790087 0.787962 0.270147 0.553835 0.505476 0.500000 0 0.500000 0 1 0 1 1 0.869019 0.500000 0.883404 0.500000 0.500000 0.882427 0.840730 0.871330 0.500000 0.500000 0.500000 0.886200 0.500000 0.888842 0.858481 0.881709 +0.455386 +0.411235 0.634176 0.404743 0.308768 0.868556 0.424291 0.851028 0.229095 0 1 1 0.500000 0.500000 0 0 0 0.866857 0.879638 0.500000 0.875235 0.850300 0.847002 0.927318 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.906592 0.500000 0.880907 +0.442582 +0.728231 0.379007 0.567410 0.654446 0.273580 0.652991 0.620934 0.240019 0.500000 1 0.500000 1 0 0.500000 1 0.500000 0.876434 0.500000 0.866507 0.500000 0.850555 0.905012 0.913488 0.500000 0.500000 0.500000 0.500000 0.885897 0.865192 0.500000 0.500000 0.500000 +0.337477 +0.368542 0.683516 0.856745 0.309161 0.261483 0.551792 0.569961 0.333307 0.500000 0.500000 1 0 1 1 0.500000 0 0.500000 0.500000 0.500000 0.886607 0.500000 0.500000 0.500000 0.870601 0.500000 0.500000 0.883399 0.500000 0.897673 0.500000 0.500000 0.879779 +0.173930 +0.414470 0.600551 0.868498 0.238137 0.163571 0.536077 0.452244 0.266485 0.500000 0.500000 1 0.500000 0 0.500000 1 0.500000 0.899367 0.902503 0.500000 0.860320 0.921835 0.500000 0.500000 0.890059 0.890437 0.873426 0.903451 0.500000 0.500000 0.891364 0.500000 0.889140 +0.589362 +0.337618 0.150663 0.386598 0.157133 0.328082 0.680814 0.242359 0.724391 1 0 0.500000 0 1 0 0 0.500000 0.500000 0.500000 0.884799 0.856311 0.500000 0.869299 0.908876 0.896668 0.500000 0.855116 0.882792 0.886889 0.500000 0.864516 0.893878 0.873220 +0.613027 +0.149219 0.123151 0.391266 0.209560 0.669583 0.276230 0.401255 0.886996 1 0 0 0 0.500000 0.500000 0 1 0.881983 0.500000 0.500000 0.500000 0.892635 0.849327 0.500000 0.866602 0.500000 0.500000 0.500000 0.500000 0.867653 0.500000 0.871966 0.888195 +0.371593 +0.623347 0.798650 0.707986 0.125155 0.482865 0.518672 0.722446 0.756905 1 1 1 0 1 1 0.500000 0.500000 0.500000 0.500000 0.883375 0.887745 0.500000 0.877776 0.902565 0.887412 0.500000 0.500000 0.500000 0.869160 0.500000 0.862971 0.500000 0.500000 +0.378193 +0.339072 0.586923 0.612057 0.645654 0.501147 0.573759 0.159496 0.854326 0.500000 1 0 0 0 0.500000 1 0.500000 0.884864 0.907115 0.873416 0.876920 0.896437 0.500000 0.500000 0.861929 0.877933 0.902466 0.500000 0.883472 0.500000 0.500000 0.883212 0.500000 +0.582630 +0.505281 0.463947 0.160124 0.206958 0.135650 0.864410 0.330785 0.509125 0 1 0 0 0.500000 0.500000 0 0.500000 0.887137 0.872221 0.500000 0.500000 0.886594 0.855089 0.871463 0.890888 0.845726 0.869107 0.500000 0.865257 0.854120 0.500000 0.500000 0.894725 +0.546886 +0.556305 0.424309 0.359274 0.123804 0.172445 0.880103 0.897155 0.276332 0.500000 0 0 1 0 0.500000 0 1 0.889430 0.500000 0.886431 0.500000 0.853851 0.907965 0.874009 0.894275 0.888041 0.500000 0.873983 0.500000 0.500000 0.880222 0.882221 0.500000 +0.562356 +0.592591 0.684548 0.592848 0.190453 0.347898 0.122134 0.110560 0.774600 0.500000 0.500000 0 1 1 0.500000 1 0.500000 0.836341 0.500000 0.885779 0.875920 0.899260 0.893658 0.849149 0.500000 0.882702 0.500000 0.500000 0.911832 0.852275 0.500000 0.860461 0.880252 +0.542197 +0.398736 0.158804 0.421555 0.472830 0.662068 0.368742 0.847446 0.828844 0 0.500000 0 1 0 0.500000 0.500000 1 0.892281 0.500000 0.890564 0.500000 0.912490 0.857350 0.872686 0.500000 0.500000 0.896648 0.875880 0.878031 0.500000 0.856739 0.500000 0.500000 +0.472454 +0.664422 0.739904 0.572516 0.882249 0.164489 0.765032 0.489631 0.634534 1 0.500000 1 0.500000 0 0 0 0.500000 0.895794 0.903906 0.868749 0.861860 0.500000 0.885909 0.887797 0.500000 0.500000 0.888919 0.876373 0.857934 0.863536 0.500000 0.500000 0.500000 +0.488777 +0.618029 0.207413 0.588912 0.447139 0.872222 0.433970 0.337710 0.884155 0 1 1 0 0.500000 0 1 0 0.500000 0.500000 0.893223 0.880425 0.868585 0.898287 0.881791 0.892744 0.500000 0.891704 0.500000 0.876124 0.863422 0.847853 0.861956 0.500000 +0.586734 +0.353365 0.802801 0.884977 0.406952 0.645892 0.510132 0.395587 0.834222 0 1 0.500000 1 1 0 0 0.500000 0.500000 0.895239 0.905051 0.500000 0.923019 0.897896 0.905332 0.885959 0.879861 0.878359 0.500000 0.500000 0.500000 0.903382 0.500000 0.876050 +0.547194 +0.319182 0.690453 0.650006 0.845261 0.895073 0.489080 0.174743 0.309622 1 0 0.500000 0.500000 1 0.500000 0 0 0.876089 0.887250 0.500000 0.500000 0.895165 0.500000 0.868205 0.500000 0.914875 0.500000 0.900658 0.883849 0.500000 0.890074 0.500000 0.877313 +0.417794 +0.759165 0.284028 0.258435 0.514594 0.176043 0.550765 0.100301 0.355221 1 0 0 0 0 1 1 0 0.883919 0.893411 0.883268 0.500000 0.913376 0.500000 0.892111 0.850280 0.896453 0.886940 0.882049 0.500000 0.914529 0.873701 0.500000 0.854737 +0.657203 +0.462592 0.580374 0.154046 0.456172 0.677508 0.672670 0.167863 0.679787 0.500000 0 0 0.500000 0.500000 1 1 0 0.500000 0.892594 0.866186 0.500000 0.858504 0.500000 0.931152 0.900847 0.893119 0.500000 0.500000 0.863093 0.500000 0.500000 0.500000 0.905805 +0.405968 +0.422296 0.125072 0.690961 0.386126 0.227105 0.348243 0.317248 0.181168 0 0.500000 0.500000 0 0 0 0.500000 0 0.869747 0.877665 0.861509 0.912243 0.878771 0.855771 0.500000 0.882526 0.868188 0.500000 0.500000 0.895271 0.922965 0.911177 0.500000 0.900475 +0.656076 +0.749204 0.868391 0.852109 0.798475 0.165678 0.756778 0.173197 0.718876 1 0 1 0.500000 0.500000 0 1 1 0.873008 0.878196 0.855458 0.893213 0.884332 0.867450 0.917326 0.891704 0.500000 0.500000 0.896111 0.880367 0.880020 0.500000 0.869949 0.500000 +0.752414 +0.314398 0.283043 0.505639 0.871750 0.501663 0.454066 0.488319 0.175468 0.500000 1 0.500000 0 1 1 1 0 0.884526 0.894514 0.893649 0.875087 0.905903 0.869485 0.880436 0.500000 0.500000 0.500000 0.500000 0.907802 0.500000 0.500000 0.500000 0.500000 +0.564559 +0.887590 0.327115 0.425689 0.360364 0.845078 0.220049 0.155507 0.212263 0.500000 1 0.500000 0 0 1 1 0 0.500000 0.863979 0.869044 0.890034 0.867267 0.907678 0.500000 0.500000 0.878829 0.876962 0.907924 0.500000 0.868436 0.889501 0.500000 0.500000 +0.487146 +0.328890 0.660867 0.192675 0.891125 0.532439 0.894653 0.633828 0.141790 1 0.500000 1 0.500000 0.500000 0 0 1 0.886966 0.500000 0.897997 0.875429 0.867701 0.884106 0.500000 0.500000 0.500000 0.500000 0.500000 0.888012 0.500000 0.500000 0.500000 0.880762 +0.347765 +0.337593 0.533192 0.750518 0.560278 0.796205 0.423943 0.609025 0.889290 0 1 1 0.500000 1 1 0 1 0.875483 0.867676 0.500000 0.905508 0.885045 0.862057 0.855823 0.500000 0.904542 0.500000 0.875853 0.860353 0.500000 0.500000 0.500000 0.500000 +0.534407 +0.620077 0.236751 0.870856 0.675610 0.782012 0.282256 0.878824 0.200579 0 1 0.500000 0 1 0 0.500000 0 0.862912 0.857711 0.500000 0.500000 0.883421 0.871114 0.500000 0.500000 0.500000 0.889753 0.861147 0.500000 0.500000 0.500000 0.500000 0.867371 +0.258739 +0.429567 0.730980 0.173062 0.851865 0.688441 0.433159 0.310617 0.739117 0 0 0 1 0 1 0 0 0.861026 0.876809 0.866153 0.864810 0.500000 0.883739 0.852028 0.866868 0.857504 0.500000 0.500000 0.880653 0.874315 0.865784 0.883146 0.500000 +0.665090 +0.249916 0.545713 0.791789 0.598137 0.292166 0.241399 0.598457 0.872751 0.500000 0.500000 0 0.500000 0 1 0 1 0.500000 0.901570 0.869334 0.500000 0.872138 0.921213 0.900595 0.500000 0.500000 0.841042 0.500000 0.500000 0.500000 0.855926 0.857490 0.856566 +0.478539 +0.710327 0.269753 0.346814 0.304726 0.127250 0.488548 0.823048 0.376458 0 0 0.500000 0 1 0 1 1 0.891968 0.899102 0.857872 0.500000 0.877746 0.500000 0.851378 0.874694 0.896453 0.500000 0.500000 0.500000 0.500000 0.500000 0.890882 0.500000 +0.423092 +0.243107 0.502399 0.822703 0.177945 0.514558 0.380231 0.336799 0.773848 1 0 1 0 1 0.500000 0.500000 0 0.500000 0.887769 0.902882 0.883232 0.500000 0.897374 0.897342 0.852518 0.887657 0.500000 0.906357 0.859415 0.898642 0.896264 0.879930 0.880029 +0.753965 +0.546885 0.497047 0.462045 0.190326 0.611237 0.453669 0.212758 0.819384 0.500000 0.500000 0.500000 0.500000 0 0 1 0.500000 0.876715 0.500000 0.500000 0.500000 0.500000 0.904494 0.861636 0.905871 0.898643 0.500000 0.500000 0.875678 0.880399 0.500000 0.864678 0.889830 +0.499054 +0.657774 0.202987 0.601952 0.409377 0.604020 0.771843 0.565609 0.789732 0.500000 0 0 0 0.500000 1 0.500000 0 0.871949 0.894570 0.500000 0.876596 0.870960 0.919191 0.500000 0.879774 0.500000 0.500000 0.500000 0.870038 0.500000 0.500000 0.500000 0.874557 +0.446052 +0.889887 0.539153 0.142207 0.679292 0.263693 0.885842 0.543494 0.302834 0 1 1 0 0.500000 1 0 1 0.887398 0.500000 0.876949 0.500000 0.500000 0.879323 0.863254 0.500000 0.500000 0.900498 0.500000 0.893353 0.500000 0.894401 0.500000 0.897632 +0.346074 +0.508735 0.108221 0.671118 0.483501 0.805980 0.706891 0.111355 0.542915 0 1 0 0.500000 0 0.500000 0 0 0.500000 0.861723 0.500000 0.500000 0.500000 0.881781 0.887410 0.879897 0.882035 0.867633 0.873290 0.901856 0.882594 0.911407 0.878246 0.907183 +0.631769 +0.389761 0.517790 0.290656 0.463214 0.631890 0.368009 0.533474 0.704361 1 0 0 0 0.500000 0.500000 0.500000 0 0.878531 0.500000 0.911521 0.901448 0.500000 0.500000 0.887406 0.893765 0.913170 0.500000 0.890243 0.853054 0.500000 0.500000 0.886898 0.500000 +0.514364 +0.227052 0.271095 0.488104 0.559078 0.619287 0.556310 0.502760 0.494063 1 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.872380 0.894755 0.870356 0.884942 0.900796 0.910705 0.902394 0.500000 0.895067 0.855136 0.886350 0.892410 0.872507 0.856319 0.500000 +0.850726 +0.838184 0.359874 0.606177 0.222477 0.174537 0.848426 0.492745 0.172777 1 0 0 0.500000 1 0 1 1 0.898783 0.500000 0.500000 0.906590 0.500000 0.500000 0.500000 0.500000 0.863401 0.500000 0.909141 0.900289 0.907487 0.500000 0.874229 0.500000 +0.386560 +0.875598 0.372605 0.178274 0.449460 0.682459 0.687919 0.450946 0.854563 0.500000 0 1 0 0 0 0 1 0.883740 0.880630 0.500000 0.902076 0.892607 0.869555 0.875943 0.895911 0.864640 0.881646 0.866236 0.878473 0.890227 0.500000 0.852959 0.881677 +0.668627 +0.362293 0.462995 0.153828 0.784784 0.469708 0.189123 0.389457 0.211434 0 0 1 1 0 0.500000 1 1 0.917520 0.873051 0.864105 0.883886 0.859479 0.850665 0.876070 0.892983 0.500000 0.855416 0.856128 0.874724 0.500000 0.889327 0.894144 0.909744 +0.802071 +0.281807 0.531888 0.437624 0.138012 0.566698 0.692573 0.276340 0.642674 1 0 0.500000 0.500000 0 0.500000 1 0.500000 0.892677 0.858949 0.500000 0.867592 0.500000 0.878701 0.500000 0.878082 0.897648 0.856855 0.849976 0.875277 0.897816 0.857688 0.500000 0.500000 +0.603107 +0.269899 0.396837 0.240998 0.257668 0.428126 0.514972 0.136652 0.110563 1 0 1 0.500000 0.500000 1 0 1 0.500000 0.500000 0.874261 0.876161 0.500000 0.901916 0.500000 0.896155 0.892893 0.850004 0.500000 0.879712 0.500000 0.865605 0.850127 0.875522 +0.620920 +0.639896 0.529706 0.572768 0.307493 0.238480 0.326020 0.420573 0.774744 0.500000 0 0.500000 1 0 0 1 1 0.873170 0.859235 0.500000 0.889351 0.870604 0.500000 0.500000 0.863507 0.885244 0.500000 0.500000 0.883201 0.500000 0.886400 0.884090 0.898299 +0.544054 +0.535357 0.350455 0.689283 0.186510 0.466990 0.106912 0.276347 0.765511 0.500000 0 0.500000 1 1 0.500000 0.500000 1 0.890534 0.886370 0.867505 0.500000 0.901444 0.883107 0.879329 0.866260 0.893880 0.500000 0.500000 0.857140 0.891477 0.500000 0.500000 0.500000 +0.563862 +0.109108 0.376113 0.729048 0.508919 0.803293 0.351889 0.804575 0.289431 1 1 0 0 0 1 1 0.500000 0.891632 0.500000 0.500000 0.895902 0.900853 0.867985 0.883980 0.898144 0.872671 0.900854 0.500000 0.857806 0.911433 0.893764 0.500000 0.500000 +0.589645 +0.767109 0.199702 0.598807 0.346235 0.171540 0.872404 0.285653 0.372983 0 0 1 0 1 1 1 1 0.838686 0.899453 0.888647 0.500000 0.833435 0.882857 0.899429 0.883677 0.500000 0.500000 0.872266 0.500000 0.500000 0.500000 0.886088 0.911459 +0.549805 +0.371447 0.705184 0.227730 0.465061 0.482515 0.229279 0.895027 0.516079 0 0.500000 0.500000 0 0.500000 0 1 1 0.500000 0.857303 0.881518 0.887490 0.903398 0.867761 0.887159 0.500000 0.500000 0.500000 0.500000 0.842614 0.500000 0.500000 0.884567 0.500000 +0.450981 +0.451563 0.811479 0.322606 0.640351 0.181998 0.644812 0.753870 0.890709 1 0.500000 0.500000 1 0 0.500000 1 0 0.884238 0.878651 0.922668 0.890066 0.500000 0.893053 0.887182 0.894908 0.500000 0.845429 0.500000 0.500000 0.500000 0.500000 0.500000 0.905543 +0.553872 +0.404085 0.452100 0.237123 0.730023 0.895214 0.458617 0.176402 0.194907 1 0 0 0.500000 0 1 0.500000 0 0.878796 0.865960 0.906312 0.857648 0.872863 0.500000 0.500000 0.891677 0.500000 0.500000 0.895733 0.500000 0.885746 0.500000 0.890199 0.500000 +0.525901 +0.355239 0.298791 0.383004 0.542727 0.218557 0.692981 0.732997 0.477945 0 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.857253 0.865923 0.899227 0.870861 0.500000 0.909835 0.876038 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.515693 +0.422376 0.675691 0.535367 0.512273 0.364591 0.682151 0.317118 0.402313 0 1 1 1 1 0.500000 0 1 0.500000 0.889056 0.850527 0.874639 0.886825 0.876956 0.862570 0.891916 0.500000 0.500000 0.856401 0.500000 0.920562 0.500000 0.500000 0.913954 +0.602091 +0.841757 0.404230 0.493388 0.577224 0.804902 0.181245 0.782304 0.378145 0.500000 1 0.500000 0 0.500000 1 1 0.500000 0.883531 0.500000 0.500000 0.892061 0.500000 0.894099 0.909118 0.861481 0.880517 0.875247 0.905766 0.883433 0.923628 0.500000 0.878818 0.885689 +0.793568 +0.172580 0.751428 0.657418 0.621550 0.184914 0.845478 0.551916 0.247054 0.500000 0.500000 1 0 0 1 0.500000 0 0.883527 0.870682 0.895290 0.886990 0.896483 0.902637 0.898192 0.500000 0.890971 0.882403 0.872079 0.500000 0.500000 0.852105 0.500000 0.881967 +0.719447 +0.280324 0.404094 0.607688 0.808352 0.563828 0.459836 0.671297 0.285027 0 0.500000 1 0.500000 0.500000 0.500000 0 0.500000 0.909747 0.915391 0.895520 0.500000 0.852418 0.916367 0.826595 0.843891 0.500000 0.899256 0.848247 0.879427 0.896426 0.878051 0.873269 0.500000 +0.734397 +0.338910 0.252177 0.131052 0.393614 0.469769 0.409738 0.264103 0.585807 0 0 0 0.500000 0 0 0 0 0.881224 0.899747 0.500000 0.867130 0.913457 0.887955 0.889320 0.857812 0.500000 0.862515 0.864981 0.500000 0.872522 0.907332 0.882954 0.843328 +0.804656 +0.483187 0.327069 0.447867 0.303597 0.361252 0.568417 0.790171 0.597322 0 1 1 0.500000 0 0 0 0 0.857234 0.877021 0.876561 0.871658 0.856564 0.878643 0.890855 0.895160 0.870177 0.875929 0.873726 0.888192 0.902950 0.905156 0.500000 0.864874 +0.800911 +0.463224 0.807526 0.286436 0.725873 0.747162 0.150945 0.339615 0.108174 1 0 0.500000 0.500000 1 0 0 0.500000 0.876730 0.889692 0.500000 0.884704 0.896155 0.500000 0.888812 0.906013 0.500000 0.858221 0.883751 0.880590 0.500000 0.870657 0.869632 0.913011 +0.686036 +0.527481 0.777023 0.426015 0.240432 0.340947 0.898039 0.746321 0.415396 0 1 0.500000 0 0.500000 1 0.500000 0 0.887388 0.860011 0.867730 0.893857 0.882394 0.500000 0.878830 0.905626 0.500000 0.884528 0.500000 0.902270 0.880273 0.898585 0.500000 0.877779 +0.675567 +0.645968 0.182963 0.859609 0.447949 0.886918 0.223152 0.315842 0.551368 1 1 1 0.500000 0.500000 0.500000 1 0.500000 0.914464 0.866606 0.500000 0.913484 0.500000 0.500000 0.842706 0.843325 0.881122 0.873396 0.889143 0.879311 0.864149 0.891071 0.500000 0.500000 +0.673891 +0.119403 0.608678 0.658852 0.724419 0.311058 0.156242 0.563200 0.308113 0 1 0.500000 0.500000 0 1 1 0 0.896643 0.828383 0.858208 0.500000 0.894299 0.500000 0.865231 0.892460 0.500000 0.500000 0.500000 0.500000 0.500000 0.842116 0.890932 0.500000 +0.504062 +0.542633 0.228878 0.547914 0.188921 0.196989 0.599944 0.257953 0.420055 1 0.500000 1 0 0.500000 0.500000 1 1 0.500000 0.864727 0.500000 0.891230 0.500000 0.848278 0.884855 0.843182 0.500000 0.500000 0.500000 0.896810 0.500000 0.500000 0.500000 0.500000 +0.380063 +0.400875 0.105193 0.177892 0.427987 0.579590 0.565900 0.886904 0.798404 0.500000 0.500000 1 0.500000 0 1 1 0.500000 0.500000 0.500000 0.897231 0.905827 0.500000 0.847505 0.892121 0.888473 0.500000 0.500000 0.500000 0.858425 0.500000 0.905312 0.879009 0.904297 +0.560198 +0.839590 0.795635 0.430974 0.385191 0.511348 0.829686 0.738803 0.466459 1 1 0.500000 0.500000 0 0 0 0.500000 0.500000 0.926039 0.902241 0.893352 0.875500 0.500000 0.864047 0.871467 0.500000 0.500000 0.500000 0.865306 0.878849 0.500000 0.500000 0.878167 +0.483973 +0.821377 0.281007 0.680413 0.695321 0.859995 0.539716 0.809585 0.489932 1 0 1 0.500000 0 0.500000 0 0.500000 0.923268 0.500000 0.884675 0.500000 0.882284 0.862420 0.877278 0.910212 0.500000 0.914369 0.500000 0.500000 0.500000 0.886134 0.910115 0.898130 +0.523930 +0.256527 0.443785 0.501013 0.724253 0.726586 0.736746 0.297186 0.597257 1 1 0.500000 1 0.500000 0.500000 0.500000 0 0.889713 0.887389 0.896253 0.911093 0.500000 0.878610 0.875419 0.500000 0.500000 0.879439 0.500000 0.500000 0.500000 0.873661 0.893513 0.897127 +0.638960 +0.325673 0.191932 0.396251 0.790905 0.143958 0.495171 0.132696 0.825631 0.500000 0 0 1 0 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.912433 0.878495 0.500000 0.906901 0.500000 0.899948 0.874032 0.867280 0.878449 0.881501 0.500000 0.500000 0.500000 +0.380146 +0.735046 0.526023 0.264803 0.347400 0.548896 0.693162 0.579395 0.498905 0.500000 0 0 0 0.500000 1 0 0.500000 0.859962 0.909000 0.500000 0.894148 0.893636 0.914119 0.871789 0.870830 0.500000 0.853949 0.500000 0.500000 0.921634 0.869890 0.500000 0.879873 +0.664626 +0.280751 0.381238 0.462768 0.348891 0.816168 0.736943 0.404866 0.780965 0 0.500000 0.500000 1 1 1 0.500000 0 0.500000 0.870023 0.500000 0.896675 0.900057 0.908839 0.863077 0.500000 0.500000 0.905786 0.500000 0.894721 0.500000 0.500000 0.864653 0.500000 +0.458960 +0.852028 0.238853 0.200201 0.182270 0.404599 0.289537 0.854557 0.347452 0.500000 1 0 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.874135 0.500000 0.846156 0.890474 0.888658 0.885542 0.855794 0.835347 0.500000 0.500000 0.867402 0.872232 0.500000 0.500000 0.926612 +0.591872 +0.592526 0.379258 0.784564 0.770979 0.440907 0.123157 0.492928 0.832813 0.500000 0 1 0 0.500000 1 1 0.500000 0.890014 0.500000 0.886253 0.500000 0.894617 0.920496 0.859885 0.500000 0.500000 0.500000 0.500000 0.873405 0.853374 0.879789 0.500000 0.500000 +0.411089 +0.887692 0.436401 0.383850 0.367216 0.800810 0.210913 0.216969 0.394080 0 0.500000 0.500000 1 0.500000 0 1 0 0.860612 0.500000 0.882276 0.500000 0.885402 0.867804 0.854021 0.500000 0.879966 0.500000 0.500000 0.889590 0.500000 0.500000 0.872370 0.888132 +0.454002 +0.782425 0.825097 0.408219 0.331225 0.695934 0.758971 0.229573 0.236916 0.500000 0.500000 0.500000 0 1 1 1 0 0.896702 0.850492 0.883188 0.887866 0.870813 0.500000 0.893659 0.867591 0.500000 0.880637 0.902611 0.500000 0.500000 0.917036 0.500000 0.500000 +0.544511 +0.257238 0.395039 0.427782 0.329269 0.627080 0.333530 0.235084 0.859629 1 1 0.500000 0 1 0 0 0.500000 0.876263 0.895022 0.500000 0.877612 0.886290 0.857967 0.878644 0.851181 0.868932 0.500000 0.500000 0.874805 0.500000 0.871199 0.867314 0.868319 +0.718410 +0.739442 0.803906 0.242983 0.809572 0.271082 0.274431 0.567001 0.185023 0 1 0 0 0.500000 0 0 1 0.879500 0.500000 0.500000 0.891253 0.500000 0.500000 0.892905 0.872491 0.917880 0.500000 0.885188 0.500000 0.871704 0.871437 0.500000 0.500000 +0.358464 +0.287844 0.393477 0.572911 0.320595 0.432083 0.612770 0.632289 0.683948 0 1 0 1 0 0.500000 1 0 0.889330 0.500000 0.896686 0.849303 0.500000 0.500000 0.500000 0.845459 0.500000 0.500000 0.854423 0.862514 0.907810 0.500000 0.500000 0.880393 +0.393169 +0.489084 0.228332 0.175165 0.197238 0.784491 0.335446 0.433368 0.622152 1 0 0 1 0 0 0 0.500000 0.900106 0.500000 0.500000 0.850434 0.500000 0.500000 0.890941 0.913397 0.500000 0.868906 0.857440 0.500000 0.500000 0.907216 0.500000 0.854828 +0.387758 +0.543811 0.825535 0.562727 0.348276 0.866527 0.724061 0.690921 0.511149 1 0 0.500000 0 0.500000 1 0.500000 0.500000 0.898683 0.899998 0.885702 0.500000 0.500000 0.888076 0.873349 0.886263 0.869557 0.884021 0.500000 0.886658 0.500000 0.900382 0.500000 0.858635 +0.587630 +0.813829 0.629717 0.660163 0.361446 0.627875 0.890644 0.452583 0.355397 0.500000 0.500000 0 1 0.500000 1 0 1 0.877949 0.500000 0.866387 0.915658 0.871061 0.500000 0.859845 0.500000 0.851311 0.500000 0.500000 0.870520 0.500000 0.869235 0.901750 0.500000 +0.475142 +0.166855 0.529386 0.798694 0.654196 0.874488 0.125673 0.390690 0.134358 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.837538 0.874592 0.876122 0.895060 0.889082 0.904862 0.895542 0.872349 0.879619 0.873143 0.873494 0.500000 0.500000 0.918302 0.877237 0.500000 +0.781739 +0.869605 0.445355 0.475802 0.207533 0.208573 0.878287 0.772699 0.553174 0.500000 0 0.500000 0.500000 0.500000 1 1 1 0.869895 0.500000 0.877151 0.500000 0.500000 0.858982 0.500000 0.500000 0.500000 0.500000 0.878990 0.500000 0.500000 0.867043 0.892585 0.500000 +0.203882 +0.648535 0.129180 0.120152 0.390112 0.808322 0.869978 0.320174 0.570982 1 0.500000 0 1 0 0.500000 1 0 0.500000 0.889993 0.877611 0.868738 0.864966 0.500000 0.860099 0.897906 0.500000 0.888070 0.870463 0.500000 0.866840 0.500000 0.882959 0.894157 +0.661581 +0.373780 0.718331 0.382989 0.304123 0.399703 0.402402 0.174695 0.296625 1 1 0 0 0.500000 1 0 0 0.897412 0.500000 0.889389 0.500000 0.869374 0.500000 0.890704 0.500000 0.500000 0.841806 0.500000 0.872619 0.880527 0.860630 0.500000 0.900674 +0.473790 +0.805000 0.235433 0.314436 0.123528 0.337300 0.393381 0.560779 0.419921 0 0.500000 0.500000 0 1 1 0 0 0.890250 0.500000 0.910264 0.500000 0.872181 0.845587 0.877975 0.900729 0.893851 0.500000 0.500000 0.889985 0.500000 0.881268 0.500000 0.500000 +0.484998 +0.644562 0.555423 0.802105 0.373066 0.716205 0.660598 0.464513 0.873351 0 0 1 1 0 1 1 1 0.889153 0.890227 0.883971 0.889080 0.500000 0.901743 0.906486 0.885857 0.897875 0.887434 0.500000 0.876398 0.500000 0.500000 0.888871 0.500000 +0.626694 +0.458474 0.168116 0.123351 0.559742 0.578807 0.204740 0.459930 0.646451 0 1 1 0 1 1 1 0 0.878692 0.500000 0.831277 0.500000 0.875080 0.855650 0.875790 0.500000 0.500000 0.500000 0.865200 0.822374 0.887467 0.500000 0.500000 0.864394 +0.445226 +0.673254 0.376320 0.212465 0.694738 0.660454 0.454887 0.682526 0.220589 0.500000 0.500000 1 1 1 1 1 1 0.863014 0.872119 0.500000 0.900058 0.893680 0.875042 0.869392 0.899557 0.899837 0.845187 0.904353 0.500000 0.500000 0.500000 0.500000 0.889648 +0.620959 +0.323103 0.188476 0.720941 0.253659 0.238948 0.201877 0.348458 0.740512 0.500000 0 0 0 1 1 0.500000 1 0.864400 0.500000 0.904096 0.894253 0.500000 0.848080 0.907276 0.893987 0.884264 0.871651 0.901277 0.500000 0.859036 0.900194 0.926424 0.869085 +0.710547 +0.870173 0.402410 0.299034 0.463773 0.429149 0.105298 0.342488 0.390004 0.500000 0 0.500000 0 0.500000 0 0.500000 1 0.867852 0.884080 0.500000 0.500000 0.857494 0.862884 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.877832 0.500000 +0.216769 +0.655943 0.629897 0.481110 0.621518 0.459821 0.406966 0.875155 0.125483 0.500000 0 0.500000 0.500000 0 1 1 1 0.885875 0.945167 0.910450 0.891799 0.500000 0.500000 0.874499 0.894560 0.885475 0.500000 0.895154 0.500000 0.868823 0.500000 0.500000 0.500000 +0.481562 +0.319162 0.356205 0.534150 0.853160 0.865239 0.665905 0.865814 0.728153 1 0 1 0 1 0 0.500000 0 0.881881 0.500000 0.500000 0.891096 0.856178 0.865185 0.907935 0.893422 0.500000 0.500000 0.909753 0.500000 0.500000 0.879233 0.500000 0.500000 +0.396347 +0.549050 0.891191 0.853087 0.432692 0.453186 0.103800 0.770017 0.267890 0 0.500000 0 0 0.500000 0 1 0 0.880276 0.898851 0.898494 0.888347 0.500000 0.915675 0.500000 0.905856 0.885839 0.919867 0.500000 0.500000 0.892539 0.500000 0.500000 0.500000 +0.527593 +0.649977 0.362843 0.105812 0.177020 0.180611 0.537108 0.172231 0.485164 1 0.500000 1 0.500000 0 0 0.500000 0 0.853272 0.500000 0.851688 0.887130 0.888986 0.892081 0.918001 0.880407 0.859235 0.897575 0.854707 0.875327 0.931709 0.500000 0.500000 0.500000 +0.701301 +0.292139 0.584033 0.835348 0.702207 0.587347 0.534936 0.470326 0.176625 1 1 1 0 0 0.500000 0 1 0.891807 0.500000 0.500000 0.500000 0.871622 0.854298 0.500000 0.872170 0.947888 0.500000 0.500000 0.915015 0.916601 0.500000 0.867117 0.500000 +0.404485 +0.575031 0.737568 0.510302 0.837674 0.582299 0.494977 0.879037 0.568351 0.500000 1 1 1 1 0.500000 0.500000 1 0.900054 0.883711 0.888986 0.875730 0.876397 0.906897 0.500000 0.905964 0.876435 0.500000 0.872321 0.500000 0.858528 0.884308 0.898215 0.886513 +0.783432 +0.626744 0.292158 0.892786 0.453706 0.834409 0.118511 0.815559 0.897811 0 0.500000 0 0.500000 1 0 1 1 0.500000 0.870009 0.876808 0.901292 0.870180 0.866691 0.500000 0.900047 0.879839 0.500000 0.500000 0.880821 0.894787 0.500000 0.500000 0.500000 +0.397288 +0.745510 0.392993 0.425191 0.790870 0.355358 0.706430 0.372109 0.633430 1 0 1 0.500000 0 1 0 0.500000 0.874964 0.500000 0.880850 0.500000 0.871558 0.923965 0.500000 0.923231 0.500000 0.857866 0.895785 0.500000 0.873995 0.500000 0.880089 0.861827 +0.523966 +0.851052 0.629217 0.246578 0.440444 0.336113 0.455862 0.276240 0.573735 0.500000 0 1 1 1 0.500000 1 0.500000 0.873125 0.902851 0.500000 0.877483 0.873212 0.883632 0.877575 0.500000 0.865143 0.872612 0.500000 0.500000 0.886943 0.500000 0.894886 0.854283 +0.613577 +0.180419 0.499051 0.548685 0.357096 0.312568 0.733620 0.555068 0.434385 0 1 0.500000 0 0.500000 1 1 0 0.871091 0.876374 0.869266 0.925112 0.891913 0.876985 0.874010 0.500000 0.500000 0.500000 0.500000 0.899524 0.869627 0.896824 0.875602 0.861750 +0.688081 +0.361547 0.712786 0.787517 0.802219 0.691159 0.502554 0.217445 0.405765 1 0.500000 0 0.500000 0 0.500000 1 0.500000 0.857572 0.855339 0.911989 0.901482 0.880532 0.908939 0.500000 0.862116 0.896759 0.500000 0.500000 0.500000 0.500000 0.500000 0.888726 0.500000 +0.557617 +0.710908 0.437175 0.600561 0.227542 0.496452 0.872686 0.240598 0.734936 0 0.500000 0 0 0.500000 1 1 1 0.871607 0.874939 0.871396 0.856328 0.500000 0.902744 0.500000 0.500000 0.500000 0.500000 0.884833 0.874103 0.866868 0.845502 0.889591 0.500000 +0.495357 +0.572353 0.539627 0.103854 0.871796 0.472761 0.293566 0.556051 0.154905 0.500000 0 0 0 0 1 1 1 0.907803 0.500000 0.500000 0.500000 0.884625 0.886478 0.500000 0.896904 0.500000 0.500000 0.500000 0.882607 0.500000 0.500000 0.500000 0.500000 +0.262335 +0.896304 0.381732 0.761694 0.388683 0.787717 0.163832 0.128073 0.722964 1 1 0 0 0 0 0.500000 0.500000 0.500000 0.889000 0.911851 0.881091 0.845238 0.500000 0.500000 0.500000 0.500000 0.887335 0.500000 0.889865 0.500000 0.500000 0.906173 0.869174 +0.296353 +0.769099 0.847056 0.676627 0.268204 0.698898 0.176091 0.554908 0.144957 0.500000 0.500000 0 0 0.500000 0 0.500000 0 0.878792 0.500000 0.885237 0.500000 0.904389 0.876283 0.500000 0.893982 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.307989 +0.218350 0.401237 0.590971 0.656722 0.122042 0.155253 0.743498 0.175026 0 0.500000 1 0.500000 0 0 0 1 0.500000 0.500000 0.859299 0.896468 0.500000 0.878659 0.883230 0.875519 0.500000 0.500000 0.879227 0.500000 0.500000 0.500000 0.877025 0.500000 +0.397924 +0.813869 0.501683 0.789423 0.829926 0.761282 0.659434 0.113153 0.368510 0 0 0 1 0 0.500000 0.500000 1 0.916940 0.896333 0.878818 0.500000 0.884286 0.877191 0.889450 0.850232 0.896444 0.500000 0.500000 0.872674 0.500000 0.500000 0.500000 0.500000 +0.440943 +0.369864 0.500400 0.817163 0.658351 0.297817 0.816406 0.741709 0.501519 0.500000 0 1 1 1 1 0 0.500000 0.882344 0.899897 0.884004 0.864446 0.500000 0.500000 0.868987 0.870297 0.500000 0.500000 0.896861 0.898014 0.500000 0.500000 0.500000 0.871909 +0.504792 +0.240852 0.192406 0.361473 0.269871 0.713537 0.614275 0.313328 0.698259 1 0.500000 0.500000 1 1 0 0.500000 0 0.882401 0.904659 0.500000 0.500000 0.888260 0.916087 0.890160 0.856538 0.500000 0.878084 0.869542 0.500000 0.908539 0.874884 0.874417 0.900782 +0.714490 +0.306220 0.434662 0.763337 0.797095 0.183315 0.379124 0.138008 0.501507 0 1 0 1 0 0.500000 0 0 0.878977 0.870911 0.879663 0.891515 0.895201 0.894661 0.500000 0.500000 0.900845 0.500000 0.869520 0.883916 0.500000 0.500000 0.500000 0.500000 +0.445501 +0.589474 0.292302 0.126004 0.352040 0.129080 0.844526 0.549670 0.108840 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.886305 0.882661 0.883494 0.891105 0.870298 0.877354 0.889436 0.500000 0.893158 0.500000 0.889220 0.500000 0.900755 0.500000 0.500000 0.882648 +0.665154 +0.805437 0.383047 0.473003 0.356954 0.323353 0.393347 0.775761 0.822872 0.500000 1 0.500000 0.500000 0 1 1 0.500000 0.500000 0.878340 0.879397 0.894209 0.500000 0.500000 0.845712 0.891529 0.892393 0.884485 0.500000 0.928898 0.856371 0.500000 0.500000 0.500000 +0.441387 +0.627998 0.554138 0.800574 0.250163 0.688836 0.666076 0.543601 0.499004 0.500000 0.500000 0.500000 0 0 1 0.500000 1 0.893335 0.872478 0.889602 0.862095 0.500000 0.883445 0.872190 0.500000 0.889898 0.500000 0.890985 0.500000 0.500000 0.500000 0.879097 0.900072 +0.492881 +0.279663 0.490011 0.615041 0.393440 0.750646 0.308905 0.759641 0.291161 0 0 0.500000 0 0.500000 0 0 1 0.895337 0.500000 0.880369 0.863881 0.887038 0.896387 0.500000 0.905335 0.882355 0.500000 0.500000 0.866177 0.888745 0.879636 0.886432 0.894408 +0.662213 +0.635540 0.125423 0.188938 0.484192 0.415848 0.555341 0.212217 0.524654 0.500000 1 0.500000 0.500000 1 0 0 0.500000 0.836204 0.864104 0.889609 0.862546 0.854659 0.888135 0.890491 0.875102 0.500000 0.500000 0.893154 0.879955 0.500000 0.881576 0.500000 0.500000 +0.711650 +0.633091 0.555309 0.472829 0.645526 0.750473 0.600037 0.225926 0.531913 1 1 0 0.500000 0 0 0.500000 1 0.860265 0.883374 0.891410 0.886358 0.895273 0.895170 0.900865 0.500000 0.500000 0.878536 0.888212 0.849255 0.500000 0.500000 0.859250 0.835649 +0.611865 +0.787671 0.189235 0.664875 0.348532 0.368933 0.855412 0.315902 0.765472 1 0.500000 1 0 0 0 1 0.500000 0.500000 0.876519 0.872503 0.885301 0.909453 0.500000 0.854702 0.880673 0.500000 0.500000 0.500000 0.500000 0.874292 0.891299 0.500000 0.500000 +0.504346 +0.351798 0.867420 0.520768 0.748884 0.299496 0.224213 0.542965 0.208259 0.500000 0.500000 1 0.500000 1 1 0 0.500000 0.891723 0.874171 0.858926 0.889268 0.855455 0.912842 0.500000 0.915788 0.500000 0.500000 0.500000 0.500000 0.500000 0.879977 0.906258 0.892699 +0.697345 +0.447002 0.167256 0.871678 0.898575 0.149582 0.624738 0.176428 0.626365 0 1 0.500000 0 1 1 1 0 0.500000 0.500000 0.908086 0.880318 0.877549 0.890840 0.910119 0.864373 0.897276 0.892141 0.860877 0.872940 0.500000 0.880776 0.882520 0.500000 +0.676819 +0.292860 0.702771 0.470784 0.661117 0.400663 0.550600 0.534813 0.793784 0.500000 0 1 0.500000 1 0.500000 0.500000 0 0.881332 0.500000 0.894942 0.885803 0.890536 0.880407 0.878521 0.500000 0.500000 0.866658 0.886511 0.875691 0.500000 0.877742 0.500000 0.876049 +0.604596 +0.412125 0.390863 0.631072 0.233739 0.657350 0.285875 0.894322 0.663901 1 0.500000 0 0 0 0 1 1 0.888228 0.857855 0.901008 0.500000 0.500000 0.872513 0.892852 0.892913 0.892708 0.500000 0.863827 0.904082 0.860308 0.500000 0.912942 0.500000 +0.611349 +0.466891 0.842406 0.124795 0.830070 0.792697 0.651462 0.516358 0.221534 0 0 0.500000 0 0 0 0.500000 0 0.500000 0.852885 0.862806 0.500000 0.895654 0.881381 0.500000 0.876810 0.863876 0.500000 0.907459 0.875731 0.500000 0.500000 0.881646 0.500000 +0.357111 +0.295642 0.260844 0.210094 0.850504 0.224111 0.425064 0.253301 0.628509 0 1 0 1 1 1 0 0.500000 0.861006 0.857594 0.846757 0.887994 0.500000 0.500000 0.891275 0.871828 0.877218 0.892460 0.869857 0.875945 0.500000 0.500000 0.866396 0.500000 +0.574653 +0.478588 0.634178 0.429367 0.579265 0.705142 0.321066 0.349864 0.362279 0 1 0.500000 0.500000 1 0 0 0 0.877446 0.878730 0.885642 0.500000 0.905514 0.889579 0.935996 0.500000 0.500000 0.888387 0.871258 0.892182 0.879755 0.893643 0.500000 0.500000 +0.652481 +0.648897 0.603582 0.595653 0.136270 0.890154 0.217120 0.529222 0.442861 0 1 0 1 1 0 1 1 0.874852 0.865864 0.875516 0.840720 0.883195 0.885728 0.891303 0.883275 0.862334 0.880162 0.869698 0.500000 0.500000 0.500000 0.500000 0.931956 +0.686736 +0.382966 0.702837 0.783768 0.197354 0.331291 0.202401 0.350538 0.492088 0 0.500000 0 0 1 1 0.500000 0.500000 0.879100 0.889446 0.500000 0.500000 0.924142 0.899671 0.887256 0.500000 0.865951 0.500000 0.860801 0.891139 0.500000 0.900359 0.500000 0.901079 +0.591110 +0.806875 0.554062 0.324976 0.474379 0.293066 0.165294 0.703323 0.154310 1 0.500000 1 0.500000 0.500000 0 1 0.500000 0.901962 0.886323 0.881154 0.874488 0.500000 0.873116 0.856169 0.500000 0.500000 0.870150 0.898297 0.500000 0.879865 0.862154 0.862315 0.500000 +0.641015 +0.466683 0.537583 0.156818 0.641232 0.589858 0.348562 0.888034 0.588594 1 0 1 0 0 0 1 0.500000 0.875153 0.875042 0.872553 0.902332 0.500000 0.872503 0.884193 0.907989 0.500000 0.886826 0.876451 0.909423 0.882772 0.873873 0.862948 0.884125 +0.815640 +0.846341 0.651598 0.413629 0.855873 0.855993 0.481038 0.210184 0.767123 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0 0.915995 0.500000 0.894023 0.500000 0.869950 0.907421 0.898908 0.859759 0.871454 0.500000 0.500000 0.880514 0.860598 0.500000 0.500000 0.903214 +0.483831 +0.467974 0.633049 0.648869 0.145921 0.686723 0.354965 0.498119 0.893931 0.500000 0.500000 1 1 1 0 0.500000 1 0.901081 0.860589 0.884837 0.500000 0.879442 0.872363 0.905401 0.500000 0.856318 0.500000 0.901545 0.500000 0.500000 0.898070 0.500000 0.500000 +0.492062 +0.714541 0.696360 0.729685 0.813207 0.572123 0.667646 0.529929 0.321599 0.500000 1 0 1 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.885827 0.500000 0.500000 0.855956 0.914765 0.914788 0.500000 0.500000 0.906971 0.845460 0.856455 0.882624 0.500000 0.861565 +0.473693 +0.162354 0.877253 0.193482 0.856514 0.433555 0.559255 0.405210 0.158473 0.500000 0 1 1 0 1 1 1 0.500000 0.500000 0.877275 0.907808 0.866587 0.879330 0.886056 0.862450 0.878453 0.500000 0.862504 0.500000 0.893964 0.500000 0.500000 0.879537 +0.593048 +0.737875 0.872474 0.679049 0.181070 0.251272 0.129413 0.844976 0.107182 1 1 0 0 0 0 0 0.500000 0.500000 0.500000 0.891766 0.500000 0.831678 0.863339 0.877580 0.877368 0.500000 0.852803 0.877115 0.500000 0.886011 0.500000 0.500000 0.500000 +0.394798 +0.572870 0.425669 0.823568 0.300518 0.602855 0.389190 0.520075 0.302308 0 1 0.500000 0 0.500000 0 1 0.500000 0.875742 0.900423 0.858088 0.834108 0.500000 0.867239 0.899241 0.877901 0.872387 0.880816 0.500000 0.874615 0.858730 0.892814 0.864560 0.907973 +0.844504 +0.148165 0.803424 0.148520 0.368188 0.337454 0.590509 0.881318 0.507975 0 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.844010 0.914338 0.902606 0.883235 0.500000 0.871328 0.867115 0.500000 0.500000 0.500000 0.500000 0.899907 0.861738 0.880966 0.878004 0.849984 +0.571430 +0.564024 0.556109 0.325526 0.107723 0.302920 0.176440 0.820603 0.875954 1 0 0 0.500000 0 0 1 0 0.923164 0.889233 0.887154 0.909557 0.870154 0.500000 0.500000 0.889112 0.897088 0.500000 0.500000 0.888536 0.921995 0.871010 0.500000 0.897546 +0.627871 +0.883265 0.437914 0.217234 0.843496 0.838768 0.579225 0.839456 0.137727 0.500000 0 1 1 0.500000 1 0 0.500000 0.858621 0.500000 0.891168 0.500000 0.911886 0.890193 0.500000 0.500000 0.888930 0.500000 0.901790 0.500000 0.500000 0.855765 0.500000 0.500000 +0.327179 +0.600886 0.896446 0.366821 0.555246 0.212864 0.198881 0.392540 0.827690 1 0 0.500000 0 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.861758 0.500000 0.500000 0.884323 0.895300 0.836729 0.881436 0.500000 0.500000 0.891582 0.890335 0.500000 0.893633 +0.396771 +0.294423 0.570189 0.160840 0.242567 0.229314 0.685830 0.545861 0.884300 0 1 0.500000 0.500000 0.500000 1 0 1 0.500000 0.873908 0.900967 0.901427 0.884826 0.890495 0.884502 0.871400 0.881067 0.885100 0.500000 0.874746 0.873238 0.500000 0.883213 0.500000 +0.721379 +0.396043 0.492099 0.502232 0.415704 0.540079 0.514184 0.490835 0.865642 0 0.500000 1 1 1 1 1 1 0.895108 0.880807 0.500000 0.500000 0.500000 0.903481 0.864248 0.855250 0.500000 0.500000 0.500000 0.886911 0.500000 0.882808 0.500000 0.500000 +0.402051 +0.390489 0.754493 0.168865 0.710025 0.786915 0.277689 0.125984 0.815612 0 1 1 1 0.500000 0.500000 0 1 0.902734 0.915571 0.920254 0.920336 0.904214 0.872230 0.876251 0.874110 0.902142 0.500000 0.894147 0.500000 0.500000 0.869564 0.876912 0.500000 +0.838221 +0.658952 0.813199 0.440214 0.477150 0.455587 0.448815 0.235888 0.762101 1 0.500000 0 0.500000 1 0 0 0.500000 0.884636 0.905984 0.500000 0.861724 0.889995 0.862435 0.859204 0.903749 0.500000 0.875701 0.898516 0.500000 0.881196 0.500000 0.500000 0.500000 +0.645399 +0.120359 0.669089 0.785908 0.147800 0.276817 0.663356 0.432289 0.875782 0 0 0.500000 0.500000 0.500000 0 0 0 0.906604 0.500000 0.500000 0.500000 0.892727 0.889769 0.868697 0.890814 0.860690 0.500000 0.867017 0.877457 0.859663 0.885832 0.500000 0.500000 +0.478621 +0.239248 0.449316 0.645860 0.765261 0.334777 0.391691 0.142638 0.714301 1 1 1 0.500000 0.500000 0 0 0 0.877703 0.886189 0.848567 0.884414 0.897794 0.909490 0.873230 0.901253 0.909531 0.862577 0.867030 0.840071 0.500000 0.860154 0.500000 0.500000 +0.761917 +0.806696 0.740228 0.406446 0.136550 0.797984 0.721588 0.723346 0.674777 0.500000 0 1 0.500000 1 0.500000 0 0 0.862404 0.878086 0.500000 0.854796 0.500000 0.889583 0.891808 0.865719 0.500000 0.863216 0.871111 0.500000 0.500000 0.905079 0.500000 0.500000 +0.481709 +0.485318 0.136715 0.375970 0.722565 0.343670 0.256404 0.774725 0.203346 0 1 1 0.500000 0 0 0.500000 0 0.863547 0.889120 0.870753 0.880022 0.500000 0.500000 0.878822 0.890669 0.890714 0.500000 0.878734 0.894204 0.500000 0.500000 0.873362 0.895987 +0.689071 +0.873593 0.272028 0.169011 0.766171 0.438353 0.393712 0.513426 0.544622 1 1 1 1 0 0.500000 0.500000 1 0.877849 0.879989 0.886293 0.823246 0.874596 0.873931 0.893994 0.897260 0.888386 0.500000 0.500000 0.885602 0.902391 0.500000 0.880323 0.500000 +0.706875 +0.151523 0.452095 0.166648 0.258548 0.820408 0.805909 0.313983 0.511226 0.500000 1 0 0.500000 0.500000 0 0 1 0.866905 0.869216 0.864414 0.500000 0.500000 0.881216 0.932051 0.500000 0.856779 0.500000 0.500000 0.500000 0.908750 0.874331 0.500000 0.894342 +0.505282 +0.164907 0.588848 0.161597 0.160086 0.357845 0.896731 0.363471 0.255764 0.500000 1 0.500000 0.500000 1 0 0 0 0.853592 0.879859 0.876084 0.500000 0.500000 0.868772 0.912619 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.846008 0.875848 0.874847 +0.441017 +0.276468 0.397587 0.838529 0.554061 0.302712 0.675680 0.347046 0.197399 0 0.500000 1 0.500000 0 1 1 0 0.890479 0.874521 0.856160 0.879674 0.500000 0.500000 0.874981 0.888340 0.500000 0.893428 0.909762 0.889160 0.885152 0.500000 0.867529 0.500000 +0.637767 +0.436875 0.352753 0.121557 0.807133 0.879039 0.611309 0.865109 0.894369 1 0 0 0.500000 0 0.500000 0 1 0.500000 0.500000 0.500000 0.905021 0.894455 0.885739 0.878705 0.876620 0.500000 0.871841 0.500000 0.882151 0.500000 0.500000 0.877123 0.868809 +0.382435 +0.206683 0.328848 0.754941 0.494645 0.100031 0.624379 0.542266 0.465556 1 0 0 0 0 0.500000 0.500000 0 0.500000 0.500000 0.953278 0.906769 0.883588 0.500000 0.891905 0.901265 0.500000 0.500000 0.855211 0.860807 0.889721 0.500000 0.500000 0.500000 +0.508292 +0.250898 0.242265 0.751472 0.590429 0.345557 0.774906 0.849914 0.705158 0.500000 0 1 1 0.500000 0 1 1 0.899530 0.880321 0.875364 0.877170 0.909108 0.856763 0.500000 0.868630 0.500000 0.879420 0.873333 0.869848 0.854533 0.898559 0.500000 0.864096 +0.732988 +0.566601 0.666811 0.889454 0.455821 0.382417 0.285741 0.246363 0.822858 0.500000 1 1 0 0.500000 0.500000 0 0.500000 0.888848 0.867862 0.500000 0.873829 0.880786 0.500000 0.886914 0.892258 0.916837 0.500000 0.500000 0.873699 0.866380 0.500000 0.500000 0.904192 +0.572515 +0.211737 0.461396 0.490880 0.816122 0.763598 0.387714 0.503384 0.582812 0 0.500000 0 0 1 0 0.500000 1 0.500000 0.892897 0.913896 0.500000 0.860627 0.883676 0.500000 0.500000 0.500000 0.897966 0.894473 0.500000 0.500000 0.896327 0.500000 0.500000 +0.265172 +0.200280 0.708038 0.190219 0.417664 0.686145 0.238828 0.585191 0.301670 1 0 1 1 0.500000 1 1 1 0.863816 0.864016 0.901088 0.880215 0.918261 0.887577 0.884184 0.500000 0.500000 0.500000 0.500000 0.500000 0.912504 0.500000 0.864581 0.879919 +0.658244 +0.109070 0.536385 0.830245 0.529883 0.341510 0.757903 0.680684 0.462502 1 1 0 1 0.500000 1 0.500000 0 0.899338 0.906383 0.866291 0.883392 0.500000 0.500000 0.867722 0.868159 0.500000 0.860945 0.500000 0.500000 0.500000 0.872915 0.902075 0.500000 +0.535833 +0.287361 0.282128 0.325596 0.492923 0.764635 0.228496 0.528901 0.641533 1 0.500000 0.500000 0.500000 1 0.500000 0 0.500000 0.899517 0.854789 0.885508 0.885512 0.500000 0.500000 0.500000 0.500000 0.888923 0.500000 0.500000 0.900915 0.500000 0.500000 0.500000 0.861322 +0.347439 +0.150234 0.383114 0.798472 0.122270 0.795590 0.483838 0.861784 0.204870 0 1 0 0 1 0 1 1 0.500000 0.500000 0.864945 0.863292 0.851377 0.890953 0.500000 0.882700 0.898942 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.854799 +0.379190 +0.880947 0.671398 0.385985 0.243831 0.671458 0.593501 0.776835 0.464763 0 0 1 0.500000 0 0 0.500000 0 0.867557 0.879310 0.500000 0.886294 0.832633 0.897004 0.911886 0.890669 0.907487 0.500000 0.500000 0.500000 0.500000 0.888889 0.881468 0.886424 +0.612935 +0.892879 0.420075 0.407328 0.567695 0.652962 0.132706 0.197104 0.123659 0 0.500000 1 1 1 1 0 0.500000 0.500000 0.888288 0.500000 0.849427 0.900210 0.864951 0.885219 0.859176 0.500000 0.500000 0.500000 0.866022 0.905857 0.500000 0.500000 0.500000 +0.394159 +0.714880 0.781541 0.367906 0.395482 0.665594 0.434537 0.260723 0.570624 0 0.500000 0 0 0.500000 0 0.500000 0 0.886749 0.500000 0.896232 0.500000 0.900941 0.865520 0.885808 0.872854 0.500000 0.500000 0.500000 0.887382 0.500000 0.500000 0.500000 0.875298 +0.425226 +0.897936 0.612104 0.630457 0.289621 0.657531 0.127045 0.248038 0.179999 1 0 0 0 1 0.500000 0.500000 0.500000 0.500000 0.900987 0.500000 0.855376 0.900855 0.895244 0.896212 0.500000 0.858755 0.868585 0.500000 0.881398 0.891800 0.867112 0.500000 0.500000 +0.463586 +0.524588 0.155366 0.234744 0.734145 0.582687 0.620072 0.142221 0.104836 0.500000 0 0.500000 0 1 0.500000 1 0.500000 0.881992 0.855993 0.500000 0.895128 0.866786 0.500000 0.894299 0.500000 0.500000 0.500000 0.500000 0.500000 0.899812 0.500000 0.500000 0.500000 +0.376945 +0.365623 0.429499 0.391905 0.542455 0.435335 0.880561 0.584571 0.289969 0 1 0.500000 0.500000 1 0.500000 0 0 0.500000 0.500000 0.861024 0.890280 0.870465 0.906439 0.892134 0.896880 0.891989 0.869249 0.500000 0.868277 0.857298 0.500000 0.500000 0.500000 +0.549763 +0.191196 0.825710 0.311289 0.841653 0.255969 0.677043 0.855868 0.771512 0.500000 1 0 1 0.500000 1 0.500000 1 0.869545 0.887808 0.869013 0.894261 0.862455 0.895255 0.500000 0.847200 0.839632 0.500000 0.879608 0.882356 0.901126 0.500000 0.870799 0.500000 +0.710154 +0.223961 0.309344 0.136220 0.844775 0.726165 0.860256 0.123291 0.345645 1 0 1 0.500000 1 0 0.500000 1 0.869903 0.876659 0.500000 0.913631 0.500000 0.500000 0.873820 0.880146 0.500000 0.500000 0.878885 0.862165 0.882559 0.500000 0.874285 0.874704 +0.578163 +0.732764 0.571185 0.100924 0.437296 0.241296 0.463646 0.690941 0.844966 1 0 1 0 0.500000 0 1 0 0.890364 0.876868 0.894109 0.893177 0.908020 0.867359 0.500000 0.877634 0.500000 0.500000 0.918809 0.884404 0.500000 0.921858 0.500000 0.500000 +0.599722 +0.498880 0.872125 0.411370 0.492090 0.361852 0.248706 0.198536 0.198498 0 1 0.500000 0.500000 0.500000 0 0.500000 1 0.901765 0.879267 0.500000 0.858079 0.500000 0.879950 0.903323 0.500000 0.913067 0.500000 0.887259 0.879193 0.500000 0.500000 0.500000 0.500000 +0.424788 +0.227559 0.784312 0.537765 0.808833 0.653708 0.672691 0.522448 0.183432 1 1 0.500000 1 0.500000 0 0.500000 1 0.500000 0.930835 0.882166 0.500000 0.500000 0.877986 0.500000 0.899261 0.886763 0.891740 0.845370 0.860657 0.878593 0.893496 0.500000 0.500000 +0.589780 +0.298772 0.855586 0.833053 0.518782 0.172982 0.309066 0.276594 0.107851 1 1 0.500000 1 0 0 0.500000 0 0.906102 0.891793 0.904057 0.863413 0.500000 0.884375 0.500000 0.854641 0.898490 0.864198 0.911230 0.500000 0.500000 0.916603 0.500000 0.500000 +0.539169 +0.441928 0.487154 0.605644 0.855950 0.550957 0.133925 0.675763 0.151791 0 0.500000 0.500000 1 0.500000 0 0.500000 0.500000 0.919972 0.868070 0.500000 0.900493 0.909043 0.877431 0.500000 0.878047 0.500000 0.871892 0.914776 0.500000 0.872694 0.500000 0.500000 0.925333 +0.537661 +0.654561 0.609034 0.242769 0.412629 0.850723 0.708709 0.268650 0.198632 0 0 0.500000 0.500000 1 1 0 1 0.500000 0.500000 0.500000 0.893918 0.872135 0.871421 0.873267 0.882036 0.881637 0.500000 0.500000 0.876925 0.500000 0.873948 0.896663 0.500000 +0.408738 +0.723862 0.542494 0.289100 0.705540 0.617313 0.186629 0.880433 0.844441 1 0.500000 1 0 0 0 1 0 0.500000 0.890489 0.874991 0.892700 0.895663 0.500000 0.901303 0.858229 0.500000 0.500000 0.937016 0.500000 0.500000 0.500000 0.854411 0.874510 +0.525686 +0.646424 0.643457 0.383255 0.768704 0.604485 0.578628 0.393591 0.885169 0.500000 0.500000 0 1 0 0.500000 1 0 0.888477 0.867595 0.500000 0.873544 0.910797 0.500000 0.866294 0.870114 0.500000 0.885834 0.899286 0.500000 0.500000 0.881026 0.500000 0.500000 +0.479798 +0.173114 0.119170 0.695663 0.205997 0.784396 0.351939 0.845308 0.899555 0.500000 0 1 0.500000 0 0 1 0 0.500000 0.869362 0.891530 0.500000 0.903016 0.500000 0.876562 0.500000 0.500000 0.500000 0.913084 0.500000 0.895934 0.888823 0.881701 0.881551 +0.460958 +0.390646 0.192211 0.296988 0.469522 0.257417 0.206608 0.652969 0.243797 1 1 1 0 1 0.500000 1 0.500000 0.893830 0.500000 0.500000 0.855013 0.895069 0.915628 0.858354 0.877801 0.500000 0.500000 0.500000 0.870829 0.868697 0.872998 0.500000 0.893357 +0.607355 +0.128207 0.578574 0.289094 0.610378 0.423040 0.630396 0.861749 0.421048 1 0.500000 1 0.500000 1 0.500000 0 0 0.907311 0.500000 0.884177 0.863509 0.898937 0.893627 0.894745 0.860920 0.900018 0.500000 0.500000 0.872440 0.500000 0.894180 0.500000 0.500000 +0.678276 +0.338236 0.124534 0.440473 0.825155 0.578707 0.132645 0.769339 0.876090 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.877964 0.905158 0.866962 0.890204 0.895039 0.836415 0.500000 0.881462 0.500000 0.500000 0.869202 0.500000 0.500000 0.877756 0.500000 0.500000 +0.592342 +0.884174 0.515199 0.757517 0.584886 0.771566 0.717923 0.726858 0.508191 0.500000 0.500000 0 1 0 1 0.500000 1 0.890051 0.877349 0.887911 0.870307 0.855890 0.862247 0.888979 0.844949 0.500000 0.500000 0.500000 0.885115 0.899882 0.899666 0.500000 0.500000 +0.690125 +0.766767 0.855329 0.513986 0.369787 0.815391 0.480343 0.522741 0.316117 0.500000 0 0 0 0.500000 0 0 0.500000 0.500000 0.854788 0.500000 0.500000 0.500000 0.863265 0.918766 0.883500 0.875922 0.923232 0.845592 0.500000 0.873847 0.867748 0.877241 0.887164 +0.509063 +0.707083 0.139501 0.787006 0.204395 0.265393 0.657023 0.391638 0.862441 1 0 1 0 1 1 0 0 0.500000 0.858741 0.500000 0.500000 0.870757 0.888147 0.881310 0.500000 0.912485 0.500000 0.881254 0.886546 0.500000 0.856414 0.899972 0.500000 +0.535423 +0.117046 0.198560 0.591288 0.369962 0.558419 0.750196 0.748100 0.711725 0.500000 0 0.500000 0.500000 1 1 0 0 0.881503 0.500000 0.880670 0.882073 0.848531 0.871014 0.868465 0.879985 0.870480 0.500000 0.500000 0.901694 0.500000 0.878079 0.500000 0.500000 +0.653544 +0.315494 0.299648 0.388732 0.824463 0.142299 0.613248 0.659708 0.720024 1 0 1 1 0.500000 0.500000 0.500000 0 0.500000 0.891816 0.890376 0.500000 0.500000 0.872357 0.500000 0.910182 0.859331 0.500000 0.500000 0.906092 0.500000 0.500000 0.903130 0.867062 +0.431976 +0.857026 0.238185 0.170282 0.525128 0.426435 0.887483 0.122298 0.464671 0 1 0 0 0 0.500000 0.500000 1 0.500000 0.875530 0.904014 0.500000 0.500000 0.500000 0.880179 0.897905 0.500000 0.884631 0.871596 0.877226 0.500000 0.500000 0.878514 0.500000 +0.316736 +0.719948 0.358767 0.396023 0.157268 0.199965 0.206568 0.786675 0.253126 1 0 1 0 0.500000 0 0.500000 0.500000 0.900607 0.883513 0.873336 0.500000 0.880269 0.886307 0.863255 0.874821 0.500000 0.500000 0.500000 0.896848 0.500000 0.853363 0.881312 0.869498 +0.632790 +0.365689 0.738370 0.391880 0.126925 0.620627 0.673826 0.397927 0.159373 0.500000 0.500000 0 0.500000 1 0.500000 1 0.500000 0.899058 0.500000 0.500000 0.877848 0.500000 0.867277 0.868986 0.500000 0.886814 0.890114 0.873216 0.500000 0.500000 0.845771 0.909378 0.500000 +0.488661 +0.555681 0.337913 0.307697 0.464701 0.833683 0.714040 0.262577 0.535959 1 0.500000 1 0.500000 0.500000 0 0 0.500000 0.500000 0.897875 0.857352 0.878657 0.878046 0.902148 0.875062 0.500000 0.909456 0.906915 0.500000 0.899962 0.875488 0.500000 0.912978 0.500000 +0.589628 +0.607946 0.350834 0.673885 0.588551 0.781215 0.478453 0.759497 0.265701 0 0 1 0.500000 1 1 0.500000 1 0.857682 0.902629 0.876119 0.500000 0.500000 0.899562 0.871703 0.881579 0.891880 0.500000 0.500000 0.909544 0.903002 0.500000 0.869543 0.904296 +0.588993 +0.833759 0.389375 0.418691 0.343389 0.345368 0.792379 0.113283 0.147972 1 0.500000 0.500000 1 0 0.500000 0.500000 0 0.887995 0.500000 0.878792 0.888118 0.500000 0.500000 0.500000 0.877948 0.500000 0.871268 0.856433 0.911493 0.500000 0.894464 0.895646 0.900783 +0.555160 +0.411601 0.369543 0.706998 0.318144 0.851456 0.215105 0.264554 0.159716 0.500000 0 0 0.500000 0.500000 1 1 0 0.918412 0.880266 0.893910 0.500000 0.899054 0.862900 0.934669 0.892151 0.500000 0.500000 0.878658 0.887259 0.873583 0.898267 0.500000 0.500000 +0.612242 +0.231084 0.825370 0.186401 0.233310 0.634532 0.776262 0.441122 0.529391 1 1 0.500000 1 1 1 1 0.500000 0.859336 0.500000 0.500000 0.919999 0.500000 0.907704 0.905749 0.500000 0.907669 0.500000 0.870581 0.856767 0.911591 0.898624 0.882041 0.893724 +0.678198 +0.470233 0.203449 0.371364 0.118113 0.532923 0.231566 0.136174 0.878686 0 0.500000 1 0.500000 0.500000 0 1 1 0.873409 0.875850 0.881862 0.859866 0.500000 0.865505 0.894096 0.905435 0.500000 0.878228 0.500000 0.500000 0.875692 0.500000 0.500000 0.500000 +0.534404 +0.589755 0.206607 0.638531 0.782885 0.556385 0.170081 0.355482 0.379135 0 0 0.500000 0 0 0.500000 1 0.500000 0.880944 0.871929 0.500000 0.500000 0.881453 0.500000 0.863169 0.500000 0.873880 0.500000 0.882956 0.500000 0.500000 0.500000 0.862028 0.500000 +0.252912 +0.142191 0.402658 0.476418 0.157881 0.112471 0.898953 0.104487 0.319797 0.500000 1 1 0.500000 1 0 0 0 0.903954 0.899107 0.864565 0.500000 0.500000 0.500000 0.881646 0.892472 0.873765 0.875227 0.500000 0.500000 0.500000 0.899442 0.500000 0.884152 +0.444035 +0.839644 0.103425 0.856866 0.753239 0.690530 0.340874 0.477576 0.427947 1 0 1 0 1 1 1 1 0.877106 0.906262 0.902898 0.877504 0.892925 0.920107 0.500000 0.864472 0.500000 0.500000 0.500000 0.899662 0.901701 0.880202 0.500000 0.500000 +0.633635 +0.284510 0.351245 0.375196 0.525827 0.167779 0.865543 0.188088 0.601707 0 1 0 0.500000 0 0 0.500000 0 0.865923 0.901080 0.913740 0.872995 0.500000 0.915454 0.875648 0.500000 0.865371 0.886778 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.477835 +0.347021 0.581343 0.433038 0.675805 0.850811 0.586233 0.224598 0.616199 1 0 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.867180 0.883613 0.888260 0.888036 0.500000 0.908192 0.500000 0.861982 0.881952 0.880674 0.500000 0.857340 0.500000 0.883213 0.500000 0.500000 +0.581041 +0.727852 0.411479 0.728207 0.768792 0.493167 0.854846 0.402105 0.777902 1 1 1 0.500000 0 0.500000 0 0 0.864857 0.854689 0.900114 0.895882 0.500000 0.881713 0.500000 0.879679 0.500000 0.904968 0.500000 0.500000 0.911927 0.500000 0.500000 0.894179 +0.443362 +0.349729 0.496357 0.878073 0.374109 0.657265 0.453486 0.343105 0.373348 1 0 1 0.500000 0.500000 0.500000 0.500000 1 0.892218 0.878241 0.884723 0.900950 0.909979 0.884823 0.500000 0.500000 0.906567 0.500000 0.909424 0.500000 0.500000 0.854805 0.500000 0.500000 +0.495194 +0.428005 0.884536 0.204278 0.692678 0.442144 0.114126 0.710188 0.328173 0.500000 0 1 0.500000 0.500000 0 0 0.500000 0.868085 0.872617 0.875961 0.500000 0.500000 0.863798 0.846887 0.500000 0.500000 0.500000 0.918579 0.500000 0.882495 0.500000 0.896175 0.500000 +0.376050 +0.406694 0.303722 0.861587 0.891085 0.670309 0.482085 0.210117 0.439869 0 1 1 0.500000 1 0.500000 0.500000 0 0.897721 0.500000 0.886729 0.871618 0.897214 0.879645 0.865740 0.911207 0.878115 0.884747 0.500000 0.500000 0.884598 0.500000 0.885295 0.872199 +0.673104 +0.684350 0.468381 0.284496 0.132589 0.619856 0.522093 0.616933 0.201358 0.500000 1 0 1 0 0.500000 0.500000 0.500000 0.500000 0.885502 0.500000 0.884867 0.871390 0.875608 0.867794 0.911361 0.886623 0.500000 0.500000 0.500000 0.881989 0.916015 0.500000 0.500000 +0.491331 +0.297951 0.662956 0.105950 0.102529 0.203290 0.889092 0.771670 0.863447 0 1 0 0 1 0.500000 0 0 0.876597 0.878761 0.894932 0.881352 0.878085 0.889775 0.879532 0.875367 0.500000 0.500000 0.500000 0.883516 0.893465 0.888844 0.500000 0.878679 +0.768976 +0.149286 0.451506 0.667719 0.149040 0.310243 0.846810 0.535401 0.278676 1 1 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.876416 0.876217 0.907084 0.500000 0.867000 0.896826 0.865764 0.885720 0.870386 0.886503 0.838035 0.500000 0.500000 0.500000 0.871627 0.860966 +0.782017 +0.830966 0.640144 0.695213 0.645129 0.484178 0.184695 0.360460 0.857904 0.500000 0 0 1 0.500000 1 0.500000 0.500000 0.500000 0.904697 0.500000 0.854316 0.868722 0.882259 0.878808 0.500000 0.863241 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.910374 +0.280517 +0.577236 0.197117 0.349322 0.849017 0.825385 0.441847 0.721484 0.587764 0 1 1 0.500000 1 0 0.500000 0.500000 0.855357 0.848633 0.500000 0.873050 0.885270 0.890889 0.891007 0.500000 0.870628 0.872275 0.870794 0.500000 0.892763 0.500000 0.880306 0.500000 +0.657708 +0.105276 0.770034 0.559282 0.845333 0.517527 0.670667 0.108133 0.792548 0.500000 0 0.500000 1 1 0.500000 0.500000 0 0.500000 0.918172 0.500000 0.890340 0.500000 0.500000 0.500000 0.879117 0.500000 0.859353 0.500000 0.886495 0.500000 0.881616 0.500000 0.875438 +0.314904 +0.736016 0.814344 0.477480 0.402247 0.773416 0.608444 0.715157 0.643434 1 1 1 1 0 0 1 1 0.892153 0.858145 0.500000 0.500000 0.500000 0.862291 0.897464 0.500000 0.835847 0.500000 0.500000 0.500000 0.900438 0.500000 0.887503 0.500000 +0.290866 +0.325461 0.630783 0.177120 0.261684 0.727850 0.373017 0.698901 0.221997 0 0 0 1 0.500000 1 1 1 0.878167 0.889639 0.881699 0.858003 0.908597 0.500000 0.500000 0.879356 0.893260 0.870379 0.500000 0.500000 0.863378 0.829674 0.500000 0.500000 +0.516085 +0.617965 0.737968 0.823698 0.100041 0.782835 0.508940 0.353151 0.406710 0.500000 1 1 1 0 0.500000 1 0.500000 0.500000 0.907988 0.883736 0.500000 0.876763 0.880262 0.911508 0.902452 0.500000 0.500000 0.884186 0.500000 0.871759 0.884167 0.884742 0.500000 +0.584578 +0.347367 0.802741 0.660155 0.217591 0.458098 0.260338 0.496238 0.467360 1 0.500000 1 0 1 0.500000 1 1 0.881841 0.864671 0.500000 0.500000 0.500000 0.887757 0.908595 0.845515 0.500000 0.882642 0.862661 0.500000 0.500000 0.853389 0.500000 0.500000 +0.408481 +0.724863 0.576513 0.852978 0.194841 0.497472 0.417200 0.876837 0.403063 1 0.500000 0.500000 1 0.500000 1 1 1 0.500000 0.892635 0.500000 0.877301 0.912586 0.500000 0.916525 0.500000 0.894708 0.884233 0.880334 0.892167 0.500000 0.500000 0.500000 0.500000 +0.428768 +0.661607 0.624831 0.141439 0.564324 0.794613 0.859388 0.733436 0.653290 1 0.500000 0 1 0.500000 0.500000 1 0 0.894188 0.500000 0.883752 0.500000 0.867447 0.877713 0.909628 0.911147 0.911386 0.500000 0.500000 0.879136 0.500000 0.871634 0.888561 0.500000 +0.596483 +0.262211 0.774095 0.818639 0.666326 0.736832 0.130826 0.594519 0.280958 1 0.500000 0 0.500000 0.500000 1 0.500000 0 0.861392 0.889687 0.904786 0.937378 0.500000 0.892261 0.867020 0.500000 0.878499 0.500000 0.886303 0.885985 0.904722 0.871350 0.875114 0.861298 +0.836032 +0.405829 0.168740 0.206973 0.394327 0.451383 0.197895 0.613285 0.481892 0 1 0.500000 0.500000 0 0.500000 0 0 0.500000 0.896523 0.884540 0.500000 0.890702 0.868353 0.891617 0.500000 0.838694 0.867158 0.883854 0.500000 0.500000 0.867719 0.500000 0.500000 +0.510524 +0.861620 0.647690 0.332571 0.128116 0.640579 0.819580 0.483850 0.267555 0 0 0 0.500000 0 0 1 1 0.848457 0.876784 0.846909 0.838778 0.905694 0.898375 0.500000 0.877464 0.876344 0.890583 0.903723 0.848851 0.500000 0.892533 0.500000 0.868453 +0.629250 +0.841715 0.507333 0.537351 0.252430 0.395635 0.829143 0.405349 0.899703 1 1 0.500000 0 0 0.500000 1 0 0.874183 0.500000 0.870743 0.500000 0.500000 0.500000 0.894909 0.892868 0.500000 0.500000 0.500000 0.500000 0.857662 0.872342 0.500000 0.500000 +0.260776 +0.677247 0.293572 0.671418 0.727133 0.323401 0.405210 0.169292 0.687607 1 0.500000 0.500000 0.500000 0 1 0.500000 0 0.860339 0.874767 0.887636 0.500000 0.892329 0.878695 0.863285 0.500000 0.864851 0.500000 0.863559 0.500000 0.879721 0.500000 0.881739 0.500000 +0.558183 +0.710037 0.185824 0.136883 0.786369 0.700445 0.578996 0.183416 0.479969 1 1 1 1 0 0.500000 1 0.500000 0.907517 0.930292 0.916371 0.500000 0.500000 0.913802 0.870663 0.500000 0.500000 0.500000 0.888342 0.500000 0.866398 0.500000 0.500000 0.500000 +0.439045 +0.253840 0.888715 0.836700 0.221443 0.390080 0.274063 0.774408 0.478460 1 1 1 1 0.500000 1 0 0.500000 0.894424 0.840587 0.500000 0.869954 0.891170 0.886520 0.900785 0.892437 0.889702 0.500000 0.873068 0.863009 0.500000 0.500000 0.500000 0.500000 +0.574019 +0.422818 0.899766 0.165509 0.307454 0.378973 0.804919 0.475767 0.412347 0 0.500000 0 0 0 0 1 1 0.871273 0.915459 0.874414 0.909693 0.873776 0.500000 0.887675 0.868114 0.500000 0.928157 0.500000 0.500000 0.904281 0.500000 0.892025 0.868890 +0.663549 +0.196462 0.542078 0.505023 0.129848 0.153346 0.682664 0.131753 0.171248 1 1 1 0.500000 0.500000 1 0.500000 1 0.500000 0.880533 0.500000 0.500000 0.500000 0.881333 0.871053 0.892618 0.500000 0.500000 0.894630 0.500000 0.896967 0.500000 0.500000 0.500000 +0.369023 +0.452789 0.632954 0.652296 0.142370 0.205480 0.894973 0.407901 0.595087 0 1 1 0 0 1 0 1 0.500000 0.885809 0.500000 0.500000 0.500000 0.919486 0.868919 0.875522 0.878348 0.868664 0.500000 0.500000 0.500000 0.500000 0.896081 0.912312 +0.351077 +0.217288 0.166206 0.828300 0.633259 0.189250 0.116377 0.141661 0.297083 0.500000 1 0 0.500000 1 0.500000 1 1 0.860767 0.871080 0.500000 0.876094 0.875184 0.500000 0.883425 0.500000 0.500000 0.500000 0.901132 0.871515 0.893503 0.885473 0.879101 0.898409 +0.641822 +0.753040 0.542071 0.392674 0.678592 0.487825 0.668290 0.151506 0.168336 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.871948 0.875135 0.858063 0.500000 0.500000 0.871733 0.500000 0.500000 0.901101 0.500000 0.901513 0.891706 0.882562 0.500000 0.871653 0.500000 +0.454601 +0.211849 0.752222 0.399574 0.644027 0.367790 0.847417 0.342132 0.811547 1 0.500000 1 0 0.500000 0 0 0 0.896958 0.908904 0.500000 0.500000 0.911504 0.500000 0.877382 0.838147 0.869979 0.884648 0.500000 0.500000 0.895799 0.500000 0.872391 0.500000 +0.483364 +0.767670 0.822263 0.771457 0.476134 0.181329 0.600993 0.285617 0.557492 0.500000 0 1 0 0.500000 0 1 0.500000 0.855888 0.879049 0.500000 0.873592 0.849780 0.500000 0.874462 0.500000 0.500000 0.880090 0.897347 0.887046 0.874559 0.500000 0.500000 0.500000 +0.405637 +0.345011 0.402771 0.770794 0.532117 0.282950 0.546845 0.627410 0.278431 0.500000 0 1 0 0.500000 0.500000 0.500000 0.500000 0.852193 0.916366 0.913118 0.897070 0.911316 0.500000 0.869272 0.860180 0.500000 0.500000 0.918582 0.911380 0.500000 0.898790 0.500000 0.500000 +0.635991 +0.360543 0.648644 0.361001 0.339154 0.358372 0.157440 0.690925 0.581824 0.500000 0.500000 1 0 1 1 0.500000 0.500000 0.904679 0.890280 0.854603 0.887737 0.907133 0.884477 0.888798 0.500000 0.861633 0.875153 0.883387 0.881630 0.885217 0.500000 0.500000 0.500000 +0.789274 +0.534193 0.784556 0.639846 0.498959 0.604862 0.518237 0.611196 0.575517 0 1 0 0.500000 1 0 1 0 0.886024 0.915319 0.894008 0.867904 0.915712 0.911752 0.872760 0.884757 0.873850 0.902238 0.886561 0.888904 0.500000 0.866093 0.850034 0.500000 +0.796222 +0.200251 0.223216 0.592550 0.783649 0.594693 0.800219 0.676683 0.419421 0.500000 0.500000 1 1 1 1 1 0 0.889374 0.880512 0.844419 0.868323 0.887712 0.886829 0.500000 0.884145 0.863837 0.500000 0.500000 0.500000 0.500000 0.880741 0.878230 0.500000 +0.630874 +0.741095 0.590666 0.321697 0.558946 0.800223 0.752781 0.187642 0.303338 1 0 1 0.500000 1 1 0.500000 1 0.890880 0.500000 0.883020 0.870975 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.881717 0.500000 0.500000 0.500000 0.878051 +0.179268 +0.559391 0.292469 0.529673 0.807422 0.143829 0.732425 0.475091 0.246412 1 0.500000 0 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.903965 0.898800 0.888494 0.893013 0.875573 0.881973 0.500000 0.867319 0.895506 0.887224 0.500000 0.500000 0.500000 +0.466471 +0.772783 0.364356 0.734994 0.443816 0.209633 0.302029 0.405265 0.291520 0.500000 1 0.500000 0.500000 0 0.500000 0 0.500000 0.921523 0.859246 0.889631 0.886545 0.876103 0.869862 0.500000 0.899383 0.500000 0.500000 0.905257 0.913106 0.500000 0.500000 0.860404 0.500000 +0.601243 +0.475515 0.178939 0.423418 0.591800 0.185787 0.321098 0.887967 0.269210 1 1 0.500000 1 1 0.500000 1 0 0.881727 0.875466 0.500000 0.919647 0.500000 0.877347 0.500000 0.883158 0.839744 0.500000 0.500000 0.866337 0.862007 0.500000 0.500000 0.855277 +0.436078 +0.206457 0.528727 0.108372 0.810274 0.877335 0.774292 0.121091 0.182792 0.500000 1 1 0.500000 0.500000 0.500000 0 1 0.884861 0.500000 0.500000 0.892980 0.500000 0.875729 0.886051 0.500000 0.500000 0.500000 0.500000 0.863172 0.500000 0.907503 0.500000 0.500000 +0.340854 +0.776730 0.300531 0.817461 0.860571 0.622494 0.855845 0.390068 0.868204 0 1 0 1 1 1 0 0.500000 0.500000 0.859519 0.911277 0.871122 0.867263 0.500000 0.895843 0.867823 0.500000 0.832575 0.500000 0.873412 0.500000 0.883311 0.500000 0.500000 +0.451689 +0.744423 0.515202 0.801539 0.458636 0.500383 0.533185 0.636015 0.109823 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 1 0.500000 0.875683 0.883073 0.862393 0.863602 0.846049 0.500000 0.500000 0.500000 0.500000 0.909082 0.500000 0.873665 0.500000 0.500000 0.500000 +0.341738 +0.482165 0.751820 0.836427 0.422249 0.135342 0.486296 0.573243 0.293433 1 0 0 1 1 1 1 1 0.875072 0.886341 0.500000 0.864852 0.911230 0.843962 0.500000 0.890048 0.500000 0.500000 0.873997 0.500000 0.897972 0.900896 0.500000 0.895173 +0.531963 +0.137863 0.458384 0.262855 0.397482 0.676913 0.281634 0.816434 0.401705 0.500000 1 1 1 0.500000 0 0.500000 0.500000 0.884946 0.909385 0.892878 0.883423 0.876709 0.881727 0.915079 0.863379 0.500000 0.500000 0.500000 0.500000 0.500000 0.914749 0.875609 0.500000 +0.702813 +0.674813 0.176625 0.739680 0.809429 0.272494 0.804503 0.674760 0.894111 0 1 0.500000 0 1 1 1 0.500000 0.863842 0.862002 0.500000 0.894149 0.902941 0.500000 0.875887 0.500000 0.500000 0.904011 0.500000 0.883108 0.500000 0.881224 0.500000 0.873538 +0.476701 +0.312783 0.343161 0.498651 0.222435 0.257066 0.705851 0.232681 0.464043 0 0 0 0 0 1 0.500000 1 0.891168 0.865170 0.903423 0.876356 0.890971 0.902708 0.865667 0.876829 0.500000 0.907618 0.875561 0.500000 0.870858 0.500000 0.500000 0.500000 +0.770720 +0.481496 0.695297 0.456036 0.790474 0.889759 0.771643 0.404396 0.887552 0.500000 1 1 0 0 0 0.500000 0.500000 0.902899 0.881226 0.886010 0.500000 0.500000 0.500000 0.869937 0.898368 0.500000 0.500000 0.898919 0.856386 0.500000 0.893099 0.500000 0.882328 +0.353346 +0.309342 0.116272 0.781260 0.439320 0.652800 0.606156 0.662470 0.741513 0.500000 0.500000 0.500000 0 0 0 1 0 0.500000 0.888363 0.500000 0.879584 0.500000 0.892380 0.923918 0.891975 0.500000 0.873099 0.500000 0.927585 0.884793 0.874957 0.889488 0.908072 +0.578454 +0.446883 0.557545 0.451367 0.723583 0.666426 0.817591 0.660057 0.171092 0.500000 0.500000 1 0 0.500000 0 0.500000 1 0.890269 0.883902 0.895536 0.500000 0.500000 0.869222 0.500000 0.858458 0.875348 0.871507 0.500000 0.500000 0.882977 0.903140 0.883550 0.500000 +0.462625 +0.795895 0.803022 0.592397 0.614728 0.736343 0.713746 0.124301 0.527626 1 0 0.500000 0 0 0.500000 1 1 0.869110 0.883152 0.500000 0.868185 0.500000 0.500000 0.901573 0.905817 0.884807 0.881947 0.898114 0.895560 0.873638 0.933266 0.888373 0.902888 +0.687394 +0.397825 0.842449 0.844633 0.749673 0.747811 0.655995 0.715786 0.811656 0 0 0 1 0.500000 0.500000 0.500000 0 0.867733 0.908816 0.867432 0.887652 0.500000 0.864655 0.919940 0.867793 0.862885 0.878110 0.901752 0.902738 0.500000 0.500000 0.500000 0.500000 +0.517039 +0.477604 0.888250 0.224087 0.824116 0.719799 0.265611 0.328692 0.534798 0.500000 0 1 0 0.500000 0.500000 0 0 0.890200 0.870155 0.500000 0.500000 0.898850 0.886987 0.500000 0.900047 0.889497 0.881409 0.894395 0.500000 0.500000 0.500000 0.500000 0.888813 +0.435270 +0.312629 0.162550 0.175460 0.363852 0.264846 0.272911 0.607087 0.311014 0 0.500000 0.500000 0.500000 0 0 0 0.500000 0.500000 0.878105 0.882084 0.895214 0.871785 0.866665 0.912898 0.500000 0.890611 0.500000 0.904254 0.500000 0.886407 0.895197 0.500000 0.500000 +0.574303 +0.592350 0.618505 0.207928 0.450687 0.494480 0.519961 0.781735 0.428684 0 1 0.500000 0.500000 0.500000 0 0 0.500000 0.500000 0.890521 0.500000 0.500000 0.884076 0.859541 0.859625 0.895262 0.500000 0.885359 0.500000 0.500000 0.875775 0.500000 0.920930 0.862114 +0.434055 +0.835352 0.758450 0.270507 0.217023 0.513635 0.855099 0.657840 0.523116 0 0.500000 0.500000 0.500000 0 0 0.500000 0 0.886545 0.857901 0.894105 0.877081 0.851046 0.884863 0.866606 0.500000 0.500000 0.864403 0.908073 0.500000 0.861937 0.500000 0.500000 0.874825 +0.578233 +0.822470 0.247799 0.151792 0.171279 0.484271 0.141985 0.149545 0.804915 0.500000 1 1 1 0 1 1 0 0.884782 0.900437 0.500000 0.881337 0.930586 0.500000 0.500000 0.500000 0.500000 0.500000 0.865052 0.500000 0.500000 0.500000 0.897616 0.860154 +0.325288 +0.413583 0.892858 0.868721 0.802483 0.324603 0.597399 0.693457 0.730976 0 0 0 0.500000 1 1 0.500000 0 0.895052 0.865116 0.858904 0.500000 0.889547 0.861412 0.901863 0.500000 0.881841 0.882891 0.500000 0.841116 0.903875 0.899980 0.500000 0.500000 +0.505835 +0.230059 0.398754 0.466149 0.363110 0.596075 0.836208 0.751262 0.262277 0 0 1 0 0 0 1 0.500000 0.500000 0.500000 0.840262 0.873512 0.500000 0.856444 0.897146 0.500000 0.866444 0.500000 0.500000 0.862735 0.500000 0.897930 0.500000 0.500000 +0.224097 +0.105809 0.130557 0.867071 0.259431 0.458128 0.752629 0.833572 0.451094 0 0.500000 1 0 0 0.500000 0 0.500000 0.877304 0.500000 0.862429 0.911138 0.853810 0.500000 0.500000 0.901505 0.867353 0.500000 0.859590 0.874369 0.889165 0.500000 0.500000 0.500000 +0.429887 +0.847475 0.517661 0.523303 0.156158 0.752256 0.170436 0.715525 0.424475 1 1 1 0 0.500000 0 1 0.500000 0.880754 0.500000 0.500000 0.867551 0.880452 0.895805 0.500000 0.500000 0.500000 0.500000 0.881236 0.500000 0.500000 0.500000 0.914039 0.870242 +0.353723 +0.531989 0.531488 0.114115 0.528823 0.124085 0.102640 0.466955 0.309047 1 1 0.500000 1 0.500000 1 1 0 0.892019 0.891173 0.886706 0.894615 0.500000 0.500000 0.865752 0.890255 0.500000 0.851931 0.500000 0.865602 0.890830 0.894736 0.500000 0.500000 +0.601721 +0.146106 0.606796 0.220047 0.124834 0.689364 0.735970 0.843803 0.403471 0.500000 1 0 1 1 0.500000 0 0 0.870292 0.841957 0.872998 0.500000 0.892709 0.889723 0.873921 0.843167 0.867615 0.500000 0.851503 0.906446 0.885776 0.901872 0.500000 0.500000 +0.729420 +0.154361 0.142527 0.455275 0.812210 0.617532 0.654473 0.727922 0.789899 1 0.500000 0.500000 0.500000 0.500000 0 0 0 0.500000 0.882151 0.500000 0.833717 0.500000 0.879465 0.500000 0.884036 0.500000 0.912743 0.865726 0.891238 0.877705 0.892791 0.916939 0.500000 +0.511464 +0.861802 0.514475 0.583161 0.589313 0.778994 0.753308 0.254098 0.432144 1 0.500000 1 1 0.500000 0 1 0 0.500000 0.905767 0.853023 0.857177 0.905527 0.886001 0.897322 0.881928 0.879583 0.853184 0.500000 0.893082 0.500000 0.500000 0.500000 0.500000 +0.675778 +0.726570 0.456074 0.636412 0.376950 0.399063 0.850924 0.885618 0.783017 0.500000 0 1 0.500000 0 0 1 0 0.864963 0.875313 0.868566 0.904093 0.876047 0.872119 0.890334 0.889843 0.500000 0.868396 0.500000 0.901561 0.500000 0.500000 0.500000 0.899456 +0.630591 +0.542720 0.890887 0.543351 0.294497 0.210073 0.503389 0.660131 0.617814 0.500000 0 0 1 0 1 0.500000 0.500000 0.873811 0.870640 0.902816 0.879621 0.500000 0.880429 0.500000 0.904072 0.890724 0.500000 0.899645 0.855815 0.500000 0.500000 0.500000 0.863359 +0.470439 +0.898747 0.647480 0.795090 0.879256 0.261853 0.361471 0.249822 0.566339 0 1 1 0.500000 1 1 0.500000 1 0.500000 0.855118 0.899944 0.500000 0.865091 0.871347 0.500000 0.867332 0.887208 0.878482 0.893844 0.500000 0.901987 0.891248 0.913969 0.500000 +0.554987 +0.763250 0.144791 0.894736 0.424148 0.851088 0.429437 0.142627 0.523813 1 0 1 0.500000 1 1 0 0 0.889556 0.879888 0.500000 0.880765 0.887265 0.500000 0.887916 0.854765 0.500000 0.852122 0.500000 0.500000 0.500000 0.872278 0.500000 0.500000 +0.457989 +0.806168 0.666565 0.757645 0.332560 0.740007 0.703534 0.494540 0.736199 1 1 1 0.500000 1 0 0 0.500000 0.500000 0.853321 0.861378 0.870075 0.899751 0.862129 0.500000 0.886660 0.500000 0.882286 0.898930 0.865252 0.500000 0.500000 0.899143 0.892249 +0.577775 +0.331848 0.762557 0.493481 0.527390 0.841984 0.225170 0.630474 0.571752 1 0.500000 0.500000 0 0 1 0.500000 1 0.500000 0.882834 0.500000 0.871556 0.500000 0.891436 0.500000 0.836949 0.845449 0.902680 0.856744 0.500000 0.500000 0.500000 0.881300 0.906075 +0.431265 +0.147342 0.583371 0.113007 0.310886 0.457699 0.754135 0.543406 0.419236 1 0.500000 0.500000 0 0 0.500000 1 0 0.865666 0.912168 0.500000 0.860193 0.868926 0.895180 0.887571 0.888289 0.500000 0.500000 0.842087 0.871633 0.500000 0.917342 0.894124 0.500000 +0.671040 +0.349903 0.222487 0.331534 0.296456 0.335509 0.694424 0.178857 0.652094 1 0 0.500000 1 0 0 1 0 0.897283 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.887078 0.500000 0.500000 0.500000 +0 +0.737255 0.841302 0.758105 0.873121 0.347841 0.768976 0.386417 0.313620 1 1 1 0 1 1 1 1 0.852739 0.500000 0.903972 0.500000 0.876237 0.917337 0.881256 0.864539 0.500000 0.500000 0.500000 0.874158 0.871723 0.871063 0.875284 0.893310 +0.572917 +0.300496 0.233588 0.520655 0.447521 0.888323 0.649302 0.212235 0.830747 0 1 0 0.500000 0 0 0.500000 1 0.877851 0.500000 0.880473 0.865192 0.913562 0.500000 0.915595 0.863930 0.880082 0.892473 0.500000 0.500000 0.904288 0.892021 0.500000 0.890412 +0.577010 +0.641386 0.769436 0.108765 0.206714 0.838996 0.408893 0.467483 0.383310 1 0 0.500000 0 1 0 0.500000 1 0.868325 0.887711 0.500000 0.883832 0.897355 0.868923 0.911999 0.892003 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.897440 +0.578333 +0.223220 0.650584 0.162656 0.359278 0.182677 0.852302 0.845579 0.646907 1 0.500000 0.500000 0.500000 0 1 0.500000 0 0.898198 0.896952 0.913688 0.883224 0.887193 0.895242 0.500000 0.500000 0.500000 0.500000 0.500000 0.881108 0.872307 0.877356 0.500000 0.890840 +0.593426 +0.868481 0.755836 0.342937 0.749864 0.758526 0.739124 0.261100 0.509457 0 0.500000 1 0 0.500000 1 0 1 0.884665 0.880746 0.500000 0.891207 0.500000 0.868617 0.918052 0.877446 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.869378 +0.383289 +0.498863 0.590226 0.125471 0.192869 0.151020 0.799028 0.663812 0.889057 0 0 1 1 0 1 1 1 0.856043 0.904377 0.865337 0.875681 0.925005 0.871342 0.500000 0.500000 0.873506 0.891300 0.500000 0.500000 0.500000 0.500000 0.881298 0.890520 +0.600796 +0.506193 0.580008 0.391225 0.319355 0.404661 0.545108 0.229580 0.357436 0.500000 1 0 0.500000 1 0.500000 0 1 0.880594 0.891865 0.874171 0.876221 0.879791 0.500000 0.876196 0.895769 0.839975 0.500000 0.876023 0.881347 0.880030 0.500000 0.500000 0.500000 +0.657679 +0.408954 0.696832 0.654128 0.527681 0.135731 0.636103 0.780147 0.129282 0 0.500000 0 1 0.500000 0 0.500000 1 0.875889 0.892041 0.880825 0.905245 0.878688 0.900413 0.858476 0.500000 0.876190 0.500000 0.862894 0.893503 0.864980 0.500000 0.888438 0.864288 +0.738799 +0.769666 0.774171 0.488896 0.280723 0.707530 0.448758 0.874434 0.807903 0 0 0.500000 0 1 1 0.500000 0 0.864195 0.864689 0.500000 0.838924 0.500000 0.896565 0.890631 0.889856 0.879181 0.500000 0.885233 0.500000 0.866661 0.500000 0.890991 0.500000 +0.531902 +0.699385 0.367563 0.233484 0.357674 0.434904 0.824477 0.386744 0.211908 0 0.500000 0 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.864341 0.908916 0.903435 0.883541 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.893490 0.500000 0.500000 +0.227306 +0.570085 0.815566 0.221042 0.846949 0.473331 0.278132 0.360916 0.514974 0 0 1 1 1 0.500000 1 1 0.500000 0.883311 0.879553 0.500000 0.867848 0.848109 0.880905 0.500000 0.500000 0.500000 0.884410 0.868758 0.861019 0.500000 0.882237 0.500000 +0.416257 +0.633914 0.796512 0.776061 0.250651 0.886344 0.186594 0.279143 0.554024 0.500000 0.500000 1 0 0 1 0 1 0.500000 0.888345 0.881219 0.500000 0.864804 0.884434 0.500000 0.500000 0.500000 0.893126 0.500000 0.886926 0.500000 0.880310 0.500000 0.883141 +0.362129 +0.421218 0.409338 0.741365 0.319936 0.565221 0.666522 0.837650 0.182202 1 0 1 0.500000 1 0.500000 0 0.500000 0.919466 0.892622 0.500000 0.500000 0.929127 0.500000 0.873073 0.500000 0.863104 0.500000 0.500000 0.902246 0.500000 0.500000 0.906418 0.871247 +0.406693 +0.448592 0.485692 0.821390 0.503532 0.668035 0.670326 0.767466 0.604024 1 0.500000 0.500000 1 1 0.500000 1 1 0.500000 0.888265 0.869842 0.891614 0.500000 0.500000 0.905815 0.871041 0.500000 0.500000 0.857025 0.500000 0.857794 0.876598 0.500000 0.860398 +0.495243 +0.532393 0.130129 0.886070 0.382528 0.555285 0.877504 0.408771 0.814438 0.500000 0 0.500000 0.500000 0 0.500000 1 1 0.870811 0.917564 0.500000 0.878319 0.500000 0.500000 0.876087 0.856921 0.500000 0.880075 0.500000 0.500000 0.886449 0.880953 0.500000 0.857233 +0.456340 +0.237096 0.275812 0.568141 0.148138 0.357346 0.515516 0.482760 0.347615 0 0 1 0.500000 0.500000 0.500000 0.500000 0 0.901595 0.901030 0.870787 0.873127 0.500000 0.864644 0.873329 0.887420 0.500000 0.500000 0.876158 0.500000 0.500000 0.890390 0.871008 0.852940 +0.587552 +0.111934 0.673521 0.874898 0.617399 0.820483 0.455524 0.184310 0.297326 0.500000 1 1 0 1 1 1 1 0.500000 0.881298 0.904347 0.909045 0.878008 0.917685 0.879354 0.844686 0.904612 0.905633 0.500000 0.500000 0.877136 0.858691 0.890700 0.500000 +0.700265 +0.194249 0.142575 0.454661 0.881891 0.545141 0.778948 0.773552 0.481190 0 0.500000 0.500000 0.500000 1 1 0.500000 0 0.876540 0.500000 0.500000 0.911058 0.846679 0.891368 0.896382 0.896679 0.880704 0.500000 0.500000 0.500000 0.500000 0.880108 0.500000 0.865249 +0.526799 +0.413722 0.833938 0.198983 0.506816 0.654345 0.169378 0.541778 0.255300 0.500000 0 0.500000 0.500000 0 0 0 1 0.500000 0.895830 0.500000 0.859727 0.850220 0.500000 0.891212 0.899763 0.500000 0.500000 0.500000 0.500000 0.857441 0.500000 0.868444 0.856325 +0.338837 +0.303399 0.234012 0.445468 0.788335 0.149437 0.583399 0.594485 0.515612 0.500000 0 0.500000 0.500000 0.500000 0 0.500000 0 0.908662 0.901207 0.500000 0.863798 0.904795 0.871185 0.874053 0.896476 0.871679 0.887348 0.864572 0.891068 0.500000 0.857916 0.887554 0.500000 +0.706934 +0.847122 0.181034 0.439025 0.486092 0.347347 0.457742 0.663993 0.726020 1 0.500000 0.500000 0 1 1 0 0.500000 0.500000 0.905330 0.863082 0.914246 0.500000 0.500000 0.847036 0.500000 0.865066 0.500000 0.500000 0.500000 0.500000 0.500000 0.888510 0.883159 +0.316784 +0.508191 0.563171 0.617975 0.109359 0.596029 0.852112 0.853804 0.485225 0 0 1 1 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.871251 0.500000 0.894484 0.500000 0.906613 0.500000 0.500000 0.906182 0.500000 0.881634 0.880211 0.500000 0.500000 +0.219681 +0.351896 0.110406 0.596018 0.671931 0.538230 0.637256 0.157367 0.265723 0.500000 1 0.500000 0 1 0 0.500000 0.500000 0.500000 0.878876 0.899709 0.882034 0.898592 0.905023 0.868904 0.500000 0.900382 0.868448 0.868866 0.850761 0.500000 0.885090 0.916949 0.889701 +0.798557 +0.806268 0.752365 0.397211 0.118961 0.378424 0.366473 0.303275 0.546532 0 0 1 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.911909 0.852021 0.500000 0.884879 0.880520 0.888223 0.865537 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.894796 +0.389340 +0.574335 0.242205 0.543054 0.104272 0.706518 0.255788 0.830694 0.876751 0.500000 0.500000 1 0 0 0.500000 1 1 0.500000 0.899356 0.887762 0.868147 0.877834 0.500000 0.869972 0.855904 0.500000 0.871551 0.500000 0.500000 0.905824 0.500000 0.500000 0.500000 +0.466485 +0.324455 0.521600 0.324326 0.738869 0.771824 0.245899 0.218471 0.846881 0 0.500000 0.500000 0.500000 1 0.500000 1 0 0.872958 0.878291 0.894353 0.869912 0.882852 0.500000 0.500000 0.500000 0.873848 0.500000 0.500000 0.500000 0.500000 0.885166 0.500000 0.886166 +0.417592 +0.120546 0.616154 0.698513 0.106150 0.264825 0.710299 0.598287 0.405226 0.500000 0 0.500000 0 1 1 0.500000 0 0.500000 0.500000 0.896050 0.870192 0.500000 0.867159 0.910782 0.890808 0.894465 0.898480 0.500000 0.887417 0.500000 0.883596 0.500000 0.908389 +0.574949 +0.117188 0.183405 0.280860 0.619257 0.859699 0.356567 0.216190 0.109543 0.500000 0.500000 0 0 1 0.500000 0.500000 0.500000 0.891256 0.877491 0.875434 0.874462 0.500000 0.873216 0.884129 0.889206 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.903229 0.896826 +0.587634 +0.368680 0.599464 0.192861 0.813683 0.573922 0.501618 0.496542 0.787959 0 1 1 1 0.500000 1 0.500000 0 0.861572 0.867053 0.887084 0.500000 0.889513 0.500000 0.876623 0.898953 0.500000 0.500000 0.500000 0.882777 0.500000 0.876593 0.500000 0.885504 +0.472662 +0.459252 0.455371 0.812684 0.579516 0.129409 0.779140 0.811308 0.653684 0 0 1 0.500000 1 0 0.500000 0.500000 0.897314 0.500000 0.886087 0.891291 0.873173 0.861575 0.888620 0.919325 0.500000 0.896012 0.886661 0.500000 0.859686 0.887591 0.885672 0.903220 +0.769036 +0.689463 0.811727 0.494080 0.197122 0.432181 0.665887 0.570052 0.262524 0.500000 0 1 1 0.500000 0 1 0 0.885661 0.842717 0.902250 0.900883 0.500000 0.869144 0.876872 0.500000 0.883157 0.879911 0.500000 0.500000 0.912617 0.868371 0.500000 0.500000 +0.551510 +0.212765 0.136216 0.778676 0.210622 0.119947 0.147736 0.806664 0.207127 0.500000 0 0 0 0.500000 0 0.500000 0.500000 0.876429 0.500000 0.500000 0.859500 0.853729 0.500000 0.500000 0.909566 0.888651 0.891703 0.879506 0.500000 0.500000 0.500000 0.500000 0.899472 +0.410393 +0.314134 0.650106 0.134442 0.558963 0.296980 0.350017 0.528007 0.815580 0.500000 0 1 1 0.500000 0.500000 0 0.500000 0.871636 0.934376 0.876266 0.871602 0.888137 0.500000 0.896202 0.500000 0.500000 0.500000 0.500000 0.859674 0.823463 0.500000 0.500000 0.500000 +0.532986 +0.414880 0.283937 0.331623 0.186271 0.458399 0.514588 0.884130 0.570981 1 0.500000 1 1 0.500000 0.500000 0 0.500000 0.884171 0.500000 0.877627 0.895621 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.898306 0.899068 0.500000 0.500000 0.914930 0.883739 +0.372684 +0.218619 0.127051 0.347408 0.688988 0.819570 0.314663 0.736266 0.222783 0.500000 1 1 1 1 0 0.500000 0.500000 0.500000 0.871924 0.883248 0.500000 0.892957 0.900051 0.885815 0.884700 0.902126 0.893517 0.884573 0.915085 0.869135 0.870394 0.500000 0.500000 +0.784348 +0.507516 0.427971 0.314508 0.528401 0.232399 0.534975 0.332049 0.149227 0 1 1 1 0 0.500000 0.500000 0.500000 0.855953 0.500000 0.500000 0.902276 0.870077 0.884035 0.890752 0.843878 0.500000 0.860587 0.500000 0.875869 0.500000 0.500000 0.500000 0.500000 +0.472950 +0.876205 0.185059 0.891575 0.108834 0.565843 0.722032 0.188500 0.320461 0.500000 0.500000 0.500000 0 0.500000 0 0.500000 0 0.500000 0.500000 0.870455 0.905106 0.874223 0.892556 0.500000 0.893161 0.866160 0.500000 0.897257 0.863943 0.879892 0.500000 0.925182 0.879827 +0.628828 +0.167496 0.898151 0.228437 0.348839 0.743090 0.507449 0.897543 0.406849 0.500000 1 0.500000 0.500000 0 0.500000 0 0 0.500000 0.894055 0.500000 0.874990 0.500000 0.500000 0.871595 0.500000 0.887448 0.892060 0.500000 0.500000 0.500000 0.885273 0.901617 0.886657 +0.356092 +0.105979 0.583343 0.453612 0.853182 0.434255 0.325231 0.758997 0.665333 1 0 0.500000 0 0 0 0.500000 0.500000 0.899163 0.901013 0.906676 0.885797 0.874460 0.500000 0.500000 0.500000 0.500000 0.500000 0.894017 0.500000 0.500000 0.880827 0.500000 0.891689 +0.339575 +0.778706 0.714521 0.354129 0.845285 0.503678 0.719154 0.621889 0.282630 1 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.879610 0.859747 0.839516 0.895174 0.880144 0.900523 0.843323 0.500000 0.851072 0.861737 0.895896 0.500000 0.901423 0.500000 0.500000 +0.612087 +0.131776 0.559292 0.216242 0.187129 0.477451 0.726254 0.750372 0.497232 0.500000 0.500000 1 0 1 1 1 1 0.853679 0.889616 0.886469 0.500000 0.500000 0.875818 0.500000 0.500000 0.883182 0.500000 0.500000 0.889216 0.903803 0.500000 0.500000 0.880264 +0.403630 +0.882289 0.833243 0.511183 0.457687 0.537927 0.333086 0.768847 0.609115 1 0.500000 1 0.500000 1 0 0 1 0.877402 0.897082 0.893363 0.851904 0.886964 0.861862 0.889155 0.885532 0.898081 0.889530 0.854064 0.500000 0.863427 0.890415 0.879685 0.500000 +0.865014 +0.833345 0.636378 0.605863 0.539277 0.632806 0.568952 0.170810 0.609842 0 0.500000 0.500000 1 0 1 1 0.500000 0.500000 0.878062 0.875318 0.857819 0.885640 0.873384 0.893900 0.877293 0.500000 0.890816 0.500000 0.500000 0.889244 0.500000 0.872684 0.500000 +0.582957 +0.233521 0.191166 0.324397 0.337193 0.196103 0.896959 0.191311 0.356563 0 0 1 0 0.500000 1 0 0 0.500000 0.884525 0.881212 0.889472 0.500000 0.880969 0.863211 0.911099 0.888837 0.864747 0.500000 0.900335 0.500000 0.920297 0.500000 0.912247 +0.650173 +0.758569 0.663921 0.323045 0.816103 0.445221 0.630492 0.878878 0.295446 0 0.500000 1 1 0.500000 1 0.500000 0.500000 0.883225 0.862037 0.914083 0.879282 0.875572 0.884072 0.844240 0.500000 0.500000 0.500000 0.500000 0.865414 0.500000 0.886483 0.881088 0.500000 +0.575295 +0.668080 0.616154 0.697755 0.173292 0.722230 0.312966 0.226418 0.809977 1 0 0.500000 1 0.500000 1 1 1 0.894684 0.500000 0.893253 0.878074 0.874742 0.850695 0.500000 0.860031 0.500000 0.500000 0.870734 0.892676 0.500000 0.856744 0.871086 0.500000 +0.585823 +0.169217 0.222859 0.196317 0.507576 0.634493 0.115905 0.208709 0.774725 0 1 1 0 0 0.500000 1 0.500000 0.871731 0.885729 0.881074 0.897072 0.919014 0.880166 0.500000 0.500000 0.874206 0.888747 0.890181 0.500000 0.871917 0.500000 0.878884 0.879950 +0.673142 +0.155398 0.774563 0.674160 0.406422 0.537731 0.242761 0.283337 0.646463 0.500000 0 0.500000 0.500000 0.500000 1 0 0 0.892174 0.886388 0.894530 0.500000 0.500000 0.930572 0.500000 0.889353 0.895089 0.500000 0.856276 0.849878 0.874663 0.859023 0.903171 0.862102 +0.722326 +0.242564 0.170103 0.723540 0.738235 0.520862 0.722943 0.295138 0.580065 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0 0.500000 0.876889 0.500000 0.848178 0.891028 0.876921 0.881196 0.900953 0.500000 0.887054 0.907100 0.854901 0.876408 0.500000 0.879800 0.892276 +0.679793 +0.703081 0.878199 0.896139 0.802682 0.471578 0.406035 0.429673 0.111034 1 0.500000 1 0 0 1 0 1 0.500000 0.500000 0.849837 0.907492 0.885598 0.872307 0.899219 0.823234 0.500000 0.875815 0.854300 0.500000 0.859900 0.500000 0.900162 0.901906 +0.638709 +0.798551 0.647275 0.543123 0.464885 0.729119 0.898164 0.443738 0.500776 1 0 0 1 0 1 0.500000 1 0.888153 0.875350 0.876735 0.901756 0.877327 0.885245 0.500000 0.876881 0.872442 0.906135 0.500000 0.500000 0.500000 0.892558 0.500000 0.866486 +0.625732 +0.126017 0.571253 0.449911 0.247359 0.756405 0.306053 0.835959 0.555527 0 1 1 0.500000 0.500000 0 0 0.500000 0.902013 0.900996 0.877914 0.888223 0.885163 0.500000 0.924598 0.903247 0.500000 0.500000 0.904221 0.500000 0.500000 0.856178 0.500000 0.500000 +0.654467 +0.789603 0.655187 0.724983 0.181034 0.437428 0.852383 0.603861 0.493115 1 1 1 0.500000 0 1 0 0.500000 0.881195 0.860925 0.862403 0.871544 0.878408 0.864888 0.902477 0.500000 0.500000 0.881898 0.885759 0.500000 0.500000 0.907520 0.860920 0.860374 +0.711181 +0.827128 0.144356 0.786704 0.731098 0.567139 0.112291 0.266241 0.516812 1 0.500000 0 1 0.500000 0.500000 1 0 0.858210 0.500000 0.864510 0.500000 0.881333 0.500000 0.867934 0.883849 0.500000 0.500000 0.500000 0.500000 0.500000 0.874325 0.882868 0.869554 +0.437967 +0.882397 0.247959 0.441196 0.174955 0.661316 0.537959 0.873299 0.138366 0 0.500000 0 1 0.500000 0 0.500000 0 0.858437 0.884689 0.876073 0.862948 0.500000 0.896273 0.909663 0.893061 0.500000 0.886647 0.500000 0.500000 0.901402 0.882482 0.875270 0.883943 +0.666885 +0.180447 0.167913 0.714498 0.760738 0.324671 0.153279 0.362003 0.383254 1 1 0 0.500000 0 1 1 0.500000 0.901461 0.884883 0.500000 0.500000 0.500000 0.874682 0.877680 0.905970 0.901007 0.500000 0.500000 0.500000 0.500000 0.904630 0.500000 0.500000 +0.468844 +0.779963 0.238048 0.275083 0.321996 0.782742 0.548274 0.644972 0.242685 0.500000 1 0 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.879845 0.886360 0.500000 0.917901 0.500000 0.874165 0.500000 0.887427 0.500000 0.500000 0.917400 0.881791 0.889862 0.500000 0.863081 +0.468623 +0.571149 0.306784 0.319802 0.712141 0.347151 0.359559 0.114544 0.535625 1 1 0.500000 0 1 0 0.500000 0.500000 0.876705 0.887273 0.500000 0.887784 0.879126 0.500000 0.887267 0.861640 0.500000 0.857148 0.500000 0.873000 0.874539 0.899640 0.500000 0.888079 +0.673212 +0.583567 0.216317 0.643894 0.520702 0.433376 0.755476 0.686430 0.222361 0.500000 0.500000 0.500000 0 1 0 0 0.500000 0.878961 0.883201 0.895457 0.902198 0.500000 0.500000 0.892997 0.500000 0.500000 0.500000 0.500000 0.500000 0.896667 0.845688 0.883536 0.500000 +0.417258 +0.600491 0.656022 0.362790 0.818733 0.652731 0.246488 0.529635 0.176260 0 0.500000 0 0.500000 0 0 1 0.500000 0.500000 0.500000 0.916808 0.841346 0.500000 0.888628 0.898658 0.500000 0.875396 0.916953 0.500000 0.900345 0.500000 0.500000 0.500000 0.500000 +0.293502 +0.333517 0.819270 0.878814 0.820021 0.698396 0.537286 0.766537 0.190605 0.500000 0.500000 0.500000 0.500000 1 0.500000 0 1 0.873334 0.888218 0.854875 0.884544 0.500000 0.897908 0.853226 0.911259 0.500000 0.500000 0.500000 0.500000 0.500000 0.881209 0.500000 0.908736 +0.529464 +0.402256 0.108869 0.359251 0.527589 0.192997 0.707304 0.659036 0.615278 0.500000 1 0 1 1 1 0.500000 1 0.879543 0.874967 0.867526 0.888435 0.500000 0.873972 0.882031 0.899935 0.500000 0.903256 0.903442 0.500000 0.500000 0.909560 0.841081 0.892811 +0.780564 +0.261546 0.804182 0.888027 0.465288 0.297069 0.231529 0.315612 0.689618 0 1 0 0.500000 1 0 0 0.500000 0.500000 0.888108 0.500000 0.886451 0.858201 0.893140 0.869476 0.892365 0.500000 0.898043 0.883712 0.500000 0.874481 0.912795 0.500000 0.500000 +0.587582 +0.453884 0.625898 0.470349 0.549072 0.455036 0.792243 0.221879 0.514359 0 1 0 0.500000 1 0 0 1 0.500000 0.880960 0.872177 0.500000 0.926885 0.500000 0.906176 0.874245 0.920403 0.500000 0.894995 0.500000 0.500000 0.500000 0.869375 0.500000 +0.409308 +0.114660 0.884836 0.435362 0.528717 0.754011 0.864171 0.322445 0.326010 0 1 0.500000 0 0.500000 0.500000 1 1 0.879095 0.833900 0.890722 0.500000 0.892733 0.875406 0.925807 0.884431 0.895809 0.500000 0.880570 0.500000 0.855122 0.895649 0.880752 0.916406 +0.780808 +0.301034 0.485442 0.621817 0.673487 0.292504 0.311817 0.103795 0.681147 0 0 0.500000 0 0 1 0 1 0.500000 0.888739 0.500000 0.500000 0.862794 0.500000 0.881159 0.872000 0.865075 0.878911 0.500000 0.500000 0.500000 0.885470 0.919039 0.885059 +0.404180 +0.164035 0.332043 0.842388 0.613124 0.174426 0.570830 0.535528 0.820109 0.500000 0.500000 0 1 0 1 0 1 0.849067 0.890216 0.852194 0.887844 0.500000 0.897853 0.873212 0.500000 0.876599 0.500000 0.500000 0.886384 0.912364 0.500000 0.883727 0.859181 +0.563443 +0.485301 0.662479 0.891873 0.312075 0.443047 0.892405 0.444836 0.559994 1 1 0.500000 1 1 1 0 0.500000 0.862967 0.500000 0.500000 0.879715 0.900456 0.500000 0.858569 0.875547 0.893539 0.500000 0.913340 0.853611 0.872586 0.868780 0.896465 0.867631 +0.742075 +0.623753 0.410891 0.440002 0.118669 0.264534 0.629888 0.327745 0.607022 1 1 1 0.500000 0 0.500000 0 0 0.874758 0.896644 0.500000 0.500000 0.895784 0.881682 0.892926 0.500000 0.500000 0.875186 0.500000 0.907678 0.887878 0.500000 0.903846 0.500000 +0.480025 +0.356917 0.495935 0.177177 0.412776 0.126016 0.554192 0.897532 0.227756 1 0.500000 0 0.500000 0 1 1 0.500000 0.500000 0.908848 0.893627 0.905344 0.500000 0.929893 0.887902 0.851682 0.857768 0.500000 0.500000 0.500000 0.861575 0.896411 0.874301 0.894551 +0.636562 +0.789261 0.502724 0.682704 0.810925 0.620503 0.192106 0.124734 0.610933 0 0.500000 0.500000 0 0.500000 0.500000 0.500000 1 0.885851 0.872063 0.874761 0.853288 0.913479 0.500000 0.861696 0.500000 0.857606 0.500000 0.500000 0.500000 0.886834 0.879292 0.870594 0.500000 +0.498972 +0.246862 0.415368 0.487731 0.703292 0.424008 0.101205 0.345471 0.133427 0 0 0.500000 0 0.500000 1 1 0 0.883954 0.500000 0.881496 0.500000 0.500000 0.500000 0.500000 0.885663 0.901856 0.833251 0.861192 0.888546 0.858900 0.849826 0.500000 0.865504 +0.507298 +0.195615 0.699551 0.754477 0.692769 0.372550 0.844601 0.201795 0.576490 0.500000 0.500000 0 1 1 0 1 0 0.500000 0.500000 0.889678 0.857134 0.878666 0.867823 0.879789 0.921466 0.859017 0.877395 0.877766 0.874338 0.500000 0.877046 0.892606 0.500000 +0.710795 +0.785030 0.603478 0.449446 0.435440 0.239634 0.533525 0.755639 0.219542 0.500000 1 1 1 1 1 0.500000 0.500000 0.898832 0.500000 0.500000 0.889680 0.873262 0.886584 0.874456 0.864765 0.859589 0.868090 0.500000 0.872102 0.500000 0.912265 0.907911 0.500000 +0.563021 +0.181555 0.389381 0.530734 0.238364 0.791160 0.427668 0.809054 0.367684 1 1 0.500000 0 1 0.500000 1 1 0.500000 0.500000 0.879890 0.882854 0.924954 0.882880 0.500000 0.903499 0.500000 0.883264 0.500000 0.500000 0.863176 0.861468 0.868112 0.892350 +0.590017 +0.124632 0.484624 0.473228 0.135825 0.618520 0.458147 0.271619 0.503357 0 0.500000 1 0.500000 0 1 0.500000 1 0.500000 0.863450 0.500000 0.889302 0.885548 0.500000 0.887585 0.500000 0.865753 0.500000 0.853594 0.500000 0.874201 0.876880 0.853217 0.500000 +0.459262 +0.549113 0.347175 0.773305 0.338637 0.464346 0.469182 0.144775 0.628595 0 0.500000 0.500000 1 0 0 1 1 0.859630 0.865674 0.500000 0.878876 0.893232 0.500000 0.880667 0.905098 0.500000 0.884971 0.500000 0.876258 0.500000 0.905048 0.877272 0.500000 +0.522975 +0.618155 0.732460 0.255300 0.626643 0.190642 0.325341 0.211818 0.226528 0 0.500000 0 1 0 1 1 0.500000 0.500000 0.877943 0.500000 0.886594 0.834419 0.872277 0.875494 0.874933 0.865255 0.908027 0.902537 0.500000 0.877362 0.500000 0.500000 0.864285 +0.588996 +0.790111 0.395853 0.503974 0.889775 0.249592 0.690019 0.557207 0.377362 0 1 0.500000 1 0 0 0.500000 1 0.870845 0.892739 0.899878 0.500000 0.882881 0.500000 0.937017 0.841479 0.885919 0.833976 0.500000 0.500000 0.865765 0.500000 0.500000 0.881902 +0.553449 +0.763532 0.886274 0.611693 0.121157 0.478571 0.349054 0.349900 0.170651 0 0.500000 0 1 0.500000 0 0.500000 0 0.500000 0.883275 0.878091 0.869819 0.915739 0.874589 0.500000 0.883284 0.881996 0.880488 0.901060 0.875642 0.500000 0.909026 0.500000 0.870623 +0.689037 +0.611699 0.225704 0.812961 0.427190 0.781822 0.288515 0.474850 0.212087 1 1 1 1 1 1 0 0.500000 0.919713 0.893745 0.500000 0.881232 0.500000 0.915981 0.500000 0.879420 0.500000 0.500000 0.500000 0.873769 0.500000 0.500000 0.500000 0.500000 +0.386474 +0.113612 0.875010 0.898852 0.799522 0.170495 0.109104 0.314986 0.566307 0.500000 0 1 0 1 1 0 1 0.904852 0.870186 0.500000 0.500000 0.866797 0.903400 0.891267 0.500000 0.861662 0.500000 0.862114 0.898226 0.500000 0.879844 0.891202 0.881500 +0.544370 +0.717119 0.823285 0.345141 0.180017 0.141613 0.296877 0.214291 0.182583 1 0.500000 0.500000 1 1 1 0 1 0.856045 0.500000 0.883636 0.912526 0.833226 0.500000 0.887419 0.884876 0.500000 0.862921 0.500000 0.500000 0.500000 0.871100 0.500000 0.866661 +0.472449 +0.822572 0.370332 0.377121 0.866820 0.842946 0.401230 0.465117 0.623858 0.500000 1 0.500000 1 0.500000 0.500000 0 0 0.895910 0.872784 0.860352 0.500000 0.854083 0.888441 0.500000 0.895579 0.500000 0.500000 0.855138 0.500000 0.500000 0.883823 0.500000 0.895471 +0.531752 +0.587646 0.768306 0.315400 0.325246 0.205428 0.821976 0.746400 0.146060 0.500000 0 1 0.500000 1 0 0 0.500000 0.867721 0.860671 0.867901 0.907843 0.915677 0.500000 0.500000 0.500000 0.855923 0.886560 0.856629 0.897627 0.884433 0.500000 0.500000 0.909580 +0.573554 +0.243620 0.313346 0.211032 0.622479 0.604907 0.467659 0.143638 0.718749 0 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.907346 0.897858 0.893662 0.500000 0.871060 0.868310 0.500000 0.500000 0.868873 0.500000 0.500000 0.500000 0.898922 0.500000 0.500000 +0.385461 +0.843314 0.176905 0.639597 0.302886 0.398515 0.449406 0.561026 0.565354 0.500000 0 0 0 0.500000 1 0.500000 0 0.923139 0.884908 0.500000 0.885863 0.852638 0.871098 0.873244 0.889765 0.884502 0.500000 0.900546 0.916879 0.500000 0.500000 0.842215 0.500000 +0.648612 +0.594842 0.117667 0.237308 0.640811 0.703864 0.435178 0.629319 0.359151 0.500000 1 0 1 0.500000 0.500000 0.500000 0 0.874070 0.863688 0.865212 0.895572 0.883056 0.906151 0.898679 0.868393 0.500000 0.863154 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 +0.680107 diff --git a/lib/ann/fann/datasets/mushroom.test b/lib/ann/fann/datasets/mushroom.test new file mode 100644 index 0000000..ec39558 --- /dev/null +++ b/lib/ann/fann/datasets/mushroom.test @@ -0,0 +1,8125 @@ +4062 125 2 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +1 0 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 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 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 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 1 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 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 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +1 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 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 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 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 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 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 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +1 0 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 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 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 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 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 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 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 +1 0 +1 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 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 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 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 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 1 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 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +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 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +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 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 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 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 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 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 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 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 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 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +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 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 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 1 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 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +1 0 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 1 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 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 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 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 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 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 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 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 1 0 0 0 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 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +1 0 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 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 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +1 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 1 0 0 0 0 1 0 0 1 0 1 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 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +0 0 0 1 0 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 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 1 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 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 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 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 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 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 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 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 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 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 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 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 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 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 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 1 0 0 0 0 1 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 1 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 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 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 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 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 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 1 0 0 1 0 1 0 0 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 1 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 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 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 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 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 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +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 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 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 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 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 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 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +1 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 1 +1 0 +1 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 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 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 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 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 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 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 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +1 0 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 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +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 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 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 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 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 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 1 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 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 +0 1 +1 0 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 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 1 0 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 +0 1 +1 0 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 1 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 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 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +1 0 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 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 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 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 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 0 0 1 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 1 0 0 0 0 0 +1 0 +1 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 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +1 0 0 0 0 0 0 0 0 1 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 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 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 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 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 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 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 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 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 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 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 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 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 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 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 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 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 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 0 0 0 0 +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 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 +0 1 +0 0 1 0 0 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 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 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 1 0 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 +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 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 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 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 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 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 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 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +1 0 0 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 1 +1 0 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 0 0 1 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 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 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 1 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 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 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 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 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 1 0 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 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 1 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 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 +1 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 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 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 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 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +1 0 +0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +1 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 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 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 1 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 0 0 +0 1 +0 0 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 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 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 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 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 1 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 +0 1 +1 0 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 +1 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 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 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 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 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +1 0 0 0 0 0 0 0 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 1 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 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 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 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 1 0 0 0 0 0 1 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 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 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 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 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 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 0 1 0 1 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 1 0 0 1 0 1 0 0 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 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 0 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +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 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 0 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 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 0 1 0 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 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 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 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +1 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 0 1 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 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 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 0 0 1 0 1 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 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 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 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 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 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 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 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 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +1 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 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 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 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 1 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 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 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 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 0 0 1 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +1 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 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 +0 1 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 1 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +1 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 1 0 0 0 0 1 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +1 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 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 1 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 1 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +1 0 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 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 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +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 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 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 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 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 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 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 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 1 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 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 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 1 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 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 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 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 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 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +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 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 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 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 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 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 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 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 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 0 1 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 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 1 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 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 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +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 1 0 0 0 0 1 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 0 1 +1 0 +1 0 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 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 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 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 0 +1 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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 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 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 1 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 0 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 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 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 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 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 1 +1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 0 1 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 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 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 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 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 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 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 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 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 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 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 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 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 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 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 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 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +0 1 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +1 0 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 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 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 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 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 1 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +1 0 +0 0 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 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 +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 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 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 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 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 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 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 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 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 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 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 1 0 0 1 0 1 0 0 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 1 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 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 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 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 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 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +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 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 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 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +1 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +1 0 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 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 1 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 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 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 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 1 0 0 0 0 0 +1 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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 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 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 1 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 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 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 1 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 0 1 0 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 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 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 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 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 1 0 0 0 0 1 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 1 +0 1 +1 0 0 0 0 0 0 0 1 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 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 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 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 1 0 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 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 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 1 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 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 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 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 1 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 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 1 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 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 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 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 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 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 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 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 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 1 0 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 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 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +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 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 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 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 +1 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 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 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 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 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 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 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 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 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 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 1 +1 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 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +1 0 0 0 0 0 0 0 1 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 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 1 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 0 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 1 +1 0 +0 0 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 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 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 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 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 1 0 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 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 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 +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 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 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 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 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 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 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 1 +0 1 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 0 0 0 1 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 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 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 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 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 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 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 1 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 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 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 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +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 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +1 0 0 0 0 0 0 0 1 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 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 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 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 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 1 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 1 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 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 1 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 0 1 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 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 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 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 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 1 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 1 0 0 1 0 1 0 0 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 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 1 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 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 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 0 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 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 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 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 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 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 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 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 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 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 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 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 1 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 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 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 1 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 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 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 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 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 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 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 +1 0 +0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 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 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 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 0 1 0 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 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 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 0 1 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 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 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 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 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 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +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 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 0 0 +1 0 +1 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 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 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 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +1 0 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 1 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 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 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +1 0 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +1 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 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 1 0 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 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 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 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 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 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 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 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 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 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 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 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 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 0 1 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +1 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 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 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 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 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 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 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 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 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 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +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 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 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 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 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 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 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 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 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 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 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 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 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 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 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 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +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 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 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 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 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 1 0 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +1 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 1 0 0 0 0 1 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 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 0 0 1 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 1 0 0 0 0 0 +1 0 +1 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 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 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 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 0 1 0 1 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 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 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 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 1 +1 0 +1 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 1 0 0 0 0 1 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +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 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 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 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 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 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 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 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +1 0 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 1 0 0 0 0 1 0 0 1 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 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 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +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 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 0 1 1 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 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 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 1 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +1 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 1 0 0 0 0 1 0 0 1 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 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 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 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 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 1 0 0 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 0 1 +1 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 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 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +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 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 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 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 0 1 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 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 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 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 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 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 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 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 0 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +1 0 0 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 1 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 1 0 0 1 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 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 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 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 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 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 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +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 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 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 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +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 1 0 0 1 0 1 0 0 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 1 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 1 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 1 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 1 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 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 0 1 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 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 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 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 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 +0 1 +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 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 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 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +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 1 0 0 0 0 1 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 1 0 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 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 1 0 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 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 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 0 1 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +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 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 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 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 1 0 0 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 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 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 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 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 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +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 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +1 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 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 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 1 0 0 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 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 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 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 1 +0 0 0 1 0 0 1 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 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 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 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 1 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 1 0 0 1 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 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 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 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 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 1 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 0 1 0 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +1 0 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 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +1 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 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 0 1 0 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 1 0 0 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 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 1 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 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 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 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 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 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 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 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 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +1 0 0 0 0 0 0 0 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 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 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 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +1 0 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 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 0 0 1 1 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 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 +1 0 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 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 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 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 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 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 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 +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 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 1 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 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 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +1 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 0 0 1 0 0 0 0 1 0 0 1 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 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 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 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 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +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 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 +0 1 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 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 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 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 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 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 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +1 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 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 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 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 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +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 1 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 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 0 0 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 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 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 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 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 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 0 1 0 1 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 0 1 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 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 1 +0 1 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +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 1 0 0 0 0 1 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 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 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 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 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 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 1 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 1 0 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 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 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +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 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +1 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 1 0 0 0 0 1 0 0 1 0 1 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 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 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 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +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 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +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 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +1 0 0 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 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 0 1 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 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 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +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 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 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 1 0 0 0 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 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 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 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 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +1 0 0 0 0 0 1 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 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 1 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 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 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 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 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 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 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 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 1 +1 0 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 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 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +1 0 0 0 0 0 0 0 0 1 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 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +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 1 0 0 0 0 1 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +1 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 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 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 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 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 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 1 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 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 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 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 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 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 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 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +1 0 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 0 0 1 0 0 1 0 0 0 0 0 +1 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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 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 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 0 0 0 0 +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 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +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 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +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 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 +1 0 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 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 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +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 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 0 1 0 1 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 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 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 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 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 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 0 1 0 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 1 0 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 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 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 1 +1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +1 0 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 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 +0 1 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 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 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 1 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 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 1 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 1 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 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 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 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 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 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 0 0 1 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +1 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 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 1 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 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 0 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 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 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 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +1 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 0 0 1 0 0 0 0 1 0 0 1 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 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 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +1 0 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 1 0 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 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 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 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 1 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 1 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 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 0 1 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 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 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 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 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 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 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 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 1 0 0 0 0 1 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 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 1 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 1 0 0 1 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 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 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +1 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 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 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 1 0 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 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 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 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 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 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 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 +1 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 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 0 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 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 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 +1 0 +0 0 0 1 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 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 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 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 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +1 0 +1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +1 0 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 1 0 0 0 0 1 0 0 1 0 1 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 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 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 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 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 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 0 0 0 1 1 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 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 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 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 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 1 +0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 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 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 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 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 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 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 0 +1 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 1 0 0 0 0 1 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 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 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 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 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 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 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 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 0 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 +1 0 +0 0 1 0 0 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 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 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 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 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 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 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 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 1 +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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 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 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 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 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 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 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 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 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 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 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 0 1 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 1 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 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 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 1 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 1 +0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +1 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 1 0 0 0 0 1 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 1 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 0 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 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 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 1 +1 0 +1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 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 1 0 0 0 1 0 0 0 1 0 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 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 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 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 0 1 1 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 0 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 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 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +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 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 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 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 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 1 0 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 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 1 0 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 0 1 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 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 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 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +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 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 1 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 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 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 1 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 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +1 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 1 0 0 0 0 1 0 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 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 1 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 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 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +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 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 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 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 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 1 0 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +1 0 +1 0 0 0 0 0 1 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 1 0 0 1 0 1 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 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +1 0 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 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 1 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +1 0 0 0 0 0 0 0 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 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 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 1 0 1 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +1 0 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 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 0 0 0 1 1 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 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 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 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 0 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 +0 1 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 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 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +1 0 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 1 0 0 0 0 1 0 0 1 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 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 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 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 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 0 +1 0 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 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 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 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 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 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 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 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 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 +0 1 +0 0 0 1 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 1 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 1 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 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 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 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 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 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +1 0 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 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 1 +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 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 0 1 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 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 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 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 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 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 1 0 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 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 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +1 0 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 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 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 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 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 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 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 0 0 0 0 +1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 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 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 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 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 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 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 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 1 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 1 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 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 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 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 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 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 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 0 0 0 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 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +1 0 +1 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 1 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 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 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 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 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +1 0 0 0 0 0 1 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 1 0 0 1 0 1 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 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +1 0 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 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 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +1 0 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 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 +1 0 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 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 1 1 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 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 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +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 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 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 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +1 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 1 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 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 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +1 0 0 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 0 1 1 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 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 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 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 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 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 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 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 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 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 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 1 +1 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 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 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 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 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 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 0 1 1 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 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 0 1 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 1 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 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 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 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 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 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 1 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 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 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 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 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 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 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +0 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 diff --git a/lib/ann/fann/datasets/mushroom.train b/lib/ann/fann/datasets/mushroom.train new file mode 100644 index 0000000..1374172 --- /dev/null +++ b/lib/ann/fann/datasets/mushroom.train @@ -0,0 +1,8125 @@ +4062 125 2 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 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 1 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 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +1 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 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 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 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 1 +1 0 +1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 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 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 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 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 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 1 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 0 0 1 1 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 0 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +1 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 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 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 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +1 0 +0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 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 1 0 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 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 1 0 0 1 0 1 0 0 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 1 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 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +0 1 +1 0 0 0 0 0 1 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 1 0 0 1 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 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 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 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 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 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 1 0 0 0 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +1 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 1 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 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 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +1 0 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 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 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 1 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 1 +0 1 +1 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 1 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +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 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 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 0 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 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 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +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 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +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 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 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 1 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 1 0 0 0 +0 1 +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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 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 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 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 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +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 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 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 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 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 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 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 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 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 1 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 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 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 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 1 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 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +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 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 1 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 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 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 1 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 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 0 1 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +0 1 +0 0 0 1 0 0 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 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +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 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 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 1 0 0 0 0 1 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 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 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 0 1 1 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 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 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 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 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 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 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 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +1 0 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 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 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 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 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +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 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +1 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 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 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 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 0 1 0 1 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 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 +1 0 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +0 0 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 1 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 0 +1 0 +0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 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 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 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 1 0 0 0 +1 0 +0 0 1 0 0 0 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 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 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 1 +0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 1 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 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 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 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 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 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 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 0 1 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 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 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 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 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 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 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 1 +1 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 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 1 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +1 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 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 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 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 1 0 1 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 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 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 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 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 0 0 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 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 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 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 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 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 0 1 0 1 0 0 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 1 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 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 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 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 1 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 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +1 0 +1 0 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 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 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 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 0 1 0 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 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 0 1 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +1 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 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 0 1 +1 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 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 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 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +1 0 +0 0 1 0 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 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 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 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 0 1 0 0 0 1 0 0 0 1 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 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 1 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 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 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +1 0 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 1 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 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 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 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 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +1 0 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 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 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 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 1 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 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 +0 1 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 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 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 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 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 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 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +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 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 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 1 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 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 1 0 0 0 0 1 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +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 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 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 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +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 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 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 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +1 0 0 0 0 0 0 0 1 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 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 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 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 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 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 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 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 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 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 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 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 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 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 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 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 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 1 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 0 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 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 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +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 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 0 0 +0 1 +1 0 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 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 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 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 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 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 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 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 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 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +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 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +1 0 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 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 0 0 1 0 0 0 1 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 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 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 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 +0 1 +0 0 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 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 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 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 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 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 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 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 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 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +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 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 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 1 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 1 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 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +1 0 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 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +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 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 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 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 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 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 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 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +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 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 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 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 0 1 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +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 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 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 1 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 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 1 0 0 1 0 1 0 0 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 1 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 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 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 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 1 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 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 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 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +1 0 0 0 0 0 0 0 1 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 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 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 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 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 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 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 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 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 0 0 1 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 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 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 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 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 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +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 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +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 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 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 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 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 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 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 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 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 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 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 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 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 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 0 1 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 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 1 +0 1 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +1 0 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 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +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 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +1 0 0 0 0 0 0 0 0 1 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 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 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 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 1 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 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 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 1 0 0 0 0 0 0 +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 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 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 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +1 0 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 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 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 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 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 1 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 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +1 0 0 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 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 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 +0 1 +1 0 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 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 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 +1 0 +0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 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 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 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 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 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 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 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 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 1 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 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 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 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 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 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 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 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 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 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 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 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 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 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 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 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 0 1 1 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 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 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 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 1 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +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 1 0 0 0 0 1 0 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 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 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 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 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 +1 0 +1 0 0 0 0 0 0 0 0 1 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 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 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 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 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 1 0 0 0 0 0 0 +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 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +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 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +1 0 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 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 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 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 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 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 1 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +1 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 1 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 1 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 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +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 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +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 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +1 0 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 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 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 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 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 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 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 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 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 1 0 1 0 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 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 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 0 0 1 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 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 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +1 0 0 0 0 0 0 0 1 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 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 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 1 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 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 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +1 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 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 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 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 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 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 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 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 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 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 1 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 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 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 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 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 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 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 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 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 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 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 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 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 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 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +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 1 0 0 0 0 1 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 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 0 1 +1 0 +0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 0 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 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 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 1 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 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 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 1 1 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 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 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 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 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 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 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 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +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 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 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 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 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 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 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 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +1 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 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +1 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 1 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 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 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 1 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 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 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 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 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 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 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 1 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 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 1 0 1 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 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 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 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 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 +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 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 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 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 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 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +0 1 +0 0 1 0 0 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 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 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 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 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 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 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 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 1 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 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 1 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 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 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 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +1 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 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 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 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 0 1 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 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 0 0 1 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 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 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 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 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 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 1 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 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 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 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 1 0 0 0 +1 0 +1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 0 1 0 0 0 1 0 0 0 1 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 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 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +1 0 0 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 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 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +0 1 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 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 1 0 0 0 0 0 0 +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 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 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 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 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 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 0 0 0 0 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 1 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 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 0 0 1 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 1 0 0 0 0 0 +1 0 +1 0 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 1 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 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 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 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 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 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 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 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 0 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 1 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 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 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 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 0 1 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 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 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +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 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 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 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 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 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +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 1 0 0 0 0 0 1 0 1 0 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 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +1 0 0 0 0 0 0 0 0 1 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 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 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 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 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 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 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 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 1 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 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 +0 1 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 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 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 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 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 +1 0 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 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 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 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 1 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 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 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 0 0 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 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 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 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 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 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 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 0 1 0 1 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 0 1 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 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 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 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 1 0 0 0 0 0 0 +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 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 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 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 1 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 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 +1 0 +1 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 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 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 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 1 1 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 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 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 1 0 0 0 1 0 0 0 1 0 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 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 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 1 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 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 1 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 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 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 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 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 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +1 0 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 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 1 0 0 0 +1 0 +0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 0 1 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 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 1 +1 0 +0 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 0 0 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 1 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 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 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 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +1 0 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 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 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 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 0 0 1 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +0 1 +0 0 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 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +0 1 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 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 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 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 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 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 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 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 1 0 0 0 0 1 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +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 1 0 0 0 1 0 0 0 1 0 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 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +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 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 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 1 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 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 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 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 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 1 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 1 0 0 0 0 1 0 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 1 0 0 0 0 0 +0 1 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 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 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 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 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 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 0 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 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 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 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 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 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 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 1 0 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 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 0 1 0 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +1 0 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 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +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 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 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 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 0 1 +1 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 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +1 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +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 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 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 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 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 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 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 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 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 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +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 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +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 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 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 0 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 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 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 1 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 0 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 0 1 1 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 0 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 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 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 1 0 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 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 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 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 1 0 0 0 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 0 0 0 0 +1 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 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 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 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +1 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 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 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 +1 0 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 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 0 1 0 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 +1 0 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 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 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 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 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +1 0 0 0 0 0 0 0 0 1 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 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 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 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 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 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 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 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 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 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 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 1 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 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 0 1 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 0 1 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 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 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 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 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 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 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 0 0 0 0 0 1 1 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 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 1 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 1 0 0 1 0 1 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 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +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 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 1 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 0 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 +0 1 +0 0 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 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 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 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 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 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 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 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 +0 1 +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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 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 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +1 0 0 0 0 0 1 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 0 1 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 1 0 0 0 0 0 +1 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 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 1 1 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 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 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 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +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 1 0 0 0 0 1 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 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 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 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 1 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 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 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +1 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 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 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 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 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 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 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 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 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 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +1 0 0 0 0 0 1 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 0 1 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 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 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 1 0 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 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 1 0 0 0 0 0 0 +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 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 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 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 0 1 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 0 0 1 0 1 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 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 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 0 1 0 1 0 0 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 1 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 1 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 1 +0 1 +0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +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 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 0 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 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 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 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 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 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 1 0 0 0 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 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 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 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 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 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 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 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 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 +0 1 +1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 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 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 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 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 +0 1 +0 0 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 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +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 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +1 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 1 +1 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 1 0 0 0 0 1 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 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 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 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 1 0 0 0 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 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 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 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 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 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 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +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 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 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 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 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 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 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 1 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 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 1 1 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 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 1 0 0 0 0 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +1 0 0 0 0 0 0 0 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 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +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 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +0 1 +0 0 0 1 0 0 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 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 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 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 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 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 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 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 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 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 0 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 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 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 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 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 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 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 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 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 1 +1 0 +1 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 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 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 1 0 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +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 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 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 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 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 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 0 0 1 1 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 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 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 1 0 1 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 1 0 0 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 1 0 1 0 0 0 1 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 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 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +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 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +1 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 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 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 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 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 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 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 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 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 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 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 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +0 0 0 1 0 0 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 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 +0 1 +0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 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 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 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 0 0 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 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 1 0 0 0 +1 0 +1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 0 1 1 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 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 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 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 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 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 +0 1 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 1 0 0 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 1 0 1 0 0 0 1 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 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 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 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 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 1 +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 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +1 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 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 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 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 1 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 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 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 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 1 0 0 0 0 1 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 1 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +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 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 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 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 +0 1 +1 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +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 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 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 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 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +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 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 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 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 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 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +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 1 0 0 0 0 0 1 0 1 0 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 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +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 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 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 1 0 0 0 0 0 1 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 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 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 1 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 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 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 0 0 1 1 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 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 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 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 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 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 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 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 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 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 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 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 0 0 1 0 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 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 0 1 1 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 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 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 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 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 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 0 +1 0 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 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 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 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 1 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 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 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 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +1 0 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 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 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 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 0 1 0 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 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 1 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +1 0 +0 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 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 0 0 1 0 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 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 1 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 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +1 0 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 1 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 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 1 0 0 0 0 1 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 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 1 +1 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 0 1 0 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 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 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 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +1 0 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 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 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 1 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +1 0 0 0 0 0 1 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 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 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 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +1 0 0 0 0 0 0 0 1 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 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 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 +0 1 +1 0 0 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 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 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 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 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 1 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 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 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 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 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 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 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 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 1 0 0 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 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 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 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +1 0 0 0 0 0 1 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 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +0 1 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 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 1 1 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 1 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 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 1 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 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 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 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 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +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 1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 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 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 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 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 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 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 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 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 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +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 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 +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 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 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 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 0 1 0 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 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 0 1 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +1 0 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 1 0 0 0 0 1 0 0 1 0 1 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 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 1 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 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 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 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 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 0 1 0 0 1 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 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 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 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 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 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 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 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 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 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 1 1 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 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 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 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 +0 1 +0 0 0 0 1 0 1 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 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 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 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 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 1 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +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 1 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 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 1 0 0 1 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 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 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 0 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 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 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 1 0 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 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 1 0 1 0 0 0 1 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 0 0 0 1 0 0 0 0 +1 0 +0 0 0 0 1 0 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 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 +0 1 +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 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 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 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 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 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 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 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 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 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 +1 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 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 0 1 0 1 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +1 0 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 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 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 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 1 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 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 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 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +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 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +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 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 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 1 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 +0 1 +0 0 1 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 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 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 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +0 0 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 1 0 0 1 0 0 0 1 0 0 1 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 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +1 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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 0 1 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 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 0 0 0 1 0 +1 0 +0 0 1 0 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 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 +1 0 +1 0 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 1 0 1 0 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 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 0 1 0 0 0 0 0 0 +1 0 +0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 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 1 +0 1 +0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 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 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 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 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 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 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 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 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 1 0 0 1 0 0 0 0 0 +1 0 +0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 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 1 0 0 0 0 0 +0 1 +0 0 1 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 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 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 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 0 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 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 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 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 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 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 1 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 1 0 1 0 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 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 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 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 +0 1 +0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 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 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 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 1 +1 0 +0 0 1 0 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 1 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 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 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 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 1 +1 0 +0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 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 1 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 1 0 0 0 +0 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 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 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 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 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 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 1 0 0 0 0 0 +0 1 +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 1 0 0 0 0 0 0 0 1 0 1 0 0 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 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 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 1 0 0 0 +0 1 +0 0 1 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 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 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 1 +0 0 0 0 1 0 1 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 1 0 0 1 0 1 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 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 +1 0 +0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 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 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 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 1 +1 0 diff --git a/lib/ann/fann/datasets/parity13.test b/lib/ann/fann/datasets/parity13.test new file mode 100644 index 0000000..a254198 --- /dev/null +++ b/lib/ann/fann/datasets/parity13.test @@ -0,0 +1,16385 @@ +8192 13 1 +1 1 1 0 0 0 0 0 0 1 1 0 0 +1 +0 1 1 0 0 0 1 1 1 1 0 0 0 +0 +0 0 1 0 1 0 0 0 1 0 1 1 1 +0 +1 1 0 0 1 1 1 0 0 0 0 1 0 +0 +1 0 0 1 0 0 1 1 1 0 0 1 1 +1 +1 1 1 1 1 1 1 1 0 0 1 1 1 +1 +0 1 0 1 0 0 1 0 0 0 1 0 1 +1 +0 0 1 1 0 1 1 1 0 0 0 1 1 +1 +1 0 0 1 0 1 0 0 1 1 1 1 1 +0 +1 0 1 1 0 0 1 1 0 0 1 1 1 +0 +0 1 0 1 1 1 0 1 0 0 0 1 1 +1 +0 1 1 0 0 1 0 0 0 1 0 1 0 +1 +0 1 0 0 1 1 1 1 1 0 0 0 0 +0 +1 1 0 1 1 1 1 1 0 1 1 1 1 +1 +1 0 0 1 1 1 1 0 0 0 1 1 0 +1 +0 1 1 0 0 0 1 0 1 0 0 0 0 +0 +1 0 0 0 1 1 0 1 0 1 1 1 0 +1 +0 1 0 0 0 0 1 1 0 1 0 0 0 +0 +0 0 1 0 1 0 1 0 0 0 0 1 0 +0 +1 0 1 1 0 1 1 0 1 1 1 1 0 +1 +1 1 0 1 1 0 0 0 1 1 0 0 0 +0 +0 1 1 0 1 0 0 1 0 1 0 1 1 +1 +0 0 1 0 0 1 0 1 1 1 0 0 0 +1 +1 0 1 0 1 0 1 1 1 0 0 0 0 +0 +0 1 1 0 1 1 1 0 1 1 1 1 0 +1 +0 1 0 1 1 0 1 0 1 0 1 0 0 +0 +0 1 1 1 0 1 0 0 1 0 0 1 1 +1 +1 1 0 0 0 1 1 0 0 1 0 0 1 +0 +0 0 1 1 1 1 0 1 0 0 0 1 1 +1 +1 1 1 1 1 0 0 1 1 1 1 0 1 +0 +1 0 0 1 0 0 1 1 0 0 1 0 0 +1 +0 1 0 1 1 0 0 1 1 1 1 0 0 +1 +0 1 1 0 0 1 1 0 1 1 0 1 1 +0 +0 0 1 0 0 1 1 0 1 1 0 0 0 +1 +0 1 1 1 0 1 0 0 0 1 0 1 0 +0 +0 0 1 1 0 0 0 0 0 1 0 0 1 +0 +1 0 1 0 1 1 1 1 1 1 1 1 0 +0 +0 1 0 1 0 1 0 0 1 0 1 0 0 +1 +1 1 0 0 0 1 0 1 0 0 0 0 1 +1 +0 0 1 1 0 1 0 1 0 0 1 0 0 +1 +1 0 1 0 0 1 0 0 1 0 0 0 0 +0 +1 0 1 1 1 0 1 0 1 0 0 1 0 +1 +1 0 0 0 1 0 1 0 1 0 0 1 1 +0 +1 1 1 0 1 0 0 0 1 1 0 0 0 +0 +0 0 0 1 1 0 1 0 0 0 0 1 0 +0 +1 0 0 0 0 0 1 1 1 0 0 0 1 +1 +1 0 0 1 1 1 0 1 1 0 1 0 0 +1 +0 0 1 0 1 0 1 1 0 0 0 1 0 +1 +1 1 0 1 0 1 0 1 1 0 1 1 1 +1 +0 1 0 0 1 1 0 1 0 0 1 1 0 +0 +1 1 0 0 1 0 0 0 1 0 0 1 1 +0 +1 1 0 0 0 1 0 1 0 1 1 1 1 +0 +1 0 0 0 0 0 0 1 1 1 0 0 1 +1 +0 1 0 1 1 1 1 1 0 1 1 0 1 +1 +1 0 0 0 0 1 1 1 0 0 1 0 0 +1 +1 0 0 0 1 0 0 0 0 1 1 0 0 +0 +0 0 1 0 0 0 0 0 1 0 0 1 1 +0 +0 1 0 0 0 0 0 1 1 0 1 1 1 +0 +0 0 1 0 1 1 1 0 0 0 0 1 1 +0 +1 0 0 0 0 0 1 0 0 1 1 0 0 +0 +1 0 1 1 1 0 1 0 1 1 0 1 1 +1 +1 1 0 0 1 1 1 0 1 0 0 1 0 +1 +0 1 1 1 0 1 1 0 0 0 1 0 1 +1 +1 1 1 0 0 0 0 1 0 0 0 0 1 +1 +1 0 0 0 1 0 1 1 0 0 1 0 1 +0 +0 1 0 0 0 1 0 0 1 0 0 0 0 +1 +0 0 1 0 0 1 1 0 0 0 1 1 1 +0 +1 0 0 0 0 1 0 1 0 0 1 0 1 +1 +0 1 1 1 0 0 0 0 0 0 0 1 0 +0 +0 0 1 1 1 1 1 0 1 1 1 0 0 +0 +0 0 1 0 1 1 1 1 0 0 1 1 0 +1 +1 1 1 0 0 1 1 0 1 1 0 0 0 +1 +1 1 1 0 0 0 0 0 1 1 0 0 0 +1 +0 0 0 0 0 1 0 0 1 0 1 0 0 +1 +0 1 1 1 1 1 1 0 0 1 1 0 0 +0 +1 1 1 0 1 0 0 1 0 1 0 1 0 +1 +1 0 1 0 1 0 0 1 1 1 0 0 0 +0 +0 0 1 1 1 0 1 1 0 1 0 1 0 +1 +1 1 0 1 0 1 1 0 1 1 0 0 1 +0 +1 0 1 0 1 0 0 0 0 0 0 0 0 +1 +1 1 1 1 0 0 0 1 1 1 1 0 1 +1 +0 0 1 0 1 1 0 0 1 0 0 0 1 +1 +0 0 1 1 1 0 1 0 0 0 0 1 1 +0 +0 1 0 1 0 0 0 0 0 0 0 1 1 +0 +0 0 0 0 0 1 0 0 0 1 0 1 1 +0 +0 0 0 0 1 1 0 1 0 0 1 1 1 +0 +1 1 0 1 1 1 0 0 0 0 1 0 1 +1 +1 1 0 1 1 1 1 1 0 1 1 0 0 +1 +1 1 0 1 0 0 1 0 1 1 0 1 1 +0 +1 1 1 1 0 1 0 1 0 0 1 1 0 +0 +1 1 0 0 0 0 1 0 1 1 0 0 0 +1 +0 0 0 0 0 0 0 0 0 1 0 0 0 +1 +0 0 1 0 1 1 1 1 1 1 0 1 1 +1 +0 0 0 0 1 0 1 1 0 0 1 0 0 +0 +1 0 1 0 0 1 1 0 1 0 0 0 1 +0 +1 1 0 0 0 1 1 0 0 1 0 1 0 +0 +1 1 0 1 1 1 1 1 1 1 0 0 0 +1 +0 1 0 0 0 0 1 0 0 0 1 1 0 +0 +0 1 1 1 1 1 1 1 0 0 0 1 1 +1 +0 0 0 1 0 1 1 1 1 1 0 1 0 +1 +1 1 0 1 1 1 1 1 0 0 0 0 0 +1 +0 1 0 1 1 1 1 1 0 1 1 0 0 +0 +0 0 0 1 0 0 0 0 0 1 0 0 1 +1 +1 0 1 1 0 0 1 0 1 0 0 0 0 +1 +0 0 0 1 1 0 1 0 1 0 1 0 1 +0 +0 0 0 0 1 0 1 1 0 1 0 1 1 +0 +0 1 0 0 1 0 0 0 0 0 0 1 1 +0 +0 1 1 0 0 1 1 1 1 1 1 1 1 +0 +1 1 1 0 1 0 0 1 1 1 0 0 0 +1 +0 0 1 1 1 1 0 0 1 0 0 0 0 +1 +0 0 1 0 0 0 0 1 0 0 1 1 0 +0 +0 0 1 0 0 1 1 1 1 1 0 1 0 +1 +1 0 1 0 1 1 1 0 1 0 1 0 0 +1 +0 0 0 1 1 0 1 1 1 1 1 1 0 +0 +0 1 1 1 1 1 0 1 1 0 1 0 1 +1 +1 0 1 0 1 1 0 0 0 1 1 0 1 +1 +1 1 0 1 0 0 0 1 0 0 1 1 1 +1 +1 1 0 0 1 0 0 1 0 0 1 0 0 +1 +1 1 0 1 1 1 0 0 1 1 1 1 1 +0 +0 0 0 0 1 1 0 0 0 0 1 0 1 +0 +0 0 0 1 0 1 0 1 0 1 1 0 1 +0 +0 0 1 0 1 1 0 0 1 0 1 1 1 +1 +0 0 0 0 0 1 0 0 1 0 0 1 0 +1 +0 0 0 0 1 0 1 1 1 1 0 1 0 +0 +1 0 0 1 1 1 1 0 1 1 0 0 0 +1 +1 1 0 1 0 1 1 1 1 0 1 0 1 +1 +0 1 0 1 0 1 1 0 1 0 0 0 0 +1 +0 0 1 0 1 1 0 0 1 0 1 0 0 +1 +1 0 0 1 1 1 0 1 1 0 0 0 0 +0 +1 1 1 1 0 1 1 1 1 0 1 1 1 +1 +0 0 0 0 1 1 0 0 1 1 1 0 1 +0 +0 0 0 0 0 0 0 0 1 1 1 1 1 +1 +1 0 0 1 0 1 1 1 0 0 1 0 0 +0 +0 1 1 1 0 1 1 1 0 1 0 0 1 +0 +0 1 1 0 0 1 0 0 0 0 0 1 0 +0 +0 1 1 0 1 0 1 0 1 1 1 0 0 +1 +0 1 0 0 0 1 0 1 1 0 0 1 0 +1 +0 0 0 1 0 1 0 1 1 0 0 0 0 +0 +0 1 0 1 0 0 1 0 1 0 0 1 1 +0 +0 1 1 1 0 1 0 0 0 1 0 0 0 +1 +0 1 0 1 1 0 0 0 0 0 1 0 0 +0 +1 1 1 0 0 0 1 0 0 1 0 0 0 +1 +0 0 0 0 1 1 0 1 0 1 0 0 0 +0 +0 0 0 0 1 1 1 1 0 0 0 1 0 +1 +0 0 1 0 1 1 0 0 0 1 0 0 0 +0 +1 1 0 0 0 1 0 0 1 0 1 1 1 +1 +1 1 1 1 1 1 0 1 0 0 0 1 1 +1 +0 0 0 0 0 1 1 1 0 1 0 0 1 +1 +1 1 1 0 0 1 1 1 0 1 1 0 1 +1 +1 1 0 1 1 1 1 0 0 1 1 1 0 +1 +0 1 0 0 1 1 0 0 0 0 0 1 0 +0 +1 1 1 1 0 1 0 1 0 0 0 0 1 +1 +0 0 1 0 1 0 0 0 1 1 0 1 0 +1 +1 1 0 1 1 1 0 1 1 1 1 0 1 +0 +1 1 0 1 1 1 0 1 1 1 0 1 0 +1 +1 0 1 0 0 0 1 1 0 1 0 0 0 +1 +0 1 1 0 1 1 1 1 0 0 1 0 0 +1 +1 1 0 1 0 0 1 0 1 1 0 0 0 +0 +1 0 1 0 0 1 1 0 1 1 0 0 1 +1 +1 1 0 0 0 1 1 0 1 1 1 1 0 +0 +0 0 0 0 0 0 1 0 1 0 1 1 0 +0 +0 1 0 1 1 0 0 1 1 0 0 0 1 +0 +0 0 1 0 0 1 1 0 0 1 1 1 0 +0 +0 0 1 0 0 1 0 0 0 1 1 0 0 +0 +0 1 1 0 0 0 0 1 0 0 1 1 1 +0 +0 0 1 1 0 0 1 1 0 0 1 1 0 +0 +1 1 1 0 1 0 1 0 1 1 0 0 0 +1 +0 0 1 1 1 0 1 1 1 0 0 1 1 +0 +0 0 1 1 1 0 0 0 0 0 0 1 1 +1 +1 1 0 0 1 0 0 1 0 0 0 1 0 +1 +1 0 1 0 0 1 0 0 0 0 1 0 1 +1 +1 0 1 1 1 0 0 1 1 0 1 0 0 +1 +0 0 0 1 0 1 0 1 1 1 0 0 1 +0 +0 0 1 1 0 1 1 0 0 1 0 1 1 +1 +1 1 1 1 0 1 0 1 0 0 0 1 0 +1 +1 1 1 0 1 0 0 1 0 1 1 1 1 +1 +0 0 1 0 1 1 1 0 0 0 1 0 0 +1 +0 0 0 1 0 0 1 1 0 0 0 1 1 +1 +1 1 0 0 0 1 1 1 0 1 1 1 0 +0 +0 0 0 0 1 0 1 0 1 0 1 0 0 +0 +1 1 1 0 0 0 1 1 0 1 1 1 0 +0 +1 1 1 0 0 0 1 0 0 0 1 0 1 +0 +1 0 1 0 1 0 0 0 1 1 0 0 0 +1 +0 1 0 0 0 0 1 0 1 0 0 1 0 +0 +1 1 0 1 1 1 0 1 1 1 1 1 0 +0 +1 1 1 1 1 0 1 1 0 0 1 0 1 +1 +1 1 1 1 0 1 1 0 1 1 0 0 1 +1 +1 0 0 1 1 0 0 0 1 0 0 0 0 +0 +0 1 0 0 0 1 0 0 0 1 1 0 1 +1 +1 1 0 1 1 0 0 1 1 1 1 0 1 +1 +1 0 1 0 0 0 1 1 1 1 0 1 0 +1 +1 0 0 0 1 0 1 0 1 0 0 0 1 +1 +1 1 0 1 0 0 0 0 1 1 1 0 1 +1 +1 0 0 0 0 1 1 1 0 1 1 1 1 +0 +1 0 1 1 1 0 1 0 0 1 0 1 0 +1 +0 0 1 1 1 0 0 0 1 0 0 0 0 +0 +1 1 1 1 0 0 0 1 0 1 1 1 0 +0 +0 0 1 0 0 1 0 1 1 1 0 1 0 +0 +0 1 1 0 0 0 0 0 1 0 1 1 1 +0 +1 1 1 1 1 1 0 0 1 1 0 0 0 +0 +0 0 1 0 0 0 0 1 0 0 0 0 1 +1 +0 0 1 0 0 1 0 1 0 0 1 0 1 +1 +1 1 0 1 1 0 0 0 0 1 0 0 0 +1 +1 1 0 0 1 0 0 0 1 1 1 0 1 +1 +1 0 1 1 0 1 1 1 1 1 1 0 0 +1 +1 1 1 1 0 1 1 1 0 1 1 1 1 +1 +0 1 0 1 1 0 1 0 1 1 0 1 1 +0 +1 0 1 0 0 1 0 1 0 1 1 0 0 +0 +1 1 1 0 1 1 1 1 1 0 0 1 0 +1 +0 0 1 1 0 0 0 0 0 0 0 0 0 +0 +0 0 1 0 0 0 0 1 1 1 0 0 1 +1 +1 0 0 0 1 1 1 1 0 0 0 1 0 +0 +0 0 0 0 0 0 0 1 1 0 1 0 0 +1 +1 0 1 0 1 0 0 1 0 1 1 0 0 +0 +1 0 1 1 1 1 0 0 0 1 0 1 0 +1 +1 0 1 0 0 1 1 1 0 0 1 1 0 +1 +1 0 1 0 1 0 0 0 0 0 0 1 0 +0 +0 0 1 1 0 0 0 1 1 0 0 0 1 +1 +1 0 0 0 1 1 1 0 0 1 0 1 0 +0 +0 0 1 0 1 0 0 0 1 1 1 0 0 +1 +0 1 0 1 1 1 1 1 1 0 1 0 0 +0 +1 0 1 1 1 1 0 0 0 0 1 0 0 +0 +0 0 1 1 0 1 1 0 0 0 0 1 0 +1 +1 0 1 0 0 0 0 0 1 0 1 1 1 +0 +1 0 0 1 0 0 0 1 1 1 1 0 0 +0 +0 1 1 0 0 0 0 1 0 0 1 0 1 +1 +1 1 0 0 1 0 1 1 1 0 0 1 1 +0 +0 1 0 0 0 1 0 1 1 1 0 1 1 +1 +1 1 1 0 0 1 1 1 1 1 0 0 0 +0 +0 1 0 1 1 0 0 0 1 0 0 1 1 +0 +0 1 1 1 1 0 0 1 0 1 1 0 1 +0 +0 0 0 0 0 0 1 0 1 1 0 1 0 +0 +0 1 1 0 1 1 1 1 1 1 0 1 1 +0 +1 0 0 1 1 1 1 0 0 0 1 0 1 +1 +1 0 1 0 1 1 0 1 1 0 0 0 0 +0 +0 1 1 0 1 1 0 0 0 0 0 0 1 +1 +1 1 0 1 1 1 0 0 1 1 1 0 1 +1 +0 1 0 1 0 1 0 1 0 0 1 0 0 +1 +0 0 1 1 1 0 1 0 1 1 1 0 1 +0 +0 1 0 0 1 0 0 1 1 0 0 0 1 +1 +0 1 1 0 1 1 0 0 1 1 1 1 1 +1 +0 1 0 0 0 0 1 0 1 0 0 0 0 +1 +1 0 0 0 1 1 0 0 1 1 1 0 0 +0 +1 1 0 0 0 1 1 1 0 1 1 1 1 +1 +0 1 0 0 0 1 1 1 0 0 1 1 0 +0 +0 1 1 1 1 1 0 1 0 1 1 0 0 +0 +0 0 1 0 0 1 1 1 1 1 0 0 0 +0 +0 1 1 1 1 0 0 1 0 1 0 1 0 +1 +0 1 1 0 0 0 0 0 0 1 1 0 0 +0 +0 1 0 0 1 1 0 0 1 1 1 1 1 +0 +1 0 1 0 1 0 0 0 1 0 1 1 0 +0 +1 0 0 1 0 0 1 0 1 0 0 0 1 +1 +1 0 1 1 1 1 1 1 0 1 0 1 0 +1 +0 1 0 1 0 0 1 1 0 1 0 0 0 +1 +0 1 0 1 1 1 1 1 0 0 1 1 1 +1 +1 1 1 1 1 1 1 1 1 0 1 1 0 +1 +0 1 1 1 1 0 0 0 0 0 0 1 0 +1 +1 0 0 1 0 1 1 1 0 0 0 0 0 +1 +1 0 0 1 0 0 1 0 0 1 0 0 0 +0 +0 1 0 0 1 1 0 1 1 1 0 1 1 +0 +0 1 0 0 0 1 0 1 0 0 0 0 1 +0 +1 0 0 0 1 1 0 0 1 0 1 1 0 +0 +0 0 1 0 1 0 1 0 0 1 1 0 0 +1 +0 0 0 1 0 0 1 0 1 1 0 0 1 +1 +0 1 1 0 0 1 0 0 1 1 1 0 0 +0 +0 1 0 0 1 1 1 1 1 1 0 1 0 +0 +1 1 0 1 0 1 0 1 0 0 1 1 0 +1 +1 0 1 0 1 0 1 1 1 0 1 1 1 +1 +0 1 0 1 1 1 0 1 1 1 0 1 0 +0 +0 1 1 0 0 1 0 1 1 0 1 1 0 +1 +0 0 0 1 0 1 0 1 1 1 1 0 0 +0 +1 1 1 1 0 0 1 0 1 0 0 0 0 +0 +1 1 1 1 0 1 0 0 0 1 1 1 1 +1 +1 0 0 0 1 1 1 1 0 1 1 0 0 +1 +1 1 1 0 0 0 0 0 0 1 0 1 0 +1 +0 1 1 1 0 0 0 1 1 1 0 1 0 +1 +1 1 0 1 1 0 1 0 0 0 1 1 0 +1 +1 0 1 1 1 1 0 1 0 0 0 0 0 +0 +1 0 1 1 0 1 0 0 0 1 1 0 1 +1 +1 1 0 1 1 0 0 1 0 1 0 0 0 +0 +1 0 0 1 0 0 0 0 1 0 1 1 1 +0 +1 0 1 1 0 0 0 0 1 1 0 0 1 +0 +1 0 1 0 0 1 1 1 1 1 0 0 1 +0 +0 1 1 0 0 0 0 0 0 0 0 1 0 +1 +0 1 0 0 1 0 0 1 0 0 1 1 1 +0 +0 0 0 0 1 1 1 0 0 0 1 0 0 +0 +1 1 1 1 0 1 0 1 1 0 1 1 1 +0 +1 0 0 1 0 0 0 1 1 0 1 0 1 +0 +0 0 0 1 1 0 0 0 0 1 0 1 0 +0 +0 0 1 0 0 0 0 1 1 0 1 1 0 +1 +0 0 0 0 1 1 1 1 1 1 1 0 0 +1 +1 0 0 0 0 1 1 1 1 1 1 1 0 +0 +1 0 1 1 0 1 0 1 1 1 1 0 0 +0 +1 1 1 1 0 1 1 1 0 0 1 0 1 +1 +1 0 0 0 1 1 0 1 0 1 0 0 1 +0 +0 1 1 1 1 1 0 0 0 0 0 0 0 +1 +0 1 1 1 0 0 0 1 0 1 1 0 0 +0 +0 1 0 0 1 1 0 0 0 1 1 1 1 +1 +1 1 0 1 0 0 0 1 1 1 0 1 1 +0 +1 0 1 1 0 0 0 1 1 0 1 1 1 +0 +1 0 1 0 1 0 1 1 0 0 0 1 0 +0 +0 0 1 0 0 0 1 1 1 1 0 0 1 +0 +0 0 0 0 1 1 0 0 0 1 1 1 0 +1 +0 1 1 0 1 1 0 1 1 0 1 1 0 +0 +0 0 0 0 0 1 0 0 0 1 1 1 0 +0 +1 1 1 1 1 1 1 1 1 0 0 1 0 +0 +0 1 0 1 1 0 0 0 1 0 1 0 0 +1 +0 0 1 1 0 1 1 0 1 0 1 0 0 +0 +1 1 0 1 0 0 0 1 1 1 0 0 1 +1 +0 0 1 0 0 1 1 1 1 0 0 0 0 +1 +1 1 1 0 0 0 0 0 0 0 0 1 0 +0 +1 0 1 1 1 0 1 1 0 0 1 0 0 +1 +0 1 0 1 0 0 0 0 1 1 0 1 0 +1 +0 0 1 1 0 1 1 1 1 1 0 1 1 +1 +1 0 1 0 0 0 1 0 0 0 0 1 0 +0 +1 1 0 0 0 1 0 0 1 1 0 0 1 +0 +0 1 1 1 1 1 0 1 0 1 1 1 1 +0 +1 1 0 1 1 0 0 1 0 1 0 1 0 +1 +0 1 1 0 0 0 0 1 1 1 0 1 0 +0 +1 1 0 0 0 0 1 1 0 0 1 1 0 +0 +1 0 0 0 1 0 1 0 1 0 1 0 1 +0 +1 0 1 0 0 0 0 0 0 1 0 1 0 +0 +0 0 1 0 0 1 1 1 0 0 1 1 1 +1 +1 1 0 1 0 1 0 0 1 0 0 0 0 +1 +0 0 1 0 1 1 1 1 1 0 0 0 0 +0 +0 0 1 1 0 0 1 1 1 1 1 1 0 +0 +1 1 0 0 1 1 0 0 0 0 1 1 0 +0 +1 1 1 0 1 1 0 1 1 1 0 1 1 +0 +1 0 0 1 1 0 0 1 0 1 1 0 0 +0 +0 0 1 0 1 0 0 0 1 1 1 1 1 +1 +0 1 1 1 1 1 1 1 0 0 0 1 0 +0 +1 1 1 0 1 0 0 0 1 1 1 1 0 +0 +1 0 1 1 0 0 0 1 0 0 0 1 0 +1 +1 1 0 0 1 0 1 1 1 1 1 0 0 +0 +1 0 0 1 1 0 1 1 1 0 1 1 1 +1 +1 1 0 1 1 1 0 1 1 1 0 0 0 +0 +1 1 1 0 1 1 1 1 1 1 1 1 0 +1 +0 1 1 1 1 0 1 0 0 0 1 0 1 +1 +0 0 1 0 1 0 0 1 0 1 1 0 0 +1 +0 0 0 1 1 1 0 0 1 0 1 0 0 +1 +0 1 1 1 1 0 0 1 0 0 1 0 0 +0 +0 1 1 1 0 0 0 0 1 0 0 0 0 +0 +0 1 1 0 1 1 1 1 0 0 0 1 1 +0 +0 1 0 1 0 1 0 0 0 0 0 0 0 +1 +0 1 1 1 0 1 1 0 1 1 0 1 1 +1 +1 0 0 0 0 0 1 0 0 1 0 1 0 +0 +0 1 1 1 0 0 1 0 1 0 0 1 1 +1 +1 1 0 1 0 0 1 1 1 0 0 0 0 +0 +1 1 0 0 1 1 1 0 1 0 1 1 0 +0 +0 1 1 1 1 0 0 0 0 0 0 0 1 +1 +0 0 0 1 0 0 1 0 1 0 1 1 1 +0 +0 1 0 1 1 1 1 1 0 1 0 0 0 +1 +1 0 0 1 0 0 1 0 1 1 1 1 0 +1 +1 0 0 1 0 1 1 0 1 1 1 1 0 +0 +1 0 1 0 1 0 1 0 0 1 0 1 0 +0 +1 1 0 0 0 1 0 0 0 1 1 1 1 +1 +0 1 0 1 1 1 1 1 1 0 0 1 0 +0 +0 0 1 0 1 1 1 0 0 0 0 0 0 +0 +0 1 0 1 1 0 1 1 1 0 0 1 1 +0 +1 0 0 1 0 1 1 0 0 1 1 1 1 +0 +1 1 1 1 1 1 1 0 1 0 1 1 0 +0 +0 1 1 1 1 0 1 0 1 0 1 1 0 +0 +0 1 0 1 1 0 1 1 0 1 0 1 1 +0 +0 1 1 1 1 1 1 0 1 0 0 0 1 +0 +1 1 0 0 0 0 0 0 0 0 0 1 0 +1 +1 0 1 0 0 1 0 0 1 1 1 1 0 +1 +1 1 0 0 1 1 0 1 1 1 0 1 0 +0 +1 0 1 1 1 0 1 1 1 0 1 1 0 +1 +0 0 1 0 0 0 0 1 1 1 0 0 0 +0 +0 1 1 0 0 1 0 1 0 1 0 0 0 +1 +1 1 0 1 0 0 0 0 1 1 0 1 0 +0 +0 0 1 0 1 0 0 1 0 0 1 0 0 +0 +1 0 0 0 0 1 0 1 0 1 0 1 1 +0 +0 0 1 0 0 1 0 0 0 0 0 0 0 +0 +1 0 0 1 1 0 0 1 1 0 1 0 1 +1 +1 1 0 1 0 1 0 0 1 0 0 0 1 +0 +0 1 1 1 0 1 1 1 0 0 0 1 1 +0 +1 1 1 0 1 0 1 0 1 1 1 1 0 +1 +0 0 1 1 0 1 0 0 1 0 0 1 1 +0 +0 1 1 1 0 1 1 1 0 1 0 1 0 +0 +1 1 0 1 1 0 0 1 0 0 1 0 1 +1 +0 0 1 1 1 1 0 1 0 1 1 0 0 +1 +0 0 1 0 1 1 0 0 1 1 1 0 0 +0 +1 0 0 0 0 1 1 0 0 0 0 0 1 +0 +1 0 1 0 0 1 0 0 0 1 1 0 1 +0 +1 1 1 1 0 0 1 1 0 1 1 1 0 +1 +0 0 0 1 0 0 0 0 0 1 0 0 0 +0 +0 1 1 0 0 1 1 1 1 0 0 0 1 +1 +1 0 0 1 0 1 1 1 1 1 0 1 1 +1 +0 0 1 1 1 1 0 0 0 1 1 0 1 +1 +0 1 1 1 1 0 1 0 0 0 1 1 0 +1 +0 1 1 1 0 1 1 0 0 0 0 1 0 +0 +0 0 0 0 0 1 1 0 1 1 1 1 0 +0 +0 1 0 0 1 0 0 1 1 1 0 1 0 +0 +0 1 0 0 1 0 1 1 0 1 0 0 1 +0 +0 1 0 0 1 1 0 1 0 1 0 1 0 +0 +0 0 0 0 1 0 1 1 0 0 1 1 0 +1 +1 0 1 0 0 0 0 1 0 1 1 1 1 +1 +0 1 0 1 1 1 1 1 1 0 1 0 1 +1 +0 0 1 0 1 0 1 0 0 0 0 0 1 +0 +0 0 1 0 0 0 0 0 0 1 1 1 1 +1 +0 0 0 0 0 0 0 0 1 1 0 1 1 +0 +0 0 0 0 1 0 1 1 0 0 0 1 0 +0 +0 0 1 0 1 0 1 1 0 0 1 1 1 +1 +0 1 1 0 0 1 1 0 1 0 0 0 1 +0 +0 1 0 0 0 0 0 1 0 1 0 1 0 +0 +0 1 0 1 0 1 1 0 0 0 1 0 1 +0 +0 0 0 1 1 0 0 1 1 1 1 1 0 +1 +1 0 1 0 1 0 1 1 0 1 0 0 0 +0 +0 0 0 1 0 1 0 1 1 1 0 1 0 +0 +1 1 1 0 0 0 0 1 0 1 0 1 1 +1 +1 0 0 0 1 0 1 1 1 0 0 0 1 +0 +0 0 1 1 1 0 1 0 0 0 1 1 0 +0 +0 1 0 1 0 1 1 1 0 0 0 1 1 +1 +0 0 1 1 1 0 1 1 1 1 1 1 1 +0 +0 1 1 0 1 1 1 0 1 1 1 0 1 +1 +0 0 0 0 0 1 0 0 1 0 0 0 1 +1 +0 1 1 1 0 0 0 1 1 1 1 0 0 +1 +0 0 0 0 0 0 0 1 0 1 1 0 1 +0 +0 1 1 0 0 0 0 0 0 0 1 1 1 +1 +1 1 0 1 0 1 0 1 0 0 0 0 1 +0 +1 0 0 1 1 1 0 0 0 1 0 1 1 +1 +0 0 1 1 1 1 1 0 0 0 1 0 1 +1 +1 0 1 1 1 0 0 1 0 1 0 0 0 +0 +1 1 0 1 0 0 0 0 0 0 0 0 1 +0 +0 1 1 1 0 0 1 1 0 0 0 0 0 +1 +0 0 0 0 1 1 1 0 0 1 0 0 1 +1 +1 0 0 1 1 0 1 0 1 0 1 1 0 +1 +0 0 1 1 1 1 1 1 0 1 0 0 0 +1 +0 0 0 1 1 1 0 0 0 0 1 0 0 +0 +1 1 0 0 1 1 0 0 1 1 1 1 1 +1 +1 1 0 0 1 1 0 1 1 0 0 1 0 +1 +0 1 0 0 1 0 1 1 0 0 1 0 1 +0 +1 0 1 0 0 0 1 0 0 1 0 0 1 +1 +1 1 0 0 0 0 0 0 0 1 1 0 0 +0 +0 0 1 1 0 1 1 1 0 0 0 1 0 +0 +1 1 1 0 1 0 0 0 1 0 1 1 1 +0 +1 0 0 0 1 0 1 1 0 1 1 0 1 +1 +1 0 1 0 0 0 0 1 0 0 0 1 1 +1 +0 0 0 0 0 0 0 0 1 1 0 1 0 +1 +0 1 0 1 0 1 0 1 0 0 1 1 1 +1 +0 1 0 1 1 1 0 0 1 1 0 1 0 +1 +0 1 1 0 0 1 1 0 1 0 1 0 0 +0 +1 0 0 0 1 1 1 1 1 0 1 1 1 +1 +0 0 1 1 1 1 1 0 1 1 0 1 1 +1 +0 0 0 0 0 0 1 1 1 1 1 0 1 +0 +1 1 0 0 0 0 1 1 1 1 0 1 1 +0 +0 1 0 0 1 0 1 0 1 0 0 0 1 +1 +1 1 1 1 1 0 1 1 0 0 1 0 0 +0 +1 0 1 0 0 0 0 1 0 1 1 0 0 +1 +0 0 1 0 0 1 1 1 1 0 1 0 0 +0 +0 1 1 0 0 1 1 0 0 0 1 1 1 +1 +0 1 0 1 1 0 1 1 1 1 1 1 1 +0 +1 1 0 1 1 1 0 0 0 0 0 1 0 +0 +1 1 0 1 0 0 0 0 0 0 1 1 1 +0 +0 0 0 1 0 1 1 1 0 1 0 0 0 +1 +0 0 1 1 0 1 0 1 1 1 1 1 0 +0 +0 0 0 0 1 0 0 0 0 1 1 0 0 +1 +0 1 0 1 0 1 0 0 0 0 1 0 0 +0 +1 1 0 0 0 0 0 1 1 1 1 0 0 +0 +1 0 0 1 0 1 1 0 0 0 0 0 1 +1 +0 0 0 1 1 0 1 1 0 1 0 1 1 +1 +1 1 1 1 0 1 0 0 1 1 1 0 1 +1 +0 1 0 1 1 1 0 0 0 1 1 1 1 +0 +1 1 1 1 1 1 1 1 1 0 1 1 1 +0 +1 1 1 1 0 1 0 1 1 1 0 0 0 +0 +1 1 1 0 0 1 0 0 1 1 1 0 0 +1 +0 0 1 0 0 0 1 1 0 1 1 1 0 +0 +1 1 0 0 1 0 0 1 1 1 0 0 0 +0 +1 1 1 0 1 0 1 0 0 1 1 0 1 +0 +0 0 1 1 1 0 0 0 1 1 1 1 1 +0 +1 1 1 1 1 0 0 0 1 1 1 1 0 +1 +1 0 0 1 0 0 1 1 0 1 0 0 0 +1 +1 0 1 1 0 1 1 0 1 1 1 0 1 +1 +1 0 1 1 0 0 0 1 1 0 0 1 1 +1 +1 1 0 0 1 0 0 0 1 0 0 1 0 +1 +0 0 0 0 1 0 0 0 1 0 1 0 0 +1 +1 0 1 1 0 0 0 1 1 1 0 0 1 +1 +1 1 0 0 1 0 1 1 1 0 0 1 0 +1 +1 1 0 1 1 1 1 0 1 0 1 0 0 +0 +1 0 0 1 0 0 0 1 0 0 0 0 1 +0 +0 1 0 0 1 1 1 0 1 1 0 1 1 +0 +0 1 0 0 1 0 1 0 1 0 0 1 0 +1 +1 0 0 1 1 1 1 1 0 1 0 1 0 +0 +1 0 0 0 1 1 0 0 0 0 0 0 0 +1 +1 0 0 0 0 0 1 1 1 1 0 0 1 +0 +1 1 1 0 0 0 1 1 0 0 0 0 1 +0 +0 0 0 0 0 1 1 1 1 0 1 0 1 +0 +0 1 1 0 1 0 0 1 1 1 0 0 1 +1 +1 1 0 0 0 0 0 1 0 1 1 1 1 +1 +1 1 1 0 0 1 1 0 0 1 0 1 0 +1 +0 1 1 0 1 1 1 1 1 1 0 1 0 +1 +1 0 1 1 0 1 1 1 1 0 0 1 0 +0 +1 0 1 1 0 1 0 1 0 1 0 1 0 +1 +0 0 1 0 0 0 0 1 1 0 0 1 1 +1 +0 0 1 1 0 1 1 1 1 1 1 0 0 +0 +0 0 1 1 0 1 0 1 1 1 1 0 0 +1 +1 1 1 0 1 1 0 0 1 1 0 0 0 +1 +0 1 1 1 0 1 1 0 1 0 1 1 0 +0 +0 0 0 1 0 1 1 0 0 0 0 1 0 +0 +0 1 1 0 1 0 0 0 0 0 1 1 0 +1 +0 1 0 1 0 0 0 0 1 0 1 0 1 +1 +0 0 0 1 1 1 1 1 1 1 1 0 1 +1 +1 0 0 0 1 0 1 0 0 1 0 1 0 +1 +1 1 1 0 1 1 1 0 0 0 1 1 0 +0 +1 0 0 1 0 0 0 0 1 0 1 0 0 +0 +1 0 0 0 1 0 1 1 0 1 1 0 0 +0 +1 1 0 1 1 1 0 0 0 0 1 1 1 +0 +0 0 0 1 1 0 1 0 1 0 1 1 0 +0 +0 1 1 1 0 1 1 1 0 0 0 0 1 +1 +0 1 0 1 0 0 0 1 1 0 1 0 1 +0 +0 1 1 1 0 0 0 0 0 1 1 1 0 +0 +1 0 1 0 1 0 0 1 0 1 1 1 0 +1 +1 1 0 1 0 1 1 1 1 1 1 1 0 +0 +1 1 0 0 0 1 0 0 1 0 0 1 1 +0 +1 0 1 0 1 1 0 1 1 1 1 0 0 +0 +0 0 1 1 0 1 1 0 0 1 0 0 0 +1 +1 0 0 1 0 0 1 0 0 1 0 1 0 +1 +1 1 0 1 0 1 1 0 1 0 0 0 1 +1 +0 0 1 0 0 1 0 0 1 1 0 0 1 +1 +1 1 0 1 0 1 0 1 1 0 0 0 0 +0 +1 1 1 1 0 1 0 0 0 0 0 0 1 +0 +0 0 0 1 0 1 1 0 1 0 1 1 1 +1 +0 1 0 1 1 1 0 1 0 1 0 0 1 +1 +1 0 1 1 0 1 0 1 0 0 0 0 0 +1 +1 1 0 1 0 0 1 1 0 1 0 0 1 +1 +1 1 1 0 1 0 0 1 0 1 1 1 0 +0 +0 0 1 0 1 0 0 1 1 1 0 1 0 +0 +1 0 1 0 0 1 1 0 1 0 0 1 1 +1 +1 1 1 1 0 1 1 1 0 0 1 1 0 +1 +1 1 0 0 0 0 1 0 0 1 1 1 0 +0 +1 0 0 1 1 0 0 1 0 0 0 1 0 +1 +1 1 1 1 0 1 1 0 0 1 0 1 0 +0 +0 1 0 0 0 0 1 1 0 0 1 0 0 +0 +1 1 1 0 0 1 1 0 1 1 1 1 0 +1 +0 1 0 1 0 1 0 0 1 1 1 1 1 +0 +0 1 0 0 1 0 1 1 0 1 0 1 0 +0 +0 0 0 1 0 0 0 0 0 0 0 1 0 +0 +0 1 1 1 0 1 0 1 0 0 1 0 1 +1 +1 1 0 0 0 1 0 1 1 0 0 0 0 +1 +0 0 0 0 0 0 1 1 0 0 0 0 1 +1 +1 0 0 1 1 0 0 1 1 1 1 0 0 +1 +1 1 1 1 1 0 1 0 1 0 0 0 0 +1 +0 1 1 1 1 0 1 0 0 1 1 1 1 +1 +0 0 0 1 1 1 1 0 0 1 0 1 0 +0 +0 1 1 0 1 0 0 0 0 0 1 0 0 +0 +1 1 0 1 0 1 0 0 1 1 0 0 0 +0 +1 1 0 0 0 0 0 1 0 0 0 0 0 +1 +0 0 1 1 0 0 1 0 1 1 1 1 0 +1 +0 0 1 0 1 1 0 0 0 1 0 1 1 +0 +1 1 0 0 1 1 1 1 1 1 0 1 1 +0 +0 1 1 1 0 0 1 0 0 0 0 1 0 +1 +0 1 0 1 1 0 0 0 1 1 1 1 1 +0 +1 1 1 1 0 1 1 1 1 0 0 0 1 +1 +1 1 0 0 1 0 1 1 0 1 0 1 0 +1 +1 0 0 1 1 1 1 0 0 0 0 0 0 +1 +1 1 0 0 0 0 1 0 0 0 1 1 0 +1 +1 0 0 0 1 0 0 0 0 0 0 0 0 +0 +0 0 0 0 1 0 1 1 1 1 1 1 1 +0 +1 0 0 0 0 1 0 1 0 1 1 0 0 +1 +1 1 1 1 0 1 0 0 0 0 0 1 0 +0 +0 1 1 0 1 0 1 0 1 0 1 1 0 +1 +0 0 1 1 0 0 1 1 0 0 1 0 1 +0 +1 0 1 1 1 0 1 0 0 0 1 0 1 +1 +0 1 0 0 1 0 0 1 0 1 1 1 1 +1 +1 0 0 0 1 0 1 1 1 0 1 0 0 +0 +1 1 1 1 1 1 0 0 0 0 0 1 0 +1 +0 0 1 0 0 1 1 1 1 1 0 1 1 +0 +1 0 0 1 1 0 1 1 1 0 1 1 0 +0 +1 0 1 1 0 0 1 1 1 1 1 1 0 +1 +1 1 1 1 1 0 0 1 1 1 1 0 0 +1 +1 1 0 0 0 1 0 1 1 0 1 1 1 +0 +1 0 1 1 0 1 1 1 0 0 1 0 0 +1 +0 1 1 0 0 0 1 1 1 0 0 1 0 +0 +1 0 1 1 1 0 0 1 1 0 1 0 1 +0 +1 1 1 1 1 0 0 0 1 0 0 1 0 +1 +0 1 1 1 1 1 0 1 0 1 1 0 1 +1 +0 1 0 1 0 1 0 0 0 1 0 1 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 1 0 0 +1 +1 0 0 0 0 0 0 0 1 1 0 1 0 +0 +1 1 0 0 0 0 1 0 0 0 1 0 0 +0 +1 1 1 1 0 1 0 0 0 1 1 0 1 +0 +0 1 1 1 0 1 1 1 0 0 0 1 0 +1 +0 0 0 1 0 0 1 1 0 1 0 0 0 +0 +1 1 0 1 0 1 1 0 1 1 1 0 0 +0 +1 1 1 0 1 1 0 0 1 0 1 0 1 +0 +1 0 1 0 0 0 1 1 1 0 0 0 0 +1 +0 0 1 1 0 0 1 1 0 1 0 1 0 +0 +0 1 1 1 0 1 0 1 0 0 0 0 1 +0 +0 0 0 0 1 1 1 1 1 0 1 1 0 +1 +0 1 1 0 1 1 0 0 0 1 1 1 0 +1 +1 1 1 1 1 0 1 0 1 0 1 0 1 +1 +0 0 1 1 1 1 1 1 0 1 0 1 1 +1 +0 1 0 1 1 0 1 1 1 1 0 0 1 +0 +0 0 0 1 1 1 0 0 0 1 1 1 0 +0 +0 1 1 1 1 0 0 0 0 0 1 1 0 +0 +1 1 0 0 0 1 0 0 1 1 1 1 1 +0 +0 1 0 1 1 0 0 0 1 0 1 1 0 +0 +0 1 1 0 0 1 0 1 0 1 1 1 0 +1 +1 0 1 1 0 0 1 1 0 1 1 1 0 +0 +1 1 1 0 1 1 0 1 0 0 0 0 0 +0 +0 0 1 1 1 0 1 1 1 1 1 0 0 +0 +1 1 1 1 0 0 1 1 1 0 1 0 0 +0 +0 0 0 0 0 1 1 1 1 1 1 0 1 +1 +1 0 1 0 0 1 1 0 1 0 1 1 1 +0 +0 1 1 1 0 0 1 1 1 1 1 0 0 +0 +0 0 0 1 1 0 0 1 0 0 0 0 0 +1 +0 0 0 1 1 1 1 0 1 0 1 1 1 +0 +1 0 0 0 0 0 1 1 0 1 1 0 0 +1 +0 1 0 0 1 0 1 0 0 1 1 1 1 +1 +1 0 1 0 1 0 1 0 0 0 1 0 0 +1 +0 0 1 1 0 1 1 0 1 1 0 1 0 +1 +0 1 1 1 1 1 1 0 0 0 1 1 0 +0 +1 1 0 1 1 0 1 0 1 1 1 0 0 +0 +0 1 0 1 1 1 1 1 1 1 0 0 0 +0 +1 0 1 0 0 0 1 0 0 0 1 1 0 +1 +1 0 1 1 0 1 1 1 1 1 0 0 1 +1 +0 0 0 0 1 1 0 1 1 1 1 0 0 +0 +0 0 1 0 0 0 0 0 1 0 0 0 1 +1 +0 1 1 1 1 1 1 1 1 0 0 0 1 +1 +0 1 1 0 1 1 1 0 1 0 1 0 0 +1 +1 1 1 1 1 1 0 0 0 0 1 1 0 +0 +0 0 1 1 1 1 1 0 0 1 0 0 1 +1 +0 1 1 0 1 1 0 1 1 0 0 1 1 +0 +1 1 1 0 0 0 1 0 0 0 0 0 0 +0 +0 1 0 0 0 1 0 0 0 1 0 0 0 +1 +0 1 1 0 1 0 0 0 1 0 1 0 0 +1 +0 0 1 1 0 0 1 0 0 0 0 0 0 +1 +0 0 1 1 0 1 1 0 0 0 1 1 0 +0 +1 0 0 0 1 1 1 0 1 1 1 0 1 +0 +0 1 1 1 0 0 1 1 1 0 1 1 0 +0 +1 0 0 1 1 1 1 1 1 1 0 1 0 +1 +0 0 1 1 1 1 1 0 1 0 0 1 1 +0 +1 1 1 0 1 1 1 1 1 0 0 0 0 +0 +0 1 0 1 0 1 1 0 1 0 1 0 1 +1 +1 1 0 1 0 0 0 1 1 0 1 0 0 +0 +1 0 0 1 0 0 1 1 0 0 0 0 1 +1 +0 1 1 1 1 0 1 0 1 1 0 1 1 +1 +0 0 1 1 1 1 0 0 0 0 1 0 1 +0 +0 1 0 0 0 0 0 0 0 0 0 0 1 +0 +0 1 1 1 1 0 1 1 1 1 1 1 1 +1 +0 1 0 0 1 1 0 1 1 0 0 0 1 +0 +1 1 1 0 0 1 0 1 0 1 0 0 0 +0 +0 0 1 1 1 1 1 1 1 1 0 1 0 +1 +0 0 0 0 0 1 0 0 0 1 1 0 0 +1 +0 0 1 1 0 1 1 1 0 1 0 0 1 +1 +1 1 0 0 1 1 1 1 1 0 1 1 1 +0 +1 1 0 1 1 0 0 0 1 1 1 1 1 +1 +1 0 1 1 0 0 1 0 1 1 1 1 1 +1 +1 0 0 1 0 0 1 1 1 0 1 1 0 +1 +0 1 0 1 1 0 1 0 0 1 0 1 1 +1 +0 0 1 0 1 1 0 1 1 0 1 1 0 +1 +1 0 0 1 0 0 0 1 0 1 0 1 1 +0 +1 0 1 1 1 1 0 0 1 1 1 1 1 +0 +1 1 1 1 0 0 1 1 1 1 1 1 1 +1 +0 1 0 0 0 0 1 1 1 1 0 1 1 +1 +0 0 0 0 1 1 0 0 1 0 0 0 1 +0 +0 0 1 1 0 0 1 1 1 0 1 0 0 +0 +1 1 1 0 1 0 0 0 0 1 1 1 1 +0 +1 1 1 1 1 0 0 1 0 1 0 0 1 +0 +1 1 0 0 1 0 0 0 1 0 0 0 0 +0 +0 0 1 0 1 0 1 1 1 1 0 0 1 +1 +0 0 0 1 1 0 0 1 0 1 1 1 1 +1 +0 0 1 0 0 0 0 1 0 0 1 1 1 +1 +1 0 0 0 0 1 1 0 1 1 1 1 0 +1 +1 0 1 0 1 0 1 1 0 1 0 0 1 +1 +1 0 0 1 0 0 1 0 0 0 1 0 0 +0 +0 0 1 1 1 1 0 1 0 1 0 0 1 +1 +0 1 0 1 0 1 0 1 1 1 0 1 0 +1 +1 0 1 1 1 1 0 0 1 1 1 0 0 +0 +0 1 1 1 1 1 0 1 0 1 0 0 0 +1 +1 1 0 1 1 0 0 1 1 0 1 0 0 +1 +1 1 1 1 1 1 0 1 0 0 1 1 0 +1 +0 1 0 0 0 0 0 0 0 1 0 0 0 +0 +0 1 1 1 1 1 1 0 0 0 0 0 0 +0 +0 1 0 1 0 0 1 0 0 0 0 0 0 +1 +1 0 0 1 0 1 1 1 1 1 1 1 0 +1 +0 1 0 0 0 0 1 0 0 0 0 0 1 +1 +1 1 0 1 0 0 1 0 0 1 1 0 1 +1 +1 0 1 0 0 1 1 1 1 0 1 0 1 +0 +0 1 1 0 1 0 0 1 1 1 0 1 1 +0 +1 0 1 1 0 1 0 0 0 0 0 1 0 +1 +0 0 1 1 0 0 0 1 0 0 0 0 0 +1 +1 0 0 1 1 0 1 0 0 1 1 0 0 +0 +0 1 0 1 1 0 0 1 0 0 0 0 1 +1 +1 0 0 1 0 0 1 0 0 1 0 0 1 +1 +0 0 1 0 0 0 0 0 1 1 0 0 0 +1 +0 0 1 0 0 1 1 0 1 1 1 0 0 +0 +1 0 0 0 0 1 0 0 0 1 1 0 1 +1 +0 1 1 0 0 0 1 0 1 0 0 0 1 +1 +1 0 1 1 0 1 0 0 1 1 0 0 1 +1 +0 0 1 0 1 0 1 1 1 1 1 0 1 +0 +1 1 0 0 1 0 0 1 1 0 1 0 1 +1 +0 1 1 0 0 0 1 1 1 0 0 0 1 +0 +1 0 0 1 1 1 0 1 0 1 1 0 0 +1 +0 1 0 1 1 1 1 0 0 1 1 1 0 +0 +0 0 1 0 1 1 1 1 0 1 0 1 0 +1 +0 1 0 1 0 0 0 1 1 0 1 1 0 +0 +0 1 1 0 0 0 1 0 0 0 0 0 1 +0 +1 0 1 0 1 1 0 0 0 0 0 1 0 +1 +0 0 1 0 1 0 1 0 1 1 0 0 1 +0 +0 1 1 1 1 0 1 1 0 0 0 1 1 +0 +1 0 0 0 0 1 0 0 1 1 0 1 1 +0 +0 1 1 0 1 0 1 0 1 0 1 0 1 +1 +0 0 0 0 0 0 0 0 0 0 1 1 0 +0 +1 0 1 1 1 1 0 1 0 1 0 1 1 +1 +1 1 0 0 0 1 1 1 0 0 0 0 0 +1 +1 0 0 0 0 1 0 0 1 1 0 0 1 +1 +1 1 0 1 1 0 0 0 1 1 1 0 1 +0 +1 1 0 0 0 1 1 1 0 0 0 1 0 +0 +0 0 0 1 0 1 0 0 1 0 0 0 1 +0 +1 0 1 1 1 0 1 0 0 0 0 0 0 +1 +0 0 0 1 1 1 0 1 0 1 0 0 1 +0 +0 1 0 0 0 0 0 1 1 0 1 0 1 +1 +1 1 0 1 0 0 0 1 0 1 0 0 1 +0 +0 1 1 0 0 1 1 1 1 1 0 0 1 +0 +0 1 1 0 0 0 0 1 0 0 0 1 1 +1 +1 1 1 0 1 0 0 0 0 1 1 0 0 +0 +0 0 1 0 0 1 0 1 0 0 1 1 1 +0 +0 1 0 0 1 1 0 1 0 0 0 0 0 +0 +1 1 1 1 0 0 1 1 0 0 1 0 1 +0 +0 1 0 0 1 0 1 1 1 1 1 1 0 +0 +0 0 1 1 1 0 1 0 1 0 1 0 0 +0 +0 1 0 0 1 0 0 0 0 1 0 0 1 +0 +0 0 1 1 0 1 0 1 1 0 0 0 0 +1 +0 1 0 0 0 1 0 1 0 0 0 1 0 +0 +1 1 1 0 0 0 1 0 0 1 1 1 1 +0 +1 0 0 0 0 1 1 0 1 1 1 0 0 +0 +1 1 1 1 0 0 1 0 0 1 1 1 0 +0 +1 0 0 0 1 1 1 0 0 0 1 0 1 +0 +1 0 0 0 1 0 1 1 0 1 1 1 0 +1 +0 1 1 0 1 1 1 1 0 1 1 0 0 +0 +1 1 0 0 1 1 0 0 1 1 0 1 1 +0 +0 1 0 1 0 0 0 1 0 1 0 1 0 +1 +0 1 1 0 0 0 0 1 0 0 0 0 1 +0 +0 0 1 1 1 1 0 1 1 1 1 0 1 +1 +1 1 1 0 1 1 1 1 0 1 1 1 1 +1 +0 0 0 0 0 0 1 1 1 1 0 0 0 +0 +0 1 0 1 1 0 1 1 0 1 0 0 1 +1 +1 0 1 1 1 0 1 1 1 0 0 1 0 +0 +0 1 0 0 0 0 1 1 1 1 1 1 1 +0 +0 0 0 0 1 1 0 0 0 0 0 0 0 +0 +1 0 0 0 0 0 0 1 0 1 1 1 1 +0 +1 1 1 0 1 0 1 1 1 0 1 1 0 +1 +0 1 0 0 0 1 1 1 0 0 1 0 1 +0 +0 0 1 0 0 1 1 1 0 0 1 1 0 +0 +1 0 1 1 1 0 1 1 1 0 1 1 1 +0 +0 1 1 1 1 1 1 0 0 1 0 0 0 +1 +1 1 0 0 1 1 0 0 1 1 1 1 0 +0 +0 1 1 0 0 0 1 0 0 0 0 0 0 +1 +1 1 0 0 0 1 1 0 0 0 1 0 0 +1 +0 1 0 0 0 0 1 0 1 0 0 0 1 +0 +1 1 0 0 1 0 1 0 0 1 0 1 0 +0 +1 1 1 0 1 1 1 1 0 0 1 0 0 +0 +1 1 1 1 0 0 1 0 0 0 1 0 1 +1 +0 0 0 1 1 0 0 1 0 1 1 0 0 +1 +1 1 0 0 0 1 0 0 1 1 1 1 0 +1 +0 0 1 0 0 1 0 0 0 0 1 0 0 +1 +0 1 0 1 1 0 1 0 0 0 1 0 1 +0 +1 1 0 0 0 0 1 1 1 1 0 0 0 +0 +0 1 1 1 1 1 1 1 1 1 1 0 1 +1 +0 0 0 0 0 0 0 1 1 1 0 1 0 +0 +0 1 0 0 0 0 0 0 0 1 0 0 1 +1 +1 1 0 0 1 0 1 1 1 0 1 0 0 +1 +1 1 1 0 1 0 1 1 1 1 0 1 0 +1 +1 1 0 1 1 0 0 1 1 1 1 0 0 +0 +0 0 0 1 0 1 1 0 1 0 0 1 1 +0 +1 1 0 0 1 1 1 1 0 0 1 1 1 +1 +1 0 0 0 1 1 0 1 1 0 1 0 0 +0 +1 1 1 0 0 0 0 0 0 0 0 0 0 +1 +0 1 1 0 0 0 0 0 1 1 0 0 1 +1 +1 1 1 0 0 0 1 0 0 1 1 0 1 +1 +1 0 0 1 1 1 0 0 1 1 0 0 0 +0 +0 1 1 0 0 1 0 0 0 1 1 0 0 +1 +0 1 1 1 0 0 0 0 0 0 0 1 1 +1 +1 0 1 1 0 0 0 0 1 0 1 1 0 +0 +1 1 0 1 1 1 1 0 1 1 1 0 0 +1 +0 1 0 1 0 1 1 0 0 1 1 1 0 +1 +0 1 0 0 1 1 0 1 0 1 0 1 1 +1 +0 1 0 1 0 1 0 0 1 1 0 0 0 +1 +0 0 1 1 0 1 1 0 0 0 0 0 1 +1 +0 0 1 0 1 1 1 1 0 0 0 1 1 +1 +1 1 0 1 1 1 0 0 1 0 1 0 1 +0 +0 0 0 1 1 1 0 0 1 0 1 1 0 +0 +0 0 0 0 1 0 1 0 1 1 1 1 0 +0 +0 0 0 0 1 0 1 1 1 1 1 0 0 +0 +1 1 0 1 0 1 0 1 0 1 1 0 0 +1 +0 0 0 0 1 0 1 1 1 0 1 1 0 +0 +1 0 1 1 1 0 1 1 1 1 1 0 0 +1 +0 0 0 1 1 1 1 1 1 0 0 1 1 +0 +0 1 1 0 1 1 1 1 1 0 0 0 1 +0 +1 1 0 0 0 1 0 0 1 1 0 1 1 +1 +0 0 1 0 1 1 0 0 0 0 1 0 1 +1 +1 1 0 0 1 0 0 0 1 0 1 1 0 +0 +1 1 0 0 1 1 1 0 1 0 0 1 1 +0 +1 1 1 0 0 1 1 1 1 0 0 0 0 +1 +0 1 0 1 0 0 1 1 0 0 0 0 1 +1 +0 0 0 1 1 1 1 0 1 0 0 1 0 +0 +0 0 0 1 0 1 0 1 0 1 0 1 1 +0 +0 0 0 0 0 1 1 0 0 0 0 1 1 +0 +0 1 0 0 1 0 0 1 0 1 1 0 0 +1 +1 0 1 1 1 1 0 0 0 0 0 1 1 +1 +0 1 0 0 1 1 0 1 1 0 1 0 1 +1 +1 0 1 1 0 0 1 0 1 1 1 1 0 +0 +1 0 0 0 1 1 0 0 0 0 0 0 1 +0 +1 0 1 0 1 1 0 1 0 1 1 0 0 +1 +0 1 1 0 1 1 0 1 0 0 1 1 0 +1 +0 1 1 0 0 0 0 0 0 0 1 0 0 +1 +1 0 1 1 1 0 1 1 1 1 0 1 0 +1 +0 0 0 1 1 1 0 0 1 1 0 0 1 +0 +0 0 1 0 1 0 0 1 0 0 0 1 0 +0 +0 0 0 1 0 0 0 0 1 1 0 0 0 +1 +1 1 1 0 0 1 0 0 1 0 0 0 0 +1 +0 0 0 0 0 1 0 1 1 1 0 1 0 +1 +0 0 0 1 1 0 1 0 0 1 0 0 0 +0 +0 0 0 0 0 0 0 0 1 0 1 1 0 +1 +1 1 1 0 0 0 0 1 0 0 1 0 0 +1 +0 0 0 1 1 1 0 1 1 1 1 1 0 +0 +1 0 0 0 0 0 0 1 0 0 1 0 0 +1 +0 0 0 0 1 0 1 1 0 0 1 0 1 +1 +1 1 0 1 0 1 0 0 0 0 1 0 1 +0 +0 1 0 1 0 1 0 0 0 1 1 1 1 +1 +1 0 1 0 0 0 0 0 1 1 1 0 1 +0 +0 1 1 0 0 0 0 1 0 0 1 0 0 +0 +0 0 1 1 0 0 0 0 1 1 0 1 0 +1 +1 1 1 1 0 0 0 0 1 1 1 0 0 +1 +1 1 1 0 1 0 0 1 0 1 0 0 0 +0 +0 1 0 0 1 1 1 1 1 1 1 0 1 +1 +1 0 1 0 1 0 1 1 1 0 0 1 1 +0 +0 1 0 1 0 0 0 0 0 0 1 1 1 +1 +1 0 0 0 1 0 0 0 1 1 1 0 0 +1 +1 1 1 0 1 1 1 0 1 1 0 1 0 +1 +1 1 1 0 0 1 0 1 1 1 1 1 1 +0 +0 1 0 1 1 1 1 1 0 1 1 1 1 +0 +0 0 0 1 0 1 1 0 0 1 1 1 0 +0 +1 0 0 0 1 1 1 0 0 0 0 0 0 +0 +0 1 1 1 1 0 1 0 1 0 0 1 1 +0 +1 0 1 0 1 1 0 1 0 0 1 1 1 +0 +1 1 0 1 1 0 1 1 1 1 0 1 0 +1 +1 0 0 1 0 1 1 0 1 1 0 0 1 +1 +1 0 1 1 0 1 0 1 1 1 1 1 0 +1 +1 0 1 1 1 1 1 0 1 1 0 1 0 +1 +1 0 0 0 1 0 1 1 1 1 0 0 0 +0 +0 1 1 0 1 0 0 0 1 0 1 1 1 +1 +1 0 0 1 1 0 0 0 0 0 0 0 0 +1 +0 1 0 1 0 1 0 0 1 1 1 0 1 +1 +0 1 1 0 1 1 1 1 0 0 0 1 0 +1 +0 1 0 0 0 1 1 1 1 0 0 1 0 +0 +1 1 0 0 0 1 0 1 1 0 1 0 0 +0 +0 0 0 1 0 1 1 0 0 1 0 1 1 +0 +1 1 1 0 1 1 0 1 1 1 1 1 1 +1 +1 1 0 0 1 0 0 0 0 1 1 1 0 +0 +1 1 1 0 0 0 1 0 1 0 1 1 1 +0 +1 1 1 0 1 0 0 0 1 1 1 0 0 +1 +0 1 1 0 1 1 0 1 0 1 1 1 1 +1 +1 0 1 0 1 0 1 1 0 1 1 1 1 +1 +0 0 1 1 0 0 1 0 0 1 1 0 1 +0 +0 1 0 0 1 1 0 0 1 0 0 0 1 +1 +1 1 0 0 0 1 0 0 1 1 0 1 0 +0 +1 1 0 0 1 1 0 1 0 1 1 1 0 +0 +1 0 1 1 0 1 0 1 0 1 1 0 0 +1 +1 0 0 1 0 0 0 0 0 0 0 0 1 +1 +1 1 0 1 1 0 1 0 1 1 1 1 1 +0 +0 0 0 1 1 1 1 0 0 1 1 0 0 +0 +0 0 0 0 0 1 0 1 1 1 0 0 0 +0 +0 1 1 0 1 1 0 1 1 1 1 1 1 +0 +1 1 1 0 0 1 0 1 0 0 0 1 0 +0 +1 1 0 0 0 0 0 0 0 1 0 1 1 +1 +1 1 0 1 0 1 1 0 0 0 1 1 1 +0 +1 1 1 1 1 1 0 1 0 1 0 0 1 +1 +1 0 1 1 0 0 0 0 1 0 1 1 1 +1 +1 0 1 0 1 0 1 1 1 1 1 1 1 +0 +1 0 1 0 0 1 0 0 0 0 0 0 1 +0 +1 1 1 1 0 0 1 1 1 0 0 0 1 +0 +0 0 0 1 1 1 1 1 0 1 1 0 0 +1 +0 0 0 0 0 0 0 1 1 0 1 0 1 +0 +1 1 0 0 0 1 1 0 1 0 0 0 1 +0 +1 0 0 1 0 1 1 0 0 0 0 0 0 +0 +0 1 0 0 0 1 1 0 1 1 1 1 1 +0 +0 0 1 1 1 0 0 1 0 1 1 1 0 +1 +1 1 1 0 1 0 1 1 0 1 1 0 1 +1 +1 0 0 1 1 0 0 0 1 1 1 1 1 +0 +1 0 0 1 0 1 0 0 0 1 1 1 0 +0 +0 1 1 1 1 0 0 0 0 0 1 0 1 +0 +1 0 0 1 1 0 1 1 1 1 1 1 0 +1 +0 1 0 1 0 0 1 0 1 1 1 1 0 +1 +1 1 0 1 1 0 0 0 0 0 0 1 1 +0 +0 0 0 0 1 0 1 0 0 0 1 0 1 +0 +1 0 0 0 1 1 0 1 1 1 1 0 1 +0 +1 1 0 1 1 1 0 0 1 0 1 1 0 +0 +0 0 0 1 0 1 1 1 0 1 1 1 0 +1 +0 1 0 1 0 0 1 0 1 1 1 0 0 +0 +0 1 1 1 1 1 1 0 1 0 0 0 0 +1 +1 0 0 1 0 0 0 0 1 0 1 0 1 +1 +0 0 1 0 0 1 0 0 0 0 0 1 1 +0 +0 1 0 1 1 0 1 0 0 0 0 1 0 +1 +0 0 1 1 1 0 0 1 1 0 1 1 1 +0 +1 1 1 0 0 1 0 1 1 0 1 0 1 +0 +1 1 1 0 1 0 1 0 0 1 1 1 1 +1 +1 1 1 0 1 0 0 0 0 1 0 1 0 +0 +0 0 0 1 1 1 0 0 1 1 1 0 0 +0 +1 0 1 1 0 1 1 1 1 1 0 1 1 +0 +1 0 1 1 0 1 0 0 0 1 0 0 1 +0 +1 0 1 1 0 0 0 1 0 0 0 1 1 +0 +1 1 0 0 0 0 0 1 1 1 0 1 1 +1 +0 1 0 0 0 0 0 0 1 0 1 1 0 +0 +0 0 0 1 0 1 0 0 0 0 0 0 0 +0 +1 1 1 0 1 1 1 1 0 1 1 1 0 +0 +0 1 1 1 1 0 1 1 1 1 0 0 1 +1 +1 0 0 0 1 1 1 0 1 1 1 0 0 +1 +0 1 0 0 1 0 1 0 0 0 1 0 1 +1 +1 0 0 1 0 1 1 1 0 1 1 1 0 +0 +1 0 1 0 1 0 0 1 1 1 1 1 0 +0 +1 1 0 1 0 1 1 1 0 0 0 0 1 +1 +1 1 0 1 0 0 1 1 0 0 1 1 1 +0 +0 1 1 1 0 0 0 1 1 0 1 0 0 +0 +0 0 0 1 1 0 1 1 0 0 0 0 1 +1 +1 1 0 0 0 1 0 1 0 0 0 0 0 +0 +1 0 1 0 1 0 0 1 1 1 1 0 1 +0 +0 0 0 1 1 1 1 1 0 0 0 1 1 +1 +1 0 0 1 1 1 1 1 1 0 0 0 1 +0 +0 1 1 0 0 1 0 0 1 1 0 0 0 +1 +0 0 0 1 0 0 0 1 1 0 0 1 1 +1 +0 0 0 0 0 0 0 1 0 1 1 0 0 +1 +0 0 1 1 0 1 1 0 0 0 1 0 0 +1 +0 1 0 0 1 0 1 1 1 0 1 0 1 +1 +1 0 1 1 0 1 0 1 0 0 1 0 1 +1 +1 0 0 0 0 1 1 1 0 0 0 1 0 +1 +1 0 1 1 1 1 0 1 1 1 1 0 0 +1 +0 1 1 0 1 0 1 0 1 1 1 0 1 +0 +0 1 0 1 0 0 1 0 1 1 0 0 0 +1 +1 1 1 0 0 1 1 1 1 0 1 1 0 +1 +1 1 1 0 0 0 1 0 1 1 0 1 0 +1 +0 0 0 1 0 0 1 1 0 0 0 1 0 +0 +1 0 0 0 1 1 1 0 0 1 1 0 1 +1 +0 0 1 1 1 1 1 1 1 0 1 0 1 +1 +0 1 0 1 0 0 1 1 1 0 1 0 1 +1 +1 1 0 0 1 1 0 1 1 1 1 1 0 +1 +1 1 1 0 1 1 1 0 0 1 0 1 0 +0 +0 0 0 1 0 1 0 1 1 0 0 1 0 +1 +0 1 0 1 1 0 0 0 1 1 1 0 0 +0 +1 1 1 0 0 0 0 0 1 0 0 1 1 +0 +1 0 0 0 1 0 1 0 1 0 0 0 0 +0 +1 0 1 1 1 0 1 0 1 0 1 0 0 +1 +1 0 0 1 0 0 0 0 0 1 0 1 0 +0 +0 0 0 1 1 0 1 1 1 1 1 0 0 +1 +0 1 0 1 0 1 0 0 0 0 1 1 0 +1 +0 1 1 0 0 1 1 1 0 0 0 0 0 +1 +1 1 1 1 0 1 0 1 0 1 1 1 0 +1 +1 1 0 1 1 1 0 0 0 1 1 0 0 +1 +1 0 1 1 1 0 0 0 1 1 0 1 0 +1 +0 1 1 1 0 1 1 1 1 0 0 0 1 +0 +0 0 0 0 1 1 1 1 0 0 1 1 0 +0 +0 1 1 0 1 0 1 1 0 1 0 1 0 +1 +1 0 0 1 0 0 1 0 0 0 1 0 1 +1 +0 1 0 1 0 1 0 1 0 0 0 0 1 +1 +0 0 0 1 0 1 0 0 1 1 0 1 1 +0 +0 0 0 0 1 0 0 0 0 1 1 0 1 +0 +0 1 0 1 0 0 0 1 0 1 0 0 1 +1 +1 0 1 1 0 1 1 1 0 0 1 1 1 +1 +0 0 0 0 0 1 0 1 0 1 1 1 1 +0 +1 1 1 1 1 1 1 0 1 1 0 0 1 +0 +0 0 1 0 0 0 1 1 1 1 1 1 1 +0 +0 1 1 0 0 1 0 0 1 0 0 0 0 +0 +1 1 1 0 0 0 1 0 0 0 1 1 1 +1 +1 0 0 1 0 1 1 0 1 0 0 1 1 +1 +1 0 1 1 1 1 1 0 1 0 0 1 0 +0 +1 0 0 0 1 0 0 0 0 1 0 0 1 +0 +0 1 1 0 1 1 0 1 1 1 0 1 1 +1 +0 0 0 1 1 0 0 1 0 0 1 0 0 +0 +1 0 0 1 1 1 0 1 1 1 0 1 1 +1 +1 0 0 0 0 0 1 0 1 0 0 1 0 +0 +0 1 1 1 1 1 1 1 1 1 1 0 0 +0 +1 0 1 0 0 0 1 0 1 0 0 1 0 +1 +1 0 1 0 0 1 0 1 0 1 0 0 1 +0 +1 0 1 0 1 0 1 0 1 0 0 0 0 +1 +1 1 1 0 1 0 0 1 1 1 0 1 1 +1 +0 0 0 1 0 0 1 1 1 1 1 1 0 +1 +0 1 1 1 1 0 0 1 1 1 1 0 0 +0 +0 1 0 0 0 1 0 1 0 0 1 1 1 +0 +1 0 1 0 1 0 0 0 1 0 0 0 1 +1 +0 1 1 0 0 0 1 1 0 1 1 0 0 +0 +0 0 0 0 1 0 0 1 0 1 1 1 0 +1 +1 1 1 1 0 0 0 0 0 0 0 0 0 +0 +0 1 0 1 1 0 1 0 0 0 1 0 0 +1 +0 1 1 1 1 1 1 1 0 1 1 0 0 +1 +1 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 1 0 0 0 1 0 0 1 +1 +0 1 1 0 1 0 0 1 0 1 0 1 0 +0 +1 0 0 0 0 1 0 0 1 0 1 1 0 +1 +0 1 1 0 1 1 0 0 0 0 0 1 1 +0 +1 1 1 0 0 1 1 1 0 0 0 1 0 +1 +1 0 1 0 0 1 0 0 1 1 1 1 1 +0 +0 1 0 1 0 1 1 0 0 1 0 0 0 +1 +1 0 1 1 0 1 0 0 0 1 1 0 0 +0 +0 0 1 1 1 0 1 1 0 0 1 1 1 +0 +0 0 1 1 1 1 1 0 0 0 1 0 0 +0 +1 1 0 0 1 0 0 0 1 0 1 0 0 +1 +0 0 1 0 1 1 0 0 0 1 1 0 1 +0 +1 0 1 1 0 1 1 1 0 1 0 0 1 +0 +0 0 1 1 1 0 0 1 1 1 0 0 0 +0 +0 1 0 1 1 1 0 0 0 1 0 1 1 +1 +1 0 1 0 0 1 1 1 1 1 1 1 0 +1 +1 0 1 0 0 0 0 1 0 0 1 0 0 +0 +1 0 0 1 0 1 0 1 0 1 1 1 1 +0 +1 1 1 1 1 0 1 1 1 0 1 1 0 +0 +0 1 0 1 0 0 0 1 1 1 0 1 1 +1 +1 1 0 1 1 0 1 0 1 1 0 0 1 +0 +0 1 0 1 0 0 0 1 1 0 0 1 0 +1 +0 1 1 0 0 1 0 1 1 1 0 0 0 +0 +0 0 0 0 1 0 1 0 1 0 1 0 1 +1 +0 1 0 1 1 1 1 1 0 1 0 1 1 +1 +1 1 1 1 0 1 1 0 0 0 0 0 1 +1 +0 1 0 1 1 1 0 1 0 1 1 0 1 +0 +0 1 1 1 0 1 1 1 0 1 1 0 1 +1 +0 0 1 1 0 1 0 0 1 1 1 0 0 +0 +1 1 1 1 1 1 1 0 0 0 1 1 0 +1 +1 0 0 1 1 1 0 0 0 0 0 0 1 +1 +0 1 0 0 0 0 0 0 0 0 1 1 1 +0 +1 0 0 0 1 0 1 1 0 1 0 1 1 +1 +1 1 1 0 0 1 1 0 0 0 1 1 0 +1 +0 0 0 1 1 0 0 0 0 1 0 0 0 +1 +1 1 0 1 0 0 0 1 1 1 1 0 1 +0 +0 0 0 1 1 1 0 1 1 0 0 0 0 +1 +0 0 1 0 1 0 1 1 1 1 1 0 0 +1 +1 1 1 0 0 0 0 1 1 1 1 1 0 +0 +1 1 0 1 1 0 0 0 0 0 1 0 0 +1 +1 1 0 1 1 1 0 1 0 0 1 1 0 +0 +0 1 1 0 1 0 1 1 1 0 0 1 1 +0 +1 0 0 0 0 1 1 0 0 0 0 1 1 +1 +1 1 0 1 0 1 0 1 0 1 1 0 1 +0 +1 1 0 0 0 0 1 1 1 1 1 0 1 +0 +1 0 1 0 1 0 1 0 1 1 0 1 1 +0 +0 0 0 0 1 0 0 1 0 1 1 0 0 +0 +1 1 1 0 0 1 0 0 1 1 0 0 0 +0 +0 0 0 0 1 0 0 1 0 0 1 0 1 +0 +0 0 1 1 1 1 1 1 1 1 0 0 0 +0 +0 0 1 1 0 1 0 0 1 1 1 0 1 +1 +0 1 0 1 0 0 0 0 1 1 1 1 1 +1 +0 0 1 1 0 1 0 1 1 1 0 0 0 +0 +1 0 1 1 1 0 0 0 0 0 1 0 1 +0 +0 1 0 1 1 0 0 0 1 1 0 0 1 +0 +0 0 0 0 0 0 0 0 1 1 1 0 0 +1 +1 0 1 1 0 0 1 1 0 1 1 0 1 +0 +0 0 0 1 1 0 0 1 1 1 0 0 1 +0 +1 1 0 1 1 1 1 0 0 1 1 0 1 +1 +0 0 1 0 0 0 1 1 1 0 0 1 0 +1 +1 0 0 0 1 1 1 0 1 1 0 1 0 +1 +0 0 0 1 0 1 0 0 0 1 1 0 0 +0 +1 1 0 1 0 0 1 1 0 1 0 1 0 +1 +0 1 1 0 0 1 0 0 0 0 1 0 0 +0 +0 0 1 0 1 1 0 0 0 1 1 1 0 +0 +0 1 0 1 0 1 0 0 1 0 1 0 1 +0 +1 0 0 0 0 1 0 1 1 1 1 0 0 +0 +0 0 0 1 0 1 1 0 1 0 1 1 0 +0 +0 0 1 0 1 0 1 0 0 0 1 1 0 +1 +0 0 0 1 0 1 0 0 1 1 1 0 1 +0 +1 1 0 0 0 0 0 1 1 0 0 0 1 +1 +1 1 1 1 0 0 0 1 0 0 1 0 0 +0 +0 0 0 1 1 0 1 0 1 1 1 0 1 +1 +1 1 0 0 0 0 0 1 1 0 1 1 1 +1 +0 1 0 0 0 0 0 1 0 1 1 0 0 +0 +1 0 0 1 1 1 0 0 1 1 1 0 1 +0 +1 1 1 0 0 0 0 0 1 1 0 1 0 +0 +0 0 1 1 1 0 1 0 1 0 1 1 1 +0 +1 1 1 1 1 1 0 0 1 0 1 0 0 +0 +0 0 1 1 1 0 1 0 0 0 1 0 1 +0 +1 0 1 1 1 0 1 1 0 0 0 1 1 +0 +1 0 0 1 1 1 1 0 1 1 0 1 0 +0 +1 0 1 0 1 0 1 0 1 0 1 0 1 +1 +1 1 1 0 1 1 0 0 1 1 1 1 0 +1 +1 0 0 0 1 0 1 0 0 1 0 0 1 +1 +1 0 1 0 0 1 1 0 0 1 0 0 0 +1 +0 1 1 1 1 0 1 1 1 0 1 0 1 +1 +1 1 1 0 1 0 1 0 0 1 0 0 1 +1 +1 1 1 0 1 1 0 1 1 0 1 1 0 +1 +0 1 0 0 0 0 0 0 1 1 1 0 1 +1 +0 0 0 0 0 0 0 1 0 0 1 0 0 +0 +0 1 1 0 1 1 0 0 1 1 1 1 0 +0 +1 0 1 1 0 0 0 1 0 0 0 0 1 +1 +0 0 1 1 1 1 0 0 1 1 1 0 0 +1 +0 1 1 0 0 1 1 1 0 0 1 1 0 +1 +1 0 0 1 0 1 1 0 0 1 0 0 1 +0 +0 0 1 0 0 0 0 0 1 0 1 1 1 +1 +1 0 0 0 1 1 0 1 0 0 0 0 0 +0 +0 0 1 0 1 1 1 1 1 0 0 1 0 +1 +0 1 1 1 1 1 1 1 0 1 0 0 1 +1 +1 1 0 0 1 0 0 1 0 1 0 0 1 +0 +0 0 1 1 1 0 1 0 0 0 1 1 1 +1 +0 1 0 1 0 0 1 0 0 0 1 1 1 +0 +0 1 0 1 0 0 0 0 1 1 1 1 0 +0 +0 1 0 1 0 1 1 0 0 1 1 0 0 +0 +0 0 0 1 1 1 1 0 1 1 0 0 0 +0 +1 0 0 1 1 0 1 0 1 0 1 0 0 +0 +0 0 0 1 1 1 1 1 1 1 0 1 0 +0 +0 1 0 1 1 1 1 1 1 0 0 0 0 +1 +0 0 1 0 1 0 0 0 1 1 0 0 0 +0 +1 0 0 0 1 0 1 1 0 1 0 0 1 +0 +0 1 0 0 1 1 1 0 0 0 0 0 1 +1 +0 0 1 1 1 1 1 0 1 1 1 0 1 +1 +0 0 0 0 0 0 1 1 0 1 1 0 0 +0 +1 1 0 0 1 0 1 1 1 1 0 0 1 +0 +1 1 1 0 0 0 1 0 1 1 1 1 1 +1 +0 0 0 0 1 1 0 0 1 0 1 1 0 +1 +0 1 1 1 1 1 0 1 1 0 1 0 0 +0 +0 1 1 1 1 0 0 1 1 0 0 0 1 +1 +1 1 0 0 0 0 1 0 0 1 1 1 1 +1 +0 0 1 1 0 0 0 0 1 1 0 1 1 +0 +1 0 1 1 1 1 1 0 0 0 0 1 0 +1 +1 0 1 0 0 1 1 0 0 0 1 1 1 +1 +0 1 0 0 0 1 1 1 0 1 1 0 0 +0 +1 1 0 1 0 1 1 0 0 0 0 0 0 +1 +1 1 0 0 1 1 1 1 1 1 1 0 1 +0 +0 1 0 0 0 0 0 0 0 1 1 1 1 +1 +1 1 1 1 1 1 1 0 1 1 1 1 0 +1 +1 1 0 1 0 1 1 1 0 0 1 0 0 +1 +0 1 1 1 1 1 0 1 1 0 0 1 0 +0 +0 0 1 0 1 1 0 1 0 1 1 0 0 +0 +0 1 0 1 1 1 1 0 1 0 1 0 1 +0 +1 0 0 0 1 1 0 1 0 0 0 0 1 +1 +0 0 0 1 1 1 0 1 1 0 0 1 1 +1 +0 0 0 1 0 0 0 1 0 0 1 1 1 +1 +1 1 1 0 1 1 0 1 1 0 0 1 1 +1 +0 0 1 0 1 1 0 0 0 0 0 1 0 +0 +1 0 1 1 1 0 0 1 1 1 1 0 0 +0 +0 1 0 1 1 1 0 1 1 0 0 0 0 +0 +1 1 1 1 0 0 1 1 0 1 0 1 0 +0 +0 0 0 0 0 1 1 1 1 1 1 1 1 +0 +1 1 1 1 0 0 1 1 0 1 1 1 1 +0 +0 1 0 1 1 0 0 1 0 0 1 1 1 +1 +0 1 1 0 0 0 1 0 1 1 1 0 0 +0 +1 1 1 0 0 0 0 1 1 1 0 1 1 +0 +0 0 0 1 0 1 1 0 1 1 1 0 1 +1 +0 1 1 0 1 0 1 1 0 0 0 0 0 +1 +0 1 1 1 1 1 0 0 1 1 1 1 1 +0 +1 1 0 1 1 0 1 0 1 1 1 0 1 +1 +1 1 1 1 0 0 1 0 1 0 1 0 0 +1 +0 1 1 0 0 1 0 0 0 0 1 1 1 +0 +1 0 1 0 1 1 1 0 1 0 0 1 1 +0 +0 0 0 0 0 0 0 0 1 0 1 1 1 +0 +0 0 0 0 1 0 1 1 0 0 0 0 1 +0 +0 0 1 1 1 1 0 0 1 1 0 0 1 +1 +1 0 0 0 0 1 0 1 1 0 0 0 1 +1 +0 0 1 0 0 0 1 1 0 0 0 1 0 +0 +0 0 0 1 0 1 0 0 1 1 0 0 0 +0 +1 1 1 0 1 1 0 1 1 0 1 0 0 +0 +0 1 1 1 0 1 0 1 1 0 1 1 0 +0 +1 0 0 0 1 0 1 0 0 1 1 0 0 +1 +0 1 1 0 1 1 1 0 1 1 1 1 1 +0 +0 0 0 0 0 1 1 0 1 0 0 1 1 +1 +0 1 0 0 1 0 0 0 1 0 1 0 0 +0 +1 1 0 0 0 0 0 1 0 0 0 1 0 +0 +1 0 0 0 0 0 1 1 0 0 0 1 1 +1 +0 0 1 1 0 0 1 1 1 1 0 1 1 +0 +1 0 0 1 0 0 1 1 1 0 0 0 1 +0 +1 1 1 0 0 1 1 0 0 0 0 1 1 +1 +0 1 1 0 1 1 0 1 1 0 1 1 1 +1 +0 0 1 1 0 0 1 1 0 1 0 0 1 +0 +1 1 1 1 1 0 0 1 1 0 1 1 1 +0 +1 0 1 1 0 0 0 1 1 0 1 1 0 +1 +1 0 1 0 0 1 0 1 1 0 0 1 1 +1 +1 1 1 0 1 1 1 1 1 1 0 0 0 +1 +0 1 1 0 0 1 1 1 1 0 1 0 1 +0 +1 0 0 1 1 0 0 1 0 1 1 1 1 +0 +0 1 1 1 0 0 1 0 0 1 0 1 0 +0 +1 0 0 1 1 1 0 1 1 1 0 0 0 +1 +1 1 0 1 0 0 1 0 1 1 0 0 1 +1 +1 0 0 0 1 0 1 1 0 1 1 1 1 +0 +1 0 1 1 1 0 0 1 0 1 1 1 1 +1 +0 0 1 1 1 0 1 0 0 0 0 1 0 +1 +0 0 0 1 0 1 0 1 1 0 1 0 1 +0 +0 0 1 0 0 0 1 1 0 0 1 1 0 +1 +1 0 1 0 0 1 0 0 1 0 0 0 1 +1 +1 0 0 1 1 0 0 0 1 0 1 0 1 +0 +1 0 1 1 1 1 0 0 0 0 1 1 0 +1 +0 0 0 1 1 0 0 1 0 0 1 1 1 +0 +0 1 0 0 0 0 1 1 1 1 0 0 0 +1 +0 0 0 1 1 0 0 0 0 0 1 1 1 +1 +1 0 1 1 0 1 0 1 0 0 0 0 1 +0 +0 0 0 1 1 0 1 1 1 0 1 0 1 +1 +1 1 1 1 0 1 0 1 1 0 0 0 0 +1 +1 0 0 0 1 0 0 1 0 1 1 0 0 +1 +0 1 0 0 1 1 0 1 0 0 1 1 1 +1 +0 0 0 1 0 0 1 1 1 0 0 0 1 +1 +0 0 1 1 1 1 1 1 1 0 0 0 0 +1 +0 0 0 0 0 1 0 1 0 0 1 0 1 +0 +1 1 1 1 1 1 0 1 1 0 0 1 1 +0 +1 1 1 1 1 1 1 1 1 0 0 0 0 +1 +0 0 0 1 1 1 0 1 0 0 1 0 1 +0 +1 1 1 0 0 1 1 1 0 1 1 1 0 +1 +0 0 1 0 0 1 1 1 1 1 1 1 0 +0 +0 0 1 0 1 1 1 1 0 0 1 0 0 +0 +0 1 0 0 1 1 1 1 0 0 0 0 1 +0 +1 1 1 1 1 1 1 1 1 1 1 0 0 +1 +0 0 0 1 0 1 1 0 0 0 1 1 0 +1 +0 0 1 1 1 1 0 0 1 1 0 1 0 +1 +1 1 0 0 1 0 0 0 0 0 1 0 0 +0 +0 1 1 1 1 1 0 1 1 0 0 1 1 +1 +1 0 1 1 0 0 0 0 0 1 0 1 0 +1 +1 1 1 1 0 0 1 1 0 0 0 0 1 +1 +0 1 1 0 0 1 0 0 0 1 1 1 0 +0 +0 1 1 1 1 0 1 1 1 0 1 0 0 +0 +1 0 1 1 1 1 0 0 1 0 1 1 1 +1 +1 0 0 1 0 0 0 1 1 1 1 1 1 +0 +0 1 0 0 1 1 1 0 1 1 1 0 0 +1 +1 0 1 1 0 0 1 0 1 0 0 1 0 +0 +0 0 1 0 1 1 1 0 0 1 0 0 1 +0 +1 1 0 1 0 1 0 0 0 0 1 0 0 +1 +1 1 1 0 0 0 0 1 0 0 1 0 1 +0 +0 0 0 0 1 0 1 1 0 1 1 0 0 +1 +0 0 0 0 1 0 1 1 0 1 0 1 0 +1 +1 1 0 1 1 0 0 0 0 0 0 1 0 +1 +0 1 0 1 0 0 1 1 0 0 1 0 0 +1 +1 1 0 1 0 1 1 1 0 1 1 1 0 +1 +1 0 1 0 1 1 1 0 0 1 1 0 1 +0 +0 0 0 1 1 1 1 0 0 0 1 1 0 +0 +1 0 0 0 0 0 1 0 1 1 0 0 1 +1 +0 0 1 0 1 1 1 0 0 1 0 0 0 +1 +1 1 0 1 0 0 0 0 1 0 0 0 0 +0 +1 1 0 1 1 0 0 0 0 1 1 1 0 +1 +0 0 0 1 1 1 1 1 1 0 1 0 0 +1 +1 1 1 1 1 1 0 1 0 0 1 1 1 +0 +0 1 0 1 0 1 1 1 0 1 0 0 0 +0 +1 1 1 1 0 0 0 1 0 1 0 0 0 +0 +1 1 0 1 0 0 0 0 0 1 1 0 1 +0 +1 0 0 0 1 0 0 0 1 0 0 0 1 +0 +1 1 0 1 0 1 0 0 1 1 1 0 1 +0 +1 1 1 1 0 1 1 1 0 1 1 0 1 +0 +1 1 0 1 0 1 1 0 0 1 0 0 1 +1 +0 0 1 0 1 1 1 1 1 1 1 1 0 +1 +0 1 1 1 1 1 0 1 1 1 1 0 0 +1 +0 1 0 0 0 1 0 0 0 0 1 1 1 +1 +0 1 1 0 1 0 0 0 1 1 1 0 0 +0 +1 0 1 0 0 0 0 0 0 1 0 0 1 +0 +1 1 1 0 0 1 0 1 0 1 0 1 1 +0 +0 0 0 1 0 0 1 1 0 0 1 0 0 +0 +1 1 1 0 0 0 0 1 0 1 0 1 0 +0 +1 1 0 0 0 0 1 0 1 0 1 0 1 +0 +1 1 0 0 0 1 0 1 0 1 0 1 1 +1 +1 1 1 0 1 0 0 1 1 0 0 0 1 +1 +1 0 1 0 1 0 1 0 1 0 1 1 0 +1 +1 1 0 0 1 1 1 0 1 0 1 0 0 +1 +0 1 0 0 1 1 1 1 0 1 1 1 1 +1 +1 1 1 0 0 1 1 1 1 0 0 1 0 +0 +1 0 1 0 1 1 1 1 0 0 1 1 0 +0 +1 1 0 1 1 1 0 1 0 1 0 1 1 +1 +1 1 0 0 1 0 1 1 1 1 0 1 1 +1 +0 0 1 0 0 1 0 0 0 0 1 0 1 +0 +1 0 1 0 1 0 0 1 0 1 0 1 0 +0 +0 0 1 0 0 0 0 1 1 1 0 1 0 +1 +1 1 1 0 1 1 1 1 0 1 1 0 1 +0 +0 0 0 0 1 1 0 0 0 0 0 1 1 +0 +1 1 0 0 1 1 1 1 0 0 0 0 1 +1 +1 0 0 1 0 1 1 0 1 1 1 1 1 +1 +0 0 0 0 0 1 1 0 0 0 1 1 0 +0 +1 0 1 0 1 1 0 0 0 1 1 1 0 +1 +0 0 0 0 1 0 1 1 1 1 1 1 0 +1 +1 0 1 1 1 0 0 0 1 0 1 0 0 +0 +0 0 1 1 1 1 1 0 0 0 0 0 1 +0 +1 1 1 0 1 0 0 0 0 1 1 0 1 +1 +0 0 1 1 0 0 0 0 1 0 0 1 1 +1 +1 1 1 1 0 1 0 1 1 1 0 1 0 +1 +1 0 0 0 1 1 1 0 0 0 1 1 1 +1 +0 1 1 1 0 0 0 0 0 1 1 0 1 +0 +0 0 1 0 1 1 0 1 1 0 0 0 1 +0 +1 1 0 0 1 0 0 1 0 1 0 1 0 +0 +1 1 1 1 0 0 1 0 0 0 0 1 0 +0 +1 0 1 0 1 0 0 0 0 0 1 0 1 +1 +1 0 1 1 1 1 0 0 1 0 0 1 0 +1 +0 0 0 1 0 1 0 1 0 0 1 0 0 +0 +1 1 1 0 0 0 1 1 0 1 0 0 0 +0 +0 1 0 0 1 0 0 1 0 1 1 0 1 +0 +1 0 1 0 0 1 1 0 0 0 0 1 0 +1 +1 0 0 0 1 1 0 0 1 0 1 0 1 +0 +1 0 0 1 0 0 1 1 1 1 1 0 1 +0 +0 0 0 0 1 0 1 1 0 0 1 1 1 +0 +1 0 0 1 1 0 0 1 0 1 0 1 1 +1 +1 0 1 0 0 0 0 0 1 0 0 0 0 +1 +0 0 0 0 1 0 0 1 1 0 1 0 1 +1 +0 0 1 1 1 1 0 0 0 0 1 0 0 +1 +0 1 0 0 1 0 1 0 0 1 0 1 1 +0 +1 0 1 0 0 1 0 1 0 1 1 1 0 +1 +1 1 0 1 0 1 0 0 0 1 1 0 0 +0 +0 0 0 1 1 1 1 1 1 1 1 1 1 +0 +0 0 1 0 0 1 1 0 1 0 1 1 0 +0 +1 1 1 0 0 1 0 0 0 1 1 0 0 +0 +1 0 1 0 0 0 1 1 0 1 0 1 0 +0 +0 1 0 0 0 1 1 1 1 1 1 1 0 +0 +1 0 1 0 1 1 0 1 0 0 1 0 0 +0 +1 1 0 0 1 1 0 0 0 1 0 1 0 +0 +0 0 1 0 0 0 0 0 1 0 1 1 0 +0 +0 0 0 1 1 1 0 0 1 1 1 1 1 +0 +0 0 0 1 0 1 1 0 1 0 0 1 0 +1 +1 1 1 1 0 0 1 1 1 0 1 1 1 +0 +1 0 1 1 0 1 0 0 1 1 1 1 0 +0 +1 0 0 1 1 1 0 0 1 1 1 1 0 +0 +0 1 0 0 0 1 1 0 0 0 0 1 0 +0 +1 1 0 0 0 1 1 1 1 0 1 0 0 +1 +1 1 0 1 1 0 1 1 1 0 1 0 1 +1 +1 0 1 1 1 0 0 1 0 1 1 0 0 +1 +0 1 1 1 0 1 1 0 1 0 0 0 1 +1 +1 1 0 0 1 1 1 1 0 0 1 0 1 +0 +0 0 0 0 1 1 1 0 0 0 0 0 1 +0 +1 0 1 1 1 1 1 1 0 0 0 0 0 +1 +1 1 1 1 0 1 0 0 0 1 1 0 0 +1 +1 0 1 1 0 0 1 0 1 0 0 1 1 +1 +1 1 0 0 0 0 0 0 0 1 1 1 0 +1 +0 0 1 1 0 1 0 0 1 1 0 1 0 +0 +1 1 0 1 1 0 1 1 0 0 1 0 0 +1 +1 1 1 1 1 0 0 1 1 1 0 1 0 +1 +1 1 0 1 0 0 1 0 1 1 0 1 0 +1 +1 0 1 0 0 0 1 0 1 0 0 1 1 +0 +1 0 0 0 1 0 0 0 1 1 1 1 0 +0 +0 1 0 0 1 1 1 0 0 0 0 0 0 +0 +0 0 0 0 1 1 0 1 1 1 1 1 0 +1 +0 0 1 0 0 0 1 0 1 1 0 0 0 +0 +1 0 0 1 0 1 1 0 0 1 1 1 0 +1 +0 0 1 0 1 1 0 1 1 0 1 0 0 +0 +0 0 0 0 1 1 1 0 0 1 0 1 0 +1 +1 0 1 0 1 1 1 0 1 1 0 0 1 +0 +1 1 0 1 0 0 0 0 1 1 0 1 1 +1 +0 0 1 1 1 0 0 0 1 0 0 1 1 +0 +1 0 1 1 0 1 0 1 0 1 0 0 1 +1 +1 0 1 0 1 0 0 0 0 0 1 0 0 +0 +0 1 0 1 0 1 1 1 0 1 1 0 0 +1 +1 1 0 1 1 0 0 1 1 0 1 0 1 +0 +1 0 1 1 1 1 0 1 0 1 0 1 0 +0 +0 1 1 1 0 1 0 1 1 0 0 1 1 +0 +1 0 1 0 1 1 0 0 0 0 0 0 0 +0 +0 0 0 1 1 1 0 0 1 0 1 1 1 +1 +1 1 0 1 0 0 1 0 1 1 1 1 0 +0 +1 0 0 0 1 0 1 1 1 1 0 1 0 +1 +0 0 0 0 0 0 0 0 0 0 1 0 0 +1 +0 1 0 1 1 0 1 0 0 1 1 0 0 +0 +1 1 0 0 1 1 0 1 1 0 1 0 0 +1 +1 0 0 0 0 0 0 1 0 1 1 0 1 +1 +1 0 0 1 1 0 0 0 1 0 0 1 1 +0 +1 1 1 1 1 0 1 1 1 0 0 1 0 +1 +0 0 0 1 0 0 0 1 0 1 1 1 0 +1 +1 1 0 0 1 1 1 0 0 1 0 0 0 +0 +0 1 1 0 0 0 1 1 0 1 0 0 1 +0 +0 0 1 1 1 1 1 1 1 1 1 1 0 +0 +0 0 1 1 1 1 1 1 0 0 1 0 1 +0 +1 0 1 1 0 1 0 1 1 1 0 1 1 +1 +1 1 1 1 1 0 0 1 0 1 0 1 0 +0 +0 1 1 0 1 1 1 0 0 0 0 0 0 +1 +1 1 1 0 0 1 1 1 1 1 1 0 0 +1 +1 0 0 1 0 1 1 0 0 1 0 1 1 +1 +1 1 1 1 1 0 0 1 0 1 0 1 1 +1 +1 1 1 0 0 1 0 1 0 0 0 0 1 +0 +0 1 1 1 1 0 1 1 1 0 1 1 0 +1 +0 0 1 0 0 0 1 1 0 1 0 1 1 +0 +0 1 0 1 1 0 1 1 0 0 0 0 0 +1 +0 0 0 1 0 0 1 0 1 0 0 0 1 +0 +1 1 1 0 0 1 0 1 0 1 1 0 0 +1 +0 0 1 1 0 1 0 1 1 1 1 1 1 +1 +1 0 0 0 0 1 0 0 0 1 0 0 0 +1 +0 1 0 0 0 1 1 0 0 0 0 0 1 +0 +1 0 1 1 0 1 0 0 0 0 1 0 1 +0 +0 1 0 1 0 0 1 1 1 1 0 0 1 +1 +1 0 1 1 1 1 1 0 0 1 0 1 0 +0 +0 0 0 0 1 0 0 0 0 1 0 0 1 +1 +0 1 1 1 0 0 1 1 1 0 0 0 0 +0 +0 1 1 0 0 1 0 1 0 0 1 0 1 +0 +0 1 1 1 0 1 0 0 1 1 0 1 0 +1 +0 0 0 1 1 1 1 0 0 0 1 0 1 +0 +0 0 0 0 0 0 0 1 0 1 0 0 0 +0 +0 1 0 0 1 0 0 1 1 0 0 1 0 +1 +0 1 1 1 1 0 0 0 1 0 1 1 0 +1 +1 1 0 1 1 0 1 1 1 1 0 0 0 +0 +0 0 1 0 1 0 0 1 0 1 0 0 1 +1 +0 1 1 1 0 0 1 0 0 0 0 0 0 +0 +1 0 0 0 1 0 0 0 0 0 1 1 0 +0 +1 1 1 1 0 0 1 1 1 1 1 0 1 +0 +0 0 0 1 0 1 1 0 1 0 1 0 1 +0 +0 1 1 1 0 0 1 1 1 0 0 1 0 +1 +1 1 0 1 1 1 1 0 1 0 0 1 1 +1 +1 1 0 1 0 0 0 1 1 0 1 1 0 +1 +1 0 0 0 0 0 1 1 0 0 1 0 1 +1 +0 1 0 1 1 0 1 1 0 1 0 1 0 +1 +1 0 0 0 0 1 1 1 1 1 1 1 1 +1 +1 0 0 1 1 1 1 1 0 1 1 1 1 +0 +1 1 1 1 1 0 1 1 1 0 0 0 1 +1 +0 0 0 1 1 1 0 1 1 1 1 0 1 +0 +1 0 0 0 0 0 1 0 1 1 0 1 0 +1 +1 0 1 1 1 1 1 0 1 0 1 0 1 +1 +0 1 0 0 0 0 1 1 0 0 0 0 0 +1 +0 1 0 1 1 0 0 1 0 0 1 0 1 +0 +1 1 0 0 0 1 0 1 0 0 1 0 0 +1 +1 0 1 1 1 1 0 0 1 0 1 1 0 +0 +0 0 0 1 0 0 1 1 1 0 1 0 1 +0 +0 1 0 0 1 0 0 0 1 1 1 0 1 +0 +1 0 0 1 0 1 1 1 0 1 0 0 0 +0 +0 0 0 0 0 0 0 0 0 0 0 1 0 +1 +1 1 1 0 0 0 0 1 0 0 0 0 0 +0 +1 1 0 1 1 1 1 0 0 1 0 1 0 +0 +0 1 1 0 0 1 1 0 1 1 0 0 1 +1 +1 0 1 1 0 0 1 0 0 1 1 1 1 +0 +0 0 0 0 0 0 1 1 0 0 0 1 1 +0 +0 1 0 0 1 1 0 1 1 1 0 0 0 +0 +1 0 0 0 1 0 0 0 0 1 1 1 1 +0 +0 1 1 0 1 0 0 1 1 0 0 0 1 +0 +1 0 1 0 0 1 0 1 0 1 1 1 1 +0 +1 1 0 0 0 0 0 0 1 1 1 0 0 +1 +1 1 0 0 1 1 1 0 0 1 0 1 0 +1 +0 0 0 0 1 1 0 0 0 0 0 1 0 +1 +0 0 0 0 0 0 0 0 0 0 1 0 1 +0 +0 1 0 0 0 1 1 1 1 0 1 0 0 +0 +1 1 1 0 1 0 0 0 1 0 1 1 0 +1 +0 0 0 0 0 1 0 0 0 0 1 0 1 +1 +1 1 1 0 1 1 1 0 0 0 0 0 0 +0 +1 0 0 1 1 0 0 0 0 0 0 0 1 +0 +1 1 1 0 0 1 1 1 0 0 0 0 1 +1 +0 0 1 1 1 0 1 1 0 1 1 1 0 +0 +0 1 0 1 1 0 1 0 0 0 1 1 1 +1 +0 1 1 1 0 1 0 1 0 1 0 1 0 +1 +0 0 0 1 0 0 0 1 1 0 0 0 1 +0 +0 0 1 0 1 1 1 0 0 0 0 1 0 +1 +1 0 1 0 1 0 1 0 1 0 0 1 0 +0 +1 0 1 1 1 0 1 0 0 1 1 0 0 +1 +1 0 0 0 1 1 0 1 1 0 1 0 1 +1 +1 1 0 1 0 1 1 0 1 0 1 1 0 +0 +0 0 1 0 1 0 0 1 1 1 0 0 1 +0 +1 0 1 0 0 1 0 0 0 1 0 1 1 +0 +1 1 0 1 0 1 1 0 1 0 1 0 1 +0 +1 0 1 0 0 1 1 0 1 1 1 0 1 +0 +1 0 0 1 1 1 1 0 1 1 1 1 1 +0 +0 1 0 1 0 1 0 1 1 0 0 1 0 +0 +0 0 0 0 1 0 0 1 1 0 1 1 0 +1 +0 1 1 1 1 0 0 1 1 0 0 0 0 +0 +1 0 1 0 0 0 1 0 0 1 0 0 0 +0 +1 1 1 1 1 0 0 0 1 0 1 1 1 +1 +1 1 0 0 1 0 1 1 1 1 1 1 1 +0 +1 0 1 1 0 0 1 1 1 0 0 0 0 +0 +1 1 1 1 1 1 1 0 1 1 1 0 1 +1 +1 0 0 1 1 1 0 0 1 0 0 1 0 +0 +0 0 0 0 0 1 1 0 1 0 0 1 0 +0 +1 0 1 0 0 1 0 1 0 1 0 0 0 +1 +1 1 1 1 0 0 1 1 1 1 0 1 0 +1 +1 0 0 0 1 0 1 1 1 0 0 0 0 +1 +0 0 0 0 0 1 0 1 1 0 1 0 0 +0 +1 0 0 1 0 1 1 1 0 0 0 0 1 +0 +0 0 1 1 1 1 0 0 1 0 1 0 1 +1 +0 0 1 1 0 0 0 0 0 0 0 0 1 +1 +1 1 1 1 0 1 0 1 0 0 1 1 1 +1 +1 1 0 1 0 0 0 1 0 1 0 1 0 +0 +1 1 0 1 1 0 1 1 1 0 0 1 0 +0 +1 1 0 1 0 0 0 0 0 0 0 0 0 +1 +1 0 1 1 1 1 0 1 0 1 0 0 0 +1 +0 1 0 0 0 1 1 1 0 1 1 1 0 +1 +0 1 1 0 1 1 1 1 1 0 1 1 0 +1 +1 0 0 0 1 1 0 1 1 0 1 1 0 +1 +1 0 1 0 1 0 1 1 0 0 0 0 0 +1 +0 1 0 0 1 0 1 0 0 1 1 0 1 +0 +0 0 0 1 1 0 0 1 1 0 0 1 0 +1 +1 0 0 1 1 1 0 1 1 0 0 0 1 +1 +0 1 1 1 1 1 1 0 0 0 1 0 0 +1 +1 1 1 0 0 1 0 0 1 0 1 1 1 +0 +0 1 0 0 0 1 1 0 1 0 1 0 0 +1 +1 1 0 1 1 1 0 0 0 1 0 1 0 +1 +1 0 1 1 1 1 0 0 0 1 1 0 0 +1 +1 1 1 1 0 0 0 0 1 0 1 0 1 +1 +1 0 0 0 0 0 1 0 1 0 1 0 0 +0 +0 1 1 0 0 0 0 0 1 1 1 1 1 +1 +0 1 1 1 1 1 0 1 1 1 0 1 0 +1 +1 0 1 1 0 1 0 1 0 0 1 1 1 +0 +0 0 0 0 1 1 1 0 0 0 1 0 1 +1 +0 1 1 0 0 0 0 0 0 1 0 0 1 +0 +1 0 0 1 1 0 0 0 0 1 1 1 0 +0 +0 0 0 0 0 1 1 0 0 1 0 0 1 +0 +0 1 1 1 0 1 0 1 1 1 1 1 1 +0 +1 0 1 1 0 0 1 1 1 1 0 1 1 +1 +1 1 0 0 0 1 0 1 1 1 1 1 0 +0 +0 0 1 1 0 1 0 1 1 0 0 0 1 +0 +1 0 1 0 1 1 1 1 0 1 0 1 0 +0 +1 1 0 1 0 0 1 0 0 0 0 0 0 +0 +0 1 0 0 0 0 1 1 0 0 1 1 1 +0 +0 1 1 0 1 0 0 0 1 1 1 1 1 +0 +0 0 1 0 1 0 0 0 1 1 1 0 1 +0 +1 0 1 1 1 1 1 1 1 1 1 0 1 +1 +1 0 0 0 1 1 1 0 0 0 0 0 1 +1 +0 0 0 1 0 1 0 0 0 0 0 1 0 +1 +1 0 1 1 0 0 0 1 1 0 1 0 1 +1 +0 1 1 1 0 1 1 0 0 1 0 0 1 +1 +0 1 0 1 1 1 1 0 0 1 1 1 1 +1 +0 0 0 0 1 1 1 0 0 1 0 1 1 +0 +0 1 1 1 1 1 1 0 0 1 1 0 1 +1 +1 0 0 1 1 0 0 1 0 1 1 1 0 +1 +1 1 1 0 0 1 1 0 1 0 1 1 1 +1 +0 0 0 1 0 1 0 1 0 0 0 1 1 +1 +1 0 0 1 1 1 1 0 1 1 1 0 0 +0 +1 1 0 1 0 0 1 1 0 0 0 1 0 +0 +0 1 1 1 0 0 0 1 0 0 0 0 1 +1 +0 1 0 0 0 1 1 0 0 1 1 1 0 +0 +1 0 1 1 0 0 1 0 1 1 1 0 0 +1 +1 0 0 1 1 1 0 0 1 0 0 1 1 +1 +0 0 1 1 1 0 1 0 0 1 0 0 0 +1 +1 1 1 1 1 1 0 1 0 0 0 1 0 +0 +1 0 1 0 0 0 1 0 1 1 0 1 0 +0 +0 1 1 0 1 0 1 0 0 1 1 1 1 +0 +0 0 1 0 0 0 0 1 0 1 0 1 1 +1 +0 1 1 1 1 1 0 0 0 1 1 0 0 +1 +1 1 1 0 1 1 0 1 0 0 0 1 0 +1 +1 0 0 1 1 1 1 1 0 1 0 0 0 +1 +0 1 1 0 0 0 1 0 1 1 1 0 1 +1 +0 1 1 1 1 0 1 0 1 1 1 1 0 +1 +0 0 1 0 0 1 0 0 1 0 0 1 1 +1 +1 1 1 1 1 0 0 1 1 1 1 1 1 +1 +1 1 0 1 1 0 0 1 1 0 0 0 0 +0 +1 1 0 1 1 1 1 0 1 1 0 0 0 +0 +1 1 1 0 1 0 1 0 1 1 0 0 1 +0 +1 1 1 1 0 0 0 0 0 0 1 0 0 +1 +0 1 1 0 0 1 0 0 0 1 0 0 1 +1 +1 1 0 1 0 1 0 0 0 1 0 0 1 +0 +1 1 1 1 1 0 1 1 0 1 1 0 0 +1 +1 0 1 1 0 0 0 1 1 1 1 0 1 +0 +1 1 1 1 1 0 1 0 1 1 0 0 1 +1 +1 0 0 1 1 0 1 1 0 0 1 0 1 +1 +1 0 0 0 0 1 0 0 0 0 0 0 1 +1 +0 1 0 0 0 0 1 1 0 1 1 0 1 +0 +0 0 1 0 0 0 0 1 0 0 1 0 0 +1 +0 1 0 1 1 0 0 1 1 1 1 0 1 +0 +0 0 1 1 0 1 1 1 0 1 0 1 1 +0 +1 0 1 0 1 0 0 0 1 1 0 1 1 +1 +1 0 1 0 0 0 1 1 0 0 0 0 1 +1 +0 0 0 0 1 0 0 1 1 1 0 0 1 +1 +0 0 1 1 0 0 0 1 0 0 0 1 1 +1 +0 0 0 0 0 0 1 0 1 1 0 0 0 +1 +0 1 0 1 1 1 1 0 0 0 1 0 0 +0 +0 1 0 0 1 0 1 1 1 0 1 1 0 +1 +1 1 1 1 1 0 0 1 0 0 0 0 0 +0 +0 0 0 0 1 1 0 1 1 0 1 1 1 +1 +1 0 1 1 1 1 0 0 0 0 0 0 0 +1 +0 1 1 0 0 0 0 1 1 0 0 1 0 +1 +0 0 0 0 0 1 1 1 1 0 0 1 1 +0 +0 1 0 1 0 1 1 1 1 0 0 0 1 +1 +1 1 1 0 0 0 1 1 0 1 1 0 1 +0 +1 0 0 1 1 1 1 0 1 1 1 1 0 +1 +1 1 1 0 0 1 1 0 1 1 1 0 1 +1 +0 1 1 1 1 1 1 1 1 1 0 0 0 +1 +0 1 1 1 0 0 0 1 1 0 1 0 1 +1 +1 0 1 1 0 1 0 0 1 0 1 0 1 +1 +1 1 0 0 0 1 1 1 1 1 1 1 1 +0 +0 1 0 1 1 0 0 1 0 0 1 1 0 +0 +0 1 1 1 1 0 0 1 0 0 1 1 0 +1 +0 1 0 1 1 1 1 0 0 1 0 1 0 +1 +0 1 1 0 1 1 1 0 1 0 1 0 1 +0 +1 1 0 1 1 1 1 1 0 0 0 0 1 +0 +1 0 1 1 0 1 0 0 1 0 1 1 0 +1 +1 0 1 0 1 1 1 1 0 1 1 1 1 +0 +1 0 0 1 1 0 0 0 0 0 0 1 0 +0 +0 1 1 1 0 0 0 0 1 0 1 1 0 +0 +0 1 0 1 1 1 1 0 1 0 0 0 0 +0 +0 0 0 1 0 1 0 0 1 0 0 1 1 +1 +1 0 1 0 0 0 1 0 1 1 0 1 1 +1 +0 1 0 1 1 1 1 1 0 0 0 1 1 +0 +0 1 0 1 0 0 0 1 0 0 1 0 0 +0 +1 0 0 0 1 0 1 1 1 1 0 0 1 +1 +0 1 1 1 0 0 1 0 1 1 1 1 0 +0 +0 1 1 0 1 1 0 1 1 1 1 1 0 +1 +1 1 0 0 0 1 0 1 1 1 1 0 1 +0 +1 1 0 0 0 0 0 0 1 0 1 1 0 +1 +0 0 1 1 0 0 0 1 0 1 1 0 0 +1 +0 0 0 0 0 1 1 1 0 0 1 0 1 +1 +0 0 0 0 1 1 0 1 1 1 1 1 1 +0 +1 1 0 1 0 1 0 1 1 1 0 1 0 +0 +1 0 0 1 1 1 0 1 1 1 0 1 0 +0 +0 1 1 1 1 1 0 1 1 0 0 0 1 +0 +1 0 1 0 0 0 0 0 1 1 1 0 0 +1 +1 1 0 0 1 1 0 0 0 1 0 0 1 +0 +1 0 1 0 1 1 1 0 0 0 0 1 0 +0 +1 1 0 1 0 1 0 0 1 1 0 1 1 +0 +0 0 0 1 1 0 1 1 0 0 0 0 0 +0 +1 1 1 0 0 1 1 0 0 0 1 1 1 +0 +0 0 1 1 1 0 0 1 1 0 0 0 0 +1 +0 0 0 1 0 0 0 0 1 0 1 1 1 +1 +1 1 1 0 1 1 0 1 0 1 1 0 1 +1 +0 1 1 1 0 0 1 0 0 0 0 1 1 +0 +0 0 0 0 1 1 0 1 1 0 1 0 1 +0 +0 0 1 1 1 0 1 0 0 1 0 1 1 +1 +0 0 0 0 0 0 0 1 0 1 0 1 0 +1 +0 0 1 0 0 1 0 1 0 1 1 1 0 +0 +1 1 0 1 0 0 1 1 1 1 1 0 0 +0 +1 0 1 1 1 1 0 0 1 0 0 0 1 +1 +0 0 1 1 0 1 0 1 0 1 1 0 1 +1 +1 1 0 1 1 0 0 0 1 1 0 1 1 +0 +1 1 0 1 0 1 0 0 1 1 1 0 0 +1 +0 0 0 0 0 1 0 0 0 0 0 1 1 +1 +1 1 0 0 0 1 1 0 1 0 1 1 0 +1 +1 0 1 1 0 0 1 1 0 1 1 1 1 +1 +0 0 1 1 0 0 0 1 0 0 0 1 0 +0 +1 1 1 1 0 0 0 1 0 1 1 0 0 +1 +1 0 0 1 1 0 0 0 0 1 1 1 1 +1 +1 1 0 0 0 0 0 0 1 0 0 0 0 +1 +0 0 0 0 1 1 1 0 1 1 0 1 1 +1 +1 1 0 1 0 0 0 1 0 0 0 1 0 +1 +0 0 1 1 0 1 1 0 1 0 0 1 1 +1 +1 1 1 1 0 1 1 0 0 0 0 0 0 +0 +1 0 1 0 1 1 1 1 0 0 0 1 0 +1 +0 0 1 0 1 0 0 1 0 0 0 1 1 +1 +0 0 1 1 1 0 1 1 0 1 0 1 1 +0 +0 0 0 0 1 1 1 0 0 1 1 0 0 +1 +1 1 0 0 1 0 1 1 0 1 1 0 0 +1 +1 0 0 1 1 0 0 1 1 1 1 0 1 +0 +0 0 1 0 0 0 0 1 1 1 0 1 1 +0 +0 1 1 0 1 0 0 0 1 1 0 0 0 +1 +0 1 1 1 1 0 0 1 0 1 0 0 0 +0 +0 1 1 1 1 1 1 0 0 1 0 0 1 +0 +0 0 1 0 0 1 0 0 1 0 1 0 1 +1 +1 0 0 0 1 0 1 0 1 1 0 1 0 +0 +0 1 0 1 0 0 0 1 0 0 1 1 1 +0 +1 1 0 1 0 0 0 0 0 0 0 1 0 +0 +0 0 1 1 1 0 1 1 0 1 1 0 1 +0 +1 0 1 1 0 1 0 1 0 0 1 0 0 +0 +1 1 1 1 0 1 1 0 1 1 0 1 0 +1 +1 1 1 1 0 0 1 0 0 0 0 0 1 +0 +0 1 0 0 1 1 0 1 1 0 0 1 0 +0 +0 0 0 1 1 0 1 1 0 1 1 1 0 +1 +0 1 0 0 1 1 1 0 0 1 0 0 1 +0 +0 0 1 1 1 1 1 1 1 1 1 1 1 +1 +1 0 1 0 0 1 0 1 1 0 1 1 0 +1 +1 1 1 0 0 1 1 1 1 1 1 1 1 +1 +0 1 0 1 0 0 1 1 0 0 0 1 1 +0 +1 0 0 1 1 1 0 1 0 0 0 0 1 +0 +0 0 1 0 0 1 1 1 0 1 0 0 1 +0 +0 1 1 0 1 0 0 1 0 0 0 1 1 +0 +0 1 0 1 1 0 1 1 0 0 0 0 1 +0 +0 1 1 1 1 0 0 1 0 0 1 0 1 +1 +1 0 1 0 1 0 0 0 1 0 1 0 1 +0 +0 0 1 1 0 1 0 1 1 1 1 0 1 +0 +0 1 1 1 0 1 1 0 1 0 0 0 0 +0 +1 1 0 1 1 1 1 1 0 1 0 1 1 +0 +1 1 0 1 0 0 0 0 1 1 1 0 0 +0 +1 0 1 0 0 0 1 1 0 0 0 1 0 +1 +1 1 1 1 1 0 1 0 1 1 1 1 1 +1 +1 1 1 0 1 1 0 1 0 0 1 0 0 +1 +0 1 0 1 1 0 0 1 1 0 1 1 1 +0 +0 1 0 0 0 1 0 1 0 0 0 0 0 +1 +1 1 0 1 0 0 1 1 0 1 0 1 1 +0 +0 1 1 1 1 1 0 1 0 1 0 0 1 +0 +1 0 1 0 1 1 0 1 1 0 0 1 1 +0 +1 0 0 0 1 0 1 1 0 1 0 1 0 +0 +1 1 1 0 1 1 1 0 0 1 0 0 0 +1 +0 1 1 1 0 0 0 1 0 0 0 0 0 +0 +0 0 0 1 1 1 1 1 0 1 0 1 1 +0 +0 0 1 0 1 1 0 1 0 1 1 1 1 +0 +1 0 1 1 1 0 0 1 0 1 1 1 0 +0 +0 1 1 0 1 0 1 1 1 0 0 0 1 +1 +0 1 1 1 0 0 0 0 1 1 1 1 0 +1 +0 0 0 0 0 0 1 1 0 0 0 0 0 +0 +1 1 0 0 1 0 1 1 1 0 0 0 1 +1 +0 1 1 0 1 0 0 0 0 1 0 1 0 +1 +0 1 0 0 1 1 1 1 1 0 0 1 1 +0 +1 1 1 1 1 0 1 0 0 0 0 1 1 +0 +1 1 1 0 1 0 1 1 1 1 1 0 0 +1 +0 0 0 0 1 1 1 1 0 1 0 0 1 +0 +1 0 0 0 1 0 0 0 1 0 0 0 0 +1 +0 1 1 1 1 0 1 1 1 0 0 0 1 +0 +0 0 1 1 0 1 0 0 0 1 0 1 0 +1 +0 1 1 0 0 0 0 0 1 1 1 0 0 +1 +1 0 1 1 1 0 1 0 0 0 0 0 1 +0 +0 1 1 0 1 1 1 0 1 1 0 0 1 +0 +0 0 0 1 0 0 0 1 1 1 0 0 0 +0 +0 0 1 1 1 0 0 1 1 1 1 0 0 +1 +0 0 0 0 0 0 1 1 1 1 0 1 1 +0 +0 1 0 0 0 1 0 1 0 0 1 0 0 +0 +0 0 0 1 0 0 1 1 1 0 0 1 1 +0 +0 0 0 0 1 0 0 0 1 1 0 0 1 +0 +0 1 1 0 1 0 1 1 1 1 1 1 0 +1 +1 1 1 0 1 0 1 1 0 0 1 1 0 +0 +0 0 0 0 0 0 0 1 0 0 1 0 1 +1 +1 0 0 1 0 1 0 1 0 0 1 1 0 +0 +1 0 1 1 0 1 0 1 0 0 1 1 0 +1 +1 1 0 0 1 1 0 0 0 1 1 0 1 +1 +1 1 1 1 0 1 1 0 1 0 0 1 1 +1 +0 1 0 0 1 1 1 1 0 1 0 0 0 +0 +1 1 0 1 1 1 1 0 0 1 0 0 0 +1 +1 1 1 1 1 0 1 1 1 0 1 0 0 +1 +1 0 0 1 0 1 1 1 1 1 0 1 0 +0 +0 0 1 0 0 0 1 0 0 0 1 1 1 +1 +0 1 0 0 0 1 0 0 1 1 1 0 1 +0 +0 1 1 0 0 0 0 0 1 1 0 0 0 +0 +0 1 0 1 1 0 1 0 1 0 1 1 1 +0 +1 1 1 1 0 0 0 1 1 0 1 0 1 +0 +1 1 0 1 1 0 0 0 0 1 1 0 1 +1 +0 1 0 1 0 1 0 0 1 0 0 1 0 +1 +0 0 0 1 1 0 1 1 1 1 0 0 0 +0 +1 0 0 0 1 0 0 1 0 0 1 1 0 +1 +1 0 1 1 1 0 0 0 0 0 1 0 0 +1 +0 0 1 0 0 1 0 1 0 1 0 1 1 +0 +1 1 1 1 1 0 0 0 0 0 0 0 1 +0 +1 0 0 1 1 1 0 0 0 1 0 0 1 +0 +1 1 0 1 0 0 0 1 1 1 0 0 0 +0 +1 0 0 1 1 1 1 1 0 1 0 0 1 +0 +1 1 1 0 0 0 1 0 1 0 1 0 1 +1 +1 0 1 1 0 0 1 1 1 0 1 1 0 +0 +1 0 0 1 1 1 1 0 0 0 1 1 1 +0 +0 0 0 0 1 1 1 1 1 0 0 1 0 +0 +1 1 1 0 0 1 0 0 0 0 1 0 1 +0 +0 0 1 0 0 0 1 1 1 0 0 0 0 +0 +1 0 1 1 0 0 1 1 1 0 0 0 1 +1 +1 0 0 0 1 1 1 0 0 0 0 1 1 +0 +1 0 1 1 1 0 1 0 0 1 0 0 0 +0 +1 0 0 1 1 1 0 0 1 1 0 1 0 +1 +0 1 1 1 0 1 1 0 1 1 1 0 0 +0 +0 0 0 1 1 1 0 1 0 0 1 1 1 +1 +0 0 0 1 0 0 0 0 0 1 1 0 1 +0 +0 0 0 1 0 0 0 0 1 1 1 0 0 +0 +1 0 1 0 1 1 1 1 1 0 0 1 0 +0 +1 0 0 0 0 1 1 1 0 0 1 1 1 +1 +0 0 1 1 1 1 1 1 1 1 1 0 0 +1 +0 1 1 1 1 0 0 1 1 1 1 0 1 +1 +0 1 1 1 1 0 1 0 0 0 0 1 1 +1 +0 1 0 1 1 0 1 1 0 1 1 0 1 +0 +0 0 1 1 0 1 0 0 1 0 0 0 1 +1 +0 0 0 0 0 1 1 0 0 1 1 0 0 +0 +0 1 1 1 0 0 0 1 1 1 0 0 0 +0 +0 1 1 0 1 0 0 1 0 0 1 0 1 +0 +1 0 0 0 1 0 0 1 1 1 0 0 0 +1 +0 1 1 0 1 1 1 1 0 1 0 0 0 +1 +0 1 1 1 0 1 0 0 0 0 0 1 0 +1 +1 0 1 1 1 1 1 1 0 0 1 1 1 +0 +1 1 1 1 1 1 1 0 1 1 0 0 0 +1 +0 0 1 1 0 1 1 1 0 0 1 1 0 +1 +1 0 0 1 0 1 0 0 1 1 1 1 0 +1 +1 1 1 0 1 0 0 0 0 0 0 0 1 +1 +1 0 0 1 1 1 1 1 0 0 0 1 1 +0 +1 1 1 0 1 1 1 0 0 0 1 0 0 +1 +0 0 1 1 1 0 0 1 0 0 0 1 0 +1 +1 0 1 0 0 1 1 0 0 1 1 0 1 +1 +0 1 1 0 1 0 0 0 0 0 0 0 1 +0 +1 0 1 0 1 0 1 0 0 1 1 0 0 +0 +0 1 1 0 1 0 1 1 0 1 1 1 0 +0 +0 0 0 1 1 1 0 1 1 0 1 1 1 +0 +0 0 1 0 1 0 0 1 1 0 0 1 1 +0 +0 1 0 0 0 0 0 0 1 1 1 1 0 +1 +1 1 0 1 1 1 0 1 0 0 0 1 1 +0 +0 1 1 1 1 1 1 0 1 0 1 0 1 +1 +1 1 1 0 0 1 1 0 1 0 1 0 0 +1 +1 0 0 1 1 1 0 0 1 1 1 0 0 +1 +0 0 1 0 1 1 1 1 0 0 1 0 1 +1 +1 1 0 1 1 1 1 0 1 1 1 1 1 +1 +1 1 0 1 0 1 0 1 0 1 1 1 0 +0 +0 1 0 0 0 1 1 1 0 1 0 1 1 +1 +1 1 1 1 1 1 0 0 0 0 1 0 1 +0 +1 1 1 1 1 0 1 0 1 0 0 1 1 +1 +0 1 1 0 1 0 1 0 0 1 0 1 1 +1 +1 1 1 0 0 1 0 1 1 0 1 0 0 +1 +0 0 0 0 0 0 0 1 1 0 1 1 1 +1 +0 0 0 1 1 1 0 1 0 0 0 0 0 +0 +1 1 1 0 0 1 0 0 0 1 0 0 0 +1 +0 1 1 0 1 0 1 0 1 1 0 1 1 +0 +1 1 1 1 0 1 0 1 1 1 1 1 0 +0 +0 1 1 0 0 1 0 1 0 1 1 1 1 +0 +0 1 0 0 1 1 0 1 0 1 1 0 1 +1 +1 1 1 0 1 1 0 1 0 1 0 1 0 +0 +1 0 0 1 0 1 1 0 1 0 1 0 1 +1 +1 1 0 0 1 1 0 1 0 1 1 0 0 +1 +1 0 1 1 0 0 1 1 0 0 0 0 0 +1 +0 1 1 0 0 1 1 0 1 1 0 0 0 +0 +0 1 1 0 0 1 0 0 0 0 0 0 1 +0 +1 1 1 0 1 1 1 0 1 0 1 1 1 +0 +1 1 1 1 1 0 1 0 1 1 1 0 0 +1 +1 1 1 0 0 1 0 0 1 1 0 1 0 +1 +0 1 0 1 0 1 0 0 0 0 0 0 1 +0 +0 0 0 0 1 0 0 0 0 0 0 0 0 +1 +1 0 0 1 0 0 1 1 1 1 1 0 0 +1 +0 1 1 1 1 0 0 1 0 0 0 1 1 +1 +1 1 1 1 0 1 0 0 1 0 1 1 0 +0 +1 1 1 1 1 0 1 0 1 1 0 1 1 +0 +1 1 1 0 0 1 0 1 0 0 0 0 0 +1 +0 0 0 0 0 1 1 1 0 0 1 0 0 +0 +0 1 1 0 0 0 1 1 1 1 1 1 0 +0 +1 0 1 1 1 0 0 1 0 1 0 0 1 +1 +0 1 1 0 1 1 1 1 0 1 0 1 1 +1 +1 1 0 1 1 0 1 0 0 1 0 1 1 +0 +1 1 1 0 1 1 1 1 1 1 1 0 1 +1 +1 1 0 1 1 1 1 0 0 0 0 1 0 +1 +1 0 0 0 1 0 1 1 1 0 1 1 0 +1 +0 1 1 1 1 1 1 1 1 1 0 1 1 +1 +1 1 0 0 1 0 0 0 1 1 0 1 0 +0 +1 1 1 1 0 1 1 1 0 0 1 1 1 +0 +1 0 0 0 0 1 0 0 0 0 1 1 0 +0 +0 0 0 0 0 0 1 1 0 0 0 1 0 +1 +1 0 0 1 1 0 1 0 1 0 0 1 1 +1 +1 0 0 1 1 0 0 1 1 1 1 1 1 +1 +0 1 1 0 1 1 0 0 1 1 0 0 1 +1 +0 0 1 0 0 1 0 1 0 0 1 1 0 +1 +0 0 0 0 1 0 1 0 1 1 0 1 1 +0 +0 1 1 1 0 1 1 1 1 1 0 1 1 +0 +0 0 1 1 0 1 0 0 1 0 0 0 0 +0 +0 0 1 1 1 0 0 0 1 1 0 1 1 +1 +0 1 0 0 0 1 1 1 1 1 1 0 1 +0 +1 1 0 1 1 0 1 1 1 1 0 0 1 +1 +1 1 0 1 0 0 1 0 0 0 1 0 1 +0 +0 1 1 0 0 0 0 0 0 0 1 0 1 +0 +0 0 0 1 0 0 0 1 0 1 0 0 0 +1 +1 0 1 1 0 1 0 1 1 1 1 1 1 +0 +1 0 0 0 1 1 0 1 0 0 1 1 1 +1 +0 1 0 1 0 0 1 1 0 1 1 0 0 +0 +1 1 1 0 0 0 0 0 0 1 0 0 0 +0 +0 0 0 0 1 1 0 1 0 0 1 1 0 +1 +1 1 0 1 1 0 0 1 0 0 0 1 0 +0 +1 1 0 0 1 1 0 0 1 1 1 0 1 +0 +1 0 0 1 1 1 0 1 0 0 0 0 0 +1 +1 0 0 0 0 0 1 0 1 0 0 0 1 +0 +1 1 0 0 1 1 0 1 0 1 0 1 1 +0 +1 1 0 0 1 0 1 0 0 0 0 0 1 +1 +1 1 1 1 0 1 0 0 1 0 0 1 1 +0 +1 0 1 0 1 0 1 0 1 0 1 1 1 +0 +1 1 1 1 0 1 0 0 1 1 1 1 0 +1 +0 1 1 1 0 1 1 0 0 0 1 1 0 +1 +0 0 1 1 1 0 1 1 1 0 0 0 0 +0 +0 1 1 1 1 1 0 1 0 0 1 1 1 +1 +0 0 1 1 0 1 1 1 0 0 1 0 1 +1 +0 1 0 0 0 0 1 1 0 1 0 1 0 +1 +0 0 1 1 0 0 1 0 1 0 1 0 0 +1 +0 1 0 0 0 1 0 0 0 0 0 1 0 +1 +0 0 0 0 0 1 0 1 0 1 1 0 0 +0 +1 0 1 1 0 1 0 1 1 0 0 1 1 +0 +0 0 0 0 1 0 1 1 1 1 0 0 0 +1 +0 0 1 0 0 0 1 0 0 0 0 0 0 +0 +0 0 1 0 0 0 1 0 1 1 1 1 1 +1 +1 1 1 0 1 0 0 1 1 1 1 1 0 +1 +0 0 1 1 0 1 1 0 1 0 1 0 1 +1 +1 0 0 0 0 0 1 0 0 0 1 1 0 +0 +1 1 1 1 1 0 1 0 0 0 1 1 1 +1 +1 1 1 1 0 0 1 0 1 1 0 1 0 +0 +1 0 1 0 0 1 1 1 1 0 0 0 1 +1 +0 1 0 0 0 1 1 0 1 0 1 0 1 +0 +0 0 1 0 1 1 0 1 1 0 0 1 1 +1 +1 0 0 1 1 0 0 1 1 0 1 1 1 +0 +1 0 1 1 0 1 0 0 1 1 1 0 0 +1 +1 0 1 0 1 0 1 1 1 0 1 1 0 +0 +1 1 1 1 0 1 1 1 1 0 0 1 0 +1 +1 1 1 1 1 1 0 0 1 0 1 1 0 +1 +0 0 0 0 0 0 0 0 0 0 0 1 1 +0 +1 1 1 0 1 0 1 0 1 1 1 0 1 +1 +0 0 0 0 1 1 0 1 0 0 0 0 0 +1 +0 0 1 0 0 0 1 0 0 1 1 0 0 +0 +1 0 1 0 1 0 0 1 1 0 0 1 0 +0 +0 1 1 0 1 0 0 1 0 1 1 0 1 +1 +1 0 0 1 0 1 1 1 1 0 1 1 0 +0 +1 1 1 1 1 0 0 0 1 0 0 0 0 +0 +0 0 1 1 0 1 1 0 0 0 0 1 1 +0 +0 1 0 1 0 1 1 0 0 1 1 0 1 +1 +0 1 1 0 1 1 0 0 0 1 1 0 0 +0 +1 1 0 1 0 1 0 0 1 0 1 1 0 +1 +1 0 1 1 0 0 0 1 0 1 1 1 1 +0 +1 1 0 1 1 0 0 1 0 0 0 1 1 +1 +1 0 0 1 0 1 1 0 1 1 1 0 1 +0 +1 0 1 1 0 0 0 0 1 1 0 1 1 +1 +0 0 1 1 0 1 0 0 0 1 0 1 1 +0 +1 1 0 1 1 1 1 0 0 0 0 0 0 +0 +0 1 1 1 0 0 1 0 0 0 1 0 0 +1 +1 1 1 0 1 1 1 1 0 1 0 0 1 +1 +0 0 0 0 0 0 1 1 1 1 1 1 0 +0 +0 1 0 1 1 1 0 0 1 0 1 0 1 +1 +1 1 0 0 0 0 1 1 0 0 1 0 0 +1 +1 1 1 1 0 0 1 0 0 1 1 0 0 +1 +0 0 0 0 1 1 0 0 1 0 1 0 1 +1 +1 0 1 0 0 0 1 0 0 1 0 1 0 +1 +1 0 1 1 1 1 1 1 0 1 1 0 0 +1 +0 1 1 0 1 0 0 1 1 1 1 0 1 +0 +1 0 0 1 1 1 1 0 0 0 0 0 1 +0 +1 0 0 0 0 0 0 0 1 0 1 1 1 +1 +0 1 1 0 0 0 1 0 1 0 0 1 0 +1 +0 1 0 1 1 0 1 0 0 0 1 1 0 +0 +0 0 0 0 0 1 1 1 1 1 0 1 0 +0 +1 1 1 0 1 1 0 0 1 0 0 1 0 +1 +1 0 1 0 1 0 1 1 0 1 1 1 0 +0 +0 1 1 1 1 1 0 0 1 0 0 1 1 +0 +1 1 0 0 1 0 1 1 0 1 0 0 0 +0 +0 0 1 1 1 1 1 0 0 1 0 0 0 +0 +1 0 0 1 0 1 1 1 0 1 0 0 1 +1 +1 0 1 1 1 1 0 1 0 0 1 0 0 +1 +0 1 0 0 1 0 1 0 1 0 0 1 1 +0 +1 0 1 0 0 0 0 1 1 0 1 0 1 +0 +1 0 0 0 1 1 1 1 0 1 0 1 0 +1 +1 0 1 1 1 0 1 1 1 1 1 1 0 +0 +1 0 0 1 0 0 1 1 0 0 0 1 0 +1 +1 0 1 1 1 0 1 1 0 0 0 0 0 +0 +1 0 1 1 1 0 1 0 1 0 1 1 1 +1 +0 1 1 1 1 0 1 0 1 1 0 1 0 +0 +0 1 0 0 0 1 0 0 1 0 1 0 1 +1 +0 0 0 1 1 0 1 0 1 1 0 0 1 +0 +0 1 1 0 0 1 1 1 1 1 1 0 1 +1 +0 0 1 0 0 1 0 1 1 0 1 0 1 +0 +0 0 0 0 0 1 0 1 0 0 0 1 0 +1 +0 1 1 0 1 0 1 1 0 0 1 1 0 +1 +0 0 0 0 0 1 0 0 0 1 0 1 0 +1 +0 0 1 0 1 0 0 0 0 1 0 1 0 +0 +1 0 1 1 0 1 1 0 0 0 0 0 1 +0 +1 0 0 0 0 1 1 1 1 0 1 1 1 +0 +0 1 1 1 0 0 1 0 1 0 1 1 0 +1 +0 0 1 1 0 0 1 0 1 0 1 1 0 +0 +0 1 1 1 1 0 0 0 1 0 0 1 0 +0 +1 1 0 1 0 1 0 1 0 0 1 0 1 +1 +0 0 0 0 1 0 0 1 1 1 1 1 0 +0 +0 0 0 1 0 0 1 1 0 0 1 1 1 +0 +0 0 1 1 0 0 1 1 1 0 1 1 0 +1 +0 1 0 1 1 1 0 0 0 1 0 1 0 +0 +1 1 1 0 1 1 1 0 1 0 0 1 1 +1 +0 0 1 0 0 1 0 0 1 1 1 1 0 +0 +0 1 1 1 1 1 0 1 0 0 1 0 0 +1 +1 1 0 1 1 0 0 0 1 0 0 0 0 +1 +0 1 0 1 1 1 0 0 1 1 0 1 1 +0 +0 0 1 1 0 0 1 0 0 1 1 1 0 +0 +0 0 1 1 0 0 0 1 1 0 1 1 1 +1 +0 1 0 1 1 1 1 0 1 0 0 1 0 +1 +0 1 1 0 0 0 1 0 0 0 1 0 1 +1 +0 0 1 1 0 1 0 1 1 1 0 1 0 +1 +0 0 1 1 0 1 1 1 1 1 0 1 0 +0 +0 1 0 0 1 0 0 1 1 1 1 1 1 +0 +1 0 0 1 1 1 1 1 1 1 0 0 1 +1 +0 0 0 1 1 1 1 1 0 0 1 1 0 +1 +0 1 0 1 0 1 1 1 0 1 0 0 1 +1 +0 1 1 0 0 1 0 0 1 0 1 1 0 +0 +1 0 1 0 0 1 0 1 1 1 1 1 1 +1 +0 0 1 1 1 0 1 1 1 0 1 1 1 +1 +0 0 0 0 0 1 1 0 0 0 0 1 0 +1 +0 1 0 1 0 0 0 0 1 0 0 1 0 +0 +1 0 1 1 0 0 1 0 1 1 0 1 1 +0 +0 1 0 1 1 1 1 0 1 1 1 0 0 +0 +0 0 1 0 1 1 0 1 0 0 0 1 0 +1 +1 0 1 1 1 0 0 0 0 0 1 1 1 +1 +1 0 1 1 1 0 1 0 1 1 0 1 0 +0 +0 0 0 1 1 1 1 1 0 1 0 1 0 +1 +1 0 0 0 1 0 0 1 0 1 0 1 0 +1 +1 1 0 1 1 0 1 1 1 0 0 1 1 +1 +1 1 0 1 0 1 1 1 1 0 1 1 0 +1 +1 0 0 0 0 0 1 1 0 1 0 1 1 +0 +1 0 1 1 1 1 1 1 1 1 1 1 0 +1 +0 1 1 0 0 0 1 1 1 0 1 1 1 +0 +0 1 1 1 0 0 0 0 1 1 1 0 0 +0 +0 1 0 0 1 1 1 1 0 0 1 1 0 +1 +1 1 0 0 1 1 1 1 0 1 1 1 1 +0 +0 0 1 0 0 0 0 0 0 0 0 0 0 +1 +1 1 1 0 1 1 0 1 0 1 0 0 0 +1 +0 0 0 1 1 1 0 0 1 0 0 1 0 +1 +0 1 1 1 1 1 0 0 1 0 1 1 1 +1 +0 0 1 1 1 1 0 1 0 0 0 1 0 +0 +1 0 1 0 0 0 0 0 1 1 1 1 0 +0 +0 0 0 1 1 0 0 0 1 0 1 0 0 +0 +1 1 0 0 1 0 0 1 0 0 0 0 1 +1 +1 1 0 1 1 0 0 0 1 0 1 0 0 +0 +1 1 1 0 0 0 1 0 0 0 0 0 1 +1 +1 1 1 1 1 1 0 0 1 1 1 0 0 +1 +0 1 1 1 1 0 0 1 1 0 1 0 0 +1 +0 0 0 1 1 1 0 1 1 1 0 1 0 +1 +1 0 0 0 1 0 0 1 1 0 1 1 0 +0 +1 0 1 1 1 0 0 1 1 0 0 0 0 +0 +0 0 1 0 0 0 1 0 1 1 0 1 0 +1 +1 0 0 0 0 1 0 1 0 0 0 0 0 +1 +1 0 1 0 0 0 0 0 0 1 0 0 0 +1 +0 1 1 1 0 1 1 1 0 0 1 0 1 +0 +1 0 0 0 0 0 1 0 1 0 1 1 1 +0 +1 1 0 0 1 0 0 1 0 0 1 0 1 +0 +0 0 1 0 1 0 0 0 0 0 1 0 1 +0 +0 0 0 0 0 1 1 0 0 1 1 0 1 +1 +1 1 1 0 1 0 0 1 0 0 0 0 0 +1 +0 1 1 1 1 0 0 0 1 1 0 1 0 +1 +0 0 0 0 0 1 1 0 1 0 1 1 0 +1 +1 0 1 1 0 0 1 0 1 1 1 0 1 +0 +0 1 0 1 1 0 0 1 1 0 0 1 1 +1 +1 0 1 0 0 1 0 1 1 0 1 0 0 +0 +0 0 1 1 1 1 1 1 1 1 1 0 1 +0 +1 1 1 0 0 1 1 0 1 1 1 1 1 +0 +1 0 1 1 0 1 0 1 1 0 0 0 0 +0 +0 1 0 1 1 1 0 0 1 1 0 0 1 +1 +1 1 1 1 0 1 0 1 0 0 0 1 1 +0 +1 1 1 0 0 1 1 0 0 1 0 0 0 +0 +0 0 0 1 1 0 0 1 1 0 0 0 0 +0 +1 0 1 1 0 0 0 0 0 1 0 0 0 +0 +1 1 1 0 0 1 1 0 1 1 0 1 0 +0 +0 0 1 1 1 1 0 1 1 1 0 0 1 +0 +1 1 0 0 0 0 1 1 0 0 1 0 1 +0 +1 1 0 0 0 1 1 0 1 0 0 0 0 +1 +1 1 1 0 1 0 1 0 1 0 0 0 1 +1 +0 0 1 1 1 0 0 0 0 1 0 0 1 +1 +1 1 0 0 0 1 0 0 1 0 0 1 0 +1 +1 1 1 0 1 1 1 1 1 1 1 0 0 +0 +1 1 1 1 1 0 1 1 1 0 1 1 1 +1 +0 1 1 1 1 0 1 0 1 1 1 1 1 +0 +1 0 1 0 1 0 0 1 0 0 1 0 0 +1 +1 1 1 1 1 0 0 0 1 0 0 0 1 +1 +0 0 1 1 1 1 1 1 1 1 0 1 1 +0 +1 0 0 1 1 0 1 0 0 0 0 0 0 +0 +0 1 0 1 0 1 0 0 0 1 0 0 1 +1 +1 0 1 1 1 1 1 1 1 0 0 0 0 +0 +0 0 0 0 1 1 0 0 0 1 0 0 1 +0 +1 1 1 1 0 0 0 0 1 0 0 1 0 +0 +1 0 1 1 0 0 1 0 1 1 0 1 0 +1 +1 0 0 0 1 0 1 0 0 0 1 0 0 +0 +1 1 1 0 1 0 1 0 0 0 1 1 1 +0 +1 0 1 0 1 0 0 0 0 1 1 0 0 +1 +1 0 1 0 1 0 0 0 0 1 0 0 1 +1 +1 0 1 1 0 0 0 0 0 1 1 1 1 +1 +1 1 0 1 0 0 0 1 1 0 0 0 1 +0 +1 0 0 0 0 0 0 1 1 0 0 1 0 +0 +0 1 0 1 0 0 1 0 1 0 0 1 0 +1 +1 1 1 1 1 0 1 0 0 0 0 1 0 +1 +0 0 0 1 1 0 1 0 1 1 0 0 0 +1 +0 0 1 0 1 1 0 0 0 1 1 1 1 +1 +0 1 0 0 0 0 0 0 1 1 1 0 0 +0 +1 1 1 0 1 1 0 1 1 0 0 0 1 +0 +0 1 0 0 0 0 1 1 0 0 0 1 0 +0 +1 1 0 1 1 1 0 0 1 1 0 0 0 +1 +1 1 0 1 0 0 0 1 1 1 0 1 0 +1 +1 0 1 0 1 1 1 0 0 1 0 1 0 +1 +1 1 1 1 0 1 0 0 1 1 0 1 0 +0 +1 1 1 0 1 1 0 0 0 0 0 0 1 +0 +1 1 1 1 0 0 1 0 1 1 0 0 0 +1 +0 0 1 0 1 0 0 1 1 0 0 0 0 +0 +0 0 0 1 1 0 1 1 1 1 0 1 1 +0 +0 0 1 1 1 0 0 1 1 1 1 1 0 +0 +0 1 1 0 1 0 0 0 0 0 0 1 1 +1 +1 1 1 1 1 1 0 0 1 0 0 0 1 +0 +1 1 0 0 0 1 1 0 1 1 0 1 1 +0 +0 1 1 1 1 0 0 0 0 1 1 0 0 +0 +0 0 0 0 1 1 1 0 1 0 0 0 0 +0 +1 1 0 0 0 1 0 0 0 0 0 1 1 +1 +0 0 1 1 0 0 0 0 1 1 0 0 0 +0 +0 0 0 0 1 1 1 0 0 1 0 0 0 +0 +0 0 1 0 1 0 1 1 0 1 0 0 1 +0 +0 1 1 0 1 1 1 1 1 1 1 1 1 +1 +0 0 1 1 1 0 0 0 1 1 0 0 0 +1 +1 1 0 1 1 0 1 1 0 1 0 1 1 +1 +0 1 1 1 1 0 0 0 1 1 1 1 0 +0 +1 0 1 1 0 1 1 0 1 1 0 1 0 +0 +0 0 0 1 1 0 1 1 0 0 1 0 1 +0 +0 0 0 1 0 1 1 0 0 0 0 1 1 +1 +0 1 0 0 0 1 0 1 1 1 0 0 1 +0 +0 1 1 1 0 1 0 0 1 0 1 0 0 +0 +1 0 1 1 1 0 0 1 0 1 1 0 1 +0 +0 1 0 1 0 0 0 1 0 0 1 1 0 +1 +1 0 1 1 0 0 0 0 0 1 0 1 1 +0 +1 1 1 1 0 0 1 0 0 1 0 1 1 +0 +0 1 1 1 1 0 0 1 0 0 0 0 0 +1 +0 0 1 0 0 1 1 1 1 0 1 0 1 +1 +1 1 0 0 1 0 1 1 0 0 0 0 1 +0 +0 0 1 0 1 0 1 1 0 1 0 1 0 +0 +1 0 0 0 1 1 0 1 0 1 1 1 1 +0 +1 1 0 0 0 1 0 1 1 1 0 1 1 +0 +1 1 1 1 0 1 1 0 1 1 1 1 0 +0 +0 0 0 1 1 0 1 1 0 0 0 1 0 +1 +1 1 0 0 1 0 1 0 1 1 0 0 0 +0 +0 1 1 0 0 1 1 1 1 1 0 0 0 +1 +0 0 0 1 0 0 0 1 0 1 0 0 1 +0 +0 0 1 1 1 1 1 0 1 1 0 0 0 +1 +0 1 1 0 0 0 0 1 1 1 0 0 0 +1 +0 0 0 0 1 1 1 1 1 1 0 1 0 +1 +1 1 0 1 1 0 1 1 0 0 0 0 0 +0 +0 0 1 0 0 0 0 1 0 1 1 0 1 +1 +1 1 0 0 1 0 0 0 0 1 0 1 0 +1 +0 1 0 0 1 1 1 0 1 0 1 1 0 +1 +0 1 0 1 1 0 0 0 0 1 0 1 1 +0 +1 0 1 1 0 0 0 1 0 1 1 1 0 +1 +1 1 0 0 1 0 0 1 1 1 0 0 1 +1 +0 0 0 1 0 0 0 1 1 0 0 0 0 +1 +1 0 0 0 0 0 1 0 0 1 0 0 0 +1 +1 0 1 1 0 1 1 1 0 1 0 1 0 +0 +1 0 1 0 0 1 1 1 0 1 0 0 0 +0 +0 1 0 0 0 1 0 1 0 1 0 1 1 +0 +1 0 0 0 0 0 0 1 0 1 0 1 0 +0 +0 1 1 0 0 1 1 0 0 1 1 1 1 +0 +1 0 1 0 0 0 0 1 1 0 0 0 0 +0 +0 1 1 1 0 0 1 0 0 1 0 0 1 +0 +1 0 1 0 1 1 0 1 0 0 0 1 1 +1 +0 1 0 1 1 1 0 1 1 0 1 0 1 +0 +1 1 1 1 0 0 1 1 0 0 0 0 0 +0 +1 1 0 0 1 1 0 1 1 1 1 1 1 +0 +1 0 1 0 1 0 0 0 1 1 1 1 0 +1 +1 0 0 1 1 1 0 1 0 1 0 0 0 +0 +1 1 1 0 1 0 1 0 1 1 0 1 1 +1 +1 1 1 0 1 0 1 1 1 1 1 0 1 +0 +1 0 1 0 1 0 1 1 1 1 0 1 1 +1 +1 0 0 1 0 0 1 0 1 0 1 0 0 +1 +1 0 1 1 1 0 1 1 0 1 1 0 0 +0 +0 0 1 0 0 0 0 1 1 0 1 1 1 +0 +0 0 1 1 1 1 0 0 0 0 0 1 0 +1 +0 0 0 0 0 0 1 0 0 0 1 0 1 +1 +0 1 0 1 0 0 0 0 0 1 0 0 1 +0 +1 0 1 1 1 0 1 1 1 1 0 0 1 +1 +0 0 1 0 0 0 1 1 0 1 0 1 0 +1 +1 0 0 1 1 0 0 1 0 1 0 0 0 +1 +0 1 1 0 1 0 1 1 1 0 0 1 0 +1 +1 1 1 1 1 0 0 1 0 1 1 1 0 +1 +0 0 0 1 1 0 0 1 0 1 0 1 0 +1 +1 0 0 1 1 0 1 0 1 1 1 0 1 +0 +1 1 1 0 0 1 1 0 0 1 0 1 1 +0 +0 0 0 1 0 1 1 1 1 1 0 1 1 +0 +1 1 0 1 0 1 0 1 1 0 0 1 0 +1 +0 0 0 0 0 1 1 1 0 1 1 1 1 +1 +0 0 0 0 0 1 0 0 0 0 1 1 1 +0 +1 1 0 0 0 0 0 1 1 0 0 0 0 +0 +0 0 1 0 0 1 1 0 1 0 1 0 0 +1 +1 0 0 1 1 0 1 0 0 0 1 0 0 +1 +0 1 0 0 1 0 1 1 1 1 0 0 0 +0 +0 0 1 1 1 0 1 1 1 1 0 0 0 +1 +0 1 1 1 1 0 1 1 1 1 1 0 1 +0 +1 1 0 0 0 0 1 0 1 0 0 1 1 +0 +1 1 1 0 0 0 0 1 0 0 1 1 1 +1 +1 0 0 1 0 1 1 0 0 0 0 1 1 +0 +1 0 1 0 0 1 0 0 1 1 0 0 1 +0 +0 1 1 0 1 0 1 0 0 0 1 0 1 +0 +1 1 1 0 1 0 1 1 1 1 1 1 0 +0 +0 1 0 1 1 1 1 1 0 1 1 1 0 +1 +0 1 1 1 1 0 0 0 0 0 0 1 1 +0 +1 1 0 0 1 0 0 1 1 1 0 1 0 +1 +0 0 0 1 1 0 1 0 1 0 1 1 1 +1 +1 1 0 1 0 1 1 1 0 1 0 1 1 +1 +0 0 0 1 1 1 1 1 0 1 1 0 1 +0 +1 0 1 0 0 1 0 1 1 1 1 0 1 +0 +0 0 0 0 1 1 0 0 0 0 1 1 1 +1 +0 1 0 0 1 1 1 0 1 0 0 0 0 +1 +1 1 0 0 1 0 1 0 0 1 0 0 1 +0 +1 0 0 0 1 1 0 0 0 1 1 0 0 +1 +0 0 1 1 1 0 0 0 1 1 0 1 0 +0 +1 1 0 1 1 1 0 0 0 0 0 0 1 +0 +0 0 1 1 1 1 1 1 0 1 0 1 0 +0 +1 1 0 0 1 1 0 0 0 0 0 0 1 +1 +1 1 1 1 1 0 1 1 1 1 1 0 0 +0 +0 0 1 1 1 1 0 1 0 0 1 0 0 +0 +1 1 0 0 1 1 1 1 1 0 0 0 0 +1 +1 0 1 0 0 1 1 1 0 1 1 0 1 +0 +1 1 0 1 1 0 0 1 1 0 0 1 0 +1 +1 0 1 0 0 0 1 1 1 0 1 1 0 +1 +1 1 1 1 0 1 1 0 1 0 1 0 0 +0 +1 0 1 0 0 1 0 0 0 0 1 0 0 +0 +0 0 0 1 0 1 1 0 0 1 1 0 1 +0 +1 1 0 0 0 1 1 1 0 1 0 1 0 +1 +1 1 0 1 1 0 1 0 0 0 0 1 0 +0 +0 0 0 1 1 1 0 1 1 1 0 1 1 +0 +0 0 0 0 0 1 1 0 1 1 0 0 0 +0 +1 0 0 0 0 0 0 1 1 1 0 1 1 +0 +0 1 1 1 0 0 0 0 0 0 0 0 1 +0 +0 1 1 1 1 1 1 0 0 1 0 1 1 +1 +0 0 0 0 1 1 1 0 0 0 0 0 0 +1 +1 0 1 1 0 0 0 1 0 1 0 0 0 +1 +0 0 0 1 0 1 1 0 1 1 0 0 0 +1 +0 1 0 1 1 1 0 0 1 1 0 0 0 +0 +0 1 0 1 1 1 1 0 1 1 0 1 0 +0 +1 0 0 0 0 0 0 0 1 0 0 0 0 +0 +1 1 1 1 1 0 0 1 1 0 1 0 1 +1 +0 1 1 1 0 0 0 1 0 1 1 0 1 +1 +0 1 1 1 0 1 1 1 0 0 1 1 0 +0 +0 1 0 1 0 1 1 0 1 1 0 1 1 +0 +1 0 1 0 1 0 0 1 0 0 1 1 1 +1 +0 1 1 1 0 0 1 0 1 0 1 0 0 +0 +1 1 1 0 0 1 0 0 0 1 0 1 1 +1 +1 1 0 0 1 0 1 1 1 1 1 1 0 +1 +1 1 1 0 1 0 1 1 1 1 1 1 1 +1 +1 0 0 1 1 0 1 0 1 1 0 0 1 +1 +1 1 1 1 1 0 1 0 0 0 1 1 0 +0 +0 1 1 0 1 1 1 0 0 0 1 0 0 +0 +0 1 1 1 1 1 0 0 0 1 0 1 0 +1 +0 0 1 0 1 1 1 0 0 1 0 1 1 +1 +1 1 1 0 1 0 0 1 1 0 0 1 0 +1 +0 0 1 0 1 0 1 0 0 1 0 1 0 +1 +0 0 1 1 0 0 0 1 1 0 0 1 0 +1 +1 0 1 0 0 1 0 1 0 0 1 1 1 +1 +1 1 0 1 1 0 0 0 0 0 0 0 0 +0 +0 0 0 1 0 1 1 1 1 0 0 0 1 +0 +1 1 1 1 0 0 0 1 0 0 0 0 1 +0 +0 0 0 0 0 0 0 1 1 0 1 1 0 +0 +1 0 0 1 0 1 1 0 1 0 1 1 0 +1 +0 1 0 1 1 0 0 1 0 0 0 1 0 +1 +0 1 1 0 1 0 1 0 1 0 1 0 0 +0 +0 0 1 0 0 1 1 1 1 1 1 0 1 +0 +0 0 1 1 1 1 1 0 0 0 0 0 0 +1 +1 0 0 0 0 0 1 1 0 1 0 0 0 +0 +0 0 0 1 1 1 0 1 1 1 1 1 1 +1 +0 0 0 1 0 0 0 1 0 1 1 0 0 +0 +1 1 0 0 1 0 0 1 1 1 1 0 1 +0 +1 0 0 0 1 1 0 0 1 1 1 1 1 +0 +1 0 0 0 1 1 1 1 1 1 1 0 1 +1 +1 0 0 1 1 0 1 1 0 1 1 0 0 +1 +0 1 1 0 1 1 1 1 0 0 1 1 0 +0 +0 1 0 0 1 0 0 1 1 0 1 1 0 +0 +1 0 0 0 0 1 1 0 1 0 1 1 1 +1 +1 1 1 1 0 1 1 0 0 1 1 1 0 +1 +1 0 0 1 0 1 1 0 0 0 1 1 1 +1 +0 0 0 1 0 0 0 1 1 0 1 1 1 +0 +0 0 0 1 1 1 1 1 0 0 0 1 0 +0 +1 0 1 0 0 0 0 1 1 0 1 0 0 +1 +0 0 1 0 1 1 1 0 1 0 1 0 0 +0 +1 0 0 0 1 1 1 1 1 1 0 1 0 +0 +1 0 0 0 1 0 1 0 1 0 1 1 0 +0 +1 1 0 0 0 0 0 1 0 1 0 1 1 +0 +1 1 0 0 0 0 1 0 0 1 0 1 0 +1 +1 1 0 0 0 0 1 0 1 0 0 0 1 +1 +0 1 0 0 0 1 0 1 0 1 1 0 1 +0 +0 0 1 0 1 0 1 1 1 1 0 1 1 +0 +1 0 0 1 0 1 0 1 1 1 1 1 0 +0 +0 0 1 0 0 0 1 1 1 0 1 1 0 +0 +1 0 0 0 0 0 0 1 0 1 0 0 0 +1 +0 1 0 1 0 0 0 0 0 1 1 1 0 +1 +1 0 1 0 1 0 0 1 1 0 1 0 0 +0 +1 1 0 0 0 1 1 1 0 1 0 1 1 +0 +0 0 1 1 0 1 0 1 0 0 0 1 0 +1 +0 0 0 0 1 0 1 0 0 1 0 1 1 +1 +1 1 1 0 0 0 0 1 0 1 1 1 0 +1 +0 0 1 0 0 1 0 1 0 1 0 0 1 +1 +1 0 0 1 1 0 1 1 0 0 0 1 1 +1 +0 0 0 0 1 1 0 0 0 1 0 1 0 +0 +0 1 0 0 1 0 0 1 1 1 0 0 0 +1 +1 1 0 1 0 0 1 1 1 0 1 0 0 +1 +1 1 0 1 0 0 1 0 1 1 1 0 1 +0 +1 0 0 0 0 0 1 1 1 1 1 0 0 +0 +0 1 1 1 0 1 1 0 0 0 1 0 0 +0 +1 0 1 0 0 1 1 1 0 1 0 1 0 +1 +1 0 0 1 1 0 0 0 0 1 1 0 0 +1 +0 0 0 1 0 1 0 1 0 0 0 1 0 +0 +0 0 0 0 1 0 0 0 0 1 1 1 1 +1 +1 1 0 0 1 1 1 0 0 1 1 1 0 +0 +0 0 1 1 0 0 1 0 1 1 1 0 1 +1 +1 0 1 0 0 0 0 0 1 1 0 1 1 +0 +1 0 1 1 0 1 0 1 1 1 0 1 0 +0 +1 0 1 0 1 0 1 1 1 0 1 0 0 +1 +1 0 1 1 1 0 0 1 0 0 1 1 1 +0 +0 0 0 0 0 1 1 1 0 0 0 1 1 +1 +1 1 1 1 0 0 0 0 0 1 0 1 1 +1 +0 0 0 0 0 0 0 0 0 0 0 0 1 +1 +1 0 0 1 1 1 0 0 1 0 0 0 1 +0 +1 1 1 1 1 0 1 0 0 1 0 0 1 +0 +0 1 1 1 0 0 1 0 0 1 1 0 1 +1 +1 0 0 1 1 1 1 1 1 1 0 0 0 +0 +0 1 0 1 1 0 1 1 1 1 1 0 1 +1 +0 1 0 0 1 0 0 0 0 0 1 0 0 +1 +0 0 1 0 0 0 1 0 1 1 0 1 1 +0 +0 0 1 0 1 1 0 1 0 0 0 0 0 +0 +1 1 0 0 0 0 1 0 0 0 0 1 1 +1 +1 1 1 1 1 1 0 1 0 1 1 1 0 +0 +1 0 0 1 1 1 1 0 0 1 1 1 1 +1 +1 0 1 0 0 0 1 1 0 0 0 0 0 +0 +1 0 1 0 1 1 1 0 1 0 1 0 1 +0 +0 1 0 0 1 1 1 0 0 0 0 1 0 +1 +0 1 1 1 1 1 1 0 0 0 0 1 0 +1 +1 1 0 1 0 0 1 0 0 0 0 1 1 +0 +0 1 1 0 1 1 1 1 1 0 0 1 1 +1 +0 1 0 0 0 1 1 0 0 1 1 1 1 +1 +1 0 1 1 0 1 0 0 1 1 0 1 1 +0 +1 1 1 1 1 0 1 0 0 0 0 0 0 +0 +0 0 1 0 1 1 0 0 0 1 0 0 1 +1 +1 1 0 0 0 1 1 1 0 1 1 0 1 +0 +1 1 0 0 0 0 0 0 0 0 0 0 0 +0 +1 1 0 1 0 0 0 0 0 0 1 0 1 +1 +1 0 1 0 0 1 0 0 0 1 1 0 0 +1 +1 0 0 0 1 1 1 0 1 0 1 1 1 +0 +1 0 1 0 1 1 0 0 0 1 0 1 0 +0 +0 1 1 1 1 0 1 1 1 1 1 1 0 +0 +1 0 0 0 0 0 0 0 0 1 1 1 0 +0 +1 1 0 0 0 1 0 0 0 1 1 0 1 +0 +0 0 0 0 1 0 1 0 0 1 0 1 0 +0 +0 0 1 0 1 1 1 1 1 1 1 0 1 +1 +1 0 1 1 1 0 1 0 1 1 0 0 1 +0 +0 1 0 0 0 0 1 0 1 0 1 0 0 +0 +1 0 1 0 1 1 0 1 0 0 1 0 1 +1 +0 0 1 1 0 1 1 1 1 0 1 0 1 +0 +0 0 0 1 0 1 1 0 0 1 0 0 1 +1 +1 1 1 1 0 1 1 0 1 1 1 1 1 +1 +1 1 0 0 0 1 0 1 0 1 1 0 1 +1 +1 1 0 0 0 0 1 0 1 1 0 0 1 +0 +0 0 1 1 1 1 1 0 0 1 0 1 0 +1 +1 0 1 1 0 1 1 1 1 0 1 0 1 +1 +0 1 1 0 0 1 1 0 0 0 0 0 1 +1 +1 1 0 0 0 1 0 0 1 0 0 0 0 +0 +1 1 0 1 1 1 1 0 1 0 0 1 0 +0 +0 0 0 0 0 1 1 0 1 1 1 0 1 +0 +1 1 1 1 1 1 1 0 0 0 1 0 0 +0 +0 1 0 1 0 1 1 1 1 1 1 0 1 +1 +0 1 0 0 0 0 1 1 1 0 1 0 1 +0 +1 0 0 0 0 0 0 0 1 1 0 0 0 +1 +0 0 1 0 0 0 0 0 0 1 0 1 0 +1 +1 1 0 1 0 0 1 1 0 1 0 0 0 +0 +1 0 0 1 0 1 0 1 1 0 0 1 1 +1 +1 1 0 1 1 0 1 1 0 1 1 1 1 +0 +0 1 1 1 1 1 0 0 1 1 0 1 1 +1 +0 0 1 0 1 0 1 1 0 0 1 0 1 +0 +0 0 1 1 0 0 1 0 0 0 1 1 1 +0 +1 0 1 0 0 0 1 1 1 0 0 1 0 +0 +0 0 0 1 0 0 1 1 0 1 1 1 0 +0 +1 0 1 1 0 0 1 0 0 1 0 1 0 +0 +0 0 0 0 0 0 0 1 0 0 0 0 1 +0 +1 0 0 1 1 1 1 1 0 1 1 1 0 +1 +1 1 1 0 0 0 0 1 1 0 0 1 0 +0 +0 0 0 1 0 0 1 1 0 1 0 1 0 +1 +0 0 0 1 0 0 1 0 1 1 1 0 1 +0 +0 0 1 1 1 0 0 0 1 0 1 0 1 +0 +1 0 0 1 1 1 1 0 1 0 0 1 0 +1 +0 0 0 0 0 0 0 0 0 1 1 1 0 +1 +1 1 1 1 0 1 1 0 0 1 0 0 0 +1 +0 0 1 0 1 1 1 0 1 0 0 1 1 +1 +1 1 0 1 0 1 1 0 0 0 0 1 1 +1 +0 1 0 0 0 0 0 1 1 1 1 1 1 +1 +1 0 1 1 1 0 0 0 0 1 1 0 0 +0 +1 0 1 0 1 0 1 1 1 1 1 1 0 +1 +1 1 0 1 1 0 1 0 0 1 0 1 0 +1 +0 1 0 1 0 1 0 0 1 1 0 1 0 +0 +1 1 0 0 0 1 0 1 1 0 0 1 1 +1 +0 0 0 0 1 1 1 1 1 0 1 1 1 +0 +0 1 0 1 0 0 1 1 0 1 1 1 0 +1 +0 0 1 1 0 0 0 0 1 1 1 0 1 +0 +0 0 1 0 0 1 1 1 1 0 1 1 1 +0 +0 1 1 1 0 0 1 1 0 0 0 1 1 +1 +0 1 0 0 0 0 0 0 1 1 1 1 1 +0 +1 1 1 1 0 1 1 1 1 1 0 0 0 +1 +1 0 0 1 0 1 0 1 1 1 1 0 1 +0 +0 0 0 0 0 0 1 0 0 1 0 1 1 +0 +0 1 0 0 0 1 1 0 0 0 1 1 0 +1 +1 0 1 0 1 0 1 1 1 1 0 0 1 +0 +0 0 0 0 0 0 1 0 1 0 1 0 0 +1 +1 1 0 0 0 0 1 1 1 0 0 0 0 +1 +0 1 0 0 0 0 1 0 0 1 1 1 1 +0 +0 1 1 1 0 1 1 0 1 0 1 0 0 +1 +0 0 0 0 0 1 1 1 1 1 0 1 1 +1 +0 0 0 0 1 0 0 0 0 0 0 1 0 +0 +1 1 1 0 1 1 1 0 0 0 1 1 1 +1 +0 1 1 0 1 1 1 0 0 1 1 1 1 +1 +0 0 0 1 0 1 0 0 1 0 0 1 0 +0 +0 0 1 1 1 1 1 1 0 1 0 0 1 +0 +0 1 1 1 0 0 0 0 0 0 1 1 1 +0 +0 0 1 1 1 1 0 0 1 0 0 1 1 +1 +0 0 0 0 0 1 0 0 0 1 1 0 1 +0 +1 1 1 1 0 0 1 1 1 0 0 0 0 +1 +1 0 1 1 0 0 1 0 0 1 0 0 0 +1 +1 1 1 1 0 1 1 1 1 0 0 1 1 +0 +1 0 1 1 0 1 1 1 0 1 0 0 0 +1 +1 0 0 1 1 1 1 0 0 1 1 1 0 +0 +0 1 0 1 1 0 1 1 1 0 1 0 1 +0 +1 0 1 0 1 1 0 0 0 0 0 0 1 +1 +0 1 0 0 0 0 1 1 1 0 1 1 1 +1 +0 0 1 1 1 0 1 0 1 0 0 0 1 +0 +1 0 0 0 1 1 0 1 0 1 0 1 0 +0 +0 1 0 0 0 0 0 0 1 1 0 0 1 +0 +1 1 1 0 1 1 0 1 1 1 1 0 0 +1 +0 0 1 1 1 1 1 0 1 1 1 1 1 +0 +1 1 1 1 0 0 0 1 0 1 0 1 0 +1 +1 0 1 1 1 0 0 0 1 0 1 0 1 +1 +1 0 0 1 1 0 1 0 0 1 1 0 1 +1 +0 0 1 1 0 0 1 1 1 0 0 0 0 +1 +1 0 0 0 1 0 1 1 0 0 0 1 1 +0 +0 0 0 1 0 0 0 0 1 0 0 0 1 +1 +0 0 0 0 1 1 1 1 1 1 1 1 0 +0 +1 1 0 0 1 0 0 0 0 0 0 0 0 +1 +0 0 0 0 1 1 1 1 1 1 1 1 1 +1 +1 1 1 1 1 0 0 0 1 1 1 0 1 +1 +0 1 1 1 0 1 1 1 1 1 1 0 0 +1 +0 0 1 0 1 1 0 0 0 1 0 1 0 +1 +0 1 0 1 1 0 0 1 1 0 0 0 0 +1 +0 1 0 1 0 1 0 0 1 1 0 0 1 +0 +1 0 0 0 0 1 0 0 1 1 1 1 0 +0 +0 0 1 1 0 0 1 0 0 1 0 1 1 +0 +1 0 0 1 0 1 0 1 1 0 1 1 1 +0 +0 0 0 1 1 1 0 0 0 1 1 0 0 +1 +0 1 1 0 0 0 1 0 0 1 1 1 1 +1 +1 0 0 0 0 1 0 1 0 0 0 1 0 +0 +0 1 1 1 0 0 0 0 0 1 0 0 1 +1 +0 0 0 1 1 1 0 1 1 0 1 0 1 +1 +0 1 0 1 0 1 1 0 0 1 0 1 0 +0 +1 0 0 1 0 1 0 1 1 1 1 0 0 +1 +0 1 1 1 0 0 1 0 0 1 1 0 0 +0 +1 0 1 1 0 1 1 0 0 1 1 0 1 +0 +0 1 1 1 0 0 0 1 0 0 1 1 0 +0 +1 1 1 0 0 1 1 1 0 0 0 0 0 +0 +1 1 1 1 0 1 1 0 1 0 0 1 0 +0 +1 0 0 0 0 0 0 0 0 1 0 1 0 +1 +0 0 1 0 0 1 0 1 0 0 0 0 0 +1 +1 1 1 1 1 1 1 1 1 1 0 0 1 +1 +1 0 0 1 0 1 0 0 1 1 0 1 1 +1 +0 0 0 1 1 0 0 0 0 0 0 0 1 +1 +0 0 0 0 1 1 1 1 0 1 0 1 0 +0 +0 0 0 1 1 1 1 1 1 0 0 0 1 +1 +1 0 1 1 1 1 0 0 1 1 1 0 1 +1 +0 0 0 0 1 1 1 1 0 1 0 0 0 +1 +0 0 0 0 1 0 0 0 1 1 1 1 1 +0 +0 1 0 1 0 0 1 0 1 0 0 0 0 +0 +0 0 1 1 0 1 0 0 0 0 0 0 0 +1 +0 0 1 0 0 1 0 1 0 1 1 1 1 +1 +1 1 0 0 1 0 0 0 0 1 1 0 0 +1 +0 1 1 0 1 1 1 0 1 0 1 1 0 +0 +0 0 0 1 0 0 1 1 1 1 0 0 1 +0 +1 0 0 0 1 1 1 1 1 0 1 0 1 +0 +0 1 1 0 1 1 0 1 1 1 1 0 1 +1 +0 1 1 0 0 0 0 0 1 0 0 0 1 +0 +0 1 0 0 1 1 1 0 1 0 0 1 1 +1 +1 0 0 0 1 1 1 1 0 0 1 0 1 +1 +0 0 0 0 0 1 1 1 0 1 0 1 1 +0 +0 1 0 0 1 0 0 1 0 0 1 0 1 +1 +0 0 1 0 1 0 0 0 1 1 0 1 1 +0 +1 1 1 1 1 0 1 1 0 1 0 1 1 +0 +1 1 1 1 0 0 0 0 1 0 0 0 1 +0 +1 1 1 1 0 1 0 0 1 1 1 0 0 +0 +0 1 0 0 1 1 1 0 0 1 0 1 0 +0 +1 0 0 0 0 1 1 0 0 1 1 1 1 +1 +0 0 1 0 0 0 1 0 0 0 1 0 1 +0 +0 0 1 1 1 1 0 1 0 1 0 1 1 +0 +0 1 1 1 1 0 1 1 0 1 1 1 0 +1 +0 0 1 0 1 0 1 1 1 0 0 1 1 +1 +1 0 1 0 0 1 1 1 1 1 0 1 1 +1 +0 0 1 0 0 1 0 1 1 0 0 0 0 +0 +0 0 0 0 0 1 0 0 1 0 1 0 1 +0 +1 0 1 0 1 0 1 1 0 0 0 0 1 +0 +0 1 1 1 0 1 1 1 0 1 1 1 0 +1 +1 0 0 0 1 0 0 0 0 0 1 0 1 +0 +1 0 1 1 0 0 0 1 0 0 1 0 1 +0 +1 0 0 1 1 0 0 0 1 1 1 0 0 +0 +0 0 1 1 0 1 1 1 0 1 1 1 0 +0 +1 0 1 1 1 1 1 1 1 0 0 1 1 +0 +0 1 0 1 0 1 1 1 0 0 1 1 0 +1 +1 0 0 0 0 0 0 0 1 0 1 0 0 +1 +0 1 0 0 0 1 0 0 0 1 1 1 0 +1 +0 0 0 0 0 1 0 0 1 1 1 1 1 +0 +0 1 1 1 0 1 0 1 1 1 1 0 0 +0 +0 0 0 0 1 1 0 1 1 0 0 1 1 +0 +0 1 0 1 0 0 0 0 0 1 0 1 0 +0 +0 1 0 0 1 1 0 1 0 0 0 0 1 +1 +0 1 0 0 0 1 1 0 1 0 1 1 1 +1 +0 1 0 1 1 1 1 0 0 0 1 1 0 +1 +0 0 0 1 1 0 1 1 1 0 0 1 1 +1 +1 0 1 1 1 1 1 1 1 0 0 1 0 +1 +0 1 0 0 0 1 0 0 0 0 1 0 1 +0 +1 1 1 0 0 1 1 1 0 1 0 1 0 +0 +1 0 0 1 1 0 0 0 1 0 0 1 0 +1 +0 0 0 1 0 0 1 1 1 1 0 1 1 +1 +1 1 0 1 1 0 0 1 0 1 0 1 1 +0 +0 0 0 1 1 0 0 0 0 0 1 0 0 +1 +0 1 0 0 1 0 0 0 0 0 0 1 0 +1 +0 0 0 1 0 0 0 1 1 1 0 0 1 +1 +1 0 1 0 1 1 0 1 0 0 0 0 0 +1 +0 1 1 0 1 0 1 0 0 1 0 0 1 +0 +1 1 1 0 1 1 0 0 0 0 1 0 0 +0 +0 0 1 1 1 0 1 0 0 1 0 1 0 +0 +1 0 1 1 0 0 0 1 0 1 1 0 0 +0 +0 1 1 0 0 0 1 0 0 1 0 1 0 +1 +1 1 1 0 1 0 1 1 0 0 1 0 0 +1 +1 1 0 1 1 1 1 1 0 0 1 1 0 +1 +1 1 1 0 1 0 1 0 0 1 0 1 1 +0 +1 1 1 1 0 1 0 1 1 0 1 1 0 +1 +0 1 1 1 0 0 1 1 1 1 0 0 1 +0 +0 0 1 0 0 1 1 0 1 1 1 1 1 +0 +1 0 1 1 0 0 0 0 0 0 1 0 1 +1 +0 1 1 0 1 0 1 0 1 1 0 0 1 +1 +1 0 0 1 0 0 1 0 0 1 1 0 0 +1 +0 0 0 1 0 0 0 0 1 1 0 0 1 +0 +0 1 1 0 0 1 1 0 1 1 0 1 0 +1 +0 0 1 0 1 0 0 0 1 1 1 1 0 +0 +1 0 1 1 0 0 0 0 1 0 0 1 1 +0 +1 0 1 0 0 0 0 0 1 1 0 1 0 +1 +1 1 0 1 0 1 0 0 1 1 0 1 0 +1 +1 0 1 1 0 1 1 0 1 0 1 1 0 +0 +1 1 0 0 1 1 0 0 1 0 1 0 1 +1 +0 1 1 1 1 0 0 1 1 0 0 1 1 +0 +0 1 0 0 1 1 0 0 1 1 0 1 0 +0 +1 1 1 0 0 0 1 1 1 1 0 0 0 +1 +1 1 1 1 1 1 1 0 0 1 0 0 1 +1 +1 1 1 0 0 1 1 0 0 0 1 0 0 +0 +1 0 1 1 0 0 1 1 1 1 1 1 1 +0 +1 1 1 0 0 1 0 0 0 0 1 0 0 +1 +1 1 0 0 1 1 1 0 0 1 1 0 1 +0 +0 0 0 1 0 0 1 0 0 1 0 1 0 +0 +1 0 1 1 1 0 0 0 0 1 0 0 1 +0 +1 0 1 0 1 1 0 0 1 0 1 0 0 +0 +0 1 0 1 0 0 1 1 1 1 1 1 0 +0 +1 1 0 0 1 1 1 0 0 0 1 0 1 +1 +1 1 1 0 0 1 1 1 0 1 0 0 0 +1 +0 1 1 1 1 0 0 1 1 1 0 0 0 +1 +0 1 1 1 0 1 0 0 0 0 1 1 0 +0 +0 0 1 0 0 0 0 0 1 0 0 0 0 +0 +0 1 1 1 1 0 0 0 1 1 1 0 0 +1 +0 1 0 0 1 0 1 0 1 1 0 1 1 +1 +1 0 1 1 1 1 0 0 0 0 0 1 0 +0 +0 1 0 1 0 0 0 1 1 0 0 0 0 +0 +0 0 0 0 1 1 1 0 1 0 1 1 0 +0 +0 1 1 1 0 0 0 1 0 1 1 1 0 +1 +0 0 1 1 0 1 0 0 0 0 0 0 1 +0 +0 1 0 1 1 1 1 0 0 0 0 1 0 +0 +0 1 0 1 0 1 0 0 0 1 1 1 0 +0 +0 1 1 0 1 0 1 0 0 0 0 0 0 +0 +0 0 0 0 1 0 0 0 1 0 0 0 1 +1 +0 1 1 1 0 1 0 0 0 1 1 1 1 +0 +0 1 0 1 0 0 1 1 0 0 1 0 1 +0 +0 1 1 1 0 0 0 0 1 1 0 1 0 +0 +0 0 1 0 1 1 1 1 1 1 0 1 0 +0 +1 0 1 0 1 1 0 0 1 1 1 0 1 +0 +1 0 0 1 0 1 1 0 1 1 0 1 1 +0 +0 1 0 0 0 0 0 1 0 1 1 1 0 +1 +1 1 0 0 1 0 0 1 0 0 1 1 0 +0 +0 0 0 0 0 0 1 1 1 0 1 0 1 +1 +1 1 1 0 1 1 0 0 0 0 1 1 1 +0 +1 0 1 0 1 0 0 1 0 1 0 0 1 +0 +1 1 0 0 1 0 1 1 1 0 1 1 1 +1 +1 1 1 1 1 1 0 1 0 1 0 0 0 +0 +0 0 0 0 0 0 0 0 0 1 1 1 1 +0 +1 1 0 0 0 0 1 0 0 0 0 1 0 +0 +1 0 1 0 0 1 1 1 1 1 0 0 0 +1 +1 0 1 1 1 1 1 1 0 0 0 1 0 +0 +1 0 0 0 1 1 0 0 1 1 0 0 0 +1 +0 1 0 0 0 0 0 1 0 1 1 0 1 +1 +0 1 1 1 1 1 1 1 1 0 0 1 1 +0 +0 0 0 1 0 0 0 1 1 0 1 0 0 +0 +1 0 0 0 0 1 0 1 0 1 0 0 1 +1 +0 0 0 0 0 0 1 0 0 1 0 0 1 +1 +1 0 0 1 1 0 0 1 0 0 0 0 1 +1 +0 1 0 1 0 1 1 1 0 0 0 1 0 +0 +1 1 1 0 1 1 0 0 1 0 1 1 1 +1 +0 1 0 1 0 1 0 0 0 1 1 0 1 +0 +1 1 1 0 1 1 1 1 0 1 0 1 1 +0 +0 1 0 1 0 0 0 1 1 0 1 1 1 +1 +1 0 1 0 0 1 1 0 0 1 0 1 0 +0 +0 0 1 0 1 1 1 0 1 1 1 1 1 +1 +1 1 1 1 1 0 1 0 0 1 0 1 1 +1 +0 1 1 0 0 0 0 1 1 0 0 0 1 +1 +0 1 0 1 0 1 0 1 0 1 0 0 1 +0 +0 1 0 1 0 1 0 0 0 1 0 0 0 +0 +0 0 1 0 1 1 1 0 0 1 1 0 1 +1 +0 0 0 0 1 1 0 1 1 1 0 0 0 +1 +1 1 0 0 0 0 0 0 1 0 1 1 1 +0 +0 1 1 1 1 1 1 0 1 1 1 0 1 +0 +1 1 1 0 1 1 1 0 0 1 1 0 0 +0 +0 1 1 1 0 0 0 0 1 1 1 1 1 +0 +1 1 1 1 1 1 1 0 0 1 1 0 0 +1 +0 0 1 1 0 0 1 0 1 0 0 1 0 +1 +1 1 0 0 1 1 0 0 1 0 0 0 0 +1 +0 0 1 1 1 0 1 1 1 1 0 0 1 +0 +1 0 0 1 1 1 1 1 1 0 0 0 0 +1 +1 0 0 0 0 1 0 1 0 0 1 0 0 +0 +0 1 0 1 1 0 1 1 0 0 1 0 1 +1 +0 1 1 1 1 1 1 1 0 1 0 1 1 +0 +0 1 1 0 1 1 1 0 0 1 0 0 1 +1 +1 1 1 1 0 0 0 0 0 1 1 1 0 +1 +1 0 0 1 0 0 0 1 1 0 1 1 0 +0 +1 1 1 1 0 0 0 1 0 0 0 0 0 +1 +0 1 1 1 1 1 0 1 1 1 0 0 0 +0 +0 0 0 1 1 0 0 1 1 1 0 1 0 +0 +1 1 1 1 1 0 1 0 1 0 0 1 0 +0 +1 1 0 1 0 1 1 1 1 1 0 0 0 +0 +0 1 0 1 1 1 1 1 1 1 1 0 1 +0 +0 0 1 1 1 0 1 0 1 0 1 0 1 +1 +0 1 1 1 1 0 1 0 1 0 1 1 1 +1 +1 1 1 1 1 0 1 0 0 1 0 1 0 +0 +0 1 0 0 0 1 1 0 0 1 0 0 0 +0 +0 1 1 1 1 1 1 1 0 1 0 1 0 +1 +0 0 1 0 1 0 1 0 0 1 1 0 1 +0 +1 0 1 0 0 0 0 1 0 0 0 0 1 +0 +0 0 0 1 1 1 1 1 1 1 0 0 0 +1 +1 1 1 1 0 1 1 0 0 0 1 0 1 +0 +1 1 0 0 1 0 0 1 0 1 1 1 0 +1 +0 0 0 0 0 1 1 0 1 0 0 0 1 +0 +0 0 1 1 1 1 1 1 0 0 1 0 0 +1 +1 1 1 1 1 1 1 0 0 0 1 0 1 +1 +0 1 1 1 0 1 1 0 0 0 0 0 1 +0 +1 1 0 0 0 0 1 1 1 1 0 1 0 +1 +1 0 0 1 1 1 1 1 0 1 0 1 1 +1 +1 1 1 1 0 1 1 1 0 1 0 0 0 +0 +0 1 0 1 1 0 0 1 1 0 1 0 1 +1 +0 1 0 1 1 0 1 1 0 0 0 1 0 +0 +0 0 0 1 0 0 0 1 1 1 1 0 1 +0 +0 1 1 0 1 0 0 1 0 1 1 1 0 +1 +1 1 0 0 0 1 0 0 0 0 1 0 1 +1 +1 0 0 0 1 0 0 0 0 1 1 1 0 +1 +0 1 0 1 1 0 0 0 0 0 1 1 0 +1 +0 0 0 1 1 0 1 0 1 1 1 1 1 +0 +0 1 0 1 1 1 1 1 1 1 1 0 0 +1 +1 1 0 0 1 1 1 1 1 0 0 1 1 +1 +0 0 1 1 1 1 1 0 1 0 1 1 1 +1 +0 1 1 0 1 1 1 1 1 0 1 0 0 +0 +1 1 1 1 0 1 1 1 0 1 1 0 0 +1 +0 0 1 0 0 0 0 0 0 0 1 1 1 +0 +0 0 1 0 1 0 0 0 1 0 1 0 1 +1 +0 1 1 0 0 1 1 1 0 0 0 1 0 +0 +0 1 1 1 1 1 0 1 0 0 0 0 0 +0 +0 1 1 0 1 1 1 0 1 1 0 0 0 +1 +1 1 0 0 0 0 0 1 1 0 0 1 1 +0 +1 0 0 1 0 0 0 0 1 0 1 1 0 +1 +0 1 1 1 0 1 1 1 1 0 1 0 1 +1 +0 1 1 0 0 0 0 1 0 1 1 0 0 +1 +1 0 1 1 0 0 1 0 1 0 1 1 1 +0 +0 1 0 1 0 0 1 0 0 0 1 1 0 +1 +0 1 1 1 1 0 1 1 0 0 1 0 0 +1 +1 0 1 1 1 1 1 1 1 0 1 1 1 +1 +1 1 0 0 0 1 0 1 0 1 1 1 0 +1 +1 1 0 0 0 1 1 0 1 0 1 1 1 +0 +1 1 1 1 0 1 0 1 1 1 1 0 1 +0 +1 1 0 1 0 1 1 0 1 1 0 1 0 +0 +1 0 1 0 0 1 1 0 0 0 0 1 1 +0 +1 1 1 0 0 0 1 1 1 1 1 1 0 +1 +0 1 0 0 0 1 0 1 0 0 1 1 0 +1 +0 1 1 1 1 0 0 0 0 1 1 1 1 +0 +1 0 1 0 0 1 1 0 0 0 1 1 0 +0 +1 0 0 1 1 1 1 0 1 0 0 0 1 +1 +1 0 1 1 0 0 1 0 0 1 0 0 1 +0 +1 1 1 1 1 1 0 1 0 1 0 1 0 +1 +0 1 0 1 1 0 0 0 1 0 0 1 0 +1 +1 0 1 0 0 1 1 0 1 1 1 1 0 +0 +0 1 0 1 1 1 0 0 0 1 1 1 0 +1 +0 1 1 1 1 1 0 1 1 0 1 1 1 +0 +0 0 0 0 0 0 0 0 1 1 1 0 1 +0 +1 1 0 0 0 0 0 0 1 1 0 0 1 +1 +0 1 0 1 0 1 1 0 1 1 1 0 1 +0 +0 0 1 1 0 0 1 0 1 0 0 0 0 +0 +1 1 1 0 0 0 1 1 1 0 1 0 0 +1 +0 0 0 0 1 0 0 0 1 1 1 1 0 +1 +1 0 0 1 0 0 1 0 1 0 0 1 0 +1 +0 0 1 1 1 0 1 0 0 0 0 0 0 +0 +1 0 1 0 1 0 1 0 0 1 1 1 1 +0 +1 1 0 0 0 1 0 1 1 0 1 0 1 +1 +0 0 1 0 1 0 1 0 0 0 1 0 1 +1 +1 0 0 1 1 1 0 0 1 0 1 1 0 +1 +0 0 0 1 1 0 0 0 1 1 0 1 0 +1 +1 0 1 0 0 1 1 1 0 0 0 0 0 +1 +1 0 1 0 1 0 0 0 0 1 1 1 0 +0 +0 0 0 1 1 0 0 1 1 1 1 1 1 +0 +0 1 0 0 1 0 0 0 1 0 0 0 1 +0 +0 1 0 1 1 1 1 1 1 0 0 1 1 +1 +1 1 0 0 0 0 0 0 1 1 0 1 0 +1 +1 0 0 0 1 1 1 1 1 0 0 1 0 +1 +1 0 1 0 0 0 0 0 1 0 1 0 1 +1 +0 0 0 1 1 0 1 0 1 1 0 1 1 +1 +0 1 0 0 0 0 1 0 0 1 0 0 1 +0 +0 0 1 0 0 1 0 0 1 0 0 1 0 +0 +1 1 0 1 0 1 0 1 1 1 0 1 1 +1 +1 0 0 0 0 0 0 0 0 0 1 0 0 +0 +0 1 0 0 1 0 0 1 0 1 1 1 0 +0 +0 0 1 1 0 0 1 0 1 1 1 1 1 +0 +0 1 1 0 0 0 0 0 1 1 0 1 1 +0 +0 1 1 1 1 0 0 1 1 0 1 1 0 +0 +0 0 1 0 0 1 0 1 1 0 1 0 0 +1 +0 1 0 0 0 1 0 1 1 1 1 1 0 +1 +1 0 1 1 1 0 1 1 1 0 1 0 0 +0 +1 0 0 1 1 0 0 0 1 1 0 0 0 +1 +0 0 1 1 1 1 0 1 1 1 0 1 0 +0 +1 1 1 1 1 1 1 0 1 0 0 1 1 +0 +1 0 1 1 0 1 1 0 0 1 0 0 0 +0 +1 1 0 1 1 0 0 1 0 0 1 1 1 +0 +0 0 0 1 0 1 1 1 0 0 0 1 0 +1 +1 1 1 1 0 0 1 1 0 0 0 1 0 +1 +0 0 0 1 0 1 1 1 0 0 1 0 1 +0 +0 1 1 0 1 1 1 0 0 1 0 1 0 +1 +1 0 1 0 0 0 1 1 1 1 1 0 0 +1 +1 1 0 1 0 0 0 1 0 0 1 0 0 +1 +0 1 1 0 0 1 0 1 1 0 1 0 1 +1 +1 0 1 0 0 0 1 1 0 1 1 1 0 +1 +0 0 0 1 1 1 0 1 0 0 0 1 0 +1 +1 0 1 1 0 0 1 1 1 1 0 0 0 +1 +1 0 1 0 0 1 0 0 0 0 0 1 0 +0 +1 1 1 0 1 1 1 0 1 1 0 0 0 +0 +0 0 1 1 1 0 1 0 1 0 1 1 0 +1 +0 1 0 1 0 0 1 0 0 1 1 0 1 +0 +1 0 0 1 0 1 1 1 1 0 0 0 1 +1 +1 1 0 1 0 0 1 0 0 1 1 1 1 +0 +1 0 1 0 1 1 1 1 0 0 1 0 0 +1 +1 0 0 0 0 1 0 0 1 1 0 0 0 +0 +0 1 1 0 0 1 1 0 0 1 0 1 0 +0 +0 1 1 0 1 0 1 1 0 0 1 1 1 +0 +0 1 0 1 1 0 0 1 1 0 0 1 0 +0 +0 1 1 1 1 1 0 1 0 1 0 1 1 +1 +1 0 1 1 1 1 0 0 1 0 0 0 0 +0 +0 1 1 0 1 0 0 1 0 0 0 0 0 +0 +1 0 0 1 0 0 1 1 1 1 1 1 0 +0 +0 1 0 1 0 0 0 1 1 1 0 0 1 +0 +1 1 0 1 1 1 0 1 0 1 0 0 0 +1 +0 0 1 1 1 1 0 0 1 1 0 1 1 +0 +0 1 1 1 0 0 1 1 0 0 1 1 1 +0 +1 1 1 1 0 0 1 1 1 1 0 0 1 +1 +1 0 1 0 0 1 1 1 1 1 1 0 0 +0 +0 0 1 1 0 0 0 0 0 0 0 1 1 +0 +0 1 0 1 1 1 0 0 0 0 0 0 1 +1 +1 0 0 1 1 0 1 1 0 1 0 1 0 +1 +0 0 1 0 0 0 0 0 0 1 0 1 1 +0 +0 1 1 1 0 0 1 1 0 1 1 1 0 +0 +1 0 1 1 0 0 1 0 1 0 0 0 1 +0 +0 1 0 1 0 1 0 1 1 1 1 1 0 +0 +0 1 0 0 0 1 1 1 0 0 0 0 1 +1 +1 1 1 0 1 0 1 0 0 1 1 0 0 +1 +0 1 0 0 1 1 0 0 0 1 0 0 0 +0 +1 1 0 1 0 1 1 1 0 0 0 1 0 +1 +0 0 1 1 1 1 0 1 1 1 0 0 0 +1 +0 1 0 0 0 1 1 0 1 1 0 1 0 +0 +1 0 1 1 1 0 0 1 1 0 1 1 0 +0 +1 1 0 0 0 1 0 1 1 1 0 1 0 +1 +1 1 0 0 1 1 0 0 0 0 1 1 1 +1 +0 1 0 1 1 0 0 1 1 0 1 1 0 +1 +0 1 0 0 1 0 0 1 1 0 1 0 1 +0 +1 0 1 1 0 1 0 1 1 0 0 1 0 +1 +1 0 1 0 0 1 0 0 0 0 0 0 0 +1 +1 0 0 1 1 0 1 1 1 1 1 0 1 +1 +0 1 0 0 0 1 0 1 0 1 0 0 0 +0 +1 1 0 1 0 1 0 0 1 0 1 1 1 +0 +1 1 0 0 1 1 0 0 1 1 0 0 1 +1 +0 0 0 1 0 1 0 1 0 1 0 1 0 +1 +1 1 1 1 1 1 0 1 1 0 1 1 0 +0 +0 1 0 0 1 1 1 0 0 1 1 0 0 +0 +1 0 1 0 1 1 0 0 1 1 0 1 0 +1 +0 1 1 1 0 1 0 0 0 0 0 1 1 +0 +1 0 1 1 1 0 1 1 1 1 0 1 1 +0 +0 1 0 0 0 0 1 1 1 1 1 0 0 +0 +0 1 0 0 1 0 0 0 1 1 0 1 1 +0 +0 0 1 1 0 1 0 0 0 1 1 0 0 +1 +0 1 0 0 0 0 0 1 1 0 0 0 1 +0 +0 0 0 1 1 1 0 0 0 0 0 0 0 +1 +1 0 0 0 0 1 1 1 1 0 1 1 0 +1 +0 0 0 0 0 1 0 1 1 1 1 0 1 +0 +1 0 0 1 0 1 1 1 1 0 0 1 1 +0 +0 1 1 0 1 0 1 1 1 1 0 1 0 +0 +1 1 0 1 1 0 0 0 1 1 0 1 0 +1 +0 1 1 0 0 0 0 1 1 1 0 1 1 +1 +0 1 1 0 0 0 1 1 1 1 0 0 1 +1 +0 1 0 1 1 0 1 0 0 0 0 0 0 +0 +1 1 0 0 0 1 1 0 0 0 0 1 1 +0 +1 1 1 0 0 1 1 1 1 1 1 0 1 +0 +0 1 0 0 1 1 0 0 0 0 0 0 0 +1 +1 1 0 0 0 0 1 0 1 0 0 0 0 +0 +0 1 0 1 1 1 0 0 0 0 0 0 0 +0 +0 1 0 0 1 1 1 0 0 1 1 1 0 +1 +0 0 0 1 0 1 0 0 0 0 1 0 0 +1 +1 0 0 0 1 0 1 0 0 0 0 0 0 +1 +0 1 1 0 1 1 0 0 1 0 0 0 0 +1 +1 0 1 1 1 1 1 1 0 1 1 1 1 +1 +0 0 0 0 0 0 0 1 1 1 1 0 1 +1 +0 1 1 0 0 0 1 0 1 1 1 1 1 +0 +1 1 0 0 0 1 0 1 0 0 0 1 0 +1 +1 0 0 0 0 1 1 1 0 1 0 0 1 +0 +1 0 0 1 0 1 1 0 0 0 1 0 0 +1 +1 0 1 0 1 1 1 1 1 0 0 1 1 +1 +1 1 1 1 0 0 0 0 1 1 0 1 0 +1 +0 1 0 1 1 0 1 1 1 0 0 0 0 +0 +0 0 1 1 0 1 1 1 1 0 1 0 0 +1 +1 0 1 0 0 0 0 1 0 1 1 1 0 +0 +1 0 0 1 1 0 0 1 1 1 0 0 1 +1 +0 1 1 0 1 1 1 1 0 0 0 0 1 +1 +1 0 1 1 0 0 0 0 1 1 0 0 0 +1 +0 1 1 1 0 1 1 1 0 1 0 1 1 +1 +0 0 0 1 0 1 0 0 0 1 0 1 1 +1 +1 0 1 1 1 0 1 0 0 0 0 1 0 +0 +0 1 1 0 0 1 1 1 1 0 1 1 0 +0 +1 0 0 0 1 0 0 0 1 1 1 1 1 +1 +0 0 1 1 1 1 0 1 0 0 1 0 1 +1 +1 0 0 0 1 1 0 0 0 0 0 1 1 +1 +0 1 1 0 0 1 1 1 0 1 1 1 0 +0 +0 0 1 0 1 0 0 0 0 1 0 1 1 +1 +1 1 1 0 1 0 0 0 1 1 0 1 0 +1 +0 0 0 0 0 1 1 0 1 0 1 1 1 +0 +1 1 0 0 0 0 1 1 1 1 1 1 0 +0 +1 0 0 0 0 1 0 1 1 0 0 1 0 +1 +1 0 1 0 0 0 1 0 0 0 0 0 0 +1 +0 1 1 1 1 1 1 0 0 1 0 1 0 +0 +1 0 0 1 0 0 0 1 1 1 0 0 1 +0 +1 0 1 1 0 1 1 0 0 1 1 0 0 +1 +1 0 1 1 0 1 0 0 0 0 1 1 0 +0 +0 0 1 0 0 0 0 0 0 1 0 0 1 +1 +0 0 1 0 1 1 1 0 0 1 1 1 1 +0 +1 1 1 1 1 1 0 1 1 0 0 0 0 +0 +0 1 0 1 1 1 0 0 0 1 0 0 0 +1 +0 1 1 1 1 1 0 1 1 1 1 0 1 +0 +0 1 0 1 0 0 0 1 0 0 0 1 0 +0 +0 1 1 0 1 0 0 1 1 1 0 1 0 +1 +0 0 0 0 0 1 1 1 0 0 0 1 0 +0 +0 0 0 1 1 1 1 0 0 1 1 1 1 +0 +0 1 1 0 1 0 1 0 0 1 0 1 0 +0 +1 0 0 0 0 0 1 1 0 0 1 1 0 +1 +0 1 1 1 1 1 0 1 1 0 0 0 0 +1 +0 1 0 1 0 1 1 0 0 0 1 1 0 +0 +1 1 0 0 0 1 1 0 0 0 0 0 1 +1 +0 1 0 0 1 0 1 1 1 0 0 0 0 +1 +0 0 1 1 1 0 1 1 1 1 0 1 0 +0 +1 0 1 0 0 0 1 1 0 1 1 0 1 +1 +1 1 0 0 1 0 1 0 1 0 1 0 1 +1 +0 1 0 0 0 0 1 0 0 0 0 1 1 +0 +1 0 0 1 0 0 0 0 0 1 1 1 1 +0 +0 1 0 0 0 1 1 0 0 0 1 0 1 +1 +0 0 1 0 0 0 1 1 1 1 1 0 1 +1 +1 1 0 0 1 1 1 1 0 1 0 1 1 +1 +0 0 0 1 1 0 0 1 0 0 1 1 0 +1 +1 1 0 0 0 1 1 1 1 1 0 1 0 +0 +1 1 0 1 1 0 0 1 0 0 0 0 0 +1 +1 0 1 1 0 1 1 0 0 1 0 1 1 +0 +0 1 1 0 1 0 1 1 0 1 1 1 1 +1 +1 0 0 0 1 1 0 0 0 0 1 0 0 +0 +1 1 1 1 1 1 0 0 1 0 0 1 1 +1 +0 1 0 0 1 1 1 1 0 0 0 1 0 +0 +1 0 1 0 1 0 0 1 1 0 1 0 1 +1 +0 1 1 0 1 1 1 1 1 0 1 0 1 +1 +1 1 0 1 1 0 1 1 0 0 1 1 0 +0 +0 0 1 1 1 0 1 1 0 0 0 0 0 +1 +1 0 0 1 1 0 0 0 1 1 0 1 0 +0 +0 0 1 0 0 0 1 1 1 0 1 0 0 +1 +0 0 1 1 0 0 1 0 1 0 1 0 1 +0 +1 1 0 0 0 0 0 1 0 1 1 0 1 +0 +0 0 0 0 1 1 1 0 0 1 1 1 1 +1 +1 1 1 1 1 0 1 1 1 1 0 0 0 +1 +0 1 0 0 1 1 0 1 0 0 0 1 1 +0 +0 1 0 1 1 1 0 1 0 0 1 0 0 +0 +1 0 0 0 1 1 1 1 0 0 0 0 0 +1 +0 0 1 1 1 1 1 1 0 0 0 1 1 +0 +0 1 1 1 1 1 1 1 0 1 1 0 1 +0 +1 1 0 0 0 1 0 1 1 0 0 1 0 +0 +1 0 0 0 0 0 0 1 0 0 1 1 0 +0 +1 0 0 0 1 0 1 0 0 0 1 1 0 +1 +0 1 0 0 0 1 0 0 0 0 0 0 0 +0 +1 1 0 0 0 0 1 0 0 1 1 0 0 +1 +0 1 0 0 1 1 1 1 1 0 1 1 0 +0 +0 0 0 0 1 0 1 0 1 0 0 1 0 +0 +0 0 0 0 1 1 0 0 1 0 0 0 0 +1 +0 0 0 0 0 0 1 1 0 0 1 0 1 +0 +0 0 0 0 0 1 1 0 0 1 1 1 1 +0 +0 1 0 1 1 0 1 0 1 0 0 0 0 +1 +1 1 1 1 1 0 1 0 1 0 1 1 0 +1 +1 1 1 1 1 1 0 1 1 0 1 0 0 +1 +1 0 0 1 1 1 1 1 1 1 1 1 0 +0 +1 0 1 1 1 1 0 1 1 1 0 0 1 +1 +0 0 0 0 1 1 0 1 1 0 1 1 0 +0 +1 1 1 1 0 1 1 0 0 1 0 0 1 +0 +1 0 0 0 1 1 1 1 0 1 1 0 1 +0 +1 1 0 1 0 1 0 0 1 0 0 1 1 +1 +1 0 0 0 1 1 1 0 1 1 0 1 1 +0 +1 0 1 1 0 0 1 1 1 0 1 0 0 +1 +0 0 0 0 1 0 1 0 1 0 0 0 1 +0 +0 0 1 1 1 1 1 0 0 0 0 1 1 +1 +0 0 1 0 1 0 0 1 1 0 1 1 0 +0 +0 0 0 1 1 1 1 1 0 0 1 0 1 +1 +0 1 0 1 0 0 1 1 0 0 0 0 0 +0 +0 0 1 0 1 0 1 1 0 0 1 1 0 +0 +0 0 1 1 1 1 1 0 1 0 0 0 1 +1 +0 0 0 0 1 0 1 0 0 0 1 1 0 +0 +0 0 0 1 1 1 0 1 0 1 0 0 0 +1 +0 1 1 1 0 1 0 0 1 1 1 0 0 +1 +1 0 1 0 0 0 0 1 1 1 0 1 1 +1 +1 0 0 1 0 1 0 0 0 0 0 1 0 +0 +0 0 0 1 0 1 0 0 0 1 0 0 0 +1 +1 1 1 0 1 0 1 1 1 0 0 0 1 +0 +1 0 1 0 0 0 1 0 0 1 1 1 0 +0 +0 1 1 1 1 1 0 0 1 1 0 0 1 +0 +1 0 1 1 0 1 0 1 1 1 0 0 0 +1 +0 1 1 0 1 1 1 0 1 1 1 0 0 +0 +0 0 0 1 0 0 0 1 1 1 1 0 0 +1 +1 1 0 1 0 1 1 0 0 1 1 1 0 +0 +1 1 0 1 0 0 0 1 1 0 0 0 0 +1 +1 0 0 1 0 1 1 1 0 1 1 0 0 +1 +1 1 0 0 1 1 1 0 1 0 1 0 1 +0 +1 0 0 0 1 0 1 1 0 0 1 1 0 +0 +1 0 0 0 0 1 0 1 0 1 1 1 1 +1 +1 0 1 0 1 0 1 1 0 1 0 1 1 +0 +0 1 0 0 0 0 1 0 0 1 1 1 0 +1 +0 1 0 0 1 1 0 0 0 1 0 1 1 +0 +1 1 0 0 1 1 0 1 0 1 0 0 1 +1 +0 0 1 1 0 1 1 0 1 0 1 1 0 +1 +0 0 1 0 1 0 1 1 0 1 0 0 0 +1 +1 1 0 0 0 0 0 1 0 0 1 1 0 +1 +0 1 0 1 1 0 1 0 1 1 0 0 1 +1 +1 1 1 1 0 0 0 1 0 1 1 0 1 +0 +0 1 0 0 0 1 0 0 0 1 1 1 1 +0 +0 0 0 1 1 0 1 0 0 1 1 1 1 +1 +0 1 0 0 1 1 0 0 1 1 0 0 0 +1 +0 1 0 1 0 1 1 0 1 1 1 1 1 +1 +0 1 1 0 1 1 0 1 1 1 0 1 0 +0 +1 0 1 1 0 0 0 1 0 1 0 1 0 +0 +1 1 0 0 1 0 1 0 0 1 1 0 0 +0 +0 0 0 0 0 1 0 1 1 1 1 0 0 +1 +0 1 1 0 0 1 0 1 1 1 1 1 0 +0 +0 0 0 1 1 0 0 0 0 1 1 0 0 +0 +1 0 1 0 0 0 1 1 0 1 0 1 1 +1 +0 1 1 1 1 1 0 0 1 1 1 1 0 +1 +1 0 0 0 1 1 1 0 1 0 0 0 0 +1 +0 1 0 1 0 0 1 1 0 1 0 0 1 +0 +1 1 0 0 0 1 1 0 1 1 1 1 1 +1 +1 0 1 1 0 0 1 1 1 0 0 1 0 +1 +1 1 0 0 1 1 0 1 0 0 1 0 1 +1 +1 1 1 1 1 1 1 1 0 1 1 0 1 +1 +0 1 0 0 0 1 0 0 1 1 1 0 0 +1 +0 1 0 1 1 0 0 0 1 1 0 1 0 +0 +0 1 0 0 0 1 0 0 0 1 1 0 0 +0 +0 1 1 1 0 0 0 0 0 0 1 0 1 +1 +1 0 1 1 1 1 0 1 1 1 1 1 1 +1 +0 0 0 0 1 0 0 1 1 1 0 0 0 +0 +1 1 1 0 0 0 1 1 0 1 0 1 1 +0 +0 1 1 0 0 1 0 0 1 1 0 1 0 +0 +0 0 1 0 1 0 1 0 1 0 1 0 1 +0 +0 1 1 1 0 1 0 0 0 0 1 1 1 +1 +1 1 0 1 0 0 0 0 1 1 0 0 0 +1 +0 1 1 1 1 1 0 1 1 1 0 0 1 +1 +0 0 0 0 1 1 0 1 0 1 1 0 1 +0 +1 0 1 0 1 0 1 0 1 1 1 0 1 +0 +0 1 0 0 1 0 1 0 1 1 0 0 1 +0 +0 0 1 0 0 0 1 1 1 1 0 1 0 +0 +1 1 1 0 1 1 0 0 0 0 1 1 0 +1 +1 1 1 1 0 1 0 1 0 0 1 0 0 +1 +0 1 0 1 0 0 1 1 1 0 1 1 0 +1 +0 1 0 0 1 1 1 0 0 1 0 0 0 +1 +1 0 0 0 1 1 0 1 1 0 1 1 1 +0 +0 1 1 0 0 0 1 0 1 1 1 1 0 +1 +1 0 1 1 0 1 0 1 1 0 1 0 0 +1 +1 0 0 1 1 0 1 1 0 1 1 1 0 +0 +1 0 1 0 1 1 0 1 0 1 1 1 0 +0 +0 1 1 1 1 0 0 0 1 1 0 0 0 +0 +0 0 0 1 0 1 0 1 0 0 0 0 1 +0 +0 1 0 1 0 0 0 1 1 1 0 1 0 +0 +0 0 1 0 0 1 1 0 1 0 1 1 1 +1 +1 1 1 1 1 1 0 0 0 0 1 1 1 +1 +0 0 1 1 0 0 1 1 0 1 0 1 1 +1 +1 0 1 0 1 1 0 1 0 1 0 1 1 +0 +1 1 0 0 1 0 1 0 1 1 1 0 0 +1 +1 0 0 0 1 0 0 1 1 0 0 0 0 +0 +1 1 0 1 1 1 1 1 1 0 0 1 0 +1 +1 0 0 0 1 0 1 1 1 1 1 0 0 +1 +0 0 1 1 0 1 0 1 0 0 0 0 1 +1 +0 0 1 0 1 0 0 0 0 1 1 0 0 +0 +0 0 0 1 1 1 1 0 0 0 0 0 1 +1 +0 0 0 1 1 0 0 1 1 0 0 1 1 +0 +0 1 0 0 0 0 0 1 1 1 1 1 0 +0 +0 0 1 0 1 1 0 0 1 1 1 1 0 +1 +0 1 0 0 0 0 1 0 0 1 0 0 0 +1 +0 0 1 0 0 1 1 1 0 1 1 1 0 +1 +1 1 0 0 0 1 1 0 0 1 0 1 1 +1 +1 1 0 1 1 0 1 0 1 1 0 1 0 +0 +0 1 0 0 0 0 1 1 1 0 0 0 0 +0 +0 1 1 0 0 0 0 1 0 1 1 1 1 +1 +1 1 0 0 0 0 1 1 0 1 0 0 1 +0 +0 0 1 0 0 1 0 1 1 1 1 0 0 +0 +0 0 0 1 0 1 0 1 0 0 1 0 1 +1 +1 0 0 1 0 0 1 0 1 1 0 1 1 +1 +0 0 1 1 0 0 1 1 1 1 1 0 0 +1 +0 0 0 0 1 0 0 1 0 1 1 1 1 +0 +0 0 0 1 1 1 1 0 1 0 0 1 1 +1 +0 0 0 0 1 0 1 0 0 0 0 1 0 +1 +1 1 1 0 0 0 0 1 1 1 0 0 0 +0 +0 0 0 0 0 1 1 0 1 1 0 1 1 +0 +0 1 0 0 0 0 0 1 1 0 0 0 0 +1 +1 0 0 1 0 0 0 1 0 1 0 1 0 +1 +1 1 1 1 1 0 0 0 1 1 0 1 0 +0 +1 1 0 0 0 1 1 1 0 0 1 1 1 +0 +0 1 0 1 1 1 1 0 1 0 0 0 1 +1 +0 1 1 1 0 0 0 0 0 1 1 0 0 +1 +1 1 0 1 1 1 1 1 1 0 0 0 0 +0 +0 1 1 1 1 1 1 1 0 1 1 1 1 +1 +1 0 1 1 0 1 0 0 1 1 0 1 0 +1 +1 1 1 0 0 0 1 1 1 0 1 0 1 +0 +0 1 0 0 0 1 0 0 1 0 1 1 0 +1 +1 0 1 0 1 1 1 1 0 0 0 0 0 +0 +1 0 1 1 1 0 0 0 1 1 1 1 1 +1 +0 1 1 1 0 1 1 0 1 1 1 1 0 +1 +1 0 1 1 1 0 1 1 1 1 0 0 0 +0 +1 1 1 1 1 1 0 1 0 1 0 1 1 +0 +0 1 1 0 1 0 0 0 0 1 1 0 1 +0 +0 1 1 1 1 1 1 0 1 1 0 0 0 +0 +1 0 1 0 1 0 1 0 1 1 0 0 0 +0 +1 0 1 0 1 1 1 1 1 0 1 0 1 +1 +1 1 0 0 1 0 1 0 1 0 1 0 0 +0 +0 1 0 0 1 1 1 1 0 1 1 1 0 +0 +0 1 1 0 1 0 0 0 1 1 1 0 1 +1 +1 0 1 0 0 1 0 0 0 1 0 0 1 +1 +0 1 0 0 1 0 1 1 0 1 1 1 0 +1 +1 1 0 0 1 1 1 1 0 0 0 1 0 +1 +0 1 1 1 0 0 1 0 1 0 1 0 1 +1 +1 1 1 0 1 1 1 0 1 1 1 0 0 +1 +1 0 0 0 0 0 0 1 1 1 1 1 0 +0 +0 1 1 1 1 0 1 1 0 0 1 0 1 +0 +1 0 0 0 1 0 0 0 0 0 0 1 1 +0 +0 1 0 1 1 1 1 0 0 0 0 0 0 +1 +0 1 0 0 0 0 0 1 0 0 0 1 0 +1 +1 1 0 0 1 0 1 0 0 0 1 1 0 +0 +1 0 1 0 1 1 0 1 1 1 0 1 0 +0 +0 1 1 1 1 0 0 0 0 0 1 0 0 +1 +1 1 1 0 1 1 0 1 0 1 0 0 1 +0 +0 0 1 0 1 0 0 1 1 0 0 0 1 +1 +1 1 1 0 0 1 1 0 0 0 1 0 1 +1 +0 1 1 0 0 0 1 1 1 0 0 0 0 +1 +1 0 0 0 0 0 0 0 0 0 0 0 1 +0 +1 0 0 0 0 0 0 0 1 0 0 1 0 +1 +0 0 0 1 1 0 1 1 0 1 0 0 0 +1 +1 0 0 0 0 1 1 1 1 0 1 0 1 +1 +0 0 0 0 0 1 1 0 0 0 1 0 0 +1 +1 0 0 1 1 0 1 1 1 1 0 1 0 +0 +0 1 1 0 1 1 0 0 1 0 1 0 1 +1 +0 0 0 1 1 1 0 1 1 0 0 0 1 +0 +0 1 1 1 0 0 1 1 0 0 0 0 1 +0 +1 0 0 1 1 1 1 1 1 0 0 1 0 +0 +0 0 0 1 0 0 1 1 0 0 1 1 0 +1 +0 1 1 0 0 1 1 1 1 0 0 1 1 +0 +0 1 1 1 1 1 1 0 1 0 0 1 1 +1 +1 1 1 0 0 1 1 1 0 0 1 1 0 +0 +1 0 1 1 1 0 1 1 1 0 0 0 0 +1 +1 1 0 0 1 0 1 1 1 0 0 0 0 +0 +1 1 0 1 1 1 0 1 1 1 1 1 1 +1 +0 0 1 1 0 1 1 1 0 1 1 1 1 +1 +1 0 0 1 0 1 1 0 0 0 1 0 1 +0 +1 1 0 0 1 1 1 1 1 0 1 0 1 +1 +1 1 0 1 0 1 1 0 0 1 1 0 1 +0 +0 1 1 1 0 1 0 1 1 1 1 1 0 +1 +0 0 1 1 0 1 1 1 0 0 1 0 0 +0 +1 1 0 1 1 1 1 1 1 1 0 0 1 +0 +0 0 0 1 0 0 1 0 0 0 0 0 0 +0 +0 1 1 0 1 0 0 1 1 0 0 1 1 +1 +1 0 1 1 0 0 0 1 1 1 0 0 0 +0 +0 1 0 0 1 1 1 1 0 1 0 0 1 +1 +0 1 1 0 0 0 1 0 1 0 1 0 1 +0 +0 1 0 0 0 1 0 0 0 1 0 1 0 +0 +1 0 1 0 0 0 1 0 0 1 1 1 1 +1 +1 1 0 1 0 0 0 0 1 1 1 1 1 +0 +0 1 1 0 1 1 0 0 0 0 1 0 1 +0 +0 1 0 1 1 0 1 0 0 1 1 1 1 +0 +0 1 1 1 1 0 1 1 1 1 0 0 0 +0 +1 0 0 1 1 0 0 0 1 1 1 0 1 +1 +1 0 0 1 0 0 0 0 0 1 0 0 1 +0 +0 0 0 1 0 0 1 0 1 1 1 1 0 +0 +0 1 1 0 0 1 1 0 1 0 1 1 0 +1 +1 0 0 0 0 1 1 0 1 0 0 0 1 +1 +1 0 0 1 0 0 0 1 0 1 1 1 0 +0 +0 1 1 1 0 0 1 1 1 0 1 0 1 +0 +1 0 1 0 1 0 0 0 0 1 1 1 1 +1 +1 0 1 1 0 1 1 0 0 0 1 0 1 +1 +1 0 1 0 1 1 0 1 1 0 0 1 0 +1 +1 0 1 0 1 1 0 1 1 1 0 1 1 +1 +1 1 0 1 1 0 1 1 1 0 0 0 1 +0 +1 0 0 1 0 0 0 1 0 0 1 0 1 +1 +0 1 0 0 1 1 1 0 1 0 1 1 1 +0 +0 1 0 0 1 1 1 1 1 0 1 1 1 +1 +0 1 1 0 0 0 0 0 0 1 1 1 0 +1 +0 0 0 0 1 1 1 0 0 0 0 1 1 +1 +1 1 1 1 0 0 0 1 1 0 0 0 1 +1 +1 1 1 0 1 1 1 1 1 0 1 0 1 +0 +0 1 0 0 1 0 1 0 0 0 0 0 1 +0 +0 0 0 1 0 1 0 1 1 0 0 1 1 +0 +0 1 1 1 1 1 1 1 1 0 1 0 1 +0 +0 1 1 1 1 0 0 0 1 1 1 1 1 +1 +1 0 1 0 1 1 0 0 1 0 1 0 1 +1 +1 1 0 1 0 0 1 1 0 0 1 0 1 +1 +0 0 1 1 0 0 1 0 0 0 0 1 0 +0 +0 0 1 1 0 1 1 0 1 1 1 0 1 +0 +1 0 0 0 0 0 1 1 1 1 0 1 0 +0 +0 0 0 0 1 1 0 1 1 0 0 0 1 +1 +0 0 1 1 1 0 0 0 0 0 1 0 1 +1 +0 0 0 1 0 0 0 0 0 1 1 1 1 +1 +0 0 1 0 0 0 0 1 0 1 0 0 1 +0 +1 0 0 0 1 0 0 0 1 0 1 1 1 +0 +0 0 0 0 0 1 0 1 1 1 1 1 0 +0 +1 0 0 0 1 0 1 1 0 0 0 0 1 +1 +0 0 0 0 1 0 1 0 1 1 0 0 0 +0 +0 0 0 1 0 0 0 1 0 0 0 0 0 +0 +0 1 1 0 0 1 0 1 0 1 0 1 1 +1 +0 1 0 0 1 0 1 1 1 1 1 1 1 +1 +1 0 1 0 1 1 0 1 1 0 1 1 0 +0 +0 1 1 1 0 1 1 1 0 0 1 1 1 +1 +0 0 0 1 0 0 1 0 1 1 1 1 1 +1 +1 1 0 0 1 1 1 0 0 0 0 0 1 +0 +1 1 1 0 0 0 1 1 1 0 0 0 0 +0 +1 1 1 0 1 0 0 1 0 0 1 0 1 +1 +1 1 1 1 1 0 0 1 0 0 0 1 1 +0 +0 1 0 1 0 1 1 1 1 0 0 0 0 +0 +0 0 0 1 0 0 0 0 1 0 1 1 0 +0 +0 1 0 0 0 0 0 0 0 0 0 0 0 +1 +0 1 1 0 1 0 1 0 0 0 0 1 0 +1 +1 1 0 0 0 1 0 0 0 0 0 0 1 +0 +0 0 0 0 0 1 1 1 1 1 1 1 0 +1 +0 1 1 0 1 1 0 1 1 1 0 0 0 +1 +0 1 1 0 1 0 0 0 0 1 1 1 0 +0 +1 1 0 0 0 1 1 1 1 1 0 0 1 +0 +1 1 0 1 0 1 1 0 1 1 0 0 0 +1 +0 1 1 1 1 1 0 0 1 0 0 1 0 +1 +1 1 0 1 0 1 0 1 0 1 0 0 0 +0 +1 0 0 0 0 0 0 1 0 1 1 1 0 +1 +0 1 0 1 1 1 0 1 1 0 1 0 0 +1 +1 0 0 0 1 0 0 1 0 1 0 0 0 +0 +0 1 0 0 1 1 1 1 1 1 1 1 1 +0 +0 1 1 0 0 1 1 0 1 1 1 0 1 +0 +0 0 1 1 0 0 1 0 0 0 1 0 0 +0 +1 0 1 1 1 1 1 0 0 0 0 0 1 +1 +0 1 0 0 0 0 1 1 1 1 0 0 1 +0 +1 0 0 1 0 1 0 0 1 1 1 0 1 +1 +1 0 0 1 0 0 0 1 0 0 1 1 1 +0 +1 1 0 0 0 1 0 0 1 0 1 1 0 +0 +0 0 0 0 0 1 1 1 0 1 1 0 1 +0 +1 1 0 1 1 0 0 1 0 1 0 0 1 +1 +1 1 0 1 0 0 1 0 1 0 1 0 0 +0 +1 0 0 1 1 1 0 1 0 0 1 1 0 +1 +1 1 0 1 0 1 1 1 0 1 0 0 0 +1 +1 1 1 0 1 0 1 0 1 0 1 0 0 +1 +0 0 0 1 0 0 1 0 0 0 0 1 1 +0 +1 0 1 1 1 1 1 0 0 1 1 0 1 +1 +0 0 0 1 1 1 1 1 1 1 0 0 1 +0 +0 0 1 0 0 1 1 0 0 0 0 0 1 +0 +1 1 1 1 1 1 1 0 0 1 1 1 0 +0 +0 1 0 1 0 1 1 0 0 0 0 0 1 +1 +1 0 0 1 0 1 1 1 1 1 1 1 1 +0 +1 0 1 1 0 1 0 1 0 1 1 1 1 +1 +0 1 1 0 0 0 1 1 0 0 0 1 0 +1 +0 1 1 0 0 1 1 0 0 0 1 0 1 +0 +1 1 0 0 1 1 0 1 1 0 0 0 1 +1 +0 1 0 1 0 1 1 1 1 1 0 1 1 +1 +1 1 1 0 1 0 1 0 1 1 0 1 0 +0 +1 0 0 0 0 1 1 0 1 0 0 1 0 +1 +1 0 1 0 0 1 1 1 1 0 1 0 0 +1 +1 0 1 0 1 0 0 1 1 1 1 1 1 +1 +0 1 0 1 1 1 0 1 1 1 1 0 0 +0 +0 0 0 0 1 1 1 0 1 1 0 0 0 +1 +0 0 0 0 1 1 0 0 0 0 1 1 0 +0 +0 1 1 0 1 1 1 0 0 0 0 1 0 +0 +0 1 0 1 1 0 1 0 1 1 1 1 0 +0 +0 0 1 1 0 0 1 1 1 1 0 0 0 +0 +0 0 0 0 1 0 1 0 1 0 1 1 1 +0 +1 1 0 1 1 0 0 0 0 1 0 0 1 +0 +1 0 1 1 1 0 0 1 0 0 0 0 0 +1 +1 1 1 0 1 1 0 0 0 1 0 0 1 +1 +1 1 0 1 0 0 1 0 1 0 1 0 1 +1 +1 1 1 0 0 0 0 1 0 1 0 0 0 +1 +1 0 0 0 1 1 1 0 1 0 0 0 1 +0 +0 0 0 1 0 1 0 0 1 1 0 0 1 +1 +0 1 1 0 0 1 1 1 0 0 0 0 1 +0 +1 1 0 1 1 1 0 0 1 1 0 1 0 +0 +1 0 0 0 0 0 0 1 0 0 0 1 0 +1 +1 0 0 1 1 1 1 1 1 0 1 0 1 +1 +0 0 1 1 0 0 1 0 1 1 1 0 0 +0 +0 0 0 1 0 0 0 1 0 0 0 1 1 +0 +0 0 1 0 0 0 0 1 1 0 0 0 0 +1 +0 0 1 1 0 1 1 0 0 1 1 0 0 +0 +0 1 0 1 0 1 0 1 1 0 1 0 0 +0 +0 0 1 0 1 0 0 0 0 0 1 0 0 +1 +0 1 1 0 0 0 1 1 0 0 1 0 1 +0 +1 1 0 0 1 0 1 1 0 1 1 1 1 +1 +0 0 0 1 0 1 1 1 0 0 0 0 0 +0 +0 0 0 1 1 1 1 0 0 0 0 1 1 +0 +1 0 0 1 0 0 1 0 1 0 0 0 0 +0 +0 1 0 0 1 1 0 1 1 1 1 1 0 +0 +1 0 1 0 1 1 0 1 0 1 0 1 0 +1 +0 0 1 0 0 0 0 0 1 1 1 0 0 +0 +1 0 0 0 0 1 0 1 1 0 1 1 1 +1 +0 0 1 1 0 0 1 1 1 0 1 0 1 +1 +1 0 0 0 1 0 0 1 0 0 0 0 0 +1 +1 0 1 1 1 1 0 0 1 1 1 1 0 +1 +1 1 0 0 0 1 1 0 1 0 1 0 0 +0 +0 0 0 0 1 0 1 0 1 0 1 1 0 +1 +1 1 0 0 0 0 1 1 1 1 1 1 1 +1 +0 0 0 1 1 0 0 1 1 1 1 0 0 +0 +1 0 1 1 0 1 0 0 1 0 0 0 1 +0 +0 1 1 1 0 0 0 0 1 0 1 0 1 +0 +0 1 0 1 1 0 0 0 0 0 0 1 0 +0 +0 0 1 1 0 0 1 0 1 0 0 1 1 +0 +1 0 1 1 0 0 1 1 1 0 1 0 1 +0 +1 1 0 0 0 0 1 0 1 1 1 1 1 +0 +0 1 0 1 1 1 0 0 0 1 1 0 1 +1 +0 0 1 1 1 0 1 1 1 0 0 0 1 +1 +1 0 1 1 1 1 0 0 1 0 1 0 1 +0 +1 0 1 1 0 1 1 1 1 0 0 1 1 +1 +0 1 1 1 1 1 0 0 0 0 0 1 1 +1 +1 0 1 1 1 0 1 1 0 0 1 0 1 +0 +1 0 0 1 0 0 1 1 0 1 0 1 1 +1 +0 0 0 0 1 1 0 0 1 1 0 0 1 +1 +0 0 0 0 1 0 0 1 1 1 1 0 1 +0 +1 0 1 1 1 1 0 0 0 1 1 0 1 +0 +0 0 0 1 1 0 0 0 0 0 1 0 1 +0 +1 1 0 0 0 1 0 0 1 1 1 0 1 +1 +0 0 1 0 0 1 1 1 0 1 1 0 1 +1 +1 1 1 0 1 1 0 1 0 1 0 1 1 +1 +1 0 1 0 0 0 0 0 1 0 0 0 1 +0 +0 1 1 0 1 0 0 0 1 1 1 1 0 +1 +1 1 1 0 0 0 0 1 1 1 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 1 0 0 1 +1 +0 0 1 1 0 0 1 0 0 0 1 0 1 +1 +1 1 0 1 1 1 1 0 0 1 1 0 0 +0 +0 1 0 1 0 1 0 1 0 0 0 1 0 +1 +1 0 1 0 0 1 1 0 0 1 0 0 1 +0 +0 0 0 1 1 1 0 0 0 0 0 1 1 +1 +1 0 1 1 0 0 0 0 0 0 1 0 0 +0 +0 0 0 0 1 1 1 1 0 0 0 0 1 +1 +1 0 1 0 1 0 0 0 0 0 0 1 1 +1 +0 1 1 1 0 1 1 0 1 1 0 0 0 +1 +0 0 1 0 0 0 0 1 0 0 1 0 1 +0 +1 1 1 0 0 0 0 0 0 1 1 0 1 +0 +0 1 0 1 1 1 0 0 1 0 1 0 0 +0 +0 0 0 1 0 1 0 0 1 0 1 1 0 +1 +0 0 1 1 1 0 0 1 1 0 0 0 1 +0 +0 1 1 0 1 1 0 1 1 0 1 0 1 +0 +1 1 0 0 0 0 1 0 1 0 1 0 0 +1 +1 1 0 0 0 0 0 1 1 0 0 1 0 +1 +0 0 0 0 1 1 1 1 0 1 0 1 1 +1 +0 1 1 0 1 0 0 1 0 0 0 0 1 +1 +1 0 0 1 0 0 1 0 0 1 1 1 1 +1 +0 1 0 0 1 1 1 1 1 1 0 0 1 +0 +1 1 0 1 0 1 1 1 0 1 1 1 1 +0 +0 0 1 0 0 1 1 0 0 1 0 0 1 +1 +0 0 1 0 1 1 0 1 1 1 0 1 0 +1 +1 0 1 1 1 0 0 1 0 0 1 0 0 +0 +1 1 0 1 0 1 1 1 0 0 1 1 0 +0 +0 1 1 1 0 0 0 1 1 1 1 0 1 +0 +0 1 1 1 1 1 1 1 0 0 1 0 1 +1 +0 0 1 1 0 0 0 1 1 1 0 0 0 +1 +1 0 0 0 1 1 1 1 0 1 1 1 0 +0 +0 0 0 1 1 1 1 1 1 0 0 1 0 +1 +1 0 1 0 0 1 1 0 0 1 1 0 0 +0 +1 0 1 1 0 0 0 0 1 0 0 1 0 +1 +0 0 0 0 0 1 0 1 0 0 1 0 0 +1 +1 0 1 1 0 0 1 0 0 1 1 1 0 +1 +0 0 1 0 0 1 1 1 1 0 0 0 1 +0 +1 0 0 1 1 1 0 0 0 0 1 1 0 +0 +0 1 1 1 0 1 1 1 0 0 1 0 0 +1 +1 0 0 0 1 0 0 1 0 1 1 0 1 +0 +0 0 0 0 0 0 1 1 1 0 0 0 0 +1 +1 1 1 1 1 1 1 0 0 1 0 1 1 +0 +0 1 1 1 0 1 1 0 0 0 1 1 1 +0 +0 0 0 1 1 0 1 1 1 0 1 0 0 +0 +1 1 1 1 0 1 0 1 1 0 1 0 1 +1 +0 0 0 1 0 0 1 0 0 0 0 1 0 +1 +0 1 1 1 0 1 0 0 1 0 0 0 1 +0 +0 0 0 1 0 1 0 1 1 0 1 0 0 +1 +0 1 1 1 1 1 1 1 0 1 1 1 0 +0 +1 1 1 0 0 1 0 1 1 0 0 1 1 +0 +1 0 0 0 1 0 1 1 1 0 0 1 1 +1 +0 1 0 0 0 1 0 1 0 0 1 0 1 +1 +1 1 0 1 0 0 0 1 1 0 1 1 1 +0 +0 0 1 1 1 1 1 1 0 0 0 0 1 +1 +1 0 1 0 0 0 0 0 1 0 0 1 1 +1 +0 1 1 1 0 0 0 1 1 0 0 0 0 +1 +0 0 0 0 0 1 0 0 0 0 1 1 0 +1 +0 1 1 0 1 1 1 0 0 0 0 0 1 +0 +1 1 0 0 0 0 1 0 1 1 0 1 1 +1 +0 1 1 1 1 1 0 0 1 1 0 1 0 +0 +1 1 0 0 0 1 0 1 0 0 1 1 1 +1 +1 0 0 1 0 1 0 0 1 0 1 1 1 +1 +1 0 1 1 0 0 0 1 0 0 1 0 0 +1 +1 1 0 0 1 0 1 0 1 0 1 1 1 +0 +0 1 0 1 0 0 1 0 1 1 0 1 0 +0 +1 1 1 1 0 0 0 1 1 1 0 1 1 +1 +1 0 1 1 0 1 1 0 0 1 1 1 0 +0 +1 1 1 0 1 0 1 0 1 1 1 1 1 +0 +0 1 1 1 0 0 0 1 0 0 1 1 1 +1 +1 0 1 0 0 0 0 1 0 0 1 0 1 +1 +0 0 1 0 0 0 1 1 0 1 0 0 0 +0 +0 1 0 0 0 1 1 0 1 0 0 1 1 +0 +1 0 1 0 1 0 0 1 1 1 0 1 0 +1 +1 0 0 1 0 0 0 0 0 0 1 0 1 +0 +0 1 1 0 0 0 0 0 1 0 1 0 0 +0 +0 1 0 0 0 1 1 0 0 0 0 1 1 +1 +0 0 1 1 0 1 1 1 1 1 0 0 1 +0 +1 1 0 0 0 1 0 0 1 1 0 0 0 +1 +1 1 1 0 1 1 0 1 0 0 1 1 0 +0 +0 1 0 1 0 1 0 1 0 0 1 1 0 +0 +1 0 1 0 1 1 0 1 0 0 0 0 1 +0 +1 0 0 1 0 0 1 0 0 0 0 1 0 +0 +1 0 1 0 1 1 1 0 0 1 0 0 1 +1 +1 0 0 0 0 1 1 1 0 0 1 1 0 +0 +1 1 1 1 0 0 1 0 1 0 0 1 0 +1 +1 1 0 0 1 0 1 1 1 1 0 0 0 +1 +1 1 1 1 1 0 0 0 1 1 0 0 0 +1 +0 1 1 0 1 0 0 0 1 0 1 1 0 +0 +1 1 0 1 0 1 1 1 1 1 0 1 1 +0 +0 1 1 0 0 0 1 0 0 1 1 1 0 +0 +0 0 1 0 1 0 1 1 1 0 1 1 0 +1 +1 1 1 0 0 1 0 0 0 1 1 0 1 +1 +0 1 0 0 0 0 0 1 1 1 1 0 1 +0 +0 1 1 1 0 1 1 1 1 1 1 1 1 +1 +1 1 1 0 0 0 1 1 1 0 1 1 0 +0 +0 1 0 0 0 1 1 0 1 1 0 1 1 +1 +0 1 1 1 1 1 1 0 1 1 0 1 1 +0 +1 0 0 0 1 0 0 0 1 0 0 1 0 +0 +1 0 0 1 1 1 0 1 0 1 0 1 1 +0 +1 0 1 0 1 0 1 0 0 0 0 0 1 +1 +0 1 0 1 0 0 0 1 1 0 0 1 1 +0 +0 0 1 0 0 1 0 0 1 0 1 1 0 +1 +0 1 1 1 0 0 1 1 1 1 0 1 0 +0 +0 0 0 1 0 1 0 0 1 0 0 0 0 +1 +0 0 1 1 0 1 0 0 0 0 1 0 0 +0 +0 0 0 1 1 0 0 1 0 1 1 1 0 +0 +1 0 0 1 1 1 0 0 1 1 1 1 1 +1 +0 1 1 0 0 0 1 1 0 1 1 1 1 +0 +1 0 1 0 0 0 1 1 1 1 1 1 1 +1 +0 1 1 0 0 1 0 0 0 1 0 1 1 +0 +0 1 0 0 1 1 1 1 0 1 1 0 0 +1 +0 1 1 0 0 0 0 0 0 0 0 1 1 +0 +0 0 0 0 1 1 1 0 0 1 1 1 0 +0 +1 1 1 1 1 0 0 0 0 0 0 0 0 +1 +0 0 0 0 1 0 0 0 1 0 0 1 1 +0 +1 0 1 1 0 1 0 0 1 0 0 1 1 +1 +1 1 1 1 1 1 1 1 1 0 1 0 1 +1 +0 0 1 1 1 1 0 0 0 0 0 0 1 +1 +1 0 1 0 1 1 1 0 0 1 0 1 1 +0 +1 0 1 1 1 1 1 0 1 1 1 0 0 +1 +1 1 1 1 0 1 1 0 0 0 1 1 1 +1 +1 1 0 0 0 0 1 1 0 0 0 1 0 +1 +0 0 1 1 1 0 0 0 0 1 1 1 0 +0 +0 0 1 1 1 0 0 0 0 1 0 1 1 +0 +1 1 1 0 1 1 0 1 1 1 0 1 0 +1 +0 1 1 1 0 0 1 0 1 1 0 0 0 +0 +1 1 0 0 1 1 0 0 0 1 0 1 1 +1 +0 0 1 0 0 1 1 1 1 0 0 1 1 +1 +0 0 0 0 0 1 1 1 0 1 0 0 0 +0 +1 0 0 1 1 1 0 0 1 0 1 1 1 +0 +1 1 1 1 0 1 0 1 0 0 0 0 0 +0 +0 0 0 1 1 0 1 0 1 0 0 1 0 +1 +1 0 0 0 1 1 1 0 0 1 1 0 0 +0 +1 1 1 1 0 0 0 0 1 0 1 1 0 +1 +1 0 1 1 1 1 0 1 1 0 0 0 0 +1 +1 1 1 0 1 1 0 1 0 1 1 1 1 +0 +0 1 0 0 0 0 1 0 1 0 0 1 1 +1 +1 0 0 1 1 1 1 1 0 1 1 0 1 +1 +1 1 1 0 0 0 0 0 1 1 1 1 0 +1 +0 0 0 1 0 1 1 0 0 1 1 0 0 +1 +1 1 0 1 0 1 0 1 1 0 1 0 0 +1 +1 1 1 0 1 0 0 1 1 1 1 0 0 +0 +1 0 0 1 1 0 1 0 1 1 1 1 0 +0 +0 0 1 0 0 1 1 0 1 0 1 0 1 +0 +0 1 0 0 1 1 1 0 0 1 1 0 1 +1 +0 0 1 0 1 1 1 1 0 0 0 0 0 +1 +0 1 1 0 1 0 1 1 1 0 1 1 1 +1 +0 0 0 1 1 0 1 1 0 0 1 0 0 +1 +1 0 0 0 1 1 0 0 0 1 0 0 0 +0 +0 0 1 0 1 0 1 0 0 0 1 1 1 +0 +1 0 0 0 1 0 0 1 0 0 1 0 0 +0 +1 1 0 1 0 1 0 1 0 1 1 1 1 +1 +0 0 1 0 0 0 0 1 0 0 0 0 0 +0 +1 1 0 1 0 1 0 1 0 1 0 0 1 +1 +1 0 0 1 1 1 1 1 0 0 1 0 0 +1 +0 0 1 0 0 1 0 1 0 1 0 1 0 +1 +0 1 1 0 1 1 0 0 1 1 1 0 0 +1 +1 1 0 0 1 1 0 1 0 0 1 1 1 +0 +1 0 0 1 1 0 1 1 0 0 0 1 0 +0 +1 0 1 0 0 1 1 1 0 1 0 0 1 +1 +1 1 0 1 0 0 1 1 0 0 1 0 0 +0 +1 0 0 0 1 0 0 0 1 1 0 0 1 +1 +1 0 1 0 1 0 1 1 1 0 0 0 1 +1 +0 1 0 0 0 0 0 0 0 1 1 1 0 +0 +1 1 0 1 0 0 0 1 1 0 1 0 1 +1 +0 1 0 1 1 0 1 1 0 0 1 0 0 +0 +0 0 1 1 1 0 1 1 0 0 1 0 0 +0 +1 1 0 0 0 0 1 1 1 0 1 1 0 +1 +1 1 0 0 0 0 0 0 0 0 1 1 0 +0 +0 1 0 1 0 0 0 0 0 0 1 0 1 +0 +1 0 1 0 1 1 1 1 0 1 1 1 0 +1 +0 0 1 0 1 1 0 1 0 1 0 1 1 +1 +1 0 0 0 1 1 1 0 1 1 1 1 1 +1 +0 0 1 1 1 1 0 1 1 0 1 0 0 +1 +1 1 1 1 1 1 1 0 1 1 0 1 1 +1 +0 0 0 1 1 1 0 1 0 0 1 1 0 +0 +1 0 0 1 1 0 1 1 0 0 1 1 1 +0 +0 1 1 0 0 1 1 0 0 0 1 1 0 +0 +1 1 1 1 0 0 1 1 1 1 0 0 0 +0 +1 1 1 1 1 0 1 1 0 0 1 1 0 +1 +1 0 0 1 0 1 1 1 1 0 1 0 1 +0 +0 0 1 0 1 1 0 1 0 0 0 0 1 +1 +0 0 1 0 0 1 0 1 0 0 0 1 0 +0 +1 1 0 0 1 0 1 0 0 0 1 0 1 +0 +1 0 1 0 1 1 0 0 0 0 1 0 1 +0 +1 1 1 0 1 0 1 1 1 0 1 0 1 +1 +0 1 0 1 1 0 1 1 0 1 1 1 0 +0 +0 0 1 1 1 0 0 0 0 0 0 0 1 +0 +0 1 0 1 0 1 1 0 1 1 0 0 0 +0 +1 0 1 0 1 0 1 0 1 1 1 0 0 +1 +0 0 1 0 1 1 1 0 1 0 1 0 1 +1 +1 1 1 0 1 1 1 0 1 0 0 1 0 +0 +1 0 1 0 1 1 1 0 0 0 0 0 0 +1 +1 0 1 0 1 0 0 0 1 1 0 1 0 +0 +1 0 0 1 0 0 0 0 1 1 1 1 0 +0 +0 0 0 0 0 0 0 0 1 0 0 1 0 +0 +0 0 0 1 1 0 1 0 0 0 0 0 1 +0 +1 0 1 0 1 0 1 0 1 0 1 0 0 +0 +0 0 1 0 0 0 1 1 1 1 1 0 0 +0 +0 1 1 0 0 1 0 0 0 1 1 0 1 +0 +1 1 0 1 0 0 0 1 1 1 1 1 1 +1 +0 1 0 1 0 0 1 0 1 0 1 0 0 +1 +1 0 0 0 0 1 1 1 1 0 0 1 1 +1 +0 1 1 1 1 0 1 1 1 0 0 0 0 +1 +0 1 0 1 1 0 1 1 1 0 1 1 0 +0 +0 0 0 1 0 1 0 0 0 1 0 0 1 +0 +1 1 1 1 1 0 1 1 1 1 0 1 0 +0 +0 0 0 1 0 1 0 0 1 1 0 1 0 +1 +1 0 1 0 1 0 1 1 0 0 1 1 0 +1 +0 0 0 0 1 1 1 0 1 1 1 1 0 +1 +0 1 1 1 0 1 1 1 0 1 1 1 1 +0 +0 1 1 1 0 1 0 1 0 1 1 1 0 +0 +1 0 0 1 1 1 1 1 0 0 0 0 1 +1 +0 1 1 0 1 0 1 0 0 1 1 0 1 +1 +0 0 0 1 0 1 0 1 1 1 0 0 0 +1 +1 1 0 1 1 0 1 0 1 0 0 1 0 +1 +0 1 0 1 1 1 0 0 1 0 1 1 0 +1 +0 0 0 1 1 1 0 0 0 1 0 0 0 +0 +0 1 0 1 0 1 1 0 1 0 1 1 0 +1 +0 1 1 1 1 1 1 0 1 1 1 1 1 +1 +1 1 1 1 0 0 1 0 1 0 1 1 0 +0 +1 0 1 0 1 1 0 0 1 1 1 1 0 +0 +0 0 1 0 0 0 1 0 0 1 1 1 1 +0 +1 1 1 0 0 1 0 1 1 1 1 1 0 +1 +1 0 1 1 1 0 0 0 0 1 1 0 1 +1 +1 0 1 1 0 0 1 0 1 0 1 1 0 +1 +1 1 0 1 1 0 0 0 1 0 1 0 1 +1 +1 1 1 0 1 1 0 0 0 1 0 1 0 +1 +1 0 1 0 0 1 0 0 1 0 1 0 1 +0 +0 1 0 1 0 1 0 1 1 0 0 0 0 +1 +0 0 1 1 0 1 0 1 1 1 0 0 1 +1 +0 0 1 0 1 0 0 0 0 0 0 1 0 +1 +1 1 0 1 1 1 0 0 1 0 0 0 0 +0 +0 1 1 0 0 1 1 1 0 1 1 0 0 +1 +0 1 1 1 0 1 0 0 1 1 0 0 1 +1 +0 0 1 1 1 0 0 0 1 0 1 1 0 +0 +0 0 0 1 1 0 1 1 0 0 1 1 1 +1 +1 1 1 0 0 1 1 1 1 1 0 1 0 +1 +0 1 1 1 1 1 1 1 1 0 0 0 0 +0 +1 0 0 0 1 0 0 0 1 0 0 1 1 +1 +0 1 1 0 0 1 0 0 1 0 0 1 0 +1 +0 1 1 1 0 0 0 0 1 0 1 0 0 +1 +1 1 1 0 0 0 1 0 0 1 0 0 1 +0 +1 0 1 0 0 0 1 1 0 0 0 1 1 +0 +1 1 1 0 1 1 1 1 0 0 1 1 0 +1 +0 0 1 1 0 1 1 0 0 0 0 0 0 +0 +0 0 0 1 0 0 0 1 0 0 0 1 0 +1 +1 1 0 1 0 1 1 0 1 0 1 1 1 +1 +1 0 1 1 0 0 0 0 0 0 0 1 1 +1 +0 0 1 0 0 0 1 1 1 0 0 0 1 +1 +1 1 1 0 1 1 1 1 0 1 0 0 0 +0 +1 1 1 1 1 0 0 1 0 0 1 1 1 +1 +1 0 1 1 1 1 1 0 0 1 1 1 0 +1 +1 0 1 0 1 0 1 0 0 1 0 0 1 +0 +1 0 1 1 1 1 1 0 0 0 0 1 1 +0 +1 1 0 0 0 1 0 1 1 1 0 0 1 +1 +1 1 1 1 0 0 0 1 1 1 0 1 0 +0 +1 1 1 1 1 1 1 0 0 1 1 0 1 +0 +1 0 1 1 1 0 0 0 1 1 1 0 1 +0 +0 0 1 1 1 1 0 1 0 1 1 1 0 +0 +0 1 1 0 1 1 0 1 1 0 0 0 1 +1 +0 0 0 0 0 1 1 1 1 0 1 1 1 +1 +1 1 0 0 0 0 1 0 0 0 1 1 1 +0 +0 1 0 0 1 0 1 1 0 0 1 0 0 +1 +1 0 0 1 0 1 0 1 1 1 0 0 1 +1 +1 1 1 0 0 1 1 0 1 0 1 0 1 +0 +0 0 0 1 1 0 1 0 0 0 0 1 1 +1 +0 1 1 0 0 0 0 0 0 1 0 0 0 +1 +0 1 1 1 1 1 0 0 1 0 1 0 0 +1 +0 0 1 0 0 1 0 0 0 1 0 0 0 +1 +0 1 1 0 0 1 1 0 0 1 1 1 0 +1 +1 1 1 1 1 1 1 0 0 1 0 0 0 +0 +0 1 0 0 0 0 0 1 0 1 0 0 0 +1 +0 1 1 0 0 0 1 0 1 0 1 1 0 +0 +1 1 0 0 1 0 1 0 1 1 1 1 0 +0 +0 0 0 1 0 1 1 0 1 0 0 0 1 +1 +1 1 0 0 1 0 1 1 0 1 0 1 1 +0 +1 1 1 0 1 0 0 1 1 0 0 0 0 +0 +0 1 0 0 0 0 1 0 1 1 1 1 0 +0 +0 1 0 0 0 0 0 0 0 1 0 1 1 +0 +0 1 1 0 0 1 0 0 0 0 0 1 1 +1 +1 0 0 1 1 0 0 1 1 1 1 1 0 +0 +0 0 1 1 1 0 0 1 0 1 0 0 1 +0 +1 0 0 1 1 0 0 0 1 0 1 0 0 +1 +1 1 1 1 0 0 1 1 0 1 0 0 1 +0 +0 1 1 1 1 0 0 1 1 0 1 1 1 +1 +0 1 0 1 0 0 1 0 0 1 1 1 0 +0 +0 0 1 0 0 0 1 0 1 0 0 1 1 +1 +0 1 1 1 0 0 0 0 1 1 0 0 1 +0 +0 0 0 0 0 0 1 0 0 1 0 1 0 +1 +0 1 1 0 0 1 1 1 1 0 1 0 0 +1 +0 1 1 1 0 0 1 1 1 1 0 1 1 +1 +0 0 1 1 0 1 0 0 1 1 0 0 0 +1 +0 1 1 0 0 0 0 0 1 0 0 1 1 +1 +1 1 0 1 1 0 1 0 1 0 1 1 1 +1 +0 1 0 1 0 1 1 0 1 0 1 0 0 +0 +1 0 1 0 0 0 1 1 0 0 1 0 1 +0 +0 0 1 0 1 1 0 1 0 1 0 0 1 +0 +0 1 1 1 1 0 1 1 1 1 0 1 0 +1 +1 0 0 1 0 0 1 0 1 1 0 0 1 +0 +1 1 1 0 1 0 0 1 1 1 1 0 1 +1 +0 0 0 1 1 1 0 1 0 0 0 1 1 +0 +1 1 0 1 0 0 1 0 1 0 0 0 1 +0 +0 0 0 0 1 0 0 1 1 1 0 1 0 +1 +0 1 0 1 0 0 1 1 0 1 1 0 1 +1 +1 1 0 1 1 0 1 1 1 1 0 1 1 +0 +1 0 1 0 1 1 1 1 0 1 0 1 1 +1 +1 1 1 1 1 1 0 0 1 0 0 1 0 +0 +1 1 0 1 0 0 0 0 0 1 0 0 1 +1 +1 0 0 0 1 1 1 1 0 1 0 1 1 +0 +0 1 1 0 0 1 0 0 1 0 0 0 1 +1 +1 0 1 1 1 1 0 1 1 1 0 0 0 +0 +0 1 1 0 1 0 1 1 1 1 1 1 1 +0 +0 1 0 1 0 1 0 1 1 1 1 0 0 +1 +1 1 1 0 1 1 1 1 1 0 1 0 0 +1 +1 1 0 1 0 0 0 0 1 0 0 1 0 +1 +1 0 1 0 0 0 1 0 1 1 1 0 1 +1 +0 1 0 0 0 1 1 0 0 1 0 1 1 +0 +0 0 0 0 1 0 0 0 1 0 0 0 0 +0 +0 0 1 0 1 1 1 0 0 0 0 0 1 +1 +1 1 0 1 1 1 1 0 0 1 1 1 1 +0 +0 0 0 0 1 1 1 0 1 0 1 1 1 +1 +1 0 0 0 0 1 0 0 1 0 1 0 1 +1 +0 0 0 1 0 1 0 1 1 0 0 0 1 +1 +1 1 1 0 1 1 1 0 0 1 1 0 1 +1 +1 1 0 0 0 0 0 0 0 1 0 1 0 +0 +0 0 1 1 0 0 1 1 0 0 1 1 1 +1 +0 1 0 0 1 0 0 0 1 1 0 0 0 +0 +0 1 0 1 1 0 0 0 0 1 1 1 0 +0 +0 1 1 1 1 1 1 0 1 1 0 1 0 +1 +0 1 0 0 1 0 1 1 0 0 0 0 1 +1 +0 0 0 0 1 0 0 0 1 0 0 1 0 +1 +0 0 0 1 1 1 1 0 1 0 0 0 0 +1 +0 1 1 0 1 0 1 0 0 0 0 1 1 +0 +0 0 0 1 1 0 0 0 0 0 0 1 1 +0 +0 0 1 1 0 1 1 1 1 0 0 0 1 +1 +0 1 0 1 1 0 1 0 1 1 1 0 1 +0 +1 1 1 0 1 0 0 0 1 0 0 0 1 +0 +1 0 1 0 0 1 0 0 0 0 0 1 1 +1 +0 0 0 0 1 1 1 1 0 1 1 0 1 +1 +1 0 0 0 1 0 0 1 1 1 0 1 0 +0 +1 0 0 0 0 1 1 1 1 1 0 0 0 +0 +0 0 0 0 1 0 0 0 0 0 1 1 1 +0 +1 1 0 1 0 0 0 1 0 0 0 0 1 +1 +1 1 1 0 0 0 1 0 1 1 0 1 1 +0 +0 0 0 0 1 1 0 1 0 0 0 1 0 +0 +1 0 1 1 1 0 1 0 0 1 1 1 1 +1 +0 0 1 1 1 0 1 1 0 0 0 0 1 +0 +0 0 1 0 1 1 0 1 0 1 0 0 0 +1 +0 0 1 0 1 0 0 1 1 1 1 0 0 +0 +0 1 1 0 1 1 1 1 0 1 0 1 0 +0 +0 0 1 1 0 0 0 0 1 0 0 0 0 +1 +0 0 0 0 1 1 1 1 1 0 0 0 0 +1 +1 1 1 0 1 0 1 1 0 1 1 1 1 +0 +1 1 0 1 1 1 1 0 1 0 1 0 1 +1 +0 1 1 0 1 0 1 0 0 1 1 1 0 +1 +1 0 1 0 0 1 1 0 1 1 0 0 0 +0 +0 1 0 1 1 1 1 1 0 1 0 0 1 +0 +1 0 1 1 1 0 1 1 1 1 1 0 1 +0 +1 1 0 0 1 0 0 0 0 0 0 1 0 +0 +1 1 1 0 1 1 0 0 1 0 0 0 1 +1 +0 0 0 0 0 0 0 1 1 1 1 1 0 +1 +0 0 0 1 0 0 0 0 1 1 0 1 1 +1 +1 0 0 1 0 0 0 1 1 1 1 1 0 +1 +0 0 0 0 1 0 0 0 0 0 1 1 0 +1 +0 1 0 1 0 0 1 1 1 0 0 0 0 +1 +1 0 0 1 1 0 0 1 1 1 0 1 1 +0 +1 0 0 0 1 0 0 0 1 1 1 0 1 +0 +1 1 1 1 1 0 1 1 0 1 1 0 1 +0 +1 0 1 0 1 1 1 0 1 0 0 0 1 +1 +1 1 0 0 1 1 1 0 1 1 1 1 0 +1 +1 0 0 1 1 0 0 1 0 1 0 0 1 +0 +0 1 0 1 0 0 0 1 1 1 1 1 0 +1 +0 0 0 1 0 0 0 0 1 0 1 0 0 +1 +1 0 0 0 0 0 1 1 0 0 1 0 0 +0 +1 1 1 0 0 0 1 0 0 0 1 1 0 +0 +0 0 1 0 0 1 1 0 0 1 0 1 0 +1 +0 0 0 1 1 1 0 0 0 1 0 0 1 +1 +1 0 1 1 1 0 1 0 1 1 1 1 0 +1 +1 1 1 0 0 1 0 0 0 1 0 1 0 +0 +1 1 0 0 1 0 0 1 1 0 0 1 1 +1 +0 1 1 1 1 1 1 0 1 1 1 1 0 +0 +0 1 1 0 1 0 0 0 1 1 0 0 1 +0 +1 1 1 1 1 1 0 0 1 1 0 1 1 +0 +0 0 1 1 0 1 1 1 0 1 0 1 0 +1 +0 0 1 1 0 1 0 0 0 1 1 1 0 +0 +0 0 0 1 0 0 1 1 1 0 0 0 0 +0 +0 1 1 1 1 0 1 0 1 0 0 1 0 +1 +0 0 1 1 1 0 1 1 0 1 0 0 0 +0 +1 1 1 1 1 0 0 1 1 0 1 0 0 +0 +0 0 0 1 0 0 0 1 1 1 1 1 0 +0 +1 0 1 1 1 1 1 0 0 1 0 0 1 +0 +1 0 1 1 1 0 1 1 0 0 0 1 0 +1 +1 1 0 1 0 1 1 1 0 0 1 1 1 +1 +0 1 1 1 0 1 0 1 0 1 0 0 1 +1 +0 0 1 1 0 1 0 1 1 1 0 1 1 +0 +0 1 1 0 0 0 0 1 0 0 0 1 0 +0 +0 0 0 1 0 1 1 1 1 0 0 0 0 +1 +0 0 0 1 1 1 1 0 0 1 1 0 1 +1 +0 0 0 0 0 1 0 1 0 0 1 1 0 +0 +1 0 0 0 0 0 0 0 0 0 0 1 1 +1 +0 1 1 1 1 0 0 1 0 0 1 1 1 +0 +0 1 0 0 1 1 1 0 0 0 1 0 1 +0 +1 0 0 0 1 1 0 0 1 0 0 1 1 +0 +1 0 1 0 0 0 0 0 0 1 0 1 1 +1 +1 1 1 1 1 0 0 1 0 0 1 0 1 +0 +1 1 1 0 0 0 1 0 1 1 1 0 0 +1 +1 0 0 1 1 0 0 0 1 0 1 1 1 +1 +0 0 1 0 1 1 1 0 0 1 0 1 0 +0 +1 1 1 0 1 0 0 0 0 0 1 0 1 +0 +0 0 1 0 0 0 1 0 1 1 1 0 0 +1 +1 0 0 1 1 1 0 0 0 1 0 0 0 +1 +0 1 1 1 0 1 1 0 0 1 0 1 0 +1 +1 0 0 0 0 1 1 0 1 1 0 1 0 +0 +1 1 0 1 1 1 0 1 0 0 0 1 0 +1 +1 0 0 1 0 0 0 1 0 1 0 0 1 +1 +1 0 1 1 1 0 1 0 0 1 1 0 1 +0 +0 1 0 0 0 0 1 1 1 0 0 1 0 +1 +0 0 1 1 0 0 0 1 1 1 1 0 1 +1 +0 0 1 0 0 0 0 1 1 1 1 0 1 +0 +1 0 0 0 0 0 0 1 0 1 0 1 1 +1 +1 0 1 0 0 0 0 1 1 1 1 0 0 +0 +0 0 1 0 0 0 1 0 0 0 0 1 0 +1 +0 0 1 1 1 0 0 1 0 0 1 0 1 +0 +1 0 1 0 0 1 0 1 1 0 0 0 1 +0 +0 0 1 1 0 1 0 1 1 0 1 1 0 +1 +0 0 0 1 0 0 0 1 1 0 1 0 1 +1 +0 1 0 0 0 0 1 0 1 1 0 0 1 +1 +1 0 0 0 1 1 0 1 1 0 0 0 0 +1 +1 1 0 0 1 1 0 0 1 0 1 1 0 +1 +0 1 1 1 1 1 0 0 1 0 0 0 1 +1 +1 1 0 1 0 1 0 0 1 1 0 0 1 +1 +1 0 0 0 0 0 1 1 1 0 1 0 1 +0 +1 0 1 0 1 1 1 1 0 1 1 0 0 +0 +1 0 1 0 0 0 0 0 1 1 0 0 1 +1 +1 1 0 0 1 0 0 0 0 0 1 1 1 +0 +1 1 0 1 1 1 0 1 1 0 0 1 1 +1 +0 1 1 1 1 1 1 0 1 0 1 0 0 +0 +1 0 0 0 1 1 1 1 1 1 0 0 1 +0 +0 1 0 1 0 0 0 1 0 1 1 0 0 +1 +0 1 0 1 1 0 1 0 0 1 0 1 0 +0 +0 0 0 1 0 0 0 0 0 0 1 0 0 +0 +1 1 1 0 1 1 1 0 0 0 0 1 1 +0 +0 0 0 1 0 1 0 1 1 1 0 1 1 +1 +0 0 1 0 1 0 0 1 1 0 1 1 1 +1 +1 0 0 0 0 0 0 0 1 0 1 0 1 +0 +0 0 0 0 0 1 0 0 1 0 0 0 0 +0 +1 0 0 1 1 1 0 0 1 0 1 0 1 +1 +0 1 0 0 0 1 0 1 1 0 0 0 0 +0 +0 1 1 0 0 0 1 0 1 1 0 0 1 +0 +0 0 0 0 1 0 0 1 0 0 1 1 0 +0 +1 1 1 1 0 1 0 1 1 1 1 0 0 +1 +0 1 0 0 1 0 0 0 1 0 0 1 1 +1 +0 1 0 1 0 1 0 1 1 0 0 1 1 +1 +1 0 1 1 0 0 1 1 0 1 1 0 0 +1 +1 1 1 0 1 1 1 0 0 1 1 1 1 +0 +1 0 0 0 1 1 1 0 0 1 0 0 0 +1 +0 0 1 1 1 1 0 1 0 0 0 0 1 +0 +0 1 1 1 1 1 0 1 0 0 1 1 0 +0 +1 0 0 0 1 0 0 1 1 0 0 1 0 +1 +1 0 1 1 1 0 0 0 1 0 1 1 1 +0 +0 0 1 1 0 0 0 0 1 1 1 1 1 +1 +0 0 1 0 1 1 1 1 1 1 1 1 1 +0 +0 0 0 0 1 1 1 1 1 0 0 1 1 +1 +1 0 0 1 0 1 1 1 0 1 0 1 0 +1 +0 1 1 0 1 0 0 0 0 1 0 0 1 +1 +1 0 1 0 0 0 1 0 1 1 1 0 0 +0 +0 0 0 1 1 1 1 0 0 1 0 1 1 +1 +1 0 0 1 0 1 0 0 0 1 0 1 1 +0 +1 1 1 0 1 1 1 1 0 0 1 0 1 +1 +0 0 1 0 0 0 1 0 1 1 1 0 1 +0 +0 1 0 0 0 0 0 1 1 0 1 0 0 +0 +0 0 1 0 0 1 1 0 1 1 0 1 1 +1 +0 1 0 1 1 1 1 1 0 0 0 0 1 +1 +1 1 0 0 0 1 1 0 0 1 1 1 0 +1 +0 0 0 1 1 1 1 1 0 0 1 0 0 +0 +0 1 1 1 0 0 0 1 1 0 0 1 0 +0 +0 0 1 0 1 1 0 0 1 1 0 1 0 +0 +0 1 0 1 1 1 1 0 1 1 1 1 0 +1 +1 0 1 1 0 0 1 0 1 0 1 0 1 +1 +1 1 0 0 0 1 1 1 0 0 1 1 0 +1 +0 1 1 0 1 1 0 1 0 0 1 0 0 +0 +1 1 1 1 1 0 0 1 0 1 1 0 1 +1 +0 1 1 0 0 1 0 0 1 1 1 1 0 +1 +1 0 0 0 1 0 1 0 1 1 0 0 0 +1 +0 0 1 1 1 1 1 1 1 0 1 1 1 +0 +1 1 1 1 1 1 1 1 0 1 0 1 1 +1 +1 0 0 0 1 1 0 1 1 0 0 1 1 +1 +0 1 1 0 0 1 1 1 0 1 0 1 1 +0 +1 1 0 1 0 1 1 0 1 1 0 1 1 +1 +1 0 0 1 0 1 0 1 0 0 0 0 0 +0 +0 0 1 0 0 1 1 1 0 0 1 0 0 +1 +1 1 1 0 1 1 1 0 0 1 0 1 1 +1 +0 1 0 1 1 0 1 1 0 0 0 1 1 +1 +0 0 0 0 0 1 0 1 0 1 1 0 1 +1 +1 1 0 0 0 1 1 1 0 0 0 1 1 +1 +0 1 1 1 0 0 0 0 0 0 1 1 0 +1 +1 1 1 1 1 0 0 0 0 1 1 0 1 +0 +1 0 1 1 0 1 1 1 1 0 0 0 1 +0 +1 0 1 1 0 1 0 0 0 1 1 1 1 +0 +1 1 1 1 0 1 0 0 1 0 1 0 1 +0 +0 0 1 0 1 0 1 1 1 0 0 0 1 +0 +0 0 0 1 0 1 1 1 0 0 0 0 1 +1 +0 0 1 0 0 1 0 1 0 1 0 0 0 +0 +0 1 0 0 1 0 1 1 0 0 0 0 0 +0 +0 1 0 1 0 0 0 0 0 1 1 0 0 +0 +0 0 0 1 1 0 1 0 0 0 1 1 0 +1 +1 0 0 1 0 0 0 1 1 0 0 0 1 +1 +1 0 0 1 0 0 0 1 1 1 0 1 0 +0 +0 0 1 0 0 0 1 1 0 0 1 0 1 +1 +1 0 0 1 0 1 0 0 0 0 1 0 0 +0 +1 0 1 0 1 1 0 0 0 1 1 1 1 +0 +1 0 0 1 1 1 1 1 1 1 1 0 0 +1 +1 0 1 0 0 0 1 0 1 1 0 0 0 +1 +0 0 1 0 1 0 0 1 0 0 0 0 0 +1 +0 0 1 0 0 0 1 1 1 1 0 1 1 +1 +1 0 0 0 0 1 0 1 1 1 0 0 0 +1 +1 1 0 0 1 1 0 0 0 0 0 0 0 +0 +0 1 0 1 0 0 0 0 1 1 0 0 0 +0 +1 1 1 0 1 1 1 0 1 0 0 0 0 +1 +1 1 0 0 0 1 1 0 0 1 1 0 1 +1 +1 1 0 0 1 0 0 1 0 1 0 0 0 +1 +0 0 1 0 1 0 0 1 0 1 1 1 0 +0 +0 0 1 1 1 0 1 0 0 1 1 0 0 +0 +1 1 0 0 0 0 1 0 0 1 0 0 1 +1 +1 0 1 0 0 1 0 1 0 0 0 1 0 +1 +0 0 0 1 0 0 1 0 1 0 1 0 1 +1 +0 1 1 0 1 0 0 0 0 1 0 0 0 +0 +0 0 1 1 1 1 0 0 1 0 1 1 0 +1 +1 0 1 0 0 0 0 1 0 0 1 1 0 +1 +1 1 1 0 1 1 0 1 1 1 1 1 0 +0 +1 0 0 0 0 0 0 0 0 0 0 0 0 +1 +1 0 1 0 1 0 1 0 1 0 0 0 1 +0 +1 0 0 1 0 1 0 0 1 0 0 1 1 +0 +1 0 1 1 0 0 0 0 0 0 0 0 0 +1 +1 1 1 1 0 1 1 1 1 0 0 0 0 +0 +1 1 1 1 1 1 0 0 1 1 0 0 1 +1 +0 1 0 1 0 0 1 0 1 1 0 1 1 +1 +0 1 1 1 1 1 0 1 1 1 1 1 1 +1 +0 0 0 0 0 1 0 0 1 1 1 1 0 +1 +0 0 1 1 0 1 1 0 1 1 0 1 1 +0 +1 1 0 0 0 0 1 1 0 0 1 1 1 +1 +0 1 0 0 0 0 0 0 1 0 0 1 1 +0 +1 1 0 1 0 1 0 1 1 1 1 0 1 +1 +0 0 1 0 1 0 0 0 0 0 0 0 0 +0 +0 0 0 1 1 0 1 1 0 0 1 1 0 +0 +1 1 0 0 0 1 1 1 1 0 1 0 1 +0 +0 1 1 0 0 0 0 1 1 0 1 1 0 +0 +1 1 1 1 1 1 1 1 0 0 0 0 0 +0 +0 0 0 1 1 1 1 0 0 1 0 0 1 +0 +1 0 1 0 0 0 0 0 0 0 1 1 1 +1 +1 0 0 1 0 0 0 1 1 1 0 0 0 +1 +1 1 1 1 1 0 1 1 1 0 0 1 1 +0 +0 1 1 0 1 1 1 1 1 1 1 0 0 +1 +1 1 1 0 0 1 1 1 0 0 1 1 1 +1 +0 1 0 1 0 1 0 0 0 0 0 1 1 +1 +0 0 1 1 0 1 1 0 0 1 1 0 1 +1 +1 0 0 0 1 1 1 1 1 1 0 0 0 +1 +0 0 1 0 0 0 0 0 1 1 0 1 0 +0 +1 0 0 0 0 0 1 1 1 1 1 1 0 +1 +1 0 0 0 1 0 1 1 1 1 1 1 0 +0 +1 0 1 0 1 1 0 1 0 0 0 1 0 +0 +1 0 0 1 1 1 1 0 0 1 0 1 1 +0 +1 0 0 1 1 0 0 0 1 0 1 1 0 +0 +0 0 0 0 1 1 0 0 0 1 1 0 0 +0 +1 0 0 0 1 1 0 1 1 1 0 1 0 +1 +1 1 1 1 0 1 0 0 1 0 0 0 0 +0 +1 1 0 0 0 1 1 0 0 1 1 0 0 +0 +1 1 0 0 1 0 0 1 0 0 0 0 0 +0 +0 0 0 1 1 0 0 0 1 0 1 1 1 +0 +0 0 1 1 0 1 1 1 1 1 0 0 0 +1 +0 0 0 0 0 0 0 1 0 1 1 1 0 +0 +0 1 0 1 0 0 0 1 0 1 1 0 1 +0 +1 1 0 0 1 1 0 1 0 0 0 1 0 +0 +0 1 0 0 1 1 1 1 0 0 0 0 0 +1 +0 0 1 1 0 0 0 0 0 1 0 1 0 +0 +1 1 0 0 1 1 1 1 1 1 0 0 0 +0 +0 1 0 0 1 1 0 0 0 0 1 1 0 +1 +1 0 0 1 0 1 1 0 1 0 1 0 0 +0 +0 1 0 1 1 0 1 0 0 0 0 0 1 +1 +0 0 1 1 0 0 1 1 0 0 1 0 0 +1 +1 1 0 0 0 0 1 1 1 1 1 0 0 +1 +1 1 0 0 0 1 0 0 0 1 0 0 1 +1 +1 1 0 1 1 0 0 0 1 0 1 1 1 +0 +0 1 0 1 1 1 0 0 0 1 0 0 1 +0 +1 1 1 0 0 0 0 1 0 1 1 0 1 +1 +0 0 0 0 0 1 0 0 1 1 0 0 0 +1 +1 0 1 0 1 1 1 1 1 1 1 1 1 +1 +1 0 0 0 0 1 1 1 0 0 0 0 0 +0 +0 1 1 1 1 0 1 0 0 1 1 0 0 +1 +1 1 1 1 0 0 1 1 1 1 0 1 1 +0 +1 1 0 0 0 0 0 0 1 0 0 0 1 +0 +1 0 0 0 0 0 1 1 0 0 0 0 0 +1 +1 1 1 1 1 1 0 0 0 1 0 0 0 +1 +0 0 0 0 0 1 1 0 1 0 1 0 1 +1 +0 1 1 0 0 0 0 1 0 0 1 1 0 +1 +0 0 0 0 1 0 1 1 0 0 0 1 1 +1 +0 0 1 0 0 0 1 1 1 1 1 1 0 +1 +1 0 1 1 0 0 1 0 0 1 1 0 0 +0 +1 1 1 0 1 0 1 0 1 0 0 1 1 +0 +0 0 0 1 0 0 1 0 0 0 1 1 0 +0 +0 0 0 0 1 0 0 0 1 0 1 1 1 +1 +1 0 0 1 1 1 0 0 0 0 1 0 1 +0 +1 0 0 1 0 1 0 0 0 0 1 1 1 +0 +0 1 0 1 0 0 1 0 0 1 0 1 1 +0 +1 0 0 0 0 1 0 1 1 1 1 0 1 +1 +1 1 1 0 1 1 0 0 0 1 1 1 1 +1 +0 1 1 0 1 0 0 1 0 1 1 0 0 +0 +0 0 1 0 1 1 0 1 1 1 0 0 1 +1 +0 0 1 0 0 0 0 0 1 0 1 0 0 +1 +1 0 0 1 0 0 1 1 1 1 1 1 1 +1 +0 1 1 0 0 1 0 0 0 0 0 0 0 +1 +0 1 0 1 1 0 1 0 0 1 1 1 0 +1 +0 1 1 1 1 1 1 1 0 1 0 0 0 +0 +0 1 0 1 1 1 0 1 0 1 1 1 1 +1 +0 0 0 0 1 1 0 0 1 0 1 0 0 +0 +1 0 1 1 0 0 1 0 0 0 0 0 1 +1 +1 0 1 0 0 0 0 1 0 0 1 1 1 +0 +0 1 0 1 0 1 0 0 1 0 0 0 0 +0 +0 0 1 0 0 1 0 0 1 0 0 0 1 +0 +0 1 1 0 1 0 0 0 1 1 0 1 1 +1 +0 1 0 1 0 1 0 1 0 0 0 0 0 +0 +1 0 0 1 1 0 0 0 0 0 0 1 1 +1 +0 0 0 0 0 0 0 1 1 1 0 0 0 +1 +1 1 0 0 1 1 1 0 1 1 1 0 0 +0 +1 0 0 1 1 0 0 1 1 0 0 0 1 +0 +1 1 1 0 1 0 1 1 1 1 0 0 1 +1 +1 1 0 0 1 0 0 0 0 1 0 1 1 +0 +1 0 0 1 1 0 0 0 1 1 1 1 0 +1 +1 1 1 1 0 0 0 0 1 1 0 1 1 +0 +0 1 0 1 0 0 0 0 0 0 1 1 0 +0 +0 1 0 0 1 0 0 1 1 0 1 0 0 +1 +0 1 0 0 0 1 0 1 1 1 0 0 0 +1 +1 0 1 1 1 0 0 0 0 0 0 1 1 +0 +1 0 1 1 0 0 0 1 1 1 1 0 0 +1 +0 0 0 0 0 1 0 1 1 0 0 0 1 +0 +1 1 0 1 0 1 1 0 0 1 1 0 0 +1 +0 0 1 1 0 0 0 1 1 1 1 1 0 +1 +1 1 0 0 1 1 1 1 0 1 1 1 0 +1 +1 1 0 1 0 1 1 0 0 1 0 1 0 +1 +0 1 0 0 0 1 1 1 0 1 1 0 1 +1 +1 1 0 1 1 0 1 1 0 1 1 1 0 +1 +1 0 0 0 1 1 0 1 0 0 1 0 0 +1 +0 1 0 0 1 1 0 1 1 1 1 0 1 +0 +0 0 0 1 1 0 0 0 1 0 0 0 0 +1 +0 0 1 1 0 1 0 0 1 0 1 1 1 +1 +1 0 1 1 1 1 1 1 1 0 0 0 1 +1 +1 0 1 1 1 1 0 1 0 1 1 0 1 +1 +0 1 0 0 0 0 1 0 1 1 1 0 0 +1 +1 1 0 0 0 0 0 0 1 0 1 0 0 +0 +1 1 1 1 1 0 0 0 0 1 1 1 1 +1 +0 1 1 1 1 1 1 1 1 0 1 1 0 +0 +1 1 0 0 1 0 0 1 0 1 0 1 1 +1 +0 0 1 1 1 1 1 1 1 0 1 1 0 +1 +1 0 1 1 0 0 1 0 0 0 1 1 0 +0 +1 0 0 0 0 0 1 1 0 0 1 1 1 +0 +1 1 0 0 0 1 1 1 1 0 0 1 1 +0 +1 1 1 1 0 1 1 1 0 0 0 0 0 +1 +1 0 1 0 1 1 1 0 1 1 0 1 0 +0 +0 1 0 0 0 0 0 1 1 1 0 1 0 +1 +0 0 1 1 0 0 0 0 0 1 1 0 0 +0 +1 0 0 1 1 0 0 1 1 0 0 0 0 +1 +1 1 0 1 1 1 0 0 1 0 0 0 1 +1 +1 0 0 0 0 1 1 1 1 0 0 1 0 +0 +1 0 0 1 0 0 1 0 1 1 0 0 0 +1 +1 1 0 1 0 1 0 1 0 0 0 1 0 +0 +1 0 1 1 1 0 0 0 0 0 0 1 0 +1 +1 0 1 0 1 0 0 1 0 0 0 1 0 +1 +1 0 1 1 0 0 0 0 1 1 1 0 0 +0 +1 0 1 1 1 0 1 1 1 0 1 0 1 +1 +0 0 0 1 0 0 0 1 0 1 1 0 1 +1 +1 1 1 0 1 1 0 0 0 1 1 0 1 +0 +0 0 1 0 0 0 0 0 1 0 0 1 0 +1 +0 0 0 0 0 0 1 0 0 0 0 1 0 +0 +0 0 0 1 1 1 0 0 0 0 1 0 1 +1 +1 0 1 1 0 0 0 1 1 1 1 1 1 +1 +0 0 0 1 1 0 0 1 0 0 1 0 1 +1 +0 0 0 0 0 1 1 1 0 0 1 1 0 +1 +0 0 0 1 0 1 1 0 0 1 0 0 0 +0 +1 1 1 0 0 0 1 1 0 0 1 1 1 +0 +1 1 0 1 1 1 1 1 1 1 0 1 1 +1 +1 1 1 0 0 1 0 0 0 0 0 1 1 +0 +0 0 1 0 1 0 1 1 1 1 0 0 0 +0 +1 1 1 0 1 0 1 1 0 0 0 0 1 +1 +0 0 1 0 1 1 0 1 0 0 1 1 0 +0 +0 0 1 0 1 0 0 1 1 1 0 1 1 +1 +0 1 1 0 0 1 1 1 1 0 0 0 0 +0 +1 1 1 0 0 1 0 1 1 1 0 0 1 +0 +1 0 0 1 1 1 0 1 1 1 1 1 0 +1 +1 1 0 0 1 0 0 1 1 1 0 1 1 +0 +1 0 0 1 0 1 0 0 0 0 1 0 1 +1 +0 0 0 1 0 1 1 0 1 1 0 1 1 +1 +0 0 1 0 1 1 1 0 1 1 0 1 1 +0 +1 1 1 1 0 1 1 0 0 1 1 1 1 +0 +0 0 1 0 1 1 1 1 0 1 1 0 0 +1 +0 0 0 1 1 1 1 0 0 1 0 0 0 +1 +1 1 0 0 0 0 1 1 1 0 1 0 0 +0 +0 1 0 1 0 1 1 1 0 0 0 0 0 +1 +1 0 0 1 0 0 0 0 0 1 0 0 0 +1 +1 0 0 1 0 0 0 1 1 0 0 0 0 +0 +1 1 1 1 0 1 0 1 1 1 1 1 1 +1 +0 1 0 1 1 0 0 1 1 1 0 0 1 +1 +1 0 1 1 1 0 1 0 1 0 0 0 0 +0 +0 1 1 0 0 1 0 0 0 0 1 0 1 +1 +0 0 1 1 0 1 1 0 1 1 1 1 0 +0 +0 0 0 1 0 1 0 0 0 0 0 0 1 +1 +0 1 1 0 0 0 1 1 0 0 1 1 0 +0 +1 1 1 0 0 0 1 0 0 1 0 1 1 +1 +1 0 0 0 0 1 1 1 0 1 0 1 1 +1 +1 1 0 0 0 0 1 1 1 0 1 0 1 +1 +1 0 0 1 0 0 0 1 0 0 1 0 0 +0 +0 1 0 0 0 0 0 0 0 1 1 0 1 +0 +1 1 1 0 0 0 0 0 0 0 0 1 1 +1 +0 0 0 1 1 0 0 0 0 1 0 1 1 +1 +0 0 0 1 0 0 1 1 1 1 0 0 0 +1 +0 1 1 0 0 1 1 0 0 0 1 0 0 +1 +0 1 1 1 1 1 0 1 0 0 1 0 1 +0 +0 0 1 1 0 0 0 0 1 0 1 1 1 +0 +0 0 1 1 0 0 0 1 1 1 0 1 1 +1 +0 1 1 0 1 1 0 1 0 1 1 0 1 +0 +1 0 0 0 1 1 1 1 1 0 0 1 1 +0 +1 1 1 0 1 1 1 0 1 0 1 0 1 +1 +1 1 0 1 0 1 1 0 1 1 1 1 1 +0 +0 0 0 1 1 0 0 0 0 1 1 0 1 +1 +1 0 0 1 1 1 0 1 0 1 0 1 0 +1 +0 0 0 1 0 0 0 1 1 0 0 1 0 +0 +1 1 1 0 1 0 1 1 1 1 0 0 0 +0 +1 1 0 1 1 0 1 0 1 1 1 1 0 +1 +1 1 0 0 0 1 0 0 0 0 1 0 0 +0 +0 1 0 1 0 1 1 1 1 0 1 0 1 +0 +0 1 0 0 1 0 0 0 1 0 1 0 1 +1 +1 0 1 1 0 0 1 0 0 1 0 1 1 +1 +1 1 1 0 0 1 0 0 1 1 0 0 1 +1 +0 0 1 0 0 1 0 1 1 0 0 1 1 +0 +0 0 0 1 1 0 0 0 1 0 0 1 0 +0 +0 0 0 0 0 1 0 1 0 1 0 0 0 +1 +0 1 0 0 1 1 0 1 1 1 0 1 0 +1 +1 0 1 1 0 0 0 1 1 0 0 1 0 +0 +1 0 1 1 0 1 1 1 1 1 1 1 0 +0 +0 1 0 1 0 1 1 1 0 1 0 1 0 +1 +1 0 0 0 1 1 1 0 0 1 0 0 1 +0 +0 0 0 1 0 1 0 1 1 0 1 1 0 +0 +1 0 0 0 0 1 0 0 1 0 0 0 1 +0 +0 0 0 0 1 0 0 0 0 0 1 0 1 +1 +1 0 1 1 0 1 1 0 1 0 1 0 1 +0 +1 0 0 0 1 1 0 1 0 0 0 1 0 +1 +1 0 1 1 1 1 1 1 0 1 0 0 0 +0 +0 0 1 1 1 0 0 1 0 1 1 0 0 +0 +1 0 0 1 0 0 0 0 1 0 0 1 1 +1 +1 1 1 1 1 0 0 1 1 0 0 0 0 +1 +1 1 0 1 0 1 1 1 0 1 1 0 0 +0 +1 0 0 1 1 1 1 0 1 1 1 0 1 +1 +0 1 1 0 0 1 0 1 0 1 1 0 1 +1 +0 0 1 1 0 0 0 1 1 1 0 0 1 +0 +1 1 0 0 0 1 1 0 1 1 0 1 0 +1 +1 1 0 1 0 1 0 1 1 1 1 0 0 +0 +1 0 1 1 0 0 1 1 1 1 1 0 1 +1 +0 1 1 0 0 1 1 1 0 1 0 0 0 +0 +1 0 1 0 1 1 1 1 0 0 0 0 1 +1 +1 1 1 0 1 1 0 0 0 0 0 0 0 +1 +0 1 1 1 1 0 1 0 1 1 0 0 0 +1 +1 0 0 1 0 1 1 1 1 0 1 1 1 +1 +0 0 0 1 1 0 1 0 1 0 0 1 1 +0 +0 0 0 1 1 1 0 0 0 1 1 0 1 +0 +0 0 1 0 1 0 1 1 0 1 0 1 1 +1 +1 0 1 0 1 1 1 1 1 1 1 0 1 +0 +0 1 1 1 0 0 0 1 0 0 1 0 0 +1 +1 1 1 1 1 1 0 1 0 0 1 0 1 +1 +1 1 1 0 0 0 1 1 1 0 0 1 0 +1 +1 0 0 0 0 1 1 1 1 1 0 0 1 +1 +0 0 0 1 1 1 0 0 0 0 1 1 0 +1 +0 1 0 1 1 0 0 1 0 1 0 1 1 +1 +0 1 1 1 1 0 0 0 0 1 1 0 1 +1 +0 1 0 0 1 0 0 0 1 0 0 0 0 +1 +1 1 1 0 1 0 1 1 0 0 0 1 0 +1 +0 1 1 1 1 0 1 0 1 1 1 0 0 +0 +1 1 0 0 0 0 0 0 0 1 0 0 1 +0 +1 0 0 0 0 0 0 1 0 1 0 0 1 +0 +1 1 0 0 0 0 0 0 0 1 1 0 1 +1 +1 0 1 0 1 0 1 1 0 0 1 0 1 +1 +0 1 0 0 1 1 1 1 0 1 0 1 0 +1 +1 1 1 1 1 0 1 1 0 1 0 1 0 +1 +0 0 0 1 0 0 1 0 0 0 0 0 1 +1 +0 1 1 0 1 1 1 1 1 0 1 1 1 +0 +0 0 1 0 0 1 1 1 1 0 1 1 0 +1 +1 1 1 1 1 1 1 1 0 1 1 0 0 +0 +0 0 1 0 0 1 1 1 0 0 1 0 1 +0 +1 1 1 1 1 1 1 0 1 0 1 0 1 +0 +0 0 1 1 1 0 1 0 0 1 0 0 1 +0 +1 0 1 0 1 1 1 1 0 1 1 0 1 +1 +0 1 1 1 1 0 0 0 0 1 0 0 0 +1 +0 1 1 1 0 1 1 0 1 0 1 0 1 +0 +0 0 0 1 1 0 0 0 1 1 1 0 1 +0 +0 1 0 0 0 1 0 0 1 0 1 1 1 +0 +1 1 0 0 0 0 1 0 0 0 1 0 1 +1 +1 0 1 0 1 1 1 0 0 0 0 0 1 +0 +1 1 0 0 1 0 1 0 0 0 0 1 1 +0 +0 1 1 1 1 0 0 1 1 1 0 1 0 +0 +0 1 0 0 1 1 0 1 1 1 0 0 1 +1 +0 1 0 0 1 0 0 1 1 1 0 1 1 +1 +1 1 0 1 1 0 0 0 0 0 0 0 1 +1 +1 0 0 1 1 0 1 1 1 0 0 1 0 +1 +0 0 1 1 0 1 0 0 0 1 1 0 1 +0 +1 1 0 0 0 0 1 0 1 1 1 0 0 +0 +1 1 1 0 1 1 1 1 1 1 1 1 1 +0 +0 0 0 0 0 0 1 0 1 1 0 1 1 +1 +1 1 1 1 1 0 1 1 1 1 1 1 0 +1 +1 0 0 0 1 0 1 0 1 1 1 0 0 +0 +1 1 1 1 1 1 0 0 0 0 0 0 1 +1 +1 0 1 1 1 0 0 1 1 1 0 0 0 +1 +1 1 0 0 1 1 1 0 1 1 1 0 1 +1 +1 1 0 1 0 1 0 0 0 0 0 0 1 +1 +0 0 0 1 0 1 1 1 1 1 0 0 1 +1 +1 0 0 1 0 1 0 1 1 1 0 1 1 +0 +0 1 1 1 0 0 0 0 0 1 1 1 1 +1 +0 1 1 0 0 0 0 0 1 0 1 1 0 +1 +1 1 0 1 0 0 0 1 0 1 0 0 0 +1 +0 0 1 1 1 1 1 0 0 0 1 1 0 +1 +1 0 1 0 0 0 1 1 0 0 1 0 0 +1 +0 1 0 0 1 0 1 0 0 1 0 0 0 +0 +0 0 1 1 0 1 0 0 1 1 0 1 1 +1 +1 0 0 1 0 0 1 1 0 0 1 1 0 +0 +1 1 0 1 0 0 1 1 1 0 1 1 1 +1 +0 0 0 1 1 1 0 1 1 1 1 0 0 +1 +0 1 0 0 0 1 1 1 0 0 0 1 0 +1 +0 0 1 0 0 0 0 0 0 0 0 0 1 +0 +1 1 1 1 0 1 1 1 1 1 1 1 0 +1 +1 1 1 1 0 1 0 0 0 0 1 0 0 +0 +1 0 0 0 0 1 0 0 1 1 1 1 1 +1 +0 1 0 0 1 0 1 0 0 0 0 1 0 +0 +0 1 0 0 0 1 0 1 1 1 1 0 1 +1 +0 1 0 0 1 0 0 0 1 1 0 1 0 +1 +1 0 0 1 0 1 0 1 1 0 1 0 0 +0 +1 0 1 1 0 1 0 0 0 0 0 0 0 +0 +0 1 1 1 0 0 0 1 0 0 1 0 1 +0 +0 1 1 0 1 1 0 1 0 1 0 1 1 +0 +1 0 0 1 1 0 0 0 1 0 0 0 1 +1 +0 0 1 0 1 1 0 0 1 0 1 0 1 +0 +0 1 1 0 1 1 0 0 0 0 1 0 0 +1 +0 1 1 0 0 0 0 1 1 0 1 1 1 +1 +1 0 0 0 1 0 0 1 0 0 0 1 1 +1 +1 1 0 0 1 0 0 1 1 0 0 0 0 +1 +0 1 0 0 0 0 0 1 1 0 1 1 0 +1 +0 1 1 0 1 0 1 1 1 0 1 0 0 +1 +1 1 0 1 0 0 1 1 1 0 0 0 1 +1 +1 0 0 0 1 0 1 0 1 0 1 1 1 +1 +0 0 1 1 1 0 1 1 1 0 1 0 0 +1 +1 0 0 0 0 1 0 0 1 0 1 1 1 +0 +0 0 1 1 1 1 0 0 0 1 1 0 0 +0 +1 0 1 1 0 1 0 0 1 1 1 1 1 +1 +1 0 0 1 1 1 0 1 1 1 1 0 0 +0 +0 0 0 0 1 1 1 1 1 0 1 0 1 +1 +1 0 0 1 1 1 1 0 1 0 1 0 1 +0 +0 1 1 1 1 1 1 1 1 1 0 1 0 +0 +1 0 1 1 0 0 1 1 1 0 1 1 1 +1 +0 1 1 0 0 0 1 1 1 1 0 1 1 +0 +0 1 0 1 1 1 1 1 1 0 1 1 0 +1 +0 1 0 1 0 1 1 1 0 1 0 1 1 +0 +1 1 0 1 1 1 1 1 0 1 0 1 0 +1 +1 1 1 0 1 1 0 1 0 1 1 0 0 +0 +1 0 0 0 1 0 0 1 0 0 0 1 0 +0 +0 1 1 0 1 1 1 0 0 1 0 0 0 +0 +1 0 1 1 0 1 0 0 1 0 1 0 0 +0 +1 1 0 0 1 0 1 0 0 0 1 0 0 +1 +0 1 1 1 1 0 1 0 1 0 0 0 0 +0 +1 1 1 0 0 0 0 0 0 1 1 1 0 +0 +0 1 0 1 0 1 0 0 1 1 0 1 1 +1 +0 0 0 1 0 1 1 1 1 0 1 1 1 +0 +0 0 1 1 1 0 1 0 1 1 0 1 0 +1 +0 1 0 0 0 0 1 0 1 1 0 1 1 +0 +0 1 1 0 0 0 1 0 1 0 1 1 1 +1 +1 0 1 1 1 0 1 1 0 1 1 1 0 +1 +0 0 1 1 1 1 0 0 0 1 0 0 1 +0 +1 1 1 1 0 1 1 0 1 0 1 1 0 +1 +1 0 0 0 0 0 1 1 0 1 0 1 0 +1 +1 0 0 0 0 1 0 0 0 0 0 0 0 +0 +1 1 1 0 1 0 1 1 1 1 0 1 1 +0 +0 0 1 1 1 0 0 1 0 1 0 1 0 +0 +1 0 0 0 0 0 1 0 0 1 0 0 1 +0 +0 0 0 1 0 0 1 0 1 0 1 1 0 +1 +0 1 1 0 1 0 1 1 0 1 1 0 0 +1 +1 1 0 1 1 1 1 0 0 0 0 0 1 +1 +1 0 1 1 1 0 1 0 0 1 0 1 1 +0 +1 1 0 0 1 1 1 1 0 0 0 1 1 +0 +0 0 0 1 0 1 1 1 0 0 1 1 1 +1 +1 1 1 0 0 1 1 1 1 1 0 1 1 +0 +1 1 0 1 0 1 1 1 1 1 1 0 0 +1 +1 1 0 0 1 1 0 1 0 0 0 0 1 +0 +0 0 1 1 1 0 1 0 0 0 1 0 0 +1 +1 1 0 0 0 0 1 0 0 1 0 0 0 +0 +0 1 1 1 0 0 0 1 0 1 0 0 1 +0 +1 0 0 1 0 1 1 1 0 0 1 1 0 +1 +1 1 1 1 0 0 0 0 0 1 0 1 0 +0 +0 0 0 1 0 1 1 0 1 1 0 1 0 +0 +1 1 1 0 0 0 0 0 0 1 0 1 1 +0 +0 1 1 0 0 0 0 1 1 1 0 0 1 +0 +1 1 1 1 1 1 0 0 1 0 0 0 0 +1 +0 0 0 1 0 1 0 0 1 0 1 0 0 +0 +0 0 0 1 1 1 0 0 1 1 0 1 1 +1 +0 0 1 0 0 1 0 0 1 0 1 1 1 +0 +0 1 0 1 1 1 1 0 1 0 1 1 0 +0 +0 0 1 0 1 1 1 0 1 1 0 0 1 +1 +0 0 0 0 1 0 1 1 1 0 0 0 0 +0 +0 1 1 1 0 1 0 0 1 1 1 0 1 +0 +0 1 1 0 1 0 0 0 0 0 0 1 0 +0 +1 1 0 0 1 1 0 1 0 0 0 0 0 +1 +1 0 1 0 0 0 1 0 1 0 0 0 1 +1 +1 1 1 0 1 1 1 0 0 0 0 1 0 +1 +1 1 1 1 1 0 1 1 1 0 1 0 1 +0 +0 0 1 0 0 0 0 0 0 0 0 1 1 +1 +0 0 0 0 0 0 0 1 1 0 0 0 1 +1 +1 1 1 1 1 1 1 0 0 1 0 1 0 +1 +1 0 1 0 0 0 0 0 0 1 1 1 1 +0 +0 1 1 0 1 1 0 1 0 0 0 1 0 +0 +1 0 0 1 0 1 0 0 0 1 0 0 1 +1 +0 1 1 0 0 0 1 0 1 1 0 1 0 +0 +1 1 1 0 0 1 0 0 1 0 0 0 1 +0 +1 0 1 0 0 1 1 0 0 1 0 1 1 +1 +0 0 1 0 1 0 0 1 0 0 1 1 0 +1 +1 0 0 1 1 0 1 1 1 0 0 0 0 +0 +0 0 0 1 1 0 0 1 1 0 1 0 1 +0 +0 1 0 1 0 0 1 1 1 0 1 1 1 +0 +1 0 1 0 1 1 1 1 1 1 0 1 0 +1 +1 0 0 1 0 1 0 1 1 1 0 1 0 +1 +1 0 1 1 1 1 1 0 0 0 1 0 1 +0 +0 0 0 1 1 1 0 0 0 1 0 1 0 +1 +0 1 1 0 1 0 0 1 0 1 0 0 0 +1 +1 0 1 0 1 1 1 1 1 0 0 0 0 +1 +0 0 0 0 1 0 1 0 1 1 0 1 0 +1 +0 1 1 0 0 1 1 1 1 0 1 1 1 +1 +1 0 0 0 0 0 1 1 0 1 1 1 1 +1 +0 0 0 1 1 0 1 1 1 0 0 0 1 +0 +0 0 0 0 1 0 1 0 0 1 0 0 1 +0 +1 0 1 0 1 0 1 1 0 1 0 1 0 +1 +1 1 0 1 0 0 1 1 0 0 0 0 1 +0 +0 0 0 0 0 0 1 0 0 1 0 0 0 +0 +0 1 0 1 0 0 1 1 1 0 0 1 0 +0 +1 1 0 1 1 0 1 0 1 0 0 0 1 +1 +0 0 1 0 0 1 1 0 0 0 1 0 0 +0 +1 0 1 1 1 0 0 0 1 1 0 0 0 +0 +1 0 1 1 0 0 0 1 1 0 0 0 1 +0 +0 0 0 1 0 0 0 1 1 0 1 1 0 +1 +0 1 1 0 1 1 0 0 1 1 0 1 0 +1 +0 1 1 1 1 0 0 0 0 0 0 0 0 +0 +1 1 0 0 1 1 1 1 0 0 1 0 0 +1 +0 1 1 0 1 1 1 0 1 1 0 1 1 +1 +1 0 0 0 0 1 1 0 0 1 0 0 1 +1 +0 0 0 0 0 0 1 0 1 0 1 1 1 +1 +1 0 0 1 1 1 0 1 1 1 0 0 1 +0 +1 0 1 1 1 0 0 1 1 1 0 1 0 +0 +0 0 0 1 0 0 1 0 0 1 1 0 1 +1 +0 0 1 1 1 0 0 0 0 1 1 0 1 +0 +1 1 0 0 0 1 0 1 1 0 1 1 0 +1 +1 0 1 0 0 1 0 0 1 0 1 0 0 +1 +0 1 1 0 0 0 1 0 1 1 0 0 0 +1 +1 1 0 0 1 1 0 0 0 0 1 0 1 +0 +1 0 1 1 1 1 0 1 1 1 0 1 0 +1 +0 0 1 0 0 1 1 1 1 1 1 0 0 +1 +1 0 1 0 0 0 0 1 1 0 1 1 0 +0 +1 0 1 0 1 1 0 1 0 1 0 0 0 +0 +1 0 0 1 1 0 0 0 0 1 0 0 0 +0 +0 1 0 1 1 0 1 1 1 1 0 0 0 +1 +1 1 0 1 0 1 1 0 0 0 1 1 0 +1 +0 1 1 1 0 1 0 0 0 0 0 0 1 +1 +0 1 1 1 1 0 0 1 0 0 0 1 0 +0 +1 0 0 0 0 0 1 0 0 0 0 0 1 +1 +0 0 1 1 0 0 0 0 1 1 1 0 0 +1 +1 0 0 1 1 1 1 0 1 1 0 1 1 +1 +1 0 0 0 0 0 1 0 0 1 1 1 1 +0 +0 0 0 1 0 1 1 1 1 1 1 0 0 +1 +1 1 0 1 1 0 1 1 0 1 0 0 1 +0 +0 0 1 1 0 0 1 0 0 1 0 1 0 +1 +0 1 1 1 0 0 0 1 1 0 1 1 1 +0 +0 1 0 0 1 0 1 1 1 1 1 0 1 +0 +1 0 0 0 0 1 1 0 1 0 0 1 1 +0 +1 0 1 1 0 0 0 0 0 0 1 1 0 +1 +0 0 0 0 1 1 0 0 1 1 0 1 1 +0 +1 1 1 0 1 0 1 1 0 1 1 1 0 +1 +1 1 1 1 0 0 1 0 1 0 0 1 1 +0 +1 0 0 0 1 0 1 1 1 1 1 0 1 +0 +0 1 1 1 0 1 0 1 1 0 1 0 0 +1 +1 0 1 1 0 1 0 1 1 0 1 0 1 +0 +1 1 0 1 1 1 0 0 0 0 0 1 1 +1 +0 1 0 0 0 1 1 1 1 0 0 0 0 +1 +1 1 1 0 0 1 0 1 1 0 1 1 1 +1 +1 1 0 0 0 0 0 1 0 1 1 1 0 +0 +1 1 0 1 0 1 0 1 1 1 1 1 1 +0 +1 0 0 0 0 0 1 1 1 0 1 0 0 +1 +1 0 0 0 1 1 1 0 0 1 1 1 0 +1 +1 0 0 0 1 0 1 0 0 0 0 1 0 +0 +0 1 1 0 1 0 1 1 0 0 0 0 1 +0 +0 1 1 1 0 0 1 0 1 0 0 0 1 +0 +1 0 1 0 0 1 0 0 1 0 1 1 1 +1 +1 0 1 1 1 0 1 0 1 0 0 1 1 +0 +1 1 0 0 1 1 0 1 1 0 0 1 1 +0 +1 1 1 1 0 1 0 0 1 0 1 0 0 +1 +0 1 0 1 0 0 0 0 1 1 0 0 1 +1 +1 0 1 0 1 1 1 1 0 0 1 0 1 +0 +1 1 0 1 1 1 1 0 1 0 0 0 1 +0 +0 1 0 1 0 1 0 0 0 1 1 0 0 +1 +1 0 0 1 1 0 0 1 0 1 1 0 1 +1 +1 1 0 1 0 0 0 0 1 0 0 1 1 +0 +1 0 0 0 0 0 0 0 0 0 1 0 1 +1 +1 1 0 1 0 0 0 1 0 0 1 1 0 +0 +0 1 0 0 1 1 1 0 1 0 0 0 1 +0 +0 1 1 1 1 0 1 0 0 1 0 1 0 +1 +1 1 0 0 0 1 1 1 0 0 0 0 1 +0 +1 0 1 1 1 0 0 1 1 1 1 1 1 +0 +1 1 1 1 0 0 1 0 0 0 0 0 0 +1 +1 1 0 1 0 1 0 1 0 0 1 1 1 +0 +1 1 0 0 0 0 0 1 0 0 0 0 1 +0 +1 0 0 0 0 0 0 1 0 0 1 1 1 +1 +1 0 0 1 1 0 1 0 0 1 0 0 1 +0 +1 0 0 1 1 1 0 0 1 0 1 0 0 +0 +1 0 0 1 1 0 1 0 1 1 0 1 1 +0 +1 0 1 1 1 1 0 1 0 0 0 0 1 +1 +0 1 0 0 0 0 1 1 0 1 1 0 0 +1 +0 0 1 1 1 0 0 0 0 1 1 1 1 +1 +0 1 0 1 0 1 1 1 1 1 0 1 0 +0 +0 1 0 0 0 0 1 1 1 1 1 1 0 +1 +1 1 1 0 0 1 0 0 1 1 1 1 1 +1 +0 1 0 0 1 1 1 0 0 0 1 0 0 +1 +0 1 0 1 0 0 1 1 1 1 0 0 0 +0 +1 0 1 0 0 1 0 1 1 0 0 0 0 +1 +0 1 1 1 0 1 0 0 0 1 0 0 1 +0 +0 1 1 0 1 0 0 0 0 0 0 0 0 +1 +1 0 0 1 0 1 0 0 1 0 0 0 1 +1 +0 0 1 1 1 1 0 1 1 0 0 0 0 +0 +0 1 0 1 1 0 1 1 0 1 0 0 0 +0 +1 1 0 0 1 1 0 0 1 0 0 1 1 +1 +0 1 1 0 1 0 0 0 1 0 0 0 0 +0 +0 1 0 1 1 1 0 1 0 0 0 0 1 +0 +0 1 1 1 1 1 0 0 1 1 1 0 1 +1 +0 0 0 1 0 0 0 1 0 0 1 1 0 +0 +0 1 0 0 0 0 0 1 0 0 1 0 1 +0 +0 1 1 1 0 0 1 0 1 0 0 1 0 +0 +1 0 1 0 0 1 0 1 1 1 1 1 0 +0 +1 1 1 0 1 1 0 0 0 1 0 1 1 +0 +0 0 0 1 0 1 1 1 1 1 0 0 0 +0 +1 1 0 1 0 0 1 1 1 0 0 1 1 +0 +1 1 1 0 0 0 1 1 0 0 0 1 0 +0 +1 1 1 1 1 0 1 0 0 0 1 0 0 +1 +1 1 0 1 0 1 0 0 1 0 1 0 0 +0 +0 1 0 1 1 0 0 0 0 1 0 1 0 +1 +0 0 1 1 0 0 0 1 0 0 0 0 1 +0 +1 0 1 1 1 1 0 1 0 1 0 0 1 +0 +0 1 1 0 0 0 0 1 1 1 1 1 1 +0 +1 0 1 1 1 1 1 0 1 0 0 0 0 +1 +1 0 0 0 0 0 1 1 1 0 0 1 1 +0 +1 0 0 0 0 0 1 1 1 0 0 0 0 +0 +1 1 1 1 1 1 1 1 1 1 0 0 0 +0 +1 0 1 1 0 1 0 1 0 1 0 1 1 +0 +1 0 1 0 0 0 0 1 0 1 0 0 1 +1 +1 1 1 0 1 0 0 1 1 0 1 1 1 +1 +0 1 1 1 0 1 0 1 0 1 0 1 1 +0 +1 0 1 1 1 1 1 0 0 0 1 0 0 +1 +1 1 0 1 0 0 1 0 1 0 0 1 0 +0 +1 1 0 0 0 0 0 1 0 1 0 0 1 +1 +1 1 1 1 1 0 1 0 1 0 1 1 1 +0 +0 0 1 1 1 0 1 1 1 0 0 1 0 +1 +1 1 1 0 0 1 0 0 1 0 1 0 1 +1 +1 1 0 0 0 1 0 0 1 0 1 0 0 +1 +0 1 0 1 0 1 0 1 1 0 1 0 1 +1 +0 0 0 0 0 0 1 1 1 1 1 1 1 +1 +0 0 1 0 0 0 1 0 0 0 1 0 0 +1 +1 0 1 1 0 0 0 1 0 0 1 1 0 +0 +1 0 1 1 1 1 0 0 0 1 0 0 0 +0 +0 1 0 1 1 1 1 1 0 0 1 0 1 +0 +1 1 0 1 0 0 1 0 0 1 0 0 0 +1 +0 0 1 1 1 0 0 0 0 0 0 1 0 +0 +0 1 0 1 1 0 0 0 1 1 0 0 0 +1 +0 0 1 0 0 0 1 0 1 0 0 0 1 +0 +1 0 1 1 1 1 0 1 0 0 0 1 0 +1 +1 1 1 0 1 0 0 0 0 1 0 0 1 +0 +1 0 0 0 0 0 1 0 1 1 0 1 1 +0 +0 1 0 1 0 1 1 0 0 0 0 0 0 +0 +1 0 1 1 1 1 0 0 1 1 0 0 0 +1 +0 1 0 1 1 1 1 0 0 0 1 0 1 +1 +0 1 1 0 0 1 0 1 1 0 0 0 1 +0 +0 1 0 1 1 1 1 1 0 0 1 0 0 +1 +0 0 1 0 0 0 1 0 0 1 0 1 1 +1 +1 0 0 0 1 0 0 1 1 0 1 0 0 +1 +1 1 1 1 0 0 1 1 1 0 0 1 1 +1 +1 0 0 1 0 1 0 1 0 1 0 0 0 +1 +1 1 1 1 1 1 1 1 0 1 0 0 1 +0 +1 0 0 1 1 1 1 0 1 1 0 0 1 +0 +1 1 0 1 1 0 0 1 0 1 1 0 0 +1 +0 1 0 1 0 0 1 0 1 1 1 1 1 +0 +1 1 1 1 0 1 0 0 1 1 0 1 1 +1 +0 0 0 1 1 1 0 1 0 1 0 1 0 +0 +0 1 1 1 1 1 0 0 0 1 0 1 1 +0 +1 0 0 0 0 0 1 0 0 1 1 1 0 +1 +1 0 1 1 1 0 0 1 1 1 0 1 1 +1 +1 0 1 0 0 1 1 0 0 1 1 1 1 +0 +1 0 0 0 0 1 1 1 0 1 1 0 1 +1 +1 0 1 0 1 0 0 1 0 1 0 0 0 +1 +1 1 1 1 0 0 0 1 0 1 1 1 1 +1 +1 0 0 1 1 0 1 0 1 0 0 0 1 +0 +1 0 1 1 1 0 0 0 0 1 0 0 0 +1 +0 1 0 0 0 0 0 1 0 1 0 0 1 +0 +0 0 1 0 0 1 0 0 0 1 0 1 0 +0 +1 1 1 0 1 0 1 0 0 0 1 0 0 +0 +0 1 1 1 0 1 0 1 1 1 0 0 1 +0 +0 1 1 0 1 0 0 1 1 1 1 1 1 +1 +1 0 1 0 1 1 0 1 1 1 0 0 1 +0 +1 1 0 0 1 0 0 0 0 0 0 0 1 +0 +1 0 1 0 0 1 1 1 1 0 1 1 1 +1 +1 1 1 1 0 0 0 0 1 0 0 0 0 +1 +1 0 1 0 0 0 1 0 1 0 0 0 0 +0 +0 0 1 1 1 1 0 1 1 0 0 1 0 +1 +1 1 0 0 1 0 0 1 0 0 1 1 1 +1 +0 0 0 1 0 0 0 0 0 1 0 1 1 +0 +0 1 1 1 0 1 1 1 1 1 0 1 0 +1 +0 0 0 1 0 1 0 0 1 1 1 1 0 +0 +0 0 1 0 1 1 0 1 0 0 1 0 0 +1 +1 0 0 1 1 1 0 0 0 0 0 1 1 +0 +1 0 1 0 0 1 1 0 1 0 0 1 0 +0 +0 1 1 0 1 1 0 0 0 1 0 0 1 +0 +1 1 0 0 0 0 0 1 1 1 1 0 1 +1 +1 1 1 0 0 0 0 1 1 1 0 1 0 +1 +1 0 1 1 1 0 1 0 1 0 0 0 1 +1 +0 1 1 1 1 0 1 0 1 1 0 0 1 +0 +1 1 1 0 0 0 0 1 1 1 1 0 1 +0 +0 0 0 1 0 1 0 0 1 0 1 0 1 +1 +1 0 1 0 1 0 0 1 0 0 0 1 1 +0 +1 1 1 1 0 0 1 0 1 0 1 0 1 +0 +0 0 1 0 0 0 0 0 0 0 1 0 1 +1 +0 0 1 0 0 1 0 0 1 1 1 0 1 +0 +0 0 0 0 0 1 1 0 0 1 0 1 0 +0 +1 0 1 1 0 0 0 1 1 1 0 1 1 +0 +0 1 0 1 1 1 0 0 1 1 1 0 0 +1 +1 1 1 1 1 0 0 0 1 0 1 0 0 +1 +0 1 1 0 1 1 1 1 0 0 0 0 0 +0 +1 1 1 1 1 0 0 0 1 0 0 1 1 +0 +1 0 1 0 1 0 0 1 0 0 1 1 0 +0 +0 1 1 1 0 0 1 1 1 0 1 0 0 +1 +0 1 1 1 0 1 0 0 1 0 1 1 0 +1 +1 1 0 1 1 0 1 0 1 1 0 0 0 +1 +1 0 1 1 1 1 1 0 1 0 0 1 1 +1 +1 1 1 1 0 1 0 0 0 0 0 1 1 +1 +0 0 0 1 0 0 1 0 1 1 0 1 1 +0 +1 1 0 1 1 0 1 1 1 1 1 0 1 +0 +1 1 1 0 0 1 0 1 1 1 0 1 0 +0 +0 1 1 0 1 0 0 1 1 0 1 1 1 +0 +1 0 1 1 0 1 1 1 0 1 0 1 1 +1 +1 1 0 0 1 1 0 1 0 1 1 0 1 +0 +0 1 0 0 0 1 1 1 1 0 0 0 1 +0 +0 1 1 1 1 0 1 0 0 1 0 0 0 +0 +0 0 1 1 0 1 0 0 0 0 0 1 0 +0 +0 0 0 1 0 1 0 1 0 0 0 0 0 +1 +0 1 0 0 1 1 0 1 0 0 1 0 0 +1 +1 0 1 1 0 1 0 1 0 0 0 1 0 +0 +0 1 0 1 1 1 1 1 0 0 0 0 0 +0 +1 0 0 0 1 0 0 1 1 0 1 1 1 +1 +0 1 0 1 0 0 0 0 0 0 0 1 0 +1 +0 0 1 0 1 1 1 0 1 0 1 1 0 +1 +0 0 0 1 1 0 0 0 0 1 1 1 1 +0 +0 0 1 0 0 1 0 1 1 1 1 0 1 +1 +1 1 1 0 1 0 1 0 1 0 1 1 1 +1 +1 0 1 0 0 0 0 0 0 0 1 1 0 +0 +1 0 1 1 1 0 0 0 0 0 0 0 1 +1 +0 1 0 0 1 1 0 0 1 0 1 1 1 +1 +1 1 1 0 0 0 1 0 0 0 0 1 1 +0 +0 0 0 0 0 1 1 0 1 0 0 0 0 +1 +1 0 0 1 1 0 1 0 0 1 1 1 0 +1 +1 1 0 1 1 1 1 1 1 0 0 1 1 +0 +0 1 0 0 0 1 1 1 0 1 1 1 1 +0 +1 0 0 1 0 1 0 1 0 0 1 0 0 +1 +0 0 1 0 1 0 1 1 1 0 0 1 0 +0 +0 0 0 1 1 0 0 0 0 0 1 1 0 +0 +1 1 0 1 0 0 1 0 0 0 1 1 0 +0 +0 0 0 1 1 1 0 1 0 1 1 0 0 +0 +1 0 0 0 0 1 0 0 1 1 1 0 1 +0 +1 1 1 1 0 0 1 1 1 1 1 1 0 +0 +1 1 1 1 0 1 1 0 0 0 0 1 0 +1 +0 1 0 1 1 0 1 0 1 0 1 1 0 +1 +0 0 1 0 1 1 0 1 0 1 0 1 0 +0 +0 1 1 0 1 0 1 1 1 0 1 0 1 +0 +1 0 0 1 0 1 0 1 0 1 0 0 1 +0 +1 0 0 0 0 0 1 1 1 0 0 1 0 +1 +0 1 0 0 0 0 0 1 0 0 0 1 1 +0 +0 0 0 0 1 0 0 1 0 1 0 1 0 +0 +0 0 1 1 1 1 1 0 1 0 0 0 0 +0 +1 1 0 1 1 0 0 1 0 0 1 0 0 +0 +1 1 1 0 1 0 0 0 0 0 0 1 1 +0 +1 0 0 1 0 1 1 1 0 0 1 0 1 +1 +0 1 0 1 0 0 1 0 0 0 1 0 0 +0 +0 1 1 0 0 0 1 0 0 1 0 0 0 +0 +1 0 1 1 0 1 1 1 0 0 1 0 1 +0 +0 0 0 0 1 0 1 1 0 0 0 0 0 +1 +0 0 0 0 0 1 1 0 0 1 1 1 0 +1 +1 1 0 0 1 1 1 1 1 1 1 0 0 +1 +0 0 1 1 0 1 1 0 0 1 0 0 1 +0 +1 0 1 0 0 1 0 0 0 1 0 0 0 +0 +0 1 0 0 1 0 0 1 0 0 0 1 0 +0 +0 1 0 1 0 0 1 1 1 0 0 1 1 +1 +0 1 0 0 1 0 1 1 0 1 0 1 1 +1 +0 1 1 1 1 0 1 1 1 0 0 1 0 +0 +0 1 0 1 0 0 1 0 0 0 0 1 0 +0 +0 0 1 1 0 0 1 1 0 1 1 0 1 +1 +0 1 0 1 0 1 1 0 0 1 0 1 1 +1 +1 1 1 1 1 0 1 1 1 1 0 0 1 +0 +1 0 0 1 1 0 1 1 0 1 1 1 1 +1 +1 0 0 1 1 0 0 1 0 0 1 0 1 +0 +0 0 1 1 0 0 0 1 0 1 0 1 0 +1 +0 0 0 1 1 0 1 1 0 1 1 0 0 +0 +0 1 0 1 0 1 1 0 0 0 0 1 0 +1 +0 0 1 1 1 1 1 1 0 0 1 1 0 +0 +1 1 0 0 1 0 1 1 1 0 1 0 1 +0 +1 1 1 0 0 1 0 0 1 0 1 1 0 +1 +1 1 1 0 1 1 1 1 1 1 0 0 1 +0 +0 0 1 1 1 1 0 0 0 0 0 0 0 +0 +0 0 0 0 0 1 1 1 0 0 0 0 0 +1 +0 0 1 0 0 0 0 0 0 1 1 0 1 +0 +1 1 0 0 1 1 1 0 1 0 0 0 0 +0 +0 0 0 0 1 0 0 0 1 0 1 1 0 +0 +0 1 1 1 1 1 0 1 0 0 0 1 1 +0 +1 0 0 0 1 0 0 0 0 0 1 0 0 +1 +0 1 1 0 1 1 0 1 0 0 1 1 1 +0 +0 1 1 1 1 0 1 0 0 1 1 0 1 +0 +0 0 0 0 1 1 0 0 1 0 1 1 1 +0 +1 0 1 0 1 1 1 0 1 1 1 0 1 +1 +1 0 0 0 0 1 1 0 0 0 1 0 0 +0 +1 1 1 0 0 0 1 0 1 1 1 1 0 +0 +0 0 1 0 0 0 1 1 0 1 0 0 1 +1 +1 1 1 0 0 0 1 0 1 0 1 1 0 +1 +1 1 0 0 0 1 1 0 0 0 0 0 0 +0 +0 1 0 0 1 1 1 0 0 0 1 1 1 +1 +0 0 1 1 0 1 1 0 1 0 0 0 1 +0 +1 0 1 1 0 0 0 1 1 0 1 0 0 +0 +0 0 1 1 1 1 1 1 0 0 0 0 0 +0 +1 0 0 0 1 0 0 1 0 1 0 1 1 +0 +1 0 0 0 1 1 1 1 1 0 1 1 0 +0 +1 0 1 1 1 0 0 1 1 1 1 1 0 +1 +0 1 1 1 1 1 0 0 0 0 0 1 0 +0 +0 0 0 0 1 1 1 0 1 1 0 0 1 +0 +1 1 0 0 0 1 0 1 0 0 1 0 1 +0 +0 0 1 1 0 1 1 0 1 1 1 0 0 +1 +1 1 0 1 1 1 0 1 0 0 0 0 0 +0 +1 0 1 0 0 1 0 0 1 0 1 1 0 +0 +0 0 0 0 1 0 1 0 0 1 1 0 0 +0 +0 0 1 0 0 0 1 0 0 1 1 1 0 +1 +0 1 0 0 0 0 0 1 0 0 0 0 1 +1 +1 1 1 1 0 1 0 1 0 1 1 1 1 +0 +0 1 0 0 1 1 0 1 1 1 1 0 0 +1 +1 0 1 1 0 1 1 0 0 1 0 1 0 +1 +0 1 0 0 1 1 0 0 1 1 1 0 0 +0 +1 1 1 1 0 1 0 1 1 1 0 0 1 +1 +0 0 1 1 1 0 1 0 1 1 0 1 1 +0 +0 1 0 1 0 0 1 0 1 0 1 1 1 +1 +0 1 0 0 1 0 0 1 0 1 0 0 0 +0 +1 1 1 1 0 1 0 0 1 0 1 1 1 +1 +1 1 0 1 1 1 1 0 1 1 1 0 1 +0 +1 1 0 1 1 1 1 1 1 1 1 0 1 +1 +1 1 1 1 1 1 0 1 1 1 0 0 0 +1 +1 0 1 1 0 0 0 0 0 0 0 1 0 +0 +1 1 0 1 1 1 0 0 0 1 0 1 1 +0 +1 1 0 1 0 1 1 0 0 0 0 1 0 +0 +0 1 0 1 1 0 0 1 0 0 0 1 1 +0 +0 0 1 1 0 1 0 1 1 0 1 0 1 +1 +0 1 0 0 1 1 1 0 1 1 1 1 0 +0 +1 0 1 0 1 1 0 0 1 0 1 1 1 +0 +1 0 0 1 1 0 1 1 0 1 0 0 1 +1 +1 1 0 0 1 1 1 1 1 1 0 0 1 +1 +1 1 0 0 0 0 0 1 0 1 1 0 0 +1 +0 0 0 0 0 0 1 0 0 0 0 0 0 +1 +0 1 0 1 1 1 0 1 0 1 0 1 1 +0 +0 0 1 0 0 1 1 0 0 0 1 0 1 +1 +1 0 0 0 1 1 1 1 0 0 1 0 0 +0 +1 1 1 1 0 0 1 1 1 0 1 0 1 +1 +0 0 1 1 1 0 0 0 1 1 0 0 1 +0 +0 0 0 0 0 0 1 1 0 1 0 1 1 +1 +1 0 1 0 0 1 1 1 0 0 0 1 1 +1 +1 1 1 1 0 1 0 1 0 1 0 1 1 +1 +1 0 0 1 1 0 1 0 1 1 0 1 0 +1 +1 0 1 0 1 1 1 0 1 1 1 0 0 +0 +0 0 1 0 1 1 0 0 1 0 0 1 0 +1 +1 0 0 1 0 0 1 1 0 0 0 0 0 +0 +1 0 0 1 0 1 1 1 1 1 0 0 0 +1 +0 0 1 1 1 1 1 1 0 0 0 1 0 +1 +0 0 1 1 1 1 1 0 1 1 0 1 0 +0 +1 0 1 0 0 0 0 1 0 1 0 1 0 +1 +1 0 1 0 1 0 1 0 0 1 0 1 1 +1 +1 0 0 0 1 1 0 1 1 0 0 0 1 +0 +0 1 0 1 0 1 1 0 1 1 0 0 1 +1 +0 0 0 0 0 1 1 1 1 1 0 0 0 +1 +0 1 0 1 1 1 0 1 1 0 0 0 1 +1 +1 0 1 1 1 0 1 0 0 1 0 0 1 +1 +0 1 0 0 1 0 1 0 1 0 1 0 1 +0 +1 0 1 1 0 1 1 1 0 0 1 1 0 +0 +0 1 1 1 0 1 1 0 0 0 0 0 0 +1 +1 0 0 0 1 0 1 1 0 1 0 0 0 +1 +1 1 0 1 1 1 0 1 1 1 0 1 1 +0 +1 1 0 1 0 0 1 1 0 1 1 0 1 +0 +1 0 1 1 0 1 1 0 1 1 0 1 1 +1 +0 0 0 1 1 1 0 0 0 1 0 1 1 +0 +1 0 1 0 0 1 0 1 0 0 0 1 1 +0 +1 0 1 1 0 0 1 1 0 1 0 0 1 +1 +0 0 1 1 1 0 0 1 0 1 0 1 1 +1 +0 1 0 0 1 0 1 0 1 1 1 1 0 +1 +0 0 0 1 0 1 0 0 0 1 1 1 1 +0 +1 0 0 0 1 0 0 1 0 0 1 0 1 +1 +0 0 0 1 1 0 1 1 0 1 1 1 1 +0 +1 1 1 1 1 1 1 1 1 1 0 1 0 +1 +1 0 1 0 0 0 1 0 1 1 0 0 1 +0 +1 1 0 1 0 1 0 0 0 1 0 1 1 +1 +1 1 0 0 0 0 1 0 1 1 1 0 1 +1 +1 0 0 1 1 1 1 0 1 0 1 1 1 +1 +0 1 0 1 1 1 1 0 1 1 0 1 1 +1 +0 0 0 1 1 0 1 1 0 0 0 1 1 +0 +1 1 0 0 1 0 0 0 0 1 0 0 0 +0 +1 0 0 1 0 0 1 1 1 1 0 1 0 +1 +0 1 1 1 1 0 0 1 0 1 0 1 1 +0 +0 0 1 0 1 0 0 0 0 0 1 1 1 +1 +1 0 0 1 0 1 1 0 1 0 1 1 1 +0 +0 1 1 1 1 0 1 1 0 0 0 1 0 +1 +0 0 0 0 0 0 1 1 0 1 1 1 0 +1 +0 0 1 1 0 0 1 1 1 1 0 1 0 +1 +1 0 0 0 0 0 1 1 1 1 0 0 0 +1 +0 0 0 1 0 0 1 1 1 0 0 1 0 +1 +1 0 1 0 1 1 1 1 0 0 0 1 1 +0 +1 0 0 1 1 1 0 1 0 1 0 0 1 +1 +1 1 0 0 0 1 0 1 0 1 0 0 0 +1 +0 0 0 0 1 1 0 1 0 0 1 0 1 +1 +1 0 1 1 1 1 1 1 1 1 0 0 0 +1 +1 1 1 0 0 0 0 0 0 0 1 0 0 +0 +0 0 0 1 1 1 1 0 0 0 0 1 0 +1 +1 1 0 1 1 1 1 1 0 0 1 1 1 +0 +1 0 0 0 0 1 1 0 1 1 1 0 1 +1 +1 1 1 0 1 1 0 0 1 1 1 0 1 +1 +1 1 0 1 1 1 1 1 1 0 1 1 0 +0 +0 1 1 1 1 0 1 1 0 1 1 0 1 +1 +1 1 1 1 1 0 1 0 0 1 1 1 0 +1 +1 1 1 0 0 1 0 0 0 1 0 0 1 +0 +0 1 1 1 1 0 1 1 0 1 1 1 1 +0 +1 0 1 1 1 0 0 1 0 1 0 1 0 +1 +1 0 1 1 1 1 1 1 0 0 0 1 1 +1 +1 1 1 0 1 0 0 0 0 0 1 1 1 +1 +0 0 0 1 1 0 0 1 1 0 0 0 1 +1 +0 1 0 0 1 1 1 0 1 1 0 0 1 +1 +1 1 1 1 1 1 0 0 1 1 1 1 1 +1 +0 1 1 1 0 0 1 1 0 1 1 0 1 +0 +1 1 0 1 1 0 1 1 0 0 0 1 0 +1 +0 1 0 0 1 1 1 1 0 0 1 0 1 +1 +1 1 1 0 0 0 0 0 0 0 1 1 0 +1 +0 0 1 1 1 0 1 0 1 1 0 0 1 +1 +1 0 1 0 0 1 0 1 0 1 0 1 0 +0 +0 0 0 0 0 0 1 1 0 0 1 0 0 +1 +0 0 1 0 1 1 0 0 1 1 1 0 1 +1 +1 0 0 0 0 0 1 0 1 1 1 1 1 +1 +0 1 0 1 0 1 1 0 0 0 0 1 1 +0 +1 1 0 0 1 0 0 0 0 0 1 0 1 +1 +0 0 0 1 0 1 0 1 0 1 0 0 0 +0 +1 1 0 0 1 0 0 1 1 0 0 1 0 +0 +0 0 1 1 0 0 0 0 0 1 0 1 1 +1 +1 1 1 0 0 0 0 0 1 0 1 1 0 +0 +0 1 0 1 0 0 1 0 1 1 1 0 1 +1 +0 1 0 0 1 0 1 1 0 1 1 0 0 +0 +1 1 0 1 0 1 1 1 1 1 1 1 1 +1 +0 0 1 1 1 1 0 1 1 1 0 1 1 +1 +1 0 1 0 0 1 0 0 0 1 0 1 0 +1 +1 1 0 1 1 0 0 1 1 1 0 0 1 +0 +0 1 1 1 0 0 1 0 1 0 0 0 0 +1 +1 0 0 0 0 1 0 0 0 0 0 1 1 +0 +0 0 0 1 1 0 1 0 0 0 1 1 1 +0 +1 1 1 0 1 1 0 1 0 0 1 1 1 +1 +0 0 1 1 0 1 0 0 0 0 1 1 1 +0 +1 1 1 1 0 1 1 1 0 0 0 1 1 +1 +1 0 1 0 0 0 0 0 0 0 0 0 1 +1 +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 1 0 +0 +1 0 0 1 1 0 1 0 1 1 1 1 1 +1 +0 1 1 1 1 0 1 1 1 1 1 0 0 +1 +0 1 1 0 1 1 1 1 0 1 1 0 1 +1 +0 1 0 1 1 1 0 0 0 0 0 1 1 +0 +0 0 0 0 1 1 0 0 1 0 0 1 0 +0 +1 1 1 1 1 0 1 0 0 0 1 0 1 +0 +0 0 0 1 1 0 1 0 0 1 1 0 1 +0 +0 0 1 1 1 1 0 0 0 0 1 1 1 +1 +1 1 1 1 0 1 1 0 0 0 1 1 0 +0 +1 0 0 1 1 0 1 1 0 0 1 0 0 +0 +0 0 0 1 0 0 1 1 1 1 1 1 1 +0 +0 0 1 0 0 0 1 1 0 0 0 1 1 +1 +1 0 0 1 0 0 0 1 1 0 1 1 1 +1 +0 1 0 1 1 0 0 1 0 1 1 0 0 +0 +1 0 1 1 1 1 1 1 0 1 1 0 1 +0 +0 1 1 1 0 1 1 1 1 0 1 0 0 +0 +0 1 1 0 0 0 0 1 1 0 0 1 1 +0 +1 1 1 0 0 0 1 0 0 1 0 1 0 +0 +0 1 1 0 0 1 0 1 1 0 0 1 1 +1 +1 1 0 0 0 0 0 0 1 1 0 1 1 +0 +0 1 1 0 1 0 1 1 0 0 1 0 0 +0 +0 1 0 0 1 0 1 0 1 0 1 0 0 +1 +1 0 1 1 0 0 0 0 1 1 1 1 0 +1 +0 0 0 1 0 0 0 1 1 1 1 1 1 +1 +0 1 0 1 1 0 1 0 0 1 0 0 0 +1 +1 0 0 1 1 1 0 1 0 0 0 1 0 +0 +0 1 0 0 0 1 1 1 1 1 0 0 1 +1 +0 0 1 1 0 0 0 0 1 0 1 1 0 +1 +1 0 1 0 0 0 0 0 1 0 1 1 0 +1 +1 0 0 1 0 0 1 0 0 0 0 1 1 +1 +1 0 1 0 1 1 1 0 0 1 1 1 0 +0 +1 1 0 0 1 1 0 0 1 0 0 1 0 +0 +0 0 0 1 1 0 1 0 0 0 1 0 1 +1 +1 1 1 1 1 1 0 1 1 1 0 0 1 +0 +1 1 1 0 1 1 1 0 0 0 1 0 1 +0 +0 1 1 0 1 1 1 0 0 0 0 1 1 +1 +0 1 0 0 0 0 1 1 1 0 0 1 1 +0 +1 0 1 1 1 0 0 1 1 0 0 1 1 +0 +1 1 1 0 1 0 0 0 1 0 0 1 0 +0 +0 0 0 1 1 1 1 1 0 1 0 0 1 +1 +1 1 0 0 1 0 0 0 1 1 1 0 0 +0 +0 1 1 1 0 0 0 1 0 0 0 1 1 +0 +0 0 1 1 0 1 0 1 1 0 1 0 0 +0 +1 0 0 0 1 0 1 0 0 1 1 0 1 +0 +1 0 1 0 0 1 0 1 1 1 0 0 0 +0 +0 0 1 0 0 1 0 0 0 1 0 0 1 +0 +0 1 0 0 1 0 0 0 0 1 1 1 0 +1 +0 1 1 0 1 1 0 0 1 0 0 0 1 +0 +1 1 0 0 0 1 0 0 1 0 1 0 1 +0 +0 0 0 0 1 1 1 1 0 0 1 0 0 +1 +0 1 1 0 1 0 1 0 1 0 0 1 0 +0 +0 0 0 0 1 1 0 1 1 1 0 1 1 +1 +0 1 1 0 0 0 1 1 1 0 0 1 1 +1 +0 0 1 0 1 0 0 0 0 1 1 1 1 +0 +1 0 1 0 0 0 1 1 1 1 0 0 1 +1 +1 0 0 0 0 0 0 0 1 1 0 0 1 +0 +1 1 1 1 0 0 1 0 1 1 1 1 1 +0 +1 0 1 1 1 1 1 0 1 0 1 1 0 +1 +1 0 1 0 0 1 1 0 0 0 1 0 1 +0 +1 0 1 1 0 0 1 0 1 1 0 0 0 +0 +0 0 1 0 1 0 1 0 1 1 0 0 0 +1 +0 0 0 1 0 0 1 0 1 0 1 0 0 +0 +1 1 0 1 1 1 1 0 1 0 0 0 0 +1 +1 1 1 1 0 1 1 1 0 1 0 0 1 +1 +0 0 0 0 0 0 0 1 1 0 0 1 1 +0 +0 1 0 1 1 1 0 1 1 0 1 1 0 +0 +1 1 0 0 0 0 0 1 0 0 0 1 1 +1 +0 1 0 0 0 0 1 1 1 1 1 0 1 +1 +0 0 1 0 1 1 1 1 1 1 0 0 1 +0 +1 0 0 0 1 1 0 0 0 1 0 1 0 +1 +1 1 0 1 1 0 1 0 0 0 0 1 1 +1 +0 1 0 0 1 0 0 0 0 0 1 0 1 +0 +1 0 0 1 0 0 0 0 0 0 1 1 1 +1 +0 0 0 0 0 0 0 0 1 0 1 0 0 +0 +0 1 0 0 0 0 1 1 1 0 1 0 0 +1 +0 0 1 1 0 0 1 0 0 1 1 1 1 +1 +1 0 0 0 0 1 1 1 1 1 0 1 0 +1 +1 1 1 1 0 1 1 0 0 0 1 0 0 +1 +1 1 0 1 1 1 1 0 0 0 1 1 1 +1 +0 0 0 0 1 0 0 1 1 0 1 1 1 +0 +0 0 1 0 1 0 0 1 0 1 1 0 1 +0 +1 0 0 1 1 0 1 0 1 0 0 1 0 +0 +0 0 1 1 0 0 0 0 0 1 0 0 0 +1 +0 0 1 1 0 0 0 1 1 0 1 1 0 +0 +1 1 1 1 0 0 1 0 0 0 1 0 0 +0 +1 1 1 0 0 1 1 1 0 1 0 0 1 +0 +0 1 1 0 1 1 1 0 0 0 1 1 0 +1 +0 0 1 0 0 1 0 1 0 0 0 0 1 +0 +1 1 0 1 1 1 1 1 1 1 1 1 0 +1 +0 0 0 1 1 1 1 0 1 1 0 1 0 +1 +0 0 1 1 1 1 0 1 0 0 0 0 0 +1 +0 1 0 1 0 1 0 1 0 1 0 1 0 +0 +1 1 1 1 0 0 1 0 0 1 0 1 0 +1 +1 1 1 1 1 1 0 0 0 1 1 1 0 +1 +1 0 1 0 0 0 0 1 0 1 0 1 1 +0 +0 1 0 0 1 0 1 1 0 0 0 1 0 +1 +1 1 0 1 0 0 0 1 0 1 1 0 1 +1 +1 0 0 0 1 0 1 0 0 1 0 1 1 +0 +0 1 0 0 0 0 0 0 0 0 0 1 0 +0 +1 0 1 0 1 0 1 0 0 0 0 0 0 +0 +1 1 1 0 1 0 1 0 0 0 0 1 1 +1 +1 1 0 0 1 0 1 0 0 0 0 1 0 +1 +0 1 1 0 0 1 0 1 0 0 0 1 1 +0 +0 0 0 0 0 1 1 0 0 0 1 0 1 +0 +0 0 0 0 0 0 1 0 1 1 1 1 0 +1 +1 1 0 0 1 0 1 0 0 1 1 0 1 +1 +0 0 1 1 0 1 0 1 0 1 0 0 1 +0 +1 1 1 1 1 0 1 1 1 1 1 1 1 +0 +0 0 0 1 1 0 0 0 0 0 0 0 0 +0 +0 1 1 1 1 1 0 0 0 1 1 1 1 +1 +1 0 0 0 1 1 1 0 0 1 1 1 1 +0 +0 0 0 0 0 0 1 0 1 1 1 1 1 +0 +0 0 0 0 0 1 0 1 1 0 0 1 1 +1 +0 0 1 0 0 1 0 0 0 1 1 1 0 +1 +0 0 1 0 0 1 0 1 1 1 1 1 1 +0 +0 1 1 0 1 0 1 0 1 1 0 1 0 +1 +0 1 0 1 0 1 0 0 0 0 1 0 1 +1 +0 0 1 0 0 1 0 0 0 1 1 0 1 +1 +1 1 1 0 1 0 0 1 1 1 1 1 1 +0 +1 1 1 1 0 0 1 0 1 1 1 1 0 +1 +0 1 0 0 0 1 0 0 1 0 1 0 0 +0 +1 1 1 1 1 0 0 0 0 0 1 0 1 +1 +0 1 0 1 0 0 1 1 0 1 0 1 1 +1 +0 1 0 1 1 1 0 1 0 0 1 0 1 +1 +1 1 1 0 0 1 0 1 1 0 0 0 0 +0 +0 0 1 1 0 0 0 0 0 1 1 1 1 +0 +1 0 1 1 0 1 1 1 0 0 0 1 0 +1 +1 0 0 0 1 1 0 1 0 1 0 1 1 +1 +1 0 1 1 1 0 1 0 0 0 0 1 1 +1 +0 0 1 1 0 1 1 0 0 1 0 1 0 +0 +1 1 1 0 1 0 0 1 0 1 0 0 1 +1 +1 0 0 1 1 1 0 1 1 1 1 0 1 +1 +1 0 1 0 1 0 1 0 0 0 0 1 0 +1 +1 1 1 0 0 0 0 0 0 0 1 1 1 +0 +1 1 1 1 1 0 0 1 1 0 0 0 1 +0 +0 0 1 0 1 1 0 1 1 1 1 1 1 +1 +1 1 1 0 1 1 0 1 1 0 1 1 1 +0 +1 0 0 1 0 1 0 1 0 1 1 0 0 +0 +0 1 0 1 1 1 0 1 1 1 1 1 0 +1 +0 0 0 1 0 0 0 0 1 1 1 0 1 +1 +1 1 1 1 1 0 0 1 1 1 0 1 1 +0 +1 1 0 1 1 0 0 1 1 0 0 1 1 +0 +0 1 1 1 1 0 0 0 0 1 0 1 1 +1 +0 0 1 1 0 0 0 0 1 1 1 1 0 +0 +1 0 0 1 0 0 1 1 0 1 1 0 1 +1 +1 0 1 1 1 1 0 1 0 0 1 1 0 +0 +0 1 1 1 0 0 1 1 1 1 1 1 0 +1 +1 1 1 0 0 1 0 1 1 0 1 1 0 +0 +1 1 1 1 1 1 1 1 0 1 1 1 0 +1 +0 0 0 0 1 0 1 0 0 0 0 1 1 +0 +1 0 1 0 0 0 1 1 1 1 1 0 1 +0 +1 1 0 0 1 0 1 0 1 0 0 0 1 +0 +1 1 1 0 1 0 0 0 1 0 0 0 0 +1 +0 1 0 1 0 1 1 0 1 0 0 1 0 +0 +1 0 1 0 0 1 0 1 0 0 0 0 1 +1 +1 0 1 1 0 0 0 0 1 0 1 0 1 +0 +0 1 1 0 1 0 0 1 0 0 0 1 0 +1 +0 1 1 1 0 0 1 0 0 1 0 1 1 +1 +1 0 0 0 0 1 1 0 1 1 0 0 0 +1 +1 0 0 1 0 1 0 0 1 1 0 0 0 +1 +1 0 0 0 1 1 1 1 1 1 0 1 1 +1 +1 0 0 0 1 0 0 0 1 0 1 0 1 +1 +0 1 1 0 1 1 1 0 0 1 1 1 0 +0 +0 1 0 1 1 1 0 0 0 0 1 0 1 +0 +1 1 0 0 0 0 0 0 1 1 0 0 0 +0 +0 1 0 1 0 1 1 0 0 1 0 0 1 +0 +0 1 1 1 0 1 1 1 1 1 0 0 1 +1 +0 1 0 1 1 1 1 0 1 0 1 0 0 +1 +0 0 0 0 1 1 0 1 1 1 1 0 1 +1 +0 1 1 1 1 0 1 0 1 0 1 0 1 +0 +1 0 1 0 1 1 0 0 0 0 1 1 0 +0 +0 1 0 0 1 0 0 1 1 1 1 0 0 +0 +0 1 0 1 1 1 0 0 1 0 1 1 1 +0 +1 1 1 0 0 0 1 0 1 1 0 0 0 +0 +0 1 1 0 0 0 1 0 1 0 1 0 0 +1 +0 0 0 1 0 1 1 0 1 1 1 1 0 +1 +1 1 0 0 1 1 0 1 0 0 0 1 1 +1 +1 1 0 1 0 1 0 0 0 0 0 1 0 +1 +0 0 1 1 1 0 1 0 1 0 0 1 0 +0 +1 1 1 1 0 1 0 0 0 0 1 1 0 +1 +0 0 1 0 0 0 0 0 1 1 0 0 1 +0 +1 1 0 0 1 0 1 1 0 0 0 1 0 +0 +0 0 1 1 1 0 0 1 0 0 1 0 0 +1 +1 0 0 1 1 0 1 1 0 0 0 0 1 +0 +1 1 1 1 0 0 0 1 1 0 1 0 0 +1 +1 0 1 0 1 1 0 1 1 0 1 0 0 +1 +1 1 1 1 1 1 0 1 1 0 0 1 0 +1 +0 1 1 1 1 0 1 1 0 0 0 0 1 +1 +1 0 0 1 0 1 1 1 1 1 1 0 0 +0 +1 1 1 0 1 0 1 0 0 1 0 1 0 +1 +0 0 0 0 1 1 0 0 1 1 0 1 0 +1 +1 0 0 1 0 0 0 1 1 1 1 0 1 +1 +0 1 0 0 0 0 1 0 1 1 0 1 0 +1 +0 0 0 0 1 0 1 0 0 1 1 0 1 +1 +1 1 0 0 0 1 1 0 1 1 0 0 1 +1 +1 0 1 1 1 0 1 1 1 0 0 0 1 +0 +0 0 0 1 0 1 0 0 0 0 0 1 1 +0 +1 1 0 1 0 0 0 0 0 1 0 1 1 +0 +1 0 1 1 0 1 0 0 0 1 0 1 1 +1 +1 0 0 0 0 1 0 0 1 0 1 0 0 +0 +1 0 1 0 1 0 0 1 1 0 1 1 1 +0 +1 1 1 0 1 0 1 0 0 0 1 1 0 +1 +1 0 0 0 0 0 1 0 1 1 0 0 0 +0 +1 0 1 0 0 1 1 1 1 0 0 1 0 +1 +1 0 0 0 0 0 0 0 0 1 0 0 0 +0 +0 1 1 0 0 1 1 1 0 0 1 1 1 +0 +1 0 1 0 1 0 0 1 1 0 0 0 0 +1 +0 0 0 0 1 1 1 1 0 0 0 1 1 +0 +1 0 0 1 1 1 0 1 1 0 1 1 0 +0 +0 1 0 0 0 0 0 1 1 0 0 1 1 +1 +1 1 0 0 1 1 0 0 0 0 1 0 0 +1 +1 0 1 0 1 0 1 0 0 1 0 0 0 +1 +0 1 1 0 0 0 0 0 0 0 0 0 1 +1 +1 1 0 0 1 0 1 1 0 0 1 0 1 +1 +1 0 1 1 1 0 1 1 0 0 1 1 1 +1 +0 0 1 0 1 0 1 1 0 1 1 1 0 +1 +0 1 0 0 0 1 0 1 1 0 1 0 1 +0 +1 0 0 0 0 1 1 0 1 0 0 0 0 +0 +0 0 0 1 1 1 1 0 1 1 1 1 1 +1 +0 1 1 1 0 1 1 1 1 0 1 1 0 +1 +1 1 1 1 0 1 0 1 0 1 1 0 1 +1 +1 0 0 0 1 1 1 1 0 1 0 0 0 +0 +0 0 1 1 0 1 1 1 1 0 1 1 0 +0 +0 0 0 0 0 1 1 1 0 1 1 0 0 +1 +0 1 0 1 1 1 1 1 0 1 0 1 0 +0 +1 1 1 0 1 1 0 0 1 0 1 1 0 +0 +0 0 1 1 0 0 0 1 0 1 0 0 1 +1 +1 1 0 1 0 1 0 1 0 1 0 1 0 +1 +1 1 1 1 0 0 0 1 0 0 1 0 1 +1 +0 1 0 1 0 0 1 1 1 1 0 1 1 +0 +1 0 0 0 0 0 1 1 1 0 1 1 0 +0 +0 1 0 0 1 0 1 0 0 0 0 0 0 +1 +1 0 1 1 0 1 1 0 1 1 0 0 1 +0 +1 0 0 1 1 1 1 0 0 1 1 0 1 +0 +1 0 0 1 1 1 0 0 0 1 1 0 1 +1 +1 0 0 0 1 0 1 0 1 1 0 0 1 +0 +1 0 1 1 1 1 0 1 1 1 1 0 1 +0 +1 1 0 1 1 0 1 0 0 1 0 0 1 +1 +0 0 0 0 0 1 1 1 1 0 1 1 0 +0 +0 0 0 0 0 1 0 1 0 0 0 0 1 +1 +0 0 0 0 0 0 0 1 0 0 0 1 1 +1 +1 1 0 1 1 0 1 1 0 0 1 0 1 +0 +0 1 0 0 1 0 0 1 1 0 1 1 1 +1 +1 0 1 0 1 1 0 0 1 1 1 0 0 +1 +0 1 0 0 1 1 0 0 0 0 1 0 1 +1 +0 0 0 1 0 0 1 1 1 1 1 0 1 +1 +0 0 0 1 1 0 0 0 1 1 1 1 1 +1 +0 0 0 1 1 1 1 0 0 0 1 1 1 +1 +0 1 0 1 0 0 0 0 1 1 0 1 1 +0 +0 0 1 0 1 1 1 1 1 0 0 0 1 +1 +1 0 0 0 1 1 1 0 1 1 0 0 0 +0 +1 1 1 0 0 1 0 1 0 0 1 0 1 +1 +1 0 1 0 0 1 1 0 1 0 1 0 0 +0 +1 1 0 0 0 1 0 0 0 1 1 0 0 +1 +0 1 1 0 0 1 1 1 0 1 0 0 1 +1 +0 0 0 0 0 0 1 0 1 1 0 0 1 +0 +1 1 1 1 0 0 0 0 0 0 0 1 1 +0 +0 0 0 1 1 0 0 1 0 1 0 1 1 +0 +1 0 0 1 0 1 1 0 0 1 0 1 0 +0 +0 0 1 1 1 1 0 0 1 0 0 1 0 +0 +1 1 0 0 1 0 0 1 1 1 1 1 0 +0 +1 0 0 1 0 0 1 0 1 1 1 0 1 +1 +0 0 1 1 0 0 0 1 0 1 1 1 0 +0 +1 1 0 0 0 0 0 0 1 1 1 1 1 +1 +1 1 0 0 0 0 1 1 0 1 0 0 0 +1 +1 1 0 0 0 1 0 1 0 1 0 1 0 +0 +1 1 0 1 1 0 0 0 1 1 1 0 0 +1 +0 0 0 0 1 0 0 1 1 1 1 1 1 +1 +1 0 0 1 0 0 0 0 0 1 1 1 0 +1 +0 0 1 1 1 1 0 1 1 0 0 1 1 +0 +1 0 1 0 0 1 1 0 1 1 1 0 0 +1 +0 1 1 0 0 1 1 1 1 1 0 1 1 +1 +1 1 1 1 1 0 1 1 0 1 0 0 1 +1 +1 0 0 1 0 1 0 1 0 1 0 1 1 +1 +0 0 0 0 1 1 0 1 0 1 0 1 0 +1 +1 0 1 1 0 1 0 0 1 0 1 1 1 +0 +0 0 1 0 1 1 0 0 1 1 1 1 1 +0 +0 1 0 0 0 1 0 1 1 0 0 0 1 +1 +0 0 1 0 1 1 0 0 1 1 0 0 1 +0 +1 0 0 0 0 1 0 1 1 0 1 0 1 +0 +0 1 0 1 1 1 1 0 0 0 1 1 1 +0 +1 0 1 1 1 0 1 1 1 0 0 1 1 +1 +0 0 1 1 1 1 1 0 0 1 1 0 0 +1 +0 1 1 1 0 1 1 0 1 1 0 1 0 +0 +1 1 1 0 1 1 0 1 1 1 0 0 1 +1 +1 0 1 0 1 1 1 0 1 1 0 0 0 +1 +0 1 0 1 0 1 1 1 1 1 0 0 0 +1 +0 0 0 0 1 0 1 1 1 0 1 0 0 +1 +0 1 0 1 0 1 0 1 0 0 0 1 1 +0 +0 0 1 1 0 1 1 0 0 1 1 1 1 +0 +0 1 0 0 0 1 1 1 0 0 0 1 1 +0 +0 0 0 1 1 1 0 1 0 1 1 0 1 +1 +0 0 1 1 1 0 1 0 1 1 1 1 0 +0 +1 0 1 0 1 1 0 1 0 1 0 0 1 +1 +1 0 1 0 0 1 1 1 1 0 0 0 0 +0 +1 0 0 1 0 0 1 0 1 0 1 1 1 +1 +1 1 0 0 0 1 0 0 0 0 1 1 0 +1 +0 0 1 0 1 1 0 0 1 1 0 1 1 +1 +0 0 1 1 0 0 0 1 0 1 1 1 1 +1 +0 0 0 1 0 0 1 0 1 0 0 0 0 +1 +0 1 0 1 0 1 1 1 1 0 0 1 0 +1 +0 0 0 1 0 1 0 1 0 1 1 1 1 +1 +1 0 0 1 0 0 0 1 0 0 0 0 0 +1 +1 1 1 0 1 1 0 0 1 1 1 0 0 +0 +1 1 0 1 0 1 1 1 1 0 0 1 0 +0 +1 1 1 0 0 0 0 0 0 0 0 0 1 +0 +1 0 0 1 0 1 0 0 1 0 0 1 0 +1 +1 1 0 1 0 1 0 1 0 1 0 1 1 +0 +0 0 0 0 1 1 0 1 0 1 0 0 1 +1 +0 0 1 0 0 0 0 0 0 1 1 1 0 +0 +1 1 1 1 0 0 0 1 1 0 1 1 0 +0 +0 1 0 0 0 0 1 0 0 0 1 0 1 +0 +0 0 0 0 0 0 0 0 1 1 0 0 0 +0 +1 0 0 0 1 0 0 0 0 1 1 0 1 +1 +1 0 0 1 0 1 1 0 1 0 0 0 0 +1 +1 0 1 0 1 0 0 1 1 0 0 0 1 +0 +0 1 1 0 0 0 0 1 0 1 0 1 0 +1 +0 1 0 1 0 0 1 1 1 1 1 0 1 +0 +0 0 0 1 1 0 1 1 1 0 1 1 1 +0 +0 1 0 0 1 1 1 1 1 1 0 0 0 +1 +1 0 0 1 1 0 1 1 0 0 0 0 0 +1 +1 0 1 1 1 1 0 0 1 1 0 1 1 +1 +1 1 1 1 0 0 0 1 1 1 0 0 0 +1 +1 0 1 1 0 0 1 0 0 0 1 0 0 +1 +1 1 0 1 1 1 1 0 0 0 1 0 1 +0 +0 0 0 1 0 1 1 0 0 0 1 0 1 +1 +1 1 0 0 1 1 1 1 1 1 1 1 0 +0 +1 0 1 1 1 1 0 0 1 0 0 1 1 +0 +1 0 1 1 0 1 0 0 0 0 1 0 0 +1 +0 0 0 1 0 0 0 0 1 0 0 0 0 +0 +1 0 0 0 1 0 0 1 1 0 1 0 1 +0 +1 0 1 1 1 0 0 1 1 1 0 0 1 +0 +1 0 0 1 1 0 0 0 0 1 0 0 1 +1 +1 1 1 1 1 1 1 0 0 1 1 1 1 +1 +1 1 1 0 0 0 1 0 1 1 0 0 1 +1 +0 1 1 0 1 1 1 1 1 0 0 0 0 +1 +1 0 1 0 0 0 1 0 0 1 1 0 0 +1 +1 0 0 1 0 1 1 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 1 0 1 0 1 0 0 1 1 +1 +1 0 0 0 0 1 0 1 0 0 0 1 1 +1 +1 1 1 1 0 0 0 1 0 1 0 0 1 +1 +1 1 0 0 1 1 1 1 1 1 0 1 0 +1 +0 0 1 1 0 0 0 1 0 0 1 1 1 +0 +1 0 0 1 1 0 0 0 1 1 0 0 1 +0 +1 0 1 0 0 0 1 0 1 1 1 1 0 +1 +0 0 1 1 1 0 1 1 0 0 1 0 1 +1 +0 0 1 0 1 1 1 1 1 1 1 0 0 +0 +0 1 0 1 0 0 1 0 0 0 0 1 1 +1 +0 0 1 1 1 1 1 1 0 0 1 1 1 +1 +0 0 1 1 0 1 0 1 0 0 0 1 1 +0 +1 1 0 1 0 1 0 1 1 0 1 1 0 +0 +1 0 1 1 1 0 1 0 1 1 0 0 0 +1 +0 0 1 1 1 1 0 0 1 0 1 0 0 +0 +1 0 0 0 1 0 1 0 0 1 1 1 0 +0 +1 1 0 1 0 1 0 0 0 1 1 0 1 +1 +0 0 0 0 1 1 1 1 1 1 0 0 1 +1 +1 0 1 0 0 0 1 0 0 1 0 1 1 +0 +0 0 0 0 1 0 1 0 1 1 1 0 1 +0 +1 0 0 0 0 1 1 1 1 1 1 0 0 +1 +1 1 1 1 0 1 0 1 0 1 0 0 1 +0 +0 0 0 0 1 1 1 0 1 0 1 0 0 +1 +0 0 0 1 1 0 0 0 1 1 1 1 0 +0 +0 1 0 0 0 0 0 1 0 0 1 1 1 +1 +1 0 1 0 0 1 0 0 0 0 1 1 0 +1 +0 1 1 1 0 1 1 0 1 0 0 1 0 +1 +1 1 0 1 0 1 1 0 0 1 0 0 0 +0 +0 0 0 1 1 1 0 1 0 1 1 1 1 +0 +1 1 1 0 0 1 0 0 1 0 0 1 1 +1 +1 0 0 1 1 0 1 1 1 1 0 0 1 +0 +0 0 0 1 0 0 1 0 0 1 1 1 0 +1 +0 1 0 1 0 1 1 1 1 0 1 1 0 +0 +1 1 1 0 0 0 1 0 1 0 0 1 0 +0 +0 1 0 0 0 1 0 0 1 1 1 1 1 +1 +0 1 1 1 0 1 0 0 1 1 0 0 0 +0 +0 1 0 1 0 0 1 0 0 1 1 0 0 +1 +0 0 1 0 0 0 1 0 1 1 1 1 0 +0 +0 1 1 1 0 1 0 0 1 0 1 0 1 +1 +0 1 1 1 0 0 1 1 1 1 1 1 1 +0 +1 0 1 1 0 1 1 1 1 1 1 0 1 +0 +1 1 0 0 1 1 0 1 1 1 0 1 1 +1 +1 1 0 1 1 1 1 0 0 0 0 1 1 +0 +1 0 1 1 1 1 1 0 1 1 0 0 1 +1 +0 0 0 0 0 1 0 1 1 1 0 0 1 +1 +1 0 1 1 0 0 0 0 0 1 1 0 1 +0 +0 1 0 0 0 0 1 0 0 0 1 1 1 +1 +1 0 1 0 0 0 1 1 1 0 1 0 1 +1 +1 1 1 1 1 1 0 1 0 0 1 0 0 +0 +1 1 0 1 1 0 0 1 1 1 0 1 0 +0 +0 0 0 1 0 1 1 1 0 0 1 0 0 +1 +1 1 0 0 0 1 0 0 0 0 1 1 1 +0 +0 0 1 1 0 0 0 1 1 0 1 0 1 +0 +0 0 1 0 0 0 1 1 0 0 1 1 1 +0 +1 0 0 0 0 0 0 0 0 1 1 1 1 +1 +0 0 1 0 1 1 1 0 1 1 0 1 0 +1 +0 0 1 0 0 0 0 0 0 0 0 1 0 +0 +0 1 0 1 1 1 1 0 0 1 0 0 1 +1 +1 0 1 0 1 0 1 0 0 0 1 0 1 +0 +1 0 1 1 1 0 0 1 1 1 1 0 1 +1 +0 1 1 0 1 0 1 0 1 1 1 1 0 +0 +0 0 0 1 1 1 0 1 1 0 1 0 0 +0 +1 1 1 0 1 0 0 0 0 0 0 0 0 +0 +1 0 1 0 0 0 0 1 0 1 0 0 0 +0 +1 1 0 0 1 1 1 1 1 1 1 1 1 +1 +0 1 1 1 1 1 1 1 1 1 1 1 1 +0 +0 0 1 0 1 0 0 0 0 1 0 0 0 +1 +0 1 1 0 1 0 0 1 0 1 0 0 1 +0 +1 1 1 1 1 0 0 0 1 0 1 0 1 +0 +0 1 1 1 0 0 1 1 0 1 0 0 0 +0 +0 0 1 0 1 0 1 0 1 1 1 0 0 +0 +0 1 1 1 1 0 1 1 0 1 0 1 1 +1 +0 0 1 0 0 1 0 0 1 0 1 0 0 +0 +1 0 0 1 0 1 0 0 0 0 0 0 0 +1 +1 0 0 1 0 1 0 1 1 0 0 1 0 +0 +0 0 1 1 1 0 0 1 1 1 0 1 1 +0 +0 0 1 1 1 0 1 1 0 0 0 1 0 +0 +1 0 0 1 0 0 1 0 0 0 1 1 1 +0 +0 0 0 0 1 0 1 0 0 0 0 0 1 +1 +0 0 1 0 1 0 1 0 1 0 1 1 0 +0 +1 1 1 1 1 1 0 0 1 0 1 0 1 +1 +1 0 0 1 0 0 0 1 0 1 1 0 1 +0 +0 1 0 1 1 1 1 0 1 1 1 1 1 +0 +0 1 0 0 0 1 1 0 1 0 0 0 1 +1 +0 0 0 0 1 0 0 1 0 1 0 0 0 +1 +0 0 0 0 1 1 1 0 1 0 1 0 1 +0 +1 1 1 0 0 1 1 0 1 1 1 0 0 +0 +0 0 1 0 0 0 1 0 1 0 1 1 0 +1 +1 0 1 1 0 1 1 0 0 1 0 0 1 +1 +1 1 0 1 1 0 1 0 1 0 0 1 1 +0 +0 1 1 0 1 0 0 1 0 1 1 1 1 +0 +1 0 1 1 1 1 0 1 0 1 1 1 1 +0 +0 0 0 0 1 1 1 0 1 0 0 1 1 +0 +0 1 1 1 0 0 0 1 0 1 0 1 1 +1 +1 0 0 1 0 0 1 0 0 1 0 1 1 +0 +0 1 0 0 1 0 1 0 1 1 1 0 0 +0 +1 1 1 1 0 1 1 1 0 0 0 1 0 +0 +0 0 0 1 1 0 0 1 0 0 0 1 1 +1 +1 0 0 1 0 1 1 1 0 0 1 1 1 +0 +0 1 0 1 1 0 0 0 0 0 0 1 1 +1 +1 1 1 0 0 1 1 1 0 1 0 1 1 +1 +1 1 0 0 1 1 1 1 0 1 0 1 0 +0 +0 1 1 0 1 1 1 1 1 1 1 0 1 +0 +1 0 1 0 0 0 0 1 1 1 0 1 0 +0 +1 0 0 0 0 0 1 1 0 1 1 0 1 +0 +0 1 0 0 0 1 0 0 0 0 1 0 0 +1 +1 0 1 1 0 1 1 0 0 0 1 0 0 +0 +0 0 1 0 0 0 1 1 0 0 0 0 1 +0 +0 0 1 1 0 0 1 0 0 0 0 1 1 +1 +1 0 1 0 0 0 1 1 1 0 1 1 1 +0 +1 1 1 1 1 0 1 1 1 1 1 0 1 +1 +0 0 0 0 0 1 0 0 1 1 0 1 1 +1 +0 0 1 1 1 1 0 0 0 1 0 1 1 +1 +1 1 0 0 0 0 1 1 0 1 0 1 0 +0 +0 1 0 0 1 1 1 0 0 1 1 1 1 +0 +1 1 1 0 0 0 1 1 0 1 0 1 0 +1 +1 1 0 0 1 1 1 0 1 1 1 1 1 +0 +0 1 0 1 0 0 0 1 0 0 0 1 1 +1 +0 0 0 1 0 1 0 1 1 1 1 1 0 +1 +1 1 1 0 0 1 0 0 1 1 1 1 0 +0 +1 1 0 0 1 1 0 1 1 1 1 0 0 +0 +0 1 1 1 0 0 1 0 0 1 0 0 0 +1 +1 1 1 0 0 0 0 0 1 1 0 1 1 +1 +1 1 1 1 1 0 1 1 0 0 0 0 1 +0 +1 1 1 1 0 0 0 0 1 1 1 0 1 +0 +1 0 1 0 1 0 1 0 1 1 1 1 1 +1 +0 0 0 1 1 1 0 0 1 0 0 1 1 +0 +1 0 1 0 1 1 0 0 1 0 0 1 1 +1 +1 0 0 0 1 1 1 1 1 0 0 0 0 +0 +0 1 1 1 1 1 0 0 1 1 0 0 0 +1 +0 1 0 0 0 0 1 1 1 1 0 1 0 +0 +0 0 0 0 0 0 0 1 1 0 0 0 0 +0 +1 1 0 0 1 1 0 1 0 0 1 1 0 +1 +1 1 0 1 1 1 1 0 1 1 0 0 1 +1 +1 1 1 1 0 0 0 1 0 0 1 1 0 +1 +0 1 1 1 1 1 0 1 0 0 0 0 1 +1 +0 0 1 0 0 1 0 0 1 1 0 0 0 +0 +0 1 1 0 1 1 1 1 1 1 1 1 0 +0 +0 1 1 1 1 1 1 1 1 1 1 1 0 +1 +0 0 1 1 0 0 1 1 1 0 1 1 1 +0 +1 0 0 1 0 1 0 1 0 0 0 1 0 +1 +0 1 0 1 0 1 1 1 0 0 0 0 1 +0 +1 1 1 0 0 0 1 0 0 1 1 0 0 +0 +1 0 0 0 0 0 1 0 0 0 0 1 0 +1 +0 0 1 0 0 1 1 0 1 1 1 0 1 +1 +1 1 0 0 1 1 0 0 0 1 1 1 1 +0 +1 1 0 0 0 1 1 0 0 1 0 0 0 +1 +1 1 0 0 0 0 0 0 0 1 1 1 1 +0 +0 0 0 0 1 1 0 1 0 0 0 1 1 +1 +1 1 1 1 0 1 0 0 0 0 0 0 0 +1 +1 1 1 1 0 1 0 1 0 1 0 1 0 +0 +0 0 0 0 0 0 1 1 1 0 0 0 1 +0 +1 0 1 1 0 1 0 1 1 1 1 0 1 +1 +1 1 1 1 1 1 0 1 1 0 0 0 1 +1 +0 0 1 0 1 0 1 1 1 1 1 1 0 +0 +0 1 0 1 1 1 0 1 1 1 0 0 1 +0 +1 1 0 1 0 0 0 0 0 1 1 0 0 +1 +1 0 1 0 0 0 0 0 0 0 1 0 1 +0 +1 1 1 0 0 0 0 1 1 0 1 0 0 +0 +1 1 1 1 0 1 0 0 1 1 0 0 1 +0 +1 0 0 1 1 1 1 0 0 1 1 0 0 +1 +1 0 0 1 0 1 1 1 0 1 1 0 1 +0 +0 0 1 0 1 0 0 1 1 0 1 0 1 +0 +1 0 1 1 1 0 0 0 1 1 1 1 0 +0 +0 1 1 1 0 1 0 0 0 1 1 0 0 +0 +0 1 0 1 1 0 1 1 0 1 1 1 1 +1 +1 0 1 0 0 0 0 0 0 1 1 0 1 +1 +1 1 0 0 0 0 1 1 1 1 0 0 1 +1 +1 1 1 1 0 1 1 0 1 1 0 0 0 +0 +0 0 1 0 1 0 1 0 1 0 0 1 1 +0 +1 1 0 0 0 0 1 0 1 0 1 1 1 +1 +1 0 1 1 0 0 1 1 1 1 0 0 1 +0 +0 0 1 0 0 1 0 0 1 0 0 0 0 +1 +1 1 0 1 0 0 0 1 0 0 1 0 1 +0 +0 1 0 1 1 1 0 0 0 1 1 0 0 +0 +0 1 0 0 0 0 0 1 1 1 0 0 0 +0 +0 0 1 0 1 1 1 1 0 1 0 1 1 +0 +1 0 0 0 1 0 0 0 0 0 1 1 1 +1 +0 1 0 1 1 1 0 1 1 1 1 1 1 +0 +1 1 0 1 1 1 0 1 0 0 1 0 1 +0 +1 1 0 1 1 0 0 0 0 1 0 1 1 +1 +0 1 1 1 1 1 0 0 0 1 1 1 0 +0 +0 1 1 0 0 1 1 0 1 0 0 1 0 +0 +1 0 0 0 0 1 0 1 1 1 0 1 1 +1 +1 0 0 1 0 1 0 1 1 0 0 0 0 +1 +1 1 1 0 1 1 0 0 0 1 0 0 0 +0 +1 0 0 1 1 1 1 1 0 0 0 1 0 +1 +0 1 1 0 1 0 1 1 0 0 1 0 1 +1 +0 1 0 0 1 0 0 0 0 0 0 0 0 +0 +0 0 1 1 1 1 0 1 0 1 0 0 0 +0 +0 0 0 0 1 1 1 1 0 1 1 0 0 +0 +1 0 0 0 1 1 0 1 1 0 0 1 0 +0 +1 0 0 0 1 0 1 0 1 0 0 1 0 +1 +1 0 0 1 1 0 1 1 0 1 1 0 1 +0 +1 1 1 0 1 0 0 1 0 0 0 0 1 +0 +1 1 0 1 0 0 1 1 0 0 0 1 1 +1 +0 1 0 0 1 1 1 1 0 1 0 1 1 +0 +0 0 1 1 0 0 0 0 0 0 1 0 0 +1 +1 0 1 0 0 0 0 0 1 1 1 1 1 +1 +0 1 0 0 0 1 1 0 0 1 1 0 0 +1 +0 1 1 0 1 0 0 0 1 0 1 0 1 +0 +1 1 1 1 0 0 0 1 1 1 1 0 0 +0 +1 1 1 0 1 0 0 1 1 0 1 0 1 +0 +0 1 0 1 0 0 0 0 1 1 1 0 1 +0 +0 0 1 1 1 0 0 0 0 1 0 0 0 +0 +1 0 1 0 1 0 0 0 0 1 0 1 0 +1 +1 0 1 1 0 0 1 0 0 1 1 0 1 +1 +0 0 0 1 0 1 1 1 0 1 0 1 1 +1 +0 1 0 0 1 0 1 1 0 1 1 0 1 +1 +0 1 0 1 0 1 1 1 1 0 1 0 0 +1 +0 0 1 0 0 0 1 1 1 0 1 1 1 +1 +0 1 1 1 1 1 0 0 1 0 1 1 0 +0 +1 0 1 1 0 0 1 1 0 0 0 1 1 +1 +1 0 0 1 0 1 1 1 0 0 0 1 0 +0 +0 0 1 1 1 0 0 0 1 0 0 0 1 +1 +1 0 0 1 1 0 1 0 1 0 1 0 1 +1 +1 1 0 1 1 1 1 1 1 0 1 0 0 +1 +0 0 0 0 0 0 1 0 1 0 0 0 0 +0 +1 1 1 0 1 0 0 0 1 0 0 1 1 +1 +1 0 1 1 0 1 1 1 0 1 1 0 1 +1 +1 0 1 0 1 0 0 1 0 1 1 1 1 +0 +1 0 1 1 1 0 0 0 1 0 1 1 0 +1 +0 0 1 0 1 0 0 1 0 0 0 0 1 +0 +0 1 1 1 1 1 1 1 1 1 0 0 1 +0 +0 1 1 0 1 0 0 0 0 0 1 1 1 +0 +0 0 1 0 0 0 0 0 0 0 1 1 0 +1 +0 0 1 0 1 0 1 1 0 0 0 0 0 +0 +0 1 0 0 0 0 1 0 1 1 1 1 1 +1 +0 1 0 0 0 0 0 0 1 0 1 1 1 +1 +1 0 1 1 0 1 1 0 1 0 1 1 1 +1 +0 0 0 0 1 0 0 1 0 1 0 0 1 +0 +0 1 0 0 0 0 1 0 0 0 0 0 0 +0 +0 0 0 0 1 0 0 1 0 0 1 0 0 +1 +0 0 0 0 1 0 1 0 0 0 1 0 0 +1 +1 0 1 0 0 0 1 1 0 1 1 0 0 +0 +1 0 1 0 1 1 0 1 1 1 0 0 0 +1 +0 0 0 0 1 0 0 0 0 0 0 0 1 +0 +1 0 1 1 0 1 0 1 0 0 0 1 1 +1 +1 1 1 0 0 0 0 1 0 0 1 1 0 +0 +0 1 0 0 0 0 0 0 0 0 0 1 1 +1 +1 1 0 0 0 1 0 1 1 1 1 0 0 +1 +1 0 0 0 1 1 0 0 0 1 0 1 1 +0 +1 0 1 0 0 1 0 0 1 1 0 1 0 +0 +0 0 0 1 0 1 1 0 1 1 1 0 0 +0 +1 1 0 1 1 0 0 0 0 0 1 1 1 +1 +1 0 1 1 1 0 0 0 0 1 1 1 0 +1 +1 1 1 1 0 1 1 1 1 1 1 0 1 +1 +0 1 0 0 0 0 0 1 0 0 0 0 0 +0 +1 0 1 0 1 0 1 0 0 0 1 1 1 +1 +1 0 1 0 0 0 0 1 1 1 1 0 1 +1 +1 1 0 0 0 1 1 0 1 0 1 0 1 +1 +1 0 1 0 1 0 0 1 0 0 1 0 1 +0 +0 1 0 1 1 1 1 0 1 1 1 0 1 +1 +0 0 1 1 0 0 1 1 0 0 0 1 0 +1 +0 0 1 0 1 1 0 0 0 0 0 0 0 +1 +1 1 0 1 1 1 0 1 0 1 1 0 1 +1 +0 1 0 0 1 0 1 1 1 0 0 1 0 +0 +0 1 1 0 1 0 1 1 0 0 0 1 1 +1 +0 0 0 0 1 0 0 1 0 0 1 1 1 +1 +1 1 1 0 0 0 0 0 1 0 1 1 1 +1 +0 1 0 0 1 0 1 0 0 0 1 0 0 +0 +0 0 1 1 0 0 0 1 1 1 1 1 1 +0 +1 1 0 1 0 0 0 1 1 1 1 0 0 +1 +1 1 0 0 0 0 0 0 1 0 0 1 0 +0 +0 0 0 0 1 0 1 1 1 1 0 0 1 +0 +1 1 1 0 0 1 1 1 0 1 1 0 0 +0 +1 1 1 1 1 1 1 1 1 0 1 0 0 +0 +1 1 0 0 1 1 0 1 1 0 1 1 1 +1 +0 0 1 0 1 1 1 0 0 0 1 0 1 +0 +0 1 1 0 0 1 1 1 1 1 1 0 0 +0 +1 1 0 0 0 0 0 0 1 0 1 0 1 +1 +1 0 1 0 1 0 1 1 1 1 1 0 1 +1 +1 1 0 0 1 1 1 0 1 0 1 1 1 +1 +1 1 1 0 0 1 0 1 1 1 0 1 1 +1 +0 0 1 0 1 1 1 0 1 1 1 1 0 +0 +1 1 0 0 1 0 0 1 1 0 1 0 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 0 0 0 1 +0 +0 1 0 1 1 0 1 1 1 1 0 1 0 +0 +1 0 0 0 1 0 0 0 0 0 0 0 1 +1 +0 0 0 0 0 1 0 1 1 0 1 1 0 +1 +0 0 0 0 0 1 1 1 0 1 1 1 0 +0 +0 1 1 0 0 1 1 0 0 0 0 1 1 +0 +1 1 1 0 0 1 0 0 1 0 0 1 0 +0 +1 0 0 0 1 0 0 1 1 1 1 0 1 +1 +1 0 0 0 0 0 1 0 0 1 1 0 1 +1 +1 1 1 1 1 1 0 1 0 0 0 0 1 +0 +1 0 1 0 1 1 1 1 0 0 1 1 1 +1 +1 1 0 0 0 1 1 1 0 1 0 0 1 +1 +0 1 1 1 0 0 0 1 1 1 0 0 1 +1 +1 0 0 0 1 1 0 1 0 1 1 0 0 +0 +1 0 1 0 1 1 1 0 1 0 1 1 0 +0 +0 0 0 0 1 0 0 0 1 1 0 1 0 +0 +1 1 1 1 1 0 0 0 0 0 1 0 0 +0 +1 0 1 1 1 1 0 1 1 0 0 0 1 +0 +1 1 0 1 1 0 0 1 1 0 1 1 0 +0 +0 0 0 0 0 0 1 0 0 1 1 1 0 +0 +1 0 0 0 1 1 0 0 0 0 1 0 1 +1 +1 1 0 1 0 0 1 0 0 1 0 0 1 +0 +0 1 1 1 0 0 0 0 0 1 0 1 1 +0 +1 1 1 1 1 1 1 1 1 1 0 1 1 +0 +1 1 0 0 1 0 1 0 1 0 0 0 0 +1 +0 0 0 1 0 1 1 1 0 1 1 0 1 +1 +0 0 1 0 1 0 0 1 1 1 1 0 1 +1 +0 1 1 1 0 0 0 0 1 0 0 0 1 +1 +1 0 1 0 0 1 1 1 1 1 0 1 0 +0 +1 0 0 1 0 1 0 1 0 1 1 0 1 +1 +0 0 0 0 1 0 0 1 1 1 0 1 1 +0 +1 1 1 1 1 0 1 1 0 0 0 1 0 +0 +0 0 0 1 1 1 0 0 1 1 1 0 1 +1 +1 0 0 1 0 1 0 1 1 0 1 1 0 +1 +0 1 1 0 0 0 0 1 0 1 0 0 1 +1 +0 0 0 1 0 0 0 1 0 1 0 1 1 +1 +0 0 0 1 0 1 0 1 0 0 1 1 1 +0 +1 0 0 0 1 0 0 0 1 1 0 0 0 +0 +0 1 1 0 0 0 1 0 0 0 0 1 0 +0 +1 0 1 1 1 0 1 1 0 1 0 0 1 +0 +1 1 0 1 0 0 1 1 1 1 1 1 1 +0 +0 1 0 1 1 1 0 1 0 1 0 1 0 +1 +1 0 0 1 0 0 0 0 0 0 0 0 0 +0 +1 1 0 1 1 1 0 0 0 1 0 0 0 +0 +0 1 0 1 0 1 1 0 1 0 0 0 1 +0 +0 0 0 0 1 1 0 1 0 1 1 1 1 +1 +0 1 1 1 1 0 0 0 1 0 0 0 1 +0 +0 1 1 1 0 0 1 0 1 0 1 1 1 +0 +1 0 0 1 0 0 0 0 1 1 0 0 0 +0 +1 1 0 0 1 0 0 1 0 1 1 0 1 +1 +1 0 1 0 1 1 0 1 1 0 0 0 1 +1 +1 0 1 1 1 1 1 0 0 1 0 0 0 +1 +0 1 1 1 0 1 1 1 1 1 1 0 1 +0 +0 1 0 0 1 1 0 0 0 1 1 0 1 +0 +1 0 1 0 1 1 1 1 1 0 1 1 1 +0 +0 0 0 0 1 0 1 0 1 1 1 0 0 +1 +0 1 1 0 1 1 0 0 1 0 1 0 0 +0 +1 1 1 0 0 1 0 1 1 0 0 1 0 +1 +0 1 0 1 1 1 1 1 1 1 1 1 0 +0 +0 1 1 1 0 1 0 1 1 1 0 1 1 +1 +1 1 0 0 0 1 1 0 0 0 0 1 0 +1 +1 1 1 0 0 0 1 0 1 1 1 0 1 +0 +1 1 1 1 0 0 1 1 0 0 1 1 0 +0 +0 0 0 0 0 1 0 0 0 0 0 0 0 +1 +1 1 1 0 0 1 0 1 0 0 1 0 0 +0 +0 1 1 0 1 1 0 0 1 0 1 1 1 +0 +0 0 1 0 1 0 1 1 1 0 1 0 1 +1 +0 1 0 1 1 1 1 1 1 1 0 0 1 +1 +0 1 0 0 0 1 0 0 1 1 0 1 0 +1 +0 0 1 0 1 0 0 0 0 1 1 1 0 +1 +0 1 0 1 1 1 1 0 1 0 1 1 1 +1 +1 0 0 0 1 1 1 1 0 1 1 1 1 +1 +0 1 0 1 0 1 0 1 0 1 1 1 0 +1 +1 1 1 0 1 1 1 0 1 0 1 0 0 +0 +0 1 0 0 1 1 0 1 0 1 1 1 1 +0 +0 1 0 0 0 1 0 1 1 0 1 1 0 +0 +0 0 1 0 0 1 0 0 0 1 1 1 1 +0 +1 1 0 1 0 0 1 0 1 1 1 0 0 +1 +1 1 1 0 1 0 1 0 0 1 0 0 0 +0 +1 0 1 1 0 1 1 1 1 0 0 0 0 +1 +1 0 0 1 0 0 0 1 0 0 0 1 1 +1 +0 0 0 1 0 1 1 1 0 0 1 1 0 +0 +1 0 1 0 0 1 0 0 0 1 1 1 1 +1 +0 0 0 0 0 0 1 1 1 0 1 1 1 +0 +0 1 0 1 1 0 0 0 0 0 1 0 1 +1 +1 1 1 0 1 0 0 0 0 0 0 1 0 +1 +0 1 0 1 1 0 0 0 0 1 0 0 0 +0 +1 1 1 1 0 1 0 0 1 0 0 0 1 +1 +0 0 1 1 1 0 0 1 1 1 1 1 1 +1 +0 1 1 0 0 0 1 1 0 0 0 0 1 +1 +0 0 0 0 0 1 1 0 0 1 0 1 1 +1 +1 1 1 0 0 1 1 1 1 0 0 1 1 +1 +0 0 0 1 0 0 0 0 0 0 0 1 1 +1 +1 0 1 0 1 0 1 1 0 1 1 0 1 +0 +0 1 1 1 1 0 1 1 0 0 1 1 1 +1 +1 0 0 0 0 1 1 0 0 1 1 1 0 +0 +0 0 1 1 0 0 0 0 1 0 1 0 1 +1 +1 0 0 1 0 1 1 1 1 1 1 0 1 +1 +1 1 1 0 1 0 0 1 1 0 1 0 0 +1 +0 1 1 0 1 1 0 0 1 0 1 1 0 +1 +1 0 0 0 0 0 1 1 0 0 0 1 0 +0 +1 0 1 0 0 0 1 0 0 0 0 1 1 +1 +1 1 0 1 0 0 1 1 0 1 1 0 0 +1 +1 1 1 1 1 1 0 0 0 1 1 1 1 +0 +1 1 1 0 1 1 1 1 0 0 0 1 1 +1 +1 1 0 1 1 1 0 1 0 1 1 0 0 +0 +1 1 0 1 1 0 0 0 0 0 1 0 1 +0 +1 0 1 0 0 0 0 1 0 1 1 0 1 +0 +0 0 1 0 1 0 1 1 1 0 1 0 0 +0 +1 1 1 1 0 0 0 0 1 1 0 0 1 +1 +0 1 1 0 1 0 0 0 1 1 0 1 0 +0 +0 0 1 0 0 0 0 0 0 1 1 0 0 +1 +0 1 0 1 0 1 0 0 0 0 1 1 1 +0 +1 1 1 1 0 1 0 0 0 1 0 0 0 +0 +0 1 0 0 0 1 1 1 1 0 1 0 1 +1 +1 0 0 1 0 0 1 1 1 0 0 0 0 +1 +0 1 1 1 0 1 0 1 0 1 0 0 0 +0 +1 0 0 0 1 0 0 0 1 0 1 0 0 +0 +0 0 1 1 1 1 0 1 0 1 0 1 0 +1 +0 1 1 1 1 0 0 0 1 1 0 1 1 +0 +0 1 0 0 1 1 0 0 1 1 0 1 1 +1 +1 0 0 0 0 1 0 0 0 1 1 0 0 +0 +1 1 1 0 1 0 0 1 0 0 1 1 0 +1 +0 0 0 1 1 0 0 1 1 1 1 0 1 +1 +0 1 1 0 1 1 0 1 1 0 1 0 0 +1 +1 1 1 0 1 1 0 0 1 0 0 0 0 +0 +0 1 1 1 0 0 1 1 0 1 0 0 1 +1 +1 0 1 0 1 1 0 0 0 0 1 0 0 +1 +1 1 0 1 0 1 1 0 1 0 0 1 1 +0 +1 0 0 1 0 1 0 1 1 0 1 0 1 +1 +0 1 0 0 1 1 0 0 0 1 0 0 1 +1 +0 0 1 1 1 0 1 1 0 0 0 1 1 +1 +0 1 0 0 0 1 0 0 0 0 0 0 1 +1 +1 1 1 1 1 1 0 1 1 1 0 1 0 +0 +0 1 0 0 0 1 1 0 1 0 0 1 0 +1 +1 0 0 0 1 0 0 1 1 0 0 1 1 +0 +1 0 0 1 1 1 1 0 0 0 1 0 0 +0 +0 1 1 1 1 0 1 0 0 1 0 0 1 +1 +0 0 0 1 1 0 0 1 0 0 0 0 1 +0 +1 0 1 1 1 0 0 0 0 1 1 1 1 +0 +1 1 0 0 1 1 0 0 1 1 0 0 0 +0 +1 1 1 1 0 0 0 1 0 0 0 1 1 +1 +0 0 0 0 0 1 0 1 0 1 0 0 1 +0 +0 0 0 1 1 0 1 0 1 0 0 0 0 +0 +0 0 0 0 0 0 0 0 1 0 1 0 1 +1 +1 0 0 1 1 1 1 1 1 1 1 0 1 +0 +1 1 0 0 0 0 1 1 1 0 1 1 1 +0 +0 1 0 0 0 1 0 1 1 1 0 1 0 +0 +1 0 0 1 0 1 0 1 1 1 0 0 0 +0 +1 0 1 1 1 0 0 0 1 1 0 0 1 +1 +1 1 1 1 1 1 0 1 1 1 1 0 0 +0 +1 1 1 0 0 0 1 1 1 1 0 1 0 +0 +1 0 0 1 0 1 0 0 0 0 1 1 0 +1 +1 1 0 1 0 1 0 1 1 0 1 0 1 +0 +0 1 1 0 1 0 0 0 1 0 0 1 1 +0 +1 0 1 1 0 0 1 1 0 1 0 1 0 +1 +1 1 1 1 0 0 1 1 0 0 1 0 0 +1 +1 0 0 1 0 0 0 0 0 1 1 0 0 +0 +0 0 0 1 0 0 0 1 0 1 0 1 0 +0 +1 0 1 1 1 0 1 0 1 0 1 1 0 +0 +0 1 1 1 0 1 1 0 1 0 0 1 1 +0 +0 0 0 1 1 0 0 0 1 1 1 0 0 +1 +1 1 0 0 1 0 1 0 0 1 1 1 1 +0 +1 0 1 1 1 0 0 1 0 0 1 0 1 +1 +1 1 1 0 1 1 1 0 1 1 0 0 1 +1 +0 0 0 1 0 1 1 0 0 1 0 1 0 +1 +1 1 1 1 0 1 0 1 1 1 0 1 1 +0 +0 1 0 1 1 0 0 0 1 1 1 0 1 +1 +0 1 0 0 0 1 1 1 1 1 1 1 1 +1 +0 1 0 0 0 0 0 1 1 0 0 1 0 +0 +1 1 1 0 1 0 0 1 0 0 0 1 1 +1 +1 1 1 0 1 1 1 0 1 1 1 0 1 +0 +0 1 0 0 1 1 0 0 1 1 0 0 1 +0 +0 0 0 0 0 1 1 1 1 0 1 0 0 +1 +1 1 0 1 0 1 1 0 0 0 1 0 0 +0 +1 1 1 1 1 0 1 0 0 1 0 0 0 +1 +0 1 1 1 1 0 1 1 0 0 1 1 0 +0 +0 0 0 1 1 1 1 0 1 1 0 1 1 +0 +0 1 1 0 0 1 0 1 0 0 1 1 1 +1 +1 0 0 1 0 0 1 0 1 1 1 1 1 +0 +1 1 1 1 1 0 0 0 0 0 1 1 0 +1 +1 0 1 0 1 0 1 1 1 0 1 0 1 +0 +1 1 0 1 1 0 1 0 0 1 0 0 0 +0 +0 1 1 0 0 0 0 1 1 1 1 0 1 +1 +1 1 1 0 1 0 0 1 0 1 0 1 1 +0 +1 1 0 1 1 1 1 1 1 0 0 0 1 +1 +1 0 1 1 0 0 0 0 1 1 1 0 1 +1 +1 1 1 1 0 1 1 0 0 1 1 0 1 +1 +1 0 0 0 0 0 0 1 0 0 0 1 1 +0 +0 1 0 1 0 0 0 0 1 0 1 1 0 +1 +1 1 1 0 1 0 1 1 1 0 0 1 0 +0 +0 1 1 0 0 1 0 0 0 1 1 1 1 +1 +0 0 1 1 0 1 1 0 1 1 0 0 0 +0 +1 0 0 0 1 0 1 1 1 0 1 1 1 +0 +0 1 1 0 0 0 0 0 1 0 0 0 0 +1 +0 1 0 0 1 0 1 1 1 0 1 1 1 +0 +1 1 1 0 0 1 0 0 0 0 0 0 0 +0 +0 1 1 1 1 0 0 0 1 0 1 1 1 +0 +0 0 1 0 1 0 1 1 0 0 0 0 1 +1 +1 0 0 0 1 1 0 0 1 0 1 0 0 +1 +1 0 0 1 1 0 1 1 1 1 1 1 1 +0 +1 1 1 0 0 1 0 1 1 1 1 0 1 +1 +1 1 0 0 0 1 1 0 0 0 1 1 1 +1 +1 1 0 0 0 0 1 1 1 0 0 1 0 +0 +0 1 0 1 0 1 0 1 1 1 1 0 1 +0 +1 0 1 1 0 0 0 0 1 1 1 1 1 +0 +1 0 1 0 1 0 1 1 0 0 1 1 1 +0 +0 0 0 0 0 1 0 1 1 0 1 1 1 +0 +0 1 1 0 1 1 1 0 0 1 1 0 0 +1 +1 0 1 1 1 1 0 1 1 1 1 1 0 +0 +1 0 0 0 0 1 1 0 0 1 1 0 0 +1 +0 1 1 1 0 1 0 1 1 0 0 1 0 +1 +1 0 0 0 1 1 0 0 1 1 1 0 1 +1 +0 1 0 0 0 1 0 0 0 0 0 1 1 +0 +1 0 1 1 1 0 1 1 0 1 0 0 0 +1 +1 1 1 1 1 1 0 0 1 1 1 1 0 +0 +0 1 0 1 0 1 0 1 0 1 1 0 0 +0 +0 0 1 1 0 0 0 0 0 1 1 1 0 +1 +1 0 0 1 1 0 1 1 1 0 0 0 1 +1 +0 0 0 1 1 0 0 1 1 0 1 1 1 +1 +1 0 1 0 0 1 0 1 1 0 1 1 1 +0 +0 0 1 1 0 0 1 1 1 1 1 1 1 +1 +0 0 1 0 1 0 1 0 1 0 1 0 0 +1 +0 0 1 0 0 0 1 1 1 0 0 1 1 +0 +1 1 0 0 1 0 1 0 0 1 1 1 0 +1 +1 1 0 0 1 0 0 1 1 0 0 0 1 +0 +1 1 0 1 0 0 1 1 0 1 1 1 0 +0 +0 0 1 1 0 1 1 1 0 1 1 0 0 +1 +0 1 1 0 1 0 1 0 0 1 1 0 0 +0 +1 0 0 1 0 1 1 1 1 0 1 0 0 +1 +0 1 0 0 0 1 1 0 1 1 1 1 0 +1 +1 0 0 0 1 1 0 1 0 0 0 1 1 +0 +1 0 0 1 0 1 0 0 0 1 1 0 1 +0 +1 0 0 0 0 0 0 1 1 1 0 0 0 +0 +1 1 0 0 1 0 1 0 1 1 0 1 0 +1 +1 0 1 1 1 1 1 1 1 1 0 1 0 +0 +0 0 0 1 0 1 0 0 1 1 1 0 0 +1 +0 0 0 1 1 0 1 1 1 1 1 1 1 +1 +1 0 1 0 1 1 1 1 0 1 0 0 0 +1 +0 0 0 0 1 1 1 0 0 0 0 1 0 +0 +0 0 1 1 1 1 0 0 0 1 0 1 0 +0 +0 0 1 0 1 0 1 1 1 0 1 1 1 +0 +0 0 1 1 1 0 0 1 1 1 1 0 1 +0 +1 1 0 0 1 1 1 0 0 0 1 1 1 +0 +1 1 0 0 1 0 0 0 1 1 1 1 0 +1 +0 0 0 0 0 1 0 0 1 1 0 1 0 +0 +1 0 0 0 1 1 1 1 1 0 0 0 1 +1 +0 1 0 0 0 0 1 0 0 1 1 0 1 +1 +1 1 1 0 0 1 0 1 0 1 1 0 1 +0 +0 0 0 1 1 1 0 0 1 0 1 0 1 +0 +0 1 0 0 1 0 0 0 1 1 1 0 0 +1 +0 0 0 1 1 1 0 0 1 1 0 1 0 +0 +1 1 1 1 1 0 0 1 0 0 1 1 0 +0 +0 0 1 0 0 1 1 1 1 0 0 1 0 +0 +1 1 1 0 1 1 0 1 0 0 0 1 1 +0 +1 0 0 0 1 0 1 0 0 1 0 0 0 +0 +0 1 1 0 1 0 0 1 1 0 1 0 0 +0 +1 0 1 1 1 0 1 1 0 1 1 0 1 +1 +0 0 1 1 1 0 0 0 0 0 1 1 0 +1 +0 0 0 0 1 0 0 0 1 1 1 0 1 +1 +1 1 0 0 0 0 1 1 1 0 0 0 1 +0 +1 0 1 1 0 1 0 0 1 1 1 0 1 +0 +1 1 0 0 1 0 0 0 1 0 1 0 1 +0 +0 1 0 0 1 1 0 0 1 0 0 1 1 +0 +0 0 0 1 0 0 0 0 0 1 1 1 0 +0 +0 1 1 1 0 1 0 1 1 0 0 0 0 +0 +0 1 1 1 0 0 0 0 0 0 1 0 0 +0 +0 1 1 0 0 0 0 1 0 1 1 0 1 +0 +0 0 1 0 1 1 0 0 0 0 0 0 1 +0 +0 1 1 1 0 1 0 1 0 1 1 0 1 +0 +0 1 0 0 1 1 1 1 1 0 0 1 0 +1 +1 0 0 0 0 0 0 1 1 0 0 1 1 +1 +0 1 1 0 1 1 1 0 1 0 0 0 1 +1 +0 1 0 1 1 0 0 0 0 1 1 1 1 +1 +1 1 1 0 0 0 1 0 0 0 0 1 0 +1 +0 0 1 0 0 0 0 0 1 1 1 1 0 +1 +1 0 1 0 0 1 0 0 0 1 1 1 0 +0 +1 1 1 1 1 0 1 1 0 0 0 0 0 +1 +0 0 1 1 1 1 0 1 1 0 1 0 1 +0 +1 1 0 0 1 1 0 1 1 0 1 0 1 +0 +1 0 1 1 0 1 0 1 0 1 0 0 0 +0 +1 0 0 0 0 0 0 0 1 0 0 1 1 +0 +1 0 0 1 0 0 0 0 1 1 0 1 0 +1 +1 0 1 1 1 0 1 0 1 1 1 0 1 +1 +1 1 1 1 1 0 0 0 1 1 0 0 1 +0 +0 1 0 0 1 0 0 0 1 0 1 1 1 +0 +0 0 1 0 1 1 0 0 0 0 1 1 1 +0 +0 1 0 1 1 0 0 0 0 1 1 0 0 +1 +1 1 0 1 1 0 0 0 1 0 1 1 0 +1 +0 1 1 1 1 1 1 0 0 1 1 1 0 +1 +0 0 0 0 1 0 0 1 1 0 0 1 0 +0 +0 0 0 1 1 0 0 0 1 0 0 0 1 +0 +1 0 1 1 0 1 1 1 0 1 1 1 0 +1 +1 1 1 0 0 1 1 0 0 1 1 0 1 +0 +1 1 0 0 1 1 0 0 0 1 0 0 0 +1 +1 0 0 1 1 0 0 0 0 0 1 0 1 +1 +0 1 1 1 0 1 1 1 1 1 0 0 0 +0 +1 1 1 0 0 1 1 1 0 0 0 1 1 +0 +0 0 0 1 0 0 0 0 1 0 1 0 1 +0 +0 0 1 1 1 0 1 0 0 0 0 0 1 +1 +0 0 1 0 0 1 1 0 1 0 0 1 1 +0 +1 1 0 0 1 0 0 1 0 1 1 0 0 +0 +1 0 0 0 1 1 0 1 0 1 0 0 0 +1 +1 0 1 1 1 1 1 1 1 0 1 1 0 +0 +0 1 1 0 1 1 1 1 0 1 1 1 1 +0 +1 1 1 0 0 1 1 0 1 0 1 1 0 +0 +0 0 0 0 0 1 0 1 0 1 0 1 0 +0 +0 0 0 0 0 1 0 0 0 0 0 1 0 +0 +1 1 1 0 1 0 1 1 1 0 0 1 1 +1 +1 0 1 0 1 1 1 0 0 0 1 0 0 +0 +0 1 1 1 0 1 1 0 1 1 0 0 1 +0 +0 1 0 1 1 0 1 1 1 0 0 1 0 +1 +1 1 0 1 0 0 1 1 1 0 0 1 0 +1 +0 1 0 0 0 1 0 1 0 1 0 1 0 +1 +0 1 1 1 1 0 1 0 1 1 1 0 1 +1 +1 1 0 0 0 1 1 0 1 1 1 0 0 +1 +0 1 1 0 1 1 1 0 1 0 0 1 0 +1 +0 0 1 0 0 0 1 0 1 1 0 0 1 +1 +1 0 0 1 1 1 0 1 1 0 1 0 1 +0 +0 0 0 0 0 0 1 0 0 0 1 1 1 +0 +0 1 1 1 0 0 0 1 1 1 1 1 0 +0 +1 1 0 1 0 0 0 1 1 1 1 1 0 +0 +1 1 0 1 0 0 0 0 0 0 0 1 1 +1 +0 1 1 0 0 1 0 1 0 0 0 0 0 +0 +0 0 1 0 0 1 1 1 0 1 0 1 1 +1 +1 1 1 0 0 1 0 1 0 1 0 1 0 +1 +1 0 0 1 0 0 1 0 1 1 1 0 0 +0 +0 1 0 0 1 1 0 0 1 1 1 1 0 +1 +1 0 0 1 1 1 1 0 0 1 0 1 0 +1 +1 1 1 0 1 0 0 1 0 1 1 0 0 +1 +0 1 0 0 0 0 1 0 1 1 1 0 1 +0 +0 0 0 0 1 0 0 0 1 1 0 1 1 +1 +0 1 0 0 0 1 0 1 1 1 1 0 0 +0 +0 0 0 1 0 0 0 0 1 0 0 1 0 +1 +0 0 0 0 0 0 1 1 0 1 0 0 1 +0 +1 0 1 1 1 1 1 1 0 1 0 0 1 +1 +0 1 0 0 1 0 0 0 1 0 1 1 0 +1 +0 0 1 0 1 1 0 0 0 0 0 1 1 +1 +0 0 0 0 0 0 1 1 1 1 0 0 1 +1 +0 0 0 1 0 0 0 1 0 0 1 0 0 +1 +0 1 0 1 0 0 0 0 1 0 0 1 1 +1 +1 0 1 0 1 1 1 1 1 1 0 0 0 +0 +1 0 0 0 0 0 0 1 1 0 1 0 1 +1 +0 0 1 0 1 0 1 1 0 1 1 0 1 +1 +1 1 0 1 1 0 0 1 0 1 1 1 1 +1 +1 1 1 0 0 1 1 1 1 1 0 0 1 +1 +0 0 1 0 0 0 0 1 1 1 1 1 1 +1 +0 1 0 1 1 1 1 0 1 1 0 0 0 +1 +0 0 0 0 1 1 1 1 0 0 1 1 1 +1 +1 1 0 1 0 0 1 0 0 0 1 1 1 +1 +1 1 1 1 1 1 0 1 1 0 1 0 1 +0 +1 1 1 1 0 1 0 1 1 0 0 0 1 +0 +1 1 0 1 0 1 0 1 0 0 0 0 0 +1 +0 0 1 1 0 0 1 0 1 0 0 0 1 +1 +1 1 1 0 1 1 0 1 1 1 0 0 0 +0 +0 0 0 0 0 0 1 0 0 0 0 1 1 +1 +0 1 1 1 1 0 1 0 0 1 0 1 1 +0 +1 0 1 0 0 0 1 1 0 1 1 1 1 +0 +1 0 0 0 1 1 0 1 1 1 1 0 0 +1 +1 1 1 0 0 1 1 0 0 0 0 0 0 +1 +1 1 1 0 1 1 1 1 1 1 0 1 0 +0 +1 0 1 0 1 0 0 1 0 0 0 0 0 +0 +1 1 1 0 1 0 0 0 0 0 1 0 0 +1 +0 0 0 0 1 0 0 1 0 1 0 1 1 +1 +1 1 1 1 0 0 1 0 0 0 1 1 1 +0 +0 0 0 0 0 1 1 0 1 1 1 0 0 +1 +1 1 1 0 0 0 1 0 1 0 0 1 1 +1 +0 0 1 0 1 1 1 1 0 1 1 0 1 +0 +0 1 1 0 1 1 0 1 0 1 1 1 0 +0 +0 1 1 0 0 0 1 0 0 1 0 0 1 +1 +0 0 1 1 0 1 1 0 0 1 1 1 0 +1 +1 0 1 0 0 1 0 0 1 1 1 0 0 +0 +1 1 0 0 1 0 0 0 1 1 0 0 1 +0 +0 1 0 0 1 0 1 1 0 0 1 1 1 +1 +0 1 1 0 1 1 0 0 0 1 1 1 1 +0 +1 0 0 1 1 0 1 0 0 0 0 1 1 +0 +0 1 1 1 1 1 1 1 0 0 1 0 0 +0 +1 1 0 1 1 0 0 0 0 1 1 1 1 +0 +0 0 1 0 0 1 0 1 1 0 1 1 1 +1 +1 1 0 0 0 1 1 1 1 0 0 0 0 +0 +0 1 0 0 0 0 0 0 0 0 1 0 0 +0 +1 1 1 0 1 0 0 0 1 0 1 0 0 +0 +1 0 1 1 1 1 1 1 1 1 0 0 1 +0 +1 0 0 1 0 1 0 0 0 1 1 1 1 +1 +1 0 0 1 0 1 1 0 1 1 0 0 0 +0 +1 0 0 1 0 0 0 1 1 1 0 1 1 +1 +1 0 0 0 0 0 0 0 0 0 1 1 1 +0 +1 0 1 1 0 0 1 0 0 0 0 1 1 +0 +0 0 0 0 1 0 0 1 1 0 0 0 1 +0 +0 1 1 1 1 0 1 1 0 1 0 0 0 +1 +0 0 1 0 1 0 0 1 0 1 0 1 1 +0 +0 1 1 1 0 1 0 0 0 1 1 1 0 +1 +0 1 1 0 0 0 0 0 0 1 1 1 1 +0 +1 1 0 1 1 1 1 1 0 0 0 1 1 +1 +1 0 1 1 0 1 1 0 0 0 1 1 0 +1 +0 1 0 1 1 1 1 0 0 1 1 0 1 +0 +0 1 1 0 0 0 0 1 1 0 0 0 0 +0 +1 1 1 1 1 1 1 1 0 1 0 1 0 +0 +1 0 0 1 1 1 1 0 0 0 0 1 1 +1 +0 0 1 1 0 1 1 1 1 1 1 1 1 +0 +0 1 1 1 0 0 1 1 1 1 1 0 1 +1 +1 0 1 1 0 1 1 0 1 1 1 0 0 +0 +1 1 1 0 1 1 0 0 0 1 1 1 0 +0 +1 1 0 0 0 1 1 0 0 1 1 1 1 +0 +0 0 0 0 0 1 0 0 0 1 0 0 0 +0 +1 1 1 1 1 0 1 0 0 1 1 0 0 +0 +0 1 1 0 0 1 1 0 1 0 1 0 1 +1 +1 1 1 0 0 1 0 1 0 1 1 1 0 +0 +1 0 1 1 1 1 1 0 1 1 1 1 0 +0 +1 1 1 0 1 1 0 1 0 0 1 0 1 +0 +0 0 0 1 1 0 1 1 0 1 0 1 0 +0 +0 0 1 0 0 1 1 0 0 0 0 1 1 +1 +0 0 1 1 1 0 0 1 0 1 1 0 1 +1 +0 1 0 0 1 1 1 1 1 0 0 0 1 +1 +1 1 0 0 0 0 1 1 0 1 1 0 0 +0 +1 1 0 1 0 0 1 1 1 1 0 1 1 +1 +0 0 0 0 0 0 1 1 0 0 1 1 1 +1 +1 1 0 0 0 1 0 1 0 0 0 1 1 +0 +1 0 1 1 1 0 0 1 0 0 1 1 0 +1 +0 0 1 0 1 1 1 0 0 1 1 0 0 +0 +0 0 0 1 0 0 1 0 0 1 0 1 1 +1 +1 0 0 0 1 1 0 0 0 1 1 1 0 +0 +1 0 0 1 0 1 0 0 0 1 0 0 0 +0 +1 1 0 1 1 1 0 1 0 0 0 0 1 +1 +1 0 0 0 1 1 1 1 0 0 0 0 1 +0 +0 1 0 1 1 1 1 0 0 0 0 0 1 +0 +1 0 0 1 0 0 1 0 0 1 1 1 0 +0 +0 0 0 1 0 0 0 1 0 0 0 0 1 +1 +1 0 1 1 1 1 1 0 1 1 1 1 1 +1 +1 1 1 0 1 1 0 0 0 0 1 0 1 +1 +1 1 1 1 1 0 0 1 0 1 1 0 0 +0 +0 1 1 1 0 1 0 1 1 0 0 0 1 +1 +1 0 0 1 1 1 1 0 1 0 0 1 1 +0 +1 0 0 0 0 1 0 1 1 0 0 1 1 +0 +1 0 0 1 1 1 1 0 0 0 0 1 0 +0 +0 1 1 0 1 1 1 0 0 0 1 0 1 +1 +0 1 0 0 0 1 0 0 1 0 0 1 0 +0 +1 0 0 1 1 0 1 0 1 0 1 1 1 +0 +0 1 0 0 0 0 1 0 1 0 1 1 1 +0 +0 0 0 1 0 1 0 0 0 0 1 1 0 +0 +0 1 1 0 1 1 0 1 0 1 1 0 0 +1 +1 0 0 1 0 1 1 0 0 1 0 0 0 +1 +0 0 1 1 0 0 0 0 0 1 1 0 1 +1 +0 1 1 1 0 0 0 0 1 0 0 1 1 +0 +0 1 0 1 0 0 0 1 1 0 0 0 1 +1 +0 1 1 1 1 1 1 1 1 0 1 0 0 +1 +0 1 0 0 1 1 1 0 0 0 0 1 1 +0 +1 0 0 0 1 1 1 0 0 0 1 0 0 +1 +0 1 1 0 1 1 0 0 1 1 1 0 1 +0 +0 1 0 1 0 0 0 1 0 1 1 1 0 +0 +1 1 1 0 0 1 0 0 0 0 1 1 1 +1 +0 1 0 1 0 1 0 1 0 0 1 0 1 +0 +0 1 0 1 0 0 1 0 1 0 0 0 1 +1 +0 0 1 0 0 0 0 1 1 0 1 0 0 +0 +0 0 0 1 0 0 1 0 1 0 0 1 0 +0 +1 0 0 1 0 0 1 0 0 0 0 0 0 +1 +1 1 0 0 1 1 0 1 1 1 0 0 0 +1 +1 0 0 0 0 1 0 0 0 1 0 1 0 +0 +0 1 0 1 1 1 1 1 1 0 0 0 1 +0 +1 1 1 1 1 0 0 1 0 0 0 0 1 +1 +1 1 0 1 1 0 0 1 1 1 1 1 0 +1 +0 1 1 1 1 0 1 0 0 0 0 1 0 +0 +1 1 0 0 1 1 1 0 1 0 0 0 1 +1 +1 1 0 0 0 0 1 1 0 0 0 0 0 +0 +0 1 0 1 1 1 0 1 1 0 0 1 0 +1 +1 1 0 1 1 0 0 0 0 1 1 0 0 +0 +0 0 1 1 0 1 1 1 0 0 1 1 1 +0 +1 0 0 1 1 0 1 0 0 1 0 0 0 +1 +0 1 0 0 1 0 0 1 1 0 0 1 1 +0 +0 1 1 0 0 0 1 0 0 1 1 0 1 +0 +0 1 1 1 0 1 1 1 0 1 0 0 0 +1 +1 1 1 0 1 0 1 0 0 0 0 0 0 +1 +1 1 1 1 0 0 0 0 1 0 1 0 0 +0 +0 0 1 1 1 0 1 1 1 1 1 1 0 +1 +0 0 0 1 0 0 1 1 0 0 0 0 1 +0 +1 0 0 1 1 1 1 1 1 0 1 1 0 +1 +1 0 0 0 1 0 1 1 0 0 1 1 1 +1 +0 0 1 0 0 1 1 0 0 0 0 0 0 +1 +0 0 0 1 0 1 0 1 1 1 1 0 1 +1 +1 0 1 1 0 0 1 0 0 0 1 0 1 +0 +0 0 1 1 0 1 1 1 0 0 0 0 1 +0 +1 1 1 1 0 1 0 0 0 1 0 1 0 +1 +0 1 1 0 1 1 0 1 0 1 0 0 1 +1 +1 0 1 1 0 0 0 0 1 0 0 0 0 +0 +1 0 0 0 0 0 0 1 1 1 1 1 1 +1 +0 1 1 1 1 0 1 1 1 1 0 1 1 +0 +0 1 0 0 1 0 0 0 1 0 0 1 0 +0 +0 0 1 1 0 0 1 0 1 0 1 1 1 +1 +0 1 0 1 0 0 1 1 1 1 1 1 1 +1 +0 1 1 0 0 1 0 1 1 1 1 0 1 +0 +0 0 0 1 0 0 0 0 1 0 0 1 1 +0 +0 0 0 1 0 1 0 1 1 1 1 1 1 +0 +0 0 1 1 1 0 1 1 1 0 1 0 1 +0 +1 0 1 1 1 0 0 1 0 0 0 0 1 +0 +0 0 1 0 1 0 1 0 0 1 0 0 1 +1 +0 1 1 1 0 1 0 1 1 1 1 0 1 +1 +0 1 1 0 0 1 0 1 0 1 1 0 0 +0 +0 0 0 0 0 0 1 1 1 1 1 0 0 +1 +1 1 0 1 1 0 1 1 0 1 0 1 0 +0 +0 1 0 1 0 1 1 1 1 0 0 1 1 +0 +0 0 0 0 0 0 0 1 1 1 1 0 0 +0 +1 0 0 0 0 1 1 0 1 0 1 0 1 +0 +1 0 1 0 0 0 0 0 0 0 0 1 1 +0 +0 1 0 1 0 1 1 1 1 1 1 0 0 +0 +1 0 0 0 1 0 0 0 0 1 0 1 1 +1 +1 0 1 0 1 1 1 0 1 0 0 0 0 +0 +0 1 1 1 1 1 1 0 0 1 1 1 1 +0 +0 1 0 0 0 0 0 1 1 1 1 0 0 +1 +1 1 1 0 1 1 0 1 1 0 0 1 0 +0 +0 1 0 1 1 0 1 0 1 0 0 1 0 +0 +1 1 1 0 0 0 1 0 0 0 1 0 0 +1 +1 0 1 0 1 0 1 0 0 0 1 1 0 +0 +1 0 1 1 0 0 1 1 0 0 1 0 0 +0 +0 0 0 1 0 0 0 0 1 1 1 1 0 +1 +0 0 0 1 0 0 1 0 0 0 1 0 0 +1 +1 1 1 0 1 1 1 0 0 0 0 0 1 +1 +1 0 1 1 1 1 0 1 1 0 1 0 0 +0 +1 1 1 1 1 0 1 1 1 0 0 0 0 +0 +0 0 1 1 1 1 1 0 0 1 1 1 1 +1 +1 1 0 0 1 1 0 1 1 0 1 1 0 +0 +1 1 0 1 0 1 1 1 0 1 0 1 0 +0 +0 1 0 0 1 0 0 0 0 1 0 1 1 +1 +1 1 0 0 0 0 0 0 0 0 1 1 1 +1 +1 0 1 0 1 1 0 0 0 0 0 1 1 +0 +1 0 0 0 0 0 1 0 0 0 0 1 1 +0 +1 0 0 1 0 0 0 1 0 1 1 0 0 +1 +1 0 1 1 0 0 0 1 1 1 0 1 0 +1 +1 1 0 1 0 0 0 0 1 0 1 1 1 +1 +0 0 1 1 0 0 0 1 0 1 0 1 1 +0 +0 1 1 1 1 0 0 1 1 0 0 1 0 +1 +0 0 1 0 0 0 0 1 0 0 0 1 1 +0 +0 0 1 1 0 0 0 1 0 1 0 0 0 +0 +1 1 1 0 0 1 0 1 0 0 0 1 1 +1 +0 1 0 1 0 0 1 0 1 0 1 0 1 +0 +0 1 1 0 0 1 0 0 1 0 1 1 1 +1 +0 0 0 1 1 1 1 1 1 1 1 1 0 +1 +1 1 0 1 1 1 1 0 1 0 1 1 1 +0 +1 0 1 0 0 0 1 0 0 0 1 0 1 +1 +0 0 1 0 1 0 0 0 0 0 0 1 1 +0 +1 0 0 0 0 0 0 1 1 0 1 1 0 +1 +1 0 0 1 1 1 1 1 1 0 1 0 0 +0 +0 0 1 0 1 0 0 0 1 0 0 0 0 +1 +1 0 0 1 0 1 1 0 1 0 0 1 0 +0 +1 1 1 1 1 1 0 1 0 1 1 0 1 +0 +1 1 0 1 0 1 1 0 1 1 1 1 0 +1 +0 1 0 0 0 1 1 1 1 1 0 1 1 +0 +1 1 0 0 0 0 1 1 1 0 0 1 1 +1 +0 1 1 1 0 1 0 1 1 1 0 0 0 +1 +0 1 1 0 0 1 0 1 1 1 0 1 1 +0 +0 1 0 1 0 0 0 0 0 0 0 0 1 +1 +0 0 0 0 1 0 1 0 0 0 0 0 0 +0 +0 0 0 0 1 0 1 1 0 1 0 0 1 +1 +0 1 1 0 0 0 1 0 0 0 1 1 0 +1 +1 0 1 1 1 1 0 1 1 0 1 1 0 +1 +0 0 1 1 1 0 1 1 0 0 1 1 0 +1 +1 1 1 1 0 1 1 1 1 1 1 0 0 +0 +1 0 0 1 1 0 1 1 0 1 0 0 0 +0 +1 0 1 1 1 1 0 0 1 1 0 0 1 +0 +0 1 1 1 1 1 1 0 1 1 1 0 0 +1 +0 1 0 1 0 1 0 0 1 0 0 0 1 +1 +0 1 1 0 1 0 1 1 0 0 0 1 0 +0 +1 1 1 0 1 0 1 1 0 0 1 1 1 +1 +1 0 0 0 1 1 0 0 1 1 1 1 0 +1 +1 0 1 1 0 0 0 0 0 1 1 0 0 +1 +1 1 1 1 1 1 0 0 0 1 1 0 0 +0 +1 0 0 1 1 0 0 1 1 1 0 0 0 +0 +0 1 1 0 0 1 0 1 1 0 0 1 0 +0 +1 0 0 0 1 1 0 1 1 1 0 1 1 +0 +1 1 1 1 1 1 1 0 0 0 1 1 1 +0 +1 0 1 0 1 1 1 0 1 0 0 1 0 +1 +1 0 1 0 0 1 1 0 0 0 0 0 0 +0 +1 0 1 1 0 0 0 0 1 0 0 0 1 +1 +1 0 1 1 0 0 1 0 1 0 1 0 0 +0 +0 1 1 0 0 0 0 0 0 1 0 1 0 +0 +1 1 1 0 1 0 1 0 1 0 0 1 0 +1 +0 1 1 0 0 0 0 0 1 1 0 1 0 +1 +0 1 0 1 1 0 0 1 1 0 1 0 0 +0 +0 1 1 0 1 1 1 0 0 1 0 1 1 +0 +0 1 1 0 0 1 0 1 1 0 1 1 1 +0 +0 0 1 1 0 0 1 1 0 0 0 0 1 +1 +0 0 1 1 0 0 0 0 1 1 0 0 1 +1 +0 1 0 0 1 0 1 1 1 1 1 0 0 +1 +1 1 0 0 0 1 0 0 1 0 0 0 1 +1 +1 1 0 0 0 1 1 1 0 0 1 0 1 +1 +1 0 0 0 1 0 1 1 1 0 1 0 1 +1 +1 1 1 0 0 0 1 1 1 1 0 0 1 +0 +0 1 1 1 1 1 0 0 0 0 1 0 1 +1 +0 1 1 0 1 1 1 1 1 1 0 0 1 +1 +0 1 1 1 1 1 0 0 0 0 1 1 0 +1 +1 0 0 1 0 0 1 1 1 0 1 0 0 +0 +0 1 1 0 0 0 1 1 1 1 0 1 0 +1 +1 0 0 1 1 0 0 1 0 1 0 1 0 +0 +0 1 1 1 0 0 0 0 0 0 0 0 0 +1 +0 1 0 1 0 1 0 1 0 1 0 0 0 +1 +0 0 1 0 0 0 1 1 0 0 0 0 0 +1 +0 1 0 0 1 1 1 0 1 0 1 0 0 +0 +1 0 0 1 0 0 1 1 0 0 1 1 1 +1 +1 0 1 0 1 1 0 1 0 0 1 1 0 +1 +0 0 1 1 0 0 0 0 0 0 1 0 1 +0 +1 0 0 1 0 0 1 0 1 0 0 1 1 +0 +0 0 1 1 0 1 1 0 0 0 1 1 1 +1 +0 1 1 0 1 1 1 1 0 0 1 1 1 +1 +1 0 0 1 0 0 1 1 1 1 0 1 1 +0 +0 0 1 1 0 0 0 0 1 0 0 1 0 +0 +1 0 0 1 1 1 0 0 0 1 1 0 0 +0 +0 1 0 0 0 0 1 0 0 0 1 0 0 +1 +0 0 1 0 1 1 0 1 1 1 1 1 0 +0 +1 1 1 1 0 0 1 1 1 0 1 1 0 +1 +1 1 0 1 1 1 0 0 1 0 1 0 0 +1 +0 1 1 1 0 1 0 1 1 0 1 1 1 +1 +0 0 1 1 0 0 0 1 1 0 0 1 1 +0 +1 1 1 0 0 1 0 1 0 1 0 0 1 +1 +0 0 1 0 0 0 1 0 1 0 1 0 1 +1 +1 0 1 0 0 0 0 0 0 0 0 0 0 +0 +0 1 1 1 1 1 1 0 0 0 0 0 1 +1 +0 1 0 0 1 0 1 0 1 1 1 0 1 +1 +1 1 0 0 1 0 1 0 1 0 0 1 0 +0 +0 1 1 1 0 1 1 0 1 0 1 1 1 +1 +1 0 1 0 1 0 0 0 1 0 0 1 1 +0 +0 1 0 1 1 0 1 0 1 0 0 1 1 +1 +0 1 0 1 1 0 0 0 1 0 0 0 0 +0 +0 1 1 1 1 0 0 0 0 1 0 0 1 +0 +1 1 0 1 1 0 1 0 1 0 1 0 0 +1 +0 0 0 0 0 1 1 1 1 0 0 1 0 +1 +0 1 1 1 1 0 1 1 1 0 1 1 1 +0 +1 1 0 1 0 1 0 1 0 0 0 1 1 +1 +1 1 0 1 1 0 0 0 1 0 0 1 0 +0 +0 0 0 0 1 0 0 0 0 0 0 1 1 +1 +1 1 0 0 0 0 1 0 1 0 1 1 0 +0 +0 0 0 0 1 0 1 1 0 1 1 1 0 +0 +1 0 0 0 1 0 1 0 1 0 1 0 0 +1 +0 1 0 0 0 1 0 0 1 1 0 0 1 +1 +1 1 1 0 0 1 1 1 0 1 1 1 1 +0 +1 1 1 0 1 1 1 1 0 1 1 0 0 +1 +0 1 0 0 1 0 0 0 0 0 1 1 0 +0 +0 0 0 0 1 1 0 0 0 1 1 1 1 +0 +0 1 0 0 0 1 1 1 1 1 0 0 0 +0 +0 1 1 0 0 1 0 0 1 1 0 1 1 +1 +1 1 0 1 0 1 0 0 0 1 0 0 0 +1 +1 1 0 1 0 1 1 1 1 0 0 1 1 +1 +1 1 0 1 0 0 0 0 0 0 1 1 0 +1 +1 1 0 1 1 1 0 0 0 0 1 0 0 +0 +0 0 0 1 0 0 0 0 1 1 1 1 1 +0 +1 0 1 1 0 0 0 1 0 1 1 0 1 +1 +0 0 0 0 0 1 1 1 1 0 0 0 1 +1 +1 1 0 0 1 1 1 1 1 0 0 0 1 +0 +1 0 1 0 1 1 1 0 0 0 0 1 1 +1 +1 0 0 0 0 0 0 1 0 1 1 0 0 +0 +1 1 1 1 1 0 0 0 0 0 0 1 1 +1 +1 1 0 1 1 1 0 0 0 0 0 0 0 +1 +0 0 0 1 1 1 0 1 0 0 0 0 1 +1 +1 1 1 0 0 0 0 0 0 0 1 0 1 +1 +1 0 0 1 1 1 0 1 1 1 1 1 1 +0 +0 0 0 1 0 1 1 1 1 0 0 1 1 +1 +1 1 0 0 1 0 1 0 0 1 0 1 1 +1 +0 1 0 0 1 1 1 1 0 0 1 0 0 +0 +0 1 0 0 1 1 1 0 1 1 1 0 1 +0 +1 0 1 0 0 0 1 0 0 0 1 0 0 +0 +0 0 1 0 0 0 1 1 0 1 1 1 1 +1 +1 1 1 0 1 0 0 0 1 1 1 1 1 +1 +0 0 0 1 1 1 0 0 1 1 1 1 0 +1 +0 0 0 0 1 1 0 0 0 0 1 0 0 +1 +0 0 1 0 1 1 1 1 0 1 1 1 0 +0 +0 0 0 1 1 1 1 0 1 1 0 0 1 +1 +1 1 0 0 0 0 0 1 0 0 1 1 1 +0 +0 0 1 1 0 1 1 1 1 0 0 0 0 +0 +0 1 0 0 1 0 1 0 0 1 1 1 0 +0 +1 0 1 0 0 0 0 1 1 1 1 1 0 +1 +0 0 1 1 0 0 0 0 1 0 0 0 1 +0 +1 1 0 1 1 0 0 1 1 0 0 0 1 +1 +0 1 1 0 0 1 1 1 0 1 1 1 1 +1 +0 1 0 1 0 1 1 0 1 1 1 0 0 +1 +0 1 0 0 0 1 1 0 0 1 1 0 1 +0 +1 0 1 1 1 0 1 1 0 0 1 1 0 +0 +1 1 1 0 0 1 1 0 0 1 1 1 0 +0 +1 0 0 0 1 1 0 0 1 1 0 1 0 +0 +0 1 1 1 1 0 0 1 0 1 0 0 1 +1 +0 1 0 1 0 0 0 0 0 1 1 0 1 +1 +1 0 0 0 0 1 1 0 1 1 0 1 1 +1 +1 0 0 1 0 1 1 1 1 0 0 0 0 +0 +1 0 1 1 0 1 0 1 1 0 0 0 1 +1 +1 1 0 0 1 1 0 0 0 1 1 1 0 +1 +0 0 1 1 1 0 0 1 0 0 0 0 1 +1 +0 0 0 0 1 1 1 1 1 0 1 0 0 +0 +0 0 1 0 0 1 1 1 0 0 0 1 1 +0 +0 1 1 0 1 1 1 0 0 0 1 1 1 +0 +0 1 1 0 1 0 1 1 0 1 0 0 1 +1 +1 1 0 1 0 0 0 0 0 1 1 1 0 +0 +1 1 0 1 1 0 1 1 1 1 1 1 1 +1 +1 1 1 0 1 0 1 0 1 1 1 0 0 +0 +0 0 1 1 0 1 0 0 1 1 1 1 0 +1 +1 0 0 0 0 1 0 1 0 1 0 1 0 +1 +1 0 1 0 0 1 0 0 1 0 0 1 1 +0 +0 1 1 1 0 0 1 0 1 1 1 0 1 +0 +1 0 1 0 0 1 0 1 0 0 1 1 0 +0 +1 1 1 1 0 0 1 1 0 0 0 1 1 +0 +1 1 0 1 0 1 1 1 0 1 0 0 1 +0 +0 1 0 0 1 0 1 0 0 0 1 1 0 +1 +0 1 1 0 0 0 1 0 1 0 0 1 1 +0 +1 1 0 1 1 0 1 0 0 1 1 0 0 +1 +0 1 1 0 1 0 1 0 1 1 0 0 0 +0 +0 0 0 0 1 1 0 0 0 1 0 1 1 +1 +1 0 1 0 1 0 1 1 0 0 0 1 1 +1 +1 1 0 0 1 1 0 0 0 0 0 1 0 +1 +1 1 0 1 0 0 0 0 1 1 0 0 1 +0 +1 0 0 0 0 1 1 0 1 0 1 1 0 +0 +0 0 1 1 1 1 0 0 0 1 1 1 1 +0 +1 0 0 0 1 0 0 0 0 1 0 0 0 +1 +0 0 1 1 1 1 1 1 1 0 1 0 0 +0 +0 0 1 1 0 1 1 1 1 1 1 0 1 +1 +0 0 1 1 0 0 0 0 0 0 1 1 0 +0 +0 0 1 0 1 1 1 1 1 0 1 1 1 +1 +1 1 0 0 1 0 0 1 1 0 1 1 0 +1 +1 1 1 1 0 1 1 0 1 1 0 1 1 +0 +1 0 1 0 0 1 0 0 1 1 0 0 0 +1 +1 0 0 1 0 0 1 0 1 0 1 1 0 +0 +0 0 1 1 1 0 0 0 1 1 1 0 0 +0 +0 0 1 1 0 1 1 1 0 1 1 0 1 +0 +0 0 0 1 0 1 1 0 1 0 0 0 0 +0 +1 0 0 0 1 0 1 1 1 0 0 1 0 +0 +0 1 0 1 0 0 0 0 1 0 0 0 0 +1 +0 0 1 1 0 0 1 1 0 1 0 0 0 +1 +0 1 1 1 0 0 0 1 1 1 0 1 1 +0 +1 0 0 1 1 1 0 1 1 0 0 1 0 +1 +1 0 1 0 1 1 0 0 0 1 0 0 1 +0 +0 1 1 1 0 0 1 0 0 0 1 1 1 +1 +0 1 1 1 0 0 0 0 1 0 1 1 1 +1 +1 1 1 1 0 0 0 1 0 1 0 1 1 +0 +0 1 0 0 1 1 0 0 0 1 0 1 0 +1 +1 1 0 0 0 0 0 1 1 1 1 1 0 +1 +0 0 0 1 1 1 1 1 1 1 1 0 0 +0 +0 0 1 1 1 1 0 0 1 1 1 0 1 +0 +0 0 1 0 1 0 0 0 1 0 0 1 1 +1 +0 1 1 0 1 1 1 0 0 1 1 0 1 +0 +1 0 0 0 0 0 0 1 0 0 0 0 0 +0 +1 1 1 1 0 1 1 0 0 1 1 0 0 +0 +0 1 1 1 0 0 0 1 1 1 1 1 1 +1 +1 1 1 1 0 0 1 0 0 1 0 0 0 +0 +1 1 0 1 0 1 1 1 0 0 0 0 0 +0 +0 0 0 1 0 0 1 1 0 1 1 0 1 +0 +0 1 0 0 1 1 0 1 1 0 1 1 0 +1 +0 1 1 0 0 1 1 0 0 1 1 0 0 +0 +1 0 0 0 1 0 0 0 1 0 1 1 0 +1 +0 1 1 1 1 1 1 1 1 0 1 1 1 +1 +0 1 1 1 0 0 1 1 1 0 1 1 1 +1 +0 0 0 1 1 1 0 1 1 0 1 1 0 +1 +0 0 1 1 1 0 0 1 1 0 1 1 0 +1 +0 1 1 1 0 1 0 1 1 0 1 0 1 +0 +1 0 1 1 0 1 1 0 0 0 0 0 0 +1 +0 0 1 0 1 0 1 1 1 0 0 0 0 +1 +0 1 1 0 1 0 1 0 1 1 1 1 1 +1 +1 1 0 0 0 0 1 0 0 0 0 0 0 +1 +0 0 1 0 1 1 0 1 1 0 0 1 0 +0 +1 0 1 0 1 0 1 1 1 0 0 1 0 +1 +1 0 1 1 1 1 0 1 1 1 0 1 1 +0 +0 1 0 0 1 1 0 0 1 0 1 0 0 +1 +1 0 0 0 0 1 0 0 0 1 1 1 1 +0 +1 0 0 0 0 0 1 0 0 1 0 1 1 +1 +0 1 1 0 1 0 1 1 1 1 0 0 1 +0 +1 0 1 1 0 0 0 1 1 1 1 1 0 +0 +1 0 1 0 0 1 0 1 1 0 0 1 0 +0 +1 1 0 1 1 0 1 0 1 0 1 0 1 +0 +1 1 0 1 1 1 0 1 1 0 1 0 0 +0 +0 0 0 0 0 0 1 1 1 0 0 1 0 +0 +1 0 0 1 0 1 1 0 0 0 1 1 0 +0 +1 0 1 1 1 0 0 1 0 1 0 1 1 +0 +0 0 0 1 1 1 1 1 0 1 1 1 1 +1 +0 1 0 0 0 1 1 1 0 0 1 0 0 +1 +1 0 0 0 0 1 1 1 0 1 0 1 0 +0 +0 0 0 1 1 1 0 1 0 1 1 1 0 +1 +1 0 0 1 1 1 0 1 0 1 1 1 0 +0 +1 0 1 0 1 1 0 1 1 0 1 1 1 +1 +0 1 1 1 0 0 1 1 1 0 0 1 1 +0 +1 0 1 1 1 0 0 0 0 1 0 1 0 +0 +0 1 0 0 0 0 0 0 0 1 0 1 0 +1 +0 0 1 1 0 1 0 1 1 0 1 1 1 +0 +0 1 1 1 0 1 0 1 0 1 1 0 0 +1 +0 0 1 0 1 0 1 0 0 0 1 0 0 +0 +1 1 1 1 0 0 0 0 0 0 1 1 1 +1 +1 1 0 0 1 1 1 0 1 1 0 1 0 +0 +1 1 0 1 0 1 0 0 0 0 1 1 0 +0 +0 0 1 1 0 1 0 0 1 0 1 0 0 +1 +0 1 1 1 0 0 0 0 1 1 1 0 1 +1 +1 0 0 1 1 1 0 0 0 0 1 1 1 +1 +0 1 0 1 1 1 0 0 0 0 0 1 0 +1 +1 0 1 0 0 1 1 1 1 1 1 0 1 +1 +0 1 0 0 0 1 0 1 1 0 1 1 1 +1 +1 0 0 1 0 0 0 0 1 0 0 0 1 +0 +0 1 1 1 0 0 0 1 0 1 1 1 1 +0 +1 1 0 0 0 0 0 1 1 0 1 0 1 +0 +0 0 0 0 1 1 1 1 1 1 1 0 1 +0 +1 1 1 1 1 1 0 0 0 0 1 0 0 +1 +0 1 1 0 1 0 1 0 0 0 1 1 0 +0 +0 1 1 0 0 1 0 1 1 1 0 1 0 +1 +0 1 0 0 1 1 1 0 1 1 0 0 0 +0 +1 0 0 1 1 1 1 1 0 1 1 0 0 +0 +0 1 1 0 1 1 0 0 1 1 0 0 0 +0 +0 1 0 1 1 0 0 0 0 0 0 0 1 +0 +0 0 1 0 1 1 0 0 0 0 1 1 0 +1 +1 0 0 0 1 0 1 0 1 1 0 1 1 +1 +1 1 0 1 0 0 0 0 1 0 1 0 1 +0 +1 1 0 1 1 0 1 0 1 0 1 1 0 +0 +1 1 1 1 0 1 1 0 0 1 0 1 1 +1 +1 1 0 0 0 1 1 0 0 0 1 0 1 +0 +1 1 0 0 1 0 1 1 1 1 1 0 1 +1 +0 1 1 0 1 1 0 0 0 1 0 1 0 +0 +1 1 1 0 1 1 0 0 1 0 0 1 1 +0 +0 1 0 0 0 0 0 0 1 0 0 0 1 +1 +0 0 0 0 0 0 0 1 1 1 1 1 1 +0 +1 0 1 1 0 0 1 1 0 0 1 0 1 +1 +1 1 0 1 1 0 0 1 0 1 1 1 0 +0 +0 1 1 0 0 1 0 1 0 0 1 0 0 +1 +0 1 1 0 0 0 1 0 0 0 1 1 1 +0 +1 0 0 0 1 0 0 1 0 0 1 1 1 +0 +1 1 0 1 1 1 1 1 0 0 1 0 1 +1 +1 0 1 0 0 0 0 1 0 0 0 1 0 +0 +0 0 1 0 1 0 0 0 1 0 1 0 0 +0 +0 0 1 1 1 0 0 0 0 0 1 1 1 +0 +1 1 1 0 1 1 1 0 1 0 1 1 0 +1 +0 0 1 0 0 1 1 1 0 1 0 0 0 +1 +0 0 0 0 0 0 0 0 1 1 1 1 0 +0 +1 0 0 0 0 0 0 1 1 1 1 0 1 +0 +1 0 0 0 0 1 0 0 1 0 0 1 1 +1 +0 0 0 1 1 0 0 1 0 1 0 0 0 +0 +1 0 0 0 0 0 0 1 1 0 1 0 0 +0 +1 0 1 0 0 1 0 1 1 1 0 1 1 +0 +1 1 1 0 0 0 0 1 1 0 0 1 1 +1 +0 0 0 0 1 0 0 1 1 0 0 0 0 +1 +1 0 0 1 0 1 0 0 0 1 0 1 0 +1 +0 0 0 0 1 1 0 0 1 1 1 1 0 +0 +0 1 0 0 0 0 1 1 0 0 1 0 1 +1 +1 1 0 1 1 1 0 0 1 1 0 0 1 +0 +0 1 0 1 1 1 0 0 1 1 1 1 0 +0 +1 1 0 0 0 0 0 0 0 0 1 0 1 +0 +1 0 0 0 0 1 1 0 0 1 0 0 0 +0 +1 0 0 1 0 0 1 1 1 0 0 1 0 +0 +0 1 1 1 0 1 0 0 1 1 1 1 0 +0 +1 1 0 0 0 1 1 1 1 0 0 0 1 +1 +1 0 1 1 0 1 1 1 1 1 0 1 0 +1 +1 1 0 1 1 0 1 0 0 0 0 0 0 +1 +1 0 1 1 1 1 1 1 0 1 0 1 1 +0 +1 0 0 1 1 0 1 0 0 0 0 0 1 +1 +1 0 0 1 0 0 0 0 0 0 0 1 0 +1 +0 1 1 0 1 0 0 1 0 0 1 1 0 +0 +0 0 1 1 1 0 1 0 1 1 0 0 0 +0 +0 1 0 0 1 1 1 1 1 1 0 1 1 +1 +1 1 1 1 1 1 0 1 1 1 1 0 1 +1 +1 1 1 0 1 1 0 0 1 0 1 0 0 +1 +1 0 0 1 1 1 1 0 1 0 1 0 0 +1 +0 1 0 0 0 0 0 1 1 1 0 1 1 +0 +1 0 0 1 1 1 1 1 1 1 0 1 1 +0 +0 1 1 0 0 1 0 0 1 1 0 0 1 +0 +1 1 1 0 1 0 1 1 0 0 1 0 1 +0 +0 0 1 1 0 1 0 1 0 1 1 1 0 +1 +1 0 0 0 0 0 0 0 1 1 0 1 1 +1 +1 1 0 1 1 1 0 1 1 1 0 0 1 +1 +0 1 0 0 1 0 0 0 0 0 1 1 1 +1 +1 0 1 1 1 1 1 1 1 1 0 1 1 +1 +0 0 0 1 1 0 0 1 1 1 0 0 0 +1 +1 0 1 1 0 1 1 0 1 0 0 0 0 +0 +1 0 1 1 0 0 0 0 0 0 0 0 1 +0 +0 0 0 1 0 0 1 0 1 0 0 1 1 +1 +0 1 0 0 0 0 1 0 0 0 0 1 0 +1 +1 1 1 1 1 1 1 1 0 1 1 1 1 +0 +1 1 0 0 0 1 1 1 1 1 0 1 1 +1 +0 1 0 0 0 0 1 0 1 0 1 0 1 +1 +0 0 0 1 1 0 1 0 0 1 1 0 0 +1 +0 0 0 0 0 0 0 1 0 0 1 1 0 +1 +0 0 1 0 0 0 1 1 1 0 1 0 1 +0 +1 0 0 1 1 1 0 1 0 0 1 0 1 +1 +0 0 1 1 1 0 0 1 0 0 1 1 1 +1 +0 0 0 1 0 1 0 1 0 1 1 1 0 +0 +1 1 1 1 1 0 1 0 1 0 1 0 0 +0 +0 1 1 1 1 0 0 1 1 1 1 1 1 +0 +0 0 0 0 1 1 0 0 1 1 1 1 1 +1 +1 0 0 1 0 0 0 1 0 0 0 1 0 +0 +0 1 0 0 1 0 0 1 0 0 0 1 1 +1 +1 0 0 1 0 1 0 0 0 0 0 1 1 +1 +1 0 0 0 0 0 1 1 1 1 1 1 1 +0 +0 1 0 1 0 1 0 1 0 1 1 1 1 +0 +1 1 0 1 0 1 0 0 1 0 1 0 1 +1 +0 0 0 1 1 0 1 0 1 0 1 0 0 +1 +1 0 0 0 0 1 0 1 1 0 1 0 0 +1 +0 1 0 0 0 0 0 1 0 0 1 1 0 +0 +1 0 1 1 1 0 0 1 1 0 0 0 1 +1 +0 0 1 0 1 0 0 1 1 0 0 1 0 +1 +1 1 1 1 1 1 1 0 1 0 0 1 0 +1 +1 1 1 0 1 1 0 0 0 1 1 0 0 +1 +1 1 1 1 0 0 1 1 0 1 1 0 1 +1 +0 1 1 0 0 1 1 1 1 1 0 1 0 +0 +1 0 0 1 1 1 1 0 1 0 1 1 0 +0 +1 0 0 0 0 0 0 0 1 1 1 0 1 +1 +1 1 1 1 1 1 1 1 1 0 0 0 1 +0 +0 0 0 0 1 1 1 0 1 0 0 1 0 +1 +1 1 1 0 0 1 1 0 1 1 0 0 1 +0 +0 0 0 0 0 0 1 1 0 0 1 1 0 +0 +0 0 0 1 0 0 1 0 0 1 0 0 0 +1 +0 0 1 1 0 0 1 1 0 0 0 1 1 +0 +1 0 0 1 0 1 1 0 1 0 0 0 1 +0 +1 0 1 0 1 1 1 0 0 1 0 0 0 +0 +1 0 0 1 0 0 1 1 0 0 1 0 1 +0 +1 1 0 0 0 0 0 0 1 1 1 0 1 +0 +1 1 1 0 0 0 0 0 1 1 1 1 1 +0 +0 0 0 0 0 0 0 0 0 1 0 1 0 +0 +0 1 0 0 0 0 1 1 0 1 0 1 1 +0 +0 1 0 1 1 1 0 1 0 1 1 1 0 +0 +1 1 0 0 0 1 1 1 1 1 1 0 1 +1 +1 1 0 1 1 1 1 1 0 1 1 0 1 +0 +0 1 0 1 0 0 0 0 1 0 0 0 1 +0 +1 0 0 0 1 1 1 1 1 1 1 1 0 +1 +0 0 0 0 0 0 1 0 1 1 1 0 0 +0 +1 0 1 1 1 0 1 1 0 1 1 1 1 +0 +1 0 1 1 1 1 1 0 0 0 1 1 0 +0 +0 0 1 1 0 0 0 1 1 0 0 0 0 +0 +1 1 0 1 0 1 1 1 0 0 0 1 1 +0 +1 1 0 0 1 0 0 0 0 0 1 1 0 +1 +1 0 1 0 1 1 0 1 0 1 1 1 1 +1 +0 1 1 1 1 0 0 0 0 1 0 1 0 +0 +1 0 1 0 1 1 0 0 0 0 1 1 1 +1 +1 1 0 1 0 0 1 1 1 1 0 1 0 +0 +0 0 1 1 0 1 1 0 1 1 0 0 1 +1 +0 0 1 0 0 1 0 0 1 1 0 1 1 +0 +0 0 0 1 0 0 0 1 0 1 1 1 1 +0 +1 0 0 0 1 1 0 0 1 0 1 1 1 +1 +1 1 0 0 1 0 0 0 1 0 1 1 1 +1 +0 0 1 1 0 1 1 0 1 0 0 1 0 +0 +1 0 1 1 1 1 1 1 1 1 1 0 0 +0 +1 0 0 1 0 0 0 0 1 1 1 0 1 +0 +1 1 0 0 1 1 1 0 1 1 0 1 1 +1 +0 0 0 0 1 1 0 1 0 1 0 1 1 +0 +0 1 1 0 0 0 1 1 1 0 1 0 1 +1 +0 1 0 0 0 0 1 0 0 1 1 0 0 +0 +0 0 0 1 0 1 1 1 1 0 1 0 0 +0 +0 0 1 1 0 1 0 1 0 1 1 1 1 +0 +1 1 1 1 0 1 1 1 0 1 0 1 1 +0 +0 0 1 0 0 1 1 0 1 0 0 0 1 +1 +0 1 1 1 0 0 1 0 1 1 0 1 0 +1 +0 0 0 1 0 1 0 0 0 0 1 1 1 +1 +1 1 1 1 0 0 1 0 1 0 0 0 1 +1 +1 0 0 1 1 1 0 1 0 1 1 0 1 +0 +0 0 0 1 1 0 0 1 0 1 0 0 1 +1 +0 1 1 1 0 0 0 1 0 1 0 1 0 +0 +0 0 0 1 1 0 1 1 1 1 0 0 1 +1 +0 0 0 0 0 1 0 1 1 1 0 1 1 +0 +1 0 0 0 1 1 1 1 0 0 0 1 1 +1 +0 0 1 0 1 1 1 0 0 1 1 1 0 +1 +1 1 1 1 0 0 1 1 0 1 0 0 0 +1 +1 0 0 0 1 1 0 0 1 1 0 0 1 +0 +1 0 0 0 1 0 1 0 0 0 1 1 1 +0 +0 0 1 1 1 0 0 0 1 0 1 1 1 +1 +0 1 1 0 1 1 0 1 0 1 0 1 0 +1 +0 1 1 1 0 1 0 0 0 1 0 1 1 +1 +1 1 0 0 1 0 1 1 0 0 1 1 0 +1 +1 0 1 1 1 0 1 1 0 0 0 0 1 +1 +1 0 1 0 1 1 0 1 1 1 1 0 1 +1 +1 0 1 0 1 0 1 0 1 1 1 1 0 +0 +1 1 1 1 1 0 0 0 0 0 0 1 0 +0 +1 1 1 0 1 1 1 0 1 1 1 1 1 +1 +0 0 0 0 1 1 0 0 0 0 0 0 1 +1 +1 0 0 0 1 1 1 0 0 0 0 1 0 +1 +1 1 1 1 0 1 0 1 1 0 0 1 1 +1 +0 0 0 0 0 1 0 1 1 0 1 0 1 +1 +0 1 1 1 1 0 1 1 0 1 1 0 0 +0 +0 0 1 0 0 0 1 0 0 0 1 1 0 +0 +0 1 1 0 0 1 0 1 1 1 0 0 1 +1 +1 0 0 0 1 1 1 0 1 0 0 1 0 +0 +0 1 1 1 1 0 1 0 0 0 1 0 0 +0 +1 0 0 1 0 0 1 1 0 1 0 0 1 +0 +1 1 0 0 0 1 0 0 1 1 1 0 0 +0 +0 1 1 0 0 0 0 0 0 1 1 0 1 +1 +1 0 1 1 0 1 1 0 0 0 1 1 1 +0 +1 1 1 1 1 0 1 1 0 1 1 1 0 +0 +0 1 1 1 1 1 0 1 1 1 0 1 1 +0 +0 1 0 1 1 1 0 1 0 1 0 0 0 +0 +0 1 1 1 0 1 1 1 1 0 0 0 0 +1 +0 0 1 0 1 1 1 0 1 0 1 1 1 +0 +1 0 1 1 0 0 0 1 0 0 0 0 0 +0 +1 0 1 1 0 0 1 0 1 1 0 0 1 +1 +1 1 0 1 1 1 1 0 0 1 0 0 1 +0 +1 0 0 1 1 1 0 0 1 1 0 1 1 +0 +1 1 0 0 0 0 0 1 0 0 1 0 1 +1 +0 0 1 0 1 0 1 1 0 0 1 0 0 +1 +1 1 0 0 1 1 1 0 0 1 1 1 1 +1 +0 0 1 1 0 0 0 1 1 0 1 0 0 +1 +1 1 1 1 1 0 0 1 0 0 0 1 0 +1 +1 0 1 0 0 0 1 0 1 0 1 1 0 +0 +1 1 1 1 1 0 1 1 1 1 0 1 1 +1 +0 0 1 1 1 1 0 1 1 0 1 1 1 +1 +1 1 0 1 0 1 1 1 1 0 0 0 0 +1 +0 1 0 1 1 1 0 0 1 0 0 0 1 +0 +1 1 0 0 0 1 1 0 0 0 1 1 0 +0 +1 1 0 1 1 1 0 0 1 0 0 1 1 +0 +0 0 1 1 0 0 1 1 0 1 1 0 0 +0 +1 0 0 0 0 1 1 0 0 0 1 1 0 +1 +0 1 0 0 0 1 1 1 1 0 0 1 1 +1 +1 0 1 0 0 0 0 0 0 1 1 0 0 +0 +0 0 1 0 0 0 1 0 0 1 0 0 0 +1 +1 0 0 0 1 0 0 0 0 0 0 1 0 +1 +1 1 0 1 0 0 1 0 0 1 0 1 0 +0 +0 1 0 0 0 1 1 0 0 0 1 0 0 +0 +0 1 0 1 0 0 1 1 0 0 1 1 0 +0 +1 1 0 1 0 0 0 0 1 0 1 0 0 +1 +1 1 0 1 1 1 1 1 1 1 1 1 1 +0 +0 0 1 0 0 1 0 1 0 0 1 0 0 +0 +0 1 0 0 0 0 0 0 0 1 1 0 0 +1 +0 0 1 0 1 1 0 1 1 0 0 0 0 +1 +0 1 1 1 1 0 0 1 1 1 0 1 1 +1 +0 1 0 1 0 0 1 1 0 0 1 1 1 +1 +1 1 0 1 0 1 1 1 0 0 1 0 1 +0 +0 1 1 0 1 0 1 0 0 0 0 0 1 +1 +0 1 0 0 1 1 0 0 0 0 0 1 1 +1 +1 1 0 1 1 1 0 0 0 1 1 1 1 +1 +1 1 0 1 1 1 0 1 1 0 1 0 1 +1 +0 0 1 1 1 0 0 1 0 0 0 1 1 +0 +0 1 0 1 1 1 1 1 1 1 0 1 0 +1 +1 1 1 0 0 1 0 0 1 1 0 1 1 +0 +1 1 1 0 0 0 0 0 1 1 1 0 1 +1 +1 0 1 0 0 1 1 1 0 1 0 1 1 +0 +0 1 1 1 0 1 1 1 1 1 1 1 0 +0 +0 1 1 1 1 0 0 0 1 1 0 0 1 +1 +1 0 1 0 0 0 0 0 1 0 1 0 0 +0 +1 1 1 0 0 1 1 1 1 0 1 0 0 +0 +0 0 0 0 0 0 0 0 1 0 0 0 1 +0 +0 0 0 1 1 1 1 1 0 0 0 0 1 +0 +1 0 0 1 1 0 1 1 1 0 1 0 1 +0 +0 0 0 0 1 1 0 1 0 0 0 0 1 +0 +1 1 1 0 1 0 0 0 0 1 1 1 0 +1 +1 1 1 0 1 1 1 1 0 0 0 1 0 +0 +0 0 1 0 1 1 1 0 1 1 1 0 1 +0 +0 1 0 1 1 0 0 1 0 1 1 0 1 +1 +1 1 0 1 0 0 1 1 1 1 0 0 1 +0 +0 1 1 0 1 1 0 1 0 0 0 1 1 +1 +0 0 1 1 0 0 0 0 0 0 1 1 1 +1 +0 0 0 1 1 0 1 0 0 0 0 0 0 +1 +0 0 0 1 0 1 0 1 1 0 1 1 1 +1 +0 0 1 1 1 0 0 1 0 0 0 0 0 +0 +0 0 0 1 1 0 0 1 1 1 0 1 1 +1 +0 0 1 0 0 1 0 0 0 0 1 1 0 +0 +0 0 1 0 1 0 1 1 1 1 0 1 0 +1 +1 0 0 0 0 0 0 0 0 1 0 1 1 +0 +1 0 0 0 1 1 0 1 0 0 1 0 1 +0 +1 1 0 1 0 1 1 1 1 1 1 0 1 +0 +1 0 1 0 1 0 1 0 1 0 0 1 1 +1 +1 1 1 0 1 0 1 1 1 0 0 0 0 +1 +0 0 0 1 1 1 0 0 1 1 0 0 0 +1 +0 0 1 1 0 1 1 1 0 0 0 0 0 +1 +0 1 0 1 0 1 1 0 1 1 0 1 0 +1 +1 1 1 0 0 1 1 1 1 0 1 1 1 +0 +0 0 1 1 1 1 0 1 1 1 1 1 0 +1 +1 1 0 1 1 1 1 1 1 0 1 0 1 +0 +1 0 0 1 1 1 0 0 0 0 1 0 0 +1 +1 1 1 1 0 1 1 0 1 0 1 0 1 +1 +0 1 1 0 1 1 0 0 1 0 0 1 1 +1 +0 1 0 1 1 0 1 1 1 1 1 0 0 +0 +0 0 1 1 1 1 1 1 0 1 1 0 1 +1 +0 1 1 0 0 0 1 1 1 0 1 0 0 +0 +0 1 1 1 1 1 0 0 1 0 1 0 1 +0 +1 1 0 1 0 1 0 1 1 0 0 0 1 +1 +1 0 0 1 0 1 0 0 0 1 1 0 0 +1 +1 0 1 1 0 1 1 1 0 0 0 0 0 +0 +0 1 0 0 1 0 0 0 1 1 0 0 1 +1 +1 0 0 1 0 1 1 0 0 1 1 0 1 +1 +0 0 1 0 0 0 1 0 0 1 0 1 0 +0 +1 1 0 0 0 1 0 1 0 1 0 0 1 +0 +0 1 1 1 0 0 1 0 0 0 1 1 0 +0 +0 0 1 1 1 1 1 0 0 0 1 1 1 +0 +0 1 1 1 0 1 1 0 0 1 0 1 1 +0 +1 1 1 1 0 1 0 0 1 0 0 1 0 +1 +1 0 1 1 0 1 0 0 0 1 0 0 0 +1 +0 1 1 1 0 1 1 0 0 1 1 1 1 +1 +1 0 1 1 1 0 0 0 0 1 0 1 1 +1 +0 0 1 1 0 0 0 0 0 0 0 1 0 +1 +0 1 0 0 1 1 0 1 0 1 0 0 1 +0 +0 1 0 1 1 1 1 1 0 0 1 1 0 +0 +0 1 1 1 0 1 1 1 1 0 0 1 0 +0 +1 0 0 0 0 1 1 0 1 1 0 0 1 +0 +1 0 1 0 0 0 0 1 1 1 0 0 0 +1 +0 1 1 1 0 1 0 0 1 1 1 1 1 +1 +1 0 1 0 1 0 1 0 1 1 0 1 0 +1 +1 0 1 0 0 1 1 0 0 0 0 0 1 +1 +0 0 0 0 1 0 1 0 0 1 0 0 0 +1 +0 1 0 0 1 0 1 0 0 1 0 1 0 +1 +1 1 0 1 0 0 1 0 0 1 0 1 1 +1 +1 0 0 1 0 1 0 0 0 0 0 0 1 +0 +1 1 0 0 0 1 1 0 1 0 0 1 1 +1 +1 0 0 1 0 0 0 1 1 0 0 1 1 +0 +1 1 1 1 1 1 1 0 1 0 1 0 0 +1 +1 0 1 1 1 0 0 1 1 0 0 1 0 +1 +1 0 1 0 1 0 0 0 0 0 1 1 1 +0 +0 1 0 0 0 0 1 1 1 0 1 1 0 +0 +0 1 0 1 0 0 0 1 1 1 1 0 1 +1 +0 0 1 0 0 1 1 1 0 0 0 0 1 +1 +1 0 0 0 0 1 0 1 1 0 1 1 0 +0 +0 1 0 1 0 0 0 1 0 1 0 0 0 +0 +0 0 0 1 1 1 1 1 0 1 0 0 0 +0 +0 1 0 1 1 0 1 1 1 0 1 0 0 +1 +1 1 0 1 0 0 0 0 1 0 0 0 1 +1 +0 1 1 0 0 1 1 0 1 0 1 1 1 +0 +0 1 1 1 0 1 0 1 1 1 0 1 0 +0 +0 0 0 1 1 1 0 1 1 1 0 0 0 +0 +0 0 0 1 1 1 1 1 1 1 0 1 1 +1 +0 0 1 1 0 1 0 0 0 1 1 1 1 +1 +0 1 0 1 1 1 0 1 1 1 1 0 1 +1 +1 0 1 1 1 1 1 0 0 0 0 0 0 +0 +1 1 0 1 1 0 1 0 0 0 1 0 1 +1 +0 1 0 0 1 0 1 0 0 1 1 0 0 +1 +1 0 1 1 1 1 0 1 1 0 1 1 1 +0 +0 1 0 0 1 0 1 0 0 0 1 1 1 +0 +1 0 1 1 1 1 0 1 1 0 1 0 1 +1 +0 1 1 0 1 0 0 0 1 0 0 1 0 +1 +1 0 0 0 1 1 1 0 1 0 0 1 1 +1 +0 1 0 1 0 0 1 1 1 1 0 1 0 +1 +0 1 1 0 0 1 0 1 0 0 0 1 0 +1 +1 0 0 1 1 0 1 1 0 0 1 1 0 +1 +1 1 1 1 0 1 0 1 1 0 0 1 0 +0 +1 0 0 0 0 0 1 1 1 0 1 1 1 +1 +0 1 1 0 1 1 0 0 0 1 1 0 1 +1 +1 1 1 0 1 0 0 0 1 0 1 0 1 +1 +0 1 0 1 1 1 0 0 0 0 1 1 0 +0 +0 1 0 1 0 0 0 1 0 1 1 1 1 +1 +0 1 1 0 1 0 1 0 1 0 0 0 0 +1 +0 1 1 1 0 0 0 0 0 1 0 1 0 +1 +0 0 1 0 0 1 0 0 0 0 0 1 0 +1 +0 1 0 0 1 0 1 1 1 1 0 0 1 +1 +0 1 0 1 1 0 0 1 0 1 1 1 0 +1 +0 1 0 1 1 0 0 1 1 1 0 1 1 +0 +0 0 1 1 0 1 0 0 0 0 0 1 1 +1 +1 1 1 0 0 0 1 1 1 1 1 0 0 +0 +0 0 0 1 0 0 1 0 0 1 1 1 1 +0 +1 0 0 1 1 1 0 0 1 0 0 0 0 +1 +0 0 1 1 1 0 1 1 1 0 1 1 0 +0 +1 0 0 0 1 1 0 0 0 1 1 1 1 +1 +1 1 0 1 1 0 0 0 1 1 1 1 0 +0 +1 1 0 0 1 1 1 1 0 1 1 0 0 +0 +1 0 1 1 0 0 1 1 0 1 0 1 1 +0 +1 0 1 0 0 0 1 1 1 0 0 1 1 +1 +0 0 0 1 1 1 1 0 1 0 1 0 1 +1 +1 1 1 1 1 1 1 1 1 1 1 0 1 +0 +0 0 0 1 0 1 0 0 1 1 1 1 1 +1 +1 1 1 0 0 0 1 1 1 0 0 1 1 +0 +0 1 0 0 0 1 1 0 1 1 0 0 0 +1 +1 0 0 1 1 0 0 1 0 0 0 1 1 +0 +0 1 1 0 1 0 0 0 0 0 1 0 1 +1 +0 0 1 0 1 0 1 0 0 0 0 1 1 +1 +1 0 0 1 0 1 1 0 1 1 1 0 0 +1 +1 0 0 0 0 1 0 0 0 0 0 1 0 +1 +0 0 0 1 0 1 1 0 1 1 0 0 1 +0 +1 0 1 1 1 1 1 0 0 1 1 1 1 +0 +1 1 0 1 1 1 0 1 1 1 1 0 0 +1 +0 1 0 0 1 0 1 1 0 0 1 1 0 +0 +1 1 1 0 1 1 0 0 0 0 0 1 1 +1 +1 0 1 0 0 1 0 0 0 0 1 1 1 +0 +1 1 0 0 1 0 1 1 0 0 1 0 0 +0 +0 0 1 1 1 1 1 1 1 1 0 0 1 +1 +0 1 0 0 1 0 0 1 0 1 0 1 0 +1 +1 0 0 0 1 1 0 1 0 0 1 1 0 +0 +0 0 1 0 1 1 0 1 1 0 1 1 1 +0 +0 1 1 0 0 0 0 0 0 0 1 1 0 +0 +1 1 1 0 1 0 1 1 0 0 0 1 1 +0 +1 1 0 0 1 1 1 1 1 0 0 1 0 +0 +1 1 0 0 1 1 0 0 1 0 1 0 0 +0 +1 1 0 0 0 1 1 1 1 0 1 1 1 +1 +1 0 1 0 0 0 1 1 1 0 0 0 1 +0 +1 1 1 0 0 1 0 0 0 0 0 0 1 +1 +1 0 0 0 0 0 1 0 1 0 0 1 1 +1 +1 0 1 0 1 0 0 1 0 1 1 0 1 +1 +0 0 0 0 0 0 1 1 1 0 1 0 0 +0 +0 1 1 1 0 0 1 1 0 1 1 0 0 +1 +1 1 1 1 1 0 1 1 0 0 0 1 1 +1 +1 1 1 0 0 0 0 1 0 0 0 1 0 +1 +1 0 1 1 0 0 1 1 1 1 0 1 0 +0 +0 1 0 1 1 1 1 1 1 1 0 1 1 +0 +1 1 0 1 1 1 1 1 0 1 1 1 0 +0 +0 1 0 1 1 1 0 0 0 0 1 1 1 +1 +1 1 1 1 1 1 0 1 0 1 1 0 0 +1 +0 1 1 1 1 0 0 1 1 0 1 0 1 +0 +1 0 0 1 1 0 1 0 0 0 1 1 0 +0 +1 1 0 1 1 1 1 0 0 1 0 1 1 +1 +0 1 0 0 1 1 0 0 0 0 1 1 1 +0 +0 1 0 0 1 0 0 0 0 1 1 1 1 +0 +0 1 1 1 1 1 1 1 0 0 0 0 1 +0 +0 1 0 0 0 0 0 0 1 0 0 0 0 +0 +0 1 0 0 1 1 0 1 0 1 1 0 0 +0 +0 0 0 0 0 0 1 0 0 1 1 0 1 +0 +0 1 1 1 0 0 1 1 0 1 0 1 1 +0 +0 1 1 0 0 0 1 0 0 0 0 1 1 +1 +1 1 1 0 0 0 1 1 0 1 1 1 1 +1 +0 1 1 0 0 1 1 0 0 1 0 0 0 +1 +1 0 0 1 1 1 1 1 1 0 1 1 1 +0 +1 1 0 0 0 0 1 1 0 1 1 1 0 +1 +1 1 1 0 0 0 0 1 1 0 1 0 1 +1 +1 0 0 0 0 0 0 0 0 1 1 0 0 +1 +1 1 1 0 1 1 0 0 1 1 0 0 1 +0 +1 0 1 1 0 1 0 1 0 1 1 0 1 +0 +0 0 1 0 0 1 1 0 0 1 0 0 0 +0 +1 1 1 1 1 0 0 1 0 0 1 0 0 +1 +0 1 0 0 0 1 1 1 0 1 0 0 1 +0 +1 0 0 0 1 1 1 0 0 0 1 1 0 +0 +1 0 0 0 1 1 0 0 1 1 0 1 1 +1 +1 0 1 0 1 0 0 0 1 1 1 0 0 +0 +0 0 0 0 0 0 0 1 0 0 0 0 0 +1 +0 0 1 1 0 0 1 1 0 1 1 1 0 +1 +1 0 0 1 1 0 1 0 0 0 1 1 1 +1 +1 1 0 0 1 0 0 1 1 1 1 1 1 +1 +0 0 1 0 1 0 0 0 1 0 1 1 0 +1 +1 1 1 1 1 1 1 1 0 0 0 0 1 +1 +1 0 0 0 0 1 1 1 0 1 0 0 0 +1 +0 0 1 0 1 1 1 0 1 0 0 1 0 +0 +1 1 1 0 1 1 0 1 1 0 0 0 0 +1 +1 0 1 1 1 1 0 0 0 1 0 0 1 +1 +1 0 0 0 0 0 1 0 0 0 1 0 1 +0 +0 0 0 1 1 1 1 0 1 0 1 1 0 +1 +0 0 0 0 1 0 0 1 0 0 0 0 1 +1 +0 1 1 0 0 1 1 0 0 1 0 1 1 +1 +1 1 0 1 0 1 1 0 1 1 1 0 1 +1 +0 0 1 1 0 0 1 1 1 0 0 1 1 +1 +1 1 1 1 0 1 1 0 1 0 0 0 1 +0 +0 0 1 0 1 1 0 1 1 1 1 0 1 +0 +0 0 0 1 0 1 1 1 1 1 1 1 1 +1 +1 1 0 0 0 0 1 0 1 0 0 1 0 +1 +1 1 1 0 1 0 0 0 0 1 0 1 1 +1 +1 1 1 0 0 0 0 0 1 1 0 0 1 +0 +0 0 0 1 1 1 1 1 1 0 1 0 1 +0 +0 1 1 1 0 1 1 1 0 0 0 0 0 +0 +0 1 0 1 1 0 0 1 0 1 1 1 1 +0 +1 1 0 0 1 1 1 0 0 0 1 0 0 +0 +0 1 1 0 1 1 1 1 0 1 1 1 0 +1 +0 0 1 0 0 0 0 0 1 1 1 1 1 +0 +1 1 0 0 0 0 0 0 0 0 0 0 1 +1 +1 1 0 1 0 0 0 0 1 0 1 1 0 +0 +0 0 0 0 1 0 1 1 1 0 0 1 0 +1 +0 0 0 0 1 0 1 0 1 0 0 0 0 +1 +0 0 1 0 0 0 0 1 1 0 0 0 1 +0 +0 1 0 0 1 0 0 0 0 1 0 1 0 +0 +1 1 1 0 0 0 1 0 1 0 0 0 0 +1 +1 0 0 1 0 1 0 0 1 0 0 0 0 +0 +0 1 1 0 0 1 1 0 1 0 0 0 0 +1 +0 1 0 1 1 0 0 0 0 0 0 0 0 +1 +0 1 1 1 1 0 0 1 0 0 0 0 1 +0 +0 1 1 0 1 0 1 1 0 1 0 1 1 +0 +1 1 0 1 1 0 0 0 0 0 1 1 0 +0 +0 1 0 1 1 1 0 0 1 1 1 0 1 +0 +1 0 0 1 1 0 1 1 0 1 0 1 1 +0 +0 1 0 0 1 0 0 1 1 1 1 0 1 +1 +1 1 1 1 1 0 0 0 0 1 1 0 0 +1 +1 0 1 0 0 1 1 1 0 1 1 0 0 +1 +0 0 0 1 1 1 0 1 0 0 1 0 0 +1 +0 0 0 0 0 1 0 0 0 0 0 0 1 +0 +1 0 1 0 1 1 0 1 1 1 1 1 0 +1 +0 0 0 1 1 1 1 0 1 0 0 0 1 +0 +0 0 1 0 1 0 0 1 1 0 1 0 0 +1 +0 0 0 1 0 1 0 0 0 1 0 1 0 +0 +0 1 0 0 0 1 0 0 0 1 0 0 1 +0 +0 1 1 1 0 0 0 1 1 0 0 1 1 +1 +1 0 0 1 0 1 1 1 1 0 0 1 0 +1 +1 0 0 0 1 1 1 0 1 1 0 0 1 +1 +0 0 1 1 0 0 1 0 1 1 0 1 1 +1 +0 0 0 0 1 1 1 0 0 0 1 1 1 +0 +1 0 0 1 0 1 0 1 0 0 0 1 1 +0 +1 0 1 1 1 1 1 1 0 0 1 0 1 +1 +1 1 0 0 1 1 0 0 1 1 1 0 0 +1 +0 0 0 1 0 0 0 0 0 0 1 0 1 +1 +0 0 0 0 0 0 1 0 0 1 1 1 1 +1 +0 0 1 1 0 1 1 0 0 0 1 0 1 +0 +1 0 1 1 0 1 1 0 1 0 1 0 0 +1 +0 1 0 1 1 0 0 1 1 1 0 0 0 +0 +0 1 1 1 0 1 0 1 0 0 1 0 0 +0 +1 0 1 0 0 0 1 0 1 0 1 0 0 +1 +1 1 1 1 0 0 0 1 1 0 0 1 1 +0 +0 1 0 0 1 1 0 0 0 0 1 0 0 +0 +0 1 1 0 0 0 1 1 0 0 1 1 1 +1 +1 1 0 1 0 1 1 1 0 1 1 0 1 +1 +0 1 1 0 1 1 0 1 1 1 1 0 0 +0 +1 1 0 0 0 0 0 0 0 0 0 1 1 +0 +1 0 0 0 0 0 0 0 1 1 1 0 0 +0 +0 0 0 1 0 0 0 1 1 1 0 1 1 +0 +0 0 1 0 0 1 1 0 1 1 0 0 1 +0 +0 0 1 0 1 0 1 0 1 0 0 0 1 +1 +0 0 0 0 1 1 1 0 1 1 0 1 0 +0 +1 0 0 0 1 1 1 1 0 0 1 1 0 +1 +1 0 1 1 1 0 1 0 1 0 1 0 1 +0 +1 1 0 0 0 1 1 1 1 1 0 0 0 +1 +1 0 1 1 0 1 1 0 1 0 0 0 1 +1 +0 0 1 1 1 1 0 0 0 1 0 0 0 +1 +1 1 1 1 1 1 1 0 1 0 1 1 1 +1 +0 0 0 0 1 0 1 1 1 0 0 1 1 +0 +0 1 1 0 1 0 1 0 1 0 0 1 1 +1 +1 0 0 1 1 0 1 0 1 1 1 0 0 +1 +1 0 1 1 1 0 1 0 1 1 1 0 0 +0 +1 1 1 1 1 0 1 0 1 1 1 1 0 +0 +0 1 0 0 0 1 1 0 1 1 0 0 1 +0 +1 1 1 1 0 1 1 0 0 0 0 1 1 +0 +0 0 1 1 0 0 1 1 1 0 0 0 1 +0 +0 0 0 1 1 1 1 1 0 1 1 1 0 +0 +1 0 0 0 0 1 0 0 0 0 1 1 1 +1 +0 0 0 0 0 0 1 0 1 0 0 1 0 +1 +0 0 1 0 1 0 0 0 0 0 1 1 0 +0 +0 0 1 0 0 0 1 0 0 0 0 1 1 +0 +1 1 0 1 1 0 0 1 1 1 1 1 1 +0 +1 1 0 0 0 1 1 1 0 1 0 0 0 +0 +0 1 1 0 1 0 0 0 0 1 0 1 1 +0 +1 0 0 0 0 1 1 1 1 0 1 0 0 +0 +1 1 1 0 0 0 1 1 0 0 1 0 0 +0 +0 0 0 0 1 0 1 1 0 1 1 1 1 +1 +1 0 1 0 1 0 1 1 0 0 1 0 0 +0 +1 0 1 0 0 1 0 1 0 0 1 0 0 +1 +1 1 0 1 1 0 1 1 1 0 1 0 0 +0 +1 1 1 1 1 1 1 0 0 0 0 0 0 +1 +0 1 0 0 0 0 1 1 0 1 1 1 1 +1 +0 1 0 0 1 1 0 0 1 1 1 0 1 +1 +0 0 0 0 0 0 0 1 0 0 1 1 1 +0 +1 1 1 1 0 1 1 0 1 0 1 1 1 +0 +1 0 1 0 1 1 0 0 0 1 0 0 0 +1 +0 0 1 0 1 0 1 0 1 0 0 1 0 +1 +1 0 1 1 0 1 1 1 0 0 0 0 1 +1 +1 1 0 0 1 0 0 0 0 1 0 0 1 +1 +0 0 1 0 1 1 1 1 1 0 1 0 1 +0 +0 1 0 0 1 0 0 1 1 1 1 1 0 +1 +0 0 1 1 0 0 0 0 1 0 1 0 0 +0 +1 0 0 1 0 1 1 0 0 1 1 0 0 +0 +0 0 0 0 0 0 1 1 1 1 0 1 0 +1 +1 0 0 0 0 0 1 0 1 1 1 0 1 +0 +1 0 1 1 1 1 0 1 0 1 1 1 0 +1 +0 1 0 0 0 0 1 0 0 1 0 1 1 +1 +1 1 1 0 1 1 1 1 0 0 1 1 1 +0 +1 0 0 1 1 1 1 1 0 0 1 1 1 +1 +1 1 1 0 1 1 1 0 1 1 0 1 1 +0 +0 0 1 0 0 0 0 0 0 0 1 0 0 +0 +0 0 0 0 1 1 1 0 1 1 1 0 0 +0 +1 0 0 0 0 1 1 0 0 1 1 0 1 +0 +0 1 0 1 1 1 1 1 1 1 1 1 1 +1 +0 1 0 1 1 0 0 1 1 1 1 1 1 +1 +0 1 1 0 0 1 1 0 0 1 1 0 1 +1 +1 0 1 0 1 1 1 1 0 1 0 0 1 +0 +1 0 0 0 0 0 0 1 0 0 0 0 1 +1 +1 0 1 0 0 1 1 0 0 1 1 1 0 +1 +0 1 0 1 1 0 1 0 1 1 1 0 0 +1 +1 1 1 1 0 0 0 0 1 0 0 1 1 +1 +0 1 1 0 1 0 1 1 1 1 1 0 0 +0 +1 1 1 1 1 0 0 0 1 1 0 1 1 +1 +0 0 1 0 1 1 1 1 0 0 0 1 0 +0 +1 1 1 1 1 0 1 1 0 1 1 1 1 +1 +1 0 1 0 1 0 0 1 1 1 0 1 1 +0 +1 1 1 1 0 1 1 0 1 0 0 0 0 +1 +1 1 1 1 1 1 0 0 0 0 0 1 1 +0 +0 0 1 0 1 1 1 1 1 0 0 1 1 +0 +0 0 0 0 1 0 0 1 1 1 1 0 0 +1 +1 0 0 1 0 0 1 0 1 0 1 0 1 +0 +0 0 0 0 1 0 0 0 1 0 1 0 1 +0 +1 1 1 1 1 1 1 0 0 0 0 1 1 +1 +0 0 0 0 0 0 0 1 0 0 0 1 0 +0 +0 1 0 1 1 0 0 1 1 1 0 1 0 +1 +0 1 1 0 0 0 0 1 0 1 0 1 1 +0 +1 0 1 0 0 0 0 1 0 0 0 0 0 +1 +0 0 0 0 1 0 1 1 1 0 1 1 1 +1 +1 1 1 0 0 0 0 1 1 1 1 0 0 +1 +1 0 1 1 1 0 0 0 0 0 1 1 0 +0 +0 1 0 0 0 0 0 0 1 1 0 1 1 +1 +0 1 1 1 0 0 1 1 1 1 0 0 0 +1 +0 0 0 0 1 1 1 0 0 1 1 0 1 +0 +0 0 0 0 0 1 1 1 1 1 0 0 1 +0 +1 1 1 1 0 1 0 1 0 1 1 0 0 +0 +0 1 1 0 0 1 1 0 1 1 1 0 0 +1 +1 1 1 1 1 0 0 1 0 1 0 0 0 +1 +1 0 1 0 0 1 1 1 1 0 1 1 0 +0 +0 0 1 1 0 0 1 0 0 0 1 1 0 +1 +1 0 0 0 0 0 1 0 0 0 1 1 1 +1 +1 1 1 0 1 0 0 0 1 1 1 0 1 +0 +0 0 0 0 0 1 0 1 1 0 0 1 0 +0 +0 0 1 0 0 1 1 0 1 1 1 1 0 +1 +1 1 0 0 1 0 1 1 0 1 1 0 1 +0 +1 1 1 1 1 0 0 1 1 0 0 1 0 +0 +1 1 0 0 0 0 0 1 1 1 0 0 0 +1 +1 1 0 1 0 1 1 1 1 0 0 0 1 +0 +1 0 0 0 0 0 0 0 0 1 0 0 1 +1 +0 1 0 0 1 1 0 1 1 0 1 0 0 +0 +0 1 0 0 1 0 0 0 0 1 1 0 0 +0 +1 1 1 1 1 1 0 0 0 1 0 1 0 +0 +1 0 0 1 0 0 1 1 1 0 1 0 1 +1 +1 1 1 1 1 1 0 0 0 0 0 0 0 +0 +0 0 0 1 1 1 1 0 1 1 1 1 0 +0 +1 1 1 0 0 1 1 1 1 0 0 0 1 +0 +0 0 0 0 0 0 1 1 1 0 0 1 1 +1 +0 0 0 0 1 0 1 1 1 0 0 0 1 +1 +0 0 0 1 0 1 1 1 1 1 1 1 0 +0 +0 1 0 0 1 0 0 0 1 1 1 1 1 +1 +1 1 0 0 1 1 0 1 0 1 0 1 0 +1 +1 1 0 0 1 0 0 0 1 1 1 1 1 +0 +1 0 0 0 0 1 0 1 0 1 1 0 1 +0 +1 0 1 1 0 1 1 1 0 1 1 1 1 +0 +1 0 1 0 0 1 0 1 1 0 1 0 1 +1 +1 0 1 0 1 0 0 0 1 0 1 1 1 +1 +1 1 0 0 1 1 1 0 0 0 0 1 1 +1 +1 1 1 1 1 1 0 0 1 1 0 1 0 +1 +0 1 1 0 0 1 1 0 1 1 1 1 0 +0 +1 1 1 0 1 0 1 0 0 0 0 1 0 +0 +0 1 1 0 1 0 1 0 1 0 0 0 1 +0 +0 0 0 0 0 0 1 0 0 0 1 0 0 +0 +0 1 0 1 0 0 1 1 0 1 0 1 0 +0 +1 0 0 1 1 1 0 0 0 1 1 1 0 +1 +1 0 1 0 0 0 1 0 1 1 1 1 1 +0 +0 1 0 0 0 0 1 1 0 1 0 0 1 +1 +1 1 1 0 0 1 0 0 1 1 1 0 1 +0 +0 1 1 0 0 0 1 1 0 1 1 0 1 +1 +0 0 0 0 0 1 1 0 0 0 0 0 0 +0 +0 1 0 0 0 1 1 1 1 0 1 1 1 +0 +1 1 0 1 0 1 1 0 1 0 0 1 0 +1 +0 1 0 1 0 0 0 0 0 1 0 1 1 +1 +0 1 1 0 1 1 1 1 0 0 1 0 1 +0 +0 0 1 0 0 1 0 0 1 1 1 0 0 +1 +0 0 1 1 1 0 0 1 1 0 1 0 1 +1 +1 0 0 1 1 0 1 0 0 0 1 0 1 +0 +0 1 0 0 0 1 1 1 0 1 0 0 0 +1 +1 0 1 1 0 0 1 0 0 0 0 1 0 +1 +0 0 0 1 1 0 1 1 1 0 0 0 0 +1 +0 1 1 0 0 0 1 1 0 1 0 1 1 +1 +0 1 1 0 1 1 1 0 1 0 0 1 1 +0 +1 0 1 0 0 1 0 1 0 0 0 0 0 +0 +0 0 0 0 1 1 0 0 1 1 1 0 0 +1 +1 0 1 0 0 0 1 0 0 1 1 0 1 +0 +1 1 1 0 0 1 0 0 0 0 1 1 0 +0 +0 1 0 0 0 1 1 1 0 0 1 1 1 +1 +1 1 0 1 0 1 1 1 1 0 1 1 1 +0 +0 0 0 0 0 0 1 1 0 1 1 0 1 +1 +0 1 0 0 1 1 0 0 1 0 1 0 1 +0 +0 1 0 1 0 1 0 1 1 0 1 1 1 +0 +1 1 0 1 0 1 1 1 1 1 0 0 1 +1 +1 0 0 1 0 1 0 0 1 1 1 0 0 +0 +0 0 1 1 0 0 0 1 0 1 1 0 1 +0 +0 1 1 1 0 1 0 1 0 0 0 1 0 +0 +0 1 1 0 0 0 1 1 1 1 1 0 1 +0 +0 1 0 0 0 1 0 1 0 1 0 0 1 +1 +0 0 0 0 0 1 1 1 1 1 1 0 0 +0 +0 0 1 0 1 1 1 0 1 1 1 0 0 +1 +1 0 0 1 0 0 0 0 0 0 0 1 1 +0 +1 1 1 1 1 1 0 1 1 0 1 1 1 +1 +1 1 1 0 0 1 1 1 0 0 1 0 0 +1 +0 0 0 0 0 0 1 1 0 1 0 0 0 +1 +1 0 0 1 0 0 0 0 0 1 0 1 1 +1 +1 0 0 0 0 1 1 1 1 1 1 0 1 +0 +1 1 1 0 0 0 1 1 0 0 1 1 0 +1 +0 1 1 1 0 0 1 1 0 0 1 1 0 +1 +1 0 0 1 0 1 1 0 0 0 0 1 0 +1 +0 1 1 0 1 0 0 1 0 0 1 1 1 +1 +0 0 1 1 0 0 1 1 0 0 0 0 0 +0 +0 1 0 0 1 1 1 1 0 0 0 1 1 +1 +1 0 0 0 1 1 0 0 0 0 0 1 0 +0 +1 1 1 0 1 0 1 0 1 0 1 1 0 +0 +1 1 1 0 1 0 1 0 1 0 1 0 1 +0 +0 1 0 0 1 0 1 1 0 1 0 0 0 +1 +1 0 1 0 1 1 0 1 1 1 1 1 1 +0 +0 1 0 1 0 0 1 1 1 0 1 0 0 +0 +1 1 0 1 1 0 1 0 0 0 1 0 0 +0 +0 0 0 0 0 0 1 0 0 0 0 0 1 +0 +1 1 1 0 0 0 1 1 1 1 1 1 1 +0 +0 0 1 0 0 1 1 1 1 1 1 1 1 +1 +0 0 0 0 0 1 0 0 1 1 1 0 0 +0 +0 1 0 1 1 0 1 0 0 0 0 1 1 +0 +0 1 1 1 0 0 1 0 1 1 1 1 1 +1 +1 0 1 1 1 0 1 1 1 1 1 1 1 +1 +0 1 1 0 1 1 0 0 0 0 0 1 0 +1 +1 0 0 0 1 1 0 1 1 1 0 0 1 +1 +1 1 0 1 1 1 0 1 1 0 0 1 0 +0 +1 0 1 0 1 1 0 1 1 0 1 0 1 +0 +1 1 1 0 0 0 1 1 0 0 0 1 1 +1 +0 1 1 1 1 0 0 1 1 1 0 0 1 +0 +0 1 0 1 0 1 0 0 0 0 0 1 0 +0 +1 0 1 0 1 1 1 1 1 1 0 1 1 +0 +1 0 0 0 0 1 0 1 1 1 1 1 1 +0 +0 1 1 1 1 1 0 1 1 1 1 1 0 +0 +0 1 0 1 0 1 1 1 0 0 1 0 1 +1 +0 0 1 0 0 0 0 1 0 1 1 1 1 +0 +1 0 0 0 0 1 1 1 1 0 0 0 0 +1 +0 0 0 0 1 1 1 1 0 1 1 1 0 +1 +1 0 0 1 1 0 1 1 1 1 0 0 0 +1 +1 0 0 1 1 1 1 1 0 0 0 0 0 +0 +1 0 0 1 0 1 0 1 0 1 0 1 0 +0 +0 1 1 1 0 1 1 1 1 0 0 1 1 +1 +1 1 0 1 1 1 1 1 0 1 0 0 0 +0 +0 1 1 0 1 0 0 1 1 1 1 1 0 +0 +1 1 0 1 0 0 0 0 0 0 1 0 0 +0 +1 1 0 0 0 0 0 1 1 1 0 1 0 +0 +1 0 0 0 0 1 0 1 0 1 1 1 0 +0 +0 1 0 0 1 1 0 0 1 0 0 1 0 +1 +0 1 1 1 0 0 0 1 0 1 0 0 0 +1 +1 1 0 0 0 0 0 1 1 0 1 0 0 +1 +1 1 0 1 1 1 0 0 0 1 1 1 0 +0 +1 1 0 0 0 0 0 1 0 1 0 1 0 +1 +1 0 0 1 0 0 1 1 1 0 1 1 1 +0 +0 0 0 0 0 1 0 0 1 0 0 1 1 +0 +1 1 0 0 1 1 1 0 0 1 1 0 0 +1 +0 1 0 1 0 1 0 1 1 1 0 1 1 +0 +1 0 0 0 0 0 1 0 1 1 1 0 0 +1 +0 1 0 1 1 1 1 0 0 0 0 1 1 +1 +0 1 0 1 0 1 0 0 1 0 1 1 1 +1 +1 1 0 1 0 0 0 1 0 1 0 1 1 +1 +0 1 0 0 1 0 1 1 1 0 1 0 0 +0 +1 1 1 1 1 0 1 0 0 0 0 0 1 +1 +1 0 0 0 1 0 0 1 0 1 1 1 1 +1 +0 1 1 0 0 1 0 0 1 1 1 1 1 +0 +0 0 1 1 1 1 1 0 1 1 1 1 0 +1 +1 0 1 0 0 0 0 0 0 0 1 0 0 +1 +1 0 0 0 1 0 1 1 0 0 0 1 0 +1 +1 1 0 0 1 0 1 0 1 1 0 1 1 +0 +1 1 1 1 0 1 0 0 0 1 0 1 1 +0 +0 0 0 1 0 0 0 0 1 1 0 1 0 +0 +0 1 1 0 1 1 1 1 1 1 0 0 0 +0 +1 0 1 0 0 0 0 1 1 0 0 1 1 +0 +1 1 1 0 0 0 0 1 0 1 1 1 1 +0 +0 1 0 0 0 1 1 0 1 0 0 0 0 +0 +1 1 1 0 1 1 0 1 1 0 1 0 1 +1 +0 0 1 0 1 1 0 0 1 0 0 1 1 +0 +0 1 0 1 0 1 0 0 1 0 0 1 1 +0 +1 1 0 1 0 1 0 1 1 0 0 1 1 +0 +0 1 0 1 0 1 0 1 1 1 0 0 1 +1 +0 0 1 1 0 0 1 1 0 1 1 1 1 +0 +0 0 0 0 1 0 1 1 1 1 0 1 1 +1 +1 1 0 0 1 1 1 0 1 1 0 0 1 +0 +1 0 1 1 0 0 0 1 0 0 1 1 1 +1 +0 0 1 1 0 1 0 1 1 0 0 1 0 +0 +1 0 1 0 0 0 0 1 1 0 1 1 1 +1 +0 0 0 1 1 0 0 0 0 0 0 1 0 +1 +1 0 1 0 0 1 1 1 0 0 0 1 0 +0 +1 0 0 0 1 1 1 0 1 1 1 1 0 +0 +0 0 1 1 1 0 0 0 0 0 1 0 0 +0 +0 0 1 0 0 1 1 0 0 0 1 1 0 +1 +1 0 0 0 0 0 1 1 0 1 0 0 1 +1 +1 0 1 0 1 1 1 0 0 0 1 1 1 +0 +0 1 1 1 1 0 1 0 0 1 1 1 0 +0 +1 0 0 1 0 1 0 0 1 0 1 0 1 +0 +0 0 0 0 1 0 1 0 0 1 1 1 0 +1 +0 1 1 1 1 0 0 1 0 1 1 1 1 +1 +1 1 1 1 1 1 1 0 1 1 0 1 0 +0 +1 1 1 1 0 0 0 0 0 0 1 1 0 +0 +0 0 0 1 1 1 0 1 1 1 0 0 1 +1 +0 0 1 1 1 1 0 1 1 1 1 0 0 +0 +1 0 1 1 0 1 0 0 1 1 0 0 0 +0 +0 1 0 0 1 0 0 0 1 1 1 1 0 +0 +1 1 0 1 0 1 0 1 1 1 0 0 0 +1 +1 1 0 1 1 1 1 1 1 1 0 1 0 +0 +1 0 1 0 1 1 1 0 0 1 1 0 0 +1 +1 0 0 1 0 1 0 0 1 0 1 1 0 +0 +1 0 0 0 1 1 0 1 1 1 1 1 1 +1 +0 1 1 1 1 0 0 0 1 0 0 1 1 +1 +1 0 1 0 0 1 1 0 0 0 1 0 0 +1 +1 1 1 0 0 1 1 0 0 0 0 0 1 +0 +0 1 1 0 1 1 0 0 0 1 0 0 0 +1 +0 1 1 0 0 0 1 1 0 0 1 0 0 +1 +0 0 1 0 1 0 0 1 0 1 1 1 1 +1 +1 0 0 1 0 0 0 0 1 1 1 1 1 +1 +0 1 1 1 0 1 0 0 0 0 1 0 1 +0 +0 0 0 1 0 0 1 0 0 0 1 0 1 +0 +1 1 0 0 0 0 0 1 1 0 1 1 0 +0 +1 0 0 0 0 1 0 0 1 1 0 1 0 +1 +1 0 1 1 0 1 1 0 0 1 1 1 1 +1 +0 0 0 0 1 0 0 0 1 1 1 0 0 +0 +1 0 0 1 1 0 1 0 0 1 0 1 0 +0 +0 0 1 0 0 1 0 0 1 1 0 1 0 +1 +0 0 1 1 1 0 1 0 1 0 0 0 0 +1 +0 0 0 0 0 0 1 1 1 0 1 1 0 +1 +1 1 0 0 0 1 1 1 1 1 1 1 0 +1 +0 1 1 1 1 1 0 0 0 0 0 0 1 +0 +0 1 1 0 0 0 0 1 1 0 1 0 0 +1 +1 0 1 1 1 1 1 1 0 0 1 0 0 +0 +1 0 1 1 0 0 1 1 0 0 1 1 0 +1 +0 1 1 1 1 0 0 1 1 1 1 1 0 +1 +0 0 1 1 1 0 1 1 1 1 1 0 1 +1 +1 0 1 1 1 1 1 0 0 0 1 1 1 +1 +0 1 1 0 0 1 0 1 1 0 1 0 0 +0 +1 1 1 1 0 0 0 1 1 1 0 0 1 +0 +0 1 0 0 1 1 0 0 0 1 1 0 0 +1 +1 1 1 0 0 1 0 0 0 1 1 1 1 +0 +1 0 0 0 0 1 0 0 1 0 0 0 0 +1 +1 0 1 1 1 0 1 0 1 1 1 1 1 +0 +1 0 1 0 1 1 0 0 1 1 1 1 1 +1 +1 0 0 0 1 0 1 0 0 1 1 1 1 +1 +1 1 0 1 1 1 0 0 1 0 0 1 0 +1 +1 0 0 0 0 0 1 0 1 1 1 1 0 +0 +1 0 1 1 0 1 0 0 0 0 0 0 1 +1 +0 1 1 1 1 1 0 0 0 0 1 0 0 +0 +0 0 1 1 1 0 1 0 0 1 1 1 0 +1 +1 0 0 0 0 1 0 1 0 1 0 0 0 +0 +1 1 0 1 1 1 0 0 0 0 1 1 0 +1 +1 0 1 1 1 1 1 1 1 0 1 0 0 +1 +0 0 0 0 1 0 0 1 0 1 1 0 1 +1 +0 1 0 1 1 1 0 1 0 0 0 1 0 +0 +1 0 0 0 1 0 0 1 1 1 0 1 1 +1 +0 1 0 0 0 0 0 1 0 1 0 1 1 +1 +0 0 0 1 0 1 1 1 0 1 1 0 0 +0 +0 1 0 1 0 1 1 0 0 1 1 1 1 +0 +0 1 0 1 0 1 1 0 0 0 1 1 1 +1 +1 1 0 1 1 0 1 1 1 0 1 1 0 +1 +0 1 0 0 1 0 1 0 1 0 1 1 1 +1 +1 1 0 1 1 1 0 0 0 1 0 0 1 +1 +0 1 0 0 1 0 0 1 0 0 1 0 0 +0 +1 0 1 1 0 0 0 1 0 1 0 1 1 +1 +1 0 1 1 0 1 1 1 1 1 1 1 1 +1 +1 0 1 0 1 0 0 0 0 0 0 0 1 +0 +1 1 1 0 0 0 1 1 1 0 1 1 1 +1 +1 1 1 1 1 1 1 0 1 1 1 1 1 +0 +0 0 1 0 1 0 1 0 1 1 0 1 1 +1 +1 0 0 1 1 0 0 1 0 0 1 0 0 +1 +1 1 0 0 1 0 1 0 0 1 0 0 0 +1 +1 1 1 0 1 0 1 0 0 0 1 0 1 +1 +1 0 1 0 0 1 0 1 1 1 1 0 0 +1 +0 0 0 0 0 0 1 0 1 0 1 0 1 +0 +0 1 1 0 1 1 0 0 1 1 0 1 1 +0 +1 1 1 1 1 0 1 1 0 0 1 1 1 +0 +0 1 1 0 0 1 0 0 1 1 1 0 1 +1 +1 1 0 1 1 0 1 0 1 1 0 1 1 +1 +1 0 0 1 1 0 1 1 1 1 0 1 1 +1 +1 1 1 0 1 0 0 1 0 1 1 0 1 +0 +0 1 1 0 1 1 0 0 1 0 0 1 0 +0 +1 1 0 0 0 1 0 1 0 1 1 0 0 +0 +1 0 1 1 0 0 1 0 0 0 0 0 0 +0 +1 0 0 0 1 0 1 1 0 0 0 0 0 +0 +0 0 0 1 1 1 1 0 1 1 1 0 0 +1 +0 1 1 0 1 0 0 1 1 0 1 1 0 +1 +0 0 1 0 1 1 1 0 1 0 0 0 1 +0 +0 1 0 1 0 0 0 1 0 0 0 0 1 +0 +0 1 1 1 0 1 0 0 1 0 0 1 0 +0 +1 1 1 1 1 0 0 1 1 1 0 0 1 +1 +0 1 1 1 0 1 1 0 0 1 1 0 1 +0 +0 0 0 0 1 1 0 1 1 0 1 0 0 +1 +0 0 0 1 0 0 0 0 0 1 1 0 0 +1 +1 1 0 1 1 1 0 0 1 0 1 1 1 +1 +1 1 0 0 0 1 1 1 0 0 1 0 0 +0 +0 0 1 1 1 1 0 0 1 1 0 0 0 +0 +1 1 0 1 0 0 1 1 1 0 1 0 1 +0 +1 1 0 1 0 0 1 0 0 0 0 0 1 +1 +0 0 0 1 1 0 1 0 1 0 0 0 1 +1 +1 0 0 0 0 0 0 0 1 0 1 1 0 +0 +1 0 0 1 0 0 0 1 0 1 1 1 1 +1 +0 1 1 0 0 0 1 0 0 1 1 0 0 +1 +1 0 1 1 1 1 0 1 0 1 1 0 0 +0 +1 1 1 1 0 0 0 1 1 0 0 1 0 +1 +1 0 1 1 0 0 0 0 0 1 0 0 1 +1 +1 1 1 0 0 0 0 1 1 0 0 0 0 +1 +0 1 0 1 0 1 1 1 0 0 1 1 1 +0 +0 0 0 0 1 0 0 1 1 0 1 0 0 +0 +1 0 1 0 1 0 1 0 0 0 0 1 1 +0 +0 1 0 0 0 0 1 1 0 0 1 1 0 +1 +1 0 0 1 1 0 1 0 0 1 1 1 1 +0 +0 0 0 0 1 0 0 1 0 0 0 0 0 +0 +0 0 0 0 0 1 1 1 0 1 0 1 0 +1 +0 0 1 1 1 1 0 0 1 1 1 1 1 +1 +0 0 1 0 1 1 0 1 0 1 1 0 1 +1 +0 0 1 0 1 0 1 0 0 1 1 1 1 +1 +1 0 1 1 1 1 1 0 1 1 1 0 1 +0 +1 1 1 0 0 0 0 0 0 1 1 1 1 +1 +0 0 1 0 1 1 1 1 0 0 1 1 1 +0 +1 0 1 0 1 0 1 1 1 1 1 0 0 +0 +0 1 1 0 1 1 0 0 0 0 0 0 0 +0 +1 1 1 1 1 1 1 1 1 1 1 1 0 +0 +0 0 0 0 1 1 1 0 1 0 0 0 1 +1 +1 1 0 1 1 0 0 0 1 0 0 1 1 +1 +1 0 1 0 0 0 1 1 0 0 1 1 1 +1 +0 1 1 0 0 0 0 1 1 0 1 0 1 +0 +1 0 1 0 1 1 0 0 1 0 0 0 1 +0 +0 0 0 1 0 1 1 1 1 0 0 1 0 +0 +0 1 0 0 0 0 1 0 1 0 1 1 0 +1 +0 0 0 0 1 0 1 0 1 1 1 1 1 +1 +0 1 0 0 0 0 0 0 0 0 1 0 1 +1 +0 1 0 1 0 1 1 1 1 1 1 1 1 +0 +1 0 1 0 0 1 1 0 1 0 0 0 0 +1 +0 1 1 0 0 1 0 0 0 1 0 0 0 +0 +0 0 1 1 0 1 1 1 0 1 0 0 0 +0 +0 0 1 1 0 1 0 0 1 1 0 0 1 +0 +1 1 1 1 1 0 0 1 0 1 1 1 1 +0 +1 1 1 1 0 0 1 1 1 1 1 0 0 +1 +1 1 0 1 1 1 1 1 0 1 0 0 1 +1 +0 0 1 0 0 0 0 0 0 1 0 0 0 +0 +1 0 0 0 1 1 1 0 1 0 1 1 0 +1 +1 0 1 0 1 1 1 0 1 1 1 1 1 +0 +1 1 0 0 1 0 1 1 1 1 0 1 0 +0 +1 0 1 0 0 0 1 1 1 1 0 1 1 +0 +1 1 1 0 1 0 1 1 0 1 0 0 0 +1 +0 0 1 0 0 0 0 0 1 1 1 0 1 +1 +1 1 1 1 1 1 0 0 1 1 1 0 1 +0 +1 0 0 0 0 1 0 0 0 1 0 0 1 +0 +1 1 0 1 0 0 0 1 0 1 1 1 0 +1 +0 0 0 1 0 1 1 0 0 1 1 1 1 +1 +0 1 0 1 1 1 0 0 1 1 1 1 1 +1 +1 1 0 1 0 0 0 1 1 0 0 1 0 +0 +0 1 1 1 0 1 0 0 0 0 0 0 0 +0 +0 0 0 0 0 0 0 0 0 1 0 1 1 +1 +0 0 1 1 0 1 0 1 0 0 0 0 0 +0 +0 0 1 1 1 1 0 1 0 1 1 1 1 +1 +0 0 0 0 0 1 0 0 0 0 1 0 0 +0 +1 1 1 1 0 0 1 1 0 1 1 0 0 +0 +1 1 0 0 0 1 0 0 0 1 1 1 0 +0 +1 0 0 0 0 0 1 1 1 1 0 1 1 +1 +0 0 1 0 1 1 1 0 0 0 1 1 0 +0 +0 1 1 1 0 0 1 0 1 1 0 0 1 +1 +1 1 1 1 0 1 0 0 0 0 1 0 1 +1 +1 0 0 0 0 0 0 1 1 0 0 0 0 +1 +0 1 0 0 0 1 0 0 0 0 1 1 0 +0 +0 1 0 0 0 1 1 1 1 1 1 0 0 +1 +1 1 1 1 1 0 1 1 0 1 0 0 0 +0 +0 1 0 1 0 1 1 1 0 0 1 0 0 +0 +1 1 1 1 0 0 0 0 0 0 1 0 1 +0 +0 0 0 1 0 0 1 1 1 0 1 1 0 +0 +0 0 1 1 1 1 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 0 1 0 0 1 0 0 0 1 0 +1 +0 1 1 1 0 0 0 0 1 1 0 1 1 +1 +1 0 1 1 1 1 0 1 0 0 0 1 1 +0 +0 1 1 0 1 0 1 1 1 0 1 1 0 +0 +0 1 1 1 1 0 1 0 1 0 1 0 0 +1 +0 0 0 1 0 0 1 0 0 1 1 0 0 +0 +1 0 0 0 0 1 1 0 0 0 1 0 1 +1 +1 1 0 1 1 0 1 0 0 0 1 1 1 +0 +1 0 0 0 1 1 1 0 1 0 1 0 1 +1 +1 0 1 1 1 1 0 0 0 1 1 1 1 +1 +0 0 0 0 0 1 1 0 1 1 1 1 1 +1 +0 1 0 1 1 0 0 1 0 0 0 0 0 +0 +0 0 0 0 0 0 0 1 0 1 1 1 1 +1 +1 0 0 1 0 1 0 0 1 0 1 0 0 +1 +1 0 1 0 1 0 0 0 1 1 1 0 1 +1 +1 0 0 1 1 0 1 0 0 0 0 1 0 +1 +1 1 1 0 0 0 1 0 0 1 1 1 0 +1 +0 0 1 0 1 1 0 1 0 0 1 0 1 +0 +0 1 1 0 0 1 0 1 1 1 1 1 1 +1 +0 1 0 1 0 1 0 1 0 1 0 1 1 +1 +0 1 0 1 0 1 0 1 1 1 1 1 1 +1 +1 0 0 1 0 1 1 0 1 1 0 1 0 +1 +0 0 1 0 1 1 0 1 1 0 1 0 1 +1 +1 0 0 1 1 1 1 0 0 1 0 0 0 +0 +0 1 0 0 1 0 1 1 1 0 0 1 1 +1 +1 0 1 1 1 0 0 0 1 0 0 1 0 +0 +0 0 1 1 1 0 0 0 0 1 0 1 0 +1 +0 1 1 1 1 1 0 0 0 1 1 0 1 +0 +1 1 1 1 1 1 1 1 0 0 1 0 1 +0 +0 0 0 0 1 0 0 1 1 0 0 1 1 +1 +1 1 1 0 1 0 1 0 1 0 0 0 0 +0 +1 1 0 1 0 0 1 1 1 1 0 0 0 +1 +1 1 0 1 0 0 1 1 1 0 1 1 0 +0 +0 0 0 1 0 0 1 0 1 1 0 0 0 +0 +1 0 0 0 0 1 1 0 0 0 0 1 0 +0 +0 0 1 0 1 1 0 1 0 0 1 1 1 +1 +1 1 1 0 1 0 0 1 0 0 0 1 0 +0 +1 0 1 0 1 1 1 1 1 1 0 0 1 +1 +1 0 1 0 0 0 1 1 0 1 0 0 1 +0 +0 0 0 0 0 0 0 1 0 1 0 0 1 +1 +1 1 0 1 0 1 0 0 1 1 1 1 1 +1 +1 0 1 0 1 0 1 1 1 1 0 0 0 +1 +1 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 1 +0 +1 1 1 0 0 0 1 0 1 0 1 0 0 +0 +0 0 1 0 1 0 1 0 0 1 1 1 0 +0 +1 1 0 1 0 1 1 1 1 1 0 1 0 +1 +1 1 1 1 1 1 0 0 0 1 0 1 1 +1 +1 0 0 1 1 1 1 1 0 0 1 0 1 +0 +1 0 0 0 1 0 0 1 0 1 1 1 0 +0 +0 1 0 0 0 1 1 0 0 0 0 0 0 +1 +0 1 1 1 0 1 0 0 1 0 0 0 0 +1 +0 0 0 1 0 0 0 0 0 0 1 1 1 +0 +1 0 1 0 0 1 1 1 1 0 0 1 1 +0 +1 1 0 0 1 0 1 1 0 0 1 1 1 +0 +0 0 0 1 1 0 1 1 1 1 1 0 1 +0 +0 1 0 1 1 1 1 0 1 0 0 1 1 +0 +0 0 1 1 1 0 0 1 0 1 1 1 1 +0 +1 1 1 0 1 0 1 0 0 0 0 0 1 +0 +1 1 0 1 0 0 0 0 1 1 1 1 0 +1 +1 1 0 1 1 1 0 0 0 1 1 0 1 +0 +1 1 1 1 1 0 0 0 1 1 1 0 0 +0 +1 1 1 0 1 1 0 0 1 1 1 1 1 +0 +0 0 0 1 0 0 1 1 1 0 1 0 0 +1 +0 1 0 0 1 1 0 1 0 1 1 1 0 +1 +1 1 1 0 1 0 1 1 0 1 0 1 1 +1 +1 1 1 0 1 1 0 1 0 1 1 1 0 +1 +0 1 0 0 0 1 1 0 0 0 1 1 1 +0 +0 0 1 0 1 1 0 1 1 1 1 0 0 +1 +0 0 0 0 1 1 1 1 0 0 0 0 0 +0 +1 1 1 0 1 0 0 1 0 0 1 1 1 +0 +0 1 1 0 0 1 0 1 0 0 0 0 1 +1 +0 0 0 1 1 0 1 0 0 0 1 0 0 +0 +0 1 1 0 1 1 1 0 1 0 1 1 1 +1 +1 1 0 0 1 1 0 0 1 1 0 1 0 +1 +0 1 0 1 0 0 0 0 0 0 0 0 0 +0 +1 0 1 1 0 0 1 1 1 0 0 1 1 +0 +0 0 1 0 0 0 1 1 0 1 1 0 1 +0 +1 0 0 0 1 0 1 0 1 1 1 1 1 +0 +0 1 0 1 1 0 1 1 0 0 1 1 0 +1 +1 0 1 0 0 1 1 1 0 0 1 0 1 +1 +0 0 1 1 1 0 0 1 1 1 0 0 1 +1 +1 1 0 0 1 0 1 0 1 1 1 1 1 +1 +1 1 1 1 1 1 0 1 1 1 1 1 0 +1 +0 0 1 0 0 1 1 0 0 0 0 1 0 +0 +1 1 0 0 1 0 1 0 1 0 0 1 1 +1 +1 0 0 1 0 1 0 1 0 0 1 1 1 +1 +0 1 0 0 1 0 1 0 1 0 1 1 0 +0 +1 1 1 1 0 1 1 1 1 0 1 1 0 +0 +1 1 1 0 0 0 0 0 0 1 0 0 1 +1 +0 0 0 0 1 0 0 0 1 1 0 0 0 +1 +1 0 1 1 1 1 0 1 1 0 0 1 1 +1 +0 0 1 1 0 1 0 0 1 0 1 1 0 +0 +0 0 1 1 1 0 1 1 0 1 1 0 0 +1 +0 0 0 0 0 0 0 1 1 1 0 0 1 +0 +1 1 0 0 0 0 0 1 1 1 1 1 1 +0 +0 1 1 0 1 0 1 1 1 1 1 0 1 +1 +1 0 0 0 0 0 1 1 1 1 1 0 1 +1 +0 1 0 1 1 0 1 0 0 1 1 0 1 +1 +0 1 0 0 1 0 1 0 1 1 1 1 1 +0 +0 1 1 1 0 1 1 0 1 1 1 1 1 +0 +0 1 0 0 0 0 0 0 1 0 0 1 0 +1 +0 1 0 0 1 0 0 1 0 0 0 0 0 +1 +0 0 1 1 1 1 0 0 1 0 1 1 1 +0 +1 1 0 1 1 1 1 1 0 0 0 1 0 +0 +0 0 1 0 1 0 1 0 0 0 0 0 0 +1 +1 1 0 0 1 0 1 1 0 0 0 1 1 +1 +0 0 1 1 1 0 0 0 1 0 0 1 0 +1 +0 0 1 1 0 1 0 0 0 0 1 0 1 +1 +0 0 1 1 0 1 1 1 1 1 1 1 0 +1 +0 0 1 0 0 1 1 1 0 1 1 0 0 +0 +1 1 1 1 0 0 1 0 0 1 1 1 1 +1 +1 1 0 1 1 0 1 1 1 1 1 0 0 +1 +1 1 0 1 0 0 1 0 1 0 1 1 0 +1 +1 0 1 1 0 1 1 0 1 0 0 1 0 +1 +1 0 1 1 1 0 0 0 1 0 0 0 1 +0 +1 1 1 1 1 1 1 1 0 0 0 1 1 +0 +0 0 0 1 1 0 1 0 1 1 1 0 0 +0 +1 0 0 1 1 1 0 1 0 0 0 1 1 +1 +0 1 0 1 1 0 0 0 0 1 1 0 1 +0 +0 0 1 0 0 1 0 1 1 1 0 1 1 +1 +1 0 0 1 1 0 1 0 1 0 0 0 0 +1 +0 0 1 0 0 0 0 1 1 1 1 0 0 +1 +1 1 0 1 0 0 0 1 0 1 1 0 0 +0 +0 0 0 1 1 0 1 0 1 1 0 1 0 +0 +0 1 0 0 0 1 1 0 1 0 1 1 0 +0 +0 0 0 0 1 1 1 1 0 1 1 1 1 +0 +0 0 0 1 1 0 1 0 0 1 0 0 1 +1 +0 0 1 0 0 0 0 1 0 1 1 0 0 +0 +0 1 1 1 1 0 1 0 0 0 0 0 1 +0 +0 1 0 1 0 0 1 0 0 1 0 1 0 +1 +1 1 1 0 0 1 1 0 1 0 0 0 0 +0 +1 1 0 1 0 1 0 0 0 1 1 1 0 +1 +0 1 0 1 0 0 1 0 0 1 0 0 0 +0 +1 0 1 1 0 1 0 0 0 0 1 1 1 +1 +1 0 1 1 0 1 1 0 1 0 0 1 1 +0 +0 0 0 0 0 1 0 1 0 0 0 0 0 +0 +0 1 0 1 1 1 0 1 0 1 1 0 0 +1 +0 0 1 1 1 1 1 0 0 0 0 1 0 +0 +1 1 0 1 1 1 0 0 1 1 1 1 0 +1 +0 1 0 1 0 0 1 1 1 1 1 0 0 +1 +1 1 0 1 1 1 1 1 0 0 1 0 0 +0 +1 1 0 0 1 1 1 0 0 1 0 1 1 +0 +1 1 1 1 1 0 0 0 0 0 1 1 1 +0 +0 0 0 0 0 1 0 1 0 0 0 1 1 +0 +0 0 1 1 1 1 1 1 1 0 0 1 0 +0 +1 1 1 0 0 1 1 1 1 0 1 0 1 +1 +0 0 1 1 0 1 1 0 1 1 1 1 1 +1 +1 0 1 0 0 1 1 1 1 1 1 1 1 +0 +1 0 1 1 1 0 0 0 0 0 0 0 0 +0 +0 1 1 1 1 1 1 0 0 0 1 0 1 +0 +0 1 1 1 0 0 1 0 1 1 1 0 0 +1 +1 0 1 1 1 1 1 0 1 0 0 0 1 +0 +0 1 0 0 0 1 0 1 0 1 1 0 0 +1 +1 0 1 0 1 1 0 0 1 1 0 1 1 +0 +0 0 1 0 0 1 0 1 1 0 1 1 0 +0 +1 0 1 0 0 0 0 0 1 1 0 0 0 +0 +0 0 1 1 0 1 0 0 1 1 1 1 1 +0 +0 1 0 1 0 0 0 1 1 1 1 0 0 +0 +0 1 1 0 1 0 1 1 1 1 0 1 1 +1 +1 1 1 1 1 1 1 1 1 0 0 1 1 +1 +0 0 0 1 1 1 0 1 1 0 0 1 0 +0 +0 0 1 0 1 0 0 0 1 0 0 0 1 +0 +0 0 1 1 0 0 1 0 1 1 0 0 1 +0 +0 1 1 1 1 1 0 1 0 1 1 1 0 +1 +1 0 1 1 1 1 1 1 1 1 1 1 1 +0 +0 0 1 1 0 1 0 0 1 0 0 1 0 +1 +0 0 1 1 1 1 1 0 1 0 1 0 1 +0 +0 0 1 1 0 1 0 1 0 0 1 1 1 +1 +0 0 0 0 0 1 0 1 1 0 0 0 0 +1 +0 1 0 1 1 0 1 1 1 0 0 0 1 +1 +0 0 1 0 1 0 0 1 1 1 0 0 0 +1 +1 0 1 1 1 0 1 0 0 0 1 0 0 +0 +1 1 0 0 1 0 1 1 0 0 0 0 0 +1 +1 0 0 1 0 0 1 1 0 0 0 1 1 +0 +0 0 1 0 1 0 1 1 0 1 1 0 0 +0 +0 1 0 1 1 1 0 1 1 0 0 1 1 +0 +0 1 1 1 0 0 1 1 0 0 1 0 0 +0 +1 0 0 0 1 0 0 1 0 1 0 0 1 +1 +0 1 0 0 1 1 1 1 0 1 1 0 1 +0 +0 0 0 0 0 1 0 0 1 1 1 0 1 +1 +0 1 0 1 1 0 0 1 0 0 1 0 0 +1 +0 1 1 1 1 1 1 1 0 0 1 1 1 +0 +1 0 0 0 1 0 0 0 1 1 0 1 0 +1 +0 0 1 1 1 1 1 0 1 1 0 0 1 +0 +1 0 1 1 0 1 1 0 0 0 0 1 1 +1 +1 0 0 1 1 1 1 1 1 0 0 1 1 +1 +0 1 0 1 0 1 0 1 1 0 1 1 0 +1 +0 1 0 0 1 0 0 1 0 1 0 0 1 +1 +1 1 0 1 0 0 1 0 1 0 0 1 1 +1 +0 1 1 0 1 1 1 0 1 0 0 0 0 +0 +0 1 0 0 0 1 1 0 1 1 1 0 0 +0 +0 1 0 0 1 0 1 1 0 1 1 1 1 +0 +0 0 1 0 1 1 0 1 0 0 0 1 1 +0 +0 1 1 0 0 1 0 0 1 0 0 1 1 +0 +1 0 0 1 1 1 0 1 1 0 1 1 1 +1 +1 1 1 1 0 0 0 1 1 1 1 1 0 +1 +1 0 1 0 0 1 1 0 1 1 1 1 1 +1 +1 0 0 1 1 1 0 1 0 0 1 1 1 +0 +0 1 0 0 1 1 1 0 0 0 1 1 0 +0 +1 0 1 0 0 1 0 0 1 0 0 1 0 +1 +0 1 1 1 0 0 0 0 0 1 0 0 0 +0 +0 0 1 0 0 0 0 1 0 1 1 1 0 +1 +0 0 1 1 1 1 0 0 0 0 0 1 1 +0 +1 1 0 1 0 1 1 0 1 0 1 0 0 +1 +0 1 1 0 1 1 0 0 0 0 1 1 1 +1 +1 1 0 0 0 1 1 0 1 0 0 1 0 +0 +0 0 1 0 1 1 0 1 1 1 0 1 1 +0 +0 1 1 0 1 1 0 1 0 0 0 0 0 +1 +1 1 1 1 1 1 1 0 1 0 0 0 1 +1 +0 1 1 1 1 1 1 1 1 0 0 1 0 +1 +1 1 0 1 1 0 1 1 0 1 1 0 0 +0 +0 0 0 1 1 1 1 0 0 0 1 0 0 +1 +0 1 0 1 0 1 1 1 1 1 1 1 0 +1 +0 1 1 0 0 0 1 1 0 0 0 1 1 +0 +1 0 1 0 0 0 0 0 0 0 0 1 0 +1 +0 1 0 0 0 0 0 0 1 0 1 0 0 +1 +0 0 0 0 0 1 1 0 0 1 0 0 0 +1 +0 1 1 0 0 1 0 0 1 0 1 0 0 +1 +0 0 1 0 0 0 1 1 0 0 1 0 0 +0 +0 0 0 1 1 1 1 1 0 0 1 1 1 +0 +1 1 1 1 0 0 1 1 0 1 0 1 1 +1 +0 0 1 1 0 0 0 1 0 0 1 0 1 +1 +0 0 1 0 0 0 1 1 1 1 0 0 0 +1 +1 1 1 0 1 0 0 1 1 0 0 1 1 +0 +1 0 1 1 0 1 1 0 0 0 0 1 0 +0 +1 0 0 0 0 1 0 1 1 1 1 1 0 +1 +0 1 0 0 1 0 1 1 1 0 0 0 1 +0 +1 1 1 0 0 0 0 0 1 0 0 1 0 +1 +0 0 1 1 1 1 1 1 1 0 0 0 1 +0 +1 0 0 0 1 1 0 0 1 0 0 0 1 +1 +1 0 0 1 1 1 1 1 0 0 1 1 0 +0 +1 0 0 0 0 1 1 0 1 1 1 1 1 +0 +1 1 0 0 0 0 1 0 0 1 0 1 1 +0 +0 0 1 0 0 1 1 1 0 1 0 1 0 +0 +1 1 1 1 0 0 0 1 1 1 1 1 1 +0 +0 1 0 1 1 0 0 0 1 0 0 0 1 +1 +1 1 1 0 1 0 1 0 0 1 1 1 0 +0 +0 1 0 0 1 0 1 1 0 0 0 1 1 +0 +1 0 1 0 0 0 1 1 0 0 1 1 0 +0 +1 1 0 0 1 1 1 0 0 1 0 0 1 +1 +1 0 1 0 1 0 0 0 1 1 1 1 1 +0 +1 1 0 0 1 0 1 0 1 1 1 0 1 +0 +1 0 1 1 0 0 0 0 0 1 1 1 0 +0 +1 1 1 0 0 0 0 1 0 1 0 0 1 +0 +0 0 1 0 1 0 1 0 1 1 1 1 0 +1 +0 0 0 0 0 1 1 0 1 0 1 0 0 +0 +1 1 0 1 0 0 0 0 0 1 0 0 0 +0 +1 0 0 1 0 1 0 1 0 0 1 0 1 +0 +1 0 0 1 0 0 0 0 0 1 1 0 1 +1 +0 0 1 1 1 1 1 1 0 1 1 0 0 +0 +0 1 0 0 0 1 0 1 1 1 1 1 1 +0 +1 1 0 0 1 0 0 0 0 0 0 1 1 +1 +1 1 1 0 0 0 0 0 1 0 1 0 1 +0 +1 0 0 0 0 0 1 1 0 1 1 1 0 +0 +1 0 0 1 1 0 0 1 0 0 1 1 0 +0 +1 0 1 0 1 0 0 0 0 1 0 0 0 +0 +0 1 0 1 0 0 1 0 0 1 1 1 1 +1 +0 1 1 1 1 0 0 0 1 1 1 0 1 +0 +1 1 0 1 0 0 1 0 0 1 1 0 0 +0 +0 1 1 0 0 1 1 1 0 1 0 1 0 +1 +0 0 1 0 0 0 1 0 0 0 0 0 1 +1 +0 1 1 1 0 1 1 0 1 1 1 0 1 +1 +0 0 1 1 1 1 1 0 1 0 1 1 0 +0 +0 1 0 1 1 1 1 0 0 1 0 0 0 +0 +0 0 0 0 0 1 1 0 1 1 0 0 1 +1 +1 1 0 0 1 0 0 0 1 1 0 1 1 +1 +1 1 1 0 1 0 1 1 1 0 1 0 0 +0 +1 1 0 0 0 0 0 1 0 0 1 0 0 +0 +1 0 1 0 1 0 1 0 0 1 1 0 1 +1 +1 1 1 0 1 1 0 1 0 0 0 0 1 +1 +1 0 1 1 0 0 1 1 0 0 0 1 0 +0 +1 0 0 1 0 0 0 1 1 0 0 1 0 +1 +1 0 0 1 0 1 1 1 1 1 0 0 1 +0 +0 0 0 1 0 0 0 0 0 1 0 1 0 +1 +1 1 1 1 0 1 1 1 1 0 1 0 1 +0 +1 1 1 1 0 0 1 0 0 0 0 1 1 +1 +1 1 1 0 0 0 0 1 1 1 1 1 1 +1 +1 1 0 1 1 0 1 0 0 0 0 0 1 +0 +0 1 0 0 1 0 0 1 0 1 0 1 1 +0 +0 1 1 1 1 1 0 1 0 1 0 1 0 +0 +1 1 1 1 0 1 1 0 1 1 1 0 0 +1 +0 1 0 0 1 1 1 0 1 0 1 0 1 +1 +1 1 0 1 1 0 1 1 1 0 1 1 1 +0 +1 1 1 0 0 0 1 1 1 1 1 0 1 +1 +1 0 1 0 1 1 0 0 1 0 0 0 0 +1 +1 0 0 0 0 0 1 0 1 0 1 1 0 +1 +1 0 0 1 0 1 0 1 1 1 1 1 1 +1 +1 0 1 0 0 0 1 0 0 0 0 0 1 +0 +1 0 1 0 1 0 0 1 1 1 0 0 1 +1 +1 0 0 0 0 1 1 0 0 0 0 0 0 +1 +1 0 0 0 1 0 1 0 0 0 0 0 1 +0 +0 1 0 1 0 1 0 0 1 1 1 0 0 +0 +0 0 1 1 1 0 0 0 1 0 1 0 0 +1 +0 1 0 0 1 0 1 0 1 0 0 0 0 +0 +1 1 0 1 1 1 1 0 1 1 1 1 0 +0 +1 0 1 0 1 0 0 1 1 0 0 1 1 +1 +0 0 0 0 0 1 1 0 0 0 1 1 1 +1 +1 1 1 1 0 0 0 0 0 0 0 1 0 +1 +0 0 1 1 1 0 0 1 1 0 0 1 0 +0 +0 0 1 0 0 1 0 1 0 1 1 0 1 +0 +0 1 0 0 1 1 1 1 0 0 1 1 1 +0 +0 0 1 1 1 0 1 0 1 1 1 1 1 +1 +0 0 0 0 0 1 1 1 0 0 0 0 1 +0 +1 0 0 1 0 1 0 0 1 1 0 1 0 +0 +0 0 1 1 0 1 1 1 1 0 0 1 0 +1 +1 0 1 0 1 0 0 1 1 0 1 1 0 +1 +1 1 0 0 1 1 1 0 0 0 1 1 0 +1 +0 1 1 1 1 1 0 0 0 0 1 1 1 +0 +0 0 1 0 0 1 0 0 0 0 0 0 1 +1 +0 0 1 1 1 1 0 0 1 1 1 1 0 +0 +1 0 1 0 0 1 0 0 1 1 0 1 1 +1 +1 0 1 1 1 1 1 0 1 1 0 0 0 +0 +1 0 1 1 1 1 0 1 0 0 1 0 1 +0 +0 1 0 0 0 1 0 1 0 1 1 1 0 +0 +0 0 0 0 0 1 0 0 1 0 1 1 0 +0 +1 0 1 1 0 1 0 0 0 0 0 1 1 +0 +1 1 0 1 1 0 1 0 1 0 0 0 0 +0 +1 0 0 0 1 1 1 0 1 0 1 0 0 +0 +1 1 1 1 1 0 0 0 0 1 0 1 0 +1 +1 1 0 0 1 1 1 0 1 1 0 0 0 +1 +0 1 0 1 0 0 1 1 1 0 0 0 1 +0 +0 0 1 0 0 1 1 0 1 0 0 1 0 +1 +1 0 0 1 0 0 1 1 0 1 1 1 1 +0 +1 0 1 1 1 1 0 0 0 0 1 1 1 +0 +0 0 0 0 0 1 0 1 0 1 0 1 1 +1 +1 1 0 0 0 1 0 0 0 1 0 1 0 +1 +0 0 0 1 1 0 1 1 1 1 0 1 0 +1 +1 1 0 1 1 0 1 0 0 1 1 1 0 +0 +1 1 0 0 1 1 0 1 1 1 0 0 1 +0 +0 1 1 0 0 0 0 0 0 0 0 0 0 +0 +0 0 1 1 0 0 1 1 1 1 1 0 1 +0 +1 1 0 1 1 1 0 1 0 1 0 1 0 +0 +1 0 1 0 1 1 0 0 1 1 0 0 0 +0 +1 1 0 1 0 1 0 0 0 0 1 1 1 +1 +0 1 1 0 0 1 0 0 1 0 1 0 1 +0 +0 0 0 1 1 0 1 1 0 1 1 0 1 +1 +1 0 1 0 0 1 0 1 0 1 1 0 1 +1 +1 0 0 1 0 0 0 0 1 0 0 1 0 +0 +1 0 0 0 1 0 0 1 1 1 1 0 0 +0 +0 1 1 0 0 0 0 0 1 0 0 1 0 +0 +1 1 1 1 0 1 1 1 1 0 1 0 0 +1 +1 1 0 0 1 1 1 1 1 0 1 0 0 +0 +1 0 1 0 0 1 0 1 0 1 0 1 1 +1 +0 0 1 1 0 1 0 1 0 0 1 0 1 +0 +0 1 1 0 0 1 1 1 0 0 1 0 0 +0 +1 1 1 1 0 1 0 1 0 0 1 0 1 +0 +1 1 0 0 1 1 0 1 0 1 1 1 1 +1 +1 1 1 1 0 0 0 0 0 1 1 1 1 +0 +1 1 1 0 1 0 0 0 0 0 1 1 0 +0 +1 1 1 0 0 0 1 0 1 0 0 0 1 +0 +1 1 0 1 1 0 1 1 0 1 0 0 0 +1 +0 1 1 0 0 0 0 1 0 1 1 1 0 +0 +1 1 0 0 1 1 0 1 1 0 0 0 0 +0 +0 0 1 1 1 0 0 0 1 1 1 1 0 +1 +1 1 0 1 0 1 1 0 0 0 1 0 1 +1 +0 0 1 0 0 1 1 1 0 1 1 1 1 +0 +1 0 1 0 0 1 0 1 1 1 0 0 1 +1 +1 0 1 0 0 0 0 1 1 1 0 0 1 +0 +0 0 1 0 0 1 0 1 1 1 1 1 0 +1 +0 0 1 0 0 0 1 0 1 0 1 0 0 +0 +1 1 0 1 1 0 0 1 1 0 1 1 1 +1 +1 0 0 0 0 0 0 0 1 1 1 1 1 +0 +1 0 1 0 0 0 0 1 1 1 1 1 1 +0 +0 0 1 1 0 0 1 0 0 0 0 0 1 +0 +1 0 1 1 0 1 0 0 1 0 0 1 0 +0 +1 1 1 0 1 1 1 1 1 0 1 1 0 +0 +1 1 1 0 1 1 1 0 1 0 0 0 1 +0 +1 1 0 0 0 1 0 0 0 0 0 1 0 +0 +1 0 1 1 1 1 1 0 1 0 1 0 0 +0 +0 0 0 1 1 1 0 1 0 1 0 1 1 +1 +0 0 1 0 1 0 0 1 0 1 0 1 0 +1 +1 1 1 1 0 1 1 1 0 1 1 1 0 +0 +1 0 1 1 0 1 1 1 1 0 1 1 0 +1 +1 1 1 1 0 1 0 0 1 1 1 1 1 +0 +1 0 1 1 0 0 0 1 0 1 0 0 1 +0 +0 0 1 0 1 0 1 0 1 1 1 0 1 +1 +0 1 1 0 1 0 0 1 1 0 1 0 1 +1 +1 0 1 1 0 1 0 0 1 0 0 0 0 +1 +1 1 0 1 1 0 1 1 0 0 0 0 1 +1 +0 1 0 1 1 1 0 0 1 0 0 1 1 +1 +1 0 1 0 1 0 0 0 1 1 0 0 1 +0 +1 1 0 1 1 0 0 0 1 0 0 0 1 +0 +1 0 1 1 0 1 0 1 1 0 1 1 0 +0 +0 1 1 1 1 1 1 0 1 1 0 0 1 +1 +1 0 0 0 0 1 1 0 0 0 1 1 1 +0 +0 1 1 0 1 0 0 0 0 1 1 0 0 +1 +1 0 0 0 1 1 0 1 1 1 1 1 0 +0 +1 1 1 1 0 0 0 0 0 1 1 0 0 +0 +1 1 1 0 0 1 0 1 0 0 1 1 1 +0 +0 1 0 0 1 1 1 0 1 1 0 1 0 +1 +0 0 0 1 1 1 0 0 1 0 0 0 0 +0 +0 1 0 1 0 0 1 0 0 1 0 0 1 +1 +1 1 0 0 1 0 1 0 0 0 0 0 0 +0 +0 1 1 1 0 1 0 0 1 1 0 1 1 +0 +1 1 0 0 1 0 0 0 1 1 0 0 0 +1 +1 1 1 0 0 0 1 1 0 1 1 0 0 +1 +1 1 1 1 1 1 1 1 0 1 0 0 0 +1 +1 0 0 1 1 0 0 1 1 1 0 1 0 +1 +0 1 0 1 1 1 0 0 1 0 0 1 0 +0 +0 0 0 1 0 0 1 1 0 0 0 0 0 +1 +1 0 0 1 0 1 1 1 0 1 1 1 1 +1 +0 1 0 1 1 1 0 1 0 0 1 1 1 +0 +0 1 1 1 0 1 1 0 0 1 1 0 0 +1 +1 0 1 0 0 1 1 0 1 0 1 1 0 +1 +1 0 0 0 0 0 1 1 0 0 0 0 1 +0 +0 0 1 0 1 0 1 0 1 0 1 1 1 +1 +0 1 1 1 0 1 0 1 0 0 0 1 1 +1 +0 1 0 0 1 0 1 0 0 0 0 1 1 +1 +1 1 1 1 0 0 1 0 0 1 0 0 1 +1 +1 0 0 0 1 1 1 1 1 0 1 0 0 +1 +1 1 1 1 0 1 0 0 0 1 0 0 1 +1 +1 0 0 1 0 0 0 0 1 1 1 0 0 +1 +1 1 1 1 1 0 1 0 1 1 0 0 0 +0 +0 1 0 1 1 1 0 1 1 0 1 1 1 +1 +1 1 0 0 0 0 1 0 0 1 1 0 1 +0 +0 1 0 0 0 1 0 1 0 1 1 1 1 +1 +0 1 1 0 0 1 1 1 0 0 0 1 1 +1 +1 1 0 1 0 1 0 0 1 0 0 1 0 +0 +0 0 0 1 1 1 0 0 0 0 0 1 0 +0 +0 0 1 1 1 1 0 0 0 0 1 1 0 +0 +1 1 0 0 1 0 1 1 1 0 1 1 0 +0 +1 0 0 0 0 1 1 1 0 0 0 1 1 +0 +1 1 0 1 1 1 0 1 1 0 1 1 1 +0 +1 0 1 1 1 1 0 1 0 0 1 1 1 +1 +1 1 0 0 1 0 0 1 1 1 1 0 0 +1 +1 1 1 0 0 1 0 1 0 1 1 1 1 +1 +0 1 1 1 1 1 0 1 1 0 1 1 0 +1 +0 0 1 0 1 0 1 1 0 0 0 1 1 +0 +1 1 1 1 1 1 0 0 1 0 1 1 1 +0 +1 1 1 1 1 0 0 0 0 1 0 0 0 +0 +0 0 1 0 1 0 1 0 0 1 0 1 1 +0 +1 0 0 1 1 0 0 1 1 0 0 1 0 +0 +0 0 0 0 0 0 1 1 0 1 1 1 1 +0 +1 1 0 1 0 0 1 1 0 1 1 1 1 +1 +0 1 0 1 1 0 1 1 0 0 1 1 1 +0 +0 1 1 1 1 0 1 0 0 0 0 0 0 +1 +1 1 0 1 1 1 1 0 1 1 0 1 1 +0 +1 0 1 0 0 1 1 1 0 0 0 0 1 +0 +0 1 0 0 1 0 0 1 1 1 0 0 1 +0 +0 1 1 0 1 0 1 0 0 1 0 0 0 +1 +0 1 0 1 1 1 1 1 0 0 0 1 0 +1 +1 0 0 1 1 0 1 1 1 0 1 0 0 +1 +1 0 1 0 0 0 0 1 1 0 0 0 1 +1 +0 0 0 1 1 1 0 0 0 1 1 1 1 +1 +0 0 1 1 0 1 0 0 0 0 1 1 0 +1 +0 0 0 1 0 0 1 1 1 1 0 1 0 +0 +0 0 1 0 0 1 0 1 0 0 0 1 1 +1 +0 1 1 0 1 1 0 1 1 1 0 0 1 +0 +0 1 0 1 0 0 0 0 1 0 1 0 0 +0 +0 1 1 1 1 1 1 1 0 0 0 0 0 +1 +1 0 0 0 1 0 0 0 0 1 0 1 0 +0 +1 1 1 0 1 1 0 0 1 1 0 1 1 +1 +1 0 0 1 1 1 1 0 1 0 0 0 0 +0 +1 1 1 1 1 0 1 0 0 1 1 1 1 +0 +1 1 1 0 1 1 1 1 0 1 0 1 0 +1 +1 0 0 1 0 0 0 1 0 0 1 1 0 +1 +0 0 0 1 1 0 0 1 1 0 1 1 0 +0 +1 0 1 0 1 1 0 0 0 1 1 0 0 +0 +1 0 1 1 1 1 0 0 0 1 1 1 0 +0 +0 0 0 1 0 1 0 0 1 0 1 1 1 +0 +0 0 1 1 1 1 0 1 1 0 1 1 0 +0 +1 0 1 1 0 0 0 0 1 1 0 1 0 +0 +0 0 1 0 1 0 0 1 0 0 1 0 1 +1 +1 1 1 1 0 0 0 0 1 0 1 1 1 +0 +1 0 1 1 1 0 0 0 1 0 0 0 0 +1 +1 1 1 0 1 1 1 1 1 0 1 1 1 +1 +1 1 1 0 0 1 1 0 1 0 0 1 0 +1 +0 0 1 0 0 0 0 1 0 1 0 1 0 +0 +0 0 1 1 1 1 1 1 1 0 0 1 1 +1 +0 1 1 0 1 1 1 1 1 0 0 1 0 +0 +1 1 0 0 1 0 1 0 1 0 1 1 0 +1 +1 1 0 0 1 1 0 1 0 1 0 0 0 +0 +1 1 0 1 1 1 0 0 1 1 0 1 1 +1 +1 0 0 0 1 0 0 1 1 1 1 1 0 +1 +0 0 1 1 0 0 1 0 1 1 0 1 0 +0 +1 0 1 0 0 0 1 0 1 0 1 1 1 +1 +0 0 0 1 0 1 1 1 1 0 1 1 0 +1 +0 0 1 1 0 1 1 0 1 0 0 0 0 +1 +1 0 0 0 1 1 0 1 0 1 1 0 1 +1 +0 1 1 0 0 1 0 1 0 1 0 1 0 +0 +0 0 0 1 0 0 0 1 0 0 1 0 1 +0 +1 1 1 1 0 1 1 0 1 1 1 0 1 +0 +0 1 1 1 1 1 1 0 1 0 1 1 0 +1 +0 0 0 1 1 1 1 1 0 0 0 0 0 +1 +0 1 1 0 1 0 0 1 1 0 0 0 0 +1 +1 1 0 0 1 1 1 0 0 0 0 0 0 +1 +0 0 1 1 0 0 0 1 1 1 0 1 0 +0 +1 1 1 1 1 1 1 1 0 0 1 0 0 +1 +0 0 1 0 0 1 0 0 0 1 0 1 1 +1 +0 0 0 0 0 1 0 1 0 1 1 1 0 +1 +1 1 1 0 0 1 1 0 0 1 1 1 1 +1 +1 0 1 1 1 1 1 1 0 1 1 1 0 +0 +1 0 0 1 0 1 1 1 0 1 0 1 1 +0 +1 1 0 0 1 0 1 1 0 1 0 0 1 +1 +0 0 1 0 1 1 1 1 1 0 1 1 0 +0 +1 1 1 0 0 0 1 1 1 1 0 1 1 +1 +0 0 0 1 1 1 1 0 1 0 1 0 0 +0 +0 0 1 1 1 0 0 0 0 1 1 0 0 +1 +1 1 1 0 1 0 0 1 1 1 0 0 1 +0 +1 1 0 1 1 1 0 0 1 1 1 0 0 +0 +0 1 1 0 1 1 0 1 0 1 0 0 0 +0 +1 0 0 0 1 1 1 1 1 1 1 0 0 +0 +0 1 1 0 0 0 0 1 0 1 0 0 0 +0 +0 1 0 0 1 1 0 0 1 0 0 0 0 +0 +1 0 0 1 1 1 0 1 0 0 1 0 0 +0 +1 1 0 1 1 1 1 0 0 0 1 0 0 +1 +1 1 1 1 0 1 1 1 0 0 0 0 1 +0 +0 1 0 0 1 0 1 0 1 1 0 1 0 +0 +0 1 0 1 0 0 0 0 1 1 1 0 0 +1 +0 0 0 0 1 0 0 0 0 1 0 1 0 +1 +1 1 0 0 0 1 1 1 0 1 1 0 0 +1 +1 1 1 0 1 0 0 1 1 0 1 1 0 +0 +1 1 1 0 0 0 0 1 0 1 1 0 0 +0 +0 1 0 1 0 1 1 1 0 1 1 1 0 +0 +1 0 0 1 0 0 1 1 0 1 1 1 0 +1 +1 1 0 1 0 0 1 0 0 1 1 1 0 +1 +0 1 1 0 0 0 0 1 0 0 0 0 0 +1 +1 1 0 1 1 1 1 0 1 0 1 1 0 +1 +0 0 0 0 1 1 0 1 1 0 0 1 0 +1 +0 0 1 0 1 0 1 1 0 1 1 1 1 +0 +0 0 0 0 1 1 0 1 1 1 0 0 1 +0 +0 0 0 1 0 0 1 1 0 1 0 1 1 +0 +1 1 1 0 1 0 1 1 0 0 0 0 0 +0 +1 0 0 1 0 0 1 0 1 1 0 1 0 +0 +0 1 0 1 1 0 1 0 1 0 1 0 1 +1 +0 0 1 0 1 1 1 1 1 0 1 0 0 +1 +0 1 1 0 0 0 1 0 1 1 0 1 1 +1 +0 1 0 0 1 0 1 0 0 1 0 0 1 +1 +0 0 0 1 0 1 0 1 0 1 1 0 0 +1 +1 1 0 1 1 1 1 1 1 0 1 1 1 +1 +1 1 1 1 0 0 0 1 1 0 1 1 1 +1 +1 1 1 1 0 1 1 1 0 1 0 1 0 +1 +1 1 0 0 0 0 1 0 0 0 0 0 1 +0 +0 0 0 0 0 0 1 1 0 1 0 1 0 +0 +1 0 0 0 0 1 0 1 0 0 1 1 0 +1 +0 1 1 1 0 0 0 1 0 0 0 1 0 +1 +0 1 1 0 1 1 0 0 0 0 1 1 0 +0 +1 0 1 0 0 1 1 0 1 1 0 1 1 +0 +0 0 0 0 1 1 1 0 0 0 1 1 0 +1 +0 1 1 0 0 1 1 1 1 0 0 1 0 +1 +1 0 1 0 1 1 1 0 1 1 1 1 0 +1 +0 1 1 0 1 0 0 0 1 0 0 0 1 +1 +0 1 0 1 1 0 0 0 1 1 0 1 1 +1 +0 1 0 1 0 1 1 0 1 0 1 1 1 +0 +0 0 0 1 1 1 1 0 1 1 1 0 1 +0 +0 0 0 0 1 1 1 1 1 1 0 1 1 +0 +0 0 1 0 1 1 0 0 1 0 0 0 0 +0 +1 0 0 0 1 0 1 1 1 1 1 1 1 +1 +1 0 1 1 0 1 1 1 0 1 1 0 0 +0 +1 1 1 1 0 0 0 0 1 1 0 0 0 +0 +1 1 1 1 0 0 0 0 0 0 0 0 1 +1 +1 0 0 1 0 0 1 0 0 0 1 1 0 +1 +0 1 0 0 0 0 0 1 0 1 1 1 1 +0 +0 1 1 1 0 1 1 0 0 0 0 1 1 +1 +0 0 1 1 1 0 1 1 0 1 0 0 1 +1 +0 1 0 0 1 1 0 1 1 1 1 1 1 +1 +0 0 0 0 1 1 0 0 0 1 1 0 1 +1 +0 0 0 1 0 0 1 1 1 0 1 1 1 +1 +1 1 1 1 1 0 0 0 0 1 0 0 1 +1 +1 1 1 0 0 1 1 0 0 1 0 0 1 +1 +1 0 1 0 0 1 0 1 1 1 0 1 0 +1 +1 0 1 0 0 0 1 1 1 1 0 0 0 +0 +1 0 1 0 0 1 1 0 1 1 0 1 0 +1 +1 0 1 1 0 0 1 1 0 1 0 0 0 +0 +0 1 1 1 0 1 0 0 0 1 1 0 1 +1 +0 0 1 0 0 1 1 1 1 1 0 0 1 +1 +1 1 1 0 0 0 1 1 0 1 0 0 1 +1 +0 1 1 1 1 1 0 1 0 0 0 1 0 +1 +0 0 0 1 1 1 1 1 1 0 1 1 0 +0 +0 0 0 0 1 0 1 1 0 1 1 0 1 +0 +1 0 1 0 1 1 0 0 1 1 0 0 1 +1 +1 0 1 1 1 1 1 1 0 0 1 1 0 +1 +0 0 0 1 1 0 0 0 1 0 0 1 1 +1 +1 0 0 0 1 0 1 0 0 0 0 1 1 +1 +0 0 1 1 0 0 0 1 0 0 1 1 0 +1 +0 1 0 0 1 1 1 0 0 1 0 1 1 +1 +1 1 1 1 1 0 0 1 1 1 0 0 0 +0 +0 0 1 0 1 0 0 1 1 1 1 1 0 +1 +0 1 1 0 1 0 1 0 0 0 1 1 1 +1 +1 1 0 0 0 1 0 0 0 1 0 1 1 +0 +0 1 0 0 1 1 1 0 1 0 0 1 0 +0 +0 0 0 1 0 1 1 1 1 1 1 0 1 +0 +1 1 1 0 1 1 1 0 1 1 1 1 0 +0 +1 0 1 1 0 1 1 1 1 1 0 0 0 +0 +0 1 0 1 1 1 0 1 1 1 0 1 1 +1 +1 1 1 0 1 0 1 1 1 0 1 1 1 +0 +0 0 1 1 1 0 0 1 1 0 1 0 0 +0 +0 1 0 1 0 1 0 1 1 1 0 0 0 +0 +0 0 1 0 1 1 1 1 0 1 0 0 1 +1 +1 1 1 0 1 0 1 1 0 1 0 1 0 +0 +0 1 0 0 0 1 1 1 1 1 0 1 0 +1 +1 0 1 1 0 0 1 0 0 0 1 1 1 +1 +1 0 0 1 1 1 0 0 0 0 0 1 0 +1 +0 0 0 1 0 1 1 1 0 1 0 1 0 +0 +1 1 0 1 0 1 1 0 0 1 1 1 1 +1 +0 0 1 1 0 1 0 1 1 0 0 1 1 +1 +1 0 1 0 0 1 1 1 0 1 1 1 1 +1 +0 0 0 0 1 0 1 1 1 1 1 0 1 +1 +0 0 0 1 0 0 1 0 1 1 0 1 0 +1 +0 0 0 1 1 0 1 0 1 1 1 1 0 +1 +0 1 0 1 1 0 0 1 0 1 0 1 0 +0 +0 1 0 0 1 1 1 1 1 1 1 1 0 +1 +0 1 1 0 0 1 1 0 0 0 0 0 0 +0 +1 0 0 0 0 1 0 1 1 1 0 1 0 +0 +0 1 0 1 0 1 1 1 1 0 1 1 1 +1 +1 1 1 0 0 1 0 1 1 1 1 0 0 +0 +0 0 0 1 0 0 1 1 0 1 1 0 0 +1 +1 0 0 0 0 1 1 1 0 1 1 0 0 +0 +1 1 1 1 0 1 0 1 0 1 0 0 0 +1 +1 0 0 1 1 1 0 1 0 1 1 1 1 +1 +1 0 1 0 1 0 0 0 0 1 1 0 1 +0 +0 0 1 0 1 1 0 0 1 0 1 1 0 +0 +1 1 1 1 0 1 1 1 0 0 1 0 0 +0 +1 0 1 1 1 0 0 0 1 0 0 1 1 +1 +1 1 0 0 1 1 0 0 1 0 1 1 1 +0 +1 0 1 1 0 1 0 1 0 1 1 1 0 +0 +0 1 0 0 1 0 1 1 1 1 0 1 1 +0 +0 0 1 1 1 0 0 1 0 0 1 1 0 +0 +1 0 0 0 1 1 0 0 0 1 1 0 1 +0 +0 1 0 1 0 1 0 0 0 1 0 1 1 +0 +0 0 1 1 0 1 0 1 0 1 0 0 0 +1 +0 0 1 1 0 0 1 0 1 1 0 0 0 +1 +1 0 1 1 1 1 1 1 0 0 0 0 1 +0 +1 1 1 1 1 0 0 1 1 0 0 1 1 +1 +1 0 0 1 1 0 0 1 0 0 1 1 1 +1 +0 1 1 0 0 1 1 1 0 1 1 0 1 +0 +0 1 1 1 0 0 1 1 0 1 0 1 0 +1 +1 0 0 1 1 1 0 0 0 0 0 0 0 +0 +0 1 1 0 0 0 1 1 0 1 0 0 0 +1 +1 1 1 0 0 1 1 0 1 0 0 1 1 +0 +0 0 0 0 0 0 0 0 1 0 0 1 1 +1 +1 0 1 0 1 1 1 0 1 0 1 1 1 +1 +1 0 1 1 0 0 0 1 1 0 0 0 0 +1 +0 0 1 1 0 0 1 1 1 1 0 0 1 +1 +0 1 1 1 1 0 1 1 1 0 0 1 1 +1 +1 0 1 0 0 0 1 1 1 0 1 0 0 +0 +0 0 0 0 1 1 1 0 1 1 1 1 1 +0 +0 1 1 0 1 0 0 1 1 0 0 1 0 +0 +0 0 0 0 1 1 0 0 0 1 0 0 0 +1 +0 1 0 0 1 1 0 1 0 0 0 1 0 +1 +1 1 0 1 1 0 1 1 0 0 0 1 1 +0 +1 1 0 0 1 0 0 0 0 1 1 0 1 +0 +1 1 1 1 0 1 0 0 1 1 0 0 0 +1 +0 1 0 1 1 0 1 0 1 1 0 1 0 +1 +0 0 0 1 1 1 1 0 0 1 1 1 0 +1 +0 1 1 1 1 0 1 1 0 1 0 1 0 +0 +1 1 0 1 1 1 0 1 0 0 1 1 1 +1 +1 0 0 0 0 1 0 1 0 0 0 0 1 +0 +0 0 0 1 1 0 0 0 0 1 1 1 0 +1 +1 1 1 1 1 1 1 1 0 0 1 1 0 +0 +1 1 1 0 1 0 0 0 0 1 0 0 0 +1 +1 0 0 1 0 0 1 1 0 1 0 1 0 +0 +0 0 1 0 1 0 1 0 1 1 0 1 0 +0 +0 0 1 0 1 1 0 0 1 1 0 0 0 +1 +0 0 1 1 1 0 0 1 1 0 0 1 1 +1 +1 0 1 0 0 1 1 1 0 0 1 0 0 +0 +0 1 0 0 1 1 1 0 1 1 1 1 1 +1 +0 1 1 1 1 1 0 0 0 1 0 0 1 +1 +1 1 1 1 0 1 1 1 1 1 0 1 0 +0 +1 0 0 0 1 1 1 1 0 0 1 1 1 +0 +1 1 1 0 0 0 0 1 1 0 1 1 1 +0 +1 1 1 0 0 1 0 1 1 0 0 0 1 +1 +0 1 1 0 0 0 1 1 1 1 1 1 1 +1 +1 1 1 0 1 0 0 1 0 0 1 0 0 +0 +0 1 0 1 1 1 0 0 0 0 1 0 0 +1 +1 0 1 1 1 1 1 0 0 1 0 1 1 +1 +1 0 0 0 1 0 0 0 1 1 0 1 1 +0 +0 0 1 0 1 1 1 0 1 0 0 0 0 +1 +0 1 1 0 0 0 0 0 1 1 1 1 0 +0 +1 1 1 1 0 0 1 0 1 1 1 0 1 +1 +1 0 1 0 1 0 0 1 0 1 0 1 1 +1 +0 0 1 0 0 0 0 0 1 0 1 0 1 +0 +0 0 1 0 1 1 1 1 0 0 0 0 1 +0 +1 1 0 1 0 0 1 0 0 0 0 1 0 +1 +1 0 0 0 0 0 0 0 0 1 1 0 1 +0 +0 1 1 1 0 1 0 1 0 1 1 1 1 +1 +0 0 1 0 0 1 0 1 1 1 0 0 1 +0 +1 0 0 0 1 0 1 1 1 1 0 1 1 +0 +1 0 0 0 0 0 0 1 1 0 0 0 1 +0 +1 1 1 1 1 1 1 0 0 0 0 1 0 +0 +0 0 1 1 1 1 0 1 1 1 1 1 1 +0 +0 0 1 1 1 0 1 1 0 1 1 1 1 +1 +0 1 0 1 1 0 1 1 1 1 0 1 1 +1 +0 0 0 1 1 0 0 1 1 0 1 0 0 +1 +0 0 1 0 0 1 1 0 1 0 0 0 0 +0 +1 1 1 1 0 1 0 0 0 1 1 1 0 +0 +1 1 1 1 0 0 1 0 1 1 1 0 0 +0 +0 0 1 0 1 0 0 0 0 1 0 0 1 +0 +1 0 0 0 1 1 1 0 0 1 0 1 1 +1 +1 1 0 0 1 1 1 1 0 0 1 1 0 +0 +1 0 0 0 0 1 1 1 0 1 1 1 0 +1 +1 1 1 1 0 0 1 0 0 0 1 1 0 +1 +0 1 1 1 0 1 0 0 0 0 1 0 0 +1 +0 1 0 0 0 0 1 0 0 1 0 1 0 +0 +1 1 0 1 0 0 0 0 0 1 0 1 0 +1 +0 0 0 0 1 0 1 0 0 0 1 1 1 +1 +0 1 0 1 0 1 1 1 0 1 1 1 1 +1 +0 0 0 0 1 0 1 0 0 1 1 1 1 +0 +0 0 1 1 0 0 1 0 0 1 0 0 0 +0 +0 0 1 0 1 1 0 1 0 1 1 1 0 +1 +0 0 1 1 0 0 0 1 1 1 1 0 0 +0 +1 0 0 0 0 1 0 1 1 1 0 0 1 +0 +1 1 0 0 0 0 1 1 0 1 1 1 1 +0 +1 0 0 0 1 0 1 1 0 0 1 0 0 +1 +1 0 1 1 1 0 1 0 0 1 1 1 0 +0 +1 0 0 0 1 1 0 0 0 0 1 1 1 +0 +1 0 0 1 1 0 1 1 1 0 0 1 1 +0 +0 0 0 1 0 0 0 1 1 1 0 1 0 +1 +0 1 0 1 0 0 0 1 1 1 1 1 1 +0 +1 0 1 1 1 1 0 0 0 0 1 0 1 +1 +1 0 0 0 0 0 0 0 1 1 1 1 0 +1 +1 0 0 1 1 0 0 1 1 0 1 1 0 +1 +0 0 1 0 1 0 1 1 1 1 1 1 1 +1 +0 0 1 1 0 1 1 1 1 0 1 1 1 +1 +1 1 1 0 1 0 1 1 0 1 1 0 0 +0 +1 0 1 1 0 1 0 0 0 1 1 1 0 +1 +0 0 0 1 1 1 1 0 0 0 0 0 0 +0 +1 1 1 0 0 0 0 0 1 0 0 0 0 +0 +0 0 0 0 0 0 0 0 1 1 0 0 1 +1 +0 1 1 1 0 0 1 0 0 0 1 0 1 +0 +1 0 1 1 1 0 0 0 1 1 1 0 0 +1 +0 0 1 0 0 1 1 0 1 1 0 1 0 +0 +0 0 0 0 1 1 0 1 0 0 1 0 0 +0 +1 1 0 0 0 1 0 0 0 0 0 0 0 +1 +0 1 1 1 0 0 0 1 1 0 0 0 1 +0 +0 0 0 0 0 0 1 0 0 1 1 0 0 +1 +0 0 0 0 1 0 0 0 0 1 1 1 0 +0 +1 0 0 0 0 1 1 0 0 1 0 1 1 +0 +0 1 1 1 1 1 0 0 1 0 0 0 0 +0 +1 0 1 0 0 0 0 1 1 0 0 1 0 +1 +1 0 1 1 0 1 1 1 1 0 1 1 1 +0 +1 0 1 0 0 1 1 0 1 0 1 0 1 +1 +1 0 1 1 0 0 1 1 0 0 0 0 1 +0 +0 1 1 1 0 0 1 0 0 1 1 1 1 +0 +1 0 0 1 1 0 0 0 0 1 0 1 0 +1 +0 0 1 1 0 1 0 0 1 0 1 0 1 +0 +1 1 1 1 1 0 0 0 0 1 0 1 1 +0 +0 0 0 0 1 0 0 1 0 0 0 1 1 +0 +1 0 1 1 1 1 0 0 1 0 1 0 0 +1 +0 0 1 0 0 1 1 0 0 1 1 1 1 +1 +0 1 0 1 0 1 0 0 1 0 1 1 0 +0 +1 1 1 1 0 0 1 0 1 0 1 1 1 +1 +1 1 0 0 1 0 0 0 0 1 1 1 1 +1 +1 1 1 1 0 1 1 1 1 1 0 1 1 +1 +0 1 0 1 1 1 0 1 0 0 0 0 0 +1 +1 1 0 1 0 1 1 0 0 1 0 1 1 +0 +0 0 1 1 0 1 1 0 1 0 1 1 1 +0 +0 1 0 0 0 1 0 1 0 0 0 1 1 +1 +0 1 1 1 1 0 0 0 1 0 1 0 0 +0 +0 1 0 1 0 1 0 0 1 1 1 1 0 +1 +1 1 0 1 0 1 1 0 0 0 0 0 1 +0 +1 0 0 1 1 0 0 0 0 0 1 1 1 +0 +0 0 1 0 0 0 0 1 1 0 1 0 1 +1 +0 0 0 0 1 0 0 0 0 1 0 1 1 +0 +0 1 1 0 0 0 1 1 1 0 1 1 0 +1 +1 0 0 1 1 1 0 0 1 1 0 0 1 +1 +0 0 1 1 1 0 0 0 1 1 1 0 1 +1 +1 0 1 0 1 1 1 0 0 0 1 1 0 +1 +0 0 0 0 1 1 1 0 1 1 1 0 1 +1 +1 1 0 1 0 0 0 1 0 0 0 0 0 +0 +0 1 0 1 1 0 0 0 1 0 1 1 1 +1 +1 0 1 0 1 0 0 0 0 1 0 1 1 +0 +1 0 0 0 0 1 1 1 0 0 1 0 1 +0 +1 0 1 0 0 0 1 0 1 0 1 0 1 +0 +0 1 1 0 1 1 0 1 1 0 0 0 0 +0 +1 0 1 0 1 1 1 0 0 1 1 1 1 +1 +0 1 1 1 1 0 0 0 1 0 1 0 1 +1 +0 0 1 0 0 0 1 0 1 0 0 0 0 +1 +0 1 0 0 1 1 1 1 1 1 1 0 0 +0 +1 1 1 1 1 0 0 0 0 1 1 1 0 +0 +0 1 0 0 1 1 0 1 1 0 0 1 1 +1 +1 0 0 0 0 1 0 0 1 1 1 0 0 +1 +1 1 1 1 0 0 1 0 1 1 0 0 1 +0 +1 1 1 1 0 1 0 1 1 0 1 0 0 +0 +0 1 1 0 0 1 1 1 1 1 1 1 0 +1 +1 0 1 1 0 1 1 0 1 1 1 1 1 +0 +0 0 1 1 1 1 1 0 0 1 1 0 1 +0 +1 1 1 0 1 1 1 0 0 1 0 0 1 +0 +1 0 0 0 1 1 0 0 1 0 0 0 0 +0 +1 1 0 0 0 1 1 1 1 1 1 0 0 +0 +1 1 1 1 1 1 0 0 0 1 0 0 1 +0 +0 1 1 1 0 1 1 1 1 0 1 1 1 +0 +1 1 1 1 1 1 0 1 1 1 1 1 1 +0 +0 1 1 1 1 0 1 0 0 0 1 1 1 +0 +1 0 0 1 0 0 0 0 0 0 1 1 0 +0 +1 1 0 0 1 1 1 1 0 1 0 0 0 +1 +0 0 0 0 0 0 1 0 1 0 0 0 1 +1 +1 1 1 1 0 1 1 1 1 1 0 0 1 +0 +1 0 1 0 1 1 1 1 1 0 0 0 1 +0 +0 1 0 1 1 1 1 1 1 0 1 1 1 +0 +1 1 1 1 0 0 0 1 0 0 0 1 0 +0 +0 1 1 0 0 0 1 1 0 1 1 1 0 +1 +1 0 1 1 1 1 1 0 1 1 0 1 1 +0 +0 0 1 1 1 1 1 1 0 1 1 1 1 +0 +0 1 1 1 1 0 1 0 1 0 0 0 1 +1 +1 1 1 0 1 1 1 1 0 0 0 0 1 +0 +0 0 1 1 0 0 0 1 0 0 1 0 0 +0 +1 0 1 1 1 1 1 0 0 1 1 0 0 +0 +1 0 1 1 0 0 1 1 1 1 1 0 0 +0 +1 1 0 1 1 1 0 1 1 0 0 0 0 +1 +0 0 0 0 0 0 0 0 0 1 0 0 1 +0 +1 1 1 0 1 1 1 1 0 0 0 0 0 +1 +0 1 1 1 0 1 1 1 0 1 1 0 0 +0 +0 0 1 1 0 0 1 1 1 0 0 1 0 +0 +0 1 0 0 0 0 1 1 1 0 0 0 1 +1 +0 1 1 1 0 1 0 1 0 0 0 0 0 +1 +0 1 0 1 1 0 1 1 1 0 1 1 1 +1 +0 0 0 0 0 0 0 0 1 0 0 0 0 +1 +1 1 1 1 1 1 0 0 0 1 1 0 1 +1 +1 1 0 0 0 0 0 0 1 0 0 1 1 +1 +0 1 0 0 0 0 1 0 1 1 0 0 0 +0 +0 0 1 1 1 1 0 1 0 1 1 0 1 +0 +1 0 1 1 1 0 0 0 1 1 0 1 1 +0 +0 0 0 1 0 1 1 1 0 1 0 0 1 +0 +0 0 1 0 0 1 1 0 0 1 1 0 0 +1 +1 1 0 1 0 0 0 0 0 1 1 1 1 +1 +0 1 0 1 1 0 1 0 1 0 0 0 1 +0 +1 0 0 1 1 0 1 0 1 1 0 0 0 +0 +0 1 0 0 1 0 0 0 0 1 0 0 0 +1 +0 1 0 1 1 1 1 0 0 1 0 1 1 +0 +1 0 0 1 1 0 0 1 1 0 1 0 0 +0 +0 1 0 1 1 0 0 0 0 0 1 1 1 +0 +1 1 1 0 0 0 0 0 1 0 0 0 1 +1 +0 1 0 0 0 0 0 0 1 1 0 0 0 +1 +1 1 0 1 1 1 0 1 0 1 1 1 0 +1 +1 0 1 1 1 1 1 0 1 0 1 1 1 +0 +1 0 0 1 1 0 0 0 1 1 0 1 1 +1 +0 0 0 1 0 1 0 1 0 1 0 0 1 +1 +1 1 0 0 0 0 0 0 1 1 1 1 0 +0 +1 1 1 0 0 1 0 1 0 0 1 1 0 +1 +0 1 0 1 1 0 1 1 0 1 1 0 0 +1 +0 1 1 1 1 0 0 0 0 0 1 1 1 +1 +0 0 0 1 1 0 1 1 1 0 0 1 0 +0 +1 0 1 1 0 0 0 0 0 0 1 1 1 +0 +0 0 0 1 0 0 0 0 0 0 0 0 0 +1 +1 0 0 1 0 0 0 1 0 1 0 0 0 +0 +0 1 0 1 1 1 1 0 0 1 1 0 0 +1 +1 0 0 0 1 0 0 1 1 1 0 0 1 +0 +1 1 0 0 1 0 0 1 0 1 1 1 1 +0 +0 1 0 1 0 0 0 1 0 1 0 1 1 +0 +1 0 0 0 0 0 0 1 0 0 1 0 1 +0 +0 0 0 1 0 0 1 0 1 1 1 0 0 +1 +0 1 1 0 1 1 1 0 1 1 0 1 0 +0 +1 1 0 1 1 0 0 1 1 1 0 0 0 +1 +0 1 1 1 1 1 1 0 0 0 0 1 1 +0 +0 0 1 1 1 1 0 0 0 1 1 1 0 +1 +1 1 1 0 1 0 0 1 1 1 0 1 0 +0 +0 0 1 0 0 1 0 1 1 0 0 1 0 +1 +1 1 1 1 0 0 0 0 0 1 0 0 0 +1 +1 0 0 1 1 1 0 0 0 1 1 1 1 +0 +0 0 1 1 0 0 1 0 0 1 0 0 1 +1 +1 0 0 1 0 0 1 1 0 1 1 0 0 +0 +0 1 1 0 0 0 0 0 0 1 0 1 1 +1 +1 0 1 1 0 1 0 1 1 1 0 0 1 +0 +0 0 0 1 0 1 1 0 0 0 0 0 0 +1 +1 0 1 1 1 1 0 0 1 1 0 1 0 +0 +0 1 0 0 1 1 0 1 1 0 1 1 1 +0 +0 0 1 0 0 1 1 0 0 1 0 1 1 +0 +0 0 1 0 1 1 0 0 0 0 1 0 0 +0 +0 1 0 0 0 0 0 1 0 0 1 0 0 +1 +0 0 0 0 0 1 0 1 0 0 1 1 1 +1 +1 1 0 0 1 0 1 1 0 1 1 1 0 +0 +1 0 1 1 1 0 1 1 0 1 0 1 0 +0 +0 0 1 0 0 0 1 0 1 0 1 1 1 +0 +1 1 0 1 0 1 0 0 1 1 1 1 0 +0 +1 1 0 1 1 1 1 0 1 1 0 1 0 +1 +0 1 0 1 0 0 0 1 0 0 1 0 1 +1 +0 0 1 1 1 1 1 0 0 1 1 1 0 +0 +0 1 1 0 0 0 0 0 1 1 1 0 1 +0 +0 1 0 1 1 0 0 0 1 0 1 0 1 +0 +1 1 0 0 1 0 0 1 0 0 0 1 1 +0 +0 0 0 0 1 0 0 0 0 0 1 0 0 +0 +0 1 1 0 1 0 1 1 0 1 0 0 0 +0 +0 1 1 0 0 1 1 0 0 0 0 1 0 +1 +0 1 0 0 0 1 1 0 0 1 0 0 1 +1 +0 0 1 0 1 0 1 0 1 0 0 0 0 +0 +1 0 1 0 0 1 1 1 0 0 1 1 1 +0 +0 1 0 0 0 0 1 1 0 0 0 1 1 +1 +1 1 0 1 0 0 1 1 1 1 1 1 0 +1 +0 0 0 1 1 0 1 1 0 1 0 0 1 +0 +0 1 1 1 1 0 0 0 1 0 0 0 0 +1 +1 0 1 0 1 1 1 1 1 0 1 1 0 +1 +1 0 1 0 1 0 1 1 1 1 0 1 0 +0 +0 0 1 0 0 0 0 0 1 1 0 1 1 +1 +0 0 0 0 0 0 0 0 0 1 1 0 0 +0 +0 0 1 1 0 1 0 0 0 1 0 0 1 +1 +0 1 1 1 0 1 0 1 0 0 1 1 0 +1 +1 1 1 1 1 1 0 1 0 0 0 0 0 +1 +0 1 0 1 1 0 1 1 1 1 1 1 0 +1 +0 0 0 0 0 1 1 0 1 1 0 1 0 +1 +1 0 0 1 1 0 0 0 0 0 1 1 0 +1 +0 1 1 0 0 1 0 0 0 0 1 1 0 +1 +1 1 0 0 0 1 0 1 1 1 1 1 1 +1 +0 1 1 1 1 1 1 0 1 0 1 1 1 +0 +1 0 0 1 1 0 0 1 0 0 0 0 0 +0 +0 0 1 0 0 0 0 1 1 0 0 1 0 +0 +1 1 0 1 0 0 1 0 1 0 0 0 0 +1 +0 0 1 1 1 1 0 1 0 0 1 1 0 +1 +1 1 1 0 0 0 0 1 0 0 0 1 1 +0 +1 1 1 1 1 0 1 0 1 0 0 0 1 +0 +1 1 0 1 1 1 0 1 1 0 1 1 0 +1 +0 0 1 1 1 0 1 0 1 1 1 0 0 +1 +1 1 0 0 1 0 1 0 0 0 1 1 1 +1 +0 0 1 0 0 1 1 1 0 0 0 1 0 +1 +0 1 1 1 0 0 0 0 1 0 0 1 0 +1 +1 1 0 1 0 1 0 1 1 1 1 1 0 +1 +1 1 1 0 1 1 1 1 1 0 0 1 1 +0 +0 1 0 0 1 0 0 1 0 0 0 0 1 +0 +1 0 1 0 0 0 1 1 1 1 1 1 0 +0 +1 0 0 0 0 0 0 0 0 0 1 1 0 +1 +1 1 1 1 0 0 1 0 0 1 1 0 1 +0 +0 0 0 1 0 1 1 1 1 0 1 0 1 +1 +1 0 1 0 1 1 1 0 0 0 1 0 1 +1 +1 0 0 1 0 0 1 0 0 0 0 0 1 +0 +0 1 1 1 1 0 0 1 0 1 1 1 0 +0 +1 1 0 1 1 0 0 1 0 0 1 1 0 +1 +0 1 1 0 1 1 0 1 0 0 0 0 1 +0 +1 0 0 0 1 0 0 1 1 0 0 0 1 +1 +1 1 0 0 0 0 1 1 0 1 0 1 1 +1 +0 1 1 1 0 0 1 0 0 0 0 0 1 +1 +1 1 1 1 1 1 1 0 1 0 0 0 0 +0 +0 1 0 0 1 1 0 1 0 1 0 0 0 +1 +0 0 1 1 1 1 1 1 0 1 1 1 0 +1 +1 1 1 1 1 1 1 0 1 1 1 0 0 +0 +0 0 1 1 0 1 0 1 0 1 0 1 0 +0 +1 0 1 1 1 0 0 1 1 0 1 1 1 +1 +0 1 1 1 0 1 0 0 1 0 1 1 1 +0 +1 1 0 1 1 0 1 1 0 1 1 0 1 +1 +0 0 1 1 0 1 0 1 0 1 1 0 0 +0 +1 1 0 1 0 0 0 1 0 1 1 1 1 +0 +1 0 1 1 0 1 1 0 1 1 0 0 0 +1 +0 0 0 1 1 0 0 0 1 1 0 0 1 +1 +1 1 0 1 0 1 1 0 1 0 0 0 0 +0 +0 0 0 0 1 1 0 1 1 0 0 0 0 +0 +0 1 0 0 1 1 0 1 1 0 0 0 0 +1 +0 0 0 1 0 0 1 1 1 1 1 0 0 +0 +1 1 0 0 1 1 0 1 0 0 1 0 0 +0 +1 0 1 0 0 1 1 1 0 1 1 1 0 +0 +1 1 0 0 0 0 0 0 0 0 1 0 0 +1 +1 1 0 1 1 1 0 1 0 1 1 1 1 +0 +0 1 0 0 1 1 0 0 0 0 0 0 1 +0 +1 0 0 1 0 0 0 1 1 0 1 0 0 +1 +0 0 1 0 0 1 0 1 1 0 0 0 1 +1 +1 1 0 1 1 0 0 1 1 1 0 1 1 +1 +1 0 0 1 1 0 1 1 1 1 1 0 0 +0 +0 1 0 0 1 1 1 1 1 0 1 0 1 +0 +1 0 1 0 0 0 0 0 0 1 1 1 0 +1 +0 1 1 1 0 1 1 0 0 1 1 1 0 +0 +0 1 0 1 1 1 0 0 1 0 0 0 0 +1 +1 0 0 0 0 0 0 0 1 0 0 0 1 +1 +0 0 0 0 1 0 1 0 1 1 0 0 1 +1 +1 1 0 1 0 0 1 0 1 0 1 1 1 +0 +1 1 0 0 1 1 1 1 0 1 0 0 1 +0 +1 1 0 0 1 1 0 1 1 1 1 0 1 +1 +0 0 1 1 1 0 1 0 0 1 1 0 1 +1 +1 0 0 0 1 0 1 0 1 1 1 1 0 +1 +0 1 1 1 0 0 1 1 0 0 0 1 0 +0 +0 0 0 0 0 1 0 0 1 1 0 0 1 +0 +1 1 1 1 0 0 1 0 1 1 0 1 1 +1 +0 1 1 0 0 1 0 1 1 0 0 0 0 +1 +0 0 1 0 1 1 1 0 0 0 1 1 1 +1 +0 0 0 1 1 1 0 0 1 0 0 0 1 +1 +0 0 0 0 0 1 0 0 1 0 1 1 1 +1 +0 1 0 0 0 0 1 1 0 0 0 0 1 +0 +0 0 1 0 0 1 0 0 1 1 1 1 1 +1 +0 1 1 0 1 0 1 0 0 0 1 0 0 +1 +1 1 1 0 1 1 1 0 0 1 1 1 0 +1 +0 0 1 0 0 0 0 1 0 1 0 0 0 +1 +0 0 1 1 1 1 1 0 1 0 0 1 0 +1 +1 0 0 1 0 0 0 0 1 0 0 0 0 +1 +1 1 0 1 0 0 1 1 0 0 1 1 0 +1 +1 1 1 1 1 0 1 0 1 1 1 0 1 +0 +0 1 0 0 0 0 1 1 0 1 1 1 0 +0 +1 1 1 1 0 0 1 1 1 0 0 1 0 +0 +0 0 0 1 1 0 0 0 0 1 0 0 1 +0 +1 0 0 1 1 1 1 0 0 1 0 0 1 +1 +1 1 0 1 0 1 0 1 0 0 1 0 0 +0 +0 0 0 1 1 1 0 0 0 0 1 1 1 +0 +1 1 0 0 0 1 1 0 1 1 0 0 0 +0 +0 0 0 1 0 1 0 0 0 1 1 0 1 +1 +0 1 0 1 0 0 0 0 1 0 1 1 1 +0 +0 1 0 1 1 0 0 0 0 1 0 0 1 +1 +1 0 0 0 0 1 0 0 0 1 1 1 0 +1 +1 1 0 1 0 1 0 0 0 0 0 0 0 +0 +1 0 0 0 0 1 0 1 0 0 1 1 1 +0 +0 1 0 0 0 1 0 0 1 1 0 1 1 +0 +0 0 0 0 0 0 1 0 1 1 1 0 1 +1 +1 1 1 0 1 0 0 0 1 1 0 0 1 +1 +1 0 1 1 0 0 0 0 1 0 1 0 0 +1 +0 0 1 1 1 0 0 1 1 1 0 1 0 +1 +1 1 1 0 1 1 0 1 1 1 1 0 1 +0 +0 1 1 0 0 0 1 1 0 0 0 0 0 +0 +0 1 1 1 0 0 1 1 0 1 1 1 1 +1 +0 0 0 1 0 0 1 1 0 0 1 0 1 +1 +0 0 1 0 0 0 1 1 0 1 1 0 0 +1 +1 1 1 0 0 0 0 0 1 1 1 0 0 +0 +1 0 0 1 1 1 1 1 1 1 1 1 1 +1 +0 1 0 0 1 0 0 1 1 0 0 0 0 +0 +1 1 0 1 0 0 1 0 0 0 1 0 0 +1 +0 1 1 0 0 0 0 1 1 1 1 0 0 +0 +1 1 1 0 0 1 0 0 1 0 1 0 0 +0 +0 0 1 0 0 1 0 0 0 0 1 1 1 +1 +0 0 0 0 0 0 0 0 0 0 1 1 1 +1 +1 0 1 1 1 1 1 1 1 0 1 0 1 +0 +0 1 0 0 0 0 0 0 1 0 1 0 1 +0 +0 1 1 0 1 0 1 1 1 0 0 0 0 +0 +0 1 0 0 0 1 1 0 1 1 1 0 1 +1 +1 1 1 1 1 0 0 0 1 1 1 1 1 +0 +0 1 0 0 0 1 0 1 1 0 1 0 0 +1 +1 0 0 1 0 1 0 1 1 0 0 0 1 +0 +1 0 0 1 1 0 0 0 0 1 1 0 1 +0 +1 0 0 1 1 0 1 0 0 1 0 1 1 +1 +0 1 0 1 1 1 0 1 0 0 1 1 0 +1 +0 1 0 0 1 1 0 0 0 1 1 1 0 +0 +1 1 0 0 1 0 0 1 1 0 1 1 1 +0 +0 0 0 1 0 1 1 1 0 1 1 1 1 +0 +1 1 0 1 0 0 0 1 1 0 0 1 1 +1 +1 0 1 0 1 0 1 0 1 1 0 0 1 +1 +0 0 0 0 0 1 0 0 0 1 1 1 1 +1 +0 0 1 0 1 0 1 0 1 1 1 1 1 +0 +0 1 1 1 0 0 0 1 1 0 1 1 0 +1 +0 1 0 1 1 1 1 0 1 1 0 0 1 +0 +0 0 1 1 0 1 0 1 0 1 0 1 1 +1 +1 1 0 1 1 0 0 1 0 0 0 0 1 +0 +1 1 0 1 0 1 0 0 0 0 0 1 1 +0 +0 1 0 1 0 0 1 0 1 1 0 0 1 +0 +0 0 0 0 1 0 1 1 1 0 1 0 1 +0 +1 1 1 0 0 0 0 1 1 0 0 0 1 +0 +1 1 0 0 0 0 0 1 1 1 0 0 1 +0 +1 0 0 1 0 1 0 0 1 1 0 0 1 +0 +1 1 0 0 1 0 0 0 1 0 0 0 1 +1 +0 1 1 0 1 0 0 1 0 0 1 0 0 +1 +0 0 0 0 0 0 1 0 0 0 1 1 0 +1 +0 1 0 1 0 0 0 0 0 1 1 1 1 +0 +1 1 1 1 0 0 0 0 1 1 1 1 0 +0 +1 1 1 0 0 0 1 1 0 0 1 0 1 +1 +1 0 1 0 1 1 0 0 1 0 0 1 0 +0 +1 0 0 1 1 0 0 1 1 0 0 1 1 +1 +0 0 1 1 1 1 0 1 0 0 1 1 1 +0 +0 1 1 0 1 1 0 1 1 0 0 1 0 +1 +0 1 1 0 0 1 0 1 1 1 1 0 0 +1 +1 1 0 1 0 0 1 0 1 1 1 1 1 +1 +1 1 1 1 0 0 0 0 1 1 1 1 1 +1 +1 0 0 0 0 1 0 1 1 0 0 0 0 +0 +0 1 0 1 0 0 0 1 1 1 0 0 0 +1 +1 0 1 1 1 0 1 1 0 1 0 1 1 +1 +1 0 1 0 1 0 0 0 1 0 0 1 0 +1 +0 1 1 1 1 1 1 1 0 0 1 1 0 +1 +1 0 0 1 0 1 0 1 0 1 1 1 0 +1 +1 1 0 1 0 0 0 1 0 0 0 1 1 +0 +0 1 1 0 1 1 0 0 0 1 0 1 1 +1 +1 1 1 1 1 1 1 1 1 1 1 1 1 +1 +0 1 0 0 0 1 1 0 0 1 0 1 0 +1 +0 1 1 1 1 1 0 0 1 1 1 0 0 +0 +1 0 0 0 0 0 0 1 1 1 0 1 0 +1 +0 1 0 1 0 1 1 1 0 1 1 0 1 +0 +1 0 0 1 0 0 0 0 1 1 0 0 1 +1 +0 0 1 0 1 1 1 1 0 1 0 0 0 +0 +1 0 1 0 1 1 1 1 1 1 1 0 0 +1 +0 1 0 0 1 0 0 1 0 0 1 1 0 +1 +0 0 1 0 1 1 0 1 1 1 0 0 0 +0 +1 1 1 1 0 1 0 0 0 0 1 1 1 +0 +0 0 1 0 0 0 0 1 0 0 0 1 0 +1 +1 0 0 1 1 1 0 0 0 1 0 1 0 +0 +1 0 1 1 0 1 0 0 0 1 0 1 0 +0 +0 1 1 1 1 1 1 0 1 0 0 1 0 +0 +1 1 0 0 1 0 1 0 1 1 0 0 1 +1 +0 0 1 0 1 0 1 0 0 1 0 0 0 +0 +0 0 0 0 0 0 0 1 0 1 0 1 1 +0 +0 1 1 1 0 0 0 0 1 1 0 0 0 +1 +0 0 1 0 1 0 0 0 1 1 0 0 1 +1 +1 1 0 1 1 0 1 0 0 1 1 1 1 +1 +0 0 1 1 0 0 1 0 0 1 1 0 0 +1 +0 0 0 0 0 1 1 1 0 0 1 1 1 +0 +1 1 1 0 1 1 1 1 1 1 0 1 1 +1 +0 1 0 0 0 1 0 0 1 0 0 1 1 +1 +0 1 1 1 0 1 0 1 0 0 1 1 1 +0 +1 0 1 0 0 1 0 1 0 0 1 0 1 +0 +0 0 1 0 1 0 0 0 0 1 1 0 1 +1 +0 0 0 1 1 1 1 1 1 0 0 0 0 +0 +0 1 0 0 1 0 0 0 0 0 0 0 1 +1 +0 1 1 0 1 0 0 1 1 1 0 0 0 +0 +1 0 0 1 0 0 0 0 0 0 1 0 0 +1 +0 0 0 0 0 1 1 1 1 0 0 0 0 +0 +0 1 1 0 0 1 1 1 0 0 1 0 1 +1 +0 0 1 1 1 1 1 0 1 0 1 0 0 +1 +1 1 0 1 1 1 1 0 0 0 1 1 0 +0 +0 1 1 0 0 0 1 1 0 1 0 1 0 +0 +0 0 0 1 1 0 1 0 0 1 0 1 1 +0 +1 1 1 1 1 0 1 0 1 1 0 1 0 +1 +1 1 1 0 1 1 0 0 1 1 0 1 0 +0 +1 0 1 0 1 0 0 0 0 0 1 1 0 +1 +1 1 0 0 0 1 1 1 1 0 0 1 0 +1 +0 1 1 0 1 1 0 1 0 0 1 0 1 +1 +0 1 1 0 0 0 1 0 0 0 1 0 0 +0 +0 1 0 1 0 0 1 1 0 0 0 1 0 +1 +1 0 1 0 1 1 0 0 1 0 1 1 0 +1 +0 0 1 0 0 1 1 0 0 1 1 0 1 +0 +0 1 1 0 1 0 0 1 1 1 1 0 0 +1 +1 1 0 1 1 0 1 1 1 1 1 1 0 +0 +0 1 1 0 0 0 0 1 1 1 1 1 0 +1 +0 1 0 1 0 1 0 1 1 0 0 0 1 +0 +0 1 0 0 1 1 0 1 0 0 1 0 1 +0 +0 1 0 1 0 0 0 1 1 0 1 0 0 +1 +0 0 1 0 1 0 0 1 1 1 1 1 1 +0 +0 0 0 1 1 0 0 1 0 0 0 1 0 +0 +1 1 0 0 0 1 0 1 0 0 1 1 0 +0 +1 0 0 0 1 0 0 1 1 1 1 1 1 +0 +1 1 0 0 0 0 0 1 0 1 0 0 0 +0 +1 1 0 1 1 1 0 1 0 1 0 0 1 +0 +0 0 1 0 1 0 0 1 0 1 0 0 0 +0 +1 0 1 0 0 0 1 0 0 0 1 1 1 +0 +0 1 0 1 0 0 1 0 0 0 0 0 1 +0 +0 0 1 1 1 0 1 0 0 1 1 1 1 +0 +0 0 0 1 0 1 0 0 0 1 1 1 0 +1 +1 0 0 0 0 0 0 0 0 0 0 1 0 +0 +1 0 0 0 0 1 1 1 0 0 0 0 1 +1 +0 1 0 1 0 1 0 1 0 1 1 0 1 +1 +0 1 0 1 0 0 0 0 0 1 0 0 0 +1 +0 1 1 0 0 1 1 0 1 1 1 1 1 +1 +0 0 0 0 1 1 1 1 0 0 1 0 1 +0 +0 0 0 0 1 1 1 1 1 0 0 0 1 +0 +1 0 0 1 0 0 0 0 1 1 0 1 1 +0 +0 0 0 0 1 1 0 1 0 1 1 0 0 +1 +1 1 0 1 1 0 1 0 0 1 1 0 1 +0 +1 0 1 1 1 0 0 1 0 0 0 1 0 +0 +0 1 1 0 1 0 1 1 1 1 0 0 0 +1 +1 0 0 0 0 1 1 0 1 0 1 0 0 +1 +0 1 1 0 0 1 0 1 0 0 1 1 0 +0 +0 0 1 0 0 0 1 0 1 0 0 1 0 +0 +0 1 1 0 1 1 1 1 0 1 0 0 1 +0 +0 0 0 1 1 0 0 0 1 0 1 0 1 +1 +0 0 0 0 1 1 0 0 1 0 0 1 1 +1 +0 0 0 0 1 1 0 1 1 1 0 1 0 +0 +1 1 1 0 0 0 0 1 1 0 1 1 0 +1 +1 0 1 1 0 1 0 1 1 0 1 1 1 +1 +0 1 1 1 0 0 1 0 0 1 1 1 0 +1 +1 1 1 1 1 0 0 0 1 0 1 1 0 +0 +0 0 1 0 1 1 0 0 0 1 1 0 0 +1 +0 1 0 0 1 1 0 0 1 0 1 1 0 +0 +1 0 0 0 1 0 0 1 0 0 0 0 1 +0 +0 1 1 0 0 0 0 0 1 0 1 0 1 +1 +1 1 0 0 1 1 0 0 0 1 1 0 0 +0 +1 1 1 0 1 0 1 1 0 1 0 0 1 +0 +1 1 1 0 0 1 1 0 0 0 0 1 0 +0 +1 1 1 0 0 1 1 0 1 1 0 1 1 +1 +0 0 1 1 1 0 0 0 0 0 0 0 0 +1 +0 0 1 1 1 0 0 1 0 1 0 0 0 +1 +0 0 0 1 1 0 1 1 1 0 1 1 0 +1 +0 0 0 0 1 0 1 1 0 1 0 0 0 +0 +0 0 1 0 0 0 1 0 0 1 1 0 1 +1 +1 1 0 0 0 1 1 0 1 1 1 0 1 +0 +0 0 0 1 0 1 1 0 0 0 1 0 0 +0 +0 1 1 0 0 1 1 0 1 0 0 1 1 +1 +1 1 0 0 0 0 1 1 0 1 1 0 1 +1 +0 0 1 0 1 0 0 1 0 0 1 1 1 +0 +1 0 1 0 0 1 0 0 1 1 1 0 1 +1 +1 0 0 0 1 0 1 0 0 0 1 0 1 +1 +1 0 0 0 0 0 0 1 1 0 1 1 1 +0 +1 0 1 0 1 0 0 1 1 1 1 0 0 +1 +1 1 1 1 1 0 0 1 1 0 1 1 0 +1 +0 0 0 0 1 1 1 1 1 1 0 0 0 +0 +0 1 1 0 0 0 1 0 0 1 0 1 1 +0 +1 0 0 1 1 1 0 1 1 0 0 1 1 +0 +1 1 0 1 1 0 0 0 1 1 0 0 1 +1 +1 1 0 1 1 0 0 0 0 1 0 1 0 +0 +1 0 1 0 1 1 0 1 0 1 1 0 1 +0 +0 1 1 1 1 1 0 0 0 1 0 0 0 +0 +1 0 0 0 1 1 0 1 1 1 0 0 0 +0 +1 1 0 1 0 1 1 1 1 0 1 0 0 +0 +0 0 1 0 1 1 1 1 0 1 1 1 1 +1 +0 1 0 1 1 0 0 1 1 1 1 1 0 +0 +1 0 0 1 0 0 1 1 1 1 0 0 0 +0 +1 0 0 0 0 1 0 0 1 0 0 1 0 +0 +0 0 1 0 1 0 0 0 1 0 0 1 0 +0 +1 0 1 1 1 1 0 0 0 1 0 1 1 +0 +1 0 0 0 1 1 1 1 0 1 0 0 1 +1 +0 1 0 0 1 0 1 0 1 1 0 0 0 +1 +0 0 0 1 1 1 1 1 1 0 1 1 1 +1 +1 1 0 0 0 0 1 1 0 0 0 1 1 +0 +1 1 0 1 1 0 1 1 0 0 1 1 1 +1 +1 1 0 0 0 0 1 1 0 0 0 0 1 +1 +0 0 0 1 1 0 1 0 0 1 1 1 0 +0 +0 1 0 1 0 0 1 0 1 0 1 1 0 +0 +1 1 1 1 0 0 1 1 0 0 1 1 1 +1 +0 1 0 1 0 0 1 1 0 1 1 1 1 +0 +1 1 0 0 0 1 0 0 0 1 0 0 0 +0 +1 0 1 1 1 0 1 0 0 0 1 1 1 +0 +1 0 1 1 1 0 0 1 0 0 0 1 1 +1 +1 1 1 1 1 1 0 1 0 1 1 1 1 +1 +1 0 0 1 1 0 0 0 0 1 0 1 1 +0 +0 0 0 0 1 0 0 0 0 1 0 0 0 +0 +0 1 1 0 1 0 0 0 0 1 1 1 1 +1 +1 1 1 0 0 0 0 0 1 0 1 0 0 +1 +1 1 1 0 0 0 1 1 1 0 0 0 1 +1 +1 1 0 1 0 1 0 0 0 1 0 1 0 +0 +1 0 0 0 1 1 0 0 0 1 0 0 1 +1 +1 1 0 0 0 0 1 0 1 1 0 1 0 +0 +1 1 1 1 0 0 0 0 0 1 1 0 1 +1 +1 1 1 0 0 1 1 1 1 1 1 1 0 +0 +1 1 0 0 1 1 1 1 0 0 0 0 0 +0 +0 1 1 1 0 0 1 0 1 1 0 1 1 +0 +0 1 1 0 0 0 1 1 1 1 1 0 0 +1 +0 0 1 0 0 1 0 1 0 1 1 0 0 +1 +0 1 0 0 0 1 0 0 1 1 1 1 0 +0 +1 1 1 1 1 1 1 1 0 0 0 1 0 +1 +1 1 0 1 1 0 0 1 0 1 1 0 1 +0 +1 1 1 1 0 0 0 1 1 0 0 0 0 +0 +0 0 0 1 1 0 0 0 1 1 0 1 1 +0 +0 1 0 0 1 0 0 0 0 1 1 0 1 +1 +0 1 1 0 0 1 0 1 0 1 0 0 1 +0 +0 0 0 0 0 0 0 0 0 1 1 0 1 +1 +0 0 1 1 1 0 1 1 1 1 0 1 1 +1 +1 1 0 1 0 0 1 1 1 1 1 0 1 +1 +1 0 0 1 1 0 0 0 0 0 1 0 0 +0 +1 0 0 0 0 1 1 1 1 0 0 0 1 +0 +1 0 0 0 0 0 1 0 1 0 1 0 1 +1 +1 1 1 0 0 0 1 1 0 0 0 0 0 +1 +1 0 0 0 0 0 0 1 1 1 1 0 0 +1 +1 1 0 0 1 1 1 1 1 0 1 1 0 +1 +1 1 1 0 0 1 1 1 0 0 1 0 1 +0 +1 0 0 1 0 1 0 1 0 0 0 0 1 +1 +1 1 1 1 0 0 0 0 0 1 0 0 1 +0 +0 1 0 1 0 0 0 1 0 0 0 0 0 +1 +1 0 0 0 0 1 0 0 0 1 0 1 1 +1 +1 1 1 0 0 1 1 0 0 1 1 0 0 +1 +0 0 0 1 0 1 1 0 0 0 1 1 1 +0 +0 1 1 1 0 1 1 0 0 1 0 0 0 +0 +0 0 1 1 1 1 1 0 0 1 0 1 1 +0 +0 0 0 1 0 1 0 0 0 0 1 0 1 +0 +0 1 0 0 1 0 1 1 1 1 0 1 0 +1 +0 1 0 1 0 0 0 0 0 0 1 0 0 +1 +1 0 0 0 1 1 1 1 1 1 1 1 1 +0 +0 1 0 1 1 0 0 1 0 1 0 0 0 +1 +0 1 1 1 0 0 1 1 1 0 0 0 1 +1 +0 1 0 0 0 1 0 0 1 1 0 0 0 +0 +0 1 0 1 1 1 0 1 1 1 0 0 0 +1 +1 1 0 1 1 1 1 1 1 1 1 0 0 +0 +0 1 1 1 1 0 1 1 0 1 0 0 1 +0 +1 1 1 1 1 1 0 1 1 1 0 1 1 +1 +0 0 0 0 0 1 1 0 0 0 0 0 1 +1 +1 0 0 0 1 0 1 0 1 1 1 0 1 +1 +1 1 0 0 1 1 0 0 1 0 0 0 1 +0 +0 0 0 1 0 0 1 0 0 0 1 1 1 +1 +1 1 1 1 1 0 0 1 1 1 1 1 0 +0 +0 0 0 0 1 1 0 1 0 1 1 1 0 +0 +0 1 0 0 0 0 0 1 1 1 0 0 1 +1 +1 0 0 0 0 0 1 0 1 0 0 0 0 +1 +1 0 0 0 0 1 1 1 1 1 0 1 1 +0 +1 0 1 0 1 1 1 1 1 0 1 0 0 +0 +0 1 1 0 0 1 1 0 0 1 0 0 1 +0 +1 0 1 1 0 1 1 1 1 0 1 0 0 +0 +0 0 0 1 0 1 1 1 0 0 0 1 1 +0 +0 1 1 1 0 0 1 1 0 0 1 0 1 +1 +0 0 1 0 1 0 0 0 0 0 0 0 1 +1 +1 0 1 1 1 0 1 0 0 0 1 1 0 +1 +1 1 1 0 0 1 1 0 1 0 0 0 1 +1 +0 1 0 1 0 1 1 0 0 0 1 0 0 +1 +1 1 1 0 0 1 0 0 0 1 1 1 0 +1 +0 0 0 1 0 0 1 1 0 1 1 1 1 +1 +1 1 1 0 1 1 0 0 0 0 0 1 0 +0 +0 1 1 1 1 0 1 1 0 0 0 0 0 +0 +1 0 1 0 1 0 0 1 0 0 0 0 1 +1 +0 1 0 1 0 1 1 0 1 1 1 1 0 +0 +0 1 0 0 0 0 0 0 0 0 1 1 0 +1 +0 0 1 0 0 1 1 1 0 0 0 0 0 +0 +0 0 0 1 1 0 0 0 1 1 0 0 0 +0 +1 0 0 0 0 1 1 0 0 1 0 1 0 +1 +1 0 0 0 1 1 0 0 1 0 0 1 0 +1 +1 1 1 0 1 1 1 1 1 0 0 0 1 +1 +0 1 1 1 1 0 0 1 0 1 1 0 0 +1 +0 0 0 1 0 0 0 0 0 0 1 1 0 +1 +0 1 0 0 0 1 1 1 0 0 0 0 0 +0 +0 0 0 0 1 1 0 0 1 1 0 0 0 +0 +0 0 1 0 1 1 1 0 1 1 0 0 0 +0 +0 1 1 0 1 0 1 1 0 1 1 0 1 +0 +1 1 0 1 1 1 0 1 0 0 1 0 0 +1 +1 1 1 0 1 0 0 0 1 1 0 1 1 +0 +1 1 1 1 0 1 1 1 1 1 1 1 1 +0 +0 0 0 1 1 0 0 1 0 1 1 0 1 +0 +1 1 0 0 0 1 1 1 1 0 1 1 0 +0 +0 1 0 1 0 1 1 1 1 1 0 0 1 +0 +0 0 0 0 0 1 0 1 1 1 1 1 1 +1 +1 1 0 1 1 0 1 1 1 0 0 0 0 +1 +1 1 0 1 0 1 0 1 1 1 0 0 1 +0 +0 0 1 0 0 0 1 0 0 1 0 0 1 +0 +1 0 1 0 1 0 0 0 1 0 1 0 0 +1 +1 1 1 1 1 1 1 0 0 0 0 0 1 +0 +1 1 0 0 0 1 0 1 1 0 0 0 1 +0 +1 0 0 0 0 0 1 0 0 0 1 0 0 +1 +0 1 0 1 1 0 0 1 0 1 0 0 1 +0 +0 1 1 0 1 0 1 0 1 0 1 1 1 +0 +0 0 1 1 1 0 1 0 1 0 0 1 1 +1 +1 1 1 1 1 0 1 0 0 1 1 0 1 +1 +0 0 0 1 1 0 0 0 1 0 1 1 0 +1 +1 1 1 0 0 1 0 0 0 0 0 1 0 +1 +1 0 1 0 1 0 1 1 0 1 1 0 0 +1 +0 0 0 0 0 0 0 1 1 0 0 1 0 +1 +0 1 0 0 1 1 1 1 1 0 1 0 0 +1 +1 0 0 0 0 1 0 0 0 0 1 0 0 +1 +0 1 1 1 1 1 1 0 0 0 1 1 1 +1 +0 0 0 1 0 1 1 0 1 1 1 1 1 +0 +0 0 1 0 0 0 0 1 1 1 1 1 0 +0 +0 1 0 1 1 0 1 0 1 1 0 0 0 +0 +0 1 0 1 1 0 1 0 0 1 0 0 1 +0 +1 1 0 0 0 0 1 0 1 1 1 1 0 +1 +0 0 1 0 1 1 1 1 1 1 0 0 0 +1 +1 0 1 0 1 1 1 0 1 1 0 1 1 +1 +1 0 1 0 1 0 1 0 0 1 1 1 0 +1 +0 1 0 1 1 0 1 0 1 1 1 1 1 +1 +0 0 0 1 0 0 0 0 0 0 0 0 1 +0 +1 1 0 0 0 0 0 0 0 1 0 0 0 +1 +1 0 1 0 1 1 0 0 0 1 0 1 1 +1 +0 0 0 1 0 0 1 1 0 1 0 0 1 +1 +0 0 1 1 0 1 0 1 0 0 1 1 0 +0 +1 0 1 1 1 1 0 0 0 0 0 0 1 +0 +1 0 0 1 0 0 1 0 0 1 1 0 1 +0 +1 1 1 1 0 0 0 1 0 0 1 1 1 +0 +1 1 0 0 0 1 0 1 1 1 0 0 0 +0 +0 0 1 1 0 1 0 0 0 1 0 0 0 +0 +1 0 1 1 0 1 1 1 0 0 0 1 1 +0 +0 1 0 1 1 0 0 0 1 1 1 1 0 +1 +1 1 1 0 0 1 0 1 1 1 0 0 0 +1 +1 0 0 0 0 1 0 0 0 0 1 0 1 +0 +0 0 0 1 1 0 1 0 0 1 0 1 0 +1 +0 0 0 1 0 0 1 0 0 1 0 0 1 +0 +0 0 0 1 0 1 0 1 0 0 1 1 0 +1 +1 1 0 0 1 1 1 1 0 1 1 0 1 +1 +1 0 0 0 1 1 0 0 0 0 1 1 0 +1 +0 0 0 1 1 1 0 0 0 0 0 0 1 +0 +1 0 1 1 1 1 0 1 1 0 0 1 0 +0 +0 1 0 0 0 1 0 1 1 0 0 1 1 +0 +0 0 0 0 0 0 1 0 1 0 0 1 1 +0 +0 1 0 0 0 1 0 0 1 0 0 0 1 +0 +0 1 0 1 0 1 1 0 1 0 0 1 1 +1 +1 1 0 1 0 0 1 1 0 0 0 0 0 +1 +0 1 0 0 0 1 0 0 0 1 0 1 1 +1 +0 0 1 1 0 1 1 1 1 0 0 1 1 +0 +0 1 0 0 0 0 0 0 1 1 0 1 0 +0 +0 1 0 0 0 1 1 1 1 0 1 1 0 +1 diff --git a/lib/ann/fann/datasets/parity13.train b/lib/ann/fann/datasets/parity13.train new file mode 100644 index 0000000..a254198 --- /dev/null +++ b/lib/ann/fann/datasets/parity13.train @@ -0,0 +1,16385 @@ +8192 13 1 +1 1 1 0 0 0 0 0 0 1 1 0 0 +1 +0 1 1 0 0 0 1 1 1 1 0 0 0 +0 +0 0 1 0 1 0 0 0 1 0 1 1 1 +0 +1 1 0 0 1 1 1 0 0 0 0 1 0 +0 +1 0 0 1 0 0 1 1 1 0 0 1 1 +1 +1 1 1 1 1 1 1 1 0 0 1 1 1 +1 +0 1 0 1 0 0 1 0 0 0 1 0 1 +1 +0 0 1 1 0 1 1 1 0 0 0 1 1 +1 +1 0 0 1 0 1 0 0 1 1 1 1 1 +0 +1 0 1 1 0 0 1 1 0 0 1 1 1 +0 +0 1 0 1 1 1 0 1 0 0 0 1 1 +1 +0 1 1 0 0 1 0 0 0 1 0 1 0 +1 +0 1 0 0 1 1 1 1 1 0 0 0 0 +0 +1 1 0 1 1 1 1 1 0 1 1 1 1 +1 +1 0 0 1 1 1 1 0 0 0 1 1 0 +1 +0 1 1 0 0 0 1 0 1 0 0 0 0 +0 +1 0 0 0 1 1 0 1 0 1 1 1 0 +1 +0 1 0 0 0 0 1 1 0 1 0 0 0 +0 +0 0 1 0 1 0 1 0 0 0 0 1 0 +0 +1 0 1 1 0 1 1 0 1 1 1 1 0 +1 +1 1 0 1 1 0 0 0 1 1 0 0 0 +0 +0 1 1 0 1 0 0 1 0 1 0 1 1 +1 +0 0 1 0 0 1 0 1 1 1 0 0 0 +1 +1 0 1 0 1 0 1 1 1 0 0 0 0 +0 +0 1 1 0 1 1 1 0 1 1 1 1 0 +1 +0 1 0 1 1 0 1 0 1 0 1 0 0 +0 +0 1 1 1 0 1 0 0 1 0 0 1 1 +1 +1 1 0 0 0 1 1 0 0 1 0 0 1 +0 +0 0 1 1 1 1 0 1 0 0 0 1 1 +1 +1 1 1 1 1 0 0 1 1 1 1 0 1 +0 +1 0 0 1 0 0 1 1 0 0 1 0 0 +1 +0 1 0 1 1 0 0 1 1 1 1 0 0 +1 +0 1 1 0 0 1 1 0 1 1 0 1 1 +0 +0 0 1 0 0 1 1 0 1 1 0 0 0 +1 +0 1 1 1 0 1 0 0 0 1 0 1 0 +0 +0 0 1 1 0 0 0 0 0 1 0 0 1 +0 +1 0 1 0 1 1 1 1 1 1 1 1 0 +0 +0 1 0 1 0 1 0 0 1 0 1 0 0 +1 +1 1 0 0 0 1 0 1 0 0 0 0 1 +1 +0 0 1 1 0 1 0 1 0 0 1 0 0 +1 +1 0 1 0 0 1 0 0 1 0 0 0 0 +0 +1 0 1 1 1 0 1 0 1 0 0 1 0 +1 +1 0 0 0 1 0 1 0 1 0 0 1 1 +0 +1 1 1 0 1 0 0 0 1 1 0 0 0 +0 +0 0 0 1 1 0 1 0 0 0 0 1 0 +0 +1 0 0 0 0 0 1 1 1 0 0 0 1 +1 +1 0 0 1 1 1 0 1 1 0 1 0 0 +1 +0 0 1 0 1 0 1 1 0 0 0 1 0 +1 +1 1 0 1 0 1 0 1 1 0 1 1 1 +1 +0 1 0 0 1 1 0 1 0 0 1 1 0 +0 +1 1 0 0 1 0 0 0 1 0 0 1 1 +0 +1 1 0 0 0 1 0 1 0 1 1 1 1 +0 +1 0 0 0 0 0 0 1 1 1 0 0 1 +1 +0 1 0 1 1 1 1 1 0 1 1 0 1 +1 +1 0 0 0 0 1 1 1 0 0 1 0 0 +1 +1 0 0 0 1 0 0 0 0 1 1 0 0 +0 +0 0 1 0 0 0 0 0 1 0 0 1 1 +0 +0 1 0 0 0 0 0 1 1 0 1 1 1 +0 +0 0 1 0 1 1 1 0 0 0 0 1 1 +0 +1 0 0 0 0 0 1 0 0 1 1 0 0 +0 +1 0 1 1 1 0 1 0 1 1 0 1 1 +1 +1 1 0 0 1 1 1 0 1 0 0 1 0 +1 +0 1 1 1 0 1 1 0 0 0 1 0 1 +1 +1 1 1 0 0 0 0 1 0 0 0 0 1 +1 +1 0 0 0 1 0 1 1 0 0 1 0 1 +0 +0 1 0 0 0 1 0 0 1 0 0 0 0 +1 +0 0 1 0 0 1 1 0 0 0 1 1 1 +0 +1 0 0 0 0 1 0 1 0 0 1 0 1 +1 +0 1 1 1 0 0 0 0 0 0 0 1 0 +0 +0 0 1 1 1 1 1 0 1 1 1 0 0 +0 +0 0 1 0 1 1 1 1 0 0 1 1 0 +1 +1 1 1 0 0 1 1 0 1 1 0 0 0 +1 +1 1 1 0 0 0 0 0 1 1 0 0 0 +1 +0 0 0 0 0 1 0 0 1 0 1 0 0 +1 +0 1 1 1 1 1 1 0 0 1 1 0 0 +0 +1 1 1 0 1 0 0 1 0 1 0 1 0 +1 +1 0 1 0 1 0 0 1 1 1 0 0 0 +0 +0 0 1 1 1 0 1 1 0 1 0 1 0 +1 +1 1 0 1 0 1 1 0 1 1 0 0 1 +0 +1 0 1 0 1 0 0 0 0 0 0 0 0 +1 +1 1 1 1 0 0 0 1 1 1 1 0 1 +1 +0 0 1 0 1 1 0 0 1 0 0 0 1 +1 +0 0 1 1 1 0 1 0 0 0 0 1 1 +0 +0 1 0 1 0 0 0 0 0 0 0 1 1 +0 +0 0 0 0 0 1 0 0 0 1 0 1 1 +0 +0 0 0 0 1 1 0 1 0 0 1 1 1 +0 +1 1 0 1 1 1 0 0 0 0 1 0 1 +1 +1 1 0 1 1 1 1 1 0 1 1 0 0 +1 +1 1 0 1 0 0 1 0 1 1 0 1 1 +0 +1 1 1 1 0 1 0 1 0 0 1 1 0 +0 +1 1 0 0 0 0 1 0 1 1 0 0 0 +1 +0 0 0 0 0 0 0 0 0 1 0 0 0 +1 +0 0 1 0 1 1 1 1 1 1 0 1 1 +1 +0 0 0 0 1 0 1 1 0 0 1 0 0 +0 +1 0 1 0 0 1 1 0 1 0 0 0 1 +0 +1 1 0 0 0 1 1 0 0 1 0 1 0 +0 +1 1 0 1 1 1 1 1 1 1 0 0 0 +1 +0 1 0 0 0 0 1 0 0 0 1 1 0 +0 +0 1 1 1 1 1 1 1 0 0 0 1 1 +1 +0 0 0 1 0 1 1 1 1 1 0 1 0 +1 +1 1 0 1 1 1 1 1 0 0 0 0 0 +1 +0 1 0 1 1 1 1 1 0 1 1 0 0 +0 +0 0 0 1 0 0 0 0 0 1 0 0 1 +1 +1 0 1 1 0 0 1 0 1 0 0 0 0 +1 +0 0 0 1 1 0 1 0 1 0 1 0 1 +0 +0 0 0 0 1 0 1 1 0 1 0 1 1 +0 +0 1 0 0 1 0 0 0 0 0 0 1 1 +0 +0 1 1 0 0 1 1 1 1 1 1 1 1 +0 +1 1 1 0 1 0 0 1 1 1 0 0 0 +1 +0 0 1 1 1 1 0 0 1 0 0 0 0 +1 +0 0 1 0 0 0 0 1 0 0 1 1 0 +0 +0 0 1 0 0 1 1 1 1 1 0 1 0 +1 +1 0 1 0 1 1 1 0 1 0 1 0 0 +1 +0 0 0 1 1 0 1 1 1 1 1 1 0 +0 +0 1 1 1 1 1 0 1 1 0 1 0 1 +1 +1 0 1 0 1 1 0 0 0 1 1 0 1 +1 +1 1 0 1 0 0 0 1 0 0 1 1 1 +1 +1 1 0 0 1 0 0 1 0 0 1 0 0 +1 +1 1 0 1 1 1 0 0 1 1 1 1 1 +0 +0 0 0 0 1 1 0 0 0 0 1 0 1 +0 +0 0 0 1 0 1 0 1 0 1 1 0 1 +0 +0 0 1 0 1 1 0 0 1 0 1 1 1 +1 +0 0 0 0 0 1 0 0 1 0 0 1 0 +1 +0 0 0 0 1 0 1 1 1 1 0 1 0 +0 +1 0 0 1 1 1 1 0 1 1 0 0 0 +1 +1 1 0 1 0 1 1 1 1 0 1 0 1 +1 +0 1 0 1 0 1 1 0 1 0 0 0 0 +1 +0 0 1 0 1 1 0 0 1 0 1 0 0 +1 +1 0 0 1 1 1 0 1 1 0 0 0 0 +0 +1 1 1 1 0 1 1 1 1 0 1 1 1 +1 +0 0 0 0 1 1 0 0 1 1 1 0 1 +0 +0 0 0 0 0 0 0 0 1 1 1 1 1 +1 +1 0 0 1 0 1 1 1 0 0 1 0 0 +0 +0 1 1 1 0 1 1 1 0 1 0 0 1 +0 +0 1 1 0 0 1 0 0 0 0 0 1 0 +0 +0 1 1 0 1 0 1 0 1 1 1 0 0 +1 +0 1 0 0 0 1 0 1 1 0 0 1 0 +1 +0 0 0 1 0 1 0 1 1 0 0 0 0 +0 +0 1 0 1 0 0 1 0 1 0 0 1 1 +0 +0 1 1 1 0 1 0 0 0 1 0 0 0 +1 +0 1 0 1 1 0 0 0 0 0 1 0 0 +0 +1 1 1 0 0 0 1 0 0 1 0 0 0 +1 +0 0 0 0 1 1 0 1 0 1 0 0 0 +0 +0 0 0 0 1 1 1 1 0 0 0 1 0 +1 +0 0 1 0 1 1 0 0 0 1 0 0 0 +0 +1 1 0 0 0 1 0 0 1 0 1 1 1 +1 +1 1 1 1 1 1 0 1 0 0 0 1 1 +1 +0 0 0 0 0 1 1 1 0 1 0 0 1 +1 +1 1 1 0 0 1 1 1 0 1 1 0 1 +1 +1 1 0 1 1 1 1 0 0 1 1 1 0 +1 +0 1 0 0 1 1 0 0 0 0 0 1 0 +0 +1 1 1 1 0 1 0 1 0 0 0 0 1 +1 +0 0 1 0 1 0 0 0 1 1 0 1 0 +1 +1 1 0 1 1 1 0 1 1 1 1 0 1 +0 +1 1 0 1 1 1 0 1 1 1 0 1 0 +1 +1 0 1 0 0 0 1 1 0 1 0 0 0 +1 +0 1 1 0 1 1 1 1 0 0 1 0 0 +1 +1 1 0 1 0 0 1 0 1 1 0 0 0 +0 +1 0 1 0 0 1 1 0 1 1 0 0 1 +1 +1 1 0 0 0 1 1 0 1 1 1 1 0 +0 +0 0 0 0 0 0 1 0 1 0 1 1 0 +0 +0 1 0 1 1 0 0 1 1 0 0 0 1 +0 +0 0 1 0 0 1 1 0 0 1 1 1 0 +0 +0 0 1 0 0 1 0 0 0 1 1 0 0 +0 +0 1 1 0 0 0 0 1 0 0 1 1 1 +0 +0 0 1 1 0 0 1 1 0 0 1 1 0 +0 +1 1 1 0 1 0 1 0 1 1 0 0 0 +1 +0 0 1 1 1 0 1 1 1 0 0 1 1 +0 +0 0 1 1 1 0 0 0 0 0 0 1 1 +1 +1 1 0 0 1 0 0 1 0 0 0 1 0 +1 +1 0 1 0 0 1 0 0 0 0 1 0 1 +1 +1 0 1 1 1 0 0 1 1 0 1 0 0 +1 +0 0 0 1 0 1 0 1 1 1 0 0 1 +0 +0 0 1 1 0 1 1 0 0 1 0 1 1 +1 +1 1 1 1 0 1 0 1 0 0 0 1 0 +1 +1 1 1 0 1 0 0 1 0 1 1 1 1 +1 +0 0 1 0 1 1 1 0 0 0 1 0 0 +1 +0 0 0 1 0 0 1 1 0 0 0 1 1 +1 +1 1 0 0 0 1 1 1 0 1 1 1 0 +0 +0 0 0 0 1 0 1 0 1 0 1 0 0 +0 +1 1 1 0 0 0 1 1 0 1 1 1 0 +0 +1 1 1 0 0 0 1 0 0 0 1 0 1 +0 +1 0 1 0 1 0 0 0 1 1 0 0 0 +1 +0 1 0 0 0 0 1 0 1 0 0 1 0 +0 +1 1 0 1 1 1 0 1 1 1 1 1 0 +0 +1 1 1 1 1 0 1 1 0 0 1 0 1 +1 +1 1 1 1 0 1 1 0 1 1 0 0 1 +1 +1 0 0 1 1 0 0 0 1 0 0 0 0 +0 +0 1 0 0 0 1 0 0 0 1 1 0 1 +1 +1 1 0 1 1 0 0 1 1 1 1 0 1 +1 +1 0 1 0 0 0 1 1 1 1 0 1 0 +1 +1 0 0 0 1 0 1 0 1 0 0 0 1 +1 +1 1 0 1 0 0 0 0 1 1 1 0 1 +1 +1 0 0 0 0 1 1 1 0 1 1 1 1 +0 +1 0 1 1 1 0 1 0 0 1 0 1 0 +1 +0 0 1 1 1 0 0 0 1 0 0 0 0 +0 +1 1 1 1 0 0 0 1 0 1 1 1 0 +0 +0 0 1 0 0 1 0 1 1 1 0 1 0 +0 +0 1 1 0 0 0 0 0 1 0 1 1 1 +0 +1 1 1 1 1 1 0 0 1 1 0 0 0 +0 +0 0 1 0 0 0 0 1 0 0 0 0 1 +1 +0 0 1 0 0 1 0 1 0 0 1 0 1 +1 +1 1 0 1 1 0 0 0 0 1 0 0 0 +1 +1 1 0 0 1 0 0 0 1 1 1 0 1 +1 +1 0 1 1 0 1 1 1 1 1 1 0 0 +1 +1 1 1 1 0 1 1 1 0 1 1 1 1 +1 +0 1 0 1 1 0 1 0 1 1 0 1 1 +0 +1 0 1 0 0 1 0 1 0 1 1 0 0 +0 +1 1 1 0 1 1 1 1 1 0 0 1 0 +1 +0 0 1 1 0 0 0 0 0 0 0 0 0 +0 +0 0 1 0 0 0 0 1 1 1 0 0 1 +1 +1 0 0 0 1 1 1 1 0 0 0 1 0 +0 +0 0 0 0 0 0 0 1 1 0 1 0 0 +1 +1 0 1 0 1 0 0 1 0 1 1 0 0 +0 +1 0 1 1 1 1 0 0 0 1 0 1 0 +1 +1 0 1 0 0 1 1 1 0 0 1 1 0 +1 +1 0 1 0 1 0 0 0 0 0 0 1 0 +0 +0 0 1 1 0 0 0 1 1 0 0 0 1 +1 +1 0 0 0 1 1 1 0 0 1 0 1 0 +0 +0 0 1 0 1 0 0 0 1 1 1 0 0 +1 +0 1 0 1 1 1 1 1 1 0 1 0 0 +0 +1 0 1 1 1 1 0 0 0 0 1 0 0 +0 +0 0 1 1 0 1 1 0 0 0 0 1 0 +1 +1 0 1 0 0 0 0 0 1 0 1 1 1 +0 +1 0 0 1 0 0 0 1 1 1 1 0 0 +0 +0 1 1 0 0 0 0 1 0 0 1 0 1 +1 +1 1 0 0 1 0 1 1 1 0 0 1 1 +0 +0 1 0 0 0 1 0 1 1 1 0 1 1 +1 +1 1 1 0 0 1 1 1 1 1 0 0 0 +0 +0 1 0 1 1 0 0 0 1 0 0 1 1 +0 +0 1 1 1 1 0 0 1 0 1 1 0 1 +0 +0 0 0 0 0 0 1 0 1 1 0 1 0 +0 +0 1 1 0 1 1 1 1 1 1 0 1 1 +0 +1 0 0 1 1 1 1 0 0 0 1 0 1 +1 +1 0 1 0 1 1 0 1 1 0 0 0 0 +0 +0 1 1 0 1 1 0 0 0 0 0 0 1 +1 +1 1 0 1 1 1 0 0 1 1 1 0 1 +1 +0 1 0 1 0 1 0 1 0 0 1 0 0 +1 +0 0 1 1 1 0 1 0 1 1 1 0 1 +0 +0 1 0 0 1 0 0 1 1 0 0 0 1 +1 +0 1 1 0 1 1 0 0 1 1 1 1 1 +1 +0 1 0 0 0 0 1 0 1 0 0 0 0 +1 +1 0 0 0 1 1 0 0 1 1 1 0 0 +0 +1 1 0 0 0 1 1 1 0 1 1 1 1 +1 +0 1 0 0 0 1 1 1 0 0 1 1 0 +0 +0 1 1 1 1 1 0 1 0 1 1 0 0 +0 +0 0 1 0 0 1 1 1 1 1 0 0 0 +0 +0 1 1 1 1 0 0 1 0 1 0 1 0 +1 +0 1 1 0 0 0 0 0 0 1 1 0 0 +0 +0 1 0 0 1 1 0 0 1 1 1 1 1 +0 +1 0 1 0 1 0 0 0 1 0 1 1 0 +0 +1 0 0 1 0 0 1 0 1 0 0 0 1 +1 +1 0 1 1 1 1 1 1 0 1 0 1 0 +1 +0 1 0 1 0 0 1 1 0 1 0 0 0 +1 +0 1 0 1 1 1 1 1 0 0 1 1 1 +1 +1 1 1 1 1 1 1 1 1 0 1 1 0 +1 +0 1 1 1 1 0 0 0 0 0 0 1 0 +1 +1 0 0 1 0 1 1 1 0 0 0 0 0 +1 +1 0 0 1 0 0 1 0 0 1 0 0 0 +0 +0 1 0 0 1 1 0 1 1 1 0 1 1 +0 +0 1 0 0 0 1 0 1 0 0 0 0 1 +0 +1 0 0 0 1 1 0 0 1 0 1 1 0 +0 +0 0 1 0 1 0 1 0 0 1 1 0 0 +1 +0 0 0 1 0 0 1 0 1 1 0 0 1 +1 +0 1 1 0 0 1 0 0 1 1 1 0 0 +0 +0 1 0 0 1 1 1 1 1 1 0 1 0 +0 +1 1 0 1 0 1 0 1 0 0 1 1 0 +1 +1 0 1 0 1 0 1 1 1 0 1 1 1 +1 +0 1 0 1 1 1 0 1 1 1 0 1 0 +0 +0 1 1 0 0 1 0 1 1 0 1 1 0 +1 +0 0 0 1 0 1 0 1 1 1 1 0 0 +0 +1 1 1 1 0 0 1 0 1 0 0 0 0 +0 +1 1 1 1 0 1 0 0 0 1 1 1 1 +1 +1 0 0 0 1 1 1 1 0 1 1 0 0 +1 +1 1 1 0 0 0 0 0 0 1 0 1 0 +1 +0 1 1 1 0 0 0 1 1 1 0 1 0 +1 +1 1 0 1 1 0 1 0 0 0 1 1 0 +1 +1 0 1 1 1 1 0 1 0 0 0 0 0 +0 +1 0 1 1 0 1 0 0 0 1 1 0 1 +1 +1 1 0 1 1 0 0 1 0 1 0 0 0 +0 +1 0 0 1 0 0 0 0 1 0 1 1 1 +0 +1 0 1 1 0 0 0 0 1 1 0 0 1 +0 +1 0 1 0 0 1 1 1 1 1 0 0 1 +0 +0 1 1 0 0 0 0 0 0 0 0 1 0 +1 +0 1 0 0 1 0 0 1 0 0 1 1 1 +0 +0 0 0 0 1 1 1 0 0 0 1 0 0 +0 +1 1 1 1 0 1 0 1 1 0 1 1 1 +0 +1 0 0 1 0 0 0 1 1 0 1 0 1 +0 +0 0 0 1 1 0 0 0 0 1 0 1 0 +0 +0 0 1 0 0 0 0 1 1 0 1 1 0 +1 +0 0 0 0 1 1 1 1 1 1 1 0 0 +1 +1 0 0 0 0 1 1 1 1 1 1 1 0 +0 +1 0 1 1 0 1 0 1 1 1 1 0 0 +0 +1 1 1 1 0 1 1 1 0 0 1 0 1 +1 +1 0 0 0 1 1 0 1 0 1 0 0 1 +0 +0 1 1 1 1 1 0 0 0 0 0 0 0 +1 +0 1 1 1 0 0 0 1 0 1 1 0 0 +0 +0 1 0 0 1 1 0 0 0 1 1 1 1 +1 +1 1 0 1 0 0 0 1 1 1 0 1 1 +0 +1 0 1 1 0 0 0 1 1 0 1 1 1 +0 +1 0 1 0 1 0 1 1 0 0 0 1 0 +0 +0 0 1 0 0 0 1 1 1 1 0 0 1 +0 +0 0 0 0 1 1 0 0 0 1 1 1 0 +1 +0 1 1 0 1 1 0 1 1 0 1 1 0 +0 +0 0 0 0 0 1 0 0 0 1 1 1 0 +0 +1 1 1 1 1 1 1 1 1 0 0 1 0 +0 +0 1 0 1 1 0 0 0 1 0 1 0 0 +1 +0 0 1 1 0 1 1 0 1 0 1 0 0 +0 +1 1 0 1 0 0 0 1 1 1 0 0 1 +1 +0 0 1 0 0 1 1 1 1 0 0 0 0 +1 +1 1 1 0 0 0 0 0 0 0 0 1 0 +0 +1 0 1 1 1 0 1 1 0 0 1 0 0 +1 +0 1 0 1 0 0 0 0 1 1 0 1 0 +1 +0 0 1 1 0 1 1 1 1 1 0 1 1 +1 +1 0 1 0 0 0 1 0 0 0 0 1 0 +0 +1 1 0 0 0 1 0 0 1 1 0 0 1 +0 +0 1 1 1 1 1 0 1 0 1 1 1 1 +0 +1 1 0 1 1 0 0 1 0 1 0 1 0 +1 +0 1 1 0 0 0 0 1 1 1 0 1 0 +0 +1 1 0 0 0 0 1 1 0 0 1 1 0 +0 +1 0 0 0 1 0 1 0 1 0 1 0 1 +0 +1 0 1 0 0 0 0 0 0 1 0 1 0 +0 +0 0 1 0 0 1 1 1 0 0 1 1 1 +1 +1 1 0 1 0 1 0 0 1 0 0 0 0 +1 +0 0 1 0 1 1 1 1 1 0 0 0 0 +0 +0 0 1 1 0 0 1 1 1 1 1 1 0 +0 +1 1 0 0 1 1 0 0 0 0 1 1 0 +0 +1 1 1 0 1 1 0 1 1 1 0 1 1 +0 +1 0 0 1 1 0 0 1 0 1 1 0 0 +0 +0 0 1 0 1 0 0 0 1 1 1 1 1 +1 +0 1 1 1 1 1 1 1 0 0 0 1 0 +0 +1 1 1 0 1 0 0 0 1 1 1 1 0 +0 +1 0 1 1 0 0 0 1 0 0 0 1 0 +1 +1 1 0 0 1 0 1 1 1 1 1 0 0 +0 +1 0 0 1 1 0 1 1 1 0 1 1 1 +1 +1 1 0 1 1 1 0 1 1 1 0 0 0 +0 +1 1 1 0 1 1 1 1 1 1 1 1 0 +1 +0 1 1 1 1 0 1 0 0 0 1 0 1 +1 +0 0 1 0 1 0 0 1 0 1 1 0 0 +1 +0 0 0 1 1 1 0 0 1 0 1 0 0 +1 +0 1 1 1 1 0 0 1 0 0 1 0 0 +0 +0 1 1 1 0 0 0 0 1 0 0 0 0 +0 +0 1 1 0 1 1 1 1 0 0 0 1 1 +0 +0 1 0 1 0 1 0 0 0 0 0 0 0 +1 +0 1 1 1 0 1 1 0 1 1 0 1 1 +1 +1 0 0 0 0 0 1 0 0 1 0 1 0 +0 +0 1 1 1 0 0 1 0 1 0 0 1 1 +1 +1 1 0 1 0 0 1 1 1 0 0 0 0 +0 +1 1 0 0 1 1 1 0 1 0 1 1 0 +0 +0 1 1 1 1 0 0 0 0 0 0 0 1 +1 +0 0 0 1 0 0 1 0 1 0 1 1 1 +0 +0 1 0 1 1 1 1 1 0 1 0 0 0 +1 +1 0 0 1 0 0 1 0 1 1 1 1 0 +1 +1 0 0 1 0 1 1 0 1 1 1 1 0 +0 +1 0 1 0 1 0 1 0 0 1 0 1 0 +0 +1 1 0 0 0 1 0 0 0 1 1 1 1 +1 +0 1 0 1 1 1 1 1 1 0 0 1 0 +0 +0 0 1 0 1 1 1 0 0 0 0 0 0 +0 +0 1 0 1 1 0 1 1 1 0 0 1 1 +0 +1 0 0 1 0 1 1 0 0 1 1 1 1 +0 +1 1 1 1 1 1 1 0 1 0 1 1 0 +0 +0 1 1 1 1 0 1 0 1 0 1 1 0 +0 +0 1 0 1 1 0 1 1 0 1 0 1 1 +0 +0 1 1 1 1 1 1 0 1 0 0 0 1 +0 +1 1 0 0 0 0 0 0 0 0 0 1 0 +1 +1 0 1 0 0 1 0 0 1 1 1 1 0 +1 +1 1 0 0 1 1 0 1 1 1 0 1 0 +0 +1 0 1 1 1 0 1 1 1 0 1 1 0 +1 +0 0 1 0 0 0 0 1 1 1 0 0 0 +0 +0 1 1 0 0 1 0 1 0 1 0 0 0 +1 +1 1 0 1 0 0 0 0 1 1 0 1 0 +0 +0 0 1 0 1 0 0 1 0 0 1 0 0 +0 +1 0 0 0 0 1 0 1 0 1 0 1 1 +0 +0 0 1 0 0 1 0 0 0 0 0 0 0 +0 +1 0 0 1 1 0 0 1 1 0 1 0 1 +1 +1 1 0 1 0 1 0 0 1 0 0 0 1 +0 +0 1 1 1 0 1 1 1 0 0 0 1 1 +0 +1 1 1 0 1 0 1 0 1 1 1 1 0 +1 +0 0 1 1 0 1 0 0 1 0 0 1 1 +0 +0 1 1 1 0 1 1 1 0 1 0 1 0 +0 +1 1 0 1 1 0 0 1 0 0 1 0 1 +1 +0 0 1 1 1 1 0 1 0 1 1 0 0 +1 +0 0 1 0 1 1 0 0 1 1 1 0 0 +0 +1 0 0 0 0 1 1 0 0 0 0 0 1 +0 +1 0 1 0 0 1 0 0 0 1 1 0 1 +0 +1 1 1 1 0 0 1 1 0 1 1 1 0 +1 +0 0 0 1 0 0 0 0 0 1 0 0 0 +0 +0 1 1 0 0 1 1 1 1 0 0 0 1 +1 +1 0 0 1 0 1 1 1 1 1 0 1 1 +1 +0 0 1 1 1 1 0 0 0 1 1 0 1 +1 +0 1 1 1 1 0 1 0 0 0 1 1 0 +1 +0 1 1 1 0 1 1 0 0 0 0 1 0 +0 +0 0 0 0 0 1 1 0 1 1 1 1 0 +0 +0 1 0 0 1 0 0 1 1 1 0 1 0 +0 +0 1 0 0 1 0 1 1 0 1 0 0 1 +0 +0 1 0 0 1 1 0 1 0 1 0 1 0 +0 +0 0 0 0 1 0 1 1 0 0 1 1 0 +1 +1 0 1 0 0 0 0 1 0 1 1 1 1 +1 +0 1 0 1 1 1 1 1 1 0 1 0 1 +1 +0 0 1 0 1 0 1 0 0 0 0 0 1 +0 +0 0 1 0 0 0 0 0 0 1 1 1 1 +1 +0 0 0 0 0 0 0 0 1 1 0 1 1 +0 +0 0 0 0 1 0 1 1 0 0 0 1 0 +0 +0 0 1 0 1 0 1 1 0 0 1 1 1 +1 +0 1 1 0 0 1 1 0 1 0 0 0 1 +0 +0 1 0 0 0 0 0 1 0 1 0 1 0 +0 +0 1 0 1 0 1 1 0 0 0 1 0 1 +0 +0 0 0 1 1 0 0 1 1 1 1 1 0 +1 +1 0 1 0 1 0 1 1 0 1 0 0 0 +0 +0 0 0 1 0 1 0 1 1 1 0 1 0 +0 +1 1 1 0 0 0 0 1 0 1 0 1 1 +1 +1 0 0 0 1 0 1 1 1 0 0 0 1 +0 +0 0 1 1 1 0 1 0 0 0 1 1 0 +0 +0 1 0 1 0 1 1 1 0 0 0 1 1 +1 +0 0 1 1 1 0 1 1 1 1 1 1 1 +0 +0 1 1 0 1 1 1 0 1 1 1 0 1 +1 +0 0 0 0 0 1 0 0 1 0 0 0 1 +1 +0 1 1 1 0 0 0 1 1 1 1 0 0 +1 +0 0 0 0 0 0 0 1 0 1 1 0 1 +0 +0 1 1 0 0 0 0 0 0 0 1 1 1 +1 +1 1 0 1 0 1 0 1 0 0 0 0 1 +0 +1 0 0 1 1 1 0 0 0 1 0 1 1 +1 +0 0 1 1 1 1 1 0 0 0 1 0 1 +1 +1 0 1 1 1 0 0 1 0 1 0 0 0 +0 +1 1 0 1 0 0 0 0 0 0 0 0 1 +0 +0 1 1 1 0 0 1 1 0 0 0 0 0 +1 +0 0 0 0 1 1 1 0 0 1 0 0 1 +1 +1 0 0 1 1 0 1 0 1 0 1 1 0 +1 +0 0 1 1 1 1 1 1 0 1 0 0 0 +1 +0 0 0 1 1 1 0 0 0 0 1 0 0 +0 +1 1 0 0 1 1 0 0 1 1 1 1 1 +1 +1 1 0 0 1 1 0 1 1 0 0 1 0 +1 +0 1 0 0 1 0 1 1 0 0 1 0 1 +0 +1 0 1 0 0 0 1 0 0 1 0 0 1 +1 +1 1 0 0 0 0 0 0 0 1 1 0 0 +0 +0 0 1 1 0 1 1 1 0 0 0 1 0 +0 +1 1 1 0 1 0 0 0 1 0 1 1 1 +0 +1 0 0 0 1 0 1 1 0 1 1 0 1 +1 +1 0 1 0 0 0 0 1 0 0 0 1 1 +1 +0 0 0 0 0 0 0 0 1 1 0 1 0 +1 +0 1 0 1 0 1 0 1 0 0 1 1 1 +1 +0 1 0 1 1 1 0 0 1 1 0 1 0 +1 +0 1 1 0 0 1 1 0 1 0 1 0 0 +0 +1 0 0 0 1 1 1 1 1 0 1 1 1 +1 +0 0 1 1 1 1 1 0 1 1 0 1 1 +1 +0 0 0 0 0 0 1 1 1 1 1 0 1 +0 +1 1 0 0 0 0 1 1 1 1 0 1 1 +0 +0 1 0 0 1 0 1 0 1 0 0 0 1 +1 +1 1 1 1 1 0 1 1 0 0 1 0 0 +0 +1 0 1 0 0 0 0 1 0 1 1 0 0 +1 +0 0 1 0 0 1 1 1 1 0 1 0 0 +0 +0 1 1 0 0 1 1 0 0 0 1 1 1 +1 +0 1 0 1 1 0 1 1 1 1 1 1 1 +0 +1 1 0 1 1 1 0 0 0 0 0 1 0 +0 +1 1 0 1 0 0 0 0 0 0 1 1 1 +0 +0 0 0 1 0 1 1 1 0 1 0 0 0 +1 +0 0 1 1 0 1 0 1 1 1 1 1 0 +0 +0 0 0 0 1 0 0 0 0 1 1 0 0 +1 +0 1 0 1 0 1 0 0 0 0 1 0 0 +0 +1 1 0 0 0 0 0 1 1 1 1 0 0 +0 +1 0 0 1 0 1 1 0 0 0 0 0 1 +1 +0 0 0 1 1 0 1 1 0 1 0 1 1 +1 +1 1 1 1 0 1 0 0 1 1 1 0 1 +1 +0 1 0 1 1 1 0 0 0 1 1 1 1 +0 +1 1 1 1 1 1 1 1 1 0 1 1 1 +0 +1 1 1 1 0 1 0 1 1 1 0 0 0 +0 +1 1 1 0 0 1 0 0 1 1 1 0 0 +1 +0 0 1 0 0 0 1 1 0 1 1 1 0 +0 +1 1 0 0 1 0 0 1 1 1 0 0 0 +0 +1 1 1 0 1 0 1 0 0 1 1 0 1 +0 +0 0 1 1 1 0 0 0 1 1 1 1 1 +0 +1 1 1 1 1 0 0 0 1 1 1 1 0 +1 +1 0 0 1 0 0 1 1 0 1 0 0 0 +1 +1 0 1 1 0 1 1 0 1 1 1 0 1 +1 +1 0 1 1 0 0 0 1 1 0 0 1 1 +1 +1 1 0 0 1 0 0 0 1 0 0 1 0 +1 +0 0 0 0 1 0 0 0 1 0 1 0 0 +1 +1 0 1 1 0 0 0 1 1 1 0 0 1 +1 +1 1 0 0 1 0 1 1 1 0 0 1 0 +1 +1 1 0 1 1 1 1 0 1 0 1 0 0 +0 +1 0 0 1 0 0 0 1 0 0 0 0 1 +0 +0 1 0 0 1 1 1 0 1 1 0 1 1 +0 +0 1 0 0 1 0 1 0 1 0 0 1 0 +1 +1 0 0 1 1 1 1 1 0 1 0 1 0 +0 +1 0 0 0 1 1 0 0 0 0 0 0 0 +1 +1 0 0 0 0 0 1 1 1 1 0 0 1 +0 +1 1 1 0 0 0 1 1 0 0 0 0 1 +0 +0 0 0 0 0 1 1 1 1 0 1 0 1 +0 +0 1 1 0 1 0 0 1 1 1 0 0 1 +1 +1 1 0 0 0 0 0 1 0 1 1 1 1 +1 +1 1 1 0 0 1 1 0 0 1 0 1 0 +1 +0 1 1 0 1 1 1 1 1 1 0 1 0 +1 +1 0 1 1 0 1 1 1 1 0 0 1 0 +0 +1 0 1 1 0 1 0 1 0 1 0 1 0 +1 +0 0 1 0 0 0 0 1 1 0 0 1 1 +1 +0 0 1 1 0 1 1 1 1 1 1 0 0 +0 +0 0 1 1 0 1 0 1 1 1 1 0 0 +1 +1 1 1 0 1 1 0 0 1 1 0 0 0 +1 +0 1 1 1 0 1 1 0 1 0 1 1 0 +0 +0 0 0 1 0 1 1 0 0 0 0 1 0 +0 +0 1 1 0 1 0 0 0 0 0 1 1 0 +1 +0 1 0 1 0 0 0 0 1 0 1 0 1 +1 +0 0 0 1 1 1 1 1 1 1 1 0 1 +1 +1 0 0 0 1 0 1 0 0 1 0 1 0 +1 +1 1 1 0 1 1 1 0 0 0 1 1 0 +0 +1 0 0 1 0 0 0 0 1 0 1 0 0 +0 +1 0 0 0 1 0 1 1 0 1 1 0 0 +0 +1 1 0 1 1 1 0 0 0 0 1 1 1 +0 +0 0 0 1 1 0 1 0 1 0 1 1 0 +0 +0 1 1 1 0 1 1 1 0 0 0 0 1 +1 +0 1 0 1 0 0 0 1 1 0 1 0 1 +0 +0 1 1 1 0 0 0 0 0 1 1 1 0 +0 +1 0 1 0 1 0 0 1 0 1 1 1 0 +1 +1 1 0 1 0 1 1 1 1 1 1 1 0 +0 +1 1 0 0 0 1 0 0 1 0 0 1 1 +0 +1 0 1 0 1 1 0 1 1 1 1 0 0 +0 +0 0 1 1 0 1 1 0 0 1 0 0 0 +1 +1 0 0 1 0 0 1 0 0 1 0 1 0 +1 +1 1 0 1 0 1 1 0 1 0 0 0 1 +1 +0 0 1 0 0 1 0 0 1 1 0 0 1 +1 +1 1 0 1 0 1 0 1 1 0 0 0 0 +0 +1 1 1 1 0 1 0 0 0 0 0 0 1 +0 +0 0 0 1 0 1 1 0 1 0 1 1 1 +1 +0 1 0 1 1 1 0 1 0 1 0 0 1 +1 +1 0 1 1 0 1 0 1 0 0 0 0 0 +1 +1 1 0 1 0 0 1 1 0 1 0 0 1 +1 +1 1 1 0 1 0 0 1 0 1 1 1 0 +0 +0 0 1 0 1 0 0 1 1 1 0 1 0 +0 +1 0 1 0 0 1 1 0 1 0 0 1 1 +1 +1 1 1 1 0 1 1 1 0 0 1 1 0 +1 +1 1 0 0 0 0 1 0 0 1 1 1 0 +0 +1 0 0 1 1 0 0 1 0 0 0 1 0 +1 +1 1 1 1 0 1 1 0 0 1 0 1 0 +0 +0 1 0 0 0 0 1 1 0 0 1 0 0 +0 +1 1 1 0 0 1 1 0 1 1 1 1 0 +1 +0 1 0 1 0 1 0 0 1 1 1 1 1 +0 +0 1 0 0 1 0 1 1 0 1 0 1 0 +0 +0 0 0 1 0 0 0 0 0 0 0 1 0 +0 +0 1 1 1 0 1 0 1 0 0 1 0 1 +1 +1 1 0 0 0 1 0 1 1 0 0 0 0 +1 +0 0 0 0 0 0 1 1 0 0 0 0 1 +1 +1 0 0 1 1 0 0 1 1 1 1 0 0 +1 +1 1 1 1 1 0 1 0 1 0 0 0 0 +1 +0 1 1 1 1 0 1 0 0 1 1 1 1 +1 +0 0 0 1 1 1 1 0 0 1 0 1 0 +0 +0 1 1 0 1 0 0 0 0 0 1 0 0 +0 +1 1 0 1 0 1 0 0 1 1 0 0 0 +0 +1 1 0 0 0 0 0 1 0 0 0 0 0 +1 +0 0 1 1 0 0 1 0 1 1 1 1 0 +1 +0 0 1 0 1 1 0 0 0 1 0 1 1 +0 +1 1 0 0 1 1 1 1 1 1 0 1 1 +0 +0 1 1 1 0 0 1 0 0 0 0 1 0 +1 +0 1 0 1 1 0 0 0 1 1 1 1 1 +0 +1 1 1 1 0 1 1 1 1 0 0 0 1 +1 +1 1 0 0 1 0 1 1 0 1 0 1 0 +1 +1 0 0 1 1 1 1 0 0 0 0 0 0 +1 +1 1 0 0 0 0 1 0 0 0 1 1 0 +1 +1 0 0 0 1 0 0 0 0 0 0 0 0 +0 +0 0 0 0 1 0 1 1 1 1 1 1 1 +0 +1 0 0 0 0 1 0 1 0 1 1 0 0 +1 +1 1 1 1 0 1 0 0 0 0 0 1 0 +0 +0 1 1 0 1 0 1 0 1 0 1 1 0 +1 +0 0 1 1 0 0 1 1 0 0 1 0 1 +0 +1 0 1 1 1 0 1 0 0 0 1 0 1 +1 +0 1 0 0 1 0 0 1 0 1 1 1 1 +1 +1 0 0 0 1 0 1 1 1 0 1 0 0 +0 +1 1 1 1 1 1 0 0 0 0 0 1 0 +1 +0 0 1 0 0 1 1 1 1 1 0 1 1 +0 +1 0 0 1 1 0 1 1 1 0 1 1 0 +0 +1 0 1 1 0 0 1 1 1 1 1 1 0 +1 +1 1 1 1 1 0 0 1 1 1 1 0 0 +1 +1 1 0 0 0 1 0 1 1 0 1 1 1 +0 +1 0 1 1 0 1 1 1 0 0 1 0 0 +1 +0 1 1 0 0 0 1 1 1 0 0 1 0 +0 +1 0 1 1 1 0 0 1 1 0 1 0 1 +0 +1 1 1 1 1 0 0 0 1 0 0 1 0 +1 +0 1 1 1 1 1 0 1 0 1 1 0 1 +1 +0 1 0 1 0 1 0 0 0 1 0 1 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 1 0 0 +1 +1 0 0 0 0 0 0 0 1 1 0 1 0 +0 +1 1 0 0 0 0 1 0 0 0 1 0 0 +0 +1 1 1 1 0 1 0 0 0 1 1 0 1 +0 +0 1 1 1 0 1 1 1 0 0 0 1 0 +1 +0 0 0 1 0 0 1 1 0 1 0 0 0 +0 +1 1 0 1 0 1 1 0 1 1 1 0 0 +0 +1 1 1 0 1 1 0 0 1 0 1 0 1 +0 +1 0 1 0 0 0 1 1 1 0 0 0 0 +1 +0 0 1 1 0 0 1 1 0 1 0 1 0 +0 +0 1 1 1 0 1 0 1 0 0 0 0 1 +0 +0 0 0 0 1 1 1 1 1 0 1 1 0 +1 +0 1 1 0 1 1 0 0 0 1 1 1 0 +1 +1 1 1 1 1 0 1 0 1 0 1 0 1 +1 +0 0 1 1 1 1 1 1 0 1 0 1 1 +1 +0 1 0 1 1 0 1 1 1 1 0 0 1 +0 +0 0 0 1 1 1 0 0 0 1 1 1 0 +0 +0 1 1 1 1 0 0 0 0 0 1 1 0 +0 +1 1 0 0 0 1 0 0 1 1 1 1 1 +0 +0 1 0 1 1 0 0 0 1 0 1 1 0 +0 +0 1 1 0 0 1 0 1 0 1 1 1 0 +1 +1 0 1 1 0 0 1 1 0 1 1 1 0 +0 +1 1 1 0 1 1 0 1 0 0 0 0 0 +0 +0 0 1 1 1 0 1 1 1 1 1 0 0 +0 +1 1 1 1 0 0 1 1 1 0 1 0 0 +0 +0 0 0 0 0 1 1 1 1 1 1 0 1 +1 +1 0 1 0 0 1 1 0 1 0 1 1 1 +0 +0 1 1 1 0 0 1 1 1 1 1 0 0 +0 +0 0 0 1 1 0 0 1 0 0 0 0 0 +1 +0 0 0 1 1 1 1 0 1 0 1 1 1 +0 +1 0 0 0 0 0 1 1 0 1 1 0 0 +1 +0 1 0 0 1 0 1 0 0 1 1 1 1 +1 +1 0 1 0 1 0 1 0 0 0 1 0 0 +1 +0 0 1 1 0 1 1 0 1 1 0 1 0 +1 +0 1 1 1 1 1 1 0 0 0 1 1 0 +0 +1 1 0 1 1 0 1 0 1 1 1 0 0 +0 +0 1 0 1 1 1 1 1 1 1 0 0 0 +0 +1 0 1 0 0 0 1 0 0 0 1 1 0 +1 +1 0 1 1 0 1 1 1 1 1 0 0 1 +1 +0 0 0 0 1 1 0 1 1 1 1 0 0 +0 +0 0 1 0 0 0 0 0 1 0 0 0 1 +1 +0 1 1 1 1 1 1 1 1 0 0 0 1 +1 +0 1 1 0 1 1 1 0 1 0 1 0 0 +1 +1 1 1 1 1 1 0 0 0 0 1 1 0 +0 +0 0 1 1 1 1 1 0 0 1 0 0 1 +1 +0 1 1 0 1 1 0 1 1 0 0 1 1 +0 +1 1 1 0 0 0 1 0 0 0 0 0 0 +0 +0 1 0 0 0 1 0 0 0 1 0 0 0 +1 +0 1 1 0 1 0 0 0 1 0 1 0 0 +1 +0 0 1 1 0 0 1 0 0 0 0 0 0 +1 +0 0 1 1 0 1 1 0 0 0 1 1 0 +0 +1 0 0 0 1 1 1 0 1 1 1 0 1 +0 +0 1 1 1 0 0 1 1 1 0 1 1 0 +0 +1 0 0 1 1 1 1 1 1 1 0 1 0 +1 +0 0 1 1 1 1 1 0 1 0 0 1 1 +0 +1 1 1 0 1 1 1 1 1 0 0 0 0 +0 +0 1 0 1 0 1 1 0 1 0 1 0 1 +1 +1 1 0 1 0 0 0 1 1 0 1 0 0 +0 +1 0 0 1 0 0 1 1 0 0 0 0 1 +1 +0 1 1 1 1 0 1 0 1 1 0 1 1 +1 +0 0 1 1 1 1 0 0 0 0 1 0 1 +0 +0 1 0 0 0 0 0 0 0 0 0 0 1 +0 +0 1 1 1 1 0 1 1 1 1 1 1 1 +1 +0 1 0 0 1 1 0 1 1 0 0 0 1 +0 +1 1 1 0 0 1 0 1 0 1 0 0 0 +0 +0 0 1 1 1 1 1 1 1 1 0 1 0 +1 +0 0 0 0 0 1 0 0 0 1 1 0 0 +1 +0 0 1 1 0 1 1 1 0 1 0 0 1 +1 +1 1 0 0 1 1 1 1 1 0 1 1 1 +0 +1 1 0 1 1 0 0 0 1 1 1 1 1 +1 +1 0 1 1 0 0 1 0 1 1 1 1 1 +1 +1 0 0 1 0 0 1 1 1 0 1 1 0 +1 +0 1 0 1 1 0 1 0 0 1 0 1 1 +1 +0 0 1 0 1 1 0 1 1 0 1 1 0 +1 +1 0 0 1 0 0 0 1 0 1 0 1 1 +0 +1 0 1 1 1 1 0 0 1 1 1 1 1 +0 +1 1 1 1 0 0 1 1 1 1 1 1 1 +1 +0 1 0 0 0 0 1 1 1 1 0 1 1 +1 +0 0 0 0 1 1 0 0 1 0 0 0 1 +0 +0 0 1 1 0 0 1 1 1 0 1 0 0 +0 +1 1 1 0 1 0 0 0 0 1 1 1 1 +0 +1 1 1 1 1 0 0 1 0 1 0 0 1 +0 +1 1 0 0 1 0 0 0 1 0 0 0 0 +0 +0 0 1 0 1 0 1 1 1 1 0 0 1 +1 +0 0 0 1 1 0 0 1 0 1 1 1 1 +1 +0 0 1 0 0 0 0 1 0 0 1 1 1 +1 +1 0 0 0 0 1 1 0 1 1 1 1 0 +1 +1 0 1 0 1 0 1 1 0 1 0 0 1 +1 +1 0 0 1 0 0 1 0 0 0 1 0 0 +0 +0 0 1 1 1 1 0 1 0 1 0 0 1 +1 +0 1 0 1 0 1 0 1 1 1 0 1 0 +1 +1 0 1 1 1 1 0 0 1 1 1 0 0 +0 +0 1 1 1 1 1 0 1 0 1 0 0 0 +1 +1 1 0 1 1 0 0 1 1 0 1 0 0 +1 +1 1 1 1 1 1 0 1 0 0 1 1 0 +1 +0 1 0 0 0 0 0 0 0 1 0 0 0 +0 +0 1 1 1 1 1 1 0 0 0 0 0 0 +0 +0 1 0 1 0 0 1 0 0 0 0 0 0 +1 +1 0 0 1 0 1 1 1 1 1 1 1 0 +1 +0 1 0 0 0 0 1 0 0 0 0 0 1 +1 +1 1 0 1 0 0 1 0 0 1 1 0 1 +1 +1 0 1 0 0 1 1 1 1 0 1 0 1 +0 +0 1 1 0 1 0 0 1 1 1 0 1 1 +0 +1 0 1 1 0 1 0 0 0 0 0 1 0 +1 +0 0 1 1 0 0 0 1 0 0 0 0 0 +1 +1 0 0 1 1 0 1 0 0 1 1 0 0 +0 +0 1 0 1 1 0 0 1 0 0 0 0 1 +1 +1 0 0 1 0 0 1 0 0 1 0 0 1 +1 +0 0 1 0 0 0 0 0 1 1 0 0 0 +1 +0 0 1 0 0 1 1 0 1 1 1 0 0 +0 +1 0 0 0 0 1 0 0 0 1 1 0 1 +1 +0 1 1 0 0 0 1 0 1 0 0 0 1 +1 +1 0 1 1 0 1 0 0 1 1 0 0 1 +1 +0 0 1 0 1 0 1 1 1 1 1 0 1 +0 +1 1 0 0 1 0 0 1 1 0 1 0 1 +1 +0 1 1 0 0 0 1 1 1 0 0 0 1 +0 +1 0 0 1 1 1 0 1 0 1 1 0 0 +1 +0 1 0 1 1 1 1 0 0 1 1 1 0 +0 +0 0 1 0 1 1 1 1 0 1 0 1 0 +1 +0 1 0 1 0 0 0 1 1 0 1 1 0 +0 +0 1 1 0 0 0 1 0 0 0 0 0 1 +0 +1 0 1 0 1 1 0 0 0 0 0 1 0 +1 +0 0 1 0 1 0 1 0 1 1 0 0 1 +0 +0 1 1 1 1 0 1 1 0 0 0 1 1 +0 +1 0 0 0 0 1 0 0 1 1 0 1 1 +0 +0 1 1 0 1 0 1 0 1 0 1 0 1 +1 +0 0 0 0 0 0 0 0 0 0 1 1 0 +0 +1 0 1 1 1 1 0 1 0 1 0 1 1 +1 +1 1 0 0 0 1 1 1 0 0 0 0 0 +1 +1 0 0 0 0 1 0 0 1 1 0 0 1 +1 +1 1 0 1 1 0 0 0 1 1 1 0 1 +0 +1 1 0 0 0 1 1 1 0 0 0 1 0 +0 +0 0 0 1 0 1 0 0 1 0 0 0 1 +0 +1 0 1 1 1 0 1 0 0 0 0 0 0 +1 +0 0 0 1 1 1 0 1 0 1 0 0 1 +0 +0 1 0 0 0 0 0 1 1 0 1 0 1 +1 +1 1 0 1 0 0 0 1 0 1 0 0 1 +0 +0 1 1 0 0 1 1 1 1 1 0 0 1 +0 +0 1 1 0 0 0 0 1 0 0 0 1 1 +1 +1 1 1 0 1 0 0 0 0 1 1 0 0 +0 +0 0 1 0 0 1 0 1 0 0 1 1 1 +0 +0 1 0 0 1 1 0 1 0 0 0 0 0 +0 +1 1 1 1 0 0 1 1 0 0 1 0 1 +0 +0 1 0 0 1 0 1 1 1 1 1 1 0 +0 +0 0 1 1 1 0 1 0 1 0 1 0 0 +0 +0 1 0 0 1 0 0 0 0 1 0 0 1 +0 +0 0 1 1 0 1 0 1 1 0 0 0 0 +1 +0 1 0 0 0 1 0 1 0 0 0 1 0 +0 +1 1 1 0 0 0 1 0 0 1 1 1 1 +0 +1 0 0 0 0 1 1 0 1 1 1 0 0 +0 +1 1 1 1 0 0 1 0 0 1 1 1 0 +0 +1 0 0 0 1 1 1 0 0 0 1 0 1 +0 +1 0 0 0 1 0 1 1 0 1 1 1 0 +1 +0 1 1 0 1 1 1 1 0 1 1 0 0 +0 +1 1 0 0 1 1 0 0 1 1 0 1 1 +0 +0 1 0 1 0 0 0 1 0 1 0 1 0 +1 +0 1 1 0 0 0 0 1 0 0 0 0 1 +0 +0 0 1 1 1 1 0 1 1 1 1 0 1 +1 +1 1 1 0 1 1 1 1 0 1 1 1 1 +1 +0 0 0 0 0 0 1 1 1 1 0 0 0 +0 +0 1 0 1 1 0 1 1 0 1 0 0 1 +1 +1 0 1 1 1 0 1 1 1 0 0 1 0 +0 +0 1 0 0 0 0 1 1 1 1 1 1 1 +0 +0 0 0 0 1 1 0 0 0 0 0 0 0 +0 +1 0 0 0 0 0 0 1 0 1 1 1 1 +0 +1 1 1 0 1 0 1 1 1 0 1 1 0 +1 +0 1 0 0 0 1 1 1 0 0 1 0 1 +0 +0 0 1 0 0 1 1 1 0 0 1 1 0 +0 +1 0 1 1 1 0 1 1 1 0 1 1 1 +0 +0 1 1 1 1 1 1 0 0 1 0 0 0 +1 +1 1 0 0 1 1 0 0 1 1 1 1 0 +0 +0 1 1 0 0 0 1 0 0 0 0 0 0 +1 +1 1 0 0 0 1 1 0 0 0 1 0 0 +1 +0 1 0 0 0 0 1 0 1 0 0 0 1 +0 +1 1 0 0 1 0 1 0 0 1 0 1 0 +0 +1 1 1 0 1 1 1 1 0 0 1 0 0 +0 +1 1 1 1 0 0 1 0 0 0 1 0 1 +1 +0 0 0 1 1 0 0 1 0 1 1 0 0 +1 +1 1 0 0 0 1 0 0 1 1 1 1 0 +1 +0 0 1 0 0 1 0 0 0 0 1 0 0 +1 +0 1 0 1 1 0 1 0 0 0 1 0 1 +0 +1 1 0 0 0 0 1 1 1 1 0 0 0 +0 +0 1 1 1 1 1 1 1 1 1 1 0 1 +1 +0 0 0 0 0 0 0 1 1 1 0 1 0 +0 +0 1 0 0 0 0 0 0 0 1 0 0 1 +1 +1 1 0 0 1 0 1 1 1 0 1 0 0 +1 +1 1 1 0 1 0 1 1 1 1 0 1 0 +1 +1 1 0 1 1 0 0 1 1 1 1 0 0 +0 +0 0 0 1 0 1 1 0 1 0 0 1 1 +0 +1 1 0 0 1 1 1 1 0 0 1 1 1 +1 +1 0 0 0 1 1 0 1 1 0 1 0 0 +0 +1 1 1 0 0 0 0 0 0 0 0 0 0 +1 +0 1 1 0 0 0 0 0 1 1 0 0 1 +1 +1 1 1 0 0 0 1 0 0 1 1 0 1 +1 +1 0 0 1 1 1 0 0 1 1 0 0 0 +0 +0 1 1 0 0 1 0 0 0 1 1 0 0 +1 +0 1 1 1 0 0 0 0 0 0 0 1 1 +1 +1 0 1 1 0 0 0 0 1 0 1 1 0 +0 +1 1 0 1 1 1 1 0 1 1 1 0 0 +1 +0 1 0 1 0 1 1 0 0 1 1 1 0 +1 +0 1 0 0 1 1 0 1 0 1 0 1 1 +1 +0 1 0 1 0 1 0 0 1 1 0 0 0 +1 +0 0 1 1 0 1 1 0 0 0 0 0 1 +1 +0 0 1 0 1 1 1 1 0 0 0 1 1 +1 +1 1 0 1 1 1 0 0 1 0 1 0 1 +0 +0 0 0 1 1 1 0 0 1 0 1 1 0 +0 +0 0 0 0 1 0 1 0 1 1 1 1 0 +0 +0 0 0 0 1 0 1 1 1 1 1 0 0 +0 +1 1 0 1 0 1 0 1 0 1 1 0 0 +1 +0 0 0 0 1 0 1 1 1 0 1 1 0 +0 +1 0 1 1 1 0 1 1 1 1 1 0 0 +1 +0 0 0 1 1 1 1 1 1 0 0 1 1 +0 +0 1 1 0 1 1 1 1 1 0 0 0 1 +0 +1 1 0 0 0 1 0 0 1 1 0 1 1 +1 +0 0 1 0 1 1 0 0 0 0 1 0 1 +1 +1 1 0 0 1 0 0 0 1 0 1 1 0 +0 +1 1 0 0 1 1 1 0 1 0 0 1 1 +0 +1 1 1 0 0 1 1 1 1 0 0 0 0 +1 +0 1 0 1 0 0 1 1 0 0 0 0 1 +1 +0 0 0 1 1 1 1 0 1 0 0 1 0 +0 +0 0 0 1 0 1 0 1 0 1 0 1 1 +0 +0 0 0 0 0 1 1 0 0 0 0 1 1 +0 +0 1 0 0 1 0 0 1 0 1 1 0 0 +1 +1 0 1 1 1 1 0 0 0 0 0 1 1 +1 +0 1 0 0 1 1 0 1 1 0 1 0 1 +1 +1 0 1 1 0 0 1 0 1 1 1 1 0 +0 +1 0 0 0 1 1 0 0 0 0 0 0 1 +0 +1 0 1 0 1 1 0 1 0 1 1 0 0 +1 +0 1 1 0 1 1 0 1 0 0 1 1 0 +1 +0 1 1 0 0 0 0 0 0 0 1 0 0 +1 +1 0 1 1 1 0 1 1 1 1 0 1 0 +1 +0 0 0 1 1 1 0 0 1 1 0 0 1 +0 +0 0 1 0 1 0 0 1 0 0 0 1 0 +0 +0 0 0 1 0 0 0 0 1 1 0 0 0 +1 +1 1 1 0 0 1 0 0 1 0 0 0 0 +1 +0 0 0 0 0 1 0 1 1 1 0 1 0 +1 +0 0 0 1 1 0 1 0 0 1 0 0 0 +0 +0 0 0 0 0 0 0 0 1 0 1 1 0 +1 +1 1 1 0 0 0 0 1 0 0 1 0 0 +1 +0 0 0 1 1 1 0 1 1 1 1 1 0 +0 +1 0 0 0 0 0 0 1 0 0 1 0 0 +1 +0 0 0 0 1 0 1 1 0 0 1 0 1 +1 +1 1 0 1 0 1 0 0 0 0 1 0 1 +0 +0 1 0 1 0 1 0 0 0 1 1 1 1 +1 +1 0 1 0 0 0 0 0 1 1 1 0 1 +0 +0 1 1 0 0 0 0 1 0 0 1 0 0 +0 +0 0 1 1 0 0 0 0 1 1 0 1 0 +1 +1 1 1 1 0 0 0 0 1 1 1 0 0 +1 +1 1 1 0 1 0 0 1 0 1 0 0 0 +0 +0 1 0 0 1 1 1 1 1 1 1 0 1 +1 +1 0 1 0 1 0 1 1 1 0 0 1 1 +0 +0 1 0 1 0 0 0 0 0 0 1 1 1 +1 +1 0 0 0 1 0 0 0 1 1 1 0 0 +1 +1 1 1 0 1 1 1 0 1 1 0 1 0 +1 +1 1 1 0 0 1 0 1 1 1 1 1 1 +0 +0 1 0 1 1 1 1 1 0 1 1 1 1 +0 +0 0 0 1 0 1 1 0 0 1 1 1 0 +0 +1 0 0 0 1 1 1 0 0 0 0 0 0 +0 +0 1 1 1 1 0 1 0 1 0 0 1 1 +0 +1 0 1 0 1 1 0 1 0 0 1 1 1 +0 +1 1 0 1 1 0 1 1 1 1 0 1 0 +1 +1 0 0 1 0 1 1 0 1 1 0 0 1 +1 +1 0 1 1 0 1 0 1 1 1 1 1 0 +1 +1 0 1 1 1 1 1 0 1 1 0 1 0 +1 +1 0 0 0 1 0 1 1 1 1 0 0 0 +0 +0 1 1 0 1 0 0 0 1 0 1 1 1 +1 +1 0 0 1 1 0 0 0 0 0 0 0 0 +1 +0 1 0 1 0 1 0 0 1 1 1 0 1 +1 +0 1 1 0 1 1 1 1 0 0 0 1 0 +1 +0 1 0 0 0 1 1 1 1 0 0 1 0 +0 +1 1 0 0 0 1 0 1 1 0 1 0 0 +0 +0 0 0 1 0 1 1 0 0 1 0 1 1 +0 +1 1 1 0 1 1 0 1 1 1 1 1 1 +1 +1 1 0 0 1 0 0 0 0 1 1 1 0 +0 +1 1 1 0 0 0 1 0 1 0 1 1 1 +0 +1 1 1 0 1 0 0 0 1 1 1 0 0 +1 +0 1 1 0 1 1 0 1 0 1 1 1 1 +1 +1 0 1 0 1 0 1 1 0 1 1 1 1 +1 +0 0 1 1 0 0 1 0 0 1 1 0 1 +0 +0 1 0 0 1 1 0 0 1 0 0 0 1 +1 +1 1 0 0 0 1 0 0 1 1 0 1 0 +0 +1 1 0 0 1 1 0 1 0 1 1 1 0 +0 +1 0 1 1 0 1 0 1 0 1 1 0 0 +1 +1 0 0 1 0 0 0 0 0 0 0 0 1 +1 +1 1 0 1 1 0 1 0 1 1 1 1 1 +0 +0 0 0 1 1 1 1 0 0 1 1 0 0 +0 +0 0 0 0 0 1 0 1 1 1 0 0 0 +0 +0 1 1 0 1 1 0 1 1 1 1 1 1 +0 +1 1 1 0 0 1 0 1 0 0 0 1 0 +0 +1 1 0 0 0 0 0 0 0 1 0 1 1 +1 +1 1 0 1 0 1 1 0 0 0 1 1 1 +0 +1 1 1 1 1 1 0 1 0 1 0 0 1 +1 +1 0 1 1 0 0 0 0 1 0 1 1 1 +1 +1 0 1 0 1 0 1 1 1 1 1 1 1 +0 +1 0 1 0 0 1 0 0 0 0 0 0 1 +0 +1 1 1 1 0 0 1 1 1 0 0 0 1 +0 +0 0 0 1 1 1 1 1 0 1 1 0 0 +1 +0 0 0 0 0 0 0 1 1 0 1 0 1 +0 +1 1 0 0 0 1 1 0 1 0 0 0 1 +0 +1 0 0 1 0 1 1 0 0 0 0 0 0 +0 +0 1 0 0 0 1 1 0 1 1 1 1 1 +0 +0 0 1 1 1 0 0 1 0 1 1 1 0 +1 +1 1 1 0 1 0 1 1 0 1 1 0 1 +1 +1 0 0 1 1 0 0 0 1 1 1 1 1 +0 +1 0 0 1 0 1 0 0 0 1 1 1 0 +0 +0 1 1 1 1 0 0 0 0 0 1 0 1 +0 +1 0 0 1 1 0 1 1 1 1 1 1 0 +1 +0 1 0 1 0 0 1 0 1 1 1 1 0 +1 +1 1 0 1 1 0 0 0 0 0 0 1 1 +0 +0 0 0 0 1 0 1 0 0 0 1 0 1 +0 +1 0 0 0 1 1 0 1 1 1 1 0 1 +0 +1 1 0 1 1 1 0 0 1 0 1 1 0 +0 +0 0 0 1 0 1 1 1 0 1 1 1 0 +1 +0 1 0 1 0 0 1 0 1 1 1 0 0 +0 +0 1 1 1 1 1 1 0 1 0 0 0 0 +1 +1 0 0 1 0 0 0 0 1 0 1 0 1 +1 +0 0 1 0 0 1 0 0 0 0 0 1 1 +0 +0 1 0 1 1 0 1 0 0 0 0 1 0 +1 +0 0 1 1 1 0 0 1 1 0 1 1 1 +0 +1 1 1 0 0 1 0 1 1 0 1 0 1 +0 +1 1 1 0 1 0 1 0 0 1 1 1 1 +1 +1 1 1 0 1 0 0 0 0 1 0 1 0 +0 +0 0 0 1 1 1 0 0 1 1 1 0 0 +0 +1 0 1 1 0 1 1 1 1 1 0 1 1 +0 +1 0 1 1 0 1 0 0 0 1 0 0 1 +0 +1 0 1 1 0 0 0 1 0 0 0 1 1 +0 +1 1 0 0 0 0 0 1 1 1 0 1 1 +1 +0 1 0 0 0 0 0 0 1 0 1 1 0 +0 +0 0 0 1 0 1 0 0 0 0 0 0 0 +0 +1 1 1 0 1 1 1 1 0 1 1 1 0 +0 +0 1 1 1 1 0 1 1 1 1 0 0 1 +1 +1 0 0 0 1 1 1 0 1 1 1 0 0 +1 +0 1 0 0 1 0 1 0 0 0 1 0 1 +1 +1 0 0 1 0 1 1 1 0 1 1 1 0 +0 +1 0 1 0 1 0 0 1 1 1 1 1 0 +0 +1 1 0 1 0 1 1 1 0 0 0 0 1 +1 +1 1 0 1 0 0 1 1 0 0 1 1 1 +0 +0 1 1 1 0 0 0 1 1 0 1 0 0 +0 +0 0 0 1 1 0 1 1 0 0 0 0 1 +1 +1 1 0 0 0 1 0 1 0 0 0 0 0 +0 +1 0 1 0 1 0 0 1 1 1 1 0 1 +0 +0 0 0 1 1 1 1 1 0 0 0 1 1 +1 +1 0 0 1 1 1 1 1 1 0 0 0 1 +0 +0 1 1 0 0 1 0 0 1 1 0 0 0 +1 +0 0 0 1 0 0 0 1 1 0 0 1 1 +1 +0 0 0 0 0 0 0 1 0 1 1 0 0 +1 +0 0 1 1 0 1 1 0 0 0 1 0 0 +1 +0 1 0 0 1 0 1 1 1 0 1 0 1 +1 +1 0 1 1 0 1 0 1 0 0 1 0 1 +1 +1 0 0 0 0 1 1 1 0 0 0 1 0 +1 +1 0 1 1 1 1 0 1 1 1 1 0 0 +1 +0 1 1 0 1 0 1 0 1 1 1 0 1 +0 +0 1 0 1 0 0 1 0 1 1 0 0 0 +1 +1 1 1 0 0 1 1 1 1 0 1 1 0 +1 +1 1 1 0 0 0 1 0 1 1 0 1 0 +1 +0 0 0 1 0 0 1 1 0 0 0 1 0 +0 +1 0 0 0 1 1 1 0 0 1 1 0 1 +1 +0 0 1 1 1 1 1 1 1 0 1 0 1 +1 +0 1 0 1 0 0 1 1 1 0 1 0 1 +1 +1 1 0 0 1 1 0 1 1 1 1 1 0 +1 +1 1 1 0 1 1 1 0 0 1 0 1 0 +0 +0 0 0 1 0 1 0 1 1 0 0 1 0 +1 +0 1 0 1 1 0 0 0 1 1 1 0 0 +0 +1 1 1 0 0 0 0 0 1 0 0 1 1 +0 +1 0 0 0 1 0 1 0 1 0 0 0 0 +0 +1 0 1 1 1 0 1 0 1 0 1 0 0 +1 +1 0 0 1 0 0 0 0 0 1 0 1 0 +0 +0 0 0 1 1 0 1 1 1 1 1 0 0 +1 +0 1 0 1 0 1 0 0 0 0 1 1 0 +1 +0 1 1 0 0 1 1 1 0 0 0 0 0 +1 +1 1 1 1 0 1 0 1 0 1 1 1 0 +1 +1 1 0 1 1 1 0 0 0 1 1 0 0 +1 +1 0 1 1 1 0 0 0 1 1 0 1 0 +1 +0 1 1 1 0 1 1 1 1 0 0 0 1 +0 +0 0 0 0 1 1 1 1 0 0 1 1 0 +0 +0 1 1 0 1 0 1 1 0 1 0 1 0 +1 +1 0 0 1 0 0 1 0 0 0 1 0 1 +1 +0 1 0 1 0 1 0 1 0 0 0 0 1 +1 +0 0 0 1 0 1 0 0 1 1 0 1 1 +0 +0 0 0 0 1 0 0 0 0 1 1 0 1 +0 +0 1 0 1 0 0 0 1 0 1 0 0 1 +1 +1 0 1 1 0 1 1 1 0 0 1 1 1 +1 +0 0 0 0 0 1 0 1 0 1 1 1 1 +0 +1 1 1 1 1 1 1 0 1 1 0 0 1 +0 +0 0 1 0 0 0 1 1 1 1 1 1 1 +0 +0 1 1 0 0 1 0 0 1 0 0 0 0 +0 +1 1 1 0 0 0 1 0 0 0 1 1 1 +1 +1 0 0 1 0 1 1 0 1 0 0 1 1 +1 +1 0 1 1 1 1 1 0 1 0 0 1 0 +0 +1 0 0 0 1 0 0 0 0 1 0 0 1 +0 +0 1 1 0 1 1 0 1 1 1 0 1 1 +1 +0 0 0 1 1 0 0 1 0 0 1 0 0 +0 +1 0 0 1 1 1 0 1 1 1 0 1 1 +1 +1 0 0 0 0 0 1 0 1 0 0 1 0 +0 +0 1 1 1 1 1 1 1 1 1 1 0 0 +0 +1 0 1 0 0 0 1 0 1 0 0 1 0 +1 +1 0 1 0 0 1 0 1 0 1 0 0 1 +0 +1 0 1 0 1 0 1 0 1 0 0 0 0 +1 +1 1 1 0 1 0 0 1 1 1 0 1 1 +1 +0 0 0 1 0 0 1 1 1 1 1 1 0 +1 +0 1 1 1 1 0 0 1 1 1 1 0 0 +0 +0 1 0 0 0 1 0 1 0 0 1 1 1 +0 +1 0 1 0 1 0 0 0 1 0 0 0 1 +1 +0 1 1 0 0 0 1 1 0 1 1 0 0 +0 +0 0 0 0 1 0 0 1 0 1 1 1 0 +1 +1 1 1 1 0 0 0 0 0 0 0 0 0 +0 +0 1 0 1 1 0 1 0 0 0 1 0 0 +1 +0 1 1 1 1 1 1 1 0 1 1 0 0 +1 +1 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 1 0 0 0 1 0 0 1 +1 +0 1 1 0 1 0 0 1 0 1 0 1 0 +0 +1 0 0 0 0 1 0 0 1 0 1 1 0 +1 +0 1 1 0 1 1 0 0 0 0 0 1 1 +0 +1 1 1 0 0 1 1 1 0 0 0 1 0 +1 +1 0 1 0 0 1 0 0 1 1 1 1 1 +0 +0 1 0 1 0 1 1 0 0 1 0 0 0 +1 +1 0 1 1 0 1 0 0 0 1 1 0 0 +0 +0 0 1 1 1 0 1 1 0 0 1 1 1 +0 +0 0 1 1 1 1 1 0 0 0 1 0 0 +0 +1 1 0 0 1 0 0 0 1 0 1 0 0 +1 +0 0 1 0 1 1 0 0 0 1 1 0 1 +0 +1 0 1 1 0 1 1 1 0 1 0 0 1 +0 +0 0 1 1 1 0 0 1 1 1 0 0 0 +0 +0 1 0 1 1 1 0 0 0 1 0 1 1 +1 +1 0 1 0 0 1 1 1 1 1 1 1 0 +1 +1 0 1 0 0 0 0 1 0 0 1 0 0 +0 +1 0 0 1 0 1 0 1 0 1 1 1 1 +0 +1 1 1 1 1 0 1 1 1 0 1 1 0 +0 +0 1 0 1 0 0 0 1 1 1 0 1 1 +1 +1 1 0 1 1 0 1 0 1 1 0 0 1 +0 +0 1 0 1 0 0 0 1 1 0 0 1 0 +1 +0 1 1 0 0 1 0 1 1 1 0 0 0 +0 +0 0 0 0 1 0 1 0 1 0 1 0 1 +1 +0 1 0 1 1 1 1 1 0 1 0 1 1 +1 +1 1 1 1 0 1 1 0 0 0 0 0 1 +1 +0 1 0 1 1 1 0 1 0 1 1 0 1 +0 +0 1 1 1 0 1 1 1 0 1 1 0 1 +1 +0 0 1 1 0 1 0 0 1 1 1 0 0 +0 +1 1 1 1 1 1 1 0 0 0 1 1 0 +1 +1 0 0 1 1 1 0 0 0 0 0 0 1 +1 +0 1 0 0 0 0 0 0 0 0 1 1 1 +0 +1 0 0 0 1 0 1 1 0 1 0 1 1 +1 +1 1 1 0 0 1 1 0 0 0 1 1 0 +1 +0 0 0 1 1 0 0 0 0 1 0 0 0 +1 +1 1 0 1 0 0 0 1 1 1 1 0 1 +0 +0 0 0 1 1 1 0 1 1 0 0 0 0 +1 +0 0 1 0 1 0 1 1 1 1 1 0 0 +1 +1 1 1 0 0 0 0 1 1 1 1 1 0 +0 +1 1 0 1 1 0 0 0 0 0 1 0 0 +1 +1 1 0 1 1 1 0 1 0 0 1 1 0 +0 +0 1 1 0 1 0 1 1 1 0 0 1 1 +0 +1 0 0 0 0 1 1 0 0 0 0 1 1 +1 +1 1 0 1 0 1 0 1 0 1 1 0 1 +0 +1 1 0 0 0 0 1 1 1 1 1 0 1 +0 +1 0 1 0 1 0 1 0 1 1 0 1 1 +0 +0 0 0 0 1 0 0 1 0 1 1 0 0 +0 +1 1 1 0 0 1 0 0 1 1 0 0 0 +0 +0 0 0 0 1 0 0 1 0 0 1 0 1 +0 +0 0 1 1 1 1 1 1 1 1 0 0 0 +0 +0 0 1 1 0 1 0 0 1 1 1 0 1 +1 +0 1 0 1 0 0 0 0 1 1 1 1 1 +1 +0 0 1 1 0 1 0 1 1 1 0 0 0 +0 +1 0 1 1 1 0 0 0 0 0 1 0 1 +0 +0 1 0 1 1 0 0 0 1 1 0 0 1 +0 +0 0 0 0 0 0 0 0 1 1 1 0 0 +1 +1 0 1 1 0 0 1 1 0 1 1 0 1 +0 +0 0 0 1 1 0 0 1 1 1 0 0 1 +0 +1 1 0 1 1 1 1 0 0 1 1 0 1 +1 +0 0 1 0 0 0 1 1 1 0 0 1 0 +1 +1 0 0 0 1 1 1 0 1 1 0 1 0 +1 +0 0 0 1 0 1 0 0 0 1 1 0 0 +0 +1 1 0 1 0 0 1 1 0 1 0 1 0 +1 +0 1 1 0 0 1 0 0 0 0 1 0 0 +0 +0 0 1 0 1 1 0 0 0 1 1 1 0 +0 +0 1 0 1 0 1 0 0 1 0 1 0 1 +0 +1 0 0 0 0 1 0 1 1 1 1 0 0 +0 +0 0 0 1 0 1 1 0 1 0 1 1 0 +0 +0 0 1 0 1 0 1 0 0 0 1 1 0 +1 +0 0 0 1 0 1 0 0 1 1 1 0 1 +0 +1 1 0 0 0 0 0 1 1 0 0 0 1 +1 +1 1 1 1 0 0 0 1 0 0 1 0 0 +0 +0 0 0 1 1 0 1 0 1 1 1 0 1 +1 +1 1 0 0 0 0 0 1 1 0 1 1 1 +1 +0 1 0 0 0 0 0 1 0 1 1 0 0 +0 +1 0 0 1 1 1 0 0 1 1 1 0 1 +0 +1 1 1 0 0 0 0 0 1 1 0 1 0 +0 +0 0 1 1 1 0 1 0 1 0 1 1 1 +0 +1 1 1 1 1 1 0 0 1 0 1 0 0 +0 +0 0 1 1 1 0 1 0 0 0 1 0 1 +0 +1 0 1 1 1 0 1 1 0 0 0 1 1 +0 +1 0 0 1 1 1 1 0 1 1 0 1 0 +0 +1 0 1 0 1 0 1 0 1 0 1 0 1 +1 +1 1 1 0 1 1 0 0 1 1 1 1 0 +1 +1 0 0 0 1 0 1 0 0 1 0 0 1 +1 +1 0 1 0 0 1 1 0 0 1 0 0 0 +1 +0 1 1 1 1 0 1 1 1 0 1 0 1 +1 +1 1 1 0 1 0 1 0 0 1 0 0 1 +1 +1 1 1 0 1 1 0 1 1 0 1 1 0 +1 +0 1 0 0 0 0 0 0 1 1 1 0 1 +1 +0 0 0 0 0 0 0 1 0 0 1 0 0 +0 +0 1 1 0 1 1 0 0 1 1 1 1 0 +0 +1 0 1 1 0 0 0 1 0 0 0 0 1 +1 +0 0 1 1 1 1 0 0 1 1 1 0 0 +1 +0 1 1 0 0 1 1 1 0 0 1 1 0 +1 +1 0 0 1 0 1 1 0 0 1 0 0 1 +0 +0 0 1 0 0 0 0 0 1 0 1 1 1 +1 +1 0 0 0 1 1 0 1 0 0 0 0 0 +0 +0 0 1 0 1 1 1 1 1 0 0 1 0 +1 +0 1 1 1 1 1 1 1 0 1 0 0 1 +1 +1 1 0 0 1 0 0 1 0 1 0 0 1 +0 +0 0 1 1 1 0 1 0 0 0 1 1 1 +1 +0 1 0 1 0 0 1 0 0 0 1 1 1 +0 +0 1 0 1 0 0 0 0 1 1 1 1 0 +0 +0 1 0 1 0 1 1 0 0 1 1 0 0 +0 +0 0 0 1 1 1 1 0 1 1 0 0 0 +0 +1 0 0 1 1 0 1 0 1 0 1 0 0 +0 +0 0 0 1 1 1 1 1 1 1 0 1 0 +0 +0 1 0 1 1 1 1 1 1 0 0 0 0 +1 +0 0 1 0 1 0 0 0 1 1 0 0 0 +0 +1 0 0 0 1 0 1 1 0 1 0 0 1 +0 +0 1 0 0 1 1 1 0 0 0 0 0 1 +1 +0 0 1 1 1 1 1 0 1 1 1 0 1 +1 +0 0 0 0 0 0 1 1 0 1 1 0 0 +0 +1 1 0 0 1 0 1 1 1 1 0 0 1 +0 +1 1 1 0 0 0 1 0 1 1 1 1 1 +1 +0 0 0 0 1 1 0 0 1 0 1 1 0 +1 +0 1 1 1 1 1 0 1 1 0 1 0 0 +0 +0 1 1 1 1 0 0 1 1 0 0 0 1 +1 +1 1 0 0 0 0 1 0 0 1 1 1 1 +1 +0 0 1 1 0 0 0 0 1 1 0 1 1 +0 +1 0 1 1 1 1 1 0 0 0 0 1 0 +1 +1 0 1 0 0 1 1 0 0 0 1 1 1 +1 +0 1 0 0 0 1 1 1 0 1 1 0 0 +0 +1 1 0 1 0 1 1 0 0 0 0 0 0 +1 +1 1 0 0 1 1 1 1 1 1 1 0 1 +0 +0 1 0 0 0 0 0 0 0 1 1 1 1 +1 +1 1 1 1 1 1 1 0 1 1 1 1 0 +1 +1 1 0 1 0 1 1 1 0 0 1 0 0 +1 +0 1 1 1 1 1 0 1 1 0 0 1 0 +0 +0 0 1 0 1 1 0 1 0 1 1 0 0 +0 +0 1 0 1 1 1 1 0 1 0 1 0 1 +0 +1 0 0 0 1 1 0 1 0 0 0 0 1 +1 +0 0 0 1 1 1 0 1 1 0 0 1 1 +1 +0 0 0 1 0 0 0 1 0 0 1 1 1 +1 +1 1 1 0 1 1 0 1 1 0 0 1 1 +1 +0 0 1 0 1 1 0 0 0 0 0 1 0 +0 +1 0 1 1 1 0 0 1 1 1 1 0 0 +0 +0 1 0 1 1 1 0 1 1 0 0 0 0 +0 +1 1 1 1 0 0 1 1 0 1 0 1 0 +0 +0 0 0 0 0 1 1 1 1 1 1 1 1 +0 +1 1 1 1 0 0 1 1 0 1 1 1 1 +0 +0 1 0 1 1 0 0 1 0 0 1 1 1 +1 +0 1 1 0 0 0 1 0 1 1 1 0 0 +0 +1 1 1 0 0 0 0 1 1 1 0 1 1 +0 +0 0 0 1 0 1 1 0 1 1 1 0 1 +1 +0 1 1 0 1 0 1 1 0 0 0 0 0 +1 +0 1 1 1 1 1 0 0 1 1 1 1 1 +0 +1 1 0 1 1 0 1 0 1 1 1 0 1 +1 +1 1 1 1 0 0 1 0 1 0 1 0 0 +1 +0 1 1 0 0 1 0 0 0 0 1 1 1 +0 +1 0 1 0 1 1 1 0 1 0 0 1 1 +0 +0 0 0 0 0 0 0 0 1 0 1 1 1 +0 +0 0 0 0 1 0 1 1 0 0 0 0 1 +0 +0 0 1 1 1 1 0 0 1 1 0 0 1 +1 +1 0 0 0 0 1 0 1 1 0 0 0 1 +1 +0 0 1 0 0 0 1 1 0 0 0 1 0 +0 +0 0 0 1 0 1 0 0 1 1 0 0 0 +0 +1 1 1 0 1 1 0 1 1 0 1 0 0 +0 +0 1 1 1 0 1 0 1 1 0 1 1 0 +0 +1 0 0 0 1 0 1 0 0 1 1 0 0 +1 +0 1 1 0 1 1 1 0 1 1 1 1 1 +0 +0 0 0 0 0 1 1 0 1 0 0 1 1 +1 +0 1 0 0 1 0 0 0 1 0 1 0 0 +0 +1 1 0 0 0 0 0 1 0 0 0 1 0 +0 +1 0 0 0 0 0 1 1 0 0 0 1 1 +1 +0 0 1 1 0 0 1 1 1 1 0 1 1 +0 +1 0 0 1 0 0 1 1 1 0 0 0 1 +0 +1 1 1 0 0 1 1 0 0 0 0 1 1 +1 +0 1 1 0 1 1 0 1 1 0 1 1 1 +1 +0 0 1 1 0 0 1 1 0 1 0 0 1 +0 +1 1 1 1 1 0 0 1 1 0 1 1 1 +0 +1 0 1 1 0 0 0 1 1 0 1 1 0 +1 +1 0 1 0 0 1 0 1 1 0 0 1 1 +1 +1 1 1 0 1 1 1 1 1 1 0 0 0 +1 +0 1 1 0 0 1 1 1 1 0 1 0 1 +0 +1 0 0 1 1 0 0 1 0 1 1 1 1 +0 +0 1 1 1 0 0 1 0 0 1 0 1 0 +0 +1 0 0 1 1 1 0 1 1 1 0 0 0 +1 +1 1 0 1 0 0 1 0 1 1 0 0 1 +1 +1 0 0 0 1 0 1 1 0 1 1 1 1 +0 +1 0 1 1 1 0 0 1 0 1 1 1 1 +1 +0 0 1 1 1 0 1 0 0 0 0 1 0 +1 +0 0 0 1 0 1 0 1 1 0 1 0 1 +0 +0 0 1 0 0 0 1 1 0 0 1 1 0 +1 +1 0 1 0 0 1 0 0 1 0 0 0 1 +1 +1 0 0 1 1 0 0 0 1 0 1 0 1 +0 +1 0 1 1 1 1 0 0 0 0 1 1 0 +1 +0 0 0 1 1 0 0 1 0 0 1 1 1 +0 +0 1 0 0 0 0 1 1 1 1 0 0 0 +1 +0 0 0 1 1 0 0 0 0 0 1 1 1 +1 +1 0 1 1 0 1 0 1 0 0 0 0 1 +0 +0 0 0 1 1 0 1 1 1 0 1 0 1 +1 +1 1 1 1 0 1 0 1 1 0 0 0 0 +1 +1 0 0 0 1 0 0 1 0 1 1 0 0 +1 +0 1 0 0 1 1 0 1 0 0 1 1 1 +1 +0 0 0 1 0 0 1 1 1 0 0 0 1 +1 +0 0 1 1 1 1 1 1 1 0 0 0 0 +1 +0 0 0 0 0 1 0 1 0 0 1 0 1 +0 +1 1 1 1 1 1 0 1 1 0 0 1 1 +0 +1 1 1 1 1 1 1 1 1 0 0 0 0 +1 +0 0 0 1 1 1 0 1 0 0 1 0 1 +0 +1 1 1 0 0 1 1 1 0 1 1 1 0 +1 +0 0 1 0 0 1 1 1 1 1 1 1 0 +0 +0 0 1 0 1 1 1 1 0 0 1 0 0 +0 +0 1 0 0 1 1 1 1 0 0 0 0 1 +0 +1 1 1 1 1 1 1 1 1 1 1 0 0 +1 +0 0 0 1 0 1 1 0 0 0 1 1 0 +1 +0 0 1 1 1 1 0 0 1 1 0 1 0 +1 +1 1 0 0 1 0 0 0 0 0 1 0 0 +0 +0 1 1 1 1 1 0 1 1 0 0 1 1 +1 +1 0 1 1 0 0 0 0 0 1 0 1 0 +1 +1 1 1 1 0 0 1 1 0 0 0 0 1 +1 +0 1 1 0 0 1 0 0 0 1 1 1 0 +0 +0 1 1 1 1 0 1 1 1 0 1 0 0 +0 +1 0 1 1 1 1 0 0 1 0 1 1 1 +1 +1 0 0 1 0 0 0 1 1 1 1 1 1 +0 +0 1 0 0 1 1 1 0 1 1 1 0 0 +1 +1 0 1 1 0 0 1 0 1 0 0 1 0 +0 +0 0 1 0 1 1 1 0 0 1 0 0 1 +0 +1 1 0 1 0 1 0 0 0 0 1 0 0 +1 +1 1 1 0 0 0 0 1 0 0 1 0 1 +0 +0 0 0 0 1 0 1 1 0 1 1 0 0 +1 +0 0 0 0 1 0 1 1 0 1 0 1 0 +1 +1 1 0 1 1 0 0 0 0 0 0 1 0 +1 +0 1 0 1 0 0 1 1 0 0 1 0 0 +1 +1 1 0 1 0 1 1 1 0 1 1 1 0 +1 +1 0 1 0 1 1 1 0 0 1 1 0 1 +0 +0 0 0 1 1 1 1 0 0 0 1 1 0 +0 +1 0 0 0 0 0 1 0 1 1 0 0 1 +1 +0 0 1 0 1 1 1 0 0 1 0 0 0 +1 +1 1 0 1 0 0 0 0 1 0 0 0 0 +0 +1 1 0 1 1 0 0 0 0 1 1 1 0 +1 +0 0 0 1 1 1 1 1 1 0 1 0 0 +1 +1 1 1 1 1 1 0 1 0 0 1 1 1 +0 +0 1 0 1 0 1 1 1 0 1 0 0 0 +0 +1 1 1 1 0 0 0 1 0 1 0 0 0 +0 +1 1 0 1 0 0 0 0 0 1 1 0 1 +0 +1 0 0 0 1 0 0 0 1 0 0 0 1 +0 +1 1 0 1 0 1 0 0 1 1 1 0 1 +0 +1 1 1 1 0 1 1 1 0 1 1 0 1 +0 +1 1 0 1 0 1 1 0 0 1 0 0 1 +1 +0 0 1 0 1 1 1 1 1 1 1 1 0 +1 +0 1 1 1 1 1 0 1 1 1 1 0 0 +1 +0 1 0 0 0 1 0 0 0 0 1 1 1 +1 +0 1 1 0 1 0 0 0 1 1 1 0 0 +0 +1 0 1 0 0 0 0 0 0 1 0 0 1 +0 +1 1 1 0 0 1 0 1 0 1 0 1 1 +0 +0 0 0 1 0 0 1 1 0 0 1 0 0 +0 +1 1 1 0 0 0 0 1 0 1 0 1 0 +0 +1 1 0 0 0 0 1 0 1 0 1 0 1 +0 +1 1 0 0 0 1 0 1 0 1 0 1 1 +1 +1 1 1 0 1 0 0 1 1 0 0 0 1 +1 +1 0 1 0 1 0 1 0 1 0 1 1 0 +1 +1 1 0 0 1 1 1 0 1 0 1 0 0 +1 +0 1 0 0 1 1 1 1 0 1 1 1 1 +1 +1 1 1 0 0 1 1 1 1 0 0 1 0 +0 +1 0 1 0 1 1 1 1 0 0 1 1 0 +0 +1 1 0 1 1 1 0 1 0 1 0 1 1 +1 +1 1 0 0 1 0 1 1 1 1 0 1 1 +1 +0 0 1 0 0 1 0 0 0 0 1 0 1 +0 +1 0 1 0 1 0 0 1 0 1 0 1 0 +0 +0 0 1 0 0 0 0 1 1 1 0 1 0 +1 +1 1 1 0 1 1 1 1 0 1 1 0 1 +0 +0 0 0 0 1 1 0 0 0 0 0 1 1 +0 +1 1 0 0 1 1 1 1 0 0 0 0 1 +1 +1 0 0 1 0 1 1 0 1 1 1 1 1 +1 +0 0 0 0 0 1 1 0 0 0 1 1 0 +0 +1 0 1 0 1 1 0 0 0 1 1 1 0 +1 +0 0 0 0 1 0 1 1 1 1 1 1 0 +1 +1 0 1 1 1 0 0 0 1 0 1 0 0 +0 +0 0 1 1 1 1 1 0 0 0 0 0 1 +0 +1 1 1 0 1 0 0 0 0 1 1 0 1 +1 +0 0 1 1 0 0 0 0 1 0 0 1 1 +1 +1 1 1 1 0 1 0 1 1 1 0 1 0 +1 +1 0 0 0 1 1 1 0 0 0 1 1 1 +1 +0 1 1 1 0 0 0 0 0 1 1 0 1 +0 +0 0 1 0 1 1 0 1 1 0 0 0 1 +0 +1 1 0 0 1 0 0 1 0 1 0 1 0 +0 +1 1 1 1 0 0 1 0 0 0 0 1 0 +0 +1 0 1 0 1 0 0 0 0 0 1 0 1 +1 +1 0 1 1 1 1 0 0 1 0 0 1 0 +1 +0 0 0 1 0 1 0 1 0 0 1 0 0 +0 +1 1 1 0 0 0 1 1 0 1 0 0 0 +0 +0 1 0 0 1 0 0 1 0 1 1 0 1 +0 +1 0 1 0 0 1 1 0 0 0 0 1 0 +1 +1 0 0 0 1 1 0 0 1 0 1 0 1 +0 +1 0 0 1 0 0 1 1 1 1 1 0 1 +0 +0 0 0 0 1 0 1 1 0 0 1 1 1 +0 +1 0 0 1 1 0 0 1 0 1 0 1 1 +1 +1 0 1 0 0 0 0 0 1 0 0 0 0 +1 +0 0 0 0 1 0 0 1 1 0 1 0 1 +1 +0 0 1 1 1 1 0 0 0 0 1 0 0 +1 +0 1 0 0 1 0 1 0 0 1 0 1 1 +0 +1 0 1 0 0 1 0 1 0 1 1 1 0 +1 +1 1 0 1 0 1 0 0 0 1 1 0 0 +0 +0 0 0 1 1 1 1 1 1 1 1 1 1 +0 +0 0 1 0 0 1 1 0 1 0 1 1 0 +0 +1 1 1 0 0 1 0 0 0 1 1 0 0 +0 +1 0 1 0 0 0 1 1 0 1 0 1 0 +0 +0 1 0 0 0 1 1 1 1 1 1 1 0 +0 +1 0 1 0 1 1 0 1 0 0 1 0 0 +0 +1 1 0 0 1 1 0 0 0 1 0 1 0 +0 +0 0 1 0 0 0 0 0 1 0 1 1 0 +0 +0 0 0 1 1 1 0 0 1 1 1 1 1 +0 +0 0 0 1 0 1 1 0 1 0 0 1 0 +1 +1 1 1 1 0 0 1 1 1 0 1 1 1 +0 +1 0 1 1 0 1 0 0 1 1 1 1 0 +0 +1 0 0 1 1 1 0 0 1 1 1 1 0 +0 +0 1 0 0 0 1 1 0 0 0 0 1 0 +0 +1 1 0 0 0 1 1 1 1 0 1 0 0 +1 +1 1 0 1 1 0 1 1 1 0 1 0 1 +1 +1 0 1 1 1 0 0 1 0 1 1 0 0 +1 +0 1 1 1 0 1 1 0 1 0 0 0 1 +1 +1 1 0 0 1 1 1 1 0 0 1 0 1 +0 +0 0 0 0 1 1 1 0 0 0 0 0 1 +0 +1 0 1 1 1 1 1 1 0 0 0 0 0 +1 +1 1 1 1 0 1 0 0 0 1 1 0 0 +1 +1 0 1 1 0 0 1 0 1 0 0 1 1 +1 +1 1 0 0 0 0 0 0 0 1 1 1 0 +1 +0 0 1 1 0 1 0 0 1 1 0 1 0 +0 +1 1 0 1 1 0 1 1 0 0 1 0 0 +1 +1 1 1 1 1 0 0 1 1 1 0 1 0 +1 +1 1 0 1 0 0 1 0 1 1 0 1 0 +1 +1 0 1 0 0 0 1 0 1 0 0 1 1 +0 +1 0 0 0 1 0 0 0 1 1 1 1 0 +0 +0 1 0 0 1 1 1 0 0 0 0 0 0 +0 +0 0 0 0 1 1 0 1 1 1 1 1 0 +1 +0 0 1 0 0 0 1 0 1 1 0 0 0 +0 +1 0 0 1 0 1 1 0 0 1 1 1 0 +1 +0 0 1 0 1 1 0 1 1 0 1 0 0 +0 +0 0 0 0 1 1 1 0 0 1 0 1 0 +1 +1 0 1 0 1 1 1 0 1 1 0 0 1 +0 +1 1 0 1 0 0 0 0 1 1 0 1 1 +1 +0 0 1 1 1 0 0 0 1 0 0 1 1 +0 +1 0 1 1 0 1 0 1 0 1 0 0 1 +1 +1 0 1 0 1 0 0 0 0 0 1 0 0 +0 +0 1 0 1 0 1 1 1 0 1 1 0 0 +1 +1 1 0 1 1 0 0 1 1 0 1 0 1 +0 +1 0 1 1 1 1 0 1 0 1 0 1 0 +0 +0 1 1 1 0 1 0 1 1 0 0 1 1 +0 +1 0 1 0 1 1 0 0 0 0 0 0 0 +0 +0 0 0 1 1 1 0 0 1 0 1 1 1 +1 +1 1 0 1 0 0 1 0 1 1 1 1 0 +0 +1 0 0 0 1 0 1 1 1 1 0 1 0 +1 +0 0 0 0 0 0 0 0 0 0 1 0 0 +1 +0 1 0 1 1 0 1 0 0 1 1 0 0 +0 +1 1 0 0 1 1 0 1 1 0 1 0 0 +1 +1 0 0 0 0 0 0 1 0 1 1 0 1 +1 +1 0 0 1 1 0 0 0 1 0 0 1 1 +0 +1 1 1 1 1 0 1 1 1 0 0 1 0 +1 +0 0 0 1 0 0 0 1 0 1 1 1 0 +1 +1 1 0 0 1 1 1 0 0 1 0 0 0 +0 +0 1 1 0 0 0 1 1 0 1 0 0 1 +0 +0 0 1 1 1 1 1 1 1 1 1 1 0 +0 +0 0 1 1 1 1 1 1 0 0 1 0 1 +0 +1 0 1 1 0 1 0 1 1 1 0 1 1 +1 +1 1 1 1 1 0 0 1 0 1 0 1 0 +0 +0 1 1 0 1 1 1 0 0 0 0 0 0 +1 +1 1 1 0 0 1 1 1 1 1 1 0 0 +1 +1 0 0 1 0 1 1 0 0 1 0 1 1 +1 +1 1 1 1 1 0 0 1 0 1 0 1 1 +1 +1 1 1 0 0 1 0 1 0 0 0 0 1 +0 +0 1 1 1 1 0 1 1 1 0 1 1 0 +1 +0 0 1 0 0 0 1 1 0 1 0 1 1 +0 +0 1 0 1 1 0 1 1 0 0 0 0 0 +1 +0 0 0 1 0 0 1 0 1 0 0 0 1 +0 +1 1 1 0 0 1 0 1 0 1 1 0 0 +1 +0 0 1 1 0 1 0 1 1 1 1 1 1 +1 +1 0 0 0 0 1 0 0 0 1 0 0 0 +1 +0 1 0 0 0 1 1 0 0 0 0 0 1 +0 +1 0 1 1 0 1 0 0 0 0 1 0 1 +0 +0 1 0 1 0 0 1 1 1 1 0 0 1 +1 +1 0 1 1 1 1 1 0 0 1 0 1 0 +0 +0 0 0 0 1 0 0 0 0 1 0 0 1 +1 +0 1 1 1 0 0 1 1 1 0 0 0 0 +0 +0 1 1 0 0 1 0 1 0 0 1 0 1 +0 +0 1 1 1 0 1 0 0 1 1 0 1 0 +1 +0 0 0 1 1 1 1 0 0 0 1 0 1 +0 +0 0 0 0 0 0 0 1 0 1 0 0 0 +0 +0 1 0 0 1 0 0 1 1 0 0 1 0 +1 +0 1 1 1 1 0 0 0 1 0 1 1 0 +1 +1 1 0 1 1 0 1 1 1 1 0 0 0 +0 +0 0 1 0 1 0 0 1 0 1 0 0 1 +1 +0 1 1 1 0 0 1 0 0 0 0 0 0 +0 +1 0 0 0 1 0 0 0 0 0 1 1 0 +0 +1 1 1 1 0 0 1 1 1 1 1 0 1 +0 +0 0 0 1 0 1 1 0 1 0 1 0 1 +0 +0 1 1 1 0 0 1 1 1 0 0 1 0 +1 +1 1 0 1 1 1 1 0 1 0 0 1 1 +1 +1 1 0 1 0 0 0 1 1 0 1 1 0 +1 +1 0 0 0 0 0 1 1 0 0 1 0 1 +1 +0 1 0 1 1 0 1 1 0 1 0 1 0 +1 +1 0 0 0 0 1 1 1 1 1 1 1 1 +1 +1 0 0 1 1 1 1 1 0 1 1 1 1 +0 +1 1 1 1 1 0 1 1 1 0 0 0 1 +1 +0 0 0 1 1 1 0 1 1 1 1 0 1 +0 +1 0 0 0 0 0 1 0 1 1 0 1 0 +1 +1 0 1 1 1 1 1 0 1 0 1 0 1 +1 +0 1 0 0 0 0 1 1 0 0 0 0 0 +1 +0 1 0 1 1 0 0 1 0 0 1 0 1 +0 +1 1 0 0 0 1 0 1 0 0 1 0 0 +1 +1 0 1 1 1 1 0 0 1 0 1 1 0 +0 +0 0 0 1 0 0 1 1 1 0 1 0 1 +0 +0 1 0 0 1 0 0 0 1 1 1 0 1 +0 +1 0 0 1 0 1 1 1 0 1 0 0 0 +0 +0 0 0 0 0 0 0 0 0 0 0 1 0 +1 +1 1 1 0 0 0 0 1 0 0 0 0 0 +0 +1 1 0 1 1 1 1 0 0 1 0 1 0 +0 +0 1 1 0 0 1 1 0 1 1 0 0 1 +1 +1 0 1 1 0 0 1 0 0 1 1 1 1 +0 +0 0 0 0 0 0 1 1 0 0 0 1 1 +0 +0 1 0 0 1 1 0 1 1 1 0 0 0 +0 +1 0 0 0 1 0 0 0 0 1 1 1 1 +0 +0 1 1 0 1 0 0 1 1 0 0 0 1 +0 +1 0 1 0 0 1 0 1 0 1 1 1 1 +0 +1 1 0 0 0 0 0 0 1 1 1 0 0 +1 +1 1 0 0 1 1 1 0 0 1 0 1 0 +1 +0 0 0 0 1 1 0 0 0 0 0 1 0 +1 +0 0 0 0 0 0 0 0 0 0 1 0 1 +0 +0 1 0 0 0 1 1 1 1 0 1 0 0 +0 +1 1 1 0 1 0 0 0 1 0 1 1 0 +1 +0 0 0 0 0 1 0 0 0 0 1 0 1 +1 +1 1 1 0 1 1 1 0 0 0 0 0 0 +0 +1 0 0 1 1 0 0 0 0 0 0 0 1 +0 +1 1 1 0 0 1 1 1 0 0 0 0 1 +1 +0 0 1 1 1 0 1 1 0 1 1 1 0 +0 +0 1 0 1 1 0 1 0 0 0 1 1 1 +1 +0 1 1 1 0 1 0 1 0 1 0 1 0 +1 +0 0 0 1 0 0 0 1 1 0 0 0 1 +0 +0 0 1 0 1 1 1 0 0 0 0 1 0 +1 +1 0 1 0 1 0 1 0 1 0 0 1 0 +0 +1 0 1 1 1 0 1 0 0 1 1 0 0 +1 +1 0 0 0 1 1 0 1 1 0 1 0 1 +1 +1 1 0 1 0 1 1 0 1 0 1 1 0 +0 +0 0 1 0 1 0 0 1 1 1 0 0 1 +0 +1 0 1 0 0 1 0 0 0 1 0 1 1 +0 +1 1 0 1 0 1 1 0 1 0 1 0 1 +0 +1 0 1 0 0 1 1 0 1 1 1 0 1 +0 +1 0 0 1 1 1 1 0 1 1 1 1 1 +0 +0 1 0 1 0 1 0 1 1 0 0 1 0 +0 +0 0 0 0 1 0 0 1 1 0 1 1 0 +1 +0 1 1 1 1 0 0 1 1 0 0 0 0 +0 +1 0 1 0 0 0 1 0 0 1 0 0 0 +0 +1 1 1 1 1 0 0 0 1 0 1 1 1 +1 +1 1 0 0 1 0 1 1 1 1 1 1 1 +0 +1 0 1 1 0 0 1 1 1 0 0 0 0 +0 +1 1 1 1 1 1 1 0 1 1 1 0 1 +1 +1 0 0 1 1 1 0 0 1 0 0 1 0 +0 +0 0 0 0 0 1 1 0 1 0 0 1 0 +0 +1 0 1 0 0 1 0 1 0 1 0 0 0 +1 +1 1 1 1 0 0 1 1 1 1 0 1 0 +1 +1 0 0 0 1 0 1 1 1 0 0 0 0 +1 +0 0 0 0 0 1 0 1 1 0 1 0 0 +0 +1 0 0 1 0 1 1 1 0 0 0 0 1 +0 +0 0 1 1 1 1 0 0 1 0 1 0 1 +1 +0 0 1 1 0 0 0 0 0 0 0 0 1 +1 +1 1 1 1 0 1 0 1 0 0 1 1 1 +1 +1 1 0 1 0 0 0 1 0 1 0 1 0 +0 +1 1 0 1 1 0 1 1 1 0 0 1 0 +0 +1 1 0 1 0 0 0 0 0 0 0 0 0 +1 +1 0 1 1 1 1 0 1 0 1 0 0 0 +1 +0 1 0 0 0 1 1 1 0 1 1 1 0 +1 +0 1 1 0 1 1 1 1 1 0 1 1 0 +1 +1 0 0 0 1 1 0 1 1 0 1 1 0 +1 +1 0 1 0 1 0 1 1 0 0 0 0 0 +1 +0 1 0 0 1 0 1 0 0 1 1 0 1 +0 +0 0 0 1 1 0 0 1 1 0 0 1 0 +1 +1 0 0 1 1 1 0 1 1 0 0 0 1 +1 +0 1 1 1 1 1 1 0 0 0 1 0 0 +1 +1 1 1 0 0 1 0 0 1 0 1 1 1 +0 +0 1 0 0 0 1 1 0 1 0 1 0 0 +1 +1 1 0 1 1 1 0 0 0 1 0 1 0 +1 +1 0 1 1 1 1 0 0 0 1 1 0 0 +1 +1 1 1 1 0 0 0 0 1 0 1 0 1 +1 +1 0 0 0 0 0 1 0 1 0 1 0 0 +0 +0 1 1 0 0 0 0 0 1 1 1 1 1 +1 +0 1 1 1 1 1 0 1 1 1 0 1 0 +1 +1 0 1 1 0 1 0 1 0 0 1 1 1 +0 +0 0 0 0 1 1 1 0 0 0 1 0 1 +1 +0 1 1 0 0 0 0 0 0 1 0 0 1 +0 +1 0 0 1 1 0 0 0 0 1 1 1 0 +0 +0 0 0 0 0 1 1 0 0 1 0 0 1 +0 +0 1 1 1 0 1 0 1 1 1 1 1 1 +0 +1 0 1 1 0 0 1 1 1 1 0 1 1 +1 +1 1 0 0 0 1 0 1 1 1 1 1 0 +0 +0 0 1 1 0 1 0 1 1 0 0 0 1 +0 +1 0 1 0 1 1 1 1 0 1 0 1 0 +0 +1 1 0 1 0 0 1 0 0 0 0 0 0 +0 +0 1 0 0 0 0 1 1 0 0 1 1 1 +0 +0 1 1 0 1 0 0 0 1 1 1 1 1 +0 +0 0 1 0 1 0 0 0 1 1 1 0 1 +0 +1 0 1 1 1 1 1 1 1 1 1 0 1 +1 +1 0 0 0 1 1 1 0 0 0 0 0 1 +1 +0 0 0 1 0 1 0 0 0 0 0 1 0 +1 +1 0 1 1 0 0 0 1 1 0 1 0 1 +1 +0 1 1 1 0 1 1 0 0 1 0 0 1 +1 +0 1 0 1 1 1 1 0 0 1 1 1 1 +1 +0 0 0 0 1 1 1 0 0 1 0 1 1 +0 +0 1 1 1 1 1 1 0 0 1 1 0 1 +1 +1 0 0 1 1 0 0 1 0 1 1 1 0 +1 +1 1 1 0 0 1 1 0 1 0 1 1 1 +1 +0 0 0 1 0 1 0 1 0 0 0 1 1 +1 +1 0 0 1 1 1 1 0 1 1 1 0 0 +0 +1 1 0 1 0 0 1 1 0 0 0 1 0 +0 +0 1 1 1 0 0 0 1 0 0 0 0 1 +1 +0 1 0 0 0 1 1 0 0 1 1 1 0 +0 +1 0 1 1 0 0 1 0 1 1 1 0 0 +1 +1 0 0 1 1 1 0 0 1 0 0 1 1 +1 +0 0 1 1 1 0 1 0 0 1 0 0 0 +1 +1 1 1 1 1 1 0 1 0 0 0 1 0 +0 +1 0 1 0 0 0 1 0 1 1 0 1 0 +0 +0 1 1 0 1 0 1 0 0 1 1 1 1 +0 +0 0 1 0 0 0 0 1 0 1 0 1 1 +1 +0 1 1 1 1 1 0 0 0 1 1 0 0 +1 +1 1 1 0 1 1 0 1 0 0 0 1 0 +1 +1 0 0 1 1 1 1 1 0 1 0 0 0 +1 +0 1 1 0 0 0 1 0 1 1 1 0 1 +1 +0 1 1 1 1 0 1 0 1 1 1 1 0 +1 +0 0 1 0 0 1 0 0 1 0 0 1 1 +1 +1 1 1 1 1 0 0 1 1 1 1 1 1 +1 +1 1 0 1 1 0 0 1 1 0 0 0 0 +0 +1 1 0 1 1 1 1 0 1 1 0 0 0 +0 +1 1 1 0 1 0 1 0 1 1 0 0 1 +0 +1 1 1 1 0 0 0 0 0 0 1 0 0 +1 +0 1 1 0 0 1 0 0 0 1 0 0 1 +1 +1 1 0 1 0 1 0 0 0 1 0 0 1 +0 +1 1 1 1 1 0 1 1 0 1 1 0 0 +1 +1 0 1 1 0 0 0 1 1 1 1 0 1 +0 +1 1 1 1 1 0 1 0 1 1 0 0 1 +1 +1 0 0 1 1 0 1 1 0 0 1 0 1 +1 +1 0 0 0 0 1 0 0 0 0 0 0 1 +1 +0 1 0 0 0 0 1 1 0 1 1 0 1 +0 +0 0 1 0 0 0 0 1 0 0 1 0 0 +1 +0 1 0 1 1 0 0 1 1 1 1 0 1 +0 +0 0 1 1 0 1 1 1 0 1 0 1 1 +0 +1 0 1 0 1 0 0 0 1 1 0 1 1 +1 +1 0 1 0 0 0 1 1 0 0 0 0 1 +1 +0 0 0 0 1 0 0 1 1 1 0 0 1 +1 +0 0 1 1 0 0 0 1 0 0 0 1 1 +1 +0 0 0 0 0 0 1 0 1 1 0 0 0 +1 +0 1 0 1 1 1 1 0 0 0 1 0 0 +0 +0 1 0 0 1 0 1 1 1 0 1 1 0 +1 +1 1 1 1 1 0 0 1 0 0 0 0 0 +0 +0 0 0 0 1 1 0 1 1 0 1 1 1 +1 +1 0 1 1 1 1 0 0 0 0 0 0 0 +1 +0 1 1 0 0 0 0 1 1 0 0 1 0 +1 +0 0 0 0 0 1 1 1 1 0 0 1 1 +0 +0 1 0 1 0 1 1 1 1 0 0 0 1 +1 +1 1 1 0 0 0 1 1 0 1 1 0 1 +0 +1 0 0 1 1 1 1 0 1 1 1 1 0 +1 +1 1 1 0 0 1 1 0 1 1 1 0 1 +1 +0 1 1 1 1 1 1 1 1 1 0 0 0 +1 +0 1 1 1 0 0 0 1 1 0 1 0 1 +1 +1 0 1 1 0 1 0 0 1 0 1 0 1 +1 +1 1 0 0 0 1 1 1 1 1 1 1 1 +0 +0 1 0 1 1 0 0 1 0 0 1 1 0 +0 +0 1 1 1 1 0 0 1 0 0 1 1 0 +1 +0 1 0 1 1 1 1 0 0 1 0 1 0 +1 +0 1 1 0 1 1 1 0 1 0 1 0 1 +0 +1 1 0 1 1 1 1 1 0 0 0 0 1 +0 +1 0 1 1 0 1 0 0 1 0 1 1 0 +1 +1 0 1 0 1 1 1 1 0 1 1 1 1 +0 +1 0 0 1 1 0 0 0 0 0 0 1 0 +0 +0 1 1 1 0 0 0 0 1 0 1 1 0 +0 +0 1 0 1 1 1 1 0 1 0 0 0 0 +0 +0 0 0 1 0 1 0 0 1 0 0 1 1 +1 +1 0 1 0 0 0 1 0 1 1 0 1 1 +1 +0 1 0 1 1 1 1 1 0 0 0 1 1 +0 +0 1 0 1 0 0 0 1 0 0 1 0 0 +0 +1 0 0 0 1 0 1 1 1 1 0 0 1 +1 +0 1 1 1 0 0 1 0 1 1 1 1 0 +0 +0 1 1 0 1 1 0 1 1 1 1 1 0 +1 +1 1 0 0 0 1 0 1 1 1 1 0 1 +0 +1 1 0 0 0 0 0 0 1 0 1 1 0 +1 +0 0 1 1 0 0 0 1 0 1 1 0 0 +1 +0 0 0 0 0 1 1 1 0 0 1 0 1 +1 +0 0 0 0 1 1 0 1 1 1 1 1 1 +0 +1 1 0 1 0 1 0 1 1 1 0 1 0 +0 +1 0 0 1 1 1 0 1 1 1 0 1 0 +0 +0 1 1 1 1 1 0 1 1 0 0 0 1 +0 +1 0 1 0 0 0 0 0 1 1 1 0 0 +1 +1 1 0 0 1 1 0 0 0 1 0 0 1 +0 +1 0 1 0 1 1 1 0 0 0 0 1 0 +0 +1 1 0 1 0 1 0 0 1 1 0 1 1 +0 +0 0 0 1 1 0 1 1 0 0 0 0 0 +0 +1 1 1 0 0 1 1 0 0 0 1 1 1 +0 +0 0 1 1 1 0 0 1 1 0 0 0 0 +1 +0 0 0 1 0 0 0 0 1 0 1 1 1 +1 +1 1 1 0 1 1 0 1 0 1 1 0 1 +1 +0 1 1 1 0 0 1 0 0 0 0 1 1 +0 +0 0 0 0 1 1 0 1 1 0 1 0 1 +0 +0 0 1 1 1 0 1 0 0 1 0 1 1 +1 +0 0 0 0 0 0 0 1 0 1 0 1 0 +1 +0 0 1 0 0 1 0 1 0 1 1 1 0 +0 +1 1 0 1 0 0 1 1 1 1 1 0 0 +0 +1 0 1 1 1 1 0 0 1 0 0 0 1 +1 +0 0 1 1 0 1 0 1 0 1 1 0 1 +1 +1 1 0 1 1 0 0 0 1 1 0 1 1 +0 +1 1 0 1 0 1 0 0 1 1 1 0 0 +1 +0 0 0 0 0 1 0 0 0 0 0 1 1 +1 +1 1 0 0 0 1 1 0 1 0 1 1 0 +1 +1 0 1 1 0 0 1 1 0 1 1 1 1 +1 +0 0 1 1 0 0 0 1 0 0 0 1 0 +0 +1 1 1 1 0 0 0 1 0 1 1 0 0 +1 +1 0 0 1 1 0 0 0 0 1 1 1 1 +1 +1 1 0 0 0 0 0 0 1 0 0 0 0 +1 +0 0 0 0 1 1 1 0 1 1 0 1 1 +1 +1 1 0 1 0 0 0 1 0 0 0 1 0 +1 +0 0 1 1 0 1 1 0 1 0 0 1 1 +1 +1 1 1 1 0 1 1 0 0 0 0 0 0 +0 +1 0 1 0 1 1 1 1 0 0 0 1 0 +1 +0 0 1 0 1 0 0 1 0 0 0 1 1 +1 +0 0 1 1 1 0 1 1 0 1 0 1 1 +0 +0 0 0 0 1 1 1 0 0 1 1 0 0 +1 +1 1 0 0 1 0 1 1 0 1 1 0 0 +1 +1 0 0 1 1 0 0 1 1 1 1 0 1 +0 +0 0 1 0 0 0 0 1 1 1 0 1 1 +0 +0 1 1 0 1 0 0 0 1 1 0 0 0 +1 +0 1 1 1 1 0 0 1 0 1 0 0 0 +0 +0 1 1 1 1 1 1 0 0 1 0 0 1 +0 +0 0 1 0 0 1 0 0 1 0 1 0 1 +1 +1 0 0 0 1 0 1 0 1 1 0 1 0 +0 +0 1 0 1 0 0 0 1 0 0 1 1 1 +0 +1 1 0 1 0 0 0 0 0 0 0 1 0 +0 +0 0 1 1 1 0 1 1 0 1 1 0 1 +0 +1 0 1 1 0 1 0 1 0 0 1 0 0 +0 +1 1 1 1 0 1 1 0 1 1 0 1 0 +1 +1 1 1 1 0 0 1 0 0 0 0 0 1 +0 +0 1 0 0 1 1 0 1 1 0 0 1 0 +0 +0 0 0 1 1 0 1 1 0 1 1 1 0 +1 +0 1 0 0 1 1 1 0 0 1 0 0 1 +0 +0 0 1 1 1 1 1 1 1 1 1 1 1 +1 +1 0 1 0 0 1 0 1 1 0 1 1 0 +1 +1 1 1 0 0 1 1 1 1 1 1 1 1 +1 +0 1 0 1 0 0 1 1 0 0 0 1 1 +0 +1 0 0 1 1 1 0 1 0 0 0 0 1 +0 +0 0 1 0 0 1 1 1 0 1 0 0 1 +0 +0 1 1 0 1 0 0 1 0 0 0 1 1 +0 +0 1 0 1 1 0 1 1 0 0 0 0 1 +0 +0 1 1 1 1 0 0 1 0 0 1 0 1 +1 +1 0 1 0 1 0 0 0 1 0 1 0 1 +0 +0 0 1 1 0 1 0 1 1 1 1 0 1 +0 +0 1 1 1 0 1 1 0 1 0 0 0 0 +0 +1 1 0 1 1 1 1 1 0 1 0 1 1 +0 +1 1 0 1 0 0 0 0 1 1 1 0 0 +0 +1 0 1 0 0 0 1 1 0 0 0 1 0 +1 +1 1 1 1 1 0 1 0 1 1 1 1 1 +1 +1 1 1 0 1 1 0 1 0 0 1 0 0 +1 +0 1 0 1 1 0 0 1 1 0 1 1 1 +0 +0 1 0 0 0 1 0 1 0 0 0 0 0 +1 +1 1 0 1 0 0 1 1 0 1 0 1 1 +0 +0 1 1 1 1 1 0 1 0 1 0 0 1 +0 +1 0 1 0 1 1 0 1 1 0 0 1 1 +0 +1 0 0 0 1 0 1 1 0 1 0 1 0 +0 +1 1 1 0 1 1 1 0 0 1 0 0 0 +1 +0 1 1 1 0 0 0 1 0 0 0 0 0 +0 +0 0 0 1 1 1 1 1 0 1 0 1 1 +0 +0 0 1 0 1 1 0 1 0 1 1 1 1 +0 +1 0 1 1 1 0 0 1 0 1 1 1 0 +0 +0 1 1 0 1 0 1 1 1 0 0 0 1 +1 +0 1 1 1 0 0 0 0 1 1 1 1 0 +1 +0 0 0 0 0 0 1 1 0 0 0 0 0 +0 +1 1 0 0 1 0 1 1 1 0 0 0 1 +1 +0 1 1 0 1 0 0 0 0 1 0 1 0 +1 +0 1 0 0 1 1 1 1 1 0 0 1 1 +0 +1 1 1 1 1 0 1 0 0 0 0 1 1 +0 +1 1 1 0 1 0 1 1 1 1 1 0 0 +1 +0 0 0 0 1 1 1 1 0 1 0 0 1 +0 +1 0 0 0 1 0 0 0 1 0 0 0 0 +1 +0 1 1 1 1 0 1 1 1 0 0 0 1 +0 +0 0 1 1 0 1 0 0 0 1 0 1 0 +1 +0 1 1 0 0 0 0 0 1 1 1 0 0 +1 +1 0 1 1 1 0 1 0 0 0 0 0 1 +0 +0 1 1 0 1 1 1 0 1 1 0 0 1 +0 +0 0 0 1 0 0 0 1 1 1 0 0 0 +0 +0 0 1 1 1 0 0 1 1 1 1 0 0 +1 +0 0 0 0 0 0 1 1 1 1 0 1 1 +0 +0 1 0 0 0 1 0 1 0 0 1 0 0 +0 +0 0 0 1 0 0 1 1 1 0 0 1 1 +0 +0 0 0 0 1 0 0 0 1 1 0 0 1 +0 +0 1 1 0 1 0 1 1 1 1 1 1 0 +1 +1 1 1 0 1 0 1 1 0 0 1 1 0 +0 +0 0 0 0 0 0 0 1 0 0 1 0 1 +1 +1 0 0 1 0 1 0 1 0 0 1 1 0 +0 +1 0 1 1 0 1 0 1 0 0 1 1 0 +1 +1 1 0 0 1 1 0 0 0 1 1 0 1 +1 +1 1 1 1 0 1 1 0 1 0 0 1 1 +1 +0 1 0 0 1 1 1 1 0 1 0 0 0 +0 +1 1 0 1 1 1 1 0 0 1 0 0 0 +1 +1 1 1 1 1 0 1 1 1 0 1 0 0 +1 +1 0 0 1 0 1 1 1 1 1 0 1 0 +0 +0 0 1 0 0 0 1 0 0 0 1 1 1 +1 +0 1 0 0 0 1 0 0 1 1 1 0 1 +0 +0 1 1 0 0 0 0 0 1 1 0 0 0 +0 +0 1 0 1 1 0 1 0 1 0 1 1 1 +0 +1 1 1 1 0 0 0 1 1 0 1 0 1 +0 +1 1 0 1 1 0 0 0 0 1 1 0 1 +1 +0 1 0 1 0 1 0 0 1 0 0 1 0 +1 +0 0 0 1 1 0 1 1 1 1 0 0 0 +0 +1 0 0 0 1 0 0 1 0 0 1 1 0 +1 +1 0 1 1 1 0 0 0 0 0 1 0 0 +1 +0 0 1 0 0 1 0 1 0 1 0 1 1 +0 +1 1 1 1 1 0 0 0 0 0 0 0 1 +0 +1 0 0 1 1 1 0 0 0 1 0 0 1 +0 +1 1 0 1 0 0 0 1 1 1 0 0 0 +0 +1 0 0 1 1 1 1 1 0 1 0 0 1 +0 +1 1 1 0 0 0 1 0 1 0 1 0 1 +1 +1 0 1 1 0 0 1 1 1 0 1 1 0 +0 +1 0 0 1 1 1 1 0 0 0 1 1 1 +0 +0 0 0 0 1 1 1 1 1 0 0 1 0 +0 +1 1 1 0 0 1 0 0 0 0 1 0 1 +0 +0 0 1 0 0 0 1 1 1 0 0 0 0 +0 +1 0 1 1 0 0 1 1 1 0 0 0 1 +1 +1 0 0 0 1 1 1 0 0 0 0 1 1 +0 +1 0 1 1 1 0 1 0 0 1 0 0 0 +0 +1 0 0 1 1 1 0 0 1 1 0 1 0 +1 +0 1 1 1 0 1 1 0 1 1 1 0 0 +0 +0 0 0 1 1 1 0 1 0 0 1 1 1 +1 +0 0 0 1 0 0 0 0 0 1 1 0 1 +0 +0 0 0 1 0 0 0 0 1 1 1 0 0 +0 +1 0 1 0 1 1 1 1 1 0 0 1 0 +0 +1 0 0 0 0 1 1 1 0 0 1 1 1 +1 +0 0 1 1 1 1 1 1 1 1 1 0 0 +1 +0 1 1 1 1 0 0 1 1 1 1 0 1 +1 +0 1 1 1 1 0 1 0 0 0 0 1 1 +1 +0 1 0 1 1 0 1 1 0 1 1 0 1 +0 +0 0 1 1 0 1 0 0 1 0 0 0 1 +1 +0 0 0 0 0 1 1 0 0 1 1 0 0 +0 +0 1 1 1 0 0 0 1 1 1 0 0 0 +0 +0 1 1 0 1 0 0 1 0 0 1 0 1 +0 +1 0 0 0 1 0 0 1 1 1 0 0 0 +1 +0 1 1 0 1 1 1 1 0 1 0 0 0 +1 +0 1 1 1 0 1 0 0 0 0 0 1 0 +1 +1 0 1 1 1 1 1 1 0 0 1 1 1 +0 +1 1 1 1 1 1 1 0 1 1 0 0 0 +1 +0 0 1 1 0 1 1 1 0 0 1 1 0 +1 +1 0 0 1 0 1 0 0 1 1 1 1 0 +1 +1 1 1 0 1 0 0 0 0 0 0 0 1 +1 +1 0 0 1 1 1 1 1 0 0 0 1 1 +0 +1 1 1 0 1 1 1 0 0 0 1 0 0 +1 +0 0 1 1 1 0 0 1 0 0 0 1 0 +1 +1 0 1 0 0 1 1 0 0 1 1 0 1 +1 +0 1 1 0 1 0 0 0 0 0 0 0 1 +0 +1 0 1 0 1 0 1 0 0 1 1 0 0 +0 +0 1 1 0 1 0 1 1 0 1 1 1 0 +0 +0 0 0 1 1 1 0 1 1 0 1 1 1 +0 +0 0 1 0 1 0 0 1 1 0 0 1 1 +0 +0 1 0 0 0 0 0 0 1 1 1 1 0 +1 +1 1 0 1 1 1 0 1 0 0 0 1 1 +0 +0 1 1 1 1 1 1 0 1 0 1 0 1 +1 +1 1 1 0 0 1 1 0 1 0 1 0 0 +1 +1 0 0 1 1 1 0 0 1 1 1 0 0 +1 +0 0 1 0 1 1 1 1 0 0 1 0 1 +1 +1 1 0 1 1 1 1 0 1 1 1 1 1 +1 +1 1 0 1 0 1 0 1 0 1 1 1 0 +0 +0 1 0 0 0 1 1 1 0 1 0 1 1 +1 +1 1 1 1 1 1 0 0 0 0 1 0 1 +0 +1 1 1 1 1 0 1 0 1 0 0 1 1 +1 +0 1 1 0 1 0 1 0 0 1 0 1 1 +1 +1 1 1 0 0 1 0 1 1 0 1 0 0 +1 +0 0 0 0 0 0 0 1 1 0 1 1 1 +1 +0 0 0 1 1 1 0 1 0 0 0 0 0 +0 +1 1 1 0 0 1 0 0 0 1 0 0 0 +1 +0 1 1 0 1 0 1 0 1 1 0 1 1 +0 +1 1 1 1 0 1 0 1 1 1 1 1 0 +0 +0 1 1 0 0 1 0 1 0 1 1 1 1 +0 +0 1 0 0 1 1 0 1 0 1 1 0 1 +1 +1 1 1 0 1 1 0 1 0 1 0 1 0 +0 +1 0 0 1 0 1 1 0 1 0 1 0 1 +1 +1 1 0 0 1 1 0 1 0 1 1 0 0 +1 +1 0 1 1 0 0 1 1 0 0 0 0 0 +1 +0 1 1 0 0 1 1 0 1 1 0 0 0 +0 +0 1 1 0 0 1 0 0 0 0 0 0 1 +0 +1 1 1 0 1 1 1 0 1 0 1 1 1 +0 +1 1 1 1 1 0 1 0 1 1 1 0 0 +1 +1 1 1 0 0 1 0 0 1 1 0 1 0 +1 +0 1 0 1 0 1 0 0 0 0 0 0 1 +0 +0 0 0 0 1 0 0 0 0 0 0 0 0 +1 +1 0 0 1 0 0 1 1 1 1 1 0 0 +1 +0 1 1 1 1 0 0 1 0 0 0 1 1 +1 +1 1 1 1 0 1 0 0 1 0 1 1 0 +0 +1 1 1 1 1 0 1 0 1 1 0 1 1 +0 +1 1 1 0 0 1 0 1 0 0 0 0 0 +1 +0 0 0 0 0 1 1 1 0 0 1 0 0 +0 +0 1 1 0 0 0 1 1 1 1 1 1 0 +0 +1 0 1 1 1 0 0 1 0 1 0 0 1 +1 +0 1 1 0 1 1 1 1 0 1 0 1 1 +1 +1 1 0 1 1 0 1 0 0 1 0 1 1 +0 +1 1 1 0 1 1 1 1 1 1 1 0 1 +1 +1 1 0 1 1 1 1 0 0 0 0 1 0 +1 +1 0 0 0 1 0 1 1 1 0 1 1 0 +1 +0 1 1 1 1 1 1 1 1 1 0 1 1 +1 +1 1 0 0 1 0 0 0 1 1 0 1 0 +0 +1 1 1 1 0 1 1 1 0 0 1 1 1 +0 +1 0 0 0 0 1 0 0 0 0 1 1 0 +0 +0 0 0 0 0 0 1 1 0 0 0 1 0 +1 +1 0 0 1 1 0 1 0 1 0 0 1 1 +1 +1 0 0 1 1 0 0 1 1 1 1 1 1 +1 +0 1 1 0 1 1 0 0 1 1 0 0 1 +1 +0 0 1 0 0 1 0 1 0 0 1 1 0 +1 +0 0 0 0 1 0 1 0 1 1 0 1 1 +0 +0 1 1 1 0 1 1 1 1 1 0 1 1 +0 +0 0 1 1 0 1 0 0 1 0 0 0 0 +0 +0 0 1 1 1 0 0 0 1 1 0 1 1 +1 +0 1 0 0 0 1 1 1 1 1 1 0 1 +0 +1 1 0 1 1 0 1 1 1 1 0 0 1 +1 +1 1 0 1 0 0 1 0 0 0 1 0 1 +0 +0 1 1 0 0 0 0 0 0 0 1 0 1 +0 +0 0 0 1 0 0 0 1 0 1 0 0 0 +1 +1 0 1 1 0 1 0 1 1 1 1 1 1 +0 +1 0 0 0 1 1 0 1 0 0 1 1 1 +1 +0 1 0 1 0 0 1 1 0 1 1 0 0 +0 +1 1 1 0 0 0 0 0 0 1 0 0 0 +0 +0 0 0 0 1 1 0 1 0 0 1 1 0 +1 +1 1 0 1 1 0 0 1 0 0 0 1 0 +0 +1 1 0 0 1 1 0 0 1 1 1 0 1 +0 +1 0 0 1 1 1 0 1 0 0 0 0 0 +1 +1 0 0 0 0 0 1 0 1 0 0 0 1 +0 +1 1 0 0 1 1 0 1 0 1 0 1 1 +0 +1 1 0 0 1 0 1 0 0 0 0 0 1 +1 +1 1 1 1 0 1 0 0 1 0 0 1 1 +0 +1 0 1 0 1 0 1 0 1 0 1 1 1 +0 +1 1 1 1 0 1 0 0 1 1 1 1 0 +1 +0 1 1 1 0 1 1 0 0 0 1 1 0 +1 +0 0 1 1 1 0 1 1 1 0 0 0 0 +0 +0 1 1 1 1 1 0 1 0 0 1 1 1 +1 +0 0 1 1 0 1 1 1 0 0 1 0 1 +1 +0 1 0 0 0 0 1 1 0 1 0 1 0 +1 +0 0 1 1 0 0 1 0 1 0 1 0 0 +1 +0 1 0 0 0 1 0 0 0 0 0 1 0 +1 +0 0 0 0 0 1 0 1 0 1 1 0 0 +0 +1 0 1 1 0 1 0 1 1 0 0 1 1 +0 +0 0 0 0 1 0 1 1 1 1 0 0 0 +1 +0 0 1 0 0 0 1 0 0 0 0 0 0 +0 +0 0 1 0 0 0 1 0 1 1 1 1 1 +1 +1 1 1 0 1 0 0 1 1 1 1 1 0 +1 +0 0 1 1 0 1 1 0 1 0 1 0 1 +1 +1 0 0 0 0 0 1 0 0 0 1 1 0 +0 +1 1 1 1 1 0 1 0 0 0 1 1 1 +1 +1 1 1 1 0 0 1 0 1 1 0 1 0 +0 +1 0 1 0 0 1 1 1 1 0 0 0 1 +1 +0 1 0 0 0 1 1 0 1 0 1 0 1 +0 +0 0 1 0 1 1 0 1 1 0 0 1 1 +1 +1 0 0 1 1 0 0 1 1 0 1 1 1 +0 +1 0 1 1 0 1 0 0 1 1 1 0 0 +1 +1 0 1 0 1 0 1 1 1 0 1 1 0 +0 +1 1 1 1 0 1 1 1 1 0 0 1 0 +1 +1 1 1 1 1 1 0 0 1 0 1 1 0 +1 +0 0 0 0 0 0 0 0 0 0 0 1 1 +0 +1 1 1 0 1 0 1 0 1 1 1 0 1 +1 +0 0 0 0 1 1 0 1 0 0 0 0 0 +1 +0 0 1 0 0 0 1 0 0 1 1 0 0 +0 +1 0 1 0 1 0 0 1 1 0 0 1 0 +0 +0 1 1 0 1 0 0 1 0 1 1 0 1 +1 +1 0 0 1 0 1 1 1 1 0 1 1 0 +0 +1 1 1 1 1 0 0 0 1 0 0 0 0 +0 +0 0 1 1 0 1 1 0 0 0 0 1 1 +0 +0 1 0 1 0 1 1 0 0 1 1 0 1 +1 +0 1 1 0 1 1 0 0 0 1 1 0 0 +0 +1 1 0 1 0 1 0 0 1 0 1 1 0 +1 +1 0 1 1 0 0 0 1 0 1 1 1 1 +0 +1 1 0 1 1 0 0 1 0 0 0 1 1 +1 +1 0 0 1 0 1 1 0 1 1 1 0 1 +0 +1 0 1 1 0 0 0 0 1 1 0 1 1 +1 +0 0 1 1 0 1 0 0 0 1 0 1 1 +0 +1 1 0 1 1 1 1 0 0 0 0 0 0 +0 +0 1 1 1 0 0 1 0 0 0 1 0 0 +1 +1 1 1 0 1 1 1 1 0 1 0 0 1 +1 +0 0 0 0 0 0 1 1 1 1 1 1 0 +0 +0 1 0 1 1 1 0 0 1 0 1 0 1 +1 +1 1 0 0 0 0 1 1 0 0 1 0 0 +1 +1 1 1 1 0 0 1 0 0 1 1 0 0 +1 +0 0 0 0 1 1 0 0 1 0 1 0 1 +1 +1 0 1 0 0 0 1 0 0 1 0 1 0 +1 +1 0 1 1 1 1 1 1 0 1 1 0 0 +1 +0 1 1 0 1 0 0 1 1 1 1 0 1 +0 +1 0 0 1 1 1 1 0 0 0 0 0 1 +0 +1 0 0 0 0 0 0 0 1 0 1 1 1 +1 +0 1 1 0 0 0 1 0 1 0 0 1 0 +1 +0 1 0 1 1 0 1 0 0 0 1 1 0 +0 +0 0 0 0 0 1 1 1 1 1 0 1 0 +0 +1 1 1 0 1 1 0 0 1 0 0 1 0 +1 +1 0 1 0 1 0 1 1 0 1 1 1 0 +0 +0 1 1 1 1 1 0 0 1 0 0 1 1 +0 +1 1 0 0 1 0 1 1 0 1 0 0 0 +0 +0 0 1 1 1 1 1 0 0 1 0 0 0 +0 +1 0 0 1 0 1 1 1 0 1 0 0 1 +1 +1 0 1 1 1 1 0 1 0 0 1 0 0 +1 +0 1 0 0 1 0 1 0 1 0 0 1 1 +0 +1 0 1 0 0 0 0 1 1 0 1 0 1 +0 +1 0 0 0 1 1 1 1 0 1 0 1 0 +1 +1 0 1 1 1 0 1 1 1 1 1 1 0 +0 +1 0 0 1 0 0 1 1 0 0 0 1 0 +1 +1 0 1 1 1 0 1 1 0 0 0 0 0 +0 +1 0 1 1 1 0 1 0 1 0 1 1 1 +1 +0 1 1 1 1 0 1 0 1 1 0 1 0 +0 +0 1 0 0 0 1 0 0 1 0 1 0 1 +1 +0 0 0 1 1 0 1 0 1 1 0 0 1 +0 +0 1 1 0 0 1 1 1 1 1 1 0 1 +1 +0 0 1 0 0 1 0 1 1 0 1 0 1 +0 +0 0 0 0 0 1 0 1 0 0 0 1 0 +1 +0 1 1 0 1 0 1 1 0 0 1 1 0 +1 +0 0 0 0 0 1 0 0 0 1 0 1 0 +1 +0 0 1 0 1 0 0 0 0 1 0 1 0 +0 +1 0 1 1 0 1 1 0 0 0 0 0 1 +0 +1 0 0 0 0 1 1 1 1 0 1 1 1 +0 +0 1 1 1 0 0 1 0 1 0 1 1 0 +1 +0 0 1 1 0 0 1 0 1 0 1 1 0 +0 +0 1 1 1 1 0 0 0 1 0 0 1 0 +0 +1 1 0 1 0 1 0 1 0 0 1 0 1 +1 +0 0 0 0 1 0 0 1 1 1 1 1 0 +0 +0 0 0 1 0 0 1 1 0 0 1 1 1 +0 +0 0 1 1 0 0 1 1 1 0 1 1 0 +1 +0 1 0 1 1 1 0 0 0 1 0 1 0 +0 +1 1 1 0 1 1 1 0 1 0 0 1 1 +1 +0 0 1 0 0 1 0 0 1 1 1 1 0 +0 +0 1 1 1 1 1 0 1 0 0 1 0 0 +1 +1 1 0 1 1 0 0 0 1 0 0 0 0 +1 +0 1 0 1 1 1 0 0 1 1 0 1 1 +0 +0 0 1 1 0 0 1 0 0 1 1 1 0 +0 +0 0 1 1 0 0 0 1 1 0 1 1 1 +1 +0 1 0 1 1 1 1 0 1 0 0 1 0 +1 +0 1 1 0 0 0 1 0 0 0 1 0 1 +1 +0 0 1 1 0 1 0 1 1 1 0 1 0 +1 +0 0 1 1 0 1 1 1 1 1 0 1 0 +0 +0 1 0 0 1 0 0 1 1 1 1 1 1 +0 +1 0 0 1 1 1 1 1 1 1 0 0 1 +1 +0 0 0 1 1 1 1 1 0 0 1 1 0 +1 +0 1 0 1 0 1 1 1 0 1 0 0 1 +1 +0 1 1 0 0 1 0 0 1 0 1 1 0 +0 +1 0 1 0 0 1 0 1 1 1 1 1 1 +1 +0 0 1 1 1 0 1 1 1 0 1 1 1 +1 +0 0 0 0 0 1 1 0 0 0 0 1 0 +1 +0 1 0 1 0 0 0 0 1 0 0 1 0 +0 +1 0 1 1 0 0 1 0 1 1 0 1 1 +0 +0 1 0 1 1 1 1 0 1 1 1 0 0 +0 +0 0 1 0 1 1 0 1 0 0 0 1 0 +1 +1 0 1 1 1 0 0 0 0 0 1 1 1 +1 +1 0 1 1 1 0 1 0 1 1 0 1 0 +0 +0 0 0 1 1 1 1 1 0 1 0 1 0 +1 +1 0 0 0 1 0 0 1 0 1 0 1 0 +1 +1 1 0 1 1 0 1 1 1 0 0 1 1 +1 +1 1 0 1 0 1 1 1 1 0 1 1 0 +1 +1 0 0 0 0 0 1 1 0 1 0 1 1 +0 +1 0 1 1 1 1 1 1 1 1 1 1 0 +1 +0 1 1 0 0 0 1 1 1 0 1 1 1 +0 +0 1 1 1 0 0 0 0 1 1 1 0 0 +0 +0 1 0 0 1 1 1 1 0 0 1 1 0 +1 +1 1 0 0 1 1 1 1 0 1 1 1 1 +0 +0 0 1 0 0 0 0 0 0 0 0 0 0 +1 +1 1 1 0 1 1 0 1 0 1 0 0 0 +1 +0 0 0 1 1 1 0 0 1 0 0 1 0 +1 +0 1 1 1 1 1 0 0 1 0 1 1 1 +1 +0 0 1 1 1 1 0 1 0 0 0 1 0 +0 +1 0 1 0 0 0 0 0 1 1 1 1 0 +0 +0 0 0 1 1 0 0 0 1 0 1 0 0 +0 +1 1 0 0 1 0 0 1 0 0 0 0 1 +1 +1 1 0 1 1 0 0 0 1 0 1 0 0 +0 +1 1 1 0 0 0 1 0 0 0 0 0 1 +1 +1 1 1 1 1 1 0 0 1 1 1 0 0 +1 +0 1 1 1 1 0 0 1 1 0 1 0 0 +1 +0 0 0 1 1 1 0 1 1 1 0 1 0 +1 +1 0 0 0 1 0 0 1 1 0 1 1 0 +0 +1 0 1 1 1 0 0 1 1 0 0 0 0 +0 +0 0 1 0 0 0 1 0 1 1 0 1 0 +1 +1 0 0 0 0 1 0 1 0 0 0 0 0 +1 +1 0 1 0 0 0 0 0 0 1 0 0 0 +1 +0 1 1 1 0 1 1 1 0 0 1 0 1 +0 +1 0 0 0 0 0 1 0 1 0 1 1 1 +0 +1 1 0 0 1 0 0 1 0 0 1 0 1 +0 +0 0 1 0 1 0 0 0 0 0 1 0 1 +0 +0 0 0 0 0 1 1 0 0 1 1 0 1 +1 +1 1 1 0 1 0 0 1 0 0 0 0 0 +1 +0 1 1 1 1 0 0 0 1 1 0 1 0 +1 +0 0 0 0 0 1 1 0 1 0 1 1 0 +1 +1 0 1 1 0 0 1 0 1 1 1 0 1 +0 +0 1 0 1 1 0 0 1 1 0 0 1 1 +1 +1 0 1 0 0 1 0 1 1 0 1 0 0 +0 +0 0 1 1 1 1 1 1 1 1 1 0 1 +0 +1 1 1 0 0 1 1 0 1 1 1 1 1 +0 +1 0 1 1 0 1 0 1 1 0 0 0 0 +0 +0 1 0 1 1 1 0 0 1 1 0 0 1 +1 +1 1 1 1 0 1 0 1 0 0 0 1 1 +0 +1 1 1 0 0 1 1 0 0 1 0 0 0 +0 +0 0 0 1 1 0 0 1 1 0 0 0 0 +0 +1 0 1 1 0 0 0 0 0 1 0 0 0 +0 +1 1 1 0 0 1 1 0 1 1 0 1 0 +0 +0 0 1 1 1 1 0 1 1 1 0 0 1 +0 +1 1 0 0 0 0 1 1 0 0 1 0 1 +0 +1 1 0 0 0 1 1 0 1 0 0 0 0 +1 +1 1 1 0 1 0 1 0 1 0 0 0 1 +1 +0 0 1 1 1 0 0 0 0 1 0 0 1 +1 +1 1 0 0 0 1 0 0 1 0 0 1 0 +1 +1 1 1 0 1 1 1 1 1 1 1 0 0 +0 +1 1 1 1 1 0 1 1 1 0 1 1 1 +1 +0 1 1 1 1 0 1 0 1 1 1 1 1 +0 +1 0 1 0 1 0 0 1 0 0 1 0 0 +1 +1 1 1 1 1 0 0 0 1 0 0 0 1 +1 +0 0 1 1 1 1 1 1 1 1 0 1 1 +0 +1 0 0 1 1 0 1 0 0 0 0 0 0 +0 +0 1 0 1 0 1 0 0 0 1 0 0 1 +1 +1 0 1 1 1 1 1 1 1 0 0 0 0 +0 +0 0 0 0 1 1 0 0 0 1 0 0 1 +0 +1 1 1 1 0 0 0 0 1 0 0 1 0 +0 +1 0 1 1 0 0 1 0 1 1 0 1 0 +1 +1 0 0 0 1 0 1 0 0 0 1 0 0 +0 +1 1 1 0 1 0 1 0 0 0 1 1 1 +0 +1 0 1 0 1 0 0 0 0 1 1 0 0 +1 +1 0 1 0 1 0 0 0 0 1 0 0 1 +1 +1 0 1 1 0 0 0 0 0 1 1 1 1 +1 +1 1 0 1 0 0 0 1 1 0 0 0 1 +0 +1 0 0 0 0 0 0 1 1 0 0 1 0 +0 +0 1 0 1 0 0 1 0 1 0 0 1 0 +1 +1 1 1 1 1 0 1 0 0 0 0 1 0 +1 +0 0 0 1 1 0 1 0 1 1 0 0 0 +1 +0 0 1 0 1 1 0 0 0 1 1 1 1 +1 +0 1 0 0 0 0 0 0 1 1 1 0 0 +0 +1 1 1 0 1 1 0 1 1 0 0 0 1 +0 +0 1 0 0 0 0 1 1 0 0 0 1 0 +0 +1 1 0 1 1 1 0 0 1 1 0 0 0 +1 +1 1 0 1 0 0 0 1 1 1 0 1 0 +1 +1 0 1 0 1 1 1 0 0 1 0 1 0 +1 +1 1 1 1 0 1 0 0 1 1 0 1 0 +0 +1 1 1 0 1 1 0 0 0 0 0 0 1 +0 +1 1 1 1 0 0 1 0 1 1 0 0 0 +1 +0 0 1 0 1 0 0 1 1 0 0 0 0 +0 +0 0 0 1 1 0 1 1 1 1 0 1 1 +0 +0 0 1 1 1 0 0 1 1 1 1 1 0 +0 +0 1 1 0 1 0 0 0 0 0 0 1 1 +1 +1 1 1 1 1 1 0 0 1 0 0 0 1 +0 +1 1 0 0 0 1 1 0 1 1 0 1 1 +0 +0 1 1 1 1 0 0 0 0 1 1 0 0 +0 +0 0 0 0 1 1 1 0 1 0 0 0 0 +0 +1 1 0 0 0 1 0 0 0 0 0 1 1 +1 +0 0 1 1 0 0 0 0 1 1 0 0 0 +0 +0 0 0 0 1 1 1 0 0 1 0 0 0 +0 +0 0 1 0 1 0 1 1 0 1 0 0 1 +0 +0 1 1 0 1 1 1 1 1 1 1 1 1 +1 +0 0 1 1 1 0 0 0 1 1 0 0 0 +1 +1 1 0 1 1 0 1 1 0 1 0 1 1 +1 +0 1 1 1 1 0 0 0 1 1 1 1 0 +0 +1 0 1 1 0 1 1 0 1 1 0 1 0 +0 +0 0 0 1 1 0 1 1 0 0 1 0 1 +0 +0 0 0 1 0 1 1 0 0 0 0 1 1 +1 +0 1 0 0 0 1 0 1 1 1 0 0 1 +0 +0 1 1 1 0 1 0 0 1 0 1 0 0 +0 +1 0 1 1 1 0 0 1 0 1 1 0 1 +0 +0 1 0 1 0 0 0 1 0 0 1 1 0 +1 +1 0 1 1 0 0 0 0 0 1 0 1 1 +0 +1 1 1 1 0 0 1 0 0 1 0 1 1 +0 +0 1 1 1 1 0 0 1 0 0 0 0 0 +1 +0 0 1 0 0 1 1 1 1 0 1 0 1 +1 +1 1 0 0 1 0 1 1 0 0 0 0 1 +0 +0 0 1 0 1 0 1 1 0 1 0 1 0 +0 +1 0 0 0 1 1 0 1 0 1 1 1 1 +0 +1 1 0 0 0 1 0 1 1 1 0 1 1 +0 +1 1 1 1 0 1 1 0 1 1 1 1 0 +0 +0 0 0 1 1 0 1 1 0 0 0 1 0 +1 +1 1 0 0 1 0 1 0 1 1 0 0 0 +0 +0 1 1 0 0 1 1 1 1 1 0 0 0 +1 +0 0 0 1 0 0 0 1 0 1 0 0 1 +0 +0 0 1 1 1 1 1 0 1 1 0 0 0 +1 +0 1 1 0 0 0 0 1 1 1 0 0 0 +1 +0 0 0 0 1 1 1 1 1 1 0 1 0 +1 +1 1 0 1 1 0 1 1 0 0 0 0 0 +0 +0 0 1 0 0 0 0 1 0 1 1 0 1 +1 +1 1 0 0 1 0 0 0 0 1 0 1 0 +1 +0 1 0 0 1 1 1 0 1 0 1 1 0 +1 +0 1 0 1 1 0 0 0 0 1 0 1 1 +0 +1 0 1 1 0 0 0 1 0 1 1 1 0 +1 +1 1 0 0 1 0 0 1 1 1 0 0 1 +1 +0 0 0 1 0 0 0 1 1 0 0 0 0 +1 +1 0 0 0 0 0 1 0 0 1 0 0 0 +1 +1 0 1 1 0 1 1 1 0 1 0 1 0 +0 +1 0 1 0 0 1 1 1 0 1 0 0 0 +0 +0 1 0 0 0 1 0 1 0 1 0 1 1 +0 +1 0 0 0 0 0 0 1 0 1 0 1 0 +0 +0 1 1 0 0 1 1 0 0 1 1 1 1 +0 +1 0 1 0 0 0 0 1 1 0 0 0 0 +0 +0 1 1 1 0 0 1 0 0 1 0 0 1 +0 +1 0 1 0 1 1 0 1 0 0 0 1 1 +1 +0 1 0 1 1 1 0 1 1 0 1 0 1 +0 +1 1 1 1 0 0 1 1 0 0 0 0 0 +0 +1 1 0 0 1 1 0 1 1 1 1 1 1 +0 +1 0 1 0 1 0 0 0 1 1 1 1 0 +1 +1 0 0 1 1 1 0 1 0 1 0 0 0 +0 +1 1 1 0 1 0 1 0 1 1 0 1 1 +1 +1 1 1 0 1 0 1 1 1 1 1 0 1 +0 +1 0 1 0 1 0 1 1 1 1 0 1 1 +1 +1 0 0 1 0 0 1 0 1 0 1 0 0 +1 +1 0 1 1 1 0 1 1 0 1 1 0 0 +0 +0 0 1 0 0 0 0 1 1 0 1 1 1 +0 +0 0 1 1 1 1 0 0 0 0 0 1 0 +1 +0 0 0 0 0 0 1 0 0 0 1 0 1 +1 +0 1 0 1 0 0 0 0 0 1 0 0 1 +0 +1 0 1 1 1 0 1 1 1 1 0 0 1 +1 +0 0 1 0 0 0 1 1 0 1 0 1 0 +1 +1 0 0 1 1 0 0 1 0 1 0 0 0 +1 +0 1 1 0 1 0 1 1 1 0 0 1 0 +1 +1 1 1 1 1 0 0 1 0 1 1 1 0 +1 +0 0 0 1 1 0 0 1 0 1 0 1 0 +1 +1 0 0 1 1 0 1 0 1 1 1 0 1 +0 +1 1 1 0 0 1 1 0 0 1 0 1 1 +0 +0 0 0 1 0 1 1 1 1 1 0 1 1 +0 +1 1 0 1 0 1 0 1 1 0 0 1 0 +1 +0 0 0 0 0 1 1 1 0 1 1 1 1 +1 +0 0 0 0 0 1 0 0 0 0 1 1 1 +0 +1 1 0 0 0 0 0 1 1 0 0 0 0 +0 +0 0 1 0 0 1 1 0 1 0 1 0 0 +1 +1 0 0 1 1 0 1 0 0 0 1 0 0 +1 +0 1 0 0 1 0 1 1 1 1 0 0 0 +0 +0 0 1 1 1 0 1 1 1 1 0 0 0 +1 +0 1 1 1 1 0 1 1 1 1 1 0 1 +0 +1 1 0 0 0 0 1 0 1 0 0 1 1 +0 +1 1 1 0 0 0 0 1 0 0 1 1 1 +1 +1 0 0 1 0 1 1 0 0 0 0 1 1 +0 +1 0 1 0 0 1 0 0 1 1 0 0 1 +0 +0 1 1 0 1 0 1 0 0 0 1 0 1 +0 +1 1 1 0 1 0 1 1 1 1 1 1 0 +0 +0 1 0 1 1 1 1 1 0 1 1 1 0 +1 +0 1 1 1 1 0 0 0 0 0 0 1 1 +0 +1 1 0 0 1 0 0 1 1 1 0 1 0 +1 +0 0 0 1 1 0 1 0 1 0 1 1 1 +1 +1 1 0 1 0 1 1 1 0 1 0 1 1 +1 +0 0 0 1 1 1 1 1 0 1 1 0 1 +0 +1 0 1 0 0 1 0 1 1 1 1 0 1 +0 +0 0 0 0 1 1 0 0 0 0 1 1 1 +1 +0 1 0 0 1 1 1 0 1 0 0 0 0 +1 +1 1 0 0 1 0 1 0 0 1 0 0 1 +0 +1 0 0 0 1 1 0 0 0 1 1 0 0 +1 +0 0 1 1 1 0 0 0 1 1 0 1 0 +0 +1 1 0 1 1 1 0 0 0 0 0 0 1 +0 +0 0 1 1 1 1 1 1 0 1 0 1 0 +0 +1 1 0 0 1 1 0 0 0 0 0 0 1 +1 +1 1 1 1 1 0 1 1 1 1 1 0 0 +0 +0 0 1 1 1 1 0 1 0 0 1 0 0 +0 +1 1 0 0 1 1 1 1 1 0 0 0 0 +1 +1 0 1 0 0 1 1 1 0 1 1 0 1 +0 +1 1 0 1 1 0 0 1 1 0 0 1 0 +1 +1 0 1 0 0 0 1 1 1 0 1 1 0 +1 +1 1 1 1 0 1 1 0 1 0 1 0 0 +0 +1 0 1 0 0 1 0 0 0 0 1 0 0 +0 +0 0 0 1 0 1 1 0 0 1 1 0 1 +0 +1 1 0 0 0 1 1 1 0 1 0 1 0 +1 +1 1 0 1 1 0 1 0 0 0 0 1 0 +0 +0 0 0 1 1 1 0 1 1 1 0 1 1 +0 +0 0 0 0 0 1 1 0 1 1 0 0 0 +0 +1 0 0 0 0 0 0 1 1 1 0 1 1 +0 +0 1 1 1 0 0 0 0 0 0 0 0 1 +0 +0 1 1 1 1 1 1 0 0 1 0 1 1 +1 +0 0 0 0 1 1 1 0 0 0 0 0 0 +1 +1 0 1 1 0 0 0 1 0 1 0 0 0 +1 +0 0 0 1 0 1 1 0 1 1 0 0 0 +1 +0 1 0 1 1 1 0 0 1 1 0 0 0 +0 +0 1 0 1 1 1 1 0 1 1 0 1 0 +0 +1 0 0 0 0 0 0 0 1 0 0 0 0 +0 +1 1 1 1 1 0 0 1 1 0 1 0 1 +1 +0 1 1 1 0 0 0 1 0 1 1 0 1 +1 +0 1 1 1 0 1 1 1 0 0 1 1 0 +0 +0 1 0 1 0 1 1 0 1 1 0 1 1 +0 +1 0 1 0 1 0 0 1 0 0 1 1 1 +1 +0 1 1 1 0 0 1 0 1 0 1 0 0 +0 +1 1 1 0 0 1 0 0 0 1 0 1 1 +1 +1 1 0 0 1 0 1 1 1 1 1 1 0 +1 +1 1 1 0 1 0 1 1 1 1 1 1 1 +1 +1 0 0 1 1 0 1 0 1 1 0 0 1 +1 +1 1 1 1 1 0 1 0 0 0 1 1 0 +0 +0 1 1 0 1 1 1 0 0 0 1 0 0 +0 +0 1 1 1 1 1 0 0 0 1 0 1 0 +1 +0 0 1 0 1 1 1 0 0 1 0 1 1 +1 +1 1 1 0 1 0 0 1 1 0 0 1 0 +1 +0 0 1 0 1 0 1 0 0 1 0 1 0 +1 +0 0 1 1 0 0 0 1 1 0 0 1 0 +1 +1 0 1 0 0 1 0 1 0 0 1 1 1 +1 +1 1 0 1 1 0 0 0 0 0 0 0 0 +0 +0 0 0 1 0 1 1 1 1 0 0 0 1 +0 +1 1 1 1 0 0 0 1 0 0 0 0 1 +0 +0 0 0 0 0 0 0 1 1 0 1 1 0 +0 +1 0 0 1 0 1 1 0 1 0 1 1 0 +1 +0 1 0 1 1 0 0 1 0 0 0 1 0 +1 +0 1 1 0 1 0 1 0 1 0 1 0 0 +0 +0 0 1 0 0 1 1 1 1 1 1 0 1 +0 +0 0 1 1 1 1 1 0 0 0 0 0 0 +1 +1 0 0 0 0 0 1 1 0 1 0 0 0 +0 +0 0 0 1 1 1 0 1 1 1 1 1 1 +1 +0 0 0 1 0 0 0 1 0 1 1 0 0 +0 +1 1 0 0 1 0 0 1 1 1 1 0 1 +0 +1 0 0 0 1 1 0 0 1 1 1 1 1 +0 +1 0 0 0 1 1 1 1 1 1 1 0 1 +1 +1 0 0 1 1 0 1 1 0 1 1 0 0 +1 +0 1 1 0 1 1 1 1 0 0 1 1 0 +0 +0 1 0 0 1 0 0 1 1 0 1 1 0 +0 +1 0 0 0 0 1 1 0 1 0 1 1 1 +1 +1 1 1 1 0 1 1 0 0 1 1 1 0 +1 +1 0 0 1 0 1 1 0 0 0 1 1 1 +1 +0 0 0 1 0 0 0 1 1 0 1 1 1 +0 +0 0 0 1 1 1 1 1 0 0 0 1 0 +0 +1 0 1 0 0 0 0 1 1 0 1 0 0 +1 +0 0 1 0 1 1 1 0 1 0 1 0 0 +0 +1 0 0 0 1 1 1 1 1 1 0 1 0 +0 +1 0 0 0 1 0 1 0 1 0 1 1 0 +0 +1 1 0 0 0 0 0 1 0 1 0 1 1 +0 +1 1 0 0 0 0 1 0 0 1 0 1 0 +1 +1 1 0 0 0 0 1 0 1 0 0 0 1 +1 +0 1 0 0 0 1 0 1 0 1 1 0 1 +0 +0 0 1 0 1 0 1 1 1 1 0 1 1 +0 +1 0 0 1 0 1 0 1 1 1 1 1 0 +0 +0 0 1 0 0 0 1 1 1 0 1 1 0 +0 +1 0 0 0 0 0 0 1 0 1 0 0 0 +1 +0 1 0 1 0 0 0 0 0 1 1 1 0 +1 +1 0 1 0 1 0 0 1 1 0 1 0 0 +0 +1 1 0 0 0 1 1 1 0 1 0 1 1 +0 +0 0 1 1 0 1 0 1 0 0 0 1 0 +1 +0 0 0 0 1 0 1 0 0 1 0 1 1 +1 +1 1 1 0 0 0 0 1 0 1 1 1 0 +1 +0 0 1 0 0 1 0 1 0 1 0 0 1 +1 +1 0 0 1 1 0 1 1 0 0 0 1 1 +1 +0 0 0 0 1 1 0 0 0 1 0 1 0 +0 +0 1 0 0 1 0 0 1 1 1 0 0 0 +1 +1 1 0 1 0 0 1 1 1 0 1 0 0 +1 +1 1 0 1 0 0 1 0 1 1 1 0 1 +0 +1 0 0 0 0 0 1 1 1 1 1 0 0 +0 +0 1 1 1 0 1 1 0 0 0 1 0 0 +0 +1 0 1 0 0 1 1 1 0 1 0 1 0 +1 +1 0 0 1 1 0 0 0 0 1 1 0 0 +1 +0 0 0 1 0 1 0 1 0 0 0 1 0 +0 +0 0 0 0 1 0 0 0 0 1 1 1 1 +1 +1 1 0 0 1 1 1 0 0 1 1 1 0 +0 +0 0 1 1 0 0 1 0 1 1 1 0 1 +1 +1 0 1 0 0 0 0 0 1 1 0 1 1 +0 +1 0 1 1 0 1 0 1 1 1 0 1 0 +0 +1 0 1 0 1 0 1 1 1 0 1 0 0 +1 +1 0 1 1 1 0 0 1 0 0 1 1 1 +0 +0 0 0 0 0 1 1 1 0 0 0 1 1 +1 +1 1 1 1 0 0 0 0 0 1 0 1 1 +1 +0 0 0 0 0 0 0 0 0 0 0 0 1 +1 +1 0 0 1 1 1 0 0 1 0 0 0 1 +0 +1 1 1 1 1 0 1 0 0 1 0 0 1 +0 +0 1 1 1 0 0 1 0 0 1 1 0 1 +1 +1 0 0 1 1 1 1 1 1 1 0 0 0 +0 +0 1 0 1 1 0 1 1 1 1 1 0 1 +1 +0 1 0 0 1 0 0 0 0 0 1 0 0 +1 +0 0 1 0 0 0 1 0 1 1 0 1 1 +0 +0 0 1 0 1 1 0 1 0 0 0 0 0 +0 +1 1 0 0 0 0 1 0 0 0 0 1 1 +1 +1 1 1 1 1 1 0 1 0 1 1 1 0 +0 +1 0 0 1 1 1 1 0 0 1 1 1 1 +1 +1 0 1 0 0 0 1 1 0 0 0 0 0 +0 +1 0 1 0 1 1 1 0 1 0 1 0 1 +0 +0 1 0 0 1 1 1 0 0 0 0 1 0 +1 +0 1 1 1 1 1 1 0 0 0 0 1 0 +1 +1 1 0 1 0 0 1 0 0 0 0 1 1 +0 +0 1 1 0 1 1 1 1 1 0 0 1 1 +1 +0 1 0 0 0 1 1 0 0 1 1 1 1 +1 +1 0 1 1 0 1 0 0 1 1 0 1 1 +0 +1 1 1 1 1 0 1 0 0 0 0 0 0 +0 +0 0 1 0 1 1 0 0 0 1 0 0 1 +1 +1 1 0 0 0 1 1 1 0 1 1 0 1 +0 +1 1 0 0 0 0 0 0 0 0 0 0 0 +0 +1 1 0 1 0 0 0 0 0 0 1 0 1 +1 +1 0 1 0 0 1 0 0 0 1 1 0 0 +1 +1 0 0 0 1 1 1 0 1 0 1 1 1 +0 +1 0 1 0 1 1 0 0 0 1 0 1 0 +0 +0 1 1 1 1 0 1 1 1 1 1 1 0 +0 +1 0 0 0 0 0 0 0 0 1 1 1 0 +0 +1 1 0 0 0 1 0 0 0 1 1 0 1 +0 +0 0 0 0 1 0 1 0 0 1 0 1 0 +0 +0 0 1 0 1 1 1 1 1 1 1 0 1 +1 +1 0 1 1 1 0 1 0 1 1 0 0 1 +0 +0 1 0 0 0 0 1 0 1 0 1 0 0 +0 +1 0 1 0 1 1 0 1 0 0 1 0 1 +1 +0 0 1 1 0 1 1 1 1 0 1 0 1 +0 +0 0 0 1 0 1 1 0 0 1 0 0 1 +1 +1 1 1 1 0 1 1 0 1 1 1 1 1 +1 +1 1 0 0 0 1 0 1 0 1 1 0 1 +1 +1 1 0 0 0 0 1 0 1 1 0 0 1 +0 +0 0 1 1 1 1 1 0 0 1 0 1 0 +1 +1 0 1 1 0 1 1 1 1 0 1 0 1 +1 +0 1 1 0 0 1 1 0 0 0 0 0 1 +1 +1 1 0 0 0 1 0 0 1 0 0 0 0 +0 +1 1 0 1 1 1 1 0 1 0 0 1 0 +0 +0 0 0 0 0 1 1 0 1 1 1 0 1 +0 +1 1 1 1 1 1 1 0 0 0 1 0 0 +0 +0 1 0 1 0 1 1 1 1 1 1 0 1 +1 +0 1 0 0 0 0 1 1 1 0 1 0 1 +0 +1 0 0 0 0 0 0 0 1 1 0 0 0 +1 +0 0 1 0 0 0 0 0 0 1 0 1 0 +1 +1 1 0 1 0 0 1 1 0 1 0 0 0 +0 +1 0 0 1 0 1 0 1 1 0 0 1 1 +1 +1 1 0 1 1 0 1 1 0 1 1 1 1 +0 +0 1 1 1 1 1 0 0 1 1 0 1 1 +1 +0 0 1 0 1 0 1 1 0 0 1 0 1 +0 +0 0 1 1 0 0 1 0 0 0 1 1 1 +0 +1 0 1 0 0 0 1 1 1 0 0 1 0 +0 +0 0 0 1 0 0 1 1 0 1 1 1 0 +0 +1 0 1 1 0 0 1 0 0 1 0 1 0 +0 +0 0 0 0 0 0 0 1 0 0 0 0 1 +0 +1 0 0 1 1 1 1 1 0 1 1 1 0 +1 +1 1 1 0 0 0 0 1 1 0 0 1 0 +0 +0 0 0 1 0 0 1 1 0 1 0 1 0 +1 +0 0 0 1 0 0 1 0 1 1 1 0 1 +0 +0 0 1 1 1 0 0 0 1 0 1 0 1 +0 +1 0 0 1 1 1 1 0 1 0 0 1 0 +1 +0 0 0 0 0 0 0 0 0 1 1 1 0 +1 +1 1 1 1 0 1 1 0 0 1 0 0 0 +1 +0 0 1 0 1 1 1 0 1 0 0 1 1 +1 +1 1 0 1 0 1 1 0 0 0 0 1 1 +1 +0 1 0 0 0 0 0 1 1 1 1 1 1 +1 +1 0 1 1 1 0 0 0 0 1 1 0 0 +0 +1 0 1 0 1 0 1 1 1 1 1 1 0 +1 +1 1 0 1 1 0 1 0 0 1 0 1 0 +1 +0 1 0 1 0 1 0 0 1 1 0 1 0 +0 +1 1 0 0 0 1 0 1 1 0 0 1 1 +1 +0 0 0 0 1 1 1 1 1 0 1 1 1 +0 +0 1 0 1 0 0 1 1 0 1 1 1 0 +1 +0 0 1 1 0 0 0 0 1 1 1 0 1 +0 +0 0 1 0 0 1 1 1 1 0 1 1 1 +0 +0 1 1 1 0 0 1 1 0 0 0 1 1 +1 +0 1 0 0 0 0 0 0 1 1 1 1 1 +0 +1 1 1 1 0 1 1 1 1 1 0 0 0 +1 +1 0 0 1 0 1 0 1 1 1 1 0 1 +0 +0 0 0 0 0 0 1 0 0 1 0 1 1 +0 +0 1 0 0 0 1 1 0 0 0 1 1 0 +1 +1 0 1 0 1 0 1 1 1 1 0 0 1 +0 +0 0 0 0 0 0 1 0 1 0 1 0 0 +1 +1 1 0 0 0 0 1 1 1 0 0 0 0 +1 +0 1 0 0 0 0 1 0 0 1 1 1 1 +0 +0 1 1 1 0 1 1 0 1 0 1 0 0 +1 +0 0 0 0 0 1 1 1 1 1 0 1 1 +1 +0 0 0 0 1 0 0 0 0 0 0 1 0 +0 +1 1 1 0 1 1 1 0 0 0 1 1 1 +1 +0 1 1 0 1 1 1 0 0 1 1 1 1 +1 +0 0 0 1 0 1 0 0 1 0 0 1 0 +0 +0 0 1 1 1 1 1 1 0 1 0 0 1 +0 +0 1 1 1 0 0 0 0 0 0 1 1 1 +0 +0 0 1 1 1 1 0 0 1 0 0 1 1 +1 +0 0 0 0 0 1 0 0 0 1 1 0 1 +0 +1 1 1 1 0 0 1 1 1 0 0 0 0 +1 +1 0 1 1 0 0 1 0 0 1 0 0 0 +1 +1 1 1 1 0 1 1 1 1 0 0 1 1 +0 +1 0 1 1 0 1 1 1 0 1 0 0 0 +1 +1 0 0 1 1 1 1 0 0 1 1 1 0 +0 +0 1 0 1 1 0 1 1 1 0 1 0 1 +0 +1 0 1 0 1 1 0 0 0 0 0 0 1 +1 +0 1 0 0 0 0 1 1 1 0 1 1 1 +1 +0 0 1 1 1 0 1 0 1 0 0 0 1 +0 +1 0 0 0 1 1 0 1 0 1 0 1 0 +0 +0 1 0 0 0 0 0 0 1 1 0 0 1 +0 +1 1 1 0 1 1 0 1 1 1 1 0 0 +1 +0 0 1 1 1 1 1 0 1 1 1 1 1 +0 +1 1 1 1 0 0 0 1 0 1 0 1 0 +1 +1 0 1 1 1 0 0 0 1 0 1 0 1 +1 +1 0 0 1 1 0 1 0 0 1 1 0 1 +1 +0 0 1 1 0 0 1 1 1 0 0 0 0 +1 +1 0 0 0 1 0 1 1 0 0 0 1 1 +0 +0 0 0 1 0 0 0 0 1 0 0 0 1 +1 +0 0 0 0 1 1 1 1 1 1 1 1 0 +0 +1 1 0 0 1 0 0 0 0 0 0 0 0 +1 +0 0 0 0 1 1 1 1 1 1 1 1 1 +1 +1 1 1 1 1 0 0 0 1 1 1 0 1 +1 +0 1 1 1 0 1 1 1 1 1 1 0 0 +1 +0 0 1 0 1 1 0 0 0 1 0 1 0 +1 +0 1 0 1 1 0 0 1 1 0 0 0 0 +1 +0 1 0 1 0 1 0 0 1 1 0 0 1 +0 +1 0 0 0 0 1 0 0 1 1 1 1 0 +0 +0 0 1 1 0 0 1 0 0 1 0 1 1 +0 +1 0 0 1 0 1 0 1 1 0 1 1 1 +0 +0 0 0 1 1 1 0 0 0 1 1 0 0 +1 +0 1 1 0 0 0 1 0 0 1 1 1 1 +1 +1 0 0 0 0 1 0 1 0 0 0 1 0 +0 +0 1 1 1 0 0 0 0 0 1 0 0 1 +1 +0 0 0 1 1 1 0 1 1 0 1 0 1 +1 +0 1 0 1 0 1 1 0 0 1 0 1 0 +0 +1 0 0 1 0 1 0 1 1 1 1 0 0 +1 +0 1 1 1 0 0 1 0 0 1 1 0 0 +0 +1 0 1 1 0 1 1 0 0 1 1 0 1 +0 +0 1 1 1 0 0 0 1 0 0 1 1 0 +0 +1 1 1 0 0 1 1 1 0 0 0 0 0 +0 +1 1 1 1 0 1 1 0 1 0 0 1 0 +0 +1 0 0 0 0 0 0 0 0 1 0 1 0 +1 +0 0 1 0 0 1 0 1 0 0 0 0 0 +1 +1 1 1 1 1 1 1 1 1 1 0 0 1 +1 +1 0 0 1 0 1 0 0 1 1 0 1 1 +1 +0 0 0 1 1 0 0 0 0 0 0 0 1 +1 +0 0 0 0 1 1 1 1 0 1 0 1 0 +0 +0 0 0 1 1 1 1 1 1 0 0 0 1 +1 +1 0 1 1 1 1 0 0 1 1 1 0 1 +1 +0 0 0 0 1 1 1 1 0 1 0 0 0 +1 +0 0 0 0 1 0 0 0 1 1 1 1 1 +0 +0 1 0 1 0 0 1 0 1 0 0 0 0 +0 +0 0 1 1 0 1 0 0 0 0 0 0 0 +1 +0 0 1 0 0 1 0 1 0 1 1 1 1 +1 +1 1 0 0 1 0 0 0 0 1 1 0 0 +1 +0 1 1 0 1 1 1 0 1 0 1 1 0 +0 +0 0 0 1 0 0 1 1 1 1 0 0 1 +0 +1 0 0 0 1 1 1 1 1 0 1 0 1 +0 +0 1 1 0 1 1 0 1 1 1 1 0 1 +1 +0 1 1 0 0 0 0 0 1 0 0 0 1 +0 +0 1 0 0 1 1 1 0 1 0 0 1 1 +1 +1 0 0 0 1 1 1 1 0 0 1 0 1 +1 +0 0 0 0 0 1 1 1 0 1 0 1 1 +0 +0 1 0 0 1 0 0 1 0 0 1 0 1 +1 +0 0 1 0 1 0 0 0 1 1 0 1 1 +0 +1 1 1 1 1 0 1 1 0 1 0 1 1 +0 +1 1 1 1 0 0 0 0 1 0 0 0 1 +0 +1 1 1 1 0 1 0 0 1 1 1 0 0 +0 +0 1 0 0 1 1 1 0 0 1 0 1 0 +0 +1 0 0 0 0 1 1 0 0 1 1 1 1 +1 +0 0 1 0 0 0 1 0 0 0 1 0 1 +0 +0 0 1 1 1 1 0 1 0 1 0 1 1 +0 +0 1 1 1 1 0 1 1 0 1 1 1 0 +1 +0 0 1 0 1 0 1 1 1 0 0 1 1 +1 +1 0 1 0 0 1 1 1 1 1 0 1 1 +1 +0 0 1 0 0 1 0 1 1 0 0 0 0 +0 +0 0 0 0 0 1 0 0 1 0 1 0 1 +0 +1 0 1 0 1 0 1 1 0 0 0 0 1 +0 +0 1 1 1 0 1 1 1 0 1 1 1 0 +1 +1 0 0 0 1 0 0 0 0 0 1 0 1 +0 +1 0 1 1 0 0 0 1 0 0 1 0 1 +0 +1 0 0 1 1 0 0 0 1 1 1 0 0 +0 +0 0 1 1 0 1 1 1 0 1 1 1 0 +0 +1 0 1 1 1 1 1 1 1 0 0 1 1 +0 +0 1 0 1 0 1 1 1 0 0 1 1 0 +1 +1 0 0 0 0 0 0 0 1 0 1 0 0 +1 +0 1 0 0 0 1 0 0 0 1 1 1 0 +1 +0 0 0 0 0 1 0 0 1 1 1 1 1 +0 +0 1 1 1 0 1 0 1 1 1 1 0 0 +0 +0 0 0 0 1 1 0 1 1 0 0 1 1 +0 +0 1 0 1 0 0 0 0 0 1 0 1 0 +0 +0 1 0 0 1 1 0 1 0 0 0 0 1 +1 +0 1 0 0 0 1 1 0 1 0 1 1 1 +1 +0 1 0 1 1 1 1 0 0 0 1 1 0 +1 +0 0 0 1 1 0 1 1 1 0 0 1 1 +1 +1 0 1 1 1 1 1 1 1 0 0 1 0 +1 +0 1 0 0 0 1 0 0 0 0 1 0 1 +0 +1 1 1 0 0 1 1 1 0 1 0 1 0 +0 +1 0 0 1 1 0 0 0 1 0 0 1 0 +1 +0 0 0 1 0 0 1 1 1 1 0 1 1 +1 +1 1 0 1 1 0 0 1 0 1 0 1 1 +0 +0 0 0 1 1 0 0 0 0 0 1 0 0 +1 +0 1 0 0 1 0 0 0 0 0 0 1 0 +1 +0 0 0 1 0 0 0 1 1 1 0 0 1 +1 +1 0 1 0 1 1 0 1 0 0 0 0 0 +1 +0 1 1 0 1 0 1 0 0 1 0 0 1 +0 +1 1 1 0 1 1 0 0 0 0 1 0 0 +0 +0 0 1 1 1 0 1 0 0 1 0 1 0 +0 +1 0 1 1 0 0 0 1 0 1 1 0 0 +0 +0 1 1 0 0 0 1 0 0 1 0 1 0 +1 +1 1 1 0 1 0 1 1 0 0 1 0 0 +1 +1 1 0 1 1 1 1 1 0 0 1 1 0 +1 +1 1 1 0 1 0 1 0 0 1 0 1 1 +0 +1 1 1 1 0 1 0 1 1 0 1 1 0 +1 +0 1 1 1 0 0 1 1 1 1 0 0 1 +0 +0 0 1 0 0 1 1 0 1 1 1 1 1 +0 +1 0 1 1 0 0 0 0 0 0 1 0 1 +1 +0 1 1 0 1 0 1 0 1 1 0 0 1 +1 +1 0 0 1 0 0 1 0 0 1 1 0 0 +1 +0 0 0 1 0 0 0 0 1 1 0 0 1 +0 +0 1 1 0 0 1 1 0 1 1 0 1 0 +1 +0 0 1 0 1 0 0 0 1 1 1 1 0 +0 +1 0 1 1 0 0 0 0 1 0 0 1 1 +0 +1 0 1 0 0 0 0 0 1 1 0 1 0 +1 +1 1 0 1 0 1 0 0 1 1 0 1 0 +1 +1 0 1 1 0 1 1 0 1 0 1 1 0 +0 +1 1 0 0 1 1 0 0 1 0 1 0 1 +1 +0 1 1 1 1 0 0 1 1 0 0 1 1 +0 +0 1 0 0 1 1 0 0 1 1 0 1 0 +0 +1 1 1 0 0 0 1 1 1 1 0 0 0 +1 +1 1 1 1 1 1 1 0 0 1 0 0 1 +1 +1 1 1 0 0 1 1 0 0 0 1 0 0 +0 +1 0 1 1 0 0 1 1 1 1 1 1 1 +0 +1 1 1 0 0 1 0 0 0 0 1 0 0 +1 +1 1 0 0 1 1 1 0 0 1 1 0 1 +0 +0 0 0 1 0 0 1 0 0 1 0 1 0 +0 +1 0 1 1 1 0 0 0 0 1 0 0 1 +0 +1 0 1 0 1 1 0 0 1 0 1 0 0 +0 +0 1 0 1 0 0 1 1 1 1 1 1 0 +0 +1 1 0 0 1 1 1 0 0 0 1 0 1 +1 +1 1 1 0 0 1 1 1 0 1 0 0 0 +1 +0 1 1 1 1 0 0 1 1 1 0 0 0 +1 +0 1 1 1 0 1 0 0 0 0 1 1 0 +0 +0 0 1 0 0 0 0 0 1 0 0 0 0 +0 +0 1 1 1 1 0 0 0 1 1 1 0 0 +1 +0 1 0 0 1 0 1 0 1 1 0 1 1 +1 +1 0 1 1 1 1 0 0 0 0 0 1 0 +0 +0 1 0 1 0 0 0 1 1 0 0 0 0 +0 +0 0 0 0 1 1 1 0 1 0 1 1 0 +0 +0 1 1 1 0 0 0 1 0 1 1 1 0 +1 +0 0 1 1 0 1 0 0 0 0 0 0 1 +0 +0 1 0 1 1 1 1 0 0 0 0 1 0 +0 +0 1 0 1 0 1 0 0 0 1 1 1 0 +0 +0 1 1 0 1 0 1 0 0 0 0 0 0 +0 +0 0 0 0 1 0 0 0 1 0 0 0 1 +1 +0 1 1 1 0 1 0 0 0 1 1 1 1 +0 +0 1 0 1 0 0 1 1 0 0 1 0 1 +0 +0 1 1 1 0 0 0 0 1 1 0 1 0 +0 +0 0 1 0 1 1 1 1 1 1 0 1 0 +0 +1 0 1 0 1 1 0 0 1 1 1 0 1 +0 +1 0 0 1 0 1 1 0 1 1 0 1 1 +0 +0 1 0 0 0 0 0 1 0 1 1 1 0 +1 +1 1 0 0 1 0 0 1 0 0 1 1 0 +0 +0 0 0 0 0 0 1 1 1 0 1 0 1 +1 +1 1 1 0 1 1 0 0 0 0 1 1 1 +0 +1 0 1 0 1 0 0 1 0 1 0 0 1 +0 +1 1 0 0 1 0 1 1 1 0 1 1 1 +1 +1 1 1 1 1 1 0 1 0 1 0 0 0 +0 +0 0 0 0 0 0 0 0 0 1 1 1 1 +0 +1 1 0 0 0 0 1 0 0 0 0 1 0 +0 +1 0 1 0 0 1 1 1 1 1 0 0 0 +1 +1 0 1 1 1 1 1 1 0 0 0 1 0 +0 +1 0 0 0 1 1 0 0 1 1 0 0 0 +1 +0 1 0 0 0 0 0 1 0 1 1 0 1 +1 +0 1 1 1 1 1 1 1 1 0 0 1 1 +0 +0 0 0 1 0 0 0 1 1 0 1 0 0 +0 +1 0 0 0 0 1 0 1 0 1 0 0 1 +1 +0 0 0 0 0 0 1 0 0 1 0 0 1 +1 +1 0 0 1 1 0 0 1 0 0 0 0 1 +1 +0 1 0 1 0 1 1 1 0 0 0 1 0 +0 +1 1 1 0 1 1 0 0 1 0 1 1 1 +1 +0 1 0 1 0 1 0 0 0 1 1 0 1 +0 +1 1 1 0 1 1 1 1 0 1 0 1 1 +0 +0 1 0 1 0 0 0 1 1 0 1 1 1 +1 +1 0 1 0 0 1 1 0 0 1 0 1 0 +0 +0 0 1 0 1 1 1 0 1 1 1 1 1 +1 +1 1 1 1 1 0 1 0 0 1 0 1 1 +1 +0 1 1 0 0 0 0 1 1 0 0 0 1 +1 +0 1 0 1 0 1 0 1 0 1 0 0 1 +0 +0 1 0 1 0 1 0 0 0 1 0 0 0 +0 +0 0 1 0 1 1 1 0 0 1 1 0 1 +1 +0 0 0 0 1 1 0 1 1 1 0 0 0 +1 +1 1 0 0 0 0 0 0 1 0 1 1 1 +0 +0 1 1 1 1 1 1 0 1 1 1 0 1 +0 +1 1 1 0 1 1 1 0 0 1 1 0 0 +0 +0 1 1 1 0 0 0 0 1 1 1 1 1 +0 +1 1 1 1 1 1 1 0 0 1 1 0 0 +1 +0 0 1 1 0 0 1 0 1 0 0 1 0 +1 +1 1 0 0 1 1 0 0 1 0 0 0 0 +1 +0 0 1 1 1 0 1 1 1 1 0 0 1 +0 +1 0 0 1 1 1 1 1 1 0 0 0 0 +1 +1 0 0 0 0 1 0 1 0 0 1 0 0 +0 +0 1 0 1 1 0 1 1 0 0 1 0 1 +1 +0 1 1 1 1 1 1 1 0 1 0 1 1 +0 +0 1 1 0 1 1 1 0 0 1 0 0 1 +1 +1 1 1 1 0 0 0 0 0 1 1 1 0 +1 +1 0 0 1 0 0 0 1 1 0 1 1 0 +0 +1 1 1 1 0 0 0 1 0 0 0 0 0 +1 +0 1 1 1 1 1 0 1 1 1 0 0 0 +0 +0 0 0 1 1 0 0 1 1 1 0 1 0 +0 +1 1 1 1 1 0 1 0 1 0 0 1 0 +0 +1 1 0 1 0 1 1 1 1 1 0 0 0 +0 +0 1 0 1 1 1 1 1 1 1 1 0 1 +0 +0 0 1 1 1 0 1 0 1 0 1 0 1 +1 +0 1 1 1 1 0 1 0 1 0 1 1 1 +1 +1 1 1 1 1 0 1 0 0 1 0 1 0 +0 +0 1 0 0 0 1 1 0 0 1 0 0 0 +0 +0 1 1 1 1 1 1 1 0 1 0 1 0 +1 +0 0 1 0 1 0 1 0 0 1 1 0 1 +0 +1 0 1 0 0 0 0 1 0 0 0 0 1 +0 +0 0 0 1 1 1 1 1 1 1 0 0 0 +1 +1 1 1 1 0 1 1 0 0 0 1 0 1 +0 +1 1 0 0 1 0 0 1 0 1 1 1 0 +1 +0 0 0 0 0 1 1 0 1 0 0 0 1 +0 +0 0 1 1 1 1 1 1 0 0 1 0 0 +1 +1 1 1 1 1 1 1 0 0 0 1 0 1 +1 +0 1 1 1 0 1 1 0 0 0 0 0 1 +0 +1 1 0 0 0 0 1 1 1 1 0 1 0 +1 +1 0 0 1 1 1 1 1 0 1 0 1 1 +1 +1 1 1 1 0 1 1 1 0 1 0 0 0 +0 +0 1 0 1 1 0 0 1 1 0 1 0 1 +1 +0 1 0 1 1 0 1 1 0 0 0 1 0 +0 +0 0 0 1 0 0 0 1 1 1 1 0 1 +0 +0 1 1 0 1 0 0 1 0 1 1 1 0 +1 +1 1 0 0 0 1 0 0 0 0 1 0 1 +1 +1 0 0 0 1 0 0 0 0 1 1 1 0 +1 +0 1 0 1 1 0 0 0 0 0 1 1 0 +1 +0 0 0 1 1 0 1 0 1 1 1 1 1 +0 +0 1 0 1 1 1 1 1 1 1 1 0 0 +1 +1 1 0 0 1 1 1 1 1 0 0 1 1 +1 +0 0 1 1 1 1 1 0 1 0 1 1 1 +1 +0 1 1 0 1 1 1 1 1 0 1 0 0 +0 +1 1 1 1 0 1 1 1 0 1 1 0 0 +1 +0 0 1 0 0 0 0 0 0 0 1 1 1 +0 +0 0 1 0 1 0 0 0 1 0 1 0 1 +1 +0 1 1 0 0 1 1 1 0 0 0 1 0 +0 +0 1 1 1 1 1 0 1 0 0 0 0 0 +0 +0 1 1 0 1 1 1 0 1 1 0 0 0 +1 +1 1 0 0 0 0 0 1 1 0 0 1 1 +0 +1 0 0 1 0 0 0 0 1 0 1 1 0 +1 +0 1 1 1 0 1 1 1 1 0 1 0 1 +1 +0 1 1 0 0 0 0 1 0 1 1 0 0 +1 +1 0 1 1 0 0 1 0 1 0 1 1 1 +0 +0 1 0 1 0 0 1 0 0 0 1 1 0 +1 +0 1 1 1 1 0 1 1 0 0 1 0 0 +1 +1 0 1 1 1 1 1 1 1 0 1 1 1 +1 +1 1 0 0 0 1 0 1 0 1 1 1 0 +1 +1 1 0 0 0 1 1 0 1 0 1 1 1 +0 +1 1 1 1 0 1 0 1 1 1 1 0 1 +0 +1 1 0 1 0 1 1 0 1 1 0 1 0 +0 +1 0 1 0 0 1 1 0 0 0 0 1 1 +0 +1 1 1 0 0 0 1 1 1 1 1 1 0 +1 +0 1 0 0 0 1 0 1 0 0 1 1 0 +1 +0 1 1 1 1 0 0 0 0 1 1 1 1 +0 +1 0 1 0 0 1 1 0 0 0 1 1 0 +0 +1 0 0 1 1 1 1 0 1 0 0 0 1 +1 +1 0 1 1 0 0 1 0 0 1 0 0 1 +0 +1 1 1 1 1 1 0 1 0 1 0 1 0 +1 +0 1 0 1 1 0 0 0 1 0 0 1 0 +1 +1 0 1 0 0 1 1 0 1 1 1 1 0 +0 +0 1 0 1 1 1 0 0 0 1 1 1 0 +1 +0 1 1 1 1 1 0 1 1 0 1 1 1 +0 +0 0 0 0 0 0 0 0 1 1 1 0 1 +0 +1 1 0 0 0 0 0 0 1 1 0 0 1 +1 +0 1 0 1 0 1 1 0 1 1 1 0 1 +0 +0 0 1 1 0 0 1 0 1 0 0 0 0 +0 +1 1 1 0 0 0 1 1 1 0 1 0 0 +1 +0 0 0 0 1 0 0 0 1 1 1 1 0 +1 +1 0 0 1 0 0 1 0 1 0 0 1 0 +1 +0 0 1 1 1 0 1 0 0 0 0 0 0 +0 +1 0 1 0 1 0 1 0 0 1 1 1 1 +0 +1 1 0 0 0 1 0 1 1 0 1 0 1 +1 +0 0 1 0 1 0 1 0 0 0 1 0 1 +1 +1 0 0 1 1 1 0 0 1 0 1 1 0 +1 +0 0 0 1 1 0 0 0 1 1 0 1 0 +1 +1 0 1 0 0 1 1 1 0 0 0 0 0 +1 +1 0 1 0 1 0 0 0 0 1 1 1 0 +0 +0 0 0 1 1 0 0 1 1 1 1 1 1 +0 +0 1 0 0 1 0 0 0 1 0 0 0 1 +0 +0 1 0 1 1 1 1 1 1 0 0 1 1 +1 +1 1 0 0 0 0 0 0 1 1 0 1 0 +1 +1 0 0 0 1 1 1 1 1 0 0 1 0 +1 +1 0 1 0 0 0 0 0 1 0 1 0 1 +1 +0 0 0 1 1 0 1 0 1 1 0 1 1 +1 +0 1 0 0 0 0 1 0 0 1 0 0 1 +0 +0 0 1 0 0 1 0 0 1 0 0 1 0 +0 +1 1 0 1 0 1 0 1 1 1 0 1 1 +1 +1 0 0 0 0 0 0 0 0 0 1 0 0 +0 +0 1 0 0 1 0 0 1 0 1 1 1 0 +0 +0 0 1 1 0 0 1 0 1 1 1 1 1 +0 +0 1 1 0 0 0 0 0 1 1 0 1 1 +0 +0 1 1 1 1 0 0 1 1 0 1 1 0 +0 +0 0 1 0 0 1 0 1 1 0 1 0 0 +1 +0 1 0 0 0 1 0 1 1 1 1 1 0 +1 +1 0 1 1 1 0 1 1 1 0 1 0 0 +0 +1 0 0 1 1 0 0 0 1 1 0 0 0 +1 +0 0 1 1 1 1 0 1 1 1 0 1 0 +0 +1 1 1 1 1 1 1 0 1 0 0 1 1 +0 +1 0 1 1 0 1 1 0 0 1 0 0 0 +0 +1 1 0 1 1 0 0 1 0 0 1 1 1 +0 +0 0 0 1 0 1 1 1 0 0 0 1 0 +1 +1 1 1 1 0 0 1 1 0 0 0 1 0 +1 +0 0 0 1 0 1 1 1 0 0 1 0 1 +0 +0 1 1 0 1 1 1 0 0 1 0 1 0 +1 +1 0 1 0 0 0 1 1 1 1 1 0 0 +1 +1 1 0 1 0 0 0 1 0 0 1 0 0 +1 +0 1 1 0 0 1 0 1 1 0 1 0 1 +1 +1 0 1 0 0 0 1 1 0 1 1 1 0 +1 +0 0 0 1 1 1 0 1 0 0 0 1 0 +1 +1 0 1 1 0 0 1 1 1 1 0 0 0 +1 +1 0 1 0 0 1 0 0 0 0 0 1 0 +0 +1 1 1 0 1 1 1 0 1 1 0 0 0 +0 +0 0 1 1 1 0 1 0 1 0 1 1 0 +1 +0 1 0 1 0 0 1 0 0 1 1 0 1 +0 +1 0 0 1 0 1 1 1 1 0 0 0 1 +1 +1 1 0 1 0 0 1 0 0 1 1 1 1 +0 +1 0 1 0 1 1 1 1 0 0 1 0 0 +1 +1 0 0 0 0 1 0 0 1 1 0 0 0 +0 +0 1 1 0 0 1 1 0 0 1 0 1 0 +0 +0 1 1 0 1 0 1 1 0 0 1 1 1 +0 +0 1 0 1 1 0 0 1 1 0 0 1 0 +0 +0 1 1 1 1 1 0 1 0 1 0 1 1 +1 +1 0 1 1 1 1 0 0 1 0 0 0 0 +0 +0 1 1 0 1 0 0 1 0 0 0 0 0 +0 +1 0 0 1 0 0 1 1 1 1 1 1 0 +0 +0 1 0 1 0 0 0 1 1 1 0 0 1 +0 +1 1 0 1 1 1 0 1 0 1 0 0 0 +1 +0 0 1 1 1 1 0 0 1 1 0 1 1 +0 +0 1 1 1 0 0 1 1 0 0 1 1 1 +0 +1 1 1 1 0 0 1 1 1 1 0 0 1 +1 +1 0 1 0 0 1 1 1 1 1 1 0 0 +0 +0 0 1 1 0 0 0 0 0 0 0 1 1 +0 +0 1 0 1 1 1 0 0 0 0 0 0 1 +1 +1 0 0 1 1 0 1 1 0 1 0 1 0 +1 +0 0 1 0 0 0 0 0 0 1 0 1 1 +0 +0 1 1 1 0 0 1 1 0 1 1 1 0 +0 +1 0 1 1 0 0 1 0 1 0 0 0 1 +0 +0 1 0 1 0 1 0 1 1 1 1 1 0 +0 +0 1 0 0 0 1 1 1 0 0 0 0 1 +1 +1 1 1 0 1 0 1 0 0 1 1 0 0 +1 +0 1 0 0 1 1 0 0 0 1 0 0 0 +0 +1 1 0 1 0 1 1 1 0 0 0 1 0 +1 +0 0 1 1 1 1 0 1 1 1 0 0 0 +1 +0 1 0 0 0 1 1 0 1 1 0 1 0 +0 +1 0 1 1 1 0 0 1 1 0 1 1 0 +0 +1 1 0 0 0 1 0 1 1 1 0 1 0 +1 +1 1 0 0 1 1 0 0 0 0 1 1 1 +1 +0 1 0 1 1 0 0 1 1 0 1 1 0 +1 +0 1 0 0 1 0 0 1 1 0 1 0 1 +0 +1 0 1 1 0 1 0 1 1 0 0 1 0 +1 +1 0 1 0 0 1 0 0 0 0 0 0 0 +1 +1 0 0 1 1 0 1 1 1 1 1 0 1 +1 +0 1 0 0 0 1 0 1 0 1 0 0 0 +0 +1 1 0 1 0 1 0 0 1 0 1 1 1 +0 +1 1 0 0 1 1 0 0 1 1 0 0 1 +1 +0 0 0 1 0 1 0 1 0 1 0 1 0 +1 +1 1 1 1 1 1 0 1 1 0 1 1 0 +0 +0 1 0 0 1 1 1 0 0 1 1 0 0 +0 +1 0 1 0 1 1 0 0 1 1 0 1 0 +1 +0 1 1 1 0 1 0 0 0 0 0 1 1 +0 +1 0 1 1 1 0 1 1 1 1 0 1 1 +0 +0 1 0 0 0 0 1 1 1 1 1 0 0 +0 +0 1 0 0 1 0 0 0 1 1 0 1 1 +0 +0 0 1 1 0 1 0 0 0 1 1 0 0 +1 +0 1 0 0 0 0 0 1 1 0 0 0 1 +0 +0 0 0 1 1 1 0 0 0 0 0 0 0 +1 +1 0 0 0 0 1 1 1 1 0 1 1 0 +1 +0 0 0 0 0 1 0 1 1 1 1 0 1 +0 +1 0 0 1 0 1 1 1 1 0 0 1 1 +0 +0 1 1 0 1 0 1 1 1 1 0 1 0 +0 +1 1 0 1 1 0 0 0 1 1 0 1 0 +1 +0 1 1 0 0 0 0 1 1 1 0 1 1 +1 +0 1 1 0 0 0 1 1 1 1 0 0 1 +1 +0 1 0 1 1 0 1 0 0 0 0 0 0 +0 +1 1 0 0 0 1 1 0 0 0 0 1 1 +0 +1 1 1 0 0 1 1 1 1 1 1 0 1 +0 +0 1 0 0 1 1 0 0 0 0 0 0 0 +1 +1 1 0 0 0 0 1 0 1 0 0 0 0 +0 +0 1 0 1 1 1 0 0 0 0 0 0 0 +0 +0 1 0 0 1 1 1 0 0 1 1 1 0 +1 +0 0 0 1 0 1 0 0 0 0 1 0 0 +1 +1 0 0 0 1 0 1 0 0 0 0 0 0 +1 +0 1 1 0 1 1 0 0 1 0 0 0 0 +1 +1 0 1 1 1 1 1 1 0 1 1 1 1 +1 +0 0 0 0 0 0 0 1 1 1 1 0 1 +1 +0 1 1 0 0 0 1 0 1 1 1 1 1 +0 +1 1 0 0 0 1 0 1 0 0 0 1 0 +1 +1 0 0 0 0 1 1 1 0 1 0 0 1 +0 +1 0 0 1 0 1 1 0 0 0 1 0 0 +1 +1 0 1 0 1 1 1 1 1 0 0 1 1 +1 +1 1 1 1 0 0 0 0 1 1 0 1 0 +1 +0 1 0 1 1 0 1 1 1 0 0 0 0 +0 +0 0 1 1 0 1 1 1 1 0 1 0 0 +1 +1 0 1 0 0 0 0 1 0 1 1 1 0 +0 +1 0 0 1 1 0 0 1 1 1 0 0 1 +1 +0 1 1 0 1 1 1 1 0 0 0 0 1 +1 +1 0 1 1 0 0 0 0 1 1 0 0 0 +1 +0 1 1 1 0 1 1 1 0 1 0 1 1 +1 +0 0 0 1 0 1 0 0 0 1 0 1 1 +1 +1 0 1 1 1 0 1 0 0 0 0 1 0 +0 +0 1 1 0 0 1 1 1 1 0 1 1 0 +0 +1 0 0 0 1 0 0 0 1 1 1 1 1 +1 +0 0 1 1 1 1 0 1 0 0 1 0 1 +1 +1 0 0 0 1 1 0 0 0 0 0 1 1 +1 +0 1 1 0 0 1 1 1 0 1 1 1 0 +0 +0 0 1 0 1 0 0 0 0 1 0 1 1 +1 +1 1 1 0 1 0 0 0 1 1 0 1 0 +1 +0 0 0 0 0 1 1 0 1 0 1 1 1 +0 +1 1 0 0 0 0 1 1 1 1 1 1 0 +0 +1 0 0 0 0 1 0 1 1 0 0 1 0 +1 +1 0 1 0 0 0 1 0 0 0 0 0 0 +1 +0 1 1 1 1 1 1 0 0 1 0 1 0 +0 +1 0 0 1 0 0 0 1 1 1 0 0 1 +0 +1 0 1 1 0 1 1 0 0 1 1 0 0 +1 +1 0 1 1 0 1 0 0 0 0 1 1 0 +0 +0 0 1 0 0 0 0 0 0 1 0 0 1 +1 +0 0 1 0 1 1 1 0 0 1 1 1 1 +0 +1 1 1 1 1 1 0 1 1 0 0 0 0 +0 +0 1 0 1 1 1 0 0 0 1 0 0 0 +1 +0 1 1 1 1 1 0 1 1 1 1 0 1 +0 +0 1 0 1 0 0 0 1 0 0 0 1 0 +0 +0 1 1 0 1 0 0 1 1 1 0 1 0 +1 +0 0 0 0 0 1 1 1 0 0 0 1 0 +0 +0 0 0 1 1 1 1 0 0 1 1 1 1 +0 +0 1 1 0 1 0 1 0 0 1 0 1 0 +0 +1 0 0 0 0 0 1 1 0 0 1 1 0 +1 +0 1 1 1 1 1 0 1 1 0 0 0 0 +1 +0 1 0 1 0 1 1 0 0 0 1 1 0 +0 +1 1 0 0 0 1 1 0 0 0 0 0 1 +1 +0 1 0 0 1 0 1 1 1 0 0 0 0 +1 +0 0 1 1 1 0 1 1 1 1 0 1 0 +0 +1 0 1 0 0 0 1 1 0 1 1 0 1 +1 +1 1 0 0 1 0 1 0 1 0 1 0 1 +1 +0 1 0 0 0 0 1 0 0 0 0 1 1 +0 +1 0 0 1 0 0 0 0 0 1 1 1 1 +0 +0 1 0 0 0 1 1 0 0 0 1 0 1 +1 +0 0 1 0 0 0 1 1 1 1 1 0 1 +1 +1 1 0 0 1 1 1 1 0 1 0 1 1 +1 +0 0 0 1 1 0 0 1 0 0 1 1 0 +1 +1 1 0 0 0 1 1 1 1 1 0 1 0 +0 +1 1 0 1 1 0 0 1 0 0 0 0 0 +1 +1 0 1 1 0 1 1 0 0 1 0 1 1 +0 +0 1 1 0 1 0 1 1 0 1 1 1 1 +1 +1 0 0 0 1 1 0 0 0 0 1 0 0 +0 +1 1 1 1 1 1 0 0 1 0 0 1 1 +1 +0 1 0 0 1 1 1 1 0 0 0 1 0 +0 +1 0 1 0 1 0 0 1 1 0 1 0 1 +1 +0 1 1 0 1 1 1 1 1 0 1 0 1 +1 +1 1 0 1 1 0 1 1 0 0 1 1 0 +0 +0 0 1 1 1 0 1 1 0 0 0 0 0 +1 +1 0 0 1 1 0 0 0 1 1 0 1 0 +0 +0 0 1 0 0 0 1 1 1 0 1 0 0 +1 +0 0 1 1 0 0 1 0 1 0 1 0 1 +0 +1 1 0 0 0 0 0 1 0 1 1 0 1 +0 +0 0 0 0 1 1 1 0 0 1 1 1 1 +1 +1 1 1 1 1 0 1 1 1 1 0 0 0 +1 +0 1 0 0 1 1 0 1 0 0 0 1 1 +0 +0 1 0 1 1 1 0 1 0 0 1 0 0 +0 +1 0 0 0 1 1 1 1 0 0 0 0 0 +1 +0 0 1 1 1 1 1 1 0 0 0 1 1 +0 +0 1 1 1 1 1 1 1 0 1 1 0 1 +0 +1 1 0 0 0 1 0 1 1 0 0 1 0 +0 +1 0 0 0 0 0 0 1 0 0 1 1 0 +0 +1 0 0 0 1 0 1 0 0 0 1 1 0 +1 +0 1 0 0 0 1 0 0 0 0 0 0 0 +0 +1 1 0 0 0 0 1 0 0 1 1 0 0 +1 +0 1 0 0 1 1 1 1 1 0 1 1 0 +0 +0 0 0 0 1 0 1 0 1 0 0 1 0 +0 +0 0 0 0 1 1 0 0 1 0 0 0 0 +1 +0 0 0 0 0 0 1 1 0 0 1 0 1 +0 +0 0 0 0 0 1 1 0 0 1 1 1 1 +0 +0 1 0 1 1 0 1 0 1 0 0 0 0 +1 +1 1 1 1 1 0 1 0 1 0 1 1 0 +1 +1 1 1 1 1 1 0 1 1 0 1 0 0 +1 +1 0 0 1 1 1 1 1 1 1 1 1 0 +0 +1 0 1 1 1 1 0 1 1 1 0 0 1 +1 +0 0 0 0 1 1 0 1 1 0 1 1 0 +0 +1 1 1 1 0 1 1 0 0 1 0 0 1 +0 +1 0 0 0 1 1 1 1 0 1 1 0 1 +0 +1 1 0 1 0 1 0 0 1 0 0 1 1 +1 +1 0 0 0 1 1 1 0 1 1 0 1 1 +0 +1 0 1 1 0 0 1 1 1 0 1 0 0 +1 +0 0 0 0 1 0 1 0 1 0 0 0 1 +0 +0 0 1 1 1 1 1 0 0 0 0 1 1 +1 +0 0 1 0 1 0 0 1 1 0 1 1 0 +0 +0 0 0 1 1 1 1 1 0 0 1 0 1 +1 +0 1 0 1 0 0 1 1 0 0 0 0 0 +0 +0 0 1 0 1 0 1 1 0 0 1 1 0 +0 +0 0 1 1 1 1 1 0 1 0 0 0 1 +1 +0 0 0 0 1 0 1 0 0 0 1 1 0 +0 +0 0 0 1 1 1 0 1 0 1 0 0 0 +1 +0 1 1 1 0 1 0 0 1 1 1 0 0 +1 +1 0 1 0 0 0 0 1 1 1 0 1 1 +1 +1 0 0 1 0 1 0 0 0 0 0 1 0 +0 +0 0 0 1 0 1 0 0 0 1 0 0 0 +1 +1 1 1 0 1 0 1 1 1 0 0 0 1 +0 +1 0 1 0 0 0 1 0 0 1 1 1 0 +0 +0 1 1 1 1 1 0 0 1 1 0 0 1 +0 +1 0 1 1 0 1 0 1 1 1 0 0 0 +1 +0 1 1 0 1 1 1 0 1 1 1 0 0 +0 +0 0 0 1 0 0 0 1 1 1 1 0 0 +1 +1 1 0 1 0 1 1 0 0 1 1 1 0 +0 +1 1 0 1 0 0 0 1 1 0 0 0 0 +1 +1 0 0 1 0 1 1 1 0 1 1 0 0 +1 +1 1 0 0 1 1 1 0 1 0 1 0 1 +0 +1 0 0 0 1 0 1 1 0 0 1 1 0 +0 +1 0 0 0 0 1 0 1 0 1 1 1 1 +1 +1 0 1 0 1 0 1 1 0 1 0 1 1 +0 +0 1 0 0 0 0 1 0 0 1 1 1 0 +1 +0 1 0 0 1 1 0 0 0 1 0 1 1 +0 +1 1 0 0 1 1 0 1 0 1 0 0 1 +1 +0 0 1 1 0 1 1 0 1 0 1 1 0 +1 +0 0 1 0 1 0 1 1 0 1 0 0 0 +1 +1 1 0 0 0 0 0 1 0 0 1 1 0 +1 +0 1 0 1 1 0 1 0 1 1 0 0 1 +1 +1 1 1 1 0 0 0 1 0 1 1 0 1 +0 +0 1 0 0 0 1 0 0 0 1 1 1 1 +0 +0 0 0 1 1 0 1 0 0 1 1 1 1 +1 +0 1 0 0 1 1 0 0 1 1 0 0 0 +1 +0 1 0 1 0 1 1 0 1 1 1 1 1 +1 +0 1 1 0 1 1 0 1 1 1 0 1 0 +0 +1 0 1 1 0 0 0 1 0 1 0 1 0 +0 +1 1 0 0 1 0 1 0 0 1 1 0 0 +0 +0 0 0 0 0 1 0 1 1 1 1 0 0 +1 +0 1 1 0 0 1 0 1 1 1 1 1 0 +0 +0 0 0 1 1 0 0 0 0 1 1 0 0 +0 +1 0 1 0 0 0 1 1 0 1 0 1 1 +1 +0 1 1 1 1 1 0 0 1 1 1 1 0 +1 +1 0 0 0 1 1 1 0 1 0 0 0 0 +1 +0 1 0 1 0 0 1 1 0 1 0 0 1 +0 +1 1 0 0 0 1 1 0 1 1 1 1 1 +1 +1 0 1 1 0 0 1 1 1 0 0 1 0 +1 +1 1 0 0 1 1 0 1 0 0 1 0 1 +1 +1 1 1 1 1 1 1 1 0 1 1 0 1 +1 +0 1 0 0 0 1 0 0 1 1 1 0 0 +1 +0 1 0 1 1 0 0 0 1 1 0 1 0 +0 +0 1 0 0 0 1 0 0 0 1 1 0 0 +0 +0 1 1 1 0 0 0 0 0 0 1 0 1 +1 +1 0 1 1 1 1 0 1 1 1 1 1 1 +1 +0 0 0 0 1 0 0 1 1 1 0 0 0 +0 +1 1 1 0 0 0 1 1 0 1 0 1 1 +0 +0 1 1 0 0 1 0 0 1 1 0 1 0 +0 +0 0 1 0 1 0 1 0 1 0 1 0 1 +0 +0 1 1 1 0 1 0 0 0 0 1 1 1 +1 +1 1 0 1 0 0 0 0 1 1 0 0 0 +1 +0 1 1 1 1 1 0 1 1 1 0 0 1 +1 +0 0 0 0 1 1 0 1 0 1 1 0 1 +0 +1 0 1 0 1 0 1 0 1 1 1 0 1 +0 +0 1 0 0 1 0 1 0 1 1 0 0 1 +0 +0 0 1 0 0 0 1 1 1 1 0 1 0 +0 +1 1 1 0 1 1 0 0 0 0 1 1 0 +1 +1 1 1 1 0 1 0 1 0 0 1 0 0 +1 +0 1 0 1 0 0 1 1 1 0 1 1 0 +1 +0 1 0 0 1 1 1 0 0 1 0 0 0 +1 +1 0 0 0 1 1 0 1 1 0 1 1 1 +0 +0 1 1 0 0 0 1 0 1 1 1 1 0 +1 +1 0 1 1 0 1 0 1 1 0 1 0 0 +1 +1 0 0 1 1 0 1 1 0 1 1 1 0 +0 +1 0 1 0 1 1 0 1 0 1 1 1 0 +0 +0 1 1 1 1 0 0 0 1 1 0 0 0 +0 +0 0 0 1 0 1 0 1 0 0 0 0 1 +0 +0 1 0 1 0 0 0 1 1 1 0 1 0 +0 +0 0 1 0 0 1 1 0 1 0 1 1 1 +1 +1 1 1 1 1 1 0 0 0 0 1 1 1 +1 +0 0 1 1 0 0 1 1 0 1 0 1 1 +1 +1 0 1 0 1 1 0 1 0 1 0 1 1 +0 +1 1 0 0 1 0 1 0 1 1 1 0 0 +1 +1 0 0 0 1 0 0 1 1 0 0 0 0 +0 +1 1 0 1 1 1 1 1 1 0 0 1 0 +1 +1 0 0 0 1 0 1 1 1 1 1 0 0 +1 +0 0 1 1 0 1 0 1 0 0 0 0 1 +1 +0 0 1 0 1 0 0 0 0 1 1 0 0 +0 +0 0 0 1 1 1 1 0 0 0 0 0 1 +1 +0 0 0 1 1 0 0 1 1 0 0 1 1 +0 +0 1 0 0 0 0 0 1 1 1 1 1 0 +0 +0 0 1 0 1 1 0 0 1 1 1 1 0 +1 +0 1 0 0 0 0 1 0 0 1 0 0 0 +1 +0 0 1 0 0 1 1 1 0 1 1 1 0 +1 +1 1 0 0 0 1 1 0 0 1 0 1 1 +1 +1 1 0 1 1 0 1 0 1 1 0 1 0 +0 +0 1 0 0 0 0 1 1 1 0 0 0 0 +0 +0 1 1 0 0 0 0 1 0 1 1 1 1 +1 +1 1 0 0 0 0 1 1 0 1 0 0 1 +0 +0 0 1 0 0 1 0 1 1 1 1 0 0 +0 +0 0 0 1 0 1 0 1 0 0 1 0 1 +1 +1 0 0 1 0 0 1 0 1 1 0 1 1 +1 +0 0 1 1 0 0 1 1 1 1 1 0 0 +1 +0 0 0 0 1 0 0 1 0 1 1 1 1 +0 +0 0 0 1 1 1 1 0 1 0 0 1 1 +1 +0 0 0 0 1 0 1 0 0 0 0 1 0 +1 +1 1 1 0 0 0 0 1 1 1 0 0 0 +0 +0 0 0 0 0 1 1 0 1 1 0 1 1 +0 +0 1 0 0 0 0 0 1 1 0 0 0 0 +1 +1 0 0 1 0 0 0 1 0 1 0 1 0 +1 +1 1 1 1 1 0 0 0 1 1 0 1 0 +0 +1 1 0 0 0 1 1 1 0 0 1 1 1 +0 +0 1 0 1 1 1 1 0 1 0 0 0 1 +1 +0 1 1 1 0 0 0 0 0 1 1 0 0 +1 +1 1 0 1 1 1 1 1 1 0 0 0 0 +0 +0 1 1 1 1 1 1 1 0 1 1 1 1 +1 +1 0 1 1 0 1 0 0 1 1 0 1 0 +1 +1 1 1 0 0 0 1 1 1 0 1 0 1 +0 +0 1 0 0 0 1 0 0 1 0 1 1 0 +1 +1 0 1 0 1 1 1 1 0 0 0 0 0 +0 +1 0 1 1 1 0 0 0 1 1 1 1 1 +1 +0 1 1 1 0 1 1 0 1 1 1 1 0 +1 +1 0 1 1 1 0 1 1 1 1 0 0 0 +0 +1 1 1 1 1 1 0 1 0 1 0 1 1 +0 +0 1 1 0 1 0 0 0 0 1 1 0 1 +0 +0 1 1 1 1 1 1 0 1 1 0 0 0 +0 +1 0 1 0 1 0 1 0 1 1 0 0 0 +0 +1 0 1 0 1 1 1 1 1 0 1 0 1 +1 +1 1 0 0 1 0 1 0 1 0 1 0 0 +0 +0 1 0 0 1 1 1 1 0 1 1 1 0 +0 +0 1 1 0 1 0 0 0 1 1 1 0 1 +1 +1 0 1 0 0 1 0 0 0 1 0 0 1 +1 +0 1 0 0 1 0 1 1 0 1 1 1 0 +1 +1 1 0 0 1 1 1 1 0 0 0 1 0 +1 +0 1 1 1 0 0 1 0 1 0 1 0 1 +1 +1 1 1 0 1 1 1 0 1 1 1 0 0 +1 +1 0 0 0 0 0 0 1 1 1 1 1 0 +0 +0 1 1 1 1 0 1 1 0 0 1 0 1 +0 +1 0 0 0 1 0 0 0 0 0 0 1 1 +0 +0 1 0 1 1 1 1 0 0 0 0 0 0 +1 +0 1 0 0 0 0 0 1 0 0 0 1 0 +1 +1 1 0 0 1 0 1 0 0 0 1 1 0 +0 +1 0 1 0 1 1 0 1 1 1 0 1 0 +0 +0 1 1 1 1 0 0 0 0 0 1 0 0 +1 +1 1 1 0 1 1 0 1 0 1 0 0 1 +0 +0 0 1 0 1 0 0 1 1 0 0 0 1 +1 +1 1 1 0 0 1 1 0 0 0 1 0 1 +1 +0 1 1 0 0 0 1 1 1 0 0 0 0 +1 +1 0 0 0 0 0 0 0 0 0 0 0 1 +0 +1 0 0 0 0 0 0 0 1 0 0 1 0 +1 +0 0 0 1 1 0 1 1 0 1 0 0 0 +1 +1 0 0 0 0 1 1 1 1 0 1 0 1 +1 +0 0 0 0 0 1 1 0 0 0 1 0 0 +1 +1 0 0 1 1 0 1 1 1 1 0 1 0 +0 +0 1 1 0 1 1 0 0 1 0 1 0 1 +1 +0 0 0 1 1 1 0 1 1 0 0 0 1 +0 +0 1 1 1 0 0 1 1 0 0 0 0 1 +0 +1 0 0 1 1 1 1 1 1 0 0 1 0 +0 +0 0 0 1 0 0 1 1 0 0 1 1 0 +1 +0 1 1 0 0 1 1 1 1 0 0 1 1 +0 +0 1 1 1 1 1 1 0 1 0 0 1 1 +1 +1 1 1 0 0 1 1 1 0 0 1 1 0 +0 +1 0 1 1 1 0 1 1 1 0 0 0 0 +1 +1 1 0 0 1 0 1 1 1 0 0 0 0 +0 +1 1 0 1 1 1 0 1 1 1 1 1 1 +1 +0 0 1 1 0 1 1 1 0 1 1 1 1 +1 +1 0 0 1 0 1 1 0 0 0 1 0 1 +0 +1 1 0 0 1 1 1 1 1 0 1 0 1 +1 +1 1 0 1 0 1 1 0 0 1 1 0 1 +0 +0 1 1 1 0 1 0 1 1 1 1 1 0 +1 +0 0 1 1 0 1 1 1 0 0 1 0 0 +0 +1 1 0 1 1 1 1 1 1 1 0 0 1 +0 +0 0 0 1 0 0 1 0 0 0 0 0 0 +0 +0 1 1 0 1 0 0 1 1 0 0 1 1 +1 +1 0 1 1 0 0 0 1 1 1 0 0 0 +0 +0 1 0 0 1 1 1 1 0 1 0 0 1 +1 +0 1 1 0 0 0 1 0 1 0 1 0 1 +0 +0 1 0 0 0 1 0 0 0 1 0 1 0 +0 +1 0 1 0 0 0 1 0 0 1 1 1 1 +1 +1 1 0 1 0 0 0 0 1 1 1 1 1 +0 +0 1 1 0 1 1 0 0 0 0 1 0 1 +0 +0 1 0 1 1 0 1 0 0 1 1 1 1 +0 +0 1 1 1 1 0 1 1 1 1 0 0 0 +0 +1 0 0 1 1 0 0 0 1 1 1 0 1 +1 +1 0 0 1 0 0 0 0 0 1 0 0 1 +0 +0 0 0 1 0 0 1 0 1 1 1 1 0 +0 +0 1 1 0 0 1 1 0 1 0 1 1 0 +1 +1 0 0 0 0 1 1 0 1 0 0 0 1 +1 +1 0 0 1 0 0 0 1 0 1 1 1 0 +0 +0 1 1 1 0 0 1 1 1 0 1 0 1 +0 +1 0 1 0 1 0 0 0 0 1 1 1 1 +1 +1 0 1 1 0 1 1 0 0 0 1 0 1 +1 +1 0 1 0 1 1 0 1 1 0 0 1 0 +1 +1 0 1 0 1 1 0 1 1 1 0 1 1 +1 +1 1 0 1 1 0 1 1 1 0 0 0 1 +0 +1 0 0 1 0 0 0 1 0 0 1 0 1 +1 +0 1 0 0 1 1 1 0 1 0 1 1 1 +0 +0 1 0 0 1 1 1 1 1 0 1 1 1 +1 +0 1 1 0 0 0 0 0 0 1 1 1 0 +1 +0 0 0 0 1 1 1 0 0 0 0 1 1 +1 +1 1 1 1 0 0 0 1 1 0 0 0 1 +1 +1 1 1 0 1 1 1 1 1 0 1 0 1 +0 +0 1 0 0 1 0 1 0 0 0 0 0 1 +0 +0 0 0 1 0 1 0 1 1 0 0 1 1 +0 +0 1 1 1 1 1 1 1 1 0 1 0 1 +0 +0 1 1 1 1 0 0 0 1 1 1 1 1 +1 +1 0 1 0 1 1 0 0 1 0 1 0 1 +1 +1 1 0 1 0 0 1 1 0 0 1 0 1 +1 +0 0 1 1 0 0 1 0 0 0 0 1 0 +0 +0 0 1 1 0 1 1 0 1 1 1 0 1 +0 +1 0 0 0 0 0 1 1 1 1 0 1 0 +0 +0 0 0 0 1 1 0 1 1 0 0 0 1 +1 +0 0 1 1 1 0 0 0 0 0 1 0 1 +1 +0 0 0 1 0 0 0 0 0 1 1 1 1 +1 +0 0 1 0 0 0 0 1 0 1 0 0 1 +0 +1 0 0 0 1 0 0 0 1 0 1 1 1 +0 +0 0 0 0 0 1 0 1 1 1 1 1 0 +0 +1 0 0 0 1 0 1 1 0 0 0 0 1 +1 +0 0 0 0 1 0 1 0 1 1 0 0 0 +0 +0 0 0 1 0 0 0 1 0 0 0 0 0 +0 +0 1 1 0 0 1 0 1 0 1 0 1 1 +1 +0 1 0 0 1 0 1 1 1 1 1 1 1 +1 +1 0 1 0 1 1 0 1 1 0 1 1 0 +0 +0 1 1 1 0 1 1 1 0 0 1 1 1 +1 +0 0 0 1 0 0 1 0 1 1 1 1 1 +1 +1 1 0 0 1 1 1 0 0 0 0 0 1 +0 +1 1 1 0 0 0 1 1 1 0 0 0 0 +0 +1 1 1 0 1 0 0 1 0 0 1 0 1 +1 +1 1 1 1 1 0 0 1 0 0 0 1 1 +0 +0 1 0 1 0 1 1 1 1 0 0 0 0 +0 +0 0 0 1 0 0 0 0 1 0 1 1 0 +0 +0 1 0 0 0 0 0 0 0 0 0 0 0 +1 +0 1 1 0 1 0 1 0 0 0 0 1 0 +1 +1 1 0 0 0 1 0 0 0 0 0 0 1 +0 +0 0 0 0 0 1 1 1 1 1 1 1 0 +1 +0 1 1 0 1 1 0 1 1 1 0 0 0 +1 +0 1 1 0 1 0 0 0 0 1 1 1 0 +0 +1 1 0 0 0 1 1 1 1 1 0 0 1 +0 +1 1 0 1 0 1 1 0 1 1 0 0 0 +1 +0 1 1 1 1 1 0 0 1 0 0 1 0 +1 +1 1 0 1 0 1 0 1 0 1 0 0 0 +0 +1 0 0 0 0 0 0 1 0 1 1 1 0 +1 +0 1 0 1 1 1 0 1 1 0 1 0 0 +1 +1 0 0 0 1 0 0 1 0 1 0 0 0 +0 +0 1 0 0 1 1 1 1 1 1 1 1 1 +0 +0 1 1 0 0 1 1 0 1 1 1 0 1 +0 +0 0 1 1 0 0 1 0 0 0 1 0 0 +0 +1 0 1 1 1 1 1 0 0 0 0 0 1 +1 +0 1 0 0 0 0 1 1 1 1 0 0 1 +0 +1 0 0 1 0 1 0 0 1 1 1 0 1 +1 +1 0 0 1 0 0 0 1 0 0 1 1 1 +0 +1 1 0 0 0 1 0 0 1 0 1 1 0 +0 +0 0 0 0 0 1 1 1 0 1 1 0 1 +0 +1 1 0 1 1 0 0 1 0 1 0 0 1 +1 +1 1 0 1 0 0 1 0 1 0 1 0 0 +0 +1 0 0 1 1 1 0 1 0 0 1 1 0 +1 +1 1 0 1 0 1 1 1 0 1 0 0 0 +1 +1 1 1 0 1 0 1 0 1 0 1 0 0 +1 +0 0 0 1 0 0 1 0 0 0 0 1 1 +0 +1 0 1 1 1 1 1 0 0 1 1 0 1 +1 +0 0 0 1 1 1 1 1 1 1 0 0 1 +0 +0 0 1 0 0 1 1 0 0 0 0 0 1 +0 +1 1 1 1 1 1 1 0 0 1 1 1 0 +0 +0 1 0 1 0 1 1 0 0 0 0 0 1 +1 +1 0 0 1 0 1 1 1 1 1 1 1 1 +0 +1 0 1 1 0 1 0 1 0 1 1 1 1 +1 +0 1 1 0 0 0 1 1 0 0 0 1 0 +1 +0 1 1 0 0 1 1 0 0 0 1 0 1 +0 +1 1 0 0 1 1 0 1 1 0 0 0 1 +1 +0 1 0 1 0 1 1 1 1 1 0 1 1 +1 +1 1 1 0 1 0 1 0 1 1 0 1 0 +0 +1 0 0 0 0 1 1 0 1 0 0 1 0 +1 +1 0 1 0 0 1 1 1 1 0 1 0 0 +1 +1 0 1 0 1 0 0 1 1 1 1 1 1 +1 +0 1 0 1 1 1 0 1 1 1 1 0 0 +0 +0 0 0 0 1 1 1 0 1 1 0 0 0 +1 +0 0 0 0 1 1 0 0 0 0 1 1 0 +0 +0 1 1 0 1 1 1 0 0 0 0 1 0 +0 +0 1 0 1 1 0 1 0 1 1 1 1 0 +0 +0 0 1 1 0 0 1 1 1 1 0 0 0 +0 +0 0 0 0 1 0 1 0 1 0 1 1 1 +0 +1 1 0 1 1 0 0 0 0 1 0 0 1 +0 +1 0 1 1 1 0 0 1 0 0 0 0 0 +1 +1 1 1 0 1 1 0 0 0 1 0 0 1 +1 +1 1 0 1 0 0 1 0 1 0 1 0 1 +1 +1 1 1 0 0 0 0 1 0 1 0 0 0 +1 +1 0 0 0 1 1 1 0 1 0 0 0 1 +0 +0 0 0 1 0 1 0 0 1 1 0 0 1 +1 +0 1 1 0 0 1 1 1 0 0 0 0 1 +0 +1 1 0 1 1 1 0 0 1 1 0 1 0 +0 +1 0 0 0 0 0 0 1 0 0 0 1 0 +1 +1 0 0 1 1 1 1 1 1 0 1 0 1 +1 +0 0 1 1 0 0 1 0 1 1 1 0 0 +0 +0 0 0 1 0 0 0 1 0 0 0 1 1 +0 +0 0 1 0 0 0 0 1 1 0 0 0 0 +1 +0 0 1 1 0 1 1 0 0 1 1 0 0 +0 +0 1 0 1 0 1 0 1 1 0 1 0 0 +0 +0 0 1 0 1 0 0 0 0 0 1 0 0 +1 +0 1 1 0 0 0 1 1 0 0 1 0 1 +0 +1 1 0 0 1 0 1 1 0 1 1 1 1 +1 +0 0 0 1 0 1 1 1 0 0 0 0 0 +0 +0 0 0 1 1 1 1 0 0 0 0 1 1 +0 +1 0 0 1 0 0 1 0 1 0 0 0 0 +0 +0 1 0 0 1 1 0 1 1 1 1 1 0 +0 +1 0 1 0 1 1 0 1 0 1 0 1 0 +1 +0 0 1 0 0 0 0 0 1 1 1 0 0 +0 +1 0 0 0 0 1 0 1 1 0 1 1 1 +1 +0 0 1 1 0 0 1 1 1 0 1 0 1 +1 +1 0 0 0 1 0 0 1 0 0 0 0 0 +1 +1 0 1 1 1 1 0 0 1 1 1 1 0 +1 +1 1 0 0 0 1 1 0 1 0 1 0 0 +0 +0 0 0 0 1 0 1 0 1 0 1 1 0 +1 +1 1 0 0 0 0 1 1 1 1 1 1 1 +1 +0 0 0 1 1 0 0 1 1 1 1 0 0 +0 +1 0 1 1 0 1 0 0 1 0 0 0 1 +0 +0 1 1 1 0 0 0 0 1 0 1 0 1 +0 +0 1 0 1 1 0 0 0 0 0 0 1 0 +0 +0 0 1 1 0 0 1 0 1 0 0 1 1 +0 +1 0 1 1 0 0 1 1 1 0 1 0 1 +0 +1 1 0 0 0 0 1 0 1 1 1 1 1 +0 +0 1 0 1 1 1 0 0 0 1 1 0 1 +1 +0 0 1 1 1 0 1 1 1 0 0 0 1 +1 +1 0 1 1 1 1 0 0 1 0 1 0 1 +0 +1 0 1 1 0 1 1 1 1 0 0 1 1 +1 +0 1 1 1 1 1 0 0 0 0 0 1 1 +1 +1 0 1 1 1 0 1 1 0 0 1 0 1 +0 +1 0 0 1 0 0 1 1 0 1 0 1 1 +1 +0 0 0 0 1 1 0 0 1 1 0 0 1 +1 +0 0 0 0 1 0 0 1 1 1 1 0 1 +0 +1 0 1 1 1 1 0 0 0 1 1 0 1 +0 +0 0 0 1 1 0 0 0 0 0 1 0 1 +0 +1 1 0 0 0 1 0 0 1 1 1 0 1 +1 +0 0 1 0 0 1 1 1 0 1 1 0 1 +1 +1 1 1 0 1 1 0 1 0 1 0 1 1 +1 +1 0 1 0 0 0 0 0 1 0 0 0 1 +0 +0 1 1 0 1 0 0 0 1 1 1 1 0 +1 +1 1 1 0 0 0 0 1 1 1 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 1 0 0 1 +1 +0 0 1 1 0 0 1 0 0 0 1 0 1 +1 +1 1 0 1 1 1 1 0 0 1 1 0 0 +0 +0 1 0 1 0 1 0 1 0 0 0 1 0 +1 +1 0 1 0 0 1 1 0 0 1 0 0 1 +0 +0 0 0 1 1 1 0 0 0 0 0 1 1 +1 +1 0 1 1 0 0 0 0 0 0 1 0 0 +0 +0 0 0 0 1 1 1 1 0 0 0 0 1 +1 +1 0 1 0 1 0 0 0 0 0 0 1 1 +1 +0 1 1 1 0 1 1 0 1 1 0 0 0 +1 +0 0 1 0 0 0 0 1 0 0 1 0 1 +0 +1 1 1 0 0 0 0 0 0 1 1 0 1 +0 +0 1 0 1 1 1 0 0 1 0 1 0 0 +0 +0 0 0 1 0 1 0 0 1 0 1 1 0 +1 +0 0 1 1 1 0 0 1 1 0 0 0 1 +0 +0 1 1 0 1 1 0 1 1 0 1 0 1 +0 +1 1 0 0 0 0 1 0 1 0 1 0 0 +1 +1 1 0 0 0 0 0 1 1 0 0 1 0 +1 +0 0 0 0 1 1 1 1 0 1 0 1 1 +1 +0 1 1 0 1 0 0 1 0 0 0 0 1 +1 +1 0 0 1 0 0 1 0 0 1 1 1 1 +1 +0 1 0 0 1 1 1 1 1 1 0 0 1 +0 +1 1 0 1 0 1 1 1 0 1 1 1 1 +0 +0 0 1 0 0 1 1 0 0 1 0 0 1 +1 +0 0 1 0 1 1 0 1 1 1 0 1 0 +1 +1 0 1 1 1 0 0 1 0 0 1 0 0 +0 +1 1 0 1 0 1 1 1 0 0 1 1 0 +0 +0 1 1 1 0 0 0 1 1 1 1 0 1 +0 +0 1 1 1 1 1 1 1 0 0 1 0 1 +1 +0 0 1 1 0 0 0 1 1 1 0 0 0 +1 +1 0 0 0 1 1 1 1 0 1 1 1 0 +0 +0 0 0 1 1 1 1 1 1 0 0 1 0 +1 +1 0 1 0 0 1 1 0 0 1 1 0 0 +0 +1 0 1 1 0 0 0 0 1 0 0 1 0 +1 +0 0 0 0 0 1 0 1 0 0 1 0 0 +1 +1 0 1 1 0 0 1 0 0 1 1 1 0 +1 +0 0 1 0 0 1 1 1 1 0 0 0 1 +0 +1 0 0 1 1 1 0 0 0 0 1 1 0 +0 +0 1 1 1 0 1 1 1 0 0 1 0 0 +1 +1 0 0 0 1 0 0 1 0 1 1 0 1 +0 +0 0 0 0 0 0 1 1 1 0 0 0 0 +1 +1 1 1 1 1 1 1 0 0 1 0 1 1 +0 +0 1 1 1 0 1 1 0 0 0 1 1 1 +0 +0 0 0 1 1 0 1 1 1 0 1 0 0 +0 +1 1 1 1 0 1 0 1 1 0 1 0 1 +1 +0 0 0 1 0 0 1 0 0 0 0 1 0 +1 +0 1 1 1 0 1 0 0 1 0 0 0 1 +0 +0 0 0 1 0 1 0 1 1 0 1 0 0 +1 +0 1 1 1 1 1 1 1 0 1 1 1 0 +0 +1 1 1 0 0 1 0 1 1 0 0 1 1 +0 +1 0 0 0 1 0 1 1 1 0 0 1 1 +1 +0 1 0 0 0 1 0 1 0 0 1 0 1 +1 +1 1 0 1 0 0 0 1 1 0 1 1 1 +0 +0 0 1 1 1 1 1 1 0 0 0 0 1 +1 +1 0 1 0 0 0 0 0 1 0 0 1 1 +1 +0 1 1 1 0 0 0 1 1 0 0 0 0 +1 +0 0 0 0 0 1 0 0 0 0 1 1 0 +1 +0 1 1 0 1 1 1 0 0 0 0 0 1 +0 +1 1 0 0 0 0 1 0 1 1 0 1 1 +1 +0 1 1 1 1 1 0 0 1 1 0 1 0 +0 +1 1 0 0 0 1 0 1 0 0 1 1 1 +1 +1 0 0 1 0 1 0 0 1 0 1 1 1 +1 +1 0 1 1 0 0 0 1 0 0 1 0 0 +1 +1 1 0 0 1 0 1 0 1 0 1 1 1 +0 +0 1 0 1 0 0 1 0 1 1 0 1 0 +0 +1 1 1 1 0 0 0 1 1 1 0 1 1 +1 +1 0 1 1 0 1 1 0 0 1 1 1 0 +0 +1 1 1 0 1 0 1 0 1 1 1 1 1 +0 +0 1 1 1 0 0 0 1 0 0 1 1 1 +1 +1 0 1 0 0 0 0 1 0 0 1 0 1 +1 +0 0 1 0 0 0 1 1 0 1 0 0 0 +0 +0 1 0 0 0 1 1 0 1 0 0 1 1 +0 +1 0 1 0 1 0 0 1 1 1 0 1 0 +1 +1 0 0 1 0 0 0 0 0 0 1 0 1 +0 +0 1 1 0 0 0 0 0 1 0 1 0 0 +0 +0 1 0 0 0 1 1 0 0 0 0 1 1 +1 +0 0 1 1 0 1 1 1 1 1 0 0 1 +0 +1 1 0 0 0 1 0 0 1 1 0 0 0 +1 +1 1 1 0 1 1 0 1 0 0 1 1 0 +0 +0 1 0 1 0 1 0 1 0 0 1 1 0 +0 +1 0 1 0 1 1 0 1 0 0 0 0 1 +0 +1 0 0 1 0 0 1 0 0 0 0 1 0 +0 +1 0 1 0 1 1 1 0 0 1 0 0 1 +1 +1 0 0 0 0 1 1 1 0 0 1 1 0 +0 +1 1 1 1 0 0 1 0 1 0 0 1 0 +1 +1 1 0 0 1 0 1 1 1 1 0 0 0 +1 +1 1 1 1 1 0 0 0 1 1 0 0 0 +1 +0 1 1 0 1 0 0 0 1 0 1 1 0 +0 +1 1 0 1 0 1 1 1 1 1 0 1 1 +0 +0 1 1 0 0 0 1 0 0 1 1 1 0 +0 +0 0 1 0 1 0 1 1 1 0 1 1 0 +1 +1 1 1 0 0 1 0 0 0 1 1 0 1 +1 +0 1 0 0 0 0 0 1 1 1 1 0 1 +0 +0 1 1 1 0 1 1 1 1 1 1 1 1 +1 +1 1 1 0 0 0 1 1 1 0 1 1 0 +0 +0 1 0 0 0 1 1 0 1 1 0 1 1 +1 +0 1 1 1 1 1 1 0 1 1 0 1 1 +0 +1 0 0 0 1 0 0 0 1 0 0 1 0 +0 +1 0 0 1 1 1 0 1 0 1 0 1 1 +0 +1 0 1 0 1 0 1 0 0 0 0 0 1 +1 +0 1 0 1 0 0 0 1 1 0 0 1 1 +0 +0 0 1 0 0 1 0 0 1 0 1 1 0 +1 +0 1 1 1 0 0 1 1 1 1 0 1 0 +0 +0 0 0 1 0 1 0 0 1 0 0 0 0 +1 +0 0 1 1 0 1 0 0 0 0 1 0 0 +0 +0 0 0 1 1 0 0 1 0 1 1 1 0 +0 +1 0 0 1 1 1 0 0 1 1 1 1 1 +1 +0 1 1 0 0 0 1 1 0 1 1 1 1 +0 +1 0 1 0 0 0 1 1 1 1 1 1 1 +1 +0 1 1 0 0 1 0 0 0 1 0 1 1 +0 +0 1 0 0 1 1 1 1 0 1 1 0 0 +1 +0 1 1 0 0 0 0 0 0 0 0 1 1 +0 +0 0 0 0 1 1 1 0 0 1 1 1 0 +0 +1 1 1 1 1 0 0 0 0 0 0 0 0 +1 +0 0 0 0 1 0 0 0 1 0 0 1 1 +0 +1 0 1 1 0 1 0 0 1 0 0 1 1 +1 +1 1 1 1 1 1 1 1 1 0 1 0 1 +1 +0 0 1 1 1 1 0 0 0 0 0 0 1 +1 +1 0 1 0 1 1 1 0 0 1 0 1 1 +0 +1 0 1 1 1 1 1 0 1 1 1 0 0 +1 +1 1 1 1 0 1 1 0 0 0 1 1 1 +1 +1 1 0 0 0 0 1 1 0 0 0 1 0 +1 +0 0 1 1 1 0 0 0 0 1 1 1 0 +0 +0 0 1 1 1 0 0 0 0 1 0 1 1 +0 +1 1 1 0 1 1 0 1 1 1 0 1 0 +1 +0 1 1 1 0 0 1 0 1 1 0 0 0 +0 +1 1 0 0 1 1 0 0 0 1 0 1 1 +1 +0 0 1 0 0 1 1 1 1 0 0 1 1 +1 +0 0 0 0 0 1 1 1 0 1 0 0 0 +0 +1 0 0 1 1 1 0 0 1 0 1 1 1 +0 +1 1 1 1 0 1 0 1 0 0 0 0 0 +0 +0 0 0 1 1 0 1 0 1 0 0 1 0 +1 +1 0 0 0 1 1 1 0 0 1 1 0 0 +0 +1 1 1 1 0 0 0 0 1 0 1 1 0 +1 +1 0 1 1 1 1 0 1 1 0 0 0 0 +1 +1 1 1 0 1 1 0 1 0 1 1 1 1 +0 +0 1 0 0 0 0 1 0 1 0 0 1 1 +1 +1 0 0 1 1 1 1 1 0 1 1 0 1 +1 +1 1 1 0 0 0 0 0 1 1 1 1 0 +1 +0 0 0 1 0 1 1 0 0 1 1 0 0 +1 +1 1 0 1 0 1 0 1 1 0 1 0 0 +1 +1 1 1 0 1 0 0 1 1 1 1 0 0 +0 +1 0 0 1 1 0 1 0 1 1 1 1 0 +0 +0 0 1 0 0 1 1 0 1 0 1 0 1 +0 +0 1 0 0 1 1 1 0 0 1 1 0 1 +1 +0 0 1 0 1 1 1 1 0 0 0 0 0 +1 +0 1 1 0 1 0 1 1 1 0 1 1 1 +1 +0 0 0 1 1 0 1 1 0 0 1 0 0 +1 +1 0 0 0 1 1 0 0 0 1 0 0 0 +0 +0 0 1 0 1 0 1 0 0 0 1 1 1 +0 +1 0 0 0 1 0 0 1 0 0 1 0 0 +0 +1 1 0 1 0 1 0 1 0 1 1 1 1 +1 +0 0 1 0 0 0 0 1 0 0 0 0 0 +0 +1 1 0 1 0 1 0 1 0 1 0 0 1 +1 +1 0 0 1 1 1 1 1 0 0 1 0 0 +1 +0 0 1 0 0 1 0 1 0 1 0 1 0 +1 +0 1 1 0 1 1 0 0 1 1 1 0 0 +1 +1 1 0 0 1 1 0 1 0 0 1 1 1 +0 +1 0 0 1 1 0 1 1 0 0 0 1 0 +0 +1 0 1 0 0 1 1 1 0 1 0 0 1 +1 +1 1 0 1 0 0 1 1 0 0 1 0 0 +0 +1 0 0 0 1 0 0 0 1 1 0 0 1 +1 +1 0 1 0 1 0 1 1 1 0 0 0 1 +1 +0 1 0 0 0 0 0 0 0 1 1 1 0 +0 +1 1 0 1 0 0 0 1 1 0 1 0 1 +1 +0 1 0 1 1 0 1 1 0 0 1 0 0 +0 +0 0 1 1 1 0 1 1 0 0 1 0 0 +0 +1 1 0 0 0 0 1 1 1 0 1 1 0 +1 +1 1 0 0 0 0 0 0 0 0 1 1 0 +0 +0 1 0 1 0 0 0 0 0 0 1 0 1 +0 +1 0 1 0 1 1 1 1 0 1 1 1 0 +1 +0 0 1 0 1 1 0 1 0 1 0 1 1 +1 +1 0 0 0 1 1 1 0 1 1 1 1 1 +1 +0 0 1 1 1 1 0 1 1 0 1 0 0 +1 +1 1 1 1 1 1 1 0 1 1 0 1 1 +1 +0 0 0 1 1 1 0 1 0 0 1 1 0 +0 +1 0 0 1 1 0 1 1 0 0 1 1 1 +0 +0 1 1 0 0 1 1 0 0 0 1 1 0 +0 +1 1 1 1 0 0 1 1 1 1 0 0 0 +0 +1 1 1 1 1 0 1 1 0 0 1 1 0 +1 +1 0 0 1 0 1 1 1 1 0 1 0 1 +0 +0 0 1 0 1 1 0 1 0 0 0 0 1 +1 +0 0 1 0 0 1 0 1 0 0 0 1 0 +0 +1 1 0 0 1 0 1 0 0 0 1 0 1 +0 +1 0 1 0 1 1 0 0 0 0 1 0 1 +0 +1 1 1 0 1 0 1 1 1 0 1 0 1 +1 +0 1 0 1 1 0 1 1 0 1 1 1 0 +0 +0 0 1 1 1 0 0 0 0 0 0 0 1 +0 +0 1 0 1 0 1 1 0 1 1 0 0 0 +0 +1 0 1 0 1 0 1 0 1 1 1 0 0 +1 +0 0 1 0 1 1 1 0 1 0 1 0 1 +1 +1 1 1 0 1 1 1 0 1 0 0 1 0 +0 +1 0 1 0 1 1 1 0 0 0 0 0 0 +1 +1 0 1 0 1 0 0 0 1 1 0 1 0 +0 +1 0 0 1 0 0 0 0 1 1 1 1 0 +0 +0 0 0 0 0 0 0 0 1 0 0 1 0 +0 +0 0 0 1 1 0 1 0 0 0 0 0 1 +0 +1 0 1 0 1 0 1 0 1 0 1 0 0 +0 +0 0 1 0 0 0 1 1 1 1 1 0 0 +0 +0 1 1 0 0 1 0 0 0 1 1 0 1 +0 +1 1 0 1 0 0 0 1 1 1 1 1 1 +1 +0 1 0 1 0 0 1 0 1 0 1 0 0 +1 +1 0 0 0 0 1 1 1 1 0 0 1 1 +1 +0 1 1 1 1 0 1 1 1 0 0 0 0 +1 +0 1 0 1 1 0 1 1 1 0 1 1 0 +0 +0 0 0 1 0 1 0 0 0 1 0 0 1 +0 +1 1 1 1 1 0 1 1 1 1 0 1 0 +0 +0 0 0 1 0 1 0 0 1 1 0 1 0 +1 +1 0 1 0 1 0 1 1 0 0 1 1 0 +1 +0 0 0 0 1 1 1 0 1 1 1 1 0 +1 +0 1 1 1 0 1 1 1 0 1 1 1 1 +0 +0 1 1 1 0 1 0 1 0 1 1 1 0 +0 +1 0 0 1 1 1 1 1 0 0 0 0 1 +1 +0 1 1 0 1 0 1 0 0 1 1 0 1 +1 +0 0 0 1 0 1 0 1 1 1 0 0 0 +1 +1 1 0 1 1 0 1 0 1 0 0 1 0 +1 +0 1 0 1 1 1 0 0 1 0 1 1 0 +1 +0 0 0 1 1 1 0 0 0 1 0 0 0 +0 +0 1 0 1 0 1 1 0 1 0 1 1 0 +1 +0 1 1 1 1 1 1 0 1 1 1 1 1 +1 +1 1 1 1 0 0 1 0 1 0 1 1 0 +0 +1 0 1 0 1 1 0 0 1 1 1 1 0 +0 +0 0 1 0 0 0 1 0 0 1 1 1 1 +0 +1 1 1 0 0 1 0 1 1 1 1 1 0 +1 +1 0 1 1 1 0 0 0 0 1 1 0 1 +1 +1 0 1 1 0 0 1 0 1 0 1 1 0 +1 +1 1 0 1 1 0 0 0 1 0 1 0 1 +1 +1 1 1 0 1 1 0 0 0 1 0 1 0 +1 +1 0 1 0 0 1 0 0 1 0 1 0 1 +0 +0 1 0 1 0 1 0 1 1 0 0 0 0 +1 +0 0 1 1 0 1 0 1 1 1 0 0 1 +1 +0 0 1 0 1 0 0 0 0 0 0 1 0 +1 +1 1 0 1 1 1 0 0 1 0 0 0 0 +0 +0 1 1 0 0 1 1 1 0 1 1 0 0 +1 +0 1 1 1 0 1 0 0 1 1 0 0 1 +1 +0 0 1 1 1 0 0 0 1 0 1 1 0 +0 +0 0 0 1 1 0 1 1 0 0 1 1 1 +1 +1 1 1 0 0 1 1 1 1 1 0 1 0 +1 +0 1 1 1 1 1 1 1 1 0 0 0 0 +0 +1 0 0 0 1 0 0 0 1 0 0 1 1 +1 +0 1 1 0 0 1 0 0 1 0 0 1 0 +1 +0 1 1 1 0 0 0 0 1 0 1 0 0 +1 +1 1 1 0 0 0 1 0 0 1 0 0 1 +0 +1 0 1 0 0 0 1 1 0 0 0 1 1 +0 +1 1 1 0 1 1 1 1 0 0 1 1 0 +1 +0 0 1 1 0 1 1 0 0 0 0 0 0 +0 +0 0 0 1 0 0 0 1 0 0 0 1 0 +1 +1 1 0 1 0 1 1 0 1 0 1 1 1 +1 +1 0 1 1 0 0 0 0 0 0 0 1 1 +1 +0 0 1 0 0 0 1 1 1 0 0 0 1 +1 +1 1 1 0 1 1 1 1 0 1 0 0 0 +0 +1 1 1 1 1 0 0 1 0 0 1 1 1 +1 +1 0 1 1 1 1 1 0 0 1 1 1 0 +1 +1 0 1 0 1 0 1 0 0 1 0 0 1 +0 +1 0 1 1 1 1 1 0 0 0 0 1 1 +0 +1 1 0 0 0 1 0 1 1 1 0 0 1 +1 +1 1 1 1 0 0 0 1 1 1 0 1 0 +0 +1 1 1 1 1 1 1 0 0 1 1 0 1 +0 +1 0 1 1 1 0 0 0 1 1 1 0 1 +0 +0 0 1 1 1 1 0 1 0 1 1 1 0 +0 +0 1 1 0 1 1 0 1 1 0 0 0 1 +1 +0 0 0 0 0 1 1 1 1 0 1 1 1 +1 +1 1 0 0 0 0 1 0 0 0 1 1 1 +0 +0 1 0 0 1 0 1 1 0 0 1 0 0 +1 +1 0 0 1 0 1 0 1 1 1 0 0 1 +1 +1 1 1 0 0 1 1 0 1 0 1 0 1 +0 +0 0 0 1 1 0 1 0 0 0 0 1 1 +1 +0 1 1 0 0 0 0 0 0 1 0 0 0 +1 +0 1 1 1 1 1 0 0 1 0 1 0 0 +1 +0 0 1 0 0 1 0 0 0 1 0 0 0 +1 +0 1 1 0 0 1 1 0 0 1 1 1 0 +1 +1 1 1 1 1 1 1 0 0 1 0 0 0 +0 +0 1 0 0 0 0 0 1 0 1 0 0 0 +1 +0 1 1 0 0 0 1 0 1 0 1 1 0 +0 +1 1 0 0 1 0 1 0 1 1 1 1 0 +0 +0 0 0 1 0 1 1 0 1 0 0 0 1 +1 +1 1 0 0 1 0 1 1 0 1 0 1 1 +0 +1 1 1 0 1 0 0 1 1 0 0 0 0 +0 +0 1 0 0 0 0 1 0 1 1 1 1 0 +0 +0 1 0 0 0 0 0 0 0 1 0 1 1 +0 +0 1 1 0 0 1 0 0 0 0 0 1 1 +1 +1 0 0 1 1 0 0 1 1 1 1 1 0 +0 +0 0 1 1 1 0 0 1 0 1 0 0 1 +0 +1 0 0 1 1 0 0 0 1 0 1 0 0 +1 +1 1 1 1 0 0 1 1 0 1 0 0 1 +0 +0 1 1 1 1 0 0 1 1 0 1 1 1 +1 +0 1 0 1 0 0 1 0 0 1 1 1 0 +0 +0 0 1 0 0 0 1 0 1 0 0 1 1 +1 +0 1 1 1 0 0 0 0 1 1 0 0 1 +0 +0 0 0 0 0 0 1 0 0 1 0 1 0 +1 +0 1 1 0 0 1 1 1 1 0 1 0 0 +1 +0 1 1 1 0 0 1 1 1 1 0 1 1 +1 +0 0 1 1 0 1 0 0 1 1 0 0 0 +1 +0 1 1 0 0 0 0 0 1 0 0 1 1 +1 +1 1 0 1 1 0 1 0 1 0 1 1 1 +1 +0 1 0 1 0 1 1 0 1 0 1 0 0 +0 +1 0 1 0 0 0 1 1 0 0 1 0 1 +0 +0 0 1 0 1 1 0 1 0 1 0 0 1 +0 +0 1 1 1 1 0 1 1 1 1 0 1 0 +1 +1 0 0 1 0 0 1 0 1 1 0 0 1 +0 +1 1 1 0 1 0 0 1 1 1 1 0 1 +1 +0 0 0 1 1 1 0 1 0 0 0 1 1 +0 +1 1 0 1 0 0 1 0 1 0 0 0 1 +0 +0 0 0 0 1 0 0 1 1 1 0 1 0 +1 +0 1 0 1 0 0 1 1 0 1 1 0 1 +1 +1 1 0 1 1 0 1 1 1 1 0 1 1 +0 +1 0 1 0 1 1 1 1 0 1 0 1 1 +1 +1 1 1 1 1 1 0 0 1 0 0 1 0 +0 +1 1 0 1 0 0 0 0 0 1 0 0 1 +1 +1 0 0 0 1 1 1 1 0 1 0 1 1 +0 +0 1 1 0 0 1 0 0 1 0 0 0 1 +1 +1 0 1 1 1 1 0 1 1 1 0 0 0 +0 +0 1 1 0 1 0 1 1 1 1 1 1 1 +0 +0 1 0 1 0 1 0 1 1 1 1 0 0 +1 +1 1 1 0 1 1 1 1 1 0 1 0 0 +1 +1 1 0 1 0 0 0 0 1 0 0 1 0 +1 +1 0 1 0 0 0 1 0 1 1 1 0 1 +1 +0 1 0 0 0 1 1 0 0 1 0 1 1 +0 +0 0 0 0 1 0 0 0 1 0 0 0 0 +0 +0 0 1 0 1 1 1 0 0 0 0 0 1 +1 +1 1 0 1 1 1 1 0 0 1 1 1 1 +0 +0 0 0 0 1 1 1 0 1 0 1 1 1 +1 +1 0 0 0 0 1 0 0 1 0 1 0 1 +1 +0 0 0 1 0 1 0 1 1 0 0 0 1 +1 +1 1 1 0 1 1 1 0 0 1 1 0 1 +1 +1 1 0 0 0 0 0 0 0 1 0 1 0 +0 +0 0 1 1 0 0 1 1 0 0 1 1 1 +1 +0 1 0 0 1 0 0 0 1 1 0 0 0 +0 +0 1 0 1 1 0 0 0 0 1 1 1 0 +0 +0 1 1 1 1 1 1 0 1 1 0 1 0 +1 +0 1 0 0 1 0 1 1 0 0 0 0 1 +1 +0 0 0 0 1 0 0 0 1 0 0 1 0 +1 +0 0 0 1 1 1 1 0 1 0 0 0 0 +1 +0 1 1 0 1 0 1 0 0 0 0 1 1 +0 +0 0 0 1 1 0 0 0 0 0 0 1 1 +0 +0 0 1 1 0 1 1 1 1 0 0 0 1 +1 +0 1 0 1 1 0 1 0 1 1 1 0 1 +0 +1 1 1 0 1 0 0 0 1 0 0 0 1 +0 +1 0 1 0 0 1 0 0 0 0 0 1 1 +1 +0 0 0 0 1 1 1 1 0 1 1 0 1 +1 +1 0 0 0 1 0 0 1 1 1 0 1 0 +0 +1 0 0 0 0 1 1 1 1 1 0 0 0 +0 +0 0 0 0 1 0 0 0 0 0 1 1 1 +0 +1 1 0 1 0 0 0 1 0 0 0 0 1 +1 +1 1 1 0 0 0 1 0 1 1 0 1 1 +0 +0 0 0 0 1 1 0 1 0 0 0 1 0 +0 +1 0 1 1 1 0 1 0 0 1 1 1 1 +1 +0 0 1 1 1 0 1 1 0 0 0 0 1 +0 +0 0 1 0 1 1 0 1 0 1 0 0 0 +1 +0 0 1 0 1 0 0 1 1 1 1 0 0 +0 +0 1 1 0 1 1 1 1 0 1 0 1 0 +0 +0 0 1 1 0 0 0 0 1 0 0 0 0 +1 +0 0 0 0 1 1 1 1 1 0 0 0 0 +1 +1 1 1 0 1 0 1 1 0 1 1 1 1 +0 +1 1 0 1 1 1 1 0 1 0 1 0 1 +1 +0 1 1 0 1 0 1 0 0 1 1 1 0 +1 +1 0 1 0 0 1 1 0 1 1 0 0 0 +0 +0 1 0 1 1 1 1 1 0 1 0 0 1 +0 +1 0 1 1 1 0 1 1 1 1 1 0 1 +0 +1 1 0 0 1 0 0 0 0 0 0 1 0 +0 +1 1 1 0 1 1 0 0 1 0 0 0 1 +1 +0 0 0 0 0 0 0 1 1 1 1 1 0 +1 +0 0 0 1 0 0 0 0 1 1 0 1 1 +1 +1 0 0 1 0 0 0 1 1 1 1 1 0 +1 +0 0 0 0 1 0 0 0 0 0 1 1 0 +1 +0 1 0 1 0 0 1 1 1 0 0 0 0 +1 +1 0 0 1 1 0 0 1 1 1 0 1 1 +0 +1 0 0 0 1 0 0 0 1 1 1 0 1 +0 +1 1 1 1 1 0 1 1 0 1 1 0 1 +0 +1 0 1 0 1 1 1 0 1 0 0 0 1 +1 +1 1 0 0 1 1 1 0 1 1 1 1 0 +1 +1 0 0 1 1 0 0 1 0 1 0 0 1 +0 +0 1 0 1 0 0 0 1 1 1 1 1 0 +1 +0 0 0 1 0 0 0 0 1 0 1 0 0 +1 +1 0 0 0 0 0 1 1 0 0 1 0 0 +0 +1 1 1 0 0 0 1 0 0 0 1 1 0 +0 +0 0 1 0 0 1 1 0 0 1 0 1 0 +1 +0 0 0 1 1 1 0 0 0 1 0 0 1 +1 +1 0 1 1 1 0 1 0 1 1 1 1 0 +1 +1 1 1 0 0 1 0 0 0 1 0 1 0 +0 +1 1 0 0 1 0 0 1 1 0 0 1 1 +1 +0 1 1 1 1 1 1 0 1 1 1 1 0 +0 +0 1 1 0 1 0 0 0 1 1 0 0 1 +0 +1 1 1 1 1 1 0 0 1 1 0 1 1 +0 +0 0 1 1 0 1 1 1 0 1 0 1 0 +1 +0 0 1 1 0 1 0 0 0 1 1 1 0 +0 +0 0 0 1 0 0 1 1 1 0 0 0 0 +0 +0 1 1 1 1 0 1 0 1 0 0 1 0 +1 +0 0 1 1 1 0 1 1 0 1 0 0 0 +0 +1 1 1 1 1 0 0 1 1 0 1 0 0 +0 +0 0 0 1 0 0 0 1 1 1 1 1 0 +0 +1 0 1 1 1 1 1 0 0 1 0 0 1 +0 +1 0 1 1 1 0 1 1 0 0 0 1 0 +1 +1 1 0 1 0 1 1 1 0 0 1 1 1 +1 +0 1 1 1 0 1 0 1 0 1 0 0 1 +1 +0 0 1 1 0 1 0 1 1 1 0 1 1 +0 +0 1 1 0 0 0 0 1 0 0 0 1 0 +0 +0 0 0 1 0 1 1 1 1 0 0 0 0 +1 +0 0 0 1 1 1 1 0 0 1 1 0 1 +1 +0 0 0 0 0 1 0 1 0 0 1 1 0 +0 +1 0 0 0 0 0 0 0 0 0 0 1 1 +1 +0 1 1 1 1 0 0 1 0 0 1 1 1 +0 +0 1 0 0 1 1 1 0 0 0 1 0 1 +0 +1 0 0 0 1 1 0 0 1 0 0 1 1 +0 +1 0 1 0 0 0 0 0 0 1 0 1 1 +1 +1 1 1 1 1 0 0 1 0 0 1 0 1 +0 +1 1 1 0 0 0 1 0 1 1 1 0 0 +1 +1 0 0 1 1 0 0 0 1 0 1 1 1 +1 +0 0 1 0 1 1 1 0 0 1 0 1 0 +0 +1 1 1 0 1 0 0 0 0 0 1 0 1 +0 +0 0 1 0 0 0 1 0 1 1 1 0 0 +1 +1 0 0 1 1 1 0 0 0 1 0 0 0 +1 +0 1 1 1 0 1 1 0 0 1 0 1 0 +1 +1 0 0 0 0 1 1 0 1 1 0 1 0 +0 +1 1 0 1 1 1 0 1 0 0 0 1 0 +1 +1 0 0 1 0 0 0 1 0 1 0 0 1 +1 +1 0 1 1 1 0 1 0 0 1 1 0 1 +0 +0 1 0 0 0 0 1 1 1 0 0 1 0 +1 +0 0 1 1 0 0 0 1 1 1 1 0 1 +1 +0 0 1 0 0 0 0 1 1 1 1 0 1 +0 +1 0 0 0 0 0 0 1 0 1 0 1 1 +1 +1 0 1 0 0 0 0 1 1 1 1 0 0 +0 +0 0 1 0 0 0 1 0 0 0 0 1 0 +1 +0 0 1 1 1 0 0 1 0 0 1 0 1 +0 +1 0 1 0 0 1 0 1 1 0 0 0 1 +0 +0 0 1 1 0 1 0 1 1 0 1 1 0 +1 +0 0 0 1 0 0 0 1 1 0 1 0 1 +1 +0 1 0 0 0 0 1 0 1 1 0 0 1 +1 +1 0 0 0 1 1 0 1 1 0 0 0 0 +1 +1 1 0 0 1 1 0 0 1 0 1 1 0 +1 +0 1 1 1 1 1 0 0 1 0 0 0 1 +1 +1 1 0 1 0 1 0 0 1 1 0 0 1 +1 +1 0 0 0 0 0 1 1 1 0 1 0 1 +0 +1 0 1 0 1 1 1 1 0 1 1 0 0 +0 +1 0 1 0 0 0 0 0 1 1 0 0 1 +1 +1 1 0 0 1 0 0 0 0 0 1 1 1 +0 +1 1 0 1 1 1 0 1 1 0 0 1 1 +1 +0 1 1 1 1 1 1 0 1 0 1 0 0 +0 +1 0 0 0 1 1 1 1 1 1 0 0 1 +0 +0 1 0 1 0 0 0 1 0 1 1 0 0 +1 +0 1 0 1 1 0 1 0 0 1 0 1 0 +0 +0 0 0 1 0 0 0 0 0 0 1 0 0 +0 +1 1 1 0 1 1 1 0 0 0 0 1 1 +0 +0 0 0 1 0 1 0 1 1 1 0 1 1 +1 +0 0 1 0 1 0 0 1 1 0 1 1 1 +1 +1 0 0 0 0 0 0 0 1 0 1 0 1 +0 +0 0 0 0 0 1 0 0 1 0 0 0 0 +0 +1 0 0 1 1 1 0 0 1 0 1 0 1 +1 +0 1 0 0 0 1 0 1 1 0 0 0 0 +0 +0 1 1 0 0 0 1 0 1 1 0 0 1 +0 +0 0 0 0 1 0 0 1 0 0 1 1 0 +0 +1 1 1 1 0 1 0 1 1 1 1 0 0 +1 +0 1 0 0 1 0 0 0 1 0 0 1 1 +1 +0 1 0 1 0 1 0 1 1 0 0 1 1 +1 +1 0 1 1 0 0 1 1 0 1 1 0 0 +1 +1 1 1 0 1 1 1 0 0 1 1 1 1 +0 +1 0 0 0 1 1 1 0 0 1 0 0 0 +1 +0 0 1 1 1 1 0 1 0 0 0 0 1 +0 +0 1 1 1 1 1 0 1 0 0 1 1 0 +0 +1 0 0 0 1 0 0 1 1 0 0 1 0 +1 +1 0 1 1 1 0 0 0 1 0 1 1 1 +0 +0 0 1 1 0 0 0 0 1 1 1 1 1 +1 +0 0 1 0 1 1 1 1 1 1 1 1 1 +0 +0 0 0 0 1 1 1 1 1 0 0 1 1 +1 +1 0 0 1 0 1 1 1 0 1 0 1 0 +1 +0 1 1 0 1 0 0 0 0 1 0 0 1 +1 +1 0 1 0 0 0 1 0 1 1 1 0 0 +0 +0 0 0 1 1 1 1 0 0 1 0 1 1 +1 +1 0 0 1 0 1 0 0 0 1 0 1 1 +0 +1 1 1 0 1 1 1 1 0 0 1 0 1 +1 +0 0 1 0 0 0 1 0 1 1 1 0 1 +0 +0 1 0 0 0 0 0 1 1 0 1 0 0 +0 +0 0 1 0 0 1 1 0 1 1 0 1 1 +1 +0 1 0 1 1 1 1 1 0 0 0 0 1 +1 +1 1 0 0 0 1 1 0 0 1 1 1 0 +1 +0 0 0 1 1 1 1 1 0 0 1 0 0 +0 +0 1 1 1 0 0 0 1 1 0 0 1 0 +0 +0 0 1 0 1 1 0 0 1 1 0 1 0 +0 +0 1 0 1 1 1 1 0 1 1 1 1 0 +1 +1 0 1 1 0 0 1 0 1 0 1 0 1 +1 +1 1 0 0 0 1 1 1 0 0 1 1 0 +1 +0 1 1 0 1 1 0 1 0 0 1 0 0 +0 +1 1 1 1 1 0 0 1 0 1 1 0 1 +1 +0 1 1 0 0 1 0 0 1 1 1 1 0 +1 +1 0 0 0 1 0 1 0 1 1 0 0 0 +1 +0 0 1 1 1 1 1 1 1 0 1 1 1 +0 +1 1 1 1 1 1 1 1 0 1 0 1 1 +1 +1 0 0 0 1 1 0 1 1 0 0 1 1 +1 +0 1 1 0 0 1 1 1 0 1 0 1 1 +0 +1 1 0 1 0 1 1 0 1 1 0 1 1 +1 +1 0 0 1 0 1 0 1 0 0 0 0 0 +0 +0 0 1 0 0 1 1 1 0 0 1 0 0 +1 +1 1 1 0 1 1 1 0 0 1 0 1 1 +1 +0 1 0 1 1 0 1 1 0 0 0 1 1 +1 +0 0 0 0 0 1 0 1 0 1 1 0 1 +1 +1 1 0 0 0 1 1 1 0 0 0 1 1 +1 +0 1 1 1 0 0 0 0 0 0 1 1 0 +1 +1 1 1 1 1 0 0 0 0 1 1 0 1 +0 +1 0 1 1 0 1 1 1 1 0 0 0 1 +0 +1 0 1 1 0 1 0 0 0 1 1 1 1 +0 +1 1 1 1 0 1 0 0 1 0 1 0 1 +0 +0 0 1 0 1 0 1 1 1 0 0 0 1 +0 +0 0 0 1 0 1 1 1 0 0 0 0 1 +1 +0 0 1 0 0 1 0 1 0 1 0 0 0 +0 +0 1 0 0 1 0 1 1 0 0 0 0 0 +0 +0 1 0 1 0 0 0 0 0 1 1 0 0 +0 +0 0 0 1 1 0 1 0 0 0 1 1 0 +1 +1 0 0 1 0 0 0 1 1 0 0 0 1 +1 +1 0 0 1 0 0 0 1 1 1 0 1 0 +0 +0 0 1 0 0 0 1 1 0 0 1 0 1 +1 +1 0 0 1 0 1 0 0 0 0 1 0 0 +0 +1 0 1 0 1 1 0 0 0 1 1 1 1 +0 +1 0 0 1 1 1 1 1 1 1 1 0 0 +1 +1 0 1 0 0 0 1 0 1 1 0 0 0 +1 +0 0 1 0 1 0 0 1 0 0 0 0 0 +1 +0 0 1 0 0 0 1 1 1 1 0 1 1 +1 +1 0 0 0 0 1 0 1 1 1 0 0 0 +1 +1 1 0 0 1 1 0 0 0 0 0 0 0 +0 +0 1 0 1 0 0 0 0 1 1 0 0 0 +0 +1 1 1 0 1 1 1 0 1 0 0 0 0 +1 +1 1 0 0 0 1 1 0 0 1 1 0 1 +1 +1 1 0 0 1 0 0 1 0 1 0 0 0 +1 +0 0 1 0 1 0 0 1 0 1 1 1 0 +0 +0 0 1 1 1 0 1 0 0 1 1 0 0 +0 +1 1 0 0 0 0 1 0 0 1 0 0 1 +1 +1 0 1 0 0 1 0 1 0 0 0 1 0 +1 +0 0 0 1 0 0 1 0 1 0 1 0 1 +1 +0 1 1 0 1 0 0 0 0 1 0 0 0 +0 +0 0 1 1 1 1 0 0 1 0 1 1 0 +1 +1 0 1 0 0 0 0 1 0 0 1 1 0 +1 +1 1 1 0 1 1 0 1 1 1 1 1 0 +0 +1 0 0 0 0 0 0 0 0 0 0 0 0 +1 +1 0 1 0 1 0 1 0 1 0 0 0 1 +0 +1 0 0 1 0 1 0 0 1 0 0 1 1 +0 +1 0 1 1 0 0 0 0 0 0 0 0 0 +1 +1 1 1 1 0 1 1 1 1 0 0 0 0 +0 +1 1 1 1 1 1 0 0 1 1 0 0 1 +1 +0 1 0 1 0 0 1 0 1 1 0 1 1 +1 +0 1 1 1 1 1 0 1 1 1 1 1 1 +1 +0 0 0 0 0 1 0 0 1 1 1 1 0 +1 +0 0 1 1 0 1 1 0 1 1 0 1 1 +0 +1 1 0 0 0 0 1 1 0 0 1 1 1 +1 +0 1 0 0 0 0 0 0 1 0 0 1 1 +0 +1 1 0 1 0 1 0 1 1 1 1 0 1 +1 +0 0 1 0 1 0 0 0 0 0 0 0 0 +0 +0 0 0 1 1 0 1 1 0 0 1 1 0 +0 +1 1 0 0 0 1 1 1 1 0 1 0 1 +0 +0 1 1 0 0 0 0 1 1 0 1 1 0 +0 +1 1 1 1 1 1 1 1 0 0 0 0 0 +0 +0 0 0 1 1 1 1 0 0 1 0 0 1 +0 +1 0 1 0 0 0 0 0 0 0 1 1 1 +1 +1 0 0 1 0 0 0 1 1 1 0 0 0 +1 +1 1 1 1 1 0 1 1 1 0 0 1 1 +0 +0 1 1 0 1 1 1 1 1 1 1 0 0 +1 +1 1 1 0 0 1 1 1 0 0 1 1 1 +1 +0 1 0 1 0 1 0 0 0 0 0 1 1 +1 +0 0 1 1 0 1 1 0 0 1 1 0 1 +1 +1 0 0 0 1 1 1 1 1 1 0 0 0 +1 +0 0 1 0 0 0 0 0 1 1 0 1 0 +0 +1 0 0 0 0 0 1 1 1 1 1 1 0 +1 +1 0 0 0 1 0 1 1 1 1 1 1 0 +0 +1 0 1 0 1 1 0 1 0 0 0 1 0 +0 +1 0 0 1 1 1 1 0 0 1 0 1 1 +0 +1 0 0 1 1 0 0 0 1 0 1 1 0 +0 +0 0 0 0 1 1 0 0 0 1 1 0 0 +0 +1 0 0 0 1 1 0 1 1 1 0 1 0 +1 +1 1 1 1 0 1 0 0 1 0 0 0 0 +0 +1 1 0 0 0 1 1 0 0 1 1 0 0 +0 +1 1 0 0 1 0 0 1 0 0 0 0 0 +0 +0 0 0 1 1 0 0 0 1 0 1 1 1 +0 +0 0 1 1 0 1 1 1 1 1 0 0 0 +1 +0 0 0 0 0 0 0 1 0 1 1 1 0 +0 +0 1 0 1 0 0 0 1 0 1 1 0 1 +0 +1 1 0 0 1 1 0 1 0 0 0 1 0 +0 +0 1 0 0 1 1 1 1 0 0 0 0 0 +1 +0 0 1 1 0 0 0 0 0 1 0 1 0 +0 +1 1 0 0 1 1 1 1 1 1 0 0 0 +0 +0 1 0 0 1 1 0 0 0 0 1 1 0 +1 +1 0 0 1 0 1 1 0 1 0 1 0 0 +0 +0 1 0 1 1 0 1 0 0 0 0 0 1 +1 +0 0 1 1 0 0 1 1 0 0 1 0 0 +1 +1 1 0 0 0 0 1 1 1 1 1 0 0 +1 +1 1 0 0 0 1 0 0 0 1 0 0 1 +1 +1 1 0 1 1 0 0 0 1 0 1 1 1 +0 +0 1 0 1 1 1 0 0 0 1 0 0 1 +0 +1 1 1 0 0 0 0 1 0 1 1 0 1 +1 +0 0 0 0 0 1 0 0 1 1 0 0 0 +1 +1 0 1 0 1 1 1 1 1 1 1 1 1 +1 +1 0 0 0 0 1 1 1 0 0 0 0 0 +0 +0 1 1 1 1 0 1 0 0 1 1 0 0 +1 +1 1 1 1 0 0 1 1 1 1 0 1 1 +0 +1 1 0 0 0 0 0 0 1 0 0 0 1 +0 +1 0 0 0 0 0 1 1 0 0 0 0 0 +1 +1 1 1 1 1 1 0 0 0 1 0 0 0 +1 +0 0 0 0 0 1 1 0 1 0 1 0 1 +1 +0 1 1 0 0 0 0 1 0 0 1 1 0 +1 +0 0 0 0 1 0 1 1 0 0 0 1 1 +1 +0 0 1 0 0 0 1 1 1 1 1 1 0 +1 +1 0 1 1 0 0 1 0 0 1 1 0 0 +0 +1 1 1 0 1 0 1 0 1 0 0 1 1 +0 +0 0 0 1 0 0 1 0 0 0 1 1 0 +0 +0 0 0 0 1 0 0 0 1 0 1 1 1 +1 +1 0 0 1 1 1 0 0 0 0 1 0 1 +0 +1 0 0 1 0 1 0 0 0 0 1 1 1 +0 +0 1 0 1 0 0 1 0 0 1 0 1 1 +0 +1 0 0 0 0 1 0 1 1 1 1 0 1 +1 +1 1 1 0 1 1 0 0 0 1 1 1 1 +1 +0 1 1 0 1 0 0 1 0 1 1 0 0 +0 +0 0 1 0 1 1 0 1 1 1 0 0 1 +1 +0 0 1 0 0 0 0 0 1 0 1 0 0 +1 +1 0 0 1 0 0 1 1 1 1 1 1 1 +1 +0 1 1 0 0 1 0 0 0 0 0 0 0 +1 +0 1 0 1 1 0 1 0 0 1 1 1 0 +1 +0 1 1 1 1 1 1 1 0 1 0 0 0 +0 +0 1 0 1 1 1 0 1 0 1 1 1 1 +1 +0 0 0 0 1 1 0 0 1 0 1 0 0 +0 +1 0 1 1 0 0 1 0 0 0 0 0 1 +1 +1 0 1 0 0 0 0 1 0 0 1 1 1 +0 +0 1 0 1 0 1 0 0 1 0 0 0 0 +0 +0 0 1 0 0 1 0 0 1 0 0 0 1 +0 +0 1 1 0 1 0 0 0 1 1 0 1 1 +1 +0 1 0 1 0 1 0 1 0 0 0 0 0 +0 +1 0 0 1 1 0 0 0 0 0 0 1 1 +1 +0 0 0 0 0 0 0 1 1 1 0 0 0 +1 +1 1 0 0 1 1 1 0 1 1 1 0 0 +0 +1 0 0 1 1 0 0 1 1 0 0 0 1 +0 +1 1 1 0 1 0 1 1 1 1 0 0 1 +1 +1 1 0 0 1 0 0 0 0 1 0 1 1 +0 +1 0 0 1 1 0 0 0 1 1 1 1 0 +1 +1 1 1 1 0 0 0 0 1 1 0 1 1 +0 +0 1 0 1 0 0 0 0 0 0 1 1 0 +0 +0 1 0 0 1 0 0 1 1 0 1 0 0 +1 +0 1 0 0 0 1 0 1 1 1 0 0 0 +1 +1 0 1 1 1 0 0 0 0 0 0 1 1 +0 +1 0 1 1 0 0 0 1 1 1 1 0 0 +1 +0 0 0 0 0 1 0 1 1 0 0 0 1 +0 +1 1 0 1 0 1 1 0 0 1 1 0 0 +1 +0 0 1 1 0 0 0 1 1 1 1 1 0 +1 +1 1 0 0 1 1 1 1 0 1 1 1 0 +1 +1 1 0 1 0 1 1 0 0 1 0 1 0 +1 +0 1 0 0 0 1 1 1 0 1 1 0 1 +1 +1 1 0 1 1 0 1 1 0 1 1 1 0 +1 +1 0 0 0 1 1 0 1 0 0 1 0 0 +1 +0 1 0 0 1 1 0 1 1 1 1 0 1 +0 +0 0 0 1 1 0 0 0 1 0 0 0 0 +1 +0 0 1 1 0 1 0 0 1 0 1 1 1 +1 +1 0 1 1 1 1 1 1 1 0 0 0 1 +1 +1 0 1 1 1 1 0 1 0 1 1 0 1 +1 +0 1 0 0 0 0 1 0 1 1 1 0 0 +1 +1 1 0 0 0 0 0 0 1 0 1 0 0 +0 +1 1 1 1 1 0 0 0 0 1 1 1 1 +1 +0 1 1 1 1 1 1 1 1 0 1 1 0 +0 +1 1 0 0 1 0 0 1 0 1 0 1 1 +1 +0 0 1 1 1 1 1 1 1 0 1 1 0 +1 +1 0 1 1 0 0 1 0 0 0 1 1 0 +0 +1 0 0 0 0 0 1 1 0 0 1 1 1 +0 +1 1 0 0 0 1 1 1 1 0 0 1 1 +0 +1 1 1 1 0 1 1 1 0 0 0 0 0 +1 +1 0 1 0 1 1 1 0 1 1 0 1 0 +0 +0 1 0 0 0 0 0 1 1 1 0 1 0 +1 +0 0 1 1 0 0 0 0 0 1 1 0 0 +0 +1 0 0 1 1 0 0 1 1 0 0 0 0 +1 +1 1 0 1 1 1 0 0 1 0 0 0 1 +1 +1 0 0 0 0 1 1 1 1 0 0 1 0 +0 +1 0 0 1 0 0 1 0 1 1 0 0 0 +1 +1 1 0 1 0 1 0 1 0 0 0 1 0 +0 +1 0 1 1 1 0 0 0 0 0 0 1 0 +1 +1 0 1 0 1 0 0 1 0 0 0 1 0 +1 +1 0 1 1 0 0 0 0 1 1 1 0 0 +0 +1 0 1 1 1 0 1 1 1 0 1 0 1 +1 +0 0 0 1 0 0 0 1 0 1 1 0 1 +1 +1 1 1 0 1 1 0 0 0 1 1 0 1 +0 +0 0 1 0 0 0 0 0 1 0 0 1 0 +1 +0 0 0 0 0 0 1 0 0 0 0 1 0 +0 +0 0 0 1 1 1 0 0 0 0 1 0 1 +1 +1 0 1 1 0 0 0 1 1 1 1 1 1 +1 +0 0 0 1 1 0 0 1 0 0 1 0 1 +1 +0 0 0 0 0 1 1 1 0 0 1 1 0 +1 +0 0 0 1 0 1 1 0 0 1 0 0 0 +0 +1 1 1 0 0 0 1 1 0 0 1 1 1 +0 +1 1 0 1 1 1 1 1 1 1 0 1 1 +1 +1 1 1 0 0 1 0 0 0 0 0 1 1 +0 +0 0 1 0 1 0 1 1 1 1 0 0 0 +0 +1 1 1 0 1 0 1 1 0 0 0 0 1 +1 +0 0 1 0 1 1 0 1 0 0 1 1 0 +0 +0 0 1 0 1 0 0 1 1 1 0 1 1 +1 +0 1 1 0 0 1 1 1 1 0 0 0 0 +0 +1 1 1 0 0 1 0 1 1 1 0 0 1 +0 +1 0 0 1 1 1 0 1 1 1 1 1 0 +1 +1 1 0 0 1 0 0 1 1 1 0 1 1 +0 +1 0 0 1 0 1 0 0 0 0 1 0 1 +1 +0 0 0 1 0 1 1 0 1 1 0 1 1 +1 +0 0 1 0 1 1 1 0 1 1 0 1 1 +0 +1 1 1 1 0 1 1 0 0 1 1 1 1 +0 +0 0 1 0 1 1 1 1 0 1 1 0 0 +1 +0 0 0 1 1 1 1 0 0 1 0 0 0 +1 +1 1 0 0 0 0 1 1 1 0 1 0 0 +0 +0 1 0 1 0 1 1 1 0 0 0 0 0 +1 +1 0 0 1 0 0 0 0 0 1 0 0 0 +1 +1 0 0 1 0 0 0 1 1 0 0 0 0 +0 +1 1 1 1 0 1 0 1 1 1 1 1 1 +1 +0 1 0 1 1 0 0 1 1 1 0 0 1 +1 +1 0 1 1 1 0 1 0 1 0 0 0 0 +0 +0 1 1 0 0 1 0 0 0 0 1 0 1 +1 +0 0 1 1 0 1 1 0 1 1 1 1 0 +0 +0 0 0 1 0 1 0 0 0 0 0 0 1 +1 +0 1 1 0 0 0 1 1 0 0 1 1 0 +0 +1 1 1 0 0 0 1 0 0 1 0 1 1 +1 +1 0 0 0 0 1 1 1 0 1 0 1 1 +1 +1 1 0 0 0 0 1 1 1 0 1 0 1 +1 +1 0 0 1 0 0 0 1 0 0 1 0 0 +0 +0 1 0 0 0 0 0 0 0 1 1 0 1 +0 +1 1 1 0 0 0 0 0 0 0 0 1 1 +1 +0 0 0 1 1 0 0 0 0 1 0 1 1 +1 +0 0 0 1 0 0 1 1 1 1 0 0 0 +1 +0 1 1 0 0 1 1 0 0 0 1 0 0 +1 +0 1 1 1 1 1 0 1 0 0 1 0 1 +0 +0 0 1 1 0 0 0 0 1 0 1 1 1 +0 +0 0 1 1 0 0 0 1 1 1 0 1 1 +1 +0 1 1 0 1 1 0 1 0 1 1 0 1 +0 +1 0 0 0 1 1 1 1 1 0 0 1 1 +0 +1 1 1 0 1 1 1 0 1 0 1 0 1 +1 +1 1 0 1 0 1 1 0 1 1 1 1 1 +0 +0 0 0 1 1 0 0 0 0 1 1 0 1 +1 +1 0 0 1 1 1 0 1 0 1 0 1 0 +1 +0 0 0 1 0 0 0 1 1 0 0 1 0 +0 +1 1 1 0 1 0 1 1 1 1 0 0 0 +0 +1 1 0 1 1 0 1 0 1 1 1 1 0 +1 +1 1 0 0 0 1 0 0 0 0 1 0 0 +0 +0 1 0 1 0 1 1 1 1 0 1 0 1 +0 +0 1 0 0 1 0 0 0 1 0 1 0 1 +1 +1 0 1 1 0 0 1 0 0 1 0 1 1 +1 +1 1 1 0 0 1 0 0 1 1 0 0 1 +1 +0 0 1 0 0 1 0 1 1 0 0 1 1 +0 +0 0 0 1 1 0 0 0 1 0 0 1 0 +0 +0 0 0 0 0 1 0 1 0 1 0 0 0 +1 +0 1 0 0 1 1 0 1 1 1 0 1 0 +1 +1 0 1 1 0 0 0 1 1 0 0 1 0 +0 +1 0 1 1 0 1 1 1 1 1 1 1 0 +0 +0 1 0 1 0 1 1 1 0 1 0 1 0 +1 +1 0 0 0 1 1 1 0 0 1 0 0 1 +0 +0 0 0 1 0 1 0 1 1 0 1 1 0 +0 +1 0 0 0 0 1 0 0 1 0 0 0 1 +0 +0 0 0 0 1 0 0 0 0 0 1 0 1 +1 +1 0 1 1 0 1 1 0 1 0 1 0 1 +0 +1 0 0 0 1 1 0 1 0 0 0 1 0 +1 +1 0 1 1 1 1 1 1 0 1 0 0 0 +0 +0 0 1 1 1 0 0 1 0 1 1 0 0 +0 +1 0 0 1 0 0 0 0 1 0 0 1 1 +1 +1 1 1 1 1 0 0 1 1 0 0 0 0 +1 +1 1 0 1 0 1 1 1 0 1 1 0 0 +0 +1 0 0 1 1 1 1 0 1 1 1 0 1 +1 +0 1 1 0 0 1 0 1 0 1 1 0 1 +1 +0 0 1 1 0 0 0 1 1 1 0 0 1 +0 +1 1 0 0 0 1 1 0 1 1 0 1 0 +1 +1 1 0 1 0 1 0 1 1 1 1 0 0 +0 +1 0 1 1 0 0 1 1 1 1 1 0 1 +1 +0 1 1 0 0 1 1 1 0 1 0 0 0 +0 +1 0 1 0 1 1 1 1 0 0 0 0 1 +1 +1 1 1 0 1 1 0 0 0 0 0 0 0 +1 +0 1 1 1 1 0 1 0 1 1 0 0 0 +1 +1 0 0 1 0 1 1 1 1 0 1 1 1 +1 +0 0 0 1 1 0 1 0 1 0 0 1 1 +0 +0 0 0 1 1 1 0 0 0 1 1 0 1 +0 +0 0 1 0 1 0 1 1 0 1 0 1 1 +1 +1 0 1 0 1 1 1 1 1 1 1 0 1 +0 +0 1 1 1 0 0 0 1 0 0 1 0 0 +1 +1 1 1 1 1 1 0 1 0 0 1 0 1 +1 +1 1 1 0 0 0 1 1 1 0 0 1 0 +1 +1 0 0 0 0 1 1 1 1 1 0 0 1 +1 +0 0 0 1 1 1 0 0 0 0 1 1 0 +1 +0 1 0 1 1 0 0 1 0 1 0 1 1 +1 +0 1 1 1 1 0 0 0 0 1 1 0 1 +1 +0 1 0 0 1 0 0 0 1 0 0 0 0 +1 +1 1 1 0 1 0 1 1 0 0 0 1 0 +1 +0 1 1 1 1 0 1 0 1 1 1 0 0 +0 +1 1 0 0 0 0 0 0 0 1 0 0 1 +0 +1 0 0 0 0 0 0 1 0 1 0 0 1 +0 +1 1 0 0 0 0 0 0 0 1 1 0 1 +1 +1 0 1 0 1 0 1 1 0 0 1 0 1 +1 +0 1 0 0 1 1 1 1 0 1 0 1 0 +1 +1 1 1 1 1 0 1 1 0 1 0 1 0 +1 +0 0 0 1 0 0 1 0 0 0 0 0 1 +1 +0 1 1 0 1 1 1 1 1 0 1 1 1 +0 +0 0 1 0 0 1 1 1 1 0 1 1 0 +1 +1 1 1 1 1 1 1 1 0 1 1 0 0 +0 +0 0 1 0 0 1 1 1 0 0 1 0 1 +0 +1 1 1 1 1 1 1 0 1 0 1 0 1 +0 +0 0 1 1 1 0 1 0 0 1 0 0 1 +0 +1 0 1 0 1 1 1 1 0 1 1 0 1 +1 +0 1 1 1 1 0 0 0 0 1 0 0 0 +1 +0 1 1 1 0 1 1 0 1 0 1 0 1 +0 +0 0 0 1 1 0 0 0 1 1 1 0 1 +0 +0 1 0 0 0 1 0 0 1 0 1 1 1 +0 +1 1 0 0 0 0 1 0 0 0 1 0 1 +1 +1 0 1 0 1 1 1 0 0 0 0 0 1 +0 +1 1 0 0 1 0 1 0 0 0 0 1 1 +0 +0 1 1 1 1 0 0 1 1 1 0 1 0 +0 +0 1 0 0 1 1 0 1 1 1 0 0 1 +1 +0 1 0 0 1 0 0 1 1 1 0 1 1 +1 +1 1 0 1 1 0 0 0 0 0 0 0 1 +1 +1 0 0 1 1 0 1 1 1 0 0 1 0 +1 +0 0 1 1 0 1 0 0 0 1 1 0 1 +0 +1 1 0 0 0 0 1 0 1 1 1 0 0 +0 +1 1 1 0 1 1 1 1 1 1 1 1 1 +0 +0 0 0 0 0 0 1 0 1 1 0 1 1 +1 +1 1 1 1 1 0 1 1 1 1 1 1 0 +1 +1 0 0 0 1 0 1 0 1 1 1 0 0 +0 +1 1 1 1 1 1 0 0 0 0 0 0 1 +1 +1 0 1 1 1 0 0 1 1 1 0 0 0 +1 +1 1 0 0 1 1 1 0 1 1 1 0 1 +1 +1 1 0 1 0 1 0 0 0 0 0 0 1 +1 +0 0 0 1 0 1 1 1 1 1 0 0 1 +1 +1 0 0 1 0 1 0 1 1 1 0 1 1 +0 +0 1 1 1 0 0 0 0 0 1 1 1 1 +1 +0 1 1 0 0 0 0 0 1 0 1 1 0 +1 +1 1 0 1 0 0 0 1 0 1 0 0 0 +1 +0 0 1 1 1 1 1 0 0 0 1 1 0 +1 +1 0 1 0 0 0 1 1 0 0 1 0 0 +1 +0 1 0 0 1 0 1 0 0 1 0 0 0 +0 +0 0 1 1 0 1 0 0 1 1 0 1 1 +1 +1 0 0 1 0 0 1 1 0 0 1 1 0 +0 +1 1 0 1 0 0 1 1 1 0 1 1 1 +1 +0 0 0 1 1 1 0 1 1 1 1 0 0 +1 +0 1 0 0 0 1 1 1 0 0 0 1 0 +1 +0 0 1 0 0 0 0 0 0 0 0 0 1 +0 +1 1 1 1 0 1 1 1 1 1 1 1 0 +1 +1 1 1 1 0 1 0 0 0 0 1 0 0 +0 +1 0 0 0 0 1 0 0 1 1 1 1 1 +1 +0 1 0 0 1 0 1 0 0 0 0 1 0 +0 +0 1 0 0 0 1 0 1 1 1 1 0 1 +1 +0 1 0 0 1 0 0 0 1 1 0 1 0 +1 +1 0 0 1 0 1 0 1 1 0 1 0 0 +0 +1 0 1 1 0 1 0 0 0 0 0 0 0 +0 +0 1 1 1 0 0 0 1 0 0 1 0 1 +0 +0 1 1 0 1 1 0 1 0 1 0 1 1 +0 +1 0 0 1 1 0 0 0 1 0 0 0 1 +1 +0 0 1 0 1 1 0 0 1 0 1 0 1 +0 +0 1 1 0 1 1 0 0 0 0 1 0 0 +1 +0 1 1 0 0 0 0 1 1 0 1 1 1 +1 +1 0 0 0 1 0 0 1 0 0 0 1 1 +1 +1 1 0 0 1 0 0 1 1 0 0 0 0 +1 +0 1 0 0 0 0 0 1 1 0 1 1 0 +1 +0 1 1 0 1 0 1 1 1 0 1 0 0 +1 +1 1 0 1 0 0 1 1 1 0 0 0 1 +1 +1 0 0 0 1 0 1 0 1 0 1 1 1 +1 +0 0 1 1 1 0 1 1 1 0 1 0 0 +1 +1 0 0 0 0 1 0 0 1 0 1 1 1 +0 +0 0 1 1 1 1 0 0 0 1 1 0 0 +0 +1 0 1 1 0 1 0 0 1 1 1 1 1 +1 +1 0 0 1 1 1 0 1 1 1 1 0 0 +0 +0 0 0 0 1 1 1 1 1 0 1 0 1 +1 +1 0 0 1 1 1 1 0 1 0 1 0 1 +0 +0 1 1 1 1 1 1 1 1 1 0 1 0 +0 +1 0 1 1 0 0 1 1 1 0 1 1 1 +1 +0 1 1 0 0 0 1 1 1 1 0 1 1 +0 +0 1 0 1 1 1 1 1 1 0 1 1 0 +1 +0 1 0 1 0 1 1 1 0 1 0 1 1 +0 +1 1 0 1 1 1 1 1 0 1 0 1 0 +1 +1 1 1 0 1 1 0 1 0 1 1 0 0 +0 +1 0 0 0 1 0 0 1 0 0 0 1 0 +0 +0 1 1 0 1 1 1 0 0 1 0 0 0 +0 +1 0 1 1 0 1 0 0 1 0 1 0 0 +0 +1 1 0 0 1 0 1 0 0 0 1 0 0 +1 +0 1 1 1 1 0 1 0 1 0 0 0 0 +0 +1 1 1 0 0 0 0 0 0 1 1 1 0 +0 +0 1 0 1 0 1 0 0 1 1 0 1 1 +1 +0 0 0 1 0 1 1 1 1 0 1 1 1 +0 +0 0 1 1 1 0 1 0 1 1 0 1 0 +1 +0 1 0 0 0 0 1 0 1 1 0 1 1 +0 +0 1 1 0 0 0 1 0 1 0 1 1 1 +1 +1 0 1 1 1 0 1 1 0 1 1 1 0 +1 +0 0 1 1 1 1 0 0 0 1 0 0 1 +0 +1 1 1 1 0 1 1 0 1 0 1 1 0 +1 +1 0 0 0 0 0 1 1 0 1 0 1 0 +1 +1 0 0 0 0 1 0 0 0 0 0 0 0 +0 +1 1 1 0 1 0 1 1 1 1 0 1 1 +0 +0 0 1 1 1 0 0 1 0 1 0 1 0 +0 +1 0 0 0 0 0 1 0 0 1 0 0 1 +0 +0 0 0 1 0 0 1 0 1 0 1 1 0 +1 +0 1 1 0 1 0 1 1 0 1 1 0 0 +1 +1 1 0 1 1 1 1 0 0 0 0 0 1 +1 +1 0 1 1 1 0 1 0 0 1 0 1 1 +0 +1 1 0 0 1 1 1 1 0 0 0 1 1 +0 +0 0 0 1 0 1 1 1 0 0 1 1 1 +1 +1 1 1 0 0 1 1 1 1 1 0 1 1 +0 +1 1 0 1 0 1 1 1 1 1 1 0 0 +1 +1 1 0 0 1 1 0 1 0 0 0 0 1 +0 +0 0 1 1 1 0 1 0 0 0 1 0 0 +1 +1 1 0 0 0 0 1 0 0 1 0 0 0 +0 +0 1 1 1 0 0 0 1 0 1 0 0 1 +0 +1 0 0 1 0 1 1 1 0 0 1 1 0 +1 +1 1 1 1 0 0 0 0 0 1 0 1 0 +0 +0 0 0 1 0 1 1 0 1 1 0 1 0 +0 +1 1 1 0 0 0 0 0 0 1 0 1 1 +0 +0 1 1 0 0 0 0 1 1 1 0 0 1 +0 +1 1 1 1 1 1 0 0 1 0 0 0 0 +1 +0 0 0 1 0 1 0 0 1 0 1 0 0 +0 +0 0 0 1 1 1 0 0 1 1 0 1 1 +1 +0 0 1 0 0 1 0 0 1 0 1 1 1 +0 +0 1 0 1 1 1 1 0 1 0 1 1 0 +0 +0 0 1 0 1 1 1 0 1 1 0 0 1 +1 +0 0 0 0 1 0 1 1 1 0 0 0 0 +0 +0 1 1 1 0 1 0 0 1 1 1 0 1 +0 +0 1 1 0 1 0 0 0 0 0 0 1 0 +0 +1 1 0 0 1 1 0 1 0 0 0 0 0 +1 +1 0 1 0 0 0 1 0 1 0 0 0 1 +1 +1 1 1 0 1 1 1 0 0 0 0 1 0 +1 +1 1 1 1 1 0 1 1 1 0 1 0 1 +0 +0 0 1 0 0 0 0 0 0 0 0 1 1 +1 +0 0 0 0 0 0 0 1 1 0 0 0 1 +1 +1 1 1 1 1 1 1 0 0 1 0 1 0 +1 +1 0 1 0 0 0 0 0 0 1 1 1 1 +0 +0 1 1 0 1 1 0 1 0 0 0 1 0 +0 +1 0 0 1 0 1 0 0 0 1 0 0 1 +1 +0 1 1 0 0 0 1 0 1 1 0 1 0 +0 +1 1 1 0 0 1 0 0 1 0 0 0 1 +0 +1 0 1 0 0 1 1 0 0 1 0 1 1 +1 +0 0 1 0 1 0 0 1 0 0 1 1 0 +1 +1 0 0 1 1 0 1 1 1 0 0 0 0 +0 +0 0 0 1 1 0 0 1 1 0 1 0 1 +0 +0 1 0 1 0 0 1 1 1 0 1 1 1 +0 +1 0 1 0 1 1 1 1 1 1 0 1 0 +1 +1 0 0 1 0 1 0 1 1 1 0 1 0 +1 +1 0 1 1 1 1 1 0 0 0 1 0 1 +0 +0 0 0 1 1 1 0 0 0 1 0 1 0 +1 +0 1 1 0 1 0 0 1 0 1 0 0 0 +1 +1 0 1 0 1 1 1 1 1 0 0 0 0 +1 +0 0 0 0 1 0 1 0 1 1 0 1 0 +1 +0 1 1 0 0 1 1 1 1 0 1 1 1 +1 +1 0 0 0 0 0 1 1 0 1 1 1 1 +1 +0 0 0 1 1 0 1 1 1 0 0 0 1 +0 +0 0 0 0 1 0 1 0 0 1 0 0 1 +0 +1 0 1 0 1 0 1 1 0 1 0 1 0 +1 +1 1 0 1 0 0 1 1 0 0 0 0 1 +0 +0 0 0 0 0 0 1 0 0 1 0 0 0 +0 +0 1 0 1 0 0 1 1 1 0 0 1 0 +0 +1 1 0 1 1 0 1 0 1 0 0 0 1 +1 +0 0 1 0 0 1 1 0 0 0 1 0 0 +0 +1 0 1 1 1 0 0 0 1 1 0 0 0 +0 +1 0 1 1 0 0 0 1 1 0 0 0 1 +0 +0 0 0 1 0 0 0 1 1 0 1 1 0 +1 +0 1 1 0 1 1 0 0 1 1 0 1 0 +1 +0 1 1 1 1 0 0 0 0 0 0 0 0 +0 +1 1 0 0 1 1 1 1 0 0 1 0 0 +1 +0 1 1 0 1 1 1 0 1 1 0 1 1 +1 +1 0 0 0 0 1 1 0 0 1 0 0 1 +1 +0 0 0 0 0 0 1 0 1 0 1 1 1 +1 +1 0 0 1 1 1 0 1 1 1 0 0 1 +0 +1 0 1 1 1 0 0 1 1 1 0 1 0 +0 +0 0 0 1 0 0 1 0 0 1 1 0 1 +1 +0 0 1 1 1 0 0 0 0 1 1 0 1 +0 +1 1 0 0 0 1 0 1 1 0 1 1 0 +1 +1 0 1 0 0 1 0 0 1 0 1 0 0 +1 +0 1 1 0 0 0 1 0 1 1 0 0 0 +1 +1 1 0 0 1 1 0 0 0 0 1 0 1 +0 +1 0 1 1 1 1 0 1 1 1 0 1 0 +1 +0 0 1 0 0 1 1 1 1 1 1 0 0 +1 +1 0 1 0 0 0 0 1 1 0 1 1 0 +0 +1 0 1 0 1 1 0 1 0 1 0 0 0 +0 +1 0 0 1 1 0 0 0 0 1 0 0 0 +0 +0 1 0 1 1 0 1 1 1 1 0 0 0 +1 +1 1 0 1 0 1 1 0 0 0 1 1 0 +1 +0 1 1 1 0 1 0 0 0 0 0 0 1 +1 +0 1 1 1 1 0 0 1 0 0 0 1 0 +0 +1 0 0 0 0 0 1 0 0 0 0 0 1 +1 +0 0 1 1 0 0 0 0 1 1 1 0 0 +1 +1 0 0 1 1 1 1 0 1 1 0 1 1 +1 +1 0 0 0 0 0 1 0 0 1 1 1 1 +0 +0 0 0 1 0 1 1 1 1 1 1 0 0 +1 +1 1 0 1 1 0 1 1 0 1 0 0 1 +0 +0 0 1 1 0 0 1 0 0 1 0 1 0 +1 +0 1 1 1 0 0 0 1 1 0 1 1 1 +0 +0 1 0 0 1 0 1 1 1 1 1 0 1 +0 +1 0 0 0 0 1 1 0 1 0 0 1 1 +0 +1 0 1 1 0 0 0 0 0 0 1 1 0 +1 +0 0 0 0 1 1 0 0 1 1 0 1 1 +0 +1 1 1 0 1 0 1 1 0 1 1 1 0 +1 +1 1 1 1 0 0 1 0 1 0 0 1 1 +0 +1 0 0 0 1 0 1 1 1 1 1 0 1 +0 +0 1 1 1 0 1 0 1 1 0 1 0 0 +1 +1 0 1 1 0 1 0 1 1 0 1 0 1 +0 +1 1 0 1 1 1 0 0 0 0 0 1 1 +1 +0 1 0 0 0 1 1 1 1 0 0 0 0 +1 +1 1 1 0 0 1 0 1 1 0 1 1 1 +1 +1 1 0 0 0 0 0 1 0 1 1 1 0 +0 +1 1 0 1 0 1 0 1 1 1 1 1 1 +0 +1 0 0 0 0 0 1 1 1 0 1 0 0 +1 +1 0 0 0 1 1 1 0 0 1 1 1 0 +1 +1 0 0 0 1 0 1 0 0 0 0 1 0 +0 +0 1 1 0 1 0 1 1 0 0 0 0 1 +0 +0 1 1 1 0 0 1 0 1 0 0 0 1 +0 +1 0 1 0 0 1 0 0 1 0 1 1 1 +1 +1 0 1 1 1 0 1 0 1 0 0 1 1 +0 +1 1 0 0 1 1 0 1 1 0 0 1 1 +0 +1 1 1 1 0 1 0 0 1 0 1 0 0 +1 +0 1 0 1 0 0 0 0 1 1 0 0 1 +1 +1 0 1 0 1 1 1 1 0 0 1 0 1 +0 +1 1 0 1 1 1 1 0 1 0 0 0 1 +0 +0 1 0 1 0 1 0 0 0 1 1 0 0 +1 +1 0 0 1 1 0 0 1 0 1 1 0 1 +1 +1 1 0 1 0 0 0 0 1 0 0 1 1 +0 +1 0 0 0 0 0 0 0 0 0 1 0 1 +1 +1 1 0 1 0 0 0 1 0 0 1 1 0 +0 +0 1 0 0 1 1 1 0 1 0 0 0 1 +0 +0 1 1 1 1 0 1 0 0 1 0 1 0 +1 +1 1 0 0 0 1 1 1 0 0 0 0 1 +0 +1 0 1 1 1 0 0 1 1 1 1 1 1 +0 +1 1 1 1 0 0 1 0 0 0 0 0 0 +1 +1 1 0 1 0 1 0 1 0 0 1 1 1 +0 +1 1 0 0 0 0 0 1 0 0 0 0 1 +0 +1 0 0 0 0 0 0 1 0 0 1 1 1 +1 +1 0 0 1 1 0 1 0 0 1 0 0 1 +0 +1 0 0 1 1 1 0 0 1 0 1 0 0 +0 +1 0 0 1 1 0 1 0 1 1 0 1 1 +0 +1 0 1 1 1 1 0 1 0 0 0 0 1 +1 +0 1 0 0 0 0 1 1 0 1 1 0 0 +1 +0 0 1 1 1 0 0 0 0 1 1 1 1 +1 +0 1 0 1 0 1 1 1 1 1 0 1 0 +0 +0 1 0 0 0 0 1 1 1 1 1 1 0 +1 +1 1 1 0 0 1 0 0 1 1 1 1 1 +1 +0 1 0 0 1 1 1 0 0 0 1 0 0 +1 +0 1 0 1 0 0 1 1 1 1 0 0 0 +0 +1 0 1 0 0 1 0 1 1 0 0 0 0 +1 +0 1 1 1 0 1 0 0 0 1 0 0 1 +0 +0 1 1 0 1 0 0 0 0 0 0 0 0 +1 +1 0 0 1 0 1 0 0 1 0 0 0 1 +1 +0 0 1 1 1 1 0 1 1 0 0 0 0 +0 +0 1 0 1 1 0 1 1 0 1 0 0 0 +0 +1 1 0 0 1 1 0 0 1 0 0 1 1 +1 +0 1 1 0 1 0 0 0 1 0 0 0 0 +0 +0 1 0 1 1 1 0 1 0 0 0 0 1 +0 +0 1 1 1 1 1 0 0 1 1 1 0 1 +1 +0 0 0 1 0 0 0 1 0 0 1 1 0 +0 +0 1 0 0 0 0 0 1 0 0 1 0 1 +0 +0 1 1 1 0 0 1 0 1 0 0 1 0 +0 +1 0 1 0 0 1 0 1 1 1 1 1 0 +0 +1 1 1 0 1 1 0 0 0 1 0 1 1 +0 +0 0 0 1 0 1 1 1 1 1 0 0 0 +0 +1 1 0 1 0 0 1 1 1 0 0 1 1 +0 +1 1 1 0 0 0 1 1 0 0 0 1 0 +0 +1 1 1 1 1 0 1 0 0 0 1 0 0 +1 +1 1 0 1 0 1 0 0 1 0 1 0 0 +0 +0 1 0 1 1 0 0 0 0 1 0 1 0 +1 +0 0 1 1 0 0 0 1 0 0 0 0 1 +0 +1 0 1 1 1 1 0 1 0 1 0 0 1 +0 +0 1 1 0 0 0 0 1 1 1 1 1 1 +0 +1 0 1 1 1 1 1 0 1 0 0 0 0 +1 +1 0 0 0 0 0 1 1 1 0 0 1 1 +0 +1 0 0 0 0 0 1 1 1 0 0 0 0 +0 +1 1 1 1 1 1 1 1 1 1 0 0 0 +0 +1 0 1 1 0 1 0 1 0 1 0 1 1 +0 +1 0 1 0 0 0 0 1 0 1 0 0 1 +1 +1 1 1 0 1 0 0 1 1 0 1 1 1 +1 +0 1 1 1 0 1 0 1 0 1 0 1 1 +0 +1 0 1 1 1 1 1 0 0 0 1 0 0 +1 +1 1 0 1 0 0 1 0 1 0 0 1 0 +0 +1 1 0 0 0 0 0 1 0 1 0 0 1 +1 +1 1 1 1 1 0 1 0 1 0 1 1 1 +0 +0 0 1 1 1 0 1 1 1 0 0 1 0 +1 +1 1 1 0 0 1 0 0 1 0 1 0 1 +1 +1 1 0 0 0 1 0 0 1 0 1 0 0 +1 +0 1 0 1 0 1 0 1 1 0 1 0 1 +1 +0 0 0 0 0 0 1 1 1 1 1 1 1 +1 +0 0 1 0 0 0 1 0 0 0 1 0 0 +1 +1 0 1 1 0 0 0 1 0 0 1 1 0 +0 +1 0 1 1 1 1 0 0 0 1 0 0 0 +0 +0 1 0 1 1 1 1 1 0 0 1 0 1 +0 +1 1 0 1 0 0 1 0 0 1 0 0 0 +1 +0 0 1 1 1 0 0 0 0 0 0 1 0 +0 +0 1 0 1 1 0 0 0 1 1 0 0 0 +1 +0 0 1 0 0 0 1 0 1 0 0 0 1 +0 +1 0 1 1 1 1 0 1 0 0 0 1 0 +1 +1 1 1 0 1 0 0 0 0 1 0 0 1 +0 +1 0 0 0 0 0 1 0 1 1 0 1 1 +0 +0 1 0 1 0 1 1 0 0 0 0 0 0 +0 +1 0 1 1 1 1 0 0 1 1 0 0 0 +1 +0 1 0 1 1 1 1 0 0 0 1 0 1 +1 +0 1 1 0 0 1 0 1 1 0 0 0 1 +0 +0 1 0 1 1 1 1 1 0 0 1 0 0 +1 +0 0 1 0 0 0 1 0 0 1 0 1 1 +1 +1 0 0 0 1 0 0 1 1 0 1 0 0 +1 +1 1 1 1 0 0 1 1 1 0 0 1 1 +1 +1 0 0 1 0 1 0 1 0 1 0 0 0 +1 +1 1 1 1 1 1 1 1 0 1 0 0 1 +0 +1 0 0 1 1 1 1 0 1 1 0 0 1 +0 +1 1 0 1 1 0 0 1 0 1 1 0 0 +1 +0 1 0 1 0 0 1 0 1 1 1 1 1 +0 +1 1 1 1 0 1 0 0 1 1 0 1 1 +1 +0 0 0 1 1 1 0 1 0 1 0 1 0 +0 +0 1 1 1 1 1 0 0 0 1 0 1 1 +0 +1 0 0 0 0 0 1 0 0 1 1 1 0 +1 +1 0 1 1 1 0 0 1 1 1 0 1 1 +1 +1 0 1 0 0 1 1 0 0 1 1 1 1 +0 +1 0 0 0 0 1 1 1 0 1 1 0 1 +1 +1 0 1 0 1 0 0 1 0 1 0 0 0 +1 +1 1 1 1 0 0 0 1 0 1 1 1 1 +1 +1 0 0 1 1 0 1 0 1 0 0 0 1 +0 +1 0 1 1 1 0 0 0 0 1 0 0 0 +1 +0 1 0 0 0 0 0 1 0 1 0 0 1 +0 +0 0 1 0 0 1 0 0 0 1 0 1 0 +0 +1 1 1 0 1 0 1 0 0 0 1 0 0 +0 +0 1 1 1 0 1 0 1 1 1 0 0 1 +0 +0 1 1 0 1 0 0 1 1 1 1 1 1 +1 +1 0 1 0 1 1 0 1 1 1 0 0 1 +0 +1 1 0 0 1 0 0 0 0 0 0 0 1 +0 +1 0 1 0 0 1 1 1 1 0 1 1 1 +1 +1 1 1 1 0 0 0 0 1 0 0 0 0 +1 +1 0 1 0 0 0 1 0 1 0 0 0 0 +0 +0 0 1 1 1 1 0 1 1 0 0 1 0 +1 +1 1 0 0 1 0 0 1 0 0 1 1 1 +1 +0 0 0 1 0 0 0 0 0 1 0 1 1 +0 +0 1 1 1 0 1 1 1 1 1 0 1 0 +1 +0 0 0 1 0 1 0 0 1 1 1 1 0 +0 +0 0 1 0 1 1 0 1 0 0 1 0 0 +1 +1 0 0 1 1 1 0 0 0 0 0 1 1 +0 +1 0 1 0 0 1 1 0 1 0 0 1 0 +0 +0 1 1 0 1 1 0 0 0 1 0 0 1 +0 +1 1 0 0 0 0 0 1 1 1 1 0 1 +1 +1 1 1 0 0 0 0 1 1 1 0 1 0 +1 +1 0 1 1 1 0 1 0 1 0 0 0 1 +1 +0 1 1 1 1 0 1 0 1 1 0 0 1 +0 +1 1 1 0 0 0 0 1 1 1 1 0 1 +0 +0 0 0 1 0 1 0 0 1 0 1 0 1 +1 +1 0 1 0 1 0 0 1 0 0 0 1 1 +0 +1 1 1 1 0 0 1 0 1 0 1 0 1 +0 +0 0 1 0 0 0 0 0 0 0 1 0 1 +1 +0 0 1 0 0 1 0 0 1 1 1 0 1 +0 +0 0 0 0 0 1 1 0 0 1 0 1 0 +0 +1 0 1 1 0 0 0 1 1 1 0 1 1 +0 +0 1 0 1 1 1 0 0 1 1 1 0 0 +1 +1 1 1 1 1 0 0 0 1 0 1 0 0 +1 +0 1 1 0 1 1 1 1 0 0 0 0 0 +0 +1 1 1 1 1 0 0 0 1 0 0 1 1 +0 +1 0 1 0 1 0 0 1 0 0 1 1 0 +0 +0 1 1 1 0 0 1 1 1 0 1 0 0 +1 +0 1 1 1 0 1 0 0 1 0 1 1 0 +1 +1 1 0 1 1 0 1 0 1 1 0 0 0 +1 +1 0 1 1 1 1 1 0 1 0 0 1 1 +1 +1 1 1 1 0 1 0 0 0 0 0 1 1 +1 +0 0 0 1 0 0 1 0 1 1 0 1 1 +0 +1 1 0 1 1 0 1 1 1 1 1 0 1 +0 +1 1 1 0 0 1 0 1 1 1 0 1 0 +0 +0 1 1 0 1 0 0 1 1 0 1 1 1 +0 +1 0 1 1 0 1 1 1 0 1 0 1 1 +1 +1 1 0 0 1 1 0 1 0 1 1 0 1 +0 +0 1 0 0 0 1 1 1 1 0 0 0 1 +0 +0 1 1 1 1 0 1 0 0 1 0 0 0 +0 +0 0 1 1 0 1 0 0 0 0 0 1 0 +0 +0 0 0 1 0 1 0 1 0 0 0 0 0 +1 +0 1 0 0 1 1 0 1 0 0 1 0 0 +1 +1 0 1 1 0 1 0 1 0 0 0 1 0 +0 +0 1 0 1 1 1 1 1 0 0 0 0 0 +0 +1 0 0 0 1 0 0 1 1 0 1 1 1 +1 +0 1 0 1 0 0 0 0 0 0 0 1 0 +1 +0 0 1 0 1 1 1 0 1 0 1 1 0 +1 +0 0 0 1 1 0 0 0 0 1 1 1 1 +0 +0 0 1 0 0 1 0 1 1 1 1 0 1 +1 +1 1 1 0 1 0 1 0 1 0 1 1 1 +1 +1 0 1 0 0 0 0 0 0 0 1 1 0 +0 +1 0 1 1 1 0 0 0 0 0 0 0 1 +1 +0 1 0 0 1 1 0 0 1 0 1 1 1 +1 +1 1 1 0 0 0 1 0 0 0 0 1 1 +0 +0 0 0 0 0 1 1 0 1 0 0 0 0 +1 +1 0 0 1 1 0 1 0 0 1 1 1 0 +1 +1 1 0 1 1 1 1 1 1 0 0 1 1 +0 +0 1 0 0 0 1 1 1 0 1 1 1 1 +0 +1 0 0 1 0 1 0 1 0 0 1 0 0 +1 +0 0 1 0 1 0 1 1 1 0 0 1 0 +0 +0 0 0 1 1 0 0 0 0 0 1 1 0 +0 +1 1 0 1 0 0 1 0 0 0 1 1 0 +0 +0 0 0 1 1 1 0 1 0 1 1 0 0 +0 +1 0 0 0 0 1 0 0 1 1 1 0 1 +0 +1 1 1 1 0 0 1 1 1 1 1 1 0 +0 +1 1 1 1 0 1 1 0 0 0 0 1 0 +1 +0 1 0 1 1 0 1 0 1 0 1 1 0 +1 +0 0 1 0 1 1 0 1 0 1 0 1 0 +0 +0 1 1 0 1 0 1 1 1 0 1 0 1 +0 +1 0 0 1 0 1 0 1 0 1 0 0 1 +0 +1 0 0 0 0 0 1 1 1 0 0 1 0 +1 +0 1 0 0 0 0 0 1 0 0 0 1 1 +0 +0 0 0 0 1 0 0 1 0 1 0 1 0 +0 +0 0 1 1 1 1 1 0 1 0 0 0 0 +0 +1 1 0 1 1 0 0 1 0 0 1 0 0 +0 +1 1 1 0 1 0 0 0 0 0 0 1 1 +0 +1 0 0 1 0 1 1 1 0 0 1 0 1 +1 +0 1 0 1 0 0 1 0 0 0 1 0 0 +0 +0 1 1 0 0 0 1 0 0 1 0 0 0 +0 +1 0 1 1 0 1 1 1 0 0 1 0 1 +0 +0 0 0 0 1 0 1 1 0 0 0 0 0 +1 +0 0 0 0 0 1 1 0 0 1 1 1 0 +1 +1 1 0 0 1 1 1 1 1 1 1 0 0 +1 +0 0 1 1 0 1 1 0 0 1 0 0 1 +0 +1 0 1 0 0 1 0 0 0 1 0 0 0 +0 +0 1 0 0 1 0 0 1 0 0 0 1 0 +0 +0 1 0 1 0 0 1 1 1 0 0 1 1 +1 +0 1 0 0 1 0 1 1 0 1 0 1 1 +1 +0 1 1 1 1 0 1 1 1 0 0 1 0 +0 +0 1 0 1 0 0 1 0 0 0 0 1 0 +0 +0 0 1 1 0 0 1 1 0 1 1 0 1 +1 +0 1 0 1 0 1 1 0 0 1 0 1 1 +1 +1 1 1 1 1 0 1 1 1 1 0 0 1 +0 +1 0 0 1 1 0 1 1 0 1 1 1 1 +1 +1 0 0 1 1 0 0 1 0 0 1 0 1 +0 +0 0 1 1 0 0 0 1 0 1 0 1 0 +1 +0 0 0 1 1 0 1 1 0 1 1 0 0 +0 +0 1 0 1 0 1 1 0 0 0 0 1 0 +1 +0 0 1 1 1 1 1 1 0 0 1 1 0 +0 +1 1 0 0 1 0 1 1 1 0 1 0 1 +0 +1 1 1 0 0 1 0 0 1 0 1 1 0 +1 +1 1 1 0 1 1 1 1 1 1 0 0 1 +0 +0 0 1 1 1 1 0 0 0 0 0 0 0 +0 +0 0 0 0 0 1 1 1 0 0 0 0 0 +1 +0 0 1 0 0 0 0 0 0 1 1 0 1 +0 +1 1 0 0 1 1 1 0 1 0 0 0 0 +0 +0 0 0 0 1 0 0 0 1 0 1 1 0 +0 +0 1 1 1 1 1 0 1 0 0 0 1 1 +0 +1 0 0 0 1 0 0 0 0 0 1 0 0 +1 +0 1 1 0 1 1 0 1 0 0 1 1 1 +0 +0 1 1 1 1 0 1 0 0 1 1 0 1 +0 +0 0 0 0 1 1 0 0 1 0 1 1 1 +0 +1 0 1 0 1 1 1 0 1 1 1 0 1 +1 +1 0 0 0 0 1 1 0 0 0 1 0 0 +0 +1 1 1 0 0 0 1 0 1 1 1 1 0 +0 +0 0 1 0 0 0 1 1 0 1 0 0 1 +1 +1 1 1 0 0 0 1 0 1 0 1 1 0 +1 +1 1 0 0 0 1 1 0 0 0 0 0 0 +0 +0 1 0 0 1 1 1 0 0 0 1 1 1 +1 +0 0 1 1 0 1 1 0 1 0 0 0 1 +0 +1 0 1 1 0 0 0 1 1 0 1 0 0 +0 +0 0 1 1 1 1 1 1 0 0 0 0 0 +0 +1 0 0 0 1 0 0 1 0 1 0 1 1 +0 +1 0 0 0 1 1 1 1 1 0 1 1 0 +0 +1 0 1 1 1 0 0 1 1 1 1 1 0 +1 +0 1 1 1 1 1 0 0 0 0 0 1 0 +0 +0 0 0 0 1 1 1 0 1 1 0 0 1 +0 +1 1 0 0 0 1 0 1 0 0 1 0 1 +0 +0 0 1 1 0 1 1 0 1 1 1 0 0 +1 +1 1 0 1 1 1 0 1 0 0 0 0 0 +0 +1 0 1 0 0 1 0 0 1 0 1 1 0 +0 +0 0 0 0 1 0 1 0 0 1 1 0 0 +0 +0 0 1 0 0 0 1 0 0 1 1 1 0 +1 +0 1 0 0 0 0 0 1 0 0 0 0 1 +1 +1 1 1 1 0 1 0 1 0 1 1 1 1 +0 +0 1 0 0 1 1 0 1 1 1 1 0 0 +1 +1 0 1 1 0 1 1 0 0 1 0 1 0 +1 +0 1 0 0 1 1 0 0 1 1 1 0 0 +0 +1 1 1 1 0 1 0 1 1 1 0 0 1 +1 +0 0 1 1 1 0 1 0 1 1 0 1 1 +0 +0 1 0 1 0 0 1 0 1 0 1 1 1 +1 +0 1 0 0 1 0 0 1 0 1 0 0 0 +0 +1 1 1 1 0 1 0 0 1 0 1 1 1 +1 +1 1 0 1 1 1 1 0 1 1 1 0 1 +0 +1 1 0 1 1 1 1 1 1 1 1 0 1 +1 +1 1 1 1 1 1 0 1 1 1 0 0 0 +1 +1 0 1 1 0 0 0 0 0 0 0 1 0 +0 +1 1 0 1 1 1 0 0 0 1 0 1 1 +0 +1 1 0 1 0 1 1 0 0 0 0 1 0 +0 +0 1 0 1 1 0 0 1 0 0 0 1 1 +0 +0 0 1 1 0 1 0 1 1 0 1 0 1 +1 +0 1 0 0 1 1 1 0 1 1 1 1 0 +0 +1 0 1 0 1 1 0 0 1 0 1 1 1 +0 +1 0 0 1 1 0 1 1 0 1 0 0 1 +1 +1 1 0 0 1 1 1 1 1 1 0 0 1 +1 +1 1 0 0 0 0 0 1 0 1 1 0 0 +1 +0 0 0 0 0 0 1 0 0 0 0 0 0 +1 +0 1 0 1 1 1 0 1 0 1 0 1 1 +0 +0 0 1 0 0 1 1 0 0 0 1 0 1 +1 +1 0 0 0 1 1 1 1 0 0 1 0 0 +0 +1 1 1 1 0 0 1 1 1 0 1 0 1 +1 +0 0 1 1 1 0 0 0 1 1 0 0 1 +0 +0 0 0 0 0 0 1 1 0 1 0 1 1 +1 +1 0 1 0 0 1 1 1 0 0 0 1 1 +1 +1 1 1 1 0 1 0 1 0 1 0 1 1 +1 +1 0 0 1 1 0 1 0 1 1 0 1 0 +1 +1 0 1 0 1 1 1 0 1 1 1 0 0 +0 +0 0 1 0 1 1 0 0 1 0 0 1 0 +1 +1 0 0 1 0 0 1 1 0 0 0 0 0 +0 +1 0 0 1 0 1 1 1 1 1 0 0 0 +1 +0 0 1 1 1 1 1 1 0 0 0 1 0 +1 +0 0 1 1 1 1 1 0 1 1 0 1 0 +0 +1 0 1 0 0 0 0 1 0 1 0 1 0 +1 +1 0 1 0 1 0 1 0 0 1 0 1 1 +1 +1 0 0 0 1 1 0 1 1 0 0 0 1 +0 +0 1 0 1 0 1 1 0 1 1 0 0 1 +1 +0 0 0 0 0 1 1 1 1 1 0 0 0 +1 +0 1 0 1 1 1 0 1 1 0 0 0 1 +1 +1 0 1 1 1 0 1 0 0 1 0 0 1 +1 +0 1 0 0 1 0 1 0 1 0 1 0 1 +0 +1 0 1 1 0 1 1 1 0 0 1 1 0 +0 +0 1 1 1 0 1 1 0 0 0 0 0 0 +1 +1 0 0 0 1 0 1 1 0 1 0 0 0 +1 +1 1 0 1 1 1 0 1 1 1 0 1 1 +0 +1 1 0 1 0 0 1 1 0 1 1 0 1 +0 +1 0 1 1 0 1 1 0 1 1 0 1 1 +1 +0 0 0 1 1 1 0 0 0 1 0 1 1 +0 +1 0 1 0 0 1 0 1 0 0 0 1 1 +0 +1 0 1 1 0 0 1 1 0 1 0 0 1 +1 +0 0 1 1 1 0 0 1 0 1 0 1 1 +1 +0 1 0 0 1 0 1 0 1 1 1 1 0 +1 +0 0 0 1 0 1 0 0 0 1 1 1 1 +0 +1 0 0 0 1 0 0 1 0 0 1 0 1 +1 +0 0 0 1 1 0 1 1 0 1 1 1 1 +0 +1 1 1 1 1 1 1 1 1 1 0 1 0 +1 +1 0 1 0 0 0 1 0 1 1 0 0 1 +0 +1 1 0 1 0 1 0 0 0 1 0 1 1 +1 +1 1 0 0 0 0 1 0 1 1 1 0 1 +1 +1 0 0 1 1 1 1 0 1 0 1 1 1 +1 +0 1 0 1 1 1 1 0 1 1 0 1 1 +1 +0 0 0 1 1 0 1 1 0 0 0 1 1 +0 +1 1 0 0 1 0 0 0 0 1 0 0 0 +0 +1 0 0 1 0 0 1 1 1 1 0 1 0 +1 +0 1 1 1 1 0 0 1 0 1 0 1 1 +0 +0 0 1 0 1 0 0 0 0 0 1 1 1 +1 +1 0 0 1 0 1 1 0 1 0 1 1 1 +0 +0 1 1 1 1 0 1 1 0 0 0 1 0 +1 +0 0 0 0 0 0 1 1 0 1 1 1 0 +1 +0 0 1 1 0 0 1 1 1 1 0 1 0 +1 +1 0 0 0 0 0 1 1 1 1 0 0 0 +1 +0 0 0 1 0 0 1 1 1 0 0 1 0 +1 +1 0 1 0 1 1 1 1 0 0 0 1 1 +0 +1 0 0 1 1 1 0 1 0 1 0 0 1 +1 +1 1 0 0 0 1 0 1 0 1 0 0 0 +1 +0 0 0 0 1 1 0 1 0 0 1 0 1 +1 +1 0 1 1 1 1 1 1 1 1 0 0 0 +1 +1 1 1 0 0 0 0 0 0 0 1 0 0 +0 +0 0 0 1 1 1 1 0 0 0 0 1 0 +1 +1 1 0 1 1 1 1 1 0 0 1 1 1 +0 +1 0 0 0 0 1 1 0 1 1 1 0 1 +1 +1 1 1 0 1 1 0 0 1 1 1 0 1 +1 +1 1 0 1 1 1 1 1 1 0 1 1 0 +0 +0 1 1 1 1 0 1 1 0 1 1 0 1 +1 +1 1 1 1 1 0 1 0 0 1 1 1 0 +1 +1 1 1 0 0 1 0 0 0 1 0 0 1 +0 +0 1 1 1 1 0 1 1 0 1 1 1 1 +0 +1 0 1 1 1 0 0 1 0 1 0 1 0 +1 +1 0 1 1 1 1 1 1 0 0 0 1 1 +1 +1 1 1 0 1 0 0 0 0 0 1 1 1 +1 +0 0 0 1 1 0 0 1 1 0 0 0 1 +1 +0 1 0 0 1 1 1 0 1 1 0 0 1 +1 +1 1 1 1 1 1 0 0 1 1 1 1 1 +1 +0 1 1 1 0 0 1 1 0 1 1 0 1 +0 +1 1 0 1 1 0 1 1 0 0 0 1 0 +1 +0 1 0 0 1 1 1 1 0 0 1 0 1 +1 +1 1 1 0 0 0 0 0 0 0 1 1 0 +1 +0 0 1 1 1 0 1 0 1 1 0 0 1 +1 +1 0 1 0 0 1 0 1 0 1 0 1 0 +0 +0 0 0 0 0 0 1 1 0 0 1 0 0 +1 +0 0 1 0 1 1 0 0 1 1 1 0 1 +1 +1 0 0 0 0 0 1 0 1 1 1 1 1 +1 +0 1 0 1 0 1 1 0 0 0 0 1 1 +0 +1 1 0 0 1 0 0 0 0 0 1 0 1 +1 +0 0 0 1 0 1 0 1 0 1 0 0 0 +0 +1 1 0 0 1 0 0 1 1 0 0 1 0 +0 +0 0 1 1 0 0 0 0 0 1 0 1 1 +1 +1 1 1 0 0 0 0 0 1 0 1 1 0 +0 +0 1 0 1 0 0 1 0 1 1 1 0 1 +1 +0 1 0 0 1 0 1 1 0 1 1 0 0 +0 +1 1 0 1 0 1 1 1 1 1 1 1 1 +1 +0 0 1 1 1 1 0 1 1 1 0 1 1 +1 +1 0 1 0 0 1 0 0 0 1 0 1 0 +1 +1 1 0 1 1 0 0 1 1 1 0 0 1 +0 +0 1 1 1 0 0 1 0 1 0 0 0 0 +1 +1 0 0 0 0 1 0 0 0 0 0 1 1 +0 +0 0 0 1 1 0 1 0 0 0 1 1 1 +0 +1 1 1 0 1 1 0 1 0 0 1 1 1 +1 +0 0 1 1 0 1 0 0 0 0 1 1 1 +0 +1 1 1 1 0 1 1 1 0 0 0 1 1 +1 +1 0 1 0 0 0 0 0 0 0 0 0 1 +1 +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 1 0 +0 +1 0 0 1 1 0 1 0 1 1 1 1 1 +1 +0 1 1 1 1 0 1 1 1 1 1 0 0 +1 +0 1 1 0 1 1 1 1 0 1 1 0 1 +1 +0 1 0 1 1 1 0 0 0 0 0 1 1 +0 +0 0 0 0 1 1 0 0 1 0 0 1 0 +0 +1 1 1 1 1 0 1 0 0 0 1 0 1 +0 +0 0 0 1 1 0 1 0 0 1 1 0 1 +0 +0 0 1 1 1 1 0 0 0 0 1 1 1 +1 +1 1 1 1 0 1 1 0 0 0 1 1 0 +0 +1 0 0 1 1 0 1 1 0 0 1 0 0 +0 +0 0 0 1 0 0 1 1 1 1 1 1 1 +0 +0 0 1 0 0 0 1 1 0 0 0 1 1 +1 +1 0 0 1 0 0 0 1 1 0 1 1 1 +1 +0 1 0 1 1 0 0 1 0 1 1 0 0 +0 +1 0 1 1 1 1 1 1 0 1 1 0 1 +0 +0 1 1 1 0 1 1 1 1 0 1 0 0 +0 +0 1 1 0 0 0 0 1 1 0 0 1 1 +0 +1 1 1 0 0 0 1 0 0 1 0 1 0 +0 +0 1 1 0 0 1 0 1 1 0 0 1 1 +1 +1 1 0 0 0 0 0 0 1 1 0 1 1 +0 +0 1 1 0 1 0 1 1 0 0 1 0 0 +0 +0 1 0 0 1 0 1 0 1 0 1 0 0 +1 +1 0 1 1 0 0 0 0 1 1 1 1 0 +1 +0 0 0 1 0 0 0 1 1 1 1 1 1 +1 +0 1 0 1 1 0 1 0 0 1 0 0 0 +1 +1 0 0 1 1 1 0 1 0 0 0 1 0 +0 +0 1 0 0 0 1 1 1 1 1 0 0 1 +1 +0 0 1 1 0 0 0 0 1 0 1 1 0 +1 +1 0 1 0 0 0 0 0 1 0 1 1 0 +1 +1 0 0 1 0 0 1 0 0 0 0 1 1 +1 +1 0 1 0 1 1 1 0 0 1 1 1 0 +0 +1 1 0 0 1 1 0 0 1 0 0 1 0 +0 +0 0 0 1 1 0 1 0 0 0 1 0 1 +1 +1 1 1 1 1 1 0 1 1 1 0 0 1 +0 +1 1 1 0 1 1 1 0 0 0 1 0 1 +0 +0 1 1 0 1 1 1 0 0 0 0 1 1 +1 +0 1 0 0 0 0 1 1 1 0 0 1 1 +0 +1 0 1 1 1 0 0 1 1 0 0 1 1 +0 +1 1 1 0 1 0 0 0 1 0 0 1 0 +0 +0 0 0 1 1 1 1 1 0 1 0 0 1 +1 +1 1 0 0 1 0 0 0 1 1 1 0 0 +0 +0 1 1 1 0 0 0 1 0 0 0 1 1 +0 +0 0 1 1 0 1 0 1 1 0 1 0 0 +0 +1 0 0 0 1 0 1 0 0 1 1 0 1 +0 +1 0 1 0 0 1 0 1 1 1 0 0 0 +0 +0 0 1 0 0 1 0 0 0 1 0 0 1 +0 +0 1 0 0 1 0 0 0 0 1 1 1 0 +1 +0 1 1 0 1 1 0 0 1 0 0 0 1 +0 +1 1 0 0 0 1 0 0 1 0 1 0 1 +0 +0 0 0 0 1 1 1 1 0 0 1 0 0 +1 +0 1 1 0 1 0 1 0 1 0 0 1 0 +0 +0 0 0 0 1 1 0 1 1 1 0 1 1 +1 +0 1 1 0 0 0 1 1 1 0 0 1 1 +1 +0 0 1 0 1 0 0 0 0 1 1 1 1 +0 +1 0 1 0 0 0 1 1 1 1 0 0 1 +1 +1 0 0 0 0 0 0 0 1 1 0 0 1 +0 +1 1 1 1 0 0 1 0 1 1 1 1 1 +0 +1 0 1 1 1 1 1 0 1 0 1 1 0 +1 +1 0 1 0 0 1 1 0 0 0 1 0 1 +0 +1 0 1 1 0 0 1 0 1 1 0 0 0 +0 +0 0 1 0 1 0 1 0 1 1 0 0 0 +1 +0 0 0 1 0 0 1 0 1 0 1 0 0 +0 +1 1 0 1 1 1 1 0 1 0 0 0 0 +1 +1 1 1 1 0 1 1 1 0 1 0 0 1 +1 +0 0 0 0 0 0 0 1 1 0 0 1 1 +0 +0 1 0 1 1 1 0 1 1 0 1 1 0 +0 +1 1 0 0 0 0 0 1 0 0 0 1 1 +1 +0 1 0 0 0 0 1 1 1 1 1 0 1 +1 +0 0 1 0 1 1 1 1 1 1 0 0 1 +0 +1 0 0 0 1 1 0 0 0 1 0 1 0 +1 +1 1 0 1 1 0 1 0 0 0 0 1 1 +1 +0 1 0 0 1 0 0 0 0 0 1 0 1 +0 +1 0 0 1 0 0 0 0 0 0 1 1 1 +1 +0 0 0 0 0 0 0 0 1 0 1 0 0 +0 +0 1 0 0 0 0 1 1 1 0 1 0 0 +1 +0 0 1 1 0 0 1 0 0 1 1 1 1 +1 +1 0 0 0 0 1 1 1 1 1 0 1 0 +1 +1 1 1 1 0 1 1 0 0 0 1 0 0 +1 +1 1 0 1 1 1 1 0 0 0 1 1 1 +1 +0 0 0 0 1 0 0 1 1 0 1 1 1 +0 +0 0 1 0 1 0 0 1 0 1 1 0 1 +0 +1 0 0 1 1 0 1 0 1 0 0 1 0 +0 +0 0 1 1 0 0 0 0 0 1 0 0 0 +1 +0 0 1 1 0 0 0 1 1 0 1 1 0 +0 +1 1 1 1 0 0 1 0 0 0 1 0 0 +0 +1 1 1 0 0 1 1 1 0 1 0 0 1 +0 +0 1 1 0 1 1 1 0 0 0 1 1 0 +1 +0 0 1 0 0 1 0 1 0 0 0 0 1 +0 +1 1 0 1 1 1 1 1 1 1 1 1 0 +1 +0 0 0 1 1 1 1 0 1 1 0 1 0 +1 +0 0 1 1 1 1 0 1 0 0 0 0 0 +1 +0 1 0 1 0 1 0 1 0 1 0 1 0 +0 +1 1 1 1 0 0 1 0 0 1 0 1 0 +1 +1 1 1 1 1 1 0 0 0 1 1 1 0 +1 +1 0 1 0 0 0 0 1 0 1 0 1 1 +0 +0 1 0 0 1 0 1 1 0 0 0 1 0 +1 +1 1 0 1 0 0 0 1 0 1 1 0 1 +1 +1 0 0 0 1 0 1 0 0 1 0 1 1 +0 +0 1 0 0 0 0 0 0 0 0 0 1 0 +0 +1 0 1 0 1 0 1 0 0 0 0 0 0 +0 +1 1 1 0 1 0 1 0 0 0 0 1 1 +1 +1 1 0 0 1 0 1 0 0 0 0 1 0 +1 +0 1 1 0 0 1 0 1 0 0 0 1 1 +0 +0 0 0 0 0 1 1 0 0 0 1 0 1 +0 +0 0 0 0 0 0 1 0 1 1 1 1 0 +1 +1 1 0 0 1 0 1 0 0 1 1 0 1 +1 +0 0 1 1 0 1 0 1 0 1 0 0 1 +0 +1 1 1 1 1 0 1 1 1 1 1 1 1 +0 +0 0 0 1 1 0 0 0 0 0 0 0 0 +0 +0 1 1 1 1 1 0 0 0 1 1 1 1 +1 +1 0 0 0 1 1 1 0 0 1 1 1 1 +0 +0 0 0 0 0 0 1 0 1 1 1 1 1 +0 +0 0 0 0 0 1 0 1 1 0 0 1 1 +1 +0 0 1 0 0 1 0 0 0 1 1 1 0 +1 +0 0 1 0 0 1 0 1 1 1 1 1 1 +0 +0 1 1 0 1 0 1 0 1 1 0 1 0 +1 +0 1 0 1 0 1 0 0 0 0 1 0 1 +1 +0 0 1 0 0 1 0 0 0 1 1 0 1 +1 +1 1 1 0 1 0 0 1 1 1 1 1 1 +0 +1 1 1 1 0 0 1 0 1 1 1 1 0 +1 +0 1 0 0 0 1 0 0 1 0 1 0 0 +0 +1 1 1 1 1 0 0 0 0 0 1 0 1 +1 +0 1 0 1 0 0 1 1 0 1 0 1 1 +1 +0 1 0 1 1 1 0 1 0 0 1 0 1 +1 +1 1 1 0 0 1 0 1 1 0 0 0 0 +0 +0 0 1 1 0 0 0 0 0 1 1 1 1 +0 +1 0 1 1 0 1 1 1 0 0 0 1 0 +1 +1 0 0 0 1 1 0 1 0 1 0 1 1 +1 +1 0 1 1 1 0 1 0 0 0 0 1 1 +1 +0 0 1 1 0 1 1 0 0 1 0 1 0 +0 +1 1 1 0 1 0 0 1 0 1 0 0 1 +1 +1 0 0 1 1 1 0 1 1 1 1 0 1 +1 +1 0 1 0 1 0 1 0 0 0 0 1 0 +1 +1 1 1 0 0 0 0 0 0 0 1 1 1 +0 +1 1 1 1 1 0 0 1 1 0 0 0 1 +0 +0 0 1 0 1 1 0 1 1 1 1 1 1 +1 +1 1 1 0 1 1 0 1 1 0 1 1 1 +0 +1 0 0 1 0 1 0 1 0 1 1 0 0 +0 +0 1 0 1 1 1 0 1 1 1 1 1 0 +1 +0 0 0 1 0 0 0 0 1 1 1 0 1 +1 +1 1 1 1 1 0 0 1 1 1 0 1 1 +0 +1 1 0 1 1 0 0 1 1 0 0 1 1 +0 +0 1 1 1 1 0 0 0 0 1 0 1 1 +1 +0 0 1 1 0 0 0 0 1 1 1 1 0 +0 +1 0 0 1 0 0 1 1 0 1 1 0 1 +1 +1 0 1 1 1 1 0 1 0 0 1 1 0 +0 +0 1 1 1 0 0 1 1 1 1 1 1 0 +1 +1 1 1 0 0 1 0 1 1 0 1 1 0 +0 +1 1 1 1 1 1 1 1 0 1 1 1 0 +1 +0 0 0 0 1 0 1 0 0 0 0 1 1 +0 +1 0 1 0 0 0 1 1 1 1 1 0 1 +0 +1 1 0 0 1 0 1 0 1 0 0 0 1 +0 +1 1 1 0 1 0 0 0 1 0 0 0 0 +1 +0 1 0 1 0 1 1 0 1 0 0 1 0 +0 +1 0 1 0 0 1 0 1 0 0 0 0 1 +1 +1 0 1 1 0 0 0 0 1 0 1 0 1 +0 +0 1 1 0 1 0 0 1 0 0 0 1 0 +1 +0 1 1 1 0 0 1 0 0 1 0 1 1 +1 +1 0 0 0 0 1 1 0 1 1 0 0 0 +1 +1 0 0 1 0 1 0 0 1 1 0 0 0 +1 +1 0 0 0 1 1 1 1 1 1 0 1 1 +1 +1 0 0 0 1 0 0 0 1 0 1 0 1 +1 +0 1 1 0 1 1 1 0 0 1 1 1 0 +0 +0 1 0 1 1 1 0 0 0 0 1 0 1 +0 +1 1 0 0 0 0 0 0 1 1 0 0 0 +0 +0 1 0 1 0 1 1 0 0 1 0 0 1 +0 +0 1 1 1 0 1 1 1 1 1 0 0 1 +1 +0 1 0 1 1 1 1 0 1 0 1 0 0 +1 +0 0 0 0 1 1 0 1 1 1 1 0 1 +1 +0 1 1 1 1 0 1 0 1 0 1 0 1 +0 +1 0 1 0 1 1 0 0 0 0 1 1 0 +0 +0 1 0 0 1 0 0 1 1 1 1 0 0 +0 +0 1 0 1 1 1 0 0 1 0 1 1 1 +0 +1 1 1 0 0 0 1 0 1 1 0 0 0 +0 +0 1 1 0 0 0 1 0 1 0 1 0 0 +1 +0 0 0 1 0 1 1 0 1 1 1 1 0 +1 +1 1 0 0 1 1 0 1 0 0 0 1 1 +1 +1 1 0 1 0 1 0 0 0 0 0 1 0 +1 +0 0 1 1 1 0 1 0 1 0 0 1 0 +0 +1 1 1 1 0 1 0 0 0 0 1 1 0 +1 +0 0 1 0 0 0 0 0 1 1 0 0 1 +0 +1 1 0 0 1 0 1 1 0 0 0 1 0 +0 +0 0 1 1 1 0 0 1 0 0 1 0 0 +1 +1 0 0 1 1 0 1 1 0 0 0 0 1 +0 +1 1 1 1 0 0 0 1 1 0 1 0 0 +1 +1 0 1 0 1 1 0 1 1 0 1 0 0 +1 +1 1 1 1 1 1 0 1 1 0 0 1 0 +1 +0 1 1 1 1 0 1 1 0 0 0 0 1 +1 +1 0 0 1 0 1 1 1 1 1 1 0 0 +0 +1 1 1 0 1 0 1 0 0 1 0 1 0 +1 +0 0 0 0 1 1 0 0 1 1 0 1 0 +1 +1 0 0 1 0 0 0 1 1 1 1 0 1 +1 +0 1 0 0 0 0 1 0 1 1 0 1 0 +1 +0 0 0 0 1 0 1 0 0 1 1 0 1 +1 +1 1 0 0 0 1 1 0 1 1 0 0 1 +1 +1 0 1 1 1 0 1 1 1 0 0 0 1 +0 +0 0 0 1 0 1 0 0 0 0 0 1 1 +0 +1 1 0 1 0 0 0 0 0 1 0 1 1 +0 +1 0 1 1 0 1 0 0 0 1 0 1 1 +1 +1 0 0 0 0 1 0 0 1 0 1 0 0 +0 +1 0 1 0 1 0 0 1 1 0 1 1 1 +0 +1 1 1 0 1 0 1 0 0 0 1 1 0 +1 +1 0 0 0 0 0 1 0 1 1 0 0 0 +0 +1 0 1 0 0 1 1 1 1 0 0 1 0 +1 +1 0 0 0 0 0 0 0 0 1 0 0 0 +0 +0 1 1 0 0 1 1 1 0 0 1 1 1 +0 +1 0 1 0 1 0 0 1 1 0 0 0 0 +1 +0 0 0 0 1 1 1 1 0 0 0 1 1 +0 +1 0 0 1 1 1 0 1 1 0 1 1 0 +0 +0 1 0 0 0 0 0 1 1 0 0 1 1 +1 +1 1 0 0 1 1 0 0 0 0 1 0 0 +1 +1 0 1 0 1 0 1 0 0 1 0 0 0 +1 +0 1 1 0 0 0 0 0 0 0 0 0 1 +1 +1 1 0 0 1 0 1 1 0 0 1 0 1 +1 +1 0 1 1 1 0 1 1 0 0 1 1 1 +1 +0 0 1 0 1 0 1 1 0 1 1 1 0 +1 +0 1 0 0 0 1 0 1 1 0 1 0 1 +0 +1 0 0 0 0 1 1 0 1 0 0 0 0 +0 +0 0 0 1 1 1 1 0 1 1 1 1 1 +1 +0 1 1 1 0 1 1 1 1 0 1 1 0 +1 +1 1 1 1 0 1 0 1 0 1 1 0 1 +1 +1 0 0 0 1 1 1 1 0 1 0 0 0 +0 +0 0 1 1 0 1 1 1 1 0 1 1 0 +0 +0 0 0 0 0 1 1 1 0 1 1 0 0 +1 +0 1 0 1 1 1 1 1 0 1 0 1 0 +0 +1 1 1 0 1 1 0 0 1 0 1 1 0 +0 +0 0 1 1 0 0 0 1 0 1 0 0 1 +1 +1 1 0 1 0 1 0 1 0 1 0 1 0 +1 +1 1 1 1 0 0 0 1 0 0 1 0 1 +1 +0 1 0 1 0 0 1 1 1 1 0 1 1 +0 +1 0 0 0 0 0 1 1 1 0 1 1 0 +0 +0 1 0 0 1 0 1 0 0 0 0 0 0 +1 +1 0 1 1 0 1 1 0 1 1 0 0 1 +0 +1 0 0 1 1 1 1 0 0 1 1 0 1 +0 +1 0 0 1 1 1 0 0 0 1 1 0 1 +1 +1 0 0 0 1 0 1 0 1 1 0 0 1 +0 +1 0 1 1 1 1 0 1 1 1 1 0 1 +0 +1 1 0 1 1 0 1 0 0 1 0 0 1 +1 +0 0 0 0 0 1 1 1 1 0 1 1 0 +0 +0 0 0 0 0 1 0 1 0 0 0 0 1 +1 +0 0 0 0 0 0 0 1 0 0 0 1 1 +1 +1 1 0 1 1 0 1 1 0 0 1 0 1 +0 +0 1 0 0 1 0 0 1 1 0 1 1 1 +1 +1 0 1 0 1 1 0 0 1 1 1 0 0 +1 +0 1 0 0 1 1 0 0 0 0 1 0 1 +1 +0 0 0 1 0 0 1 1 1 1 1 0 1 +1 +0 0 0 1 1 0 0 0 1 1 1 1 1 +1 +0 0 0 1 1 1 1 0 0 0 1 1 1 +1 +0 1 0 1 0 0 0 0 1 1 0 1 1 +0 +0 0 1 0 1 1 1 1 1 0 0 0 1 +1 +1 0 0 0 1 1 1 0 1 1 0 0 0 +0 +1 1 1 0 0 1 0 1 0 0 1 0 1 +1 +1 0 1 0 0 1 1 0 1 0 1 0 0 +0 +1 1 0 0 0 1 0 0 0 1 1 0 0 +1 +0 1 1 0 0 1 1 1 0 1 0 0 1 +1 +0 0 0 0 0 0 1 0 1 1 0 0 1 +0 +1 1 1 1 0 0 0 0 0 0 0 1 1 +0 +0 0 0 1 1 0 0 1 0 1 0 1 1 +0 +1 0 0 1 0 1 1 0 0 1 0 1 0 +0 +0 0 1 1 1 1 0 0 1 0 0 1 0 +0 +1 1 0 0 1 0 0 1 1 1 1 1 0 +0 +1 0 0 1 0 0 1 0 1 1 1 0 1 +1 +0 0 1 1 0 0 0 1 0 1 1 1 0 +0 +1 1 0 0 0 0 0 0 1 1 1 1 1 +1 +1 1 0 0 0 0 1 1 0 1 0 0 0 +1 +1 1 0 0 0 1 0 1 0 1 0 1 0 +0 +1 1 0 1 1 0 0 0 1 1 1 0 0 +1 +0 0 0 0 1 0 0 1 1 1 1 1 1 +1 +1 0 0 1 0 0 0 0 0 1 1 1 0 +1 +0 0 1 1 1 1 0 1 1 0 0 1 1 +0 +1 0 1 0 0 1 1 0 1 1 1 0 0 +1 +0 1 1 0 0 1 1 1 1 1 0 1 1 +1 +1 1 1 1 1 0 1 1 0 1 0 0 1 +1 +1 0 0 1 0 1 0 1 0 1 0 1 1 +1 +0 0 0 0 1 1 0 1 0 1 0 1 0 +1 +1 0 1 1 0 1 0 0 1 0 1 1 1 +0 +0 0 1 0 1 1 0 0 1 1 1 1 1 +0 +0 1 0 0 0 1 0 1 1 0 0 0 1 +1 +0 0 1 0 1 1 0 0 1 1 0 0 1 +0 +1 0 0 0 0 1 0 1 1 0 1 0 1 +0 +0 1 0 1 1 1 1 0 0 0 1 1 1 +0 +1 0 1 1 1 0 1 1 1 0 0 1 1 +1 +0 0 1 1 1 1 1 0 0 1 1 0 0 +1 +0 1 1 1 0 1 1 0 1 1 0 1 0 +0 +1 1 1 0 1 1 0 1 1 1 0 0 1 +1 +1 0 1 0 1 1 1 0 1 1 0 0 0 +1 +0 1 0 1 0 1 1 1 1 1 0 0 0 +1 +0 0 0 0 1 0 1 1 1 0 1 0 0 +1 +0 1 0 1 0 1 0 1 0 0 0 1 1 +0 +0 0 1 1 0 1 1 0 0 1 1 1 1 +0 +0 1 0 0 0 1 1 1 0 0 0 1 1 +0 +0 0 0 1 1 1 0 1 0 1 1 0 1 +1 +0 0 1 1 1 0 1 0 1 1 1 1 0 +0 +1 0 1 0 1 1 0 1 0 1 0 0 1 +1 +1 0 1 0 0 1 1 1 1 0 0 0 0 +0 +1 0 0 1 0 0 1 0 1 0 1 1 1 +1 +1 1 0 0 0 1 0 0 0 0 1 1 0 +1 +0 0 1 0 1 1 0 0 1 1 0 1 1 +1 +0 0 1 1 0 0 0 1 0 1 1 1 1 +1 +0 0 0 1 0 0 1 0 1 0 0 0 0 +1 +0 1 0 1 0 1 1 1 1 0 0 1 0 +1 +0 0 0 1 0 1 0 1 0 1 1 1 1 +1 +1 0 0 1 0 0 0 1 0 0 0 0 0 +1 +1 1 1 0 1 1 0 0 1 1 1 0 0 +0 +1 1 0 1 0 1 1 1 1 0 0 1 0 +0 +1 1 1 0 0 0 0 0 0 0 0 0 1 +0 +1 0 0 1 0 1 0 0 1 0 0 1 0 +1 +1 1 0 1 0 1 0 1 0 1 0 1 1 +0 +0 0 0 0 1 1 0 1 0 1 0 0 1 +1 +0 0 1 0 0 0 0 0 0 1 1 1 0 +0 +1 1 1 1 0 0 0 1 1 0 1 1 0 +0 +0 1 0 0 0 0 1 0 0 0 1 0 1 +0 +0 0 0 0 0 0 0 0 1 1 0 0 0 +0 +1 0 0 0 1 0 0 0 0 1 1 0 1 +1 +1 0 0 1 0 1 1 0 1 0 0 0 0 +1 +1 0 1 0 1 0 0 1 1 0 0 0 1 +0 +0 1 1 0 0 0 0 1 0 1 0 1 0 +1 +0 1 0 1 0 0 1 1 1 1 1 0 1 +0 +0 0 0 1 1 0 1 1 1 0 1 1 1 +0 +0 1 0 0 1 1 1 1 1 1 0 0 0 +1 +1 0 0 1 1 0 1 1 0 0 0 0 0 +1 +1 0 1 1 1 1 0 0 1 1 0 1 1 +1 +1 1 1 1 0 0 0 1 1 1 0 0 0 +1 +1 0 1 1 0 0 1 0 0 0 1 0 0 +1 +1 1 0 1 1 1 1 0 0 0 1 0 1 +0 +0 0 0 1 0 1 1 0 0 0 1 0 1 +1 +1 1 0 0 1 1 1 1 1 1 1 1 0 +0 +1 0 1 1 1 1 0 0 1 0 0 1 1 +0 +1 0 1 1 0 1 0 0 0 0 1 0 0 +1 +0 0 0 1 0 0 0 0 1 0 0 0 0 +0 +1 0 0 0 1 0 0 1 1 0 1 0 1 +0 +1 0 1 1 1 0 0 1 1 1 0 0 1 +0 +1 0 0 1 1 0 0 0 0 1 0 0 1 +1 +1 1 1 1 1 1 1 0 0 1 1 1 1 +1 +1 1 1 0 0 0 1 0 1 1 0 0 1 +1 +0 1 1 0 1 1 1 1 1 0 0 0 0 +1 +1 0 1 0 0 0 1 0 0 1 1 0 0 +1 +1 0 0 1 0 1 1 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 1 0 1 0 1 0 0 1 1 +1 +1 0 0 0 0 1 0 1 0 0 0 1 1 +1 +1 1 1 1 0 0 0 1 0 1 0 0 1 +1 +1 1 0 0 1 1 1 1 1 1 0 1 0 +1 +0 0 1 1 0 0 0 1 0 0 1 1 1 +0 +1 0 0 1 1 0 0 0 1 1 0 0 1 +0 +1 0 1 0 0 0 1 0 1 1 1 1 0 +1 +0 0 1 1 1 0 1 1 0 0 1 0 1 +1 +0 0 1 0 1 1 1 1 1 1 1 0 0 +0 +0 1 0 1 0 0 1 0 0 0 0 1 1 +1 +0 0 1 1 1 1 1 1 0 0 1 1 1 +1 +0 0 1 1 0 1 0 1 0 0 0 1 1 +0 +1 1 0 1 0 1 0 1 1 0 1 1 0 +0 +1 0 1 1 1 0 1 0 1 1 0 0 0 +1 +0 0 1 1 1 1 0 0 1 0 1 0 0 +0 +1 0 0 0 1 0 1 0 0 1 1 1 0 +0 +1 1 0 1 0 1 0 0 0 1 1 0 1 +1 +0 0 0 0 1 1 1 1 1 1 0 0 1 +1 +1 0 1 0 0 0 1 0 0 1 0 1 1 +0 +0 0 0 0 1 0 1 0 1 1 1 0 1 +0 +1 0 0 0 0 1 1 1 1 1 1 0 0 +1 +1 1 1 1 0 1 0 1 0 1 0 0 1 +0 +0 0 0 0 1 1 1 0 1 0 1 0 0 +1 +0 0 0 1 1 0 0 0 1 1 1 1 0 +0 +0 1 0 0 0 0 0 1 0 0 1 1 1 +1 +1 0 1 0 0 1 0 0 0 0 1 1 0 +1 +0 1 1 1 0 1 1 0 1 0 0 1 0 +1 +1 1 0 1 0 1 1 0 0 1 0 0 0 +0 +0 0 0 1 1 1 0 1 0 1 1 1 1 +0 +1 1 1 0 0 1 0 0 1 0 0 1 1 +1 +1 0 0 1 1 0 1 1 1 1 0 0 1 +0 +0 0 0 1 0 0 1 0 0 1 1 1 0 +1 +0 1 0 1 0 1 1 1 1 0 1 1 0 +0 +1 1 1 0 0 0 1 0 1 0 0 1 0 +0 +0 1 0 0 0 1 0 0 1 1 1 1 1 +1 +0 1 1 1 0 1 0 0 1 1 0 0 0 +0 +0 1 0 1 0 0 1 0 0 1 1 0 0 +1 +0 0 1 0 0 0 1 0 1 1 1 1 0 +0 +0 1 1 1 0 1 0 0 1 0 1 0 1 +1 +0 1 1 1 0 0 1 1 1 1 1 1 1 +0 +1 0 1 1 0 1 1 1 1 1 1 0 1 +0 +1 1 0 0 1 1 0 1 1 1 0 1 1 +1 +1 1 0 1 1 1 1 0 0 0 0 1 1 +0 +1 0 1 1 1 1 1 0 1 1 0 0 1 +1 +0 0 0 0 0 1 0 1 1 1 0 0 1 +1 +1 0 1 1 0 0 0 0 0 1 1 0 1 +0 +0 1 0 0 0 0 1 0 0 0 1 1 1 +1 +1 0 1 0 0 0 1 1 1 0 1 0 1 +1 +1 1 1 1 1 1 0 1 0 0 1 0 0 +0 +1 1 0 1 1 0 0 1 1 1 0 1 0 +0 +0 0 0 1 0 1 1 1 0 0 1 0 0 +1 +1 1 0 0 0 1 0 0 0 0 1 1 1 +0 +0 0 1 1 0 0 0 1 1 0 1 0 1 +0 +0 0 1 0 0 0 1 1 0 0 1 1 1 +0 +1 0 0 0 0 0 0 0 0 1 1 1 1 +1 +0 0 1 0 1 1 1 0 1 1 0 1 0 +1 +0 0 1 0 0 0 0 0 0 0 0 1 0 +0 +0 1 0 1 1 1 1 0 0 1 0 0 1 +1 +1 0 1 0 1 0 1 0 0 0 1 0 1 +0 +1 0 1 1 1 0 0 1 1 1 1 0 1 +1 +0 1 1 0 1 0 1 0 1 1 1 1 0 +0 +0 0 0 1 1 1 0 1 1 0 1 0 0 +0 +1 1 1 0 1 0 0 0 0 0 0 0 0 +0 +1 0 1 0 0 0 0 1 0 1 0 0 0 +0 +1 1 0 0 1 1 1 1 1 1 1 1 1 +1 +0 1 1 1 1 1 1 1 1 1 1 1 1 +0 +0 0 1 0 1 0 0 0 0 1 0 0 0 +1 +0 1 1 0 1 0 0 1 0 1 0 0 1 +0 +1 1 1 1 1 0 0 0 1 0 1 0 1 +0 +0 1 1 1 0 0 1 1 0 1 0 0 0 +0 +0 0 1 0 1 0 1 0 1 1 1 0 0 +0 +0 1 1 1 1 0 1 1 0 1 0 1 1 +1 +0 0 1 0 0 1 0 0 1 0 1 0 0 +0 +1 0 0 1 0 1 0 0 0 0 0 0 0 +1 +1 0 0 1 0 1 0 1 1 0 0 1 0 +0 +0 0 1 1 1 0 0 1 1 1 0 1 1 +0 +0 0 1 1 1 0 1 1 0 0 0 1 0 +0 +1 0 0 1 0 0 1 0 0 0 1 1 1 +0 +0 0 0 0 1 0 1 0 0 0 0 0 1 +1 +0 0 1 0 1 0 1 0 1 0 1 1 0 +0 +1 1 1 1 1 1 0 0 1 0 1 0 1 +1 +1 0 0 1 0 0 0 1 0 1 1 0 1 +0 +0 1 0 1 1 1 1 0 1 1 1 1 1 +0 +0 1 0 0 0 1 1 0 1 0 0 0 1 +1 +0 0 0 0 1 0 0 1 0 1 0 0 0 +1 +0 0 0 0 1 1 1 0 1 0 1 0 1 +0 +1 1 1 0 0 1 1 0 1 1 1 0 0 +0 +0 0 1 0 0 0 1 0 1 0 1 1 0 +1 +1 0 1 1 0 1 1 0 0 1 0 0 1 +1 +1 1 0 1 1 0 1 0 1 0 0 1 1 +0 +0 1 1 0 1 0 0 1 0 1 1 1 1 +0 +1 0 1 1 1 1 0 1 0 1 1 1 1 +0 +0 0 0 0 1 1 1 0 1 0 0 1 1 +0 +0 1 1 1 0 0 0 1 0 1 0 1 1 +1 +1 0 0 1 0 0 1 0 0 1 0 1 1 +0 +0 1 0 0 1 0 1 0 1 1 1 0 0 +0 +1 1 1 1 0 1 1 1 0 0 0 1 0 +0 +0 0 0 1 1 0 0 1 0 0 0 1 1 +1 +1 0 0 1 0 1 1 1 0 0 1 1 1 +0 +0 1 0 1 1 0 0 0 0 0 0 1 1 +1 +1 1 1 0 0 1 1 1 0 1 0 1 1 +1 +1 1 0 0 1 1 1 1 0 1 0 1 0 +0 +0 1 1 0 1 1 1 1 1 1 1 0 1 +0 +1 0 1 0 0 0 0 1 1 1 0 1 0 +0 +1 0 0 0 0 0 1 1 0 1 1 0 1 +0 +0 1 0 0 0 1 0 0 0 0 1 0 0 +1 +1 0 1 1 0 1 1 0 0 0 1 0 0 +0 +0 0 1 0 0 0 1 1 0 0 0 0 1 +0 +0 0 1 1 0 0 1 0 0 0 0 1 1 +1 +1 0 1 0 0 0 1 1 1 0 1 1 1 +0 +1 1 1 1 1 0 1 1 1 1 1 0 1 +1 +0 0 0 0 0 1 0 0 1 1 0 1 1 +1 +0 0 1 1 1 1 0 0 0 1 0 1 1 +1 +1 1 0 0 0 0 1 1 0 1 0 1 0 +0 +0 1 0 0 1 1 1 0 0 1 1 1 1 +0 +1 1 1 0 0 0 1 1 0 1 0 1 0 +1 +1 1 0 0 1 1 1 0 1 1 1 1 1 +0 +0 1 0 1 0 0 0 1 0 0 0 1 1 +1 +0 0 0 1 0 1 0 1 1 1 1 1 0 +1 +1 1 1 0 0 1 0 0 1 1 1 1 0 +0 +1 1 0 0 1 1 0 1 1 1 1 0 0 +0 +0 1 1 1 0 0 1 0 0 1 0 0 0 +1 +1 1 1 0 0 0 0 0 1 1 0 1 1 +1 +1 1 1 1 1 0 1 1 0 0 0 0 1 +0 +1 1 1 1 0 0 0 0 1 1 1 0 1 +0 +1 0 1 0 1 0 1 0 1 1 1 1 1 +1 +0 0 0 1 1 1 0 0 1 0 0 1 1 +0 +1 0 1 0 1 1 0 0 1 0 0 1 1 +1 +1 0 0 0 1 1 1 1 1 0 0 0 0 +0 +0 1 1 1 1 1 0 0 1 1 0 0 0 +1 +0 1 0 0 0 0 1 1 1 1 0 1 0 +0 +0 0 0 0 0 0 0 1 1 0 0 0 0 +0 +1 1 0 0 1 1 0 1 0 0 1 1 0 +1 +1 1 0 1 1 1 1 0 1 1 0 0 1 +1 +1 1 1 1 0 0 0 1 0 0 1 1 0 +1 +0 1 1 1 1 1 0 1 0 0 0 0 1 +1 +0 0 1 0 0 1 0 0 1 1 0 0 0 +0 +0 1 1 0 1 1 1 1 1 1 1 1 0 +0 +0 1 1 1 1 1 1 1 1 1 1 1 0 +1 +0 0 1 1 0 0 1 1 1 0 1 1 1 +0 +1 0 0 1 0 1 0 1 0 0 0 1 0 +1 +0 1 0 1 0 1 1 1 0 0 0 0 1 +0 +1 1 1 0 0 0 1 0 0 1 1 0 0 +0 +1 0 0 0 0 0 1 0 0 0 0 1 0 +1 +0 0 1 0 0 1 1 0 1 1 1 0 1 +1 +1 1 0 0 1 1 0 0 0 1 1 1 1 +0 +1 1 0 0 0 1 1 0 0 1 0 0 0 +1 +1 1 0 0 0 0 0 0 0 1 1 1 1 +0 +0 0 0 0 1 1 0 1 0 0 0 1 1 +1 +1 1 1 1 0 1 0 0 0 0 0 0 0 +1 +1 1 1 1 0 1 0 1 0 1 0 1 0 +0 +0 0 0 0 0 0 1 1 1 0 0 0 1 +0 +1 0 1 1 0 1 0 1 1 1 1 0 1 +1 +1 1 1 1 1 1 0 1 1 0 0 0 1 +1 +0 0 1 0 1 0 1 1 1 1 1 1 0 +0 +0 1 0 1 1 1 0 1 1 1 0 0 1 +0 +1 1 0 1 0 0 0 0 0 1 1 0 0 +1 +1 0 1 0 0 0 0 0 0 0 1 0 1 +0 +1 1 1 0 0 0 0 1 1 0 1 0 0 +0 +1 1 1 1 0 1 0 0 1 1 0 0 1 +0 +1 0 0 1 1 1 1 0 0 1 1 0 0 +1 +1 0 0 1 0 1 1 1 0 1 1 0 1 +0 +0 0 1 0 1 0 0 1 1 0 1 0 1 +0 +1 0 1 1 1 0 0 0 1 1 1 1 0 +0 +0 1 1 1 0 1 0 0 0 1 1 0 0 +0 +0 1 0 1 1 0 1 1 0 1 1 1 1 +1 +1 0 1 0 0 0 0 0 0 1 1 0 1 +1 +1 1 0 0 0 0 1 1 1 1 0 0 1 +1 +1 1 1 1 0 1 1 0 1 1 0 0 0 +0 +0 0 1 0 1 0 1 0 1 0 0 1 1 +0 +1 1 0 0 0 0 1 0 1 0 1 1 1 +1 +1 0 1 1 0 0 1 1 1 1 0 0 1 +0 +0 0 1 0 0 1 0 0 1 0 0 0 0 +1 +1 1 0 1 0 0 0 1 0 0 1 0 1 +0 +0 1 0 1 1 1 0 0 0 1 1 0 0 +0 +0 1 0 0 0 0 0 1 1 1 0 0 0 +0 +0 0 1 0 1 1 1 1 0 1 0 1 1 +0 +1 0 0 0 1 0 0 0 0 0 1 1 1 +1 +0 1 0 1 1 1 0 1 1 1 1 1 1 +0 +1 1 0 1 1 1 0 1 0 0 1 0 1 +0 +1 1 0 1 1 0 0 0 0 1 0 1 1 +1 +0 1 1 1 1 1 0 0 0 1 1 1 0 +0 +0 1 1 0 0 1 1 0 1 0 0 1 0 +0 +1 0 0 0 0 1 0 1 1 1 0 1 1 +1 +1 0 0 1 0 1 0 1 1 0 0 0 0 +1 +1 1 1 0 1 1 0 0 0 1 0 0 0 +0 +1 0 0 1 1 1 1 1 0 0 0 1 0 +1 +0 1 1 0 1 0 1 1 0 0 1 0 1 +1 +0 1 0 0 1 0 0 0 0 0 0 0 0 +0 +0 0 1 1 1 1 0 1 0 1 0 0 0 +0 +0 0 0 0 1 1 1 1 0 1 1 0 0 +0 +1 0 0 0 1 1 0 1 1 0 0 1 0 +0 +1 0 0 0 1 0 1 0 1 0 0 1 0 +1 +1 0 0 1 1 0 1 1 0 1 1 0 1 +0 +1 1 1 0 1 0 0 1 0 0 0 0 1 +0 +1 1 0 1 0 0 1 1 0 0 0 1 1 +1 +0 1 0 0 1 1 1 1 0 1 0 1 1 +0 +0 0 1 1 0 0 0 0 0 0 1 0 0 +1 +1 0 1 0 0 0 0 0 1 1 1 1 1 +1 +0 1 0 0 0 1 1 0 0 1 1 0 0 +1 +0 1 1 0 1 0 0 0 1 0 1 0 1 +0 +1 1 1 1 0 0 0 1 1 1 1 0 0 +0 +1 1 1 0 1 0 0 1 1 0 1 0 1 +0 +0 1 0 1 0 0 0 0 1 1 1 0 1 +0 +0 0 1 1 1 0 0 0 0 1 0 0 0 +0 +1 0 1 0 1 0 0 0 0 1 0 1 0 +1 +1 0 1 1 0 0 1 0 0 1 1 0 1 +1 +0 0 0 1 0 1 1 1 0 1 0 1 1 +1 +0 1 0 0 1 0 1 1 0 1 1 0 1 +1 +0 1 0 1 0 1 1 1 1 0 1 0 0 +1 +0 0 1 0 0 0 1 1 1 0 1 1 1 +1 +0 1 1 1 1 1 0 0 1 0 1 1 0 +0 +1 0 1 1 0 0 1 1 0 0 0 1 1 +1 +1 0 0 1 0 1 1 1 0 0 0 1 0 +0 +0 0 1 1 1 0 0 0 1 0 0 0 1 +1 +1 0 0 1 1 0 1 0 1 0 1 0 1 +1 +1 1 0 1 1 1 1 1 1 0 1 0 0 +1 +0 0 0 0 0 0 1 0 1 0 0 0 0 +0 +1 1 1 0 1 0 0 0 1 0 0 1 1 +1 +1 0 1 1 0 1 1 1 0 1 1 0 1 +1 +1 0 1 0 1 0 0 1 0 1 1 1 1 +0 +1 0 1 1 1 0 0 0 1 0 1 1 0 +1 +0 0 1 0 1 0 0 1 0 0 0 0 1 +0 +0 1 1 1 1 1 1 1 1 1 0 0 1 +0 +0 1 1 0 1 0 0 0 0 0 1 1 1 +0 +0 0 1 0 0 0 0 0 0 0 1 1 0 +1 +0 0 1 0 1 0 1 1 0 0 0 0 0 +0 +0 1 0 0 0 0 1 0 1 1 1 1 1 +1 +0 1 0 0 0 0 0 0 1 0 1 1 1 +1 +1 0 1 1 0 1 1 0 1 0 1 1 1 +1 +0 0 0 0 1 0 0 1 0 1 0 0 1 +0 +0 1 0 0 0 0 1 0 0 0 0 0 0 +0 +0 0 0 0 1 0 0 1 0 0 1 0 0 +1 +0 0 0 0 1 0 1 0 0 0 1 0 0 +1 +1 0 1 0 0 0 1 1 0 1 1 0 0 +0 +1 0 1 0 1 1 0 1 1 1 0 0 0 +1 +0 0 0 0 1 0 0 0 0 0 0 0 1 +0 +1 0 1 1 0 1 0 1 0 0 0 1 1 +1 +1 1 1 0 0 0 0 1 0 0 1 1 0 +0 +0 1 0 0 0 0 0 0 0 0 0 1 1 +1 +1 1 0 0 0 1 0 1 1 1 1 0 0 +1 +1 0 0 0 1 1 0 0 0 1 0 1 1 +0 +1 0 1 0 0 1 0 0 1 1 0 1 0 +0 +0 0 0 1 0 1 1 0 1 1 1 0 0 +0 +1 1 0 1 1 0 0 0 0 0 1 1 1 +1 +1 0 1 1 1 0 0 0 0 1 1 1 0 +1 +1 1 1 1 0 1 1 1 1 1 1 0 1 +1 +0 1 0 0 0 0 0 1 0 0 0 0 0 +0 +1 0 1 0 1 0 1 0 0 0 1 1 1 +1 +1 0 1 0 0 0 0 1 1 1 1 0 1 +1 +1 1 0 0 0 1 1 0 1 0 1 0 1 +1 +1 0 1 0 1 0 0 1 0 0 1 0 1 +0 +0 1 0 1 1 1 1 0 1 1 1 0 1 +1 +0 0 1 1 0 0 1 1 0 0 0 1 0 +1 +0 0 1 0 1 1 0 0 0 0 0 0 0 +1 +1 1 0 1 1 1 0 1 0 1 1 0 1 +1 +0 1 0 0 1 0 1 1 1 0 0 1 0 +0 +0 1 1 0 1 0 1 1 0 0 0 1 1 +1 +0 0 0 0 1 0 0 1 0 0 1 1 1 +1 +1 1 1 0 0 0 0 0 1 0 1 1 1 +1 +0 1 0 0 1 0 1 0 0 0 1 0 0 +0 +0 0 1 1 0 0 0 1 1 1 1 1 1 +0 +1 1 0 1 0 0 0 1 1 1 1 0 0 +1 +1 1 0 0 0 0 0 0 1 0 0 1 0 +0 +0 0 0 0 1 0 1 1 1 1 0 0 1 +0 +1 1 1 0 0 1 1 1 0 1 1 0 0 +0 +1 1 1 1 1 1 1 1 1 0 1 0 0 +0 +1 1 0 0 1 1 0 1 1 0 1 1 1 +1 +0 0 1 0 1 1 1 0 0 0 1 0 1 +0 +0 1 1 0 0 1 1 1 1 1 1 0 0 +0 +1 1 0 0 0 0 0 0 1 0 1 0 1 +1 +1 0 1 0 1 0 1 1 1 1 1 0 1 +1 +1 1 0 0 1 1 1 0 1 0 1 1 1 +1 +1 1 1 0 0 1 0 1 1 1 0 1 1 +1 +0 0 1 0 1 1 1 0 1 1 1 1 0 +0 +1 1 0 0 1 0 0 1 1 0 1 0 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 0 0 0 1 +0 +0 1 0 1 1 0 1 1 1 1 0 1 0 +0 +1 0 0 0 1 0 0 0 0 0 0 0 1 +1 +0 0 0 0 0 1 0 1 1 0 1 1 0 +1 +0 0 0 0 0 1 1 1 0 1 1 1 0 +0 +0 1 1 0 0 1 1 0 0 0 0 1 1 +0 +1 1 1 0 0 1 0 0 1 0 0 1 0 +0 +1 0 0 0 1 0 0 1 1 1 1 0 1 +1 +1 0 0 0 0 0 1 0 0 1 1 0 1 +1 +1 1 1 1 1 1 0 1 0 0 0 0 1 +0 +1 0 1 0 1 1 1 1 0 0 1 1 1 +1 +1 1 0 0 0 1 1 1 0 1 0 0 1 +1 +0 1 1 1 0 0 0 1 1 1 0 0 1 +1 +1 0 0 0 1 1 0 1 0 1 1 0 0 +0 +1 0 1 0 1 1 1 0 1 0 1 1 0 +0 +0 0 0 0 1 0 0 0 1 1 0 1 0 +0 +1 1 1 1 1 0 0 0 0 0 1 0 0 +0 +1 0 1 1 1 1 0 1 1 0 0 0 1 +0 +1 1 0 1 1 0 0 1 1 0 1 1 0 +0 +0 0 0 0 0 0 1 0 0 1 1 1 0 +0 +1 0 0 0 1 1 0 0 0 0 1 0 1 +1 +1 1 0 1 0 0 1 0 0 1 0 0 1 +0 +0 1 1 1 0 0 0 0 0 1 0 1 1 +0 +1 1 1 1 1 1 1 1 1 1 0 1 1 +0 +1 1 0 0 1 0 1 0 1 0 0 0 0 +1 +0 0 0 1 0 1 1 1 0 1 1 0 1 +1 +0 0 1 0 1 0 0 1 1 1 1 0 1 +1 +0 1 1 1 0 0 0 0 1 0 0 0 1 +1 +1 0 1 0 0 1 1 1 1 1 0 1 0 +0 +1 0 0 1 0 1 0 1 0 1 1 0 1 +1 +0 0 0 0 1 0 0 1 1 1 0 1 1 +0 +1 1 1 1 1 0 1 1 0 0 0 1 0 +0 +0 0 0 1 1 1 0 0 1 1 1 0 1 +1 +1 0 0 1 0 1 0 1 1 0 1 1 0 +1 +0 1 1 0 0 0 0 1 0 1 0 0 1 +1 +0 0 0 1 0 0 0 1 0 1 0 1 1 +1 +0 0 0 1 0 1 0 1 0 0 1 1 1 +0 +1 0 0 0 1 0 0 0 1 1 0 0 0 +0 +0 1 1 0 0 0 1 0 0 0 0 1 0 +0 +1 0 1 1 1 0 1 1 0 1 0 0 1 +0 +1 1 0 1 0 0 1 1 1 1 1 1 1 +0 +0 1 0 1 1 1 0 1 0 1 0 1 0 +1 +1 0 0 1 0 0 0 0 0 0 0 0 0 +0 +1 1 0 1 1 1 0 0 0 1 0 0 0 +0 +0 1 0 1 0 1 1 0 1 0 0 0 1 +0 +0 0 0 0 1 1 0 1 0 1 1 1 1 +1 +0 1 1 1 1 0 0 0 1 0 0 0 1 +0 +0 1 1 1 0 0 1 0 1 0 1 1 1 +0 +1 0 0 1 0 0 0 0 1 1 0 0 0 +0 +1 1 0 0 1 0 0 1 0 1 1 0 1 +1 +1 0 1 0 1 1 0 1 1 0 0 0 1 +1 +1 0 1 1 1 1 1 0 0 1 0 0 0 +1 +0 1 1 1 0 1 1 1 1 1 1 0 1 +0 +0 1 0 0 1 1 0 0 0 1 1 0 1 +0 +1 0 1 0 1 1 1 1 1 0 1 1 1 +0 +0 0 0 0 1 0 1 0 1 1 1 0 0 +1 +0 1 1 0 1 1 0 0 1 0 1 0 0 +0 +1 1 1 0 0 1 0 1 1 0 0 1 0 +1 +0 1 0 1 1 1 1 1 1 1 1 1 0 +0 +0 1 1 1 0 1 0 1 1 1 0 1 1 +1 +1 1 0 0 0 1 1 0 0 0 0 1 0 +1 +1 1 1 0 0 0 1 0 1 1 1 0 1 +0 +1 1 1 1 0 0 1 1 0 0 1 1 0 +0 +0 0 0 0 0 1 0 0 0 0 0 0 0 +1 +1 1 1 0 0 1 0 1 0 0 1 0 0 +0 +0 1 1 0 1 1 0 0 1 0 1 1 1 +0 +0 0 1 0 1 0 1 1 1 0 1 0 1 +1 +0 1 0 1 1 1 1 1 1 1 0 0 1 +1 +0 1 0 0 0 1 0 0 1 1 0 1 0 +1 +0 0 1 0 1 0 0 0 0 1 1 1 0 +1 +0 1 0 1 1 1 1 0 1 0 1 1 1 +1 +1 0 0 0 1 1 1 1 0 1 1 1 1 +1 +0 1 0 1 0 1 0 1 0 1 1 1 0 +1 +1 1 1 0 1 1 1 0 1 0 1 0 0 +0 +0 1 0 0 1 1 0 1 0 1 1 1 1 +0 +0 1 0 0 0 1 0 1 1 0 1 1 0 +0 +0 0 1 0 0 1 0 0 0 1 1 1 1 +0 +1 1 0 1 0 0 1 0 1 1 1 0 0 +1 +1 1 1 0 1 0 1 0 0 1 0 0 0 +0 +1 0 1 1 0 1 1 1 1 0 0 0 0 +1 +1 0 0 1 0 0 0 1 0 0 0 1 1 +1 +0 0 0 1 0 1 1 1 0 0 1 1 0 +0 +1 0 1 0 0 1 0 0 0 1 1 1 1 +1 +0 0 0 0 0 0 1 1 1 0 1 1 1 +0 +0 1 0 1 1 0 0 0 0 0 1 0 1 +1 +1 1 1 0 1 0 0 0 0 0 0 1 0 +1 +0 1 0 1 1 0 0 0 0 1 0 0 0 +0 +1 1 1 1 0 1 0 0 1 0 0 0 1 +1 +0 0 1 1 1 0 0 1 1 1 1 1 1 +1 +0 1 1 0 0 0 1 1 0 0 0 0 1 +1 +0 0 0 0 0 1 1 0 0 1 0 1 1 +1 +1 1 1 0 0 1 1 1 1 0 0 1 1 +1 +0 0 0 1 0 0 0 0 0 0 0 1 1 +1 +1 0 1 0 1 0 1 1 0 1 1 0 1 +0 +0 1 1 1 1 0 1 1 0 0 1 1 1 +1 +1 0 0 0 0 1 1 0 0 1 1 1 0 +0 +0 0 1 1 0 0 0 0 1 0 1 0 1 +1 +1 0 0 1 0 1 1 1 1 1 1 0 1 +1 +1 1 1 0 1 0 0 1 1 0 1 0 0 +1 +0 1 1 0 1 1 0 0 1 0 1 1 0 +1 +1 0 0 0 0 0 1 1 0 0 0 1 0 +0 +1 0 1 0 0 0 1 0 0 0 0 1 1 +1 +1 1 0 1 0 0 1 1 0 1 1 0 0 +1 +1 1 1 1 1 1 0 0 0 1 1 1 1 +0 +1 1 1 0 1 1 1 1 0 0 0 1 1 +1 +1 1 0 1 1 1 0 1 0 1 1 0 0 +0 +1 1 0 1 1 0 0 0 0 0 1 0 1 +0 +1 0 1 0 0 0 0 1 0 1 1 0 1 +0 +0 0 1 0 1 0 1 1 1 0 1 0 0 +0 +1 1 1 1 0 0 0 0 1 1 0 0 1 +1 +0 1 1 0 1 0 0 0 1 1 0 1 0 +0 +0 0 1 0 0 0 0 0 0 1 1 0 0 +1 +0 1 0 1 0 1 0 0 0 0 1 1 1 +0 +1 1 1 1 0 1 0 0 0 1 0 0 0 +0 +0 1 0 0 0 1 1 1 1 0 1 0 1 +1 +1 0 0 1 0 0 1 1 1 0 0 0 0 +1 +0 1 1 1 0 1 0 1 0 1 0 0 0 +0 +1 0 0 0 1 0 0 0 1 0 1 0 0 +0 +0 0 1 1 1 1 0 1 0 1 0 1 0 +1 +0 1 1 1 1 0 0 0 1 1 0 1 1 +0 +0 1 0 0 1 1 0 0 1 1 0 1 1 +1 +1 0 0 0 0 1 0 0 0 1 1 0 0 +0 +1 1 1 0 1 0 0 1 0 0 1 1 0 +1 +0 0 0 1 1 0 0 1 1 1 1 0 1 +1 +0 1 1 0 1 1 0 1 1 0 1 0 0 +1 +1 1 1 0 1 1 0 0 1 0 0 0 0 +0 +0 1 1 1 0 0 1 1 0 1 0 0 1 +1 +1 0 1 0 1 1 0 0 0 0 1 0 0 +1 +1 1 0 1 0 1 1 0 1 0 0 1 1 +0 +1 0 0 1 0 1 0 1 1 0 1 0 1 +1 +0 1 0 0 1 1 0 0 0 1 0 0 1 +1 +0 0 1 1 1 0 1 1 0 0 0 1 1 +1 +0 1 0 0 0 1 0 0 0 0 0 0 1 +1 +1 1 1 1 1 1 0 1 1 1 0 1 0 +0 +0 1 0 0 0 1 1 0 1 0 0 1 0 +1 +1 0 0 0 1 0 0 1 1 0 0 1 1 +0 +1 0 0 1 1 1 1 0 0 0 1 0 0 +0 +0 1 1 1 1 0 1 0 0 1 0 0 1 +1 +0 0 0 1 1 0 0 1 0 0 0 0 1 +0 +1 0 1 1 1 0 0 0 0 1 1 1 1 +0 +1 1 0 0 1 1 0 0 1 1 0 0 0 +0 +1 1 1 1 0 0 0 1 0 0 0 1 1 +1 +0 0 0 0 0 1 0 1 0 1 0 0 1 +0 +0 0 0 1 1 0 1 0 1 0 0 0 0 +0 +0 0 0 0 0 0 0 0 1 0 1 0 1 +1 +1 0 0 1 1 1 1 1 1 1 1 0 1 +0 +1 1 0 0 0 0 1 1 1 0 1 1 1 +0 +0 1 0 0 0 1 0 1 1 1 0 1 0 +0 +1 0 0 1 0 1 0 1 1 1 0 0 0 +0 +1 0 1 1 1 0 0 0 1 1 0 0 1 +1 +1 1 1 1 1 1 0 1 1 1 1 0 0 +0 +1 1 1 0 0 0 1 1 1 1 0 1 0 +0 +1 0 0 1 0 1 0 0 0 0 1 1 0 +1 +1 1 0 1 0 1 0 1 1 0 1 0 1 +0 +0 1 1 0 1 0 0 0 1 0 0 1 1 +0 +1 0 1 1 0 0 1 1 0 1 0 1 0 +1 +1 1 1 1 0 0 1 1 0 0 1 0 0 +1 +1 0 0 1 0 0 0 0 0 1 1 0 0 +0 +0 0 0 1 0 0 0 1 0 1 0 1 0 +0 +1 0 1 1 1 0 1 0 1 0 1 1 0 +0 +0 1 1 1 0 1 1 0 1 0 0 1 1 +0 +0 0 0 1 1 0 0 0 1 1 1 0 0 +1 +1 1 0 0 1 0 1 0 0 1 1 1 1 +0 +1 0 1 1 1 0 0 1 0 0 1 0 1 +1 +1 1 1 0 1 1 1 0 1 1 0 0 1 +1 +0 0 0 1 0 1 1 0 0 1 0 1 0 +1 +1 1 1 1 0 1 0 1 1 1 0 1 1 +0 +0 1 0 1 1 0 0 0 1 1 1 0 1 +1 +0 1 0 0 0 1 1 1 1 1 1 1 1 +1 +0 1 0 0 0 0 0 1 1 0 0 1 0 +0 +1 1 1 0 1 0 0 1 0 0 0 1 1 +1 +1 1 1 0 1 1 1 0 1 1 1 0 1 +0 +0 1 0 0 1 1 0 0 1 1 0 0 1 +0 +0 0 0 0 0 1 1 1 1 0 1 0 0 +1 +1 1 0 1 0 1 1 0 0 0 1 0 0 +0 +1 1 1 1 1 0 1 0 0 1 0 0 0 +1 +0 1 1 1 1 0 1 1 0 0 1 1 0 +0 +0 0 0 1 1 1 1 0 1 1 0 1 1 +0 +0 1 1 0 0 1 0 1 0 0 1 1 1 +1 +1 0 0 1 0 0 1 0 1 1 1 1 1 +0 +1 1 1 1 1 0 0 0 0 0 1 1 0 +1 +1 0 1 0 1 0 1 1 1 0 1 0 1 +0 +1 1 0 1 1 0 1 0 0 1 0 0 0 +0 +0 1 1 0 0 0 0 1 1 1 1 0 1 +1 +1 1 1 0 1 0 0 1 0 1 0 1 1 +0 +1 1 0 1 1 1 1 1 1 0 0 0 1 +1 +1 0 1 1 0 0 0 0 1 1 1 0 1 +1 +1 1 1 1 0 1 1 0 0 1 1 0 1 +1 +1 0 0 0 0 0 0 1 0 0 0 1 1 +0 +0 1 0 1 0 0 0 0 1 0 1 1 0 +1 +1 1 1 0 1 0 1 1 1 0 0 1 0 +0 +0 1 1 0 0 1 0 0 0 1 1 1 1 +1 +0 0 1 1 0 1 1 0 1 1 0 0 0 +0 +1 0 0 0 1 0 1 1 1 0 1 1 1 +0 +0 1 1 0 0 0 0 0 1 0 0 0 0 +1 +0 1 0 0 1 0 1 1 1 0 1 1 1 +0 +1 1 1 0 0 1 0 0 0 0 0 0 0 +0 +0 1 1 1 1 0 0 0 1 0 1 1 1 +0 +0 0 1 0 1 0 1 1 0 0 0 0 1 +1 +1 0 0 0 1 1 0 0 1 0 1 0 0 +1 +1 0 0 1 1 0 1 1 1 1 1 1 1 +0 +1 1 1 0 0 1 0 1 1 1 1 0 1 +1 +1 1 0 0 0 1 1 0 0 0 1 1 1 +1 +1 1 0 0 0 0 1 1 1 0 0 1 0 +0 +0 1 0 1 0 1 0 1 1 1 1 0 1 +0 +1 0 1 1 0 0 0 0 1 1 1 1 1 +0 +1 0 1 0 1 0 1 1 0 0 1 1 1 +0 +0 0 0 0 0 1 0 1 1 0 1 1 1 +0 +0 1 1 0 1 1 1 0 0 1 1 0 0 +1 +1 0 1 1 1 1 0 1 1 1 1 1 0 +0 +1 0 0 0 0 1 1 0 0 1 1 0 0 +1 +0 1 1 1 0 1 0 1 1 0 0 1 0 +1 +1 0 0 0 1 1 0 0 1 1 1 0 1 +1 +0 1 0 0 0 1 0 0 0 0 0 1 1 +0 +1 0 1 1 1 0 1 1 0 1 0 0 0 +1 +1 1 1 1 1 1 0 0 1 1 1 1 0 +0 +0 1 0 1 0 1 0 1 0 1 1 0 0 +0 +0 0 1 1 0 0 0 0 0 1 1 1 0 +1 +1 0 0 1 1 0 1 1 1 0 0 0 1 +1 +0 0 0 1 1 0 0 1 1 0 1 1 1 +1 +1 0 1 0 0 1 0 1 1 0 1 1 1 +0 +0 0 1 1 0 0 1 1 1 1 1 1 1 +1 +0 0 1 0 1 0 1 0 1 0 1 0 0 +1 +0 0 1 0 0 0 1 1 1 0 0 1 1 +0 +1 1 0 0 1 0 1 0 0 1 1 1 0 +1 +1 1 0 0 1 0 0 1 1 0 0 0 1 +0 +1 1 0 1 0 0 1 1 0 1 1 1 0 +0 +0 0 1 1 0 1 1 1 0 1 1 0 0 +1 +0 1 1 0 1 0 1 0 0 1 1 0 0 +0 +1 0 0 1 0 1 1 1 1 0 1 0 0 +1 +0 1 0 0 0 1 1 0 1 1 1 1 0 +1 +1 0 0 0 1 1 0 1 0 0 0 1 1 +0 +1 0 0 1 0 1 0 0 0 1 1 0 1 +0 +1 0 0 0 0 0 0 1 1 1 0 0 0 +0 +1 1 0 0 1 0 1 0 1 1 0 1 0 +1 +1 0 1 1 1 1 1 1 1 1 0 1 0 +0 +0 0 0 1 0 1 0 0 1 1 1 0 0 +1 +0 0 0 1 1 0 1 1 1 1 1 1 1 +1 +1 0 1 0 1 1 1 1 0 1 0 0 0 +1 +0 0 0 0 1 1 1 0 0 0 0 1 0 +0 +0 0 1 1 1 1 0 0 0 1 0 1 0 +0 +0 0 1 0 1 0 1 1 1 0 1 1 1 +0 +0 0 1 1 1 0 0 1 1 1 1 0 1 +0 +1 1 0 0 1 1 1 0 0 0 1 1 1 +0 +1 1 0 0 1 0 0 0 1 1 1 1 0 +1 +0 0 0 0 0 1 0 0 1 1 0 1 0 +0 +1 0 0 0 1 1 1 1 1 0 0 0 1 +1 +0 1 0 0 0 0 1 0 0 1 1 0 1 +1 +1 1 1 0 0 1 0 1 0 1 1 0 1 +0 +0 0 0 1 1 1 0 0 1 0 1 0 1 +0 +0 1 0 0 1 0 0 0 1 1 1 0 0 +1 +0 0 0 1 1 1 0 0 1 1 0 1 0 +0 +1 1 1 1 1 0 0 1 0 0 1 1 0 +0 +0 0 1 0 0 1 1 1 1 0 0 1 0 +0 +1 1 1 0 1 1 0 1 0 0 0 1 1 +0 +1 0 0 0 1 0 1 0 0 1 0 0 0 +0 +0 1 1 0 1 0 0 1 1 0 1 0 0 +0 +1 0 1 1 1 0 1 1 0 1 1 0 1 +1 +0 0 1 1 1 0 0 0 0 0 1 1 0 +1 +0 0 0 0 1 0 0 0 1 1 1 0 1 +1 +1 1 0 0 0 0 1 1 1 0 0 0 1 +0 +1 0 1 1 0 1 0 0 1 1 1 0 1 +0 +1 1 0 0 1 0 0 0 1 0 1 0 1 +0 +0 1 0 0 1 1 0 0 1 0 0 1 1 +0 +0 0 0 1 0 0 0 0 0 1 1 1 0 +0 +0 1 1 1 0 1 0 1 1 0 0 0 0 +0 +0 1 1 1 0 0 0 0 0 0 1 0 0 +0 +0 1 1 0 0 0 0 1 0 1 1 0 1 +0 +0 0 1 0 1 1 0 0 0 0 0 0 1 +0 +0 1 1 1 0 1 0 1 0 1 1 0 1 +0 +0 1 0 0 1 1 1 1 1 0 0 1 0 +1 +1 0 0 0 0 0 0 1 1 0 0 1 1 +1 +0 1 1 0 1 1 1 0 1 0 0 0 1 +1 +0 1 0 1 1 0 0 0 0 1 1 1 1 +1 +1 1 1 0 0 0 1 0 0 0 0 1 0 +1 +0 0 1 0 0 0 0 0 1 1 1 1 0 +1 +1 0 1 0 0 1 0 0 0 1 1 1 0 +0 +1 1 1 1 1 0 1 1 0 0 0 0 0 +1 +0 0 1 1 1 1 0 1 1 0 1 0 1 +0 +1 1 0 0 1 1 0 1 1 0 1 0 1 +0 +1 0 1 1 0 1 0 1 0 1 0 0 0 +0 +1 0 0 0 0 0 0 0 1 0 0 1 1 +0 +1 0 0 1 0 0 0 0 1 1 0 1 0 +1 +1 0 1 1 1 0 1 0 1 1 1 0 1 +1 +1 1 1 1 1 0 0 0 1 1 0 0 1 +0 +0 1 0 0 1 0 0 0 1 0 1 1 1 +0 +0 0 1 0 1 1 0 0 0 0 1 1 1 +0 +0 1 0 1 1 0 0 0 0 1 1 0 0 +1 +1 1 0 1 1 0 0 0 1 0 1 1 0 +1 +0 1 1 1 1 1 1 0 0 1 1 1 0 +1 +0 0 0 0 1 0 0 1 1 0 0 1 0 +0 +0 0 0 1 1 0 0 0 1 0 0 0 1 +0 +1 0 1 1 0 1 1 1 0 1 1 1 0 +1 +1 1 1 0 0 1 1 0 0 1 1 0 1 +0 +1 1 0 0 1 1 0 0 0 1 0 0 0 +1 +1 0 0 1 1 0 0 0 0 0 1 0 1 +1 +0 1 1 1 0 1 1 1 1 1 0 0 0 +0 +1 1 1 0 0 1 1 1 0 0 0 1 1 +0 +0 0 0 1 0 0 0 0 1 0 1 0 1 +0 +0 0 1 1 1 0 1 0 0 0 0 0 1 +1 +0 0 1 0 0 1 1 0 1 0 0 1 1 +0 +1 1 0 0 1 0 0 1 0 1 1 0 0 +0 +1 0 0 0 1 1 0 1 0 1 0 0 0 +1 +1 0 1 1 1 1 1 1 1 0 1 1 0 +0 +0 1 1 0 1 1 1 1 0 1 1 1 1 +0 +1 1 1 0 0 1 1 0 1 0 1 1 0 +0 +0 0 0 0 0 1 0 1 0 1 0 1 0 +0 +0 0 0 0 0 1 0 0 0 0 0 1 0 +0 +1 1 1 0 1 0 1 1 1 0 0 1 1 +1 +1 0 1 0 1 1 1 0 0 0 1 0 0 +0 +0 1 1 1 0 1 1 0 1 1 0 0 1 +0 +0 1 0 1 1 0 1 1 1 0 0 1 0 +1 +1 1 0 1 0 0 1 1 1 0 0 1 0 +1 +0 1 0 0 0 1 0 1 0 1 0 1 0 +1 +0 1 1 1 1 0 1 0 1 1 1 0 1 +1 +1 1 0 0 0 1 1 0 1 1 1 0 0 +1 +0 1 1 0 1 1 1 0 1 0 0 1 0 +1 +0 0 1 0 0 0 1 0 1 1 0 0 1 +1 +1 0 0 1 1 1 0 1 1 0 1 0 1 +0 +0 0 0 0 0 0 1 0 0 0 1 1 1 +0 +0 1 1 1 0 0 0 1 1 1 1 1 0 +0 +1 1 0 1 0 0 0 1 1 1 1 1 0 +0 +1 1 0 1 0 0 0 0 0 0 0 1 1 +1 +0 1 1 0 0 1 0 1 0 0 0 0 0 +0 +0 0 1 0 0 1 1 1 0 1 0 1 1 +1 +1 1 1 0 0 1 0 1 0 1 0 1 0 +1 +1 0 0 1 0 0 1 0 1 1 1 0 0 +0 +0 1 0 0 1 1 0 0 1 1 1 1 0 +1 +1 0 0 1 1 1 1 0 0 1 0 1 0 +1 +1 1 1 0 1 0 0 1 0 1 1 0 0 +1 +0 1 0 0 0 0 1 0 1 1 1 0 1 +0 +0 0 0 0 1 0 0 0 1 1 0 1 1 +1 +0 1 0 0 0 1 0 1 1 1 1 0 0 +0 +0 0 0 1 0 0 0 0 1 0 0 1 0 +1 +0 0 0 0 0 0 1 1 0 1 0 0 1 +0 +1 0 1 1 1 1 1 1 0 1 0 0 1 +1 +0 1 0 0 1 0 0 0 1 0 1 1 0 +1 +0 0 1 0 1 1 0 0 0 0 0 1 1 +1 +0 0 0 0 0 0 1 1 1 1 0 0 1 +1 +0 0 0 1 0 0 0 1 0 0 1 0 0 +1 +0 1 0 1 0 0 0 0 1 0 0 1 1 +1 +1 0 1 0 1 1 1 1 1 1 0 0 0 +0 +1 0 0 0 0 0 0 1 1 0 1 0 1 +1 +0 0 1 0 1 0 1 1 0 1 1 0 1 +1 +1 1 0 1 1 0 0 1 0 1 1 1 1 +1 +1 1 1 0 0 1 1 1 1 1 0 0 1 +1 +0 0 1 0 0 0 0 1 1 1 1 1 1 +1 +0 1 0 1 1 1 1 0 1 1 0 0 0 +1 +0 0 0 0 1 1 1 1 0 0 1 1 1 +1 +1 1 0 1 0 0 1 0 0 0 1 1 1 +1 +1 1 1 1 1 1 0 1 1 0 1 0 1 +0 +1 1 1 1 0 1 0 1 1 0 0 0 1 +0 +1 1 0 1 0 1 0 1 0 0 0 0 0 +1 +0 0 1 1 0 0 1 0 1 0 0 0 1 +1 +1 1 1 0 1 1 0 1 1 1 0 0 0 +0 +0 0 0 0 0 0 1 0 0 0 0 1 1 +1 +0 1 1 1 1 0 1 0 0 1 0 1 1 +0 +1 0 1 0 0 0 1 1 0 1 1 1 1 +0 +1 0 0 0 1 1 0 1 1 1 1 0 0 +1 +1 1 1 0 0 1 1 0 0 0 0 0 0 +1 +1 1 1 0 1 1 1 1 1 1 0 1 0 +0 +1 0 1 0 1 0 0 1 0 0 0 0 0 +0 +1 1 1 0 1 0 0 0 0 0 1 0 0 +1 +0 0 0 0 1 0 0 1 0 1 0 1 1 +1 +1 1 1 1 0 0 1 0 0 0 1 1 1 +0 +0 0 0 0 0 1 1 0 1 1 1 0 0 +1 +1 1 1 0 0 0 1 0 1 0 0 1 1 +1 +0 0 1 0 1 1 1 1 0 1 1 0 1 +0 +0 1 1 0 1 1 0 1 0 1 1 1 0 +0 +0 1 1 0 0 0 1 0 0 1 0 0 1 +1 +0 0 1 1 0 1 1 0 0 1 1 1 0 +1 +1 0 1 0 0 1 0 0 1 1 1 0 0 +0 +1 1 0 0 1 0 0 0 1 1 0 0 1 +0 +0 1 0 0 1 0 1 1 0 0 1 1 1 +1 +0 1 1 0 1 1 0 0 0 1 1 1 1 +0 +1 0 0 1 1 0 1 0 0 0 0 1 1 +0 +0 1 1 1 1 1 1 1 0 0 1 0 0 +0 +1 1 0 1 1 0 0 0 0 1 1 1 1 +0 +0 0 1 0 0 1 0 1 1 0 1 1 1 +1 +1 1 0 0 0 1 1 1 1 0 0 0 0 +0 +0 1 0 0 0 0 0 0 0 0 1 0 0 +0 +1 1 1 0 1 0 0 0 1 0 1 0 0 +0 +1 0 1 1 1 1 1 1 1 1 0 0 1 +0 +1 0 0 1 0 1 0 0 0 1 1 1 1 +1 +1 0 0 1 0 1 1 0 1 1 0 0 0 +0 +1 0 0 1 0 0 0 1 1 1 0 1 1 +1 +1 0 0 0 0 0 0 0 0 0 1 1 1 +0 +1 0 1 1 0 0 1 0 0 0 0 1 1 +0 +0 0 0 0 1 0 0 1 1 0 0 0 1 +0 +0 1 1 1 1 0 1 1 0 1 0 0 0 +1 +0 0 1 0 1 0 0 1 0 1 0 1 1 +0 +0 1 1 1 0 1 0 0 0 1 1 1 0 +1 +0 1 1 0 0 0 0 0 0 1 1 1 1 +0 +1 1 0 1 1 1 1 1 0 0 0 1 1 +1 +1 0 1 1 0 1 1 0 0 0 1 1 0 +1 +0 1 0 1 1 1 1 0 0 1 1 0 1 +0 +0 1 1 0 0 0 0 1 1 0 0 0 0 +0 +1 1 1 1 1 1 1 1 0 1 0 1 0 +0 +1 0 0 1 1 1 1 0 0 0 0 1 1 +1 +0 0 1 1 0 1 1 1 1 1 1 1 1 +0 +0 1 1 1 0 0 1 1 1 1 1 0 1 +1 +1 0 1 1 0 1 1 0 1 1 1 0 0 +0 +1 1 1 0 1 1 0 0 0 1 1 1 0 +0 +1 1 0 0 0 1 1 0 0 1 1 1 1 +0 +0 0 0 0 0 1 0 0 0 1 0 0 0 +0 +1 1 1 1 1 0 1 0 0 1 1 0 0 +0 +0 1 1 0 0 1 1 0 1 0 1 0 1 +1 +1 1 1 0 0 1 0 1 0 1 1 1 0 +0 +1 0 1 1 1 1 1 0 1 1 1 1 0 +0 +1 1 1 0 1 1 0 1 0 0 1 0 1 +0 +0 0 0 1 1 0 1 1 0 1 0 1 0 +0 +0 0 1 0 0 1 1 0 0 0 0 1 1 +1 +0 0 1 1 1 0 0 1 0 1 1 0 1 +1 +0 1 0 0 1 1 1 1 1 0 0 0 1 +1 +1 1 0 0 0 0 1 1 0 1 1 0 0 +0 +1 1 0 1 0 0 1 1 1 1 0 1 1 +1 +0 0 0 0 0 0 1 1 0 0 1 1 1 +1 +1 1 0 0 0 1 0 1 0 0 0 1 1 +0 +1 0 1 1 1 0 0 1 0 0 1 1 0 +1 +0 0 1 0 1 1 1 0 0 1 1 0 0 +0 +0 0 0 1 0 0 1 0 0 1 0 1 1 +1 +1 0 0 0 1 1 0 0 0 1 1 1 0 +0 +1 0 0 1 0 1 0 0 0 1 0 0 0 +0 +1 1 0 1 1 1 0 1 0 0 0 0 1 +1 +1 0 0 0 1 1 1 1 0 0 0 0 1 +0 +0 1 0 1 1 1 1 0 0 0 0 0 1 +0 +1 0 0 1 0 0 1 0 0 1 1 1 0 +0 +0 0 0 1 0 0 0 1 0 0 0 0 1 +1 +1 0 1 1 1 1 1 0 1 1 1 1 1 +1 +1 1 1 0 1 1 0 0 0 0 1 0 1 +1 +1 1 1 1 1 0 0 1 0 1 1 0 0 +0 +0 1 1 1 0 1 0 1 1 0 0 0 1 +1 +1 0 0 1 1 1 1 0 1 0 0 1 1 +0 +1 0 0 0 0 1 0 1 1 0 0 1 1 +0 +1 0 0 1 1 1 1 0 0 0 0 1 0 +0 +0 1 1 0 1 1 1 0 0 0 1 0 1 +1 +0 1 0 0 0 1 0 0 1 0 0 1 0 +0 +1 0 0 1 1 0 1 0 1 0 1 1 1 +0 +0 1 0 0 0 0 1 0 1 0 1 1 1 +0 +0 0 0 1 0 1 0 0 0 0 1 1 0 +0 +0 1 1 0 1 1 0 1 0 1 1 0 0 +1 +1 0 0 1 0 1 1 0 0 1 0 0 0 +1 +0 0 1 1 0 0 0 0 0 1 1 0 1 +1 +0 1 1 1 0 0 0 0 1 0 0 1 1 +0 +0 1 0 1 0 0 0 1 1 0 0 0 1 +1 +0 1 1 1 1 1 1 1 1 0 1 0 0 +1 +0 1 0 0 1 1 1 0 0 0 0 1 1 +0 +1 0 0 0 1 1 1 0 0 0 1 0 0 +1 +0 1 1 0 1 1 0 0 1 1 1 0 1 +0 +0 1 0 1 0 0 0 1 0 1 1 1 0 +0 +1 1 1 0 0 1 0 0 0 0 1 1 1 +1 +0 1 0 1 0 1 0 1 0 0 1 0 1 +0 +0 1 0 1 0 0 1 0 1 0 0 0 1 +1 +0 0 1 0 0 0 0 1 1 0 1 0 0 +0 +0 0 0 1 0 0 1 0 1 0 0 1 0 +0 +1 0 0 1 0 0 1 0 0 0 0 0 0 +1 +1 1 0 0 1 1 0 1 1 1 0 0 0 +1 +1 0 0 0 0 1 0 0 0 1 0 1 0 +0 +0 1 0 1 1 1 1 1 1 0 0 0 1 +0 +1 1 1 1 1 0 0 1 0 0 0 0 1 +1 +1 1 0 1 1 0 0 1 1 1 1 1 0 +1 +0 1 1 1 1 0 1 0 0 0 0 1 0 +0 +1 1 0 0 1 1 1 0 1 0 0 0 1 +1 +1 1 0 0 0 0 1 1 0 0 0 0 0 +0 +0 1 0 1 1 1 0 1 1 0 0 1 0 +1 +1 1 0 1 1 0 0 0 0 1 1 0 0 +0 +0 0 1 1 0 1 1 1 0 0 1 1 1 +0 +1 0 0 1 1 0 1 0 0 1 0 0 0 +1 +0 1 0 0 1 0 0 1 1 0 0 1 1 +0 +0 1 1 0 0 0 1 0 0 1 1 0 1 +0 +0 1 1 1 0 1 1 1 0 1 0 0 0 +1 +1 1 1 0 1 0 1 0 0 0 0 0 0 +1 +1 1 1 1 0 0 0 0 1 0 1 0 0 +0 +0 0 1 1 1 0 1 1 1 1 1 1 0 +1 +0 0 0 1 0 0 1 1 0 0 0 0 1 +0 +1 0 0 1 1 1 1 1 1 0 1 1 0 +1 +1 0 0 0 1 0 1 1 0 0 1 1 1 +1 +0 0 1 0 0 1 1 0 0 0 0 0 0 +1 +0 0 0 1 0 1 0 1 1 1 1 0 1 +1 +1 0 1 1 0 0 1 0 0 0 1 0 1 +0 +0 0 1 1 0 1 1 1 0 0 0 0 1 +0 +1 1 1 1 0 1 0 0 0 1 0 1 0 +1 +0 1 1 0 1 1 0 1 0 1 0 0 1 +1 +1 0 1 1 0 0 0 0 1 0 0 0 0 +0 +1 0 0 0 0 0 0 1 1 1 1 1 1 +1 +0 1 1 1 1 0 1 1 1 1 0 1 1 +0 +0 1 0 0 1 0 0 0 1 0 0 1 0 +0 +0 0 1 1 0 0 1 0 1 0 1 1 1 +1 +0 1 0 1 0 0 1 1 1 1 1 1 1 +1 +0 1 1 0 0 1 0 1 1 1 1 0 1 +0 +0 0 0 1 0 0 0 0 1 0 0 1 1 +0 +0 0 0 1 0 1 0 1 1 1 1 1 1 +0 +0 0 1 1 1 0 1 1 1 0 1 0 1 +0 +1 0 1 1 1 0 0 1 0 0 0 0 1 +0 +0 0 1 0 1 0 1 0 0 1 0 0 1 +1 +0 1 1 1 0 1 0 1 1 1 1 0 1 +1 +0 1 1 0 0 1 0 1 0 1 1 0 0 +0 +0 0 0 0 0 0 1 1 1 1 1 0 0 +1 +1 1 0 1 1 0 1 1 0 1 0 1 0 +0 +0 1 0 1 0 1 1 1 1 0 0 1 1 +0 +0 0 0 0 0 0 0 1 1 1 1 0 0 +0 +1 0 0 0 0 1 1 0 1 0 1 0 1 +0 +1 0 1 0 0 0 0 0 0 0 0 1 1 +0 +0 1 0 1 0 1 1 1 1 1 1 0 0 +0 +1 0 0 0 1 0 0 0 0 1 0 1 1 +1 +1 0 1 0 1 1 1 0 1 0 0 0 0 +0 +0 1 1 1 1 1 1 0 0 1 1 1 1 +0 +0 1 0 0 0 0 0 1 1 1 1 0 0 +1 +1 1 1 0 1 1 0 1 1 0 0 1 0 +0 +0 1 0 1 1 0 1 0 1 0 0 1 0 +0 +1 1 1 0 0 0 1 0 0 0 1 0 0 +1 +1 0 1 0 1 0 1 0 0 0 1 1 0 +0 +1 0 1 1 0 0 1 1 0 0 1 0 0 +0 +0 0 0 1 0 0 0 0 1 1 1 1 0 +1 +0 0 0 1 0 0 1 0 0 0 1 0 0 +1 +1 1 1 0 1 1 1 0 0 0 0 0 1 +1 +1 0 1 1 1 1 0 1 1 0 1 0 0 +0 +1 1 1 1 1 0 1 1 1 0 0 0 0 +0 +0 0 1 1 1 1 1 0 0 1 1 1 1 +1 +1 1 0 0 1 1 0 1 1 0 1 1 0 +0 +1 1 0 1 0 1 1 1 0 1 0 1 0 +0 +0 1 0 0 1 0 0 0 0 1 0 1 1 +1 +1 1 0 0 0 0 0 0 0 0 1 1 1 +1 +1 0 1 0 1 1 0 0 0 0 0 1 1 +0 +1 0 0 0 0 0 1 0 0 0 0 1 1 +0 +1 0 0 1 0 0 0 1 0 1 1 0 0 +1 +1 0 1 1 0 0 0 1 1 1 0 1 0 +1 +1 1 0 1 0 0 0 0 1 0 1 1 1 +1 +0 0 1 1 0 0 0 1 0 1 0 1 1 +0 +0 1 1 1 1 0 0 1 1 0 0 1 0 +1 +0 0 1 0 0 0 0 1 0 0 0 1 1 +0 +0 0 1 1 0 0 0 1 0 1 0 0 0 +0 +1 1 1 0 0 1 0 1 0 0 0 1 1 +1 +0 1 0 1 0 0 1 0 1 0 1 0 1 +0 +0 1 1 0 0 1 0 0 1 0 1 1 1 +1 +0 0 0 1 1 1 1 1 1 1 1 1 0 +1 +1 1 0 1 1 1 1 0 1 0 1 1 1 +0 +1 0 1 0 0 0 1 0 0 0 1 0 1 +1 +0 0 1 0 1 0 0 0 0 0 0 1 1 +0 +1 0 0 0 0 0 0 1 1 0 1 1 0 +1 +1 0 0 1 1 1 1 1 1 0 1 0 0 +0 +0 0 1 0 1 0 0 0 1 0 0 0 0 +1 +1 0 0 1 0 1 1 0 1 0 0 1 0 +0 +1 1 1 1 1 1 0 1 0 1 1 0 1 +0 +1 1 0 1 0 1 1 0 1 1 1 1 0 +1 +0 1 0 0 0 1 1 1 1 1 0 1 1 +0 +1 1 0 0 0 0 1 1 1 0 0 1 1 +1 +0 1 1 1 0 1 0 1 1 1 0 0 0 +1 +0 1 1 0 0 1 0 1 1 1 0 1 1 +0 +0 1 0 1 0 0 0 0 0 0 0 0 1 +1 +0 0 0 0 1 0 1 0 0 0 0 0 0 +0 +0 0 0 0 1 0 1 1 0 1 0 0 1 +1 +0 1 1 0 0 0 1 0 0 0 1 1 0 +1 +1 0 1 1 1 1 0 1 1 0 1 1 0 +1 +0 0 1 1 1 0 1 1 0 0 1 1 0 +1 +1 1 1 1 0 1 1 1 1 1 1 0 0 +0 +1 0 0 1 1 0 1 1 0 1 0 0 0 +0 +1 0 1 1 1 1 0 0 1 1 0 0 1 +0 +0 1 1 1 1 1 1 0 1 1 1 0 0 +1 +0 1 0 1 0 1 0 0 1 0 0 0 1 +1 +0 1 1 0 1 0 1 1 0 0 0 1 0 +0 +1 1 1 0 1 0 1 1 0 0 1 1 1 +1 +1 0 0 0 1 1 0 0 1 1 1 1 0 +1 +1 0 1 1 0 0 0 0 0 1 1 0 0 +1 +1 1 1 1 1 1 0 0 0 1 1 0 0 +0 +1 0 0 1 1 0 0 1 1 1 0 0 0 +0 +0 1 1 0 0 1 0 1 1 0 0 1 0 +0 +1 0 0 0 1 1 0 1 1 1 0 1 1 +0 +1 1 1 1 1 1 1 0 0 0 1 1 1 +0 +1 0 1 0 1 1 1 0 1 0 0 1 0 +1 +1 0 1 0 0 1 1 0 0 0 0 0 0 +0 +1 0 1 1 0 0 0 0 1 0 0 0 1 +1 +1 0 1 1 0 0 1 0 1 0 1 0 0 +0 +0 1 1 0 0 0 0 0 0 1 0 1 0 +0 +1 1 1 0 1 0 1 0 1 0 0 1 0 +1 +0 1 1 0 0 0 0 0 1 1 0 1 0 +1 +0 1 0 1 1 0 0 1 1 0 1 0 0 +0 +0 1 1 0 1 1 1 0 0 1 0 1 1 +0 +0 1 1 0 0 1 0 1 1 0 1 1 1 +0 +0 0 1 1 0 0 1 1 0 0 0 0 1 +1 +0 0 1 1 0 0 0 0 1 1 0 0 1 +1 +0 1 0 0 1 0 1 1 1 1 1 0 0 +1 +1 1 0 0 0 1 0 0 1 0 0 0 1 +1 +1 1 0 0 0 1 1 1 0 0 1 0 1 +1 +1 0 0 0 1 0 1 1 1 0 1 0 1 +1 +1 1 1 0 0 0 1 1 1 1 0 0 1 +0 +0 1 1 1 1 1 0 0 0 0 1 0 1 +1 +0 1 1 0 1 1 1 1 1 1 0 0 1 +1 +0 1 1 1 1 1 0 0 0 0 1 1 0 +1 +1 0 0 1 0 0 1 1 1 0 1 0 0 +0 +0 1 1 0 0 0 1 1 1 1 0 1 0 +1 +1 0 0 1 1 0 0 1 0 1 0 1 0 +0 +0 1 1 1 0 0 0 0 0 0 0 0 0 +1 +0 1 0 1 0 1 0 1 0 1 0 0 0 +1 +0 0 1 0 0 0 1 1 0 0 0 0 0 +1 +0 1 0 0 1 1 1 0 1 0 1 0 0 +0 +1 0 0 1 0 0 1 1 0 0 1 1 1 +1 +1 0 1 0 1 1 0 1 0 0 1 1 0 +1 +0 0 1 1 0 0 0 0 0 0 1 0 1 +0 +1 0 0 1 0 0 1 0 1 0 0 1 1 +0 +0 0 1 1 0 1 1 0 0 0 1 1 1 +1 +0 1 1 0 1 1 1 1 0 0 1 1 1 +1 +1 0 0 1 0 0 1 1 1 1 0 1 1 +0 +0 0 1 1 0 0 0 0 1 0 0 1 0 +0 +1 0 0 1 1 1 0 0 0 1 1 0 0 +0 +0 1 0 0 0 0 1 0 0 0 1 0 0 +1 +0 0 1 0 1 1 0 1 1 1 1 1 0 +0 +1 1 1 1 0 0 1 1 1 0 1 1 0 +1 +1 1 0 1 1 1 0 0 1 0 1 0 0 +1 +0 1 1 1 0 1 0 1 1 0 1 1 1 +1 +0 0 1 1 0 0 0 1 1 0 0 1 1 +0 +1 1 1 0 0 1 0 1 0 1 0 0 1 +1 +0 0 1 0 0 0 1 0 1 0 1 0 1 +1 +1 0 1 0 0 0 0 0 0 0 0 0 0 +0 +0 1 1 1 1 1 1 0 0 0 0 0 1 +1 +0 1 0 0 1 0 1 0 1 1 1 0 1 +1 +1 1 0 0 1 0 1 0 1 0 0 1 0 +0 +0 1 1 1 0 1 1 0 1 0 1 1 1 +1 +1 0 1 0 1 0 0 0 1 0 0 1 1 +0 +0 1 0 1 1 0 1 0 1 0 0 1 1 +1 +0 1 0 1 1 0 0 0 1 0 0 0 0 +0 +0 1 1 1 1 0 0 0 0 1 0 0 1 +0 +1 1 0 1 1 0 1 0 1 0 1 0 0 +1 +0 0 0 0 0 1 1 1 1 0 0 1 0 +1 +0 1 1 1 1 0 1 1 1 0 1 1 1 +0 +1 1 0 1 0 1 0 1 0 0 0 1 1 +1 +1 1 0 1 1 0 0 0 1 0 0 1 0 +0 +0 0 0 0 1 0 0 0 0 0 0 1 1 +1 +1 1 0 0 0 0 1 0 1 0 1 1 0 +0 +0 0 0 0 1 0 1 1 0 1 1 1 0 +0 +1 0 0 0 1 0 1 0 1 0 1 0 0 +1 +0 1 0 0 0 1 0 0 1 1 0 0 1 +1 +1 1 1 0 0 1 1 1 0 1 1 1 1 +0 +1 1 1 0 1 1 1 1 0 1 1 0 0 +1 +0 1 0 0 1 0 0 0 0 0 1 1 0 +0 +0 0 0 0 1 1 0 0 0 1 1 1 1 +0 +0 1 0 0 0 1 1 1 1 1 0 0 0 +0 +0 1 1 0 0 1 0 0 1 1 0 1 1 +1 +1 1 0 1 0 1 0 0 0 1 0 0 0 +1 +1 1 0 1 0 1 1 1 1 0 0 1 1 +1 +1 1 0 1 0 0 0 0 0 0 1 1 0 +1 +1 1 0 1 1 1 0 0 0 0 1 0 0 +0 +0 0 0 1 0 0 0 0 1 1 1 1 1 +0 +1 0 1 1 0 0 0 1 0 1 1 0 1 +1 +0 0 0 0 0 1 1 1 1 0 0 0 1 +1 +1 1 0 0 1 1 1 1 1 0 0 0 1 +0 +1 0 1 0 1 1 1 0 0 0 0 1 1 +1 +1 0 0 0 0 0 0 1 0 1 1 0 0 +0 +1 1 1 1 1 0 0 0 0 0 0 1 1 +1 +1 1 0 1 1 1 0 0 0 0 0 0 0 +1 +0 0 0 1 1 1 0 1 0 0 0 0 1 +1 +1 1 1 0 0 0 0 0 0 0 1 0 1 +1 +1 0 0 1 1 1 0 1 1 1 1 1 1 +0 +0 0 0 1 0 1 1 1 1 0 0 1 1 +1 +1 1 0 0 1 0 1 0 0 1 0 1 1 +1 +0 1 0 0 1 1 1 1 0 0 1 0 0 +0 +0 1 0 0 1 1 1 0 1 1 1 0 1 +0 +1 0 1 0 0 0 1 0 0 0 1 0 0 +0 +0 0 1 0 0 0 1 1 0 1 1 1 1 +1 +1 1 1 0 1 0 0 0 1 1 1 1 1 +1 +0 0 0 1 1 1 0 0 1 1 1 1 0 +1 +0 0 0 0 1 1 0 0 0 0 1 0 0 +1 +0 0 1 0 1 1 1 1 0 1 1 1 0 +0 +0 0 0 1 1 1 1 0 1 1 0 0 1 +1 +1 1 0 0 0 0 0 1 0 0 1 1 1 +0 +0 0 1 1 0 1 1 1 1 0 0 0 0 +0 +0 1 0 0 1 0 1 0 0 1 1 1 0 +0 +1 0 1 0 0 0 0 1 1 1 1 1 0 +1 +0 0 1 1 0 0 0 0 1 0 0 0 1 +0 +1 1 0 1 1 0 0 1 1 0 0 0 1 +1 +0 1 1 0 0 1 1 1 0 1 1 1 1 +1 +0 1 0 1 0 1 1 0 1 1 1 0 0 +1 +0 1 0 0 0 1 1 0 0 1 1 0 1 +0 +1 0 1 1 1 0 1 1 0 0 1 1 0 +0 +1 1 1 0 0 1 1 0 0 1 1 1 0 +0 +1 0 0 0 1 1 0 0 1 1 0 1 0 +0 +0 1 1 1 1 0 0 1 0 1 0 0 1 +1 +0 1 0 1 0 0 0 0 0 1 1 0 1 +1 +1 0 0 0 0 1 1 0 1 1 0 1 1 +1 +1 0 0 1 0 1 1 1 1 0 0 0 0 +0 +1 0 1 1 0 1 0 1 1 0 0 0 1 +1 +1 1 0 0 1 1 0 0 0 1 1 1 0 +1 +0 0 1 1 1 0 0 1 0 0 0 0 1 +1 +0 0 0 0 1 1 1 1 1 0 1 0 0 +0 +0 0 1 0 0 1 1 1 0 0 0 1 1 +0 +0 1 1 0 1 1 1 0 0 0 1 1 1 +0 +0 1 1 0 1 0 1 1 0 1 0 0 1 +1 +1 1 0 1 0 0 0 0 0 1 1 1 0 +0 +1 1 0 1 1 0 1 1 1 1 1 1 1 +1 +1 1 1 0 1 0 1 0 1 1 1 0 0 +0 +0 0 1 1 0 1 0 0 1 1 1 1 0 +1 +1 0 0 0 0 1 0 1 0 1 0 1 0 +1 +1 0 1 0 0 1 0 0 1 0 0 1 1 +0 +0 1 1 1 0 0 1 0 1 1 1 0 1 +0 +1 0 1 0 0 1 0 1 0 0 1 1 0 +0 +1 1 1 1 0 0 1 1 0 0 0 1 1 +0 +1 1 0 1 0 1 1 1 0 1 0 0 1 +0 +0 1 0 0 1 0 1 0 0 0 1 1 0 +1 +0 1 1 0 0 0 1 0 1 0 0 1 1 +0 +1 1 0 1 1 0 1 0 0 1 1 0 0 +1 +0 1 1 0 1 0 1 0 1 1 0 0 0 +0 +0 0 0 0 1 1 0 0 0 1 0 1 1 +1 +1 0 1 0 1 0 1 1 0 0 0 1 1 +1 +1 1 0 0 1 1 0 0 0 0 0 1 0 +1 +1 1 0 1 0 0 0 0 1 1 0 0 1 +0 +1 0 0 0 0 1 1 0 1 0 1 1 0 +0 +0 0 1 1 1 1 0 0 0 1 1 1 1 +0 +1 0 0 0 1 0 0 0 0 1 0 0 0 +1 +0 0 1 1 1 1 1 1 1 0 1 0 0 +0 +0 0 1 1 0 1 1 1 1 1 1 0 1 +1 +0 0 1 1 0 0 0 0 0 0 1 1 0 +0 +0 0 1 0 1 1 1 1 1 0 1 1 1 +1 +1 1 0 0 1 0 0 1 1 0 1 1 0 +1 +1 1 1 1 0 1 1 0 1 1 0 1 1 +0 +1 0 1 0 0 1 0 0 1 1 0 0 0 +1 +1 0 0 1 0 0 1 0 1 0 1 1 0 +0 +0 0 1 1 1 0 0 0 1 1 1 0 0 +0 +0 0 1 1 0 1 1 1 0 1 1 0 1 +0 +0 0 0 1 0 1 1 0 1 0 0 0 0 +0 +1 0 0 0 1 0 1 1 1 0 0 1 0 +0 +0 1 0 1 0 0 0 0 1 0 0 0 0 +1 +0 0 1 1 0 0 1 1 0 1 0 0 0 +1 +0 1 1 1 0 0 0 1 1 1 0 1 1 +0 +1 0 0 1 1 1 0 1 1 0 0 1 0 +1 +1 0 1 0 1 1 0 0 0 1 0 0 1 +0 +0 1 1 1 0 0 1 0 0 0 1 1 1 +1 +0 1 1 1 0 0 0 0 1 0 1 1 1 +1 +1 1 1 1 0 0 0 1 0 1 0 1 1 +0 +0 1 0 0 1 1 0 0 0 1 0 1 0 +1 +1 1 0 0 0 0 0 1 1 1 1 1 0 +1 +0 0 0 1 1 1 1 1 1 1 1 0 0 +0 +0 0 1 1 1 1 0 0 1 1 1 0 1 +0 +0 0 1 0 1 0 0 0 1 0 0 1 1 +1 +0 1 1 0 1 1 1 0 0 1 1 0 1 +0 +1 0 0 0 0 0 0 1 0 0 0 0 0 +0 +1 1 1 1 0 1 1 0 0 1 1 0 0 +0 +0 1 1 1 0 0 0 1 1 1 1 1 1 +1 +1 1 1 1 0 0 1 0 0 1 0 0 0 +0 +1 1 0 1 0 1 1 1 0 0 0 0 0 +0 +0 0 0 1 0 0 1 1 0 1 1 0 1 +0 +0 1 0 0 1 1 0 1 1 0 1 1 0 +1 +0 1 1 0 0 1 1 0 0 1 1 0 0 +0 +1 0 0 0 1 0 0 0 1 0 1 1 0 +1 +0 1 1 1 1 1 1 1 1 0 1 1 1 +1 +0 1 1 1 0 0 1 1 1 0 1 1 1 +1 +0 0 0 1 1 1 0 1 1 0 1 1 0 +1 +0 0 1 1 1 0 0 1 1 0 1 1 0 +1 +0 1 1 1 0 1 0 1 1 0 1 0 1 +0 +1 0 1 1 0 1 1 0 0 0 0 0 0 +1 +0 0 1 0 1 0 1 1 1 0 0 0 0 +1 +0 1 1 0 1 0 1 0 1 1 1 1 1 +1 +1 1 0 0 0 0 1 0 0 0 0 0 0 +1 +0 0 1 0 1 1 0 1 1 0 0 1 0 +0 +1 0 1 0 1 0 1 1 1 0 0 1 0 +1 +1 0 1 1 1 1 0 1 1 1 0 1 1 +0 +0 1 0 0 1 1 0 0 1 0 1 0 0 +1 +1 0 0 0 0 1 0 0 0 1 1 1 1 +0 +1 0 0 0 0 0 1 0 0 1 0 1 1 +1 +0 1 1 0 1 0 1 1 1 1 0 0 1 +0 +1 0 1 1 0 0 0 1 1 1 1 1 0 +0 +1 0 1 0 0 1 0 1 1 0 0 1 0 +0 +1 1 0 1 1 0 1 0 1 0 1 0 1 +0 +1 1 0 1 1 1 0 1 1 0 1 0 0 +0 +0 0 0 0 0 0 1 1 1 0 0 1 0 +0 +1 0 0 1 0 1 1 0 0 0 1 1 0 +0 +1 0 1 1 1 0 0 1 0 1 0 1 1 +0 +0 0 0 1 1 1 1 1 0 1 1 1 1 +1 +0 1 0 0 0 1 1 1 0 0 1 0 0 +1 +1 0 0 0 0 1 1 1 0 1 0 1 0 +0 +0 0 0 1 1 1 0 1 0 1 1 1 0 +1 +1 0 0 1 1 1 0 1 0 1 1 1 0 +0 +1 0 1 0 1 1 0 1 1 0 1 1 1 +1 +0 1 1 1 0 0 1 1 1 0 0 1 1 +0 +1 0 1 1 1 0 0 0 0 1 0 1 0 +0 +0 1 0 0 0 0 0 0 0 1 0 1 0 +1 +0 0 1 1 0 1 0 1 1 0 1 1 1 +0 +0 1 1 1 0 1 0 1 0 1 1 0 0 +1 +0 0 1 0 1 0 1 0 0 0 1 0 0 +0 +1 1 1 1 0 0 0 0 0 0 1 1 1 +1 +1 1 0 0 1 1 1 0 1 1 0 1 0 +0 +1 1 0 1 0 1 0 0 0 0 1 1 0 +0 +0 0 1 1 0 1 0 0 1 0 1 0 0 +1 +0 1 1 1 0 0 0 0 1 1 1 0 1 +1 +1 0 0 1 1 1 0 0 0 0 1 1 1 +1 +0 1 0 1 1 1 0 0 0 0 0 1 0 +1 +1 0 1 0 0 1 1 1 1 1 1 0 1 +1 +0 1 0 0 0 1 0 1 1 0 1 1 1 +1 +1 0 0 1 0 0 0 0 1 0 0 0 1 +0 +0 1 1 1 0 0 0 1 0 1 1 1 1 +0 +1 1 0 0 0 0 0 1 1 0 1 0 1 +0 +0 0 0 0 1 1 1 1 1 1 1 0 1 +0 +1 1 1 1 1 1 0 0 0 0 1 0 0 +1 +0 1 1 0 1 0 1 0 0 0 1 1 0 +0 +0 1 1 0 0 1 0 1 1 1 0 1 0 +1 +0 1 0 0 1 1 1 0 1 1 0 0 0 +0 +1 0 0 1 1 1 1 1 0 1 1 0 0 +0 +0 1 1 0 1 1 0 0 1 1 0 0 0 +0 +0 1 0 1 1 0 0 0 0 0 0 0 1 +0 +0 0 1 0 1 1 0 0 0 0 1 1 0 +1 +1 0 0 0 1 0 1 0 1 1 0 1 1 +1 +1 1 0 1 0 0 0 0 1 0 1 0 1 +0 +1 1 0 1 1 0 1 0 1 0 1 1 0 +0 +1 1 1 1 0 1 1 0 0 1 0 1 1 +1 +1 1 0 0 0 1 1 0 0 0 1 0 1 +0 +1 1 0 0 1 0 1 1 1 1 1 0 1 +1 +0 1 1 0 1 1 0 0 0 1 0 1 0 +0 +1 1 1 0 1 1 0 0 1 0 0 1 1 +0 +0 1 0 0 0 0 0 0 1 0 0 0 1 +1 +0 0 0 0 0 0 0 1 1 1 1 1 1 +0 +1 0 1 1 0 0 1 1 0 0 1 0 1 +1 +1 1 0 1 1 0 0 1 0 1 1 1 0 +0 +0 1 1 0 0 1 0 1 0 0 1 0 0 +1 +0 1 1 0 0 0 1 0 0 0 1 1 1 +0 +1 0 0 0 1 0 0 1 0 0 1 1 1 +0 +1 1 0 1 1 1 1 1 0 0 1 0 1 +1 +1 0 1 0 0 0 0 1 0 0 0 1 0 +0 +0 0 1 0 1 0 0 0 1 0 1 0 0 +0 +0 0 1 1 1 0 0 0 0 0 1 1 1 +0 +1 1 1 0 1 1 1 0 1 0 1 1 0 +1 +0 0 1 0 0 1 1 1 0 1 0 0 0 +1 +0 0 0 0 0 0 0 0 1 1 1 1 0 +0 +1 0 0 0 0 0 0 1 1 1 1 0 1 +0 +1 0 0 0 0 1 0 0 1 0 0 1 1 +1 +0 0 0 1 1 0 0 1 0 1 0 0 0 +0 +1 0 0 0 0 0 0 1 1 0 1 0 0 +0 +1 0 1 0 0 1 0 1 1 1 0 1 1 +0 +1 1 1 0 0 0 0 1 1 0 0 1 1 +1 +0 0 0 0 1 0 0 1 1 0 0 0 0 +1 +1 0 0 1 0 1 0 0 0 1 0 1 0 +1 +0 0 0 0 1 1 0 0 1 1 1 1 0 +0 +0 1 0 0 0 0 1 1 0 0 1 0 1 +1 +1 1 0 1 1 1 0 0 1 1 0 0 1 +0 +0 1 0 1 1 1 0 0 1 1 1 1 0 +0 +1 1 0 0 0 0 0 0 0 0 1 0 1 +0 +1 0 0 0 0 1 1 0 0 1 0 0 0 +0 +1 0 0 1 0 0 1 1 1 0 0 1 0 +0 +0 1 1 1 0 1 0 0 1 1 1 1 0 +0 +1 1 0 0 0 1 1 1 1 0 0 0 1 +1 +1 0 1 1 0 1 1 1 1 1 0 1 0 +1 +1 1 0 1 1 0 1 0 0 0 0 0 0 +1 +1 0 1 1 1 1 1 1 0 1 0 1 1 +0 +1 0 0 1 1 0 1 0 0 0 0 0 1 +1 +1 0 0 1 0 0 0 0 0 0 0 1 0 +1 +0 1 1 0 1 0 0 1 0 0 1 1 0 +0 +0 0 1 1 1 0 1 0 1 1 0 0 0 +0 +0 1 0 0 1 1 1 1 1 1 0 1 1 +1 +1 1 1 1 1 1 0 1 1 1 1 0 1 +1 +1 1 1 0 1 1 0 0 1 0 1 0 0 +1 +1 0 0 1 1 1 1 0 1 0 1 0 0 +1 +0 1 0 0 0 0 0 1 1 1 0 1 1 +0 +1 0 0 1 1 1 1 1 1 1 0 1 1 +0 +0 1 1 0 0 1 0 0 1 1 0 0 1 +0 +1 1 1 0 1 0 1 1 0 0 1 0 1 +0 +0 0 1 1 0 1 0 1 0 1 1 1 0 +1 +1 0 0 0 0 0 0 0 1 1 0 1 1 +1 +1 1 0 1 1 1 0 1 1 1 0 0 1 +1 +0 1 0 0 1 0 0 0 0 0 1 1 1 +1 +1 0 1 1 1 1 1 1 1 1 0 1 1 +1 +0 0 0 1 1 0 0 1 1 1 0 0 0 +1 +1 0 1 1 0 1 1 0 1 0 0 0 0 +0 +1 0 1 1 0 0 0 0 0 0 0 0 1 +0 +0 0 0 1 0 0 1 0 1 0 0 1 1 +1 +0 1 0 0 0 0 1 0 0 0 0 1 0 +1 +1 1 1 1 1 1 1 1 0 1 1 1 1 +0 +1 1 0 0 0 1 1 1 1 1 0 1 1 +1 +0 1 0 0 0 0 1 0 1 0 1 0 1 +1 +0 0 0 1 1 0 1 0 0 1 1 0 0 +1 +0 0 0 0 0 0 0 1 0 0 1 1 0 +1 +0 0 1 0 0 0 1 1 1 0 1 0 1 +0 +1 0 0 1 1 1 0 1 0 0 1 0 1 +1 +0 0 1 1 1 0 0 1 0 0 1 1 1 +1 +0 0 0 1 0 1 0 1 0 1 1 1 0 +0 +1 1 1 1 1 0 1 0 1 0 1 0 0 +0 +0 1 1 1 1 0 0 1 1 1 1 1 1 +0 +0 0 0 0 1 1 0 0 1 1 1 1 1 +1 +1 0 0 1 0 0 0 1 0 0 0 1 0 +0 +0 1 0 0 1 0 0 1 0 0 0 1 1 +1 +1 0 0 1 0 1 0 0 0 0 0 1 1 +1 +1 0 0 0 0 0 1 1 1 1 1 1 1 +0 +0 1 0 1 0 1 0 1 0 1 1 1 1 +0 +1 1 0 1 0 1 0 0 1 0 1 0 1 +1 +0 0 0 1 1 0 1 0 1 0 1 0 0 +1 +1 0 0 0 0 1 0 1 1 0 1 0 0 +1 +0 1 0 0 0 0 0 1 0 0 1 1 0 +0 +1 0 1 1 1 0 0 1 1 0 0 0 1 +1 +0 0 1 0 1 0 0 1 1 0 0 1 0 +1 +1 1 1 1 1 1 1 0 1 0 0 1 0 +1 +1 1 1 0 1 1 0 0 0 1 1 0 0 +1 +1 1 1 1 0 0 1 1 0 1 1 0 1 +1 +0 1 1 0 0 1 1 1 1 1 0 1 0 +0 +1 0 0 1 1 1 1 0 1 0 1 1 0 +0 +1 0 0 0 0 0 0 0 1 1 1 0 1 +1 +1 1 1 1 1 1 1 1 1 0 0 0 1 +0 +0 0 0 0 1 1 1 0 1 0 0 1 0 +1 +1 1 1 0 0 1 1 0 1 1 0 0 1 +0 +0 0 0 0 0 0 1 1 0 0 1 1 0 +0 +0 0 0 1 0 0 1 0 0 1 0 0 0 +1 +0 0 1 1 0 0 1 1 0 0 0 1 1 +0 +1 0 0 1 0 1 1 0 1 0 0 0 1 +0 +1 0 1 0 1 1 1 0 0 1 0 0 0 +0 +1 0 0 1 0 0 1 1 0 0 1 0 1 +0 +1 1 0 0 0 0 0 0 1 1 1 0 1 +0 +1 1 1 0 0 0 0 0 1 1 1 1 1 +0 +0 0 0 0 0 0 0 0 0 1 0 1 0 +0 +0 1 0 0 0 0 1 1 0 1 0 1 1 +0 +0 1 0 1 1 1 0 1 0 1 1 1 0 +0 +1 1 0 0 0 1 1 1 1 1 1 0 1 +1 +1 1 0 1 1 1 1 1 0 1 1 0 1 +0 +0 1 0 1 0 0 0 0 1 0 0 0 1 +0 +1 0 0 0 1 1 1 1 1 1 1 1 0 +1 +0 0 0 0 0 0 1 0 1 1 1 0 0 +0 +1 0 1 1 1 0 1 1 0 1 1 1 1 +0 +1 0 1 1 1 1 1 0 0 0 1 1 0 +0 +0 0 1 1 0 0 0 1 1 0 0 0 0 +0 +1 1 0 1 0 1 1 1 0 0 0 1 1 +0 +1 1 0 0 1 0 0 0 0 0 1 1 0 +1 +1 0 1 0 1 1 0 1 0 1 1 1 1 +1 +0 1 1 1 1 0 0 0 0 1 0 1 0 +0 +1 0 1 0 1 1 0 0 0 0 1 1 1 +1 +1 1 0 1 0 0 1 1 1 1 0 1 0 +0 +0 0 1 1 0 1 1 0 1 1 0 0 1 +1 +0 0 1 0 0 1 0 0 1 1 0 1 1 +0 +0 0 0 1 0 0 0 1 0 1 1 1 1 +0 +1 0 0 0 1 1 0 0 1 0 1 1 1 +1 +1 1 0 0 1 0 0 0 1 0 1 1 1 +1 +0 0 1 1 0 1 1 0 1 0 0 1 0 +0 +1 0 1 1 1 1 1 1 1 1 1 0 0 +0 +1 0 0 1 0 0 0 0 1 1 1 0 1 +0 +1 1 0 0 1 1 1 0 1 1 0 1 1 +1 +0 0 0 0 1 1 0 1 0 1 0 1 1 +0 +0 1 1 0 0 0 1 1 1 0 1 0 1 +1 +0 1 0 0 0 0 1 0 0 1 1 0 0 +0 +0 0 0 1 0 1 1 1 1 0 1 0 0 +0 +0 0 1 1 0 1 0 1 0 1 1 1 1 +0 +1 1 1 1 0 1 1 1 0 1 0 1 1 +0 +0 0 1 0 0 1 1 0 1 0 0 0 1 +1 +0 1 1 1 0 0 1 0 1 1 0 1 0 +1 +0 0 0 1 0 1 0 0 0 0 1 1 1 +1 +1 1 1 1 0 0 1 0 1 0 0 0 1 +1 +1 0 0 1 1 1 0 1 0 1 1 0 1 +0 +0 0 0 1 1 0 0 1 0 1 0 0 1 +1 +0 1 1 1 0 0 0 1 0 1 0 1 0 +0 +0 0 0 1 1 0 1 1 1 1 0 0 1 +1 +0 0 0 0 0 1 0 1 1 1 0 1 1 +0 +1 0 0 0 1 1 1 1 0 0 0 1 1 +1 +0 0 1 0 1 1 1 0 0 1 1 1 0 +1 +1 1 1 1 0 0 1 1 0 1 0 0 0 +1 +1 0 0 0 1 1 0 0 1 1 0 0 1 +0 +1 0 0 0 1 0 1 0 0 0 1 1 1 +0 +0 0 1 1 1 0 0 0 1 0 1 1 1 +1 +0 1 1 0 1 1 0 1 0 1 0 1 0 +1 +0 1 1 1 0 1 0 0 0 1 0 1 1 +1 +1 1 0 0 1 0 1 1 0 0 1 1 0 +1 +1 0 1 1 1 0 1 1 0 0 0 0 1 +1 +1 0 1 0 1 1 0 1 1 1 1 0 1 +1 +1 0 1 0 1 0 1 0 1 1 1 1 0 +0 +1 1 1 1 1 0 0 0 0 0 0 1 0 +0 +1 1 1 0 1 1 1 0 1 1 1 1 1 +1 +0 0 0 0 1 1 0 0 0 0 0 0 1 +1 +1 0 0 0 1 1 1 0 0 0 0 1 0 +1 +1 1 1 1 0 1 0 1 1 0 0 1 1 +1 +0 0 0 0 0 1 0 1 1 0 1 0 1 +1 +0 1 1 1 1 0 1 1 0 1 1 0 0 +0 +0 0 1 0 0 0 1 0 0 0 1 1 0 +0 +0 1 1 0 0 1 0 1 1 1 0 0 1 +1 +1 0 0 0 1 1 1 0 1 0 0 1 0 +0 +0 1 1 1 1 0 1 0 0 0 1 0 0 +0 +1 0 0 1 0 0 1 1 0 1 0 0 1 +0 +1 1 0 0 0 1 0 0 1 1 1 0 0 +0 +0 1 1 0 0 0 0 0 0 1 1 0 1 +1 +1 0 1 1 0 1 1 0 0 0 1 1 1 +0 +1 1 1 1 1 0 1 1 0 1 1 1 0 +0 +0 1 1 1 1 1 0 1 1 1 0 1 1 +0 +0 1 0 1 1 1 0 1 0 1 0 0 0 +0 +0 1 1 1 0 1 1 1 1 0 0 0 0 +1 +0 0 1 0 1 1 1 0 1 0 1 1 1 +0 +1 0 1 1 0 0 0 1 0 0 0 0 0 +0 +1 0 1 1 0 0 1 0 1 1 0 0 1 +1 +1 1 0 1 1 1 1 0 0 1 0 0 1 +0 +1 0 0 1 1 1 0 0 1 1 0 1 1 +0 +1 1 0 0 0 0 0 1 0 0 1 0 1 +1 +0 0 1 0 1 0 1 1 0 0 1 0 0 +1 +1 1 0 0 1 1 1 0 0 1 1 1 1 +1 +0 0 1 1 0 0 0 1 1 0 1 0 0 +1 +1 1 1 1 1 0 0 1 0 0 0 1 0 +1 +1 0 1 0 0 0 1 0 1 0 1 1 0 +0 +1 1 1 1 1 0 1 1 1 1 0 1 1 +1 +0 0 1 1 1 1 0 1 1 0 1 1 1 +1 +1 1 0 1 0 1 1 1 1 0 0 0 0 +1 +0 1 0 1 1 1 0 0 1 0 0 0 1 +0 +1 1 0 0 0 1 1 0 0 0 1 1 0 +0 +1 1 0 1 1 1 0 0 1 0 0 1 1 +0 +0 0 1 1 0 0 1 1 0 1 1 0 0 +0 +1 0 0 0 0 1 1 0 0 0 1 1 0 +1 +0 1 0 0 0 1 1 1 1 0 0 1 1 +1 +1 0 1 0 0 0 0 0 0 1 1 0 0 +0 +0 0 1 0 0 0 1 0 0 1 0 0 0 +1 +1 0 0 0 1 0 0 0 0 0 0 1 0 +1 +1 1 0 1 0 0 1 0 0 1 0 1 0 +0 +0 1 0 0 0 1 1 0 0 0 1 0 0 +0 +0 1 0 1 0 0 1 1 0 0 1 1 0 +0 +1 1 0 1 0 0 0 0 1 0 1 0 0 +1 +1 1 0 1 1 1 1 1 1 1 1 1 1 +0 +0 0 1 0 0 1 0 1 0 0 1 0 0 +0 +0 1 0 0 0 0 0 0 0 1 1 0 0 +1 +0 0 1 0 1 1 0 1 1 0 0 0 0 +1 +0 1 1 1 1 0 0 1 1 1 0 1 1 +1 +0 1 0 1 0 0 1 1 0 0 1 1 1 +1 +1 1 0 1 0 1 1 1 0 0 1 0 1 +0 +0 1 1 0 1 0 1 0 0 0 0 0 1 +1 +0 1 0 0 1 1 0 0 0 0 0 1 1 +1 +1 1 0 1 1 1 0 0 0 1 1 1 1 +1 +1 1 0 1 1 1 0 1 1 0 1 0 1 +1 +0 0 1 1 1 0 0 1 0 0 0 1 1 +0 +0 1 0 1 1 1 1 1 1 1 0 1 0 +1 +1 1 1 0 0 1 0 0 1 1 0 1 1 +0 +1 1 1 0 0 0 0 0 1 1 1 0 1 +1 +1 0 1 0 0 1 1 1 0 1 0 1 1 +0 +0 1 1 1 0 1 1 1 1 1 1 1 0 +0 +0 1 1 1 1 0 0 0 1 1 0 0 1 +1 +1 0 1 0 0 0 0 0 1 0 1 0 0 +0 +1 1 1 0 0 1 1 1 1 0 1 0 0 +0 +0 0 0 0 0 0 0 0 1 0 0 0 1 +0 +0 0 0 1 1 1 1 1 0 0 0 0 1 +0 +1 0 0 1 1 0 1 1 1 0 1 0 1 +0 +0 0 0 0 1 1 0 1 0 0 0 0 1 +0 +1 1 1 0 1 0 0 0 0 1 1 1 0 +1 +1 1 1 0 1 1 1 1 0 0 0 1 0 +0 +0 0 1 0 1 1 1 0 1 1 1 0 1 +0 +0 1 0 1 1 0 0 1 0 1 1 0 1 +1 +1 1 0 1 0 0 1 1 1 1 0 0 1 +0 +0 1 1 0 1 1 0 1 0 0 0 1 1 +1 +0 0 1 1 0 0 0 0 0 0 1 1 1 +1 +0 0 0 1 1 0 1 0 0 0 0 0 0 +1 +0 0 0 1 0 1 0 1 1 0 1 1 1 +1 +0 0 1 1 1 0 0 1 0 0 0 0 0 +0 +0 0 0 1 1 0 0 1 1 1 0 1 1 +1 +0 0 1 0 0 1 0 0 0 0 1 1 0 +0 +0 0 1 0 1 0 1 1 1 1 0 1 0 +1 +1 0 0 0 0 0 0 0 0 1 0 1 1 +0 +1 0 0 0 1 1 0 1 0 0 1 0 1 +0 +1 1 0 1 0 1 1 1 1 1 1 0 1 +0 +1 0 1 0 1 0 1 0 1 0 0 1 1 +1 +1 1 1 0 1 0 1 1 1 0 0 0 0 +1 +0 0 0 1 1 1 0 0 1 1 0 0 0 +1 +0 0 1 1 0 1 1 1 0 0 0 0 0 +1 +0 1 0 1 0 1 1 0 1 1 0 1 0 +1 +1 1 1 0 0 1 1 1 1 0 1 1 1 +0 +0 0 1 1 1 1 0 1 1 1 1 1 0 +1 +1 1 0 1 1 1 1 1 1 0 1 0 1 +0 +1 0 0 1 1 1 0 0 0 0 1 0 0 +1 +1 1 1 1 0 1 1 0 1 0 1 0 1 +1 +0 1 1 0 1 1 0 0 1 0 0 1 1 +1 +0 1 0 1 1 0 1 1 1 1 1 0 0 +0 +0 0 1 1 1 1 1 1 0 1 1 0 1 +1 +0 1 1 0 0 0 1 1 1 0 1 0 0 +0 +0 1 1 1 1 1 0 0 1 0 1 0 1 +0 +1 1 0 1 0 1 0 1 1 0 0 0 1 +1 +1 0 0 1 0 1 0 0 0 1 1 0 0 +1 +1 0 1 1 0 1 1 1 0 0 0 0 0 +0 +0 1 0 0 1 0 0 0 1 1 0 0 1 +1 +1 0 0 1 0 1 1 0 0 1 1 0 1 +1 +0 0 1 0 0 0 1 0 0 1 0 1 0 +0 +1 1 0 0 0 1 0 1 0 1 0 0 1 +0 +0 1 1 1 0 0 1 0 0 0 1 1 0 +0 +0 0 1 1 1 1 1 0 0 0 1 1 1 +0 +0 1 1 1 0 1 1 0 0 1 0 1 1 +0 +1 1 1 1 0 1 0 0 1 0 0 1 0 +1 +1 0 1 1 0 1 0 0 0 1 0 0 0 +1 +0 1 1 1 0 1 1 0 0 1 1 1 1 +1 +1 0 1 1 1 0 0 0 0 1 0 1 1 +1 +0 0 1 1 0 0 0 0 0 0 0 1 0 +1 +0 1 0 0 1 1 0 1 0 1 0 0 1 +0 +0 1 0 1 1 1 1 1 0 0 1 1 0 +0 +0 1 1 1 0 1 1 1 1 0 0 1 0 +0 +1 0 0 0 0 1 1 0 1 1 0 0 1 +0 +1 0 1 0 0 0 0 1 1 1 0 0 0 +1 +0 1 1 1 0 1 0 0 1 1 1 1 1 +1 +1 0 1 0 1 0 1 0 1 1 0 1 0 +1 +1 0 1 0 0 1 1 0 0 0 0 0 1 +1 +0 0 0 0 1 0 1 0 0 1 0 0 0 +1 +0 1 0 0 1 0 1 0 0 1 0 1 0 +1 +1 1 0 1 0 0 1 0 0 1 0 1 1 +1 +1 0 0 1 0 1 0 0 0 0 0 0 1 +0 +1 1 0 0 0 1 1 0 1 0 0 1 1 +1 +1 0 0 1 0 0 0 1 1 0 0 1 1 +0 +1 1 1 1 1 1 1 0 1 0 1 0 0 +1 +1 0 1 1 1 0 0 1 1 0 0 1 0 +1 +1 0 1 0 1 0 0 0 0 0 1 1 1 +0 +0 1 0 0 0 0 1 1 1 0 1 1 0 +0 +0 1 0 1 0 0 0 1 1 1 1 0 1 +1 +0 0 1 0 0 1 1 1 0 0 0 0 1 +1 +1 0 0 0 0 1 0 1 1 0 1 1 0 +0 +0 1 0 1 0 0 0 1 0 1 0 0 0 +0 +0 0 0 1 1 1 1 1 0 1 0 0 0 +0 +0 1 0 1 1 0 1 1 1 0 1 0 0 +1 +1 1 0 1 0 0 0 0 1 0 0 0 1 +1 +0 1 1 0 0 1 1 0 1 0 1 1 1 +0 +0 1 1 1 0 1 0 1 1 1 0 1 0 +0 +0 0 0 1 1 1 0 1 1 1 0 0 0 +0 +0 0 0 1 1 1 1 1 1 1 0 1 1 +1 +0 0 1 1 0 1 0 0 0 1 1 1 1 +1 +0 1 0 1 1 1 0 1 1 1 1 0 1 +1 +1 0 1 1 1 1 1 0 0 0 0 0 0 +0 +1 1 0 1 1 0 1 0 0 0 1 0 1 +1 +0 1 0 0 1 0 1 0 0 1 1 0 0 +1 +1 0 1 1 1 1 0 1 1 0 1 1 1 +0 +0 1 0 0 1 0 1 0 0 0 1 1 1 +0 +1 0 1 1 1 1 0 1 1 0 1 0 1 +1 +0 1 1 0 1 0 0 0 1 0 0 1 0 +1 +1 0 0 0 1 1 1 0 1 0 0 1 1 +1 +0 1 0 1 0 0 1 1 1 1 0 1 0 +1 +0 1 1 0 0 1 0 1 0 0 0 1 0 +1 +1 0 0 1 1 0 1 1 0 0 1 1 0 +1 +1 1 1 1 0 1 0 1 1 0 0 1 0 +0 +1 0 0 0 0 0 1 1 1 0 1 1 1 +1 +0 1 1 0 1 1 0 0 0 1 1 0 1 +1 +1 1 1 0 1 0 0 0 1 0 1 0 1 +1 +0 1 0 1 1 1 0 0 0 0 1 1 0 +0 +0 1 0 1 0 0 0 1 0 1 1 1 1 +1 +0 1 1 0 1 0 1 0 1 0 0 0 0 +1 +0 1 1 1 0 0 0 0 0 1 0 1 0 +1 +0 0 1 0 0 1 0 0 0 0 0 1 0 +1 +0 1 0 0 1 0 1 1 1 1 0 0 1 +1 +0 1 0 1 1 0 0 1 0 1 1 1 0 +1 +0 1 0 1 1 0 0 1 1 1 0 1 1 +0 +0 0 1 1 0 1 0 0 0 0 0 1 1 +1 +1 1 1 0 0 0 1 1 1 1 1 0 0 +0 +0 0 0 1 0 0 1 0 0 1 1 1 1 +0 +1 0 0 1 1 1 0 0 1 0 0 0 0 +1 +0 0 1 1 1 0 1 1 1 0 1 1 0 +0 +1 0 0 0 1 1 0 0 0 1 1 1 1 +1 +1 1 0 1 1 0 0 0 1 1 1 1 0 +0 +1 1 0 0 1 1 1 1 0 1 1 0 0 +0 +1 0 1 1 0 0 1 1 0 1 0 1 1 +0 +1 0 1 0 0 0 1 1 1 0 0 1 1 +1 +0 0 0 1 1 1 1 0 1 0 1 0 1 +1 +1 1 1 1 1 1 1 1 1 1 1 0 1 +0 +0 0 0 1 0 1 0 0 1 1 1 1 1 +1 +1 1 1 0 0 0 1 1 1 0 0 1 1 +0 +0 1 0 0 0 1 1 0 1 1 0 0 0 +1 +1 0 0 1 1 0 0 1 0 0 0 1 1 +0 +0 1 1 0 1 0 0 0 0 0 1 0 1 +1 +0 0 1 0 1 0 1 0 0 0 0 1 1 +1 +1 0 0 1 0 1 1 0 1 1 1 0 0 +1 +1 0 0 0 0 1 0 0 0 0 0 1 0 +1 +0 0 0 1 0 1 1 0 1 1 0 0 1 +0 +1 0 1 1 1 1 1 0 0 1 1 1 1 +0 +1 1 0 1 1 1 0 1 1 1 1 0 0 +1 +0 1 0 0 1 0 1 1 0 0 1 1 0 +0 +1 1 1 0 1 1 0 0 0 0 0 1 1 +1 +1 0 1 0 0 1 0 0 0 0 1 1 1 +0 +1 1 0 0 1 0 1 1 0 0 1 0 0 +0 +0 0 1 1 1 1 1 1 1 1 0 0 1 +1 +0 1 0 0 1 0 0 1 0 1 0 1 0 +1 +1 0 0 0 1 1 0 1 0 0 1 1 0 +0 +0 0 1 0 1 1 0 1 1 0 1 1 1 +0 +0 1 1 0 0 0 0 0 0 0 1 1 0 +0 +1 1 1 0 1 0 1 1 0 0 0 1 1 +0 +1 1 0 0 1 1 1 1 1 0 0 1 0 +0 +1 1 0 0 1 1 0 0 1 0 1 0 0 +0 +1 1 0 0 0 1 1 1 1 0 1 1 1 +1 +1 0 1 0 0 0 1 1 1 0 0 0 1 +0 +1 1 1 0 0 1 0 0 0 0 0 0 1 +1 +1 0 0 0 0 0 1 0 1 0 0 1 1 +1 +1 0 1 0 1 0 0 1 0 1 1 0 1 +1 +0 0 0 0 0 0 1 1 1 0 1 0 0 +0 +0 1 1 1 0 0 1 1 0 1 1 0 0 +1 +1 1 1 1 1 0 1 1 0 0 0 1 1 +1 +1 1 1 0 0 0 0 1 0 0 0 1 0 +1 +1 0 1 1 0 0 1 1 1 1 0 1 0 +0 +0 1 0 1 1 1 1 1 1 1 0 1 1 +0 +1 1 0 1 1 1 1 1 0 1 1 1 0 +0 +0 1 0 1 1 1 0 0 0 0 1 1 1 +1 +1 1 1 1 1 1 0 1 0 1 1 0 0 +1 +0 1 1 1 1 0 0 1 1 0 1 0 1 +0 +1 0 0 1 1 0 1 0 0 0 1 1 0 +0 +1 1 0 1 1 1 1 0 0 1 0 1 1 +1 +0 1 0 0 1 1 0 0 0 0 1 1 1 +0 +0 1 0 0 1 0 0 0 0 1 1 1 1 +0 +0 1 1 1 1 1 1 1 0 0 0 0 1 +0 +0 1 0 0 0 0 0 0 1 0 0 0 0 +0 +0 1 0 0 1 1 0 1 0 1 1 0 0 +0 +0 0 0 0 0 0 1 0 0 1 1 0 1 +0 +0 1 1 1 0 0 1 1 0 1 0 1 1 +0 +0 1 1 0 0 0 1 0 0 0 0 1 1 +1 +1 1 1 0 0 0 1 1 0 1 1 1 1 +1 +0 1 1 0 0 1 1 0 0 1 0 0 0 +1 +1 0 0 1 1 1 1 1 1 0 1 1 1 +0 +1 1 0 0 0 0 1 1 0 1 1 1 0 +1 +1 1 1 0 0 0 0 1 1 0 1 0 1 +1 +1 0 0 0 0 0 0 0 0 1 1 0 0 +1 +1 1 1 0 1 1 0 0 1 1 0 0 1 +0 +1 0 1 1 0 1 0 1 0 1 1 0 1 +0 +0 0 1 0 0 1 1 0 0 1 0 0 0 +0 +1 1 1 1 1 0 0 1 0 0 1 0 0 +1 +0 1 0 0 0 1 1 1 0 1 0 0 1 +0 +1 0 0 0 1 1 1 0 0 0 1 1 0 +0 +1 0 0 0 1 1 0 0 1 1 0 1 1 +1 +1 0 1 0 1 0 0 0 1 1 1 0 0 +0 +0 0 0 0 0 0 0 1 0 0 0 0 0 +1 +0 0 1 1 0 0 1 1 0 1 1 1 0 +1 +1 0 0 1 1 0 1 0 0 0 1 1 1 +1 +1 1 0 0 1 0 0 1 1 1 1 1 1 +1 +0 0 1 0 1 0 0 0 1 0 1 1 0 +1 +1 1 1 1 1 1 1 1 0 0 0 0 1 +1 +1 0 0 0 0 1 1 1 0 1 0 0 0 +1 +0 0 1 0 1 1 1 0 1 0 0 1 0 +0 +1 1 1 0 1 1 0 1 1 0 0 0 0 +1 +1 0 1 1 1 1 0 0 0 1 0 0 1 +1 +1 0 0 0 0 0 1 0 0 0 1 0 1 +0 +0 0 0 1 1 1 1 0 1 0 1 1 0 +1 +0 0 0 0 1 0 0 1 0 0 0 0 1 +1 +0 1 1 0 0 1 1 0 0 1 0 1 1 +1 +1 1 0 1 0 1 1 0 1 1 1 0 1 +1 +0 0 1 1 0 0 1 1 1 0 0 1 1 +1 +1 1 1 1 0 1 1 0 1 0 0 0 1 +0 +0 0 1 0 1 1 0 1 1 1 1 0 1 +0 +0 0 0 1 0 1 1 1 1 1 1 1 1 +1 +1 1 0 0 0 0 1 0 1 0 0 1 0 +1 +1 1 1 0 1 0 0 0 0 1 0 1 1 +1 +1 1 1 0 0 0 0 0 1 1 0 0 1 +0 +0 0 0 1 1 1 1 1 1 0 1 0 1 +0 +0 1 1 1 0 1 1 1 0 0 0 0 0 +0 +0 1 0 1 1 0 0 1 0 1 1 1 1 +0 +1 1 0 0 1 1 1 0 0 0 1 0 0 +0 +0 1 1 0 1 1 1 1 0 1 1 1 0 +1 +0 0 1 0 0 0 0 0 1 1 1 1 1 +0 +1 1 0 0 0 0 0 0 0 0 0 0 1 +1 +1 1 0 1 0 0 0 0 1 0 1 1 0 +0 +0 0 0 0 1 0 1 1 1 0 0 1 0 +1 +0 0 0 0 1 0 1 0 1 0 0 0 0 +1 +0 0 1 0 0 0 0 1 1 0 0 0 1 +0 +0 1 0 0 1 0 0 0 0 1 0 1 0 +0 +1 1 1 0 0 0 1 0 1 0 0 0 0 +1 +1 0 0 1 0 1 0 0 1 0 0 0 0 +0 +0 1 1 0 0 1 1 0 1 0 0 0 0 +1 +0 1 0 1 1 0 0 0 0 0 0 0 0 +1 +0 1 1 1 1 0 0 1 0 0 0 0 1 +0 +0 1 1 0 1 0 1 1 0 1 0 1 1 +0 +1 1 0 1 1 0 0 0 0 0 1 1 0 +0 +0 1 0 1 1 1 0 0 1 1 1 0 1 +0 +1 0 0 1 1 0 1 1 0 1 0 1 1 +0 +0 1 0 0 1 0 0 1 1 1 1 0 1 +1 +1 1 1 1 1 0 0 0 0 1 1 0 0 +1 +1 0 1 0 0 1 1 1 0 1 1 0 0 +1 +0 0 0 1 1 1 0 1 0 0 1 0 0 +1 +0 0 0 0 0 1 0 0 0 0 0 0 1 +0 +1 0 1 0 1 1 0 1 1 1 1 1 0 +1 +0 0 0 1 1 1 1 0 1 0 0 0 1 +0 +0 0 1 0 1 0 0 1 1 0 1 0 0 +1 +0 0 0 1 0 1 0 0 0 1 0 1 0 +0 +0 1 0 0 0 1 0 0 0 1 0 0 1 +0 +0 1 1 1 0 0 0 1 1 0 0 1 1 +1 +1 0 0 1 0 1 1 1 1 0 0 1 0 +1 +1 0 0 0 1 1 1 0 1 1 0 0 1 +1 +0 0 1 1 0 0 1 0 1 1 0 1 1 +1 +0 0 0 0 1 1 1 0 0 0 1 1 1 +0 +1 0 0 1 0 1 0 1 0 0 0 1 1 +0 +1 0 1 1 1 1 1 1 0 0 1 0 1 +1 +1 1 0 0 1 1 0 0 1 1 1 0 0 +1 +0 0 0 1 0 0 0 0 0 0 1 0 1 +1 +0 0 0 0 0 0 1 0 0 1 1 1 1 +1 +0 0 1 1 0 1 1 0 0 0 1 0 1 +0 +1 0 1 1 0 1 1 0 1 0 1 0 0 +1 +0 1 0 1 1 0 0 1 1 1 0 0 0 +0 +0 1 1 1 0 1 0 1 0 0 1 0 0 +0 +1 0 1 0 0 0 1 0 1 0 1 0 0 +1 +1 1 1 1 0 0 0 1 1 0 0 1 1 +0 +0 1 0 0 1 1 0 0 0 0 1 0 0 +0 +0 1 1 0 0 0 1 1 0 0 1 1 1 +1 +1 1 0 1 0 1 1 1 0 1 1 0 1 +1 +0 1 1 0 1 1 0 1 1 1 1 0 0 +0 +1 1 0 0 0 0 0 0 0 0 0 1 1 +0 +1 0 0 0 0 0 0 0 1 1 1 0 0 +0 +0 0 0 1 0 0 0 1 1 1 0 1 1 +0 +0 0 1 0 0 1 1 0 1 1 0 0 1 +0 +0 0 1 0 1 0 1 0 1 0 0 0 1 +1 +0 0 0 0 1 1 1 0 1 1 0 1 0 +0 +1 0 0 0 1 1 1 1 0 0 1 1 0 +1 +1 0 1 1 1 0 1 0 1 0 1 0 1 +0 +1 1 0 0 0 1 1 1 1 1 0 0 0 +1 +1 0 1 1 0 1 1 0 1 0 0 0 1 +1 +0 0 1 1 1 1 0 0 0 1 0 0 0 +1 +1 1 1 1 1 1 1 0 1 0 1 1 1 +1 +0 0 0 0 1 0 1 1 1 0 0 1 1 +0 +0 1 1 0 1 0 1 0 1 0 0 1 1 +1 +1 0 0 1 1 0 1 0 1 1 1 0 0 +1 +1 0 1 1 1 0 1 0 1 1 1 0 0 +0 +1 1 1 1 1 0 1 0 1 1 1 1 0 +0 +0 1 0 0 0 1 1 0 1 1 0 0 1 +0 +1 1 1 1 0 1 1 0 0 0 0 1 1 +0 +0 0 1 1 0 0 1 1 1 0 0 0 1 +0 +0 0 0 1 1 1 1 1 0 1 1 1 0 +0 +1 0 0 0 0 1 0 0 0 0 1 1 1 +1 +0 0 0 0 0 0 1 0 1 0 0 1 0 +1 +0 0 1 0 1 0 0 0 0 0 1 1 0 +0 +0 0 1 0 0 0 1 0 0 0 0 1 1 +0 +1 1 0 1 1 0 0 1 1 1 1 1 1 +0 +1 1 0 0 0 1 1 1 0 1 0 0 0 +0 +0 1 1 0 1 0 0 0 0 1 0 1 1 +0 +1 0 0 0 0 1 1 1 1 0 1 0 0 +0 +1 1 1 0 0 0 1 1 0 0 1 0 0 +0 +0 0 0 0 1 0 1 1 0 1 1 1 1 +1 +1 0 1 0 1 0 1 1 0 0 1 0 0 +0 +1 0 1 0 0 1 0 1 0 0 1 0 0 +1 +1 1 0 1 1 0 1 1 1 0 1 0 0 +0 +1 1 1 1 1 1 1 0 0 0 0 0 0 +1 +0 1 0 0 0 0 1 1 0 1 1 1 1 +1 +0 1 0 0 1 1 0 0 1 1 1 0 1 +1 +0 0 0 0 0 0 0 1 0 0 1 1 1 +0 +1 1 1 1 0 1 1 0 1 0 1 1 1 +0 +1 0 1 0 1 1 0 0 0 1 0 0 0 +1 +0 0 1 0 1 0 1 0 1 0 0 1 0 +1 +1 0 1 1 0 1 1 1 0 0 0 0 1 +1 +1 1 0 0 1 0 0 0 0 1 0 0 1 +1 +0 0 1 0 1 1 1 1 1 0 1 0 1 +0 +0 1 0 0 1 0 0 1 1 1 1 1 0 +1 +0 0 1 1 0 0 0 0 1 0 1 0 0 +0 +1 0 0 1 0 1 1 0 0 1 1 0 0 +0 +0 0 0 0 0 0 1 1 1 1 0 1 0 +1 +1 0 0 0 0 0 1 0 1 1 1 0 1 +0 +1 0 1 1 1 1 0 1 0 1 1 1 0 +1 +0 1 0 0 0 0 1 0 0 1 0 1 1 +1 +1 1 1 0 1 1 1 1 0 0 1 1 1 +0 +1 0 0 1 1 1 1 1 0 0 1 1 1 +1 +1 1 1 0 1 1 1 0 1 1 0 1 1 +0 +0 0 1 0 0 0 0 0 0 0 1 0 0 +0 +0 0 0 0 1 1 1 0 1 1 1 0 0 +0 +1 0 0 0 0 1 1 0 0 1 1 0 1 +0 +0 1 0 1 1 1 1 1 1 1 1 1 1 +1 +0 1 0 1 1 0 0 1 1 1 1 1 1 +1 +0 1 1 0 0 1 1 0 0 1 1 0 1 +1 +1 0 1 0 1 1 1 1 0 1 0 0 1 +0 +1 0 0 0 0 0 0 1 0 0 0 0 1 +1 +1 0 1 0 0 1 1 0 0 1 1 1 0 +1 +0 1 0 1 1 0 1 0 1 1 1 0 0 +1 +1 1 1 1 0 0 0 0 1 0 0 1 1 +1 +0 1 1 0 1 0 1 1 1 1 1 0 0 +0 +1 1 1 1 1 0 0 0 1 1 0 1 1 +1 +0 0 1 0 1 1 1 1 0 0 0 1 0 +0 +1 1 1 1 1 0 1 1 0 1 1 1 1 +1 +1 0 1 0 1 0 0 1 1 1 0 1 1 +0 +1 1 1 1 0 1 1 0 1 0 0 0 0 +1 +1 1 1 1 1 1 0 0 0 0 0 1 1 +0 +0 0 1 0 1 1 1 1 1 0 0 1 1 +0 +0 0 0 0 1 0 0 1 1 1 1 0 0 +1 +1 0 0 1 0 0 1 0 1 0 1 0 1 +0 +0 0 0 0 1 0 0 0 1 0 1 0 1 +0 +1 1 1 1 1 1 1 0 0 0 0 1 1 +1 +0 0 0 0 0 0 0 1 0 0 0 1 0 +0 +0 1 0 1 1 0 0 1 1 1 0 1 0 +1 +0 1 1 0 0 0 0 1 0 1 0 1 1 +0 +1 0 1 0 0 0 0 1 0 0 0 0 0 +1 +0 0 0 0 1 0 1 1 1 0 1 1 1 +1 +1 1 1 0 0 0 0 1 1 1 1 0 0 +1 +1 0 1 1 1 0 0 0 0 0 1 1 0 +0 +0 1 0 0 0 0 0 0 1 1 0 1 1 +1 +0 1 1 1 0 0 1 1 1 1 0 0 0 +1 +0 0 0 0 1 1 1 0 0 1 1 0 1 +0 +0 0 0 0 0 1 1 1 1 1 0 0 1 +0 +1 1 1 1 0 1 0 1 0 1 1 0 0 +0 +0 1 1 0 0 1 1 0 1 1 1 0 0 +1 +1 1 1 1 1 0 0 1 0 1 0 0 0 +1 +1 0 1 0 0 1 1 1 1 0 1 1 0 +0 +0 0 1 1 0 0 1 0 0 0 1 1 0 +1 +1 0 0 0 0 0 1 0 0 0 1 1 1 +1 +1 1 1 0 1 0 0 0 1 1 1 0 1 +0 +0 0 0 0 0 1 0 1 1 0 0 1 0 +0 +0 0 1 0 0 1 1 0 1 1 1 1 0 +1 +1 1 0 0 1 0 1 1 0 1 1 0 1 +0 +1 1 1 1 1 0 0 1 1 0 0 1 0 +0 +1 1 0 0 0 0 0 1 1 1 0 0 0 +1 +1 1 0 1 0 1 1 1 1 0 0 0 1 +0 +1 0 0 0 0 0 0 0 0 1 0 0 1 +1 +0 1 0 0 1 1 0 1 1 0 1 0 0 +0 +0 1 0 0 1 0 0 0 0 1 1 0 0 +0 +1 1 1 1 1 1 0 0 0 1 0 1 0 +0 +1 0 0 1 0 0 1 1 1 0 1 0 1 +1 +1 1 1 1 1 1 0 0 0 0 0 0 0 +0 +0 0 0 1 1 1 1 0 1 1 1 1 0 +0 +1 1 1 0 0 1 1 1 1 0 0 0 1 +0 +0 0 0 0 0 0 1 1 1 0 0 1 1 +1 +0 0 0 0 1 0 1 1 1 0 0 0 1 +1 +0 0 0 1 0 1 1 1 1 1 1 1 0 +0 +0 1 0 0 1 0 0 0 1 1 1 1 1 +1 +1 1 0 0 1 1 0 1 0 1 0 1 0 +1 +1 1 0 0 1 0 0 0 1 1 1 1 1 +0 +1 0 0 0 0 1 0 1 0 1 1 0 1 +0 +1 0 1 1 0 1 1 1 0 1 1 1 1 +0 +1 0 1 0 0 1 0 1 1 0 1 0 1 +1 +1 0 1 0 1 0 0 0 1 0 1 1 1 +1 +1 1 0 0 1 1 1 0 0 0 0 1 1 +1 +1 1 1 1 1 1 0 0 1 1 0 1 0 +1 +0 1 1 0 0 1 1 0 1 1 1 1 0 +0 +1 1 1 0 1 0 1 0 0 0 0 1 0 +0 +0 1 1 0 1 0 1 0 1 0 0 0 1 +0 +0 0 0 0 0 0 1 0 0 0 1 0 0 +0 +0 1 0 1 0 0 1 1 0 1 0 1 0 +0 +1 0 0 1 1 1 0 0 0 1 1 1 0 +1 +1 0 1 0 0 0 1 0 1 1 1 1 1 +0 +0 1 0 0 0 0 1 1 0 1 0 0 1 +1 +1 1 1 0 0 1 0 0 1 1 1 0 1 +0 +0 1 1 0 0 0 1 1 0 1 1 0 1 +1 +0 0 0 0 0 1 1 0 0 0 0 0 0 +0 +0 1 0 0 0 1 1 1 1 0 1 1 1 +0 +1 1 0 1 0 1 1 0 1 0 0 1 0 +1 +0 1 0 1 0 0 0 0 0 1 0 1 1 +1 +0 1 1 0 1 1 1 1 0 0 1 0 1 +0 +0 0 1 0 0 1 0 0 1 1 1 0 0 +1 +0 0 1 1 1 0 0 1 1 0 1 0 1 +1 +1 0 0 1 1 0 1 0 0 0 1 0 1 +0 +0 1 0 0 0 1 1 1 0 1 0 0 0 +1 +1 0 1 1 0 0 1 0 0 0 0 1 0 +1 +0 0 0 1 1 0 1 1 1 0 0 0 0 +1 +0 1 1 0 0 0 1 1 0 1 0 1 1 +1 +0 1 1 0 1 1 1 0 1 0 0 1 1 +0 +1 0 1 0 0 1 0 1 0 0 0 0 0 +0 +0 0 0 0 1 1 0 0 1 1 1 0 0 +1 +1 0 1 0 0 0 1 0 0 1 1 0 1 +0 +1 1 1 0 0 1 0 0 0 0 1 1 0 +0 +0 1 0 0 0 1 1 1 0 0 1 1 1 +1 +1 1 0 1 0 1 1 1 1 0 1 1 1 +0 +0 0 0 0 0 0 1 1 0 1 1 0 1 +1 +0 1 0 0 1 1 0 0 1 0 1 0 1 +0 +0 1 0 1 0 1 0 1 1 0 1 1 1 +0 +1 1 0 1 0 1 1 1 1 1 0 0 1 +1 +1 0 0 1 0 1 0 0 1 1 1 0 0 +0 +0 0 1 1 0 0 0 1 0 1 1 0 1 +0 +0 1 1 1 0 1 0 1 0 0 0 1 0 +0 +0 1 1 0 0 0 1 1 1 1 1 0 1 +0 +0 1 0 0 0 1 0 1 0 1 0 0 1 +1 +0 0 0 0 0 1 1 1 1 1 1 0 0 +0 +0 0 1 0 1 1 1 0 1 1 1 0 0 +1 +1 0 0 1 0 0 0 0 0 0 0 1 1 +0 +1 1 1 1 1 1 0 1 1 0 1 1 1 +1 +1 1 1 0 0 1 1 1 0 0 1 0 0 +1 +0 0 0 0 0 0 1 1 0 1 0 0 0 +1 +1 0 0 1 0 0 0 0 0 1 0 1 1 +1 +1 0 0 0 0 1 1 1 1 1 1 0 1 +0 +1 1 1 0 0 0 1 1 0 0 1 1 0 +1 +0 1 1 1 0 0 1 1 0 0 1 1 0 +1 +1 0 0 1 0 1 1 0 0 0 0 1 0 +1 +0 1 1 0 1 0 0 1 0 0 1 1 1 +1 +0 0 1 1 0 0 1 1 0 0 0 0 0 +0 +0 1 0 0 1 1 1 1 0 0 0 1 1 +1 +1 0 0 0 1 1 0 0 0 0 0 1 0 +0 +1 1 1 0 1 0 1 0 1 0 1 1 0 +0 +1 1 1 0 1 0 1 0 1 0 1 0 1 +0 +0 1 0 0 1 0 1 1 0 1 0 0 0 +1 +1 0 1 0 1 1 0 1 1 1 1 1 1 +0 +0 1 0 1 0 0 1 1 1 0 1 0 0 +0 +1 1 0 1 1 0 1 0 0 0 1 0 0 +0 +0 0 0 0 0 0 1 0 0 0 0 0 1 +0 +1 1 1 0 0 0 1 1 1 1 1 1 1 +0 +0 0 1 0 0 1 1 1 1 1 1 1 1 +1 +0 0 0 0 0 1 0 0 1 1 1 0 0 +0 +0 1 0 1 1 0 1 0 0 0 0 1 1 +0 +0 1 1 1 0 0 1 0 1 1 1 1 1 +1 +1 0 1 1 1 0 1 1 1 1 1 1 1 +1 +0 1 1 0 1 1 0 0 0 0 0 1 0 +1 +1 0 0 0 1 1 0 1 1 1 0 0 1 +1 +1 1 0 1 1 1 0 1 1 0 0 1 0 +0 +1 0 1 0 1 1 0 1 1 0 1 0 1 +0 +1 1 1 0 0 0 1 1 0 0 0 1 1 +1 +0 1 1 1 1 0 0 1 1 1 0 0 1 +0 +0 1 0 1 0 1 0 0 0 0 0 1 0 +0 +1 0 1 0 1 1 1 1 1 1 0 1 1 +0 +1 0 0 0 0 1 0 1 1 1 1 1 1 +0 +0 1 1 1 1 1 0 1 1 1 1 1 0 +0 +0 1 0 1 0 1 1 1 0 0 1 0 1 +1 +0 0 1 0 0 0 0 1 0 1 1 1 1 +0 +1 0 0 0 0 1 1 1 1 0 0 0 0 +1 +0 0 0 0 1 1 1 1 0 1 1 1 0 +1 +1 0 0 1 1 0 1 1 1 1 0 0 0 +1 +1 0 0 1 1 1 1 1 0 0 0 0 0 +0 +1 0 0 1 0 1 0 1 0 1 0 1 0 +0 +0 1 1 1 0 1 1 1 1 0 0 1 1 +1 +1 1 0 1 1 1 1 1 0 1 0 0 0 +0 +0 1 1 0 1 0 0 1 1 1 1 1 0 +0 +1 1 0 1 0 0 0 0 0 0 1 0 0 +0 +1 1 0 0 0 0 0 1 1 1 0 1 0 +0 +1 0 0 0 0 1 0 1 0 1 1 1 0 +0 +0 1 0 0 1 1 0 0 1 0 0 1 0 +1 +0 1 1 1 0 0 0 1 0 1 0 0 0 +1 +1 1 0 0 0 0 0 1 1 0 1 0 0 +1 +1 1 0 1 1 1 0 0 0 1 1 1 0 +0 +1 1 0 0 0 0 0 1 0 1 0 1 0 +1 +1 0 0 1 0 0 1 1 1 0 1 1 1 +0 +0 0 0 0 0 1 0 0 1 0 0 1 1 +0 +1 1 0 0 1 1 1 0 0 1 1 0 0 +1 +0 1 0 1 0 1 0 1 1 1 0 1 1 +0 +1 0 0 0 0 0 1 0 1 1 1 0 0 +1 +0 1 0 1 1 1 1 0 0 0 0 1 1 +1 +0 1 0 1 0 1 0 0 1 0 1 1 1 +1 +1 1 0 1 0 0 0 1 0 1 0 1 1 +1 +0 1 0 0 1 0 1 1 1 0 1 0 0 +0 +1 1 1 1 1 0 1 0 0 0 0 0 1 +1 +1 0 0 0 1 0 0 1 0 1 1 1 1 +1 +0 1 1 0 0 1 0 0 1 1 1 1 1 +0 +0 0 1 1 1 1 1 0 1 1 1 1 0 +1 +1 0 1 0 0 0 0 0 0 0 1 0 0 +1 +1 0 0 0 1 0 1 1 0 0 0 1 0 +1 +1 1 0 0 1 0 1 0 1 1 0 1 1 +0 +1 1 1 1 0 1 0 0 0 1 0 1 1 +0 +0 0 0 1 0 0 0 0 1 1 0 1 0 +0 +0 1 1 0 1 1 1 1 1 1 0 0 0 +0 +1 0 1 0 0 0 0 1 1 0 0 1 1 +0 +1 1 1 0 0 0 0 1 0 1 1 1 1 +0 +0 1 0 0 0 1 1 0 1 0 0 0 0 +0 +1 1 1 0 1 1 0 1 1 0 1 0 1 +1 +0 0 1 0 1 1 0 0 1 0 0 1 1 +0 +0 1 0 1 0 1 0 0 1 0 0 1 1 +0 +1 1 0 1 0 1 0 1 1 0 0 1 1 +0 +0 1 0 1 0 1 0 1 1 1 0 0 1 +1 +0 0 1 1 0 0 1 1 0 1 1 1 1 +0 +0 0 0 0 1 0 1 1 1 1 0 1 1 +1 +1 1 0 0 1 1 1 0 1 1 0 0 1 +0 +1 0 1 1 0 0 0 1 0 0 1 1 1 +1 +0 0 1 1 0 1 0 1 1 0 0 1 0 +0 +1 0 1 0 0 0 0 1 1 0 1 1 1 +1 +0 0 0 1 1 0 0 0 0 0 0 1 0 +1 +1 0 1 0 0 1 1 1 0 0 0 1 0 +0 +1 0 0 0 1 1 1 0 1 1 1 1 0 +0 +0 0 1 1 1 0 0 0 0 0 1 0 0 +0 +0 0 1 0 0 1 1 0 0 0 1 1 0 +1 +1 0 0 0 0 0 1 1 0 1 0 0 1 +1 +1 0 1 0 1 1 1 0 0 0 1 1 1 +0 +0 1 1 1 1 0 1 0 0 1 1 1 0 +0 +1 0 0 1 0 1 0 0 1 0 1 0 1 +0 +0 0 0 0 1 0 1 0 0 1 1 1 0 +1 +0 1 1 1 1 0 0 1 0 1 1 1 1 +1 +1 1 1 1 1 1 1 0 1 1 0 1 0 +0 +1 1 1 1 0 0 0 0 0 0 1 1 0 +0 +0 0 0 1 1 1 0 1 1 1 0 0 1 +1 +0 0 1 1 1 1 0 1 1 1 1 0 0 +0 +1 0 1 1 0 1 0 0 1 1 0 0 0 +0 +0 1 0 0 1 0 0 0 1 1 1 1 0 +0 +1 1 0 1 0 1 0 1 1 1 0 0 0 +1 +1 1 0 1 1 1 1 1 1 1 0 1 0 +0 +1 0 1 0 1 1 1 0 0 1 1 0 0 +1 +1 0 0 1 0 1 0 0 1 0 1 1 0 +0 +1 0 0 0 1 1 0 1 1 1 1 1 1 +1 +0 1 1 1 1 0 0 0 1 0 0 1 1 +1 +1 0 1 0 0 1 1 0 0 0 1 0 0 +1 +1 1 1 0 0 1 1 0 0 0 0 0 1 +0 +0 1 1 0 1 1 0 0 0 1 0 0 0 +1 +0 1 1 0 0 0 1 1 0 0 1 0 0 +1 +0 0 1 0 1 0 0 1 0 1 1 1 1 +1 +1 0 0 1 0 0 0 0 1 1 1 1 1 +1 +0 1 1 1 0 1 0 0 0 0 1 0 1 +0 +0 0 0 1 0 0 1 0 0 0 1 0 1 +0 +1 1 0 0 0 0 0 1 1 0 1 1 0 +0 +1 0 0 0 0 1 0 0 1 1 0 1 0 +1 +1 0 1 1 0 1 1 0 0 1 1 1 1 +1 +0 0 0 0 1 0 0 0 1 1 1 0 0 +0 +1 0 0 1 1 0 1 0 0 1 0 1 0 +0 +0 0 1 0 0 1 0 0 1 1 0 1 0 +1 +0 0 1 1 1 0 1 0 1 0 0 0 0 +1 +0 0 0 0 0 0 1 1 1 0 1 1 0 +1 +1 1 0 0 0 1 1 1 1 1 1 1 0 +1 +0 1 1 1 1 1 0 0 0 0 0 0 1 +0 +0 1 1 0 0 0 0 1 1 0 1 0 0 +1 +1 0 1 1 1 1 1 1 0 0 1 0 0 +0 +1 0 1 1 0 0 1 1 0 0 1 1 0 +1 +0 1 1 1 1 0 0 1 1 1 1 1 0 +1 +0 0 1 1 1 0 1 1 1 1 1 0 1 +1 +1 0 1 1 1 1 1 0 0 0 1 1 1 +1 +0 1 1 0 0 1 0 1 1 0 1 0 0 +0 +1 1 1 1 0 0 0 1 1 1 0 0 1 +0 +0 1 0 0 1 1 0 0 0 1 1 0 0 +1 +1 1 1 0 0 1 0 0 0 1 1 1 1 +0 +1 0 0 0 0 1 0 0 1 0 0 0 0 +1 +1 0 1 1 1 0 1 0 1 1 1 1 1 +0 +1 0 1 0 1 1 0 0 1 1 1 1 1 +1 +1 0 0 0 1 0 1 0 0 1 1 1 1 +1 +1 1 0 1 1 1 0 0 1 0 0 1 0 +1 +1 0 0 0 0 0 1 0 1 1 1 1 0 +0 +1 0 1 1 0 1 0 0 0 0 0 0 1 +1 +0 1 1 1 1 1 0 0 0 0 1 0 0 +0 +0 0 1 1 1 0 1 0 0 1 1 1 0 +1 +1 0 0 0 0 1 0 1 0 1 0 0 0 +0 +1 1 0 1 1 1 0 0 0 0 1 1 0 +1 +1 0 1 1 1 1 1 1 1 0 1 0 0 +1 +0 0 0 0 1 0 0 1 0 1 1 0 1 +1 +0 1 0 1 1 1 0 1 0 0 0 1 0 +0 +1 0 0 0 1 0 0 1 1 1 0 1 1 +1 +0 1 0 0 0 0 0 1 0 1 0 1 1 +1 +0 0 0 1 0 1 1 1 0 1 1 0 0 +0 +0 1 0 1 0 1 1 0 0 1 1 1 1 +0 +0 1 0 1 0 1 1 0 0 0 1 1 1 +1 +1 1 0 1 1 0 1 1 1 0 1 1 0 +1 +0 1 0 0 1 0 1 0 1 0 1 1 1 +1 +1 1 0 1 1 1 0 0 0 1 0 0 1 +1 +0 1 0 0 1 0 0 1 0 0 1 0 0 +0 +1 0 1 1 0 0 0 1 0 1 0 1 1 +1 +1 0 1 1 0 1 1 1 1 1 1 1 1 +1 +1 0 1 0 1 0 0 0 0 0 0 0 1 +0 +1 1 1 0 0 0 1 1 1 0 1 1 1 +1 +1 1 1 1 1 1 1 0 1 1 1 1 1 +0 +0 0 1 0 1 0 1 0 1 1 0 1 1 +1 +1 0 0 1 1 0 0 1 0 0 1 0 0 +1 +1 1 0 0 1 0 1 0 0 1 0 0 0 +1 +1 1 1 0 1 0 1 0 0 0 1 0 1 +1 +1 0 1 0 0 1 0 1 1 1 1 0 0 +1 +0 0 0 0 0 0 1 0 1 0 1 0 1 +0 +0 1 1 0 1 1 0 0 1 1 0 1 1 +0 +1 1 1 1 1 0 1 1 0 0 1 1 1 +0 +0 1 1 0 0 1 0 0 1 1 1 0 1 +1 +1 1 0 1 1 0 1 0 1 1 0 1 1 +1 +1 0 0 1 1 0 1 1 1 1 0 1 1 +1 +1 1 1 0 1 0 0 1 0 1 1 0 1 +0 +0 1 1 0 1 1 0 0 1 0 0 1 0 +0 +1 1 0 0 0 1 0 1 0 1 1 0 0 +0 +1 0 1 1 0 0 1 0 0 0 0 0 0 +0 +1 0 0 0 1 0 1 1 0 0 0 0 0 +0 +0 0 0 1 1 1 1 0 1 1 1 0 0 +1 +0 1 1 0 1 0 0 1 1 0 1 1 0 +1 +0 0 1 0 1 1 1 0 1 0 0 0 1 +0 +0 1 0 1 0 0 0 1 0 0 0 0 1 +0 +0 1 1 1 0 1 0 0 1 0 0 1 0 +0 +1 1 1 1 1 0 0 1 1 1 0 0 1 +1 +0 1 1 1 0 1 1 0 0 1 1 0 1 +0 +0 0 0 0 1 1 0 1 1 0 1 0 0 +1 +0 0 0 1 0 0 0 0 0 1 1 0 0 +1 +1 1 0 1 1 1 0 0 1 0 1 1 1 +1 +1 1 0 0 0 1 1 1 0 0 1 0 0 +0 +0 0 1 1 1 1 0 0 1 1 0 0 0 +0 +1 1 0 1 0 0 1 1 1 0 1 0 1 +0 +1 1 0 1 0 0 1 0 0 0 0 0 1 +1 +0 0 0 1 1 0 1 0 1 0 0 0 1 +1 +1 0 0 0 0 0 0 0 1 0 1 1 0 +0 +1 0 0 1 0 0 0 1 0 1 1 1 1 +1 +0 1 1 0 0 0 1 0 0 1 1 0 0 +1 +1 0 1 1 1 1 0 1 0 1 1 0 0 +0 +1 1 1 1 0 0 0 1 1 0 0 1 0 +1 +1 0 1 1 0 0 0 0 0 1 0 0 1 +1 +1 1 1 0 0 0 0 1 1 0 0 0 0 +1 +0 1 0 1 0 1 1 1 0 0 1 1 1 +0 +0 0 0 0 1 0 0 1 1 0 1 0 0 +0 +1 0 1 0 1 0 1 0 0 0 0 1 1 +0 +0 1 0 0 0 0 1 1 0 0 1 1 0 +1 +1 0 0 1 1 0 1 0 0 1 1 1 1 +0 +0 0 0 0 1 0 0 1 0 0 0 0 0 +0 +0 0 0 0 0 1 1 1 0 1 0 1 0 +1 +0 0 1 1 1 1 0 0 1 1 1 1 1 +1 +0 0 1 0 1 1 0 1 0 1 1 0 1 +1 +0 0 1 0 1 0 1 0 0 1 1 1 1 +1 +1 0 1 1 1 1 1 0 1 1 1 0 1 +0 +1 1 1 0 0 0 0 0 0 1 1 1 1 +1 +0 0 1 0 1 1 1 1 0 0 1 1 1 +0 +1 0 1 0 1 0 1 1 1 1 1 0 0 +0 +0 1 1 0 1 1 0 0 0 0 0 0 0 +0 +1 1 1 1 1 1 1 1 1 1 1 1 0 +0 +0 0 0 0 1 1 1 0 1 0 0 0 1 +1 +1 1 0 1 1 0 0 0 1 0 0 1 1 +1 +1 0 1 0 0 0 1 1 0 0 1 1 1 +1 +0 1 1 0 0 0 0 1 1 0 1 0 1 +0 +1 0 1 0 1 1 0 0 1 0 0 0 1 +0 +0 0 0 1 0 1 1 1 1 0 0 1 0 +0 +0 1 0 0 0 0 1 0 1 0 1 1 0 +1 +0 0 0 0 1 0 1 0 1 1 1 1 1 +1 +0 1 0 0 0 0 0 0 0 0 1 0 1 +1 +0 1 0 1 0 1 1 1 1 1 1 1 1 +0 +1 0 1 0 0 1 1 0 1 0 0 0 0 +1 +0 1 1 0 0 1 0 0 0 1 0 0 0 +0 +0 0 1 1 0 1 1 1 0 1 0 0 0 +0 +0 0 1 1 0 1 0 0 1 1 0 0 1 +0 +1 1 1 1 1 0 0 1 0 1 1 1 1 +0 +1 1 1 1 0 0 1 1 1 1 1 0 0 +1 +1 1 0 1 1 1 1 1 0 1 0 0 1 +1 +0 0 1 0 0 0 0 0 0 1 0 0 0 +0 +1 0 0 0 1 1 1 0 1 0 1 1 0 +1 +1 0 1 0 1 1 1 0 1 1 1 1 1 +0 +1 1 0 0 1 0 1 1 1 1 0 1 0 +0 +1 0 1 0 0 0 1 1 1 1 0 1 1 +0 +1 1 1 0 1 0 1 1 0 1 0 0 0 +1 +0 0 1 0 0 0 0 0 1 1 1 0 1 +1 +1 1 1 1 1 1 0 0 1 1 1 0 1 +0 +1 0 0 0 0 1 0 0 0 1 0 0 1 +0 +1 1 0 1 0 0 0 1 0 1 1 1 0 +1 +0 0 0 1 0 1 1 0 0 1 1 1 1 +1 +0 1 0 1 1 1 0 0 1 1 1 1 1 +1 +1 1 0 1 0 0 0 1 1 0 0 1 0 +0 +0 1 1 1 0 1 0 0 0 0 0 0 0 +0 +0 0 0 0 0 0 0 0 0 1 0 1 1 +1 +0 0 1 1 0 1 0 1 0 0 0 0 0 +0 +0 0 1 1 1 1 0 1 0 1 1 1 1 +1 +0 0 0 0 0 1 0 0 0 0 1 0 0 +0 +1 1 1 1 0 0 1 1 0 1 1 0 0 +0 +1 1 0 0 0 1 0 0 0 1 1 1 0 +0 +1 0 0 0 0 0 1 1 1 1 0 1 1 +1 +0 0 1 0 1 1 1 0 0 0 1 1 0 +0 +0 1 1 1 0 0 1 0 1 1 0 0 1 +1 +1 1 1 1 0 1 0 0 0 0 1 0 1 +1 +1 0 0 0 0 0 0 1 1 0 0 0 0 +1 +0 1 0 0 0 1 0 0 0 0 1 1 0 +0 +0 1 0 0 0 1 1 1 1 1 1 0 0 +1 +1 1 1 1 1 0 1 1 0 1 0 0 0 +0 +0 1 0 1 0 1 1 1 0 0 1 0 0 +0 +1 1 1 1 0 0 0 0 0 0 1 0 1 +0 +0 0 0 1 0 0 1 1 1 0 1 1 0 +0 +0 0 1 1 1 1 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 0 1 0 0 1 0 0 0 1 0 +1 +0 1 1 1 0 0 0 0 1 1 0 1 1 +1 +1 0 1 1 1 1 0 1 0 0 0 1 1 +0 +0 1 1 0 1 0 1 1 1 0 1 1 0 +0 +0 1 1 1 1 0 1 0 1 0 1 0 0 +1 +0 0 0 1 0 0 1 0 0 1 1 0 0 +0 +1 0 0 0 0 1 1 0 0 0 1 0 1 +1 +1 1 0 1 1 0 1 0 0 0 1 1 1 +0 +1 0 0 0 1 1 1 0 1 0 1 0 1 +1 +1 0 1 1 1 1 0 0 0 1 1 1 1 +1 +0 0 0 0 0 1 1 0 1 1 1 1 1 +1 +0 1 0 1 1 0 0 1 0 0 0 0 0 +0 +0 0 0 0 0 0 0 1 0 1 1 1 1 +1 +1 0 0 1 0 1 0 0 1 0 1 0 0 +1 +1 0 1 0 1 0 0 0 1 1 1 0 1 +1 +1 0 0 1 1 0 1 0 0 0 0 1 0 +1 +1 1 1 0 0 0 1 0 0 1 1 1 0 +1 +0 0 1 0 1 1 0 1 0 0 1 0 1 +0 +0 1 1 0 0 1 0 1 1 1 1 1 1 +1 +0 1 0 1 0 1 0 1 0 1 0 1 1 +1 +0 1 0 1 0 1 0 1 1 1 1 1 1 +1 +1 0 0 1 0 1 1 0 1 1 0 1 0 +1 +0 0 1 0 1 1 0 1 1 0 1 0 1 +1 +1 0 0 1 1 1 1 0 0 1 0 0 0 +0 +0 1 0 0 1 0 1 1 1 0 0 1 1 +1 +1 0 1 1 1 0 0 0 1 0 0 1 0 +0 +0 0 1 1 1 0 0 0 0 1 0 1 0 +1 +0 1 1 1 1 1 0 0 0 1 1 0 1 +0 +1 1 1 1 1 1 1 1 0 0 1 0 1 +0 +0 0 0 0 1 0 0 1 1 0 0 1 1 +1 +1 1 1 0 1 0 1 0 1 0 0 0 0 +0 +1 1 0 1 0 0 1 1 1 1 0 0 0 +1 +1 1 0 1 0 0 1 1 1 0 1 1 0 +0 +0 0 0 1 0 0 1 0 1 1 0 0 0 +0 +1 0 0 0 0 1 1 0 0 0 0 1 0 +0 +0 0 1 0 1 1 0 1 0 0 1 1 1 +1 +1 1 1 0 1 0 0 1 0 0 0 1 0 +0 +1 0 1 0 1 1 1 1 1 1 0 0 1 +1 +1 0 1 0 0 0 1 1 0 1 0 0 1 +0 +0 0 0 0 0 0 0 1 0 1 0 0 1 +1 +1 1 0 1 0 1 0 0 1 1 1 1 1 +1 +1 0 1 0 1 0 1 1 1 1 0 0 0 +1 +1 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 1 +0 +1 1 1 0 0 0 1 0 1 0 1 0 0 +0 +0 0 1 0 1 0 1 0 0 1 1 1 0 +0 +1 1 0 1 0 1 1 1 1 1 0 1 0 +1 +1 1 1 1 1 1 0 0 0 1 0 1 1 +1 +1 0 0 1 1 1 1 1 0 0 1 0 1 +0 +1 0 0 0 1 0 0 1 0 1 1 1 0 +0 +0 1 0 0 0 1 1 0 0 0 0 0 0 +1 +0 1 1 1 0 1 0 0 1 0 0 0 0 +1 +0 0 0 1 0 0 0 0 0 0 1 1 1 +0 +1 0 1 0 0 1 1 1 1 0 0 1 1 +0 +1 1 0 0 1 0 1 1 0 0 1 1 1 +0 +0 0 0 1 1 0 1 1 1 1 1 0 1 +0 +0 1 0 1 1 1 1 0 1 0 0 1 1 +0 +0 0 1 1 1 0 0 1 0 1 1 1 1 +0 +1 1 1 0 1 0 1 0 0 0 0 0 1 +0 +1 1 0 1 0 0 0 0 1 1 1 1 0 +1 +1 1 0 1 1 1 0 0 0 1 1 0 1 +0 +1 1 1 1 1 0 0 0 1 1 1 0 0 +0 +1 1 1 0 1 1 0 0 1 1 1 1 1 +0 +0 0 0 1 0 0 1 1 1 0 1 0 0 +1 +0 1 0 0 1 1 0 1 0 1 1 1 0 +1 +1 1 1 0 1 0 1 1 0 1 0 1 1 +1 +1 1 1 0 1 1 0 1 0 1 1 1 0 +1 +0 1 0 0 0 1 1 0 0 0 1 1 1 +0 +0 0 1 0 1 1 0 1 1 1 1 0 0 +1 +0 0 0 0 1 1 1 1 0 0 0 0 0 +0 +1 1 1 0 1 0 0 1 0 0 1 1 1 +0 +0 1 1 0 0 1 0 1 0 0 0 0 1 +1 +0 0 0 1 1 0 1 0 0 0 1 0 0 +0 +0 1 1 0 1 1 1 0 1 0 1 1 1 +1 +1 1 0 0 1 1 0 0 1 1 0 1 0 +1 +0 1 0 1 0 0 0 0 0 0 0 0 0 +0 +1 0 1 1 0 0 1 1 1 0 0 1 1 +0 +0 0 1 0 0 0 1 1 0 1 1 0 1 +0 +1 0 0 0 1 0 1 0 1 1 1 1 1 +0 +0 1 0 1 1 0 1 1 0 0 1 1 0 +1 +1 0 1 0 0 1 1 1 0 0 1 0 1 +1 +0 0 1 1 1 0 0 1 1 1 0 0 1 +1 +1 1 0 0 1 0 1 0 1 1 1 1 1 +1 +1 1 1 1 1 1 0 1 1 1 1 1 0 +1 +0 0 1 0 0 1 1 0 0 0 0 1 0 +0 +1 1 0 0 1 0 1 0 1 0 0 1 1 +1 +1 0 0 1 0 1 0 1 0 0 1 1 1 +1 +0 1 0 0 1 0 1 0 1 0 1 1 0 +0 +1 1 1 1 0 1 1 1 1 0 1 1 0 +0 +1 1 1 0 0 0 0 0 0 1 0 0 1 +1 +0 0 0 0 1 0 0 0 1 1 0 0 0 +1 +1 0 1 1 1 1 0 1 1 0 0 1 1 +1 +0 0 1 1 0 1 0 0 1 0 1 1 0 +0 +0 0 1 1 1 0 1 1 0 1 1 0 0 +1 +0 0 0 0 0 0 0 1 1 1 0 0 1 +0 +1 1 0 0 0 0 0 1 1 1 1 1 1 +0 +0 1 1 0 1 0 1 1 1 1 1 0 1 +1 +1 0 0 0 0 0 1 1 1 1 1 0 1 +1 +0 1 0 1 1 0 1 0 0 1 1 0 1 +1 +0 1 0 0 1 0 1 0 1 1 1 1 1 +0 +0 1 1 1 0 1 1 0 1 1 1 1 1 +0 +0 1 0 0 0 0 0 0 1 0 0 1 0 +1 +0 1 0 0 1 0 0 1 0 0 0 0 0 +1 +0 0 1 1 1 1 0 0 1 0 1 1 1 +0 +1 1 0 1 1 1 1 1 0 0 0 1 0 +0 +0 0 1 0 1 0 1 0 0 0 0 0 0 +1 +1 1 0 0 1 0 1 1 0 0 0 1 1 +1 +0 0 1 1 1 0 0 0 1 0 0 1 0 +1 +0 0 1 1 0 1 0 0 0 0 1 0 1 +1 +0 0 1 1 0 1 1 1 1 1 1 1 0 +1 +0 0 1 0 0 1 1 1 0 1 1 0 0 +0 +1 1 1 1 0 0 1 0 0 1 1 1 1 +1 +1 1 0 1 1 0 1 1 1 1 1 0 0 +1 +1 1 0 1 0 0 1 0 1 0 1 1 0 +1 +1 0 1 1 0 1 1 0 1 0 0 1 0 +1 +1 0 1 1 1 0 0 0 1 0 0 0 1 +0 +1 1 1 1 1 1 1 1 0 0 0 1 1 +0 +0 0 0 1 1 0 1 0 1 1 1 0 0 +0 +1 0 0 1 1 1 0 1 0 0 0 1 1 +1 +0 1 0 1 1 0 0 0 0 1 1 0 1 +0 +0 0 1 0 0 1 0 1 1 1 0 1 1 +1 +1 0 0 1 1 0 1 0 1 0 0 0 0 +1 +0 0 1 0 0 0 0 1 1 1 1 0 0 +1 +1 1 0 1 0 0 0 1 0 1 1 0 0 +0 +0 0 0 1 1 0 1 0 1 1 0 1 0 +0 +0 1 0 0 0 1 1 0 1 0 1 1 0 +0 +0 0 0 0 1 1 1 1 0 1 1 1 1 +0 +0 0 0 1 1 0 1 0 0 1 0 0 1 +1 +0 0 1 0 0 0 0 1 0 1 1 0 0 +0 +0 1 1 1 1 0 1 0 0 0 0 0 1 +0 +0 1 0 1 0 0 1 0 0 1 0 1 0 +1 +1 1 1 0 0 1 1 0 1 0 0 0 0 +0 +1 1 0 1 0 1 0 0 0 1 1 1 0 +1 +0 1 0 1 0 0 1 0 0 1 0 0 0 +0 +1 0 1 1 0 1 0 0 0 0 1 1 1 +1 +1 0 1 1 0 1 1 0 1 0 0 1 1 +0 +0 0 0 0 0 1 0 1 0 0 0 0 0 +0 +0 1 0 1 1 1 0 1 0 1 1 0 0 +1 +0 0 1 1 1 1 1 0 0 0 0 1 0 +0 +1 1 0 1 1 1 0 0 1 1 1 1 0 +1 +0 1 0 1 0 0 1 1 1 1 1 0 0 +1 +1 1 0 1 1 1 1 1 0 0 1 0 0 +0 +1 1 0 0 1 1 1 0 0 1 0 1 1 +0 +1 1 1 1 1 0 0 0 0 0 1 1 1 +0 +0 0 0 0 0 1 0 1 0 0 0 1 1 +0 +0 0 1 1 1 1 1 1 1 0 0 1 0 +0 +1 1 1 0 0 1 1 1 1 0 1 0 1 +1 +0 0 1 1 0 1 1 0 1 1 1 1 1 +1 +1 0 1 0 0 1 1 1 1 1 1 1 1 +0 +1 0 1 1 1 0 0 0 0 0 0 0 0 +0 +0 1 1 1 1 1 1 0 0 0 1 0 1 +0 +0 1 1 1 0 0 1 0 1 1 1 0 0 +1 +1 0 1 1 1 1 1 0 1 0 0 0 1 +0 +0 1 0 0 0 1 0 1 0 1 1 0 0 +1 +1 0 1 0 1 1 0 0 1 1 0 1 1 +0 +0 0 1 0 0 1 0 1 1 0 1 1 0 +0 +1 0 1 0 0 0 0 0 1 1 0 0 0 +0 +0 0 1 1 0 1 0 0 1 1 1 1 1 +0 +0 1 0 1 0 0 0 1 1 1 1 0 0 +0 +0 1 1 0 1 0 1 1 1 1 0 1 1 +1 +1 1 1 1 1 1 1 1 1 0 0 1 1 +1 +0 0 0 1 1 1 0 1 1 0 0 1 0 +0 +0 0 1 0 1 0 0 0 1 0 0 0 1 +0 +0 0 1 1 0 0 1 0 1 1 0 0 1 +0 +0 1 1 1 1 1 0 1 0 1 1 1 0 +1 +1 0 1 1 1 1 1 1 1 1 1 1 1 +0 +0 0 1 1 0 1 0 0 1 0 0 1 0 +1 +0 0 1 1 1 1 1 0 1 0 1 0 1 +0 +0 0 1 1 0 1 0 1 0 0 1 1 1 +1 +0 0 0 0 0 1 0 1 1 0 0 0 0 +1 +0 1 0 1 1 0 1 1 1 0 0 0 1 +1 +0 0 1 0 1 0 0 1 1 1 0 0 0 +1 +1 0 1 1 1 0 1 0 0 0 1 0 0 +0 +1 1 0 0 1 0 1 1 0 0 0 0 0 +1 +1 0 0 1 0 0 1 1 0 0 0 1 1 +0 +0 0 1 0 1 0 1 1 0 1 1 0 0 +0 +0 1 0 1 1 1 0 1 1 0 0 1 1 +0 +0 1 1 1 0 0 1 1 0 0 1 0 0 +0 +1 0 0 0 1 0 0 1 0 1 0 0 1 +1 +0 1 0 0 1 1 1 1 0 1 1 0 1 +0 +0 0 0 0 0 1 0 0 1 1 1 0 1 +1 +0 1 0 1 1 0 0 1 0 0 1 0 0 +1 +0 1 1 1 1 1 1 1 0 0 1 1 1 +0 +1 0 0 0 1 0 0 0 1 1 0 1 0 +1 +0 0 1 1 1 1 1 0 1 1 0 0 1 +0 +1 0 1 1 0 1 1 0 0 0 0 1 1 +1 +1 0 0 1 1 1 1 1 1 0 0 1 1 +1 +0 1 0 1 0 1 0 1 1 0 1 1 0 +1 +0 1 0 0 1 0 0 1 0 1 0 0 1 +1 +1 1 0 1 0 0 1 0 1 0 0 1 1 +1 +0 1 1 0 1 1 1 0 1 0 0 0 0 +0 +0 1 0 0 0 1 1 0 1 1 1 0 0 +0 +0 1 0 0 1 0 1 1 0 1 1 1 1 +0 +0 0 1 0 1 1 0 1 0 0 0 1 1 +0 +0 1 1 0 0 1 0 0 1 0 0 1 1 +0 +1 0 0 1 1 1 0 1 1 0 1 1 1 +1 +1 1 1 1 0 0 0 1 1 1 1 1 0 +1 +1 0 1 0 0 1 1 0 1 1 1 1 1 +1 +1 0 0 1 1 1 0 1 0 0 1 1 1 +0 +0 1 0 0 1 1 1 0 0 0 1 1 0 +0 +1 0 1 0 0 1 0 0 1 0 0 1 0 +1 +0 1 1 1 0 0 0 0 0 1 0 0 0 +0 +0 0 1 0 0 0 0 1 0 1 1 1 0 +1 +0 0 1 1 1 1 0 0 0 0 0 1 1 +0 +1 1 0 1 0 1 1 0 1 0 1 0 0 +1 +0 1 1 0 1 1 0 0 0 0 1 1 1 +1 +1 1 0 0 0 1 1 0 1 0 0 1 0 +0 +0 0 1 0 1 1 0 1 1 1 0 1 1 +0 +0 1 1 0 1 1 0 1 0 0 0 0 0 +1 +1 1 1 1 1 1 1 0 1 0 0 0 1 +1 +0 1 1 1 1 1 1 1 1 0 0 1 0 +1 +1 1 0 1 1 0 1 1 0 1 1 0 0 +0 +0 0 0 1 1 1 1 0 0 0 1 0 0 +1 +0 1 0 1 0 1 1 1 1 1 1 1 0 +1 +0 1 1 0 0 0 1 1 0 0 0 1 1 +0 +1 0 1 0 0 0 0 0 0 0 0 1 0 +1 +0 1 0 0 0 0 0 0 1 0 1 0 0 +1 +0 0 0 0 0 1 1 0 0 1 0 0 0 +1 +0 1 1 0 0 1 0 0 1 0 1 0 0 +1 +0 0 1 0 0 0 1 1 0 0 1 0 0 +0 +0 0 0 1 1 1 1 1 0 0 1 1 1 +0 +1 1 1 1 0 0 1 1 0 1 0 1 1 +1 +0 0 1 1 0 0 0 1 0 0 1 0 1 +1 +0 0 1 0 0 0 1 1 1 1 0 0 0 +1 +1 1 1 0 1 0 0 1 1 0 0 1 1 +0 +1 0 1 1 0 1 1 0 0 0 0 1 0 +0 +1 0 0 0 0 1 0 1 1 1 1 1 0 +1 +0 1 0 0 1 0 1 1 1 0 0 0 1 +0 +1 1 1 0 0 0 0 0 1 0 0 1 0 +1 +0 0 1 1 1 1 1 1 1 0 0 0 1 +0 +1 0 0 0 1 1 0 0 1 0 0 0 1 +1 +1 0 0 1 1 1 1 1 0 0 1 1 0 +0 +1 0 0 0 0 1 1 0 1 1 1 1 1 +0 +1 1 0 0 0 0 1 0 0 1 0 1 1 +0 +0 0 1 0 0 1 1 1 0 1 0 1 0 +0 +1 1 1 1 0 0 0 1 1 1 1 1 1 +0 +0 1 0 1 1 0 0 0 1 0 0 0 1 +1 +1 1 1 0 1 0 1 0 0 1 1 1 0 +0 +0 1 0 0 1 0 1 1 0 0 0 1 1 +0 +1 0 1 0 0 0 1 1 0 0 1 1 0 +0 +1 1 0 0 1 1 1 0 0 1 0 0 1 +1 +1 0 1 0 1 0 0 0 1 1 1 1 1 +0 +1 1 0 0 1 0 1 0 1 1 1 0 1 +0 +1 0 1 1 0 0 0 0 0 1 1 1 0 +0 +1 1 1 0 0 0 0 1 0 1 0 0 1 +0 +0 0 1 0 1 0 1 0 1 1 1 1 0 +1 +0 0 0 0 0 1 1 0 1 0 1 0 0 +0 +1 1 0 1 0 0 0 0 0 1 0 0 0 +0 +1 0 0 1 0 1 0 1 0 0 1 0 1 +0 +1 0 0 1 0 0 0 0 0 1 1 0 1 +1 +0 0 1 1 1 1 1 1 0 1 1 0 0 +0 +0 1 0 0 0 1 0 1 1 1 1 1 1 +0 +1 1 0 0 1 0 0 0 0 0 0 1 1 +1 +1 1 1 0 0 0 0 0 1 0 1 0 1 +0 +1 0 0 0 0 0 1 1 0 1 1 1 0 +0 +1 0 0 1 1 0 0 1 0 0 1 1 0 +0 +1 0 1 0 1 0 0 0 0 1 0 0 0 +0 +0 1 0 1 0 0 1 0 0 1 1 1 1 +1 +0 1 1 1 1 0 0 0 1 1 1 0 1 +0 +1 1 0 1 0 0 1 0 0 1 1 0 0 +0 +0 1 1 0 0 1 1 1 0 1 0 1 0 +1 +0 0 1 0 0 0 1 0 0 0 0 0 1 +1 +0 1 1 1 0 1 1 0 1 1 1 0 1 +1 +0 0 1 1 1 1 1 0 1 0 1 1 0 +0 +0 1 0 1 1 1 1 0 0 1 0 0 0 +0 +0 0 0 0 0 1 1 0 1 1 0 0 1 +1 +1 1 0 0 1 0 0 0 1 1 0 1 1 +1 +1 1 1 0 1 0 1 1 1 0 1 0 0 +0 +1 1 0 0 0 0 0 1 0 0 1 0 0 +0 +1 0 1 0 1 0 1 0 0 1 1 0 1 +1 +1 1 1 0 1 1 0 1 0 0 0 0 1 +1 +1 0 1 1 0 0 1 1 0 0 0 1 0 +0 +1 0 0 1 0 0 0 1 1 0 0 1 0 +1 +1 0 0 1 0 1 1 1 1 1 0 0 1 +0 +0 0 0 1 0 0 0 0 0 1 0 1 0 +1 +1 1 1 1 0 1 1 1 1 0 1 0 1 +0 +1 1 1 1 0 0 1 0 0 0 0 1 1 +1 +1 1 1 0 0 0 0 1 1 1 1 1 1 +1 +1 1 0 1 1 0 1 0 0 0 0 0 1 +0 +0 1 0 0 1 0 0 1 0 1 0 1 1 +0 +0 1 1 1 1 1 0 1 0 1 0 1 0 +0 +1 1 1 1 0 1 1 0 1 1 1 0 0 +1 +0 1 0 0 1 1 1 0 1 0 1 0 1 +1 +1 1 0 1 1 0 1 1 1 0 1 1 1 +0 +1 1 1 0 0 0 1 1 1 1 1 0 1 +1 +1 0 1 0 1 1 0 0 1 0 0 0 0 +1 +1 0 0 0 0 0 1 0 1 0 1 1 0 +1 +1 0 0 1 0 1 0 1 1 1 1 1 1 +1 +1 0 1 0 0 0 1 0 0 0 0 0 1 +0 +1 0 1 0 1 0 0 1 1 1 0 0 1 +1 +1 0 0 0 0 1 1 0 0 0 0 0 0 +1 +1 0 0 0 1 0 1 0 0 0 0 0 1 +0 +0 1 0 1 0 1 0 0 1 1 1 0 0 +0 +0 0 1 1 1 0 0 0 1 0 1 0 0 +1 +0 1 0 0 1 0 1 0 1 0 0 0 0 +0 +1 1 0 1 1 1 1 0 1 1 1 1 0 +0 +1 0 1 0 1 0 0 1 1 0 0 1 1 +1 +0 0 0 0 0 1 1 0 0 0 1 1 1 +1 +1 1 1 1 0 0 0 0 0 0 0 1 0 +1 +0 0 1 1 1 0 0 1 1 0 0 1 0 +0 +0 0 1 0 0 1 0 1 0 1 1 0 1 +0 +0 1 0 0 1 1 1 1 0 0 1 1 1 +0 +0 0 1 1 1 0 1 0 1 1 1 1 1 +1 +0 0 0 0 0 1 1 1 0 0 0 0 1 +0 +1 0 0 1 0 1 0 0 1 1 0 1 0 +0 +0 0 1 1 0 1 1 1 1 0 0 1 0 +1 +1 0 1 0 1 0 0 1 1 0 1 1 0 +1 +1 1 0 0 1 1 1 0 0 0 1 1 0 +1 +0 1 1 1 1 1 0 0 0 0 1 1 1 +0 +0 0 1 0 0 1 0 0 0 0 0 0 1 +1 +0 0 1 1 1 1 0 0 1 1 1 1 0 +0 +1 0 1 0 0 1 0 0 1 1 0 1 1 +1 +1 0 1 1 1 1 1 0 1 1 0 0 0 +0 +1 0 1 1 1 1 0 1 0 0 1 0 1 +0 +0 1 0 0 0 1 0 1 0 1 1 1 0 +0 +0 0 0 0 0 1 0 0 1 0 1 1 0 +0 +1 0 1 1 0 1 0 0 0 0 0 1 1 +0 +1 1 0 1 1 0 1 0 1 0 0 0 0 +0 +1 0 0 0 1 1 1 0 1 0 1 0 0 +0 +1 1 1 1 1 0 0 0 0 1 0 1 0 +1 +1 1 0 0 1 1 1 0 1 1 0 0 0 +1 +0 1 0 1 0 0 1 1 1 0 0 0 1 +0 +0 0 1 0 0 1 1 0 1 0 0 1 0 +1 +1 0 0 1 0 0 1 1 0 1 1 1 1 +0 +1 0 1 1 1 1 0 0 0 0 1 1 1 +0 +0 0 0 0 0 1 0 1 0 1 0 1 1 +1 +1 1 0 0 0 1 0 0 0 1 0 1 0 +1 +0 0 0 1 1 0 1 1 1 1 0 1 0 +1 +1 1 0 1 1 0 1 0 0 1 1 1 0 +0 +1 1 0 0 1 1 0 1 1 1 0 0 1 +0 +0 1 1 0 0 0 0 0 0 0 0 0 0 +0 +0 0 1 1 0 0 1 1 1 1 1 0 1 +0 +1 1 0 1 1 1 0 1 0 1 0 1 0 +0 +1 0 1 0 1 1 0 0 1 1 0 0 0 +0 +1 1 0 1 0 1 0 0 0 0 1 1 1 +1 +0 1 1 0 0 1 0 0 1 0 1 0 1 +0 +0 0 0 1 1 0 1 1 0 1 1 0 1 +1 +1 0 1 0 0 1 0 1 0 1 1 0 1 +1 +1 0 0 1 0 0 0 0 1 0 0 1 0 +0 +1 0 0 0 1 0 0 1 1 1 1 0 0 +0 +0 1 1 0 0 0 0 0 1 0 0 1 0 +0 +1 1 1 1 0 1 1 1 1 0 1 0 0 +1 +1 1 0 0 1 1 1 1 1 0 1 0 0 +0 +1 0 1 0 0 1 0 1 0 1 0 1 1 +1 +0 0 1 1 0 1 0 1 0 0 1 0 1 +0 +0 1 1 0 0 1 1 1 0 0 1 0 0 +0 +1 1 1 1 0 1 0 1 0 0 1 0 1 +0 +1 1 0 0 1 1 0 1 0 1 1 1 1 +1 +1 1 1 1 0 0 0 0 0 1 1 1 1 +0 +1 1 1 0 1 0 0 0 0 0 1 1 0 +0 +1 1 1 0 0 0 1 0 1 0 0 0 1 +0 +1 1 0 1 1 0 1 1 0 1 0 0 0 +1 +0 1 1 0 0 0 0 1 0 1 1 1 0 +0 +1 1 0 0 1 1 0 1 1 0 0 0 0 +0 +0 0 1 1 1 0 0 0 1 1 1 1 0 +1 +1 1 0 1 0 1 1 0 0 0 1 0 1 +1 +0 0 1 0 0 1 1 1 0 1 1 1 1 +0 +1 0 1 0 0 1 0 1 1 1 0 0 1 +1 +1 0 1 0 0 0 0 1 1 1 0 0 1 +0 +0 0 1 0 0 1 0 1 1 1 1 1 0 +1 +0 0 1 0 0 0 1 0 1 0 1 0 0 +0 +1 1 0 1 1 0 0 1 1 0 1 1 1 +1 +1 0 0 0 0 0 0 0 1 1 1 1 1 +0 +1 0 1 0 0 0 0 1 1 1 1 1 1 +0 +0 0 1 1 0 0 1 0 0 0 0 0 1 +0 +1 0 1 1 0 1 0 0 1 0 0 1 0 +0 +1 1 1 0 1 1 1 1 1 0 1 1 0 +0 +1 1 1 0 1 1 1 0 1 0 0 0 1 +0 +1 1 0 0 0 1 0 0 0 0 0 1 0 +0 +1 0 1 1 1 1 1 0 1 0 1 0 0 +0 +0 0 0 1 1 1 0 1 0 1 0 1 1 +1 +0 0 1 0 1 0 0 1 0 1 0 1 0 +1 +1 1 1 1 0 1 1 1 0 1 1 1 0 +0 +1 0 1 1 0 1 1 1 1 0 1 1 0 +1 +1 1 1 1 0 1 0 0 1 1 1 1 1 +0 +1 0 1 1 0 0 0 1 0 1 0 0 1 +0 +0 0 1 0 1 0 1 0 1 1 1 0 1 +1 +0 1 1 0 1 0 0 1 1 0 1 0 1 +1 +1 0 1 1 0 1 0 0 1 0 0 0 0 +1 +1 1 0 1 1 0 1 1 0 0 0 0 1 +1 +0 1 0 1 1 1 0 0 1 0 0 1 1 +1 +1 0 1 0 1 0 0 0 1 1 0 0 1 +0 +1 1 0 1 1 0 0 0 1 0 0 0 1 +0 +1 0 1 1 0 1 0 1 1 0 1 1 0 +0 +0 1 1 1 1 1 1 0 1 1 0 0 1 +1 +1 0 0 0 0 1 1 0 0 0 1 1 1 +0 +0 1 1 0 1 0 0 0 0 1 1 0 0 +1 +1 0 0 0 1 1 0 1 1 1 1 1 0 +0 +1 1 1 1 0 0 0 0 0 1 1 0 0 +0 +1 1 1 0 0 1 0 1 0 0 1 1 1 +0 +0 1 0 0 1 1 1 0 1 1 0 1 0 +1 +0 0 0 1 1 1 0 0 1 0 0 0 0 +0 +0 1 0 1 0 0 1 0 0 1 0 0 1 +1 +1 1 0 0 1 0 1 0 0 0 0 0 0 +0 +0 1 1 1 0 1 0 0 1 1 0 1 1 +0 +1 1 0 0 1 0 0 0 1 1 0 0 0 +1 +1 1 1 0 0 0 1 1 0 1 1 0 0 +1 +1 1 1 1 1 1 1 1 0 1 0 0 0 +1 +1 0 0 1 1 0 0 1 1 1 0 1 0 +1 +0 1 0 1 1 1 0 0 1 0 0 1 0 +0 +0 0 0 1 0 0 1 1 0 0 0 0 0 +1 +1 0 0 1 0 1 1 1 0 1 1 1 1 +1 +0 1 0 1 1 1 0 1 0 0 1 1 1 +0 +0 1 1 1 0 1 1 0 0 1 1 0 0 +1 +1 0 1 0 0 1 1 0 1 0 1 1 0 +1 +1 0 0 0 0 0 1 1 0 0 0 0 1 +0 +0 0 1 0 1 0 1 0 1 0 1 1 1 +1 +0 1 1 1 0 1 0 1 0 0 0 1 1 +1 +0 1 0 0 1 0 1 0 0 0 0 1 1 +1 +1 1 1 1 0 0 1 0 0 1 0 0 1 +1 +1 0 0 0 1 1 1 1 1 0 1 0 0 +1 +1 1 1 1 0 1 0 0 0 1 0 0 1 +1 +1 0 0 1 0 0 0 0 1 1 1 0 0 +1 +1 1 1 1 1 0 1 0 1 1 0 0 0 +0 +0 1 0 1 1 1 0 1 1 0 1 1 1 +1 +1 1 0 0 0 0 1 0 0 1 1 0 1 +0 +0 1 0 0 0 1 0 1 0 1 1 1 1 +1 +0 1 1 0 0 1 1 1 0 0 0 1 1 +1 +1 1 0 1 0 1 0 0 1 0 0 1 0 +0 +0 0 0 1 1 1 0 0 0 0 0 1 0 +0 +0 0 1 1 1 1 0 0 0 0 1 1 0 +0 +1 1 0 0 1 0 1 1 1 0 1 1 0 +0 +1 0 0 0 0 1 1 1 0 0 0 1 1 +0 +1 1 0 1 1 1 0 1 1 0 1 1 1 +0 +1 0 1 1 1 1 0 1 0 0 1 1 1 +1 +1 1 0 0 1 0 0 1 1 1 1 0 0 +1 +1 1 1 0 0 1 0 1 0 1 1 1 1 +1 +0 1 1 1 1 1 0 1 1 0 1 1 0 +1 +0 0 1 0 1 0 1 1 0 0 0 1 1 +0 +1 1 1 1 1 1 0 0 1 0 1 1 1 +0 +1 1 1 1 1 0 0 0 0 1 0 0 0 +0 +0 0 1 0 1 0 1 0 0 1 0 1 1 +0 +1 0 0 1 1 0 0 1 1 0 0 1 0 +0 +0 0 0 0 0 0 1 1 0 1 1 1 1 +0 +1 1 0 1 0 0 1 1 0 1 1 1 1 +1 +0 1 0 1 1 0 1 1 0 0 1 1 1 +0 +0 1 1 1 1 0 1 0 0 0 0 0 0 +1 +1 1 0 1 1 1 1 0 1 1 0 1 1 +0 +1 0 1 0 0 1 1 1 0 0 0 0 1 +0 +0 1 0 0 1 0 0 1 1 1 0 0 1 +0 +0 1 1 0 1 0 1 0 0 1 0 0 0 +1 +0 1 0 1 1 1 1 1 0 0 0 1 0 +1 +1 0 0 1 1 0 1 1 1 0 1 0 0 +1 +1 0 1 0 0 0 0 1 1 0 0 0 1 +1 +0 0 0 1 1 1 0 0 0 1 1 1 1 +1 +0 0 1 1 0 1 0 0 0 0 1 1 0 +1 +0 0 0 1 0 0 1 1 1 1 0 1 0 +0 +0 0 1 0 0 1 0 1 0 0 0 1 1 +1 +0 1 1 0 1 1 0 1 1 1 0 0 1 +0 +0 1 0 1 0 0 0 0 1 0 1 0 0 +0 +0 1 1 1 1 1 1 1 0 0 0 0 0 +1 +1 0 0 0 1 0 0 0 0 1 0 1 0 +0 +1 1 1 0 1 1 0 0 1 1 0 1 1 +1 +1 0 0 1 1 1 1 0 1 0 0 0 0 +0 +1 1 1 1 1 0 1 0 0 1 1 1 1 +0 +1 1 1 0 1 1 1 1 0 1 0 1 0 +1 +1 0 0 1 0 0 0 1 0 0 1 1 0 +1 +0 0 0 1 1 0 0 1 1 0 1 1 0 +0 +1 0 1 0 1 1 0 0 0 1 1 0 0 +0 +1 0 1 1 1 1 0 0 0 1 1 1 0 +0 +0 0 0 1 0 1 0 0 1 0 1 1 1 +0 +0 0 1 1 1 1 0 1 1 0 1 1 0 +0 +1 0 1 1 0 0 0 0 1 1 0 1 0 +0 +0 0 1 0 1 0 0 1 0 0 1 0 1 +1 +1 1 1 1 0 0 0 0 1 0 1 1 1 +0 +1 0 1 1 1 0 0 0 1 0 0 0 0 +1 +1 1 1 0 1 1 1 1 1 0 1 1 1 +1 +1 1 1 0 0 1 1 0 1 0 0 1 0 +1 +0 0 1 0 0 0 0 1 0 1 0 1 0 +0 +0 0 1 1 1 1 1 1 1 0 0 1 1 +1 +0 1 1 0 1 1 1 1 1 0 0 1 0 +0 +1 1 0 0 1 0 1 0 1 0 1 1 0 +1 +1 1 0 0 1 1 0 1 0 1 0 0 0 +0 +1 1 0 1 1 1 0 0 1 1 0 1 1 +1 +1 0 0 0 1 0 0 1 1 1 1 1 0 +1 +0 0 1 1 0 0 1 0 1 1 0 1 0 +0 +1 0 1 0 0 0 1 0 1 0 1 1 1 +1 +0 0 0 1 0 1 1 1 1 0 1 1 0 +1 +0 0 1 1 0 1 1 0 1 0 0 0 0 +1 +1 0 0 0 1 1 0 1 0 1 1 0 1 +1 +0 1 1 0 0 1 0 1 0 1 0 1 0 +0 +0 0 0 1 0 0 0 1 0 0 1 0 1 +0 +1 1 1 1 0 1 1 0 1 1 1 0 1 +0 +0 1 1 1 1 1 1 0 1 0 1 1 0 +1 +0 0 0 1 1 1 1 1 0 0 0 0 0 +1 +0 1 1 0 1 0 0 1 1 0 0 0 0 +1 +1 1 0 0 1 1 1 0 0 0 0 0 0 +1 +0 0 1 1 0 0 0 1 1 1 0 1 0 +0 +1 1 1 1 1 1 1 1 0 0 1 0 0 +1 +0 0 1 0 0 1 0 0 0 1 0 1 1 +1 +0 0 0 0 0 1 0 1 0 1 1 1 0 +1 +1 1 1 0 0 1 1 0 0 1 1 1 1 +1 +1 0 1 1 1 1 1 1 0 1 1 1 0 +0 +1 0 0 1 0 1 1 1 0 1 0 1 1 +0 +1 1 0 0 1 0 1 1 0 1 0 0 1 +1 +0 0 1 0 1 1 1 1 1 0 1 1 0 +0 +1 1 1 0 0 0 1 1 1 1 0 1 1 +1 +0 0 0 1 1 1 1 0 1 0 1 0 0 +0 +0 0 1 1 1 0 0 0 0 1 1 0 0 +1 +1 1 1 0 1 0 0 1 1 1 0 0 1 +0 +1 1 0 1 1 1 0 0 1 1 1 0 0 +0 +0 1 1 0 1 1 0 1 0 1 0 0 0 +0 +1 0 0 0 1 1 1 1 1 1 1 0 0 +0 +0 1 1 0 0 0 0 1 0 1 0 0 0 +0 +0 1 0 0 1 1 0 0 1 0 0 0 0 +0 +1 0 0 1 1 1 0 1 0 0 1 0 0 +0 +1 1 0 1 1 1 1 0 0 0 1 0 0 +1 +1 1 1 1 0 1 1 1 0 0 0 0 1 +0 +0 1 0 0 1 0 1 0 1 1 0 1 0 +0 +0 1 0 1 0 0 0 0 1 1 1 0 0 +1 +0 0 0 0 1 0 0 0 0 1 0 1 0 +1 +1 1 0 0 0 1 1 1 0 1 1 0 0 +1 +1 1 1 0 1 0 0 1 1 0 1 1 0 +0 +1 1 1 0 0 0 0 1 0 1 1 0 0 +0 +0 1 0 1 0 1 1 1 0 1 1 1 0 +0 +1 0 0 1 0 0 1 1 0 1 1 1 0 +1 +1 1 0 1 0 0 1 0 0 1 1 1 0 +1 +0 1 1 0 0 0 0 1 0 0 0 0 0 +1 +1 1 0 1 1 1 1 0 1 0 1 1 0 +1 +0 0 0 0 1 1 0 1 1 0 0 1 0 +1 +0 0 1 0 1 0 1 1 0 1 1 1 1 +0 +0 0 0 0 1 1 0 1 1 1 0 0 1 +0 +0 0 0 1 0 0 1 1 0 1 0 1 1 +0 +1 1 1 0 1 0 1 1 0 0 0 0 0 +0 +1 0 0 1 0 0 1 0 1 1 0 1 0 +0 +0 1 0 1 1 0 1 0 1 0 1 0 1 +1 +0 0 1 0 1 1 1 1 1 0 1 0 0 +1 +0 1 1 0 0 0 1 0 1 1 0 1 1 +1 +0 1 0 0 1 0 1 0 0 1 0 0 1 +1 +0 0 0 1 0 1 0 1 0 1 1 0 0 +1 +1 1 0 1 1 1 1 1 1 0 1 1 1 +1 +1 1 1 1 0 0 0 1 1 0 1 1 1 +1 +1 1 1 1 0 1 1 1 0 1 0 1 0 +1 +1 1 0 0 0 0 1 0 0 0 0 0 1 +0 +0 0 0 0 0 0 1 1 0 1 0 1 0 +0 +1 0 0 0 0 1 0 1 0 0 1 1 0 +1 +0 1 1 1 0 0 0 1 0 0 0 1 0 +1 +0 1 1 0 1 1 0 0 0 0 1 1 0 +0 +1 0 1 0 0 1 1 0 1 1 0 1 1 +0 +0 0 0 0 1 1 1 0 0 0 1 1 0 +1 +0 1 1 0 0 1 1 1 1 0 0 1 0 +1 +1 0 1 0 1 1 1 0 1 1 1 1 0 +1 +0 1 1 0 1 0 0 0 1 0 0 0 1 +1 +0 1 0 1 1 0 0 0 1 1 0 1 1 +1 +0 1 0 1 0 1 1 0 1 0 1 1 1 +0 +0 0 0 1 1 1 1 0 1 1 1 0 1 +0 +0 0 0 0 1 1 1 1 1 1 0 1 1 +0 +0 0 1 0 1 1 0 0 1 0 0 0 0 +0 +1 0 0 0 1 0 1 1 1 1 1 1 1 +1 +1 0 1 1 0 1 1 1 0 1 1 0 0 +0 +1 1 1 1 0 0 0 0 1 1 0 0 0 +0 +1 1 1 1 0 0 0 0 0 0 0 0 1 +1 +1 0 0 1 0 0 1 0 0 0 1 1 0 +1 +0 1 0 0 0 0 0 1 0 1 1 1 1 +0 +0 1 1 1 0 1 1 0 0 0 0 1 1 +1 +0 0 1 1 1 0 1 1 0 1 0 0 1 +1 +0 1 0 0 1 1 0 1 1 1 1 1 1 +1 +0 0 0 0 1 1 0 0 0 1 1 0 1 +1 +0 0 0 1 0 0 1 1 1 0 1 1 1 +1 +1 1 1 1 1 0 0 0 0 1 0 0 1 +1 +1 1 1 0 0 1 1 0 0 1 0 0 1 +1 +1 0 1 0 0 1 0 1 1 1 0 1 0 +1 +1 0 1 0 0 0 1 1 1 1 0 0 0 +0 +1 0 1 0 0 1 1 0 1 1 0 1 0 +1 +1 0 1 1 0 0 1 1 0 1 0 0 0 +0 +0 1 1 1 0 1 0 0 0 1 1 0 1 +1 +0 0 1 0 0 1 1 1 1 1 0 0 1 +1 +1 1 1 0 0 0 1 1 0 1 0 0 1 +1 +0 1 1 1 1 1 0 1 0 0 0 1 0 +1 +0 0 0 1 1 1 1 1 1 0 1 1 0 +0 +0 0 0 0 1 0 1 1 0 1 1 0 1 +0 +1 0 1 0 1 1 0 0 1 1 0 0 1 +1 +1 0 1 1 1 1 1 1 0 0 1 1 0 +1 +0 0 0 1 1 0 0 0 1 0 0 1 1 +1 +1 0 0 0 1 0 1 0 0 0 0 1 1 +1 +0 0 1 1 0 0 0 1 0 0 1 1 0 +1 +0 1 0 0 1 1 1 0 0 1 0 1 1 +1 +1 1 1 1 1 0 0 1 1 1 0 0 0 +0 +0 0 1 0 1 0 0 1 1 1 1 1 0 +1 +0 1 1 0 1 0 1 0 0 0 1 1 1 +1 +1 1 0 0 0 1 0 0 0 1 0 1 1 +0 +0 1 0 0 1 1 1 0 1 0 0 1 0 +0 +0 0 0 1 0 1 1 1 1 1 1 0 1 +0 +1 1 1 0 1 1 1 0 1 1 1 1 0 +0 +1 0 1 1 0 1 1 1 1 1 0 0 0 +0 +0 1 0 1 1 1 0 1 1 1 0 1 1 +1 +1 1 1 0 1 0 1 1 1 0 1 1 1 +0 +0 0 1 1 1 0 0 1 1 0 1 0 0 +0 +0 1 0 1 0 1 0 1 1 1 0 0 0 +0 +0 0 1 0 1 1 1 1 0 1 0 0 1 +1 +1 1 1 0 1 0 1 1 0 1 0 1 0 +0 +0 1 0 0 0 1 1 1 1 1 0 1 0 +1 +1 0 1 1 0 0 1 0 0 0 1 1 1 +1 +1 0 0 1 1 1 0 0 0 0 0 1 0 +1 +0 0 0 1 0 1 1 1 0 1 0 1 0 +0 +1 1 0 1 0 1 1 0 0 1 1 1 1 +1 +0 0 1 1 0 1 0 1 1 0 0 1 1 +1 +1 0 1 0 0 1 1 1 0 1 1 1 1 +1 +0 0 0 0 1 0 1 1 1 1 1 0 1 +1 +0 0 0 1 0 0 1 0 1 1 0 1 0 +1 +0 0 0 1 1 0 1 0 1 1 1 1 0 +1 +0 1 0 1 1 0 0 1 0 1 0 1 0 +0 +0 1 0 0 1 1 1 1 1 1 1 1 0 +1 +0 1 1 0 0 1 1 0 0 0 0 0 0 +0 +1 0 0 0 0 1 0 1 1 1 0 1 0 +0 +0 1 0 1 0 1 1 1 1 0 1 1 1 +1 +1 1 1 0 0 1 0 1 1 1 1 0 0 +0 +0 0 0 1 0 0 1 1 0 1 1 0 0 +1 +1 0 0 0 0 1 1 1 0 1 1 0 0 +0 +1 1 1 1 0 1 0 1 0 1 0 0 0 +1 +1 0 0 1 1 1 0 1 0 1 1 1 1 +1 +1 0 1 0 1 0 0 0 0 1 1 0 1 +0 +0 0 1 0 1 1 0 0 1 0 1 1 0 +0 +1 1 1 1 0 1 1 1 0 0 1 0 0 +0 +1 0 1 1 1 0 0 0 1 0 0 1 1 +1 +1 1 0 0 1 1 0 0 1 0 1 1 1 +0 +1 0 1 1 0 1 0 1 0 1 1 1 0 +0 +0 1 0 0 1 0 1 1 1 1 0 1 1 +0 +0 0 1 1 1 0 0 1 0 0 1 1 0 +0 +1 0 0 0 1 1 0 0 0 1 1 0 1 +0 +0 1 0 1 0 1 0 0 0 1 0 1 1 +0 +0 0 1 1 0 1 0 1 0 1 0 0 0 +1 +0 0 1 1 0 0 1 0 1 1 0 0 0 +1 +1 0 1 1 1 1 1 1 0 0 0 0 1 +0 +1 1 1 1 1 0 0 1 1 0 0 1 1 +1 +1 0 0 1 1 0 0 1 0 0 1 1 1 +1 +0 1 1 0 0 1 1 1 0 1 1 0 1 +0 +0 1 1 1 0 0 1 1 0 1 0 1 0 +1 +1 0 0 1 1 1 0 0 0 0 0 0 0 +0 +0 1 1 0 0 0 1 1 0 1 0 0 0 +1 +1 1 1 0 0 1 1 0 1 0 0 1 1 +0 +0 0 0 0 0 0 0 0 1 0 0 1 1 +1 +1 0 1 0 1 1 1 0 1 0 1 1 1 +1 +1 0 1 1 0 0 0 1 1 0 0 0 0 +1 +0 0 1 1 0 0 1 1 1 1 0 0 1 +1 +0 1 1 1 1 0 1 1 1 0 0 1 1 +1 +1 0 1 0 0 0 1 1 1 0 1 0 0 +0 +0 0 0 0 1 1 1 0 1 1 1 1 1 +0 +0 1 1 0 1 0 0 1 1 0 0 1 0 +0 +0 0 0 0 1 1 0 0 0 1 0 0 0 +1 +0 1 0 0 1 1 0 1 0 0 0 1 0 +1 +1 1 0 1 1 0 1 1 0 0 0 1 1 +0 +1 1 0 0 1 0 0 0 0 1 1 0 1 +0 +1 1 1 1 0 1 0 0 1 1 0 0 0 +1 +0 1 0 1 1 0 1 0 1 1 0 1 0 +1 +0 0 0 1 1 1 1 0 0 1 1 1 0 +1 +0 1 1 1 1 0 1 1 0 1 0 1 0 +0 +1 1 0 1 1 1 0 1 0 0 1 1 1 +1 +1 0 0 0 0 1 0 1 0 0 0 0 1 +0 +0 0 0 1 1 0 0 0 0 1 1 1 0 +1 +1 1 1 1 1 1 1 1 0 0 1 1 0 +0 +1 1 1 0 1 0 0 0 0 1 0 0 0 +1 +1 0 0 1 0 0 1 1 0 1 0 1 0 +0 +0 0 1 0 1 0 1 0 1 1 0 1 0 +0 +0 0 1 0 1 1 0 0 1 1 0 0 0 +1 +0 0 1 1 1 0 0 1 1 0 0 1 1 +1 +1 0 1 0 0 1 1 1 0 0 1 0 0 +0 +0 1 0 0 1 1 1 0 1 1 1 1 1 +1 +0 1 1 1 1 1 0 0 0 1 0 0 1 +1 +1 1 1 1 0 1 1 1 1 1 0 1 0 +0 +1 0 0 0 1 1 1 1 0 0 1 1 1 +0 +1 1 1 0 0 0 0 1 1 0 1 1 1 +0 +1 1 1 0 0 1 0 1 1 0 0 0 1 +1 +0 1 1 0 0 0 1 1 1 1 1 1 1 +1 +1 1 1 0 1 0 0 1 0 0 1 0 0 +0 +0 1 0 1 1 1 0 0 0 0 1 0 0 +1 +1 0 1 1 1 1 1 0 0 1 0 1 1 +1 +1 0 0 0 1 0 0 0 1 1 0 1 1 +0 +0 0 1 0 1 1 1 0 1 0 0 0 0 +1 +0 1 1 0 0 0 0 0 1 1 1 1 0 +0 +1 1 1 1 0 0 1 0 1 1 1 0 1 +1 +1 0 1 0 1 0 0 1 0 1 0 1 1 +1 +0 0 1 0 0 0 0 0 1 0 1 0 1 +0 +0 0 1 0 1 1 1 1 0 0 0 0 1 +0 +1 1 0 1 0 0 1 0 0 0 0 1 0 +1 +1 0 0 0 0 0 0 0 0 1 1 0 1 +0 +0 1 1 1 0 1 0 1 0 1 1 1 1 +1 +0 0 1 0 0 1 0 1 1 1 0 0 1 +0 +1 0 0 0 1 0 1 1 1 1 0 1 1 +0 +1 0 0 0 0 0 0 1 1 0 0 0 1 +0 +1 1 1 1 1 1 1 0 0 0 0 1 0 +0 +0 0 1 1 1 1 0 1 1 1 1 1 1 +0 +0 0 1 1 1 0 1 1 0 1 1 1 1 +1 +0 1 0 1 1 0 1 1 1 1 0 1 1 +1 +0 0 0 1 1 0 0 1 1 0 1 0 0 +1 +0 0 1 0 0 1 1 0 1 0 0 0 0 +0 +1 1 1 1 0 1 0 0 0 1 1 1 0 +0 +1 1 1 1 0 0 1 0 1 1 1 0 0 +0 +0 0 1 0 1 0 0 0 0 1 0 0 1 +0 +1 0 0 0 1 1 1 0 0 1 0 1 1 +1 +1 1 0 0 1 1 1 1 0 0 1 1 0 +0 +1 0 0 0 0 1 1 1 0 1 1 1 0 +1 +1 1 1 1 0 0 1 0 0 0 1 1 0 +1 +0 1 1 1 0 1 0 0 0 0 1 0 0 +1 +0 1 0 0 0 0 1 0 0 1 0 1 0 +0 +1 1 0 1 0 0 0 0 0 1 0 1 0 +1 +0 0 0 0 1 0 1 0 0 0 1 1 1 +1 +0 1 0 1 0 1 1 1 0 1 1 1 1 +1 +0 0 0 0 1 0 1 0 0 1 1 1 1 +0 +0 0 1 1 0 0 1 0 0 1 0 0 0 +0 +0 0 1 0 1 1 0 1 0 1 1 1 0 +1 +0 0 1 1 0 0 0 1 1 1 1 0 0 +0 +1 0 0 0 0 1 0 1 1 1 0 0 1 +0 +1 1 0 0 0 0 1 1 0 1 1 1 1 +0 +1 0 0 0 1 0 1 1 0 0 1 0 0 +1 +1 0 1 1 1 0 1 0 0 1 1 1 0 +0 +1 0 0 0 1 1 0 0 0 0 1 1 1 +0 +1 0 0 1 1 0 1 1 1 0 0 1 1 +0 +0 0 0 1 0 0 0 1 1 1 0 1 0 +1 +0 1 0 1 0 0 0 1 1 1 1 1 1 +0 +1 0 1 1 1 1 0 0 0 0 1 0 1 +1 +1 0 0 0 0 0 0 0 1 1 1 1 0 +1 +1 0 0 1 1 0 0 1 1 0 1 1 0 +1 +0 0 1 0 1 0 1 1 1 1 1 1 1 +1 +0 0 1 1 0 1 1 1 1 0 1 1 1 +1 +1 1 1 0 1 0 1 1 0 1 1 0 0 +0 +1 0 1 1 0 1 0 0 0 1 1 1 0 +1 +0 0 0 1 1 1 1 0 0 0 0 0 0 +0 +1 1 1 0 0 0 0 0 1 0 0 0 0 +0 +0 0 0 0 0 0 0 0 1 1 0 0 1 +1 +0 1 1 1 0 0 1 0 0 0 1 0 1 +0 +1 0 1 1 1 0 0 0 1 1 1 0 0 +1 +0 0 1 0 0 1 1 0 1 1 0 1 0 +0 +0 0 0 0 1 1 0 1 0 0 1 0 0 +0 +1 1 0 0 0 1 0 0 0 0 0 0 0 +1 +0 1 1 1 0 0 0 1 1 0 0 0 1 +0 +0 0 0 0 0 0 1 0 0 1 1 0 0 +1 +0 0 0 0 1 0 0 0 0 1 1 1 0 +0 +1 0 0 0 0 1 1 0 0 1 0 1 1 +0 +0 1 1 1 1 1 0 0 1 0 0 0 0 +0 +1 0 1 0 0 0 0 1 1 0 0 1 0 +1 +1 0 1 1 0 1 1 1 1 0 1 1 1 +0 +1 0 1 0 0 1 1 0 1 0 1 0 1 +1 +1 0 1 1 0 0 1 1 0 0 0 0 1 +0 +0 1 1 1 0 0 1 0 0 1 1 1 1 +0 +1 0 0 1 1 0 0 0 0 1 0 1 0 +1 +0 0 1 1 0 1 0 0 1 0 1 0 1 +0 +1 1 1 1 1 0 0 0 0 1 0 1 1 +0 +0 0 0 0 1 0 0 1 0 0 0 1 1 +0 +1 0 1 1 1 1 0 0 1 0 1 0 0 +1 +0 0 1 0 0 1 1 0 0 1 1 1 1 +1 +0 1 0 1 0 1 0 0 1 0 1 1 0 +0 +1 1 1 1 0 0 1 0 1 0 1 1 1 +1 +1 1 0 0 1 0 0 0 0 1 1 1 1 +1 +1 1 1 1 0 1 1 1 1 1 0 1 1 +1 +0 1 0 1 1 1 0 1 0 0 0 0 0 +1 +1 1 0 1 0 1 1 0 0 1 0 1 1 +0 +0 0 1 1 0 1 1 0 1 0 1 1 1 +0 +0 1 0 0 0 1 0 1 0 0 0 1 1 +1 +0 1 1 1 1 0 0 0 1 0 1 0 0 +0 +0 1 0 1 0 1 0 0 1 1 1 1 0 +1 +1 1 0 1 0 1 1 0 0 0 0 0 1 +0 +1 0 0 1 1 0 0 0 0 0 1 1 1 +0 +0 0 1 0 0 0 0 1 1 0 1 0 1 +1 +0 0 0 0 1 0 0 0 0 1 0 1 1 +0 +0 1 1 0 0 0 1 1 1 0 1 1 0 +1 +1 0 0 1 1 1 0 0 1 1 0 0 1 +1 +0 0 1 1 1 0 0 0 1 1 1 0 1 +1 +1 0 1 0 1 1 1 0 0 0 1 1 0 +1 +0 0 0 0 1 1 1 0 1 1 1 0 1 +1 +1 1 0 1 0 0 0 1 0 0 0 0 0 +0 +0 1 0 1 1 0 0 0 1 0 1 1 1 +1 +1 0 1 0 1 0 0 0 0 1 0 1 1 +0 +1 0 0 0 0 1 1 1 0 0 1 0 1 +0 +1 0 1 0 0 0 1 0 1 0 1 0 1 +0 +0 1 1 0 1 1 0 1 1 0 0 0 0 +0 +1 0 1 0 1 1 1 0 0 1 1 1 1 +1 +0 1 1 1 1 0 0 0 1 0 1 0 1 +1 +0 0 1 0 0 0 1 0 1 0 0 0 0 +1 +0 1 0 0 1 1 1 1 1 1 1 0 0 +0 +1 1 1 1 1 0 0 0 0 1 1 1 0 +0 +0 1 0 0 1 1 0 1 1 0 0 1 1 +1 +1 0 0 0 0 1 0 0 1 1 1 0 0 +1 +1 1 1 1 0 0 1 0 1 1 0 0 1 +0 +1 1 1 1 0 1 0 1 1 0 1 0 0 +0 +0 1 1 0 0 1 1 1 1 1 1 1 0 +1 +1 0 1 1 0 1 1 0 1 1 1 1 1 +0 +0 0 1 1 1 1 1 0 0 1 1 0 1 +0 +1 1 1 0 1 1 1 0 0 1 0 0 1 +0 +1 0 0 0 1 1 0 0 1 0 0 0 0 +0 +1 1 0 0 0 1 1 1 1 1 1 0 0 +0 +1 1 1 1 1 1 0 0 0 1 0 0 1 +0 +0 1 1 1 0 1 1 1 1 0 1 1 1 +0 +1 1 1 1 1 1 0 1 1 1 1 1 1 +0 +0 1 1 1 1 0 1 0 0 0 1 1 1 +0 +1 0 0 1 0 0 0 0 0 0 1 1 0 +0 +1 1 0 0 1 1 1 1 0 1 0 0 0 +1 +0 0 0 0 0 0 1 0 1 0 0 0 1 +1 +1 1 1 1 0 1 1 1 1 1 0 0 1 +0 +1 0 1 0 1 1 1 1 1 0 0 0 1 +0 +0 1 0 1 1 1 1 1 1 0 1 1 1 +0 +1 1 1 1 0 0 0 1 0 0 0 1 0 +0 +0 1 1 0 0 0 1 1 0 1 1 1 0 +1 +1 0 1 1 1 1 1 0 1 1 0 1 1 +0 +0 0 1 1 1 1 1 1 0 1 1 1 1 +0 +0 1 1 1 1 0 1 0 1 0 0 0 1 +1 +1 1 1 0 1 1 1 1 0 0 0 0 1 +0 +0 0 1 1 0 0 0 1 0 0 1 0 0 +0 +1 0 1 1 1 1 1 0 0 1 1 0 0 +0 +1 0 1 1 0 0 1 1 1 1 1 0 0 +0 +1 1 0 1 1 1 0 1 1 0 0 0 0 +1 +0 0 0 0 0 0 0 0 0 1 0 0 1 +0 +1 1 1 0 1 1 1 1 0 0 0 0 0 +1 +0 1 1 1 0 1 1 1 0 1 1 0 0 +0 +0 0 1 1 0 0 1 1 1 0 0 1 0 +0 +0 1 0 0 0 0 1 1 1 0 0 0 1 +1 +0 1 1 1 0 1 0 1 0 0 0 0 0 +1 +0 1 0 1 1 0 1 1 1 0 1 1 1 +1 +0 0 0 0 0 0 0 0 1 0 0 0 0 +1 +1 1 1 1 1 1 0 0 0 1 1 0 1 +1 +1 1 0 0 0 0 0 0 1 0 0 1 1 +1 +0 1 0 0 0 0 1 0 1 1 0 0 0 +0 +0 0 1 1 1 1 0 1 0 1 1 0 1 +0 +1 0 1 1 1 0 0 0 1 1 0 1 1 +0 +0 0 0 1 0 1 1 1 0 1 0 0 1 +0 +0 0 1 0 0 1 1 0 0 1 1 0 0 +1 +1 1 0 1 0 0 0 0 0 1 1 1 1 +1 +0 1 0 1 1 0 1 0 1 0 0 0 1 +0 +1 0 0 1 1 0 1 0 1 1 0 0 0 +0 +0 1 0 0 1 0 0 0 0 1 0 0 0 +1 +0 1 0 1 1 1 1 0 0 1 0 1 1 +0 +1 0 0 1 1 0 0 1 1 0 1 0 0 +0 +0 1 0 1 1 0 0 0 0 0 1 1 1 +0 +1 1 1 0 0 0 0 0 1 0 0 0 1 +1 +0 1 0 0 0 0 0 0 1 1 0 0 0 +1 +1 1 0 1 1 1 0 1 0 1 1 1 0 +1 +1 0 1 1 1 1 1 0 1 0 1 1 1 +0 +1 0 0 1 1 0 0 0 1 1 0 1 1 +1 +0 0 0 1 0 1 0 1 0 1 0 0 1 +1 +1 1 0 0 0 0 0 0 1 1 1 1 0 +0 +1 1 1 0 0 1 0 1 0 0 1 1 0 +1 +0 1 0 1 1 0 1 1 0 1 1 0 0 +1 +0 1 1 1 1 0 0 0 0 0 1 1 1 +1 +0 0 0 1 1 0 1 1 1 0 0 1 0 +0 +1 0 1 1 0 0 0 0 0 0 1 1 1 +0 +0 0 0 1 0 0 0 0 0 0 0 0 0 +1 +1 0 0 1 0 0 0 1 0 1 0 0 0 +0 +0 1 0 1 1 1 1 0 0 1 1 0 0 +1 +1 0 0 0 1 0 0 1 1 1 0 0 1 +0 +1 1 0 0 1 0 0 1 0 1 1 1 1 +0 +0 1 0 1 0 0 0 1 0 1 0 1 1 +0 +1 0 0 0 0 0 0 1 0 0 1 0 1 +0 +0 0 0 1 0 0 1 0 1 1 1 0 0 +1 +0 1 1 0 1 1 1 0 1 1 0 1 0 +0 +1 1 0 1 1 0 0 1 1 1 0 0 0 +1 +0 1 1 1 1 1 1 0 0 0 0 1 1 +0 +0 0 1 1 1 1 0 0 0 1 1 1 0 +1 +1 1 1 0 1 0 0 1 1 1 0 1 0 +0 +0 0 1 0 0 1 0 1 1 0 0 1 0 +1 +1 1 1 1 0 0 0 0 0 1 0 0 0 +1 +1 0 0 1 1 1 0 0 0 1 1 1 1 +0 +0 0 1 1 0 0 1 0 0 1 0 0 1 +1 +1 0 0 1 0 0 1 1 0 1 1 0 0 +0 +0 1 1 0 0 0 0 0 0 1 0 1 1 +1 +1 0 1 1 0 1 0 1 1 1 0 0 1 +0 +0 0 0 1 0 1 1 0 0 0 0 0 0 +1 +1 0 1 1 1 1 0 0 1 1 0 1 0 +0 +0 1 0 0 1 1 0 1 1 0 1 1 1 +0 +0 0 1 0 0 1 1 0 0 1 0 1 1 +0 +0 0 1 0 1 1 0 0 0 0 1 0 0 +0 +0 1 0 0 0 0 0 1 0 0 1 0 0 +1 +0 0 0 0 0 1 0 1 0 0 1 1 1 +1 +1 1 0 0 1 0 1 1 0 1 1 1 0 +0 +1 0 1 1 1 0 1 1 0 1 0 1 0 +0 +0 0 1 0 0 0 1 0 1 0 1 1 1 +0 +1 1 0 1 0 1 0 0 1 1 1 1 0 +0 +1 1 0 1 1 1 1 0 1 1 0 1 0 +1 +0 1 0 1 0 0 0 1 0 0 1 0 1 +1 +0 0 1 1 1 1 1 0 0 1 1 1 0 +0 +0 1 1 0 0 0 0 0 1 1 1 0 1 +0 +0 1 0 1 1 0 0 0 1 0 1 0 1 +0 +1 1 0 0 1 0 0 1 0 0 0 1 1 +0 +0 0 0 0 1 0 0 0 0 0 1 0 0 +0 +0 1 1 0 1 0 1 1 0 1 0 0 0 +0 +0 1 1 0 0 1 1 0 0 0 0 1 0 +1 +0 1 0 0 0 1 1 0 0 1 0 0 1 +1 +0 0 1 0 1 0 1 0 1 0 0 0 0 +0 +1 0 1 0 0 1 1 1 0 0 1 1 1 +0 +0 1 0 0 0 0 1 1 0 0 0 1 1 +1 +1 1 0 1 0 0 1 1 1 1 1 1 0 +1 +0 0 0 1 1 0 1 1 0 1 0 0 1 +0 +0 1 1 1 1 0 0 0 1 0 0 0 0 +1 +1 0 1 0 1 1 1 1 1 0 1 1 0 +1 +1 0 1 0 1 0 1 1 1 1 0 1 0 +0 +0 0 1 0 0 0 0 0 1 1 0 1 1 +1 +0 0 0 0 0 0 0 0 0 1 1 0 0 +0 +0 0 1 1 0 1 0 0 0 1 0 0 1 +1 +0 1 1 1 0 1 0 1 0 0 1 1 0 +1 +1 1 1 1 1 1 0 1 0 0 0 0 0 +1 +0 1 0 1 1 0 1 1 1 1 1 1 0 +1 +0 0 0 0 0 1 1 0 1 1 0 1 0 +1 +1 0 0 1 1 0 0 0 0 0 1 1 0 +1 +0 1 1 0 0 1 0 0 0 0 1 1 0 +1 +1 1 0 0 0 1 0 1 1 1 1 1 1 +1 +0 1 1 1 1 1 1 0 1 0 1 1 1 +0 +1 0 0 1 1 0 0 1 0 0 0 0 0 +0 +0 0 1 0 0 0 0 1 1 0 0 1 0 +0 +1 1 0 1 0 0 1 0 1 0 0 0 0 +1 +0 0 1 1 1 1 0 1 0 0 1 1 0 +1 +1 1 1 0 0 0 0 1 0 0 0 1 1 +0 +1 1 1 1 1 0 1 0 1 0 0 0 1 +0 +1 1 0 1 1 1 0 1 1 0 1 1 0 +1 +0 0 1 1 1 0 1 0 1 1 1 0 0 +1 +1 1 0 0 1 0 1 0 0 0 1 1 1 +1 +0 0 1 0 0 1 1 1 0 0 0 1 0 +1 +0 1 1 1 0 0 0 0 1 0 0 1 0 +1 +1 1 0 1 0 1 0 1 1 1 1 1 0 +1 +1 1 1 0 1 1 1 1 1 0 0 1 1 +0 +0 1 0 0 1 0 0 1 0 0 0 0 1 +0 +1 0 1 0 0 0 1 1 1 1 1 1 0 +0 +1 0 0 0 0 0 0 0 0 0 1 1 0 +1 +1 1 1 1 0 0 1 0 0 1 1 0 1 +0 +0 0 0 1 0 1 1 1 1 0 1 0 1 +1 +1 0 1 0 1 1 1 0 0 0 1 0 1 +1 +1 0 0 1 0 0 1 0 0 0 0 0 1 +0 +0 1 1 1 1 0 0 1 0 1 1 1 0 +0 +1 1 0 1 1 0 0 1 0 0 1 1 0 +1 +0 1 1 0 1 1 0 1 0 0 0 0 1 +0 +1 0 0 0 1 0 0 1 1 0 0 0 1 +1 +1 1 0 0 0 0 1 1 0 1 0 1 1 +1 +0 1 1 1 0 0 1 0 0 0 0 0 1 +1 +1 1 1 1 1 1 1 0 1 0 0 0 0 +0 +0 1 0 0 1 1 0 1 0 1 0 0 0 +1 +0 0 1 1 1 1 1 1 0 1 1 1 0 +1 +1 1 1 1 1 1 1 0 1 1 1 0 0 +0 +0 0 1 1 0 1 0 1 0 1 0 1 0 +0 +1 0 1 1 1 0 0 1 1 0 1 1 1 +1 +0 1 1 1 0 1 0 0 1 0 1 1 1 +0 +1 1 0 1 1 0 1 1 0 1 1 0 1 +1 +0 0 1 1 0 1 0 1 0 1 1 0 0 +0 +1 1 0 1 0 0 0 1 0 1 1 1 1 +0 +1 0 1 1 0 1 1 0 1 1 0 0 0 +1 +0 0 0 1 1 0 0 0 1 1 0 0 1 +1 +1 1 0 1 0 1 1 0 1 0 0 0 0 +0 +0 0 0 0 1 1 0 1 1 0 0 0 0 +0 +0 1 0 0 1 1 0 1 1 0 0 0 0 +1 +0 0 0 1 0 0 1 1 1 1 1 0 0 +0 +1 1 0 0 1 1 0 1 0 0 1 0 0 +0 +1 0 1 0 0 1 1 1 0 1 1 1 0 +0 +1 1 0 0 0 0 0 0 0 0 1 0 0 +1 +1 1 0 1 1 1 0 1 0 1 1 1 1 +0 +0 1 0 0 1 1 0 0 0 0 0 0 1 +0 +1 0 0 1 0 0 0 1 1 0 1 0 0 +1 +0 0 1 0 0 1 0 1 1 0 0 0 1 +1 +1 1 0 1 1 0 0 1 1 1 0 1 1 +1 +1 0 0 1 1 0 1 1 1 1 1 0 0 +0 +0 1 0 0 1 1 1 1 1 0 1 0 1 +0 +1 0 1 0 0 0 0 0 0 1 1 1 0 +1 +0 1 1 1 0 1 1 0 0 1 1 1 0 +0 +0 1 0 1 1 1 0 0 1 0 0 0 0 +1 +1 0 0 0 0 0 0 0 1 0 0 0 1 +1 +0 0 0 0 1 0 1 0 1 1 0 0 1 +1 +1 1 0 1 0 0 1 0 1 0 1 1 1 +0 +1 1 0 0 1 1 1 1 0 1 0 0 1 +0 +1 1 0 0 1 1 0 1 1 1 1 0 1 +1 +0 0 1 1 1 0 1 0 0 1 1 0 1 +1 +1 0 0 0 1 0 1 0 1 1 1 1 0 +1 +0 1 1 1 0 0 1 1 0 0 0 1 0 +0 +0 0 0 0 0 1 0 0 1 1 0 0 1 +0 +1 1 1 1 0 0 1 0 1 1 0 1 1 +1 +0 1 1 0 0 1 0 1 1 0 0 0 0 +1 +0 0 1 0 1 1 1 0 0 0 1 1 1 +1 +0 0 0 1 1 1 0 0 1 0 0 0 1 +1 +0 0 0 0 0 1 0 0 1 0 1 1 1 +1 +0 1 0 0 0 0 1 1 0 0 0 0 1 +0 +0 0 1 0 0 1 0 0 1 1 1 1 1 +1 +0 1 1 0 1 0 1 0 0 0 1 0 0 +1 +1 1 1 0 1 1 1 0 0 1 1 1 0 +1 +0 0 1 0 0 0 0 1 0 1 0 0 0 +1 +0 0 1 1 1 1 1 0 1 0 0 1 0 +1 +1 0 0 1 0 0 0 0 1 0 0 0 0 +1 +1 1 0 1 0 0 1 1 0 0 1 1 0 +1 +1 1 1 1 1 0 1 0 1 1 1 0 1 +0 +0 1 0 0 0 0 1 1 0 1 1 1 0 +0 +1 1 1 1 0 0 1 1 1 0 0 1 0 +0 +0 0 0 1 1 0 0 0 0 1 0 0 1 +0 +1 0 0 1 1 1 1 0 0 1 0 0 1 +1 +1 1 0 1 0 1 0 1 0 0 1 0 0 +0 +0 0 0 1 1 1 0 0 0 0 1 1 1 +0 +1 1 0 0 0 1 1 0 1 1 0 0 0 +0 +0 0 0 1 0 1 0 0 0 1 1 0 1 +1 +0 1 0 1 0 0 0 0 1 0 1 1 1 +0 +0 1 0 1 1 0 0 0 0 1 0 0 1 +1 +1 0 0 0 0 1 0 0 0 1 1 1 0 +1 +1 1 0 1 0 1 0 0 0 0 0 0 0 +0 +1 0 0 0 0 1 0 1 0 0 1 1 1 +0 +0 1 0 0 0 1 0 0 1 1 0 1 1 +0 +0 0 0 0 0 0 1 0 1 1 1 0 1 +1 +1 1 1 0 1 0 0 0 1 1 0 0 1 +1 +1 0 1 1 0 0 0 0 1 0 1 0 0 +1 +0 0 1 1 1 0 0 1 1 1 0 1 0 +1 +1 1 1 0 1 1 0 1 1 1 1 0 1 +0 +0 1 1 0 0 0 1 1 0 0 0 0 0 +0 +0 1 1 1 0 0 1 1 0 1 1 1 1 +1 +0 0 0 1 0 0 1 1 0 0 1 0 1 +1 +0 0 1 0 0 0 1 1 0 1 1 0 0 +1 +1 1 1 0 0 0 0 0 1 1 1 0 0 +0 +1 0 0 1 1 1 1 1 1 1 1 1 1 +1 +0 1 0 0 1 0 0 1 1 0 0 0 0 +0 +1 1 0 1 0 0 1 0 0 0 1 0 0 +1 +0 1 1 0 0 0 0 1 1 1 1 0 0 +0 +1 1 1 0 0 1 0 0 1 0 1 0 0 +0 +0 0 1 0 0 1 0 0 0 0 1 1 1 +1 +0 0 0 0 0 0 0 0 0 0 1 1 1 +1 +1 0 1 1 1 1 1 1 1 0 1 0 1 +0 +0 1 0 0 0 0 0 0 1 0 1 0 1 +0 +0 1 1 0 1 0 1 1 1 0 0 0 0 +0 +0 1 0 0 0 1 1 0 1 1 1 0 1 +1 +1 1 1 1 1 0 0 0 1 1 1 1 1 +0 +0 1 0 0 0 1 0 1 1 0 1 0 0 +1 +1 0 0 1 0 1 0 1 1 0 0 0 1 +0 +1 0 0 1 1 0 0 0 0 1 1 0 1 +0 +1 0 0 1 1 0 1 0 0 1 0 1 1 +1 +0 1 0 1 1 1 0 1 0 0 1 1 0 +1 +0 1 0 0 1 1 0 0 0 1 1 1 0 +0 +1 1 0 0 1 0 0 1 1 0 1 1 1 +0 +0 0 0 1 0 1 1 1 0 1 1 1 1 +0 +1 1 0 1 0 0 0 1 1 0 0 1 1 +1 +1 0 1 0 1 0 1 0 1 1 0 0 1 +1 +0 0 0 0 0 1 0 0 0 1 1 1 1 +1 +0 0 1 0 1 0 1 0 1 1 1 1 1 +0 +0 1 1 1 0 0 0 1 1 0 1 1 0 +1 +0 1 0 1 1 1 1 0 1 1 0 0 1 +0 +0 0 1 1 0 1 0 1 0 1 0 1 1 +1 +1 1 0 1 1 0 0 1 0 0 0 0 1 +0 +1 1 0 1 0 1 0 0 0 0 0 1 1 +0 +0 1 0 1 0 0 1 0 1 1 0 0 1 +0 +0 0 0 0 1 0 1 1 1 0 1 0 1 +0 +1 1 1 0 0 0 0 1 1 0 0 0 1 +0 +1 1 0 0 0 0 0 1 1 1 0 0 1 +0 +1 0 0 1 0 1 0 0 1 1 0 0 1 +0 +1 1 0 0 1 0 0 0 1 0 0 0 1 +1 +0 1 1 0 1 0 0 1 0 0 1 0 0 +1 +0 0 0 0 0 0 1 0 0 0 1 1 0 +1 +0 1 0 1 0 0 0 0 0 1 1 1 1 +0 +1 1 1 1 0 0 0 0 1 1 1 1 0 +0 +1 1 1 0 0 0 1 1 0 0 1 0 1 +1 +1 0 1 0 1 1 0 0 1 0 0 1 0 +0 +1 0 0 1 1 0 0 1 1 0 0 1 1 +1 +0 0 1 1 1 1 0 1 0 0 1 1 1 +0 +0 1 1 0 1 1 0 1 1 0 0 1 0 +1 +0 1 1 0 0 1 0 1 1 1 1 0 0 +1 +1 1 0 1 0 0 1 0 1 1 1 1 1 +1 +1 1 1 1 0 0 0 0 1 1 1 1 1 +1 +1 0 0 0 0 1 0 1 1 0 0 0 0 +0 +0 1 0 1 0 0 0 1 1 1 0 0 0 +1 +1 0 1 1 1 0 1 1 0 1 0 1 1 +1 +1 0 1 0 1 0 0 0 1 0 0 1 0 +1 +0 1 1 1 1 1 1 1 0 0 1 1 0 +1 +1 0 0 1 0 1 0 1 0 1 1 1 0 +1 +1 1 0 1 0 0 0 1 0 0 0 1 1 +0 +0 1 1 0 1 1 0 0 0 1 0 1 1 +1 +1 1 1 1 1 1 1 1 1 1 1 1 1 +1 +0 1 0 0 0 1 1 0 0 1 0 1 0 +1 +0 1 1 1 1 1 0 0 1 1 1 0 0 +0 +1 0 0 0 0 0 0 1 1 1 0 1 0 +1 +0 1 0 1 0 1 1 1 0 1 1 0 1 +0 +1 0 0 1 0 0 0 0 1 1 0 0 1 +1 +0 0 1 0 1 1 1 1 0 1 0 0 0 +0 +1 0 1 0 1 1 1 1 1 1 1 0 0 +1 +0 1 0 0 1 0 0 1 0 0 1 1 0 +1 +0 0 1 0 1 1 0 1 1 1 0 0 0 +0 +1 1 1 1 0 1 0 0 0 0 1 1 1 +0 +0 0 1 0 0 0 0 1 0 0 0 1 0 +1 +1 0 0 1 1 1 0 0 0 1 0 1 0 +0 +1 0 1 1 0 1 0 0 0 1 0 1 0 +0 +0 1 1 1 1 1 1 0 1 0 0 1 0 +0 +1 1 0 0 1 0 1 0 1 1 0 0 1 +1 +0 0 1 0 1 0 1 0 0 1 0 0 0 +0 +0 0 0 0 0 0 0 1 0 1 0 1 1 +0 +0 1 1 1 0 0 0 0 1 1 0 0 0 +1 +0 0 1 0 1 0 0 0 1 1 0 0 1 +1 +1 1 0 1 1 0 1 0 0 1 1 1 1 +1 +0 0 1 1 0 0 1 0 0 1 1 0 0 +1 +0 0 0 0 0 1 1 1 0 0 1 1 1 +0 +1 1 1 0 1 1 1 1 1 1 0 1 1 +1 +0 1 0 0 0 1 0 0 1 0 0 1 1 +1 +0 1 1 1 0 1 0 1 0 0 1 1 1 +0 +1 0 1 0 0 1 0 1 0 0 1 0 1 +0 +0 0 1 0 1 0 0 0 0 1 1 0 1 +1 +0 0 0 1 1 1 1 1 1 0 0 0 0 +0 +0 1 0 0 1 0 0 0 0 0 0 0 1 +1 +0 1 1 0 1 0 0 1 1 1 0 0 0 +0 +1 0 0 1 0 0 0 0 0 0 1 0 0 +1 +0 0 0 0 0 1 1 1 1 0 0 0 0 +0 +0 1 1 0 0 1 1 1 0 0 1 0 1 +1 +0 0 1 1 1 1 1 0 1 0 1 0 0 +1 +1 1 0 1 1 1 1 0 0 0 1 1 0 +0 +0 1 1 0 0 0 1 1 0 1 0 1 0 +0 +0 0 0 1 1 0 1 0 0 1 0 1 1 +0 +1 1 1 1 1 0 1 0 1 1 0 1 0 +1 +1 1 1 0 1 1 0 0 1 1 0 1 0 +0 +1 0 1 0 1 0 0 0 0 0 1 1 0 +1 +1 1 0 0 0 1 1 1 1 0 0 1 0 +1 +0 1 1 0 1 1 0 1 0 0 1 0 1 +1 +0 1 1 0 0 0 1 0 0 0 1 0 0 +0 +0 1 0 1 0 0 1 1 0 0 0 1 0 +1 +1 0 1 0 1 1 0 0 1 0 1 1 0 +1 +0 0 1 0 0 1 1 0 0 1 1 0 1 +0 +0 1 1 0 1 0 0 1 1 1 1 0 0 +1 +1 1 0 1 1 0 1 1 1 1 1 1 0 +0 +0 1 1 0 0 0 0 1 1 1 1 1 0 +1 +0 1 0 1 0 1 0 1 1 0 0 0 1 +0 +0 1 0 0 1 1 0 1 0 0 1 0 1 +0 +0 1 0 1 0 0 0 1 1 0 1 0 0 +1 +0 0 1 0 1 0 0 1 1 1 1 1 1 +0 +0 0 0 1 1 0 0 1 0 0 0 1 0 +0 +1 1 0 0 0 1 0 1 0 0 1 1 0 +0 +1 0 0 0 1 0 0 1 1 1 1 1 1 +0 +1 1 0 0 0 0 0 1 0 1 0 0 0 +0 +1 1 0 1 1 1 0 1 0 1 0 0 1 +0 +0 0 1 0 1 0 0 1 0 1 0 0 0 +0 +1 0 1 0 0 0 1 0 0 0 1 1 1 +0 +0 1 0 1 0 0 1 0 0 0 0 0 1 +0 +0 0 1 1 1 0 1 0 0 1 1 1 1 +0 +0 0 0 1 0 1 0 0 0 1 1 1 0 +1 +1 0 0 0 0 0 0 0 0 0 0 1 0 +0 +1 0 0 0 0 1 1 1 0 0 0 0 1 +1 +0 1 0 1 0 1 0 1 0 1 1 0 1 +1 +0 1 0 1 0 0 0 0 0 1 0 0 0 +1 +0 1 1 0 0 1 1 0 1 1 1 1 1 +1 +0 0 0 0 1 1 1 1 0 0 1 0 1 +0 +0 0 0 0 1 1 1 1 1 0 0 0 1 +0 +1 0 0 1 0 0 0 0 1 1 0 1 1 +0 +0 0 0 0 1 1 0 1 0 1 1 0 0 +1 +1 1 0 1 1 0 1 0 0 1 1 0 1 +0 +1 0 1 1 1 0 0 1 0 0 0 1 0 +0 +0 1 1 0 1 0 1 1 1 1 0 0 0 +1 +1 0 0 0 0 1 1 0 1 0 1 0 0 +1 +0 1 1 0 0 1 0 1 0 0 1 1 0 +0 +0 0 1 0 0 0 1 0 1 0 0 1 0 +0 +0 1 1 0 1 1 1 1 0 1 0 0 1 +0 +0 0 0 1 1 0 0 0 1 0 1 0 1 +1 +0 0 0 0 1 1 0 0 1 0 0 1 1 +1 +0 0 0 0 1 1 0 1 1 1 0 1 0 +0 +1 1 1 0 0 0 0 1 1 0 1 1 0 +1 +1 0 1 1 0 1 0 1 1 0 1 1 1 +1 +0 1 1 1 0 0 1 0 0 1 1 1 0 +1 +1 1 1 1 1 0 0 0 1 0 1 1 0 +0 +0 0 1 0 1 1 0 0 0 1 1 0 0 +1 +0 1 0 0 1 1 0 0 1 0 1 1 0 +0 +1 0 0 0 1 0 0 1 0 0 0 0 1 +0 +0 1 1 0 0 0 0 0 1 0 1 0 1 +1 +1 1 0 0 1 1 0 0 0 1 1 0 0 +0 +1 1 1 0 1 0 1 1 0 1 0 0 1 +0 +1 1 1 0 0 1 1 0 0 0 0 1 0 +0 +1 1 1 0 0 1 1 0 1 1 0 1 1 +1 +0 0 1 1 1 0 0 0 0 0 0 0 0 +1 +0 0 1 1 1 0 0 1 0 1 0 0 0 +1 +0 0 0 1 1 0 1 1 1 0 1 1 0 +1 +0 0 0 0 1 0 1 1 0 1 0 0 0 +0 +0 0 1 0 0 0 1 0 0 1 1 0 1 +1 +1 1 0 0 0 1 1 0 1 1 1 0 1 +0 +0 0 0 1 0 1 1 0 0 0 1 0 0 +0 +0 1 1 0 0 1 1 0 1 0 0 1 1 +1 +1 1 0 0 0 0 1 1 0 1 1 0 1 +1 +0 0 1 0 1 0 0 1 0 0 1 1 1 +0 +1 0 1 0 0 1 0 0 1 1 1 0 1 +1 +1 0 0 0 1 0 1 0 0 0 1 0 1 +1 +1 0 0 0 0 0 0 1 1 0 1 1 1 +0 +1 0 1 0 1 0 0 1 1 1 1 0 0 +1 +1 1 1 1 1 0 0 1 1 0 1 1 0 +1 +0 0 0 0 1 1 1 1 1 1 0 0 0 +0 +0 1 1 0 0 0 1 0 0 1 0 1 1 +0 +1 0 0 1 1 1 0 1 1 0 0 1 1 +0 +1 1 0 1 1 0 0 0 1 1 0 0 1 +1 +1 1 0 1 1 0 0 0 0 1 0 1 0 +0 +1 0 1 0 1 1 0 1 0 1 1 0 1 +0 +0 1 1 1 1 1 0 0 0 1 0 0 0 +0 +1 0 0 0 1 1 0 1 1 1 0 0 0 +0 +1 1 0 1 0 1 1 1 1 0 1 0 0 +0 +0 0 1 0 1 1 1 1 0 1 1 1 1 +1 +0 1 0 1 1 0 0 1 1 1 1 1 0 +0 +1 0 0 1 0 0 1 1 1 1 0 0 0 +0 +1 0 0 0 0 1 0 0 1 0 0 1 0 +0 +0 0 1 0 1 0 0 0 1 0 0 1 0 +0 +1 0 1 1 1 1 0 0 0 1 0 1 1 +0 +1 0 0 0 1 1 1 1 0 1 0 0 1 +1 +0 1 0 0 1 0 1 0 1 1 0 0 0 +1 +0 0 0 1 1 1 1 1 1 0 1 1 1 +1 +1 1 0 0 0 0 1 1 0 0 0 1 1 +0 +1 1 0 1 1 0 1 1 0 0 1 1 1 +1 +1 1 0 0 0 0 1 1 0 0 0 0 1 +1 +0 0 0 1 1 0 1 0 0 1 1 1 0 +0 +0 1 0 1 0 0 1 0 1 0 1 1 0 +0 +1 1 1 1 0 0 1 1 0 0 1 1 1 +1 +0 1 0 1 0 0 1 1 0 1 1 1 1 +0 +1 1 0 0 0 1 0 0 0 1 0 0 0 +0 +1 0 1 1 1 0 1 0 0 0 1 1 1 +0 +1 0 1 1 1 0 0 1 0 0 0 1 1 +1 +1 1 1 1 1 1 0 1 0 1 1 1 1 +1 +1 0 0 1 1 0 0 0 0 1 0 1 1 +0 +0 0 0 0 1 0 0 0 0 1 0 0 0 +0 +0 1 1 0 1 0 0 0 0 1 1 1 1 +1 +1 1 1 0 0 0 0 0 1 0 1 0 0 +1 +1 1 1 0 0 0 1 1 1 0 0 0 1 +1 +1 1 0 1 0 1 0 0 0 1 0 1 0 +0 +1 0 0 0 1 1 0 0 0 1 0 0 1 +1 +1 1 0 0 0 0 1 0 1 1 0 1 0 +0 +1 1 1 1 0 0 0 0 0 1 1 0 1 +1 +1 1 1 0 0 1 1 1 1 1 1 1 0 +0 +1 1 0 0 1 1 1 1 0 0 0 0 0 +0 +0 1 1 1 0 0 1 0 1 1 0 1 1 +0 +0 1 1 0 0 0 1 1 1 1 1 0 0 +1 +0 0 1 0 0 1 0 1 0 1 1 0 0 +1 +0 1 0 0 0 1 0 0 1 1 1 1 0 +0 +1 1 1 1 1 1 1 1 0 0 0 1 0 +1 +1 1 0 1 1 0 0 1 0 1 1 0 1 +0 +1 1 1 1 0 0 0 1 1 0 0 0 0 +0 +0 0 0 1 1 0 0 0 1 1 0 1 1 +0 +0 1 0 0 1 0 0 0 0 1 1 0 1 +1 +0 1 1 0 0 1 0 1 0 1 0 0 1 +0 +0 0 0 0 0 0 0 0 0 1 1 0 1 +1 +0 0 1 1 1 0 1 1 1 1 0 1 1 +1 +1 1 0 1 0 0 1 1 1 1 1 0 1 +1 +1 0 0 1 1 0 0 0 0 0 1 0 0 +0 +1 0 0 0 0 1 1 1 1 0 0 0 1 +0 +1 0 0 0 0 0 1 0 1 0 1 0 1 +1 +1 1 1 0 0 0 1 1 0 0 0 0 0 +1 +1 0 0 0 0 0 0 1 1 1 1 0 0 +1 +1 1 0 0 1 1 1 1 1 0 1 1 0 +1 +1 1 1 0 0 1 1 1 0 0 1 0 1 +0 +1 0 0 1 0 1 0 1 0 0 0 0 1 +1 +1 1 1 1 0 0 0 0 0 1 0 0 1 +0 +0 1 0 1 0 0 0 1 0 0 0 0 0 +1 +1 0 0 0 0 1 0 0 0 1 0 1 1 +1 +1 1 1 0 0 1 1 0 0 1 1 0 0 +1 +0 0 0 1 0 1 1 0 0 0 1 1 1 +0 +0 1 1 1 0 1 1 0 0 1 0 0 0 +0 +0 0 1 1 1 1 1 0 0 1 0 1 1 +0 +0 0 0 1 0 1 0 0 0 0 1 0 1 +0 +0 1 0 0 1 0 1 1 1 1 0 1 0 +1 +0 1 0 1 0 0 0 0 0 0 1 0 0 +1 +1 0 0 0 1 1 1 1 1 1 1 1 1 +0 +0 1 0 1 1 0 0 1 0 1 0 0 0 +1 +0 1 1 1 0 0 1 1 1 0 0 0 1 +1 +0 1 0 0 0 1 0 0 1 1 0 0 0 +0 +0 1 0 1 1 1 0 1 1 1 0 0 0 +1 +1 1 0 1 1 1 1 1 1 1 1 0 0 +0 +0 1 1 1 1 0 1 1 0 1 0 0 1 +0 +1 1 1 1 1 1 0 1 1 1 0 1 1 +1 +0 0 0 0 0 1 1 0 0 0 0 0 1 +1 +1 0 0 0 1 0 1 0 1 1 1 0 1 +1 +1 1 0 0 1 1 0 0 1 0 0 0 1 +0 +0 0 0 1 0 0 1 0 0 0 1 1 1 +1 +1 1 1 1 1 0 0 1 1 1 1 1 0 +0 +0 0 0 0 1 1 0 1 0 1 1 1 0 +0 +0 1 0 0 0 0 0 1 1 1 0 0 1 +1 +1 0 0 0 0 0 1 0 1 0 0 0 0 +1 +1 0 0 0 0 1 1 1 1 1 0 1 1 +0 +1 0 1 0 1 1 1 1 1 0 1 0 0 +0 +0 1 1 0 0 1 1 0 0 1 0 0 1 +0 +1 0 1 1 0 1 1 1 1 0 1 0 0 +0 +0 0 0 1 0 1 1 1 0 0 0 1 1 +0 +0 1 1 1 0 0 1 1 0 0 1 0 1 +1 +0 0 1 0 1 0 0 0 0 0 0 0 1 +1 +1 0 1 1 1 0 1 0 0 0 1 1 0 +1 +1 1 1 0 0 1 1 0 1 0 0 0 1 +1 +0 1 0 1 0 1 1 0 0 0 1 0 0 +1 +1 1 1 0 0 1 0 0 0 1 1 1 0 +1 +0 0 0 1 0 0 1 1 0 1 1 1 1 +1 +1 1 1 0 1 1 0 0 0 0 0 1 0 +0 +0 1 1 1 1 0 1 1 0 0 0 0 0 +0 +1 0 1 0 1 0 0 1 0 0 0 0 1 +1 +0 1 0 1 0 1 1 0 1 1 1 1 0 +0 +0 1 0 0 0 0 0 0 0 0 1 1 0 +1 +0 0 1 0 0 1 1 1 0 0 0 0 0 +0 +0 0 0 1 1 0 0 0 1 1 0 0 0 +0 +1 0 0 0 0 1 1 0 0 1 0 1 0 +1 +1 0 0 0 1 1 0 0 1 0 0 1 0 +1 +1 1 1 0 1 1 1 1 1 0 0 0 1 +1 +0 1 1 1 1 0 0 1 0 1 1 0 0 +1 +0 0 0 1 0 0 0 0 0 0 1 1 0 +1 +0 1 0 0 0 1 1 1 0 0 0 0 0 +0 +0 0 0 0 1 1 0 0 1 1 0 0 0 +0 +0 0 1 0 1 1 1 0 1 1 0 0 0 +0 +0 1 1 0 1 0 1 1 0 1 1 0 1 +0 +1 1 0 1 1 1 0 1 0 0 1 0 0 +1 +1 1 1 0 1 0 0 0 1 1 0 1 1 +0 +1 1 1 1 0 1 1 1 1 1 1 1 1 +0 +0 0 0 1 1 0 0 1 0 1 1 0 1 +0 +1 1 0 0 0 1 1 1 1 0 1 1 0 +0 +0 1 0 1 0 1 1 1 1 1 0 0 1 +0 +0 0 0 0 0 1 0 1 1 1 1 1 1 +1 +1 1 0 1 1 0 1 1 1 0 0 0 0 +1 +1 1 0 1 0 1 0 1 1 1 0 0 1 +0 +0 0 1 0 0 0 1 0 0 1 0 0 1 +0 +1 0 1 0 1 0 0 0 1 0 1 0 0 +1 +1 1 1 1 1 1 1 0 0 0 0 0 1 +0 +1 1 0 0 0 1 0 1 1 0 0 0 1 +0 +1 0 0 0 0 0 1 0 0 0 1 0 0 +1 +0 1 0 1 1 0 0 1 0 1 0 0 1 +0 +0 1 1 0 1 0 1 0 1 0 1 1 1 +0 +0 0 1 1 1 0 1 0 1 0 0 1 1 +1 +1 1 1 1 1 0 1 0 0 1 1 0 1 +1 +0 0 0 1 1 0 0 0 1 0 1 1 0 +1 +1 1 1 0 0 1 0 0 0 0 0 1 0 +1 +1 0 1 0 1 0 1 1 0 1 1 0 0 +1 +0 0 0 0 0 0 0 1 1 0 0 1 0 +1 +0 1 0 0 1 1 1 1 1 0 1 0 0 +1 +1 0 0 0 0 1 0 0 0 0 1 0 0 +1 +0 1 1 1 1 1 1 0 0 0 1 1 1 +1 +0 0 0 1 0 1 1 0 1 1 1 1 1 +0 +0 0 1 0 0 0 0 1 1 1 1 1 0 +0 +0 1 0 1 1 0 1 0 1 1 0 0 0 +0 +0 1 0 1 1 0 1 0 0 1 0 0 1 +0 +1 1 0 0 0 0 1 0 1 1 1 1 0 +1 +0 0 1 0 1 1 1 1 1 1 0 0 0 +1 +1 0 1 0 1 1 1 0 1 1 0 1 1 +1 +1 0 1 0 1 0 1 0 0 1 1 1 0 +1 +0 1 0 1 1 0 1 0 1 1 1 1 1 +1 +0 0 0 1 0 0 0 0 0 0 0 0 1 +0 +1 1 0 0 0 0 0 0 0 1 0 0 0 +1 +1 0 1 0 1 1 0 0 0 1 0 1 1 +1 +0 0 0 1 0 0 1 1 0 1 0 0 1 +1 +0 0 1 1 0 1 0 1 0 0 1 1 0 +0 +1 0 1 1 1 1 0 0 0 0 0 0 1 +0 +1 0 0 1 0 0 1 0 0 1 1 0 1 +0 +1 1 1 1 0 0 0 1 0 0 1 1 1 +0 +1 1 0 0 0 1 0 1 1 1 0 0 0 +0 +0 0 1 1 0 1 0 0 0 1 0 0 0 +0 +1 0 1 1 0 1 1 1 0 0 0 1 1 +0 +0 1 0 1 1 0 0 0 1 1 1 1 0 +1 +1 1 1 0 0 1 0 1 1 1 0 0 0 +1 +1 0 0 0 0 1 0 0 0 0 1 0 1 +0 +0 0 0 1 1 0 1 0 0 1 0 1 0 +1 +0 0 0 1 0 0 1 0 0 1 0 0 1 +0 +0 0 0 1 0 1 0 1 0 0 1 1 0 +1 +1 1 0 0 1 1 1 1 0 1 1 0 1 +1 +1 0 0 0 1 1 0 0 0 0 1 1 0 +1 +0 0 0 1 1 1 0 0 0 0 0 0 1 +0 +1 0 1 1 1 1 0 1 1 0 0 1 0 +0 +0 1 0 0 0 1 0 1 1 0 0 1 1 +0 +0 0 0 0 0 0 1 0 1 0 0 1 1 +0 +0 1 0 0 0 1 0 0 1 0 0 0 1 +0 +0 1 0 1 0 1 1 0 1 0 0 1 1 +1 +1 1 0 1 0 0 1 1 0 0 0 0 0 +1 +0 1 0 0 0 1 0 0 0 1 0 1 1 +1 +0 0 1 1 0 1 1 1 1 0 0 1 1 +0 +0 1 0 0 0 0 0 0 1 1 0 1 0 +0 +0 1 0 0 0 1 1 1 1 0 1 1 0 +1 diff --git a/lib/ann/fann/datasets/parity8.test b/lib/ann/fann/datasets/parity8.test new file mode 100644 index 0000000..313501f --- /dev/null +++ b/lib/ann/fann/datasets/parity8.test @@ -0,0 +1,513 @@ +256 8 1 +0 0 0 0 0 0 0 0 +0 +1 0 0 0 0 0 0 0 +1 +0 1 0 0 0 0 0 0 +1 +1 1 0 0 0 0 0 0 +0 +0 0 1 0 0 0 0 0 +1 +1 0 1 0 0 0 0 0 +0 +0 1 1 0 0 0 0 0 +0 +1 1 1 0 0 0 0 0 +1 +0 0 0 1 0 0 0 0 +1 +1 0 0 1 0 0 0 0 +0 +0 1 0 1 0 0 0 0 +0 +1 1 0 1 0 0 0 0 +1 +0 0 1 1 0 0 0 0 +0 +1 0 1 1 0 0 0 0 +1 +0 1 1 1 0 0 0 0 +1 +1 1 1 1 0 0 0 0 +0 +0 0 0 0 1 0 0 0 +1 +1 0 0 0 1 0 0 0 +0 +0 1 0 0 1 0 0 0 +0 +1 1 0 0 1 0 0 0 +1 +0 0 1 0 1 0 0 0 +0 +1 0 1 0 1 0 0 0 +1 +0 1 1 0 1 0 0 0 +1 +1 1 1 0 1 0 0 0 +0 +0 0 0 1 1 0 0 0 +0 +1 0 0 1 1 0 0 0 +1 +0 1 0 1 1 0 0 0 +1 +1 1 0 1 1 0 0 0 +0 +0 0 1 1 1 0 0 0 +1 +1 0 1 1 1 0 0 0 +0 +0 1 1 1 1 0 0 0 +0 +1 1 1 1 1 0 0 0 +1 +0 0 0 0 0 1 0 0 +1 +1 0 0 0 0 1 0 0 +0 +0 1 0 0 0 1 0 0 +0 +1 1 0 0 0 1 0 0 +1 +0 0 1 0 0 1 0 0 +0 +1 0 1 0 0 1 0 0 +1 +0 1 1 0 0 1 0 0 +1 +1 1 1 0 0 1 0 0 +0 +0 0 0 1 0 1 0 0 +0 +1 0 0 1 0 1 0 0 +1 +0 1 0 1 0 1 0 0 +1 +1 1 0 1 0 1 0 0 +0 +0 0 1 1 0 1 0 0 +1 +1 0 1 1 0 1 0 0 +0 +0 1 1 1 0 1 0 0 +0 +1 1 1 1 0 1 0 0 +1 +0 0 0 0 1 1 0 0 +0 +1 0 0 0 1 1 0 0 +1 +0 1 0 0 1 1 0 0 +1 +1 1 0 0 1 1 0 0 +0 +0 0 1 0 1 1 0 0 +1 +1 0 1 0 1 1 0 0 +0 +0 1 1 0 1 1 0 0 +0 +1 1 1 0 1 1 0 0 +1 +0 0 0 1 1 1 0 0 +1 +1 0 0 1 1 1 0 0 +0 +0 1 0 1 1 1 0 0 +0 +1 1 0 1 1 1 0 0 +1 +0 0 1 1 1 1 0 0 +0 +1 0 1 1 1 1 0 0 +1 +0 1 1 1 1 1 0 0 +1 +1 1 1 1 1 1 0 0 +0 +0 0 0 0 0 0 1 0 +1 +1 0 0 0 0 0 1 0 +0 +0 1 0 0 0 0 1 0 +0 +1 1 0 0 0 0 1 0 +1 +0 0 1 0 0 0 1 0 +0 +1 0 1 0 0 0 1 0 +1 +0 1 1 0 0 0 1 0 +1 +1 1 1 0 0 0 1 0 +0 +0 0 0 1 0 0 1 0 +0 +1 0 0 1 0 0 1 0 +1 +0 1 0 1 0 0 1 0 +1 +1 1 0 1 0 0 1 0 +0 +0 0 1 1 0 0 1 0 +1 +1 0 1 1 0 0 1 0 +0 +0 1 1 1 0 0 1 0 +0 +1 1 1 1 0 0 1 0 +1 +0 0 0 0 1 0 1 0 +0 +1 0 0 0 1 0 1 0 +1 +0 1 0 0 1 0 1 0 +1 +1 1 0 0 1 0 1 0 +0 +0 0 1 0 1 0 1 0 +1 +1 0 1 0 1 0 1 0 +0 +0 1 1 0 1 0 1 0 +0 +1 1 1 0 1 0 1 0 +1 +0 0 0 1 1 0 1 0 +1 +1 0 0 1 1 0 1 0 +0 +0 1 0 1 1 0 1 0 +0 +1 1 0 1 1 0 1 0 +1 +0 0 1 1 1 0 1 0 +0 +1 0 1 1 1 0 1 0 +1 +0 1 1 1 1 0 1 0 +1 +1 1 1 1 1 0 1 0 +0 +0 0 0 0 0 1 1 0 +0 +1 0 0 0 0 1 1 0 +1 +0 1 0 0 0 1 1 0 +1 +1 1 0 0 0 1 1 0 +0 +0 0 1 0 0 1 1 0 +1 +1 0 1 0 0 1 1 0 +0 +0 1 1 0 0 1 1 0 +0 +1 1 1 0 0 1 1 0 +1 +0 0 0 1 0 1 1 0 +1 +1 0 0 1 0 1 1 0 +0 +0 1 0 1 0 1 1 0 +0 +1 1 0 1 0 1 1 0 +1 +0 0 1 1 0 1 1 0 +0 +1 0 1 1 0 1 1 0 +1 +0 1 1 1 0 1 1 0 +1 +1 1 1 1 0 1 1 0 +0 +0 0 0 0 1 1 1 0 +1 +1 0 0 0 1 1 1 0 +0 +0 1 0 0 1 1 1 0 +0 +1 1 0 0 1 1 1 0 +1 +0 0 1 0 1 1 1 0 +0 +1 0 1 0 1 1 1 0 +1 +0 1 1 0 1 1 1 0 +1 +1 1 1 0 1 1 1 0 +0 +0 0 0 1 1 1 1 0 +0 +1 0 0 1 1 1 1 0 +1 +0 1 0 1 1 1 1 0 +1 +1 1 0 1 1 1 1 0 +0 +0 0 1 1 1 1 1 0 +1 +1 0 1 1 1 1 1 0 +0 +0 1 1 1 1 1 1 0 +0 +1 1 1 1 1 1 1 0 +1 +0 0 0 0 0 0 0 1 +1 +1 0 0 0 0 0 0 1 +0 +0 1 0 0 0 0 0 1 +0 +1 1 0 0 0 0 0 1 +1 +0 0 1 0 0 0 0 1 +0 +1 0 1 0 0 0 0 1 +1 +0 1 1 0 0 0 0 1 +1 +1 1 1 0 0 0 0 1 +0 +0 0 0 1 0 0 0 1 +0 +1 0 0 1 0 0 0 1 +1 +0 1 0 1 0 0 0 1 +1 +1 1 0 1 0 0 0 1 +0 +0 0 1 1 0 0 0 1 +1 +1 0 1 1 0 0 0 1 +0 +0 1 1 1 0 0 0 1 +0 +1 1 1 1 0 0 0 1 +1 +0 0 0 0 1 0 0 1 +0 +1 0 0 0 1 0 0 1 +1 +0 1 0 0 1 0 0 1 +1 +1 1 0 0 1 0 0 1 +0 +0 0 1 0 1 0 0 1 +1 +1 0 1 0 1 0 0 1 +0 +0 1 1 0 1 0 0 1 +0 +1 1 1 0 1 0 0 1 +1 +0 0 0 1 1 0 0 1 +1 +1 0 0 1 1 0 0 1 +0 +0 1 0 1 1 0 0 1 +0 +1 1 0 1 1 0 0 1 +1 +0 0 1 1 1 0 0 1 +0 +1 0 1 1 1 0 0 1 +1 +0 1 1 1 1 0 0 1 +1 +1 1 1 1 1 0 0 1 +0 +0 0 0 0 0 1 0 1 +0 +1 0 0 0 0 1 0 1 +1 +0 1 0 0 0 1 0 1 +1 +1 1 0 0 0 1 0 1 +0 +0 0 1 0 0 1 0 1 +1 +1 0 1 0 0 1 0 1 +0 +0 1 1 0 0 1 0 1 +0 +1 1 1 0 0 1 0 1 +1 +0 0 0 1 0 1 0 1 +1 +1 0 0 1 0 1 0 1 +0 +0 1 0 1 0 1 0 1 +0 +1 1 0 1 0 1 0 1 +1 +0 0 1 1 0 1 0 1 +0 +1 0 1 1 0 1 0 1 +1 +0 1 1 1 0 1 0 1 +1 +1 1 1 1 0 1 0 1 +0 +0 0 0 0 1 1 0 1 +1 +1 0 0 0 1 1 0 1 +0 +0 1 0 0 1 1 0 1 +0 +1 1 0 0 1 1 0 1 +1 +0 0 1 0 1 1 0 1 +0 +1 0 1 0 1 1 0 1 +1 +0 1 1 0 1 1 0 1 +1 +1 1 1 0 1 1 0 1 +0 +0 0 0 1 1 1 0 1 +0 +1 0 0 1 1 1 0 1 +1 +0 1 0 1 1 1 0 1 +1 +1 1 0 1 1 1 0 1 +0 +0 0 1 1 1 1 0 1 +1 +1 0 1 1 1 1 0 1 +0 +0 1 1 1 1 1 0 1 +0 +1 1 1 1 1 1 0 1 +1 +0 0 0 0 0 0 1 1 +0 +1 0 0 0 0 0 1 1 +1 +0 1 0 0 0 0 1 1 +1 +1 1 0 0 0 0 1 1 +0 +0 0 1 0 0 0 1 1 +1 +1 0 1 0 0 0 1 1 +0 +0 1 1 0 0 0 1 1 +0 +1 1 1 0 0 0 1 1 +1 +0 0 0 1 0 0 1 1 +1 +1 0 0 1 0 0 1 1 +0 +0 1 0 1 0 0 1 1 +0 +1 1 0 1 0 0 1 1 +1 +0 0 1 1 0 0 1 1 +0 +1 0 1 1 0 0 1 1 +1 +0 1 1 1 0 0 1 1 +1 +1 1 1 1 0 0 1 1 +0 +0 0 0 0 1 0 1 1 +1 +1 0 0 0 1 0 1 1 +0 +0 1 0 0 1 0 1 1 +0 +1 1 0 0 1 0 1 1 +1 +0 0 1 0 1 0 1 1 +0 +1 0 1 0 1 0 1 1 +1 +0 1 1 0 1 0 1 1 +1 +1 1 1 0 1 0 1 1 +0 +0 0 0 1 1 0 1 1 +0 +1 0 0 1 1 0 1 1 +1 +0 1 0 1 1 0 1 1 +1 +1 1 0 1 1 0 1 1 +0 +0 0 1 1 1 0 1 1 +1 +1 0 1 1 1 0 1 1 +0 +0 1 1 1 1 0 1 1 +0 +1 1 1 1 1 0 1 1 +1 +0 0 0 0 0 1 1 1 +1 +1 0 0 0 0 1 1 1 +0 +0 1 0 0 0 1 1 1 +0 +1 1 0 0 0 1 1 1 +1 +0 0 1 0 0 1 1 1 +0 +1 0 1 0 0 1 1 1 +1 +0 1 1 0 0 1 1 1 +1 +1 1 1 0 0 1 1 1 +0 +0 0 0 1 0 1 1 1 +0 +1 0 0 1 0 1 1 1 +1 +0 1 0 1 0 1 1 1 +1 +1 1 0 1 0 1 1 1 +0 +0 0 1 1 0 1 1 1 +1 +1 0 1 1 0 1 1 1 +0 +0 1 1 1 0 1 1 1 +0 +1 1 1 1 0 1 1 1 +1 +0 0 0 0 1 1 1 1 +0 +1 0 0 0 1 1 1 1 +1 +0 1 0 0 1 1 1 1 +1 +1 1 0 0 1 1 1 1 +0 +0 0 1 0 1 1 1 1 +1 +1 0 1 0 1 1 1 1 +0 +0 1 1 0 1 1 1 1 +0 +1 1 1 0 1 1 1 1 +1 +0 0 0 1 1 1 1 1 +1 +1 0 0 1 1 1 1 1 +0 +0 1 0 1 1 1 1 1 +0 +1 1 0 1 1 1 1 1 +1 +0 0 1 1 1 1 1 1 +0 +1 0 1 1 1 1 1 1 +1 +0 1 1 1 1 1 1 1 +1 +1 1 1 1 1 1 1 1 +0 diff --git a/lib/ann/fann/datasets/parity8.train b/lib/ann/fann/datasets/parity8.train new file mode 100644 index 0000000..d6d469e --- /dev/null +++ b/lib/ann/fann/datasets/parity8.train @@ -0,0 +1,513 @@ +256 8 1 +1 1 0 0 0 0 0 1 +1 +1 0 0 1 0 0 1 0 +1 +0 0 0 0 0 1 1 0 +0 +1 1 0 0 1 1 1 0 +1 +1 0 1 1 0 1 1 1 +0 +1 1 1 1 1 0 1 1 +1 +0 1 0 1 0 0 1 0 +1 +0 0 1 1 0 1 1 1 +1 +1 0 0 1 0 1 0 0 +1 +0 1 1 0 0 1 0 1 +0 +0 1 0 1 1 1 0 1 +1 +0 0 0 0 0 0 1 1 +0 +0 1 0 0 1 1 1 1 +1 +0 1 0 0 0 1 0 0 +0 +0 0 0 1 1 1 0 0 +1 +0 1 0 1 1 1 1 0 +1 +1 0 1 1 0 1 0 1 +1 +0 0 1 0 0 1 0 1 +1 +0 0 1 0 1 0 1 0 +1 +0 1 0 1 0 0 0 1 +1 +0 0 0 1 1 0 0 1 +1 +1 1 1 0 0 1 0 1 +1 +1 1 1 0 0 1 1 1 +0 +1 1 0 1 0 1 0 0 +0 +0 0 0 1 0 0 0 0 +1 +0 0 0 1 1 1 0 1 +0 +1 1 1 1 1 1 0 0 +0 +0 0 0 1 0 0 0 1 +0 +1 1 0 0 0 0 1 1 +0 +1 1 1 1 1 0 0 1 +0 +0 1 0 0 1 0 0 1 +1 +0 0 0 0 1 0 0 1 +0 +0 1 1 0 0 1 1 0 +0 +0 1 0 0 0 1 1 1 +0 +0 1 0 1 0 0 0 0 +0 +0 0 1 0 1 1 0 0 +1 +0 1 1 0 0 1 0 0 +1 +0 0 0 1 0 1 0 0 +0 +1 1 0 0 0 1 0 1 +0 +1 0 0 1 1 0 0 0 +1 +0 0 0 1 1 0 1 0 +1 +1 1 1 0 0 0 1 1 +1 +1 1 0 0 1 0 1 0 +0 +0 0 1 0 0 1 0 0 +0 +1 0 1 0 0 1 0 0 +1 +1 0 0 1 0 1 1 1 +1 +0 1 1 1 1 0 1 0 +1 +0 0 1 0 1 0 1 1 +0 +1 1 0 1 0 0 0 0 +1 +0 1 0 0 1 1 0 1 +0 +0 0 0 0 0 0 1 0 +1 +1 0 1 0 1 0 1 0 +0 +1 1 1 0 1 0 1 1 +0 +0 0 1 0 1 1 0 1 +0 +0 0 0 0 1 1 1 1 +0 +0 1 0 0 0 0 1 1 +1 +0 1 0 0 1 0 1 1 +0 +0 1 0 0 0 0 0 1 +0 +0 1 1 0 0 0 0 1 +1 +0 1 0 0 1 0 1 0 +1 +1 0 1 1 0 1 1 0 +1 +0 1 1 0 1 0 1 1 +1 +0 0 0 1 0 0 1 0 +0 +1 1 1 0 0 0 0 1 +0 +0 0 0 0 1 1 1 0 +1 +0 0 1 0 0 0 1 0 +0 +0 0 1 1 1 0 1 1 +1 +0 0 1 0 1 0 0 0 +0 +1 0 1 1 0 1 0 0 +0 +1 0 0 0 0 1 1 1 +0 +0 0 1 1 1 1 1 1 +0 +1 0 1 0 1 1 0 1 +1 +1 0 1 0 1 1 0 0 +0 +0 0 0 1 0 1 1 0 +1 +0 1 1 1 1 1 1 0 +0 +1 0 1 1 1 0 0 1 +1 +0 1 0 1 0 1 1 1 +1 +1 0 1 0 1 0 1 1 +1 +0 1 0 0 0 1 1 0 +1 +0 0 0 1 0 0 1 1 +1 +1 1 1 1 1 1 1 0 +1 +1 1 0 0 0 1 1 1 +1 +0 0 1 1 1 0 1 0 +0 +1 1 1 1 1 1 1 1 +0 +1 1 0 1 1 0 1 0 +1 +0 1 1 1 0 0 1 0 +0 +1 0 0 0 0 0 1 0 +0 +1 0 1 1 0 0 0 0 +1 +1 0 0 1 0 0 0 0 +0 +1 1 1 1 0 1 0 1 +0 +1 1 1 1 1 0 0 0 +1 +1 1 1 0 0 0 0 0 +1 +0 1 1 1 0 1 1 1 +0 +0 1 1 0 1 1 1 0 +1 +0 0 1 1 1 0 0 1 +0 +1 0 0 1 1 0 1 1 +1 +1 0 0 1 0 1 1 0 +0 +1 1 0 0 0 0 0 0 +0 +0 1 1 1 1 1 1 1 +1 +1 0 1 1 1 0 0 0 +0 +0 1 0 0 0 1 0 1 +1 +0 1 0 1 1 1 1 1 +0 +0 1 0 1 0 1 0 1 +0 +0 0 1 0 1 1 1 0 +0 +0 0 1 0 0 1 1 0 +1 +1 0 1 1 1 0 1 0 +1 +1 0 0 0 1 0 1 1 +0 +0 1 1 0 0 1 1 1 +1 +0 1 1 1 1 0 1 1 +0 +1 1 1 0 0 1 0 0 +0 +0 0 0 0 1 0 0 0 +1 +1 0 0 1 1 1 0 1 +1 +0 0 1 0 0 0 0 1 +0 +0 0 0 1 1 0 1 1 +0 +0 1 1 1 1 1 0 1 +0 +1 0 1 1 1 1 1 0 +0 +1 0 0 1 0 0 0 1 +1 +1 0 0 1 1 1 1 1 +0 +1 1 1 1 1 0 1 0 +0 +0 1 0 1 1 0 0 0 +1 +0 0 0 1 0 1 0 1 +1 +1 0 0 1 0 1 0 1 +0 +0 1 1 0 0 0 1 0 +1 +1 1 0 1 1 1 1 0 +0 +1 0 0 0 1 1 0 1 +0 +0 1 0 0 1 1 1 0 +0 +1 0 0 0 1 1 1 1 +1 +0 0 1 0 0 0 1 1 +1 +0 0 1 1 0 1 1 0 +0 +1 1 1 1 0 1 1 1 +1 +1 1 1 1 0 0 0 0 +0 +1 1 1 0 0 1 1 0 +1 +1 1 0 1 1 1 0 0 +1 +1 1 0 0 0 0 1 0 +1 +1 0 0 0 0 0 1 1 +1 +1 0 1 0 0 1 1 1 +1 +0 1 0 1 0 0 1 1 +0 +1 1 0 1 0 1 0 1 +1 +1 1 0 1 0 0 1 1 +1 +0 0 0 0 1 0 1 1 +1 +0 1 0 0 0 0 1 0 +0 +0 0 0 0 0 0 0 0 +0 +1 1 1 0 1 0 1 0 +1 +1 0 1 1 1 1 0 1 +0 +0 1 0 1 1 0 0 1 +0 +1 1 1 0 1 1 0 1 +0 +1 0 0 1 0 0 1 1 +0 +0 0 0 1 1 1 1 0 +0 +0 1 1 0 0 0 0 0 +0 +1 0 1 0 1 0 0 1 +0 +0 1 1 1 0 0 0 1 +0 +1 0 1 0 0 0 1 1 +0 +1 1 0 1 0 0 0 1 +0 +0 1 1 1 0 1 0 0 +0 +0 1 0 0 1 1 0 0 +1 +0 0 0 0 1 0 1 0 +0 +1 1 0 1 1 0 1 1 +0 +1 1 1 0 1 0 0 1 +1 +1 0 0 1 1 1 0 0 +0 +1 0 0 0 0 1 0 1 +1 +0 1 1 0 1 0 1 0 +0 +1 0 1 0 1 1 1 0 +1 +0 1 1 0 1 0 0 0 +1 +1 0 0 0 1 1 0 0 +1 +0 1 1 1 1 0 0 0 +0 +1 0 0 1 1 0 0 1 +0 +1 0 1 1 0 0 1 1 +1 +1 0 1 1 0 0 1 0 +0 +0 0 0 0 0 1 0 0 +1 +1 0 1 0 0 0 0 0 +0 +0 0 1 0 0 1 1 1 +0 +0 0 1 1 0 0 0 0 +0 +1 1 0 0 1 0 1 1 +1 +0 0 1 1 1 1 1 0 +1 +1 0 0 1 1 0 1 0 +0 +1 1 0 0 1 1 1 1 +0 +1 0 0 0 0 0 0 0 +1 +1 0 0 0 0 1 0 0 +0 +0 1 1 1 0 0 0 0 +1 +0 0 0 0 1 1 0 0 +0 +0 0 1 1 0 0 0 1 +1 +0 0 1 1 0 0 1 0 +1 +0 0 0 1 0 1 1 1 +0 +0 0 0 1 1 0 0 0 +0 +1 1 1 0 1 1 1 0 +0 +0 0 1 0 1 0 0 1 +1 +0 0 1 1 1 1 0 1 +1 +0 1 0 1 1 0 1 0 +0 +1 0 0 0 1 1 1 0 +0 +1 1 0 1 0 0 1 0 +0 +1 1 1 1 0 0 1 1 +0 +1 0 1 0 1 1 1 1 +0 +0 1 0 1 1 1 0 0 +0 +1 0 1 0 0 0 1 0 +1 +1 0 0 0 0 1 1 0 +1 +1 1 1 1 0 1 1 0 +0 +1 1 0 0 1 1 0 1 +1 +1 0 0 0 1 0 0 1 +1 +1 1 0 0 1 0 0 0 +1 +0 1 0 0 0 0 0 0 +1 +0 0 1 1 1 0 0 0 +1 +1 1 1 0 1 1 0 0 +1 +0 1 1 1 0 1 1 0 +1 +1 0 1 1 1 0 1 1 +0 +1 1 1 0 1 0 0 0 +0 +1 1 0 0 1 0 0 1 +0 +1 1 0 1 0 1 1 0 +1 +1 0 1 0 1 0 0 0 +1 +1 1 0 1 1 0 0 0 +0 +0 0 1 1 0 1 0 0 +1 +0 0 1 0 0 0 0 0 +1 +1 0 0 0 0 0 0 1 +0 +0 1 1 1 1 0 0 1 +1 +0 1 1 1 1 1 0 0 +1 +1 0 1 1 1 1 0 0 +1 +1 1 0 1 1 0 0 1 +1 +1 1 0 1 1 1 1 1 +1 +0 1 1 0 1 1 0 0 +0 +0 1 1 1 0 0 1 1 +1 +1 1 0 1 1 1 0 1 +0 +1 0 1 0 0 1 1 0 +0 +0 0 0 1 1 1 1 1 +1 +0 1 0 1 0 1 0 0 +1 +0 0 0 0 0 0 0 1 +1 +1 1 0 0 0 1 1 0 +0 +1 1 1 0 0 0 1 0 +0 +0 0 1 0 1 1 1 1 +1 +1 0 1 1 0 0 0 1 +0 +0 1 1 0 1 1 1 1 +0 +1 0 0 0 1 0 0 0 +0 +0 0 0 0 1 1 0 1 +1 +1 1 1 1 0 0 1 0 +1 +1 1 0 1 0 1 1 1 +0 +1 0 1 0 0 0 0 1 +1 +0 0 1 1 0 0 1 1 +0 +1 0 0 1 1 1 1 0 +1 +0 1 1 1 0 1 0 1 +1 +1 0 0 0 1 0 1 0 +1 +1 1 0 0 0 1 0 0 +1 +0 0 0 0 0 1 1 1 +1 +1 1 1 1 1 1 0 1 +1 +1 1 0 0 1 1 0 0 +0 +1 1 1 1 0 0 0 1 +1 +0 0 0 0 0 1 0 1 +0 +0 0 1 1 1 1 0 0 +0 +0 1 0 0 1 0 0 0 +0 +0 0 1 1 0 1 0 1 +0 +1 0 1 0 0 1 0 1 +0 +0 1 1 0 1 0 0 1 +0 +0 1 0 1 0 1 1 0 +0 +0 1 1 0 1 1 0 1 +1 +0 1 1 0 0 0 1 1 +0 +1 0 1 1 1 1 1 1 +1 +1 1 1 0 1 1 1 1 +1 +0 1 0 1 1 0 1 1 +1 +1 1 1 1 0 1 0 0 +1 diff --git a/lib/ann/fann/datasets/pumadyn-32fm.test b/lib/ann/fann/datasets/pumadyn-32fm.test new file mode 100644 index 0000000..a500194 --- /dev/null +++ b/lib/ann/fann/datasets/pumadyn-32fm.test @@ -0,0 +1,1025 @@ +512 32 1 +0.485265 0.496498 0.503016 0.490695 0.485165 0.489131 0.505908 0.506213 0.502395 0.505477 0.499453 0.504030 0.830962 0.629794 0.883773 0.588814 0.400239 0.523277 0.515112 0.520103 0.518687 0.524354 0.512448 0.517644 0.515489 0.515527 0.512288 0.511747 0.514934 0.517329 0.513065 0.517594 +0.416431 +0.504956 0.491110 0.501976 0.489795 0.495077 0.515539 0.494714 0.484906 0.512382 0.507267 0.496308 0.487793 0.558341 0.187540 0.710817 0.111118 0.659925 0.514806 0.518539 0.520741 0.516504 0.520586 0.513068 0.511747 0.523754 0.515968 0.514998 0.511754 0.512429 0.512414 0.513222 0.520640 +0.885137 +0.514792 0.501138 0.506311 0.504279 0.510583 0.508419 0.495048 0.506945 0.489929 0.509841 0.502583 0.513402 0.585105 0.190632 0.567495 0.762767 0.609902 0.512311 0.522902 0.511208 0.518694 0.511238 0.523845 0.511164 0.514531 0.522648 0.513374 0.515452 0.509989 0.516671 0.515534 0.514811 +0.261796 +0.485931 0.494855 0.503904 0.492587 0.500135 0.504719 0.506207 0.489795 0.494324 0.512044 0.498319 0.513439 0.212377 0.361353 0.556351 0.812263 0.949954 0.522159 0.514835 0.513504 0.515646 0.519510 0.512043 0.516330 0.520957 0.512571 0.511540 0.521715 0.519928 0.524020 0.522488 0.521607 +0.216595 +0.489216 0.486972 0.508223 0.502143 0.495795 0.503203 0.490858 0.488143 0.487220 0.498167 0.492728 0.498768 0.781541 0.567678 0.826157 0.025248 0.121473 0.515331 0.514631 0.511200 0.518015 0.514312 0.516130 0.522620 0.511334 0.523077 0.517861 0.519942 0.518140 0.512145 0.523130 0.512748 +0.902262 +0.512420 0.484767 0.500569 0.508458 0.501667 0.513785 0.513903 0.510337 0.507428 0.494067 0.498288 0.511512 0.152665 0.653318 0.507428 0.082896 0.220173 0.511953 0.513351 0.513379 0.513349 0.524583 0.524633 0.514865 0.510771 0.517881 0.518174 0.510608 0.517350 0.519542 0.518900 0.518423 +0.949199 +0.498229 0.494539 0.502626 0.489850 0.507408 0.509108 0.500587 0.494812 0.505152 0.484700 0.502898 0.494864 0.983914 0.534418 0.860070 0.948478 0.058758 0.513886 0.521666 0.513850 0.522984 0.511565 0.521708 0.524068 0.509663 0.524374 0.517713 0.519390 0.520338 0.520522 0.520614 0.519022 +0.191273 +0.499356 0.486444 0.512974 0.516018 0.487057 0.492883 0.503456 0.491141 0.497504 0.511376 0.496372 0.497337 0.023527 0.249812 0.373867 0.494726 0.999884 0.516389 0.510372 0.514182 0.513615 0.524511 0.514563 0.519770 0.519266 0.517630 0.521423 0.510227 0.518503 0.519177 0.524235 0.517681 +0.469202 +0.515760 0.504867 0.484884 0.490531 0.504799 0.495411 0.499954 0.497969 0.490349 0.490101 0.505486 0.490184 0.871277 0.952683 0.600457 0.726234 0.734435 0.514425 0.521878 0.521933 0.520374 0.522520 0.521677 0.516668 0.517606 0.516385 0.512904 0.514859 0.518160 0.519325 0.516721 0.522041 +0.326563 +0.508691 0.500210 0.512653 0.493681 0.495421 0.511517 0.506555 0.487453 0.507529 0.487711 0.499776 0.494167 0.769495 0.471823 0.787849 0.376023 0.662646 0.509693 0.517819 0.524230 0.523137 0.515716 0.523500 0.523172 0.512489 0.512433 0.517264 0.520061 0.519329 0.524000 0.512879 0.524512 +0.615261 +0.507325 0.501579 0.507157 0.500435 0.512289 0.511131 0.507614 0.501598 0.488063 0.500397 0.514411 0.487442 0.827846 0.368290 0.937431 0.736232 0.460024 0.522333 0.511680 0.519213 0.516232 0.512473 0.510112 0.523677 0.516815 0.521046 0.524249 0.510818 0.519379 0.523393 0.512020 0.510392 +0.304204 +0.489492 0.507619 0.497352 0.515749 0.500988 0.497884 0.505110 0.493487 0.505063 0.498699 0.493462 0.502684 0.818654 0.157142 0.754131 0.734514 0.636883 0.521617 0.524445 0.519562 0.511054 0.522351 0.509848 0.511890 0.522270 0.510724 0.512796 0.512373 0.519073 0.516624 0.511449 0.512914 +0.229817 +0.486408 0.504248 0.485736 0.508636 0.494867 0.502212 0.488178 0.485104 0.504300 0.511314 0.498541 0.501538 0.955002 0.503688 0.341275 0.737271 0.897603 0.518525 0.521195 0.519514 0.520731 0.517555 0.511611 0.513531 0.518418 0.520628 0.521800 0.514208 0.520489 0.522915 0.510566 0.511526 +0.288698 +0.499444 0.486373 0.512807 0.507836 0.486261 0.489705 0.499108 0.499721 0.515382 0.507658 0.514462 0.502072 0.309143 0.702324 0.626659 0.285862 0.144284 0.510511 0.510269 0.516490 0.513291 0.511751 0.521722 0.522613 0.514346 0.509904 0.516251 0.521757 0.519473 0.518243 0.517911 0.519230 +0.617193 +0.498959 0.509058 0.507276 0.513293 0.514116 0.504985 0.513060 0.506097 0.493835 0.505196 0.498060 0.486964 0.678736 0.918943 0.596987 0.521223 0.518992 0.511042 0.515196 0.512661 0.516179 0.517405 0.520013 0.523021 0.521811 0.514653 0.522448 0.515319 0.511543 0.524657 0.516107 0.518166 +0.512863 +0.485543 0.506171 0.491181 0.496172 0.497909 0.499164 0.502545 0.486192 0.493747 0.508677 0.498515 0.514033 0.255670 0.649055 0.005005 0.534316 0.153425 0.515514 0.519910 0.513448 0.523921 0.523906 0.510455 0.512973 0.522164 0.511395 0.516145 0.513106 0.517337 0.517518 0.519189 0.512207 +0.439403 +0.507011 0.497216 0.487644 0.507777 0.501268 0.485323 0.500303 0.506066 0.485926 0.490882 0.511159 0.506878 0.698398 0.766393 0.439062 0.192195 0.798015 0.523517 0.515040 0.509823 0.514812 0.513475 0.520577 0.518096 0.512766 0.512819 0.514226 0.522795 0.513666 0.522929 0.521662 0.520538 +0.858183 +0.496458 0.495200 0.510856 0.508835 0.501822 0.510001 0.496508 0.488565 0.497068 0.490414 0.486293 0.500223 0.879082 0.883831 0.553262 0.986800 0.951451 0.523883 0.515619 0.523363 0.520318 0.521597 0.514785 0.509746 0.521726 0.517612 0.516831 0.524437 0.510694 0.523917 0.514272 0.516976 +0.116521 +0.502835 0.510810 0.498515 0.509090 0.506244 0.513466 0.493226 0.500162 0.494055 0.495483 0.513064 0.510146 0.466782 0.211457 0.925598 0.238588 0.072946 0.514181 0.523752 0.513787 0.510131 0.517490 0.514333 0.516850 0.517094 0.513037 0.519674 0.521429 0.518557 0.513486 0.522735 0.522913 +0.667158 +0.495912 0.506977 0.502228 0.500368 0.500717 0.498712 0.510144 0.506838 0.490462 0.497174 0.500077 0.514785 0.877403 0.719162 0.091103 0.893911 0.653653 0.511576 0.523495 0.521738 0.512604 0.521434 0.520947 0.513485 0.510796 0.510958 0.517950 0.513723 0.516694 0.512931 0.513102 0.521010 +0.025727 +0.501430 0.494999 0.496166 0.505146 0.502962 0.495793 0.486077 0.486372 0.506434 0.494971 0.500987 0.486132 0.641373 0.129423 0.745729 0.787101 0.833863 0.514327 0.518324 0.514507 0.513099 0.521190 0.522860 0.518583 0.520500 0.513742 0.520856 0.519625 0.521240 0.514240 0.511616 0.523221 +0.257345 +0.508729 0.492059 0.500257 0.491585 0.486918 0.512420 0.514415 0.493608 0.506637 0.488068 0.515790 0.502465 0.027722 0.622171 0.997808 0.621669 0.570442 0.512667 0.522820 0.512509 0.520463 0.510009 0.513433 0.512233 0.518735 0.519835 0.520962 0.513619 0.519782 0.521949 0.510647 0.523435 +0.394058 +0.485414 0.512246 0.512423 0.496188 0.487848 0.503548 0.500346 0.497684 0.510624 0.485420 0.490596 0.514154 0.050560 0.756457 0.762580 0.465445 0.791566 0.520663 0.519023 0.511056 0.521451 0.511143 0.523969 0.520904 0.517717 0.524267 0.517081 0.517337 0.515117 0.517974 0.524658 0.517739 +0.530419 +0.496000 0.505391 0.499262 0.500737 0.494980 0.493919 0.511526 0.503727 0.486406 0.513845 0.508851 0.490523 0.231186 0.903331 0.691488 0.842823 0.613677 0.517121 0.518109 0.518189 0.510076 0.524360 0.523012 0.519404 0.519178 0.521678 0.510691 0.515093 0.513824 0.514822 0.521455 0.516798 +0.149727 +0.506276 0.492586 0.507627 0.504942 0.515279 0.510497 0.491581 0.512342 0.495937 0.496022 0.504503 0.497201 0.327671 0.511386 0.486859 0.028670 0.533696 0.521137 0.524371 0.512528 0.514837 0.523951 0.524496 0.520923 0.520406 0.513068 0.513559 0.513830 0.517470 0.522592 0.515952 0.513424 +0.683148 +0.501657 0.498054 0.509017 0.502114 0.512739 0.496508 0.513014 0.495082 0.503099 0.507513 0.502637 0.510396 0.311448 0.367787 0.490274 0.312953 0.618130 0.512663 0.513763 0.521928 0.513100 0.522894 0.522264 0.513774 0.519654 0.514726 0.517711 0.515241 0.511189 0.510402 0.514854 0.510538 +0.623706 +0.497415 0.492369 0.485881 0.501711 0.500797 0.503314 0.502273 0.506979 0.507157 0.497769 0.496490 0.506070 0.218610 0.933484 0.533435 0.384524 0.272426 0.520841 0.518384 0.511295 0.521869 0.510090 0.514476 0.513890 0.520464 0.516528 0.511577 0.522629 0.519629 0.523178 0.512993 0.522470 +0.680302 +0.485983 0.510633 0.509735 0.490793 0.502719 0.510392 0.493514 0.500720 0.496148 0.511461 0.485847 0.491553 0.426826 0.928173 0.428744 0.093777 0.760869 0.521283 0.512797 0.522632 0.511786 0.523083 0.514701 0.515244 0.519764 0.522836 0.515427 0.520403 0.512375 0.514583 0.515906 0.520779 +0.904233 +0.501188 0.492990 0.509079 0.488825 0.495094 0.511339 0.501402 0.494800 0.493613 0.515620 0.515629 0.494783 0.827498 0.520702 0.770282 0.683785 0.623103 0.519139 0.518848 0.522455 0.510292 0.513168 0.518128 0.521636 0.510313 0.518979 0.519507 0.517022 0.511653 0.516015 0.510631 0.517040 +0.308172 +0.500190 0.487929 0.513907 0.512728 0.505050 0.504583 0.491430 0.500206 0.514616 0.498008 0.487412 0.490040 0.249648 0.613082 0.516193 0.128940 0.636531 0.523269 0.511034 0.515748 0.510391 0.510893 0.520742 0.523001 0.520491 0.510682 0.518930 0.520713 0.518351 0.510930 0.517609 0.518347 +0.815084 +0.488607 0.484674 0.508049 0.487495 0.493003 0.499162 0.493020 0.496402 0.494621 0.490971 0.501346 0.500096 0.962881 0.690197 0.194383 0.509899 0.534345 0.519442 0.516963 0.523661 0.518385 0.517609 0.513640 0.523238 0.518639 0.519069 0.515611 0.510140 0.522922 0.523951 0.513149 0.510201 +0.553561 +0.497623 0.493658 0.493473 0.505299 0.495725 0.513821 0.494701 0.492981 0.515391 0.500539 0.505335 0.511878 0.754989 0.134774 0.504439 0.950514 0.219177 0.516383 0.522616 0.510655 0.510980 0.518353 0.519416 0.520106 0.523932 0.524576 0.510834 0.520167 0.512847 0.513244 0.513268 0.523978 +0.120397 +0.509426 0.498462 0.507288 0.507123 0.501912 0.515439 0.490689 0.514119 0.490402 0.506356 0.484914 0.514613 0.837896 0.969639 0.049107 0.370998 0.370730 0.522783 0.513212 0.514564 0.524430 0.516113 0.511530 0.515945 0.514787 0.512505 0.519203 0.523902 0.518916 0.513254 0.524621 0.519862 +0.641667 +0.501670 0.503509 0.505255 0.513045 0.512392 0.513530 0.499636 0.497358 0.509655 0.503605 0.512602 0.495088 0.022646 0.472718 0.800759 0.949967 0.037155 0.522672 0.511155 0.511388 0.523930 0.518270 0.512300 0.523765 0.520891 0.517531 0.521613 0.516208 0.511224 0.512243 0.517074 0.524505 +0.148578 +0.513625 0.491300 0.514670 0.494095 0.496011 0.498929 0.514971 0.515523 0.487685 0.512551 0.508828 0.508862 0.245006 0.743234 0.933978 0.811119 0.749942 0.516594 0.511517 0.512828 0.514834 0.512643 0.514967 0.512655 0.516997 0.517415 0.512848 0.510826 0.514576 0.520008 0.522043 0.521839 +0.175009 +0.490676 0.488142 0.507797 0.486733 0.501067 0.494346 0.504303 0.503312 0.501125 0.496325 0.496252 0.504414 0.816177 0.603205 0.818931 0.805604 0.234077 0.515613 0.521554 0.514429 0.522493 0.517426 0.518186 0.519485 0.524397 0.521149 0.519936 0.511741 0.524013 0.516153 0.523977 0.518856 +0.214990 +0.503953 0.510730 0.503338 0.490583 0.489800 0.490118 0.486511 0.511753 0.506396 0.487209 0.493668 0.499050 0.298404 0.540647 0.366055 0.446348 0.424454 0.511651 0.517965 0.513696 0.509974 0.517611 0.519031 0.518279 0.517238 0.513439 0.520395 0.512563 0.516264 0.520045 0.523472 0.522791 +0.526347 +0.491623 0.497150 0.490183 0.508113 0.515195 0.512284 0.491268 0.487574 0.504480 0.490623 0.508096 0.510093 0.536854 0.729418 0.143566 0.008564 0.239896 0.510037 0.513437 0.518874 0.521626 0.521186 0.522358 0.510237 0.517060 0.514454 0.516991 0.514872 0.520650 0.519354 0.522227 0.512466 +0.813517 +0.502332 0.488545 0.512996 0.497164 0.498309 0.508528 0.503241 0.502014 0.485074 0.504270 0.508573 0.505088 0.553743 0.065834 0.980839 0.953873 0.575387 0.511914 0.517280 0.516493 0.517459 0.523235 0.510973 0.512533 0.523488 0.515146 0.522314 0.512572 0.521921 0.518199 0.522870 0.516224 +0.011121 +0.496424 0.499274 0.491243 0.498606 0.499317 0.493578 0.502554 0.498362 0.514746 0.485760 0.513675 0.513121 0.442035 0.061264 0.321668 0.811709 0.653141 0.517729 0.517471 0.519678 0.517892 0.510975 0.523965 0.511282 0.519429 0.521996 0.515250 0.513913 0.513305 0.520980 0.516100 0.509949 +0.159372 +0.506618 0.513838 0.513849 0.513418 0.488297 0.502967 0.497198 0.509718 0.513808 0.515400 0.489938 0.502101 0.674589 0.345033 0.773491 0.518537 0.449174 0.522073 0.513662 0.510576 0.514800 0.523274 0.524668 0.519889 0.519190 0.512011 0.518493 0.522779 0.516867 0.520011 0.510737 0.519454 +0.516231 +0.496070 0.497659 0.506743 0.501663 0.512832 0.490493 0.491482 0.499077 0.485250 0.495822 0.510503 0.489069 0.655498 0.083734 0.275323 0.341655 0.107785 0.521023 0.517939 0.518669 0.516373 0.524373 0.524068 0.513593 0.522290 0.511316 0.513811 0.513550 0.511461 0.523380 0.518721 0.522865 +0.555702 +0.492364 0.494663 0.513946 0.515063 0.489695 0.513205 0.496865 0.508583 0.490931 0.486981 0.514114 0.498313 0.962878 0.642721 0.734077 0.319319 0.407561 0.520860 0.520001 0.510810 0.510482 0.515509 0.520170 0.521659 0.517645 0.511627 0.510589 0.514495 0.517893 0.511785 0.518972 0.516486 +0.632765 +0.488044 0.497735 0.496471 0.489763 0.492319 0.484774 0.499895 0.513349 0.509686 0.513946 0.512471 0.492557 0.184335 0.932112 0.517588 0.531274 0.118208 0.518699 0.518040 0.510529 0.521936 0.523993 0.520676 0.519794 0.513799 0.520366 0.523393 0.510593 0.516771 0.516455 0.516100 0.524622 +0.489499 +0.487909 0.501419 0.505875 0.512738 0.512132 0.496147 0.497812 0.505446 0.512475 0.487185 0.510656 0.488366 0.399204 0.545373 0.639387 0.810859 0.396597 0.521678 0.523702 0.520621 0.511401 0.517389 0.512072 0.522208 0.510217 0.517461 0.522392 0.510056 0.511661 0.512174 0.521103 0.514769 +0.291334 +0.514350 0.497294 0.512540 0.489001 0.497356 0.509127 0.499628 0.489555 0.497989 0.515127 0.507688 0.511608 0.202294 0.207016 0.434298 0.276410 0.579109 0.518583 0.510163 0.517879 0.514903 0.515095 0.515533 0.512678 0.516061 0.512083 0.510180 0.522070 0.517765 0.510958 0.513693 0.517522 +0.713547 +0.505363 0.494425 0.506838 0.496245 0.508999 0.495588 0.503657 0.507230 0.505431 0.505145 0.514759 0.511480 0.782769 0.165513 0.180311 0.431331 0.502295 0.524339 0.510943 0.524567 0.522165 0.521197 0.519567 0.518996 0.523999 0.521858 0.516779 0.521994 0.522725 0.511196 0.511264 0.517081 +0.516688 +0.505747 0.500941 0.490827 0.505023 0.491494 0.507929 0.514846 0.493980 0.514583 0.510017 0.510551 0.513484 0.125185 0.655151 0.259026 0.936978 0.145271 0.518859 0.512039 0.523949 0.511034 0.524367 0.512850 0.523577 0.512440 0.510634 0.520622 0.522315 0.519770 0.513730 0.522222 0.524295 +0.122551 +0.510572 0.491136 0.508260 0.504944 0.508505 0.500697 0.485678 0.487939 0.501263 0.486406 0.514096 0.490962 0.416338 0.972997 0.390497 0.467360 0.922569 0.515866 0.520742 0.521958 0.517275 0.522752 0.513038 0.512984 0.513961 0.524492 0.520395 0.523728 0.512851 0.518524 0.509873 0.519678 +0.503818 +0.512908 0.499655 0.501488 0.495026 0.514117 0.485444 0.515737 0.499444 0.506058 0.500263 0.499315 0.486408 0.922668 0.073162 0.925555 0.512347 0.606467 0.517869 0.511841 0.510287 0.520183 0.509735 0.518860 0.520081 0.522390 0.518756 0.512387 0.512246 0.513574 0.522593 0.516269 0.518995 +0.511219 +0.498547 0.509858 0.515171 0.491433 0.514059 0.495729 0.488281 0.508482 0.491051 0.489299 0.495304 0.487493 0.139894 0.410587 0.506613 0.417542 0.169001 0.520138 0.518842 0.515667 0.521037 0.513743 0.521161 0.514526 0.520888 0.514347 0.513651 0.510844 0.518583 0.523048 0.513729 0.516300 +0.519938 +0.512773 0.504980 0.512204 0.496959 0.490177 0.504049 0.490621 0.501523 0.484895 0.508567 0.499221 0.486115 0.449298 0.917912 0.296217 0.846523 0.687778 0.518668 0.521559 0.513589 0.512192 0.509993 0.523876 0.516250 0.514405 0.522938 0.516580 0.519016 0.509971 0.511636 0.520211 0.520214 +0.218892 +0.506780 0.489409 0.492071 0.501368 0.490663 0.511386 0.502137 0.509909 0.484785 0.485067 0.503484 0.496448 0.189316 0.505157 0.999943 0.430514 0.801319 0.514913 0.523412 0.520327 0.519019 0.517891 0.512878 0.514286 0.523005 0.512291 0.524518 0.521850 0.521825 0.511511 0.516630 0.520506 +0.598932 +0.499851 0.496627 0.499398 0.495462 0.505666 0.502899 0.510578 0.498340 0.496441 0.498603 0.510846 0.502264 0.492698 0.974642 0.994172 0.620362 0.642317 0.524224 0.515566 0.517594 0.518137 0.521077 0.519014 0.521928 0.520544 0.523628 0.511775 0.511723 0.513196 0.512544 0.524053 0.511731 +0.336013 +0.503455 0.499039 0.505537 0.495746 0.486255 0.490481 0.484698 0.500850 0.512129 0.505923 0.505777 0.506552 0.668127 0.946763 0.297184 0.067663 0.661908 0.519021 0.522139 0.510436 0.512342 0.518979 0.512644 0.517186 0.510142 0.512790 0.516123 0.520669 0.516748 0.524638 0.511005 0.517599 +0.686359 +0.509024 0.497324 0.509461 0.514720 0.514403 0.506049 0.509053 0.515392 0.485128 0.500370 0.497220 0.492382 0.953378 0.270464 0.823791 0.345328 0.725240 0.510491 0.509715 0.513691 0.517033 0.512150 0.510189 0.521061 0.524481 0.511046 0.509669 0.511585 0.514677 0.510595 0.514132 0.515033 +0.528722 +0.497962 0.501315 0.509771 0.495766 0.485653 0.499215 0.511380 0.507002 0.507954 0.495128 0.486017 0.514446 0.603885 0.225311 0.338601 0.884756 0.068358 0.514675 0.519557 0.519806 0.515103 0.519121 0.524359 0.511219 0.516963 0.522333 0.515815 0.510118 0.517819 0.512071 0.513525 0.515875 +0.358516 +0.502915 0.501202 0.513197 0.505598 0.489341 0.488593 0.504228 0.492805 0.503994 0.504408 0.511271 0.498821 0.475190 0.268219 0.153544 0.395763 0.816416 0.518814 0.515768 0.516213 0.518869 0.517824 0.519516 0.518640 0.520767 0.515443 0.519651 0.517441 0.521378 0.515943 0.513430 0.514316 +0.533552 +0.507702 0.495848 0.504509 0.500868 0.490949 0.502648 0.509916 0.486957 0.514746 0.488335 0.504277 0.507809 0.795219 0.011570 0.664761 0.474367 0.467953 0.522640 0.524616 0.519380 0.524211 0.517269 0.513643 0.522215 0.517876 0.509707 0.522069 0.515070 0.521845 0.523172 0.523037 0.515884 +0.524480 +0.490941 0.504868 0.498550 0.500662 0.495875 0.512199 0.510279 0.504225 0.487018 0.501995 0.515769 0.488855 0.415184 0.614128 0.063968 0.683129 0.625360 0.517094 0.512175 0.523019 0.516618 0.510600 0.519714 0.518017 0.512455 0.513762 0.509907 0.521288 0.517201 0.511244 0.522677 0.521299 +0.319711 +0.497583 0.488838 0.497882 0.502553 0.514258 0.500591 0.502109 0.512594 0.506823 0.499189 0.514843 0.513482 0.105694 0.674441 0.866489 0.628872 0.418200 0.512778 0.512270 0.520355 0.518990 0.521934 0.518904 0.513700 0.516723 0.520724 0.522739 0.519046 0.516048 0.517366 0.517124 0.512227 +0.376659 +0.508377 0.487998 0.486507 0.504373 0.488623 0.507922 0.511065 0.493468 0.502716 0.488213 0.508977 0.503665 0.864708 0.756060 0.100250 0.338343 0.545336 0.509937 0.511157 0.520778 0.519298 0.517918 0.524510 0.513831 0.510907 0.517228 0.518348 0.522311 0.519141 0.515997 0.510347 0.517690 +0.542950 +0.515871 0.485642 0.503480 0.485692 0.492232 0.510239 0.499040 0.485066 0.489230 0.514259 0.487378 0.507123 0.422679 0.357061 0.564162 0.843587 0.428661 0.520261 0.513793 0.517465 0.515737 0.521571 0.514627 0.510763 0.523630 0.515004 0.516616 0.514124 0.519246 0.518958 0.521780 0.520255 +0.240507 +0.510132 0.499004 0.485328 0.488705 0.497874 0.508307 0.512466 0.496204 0.505650 0.509526 0.501067 0.495485 0.593499 0.001063 0.405420 0.822960 0.399057 0.510700 0.517596 0.514330 0.524217 0.514941 0.524339 0.511433 0.518433 0.515927 0.511587 0.518215 0.511889 0.521696 0.523568 0.515441 +0.108820 +0.486120 0.509960 0.492909 0.490564 0.488693 0.507901 0.508510 0.510451 0.504215 0.499812 0.496055 0.488091 0.426779 0.137322 0.264050 0.230023 0.390576 0.521748 0.517884 0.522420 0.517000 0.520167 0.514778 0.518452 0.514142 0.510412 0.515244 0.516684 0.518072 0.522560 0.524104 0.519737 +0.672118 +0.494454 0.492014 0.490968 0.501717 0.512792 0.500259 0.488628 0.486861 0.502114 0.497643 0.491415 0.496756 0.417858 0.480004 0.032006 0.490450 0.273533 0.514328 0.519404 0.523918 0.515673 0.520742 0.516913 0.523639 0.519724 0.517325 0.511238 0.518586 0.523396 0.516492 0.512037 0.520047 +0.479866 +0.486827 0.503554 0.505131 0.499413 0.495198 0.503950 0.516035 0.498371 0.515717 0.498696 0.494486 0.497867 0.952561 0.559875 0.931414 0.803750 0.136930 0.519779 0.514765 0.511861 0.523020 0.513900 0.516650 0.511164 0.512247 0.513700 0.519220 0.523804 0.511905 0.510564 0.520741 0.511330 +0.135434 +0.509215 0.498041 0.505643 0.489960 0.497558 0.515539 0.492315 0.514916 0.485936 0.513762 0.508264 0.505308 0.390512 0.725060 0.041880 0.137052 0.733328 0.520876 0.521973 0.510255 0.521570 0.524340 0.523229 0.512158 0.522476 0.516320 0.516563 0.519577 0.511775 0.519612 0.515937 0.524256 +0.903385 +0.491956 0.500465 0.485030 0.508428 0.492708 0.515759 0.507038 0.489076 0.504231 0.489743 0.510414 0.512426 0.950665 0.757210 0.394502 0.661954 0.386211 0.518366 0.516920 0.522692 0.522825 0.510698 0.520408 0.510097 0.514280 0.511065 0.514269 0.519143 0.512905 0.522778 0.518497 0.513290 +0.362536 +0.502831 0.493008 0.496626 0.485210 0.493874 0.510572 0.489900 0.502338 0.492886 0.509606 0.501995 0.487058 0.989742 0.306697 0.668709 0.713577 0.404684 0.516655 0.515022 0.522780 0.511813 0.515014 0.523399 0.511166 0.516500 0.510043 0.517311 0.514356 0.511875 0.516053 0.510792 0.510544 +0.334552 +0.512680 0.509112 0.495596 0.513867 0.507891 0.502923 0.505225 0.506642 0.509206 0.511727 0.508394 0.493936 0.579021 0.122990 0.819271 0.508943 0.500721 0.518337 0.522317 0.512832 0.512436 0.522002 0.523011 0.518550 0.523215 0.518866 0.515873 0.509759 0.513379 0.516957 0.518262 0.524201 +0.493167 +0.485739 0.503398 0.492855 0.493591 0.502978 0.509463 0.510472 0.502085 0.491730 0.499037 0.505862 0.488935 0.247582 0.960904 0.520101 0.689291 0.989419 0.522820 0.513915 0.523348 0.510605 0.520279 0.510673 0.515006 0.514630 0.524298 0.519405 0.518685 0.517213 0.513951 0.513600 0.520447 +0.392466 +0.487596 0.488070 0.489027 0.495211 0.506480 0.511920 0.515181 0.500567 0.496489 0.508165 0.511007 0.504802 0.791330 0.769599 0.229152 0.780439 0.063993 0.511250 0.523567 0.511453 0.510400 0.522819 0.514737 0.511783 0.514397 0.517882 0.517300 0.514143 0.509885 0.520446 0.511049 0.512722 +0.199914 +0.498864 0.495211 0.504877 0.487217 0.484707 0.501267 0.490708 0.490902 0.508733 0.514437 0.493687 0.505293 0.164516 0.456922 0.804826 0.179278 0.103502 0.523033 0.517945 0.521550 0.522218 0.513653 0.511936 0.515729 0.519073 0.522861 0.522482 0.517461 0.521214 0.521787 0.517195 0.513340 +0.623654 +0.496059 0.487657 0.503902 0.505984 0.494983 0.485590 0.507553 0.515313 0.501947 0.497464 0.503198 0.496905 0.906109 0.294268 0.146293 0.758308 0.806212 0.516313 0.513210 0.518916 0.516446 0.523652 0.521792 0.515681 0.518116 0.524159 0.512396 0.511953 0.524102 0.523608 0.520221 0.522437 +0.246838 +0.488637 0.491417 0.496195 0.512442 0.513742 0.509470 0.504996 0.509035 0.491598 0.498935 0.513904 0.504125 0.714754 0.159229 0.757982 0.331201 0.732053 0.515077 0.512021 0.509745 0.518453 0.518551 0.517340 0.520623 0.522025 0.521750 0.523627 0.520820 0.518213 0.511501 0.519264 0.521001 +0.611006 +0.488892 0.499438 0.508889 0.490785 0.484833 0.502063 0.505960 0.488909 0.499286 0.493463 0.511728 0.500065 0.718799 0.009644 0.348454 0.160443 0.132351 0.522579 0.515446 0.512843 0.523039 0.516024 0.520225 0.513016 0.509985 0.512826 0.521268 0.513878 0.514707 0.515152 0.510397 0.524268 +0.652083 +0.498892 0.489243 0.505903 0.489986 0.493882 0.507697 0.508853 0.515243 0.494424 0.497448 0.489306 0.487758 0.605929 0.518093 0.995406 0.320387 0.329081 0.512345 0.515074 0.519921 0.509867 0.521407 0.517811 0.517843 0.521764 0.522747 0.517732 0.510073 0.520805 0.511071 0.522365 0.512133 +0.565505 +0.509803 0.498334 0.514109 0.514501 0.485692 0.496247 0.504035 0.494493 0.487579 0.490503 0.501569 0.510453 0.853075 0.595823 0.983041 0.881609 0.290593 0.517201 0.512089 0.518568 0.518272 0.521638 0.513532 0.513249 0.516695 0.511403 0.515330 0.518740 0.517941 0.516661 0.517233 0.519433 +0.387911 +0.499296 0.514686 0.509266 0.507541 0.503904 0.500704 0.509629 0.503176 0.505593 0.496506 0.491937 0.485831 0.707199 0.411647 0.278113 0.137894 0.845764 0.523945 0.511681 0.516363 0.517105 0.514155 0.510581 0.518445 0.519836 0.510024 0.518667 0.518121 0.523757 0.522394 0.517375 0.514028 +0.885946 +0.492402 0.498716 0.514273 0.504432 0.494543 0.514761 0.509949 0.500844 0.501893 0.506357 0.504025 0.490307 0.720997 0.881310 0.262851 0.100008 0.280067 0.523387 0.521212 0.517774 0.518797 0.522122 0.520779 0.519592 0.511293 0.516409 0.510995 0.512722 0.517711 0.511573 0.513077 0.513462 +0.808544 +0.513590 0.502446 0.490861 0.507056 0.497218 0.484944 0.486489 0.486302 0.494698 0.504688 0.514861 0.499231 0.423283 0.494546 0.989648 0.726628 0.350291 0.524597 0.519646 0.521851 0.521544 0.514635 0.513554 0.513797 0.514111 0.517408 0.517808 0.514698 0.513996 0.518629 0.509741 0.524107 +0.302233 +0.487029 0.494468 0.511402 0.488477 0.498429 0.486282 0.497782 0.499469 0.487172 0.506974 0.505170 0.504515 0.544104 0.358318 0.646958 0.811075 0.022415 0.518619 0.517597 0.523180 0.509711 0.522456 0.513738 0.510527 0.514047 0.511178 0.518502 0.517326 0.515318 0.522896 0.514660 0.510386 +0.210800 +0.515563 0.500001 0.502680 0.506084 0.496063 0.494230 0.505208 0.513717 0.503966 0.499129 0.509760 0.497973 0.218192 0.913060 0.902012 0.565560 0.307103 0.516799 0.516694 0.513993 0.518988 0.518745 0.523231 0.515648 0.515718 0.515899 0.515020 0.522697 0.518452 0.517061 0.521952 0.517109 +0.417579 +0.502650 0.508018 0.497898 0.491588 0.511795 0.496846 0.500653 0.494072 0.492871 0.508091 0.492364 0.497576 0.629713 0.511692 0.616863 0.947462 0.018753 0.512036 0.511668 0.511369 0.517926 0.511376 0.511151 0.516714 0.518944 0.518830 0.512240 0.516108 0.520699 0.520682 0.518645 0.524626 +0.115959 +0.494731 0.494896 0.486690 0.489885 0.497164 0.495869 0.512248 0.494721 0.504231 0.514676 0.510856 0.509299 0.495568 0.122043 0.934310 0.391669 0.133186 0.522633 0.520378 0.524230 0.521295 0.521446 0.519470 0.515000 0.511446 0.520504 0.522905 0.510087 0.512971 0.517668 0.514750 0.524189 +0.593842 +0.512981 0.496318 0.509176 0.503022 0.494125 0.495679 0.494462 0.508920 0.491198 0.495631 0.508544 0.486166 0.680178 0.104984 0.762306 0.882243 0.925459 0.523103 0.511357 0.517580 0.515950 0.519331 0.521347 0.520625 0.517095 0.514976 0.519427 0.519111 0.512167 0.518563 0.522095 0.514213 +0.129077 +0.503980 0.514634 0.493730 0.507064 0.505837 0.510534 0.509540 0.484958 0.500894 0.514988 0.494694 0.494161 0.000280 0.264199 0.721136 0.215220 0.060786 0.514242 0.513589 0.511783 0.515704 0.512591 0.521603 0.521961 0.511531 0.521566 0.522467 0.520908 0.514693 0.517149 0.519469 0.514136 +0.791824 +0.504482 0.489499 0.496744 0.490458 0.495969 0.498697 0.512516 0.494984 0.499821 0.498968 0.510689 0.501003 0.568414 0.175900 0.440242 0.994154 0.323465 0.524139 0.524292 0.518763 0.514116 0.519797 0.515902 0.515820 0.513536 0.518342 0.519027 0.516269 0.519195 0.512099 0.522690 0.522583 +0.056335 +0.513512 0.490634 0.506260 0.494850 0.508635 0.485536 0.485849 0.501586 0.510021 0.514051 0.512730 0.498446 0.821797 0.886317 0.271051 0.666686 0.764564 0.521086 0.510155 0.520094 0.511796 0.513705 0.523572 0.520606 0.514776 0.519151 0.516668 0.524111 0.514148 0.521156 0.514873 0.517507 +0.257619 +0.507964 0.502104 0.491390 0.492177 0.501941 0.486747 0.511131 0.496991 0.487889 0.496753 0.505802 0.512700 0.694363 0.074419 0.005567 0.959266 0.038493 0.514413 0.517650 0.518449 0.520900 0.524054 0.515612 0.515431 0.524029 0.510555 0.513462 0.514253 0.520038 0.518947 0.521238 0.510502 +0 +0.498054 0.498668 0.492764 0.504984 0.488073 0.508295 0.490918 0.487820 0.503001 0.493827 0.502445 0.492133 0.127301 0.142543 0.835844 0.534301 0.906585 0.513777 0.515558 0.521489 0.519244 0.509667 0.523062 0.524528 0.523315 0.517568 0.517364 0.515383 0.523966 0.524157 0.523756 0.511745 +0.464112 +0.486078 0.499022 0.497888 0.490077 0.488447 0.507005 0.504542 0.514991 0.509986 0.485102 0.490365 0.513236 0.646555 0.054365 0.576220 0.128666 0.042078 0.516527 0.510240 0.516154 0.513081 0.515714 0.523529 0.516172 0.523261 0.513635 0.518121 0.519140 0.512665 0.516736 0.517491 0.522083 +0.783274 +0.495612 0.503842 0.495518 0.495360 0.512946 0.487310 0.498726 0.502630 0.491897 0.504358 0.485260 0.504696 0.623788 0.128065 0.960899 0.430769 0.078137 0.515323 0.516795 0.516663 0.514301 0.510916 0.515685 0.522335 0.515664 0.511036 0.513617 0.516577 0.520488 0.515885 0.515840 0.522542 +0.572005 +0.508518 0.493342 0.502073 0.506941 0.495162 0.487860 0.515367 0.510197 0.504217 0.497105 0.512077 0.507352 0.423780 0.827657 0.193536 0.288592 0.928669 0.521018 0.520517 0.521017 0.509811 0.512006 0.521831 0.510391 0.521766 0.518071 0.515619 0.513879 0.519633 0.517782 0.510044 0.520462 +0.683161 +0.510072 0.515980 0.489513 0.484830 0.486233 0.497973 0.490959 0.491290 0.507477 0.496487 0.488923 0.512808 0.286974 0.794931 0.188538 0.451684 0.937579 0.513058 0.517870 0.514537 0.513237 0.515051 0.522412 0.521262 0.510248 0.514383 0.515433 0.512249 0.512187 0.520186 0.512941 0.517606 +0.532808 +0.495326 0.506991 0.512987 0.505157 0.502010 0.487494 0.512819 0.513263 0.491626 0.513647 0.515375 0.487215 0.957923 0.503819 0.542509 0.609977 0.424986 0.510444 0.521309 0.515483 0.512670 0.520949 0.520952 0.512388 0.518459 0.514578 0.515728 0.515076 0.520487 0.515718 0.519424 0.523769 +0.339525 +0.494608 0.505475 0.504504 0.510468 0.502194 0.489244 0.484832 0.493255 0.485194 0.498644 0.503375 0.486424 0.099289 0.222083 0.194416 0.049541 0.665776 0.517325 0.514510 0.515218 0.511478 0.516832 0.514785 0.521571 0.516025 0.519624 0.521833 0.514615 0.516678 0.510636 0.522542 0.513922 +0.910446 +0.514583 0.514890 0.508945 0.501803 0.506143 0.494795 0.500069 0.501157 0.508811 0.508990 0.494643 0.484788 0.667195 0.304040 0.082612 0.450805 0.184164 0.510723 0.509769 0.512471 0.522870 0.518089 0.522989 0.517487 0.511046 0.516549 0.520424 0.509954 0.518912 0.514386 0.520794 0.513837 +0.501312 +0.491508 0.493890 0.486181 0.508349 0.513937 0.514507 0.492800 0.514748 0.492190 0.498211 0.498157 0.506323 0.152858 0.886471 0.849143 0.640290 0.951772 0.514526 0.516156 0.513589 0.520346 0.521231 0.518233 0.521637 0.518729 0.523757 0.520926 0.519559 0.522059 0.513664 0.515508 0.514691 +0.419093 +0.503356 0.485650 0.512897 0.508743 0.504268 0.512330 0.508393 0.495047 0.510939 0.514349 0.491770 0.485270 0.935343 0.717483 0.941685 0.097674 0.133862 0.512736 0.510684 0.514320 0.516271 0.521247 0.524364 0.511464 0.514859 0.517508 0.515636 0.515580 0.510675 0.514843 0.522001 0.522073 +0.770835 +0.486658 0.488033 0.499733 0.489329 0.503944 0.510387 0.503664 0.503274 0.491137 0.491594 0.513209 0.491457 0.805697 0.804196 0.618509 0.569258 0.330332 0.512076 0.514624 0.513570 0.512180 0.510280 0.520706 0.520394 0.521839 0.512838 0.518483 0.511991 0.510043 0.524337 0.522825 0.510082 +0.409800 +0.497653 0.497937 0.492920 0.512481 0.503288 0.500904 0.505740 0.488610 0.512215 0.498347 0.492767 0.491113 0.303933 0.289685 0.276319 0.047198 0.355437 0.514481 0.517715 0.512918 0.517719 0.523882 0.521603 0.518326 0.523924 0.521829 0.513716 0.518331 0.515690 0.518444 0.514749 0.519315 +0.976832 +0.511551 0.488700 0.510095 0.505768 0.487750 0.503771 0.500724 0.502816 0.497361 0.498378 0.504365 0.498452 0.077038 0.943911 0.446389 0.113404 0.005549 0.519403 0.520498 0.515863 0.517027 0.515602 0.518552 0.518008 0.517169 0.515640 0.514676 0.524377 0.518642 0.510404 0.510410 0.512347 +0.775756 +0.503400 0.497523 0.494016 0.501294 0.506292 0.504355 0.502261 0.512766 0.502325 0.488376 0.512536 0.515263 0.847301 0.741886 0.316088 0.199817 0.666840 0.514885 0.516196 0.511278 0.512677 0.511380 0.521212 0.517439 0.512653 0.514644 0.520967 0.511812 0.512653 0.512422 0.518811 0.517051 +0.867516 +0.514273 0.505390 0.516009 0.492877 0.514639 0.515466 0.494063 0.506469 0.497219 0.504880 0.505886 0.506759 0.793522 0.556050 0.766479 0.880120 0.302325 0.514334 0.517985 0.514411 0.521024 0.519899 0.519496 0.518200 0.516976 0.521577 0.513998 0.522745 0.524269 0.517031 0.516142 0.515565 +0.354522 +0.495211 0.506311 0.512806 0.488931 0.509484 0.514971 0.515464 0.505389 0.493991 0.489396 0.498433 0.513385 0.499118 0.684848 0.458624 0.357612 0.805172 0.524433 0.518828 0.510886 0.515990 0.521003 0.521601 0.519404 0.522880 0.513219 0.514145 0.512492 0.523533 0.516418 0.518324 0.517447 +0.600003 +0.516084 0.505021 0.490735 0.491915 0.499422 0.490150 0.489730 0.506137 0.508338 0.497074 0.488243 0.499758 0.712014 0.186803 0.344310 0.644548 0.382630 0.517209 0.512179 0.519050 0.524295 0.512940 0.519283 0.520702 0.518705 0.519340 0.519550 0.516854 0.519851 0.520993 0.511404 0.516193 +0.361832 +0.488777 0.510892 0.487008 0.494958 0.494978 0.491152 0.490334 0.490224 0.499661 0.502030 0.513270 0.505286 0.283586 0.947928 0.836370 0.368658 0.101094 0.517123 0.521635 0.510052 0.524581 0.517410 0.521483 0.512501 0.511079 0.514572 0.522496 0.516954 0.511031 0.513004 0.524632 0.520351 +0.648676 +0.498519 0.512658 0.487737 0.501391 0.499912 0.506540 0.493646 0.512851 0.487797 0.502814 0.499055 0.486026 0.967458 0.473365 0.650167 0.653582 0.941386 0.510939 0.521501 0.509901 0.522494 0.510427 0.511219 0.521164 0.514076 0.523500 0.513022 0.520450 0.523415 0.509964 0.512866 0.524322 +0.356323 +0.505689 0.510569 0.509065 0.492402 0.498438 0.502482 0.494272 0.514770 0.515974 0.510391 0.498757 0.509466 0.444492 0.282849 0.590806 0.819512 0.551788 0.513653 0.521619 0.521358 0.522538 0.510940 0.510368 0.512816 0.523261 0.510565 0.514097 0.518321 0.524280 0.520378 0.516684 0.523413 +0.234529 +0.505114 0.502214 0.515747 0.499147 0.499152 0.486307 0.506210 0.484989 0.487554 0.506172 0.510946 0.506528 0.682713 0.631932 0.747882 0.898167 0.055374 0.517348 0.522081 0.522030 0.520113 0.518367 0.509707 0.517640 0.521810 0.516778 0.515165 0.523773 0.516482 0.513198 0.514056 0.517014 +0.158002 +0.512897 0.510864 0.493941 0.497141 0.490650 0.515778 0.493866 0.486060 0.513930 0.498531 0.502710 0.486293 0.635496 0.541092 0.835607 0.563177 0.316408 0.518338 0.520616 0.515119 0.518030 0.511039 0.511851 0.512667 0.515466 0.520736 0.516442 0.513485 0.520441 0.524634 0.521124 0.513113 +0.468511 +0.504188 0.495001 0.499664 0.491024 0.504321 0.496355 0.501734 0.513272 0.505527 0.498204 0.513263 0.495107 0.815139 0.191297 0.726847 0.022787 0.835656 0.515321 0.514555 0.513292 0.511646 0.516070 0.521377 0.515709 0.514534 0.513736 0.523255 0.513696 0.511434 0.522190 0.524310 0.519161 +0.898607 +0.515540 0.510232 0.496064 0.515935 0.511161 0.502756 0.505196 0.490303 0.514506 0.505598 0.485414 0.508421 0.496400 0.083219 0.642517 0.324464 0.721061 0.523987 0.511070 0.518529 0.512866 0.514194 0.510759 0.515022 0.524097 0.515167 0.511702 0.521618 0.511062 0.521653 0.523564 0.521591 +0.598240 +0.499274 0.514989 0.502806 0.487943 0.503359 0.501317 0.510148 0.515445 0.495151 0.505950 0.511393 0.498710 0.893551 0.615444 0.145077 0.347235 0.723739 0.522870 0.511820 0.513644 0.524374 0.520885 0.514181 0.511115 0.514263 0.520659 0.515965 0.523727 0.520175 0.522655 0.522667 0.510907 +0.601817 +0.488950 0.489781 0.513993 0.514416 0.502961 0.513774 0.513967 0.485204 0.505816 0.499434 0.510166 0.488779 0.146724 0.991095 0.006289 0.075985 0.281643 0.514961 0.522503 0.523305 0.515236 0.523014 0.512704 0.518949 0.515234 0.510560 0.510907 0.522862 0.512382 0.519686 0.510854 0.516175 +0.930443 +0.505803 0.503289 0.512182 0.511864 0.484785 0.492669 0.488352 0.511916 0.486193 0.508771 0.500896 0.494732 0.924439 0.796017 0.407300 0.350879 0.851716 0.521686 0.512345 0.513278 0.517105 0.512475 0.518228 0.521456 0.520099 0.518305 0.519327 0.520463 0.510728 0.521914 0.512127 0.517136 +0.516570 +0.503448 0.491477 0.501020 0.497008 0.490379 0.498071 0.507883 0.489363 0.515553 0.486452 0.486323 0.501938 0.420721 0.504310 0.787465 0.936595 0.717667 0.510051 0.519203 0.519989 0.512998 0.517091 0.513372 0.524389 0.519353 0.510238 0.523253 0.517482 0.518629 0.515054 0.522596 0.515796 +0.133084 +0.488073 0.486070 0.490316 0.502570 0.515438 0.504662 0.486063 0.505707 0.489029 0.496088 0.506141 0.493116 0.952609 0.360754 0.506300 0.164240 0.821405 0.514432 0.523835 0.516877 0.520194 0.514012 0.516489 0.513805 0.524410 0.522269 0.510557 0.513213 0.521618 0.524565 0.522619 0.516252 +0.646365 +0.505801 0.504517 0.508078 0.495790 0.507644 0.496107 0.509074 0.497209 0.493684 0.516080 0.496596 0.492542 0.345288 0.052685 0.401554 0.958224 0.553524 0.515383 0.523808 0.521431 0.511728 0.514724 0.521819 0.511312 0.512497 0.513887 0.519269 0.519065 0.514520 0.517210 0.510781 0.523691 +0.060995 +0.503370 0.496812 0.492375 0.515397 0.504118 0.502641 0.490181 0.495109 0.515536 0.508526 0.500634 0.500685 0.484749 0.627191 0.216905 0.333103 0.648999 0.510556 0.513360 0.518414 0.521105 0.521358 0.516657 0.512602 0.521396 0.520230 0.517823 0.511177 0.510628 0.514777 0.511953 0.510688 +0.695143 +0.510563 0.489488 0.503857 0.495345 0.514699 0.512674 0.497152 0.488528 0.505354 0.500574 0.497043 0.508253 0.541667 0.476135 0.122043 0.935494 0.253619 0.513117 0.511455 0.512081 0.510146 0.522854 0.514061 0.513065 0.517083 0.510075 0.511967 0.515027 0.513399 0.514063 0.517438 0.519913 +0.214990 +0.501190 0.498252 0.501415 0.502803 0.505442 0.502185 0.509563 0.493283 0.487654 0.490132 0.499588 0.501041 0.468063 0.706975 0.647185 0.631168 0.932309 0.522028 0.519770 0.512080 0.517058 0.518478 0.520558 0.513261 0.521077 0.522781 0.519452 0.518405 0.519926 0.510726 0.516012 0.513835 +0.457755 +0.515050 0.498959 0.505823 0.515180 0.485724 0.502487 0.508206 0.512150 0.508267 0.497358 0.487624 0.492043 0.775496 0.143696 0.187766 0.492121 0.302241 0.523286 0.517847 0.513458 0.510188 0.516588 0.522240 0.523626 0.519892 0.517553 0.523638 0.519299 0.515938 0.523181 0.522380 0.514027 +0.426455 +0.497622 0.490916 0.492983 0.508848 0.502776 0.491810 0.494206 0.505364 0.491335 0.514105 0.501183 0.499977 0.650575 0.491132 0.717244 0.922464 0.656837 0.517996 0.512385 0.519428 0.511669 0.524080 0.522718 0.515446 0.512538 0.511991 0.515082 0.511613 0.511073 0.512149 0.524519 0.510891 +0.155665 +0.514024 0.507805 0.505139 0.486786 0.507584 0.510904 0.502483 0.505463 0.507270 0.489214 0.493882 0.486658 0.104800 0.681847 0.106609 0.025474 0.917957 0.510424 0.514942 0.517947 0.515512 0.518962 0.515144 0.515124 0.523765 0.516844 0.520226 0.519925 0.519588 0.512391 0.516320 0.522121 +0.951823 +0.485809 0.512925 0.503036 0.487356 0.513261 0.491416 0.493082 0.500653 0.503039 0.496239 0.501460 0.502545 0.672480 0.963674 0.983642 0.972080 0.014200 0.521315 0.509919 0.515806 0.510911 0.509802 0.512232 0.520419 0.524359 0.522275 0.514518 0.514108 0.514709 0.523908 0.510745 0.515922 +0.251198 +0.497906 0.496571 0.501018 0.503764 0.500278 0.490565 0.505299 0.500080 0.504997 0.490222 0.505350 0.510907 0.924240 0.454243 0.874105 0.394072 0.440434 0.512732 0.520936 0.517441 0.520433 0.511423 0.520109 0.519880 0.520030 0.522003 0.517665 0.517462 0.521996 0.521294 0.520884 0.514001 +0.582538 +0.495719 0.512411 0.486822 0.485800 0.515415 0.501715 0.499179 0.495519 0.489391 0.503053 0.515205 0.484624 0.357547 0.703939 0.721483 0.030269 0.346333 0.518604 0.520189 0.515217 0.513335 0.520843 0.523207 0.520062 0.518910 0.515587 0.520283 0.515369 0.512308 0.512962 0.523352 0.517457 +0.824886 +0.498371 0.487247 0.514368 0.490512 0.485728 0.504958 0.497953 0.509187 0.503338 0.490753 0.486420 0.493998 0.988532 0.003602 0.993872 0.590541 0.383068 0.522469 0.512235 0.517779 0.513910 0.519327 0.514374 0.510779 0.518308 0.510153 0.514774 0.516712 0.521856 0.510507 0.510625 0.513181 +0.442353 +0.512328 0.510899 0.512381 0.513486 0.486666 0.497158 0.487050 0.504402 0.492887 0.507317 0.485175 0.498482 0.397624 0.035716 0.734268 0.512288 0.617869 0.522048 0.522230 0.521918 0.510796 0.514161 0.524437 0.512384 0.521748 0.511665 0.518414 0.509891 0.517908 0.520874 0.512959 0.516009 +0.501964 +0.515830 0.515790 0.496011 0.507856 0.508610 0.496049 0.488382 0.511037 0.504483 0.504136 0.504249 0.508696 0.268599 0.542406 0.880091 0.815365 0.983382 0.518781 0.511908 0.524403 0.514585 0.521668 0.521443 0.521536 0.512192 0.509693 0.515900 0.523644 0.512605 0.517566 0.522035 0.518376 +0.266835 +0.484757 0.513853 0.514025 0.486194 0.502136 0.492851 0.501602 0.496204 0.513335 0.496444 0.489082 0.511479 0.332521 0.872416 0.055663 0.364682 0.409048 0.519931 0.519314 0.517825 0.518595 0.523148 0.521975 0.512288 0.516139 0.518337 0.517869 0.522382 0.516547 0.510400 0.513114 0.512846 +0.620704 +0.491444 0.509415 0.499394 0.490845 0.513126 0.487318 0.508627 0.504915 0.504211 0.499803 0.505781 0.515805 0.709286 0.421778 0.237241 0.473373 0.789249 0.522740 0.522697 0.518994 0.509859 0.523396 0.514640 0.520982 0.516624 0.514892 0.522490 0.514598 0.522990 0.524058 0.512933 0.522317 +0.487659 +0.506195 0.485809 0.512852 0.513356 0.514173 0.486724 0.502950 0.512785 0.505969 0.516062 0.505268 0.507764 0.820788 0.964608 0.659297 0.819136 0.253026 0.513913 0.516537 0.520990 0.519950 0.516147 0.513696 0.513567 0.518028 0.516119 0.510658 0.515765 0.513542 0.510920 0.519342 0.523518 +0.295655 +0.515009 0.505507 0.506634 0.496496 0.503509 0.506193 0.501489 0.507163 0.501645 0.490575 0.508646 0.511286 0.362350 0.291086 0.774571 0.632685 0.371242 0.516484 0.517630 0.517366 0.523257 0.517085 0.515885 0.513110 0.524305 0.511573 0.521615 0.515558 0.521157 0.514267 0.523586 0.511500 +0.347800 +0.497220 0.498217 0.502129 0.501561 0.497522 0.499416 0.515837 0.495762 0.503293 0.487228 0.504337 0.509667 0.932439 0.003177 0.862123 0.384536 0.479583 0.524273 0.519775 0.519358 0.517517 0.523640 0.513255 0.522994 0.520630 0.510311 0.513454 0.522337 0.521199 0.514089 0.519852 0.517648 +0.619164 +0.491185 0.512291 0.495392 0.514447 0.494044 0.497435 0.495394 0.499557 0.490611 0.492486 0.501126 0.510738 0.909705 0.608005 0.351834 0.880314 0.558358 0.516864 0.524187 0.515482 0.517808 0.521546 0.523856 0.524104 0.516432 0.521697 0.521658 0.510520 0.511464 0.518001 0.510082 0.515242 +0.081762 +0.499171 0.491912 0.507845 0.489491 0.489929 0.485195 0.490689 0.502271 0.507982 0.487674 0.508937 0.515461 0.776757 0.310554 0.372284 0.932104 0.381227 0.524046 0.515469 0.512921 0.512705 0.511743 0.519638 0.521945 0.511001 0.516125 0.521544 0.517809 0.518610 0.521961 0.520508 0.516214 +0.205278 +0.512046 0.497461 0.484948 0.513240 0.513057 0.492848 0.506229 0.491490 0.493591 0.498883 0.487928 0.504716 0.956253 0.503636 0.480813 0.605700 0.690700 0.519043 0.519054 0.512385 0.523350 0.509966 0.511899 0.517729 0.512287 0.522817 0.520660 0.512149 0.512220 0.510319 0.510629 0.517185 +0.494851 +0.500913 0.499164 0.495682 0.493295 0.496269 0.494472 0.485044 0.500754 0.501798 0.509755 0.488663 0.486357 0.402506 0.931018 0.156146 0.037845 0.454488 0.524250 0.512063 0.520800 0.517003 0.522041 0.522506 0.510483 0.510150 0.519153 0.518352 0.515773 0.520614 0.515413 0.518337 0.523831 +0.907052 +0.508854 0.513750 0.494120 0.489460 0.493780 0.495045 0.484741 0.500552 0.495143 0.491014 0.501624 0.508240 0.604992 0.799744 0.924679 0.811937 0.471885 0.521993 0.521419 0.523537 0.512263 0.523416 0.518609 0.521637 0.524582 0.517497 0.512391 0.509759 0.515495 0.511365 0.516022 0.509672 +0.168300 +0.490025 0.489565 0.511580 0.498965 0.486216 0.497053 0.515339 0.504793 0.493419 0.501762 0.498978 0.511410 0.816158 0.285647 0.537990 0.790026 0.904978 0.514514 0.523853 0.509817 0.522176 0.509846 0.517250 0.521978 0.518941 0.519698 0.517374 0.523820 0.511121 0.522915 0.512307 0.513839 +0.367222 +0.492756 0.495541 0.502429 0.485603 0.515321 0.511812 0.493312 0.505492 0.493517 0.508951 0.505999 0.496060 0.937560 0.906808 0.019396 0.955823 0.274440 0.517525 0.510241 0.520274 0.523109 0.517255 0.520944 0.513676 0.519431 0.518654 0.517588 0.522865 0.517931 0.516334 0.520189 0.514089 +0.198047 +0.498573 0.507481 0.507121 0.494552 0.509290 0.500438 0.510638 0.496052 0.495226 0.495054 0.502642 0.497210 0.764828 0.179829 0.341054 0.021337 0.511113 0.523225 0.510132 0.523788 0.521607 0.522889 0.518764 0.522319 0.511128 0.514008 0.521283 0.520379 0.522636 0.517874 0.510361 0.517256 +0.850404 +0.501701 0.515822 0.495584 0.513957 0.504158 0.488185 0.501138 0.499880 0.510764 0.508161 0.506477 0.498551 0.780558 0.068460 0.037314 0.538405 0.757203 0.513612 0.522082 0.512918 0.513524 0.524590 0.514963 0.517572 0.511791 0.517709 0.512491 0.516761 0.523162 0.510996 0.521976 0.510569 +0.482451 +0.505324 0.508214 0.507805 0.507614 0.504417 0.493946 0.512726 0.493432 0.501778 0.496483 0.506645 0.490451 0.925355 0.150257 0.257349 0.816759 0.372112 0.510351 0.523917 0.515511 0.523112 0.518173 0.512410 0.522381 0.515206 0.515474 0.518279 0.511792 0.520728 0.519156 0.511246 0.524518 +0.253704 +0.508530 0.514443 0.495412 0.512346 0.494094 0.489409 0.488094 0.515656 0.506642 0.497294 0.502317 0.513777 0.517283 0.422362 0.037621 0.694354 0.933157 0.510366 0.523099 0.514142 0.520418 0.522729 0.522876 0.516126 0.521089 0.516372 0.514478 0.510398 0.516409 0.512790 0.516729 0.510756 +0.313393 +0.490807 0.508753 0.501933 0.509522 0.497556 0.511202 0.501739 0.502625 0.497302 0.493762 0.513029 0.497370 0.395713 0.972631 0.258456 0.372468 0.018664 0.519673 0.521608 0.523095 0.510229 0.519003 0.521021 0.524173 0.516603 0.512173 0.521922 0.515875 0.511824 0.518858 0.518164 0.514159 +0.613003 +0.485884 0.513586 0.505566 0.508986 0.493110 0.504185 0.496347 0.496466 0.505673 0.514279 0.497504 0.484981 0.946775 0.497307 0.307073 0.977131 0.750907 0.519407 0.517879 0.523158 0.513932 0.522896 0.519693 0.511999 0.513753 0.512043 0.511412 0.524282 0.517696 0.522212 0.509796 0.510096 +0.067208 +0.504402 0.501171 0.491085 0.493087 0.496760 0.510647 0.497674 0.509703 0.486305 0.505902 0.503872 0.504377 0.268663 0.609649 0.926052 0.845497 0.469266 0.522990 0.509896 0.516684 0.522479 0.512436 0.513052 0.523411 0.510733 0.514111 0.513987 0.515235 0.513983 0.510764 0.516625 0.523494 +0.159607 +0.508131 0.510839 0.509982 0.490482 0.493285 0.513670 0.493293 0.491558 0.514146 0.503947 0.504853 0.489960 0.570398 0.462748 0.544111 0.477814 0.282172 0.513197 0.522450 0.524220 0.516665 0.522578 0.523210 0.514599 0.524554 0.519118 0.512627 0.509854 0.516683 0.513649 0.509772 0.512626 +0.521726 +0.503531 0.491999 0.490719 0.516068 0.510386 0.512709 0.497820 0.502386 0.510863 0.509407 0.512585 0.489571 0.777352 0.283655 0.106760 0.549072 0.703585 0.521393 0.514118 0.512944 0.512518 0.513085 0.521020 0.523160 0.523058 0.515697 0.510649 0.521040 0.510886 0.511911 0.517599 0.515420 +0.498519 +0.512025 0.493190 0.501013 0.513623 0.491938 0.505387 0.495950 0.489733 0.486305 0.515983 0.509663 0.509030 0.525789 0.107909 0.830575 0.145116 0.006946 0.511049 0.514506 0.514017 0.524207 0.516295 0.511003 0.522170 0.510438 0.510933 0.514713 0.519526 0.521776 0.519984 0.519228 0.521527 +0.786355 +0.503001 0.490707 0.492351 0.491875 0.514452 0.486116 0.486507 0.502647 0.486109 0.514427 0.506739 0.502962 0.671667 0.331392 0.933318 0.738032 0.667141 0.515758 0.524568 0.513738 0.512583 0.513452 0.523204 0.524427 0.519834 0.521769 0.516033 0.520192 0.521777 0.521342 0.512940 0.512845 +0.423427 +0.493043 0.486072 0.492650 0.511960 0.494012 0.498786 0.493548 0.496592 0.513563 0.490569 0.508442 0.484637 0.845541 0.218724 0.838740 0.117178 0.322967 0.518822 0.522493 0.510274 0.520664 0.513462 0.518218 0.516528 0.522400 0.515477 0.521278 0.512024 0.521578 0.510585 0.523817 0.516352 +0.827953 +0.509060 0.515674 0.501558 0.500478 0.515086 0.495259 0.514488 0.492919 0.498748 0.487716 0.484918 0.484900 0.287670 0.464421 0.605194 0.192867 0.072589 0.514255 0.513898 0.521306 0.510679 0.523052 0.520596 0.520041 0.514113 0.514875 0.521037 0.512760 0.523164 0.524642 0.512425 0.518292 +0.675120 +0.500225 0.515566 0.486849 0.486798 0.486302 0.514407 0.507758 0.499495 0.485901 0.509675 0.513221 0.513021 0.753477 0.758223 0.387768 0.688331 0.889147 0.520646 0.524600 0.519640 0.511847 0.522371 0.521859 0.520084 0.518914 0.510726 0.523159 0.517715 0.519611 0.524044 0.512342 0.512632 +0.391265 +0.509563 0.497263 0.487433 0.515437 0.515101 0.496468 0.508335 0.507032 0.506844 0.505521 0.512788 0.494030 0.845076 0.406266 0.004035 0.259270 0.031181 0.519547 0.511522 0.523981 0.516992 0.510679 0.517118 0.524517 0.519042 0.511222 0.518317 0.512234 0.518229 0.521372 0.511114 0.513475 +0.654288 +0.499204 0.511428 0.500173 0.495051 0.489366 0.494838 0.491292 0.503083 0.488250 0.496058 0.486398 0.503067 0.291105 0.085275 0.122587 0.065634 0.624748 0.513128 0.522927 0.513332 0.510836 0.512769 0.523072 0.517442 0.519009 0.518183 0.517783 0.523279 0.520861 0.524005 0.524617 0.510945 +0.864984 +0.503879 0.491210 0.510666 0.502308 0.490770 0.511209 0.493879 0.492299 0.504387 0.504658 0.513128 0.513730 0.376008 0.403198 0.548632 0.318323 0.695918 0.512090 0.513604 0.513592 0.523854 0.523928 0.511633 0.521768 0.520537 0.522150 0.524652 0.512999 0.520760 0.524130 0.514994 0.518854 +0.675120 +0.496060 0.485058 0.511901 0.484666 0.505824 0.503652 0.509212 0.506218 0.488057 0.502581 0.487629 0.505215 0.450647 0.545501 0.794007 0.691429 0.852061 0.518481 0.519289 0.520912 0.523172 0.523027 0.515145 0.509805 0.511462 0.512458 0.514983 0.517970 0.514222 0.518988 0.515187 0.515505 +0.284273 +0.514663 0.508052 0.504916 0.507535 0.503028 0.502439 0.499550 0.497287 0.493302 0.487910 0.508304 0.512739 0.551309 0.227803 0.144632 0.891515 0.464849 0.521625 0.510525 0.519043 0.513194 0.510380 0.515139 0.522588 0.524024 0.516536 0.510903 0.510911 0.516121 0.513006 0.515857 0.510927 +0.130604 +0.499741 0.503013 0.507042 0.485906 0.514534 0.514557 0.488279 0.508889 0.501205 0.498777 0.513770 0.514663 0.789561 0.095962 0.409477 0.876392 0.767382 0.510137 0.514149 0.512956 0.516992 0.519230 0.516381 0.514053 0.522347 0.517875 0.510497 0.514622 0.511651 0.518191 0.520023 0.510073 +0.284155 +0.486791 0.490272 0.485554 0.515804 0.488509 0.502792 0.499500 0.516088 0.511031 0.485068 0.489067 0.498685 0.569346 0.816820 0.400651 0.822180 0.310769 0.524375 0.516214 0.519428 0.516529 0.517107 0.520895 0.512432 0.520661 0.512749 0.515453 0.522534 0.519570 0.516876 0.516349 0.523556 +0.257241 +0.506771 0.495948 0.489335 0.485779 0.484679 0.495584 0.506228 0.500078 0.492195 0.513522 0.496580 0.508768 0.676692 0.635633 0.839499 0.856396 0.307720 0.522131 0.512206 0.509990 0.522445 0.523986 0.513172 0.520462 0.523847 0.511326 0.516972 0.524105 0.521749 0.521877 0.511767 0.524404 +0.349092 +0.505390 0.488869 0.509839 0.503033 0.496824 0.512076 0.500358 0.490832 0.514434 0.502724 0.502232 0.512797 0.205884 0.432089 0.209733 0.012718 0.916649 0.511141 0.521283 0.514739 0.522243 0.520747 0.509974 0.511461 0.520984 0.516292 0.520322 0.512461 0.522412 0.515010 0.517814 0.515374 +0.992586 +0.501861 0.508181 0.492235 0.503640 0.500874 0.492969 0.488273 0.504885 0.494542 0.498884 0.509790 0.499905 0.171537 0.243712 0.039548 0.013429 0.853647 0.512502 0.517202 0.513284 0.514722 0.520239 0.517061 0.521339 0.522305 0.513236 0.518206 0.515249 0.523575 0.513050 0.517583 0.523068 +0.935690 +0.514605 0.502129 0.503064 0.490444 0.513872 0.488824 0.510821 0.512984 0.490794 0.507842 0.501671 0.496016 0.517310 0.860238 0.766753 0.473162 0.248504 0.516173 0.519729 0.517247 0.523426 0.512326 0.521746 0.511220 0.518193 0.520275 0.524689 0.518889 0.518022 0.517860 0.515305 0.523485 +0.606855 +0.513284 0.492713 0.510178 0.509442 0.501462 0.505799 0.505345 0.507737 0.491857 0.506420 0.490746 0.497452 0.438317 0.692612 0.696471 0.433424 0.608234 0.512609 0.512090 0.512388 0.519199 0.524132 0.519766 0.512470 0.523063 0.511077 0.519495 0.515004 0.521064 0.521579 0.511463 0.522425 +0.532351 +0.501449 0.503061 0.488196 0.506383 0.494608 0.498575 0.511804 0.486173 0.496964 0.507857 0.494158 0.497635 0.982113 0.315304 0.043244 0.013002 0.689553 0.515523 0.520574 0.516113 0.512271 0.518712 0.519781 0.520889 0.519719 0.516312 0.521338 0.521531 0.511254 0.524537 0.524000 0.511422 +0.943926 +0.502811 0.485918 0.485410 0.510430 0.487756 0.496323 0.493071 0.515216 0.515129 0.500093 0.497012 0.487569 0.668962 0.956797 0.618486 0.177549 0.096616 0.515456 0.517860 0.521792 0.519032 0.522184 0.520035 0.511219 0.515031 0.518650 0.511214 0.518967 0.523284 0.512571 0.519330 0.515947 +0.691475 +0.513562 0.509157 0.495872 0.500612 0.502338 0.500386 0.515716 0.515417 0.500840 0.491486 0.497053 0.488700 0.464879 0.300752 0.930508 0.612013 0.582543 0.512772 0.510298 0.521195 0.523808 0.513910 0.516086 0.511648 0.518553 0.512333 0.524203 0.522060 0.523480 0.514168 0.519389 0.523606 +0.424040 +0.512634 0.495692 0.502597 0.509286 0.501685 0.498854 0.510066 0.512947 0.503419 0.496009 0.496651 0.505285 0.941730 0.857279 0.120138 0.982614 0.717618 0.512692 0.517911 0.514354 0.515005 0.514438 0.518521 0.510456 0.523148 0.522040 0.514317 0.517890 0.518479 0.521154 0.518494 0.518903 +0.017556 +0.498679 0.495895 0.485149 0.496718 0.488034 0.514359 0.503517 0.514419 0.501812 0.492744 0.514560 0.504206 0.851678 0.169997 0.412130 0.391286 0.709361 0.519855 0.515546 0.521312 0.520162 0.522260 0.515116 0.519010 0.524683 0.512925 0.523251 0.510644 0.519724 0.513939 0.511645 0.520431 +0.568441 +0.511678 0.507356 0.486089 0.500536 0.511410 0.504521 0.486628 0.492199 0.484864 0.495280 0.493311 0.487399 0.833044 0.562551 0.827980 0.610391 0.384298 0.516855 0.515770 0.519184 0.510884 0.514105 0.523277 0.514193 0.518277 0.520905 0.513742 0.514845 0.512942 0.520464 0.524165 0.517683 +0.435748 +0.513090 0.508722 0.501146 0.485080 0.505591 0.492902 0.503308 0.486589 0.504590 0.506434 0.497062 0.508216 0.114402 0.746588 0.192316 0.833547 0.006266 0.519864 0.521981 0.515377 0.520497 0.524630 0.514757 0.513527 0.513706 0.521039 0.519357 0.510740 0.514594 0.524594 0.511024 0.510914 +0.199131 +0.515080 0.498026 0.511140 0.503913 0.486923 0.514004 0.509786 0.499095 0.503141 0.489036 0.495107 0.491108 0.552094 0.395926 0.553176 0.556249 0.100584 0.523843 0.515007 0.522611 0.515209 0.517109 0.518964 0.515988 0.515159 0.522218 0.515922 0.523336 0.514129 0.515120 0.518027 0.513158 +0.465456 +0.507757 0.507288 0.492829 0.497574 0.490988 0.507460 0.498924 0.515532 0.506385 0.500037 0.496659 0.503763 0.342919 0.317533 0.452114 0.150748 0.494770 0.520693 0.517588 0.513524 0.521971 0.513709 0.520287 0.523496 0.522805 0.515750 0.522930 0.523770 0.517422 0.510834 0.513210 0.517863 +0.800465 +0.495007 0.509635 0.513516 0.489703 0.494023 0.494030 0.510224 0.490053 0.494018 0.507497 0.490364 0.515927 0.851003 0.840741 0.684456 0.876664 0.318546 0.516193 0.520676 0.519954 0.512167 0.514704 0.519850 0.519061 0.513532 0.516165 0.519947 0.522265 0.520029 0.517209 0.512758 0.522329 +0.148173 +0.498980 0.491278 0.494660 0.495196 0.507521 0.509551 0.507685 0.499634 0.490061 0.493235 0.495570 0.490691 0.901545 0.723856 0.838984 0.208684 0.411875 0.511384 0.512258 0.510264 0.517074 0.516237 0.523567 0.516934 0.520332 0.510917 0.516182 0.511081 0.521882 0.522077 0.518740 0.517336 +0.764479 +0.501328 0.506243 0.506941 0.491923 0.509032 0.485682 0.514185 0.495062 0.507919 0.496479 0.506268 0.507086 0.419397 0.291906 0.521981 0.225960 0.236012 0.522619 0.521491 0.515807 0.523908 0.510327 0.513773 0.511426 0.518058 0.511472 0.522166 0.511276 0.509777 0.524134 0.519371 0.522183 +0.695822 +0.489884 0.510958 0.500223 0.510335 0.504291 0.494696 0.503419 0.494073 0.504348 0.495773 0.497500 0.511014 0.320264 0.257630 0.519441 0.611727 0.798340 0.515213 0.513603 0.521101 0.522996 0.523155 0.524443 0.513579 0.521831 0.513929 0.513773 0.520819 0.513283 0.522398 0.512630 0.523080 +0.442562 +0.504103 0.485022 0.498282 0.490056 0.485098 0.485925 0.511480 0.490499 0.491576 0.496489 0.485455 0.514611 0.078088 0.562599 0.627643 0.798057 0.627600 0.510730 0.516752 0.514148 0.511512 0.522941 0.519017 0.515875 0.514262 0.510383 0.510294 0.515819 0.513073 0.513594 0.522715 0.516656 +0.336679 +0.515595 0.493691 0.503283 0.504781 0.512296 0.515051 0.509881 0.494763 0.485318 0.500333 0.501380 0.510984 0.928146 0.971768 0.766739 0.247673 0.485232 0.520713 0.521825 0.512435 0.510978 0.513693 0.509851 0.523152 0.519721 0.523991 0.519039 0.520371 0.514644 0.511102 0.513529 0.509750 +0.677392 +0.498751 0.485018 0.508472 0.509921 0.507725 0.507664 0.496102 0.489817 0.495517 0.489928 0.495958 0.491938 0.754893 0.522204 0.963332 0.246117 0.374522 0.516767 0.520334 0.517538 0.514310 0.521890 0.520617 0.517089 0.510499 0.523951 0.518017 0.515447 0.516614 0.522587 0.515288 0.518190 +0.603918 +0.487910 0.506537 0.492215 0.511006 0.512064 0.486912 0.487053 0.515041 0.504154 0.509328 0.488946 0.515817 0.755579 0.018495 0.840785 0.422145 0.388398 0.513523 0.522531 0.521774 0.520126 0.515190 0.512318 0.513203 0.523558 0.521534 0.513652 0.517249 0.519363 0.511733 0.514091 0.514843 +0.539386 +0.485536 0.487165 0.510407 0.515586 0.505649 0.495239 0.499173 0.515846 0.495448 0.485712 0.515825 0.493476 0.925319 0.557273 0.274622 0.574146 0.338441 0.512550 0.522118 0.515620 0.517208 0.516031 0.519294 0.522357 0.515151 0.510139 0.521606 0.514595 0.518091 0.518001 0.511018 0.517832 +0.476133 +0.507033 0.489559 0.496335 0.500896 0.484784 0.508848 0.505841 0.510479 0.501804 0.490412 0.513052 0.491764 0.856313 0.923823 0.456095 0.940978 0.249224 0.517173 0.517582 0.520194 0.514935 0.512362 0.518291 0.520786 0.514566 0.510203 0.517955 0.524405 0.515795 0.518990 0.511200 0.512869 +0.309425 +0.514198 0.493006 0.513011 0.502315 0.515326 0.505039 0.506955 0.513794 0.499283 0.505875 0.510798 0.485062 0.975510 0.549753 0.119280 0.581852 0.605645 0.521196 0.519577 0.520068 0.516666 0.513191 0.524056 0.511782 0.521522 0.517855 0.516091 0.517063 0.511404 0.521350 0.511657 0.520209 +0.408925 +0.502782 0.491709 0.506718 0.484753 0.511457 0.513110 0.504329 0.498343 0.487656 0.492054 0.511144 0.499378 0.418256 0.156934 0.257107 0.752281 0.694723 0.511351 0.518628 0.522264 0.522980 0.517843 0.522789 0.514983 0.515567 0.519008 0.514782 0.517808 0.522979 0.511906 0.514468 0.515298 +0.252594 +0.487586 0.515253 0.503494 0.496782 0.502730 0.505249 0.513056 0.507804 0.493705 0.495566 0.485935 0.491333 0.578359 0.014094 0.002029 0.604033 0.714416 0.517023 0.520268 0.515853 0.515035 0.513536 0.514691 0.516081 0.523777 0.512922 0.509686 0.523726 0.517189 0.520899 0.521994 0.516826 +0.437824 +0.485758 0.508842 0.489540 0.500565 0.492265 0.489665 0.508524 0.503676 0.504439 0.515608 0.499618 0.485438 0.750837 0.476808 0.420916 0.780001 0.720923 0.519440 0.519041 0.516566 0.519809 0.523460 0.517608 0.516488 0.517626 0.523629 0.509786 0.515919 0.519297 0.511847 0.517681 0.523985 +0.231240 +0.508680 0.503757 0.513101 0.507921 0.496201 0.485498 0.511014 0.492423 0.501403 0.489967 0.487689 0.506669 0.998194 0.099172 0.262451 0.395714 0.989819 0.518519 0.519569 0.515377 0.517055 0.520985 0.509897 0.511302 0.519269 0.518719 0.518712 0.510001 0.519326 0.518647 0.518698 0.513369 +0.502969 +0.507587 0.488024 0.500488 0.497962 0.508229 0.486660 0.490774 0.495385 0.492176 0.485708 0.492599 0.499538 0.183675 0.874967 0.851884 0.621481 0.422943 0.521349 0.517954 0.520981 0.517128 0.520881 0.511952 0.519034 0.516586 0.520002 0.519851 0.522258 0.520900 0.514174 0.516948 0.510384 +0.404997 +0.485635 0.509021 0.486678 0.508170 0.507768 0.515598 0.491312 0.493689 0.505948 0.512998 0.502563 0.499034 0.075396 0.388622 0.012558 0.233802 0.780774 0.520171 0.512796 0.519694 0.522823 0.523724 0.524484 0.520312 0.522818 0.522564 0.516830 0.522706 0.521314 0.521213 0.510925 0.518891 +0.783235 +0.485423 0.486295 0.496446 0.511544 0.496884 0.507126 0.509831 0.500428 0.503377 0.493003 0.494702 0.504879 0.384448 0.999674 0.919269 0.055862 0.702551 0.516231 0.514903 0.519355 0.521998 0.524406 0.512551 0.517525 0.524016 0.522116 0.520153 0.522907 0.521378 0.514949 0.519053 0.520018 +0.977014 +0.493552 0.499560 0.504841 0.504751 0.509179 0.494586 0.484907 0.487011 0.514925 0.508541 0.501421 0.499241 0.558948 0.381707 0.020905 0.265537 0.162582 0.509740 0.522227 0.511384 0.514992 0.523173 0.510415 0.519838 0.512146 0.519101 0.515015 0.519454 0.510224 0.523190 0.510954 0.520159 +0.694295 +0.509182 0.515592 0.484725 0.485698 0.513413 0.493659 0.502544 0.493212 0.484859 0.509850 0.497470 0.516087 0.301492 0.341254 0.389817 0.062047 0.451426 0.518741 0.511781 0.524662 0.522242 0.518641 0.518615 0.517722 0.518712 0.523338 0.520709 0.520580 0.522232 0.516507 0.516896 0.521646 +0.738791 +0.486624 0.488293 0.501003 0.494019 0.490024 0.501216 0.487453 0.503701 0.492931 0.512508 0.509723 0.504492 0.283637 0.808641 0.175681 0.755264 0.744650 0.519994 0.513837 0.515029 0.512989 0.513177 0.515934 0.522721 0.518228 0.524592 0.511125 0.520876 0.522882 0.520106 0.522675 0.522941 +0.350110 +0.484935 0.494834 0.497261 0.513675 0.493125 0.506909 0.484714 0.485939 0.489838 0.500161 0.505861 0.502841 0.842097 0.432740 0.133325 0.196237 0.600569 0.518777 0.524278 0.521861 0.522146 0.524011 0.521266 0.510806 0.518875 0.510213 0.523200 0.518006 0.516577 0.520148 0.509764 0.512675 +0.729733 +0.515876 0.500233 0.494920 0.515735 0.486121 0.495652 0.511963 0.510194 0.501609 0.491636 0.503089 0.492990 0.346971 0.290518 0.241659 0.603544 0.515080 0.516435 0.517557 0.522655 0.511728 0.522623 0.509938 0.514453 0.518530 0.516599 0.512024 0.512505 0.518026 0.520604 0.524450 0.514420 +0.382220 +0.501717 0.503328 0.506133 0.485100 0.493259 0.487949 0.509260 0.507114 0.507417 0.489986 0.504889 0.500334 0.994955 0.754863 0.014904 0.599301 0.337545 0.512209 0.524168 0.513716 0.521451 0.516289 0.509895 0.510162 0.514069 0.514709 0.514529 0.521309 0.516734 0.515520 0.512158 0.514311 +0.410505 +0.512676 0.506226 0.506369 0.503707 0.496069 0.507987 0.511105 0.503587 0.487005 0.509268 0.505603 0.513395 0.879396 0.155613 0.110268 0.405631 0.356483 0.522646 0.516162 0.523601 0.524616 0.523744 0.520181 0.513912 0.515293 0.523119 0.524015 0.518103 0.517468 0.523387 0.510792 0.517667 +0.618811 +0.497988 0.500535 0.494150 0.485960 0.494380 0.501722 0.486916 0.494264 0.514646 0.497062 0.512681 0.500367 0.603999 0.143167 0.304278 0.079572 0.456910 0.518686 0.524483 0.523174 0.520755 0.521679 0.512157 0.524055 0.522527 0.517485 0.524639 0.522785 0.512204 0.520781 0.522459 0.510969 +0.876470 +0.493432 0.506903 0.512602 0.494468 0.514288 0.503941 0.496502 0.515266 0.513496 0.498924 0.497113 0.494875 0.327479 0.298062 0.805435 0.398858 0.730003 0.524099 0.517775 0.511955 0.520597 0.511383 0.513438 0.512300 0.521525 0.514876 0.517312 0.522979 0.521955 0.518503 0.511359 0.512020 +0.574615 +0.490626 0.498072 0.487696 0.503718 0.487311 0.509270 0.486107 0.513482 0.489216 0.488457 0.490469 0.496204 0.933765 0.242217 0.961164 0.886063 0.995801 0.523883 0.514547 0.520692 0.523190 0.523941 0.515135 0.517271 0.513770 0.520938 0.521175 0.522670 0.520906 0.518451 0.510314 0.518219 +0.301555 +0.510832 0.488582 0.509043 0.498180 0.513708 0.509307 0.506835 0.509635 0.510382 0.511980 0.492283 0.510134 0.481719 0.793659 0.844985 0.889810 0.853860 0.521178 0.514472 0.514833 0.524293 0.510921 0.513164 0.511441 0.510287 0.521026 0.520725 0.510194 0.522268 0.512513 0.522972 0.514923 +0.215003 +0.515340 0.497911 0.487502 0.512656 0.512153 0.503592 0.489899 0.512661 0.504729 0.515694 0.487761 0.499912 0.839971 0.774549 0.270191 0.247529 0.063848 0.519820 0.511923 0.512705 0.518292 0.521976 0.519840 0.512474 0.516313 0.519537 0.510164 0.516600 0.520506 0.515025 0.512895 0.511052 +0.698759 +0.500985 0.484663 0.490022 0.507937 0.492560 0.487586 0.512577 0.506799 0.492357 0.492772 0.491070 0.495631 0.691603 0.782053 0.150568 0.473101 0.230009 0.512033 0.513240 0.516361 0.522432 0.518385 0.521595 0.510869 0.515189 0.513424 0.511279 0.523528 0.515280 0.518793 0.514261 0.524303 +0.576430 +0.507151 0.493764 0.513022 0.490087 0.490130 0.497145 0.499673 0.498400 0.501792 0.501112 0.509709 0.500330 0.977825 0.388508 0.099767 0.241487 0.705362 0.518671 0.511304 0.521495 0.510300 0.511258 0.519304 0.514656 0.521138 0.510131 0.518727 0.518896 0.516705 0.514600 0.510669 0.524580 +0.711720 +0.492747 0.510564 0.513055 0.487593 0.503918 0.513925 0.509751 0.505439 0.515360 0.484744 0.489424 0.495115 0.161278 0.144078 0.592945 0.706085 0.716636 0.520642 0.516181 0.518982 0.514217 0.524131 0.518619 0.512843 0.521681 0.512880 0.517270 0.516926 0.522015 0.524444 0.521434 0.522045 +0.292914 +0.513121 0.489276 0.493801 0.494674 0.505512 0.488136 0.508025 0.509994 0.502905 0.492503 0.504461 0.513412 0.946541 0.577792 0.500071 0.674265 0.922955 0.523164 0.519512 0.519235 0.522071 0.512972 0.514077 0.518333 0.509804 0.516366 0.516206 0.523023 0.522378 0.516145 0.517803 0.520713 +0.291569 +0.485487 0.508892 0.509435 0.515263 0.513048 0.487770 0.493357 0.496454 0.489488 0.505021 0.488393 0.506716 0.931592 0.789742 0.143866 0.038087 0.500712 0.516105 0.510325 0.515005 0.521038 0.511098 0.515022 0.524192 0.511506 0.519317 0.517931 0.516245 0.522302 0.520917 0.518694 0.518475 +0.801404 +0.484829 0.500571 0.507751 0.484808 0.494005 0.506898 0.485984 0.496703 0.494498 0.505834 0.485042 0.487761 0.212485 0.169922 0.147642 0.380792 0.671730 0.515503 0.521968 0.521262 0.521052 0.521567 0.518632 0.510352 0.517123 0.522825 0.522376 0.517126 0.514895 0.510486 0.511926 0.515990 +0.635519 +0.491972 0.486622 0.486107 0.489179 0.495402 0.501882 0.514515 0.508386 0.486305 0.508484 0.496920 0.512403 0.840406 0.074839 0.054626 0.967390 0.328968 0.513747 0.516672 0.514712 0.515302 0.515122 0.518836 0.514167 0.515503 0.513928 0.524392 0.514677 0.523605 0.512086 0.512891 0.518282 +0.063697 +0.492805 0.509883 0.498285 0.511650 0.511643 0.512130 0.489170 0.512839 0.506441 0.498280 0.492388 0.490099 0.643174 0.332236 0.092767 0.817433 0.670311 0.518354 0.516168 0.515163 0.518406 0.510178 0.521383 0.517241 0.512448 0.513134 0.519104 0.515279 0.511589 0.520451 0.523191 0.513973 +0.353308 +0.484889 0.497990 0.506416 0.508077 0.487089 0.506189 0.504429 0.509663 0.501250 0.498171 0.495216 0.490910 0.824251 0.056975 0.376407 0.095308 0.430254 0.516147 0.510598 0.515685 0.511401 0.513116 0.520372 0.522801 0.510980 0.520026 0.510221 0.520059 0.512141 0.519760 0.512823 0.509704 +0.697140 +0.511176 0.512119 0.514974 0.512894 0.489347 0.491843 0.509890 0.487199 0.498406 0.506614 0.502645 0.489625 0.803549 0.766317 0.168434 0.187624 0.120229 0.517316 0.519106 0.518112 0.518169 0.519529 0.510732 0.511473 0.515994 0.512155 0.518673 0.513197 0.510933 0.523155 0.514280 0.515681 +0.688382 +0.504519 0.485974 0.489709 0.505783 0.515400 0.485994 0.512899 0.514331 0.493235 0.492009 0.497825 0.495911 0.559944 0.088874 0.497303 0.240496 0.088123 0.523267 0.513422 0.521987 0.520417 0.522110 0.519285 0.521109 0.519853 0.524030 0.521595 0.515518 0.515989 0.518556 0.511928 0.513862 +0.576638 +0.486842 0.505569 0.511304 0.492772 0.493954 0.497029 0.494631 0.505298 0.509476 0.486099 0.485519 0.494250 0.440650 0.831156 0.893151 0.908460 0.737149 0.522445 0.514119 0.524392 0.523557 0.510459 0.515738 0.512616 0.513145 0.520320 0.519578 0.517621 0.519710 0.510704 0.515470 0.519492 +0.105831 +0.499398 0.488284 0.501175 0.499919 0.494102 0.486692 0.506209 0.500896 0.485770 0.490411 0.503716 0.495303 0.681093 0.458911 0.175579 0.043028 0.399682 0.518132 0.513135 0.519342 0.521273 0.522547 0.516883 0.518092 0.514031 0.524507 0.509717 0.513312 0.511242 0.517182 0.519225 0.518497 +0.957005 +0.507527 0.494440 0.503189 0.499081 0.489416 0.493219 0.509926 0.497680 0.514495 0.513673 0.487724 0.500397 0.887262 0.116736 0.911415 0.303504 0.095373 0.517638 0.512204 0.523277 0.522776 0.518161 0.510980 0.512090 0.521170 0.520073 0.521202 0.517722 0.516413 0.521582 0.524129 0.512091 +0.586806 +0.500628 0.494369 0.513645 0.485555 0.488329 0.496469 0.494646 0.507923 0.497536 0.491028 0.506321 0.489411 0.465663 0.438884 0.204909 0.086035 0.882756 0.517474 0.522011 0.510552 0.515941 0.515998 0.516901 0.521647 0.513181 0.511365 0.510613 0.512081 0.519936 0.514082 0.514864 0.517349 +0.817407 +0.495018 0.499961 0.485655 0.509242 0.510134 0.486930 0.493464 0.510647 0.497596 0.510944 0.485106 0.496164 0.659533 0.780569 0.261417 0.050767 0.229206 0.519843 0.511643 0.512563 0.523752 0.516256 0.521663 0.512821 0.511600 0.516563 0.521108 0.524289 0.511312 0.514026 0.515733 0.513631 +0.844400 +0.495773 0.496674 0.501280 0.492943 0.499935 0.487296 0.484719 0.514923 0.509117 0.491635 0.511894 0.492107 0.255816 0.094464 0.271157 0.446212 0.139487 0.518188 0.523413 0.522908 0.518556 0.517657 0.521240 0.520951 0.519825 0.520811 0.514063 0.520906 0.524156 0.516237 0.509697 0.519944 +0.565296 +0.495455 0.514976 0.512228 0.502918 0.509394 0.490124 0.493443 0.505502 0.502527 0.490374 0.508556 0.511159 0.370414 0.574843 0.023158 0.053970 0.957251 0.513143 0.512904 0.515346 0.516455 0.510111 0.511035 0.510932 0.516795 0.514051 0.514595 0.510666 0.523890 0.523967 0.516275 0.510298 +0.830668 +0.512103 0.506799 0.491077 0.490389 0.495526 0.502866 0.485586 0.507476 0.511317 0.488661 0.504889 0.493988 0.712546 0.116184 0.647329 0.047008 0.167549 0.514880 0.511000 0.513774 0.510115 0.521849 0.515210 0.512621 0.520937 0.512932 0.521333 0.519250 0.512262 0.524480 0.515326 0.513993 +0.924151 +0.485993 0.484645 0.498095 0.503116 0.503692 0.499874 0.501022 0.500200 0.504368 0.500986 0.485590 0.485149 0.328039 0.694738 0.364635 0.613211 0.687154 0.511688 0.521264 0.517470 0.510933 0.520712 0.522778 0.512835 0.518611 0.524123 0.509989 0.512647 0.522517 0.514324 0.512107 0.516169 +0.401303 +0.485179 0.508516 0.493491 0.485424 0.488900 0.492687 0.504327 0.489534 0.490783 0.486994 0.514585 0.513308 0.146174 0.763791 0.795498 0.693740 0.626552 0.516930 0.515067 0.520958 0.512227 0.520924 0.522918 0.518840 0.516842 0.511569 0.515106 0.515533 0.512629 0.516319 0.514442 0.514452 +0.335557 +0.495250 0.488202 0.506400 0.499048 0.491300 0.493405 0.489270 0.514070 0.488606 0.502497 0.490388 0.514697 0.794179 0.567687 0.987891 0.255631 0.994073 0.523991 0.520489 0.518281 0.523866 0.513448 0.513830 0.521273 0.518808 0.523100 0.522703 0.521730 0.514431 0.514037 0.520099 0.524627 +0.700782 +0.501091 0.491943 0.502885 0.497072 0.488122 0.494463 0.485158 0.492882 0.487316 0.507275 0.496990 0.504600 0.932319 0.980402 0.614324 0.354893 0.193726 0.516892 0.518062 0.521196 0.515174 0.511188 0.515722 0.517202 0.523899 0.513866 0.522619 0.524089 0.519942 0.509702 0.513414 0.517229 +0.526007 +0.510258 0.500304 0.496275 0.501105 0.503562 0.486584 0.484950 0.495987 0.510457 0.510640 0.502853 0.491061 0.308831 0.464915 0.905467 0.518579 0.160439 0.510506 0.521904 0.522160 0.524530 0.510035 0.519571 0.520898 0.524131 0.517785 0.520454 0.513757 0.523889 0.524502 0.514979 0.514989 +0.453030 +0.513259 0.513913 0.484675 0.492419 0.503564 0.509820 0.511012 0.511549 0.510718 0.491779 0.509182 0.512199 0.939879 0.816233 0.550991 0.886730 0.187450 0.512461 0.524197 0.521898 0.510848 0.522813 0.522008 0.524128 0.511529 0.518303 0.514190 0.522439 0.511027 0.510626 0.509939 0.514331 +0.094488 +0.486407 0.488541 0.509531 0.487795 0.497751 0.507331 0.504085 0.494362 0.490107 0.512047 0.504108 0.493891 0.407854 0.660615 0.920867 0.863270 0.623667 0.511039 0.523307 0.523540 0.519805 0.515177 0.516292 0.514768 0.512073 0.518533 0.513390 0.514849 0.522972 0.517400 0.510328 0.514725 +0.152089 +0.507000 0.500224 0.490100 0.489911 0.502515 0.515093 0.495268 0.511644 0.510177 0.493773 0.497726 0.504083 0.924655 0.410631 0.235912 0.184315 0.610509 0.515121 0.519024 0.511537 0.518984 0.520595 0.516811 0.517199 0.523672 0.515208 0.523983 0.523087 0.522250 0.523248 0.513863 0.514019 +0.732330 +0.512255 0.487942 0.512237 0.485974 0.488160 0.489913 0.499251 0.505887 0.492797 0.499467 0.494567 0.500257 0.967025 0.205497 0.949097 0.441131 0.895049 0.520895 0.521104 0.518098 0.510404 0.515536 0.519397 0.514528 0.513209 0.513788 0.516065 0.518380 0.518049 0.516887 0.522735 0.521499 +0.411484 +0.490453 0.511972 0.507744 0.489466 0.508747 0.496238 0.506781 0.514189 0.501729 0.489678 0.485228 0.504643 0.193540 0.350754 0.759941 0.194466 0.901653 0.517690 0.523462 0.511551 0.522425 0.517332 0.510425 0.524149 0.514612 0.512275 0.520951 0.515435 0.517004 0.518543 0.509782 0.510047 +0.745774 +0.507702 0.501193 0.507874 0.504779 0.515831 0.502129 0.509174 0.511321 0.514955 0.500088 0.503221 0.514988 0.090352 0.298182 0.810686 0.484944 0.903556 0.516618 0.510118 0.524682 0.514336 0.511418 0.522574 0.516433 0.512032 0.511648 0.511558 0.521895 0.517842 0.513465 0.514524 0.518009 +0.501155 +0.487429 0.487515 0.490359 0.502067 0.505321 0.493353 0.503826 0.488556 0.516026 0.494431 0.512600 0.492007 0.771577 0.402385 0.901790 0.828911 0.223884 0.515672 0.513840 0.520718 0.514100 0.517445 0.523599 0.514001 0.523743 0.522766 0.523524 0.523621 0.512588 0.513281 0.521643 0.519246 +0.151410 +0.507027 0.494734 0.505176 0.504814 0.502202 0.510003 0.488822 0.515862 0.507051 0.514352 0.498809 0.510501 0.070258 0.206011 0.565789 0.147590 0.513266 0.510025 0.515399 0.518822 0.518771 0.509681 0.518367 0.516196 0.509948 0.518943 0.523677 0.524653 0.520497 0.510589 0.514707 0.510453 +0.880777 +0.494716 0.497156 0.496127 0.506232 0.503642 0.497730 0.506317 0.509654 0.513351 0.514230 0.496805 0.500203 0.073966 0.410208 0.142873 0.381118 0.129429 0.522271 0.515622 0.513138 0.511460 0.518223 0.510979 0.523084 0.516221 0.520756 0.514787 0.523941 0.520691 0.513753 0.515043 0.518575 +0.690888 +0.489505 0.509073 0.511319 0.509632 0.488194 0.508439 0.512658 0.492657 0.507819 0.490630 0.494551 0.492388 0.168466 0.723778 0.543430 0.045190 0.666500 0.519479 0.521327 0.517482 0.512092 0.520624 0.521488 0.519497 0.521260 0.521905 0.511029 0.517942 0.519833 0.523551 0.517611 0.520405 +0.799355 +0.490383 0.498183 0.497615 0.488183 0.497732 0.499443 0.503688 0.515212 0.509424 0.496703 0.489907 0.499329 0.308157 0.154242 0.094797 0.866777 0.471820 0.520732 0.524427 0.515471 0.513534 0.516391 0.520463 0.517791 0.514761 0.510906 0.519096 0.515977 0.523118 0.523060 0.517132 0.510344 +0.177529 +0.486898 0.494907 0.495888 0.490325 0.499624 0.510044 0.489243 0.502417 0.505006 0.515079 0.513467 0.486130 0.262400 0.536459 0.113686 0.746894 0.325809 0.513929 0.520741 0.512255 0.510501 0.520782 0.522607 0.513480 0.520752 0.523418 0.522138 0.513881 0.514726 0.518797 0.514673 0.518425 +0.234360 +0.499416 0.510764 0.511669 0.513705 0.485186 0.497722 0.491141 0.492037 0.500370 0.499377 0.488492 0.509423 0.670411 0.265454 0.771713 0.694887 0.874535 0.518711 0.515280 0.521957 0.520102 0.521664 0.517274 0.511910 0.519831 0.513504 0.517791 0.523256 0.515666 0.513000 0.516064 0.509799 +0.464895 +0.510675 0.515206 0.510423 0.498519 0.484754 0.503748 0.493319 0.489683 0.504285 0.512356 0.508591 0.502439 0.300094 0.898493 0.524136 0.387279 0.485113 0.520748 0.517565 0.515896 0.520544 0.515152 0.513304 0.519659 0.511054 0.512477 0.515566 0.510268 0.513625 0.517616 0.519535 0.521934 +0.558130 +0.485589 0.493515 0.512937 0.488221 0.511510 0.492518 0.495453 0.513780 0.489400 0.497306 0.499689 0.509452 0.943537 0.182754 0.420558 0.780636 0.376481 0.514863 0.520126 0.516747 0.521072 0.517044 0.514908 0.515072 0.512863 0.514829 0.513162 0.513908 0.511364 0.520202 0.518871 0.510015 +0.294611 +0.510798 0.513996 0.493860 0.492050 0.503575 0.504138 0.492807 0.501912 0.511346 0.498135 0.485992 0.509625 0.698088 0.564959 0.212304 0.141605 0.099649 0.513535 0.520435 0.513100 0.520511 0.520955 0.524001 0.524008 0.523788 0.512721 0.512671 0.519033 0.522056 0.517668 0.523528 0.517965 +0.887552 +0.514640 0.497260 0.502969 0.496419 0.503179 0.489371 0.513332 0.508592 0.511079 0.511579 0.516048 0.491498 0.665881 0.259195 0.781450 0.026436 0.056485 0.511807 0.514429 0.513451 0.523845 0.519804 0.514181 0.511127 0.523695 0.513718 0.516422 0.510889 0.520477 0.515385 0.510209 0.514099 +0.972146 +0.512491 0.504194 0.495130 0.495233 0.485160 0.493072 0.495559 0.500191 0.505297 0.488831 0.503565 0.492026 0.922195 0.152413 0.423074 0.989956 0.898792 0.517867 0.515217 0.512975 0.519508 0.510519 0.517105 0.519847 0.524148 0.522580 0.517309 0.522094 0.514892 0.514684 0.513791 0.510805 +0.247726 +0.505534 0.505342 0.497649 0.496741 0.498124 0.515858 0.507370 0.495021 0.485943 0.502484 0.499346 0.503951 0.424811 0.114400 0.723175 0.420905 0.595614 0.516838 0.522224 0.509776 0.523263 0.519144 0.518934 0.514862 0.511465 0.514047 0.517094 0.515866 0.516203 0.519331 0.523812 0.511222 +0.589469 +0.513697 0.511433 0.484938 0.513441 0.495615 0.485917 0.498108 0.503983 0.503352 0.506111 0.489385 0.492364 0.087079 0.386379 0.383852 0.998307 0.990706 0.516897 0.523883 0.524507 0.511027 0.510379 0.517567 0.510087 0.517662 0.523448 0.519533 0.513076 0.521543 0.523745 0.520548 0.517581 +0.062561 +0.498103 0.485363 0.506593 0.502209 0.502916 0.510873 0.510379 0.491552 0.510960 0.500434 0.501072 0.488951 0.486884 0.447218 0.019874 0.976951 0.723585 0.514258 0.515459 0.512554 0.521469 0.518551 0.519005 0.518191 0.520260 0.512781 0.524372 0.519317 0.521907 0.512735 0.522205 0.522816 +0.094671 +0.490157 0.499898 0.491981 0.500564 0.511869 0.499910 0.512777 0.507100 0.488059 0.502256 0.498579 0.491360 0.135194 0.561002 0.840081 0.624158 0.331137 0.519509 0.515093 0.520735 0.519543 0.523942 0.511344 0.515578 0.514145 0.510250 0.521877 0.518861 0.520255 0.524307 0.522247 0.513452 +0.410257 +0.503060 0.512372 0.500038 0.492263 0.502160 0.485752 0.507488 0.502067 0.495147 0.488055 0.495082 0.502918 0.046533 0.202264 0.711808 0.728302 0.432905 0.523369 0.514882 0.514692 0.512674 0.515656 0.510341 0.516714 0.516725 0.517842 0.523848 0.515224 0.519863 0.520559 0.513301 0.513410 +0.296425 +0.515735 0.496827 0.504778 0.492616 0.485896 0.493048 0.493557 0.496613 0.488423 0.515000 0.507197 0.489644 0.035102 0.423679 0.127128 0.235203 0.283448 0.519362 0.516637 0.512361 0.518929 0.518950 0.510226 0.510068 0.518850 0.512674 0.519993 0.513239 0.523251 0.513815 0.513729 0.519070 +0.659105 +0.491233 0.492047 0.515771 0.491920 0.488320 0.502544 0.489384 0.490079 0.491107 0.513027 0.511765 0.488199 0.362046 0.189474 0.154665 0.192729 0.749703 0.516416 0.516554 0.519515 0.523346 0.511378 0.512926 0.524506 0.515638 0.511772 0.522127 0.521114 0.523734 0.515059 0.510508 0.512905 +0.726652 +0.513043 0.507748 0.513805 0.495180 0.513318 0.507713 0.493262 0.512258 0.498335 0.510716 0.492716 0.485904 0.484716 0.081432 0.661524 0.179973 0.765433 0.514602 0.521847 0.510998 0.510589 0.510131 0.511182 0.523443 0.514526 0.512537 0.512455 0.524046 0.521865 0.519560 0.514589 0.521764 +0.729941 +0.503056 0.512199 0.509803 0.504242 0.484693 0.512904 0.491422 0.494829 0.502620 0.507466 0.495419 0.509501 0.081840 0.501913 0.573657 0.129750 0.228284 0.512838 0.519873 0.520043 0.521838 0.512674 0.522449 0.518912 0.512484 0.516161 0.523454 0.513793 0.514032 0.516784 0.516442 0.519074 +0.713456 +0.514462 0.499739 0.500823 0.496065 0.508249 0.498703 0.496649 0.500262 0.500757 0.511000 0.508701 0.515809 0.410246 0.789905 0.880321 0.681641 0.648539 0.514907 0.520833 0.513289 0.516967 0.519085 0.520947 0.510081 0.524348 0.518700 0.522297 0.515494 0.511648 0.518757 0.522397 0.522875 +0.380549 +0.515811 0.513981 0.494291 0.499514 0.499894 0.515236 0.513708 0.513957 0.512197 0.488147 0.491409 0.498758 0.755751 0.919986 0.089115 0.550758 0.977721 0.519294 0.515600 0.520634 0.524275 0.518571 0.519488 0.510291 0.518069 0.513255 0.523027 0.510510 0.519151 0.520729 0.518964 0.511590 +0.500985 +0.499882 0.500996 0.499200 0.496222 0.494574 0.504461 0.487628 0.499360 0.486518 0.494623 0.503405 0.512288 0.629708 0.430609 0.384164 0.231497 0.117922 0.521864 0.522834 0.519057 0.515821 0.517325 0.516272 0.519795 0.514665 0.518640 0.519601 0.518410 0.511236 0.515335 0.524551 0.511082 +0.744782 +0.512862 0.514758 0.493370 0.492655 0.510371 0.506072 0.513470 0.511108 0.494176 0.504455 0.509782 0.489184 0.077917 0.687556 0.880892 0.246951 0.365698 0.516351 0.518514 0.523281 0.521186 0.523670 0.514806 0.513715 0.518094 0.517269 0.522231 0.517384 0.515386 0.515485 0.519969 0.510765 +0.770091 +0.511512 0.494651 0.494305 0.505764 0.506862 0.513035 0.500939 0.490286 0.510223 0.514530 0.498519 0.507762 0.390982 0.610752 0.438714 0.349327 0.816960 0.520843 0.519100 0.517537 0.519177 0.521539 0.509776 0.517836 0.516051 0.523827 0.518074 0.524352 0.521132 0.516869 0.512125 0.513640 +0.635506 +0.513515 0.511516 0.488511 0.514427 0.504701 0.515340 0.493477 0.501708 0.508243 0.504482 0.494858 0.488439 0.134490 0.753630 0.331250 0.562790 0.832883 0.522642 0.513095 0.509765 0.524565 0.524547 0.519554 0.518541 0.511228 0.516888 0.517016 0.516503 0.512615 0.517418 0.517165 0.522321 +0.429366 +0.506692 0.490852 0.504903 0.484699 0.515503 0.497189 0.511670 0.499580 0.495823 0.498932 0.497041 0.502401 0.014265 0.869208 0.243729 0.313157 0.024567 0.520187 0.521464 0.515890 0.522012 0.524067 0.520003 0.517783 0.522971 0.511861 0.513752 0.511229 0.521167 0.516719 0.511371 0.513943 +0.578479 +0.506799 0.495604 0.503025 0.511723 0.505136 0.491764 0.508481 0.498286 0.494193 0.508330 0.487254 0.507062 0.951820 0.127496 0.413936 0.686441 0.177154 0.516761 0.520946 0.516319 0.513232 0.523584 0.520269 0.524134 0.521376 0.519156 0.517703 0.514227 0.520313 0.518875 0.521217 0.513512 +0.377808 +0.487153 0.509191 0.502983 0.507787 0.513048 0.486143 0.495288 0.511286 0.494437 0.490531 0.505880 0.513743 0.350194 0.356882 0.563374 0.624450 0.235667 0.510739 0.519592 0.512487 0.518041 0.516917 0.517213 0.511512 0.518121 0.520634 0.520628 0.519555 0.515337 0.524246 0.520325 0.510659 +0.437315 +0.488154 0.488794 0.487352 0.511053 0.508571 0.511004 0.503097 0.507437 0.510363 0.504212 0.485459 0.514258 0.540905 0.698089 0.588544 0.879208 0.002155 0.520477 0.522009 0.514863 0.520767 0.520888 0.510790 0.517332 0.517609 0.514838 0.520893 0.512565 0.516217 0.512110 0.514923 0.510847 +0.232310 +0.513969 0.496881 0.490918 0.512941 0.491684 0.491899 0.515447 0.490023 0.489979 0.511759 0.513384 0.499716 0.175442 0.756093 0.644715 0.190539 0.022333 0.513040 0.523543 0.510362 0.515257 0.513215 0.519448 0.515934 0.510918 0.513523 0.524399 0.517093 0.523987 0.513769 0.524505 0.510992 +0.758618 +0.493193 0.515463 0.504853 0.499990 0.492884 0.506300 0.514285 0.504398 0.497981 0.506775 0.500572 0.490954 0.422153 0.530459 0.458836 0.914713 0.629645 0.515270 0.516731 0.517643 0.523286 0.515928 0.518016 0.518020 0.514031 0.510799 0.517406 0.523377 0.516468 0.521875 0.516473 0.519636 +0.152259 +0.489768 0.488893 0.500696 0.497304 0.494586 0.512139 0.511805 0.506136 0.495513 0.508200 0.508805 0.497311 0.652921 0.859055 0.920390 0.874626 0.135505 0.521412 0.520907 0.520059 0.523668 0.512466 0.511266 0.515137 0.517746 0.522139 0.520763 0.513729 0.522485 0.513358 0.516545 0.514592 +0.161983 +0.516039 0.503468 0.499112 0.511027 0.515821 0.513308 0.495989 0.515341 0.509933 0.513729 0.514965 0.508324 0.841516 0.690421 0.951592 0.310218 0.728379 0.520500 0.520004 0.516792 0.522712 0.518629 0.517119 0.518858 0.521576 0.522709 0.512469 0.522834 0.519278 0.514265 0.521401 0.514563 +0.523501 +0.501286 0.492984 0.492655 0.496958 0.498752 0.491130 0.495381 0.488634 0.494141 0.491547 0.514872 0.496867 0.659319 0.191493 0.025080 0.302485 0.994946 0.518724 0.520644 0.519924 0.521172 0.515074 0.520330 0.516421 0.520663 0.510537 0.513370 0.518584 0.511399 0.512631 0.512455 0.511553 +0.778588 +0.504861 0.507981 0.496931 0.488284 0.497986 0.491017 0.515085 0.484786 0.512411 0.491374 0.511556 0.502396 0.397682 0.000486 0.712750 0.536453 0.004995 0.515211 0.511537 0.516813 0.517443 0.524093 0.523538 0.514430 0.516494 0.517794 0.519162 0.521168 0.524518 0.510295 0.513446 0.523244 +0.509261 +0.503581 0.514246 0.515408 0.498655 0.494876 0.512016 0.499385 0.497606 0.495143 0.496921 0.510315 0.489847 0.034096 0.557648 0.565300 0.942075 0.648122 0.514897 0.520452 0.514217 0.521349 0.516639 0.519199 0.521788 0.512720 0.519935 0.521445 0.514377 0.513645 0.516079 0.513161 0.519589 +0.161944 +0.491473 0.500127 0.495650 0.506174 0.506549 0.511558 0.511106 0.493700 0.505170 0.508752 0.496841 0.485773 0.805471 0.004364 0.778700 0.905677 0.037212 0.522219 0.517554 0.513232 0.521551 0.511982 0.510200 0.521705 0.509973 0.514063 0.521809 0.521384 0.512962 0.510554 0.520757 0.510570 +0.092008 +0.485158 0.486442 0.485570 0.497796 0.515633 0.498323 0.492277 0.516023 0.506519 0.489352 0.505023 0.510410 0.418138 0.178287 0.479308 0.347156 0.391858 0.514187 0.519855 0.522850 0.513748 0.521522 0.509835 0.512793 0.524503 0.516728 0.520422 0.512834 0.517089 0.511895 0.510283 0.510863 +0.594364 +0.516078 0.495925 0.514991 0.488320 0.503094 0.512168 0.498473 0.496323 0.502616 0.509746 0.489793 0.493021 0.058105 0.324216 0.553537 0.606196 0.996320 0.519552 0.510196 0.520649 0.521546 0.515783 0.511990 0.519526 0.515472 0.515567 0.523892 0.518695 0.522433 0.520005 0.518279 0.520886 +0.354496 +0.497187 0.512563 0.498894 0.491608 0.497738 0.514219 0.498432 0.502463 0.511380 0.504544 0.515913 0.496981 0.716767 0.931688 0.390810 0.720960 0.268597 0.517259 0.522191 0.524432 0.522933 0.519293 0.514657 0.510899 0.518229 0.510154 0.519549 0.514997 0.514530 0.517481 0.517944 0.512268 +0.229726 +0.509290 0.494372 0.506923 0.502943 0.487058 0.514152 0.506734 0.513775 0.507294 0.500550 0.501254 0.493536 0.883642 0.381032 0.693789 0.447511 0.928733 0.522083 0.510231 0.513146 0.511277 0.520138 0.524618 0.512116 0.522656 0.519983 0.516054 0.522735 0.515759 0.517606 0.517587 0.522799 +0.559305 +0.487855 0.503084 0.499165 0.514028 0.506146 0.510809 0.507919 0.496777 0.507186 0.492193 0.513805 0.497448 0.243120 0.102673 0.984844 0.131216 0.831822 0.510608 0.523523 0.519901 0.510733 0.520970 0.524182 0.517778 0.511753 0.519534 0.521984 0.520235 0.524003 0.523277 0.519450 0.517858 +0.855129 +0.499383 0.498750 0.499763 0.515286 0.503555 0.488851 0.492392 0.487603 0.515745 0.491305 0.507135 0.512573 0.538779 0.032395 0.016889 0.894601 0.238774 0.512617 0.514905 0.522657 0.520180 0.517449 0.509681 0.517174 0.515351 0.519728 0.524509 0.518788 0.514373 0.518596 0.509899 0.523361 +0.117095 +0.500292 0.513530 0.512984 0.485968 0.509202 0.499661 0.514437 0.486950 0.491854 0.488236 0.510877 0.489429 0.865765 0.480993 0.619159 0.474094 0.876134 0.516232 0.520891 0.510865 0.523053 0.517235 0.511281 0.518507 0.524409 0.520694 0.520760 0.519842 0.520149 0.520302 0.512290 0.511209 +0.556342 +0.513052 0.500743 0.505733 0.492424 0.489986 0.496303 0.508215 0.496273 0.500475 0.497633 0.509056 0.503424 0.339865 0.088638 0.549318 0.820503 0.183070 0.520458 0.509998 0.523007 0.519214 0.515855 0.516495 0.517448 0.518733 0.520068 0.522383 0.512328 0.512940 0.518108 0.521739 0.522589 +0.285709 +0.504140 0.500999 0.487120 0.515281 0.511693 0.501989 0.509555 0.493810 0.489338 0.494464 0.507880 0.498457 0.877185 0.066096 0.375843 0.649674 0.373727 0.511758 0.518581 0.515105 0.521820 0.524190 0.519182 0.520686 0.520505 0.512323 0.523091 0.518531 0.518534 0.522805 0.512457 0.518104 +0.426873 +0.490232 0.510161 0.501165 0.514006 0.514489 0.504311 0.510067 0.495110 0.505417 0.498093 0.507036 0.490399 0.740871 0.293231 0.750899 0.510060 0.250163 0.513571 0.524069 0.515444 0.514202 0.509773 0.514500 0.517986 0.510815 0.511127 0.521127 0.524518 0.509825 0.511174 0.516913 0.513572 +0.391683 +0.515370 0.493089 0.493396 0.501135 0.510659 0.502687 0.511447 0.504815 0.490983 0.504531 0.501513 0.514783 0.030968 0.082212 0.742174 0.152143 0.898060 0.513633 0.515780 0.519858 0.516717 0.520941 0.514444 0.520747 0.517707 0.524575 0.514389 0.518748 0.512979 0.512527 0.511556 0.510695 +0.794852 +0.493314 0.503458 0.501854 0.515010 0.487276 0.490000 0.507264 0.504488 0.492554 0.509227 0.510894 0.494317 0.163645 0.854405 0.919992 0.186186 0.989388 0.515228 0.520626 0.510466 0.516347 0.515443 0.523758 0.514822 0.517776 0.514398 0.518885 0.513273 0.510551 0.516973 0.516047 0.516400 +0.801470 +0.513821 0.515413 0.488291 0.486821 0.489789 0.515844 0.487808 0.493459 0.490221 0.506198 0.495553 0.492382 0.106746 0.324156 0.541832 0.241797 0.918597 0.521537 0.514859 0.520977 0.517498 0.513882 0.513054 0.519347 0.518785 0.517419 0.515380 0.518719 0.510836 0.516621 0.521340 0.519177 +0.725856 +0.497028 0.509783 0.514934 0.496614 0.512609 0.512048 0.486832 0.492935 0.492618 0.507038 0.489534 0.512593 0.321830 0.533188 0.232000 0.557144 0.117877 0.510355 0.511386 0.511327 0.520821 0.510250 0.524235 0.510809 0.514880 0.515197 0.514972 0.518722 0.511108 0.516163 0.523222 0.517968 +0.464569 +0.507065 0.503095 0.501065 0.495703 0.497864 0.485262 0.502979 0.505114 0.508622 0.510208 0.509120 0.509367 0.460730 0.690891 0.831286 0.079480 0.902511 0.523748 0.511451 0.521376 0.515130 0.511254 0.519401 0.519831 0.521557 0.510970 0.524656 0.517618 0.510555 0.520307 0.512206 0.512417 +0.816506 +0.501405 0.488647 0.489791 0.496280 0.490733 0.493062 0.513968 0.494542 0.501429 0.515454 0.489512 0.497325 0.327732 0.545759 0.125657 0.562225 0.358857 0.519932 0.524208 0.516666 0.510695 0.520572 0.512609 0.513170 0.513035 0.511374 0.512754 0.518779 0.511286 0.523931 0.521500 0.514359 +0.483639 +0.504796 0.506077 0.488328 0.491447 0.501179 0.499069 0.498830 0.489188 0.501918 0.484827 0.508905 0.514318 0.687041 0.245976 0.020162 0.799269 0.966779 0.510915 0.523041 0.510083 0.517643 0.520471 0.516494 0.515813 0.511784 0.511243 0.523854 0.519333 0.514504 0.517646 0.520817 0.516898 +0.193361 +0.489159 0.485022 0.500513 0.504827 0.493690 0.500180 0.505363 0.500958 0.495672 0.501418 0.487559 0.497245 0.841322 0.435862 0.511533 0.952521 0.883565 0.511096 0.520826 0.510093 0.511196 0.514780 0.512825 0.512677 0.513517 0.523814 0.519006 0.514630 0.513344 0.516569 0.524551 0.522433 +0.111430 +0.500491 0.515195 0.515466 0.497725 0.484728 0.499520 0.499662 0.492823 0.501355 0.488110 0.512307 0.500570 0.088550 0.060257 0.435525 0.854722 0.230266 0.516623 0.519799 0.514020 0.509687 0.524094 0.515714 0.512932 0.520887 0.511312 0.516107 0.520212 0.512503 0.516167 0.510877 0.513201 +0.322086 +0.506917 0.489098 0.486592 0.492950 0.514899 0.514176 0.513040 0.493062 0.490684 0.491223 0.513647 0.485056 0.732344 0.234331 0.655919 0.154599 0.089677 0.524238 0.518225 0.514420 0.513083 0.510532 0.521309 0.514423 0.513501 0.512871 0.518102 0.520963 0.516415 0.512260 0.521074 0.522043 +0.750186 +0.500471 0.497863 0.497650 0.513071 0.503353 0.487507 0.499560 0.503558 0.507355 0.495428 0.488567 0.512635 0.956641 0.000915 0.912496 0.437591 0.518967 0.519628 0.521392 0.512440 0.513398 0.521506 0.522530 0.512085 0.510115 0.523328 0.522458 0.512678 0.519455 0.515130 0.522364 0.515150 +0.556224 +0.504758 0.494297 0.492201 0.490704 0.506112 0.496276 0.497533 0.497627 0.500347 0.489201 0.485791 0.491033 0.759351 0.301163 0.826615 0.712675 0.278896 0.513787 0.513972 0.513899 0.522727 0.510778 0.518784 0.524595 0.510402 0.511871 0.510472 0.516501 0.513881 0.524414 0.524402 0.513825 +0.247438 +0.506069 0.505546 0.493846 0.501036 0.508293 0.497499 0.489526 0.504176 0.485485 0.490123 0.505433 0.512722 0.432523 0.499038 0.339261 0.953725 0.093714 0.520127 0.524670 0.523363 0.518051 0.522844 0.510052 0.520027 0.518427 0.512891 0.517235 0.511921 0.523386 0.509725 0.521236 0.519558 +0.157062 +0.496654 0.489730 0.501867 0.510086 0.499999 0.495081 0.485452 0.500097 0.508627 0.502943 0.497190 0.495654 0.260587 0.123150 0.502698 0.736119 0.568066 0.514873 0.520217 0.512203 0.523195 0.510886 0.512580 0.522385 0.509990 0.522588 0.522043 0.514755 0.519397 0.517450 0.523154 0.509992 +0.249409 +0.489155 0.503021 0.513141 0.487478 0.487288 0.499065 0.502607 0.513794 0.502646 0.510549 0.504210 0.512367 0.912019 0.437233 0.514247 0.479370 0.397681 0.524675 0.515382 0.514517 0.514138 0.514426 0.524336 0.512625 0.514682 0.519640 0.524217 0.513017 0.522991 0.519568 0.518812 0.521867 +0.545129 +0.497884 0.505423 0.511715 0.493769 0.508780 0.485451 0.501236 0.508308 0.485600 0.490190 0.501381 0.491481 0.532377 0.634195 0.704385 0.202560 0.683096 0.510514 0.524025 0.514329 0.513083 0.510950 0.511598 0.524427 0.522276 0.511698 0.517531 0.523210 0.516510 0.520377 0.520531 0.515774 +0.700677 +0.505414 0.510142 0.505533 0.490570 0.499961 0.484643 0.502138 0.501602 0.497124 0.491102 0.502295 0.490915 0.739730 0.144733 0.583521 0.616421 0.537078 0.516978 0.510617 0.519617 0.512649 0.520501 0.518327 0.513412 0.523453 0.512423 0.519200 0.512696 0.512014 0.517991 0.522839 0.515823 +0.361675 +0.487328 0.513470 0.506599 0.496355 0.500961 0.508230 0.494313 0.510163 0.499985 0.502950 0.486103 0.512239 0.055591 0.152642 0.254552 0.890847 0.263360 0.519439 0.512804 0.519251 0.520171 0.513004 0.509897 0.514465 0.518394 0.511396 0.511800 0.514660 0.512135 0.517910 0.509861 0.511286 +0.114654 +0.487482 0.489715 0.498984 0.499362 0.491333 0.499248 0.496357 0.491435 0.512902 0.500287 0.515998 0.502931 0.064331 0.770265 0.402751 0.044627 0.224496 0.519780 0.515792 0.511266 0.510567 0.520094 0.516500 0.521392 0.511743 0.520685 0.510110 0.524673 0.513431 0.517929 0.511987 0.516885 +0.826883 +0.488792 0.508048 0.493891 0.501480 0.485872 0.502107 0.512149 0.494123 0.504652 0.515888 0.484743 0.510199 0.727259 0.934332 0.759439 0.782806 0.776038 0.513252 0.522945 0.522222 0.515145 0.511516 0.510772 0.524003 0.517220 0.518480 0.519082 0.521541 0.511123 0.515619 0.518038 0.516351 +0.338115 +0.514351 0.512392 0.487805 0.506671 0.515733 0.489283 0.513680 0.503990 0.497241 0.497354 0.513887 0.499312 0.270697 0.735991 0.428085 0.046519 0.964073 0.519906 0.522745 0.522569 0.513316 0.523366 0.510620 0.521040 0.520774 0.516006 0.517974 0.517744 0.517780 0.517459 0.519312 0.523298 +0.714970 +0.506564 0.506827 0.495610 0.509904 0.504919 0.503032 0.504609 0.508280 0.490304 0.495810 0.490577 0.486235 0.231597 0.797399 0.591954 0.080942 0.431851 0.512988 0.511874 0.513629 0.514386 0.517785 0.520629 0.515603 0.517991 0.522208 0.520328 0.522025 0.513218 0.512338 0.511652 0.510991 +0.882970 +0.492410 0.515042 0.486081 0.491857 0.503524 0.494385 0.500015 0.507048 0.495612 0.507778 0.490555 0.489614 0.671061 0.172846 0.196755 0.298063 0.811378 0.511230 0.516846 0.518942 0.515334 0.511520 0.515484 0.520091 0.512036 0.519772 0.516935 0.510632 0.515385 0.511042 0.514801 0.511181 +0.634240 +0.507731 0.494613 0.489055 0.500964 0.502188 0.489900 0.508322 0.511110 0.499399 0.516042 0.488546 0.496675 0.208421 0.006913 0.540138 0.834695 0.264756 0.510534 0.514847 0.510233 0.511963 0.516433 0.509711 0.516797 0.520560 0.515287 0.520432 0.518732 0.510021 0.511156 0.522242 0.518257 +0.131322 +0.510988 0.497486 0.499466 0.499035 0.508101 0.498569 0.499554 0.503825 0.500591 0.494020 0.498811 0.488960 0.309814 0.950843 0.735981 0.254864 0.113828 0.511617 0.512411 0.524341 0.518867 0.523691 0.516162 0.510377 0.517501 0.515846 0.516811 0.522687 0.521244 0.516662 0.515405 0.518829 +0.667537 +0.489008 0.485424 0.488741 0.501804 0.485133 0.509342 0.487570 0.486689 0.505245 0.507363 0.506011 0.510453 0.820206 0.188659 0.484605 0.219027 0.931523 0.519050 0.523946 0.521560 0.524125 0.518143 0.518931 0.522364 0.510583 0.512511 0.513659 0.511178 0.511055 0.512591 0.513049 0.516387 +0.647005 +0.490967 0.496935 0.487419 0.497825 0.498312 0.497061 0.499199 0.485959 0.486427 0.511243 0.495798 0.509387 0.564129 0.297898 0.055603 0.352946 0.519379 0.518428 0.523784 0.520518 0.520789 0.516272 0.524350 0.517603 0.519886 0.513624 0.518554 0.524030 0.514492 0.510617 0.522972 0.520647 +0.627687 +0.491314 0.502997 0.514278 0.489755 0.491773 0.511972 0.507905 0.486135 0.490185 0.511929 0.503540 0.513570 0.263587 0.459592 0.600354 0.991847 0.621189 0.517620 0.515365 0.521237 0.521850 0.516101 0.512350 0.511956 0.512963 0.512042 0.519717 0.516073 0.523655 0.520917 0.514143 0.516705 +0.090624 +0.493986 0.497074 0.501563 0.492656 0.494488 0.491995 0.490912 0.504859 0.493216 0.498246 0.498512 0.491179 0.465347 0.138693 0.260233 0.186692 0.486539 0.519464 0.515519 0.520938 0.517115 0.512384 0.513457 0.524423 0.523463 0.511139 0.517537 0.518098 0.519701 0.521948 0.517351 0.512971 +0.817498 +0.504142 0.511428 0.515231 0.515954 0.510872 0.503083 0.514188 0.486245 0.510646 0.497977 0.495558 0.515403 0.796087 0.582080 0.437680 0.007219 0.674172 0.515090 0.511645 0.512646 0.514803 0.517264 0.517771 0.517931 0.513774 0.519082 0.520902 0.520748 0.520859 0.517554 0.520452 0.513242 +0.939123 +0.498927 0.486631 0.506365 0.499120 0.505027 0.498193 0.507747 0.510087 0.485743 0.502267 0.494920 0.491502 0.126720 0.391466 0.724678 0.637117 0.721617 0.513983 0.517635 0.523201 0.515423 0.522708 0.518133 0.511964 0.523190 0.512206 0.512387 0.524469 0.516522 0.523175 0.511364 0.524524 +0.371556 +0.511699 0.486314 0.498086 0.514150 0.510449 0.493284 0.509126 0.513876 0.494839 0.505952 0.490588 0.507335 0.384760 0.231201 0.160686 0.198311 0.398345 0.511583 0.513396 0.511673 0.521916 0.518923 0.522254 0.523199 0.522337 0.509949 0.519925 0.524507 0.520927 0.519214 0.522749 0.513856 +0.759101 +0.511471 0.514987 0.513586 0.504008 0.490671 0.495098 0.485737 0.491485 0.488283 0.492577 0.489642 0.512867 0.884003 0.445712 0.747467 0.945339 0.411199 0.521168 0.522944 0.517783 0.513121 0.514627 0.514230 0.514488 0.515348 0.521111 0.523772 0.519420 0.520619 0.511654 0.521075 0.510579 +0.156501 +0.498988 0.498734 0.504008 0.510846 0.502341 0.505511 0.499662 0.501945 0.496454 0.490159 0.506465 0.512241 0.147328 0.122511 0.796660 0.199414 0.909462 0.517855 0.519623 0.523740 0.512771 0.519350 0.512681 0.522875 0.521846 0.524560 0.518632 0.512783 0.515412 0.513238 0.511830 0.521616 +0.736246 +0.511967 0.495003 0.505687 0.505859 0.497264 0.511305 0.502536 0.490645 0.487076 0.493810 0.499877 0.512757 0.802363 0.869209 0.256752 0.798323 0.085120 0.517450 0.520358 0.511250 0.524132 0.517970 0.524682 0.510644 0.522926 0.523141 0.517260 0.517605 0.518158 0.514194 0.523080 0.510737 +0.154060 +0.498836 0.487100 0.490100 0.487942 0.490507 0.497677 0.495567 0.498786 0.505746 0.492903 0.492512 0.484689 0.924337 0.077908 0.541417 0.278479 0.275008 0.510330 0.520622 0.519095 0.510995 0.510958 0.512753 0.517719 0.518047 0.519862 0.524300 0.516897 0.511103 0.522115 0.517255 0.512774 +0.754898 +0.489084 0.501728 0.500940 0.514495 0.514605 0.502703 0.490934 0.500390 0.485968 0.485060 0.491743 0.502314 0.630348 0.177443 0.310848 0.305363 0.276426 0.522277 0.514974 0.511043 0.524386 0.522924 0.518894 0.513368 0.520559 0.514728 0.519750 0.509786 0.515901 0.511485 0.513734 0.524452 +0.633378 +0.490534 0.488797 0.507763 0.485839 0.490185 0.506384 0.514476 0.508390 0.515042 0.514029 0.493008 0.488095 0.734352 0.927212 0.311778 0.906616 0.788188 0.510570 0.510110 0.522258 0.520598 0.523608 0.515648 0.517283 0.516365 0.524308 0.515943 0.521419 0.513825 0.510800 0.517817 0.524048 +0.230796 +0.513127 0.493101 0.503893 0.499720 0.498289 0.490704 0.507887 0.496051 0.486440 0.513096 0.489441 0.490424 0.087281 0.782607 0.447970 0.633481 0.725901 0.511852 0.510356 0.516209 0.518450 0.522154 0.522331 0.518004 0.522941 0.520568 0.522747 0.520451 0.521814 0.511328 0.518762 0.518037 +0.342070 +0.515166 0.495522 0.501277 0.501138 0.497165 0.512620 0.506982 0.515907 0.508205 0.490683 0.500236 0.513328 0.654339 0.637188 0.920595 0.299772 0.485973 0.512196 0.519967 0.516688 0.516375 0.513939 0.511837 0.515467 0.517544 0.518719 0.521673 0.518948 0.521124 0.518282 0.517917 0.521130 +0.726469 +0.515845 0.509413 0.490826 0.510100 0.515192 0.493944 0.507248 0.493948 0.490624 0.493138 0.493637 0.488326 0.762174 0.655016 0.003038 0.534916 0.225195 0.515611 0.522240 0.513072 0.511392 0.513273 0.510620 0.510285 0.512474 0.515414 0.517212 0.515179 0.514924 0.522484 0.518832 0.515713 +0.566105 +0.509420 0.487348 0.513996 0.506084 0.497342 0.492474 0.508445 0.492047 0.507979 0.493970 0.486332 0.487448 0.124958 0.838437 0.043206 0.375011 0.679872 0.524288 0.510274 0.517050 0.513091 0.518278 0.518633 0.516322 0.524542 0.511750 0.514520 0.520087 0.522938 0.514269 0.514163 0.519321 +0.601686 +0.493052 0.504055 0.514553 0.513416 0.484805 0.505468 0.499367 0.514600 0.487303 0.500435 0.488983 0.485564 0.870848 0.754521 0.269154 0.845712 0.086655 0.513873 0.514675 0.518509 0.509897 0.511775 0.521136 0.515043 0.510901 0.510910 0.521147 0.516906 0.513316 0.519005 0.518128 0.512683 +0.278073 +0.506341 0.509908 0.508726 0.499007 0.498248 0.497088 0.504597 0.500797 0.494922 0.486774 0.492082 0.500547 0.037427 0.437851 0.872430 0.297853 0.303769 0.517868 0.516704 0.521033 0.521001 0.520310 0.519742 0.523588 0.524223 0.510311 0.514323 0.515729 0.520328 0.521401 0.516104 0.520059 +0.679441 +0.502963 0.492425 0.508887 0.488842 0.503203 0.488907 0.490950 0.513981 0.499184 0.491176 0.486942 0.489036 0.279721 0.118012 0.323372 0.402038 0.079739 0.513481 0.513519 0.510958 0.517990 0.513511 0.522961 0.510802 0.516204 0.519268 0.521045 0.513873 0.512333 0.515797 0.515710 0.517163 +0.510866 +0.496434 0.510249 0.500436 0.507359 0.491633 0.484761 0.491513 0.502690 0.494825 0.498069 0.512087 0.488659 0.941126 0.737428 0.524677 0.454746 0.299213 0.511264 0.518659 0.522040 0.520721 0.517432 0.521463 0.514878 0.520155 0.517247 0.524437 0.520851 0.513146 0.512691 0.520213 0.519587 +0.583661 +0.510834 0.491777 0.509764 0.503211 0.507272 0.485994 0.505978 0.515943 0.493287 0.487243 0.507461 0.485990 0.700579 0.348541 0.627133 0.239504 0.447416 0.514833 0.521472 0.515869 0.517937 0.514355 0.519955 0.516546 0.516652 0.522028 0.513767 0.516425 0.515002 0.512475 0.517980 0.519200 +0.773785 +0.498161 0.506410 0.514088 0.509756 0.495140 0.511100 0.486015 0.488873 0.493149 0.502567 0.500120 0.507235 0.258701 0.491190 0.676289 0.878319 0.088017 0.511590 0.521777 0.511137 0.516444 0.522142 0.519329 0.524679 0.515237 0.519150 0.512124 0.523818 0.521944 0.523551 0.514857 0.517093 +0.160364 +0.499924 0.492249 0.515044 0.489845 0.492069 0.514973 0.486075 0.515260 0.506653 0.493111 0.486162 0.492696 0.716901 0.176337 0.763632 0.113223 0.978023 0.520350 0.522222 0.510895 0.522794 0.517475 0.512263 0.516064 0.513834 0.519019 0.514697 0.510298 0.514680 0.514565 0.521911 0.520391 +0.752314 +0.501517 0.513336 0.495138 0.502708 0.510969 0.491361 0.512160 0.515708 0.513538 0.515175 0.488215 0.499768 0.042141 0.517927 0.223196 0.866727 0.621802 0.521890 0.513303 0.514817 0.521100 0.519084 0.518023 0.513926 0.512387 0.515269 0.510331 0.516101 0.519661 0.521754 0.512032 0.521201 +0.247621 +0.512054 0.495419 0.503659 0.501369 0.502428 0.491755 0.485323 0.496971 0.500397 0.507404 0.500271 0.504561 0.064724 0.372314 0.441630 0.275573 0.536724 0.517897 0.514112 0.520491 0.515498 0.512978 0.517611 0.521080 0.516207 0.511562 0.511195 0.515499 0.518472 0.521209 0.521666 0.517855 +0.728949 +0.495701 0.496380 0.505360 0.511625 0.504746 0.487910 0.507619 0.495633 0.507399 0.504741 0.503027 0.497301 0.728350 0.230852 0.292656 0.112300 0.483078 0.518524 0.511341 0.521447 0.515460 0.515983 0.524065 0.520029 0.523454 0.516695 0.512948 0.517819 0.521503 0.512563 0.520083 0.511428 +0.887761 +0.499463 0.509373 0.485777 0.485063 0.498404 0.507168 0.497945 0.502137 0.491026 0.506363 0.501485 0.514820 0.305853 0.507675 0.237263 0.848529 0.345437 0.518115 0.516299 0.515707 0.514686 0.521844 0.514058 0.515209 0.521377 0.515499 0.522426 0.520127 0.510024 0.522937 0.513465 0.519513 +0.225771 +0.490328 0.494051 0.488256 0.508570 0.490562 0.513693 0.510343 0.507807 0.513994 0.506607 0.514338 0.514584 0.285085 0.097664 0.959456 0.234951 0.059925 0.522511 0.522170 0.518204 0.515904 0.513285 0.521123 0.519066 0.513732 0.523394 0.524186 0.512122 0.509715 0.512149 0.515258 0.515699 +0.757783 +0.499097 0.509277 0.511561 0.490166 0.508002 0.503019 0.514842 0.500765 0.495204 0.509593 0.503309 0.515683 0.431270 0.482333 0.103291 0.355368 0.165033 0.511741 0.513049 0.522462 0.519431 0.520568 0.518198 0.522682 0.524666 0.514115 0.520169 0.510260 0.517088 0.518621 0.514395 0.523528 +0.562241 +0.510377 0.486715 0.511421 0.507341 0.513160 0.513549 0.507060 0.503509 0.502641 0.512713 0.504861 0.492950 0.218173 0.591324 0.511227 0.812833 0.516629 0.516227 0.523422 0.523284 0.521153 0.510187 0.519420 0.512030 0.512532 0.515883 0.521070 0.512309 0.515626 0.512963 0.523760 0.521701 +0.360565 +0.499361 0.507231 0.486740 0.514116 0.511416 0.514855 0.493134 0.493174 0.503757 0.509627 0.493064 0.509776 0.309079 0.624473 0.610125 0.922967 0.103743 0.523823 0.523525 0.514420 0.512851 0.519661 0.520502 0.522567 0.519257 0.516064 0.521529 0.510124 0.522839 0.524066 0.517075 0.517698 +0.153447 +0.488855 0.502309 0.508595 0.502775 0.505812 0.499123 0.494981 0.504076 0.493729 0.515154 0.505404 0.498925 0.676707 0.885139 0.502831 0.973571 0.013022 0.509902 0.519724 0.510091 0.509733 0.522347 0.511108 0.511740 0.514054 0.513554 0.518762 0.512123 0.515585 0.516535 0.511226 0.519436 +0.030191 +0.510642 0.492890 0.512114 0.494039 0.501808 0.495201 0.495578 0.496546 0.503394 0.486275 0.510541 0.506395 0.579463 0.539600 0.792688 0.554046 0.139304 0.517315 0.517541 0.511192 0.510455 0.520693 0.516701 0.510675 0.513992 0.519751 0.510319 0.514342 0.509918 0.520611 0.523940 0.517932 +0.538525 +0.491143 0.489276 0.490999 0.503607 0.505886 0.509833 0.504995 0.485290 0.504658 0.512310 0.495666 0.501046 0.142928 0.293698 0.593294 0.554574 0.009008 0.519844 0.509899 0.511179 0.509758 0.512024 0.510575 0.513938 0.521023 0.516465 0.519757 0.512396 0.511366 0.520465 0.512863 0.517132 +0.406393 +0.490517 0.512800 0.503653 0.496146 0.504658 0.492506 0.514636 0.494818 0.506441 0.489078 0.509304 0.493838 0.225371 0.344873 0.091319 0.512272 0.357096 0.511773 0.523405 0.510105 0.514211 0.511988 0.515272 0.517152 0.521149 0.511419 0.510718 0.513653 0.514219 0.523891 0.512552 0.519480 +0.499041 +0.486774 0.499976 0.512869 0.513631 0.509750 0.499196 0.493526 0.514289 0.488513 0.512336 0.511688 0.511237 0.445287 0.617811 0.860148 0.253864 0.345322 0.519196 0.511278 0.510130 0.522801 0.518704 0.520136 0.523607 0.516523 0.520464 0.513485 0.524083 0.521697 0.518233 0.515878 0.515399 +0.624385 +0.498411 0.494096 0.485211 0.506157 0.498160 0.497359 0.494602 0.502555 0.494624 0.492289 0.514556 0.496789 0.028666 0.465418 0.332598 0.167366 0.265289 0.509771 0.513483 0.514509 0.512599 0.515701 0.523501 0.520530 0.512661 0.516776 0.521781 0.522806 0.518996 0.517726 0.511346 0.517298 +0.780546 +0.490834 0.491096 0.515562 0.505110 0.493908 0.506988 0.493686 0.485605 0.488984 0.499002 0.505104 0.493776 0.009319 0.896910 0.968783 0.705889 0.440734 0.513352 0.514429 0.514612 0.516948 0.509821 0.511087 0.518312 0.517159 0.520097 0.512702 0.511101 0.509781 0.514371 0.520405 0.518456 +0.337097 +0.506957 0.502662 0.500801 0.495348 0.498874 0.503389 0.507242 0.507564 0.489729 0.493278 0.491480 0.493642 0.661511 0.966810 0.604370 0.364076 0.248181 0.509857 0.517836 0.523589 0.518589 0.518253 0.513275 0.515881 0.513129 0.515590 0.520798 0.518381 0.515064 0.522823 0.521217 0.524619 +0.607534 +0.501589 0.486103 0.506746 0.493735 0.490182 0.490643 0.494424 0.495620 0.508033 0.492218 0.486052 0.509376 0.660745 0.107807 0.115893 0.762143 0.134442 0.523890 0.515462 0.517563 0.523390 0.520162 0.522297 0.523621 0.515573 0.523683 0.518251 0.511095 0.523660 0.512529 0.523822 0.517099 +0.303891 +0.512512 0.492268 0.486514 0.499675 0.487347 0.489648 0.514861 0.495690 0.498339 0.513329 0.498284 0.505522 0.593480 0.681084 0.305182 0.245835 0.646200 0.511240 0.511603 0.514431 0.513981 0.523954 0.518259 0.523060 0.518968 0.518879 0.510883 0.512410 0.510775 0.521732 0.523872 0.520268 +0.628027 +0.513012 0.493414 0.510914 0.510091 0.500056 0.505110 0.498713 0.508221 0.504658 0.496520 0.496011 0.513348 0.397299 0.584243 0.724931 0.885904 0.326119 0.516871 0.523374 0.519855 0.513371 0.520494 0.513675 0.512469 0.521193 0.517687 0.521914 0.513516 0.524068 0.510427 0.510137 0.519279 +0.139167 +0.514871 0.509270 0.488860 0.515570 0.509519 0.515962 0.496973 0.498970 0.506756 0.492000 0.509064 0.485025 0.013196 0.944850 0.193585 0.111519 0.387600 0.522879 0.511611 0.517796 0.514572 0.521371 0.518519 0.513230 0.511934 0.511812 0.521753 0.517558 0.514228 0.512212 0.512499 0.523524 +0.836490 +0.502731 0.496341 0.514480 0.515609 0.508811 0.504185 0.505830 0.513687 0.506519 0.505995 0.493564 0.511227 0.929244 0.394392 0.823174 0.980166 0.663217 0.518404 0.518044 0.520955 0.514017 0.520025 0.518123 0.517133 0.522551 0.513425 0.513254 0.513996 0.512524 0.524509 0.512718 0.511949 +0.100936 +0.507874 0.499831 0.509551 0.507036 0.512158 0.489430 0.507616 0.500553 0.492030 0.514141 0.513407 0.512696 0.293060 0.884778 0.452736 0.579547 0.943742 0.519006 0.519844 0.516374 0.512655 0.515820 0.524002 0.515047 0.516399 0.522582 0.511555 0.524003 0.510463 0.515317 0.522255 0.520736 +0.452586 +0.490327 0.507192 0.485282 0.502498 0.509068 0.488515 0.488490 0.494063 0.496899 0.485428 0.504176 0.505373 0.163118 0.008718 0.826167 0.192299 0.534816 0.517907 0.522762 0.520307 0.516895 0.518603 0.519328 0.513752 0.520834 0.515740 0.520353 0.515685 0.511510 0.512147 0.512048 0.510307 +0.736416 +0.506370 0.493522 0.505035 0.506274 0.488956 0.501738 0.511135 0.505428 0.491818 0.509341 0.504972 0.506857 0.189788 0.416654 0.285576 0.339342 0.301453 0.519944 0.514448 0.509934 0.518787 0.523573 0.515570 0.521546 0.522580 0.515393 0.522675 0.510728 0.519812 0.520077 0.517848 0.522227 +0.561510 +0.495992 0.497832 0.513650 0.505412 0.511710 0.505443 0.489243 0.509009 0.507610 0.507337 0.511458 0.498217 0.830238 0.497361 0.212558 0.397362 0.642986 0.512413 0.522266 0.519222 0.513270 0.516076 0.512191 0.522927 0.520920 0.517200 0.518608 0.519023 0.510587 0.512845 0.520850 0.522515 +0.599702 +0.498623 0.493165 0.509707 0.490939 0.488418 0.515360 0.514855 0.491623 0.510227 0.515836 0.510131 0.512076 0.360537 0.879596 0.504671 0.844296 0.319703 0.522479 0.515682 0.513779 0.514997 0.516258 0.510766 0.523254 0.519598 0.523444 0.518923 0.512415 0.516083 0.522602 0.516460 0.519341 +0.314777 +0.486817 0.486648 0.509739 0.499103 0.510630 0.494895 0.503277 0.497775 0.512308 0.513557 0.485384 0.487282 0.387691 0.408184 0.196425 0.750319 0.781040 0.511993 0.522894 0.524042 0.510754 0.515261 0.516541 0.520394 0.513906 0.510261 0.510456 0.522778 0.511726 0.523654 0.511058 0.510169 +0.316748 +0.507065 0.506718 0.513488 0.493559 0.494994 0.512801 0.503413 0.500019 0.489250 0.501803 0.496333 0.502491 0.998896 0.867599 0.247661 0.286669 0.673129 0.522589 0.514600 0.514021 0.514858 0.519501 0.514584 0.512174 0.521543 0.521945 0.509848 0.524166 0.518554 0.515596 0.522859 0.515094 +0.604858 +0.488995 0.494951 0.500680 0.512002 0.503095 0.506047 0.510915 0.493874 0.505958 0.495115 0.494681 0.493653 0.531101 0.227310 0.885775 0.173216 0.405904 0.523719 0.514702 0.512915 0.519482 0.521481 0.516921 0.514603 0.510519 0.520472 0.514795 0.516171 0.511099 0.518217 0.512531 0.511785 +0.772362 +0.491241 0.505700 0.509090 0.508511 0.503199 0.511839 0.513249 0.512614 0.504937 0.513021 0.487196 0.506988 0.124710 0.678261 0.948193 0.278373 0.502773 0.524667 0.519205 0.514022 0.515297 0.513696 0.520095 0.510195 0.513879 0.518787 0.517485 0.520361 0.511269 0.514392 0.517955 0.512257 +0.744260 +0.514752 0.487908 0.503598 0.489317 0.492917 0.501340 0.497972 0.485912 0.507897 0.511749 0.507236 0.505723 0.985149 0.248628 0.498603 0.046326 0.725368 0.512845 0.514856 0.515738 0.522777 0.520213 0.520816 0.519509 0.509972 0.510947 0.518424 0.513591 0.522071 0.522566 0.512602 0.518172 +0.839583 +0.498647 0.491763 0.490601 0.485467 0.491011 0.501956 0.492152 0.516044 0.494418 0.487457 0.485966 0.512044 0.446363 0.674556 0.794091 0.095093 0.832694 0.520141 0.519732 0.512752 0.514490 0.509987 0.511925 0.513870 0.509918 0.520797 0.516237 0.512438 0.520492 0.518023 0.514392 0.514682 +0.836059 +0.503976 0.509616 0.513233 0.488239 0.508676 0.510374 0.498749 0.505028 0.512312 0.491473 0.503347 0.514330 0.713888 0.630440 0.722691 0.294873 0.302691 0.516444 0.512797 0.519106 0.518066 0.511687 0.512891 0.520768 0.521812 0.521810 0.521256 0.512120 0.519135 0.518974 0.523917 0.512900 +0.741467 +0.485102 0.504625 0.504504 0.504703 0.494409 0.499449 0.505908 0.498955 0.514060 0.500592 0.509918 0.489744 0.416727 0.506994 0.813625 0.799904 0.609141 0.515684 0.513850 0.511643 0.524207 0.521444 0.511148 0.521470 0.518204 0.516147 0.520709 0.514652 0.513864 0.523223 0.522369 0.510662 +0.264877 +0.516026 0.499089 0.488933 0.515331 0.496773 0.500293 0.490915 0.497041 0.512224 0.491409 0.496771 0.496472 0.940680 0.241484 0.652107 0.194594 0.037439 0.519215 0.516987 0.523719 0.511384 0.516922 0.524427 0.518635 0.522543 0.520760 0.517958 0.517398 0.524022 0.513704 0.516184 0.519853 +0.781604 +0.506705 0.493231 0.485015 0.487960 0.509988 0.493297 0.493780 0.487814 0.502892 0.514720 0.490948 0.493689 0.775172 0.709371 0.852823 0.373664 0.078456 0.520542 0.516944 0.509690 0.522939 0.517228 0.514083 0.519489 0.518790 0.513374 0.521265 0.521730 0.513898 0.509784 0.517092 0.510234 +0.639709 +0.507764 0.498039 0.498917 0.493731 0.488954 0.500983 0.506693 0.508917 0.496037 0.503052 0.499243 0.499822 0.889260 0.633911 0.937667 0.695187 0.903281 0.522289 0.524280 0.512738 0.520081 0.510902 0.512335 0.516483 0.514996 0.514944 0.523154 0.517852 0.513048 0.523329 0.513228 0.514677 +0.323861 +0.490171 0.494807 0.510678 0.503292 0.506250 0.515989 0.506021 0.509523 0.485301 0.510347 0.488962 0.510784 0.501411 0.142699 0.464949 0.467135 0.138708 0.517405 0.513286 0.521623 0.516100 0.510953 0.510144 0.520062 0.511557 0.513526 0.524618 0.512631 0.524240 0.513184 0.517783 0.522586 +0.522274 +0.509369 0.501050 0.506230 0.503588 0.504510 0.492581 0.492416 0.515105 0.513469 0.486276 0.492245 0.502525 0.196675 0.946462 0.240563 0.213004 0.886524 0.520707 0.522348 0.515187 0.513620 0.523963 0.519002 0.518252 0.514549 0.510302 0.517512 0.511785 0.518741 0.518494 0.512627 0.522136 +0.769974 +0.492436 0.514362 0.491467 0.491083 0.484844 0.508506 0.486106 0.500423 0.501573 0.514526 0.496909 0.490292 0.592910 0.124626 0.268049 0.306736 0.315969 0.512670 0.523889 0.513797 0.510041 0.519101 0.521364 0.522445 0.511861 0.518471 0.510534 0.516111 0.521776 0.515660 0.509996 0.512450 +0.584718 +0.486848 0.515883 0.488928 0.502710 0.510708 0.504461 0.488919 0.499201 0.513607 0.507508 0.491910 0.509399 0.048329 0.323798 0.539025 0.152740 0.903261 0.517400 0.516770 0.520390 0.516303 0.510857 0.523493 0.524650 0.519642 0.520438 0.516468 0.523151 0.512133 0.509720 0.512862 0.511877 +0.781108 +0.509176 0.500934 0.500962 0.503387 0.492578 0.502552 0.501297 0.504975 0.496631 0.485000 0.489569 0.513744 0.708453 0.450133 0.926824 0.807969 0.904753 0.517715 0.512312 0.512604 0.514014 0.517715 0.511103 0.521332 0.512676 0.515138 0.516354 0.512515 0.522648 0.520306 0.514982 0.511992 +0.219114 +0.485529 0.496705 0.487879 0.491904 0.511600 0.493246 0.485416 0.510083 0.487481 0.511916 0.507167 0.506842 0.329038 0.442308 0.654910 0.221716 0.035755 0.515440 0.516918 0.519370 0.519212 0.510848 0.523720 0.516903 0.519593 0.513489 0.518825 0.516042 0.521446 0.516195 0.523131 0.521006 +0.702870 +0.498378 0.513845 0.505747 0.501879 0.487551 0.515884 0.508481 0.500931 0.508443 0.498572 0.486786 0.502486 0.134046 0.292892 0.062614 0.971776 0.910832 0.517442 0.513327 0.514905 0.516769 0.524652 0.519077 0.521160 0.516313 0.520918 0.513976 0.513692 0.513781 0.510327 0.521624 0.515617 +0.223800 +0.484878 0.506294 0.502557 0.490313 0.490242 0.486546 0.505203 0.495260 0.501383 0.485770 0.514135 0.504722 0.462584 0.796255 0.404918 0.406250 0.738424 0.513304 0.522029 0.512434 0.515189 0.521941 0.520209 0.519197 0.514729 0.520849 0.518698 0.521271 0.519971 0.522395 0.522988 0.519373 +0.571443 +0.490899 0.507255 0.489644 0.484787 0.513745 0.504237 0.491363 0.503942 0.511843 0.512445 0.500537 0.493036 0.074458 0.666650 0.171799 0.635525 0.025551 0.512711 0.516749 0.512270 0.515668 0.513186 0.512838 0.521432 0.511054 0.518726 0.511905 0.511884 0.520190 0.520439 0.511246 0.514356 +0.387402 +0.503934 0.496365 0.513811 0.515010 0.485620 0.487939 0.493939 0.485996 0.501096 0.489565 0.505013 0.505341 0.613336 0.783320 0.401567 0.188754 0.069591 0.509830 0.515882 0.523766 0.519427 0.519358 0.509683 0.511115 0.518929 0.517412 0.511191 0.521333 0.524262 0.524662 0.514603 0.516560 +0.631459 +0.515211 0.502156 0.491857 0.493350 0.501507 0.499668 0.501768 0.515994 0.493542 0.489399 0.506278 0.496275 0.487441 0.795061 0.363184 0.279667 0.206836 0.515757 0.523790 0.518161 0.512264 0.517991 0.524328 0.511950 0.518471 0.518238 0.512314 0.524628 0.522878 0.509783 0.523790 0.513250 +0.653218 +0.508910 0.508298 0.487747 0.504757 0.511019 0.510975 0.492720 0.500432 0.501578 0.503551 0.486267 0.494956 0.121277 0.083266 0.414996 0.470541 0.279440 0.515758 0.510488 0.511517 0.511936 0.513652 0.519714 0.523012 0.511041 0.522429 0.523931 0.524674 0.520939 0.522740 0.523993 0.510201 +0.475820 +0.509348 0.497697 0.509192 0.515396 0.486406 0.503850 0.512544 0.485023 0.497826 0.514116 0.511681 0.487789 0.034445 0.403480 0.267121 0.738454 0.747901 0.512984 0.512579 0.517918 0.511274 0.513503 0.520631 0.510236 0.513972 0.519955 0.515004 0.523570 0.511561 0.518385 0.518692 0.514668 +0.339472 +0.499741 0.504967 0.514161 0.508121 0.500503 0.494947 0.506071 0.512378 0.503600 0.514508 0.515324 0.500656 0.279862 0.482840 0.601241 0.880628 0.819713 0.523448 0.514965 0.510995 0.518882 0.520451 0.513291 0.516664 0.511705 0.517117 0.511581 0.520236 0.515127 0.522563 0.522166 0.521412 +0.130069 +0.493423 0.513253 0.509206 0.500758 0.500646 0.514413 0.495537 0.501335 0.509320 0.505359 0.495115 0.490526 0.903245 0.246815 0.092586 0.766094 0.427009 0.524664 0.522916 0.509685 0.518990 0.523051 0.522126 0.513456 0.513722 0.516072 0.514555 0.515781 0.518727 0.521544 0.513794 0.514019 +0.263350 +0.511373 0.514932 0.489753 0.490583 0.485802 0.490438 0.510747 0.500728 0.495536 0.489520 0.506850 0.509964 0.639073 0.540252 0.744538 0.799869 0.025181 0.524576 0.521936 0.520251 0.518605 0.518373 0.515734 0.519536 0.514010 0.513320 0.510178 0.513844 0.514238 0.511314 0.513221 0.511389 +0.322217 +0.506879 0.515024 0.504068 0.487078 0.509853 0.515859 0.497367 0.514624 0.488886 0.492960 0.505295 0.497544 0.115253 0.036166 0.272851 0.862692 0.938336 0.523563 0.521102 0.517479 0.523818 0.516846 0.510025 0.515164 0.523617 0.519615 0.510819 0.519326 0.512267 0.510728 0.523559 0.515337 +0.212157 +0.511290 0.494814 0.492951 0.513378 0.497460 0.499971 0.493737 0.502172 0.508887 0.495931 0.492424 0.499016 0.151552 0.975126 0.107690 0.152018 0.801196 0.514032 0.520802 0.514293 0.511563 0.518446 0.510646 0.522886 0.510086 0.521166 0.511285 0.524067 0.518747 0.514504 0.520993 0.515477 +0.787960 +0.489740 0.513105 0.515407 0.485250 0.494141 0.495322 0.504960 0.493592 0.485040 0.494595 0.495832 0.491363 0.917724 0.140822 0.965908 0.468993 0.302370 0.510760 0.517069 0.520120 0.522553 0.520953 0.512874 0.510490 0.515763 0.520972 0.514034 0.518737 0.522508 0.522910 0.513731 0.521798 +0.448148 +0.490644 0.502000 0.501335 0.512139 0.488047 0.492059 0.498419 0.497941 0.492012 0.500945 0.496328 0.515283 0.558929 0.062778 0.722674 0.018598 0.569220 0.520148 0.519748 0.518301 0.517661 0.517442 0.515923 0.520635 0.523252 0.511355 0.511700 0.511158 0.516906 0.523172 0.524122 0.513673 +0.840014 +0.494159 0.511028 0.506352 0.502772 0.511419 0.502507 0.500353 0.491099 0.503530 0.509009 0.498041 0.503827 0.341549 0.333026 0.354950 0.151290 0.576938 0.512394 0.519525 0.514152 0.512165 0.522128 0.510674 0.514694 0.513227 0.518076 0.513670 0.516196 0.513880 0.522718 0.511900 0.521364 +0.782831 +0.491415 0.495655 0.502728 0.506009 0.494853 0.502037 0.508070 0.486766 0.509859 0.490066 0.492725 0.511894 0.210528 0.346010 0.166551 0.590392 0.875764 0.513077 0.517337 0.524238 0.516276 0.523882 0.514378 0.516775 0.519059 0.522425 0.516333 0.514951 0.517844 0.513908 0.517460 0.514578 +0.437824 +0.506623 0.492925 0.510744 0.513641 0.511850 0.502882 0.511590 0.515871 0.508942 0.505055 0.485471 0.497080 0.466204 0.516834 0.886641 0.700389 0.169451 0.513246 0.518408 0.511309 0.518723 0.514512 0.521259 0.522544 0.513931 0.521959 0.513483 0.514343 0.523757 0.516646 0.516760 0.514543 +0.338337 +0.507881 0.490988 0.496114 0.502272 0.493741 0.495609 0.489824 0.506163 0.504735 0.499612 0.502451 0.504377 0.278292 0.137176 0.809171 0.066413 0.707876 0.521215 0.521479 0.511363 0.510096 0.524501 0.512159 0.521056 0.517126 0.520942 0.523769 0.522326 0.516559 0.517577 0.514136 0.509702 +0.948560 +0.515338 0.491288 0.503152 0.507509 0.500484 0.495782 0.489622 0.485174 0.487788 0.506162 0.498192 0.498408 0.422509 0.504584 0.382357 0.925773 0.161829 0.515423 0.518028 0.517497 0.521995 0.522527 0.511110 0.519407 0.510635 0.514651 0.521017 0.513624 0.513701 0.514356 0.521369 0.521431 +0.119118 +0.509956 0.489684 0.489043 0.510645 0.512492 0.491982 0.486597 0.505108 0.504224 0.501472 0.487141 0.490774 0.162009 0.395646 0.848542 0.564183 0.203492 0.514454 0.522039 0.516796 0.514681 0.520831 0.514726 0.521545 0.516437 0.521538 0.515287 0.514100 0.515314 0.520569 0.513141 0.511374 +0.438098 +0.489038 0.515135 0.500086 0.509032 0.502524 0.503338 0.496442 0.513652 0.484711 0.500739 0.492916 0.511533 0.085015 0.764412 0.202514 0.904752 0.521026 0.512724 0.521501 0.521030 0.521246 0.509682 0.513084 0.511613 0.516478 0.517671 0.523109 0.510863 0.519426 0.510815 0.511446 0.524197 +0.089463 +0.503345 0.511039 0.505192 0.493910 0.515157 0.494754 0.496386 0.516020 0.495708 0.511293 0.497720 0.487866 0.463179 0.769622 0.612557 0.715082 0.654133 0.512364 0.512332 0.521466 0.516225 0.509698 0.518279 0.520999 0.521679 0.524220 0.510440 0.521763 0.512395 0.524655 0.524012 0.519122 +0.418271 +0.504579 0.490896 0.487849 0.496322 0.514457 0.498701 0.512523 0.487752 0.494478 0.514940 0.510270 0.485079 0.996998 0.025635 0.619497 0.129430 0.867930 0.521724 0.523816 0.515264 0.520990 0.521704 0.515959 0.522792 0.520373 0.521420 0.518695 0.515307 0.514769 0.516715 0.524239 0.519913 +0.648728 +0.509360 0.513638 0.500675 0.515970 0.503373 0.511386 0.513592 0.510957 0.505870 0.487136 0.497429 0.511493 0.953567 0.429811 1 0.388870 0.180779 0.513996 0.511577 0.516441 0.521722 0.520563 0.514847 0.514232 0.513409 0.518774 0.521028 0.517014 0.518366 0.511792 0.518810 0.509925 +0.571874 +0.484870 0.498570 0.485509 0.510727 0.512104 0.484810 0.499171 0.485659 0.486061 0.496595 0.506999 0.494700 0.571174 0.474625 0.798866 0.195390 0.397618 0.523639 0.523931 0.520905 0.522629 0.524205 0.517639 0.522338 0.524555 0.515085 0.518871 0.517319 0.524672 0.515856 0.520933 0.509993 +0.680433 +0.513799 0.494120 0.506911 0.515348 0.499597 0.500687 0.503508 0.491129 0.484626 0.498808 0.487306 0.499496 0.409250 0.068445 0.785699 0.315915 0.303110 0.516876 0.510563 0.523533 0.516359 0.514676 0.520750 0.520318 0.519731 0.515108 0.518251 0.522583 0.519341 0.516734 0.518277 0.512684 +0.710271 +0.493960 0.496208 0.506793 0.495489 0.514839 0.503684 0.492016 0.502071 0.511370 0.493276 0.490039 0.514342 0.166230 0.217492 0.179785 0.600119 0.052110 0.520959 0.518673 0.515562 0.513861 0.511423 0.524523 0.521974 0.518380 0.521613 0.515944 0.523685 0.518580 0.513904 0.516545 0.510442 +0.463903 +0.486611 0.494741 0.501803 0.509815 0.489564 0.494043 0.504227 0.507590 0.509764 0.503899 0.511111 0.514146 0.771907 0.949690 0.390551 0.384951 0.437319 0.524085 0.516090 0.520223 0.514435 0.516634 0.523757 0.518010 0.512354 0.518543 0.510207 0.516054 0.513293 0.519602 0.513386 0.519531 +0.615313 +0.495888 0.491928 0.501132 0.493660 0.485940 0.510260 0.504577 0.488841 0.515090 0.513230 0.492297 0.496190 0.476108 0.669222 0.321096 0.212118 0.025539 0.509853 0.512001 0.509798 0.522746 0.513461 0.513491 0.524320 0.511329 0.511689 0.518520 0.511396 0.510234 0.523292 0.513865 0.519014 +0.662694 +0.505565 0.502546 0.499644 0.510796 0.512387 0.492252 0.497804 0.486348 0.511344 0.489830 0.493095 0.503574 0.204668 0.048365 0.932558 0.000359 0.595170 0.510259 0.510120 0.513348 0.512831 0.521980 0.524287 0.517808 0.520409 0.519157 0.510196 0.518633 0.518761 0.518043 0.515236 0.523073 +0.764309 +0.489140 0.497826 0.510437 0.514467 0.511951 0.507261 0.513777 0.498939 0.515630 0.511877 0.512676 0.508279 0.796235 0.065077 0.295230 0.291721 0.428537 0.519059 0.510495 0.515072 0.516613 0.519235 0.512291 0.518530 0.512668 0.523206 0.514893 0.517955 0.518401 0.523640 0.524561 0.522401 +0.596909 +0.493295 0.490843 0.490702 0.509996 0.508020 0.495553 0.491624 0.515175 0.486502 0.512917 0.494657 0.501088 0.893839 0.442718 0.520398 0.667957 0.093996 0.516023 0.513738 0.511540 0.522501 0.523245 0.516613 0.515187 0.517820 0.523232 0.521329 0.510421 0.515339 0.519238 0.515545 0.510302 +0.386736 +0.509482 0.492454 0.492247 0.501395 0.501863 0.498196 0.503460 0.503901 0.489464 0.512287 0.488255 0.510309 0.473402 0.271512 0.408066 0.206636 0.055621 0.519590 0.511330 0.509767 0.523149 0.513588 0.511037 0.516009 0.519482 0.512371 0.517834 0.511155 0.511482 0.522246 0.522212 0.515506 +0.804289 +0.496846 0.498194 0.493751 0.510108 0.500360 0.489766 0.508574 0.485558 0.487256 0.512306 0.511117 0.512998 0.343820 0.437621 0.014207 0.896950 0.647367 0.519970 0.519069 0.515111 0.515535 0.522083 0.510619 0.518222 0.511408 0.512064 0.512557 0.512165 0.512758 0.514141 0.516606 0.513056 +0.126467 +0.511960 0.502240 0.506043 0.508094 0.510937 0.510194 0.491131 0.516095 0.497311 0.505559 0.485469 0.497956 0.104565 0.735327 0.283435 0.419171 0.497852 0.516430 0.515141 0.513699 0.523499 0.516600 0.523319 0.509720 0.521770 0.523502 0.524023 0.516834 0.519950 0.514763 0.516624 0.510444 +0.598227 +0.506349 0.493373 0.509368 0.515376 0.506132 0.488968 0.506747 0.505447 0.497334 0.514760 0.508204 0.510848 0.596782 0.071261 0.025616 0.292679 0.503577 0.516897 0.521782 0.519740 0.523712 0.522994 0.510279 0.519664 0.523775 0.524128 0.524519 0.511683 0.515305 0.509743 0.510197 0.521572 +0.686502 +0.509973 0.489742 0.515581 0.509145 0.486405 0.496612 0.496776 0.485854 0.486765 0.500557 0.494256 0.503522 0.237386 0.920961 0.447322 0.762949 0.658810 0.519316 0.513021 0.516760 0.521800 0.512497 0.517226 0.518716 0.524600 0.510031 0.512154 0.519714 0.515509 0.513780 0.520856 0.521096 +0.317975 +0.511918 0.488915 0.504521 0.490335 0.512459 0.511935 0.485349 0.497936 0.497966 0.511486 0.499606 0.492110 0.738713 0.090018 0.695755 0.435173 0.945057 0.519864 0.513923 0.520245 0.512055 0.524371 0.520540 0.516206 0.513783 0.514422 0.521505 0.521336 0.521862 0.512158 0.518527 0.523642 +0.526947 +0.504301 0.506484 0.487629 0.510793 0.496792 0.507875 0.511143 0.493131 0.504128 0.484818 0.512629 0.508993 0.890120 0.060445 0.587948 0.882789 0.073938 0.523664 0.516790 0.510758 0.519344 0.522208 0.511823 0.512572 0.519583 0.520608 0.512678 0.523649 0.514827 0.523984 0.517712 0.520922 +0.089776 +0.489312 0.499260 0.506522 0.496731 0.515214 0.506377 0.511205 0.485318 0.506417 0.504997 0.486026 0.486004 0.855082 0.276692 0.296829 0.121930 0.035414 0.519559 0.510704 0.512538 0.523837 0.524363 0.516477 0.521592 0.509879 0.521336 0.516613 0.515698 0.515927 0.513120 0.514440 0.513574 +0.625142 +0.501725 0.508513 0.499261 0.495403 0.493212 0.513860 0.489725 0.488738 0.489418 0.494644 0.515812 0.486564 0.260658 0.315259 0.287450 0.781034 0.057307 0.523864 0.517078 0.522300 0.514868 0.513605 0.518983 0.513298 0.519137 0.513829 0.513531 0.512005 0.512893 0.511458 0.511636 0.513521 +0.269184 +0.499009 0.502714 0.485328 0.514912 0.499901 0.488799 0.505130 0.489047 0.491732 0.507980 0.484638 0.503239 0.185162 0.810638 0.686825 0.628673 0.073870 0.521564 0.523027 0.521400 0.514814 0.509776 0.518009 0.512371 0.523926 0.511937 0.520837 0.514023 0.521328 0.511640 0.522711 0.513243 +0.358438 +0.486650 0.516018 0.486921 0.505194 0.500493 0.485637 0.494749 0.515610 0.497359 0.505731 0.486272 0.494047 0.681291 0.777413 0.305726 0.363915 0.536864 0.523281 0.521513 0.520763 0.519892 0.521319 0.512469 0.516150 0.519693 0.516224 0.517239 0.521210 0.512745 0.518233 0.512749 0.521968 +0.635349 +0.490848 0.510482 0.492371 0.508808 0.489642 0.515092 0.501543 0.509987 0.512908 0.494050 0.497007 0.501349 0.353446 0.908749 0.572813 0.971908 0.114065 0.511274 0.517627 0.516680 0.518708 0.516532 0.513209 0.524577 0.513840 0.517805 0.524281 0.515950 0.520257 0.511338 0.511149 0.517624 +0.140603 +0.510872 0.497919 0.509040 0.510066 0.486555 0.487462 0.508038 0.512186 0.488142 0.511363 0.495312 0.497864 0.186693 0.496959 0.466268 0.589761 0.296318 0.517831 0.512335 0.521306 0.512569 0.520231 0.514247 0.512642 0.522672 0.509977 0.521141 0.518110 0.512543 0.517351 0.510597 0.518609 +0.487672 +0.490753 0.489694 0.506597 0.500145 0.496636 0.501452 0.515955 0.506653 0.494758 0.496552 0.499670 0.509558 0.726339 0.505313 0.607399 0.187189 0.808586 0.513536 0.521586 0.512251 0.517525 0.513985 0.521941 0.514522 0.513513 0.521645 0.512306 0.512281 0.512968 0.523046 0.510005 0.512492 +0.726874 +0.501749 0.504248 0.492725 0.493411 0.496649 0.491390 0.513456 0.490954 0.502349 0.494482 0.489565 0.496679 0.208568 0.462585 0.814815 0.755513 0.925010 0.515109 0.514206 0.511155 0.517763 0.513277 0.520357 0.511464 0.515431 0.521620 0.519271 0.516176 0.514414 0.516971 0.516543 0.511290 +0.284638 +0.499601 0.502191 0.515734 0.496007 0.504821 0.488696 0.504521 0.512463 0.487067 0.506360 0.513572 0.489925 0.675217 0.887791 0.992250 0.373815 0.620637 0.513488 0.524675 0.523905 0.512801 0.513232 0.515655 0.524003 0.510784 0.516006 0.518613 0.512406 0.520842 0.515147 0.512165 0.517366 +0.674115 +0.503430 0.497754 0.490736 0.512106 0.487661 0.488446 0.512288 0.499822 0.514906 0.498931 0.514221 0.506343 0.749993 0.318331 0.827559 0.549932 0.119754 0.517755 0.518281 0.510490 0.524137 0.513649 0.516140 0.515523 0.518887 0.520234 0.521920 0.515582 0.523521 0.520906 0.513232 0.513237 +0.518802 +0.493581 0.485642 0.509702 0.501838 0.487034 0.511614 0.504316 0.506786 0.498672 0.496756 0.498328 0.488486 0.301430 0.295088 0.918496 0.099146 0.816821 0.515710 0.522243 0.524204 0.511168 0.512075 0.518808 0.513647 0.523044 0.513432 0.521567 0.524554 0.518362 0.524054 0.517689 0.510836 +0.726744 +0.510488 0.497667 0.489623 0.510344 0.504507 0.498351 0.494116 0.503328 0.505771 0.501086 0.509140 0.498199 0.081788 0.626256 0.522001 0.560916 0.399086 0.518167 0.522618 0.520070 0.519662 0.520830 0.520113 0.524397 0.520249 0.523874 0.521384 0.511405 0.523092 0.521543 0.523317 0.519637 +0.451242 +0.501399 0.502684 0.514015 0.506791 0.514796 0.514091 0.485665 0.485430 0.494505 0.507492 0.502514 0.498020 0.717986 0.364997 0.689307 0.258958 0.793969 0.510414 0.512182 0.520710 0.517789 0.516012 0.523188 0.521941 0.517163 0.521771 0.512056 0.520272 0.523635 0.520626 0.513125 0.513436 +0.629697 +0.492105 0.488094 0.511580 0.493289 0.489562 0.507822 0.508530 0.504079 0.485312 0.501697 0.486363 0.500464 0.622090 0.631419 0.145216 0.686329 0.293273 0.516573 0.518565 0.515465 0.516442 0.514904 0.514562 0.511280 0.509671 0.516696 0.515605 0.518147 0.518742 0.522088 0.518307 0.521996 +0.421847 +0.503510 0.488933 0.494649 0.490542 0.494778 0.488426 0.499101 0.506587 0.493665 0.488654 0.485608 0.508856 0.852133 0.803064 0.618158 0.677360 0.844407 0.512406 0.519596 0.515370 0.514264 0.515790 0.510790 0.510510 0.515586 0.523267 0.523674 0.513152 0.514813 0.513834 0.510052 0.522764 +0.279770 +0.501273 0.505969 0.493861 0.505366 0.484900 0.504178 0.486245 0.510278 0.513164 0.499513 0.508375 0.511089 0.456823 0.152494 0.784775 0.805586 0.931198 0.512365 0.512525 0.522884 0.522512 0.519699 0.512340 0.518325 0.511551 0.523562 0.522818 0.509978 0.516977 0.521487 0.512158 0.521891 +0.366700 +0.508934 0.498969 0.495423 0.502732 0.504845 0.512828 0.515827 0.493698 0.510183 0.502967 0.516024 0.499209 0.349681 0.753080 0.103640 0.219924 0.981159 0.514480 0.518400 0.524279 0.509673 0.514389 0.510062 0.521948 0.511772 0.514630 0.511899 0.515468 0.519036 0.522801 0.511170 0.521397 +0.794708 +0.506482 0.491777 0.510385 0.486695 0.511219 0.511121 0.492552 0.508929 0.510674 0.510505 0.502014 0.499401 0.124746 0.277667 0.659866 0.361449 0.170222 0.512496 0.510899 0.521871 0.521054 0.521004 0.520927 0.511545 0.519975 0.517519 0.518884 0.514329 0.511268 0.510609 0.522764 0.519205 +0.544855 +0.508926 0.488034 0.514314 0.497129 0.513432 0.489486 0.491825 0.505480 0.515027 0.514194 0.490278 0.498107 0.827713 0.135684 0.781509 0.029767 0.939487 0.513176 0.514874 0.523885 0.510768 0.520190 0.515668 0.517748 0.520086 0.516714 0.518527 0.512323 0.521610 0.510497 0.517804 0.514231 +0.834219 +0.497178 0.512055 0.486839 0.511640 0.492375 0.515078 0.489231 0.494316 0.508732 0.511905 0.491266 0.509476 0.700805 0.141904 0.122083 0.608464 0.052983 0.515703 0.522329 0.521282 0.521002 0.521275 0.521453 0.522760 0.522254 0.511673 0.520533 0.515516 0.520142 0.516703 0.512135 0.511974 +0.437889 +0.502962 0.500016 0.496996 0.505535 0.506911 0.489528 0.509618 0.505867 0.498949 0.495510 0.515760 0.494468 0.746817 0.041773 0.349873 0.976817 0.468515 0.514087 0.522756 0.519256 0.521657 0.516966 0.511914 0.513517 0.510181 0.519913 0.522449 0.520666 0.521847 0.521303 0.521191 0.516165 +0.063423 +0.494932 0.504896 0.515042 0.513480 0.486785 0.511881 0.497288 0.496830 0.492545 0.485977 0.503438 0.513225 0.599878 0.011468 0.949828 0.707016 0.337138 0.514789 0.520848 0.524429 0.513550 0.511899 0.513955 0.517168 0.520576 0.511591 0.517647 0.517160 0.518001 0.523392 0.519528 0.510392 +0.401642 +0.485199 0.488757 0.496949 0.499407 0.514371 0.514416 0.506748 0.486404 0.511468 0.511279 0.513078 0.501309 0.027942 0.319412 0.971902 0.023189 0.584800 0.510628 0.520361 0.522131 0.520485 0.524523 0.523944 0.513159 0.516442 0.512423 0.515413 0.521934 0.515985 0.516855 0.514239 0.511813 +0.828684 +0.506666 0.491689 0.486260 0.512359 0.499940 0.500987 0.487519 0.514064 0.505914 0.485499 0.490924 0.488877 0.077115 0.226864 0.402729 0.681013 0.116453 0.511970 0.513669 0.514066 0.511970 0.523151 0.523063 0.511102 0.512186 0.514443 0.517376 0.522783 0.521837 0.519428 0.514156 0.517728 +0.280840 +0.493529 0.496599 0.510573 0.508466 0.502435 0.492040 0.492624 0.491504 0.485606 0.507951 0.495336 0.492117 0.516779 0.957289 0.878386 0.214655 0.573384 0.517875 0.522582 0.516322 0.514357 0.517065 0.523560 0.516077 0.515248 0.514424 0.516032 0.519787 0.519891 0.521053 0.510641 0.518084 +0.732395 +0.512708 0.502476 0.486051 0.487213 0.501857 0.500967 0.486845 0.485538 0.493497 0.488003 0.501399 0.510798 0.921298 0.098880 0.352785 0.822803 0.768556 0.520518 0.521634 0.516117 0.513977 0.515187 0.521864 0.512583 0.517604 0.514753 0.519387 0.515401 0.520988 0.522137 0.515537 0.522106 +0.119458 +0.499264 0.508239 0.493757 0.491368 0.489276 0.494110 0.501329 0.506780 0.490169 0.512923 0.510395 0.505676 0.905605 0.827579 0.890094 0.624554 0.965474 0.512550 0.511107 0.510708 0.512696 0.518965 0.514260 0.515610 0.512279 0.519523 0.512120 0.521145 0.510779 0.512984 0.520356 0.514983 +0.352616 +0.490207 0.505384 0.508866 0.492778 0.501784 0.505106 0.496471 0.501531 0.490894 0.501552 0.502815 0.509862 0.133217 0.394301 0.288911 0.279253 0.268208 0.524325 0.518612 0.513244 0.520662 0.519040 0.523560 0.522845 0.518411 0.522729 0.524496 0.513143 0.516696 0.523088 0.519526 0.524582 +0.661963 +0.491496 0.509122 0.507048 0.489076 0.496598 0.490957 0.512236 0.506394 0.487489 0.511944 0.504225 0.506034 0.027819 0.250321 0.905180 0.712703 0.753538 0.521428 0.511155 0.512803 0.515693 0.517922 0.515760 0.515530 0.518347 0.522386 0.524219 0.521770 0.523744 0.521230 0.513080 0.511894 +0.299975 +0.508472 0.504758 0.498436 0.507703 0.489049 0.494009 0.501105 0.485230 0.516032 0.510468 0.507333 0.501972 0.957329 0.551097 0.674497 0.810903 0.134379 0.523047 0.523786 0.519503 0.518408 0.511964 0.523579 0.522021 0.520875 0.510181 0.524413 0.511045 0.523564 0.515507 0.522448 0.517008 +0.255818 +0.489400 0.507385 0.491413 0.504295 0.489464 0.510485 0.513468 0.502348 0.498703 0.487116 0.507328 0.486997 0.160412 0.607974 0.833409 0.690029 0.366848 0.520929 0.512615 0.514929 0.523136 0.520520 0.513141 0.515882 0.512219 0.523600 0.511055 0.510034 0.519778 0.514149 0.523346 0.518050 +0.392218 +0.486307 0.512222 0.498926 0.489414 0.514789 0.487339 0.510836 0.512948 0.506102 0.495148 0.514415 0.490635 0.907951 0.197430 0.625124 0.534007 0.973137 0.520873 0.515982 0.522198 0.523067 0.523884 0.509671 0.518780 0.515655 0.519997 0.513267 0.520585 0.519865 0.516675 0.523176 0.521536 +0.549528 +0.501501 0.498717 0.508037 0.507538 0.488566 0.495096 0.486835 0.504631 0.504955 0.510171 0.515077 0.514376 0.576584 0.242775 0.310371 0.289660 0.853333 0.523724 0.515556 0.513878 0.518808 0.514938 0.517442 0.509952 0.516837 0.511335 0.519520 0.513755 0.510780 0.515015 0.520021 0.522267 +0.544738 +0.491271 0.501661 0.511697 0.514556 0.505842 0.498392 0.491783 0.487796 0.514897 0.505783 0.485820 0.502537 0.503725 0.964643 0.253607 0.030319 0.192376 0.522111 0.514904 0.522851 0.519098 0.517965 0.512848 0.521156 0.515225 0.512888 0.522502 0.510073 0.511265 0.521361 0.511845 0.513242 +1 +0.501968 0.513877 0.511073 0.505887 0.495899 0.486465 0.497507 0.507803 0.504652 0.509099 0.498087 0.486609 0.954094 0.269735 0.587067 0.090765 0.226828 0.521565 0.523843 0.515193 0.520052 0.513051 0.512108 0.515541 0.515320 0.520126 0.516301 0.520255 0.520552 0.513126 0.510279 0.516904 +0.886442 +0.508272 0.514093 0.486845 0.490948 0.496518 0.491632 0.494837 0.501343 0.489020 0.496809 0.514124 0.512574 0.362569 0.963213 0.257763 0.753231 0.629599 0.518663 0.511871 0.514462 0.518851 0.519883 0.521234 0.510321 0.510106 0.511361 0.517148 0.510227 0.514826 0.512871 0.519938 0.515660 +0.256928 +0.487394 0.496948 0.513667 0.514618 0.500079 0.508955 0.508206 0.508733 0.494761 0.489621 0.504075 0.508360 0.811648 0.635782 0.334415 0.651267 0.111420 0.520674 0.513263 0.521132 0.517474 0.523908 0.523116 0.510974 0.523291 0.517927 0.522108 0.511328 0.522888 0.521588 0.520063 0.524024 +0.402503 +0.506579 0.512052 0.495673 0.496394 0.495888 0.509466 0.508989 0.513454 0.513284 0.500615 0.485190 0.503031 0.196482 0.715519 0.994537 0.738320 0.494893 0.521746 0.515732 0.518984 0.513233 0.520728 0.519141 0.513698 0.513736 0.524446 0.510993 0.519006 0.519674 0.513314 0.518587 0.512693 +0.310274 +0.514137 0.515469 0.513189 0.509548 0.502836 0.490218 0.488500 0.504844 0.502139 0.513236 0.509657 0.506328 0.148291 0.263736 0.963556 0.014671 0.685423 0.511252 0.511878 0.523284 0.518369 0.514542 0.509737 0.519593 0.521490 0.524146 0.517106 0.517499 0.517578 0.519385 0.520857 0.514653 +0.929894 +0.499390 0.489851 0.486621 0.501773 0.498601 0.511682 0.508507 0.501831 0.503864 0.512040 0.492718 0.490454 0.096285 0.827556 0.491101 0.191863 0.231688 0.514495 0.520219 0.511352 0.514014 0.523323 0.519115 0.518875 0.513981 0.519199 0.519595 0.517592 0.519063 0.523143 0.518740 0.519042 +0.774268 +0.493236 0.512079 0.515685 0.494843 0.513376 0.498188 0.486904 0.496862 0.494278 0.493974 0.487538 0.490474 0.242104 0.053289 0.541744 0.763095 0.119814 0.517728 0.510181 0.520384 0.519576 0.523661 0.520251 0.517287 0.520163 0.522382 0.516910 0.519166 0.521770 0.523178 0.518666 0.521508 +0.293723 +0.492383 0.495212 0.485849 0.502101 0.515594 0.505438 0.496869 0.515727 0.512428 0.494145 0.498977 0.508357 0.140946 0.046024 0.652517 0.073254 0.467133 0.511327 0.510540 0.521275 0.516348 0.520737 0.514172 0.514803 0.510068 0.523247 0.521983 0.520230 0.519621 0.519852 0.517669 0.520246 +0.673750 +0.500882 0.506398 0.499334 0.487181 0.495122 0.515965 0.508005 0.499888 0.490980 0.498550 0.502194 0.496929 0.986932 0.160072 0.903396 0.784197 0.122097 0.522425 0.519863 0.513721 0.518874 0.514393 0.516513 0.519110 0.524276 0.515264 0.521186 0.514739 0.517541 0.515084 0.523206 0.513048 +0.263141 +0.515326 0.502633 0.511327 0.490100 0.496309 0.503660 0.485829 0.499798 0.510548 0.490350 0.485863 0.501399 0.947157 0.899115 0.960603 0.479547 0.354670 0.516389 0.521112 0.523743 0.522800 0.517810 0.510142 0.515202 0.518863 0.515968 0.511052 0.515504 0.522398 0.512337 0.513152 0.518002 +0.451999 +0.492465 0.515856 0.509574 0.487443 0.507546 0.501879 0.495175 0.495666 0.492616 0.505302 0.515101 0.505645 0.193506 0.789180 0.717481 0.908549 0.219207 0.523880 0.523925 0.518584 0.524516 0.519118 0.523016 0.513746 0.511281 0.519671 0.516702 0.520752 0.514051 0.511744 0.522161 0.517834 +0.157584 +0.506396 0.488238 0.507307 0.504193 0.487140 0.513231 0.514789 0.514568 0.485949 0.502041 0.508692 0.489552 0.623511 0.471480 0.030658 0.883742 0.061402 0.519314 0.522730 0.520485 0.519270 0.517624 0.518206 0.510099 0.514737 0.512740 0.517274 0.511945 0.510950 0.523073 0.516677 0.516764 +0.303656 +0.499839 0.507091 0.499780 0.500431 0.511744 0.490543 0.513738 0.507156 0.489572 0.499011 0.513401 0.504628 0.102117 0.666758 0.976017 0.048557 0.155707 0.519794 0.510820 0.513156 0.519529 0.523689 0.514853 0.523861 0.524106 0.524243 0.520288 0.516992 0.510467 0.522581 0.519498 0.517365 +0.826805 +0.509241 0.498613 0.486226 0.504137 0.508549 0.512587 0.488247 0.507871 0.511813 0.515025 0.490695 0.511984 0.948711 0.981363 0.740659 0.731919 0.114672 0.513884 0.515592 0.516404 0.524671 0.514320 0.511156 0.514532 0.516552 0.522951 0.522157 0.512758 0.516789 0.513361 0.511857 0.516956 +0.387793 +0.511644 0.500180 0.506593 0.497802 0.511188 0.485642 0.507689 0.512422 0.509208 0.506214 0.513497 0.510042 0.091471 0.060326 0.584360 0.682501 0.089063 0.519631 0.523645 0.519361 0.510178 0.520961 0.517878 0.510767 0.518594 0.510556 0.520906 0.514653 0.523958 0.518449 0.518810 0.524432 +0.353282 +0.514766 0.512663 0.507667 0.506172 0.497452 0.498804 0.512611 0.489439 0.495830 0.515143 0.487546 0.495287 0.006651 0.149980 0.602709 0.509045 0.214070 0.521300 0.514777 0.510955 0.521931 0.513501 0.511085 0.521955 0.519628 0.511771 0.521177 0.524073 0.519980 0.515114 0.510095 0.523990 +0.417331 +0.484865 0.514062 0.504697 0.507511 0.501262 0.499277 0.510056 0.504157 0.509242 0.509540 0.514073 0.500879 0.020884 0.911512 0.926871 0.591331 0.624489 0.522815 0.513195 0.519250 0.520758 0.521262 0.514533 0.513206 0.510953 0.521631 0.522863 0.515425 0.510467 0.518232 0.519433 0.520767 +0.401916 +0.511985 0.507528 0.500622 0.486411 0.497129 0.510179 0.490855 0.499119 0.490530 0.509004 0.502987 0.514697 0.019323 0.718471 0.516700 0.636307 0.136773 0.510277 0.520319 0.515462 0.513500 0.517867 0.510354 0.515613 0.522982 0.521555 0.519213 0.511966 0.521130 0.512086 0.524104 0.511848 +0.307245 +0.512490 0.496424 0.496234 0.485694 0.493266 0.507418 0.514109 0.503927 0.513137 0.508747 0.500942 0.510202 0.490186 0.844750 0.950543 0.702531 0.093801 0.511948 0.517979 0.517537 0.514431 0.520398 0.514327 0.512314 0.511706 0.510617 0.511485 0.510725 0.516216 0.522923 0.514487 0.520729 +0.305248 +0.492638 0.496014 0.490957 0.510773 0.500007 0.501967 0.514363 0.500932 0.493488 0.504462 0.499505 0.502333 0.571332 0.133550 0.970351 0.997466 0.886355 0.523077 0.519584 0.516419 0.519745 0.516760 0.522746 0.517469 0.510603 0.509733 0.523298 0.522320 0.520460 0.515611 0.520897 0.514598 +0.002088 +0.514627 0.493964 0.504487 0.513206 0.505679 0.494533 0.500815 0.485734 0.512368 0.485051 0.492965 0.487786 0.638598 0.566287 0.495559 0.983612 0.459324 0.511181 0.524169 0.518554 0.511095 0.513376 0.517576 0.521878 0.511576 0.520723 0.520496 0.511007 0.514426 0.517066 0.522050 0.514590 +0.104617 +0.504963 0.512902 0.492122 0.490189 0.485985 0.487963 0.490895 0.484633 0.508269 0.492604 0.497019 0.484996 0.931545 0.003981 0.347881 0.562907 0.795589 0.513052 0.516983 0.522788 0.519988 0.521156 0.524352 0.510762 0.522433 0.511348 0.524320 0.522995 0.524624 0.522522 0.511806 0.514979 +0.428100 +0.506045 0.500850 0.501952 0.513893 0.494915 0.505057 0.494804 0.491196 0.502084 0.497671 0.490024 0.513464 0.675601 0.325267 0.182920 0.203910 0.324116 0.522853 0.511959 0.511799 0.522368 0.509838 0.512720 0.518805 0.514793 0.519933 0.510170 0.516663 0.512697 0.522117 0.513170 0.510655 +0.713952 +0.506933 0.485165 0.515895 0.497549 0.484654 0.492706 0.487376 0.501418 0.485550 0.502841 0.488503 0.506186 0.261481 0.119852 0.186382 0.274731 0.401596 0.519782 0.513556 0.524399 0.522542 0.513126 0.513020 0.520286 0.520593 0.517840 0.511269 0.514085 0.524317 0.517650 0.524467 0.513770 +0.618994 +0.491832 0.513825 0.484782 0.499023 0.490292 0.509449 0.507392 0.514891 0.498000 0.508971 0.487005 0.508749 0.780456 0.365100 0.420016 0.681554 0.201350 0.515320 0.514864 0.523865 0.523247 0.519515 0.519033 0.521009 0.523573 0.520874 0.515009 0.511556 0.520939 0.516751 0.521932 0.511245 +0.386044 +0.501415 0.498116 0.504416 0.489165 0.488999 0.492409 0.501051 0.514934 0.495915 0.490613 0.490811 0.486044 0.673089 0.190780 0.057996 0.501760 0.007051 0.522575 0.509713 0.518231 0.521446 0.523170 0.512091 0.513216 0.515303 0.522766 0.521012 0.510728 0.524669 0.513057 0.510949 0.524438 +0.529753 +0.503305 0.507194 0.493707 0.488969 0.498394 0.486558 0.485586 0.509054 0.495565 0.509185 0.494002 0.505765 0.145082 0.437547 0.776080 0.942148 0.876864 0.519852 0.523952 0.518779 0.516643 0.513159 0.511149 0.523318 0.510521 0.524612 0.523204 0.519215 0.523972 0.515394 0.522024 0.524496 +0.100231 +0.504360 0.508628 0.511014 0.496157 0.500816 0.496925 0.509008 0.513548 0.490892 0.492456 0.490060 0.511368 0.999446 0.096980 0.492341 0.985228 0.571037 0.512342 0.520796 0.510604 0.514713 0.521693 0.522641 0.520068 0.516134 0.523109 0.510986 0.514028 0.516946 0.517716 0.517234 0.523950 +0.035112 +0.507256 0.491703 0.488871 0.508649 0.487886 0.485164 0.492075 0.515142 0.499653 0.506855 0.502284 0.504081 0.910307 0.719247 0.519866 0.752321 0.377807 0.518616 0.517169 0.512981 0.521207 0.520544 0.516514 0.518400 0.514629 0.520480 0.512137 0.512055 0.522646 0.512608 0.516589 0.514702 +0.273309 +0.488600 0.501641 0.493671 0.487963 0.488802 0.513866 0.487960 0.507519 0.512079 0.511652 0.486232 0.505220 0.328396 0.673497 0.026504 0.186203 0.281682 0.509820 0.513618 0.514369 0.512784 0.519259 0.521937 0.523986 0.514840 0.514458 0.520094 0.511849 0.520544 0.516563 0.510234 0.511933 +0.723937 +0.490855 0.502122 0.512836 0.488233 0.498657 0.498902 0.502570 0.493613 0.492016 0.504056 0.513354 0.506599 0.433776 0.515813 0.759413 0.350301 0.150483 0.510403 0.520822 0.515598 0.518320 0.511801 0.523128 0.524157 0.522327 0.518861 0.518976 0.520812 0.511159 0.516464 0.514091 0.522361 +0.677679 +0.495902 0.495239 0.496223 0.487458 0.499775 0.504029 0.489949 0.506118 0.505363 0.500660 0.486473 0.500221 0.668680 0.219787 0.681451 0.464886 0.406165 0.514522 0.524230 0.519797 0.520627 0.520627 0.513197 0.518657 0.520836 0.516255 0.523699 0.519060 0.519818 0.521009 0.518126 0.512802 +0.426716 +0.502498 0.503687 0.510187 0.506031 0.501822 0.504216 0.487176 0.515425 0.501569 0.503906 0.502803 0.503690 0.060823 0.928526 0.355541 0.055280 0.938513 0.523100 0.516211 0.514347 0.512222 0.512364 0.517797 0.511249 0.523878 0.516476 0.523685 0.513836 0.522242 0.522781 0.522548 0.518668 +0.918617 +0.512172 0.506954 0.490081 0.515486 0.494974 0.512216 0.490157 0.511948 0.509780 0.491158 0.488173 0.497006 0.941204 0.042218 0.814375 0.381989 0.751367 0.515203 0.523872 0.520532 0.510227 0.522583 0.512745 0.523800 0.523807 0.519635 0.516366 0.517614 0.519573 0.523985 0.515535 0.522151 +0.665200 +0.493336 0.493508 0.495272 0.510334 0.515672 0.496837 0.503641 0.510842 0.491070 0.490809 0.511019 0.510021 0.074094 0.554580 0.103702 0.259355 0.461536 0.512947 0.513213 0.517586 0.512947 0.523693 0.518960 0.520765 0.513063 0.512269 0.519909 0.513363 0.522724 0.519976 0.514853 0.521104 +0.694321 +0.508948 0.490562 0.509200 0.498358 0.507912 0.506533 0.500086 0.513251 0.510151 0.488204 0.486268 0.491708 0.774556 0.386488 0.215944 0.202244 0.374860 0.511979 0.521762 0.514772 0.520796 0.509686 0.517959 0.517858 0.519291 0.523359 0.513197 0.519649 0.522739 0.520224 0.513749 0.523468 +0.766932 +0.495181 0.493302 0.514547 0.508066 0.486877 0.485825 0.493363 0.498577 0.486992 0.503447 0.498865 0.500139 0.794828 0.456002 0.381436 0.472196 0.033481 0.513164 0.511119 0.523387 0.523939 0.522418 0.510420 0.513516 0.514919 0.518267 0.520134 0.523050 0.517747 0.513484 0.522898 0.513231 +0.498179 +0.498994 0.512136 0.488581 0.513845 0.505099 0.507769 0.503716 0.490982 0.488178 0.512145 0.487031 0.506902 0.198303 0.259859 0.908521 0.748094 0.455448 0.510871 0.515058 0.523727 0.521567 0.511320 0.516772 0.513708 0.510502 0.513264 0.510008 0.519151 0.520396 0.524275 0.517152 0.523056 +0.266273 +0.499131 0.505231 0.495412 0.512462 0.505076 0.494348 0.500689 0.500915 0.499927 0.506709 0.495451 0.513352 0.561799 0.201938 0.241360 0.571701 0.319199 0.515488 0.524269 0.516018 0.515143 0.518807 0.518116 0.514449 0.514030 0.519001 0.514882 0.511647 0.512866 0.521677 0.516092 0.513517 +0.507277 +0.500664 0.503926 0.489865 0.507723 0.506834 0.511108 0.494224 0.505855 0.497502 0.514764 0.502444 0.485905 0.194452 0.662936 0.867317 0.514667 0.522847 0.520944 0.514140 0.521345 0.523604 0.511921 0.516405 0.510120 0.520974 0.520912 0.510310 0.515200 0.514219 0.514167 0.522163 0.509748 +0.515839 +0.510757 0.514333 0.507457 0.510109 0.508631 0.501765 0.491222 0.491166 0.508029 0.498289 0.496103 0.509311 0.721347 0.752186 0.096611 0.300536 0.308234 0.516343 0.518684 0.510362 0.513140 0.514068 0.513331 0.521650 0.512785 0.517982 0.510916 0.518256 0.513560 0.523664 0.512416 0.518002 +0.755172 +0.510735 0.485003 0.500427 0.510610 0.492111 0.514009 0.500617 0.489726 0.502499 0.488283 0.514300 0.487915 0.505501 0.759650 0.321621 0.027782 0.636589 0.522771 0.511737 0.511628 0.513075 0.518884 0.520726 0.520669 0.524522 0.519679 0.519315 0.512645 0.521044 0.520366 0.517668 0.512290 +0.829937 +0.508240 0.488222 0.493276 0.489151 0.504104 0.498902 0.494860 0.485294 0.485653 0.497517 0.508718 0.486408 0.891092 0.371042 0.101394 0.528295 0.151959 0.521646 0.520126 0.513469 0.512269 0.524638 0.513407 0.509716 0.517920 0.515422 0.523056 0.510703 0.517803 0.522584 0.516047 0.516385 +0.450511 +0.504797 0.492223 0.512452 0.513261 0.494421 0.508754 0.496679 0.490899 0.486632 0.497185 0.497831 0.499214 0.019480 0.366442 0.930344 0.856669 0.891769 0.520598 0.517685 0.515163 0.520023 0.510767 0.518978 0.514465 0.514670 0.518329 0.519174 0.521688 0.517051 0.517917 0.512732 0.521988 +0.243288 +0.503568 0.513124 0.511291 0.490796 0.515865 0.506820 0.496777 0.511533 0.495838 0.495283 0.508157 0.498908 0.857875 0.132561 0.378469 0.695947 0.654432 0.512667 0.514210 0.513956 0.521864 0.514925 0.519125 0.513286 0.517163 0.518266 0.512693 0.523364 0.520140 0.520680 0.510079 0.513788 +0.439012 +0.505255 0.505657 0.501552 0.493826 0.507440 0.503007 0.495119 0.501836 0.485273 0.500867 0.511200 0.507003 0.425398 0.975423 0.081353 0.337492 0.271706 0.519583 0.510414 0.515730 0.514312 0.522648 0.519978 0.521056 0.513915 0.517264 0.515706 0.521336 0.522403 0.517221 0.522971 0.519253 +0.646835 +0.489819 0.485629 0.514727 0.510121 0.490985 0.506019 0.488848 0.501268 0.511068 0.509730 0.501804 0.496604 0.500546 0.634117 0.402488 0.626085 0.652486 0.517888 0.517936 0.519473 0.522241 0.512307 0.516269 0.524487 0.519399 0.519563 0.523634 0.515512 0.510697 0.513925 0.520005 0.515420 +0.372313 +0.485083 0.496157 0.503018 0.495283 0.512520 0.492529 0.488975 0.508039 0.508279 0.512959 0.513201 0.492549 0 0.566818 0.400915 0.252931 0.688611 0.518414 0.515847 0.519014 0.518673 0.513600 0.521012 0.519323 0.517767 0.515565 0.512919 0.513858 0.519731 0.524484 0.519500 0.509687 +0.647762 +0.505477 0.502724 0.494282 0.500770 0.486016 0.500323 0.489259 0.487943 0.501949 0.507902 0.499785 0.488544 0.307646 0.574699 0.614798 0.304826 0.279080 0.515184 0.515117 0.520591 0.511289 0.510003 0.512407 0.521546 0.524555 0.520032 0.509857 0.518056 0.510172 0.514645 0.520273 0.510382 +0.616801 +0.501620 0.514296 0.504668 0.490716 0.487425 0.512629 0.505329 0.497085 0.490518 0.504305 0.500417 0.493291 0.189885 0.040037 0.218019 0.021582 0.625530 0.514842 0.515900 0.516193 0.517778 0.516274 0.513491 0.522299 0.510092 0.514534 0.510607 0.511295 0.522907 0.518474 0.510054 0.523961 +0.808322 +0.487144 0.510878 0.503401 0.487224 0.506067 0.504451 0.504444 0.512854 0.514489 0.515798 0.510119 0.499611 0.893393 0.963820 0.436131 0.014585 0.238281 0.523526 0.513928 0.515103 0.512577 0.519687 0.512065 0.516592 0.521853 0.520431 0.514342 0.515311 0.511627 0.520496 0.510185 0.520728 +0.901231 +0.492837 0.514804 0.513537 0.504829 0.501210 0.486438 0.507821 0.493862 0.514130 0.515838 0.494162 0.496098 0.140362 0.255648 0.273460 0.082020 0.528161 0.523113 0.521281 0.511150 0.520493 0.524256 0.514041 0.515578 0.520239 0.520916 0.512868 0.515044 0.514319 0.521865 0.511540 0.522818 +0.941185 +0.488402 0.495897 0.506018 0.497125 0.508130 0.492259 0.490081 0.496832 0.491329 0.495818 0.504198 0.507884 0.530590 0.645337 0.627618 0.375032 0.031286 0.515798 0.522263 0.524288 0.510504 0.521376 0.512550 0.520077 0.520027 0.520593 0.509803 0.524665 0.510069 0.523983 0.509864 0.513945 +0.557373 +0.492105 0.511529 0.492564 0.511415 0.502516 0.497561 0.492349 0.496084 0.514546 0.496696 0.493666 0.493955 0.988884 0.908829 0.920399 0.018091 0.056725 0.512230 0.515220 0.524687 0.511489 0.511338 0.512448 0.516333 0.511707 0.519546 0.518705 0.515408 0.518871 0.511223 0.523509 0.515835 +0.865506 +0.485967 0.493862 0.491708 0.488936 0.502068 0.491408 0.511986 0.491697 0.491238 0.485870 0.495637 0.509603 0.859070 0.169825 0.528556 0.531211 0.059481 0.515756 0.511387 0.519654 0.511494 0.522845 0.514726 0.515613 0.518762 0.514878 0.513753 0.513347 0.518790 0.511535 0.510372 0.512040 +0.433086 +0.514472 0.511096 0.510492 0.503051 0.512095 0.500020 0.504672 0.503526 0.509766 0.510365 0.497944 0.485421 0.523415 0.291141 0.703970 0.243523 0.860662 0.522758 0.521117 0.510808 0.514872 0.518340 0.521218 0.521233 0.511655 0.520035 0.520461 0.516985 0.514920 0.513700 0.519696 0.516097 +0.609988 +0.514664 0.515890 0.490199 0.487434 0.510808 0.491533 0.508404 0.496019 0.508261 0.494571 0.506036 0.513876 0.379950 0.545706 0.229346 0.039161 0.525113 0.521225 0.509868 0.523341 0.511992 0.516447 0.516757 0.511118 0.516349 0.516994 0.524033 0.515763 0.511634 0.514502 0.514124 0.517071 +0.826505 +0.485117 0.492485 0.484900 0.502474 0.514259 0.509232 0.500566 0.492698 0.509048 0.495299 0.496946 0.487799 0.644367 0.353874 0.087755 0.731435 0.987338 0.524371 0.522578 0.524469 0.523404 0.520535 0.519344 0.514764 0.511090 0.523061 0.521634 0.512039 0.514860 0.517307 0.518337 0.510010 +0.386279 diff --git a/lib/ann/fann/datasets/pumadyn-32fm.train b/lib/ann/fann/datasets/pumadyn-32fm.train new file mode 100644 index 0000000..b653d5c --- /dev/null +++ b/lib/ann/fann/datasets/pumadyn-32fm.train @@ -0,0 +1,1025 @@ +512 32 1 +0.498269 0.504242 0.506082 0.487372 0.510318 0.508359 0.494984 0.501905 0.515505 0.506996 0.485131 0.491846 0.554399 0.906487 0.087160 0.798161 0.801248 0.519176 0.514313 0.521340 0.511153 0.520074 0.511491 0.521991 0.518095 0.517848 0.514485 0.524611 0.519302 0.520366 0.512371 0.513851 +0.181850 +0.512709 0.514805 0.493150 0.507932 0.495111 0.499882 0.501844 0.496965 0.501079 0.498773 0.509834 0.510635 0.147731 0.071215 0.018723 0.430394 0.296890 0.511823 0.513523 0.518837 0.514374 0.510593 0.517817 0.511509 0.518746 0.510325 0.523217 0.516729 0.514604 0.516143 0.524309 0.518164 +0.513030 +0.492235 0.503629 0.509939 0.488376 0.504457 0.498589 0.506898 0.492719 0.498866 0.501466 0.506501 0.485206 0.049327 0.409767 0.862031 0.461528 0.178780 0.517485 0.520046 0.518032 0.514910 0.511791 0.522487 0.520037 0.516224 0.519852 0.521148 0.515083 0.518520 0.510537 0.512012 0.517274 +0.512916 +0.511575 0.506311 0.512400 0.504507 0.492874 0.501559 0.499689 0.499366 0.511568 0.515205 0.497376 0.489386 0.759788 0.338828 0.471865 0.771146 0.097424 0.512360 0.521909 0.524484 0.517282 0.522218 0.517879 0.514518 0.518304 0.521569 0.518450 0.522786 0.524485 0.511543 0.523292 0.519177 +0.285673 +0.494979 0.512469 0.508370 0.500508 0.494316 0.494657 0.502490 0.507172 0.487050 0.511286 0.491781 0.486167 0.811350 0.304702 0.344770 0.265990 0.185000 0.524381 0.513116 0.515305 0.515066 0.522682 0.522962 0.510809 0.515893 0.516482 0.510493 0.516772 0.523583 0.523971 0.520338 0.517318 +0.710945 +0.490564 0.493333 0.506520 0.492047 0.496133 0.495891 0.488366 0.493057 0.493362 0.514935 0.485306 0.499494 0.578514 0.914677 0.631445 0.869837 0.576362 0.521190 0.516219 0.510314 0.522411 0.524573 0.511222 0.516810 0.515298 0.524435 0.519530 0.520431 0.521122 0.514547 0.509613 0.515987 +0.208629 +0.507525 0.508040 0.507119 0.502846 0.493960 0.515873 0.490318 0.514757 0.511636 0.495875 0.508674 0.510021 0.779671 0.265563 0.019853 0.402753 0.072768 0.511124 0.509957 0.512217 0.519179 0.521459 0.523385 0.524335 0.519726 0.522029 0.521895 0.513493 0.520039 0.510299 0.517559 0.520597 +0.571888 +0.513090 0.505359 0.507982 0.511559 0.495342 0.498733 0.494008 0.500967 0.514981 0.503705 0.507597 0.485312 0.626630 0.000717 0.024799 0.475764 0.267468 0.509840 0.517944 0.514884 0.522008 0.519111 0.510518 0.513877 0.520784 0.520287 0.514153 0.521171 0.512448 0.514170 0.518365 0.517317 +0.519718 +0.488925 0.494426 0.487598 0.504224 0.508898 0.504361 0.496453 0.500783 0.504605 0.503407 0.485987 0.510553 0.488949 0.702800 0.242473 0.225865 0.303051 0.518880 0.510814 0.520092 0.513277 0.519758 0.513093 0.514226 0.516825 0.511921 0.519939 0.522244 0.510175 0.516594 0.521499 0.513955 +0.724133 +0.485761 0.511116 0.487967 0.488666 0.502977 0.499940 0.500925 0.495050 0.495645 0.509928 0.514824 0.509242 0.750020 0.289232 0.531652 0.872789 0.140391 0.521537 0.515796 0.518324 0.518177 0.512763 0.515308 0.519494 0.516234 0.516957 0.509859 0.516945 0.514384 0.514075 0.512825 0.518182 +0.202118 +0.495106 0.494699 0.489824 0.514703 0.488535 0.500400 0.511886 0.512240 0.489451 0.500666 0.515112 0.499572 0.184855 0.550651 0.957197 0.746229 0.624368 0.509706 0.517813 0.511445 0.522786 0.519394 0.510665 0.517272 0.517004 0.518945 0.524519 0.520348 0.517193 0.517282 0.517120 0.522567 +0.348620 +0.495552 0.486265 0.493108 0.506719 0.501958 0.507358 0.496506 0.508282 0.489475 0.501581 0.488815 0.501843 0.164962 0.464414 0.641588 0.211571 0.238785 0.513872 0.513195 0.522756 0.519690 0.522085 0.519858 0.522169 0.516866 0.524351 0.520157 0.518441 0.516469 0.519169 0.511241 0.517249 +0.792014 +0.494491 0.508072 0.486161 0.502875 0.504375 0.509370 0.487532 0.504330 0.498850 0.490940 0.506217 0.501983 0.170322 0.481596 0.210642 0.638997 0.694825 0.514219 0.515765 0.519437 0.518854 0.524118 0.521689 0.524290 0.521677 0.520863 0.516778 0.517108 0.509864 0.517542 0.523798 0.518452 +0.417385 +0.506226 0.514265 0.501162 0.511159 0.491752 0.507309 0.512656 0.502589 0.513232 0.495131 0.484728 0.501880 0.987680 0.692897 0.931906 0.995375 0.935578 0.519513 0.520686 0.519001 0.521238 0.514236 0.516116 0.514748 0.519642 0.523747 0.521670 0.513779 0.514429 0.511032 0.524072 0.511359 +0.125894 +0.495941 0.506629 0.503790 0.485725 0.509484 0.508984 0.499382 0.499631 0.499722 0.495757 0.503091 0.485733 0.621062 0.482134 0.239962 0.047818 0.065789 0.522843 0.510171 0.514200 0.510865 0.517837 0.516015 0.510231 0.523386 0.516469 0.522508 0.515803 0.521802 0.520131 0.514592 0.509638 +0.937040 +0.488865 0.492756 0.493070 0.488202 0.511534 0.514703 0.505966 0.513673 0.500360 0.499329 0.490344 0.514328 0.674207 0.029306 0.161157 0.549391 0.800308 0.522396 0.523651 0.521342 0.523452 0.521026 0.519700 0.515410 0.522127 0.511337 0.518595 0.524089 0.524079 0.510140 0.515283 0.523553 +0.406153 +0.497593 0.489045 0.496300 0.505050 0.499693 0.503203 0.489165 0.502085 0.492831 0.490691 0.502574 0.486569 0.530104 0.878000 0.664340 0.320693 0.894976 0.521105 0.516031 0.516832 0.524486 0.516246 0.522716 0.517110 0.513513 0.516250 0.513077 0.522290 0.515511 0.512225 0.517911 0.521964 +0.651191 +0.485309 0.495150 0.491950 0.504075 0.496209 0.497170 0.515897 0.492851 0.492360 0.501841 0.512288 0.506283 0.588443 0.657758 0.773881 0.029866 0.570429 0.511396 0.511052 0.516537 0.512115 0.518328 0.518892 0.516024 0.514435 0.513686 0.515621 0.520859 0.521186 0.510208 0.513964 0.509963 +0.914148 +0.485180 0.495543 0.488409 0.495252 0.507957 0.509611 0.511352 0.503166 0.498660 0.500859 0.512018 0.503514 0.564490 0.380013 0.158440 0.922630 0.201856 0.510694 0.516907 0.512668 0.514912 0.522144 0.521495 0.521584 0.516188 0.511636 0.515276 0.523910 0.519164 0.516531 0.515526 0.520898 +0.179945 +0.512805 0.487290 0.514685 0.487151 0.510521 0.516027 0.514125 0.505235 0.489142 0.485451 0.486094 0.508040 0.749327 0.648313 0.147613 0.092216 0.716438 0.513961 0.520577 0.524020 0.511802 0.519784 0.512473 0.521316 0.516029 0.522725 0.515429 0.524552 0.522065 0.523089 0.520018 0.513306 +0.782247 +0.505510 0.499101 0.498413 0.493350 0.504654 0.511296 0.508254 0.492845 0.504261 0.515676 0.513498 0.507383 0.934300 0.205849 0.147471 0.711985 0.499579 0.512884 0.522584 0.518009 0.515450 0.513664 0.519971 0.524091 0.510585 0.511768 0.512016 0.514244 0.515743 0.517267 0.513377 0.519478 +0.277697 +0.500845 0.503278 0.493141 0.492137 0.499891 0.494745 0.501850 0.511649 0.496222 0.495343 0.498280 0.488246 0.410590 0.695524 0.051726 0.700490 0.445823 0.515873 0.511941 0.521170 0.519496 0.515755 0.511761 0.513966 0.522850 0.510070 0.521876 0.517243 0.518376 0.514430 0.517942 0.524078 +0.361101 +0.488988 0.509031 0.506893 0.500596 0.502555 0.503739 0.503841 0.491672 0.503215 0.497186 0.493774 0.492054 0.891496 0.327971 0.127201 0.280805 0.998940 0.521703 0.517587 0.518020 0.510050 0.522326 0.520965 0.516430 0.523207 0.518950 0.512120 0.522385 0.512085 0.510379 0.514417 0.520556 +0.608221 +0.495385 0.504744 0.486050 0.501747 0.513430 0.499600 0.512165 0.495134 0.507799 0.494022 0.485675 0.502951 0.652710 0.994555 0.152232 0.671191 0.385038 0.517942 0.516235 0.513990 0.519596 0.515811 0.517198 0.512506 0.518118 0.520511 0.522233 0.513471 0.515445 0.510457 0.510851 0.519464 +0.427329 +0.507554 0.487514 0.488893 0.487861 0.505031 0.500546 0.511486 0.492162 0.505447 0.506090 0.503593 0.495853 0.872795 0.253910 0.303917 0.156197 0.256125 0.517101 0.521686 0.513277 0.511466 0.512063 0.523544 0.517051 0.523263 0.514560 0.515398 0.510917 0.510295 0.513103 0.514553 0.511042 +0.886839 +0.513186 0.508092 0.505169 0.494382 0.500524 0.510911 0.506873 0.485878 0.490969 0.506924 0.488626 0.497381 0.733204 0.874792 0.790571 0.329952 0.408175 0.511464 0.520991 0.518338 0.510681 0.512547 0.510177 0.520142 0.514418 0.513264 0.523444 0.510949 0.510577 0.523324 0.522125 0.514513 +0.635315 +0.489756 0.500822 0.494004 0.491551 0.490609 0.498117 0.498526 0.485127 0.488768 0.503041 0.496790 0.484653 0.474400 0.353104 0.234437 0.268838 0.021722 0.521658 0.512585 0.517535 0.523147 0.516243 0.510370 0.511540 0.510580 0.511583 0.515382 0.524449 0.514595 0.522487 0.515546 0.516601 +0.722278 +0.509984 0.487243 0.493659 0.490375 0.494512 0.485603 0.497496 0.515639 0.491890 0.496116 0.506624 0.488668 0.900178 0.126672 0.391054 0.592769 0.321717 0.511145 0.522296 0.513075 0.520333 0.517777 0.523035 0.510658 0.517347 0.516510 0.513690 0.514516 0.523755 0.515693 0.512981 0.513894 +0.405485 +0.503038 0.509396 0.507455 0.491416 0.509507 0.496017 0.497279 0.486287 0.512245 0.486924 0.510205 0.493766 0.367115 0.535797 0.494028 0.998351 0.907841 0.522023 0.511500 0.515314 0.523409 0.514580 0.521802 0.524421 0.520077 0.516236 0.516184 0.518393 0.513797 0.510592 0.520992 0.522007 +0.113350 +0.497848 0.492595 0.495215 0.486481 0.514197 0.504172 0.495634 0.508576 0.493855 0.515397 0.511226 0.488481 0.918519 0.171621 0.290071 0.623723 0.182855 0.524184 0.510347 0.516281 0.511294 0.512098 0.516244 0.523151 0.524516 0.518797 0.512922 0.518609 0.514705 0.513646 0.522693 0.515196 +0.351649 +0.494738 0.507315 0.489012 0.485145 0.504426 0.486393 0.499475 0.486168 0.503354 0.513127 0.493968 0.497666 0.064098 0.493791 0.018883 0.121139 0.460860 0.523837 0.521171 0.511186 0.523574 0.518677 0.514380 0.514517 0.521706 0.511125 0.523350 0.518813 0.515611 0.515059 0.523352 0.517824 +0.868528 +0.492077 0.492129 0.489230 0.493206 0.503512 0.500724 0.487451 0.491158 0.484790 0.504046 0.502709 0.490702 0.213545 0.394679 0.469615 0.983471 0.009463 0.523399 0.519941 0.515445 0.512936 0.519873 0.520501 0.512466 0.524258 0.522182 0.518357 0.524548 0.516699 0.522620 0.522059 0.517559 +0.070204 +0.493173 0.490377 0.508034 0.509764 0.497650 0.505577 0.492661 0.502189 0.488254 0.497183 0.486241 0.504234 0.342136 0.026604 0.788791 0.430188 0.837282 0.521881 0.512164 0.513002 0.510402 0.510886 0.514264 0.520878 0.515386 0.510467 0.512192 0.518224 0.522776 0.513264 0.521682 0.513110 +0.627112 +0.508295 0.495009 0.505652 0.497477 0.494443 0.515327 0.495941 0.512786 0.514433 0.509505 0.488847 0.505897 0.267386 0.629192 0.034221 0.710316 0.474380 0.509982 0.516464 0.523063 0.514154 0.521084 0.512966 0.515336 0.519538 0.511595 0.518768 0.522851 0.522422 0.515839 0.514109 0.513285 +0.428364 +0.515137 0.489362 0.515294 0.504785 0.504489 0.496849 0.495910 0.498080 0.502003 0.498180 0.512301 0.514579 0.360971 0.358410 0.344557 0.688108 0.503108 0.517078 0.521156 0.521570 0.522825 0.512814 0.524284 0.521635 0.519076 0.516493 0.516392 0.518823 0.519602 0.516478 0.515245 0.510038 +0.346475 +0.512065 0.497532 0.507234 0.511378 0.495037 0.505165 0.508600 0.495686 0.511585 0.485787 0.505287 0.494781 0.041199 0.903365 0.651786 0.481139 0.525740 0.518329 0.509990 0.524252 0.516968 0.521705 0.524121 0.510245 0.524348 0.517866 0.515688 0.521100 0.520598 0.513773 0.511870 0.514185 +0.522646 +0.506631 0.506246 0.512652 0.498655 0.505534 0.493661 0.515468 0.486646 0.506138 0.496711 0.507274 0.502380 0.164818 0.040103 0.494660 0.620271 0.202599 0.517860 0.521045 0.511459 0.514618 0.521463 0.520562 0.521712 0.521706 0.520614 0.524012 0.514770 0.519422 0.523229 0.521784 0.513314 +0.360584 +0.513427 0.509548 0.511714 0.509279 0.493953 0.484911 0.490601 0.499911 0.494368 0.509394 0.510386 0.511450 0.093113 0.783728 0.393388 0.786273 0.149321 0.521184 0.517037 0.524146 0.519595 0.515552 0.514944 0.515145 0.519837 0.512214 0.520790 0.516291 0.513088 0.521452 0.519138 0.516214 +0.256988 +0.511987 0.507005 0.505763 0.502999 0.512749 0.488761 0.506375 0.510177 0.504044 0.508804 0.493270 0.511088 0.596639 0.312977 0.310947 0.225974 0.137869 0.516233 0.513838 0.524225 0.520414 0.524186 0.511480 0.512816 0.518599 0.517289 0.510378 0.511510 0.522352 0.511171 0.512508 0.519787 +0.630141 +0.515510 0.492512 0.511225 0.504849 0.514939 0.510822 0.486226 0.502338 0.500143 0.496995 0.491757 0.490296 0.303604 0.897619 0.150860 0.613553 0.382801 0.524320 0.509976 0.514975 0.521771 0.514014 0.519379 0.517434 0.518151 0.511841 0.516390 0.514871 0.510239 0.516936 0.511046 0.513629 +0.466476 +0.506888 0.513023 0.502176 0.494417 0.486205 0.491871 0.492541 0.489388 0.502624 0.511172 0.491046 0.494552 0.528794 0.887655 0.812694 0.865713 0.302814 0.519153 0.523751 0.518624 0.517467 0.509982 0.513693 0.512355 0.510876 0.511487 0.514262 0.518199 0.524215 0.510680 0.515111 0.514805 +0.248293 +0.509678 0.506638 0.490422 0.495454 0.509528 0.496289 0.485686 0.502430 0.505309 0.511741 0.498227 0.510168 0.624428 0.011418 0.737953 0.622296 0.209274 0.519433 0.519689 0.511972 0.518130 0.511239 0.512211 0.510241 0.521479 0.512956 0.512258 0.512592 0.515879 0.518130 0.511110 0.520790 +0.339837 +0.509140 0.514833 0.501085 0.504545 0.507993 0.514815 0.511262 0.488616 0.492028 0.492108 0.512453 0.495276 0.637800 0.590637 0.509995 0.149501 0.790864 0.513369 0.510409 0.512523 0.515234 0.514003 0.515886 0.515313 0.515361 0.516945 0.522615 0.517337 0.520751 0.521457 0.519544 0.510437 +0.811701 +0.508553 0.487378 0.496613 0.493252 0.499075 0.486757 0.515609 0.497555 0.511413 0.489295 0.486524 0.498503 0.632638 0.897576 0.433805 0.569851 0.421866 0.510680 0.517196 0.515688 0.514296 0.515295 0.512208 0.520439 0.520929 0.512558 0.524179 0.523424 0.516266 0.510427 0.513634 0.520899 +0.521334 +0.499485 0.499693 0.503200 0.494147 0.515337 0.511031 0.507708 0.500517 0.497301 0.485397 0.496137 0.502769 0.952129 0.622946 0.132778 0.944871 0.733603 0.518245 0.510301 0.521098 0.511589 0.514477 0.518580 0.518859 0.518602 0.515119 0.514532 0.512252 0.517648 0.516114 0.510907 0.522277 +0.261960 +0.493496 0.505997 0.504394 0.506684 0.488887 0.509242 0.494665 0.507536 0.499352 0.496497 0.490141 0.495835 0.191599 0.823428 0.145802 0.672947 0.879310 0.519455 0.521112 0.510713 0.524358 0.519751 0.517912 0.513278 0.516381 0.523801 0.523495 0.516182 0.512980 0.510993 0.522492 0.520509 +0.369821 +0.497984 0.515302 0.489356 0.498579 0.514531 0.491509 0.503472 0.487063 0.505288 0.502721 0.496255 0.485209 0.915787 0.281441 0.681920 0.570359 0.954285 0.522108 0.513000 0.513622 0.524243 0.521635 0.517417 0.518565 0.513228 0.520757 0.511552 0.523872 0.523856 0.514485 0.512882 0.522124 +0.445047 +0.496979 0.510874 0.510216 0.489703 0.497584 0.499964 0.495318 0.487331 0.487885 0.492899 0.512253 0.514631 0.297870 0.594838 0.057610 0.529705 0.171393 0.516475 0.522442 0.522507 0.523063 0.517074 0.523500 0.514525 0.522856 0.521434 0.519766 0.512406 0.511679 0.522241 0.521844 0.517789 +0.429929 +0.496157 0.496252 0.513798 0.514858 0.513526 0.502021 0.496925 0.514403 0.506932 0.507755 0.499062 0.503222 0.124671 0.786810 0.162310 0.925144 0.429856 0.513473 0.516708 0.517373 0.520645 0.517376 0.524175 0.515647 0.513465 0.512150 0.510371 0.518904 0.524058 0.512424 0.511663 0.519216 +0.313764 +0.485073 0.492384 0.500959 0.497923 0.502716 0.486045 0.508862 0.497136 0.513791 0.498290 0.500164 0.507439 0.500141 0.663798 0.220712 0.751689 0.323790 0.523296 0.513028 0.522971 0.517682 0.518227 0.513595 0.515573 0.515206 0.514851 0.517020 0.518173 0.510332 0.515996 0.514512 0.520452 +0.258351 +0.487690 0.490322 0.491673 0.490295 0.511481 0.498357 0.498954 0.506049 0.507505 0.485669 0.496893 0.503480 0.336512 0.583132 0.473146 0.298667 0.987320 0.519417 0.515597 0.514211 0.510235 0.520313 0.522606 0.510837 0.515209 0.521997 0.523013 0.524019 0.523754 0.512506 0.520990 0.517262 +0.597128 +0.488645 0.503193 0.514755 0.512341 0.515207 0.487899 0.510399 0.510481 0.486900 0.505871 0.497503 0.489580 0.612148 0.779648 0.875743 0.757052 0.387746 0.509982 0.511559 0.515680 0.513316 0.515156 0.524543 0.517441 0.513609 0.516472 0.523260 0.522302 0.514725 0.519591 0.517276 0.519394 +0.377242 +0.491193 0.505024 0.504206 0.494204 0.501047 0.508282 0.498992 0.512758 0.513697 0.494062 0.499385 0.513817 0.138794 0.983929 0.706922 0.467148 0.566065 0.521970 0.510919 0.523750 0.515088 0.517435 0.522474 0.520373 0.519913 0.521298 0.511778 0.513486 0.515153 0.510673 0.512834 0.518382 +0.612183 +0.505444 0.488712 0.504673 0.485154 0.489139 0.508693 0.485224 0.501924 0.490093 0.508859 0.505627 0.510248 0.435585 0.470500 0.857166 0.761788 0.922020 0.524067 0.510708 0.521700 0.518805 0.516107 0.514263 0.520395 0.515828 0.514635 0.517677 0.521105 0.511917 0.519899 0.516675 0.521735 +0.261039 +0.495247 0.508504 0.512141 0.497749 0.499814 0.496729 0.496867 0.491388 0.514055 0.496637 0.511371 0.512890 0.862607 0.139371 0.676426 0.311112 0.990913 0.524532 0.510569 0.516676 0.513931 0.523883 0.520734 0.524138 0.517640 0.513823 0.516077 0.519610 0.522960 0.512128 0.516342 0.512424 +0.650951 +0.487896 0.487396 0.508878 0.510995 0.508129 0.495021 0.492424 0.500938 0.489994 0.508245 0.503655 0.507159 0.959459 0.738331 0.980334 0.326171 0.905796 0.516846 0.512927 0.520410 0.523775 0.524060 0.517344 0.515146 0.513904 0.518984 0.515471 0.512242 0.513921 0.519233 0.524027 0.510091 +0.584508 +0.498510 0.499096 0.507632 0.505702 0.485417 0.509239 0.488932 0.509428 0.489340 0.493038 0.512852 0.494574 0.973825 0.014596 0.120568 0.878537 0.686313 0.514816 0.517228 0.511508 0.514405 0.520847 0.514578 0.513341 0.514340 0.521936 0.519350 0.523677 0.512120 0.514551 0.510231 0.516934 +0.291554 +0.503094 0.486673 0.490317 0.502430 0.514414 0.493642 0.511410 0.506694 0.489082 0.496449 0.502713 0.495024 0.893979 0.030772 0.783326 0.641731 0.610161 0.515838 0.516630 0.510630 0.509647 0.510910 0.510948 0.519049 0.510640 0.523196 0.518491 0.518870 0.523825 0.519597 0.514313 0.515262 +0.373607 +0.497063 0.502235 0.502726 0.486228 0.501101 0.496021 0.506001 0.489485 0.508534 0.512467 0.499760 0.508428 0.209183 0.131514 0.710397 0.826865 0.861850 0.516109 0.517847 0.521025 0.511031 0.517089 0.513656 0.511648 0.517136 0.514594 0.518677 0.515375 0.520344 0.514024 0.521392 0.517406 +0.185497 +0.498953 0.495876 0.485720 0.485252 0.502960 0.493201 0.485560 0.498078 0.498845 0.498110 0.492119 0.515822 0.090588 0.383075 0.589430 0.235395 0.352558 0.510633 0.510752 0.520693 0.512115 0.512121 0.523884 0.521254 0.509615 0.510320 0.523282 0.512524 0.519107 0.511014 0.520502 0.510732 +0.753638 +0.498443 0.502995 0.514739 0.490445 0.511839 0.504339 0.504602 0.509327 0.508373 0.485112 0.514318 0.484994 0.037156 0.008631 0.946812 0.331168 0.826870 0.523913 0.511210 0.509624 0.513181 0.519127 0.521199 0.521566 0.519488 0.511155 0.523550 0.522962 0.522176 0.522419 0.510653 0.521836 +0.693997 +0.500678 0.487951 0.496879 0.504948 0.507226 0.509423 0.491564 0.509088 0.513405 0.513249 0.507242 0.487563 0.073398 0.676700 0.910516 0.751957 0.816982 0.522955 0.513900 0.524032 0.517061 0.523742 0.522204 0.517314 0.514195 0.523977 0.522320 0.513982 0.517229 0.524544 0.519715 0.509675 +0.304893 +0.510662 0.512100 0.504065 0.512567 0.512960 0.496330 0.509314 0.514086 0.487256 0.488441 0.508793 0.497687 0.079310 0.959443 0.463118 0.873918 0.110596 0.515580 0.518228 0.512825 0.518898 0.514359 0.512105 0.514737 0.516954 0.517328 0.514612 0.518032 0.518421 0.511893 0.511454 0.516423 +0.254023 +0.506088 0.497726 0.496789 0.501155 0.499451 0.495022 0.512196 0.504509 0.487871 0.514763 0.507103 0.511004 0.370295 0.949405 0.880841 0.377941 0.365341 0.520761 0.523634 0.522597 0.509816 0.518778 0.520679 0.524315 0.521633 0.523616 0.520544 0.522474 0.513697 0.519471 0.513204 0.524242 +0.620373 +0.506636 0.500125 0.506345 0.512441 0.503309 0.515256 0.496216 0.512217 0.515750 0.498019 0.511226 0.490910 0.327591 0.752184 0.625771 0.569084 0.529239 0.514838 0.511452 0.521308 0.516602 0.520339 0.518631 0.515029 0.513427 0.514591 0.522988 0.517342 0.514537 0.524092 0.519686 0.515257 +0.469277 +0.501304 0.515413 0.505681 0.503089 0.491691 0.514833 0.492811 0.509997 0.493111 0.494316 0.487192 0.511137 0.408649 0.091889 0.224015 0.226071 0.764039 0.520623 0.511567 0.520062 0.512549 0.518783 0.514509 0.514868 0.515717 0.521458 0.522665 0.514627 0.519104 0.516994 0.514877 0.510534 +0.703007 +0.487177 0.508638 0.510362 0.492424 0.509910 0.510649 0.505217 0.507922 0.503703 0.501080 0.492979 0.499066 0.549071 0.416579 0.269448 0.259054 0.702765 0.519370 0.517035 0.518053 0.517149 0.509732 0.513507 0.522512 0.512896 0.511726 0.513563 0.513477 0.514922 0.510087 0.514539 0.517895 +0.633889 +0.487694 0.494128 0.514109 0.502129 0.513540 0.495617 0.505993 0.499657 0.492453 0.501873 0.490454 0.497681 0.965051 0.656463 0.033357 0.203619 0.684994 0.512667 0.520459 0.520104 0.513972 0.519733 0.518202 0.518416 0.518911 0.520794 0.517048 0.521990 0.521465 0.513492 0.523526 0.511256 +0.658573 +0.489646 0.501380 0.499987 0.486209 0.493070 0.486495 0.496518 0.494766 0.485343 0.488323 0.502879 0.488373 0.899078 0.667161 0.709614 0.675870 0.970380 0.511741 0.524209 0.524447 0.515691 0.509884 0.517413 0.509703 0.524434 0.513905 0.519991 0.515375 0.512020 0.511184 0.519502 0.510733 +0.316945 +0.494555 0.511924 0.490157 0.514811 0.503541 0.485936 0.498622 0.497982 0.492292 0.488748 0.500373 0.496159 0.426578 0.194445 0.607652 0.266742 0.815244 0.520042 0.510442 0.519424 0.523038 0.518630 0.524588 0.524323 0.523955 0.514332 0.515403 0.510950 0.521097 0.518562 0.513631 0.518787 +0.694375 +0.500595 0.486113 0.511611 0.509675 0.511234 0.499910 0.512600 0.504388 0.499066 0.492990 0.495418 0.496155 0.320604 0.401177 0.594362 0.065046 0.405000 0.521829 0.516083 0.521204 0.522452 0.513221 0.515754 0.524336 0.514011 0.520940 0.510954 0.523876 0.523156 0.512485 0.523643 0.523159 +0.776757 +0.491090 0.500648 0.515973 0.510297 0.506719 0.512112 0.512700 0.514263 0.511897 0.511658 0.494939 0.501082 0.259173 0.690129 0.436130 0.621805 0.967554 0.519894 0.524189 0.516217 0.509815 0.524518 0.517297 0.511057 0.512841 0.522776 0.510083 0.509636 0.523287 0.513002 0.515714 0.512969 +0.391451 +0.513074 0.489895 0.485681 0.513007 0.493143 0.514416 0.502689 0.503670 0.485382 0.493085 0.485518 0.515929 0.241329 0.009300 0.178683 0.891275 0.607544 0.516467 0.521271 0.511126 0.522508 0.524487 0.519981 0.521311 0.515219 0.517983 0.520376 0.523432 0.512456 0.519961 0.514866 0.513845 +0.206471 +0.497097 0.510992 0.484648 0.502552 0.488326 0.515273 0.496959 0.490444 0.486473 0.497090 0.493514 0.501715 0.782484 0.514399 0.116101 0.849759 0.370924 0.517379 0.520365 0.520068 0.518741 0.523330 0.520818 0.512732 0.516333 0.510030 0.516404 0.510063 0.510044 0.520178 0.514511 0.512481 +0.313171 +0.509963 0.515209 0.491477 0.499985 0.485828 0.497428 0.513310 0.496172 0.492960 0.502356 0.489867 0.508482 0.471498 0.609483 0.027523 0.225772 0.744465 0.509613 0.514457 0.517933 0.523669 0.522408 0.517957 0.513830 0.516627 0.516816 0.510507 0.522411 0.517765 0.511866 0.523560 0.523075 +0.623490 +0.497716 0.485609 0.498085 0.491415 0.493854 0.486505 0.501838 0.490602 0.508508 0.488041 0.512360 0.503373 0.208955 0.308283 0.475346 0.247623 0.723351 0.515372 0.523873 0.515365 0.510610 0.518319 0.513992 0.517872 0.519473 0.519341 0.514607 0.511798 0.524433 0.515367 0.510268 0.511943 +0.720763 +0.504112 0.512052 0.510626 0.497038 0.489816 0.508440 0.513509 0.507669 0.500809 0.491398 0.492766 0.511742 0.143620 0.027838 0.515860 0.661562 0.660795 0.521344 0.510530 0.514511 0.517068 0.523625 0.516200 0.511631 0.510635 0.519567 0.519428 0.524187 0.510859 0.515746 0.516370 0.509983 +0.313411 +0.498920 0.494056 0.486345 0.493477 0.507032 0.515031 0.498260 0.507459 0.496791 0.494735 0.491978 0.493424 0.423732 0.406493 0.875011 0.456557 0.680915 0.520091 0.523769 0.516207 0.511658 0.523624 0.519470 0.520447 0.522368 0.514632 0.521097 0.514326 0.513455 0.523923 0.522374 0.510782 +0.511995 +0.489932 0.502533 0.485578 0.513539 0.506398 0.485569 0.496147 0.512959 0.499618 0.510091 0.504852 0.511015 0.288551 0.087239 0.136147 0.525110 0.015549 0.511374 0.512119 0.520445 0.514329 0.513334 0.521250 0.519803 0.516479 0.516097 0.517472 0.512651 0.521301 0.510221 0.523440 0.512739 +0.461377 +0.501776 0.486001 0.487071 0.511965 0.497904 0.495117 0.490799 0.493736 0.488428 0.503433 0.493528 0.485117 0.460108 0.316696 0.781091 0.115491 0.618192 0.513856 0.512478 0.514359 0.511903 0.520147 0.518336 0.513513 0.515243 0.514029 0.517552 0.516638 0.520045 0.524291 0.515846 0.514461 +0.818743 +0.511271 0.514151 0.508007 0.501189 0.504530 0.497116 0.511418 0.511829 0.496514 0.498776 0.499573 0.509421 0.079016 0.025943 0.694640 0.195340 0.647192 0.514572 0.521006 0.522916 0.510903 0.520093 0.524517 0.513642 0.512895 0.522292 0.512444 0.520242 0.518908 0.516323 0.511147 0.522430 +0.740135 +0.515171 0.512851 0.511446 0.509885 0.497919 0.502639 0.501087 0.487202 0.492733 0.485782 0.487747 0.502378 0.042536 0.363050 0.269767 0.612449 0.839964 0.522635 0.512949 0.516018 0.520706 0.523331 0.523131 0.521172 0.509741 0.518263 0.514255 0.520896 0.513033 0.511038 0.515232 0.509695 +0.378832 +0.489889 0.507652 0.501187 0.499000 0.492146 0.497810 0.486477 0.506603 0.500006 0.489750 0.497250 0.510745 0.222552 0.657976 0.443869 0.596798 0.975808 0.514247 0.509932 0.523189 0.510646 0.523748 0.515959 0.512667 0.514191 0.512840 0.515859 0.518355 0.524308 0.519419 0.516992 0.511739 +0.467132 +0.485682 0.509851 0.489186 0.500739 0.485609 0.503533 0.507439 0.513127 0.500062 0.487129 0.496711 0.497878 0.532663 0.864895 0.567904 0.712326 0.225532 0.520257 0.520758 0.516664 0.509693 0.517713 0.522169 0.519456 0.518631 0.513608 0.510687 0.521287 0.515211 0.512014 0.515656 0.513725 +0.402544 +0.504141 0.510530 0.513256 0.494598 0.486730 0.512410 0.510091 0.493113 0.485882 0.503544 0.498134 0.493344 0.763547 0.470199 0.804024 0.256963 0.589895 0.510312 0.515217 0.518433 0.512748 0.520861 0.523213 0.514346 0.523336 0.519138 0.523581 0.513333 0.518550 0.513001 0.512607 0.516607 +0.654522 +0.497473 0.510692 0.513870 0.497657 0.494031 0.504261 0.511620 0.513315 0.510939 0.499121 0.488871 0.492831 0.322333 0.451280 0.055212 0.256612 0.679228 0.515140 0.514102 0.522710 0.521769 0.517812 0.513507 0.513795 0.522398 0.520340 0.517209 0.522566 0.511777 0.513020 0.512742 0.515614 +0.729534 +0.495022 0.503053 0.510398 0.502391 0.515383 0.504029 0.501434 0.492110 0.485054 0.513046 0.488501 0.510101 0.750902 0.093495 0.200686 0.433561 0.482090 0.517077 0.523461 0.516497 0.511746 0.515120 0.510657 0.516954 0.518124 0.517474 0.522044 0.522193 0.515343 0.517104 0.511852 0.523367 +0.509534 +0.514368 0.511108 0.491609 0.488024 0.499175 0.502058 0.513972 0.511601 0.501316 0.495805 0.493051 0.488115 0.120017 0.618765 0.909342 0.044873 0.612421 0.514952 0.509807 0.510210 0.522129 0.509747 0.522337 0.517749 0.519131 0.513078 0.509675 0.516796 0.524177 0.512638 0.516775 0.524467 +0.970949 +0.503024 0.494521 0.504526 0.504394 0.513421 0.500617 0.500380 0.506673 0.496035 0.495691 0.497583 0.510170 0.814497 0.148365 0.726736 0.246727 0.673159 0.516035 0.515343 0.516032 0.516702 0.520885 0.512802 0.519017 0.518509 0.518634 0.517669 0.514800 0.519234 0.509723 0.524604 0.517197 +0.645979 +0.507209 0.502621 0.513762 0.506125 0.489156 0.503909 0.507408 0.491298 0.514339 0.490591 0.508219 0.502023 0.538781 0.605437 0.065223 0.379644 0.960750 0.515814 0.516092 0.511001 0.519908 0.512929 0.513218 0.519062 0.520119 0.514506 0.521077 0.522716 0.516041 0.520718 0.515787 0.519820 +0.559799 +0.498226 0.491678 0.491411 0.486148 0.499471 0.510617 0.500974 0.499907 0.496625 0.498092 0.486805 0.511169 0.630926 0.151649 0.870509 0.849431 0.856446 0.519790 0.523682 0.521597 0.513212 0.521037 0.522398 0.517761 0.518528 0.517839 0.516826 0.514450 0.524016 0.517648 0.520002 0.509751 +0.126475 +0.487168 0.486807 0.514621 0.510383 0.507915 0.513429 0.508984 0.499915 0.505099 0.504512 0.506870 0.504328 0.740334 0.613784 0.260677 0.955096 0.462321 0.517083 0.524265 0.518170 0.513485 0.524447 0.523691 0.516794 0.520584 0.512054 0.515177 0.524153 0.514651 0.520321 0.522928 0.521944 +0.184664 +0.496251 0.508668 0.501297 0.494179 0.489553 0.507484 0.511886 0.512176 0.487304 0.510042 0.490263 0.499990 0.474639 0.365959 0.130627 0.808506 0.538845 0.519808 0.509875 0.523153 0.523474 0.521697 0.522789 0.519859 0.517096 0.514372 0.519833 0.518414 0.519082 0.524113 0.517374 0.520207 +0.256748 +0.500458 0.502156 0.490478 0.492261 0.506208 0.505631 0.486661 0.485371 0.492919 0.500505 0.514955 0.500033 0.315052 0.167495 0.992793 0.563882 0.173610 0.520139 0.514938 0.516275 0.514255 0.511045 0.509991 0.510494 0.518340 0.521717 0.516980 0.514693 0.519991 0.515715 0.516160 0.518014 +0.379614 +0.500025 0.485014 0.507729 0.509611 0.501370 0.491957 0.493871 0.501575 0.485796 0.504922 0.484939 0.500847 0.783011 0.366124 0.906593 0.870521 0.053449 0.519334 0.516637 0.516032 0.523606 0.516965 0.519347 0.515798 0.515448 0.513670 0.516260 0.518360 0.513355 0.521295 0.512357 0.519284 +0.104075 +0.492669 0.511559 0.496579 0.514563 0.492095 0.486867 0.492547 0.508288 0.494624 0.485647 0.509988 0.502553 0.657213 0.620806 0.192139 0.879533 0.414492 0.512817 0.510153 0.514820 0.513480 0.516123 0.513834 0.516985 0.513605 0.523649 0.518052 0.513041 0.510731 0.510689 0.524195 0.521765 +0.242640 +0.500086 0.508677 0.497463 0.494309 0.503412 0.504745 0.502344 0.515339 0.487790 0.493681 0.507338 0.510141 0.032673 0.722020 0.042452 0.948231 0.159918 0.520801 0.519771 0.510142 0.518824 0.514141 0.523924 0.510596 0.516360 0.520209 0.516015 0.513842 0.518618 0.513076 0.509796 0.516828 +0.100920 +0.500679 0.511542 0.515116 0.502655 0.490166 0.498645 0.503160 0.494742 0.487981 0.500070 0.491065 0.500522 0.676764 0.972373 0.615111 0.546450 0.411820 0.514859 0.515202 0.510908 0.512558 0.519542 0.513109 0.515851 0.520053 0.520811 0.520479 0.520133 0.523868 0.512330 0.515989 0.520792 +0.485834 +0.484926 0.496972 0.491435 0.511950 0.498526 0.513149 0.514190 0.499471 0.493364 0.495037 0.513264 0.511507 0.124574 0.162386 0.202838 0.576137 0.986542 0.518442 0.519527 0.521713 0.524399 0.512499 0.511548 0.511181 0.522805 0.519980 0.515199 0.515364 0.520149 0.515035 0.521181 0.513750 +0.480408 +0.492594 0.503069 0.492211 0.512331 0.509652 0.512326 0.515784 0.507821 0.485996 0.501305 0.492979 0.502173 0.476668 0.445003 0.644940 0.511147 0.500261 0.519856 0.517407 0.510183 0.522661 0.516949 0.523573 0.516499 0.521032 0.512627 0.521434 0.522533 0.517999 0.515933 0.514794 0.511821 +0.529966 +0.514055 0.496066 0.510236 0.505070 0.492525 0.505092 0.513188 0.491333 0.506691 0.506793 0.500674 0.488673 0.762265 0.943313 0.569171 0.991459 0.160760 0.522898 0.518298 0.517495 0.522853 0.509876 0.521958 0.514874 0.519865 0.522531 0.521316 0.517330 0.519437 0.520367 0.517800 0.513016 +0.065534 +0.506900 0.494618 0.500592 0.500369 0.490982 0.505107 0.510669 0.499825 0.492197 0.495005 0.507201 0.491557 0.420258 0.056300 0.529138 0.663186 0.938142 0.520489 0.516633 0.519650 0.512964 0.517705 0.516040 0.517222 0.509620 0.519555 0.516503 0.511114 0.521641 0.511654 0.518496 0.512951 +0.367411 +0.484859 0.495450 0.497267 0.512524 0.494147 0.510519 0.495000 0.515498 0.488898 0.510427 0.509892 0.491937 0.407294 0.328043 0.335832 0.162123 0.772179 0.516082 0.519417 0.513621 0.513146 0.510014 0.518523 0.514400 0.522296 0.512967 0.514973 0.512090 0.513054 0.518433 0.512129 0.515822 +0.801832 +0.496673 0.493998 0.495979 0.493410 0.505703 0.501645 0.495872 0.487329 0.486461 0.510189 0.507284 0.507434 0.840506 0.968268 0.685042 0 0.985436 0.509682 0.517872 0.518161 0.517156 0.524276 0.516852 0.517269 0.522044 0.518654 0.523351 0.518667 0.522761 0.511178 0.523370 0.518402 +0.911750 +0.503330 0.509649 0.489893 0.507045 0.492226 0.510021 0.512080 0.506148 0.499362 0.509700 0.492505 0.490180 0.415725 0.921822 0.637717 0.198397 0.988575 0.520418 0.510049 0.516608 0.513905 0.511425 0.518156 0.520263 0.517833 0.509631 0.511166 0.524290 0.510784 0.511848 0.516275 0.512412 +0.785338 +0.490869 0.499307 0.492045 0.493076 0.489500 0.500962 0.512784 0.513219 0.501698 0.500583 0.505886 0.492763 0.774641 0.790805 0.252268 0.727845 0.866366 0.513804 0.519651 0.520457 0.520630 0.515365 0.515592 0.511078 0.517320 0.523157 0.514347 0.520228 0.517041 0.521595 0.523842 0.520256 +0.366893 +0.504617 0.484952 0.502038 0.488944 0.498798 0.485757 0.509999 0.487790 0.500920 0.502362 0.507267 0.500926 0.734154 0.822288 0.000141 0.360036 0.646716 0.514742 0.519615 0.522271 0.514149 0.510587 0.523225 0.513053 0.523434 0.523230 0.515170 0.511092 0.519641 0.522603 0.512217 0.520801 +0.585265 +0.496960 0.507066 0.499988 0.502886 0.508781 0.491938 0.491717 0.508304 0.511584 0.508351 0.495700 0.489350 0.448541 0.054020 0.231544 0.676065 0.232916 0.520389 0.517445 0.521957 0.512319 0.517831 0.509908 0.521439 0.520947 0.517626 0.520819 0.520564 0.522612 0.515512 0.519102 0.511040 +0.332845 +0.492966 0.509111 0.503540 0.501447 0.499654 0.486824 0.515631 0.515334 0.497105 0.515457 0.509671 0.504108 0.197424 0.643535 0.915888 0.985439 0.064895 0.522644 0.513846 0.515865 0.519568 0.523892 0.524474 0.521281 0.522236 0.513742 0.522958 0.522052 0.510516 0.514956 0.524071 0.510038 +0.070039 +0.514173 0.501122 0.506685 0.501809 0.489266 0.506974 0.485684 0.497318 0.488212 0.514766 0.495047 0.510960 0.894375 0.675302 0.420622 0.178771 0.383789 0.518185 0.523534 0.520840 0.524385 0.517761 0.521599 0.521836 0.513336 0.524295 0.524059 0.523264 0.515487 0.522433 0.517865 0.512488 +0.679989 +0.488906 0.493767 0.501356 0.500394 0.504726 0.486630 0.497406 0.485343 0.487947 0.494931 0.485979 0.489739 0.533190 0.702053 0.697623 0.306874 0.819483 0.523006 0.513066 0.520089 0.519236 0.518984 0.512760 0.517810 0.516029 0.523320 0.520990 0.522999 0.514884 0.523071 0.523729 0.518230 +0.740236 +0.513084 0.503028 0.499998 0.504111 0.494715 0.505830 0.498578 0.505904 0.515371 0.486337 0.515099 0.506847 0.992450 0.799144 0.307425 0.065987 0.209685 0.518078 0.520926 0.524384 0.518558 0.519323 0.522515 0.521511 0.522698 0.516120 0.522225 0.517308 0.520781 0.513398 0.511484 0.523918 +0.852917 +0.499263 0.486008 0.515231 0.494148 0.494937 0.489379 0.491271 0.496730 0.499481 0.497499 0.515304 0.489774 0.906046 0.685076 0.570305 0.040321 0.162471 0.518893 0.517848 0.513134 0.518284 0.520052 0.511971 0.516009 0.519964 0.520687 0.512252 0.513797 0.524124 0.518105 0.524610 0.513576 +0.849283 +0.508852 0.489200 0.489523 0.510883 0.508490 0.498600 0.496906 0.485643 0.511407 0.505592 0.493789 0.503910 0.993867 0.596887 0.469160 0.348764 0.342727 0.523893 0.523996 0.510423 0.513578 0.524108 0.516494 0.522097 0.522456 0.514902 0.515061 0.509870 0.510698 0.519537 0.513303 0.512488 +0.624159 +0.511667 0.513552 0.507959 0.503912 0.489331 0.491482 0.493911 0.510714 0.497539 0.515598 0.493426 0.492642 0.317094 0.458116 0.868445 0.188639 0.109672 0.522802 0.521921 0.516263 0.511212 0.513998 0.522692 0.521022 0.514979 0.515438 0.517545 0.522004 0.523727 0.513981 0.512960 0.518490 +0.726821 +0.509613 0.486018 0.497663 0.492174 0.487938 0.506412 0.506860 0.513324 0.504444 0.493386 0.515156 0.492443 0.739771 0.164960 0.424533 0.851325 0.669608 0.521494 0.516112 0.514093 0.514482 0.523005 0.522426 0.513010 0.510271 0.518845 0.520214 0.519539 0.515038 0.512965 0.511774 0.523262 +0.352747 +0.495479 0.510930 0.511281 0.498738 0.491386 0.513489 0.511894 0.484614 0.512934 0.491795 0.499086 0.498475 0.340816 0.869427 0.685982 0.799211 0.425681 0.511597 0.510401 0.522006 0.513732 0.511428 0.523938 0.515718 0.514051 0.513156 0.518327 0.516960 0.517435 0.523111 0.523344 0.518292 +0.255575 +0.504212 0.507197 0.494329 0.496195 0.509371 0.499511 0.493456 0.503060 0.505540 0.497019 0.489096 0.498527 0.652734 0.397705 0.292995 0.726487 0.054798 0.514053 0.520548 0.513942 0.515029 0.515167 0.520849 0.519037 0.522073 0.523828 0.519450 0.512114 0.524145 0.522938 0.510552 0.519138 +0.349201 +0.497744 0.485383 0.507831 0.491529 0.490229 0.503525 0.493477 0.504133 0.494700 0.504979 0.496229 0.511541 0.765008 0.002298 0.576116 0.632929 0.789768 0.522158 0.512785 0.510769 0.515677 0.511287 0.510233 0.514497 0.513232 0.519173 0.513416 0.516330 0.516593 0.510082 0.522246 0.518076 +0.389306 +0.513969 0.508207 0.492560 0.495081 0.484733 0.496706 0.514263 0.506605 0.508051 0.508796 0.512179 0.500351 0.315673 0.600646 0.599458 0.660231 0.310970 0.518745 0.522111 0.518782 0.515857 0.519506 0.514183 0.511626 0.514181 0.517531 0.514998 0.518958 0.511388 0.520073 0.515549 0.515994 +0.407680 +0.511505 0.496920 0.500744 0.498258 0.496841 0.493759 0.499775 0.499089 0.485877 0.510514 0.494186 0.513599 0.718582 0.297394 0.606487 0.700802 0.688668 0.523097 0.509665 0.519386 0.517317 0.510172 0.509826 0.520956 0.517475 0.519071 0.511424 0.524508 0.509645 0.512761 0.509722 0.513990 +0.301107 +0.485106 0.512048 0.496546 0.490576 0.507667 0.493965 0.509057 0.505038 0.494783 0.485225 0.485971 0.485593 0.815836 0.650188 0.653693 0.507867 0.411557 0.523458 0.524580 0.517972 0.512617 0.518920 0.523620 0.517815 0.513433 0.511267 0.512455 0.523576 0.511597 0.517431 0.523352 0.523742 +0.548908 +0.497479 0.491039 0.501089 0.509335 0.514505 0.515433 0.491542 0.498613 0.490954 0.515370 0.499431 0.504852 0.531034 0.496898 0.206253 0.929910 0.466742 0.520638 0.523171 0.524414 0.516408 0.516077 0.520145 0.512578 0.520819 0.523948 0.512714 0.522689 0.515995 0.510418 0.523354 0.510183 +0.296071 +0.511238 0.503556 0.511060 0.495639 0.499871 0.510238 0.509958 0.500040 0.491566 0.485065 0.515068 0.510912 0.373579 0.098393 0.451504 0.821466 0.189478 0.512634 0.520328 0.515413 0.524036 0.517345 0.509915 0.516251 0.517182 0.515772 0.524319 0.521715 0.515199 0.515973 0.518526 0.515906 +0.193486 +0.486645 0.495263 0.497647 0.514969 0.491822 0.511404 0.485977 0.488436 0.509722 0.494065 0.488492 0.515100 0.920633 0.666268 0.703305 0.726308 0.058115 0.509656 0.516714 0.524436 0.523373 0.521222 0.517917 0.510262 0.523926 0.521260 0.513273 0.520352 0.519535 0.515090 0.521867 0.517859 +0.283641 +0.506706 0.509208 0.500591 0.510445 0.506532 0.507594 0.498710 0.485682 0.501835 0.509005 0.504959 0.505647 0.579071 0.255573 0.241254 0.759011 0.283307 0.509988 0.514233 0.516603 0.522276 0.513246 0.524392 0.511446 0.514616 0.523772 0.512183 0.514898 0.513576 0.516642 0.515402 0.523276 +0.384712 +0.496286 0.488586 0.490226 0.510272 0.491656 0.489541 0.508491 0.488441 0.494205 0.509873 0.508200 0.500617 0.759364 0.221198 0.929993 0.867448 0.449558 0.511738 0.517829 0.511989 0.523012 0.519071 0.522457 0.519354 0.513040 0.511877 0.519215 0.512755 0.512829 0.510710 0.523755 0.517996 +0.187479 +0.515160 0.496520 0.501540 0.515211 0.496565 0.497350 0.497324 0.499652 0.507939 0.487060 0.487312 0.506948 0.398810 0.855616 0.738600 0.489245 0.664588 0.516959 0.512262 0.517469 0.511413 0.514982 0.515215 0.519361 0.521115 0.515270 0.519203 0.520240 0.515327 0.523971 0.521968 0.510723 +0.541374 +0.494158 0.502530 0.502214 0.500251 0.508579 0.487019 0.493695 0.485427 0.490724 0.486144 0.508288 0.492947 0.209061 0.090774 0.495055 0.249888 0.757174 0.516235 0.515296 0.524183 0.516777 0.514399 0.524115 0.520659 0.520436 0.521318 0.524551 0.515159 0.516351 0.516132 0.517088 0.519446 +0.662914 +0.496511 0.504236 0.495421 0.508303 0.494614 0.503282 0.492585 0.486219 0.500055 0.498391 0.502330 0.496415 0.159751 0.950209 0.384390 0.676259 0.501358 0.511249 0.521181 0.515099 0.518350 0.518468 0.518156 0.518926 0.522497 0.519806 0.523319 0.522973 0.509744 0.517102 0.522975 0.520385 +0.390215 +0.487564 0.502245 0.510359 0.508781 0.491470 0.485905 0.503232 0.500501 0.498188 0.512666 0.505734 0.492374 0.032240 0.445814 0.254803 0.303028 0.222618 0.521105 0.511689 0.519978 0.509933 0.515282 0.517588 0.518936 0.516751 0.517191 0.517058 0.512251 0.524377 0.515822 0.512282 0.515397 +0.654081 +0.513197 0.508588 0.510783 0.488375 0.491631 0.485787 0.509180 0.488376 0.514829 0.493682 0.500193 0.490759 0.724670 0.542664 0.816208 0.883445 0.110063 0.516415 0.509723 0.523698 0.519989 0.522780 0.514369 0.517761 0.524384 0.519437 0.515031 0.515049 0.511777 0.523108 0.516966 0.524390 +0.143196 +0.499609 0.515553 0.487896 0.514484 0.486253 0.515469 0.495774 0.499501 0.510741 0.507356 0.489772 0.488132 0.301468 0.017575 0.157994 0.439827 0.710649 0.510666 0.513747 0.522967 0.511252 0.517827 0.511202 0.515511 0.519921 0.519709 0.513189 0.517832 0.521060 0.511773 0.514804 0.514961 +0.546333 +0.504672 0.503855 0.506487 0.503150 0.504086 0.492670 0.487605 0.496104 0.490892 0.516022 0.492560 0.495112 0.710308 0.347445 0.192465 0.361876 0.554389 0.520779 0.511004 0.521190 0.509925 0.514181 0.518083 0.512491 0.520132 0.515587 0.511182 0.522324 0.515522 0.514909 0.521522 0.511937 +0.629308 +0.499022 0.484592 0.505999 0.515131 0.499162 0.506262 0.501711 0.497790 0.494180 0.495284 0.512916 0.506415 0.132299 0.899721 0.464083 0.084769 0.643819 0.519872 0.510154 0.521784 0.518795 0.522756 0.510160 0.515711 0.513636 0.514841 0.511629 0.517799 0.521209 0.522137 0.519931 0.522999 +0.858747 +0.499033 0.488285 0.490660 0.511990 0.495251 0.490892 0.515795 0.511128 0.513230 0.496404 0.503551 0.487516 0.940121 0.962556 0.754491 0.372013 0.800055 0.518612 0.514466 0.519433 0.522322 0.521434 0.523529 0.524611 0.523935 0.520094 0.509812 0.523156 0.517559 0.520595 0.514349 0.512148 +0.648578 +0.493645 0.508845 0.492314 0.488346 0.506520 0.499734 0.503694 0.499357 0.495601 0.513445 0.502321 0.504680 0.757011 0.694234 0.384441 0.519286 0.198590 0.513005 0.518740 0.523314 0.513728 0.520923 0.514775 0.523145 0.513496 0.520741 0.511989 0.518885 0.517070 0.524238 0.509939 0.514295 +0.461365 +0.513690 0.488296 0.515127 0.499793 0.492755 0.500629 0.488032 0.511291 0.486011 0.502007 0.500250 0.507463 0.290457 0.108258 0.130997 0.030108 0.632008 0.514291 0.513454 0.513223 0.515443 0.517796 0.519475 0.519613 0.518432 0.521970 0.520434 0.516706 0.515499 0.515757 0.516708 0.518427 +0.881438 +0.496744 0.485831 0.485933 0.506181 0.513407 0.492638 0.493448 0.515300 0.515811 0.498182 0.507193 0.486968 0.197590 0.426377 0.832526 0.948748 0.841828 0.512140 0.519159 0.511905 0.512682 0.524595 0.513230 0.516091 0.519624 0.520652 0.516961 0.515795 0.520737 0.515300 0.515382 0.523871 +0.213034 +0.504579 0.514843 0.506768 0.513361 0.492950 0.510914 0.502822 0.491723 0.487071 0.492216 0.505097 0.496791 0.206706 0.529912 0.654475 0.642437 0.468407 0.520256 0.521380 0.511355 0.520606 0.516329 0.511167 0.512487 0.520381 0.523907 0.522908 0.515555 0.512449 0.518634 0.513514 0.524407 +0.407617 +0.514408 0.514026 0.509594 0.507347 0.491629 0.509986 0.494176 0.499523 0.487055 0.495437 0.501886 0.512151 0.548778 0.506232 0.962459 0.123308 0.895786 0.515057 0.514727 0.522766 0.522826 0.517663 0.512275 0.515157 0.517388 0.520034 0.510575 0.515795 0.515438 0.511957 0.514715 0.513929 +0.820510 +0.489548 0.487552 0.489869 0.488622 0.487457 0.495027 0.496269 0.496821 0.489607 0.508606 0.502290 0.492962 0.361613 0.137819 0.601868 0.122164 0.675939 0.511475 0.509833 0.513039 0.515756 0.514490 0.522982 0.517903 0.518264 0.513638 0.509648 0.516548 0.523569 0.514867 0.515543 0.520732 +0.769892 +0.511065 0.514852 0.506641 0.513849 0.489863 0.506295 0.485003 0.503596 0.514854 0.511493 0.510799 0.505450 0.374493 0.451547 0.552125 0.714673 0.649810 0.514082 0.514448 0.513298 0.520564 0.511457 0.522489 0.522607 0.515142 0.511988 0.519731 0.522434 0.522898 0.511364 0.510113 0.514121 +0.373695 +0.509871 0.503180 0.512823 0.514151 0.507786 0.489116 0.503122 0.503871 0.495997 0.509840 0.485820 0.499460 0.109832 0.566547 0.927771 0.551596 0.825925 0.510809 0.517578 0.518622 0.520489 0.523991 0.509790 0.517721 0.513448 0.512210 0.511710 0.516395 0.519196 0.516701 0.522384 0.523422 +0.415088 +0.511863 0.506334 0.488345 0.491217 0.508233 0.492319 0.504776 0.514690 0.490536 0.507168 0.484769 0.493241 0.338695 0.239629 0.456812 0.971388 0.083401 0.519649 0.513645 0.516825 0.524326 0.518234 0.521355 0.517921 0.513906 0.523632 0.524336 0.522212 0.520013 0.516357 0.511562 0.512320 +0.117717 +0.498748 0.495357 0.510626 0.488756 0.488691 0.487919 0.503171 0.513512 0.491680 0.512349 0.496825 0.499172 0.119496 0.882548 0.038090 0.691895 0.101431 0.516769 0.516689 0.511453 0.515715 0.520065 0.521569 0.513013 0.510298 0.510592 0.522870 0.515287 0.521143 0.513189 0.511918 0.511869 +0.420338 +0.500570 0.509133 0.498770 0.501610 0.495015 0.510891 0.486034 0.501517 0.511822 0.511179 0.490632 0.507178 0.925055 0.934092 0.705490 0.426578 0.206600 0.520919 0.524104 0.519205 0.517862 0.522821 0.519623 0.517004 0.522654 0.519234 0.512243 0.510958 0.524213 0.510238 0.510537 0.522518 +0.501331 +0.500391 0.488087 0.492097 0.513065 0.487149 0.486238 0.509701 0.508527 0.496928 0.497532 0.496638 0.494297 0.945324 0.345330 0.675818 0.094551 0.929906 0.515725 0.516176 0.520250 0.523229 0.520952 0.524009 0.519622 0.513409 0.518192 0.519341 0.516526 0.510790 0.514288 0.514875 0.522552 +0.695991 +0.504986 0.496758 0.502659 0.489346 0.500730 0.487678 0.506070 0.486545 0.507273 0.505275 0.507510 0.509047 0.410094 0.358400 0.185298 0.998953 0.024134 0.514199 0.516818 0.516825 0.513740 0.512286 0.512078 0.520954 0.517106 0.519307 0.518653 0.518984 0.518267 0.517623 0.512970 0.517020 +0 +0.494889 0.497082 0.505317 0.496909 0.504067 0.515581 0.487312 0.507913 0.512734 0.486863 0.490500 0.497284 0.765714 0.858469 0.648404 0.687136 0.182161 0.514151 0.524113 0.512654 0.513431 0.523018 0.517628 0.523759 0.517866 0.518056 0.521289 0.512637 0.523301 0.517737 0.512736 0.513514 +0.265860 +0.497913 0.486056 0.495248 0.505802 0.494215 0.494642 0.506339 0.509884 0.511403 0.503579 0.491706 0.487410 0.570213 0.491588 0.019496 0.413311 0.387574 0.511836 0.512688 0.512639 0.511753 0.524140 0.522513 0.517945 0.518810 0.511695 0.511766 0.523990 0.524166 0.514680 0.520702 0.511841 +0.525056 +0.484665 0.514703 0.509150 0.497752 0.494063 0.509033 0.509407 0.513975 0.502581 0.502680 0.493848 0.493368 0.467452 0.658790 0.120352 0.249002 0.877167 0.519669 0.514993 0.509970 0.515354 0.513424 0.511404 0.522576 0.510940 0.519740 0.514353 0.524141 0.511842 0.513751 0.511428 0.522531 +0.683800 +0.495693 0.500200 0.502331 0.512250 0.501477 0.498464 0.507563 0.515304 0.486395 0.508486 0.499302 0.511156 0.613807 0.634231 0.649677 0.057866 0.816888 0.514258 0.522048 0.510377 0.516231 0.524323 0.519461 0.522559 0.520519 0.513559 0.522904 0.512440 0.521082 0.514970 0.524421 0.515508 +0.883280 +0.501125 0.487112 0.509861 0.497751 0.508460 0.499375 0.502346 0.510575 0.488155 0.499119 0.515538 0.488014 0.398333 0.828943 0.766941 0.471236 0.216809 0.512699 0.518704 0.524450 0.518261 0.510777 0.520891 0.515170 0.509760 0.521570 0.521524 0.523666 0.519065 0.512443 0.519109 0.516117 +0.547684 +0.505123 0.499821 0.513366 0.515664 0.510853 0.514724 0.490220 0.502060 0.510466 0.506174 0.504278 0.503861 0.670183 0.454007 0.860618 0.735834 0.033170 0.510442 0.519891 0.511104 0.514925 0.522201 0.510602 0.512966 0.510836 0.516798 0.523060 0.517056 0.511105 0.514877 0.517773 0.509682 +0.244747 +0.498783 0.497486 0.488647 0.504259 0.504316 0.496165 0.500022 0.509376 0.491043 0.503627 0.510308 0.498715 0.081058 0.317340 0.592549 0.625617 0.989916 0.513391 0.523140 0.517761 0.510976 0.511794 0.515221 0.523670 0.515872 0.519999 0.519353 0.516935 0.514242 0.521251 0.519388 0.522278 +0.424200 +0.506808 0.493802 0.500200 0.504793 0.486065 0.488488 0.506425 0.503444 0.512336 0.509296 0.499694 0.500555 0.382322 0.935831 0.914656 0.288664 0.987088 0.520913 0.516962 0.514854 0.510798 0.523091 0.521672 0.509924 0.520274 0.510015 0.512772 0.519090 0.519185 0.524095 0.516669 0.516759 +0.687750 +0.505153 0.507579 0.507724 0.487708 0.499644 0.503381 0.498103 0.505423 0.509875 0.510138 0.495520 0.488036 0.194274 0.740074 0.242695 0.958033 0.783868 0.520814 0.515321 0.512351 0.515949 0.519264 0.513915 0.512498 0.523463 0.520290 0.516412 0.521328 0.510948 0.510807 0.523173 0.519488 +0.082571 +0.507649 0.489019 0.493369 0.510380 0.508953 0.509366 0.484637 0.511851 0.494905 0.486454 0.487086 0.513397 0.533095 0.117268 0.450685 0.076490 0.603918 0.517992 0.518173 0.510811 0.519003 0.512893 0.522360 0.511902 0.521860 0.523879 0.510348 0.512995 0.523174 0.520984 0.517643 0.519768 +0.803031 +0.515724 0.501122 0.511297 0.514786 0.499030 0.490607 0.506318 0.495810 0.512019 0.513552 0.496698 0.509355 0.873798 0.095937 0.203945 0.163828 0.415238 0.520748 0.513821 0.510139 0.514771 0.515120 0.520693 0.524552 0.516176 0.511854 0.519646 0.511647 0.510953 0.513473 0.519005 0.518722 +0.802438 +0.490659 0.497100 0.507367 0.484942 0.489488 0.485629 0.492534 0.503830 0.489034 0.500591 0.509835 0.499813 0.831041 0.997450 0.772482 0.530058 0.105931 0.510554 0.509823 0.517713 0.512159 0.510931 0.524080 0.517773 0.516219 0.519390 0.509841 0.520903 0.515186 0.512852 0.520975 0.511669 +0.390253 +0.488484 0.493872 0.507153 0.507759 0.506854 0.506355 0.493545 0.489285 0.508901 0.497524 0.489648 0.505718 0.873947 0.599345 0.751290 0.613909 0.359038 0.523009 0.510007 0.522991 0.517663 0.518960 0.511936 0.509810 0.520132 0.514375 0.517949 0.513952 0.514639 0.523488 0.519630 0.524379 +0.429348 +0.489862 0.514850 0.503586 0.485934 0.488502 0.513021 0.515162 0.496319 0.513483 0.511239 0.494285 0.511958 0.368752 0.028285 0.012752 0.153802 0.023116 0.512866 0.523174 0.510512 0.522218 0.520273 0.520894 0.513507 0.517114 0.510473 0.510757 0.513960 0.518663 0.512301 0.514588 0.517035 +0.838846 +0.505381 0.503790 0.511164 0.488089 0.502967 0.510634 0.497686 0.514225 0.488526 0.509536 0.507043 0.490869 0.400412 0.752690 0.126946 0.990983 0.166707 0.521145 0.519471 0.514948 0.518226 0.515793 0.513039 0.513788 0.519705 0.513136 0.521421 0.511517 0.510287 0.522580 0.516238 0.519776 +0.036938 +0.498101 0.509471 0.508314 0.494554 0.500237 0.497015 0.491496 0.504674 0.505484 0.494742 0.512910 0.501210 0.912166 0.459123 0.786812 0.187561 0.002293 0.517125 0.523801 0.511328 0.516238 0.515719 0.512270 0.509939 0.522401 0.519630 0.521132 0.510856 0.510805 0.514456 0.523734 0.523456 +0.772428 +0.510857 0.505558 0.491524 0.497778 0.511426 0.488068 0.494707 0.491426 0.498522 0.499135 0.504893 0.494693 0.030108 0.636550 0.604629 0.507977 0.258381 0.515518 0.517741 0.523766 0.515734 0.518311 0.523799 0.511896 0.520631 0.514897 0.516535 0.516824 0.521821 0.511994 0.513712 0.515019 +0.594465 +0.502639 0.502815 0.512035 0.512105 0.488922 0.507375 0.494530 0.498326 0.485526 0.515032 0.514780 0.490076 0.729883 0.092544 0.227407 0.200839 0.999689 0.515357 0.522138 0.520670 0.509752 0.514315 0.523969 0.518782 0.517876 0.509679 0.519014 0.518289 0.515265 0.511447 0.521222 0.513123 +0.694754 +0.493221 0.484910 0.505404 0.506324 0.510142 0.504049 0.493912 0.489241 0.491457 0.485353 0.498611 0.499061 0.039773 0.953616 0.604743 0.410425 0.911319 0.513317 0.513526 0.522573 0.515847 0.520154 0.522341 0.524544 0.512087 0.513449 0.523219 0.519781 0.524356 0.512629 0.518961 0.520648 +0.615389 +0.494556 0.499599 0.493881 0.512693 0.499126 0.499283 0.504518 0.514327 0.510179 0.491998 0.494511 0.502710 0.729416 0.244498 0.238070 0.273480 0.985788 0.523442 0.510599 0.511837 0.514612 0.520814 0.522754 0.522575 0.511462 0.513377 0.513621 0.511200 0.517086 0.513489 0.511946 0.511924 +0.677629 +0.511448 0.514165 0.487954 0.485240 0.499402 0.492107 0.499344 0.493067 0.500217 0.504351 0.507755 0.498484 0.347475 0.696980 0.500139 0.626877 0.151527 0.522027 0.513309 0.516320 0.510422 0.511437 0.515156 0.515176 0.511459 0.518143 0.522280 0.512289 0.517426 0.517901 0.510231 0.519025 +0.390025 +0.511523 0.511141 0.501583 0.493199 0.484710 0.515657 0.512200 0.506299 0.492779 0.497710 0.500929 0.494770 0.880899 0.356135 0.141778 0.097006 0.156176 0.523261 0.517167 0.519672 0.515006 0.517987 0.511581 0.516728 0.510531 0.515383 0.515702 0.521217 0.523673 0.513590 0.514868 0.511042 +0.619212 +0.513393 0.507924 0.515442 0.508973 0.512532 0.496713 0.501679 0.496359 0.505295 0.498406 0.504573 0.502199 0.439948 0.748413 0.301807 0.723072 0.708302 0.519359 0.517308 0.509890 0.510236 0.520620 0.521509 0.523230 0.523866 0.517836 0.518847 0.510286 0.514659 0.510095 0.509772 0.521462 +0.395641 +0.494326 0.502881 0.492150 0.496410 0.498237 0.499302 0.500909 0.507297 0.498744 0.489762 0.514969 0.492797 0.137158 0.508304 0.753287 0.156005 0.036594 0.518038 0.514275 0.524188 0.522419 0.517432 0.512198 0.512211 0.509795 0.514739 0.512455 0.519845 0.513835 0.510054 0.523708 0.516374 +0.804192 +0.495623 0.513233 0.485961 0.502473 0.487685 0.490875 0.507407 0.496994 0.505768 0.491772 0.485309 0.492435 0.715082 0.515354 0.165430 0.313838 0.781687 0.511485 0.524238 0.517301 0.517782 0.520779 0.522038 0.523934 0.513657 0.510815 0.514533 0.524404 0.511811 0.516661 0.518058 0.518963 +0.549867 +0.491207 0.487283 0.506704 0.503087 0.488805 0.513336 0.493916 0.493397 0.488060 0.504303 0.489954 0.500339 0.843169 0.694577 0.150142 0.564752 0.774403 0.521408 0.509887 0.515622 0.512194 0.519868 0.514254 0.518478 0.516266 0.513345 0.513695 0.520440 0.524119 0.521915 0.522831 0.520877 +0.404639 +0.508461 0.509890 0.506616 0.511765 0.486732 0.507769 0.515596 0.500735 0.484682 0.512288 0.513912 0.486122 0.956598 0.679803 0.010815 0.618996 0.785370 0.524253 0.520505 0.513435 0.516308 0.519253 0.514695 0.513577 0.523165 0.513883 0.515722 0.516532 0.512995 0.521626 0.518521 0.519191 +0.332618 +0.508326 0.502772 0.499164 0.511463 0.510892 0.503717 0.512765 0.506896 0.488156 0.487985 0.512170 0.513732 0.583305 0.379345 0.935999 0.734294 0.169804 0.521365 0.513628 0.520576 0.515217 0.522084 0.520805 0.512386 0.516501 0.510472 0.510677 0.517808 0.519394 0.515371 0.512272 0.517911 +0.310723 +0.486231 0.490571 0.485471 0.507017 0.515126 0.515757 0.498850 0.491652 0.491718 0.500921 0.486008 0.509016 0.659899 0.739145 0.650418 0.512396 0.477364 0.511503 0.513923 0.523859 0.521946 0.519254 0.513011 0.515386 0.520843 0.520433 0.515487 0.514344 0.521298 0.517093 0.513524 0.516539 +0.448720 +0.504904 0.500669 0.493775 0.492902 0.501647 0.496203 0.488199 0.486574 0.492784 0.487569 0.500869 0.490682 0.301154 0.757720 0.612482 0.389740 0.528144 0.524094 0.516905 0.515848 0.514658 0.518913 0.517000 0.510717 0.512693 0.513917 0.509748 0.523889 0.511625 0.511702 0.511150 0.511528 +0.716069 +0.489461 0.506089 0.514542 0.510119 0.495601 0.487148 0.490174 0.508730 0.506902 0.497102 0.508339 0.502299 0.756124 0.804899 0.952126 0.573220 1 0.518700 0.521062 0.510151 0.522732 0.510797 0.509907 0.516685 0.513098 0.521040 0.521986 0.518136 0.522062 0.520840 0.516650 0.514201 +0.462336 +0.503455 0.504330 0.497576 0.510881 0.505099 0.508030 0.498297 0.493164 0.500921 0.488343 0.514111 0.503403 0.870344 0.078313 0.215896 0.884026 0.874515 0.511576 0.513364 0.522715 0.515380 0.513464 0.516208 0.510297 0.510303 0.523540 0.515066 0.509756 0.521085 0.521396 0.513331 0.514818 +0.141745 +0.513868 0.503408 0.508333 0.498111 0.509301 0.485033 0.500279 0.484724 0.505331 0.507143 0.496657 0.510814 0.986655 0.474638 0.350647 0.974873 0.599948 0.522775 0.511402 0.523907 0.523570 0.520764 0.521330 0.517916 0.523663 0.510206 0.521318 0.510999 0.510646 0.510618 0.522656 0.516624 +0.157393 +0.511834 0.494485 0.507353 0.504447 0.486814 0.506128 0.506751 0.511613 0.485257 0.496776 0.497153 0.485671 0.944455 0.752371 0.764592 0.009380 0.510059 0.513089 0.513013 0.510318 0.516017 0.514658 0.514845 0.514695 0.516537 0.511881 0.517979 0.516404 0.521562 0.510347 0.511184 0.519931 +0.793920 +0.509664 0.491942 0.492339 0.487918 0.490593 0.515126 0.490647 0.503626 0.496962 0.506853 0.493795 0.505823 0.764952 0.059975 0.242338 0.951924 0.185588 0.522604 0.517939 0.516846 0.524358 0.520280 0.518686 0.512971 0.522149 0.523581 0.516519 0.512397 0.521538 0.518695 0.523283 0.522653 +0.160233 +0.500026 0.506712 0.507797 0.486890 0.494096 0.505004 0.488245 0.513971 0.494937 0.484709 0.491842 0.507550 0.918800 0.890731 0.474981 0.116944 0.016471 0.518623 0.514026 0.509909 0.510825 0.515663 0.513609 0.515203 0.513799 0.513616 0.509950 0.510315 0.521973 0.518642 0.512156 0.520648 +0.781086 +0.504962 0.504275 0.487093 0.513446 0.485050 0.502977 0.500655 0.508747 0.488418 0.490530 0.485455 0.492672 0.496084 0.530726 0.324614 0.749368 0.329426 0.518074 0.518314 0.522799 0.523720 0.522812 0.518168 0.520876 0.522584 0.519890 0.520173 0.521290 0.510432 0.512109 0.513489 0.516653 +0.347131 +0.499678 0.512149 0.504788 0.498062 0.502778 0.511839 0.506417 0.491194 0.495988 0.488977 0.489947 0.504019 0.210645 0.692443 0.308407 0.558646 0.239141 0.513487 0.521518 0.524605 0.515277 0.517065 0.511835 0.521136 0.524243 0.509716 0.523675 0.514873 0.518906 0.517302 0.510216 0.523558 +0.470350 +0.509598 0.511282 0.515868 0.512161 0.489675 0.487440 0.492634 0.511002 0.499535 0.485303 0.486395 0.505341 0.283631 0.453635 0.606465 0.335950 0.131935 0.521321 0.513301 0.512947 0.517397 0.517281 0.521325 0.515795 0.521470 0.518158 0.519045 0.514155 0.517042 0.520914 0.516419 0.516648 +0.595235 +0.500514 0.499914 0.484633 0.515342 0.492010 0.497263 0.510524 0.506065 0.494795 0.496588 0.515510 0.497690 0.191557 0.114009 0.716448 0.453912 0.267209 0.519592 0.522835 0.522613 0.521231 0.515100 0.523719 0.515512 0.520943 0.521112 0.516400 0.524469 0.510217 0.520466 0.518194 0.520166 +0.519201 +0.499927 0.502719 0.497120 0.484672 0.504781 0.514685 0.500052 0.499761 0.489073 0.497936 0.490113 0.496973 0.624046 0.604179 0.936350 0.632468 0.045293 0.519620 0.516151 0.515101 0.514666 0.516237 0.524520 0.521163 0.517773 0.521560 0.524425 0.518732 0.517236 0.511164 0.515188 0.513100 +0.335710 +0.492240 0.505239 0.496897 0.513594 0.512560 0.489180 0.502694 0.489832 0.484915 0.496919 0.514103 0.513090 0.755494 0.221394 0.213708 0.121239 0.155537 0.512099 0.523503 0.520921 0.518638 0.510545 0.516230 0.514212 0.513713 0.524599 0.513749 0.524334 0.520839 0.515660 0.520531 0.509762 +0.749675 +0.489886 0.487364 0.515916 0.494949 0.500824 0.498046 0.496068 0.508035 0.489471 0.487018 0.503096 0.487976 0.916245 0.968318 0.521991 0.624591 0.752500 0.523565 0.519671 0.514855 0.512006 0.523913 0.519060 0.518450 0.514009 0.521327 0.521829 0.513564 0.522599 0.512442 0.520103 0.523799 +0.448190 +0.502158 0.493671 0.498761 0.504960 0.503222 0.488365 0.515030 0.512532 0.486881 0.493819 0.496716 0.516007 0.060617 0.026477 0.657652 0.005542 0.063532 0.524216 0.524307 0.522056 0.513726 0.509779 0.519993 0.512942 0.518678 0.512209 0.518886 0.523628 0.521746 0.512279 0.517692 0.511022 +1 +0.500789 0.497748 0.487732 0.491602 0.496888 0.490925 0.497229 0.496925 0.507414 0.492395 0.484968 0.485995 0.807007 0.370205 0.437184 0.331287 0.831371 0.517756 0.517075 0.523591 0.511344 0.519814 0.522912 0.514213 0.520610 0.518348 0.522583 0.514565 0.517304 0.517068 0.520372 0.511977 +0.615300 +0.506116 0.489583 0.510119 0.489345 0.515909 0.497904 0.500483 0.489878 0.509697 0.507858 0.509288 0.484688 0.106891 0.178240 0.450703 0.367540 0.679719 0.518734 0.516635 0.513263 0.515135 0.516270 0.511729 0.516912 0.523702 0.513682 0.510826 0.520548 0.519184 0.516298 0.520478 0.513498 +0.566336 +0.511887 0.505823 0.512570 0.509571 0.497040 0.492159 0.492112 0.508250 0.487858 0.509544 0.491445 0.492470 0.595319 0.143659 0.689474 0.433529 0.932564 0.510316 0.515008 0.510758 0.517333 0.523894 0.522461 0.516977 0.513207 0.521696 0.511454 0.512646 0.513357 0.518113 0.511040 0.521169 +0.589076 +0.486083 0.507767 0.507966 0.497713 0.515005 0.502776 0.485207 0.510788 0.485333 0.510501 0.503780 0.495337 0.791502 0.967437 0.725278 0.757838 0.594818 0.520522 0.517941 0.523352 0.519102 0.521721 0.514326 0.523762 0.511986 0.515195 0.522071 0.521307 0.510401 0.520954 0.516894 0.516081 +0.365139 +0.504353 0.506710 0.513209 0.484776 0.496266 0.504660 0.515963 0.498165 0.514444 0.506409 0.492666 0.513381 0.068417 0.026257 0.961028 0.079065 0.845326 0.523330 0.511297 0.520204 0.515215 0.522089 0.518617 0.517942 0.514560 0.520035 0.516950 0.517429 0.521280 0.510419 0.520983 0.521532 +0.823235 +0.487659 0.499106 0.487955 0.507368 0.501344 0.486795 0.497700 0.500137 0.493321 0.494142 0.495969 0.512521 0.344912 0.655276 0.094764 0.509401 0.186881 0.518295 0.519443 0.513212 0.514778 0.514230 0.515991 0.516620 0.523216 0.519352 0.510624 0.511423 0.520099 0.522564 0.514409 0.510111 +0.554662 +0.507422 0.505771 0.487943 0.488330 0.490651 0.511833 0.505356 0.487285 0.494522 0.488685 0.486897 0.492438 0.259053 0.683372 0.963799 0.616743 0.945862 0.515172 0.522597 0.521276 0.524478 0.513828 0.522239 0.520301 0.512352 0.522875 0.516083 0.523981 0.509824 0.516869 0.517452 0.509613 +0.415807 +0.493788 0.490955 0.505346 0.507601 0.515969 0.506166 0.495919 0.487734 0.497493 0.509057 0.504037 0.514942 0.706974 0.338066 0.669659 0.651827 0.178253 0.519718 0.521179 0.512773 0.510647 0.524210 0.517538 0.516993 0.510080 0.510413 0.524150 0.523466 0.518748 0.511736 0.521055 0.524132 +0.412602 +0.510417 0.512336 0.504914 0.501232 0.505522 0.513073 0.493556 0.510151 0.494959 0.486102 0.488548 0.507869 0.411099 0.235359 0.744347 0.005584 0.763263 0.519976 0.517328 0.510969 0.513092 0.510269 0.520189 0.519737 0.518981 0.518184 0.510766 0.511291 0.510863 0.522891 0.522434 0.510196 +0.973625 +0.495921 0.498494 0.513838 0.504228 0.511882 0.507957 0.500961 0.508856 0.485891 0.486501 0.504019 0.502862 0.796015 0.754373 0.394173 0.964970 0.290132 0.519189 0.514360 0.511683 0.521820 0.513702 0.513356 0.512158 0.512671 0.519610 0.522114 0.518159 0.510627 0.510690 0.514266 0.520716 +0.276738 +0.486450 0.493187 0.502562 0.503600 0.503432 0.497492 0.492269 0.486425 0.501111 0.513681 0.506434 0.500997 0.891929 0.596659 0.639107 0.544618 0.631889 0.514546 0.522655 0.520751 0.523291 0.519315 0.522720 0.520670 0.513214 0.511059 0.523248 0.519125 0.513649 0.518090 0.521084 0.520802 +0.408728 +0.497254 0.514653 0.488667 0.495385 0.499460 0.484885 0.497487 0.499947 0.491993 0.493728 0.514714 0.508506 0.051067 0.635568 0.109926 0.146914 0.351342 0.519314 0.516736 0.509809 0.513809 0.511222 0.519725 0.511029 0.510613 0.519937 0.520741 0.518350 0.518615 0.524494 0.511520 0.512180 +0.887142 +0.491529 0.491380 0.505748 0.500094 0.493067 0.501604 0.500362 0.495620 0.491779 0.489448 0.504282 0.510731 0.423731 0.383427 0.495945 0.198693 0.956480 0.520098 0.511238 0.523016 0.522818 0.515700 0.524415 0.514238 0.512143 0.511735 0.523877 0.522664 0.513949 0.515893 0.512300 0.523405 +0.693277 +0.487557 0.488150 0.507982 0.485913 0.488870 0.505527 0.494010 0.499052 0.513602 0.490231 0.492256 0.506542 0.101092 0.790709 0.644903 0.893215 0.198616 0.519556 0.513916 0.512932 0.510575 0.515428 0.520528 0.511960 0.516130 0.524447 0.518152 0.510769 0.519717 0.516112 0.521579 0.515409 +0.293333 +0.487640 0.493341 0.484716 0.485743 0.514498 0.486262 0.510535 0.509130 0.504275 0.514599 0.501862 0.490084 0.980451 0.292365 0.143750 0.207740 0.894742 0.522107 0.510511 0.524344 0.520088 0.509682 0.512347 0.522391 0.515099 0.518605 0.522197 0.521734 0.517716 0.522997 0.510545 0.513372 +0.624967 +0.484659 0.499117 0.503032 0.507321 0.509703 0.510752 0.503560 0.509685 0.489065 0.494826 0.504297 0.506826 0.873337 0.353209 0.003089 0.861698 0.870006 0.515639 0.522459 0.510447 0.515036 0.514095 0.516706 0.512621 0.518649 0.515417 0.512619 0.518047 0.510951 0.514701 0.517497 0.514374 +0.184223 +0.502830 0.510022 0.498909 0.498603 0.512124 0.495921 0.499988 0.496056 0.489272 0.512080 0.504723 0.503548 0.332831 0.750681 0.390198 0.203961 0.439049 0.519403 0.520313 0.513305 0.516754 0.518161 0.517339 0.510277 0.516682 0.517803 0.515802 0.524019 0.513482 0.523922 0.523108 0.513973 +0.716447 +0.512591 0.505066 0.487405 0.513554 0.511868 0.495066 0.497523 0.512796 0.504642 0.500550 0.511044 0.506330 0.002635 0.237650 0.225479 0.814390 0.349685 0.521881 0.515729 0.518746 0.511721 0.515083 0.518603 0.522342 0.523219 0.517537 0.520751 0.523046 0.522581 0.515822 0.518866 0.513953 +0.335672 +0.496785 0.490668 0.492293 0.508475 0.501699 0.485366 0.506618 0.509981 0.505341 0.486751 0.509533 0.493545 0.058825 0.933996 0.102668 0.248165 0.817779 0.513614 0.519647 0.520364 0.518436 0.516201 0.522244 0.517631 0.513664 0.521825 0.517107 0.521038 0.512375 0.520036 0.513598 0.520502 +0.696748 +0.512655 0.510019 0.515394 0.496863 0.508456 0.492576 0.510542 0.492984 0.485460 0.515042 0.495309 0.486525 0.166504 0.351683 0.367067 0.736630 0.408124 0.513663 0.517267 0.521262 0.518695 0.519612 0.521421 0.511259 0.519998 0.517656 0.512369 0.511406 0.517922 0.517038 0.516642 0.523235 +0.259449 +0.493804 0.495151 0.503344 0.507859 0.490414 0.488105 0.511259 0.503636 0.507924 0.507765 0.486466 0.500747 0.419020 0.271414 0.285804 0.961274 0.218103 0.523808 0.509769 0.523741 0.524553 0.522283 0.511732 0.521788 0.510553 0.524536 0.522379 0.513216 0.515454 0.510589 0.524204 0.510456 +0.111722 +0.493959 0.502950 0.510293 0.502448 0.502049 0.497909 0.485520 0.485396 0.509874 0.504026 0.514426 0.512049 0.325093 0.801942 0.296546 0.369332 0.784301 0.509966 0.518750 0.524486 0.511405 0.516574 0.517349 0.512693 0.512163 0.515026 0.513065 0.520656 0.520537 0.520540 0.516656 0.516789 +0.619553 +0.514557 0.485620 0.494887 0.495774 0.506273 0.489191 0.492431 0.503215 0.499220 0.507069 0.510578 0.501930 0.715007 0.262895 0.198587 0.172946 0.549858 0.519180 0.524200 0.510277 0.516179 0.518077 0.515940 0.523680 0.509823 0.521741 0.517840 0.520864 0.515731 0.522673 0.521606 0.516140 +0.677276 +0.496662 0.493753 0.491529 0.498216 0.494615 0.491866 0.497320 0.514335 0.486593 0.498374 0.509929 0.507410 0.133797 0.053166 0.888555 0.925002 0.047134 0.518259 0.511794 0.523318 0.524544 0.520321 0.509979 0.522159 0.513802 0.516145 0.515859 0.510247 0.511705 0.509943 0.521221 0.517786 +0.024621 +0.495831 0.494808 0.500540 0.503079 0.505378 0.508265 0.493988 0.489093 0.494226 0.492841 0.506661 0.501145 0.153762 0.357370 0.878372 0.914208 0.769442 0.516801 0.512003 0.516261 0.518431 0.511005 0.516077 0.518370 0.510123 0.521258 0.513077 0.524026 0.511516 0.520929 0.510000 0.517483 +0.152194 +0.503266 0.508242 0.511926 0.493188 0.514723 0.503352 0.512293 0.493263 0.490860 0.505913 0.503817 0.498933 0.561422 0.849423 0.714975 0.712100 0.439261 0.512630 0.522600 0.520140 0.510886 0.512757 0.516562 0.512469 0.513853 0.511179 0.513103 0.510502 0.509832 0.510132 0.516363 0.512639 +0.404866 +0.493444 0.489549 0.513767 0.503406 0.503016 0.486231 0.514512 0.514145 0.505452 0.498521 0.485875 0.501826 0.728600 0.540274 0.679088 0.017809 0.085119 0.517456 0.515511 0.512653 0.516847 0.524351 0.517615 0.520357 0.522984 0.510691 0.516025 0.518245 0.519780 0.515883 0.512157 0.514785 +0.931172 +0.505469 0.504245 0.514023 0.502822 0.506426 0.492481 0.490696 0.508155 0.498018 0.495020 0.507468 0.512699 0.678491 0.977472 0.259967 0.029313 0.282093 0.518970 0.511127 0.522646 0.515528 0.520573 0.514685 0.511271 0.519937 0.524311 0.516957 0.515963 0.517633 0.521507 0.516591 0.511651 +0.967832 +0.498080 0.492301 0.508664 0.503704 0.513530 0.510239 0.502779 0.494906 0.496317 0.489816 0.504158 0.512862 0.690703 0.086279 0.001009 0.932930 0.193309 0.517705 0.523290 0.524460 0.523983 0.521261 0.514454 0.516176 0.524427 0.519428 0.518498 0.516743 0.523652 0.522814 0.518202 0.516144 +0.253644 +0.489073 0.489049 0.506234 0.506838 0.499497 0.507070 0.491655 0.503949 0.511190 0.512183 0.484664 0.490525 0.615444 0.128520 0.422279 0.003122 0.422055 0.513154 0.524125 0.517888 0.517125 0.518580 0.518243 0.514729 0.524547 0.509628 0.516750 0.512452 0.523412 0.522149 0.514574 0.513322 +0.940725 +0.510400 0.502537 0.495713 0.513448 0.515857 0.485744 0.503031 0.515257 0.494313 0.497536 0.495367 0.511995 0.160923 0.624217 0.469337 0.314745 0.007279 0.513124 0.514876 0.510372 0.517730 0.520812 0.523023 0.522618 0.510071 0.516153 0.520150 0.523725 0.510700 0.514683 0.523217 0.520128 +0.556770 +0.512603 0.492632 0.513990 0.504377 0.504198 0.512382 0.492501 0.510176 0.504628 0.509742 0.503864 0.505266 0.051899 0.612272 0.869441 0.912120 0.689687 0.509871 0.520682 0.519234 0.522135 0.518523 0.524352 0.513807 0.521542 0.511881 0.514791 0.510258 0.519970 0.511398 0.523617 0.509776 +0.164574 +0.502128 0.496256 0.495508 0.498087 0.489056 0.499768 0.501653 0.500008 0.512429 0.488020 0.491471 0.501770 0.281204 0.693297 0.652070 0.257368 0.380047 0.520583 0.523234 0.511961 0.512414 0.523117 0.520254 0.513247 0.515355 0.523876 0.518912 0.521038 0.523393 0.519305 0.517566 0.515887 +0.605659 +0.491020 0.496429 0.514344 0.506899 0.485589 0.515807 0.486973 0.514583 0.510507 0.502199 0.493282 0.505305 0.908865 0.032713 0.380091 0.475358 0.445142 0.524229 0.524538 0.519334 0.513218 0.524596 0.524596 0.518334 0.520515 0.519776 0.512419 0.517031 0.513525 0.522543 0.519104 0.517911 +0.480686 +0.514691 0.507152 0.490938 0.500997 0.484630 0.485990 0.488220 0.493562 0.495510 0.503802 0.503804 0.497091 0.630346 0.409010 0.160584 0.940847 0.148898 0.519545 0.521277 0.513709 0.518049 0.519907 0.522177 0.517788 0.520060 0.510449 0.519042 0.516063 0.509920 0.516506 0.516152 0.518638 +0.285597 +0.487372 0.489599 0.507412 0.493987 0.499628 0.488334 0.501739 0.506726 0.506208 0.510344 0.501588 0.512545 0.249672 0.129918 0.910684 0.584134 0.289821 0.515769 0.511101 0.512039 0.510724 0.509785 0.517853 0.516337 0.512416 0.513977 0.516762 0.509644 0.522786 0.514608 0.523653 0.518575 +0.501559 +0.492649 0.491063 0.492213 0.513844 0.507615 0.510174 0.509547 0.501117 0.507095 0.512501 0.511826 0.515143 0.353280 0.193542 0.443588 0.883468 0.501020 0.515992 0.517992 0.515271 0.522123 0.519563 0.519264 0.516111 0.515958 0.520417 0.519132 0.510651 0.516238 0.519146 0.511629 0.510048 +0.126828 +0.500573 0.515854 0.496648 0.511614 0.499154 0.504770 0.515658 0.503260 0.504629 0.502407 0.511125 0.493665 0.170811 0.687508 0.424761 0.684824 0.350290 0.524157 0.522547 0.521704 0.524301 0.523794 0.522722 0.520150 0.515675 0.524199 0.517200 0.520730 0.523973 0.517867 0.514243 0.520071 +0.295226 +0.503655 0.504231 0.501177 0.493359 0.502965 0.511725 0.486851 0.503598 0.486241 0.497589 0.489746 0.513040 0.942091 0.050663 0.844460 0.378302 0.429235 0.522017 0.519684 0.518788 0.516679 0.517588 0.521092 0.514498 0.518891 0.512383 0.524434 0.511168 0.520561 0.509977 0.511919 0.511043 +0.550245 +0.489433 0.515290 0.499792 0.500703 0.507511 0.491663 0.515396 0.493702 0.507837 0.490741 0.490622 0.501622 0.912768 0.571486 0.869101 0.201062 0.747998 0.514522 0.514007 0.516035 0.518724 0.514840 0.514186 0.518905 0.514403 0.520267 0.519082 0.519900 0.510301 0.519768 0.518586 0.522363 +0.738279 +0.488313 0.487183 0.485884 0.508924 0.499754 0.501808 0.492497 0.506402 0.497739 0.513486 0.501820 0.503543 0.950250 0.072145 0.637035 0.742989 0.208294 0.512727 0.512491 0.510905 0.522698 0.521606 0.520633 0.524503 0.517038 0.520913 0.524413 0.518728 0.514478 0.523842 0.516133 0.519089 +0.255322 +0.493926 0.512270 0.487082 0.487891 0.503797 0.504143 0.503194 0.491569 0.505343 0.515285 0.491842 0.510812 0.715108 0.950531 0.800020 0.012133 0.758951 0.513677 0.509666 0.516400 0.514183 0.516969 0.512151 0.516818 0.518639 0.509727 0.513484 0.516731 0.522796 0.517761 0.514070 0.514817 +0.964147 +0.493775 0.491925 0.486931 0.487893 0.495797 0.513251 0.502030 0.491933 0.486700 0.485484 0.506623 0.499900 0.490562 0.795685 0.207485 0.616181 0.517643 0.518769 0.521005 0.520009 0.524545 0.521911 0.514776 0.522695 0.514345 0.524266 0.512209 0.522442 0.520665 0.521294 0.522709 0.519625 +0.429613 +0.505101 0.503035 0.499044 0.514606 0.514217 0.493336 0.502748 0.507179 0.511477 0.499038 0.495116 0.508774 0.148568 0.132060 0.888777 0.663184 0.913808 0.510162 0.521651 0.519260 0.523354 0.513109 0.513524 0.513729 0.516016 0.518192 0.523394 0.513716 0.524503 0.520427 0.516915 0.516276 +0.446196 +0.505216 0.494946 0.487552 0.498217 0.510080 0.500717 0.514614 0.502370 0.485135 0.492207 0.503678 0.486230 0.592538 0.436651 0.377250 0.763284 0.050104 0.516634 0.513554 0.511111 0.515686 0.517900 0.510836 0.523683 0.519972 0.521425 0.512421 0.523219 0.518238 0.509952 0.522502 0.509691 +0.315052 +0.494976 0.492949 0.491763 0.503429 0.490810 0.514872 0.496228 0.497226 0.508624 0.488649 0.511390 0.506657 0.525153 0.734116 0.183984 0.934171 0.037250 0.518277 0.522783 0.523582 0.521639 0.512397 0.521117 0.514194 0.518272 0.517498 0.523024 0.521806 0.510847 0.512040 0.517612 0.521422 +0.040206 +0.487071 0.514722 0.490025 0.488893 0.513312 0.497638 0.495305 0.506196 0.493537 0.511429 0.508454 0.486910 0.321786 0.251329 0.964373 0.267643 0.953156 0.522730 0.515663 0.516978 0.516841 0.521212 0.524272 0.512443 0.511705 0.523451 0.515692 0.514903 0.523472 0.512311 0.510858 0.523173 +0.682891 +0.512013 0.509929 0.510397 0.488805 0.511546 0.495884 0.492494 0.498129 0.508024 0.492215 0.492492 0.487791 0.813312 0.259405 0.587154 0.019740 0.513886 0.517211 0.516622 0.518665 0.510684 0.514190 0.513241 0.512104 0.510186 0.509619 0.523366 0.510227 0.523955 0.516723 0.520208 0.519817 +0.886637 +0.498554 0.505968 0.491015 0.501471 0.514746 0.505810 0.501748 0.501046 0.512737 0.506876 0.505348 0.508668 0.718815 0.216710 0.546905 0.045226 0.546779 0.523661 0.521522 0.512187 0.522428 0.518074 0.521686 0.511782 0.518141 0.518570 0.517455 0.511083 0.510988 0.521335 0.512459 0.515598 +0.728575 +0.508302 0.491140 0.489288 0.495643 0.498841 0.493574 0.500822 0.492363 0.488597 0.510218 0.489343 0.514499 0.997906 0.439661 0.917547 0.840179 0.470049 0.513839 0.522880 0.514967 0.520739 0.517702 0.521044 0.524232 0.512559 0.513907 0.520686 0.513425 0.520540 0.521144 0.524334 0.511767 +0.167792 +0.509587 0.509316 0.512195 0.494847 0.484906 0.503627 0.512927 0.505624 0.500301 0.504957 0.512867 0.498604 0.779701 0.767807 0.012049 0.349605 0.471422 0.514605 0.509609 0.523972 0.517360 0.514874 0.510124 0.516143 0.521141 0.514280 0.521462 0.517708 0.513353 0.512181 0.512364 0.519276 +0.610719 +0.485858 0.498761 0.491825 0.502804 0.512431 0.496838 0.504791 0.489484 0.511746 0.511994 0.498422 0.497640 0.151665 0.133660 0.752055 0.466280 0.978258 0.516575 0.512468 0.514327 0.520871 0.515400 0.511873 0.523564 0.513273 0.512554 0.512020 0.513252 0.520479 0.520546 0.515380 0.522290 +0.482932 +0.491237 0.488518 0.513861 0.502812 0.488612 0.508579 0.486586 0.486041 0.505732 0.512514 0.498569 0.510480 0.561714 0.765299 0.888280 0.304804 0.053091 0.518950 0.518681 0.518632 0.524400 0.513581 0.516191 0.516108 0.519988 0.512801 0.522213 0.519351 0.523851 0.520743 0.522716 0.511973 +0.599803 +0.507433 0.495795 0.504784 0.487689 0.496674 0.512743 0.490061 0.509904 0.502067 0.510249 0.487972 0.485850 0.331534 0.973675 0.496331 0.682304 0.017957 0.518153 0.516464 0.521827 0.518683 0.517223 0.509814 0.523732 0.519788 0.523023 0.512630 0.523553 0.514735 0.513942 0.515667 0.519707 +0.346260 +0.502323 0.509635 0.500648 0.493299 0.494815 0.488396 0.498793 0.503323 0.499964 0.504863 0.506631 0.501770 0.220309 0.987211 0.820814 0.252589 0.114581 0.514463 0.511647 0.524372 0.519476 0.519556 0.524328 0.521318 0.519024 0.511895 0.523953 0.514749 0.520594 0.521506 0.516715 0.520414 +0.723439 +0.485896 0.491068 0.485354 0.492389 0.488065 0.492489 0.506967 0.492597 0.498499 0.493337 0.506534 0.514568 0.866089 0.626814 0.089811 0.332317 0.118145 0.512322 0.518317 0.519386 0.519009 0.514644 0.517533 0.519713 0.519168 0.521459 0.518295 0.520745 0.521772 0.512716 0.518765 0.509893 +0.587978 +0.489178 0.501694 0.504062 0.493125 0.495113 0.500449 0.515535 0.501377 0.507654 0.510161 0.485027 0.496917 0.870634 0.948333 0.871255 0.380598 0.979071 0.511406 0.515627 0.523182 0.520395 0.512272 0.523522 0.522135 0.516318 0.518965 0.514127 0.517956 0.517295 0.521984 0.522738 0.515057 +0.619654 +0.500515 0.484659 0.508731 0.489702 0.499988 0.504566 0.504912 0.515893 0.515164 0.497902 0.499493 0.512330 0.284082 0.028621 0.662406 0.839780 0.768095 0.522288 0.512935 0.519325 0.513445 0.510934 0.520542 0.520762 0.513887 0.517825 0.519604 0.522949 0.523214 0.519591 0.519848 0.511795 +0.250905 +0.496726 0.504520 0.487288 0.495438 0.490742 0.496426 0.496745 0.512448 0.505626 0.494490 0.491797 0.499774 0.067535 0.216433 0.899875 0.038160 0.862298 0.523816 0.511722 0.516002 0.521736 0.515221 0.513783 0.516182 0.515888 0.519736 0.511577 0.512815 0.519013 0.514654 0.514964 0.512967 +0.821948 +0.503544 0.492824 0.502241 0.485992 0.495324 0.489424 0.512843 0.494640 0.499298 0.499628 0.515429 0.511352 0.225421 0.844153 0.215377 0.159408 0.175406 0.522458 0.511313 0.511147 0.520171 0.516138 0.512976 0.518992 0.511655 0.519040 0.522457 0.518835 0.511030 0.522920 0.514467 0.516273 +0.842708 +0.513249 0.501077 0.501781 0.488918 0.505210 0.514757 0.514395 0.489640 0.503860 0.490694 0.489791 0.492004 0.484432 0.834277 0.344271 0.878726 0.849491 0.522670 0.515928 0.515792 0.514556 0.524314 0.518629 0.511702 0.519738 0.520025 0.517828 0.511734 0.511647 0.521407 0.521244 0.523718 +0.138211 +0.500795 0.514971 0.485244 0.506411 0.513422 0.486129 0.505547 0.496395 0.503649 0.510344 0.496771 0.513056 0.520084 0.595278 0.458912 0.238848 0.344454 0.523939 0.512506 0.518822 0.519180 0.523372 0.518189 0.519585 0.518946 0.522818 0.510452 0.514152 0.511607 0.522058 0.513064 0.514633 +0.709140 +0.513388 0.513644 0.513101 0.498926 0.510322 0.510398 0.499411 0.513681 0.499751 0.510496 0.512734 0.490880 0.147810 0.394047 0.853231 0.685190 0.500134 0.517842 0.518789 0.521295 0.509964 0.520473 0.512141 0.523264 0.521921 0.517767 0.514362 0.510554 0.516032 0.514292 0.523286 0.520831 +0.391780 +0.515939 0.506247 0.495082 0.502661 0.495913 0.487835 0.497402 0.506595 0.495757 0.503306 0.492872 0.501282 0.259485 0.944580 0.856661 0.277028 0.567927 0.511126 0.511063 0.510082 0.517968 0.514899 0.514512 0.520870 0.516730 0.521410 0.511955 0.519882 0.513433 0.510354 0.518838 0.522438 +0.750861 +0.490088 0.509441 0.510451 0.514338 0.510778 0.505342 0.499641 0.513721 0.506348 0.493412 0.486985 0.489478 0.869021 0.861463 0.927280 0.295394 0.007223 0.513997 0.522859 0.510209 0.514653 0.520621 0.519499 0.521615 0.517474 0.524353 0.515123 0.518636 0.518961 0.523930 0.520210 0.516339 +0.592736 +0.499554 0.504609 0.510259 0.486614 0.511015 0.490379 0.507881 0.514835 0.496780 0.500010 0.489109 0.498401 0.887114 0.728643 0.269954 0.761734 0.014550 0.514673 0.522557 0.514231 0.517665 0.520519 0.516898 0.510481 0.520661 0.511747 0.510649 0.518433 0.514922 0.524439 0.511686 0.511034 +0.296803 +0.489536 0.487840 0.495023 0.490534 0.501902 0.503235 0.495279 0.493638 0.504125 0.509176 0.515904 0.487154 0.269467 0.587558 0.792279 0.004684 0.658034 0.515895 0.514224 0.512619 0.522856 0.518446 0.510256 0.515143 0.511775 0.516172 0.515793 0.515211 0.517770 0.518174 0.511628 0.512399 +0.994283 +0.515448 0.486682 0.484670 0.497202 0.487402 0.511836 0.488381 0.500699 0.501366 0.515450 0.486592 0.510920 0.808970 0.326959 0.142073 0.053609 0.325977 0.519368 0.511085 0.516829 0.519910 0.510956 0.511533 0.522676 0.516210 0.522187 0.521313 0.523136 0.514395 0.522447 0.520496 0.521305 +0.767482 +0.507572 0.508734 0.485188 0.504955 0.499826 0.510799 0.515485 0.508118 0.501804 0.491553 0.485461 0.492228 0.872529 0.784199 0.312385 0.376139 0.105314 0.520065 0.514032 0.513938 0.516077 0.523233 0.519645 0.522109 0.518225 0.524525 0.512815 0.524517 0.509804 0.512937 0.516229 0.521555 +0.637902 +0.488943 0.504027 0.496187 0.491446 0.508875 0.487349 0.503291 0.498256 0.500065 0.507287 0.499212 0.503199 0.089051 0.556051 0.652461 0.827297 0.119987 0.511526 0.510193 0.520193 0.510518 0.516815 0.517183 0.515621 0.511748 0.513794 0.514989 0.522964 0.524468 0.520366 0.518319 0.523258 +0.226423 +0.494941 0.501115 0.515855 0.505190 0.498956 0.510157 0.503407 0.486740 0.490875 0.512424 0.507009 0.515317 0.021866 0.212466 0.265386 0.048405 0.924962 0.515272 0.518177 0.511937 0.510564 0.509907 0.517218 0.520629 0.515470 0.523212 0.523655 0.522843 0.511519 0.520147 0.519437 0.517991 +0.958595 +0.493453 0.506265 0.511593 0.499724 0.497040 0.505571 0.491901 0.485944 0.505465 0.497263 0.499188 0.503631 0.832345 0.912011 0.864667 0.748502 0.799491 0.511668 0.522381 0.512863 0.523756 0.519117 0.516764 0.511029 0.520765 0.517838 0.515864 0.520569 0.515802 0.513776 0.516455 0.519881 +0.295453 +0.493642 0.515381 0.499048 0.487784 0.486886 0.496352 0.512735 0.487715 0.501870 0.493022 0.507078 0.502394 0.757302 0.587272 0.993877 0.767353 0.389060 0.511080 0.522552 0.519073 0.518693 0.524325 0.520942 0.522400 0.510352 0.520937 0.523917 0.514313 0.521996 0.518763 0.524579 0.513027 +0.282228 +0.493616 0.486797 0.512006 0.491220 0.512432 0.509253 0.492453 0.499259 0.503375 0.488043 0.509954 0.484721 0.592414 0.354683 0.747424 0.680255 0.611625 0.524464 0.516990 0.519631 0.513268 0.517967 0.517942 0.521361 0.520152 0.510112 0.518482 0.516667 0.524125 0.513104 0.510345 0.522239 +0.348506 +0.510437 0.491030 0.510002 0.507317 0.491021 0.503670 0.511012 0.505435 0.490496 0.492990 0.503666 0.496630 0.455498 0.895312 0.419264 0.358228 0.293409 0.519824 0.521130 0.520772 0.516540 0.517985 0.517666 0.521673 0.513719 0.521252 0.514800 0.524409 0.518791 0.519764 0.519325 0.522177 +0.618278 +0.496540 0.496370 0.500797 0.513735 0.505935 0.500755 0.503350 0.510548 0.502309 0.492238 0.493608 0.500022 0.744998 0.936577 0.437944 0.084033 0.289071 0.521834 0.519091 0.517940 0.512137 0.510136 0.520459 0.518205 0.524355 0.514329 0.517011 0.515678 0.511777 0.513645 0.519328 0.524596 +0.827842 +0.494887 0.494233 0.511895 0.509433 0.507340 0.511980 0.488487 0.486934 0.487636 0.488305 0.507633 0.496828 0.093771 0.837473 0.024343 0.808382 0.460424 0.519155 0.512971 0.513090 0.521450 0.512952 0.520969 0.510322 0.512980 0.512709 0.513405 0.523032 0.514183 0.510076 0.514097 0.510395 +0.226259 +0.508444 0.488754 0.513316 0.498804 0.505151 0.497748 0.485664 0.490063 0.501908 0.487160 0.504222 0.513395 0.504454 0.105764 0.243036 0.690103 0.005464 0.520907 0.517064 0.522974 0.520105 0.517586 0.512182 0.513497 0.510220 0.511683 0.518414 0.520554 0.520719 0.524398 0.512855 0.518638 +0.361480 +0.509026 0.513459 0.509525 0.509067 0.510891 0.491951 0.489424 0.513822 0.511001 0.509018 0.513069 0.496993 0.308937 0.463169 0.725639 0.815514 0.237191 0.517312 0.511607 0.514947 0.520109 0.516829 0.519242 0.515596 0.513570 0.511570 0.519522 0.516365 0.524170 0.512937 0.509970 0.510627 +0.172120 +0.506559 0.487253 0.501722 0.494124 0.509268 0.503336 0.499318 0.490965 0.514423 0.494431 0.502944 0.507336 0.550731 0.303023 0.139174 0.362910 0.920488 0.513095 0.523411 0.518417 0.514385 0.524570 0.513390 0.513917 0.519593 0.514323 0.522804 0.510849 0.518583 0.524015 0.511420 0.510029 +0.601393 +0.509443 0.486833 0.507260 0.514500 0.500283 0.491533 0.497086 0.515711 0.512830 0.502598 0.514453 0.494318 0.379186 0.264521 0.517797 0.185457 0.666968 0.516588 0.514705 0.524425 0.522826 0.516641 0.512513 0.522671 0.519186 0.512879 0.521263 0.513588 0.514141 0.514346 0.514353 0.524173 +0.791093 +0.512727 0.496608 0.498306 0.486174 0.510198 0.498208 0.502863 0.504101 0.492662 0.511019 0.503866 0.510017 0.630205 0.042641 0.130300 0.316960 0.206456 0.514707 0.512014 0.517964 0.516598 0.510801 0.520750 0.519558 0.519531 0.513942 0.519361 0.520036 0.523711 0.523015 0.510952 0.522343 +0.588218 +0.494576 0.494747 0.505099 0.513719 0.511399 0.496505 0.498039 0.508591 0.507016 0.496034 0.502817 0.508792 0.185014 0.218572 0.819830 0.712647 0.627345 0.509804 0.511295 0.518208 0.516170 0.515351 0.518202 0.510191 0.523452 0.514528 0.514370 0.522459 0.523046 0.521005 0.524110 0.523523 +0.309209 +0.493202 0.514100 0.504353 0.511953 0.507147 0.498553 0.493657 0.511083 0.502832 0.511580 0.490846 0.489049 0.693531 0.578388 0.793007 0.236006 0.623310 0.513199 0.520057 0.521095 0.511791 0.517513 0.519334 0.518954 0.514909 0.516656 0.510670 0.521898 0.513924 0.511243 0.516856 0.512134 +0.646837 +0.513243 0.501025 0.503323 0.494564 0.505135 0.505826 0.487525 0.486001 0.493089 0.493551 0.501242 0.513421 0.684567 0.032561 0.833936 0.630731 0.874960 0.518684 0.523422 0.513220 0.512499 0.520850 0.513946 0.520862 0.517190 0.518826 0.517109 0.519563 0.513937 0.520426 0.520777 0.521185 +0.334625 +0.509431 0.505716 0.499710 0.505302 0.514869 0.500289 0.499602 0.488131 0.514235 0.504687 0.499650 0.513914 0.232962 0.492064 0.008951 0.317351 0.769360 0.510965 0.521302 0.513792 0.511437 0.517816 0.511460 0.517363 0.516968 0.519048 0.524269 0.517366 0.519994 0.523921 0.512687 0.520978 +0.616247 +0.502792 0.497546 0.484990 0.509426 0.485767 0.515010 0.493519 0.492085 0.494851 0.515975 0.511623 0.489124 0.524829 0.287158 0.696846 0.254980 0.275165 0.513746 0.523933 0.510058 0.516250 0.515615 0.511643 0.517927 0.518361 0.514402 0.509925 0.511058 0.513179 0.511976 0.511280 0.512355 +0.600056 +0.496720 0.497418 0.494467 0.513543 0.514447 0.492308 0.513306 0.511251 0.500141 0.491040 0.508880 0.486560 0.950281 0.596491 0.829017 0.007558 0.917849 0.523250 0.510684 0.519055 0.517220 0.514638 0.517931 0.519956 0.515346 0.512927 0.517413 0.520973 0.520010 0.510467 0.521810 0.517753 +0.748703 +0.502560 0.490413 0.511431 0.509248 0.509337 0.488678 0.495147 0.501484 0.495872 0.512613 0.500630 0.503186 0.130163 0.021339 0.357145 0.099509 0.204931 0.520428 0.520220 0.514365 0.522075 0.511720 0.519319 0.518328 0.517151 0.510169 0.513371 0.510760 0.521469 0.521232 0.518165 0.513584 +0.890801 +0.485496 0.496158 0.489652 0.486582 0.503040 0.485443 0.484759 0.515371 0.492243 0.489004 0.508071 0.500695 0.277993 0.766153 0.230987 0.320701 0.036933 0.513403 0.521635 0.519035 0.516775 0.519510 0.524305 0.520657 0.515032 0.518800 0.513442 0.510985 0.520879 0.510263 0.518174 0.516077 +0.666019 +0.512627 0.489507 0.500665 0.490042 0.499867 0.510538 0.486612 0.512918 0.505061 0.496825 0.500859 0.486919 0.067642 0.002018 0.876978 0.504869 0.062309 0.516319 0.510485 0.518555 0.515168 0.516136 0.511952 0.511213 0.519395 0.510174 0.516358 0.517938 0.514406 0.516980 0.522397 0.512202 +0.530735 +0.505346 0.500104 0.502442 0.497623 0.488533 0.510161 0.503449 0.500843 0.494842 0.500974 0.495680 0.502309 0.130070 0.461452 0.904869 0.912312 0.925712 0.524225 0.517658 0.522090 0.511299 0.515076 0.521827 0.513980 0.513969 0.518656 0.512561 0.514703 0.516625 0.511577 0.523321 0.512680 +0.253833 +0.487958 0.499786 0.501761 0.493286 0.506464 0.497381 0.511360 0.510641 0.495443 0.512473 0.504019 0.503791 0.614107 0.675617 0.715958 0.226282 0.298985 0.514498 0.515442 0.522229 0.511839 0.521018 0.510888 0.520506 0.521360 0.518478 0.517275 0.517126 0.511769 0.513105 0.521218 0.518382 +0.771305 +0.491228 0.501517 0.505252 0.496920 0.492867 0.496662 0.498452 0.486675 0.499450 0.506654 0.514602 0.505010 0.310259 0.664754 0.282752 0.701957 0.081510 0.523245 0.512116 0.510758 0.522028 0.512635 0.522291 0.511863 0.518893 0.515828 0.509996 0.519162 0.523630 0.523039 0.522194 0.519341 +0.317563 +0.504942 0.500311 0.488314 0.510161 0.502384 0.491551 0.486673 0.499786 0.501446 0.513144 0.500968 0.495112 0.910028 0.561200 0.128134 0.940666 0.118622 0.512662 0.520576 0.521945 0.510801 0.524221 0.522631 0.514254 0.514373 0.524425 0.515261 0.512641 0.520164 0.519469 0.523010 0.519098 +0.102359 +0.509050 0.515232 0.512635 0.489549 0.486068 0.515176 0.509332 0.501385 0.485023 0.488354 0.507910 0.490463 0.346414 0.880816 0.960348 0.669224 0.352109 0.517317 0.520140 0.524105 0.522576 0.512840 0.515614 0.524381 0.514414 0.519535 0.514652 0.520218 0.512073 0.523010 0.517774 0.524413 +0.393584 +0.490798 0.501078 0.496015 0.505307 0.508470 0.486340 0.495556 0.489091 0.490913 0.492760 0.493177 0.489554 0.707860 0.218668 0.437587 0.097591 0.983129 0.513491 0.516762 0.519110 0.517642 0.513089 0.519666 0.514374 0.523249 0.517224 0.520939 0.515063 0.519524 0.510158 0.520597 0.516594 +0.795081 +0.489800 0.489931 0.493985 0.497438 0.490623 0.490503 0.506513 0.507398 0.502585 0.507155 0.486288 0.497583 0.978991 0.764135 0.351310 0.101002 0.267719 0.513068 0.515433 0.520600 0.522551 0.512838 0.521398 0.513984 0.519073 0.511018 0.518532 0.509881 0.514748 0.519128 0.512959 0.518017 +0.809215 +0.498780 0.503869 0.488744 0.495732 0.495487 0.493427 0.513796 0.485068 0.488181 0.497029 0.509310 0.506213 0.446385 0.857513 0.593968 0.459857 0.116982 0.519446 0.514773 0.519002 0.519298 0.516265 0.517891 0.521268 0.519891 0.522383 0.511310 0.520198 0.523681 0.515782 0.515352 0.521754 +0.566702 +0.489755 0.511176 0.502299 0.512575 0.501704 0.501572 0.496936 0.505649 0.511552 0.494627 0.506108 0.514205 0.646772 0.270604 0.681471 0.034235 0.953441 0.519661 0.517494 0.522730 0.510463 0.513119 0.511462 0.517747 0.511118 0.515588 0.521674 0.514610 0.520243 0.510225 0.524186 0.513409 +0.920092 +0.493972 0.489321 0.509242 0.494055 0.504952 0.494775 0.496696 0.498630 0.502128 0.502445 0.513428 0.489934 0.569182 0.177142 0.023092 0.804149 0.369908 0.516381 0.517848 0.521224 0.512020 0.524076 0.513264 0.524279 0.523545 0.511883 0.517717 0.512769 0.516659 0.523488 0.511158 0.521195 +0.192514 +0.493067 0.506454 0.511263 0.510386 0.494194 0.513867 0.512067 0.515613 0.499974 0.514670 0.497896 0.492687 0.614088 0.364430 0.456368 0.515833 0.211879 0.515881 0.520149 0.519577 0.517049 0.523948 0.522625 0.515934 0.514586 0.519752 0.522993 0.515060 0.511047 0.511494 0.523255 0.520324 +0.541929 +0.509759 0.509905 0.487898 0.486442 0.509060 0.494553 0.505511 0.486522 0.497685 0.489613 0.509579 0.511625 0.317608 0.091255 0.570006 0.020324 0.326058 0.509733 0.519215 0.512704 0.524553 0.515389 0.516057 0.521693 0.523228 0.512896 0.519308 0.514377 0.520993 0.513474 0.513077 0.514074 +0.913883 +0.503501 0.505247 0.512530 0.499735 0.496409 0.493120 0.503877 0.506093 0.492706 0.497933 0.485609 0.499848 0.554134 0.451445 0.830999 0.293239 0.815368 0.521437 0.517057 0.515048 0.520671 0.518875 0.515712 0.517270 0.523444 0.520441 0.511952 0.510576 0.517614 0.522464 0.516184 0.512033 +0.577655 +0.487502 0.508516 0.497104 0.499140 0.488753 0.489781 0.507577 0.492428 0.486940 0.494498 0.500591 0.506166 0.993369 0.244044 0.606394 0.146977 0.410583 0.518258 0.522102 0.514806 0.515605 0.515416 0.517882 0.518747 0.509678 0.512918 0.521052 0.522156 0.523975 0.522779 0.516583 0.512706 +0.673515 +0.510330 0.492133 0.498485 0.512634 0.511569 0.496721 0.488813 0.493518 0.503644 0.503429 0.488069 0.508603 0.682928 0.498391 0.270334 0.142774 0.822992 0.522029 0.522244 0.512447 0.514920 0.511923 0.523327 0.516794 0.515140 0.518621 0.522645 0.516148 0.523115 0.520863 0.512624 0.518080 +0.830138 +0.498703 0.497370 0.510174 0.514446 0.502654 0.502617 0.486809 0.509577 0.505597 0.486427 0.486754 0.513327 0.553476 0.410818 0.525342 0.910515 0.743412 0.514237 0.517470 0.523098 0.520293 0.518795 0.518853 0.512576 0.515627 0.517949 0.517961 0.512064 0.520239 0.521460 0.519641 0.521172 +0.082306 +0.513898 0.504890 0.513364 0.493816 0.509928 0.491768 0.512318 0.514647 0.488461 0.494424 0.489457 0.510034 0.679802 0.003202 0.764373 0.336666 0.168143 0.522761 0.516012 0.520400 0.521407 0.510551 0.520760 0.511696 0.515793 0.520250 0.522475 0.513525 0.523598 0.513159 0.511946 0.523508 +0.605747 +0.487776 0.510784 0.514811 0.500699 0.500885 0.506398 0.487723 0.507159 0.507092 0.485930 0.488450 0.490697 0.622426 0.391493 0.969329 0.503336 0.318643 0.516614 0.517974 0.521271 0.519689 0.521321 0.521899 0.511976 0.520361 0.517532 0.519921 0.522299 0.517342 0.522962 0.517709 0.511545 +0.492725 +0.509101 0.515411 0.490368 0.512335 0.490633 0.503525 0.495761 0.506186 0.503635 0.493949 0.486114 0.498907 0.479970 0.904129 0.484584 0.386901 0.839590 0.518288 0.510553 0.509762 0.519945 0.514393 0.514432 0.521436 0.516947 0.511615 0.521256 0.521000 0.523651 0.513714 0.521755 0.510268 +0.591928 +0.501821 0.489001 0.513282 0.484617 0.486429 0.513962 0.502619 0.511503 0.490572 0.507526 0.487828 0.505161 0.095927 0.044874 0.631695 0.070890 0.558679 0.521287 0.524233 0.522635 0.518987 0.513037 0.515355 0.517269 0.521663 0.521054 0.524263 0.513868 0.510307 0.518345 0.513466 0.519663 +0.765500 +0.492741 0.489752 0.488073 0.502881 0.511577 0.502498 0.485428 0.506907 0.493700 0.513382 0.506125 0.494342 0.036418 0.619555 0.182267 0.081288 0.193712 0.514270 0.524405 0.510635 0.511512 0.511682 0.511378 0.512855 0.510956 0.513253 0.518371 0.517139 0.516752 0.516995 0.516568 0.510390 +0.803170 +0.501101 0.494910 0.501091 0.487308 0.485814 0.496445 0.498545 0.492691 0.509024 0.508157 0.506664 0.501801 0.657947 0.963666 0.387225 0.274877 0.439661 0.523367 0.517068 0.513322 0.518241 0.517834 0.516390 0.524270 0.523621 0.511985 0.519331 0.511321 0.522870 0.523010 0.516020 0.524552 +0.618468 +0.515216 0.491954 0.494686 0.492067 0.506142 0.499974 0.516021 0.502375 0.501277 0.503546 0.492650 0.501631 0.790979 0.179151 0.756027 0.166667 0.090869 0.510982 0.523944 0.519636 0.523505 0.515397 0.513900 0.511930 0.514338 0.510505 0.511464 0.513981 0.512545 0.510801 0.520233 0.519903 +0.787156 +0.499238 0.505434 0.505578 0.512826 0.499559 0.492120 0.489458 0.513701 0.515621 0.509408 0.485432 0.489829 0.317006 0.983146 0.548228 0.273810 0.514951 0.515526 0.518691 0.509843 0.519218 0.516329 0.524306 0.515616 0.519486 0.513811 0.514196 0.520408 0.519026 0.513357 0.510066 0.517473 +0.775167 +0.509381 0.512607 0.493073 0.499521 0.510878 0.493163 0.503660 0.501937 0.488810 0.504931 0.512860 0.505932 0.932389 0.102876 0.741640 0.552414 0.568644 0.511822 0.518413 0.521105 0.519734 0.521848 0.512342 0.509784 0.521048 0.517583 0.512618 0.518856 0.509794 0.513125 0.511795 0.512869 +0.450411 +0.511415 0.491842 0.507179 0.498036 0.506022 0.496274 0.489971 0.503677 0.503788 0.512503 0.514839 0.504392 0.699538 0.467915 0.446639 0.110250 0.594162 0.520194 0.513851 0.512718 0.510023 0.514183 0.520853 0.511875 0.509822 0.513837 0.519049 0.523931 0.517628 0.520893 0.519903 0.518178 +0.856930 +0.499914 0.508206 0.502935 0.509058 0.512877 0.507337 0.495246 0.492801 0.497096 0.490818 0.495597 0.492342 0.853722 0.923520 0.148742 0.045112 0.621007 0.518077 0.520831 0.518502 0.514902 0.517053 0.518358 0.518357 0.521334 0.519378 0.517865 0.522083 0.513814 0.519464 0.523701 0.518647 +0.773362 +0.502157 0.507383 0.510081 0.486555 0.489113 0.513025 0.486277 0.502176 0.492900 0.496662 0.498297 0.503206 0.708569 0.128191 0.910135 0.362308 0.813655 0.509845 0.515063 0.519345 0.518995 0.513126 0.511887 0.515611 0.514216 0.510804 0.510123 0.514463 0.512865 0.517177 0.513543 0.510058 +0.551558 +0.501946 0.490106 0.499589 0.491576 0.496042 0.512593 0.514156 0.507570 0.507187 0.509744 0.506190 0.513848 0.992930 0.876821 0.853583 0.586224 0.386924 0.513035 0.512416 0.522726 0.523224 0.517197 0.512638 0.516177 0.510627 0.513518 0.521909 0.516016 0.523163 0.517793 0.516304 0.515563 +0.397660 +0.488630 0.500498 0.489010 0.502061 0.504560 0.500132 0.501759 0.490745 0.499013 0.486711 0.507444 0.491063 0.300697 0.072410 0.079458 0.456663 0.459757 0.515934 0.522121 0.520753 0.523487 0.514523 0.514436 0.521346 0.510160 0.516245 0.513198 0.514568 0.511981 0.517196 0.512029 0.520107 +0.556480 +0.505957 0.504243 0.489042 0.501828 0.487300 0.500407 0.495172 0.510476 0.515628 0.490785 0.508597 0.501075 0.712588 0.632962 0.348441 0.923590 0.322316 0.512055 0.514175 0.513687 0.512661 0.513182 0.524427 0.510768 0.522961 0.521049 0.512087 0.514780 0.514700 0.515619 0.510365 0.513436 +0.281723 +0.491053 0.488578 0.506666 0.504245 0.490884 0.495579 0.492829 0.500936 0.498207 0.492227 0.492199 0.498381 0.395668 0.085457 0.203214 0.891639 0.721431 0.511804 0.517752 0.515780 0.524167 0.517540 0.509672 0.514399 0.511711 0.523934 0.522671 0.518651 0.520098 0.520581 0.517269 0.516802 +0.264421 +0.506523 0.508469 0.498423 0.513787 0.498754 0.499948 0.488524 0.511273 0.496951 0.510196 0.496122 0.510391 0.907261 0.093565 0.370290 0.862484 0.073874 0.519658 0.513595 0.510992 0.523499 0.521078 0.524217 0.521308 0.517350 0.522723 0.514384 0.522814 0.510317 0.517712 0.519510 0.513228 +0.192299 +0.486278 0.491331 0.502906 0.493476 0.486982 0.503818 0.513990 0.504127 0.511305 0.498215 0.509881 0.515700 0.956495 0.956272 0.207735 0.813742 0.469532 0.518463 0.518945 0.521908 0.517549 0.519321 0.510098 0.510844 0.509690 0.519518 0.509663 0.520063 0.514819 0.512043 0.510979 0.516987 +0.307972 +0.489443 0.513646 0.506601 0.511726 0.499137 0.505999 0.506379 0.490580 0.510699 0.490689 0.485228 0.509823 0.151383 0.398690 0.838772 0.845287 0.264365 0.523129 0.524182 0.510379 0.513620 0.520406 0.520298 0.521891 0.514334 0.520502 0.511115 0.517265 0.521697 0.513064 0.521227 0.509967 +0.211873 +0.487563 0.493716 0.494817 0.491575 0.485512 0.507574 0.510077 0.509695 0.514294 0.498477 0.497565 0.513359 0.502882 0.694204 0.882198 0.162269 0.224818 0.520338 0.514057 0.514924 0.510647 0.510534 0.523554 0.523479 0.520951 0.521951 0.518075 0.515569 0.512474 0.519038 0.521746 0.523639 +0.702805 +0.496142 0.503588 0.513066 0.505490 0.508094 0.511748 0.487217 0.494950 0.497494 0.485906 0.491063 0.485203 0.419155 0.537070 0.872081 0.255343 0.378659 0.515828 0.510083 0.520286 0.518177 0.515290 0.509918 0.513214 0.523464 0.515288 0.513612 0.517302 0.510448 0.514439 0.514529 0.516631 +0.686299 +0.501362 0.509712 0.504926 0.490995 0.512280 0.505288 0.511929 0.513190 0.485774 0.515371 0.485522 0.509462 0.120701 0.107961 0.142501 0.238712 0.066040 0.511016 0.509869 0.514296 0.513983 0.512783 0.512102 0.512891 0.517326 0.515405 0.523155 0.514311 0.511209 0.511041 0.522653 0.521417 +0.654724 +0.501794 0.508671 0.500557 0.499159 0.499024 0.511520 0.494275 0.490044 0.503220 0.493034 0.505242 0.485524 0.939124 0.218203 0.626603 0.545389 0.579804 0.518272 0.510655 0.524307 0.518043 0.523771 0.517618 0.512661 0.523017 0.523995 0.511547 0.518605 0.512141 0.520105 0.520821 0.513740 +0.419593 +0.494589 0.514265 0.485134 0.502916 0.510105 0.510212 0.492005 0.511696 0.500420 0.495530 0.486334 0.487885 0.256263 0.818038 0.615161 0.384496 0.451271 0.523145 0.517241 0.521526 0.519074 0.523193 0.513362 0.519583 0.519088 0.523138 0.518923 0.523642 0.516365 0.519443 0.519625 0.516939 +0.604952 +0.486890 0.501001 0.488546 0.497921 0.500053 0.513163 0.512080 0.500020 0.496842 0.506362 0.488098 0.487011 0.017937 0.228100 0.833223 0.642440 0.526968 0.512871 0.516292 0.516264 0.513110 0.518698 0.522464 0.510558 0.521870 0.519385 0.514577 0.510695 0.514369 0.511064 0.524511 0.517927 +0.356785 +0.487601 0.500114 0.509259 0.497997 0.491174 0.508896 0.507368 0.513603 0.510020 0.506490 0.493352 0.512022 0.726800 0.313056 0.644470 0.609231 0.794226 0.520144 0.523269 0.512668 0.511102 0.514527 0.509946 0.519986 0.522553 0.520515 0.521838 0.520532 0.515804 0.513210 0.512443 0.511379 +0.355763 +0.494598 0.491526 0.506217 0.494476 0.510396 0.491108 0.495166 0.496456 0.485554 0.513806 0.502484 0.504789 0.201431 0.935711 0.892870 0.395007 0.975407 0.518342 0.521542 0.510521 0.511675 0.511614 0.517440 0.519735 0.515400 0.513129 0.518537 0.519928 0.509619 0.518218 0.521501 0.521907 +0.602945 +0.509323 0.506168 0.495621 0.486118 0.511075 0.496334 0.508836 0.494521 0.511669 0.489995 0.488977 0.488460 0.735599 0.087593 0.069237 0.796350 0.388158 0.523839 0.522801 0.521695 0.519364 0.522737 0.519570 0.518987 0.522348 0.523212 0.510042 0.512331 0.522077 0.519194 0.518388 0.512201 +0.231761 +0.490387 0.512302 0.491276 0.490371 0.499386 0.498599 0.508718 0.492894 0.491394 0.489212 0.498740 0.492142 0.244279 0.558394 0.995254 0.896858 0.382034 0.511223 0.522410 0.513167 0.519062 0.521339 0.522703 0.520832 0.521458 0.514822 0.517220 0.511982 0.515700 0.520750 0.517313 0.510858 +0.193763 +0.493509 0.506829 0.499268 0.504315 0.499467 0.485007 0.502328 0.487860 0.488965 0.503960 0.511325 0.491564 0.093872 0.525156 0.779668 0.207778 0.534431 0.517805 0.511886 0.514777 0.517750 0.510789 0.524224 0.523727 0.520920 0.517155 0.515913 0.524095 0.520799 0.521900 0.518117 0.514199 +0.824308 +0.499921 0.499334 0.512878 0.492880 0.506046 0.512058 0.486285 0.490706 0.492647 0.488515 0.486455 0.513607 0.848857 0.208114 0.180434 0.300026 0.811889 0.514924 0.519679 0.512805 0.522948 0.521329 0.510087 0.513816 0.517749 0.513090 0.512847 0.517967 0.524353 0.520762 0.515842 0.519793 +0.683093 +0.503082 0.504422 0.501970 0.513964 0.485704 0.500607 0.501293 0.514461 0.504121 0.512483 0.489978 0.484924 0.237905 0.508253 0.897509 0.315149 0.794722 0.510235 0.515892 0.521822 0.511128 0.517934 0.524572 0.511004 0.518746 0.516915 0.519371 0.523276 0.521176 0.517808 0.520323 0.518386 +0.683447 +0.505260 0.508579 0.510668 0.486674 0.486895 0.492426 0.506731 0.514263 0.513745 0.506905 0.513676 0.515622 0.341186 0.073164 0.741423 0.896031 0.483205 0.513044 0.510688 0.513469 0.518067 0.519062 0.509745 0.511784 0.517823 0.519975 0.516861 0.524425 0.513074 0.522956 0.518936 0.521647 +0.211355 +0.513432 0.491771 0.511271 0.514624 0.498076 0.486030 0.506633 0.511133 0.499490 0.492107 0.499631 0.496525 0.021585 0.497593 0.878455 0.310583 0.107231 0.523038 0.512617 0.518744 0.517827 0.516033 0.516966 0.519952 0.513865 0.520009 0.518427 0.514586 0.515899 0.515207 0.521585 0.518346 +0.662902 +0.497232 0.485076 0.495526 0.492010 0.499143 0.504775 0.508236 0.514550 0.490581 0.503853 0.509443 0.485818 0.259360 0.835568 0.025967 0.088744 0.410012 0.524282 0.513507 0.511920 0.513751 0.520813 0.514194 0.515056 0.523744 0.520254 0.512349 0.519289 0.518498 0.521331 0.512958 0.520962 +0.942505 +0.513501 0.491172 0.501005 0.486690 0.490567 0.512211 0.500860 0.508093 0.485403 0.503317 0.490215 0.505280 0.719736 0.684151 0.046488 0.731880 0.629558 0.512192 0.516429 0.517203 0.518865 0.516587 0.519830 0.519073 0.520960 0.521485 0.520016 0.513487 0.524470 0.522908 0.524039 0.510829 +0.413485 +0.486581 0.497441 0.508271 0.498758 0.514038 0.503207 0.500472 0.490865 0.492977 0.491156 0.512700 0.492689 0.481857 0.589924 0.530601 0.228751 0.771248 0.521648 0.516809 0.524207 0.519727 0.510366 0.515800 0.517158 0.510792 0.515269 0.513396 0.521881 0.522383 0.521279 0.522677 0.522361 +0.629813 +0.503784 0.499654 0.487836 0.484661 0.509194 0.510560 0.492558 0.496439 0.488216 0.496157 0.503115 0.494247 0.329001 0.424698 0.629695 0.478089 0.305058 0.514418 0.515447 0.519410 0.521110 0.521067 0.515541 0.518397 0.513960 0.523806 0.519225 0.512934 0.513815 0.515107 0.520210 0.512340 +0.518557 +0.508850 0.489195 0.501829 0.508653 0.499803 0.501003 0.514157 0.486503 0.506415 0.495356 0.487211 0.507651 0.216859 0.042002 0.395385 0.326020 0.365937 0.520992 0.512373 0.512881 0.514027 0.512322 0.520318 0.520715 0.518388 0.511818 0.517924 0.517836 0.521717 0.522452 0.524567 0.518043 +0.635681 +0.484958 0.497362 0.499031 0.502211 0.504038 0.498331 0.498320 0.504265 0.511108 0.493100 0.487629 0.505860 0.517070 0.971891 0.533182 0.575697 0.598414 0.511495 0.515852 0.520997 0.521043 0.520527 0.517368 0.517650 0.521760 0.517224 0.519866 0.523861 0.509704 0.515545 0.520089 0.513269 +0.398657 +0.491168 0.500273 0.501038 0.510854 0.493094 0.513923 0.508541 0.513217 0.498815 0.498240 0.486054 0.503821 0.605337 0.392570 0.045645 0.567235 0.489735 0.523151 0.514828 0.522403 0.512747 0.523935 0.510938 0.520831 0.517974 0.510964 0.510359 0.523877 0.521528 0.518009 0.512389 0.510406 +0.388536 +0.491001 0.514059 0.512038 0.493512 0.490166 0.510213 0.506857 0.495642 0.487267 0.484945 0.495693 0.492837 0.822670 0.413185 0.266664 0.513097 0.253020 0.514931 0.520804 0.517593 0.517435 0.510793 0.511946 0.514401 0.512862 0.516092 0.519463 0.522353 0.516983 0.522691 0.516433 0.515349 +0.423253 +0.489524 0.500435 0.492415 0.488855 0.510826 0.497371 0.492800 0.485981 0.492186 0.496879 0.504842 0.489581 0.880164 0.002186 0.689731 0.764572 0.682827 0.521741 0.524570 0.511936 0.521167 0.518022 0.516153 0.523869 0.523128 0.517336 0.515112 0.512404 0.510701 0.511064 0.524535 0.524519 +0.358350 +0.496908 0.505171 0.491443 0.501215 0.503506 0.489417 0.499369 0.492306 0.512516 0.485487 0.494322 0.491220 0.920462 0.788947 0.045783 0.896096 0.585601 0.523594 0.521838 0.520902 0.513070 0.515227 0.511142 0.512666 0.515734 0.515326 0.518619 0.512983 0.512715 0.513619 0.517598 0.516890 +0.202168 +0.503249 0.505821 0.507774 0.499920 0.513244 0.508268 0.505771 0.486826 0.514061 0.508000 0.503294 0.512799 0.010941 0.733812 0.084437 0.067686 0.744356 0.511997 0.517597 0.515314 0.519494 0.513046 0.517591 0.522324 0.522030 0.513864 0.521877 0.516440 0.521080 0.513043 0.520148 0.522122 +0.721268 +0.493609 0.491309 0.506791 0.497138 0.510449 0.515993 0.502772 0.512968 0.492645 0.486187 0.495261 0.505684 0.539124 0.363635 0.097478 0.084917 0.133105 0.516102 0.511959 0.523446 0.513562 0.515921 0.517020 0.515903 0.518714 0.515239 0.520828 0.511508 0.521932 0.519183 0.516743 0.522817 +0.798867 +0.512337 0.488091 0.505440 0.489481 0.499545 0.511492 0.494099 0.486548 0.506140 0.497423 0.487942 0.507707 0.684689 0.071202 0.796965 0.705111 0.060724 0.521836 0.515749 0.515946 0.522728 0.522768 0.511027 0.515175 0.510835 0.516625 0.522263 0.514860 0.518535 0.520300 0.524133 0.522816 +0.300438 +0.505852 0.488046 0.495002 0.486667 0.489378 0.506152 0.506038 0.508770 0.484861 0.514094 0.501108 0.487264 0.162434 0.998286 0.817154 0.774119 0.013491 0.518118 0.520706 0.523578 0.510373 0.522079 0.515382 0.511366 0.519464 0.522742 0.518557 0.515204 0.521205 0.510279 0.511397 0.520836 +0.320920 +0.489257 0.499060 0.500180 0.487002 0.485674 0.491696 0.503067 0.502952 0.505357 0.508680 0.494519 0.501776 0.454525 0.557862 0.073923 0.494881 0.323647 0.517327 0.511114 0.512270 0.513141 0.512609 0.513256 0.510975 0.516385 0.512282 0.518409 0.512237 0.521091 0.522636 0.509943 0.517664 +0.575321 +0.513884 0.491717 0.513893 0.507839 0.494986 0.503175 0.514746 0.487929 0.505733 0.504821 0.512681 0.509174 0.968946 0.065331 0.200928 0.486760 0.929832 0.512008 0.523815 0.518910 0.521927 0.510633 0.523475 0.523245 0.524585 0.517075 0.521261 0.514512 0.521009 0.516787 0.523630 0.511340 +0.464318 +0.490175 0.504827 0.500252 0.498939 0.505579 0.489089 0.488836 0.506865 0.507809 0.505702 0.493563 0.499494 0.207976 0.861881 0.943882 0.131552 0.358200 0.521804 0.521011 0.523978 0.514711 0.519755 0.518979 0.522987 0.515740 0.515330 0.515478 0.518687 0.519960 0.511527 0.518703 0.511390 +0.847188 +0.502470 0.497112 0.488195 0.510559 0.496151 0.488170 0.500480 0.499487 0.509371 0.499589 0.492216 0.504258 0.976406 0.348267 0.991952 0.450813 0.210252 0.510999 0.516506 0.510551 0.520840 0.515223 0.520976 0.514756 0.514644 0.516617 0.512679 0.523685 0.511906 0.511489 0.520658 0.510366 +0.538168 +0.508051 0.513830 0.489013 0.490444 0.493934 0.485154 0.500437 0.490647 0.512348 0.485014 0.505025 0.486603 0.676063 0.210821 0.650921 0.960485 0.971636 0.513274 0.522577 0.514218 0.520278 0.516516 0.521099 0.522930 0.516457 0.520312 0.522598 0.521875 0.521784 0.522023 0.510515 0.511011 +0.091922 +0.500203 0.489156 0.508989 0.494758 0.506134 0.509056 0.489950 0.489745 0.509446 0.506614 0.505948 0.509744 0.780329 0.311273 0.693805 0.173617 0.809150 0.514811 0.511113 0.512153 0.513300 0.519488 0.514475 0.512410 0.514051 0.513961 0.522451 0.522461 0.514043 0.519949 0.514044 0.524018 +0.750369 +0.501325 0.515689 0.512274 0.489908 0.500594 0.489133 0.500561 0.512709 0.505797 0.514046 0.501656 0.486811 0.943987 0.891488 0.184384 0.645313 0.768793 0.518090 0.518374 0.514903 0.510981 0.515651 0.514205 0.510084 0.520279 0.516297 0.517634 0.514965 0.520702 0.512181 0.522663 0.512453 +0.353895 +0.509912 0.510633 0.495500 0.487665 0.510253 0.491771 0.501709 0.501202 0.495962 0.495918 0.512856 0.494313 0.367394 0.235177 0.699817 0.148412 0.514719 0.517055 0.515539 0.522704 0.519233 0.513734 0.509706 0.516585 0.515594 0.509690 0.515653 0.515436 0.513214 0.522535 0.515437 0.515706 +0.709279 +0.508718 0.495566 0.502990 0.492927 0.513887 0.502185 0.513576 0.497654 0.509318 0.496409 0.491254 0.502103 0.195700 0.690582 0.048726 0.321943 0.887711 0.520999 0.515373 0.522486 0.514816 0.519190 0.510669 0.516207 0.511457 0.518757 0.514187 0.510424 0.512907 0.513474 0.512280 0.515898 +0.564215 +0.497379 0.499923 0.498683 0.510640 0.512597 0.490800 0.498417 0.508485 0.508051 0.502250 0.498619 0.496453 0.387617 0.861253 0.409125 0.084837 0.794399 0.518721 0.513558 0.523446 0.522564 0.519475 0.517839 0.522233 0.512020 0.513655 0.517962 0.513104 0.522333 0.523122 0.517032 0.513973 +0.798728 +0.499669 0.514396 0.502255 0.502049 0.487075 0.489548 0.491258 0.500989 0.510094 0.507796 0.497319 0.501998 0.022026 0.899396 0.005589 0.842649 0.958720 0.514559 0.524145 0.515024 0.515828 0.517851 0.519329 0.524210 0.518892 0.513424 0.523365 0.520841 0.514228 0.520740 0.510814 0.511572 +0.281900 +0.490856 0.508501 0.494083 0.508199 0.512734 0.500026 0.509803 0.500639 0.492576 0.492175 0.511932 0.495230 0.050092 0.264393 0.363310 0.647317 0.434151 0.515380 0.524159 0.522711 0.522547 0.520102 0.518504 0.509939 0.519180 0.523925 0.511329 0.518100 0.522581 0.512816 0.514922 0.522861 +0.387741 +0.507939 0.487343 0.499887 0.497571 0.494175 0.486795 0.508488 0.504626 0.485768 0.495915 0.484863 0.513985 0.969526 0.800029 0.166434 0.184492 0.452162 0.522670 0.517111 0.509904 0.514357 0.516861 0.514093 0.524415 0.515347 0.513814 0.514453 0.524375 0.521479 0.523430 0.519530 0.520098 +0.777199 +0.502530 0.487680 0.510497 0.505587 0.501293 0.509566 0.501737 0.496025 0.511890 0.486906 0.510553 0.500569 0.204592 0.033651 0.144386 0.885410 0.110865 0.523525 0.513429 0.522847 0.510837 0.523191 0.516298 0.510344 0.520975 0.518759 0.520728 0.513616 0.520856 0.513336 0.520557 0.521990 +0.156800 +0.505873 0.499942 0.509979 0.496378 0.502319 0.497149 0.513928 0.505920 0.510841 0.496432 0.505388 0.495512 0.694189 0.628390 0.548991 0.078639 0.699477 0.516232 0.521057 0.517734 0.521192 0.519361 0.513602 0.524428 0.518844 0.514127 0.510408 0.520313 0.512066 0.517739 0.516622 0.517234 +0.896998 +0.507630 0.512626 0.496861 0.509847 0.515741 0.486449 0.496270 0.485389 0.512626 0.494005 0.509150 0.489893 0.590099 0.476947 0.128241 0.751275 0.359153 0.522050 0.514388 0.517320 0.518189 0.516380 0.515654 0.520453 0.517703 0.523797 0.511792 0.517103 0.516807 0.521738 0.524289 0.511251 +0.443180 +0.484877 0.500526 0.486757 0.488547 0.491084 0.502216 0.504026 0.513675 0.493662 0.499111 0.501648 0.508422 0.887318 0.156625 0.450485 0.717932 0.374305 0.513929 0.519904 0.518292 0.519468 0.523896 0.512404 0.512779 0.513112 0.512011 0.519499 0.522890 0.521036 0.514785 0.515470 0.515434 +0.371891 +0.514276 0.505637 0.492536 0.506158 0.507531 0.484758 0.505146 0.509616 0.506422 0.489768 0.508842 0.508861 0.685933 0.971629 0.120520 0.069587 0.674318 0.523053 0.515164 0.520561 0.523133 0.520093 0.511259 0.516215 0.518986 0.515998 0.512754 0.522375 0.514897 0.516976 0.516023 0.511901 +0.842960 +0.512943 0.514381 0.508233 0.494396 0.487233 0.509036 0.488160 0.495254 0.499025 0.497977 0.494476 0.511621 0.134002 0.495576 0.997087 0.679154 0.127113 0.521676 0.520259 0.515879 0.521176 0.514843 0.518142 0.514874 0.520361 0.524326 0.516184 0.521474 0.516557 0.517839 0.516845 0.510336 +0.450752 +0.507293 0.510688 0.494532 0.504779 0.511286 0.490498 0.487124 0.494936 0.498552 0.514880 0.496968 0.511227 0.705447 0.703736 0.957057 0.400850 0.115002 0.515693 0.521414 0.518859 0.510680 0.509832 0.514579 0.515888 0.515231 0.517496 0.524528 0.523648 0.512307 0.510405 0.509844 0.524278 +0.558448 +0.510106 0.501449 0.496028 0.490308 0.494767 0.502770 0.505881 0.503312 0.496910 0.507741 0.487985 0.509277 0.305764 0.175627 0.571235 0.658617 0.211796 0.509890 0.519993 0.511119 0.518789 0.511954 0.517615 0.513442 0.519908 0.522477 0.522257 0.520067 0.510074 0.516374 0.516407 0.515273 +0.332896 +0.503006 0.504269 0.507401 0.495482 0.494303 0.497217 0.511289 0.486395 0.508959 0.493506 0.488313 0.488959 0.612845 0.489115 0.477927 0.594710 0.918468 0.514239 0.511743 0.521009 0.511044 0.511169 0.518855 0.521776 0.512795 0.519841 0.511312 0.513138 0.521095 0.524078 0.515705 0.519073 +0.415227 +0.485779 0.494065 0.492057 0.502145 0.496359 0.488687 0.512943 0.509351 0.503249 0.507123 0.498448 0.512387 0.712405 0.559391 0.749341 0.890670 0.453155 0.517758 0.512389 0.513201 0.512667 0.520246 0.523658 0.522006 0.514529 0.522641 0.513330 0.513593 0.512418 0.514297 0.522708 0.523787 +0.142010 +0.514245 0.513857 0.500886 0.504272 0.507305 0.484662 0.501584 0.507688 0.503657 0.509979 0.500033 0.506261 0.672576 0.639936 0.468823 0.693096 0.271628 0.522749 0.524235 0.516979 0.523636 0.524588 0.523110 0.514140 0.519625 0.524451 0.511659 0.511648 0.519705 0.513726 0.511994 0.514272 +0.363928 +0.489624 0.514490 0.487402 0.490786 0.513171 0.505978 0.505323 0.499677 0.514722 0.489472 0.510827 0.502813 0.745971 0.278490 0.123890 0.669846 0.802921 0.520690 0.519934 0.514998 0.512026 0.516305 0.519406 0.523580 0.520074 0.519710 0.512739 0.520322 0.520298 0.520429 0.515374 0.522925 +0.358993 +0.510232 0.500963 0.509727 0.513703 0.496338 0.492767 0.513230 0.497827 0.497721 0.500758 0.508857 0.499920 0.214026 0.478151 0.353248 0.651018 0.588096 0.522075 0.511878 0.510980 0.523005 0.512934 0.520722 0.519014 0.517713 0.518294 0.511788 0.516675 0.518753 0.521769 0.522325 0.520126 +0.368837 +0.508320 0.508209 0.500789 0.511498 0.506428 0.514761 0.505901 0.494030 0.493370 0.495266 0.485976 0.506283 0.520757 0.908377 0.832730 0.375680 0.395834 0.522725 0.517664 0.520307 0.519928 0.524092 0.515516 0.519081 0.511395 0.517106 0.515389 0.510815 0.520090 0.517298 0.521799 0.515208 +0.581770 +0.505034 0.506812 0.502656 0.498574 0.508200 0.497246 0.506320 0.498052 0.497875 0.514637 0.506863 0.504428 0.101450 0.798745 0.601006 0.652701 0.852621 0.515973 0.518476 0.520517 0.520826 0.516560 0.520857 0.513796 0.512667 0.509622 0.515138 0.520167 0.524204 0.514490 0.515997 0.512039 +0.381608 +0.511774 0.487340 0.490322 0.512998 0.490537 0.514236 0.489795 0.501153 0.489188 0.513290 0.504122 0.491923 0.114686 0.099941 0.453647 0.811879 0.177403 0.515497 0.521576 0.511595 0.522593 0.514982 0.511051 0.519927 0.518656 0.523106 0.514153 0.514964 0.509993 0.519118 0.512613 0.519945 +0.250830 +0.486601 0.507061 0.505302 0.491100 0.490560 0.499474 0.501269 0.514820 0.506342 0.487575 0.501576 0.493969 0.543132 0.686716 0.122606 0.113542 0.876915 0.516295 0.519850 0.512669 0.517680 0.511203 0.514462 0.518848 0.521139 0.514465 0.522736 0.523789 0.523991 0.512769 0.519832 0.519047 +0.835199 +0.506332 0.515049 0.509372 0.489896 0.497818 0.493027 0.485086 0.509231 0.496701 0.491088 0.503296 0.504399 0.683767 0.593658 0.248310 0.260871 0.206331 0.513043 0.520249 0.524294 0.518053 0.522061 0.518663 0.511383 0.509933 0.512869 0.521987 0.512593 0.518488 0.520667 0.517742 0.517870 +0.724133 +0.509052 0.510233 0.489416 0.515150 0.510945 0.514256 0.510602 0.505541 0.507951 0.492000 0.491889 0.485188 0.713529 0.430786 0.871848 0.335510 0.756981 0.512602 0.523155 0.517280 0.514557 0.520914 0.522745 0.522822 0.516262 0.519790 0.523732 0.520149 0.515198 0.519931 0.513783 0.518626 +0.617862 +0.499468 0.496137 0.501708 0.489468 0.507202 0.510035 0.492457 0.492072 0.511643 0.510322 0.505894 0.501588 0.814811 0.433175 0.987616 0.628714 0.001242 0.522366 0.512512 0.515074 0.514041 0.510559 0.523072 0.520635 0.511258 0.514591 0.519563 0.513297 0.511151 0.512704 0.510288 0.513442 +0.404008 +0.506324 0.504487 0.499868 0.491487 0.515776 0.504366 0.506134 0.491493 0.488127 0.508814 0.513079 0.502703 0.664132 0.834713 0.677096 0.552962 0.765031 0.515452 0.521244 0.521712 0.521014 0.510883 0.511989 0.516461 0.516449 0.517547 0.521574 0.524529 0.520355 0.518690 0.514579 0.515980 +0.588660 +0.508709 0.495472 0.498700 0.510678 0.491223 0.506643 0.513482 0.493574 0.501972 0.490450 0.502898 0.484732 0.838578 0.585899 0.931438 0.131985 0.628031 0.517542 0.514736 0.517916 0.519323 0.524343 0.519735 0.522932 0.515391 0.524068 0.519587 0.521224 0.516887 0.523369 0.512521 0.518001 +0.817153 +0.500896 0.509582 0.494919 0.500779 0.490424 0.507401 0.494815 0.492015 0.515338 0.493498 0.511518 0.486244 0.934433 0.431882 0.283746 0.399018 0.348887 0.515870 0.512171 0.514573 0.518432 0.513268 0.523990 0.513461 0.512577 0.519727 0.519757 0.511388 0.514440 0.515942 0.519536 0.515148 +0.567648 +0.506330 0.512531 0.513382 0.511511 0.497458 0.507407 0.501984 0.496898 0.505339 0.513080 0.494081 0.497979 0.627298 0.220793 0.124105 0.287946 0.931684 0.513482 0.514422 0.520138 0.524613 0.519780 0.517639 0.515563 0.511608 0.523951 0.509889 0.518376 0.517191 0.520799 0.520625 0.520478 +0.706541 +0.501955 0.485058 0.516027 0.501215 0.488739 0.485996 0.502581 0.510258 0.497018 0.497540 0.515210 0.510488 0.625745 0.129004 0.552478 0.641756 0.030911 0.511426 0.515135 0.514486 0.522690 0.515242 0.521546 0.520622 0.515685 0.515663 0.520957 0.509744 0.514820 0.512063 0.514882 0.512498 +0.341667 +0.484690 0.499620 0.499276 0.508084 0.497537 0.514976 0.485809 0.504656 0.505446 0.497781 0.506750 0.494717 0.716375 0.237057 0.271130 0.506810 0.673808 0.514694 0.512013 0.521058 0.523903 0.514033 0.516555 0.511858 0.516571 0.513906 0.515998 0.517475 0.522371 0.511844 0.520141 0.523768 +0.411668 +0.509450 0.512924 0.513563 0.491388 0.486761 0.505446 0.486034 0.506479 0.498965 0.496621 0.494988 0.500390 0.455661 0.635603 0.691360 0.117671 0.223552 0.516460 0.517358 0.522915 0.520582 0.524432 0.518634 0.522985 0.511270 0.518634 0.511350 0.511291 0.516084 0.514786 0.513274 0.519539 +0.698401 +0.493299 0.495215 0.507805 0.502033 0.498539 0.506692 0.491964 0.487782 0.485306 0.497090 0.513760 0.504323 0.785169 0.602662 0.469196 0.958535 0.217130 0.518674 0.512078 0.519329 0.514590 0.518983 0.516682 0.516418 0.515182 0.523222 0.517488 0.521984 0.519880 0.523374 0.510429 0.517521 +0.017466 +0.501419 0.490959 0.499176 0.492322 0.495804 0.509182 0.491681 0.504198 0.509211 0.507526 0.486515 0.504622 0.430569 0.229256 0.252670 0.486018 0.481505 0.519771 0.518155 0.515790 0.522731 0.511158 0.517425 0.524604 0.516788 0.520905 0.510389 0.512589 0.520975 0.522292 0.511625 0.515070 +0.586010 +0.512183 0.507241 0.515616 0.492292 0.494105 0.495366 0.497387 0.489526 0.503537 0.509322 0.501001 0.486392 0.337025 0.189720 0.261670 0.628677 0.379152 0.520144 0.523824 0.518440 0.518301 0.524483 0.521841 0.510427 0.511126 0.519868 0.521782 0.512865 0.510757 0.524062 0.519652 0.516163 +0.460330 +0.496956 0.507993 0.485754 0.485519 0.493956 0.504443 0.512939 0.513132 0.515371 0.490438 0.494359 0.496595 0.313698 0.430418 0.700473 0.158674 0.848391 0.515574 0.513818 0.521819 0.520249 0.514811 0.510707 0.522187 0.515390 0.516823 0.511802 0.523142 0.521676 0.516982 0.518101 0.516018 +0.838392 +0.514675 0.489356 0.500761 0.498092 0.513768 0.513199 0.505293 0.496801 0.508746 0.501673 0.485226 0.508854 0.177788 0.866443 0.571049 0.539455 0.931466 0.518724 0.509911 0.513247 0.523587 0.513769 0.522553 0.517738 0.521431 0.513216 0.520990 0.520919 0.522660 0.512182 0.523359 0.517545 +0.495463 +0.506711 0.495504 0.502724 0.485095 0.514375 0.503386 0.514537 0.485443 0.503497 0.492812 0.497414 0.501501 0.367814 0.277109 0.929473 0.126727 0.309168 0.514746 0.516008 0.509887 0.510088 0.510880 0.523039 0.518541 0.518467 0.515179 0.512795 0.514858 0.516579 0.513479 0.523936 0.521206 +0.665527 +0.504021 0.502280 0.497900 0.490718 0.512017 0.490013 0.487285 0.494518 0.485397 0.515517 0.513238 0.507687 0.179654 0.210530 0.755009 0.076479 0.416189 0.520555 0.516612 0.520043 0.520535 0.524410 0.513167 0.516279 0.521026 0.514062 0.522938 0.514630 0.517043 0.511093 0.511310 0.514005 +0.753082 +0.493034 0.507436 0.487221 0.498007 0.499052 0.511138 0.491603 0.488468 0.506381 0.485706 0.502536 0.504516 0.099085 0.082915 0.518123 0.664965 0.825649 0.516204 0.513387 0.516656 0.521592 0.522921 0.523333 0.521792 0.522411 0.521675 0.516587 0.524069 0.522461 0.512884 0.518536 0.513683 +0.369468 +0.497711 0.495189 0.490334 0.495437 0.498578 0.503899 0.514334 0.512011 0.515144 0.505181 0.499505 0.496694 0.560168 0.800821 0.462769 0.022658 0.511213 0.518867 0.522120 0.523642 0.521666 0.523500 0.511587 0.518559 0.510753 0.509642 0.517815 0.511002 0.510622 0.520013 0.518985 0.510318 +0.899585 +0.492448 0.502940 0.495212 0.495070 0.498554 0.511772 0.509307 0.516019 0.488986 0.486343 0.488869 0.489771 0.277487 0.273318 0.261717 0.429614 0.192396 0.512548 0.524597 0.510275 0.518382 0.514662 0.515174 0.521568 0.516541 0.521702 0.520304 0.514665 0.521228 0.511642 0.512488 0.513723 +0.614959 +0.507024 0.504701 0.485882 0.502140 0.484833 0.501884 0.489748 0.485622 0.504753 0.511857 0.505539 0.505380 0.951717 0.709391 0.939772 0.092749 0.673271 0.514366 0.524243 0.520530 0.509799 0.522545 0.513522 0.516641 0.512032 0.514929 0.512458 0.517178 0.519025 0.522311 0.520135 0.510261 +0.758219 +0.498979 0.487800 0.513454 0.515691 0.486180 0.505775 0.492069 0.514875 0.503821 0.504581 0.506709 0.490107 0.317773 0.855058 0.353631 0.080265 0.010604 0.510679 0.511439 0.511932 0.515664 0.512738 0.518329 0.511358 0.512715 0.516991 0.523900 0.523272 0.523813 0.519040 0.512825 0.511027 +0.710655 +0.513046 0.513983 0.512476 0.493354 0.509674 0.494257 0.508941 0.496867 0.489198 0.488342 0.507861 0.497387 0.739458 0.906922 0.395431 0.101158 0.894233 0.513937 0.516246 0.520700 0.510333 0.518038 0.510943 0.522814 0.510618 0.509811 0.517085 0.516637 0.518970 0.523502 0.519917 0.519116 +0.705822 +0.505705 0.502152 0.490028 0.510914 0.501046 0.486168 0.504425 0.504183 0.491000 0.496492 0.507625 0.511055 0.851756 0.898688 0.117158 0.601535 0.539021 0.519275 0.523921 0.511576 0.510957 0.519240 0.524474 0.518899 0.514220 0.519280 0.511617 0.518188 0.514410 0.519632 0.509878 0.514590 +0.397736 +0.498942 0.490024 0.501656 0.490735 0.515120 0.509609 0.505149 0.493467 0.489850 0.513735 0.499574 0.488703 0.443789 0.261215 0.998412 0.929950 0.136483 0.511990 0.513402 0.512453 0.517490 0.519381 0.509659 0.510971 0.518539 0.513742 0.513898 0.510049 0.510282 0.519126 0.517901 0.517910 +0.257304 +0.504295 0.485039 0.503335 0.508753 0.513197 0.513532 0.506294 0.507934 0.497870 0.497084 0.488052 0.495306 0.712176 0.713047 0.346155 0.520277 0.838501 0.514077 0.516185 0.510113 0.522307 0.512414 0.519810 0.517502 0.519902 0.509694 0.523936 0.513539 0.514327 0.522217 0.515827 0.511425 +0.450865 +0.510115 0.496353 0.487898 0.496845 0.490753 0.494333 0.496946 0.499059 0.484933 0.491070 0.490723 0.500685 0.133113 0.559436 0.494161 0.235316 0.034677 0.515106 0.515074 0.515646 0.516737 0.512592 0.517405 0.511290 0.519479 0.511882 0.517131 0.513418 0.514219 0.517611 0.523491 0.520871 +0.669742 +0.507414 0.488956 0.512979 0.491378 0.504382 0.499700 0.506637 0.513817 0.496388 0.486326 0.487712 0.512063 0.792146 0.771008 0.776513 0.234344 0.703258 0.523730 0.513960 0.516812 0.516502 0.517833 0.520944 0.521590 0.517171 0.520267 0.510147 0.517968 0.516246 0.511775 0.513422 0.524332 +0.692192 +0.515572 0.506399 0.512782 0.490371 0.495272 0.492931 0.509806 0.487501 0.512287 0.496171 0.513235 0.494054 0.087554 0.427770 0.223452 0.774444 0.472479 0.511057 0.510025 0.512303 0.519865 0.510742 0.517805 0.512795 0.522239 0.512526 0.515712 0.512466 0.514735 0.509909 0.523903 0.512792 +0.268371 +0.493621 0.501773 0.499697 0.509102 0.498943 0.503470 0.506231 0.508468 0.510522 0.513734 0.488255 0.488661 0.087495 0.437977 0.639692 0.369047 0.990677 0.509968 0.513503 0.516317 0.519553 0.516499 0.523651 0.520185 0.513404 0.509714 0.510686 0.523079 0.511982 0.520978 0.515052 0.519137 +0.636741 +0.503432 0.497517 0.501239 0.496364 0.511287 0.507692 0.510046 0.493185 0.498948 0.491042 0.485932 0.493330 0.092546 0.256950 0.361494 0.142333 0.411885 0.516104 0.519380 0.516541 0.524488 0.513552 0.513702 0.511418 0.513260 0.510027 0.524383 0.510121 0.511884 0.514850 0.513687 0.515491 +0.756742 +0.485484 0.503164 0.490790 0.498267 0.504490 0.485622 0.493034 0.488271 0.498789 0.501298 0.511183 0.495272 0.345397 0.803402 0.823461 0.699268 0.922468 0.516874 0.519008 0.514050 0.510260 0.516174 0.514558 0.520311 0.513401 0.509744 0.509951 0.523452 0.517275 0.511778 0.522910 0.514122 +0.303997 +0.488630 0.497848 0.491366 0.490097 0.486350 0.501117 0.513443 0.498146 0.507478 0.506176 0.491351 0.488410 0.147424 0.914322 0.669118 0.568012 0.529325 0.521621 0.523248 0.518451 0.523118 0.512138 0.515702 0.514495 0.515235 0.517600 0.512045 0.519884 0.511755 0.515018 0.523661 0.520468 +0.415530 +0.496469 0.489992 0.511224 0.489514 0.512026 0.507624 0.506050 0.511201 0.511735 0.495243 0.515541 0.485628 0.569060 0.130074 0.525746 0.698420 0.676228 0.524374 0.516513 0.524202 0.509920 0.523315 0.520243 0.520236 0.516510 0.512302 0.524578 0.524607 0.512700 0.521262 0.518562 0.511229 +0.385545 +0.489178 0.493412 0.486395 0.503338 0.489975 0.502172 0.510309 0.484972 0.489220 0.506482 0.492482 0.506980 0.315141 0.654566 0.173501 0.862317 0.270042 0.513083 0.513811 0.511612 0.521751 0.518608 0.511971 0.522828 0.523937 0.519302 0.522793 0.509876 0.518612 0.513903 0.521606 0.524076 +0.183983 +0.493362 0.499644 0.502973 0.495284 0.511911 0.495981 0.499823 0.494441 0.488037 0.504601 0.499246 0.500994 0.110964 0.591381 0.006316 0.060350 0.544055 0.512302 0.522781 0.517463 0.516954 0.511087 0.517412 0.521378 0.513473 0.515996 0.511637 0.513448 0.512316 0.514643 0.510685 0.510696 +0.794387 +0.501927 0.488101 0.505531 0.498753 0.495047 0.489478 0.506658 0.516024 0.489514 0.488920 0.509301 0.493369 0.868324 0.157031 0.267666 0.338770 0.502403 0.519490 0.513261 0.514966 0.521777 0.519226 0.523215 0.511891 0.515433 0.512299 0.519260 0.518812 0.518431 0.513995 0.516881 0.510316 +0.638785 +0.505284 0.496460 0.498311 0.507371 0.495781 0.499759 0.488387 0.498934 0.487042 0.505236 0.513980 0.504571 0.649912 0.017987 0.068675 0.359000 0.254654 0.521709 0.509735 0.518661 0.522847 0.517465 0.513614 0.520084 0.510951 0.516885 0.513915 0.524589 0.521832 0.519403 0.518938 0.523367 +0.566613 +0.511289 0.504428 0.490935 0.504674 0.499784 0.496587 0.486449 0.495814 0.512611 0.499941 0.485999 0.514935 0.780922 0.275059 0.504052 0.354279 0.961415 0.518295 0.521497 0.510310 0.514830 0.514814 0.514525 0.520859 0.516132 0.523416 0.522909 0.513984 0.522355 0.514696 0.523388 0.516998 +0.563900 +0.486982 0.501067 0.491228 0.490824 0.506051 0.502287 0.504138 0.515516 0.502493 0.507934 0.497366 0.512146 0.875374 0.567092 0.071635 0.065197 0.952182 0.517501 0.524007 0.511288 0.519251 0.520859 0.512580 0.514842 0.511660 0.512163 0.517124 0.513092 0.514649 0.514143 0.522902 0.519255 +0.870294 +0.510746 0.508134 0.497648 0.499681 0.492101 0.485553 0.496541 0.498141 0.486521 0.492857 0.488529 0.494249 0.227119 0.358906 0.674530 0.460466 0.337083 0.512181 0.516578 0.518047 0.512884 0.521521 0.509775 0.515694 0.510026 0.518826 0.512088 0.513575 0.520706 0.522347 0.515664 0.514583 +0.562890 +0.495027 0.491326 0.486411 0.502192 0.497167 0.495114 0.510186 0.494939 0.487839 0.512737 0.484944 0.512438 0.088695 0.583863 0.744851 0.472933 0.708552 0.522249 0.523289 0.517460 0.517738 0.517780 0.518195 0.518123 0.520747 0.518537 0.521554 0.523982 0.511541 0.519748 0.512412 0.510017 +0.486112 +0.489585 0.512916 0.502893 0.498169 0.513519 0.509882 0.503054 0.505987 0.495108 0.498614 0.485912 0.495686 0.811548 0.631024 0.800462 0.438365 0.152641 0.517650 0.515380 0.518445 0.509704 0.524240 0.515842 0.514516 0.510601 0.516132 0.519407 0.521868 0.510177 0.520216 0.514424 0.510066 +0.530824 +0.500157 0.507030 0.511039 0.492651 0.486861 0.506169 0.513075 0.501884 0.514468 0.492827 0.487181 0.514986 0.924747 0.762230 0.350984 0.629373 0.071474 0.515134 0.521088 0.511613 0.519143 0.520139 0.512450 0.522643 0.522452 0.513539 0.518821 0.512015 0.514379 0.516942 0.510075 0.514821 +0.414634 +0.488226 0.506052 0.497227 0.501094 0.513485 0.501341 0.505104 0.502914 0.498288 0.503559 0.502693 0.504322 0.556283 0.542297 0.659401 0.366644 0.627686 0.520727 0.514602 0.517190 0.518221 0.512000 0.509706 0.510053 0.513211 0.518188 0.512042 0.522608 0.509828 0.523797 0.511345 0.511553 +0.626040 +0.509215 0.513203 0.488355 0.496915 0.501255 0.510900 0.505373 0.486373 0.508755 0.492199 0.506736 0.508516 0.664599 0.668787 0.002530 0.480425 0.546926 0.515522 0.523428 0.516621 0.514733 0.521425 0.520828 0.510150 0.513273 0.522222 0.516810 0.510970 0.518756 0.511687 0.512843 0.516977 +0.539380 +0.497964 0.496826 0.486775 0.506514 0.497865 0.500724 0.485068 0.488800 0.491293 0.488792 0.490654 0.495774 0.539633 0.911412 0.804875 0.547760 0.408635 0.522394 0.523989 0.517464 0.515497 0.509725 0.524209 0.519001 0.512790 0.515669 0.521822 0.523340 0.519285 0.519499 0.522471 0.520079 +0.426042 +0.497957 0.501053 0.502914 0.512717 0.492209 0.509211 0.509385 0.487491 0.508062 0.498718 0.495630 0.513738 0.001827 0.662303 0.120399 0.043916 0.537739 0.511165 0.520241 0.521350 0.509737 0.515953 0.519042 0.513018 0.519675 0.522878 0.521414 0.510745 0.513516 0.514661 0.514179 0.518383 +0.848563 +0.512429 0.500676 0.496888 0.488634 0.509276 0.506811 0.506385 0.490414 0.500373 0.486455 0.502698 0.488377 0.446330 0.927385 0.064382 0.255954 0.631882 0.512666 0.518717 0.513798 0.512853 0.520221 0.516088 0.521434 0.509764 0.523984 0.511843 0.519864 0.509760 0.524089 0.516181 0.510992 +0.687674 +0.508753 0.514301 0.507729 0.510516 0.494956 0.495616 0.491205 0.486419 0.496230 0.505868 0.512116 0.515063 0.583336 0.887149 0.319577 0.160541 0.209787 0.513808 0.520200 0.523349 0.513308 0.520009 0.517032 0.523505 0.514698 0.517514 0.518443 0.521390 0.514016 0.509989 0.514067 0.519969 +0.822239 +0.492212 0.491139 0.510367 0.510416 0.514004 0.496012 0.510339 0.508224 0.492979 0.501485 0.506495 0.508869 0.258887 0.894233 0.290222 0.146382 0.414403 0.520499 0.516636 0.512868 0.519247 0.510808 0.511071 0.520452 0.520807 0.514522 0.510132 0.515480 0.516431 0.522467 0.523300 0.521807 +0.768037 +0.486619 0.504670 0.501794 0.487410 0.498327 0.494712 0.486576 0.492154 0.495148 0.488582 0.489392 0.506129 0.293977 0.209716 0.077304 0.268817 0.667413 0.523594 0.511077 0.509613 0.517077 0.518377 0.515976 0.522117 0.512611 0.519113 0.516640 0.521702 0.509775 0.519141 0.522709 0.511059 +0.679964 +0.485482 0.510422 0.502956 0.510786 0.506866 0.497106 0.500073 0.512932 0.496515 0.485714 0.508827 0.498427 0.740556 0.345607 0.318071 0.864128 0.695201 0.518924 0.511144 0.522963 0.513454 0.522191 0.511334 0.512781 0.516619 0.519368 0.511876 0.513459 0.523607 0.519212 0.521359 0.514737 +0.203682 +0.512245 0.509040 0.494707 0.496656 0.493356 0.511432 0.492586 0.493676 0.484831 0.502494 0.512062 0.514544 0.155809 0.731231 0.737625 0.112015 0.238762 0.523220 0.520461 0.516101 0.515001 0.522398 0.512508 0.511786 0.512124 0.522480 0.520132 0.519181 0.510053 0.518830 0.519055 0.517081 +0.822163 +0.498044 0.488071 0.501150 0.500694 0.513744 0.494640 0.497924 0.510992 0.513677 0.493715 0.507236 0.514663 0.471384 0.700362 0.305075 0.596933 0.254973 0.512041 0.521050 0.514858 0.519232 0.513354 0.521123 0.519125 0.516807 0.514123 0.516146 0.513529 0.522955 0.523962 0.509770 0.514608 +0.409889 +0.488677 0.510418 0.494677 0.493667 0.498732 0.513130 0.484663 0.512113 0.500300 0.499348 0.496034 0.505555 0.391007 0.805891 0.618885 0.920955 0.071041 0.510989 0.520728 0.519268 0.523130 0.519587 0.523547 0.520474 0.520457 0.521465 0.514139 0.512557 0.517321 0.512027 0.517306 0.514599 +0.072753 +0.504562 0.497754 0.495365 0.515551 0.489846 0.505752 0.509033 0.503405 0.495071 0.487471 0.507312 0.500412 0.207860 0.908453 0.111349 0.043067 0.285218 0.511260 0.517815 0.518931 0.520215 0.514008 0.513772 0.521207 0.510840 0.516074 0.512494 0.518325 0.517435 0.513234 0.511688 0.518198 +0.755480 +0.488469 0.494802 0.515292 0.500272 0.488380 0.512064 0.489453 0.505873 0.501922 0.502045 0.492204 0.492098 0.643382 0.335843 0.340766 0.017032 0.033405 0.509672 0.511938 0.516749 0.510624 0.521905 0.515477 0.513443 0.517454 0.520498 0.519424 0.521389 0.524534 0.511104 0.519520 0.520095 +0.801605 +0.500502 0.497141 0.502578 0.509664 0.489951 0.515219 0.500410 0.492535 0.495643 0.503261 0.515008 0.506569 0.521221 0.693006 0.760552 0.166645 0.719846 0.517397 0.515505 0.515325 0.518556 0.513645 0.513603 0.512041 0.522096 0.523519 0.521828 0.519722 0.518532 0.510804 0.511077 0.523665 +0.770119 +0.488694 0.501605 0.514887 0.489557 0.496111 0.507555 0.497453 0.491230 0.500757 0.498622 0.485904 0.486318 0.467256 0.367251 0.824832 0.720337 0.774662 0.511679 0.518700 0.520717 0.518286 0.523206 0.518091 0.520862 0.512151 0.509839 0.513466 0.510385 0.516219 0.511118 0.520159 0.511003 +0.311316 +0.486961 0.492433 0.497156 0.490676 0.488902 0.491248 0.512690 0.506526 0.508918 0.486397 0.502173 0.494577 0.727330 0.213083 0.627907 0.447881 0.972479 0.515728 0.524363 0.510496 0.524355 0.511479 0.512244 0.523912 0.510271 0.517600 0.509779 0.524294 0.514027 0.514001 0.517414 0.511042 +0.570954 +0.509713 0.495398 0.504829 0.501400 0.498820 0.509492 0.491671 0.495932 0.512323 0.496366 0.490674 0.515422 0.135914 0.606915 0.885631 0.825199 0.897007 0.522668 0.522154 0.516441 0.517305 0.513993 0.514543 0.522881 0.520957 0.510570 0.514426 0.518317 0.518300 0.518791 0.521754 0.524269 +0.155336 +0.487928 0.495080 0.498796 0.498733 0.503679 0.508019 0.509410 0.494339 0.505994 0.498195 0.508544 0.498969 0.449640 0.514761 0.200077 0.195806 0.479871 0.513254 0.512446 0.510041 0.513486 0.522657 0.513813 0.509794 0.509705 0.510486 0.517191 0.510220 0.509895 0.524260 0.519861 0.516530 +0.762585 +0.487258 0.484595 0.505983 0.500580 0.485295 0.501641 0.515524 0.501903 0.495835 0.486343 0.513053 0.513031 0.009970 0.432946 0.152409 0.637117 0.128884 0.517842 0.518965 0.518001 0.515752 0.522584 0.512438 0.516703 0.512595 0.511487 0.517776 0.515066 0.511815 0.514996 0.510139 0.516626 +0.476483 +0.501546 0.488629 0.492917 0.490823 0.511141 0.506828 0.511950 0.515264 0.505248 0.493365 0.503033 0.515067 0.740360 0.043251 0.368383 0.844152 0.196572 0.514663 0.524117 0.519171 0.523710 0.515335 0.520860 0.516825 0.513116 0.516025 0.514830 0.517258 0.520239 0.518720 0.520616 0.510759 +0.220277 +0.502287 0.496504 0.512642 0.489580 0.505451 0.508800 0.498699 0.493033 0.488050 0.491549 0.493501 0.497672 0.113813 0.429036 0.478305 0.942700 0.271821 0.511367 0.517185 0.513852 0.514455 0.518327 0.515942 0.520814 0.518306 0.520291 0.511866 0.514088 0.512114 0.510993 0.514741 0.521039 +0.157191 +0.489688 0.495819 0.504078 0.506320 0.501213 0.493661 0.491422 0.515611 0.487473 0.486794 0.490262 0.515264 0.573569 0.852254 0.275716 0.533573 0.138968 0.523046 0.513882 0.521734 0.517641 0.511145 0.520744 0.510968 0.511796 0.523739 0.523241 0.520765 0.522638 0.523740 0.510347 0.514037 +0.465378 +0.495441 0.506062 0.497893 0.495759 0.496576 0.489513 0.505396 0.498642 0.512796 0.500895 0.498744 0.499793 0.367501 0.023159 0.927669 0.830509 0.061927 0.509960 0.514324 0.516185 0.523662 0.512618 0.523128 0.516895 0.518221 0.519274 0.514115 0.510940 0.509932 0.515430 0.513197 0.519822 +0.275893 +0.499044 0.511043 0.501513 0.504219 0.492165 0.494476 0.508613 0.495518 0.507585 0.513384 0.505490 0.509394 0.778461 0.947112 0.378397 0.019698 0.803755 0.520749 0.516534 0.511731 0.517398 0.523307 0.514585 0.515132 0.510491 0.516655 0.511371 0.513406 0.510329 0.518698 0.515129 0.517136 +0.919120 +0.503989 0.494192 0.489419 0.489237 0.493593 0.501994 0.505695 0.497780 0.511547 0.514035 0.509554 0.498274 0.365801 0.481933 0.871088 0.583501 0.663365 0.523940 0.522838 0.524134 0.522502 0.521918 0.522395 0.516636 0.510433 0.524548 0.511668 0.520699 0.524474 0.523735 0.511702 0.522340 +0.410520 +0.496315 0.509845 0.511086 0.492601 0.503591 0.509834 0.488822 0.494040 0.504027 0.509361 0.512344 0.504616 0.674889 0.485795 0.728943 0.308184 0.818279 0.519719 0.524377 0.512211 0.519025 0.515121 0.522394 0.517248 0.521705 0.510331 0.522724 0.517384 0.513816 0.511427 0.523093 0.517729 +0.676645 +0.512271 0.503148 0.503510 0.495569 0.492921 0.502289 0.507356 0.495412 0.487429 0.501281 0.507770 0.507094 0.203162 0.019789 0.329179 0.429245 0.986826 0.515021 0.510962 0.519558 0.521926 0.510826 0.523583 0.519419 0.524589 0.510104 0.513138 0.517747 0.522726 0.511759 0.512377 0.518838 +0.569263 +0.515882 0.484845 0.494544 0.492024 0.485782 0.510718 0.493965 0.504038 0.501649 0.499896 0.499517 0.505271 0.702857 0.199301 0.167338 0.365394 0.642274 0.520650 0.522630 0.524113 0.514941 0.519966 0.521553 0.522042 0.517401 0.514748 0.519554 0.514273 0.511720 0.512415 0.516776 0.521668 +0.640275 +0.484884 0.485618 0.492044 0.503149 0.499270 0.509723 0.496805 0.505524 0.512259 0.501271 0.500192 0.503279 0.520914 0.538226 0.289876 0.344629 0.900890 0.511092 0.520744 0.516804 0.513892 0.519151 0.514914 0.523955 0.519599 0.522859 0.519426 0.514772 0.512844 0.514158 0.522471 0.519413 +0.604548 +0.490968 0.499421 0.497470 0.492292 0.485582 0.493028 0.500483 0.512646 0.489113 0.506514 0.485773 0.491511 0.547571 0.231914 0.900682 0.603779 0.232351 0.513026 0.512556 0.515053 0.524287 0.514845 0.516319 0.522217 0.519206 0.523674 0.516018 0.519937 0.515522 0.520579 0.513829 0.519299 +0.455484 +0.496213 0.490482 0.508305 0.510615 0.495379 0.499418 0.507055 0.487131 0.491130 0.511639 0.511353 0.511796 0.609681 0.351911 0.191269 0.281858 0.682200 0.513828 0.518952 0.517502 0.521856 0.522724 0.523686 0.524462 0.522095 0.521438 0.523229 0.519784 0.515934 0.523198 0.518640 0.518666 +0.610050 +0.488057 0.493022 0.494549 0.509542 0.487401 0.502851 0.485164 0.502952 0.513641 0.515586 0.508766 0.484695 0.063284 0.819063 0.831486 0.475560 0.837528 0.523877 0.520082 0.514554 0.519872 0.510659 0.510043 0.516334 0.520048 0.514676 0.513724 0.515899 0.516067 0.510678 0.523433 0.519834 +0.573579 +0.488294 0.512109 0.486579 0.486036 0.503590 0.513461 0.485339 0.514903 0.485152 0.500584 0.493049 0.485938 0.559262 0.575220 0.586731 0.918308 0.627355 0.512124 0.512528 0.513277 0.509989 0.514696 0.520156 0.522934 0.516021 0.514952 0.523024 0.520433 0.513391 0.514697 0.517981 0.516716 +0.165773 +0.507456 0.513230 0.505647 0.510374 0.497385 0.488731 0.496008 0.514641 0.503542 0.495676 0.496212 0.486560 0.911050 0.723804 0.001348 0.629505 0.286292 0.511743 0.515990 0.512550 0.523289 0.516488 0.518503 0.523610 0.510761 0.510350 0.520575 0.516946 0.523204 0.517069 0.513869 0.520563 +0.439747 +0.511347 0.511886 0.514465 0.509187 0.491063 0.484672 0.510478 0.498790 0.485276 0.503738 0.494099 0.515606 0.399900 0.148702 0.373546 0.548757 0.159378 0.519800 0.515396 0.511335 0.513108 0.517331 0.516493 0.519781 0.512850 0.515133 0.518565 0.519287 0.518063 0.509668 0.521770 0.510894 +0.484257 +0.511407 0.511417 0.490459 0.486455 0.504012 0.509594 0.512561 0.485715 0.487954 0.514011 0.514263 0.506578 0.408847 0.409173 0.885250 0.429927 0.449220 0.516694 0.518651 0.518857 0.516046 0.521721 0.512859 0.510147 0.519334 0.522098 0.518126 0.524306 0.516596 0.520649 0.510707 0.511363 +0.528060 +0.515895 0.492753 0.505158 0.495523 0.494576 0.494489 0.513900 0.509985 0.504900 0.502563 0.490171 0.500552 0.942573 0.140698 0.956929 0.243255 0.356198 0.512571 0.518944 0.520678 0.510065 0.514407 0.510395 0.511661 0.516413 0.513733 0.517436 0.515317 0.520945 0.515478 0.518957 0.518147 +0.754016 +0.508848 0.507431 0.492539 0.485375 0.491334 0.514893 0.500888 0.503925 0.491885 0.502121 0.514368 0.509776 0.946763 0.506703 0.874008 0.621406 0.270690 0.511292 0.516801 0.524113 0.523219 0.516333 0.516813 0.523728 0.520122 0.517861 0.513888 0.510841 0.514525 0.522282 0.522869 0.514452 +0.383034 +0.499361 0.488493 0.501440 0.502747 0.490727 0.511127 0.497822 0.503800 0.495701 0.512271 0.503072 0.514666 0.867751 0.542433 0.938520 0.065725 0.807957 0.514422 0.519034 0.523370 0.512809 0.520161 0.513378 0.519303 0.523253 0.514238 0.524251 0.520287 0.512421 0.512105 0.510778 0.520390 +0.816206 +0.492092 0.494441 0.489688 0.488473 0.510441 0.503626 0.498623 0.503082 0.504356 0.502314 0.514247 0.485675 0.793903 0.288274 0.436512 0.043181 0.194441 0.517754 0.524599 0.510699 0.516675 0.520121 0.511016 0.523022 0.517354 0.515176 0.521993 0.514429 0.517164 0.514342 0.515991 0.511299 +0.798198 +0.513299 0.491442 0.511267 0.510086 0.513405 0.508672 0.515592 0.487104 0.507299 0.505745 0.486165 0.505798 0.253969 0.297243 0.063738 0.439358 0.833491 0.511937 0.521066 0.510711 0.514896 0.523231 0.519409 0.515265 0.512238 0.514688 0.509819 0.516362 0.514277 0.513817 0.511965 0.518349 +0.610151 +0.496227 0.506374 0.500094 0.495020 0.510360 0.492523 0.502643 0.511872 0.499413 0.488160 0.495231 0.495834 0.910716 0.118661 0.845747 0.990387 0.167230 0.517721 0.512356 0.511634 0.517440 0.523467 0.524153 0.518465 0.516067 0.522159 0.518691 0.509730 0.520210 0.513940 0.515338 0.513809 +0.146603 +0.499194 0.509643 0.485301 0.508470 0.508127 0.492541 0.500372 0.510216 0.495088 0.507327 0.504857 0.501046 0.099876 0.369923 0.695033 0.798133 0.319642 0.513320 0.515410 0.523513 0.520306 0.519784 0.514186 0.520935 0.523870 0.514833 0.515592 0.518124 0.520952 0.522263 0.521237 0.516934 +0.297699 +0.485495 0.504845 0.515818 0.515866 0.505585 0.502619 0.486739 0.510070 0.494082 0.493426 0.504380 0.499010 0.365548 0.231169 0.382610 0.777106 0.189868 0.520723 0.523983 0.518107 0.519254 0.511846 0.521514 0.519439 0.522054 0.515705 0.519790 0.512464 0.517389 0.524606 0.512274 0.524230 +0.257581 +0.510928 0.512673 0.507007 0.499437 0.511576 0.515943 0.509733 0.486107 0.505474 0.490265 0.497752 0.515540 0.338761 0.352496 0.025364 0.958510 0.794282 0.519302 0.521045 0.516701 0.519837 0.519438 0.511969 0.515811 0.524376 0.523283 0.518346 0.513042 0.518396 0.511914 0.519952 0.520890 +0.176058 +0.510482 0.504557 0.510640 0.504983 0.512640 0.515675 0.493718 0.509642 0.487377 0.506522 0.503061 0.492117 0.724180 0.320774 0.264752 0.402440 0.808590 0.523813 0.522804 0.521866 0.516282 0.511626 0.516736 0.516734 0.521239 0.513560 0.521707 0.510501 0.518858 0.520611 0.515949 0.520251 +0.590843 +0.508294 0.499420 0.485632 0.506563 0.495540 0.506385 0.484847 0.494902 0.507644 0.489560 0.507508 0.493252 0.495580 0.071303 0.495652 0.270152 0.086058 0.513991 0.522475 0.524433 0.510870 0.516140 0.515040 0.522086 0.521544 0.521263 0.519298 0.510971 0.521304 0.515338 0.520418 0.524074 +0.740778 +0.487420 0.502853 0.515405 0.515175 0.487261 0.499148 0.499076 0.507988 0.515645 0.494928 0.497075 0.485730 0.393030 0.781848 0.832609 0.346140 0.279603 0.521810 0.514137 0.518288 0.519053 0.516350 0.517908 0.522303 0.516012 0.517230 0.515167 0.521749 0.517530 0.523838 0.509869 0.513467 +0.618897 +0.501788 0.510214 0.494537 0.491893 0.512429 0.500387 0.514954 0.486099 0.494963 0.492074 0.504559 0.514611 0.515140 0.565673 0.246621 0.889610 0.651660 0.515208 0.516759 0.516986 0.521063 0.513726 0.518152 0.511847 0.520767 0.518292 0.512018 0.514550 0.519785 0.517981 0.517632 0.520362 +0.224177 +0.507535 0.513255 0.501851 0.498098 0.513015 0.495209 0.496622 0.491787 0.494188 0.507999 0.489587 0.490568 0.750197 0.251908 0.687619 0.289497 0.983052 0.524071 0.513932 0.517237 0.517487 0.518341 0.511323 0.523178 0.518416 0.520794 0.516025 0.518683 0.516290 0.518337 0.515514 0.511100 +0.656075 +0.506031 0.507599 0.492155 0.513923 0.511465 0.487911 0.486669 0.485607 0.498814 0.507310 0.506069 0.485239 0.804691 0.457530 0.028084 0.647145 0.540633 0.520226 0.517822 0.523291 0.510027 0.513104 0.510642 0.516265 0.516413 0.517977 0.512498 0.522622 0.510097 0.510730 0.514178 0.509737 +0.502518 +0.494192 0.506406 0.501533 0.494618 0.505194 0.505124 0.493696 0.509301 0.490097 0.505913 0.488281 0.488931 0.600240 0.783350 0.059347 0.701182 0.073671 0.513579 0.522069 0.520229 0.524243 0.519337 0.513308 0.519963 0.519645 0.512869 0.519079 0.518861 0.514392 0.513350 0.521932 0.515352 +0.374957 +0.492380 0.498854 0.489705 0.498906 0.487350 0.497539 0.486445 0.497123 0.502987 0.504563 0.497111 0.491434 0.280236 0.442001 0.222337 0.052313 0.561848 0.509674 0.521489 0.510826 0.516699 0.521651 0.510168 0.510397 0.511718 0.524196 0.511912 0.510037 0.521222 0.516821 0.518393 0.519962 +0.746041 +0.488082 0.508835 0.506560 0.500352 0.514742 0.514539 0.485368 0.499057 0.508507 0.504174 0.494403 0.505251 0.960752 0.456854 0.681394 0.743548 0.585807 0.515499 0.517253 0.522664 0.520603 0.520401 0.519587 0.522556 0.518574 0.516493 0.516392 0.509735 0.523607 0.522122 0.524226 0.519899 +0.367209 +0.497379 0.501673 0.514300 0.506397 0.510074 0.492076 0.505891 0.495322 0.510750 0.507155 0.515466 0.511128 0.476921 0.686666 0.285884 0.304147 0.021604 0.521939 0.509798 0.521226 0.513287 0.521880 0.522755 0.519260 0.515989 0.512738 0.510718 0.513919 0.517404 0.516929 0.515043 0.517001 +0.623023 +0.505680 0.489060 0.495147 0.503871 0.497383 0.485174 0.512103 0.514975 0.492550 0.497204 0.485331 0.514581 0.661050 0.074820 0.565867 0.512440 0.215056 0.521197 0.513638 0.515629 0.512349 0.517903 0.519924 0.511232 0.512193 0.516164 0.520634 0.523567 0.522420 0.510003 0.520577 0.519446 +0.494542 +0.495930 0.510720 0.502184 0.491557 0.491834 0.497853 0.491956 0.497312 0.488313 0.491506 0.508657 0.500080 0.589575 0.670139 0.707973 0.126591 0.034662 0.511390 0.514078 0.518366 0.517664 0.519215 0.524086 0.523158 0.516380 0.513946 0.516004 0.517851 0.510954 0.521248 0.513671 0.517789 +0.814036 +0.509962 0.497859 0.499983 0.508434 0.504037 0.515728 0.487775 0.492528 0.500783 0.496396 0.515141 0.485485 0.423067 0.242659 0.348246 0.646195 0.583715 0.513469 0.517473 0.523374 0.522976 0.523368 0.512794 0.517687 0.515468 0.513402 0.514288 0.515739 0.520377 0.510145 0.524328 0.512241 +0.366212 +0.511124 0.502210 0.487914 0.504531 0.511764 0.510496 0.486906 0.505222 0.491379 0.515802 0.501692 0.503802 0.258340 0.701512 0.608325 0.581438 0.021911 0.524249 0.519688 0.513474 0.523207 0.514067 0.517656 0.518686 0.516438 0.517348 0.522275 0.512997 0.511814 0.513816 0.522998 0.512743 +0.455661 +0.493163 0.512502 0.491841 0.486346 0.509139 0.495817 0.508428 0.498203 0.498034 0.502768 0.509949 0.495026 0.856376 0.495998 0.080489 0.765845 0.062477 0.513572 0.519190 0.515914 0.516216 0.511733 0.511210 0.514097 0.517704 0.514213 0.522757 0.523256 0.517552 0.514514 0.520159 0.511113 +0.252470 +0.511227 0.510854 0.492587 0.487630 0.515101 0.501879 0.499829 0.503366 0.490303 0.510661 0.513943 0.511617 0.415139 0.088573 0.532119 0.719057 0.270754 0.512605 0.514300 0.511167 0.519152 0.511401 0.523924 0.509988 0.514819 0.512338 0.517661 0.518814 0.522061 0.519125 0.522382 0.510872 +0.365127 +0.500039 0.509124 0.494361 0.500158 0.487421 0.494326 0.500809 0.498084 0.505589 0.506053 0.500381 0.498574 0.512787 0.051513 0.130220 0.983376 0.406775 0.518796 0.511371 0.518406 0.523143 0.523136 0.511731 0.516765 0.522288 0.523239 0.516428 0.512201 0.521799 0.522762 0.523482 0.515545 +0.220782 +0.506282 0.491609 0.493595 0.507933 0.515127 0.506309 0.508953 0.491064 0.501596 0.488490 0.507897 0.498315 0.872991 0.534563 0.762769 0.393986 0.835297 0.516889 0.512677 0.511656 0.514208 0.513960 0.513508 0.517746 0.522222 0.523832 0.515456 0.519995 0.516677 0.517273 0.510318 0.523355 +0.442776 +0.491069 0.497558 0.492742 0.504186 0.496553 0.512923 0.490639 0.508524 0.503782 0.498459 0.511369 0.509790 0.640046 0.309209 0.039639 0.708755 0.251465 0.513321 0.516603 0.513747 0.518266 0.524579 0.513003 0.520122 0.518296 0.521079 0.514944 0.510883 0.513807 0.514804 0.519666 0.522313 +0.269419 +0.507005 0.501483 0.508131 0.505097 0.510714 0.493153 0.498950 0.496278 0.493272 0.493195 0.507519 0.495425 0.103863 0.330697 0.913762 0.279755 0.366486 0.524327 0.510797 0.524190 0.515374 0.521484 0.512248 0.517537 0.516059 0.519674 0.513428 0.514166 0.516988 0.520362 0.522669 0.521801 +0.623263 +0.485803 0.484924 0.502926 0.509637 0.509182 0.496534 0.514252 0.503041 0.506160 0.510667 0.489909 0.493748 0.478250 0.015508 0.433967 0.292840 0.126571 0.520099 0.513775 0.514082 0.515315 0.518616 0.522072 0.518393 0.510840 0.511528 0.515864 0.511763 0.522277 0.510868 0.524321 0.522391 +0.695675 +0.503158 0.487301 0.493890 0.493173 0.486603 0.510511 0.486460 0.492882 0.499849 0.490999 0.511261 0.505117 0.314562 0.929425 0.319626 0.976039 0.187348 0.515870 0.513730 0.520201 0.520339 0.510695 0.513310 0.519007 0.516105 0.517564 0.513512 0.517994 0.509773 0.517981 0.520725 0.511205 +0.272359 +0.489260 0.487395 0.492291 0.508045 0.504659 0.493008 0.512160 0.492836 0.511227 0.509835 0.502083 0.488836 0.700723 0.360996 0.775236 0.785967 0.002851 0.522554 0.515162 0.521275 0.517284 0.510519 0.515137 0.514615 0.521343 0.524170 0.516128 0.515307 0.522249 0.514262 0.510027 0.510704 +0.215747 +0.515728 0.507788 0.498010 0.507777 0.497646 0.498984 0.512182 0.514555 0.510945 0.512846 0.488232 0.486096 0.678223 0.479714 0.596409 0.453647 0.818779 0.510535 0.510818 0.522638 0.517118 0.521137 0.521681 0.512249 0.511823 0.510617 0.521085 0.523247 0.516172 0.516869 0.520615 0.522608 +0.581366 +0.513109 0.508709 0.505722 0.501059 0.510178 0.510482 0.503075 0.498578 0.512326 0.515520 0.503418 0.493400 0.400284 0.607970 0.616448 0.998179 0.022851 0.521003 0.518389 0.509636 0.514846 0.523024 0.523755 0.517192 0.511420 0.521422 0.512594 0.514953 0.516805 0.521997 0.523927 0.518421 +0.190457 +0.509644 0.495794 0.490517 0.501492 0.496782 0.495934 0.494953 0.501931 0.513170 0.492132 0.500372 0.501755 0.881486 0.211862 0.125290 0.190974 0.312574 0.517895 0.512842 0.516710 0.512086 0.524534 0.512264 0.522503 0.521803 0.512396 0.516288 0.518591 0.512868 0.510618 0.521031 0.519247 +0.800368 +0.500576 0.500350 0.489089 0.487290 0.488521 0.500772 0.500753 0.496414 0.501395 0.502810 0.512113 0.492281 0.521682 0.431199 0.800911 0.974403 0.706976 0.515418 0.510208 0.511432 0.517351 0.509977 0.514780 0.523256 0.523495 0.518021 0.513584 0.514008 0.523092 0.515648 0.520732 0.513037 +0.170038 +0.501779 0.514168 0.511156 0.508133 0.500330 0.488757 0.504160 0.508330 0.507918 0.509587 0.508765 0.504335 0.037097 0.009635 0.805740 0.089639 0.430489 0.522802 0.510530 0.524485 0.517883 0.522283 0.523080 0.519724 0.520947 0.517585 0.524194 0.521305 0.513452 0.524474 0.516133 0.520474 +0.937608 +0.510420 0.490827 0.510737 0.514173 0.503302 0.515905 0.498903 0.494973 0.500213 0.509559 0.490032 0.490178 0.847223 0.777469 0.283806 0.403654 0.196951 0.520031 0.521541 0.524577 0.513868 0.511499 0.516025 0.511707 0.510379 0.523392 0.517994 0.524398 0.512173 0.509979 0.519016 0.516509 +0.702477 +0.500903 0.497755 0.512130 0.490263 0.502831 0.495317 0.495292 0.489736 0.505694 0.511635 0.513012 0.511912 0.738798 0.823485 0.104235 0.579641 0.840669 0.520161 0.519198 0.511549 0.514840 0.517445 0.513613 0.514782 0.515862 0.521480 0.523526 0.514803 0.516472 0.514954 0.522199 0.516997 +0.371462 +0.494340 0.515029 0.496184 0.510802 0.504445 0.488664 0.499581 0.504436 0.498086 0.502331 0.491874 0.484660 0.479290 0.475530 0.323160 0.338447 0.074188 0.523729 0.520539 0.511776 0.515926 0.519915 0.518364 0.514357 0.511991 0.513635 0.518797 0.518352 0.522842 0.511871 0.520148 0.521243 +0.681667 +0.503096 0.513229 0.505372 0.509209 0.506013 0.492687 0.499090 0.487336 0.515249 0.509754 0.490143 0.502215 0.944805 0.628121 0.046956 0.595582 0.562893 0.517933 0.514260 0.524155 0.510881 0.511042 0.515729 0.511276 0.513936 0.511997 0.516122 0.511286 0.516498 0.513031 0.520277 0.518208 +0.439129 +0.485310 0.498736 0.488812 0.486355 0.493329 0.497703 0.512509 0.511123 0.495363 0.513993 0.489638 0.499233 0.042831 0.315494 0.593115 0.126344 0.891583 0.521303 0.513839 0.524287 0.513495 0.518675 0.523977 0.518375 0.518203 0.516540 0.514617 0.523926 0.514596 0.515592 0.520727 0.511546 +0.853523 +0.487802 0.508990 0.511991 0.494929 0.511746 0.487999 0.488229 0.492579 0.503811 0.484791 0.495963 0.509769 0.029569 0.577586 0.324639 0.170156 0.693452 0.513247 0.511561 0.515785 0.514465 0.521930 0.510649 0.516862 0.510150 0.521118 0.520010 0.514609 0.520505 0.516690 0.520460 0.520553 +0.692647 +0.496093 0.488436 0.507482 0.509155 0.487522 0.497783 0.503677 0.492809 0.497438 0.495325 0.507970 0.502178 0.070811 0.221608 0.809369 0.029525 0.839713 0.519410 0.521764 0.519995 0.519036 0.512370 0.522652 0.524415 0.521216 0.522454 0.514409 0.516740 0.518312 0.515163 0.519120 0.514849 +0.870206 +0.515493 0.499121 0.485232 0.510315 0.513497 0.485079 0.498040 0.511317 0.512537 0.514764 0.500496 0.508650 0.815344 0.378949 0.282768 0.958412 0.154899 0.516349 0.512715 0.509714 0.516018 0.519074 0.518483 0.510084 0.512652 0.521712 0.521550 0.521103 0.524068 0.516250 0.514735 0.521073 +0.308376 +0.503113 0.492543 0.502931 0.505163 0.510762 0.494941 0.489601 0.501948 0.495549 0.499221 0.498347 0.490388 0.568876 0.046595 0.531053 0.824885 0.614508 0.515807 0.514977 0.516039 0.513472 0.510715 0.513672 0.514509 0.522163 0.511325 0.514806 0.513978 0.524367 0.519880 0.519822 0.521267 +0.316907 +0.485136 0.513885 0.499709 0.489239 0.485997 0.510632 0.495224 0.501398 0.486737 0.500927 0.500670 0.509240 0.546253 0.092649 0.989488 0.068408 0.867485 0.510530 0.515923 0.524256 0.518263 0.521462 0.518543 0.518835 0.513824 0.519285 0.511888 0.523059 0.513426 0.515515 0.520436 0.523170 +0.668454 +0.492788 0.500281 0.515356 0.490676 0.493730 0.488196 0.504265 0.512004 0.490870 0.492628 0.504135 0.494722 0.201722 0.822843 0.321944 0.916862 0.343072 0.520822 0.523924 0.514211 0.518681 0.512171 0.512222 0.516579 0.517661 0.520112 0.514443 0.510701 0.523643 0.512043 0.524066 0.519208 +0.142136 +0.503421 0.510708 0.484872 0.495782 0.487324 0.490210 0.488429 0.484704 0.511903 0.510045 0.485609 0.497423 0.117372 0.205208 0.374963 0.339381 0.753582 0.511354 0.518698 0.512865 0.515669 0.521931 0.510192 0.517353 0.512295 0.521674 0.516079 0.512852 0.519515 0.523295 0.519230 0.515910 +0.514948 +0.488642 0.514463 0.510659 0.514633 0.494626 0.513092 0.505475 0.501712 0.514494 0.484931 0.488321 0.493471 0.664060 0.614937 0.617374 0.553183 0.480163 0.511704 0.516953 0.519450 0.517948 0.518748 0.512999 0.521524 0.520488 0.522744 0.513914 0.522421 0.515852 0.520295 0.519995 0.513060 +0.478692 +0.490932 0.484891 0.507722 0.516005 0.485425 0.486794 0.493444 0.485292 0.486515 0.488212 0.485266 0.488157 0.520225 0.974774 0.946867 0.256808 0.985030 0.512534 0.521402 0.512267 0.517288 0.509972 0.512790 0.514054 0.512598 0.514791 0.524286 0.519212 0.524498 0.513243 0.516796 0.520004 +0.730405 +0.508352 0.507742 0.499656 0.485129 0.513918 0.494879 0.494627 0.501859 0.505937 0.503745 0.508441 0.496825 0.266136 0.633818 0.713510 0.114712 0.532619 0.511508 0.516684 0.522290 0.518398 0.524297 0.510586 0.510620 0.515742 0.513668 0.522760 0.513223 0.520848 0.512677 0.521487 0.521364 +0.782108 +0.509669 0.509761 0.513062 0.498730 0.513602 0.498597 0.513616 0.501756 0.502873 0.499510 0.513316 0.501904 0.635906 0.779277 0.650295 0.443225 0.780233 0.520152 0.513855 0.509798 0.522070 0.510825 0.514570 0.515008 0.517264 0.512744 0.511560 0.515000 0.519715 0.515889 0.512357 0.514560 +0.546472 diff --git a/lib/ann/fann/datasets/robot.test b/lib/ann/fann/datasets/robot.test new file mode 100644 index 0000000..ceae66b --- /dev/null +++ b/lib/ann/fann/datasets/robot.test @@ -0,0 +1,1189 @@ +594 48 3 +0 0 0 0 0 0.860000 0 0 0 0 0 0 0.480000 0.400000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.890000 0 0 0 +0 0.484375 0.571875 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.960000 0 0 0 0 0 +1 0.509375 0.509375 +0 0 0 0 0 0 0 0 0.560000 0 0 0 0 0 0 0 0.640000 0 0 0 0 0 0 0 0.570000 0 0 0 0 0 0 0 0.690000 0 0 0 0 0 0 0 0.300000 0 0 0 0 0 0 0 +0 0.371875 0.337500 +0 0 0 0 0.780000 0.260000 0 0 0 0 0 0.650000 0 0.710000 0.270000 0 0 0 0 0.750000 0 0 0.830000 0 0 0 0 0.750000 0 0 0 0.730000 0 0 0 0 0.580000 0 0 0.500000 0 0 0 0 0.730000 0 0 0 +0 0.500000 0.500000 +0 0 0 0 0.600000 0 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.670000 0 0 0 +0 0.509375 0.537500 +0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0.690000 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.980000 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.790000 0 0 +0 0.546875 0.650000 +0 1 0 0 0 0 0.320000 0.320000 0 0.890000 0 0 0 0 0 0 0 0.350000 0.630000 0 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 0.940000 0 0 0 0 0 +0 0.465625 0.365625 +0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.600000 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0.580000 0 0 +0 0.553125 0.656250 +0 0 0 0 0 0 0.690000 0 0 0 0 0 0 0 0.510000 0 0 0 0 0 0 0 0.500000 0 0 0 0 0 0 0 0.620000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.510000 0 +0 0.590625 0.609375 +0.260000 0.260000 0.410000 0 0.700000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.710000 0 0 0 0 +0 0.475000 0.525000 +0 0.840000 0 0 0 0 0.690000 0.510000 0 0.770000 0 0 0 0 0.950000 0 0 0.720000 0 0 0 1 0 0 0 0 0.820000 0 0 0.970000 0 0 0 0 0.870000 0 0.410000 0.520000 0 0 0 0 0.790000 0 0.870000 0 0 0 +0 0.512500 0.653125 +0.380000 0 0 0 0.590000 0 0 0 0 0 0 0.510000 0 0 0 0 0 0 0.340000 0 0 0 0 0 0 0 0.690000 0 0 0 0 0 0 0 0.750000 0 0.270000 0 0 0 0 0.860000 0 0 0 0 0 0 +0 0.378125 0.534375 +0 0 0 0 0.320000 0 0 0 0 0 0 0 0.440000 0 0 0 0 0 0 0.370000 0.290000 0 0 0 0 0 0 0.620000 0 0 0 0 0 0 0 0.730000 0 0 0 0 0 0 0 0.280000 0 0 0 0 +0 0.496875 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.490000 0 0 0 0 0 0 0 0.610000 0 0 0 0 0 0 0 0.710000 0 0 +0 0.537500 0.546875 +0 0 0 0 0.710000 0 1 0 0 0 0 0 0.780000 0 0 0.790000 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.730000 0 0 0 +0 0.540625 0.487500 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.330000 0 0 0 0 0 0 +1 0.506250 0.506250 +0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.350000 0.670000 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.830000 0 0 0 +0 0.478125 0.615625 +0 0 0 0.480000 0.250000 0 0 0 0 0 0 0.350000 0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.500000 0 0 0 0 0 0 0 0.620000 0 0 0 0 0 0 0 0.850000 0 0 0 +0 0.500000 0.550000 +0 0 0.710000 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0 0.990000 0 0 0 0 0 0 0 0.870000 0 0 0 0 +0 0.487500 0.418750 +0 0 0 0.300000 0 0 0 0 0 0 0 0.380000 0 0 0 0.540000 0 0 0 0.270000 0 0 0.530000 0.640000 0 0 0 0 0 0.530000 0.600000 0 0 0 0 0 0.570000 0.520000 0 0 0 0 0 0.760000 0.570000 0 0 0 +0 0.431250 0.756250 +0 0 0 0 0.730000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0 0.820000 0 0 0 +0 0.493750 0.528125 +0 0 0 0.590000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 0.990000 0 0 0 0 +0 0.462500 0.462500 +0 0 0 0.590000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 0.990000 0 0 0 0 +0 0.462500 0.462500 +0 0 0 0 0 0 1 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0.300000 0.750000 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.880000 0 0 0 +0 0.500000 0.625000 +0 1 0 0 0 0 0.730000 0.290000 0 0 0.890000 0 0 0 0.700000 0 0 0 0.970000 0 0 0.930000 0 0 0 0 0.930000 0 0 1 0 0 0 0 0.570000 0 0.440000 0.270000 0 0 0 0 0 0.660000 0.840000 0 0 0 +0 0.503125 0.650000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0 +1 0.496875 0.496875 +0 0.700000 0 0 0.520000 0.420000 0 0 0.820000 0 0 0 0 0 0.370000 0.450000 0 0 0 0 0 0 0 0 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.496875 0.496875 +0 0 0 0 0 0.630000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.600000 0 0 0 0 0 0 0 0 0.860000 0 +0 0.590625 0.550000 +0 0 0 0.480000 0 0 0 0 0 0 0 0.520000 0 0 0 0 0 0 0 0.520000 0 0 0 0 0 0 0 0.500000 0 0 0.290000 0 0 0 0.940000 0 0 0 0 0 0 0 0.910000 0 0 0 0 0 +0 0.434375 0.512500 +0 0 0 0.510000 0 0 0 0 0 0 0 0.600000 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 0 0.570000 0 0 0 0 +0 0.496875 0.493750 +0 0 0 0 0 0 0 0.640000 0 0 0 0 0 0 0 0.820000 0 0 0 0.260000 0 0 0 0.520000 0 0 0 0.270000 0 0 0 0.720000 0 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 0 0.750000 +0 0.621875 0.621875 +0 0 0 0.850000 0 0 0 0 0 0 0 0.510000 0 0 0 0 0 0 0 0.480000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 +0 0.475000 0.475000 +0 0.760000 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.520000 0 0 0 0 0 0 0.400000 0.560000 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 +0 0.375000 0.400000 +0 0 0 0.470000 0 0 0 0 0.620000 0.860000 0 0 0 0 0 0 0 0 1 0.310000 0 0 0 0 0 0 0 0.680000 0.660000 0 0 0 0 0 0 0 0.470000 0.790000 0 0 0 0 0 0 0 0.260000 0.920000 0 +0 0.671875 0.271875 +0 0 0 0 0 0 0 0.660000 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0.610000 0.260000 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0.650000 0 0 0 +0 0.509375 0.668750 +0 0 0.510000 0.530000 0.440000 0 0 0 0 0 0 0.560000 0.730000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.630000 0 0 0 +0 0.490625 0.543750 +0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0.690000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.320000 0.470000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.840000 0 0 0 +0 0.481250 0.615625 +0 0 0.420000 0 0 0 0 0 0 0.460000 0 0 0 0 0 0 0 0.610000 0 0 0 0 0 0 0 0.570000 0 0 0 0 0 0 0 0.250000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0.343750 0.440625 +0 0 0 0 0.640000 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0.780000 0 0 0 +0 0.543750 0.506250 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.360000 0 0 0 0 0 0 0 0.580000 0 0 0 0 0 0 0 0.470000 0 0 0 0 0 0 +0 0.415625 0.306250 +0 0 0 0 0 0 0 0.360000 0.290000 0 0 0 0 0 0 0.320000 0 0.930000 0 0 0 0 0 0 0 0 1 0.420000 0 0 0 0 0 0 0 0.550000 0.770000 0 0 0 0 0 0 0 0 0.990000 0.560000 0 +0 0.662500 0.228125 +0 0 0.520000 0 0 0 0 0 0 0 0.610000 0 0 0 0 0 0 0 0.380000 0.280000 0 0 0 0 0 0 0 0.860000 0 0 0 0.280000 0 0 0 0.780000 0 0 0 0 0 0 0 0.410000 0 0 0 0 +0 0.475000 0.431250 +0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0.690000 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.980000 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.790000 0 0 +0 0.546875 0.650000 +0 0 0.470000 0 0 0 0 0 0 0 0.370000 0.460000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0 0.590000 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.770000 0 0 0 +0 0.562500 0.406250 +0 0 0 0 0.370000 0 0 0 0 0 0 0 0.560000 0 0 0 0 0 0 0 0.580000 0 0 0 0 0 0 0 0.540000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0.660000 0.300000 0 0 +0 0.512500 0.506250 +0 0 0.250000 0 0 0 0 0 0 0 0 0 0 0.620000 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.730000 0 0 +0 0.546875 0.587500 +0 0 0 0 0 0 0.660000 0 0 0 0 0 0 0 0.410000 0 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0 0.630000 +0 0.718750 0.568750 +0 0.590000 0 0 0 0 0 0 0 0.350000 0.310000 0 0 0 0 0 0 0 0.730000 0 0 0 0 0 0 0 0.780000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 +0 0.443750 0.409375 +0.370000 0.540000 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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.490625 0.496875 +0 0 0 0 0.650000 0 0 0 0 0 0 0.840000 0 0 0 0 0 0.260000 0 0.800000 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 +0 0.425000 0.521875 +0 0 0 0.410000 0 0 0 0 0 0 0 0.690000 0 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.950000 0 0 0 0 0 0 0 0 0.420000 0 0 0 +0 0.503125 0.496875 +0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0.730000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.370000 0.560000 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.860000 0 0 0 +0 0.481250 0.615625 +0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0.360000 0.560000 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0.760000 0 0 0 +0 0.478125 0.618750 +0 0 0 0.370000 0 0 0 0 0 0 0 0.530000 0 0 0 0 0 0 0 0.570000 0 0 0 0 0 0 0 0.520000 0 0 0.250000 0 0 0 0.790000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 +0 0.431250 0.509375 +0.250000 0 0 0.810000 0.400000 0 0 0 0 0 0 0.510000 0 0 0 0 0 0 0 0.480000 0 0 0 0 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.496875 0.496875 +0 0 0 0 0.540000 0 0 0 0 0 0 0 0.640000 0 0 0 0 0 0 0 0.610000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 1 0 0 0 +0 0.512500 0.515625 +0 0.510000 0 0 0 0 0 0 0 0.570000 0 0 0 0 0 0 0 0.540000 0 0 0 0 0 0 0 0.640000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0.371875 0.403125 +0 0.360000 0.480000 0 0 0 0.290000 0 0 0.950000 0 0 0 0 0 0 0.490000 0.330000 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.620000 0 0 0 0 0 0 0 +0 0.300000 0.443750 +0 0.800000 0 0 0 0 0 0.500000 0 0.650000 0 0 0 0 0 0.490000 0.690000 0 0 0 0 0 0 0.420000 0.810000 0 0 0 0 0 0 0 0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0.290625 0.425000 +0 0 0 0 0 0 0 0 0 0 0 0 0.280000 0 0 0 0 0 0 0.590000 0 0 0 0 0 0 0 0.570000 0 0 0 0 0 0 0.390000 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 +0 0.443750 0.534375 +0 0 0 0 0 0.250000 0 0 0 0 0 0 0.510000 0 0 0 0 0 0.300000 0.960000 0 0 0 0 0 0.420000 0.830000 0 0 0 0 0 0 0.970000 0 0 0 0 0 0 0.260000 0 0 0 0 0 0 0 +0 0.281250 0.615625 +0 0 0 0 0 0 0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.630000 0 0 0 +1 0.500000 0.500000 +0 0 0 0.370000 0 0 0 0 0 0 0 0.530000 0 0 0 0 0 0 0 0.570000 0 0 0 0 0 0 0 0.520000 0 0 0.250000 0 0 0 0.790000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 +0 0.431250 0.509375 +0.500000 0.560000 0.560000 0 0 0 0 0 0 0 0 0.740000 0.250000 0.280000 0.380000 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.340000 0.370000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.780000 0 0 +0 0.600000 0.415625 +0 0 0 0 0 0.730000 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.980000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.460000 0.340000 0 0 0 +0 0.490625 0.568750 +0 0 0.750000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.940000 0 0 0 0 0 +0 0.418750 0.437500 +0 0.520000 0.840000 0.800000 0 0 0 0 0 0 0 0 0.620000 0.790000 0 0 0 0 0 0 0 0 0.830000 0.660000 0 0 0 0.420000 0 0 0 0 0 0 0 0.250000 0.330000 0 0 0 0 0 0 0 0.600000 0 0 0 +0 0.831250 0.350000 +0 0 0 0.440000 0 0 0 0 0.780000 0.350000 0 0.290000 0 0 0 0 0 0.590000 0.960000 0.760000 0 0 0 0 0 0 0 0 0.960000 0.970000 0.350000 0 0 0 0 0 0 0 0.700000 0.920000 0 0 0 0 0 0 0 0 +0 0.768750 0.228125 +0 0 0 0 0 0 0.410000 0.440000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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.515625 0.515625 +0 0 1 0 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.970000 0 0 0 0 0 0 0 0.460000 0.300000 0 0 0 0 0 0 0 0.690000 0 0 0 0 0 0 0 0.890000 0 0 0 +0 0.546875 0.431250 +0 0.590000 0 0 0 0 0 0 0 0.350000 0.310000 0 0 0 0 0 0 0 0.730000 0 0 0 0 0 0 0 0.780000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 +0 0.443750 0.409375 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0.610000 0.290000 +1 0.506250 0.506250 +0 0 0.900000 0 0 0 0 0.330000 0 0 0 1 0 0 0 0.290000 0 0 0 0.360000 0.620000 0 0 0 0 0 0 0 0.600000 0.380000 0 0 0 0 0 0 0 0.350000 0.560000 0 0 0 0 0 0 0 0.600000 0.590000 +0 0.665625 0.390625 +0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0.580000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.390000 0.490000 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.780000 0 0 0 +0 0.478125 0.618750 +0 0 0 0 0.780000 0.260000 0 0 0 0 0 0.650000 0 0.710000 0.270000 0 0 0 0 0.750000 0 0 0.830000 0 0 0 0 0.750000 0 0 0 0.730000 0 0 0 0 0.580000 0 0 0.500000 0 0 0 0 0.730000 0 0 0 +0 0.500000 0.500000 +0.570000 0.490000 0 0 0 0 0 0.660000 0 1 0 0 0 0 0 0.870000 0 0 0.880000 0 0 0 0.490000 0.270000 0 0 0.500000 0.430000 0 0 0.870000 0 0 0 0 0.910000 0 0 0.840000 0 0 0 0 0.470000 0.330000 0 0.780000 0 +0 0.581250 0.646875 +0 0.450000 0.510000 0 0 0 0 0.290000 0 0 0.710000 0.520000 0 0 0 0.460000 0 0 0 0.950000 0 0 0 0.350000 0 0 0 0 1 0 0 0 0 0 0 0 0 0.960000 0 0 0 0 0 0 0 0 0.670000 0 +0 0.640625 0.368750 +0 0 0.900000 0 0 0 0 0.330000 0 0 0 1 0 0 0 0.290000 0 0 0 0.360000 0.620000 0 0 0 0 0 0 0 0.600000 0.380000 0 0 0 0 0 0 0 0.350000 0.560000 0 0 0 0 0 0 0 0.600000 0.590000 +0 0.665625 0.390625 +0 0 0 0 0 0.690000 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0.460000 0.430000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.970000 0 0 0 +0 0.506250 0.568750 +0 0 0 0 0 0 0 0 0 0 0 0 0.300000 0 0 0 0 0 0 0 0.620000 0 0 0 0 0 0 0 0.660000 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 0.870000 0 0 0 +0 0.500000 0.515625 +0 0 0 0 0 0 1 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0.630000 0 0 0 0 0 0 0 0.930000 0 0 0 0 0 0 0 0.880000 0 0 0 +0 0.493750 0.609375 +0 0 0 0.330000 0 0 0 0 0 0 0 0.460000 0 0 0 0 0 0 0 0.500000 0 0 0 0 0 0 0 0.540000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.520000 0 0 0 0 +0 0.462500 0.493750 +0 0 0 0.580000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.620000 0 0 0 0 +0 0.493750 0.487500 +0 0 0 0.790000 0 0 0 0.420000 0 0 0 0.670000 0 0 0 0.390000 0 0 0 0.600000 0.340000 0 0 0.260000 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.690000 0 0 0 0 0 0 0 0.440000 0.320000 0 0 +0 0.556250 0.453125 +0 0 0 0 0 0 0 0 0.870000 0.980000 0 0 0 0 0 0 0 0 0.760000 1 0 0 0 0 0 0 0 0 1 0.720000 0 0 0 0 0 0 0 0.400000 1 0 0 0 0 0 0 0 0 1 +0 0.725000 0.256250 +0 0 0.490000 0.860000 0.250000 0 0 0 0 0 0 0 0.740000 0.550000 0 0 0 0 0 0 0 0.380000 0.920000 0 0 0 0 0 0 0 0 0.970000 0 0 0 0 0 0 0 0 0 0 0.250000 0 0 0 0 0 +0 0.787500 0.393750 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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.493750 0.493750 +0 0 0 0 0.520000 0 0 0 0 0.300000 0 0 0.680000 0 0.370000 0.410000 0 0 0 0 0.630000 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.800000 0 0 0 +0 0.503125 0.543750 +0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.550000 0.350000 0 0 0 0 0 0 0 0.960000 0 0 0 0 0 0 0 0.780000 +0 0.643750 0.584375 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.340000 0 0 0 0 0 0 0 0.390000 0 0 0 0 +0 0.512500 0.368750 +0.380000 0 0 0 0.590000 0 0 0 0 0 0 0.510000 0 0 0 0 0 0 0.340000 0 0 0 0 0 0 0 0.690000 0 0 0 0 0 0 0 0.750000 0 0.270000 0 0 0 0 0.860000 0 0 0 0 0 0 +0 0.378125 0.534375 +0 0 0 0.270000 0 0.520000 0 0 0 0 0 0 0.520000 0 0 0 0 0 0 0.630000 0 0 0.410000 0.330000 0 0 0 0.560000 0 0 0 0 0 0 0.630000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 +0 0.396875 0.578125 +0 0.360000 0.480000 0 0 0 0.290000 0 0 0.950000 0 0 0 0 0 0 0.490000 0.330000 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.620000 0 0 0 0 0 0 0 +0 0.300000 0.443750 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0.610000 0.290000 +1 0.496875 0.496875 +0 0 0 0 0.800000 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.630000 0 0 0 0 +0 0.468750 0.512500 +0 0 0 0.450000 0 0 0 0 0 0 0 0.550000 0 0 0 0 0 0 0 0.490000 0 0 0 0 0 0 0 0.390000 0.460000 0 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 0.800000 0 0 0 +0 0.506250 0.493750 +0 0 0 0 0 0.710000 0 0 0 0 0 0 0 0.950000 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0.730000 0 0 +0 0.546875 0.562500 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.550000 0 0 0 0 0 0 0 0.560000 0 0 0 0 0 0 0 0.730000 0 0 0 0 0 0 0 0.710000 0 0 0 +0 0.490625 0.581250 +0 0 0 0 0 0 0.280000 0 0 0 0 0 0 0.350000 0.260000 0 0 0 0 0 0 0.730000 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.810000 0 0 +0 0.546875 0.587500 +0.290000 0 0 0 0 0 0 0 0.440000 0 0 0.330000 0 0 0 0 0.460000 0 0 0.570000 0 0 0 0 0.490000 0 0 0.660000 0 0 0 0 0.850000 0 0 0.560000 0 0 0 0 0.750000 0 0 0.880000 0 0 0 0 +0 0.493750 0.490625 +0.250000 0 0 0.810000 0.400000 0 0 0 0 0 0 0.510000 0 0 0 0 0 0 0 0.480000 0 0 0 0 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.496875 0.496875 +0 0 0 0 0 0.750000 0 0.360000 0 0 0 0 0 0.770000 0 0.480000 0 0 0 0 0.250000 0.450000 0 0.280000 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.880000 0 0 0 +0 0.506250 0.565625 +0 0 0 0 0 0.860000 0 0 0 0 0 0 0.480000 0.400000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.890000 0 0 0 +0 0.484375 0.571875 +0 0 0 0 0 0.780000 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.610000 0 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0 0.860000 0 0 +0 0.550000 0.562500 +0 0 0.460000 0 0 0 0 0 0 0 0.410000 0 0 0 0 0 0 0.490000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0.353125 0.446875 +0 0 0.360000 0 0 0.780000 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.990000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 0.590000 0 0 0 0 +0 0.490625 0.571875 +0 0 0 0 0.910000 0 0 0.490000 0 0 0 0 0.610000 0 0 0.420000 0 0 0 0.780000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.950000 0 0 0 0 0 +0 0.393750 0.553125 +0 0 0 0 0.690000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.660000 0 0 0 +0 0.543750 0.518750 +0 0 0 0 0.790000 0 0 0 0 0 0 0.780000 0 0 0 0 0 0 0 0.950000 0 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0.870000 0 0 0 0 0 +0 0.446875 0.521875 +0 0 0 0.260000 0 0 0 0 0 0 0 0.290000 0 0 0 0 0 0 0 0.310000 0 0 0 0 0.260000 0.380000 0 0.370000 0 0 0.270000 0.390000 0 0 0 0.590000 0 0 0 0 0 0 0 0.600000 0 0 0 0 +0 0.471875 0.496875 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.250000 0 0 0 0 0 0 0 0.490000 0 0 0 0 0.500000 0.540000 0.260000 0.480000 0 0 0 0 0 0 0 0.560000 0 0.360000 0.290000 0.300000 +0 0.475000 0.503125 +0 0 0 0.700000 0.400000 0 0 0 0 0 0 0.500000 0.250000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.880000 0.620000 0 0 0 0 0 0 0 0.470000 1 0.370000 0 0 0 0 +1 0.496875 0.496875 +0 0 0 0.710000 0 0.860000 0 0 0 0 0 0.900000 0.690000 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.830000 0 0 0 0 +0 0.459375 0.571875 +0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.950000 0 0 0 0 0 0 0 0.930000 0 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.880000 +0 0.640625 0.575000 +0 0 0 0 0.730000 0 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.900000 0 0 0 +0 0.500000 0.531250 +0 0 0 0 0.610000 0 0 0.270000 0 0 0 0.810000 0 0 0 0 0 0 1 0 0 0 0 0 0 0.620000 0.490000 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0.690000 0.290000 0 0 0 0 0 0 +0 0.325000 0.546875 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.270000 0 0 0 0 0 0 0 0.490000 0 0 0 0 0 0 0 0.450000 0 0 0 0 0 0 0 0.450000 0 0 0 0 +0 0.484375 0.421875 +0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0.290000 0.610000 0 0 0 0 0 0 0.820000 0 0 0 +0 0.509375 0.606250 +0 0 0 0 0 0.430000 0 0 0 0 0 0 0 0.530000 0 0 0 0 0 0 0 0.640000 0 0 0 0 0 0 0.250000 0.420000 0 0 0 0 0 0 0.620000 0 0 0 0 0 0 0 0.770000 0 0 0 +0 0.521875 0.581250 +0 0 0 0 0 0 0 0.290000 0 0 0 0 0 0 0 0.330000 0.300000 0.930000 0 0 0 0 0 0 0 0 1 0.270000 0 0 0 0 0 0 0 0.760000 0.750000 0 0 0 0 0 0 0 0 1 0.500000 0 +0 0.662500 0.221875 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0 +1 0.496875 0.496875 +0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0.300000 0.640000 0 0 0 0 0 0 0.840000 0 0 0 +0 0.487500 0.665625 +0 0.810000 0 0 0 0 1 0 0 0 0.800000 0 0 0.900000 0 0 0 0 0.940000 0 0 0.620000 0 0 0 0 0.730000 0 0.830000 0 0 0 0 0 0.880000 0 0.890000 0 0 0 0 0 0 0.590000 0 0 0 0 +0 0.471875 0.606250 +0 0 0 0 0.330000 0 0 0 0 0 0 0 0.380000 0.500000 0 0 0 0 0 0 0 0.610000 0.360000 0 0 0 0 0 0 0 0.660000 0.400000 0 0 0 0 0 0 0 0.600000 0 0 0 0 0 0 0 0 +0 0.746875 0.446875 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.270000 0 0 0 0 0 0 0 0.490000 0 0 0 0 0 0 0 0.530000 0 0 +0 0.540625 0.537500 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.420000 0 0 0 0 0 0 0 0.300000 0 0 0 0 +0 0.509375 0.362500 +0 0 0 0 0.440000 0 0 0 0 0 0 0.320000 0.460000 0 0 0 0 0 0 0.260000 0.540000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.620000 0 0 0 +0 0.512500 0.496875 +0 0 0 0.480000 0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.430000 0 0 0 0 0 0 0 0.510000 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 0.720000 0 0 0 +0 0.500000 0.537500 +0.390000 0 0 0 0.350000 0 0 0 0 0 0 0 0.310000 0.640000 0.520000 0.610000 0 0 0 0 0 0.540000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.520000 0 0 0 0 0 0 0 0.670000 0 0 +0 0.559375 0.531250 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.710000 0.720000 0 0 0 0 0.830000 0.690000 0 0 0 0 0.950000 0.590000 0 0 0 0 0.770000 0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0.243750 0.746875 +0 0.810000 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0.620000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0 +0 0.346875 0.409375 +0 0 0.530000 0 0 0.460000 0 0 0 0 0.600000 0 0 0.520000 0 0 0 0 0.670000 0 0 0.610000 0 0 0 0 0 0.560000 0.460000 0 0 0 0 0 0 0.600000 0.710000 0 0 0 0 0 0 0.310000 0.410000 0 0 0 +0 0.509375 0.578125 +0 0 0 0 0.550000 0 0 0 0 0 0 0 0.730000 0.350000 0.590000 0.640000 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.930000 0 0 0 +0 0.496875 0.512500 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.420000 0 0 0 0 0 0 0 0.620000 0 0 0 0 0 0 0 0.440000 0 0 0 0 0 0 0 0 0.870000 0 0 0 +0 0.525000 0.428125 +0 0 0.630000 0 0 0 0 0.540000 0 0.520000 0 0 0 0 0 0.400000 0 0.800000 0 0 0 0 0 0.280000 0 0.860000 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.660000 0 0 0 0 0 0 +0 0.393750 0.428125 +0 0 0 0.460000 0 0 0 0 0 0 0 0.510000 0 0 0 0 0 0 0 0.400000 0 0 0 0 0 0 0 0.270000 0.440000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.740000 0 0 0 +0 0.503125 0.490625 +0 0 0.740000 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 0 0.590000 0 0 0 0 0 +0 0.418750 0.450000 +0 0 0 0.260000 0 0 0 0 0 0 0 0.290000 0 0 0 0 0 0 0 0.310000 0 0 0 0 0.260000 0.380000 0 0.370000 0 0 0.270000 0.390000 0 0 0 0.590000 0 0 0 0 0 0 0 0.600000 0 0 0 0 +0 0.468750 0.500000 +0 1 0 0 0 0 0.730000 0.290000 0 0 0.890000 0 0 0 0.700000 0 0 0 0.970000 0 0 0.930000 0 0 0 0 0.930000 0 0 1 0 0 0 0 0.570000 0 0.440000 0.270000 0 0 0 0 0 0.660000 0.840000 0 0 0 +0 0.503125 0.650000 +0 0 0 0.760000 0 0 0.590000 0 0 0 0 0 0.580000 0.710000 0 0 0 0 0 0 0.520000 0.660000 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.500000 0 0 +0 0.543750 0.612500 +0 0 0 0.320000 0.550000 0 0 0.360000 0 0 0 0 0.850000 0 0 0.480000 0 0 0 0 0.480000 0.340000 0 0.330000 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.500000 0 0 0 0 0 0 0 0 0.850000 0 +0 0.621875 0.471875 +0 0 0.650000 0 0 0 0 0 0 0 0.530000 0 0 0 0 0 0 0 0.270000 0 0 0 0 0 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.493750 0.493750 +0 0 0 0.280000 0.550000 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 0.780000 0 0 0 0 +0 0.475000 0.503125 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 0.690000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.900000 0 +0 0.609375 0.625000 +0.550000 0 0 0 0 0 0 0 0.310000 0.860000 0.920000 0 0 0 0 0 0 0 0 0.950000 0.820000 0 0 0 0 0 0 0 0.280000 0.990000 0 0 0 0 0 0 0 0 0.710000 0.650000 0 0 0 0 0 0 0 0.490000 +0 0.753125 0.265625 +0 0 0 0 0.540000 0 0 0 0 0 0 0 0.690000 0.290000 0.610000 0.500000 0 0 0 0 0.710000 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 0 0.880000 0 0 0 +0 0.500000 0.509375 +0 0 0.420000 0.390000 0 0 0 1 0 0 0 0.840000 0 0 0.870000 0 0 0 0 0.890000 0 0.370000 0.570000 0 0 0 0 0.850000 0 0.820000 0 0 0 0 0 0.520000 0.280000 0.550000 0 0 0 0 0 0 0.580000 0 0 0 +0 0.496875 0.665625 +0 0 0.420000 0 0 0.620000 0 0 0 0 0 0 0.290000 0.490000 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 +0 0.531250 0.546875 +0 0 0.530000 0 0.570000 0 0 0 0 0 0.540000 0 0.420000 0 0 0 0 0 0.530000 0 0.350000 0 0 0 0 0 0 0.460000 0 0 0 0 0 0 0 0.440000 0 0 0 0 0 0 0 0.530000 0 0 0 0 +0 0.475000 0.534375 +0 0 0 0.950000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0.660000 0 0 0 0 0 0 0 0.980000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 +0 0.415625 0.506250 +0 0 0 0 0.780000 0 0 0 0 0 0 0.320000 0.490000 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.500000 0.280000 0 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0 0.780000 0 0 0 +0 0.512500 0.506250 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.600000 0 0 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 +0 0.418750 0.262500 +0 0 0 0 0 0 0 0.460000 0 0 0 0 0 0 0 0.410000 0 0 0 0 0 0 0 0.270000 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.509375 0.509375 +0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.930000 0 0 0 +0 0.525000 0.546875 +0 0 0.370000 0 0 0 0 0 0 0 0.310000 0 0 0 0 0 0 0 0.470000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 +0 0.437500 0.437500 +0.700000 0.820000 0.570000 0.550000 0 0 0 0 0 0 0 0 0.700000 0.800000 0 0 0 0 0 0 0 0 0.750000 0.990000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0.850000 0.284375 +0 0 0.820000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0 0.890000 0 0 0 0 +0 0.500000 0.418750 +0 0 0 0 0 0.340000 0.670000 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0.500000 0.390000 0 0 0 0 0 0 0.930000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.940000 0 0 0 +0 0.490625 0.634375 +0 0 0 0 0 0.330000 0 0 0 0 0 0 0.270000 0.670000 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 1 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 +0 0.362500 0.628125 +0 0 0 0.390000 0.440000 0 0 0 0 0 0 0.640000 0 0 0 0 0 0 0 0.630000 0 0 0 0 0 0 0 0.620000 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 1 0 0 0 0 +0 0.484375 0.500000 +0 0 0 1 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0 0.930000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 +0 0.400000 0.478125 +0.550000 0 0 0 0 0 0 0 0.310000 0.860000 0.920000 0 0 0 0 0 0 0 0 0.950000 0.820000 0 0 0 0 0 0 0 0.280000 0.990000 0 0 0 0 0 0 0 0 0.710000 0.650000 0 0 0 0 0 0 0 0.490000 +0 0.753125 0.265625 +0 0 0 0 0 0 0 0 0 0 0 0.310000 0 0 0 0 0 0 0 0.470000 0 0 0 0 0 0 0 0.630000 0 0 0 0 0 0 0 0.550000 0 0 0 0 0 0 0 0.440000 0.290000 0 0 0 +0 0.500000 0.496875 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.310000 0 0 0 0 0 0 0.340000 0 0 0 0 0 0 0 0.600000 0 0 0 0 0 0 0 0.580000 0 0 0 +0 0.500000 0.659375 +0 0 0 0.510000 0 0 0 0 0 0 0 0.560000 0 0 0 0 0 0 0 0.930000 0 0 0 0 0 0 0 0.640000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0 0 0 0 0 +0 0.487500 0.493750 +0 0 0 0 0.760000 0 0 0 0 0 0 0 0.640000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.930000 0 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 0.950000 0 0 0 +0 0.537500 0.518750 +0 0 0 0 0 0 0 0 0.280000 0 0 0.330000 0 0 0 0 0 0.680000 0 0.600000 0 0 0 0 0 0.730000 0 0.720000 0 0 0 0 0 0.890000 0 0.760000 0 0 0 0 0 0.850000 0 0.830000 0 0 0 0 +0 0.500000 0.453125 +0.480000 0.280000 0.470000 0 0 0.550000 0 0 0 0.850000 0 0 0 0.750000 0 0 0 0.650000 0 0.270000 0.400000 0 0 0 0 0.940000 0 0 0 0 0 0 0 0.960000 0 0 0 0 0 0 0 0.990000 0 0 0 0 0 0 +0 0.387500 0.384375 +0 0 0 0 0 0 0 0 0 0 0 0 0.390000 0 0 0 0 0 0 0 0.540000 0 0 0 0 0 0 0 0.630000 0 0 0 0 0 0 0.360000 0.390000 0 0 0 0 0 0 0.810000 0 0 0 0 +0 0.478125 0.568750 +0 0 0 0 0 0 1 0 0 0 0 0 0 0.250000 0.620000 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.910000 0 0 +0 0.553125 0.646875 +0 0 0 0 0.660000 0 0 0 0 0 0 0 0.780000 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 0.810000 0 0 0 0 +0 0.481250 0.518750 +0 0 0 0 0 0 0 0 0.280000 0 0 0.330000 0 0 0 0 0 0.680000 0 0.600000 0 0 0 0 0 0.730000 0 0.720000 0 0 0 0 0 0.890000 0 0.760000 0 0 0 0 0 0.850000 0 0.830000 0 0 0 0 +0 0.500000 0.453125 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.260000 0 0 0 0 0 0 0 0 0.460000 0 0 0 0 0 0 0 0.620000 0 0 0 0 0 0 +0 0.412500 0.278125 +0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0.330000 0.640000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.840000 0 0 0 +0 0.481250 0.615625 +0 0 0 0 0.670000 0 0 0.410000 0 0 0 0 0.700000 0 0 0.500000 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.630000 0 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 0.700000 0 0 +0 0.568750 0.493750 +0 0.450000 0.510000 0 0 0 0 0.290000 0 0 0.710000 0.520000 0 0 0 0.460000 0 0 0 0.950000 0 0 0 0.350000 0 0 0 0 1 0 0 0 0 0 0 0 0 0.960000 0 0 0 0 0 0 0 0 0.670000 0 +0 0.640625 0.368750 +0 0 0 0 0.830000 0 0 0.320000 0 0 0 0 0.690000 0 0 0.340000 0 0 0 0 0.660000 0 0 0.290000 0 0 0 0 0.780000 0 0 0 0 0 0 0 0.270000 0.450000 0 0 0 0 0 0 0 0.780000 0 0 +0 0.559375 0.503125 +0 0 0 0 0 0.470000 0 0 0 0 0 0 0 0.600000 0 0 0 0 0 0 0 0.260000 0.250000 0 0 0 0 0 0 0 0.570000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0 0 +0 0.606250 0.553125 +0 0 0 0 0.650000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.950000 0 0 0 0 0 0 0 0.530000 0 0 0 0 0 0 0 0.720000 0 0 0 +0 0.537500 0.518750 +0 0 0.250000 0 0 0 0 0 0 0 0.360000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 +0 0.453125 0.440625 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.560000 0 0 0 0 0 0 0.260000 0.280000 0 0 0 0 0 0 0.640000 0 0 0 0 0 0 0 0.780000 0 0 0 +0 0.503125 0.631250 +0 0 0 0.830000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0.660000 0 0 0 0 0 0 0 0.630000 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.590000 0 0 0 0 0 +0 0.446875 0.471875 +0 0 0 0 0 0 0 0 0 0 0 0 0.640000 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.780000 0 0 0 0 +0 0.446875 0.559375 +0 0 0.740000 0 0 0 0 0 0 0.380000 0.460000 0 0 0 0 0 0 1 0 0 0 0 0 0 0.710000 0.260000 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 +0 0.284375 0.475000 +0 0 0 0 0.890000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0.960000 0 0 0 0 0 0 0 0.650000 0 0 0 +0 0.540625 0.525000 +0.390000 0 0 0 0 0 0 0 0.570000 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 +0 0.400000 0.362500 +0 0 0 0 0 0.600000 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.570000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.690000 0 0 0 0 0 0 0 0.720000 0 0 +0 0.550000 0.562500 +0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.410000 0.430000 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.840000 0 0 0 +0 0.478125 0.618750 +0 0 0 0 0 0 1 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 0.380000 0.560000 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.870000 0 0 0 +0 0.481250 0.615625 +0 0.290000 0 0 0 0 0 0 0 0.330000 0 0 0 0 0 0 0 0 0.270000 0 0 0 0 0 0 0 0.540000 0 0 0 0 0 0 0 0.500000 0 0 0 0 0 0 0 0 0.390000 0 0 0 0 +0 0.484375 0.368750 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.280000 0 0 0 0 0 0 0 0.730000 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.910000 0 +0 0.575000 0.637500 +0 0.270000 0.460000 0.430000 0.490000 0.500000 0.460000 0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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.503125 0.503125 +0 0 0 0.610000 0.470000 0 0 0.470000 0 0 0.840000 0.330000 0 0 0 0.450000 0 1 0 0 0 0 0 0.280000 0.810000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0.218750 0.559375 +0 0 0.350000 0 0 0 0 0 0 0 0.500000 0 0 0 0 0 0 0 0.660000 0 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 0.960000 0 0 0 0 0 0 0 0.960000 0 0 0 0 +0 0.468750 0.440625 +0 0 0.780000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.810000 0 0 0 0 +0 0.506250 0.387500 +0 0 0.730000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0.680000 0.250000 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 +0 0.396875 0.431250 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.950000 0.440000 0 0 0 0 0 0 0 0.740000 0.330000 0 0 0 0 0 0 0 0.680000 0.480000 0 0 0 0 +0 0.518750 0.190625 +0 0 0 0.300000 0 0 0 0 0 0 0.270000 0.410000 0 0 0 0 0 0 0.510000 0 0 0.510000 0 0 0 0 0.580000 0 0 0.300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +1 0.506250 0.506250 +0 0.820000 0 0 0 0 0 0 0 0 0.960000 0 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0 1 0 0 0 0 +0 0.493750 0.375000 +0 0 0 0 0.730000 0 0.270000 0 0 0 0 0 0.690000 0 0 0 0 0 0 0 0.610000 0 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.620000 0 0 0 +0 0.534375 0.528125 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.780000 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.780000 0 0 0 0 0 0 0 0.690000 0 +0 0.571875 0.681250 +0 0 0 0.360000 0 0 0 0 0 0 0 0.510000 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 0 0.630000 0 0 0 0 0 0 0 0 0.880000 0 0 0 +0 0.503125 0.496875 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.280000 0 0 0 0 0 0 0 0.480000 0 0 0 0 0 0 0 0.560000 0 0 0 0 0 0 0 0.620000 0 0 0 0 0 +0 0.446875 0.465625 +0.480000 0.280000 0.470000 0 0 0.550000 0 0 0 0.850000 0 0 0 0.750000 0 0 0 0.650000 0 0.270000 0.400000 0 0 0 0 0.940000 0 0 0 0 0 0 0 0.960000 0 0 0 0 0 0 0 0.990000 0 0 0 0 0 0 +0 0.387500 0.384375 +0.570000 0.490000 0 0 0 0 0 0.660000 0 1 0 0 0 0 0 0.870000 0 0 0.880000 0 0 0 0.490000 0.270000 0 0 0.500000 0.430000 0 0 0.870000 0 0 0 0 0.910000 0 0 0.840000 0 0 0 0 0.470000 0.330000 0 0.780000 0 +0 0.581250 0.646875 +0 0 0 0 0 0 0.970000 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.390000 0.520000 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0.810000 0 0 0 +0 0.481250 0.615625 +0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.530000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.720000 0 0 +0 0.556250 0.568750 +0 0 0 0 0.570000 0 0 0 0 0 0 0 0.610000 0 0 0 0 0 0 0 0.560000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.960000 0 0 0 +0 0.503125 0.506250 +0 0 0 0 0.620000 0 0 0.600000 0 0 0 0.290000 0.460000 0 0 0.480000 0 0 0 0.670000 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.720000 0 0 0 0 +0 0.450000 0.521875 +0 0 0 0 0 0 0.340000 0 0 0 0 0 0 0 0.510000 0.270000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.370000 0 0 0 0 0 0 0 0 +0 0.765625 0.543750 +0 0 0 0 0.660000 0 0 0 0 0 0 0 0.780000 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 0.810000 0 0 0 0 +0 0.475000 0.515625 +0 0 0 0 0 0.760000 0 0.500000 0 0 0 0 0 0.620000 0 0.470000 0 0 0 0 0.420000 0.260000 0 0.270000 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.630000 0 0 0 0 0 0 0 0.670000 0 0 0 +0 0.518750 0.553125 +0 0 0 0 0.320000 0 0 0 0 0 0 0 0.440000 0 0 0 0 0 0 0.370000 0.290000 0 0 0 0 0 0 0.620000 0 0 0 0 0 0 0 0.730000 0 0 0 0 0 0 0 0.280000 0 0 0 0 +0 0.496875 0.500000 +0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.780000 0 0 0 0 0 0 0.420000 0.570000 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.800000 0 0 0 +0 0.481250 0.612500 +0 0 0 0 0.560000 0 0 0.340000 0 0 0 0 0.790000 0 0 0.400000 0 0 0 0 0.280000 0.360000 0 0.300000 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.630000 0 0 +0 0.559375 0.521875 +0 0.590000 0 0 0 0 0 0.490000 0 0.590000 0.440000 0 0 0 0 0.450000 0 0 0.760000 0.350000 0 0 0 0.320000 0 0 0 0.580000 0.520000 0 0 0 0 0 0 0 0.560000 0.570000 0 0 0 0 0 0 0 0.420000 0.750000 0 +0 0.650000 0.312500 +0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.390000 0.640000 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.880000 0 0 0 +0 0.481250 0.615625 +0 0 0 0 0.520000 0 0 0 0 0 0 0 0.630000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.880000 0 0 0 +0 0.509375 0.518750 +0 0 0 0 0 0.690000 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0.460000 0.430000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.970000 0 0 0 +0 0.506250 0.568750 +0 0 0 0.750000 0 0 0 0.640000 0 0 0 0.500000 0.260000 0 0 0 0 0 0 0 0.980000 0 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0 0 0.590000 0 0 0 0 0 0 0 0.830000 0 0 +0 0.587500 0.446875 +0 0.270000 0.460000 0.430000 0.490000 0.500000 0.460000 0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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.496875 0.496875 +0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.530000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.720000 0 0 +0 0.556250 0.568750 +0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0 0.730000 0 +0 0.590625 0.550000 +0 0 0.260000 0.470000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.730000 0 0 0 0 0 0 0 0.600000 0 0 0 0 0 0 0 1 0 0 0 0 +0 0.462500 0.462500 +0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 0.360000 0.530000 0 0 0 0 0 0 0.800000 0 0 0 0 0.400000 0 0 0.830000 0 0 0 0 0.510000 0.320000 0.980000 0 0 0 +0 0.481250 0.618750 +0 0 0 0 0.620000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.530000 0 0 0 0 0 0 0 0.980000 0 0 0 +0 0.509375 0.521875 +0 0 0 0 0.380000 0 0 0 0 0 0 0 0.600000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.680000 0 0 0 0 +0 0.443750 0.553125 +0 0 0.820000 0.300000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0.550000 0.320000 0 0 0 0 0 0 0 0.790000 0 0 +0 0.568750 0.387500 +0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.950000 0 0 0 0 0 0 0 0.930000 0 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.880000 +0 0.643750 0.575000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.360000 0 0 0 0 0 0 0 0.770000 0.260000 0 0 0 0 0 0 0 0.690000 0 0 0 0 0 0 +0 0.459375 0.168750 +0 0 0 0 0.790000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.850000 0 0 0 +0 0.512500 0.515625 +0 0 0.640000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 0.340000 0.560000 0 0 0 0 0 0 0 0.970000 0 0 0 0 +0 0.487500 0.412500 +0 0 0 0 0.690000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.510000 0 0 0 0 0 0 0 0.970000 0 0 0 +0 0.512500 0.521875 +0 0 0 0 0.750000 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 0 0.690000 0 0 0 0 +0 0.484375 0.521875 +0 0 0 0.510000 0.690000 0 0 0 0 0 0 1 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.690000 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0.710000 0.360000 0 0 0 0 0 0 +0 0.331250 0.540625 +0 0 0 0 0 0 0 0 0 0.280000 0 0.330000 0 0 0 0 0 0.360000 0 0.650000 0 0 0 0 0 0 0.700000 0.770000 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.300000 0 0 0 0 +0 0.509375 0.465625 +0 0 0 0 0.950000 0 0 0 0 0 0 0 0.520000 0.310000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.730000 0 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 0.790000 0 0 +0 0.575000 0.518750 +0 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0 0.460000 0.550000 0 0 0 0 0 0 0 0.720000 0.380000 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 0 1 0 0 0 0 +0 0.537500 0.253125 +0.970000 0 0 0 0 0 0 0 0 0.570000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 +0 0.415625 0.334375 +0 0 0.530000 0 0 0.460000 0 0 0 0 0.600000 0 0 0.520000 0 0 0 0 0.670000 0 0 0.610000 0 0 0 0 0 0.560000 0.460000 0 0 0 0 0 0 0.600000 0.710000 0 0 0 0 0 0 0.310000 0.410000 0 0 0 +0 0.518750 0.584375 +0 0.330000 0 0 0 0 0 0 0 0 0.730000 0 0 0 0.520000 0 0 0 0.740000 0 0 0 0.610000 0 0 0 0.660000 0 0 0.350000 0.370000 0 0 0 0.800000 0 0 0.750000 0 0 0 0 1 0 0 0.710000 0 0 +0 0.531250 0.653125 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0 0.710000 0 +0 0.568750 0.684375 +0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0.780000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0.990000 0 0 0 0 0 0 0.380000 0.490000 0 0 0 0 0 0 0.830000 0 0 0 +0 0.512500 0.603125 +0 0 0 0 0 0 0 0 0 0.480000 0 0 0 0 0 0 0 0.490000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.630000 0 0 0 0 0 0 0 0.530000 0 0 0 0 0 +0 0.450000 0.381250 +0 0 0.530000 0 0 0.360000 0 0 0 0 0.630000 0 0 0.570000 0 0 0 0 0.670000 0 0 0.610000 0 0 0 0 0.590000 0 0 0.650000 0 0 0 0 0 0.800000 0.580000 0 0 0 0 0 0 0.550000 0.620000 0 0 0 +0 0.521875 0.584375 +0.380000 0.330000 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0.980000 0 0 0 0 0 0 0 0.490000 0.440000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 +0 0.434375 0.356250 +0 0 0 0.770000 0 0 0 0.540000 0 0 0 0.640000 0 0 0 0.440000 0 0 0 0 0.930000 0 0 0.260000 0 0 0 0 0.290000 0.500000 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0 0.890000 0 +0 0.625000 0.437500 +0 0 0 0.590000 0 0 0 0 0 0 0 0.520000 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.590000 0 0 0 0 0 0 0 0.770000 0 0 0 0 +0 0.456250 0.478125 +0 0.760000 0 0 0 0 0.290000 0 0 0.850000 0 0 0 0 0 0 0 0.450000 0.490000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.930000 0 0 0 0 0 0 0 0.870000 0 0 0 0 0 +0 0.462500 0.359375 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.590000 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.950000 0 0 0 0 0 0 0 0.940000 +0 0.628125 0.653125 +0 0 0 0 0 0 0 0 0 0 0 0.320000 0 0 0 0 0 0 0.350000 0.270000 0 0 0 0 0 0 0.560000 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 0.630000 0 0 0 0 0 +0 0.400000 0.525000 +0 0 0 0.370000 0 0 0 0 0 0 0 0.530000 0 0 0 0 0 0 0 0.570000 0 0 0 0 0 0 0 0.520000 0 0 0.250000 0 0 0 0.790000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 +0 0.431250 0.506250 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.420000 0 0 0 0 0 0 0.540000 0 0 0 0 0 0 0.250000 0.570000 0 0 0 0 0 0 0.950000 0 0 0 0 0 0 +0 0.343750 0.606250 +0 0 0 0.760000 0 0 0.590000 0 0 0 0 0 0.580000 0.710000 0 0 0 0 0 0 0.520000 0.660000 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.500000 0 0 +0 0.540625 0.606250 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.570000 0 0 0 0 0 0 0 0.610000 0 0 0 0 0 0 0 0.660000 0 0 0 0 0 0 0.380000 0 0 0 0 0 0 0 0.850000 0 +0 0.612500 0.659375 +0 0.730000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.640000 0 0 0 0 0 0 0 0 0.560000 0 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 +0 0.431250 0.400000 +0 0 0 0 0 0.730000 0 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0.470000 0.450000 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 0 0.870000 0 0 0 +0 0.525000 0.546875 +0 0 0 0 0 0 0 0 0 0 0 0.440000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0 0.610000 0 0 0 0 0 0 0 0.960000 0 0 0 +0 0.550000 0.428125 +0.540000 0.590000 0 0 0 0 0 0 0 0.640000 0 0 0 0 0 0 0 0.310000 0.490000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.930000 0 0 0 0 0 0 0 0 1 0 0 0 0 +0 0.490625 0.359375 +0 0.490000 0.370000 0 0 0 0 0.430000 0 0 0.770000 0 0 0 0 0.350000 0 0 0 1 0 0 0 0 0 0 0 0 0.660000 0 0 0 0 0 0 0 0.280000 0.840000 0 0 0 0 0 0 0 0.600000 0.530000 0 +0 0.631250 0.365625 +0 0 0 0.510000 0.840000 0 0 0 0 0 0 0 0.630000 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.780000 0 0 0 0 +0 0.493750 0.562500 +0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 0.360000 0.530000 0 0 0 0 0 0 0.800000 0 0 0 0 0.400000 0 0 0.830000 0 0 0 0 0.510000 0.320000 0.980000 0 0 0 +0 0.496875 0.612500 +0 0 0 0 0.730000 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 0 1 0 0 0 +0 0.509375 0.531250 +0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0.600000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.330000 0.390000 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.870000 0 0 0 +0 0.481250 0.615625 +0 0 0 0.560000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.620000 0 0 0 +0 0.515625 0.481250 +0 0 0 0 0 0 0.930000 0 0 0 0 0 0 0.690000 0 0 0 0 0 0 0 0.930000 0 0 0 0 0 0 0.360000 0.630000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.920000 0 0 0 +0 0.481250 0.618750 +0 0.400000 0 0 0 0.270000 0 0 0 0.640000 0 0 0.660000 0 0 0 0 0.720000 0 0 0.720000 0 0 0 0 0.760000 0 0.490000 0 0 0 0 0 0.780000 0 0.780000 0 0 0 0 0 0.720000 0 0.900000 0 0 0 0 +0 0.465625 0.568750 +0 0 0 0 0.520000 0 0 0 0 0.300000 0 0 0.680000 0 0.370000 0.410000 0 0 0 0 0.630000 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.800000 0 0 0 +0 0.503125 0.543750 +0 0 0 0 0 0 0.960000 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.450000 0.430000 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0 0.660000 0 0 0 +0 0.478125 0.618750 +0 0 0 0 0.670000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.770000 0 0.310000 0 0 0 0.330000 0 0.730000 0.290000 0.320000 0.550000 0 0 0 0 0.600000 0 0.260000 0.460000 0 0 0 0 0 0 0 0 +0 0.506250 0.512500 +0 0 0 0.640000 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.700000 0.350000 0 0 0 0 0 0 0 0.890000 0 0 0 +0 0.506250 0.478125 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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.478125 0.590625 +0 0 0 0 0 0 1 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0.630000 0 0 0 0 0 0 0 0.930000 0 0 0 0 0 0 0 0.880000 0 0 0 +0 0.493750 0.625000 +0 0 0 0.520000 0 0 0 0 0 0 0 0.450000 0 0 0 0 0 0 0 0.550000 0 0 0 0 0 0 0 0.510000 0 0 0 0 0 0 0 0.660000 0 0 0 0 0 0 0 0.300000 0 0 0 0 +0 0.453125 0.478125 +0 0 0 0 0 0 0 0 0 0 0 0.310000 0 0 0 0 0 0 0 0.470000 0 0 0 0 0 0 0 0.630000 0 0 0 0 0 0 0 0.550000 0 0 0 0 0 0 0 0.440000 0.290000 0 0 0 +0 0.500000 0.496875 +0 0 0 0 0.700000 0 0 0 0 0 0 0 0.780000 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.760000 0 0 +0 0.568750 0.484375 +0 0 0 0 0.380000 0 0 0 0 0 0 0 0.460000 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.520000 0 0 0 +0 0.521875 0.509375 +0 0 0.580000 0 0 0.350000 0 0 0 0 0.610000 0 0.650000 0 0 0 0 0 0.710000 0 0.650000 0 0 0 0 0 0.700000 0 0.450000 0 0 0 0 0 0.470000 0.530000 0 0 0 0 0 0 0 0 0 0 0 0 +0 0.462500 0.571875 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.500000 0 0 0 0 0 0 0 0.560000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.790000 0 0 0 +0 0.493750 0.581250 +0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 0.360000 0.530000 0 0 0 0 0 0 0.800000 0 0 0 0 0.400000 0 0 0.830000 0 0 0 0 0.510000 0.320000 0.980000 0 0 0 +0 0.496875 0.612500 +0 0.430000 0 0 0 0 0.340000 0 0 0 0.740000 0 0 0 0.310000 0 0 0 0.690000 0 0 0.580000 0 0 0 0 0.830000 0 0 0.570000 0 0 0 0 0.950000 0 0 0.740000 0 0 0 0 0.510000 0.300000 0 0.820000 0 0 +0 0.537500 0.606250 +0 0 0 0.370000 0.660000 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0.970000 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.480000 0 0 0 0 0 0 0 +0 0.281250 0.546875 +0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.550000 0.350000 0 0 0 0 0 0 0 0.960000 0 0 0 0 0 0 0 0.780000 +0 0.643750 0.584375 +0 1 0 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.730000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.490000 0 0 0 0 0 +0 0.440625 0.393750 +0 0 0 0 0 0.690000 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0.460000 0.430000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.970000 0 0 0 +0 0.500000 0.556250 +0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.530000 0.310000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.820000 0 +0 0.606250 0.559375 +0 0 0 0 0.530000 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 1 0 0 0 +0 0.521875 0.518750 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.490000 0 0 0 0 0 0 0.260000 0.260000 0 0 0 0 0 0 0.590000 0 0 0 0 0 0 0.360000 0.280000 0 0 +0 0.500000 0.678125 +0 0 0 0 0.500000 0.620000 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0.310000 0.500000 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0.470000 0.380000 0 0 0 0 +0 0.434375 0.565625 +0 0 0 0.720000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.730000 0 0 0 0 0 0 0.640000 0 0 0 0 0 0 0 1 0 0 0 0 0 +0 0.453125 0.484375 +0 0 0 0.370000 0.550000 0 0 0 0 0 0 0 0.430000 0.640000 0 0 0 0 0 0 0 0.650000 0.340000 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0 +0 0.746875 0.440625 +0 0 0 0 0.680000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.780000 0 0 0 0 0 0 0 0.960000 0 0 0 0 0 0 0 0.640000 0 0 0 +0 0.512500 0.515625 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.420000 0 0 0 0 0 0 0 0.360000 0 0 0 0 0 0 0 0.470000 0 0 0 0 0 0 0 0.550000 0 0 0 0 0 +0 0.431250 0.396875 +0 0 0 0 0.680000 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0.760000 0 0 0 0 +0 0.471875 0.506250 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.510000 0 0 0 0 0 0 0 0.500000 0 0 0 0 0 0 0 0.530000 0 0 0 0 0 +0 0.453125 0.384375 +0 0 0 0.700000 0 0 0 0 0 0 0 0.980000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0 0.720000 0 0 0 0 +0 0.465625 0.471875 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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.493750 0.493750 +0 0 0 0.720000 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.730000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 +0 0.462500 0.478125 +0 0 0 0 0 0.330000 0 0 0 0 0 0 0.270000 0.670000 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 1 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 +0 0.362500 0.628125 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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.500000 0.500000 +0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.540000 0 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.630000 0 0 0 0 0 0 0.690000 0 0 +0 0.584375 0.575000 +0 0 0 0 0 0 0.690000 0 0 0 0 0 0 0 0.510000 0 0 0 0 0 0 0 0.500000 0 0 0 0 0 0 0 0.620000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.510000 0 +0 0.590625 0.609375 +0 0 0 0.310000 0.400000 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.800000 0 0 0 0 +0 0.475000 0.503125 +0 0 0 0 0 0 0.950000 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.450000 0.640000 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.920000 0 0 0 +0 0.481250 0.615625 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.320000 0 0 0 0 0 0 0 0.390000 0 0 0 0 0 0 0 0 0.310000 0 0 0 0 +0 0.487500 0.340625 +0 0 0 0 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.950000 0 0 0 0 0 +0 0.446875 0.471875 +0 0 0 0 0 0 0 0 0.450000 0.820000 0 0.430000 0.410000 0 0.440000 0 0 0 0.650000 0 0 0 0.280000 0 0 0 0.550000 0 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.810000 0 0 0 0 +0 0.528125 0.315625 +0 0 0 0 0.540000 0 0 0 0 0 0 0 0.660000 0.300000 0.670000 0.650000 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.730000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.980000 0 0 0 +0 0.500000 0.509375 +0 0 0 0.560000 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0.484375 0.487500 +0 0 0 0 0 0 0 0 0.870000 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 1 0.270000 0 0 0 0 0 0 0 0.760000 0 0 0 +0 0.587500 0.265625 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.340000 0 0 0 0 0 0 0 0.390000 0 0 0 0 +0 0.503125 0.365625 +0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.660000 0 0 0 0 0 0 0 0.590000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.970000 0 0 0 0 0 0 0.720000 0 +0 0.615625 0.628125 +0.820000 0 0 0 0 0 0 0 0 0.970000 0 0 0 0 0 0 0 0.560000 0.610000 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0 0.790000 0 0 0 0 +0 0.487500 0.321875 +0 0 0 0 0.830000 0 0 0.320000 0 0 0 0 0.690000 0 0 0.340000 0 0 0 0 0.660000 0 0 0.290000 0 0 0 0 0.780000 0 0 0 0 0 0 0 0.270000 0.450000 0 0 0 0 0 0 0 0.780000 0 0 +0 0.559375 0.503125 +0 0 0 0 0 0 0 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.640000 0 0 0 0 0 0 0 0.940000 +0 0.615625 0.696875 +0 0 0 0.470000 0 0 0 0 0.620000 0.860000 0 0 0 0 0 0 0 0 1 0.310000 0 0 0 0 0 0 0 0.680000 0.660000 0 0 0 0 0 0 0 0.470000 0.790000 0 0 0 0 0 0 0 0.260000 0.920000 0 +0 0.671875 0.271875 +0 0.800000 0 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0 0.970000 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 +0 0.453125 0.368750 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.380000 0 0 0 0 0 0 0 0.290000 0 0 0 0 0 0 0.550000 0 0 0 0 0 0 0 0.560000 0 0 0 0 0 0 0.580000 0 0 0 +0 0.503125 0.668750 +0 0 0 0 0.460000 0.570000 0.800000 0.570000 0 0 0 0 0.350000 0 0 0 0 0 0 0 0.390000 0 0 0 0 0 0 0 0.480000 0 0 0 0 0 0 0 0.520000 0 0 0 0 0 0 0 0.560000 0 0 0 +0 0.521875 0.509375 +0 0 0 0.300000 0 0 0 0 0 0 0.270000 0.410000 0 0 0 0 0 0 0.510000 0 0 0.510000 0 0 0 0 0.580000 0 0 0.300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +1 0.503125 0.503125 +0 0 0 0.840000 0 0 0 0 0 0 0 0 0.930000 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0 0.360000 0.450000 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.550000 0 0 +0 0.553125 0.446875 +0.420000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0 0.930000 0 0 0 0 0 +0 0.450000 0.318750 +0 0 0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.520000 0 0 0 0 0 0 0 0 0.700000 0 0 0 +0 0.525000 0.428125 +0 0 0 0 0.600000 0 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.670000 0 0 0 +0 0.506250 0.540625 +0 0.800000 0 0 0 0 0 0 0 0.360000 0.510000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0.270000 0.750000 0 0 0 0 0 0 0 0.600000 0.540000 0 0 +0 0.575000 0.350000 +0.260000 0.260000 0.410000 0 0.700000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.710000 0 0 0 0 +0 0.475000 0.525000 +0.370000 0 0 0 0 0 0 0 0 0.680000 0.340000 0 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 0 0.730000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0 0.800000 0 0 0 +0 0.546875 0.343750 +0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0.250000 0.520000 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.500000 0 0 +0 0.578125 0.615625 +0 0 0 0 0 0 0.830000 0.280000 0 0 0 0 0 0.990000 0 0.420000 0 0 0 0 0 0.790000 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0.800000 0 0 0 0 +0 0.446875 0.621875 +0 0.760000 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.520000 0 0 0 0 0 0 0.400000 0.560000 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 +0 0.375000 0.400000 +0 0 0 0 0 0 0.990000 0 0 0 0 0 0 0.630000 0.390000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0.440000 0.310000 0 0 0 0 0 0 0.960000 0 0 0 +0 0.515625 0.656250 +0 0 0 0 0.830000 0.500000 0 0 0 0 0 0 0 0.250000 0.890000 0 0 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0.831250 0.453125 +0 0 0 0 0.750000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.880000 0 0 0 +0 0.534375 0.515625 +0 0 0 0 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 0.540000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.540000 0 0 0 0 0 0 0.580000 0.260000 0 0 0 0 +0 0.446875 0.493750 +0 0 0 0 0 0 0 0 0 0.280000 0 0.330000 0 0 0 0 0 0.360000 0 0.650000 0 0 0 0 0 0 0.700000 0.770000 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.300000 0 0 0 0 +0 0.509375 0.465625 +0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0.610000 0 0 0 0 0 0 0 0.990000 0 0 0 0 0 0 0.290000 0.570000 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0.840000 0 0 0 +0 0.481250 0.615625 +0 0 0.300000 0 0.530000 0 0 0 0 0 0 0 0.540000 0 0 0 0 0 0.420000 0 0.750000 0 0.530000 0.770000 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.740000 0 0 0 +0 0.512500 0.531250 +0 0 0 0.600000 0 0 0 0 0 0 0 0.550000 0 0 0 0 0 0 0.560000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.410000 0 0 0 0 0 0 0 1 0 0 0 0 0 +0 0.453125 0.475000 +0 0 0 0.520000 0 0 0 0 0 0 0 0.590000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.710000 0 0 0 0 +0 0.500000 0.490625 +0 0 0 0 0.380000 0 0 0 0 0 0 0 0.600000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.680000 0 0 0 0 +0 0.443750 0.553125 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.360000 0 0 0 0 0 0 0 0.770000 0.260000 0 0 0 0 0 0 0 0.690000 0 0 0 0 0 0 +0 0.459375 0.168750 +0 0 0 0.680000 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0.290000 0.590000 0 0 0 0 0 0 0.830000 0 0 0 0 0 +0 0.450000 0.478125 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.640000 0 0 0 0 0 0 0.330000 0.290000 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.750000 0 0 +0 0.562500 0.593750 +0 0 0 0 0.780000 0 0 0 0 0 0 0 0.300000 0.570000 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0.750000 0 0 +0 0.584375 0.518750 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.770000 0.260000 0 0 0 0 0 0 +1 0.487500 0.487500 +0 0 0 0.620000 0 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0 0 0.590000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.920000 0 0 +0 0.596875 0.465625 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0.610000 0.290000 +1 0.506250 0.506250 +0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0.580000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.350000 0.600000 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.900000 0 0 0 +0 0.484375 0.615625 +0 0 0.710000 0.850000 0 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0 0.670000 0.570000 0 0 0 0 0 0 0 0.510000 0.840000 0 0 0 0 0 0 0 0.300000 0 0 0 0 0 0 0 0 +0 0.787500 0.375000 +0 0 0 0 0 0 0 0 0 0 0 0 0.300000 0 0 0 0 0 0 0 0.620000 0 0 0 0 0 0 0 0.660000 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 0.870000 0 0 0 +0 0.500000 0.515625 +0 0 0 0 0 0.440000 0.390000 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 1 0 0 +0 0.540625 0.584375 +0 0 0 0 0 0 0 0.580000 0 0 0 0 0 0 0.610000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0.290000 0.490000 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.750000 0 0 +0 0.531250 0.653125 +0 0.440000 0.270000 0.260000 0 0 0 0 0.700000 0 0 0.310000 0 0 0 0 0 0.350000 0 0 0 0 0 0 0 0.720000 0 0.270000 0 0 0 0 0 0.740000 0 0.330000 0 0 0 0 0 0.920000 0 0.270000 0 0 0 0 +0 0.393750 0.381250 +0 0 0 0 0 0 0.700000 0.460000 0 0 0 0 0 0.390000 0.840000 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.690000 0 0 +0 0.531250 0.640625 +0 0.840000 0 0 0 0 0.690000 0.510000 0 0.770000 0 0 0 0 0.950000 0 0 0.720000 0 0 0 1 0 0 0 0 0.820000 0 0 0.970000 0 0 0 0 0.870000 0 0.410000 0.520000 0 0 0 0 0.790000 0 0.870000 0 0 0 +0 0.493750 0.637500 +0 0 0.300000 0 0.530000 0 0 0 0 0 0 0 0.540000 0 0 0 0 0 0.420000 0 0.750000 0 0.530000 0.770000 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.740000 0 0 0 +0 0.512500 0.531250 +0 0.520000 0 0 0.360000 0 0 0 0 0.700000 0 0 0.610000 0 0 0 0 0.730000 0 0 0.670000 0 0 0 0 0.820000 0 0.650000 0 0 0 0 0 0.780000 0 0.740000 0 0 0 0 0 0.640000 0 0.650000 0 0 0 0 +0 0.462500 0.559375 +0 0 0 0 0 0 0 0 0.450000 0.820000 0 0.430000 0.410000 0 0.440000 0 0 0 0.650000 0 0 0 0.280000 0 0 0 0.550000 0 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.810000 0 0 0 0 +0 0.528125 0.315625 +0 0 0 0 0.790000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.780000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 1 0 0 +0 0.546875 0.531250 +0 0 0 0 0.910000 0 0 0.490000 0 0 0 0 0.610000 0 0 0.420000 0 0 0 0.780000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.950000 0 0 0 0 0 +0 0.393750 0.553125 +0 0 0.900000 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.690000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 +0 0.378125 0.453125 +0 0.660000 0.760000 0.280000 0.660000 0.350000 0.330000 0 0 0 0 0 0.550000 0 0 0 0 0 0.350000 0 0.680000 0.270000 0.600000 0.610000 0 0 0 0 0.690000 0 0 0 0 0 0 0 0.980000 0 0 0 0 0 0 0 0.600000 0 0 0 +0 0.503125 0.515625 +0 0 0 0.650000 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.970000 0 0 0 0 0 0 0 0.720000 0 0 0 +0 0.515625 0.484375 +0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0.310000 0.550000 0 0 0 0 0 0 0.990000 0 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0.570000 0.290000 0 0 0 +0 0.468750 0.593750 +0 0 0 0 0 0 0.410000 0.440000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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.515625 0.515625 +0 0 0 0 0 0 0 0 0 0 0 0 0.640000 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.780000 0 0 0 0 +0 0.446875 0.559375 +0 0 0 0 0 0.750000 0 0.360000 0 0 0 0 0 0.770000 0 0.480000 0 0 0 0 0.250000 0.450000 0 0.280000 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.880000 0 0 0 +0 0.506250 0.565625 +0 0 0 0 0.640000 0 0 0.310000 0 0 0 0 0.780000 0 0 0.410000 0 0 0 0 0.780000 0 0 0 0 0 0 0 0.730000 0 0 0 0 0 0 0 0.350000 0.430000 0 0 0 0 0 0 0 0.860000 0 0 +0 0.559375 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.530000 0 0.250000 0 0 0 0 0 0.530000 0 0.280000 0 0 +1 0.512500 0.512500 +0 0 0.760000 0 0 0 0 0.520000 0 0.810000 0 0 0 0 0 0.470000 0.430000 0.300000 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0.221875 0.481250 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.350000 0 0 0 0 0 0 0 0.530000 0 0 0 0 0 0 0.290000 0.250000 0 0 0 0 0 0 0.640000 0 0 0 0 0 0 0 0.610000 0 0 +0 0.537500 0.656250 +0 0 0 0 0.480000 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.730000 0 0 0 0 0 0 0 0.850000 0 0 +0 0.571875 0.521875 +0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0.660000 0 0 0 0 0 0 0 0.980000 0 0 0 0 0 0 0.340000 0.540000 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 0 0.890000 0 0 0 +0 0.481250 0.615625 +0 0 0 0 0 0 1 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.320000 0.370000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.930000 0 0 0 +0 0.481250 0.615625 +0 0 0 0.700000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.690000 0 0 0 0 0 0 0 0 0 0 0 0 +0 0.465625 0.481250 +0 0 0 0 0.370000 0 0 0 0 0 0 0 0.320000 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 +0 0.503125 0.190625 +0 0 0 0 0.830000 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.900000 0 0 0 0 +0 0.471875 0.515625 +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 0.270000 0.770000 0 0 0 0 0 0 0 0.420000 0 0 0 0 0 0 0 0 +0 0.759375 0.465625 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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.481250 0.490625 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.490000 0 0 0 0 0 0 0.260000 0.260000 0 0 0 0 0 0 0.590000 0 0 0 0 0 0 0.360000 0.280000 0 0 +0 0.500000 0.678125 +0 0 0 0 0 0 0 0 0.630000 0.350000 0.390000 0 0 0 0 0 0 0.740000 0.450000 0.970000 0.930000 0 0 0 0 0.910000 0 0 0 0.660000 0.970000 0.810000 0 0.780000 0 0 0 0 0 0 0 0.960000 0 0 0 0 0 0 +0 0.418750 0.343750 +0 0 0 0 0 0 0 0 0 0.280000 0 0.330000 0 0 0 0 0 0.360000 0 0.650000 0 0 0 0 0 0 0.700000 0.770000 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.300000 0 0 0 0 +0 0.506250 0.465625 +0 0 0 0 0.750000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0.310000 0.500000 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.710000 0 0 0 0 +0 0.481250 0.525000 +0 0 0 0.680000 0 0 0 0 0 0 0 0.350000 0 0 0 0 0 0 0 0.480000 0 0 0 0 0 0 0 0.500000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0.456250 0.490625 +0 0 0 0 0 0 0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.630000 0 0 0 +1 0.500000 0.500000 +0 0.520000 0 0 0.360000 0 0 0 0 0.700000 0 0 0.610000 0 0 0 0 0.730000 0 0 0.670000 0 0 0 0 0.820000 0 0.650000 0 0 0 0 0 0.780000 0 0.740000 0 0 0 0 0 0.640000 0 0.650000 0 0 0 0 +0 0.462500 0.559375 +0 0 0.740000 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 0 0.590000 0 0 0 0 0 +0 0.418750 0.450000 +0.260000 0.260000 0.410000 0 0.700000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.710000 0 0 0 0 +0 0.471875 0.525000 +0 0 0 0 0.480000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.560000 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.520000 0 0 0 +0 0.493750 0.525000 +0 0 0 0 0 0 0 0.600000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.720000 0 0 0 0 0.400000 0 0 0.800000 0 0 0 0 0.260000 0 0.880000 0 0 0 0 0 0 0 0.930000 0 +0 0.603125 0.631250 +0 0.630000 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.680000 0 0.270000 0 0 0.250000 0 0 0.550000 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 +0 0.412500 0.384375 +0 0 0 0 0 0 0.340000 0.560000 0 0 0 0 0 0.350000 0.530000 0 0 0 0 0 0 1 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0.640000 0.360000 0 0 0 0 0 0.480000 0.630000 0 0 0 0 +0 0.412500 0.662500 +0 0 0.340000 0 0 0 0 0 0 0 0.430000 0 0 0 0 0 0 0 0.560000 0 0 0 0 0 0 0.430000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0.375000 0.465625 +0 0.730000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.640000 0 0 0 0 0 0 0 0 0.560000 0 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 +0 0.431250 0.400000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.350000 0 0 0 0 0 0 0 0.530000 0 0 0 0 0 0 0.290000 0.250000 0 0 0 0 0 0 0.640000 0 0 0 0 0 0 0 0.610000 0 0 +0 0.537500 0.656250 +0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.540000 0 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.630000 0 0 0 0 0 0 0.690000 0 0 +0 0.584375 0.575000 +0.370000 0 0 0 0 0 0 0 0 0.680000 0.340000 0 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 0 0.730000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0 0.800000 0 0 0 +0 0.546875 0.343750 +0 0 0 0 0.800000 0 0 0 0 0 0 0 0.660000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 1 0 0 0 +0 0.512500 0.521875 +0 0 0 0.680000 0 0 0 0.400000 0 0 0 0 0.960000 0 0 0.440000 0 0 0 0 0.530000 0.440000 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0 0.780000 0 0 0 0 0 0 0 0.900000 0 +0 0.650000 0.453125 +0.540000 0.590000 0 0 0 0 0 0 0 0.640000 0 0 0 0 0 0 0 0.310000 0.490000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.930000 0 0 0 0 0 0 0 0 1 0 0 0 0 +0 0.490625 0.359375 +0 0 0 0 0.500000 0 0 0 0 0 0 0 0.640000 0 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 0 0.840000 0 0 +0 0.550000 0.521875 +0 0 0 0 0 0.750000 0 0 0.840000 0 0 0 0 0.770000 0 0 0.350000 0.600000 0 0 0 0.840000 0 0 0 0.850000 0 0 0 0.770000 0 0 0 0 0.870000 0 0.610000 0 0 0 0 0 0.570000 0 0.770000 0 0 0 +0 0.521875 0.575000 +0 0 0.780000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.810000 0 0 0 0 +0 0.506250 0.387500 +0 0.570000 0.410000 0 0 0 0 0 0 0 0.900000 0 0 0 0 0.270000 0 0 0 1 0 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.820000 0 0 0 +0 0.546875 0.387500 +0 0 0 0 0 0 0 0 0 0 0.270000 0 0 0 0 0 0 0 0.580000 0 0 0 0 0 0 0 0.500000 0 0 0 0 0 0 0.430000 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 +0 0.387500 0.515625 +0 0 0 0.640000 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.700000 0.350000 0 0 0 0 0 0 0 0.890000 0 0 0 +0 0.506250 0.478125 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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.496875 0.496875 +0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.460000 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 1 0 0 0 +0 0.531250 0.556250 +0 0 0 0.520000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 0.780000 0 0 0 0 0 0 0.600000 0.270000 0 0 0 0 0 0 0.770000 0 0 0 0 0 +0 0.434375 0.503125 +0 0 0 0 0.480000 0 0 0 0 0.460000 0.480000 0 0.640000 0.360000 0.560000 0.470000 0 0.330000 0 0 0.600000 0 0 0 0 0 0 0 0.900000 0.300000 0.740000 0.620000 0 0 0 0 0.910000 0 0 0 0 0 0 0 0.380000 0 0 0 +0 0.503125 0.515625 +0 0.280000 0.300000 0.410000 0 0 0 0 0 0 0 0 0.370000 0.430000 0.410000 0.410000 0 0 0 0 0 0 0 0 0 0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +1 0.487500 0.493750 +0 0 0 0 0.760000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 1 0 0 0 +0 0.509375 0.521875 +0 0 0 0 0.510000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.620000 0 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.280000 0 0 0 +0 0.512500 0.518750 +0 0.630000 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.680000 0 0.270000 0 0 0.250000 0 0 0.550000 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 +0 0.412500 0.384375 +0 0 0 0.370000 0 0 0 0 0 0 0 0.450000 0 0 0 0 0 0 0 0.600000 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 +0 0.490625 0.500000 +0.970000 0 0 0 0 0 0 0 0 0.570000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 +0 0.415625 0.334375 +0 0 0 0.790000 0 0 0 0.420000 0 0 0 0.670000 0 0 0 0.390000 0 0 0 0.600000 0.340000 0 0 0.260000 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.690000 0 0 0 0 0 0 0 0.440000 0.320000 0 0 +0 0.556250 0.453125 +0 0 0 0 0.600000 0 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.670000 0 0 0 +0 0.509375 0.537500 +0.380000 0.330000 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0.980000 0 0 0 0 0 0 0 0.490000 0.440000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 +0 0.437500 0.368750 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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.681250 0.600000 +0 0 0.650000 0 0 0 0 0 0 0 0.450000 0 0 0 0 0 0 0 0.570000 0 0 0 0 0 0 0.300000 0.380000 0 0 0 0 0 0 0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0.384375 0.462500 +0 0 0 0 0 0.750000 0 0 0.840000 0 0 0 0 0.770000 0 0 0.350000 0.600000 0 0 0 0.840000 0 0 0 0.850000 0 0 0 0.770000 0 0 0 0 0.870000 0 0.610000 0 0 0 0 0 0.570000 0 0.770000 0 0 0 +0 0.521875 0.575000 +0 0 0 0 0 0.750000 0 0 0.840000 0 0 0 0 0.770000 0 0 0.350000 0.600000 0 0 0 0.840000 0 0 0 0.850000 0 0 0 0.770000 0 0 0 0 0.870000 0 0.610000 0 0 0 0 0 0.570000 0 0.770000 0 0 0 +0 0.525000 0.600000 +0 0 0 0 0 0 0 0 0 0 0 0 0.490000 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0.410000 0.360000 0 0 0 0 0 0 0.740000 0 0 0 0 +0 0.475000 0.559375 +0 0 0 0 0 0 0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.350000 0 0 0 0 0 0 0 0.570000 0 0 0 0 0 0 0 0.570000 0 0 0 +0 0.509375 0.506250 +0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0.730000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0.930000 0 0 0 0 0 0 0.540000 0.360000 0 0 0 0 0 0 0.660000 0 0 0 0 +0 0.434375 0.628125 +0 0 0 0 0.620000 0 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.970000 0 0 0 0 0 0 0 1 0 0 0 +0 0.512500 0.512500 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.290000 0 0 0 0 0 0 0 0 0.300000 0 0 0 0 0 0 0 0.370000 0 0 0 0 0 0 0.360000 0 0 0 0 0 0 +0 0.421875 0.403125 +0 0 0.460000 0 0 0 0 0 0 0 0.410000 0 0 0 0 0 0 0.490000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0.353125 0.446875 +0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.960000 0 0 0 0 0 0 0 0.560000 0.380000 0 0 0 0 0 0 0 0.950000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 +0 0.412500 0.318750 +0 0 0 0 0.860000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.320000 0 0 +0 0.553125 0.490625 +0 0 0.610000 0 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0 0.360000 0 0 0 0 0 0 0 1 0 0 0 0 +0 0.493750 0.428125 +0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0.730000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0.930000 0 0 0 0 0 0 0.540000 0.360000 0 0 0 0 0 0 0.660000 0 0 0 0 +0 0.434375 0.628125 +0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.380000 0.370000 0 0 0 0 0 0 0.980000 0 0 0 0 0 0 0 0.870000 0 0 0 +0 0.481250 0.615625 +0 0 0 0.760000 0 0 0.590000 0 0 0 0 0 0.580000 0.710000 0 0 0 0 0 0 0.520000 0.660000 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.500000 0 0 +0 0.540625 0.606250 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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.481250 0.490625 +0 0 0 0 0 0 1 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0.300000 0.750000 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.880000 0 0 0 +0 0.500000 0.625000 +0 0 0 0 0 0.780000 0 0.400000 0 0 0 0 0.840000 0 0 0.370000 0 0 0 0.540000 0.420000 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 +0 0.384375 0.587500 +0 0 0 0 0 0 0 0 0 0 0 0.260000 0 0 0 0 0 0 0 0.350000 0 0 0 0 0 0 0 0.350000 0 0 0 0 0 0 0 0.470000 0 0 0 0 0.560000 0.410000 0 0.580000 0.400000 0.480000 0.630000 0.620000 +0 0.462500 0.481250 +0 0.680000 0 0 0 0 0 0.440000 0 0 1 0 0 0 0 0.440000 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.290000 0.790000 0 +0 0.646875 0.353125 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.420000 0 0 0 0 0 0 0.540000 0 0 0 0 0 0 0.250000 0.570000 0 0 0 0 0 0 0.950000 0 0 0 0 0 0 +0 0.343750 0.606250 +0 0 0 0 0.660000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0 0.550000 0 0 0 0 0 0 0 0.680000 0 0 0 +0 0.534375 0.515625 +0 0.800000 0 0 0 0 0 0 0 0.360000 0.510000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0.270000 0.750000 0 0 0 0 0 0 0 0.600000 0.540000 0 0 +0 0.575000 0.350000 +0 0 0 0 0.430000 0.700000 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0.580000 0.350000 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.930000 0 0 0 0 0 0 0.460000 0.480000 0 0 0 0 +0 0.440625 0.550000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.280000 0 0 0 0 0 0 0 0.330000 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.690000 0 0 0 +0 0.537500 0.525000 +0 0 0.840000 0 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.900000 0 0.250000 0 0 0 0 0 0.350000 0.390000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.820000 0 0 0 +0 0.509375 0.412500 +0 0 0 0.330000 0 0 0 0 0 0 0 0.640000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 1 0 0 0 0 +0 0.500000 0.471875 +0 0 0 0 0 0.440000 0.420000 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.610000 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 0.800000 0 0 0 0 +0 0.437500 0.609375 +0 0 0 0 0 0 0 0.550000 0 0 0 0 0 0 0 0.610000 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.580000 0 0 0 0 0 0 0 0.780000 0 0 0 0 0 0 0.290000 0.540000 0 +0 0.553125 0.665625 +0 0 0 0 0.860000 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.990000 0 0 0 +0 0.506250 0.512500 +0 0.600000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.630000 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.600000 0 0 0 0 0 0 +0 0.418750 0.390625 +0 0 0 0 0.460000 0 0 0 0 0 0 0 0.400000 0 0 0 0 0 0 0 0.540000 0 0 0 0 0 0 0 0.630000 0 0 0 0 0 0 0 0.620000 0 0 0 0 0 0 0 0.440000 0 0 0 +0 0.500000 0.506250 +0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.540000 0 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.630000 0 0 0 0 0 0 0.690000 0 0 +0 0.584375 0.575000 +0 0 0 0.360000 0 0 0 0 0 0 0 0.510000 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 0 0.630000 0 0 0 0 0 0 0 0 0.880000 0 0 0 +0 0.503125 0.496875 +0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.340000 0.520000 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 1 0 0 0 +0 0.481250 0.618750 +0 0 0 0 0.600000 0 0 0 0 0 0 0 0.660000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.590000 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0 0.820000 0 0 0 +0 0.509375 0.512500 +0 0 0 0.440000 0 0 0 0 0 0 0 0.490000 0 0 0 0 0 0 0 0.610000 0 0 0 0 0 0 0 0.620000 0 0 0 0 0 0 0 0.550000 0 0 0 0 0 0 0 0 0 0 0 0 +0 0.468750 0.484375 +0 0 0.650000 0 0 0 0 0 0 0 0.530000 0 0 0 0 0 0 0 0.270000 0 0 0 0 0 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.493750 0.493750 +0 0 1 0 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.950000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 +0 0.496875 0.412500 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.280000 0 0 0 0 0 0 0 0.730000 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.910000 0 +0 0.575000 0.637500 +0 0 0 0 0.440000 0 0 0 0 0 0 0 0.540000 0 0 0 0 0 0 0 0.740000 0 0.290000 0 0 0 0 0 0.640000 0 0 0 0 0 0 0 0.610000 0 0 0 0 0 0 0 0.770000 0 0 0 +0 0.525000 0.518750 +0 0 0 0 0 0.960000 0 0 0 0 0 0 0.390000 0.570000 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0.430000 0.390000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 +0 0.437500 0.593750 +0 0.810000 0 0 0 0 1 0 0 0 0.800000 0 0 0.900000 0 0 0 0 0.940000 0 0 0.620000 0 0 0 0 0.730000 0 0.830000 0 0 0 0 0 0.880000 0 0.890000 0 0 0 0 0 0 0.590000 0 0 0 0 +0 0.471875 0.606250 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.640000 0 0 0 0 0 0 0.330000 0.290000 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.750000 0 0 +0 0.565625 0.587500 +0 0 0 0 0 0.340000 0.670000 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0.500000 0.390000 0 0 0 0 0 0 0.930000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.940000 0 0 0 +0 0.478125 0.606250 +0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0.350000 0.390000 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.910000 0 0 +0 0.534375 0.612500 +0 0 0.510000 0 0.490000 0 0 0 0 0 0.400000 0.250000 0 0 0 0 0 0 0 0.260000 0 0 0 0 0 0 0 0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 +0 0.437500 0.518750 +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 0.270000 0.770000 0 0 0 0 0 0 0 0.420000 0 0 0 0 0 0 0 0 +0 0.759375 0.465625 +0 0 0.640000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 0.340000 0.560000 0 0 0 0 0 0 0 0.970000 0 0 0 0 +0 0.487500 0.412500 +0 0 0.470000 0.320000 0 0 0 0 0 0 0 0.940000 0 0 0 0.990000 0 0 0 0.860000 0 0 0.570000 0 0 0 0 0.710000 0 0 1 0 0 0 0 0.950000 0 0.470000 0.410000 0 0 0 0 0.670000 0 0.920000 0 0 +0 0.531250 0.690625 +0 0 0 0 0 0.980000 0 0 0 0 0 0 0.410000 0.490000 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.970000 0 0 0 0 +0 0.443750 0.587500 +0 0 0 0 0 0 0.660000 0 0 0 0 0 0 0 0.410000 0 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0 0.630000 +0 0.718750 0.568750 +0 0 0.820000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.590000 0 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.950000 0 0 0 0 +0 0.509375 0.412500 +0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0.460000 0.550000 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 0 0.920000 0 0 0 +0 0.478125 0.612500 +0 0 0 0 0 0 0.510000 0 0 0 0 0 0 0 0.490000 0 0 0 0 0 0 0 0.320000 0 0 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.620000 0 0 0 0 0 0 0 +1 0.503125 0.503125 +0 0 0 0 0.700000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.690000 0 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.930000 0 0 0 +0 0.531250 0.515625 +0 0 0 0.260000 0 0 0 0 0 0 0 0.290000 0 0 0 0 0 0 0 0.310000 0 0 0 0 0.260000 0.380000 0 0.370000 0 0 0.270000 0.390000 0 0 0 0.590000 0 0 0 0 0 0 0 0.600000 0 0 0 0 +0 0.471875 0.496875 +0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.600000 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.680000 0 0 +0 0.578125 0.625000 +0 0 0 0 0 0 1 0 0 0 0 0 0 0.610000 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0.450000 0.470000 0 0 0 0 0 0 0.780000 0 0 0 0 0 0 0 0.890000 0 0 0 +0 0.481250 0.615625 +0 0 0 0 0 0 0 0 0 0 0 0 0.570000 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0.370000 0.300000 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.840000 0 0 0 0 +0 0.468750 0.543750 +0 0 0 0 0.680000 0 0 0.400000 0 0 0 0 0 0.790000 0 0.450000 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.560000 0 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.790000 0 +0 0.628125 0.509375 +0 0 0 0 0 0.470000 0 0 0 0 0 0 0 0.600000 0 0 0 0 0 0 0 0.260000 0.250000 0 0 0 0 0 0 0 0.570000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0 0 +0 0.606250 0.553125 +0 0 0.810000 0 0.430000 0.250000 0.300000 0 0 0 0.430000 0.490000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.630000 0 0 0 +0 0.571875 0.409375 +0 0.550000 0.400000 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.340000 0.570000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 0 0.810000 0 0 0 0 +0 0.506250 0.384375 +0 0 0 0 0.370000 0 0 0 0 0 0 0 0.320000 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 +0 0.503125 0.190625 +0 0 0 0 0 0 0 0 0.560000 0 0 0 0 0 0 0 0.640000 0 0 0 0 0 0 0 0.570000 0 0 0 0 0 0 0 0.690000 0 0 0 0 0 0 0 0.300000 0 0 0 0 0 0 0 +0 0.371875 0.337500 +0 0.840000 0 0 0 0 0.690000 0.510000 0 0.770000 0 0 0 0 0.950000 0 0 0.720000 0 0 0 1 0 0 0 0 0.820000 0 0 0.970000 0 0 0 0 0.870000 0 0.410000 0.520000 0 0 0 0 0.790000 0 0.870000 0 0 0 +0 0.493750 0.637500 +0 0 0.280000 0.480000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.500000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.810000 0 0 0 0 +0 0.459375 0.459375 +0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.660000 0 0 0 0 0 0 0 0.590000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.970000 0 0 0 0 0 0 0.720000 0 +0 0.615625 0.631250 +0 0 0 0 0.830000 0 0 0 0 0 0 0.780000 0 0 0 0 0 0 0 0.960000 0 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0.670000 0 0 0 0 0 +0 0.434375 0.515625 +0 0 0 0 0 0 0 0 0 0 0 0 0.560000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0.570000 0 0 0 0 0 0 0 0.790000 0 0 0 0 +0 0.468750 0.559375 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.590000 +1 0.506250 0.503125 +0 0 0 0 0.520000 0 0 0 0 0 0 0 0.620000 0 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.540000 0 0 0 +0 0.515625 0.521875 +0 0 0 0 0.520000 0 0 0 0 0 0 0 0.630000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.880000 0 0 0 +0 0.509375 0.518750 +0 0 0 0 0 0 0 0 0 0 0 0.290000 0 0 0 0 0 0 0 0 0.340000 0 0 0 0 0 0 0 0.440000 0 0 0 0 0 0 0 0.480000 0 0 0 0 0 0 0 0.500000 0 0 0 +0 0.521875 0.459375 +0 0 1 0 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.970000 0 0 0 0 0 0 0 0.460000 0.300000 0 0 0 0 0 0 0 0.690000 0 0 0 0 0 0 0 0.890000 0 0 0 +0 0.546875 0.431250 +0.390000 0 0 0 0.350000 0 0 0 0 0 0 0 0.310000 0.640000 0.520000 0.610000 0 0 0 0 0 0.540000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.520000 0 0 0 0 0 0 0 0.670000 0 0 +0 0.559375 0.531250 +0 0 0 0 0.500000 0.620000 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0.310000 0.500000 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0.470000 0.380000 0 0 0 0 +0 0.434375 0.562500 +0 0 0 0 0.930000 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0.470000 0.450000 0 0 0 0 0 0 0.980000 0 0 0 0 0 0 0 +0 0.293750 0.556250 +0 0 0 0 0.790000 0 0 0 0 0 0 0.780000 0 0 0 0 0 0 0 0.950000 0 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0.870000 0 0 0 0 0 +0 0.434375 0.518750 +0 0 0 0 0 0.430000 0 0 0 0 0 0 0 0.530000 0 0 0 0 0 0 0 0.640000 0 0 0 0 0 0 0.250000 0.420000 0 0 0 0 0 0 0.620000 0 0 0 0 0 0 0 0.770000 0 0 0 +0 0.521875 0.581250 +0 0 0 0 0.570000 0 0 0 0 0 0 0 0.610000 0 0 0 0 0 0 0 0.560000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.960000 0 0 0 +0 0.503125 0.506250 +0 0 0 0.620000 0 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 0.260000 0.650000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 +0 0.428125 0.525000 +0 0 0.520000 0 0 0 0 0 0 0 0.610000 0 0 0 0 0 0 0 0.380000 0.280000 0 0 0 0 0 0 0 0.860000 0 0 0 0.280000 0 0 0 0.780000 0 0 0 0 0 0 0 0.410000 0 0 0 0 +0 0.475000 0.431250 +0 0 0 0 0.770000 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.970000 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0.780000 0 0 0 0 +0 0.487500 0.521875 +0 0 0 0.830000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0.660000 0 0 0 0 0 0 0 0.630000 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.590000 0 0 0 0 0 +0 0.446875 0.471875 +0 0 0.510000 0.530000 0.440000 0 0 0 0 0 0 0.560000 0.730000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.630000 0 0 0 +0 0.490625 0.543750 +0 0 0 0 0.660000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.700000 0 0 0 +0 0.496875 0.528125 +0 0 0 0 0 0 0 0.290000 0 0 0 0 0 0 0 0.330000 0.300000 0.930000 0 0 0 0 0 0 0 0 1 0.270000 0 0 0 0 0 0 0 0.760000 0.750000 0 0 0 0 0 0 0 0 1 0.500000 0 +0 0.662500 0.221875 +0 0 0 0 0.660000 0 0 0 0 0 0 0 0.780000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0.520000 0 0 0 0 0 0 0 0.940000 0 0 0 +0 0.500000 0.515625 +0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.600000 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0.580000 0 0 +0 0.553125 0.656250 +0 0 0 0 0 0 0 0 0.360000 0 0 0.270000 0 0 0 0 0.730000 0 0 0.570000 0 0 0 0 0.660000 0 0 0.780000 0 0 0 0 0.740000 0 0 0.690000 0 0 0 0 0 0.820000 0 0.770000 0 0 0 0 +0 0.493750 0.465625 +0 0 0 0 0 0 0 0 0 0.280000 0 0.330000 0 0 0 0 0 0.360000 0 0.650000 0 0 0 0 0 0 0.700000 0.770000 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.300000 0 0 0 0 +0 0.506250 0.465625 +0 0 0 0.640000 0 0 0 0 0 0 0 0.640000 0.280000 0 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0 0.300000 0.480000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.600000 0.280000 0 +0 0.603125 0.446875 +0 0 0 0.510000 0.690000 0 0 0 0 0 0 1 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.690000 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0.710000 0.360000 0 0 0 0 0 0 +0 0.331250 0.537500 +0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.350000 0.430000 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.720000 0 0 0 +0 0.478125 0.615625 +0 0 0 0.750000 0 0 0 0.640000 0 0 0 0.500000 0.260000 0 0 0 0 0 0 0 0.980000 0 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0 0 0.590000 0 0 0 0 0 0 0 0.830000 0 0 +0 0.587500 0.446875 +0 0 0 0 0.610000 0 0 0.270000 0 0 0 0.810000 0 0 0 0 0 0 1 0 0 0 0 0 0 0.620000 0.490000 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0.690000 0.290000 0 0 0 0 0 0 +0 0.325000 0.546875 +0 0 0.710000 0 0 0 0 0 0 0 0.800000 0 0 0.330000 0 0 0 0.730000 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 +0 0.368750 0.446875 +0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.950000 0 0 0 0 0 0 0 0.930000 0 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.880000 +0 0.643750 0.575000 +0 0 0 0 0.770000 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.720000 0 0 0 +0 0.503125 0.503125 +0 0 0.470000 0 0 0 0 0 0 0 0.370000 0.460000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0 0.590000 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.770000 0 0 0 +0 0.562500 0.406250 +0 0 0 0 0 0 0 0 0 0 0 0 0.540000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.730000 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.600000 0 0 0 0 +0 0.475000 0.546875 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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.506250 0.506250 +0 0 0.530000 0 0 0.460000 0 0 0 0 0.600000 0 0 0.520000 0 0 0 0 0.670000 0 0 0.610000 0 0 0 0 0 0.560000 0.460000 0 0 0 0 0 0 0.600000 0.710000 0 0 0 0 0 0 0.310000 0.410000 0 0 0 +0 0.518750 0.584375 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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.506250 0.506250 +0 0 0 0 0 0 0.290000 0.710000 0 0 0 0.300000 0 0.250000 0.800000 0.260000 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.710000 0.300000 0 0 0 0 0 0.570000 0.580000 0 0 0 0 +0 0.409375 0.668750 +0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0.460000 0.760000 0.770000 0 0 0 0.570000 1 0.440000 0 0.940000 0 0 0 0.280000 0 0 0 0.820000 0 0 0 0 0 0 0 0.650000 0 0 0 +0 0.484375 0.640625 +0 0 0 0.830000 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.510000 0 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 +0 0.471875 0.481250 +0 0 0.420000 0.390000 0 0 0 1 0 0 0 0.840000 0 0 0.870000 0 0 0 0 0.890000 0 0.370000 0.570000 0 0 0 0 0.850000 0 0.820000 0 0 0 0 0 0.520000 0.280000 0.550000 0 0 0 0 0 0 0.580000 0 0 0 +0 0.496875 0.665625 +0 0 0 0 0 0 0 0 0 0 0 0.510000 0 0 0 0 0 0 0 0.490000 0 0 0 0 0 0 0 0.660000 0 0 0 0 0 0 0 0.960000 0 0 0 0 0 0 0 1 0 0 0 0 +0 0.487500 0.512500 +0 0 0 0.480000 0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.430000 0 0 0 0 0 0 0 0.510000 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 0.720000 0 0 0 +0 0.500000 0.543750 +0 0 0 0 0 0 0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.350000 0 0 0 0 0 0 0 0.570000 0 0 0 0 0 0 0 0.570000 0 0 0 +0 0.509375 0.506250 +0 0 0 0 0 0 1 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 0.380000 0.560000 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.870000 0 0 0 +0 0.484375 0.612500 +0 0 0 0.270000 0 0.520000 0 0 0 0 0 0 0.520000 0 0 0 0 0 0 0.630000 0 0 0.410000 0.330000 0 0 0 0.560000 0 0 0 0 0 0 0.630000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 +0 0.396875 0.578125 +0.370000 0 0 0 0 0 0 0 0 0.680000 0.340000 0 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 0 0.730000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0 0.800000 0 0 0 +0 0.537500 0.315625 +0 0 0 0 0.840000 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0.360000 0.600000 0 0 0 0 0 0 1 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 +0 0.343750 0.550000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.660000 0.640000 0 0 0 0 0 0 0 0 0.590000 0.770000 0.680000 0.540000 0 0 0 0 0 0 0 0.350000 0.810000 0.730000 +0 0.740625 0.153125 +0.810000 0 0 0 0 0 0 0 0.780000 0 0 0 0 0 0 0 0.960000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.960000 0 0 0 0 0 0 0 +0 0.378125 0.337500 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.320000 0 0 0 0 0.300000 0 0 0.370000 0 0 0 0 0.400000 0 0 0.430000 0 0 0 0 0.260000 0 0 0 0 0 0 0 0 0 0 0 0 +1 0.503125 0.503125 +0 0.700000 0 0 0.520000 0.420000 0 0 0.820000 0 0 0 0 0 0.370000 0.450000 0 0 0 0 0 0 0 0 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.493750 0.493750 +0 0 0 0 0 0 0.250000 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 1 0 0 0 0 0 0 0.660000 0 0 0 0 0 0 0.390000 0.590000 0 0 0 0 0 0 0.970000 0 0 0 0 0 +0 0.381250 0.631250 +0 0 0 0 0 0 0.920000 0.320000 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 0 0.990000 0 0 +0 0.550000 0.650000 +0 0 0 0 0.510000 0 0 0 0 0 0 0 0.680000 0.250000 0.650000 0.560000 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 0 0.910000 0 0 0 +0 0.500000 0.509375 +0 0 0.310000 0.510000 0 0 0.310000 0 0 0 0 0.990000 0 0 0.430000 0 0 0 0 0.260000 0.610000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.780000 0 0 0 0 0 0 0 0 0.690000 0 0 +0 0.568750 0.437500 +0 0 0 0.770000 0 0 0 0.540000 0 0 0 0.640000 0 0 0 0.440000 0 0 0 0 0.930000 0 0 0.260000 0 0 0 0 0.290000 0.500000 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0 0.890000 0 +0 0.625000 0.437500 +0 0 0 0.510000 0.690000 0 0 0 0 0 0 1 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.690000 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0.710000 0.360000 0 0 0 0 0 0 +0 0.331250 0.540625 +0 0 0 0 0.470000 0 0 0 0 0 0 0 0.630000 0 0 0 0 0 0 0 0.640000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.630000 0 0 0 0 0 0 0 0.670000 0 0 0 +0 0.518750 0.506250 +0 0 0 0 0.620000 0 0 0 0 0 0 0 0.660000 0.290000 0.590000 0.550000 0 0 0 0 0.710000 0 0 0 0 0 0 0 0.610000 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.950000 0 0 0 +0 0.500000 0.512500 +0 0 0 0 0 0.770000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0.500000 0.360000 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 1 0 0 0 +0 0.493750 0.571875 +0 0.800000 0 0 0 0 0 0.500000 0 0.650000 0 0 0 0 0 0.490000 0.690000 0 0 0 0 0 0 0.420000 0.810000 0 0 0 0 0 0 0 0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0.290625 0.425000 +0.840000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.780000 0 0 0 0 0 0 0 0.550000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 +0 0.359375 0.353125 +0.780000 0 0 0 0 0.790000 0 0 0 0.860000 0 0 0 0.740000 0 0 0 0 0.770000 0 0 0.800000 0 0 0 0 0.800000 0 0 0.920000 0 0 0 0 0 0.980000 0.640000 0 0 0 0 0 0 0 0.450000 0 0 0 +0 0.509375 0.584375 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.270000 0 0 0 0 0 0 0 0.490000 0 0 0 0 0 0 0 0.530000 0 0 +0 0.540625 0.537500 +0 0 0 0.860000 0 0 0 0.450000 0 0 0 0.260000 0.640000 0 0 0.400000 0 0 0 0 0.870000 0 0 0.270000 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0 0 0.760000 0 +0 0.618750 0.450000 +0 0 0 0 0 0.730000 0 0 0 0 0 0 0 0.640000 0 0 0 0 0 0 0.590000 0 0 0 0 0 0 0 0.980000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 1 0 0 0 0 +0 0.468750 0.590625 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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.515625 0.515625 +0 0 0 0 0.460000 0 0 0 0 0 0 0 0.400000 0 0 0 0 0 0 0 0.540000 0 0 0 0 0 0 0 0.630000 0 0 0 0 0 0 0 0.620000 0 0 0 0 0 0 0 0.440000 0 0 0 +0 0.500000 0.506250 +0 0 0 0 0 0 0 0 0 0 0.270000 0 0 0 0 0 0 0 0.580000 0 0 0 0 0 0 0 0.500000 0 0 0 0 0 0 0.430000 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 +0 0.387500 0.515625 +0 0 0 0 0 0.780000 0 0.400000 0 0 0 0 0.840000 0 0 0.370000 0 0 0 0.540000 0.420000 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 +0 0.384375 0.587500 +0 0 0 0 0.640000 0 0 0.310000 0 0 0 0 0.780000 0 0 0.410000 0 0 0 0 0.780000 0 0 0 0 0 0 0 0.730000 0 0 0 0 0 0 0 0.350000 0.430000 0 0 0 0 0 0 0 0.860000 0 0 +0 0.559375 0.500000 +0 0 0 0 0 0.260000 0.720000 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.820000 0 0 0 0 +0 0.434375 0.621875 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.660000 0.640000 0 0 0 0 0 0 0 0 0.590000 0.770000 0.680000 0.540000 0 0 0 0 0 0 0 0.350000 0.810000 0.730000 +0 0.740625 0.153125 +0.630000 0 0 0 0 0 0 0 0 0.840000 0.390000 0 0 0 0 0 0 0 0.420000 0.890000 0 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0 0.960000 0 0 0 0 0 0 0 0 0.780000 0 +0 0.662500 0.296875 +0 0 0 0.490000 0.490000 0 0 0.270000 0 0 0 0 0.880000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.360000 0.540000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0.690000 0 0 +0 0.575000 0.484375 +0 0 0 0 0 0 0 0 0 0.520000 0 0 0 0 0 0 0 0 0.830000 0.670000 0 0 0 0 0 0 0 0.380000 1 0.390000 0 0 0 0 0 0 0 0.680000 0.970000 0 0 0 0 0 0 0 0 0.450000 +0 0.728125 0.256250 +0 0 0.740000 0 0 0 0 0 0 0.380000 0.460000 0 0 0 0 0 0 1 0 0 0 0 0 0 0.710000 0.260000 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 +0 0.284375 0.475000 +0 0.680000 0.300000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.590000 0.350000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.750000 0 0 0 0 +0 0.503125 0.381250 +0 0.810000 0 0 0 0 1 0 0 0 0.800000 0 0 0.900000 0 0 0 0 0.940000 0 0 0.620000 0 0 0 0 0.730000 0 0.830000 0 0 0 0 0 0.880000 0 0.890000 0 0 0 0 0 0 0.590000 0 0 0 0 +0 0.465625 0.618750 +0 0 0 0 0.830000 0 0 0 0 0 0 0.780000 0 0 0 0 0 0 0 0.960000 0 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0.670000 0 0 0 0 0 +0 0.434375 0.515625 +0 0.590000 0 0 0 0 0 0.490000 0 0.590000 0.440000 0 0 0 0 0.450000 0 0 0.760000 0.350000 0 0 0 0.320000 0 0 0 0.580000 0.520000 0 0 0 0 0 0 0 0.560000 0.570000 0 0 0 0 0 0 0 0.420000 0.750000 0 +0 0.650000 0.312500 +0 0 0 0 0.650000 0 0 0 0 0 0 0.840000 0 0 0 0 0 0.260000 0 0.800000 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 +0 0.425000 0.521875 +0 0 0 0 0.640000 0 0 0.430000 0 0 0 0 0.740000 0 0 0.330000 0 0 0 0 0.710000 0 0 0.260000 0 0 0 0 0 0.610000 0 0 0 0 0 0 0 0.620000 0 0 0 0 0 0 0 0.780000 0 0 +0 0.559375 0.512500 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.310000 0 0 0 0 0 0 0 0.290000 0 0 0 0 0 0 0 0 0.490000 0 0 0 0 0 0 0 0.440000 0 0 0 0 +0 0.521875 0.356250 +0 0 0 0.680000 0 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0 0.690000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0 0 0 0 0 +0 0.481250 0.487500 +0 0 0 0.960000 0 0 0 0.450000 0 0 0 0.280000 0.760000 0 0 0.450000 0 0 0 0 0.600000 0.410000 0 0.280000 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0 0.990000 0 0 0 0 0 0 0 0 0.770000 +0 0.681250 0.428125 +0 0 0 0 0 0 0 0 0.870000 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 1 0.270000 0 0 0 0 0 0 0 0.760000 0 0 0 +0 0.587500 0.265625 +0 0.430000 0.530000 0 0.270000 0 0 0 0 0 0.710000 0 0 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0 0.680000 0 0 0 +0 0.531250 0.396875 +0 0 0 0 0.760000 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0 0.990000 0 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0 0.910000 0 0 0 0 +0 0.481250 0.521875 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.710000 0.720000 0 0 0 0 0.830000 0.690000 0 0 0 0 0.950000 0.590000 0 0 0 0 0.770000 0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0.243750 0.746875 +0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.530000 0.310000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.820000 0 +0 0.606250 0.559375 +0 0 0 0 0.610000 0 0 0.270000 0 0 0 0.810000 0 0 0 0 0 0 1 0 0 0 0 0 0 0.620000 0.490000 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0.690000 0.290000 0 0 0 0 0 0 +0 0.325000 0.543750 +0 0 0 0.720000 0 0 0.750000 0 0 0 0 0.570000 0 0 0.810000 0 0 0 0 0 0.810000 0.500000 0 0 0 0 0 0 0 0.540000 0 0 0 0 0 0 0 0.630000 0 0 0 0 0 0 0 0 0 0 +0 0.543750 0.637500 +0.280000 0 0 0 0 0 0 0 0.580000 0 0 0.290000 0 0 0 0 0.810000 0 0 0.590000 0 0 0 0 0.600000 0 0 0.640000 0 0 0 0 0.800000 0 0 0.600000 0 0 0 0 0.830000 0 0 0.770000 0 0 0 0 +0 0.493750 0.481250 +0 0 0 0.390000 0.720000 0 0 0 0 0 0 1 0 0 0 0 0 0 0.270000 0.510000 0 0 0 0 0 0 0.960000 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0.470000 0.410000 0 0 0 0 0 +0 0.384375 0.528125 +0 0 0 0 0.680000 0 0 0.400000 0 0 0 0 0 0.790000 0 0.450000 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.560000 0 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.790000 0 +0 0.628125 0.509375 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.510000 0 0 0 0 0 0 0 0.500000 0 0 0 0 0 0 0 0.530000 0 0 0 0 0 +0 0.453125 0.384375 +0 0 0.360000 0.500000 0 0 0 0.250000 0 0 0.890000 0 0 0 0 0 0 1 0 0 0.330000 0 0 0 0 0.630000 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 +0 0.287500 0.493750 +0.900000 0 0 0 0 0 0 0 0.310000 0.570000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.980000 0 0 0 0 0 0 0 0.970000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 +0 0.415625 0.325000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.310000 0 0 0 0 0 0 0 0.500000 0 0 0 0 0 0 0 0.580000 0 0 0 0 0 0 0 0.620000 0 0 0 0 0 0 +0 0.406250 0.353125 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.280000 0 0 0 0 0 0 0 0.410000 0 0 0 0 +0 0.481250 0.500000 +0 0 0 0 0 0 0 0 0.280000 0 0 0.330000 0 0 0 0 0 0.680000 0 0.600000 0 0 0 0 0 0.730000 0 0.720000 0 0 0 0 0 0.890000 0 0.760000 0 0 0 0 0 0.850000 0 0.830000 0 0 0 0 +0 0.500000 0.453125 +0 0.810000 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0.620000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0 +0 0.346875 0.409375 +0 0 0 0 0 0.440000 0.390000 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 1 0 0 +0 0.540625 0.584375 diff --git a/lib/ann/fann/datasets/robot.train b/lib/ann/fann/datasets/robot.train new file mode 100644 index 0000000..8211b33 --- /dev/null +++ b/lib/ann/fann/datasets/robot.train @@ -0,0 +1,749 @@ +374 48 3 +0 0 0 0.400000 0 0 0 0.640000 0 0 0 0.440000 0 0 0.260000 0.550000 0 0 0 0.360000 0 0 0.860000 0 0 0 0 0 0 0.460000 0.500000 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0.440000 0.470000 0 0 +0 0.506250 0.678125 +0.630000 0 0 0 0 0 0 0 0 0.840000 0.390000 0 0 0 0 0 0 0 0.420000 0.890000 0 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0 0.960000 0 0 0 0 0 0 0 0 0.780000 0 +0 0.662500 0.296875 +0 0 0 0 0 0 0.440000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.700000 0 +0 0.612500 0.606250 +0 0 0 0 0.390000 0 0 0 0 0 0 0 0.560000 0 0 0 0 0 0 0.430000 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.500000 0 0 0 0 +0 0.490625 0.512500 +0 0 0 0 0.820000 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 +0 0.450000 0.515625 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.290000 0 0 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0 0.300000 0.650000 0 0 0 0 0 0 0 0.730000 +0 0.687500 0.484375 +0 0 0.400000 0 0.570000 0 0.280000 0.330000 0 0 0 0 0.640000 0 0 0 0 0 0 0 0.710000 0 0 0 0 0 0.270000 0 0.760000 0.280000 0.350000 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.920000 0 0 0 +0 0.496875 0.534375 +0 0 0 0 0.750000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0.310000 0.500000 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.710000 0 0 0 0 +0 0.481250 0.525000 +0 0 0 0 0 0 0 0 0.360000 0 0 0.270000 0 0 0 0 0.730000 0 0 0.570000 0 0 0 0 0.660000 0 0 0.780000 0 0 0 0 0.740000 0 0 0.690000 0 0 0 0 0 0.820000 0 0.770000 0 0 0 0 +0 0.493750 0.468750 +0 0 0 0.300000 0 0 0 0 0 0 0 0.380000 0 0 0 0.540000 0 0 0 0.270000 0 0 0.530000 0.640000 0 0 0 0 0 0.530000 0.600000 0 0 0 0 0 0.570000 0.520000 0 0 0 0 0 0.760000 0.570000 0 0 0 +0 0.431250 0.756250 +0.390000 0 0 0 0 0 0 0 0.570000 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 +0 0.400000 0.362500 +0 0 0.280000 0 0.500000 0 0.330000 0 0 0 0 0 0.660000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0.660000 0.260000 0.330000 0 0 0 0 0 0.680000 0 0 0 0 0 0 0.280000 0.630000 0 0 0 +0 0.490625 0.537500 +0 0 0 0 0 0.250000 0 0 0 0 0 0 0.510000 0 0 0 0 0 0.300000 0.960000 0 0 0 0 0 0.420000 0.830000 0 0 0 0 0 0 0.970000 0 0 0 0 0 0 0.260000 0 0 0 0 0 0 0 +0 0.281250 0.615625 +0 0 0 0 0 0.980000 0 0 0 0 0 0 0.410000 0.490000 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.970000 0 0 0 0 +0 0.443750 0.587500 +0 0 0 0.750000 0 0 0 0 0 0 0 0.330000 0.570000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 0 0 0.930000 0 0 +0 0.559375 0.475000 +0 0 0 0 0.430000 0 0 0 0 0 0.250000 0.690000 0 0 0 0 0 0 0 0.640000 0 0 0 0 0 0 0 0.980000 0 0 0 0 0 0 0 0.570000 0 0 0 0 0 0 0 1 0 0 0 0 +0 0.496875 0.509375 +0 0 0 0 0 0 0 0.530000 0 0 0 0 0 0 0.880000 0.450000 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 1 0 0 0 0 0 +0 0.381250 0.709375 +0 0 0 0.830000 0 0 0 0.250000 0 0 0.820000 0 0 0 0 0 0 0.500000 0.510000 0 0 0 0 0 0 0.980000 0 0 0 0 0 0 0.610000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 +0 0.296875 0.518750 +0 0 0.420000 0 0 0 0 0 0 0.460000 0 0 0 0 0 0 0 0.610000 0 0 0 0 0 0 0 0.570000 0 0 0 0 0 0 0 0.250000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0.343750 0.440625 +0 0 0 0.570000 0 0 0 0 0 0 0 0.690000 0 0 0 0 0 0 0 0.590000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 1 0 0 0 0 +0 0.481250 0.484375 +0 0 0.710000 0.850000 0 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0 0.670000 0.570000 0 0 0 0 0 0 0 0.510000 0.840000 0 0 0 0 0 0 0 0.300000 0 0 0 0 0 0 0 0 +0 0.787500 0.375000 +0 0.680000 0 0 0 0 0.270000 0 0 0.560000 0 0 0 0 0 0 0.880000 0 0 0.390000 0 0 0 0 0.590000 0 0 0 0 0 0 0 0.980000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 +0 0.337500 0.428125 +0 0 0 0 0 0 0 0 0 0 0.520000 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.660000 0 0 0 0 0 +0 0.471875 0.421875 +0.390000 0 0 0 0.350000 0 0 0 0 0 0 0 0.310000 0.640000 0.520000 0.610000 0 0 0 0 0 0.540000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.520000 0 0 0 0 0 0 0 0.670000 0 0 +0 0.556250 0.534375 +0 0 0 0.370000 0.660000 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0.970000 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.480000 0 0 0 0 0 0 0 +0 0.281250 0.546875 +0 0 0 0 0 0 0.250000 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 1 0 0 0 0 0 0 0.660000 0 0 0 0 0 0 0.390000 0.590000 0 0 0 0 0 0 0.970000 0 0 0 0 0 +0 0.381250 0.631250 +0 0 0 0 0 0 0 0 0 0 0 0.280000 0 0 0 0 0 0 0 0.270000 0 0 0 0 0.520000 0 0 0.310000 0 0 0 0 0 0 0.260000 0.320000 0 0.340000 0.570000 0.680000 0 0 0.390000 0.250000 0 0 0 0 +0 0.453125 0.478125 +0 0 0 0 0 0 0 0.530000 0 0 0 0 0 0 0.880000 0.450000 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 1 0 0 0 0 0 +0 0.381250 0.709375 +0.280000 0 0 0 0 0 0 0 0.580000 0 0 0.290000 0 0 0 0 0.810000 0 0 0.590000 0 0 0 0 0.600000 0 0 0.640000 0 0 0 0 0.800000 0 0 0.600000 0 0 0 0 0.830000 0 0 0.770000 0 0 0 0 +0 0.493750 0.481250 +0 0.680000 0 0 0 0 0 0.440000 0 0 1 0 0 0 0 0.440000 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.290000 0.790000 0 +0 0.646875 0.353125 +0 0 0 0 0 0 0 0 0 0.580000 0 0 0 0 0 0 0 0 0.860000 0.260000 0 0 0 0 0 0 0 0.810000 0.880000 0 0 0 0 0 0 0 0 0.840000 0.490000 0 0 0 0 0 0 0 0.300000 0.590000 +0 0.709375 0.259375 +0 0 0 0.840000 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0.590000 0 0 0 0 +0 0.456250 0.478125 +0 0.600000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.630000 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.600000 0 0 0 0 0 0 +0 0.418750 0.390625 +0 0 0.490000 0.860000 0.250000 0 0 0 0 0 0 0 0.740000 0.550000 0 0 0 0 0 0 0 0.380000 0.920000 0 0 0 0 0 0 0 0 0.970000 0 0 0 0 0 0 0 0 0 0 0.250000 0 0 0 0 0 +0 0.787500 0.393750 +0 0 0 0 0 0 0 0.380000 0 0 0 0 0 0 0 0.550000 0 0 0 0 0 0 0.280000 0.250000 0 0 0 0 0 0 0.580000 0 0 0 0 0 0 0 0.620000 0 0 0 0 0 0 0.340000 0.330000 0 +0 0.559375 0.662500 +0 0 0 0 0.490000 0.440000 0 0 0 0 0 0 0.990000 0 0 0 0 0 0 0.390000 0.550000 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.990000 0 0 0 0 0 0 0.580000 0.380000 0 0 0 0 +0 0.428125 0.559375 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.590000 +1 0.506250 0.503125 +0 0 0 0 0 0.260000 0.720000 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.820000 0 0 0 0 +0 0.434375 0.621875 +0 0 0 0.270000 0 0 0 0 0 0 0 0.310000 0 0 0 0.340000 0 0 0 0 0 0 0.750000 0.520000 0 0 0 0 0 0.880000 0 0 0 0 0 0.660000 0.730000 0 0 0 0 0.250000 0.970000 0.250000 0 0 0 0 +0 0.340625 0.778125 +0 0 0.530000 0 0 0.460000 0 0 0 0 0.600000 0 0 0.520000 0 0 0 0 0.670000 0 0 0.610000 0 0 0 0 0 0.560000 0.460000 0 0 0 0 0 0 0.600000 0.710000 0 0 0 0 0 0 0.310000 0.410000 0 0 0 +0 0.509375 0.578125 +0 0 0 0 0.940000 0 0 0 0 0 0 1 0 0 0 0 0 0 0.290000 0.810000 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0.450000 0.430000 0 0 0 0 0 0 1 0 0 0 0 0 0 +0 0.359375 0.550000 +0 0 0.260000 0.470000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.730000 0 0 0 0 0 0 0 0.600000 0 0 0 0 0 0 0 1 0 0 0 0 +0 0.462500 0.462500 +0 0 0 0 0 0 0 0 0 0.520000 0 0 0 0 0 0 0 0 0.830000 0.670000 0 0 0 0 0 0 0 0.380000 1 0.390000 0 0 0 0 0 0 0 0.680000 0.970000 0 0 0 0 0 0 0 0 0.450000 +0 0.728125 0.256250 +0 0 0 0 0 0 1 0.270000 0 0 0 0 0 0.840000 0.320000 0 0 0 0 0 0.480000 0.500000 0 0 0 0 0.930000 0.750000 0.700000 0 0 0 0.960000 0.980000 0 0 0.990000 0 0 0 0 0 0 0 0.780000 0 0 0 +0 0.490625 0.653125 +0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0.250000 0.520000 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.500000 0 0 +0 0.578125 0.615625 +0 0 0 0 0 0.330000 0 0 0 0 0 0 0.510000 0 0 0 0 0 0 0 0.550000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.880000 0 0 0 +0 0.531250 0.540625 +0 0 0.470000 0.320000 0 0 0 0 0 0 0 0.940000 0 0 0 0.990000 0 0 0 0.860000 0 0 0.570000 0 0 0 0 0.710000 0 0 1 0 0 0 0 0.950000 0 0.470000 0.410000 0 0 0 0 0.670000 0 0.920000 0 0 +0 0.531250 0.690625 +0 0 0 0 0.410000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0 0.960000 0 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0 0 0.590000 0 0 0 0 0 0 0 0 +0 0.731250 0.446875 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.250000 0 0 0 0 0 0 0 0.490000 0 0 0 0 0.500000 0.540000 0.260000 0.480000 0 0 0 0 0 0 0 0.560000 0 0.360000 0.290000 0.300000 +0 0.475000 0.503125 +0 0 0 0.680000 0 0 0 0.400000 0 0 0 0 0.960000 0 0 0.440000 0 0 0 0 0.530000 0.440000 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0 0.780000 0 0 0 0 0 0 0 0.900000 0 +0 0.650000 0.453125 +0 0 0 0 0 0 0.830000 0.280000 0 0 0 0 0 0.990000 0 0.420000 0 0 0 0 0 0.790000 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0.800000 0 0 0 0 +0 0.446875 0.621875 +0.550000 0.250000 0 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 0 0.510000 0.480000 0 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0 0 0.500000 0 0 0 0 0 0 0 0.640000 0 0 0 0 +0 0.515625 0.343750 +0 0 0 0 0 0 0 0 0.870000 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 1 0.270000 0 0 0 0 0 0 0 0.760000 0 0 0 +0 0.587500 0.265625 +0 0 0 0 0 0 0 0 0.280000 0 0 0.330000 0 0 0 0 0 0.680000 0 0.600000 0 0 0 0 0 0.730000 0 0.720000 0 0 0 0 0 0.890000 0 0.760000 0 0 0 0 0 0.850000 0 0.830000 0 0 0 0 +0 0.500000 0.453125 +0 0 0 0 0 0.520000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0 0.940000 0 0 +0 0.559375 0.537500 +0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0.730000 0 0 0 0 0 0 0 0.950000 0 0 0 0 0 0 0.370000 0.660000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.780000 0 0 0 +0 0.481250 0.615625 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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.500000 0.500000 +0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0 0.970000 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0 0.650000 0 0 +0 0.609375 0.459375 +0 0 0 0 0 0.630000 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.780000 0 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0.870000 0 0 0 +0 0.490625 0.550000 +0 0 0.710000 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0 0.990000 0 0 0 0 0 0 0 0.870000 0 0 0 0 +0 0.487500 0.418750 +0 0 0 0 0.670000 0 0 0.410000 0 0 0 0 0.700000 0 0 0.500000 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.630000 0 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 0.700000 0 0 +0 0.568750 0.493750 +0 0 0 0 0.520000 0 0 0 0 0 0 0 0.560000 0 0.280000 0 0 0.740000 0.440000 0.260000 0.600000 0.340000 0.470000 0.670000 0 0 0 0 0.560000 0 0.260000 0.250000 0 0 0 0 0.790000 0 0.470000 0.500000 0 0 0 0 0 0 0 0 +0 0.509375 0.509375 +0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.330000 0.570000 0 0 0 0 0 0 0.930000 0 0 0 0 0 0 0 0.790000 0 0 0 +0 0.481250 0.615625 +0 0 0 0 0.500000 0 0 0 0 0 0 0 0.640000 0 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 0 0.840000 0 0 +0 0.550000 0.521875 +0 0 0 0 0.640000 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0.780000 0 0 0 +0 0.543750 0.506250 +0 0.490000 0.370000 0 0 0 0 0.430000 0 0 0.770000 0 0 0 0 0.350000 0 0 0 1 0 0 0 0 0 0 0 0 0.660000 0 0 0 0 0 0 0 0.280000 0.840000 0 0 0 0 0 0 0 0.600000 0.530000 0 +0 0.631250 0.365625 +0 0 0 0 0.520000 0 0 0 0 0 0 0 0.750000 0.320000 0.720000 0.700000 0 0 0 0 0.730000 0 0 0 0 0 0 0 0.690000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 1 0 0 0 +0 0.496875 0.509375 +0 0 0 0.610000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.410000 0 0 0 0 0 0 0 0 0.590000 0 0 0 0 0 0 0 0 0 0 0 +0 0.503125 0.490625 +0 0 0 0 0 0 0.440000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.700000 0 +0 0.612500 0.606250 +0 0 0 0 0.660000 0 0 0 0 0 0 0 0.780000 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 0.810000 0 0 0 0 +0 0.475000 0.515625 +0.780000 0 0 0 0 0.790000 0 0 0 0.860000 0 0 0 0.740000 0 0 0 0 0.770000 0 0 0.800000 0 0 0 0 0.800000 0 0 0.920000 0 0 0 0 0 0.980000 0.640000 0 0 0 0 0 0 0 0.450000 0 0 0 +0 0.509375 0.584375 +0 0.720000 0 0 0 0 0 0.250000 0 0.820000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0 0.970000 0 0 0 0 0 +0 0.437500 0.365625 +0 0 0.340000 0 0 0 0 0 0 0 0.430000 0 0 0 0 0 0 0 0.560000 0 0 0 0 0 0 0.430000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0.375000 0.465625 +0 0 0.560000 0 0.470000 0 0 0 0 0 0.490000 0.370000 0 0 0 0 0 0 0.270000 0.310000 0 0 0 0 0 0 0.350000 0 0 0 0.250000 0 0 0 0.390000 0 0 0 0 0 0 0 0.590000 0 0 0 0 0 +0 0.446875 0.528125 +0 0 0 0 0 0.520000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0 0.940000 0 0 +0 0.559375 0.537500 +0 0 0.510000 0 0.490000 0 0 0 0 0 0.400000 0.250000 0 0 0 0 0 0 0 0.260000 0 0 0 0 0 0 0 0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 +0 0.437500 0.518750 +0 0 0.760000 0 0 0 0 0 0 0 0.930000 0 0 0 0 0 0 0 0.250000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 +0 0.456250 0.453125 +0 0 0 0.590000 0 0 0 0 0 0 0 0.520000 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.590000 0 0 0 0 0 0 0 0.770000 0 0 0 0 +0 0.456250 0.478125 +0 0 0 0 1 0 0 0 0 0 0 0.400000 0.430000 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0.310000 0.400000 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 +0 0.400000 0.540625 +0 0 0.810000 0 0.430000 0.250000 0.300000 0 0 0 0.430000 0.490000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.630000 0 0 0 +0 0.571875 0.409375 +0 0 0 0.620000 0 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0 0 0.590000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.920000 0 0 +0 0.596875 0.465625 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.290000 0 0 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0 0.300000 0.650000 0 0 0 0 0 0 0 0.730000 +0 0.687500 0.484375 +0 0 0 0 0.560000 0 0 0.340000 0 0 0 0 0.790000 0 0 0.400000 0 0 0 0 0.280000 0.360000 0 0.300000 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.630000 0 0 +0 0.559375 0.521875 +0 0 0 0 0.820000 0 0 0 0 0 0 0.390000 0.470000 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.610000 0 0 0 0 +0 0.450000 0.528125 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.250000 0.270000 0 0.300000 0 0 0 0.430000 0 0 0 0.600000 0 0 0 0 0 0 0 0.530000 0 0 0 0 0 0 0 0.610000 0 0 0 0 +0 0.471875 0.496875 +0.500000 0.560000 0.560000 0 0 0 0 0 0 0 0 0.740000 0.250000 0.280000 0.380000 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.340000 0.370000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.780000 0 0 +0 0.600000 0.415625 +0 0 0 0.490000 0 0 0 0 0 0 0 0.550000 0 0 0 0 0 0 0 0.500000 0 0 0 0 0 0 0 0.550000 0 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0 0.670000 0 0 0 0 +0 0.465625 0.484375 +0 0 0 0 0 0 0 0 0 0 0 0 0.280000 0 0 0 0 0 0 0.590000 0 0 0 0 0 0 0 0.570000 0 0 0 0 0 0 0.390000 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 +0 0.443750 0.534375 +0 0 0 0.330000 0 0 0 0 0 0 0 0.640000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 1 0 0 0 0 +0 0.500000 0.471875 +0 0 0 0.940000 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.590000 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0 0.950000 0 0 0 0 0 +0 0.418750 0.503125 +0 0 0 0.860000 0 0 0 0.450000 0 0 0 0.260000 0.640000 0 0 0.400000 0 0 0 0 0.870000 0 0 0.270000 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0 0 0.760000 0 +0 0.618750 0.450000 +0.650000 0 0 0 0 0 0 0 0.310000 0.580000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.780000 0 0 0 0 0 0 0 0.550000 0.250000 0 0 0 0 +0 0.481250 0.306250 +0 0.550000 0.400000 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.340000 0.570000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 0 0.810000 0 0 0 0 +0 0.506250 0.384375 +0 0 0 0 0 0 1 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0.630000 0 0 0 0 0 0 0 0.930000 0 0 0 0 0 0 0 0.880000 0 0 0 +0 0.493750 0.609375 +0 0 0 0 0.470000 0 0 0 0 0 0 0 0.690000 0.320000 0.620000 0.660000 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.580000 0 0 0 0 0 0 0 0.960000 0 0 0 0 0 0 0 0.970000 0 0 0 +0 0.496875 0.512500 +0 0 0 0 0 0 0 0 0 0 0 0 0 0.290000 0 0 0 0 0 0 0 0.530000 0 0 0 0 0 0 0.340000 0 0 0 0 0 0 0 0.660000 0 0 0 0 0 0 0 0.720000 0 0 0 +0 0.503125 0.625000 +0 0 0 0 0 0.440000 0.420000 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.610000 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 0.800000 0 0 0 0 +0 0.437500 0.609375 +0 0 0 0 0.730000 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 0 1 0 0 0 +0 0.509375 0.531250 +0 0 0 0 0.730000 0 0.270000 0 0 0 0 0 0.690000 0 0 0 0 0 0 0 0.610000 0 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.620000 0 0 0 +0 0.534375 0.528125 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.330000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0.350000 0.480000 0 0 0 0 0 0 0.880000 0 0 0 +0 0.478125 0.675000 +0 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0 0.460000 0.550000 0 0 0 0 0 0 0 0.720000 0.380000 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 0 1 0 0 0 0 +0 0.537500 0.253125 +0 0 0 0.340000 0.320000 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0.740000 0 0 0 0 0 +0 0.440625 0.512500 +0 0 0 0.810000 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0.290000 0.490000 0 0 0 0 0 0 0.920000 0 0 0 0 0 +0 0.450000 0.475000 +0 0 0 0.560000 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0.484375 0.487500 +0 0.660000 0 0 0 0 0 0 0 0.590000 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.320000 0.390000 0 0 0 0 0 0 0 0.930000 0 0 0 0 0 0 0 0.450000 0 0 0 0 0 +0 0.425000 0.406250 +0 0 0 0 0 0 0 0 0.850000 0 0 0.250000 0 0 0 0 0.840000 0 0.290000 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.890000 0 0 0.290000 0 0 0 0 0 0.640000 0 0 0 0 0 0 +0 0.396875 0.334375 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.340000 0 0 0 0 0 0 0 0.390000 0 0 0 0 +0 0.512500 0.368750 +0 0 0 0.490000 0.490000 0 0 0.270000 0 0 0 0 0.880000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.360000 0.540000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0.690000 0 0 +0 0.575000 0.484375 +0 0 0 0 0 0 0 0 0 0 0.310000 0 0 0 0 0 0 0 0.340000 0 0 0 0 0 0 0 0.490000 0 0 0 0 0 0 0 0.440000 0 0 0 0 0 0 0 0.460000 0 0 0 0 0 +0 0.437500 0.415625 +0 0 0 0 0.550000 0 0 0 0 0 0 0 0.580000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.690000 0 0 0 0 0 0 0 0.930000 0 0 0 0 0 0 0 0.600000 0 0 0 +0 0.521875 0.518750 +0 0 0 0.700000 0 0 0 0 0 0 0 0.570000 0 0 0 0 0 0 0.590000 0 0 0 0 0 0 0 0.540000 0 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.690000 0 0 0 0 +0 0.453125 0.468750 +0 0 0 0 0 0 0 0 0 0 0 0 0 0.290000 0 0 0 0 0 0 0 0.530000 0 0 0 0 0 0 0.340000 0 0 0 0 0 0 0 0.660000 0 0 0 0 0 0 0 0.720000 0 0 0 +0 0.503125 0.625000 +0 0 0 0.730000 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.690000 0 0 0 0 0 0 0 0.880000 0 0 0 0 +0 0.481250 0.462500 +0 0 0 0 0 0.960000 0 0 0 0 0 0 0 0.780000 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.950000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0.740000 0 0 0 0 +0 0.475000 0.568750 +0 0 0 0 0.440000 0 0 0 0 0 0 0 0.540000 0 0 0 0 0 0 0 0.740000 0 0.290000 0 0 0 0 0 0.640000 0 0 0 0 0 0 0 0.610000 0 0 0 0 0 0 0 0.770000 0 0 0 +0 0.525000 0.518750 +0 0 0 0 0 0.660000 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.780000 0 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0 0.970000 0 0 0 0 0 0 0 1 0 0 +0 0.550000 0.540625 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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.493750 0.493750 +0 0 0 0 0.850000 0 0 0 0 0 0 0 0.980000 0 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0 0.990000 0 0 0 +0 0.503125 0.534375 +0 0 0 0 0.830000 0.500000 0 0 0 0 0 0 0 0.250000 0.890000 0 0 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0.831250 0.453125 +0 0 0 0 0.730000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.790000 0 0 0 0 +0 0.478125 0.512500 +0 0 0 0 0 0 0 0.550000 0 0 0 0 0 0 0 0.610000 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.580000 0 0 0 0 0 0 0 0.780000 0 0 0 0 0 0 0.290000 0.540000 0 +0 0.553125 0.665625 +0 0 0 0 0.790000 0 0 0 0 0 0 0.780000 0 0 0 0 0 0 0 0.950000 0 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0.870000 0 0 0 0 0 +0 0.434375 0.518750 +0 0 0 0 0.400000 0 0 0 0.560000 0 0 0 0.530000 0 0 0 0.890000 0 0 0 0.630000 0 0 0 0.720000 0 0 0.620000 0 0 0 0 1 0 0 0.800000 0 0 0 0 0.480000 0.370000 0 0.700000 0 0 0 0 +0 0.475000 0.540625 +0 0.800000 0 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0 0.970000 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 +0 0.453125 0.368750 +0 0 0.250000 0 0.740000 0 0 0 0 0 0 0.590000 0 0 0 0 0 0 0 0.780000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.930000 0 0 0 0 0 0 0 0.740000 0 0 0 0 +0 0.462500 0.512500 +0 0 0 0.520000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 0.780000 0 0 0 0 0 0 0.600000 0.270000 0 0 0 0 0 0 0.770000 0 0 0 0 0 +0 0.434375 0.503125 +0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.660000 0 0 0 0 0 0 0 0.590000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.970000 0 0 0 0 0 0 0.720000 0 +0 0.615625 0.631250 +0 0 0.310000 0.510000 0 0 0.310000 0 0 0 0 0.990000 0 0 0.430000 0 0 0 0 0.260000 0.610000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.780000 0 0 0 0 0 0 0 0 0.690000 0 0 +0 0.568750 0.437500 +0 0 0.860000 0 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.390000 0.620000 0 0 0 0 0 0 0 0.930000 0 0 0 0 0 0 0 0.810000 0 0 0 +0 0.550000 0.425000 +0.820000 0 0 0 0 0 0 0 0 0.970000 0 0 0 0 0 0 0 0.560000 0.610000 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0 0.790000 0 0 0 0 +0 0.487500 0.321875 +0 0.680000 0 0 0 0 0.270000 0 0 0.560000 0 0 0 0 0 0 0.880000 0 0 0.390000 0 0 0 0 0.590000 0 0 0 0 0 0 0 0.980000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 +0 0.337500 0.428125 +0 0 0 0.720000 0 0 0.750000 0 0 0 0 0.570000 0 0 0.810000 0 0 0 0 0 0.810000 0.500000 0 0 0 0 0 0 0 0.540000 0 0 0 0 0 0 0 0.630000 0 0 0 0 0 0 0 0 0 0 +0 0.543750 0.637500 +0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0.580000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.390000 0.490000 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.780000 0 0 0 +0 0.481250 0.615625 +0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.890000 0 0 +0 0.537500 0.559375 +0 0 0 0 0.540000 0.290000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.930000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0.730000 0 0 0 0 0 0 0 0.960000 0 0 0 0 +0 0.487500 0.556250 +0 0 0.510000 0 0.490000 0 0 0 0 0 0.400000 0.250000 0 0 0 0 0 0 0 0.260000 0 0 0 0 0 0 0 0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 +0 0.443750 0.525000 +0 0 0 0.510000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.710000 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.630000 0 0 0 +0 0.515625 0.481250 +0 0 0.720000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0.630000 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 +0 0.403125 0.434375 +0 0 0 0 0.620000 0 0 0 0 0 0 0 0.610000 0 0 0 0 0 0 0 0.610000 0 0 0 0 0 0 0 0.930000 0 0 0 0 0 0 0 0.980000 0 0 0 0 0 0 0 0.380000 0 0 0 +0 0.506250 0.512500 +0 0.570000 0.410000 0 0 0 0 0 0 0 0.900000 0 0 0 0 0.270000 0 0 0 1 0 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.820000 0 0 0 +0 0.546875 0.387500 +0 0 0 0.720000 0 0 0 0 0 0 0.250000 0.700000 0 0 0 0 0 0 0 0.510000 0 0 0 0 0 0 0 0.730000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.800000 0 0 0 0 +0 0.487500 0.484375 +0 0 0.860000 0 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.390000 0.620000 0 0 0 0 0 0 0 0.930000 0 0 0 0 0 0 0 0.810000 0 0 0 +0 0.550000 0.425000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.640000 0 0 0 0 0 0 0.330000 0.290000 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.750000 0 0 +0 0.562500 0.593750 +0 0.290000 0 0 0 0 0 0 0 0.330000 0 0 0 0 0 0 0 0 0.270000 0 0 0 0 0 0 0 0.540000 0 0 0 0 0 0 0 0.500000 0 0 0 0 0 0 0 0 0.390000 0 0 0 0 +0 0.484375 0.368750 +0 0 0 0.260000 0 0 0 0 0 0 0 0.290000 0 0 0 0 0 0 0 0.310000 0 0 0 0 0.260000 0.380000 0 0.370000 0 0 0.270000 0.390000 0 0 0 0.590000 0 0 0 0 0 0 0 0.600000 0 0 0 0 +0 0.468750 0.500000 +0 0 0 0 0.570000 0 0 0 0 0 0 0 0.580000 0 0 0 0 0 0 0 0.730000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.630000 0 0 0 0 0 0 0 0.820000 0 0 0 +0 0.509375 0.518750 +0 0 0 0 0 0 0.340000 0 0 0 0 0 0 0 0.510000 0.270000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.370000 0 0 0 0 0 0 0 0 +0 0.765625 0.543750 +0 0 0.250000 0 0 0 0 0 0 0 0 0 0 0.620000 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.730000 0 0 +0 0.546875 0.587500 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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.493750 0.493750 +0 0 0 0 0 0 0.990000 0 0 0 0 0 0 0.630000 0.390000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0.440000 0.310000 0 0 0 0 0 0 0.960000 0 0 0 +0 0.515625 0.656250 +0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0.510000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0.900000 0 +0 0.603125 0.634375 +0 0 0 0 0.540000 0.290000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.930000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0.730000 0 0 0 0 0 0 0 0.960000 0 0 0 0 +0 0.487500 0.556250 +0 0 0 0.840000 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.930000 0 0 0 0 0 0 0 0 0.640000 0 0 0 0 0 0 0 0.730000 0 0 0 0 0 0 0 0.630000 0 0 0 +0 0.540625 0.450000 +0 0 0.760000 0 0 0 0 0.520000 0 0.810000 0 0 0 0 0 0.470000 0.430000 0.300000 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0.221875 0.481250 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.330000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0.350000 0.480000 0 0 0 0 0 0 0.880000 0 0 0 +0 0.478125 0.675000 +0.550000 0.250000 0 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 0 0.510000 0.480000 0 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0 0 0.500000 0 0 0 0 0 0 0 0.640000 0 0 0 0 +0 0.515625 0.343750 +0 0 0 0 0 0 0.950000 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.990000 0 0 0 0 0 0 0.440000 0.700000 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 0 0.870000 0 0 0 +0 0.481250 0.618750 +0 0.840000 0 0 0 0 0.690000 0.510000 0 0.770000 0 0 0 0 0.950000 0 0 0.720000 0 0 0 1 0 0 0 0 0.820000 0 0 0.970000 0 0 0 0 0.870000 0 0.410000 0.520000 0 0 0 0 0.790000 0 0.870000 0 0 0 +0 0.512500 0.653125 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.500000 0 0 0 0 0 0 0 0.560000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.790000 0 0 0 +0 0.493750 0.581250 +0 0 0 0 0 0.780000 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.610000 0 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0 0.860000 0 0 +0 0.550000 0.562500 +0 0 0 0.720000 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.580000 0 0 0 0 +0 0.484375 0.462500 +0 0 0 0.370000 0.550000 0 0 0 0 0 0 0 0.430000 0.640000 0 0 0 0 0 0 0 0.650000 0.340000 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0 +0 0.746875 0.440625 +0 0 0 0 0.480000 0 0 0 0 0.320000 0 0 0.620000 0 0 0 0 0 0 0 0.610000 0 0.510000 0.920000 0 0 0 0 0.730000 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.780000 0 0 0 +0 0.509375 0.534375 +0 0 0 1 0 0 0 0.320000 0 0 0 0.260000 0.830000 0 0 0.480000 0 0 0 0 0.440000 0.500000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.330000 0.660000 +0 0.671875 0.434375 +0 0 0 0 0 0 0 0.640000 0 0 0 0 0 0 0 0.820000 0 0 0 0.260000 0 0 0 0.520000 0 0 0 0.270000 0 0 0 0.720000 0 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 0 0.750000 +0 0.621875 0.621875 +0 0 0.510000 0 0.550000 0 0 0 0 0 0 0.440000 0 0 0 0 0 0 0 0.540000 0 0.260000 0 0 0 0 0 0.610000 0 0.280000 0 0 0 0 0 0.540000 0 0 0 0 0 0 0.360000 0.430000 0 0 0 0 +0 0.440625 0.534375 +0 0 0 0 0 0 0.700000 0.460000 0 0 0 0 0 0.390000 0.840000 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.690000 0 0 +0 0.531250 0.640625 +0 0 0 0.750000 0 0 0 0 0 0 0 0.330000 0.570000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 0 0 0.930000 0 0 +0 0.559375 0.475000 +0 0 0 0 0 0 0 0 0 0 0 0.290000 0 0 0 0 0 0 0 0 0.340000 0 0 0 0 0 0 0 0.440000 0 0 0 0 0 0 0 0.480000 0 0 0 0 0 0 0 0.500000 0 0 0 +0 0.521875 0.459375 +0 0 0 0 0 1 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 0 0.860000 0 0 0 0 +0 0.443750 0.596875 +0 0 0 0 0.450000 0 0 0 0 0 0 0 0.390000 0 0 0 0 0 0 0.530000 0 0 0 0 0 0 0 0.590000 0 0 0.250000 0 0 0 0 0.850000 0 0 0 0 0 0 0 0.840000 0 0 0 0 +0 0.484375 0.506250 +0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.490000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.950000 0 0 +0 0.534375 0.571875 +0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.460000 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 1 0 0 0 +0 0.531250 0.556250 +0 0 0 0 0 0 0.510000 0 0 0 0 0 0 0 0.490000 0 0 0 0 0 0 0 0.320000 0 0 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.620000 0 0 0 0 0 0 0 +1 0.503125 0.503125 +0 0.670000 0.370000 0 0 0 0 0.570000 0 0 0.920000 0 0 0 0 0.350000 0 0 0 1 0 0 0 0 0 0 0 0.250000 0.730000 0 0 0 0 0 0 0 0.500000 0.770000 0 0 0 0 0 0 0 0.580000 0.560000 0 +0 0.637500 0.356250 +0 0 0.720000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0.630000 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 +0 0.403125 0.434375 +0 0 0 0 0 0 1 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0.310000 0.540000 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.820000 0 0 0 +0 0.481250 0.615625 +0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 0.260000 0.750000 0 0 0 0 0 0 0 0.770000 +0 0.653125 0.553125 +0 0 0 0 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.950000 0 0 0 0 0 +0 0.446875 0.471875 +0 0 0 0 0.550000 0 0 0 0 0 0 0 0.600000 0 0 0 0 0 0 0 0.590000 0 0 0 0 0 0.360000 0.350000 0.670000 0.360000 0.580000 0.590000 0 0 0 0 0.850000 0 0 0 0 0 0 0 0.350000 0 0 0.610000 +0 0.506250 0.518750 +0 0 0 0.620000 0 0 0 0 0 0 0 0.400000 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0 0.980000 0 0 0 0 0 0 0 1 0 0 0 0 0 +0 0.456250 0.459375 +0 0 0.280000 0 0 0 0.710000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.760000 0 0 +0 0.543750 0.600000 +0 0 0 0 0 0.750000 0 0 0.840000 0 0 0 0 0.770000 0 0 0.350000 0.600000 0 0 0 0.840000 0 0 0 0.850000 0 0 0 0.770000 0 0 0 0 0.870000 0 0.610000 0 0 0 0 0 0.570000 0 0.770000 0 0 0 +0 0.525000 0.600000 +0 0 0 0 0 0 0 0.380000 0 0 0 0 0 0 0 0.550000 0 0 0 0 0 0 0.280000 0.250000 0 0 0 0 0 0 0.580000 0 0 0 0 0 0 0 0.620000 0 0 0 0 0 0 0.340000 0.330000 0 +0 0.559375 0.662500 +0 0 0 0.270000 0 0 0 0 0 0 0 0.310000 0 0 0 0.340000 0 0 0 0 0 0 0.750000 0.520000 0 0 0 0 0 0.880000 0 0 0 0 0 0.660000 0.730000 0 0 0 0 0.250000 0.970000 0.250000 0 0 0 0 +0 0.340625 0.778125 +0 0 0 0 0 0 1 0 0 0 0 0 0 0.610000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.420000 0.500000 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.850000 0 0 0 +0 0.481250 0.615625 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.320000 0 0 0 0 0 0 0 0.390000 0 0 0 0 0 0 0 0 0.310000 0 0 0 0 +0 0.487500 0.340625 +0 0 0 0 0 0 0 0 0 0.580000 0 0 0 0 0 0 0 0 0.860000 0.260000 0 0 0 0 0 0 0 0.810000 0.880000 0 0 0 0 0 0 0 0 0.840000 0.490000 0 0 0 0 0 0 0 0.300000 0.590000 +0 0.709375 0.259375 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.500000 0 0 0 0 0 0 0 0.640000 0 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0.480000 0.440000 0 +0 0.556250 0.690625 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.570000 0 0 0 0 0 0 0 0.610000 0 0 0 0 0 0 0 0.660000 0 0 0 0 0 0 0.380000 0 0 0 0 0 0 0 0.850000 0 +0 0.612500 0.659375 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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.496875 0.496875 +0 0 0 0 0 0.740000 0 0.530000 0 0 0 0 0 0.650000 0 0.420000 0 0 0 0 0 0.350000 0.490000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0 0.600000 +0 0.653125 0.521875 +0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.250000 0.560000 0 0 0 0 0 0 0 0.730000 0 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 0 0 0.660000 0 0 0 0 0 +0 0.440625 0.309375 +0 0 0 0 0.620000 0 0 0.600000 0 0 0 0.290000 0.460000 0 0 0.480000 0 0 0 0.670000 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.720000 0 0 0 0 +0 0.450000 0.521875 +0 0 0.370000 0.510000 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.250000 0 0 0 0 0 0 0 0 0 0 0 0 +0 0.493750 0.434375 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.280000 0 0 0 0 0 0 0 0.330000 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.690000 0 0 0 +0 0.537500 0.525000 +0 0 0 0 0 0 0 0 0.360000 0 0 0.270000 0 0 0 0 0.730000 0 0 0.570000 0 0 0 0 0.660000 0 0 0.780000 0 0 0 0 0.740000 0 0 0.690000 0 0 0 0 0 0.820000 0 0.770000 0 0 0 0 +0 0.493750 0.465625 +0 0.510000 0 0 0 0 0 0 0 0.570000 0 0 0 0 0 0 0 0.540000 0 0 0 0 0 0 0 0.640000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0.371875 0.403125 +0 0.670000 0.370000 0 0 0 0 0.570000 0 0 0.920000 0 0 0 0 0.350000 0 0 0 1 0 0 0 0 0 0 0 0.250000 0.730000 0 0 0 0 0 0 0 0.500000 0.770000 0 0 0 0 0 0 0 0.580000 0.560000 0 +0 0.637500 0.356250 +0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0.460000 0.760000 0.770000 0 0 0 0.570000 1 0.440000 0 0.940000 0 0 0 0.280000 0 0 0 0.820000 0 0 0 0 0 0 0 0.650000 0 0 0 +0 0.484375 0.640625 +0 0 0.370000 0.510000 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.250000 0 0 0 0 0 0 0 0 0 0 0 0 +0 0.493750 0.434375 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.500000 0 0 0 0 0 0 0 0.640000 0 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0.480000 0.440000 0 +0 0.556250 0.690625 +0 0 0 0 0 0 0 0.470000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0.360000 0.450000 0 0 0 0 0 0.500000 0.370000 0.620000 0 0 0 0 0.370000 0.710000 0 0.770000 0 0 0 0 0.880000 0 0 1 +0 0.656250 0.615625 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.510000 0 0 0 0 0 0 0 0.500000 0 0 0 0 0 0 0 0.590000 0 0 0 0 0 0 0 0.580000 0 0 0 0 0 0 0.540000 0 0 +0 0.559375 0.637500 +0 0 0.510000 0 0 0 0 0 0 0 0.540000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0 0.410000 0 0 0 0.400000 0 0 0 0.970000 0 0 0 0.780000 0 0 0 0.600000 0 0 0 0.810000 +0 0.612500 0.743750 +0 0 0 0.510000 0.840000 0 0 0 0 0 0 0 0.630000 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.780000 0 0 0 0 +0 0.493750 0.562500 +0 0 0.420000 0 0 0.620000 0 0 0 0 0 0 0.290000 0.490000 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 +0 0.531250 0.546875 +0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.540000 0 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.630000 0 0 0 0 0 0 0.690000 0 0 +0 0.584375 0.575000 +0 0 0 0 0 0 0 0.460000 0 0 0 0 0 0 0 0.410000 0 0 0 0 0 0 0 0.270000 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.500000 0.500000 +0 0.340000 0 0 0.500000 0 0 0 0 0 0.750000 0 0.710000 0 0 0 0 0 0.710000 0 0.530000 0 0 0 0 0 0.440000 0.470000 0 0 0 0 0 0 0 0.400000 0 0 0 0 0 0 0 0.400000 0 0 0 0 +0 0.481250 0.540625 +0 0.660000 0 0 0 0 0 0 0 0.590000 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.320000 0.390000 0 0 0 0 0 0 0 0.930000 0 0 0 0 0 0 0 0.450000 0 0 0 0 0 +0 0.425000 0.406250 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.640000 0 0 0 0 0 0 0.330000 0.290000 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.750000 0 0 +0 0.565625 0.587500 +0 0 0 1 0 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 1 0 0 0 +0 0.534375 0.462500 +0 0 0 0 0.520000 0 0 0 0 0 0 0 0.560000 0 0.280000 0 0 0.740000 0.440000 0.260000 0.600000 0.340000 0.470000 0.670000 0 0 0 0 0.560000 0 0.260000 0.250000 0 0 0 0 0.790000 0 0.470000 0.500000 0 0 0 0 0 0 0 0 +0 0.509375 0.509375 +0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 0.360000 0.530000 0 0 0 0 0 0 0.800000 0 0 0 0 0.400000 0 0 0.830000 0 0 0 0 0.510000 0.320000 0.980000 0 0 0 +0 0.481250 0.618750 +0 0 1 0 0 0 0 0 0 0 0 0.780000 0 0.330000 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.350000 0.460000 0 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0 0.880000 0 0 0 +0 0.506250 0.409375 +0 0 0 0.730000 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.690000 0 0 0 0 0 0 0 0.880000 0 0 0 0 +0 0.481250 0.462500 +0 0 0 0.480000 0 0 0 0 0 0 0 0.570000 0 0 0 0 0 0 0 0.580000 0 0 0 0 0 0 0.440000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.280000 0 0 0 0 0 +0 0.431250 0.487500 +0 0.520000 0.840000 0.800000 0 0 0 0 0 0 0 0 0.620000 0.790000 0 0 0 0 0 0 0 0 0.830000 0.660000 0 0 0 0.420000 0 0 0 0 0 0 0 0.250000 0.330000 0 0 0 0 0 0 0 0.600000 0 0 0 +0 0.831250 0.350000 +0 0 0 0.760000 0 0 0.590000 0 0 0 0 0 0.580000 0.710000 0 0 0 0 0 0 0.520000 0.660000 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.500000 0 0 +0 0.543750 0.612500 +0 0 0 0.690000 0.510000 0.690000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.970000 0 0 0 0 0 0 0 0.980000 0 0 0 0 0 0 0.580000 0.330000 0 0 0 0 0 0 0.590000 0 0 0 0 +0 0.493750 0.571875 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.370000 0 0 0 0 0 0 0.360000 0 0 0 0 0 0 0 0.350000 0 0 0 0 0 0 0.590000 0 0 0 +0 0.493750 0.684375 +0 0 0 0.610000 0.470000 0 0 0.470000 0 0 0.840000 0.330000 0 0 0 0.450000 0 1 0 0 0 0 0 0.280000 0.810000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0.218750 0.559375 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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.512500 0.512500 +0 0 0 0 0.620000 0 0 0 0 0 0 0 0.790000 0.290000 0.530000 0.610000 0 0 0 0 0.680000 0 0 0 0 0 0 0 0.580000 0 0 0 0 0 0 0 0.690000 0 0 0 0 0 0 0 0.980000 0 0 0 +0 0.496875 0.509375 +0 0 0.280000 0 0.510000 0 0 0 0.390000 0 0 0 0.450000 0 0 0 0 0 0 0 0.510000 0 0 0 0 0 0 0.630000 0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0.481250 0.525000 +0 0 0 0.960000 0 0 0 0.450000 0 0 0 0.280000 0.760000 0 0 0.450000 0 0 0 0 0.600000 0.410000 0 0.280000 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0 0.990000 0 0 0 0 0 0 0 0 0.770000 +0 0.681250 0.428125 +0 0 0 0.890000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.490000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.930000 0 0 0 0 +0 0.475000 0.471875 +0 0 0 0 0.500000 0.620000 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0.310000 0.500000 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0.470000 0.380000 0 0 0 0 +0 0.434375 0.565625 +0.390000 0 0 0 0.350000 0 0 0 0 0 0 0 0.310000 0.640000 0.520000 0.610000 0 0 0 0 0 0.540000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.520000 0 0 0 0 0 0 0 0.670000 0 0 +0 0.556250 0.534375 +0 0.680000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.690000 0 0 0 0 0 0 0 0.940000 0 0 0 0 0 +0 0.425000 0.390625 +0 0.400000 0 0.320000 0 0 0 0 0.630000 0 0 0.360000 0 0 0 0 0 0.350000 0 0 0 0 0 0 0 0.690000 0 0 0 0 0 0 0 0.760000 0 0.340000 0 0 0 0 0 0.900000 0 0.330000 0 0 0 0 +0 0.400000 0.378125 +0 0 0 0.830000 0 0 0 0.250000 0 0 0.820000 0 0 0 0 0 0 0.500000 0.510000 0 0 0 0 0 0 0.980000 0 0 0 0 0 0 0.610000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 +0 0.296875 0.518750 +0 0 0 0 0 0 0 0 0 0 0.310000 0 0 0 0 0 0 0 0.340000 0 0 0 0 0 0 0 0.490000 0 0 0 0 0 0 0 0.440000 0 0 0 0 0 0 0 0.460000 0 0 0 0 0 +0 0.437500 0.415625 +0 0.940000 0 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.500000 0 0 0 0 0 0 0 0.440000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.960000 0 0 0 0 0 +0 0.440625 0.393750 +0 0 0 0 0.770000 0 0 0.390000 0 0 0 0 0.580000 0.560000 0 0.340000 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0 0.580000 0.440000 0 0 0 0 0 0 0 1 +0 0.687500 0.471875 +0 0 0 0.510000 0.690000 0 0 0 0 0 0 1 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.690000 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0.710000 0.360000 0 0 0 0 0 0 +0 0.331250 0.537500 +0 0 0 0 0.540000 0 0 0 0 0 0 0 0.710000 0.330000 0.610000 0.650000 0 0 0 0 0.690000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.920000 0 0 0 +0 0.500000 0.509375 +0 0 0.650000 0 0 0 0 0 0 0 0.450000 0 0 0 0 0 0 0 0.570000 0 0 0 0 0 0 0.300000 0.380000 0 0 0 0 0 0 0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0.384375 0.462500 +0 0 0.530000 0 0.570000 0 0 0 0 0 0.540000 0 0.420000 0 0 0 0 0 0.530000 0 0.350000 0 0 0 0 0 0 0.460000 0 0 0 0 0 0 0 0.440000 0 0 0 0 0 0 0 0.530000 0 0 0 0 +0 0.481250 0.537500 +0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0 0.970000 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0 0.650000 0 0 +0 0.609375 0.459375 +0 0 0 0 0 0 0 0 0 0 0 0.320000 0 0 0 0 0 0 0.350000 0.270000 0 0 0 0 0 0 0.560000 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 0.630000 0 0 0 0 0 +0 0.400000 0.525000 +0 0 0 0 0.410000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0 0.960000 0 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0 0 0.590000 0 0 0 0 0 0 0 0 +0 0.731250 0.446875 +0 0 0 0 0.460000 0.570000 0.800000 0.570000 0 0 0 0 0.350000 0 0 0 0 0 0 0 0.390000 0 0 0 0 0 0 0 0.480000 0 0 0 0 0 0 0 0.520000 0 0 0 0 0 0 0 0.560000 0 0 0 +0 0.521875 0.509375 +0 0 0 0 0 0 1 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 0.430000 0.610000 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.950000 0 0 0 +0 0.481250 0.615625 +0 0 0 0 0 0.760000 0 0.500000 0 0 0 0 0 0.620000 0 0.470000 0 0 0 0 0.420000 0.260000 0 0.270000 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.630000 0 0 0 0 0 0 0 0.670000 0 0 0 +0 0.518750 0.553125 +0 0.720000 0 0 0 0 0 0.400000 0 0.770000 0 0 0 0 0 0.560000 0 0.710000 0 0 0 0 0 0.350000 0 0.510000 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0 +0 0.350000 0.415625 +0 0 0 0 0 0 1 0 0 0 0 0 0 0.570000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.450000 0.640000 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.860000 0 0 0 +0 0.481250 0.615625 +0 0 0 0 0 0 0.980000 0 0 0 0 0 0 0.590000 0 0 0 0 0 0 0 0.990000 0 0 0 0 0 0 0.370000 0.600000 0 0 0 0 0 0 0.730000 0 0 0 0 0 0 0 0.920000 0 0 0 +0 0.481250 0.615625 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.290000 0 0 0 0 0 0 0 0 0.300000 0 0 0 0 0 0 0 0.370000 0 0 0 0 0 0 0.360000 0 0 0 0 0 0 +0 0.418750 0.387500 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.590000 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.950000 0 0 0 0 0 0 0 0.940000 +0 0.628125 0.653125 +0 0 0 0.650000 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.970000 0 0 0 0 0 0 0 0.720000 0 0 0 +0 0.515625 0.484375 +0 0 0 0 0.430000 0 0 0 0 0 0.250000 0.690000 0 0 0 0 0 0 0 0.640000 0 0 0 0 0 0 0 0.980000 0 0 0 0 0 0 0 0.570000 0 0 0 0 0 0 0 1 0 0 0 0 +0 0.496875 0.509375 +0 0 0 0.550000 0.290000 0 0 0.320000 0 0 0 0 1 0 0 0.560000 0 0 0 0 0 0.810000 0 0.270000 0 0 0 0 0 0.460000 0.540000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0 0.750000 +0 0.678125 0.456250 +0.950000 0 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 0 0.690000 0 0 0 0 0 0 0 0.550000 0 0 0 0 0 +0 0.490625 0.334375 +0 0 0 0.850000 0 0 0 0 0 0 0 0.960000 0 0 0 0 0 0 0.390000 0.490000 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 +0 0.434375 0.515625 +0 0 0 0.320000 0.550000 0 0 0.360000 0 0 0 0 0.850000 0 0 0.480000 0 0 0 0 0.480000 0.340000 0 0.330000 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.500000 0 0 0 0 0 0 0 0 0.850000 0 +0 0.621875 0.471875 +0 0 0 0 0.710000 0 1 0 0 0 0 0 0.780000 0 0 0.790000 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.730000 0 0 0 +0 0.540625 0.487500 +0 0 0 0 0.780000 0 0 0 0 0 0 0.320000 0.490000 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.500000 0.280000 0 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0 0.780000 0 0 0 +0 0.512500 0.506250 +0 0 0 0.920000 0 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.890000 0 0 +0 0.571875 0.443750 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0.600000 0 +1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.310000 0 0 0 0 0 0 0 0.290000 0 0 0 0 0 0 0 0 0.490000 0 0 0 0 0 0 0 0.440000 0 0 0 0 +0 0.521875 0.356250 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.770000 0.260000 0 0 0 0 0 0 +1 0.487500 0.487500 +0 0 0 0.400000 0 0 0 0.640000 0 0 0 0.440000 0 0 0.260000 0.550000 0 0 0 0.360000 0 0 0.860000 0 0 0 0 0 0 0.460000 0.500000 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0.440000 0.470000 0 0 +0 0.506250 0.678125 +0 0 0 0.480000 0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.430000 0 0 0 0 0 0 0 0.510000 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 0.720000 0 0 0 +0 0.500000 0.537500 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.420000 0 0 0 0 0 0 0 0.620000 0 0 0 0 0 0 0 0.440000 0 0 0 0 0 0 0 0 0.870000 0 0 0 +0 0.525000 0.428125 +0 0 0 0 0.370000 0 0 0 0 0 0 0 0.350000 0 0 0 0 0 0 0.290000 0.330000 0 0 0 0 0 0 0.260000 0.460000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 +0 0.503125 0.506250 +0 0 0.930000 0 0 0 0 0.310000 0 0 0 0.680000 0 0 0 0.420000 0 0 0 0.620000 0.290000 0 0 0.270000 0 0 0 0 0.990000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.960000 0 +0 0.637500 0.387500 +0 0 0 0 0 0 0 0 0.870000 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 1 0.270000 0 0 0 0 0 0 0 0.760000 0 0 0 +0 0.587500 0.265625 +0 0 0 0.680000 0 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0 0.690000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0 0 0 0 0 +0 0.481250 0.487500 +0 0 0.360000 0.500000 0 0 0 0.250000 0 0 0.890000 0 0 0 0 0 0 1 0 0 0.330000 0 0 0 0 0.630000 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 +0 0.287500 0.493750 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.330000 0 0 0 0 0 0 +1 0.506250 0.506250 +0.290000 0 0 0 0 0 0 0 0.440000 0 0 0.330000 0 0 0 0 0.460000 0 0 0.570000 0 0 0 0 0.490000 0 0 0.660000 0 0 0 0 0.850000 0 0 0.560000 0 0 0 0 0.750000 0 0 0.880000 0 0 0 0 +0 0.493750 0.490625 +0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.380000 0.540000 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.760000 0 0 0 +0 0.481250 0.612500 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0.610000 0.290000 +1 0.496875 0.496875 +0 0 0 0 0 0 1 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 0.380000 0.560000 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.870000 0 0 0 +0 0.484375 0.612500 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.360000 0 0 0 0 0 0 0 0.580000 0 0 0 0 0 0 0 0.470000 0 0 0 0 0 0 +0 0.415625 0.306250 +0 0.640000 0 0 0 0 0 0 0 0.550000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.690000 0 0 0 0 0 0 +0 0.415625 0.403125 +0 0 0 0.440000 0 0 0 0 0.780000 0.350000 0 0.290000 0 0 0 0 0 0.590000 0.960000 0.760000 0 0 0 0 0 0 0 0 0.960000 0.970000 0.350000 0 0 0 0 0 0 0 0.700000 0.920000 0 0 0 0 0 0 0 0 +0 0.768750 0.228125 +0 0.280000 0.300000 0.410000 0 0 0 0 0 0 0 0 0.370000 0.430000 0.410000 0.410000 0 0 0 0 0 0 0 0 0 0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +1 0.487500 0.493750 +0 0 0 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0.430000 0 0.770000 0 0 0 0 0 0 0.760000 0 0.580000 0 0 0 0 0 0 0.620000 0.460000 0 0 0 0 0 0 0 0 0.320000 0 0 0 +0 0.565625 0.337500 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.960000 0 0 0 0 0 +1 0.509375 0.509375 +0 0 0 0 0 0.960000 0 0 0 0 0 0 0.390000 0.570000 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0.430000 0.390000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 +0 0.437500 0.593750 +0 0 0 0 0.920000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.980000 0 0 0 0 0 0 0 1 0 0 0 +0 0.506250 0.509375 +0 0 0.820000 0.300000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0.550000 0.320000 0 0 0 0 0 0 0 0.790000 0 0 +0 0.568750 0.387500 +0 0 0 0 0.540000 0 0 0.470000 0 0 0 0 0.760000 0 0 0.390000 0 0 0 0 0.630000 0 0 0 0 0 0 0 0.530000 0.390000 0 0 0 0 0 0 0.360000 0.450000 0 0 0 0 0 0 0 0.730000 0 0 +0 0.543750 0.531250 +0 0 0 0 0 0 0 0.580000 0 0 0 0 0 0 0.610000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0.290000 0.490000 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.750000 0 0 +0 0.531250 0.653125 +0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0.290000 0.610000 0 0 0 0 0 0 0.820000 0 0 0 +0 0.509375 0.606250 +0 0.330000 0 0 0 0 0 0 0 0 0.730000 0 0 0 0.520000 0 0 0 0.740000 0 0 0 0.610000 0 0 0 0.660000 0 0 0.350000 0.370000 0 0 0 0.800000 0 0 0.750000 0 0 0 0 1 0 0 0.710000 0 0 +0 0.531250 0.653125 +0 0 0 0 0 0 1 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0.300000 0.750000 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.880000 0 0 0 +0 0.509375 0.637500 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0 0.710000 0 +0 0.568750 0.684375 +0 0 0 0 0 0 0 0.360000 0.290000 0 0 0 0 0 0 0.320000 0 0.930000 0 0 0 0 0 0 0 0 1 0.420000 0 0 0 0 0 0 0 0.550000 0.770000 0 0 0 0 0 0 0 0 0.990000 0.560000 0 +0 0.662500 0.228125 +0 0 0 0 0.780000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.780000 0 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 0 0.790000 0 0 0 +0 0.496875 0.534375 +0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0.440000 0.670000 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.890000 0 0 0 +0 0.481250 0.615625 +0 0 0 0 0.770000 0 0 0.390000 0 0 0 0 0.580000 0.560000 0 0.340000 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0 0.580000 0.440000 0 0 0 0 0 0 0 1 +0 0.687500 0.471875 +0 0 0 1 0 0 0 0.320000 0 0 0 0.260000 0.830000 0 0 0.480000 0 0 0 0 0.440000 0.500000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.330000 0.660000 +0 0.671875 0.434375 +0.700000 0.820000 0.570000 0.550000 0 0 0 0 0 0 0 0 0.700000 0.800000 0 0 0 0 0 0 0 0 0.750000 0.990000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0.850000 0.284375 +0 0.380000 0.510000 0.260000 0.590000 0.290000 0.350000 0 0 0 0 0 0.610000 0 0 0.340000 0 0 0 0 0.650000 0.280000 0.720000 0.590000 0 0 0 0 0.690000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.820000 0 0 0 +0 0.503125 0.515625 +0 0.760000 0 0 0 0 0.290000 0 0 0.850000 0 0 0 0 0 0 0 0.450000 0.490000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.930000 0 0 0 0 0 0 0 0.870000 0 0 0 0 0 +0 0.462500 0.359375 +0 0.430000 0.530000 0 0.270000 0 0 0 0 0 0.710000 0 0 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0 0.680000 0 0 0 +0 0.531250 0.396875 +0 0 0 0.470000 0.270000 0 0 0.450000 0 0 0 0 0.840000 0 0 0.420000 0 0 0 0 0.850000 0 0 0 0 0 0 0 0.620000 0 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.800000 0 0 +0 0.584375 0.475000 +0 0 0 0.480000 0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.430000 0 0 0 0 0 0 0 0.510000 0 0 0 0 0 0 0 0.650000 0 0 0 0 0 0 0 0.720000 0 0 0 +0 0.500000 0.543750 +0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.730000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.730000 0 0 0 0 0 0 0 0.950000 0 0 +0 0.562500 0.543750 +0 0 1 0 0 0 0 0 0 0 0 0.930000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.960000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 +0 0.493750 0.418750 +0 0 0 0 0 0.340000 0.670000 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0.500000 0.390000 0 0 0 0 0 0 0.930000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.940000 0 0 0 +0 0.478125 0.606250 +0 0 0 0 0 0 0 0 0 0 0 0.280000 0 0 0 0 0 0 0 0.270000 0 0 0 0 0.520000 0 0 0.310000 0 0 0 0 0 0 0.260000 0.320000 0 0.340000 0.570000 0.680000 0 0 0.390000 0.250000 0 0 0 0 +0 0.453125 0.478125 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.440000 0 0 0 0 0 0 0 0.620000 0 0 0 0 0 0 0.250000 0.450000 0 0 0 0 0 0 0.690000 0 +0 0.612500 0.640625 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.470000 0 0 0 0 0 0 0 1 0.390000 0 0 0 0 0 0 0 0.730000 0.510000 0 0 0 0 0 0 0 0.940000 0.270000 0 0 0 0 +0 0.506250 0.196875 +0 0 0 0 0 0 0 0.660000 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0.610000 0.260000 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0.650000 0 0 0 +0 0.509375 0.668750 +0 0 0 0 0 0 0.280000 0 0 0 0 0 0 0.350000 0.260000 0 0 0 0 0 0 0.730000 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.810000 0 0 +0 0.546875 0.587500 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.310000 0 0 0 0 0 0 0 0.500000 0 0 0 0 0 0 0 0.580000 0 0 0 0 0 0 0 0.620000 0 0 0 0 0 0 +0 0.406250 0.353125 +0 0 0 0 0.660000 0 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0.960000 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.810000 0 0 0 +0 0.518750 0.521875 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.660000 0 0 0 0 0 0 0 0.500000 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.620000 0 +0 0.556250 0.728125 +0 0 0 0.840000 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.930000 0 0 0 0 0 0 0 0 0.640000 0 0 0 0 0 0 0 0.730000 0 0 0 0 0 0 0 0.630000 0 0 0 +0 0.540625 0.450000 +0 0 0 0 0 0 0.960000 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0.380000 0.530000 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.970000 0 0 0 +0 0.481250 0.615625 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.440000 0 0 0 0 0 0 0 0.490000 0 0 0 0 0 0 0 0.570000 0 0 0 0 +0 0.465625 0.418750 +0.380000 0.330000 0 0 0 0 0 0 0 0.890000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0.980000 0 0 0 0 0 0 0 0.490000 0.440000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 +0 0.437500 0.368750 +0 0 0.290000 0.620000 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 0 0.850000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0.260000 0.580000 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 +0 0.384375 0.490625 +0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0.990000 0 0 0 0 0 0 0 0.990000 0 0 0 0 0 0 0.610000 0.360000 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0 0.810000 0 0 0 +0 0.481250 0.609375 +0 0 0 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0.430000 0 0.770000 0 0 0 0 0 0 0.760000 0 0.580000 0 0 0 0 0 0 0.620000 0.460000 0 0 0 0 0 0 0 0 0.320000 0 0 0 +0 0.565625 0.337500 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.470000 0 0 0 0 0 0 0 1 0.390000 0 0 0 0 0 0 0 0.730000 0.510000 0 0 0 0 0 0 0 0.940000 0.270000 0 0 0 0 +0 0.506250 0.196875 +0 0 0.530000 0 0.570000 0 0 0 0 0 0.540000 0 0.420000 0 0 0 0 0 0.530000 0 0.350000 0 0 0 0 0 0 0.460000 0 0 0 0 0 0 0 0.440000 0 0 0 0 0 0 0 0.530000 0 0 0 0 +0 0.475000 0.534375 +0 0 0 0 0.510000 0 0 0 0 0 0 0 0.680000 0.250000 0.650000 0.560000 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 0 0.910000 0 0 0 +0 0.500000 0.509375 +0 0 0 0 0.770000 0 0 0 0 0 0 0 0.310000 0.440000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.980000 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.710000 0 0 +0 0.581250 0.521875 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.950000 0.440000 0 0 0 0 0 0 0 0.740000 0.330000 0 0 0 0 0 0 0 0.680000 0.480000 0 0 0 0 +0 0.518750 0.190625 +0 0 0 0 0.730000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.440000 0 0 0 0 0 0 0 0.450000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0 0 0 0 +0 0.509375 0.525000 +0 0 0 0 0 0 0.290000 0.710000 0 0 0 0.300000 0 0.250000 0.800000 0.260000 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.710000 0.300000 0 0 0 0 0 0.570000 0.580000 0 0 0 0 +0 0.409375 0.668750 +0.450000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.960000 0 0 0 0 0 0 0 0.520000 0.540000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.540000 0.340000 0 0 0 +0 0.531250 0.321875 +0 0 0.560000 0 0.470000 0 0 0 0 0 0.490000 0.370000 0 0 0 0 0 0 0.270000 0.310000 0 0 0 0 0 0 0.350000 0 0 0 0.250000 0 0 0 0.390000 0 0 0 0 0 0 0 0.590000 0 0 0 0 0 +0 0.446875 0.528125 +0 0 0.630000 0 0 0 0 0.540000 0 0.520000 0 0 0 0 0 0.400000 0 0.800000 0 0 0 0 0 0.280000 0 0.860000 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.660000 0 0 0 0 0 0 +0 0.393750 0.428125 +0 0 0 0.550000 0.290000 0 0 0.320000 0 0 0 0 1 0 0 0.560000 0 0 0 0 0 0.810000 0 0.270000 0 0 0 0 0 0.460000 0.540000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0 0.750000 +0 0.678125 0.456250 +0 0 0 0 0.370000 0 0 0 0 0 0 0 0.380000 0 0 0 0 0 0 0 0.470000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 0 0.870000 0 0 0 0 0 0 0 0.560000 0 0 0 +0 0.506250 0.500000 +0 0 0.280000 0 0 0 0.710000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.760000 0 0 +0 0.543750 0.600000 +0 0 0 0 0.730000 0 0 0 0 0 0 0 0.860000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.570000 0 0 0 +0 0.534375 0.537500 +0 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.420000 0.480000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0 +0 0.428125 0.325000 +0 0 0 0 0.670000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.770000 0 0.310000 0 0 0 0.330000 0 0.730000 0.290000 0.320000 0.550000 0 0 0 0 0.600000 0 0.260000 0.460000 0 0 0 0 0 0 0 0 +0 0.506250 0.512500 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.660000 0 0 0 0 0 0 0 0.500000 0 0 0 0 0 0 0.720000 0 0 0 0 0 0 0 0.620000 0 +0 0.556250 0.728125 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.290000 0 0 0 0 0 0 0 0 0.300000 0 0 0 0 0 0 0 0.370000 0 0 0 0 0 0 0.360000 0 0 0 0 0 0 +0 0.421875 0.403125 +0 0.660000 0.760000 0.280000 0.660000 0.350000 0.330000 0 0 0 0 0 0.550000 0 0 0 0 0 0.350000 0 0.680000 0.270000 0.600000 0.610000 0 0 0 0 0.690000 0 0 0 0 0 0 0 0.980000 0 0 0 0 0 0 0 0.600000 0 0 0 +0 0.503125 0.515625 +0 0 0 0 0 0 0.990000 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0.330000 0.470000 0 0 0 0 0 0 0.950000 0 0 0 0 0 0 0 0.920000 0 0 0 +0 0.481250 0.615625 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.440000 0 0 0 0 0 0 0 0.620000 0 0 0 0 0 0 0.250000 0.450000 0 0 0 0 0 0 0.690000 0 +0 0.612500 0.640625 +0 0 0 0 0.610000 0 0 0.270000 0 0 0 0.810000 0 0 0 0 0 0 1 0 0 0 0 0 0 0.620000 0.490000 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0.690000 0.290000 0 0 0 0 0 0 +0 0.325000 0.543750 +0 0 0 0 0 0.950000 0 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0.590000 0.400000 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.980000 0 0 0 0 0 0 0.880000 0 0 0 0 +0 0.471875 0.590625 +0 0.720000 0 0 0 0 0 0.250000 0 0.820000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0 0.970000 0 0 0 0 0 +0 0.437500 0.365625 +0 0 0 0.600000 0 0 0 0 0 0 0 0.550000 0 0 0 0 0 0 0.560000 0 0 0 0 0 0 0 0.840000 0 0 0 0 0 0 0 0.410000 0 0 0 0 0 0 0 1 0 0 0 0 0 +0 0.453125 0.475000 +0 0 0.250000 0 0 0 0 0 0 0 0 0 0 0.620000 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.770000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.730000 0 0 +0 0.546875 0.587500 +0 0 0 0 0.560000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0.290000 0 0.740000 0.440000 0.710000 0.670000 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.570000 0 0.350000 0.590000 0 0 0 0 0.850000 0 0 0 +0 0.506250 0.512500 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0 0.430000 0.530000 0 0 0 0 0 0 0 0.600000 0.410000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 +0 0.496875 0.221875 +0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.660000 0 0 0 0 0 0 0 0.590000 0 0 0 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.970000 0 0 0 0 0 0 0.720000 0 +0 0.615625 0.628125 +0.780000 0 0 0 0 0.790000 0 0 0 0.860000 0 0 0 0.740000 0 0 0 0 0.770000 0 0 0.800000 0 0 0 0 0.800000 0 0 0.920000 0 0 0 0 0 0.980000 0.640000 0 0 0 0 0 0 0 0.450000 0 0 0 +0 0.512500 0.593750 +0 0 0 0 0.560000 0 0 0 0 0 0 0 0.670000 0 0 0 0 0 0.290000 0 0.740000 0.440000 0.710000 0.670000 0 0 0 0 0.810000 0 0 0 0 0 0 0 0.570000 0 0.350000 0.590000 0 0 0 0 0.850000 0 0 0 +0 0.506250 0.512500 +0 0 0 0 0.720000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.680000 0 0 0 0 0 0 0 0.980000 0 0 0 0 0 0 0 0.750000 0 0 0 0 0 0 0 0.950000 0 0 0 +0 0.534375 0.518750 +0 0 0 0 0.840000 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0.360000 0.600000 0 0 0 0 0 0 1 0 0 0 0 0 0 0.900000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 +0 0.343750 0.550000 +0.550000 0 0 0 0 0 0 0 0.310000 0.860000 0.920000 0 0 0 0 0 0 0 0 0.950000 0.820000 0 0 0 0 0 0 0 0.280000 0.990000 0 0 0 0 0 0 0 0 0.710000 0.650000 0 0 0 0 0 0 0 0.490000 +0 0.740625 0.268750 +0 0.720000 0 0 0 0 0 0.400000 0 0.770000 0 0 0 0 0 0.560000 0 0.710000 0 0 0 0 0 0.350000 0 0.510000 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.710000 0 0 0 0 0 0 0 +0 0.350000 0.415625 +0 0 0 0 0 0 0.790000 0 0 0 0 0 0 0.580000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.390000 0.490000 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.780000 0 0 0 +0 0.478125 0.618750 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.740000 0 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.600000 0 0 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 +0 0.418750 0.262500 +0.370000 0.540000 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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.490625 0.496875 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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.496875 0.496875 +0.780000 0 0 0 0 0.790000 0 0 0 0.860000 0 0 0 0.740000 0 0 0 0 0.770000 0 0 0.800000 0 0 0 0 0.800000 0 0 0.920000 0 0 0 0 0 0.980000 0.640000 0 0 0 0 0 0 0 0.450000 0 0 0 +0 0.512500 0.593750 +0 0 0.500000 0 0.330000 0 0 0 0 0 0.590000 0 0.550000 0 0 0 0 0 0.670000 0 0.500000 0 0 0 0 0 0.480000 0.450000 0 0.260000 0 0 0 0 0.310000 0 0 0 0 0 0 0 0.290000 0 0 0 0 0 +0 0.450000 0.562500 +0.300000 0 0 0 0 0 0 0 0.710000 0.360000 0.800000 0.610000 0 0 0 0 0.510000 0.450000 0 0.270000 1 0.980000 0.750000 0 0 0.900000 0 0 0 0 0.340000 1 0 0.950000 0 0 0 0 0 0 0 0.910000 0 0 0 0 0 0 +0 0.425000 0.331250 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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.506250 0.506250 +0 0 0.530000 0 0.570000 0 0 0 0 0 0.540000 0 0.420000 0 0 0 0 0 0.530000 0 0.350000 0 0 0 0 0 0 0.460000 0 0 0 0 0 0 0 0.440000 0 0 0 0 0 0 0 0.530000 0 0 0 0 +0 0.481250 0.537500 +0 0 0 0 0.260000 0.760000 0 0 0 0 0 0 0.820000 0 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0 0.880000 0 0 0 0 0 0 0.560000 0.460000 0 0 0 0 0 0 0.710000 0 0 0 0 +0 0.484375 0.568750 +0 0 0 0 0 0 0 0 0 0 0 0 0.290000 0 0 0 0 0 0 0.510000 0 0 0 0 0 0 0 0.510000 0 0 0 0 0 0 0.280000 0.440000 0 0 0 0 0 0 0.820000 0 0 0 0 0 +0 0.428125 0.562500 +0 0.810000 0 0 0 0 1 0 0 0 0.800000 0 0 0.900000 0 0 0 0 0.940000 0 0 0.620000 0 0 0 0 0.730000 0 0.830000 0 0 0 0 0 0.880000 0 0.890000 0 0 0 0 0 0 0.590000 0 0 0 0 +0 0.465625 0.618750 +0 0 0 0 0.430000 0 0 0 0 0 0 0 0.630000 0 0 0 0 0 0 0 0.570000 0 0 0 0 0 0 0 0.610000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.570000 0 0 0 +0 0.490625 0.521875 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.490000 0 0 0 0 0 0 0 0.610000 0 0 0 0 0 0 0 0.710000 0 0 +0 0.537500 0.546875 +0 0 0 0.700000 0 0 0 0 0 0 0 0.570000 0 0 0 0 0 0 0.590000 0 0 0 0 0 0 0 0.540000 0 0 0 0 0 0 0 0 0.760000 0 0 0 0 0 0 0 0.690000 0 0 0 0 +0 0.453125 0.468750 +0 0 0.840000 0 0 0 0 0 0 0 0 0.700000 0 0 0 0 0 0 0 0.900000 0 0.250000 0 0 0 0 0 0.350000 0.390000 0 0 0 0 0 0 0 0.800000 0 0 0 0 0 0 0 0.820000 0 0 0 +0 0.509375 0.412500 +0 0 0.710000 0 0 0 0 0 0 0 0.800000 0 0 0.330000 0 0 0 0.730000 0 0 0 0 0 0 0 0.920000 0 0 0 0 0 0 0 0.830000 0 0 0 0 0 0 0 0.940000 0 0 0 0 0 0 +0 0.368750 0.446875 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.310000 0 0 0 0 0 0 0.340000 0 0 0 0 0 0 0 0.600000 0 0 0 0 0 0 0 0.580000 0 0 0 +0 0.500000 0.659375 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.280000 0 0 0 0 0 0 0 0.390000 0 0 0 0 +0 0.481250 0.506250 diff --git a/lib/ann/fann/datasets/scaling.data b/lib/ann/fann/datasets/scaling.data new file mode 100644 index 0000000..133183a --- /dev/null +++ b/lib/ann/fann/datasets/scaling.data @@ -0,0 +1,2001 @@ +1000 3 1 +1000 1 0 +1001 +1000 1 1 +1000.54 +1000 1 2 +999.584 +1000 1 3 +999.01 +1000 1 4 +999.346 +1000 1 5 +1000.28 +1000 1 6 +1000.96 +1000 1 7 +1000.75 +1000 1 8 +999.854 +1000 1 9 +999.089 +1000 1.01 0 +1001.01 +1000 1.01 1 +1000.55 +1000 1.01 2 +999.58 +1000 1.01 3 +999 +1000 1.01 4 +999.34 +1000 1.01 5 +1000.29 +1000 1.01 6 +1000.97 +1000 1.01 7 +1000.76 +1000 1.01 8 +999.853 +1000 1.01 9 +999.08 +1000 1.02 0 +1001.02 +1000 1.02 1 +1000.55 +1000 1.02 2 +999.576 +1000 1.02 3 +998.99 +1000 1.02 4 +999.333 +1000 1.02 5 +1000.29 +1000 1.02 6 +1000.98 +1000 1.02 7 +1000.77 +1000 1.02 8 +999.852 +1000 1.02 9 +999.071 +1000 1.03 0 +1001.03 +1000 1.03 1 +1000.56 +1000 1.03 2 +999.571 +1000 1.03 3 +998.98 +1000 1.03 4 +999.327 +1000 1.03 5 +1000.29 +1000 1.03 6 +1000.99 +1000 1.03 7 +1000.78 +1000 1.03 8 +999.85 +1000 1.03 9 +999.062 +1000 1.04 0 +1001.04 +1000 1.04 1 +1000.56 +1000 1.04 2 +999.567 +1000 1.04 3 +998.97 +1000 1.04 4 +999.32 +1000 1.04 5 +1000.29 +1000 1.04 6 +1001 +1000 1.04 7 +1000.78 +1000 1.04 8 +999.849 +1000 1.04 9 +999.052 +1000 1.05 0 +1001.05 +1000 1.05 1 +1000.57 +1000 1.05 2 +999.563 +1000 1.05 3 +998.961 +1000 1.05 4 +999.314 +1000 1.05 5 +1000.3 +1000 1.05 6 +1001.01 +1000 1.05 7 +1000.79 +1000 1.05 8 +999.847 +1000 1.05 9 +999.043 +1000 1.06 0 +1001.06 +1000 1.06 1 +1000.57 +1000 1.06 2 +999.559 +1000 1.06 3 +998.951 +1000 1.06 4 +999.307 +1000 1.06 5 +1000.3 +1000 1.06 6 +1001.02 +1000 1.06 7 +1000.8 +1000 1.06 8 +999.846 +1000 1.06 9 +999.034 +1000 1.07 0 +1001.07 +1000 1.07 1 +1000.58 +1000 1.07 2 +999.555 +1000 1.07 3 +998.941 +1000 1.07 4 +999.301 +1000 1.07 5 +1000.3 +1000 1.07 6 +1001.03 +1000 1.07 7 +1000.81 +1000 1.07 8 +999.844 +1000 1.07 9 +999.025 +1000 1.08 0 +1001.08 +1000 1.08 1 +1000.58 +1000 1.08 2 +999.551 +1000 1.08 3 +998.931 +1000 1.08 4 +999.294 +1000 1.08 5 +1000.31 +1000 1.08 6 +1001.04 +1000 1.08 7 +1000.81 +1000 1.08 8 +999.843 +1000 1.08 9 +999.016 +1000 1.09 0 +1001.09 +1000 1.09 1 +1000.59 +1000 1.09 2 +999.546 +1000 1.09 3 +998.921 +1000 1.09 4 +999.288 +1000 1.09 5 +1000.31 +1000 1.09 6 +1001.05 +1000 1.09 7 +1000.82 +1000 1.09 8 +999.841 +1000 1.09 9 +999.007 +1000.1 1 0 +1001.1 +1000.1 1 1 +1000.64 +1000.1 1 2 +999.684 +1000.1 1 3 +999.11 +1000.1 1 4 +999.446 +1000.1 1 5 +1000.38 +1000.1 1 6 +1001.06 +1000.1 1 7 +1000.85 +1000.1 1 8 +999.954 +1000.1 1 9 +999.189 +1000.1 1.01 0 +1001.11 +1000.1 1.01 1 +1000.65 +1000.1 1.01 2 +999.68 +1000.1 1.01 3 +999.1 +1000.1 1.01 4 +999.44 +1000.1 1.01 5 +1000.39 +1000.1 1.01 6 +1001.07 +1000.1 1.01 7 +1000.86 +1000.1 1.01 8 +999.953 +1000.1 1.01 9 +999.18 +1000.1 1.02 0 +1001.12 +1000.1 1.02 1 +1000.65 +1000.1 1.02 2 +999.675 +1000.1 1.02 3 +999.09 +1000.1 1.02 4 +999.433 +1000.1 1.02 5 +1000.39 +1000.1 1.02 6 +1001.08 +1000.1 1.02 7 +1000.87 +1000.1 1.02 8 +999.952 +1000.1 1.02 9 +999.171 +1000.1 1.03 0 +1001.13 +1000.1 1.03 1 +1000.66 +1000.1 1.03 2 +999.671 +1000.1 1.03 3 +999.08 +1000.1 1.03 4 +999.427 +1000.1 1.03 5 +1000.39 +1000.1 1.03 6 +1001.09 +1000.1 1.03 7 +1000.88 +1000.1 1.03 8 +999.95 +1000.1 1.03 9 +999.161 +1000.1 1.04 0 +1001.14 +1000.1 1.04 1 +1000.66 +1000.1 1.04 2 +999.667 +1000.1 1.04 3 +999.07 +1000.1 1.04 4 +999.42 +1000.1 1.04 5 +1000.39 +1000.1 1.04 6 +1001.1 +1000.1 1.04 7 +1000.88 +1000.1 1.04 8 +999.949 +1000.1 1.04 9 +999.152 +1000.1 1.05 0 +1001.15 +1000.1 1.05 1 +1000.67 +1000.1 1.05 2 +999.663 +1000.1 1.05 3 +999.06 +1000.1 1.05 4 +999.414 +1000.1 1.05 5 +1000.4 +1000.1 1.05 6 +1001.11 +1000.1 1.05 7 +1000.89 +1000.1 1.05 8 +999.947 +1000.1 1.05 9 +999.143 +1000.1 1.06 0 +1001.16 +1000.1 1.06 1 +1000.67 +1000.1 1.06 2 +999.659 +1000.1 1.06 3 +999.051 +1000.1 1.06 4 +999.407 +1000.1 1.06 5 +1000.4 +1000.1 1.06 6 +1001.12 +1000.1 1.06 7 +1000.9 +1000.1 1.06 8 +999.946 +1000.1 1.06 9 +999.134 +1000.1 1.07 0 +1001.17 +1000.1 1.07 1 +1000.68 +1000.1 1.07 2 +999.655 +1000.1 1.07 3 +999.041 +1000.1 1.07 4 +999.401 +1000.1 1.07 5 +1000.4 +1000.1 1.07 6 +1001.13 +1000.1 1.07 7 +1000.91 +1000.1 1.07 8 +999.944 +1000.1 1.07 9 +999.125 +1000.1 1.08 0 +1001.18 +1000.1 1.08 1 +1000.68 +1000.1 1.08 2 +999.651 +1000.1 1.08 3 +999.031 +1000.1 1.08 4 +999.394 +1000.1 1.08 5 +1000.41 +1000.1 1.08 6 +1001.14 +1000.1 1.08 7 +1000.91 +1000.1 1.08 8 +999.943 +1000.1 1.08 9 +999.116 +1000.1 1.09 0 +1001.19 +1000.1 1.09 1 +1000.69 +1000.1 1.09 2 +999.646 +1000.1 1.09 3 +999.021 +1000.1 1.09 4 +999.388 +1000.1 1.09 5 +1000.41 +1000.1 1.09 6 +1001.15 +1000.1 1.09 7 +1000.92 +1000.1 1.09 8 +999.941 +1000.1 1.09 9 +999.107 +1000.2 1 0 +1001.2 +1000.2 1 1 +1000.74 +1000.2 1 2 +999.784 +1000.2 1 3 +999.21 +1000.2 1 4 +999.546 +1000.2 1 5 +1000.48 +1000.2 1 6 +1001.16 +1000.2 1 7 +1000.95 +1000.2 1 8 +1000.05 +1000.2 1 9 +999.289 +1000.2 1.01 0 +1001.21 +1000.2 1.01 1 +1000.75 +1000.2 1.01 2 +999.78 +1000.2 1.01 3 +999.2 +1000.2 1.01 4 +999.54 +1000.2 1.01 5 +1000.49 +1000.2 1.01 6 +1001.17 +1000.2 1.01 7 +1000.96 +1000.2 1.01 8 +1000.05 +1000.2 1.01 9 +999.28 +1000.2 1.02 0 +1001.22 +1000.2 1.02 1 +1000.75 +1000.2 1.02 2 +999.776 +1000.2 1.02 3 +999.19 +1000.2 1.02 4 +999.533 +1000.2 1.02 5 +1000.49 +1000.2 1.02 6 +1001.18 +1000.2 1.02 7 +1000.97 +1000.2 1.02 8 +1000.05 +1000.2 1.02 9 +999.271 +1000.2 1.03 0 +1001.23 +1000.2 1.03 1 +1000.76 +1000.2 1.03 2 +999.771 +1000.2 1.03 3 +999.18 +1000.2 1.03 4 +999.527 +1000.2 1.03 5 +1000.49 +1000.2 1.03 6 +1001.19 +1000.2 1.03 7 +1000.98 +1000.2 1.03 8 +1000.05 +1000.2 1.03 9 +999.262 +1000.2 1.04 0 +1001.24 +1000.2 1.04 1 +1000.76 +1000.2 1.04 2 +999.767 +1000.2 1.04 3 +999.17 +1000.2 1.04 4 +999.52 +1000.2 1.04 5 +1000.49 +1000.2 1.04 6 +1001.2 +1000.2 1.04 7 +1000.98 +1000.2 1.04 8 +1000.05 +1000.2 1.04 9 +999.252 +1000.2 1.05 0 +1001.25 +1000.2 1.05 1 +1000.77 +1000.2 1.05 2 +999.763 +1000.2 1.05 3 +999.161 +1000.2 1.05 4 +999.514 +1000.2 1.05 5 +1000.5 +1000.2 1.05 6 +1001.21 +1000.2 1.05 7 +1000.99 +1000.2 1.05 8 +1000.05 +1000.2 1.05 9 +999.243 +1000.2 1.06 0 +1001.26 +1000.2 1.06 1 +1000.77 +1000.2 1.06 2 +999.759 +1000.2 1.06 3 +999.151 +1000.2 1.06 4 +999.507 +1000.2 1.06 5 +1000.5 +1000.2 1.06 6 +1001.22 +1000.2 1.06 7 +1001 +1000.2 1.06 8 +1000.05 +1000.2 1.06 9 +999.234 +1000.2 1.07 0 +1001.27 +1000.2 1.07 1 +1000.78 +1000.2 1.07 2 +999.755 +1000.2 1.07 3 +999.141 +1000.2 1.07 4 +999.501 +1000.2 1.07 5 +1000.5 +1000.2 1.07 6 +1001.23 +1000.2 1.07 7 +1001.01 +1000.2 1.07 8 +1000.04 +1000.2 1.07 9 +999.225 +1000.2 1.08 0 +1001.28 +1000.2 1.08 1 +1000.78 +1000.2 1.08 2 +999.751 +1000.2 1.08 3 +999.131 +1000.2 1.08 4 +999.494 +1000.2 1.08 5 +1000.51 +1000.2 1.08 6 +1001.24 +1000.2 1.08 7 +1001.01 +1000.2 1.08 8 +1000.04 +1000.2 1.08 9 +999.216 +1000.2 1.09 0 +1001.29 +1000.2 1.09 1 +1000.79 +1000.2 1.09 2 +999.746 +1000.2 1.09 3 +999.121 +1000.2 1.09 4 +999.488 +1000.2 1.09 5 +1000.51 +1000.2 1.09 6 +1001.25 +1000.2 1.09 7 +1001.02 +1000.2 1.09 8 +1000.04 +1000.2 1.09 9 +999.207 +1000.3 1 0 +1001.3 +1000.3 1 1 +1000.84 +1000.3 1 2 +999.884 +1000.3 1 3 +999.31 +1000.3 1 4 +999.646 +1000.3 1 5 +1000.58 +1000.3 1 6 +1001.26 +1000.3 1 7 +1001.05 +1000.3 1 8 +1000.15 +1000.3 1 9 +999.389 +1000.3 1.01 0 +1001.31 +1000.3 1.01 1 +1000.85 +1000.3 1.01 2 +999.88 +1000.3 1.01 3 +999.3 +1000.3 1.01 4 +999.64 +1000.3 1.01 5 +1000.59 +1000.3 1.01 6 +1001.27 +1000.3 1.01 7 +1001.06 +1000.3 1.01 8 +1000.15 +1000.3 1.01 9 +999.38 +1000.3 1.02 0 +1001.32 +1000.3 1.02 1 +1000.85 +1000.3 1.02 2 +999.875 +1000.3 1.02 3 +999.29 +1000.3 1.02 4 +999.633 +1000.3 1.02 5 +1000.59 +1000.3 1.02 6 +1001.28 +1000.3 1.02 7 +1001.07 +1000.3 1.02 8 +1000.15 +1000.3 1.02 9 +999.371 +1000.3 1.03 0 +1001.33 +1000.3 1.03 1 +1000.86 +1000.3 1.03 2 +999.871 +1000.3 1.03 3 +999.28 +1000.3 1.03 4 +999.627 +1000.3 1.03 5 +1000.59 +1000.3 1.03 6 +1001.29 +1000.3 1.03 7 +1001.08 +1000.3 1.03 8 +1000.15 +1000.3 1.03 9 +999.362 +1000.3 1.04 0 +1001.34 +1000.3 1.04 1 +1000.86 +1000.3 1.04 2 +999.867 +1000.3 1.04 3 +999.27 +1000.3 1.04 4 +999.62 +1000.3 1.04 5 +1000.59 +1000.3 1.04 6 +1001.3 +1000.3 1.04 7 +1001.08 +1000.3 1.04 8 +1000.15 +1000.3 1.04 9 +999.352 +1000.3 1.05 0 +1001.35 +1000.3 1.05 1 +1000.87 +1000.3 1.05 2 +999.863 +1000.3 1.05 3 +999.26 +1000.3 1.05 4 +999.614 +1000.3 1.05 5 +1000.6 +1000.3 1.05 6 +1001.31 +1000.3 1.05 7 +1001.09 +1000.3 1.05 8 +1000.15 +1000.3 1.05 9 +999.343 +1000.3 1.06 0 +1001.36 +1000.3 1.06 1 +1000.87 +1000.3 1.06 2 +999.859 +1000.3 1.06 3 +999.251 +1000.3 1.06 4 +999.607 +1000.3 1.06 5 +1000.6 +1000.3 1.06 6 +1001.32 +1000.3 1.06 7 +1001.1 +1000.3 1.06 8 +1000.15 +1000.3 1.06 9 +999.334 +1000.3 1.07 0 +1001.37 +1000.3 1.07 1 +1000.88 +1000.3 1.07 2 +999.855 +1000.3 1.07 3 +999.241 +1000.3 1.07 4 +999.601 +1000.3 1.07 5 +1000.6 +1000.3 1.07 6 +1001.33 +1000.3 1.07 7 +1001.11 +1000.3 1.07 8 +1000.14 +1000.3 1.07 9 +999.325 +1000.3 1.08 0 +1001.38 +1000.3 1.08 1 +1000.88 +1000.3 1.08 2 +999.851 +1000.3 1.08 3 +999.231 +1000.3 1.08 4 +999.594 +1000.3 1.08 5 +1000.61 +1000.3 1.08 6 +1001.34 +1000.3 1.08 7 +1001.11 +1000.3 1.08 8 +1000.14 +1000.3 1.08 9 +999.316 +1000.3 1.09 0 +1001.39 +1000.3 1.09 1 +1000.89 +1000.3 1.09 2 +999.846 +1000.3 1.09 3 +999.221 +1000.3 1.09 4 +999.588 +1000.3 1.09 5 +1000.61 +1000.3 1.09 6 +1001.35 +1000.3 1.09 7 +1001.12 +1000.3 1.09 8 +1000.14 +1000.3 1.09 9 +999.307 +1000.4 1 0 +1001.4 +1000.4 1 1 +1000.94 +1000.4 1 2 +999.984 +1000.4 1 3 +999.41 +1000.4 1 4 +999.746 +1000.4 1 5 +1000.68 +1000.4 1 6 +1001.36 +1000.4 1 7 +1001.15 +1000.4 1 8 +1000.25 +1000.4 1 9 +999.489 +1000.4 1.01 0 +1001.41 +1000.4 1.01 1 +1000.95 +1000.4 1.01 2 +999.98 +1000.4 1.01 3 +999.4 +1000.4 1.01 4 +999.74 +1000.4 1.01 5 +1000.69 +1000.4 1.01 6 +1001.37 +1000.4 1.01 7 +1001.16 +1000.4 1.01 8 +1000.25 +1000.4 1.01 9 +999.48 +1000.4 1.02 0 +1001.42 +1000.4 1.02 1 +1000.95 +1000.4 1.02 2 +999.976 +1000.4 1.02 3 +999.39 +1000.4 1.02 4 +999.733 +1000.4 1.02 5 +1000.69 +1000.4 1.02 6 +1001.38 +1000.4 1.02 7 +1001.17 +1000.4 1.02 8 +1000.25 +1000.4 1.02 9 +999.471 +1000.4 1.03 0 +1001.43 +1000.4 1.03 1 +1000.96 +1000.4 1.03 2 +999.971 +1000.4 1.03 3 +999.38 +1000.4 1.03 4 +999.727 +1000.4 1.03 5 +1000.69 +1000.4 1.03 6 +1001.39 +1000.4 1.03 7 +1001.18 +1000.4 1.03 8 +1000.25 +1000.4 1.03 9 +999.462 +1000.4 1.04 0 +1001.44 +1000.4 1.04 1 +1000.96 +1000.4 1.04 2 +999.967 +1000.4 1.04 3 +999.37 +1000.4 1.04 4 +999.72 +1000.4 1.04 5 +1000.7 +1000.4 1.04 6 +1001.4 +1000.4 1.04 7 +1001.18 +1000.4 1.04 8 +1000.25 +1000.4 1.04 9 +999.452 +1000.4 1.05 0 +1001.45 +1000.4 1.05 1 +1000.97 +1000.4 1.05 2 +999.963 +1000.4 1.05 3 +999.361 +1000.4 1.05 4 +999.714 +1000.4 1.05 5 +1000.7 +1000.4 1.05 6 +1001.41 +1000.4 1.05 7 +1001.19 +1000.4 1.05 8 +1000.25 +1000.4 1.05 9 +999.443 +1000.4 1.06 0 +1001.46 +1000.4 1.06 1 +1000.97 +1000.4 1.06 2 +999.959 +1000.4 1.06 3 +999.351 +1000.4 1.06 4 +999.707 +1000.4 1.06 5 +1000.7 +1000.4 1.06 6 +1001.42 +1000.4 1.06 7 +1001.2 +1000.4 1.06 8 +1000.25 +1000.4 1.06 9 +999.434 +1000.4 1.07 0 +1001.47 +1000.4 1.07 1 +1000.98 +1000.4 1.07 2 +999.955 +1000.4 1.07 3 +999.341 +1000.4 1.07 4 +999.701 +1000.4 1.07 5 +1000.7 +1000.4 1.07 6 +1001.43 +1000.4 1.07 7 +1001.21 +1000.4 1.07 8 +1000.24 +1000.4 1.07 9 +999.425 +1000.4 1.08 0 +1001.48 +1000.4 1.08 1 +1000.98 +1000.4 1.08 2 +999.951 +1000.4 1.08 3 +999.331 +1000.4 1.08 4 +999.694 +1000.4 1.08 5 +1000.71 +1000.4 1.08 6 +1001.44 +1000.4 1.08 7 +1001.21 +1000.4 1.08 8 +1000.24 +1000.4 1.08 9 +999.416 +1000.4 1.09 0 +1001.49 +1000.4 1.09 1 +1000.99 +1000.4 1.09 2 +999.946 +1000.4 1.09 3 +999.321 +1000.4 1.09 4 +999.688 +1000.4 1.09 5 +1000.71 +1000.4 1.09 6 +1001.45 +1000.4 1.09 7 +1001.22 +1000.4 1.09 8 +1000.24 +1000.4 1.09 9 +999.407 +1000.5 1 0 +1001.5 +1000.5 1 1 +1001.04 +1000.5 1 2 +1000.08 +1000.5 1 3 +999.51 +1000.5 1 4 +999.846 +1000.5 1 5 +1000.78 +1000.5 1 6 +1001.46 +1000.5 1 7 +1001.25 +1000.5 1 8 +1000.35 +1000.5 1 9 +999.589 +1000.5 1.01 0 +1001.51 +1000.5 1.01 1 +1001.05 +1000.5 1.01 2 +1000.08 +1000.5 1.01 3 +999.5 +1000.5 1.01 4 +999.84 +1000.5 1.01 5 +1000.79 +1000.5 1.01 6 +1001.47 +1000.5 1.01 7 +1001.26 +1000.5 1.01 8 +1000.35 +1000.5 1.01 9 +999.58 +1000.5 1.02 0 +1001.52 +1000.5 1.02 1 +1001.05 +1000.5 1.02 2 +1000.08 +1000.5 1.02 3 +999.49 +1000.5 1.02 4 +999.833 +1000.5 1.02 5 +1000.79 +1000.5 1.02 6 +1001.48 +1000.5 1.02 7 +1001.27 +1000.5 1.02 8 +1000.35 +1000.5 1.02 9 +999.571 +1000.5 1.03 0 +1001.53 +1000.5 1.03 1 +1001.06 +1000.5 1.03 2 +1000.07 +1000.5 1.03 3 +999.48 +1000.5 1.03 4 +999.827 +1000.5 1.03 5 +1000.79 +1000.5 1.03 6 +1001.49 +1000.5 1.03 7 +1001.28 +1000.5 1.03 8 +1000.35 +1000.5 1.03 9 +999.562 +1000.5 1.04 0 +1001.54 +1000.5 1.04 1 +1001.06 +1000.5 1.04 2 +1000.07 +1000.5 1.04 3 +999.47 +1000.5 1.04 4 +999.82 +1000.5 1.04 5 +1000.79 +1000.5 1.04 6 +1001.5 +1000.5 1.04 7 +1001.28 +1000.5 1.04 8 +1000.35 +1000.5 1.04 9 +999.552 +1000.5 1.05 0 +1001.55 +1000.5 1.05 1 +1001.07 +1000.5 1.05 2 +1000.06 +1000.5 1.05 3 +999.461 +1000.5 1.05 4 +999.814 +1000.5 1.05 5 +1000.8 +1000.5 1.05 6 +1001.51 +1000.5 1.05 7 +1001.29 +1000.5 1.05 8 +1000.35 +1000.5 1.05 9 +999.543 +1000.5 1.06 0 +1001.56 +1000.5 1.06 1 +1001.07 +1000.5 1.06 2 +1000.06 +1000.5 1.06 3 +999.451 +1000.5 1.06 4 +999.807 +1000.5 1.06 5 +1000.8 +1000.5 1.06 6 +1001.52 +1000.5 1.06 7 +1001.3 +1000.5 1.06 8 +1000.35 +1000.5 1.06 9 +999.534 +1000.5 1.07 0 +1001.57 +1000.5 1.07 1 +1001.08 +1000.5 1.07 2 +1000.05 +1000.5 1.07 3 +999.441 +1000.5 1.07 4 +999.801 +1000.5 1.07 5 +1000.8 +1000.5 1.07 6 +1001.53 +1000.5 1.07 7 +1001.31 +1000.5 1.07 8 +1000.34 +1000.5 1.07 9 +999.525 +1000.5 1.08 0 +1001.58 +1000.5 1.08 1 +1001.08 +1000.5 1.08 2 +1000.05 +1000.5 1.08 3 +999.431 +1000.5 1.08 4 +999.794 +1000.5 1.08 5 +1000.81 +1000.5 1.08 6 +1001.54 +1000.5 1.08 7 +1001.31 +1000.5 1.08 8 +1000.34 +1000.5 1.08 9 +999.516 +1000.5 1.09 0 +1001.59 +1000.5 1.09 1 +1001.09 +1000.5 1.09 2 +1000.05 +1000.5 1.09 3 +999.421 +1000.5 1.09 4 +999.788 +1000.5 1.09 5 +1000.81 +1000.5 1.09 6 +1001.55 +1000.5 1.09 7 +1001.32 +1000.5 1.09 8 +1000.34 +1000.5 1.09 9 +999.507 +1000.6 1 0 +1001.6 +1000.6 1 1 +1001.14 +1000.6 1 2 +1000.18 +1000.6 1 3 +999.61 +1000.6 1 4 +999.946 +1000.6 1 5 +1000.88 +1000.6 1 6 +1001.56 +1000.6 1 7 +1001.35 +1000.6 1 8 +1000.45 +1000.6 1 9 +999.689 +1000.6 1.01 0 +1001.61 +1000.6 1.01 1 +1001.15 +1000.6 1.01 2 +1000.18 +1000.6 1.01 3 +999.6 +1000.6 1.01 4 +999.94 +1000.6 1.01 5 +1000.89 +1000.6 1.01 6 +1001.57 +1000.6 1.01 7 +1001.36 +1000.6 1.01 8 +1000.45 +1000.6 1.01 9 +999.68 +1000.6 1.02 0 +1001.62 +1000.6 1.02 1 +1001.15 +1000.6 1.02 2 +1000.18 +1000.6 1.02 3 +999.59 +1000.6 1.02 4 +999.933 +1000.6 1.02 5 +1000.89 +1000.6 1.02 6 +1001.58 +1000.6 1.02 7 +1001.37 +1000.6 1.02 8 +1000.45 +1000.6 1.02 9 +999.671 +1000.6 1.03 0 +1001.63 +1000.6 1.03 1 +1001.16 +1000.6 1.03 2 +1000.17 +1000.6 1.03 3 +999.58 +1000.6 1.03 4 +999.927 +1000.6 1.03 5 +1000.89 +1000.6 1.03 6 +1001.59 +1000.6 1.03 7 +1001.38 +1000.6 1.03 8 +1000.45 +1000.6 1.03 9 +999.661 +1000.6 1.04 0 +1001.64 +1000.6 1.04 1 +1001.16 +1000.6 1.04 2 +1000.17 +1000.6 1.04 3 +999.57 +1000.6 1.04 4 +999.92 +1000.6 1.04 5 +1000.89 +1000.6 1.04 6 +1001.6 +1000.6 1.04 7 +1001.38 +1000.6 1.04 8 +1000.45 +1000.6 1.04 9 +999.652 +1000.6 1.05 0 +1001.65 +1000.6 1.05 1 +1001.17 +1000.6 1.05 2 +1000.16 +1000.6 1.05 3 +999.56 +1000.6 1.05 4 +999.914 +1000.6 1.05 5 +1000.9 +1000.6 1.05 6 +1001.61 +1000.6 1.05 7 +1001.39 +1000.6 1.05 8 +1000.45 +1000.6 1.05 9 +999.643 +1000.6 1.06 0 +1001.66 +1000.6 1.06 1 +1001.17 +1000.6 1.06 2 +1000.16 +1000.6 1.06 3 +999.551 +1000.6 1.06 4 +999.907 +1000.6 1.06 5 +1000.9 +1000.6 1.06 6 +1001.62 +1000.6 1.06 7 +1001.4 +1000.6 1.06 8 +1000.45 +1000.6 1.06 9 +999.634 +1000.6 1.07 0 +1001.67 +1000.6 1.07 1 +1001.18 +1000.6 1.07 2 +1000.15 +1000.6 1.07 3 +999.541 +1000.6 1.07 4 +999.901 +1000.6 1.07 5 +1000.9 +1000.6 1.07 6 +1001.63 +1000.6 1.07 7 +1001.41 +1000.6 1.07 8 +1000.44 +1000.6 1.07 9 +999.625 +1000.6 1.08 0 +1001.68 +1000.6 1.08 1 +1001.18 +1000.6 1.08 2 +1000.15 +1000.6 1.08 3 +999.531 +1000.6 1.08 4 +999.894 +1000.6 1.08 5 +1000.91 +1000.6 1.08 6 +1001.64 +1000.6 1.08 7 +1001.41 +1000.6 1.08 8 +1000.44 +1000.6 1.08 9 +999.616 +1000.6 1.09 0 +1001.69 +1000.6 1.09 1 +1001.19 +1000.6 1.09 2 +1000.15 +1000.6 1.09 3 +999.521 +1000.6 1.09 4 +999.888 +1000.6 1.09 5 +1000.91 +1000.6 1.09 6 +1001.65 +1000.6 1.09 7 +1001.42 +1000.6 1.09 8 +1000.44 +1000.6 1.09 9 +999.607 +1000.7 1 0 +1001.7 +1000.7 1 1 +1001.24 +1000.7 1 2 +1000.28 +1000.7 1 3 +999.71 +1000.7 1 4 +1000.05 +1000.7 1 5 +1000.98 +1000.7 1 6 +1001.66 +1000.7 1 7 +1001.45 +1000.7 1 8 +1000.55 +1000.7 1 9 +999.789 +1000.7 1.01 0 +1001.71 +1000.7 1.01 1 +1001.25 +1000.7 1.01 2 +1000.28 +1000.7 1.01 3 +999.7 +1000.7 1.01 4 +1000.04 +1000.7 1.01 5 +1000.99 +1000.7 1.01 6 +1001.67 +1000.7 1.01 7 +1001.46 +1000.7 1.01 8 +1000.55 +1000.7 1.01 9 +999.78 +1000.7 1.02 0 +1001.72 +1000.7 1.02 1 +1001.25 +1000.7 1.02 2 +1000.28 +1000.7 1.02 3 +999.69 +1000.7 1.02 4 +1000.03 +1000.7 1.02 5 +1000.99 +1000.7 1.02 6 +1001.68 +1000.7 1.02 7 +1001.47 +1000.7 1.02 8 +1000.55 +1000.7 1.02 9 +999.771 +1000.7 1.03 0 +1001.73 +1000.7 1.03 1 +1001.26 +1000.7 1.03 2 +1000.27 +1000.7 1.03 3 +999.68 +1000.7 1.03 4 +1000.03 +1000.7 1.03 5 +1000.99 +1000.7 1.03 6 +1001.69 +1000.7 1.03 7 +1001.48 +1000.7 1.03 8 +1000.55 +1000.7 1.03 9 +999.762 +1000.7 1.04 0 +1001.74 +1000.7 1.04 1 +1001.26 +1000.7 1.04 2 +1000.27 +1000.7 1.04 3 +999.67 +1000.7 1.04 4 +1000.02 +1000.7 1.04 5 +1000.99 +1000.7 1.04 6 +1001.7 +1000.7 1.04 7 +1001.48 +1000.7 1.04 8 +1000.55 +1000.7 1.04 9 +999.752 +1000.7 1.05 0 +1001.75 +1000.7 1.05 1 +1001.27 +1000.7 1.05 2 +1000.26 +1000.7 1.05 3 +999.661 +1000.7 1.05 4 +1000.01 +1000.7 1.05 5 +1001 +1000.7 1.05 6 +1001.71 +1000.7 1.05 7 +1001.49 +1000.7 1.05 8 +1000.55 +1000.7 1.05 9 +999.743 +1000.7 1.06 0 +1001.76 +1000.7 1.06 1 +1001.27 +1000.7 1.06 2 +1000.26 +1000.7 1.06 3 +999.651 +1000.7 1.06 4 +1000.01 +1000.7 1.06 5 +1001 +1000.7 1.06 6 +1001.72 +1000.7 1.06 7 +1001.5 +1000.7 1.06 8 +1000.55 +1000.7 1.06 9 +999.734 +1000.7 1.07 0 +1001.77 +1000.7 1.07 1 +1001.28 +1000.7 1.07 2 +1000.25 +1000.7 1.07 3 +999.641 +1000.7 1.07 4 +1000 +1000.7 1.07 5 +1001 +1000.7 1.07 6 +1001.73 +1000.7 1.07 7 +1001.51 +1000.7 1.07 8 +1000.54 +1000.7 1.07 9 +999.725 +1000.7 1.08 0 +1001.78 +1000.7 1.08 1 +1001.28 +1000.7 1.08 2 +1000.25 +1000.7 1.08 3 +999.631 +1000.7 1.08 4 +999.994 +1000.7 1.08 5 +1001.01 +1000.7 1.08 6 +1001.74 +1000.7 1.08 7 +1001.51 +1000.7 1.08 8 +1000.54 +1000.7 1.08 9 +999.716 +1000.7 1.09 0 +1001.79 +1000.7 1.09 1 +1001.29 +1000.7 1.09 2 +1000.25 +1000.7 1.09 3 +999.621 +1000.7 1.09 4 +999.988 +1000.7 1.09 5 +1001.01 +1000.7 1.09 6 +1001.75 +1000.7 1.09 7 +1001.52 +1000.7 1.09 8 +1000.54 +1000.7 1.09 9 +999.707 +1000.8 1 0 +1001.8 +1000.8 1 1 +1001.34 +1000.8 1 2 +1000.38 +1000.8 1 3 +999.81 +1000.8 1 4 +1000.15 +1000.8 1 5 +1001.08 +1000.8 1 6 +1001.76 +1000.8 1 7 +1001.55 +1000.8 1 8 +1000.65 +1000.8 1 9 +999.889 +1000.8 1.01 0 +1001.81 +1000.8 1.01 1 +1001.35 +1000.8 1.01 2 +1000.38 +1000.8 1.01 3 +999.8 +1000.8 1.01 4 +1000.14 +1000.8 1.01 5 +1001.09 +1000.8 1.01 6 +1001.77 +1000.8 1.01 7 +1001.56 +1000.8 1.01 8 +1000.65 +1000.8 1.01 9 +999.88 +1000.8 1.02 0 +1001.82 +1000.8 1.02 1 +1001.35 +1000.8 1.02 2 +1000.38 +1000.8 1.02 3 +999.79 +1000.8 1.02 4 +1000.13 +1000.8 1.02 5 +1001.09 +1000.8 1.02 6 +1001.78 +1000.8 1.02 7 +1001.57 +1000.8 1.02 8 +1000.65 +1000.8 1.02 9 +999.871 +1000.8 1.03 0 +1001.83 +1000.8 1.03 1 +1001.36 +1000.8 1.03 2 +1000.37 +1000.8 1.03 3 +999.78 +1000.8 1.03 4 +1000.13 +1000.8 1.03 5 +1001.09 +1000.8 1.03 6 +1001.79 +1000.8 1.03 7 +1001.58 +1000.8 1.03 8 +1000.65 +1000.8 1.03 9 +999.862 +1000.8 1.04 0 +1001.84 +1000.8 1.04 1 +1001.36 +1000.8 1.04 2 +1000.37 +1000.8 1.04 3 +999.77 +1000.8 1.04 4 +1000.12 +1000.8 1.04 5 +1001.09 +1000.8 1.04 6 +1001.8 +1000.8 1.04 7 +1001.58 +1000.8 1.04 8 +1000.65 +1000.8 1.04 9 +999.852 +1000.8 1.05 0 +1001.85 +1000.8 1.05 1 +1001.37 +1000.8 1.05 2 +1000.36 +1000.8 1.05 3 +999.76 +1000.8 1.05 4 +1000.11 +1000.8 1.05 5 +1001.1 +1000.8 1.05 6 +1001.81 +1000.8 1.05 7 +1001.59 +1000.8 1.05 8 +1000.65 +1000.8 1.05 9 +999.843 +1000.8 1.06 0 +1001.86 +1000.8 1.06 1 +1001.37 +1000.8 1.06 2 +1000.36 +1000.8 1.06 3 +999.751 +1000.8 1.06 4 +1000.11 +1000.8 1.06 5 +1001.1 +1000.8 1.06 6 +1001.82 +1000.8 1.06 7 +1001.6 +1000.8 1.06 8 +1000.65 +1000.8 1.06 9 +999.834 +1000.8 1.07 0 +1001.87 +1000.8 1.07 1 +1001.38 +1000.8 1.07 2 +1000.35 +1000.8 1.07 3 +999.741 +1000.8 1.07 4 +1000.1 +1000.8 1.07 5 +1001.1 +1000.8 1.07 6 +1001.83 +1000.8 1.07 7 +1001.61 +1000.8 1.07 8 +1000.64 +1000.8 1.07 9 +999.825 +1000.8 1.08 0 +1001.88 +1000.8 1.08 1 +1001.38 +1000.8 1.08 2 +1000.35 +1000.8 1.08 3 +999.731 +1000.8 1.08 4 +1000.09 +1000.8 1.08 5 +1001.11 +1000.8 1.08 6 +1001.84 +1000.8 1.08 7 +1001.61 +1000.8 1.08 8 +1000.64 +1000.8 1.08 9 +999.816 +1000.8 1.09 0 +1001.89 +1000.8 1.09 1 +1001.39 +1000.8 1.09 2 +1000.35 +1000.8 1.09 3 +999.721 +1000.8 1.09 4 +1000.09 +1000.8 1.09 5 +1001.11 +1000.8 1.09 6 +1001.85 +1000.8 1.09 7 +1001.62 +1000.8 1.09 8 +1000.64 +1000.8 1.09 9 +999.807 +1000.9 1 0 +1001.9 +1000.9 1 1 +1001.44 +1000.9 1 2 +1000.48 +1000.9 1 3 +999.91 +1000.9 1 4 +1000.25 +1000.9 1 5 +1001.18 +1000.9 1 6 +1001.86 +1000.9 1 7 +1001.65 +1000.9 1 8 +1000.75 +1000.9 1 9 +999.989 +1000.9 1.01 0 +1001.91 +1000.9 1.01 1 +1001.45 +1000.9 1.01 2 +1000.48 +1000.9 1.01 3 +999.9 +1000.9 1.01 4 +1000.24 +1000.9 1.01 5 +1001.19 +1000.9 1.01 6 +1001.87 +1000.9 1.01 7 +1001.66 +1000.9 1.01 8 +1000.75 +1000.9 1.01 9 +999.98 +1000.9 1.02 0 +1001.92 +1000.9 1.02 1 +1001.45 +1000.9 1.02 2 +1000.48 +1000.9 1.02 3 +999.89 +1000.9 1.02 4 +1000.23 +1000.9 1.02 5 +1001.19 +1000.9 1.02 6 +1001.88 +1000.9 1.02 7 +1001.67 +1000.9 1.02 8 +1000.75 +1000.9 1.02 9 +999.971 +1000.9 1.03 0 +1001.93 +1000.9 1.03 1 +1001.46 +1000.9 1.03 2 +1000.47 +1000.9 1.03 3 +999.88 +1000.9 1.03 4 +1000.23 +1000.9 1.03 5 +1001.19 +1000.9 1.03 6 +1001.89 +1000.9 1.03 7 +1001.68 +1000.9 1.03 8 +1000.75 +1000.9 1.03 9 +999.962 +1000.9 1.04 0 +1001.94 +1000.9 1.04 1 +1001.46 +1000.9 1.04 2 +1000.47 +1000.9 1.04 3 +999.87 +1000.9 1.04 4 +1000.22 +1000.9 1.04 5 +1001.2 +1000.9 1.04 6 +1001.9 +1000.9 1.04 7 +1001.68 +1000.9 1.04 8 +1000.75 +1000.9 1.04 9 +999.952 +1000.9 1.05 0 +1001.95 +1000.9 1.05 1 +1001.47 +1000.9 1.05 2 +1000.46 +1000.9 1.05 3 +999.861 +1000.9 1.05 4 +1000.21 +1000.9 1.05 5 +1001.2 +1000.9 1.05 6 +1001.91 +1000.9 1.05 7 +1001.69 +1000.9 1.05 8 +1000.75 +1000.9 1.05 9 +999.943 +1000.9 1.06 0 +1001.96 +1000.9 1.06 1 +1001.47 +1000.9 1.06 2 +1000.46 +1000.9 1.06 3 +999.851 +1000.9 1.06 4 +1000.21 +1000.9 1.06 5 +1001.2 +1000.9 1.06 6 +1001.92 +1000.9 1.06 7 +1001.7 +1000.9 1.06 8 +1000.75 +1000.9 1.06 9 +999.934 +1000.9 1.07 0 +1001.97 +1000.9 1.07 1 +1001.48 +1000.9 1.07 2 +1000.45 +1000.9 1.07 3 +999.841 +1000.9 1.07 4 +1000.2 +1000.9 1.07 5 +1001.2 +1000.9 1.07 6 +1001.93 +1000.9 1.07 7 +1001.71 +1000.9 1.07 8 +1000.74 +1000.9 1.07 9 +999.925 +1000.9 1.08 0 +1001.98 +1000.9 1.08 1 +1001.48 +1000.9 1.08 2 +1000.45 +1000.9 1.08 3 +999.831 +1000.9 1.08 4 +1000.19 +1000.9 1.08 5 +1001.21 +1000.9 1.08 6 +1001.94 +1000.9 1.08 7 +1001.71 +1000.9 1.08 8 +1000.74 +1000.9 1.08 9 +999.916 +1000.9 1.09 0 +1001.99 +1000.9 1.09 1 +1001.49 +1000.9 1.09 2 +1000.45 +1000.9 1.09 3 +999.821 +1000.9 1.09 4 +1000.19 +1000.9 1.09 5 +1001.21 +1000.9 1.09 6 +1001.95 +1000.9 1.09 7 +1001.72 +1000.9 1.09 8 +1000.74 +1000.9 1.09 9 +999.907 diff --git a/lib/ann/fann/datasets/soybean.test b/lib/ann/fann/datasets/soybean.test new file mode 100644 index 0000000..89eae79 --- /dev/null +++ b/lib/ann/fann/datasets/soybean.test @@ -0,0 +1,683 @@ +341 82 19 +0.916667 0.500000 1 0.500000 1 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.833333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.916667 0.500000 1 0.500000 1 0.500000 0.500000 1 0.666667 0.500000 1 1 0.500000 1 1 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 +0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +1 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.583333 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.750000 0.500000 1 0.500000 0.750000 0.500000 0.500000 0.500000 1 0.500000 1 1 0 0.500000 1 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 +0.750000 0.500000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 1 0.500000 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 +0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.583333 1 0.500000 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 0.500000 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 +0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.666667 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 +1 1 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.500000 1 0.500000 0.500000 0.750000 0.500000 0.500000 0.500000 0.833333 0.500000 1 0.500000 0 0.500000 0.500000 1 0.750000 0.500000 1 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.833333 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 +1 1 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 1 0 0.500000 0.500000 1 0.750000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.916667 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 0.500000 0.500000 0.500000 0.750000 0.500000 1 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 +1 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.583333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.750000 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.833333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 1 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.916667 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.500000 1 0.500000 0 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.750000 1 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 +0.750000 1 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.750000 1 0.500000 0.500000 0.750000 0.500000 0.500000 1 0.666667 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.750000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 +0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.666667 0.500000 0.500000 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 0.500000 1 0 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.583333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.750000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.750000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 +0.916667 0.500000 0.500000 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 1 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.666667 1 0.500000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.666667 1 0.500000 0.500000 1 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 +0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.583333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.916667 0.500000 1 0.500000 1 0.500000 0.500000 1 0.666667 0.500000 1 1 0.500000 1 1 1 1 0.500000 0.500000 0.500000 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 +0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.833333 0.500000 1 0.500000 1 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.750000 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.666667 1 1 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.750000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.916667 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.500000 0.500000 1 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 +0.666667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 1 0.500000 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.666667 0.500000 0.500000 1 0.500000 1 0.500000 1 0.833333 0.500000 1 0.500000 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 +0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.833333 0.500000 0.500000 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.750000 0.500000 0 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +0.833333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.750000 1 0.500000 0.500000 0.750000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 +0.583333 0.500000 0 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 +0.916667 1 0 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 +0.583333 1 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.916667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 1 0.500000 0 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.583333 1 1 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.500000 0.500000 1 1 0.500000 1 0.500000 0.750000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.916667 1 0 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 1 1 0.500000 0.500000 1 0.500000 1 0.500000 1 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +0.666667 1 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.666667 1 1 0.500000 0.750000 0.500000 0.500000 0.500000 0.666667 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.833333 0.500000 1 0.500000 1 0.500000 1 0.500000 0.833333 0.500000 1 1 0.500000 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.666667 0.500000 1 0.500000 1 0.500000 1 0.500000 0.666667 0.500000 1 1 0 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.666667 0.500000 1 1 0.500000 1 1 1 0.500000 1 1 1 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.666667 1 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 0 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 +0.833333 1 1 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 0.500000 1 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.750000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 +0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.583333 1 1 0.500000 1 0.500000 0.500000 1 0.666667 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.666667 1 0.500000 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +1 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 +0.666667 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 +0.833333 1 0 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.500000 1 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +0.916667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.916667 0.500000 1 0.500000 1 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +1 0.500000 1 0.500000 1 0.500000 0.500000 1 0.666667 0.500000 1 1 0.500000 1 1 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 +0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.666667 1 1 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 +0.833333 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.833333 1 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 0.500000 1 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.916667 1 1 0.500000 0.750000 0.500000 0.500000 0.500000 0.666667 0.500000 1 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.833333 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.833333 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +0.583333 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 +0.666667 1 0.500000 0.500000 1 0.500000 0.500000 1 0.833333 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +1 1 1 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.500000 1 1 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 +0.583333 1 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.833333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.666667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.583333 1 1 0.500000 1 0.500000 0.500000 1 0.833333 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.750000 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.750000 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.666667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.833333 0.500000 1 0.500000 1 0.500000 1 0.500000 0.666667 0.500000 1 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.833333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.666667 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +1 0.500000 1 0.500000 1 0.500000 0.500000 1 0.833333 0.500000 1 1 0.500000 1 1 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 +0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.833333 0.500000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 1 0.500000 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 +0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.833333 0.500000 0 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +0.583333 1 1 0.500000 0.750000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.916667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.583333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.750000 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.500000 1 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +0.583333 1 1 0.500000 0.750000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.666667 0.500000 0 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 +0.916667 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.833333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.833333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 1 0.500000 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.750000 1 0.500000 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 +0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.750000 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.916667 1 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.666667 1 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.750000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 0 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 +0.666667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.916667 1 1 0.500000 0.750000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.916667 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.916667 1 0.500000 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 0.500000 0.500000 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 +0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.833333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.750000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 +0.750000 1 1 0.500000 1 0.500000 0.500000 1 0.833333 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.916667 1 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.833333 1 0.500000 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.750000 1 0 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 +0.916667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 1 0.500000 0 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.833333 1 1 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 +0.750000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.833333 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 +0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.833333 0.500000 0 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +1 0.500000 0 0.500000 1 0.500000 1 0.500000 0.666667 0.500000 1 1 0.500000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 +0.916667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.833333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 +0.916667 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.833333 0.500000 0 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +0.666667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.666667 1 1 0.500000 1 0.500000 0.500000 1 0.833333 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.666667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.916667 0.500000 1 0.500000 0.750000 0.500000 0.500000 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.583333 1 1 0.500000 0.750000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.750000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.583333 1 0.500000 1 0.500000 0.500000 0.500000 1 0.666667 0.500000 1 1 0.500000 1 1 1 0.500000 1 1 1 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.833333 1 0 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.500000 1 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +0.666667 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 1 1 1 0.500000 1 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.750000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 +0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.833333 0.500000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 +0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +1 0.500000 1 0.500000 1 0.500000 0.500000 1 0.833333 0.500000 1 1 0.500000 1 1 1 0.750000 0.500000 0.500000 0.500000 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 +0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +1 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 0.500000 0.833333 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +1 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.583333 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 +0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.500000 1 0.500000 0 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 +0.666667 0.500000 0.500000 1 0.500000 1 0.500000 1 0.833333 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 +0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.833333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.916667 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.833333 0.500000 0.500000 1 0.500000 1 0.500000 1 0.666667 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 +0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.583333 1 1 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 +0.916667 1 1 0.500000 1 0.500000 1 0.500000 0.833333 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.666667 1 1 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 +0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.916667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.833333 1 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 0.500000 1 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.916667 0.500000 1 0.500000 0.750000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.500000 1 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.583333 1 0.500000 1 0.500000 0.500000 0.500000 1 0.666667 0.500000 0.500000 0.500000 0.500000 1 1 1 0.500000 1 1 1 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.916667 1 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.833333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.916667 0.500000 0 0.500000 0.750000 0.500000 0.500000 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 +0.666667 1 0.500000 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 +0.916667 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +1 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.666667 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 +0.500000 1 1 0.500000 0.750000 0.500000 0.500000 0.500000 0.666667 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.916667 0.500000 1 0.500000 1 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 +0.916667 0.500000 1 0.500000 1 0.500000 1 0.500000 0.666667 0.500000 1 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.916667 0.500000 1 0.500000 1 0.500000 1 0.500000 0.666667 0.500000 1 1 0 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.916667 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.833333 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.750000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 +0.583333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.916667 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.750000 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +1 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 +0.750000 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.583333 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 0 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +1 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.500000 0.500000 1 1 0 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.833333 1 1 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.833333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0 0.500000 1 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 +0.750000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.500000 1 1 0.500000 0.500000 1 0.500000 0.750000 0.500000 1 1 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.916667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.666667 1 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.833333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 1 1 1 0.500000 1 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.750000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 +0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.666667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.583333 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.916667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 +1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.666667 0.500000 1 1 0 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +1 1 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.500000 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.583333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.500000 1 0.750000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.583333 1 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 1 0.500000 0.500000 1 0.500000 0.750000 0.500000 1 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.916667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 +0.666667 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 +0.583333 0.500000 1 0.500000 1 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0 0.500000 1 0.500000 0.750000 0.500000 1 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.833333 0.500000 0 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +0.916667 0.500000 1 0.500000 1 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.916667 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.833333 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.750000 1 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.666667 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.750000 0.500000 0 0.500000 0.750000 0.500000 0.500000 0.500000 0.833333 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 +0.750000 1 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.666667 1 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.750000 1 0.500000 0.500000 0.750000 0.500000 0.500000 1 0.833333 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.750000 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 +0.916667 1 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.666667 1 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.916667 1 0.500000 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +0.916667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 1 0 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.666667 0.500000 0 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.500000 1 1 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 +0.833333 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 +0.583333 1 1 0.500000 0.750000 0.500000 0.500000 1 0.833333 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.666667 1 0.500000 0.500000 0.750000 0.500000 0.500000 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.750000 0.500000 1 0.500000 0.750000 0.500000 0.500000 0.500000 0.833333 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.583333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 1 0.500000 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.750000 1 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.750000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 0.500000 1 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.750000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 +0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.583333 1 0 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 +0.666667 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 1 0.500000 1 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.833333 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.833333 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 +0.916667 1 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.750000 0.500000 0.500000 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 0.500000 0 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 0 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.666667 1 1 0.500000 1 0.500000 0.500000 1 0.833333 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.666667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.916667 0.500000 0 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 1 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 +0.916667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.750000 1 0.500000 0.500000 0.750000 0.500000 0.500000 1 0.833333 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.750000 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 1 0.500000 0.500000 1 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.583333 1 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.833333 0.500000 0.500000 1 0.500000 1 0.500000 1 0.833333 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 +0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 +0.666667 0.500000 0.500000 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.750000 1 1 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.500000 0.500000 1 0 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.833333 0.500000 0 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 1 0.500000 0.500000 1 0.500000 0.750000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 +0.750000 1 1 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.833333 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.500000 1 0.500000 0 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 +0.583333 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 +1 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.583333 1 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.666667 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.500000 0.500000 1 0 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.583333 0.500000 1 0.500000 0.750000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 +0.916667 0.500000 0.500000 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 0.500000 1 0 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.750000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 1 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.916667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.750000 1 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 +0.583333 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 1 0.500000 1 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.750000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 +0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.666667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +1 1 0.500000 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +0.500000 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.833333 0.500000 1 0.500000 0.750000 0.500000 0.500000 0.500000 0.666667 0.500000 0.500000 1 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 +1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.916667 0.500000 1 0.500000 0.750000 0.500000 0.500000 0.500000 1 0.500000 1 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.750000 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.750000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 +0.750000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 1 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 +0.583333 1 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +1 0.500000 0 0.500000 0.750000 0.500000 0.500000 0.500000 0.833333 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.750000 0.500000 1 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +0.833333 0.500000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 1 0.500000 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 +0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.833333 1 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.666667 1 1 0.500000 1 0.500000 0.500000 1 0.833333 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.833333 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.750000 0.500000 1 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.666667 1 1 0.500000 1 0.500000 0.500000 1 0.833333 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.916667 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.750000 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.666667 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +1 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.916667 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +1 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0 0.500000 0.500000 1 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.500000 1 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.750000 1 1 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.500000 0.500000 1 0 0.500000 0.500000 1 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.750000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.833333 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +1 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 1 0.500000 0 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.583333 1 1 0.500000 0.750000 0.500000 0.500000 1 0.833333 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.750000 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.833333 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 +0.750000 1 1 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 1 0 0.500000 0.500000 1 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.833333 0.500000 0 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 +0.833333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.916667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +1 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.583333 1 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 1 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 +0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.583333 1 1 0.500000 1 0.500000 0.500000 1 0.666667 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 +0.833333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 1 0 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.500000 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +1 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.583333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.750000 0.500000 1 0.500000 0.750000 0.500000 0.500000 0.500000 0.666667 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.666667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.916667 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.500000 1 0.500000 0 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 +0.666667 1 1 0.500000 1 0.500000 0.500000 1 0.666667 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.833333 1 0.500000 0.500000 0.750000 0.500000 0.500000 1 0.833333 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.583333 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 +1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.833333 1 1 0.500000 0.750000 0.500000 1 0.500000 0.500000 0.500000 1 1 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +1 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 1 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.833333 1 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.916667 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +1 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.500000 0.500000 1 0 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.833333 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.833333 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 0.500000 0.666667 0.500000 1 1 0 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.916667 0.500000 1 0.500000 1 0.500000 1 0.500000 0.833333 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +1 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 0.500000 1 0 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.833333 1 0.500000 0.500000 0.750000 0.500000 0.500000 1 0.833333 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.833333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.833333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 1 1 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.583333 0.500000 0.500000 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.750000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.833333 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 1 0.500000 1 1 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 +0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.916667 0.500000 1 0.500000 1 0.500000 1 0.500000 0.833333 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +1 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 1 0.500000 1 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.750000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 +0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.916667 0.500000 0 0.500000 1 0.500000 1 0.500000 0.833333 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +0.583333 1 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.833333 0.500000 0 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.750000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.833333 0.500000 1 0.500000 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 +0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.833333 1 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.833333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.666667 0.500000 1 0.500000 0.750000 0.500000 0.500000 0.500000 0.666667 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 +0.916667 0.500000 1 0.500000 1 0.500000 1 0.500000 0.833333 0.500000 1 1 0 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 1 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.833333 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 +0.916667 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +0.666667 1 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 1 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.833333 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +0.916667 0.500000 0 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 +0.750000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +1 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 0.500000 0.833333 0.500000 1 0.500000 0 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.666667 1 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 +0.916667 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 1 1 0.500000 1 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.750000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 +0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.750000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 1 1 1 0.500000 1 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.750000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 +0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.583333 1 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.666667 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.666667 1 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.750000 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.916667 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 +0.833333 0.500000 0 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 1 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +0.916667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 +0.666667 1 1 0.500000 1 0.500000 0.500000 1 0.666667 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.833333 0.500000 0 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 1 0.500000 0.750000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 +0.666667 1 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.833333 1 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 1 0.500000 1 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.750000 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.750000 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 diff --git a/lib/ann/fann/datasets/soybean.train b/lib/ann/fann/datasets/soybean.train new file mode 100644 index 0000000..9a6b9ea --- /dev/null +++ b/lib/ann/fann/datasets/soybean.train @@ -0,0 +1,685 @@ +342 82 19 +0.833333 1 1 0.500000 1 0.500000 1 0.500000 0.833333 0.500000 0.500000 1 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 +1 1 1 0.500000 1 0.500000 1 0.500000 0.833333 0.500000 0.500000 1 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +1 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.750000 1 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.916667 0.500000 0 0.500000 0.750000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 1 1 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.916667 0.500000 1 0.500000 1 0.500000 1 0.500000 0.833333 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.916667 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 1 0.500000 1 1 1 1 0.500000 0.500000 0.500000 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 +0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.833333 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 +0.833333 0.500000 0 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 1 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +0.666667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.583333 1 1 0.500000 1 0.500000 0.500000 1 0.666667 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.583333 1 1 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 +1 0.500000 0 0.500000 1 0.500000 1 0.500000 0.666667 0.500000 1 1 0.500000 0.500000 1 0.500000 0.750000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 +0.666667 1 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.916667 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 +0.916667 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.833333 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.750000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.500000 0.500000 1 1 0.500000 1 0.500000 0.750000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.833333 0.500000 0 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +0.833333 1 0.500000 0.500000 1 0.500000 1 0.500000 0.666667 0.500000 1 0.500000 0 0.500000 1 0.500000 0.750000 0.500000 1 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 +0.666667 1 1 0.500000 1 0.500000 0.500000 1 0.833333 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.916667 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 0.500000 0.500000 0 0.500000 0.500000 1 0.500000 0.500000 1 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.583333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.916667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 +0.833333 1 0.500000 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 1 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.750000 0.500000 1 0.500000 0.750000 0.500000 0.500000 0.500000 0.666667 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 +0.833333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.750000 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 +0.833333 0.500000 1 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +1 0.500000 0.500000 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 1 0 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.750000 1 0.500000 0.500000 0.750000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 +0.583333 1 1 0.500000 0.750000 0.500000 0.500000 1 0.833333 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.833333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 +0.916667 0.500000 1 0.500000 1 0.500000 1 0.500000 0.833333 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.583333 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 +0.916667 0.500000 0 0.500000 1 0.500000 1 0.500000 0.666667 0.500000 1 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +0.583333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +1 0.500000 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 +0.916667 0.500000 1 0.500000 1 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.833333 0.500000 0 0.500000 0.750000 0.500000 0.500000 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 +0.833333 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 0.500000 1 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.750000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 +0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.916667 0.500000 1 0.500000 1 0.500000 0.500000 1 0.833333 0.500000 1 1 0.500000 1 1 1 1 0.500000 0.500000 0.500000 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 +0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.916667 1 0 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +0.666667 1 1 0.500000 0.750000 0.500000 0.500000 1 0.666667 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.750000 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.750000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.500000 1 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 +0.833333 0.500000 1 0.500000 1 0.500000 1 0.500000 0.666667 0.500000 1 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.750000 1 0 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 0 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.583333 1 1 0.500000 0.750000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 1 0.500000 0.750000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.500000 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.916667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.833333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.916667 0.500000 1 0.500000 1 0.500000 1 0.500000 0.833333 0.500000 1 1 0 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.833333 0.500000 0 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +0.750000 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +1 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0 0.500000 0.500000 0.500000 1 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.916667 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 1 0.500000 1 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.750000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 +0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 1 0 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.750000 0.500000 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 +0.916667 0.500000 0 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 +0.916667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.666667 1 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 +1 1 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 1 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.666667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.916667 0.500000 0 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 +0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 +0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 +0.583333 0.500000 0 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 +0.583333 1 1 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 +1 0.500000 0 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 1 0.500000 0.500000 1 0.500000 0.750000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 +0.916667 0.500000 1 0.500000 1 0.500000 0.500000 1 0.833333 0.500000 1 1 0.500000 1 1 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 +0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.916667 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 +0.833333 0.500000 0 0.500000 0.750000 0.500000 0.500000 0.500000 0.666667 0.500000 1 1 0.500000 0.500000 1 0.500000 0.750000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 +1 0.500000 0 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 1 0.500000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 +0.750000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.833333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 +0.666667 1 0.500000 0.500000 1 0.500000 0.500000 1 0.833333 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.833333 1 0.500000 0.500000 1 0.500000 1 0.500000 0.666667 0.500000 1 1 0 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 +0.583333 1 0 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 +0.666667 1 1 0.500000 0.750000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.916667 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.916667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.666667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.750000 1 0.500000 0.500000 0.750000 0.500000 0.500000 1 0.666667 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.916667 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 0 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.750000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 0.500000 0.833333 0.500000 1 1 0 0.500000 0.500000 0.500000 0.750000 0.500000 1 1 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.833333 0.500000 1 0.500000 1 0.500000 1 0.500000 0.666667 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +1 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 1 1 1 0.500000 1 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.750000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 +0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.916667 0.500000 1 0.500000 1 0.500000 1 0.500000 0.666667 0.500000 1 1 0 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.750000 0.500000 0.500000 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 1 0.500000 0 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.916667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 +0.583333 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +1 1 0.500000 0.500000 1 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0 0.500000 0.500000 1 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.750000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.833333 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 +0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.916667 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 +1 1 1 0.500000 1 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.750000 0.500000 1 0.500000 0.750000 0.500000 0.500000 0.500000 0.666667 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 +0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.916667 0.500000 0 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +0.750000 0.500000 0 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +0.750000 1 1 0.500000 1 0.500000 0.500000 1 0.833333 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.750000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.750000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 +1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 0 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.666667 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 +0.833333 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.500000 1 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +0.583333 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 +0.916667 1 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.916667 1 0 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 +0.833333 0.500000 1 0.500000 0.750000 0.500000 0.500000 0.500000 1 0.500000 1 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 +1 0.500000 0 0.500000 0.750000 0.500000 0.500000 0.500000 1 0.500000 1 1 0.500000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 +0.750000 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 +0.750000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.833333 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 +0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.833333 0.500000 1 0.500000 1 0.500000 1 0.500000 0.666667 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +1 0.500000 0 0.500000 0.750000 0.500000 0.500000 0.500000 0.666667 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 +0.833333 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.750000 0.500000 1 0.500000 0.750000 0.500000 0.500000 0.500000 0.666667 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.500000 1 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.750000 1 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.666667 1 0.500000 0.500000 0.750000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.833333 0.500000 0 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +0.916667 0.500000 0 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 +0.666667 1 1 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 +0.916667 0.500000 1 0.500000 0.750000 0.500000 0.500000 0.500000 0.833333 0.500000 1 0.500000 0 0.500000 0.500000 1 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.916667 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.916667 0.500000 1 0.500000 1 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.750000 0.500000 0.500000 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.833333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.750000 1 0 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.500000 1 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.833333 0.500000 0 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +0.750000 0.500000 0 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 +0.666667 1 0.500000 1 0.500000 0.500000 0.500000 1 0.666667 0.500000 1 1 0.500000 1 1 1 0.500000 1 1 1 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.583333 1 1 0.500000 0.750000 0.500000 0.500000 0.500000 0.833333 0.500000 1 1 0.500000 0.500000 1 0.500000 0.750000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +1 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 1 1 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 +0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.583333 1 1 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.750000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 +0.666667 1 1 0.500000 0.750000 0.500000 0.500000 1 0.666667 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.750000 1 0.500000 0.500000 0.750000 0.500000 0.500000 1 0.666667 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.750000 0.500000 0 0.500000 0.750000 0.500000 0.500000 0.500000 0.833333 0.500000 1 1 0 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 +0.750000 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.916667 0.500000 0 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +0.666667 0.500000 0.500000 0.500000 0.750000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.750000 1 0.500000 0.500000 1 0.500000 1 0.500000 0.666667 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 1 0.500000 1 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 +0.833333 1 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.666667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.583333 1 1 0.500000 0.750000 0.500000 0.500000 1 0.666667 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.666667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.833333 0.500000 1 0.500000 1 0.500000 1 0.500000 0.833333 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.666667 0.500000 1 0.500000 0.750000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.916667 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.833333 0.500000 0 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.500000 1 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 +0.916667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.666667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.916667 1 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 1 0 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.833333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.750000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 0 0.500000 0.500000 0.500000 0.750000 0.500000 1 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 1 1 0.500000 1 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.750000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 +0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.750000 1 0.500000 0.500000 0.750000 0.500000 0.500000 1 0.833333 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.833333 1 1 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.750000 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.916667 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.916667 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.833333 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.666667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.916667 0.500000 1 0.500000 1 0.500000 1 0.500000 0.833333 0.500000 1 1 0 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.500000 1 0.500000 0.500000 0.750000 0.500000 0.500000 0.500000 0.833333 0.500000 0.500000 1 1 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.750000 1 1 0.500000 0.750000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 +0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.833333 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +0.833333 1 1 0.500000 1 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 +0.916667 0.500000 1 0.500000 1 0.500000 1 0.500000 0.833333 0.500000 0.500000 1 0 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.916667 0.500000 1 0.500000 1 0.500000 1 0.500000 0.833333 0.500000 1 1 0 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.833333 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.750000 1 1 0.500000 0.750000 0.500000 0.500000 1 0.666667 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.833333 1 0.500000 0.500000 1 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0 0.500000 0.500000 1 0.500000 0.500000 1 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.916667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.583333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.916667 1 1 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.750000 0.500000 0 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 +0.916667 1 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 1 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 +0.750000 0.500000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 1 0.500000 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 +0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.750000 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.583333 1 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.833333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.583333 1 0.500000 0.500000 0.750000 0.500000 0.500000 0.500000 0.833333 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.583333 1 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +1 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 +0.666667 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.833333 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.833333 0.500000 1 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +1 1 0 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 +0.583333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.833333 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 1 1 0.500000 1 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.750000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 +0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.916667 1 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.833333 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.666667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.833333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +1 1 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.916667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.500000 0.500000 1 1 0 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.916667 1 1 0.500000 0.750000 0.500000 0.500000 0.500000 0.666667 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.750000 0.500000 0 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +0.833333 0.500000 1 0.500000 0.750000 0.500000 0.500000 0.500000 0.666667 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 +1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 1 0.500000 1 1 1 0.750000 0.500000 0.500000 0.500000 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 +0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.916667 0.500000 0 0.500000 1 0.500000 1 0.500000 0.833333 0.500000 1 1 0.500000 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +0.750000 1 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.666667 1 1 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 +0.916667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.833333 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.833333 1 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.666667 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.916667 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.583333 1 1 0.500000 1 0.500000 0.500000 1 0.833333 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.750000 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 +0.750000 1 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.916667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.833333 1 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.833333 0.500000 0.500000 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.916667 0.500000 0 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 +0.916667 0.500000 1 0.500000 1 0.500000 1 0.500000 0.833333 0.500000 0.500000 1 0 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.833333 1 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.583333 1 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.916667 1 1 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.500000 1 0.500000 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.916667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.750000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.583333 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 1 1 0.500000 1 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.750000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 +0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.750000 1 1 0.500000 1 0.500000 0.500000 1 0.833333 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.916667 0.500000 1 0.500000 1 0.500000 1 0.500000 0.833333 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.750000 0.500000 0 0.500000 1 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 +1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.833333 0.500000 0.500000 1 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 +0.916667 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 1 0.500000 1 1 1 1 0.500000 0.500000 0.500000 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 +0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.750000 1 1 0.500000 0.750000 0.500000 0.500000 1 0.666667 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.750000 1 1 0.500000 0.750000 0.500000 0.500000 1 0.833333 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.666667 1 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.666667 0.500000 0 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.500000 1 0.500000 0 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 +0.916667 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 1 0.500000 1 1 1 1 0.500000 0.500000 0.500000 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 +0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.666667 1 0.500000 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 +0.583333 1 1 0.500000 1 0.500000 0.500000 1 0.833333 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +1 1 1 0.500000 1 0.500000 1 0.500000 0.833333 0.500000 1 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.916667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 1 1 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.833333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.833333 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.583333 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 1 0.500000 1 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.916667 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.750000 1 1 0.500000 0.750000 0.500000 0.500000 1 0.833333 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.750000 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 +0.666667 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.750000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 +0.750000 1 0.500000 0.500000 0.750000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.583333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 1 0.500000 0.500000 0.500000 1 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.916667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.916667 0.500000 0 0.500000 1 0.500000 1 0.500000 0.833333 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +0.833333 1 0.500000 0.500000 0.750000 0.500000 0.500000 0.500000 0.833333 0.500000 1 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.750000 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 1 1 0.500000 0.500000 1 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.916667 1 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 1 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.833333 0.500000 1 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 +0.833333 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 +0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.666667 0.500000 1 0.500000 0.750000 0.500000 0.500000 0.500000 0.666667 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.666667 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 1 0.500000 1 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.750000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 +0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.666667 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.833333 1 1 0.500000 1 0.500000 0.500000 0.500000 0.666667 0.500000 0.500000 1 0 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.916667 0.500000 1 0.500000 1 0.500000 1 0.500000 0.666667 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.916667 0.500000 0 0.500000 0.750000 0.500000 0.500000 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +0.916667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 +0.916667 0.500000 0 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +0.666667 0.500000 0.500000 1 0.500000 1 0.500000 1 0.666667 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 +0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.583333 1 0.500000 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 +0.666667 0.500000 0 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 +0.833333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +1 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 1 0.500000 0 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.666667 1 1 0.500000 1 0.500000 1 0.500000 0.666667 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 +0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.916667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 +0.916667 0.500000 1 0.500000 0.750000 0.500000 0.500000 0.500000 0.833333 0.500000 1 0.500000 0 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.916667 0.500000 0 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +1 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 +0.750000 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.916667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 0.500000 1 0 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 +1 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 +0.916667 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.750000 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +1 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.666667 1 1 0.500000 0.500000 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.833333 1 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.750000 1 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.916667 0.500000 0 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 +1 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 +0.666667 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 0.500000 0.666667 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 +0.750000 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 1 0 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.750000 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.666667 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 +1 0.500000 0.500000 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.500000 1 0.500000 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.833333 0.500000 1 0.500000 1 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.916667 1 1 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 +0.833333 1 0.500000 0.500000 0.750000 0.500000 0.500000 1 0.666667 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.750000 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.833333 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.583333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.916667 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.833333 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.500000 1 1 0.500000 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.583333 1 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.916667 0.500000 1 0.500000 1 0.500000 1 0.500000 0.833333 0.500000 1 1 0 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.583333 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 1 0.500000 1 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.500000 1 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.750000 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.750000 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.833333 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.833333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.916667 0.500000 0 0.500000 1 0.500000 0.500000 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 +0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 1 1 1 0.500000 1 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.833333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.583333 1 1 0.500000 1 0.500000 0.500000 1 0.833333 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.750000 1 0.500000 0.500000 0.750000 0.500000 0.500000 1 0.833333 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.916667 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 0.500000 0 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.750000 0.500000 0.500000 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 1 0.500000 1 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.833333 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.833333 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.916667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 1 1 0.500000 1 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.750000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 +0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0.916667 0.500000 1 0.500000 0.750000 0.500000 0.500000 0.500000 0.666667 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 +0.833333 0.500000 0.500000 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +1 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 +0.916667 0.500000 1 0.500000 1 0.500000 1 0.500000 0.666667 0.500000 0.500000 1 0 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.916667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 +0.916667 0.500000 1 0.500000 1 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +0.666667 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.833333 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.916667 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 1 0 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 +0.750000 0.500000 1 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.666667 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 +1 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 0.666667 0.500000 0.500000 0.500000 0 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 +0.666667 1 1 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 1 0.500000 1 1 1 0.500000 1 1 1 1 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 1 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 1 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0.833333 0.500000 1 0.500000 0.750000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.750000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +1 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.750000 0.500000 1 1 0.500000 0.500000 0.750000 0.500000 0.750000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 +0.583333 1 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 1 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 +0.750000 0.500000 1 0.500000 0.750000 0.500000 1 0.500000 1 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 1 1 0.500000 0.500000 0.500000 1 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 1 0.500000 0.500000 0.500000 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 diff --git a/lib/ann/fann/datasets/thyroid.test b/lib/ann/fann/datasets/thyroid.test new file mode 100644 index 0000000..8798411 --- /dev/null +++ b/lib/ann/fann/datasets/thyroid.test @@ -0,0 +1,7201 @@ +3600 21 3 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.049000 0.192000 0.109000 0.176000 +0 0 1 +0.720000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.016000 0.125000 0.095000 0.132000 +0 0 1 +0.640000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000560 0.018000 0.090000 0.079000 0.114000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.023000 0.104000 0.103000 0.101000 +0 0 1 +0.170000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.025000 0.110000 0.091000 0.121000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.024000 0.116000 0.080000 0.145000 +0 0 1 +0.520000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.020100 0.138000 0.124000 0.111000 +0 0 1 +0.510000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000730 0.020100 0.110000 0.085000 0.129000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001500 0.022000 0.098000 0.114000 0.086000 +0 0 1 +0.250000 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0.000100 0.017000 0.092000 0.089000 0.103000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.024000 0.093000 0.110000 0.085000 +0 0 1 +0.660000 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0.004690 0.013000 0.145000 0.096000 0.150720 +0 0 1 +0.390000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.118000 0.071000 0.166000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.015000 0.020800 0.133000 0.097000 0.137000 +0 1 0 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.020000 0.107000 0.084000 0.127000 +0 0 1 +0.350000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000460 0.020600 0.077000 0.067000 0.115000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000700 0.020800 0.110000 0.095000 0.116000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020800 0.140000 0.104000 0.132000 +0 0 1 +0.870000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.014000 0.111000 0.126000 0.088000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006200 0.018000 0.124000 0.111000 0.112000 +0 1 0 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.025000 0.161000 0.083000 0.195000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.014000 0.076000 0.083000 0.091000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.012000 0.058000 0.084000 0.068000 +0 0 1 +0.240000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000920 0.025000 0.099000 0.097000 0.102000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000850 0.013000 0.102000 0.091000 0.113000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004900 0.019000 0.122000 0.095000 0.129000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000050 0.036000 0.094000 0.102000 0.092000 +0 0 1 +0.320000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.023000 0.076000 0.086000 0.088000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001890 0.023000 0.110000 0.101000 0.109000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.020100 0.091000 0.104000 0.088000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002700 0.014000 0.120000 0.085000 0.141000 +0 0 1 +0.390000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.029000 0.097000 0.103000 0.094000 +0 0 1 +0.840000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.034000 0.007000 0.052000 0.111000 0.047000 +1 0 0 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.016000 0.119000 0.104000 0.113000 +0 0 1 +0.210000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.024000 0.111000 0.091000 0.122000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.009000 0.112000 0.094000 0.119000 +0 0 1 +0.400000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020100 0.081000 0.078000 0.104000 +0 0 1 +0.720000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.114000 0.111000 0.102000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.018000 0.099000 0.099000 0.099790 +0 0 1 +0.390000 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0.003600 0.020600 0.092000 0.109000 0.084000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.023000 0.099000 0.104000 0.091000 +0 0 1 +0.300000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.022000 0.133000 0.095000 0.140000 +0 0 1 +0.830000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.016000 0.100000 0.089000 0.112000 +0 0 1 +0.540000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000150 0.020100 0.127000 0.089000 0.143000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.064000 0.191000 0.097000 0.197000 +0 0 1 +0.400000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.139000 0.096000 0.144490 +0 0 1 +0.300000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.014000 0.077000 0.070000 0.110000 +0 0 1 +0.640000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.020100 0.119000 0.101000 0.119000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.020100 0.111000 0.132000 0.084000 +0 0 1 +0.800000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004600 0.018000 0.120000 0.104000 0.116000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000470 0.024000 0.092000 0.072000 0.128000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.082000 0.002000 0.005800 0.103000 0.005580 +1 0 0 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020100 0.113000 0.112000 0.101000 +0 0 1 +0.580000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.020800 0.106000 0.094000 0.113000 +0 0 1 +0.620000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.012000 0.015000 0.105000 0.086000 0.122000 +0 1 0 +0.650000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000320 0.027000 0.096000 0.140000 0.069000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.470000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.017000 0.109000 0.089000 0.123000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000330 0.004000 0.083000 0.054000 0.154000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.022000 0.095000 0.100000 0.095000 +0 0 1 +0.390000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020100 0.162000 0.119000 0.136000 +0 0 1 +0.490000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000930 0.020600 0.074000 0.087000 0.085000 +0 0 1 +0.720000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005400 0.010000 0.075000 0.082000 0.092000 +0 0 1 +0.630000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002900 0.020100 0.082000 0.067000 0.122000 +0 0 1 +0.890000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.022000 0.105000 0.094000 0.112000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000240 0.027000 0.117000 0.108000 0.108000 +0 0 1 +0.180000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001100 0.020600 0.147000 0.095000 0.154000 +0 0 1 +0.310000 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0.000440 0.015000 0.075000 0.092000 0.081000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001300 0.023000 0.097000 0.109000 0.088000 +0 0 1 +0.150000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000700 0.018000 0.084000 0.098000 0.086000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000060 0.041900 0.235000 0.110000 0.214000 +0 0 1 +0.410000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.028000 0.060000 0.095000 0.063000 +0 0 1 +0.520000 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.099000 0.092000 0.107000 +0 0 1 +0.750000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.009000 0.094000 0.074000 0.127000 +0 0 1 +0.540000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.020100 0.085000 0.085000 0.100000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000010 0.019000 0.136000 0.107000 0.127000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.020100 0.123000 0.085000 0.145000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007800 0.017000 0.072000 0.093000 0.077000 +0 1 0 +0.710000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.023000 0.154000 0.114000 0.135000 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.023000 0.108000 0.103000 0.105000 +0 0 1 +0.020000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006700 0.009600 0.033750 0.103000 0.032490 +1 0 0 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.037000 0.184000 0.180000 0.102000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.020100 0.101000 0.104000 0.097000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.031000 0.110000 0.082000 0.134000 +0 0 1 +0.590000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.020000 0.118000 0.092000 0.129000 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.026000 0.106000 0.097000 0.109000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.038000 0.193000 0.193000 0.100000 +0 0 1 +0.320000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000200 0.017000 0.085000 0.084000 0.101000 +0 0 1 +0.680000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001100 0.018000 0.089000 0.083000 0.105000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001200 0.030000 0.095000 0.134000 0.071000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.180000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.024000 0.074000 0.116000 0.063000 +0 0 1 +0.140000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004100 0.030000 0.114000 0.100000 0.114000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000340 0.020600 0.095000 0.099000 0.095000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000930 0.020100 0.107000 0.104000 0.101000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001400 0.023000 0.073000 0.109000 0.067000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.020100 0.077000 0.083000 0.093000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.020800 0.116000 0.104000 0.109000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002600 0.019000 0.115000 0.102000 0.114000 +0 0 1 +0.200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.123000 0.104000 0.118000 +0 0 1 +0.200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.022000 0.101000 0.104000 0.095000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.109000 0.013000 0.044000 0.098000 0.045000 +1 0 0 +0.590000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.083000 0.081000 0.103000 +0 0 1 +0.250000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020100 0.156000 0.136000 0.115000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.021000 0.009600 0.060000 0.116000 0.051000 +1 0 0 +0.410000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.000300 0.023000 0.111000 0.083000 0.134000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000780 0.020100 0.179000 0.081000 0.221000 +0 0 1 +0.490000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.023000 0.092000 0.099000 0.092740 +0 0 1 +0.240000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.066000 0.010000 0.112000 0.101000 0.110000 +0 0 1 +0.770000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.005000 0.054000 0.086000 0.062000 +0 0 1 +0.860000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004900 0.015000 0.073000 0.096000 0.075870 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001300 0.033000 0.130000 0.121000 0.107000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.000880 0.016000 0.108000 0.085000 0.127000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.020100 0.097000 0.112000 0.087000 +0 0 1 +0.530000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.024000 0.104000 0.081000 0.128000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.009890 0.018000 0.089000 0.099000 0.090000 +0 1 0 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.018000 0.104000 0.111000 0.094000 +0 0 1 +0.440000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.131000 0.094000 0.138000 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.015000 0.093000 0.097000 0.095000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001100 0.020800 0.104000 0.091000 0.114000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.016000 0.107000 0.104000 0.102000 +0 0 1 +0.250000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020100 0.136000 0.150000 0.090000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.018000 0.143000 0.091000 0.157000 +0 0 1 +0.230000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020000 0.156000 0.116000 0.134000 +0 0 1 +0.290000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.027000 0.156000 0.125000 0.125000 +0 0 1 +0.730000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.001300 0.017000 0.059000 0.087000 0.068000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008200 0.020800 0.080000 0.102000 0.078000 +0 1 0 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.026000 0.160000 0.088000 0.180000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004000 0.027000 0.132000 0.139000 0.096000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.015000 0.159000 0.116000 0.136000 +0 0 1 +0.440000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000850 0.017000 0.081000 0.096000 0.084000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.013000 0.108000 0.079000 0.137000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.028000 0.144000 0.116000 0.123000 +0 0 1 +0.340000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.020100 0.105000 0.101000 0.104000 +0 0 1 +0.750000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002080 0.034000 0.135000 0.104000 0.129000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.020100 0.101000 0.096000 0.105000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000620 0.025000 0.111000 0.125000 0.088000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.102000 0.096000 0.106000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001900 0.020100 0.167000 0.111000 0.150000 +0 0 1 +0.210000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001890 0.037000 0.162000 0.147000 0.110000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.126000 0.013000 0.039000 0.108000 0.037000 +1 0 0 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.015000 0.088000 0.094000 0.094000 +0 0 1 +0.440000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001800 0.019000 0.118000 0.107000 0.110000 +0 0 1 +0.520000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001500 0.020100 0.098000 0.088000 0.111000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000510 0.012000 0.076000 0.074000 0.102000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020000 0.106000 0.101000 0.104000 +0 0 1 +0.740000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000990 0.019000 0.121000 0.109000 0.111000 +0 0 1 +0.380000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.015000 0.106000 0.079000 0.134000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000120 0.020100 0.140000 0.092000 0.152000 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000860 0.019000 0.078000 0.085000 0.091000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000490 0.012000 0.088000 0.063000 0.140000 +0 0 1 +0.020000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.136000 0.020100 0.053000 0.077000 0.069000 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.022000 0.113290 0.096000 0.117760 +0 0 1 +0.780000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000700 0.016000 0.102000 0.123000 0.083000 +0 0 1 +0.740000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.017000 0.115000 0.111000 0.104000 +0 0 1 +0.200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.019000 0.094000 0.091000 0.102000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.086000 0.101000 0.085000 +0 0 1 +0.260000 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.000560 0.020800 0.137000 0.091000 0.151000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003600 0.023000 0.114000 0.099000 0.114910 +0 0 1 +0.770000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003900 0.020000 0.105000 0.104000 0.100000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.031000 0.133000 0.153000 0.087000 +0 0 1 +0.790000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003700 0.010000 0.081000 0.082000 0.099000 +0 0 1 +0.600000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.270000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.019000 0.089000 0.085000 0.105000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005200 0.025000 0.094000 0.098000 0.096000 +0 0 1 +0.610000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.018000 0.083000 0.071000 0.117000 +0 0 1 +0.450000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002080 0.020600 0.093000 0.116000 0.080000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.094000 0.109000 0.086000 +0 0 1 +0.480000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020100 0.094000 0.079000 0.119000 +0 0 1 +0.610000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.020100 0.094000 0.086000 0.109000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.017000 0.124000 0.111000 0.112000 +0 0 1 +0.860000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.022000 0.075000 0.082000 0.092000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000190 0.019000 0.109000 0.097000 0.112000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001890 0.020800 0.098000 0.090000 0.108000 +0 0 1 +0.730000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002600 0.016000 0.089000 0.094000 0.095000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020100 0.063000 0.089000 0.071000 +0 0 1 +0.200000 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.000200 0.030000 0.135000 0.129000 0.105000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000310 0.020000 0.123000 0.115000 0.107000 +0 0 1 +0.840000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.014000 0.103000 0.110000 0.094000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005900 0.018000 0.113290 0.096000 0.079000 +0 0 1 +0.760000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003600 0.005000 0.057000 0.099000 0.057450 +0 0 1 +0.690000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.020100 0.086000 0.075000 0.115000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000060 0.019000 0.135000 0.102000 0.132000 +0 0 1 +0.580000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.003200 0.020800 0.075000 0.104000 0.072000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.022000 0.093000 0.108000 0.087000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.620000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000070 0.020000 0.209000 0.096000 0.218000 +0 0 1 +0.830000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000790 0.013000 0.108000 0.076000 0.141000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.028000 0.017000 0.086000 0.102000 0.084000 +0 1 0 +0.350000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.031000 0.026000 0.046000 0.100000 0.046000 +1 0 0 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.017000 0.105000 0.102000 0.103000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000900 0.010000 0.141000 0.102000 0.138000 +0 0 1 +0.600000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.012000 0.031000 0.093000 0.096000 0.096670 +0 0 1 +0.560000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002400 0.020100 0.067000 0.071000 0.094000 +0 0 1 +0.280000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.031000 0.107000 0.104000 0.103000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.035000 0.023000 0.042000 0.101000 0.041000 +1 0 0 +0.610000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001100 0.014000 0.110000 0.099000 0.110880 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.027000 0.120000 0.097000 0.123000 +0 0 1 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020100 0.113000 0.116000 0.096000 +0 0 1 +0.830000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004900 0.012000 0.055000 0.074000 0.074000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.011000 0.100000 0.064000 0.156000 +0 0 1 +0.640000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.002200 0.023000 0.113000 0.069000 0.164000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0.002000 0.023000 0.102000 0.116000 0.088000 +0 0 1 +0.440000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001600 0.017000 0.118000 0.110000 0.107000 +0 0 1 +0.870000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.014000 0.017000 0.089000 0.101000 0.088000 +0 1 0 +0.630000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.025000 0.109000 0.107000 0.102000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001400 0.014000 0.115000 0.091000 0.126000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020600 0.118000 0.102000 0.115000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.020100 0.083000 0.076000 0.108000 +0 0 1 +0.710000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000460 0.014000 0.085000 0.112000 0.077000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.017000 0.076000 0.086000 0.088000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000890 0.019000 0.151000 0.097000 0.155000 +0 0 1 +0.400000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.025000 0.131000 0.091000 0.144000 +0 0 1 +0.250000 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0.008890 0.017000 0.062000 0.075000 0.083000 +0 1 0 +0.700000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000250 0.029000 0.136000 0.144000 0.094000 +0 0 1 +0.750000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.016000 0.102000 0.094000 0.109000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000890 0.013000 0.118000 0.087000 0.136000 +0 0 1 +0.830000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020600 0.095000 0.086000 0.111000 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.020600 0.112000 0.092000 0.121000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007300 0.017000 0.095000 0.095000 0.099370 +0 1 0 +0.630000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.018000 0.073000 0.064000 0.114000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.024000 0.137000 0.119000 0.115000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.430000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.020600 0.098000 0.085000 0.115000 +0 0 1 +0.330000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.020100 0.166000 0.177000 0.094000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.016000 0.077000 0.085000 0.090000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.020600 0.102000 0.103000 0.093000 +0 0 1 +0.330000 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.004500 0.020800 0.083000 0.095000 0.087000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.148000 0.085000 0.174000 +0 0 1 +0.520000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.011900 0.026000 0.079000 0.090000 0.088000 +0 1 0 +0.810000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.019000 0.118000 0.102000 0.116000 +0 0 1 +0.350000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.015000 0.097000 0.085000 0.114000 +0 0 1 +0.550000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.170000 0.110000 0.155000 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.086000 0.096000 0.089390 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.018000 0.105000 0.090000 0.117000 +0 0 1 +0.730000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000800 0.019000 0.121000 0.101000 0.119000 +0 0 1 +0.280000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.020600 0.209000 0.108000 0.194000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004500 0.020100 0.115000 0.125000 0.092000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.027000 0.090000 0.099000 0.091000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.017000 0.118000 0.110000 0.107000 +0 0 1 +0.470000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002300 0.016000 0.075000 0.093000 0.080000 +0 0 1 +0.340000 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0.000060 0.039000 0.148000 0.101000 0.147000 +0 0 1 +0.600000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000170 0.024000 0.165000 0.100000 0.165000 +0 0 1 +0.340000 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0.000060 0.046900 0.157000 0.168000 0.094000 +0 0 1 +0.240000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000150 0.027000 0.116000 0.082000 0.143000 +0 0 1 +0.440000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000060 0.016000 0.113000 0.088000 0.128000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005200 0.020600 0.088000 0.095000 0.092000 +0 0 1 +0.710000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.025000 0.107000 0.100000 0.105000 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0.003200 0.022000 0.118000 0.099000 0.119000 +0 0 1 +0.840000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000040 0.041900 0.151000 0.088000 0.172000 +0 0 1 +0.880000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.013000 0.110000 0.082000 0.134000 +0 0 1 +0.210000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.011000 0.014000 0.082000 0.099000 0.083000 +0 1 0 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.020100 0.107000 0.103000 0.104000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.027000 0.116000 0.113000 0.103000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.350000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.025000 0.126000 0.113000 0.112000 +0 0 1 +0.250000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.025000 0.123000 0.110000 0.111000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.020100 0.082000 0.074000 0.111000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.013000 0.119000 0.088000 0.135000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.017000 0.144000 0.094000 0.153000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.024000 0.115000 0.114000 0.100000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.026000 0.003000 0.006000 0.080000 0.007600 +1 0 0 +0.180000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000100 0.023000 0.098000 0.085000 0.115000 +0 0 1 +0.490000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.018000 0.103000 0.072000 0.143000 +0 0 1 +0.490000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000120 0.023000 0.181000 0.111000 0.164000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.013000 0.062000 0.075000 0.083000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.020100 0.129000 0.108000 0.120000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.022000 0.086000 0.109000 0.079000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000640 0.020100 0.098000 0.063000 0.156000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000870 0.028000 0.113000 0.116000 0.096000 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.039000 0.097000 0.084000 0.115000 +0 0 1 +0.760000 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0.001800 0.025000 0.136000 0.104000 0.129000 +0 0 1 +0.510000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.012000 0.029000 0.044000 0.113000 0.039000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.024000 0.111000 0.112000 0.099000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.004000 0.056000 0.068000 0.083000 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020600 0.128000 0.098000 0.131000 +0 0 1 +0.840000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.014000 0.067000 0.280000 0.085000 0.329000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.025000 0.009000 0.050000 0.084000 0.060000 +1 0 0 +0.580000 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0.001000 0.018000 0.112000 0.072000 0.156000 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.149000 0.137000 0.109000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.032000 0.129000 0.077000 0.168000 +0 0 1 +0.650000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020000 0.105000 0.128000 0.083000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.022000 0.108000 0.112000 0.096000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001890 0.045000 0.171000 0.116000 0.148000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0.001300 0.018000 0.094000 0.086000 0.110000 +0 0 1 +0.150000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.003400 0.020600 0.112000 0.130000 0.086000 +0 0 1 +0.630000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.024000 0.091000 0.079000 0.115000 +0 0 1 +0.160000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.076000 0.093000 0.082000 +0 0 1 +0.440000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003500 0.026000 0.113000 0.109000 0.104000 +0 0 1 +0.370000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.023000 0.077000 0.080000 0.096000 +0 0 1 +0.580000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.024000 0.103000 0.097000 0.107000 +0 0 1 +0.760000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000190 0.016000 0.129000 0.099000 0.130000 +0 0 1 +0.330000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.008790 0.020000 0.091000 0.082000 0.111000 +0 0 1 +0.380000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007100 0.020600 0.130000 0.098000 0.132000 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020100 0.091000 0.089000 0.102000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.710000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020000 0.103000 0.099000 0.104000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.000150 0.020800 0.097000 0.103000 0.095000 +0 0 1 +0.660000 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0.002400 0.020100 0.174000 0.116000 0.150000 +0 0 1 +0.180000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.136000 0.098000 0.138000 +0 0 1 +0.480000 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0.000720 0.017000 0.144000 0.108000 0.133000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007300 0.017000 0.142000 0.126000 0.113000 +0 1 0 +0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000940 0.024000 0.080000 0.104000 0.076000 +0 0 1 +0.600000 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.040000 0.068000 0.100000 0.067000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020800 0.117000 0.109000 0.107000 +0 0 1 +0.760000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.014000 0.099000 0.060000 0.165000 +0 0 1 +0.700000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001400 0.014000 0.071000 0.080000 0.089000 +0 0 1 +0.290000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.024000 0.009600 0.063000 0.120000 0.053000 +1 0 0 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001300 0.024000 0.138000 0.116000 0.118000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.005000 0.104000 0.104000 0.099000 +0 0 1 +0.250000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.020000 0.090000 0.085000 0.106000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.006700 0.020100 0.056000 0.073000 0.077000 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000440 0.011000 0.066000 0.100000 0.066000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003500 0.022000 0.118000 0.101000 0.117000 +0 0 1 +0.740000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004500 0.013000 0.108000 0.096000 0.112260 +0 0 1 +0.390000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001500 0.016000 0.066000 0.115000 0.057000 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.019000 0.084000 0.067000 0.125000 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.017000 0.082000 0.100000 0.081000 +0 0 1 +0.590000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.012000 0.015000 0.088000 0.098000 0.090000 +0 1 0 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.016000 0.098000 0.088000 0.111000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.050000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.020100 0.206000 0.141000 0.146000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.010000 0.092000 0.090000 0.102000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.071000 0.223000 0.100000 0.222000 +0 0 1 +0.440000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.033000 0.082000 0.089000 0.092000 +0 0 1 +0.450000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.026000 0.113000 0.113000 0.100000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.026000 0.111180 0.099000 0.112070 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.065000 0.077000 0.085000 +0 0 1 +0.790000 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.024000 0.099000 0.073000 0.135000 +0 0 1 +0.840000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.020600 0.213000 0.099000 0.216000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.023000 0.116000 0.108000 0.107000 +0 0 1 +0.660000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000060 0.019000 0.158000 0.107000 0.148000 +0 0 1 +0.420000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.026000 0.114000 0.095000 0.120000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000010 0.015000 0.084000 0.099000 0.085000 +0 0 1 +0.750000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000780 0.020800 0.165000 0.100000 0.165000 +0 0 1 +0.540000 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0.000860 0.017000 0.098000 0.096000 0.102000 +0 0 1 +0.690000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000110 0.020100 0.141000 0.090000 0.157000 +0 0 1 +0.790000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.015000 0.139000 0.097000 0.143000 +0 0 1 +0.450000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.026000 0.092000 0.090000 0.102000 +0 0 1 +0.430000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.020600 0.160000 0.103000 0.156000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000030 0.054000 0.162000 0.073000 0.222000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000770 0.019000 0.113000 0.103000 0.110000 +0 0 1 +0.850000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.032000 0.009600 0.055000 0.089000 0.062000 +1 0 0 +0.450000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.020100 0.089000 0.097000 0.092000 +0 0 1 +0.260000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000390 0.018000 0.147000 0.079000 0.185000 +0 0 1 +0.830000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.020100 0.123000 0.097000 0.127000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.012000 0.106000 0.110000 0.096000 +0 0 1 +0.020000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.020600 0.145000 0.093000 0.155000 +0 0 1 +0.920000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000700 0.013000 0.120000 0.084000 0.143000 +0 0 1 +0.790000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.009000 0.086000 0.085000 0.102000 +0 0 1 +0.610000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008790 0.020100 0.166000 0.128000 0.130000 +0 0 1 +0.520000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.019000 0.088000 0.104000 0.085000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000010 0.020000 0.093000 0.097000 0.096000 +0 0 1 +0.280000 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000070 0.020100 0.172000 0.171000 0.101000 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002600 0.022000 0.140000 0.133000 0.105000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.027000 0.155000 0.143000 0.109000 +0 0 1 +0.280000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.020100 0.157000 0.091000 0.173000 +0 0 1 +0.140000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.031000 0.112000 0.104000 0.106000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001900 0.017000 0.107000 0.108000 0.099000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.114000 0.008000 0.004060 0.104000 0.003840 +1 0 0 +0.550000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.009000 0.122000 0.090000 0.136000 +0 0 1 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001400 0.018000 0.097000 0.096000 0.100830 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0.001700 0.011000 0.094000 0.091000 0.103000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.017000 0.092000 0.099000 0.092740 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020100 0.140000 0.096000 0.146000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.027000 0.012000 0.139000 0.109000 0.128000 +0 1 0 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000750 0.020100 0.098000 0.072000 0.135000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.027000 0.023000 0.135000 0.154000 0.088000 +0 1 0 +0.200000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000010 0.048000 0.022000 0.099000 0.022170 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.022000 0.103000 0.135000 0.076000 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000430 0.020600 0.096000 0.088000 0.109000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.030000 0.106000 0.112000 0.096000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.020100 0.024000 0.056000 0.043000 +0 0 1 +0.160000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000480 0.020100 0.161000 0.087000 0.185000 +0 0 1 +0.350000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.000140 0.019000 0.073000 0.116000 0.063000 +0 0 1 +0.810000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.005400 0.020800 0.102000 0.110000 0.093000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001600 0.020100 0.096000 0.096000 0.100000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0.002320 0.020800 0.113290 0.096000 0.117760 +0 0 1 +0.160000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.026000 0.109000 0.099000 0.110000 +0 0 1 +0.820000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.014000 0.115000 0.074000 0.155000 +0 0 1 +0.460000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001100 0.029000 0.125000 0.102000 0.122000 +0 0 1 +0.670000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.028000 0.099000 0.067000 0.148000 +0 0 1 +0.630000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.020100 0.055000 0.090000 0.062000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.025000 0.133000 0.116000 0.115000 +0 0 1 +0.480000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003500 0.035000 0.166000 0.135000 0.123000 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000550 0.011000 0.095000 0.079000 0.120000 +0 0 1 +0.590000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.104000 0.093000 0.112000 +0 0 1 +0.140000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005100 0.028000 0.093000 0.086000 0.109000 +0 0 1 +0.400000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.018000 0.150000 0.104000 0.145000 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004000 0.029000 0.122000 0.102000 0.119000 +0 0 1 +0.570000 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0.000130 0.024000 0.116000 0.089000 0.130000 +0 0 1 +0.440000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.028000 0.017000 0.085000 0.101000 0.084000 +0 1 0 +0.450000 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0.003000 0.020100 0.102000 0.088000 0.116000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.027000 0.017000 0.074000 0.101000 0.074000 +0 1 0 +0.440000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.041000 0.015000 0.048000 0.116000 0.041000 +1 0 0 +0.550000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000030 0.020000 0.109000 0.093000 0.117000 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.023000 0.103000 0.108000 0.095000 +0 0 1 +0.250000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002800 0.026000 0.111000 0.087000 0.127000 +0 0 1 +0.370000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.012000 0.012000 0.105000 0.084000 0.125000 +0 1 0 +0.420000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000920 0.016000 0.089000 0.082000 0.108000 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004500 0.012000 0.108000 0.073000 0.148000 +0 0 1 +0.260000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.017000 0.129000 0.110000 0.116000 +0 0 1 +0.760000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.020100 0.095000 0.092000 0.103000 +0 0 1 +0.400000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.063000 0.088000 0.072000 +0 0 1 +0.820000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003500 0.020100 0.116000 0.074000 0.157000 +0 0 1 +0.570000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000060 0.020100 0.171000 0.092000 0.186000 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000940 0.020100 0.094000 0.095000 0.099000 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003500 0.020000 0.067000 0.073000 0.092000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.016000 0.084000 0.096000 0.087000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.022000 0.106000 0.075000 0.141000 +0 0 1 +0.490000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000230 0.020100 0.126000 0.084000 0.150000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.020100 0.120000 0.111000 0.108000 +0 0 1 +0.370000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.025000 0.017400 0.071000 0.104000 0.068000 +0 1 0 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003900 0.020100 0.142000 0.116000 0.121000 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.001600 0.017000 0.125000 0.096000 0.130000 +0 0 1 +0.310000 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0.002700 0.023000 0.087000 0.116000 0.074000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006100 0.022000 0.136000 0.124000 0.110000 +0 1 0 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.012000 0.015000 0.126000 0.095000 0.133000 +0 1 0 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.024000 0.117000 0.102000 0.115000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.029000 0.116000 0.116000 0.099000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.017000 0.141000 0.115000 0.123000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.038000 0.180000 0.157000 0.115000 +0 0 1 +0.640000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020600 0.089000 0.095000 0.094000 +0 0 1 +0.420000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007600 0.023000 0.131000 0.115000 0.113000 +0 0 1 +0.260000 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.198000 0.009600 0.005000 0.095000 0.005500 +1 0 0 +0.350000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020100 0.115000 0.096000 0.121000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003900 0.020100 0.091000 0.077000 0.118000 +0 0 1 +0.740000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.013000 0.080000 0.074000 0.108000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.024000 0.122000 0.096000 0.126810 +0 0 1 +0.640000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003500 0.018000 0.072000 0.086000 0.084000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000180 0.015000 0.103000 0.096000 0.107060 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000370 0.025000 0.180000 0.123000 0.146000 +0 0 1 +0.480000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.112000 0.090000 0.124000 +0 0 1 +0.580000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005400 0.016000 0.105000 0.099000 0.105840 +0 0 1 +0.150000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.024000 0.100000 0.099000 0.100800 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000250 0.020100 0.102000 0.076000 0.134000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.073000 0.077000 0.095000 +0 0 1 +0.420000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.017000 0.105000 0.091000 0.115000 +0 0 1 +0.430000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000920 0.023000 0.093000 0.086000 0.108000 +0 0 1 +0.580000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.010000 0.020100 0.081000 0.094000 0.086000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000420 0.013000 0.067000 0.108000 0.062000 +0 0 1 +0.490000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.018000 0.086000 0.082000 0.105000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000980 0.020600 0.111180 0.072000 0.118000 +0 0 1 +0.700000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.018000 0.170000 0.099000 0.171000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.015000 0.087000 0.089000 0.098000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000080 0.013000 0.105000 0.104000 0.101000 +0 0 1 +0.430000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006600 0.014000 0.137000 0.112000 0.123000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000700 0.020100 0.093000 0.088000 0.106000 +0 0 1 +0.460000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000060 0.020100 0.161000 0.099000 0.163000 +0 0 1 +0.250000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000700 0.020600 0.183000 0.141000 0.130000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.020100 0.100000 0.076000 0.132000 +0 0 1 +0.670000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.006900 0.017000 0.082000 0.091000 0.090000 +0 1 0 +0.820000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.011000 0.069000 0.064000 0.107000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000850 0.020100 0.196000 0.173000 0.113000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.490000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.020100 0.089000 0.087000 0.102000 +0 0 1 +0.540000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001400 0.015000 0.107000 0.086000 0.124000 +0 0 1 +0.400000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000620 0.012000 0.068000 0.037000 0.184000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.006400 0.023000 0.085000 0.104000 0.080000 +0 1 0 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000200 0.027000 0.079000 0.098000 0.081000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.020000 0.078000 0.084000 0.093000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0.001890 0.016000 0.086000 0.078000 0.111000 +0 0 1 +0.430000 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000020 0.020000 0.183000 0.104000 0.174000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.020600 0.109000 0.111000 0.098000 +0 0 1 +0.400000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000640 0.020000 0.057000 0.068000 0.084000 +0 0 1 +0.680000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004800 0.020800 0.107000 0.099000 0.108000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0.026000 0.030000 0.061000 0.088000 0.069000 +0 0 1 +0.700000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.013000 0.105000 0.094000 0.112000 +0 0 1 +0.780000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.020100 0.068000 0.100000 0.068000 +0 0 1 +0.800000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001100 0.018000 0.094000 0.094000 0.100000 +0 0 1 +0.340000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000400 0.020600 0.109000 0.091000 0.120000 +0 0 1 +0.340000 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.027000 0.044000 0.273000 0.122000 0.222000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001900 0.023000 0.135000 0.107000 0.126000 +0 0 1 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000100 0.018000 0.093000 0.099000 0.093750 +0 0 1 +0.320000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000060 0.029000 0.116000 0.096000 0.120580 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.011000 0.064000 0.067000 0.095000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008000 0.017000 0.076000 0.095000 0.080000 +0 1 0 +0.550000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000010 0.055000 0.219000 0.080000 0.274000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001300 0.020800 0.081000 0.090000 0.090000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.003500 0.015000 0.083000 0.092000 0.090000 +0 0 1 +0.420000 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0.008890 0.013000 0.075000 0.074000 0.102000 +0 0 1 +0.570000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.020100 0.110000 0.094000 0.117000 +0 0 1 +0.190000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.018400 0.020000 0.105000 0.100000 0.104890 +0 1 0 +0.480000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.012000 0.097000 0.090000 0.107000 +0 0 1 +0.500000 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.015000 0.020000 0.071000 0.108000 0.066000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.025000 0.060000 0.091000 0.065000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000100 0.020600 0.113000 0.091000 0.125000 +0 0 1 +0.720000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.012000 0.077000 0.085000 0.091000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.027000 0.113000 0.104000 0.107000 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005300 0.020800 0.092000 0.104000 0.088000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000870 0.013000 0.094000 0.102000 0.092000 +0 0 1 +0.400000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000150 0.017000 0.132000 0.093000 0.141000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020100 0.170000 0.184000 0.092000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.013000 0.121000 0.080000 0.152000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020100 0.105000 0.094000 0.112000 +0 0 1 +0.520000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.028000 0.124000 0.116000 0.106000 +0 0 1 +0.690000 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000010 0.020600 0.176000 0.111000 0.158000 +0 0 1 +0.850000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.128000 0.111000 0.115000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000080 0.025000 0.157000 0.097000 0.162000 +0 0 1 +0.710000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000550 0.011000 0.091000 0.086000 0.105000 +0 0 1 +0.870000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.015000 0.100000 0.120000 0.083000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.020100 0.105000 0.093000 0.113000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001800 0.025000 0.147000 0.113000 0.129000 +0 0 1 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020100 0.112000 0.114000 0.098000 +0 0 1 +0.750000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.012000 0.098000 0.083000 0.118000 +0 0 1 +0.490000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000880 0.012000 0.110000 0.080000 0.138000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003900 0.020100 0.083000 0.086000 0.097000 +0 0 1 +0.420000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.024000 0.009000 0.062000 0.090000 0.069000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000610 0.014000 0.107000 0.086000 0.124000 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.084000 0.078000 0.108000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002000 0.025000 0.090000 0.104000 0.085000 +0 0 1 +0.220000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003700 0.020800 0.083000 0.082000 0.101000 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.023000 0.090000 0.081000 0.112000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020800 0.113000 0.088000 0.128000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000290 0.015000 0.119000 0.090000 0.132000 +0 0 1 +0.900000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004500 0.001000 0.028000 0.079000 0.035000 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004000 0.011000 0.079000 0.073000 0.108000 +0 0 1 +0.110000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000760 0.020600 0.105000 0.085000 0.124000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.015000 0.113000 0.104000 0.106000 +0 0 1 +0.810000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.008200 0.009000 0.128000 0.091000 0.141000 +0 1 0 +0.420000 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0.002300 0.023000 0.093000 0.127000 0.073000 +0 0 1 +0.330000 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0.001600 0.020100 0.085000 0.102000 0.083000 +0 0 1 +0.890000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000700 0.015000 0.120000 0.092000 0.130000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020000 0.130000 0.093000 0.139000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000060 0.031000 0.156000 0.094000 0.166000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.014000 0.095000 0.090000 0.105000 +0 0 1 +0.440000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000950 0.020100 0.115000 0.097000 0.117000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006800 0.017400 0.144000 0.129000 0.111000 +0 1 0 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020600 0.108000 0.115000 0.094000 +0 0 1 +0.230000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000690 0.020100 0.204000 0.134000 0.152000 +0 0 1 +0.510000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.002000 0.020600 0.109000 0.091000 0.120000 +0 0 1 +0.650000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.016000 0.142000 0.101000 0.141000 +0 0 1 +0.820000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006200 0.015000 0.099000 0.090000 0.110000 +0 1 0 +0.570000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.000020 0.020800 0.193000 0.096000 0.200620 +0 0 1 +0.700000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003600 0.010000 0.060000 0.088000 0.068000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.017000 0.104000 0.090000 0.116000 +0 0 1 +0.640000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000850 0.016000 0.122000 0.079000 0.154000 +0 0 1 +0.610000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.024000 0.130000 0.095000 0.137000 +0 0 1 +0.270000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000740 0.020000 0.108000 0.060000 0.180000 +0 0 1 +0.280000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.023000 0.120000 0.094000 0.128000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000690 0.034000 0.147000 0.135000 0.109000 +0 0 1 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.027000 0.108000 0.104000 0.103000 +0 0 1 +0.750000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.120000 0.097000 0.124000 +0 0 1 +0.150000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.018000 0.081000 0.089000 0.091000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.020100 0.110000 0.111000 0.099000 +0 0 1 +0.420000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.000040 0.019000 0.117000 0.077000 0.153000 +0 0 1 +0.250000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000810 0.028000 0.106000 0.132000 0.081000 +0 0 1 +0.500000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000500 0.008000 0.123000 0.116000 0.105000 +0 0 1 +0.540000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000060 0.017000 0.148000 0.095000 0.155000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.020000 0.114000 0.085000 0.134000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.010000 0.139000 0.080000 0.174000 +0 0 1 +0.430000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000020 0.029000 0.130000 0.080000 0.163000 +0 0 1 +0.730000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.007000 0.110000 0.093000 0.118000 +0 0 1 +0.780000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.085000 0.069000 0.123000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.029000 0.087000 0.110000 0.079000 +0 0 1 +0.670000 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0.001300 0.022000 0.104000 0.092000 0.114000 +0 0 1 +0.500000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.020000 0.127000 0.113000 0.113000 +0 0 1 +0.820000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.024000 0.139000 0.115000 0.121000 +0 0 1 +0.460000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.141000 0.098000 0.143000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000150 0.020000 0.098000 0.067000 0.131000 +0 0 1 +0.010000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.006600 0.017000 0.068000 0.100000 0.067930 +0 1 0 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.013000 0.072000 0.090000 0.080000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020100 0.098000 0.128000 0.077000 +0 0 1 +0.830000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000060 0.020000 0.116000 0.071000 0.163000 +0 0 1 +0.590000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.007600 0.020100 0.106000 0.107000 0.100000 +0 0 1 +0.430000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.020100 0.093000 0.069000 0.135000 +0 0 1 +0.720000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.004100 0.019000 0.085000 0.099000 0.085000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005100 0.022000 0.082000 0.078000 0.105000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000080 0.017000 0.074000 0.107000 0.069000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.001890 0.020600 0.089000 0.110000 0.081000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.017000 0.083000 0.086000 0.097000 +0 0 1 +0.660000 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0.000090 0.022000 0.198000 0.097000 0.204000 +0 0 1 +0.220000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.023000 0.081000 0.101000 0.080000 +0 0 1 +0.500000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.015000 0.172000 0.115000 0.149000 +0 0 1 +0.840000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.023000 0.101000 0.081000 0.125000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.025000 0.088000 0.095000 0.093000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.015000 0.087000 0.094000 0.093000 +0 0 1 +0.330000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.022000 0.118000 0.089000 0.132000 +0 0 1 +0.200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000550 0.016000 0.095000 0.085000 0.112000 +0 0 1 +0.390000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001600 0.018000 0.114000 0.098000 0.120000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.510000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000110 0.020800 0.135000 0.108000 0.125000 +0 0 1 +0.250000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.031000 0.129000 0.099000 0.130030 +0 0 1 +0.500000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.020000 0.116000 0.126000 0.092000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000150 0.020100 0.173000 0.112000 0.154000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.183000 0.014000 0.014000 0.131000 0.011000 +1 0 0 +0.700000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.016000 0.086000 0.072000 0.119000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.019000 0.148000 0.113000 0.131000 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.018000 0.134000 0.102000 0.131000 +0 0 1 +0.190000 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0.000450 0.032000 0.130000 0.183000 0.071000 +0 0 1 +0.230000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.004100 0.019000 0.066000 0.085000 0.077000 +0 0 1 +0.850000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.025000 0.194000 0.108000 0.180000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.029000 0.132000 0.104000 0.124000 +0 0 1 +0.220000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020000 0.081000 0.088000 0.092000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000210 0.009000 0.093000 0.087000 0.107000 +0 0 1 +0.500000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001500 0.020100 0.092000 0.087000 0.106000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.013000 0.086000 0.088000 0.099000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020600 0.119000 0.112000 0.106000 +0 0 1 +0.430000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.023000 0.087000 0.093000 0.094000 +0 0 1 +0.270000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000780 0.023000 0.116000 0.073000 0.159000 +0 0 1 +0.710000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.018000 0.097000 0.101000 0.096000 +0 0 1 +0.210000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.018000 0.084000 0.075000 0.113000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000090 0.013000 0.080000 0.102000 0.079000 +0 0 1 +0.580000 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.000800 0.022000 0.097000 0.110000 0.088000 +0 0 1 +0.720000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002320 0.020100 0.102000 0.096000 0.102000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.023000 0.113290 0.096000 0.117760 +0 0 1 +0.500000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.076000 0.005000 0.022000 0.112000 0.019000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.660000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.007000 0.069000 0.093000 0.074000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.028000 0.117000 0.098000 0.114000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000940 0.029000 0.092000 0.093000 0.100000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000700 0.020000 0.045000 0.099000 0.045360 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020600 0.068000 0.064000 0.106000 +0 0 1 +0.590000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.028000 0.142000 0.099000 0.143000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004000 0.020100 0.080000 0.082000 0.098000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.020600 0.095000 0.108000 0.088000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000630 0.016000 0.107000 0.093000 0.115000 +0 0 1 +0.500000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000540 0.018000 0.160000 0.110000 0.146000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000550 0.020600 0.180000 0.104000 0.172000 +0 0 1 +0.880000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020000 0.123000 0.116000 0.107000 +0 0 1 +0.500000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.020000 0.121000 0.104000 0.116000 +0 0 1 +0.640000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.017000 0.077000 0.090000 0.085000 +0 0 1 +0.640000 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0.000730 0.020000 0.152000 0.115000 0.131000 +0 0 1 +0.750000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.032000 0.015000 0.096000 0.098000 0.098000 +0 0 1 +0.290000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.005100 0.020600 0.072000 0.080000 0.090000 +0 0 1 +0.710000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000080 0.020100 0.108000 0.080000 0.134000 +0 0 1 +0.540000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.024000 0.106000 0.100000 0.106000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.018000 0.081000 0.116000 0.070000 +0 0 1 +0.150000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.023000 0.084000 0.098000 0.086000 +0 0 1 +0.210000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.022000 0.015000 0.107000 0.091000 0.118000 +0 1 0 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007900 0.018000 0.093000 0.095000 0.097280 +0 1 0 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000560 0.020100 0.081000 0.090000 0.090000 +0 0 1 +0.150000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.045000 0.097000 0.099000 0.097780 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001300 0.020100 0.117000 0.089000 0.131000 +0 0 1 +0.260000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.009390 0.017400 0.070000 0.095000 0.074000 +0 1 0 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000620 0.020000 0.095000 0.083000 0.115000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.022000 0.088000 0.096000 0.092000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000470 0.014000 0.042000 0.073000 0.058000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002300 0.024000 0.130000 0.111000 0.117000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001600 0.020100 0.117000 0.107000 0.109000 +0 0 1 +0.210000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005100 0.020600 0.087000 0.089000 0.098000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.017000 0.097000 0.079000 0.122000 +0 0 1 +0.790000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007100 0.026000 0.153000 0.123000 0.124000 +0 0 1 +0.610000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000600 0.010000 0.096000 0.093000 0.104000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.009000 0.137000 0.095000 0.144000 +0 0 1 +0.460000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.009700 0.005000 0.037000 0.072000 0.051000 +1 0 0 +0.130000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005000 0.010000 0.103000 0.072000 0.142000 +0 0 1 +0.170000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.011000 0.052000 0.036000 0.145000 +0 0 1 +0.670000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.023000 0.104000 0.104000 0.100000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001200 0.013000 0.109000 0.092000 0.118000 +0 0 1 +0.660000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.017000 0.086000 0.091000 0.094000 +0 0 1 +0.410000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.580000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020100 0.175000 0.108000 0.161000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000340 0.014000 0.100000 0.080000 0.124000 +0 0 1 +0.840000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001100 0.022000 0.115000 0.095000 0.121000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.033000 0.019000 0.065000 0.094000 0.070000 +0 1 0 +0.780000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001000 0.010000 0.102000 0.069000 0.148000 +0 0 1 +0.310000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000910 0.020100 0.128000 0.087000 0.147000 +0 0 1 +0.410000 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.760000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.030000 0.096000 0.081000 0.119000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000740 0.020800 0.127000 0.107000 0.119000 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000470 0.020100 0.185000 0.170000 0.109000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004400 0.023000 0.118000 0.116000 0.101000 +0 0 1 +0.130000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003900 0.020100 0.076000 0.098000 0.077000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006800 0.022000 0.077000 0.100000 0.076920 +0 1 0 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003500 0.020100 0.144000 0.089000 0.162000 +0 0 1 +0.530000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020100 0.096000 0.103000 0.093000 +0 0 1 +0.590000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.020800 0.086000 0.092000 0.093000 +0 0 1 +0.560000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.120000 0.103000 0.116000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.027000 0.161000 0.092000 0.175000 +0 0 1 +0.910000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.020600 0.112000 0.099000 0.113000 +0 0 1 +0.620000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.003300 0.020000 0.116000 0.104000 0.110000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.005200 0.020100 0.098000 0.074000 0.132000 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020600 0.072000 0.075000 0.096000 +0 0 1 +0.530000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001700 0.019000 0.110000 0.073000 0.150000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.022000 0.078000 0.104000 0.075000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.016000 0.112000 0.113000 0.100000 +0 0 1 +0.260000 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.001600 0.020100 0.136000 0.107000 0.128000 +0 0 1 +0.580000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.000400 0.020100 0.077000 0.081000 0.095000 +0 0 1 +0.400000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.073000 0.009600 0.043000 0.087000 0.049000 +1 0 0 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.020000 0.025000 0.058000 0.107000 0.054000 +1 0 0 +0.730000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002400 0.013000 0.043000 0.090000 0.048000 +0 0 1 +0.040000 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.000060 0.020100 0.103000 0.086000 0.120000 +0 0 1 +0.580000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.015000 0.098000 0.072000 0.136000 +0 0 1 +0.710000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020100 0.156000 0.095000 0.164000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005800 0.013000 0.057000 0.096000 0.059250 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.016000 0.121000 0.113000 0.107000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.019000 0.092000 0.092000 0.101000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000050 0.011000 0.069000 0.078000 0.088000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000040 0.020000 0.146000 0.104000 0.139000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.023000 0.119000 0.095000 0.125000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000960 0.020100 0.097000 0.094000 0.103000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.014000 0.120000 0.082000 0.146000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000400 0.019000 0.106000 0.104000 0.100000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.023000 0.109000 0.138000 0.079000 +0 0 1 +0.250000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.083000 0.083000 0.100000 +0 0 1 +0.510000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.020000 0.113000 0.084000 0.134000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.013000 0.089000 0.090000 0.098000 +0 0 1 +0.720000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.022000 0.096000 0.093000 0.103000 +0 0 1 +0.540000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.022000 0.132000 0.093000 0.142000 +0 0 1 +0.300000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.019000 0.107000 0.085000 0.126000 +0 0 1 +0.270000 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0.001890 0.040000 0.187000 0.188000 0.100000 +0 0 1 +0.610000 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0.000020 0.020100 0.113000 0.093000 0.122000 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020100 0.123000 0.116000 0.104000 +0 0 1 +0.830000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.013000 0.100000 0.086000 0.117000 +0 0 1 +0.350000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.017000 0.114000 0.098000 0.115000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.014000 0.095000 0.111000 0.086000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0.035000 0.194000 0.090000 0.215000 +0 0 1 +0.590000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.012000 0.070000 0.071000 0.099000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004190 0.016000 0.101000 0.110000 0.092000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.022000 0.107000 0.112000 0.096000 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.020100 0.109000 0.080000 0.136000 +0 0 1 +0.660000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.006000 0.078000 0.084000 0.093000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000400 0.020600 0.113000 0.104000 0.106000 +0 0 1 +0.660000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020600 0.117000 0.108000 0.108000 +0 0 1 +0.520000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.022000 0.071000 0.078000 0.091000 +0 0 1 +0.730000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001700 0.036000 0.115000 0.123000 0.093000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.020100 0.097000 0.123000 0.079000 +0 0 1 +0.190000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.029000 0.135000 0.081000 0.167000 +0 0 1 +0.750000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001800 0.020000 0.102000 0.083000 0.124000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.012000 0.084000 0.067000 0.125000 +0 0 1 +0.440000 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0.021000 0.020600 0.076000 0.090000 0.084000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.019000 0.115000 0.119000 0.097000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000200 0.038000 0.253000 0.124000 0.204000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.016000 0.128000 0.099000 0.129000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.028000 0.096000 0.082000 0.118000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007300 0.017000 0.127000 0.090000 0.141000 +0 1 0 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000860 0.017000 0.095000 0.096000 0.099000 +0 0 1 +0.570000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.020600 0.121000 0.079000 0.153000 +0 0 1 +0.490000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020600 0.087000 0.091000 0.095000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.020600 0.139000 0.107000 0.129000 +0 0 1 +0.330000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004300 0.023000 0.125000 0.095000 0.132000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.025000 0.106000 0.098000 0.108000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.020100 0.115000 0.097000 0.119000 +0 0 1 +0.250000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.020800 0.102000 0.112000 0.091000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002000 0.016000 0.116000 0.093000 0.125000 +0 0 1 +0.730000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.020600 0.102000 0.089000 0.115000 +0 0 1 +0.440000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002000 0.013000 0.136000 0.094000 0.145000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.029000 0.138000 0.122000 0.113000 +0 0 1 +0.540000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000580 0.026000 0.100000 0.101000 0.099000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.024000 0.127000 0.120000 0.106000 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.020000 0.028000 0.074000 0.095000 0.077400 +0 1 0 +0.670000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.012000 0.123000 0.090000 0.137000 +0 0 1 +0.600000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000090 0.019000 0.142000 0.098000 0.145000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.020100 0.107000 0.099000 0.108000 +0 0 1 +0.770000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.017000 0.128000 0.093000 0.138000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001900 0.020100 0.114000 0.090000 0.127000 +0 0 1 +0.800000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.037000 0.152000 0.093000 0.164000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007900 0.012000 0.073000 0.080000 0.091000 +0 1 0 +0.720000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.020000 0.078000 0.094000 0.087000 +0 0 1 +0.430000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008290 0.019000 0.095000 0.116000 0.081000 +0 1 0 +0.550000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000810 0.025000 0.081000 0.073000 0.112000 +0 0 1 +0.610000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.011000 0.140000 0.090000 0.156000 +0 0 1 +0.590000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.020800 0.086000 0.081000 0.107000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.013000 0.025000 0.096000 0.133000 0.073000 +0 1 0 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.024000 0.101000 0.116000 0.086000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.191000 0.008000 0.005000 0.103000 0.004850 +1 0 0 +0.750000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000970 0.006000 0.080000 0.072000 0.110000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.020800 0.113000 0.109000 0.115000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.420000 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0.000820 0.020800 0.121000 0.077000 0.157000 +0 0 1 +0.850000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000840 0.008000 0.161000 0.097000 0.166000 +0 0 1 +0.240000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.019000 0.068000 0.103000 0.066000 +0 0 1 +0.200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.033000 0.156000 0.167000 0.093000 +0 0 1 +0.280000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.540000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.020100 0.107000 0.108000 0.099000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004000 0.020100 0.086000 0.095000 0.091000 +0 0 1 +0.300000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000610 0.015000 0.082000 0.119000 0.069000 +0 0 1 +0.700000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.013000 0.139000 0.098000 0.142000 +0 0 1 +0.640000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000920 0.020600 0.162000 0.107000 0.152000 +0 0 1 +0.670000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.015000 0.095000 0.078000 0.122000 +0 0 1 +0.490000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020000 0.080000 0.100000 0.080000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.004400 0.020100 0.127000 0.135000 0.094000 +0 0 1 +0.650000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000400 0.020600 0.175000 0.112000 0.156000 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000970 0.020100 0.079000 0.074000 0.107000 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007900 0.022000 0.076000 0.101000 0.075000 +0 1 0 +0.640000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.020100 0.098000 0.090000 0.109000 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001700 0.019000 0.089000 0.088000 0.102000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.018000 0.015000 0.066000 0.100000 0.066000 +0 1 0 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.020100 0.178000 0.113000 0.158000 +0 0 1 +0.820000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020100 0.122000 0.112000 0.109000 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005000 0.022000 0.115000 0.102000 0.114000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001100 0.031000 0.062000 0.094000 0.066000 +0 0 1 +0.800000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.012000 0.039000 0.095000 0.041000 +0 0 1 +0.750000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000700 0.015000 0.112000 0.089000 0.126000 +0 0 1 +0.830000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.013000 0.101000 0.086000 0.117000 +0 0 1 +0.170000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020100 0.102000 0.093000 0.110000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.002800 0.020100 0.114000 0.094000 0.122000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000750 0.020100 0.129000 0.103000 0.125000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.022000 0.081000 0.090000 0.090000 +0 0 1 +0.590000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000990 0.020100 0.070000 0.067000 0.104000 +0 0 1 +0.170000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003600 0.022000 0.111000 0.101000 0.110000 +0 0 1 +0.660000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.003700 0.020100 0.105000 0.083000 0.127000 +0 0 1 +0.720000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.004000 0.020100 0.138000 0.150000 0.092000 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.020800 0.183000 0.102000 0.179000 +0 0 1 +0.710000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000480 0.017000 0.097000 0.104000 0.093000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.024000 0.093000 0.104000 0.089000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.056000 0.049000 0.037000 0.078000 0.047000 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.390000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002600 0.030000 0.125000 0.113000 0.111000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.019000 0.108000 0.093000 0.116000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004500 0.017000 0.171000 0.146000 0.117000 +0 0 1 +0.480000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000070 0.017000 0.104000 0.096000 0.108100 +0 0 1 +0.420000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.019000 0.151000 0.098000 0.154000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.020100 0.125000 0.116000 0.108000 +0 0 1 +0.710000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.005000 0.093000 0.075000 0.124000 +0 0 1 +0.360000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.020100 0.169000 0.098000 0.172000 +0 0 1 +0.700000 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0.037000 0.013000 0.094000 0.100000 0.094000 +0 0 1 +0.490000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.006000 0.026000 0.128000 0.125000 0.102000 +0 0 1 +0.280000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002320 0.020100 0.104000 0.103000 0.101000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000670 0.018000 0.107000 0.085000 0.126000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001200 0.024000 0.134000 0.092000 0.145000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.011000 0.017000 0.069000 0.096000 0.072000 +0 1 0 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020800 0.084000 0.090000 0.093000 +0 0 1 +0.820000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000930 0.011000 0.077000 0.096000 0.080040 +0 0 1 +0.780000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.013000 0.087000 0.089000 0.097000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.012000 0.075000 0.057000 0.132000 +0 0 1 +0.750000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.020000 0.084000 0.090000 0.093000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.025000 0.106000 0.097000 0.110000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.082000 0.108000 0.076000 +0 0 1 +0.150000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.025000 0.144000 0.119000 0.121000 +0 0 1 +0.610000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.025000 0.114000 0.093000 0.122000 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.036000 0.139000 0.153000 0.091000 +0 0 1 +0.380000 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0.000060 0.018000 0.139000 0.099000 0.140120 +0 0 1 +0.640000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020100 0.099000 0.092000 0.108000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.029000 0.115000 0.107000 0.107000 +0 0 1 +0.110000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.440000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000490 0.018000 0.109000 0.082000 0.133000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003500 0.025000 0.123000 0.115000 0.107000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001700 0.020000 0.108000 0.097000 0.111000 +0 0 1 +0.700000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.026000 0.092000 0.089000 0.103000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.037000 0.142000 0.113000 0.126000 +0 0 1 +0.660000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.003600 0.019000 0.082000 0.113000 0.073000 +0 0 1 +0.590000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001000 0.014000 0.083000 0.086000 0.096000 +0 0 1 +0.230000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000010 0.020100 0.127000 0.093000 0.137000 +0 0 1 +0.260000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000890 0.020000 0.080000 0.070000 0.114000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000520 0.014000 0.129000 0.096000 0.134000 +0 0 1 +0.320000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.023000 0.157000 0.104000 0.150000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.009000 0.082000 0.110000 0.075000 +0 0 1 +0.530000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.022000 0.132000 0.088000 0.150000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002000 0.025000 0.109000 0.103000 0.105000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.024000 0.137000 0.116000 0.116000 +0 0 1 +0.510000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020800 0.111000 0.095000 0.117000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.019000 0.076000 0.088000 0.086000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.025000 0.080000 0.088000 0.091000 +0 0 1 +0.250000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.054000 0.152000 0.150000 0.102000 +0 0 1 +0.680000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.002000 0.115000 0.092000 0.126000 +0 0 1 +0.480000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.010000 0.046000 0.066000 0.070000 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.017000 0.094000 0.085000 0.111000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.020100 0.158000 0.091000 0.174000 +0 0 1 +0.820000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020000 0.126000 0.109000 0.116000 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.017000 0.087000 0.087000 0.100000 +0 0 1 +0.470000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.020100 0.119000 0.104000 0.114000 +0 0 1 +0.670000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.004000 0.080000 0.057000 0.140000 +0 0 1 +0.760000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.098000 0.112000 0.087000 +0 0 1 +0.740000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.015000 0.131000 0.112000 0.117000 +0 0 1 +0.160000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.020100 0.143000 0.096000 0.148640 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.025000 0.093000 0.109000 0.085000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.011000 0.013000 0.081000 0.091000 0.089000 +0 1 0 +0.250000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.022000 0.112000 0.098000 0.115000 +0 0 1 +0.520000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002400 0.028000 0.118000 0.101000 0.117000 +0 0 1 +0.310000 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0.000140 0.010000 0.103000 0.066000 0.156000 +0 0 1 +0.720000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.011000 0.108000 0.066000 0.165000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000650 0.009000 0.092000 0.071000 0.129000 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.091000 0.091000 0.100000 +0 0 1 +0.600000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.110000 0.087000 0.126000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000310 0.020100 0.177000 0.091000 0.194000 +0 0 1 +0.780000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001030 0.020100 0.090000 0.102000 0.089000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000170 0.020100 0.075000 0.102000 0.073000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020600 0.129000 0.104000 0.123000 +0 0 1 +0.380000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.026000 0.076000 0.085000 0.089000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.003900 0.020100 0.090000 0.102000 0.088000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004100 0.031000 0.110000 0.104000 0.104000 +0 0 1 +0.530000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003600 0.025000 0.123000 0.100000 0.123000 +0 0 1 +0.650000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.014000 0.078000 0.082000 0.096000 +0 0 1 +0.630000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000070 0.020100 0.100000 0.095000 0.106000 +0 0 1 +0.800000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006100 0.013000 0.083000 0.088000 0.095000 +0 1 0 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.022000 0.086000 0.069000 0.126000 +0 0 1 +0.570000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.001000 0.056000 0.078000 0.072000 +0 0 1 +0.520000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.052000 0.104000 0.049000 +0 0 1 +0.370000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000090 0.019000 0.108000 0.077000 0.140000 +0 0 1 +0.290000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000330 0.022000 0.142000 0.093000 0.153000 +0 0 1 +0.730000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.027000 0.087000 0.107000 0.081000 +0 0 1 +0.190000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.024000 0.106000 0.087000 0.122000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000020 0.020100 0.149000 0.098000 0.152000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000420 0.010000 0.115000 0.111000 0.104000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.180000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.030000 0.143000 0.132000 0.108000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001800 0.020000 0.118000 0.114000 0.103000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000410 0.020100 0.197000 0.176000 0.112000 +0 0 1 +0.360000 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0.002900 0.020000 0.096000 0.091000 0.106000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.014000 0.020100 0.057000 0.083000 0.069000 +0 0 1 +0.340000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000090 0.061000 0.182000 0.100000 0.182000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.019000 0.095000 0.104000 0.090000 +0 0 1 +0.250000 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.002000 0.022000 0.123000 0.152000 0.081000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001700 0.020100 0.095000 0.086000 0.110000 +0 0 1 +0.210000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.014000 0.109000 0.073000 0.148000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.111000 0.111000 0.100000 +0 0 1 +0.680000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.103000 0.097000 0.106000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.014000 0.063000 0.096000 0.065480 +0 0 1 +0.410000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000580 0.020600 0.102000 0.084000 0.121000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.020600 0.103000 0.101000 0.102000 +0 0 1 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001200 0.020100 0.122000 0.084000 0.145000 +0 0 1 +0.740000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.098000 0.035000 0.013000 0.090000 0.014000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.017000 0.076000 0.065000 0.116000 +0 0 1 +0.420000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.026000 0.203000 0.101000 0.200000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.018000 0.106000 0.095000 0.111000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.016000 0.081000 0.110000 0.074000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000720 0.012000 0.061000 0.087000 0.070000 +0 0 1 +0.100000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.020100 0.098000 0.099000 0.099000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.016000 0.129000 0.122000 0.106000 +0 0 1 +0.740000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.009000 0.099000 0.099000 0.100000 +0 0 1 +0.660000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000330 0.022000 0.134000 0.095000 0.141000 +0 0 1 +0.640000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.010000 0.145000 0.099000 0.146160 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020100 0.130000 0.103000 0.126000 +0 0 1 +0.370000 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.001900 0.023000 0.112000 0.087000 0.129000 +0 0 1 +0.630000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.011000 0.124000 0.085000 0.145000 +0 0 1 +0.830000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000380 0.020800 0.090000 0.088000 0.102000 +0 0 1 +0.430000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.006000 0.087000 0.087000 0.100000 +0 0 1 +0.720000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.004900 0.009000 0.099000 0.078000 0.127000 +0 0 1 +0.700000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020100 0.112000 0.095000 0.118000 +0 0 1 +0.640000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000880 0.020100 0.125000 0.087000 0.145000 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.025000 0.111000 0.130000 0.085000 +0 0 1 +0.670000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.016000 0.080000 0.064000 0.125000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005300 0.020100 0.098000 0.075000 0.130000 +0 0 1 +0.180000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.061000 0.077000 0.079000 +0 0 1 +0.400000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000650 0.017000 0.101000 0.093000 0.109000 +0 0 1 +0.760000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.083000 0.096000 0.087000 +0 0 1 +0.650000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.019000 0.134000 0.098000 0.137000 +0 0 1 +0.730000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008500 0.020800 0.104000 0.113000 0.092000 +0 0 1 +0.370000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000610 0.011000 0.073000 0.079000 0.093000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.015000 0.081000 0.086000 0.094000 +0 0 1 +0.521900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020100 0.132000 0.102000 0.129000 +0 0 1 +0.270000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.003200 0.024000 0.102000 0.088000 0.116000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003500 0.011000 0.060000 0.090000 0.067000 +0 0 1 +0.490000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000630 0.011000 0.060000 0.064000 0.094000 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.015000 0.095000 0.067000 0.142000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006600 0.014000 0.115000 0.094000 0.122000 +0 1 0 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000760 0.020100 0.121000 0.111000 0.109000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001300 0.012000 0.123000 0.098000 0.126000 +0 0 1 +0.450000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0.003500 0.020100 0.107000 0.098000 0.109000 +0 0 1 +0.290000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001400 0.033000 0.139000 0.100000 0.139000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003600 0.014000 0.089000 0.076000 0.117000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000820 0.025000 0.097000 0.091000 0.107000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.011000 0.017000 0.106000 0.097000 0.110000 +0 1 0 +0.650000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004190 0.006000 0.058000 0.073000 0.079000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000520 0.020100 0.137000 0.111000 0.123000 +0 0 1 +0.210000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.008000 0.077000 0.096000 0.080040 +0 0 1 +0.530000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.022000 0.091000 0.076000 0.120000 +0 0 1 +0.480000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000550 0.020100 0.081000 0.057000 0.142000 +0 0 1 +0.530000 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0.000080 0.020600 0.127000 0.090000 0.141000 +0 0 1 +0.500000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000150 0.022000 0.151000 0.091000 0.166000 +0 0 1 +0.370000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.098000 0.083000 0.119000 +0 0 1 +0.830000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.020100 0.072000 0.062000 0.116000 +0 0 1 +0.390000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000060 0.024000 0.148000 0.107000 0.138000 +0 0 1 +0.730000 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0.002200 0.025000 0.110000 0.128000 0.085000 +0 0 1 +0.730000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.003000 0.019000 0.106000 0.099000 0.106850 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.038000 0.146000 0.142000 0.103000 +0 0 1 +0.810000 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.001200 0.023000 0.089000 0.114000 0.078000 +0 0 1 +0.380000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000470 0.014000 0.127000 0.096000 0.132000 +0 0 1 +0.210000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007800 0.017000 0.077000 0.076000 0.101000 +0 1 0 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.017000 0.107000 0.101000 0.106000 +0 0 1 +0.810000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.020100 0.138000 0.084000 0.165000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.015000 0.108000 0.094000 0.115000 +0 0 1 +0.280000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.020000 0.099000 0.080000 0.124000 +0 0 1 +0.340000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020800 0.115000 0.104000 0.111000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000300 0.019000 0.117000 0.108000 0.108000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.016000 0.137000 0.095000 0.144000 +0 0 1 +0.790000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005100 0.020000 0.107000 0.104000 0.104000 +0 0 1 +0.610000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000060 0.023000 0.152000 0.093000 0.163000 +0 0 1 +0.300000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.080000 0.086000 0.093000 +0 0 1 +0.520000 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.001200 0.017000 0.092000 0.076000 0.121000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000130 0.013000 0.146000 0.091000 0.160000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.044000 0.009600 0.031000 0.104000 0.029000 +1 0 0 +0.510000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.001000 0.022000 0.069000 0.104000 0.066000 +0 0 1 +0.660000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.017000 0.150000 0.087000 0.172000 +0 0 1 +0.730000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003500 0.016000 0.143000 0.104000 0.134000 +0 0 1 +0.320000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000150 0.029000 0.132000 0.114000 0.116000 +0 0 1 +0.500000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.003500 0.020800 0.177000 0.100000 0.177000 +0 0 1 +0.710000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000990 0.011000 0.129000 0.080000 0.162000 +0 0 1 +0.230000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001300 0.016000 0.079000 0.066000 0.120000 +0 0 1 +0.250000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.023000 0.092000 0.080000 0.114000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.022000 0.107000 0.090000 0.119000 +0 0 1 +0.360000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.024000 0.179000 0.136000 0.131000 +0 0 1 +0.210000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.093000 0.073000 0.127000 +0 0 1 +0.550000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.020000 0.149000 0.109000 0.136000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.018000 0.135000 0.094000 0.145000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.020000 0.126000 0.085000 0.148000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000040 0.038000 0.162000 0.104000 0.155000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000840 0.020100 0.094000 0.097000 0.097000 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020600 0.090000 0.116000 0.077000 +0 0 1 +0.630000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.020600 0.166000 0.097000 0.170000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.089000 0.097000 0.092000 +0 0 1 +0.680000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003800 0.020100 0.134000 0.102000 0.131000 +0 0 1 +0.480000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.016000 0.111180 0.099000 0.112070 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002500 0.020000 0.134000 0.116000 0.115000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.001500 0.029000 0.089000 0.100000 0.089000 +0 0 1 +0.770000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.019000 0.100000 0.098000 0.102000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004000 0.019000 0.069000 0.099000 0.069550 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000640 0.017000 0.102000 0.076000 0.134000 +0 0 1 +0.430000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.020800 0.140000 0.114000 0.123000 +0 0 1 +0.410000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000960 0.020600 0.129000 0.135000 0.096000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001400 0.023000 0.095000 0.098000 0.097000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020000 0.068000 0.093000 0.073000 +0 0 1 +0.710000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.020800 0.087000 0.089000 0.098000 +0 0 1 +0.810000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.018000 0.105000 0.092000 0.114000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.027000 0.130000 0.099000 0.131030 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.032000 0.146000 0.120000 0.122000 +0 0 1 +0.710000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.020600 0.175000 0.104000 0.168000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.020800 0.100000 0.095000 0.105000 +0 0 1 +0.460000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002000 0.009000 0.102000 0.094000 0.109000 +0 0 1 +0.430000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.000520 0.000500 0.046000 0.052000 0.086000 +0 0 1 +0.180000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.095000 0.093000 0.102000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006400 0.009000 0.102000 0.097000 0.106000 +0 1 0 +0.470000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.020100 0.078000 0.096000 0.081000 +0 0 1 +0.850000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.013000 0.111000 0.094000 0.118000 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.023000 0.130000 0.124000 0.105000 +0 0 1 +0.440000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.011000 0.008000 0.086000 0.066000 0.130000 +0 1 0 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000010 0.018000 0.180000 0.082000 0.219000 +0 0 1 +0.590000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000720 0.015000 0.151000 0.096000 0.156960 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.020100 0.147000 0.097000 0.152000 +0 0 1 +0.450000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.016000 0.123000 0.102000 0.120000 +0 0 1 +0.610000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.012000 0.109000 0.078000 0.140000 +0 0 1 +0.660000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000070 0.020600 0.118000 0.094000 0.126000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0.030000 0.145000 0.123000 0.117000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.060000 0.082000 0.072000 +0 0 1 +0.290000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000950 0.020000 0.136000 0.101000 0.134000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0.001100 0.018000 0.081000 0.087000 0.093000 +0 0 1 +0.800000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.013000 0.113290 0.096000 0.117760 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004300 0.030000 0.105000 0.099000 0.106000 +0 0 1 +0.090000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.032000 0.125000 0.085000 0.147000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.024000 0.099000 0.113000 0.088000 +0 0 1 +0.840000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.018000 0.082000 0.092000 0.089000 +0 0 1 +0.320000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.001800 0.022000 0.101000 0.113000 0.090000 +0 0 1 +0.200000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002000 0.031000 0.135000 0.116000 0.115000 +0 0 1 +0.740000 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0.001100 0.019000 0.106000 0.116000 0.091000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.022000 0.134000 0.116000 0.114000 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.033000 0.157000 0.128000 0.123000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.006000 0.086000 0.087000 0.100000 +0 0 1 +0.700000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.020000 0.119000 0.086000 0.138000 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.118000 0.111000 0.107000 +0 0 1 +0.630000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.020100 0.087000 0.073000 0.119000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.012000 0.090000 0.082000 0.110000 +0 0 1 +0.490000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.000270 0.018000 0.098000 0.108000 0.091000 +0 0 1 +0.400000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000630 0.020100 0.074000 0.099000 0.075000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008590 0.037000 0.131000 0.165000 0.079000 +0 1 0 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001400 0.023000 0.122000 0.110000 0.111000 +0 0 1 +0.430000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.014000 0.066000 0.078000 0.085000 +0 0 1 +0.550000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000010 0.022000 0.172000 0.110000 0.157000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.013000 0.084000 0.063000 0.133000 +0 0 1 +0.610000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020000 0.121000 0.089000 0.136000 +0 0 1 +0.400000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.020800 0.112000 0.125000 0.090000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001600 0.020100 0.110000 0.103000 0.106000 +0 0 1 +0.400000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.134000 0.120000 0.112000 +0 0 1 +0.280000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.018000 0.109000 0.091000 0.119000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000060 0.053000 0.210000 0.087000 0.241000 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.207000 0.166000 0.125000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003800 0.017000 0.092000 0.103000 0.090000 +0 0 1 +0.640000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.020800 0.090000 0.089000 0.101000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.002800 0.020000 0.093000 0.104000 0.089000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.017000 0.095000 0.079000 0.121000 +0 0 1 +0.280000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.003700 0.028000 0.100000 0.099000 0.100800 +0 0 1 +0.320000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.090000 0.079000 0.114000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000960 0.020100 0.095000 0.082000 0.116000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.010000 0.067000 0.096000 0.070000 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.020600 0.111000 0.110000 0.101000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000080 0.045000 0.198000 0.115000 0.172000 +0 0 1 +0.700000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000460 0.015000 0.118000 0.075000 0.157000 +0 0 1 +0.440000 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.003000 0.014000 0.103000 0.088000 0.118000 +0 0 1 +0.540000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004000 0.020000 0.110000 0.099000 0.111000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.020800 0.121000 0.102000 0.118000 +0 0 1 +0.610000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000200 0.038000 0.252000 0.113000 0.222000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.017000 0.107000 0.084000 0.127000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.000990 0.015000 0.063000 0.056000 0.113000 +0 0 1 +0.850000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.009000 0.111000 0.104000 0.107000 +0 0 1 +0.680000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001500 0.020000 0.101000 0.088000 0.115000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003800 0.020100 0.104000 0.099000 0.106000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000850 0.020800 0.093000 0.096000 0.096670 +0 0 1 +0.690000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004900 0.020600 0.116000 0.110000 0.105000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.023000 0.113000 0.096000 0.118000 +0 0 1 +0.740000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000610 0.009000 0.115000 0.075000 0.153000 +0 0 1 +0.840000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.017000 0.009600 0.035000 0.083000 0.042000 +1 0 0 +0.760000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.024000 0.136000 0.107000 0.127000 +0 0 1 +0.170000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000980 0.016000 0.138000 0.084000 0.164000 +0 0 1 +0.560000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.020100 0.101000 0.079000 0.128000 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020000 0.101000 0.113000 0.088000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.027000 0.018000 0.065000 0.099000 0.066000 +0 1 0 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.011000 0.126000 0.089000 0.142000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000150 0.051000 0.167000 0.100000 0.168000 +0 0 1 +0.770000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000370 0.017000 0.140000 0.077000 0.182000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000420 0.019000 0.109000 0.077000 0.138000 +0 0 1 +0.300000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.020800 0.116000 0.067000 0.173000 +0 0 1 +0.610000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.020100 0.087000 0.080000 0.109000 +0 0 1 +0.140000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020100 0.114000 0.103000 0.111000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004400 0.016000 0.100000 0.101000 0.099000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000400 0.016000 0.113000 0.099000 0.114000 +0 0 1 +0.280000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.020600 0.138000 0.121000 0.115000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002000 0.017000 0.115000 0.104000 0.105000 +0 0 1 +0.710000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000830 0.030000 0.154000 0.114000 0.135000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.026000 0.139000 0.090000 0.153000 +0 0 1 +0.290000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000660 0.020800 0.109000 0.114000 0.096000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001200 0.020800 0.130000 0.099000 0.131000 +0 0 1 +0.460000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.020600 0.098000 0.094000 0.104000 +0 0 1 +0.400000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.020000 0.088000 0.099000 0.088700 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.022000 0.106000 0.091000 0.117000 +0 0 1 +0.210000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001200 0.016000 0.099000 0.087000 0.114000 +0 0 1 +0.510000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020100 0.095000 0.077000 0.123000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000070 0.031000 0.156000 0.081000 0.193000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020600 0.140000 0.141000 0.099000 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.020600 0.059000 0.050000 0.119000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008200 0.014000 0.127000 0.111000 0.114000 +0 1 0 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.015000 0.124000 0.108000 0.115000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.017000 0.102000 0.098000 0.104000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.023000 0.192000 0.147000 0.130000 +0 0 1 +0.630000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.020600 0.117000 0.098000 0.120000 +0 0 1 +0.550000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.023000 0.143000 0.095000 0.151000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.018000 0.082000 0.084000 0.099000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000020 0.044000 0.235000 0.092000 0.255000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.012000 0.017000 0.067000 0.087000 0.077000 +0 1 0 +0.810000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.013000 0.107000 0.085000 0.126000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.024000 0.129000 0.094000 0.137000 +0 0 1 +0.450000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.014000 0.086000 0.075000 0.114000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.052000 0.012000 0.065000 0.092000 0.071000 +0 1 0 +0.400000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000910 0.031000 0.102000 0.075000 0.136000 +0 0 1 +0.810000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006200 0.017000 0.098000 0.084000 0.117000 +0 1 0 +0.190000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000180 0.020100 0.224000 0.134000 0.167000 +0 0 1 +0.420000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.020100 0.099000 0.085000 0.117000 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.020100 0.092000 0.083000 0.111000 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.016000 0.084000 0.091000 0.092000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000340 0.007000 0.066000 0.116000 0.056000 +0 0 1 +0.530000 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0.000030 0.020600 0.052000 0.109000 0.140000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004100 0.020000 0.125000 0.097000 0.128000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002200 0.020100 0.099000 0.103000 0.095000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000640 0.014000 0.110000 0.078000 0.142000 +0 0 1 +0.810000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020000 0.097000 0.120000 0.081000 +0 0 1 +0.630000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.085000 0.075000 0.113000 +0 0 1 +0.800000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.172000 0.009600 0.029000 0.084000 0.035000 +1 0 0 +0.450000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000750 0.023000 0.119000 0.094000 0.126000 +0 0 1 +0.710000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008000 0.017400 0.066000 0.066000 0.100000 +0 1 0 +0.410000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000400 0.020600 0.091000 0.096000 0.095000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.280000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000680 0.020100 0.118000 0.096000 0.122660 +0 0 1 +0.780000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008200 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020100 0.121000 0.129000 0.094000 +0 0 1 +0.850000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006000 0.020000 0.103000 0.099000 0.103830 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.011000 0.092000 0.084000 0.110000 +0 0 1 +0.750000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.000250 0.034000 0.151000 0.113000 0.134000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.016000 0.069000 0.082000 0.083000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003700 0.028000 0.092000 0.122000 0.075000 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000520 0.024000 0.158000 0.116000 0.134000 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000650 0.020100 0.098000 0.081000 0.121000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.024000 0.088000 0.062000 0.142000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.098000 0.089000 0.110000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.016000 0.111000 0.077000 0.145000 +0 0 1 +0.400000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.023000 0.087000 0.096000 0.090000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005000 0.013000 0.113000 0.084000 0.135000 +0 0 1 +0.110000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.027000 0.099000 0.100000 0.099000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020100 0.101000 0.090000 0.112000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000100 0.025000 0.100000 0.098000 0.103000 +0 0 1 +0.550000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.017000 0.126000 0.124000 0.101000 +0 0 1 +0.130000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004000 0.020100 0.102000 0.080000 0.128000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.019000 0.092000 0.100000 0.092000 +0 0 1 +0.630000 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.003200 0.017000 0.087000 0.075000 0.116000 +0 0 1 +0.540000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000700 0.020000 0.101000 0.109000 0.092000 +0 0 1 +0.620000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.069000 0.087000 0.079000 +0 0 1 +0.610000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.010000 0.008000 0.099000 0.097000 0.102000 +0 1 0 +0.300000 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0.000990 0.019000 0.119000 0.083000 0.143000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.020100 0.101000 0.092000 0.110000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.183000 0.160000 0.114000 +0 0 1 +0.490000 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0.001900 0.020100 0.122000 0.078000 0.156000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.200000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000540 0.020100 0.075000 0.071000 0.106000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.020600 0.098000 0.102000 0.096000 +0 0 1 +0.490000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003700 0.020000 0.091000 0.085000 0.107000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001800 0.022000 0.091000 0.085000 0.107000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.015000 0.125000 0.104000 0.118000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.033000 0.153000 0.119000 0.129000 +0 0 1 +0.150000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.015000 0.135000 0.099000 0.136080 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.020000 0.099000 0.096000 0.103000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.075000 0.068000 0.110000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001300 0.020100 0.124000 0.086000 0.144000 +0 0 1 +0.590000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.019000 0.133000 0.099000 0.134000 +0 0 1 +0.240000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002700 0.024000 0.139000 0.098000 0.142000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.003600 0.020000 0.084000 0.078000 0.108000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.020100 0.081000 0.086000 0.094000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.370000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000610 0.016000 0.116000 0.091000 0.127000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.016000 0.125000 0.095000 0.132000 +0 0 1 +0.330000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.020600 0.112000 0.083000 0.134000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.026000 0.111000 0.104000 0.105000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0.039000 0.017400 0.083000 0.116000 0.070000 +0 1 0 +0.490000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.068000 0.003000 0.068000 0.088000 0.077000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.006200 0.007000 0.055000 0.058000 0.096000 +0 1 0 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.009000 0.097000 0.093000 0.104000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.018000 0.003000 0.044000 0.056000 0.077000 +0 1 0 +0.490000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.013000 0.077000 0.065000 0.118000 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.020800 0.080000 0.089000 0.091000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000270 0.020800 0.092000 0.104000 0.088000 +0 0 1 +0.560000 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0.000200 0.025000 0.138000 0.115000 0.119000 +0 0 1 +0.220000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.020100 0.159000 0.104000 0.153000 +0 0 1 +0.300000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000970 0.017000 0.051000 0.056000 0.091000 +0 0 1 +0.630000 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.013000 0.096000 0.092000 0.104000 +0 0 1 +0.570000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001000 0.016000 0.073000 0.097000 0.075000 +0 0 1 +0.460000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.028000 0.181000 0.126000 0.144000 +0 0 1 +0.700000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001900 0.018000 0.114000 0.102000 0.112000 +0 0 1 +0.490000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.003700 0.020000 0.053000 0.071000 0.075000 +0 0 1 +0.810000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.097000 0.096000 0.100830 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005000 0.023000 0.082000 0.102000 0.080000 +0 0 1 +0.480000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.010000 0.060000 0.074000 0.081000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001500 0.020100 0.150000 0.160000 0.094000 +0 0 1 +0.800000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.022000 0.113000 0.116000 0.097000 +0 0 1 +0.810000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.013000 0.011000 0.110000 0.084000 0.131000 +0 1 0 +0.580000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000830 0.020800 0.127000 0.101000 0.126000 +0 0 1 +0.130000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.094000 0.091000 0.103000 +0 0 1 +0.380000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.017000 0.084000 0.099000 0.085000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.020800 0.093000 0.104000 0.088000 +0 0 1 +0.460000 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0.005300 0.016000 0.093000 0.091000 0.102000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.004800 0.020100 0.057000 0.080000 0.071000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000080 0.022000 0.130000 0.091000 0.143000 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000630 0.020100 0.111000 0.099000 0.113000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002500 0.031000 0.119000 0.123000 0.097000 +0 0 1 +0.590000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.020000 0.102000 0.082000 0.125000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.016000 0.131000 0.095000 0.138000 +0 0 1 +0.730000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.003900 0.009000 0.062000 0.054000 0.115000 +0 0 1 +0.130000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020800 0.082000 0.088000 0.093000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001700 0.024000 0.126000 0.092000 0.136000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.020100 0.078000 0.055000 0.142000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.011000 0.017000 0.073000 0.078000 0.094000 +0 1 0 +0.190000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.590000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001800 0.025000 0.102000 0.110000 0.093000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.071000 0.184000 0.103000 0.177000 +0 0 1 +0.370000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.022000 0.080000 0.107000 0.075000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020100 0.085000 0.073000 0.116000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008090 0.020800 0.118000 0.104000 0.112000 +0 1 0 +0.290000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001400 0.038000 0.127000 0.114000 0.112000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.004300 0.012000 0.027000 0.103000 0.026000 +0 0 1 +0.540000 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.003500 0.017000 0.113000 0.096000 0.117460 +0 0 1 +0.540000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000400 0.020600 0.060000 0.087000 0.069000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.018000 0.094000 0.082000 0.115000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000250 0.020800 0.145000 0.103000 0.141000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002300 0.023000 0.111000 0.104000 0.105000 +0 0 1 +0.240000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000770 0.028000 0.110000 0.091000 0.121000 +0 0 1 +0.290000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.020100 0.089000 0.074000 0.121000 +0 0 1 +0.790000 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001900 0.020000 0.189000 0.104000 0.180000 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000150 0.027000 0.133000 0.104000 0.127000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.020000 0.120000 0.096000 0.125000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.020100 0.108000 0.109000 0.099000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.161000 0.090000 0.180000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.022000 0.107000 0.095000 0.113000 +0 0 1 +0.470000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.020100 0.074000 0.058000 0.125000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0.000200 0.022000 0.106000 0.075000 0.141000 +0 0 1 +0.760000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004600 0.020100 0.065000 0.091000 0.071000 +0 0 1 +0.230000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.740000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020800 0.120000 0.098000 0.122000 +0 0 1 +0.670000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000700 0.020100 0.099000 0.094000 0.105000 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.022000 0.083000 0.080000 0.104000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.530000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000700 0.020600 0.046000 0.087000 0.052000 +0 0 1 +0.470000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000550 0.018000 0.134000 0.097000 0.138000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.022000 0.111180 0.099000 0.112070 +0 0 1 +0.580000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.019000 0.133000 0.099000 0.134000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001700 0.018000 0.072000 0.069000 0.104000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000600 0.020000 0.114000 0.100000 0.114000 +0 0 1 +0.840000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000410 0.011000 0.148000 0.109000 0.136000 +0 0 1 +0.260000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000040 0.016000 0.097000 0.100000 0.095000 +0 0 1 +0.670000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004800 0.012000 0.128000 0.092000 0.139000 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000150 0.020100 0.102000 0.096000 0.106000 +0 0 1 +0.630000 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0.000080 0.019000 0.186000 0.096000 0.193340 +0 0 1 +0.680000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.009000 0.076000 0.063000 0.121000 +0 0 1 +0.670000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005500 0.022000 0.107000 0.086000 0.124000 +0 0 1 +0.610000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001000 0.014000 0.118000 0.102000 0.116000 +0 0 1 +0.520000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.044000 0.025000 0.066000 0.122000 0.054000 +1 0 0 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.024000 0.011000 0.100000 0.082000 0.122000 +0 1 0 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.020800 0.164000 0.136000 0.121000 +0 0 1 +0.510000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.034000 0.017000 0.123000 0.107000 0.115000 +0 1 0 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003600 0.020100 0.110000 0.104000 0.106000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.002600 0.020100 0.083000 0.107000 0.078000 +0 0 1 +0.710000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006300 0.014000 0.066000 0.064000 0.103000 +0 1 0 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.025000 0.104000 0.120000 0.086000 +0 0 1 +0.390000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.013000 0.086000 0.102000 0.084000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.023000 0.119000 0.090000 0.132000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.016000 0.083000 0.070000 0.118000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020100 0.141000 0.097000 0.145000 +0 0 1 +0.580000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002700 0.023000 0.091000 0.099000 0.092000 +0 0 1 +0.180000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.041000 0.017400 0.118000 0.113000 0.105000 +0 1 0 +0.660000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.019000 0.091000 0.096000 0.095000 +0 0 1 +0.430000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.000550 0.029000 0.128000 0.087000 0.148000 +0 0 1 +0.760000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000970 0.020100 0.063000 0.088000 0.072000 +0 0 1 +0.430000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.018000 0.121000 0.094000 0.129000 +0 0 1 +0.590000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.027000 0.117000 0.074000 0.157000 +0 0 1 +0.690000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.001000 0.054000 0.071000 0.076000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.019000 0.093000 0.084000 0.111000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001890 0.066000 0.248000 0.089000 0.280000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.006500 0.023000 0.101000 0.114000 0.089000 +0 1 0 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.016000 0.073000 0.080000 0.092000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.020800 0.117000 0.095000 0.123000 +0 0 1 +0.650000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.015000 0.110000 0.080000 0.137000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001100 0.023000 0.060000 0.089000 0.068000 +0 0 1 +0.210000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.009500 0.020800 0.140000 0.149000 0.094000 +0 1 0 +0.610000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000920 0.020100 0.128000 0.102000 0.125000 +0 0 1 +0.190000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.023000 0.082000 0.088000 0.092000 +0 0 1 +0.840000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.004000 0.024000 0.123000 0.096000 0.127850 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.090000 0.091000 0.099000 +0 0 1 +0.510000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.025000 0.117000 0.083000 0.141000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.018000 0.082000 0.077000 0.107000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.019000 0.102000 0.087000 0.118000 +0 0 1 +0.180000 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0.025000 0.011000 0.136000 0.096000 0.143000 +0 0 1 +0.400000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.006000 0.079000 0.091000 0.087000 +0 0 1 +0.480000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.006900 0.115000 0.080000 0.144000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.025000 0.180000 0.125000 0.144000 +0 0 1 +0.450000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.009000 0.028000 0.237000 0.116000 0.203000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000740 0.029000 0.100000 0.104000 0.095000 +0 0 1 +0.520000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.020000 0.083000 0.063000 0.132000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.017000 0.094000 0.100000 0.094000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.004500 0.020100 0.097000 0.085000 0.114000 +0 0 1 +0.140000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.030000 0.128000 0.111000 0.116000 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.006600 0.015000 0.111000 0.086000 0.129000 +0 1 0 +0.430000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000890 0.020000 0.094000 0.099000 0.094750 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000190 0.013000 0.100000 0.085000 0.118000 +0 0 1 +0.670000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.019000 0.109000 0.103000 0.106000 +0 0 1 +0.820000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000760 0.023000 0.093000 0.101000 0.092000 +0 0 1 +0.390000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.019000 0.094000 0.093000 0.101000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.003000 0.073000 0.078000 0.094000 +0 0 1 +0.720000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.020000 0.106000 0.101000 0.105000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.011000 0.020800 0.095000 0.107000 0.089000 +0 1 0 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.018000 0.019000 0.097000 0.093000 0.104000 +0 1 0 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.073000 0.023000 0.087000 0.112000 0.078000 +0 1 0 +0.580000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.023000 0.102000 0.100000 0.102000 +0 0 1 +0.720000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.001600 0.020800 0.114000 0.114000 0.100000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000810 0.020100 0.126000 0.096000 0.131000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.020800 0.093000 0.096000 0.097000 +0 0 1 +0.410000 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.008390 0.017000 0.094000 0.084000 0.112000 +0 1 0 +0.810000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000600 0.006000 0.123000 0.091000 0.135000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008090 0.018000 0.059000 0.096000 0.061000 +1 0 0 +0.800000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.005300 0.020000 0.086000 0.102000 0.083000 +0 0 1 +0.570000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.105000 0.094000 0.111000 +0 0 1 +0.760000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000070 0.020800 0.094000 0.100000 0.094000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003500 0.020000 0.106000 0.090000 0.118000 +0 0 1 +0.220000 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000090 0.022000 0.189000 0.102000 0.185000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.001200 0.020600 0.115000 0.097000 0.114000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.420000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.017000 0.124000 0.049000 0.253000 +0 0 1 +0.120000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.030000 0.176000 0.089000 0.197000 +0 0 1 +0.320000 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0.000020 0.037000 0.139000 0.134000 0.104000 +0 0 1 +0.730000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.018000 0.082000 0.093000 0.088000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.026000 0.020000 0.089000 0.150000 0.059000 +1 0 0 +0.420000 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0.000020 0.040000 0.200000 0.156000 0.128000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0.005800 0.011000 0.047000 0.099000 0.048000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005600 0.022000 0.099000 0.102000 0.097000 +0 0 1 +0.440000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.029000 0.165000 0.112000 0.147000 +0 0 1 +0.540000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.023000 0.077000 0.090000 0.086000 +0 0 1 +0.500000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.017000 0.185000 0.080000 0.231000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.017000 0.056000 0.090000 0.062000 +0 0 1 +0.440000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.013000 0.093000 0.087000 0.107000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.090000 0.090000 0.100000 +0 0 1 +0.370000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000700 0.026000 0.098000 0.095000 0.103000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001040 0.025000 0.116000 0.089000 0.131000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.028000 0.025000 0.091590 0.100000 0.091500 +0 1 0 +0.690000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.015000 0.130000 0.086000 0.151000 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.090000 0.089000 0.101000 +0 0 1 +0.800000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.013000 0.118000 0.112000 0.105000 +0 0 1 +0.180000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.001100 0.020100 0.071000 0.061000 0.116000 +0 0 1 +0.730000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.016000 0.097000 0.078000 0.125000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0.002320 0.019000 0.113290 0.096000 0.117760 +0 0 1 +0.490000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.087000 0.120000 0.073000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.022000 0.096000 0.086000 0.111000 +0 0 1 +0.470000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.020800 0.099000 0.085000 0.117000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.014000 0.144000 0.099000 0.145160 +0 0 1 +0.450000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020100 0.117000 0.099000 0.118000 +0 0 1 +0.490000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.118000 0.088000 0.134000 +0 0 1 +0.470000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000490 0.017000 0.101000 0.075000 0.134000 +0 0 1 +0.290000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000460 0.023000 0.096000 0.065000 0.148000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.005200 0.011000 0.112000 0.078000 0.143000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000370 0.020100 0.165000 0.164000 0.101000 +0 0 1 +0.450000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.106000 0.096000 0.110000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.020100 0.077000 0.063000 0.122000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.020100 0.159000 0.104000 0.153000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.025000 0.098000 0.104000 0.092000 +0 0 1 +0.460000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001800 0.020100 0.116000 0.094000 0.123000 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.016000 0.099000 0.092000 0.108000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020100 0.166000 0.135000 0.123000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002600 0.007000 0.115000 0.099000 0.115920 +0 0 1 +0.160000 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0.029000 0.019000 0.058000 0.103000 0.056000 +1 0 0 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001890 0.028000 0.111180 0.099000 0.112070 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.870000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.010000 0.002000 0.043000 0.063000 0.068000 +0 0 1 +0.580000 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0.000500 0.023000 0.115000 0.100000 0.115000 +0 0 1 +0.260000 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0.001200 0.040000 0.168000 0.157000 0.106000 +0 0 1 +0.400000 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0.000150 0.030000 0.210000 0.148000 0.142000 +0 0 1 +0.800000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.020000 0.141000 0.104000 0.134000 +0 0 1 +0.630000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.022000 0.083000 0.099000 0.083660 +0 0 1 +0.580000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.077000 0.089000 0.087000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.020800 0.098000 0.090000 0.109000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000670 0.020100 0.108000 0.099000 0.109000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.800000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000910 0.007000 0.099000 0.094000 0.105000 +0 0 1 +0.760000 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0.000350 0.014000 0.139000 0.092000 0.151000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.025000 0.134000 0.113000 0.119000 +0 0 1 +0.420000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000070 0.022000 0.138000 0.085000 0.162000 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.016000 0.094000 0.104000 0.089000 +0 0 1 +0.450000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.019000 0.105000 0.090000 0.117000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.012000 0.017400 0.077000 0.104000 0.073000 +0 1 0 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.016000 0.084000 0.087000 0.097000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.000080 0.020600 0.126000 0.100000 0.126000 +0 0 1 +0.640000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000910 0.011000 0.170000 0.096000 0.176000 +0 0 1 +0.490000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.013000 0.108000 0.083000 0.130000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003600 0.016000 0.099000 0.094000 0.105000 +0 0 1 +0.630000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.016000 0.124000 0.089000 0.139000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000040 0.020000 0.104000 0.087000 0.120000 +0 0 1 +0.630000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006600 0.022000 0.103000 0.086000 0.120000 +0 0 1 +0.730000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.019000 0.099000 0.083000 0.119000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.016000 0.105000 0.087000 0.120000 +0 0 1 +0.270000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001400 0.023000 0.132000 0.094000 0.140000 +0 0 1 +0.930000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.137000 0.104000 0.131000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020100 0.092000 0.103000 0.089000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.017000 0.097000 0.091000 0.107000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002200 0.018000 0.123000 0.104000 0.118000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.005200 0.020100 0.103000 0.146000 0.071000 +0 0 1 +0.850000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.007300 0.024000 0.066000 0.109000 0.061000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020000 0.088000 0.095000 0.092000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000570 0.018000 0.128000 0.114000 0.112000 +0 0 1 +0.480000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.020800 0.055000 0.085000 0.065000 +0 0 1 +0.740000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.000120 0.023000 0.106000 0.092000 0.115000 +0 0 1 +0.600000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001700 0.017000 0.109000 0.084000 0.130000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004500 0.020100 0.074000 0.136000 0.054000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.124000 0.101000 0.122000 +0 0 1 +0.850000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020100 0.114000 0.061000 0.187000 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005900 0.012000 0.053000 0.079000 0.067000 +0 0 1 +0.210000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.115000 0.071000 0.162000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020100 0.157000 0.104000 0.148000 +0 0 1 +0.730000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020600 0.087000 0.092000 0.095000 +0 0 1 +0.200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.031000 0.135000 0.099000 0.136080 +0 0 1 +0.590000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.005500 0.007000 0.077000 0.074000 0.104000 +0 0 1 +0.110000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.028000 0.092000 0.097000 0.095000 +0 0 1 +0.750000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.018000 0.078000 0.065000 0.121000 +0 0 1 +0.560000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.167000 0.154000 0.108000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.068000 0.109000 0.096000 0.113000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000130 0.020100 0.197000 0.089000 0.221000 +0 0 1 +0.510000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.106000 0.004000 0.010000 0.111000 0.008700 +1 0 0 +0.760000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000060 0.039000 0.186000 0.094000 0.198000 +0 0 1 +0.220000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.020000 0.075000 0.096000 0.077960 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.017000 0.116000 0.099000 0.116930 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000070 0.009000 0.061000 0.099000 0.061000 +0 0 1 +0.210000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008500 0.016000 0.112000 0.091000 0.123000 +0 1 0 +0.740000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.005400 0.014000 0.109000 0.083000 0.131000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006300 0.017000 0.146000 0.122000 0.119000 +0 1 0 +0.610000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.020600 0.113000 0.082000 0.138000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.003600 0.018000 0.139000 0.111000 0.125000 +0 0 1 +0.210000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.107000 0.107000 0.100000 +0 0 1 +0.530000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020800 0.075000 0.086000 0.087000 +0 0 1 +0.400000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.071000 0.101000 0.070000 +0 0 1 +0.700000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000150 0.020600 0.162000 0.112000 0.146000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.020100 0.118000 0.088000 0.133000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007900 0.046900 0.123000 0.028000 0.445000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002000 0.030000 0.097000 0.114000 0.085000 +0 0 1 +0.490000 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0.032000 0.020800 0.082000 0.073000 0.112000 +0 1 0 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.031000 0.151000 0.140000 0.108000 +0 0 1 +0.390000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.007100 0.017000 0.106000 0.094000 0.114000 +0 1 0 +0.490000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.020800 0.183000 0.102000 0.179000 +0 0 1 +0.390000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.028000 0.148000 0.109000 0.136000 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020800 0.087000 0.093000 0.094000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.018000 0.142000 0.104000 0.135000 +0 0 1 +0.730000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000400 0.023000 0.094000 0.090000 0.105000 +0 0 1 +0.590000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000150 0.028000 0.084000 0.099000 0.086000 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000740 0.039000 0.148000 0.153000 0.097000 +0 0 1 +0.430000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.065000 0.093000 0.070000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000270 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.740000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.004400 0.024000 0.115000 0.114000 0.101000 +0 0 1 +0.560000 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000040 0.020100 0.134000 0.066000 0.204000 +0 0 1 +0.610000 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001200 0.023000 0.096000 0.072000 0.133000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000830 0.020100 0.123000 0.115000 0.107000 +0 0 1 +0.570000 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.022000 0.024000 0.112000 0.096000 0.116420 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000570 0.020100 0.138000 0.076000 0.182000 +0 0 1 +0.440000 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0.004400 0.019000 0.082000 0.090000 0.090000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000070 0.023000 0.124000 0.082000 0.151000 +0 0 1 +0.300000 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0.000500 0.022000 0.124000 0.131000 0.095000 +0 0 1 +0.560000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020100 0.111000 0.093000 0.119000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.020800 0.112000 0.099000 0.112900 +0 0 1 +0.250000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.017000 0.167000 0.121000 0.137000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.020100 0.125000 0.108000 0.115000 +0 0 1 +0.370000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001100 0.024000 0.106000 0.097000 0.109000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.013000 0.019000 0.061000 0.082000 0.074000 +0 1 0 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000790 0.017000 0.118000 0.099000 0.119000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004300 0.020100 0.141000 0.173000 0.081000 +0 0 1 +0.620000 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0.000620 0.020100 0.154000 0.175000 0.088000 +0 0 1 +0.540000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007000 0.020600 0.095000 0.098000 0.098000 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000760 0.034000 0.129000 0.153000 0.084000 +0 0 1 +0.200000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004690 0.030000 0.109000 0.104000 0.103000 +0 0 1 +0.300000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.020600 0.097000 0.069000 0.141000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.019000 0.097000 0.100000 0.097000 +0 0 1 +0.700000 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0.002080 0.017000 0.131000 0.100000 0.130000 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000550 0.020800 0.075000 0.101000 0.074000 +0 0 1 +0.660000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007100 0.023000 0.090000 0.098000 0.092000 +0 1 0 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000870 0.019000 0.116000 0.099000 0.116930 +0 0 1 +0.510000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000580 0.016000 0.115000 0.099000 0.115920 +0 0 1 +0.080000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.009290 0.024000 0.126000 0.096000 0.131000 +0 0 1 +0.880000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.022000 0.101000 0.100000 0.101000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.032000 0.108000 0.107000 0.100000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003800 0.019000 0.119000 0.100000 0.119000 +0 0 1 +0.440000 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005200 0.020100 0.065000 0.107000 0.061000 +0 0 1 +0.510000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.119000 0.094000 0.127000 +0 0 1 +0.470000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.020100 0.113000 0.091000 0.125000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.022000 0.088000 0.090000 0.098000 +0 0 1 +0.340000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.024000 0.094000 0.116000 0.081000 +0 0 1 +0.500000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.003300 0.019000 0.113290 0.116000 0.105000 +0 0 1 +0.560000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.109000 0.089000 0.122000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.192000 0.009600 0.031210 0.102000 0.030420 +1 0 0 +0.190000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.019000 0.111000 0.108000 0.102000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.001300 0.020100 0.125000 0.094000 0.133000 +0 0 1 +0.640000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.100000 0.091000 0.110000 +0 0 1 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020100 0.075000 0.075000 0.100000 +0 0 1 +0.820000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.370000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.019000 0.156000 0.096000 0.162160 +0 0 1 +0.380000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000400 0.020000 0.091000 0.078000 0.117000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.020100 0.148000 0.103000 0.144000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0.000020 0.014000 0.090000 0.081000 0.111000 +0 0 1 +0.700000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003600 0.022000 0.094000 0.081000 0.116000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000910 0.010000 0.102000 0.091000 0.112000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005400 0.015000 0.102000 0.096000 0.106000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000060 0.023000 0.130000 0.103000 0.126000 +0 0 1 +0.580000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.016000 0.111180 0.099000 0.112070 +0 0 1 +0.740000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.003000 0.012000 0.096000 0.093000 0.103000 +0 0 1 +0.690000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004600 0.020100 0.180000 0.146000 0.123000 +0 0 1 +0.750000 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000370 0.017000 0.101000 0.077000 0.131000 +0 0 1 +0.460000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001800 0.020100 0.123000 0.099000 0.124000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020800 0.113000 0.094000 0.120000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.013000 0.104000 0.104000 0.099000 +0 0 1 +0.760000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002600 0.022000 0.162000 0.104000 0.156000 +0 0 1 +0.450000 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0.002500 0.020100 0.108000 0.098000 0.110000 +0 0 1 +0.520000 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.105000 0.083000 0.127000 +0 0 1 +0.590000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.020000 0.074000 0.069000 0.107000 +0 0 1 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.112000 0.097000 0.116000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.018000 0.099000 0.103000 0.096000 +0 0 1 +0.330000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002080 0.039000 0.115000 0.104000 0.110000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.023000 0.018000 0.087000 0.096000 0.091000 +0 1 0 +0.660000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007500 0.017000 0.127000 0.097000 0.131000 +0 1 0 +0.530000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.012000 0.105000 0.091000 0.115000 +0 0 1 +0.430000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113000 0.093000 0.122000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.178000 0.100000 0.178000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.041900 0.126000 0.110000 0.115000 +0 0 1 +0.490000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.030000 0.125000 0.124000 0.101000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004100 0.020100 0.080000 0.093000 0.086000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020000 0.099000 0.102000 0.097000 +0 0 1 +0.500000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.028000 0.002000 0.033000 0.070000 0.047000 +1 0 0 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.016000 0.088000 0.089000 0.100000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.020100 0.178000 0.071000 0.251000 +0 0 1 +0.310000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.020100 0.113000 0.076000 0.149000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001400 0.016000 0.086000 0.074000 0.111000 +0 0 1 +0.240000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.077000 0.095000 0.081000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001500 0.020600 0.103000 0.107000 0.097000 +0 0 1 +0.380000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002200 0.020600 0.093000 0.115000 0.081000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.023000 0.104000 0.099000 0.104830 +0 0 1 +0.180000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.020800 0.079000 0.110000 0.072000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.013000 0.101000 0.099000 0.101810 +0 0 1 +0.200000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.020100 0.182000 0.143000 0.127000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020100 0.118000 0.100000 0.118000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000740 0.020600 0.074000 0.077000 0.097000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.020100 0.093000 0.077000 0.121000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.020100 0.046000 0.058000 0.079000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004300 0.017000 0.076000 0.099000 0.076610 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000720 0.020100 0.131000 0.091000 0.143000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.024000 0.092000 0.085000 0.108000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.038000 0.012000 0.060000 0.103000 0.058000 +1 0 0 +0.300000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000240 0.018000 0.188000 0.096000 0.195420 +0 0 1 +0.440000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.020000 0.115000 0.110000 0.104000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.020600 0.084000 0.095000 0.088000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.008200 0.017000 0.065000 0.096000 0.068000 +0 1 0 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.024000 0.082000 0.091000 0.090000 +0 0 1 +0.840000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.015000 0.128000 0.089000 0.144000 +0 0 1 +0.390000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006900 0.016000 0.125000 0.102000 0.123000 +0 0 1 +0.350000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000100 0.028000 0.138000 0.113000 0.122000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.026000 0.132000 0.103000 0.128000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.106000 0.006000 0.005000 0.089000 0.005500 +1 0 0 +0.330000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.016000 0.017000 0.075000 0.100000 0.074920 +0 1 0 +0.440000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000410 0.008000 0.105000 0.082000 0.127000 +0 0 1 +0.200000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.026000 0.106000 0.091000 0.116000 +0 0 1 +0.490000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000760 0.019000 0.099000 0.119000 0.083000 +0 0 1 +0.380000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000540 0.017000 0.113000 0.094000 0.120000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.007000 0.069000 0.077000 0.089000 +0 0 1 +0.630000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.020600 0.080000 0.084000 0.095000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.015000 0.102000 0.095000 0.108000 +0 0 1 +0.810000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.018000 0.076000 0.102000 0.075000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.066000 0.009600 0.028000 0.107000 0.026000 +1 0 0 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000610 0.016000 0.103000 0.093000 0.111000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.046900 0.172000 0.183000 0.094000 +0 0 1 +0.530000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.020100 0.117000 0.095000 0.123000 +0 0 1 +0.540000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002700 0.020100 0.139000 0.108000 0.129000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.800000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000940 0.011000 0.133000 0.083000 0.160000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0.001400 0.028000 0.087000 0.114000 0.087000 +0 0 1 +0.370000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000600 0.020800 0.148000 0.119000 0.124000 +0 0 1 +0.820000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020100 0.086000 0.080000 0.108000 +0 0 1 +0.260000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.023000 0.115000 0.085000 0.136000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.016000 0.110000 0.098000 0.112000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.024000 0.019000 0.065000 0.100000 0.064930 +0 1 0 +0.410000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.740000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000280 0.013000 0.138000 0.083000 0.166000 +0 0 1 +0.540000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000720 0.020100 0.120000 0.097000 0.123000 +0 0 1 +0.480000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.023000 0.089000 0.083000 0.107000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.023000 0.089000 0.094000 0.095000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.029000 0.016000 0.047000 0.097000 0.048000 +1 0 0 +0.490000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.027000 0.141000 0.116000 0.120000 +0 0 1 +0.640000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.020100 0.065000 0.082000 0.080000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.010000 0.169000 0.096000 0.175670 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.020100 0.115000 0.098000 0.117000 +0 0 1 +0.200000 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0.000400 0.023000 0.132000 0.083000 0.159000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005300 0.020000 0.142000 0.115000 0.123000 +0 0 1 +0.660000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.016000 0.120000 0.091000 0.132000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.470000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.022000 0.098000 0.077000 0.127000 +0 0 1 +0.720000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020100 0.079000 0.096000 0.082000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.019000 0.081000 0.083000 0.098000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.022000 0.099000 0.107000 0.092000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.051000 0.187000 0.116000 0.160000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020000 0.081000 0.076000 0.106000 +0 0 1 +0.760000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.033000 0.024000 0.064000 0.116000 0.055000 +1 0 0 +0.660000 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0.000090 0.034000 0.153000 0.233000 0.066000 +0 0 1 +0.490000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.023000 0.113000 0.102000 0.111000 +0 0 1 +0.320000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.020000 0.088000 0.084000 0.105000 +0 0 1 +0.330000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000010 0.024000 0.139000 0.096000 0.145000 +0 0 1 +0.170000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020600 0.154000 0.134000 0.115000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.030000 0.161000 0.174000 0.093000 +0 0 1 +0.440000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.016000 0.107000 0.115000 0.093000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.020000 0.090000 0.090000 0.100000 +0 0 1 +0.830000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.012000 0.099000 0.088000 0.112000 +0 0 1 +0.430000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.060000 0.122000 0.050000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000710 0.043000 0.129000 0.162000 0.079000 +0 0 1 +0.290000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.015000 0.020600 0.113000 0.113000 0.100000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0.000200 0.011000 0.187000 0.095000 0.197000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020000 0.093000 0.101000 0.093000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020600 0.085000 0.079000 0.108000 +0 0 1 +0.250000 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0.001100 0.026000 0.212000 0.175000 0.121000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004690 0.016000 0.072000 0.085000 0.085000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.019000 0.091000 0.103000 0.089000 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000710 0.022000 0.091000 0.094000 0.096000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000690 0.019000 0.129000 0.102000 0.126000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003600 0.020600 0.129000 0.114000 0.114000 +0 0 1 +0.650000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.019000 0.093000 0.097000 0.096000 +0 0 1 +0.640000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.017000 0.085000 0.099000 0.085680 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.020100 0.111000 0.102000 0.109000 +0 0 1 +0.310000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020100 0.108000 0.094000 0.115000 +0 0 1 +0.650000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.023000 0.017000 0.078000 0.092000 0.085000 +0 1 0 +0.240000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.020800 0.091000 0.093000 0.098000 +0 0 1 +0.520000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.020100 0.121000 0.088000 0.138000 +0 0 1 +0.710000 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000500 0.020600 0.126000 0.102000 0.124000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.022000 0.102000 0.090000 0.113000 +0 0 1 +0.830000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.015000 0.091000 0.081000 0.113000 +0 0 1 +0.560000 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0.006000 0.020100 0.110000 0.103000 0.107000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.053000 0.272000 0.097000 0.281000 +0 0 1 +0.460000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000900 0.012000 0.097000 0.091000 0.107000 +0 0 1 +0.940000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.009000 0.106000 0.114000 0.093000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020100 0.102000 0.110000 0.093000 +0 0 1 +0.170000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.020100 0.077000 0.091000 0.085000 +0 0 1 +0.190000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003600 0.017000 0.076000 0.078000 0.098000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.015000 0.128000 0.096000 0.133050 +0 0 1 +0.710000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.016000 0.122000 0.081000 0.152000 +0 0 1 +0.490000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002080 0.020100 0.114000 0.085000 0.135000 +0 0 1 +0.350000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.025000 0.161000 0.126000 0.128000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.024000 0.087000 0.094000 0.093000 +0 0 1 +0.800000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.014000 0.111000 0.097000 0.115000 +0 0 1 +0.580000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000490 0.020600 0.172000 0.115000 0.150000 +0 0 1 +0.720000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.022000 0.128000 0.112000 0.114000 +0 0 1 +0.660000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.001000 0.037000 0.052000 0.071000 +0 0 1 +0.430000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.410000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.028000 0.110000 0.114000 0.097000 +0 0 1 +0.580000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.034000 0.091000 0.097000 0.094000 +0 0 1 +0.950000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020100 0.098000 0.091000 0.108000 +0 0 1 +0.200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.024000 0.137000 0.135000 0.101000 +0 0 1 +0.250000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008790 0.022000 0.109000 0.097000 0.113000 +0 1 0 +0.190000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003600 0.017000 0.102000 0.096000 0.106020 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000440 0.017000 0.115000 0.087000 0.133000 +0 0 1 +0.650000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.023000 0.100000 0.111000 0.090000 +0 0 1 +0.790000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.007000 0.116000 0.085000 0.137000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.009000 0.102000 0.071000 0.144000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000810 0.003000 0.061000 0.054000 0.113000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.038000 0.177000 0.175000 0.101000 +0 0 1 +0.330000 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0.001200 0.022000 0.117000 0.094000 0.126000 +0 0 1 +0.180000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.066000 0.078000 0.085000 +0 0 1 +0.430000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.026000 0.095000 0.104000 0.090000 +0 0 1 +0.640000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.020100 0.111000 0.097000 0.114000 +0 0 1 +0.710000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.018000 0.086000 0.081000 0.106000 +0 0 1 +0.780000 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0.001200 0.012000 0.082000 0.101000 0.081000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000290 0.020600 0.098000 0.103000 0.095000 +0 0 1 +0.710000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.012000 0.127000 0.089000 0.143000 +0 0 1 +0.660000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.020800 0.108000 0.096000 0.112000 +0 0 1 +0.740000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.017000 0.080000 0.095000 0.084000 +0 0 1 +0.550000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000070 0.020100 0.092000 0.058000 0.157000 +0 0 1 +0.690000 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0.001300 0.017000 0.116000 0.095000 0.122000 +0 0 1 +0.430000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000830 0.033000 0.144000 0.116000 0.122000 +0 0 1 +0.290000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007000 0.020600 0.098000 0.085000 0.114000 +0 0 1 +0.640000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001300 0.024000 0.111000 0.115000 0.097000 +0 0 1 +0.560000 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0.005200 0.020600 0.137000 0.128000 0.107000 +0 0 1 +0.290000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.026000 0.157000 0.131000 0.120000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004500 0.031000 0.109000 0.109000 0.100000 +0 0 1 +0.420000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000040 0.031000 0.119000 0.080000 0.149000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000060 0.033000 0.095000 0.091000 0.104000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000680 0.020000 0.107000 0.097000 0.110000 +0 0 1 +0.500000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.020100 0.165000 0.090000 0.182000 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000760 0.023000 0.090000 0.094000 0.096000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000280 0.020800 0.116000 0.114000 0.102000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020000 0.103000 0.109000 0.095000 +0 0 1 +0.360000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000030 0.040000 0.178000 0.114000 0.156000 +0 0 1 +0.750000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.014000 0.079000 0.079000 0.101000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020100 0.110000 0.100000 0.110000 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.027000 0.137000 0.114000 0.120000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.009000 0.100000 0.101000 0.100000 +0 0 1 +0.790000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002900 0.008000 0.074000 0.072000 0.103000 +0 0 1 +0.780000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006300 0.013000 0.120000 0.111000 0.109000 +0 0 1 +0.470000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.024000 0.150000 0.110000 0.136000 +0 0 1 +0.440000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.020100 0.189000 0.100000 0.190000 +0 0 1 +0.490000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.018000 0.081000 0.091000 0.088000 +0 0 1 +0.150000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.118000 0.128000 0.093000 +0 0 1 +0.180000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000740 0.023000 0.143000 0.115000 0.124000 +0 0 1 +0.830000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002700 0.013000 0.100000 0.083000 0.121000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.022000 0.126000 0.116000 0.109000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000370 0.026000 0.108000 0.107000 0.101000 +0 0 1 +0.720000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020100 0.090000 0.089000 0.102000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.020000 0.054000 0.166000 0.033000 +0 0 1 +0.600000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000180 0.020800 0.132000 0.110000 0.120000 +0 0 1 +0.460000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.020800 0.108000 0.091000 0.119000 +0 0 1 +0.690000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000080 0.020100 0.114000 0.045000 0.253000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.017000 0.120000 0.091000 0.132000 +0 0 1 +0.750000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020800 0.115000 0.097000 0.119000 +0 0 1 +0.200000 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.000030 0.020000 0.092000 0.103000 0.089000 +0 0 1 +0.440000 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.014000 0.076000 0.057000 0.132000 +0 0 1 +0.810000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.494000 0.005000 0.012000 0.139000 0.009000 +1 0 0 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.014000 0.124000 0.086000 0.144000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000200 0.015000 0.157000 0.091000 0.172000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004190 0.022000 0.142000 0.096000 0.147600 +0 0 1 +0.420000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000070 0.020000 0.099000 0.086000 0.115000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.036000 0.144000 0.084000 0.171000 +0 0 1 +0.720000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001800 0.017000 0.114000 0.103000 0.111000 +0 0 1 +0.740000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001200 0.020100 0.080000 0.095000 0.084000 +0 0 1 +0.430000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000010 0.020600 0.171000 0.098000 0.174000 +0 0 1 +0.190000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006600 0.018000 0.122000 0.116000 0.104000 +0 0 1 +0.370000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.030000 0.114000 0.093000 0.122000 +0 0 1 +0.110000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.089000 0.089000 0.100000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005000 0.020100 0.093000 0.099000 0.093000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006800 0.019000 0.090000 0.098000 0.092000 +0 1 0 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.020100 0.053000 0.054000 0.098000 +0 0 1 +0.530000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.026000 0.118000 0.110000 0.107000 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.109000 0.103000 0.106000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.007500 0.017000 0.081000 0.103000 0.079000 +0 1 0 +0.550000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.018000 0.103000 0.089000 0.115000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.024000 0.132000 0.121000 0.109000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000940 0.020000 0.102000 0.086000 0.119000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.008000 0.074000 0.075000 0.099000 +0 0 1 +0.400000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.016000 0.075000 0.076000 0.099000 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000070 0.056000 0.292000 0.098000 0.298000 +0 0 1 +0.490000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004900 0.007000 0.082000 0.079000 0.104000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.011000 0.131000 0.104000 0.126000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.072000 0.092000 0.078000 +0 0 1 +0.820000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020100 0.116000 0.092000 0.126000 +0 0 1 +0.540000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000910 0.018000 0.125000 0.074000 0.169000 +0 0 1 +0.620000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000400 0.025000 0.129000 0.104000 0.124000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.022000 0.182000 0.137000 0.133000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000060 0.020100 0.117000 0.086000 0.136000 +0 0 1 +0.800000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.020100 0.111000 0.088000 0.127000 +0 0 1 +0.260000 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0.000410 0.020100 0.177000 0.149000 0.119000 +0 0 1 +0.500000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007600 0.017000 0.128000 0.108000 0.118000 +0 1 0 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.020100 0.187000 0.072000 0.262000 +0 0 1 +0.250000 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0.000250 0.034000 0.101000 0.099000 0.101810 +0 0 1 +0.420000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.020000 0.129000 0.102000 0.126000 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020100 0.104000 0.080000 0.130000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.019000 0.087000 0.112000 0.078000 +0 0 1 +0.660000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.015000 0.077000 0.096000 0.080040 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000100 0.019000 0.126000 0.076000 0.163000 +0 0 1 +0.890000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.012000 0.070000 0.104000 0.066000 +0 0 1 +0.670000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001700 0.020600 0.082000 0.089000 0.092000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.230000 0.015000 0.036000 0.134000 0.027000 +1 0 0 +0.300000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002600 0.017000 0.082000 0.103000 0.079000 +0 0 1 +0.700000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020800 0.091000 0.099000 0.092000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005000 0.020600 0.101000 0.088000 0.115000 +0 0 1 +0.540000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020000 0.092000 0.100000 0.092000 +0 0 1 +0.320000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000990 0.025000 0.101000 0.098000 0.103000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.017000 0.085000 0.092000 0.092000 +0 0 1 +0.590000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000700 0.028000 0.087000 0.100000 0.087000 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.022000 0.074000 0.086000 0.086000 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.020000 0.139000 0.082000 0.170000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.024000 0.102000 0.131000 0.078000 +0 0 1 +0.660000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.025000 0.142000 0.125000 0.113000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.015000 0.102000 0.080000 0.128000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000330 0.023000 0.099000 0.098000 0.101000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.003700 0.028000 0.190000 0.140000 0.136000 +0 0 1 +0.520000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003800 0.015000 0.111000 0.073000 0.152000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000890 0.020100 0.118000 0.091000 0.130000 +0 0 1 +0.620000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.071000 0.072000 0.099000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001400 0.020100 0.101000 0.101000 0.100000 +0 0 1 +0.580000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000650 0.030000 0.092000 0.095000 0.092000 +0 0 1 +0.500000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.020100 0.163000 0.089000 0.182000 +0 0 1 +0.540000 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.088000 0.087000 0.100000 +0 0 1 +0.810000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002300 0.024000 0.155000 0.113000 0.137000 +0 0 1 +0.320000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.004100 0.020600 0.117000 0.151000 0.078000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.038000 0.157000 0.152000 0.103000 +0 0 1 +0.500000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.014000 0.113000 0.096000 0.117460 +0 0 1 +0.210000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020800 0.096000 0.085000 0.112000 +0 0 1 +0.830000 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0.001500 0.020100 0.159000 0.098000 0.162000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.020600 0.114000 0.089000 0.129000 +0 0 1 +0.200000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001000 0.024000 0.165000 0.097000 0.170000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.036000 0.119000 0.090000 0.133000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.017000 0.092000 0.096000 0.096000 +0 0 1 +0.540000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.022000 0.116000 0.103000 0.112000 +0 0 1 +0.660000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006900 0.017000 0.095000 0.104000 0.090000 +0 1 0 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.054000 0.020800 0.050000 0.110000 0.046000 +1 0 0 +0.580000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000950 0.020100 0.120000 0.108000 0.110000 +0 0 1 +0.360000 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.002300 0.020100 0.095000 0.091000 0.104000 +0 0 1 +0.610000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.011000 0.024000 0.059000 0.088000 0.067000 +0 0 1 +0.370000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.024000 0.016000 0.095000 0.086000 0.110000 +0 0 1 +0.800000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000970 0.017000 0.083000 0.097000 0.086000 +0 0 1 +0.530000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.003900 0.020600 0.114000 0.116000 0.097000 +0 0 1 +0.340000 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0.000030 0.041900 0.134000 0.165000 0.081000 +0 0 1 +0.590000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020800 0.077000 0.072000 0.107000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0.001100 0.020100 0.103000 0.099000 0.104000 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000690 0.020100 0.094000 0.110000 0.086000 +0 0 1 +0.100000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.020100 0.083000 0.093000 0.089000 +0 0 1 +0.590000 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000280 0.020100 0.114000 0.094000 0.121000 +0 0 1 +0.230000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000660 0.023000 0.114000 0.088000 0.129000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.010000 0.054000 0.078000 0.070000 +0 0 1 +0.660000 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.005000 0.020000 0.106000 0.104000 0.101000 +0 0 1 +0.640000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.017000 0.020100 0.109000 0.101000 0.108000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004900 0.019000 0.090000 0.098000 0.092000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.034000 0.091000 0.110000 0.083000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000450 0.025000 0.126000 0.108000 0.117000 +0 0 1 +0.710000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.007000 0.108000 0.069000 0.156000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001100 0.020100 0.146000 0.108000 0.136000 +0 0 1 +0.310000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001200 0.027000 0.099000 0.088000 0.113000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.087000 0.097000 0.090000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.000430 0.020100 0.107000 0.098000 0.109000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000070 0.011000 0.145000 0.087000 0.167000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.026000 0.118000 0.119000 0.099000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.006500 0.019000 0.088000 0.102000 0.086000 +0 1 0 +0.490000 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.003000 0.022000 0.091000 0.086000 0.105000 +0 0 1 +0.630000 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.008090 0.020600 0.082000 0.069000 0.119000 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.016000 0.140000 0.101000 0.138000 +0 0 1 +0.340000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000080 0.041000 0.115000 0.096000 0.120000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.015000 0.124000 0.088000 0.141000 +0 0 1 +0.870000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000200 0.034000 0.164000 0.082000 0.200000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.020100 0.178000 0.157000 0.114000 +0 0 1 +0.440000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005900 0.024000 0.061000 0.099000 0.061490 +0 0 1 +0.820000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.073000 0.010000 0.025000 0.099000 0.025000 +1 0 0 +0.300000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020100 0.143000 0.097000 0.147000 +0 0 1 +0.400000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.152000 0.150000 0.102000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000010 0.020600 0.176000 0.102000 0.171000 +0 0 1 +0.480000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001200 0.024000 0.122000 0.104000 0.117000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.004300 0.037000 0.124000 0.146000 0.085000 +0 0 1 +0.410000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.015000 0.123000 0.096000 0.127850 +0 0 1 +0.630000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.018000 0.094000 0.088000 0.107000 +0 0 1 +0.200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.020100 0.188000 0.181000 0.104000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003900 0.020100 0.080000 0.075000 0.107000 +0 0 1 +0.340000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002200 0.023000 0.099000 0.079000 0.125000 +0 0 1 +0.720000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005300 0.010000 0.097000 0.065000 0.150000 +0 0 1 +0.540000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.020600 0.147000 0.107000 0.138000 +0 0 1 +0.600000 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.017000 0.075000 0.103000 0.072000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000730 0.022000 0.106000 0.074000 0.143000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.024000 0.112000 0.102000 0.110000 +0 0 1 +0.760000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.018000 0.099000 0.080000 0.124000 +0 0 1 +0.520000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.018000 0.086000 0.086000 0.101000 +0 0 1 +0.540000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.019000 0.089000 0.085000 0.104000 +0 0 1 +0.370000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000540 0.025000 0.170000 0.140000 0.121000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020100 0.108000 0.093000 0.116000 +0 0 1 +0.280000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.059000 0.183000 0.082000 0.223000 +0 0 1 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001890 0.036000 0.176000 0.143000 0.123000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.160000 0.104000 0.152000 +0 0 1 +0.430000 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0.003500 0.017000 0.099000 0.114000 0.087000 +0 0 1 +0.850000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.197000 0.009600 0.014000 0.062000 0.023000 +1 0 0 +0.590000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.018000 0.101000 0.107000 0.094000 +0 0 1 +0.490000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000020 0.037000 0.178000 0.096000 0.185030 +0 0 1 +0.630000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.008000 0.074000 0.085000 0.087000 +0 0 1 +0.860000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.013000 0.017400 0.087000 0.092000 0.094000 +0 1 0 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.020000 0.177000 0.116000 0.150000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.020000 0.086000 0.086000 0.100000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020600 0.090000 0.107000 0.084000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.007300 0.020800 0.139000 0.115000 0.121000 +0 1 0 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.017000 0.071000 0.072000 0.099000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.059000 0.019000 0.038000 0.113000 0.034000 +1 0 0 +0.590000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002080 0.020800 0.107000 0.093000 0.115000 +0 0 1 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.020800 0.086000 0.099000 0.086000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.020100 0.083000 0.084000 0.099000 +0 0 1 +0.600000 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.000650 0.020100 0.114000 0.095000 0.120000 +0 0 1 +0.330000 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.000560 0.024000 0.097000 0.096000 0.100830 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000030 0.044000 0.195000 0.082000 0.237000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020100 0.090000 0.087000 0.103000 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.011000 0.096000 0.094000 0.102000 +0 0 1 +0.580000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.023000 0.077000 0.099000 0.077620 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.089000 0.116000 0.076000 +0 0 1 +0.720000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.018000 0.126000 0.081000 0.156000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000340 0.009000 0.150000 0.090000 0.167000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002000 0.027000 0.121000 0.097000 0.125000 +0 0 1 +0.490000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.096000 0.004000 0.002900 0.120000 0.002400 +1 0 0 +0.690000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001400 0.019000 0.136000 0.085000 0.159000 +0 0 1 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.081000 0.085000 0.095000 +0 0 1 +0.510000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.028000 0.132000 0.095000 0.139000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.020100 0.072000 0.075000 0.096000 +0 0 1 +0.540000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.590000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.020000 0.164000 0.092000 0.178000 +0 0 1 +0.610000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.017000 0.079000 0.078000 0.101000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001300 0.019000 0.066000 0.096000 0.068000 +0 0 1 +0.700000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.003200 0.010000 0.085000 0.058000 0.144000 +0 0 1 +0.170000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.015000 0.018000 0.132000 0.089000 0.148000 +0 0 1 +0.280000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.003100 0.027000 0.100000 0.093000 0.108000 +0 0 1 +0.800000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.006000 0.080000 0.070000 0.115000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.015000 0.111180 0.099000 0.112070 +0 0 1 +0.610000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.025000 0.101000 0.100000 0.101000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004000 0.020100 0.112000 0.133000 0.084000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.027000 0.087000 0.085000 0.102000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.020000 0.142000 0.100000 0.142000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.012000 0.101000 0.107000 0.094000 +0 0 1 +0.420000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.024000 0.128000 0.111000 0.115000 +0 0 1 +0.420000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000060 0.020000 0.079000 0.081000 0.098000 +0 0 1 +0.750000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.020800 0.172000 0.101000 0.171000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.019000 0.113000 0.114000 0.099000 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.024000 0.121000 0.123000 0.098000 +0 0 1 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.027000 0.099000 0.100000 0.099000 +0 0 1 +0.430000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004190 0.020100 0.093000 0.064000 0.146000 +0 0 1 +0.360000 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.000710 0.017000 0.093000 0.088000 0.106000 +0 0 1 +0.290000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000020 0.057000 0.172000 0.086000 0.200000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.016000 0.090000 0.097000 0.093000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000970 0.020100 0.101000 0.077000 0.131000 +0 0 1 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007800 0.020000 0.159000 0.151000 0.105000 +0 0 1 +0.180000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.012000 0.017400 0.142000 0.137000 0.104000 +0 1 0 +0.390000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.006000 0.020100 0.135000 0.096000 0.141000 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001600 0.020000 0.087000 0.061000 0.143000 +0 0 1 +0.770000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.020100 0.097000 0.079000 0.123000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000740 0.022000 0.095000 0.084000 0.113000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.006500 0.007000 0.086000 0.072000 0.120000 +0 1 0 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004800 0.017000 0.130000 0.102000 0.128000 +0 0 1 +0.150000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.022000 0.108000 0.088000 0.122000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.020100 0.104000 0.121000 0.087000 +0 0 1 +0.650000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000750 0.011000 0.078000 0.071000 0.110000 +0 0 1 +0.540000 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0.001900 0.023000 0.161000 0.104000 0.155000 +0 0 1 +0.320000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.020800 0.088000 0.070000 0.125000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.102000 0.107000 0.095000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.020100 0.071000 0.076000 0.093000 +0 0 1 +0.670000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001700 0.007000 0.079000 0.077000 0.102000 +0 0 1 +0.820000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.006000 0.139000 0.086000 0.161000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.031000 0.023000 0.236000 0.102000 0.231000 +0 0 1 +0.460000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.020000 0.112000 0.101000 0.111000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020100 0.119000 0.090000 0.132000 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004300 0.020000 0.082000 0.099000 0.082660 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000680 0.020000 0.142000 0.104000 0.135000 +0 0 1 +0.500000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000660 0.020600 0.127000 0.097000 0.131000 +0 0 1 +0.490000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.016000 0.126000 0.087000 0.145000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.006000 0.103000 0.101000 0.102000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.007200 0.017000 0.106000 0.083000 0.128000 +0 1 0 +0.330000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001300 0.022000 0.120000 0.096000 0.126000 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0.000400 0.024000 0.103000 0.091000 0.114000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.009290 0.024000 0.117000 0.107000 0.108000 +0 1 0 +0.650000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001600 0.018000 0.078000 0.092000 0.085000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.010290 0.020000 0.068000 0.115000 0.059000 +1 0 0 +0.660000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.020000 0.009600 0.042000 0.098000 0.043000 +1 0 0 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.018000 0.114000 0.100000 0.114000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005800 0.018000 0.098000 0.087000 0.112000 +0 0 1 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020000 0.098000 0.084000 0.117000 +0 0 1 +0.370000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.020800 0.184000 0.141000 0.130000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.014000 0.124000 0.120000 0.103000 +0 0 1 +0.600000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000810 0.016000 0.099000 0.096000 0.102910 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.024000 0.020100 0.244000 0.216000 0.113000 +0 0 1 +0.320000 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0.000250 0.025000 0.105000 0.104000 0.100000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.020100 0.082000 0.101000 0.082000 +0 0 1 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.022000 0.103000 0.092000 0.112000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.018000 0.098000 0.096000 0.101870 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002700 0.020100 0.125000 0.104000 0.119000 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002800 0.013000 0.086000 0.089000 0.096000 +0 0 1 +0.320000 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0.000300 0.030000 0.101000 0.114000 0.089000 +0 0 1 +0.240000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.017000 0.106000 0.100000 0.106000 +0 0 1 +0.390000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.024000 0.098000 0.108000 0.091000 +0 0 1 +0.750000 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0.000700 0.020100 0.146000 0.096000 0.152000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002800 0.020600 0.134000 0.104000 0.128000 +0 0 1 +0.620000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000160 0.020800 0.077000 0.090000 0.086000 +0 0 1 +0.530000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.015000 0.039000 0.085000 0.046000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020100 0.125000 0.078000 0.160000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000790 0.019000 0.107000 0.099000 0.108000 +0 0 1 +0.340000 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0.000030 0.025000 0.119000 0.155000 0.076000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.068000 0.169000 0.084000 0.201000 +0 0 1 +0.210000 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0.002400 0.035000 0.171000 0.149000 0.115000 +0 0 1 +0.450000 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0.010000 0.003000 0.067000 0.100000 0.066930 +0 1 0 +0.340000 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0.000040 0.029000 0.144000 0.158000 0.091000 +0 0 1 +0.360000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.019000 0.062000 0.077000 0.081000 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.012000 0.014000 0.067000 0.071000 0.094000 +0 1 0 +0.700000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001700 0.010000 0.112000 0.102000 0.110000 +0 0 1 +0.720000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000750 0.009000 0.082000 0.062000 0.133000 +0 0 1 +0.640000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000910 0.020100 0.133000 0.104000 0.125000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007000 0.017400 0.112000 0.108000 0.103000 +0 1 0 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.010000 0.077000 0.086000 0.090000 +0 0 1 +0.350000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.020100 0.100000 0.098000 0.102000 +0 0 1 +0.290000 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0.000190 0.017000 0.147000 0.096000 0.152800 +0 0 1 +0.440000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.023000 0.129000 0.124000 0.103000 +0 0 1 +0.370000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020100 0.086000 0.077000 0.112000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020100 0.078000 0.070000 0.111000 +0 0 1 +0.500000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.019000 0.077000 0.080000 0.097000 +0 0 1 +0.290000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002300 0.019000 0.100000 0.093000 0.107000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004190 0.020100 0.112000 0.089000 0.126000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.038000 0.161000 0.174000 0.093000 +0 0 1 +0.740000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.018000 0.098000 0.083000 0.118000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.027000 0.103000 0.099000 0.103830 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.029000 0.101000 0.100000 0.100000 +0 0 1 +0.370000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000650 0.013000 0.136000 0.119000 0.115000 +0 0 1 +0.410000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.015000 0.017000 0.119000 0.099000 0.120000 +0 0 1 +0.680000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.055000 0.006000 0.015000 0.089000 0.017000 +1 0 0 +0.160000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.025000 0.071000 0.080000 0.088000 +0 0 1 +0.380000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.003900 0.022000 0.061000 0.076000 0.080000 +0 0 1 +0.500000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.004800 0.006000 0.098000 0.080000 0.122000 +0 0 1 +0.470000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020600 0.098000 0.114000 0.086000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.020000 0.106000 0.104000 0.101000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004100 0.019000 0.104000 0.097000 0.107000 +0 0 1 +0.340000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000830 0.024000 0.114000 0.102000 0.112000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001900 0.014000 0.067000 0.065000 0.103000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000520 0.023000 0.102000 0.094000 0.109000 +0 0 1 +0.730000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.003200 0.015000 0.069000 0.080000 0.086000 +0 0 1 +0.740000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.018000 0.096000 0.091000 0.106000 +0 0 1 +0.550000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000060 0.020100 0.151000 0.073000 0.207000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000510 0.020100 0.203000 0.195000 0.104000 +0 0 1 +0.810000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000090 0.006000 0.152000 0.075000 0.203000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.026000 0.099000 0.093000 0.106000 +0 0 1 +0.250000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.034000 0.009600 0.014000 0.103000 0.013000 +1 0 0 +0.320000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.028000 0.133000 0.089000 0.149000 +0 0 1 +0.500000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.151000 0.010000 0.032000 0.116000 0.028000 +1 0 0 +0.570000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.022000 0.150000 0.101000 0.149000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.016000 0.126000 0.102000 0.123000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.028000 0.148000 0.149000 0.099000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.006400 0.024000 0.141000 0.126000 0.112000 +0 1 0 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.025000 0.102000 0.093000 0.110000 +0 0 1 +0.430000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.003900 0.015000 0.058000 0.058000 0.099000 +0 0 1 +0.840000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.020100 0.136000 0.075000 0.181000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000220 0.024000 0.129000 0.114000 0.113000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000520 0.026000 0.091000 0.097000 0.094000 +0 0 1 +0.640000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.000080 0.015000 0.131000 0.108000 0.121000 +0 0 1 +0.160000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.020100 0.085000 0.100000 0.085000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003900 0.016000 0.103000 0.113000 0.091000 +0 0 1 +0.530000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.025000 0.134000 0.088000 0.152000 +0 0 1 +0.810000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001100 0.013000 0.112000 0.080000 0.140000 +0 0 1 +0.650000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.023000 0.119000 0.104000 0.114000 +0 0 1 +0.410000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.020100 0.102000 0.094000 0.109000 +0 0 1 +0.290000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000200 0.009000 0.054000 0.076000 0.072000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.011000 0.012000 0.086000 0.085000 0.101000 +0 1 0 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.020100 0.170000 0.166000 0.102000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001100 0.022000 0.116000 0.103000 0.112000 +0 0 1 +0.610000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.020100 0.115000 0.083000 0.138000 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005500 0.020000 0.095000 0.108000 0.088000 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003700 0.030000 0.068000 0.085000 0.080000 +0 0 1 +0.520000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.018000 0.102000 0.097000 0.106000 +0 0 1 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.031000 0.152000 0.115000 0.132000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.025000 0.141000 0.128000 0.110000 +0 0 1 +0.390000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.063000 0.087000 0.072000 +0 0 1 +0.760000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000650 0.015000 0.111000 0.096000 0.116000 +0 0 1 +0.680000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.023000 0.081000 0.092000 0.088000 +0 0 1 +0.660000 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0.006000 0.020000 0.091000 0.107000 0.085000 +0 0 1 +0.480000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002080 0.020100 0.129000 0.128000 0.101000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.141000 0.000500 0.003000 0.104000 0.003000 +1 0 0 +0.420000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.017000 0.167000 0.096000 0.173590 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.610000 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0.000060 0.026000 0.110000 0.096000 0.114340 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.010000 0.025000 0.110000 0.116000 0.094000 +0 1 0 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000960 0.028000 0.118000 0.116000 0.101000 +0 0 1 +0.330000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.006200 0.020100 0.051000 0.066000 0.078000 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.016000 0.016000 0.062000 0.088000 0.071000 +0 1 0 +0.500000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.024000 0.111000 0.100000 0.111000 +0 0 1 +0.850000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.011000 0.132000 0.085000 0.154000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.011000 0.121000 0.111000 0.109000 +0 0 1 +0.300000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000130 0.020100 0.103000 0.079000 0.130000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001800 0.020000 0.139000 0.102000 0.137000 +0 0 1 +0.490000 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.020000 0.009600 0.005000 0.100000 0.005000 +1 0 0 +0.230000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002320 0.020100 0.059000 0.077000 0.077000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.025000 0.139000 0.112000 0.124000 +0 0 1 +0.720000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.026000 0.082000 0.089000 0.093000 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.017000 0.096000 0.099000 0.096770 +0 0 1 +0.780000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.020800 0.112000 0.111000 0.101000 +0 0 1 +0.680000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.018000 0.080000 0.077000 0.104000 +0 0 1 +0.170000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001200 0.020100 0.153000 0.131000 0.116000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.070000 0.009600 0.063000 0.119000 0.053000 +1 0 0 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.017000 0.127000 0.092000 0.138000 +0 0 1 +0.590000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.030000 0.011000 0.045000 0.091000 0.049000 +1 0 0 +0.410000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000120 0.014000 0.184000 0.062000 0.297000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.020600 0.113000 0.085000 0.133000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.003900 0.020600 0.083000 0.085000 0.097000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020100 0.130000 0.091000 0.143000 +0 0 1 +0.780000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007200 0.014000 0.131000 0.109000 0.121000 +0 0 1 +0.850000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.010000 0.092000 0.056000 0.164000 +0 0 1 +0.370000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.043000 0.187000 0.096000 0.194000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004000 0.020100 0.102000 0.080000 0.128000 +0 0 1 +0.140000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000780 0.022000 0.078000 0.088000 0.089000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003500 0.020100 0.130000 0.107000 0.122000 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.013000 0.119000 0.090000 0.133000 +0 0 1 +0.330000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.016000 0.013000 0.092000 0.014000 +0 0 1 +0.840000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.022000 0.109000 0.107000 0.101000 +0 0 1 +0.680000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.019000 0.098000 0.082000 0.118000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.014000 0.113000 0.085000 0.132000 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.026000 0.080000 0.084000 0.095000 +0 0 1 +0.730000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.000230 0.020100 0.095000 0.116000 0.081000 +0 0 1 +0.810000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000280 0.013000 0.091000 0.102000 0.089000 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.082000 0.091000 0.090000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.017000 0.093000 0.078000 0.119000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.022000 0.091000 0.084000 0.108000 +0 0 1 +0.750000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.017000 0.123000 0.075000 0.164000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001200 0.019000 0.095000 0.110000 0.087000 +0 0 1 +0.240000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.020100 0.087000 0.088000 0.099000 +0 0 1 +0.570000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.020100 0.079000 0.081000 0.098000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.006700 0.017000 0.090000 0.102000 0.088000 +0 1 0 +0.610000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.003000 0.023000 0.051000 0.045000 +0 0 1 +0.200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.017000 0.104000 0.096000 0.108000 +0 0 1 +0.340000 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0.000020 0.037000 0.182000 0.175000 0.104000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000770 0.020800 0.123000 0.091000 0.135000 +0 0 1 +0.640000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.001800 0.020800 0.097000 0.104000 0.093000 +0 0 1 +0.610000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.015000 0.125000 0.077000 0.163000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.012090 0.034000 0.094000 0.092000 0.102000 +0 0 1 +0.530000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002300 0.020000 0.063000 0.095000 0.066000 +0 0 1 +0.490000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.020600 0.131000 0.083000 0.158000 +0 0 1 +0.610000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.020000 0.017000 0.104000 0.095000 0.108780 +0 1 0 +0.770000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.009890 0.020600 0.121000 0.102000 0.118000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.019000 0.099000 0.103000 0.097000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.012000 0.017000 0.123000 0.103000 0.120000 +0 1 0 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.108000 0.071000 0.152000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.025000 0.131000 0.116000 0.110000 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.019000 0.089000 0.092000 0.096000 +0 0 1 +0.750000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.019000 0.152000 0.081000 0.188000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000150 0.028000 0.199000 0.146000 0.137000 +0 0 1 +0.290000 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0.020000 0.017000 0.079000 0.116000 0.068000 +0 1 0 +0.490000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000600 0.020600 0.087000 0.100000 0.088000 +0 0 1 +0.780000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000010 0.020800 0.214000 0.087000 0.245000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.024000 0.104000 0.074000 0.141000 +0 0 1 +0.620000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.026000 0.142000 0.099000 0.143140 +0 0 1 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.020600 0.079000 0.095000 0.083000 +0 0 1 +0.810000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005100 0.017000 0.098000 0.096000 0.101870 +0 0 1 +0.340000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001400 0.020100 0.116000 0.088000 0.132000 +0 0 1 +0.260000 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0.002320 0.030000 0.189000 0.121000 0.156000 +0 0 1 +0.350000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000440 0.018000 0.094000 0.086000 0.110000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.017000 0.109000 0.082000 0.133000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.055000 0.007000 0.015000 0.108000 0.014000 +1 0 0 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.015000 0.100000 0.086000 0.116000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.014000 0.152000 0.104000 0.145000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.018000 0.088000 0.099000 0.088700 +0 0 1 +0.850000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001100 0.020100 0.084000 0.080000 0.105000 +0 0 1 +0.180000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004690 0.028000 0.135000 0.120000 0.113000 +0 0 1 +0.590000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020600 0.141000 0.116000 0.120000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.003100 0.025000 0.149000 0.109000 0.137000 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000950 0.009000 0.116000 0.045000 0.258000 +0 0 1 +0.720000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007700 0.020100 0.050000 0.066000 0.076000 +0 0 1 +0.820000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.029000 0.116000 0.120000 0.097000 +0 0 1 +0.860000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020800 0.064000 0.070000 0.091000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000920 0.020100 0.115000 0.108000 0.106000 +0 0 1 +0.410000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.031000 0.134000 0.100000 0.134000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000900 0.036000 0.112000 0.116000 0.096000 +0 0 1 +0.610000 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0.007400 0.012000 0.086000 0.096000 0.090000 +0 0 1 +0.550000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.024000 0.095000 0.104000 0.090000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.016000 0.100000 0.088000 0.113000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000630 0.020000 0.108000 0.090000 0.119000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.023000 0.120000 0.080000 0.149000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.022000 0.135000 0.107000 0.126000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.022000 0.138000 0.124000 0.111000 +0 0 1 +0.830000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000780 0.008000 0.102000 0.080000 0.128000 +0 0 1 +0.370000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.027000 0.017000 0.087000 0.099000 0.087700 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.016000 0.086000 0.094000 0.092000 +0 0 1 +0.600000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.001700 0.026000 0.113000 0.090000 0.126000 +0 0 1 +0.870000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.020100 0.080000 0.088000 0.091000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.020100 0.109000 0.100000 0.109000 +0 0 1 +0.750000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.001500 0.012000 0.091000 0.097000 0.094000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001300 0.012000 0.089000 0.094000 0.095000 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.020000 0.152000 0.095000 0.160000 +0 0 1 +0.490000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000080 0.002000 0.059000 0.079000 0.074000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.810000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.016000 0.112000 0.091000 0.123000 +0 0 1 +0.710000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000880 0.022000 0.148000 0.122000 0.121000 +0 0 1 +0.700000 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0.000100 0.020800 0.126000 0.083000 0.152000 +0 0 1 +0.610000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003800 0.013000 0.093000 0.084000 0.111000 +0 0 1 +0.730000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.012000 0.108000 0.094000 0.115000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.019000 0.083000 0.103000 0.081000 +0 0 1 +0.250000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0.001500 0.027000 0.120000 0.131000 0.091000 +0 0 1 +0.760000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.008000 0.101000 0.099000 0.103000 +0 0 1 +0.930000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005600 0.020100 0.083000 0.087000 0.095000 +0 0 1 +0.560000 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0.001100 0.022000 0.103000 0.090000 0.114000 +0 0 1 +0.220000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.027000 0.111000 0.091000 0.122000 +0 0 1 +0.350000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.022000 0.114000 0.093000 0.123000 +0 0 1 +0.910000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.012000 0.084000 0.091000 0.092000 +0 0 1 +0.680000 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.001000 0.020100 0.089000 0.084000 0.106000 +0 0 1 +0.720000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.012000 0.174000 0.099000 0.175400 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.017000 0.093000 0.096000 0.098000 +0 0 1 +0.320000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.109000 0.002000 0.003000 0.102000 0.003000 +1 0 0 +0.390000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000050 0.023000 0.095000 0.089000 0.106000 +0 0 1 +0.470000 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.000350 0.026000 0.063000 0.092000 0.069000 +0 0 1 +0.450000 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0.000440 0.028000 0.153000 0.091000 0.168000 +0 0 1 +0.260000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.020100 0.080000 0.075000 0.107000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.020100 0.124000 0.110000 0.113000 +0 0 1 +0.780000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000770 0.018000 0.109000 0.092000 0.118000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001300 0.018000 0.095000 0.082000 0.116000 +0 0 1 +0.440000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005400 0.020100 0.075000 0.082000 0.091000 +0 0 1 +0.290000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.016000 0.135000 0.086000 0.157000 +0 0 1 +0.340000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020100 0.076000 0.076000 0.100000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001300 0.030000 0.136000 0.100000 0.135000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.022000 0.121000 0.101000 0.121000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.041000 0.139000 0.071000 0.196000 +0 0 1 +0.860000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.020100 0.127000 0.108000 0.118000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000200 0.025000 0.136000 0.089000 0.153000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.012000 0.119000 0.096000 0.123700 +0 0 1 +0.250000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004600 0.024000 0.061000 0.082000 0.075000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000250 0.020000 0.114000 0.090000 0.128000 +0 0 1 +0.470000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000770 0.020100 0.080000 0.096000 0.083160 +0 0 1 +0.510000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004900 0.020100 0.100000 0.081000 0.122000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000040 0.038000 0.292000 0.091000 0.321000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.016000 0.114000 0.072000 0.158000 +0 0 1 +0.380000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002500 0.023000 0.090000 0.091000 0.099000 +0 0 1 +0.640000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.020600 0.123000 0.074000 0.166000 +0 0 1 +0.830000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002200 0.009000 0.069000 0.074000 0.093000 +0 0 1 +0.560000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.019000 0.098000 0.065000 0.151000 +0 0 1 +0.250000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.004900 0.020600 0.074000 0.092000 0.080000 +0 0 1 +0.300000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000990 0.020100 0.111000 0.076000 0.146000 +0 0 1 +0.140000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.020100 0.089000 0.074000 0.121000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.018000 0.122000 0.085000 0.144000 +0 0 1 +0.420000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000400 0.020600 0.258000 0.114000 0.227000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.083000 0.075000 0.111000 +0 0 1 +0.830000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.026000 0.119000 0.122000 0.097000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000830 0.020100 0.080000 0.088000 0.091000 +0 0 1 +0.580000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.020800 0.130000 0.087000 0.149000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.009390 0.008000 0.080000 0.135000 0.059000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.019000 0.090000 0.087000 0.104000 +0 0 1 +0.440000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000280 0.020100 0.179000 0.079000 0.227000 +0 0 1 +0.150000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020100 0.099000 0.104000 0.094000 +0 0 1 +0.310000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.005000 0.020600 0.141000 0.109000 0.130000 +0 0 1 +0.270000 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.110000 0.110000 0.100000 +0 0 1 +0.830000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.014000 0.095000 0.081000 0.118000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.017000 0.086000 0.091000 0.095000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0.001500 0.028000 0.099000 0.095000 0.104000 +0 0 1 +0.480000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.149000 0.129000 0.116000 +0 0 1 +0.750000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.005000 0.053000 0.125000 0.042000 +0 0 1 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000950 0.026000 0.152000 0.140000 0.110000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.003000 0.087000 0.069000 0.126000 +0 0 1 +0.810000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003800 0.020800 0.087000 0.104000 0.083000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.630000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.034000 0.210000 0.111000 0.188000 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.025000 0.090000 0.103000 0.088000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.830000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000440 0.020600 0.145000 0.108000 0.135000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.073000 0.091000 0.081000 +0 0 1 +0.470000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.020000 0.110000 0.102000 0.108000 +0 0 1 +0.540000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.016000 0.060000 0.065000 0.092000 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000520 0.026000 0.119000 0.104000 0.114000 +0 0 1 +0.330000 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0.000620 0.020100 0.132000 0.187000 0.071000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.004100 0.013000 0.101000 0.078000 0.130000 +0 0 1 +0.150000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000040 0.030000 0.129000 0.097000 0.133000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.096000 0.089000 0.108000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001700 0.025000 0.115000 0.112000 0.103000 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.020600 0.096000 0.082000 0.118000 +0 0 1 +0.580000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.074000 0.082000 0.090000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.002320 0.009000 0.063000 0.065000 0.097000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.023000 0.103000 0.104000 0.098000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.340000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.007900 0.020100 0.088000 0.083000 0.106000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.009090 0.020000 0.072000 0.090000 0.080000 +0 1 0 +0.750000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.020100 0.094000 0.077000 0.123000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.004400 0.020100 0.120000 0.076000 0.158000 +0 0 1 +0.670000 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0.000030 0.024000 0.137000 0.085000 0.161000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.017000 0.102000 0.090000 0.113000 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.020800 0.116000 0.104000 0.110000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.094000 0.088000 0.107000 +0 0 1 +0.750000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.003400 0.020100 0.091000 0.084000 0.108000 +0 0 1 +0.260000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.020000 0.111000 0.080000 0.138000 +0 0 1 +0.640000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.020100 0.116000 0.101000 0.115000 +0 0 1 +0.840000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.020000 0.134000 0.079000 0.170000 +0 0 1 +0.380000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.004300 0.015000 0.142000 0.097000 0.146000 +0 0 1 +0.800000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.006000 0.016000 0.099000 0.095000 0.104000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000700 0.016000 0.129000 0.107000 0.121000 +0 0 1 +0.810000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.007000 0.069000 0.096000 0.071720 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005600 0.019000 0.115000 0.098000 0.118000 +0 0 1 +0.540000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.015000 0.133000 0.096000 0.139000 +0 0 1 +0.610000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.061000 0.078000 0.081000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.011000 0.016000 0.120000 0.095000 0.125520 +0 1 0 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004100 0.020600 0.085000 0.092000 0.092000 +0 0 1 +0.450000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.131000 0.104000 0.126000 +0 0 1 +0.250000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001400 0.016000 0.078000 0.088000 0.089000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020100 0.120000 0.096000 0.125000 +0 0 1 +0.530000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005200 0.020000 0.088000 0.104000 0.085000 +0 0 1 +0.770000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.024000 0.075000 0.098000 0.077000 +0 0 1 +0.030000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.039000 0.113290 0.096000 0.117760 +0 0 1 +0.710000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.020000 0.125000 0.112000 0.112000 +0 0 1 +0.460000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.012000 0.122000 0.094000 0.131000 +0 0 1 +0.250000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.020600 0.088000 0.087000 0.100000 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.500000 0.005000 0.005000 0.119000 0.004000 +1 0 0 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000890 0.018000 0.103000 0.098000 0.105000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.016000 0.071000 0.099000 0.072000 +0 0 1 +0.600000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000350 0.016000 0.098000 0.075000 0.131000 +0 0 1 +0.810000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004000 0.020100 0.097000 0.092000 0.106000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004800 0.020100 0.093000 0.085000 0.109000 +0 0 1 +0.260000 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000080 0.017000 0.174000 0.123000 0.142000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000870 0.018000 0.110000 0.089000 0.124000 +0 0 1 +0.160000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001500 0.019000 0.106000 0.104000 0.104000 +0 0 1 +0.750000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.023000 0.103000 0.095000 0.108000 +0 0 1 +0.290000 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0.000100 0.031000 0.142000 0.177000 0.080000 +0 0 1 +0.450000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.022000 0.141000 0.098000 0.144000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.008000 0.083000 0.099000 0.084000 +0 0 1 +0.180000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020100 0.143000 0.096000 0.148640 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.017000 0.079000 0.095000 0.083000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002300 0.015000 0.112000 0.099000 0.114000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.023000 0.120000 0.116000 0.103000 +0 0 1 +0.310000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.023000 0.150000 0.142000 0.106000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.014000 0.140000 0.090000 0.156000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.023000 0.074000 0.099000 0.074580 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.002500 0.015000 0.069000 0.090000 0.077000 +0 0 1 +0.420000 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0.003800 0.023000 0.127000 0.097000 0.131000 +0 0 1 +0.360000 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0.000040 0.020600 0.149000 0.165000 0.090000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.023000 0.113000 0.110000 0.103000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000700 0.020000 0.095000 0.099000 0.096000 +0 0 1 +0.710000 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0.001600 0.018000 0.136000 0.116000 0.117000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.020100 0.143000 0.100000 0.143000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.022000 0.002000 0.004000 0.101000 0.004000 +1 0 0 +0.550000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0.000580 0.020600 0.118000 0.103000 0.114000 +0 0 1 +0.930000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.003000 0.009000 0.092000 0.081000 0.112000 +0 0 1 +0.280000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.029000 0.119000 0.141000 0.084000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.036000 0.301000 0.175000 0.172000 +0 0 1 +0.770000 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0.000930 0.019000 0.121000 0.136000 0.089000 +0 0 1 +0.290000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.014000 0.015000 0.095000 0.090000 0.106000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.032000 0.134000 0.098000 0.137000 +0 0 1 +0.380000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000550 0.022000 0.145000 0.101000 0.144000 +0 0 1 +0.340000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000980 0.019000 0.133000 0.100000 0.133000 +0 0 1 +0.850000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000580 0.019000 0.140000 0.096000 0.145000 +0 0 1 +0.670000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000850 0.020000 0.140000 0.136000 0.103000 +0 0 1 +0.520000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.027000 0.159000 0.119000 0.134000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000340 0.025000 0.163000 0.111000 0.148000 +0 0 1 +0.770000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003500 0.020600 0.114000 0.100000 0.115000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.022000 0.014000 0.071000 0.097000 0.073000 +0 1 0 +0.480000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004100 0.020100 0.097000 0.098000 0.099000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004900 0.020100 0.146000 0.132000 0.111000 +0 0 1 +0.830000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.012000 0.095000 0.083000 0.114000 +0 0 1 +0.630000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.022000 0.017000 0.088000 0.110000 0.080000 +0 1 0 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.011000 0.020800 0.075000 0.101000 0.074000 +0 1 0 +0.440000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.112000 0.101000 0.111000 +0 0 1 +0.260000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.029000 0.094000 0.115000 0.082000 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.020600 0.163000 0.095000 0.172000 +0 0 1 +0.380000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.020100 0.117000 0.092000 0.127000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.025000 0.165000 0.103000 0.161000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.032000 0.185000 0.091000 0.206000 +0 0 1 +0.800000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000150 0.022000 0.124000 0.081000 0.152000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001200 0.020100 0.116000 0.103000 0.113000 +0 0 1 +0.240000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000090 0.020600 0.126000 0.086000 0.146000 +0 0 1 +0.410000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002800 0.020600 0.149000 0.100000 0.148000 +0 0 1 +0.610000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001100 0.022000 0.083000 0.083000 0.101000 +0 0 1 +0.640000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.015000 0.126000 0.086000 0.147000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007500 0.041000 0.139000 0.165000 0.084000 +0 1 0 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020100 0.074000 0.127000 0.058000 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000370 0.012000 0.091000 0.095000 0.096000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000080 0.024000 0.132000 0.095000 0.139000 +0 0 1 +0.390000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001500 0.020600 0.093000 0.075000 0.125000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000390 0.020100 0.139000 0.078000 0.179000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.007000 0.082000 0.095000 0.086000 +0 0 1 +0.750000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.021000 0.016000 0.124000 0.109000 0.114000 +0 0 1 +0.730000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003900 0.019000 0.091000 0.080000 0.114000 +0 0 1 +0.650000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020100 0.086000 0.086000 0.100000 +0 0 1 +0.680000 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000880 0.029000 0.068000 0.096000 0.070680 +0 0 1 +0.470000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.014000 0.090000 0.097000 0.092000 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.023000 0.129000 0.129000 0.100000 +0 0 1 +0.200000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001200 0.020100 0.105000 0.098000 0.107000 +0 0 1 +0.750000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000410 0.017000 0.134000 0.084000 0.160000 +0 0 1 +0.470000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.018000 0.091000 0.092000 0.099000 +0 0 1 +0.610000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.016000 0.118000 0.104000 0.111000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.028000 0.091000 0.099000 0.091730 +0 0 1 +0.750000 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0.001100 0.017000 0.103000 0.077000 0.134000 +0 0 1 +0.410000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.020100 0.097000 0.096000 0.101000 +0 0 1 +0.710000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000630 0.013000 0.164000 0.100000 0.164000 +0 0 1 +0.490000 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.000010 0.020600 0.126000 0.083000 0.152000 +0 0 1 +0.280000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.020800 0.142000 0.107000 0.133000 +0 0 1 +0.800000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.008000 0.101000 0.081000 0.125000 +0 0 1 +0.500000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.018000 0.109000 0.077000 0.141000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005100 0.020100 0.093000 0.077000 0.121000 +0 0 1 +0.710000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.022000 0.198000 0.123000 0.160000 +0 0 1 +0.300000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.020100 0.176000 0.157000 0.112000 +0 0 1 +0.390000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.005700 0.020100 0.163000 0.123000 0.133000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.019000 0.100000 0.092000 0.109000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020000 0.101000 0.101000 0.100000 +0 0 1 +0.720000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.014000 0.100000 0.080000 0.123000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000400 0.020000 0.113000 0.103000 0.110000 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008500 0.020800 0.091000 0.116000 0.079000 +0 1 0 +0.490000 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.000010 0.020600 0.137000 0.080000 0.170000 +0 0 1 +0.170000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000900 0.014000 0.111000 0.102000 0.109000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.019000 0.118000 0.099000 0.118950 +0 0 1 +0.380000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.020600 0.081000 0.086000 0.094000 +0 0 1 +0.540000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.014400 0.011000 0.051000 0.068000 0.075000 +0 1 0 +0.770000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.003600 0.018000 0.134000 0.102000 0.131000 +0 0 1 +0.480000 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0.000100 0.020600 0.119000 0.091000 0.131000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000920 0.020600 0.098000 0.079000 0.125000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001500 0.020100 0.131000 0.101000 0.130000 +0 0 1 +0.640000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000070 0.019000 0.112000 0.094000 0.119000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.025000 0.202000 0.100000 0.202000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000110 0.020100 0.147000 0.116000 0.127000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.023000 0.110000 0.112000 0.098000 +0 0 1 +0.420000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020100 0.123000 0.091000 0.135000 +0 0 1 +0.400000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.138000 0.095000 0.145000 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000350 0.014000 0.108000 0.102000 0.105000 +0 0 1 +0.400000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002600 0.024000 0.105000 0.099000 0.106000 +0 0 1 +0.660000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020100 0.066000 0.093000 0.071000 +0 0 1 +0.440000 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000010 0.020600 0.135000 0.082000 0.166000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000210 0.020100 0.104000 0.095000 0.110000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.034000 0.126000 0.122000 0.103000 +0 0 1 +0.490000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.010000 0.017000 0.111000 0.085000 0.131000 +0 1 0 +0.430000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003600 0.020100 0.088000 0.099000 0.089000 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003500 0.020100 0.074000 0.083000 0.089000 +0 0 1 +0.470000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.029000 0.113000 0.113000 0.100000 +0 0 1 +0.220000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.029000 0.107000 0.101000 0.106000 +0 0 1 +0.420000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000120 0.020600 0.149000 0.104000 0.143000 +0 0 1 +0.680000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.012000 0.084000 0.078000 0.107000 +0 0 1 +0.340000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000880 0.030000 0.069000 0.067000 0.102000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.019000 0.101000 0.099000 0.102000 +0 0 1 +0.520000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.019000 0.088000 0.080000 0.110000 +0 0 1 +0.580000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.015000 0.088000 0.084000 0.105000 +0 0 1 +0.430000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000680 0.020000 0.054000 0.093000 0.058000 +0 0 1 +0.310000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.004690 0.026000 0.073000 0.097000 0.075000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000680 0.018000 0.104000 0.089000 0.117000 +0 0 1 +0.660000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.020100 0.085000 0.070000 0.121000 +0 0 1 +0.800000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006100 0.017000 0.116000 0.094000 0.123000 +0 1 0 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.020800 0.088000 0.096000 0.092000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.020100 0.103000 0.099000 0.104000 +0 0 1 +0.780000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002900 0.019000 0.090000 0.097000 0.093000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.015000 0.108000 0.107000 0.101000 +0 0 1 +0.680000 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0.002600 0.020000 0.152000 0.141000 0.108000 +0 0 1 +0.870000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.016000 0.071000 0.104000 0.067000 +0 0 1 +0.250000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.011000 0.007000 0.122000 0.113000 0.108000 +0 1 0 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000150 0.030000 0.161000 0.093000 0.174000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.020800 0.187000 0.089000 0.210000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004300 0.020600 0.088000 0.072000 0.122000 +0 0 1 +0.400000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.015000 0.135000 0.104000 0.127000 +0 0 1 +0.500000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.022000 0.081000 0.094000 0.086000 +0 0 1 +0.720000 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000040 0.032000 0.239000 0.083000 0.288000 +0 0 1 +0.790000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.011000 0.020100 0.127000 0.093000 0.137000 +0 0 1 +0.430000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.017000 0.138000 0.102000 0.136000 +0 0 1 +0.730000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000560 0.020100 0.109000 0.101000 0.108000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.035000 0.012000 0.016000 0.086000 0.019000 +1 0 0 +0.610000 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.003000 0.012000 0.069000 0.099000 0.070000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020600 0.123000 0.116000 0.107000 +0 0 1 +0.290000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.011000 0.092000 0.081000 0.114000 +0 0 1 +0.630000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.052000 0.085000 0.061000 +0 0 1 +0.440000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.007500 0.020100 0.086000 0.142000 0.061000 +0 0 1 +0.490000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.024000 0.180000 0.125000 0.144000 +0 0 1 +0.590000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000010 0.020000 0.113000 0.086000 0.131000 +0 0 1 +0.490000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020100 0.126000 0.097000 0.129000 +0 0 1 +0.910000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001010 0.020100 0.104000 0.089000 0.117000 +0 0 1 +0.450000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000110 0.020100 0.129000 0.085000 0.152000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002200 0.020800 0.096000 0.086000 0.112000 +0 0 1 +0.760000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000260 0.001000 0.034000 0.061000 0.056000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.034000 0.165000 0.152000 0.108000 +0 0 1 +0.650000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000650 0.020100 0.106000 0.094000 0.113000 +0 0 1 +0.640000 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000240 0.014000 0.065000 0.085000 0.077000 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001400 0.022000 0.122000 0.110000 0.111000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020100 0.077000 0.099000 0.078000 +0 0 1 +0.160000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000050 0.062000 0.255000 0.104000 0.244000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.035000 0.111180 0.099000 0.112070 +0 0 1 +0.710000 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.002800 0.020100 0.106000 0.088000 0.120000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.018000 0.020800 0.068000 0.108000 0.063000 +1 0 0 +0.500000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.018000 0.120000 0.101000 0.119000 +0 0 1 +0.510000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020600 0.151000 0.104000 0.142000 +0 0 1 +0.720000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.006000 0.120000 0.104000 0.113000 +0 0 1 +0.730000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.015000 0.077000 0.079000 0.097000 +0 0 1 +0.620000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000490 0.020100 0.111000 0.090000 0.124000 +0 0 1 +0.270000 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0.002200 0.041000 0.157000 0.201000 0.078000 +0 0 1 +0.810000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000060 0.032000 0.138000 0.108000 0.128000 +0 0 1 +0.540000 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.003200 0.022000 0.107000 0.100000 0.107000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000990 0.023000 0.130000 0.101000 0.129000 +0 0 1 +0.440000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000700 0.019000 0.108000 0.104000 0.103000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.028000 0.142000 0.104000 0.135000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003700 0.023000 0.150000 0.125000 0.120000 +0 0 1 +0.380000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.020100 0.095000 0.099000 0.096000 +0 0 1 +0.850000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.023000 0.128000 0.104000 0.121000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.013000 0.017400 0.087000 0.085000 0.103000 +0 1 0 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.014000 0.111180 0.099000 0.112070 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003600 0.019000 0.114000 0.099000 0.114910 +0 0 1 +0.300000 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0.002700 0.020600 0.125000 0.143000 0.087000 +0 0 1 +0.580000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.020600 0.137000 0.091000 0.151000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000110 0.020100 0.152000 0.080000 0.190000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000950 0.025000 0.119000 0.104000 0.114000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.099000 0.008000 0.012000 0.127000 0.010000 +1 0 0 +0.310000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.020800 0.212000 0.116000 0.181000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.107000 0.101000 0.106000 +0 0 1 +0.500000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.020000 0.101000 0.094000 0.108000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.033000 0.200000 0.100000 0.200000 +0 0 1 +0.020000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.004100 0.020100 0.155000 0.104000 0.149000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.024000 0.096000 0.098000 0.099000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004690 0.011000 0.089000 0.075000 0.118000 +0 0 1 +0.610000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006600 0.022000 0.105000 0.088000 0.119000 +0 0 1 +0.260000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.020100 0.101000 0.090000 0.112000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020600 0.110000 0.094000 0.117000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002300 0.013000 0.088000 0.085000 0.103000 +0 0 1 +0.260000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.025000 0.130000 0.108000 0.121000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.022000 0.105000 0.091000 0.115000 +0 0 1 +0.590000 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0.000200 0.043000 0.140000 0.168000 0.083000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.020100 0.097000 0.102000 0.095000 +0 0 1 +0.370000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.025000 0.111000 0.097000 0.114000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.016000 0.119000 0.092000 0.130000 +0 0 1 +0.810000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001800 0.018000 0.148000 0.119000 0.125000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.010000 0.128000 0.107000 0.119000 +0 0 1 +0.500000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.020100 0.157000 0.120000 0.131000 +0 0 1 +0.220000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.011000 0.119000 0.088000 0.135000 +0 0 1 +0.520000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.870000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.500000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000680 0.024000 0.118000 0.101000 0.117000 +0 0 1 +0.230000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000310 0.017000 0.147000 0.104000 0.141000 +0 0 1 +0.490000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000400 0.020100 0.148000 0.098000 0.151000 +0 0 1 +0.220000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.025000 0.106000 0.099000 0.106850 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.029000 0.158000 0.103000 0.154000 +0 0 1 +0.680000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.015000 0.110000 0.089000 0.124000 +0 0 1 +0.850000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000650 0.020800 0.160000 0.098000 0.163000 +0 0 1 +0.210000 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.610000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.016000 0.093000 0.081000 0.114000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.029000 0.133000 0.116000 0.113000 +0 0 1 +0.830000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002500 0.020600 0.118000 0.097000 0.121000 +0 0 1 +0.720000 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001890 0.032000 0.111180 0.099000 0.112070 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003800 0.031000 0.110000 0.108000 0.102000 +0 0 1 +0.590000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001700 0.015000 0.120000 0.076000 0.158000 +0 0 1 +0.290000 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0.000150 0.036000 0.144000 0.176000 0.082000 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000060 0.034000 0.133000 0.052000 0.251000 +0 0 1 +0.640000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.014000 0.117000 0.097000 0.121000 +0 0 1 +0.160000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000210 0.024000 0.126000 0.093000 0.135000 +0 0 1 +0.200000 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.012000 0.027000 0.121000 0.096000 0.125770 +0 0 1 +0.340000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000670 0.013000 0.072000 0.075000 0.096000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005200 0.014000 0.058000 0.083000 0.069000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007700 0.018000 0.111000 0.107000 0.104000 +0 1 0 +0.440000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.015000 0.107000 0.079000 0.135000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.020100 0.099000 0.099000 0.099000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000150 0.025000 0.087000 0.079000 0.109000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.011000 0.015000 0.144000 0.124000 0.116000 +0 1 0 +0.410000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005600 0.020600 0.093000 0.084000 0.110000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000150 0.055000 0.161000 0.161000 0.100000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001100 0.024000 0.122000 0.112000 0.109000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.005800 0.020600 0.261000 0.232000 0.113000 +0 0 1 +0.250000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020600 0.107000 0.115000 0.092000 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.018000 0.076000 0.080000 0.095000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.013000 0.098000 0.103000 0.095000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.026000 0.121000 0.104000 0.115000 +0 0 1 +0.800000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005400 0.020100 0.104000 0.068000 0.153000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002000 0.024000 0.096000 0.098000 0.098000 +0 0 1 +0.890000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.018000 0.086000 0.104000 0.083000 +0 0 1 +0.540000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.000070 0.050000 0.216000 0.086000 0.251000 +0 0 1 +0.480000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020800 0.080000 0.098000 0.082000 +0 0 1 +0.300000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000790 0.018000 0.081000 0.086000 0.094000 +0 0 1 +0.590000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.027000 0.074000 0.112000 0.066000 +0 0 1 +0.440000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000040 0.020600 0.141000 0.103000 0.137000 +0 0 1 +0.680000 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.002320 0.020100 0.102000 0.104000 0.096000 +0 0 1 +0.390000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000070 0.024000 0.037000 0.081000 0.045000 +0 0 1 +0.130000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000360 0.022000 0.161000 0.124000 0.130000 +0 0 1 +0.280000 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0.000020 0.020100 0.106000 0.123000 0.086000 +0 0 1 +0.470000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.022000 0.143000 0.092000 0.154000 +0 0 1 +0.420000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000130 0.020800 0.084000 0.075000 0.112000 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.014000 0.088000 0.086000 0.102000 +0 0 1 +0.170000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.028000 0.020000 0.086000 0.099000 0.087000 +0 0 1 +0.650000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.020100 0.101000 0.083000 0.122000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.020100 0.110000 0.099000 0.111000 +0 0 1 +0.820000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.008300 0.104000 0.077000 0.135000 +0 0 1 +0.610000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000620 0.020000 0.104000 0.095000 0.109000 +0 0 1 +0.190000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.058000 0.017400 0.074000 0.090000 0.082000 +0 1 0 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.020100 0.153000 0.067000 0.228000 +0 0 1 +0.670000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020600 0.167000 0.143000 0.117000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020600 0.095000 0.102000 0.093000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004500 0.015000 0.093000 0.087000 0.107000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000190 0.014000 0.097000 0.087000 0.111000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001700 0.019000 0.132000 0.115000 0.114000 +0 0 1 +0.100000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.040000 0.090000 0.111000 0.081000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000030 0.014000 0.158000 0.096000 0.164240 +0 0 1 +0.590000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000780 0.020000 0.070000 0.076000 0.092000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004300 0.018000 0.124000 0.099000 0.125000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000450 0.012000 0.133000 0.094000 0.142000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003900 0.010000 0.126000 0.108000 0.117000 +0 0 1 +0.630000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.020600 0.084000 0.090000 0.093000 +0 0 1 +0.660000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000810 0.011000 0.143000 0.091000 0.157000 +0 0 1 +0.670000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.000770 0.020100 0.095000 0.102000 0.093000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.023000 0.082000 0.088000 0.093000 +0 0 1 +0.610000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.022000 0.091000 0.104000 0.088000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000020 0.043000 0.250000 0.101000 0.247000 +0 0 1 +0.740000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.016000 0.090000 0.079000 0.114000 +0 0 1 +0.400000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006100 0.017000 0.139000 0.135000 0.103000 +0 1 0 +0.360000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.720000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.075000 0.101000 0.074000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.390000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.029000 0.125000 0.096000 0.130000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.020100 0.161000 0.102000 0.158000 +0 0 1 +0.600000 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0.002700 0.020600 0.088000 0.107000 0.082000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.003100 0.020100 0.134000 0.107000 0.125000 +0 0 1 +0.720000 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0.001890 0.028000 0.120000 0.116000 0.102000 +0 0 1 +0.560000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.136000 0.088000 0.155000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.046900 0.172000 0.087000 0.198000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004190 0.020100 0.099000 0.089000 0.111000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.029000 0.100000 0.102000 0.098000 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.019000 0.076000 0.083000 0.092000 +0 0 1 +0.450000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.018000 0.117000 0.100000 0.117000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.019000 0.086000 0.099000 0.086690 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001600 0.036000 0.133000 0.144000 0.093000 +0 0 1 +0.650000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002800 0.027000 0.105000 0.116000 0.091000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.001800 0.010000 0.112000 0.098000 0.113000 +0 0 1 +0.500000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000820 0.020800 0.124000 0.103000 0.121000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006700 0.020800 0.160000 0.121000 0.132000 +0 0 1 +0.850000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000580 0.017000 0.107000 0.085000 0.126000 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.020100 0.129000 0.100000 0.129000 +0 0 1 +0.240000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.019000 0.107000 0.085000 0.126000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.033000 0.119000 0.131000 0.090000 +0 0 1 +0.490000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.013000 0.082000 0.100000 0.082000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.018000 0.094000 0.099000 0.094750 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001800 0.019000 0.138000 0.091000 0.155000 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.003500 0.013000 0.070000 0.092000 0.076000 +0 0 1 +0.280000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000990 0.026000 0.152000 0.113000 0.135000 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.009000 0.017400 0.095000 0.087000 0.110000 +0 1 0 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.016000 0.125000 0.104000 0.118000 +0 0 1 +0.520000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000010 0.027000 0.122000 0.083000 0.147000 +0 0 1 +0.620000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.020000 0.103000 0.095000 0.109000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.015000 0.111180 0.099000 0.112070 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005500 0.020100 0.126000 0.116000 0.109000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.091000 0.101000 0.090000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.015000 0.086000 0.065000 0.132000 +0 0 1 +0.580000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.025000 0.161000 0.127000 0.127000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000090 0.037000 0.201000 0.097000 0.207000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.018000 0.092000 0.084000 0.110000 +0 0 1 +0.390000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.004300 0.024000 0.135000 0.151000 0.089000 +0 0 1 +0.680000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.015000 0.074000 0.072000 0.103000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.009000 0.050000 0.062000 0.081000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000150 0.076000 0.120000 0.104000 0.116000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.036000 0.017400 0.082000 0.102000 0.081000 +0 1 0 +0.680000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000960 0.020600 0.104000 0.100000 0.104000 +0 0 1 +0.340000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.025000 0.186000 0.133000 0.140000 +0 0 1 +0.540000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004690 0.020600 0.120000 0.101000 0.118000 +0 0 1 +0.420000 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0.039000 0.205000 0.170000 0.121000 +0 0 1 +0.740000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.008000 0.151000 0.101000 0.150000 +0 0 1 +0.860000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.020000 0.079000 0.062000 0.126000 +0 0 1 +0.170000 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0.000300 0.015000 0.101000 0.081000 0.125000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.014000 0.092000 0.092000 0.101000 +0 0 1 +0.680000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000400 0.022000 0.117000 0.086000 0.136000 +0 0 1 +0.390000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001700 0.020100 0.077000 0.065000 0.118000 +0 0 1 +0.400000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.042000 0.002000 0.004800 0.090000 0.005400 +1 0 0 +0.250000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001300 0.015000 0.096000 0.080000 0.121000 +0 0 1 +0.630000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000880 0.020100 0.139000 0.095000 0.146000 +0 0 1 +0.690000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.020100 0.102000 0.077000 0.133000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000020 0.022000 0.108000 0.085000 0.126000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.018000 0.084000 0.091000 0.093000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.009090 0.017400 0.101000 0.112000 0.090000 +0 1 0 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002900 0.020000 0.068000 0.088000 0.077000 +0 0 1 +0.620000 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.022000 0.183000 0.103000 0.178000 +0 0 1 +0.750000 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0.000460 0.029000 0.139000 0.153000 0.091000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004000 0.017000 0.070000 0.090000 0.078000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0.001200 0.013000 0.095000 0.102000 0.093000 +0 0 1 +0.270000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.025000 0.097000 0.100000 0.085000 +0 0 1 +0.210000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003800 0.020100 0.080000 0.091000 0.088000 +0 0 1 +0.190000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.020100 0.134000 0.112000 0.109000 +0 0 1 +0.790000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.003000 0.092000 0.044000 0.206000 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.020800 0.103000 0.103000 0.100000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000400 0.020600 0.142000 0.120000 0.118000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001200 0.020100 0.085000 0.096000 0.089000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001890 0.026000 0.111180 0.099000 0.112070 +0 0 1 +0.210000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.026000 0.120000 0.120000 0.100000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.022000 0.020000 0.089000 0.110000 0.081000 +0 1 0 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020000 0.099000 0.096000 0.104000 +0 0 1 +0.350000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000260 0.010000 0.057000 0.089000 0.064000 +0 0 1 +0.610000 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0.002000 0.020600 0.085000 0.100000 0.085000 +0 0 1 +0.860000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006000 0.007000 0.058000 0.067000 0.087000 +0 0 1 +0.740000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002900 0.015000 0.096000 0.084000 0.114000 +0 0 1 +0.290000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000040 0.022000 0.115000 0.093000 0.124000 +0 0 1 +0.620000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.000430 0.022000 0.122000 0.116000 0.104000 +0 0 1 +0.480000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.025000 0.091000 0.116000 0.078000 +0 0 1 +0.290000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001300 0.009000 0.074000 0.071000 0.104000 +0 0 1 +0.430000 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.002320 0.020100 0.096000 0.095000 0.100000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.000250 0.023000 0.099000 0.095000 0.104000 +0 0 1 +0.350000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000970 0.024000 0.081000 0.075000 0.109000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001900 0.024000 0.095000 0.121000 0.078000 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.020100 0.125000 0.109000 0.114000 +0 0 1 +0.490000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.081000 0.114000 0.071000 +0 0 1 +0.720000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003500 0.016000 0.108000 0.083000 0.130000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000150 0.053000 0.233000 0.092000 0.253000 +0 0 1 +0.150000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.580000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.025000 0.099000 0.115000 0.086000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.013000 0.102000 0.093000 0.110000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.014000 0.159000 0.095000 0.166000 +0 0 1 +0.730000 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0.000600 0.015000 0.120000 0.082000 0.146000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000850 0.018000 0.122000 0.066000 0.185000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020800 0.134000 0.104000 0.127000 +0 0 1 +0.750000 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001800 0.019000 0.184000 0.096000 0.191260 +0 0 1 +0.370000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000250 0.020000 0.083000 0.114000 0.072000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003700 0.019000 0.067000 0.095000 0.072000 +0 0 1 +0.260000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000250 0.018000 0.120000 0.085000 0.140000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.018000 0.085000 0.092000 0.092000 +0 0 1 +0.540000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.085000 0.089000 0.096000 +0 0 1 +0.680000 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.004000 0.011000 0.115000 0.090000 0.128000 +0 0 1 +0.520000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.098000 0.071000 0.138000 +0 0 1 +0.400000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000730 0.020000 0.121000 0.102000 0.118000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.004190 0.011000 0.078000 0.097000 0.081000 +0 0 1 +0.640000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006700 0.020000 0.110000 0.116000 0.094000 +0 0 1 +0.870000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.013000 0.098000 0.091000 0.108000 +0 0 1 +0.910000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.011000 0.017000 0.082000 0.088000 0.093000 +0 1 0 +0.660000 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0.001000 0.020000 0.091000 0.095000 0.095000 +0 0 1 +0.320000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020100 0.091000 0.081000 0.112000 +0 0 1 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.020600 0.104000 0.094000 0.112000 +0 0 1 +0.820000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.011000 0.112000 0.068000 0.165000 +0 0 1 +0.520000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.020100 0.091000 0.090000 0.101000 +0 0 1 +0.310000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001600 0.020100 0.164000 0.104000 0.158000 +0 0 1 +0.330000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002700 0.032000 0.143000 0.084000 0.170000 +0 0 1 +0.160000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.020000 0.103000 0.103000 0.100000 +0 0 1 +0.780000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002600 0.003000 0.087000 0.095000 0.091000 +0 0 1 +0.720000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.084000 0.094000 0.089000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.031000 0.017000 0.067000 0.092000 0.073000 +0 1 0 +0.480000 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.002700 0.023000 0.094000 0.094000 0.100000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003900 0.020100 0.106000 0.093000 0.114000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000810 0.023000 0.103000 0.102000 0.100000 +0 0 1 +0.800000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.017000 0.083000 0.111000 0.076000 +0 0 1 +0.460000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.011000 0.123000 0.094000 0.131000 +0 0 1 +0.720000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.005800 0.014000 0.107000 0.107000 0.100000 +0 0 1 +0.600000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.020100 0.161000 0.103000 0.157000 +0 0 1 +0.400000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.018000 0.130000 0.087000 0.149000 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.003600 0.025000 0.060000 0.094000 0.064000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002600 0.022000 0.109000 0.096000 0.113300 +0 0 1 +0.610000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007900 0.029000 0.116000 0.102000 0.114000 +0 1 0 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004100 0.020800 0.098000 0.112000 0.087000 +0 0 1 +0.580000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000290 0.020100 0.131000 0.099000 0.132000 +0 0 1 +0.500000 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000320 0.015000 0.138000 0.104000 0.131000 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000150 0.020000 0.124000 0.096000 0.130000 +0 0 1 +0.710000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007800 0.014000 0.111000 0.096000 0.116000 +0 0 1 +0.690000 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0.000090 0.020100 0.131000 0.070000 0.186000 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008590 0.011000 0.084000 0.074000 0.114000 +0 1 0 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.011000 0.010000 0.101000 0.079000 0.128000 +0 1 0 +0.440000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020100 0.097000 0.081000 0.120000 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.120000 0.100000 0.120000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.008000 0.087000 0.089000 0.098000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.106000 0.003000 0.005000 0.111000 0.004500 +1 0 0 +0.500000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.280000 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0.000100 0.095000 0.090000 0.112000 0.080000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.015000 0.087000 0.080000 0.109000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000930 0.020800 0.142000 0.109000 0.129000 +0 0 1 +0.840000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003500 0.020600 0.077000 0.074000 0.104000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020800 0.112000 0.098000 0.114000 +0 0 1 +0.350000 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001300 0.016000 0.087000 0.096000 0.090430 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.020100 0.104000 0.093000 0.112000 +0 0 1 +0.600000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.020100 0.155000 0.078000 0.199000 +0 0 1 +0.180000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.026000 0.086000 0.091000 0.094000 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.022000 0.090000 0.084000 0.107000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000900 0.023000 0.117000 0.095000 0.123000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.014000 0.135000 0.119000 0.113000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.020000 0.078000 0.096000 0.081080 +0 0 1 +0.330000 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.012000 0.015000 0.086000 0.100000 0.086000 +0 1 0 +0.760000 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.006600 0.010000 0.091000 0.104000 0.088000 +0 0 1 +0.530000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000650 0.020800 0.087000 0.083000 0.105000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.024000 0.129000 0.098000 0.131000 +0 0 1 +0.280000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.080000 0.077000 0.104000 +0 0 1 +0.600000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.020600 0.159000 0.107000 0.149000 +0 0 1 +0.780000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000710 0.005000 0.105000 0.082000 0.129000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000930 0.020100 0.127000 0.094000 0.135000 +0 0 1 +0.600000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.012000 0.109000 0.086000 0.127000 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000580 0.012000 0.089000 0.090000 0.099000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000560 0.006000 0.049000 0.054000 0.090000 +0 0 1 +0.250000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002400 0.022000 0.152000 0.136000 0.112000 +0 0 1 +0.460000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.017000 0.132000 0.102000 0.130000 +0 0 1 +0.390000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.024000 0.112000 0.103000 0.109000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.010000 0.111000 0.085000 0.131000 +0 0 1 +0.620000 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0.013000 0.008000 0.083000 0.081000 0.103000 +0 1 0 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.017000 0.093000 0.073000 0.127000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.020600 0.132000 0.090000 0.147000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.023000 0.122000 0.086000 0.142000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.012000 0.087000 0.072000 0.121000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005000 0.020100 0.098000 0.101000 0.097000 +0 0 1 +0.740000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003700 0.022000 0.099000 0.104000 0.096000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.015000 0.096000 0.088000 0.109000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020000 0.096000 0.104000 0.092000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005100 0.002000 0.059000 0.073000 0.082000 +0 0 1 +0.280000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001120 0.026000 0.122000 0.095000 0.127000 +0 0 1 +0.540000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.019000 0.098000 0.101000 0.097000 +0 0 1 +0.650000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.012000 0.012000 0.118000 0.090000 0.130000 +0 0 1 +0.680000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.017000 0.144000 0.096000 0.150000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.013000 0.012000 0.108000 0.090000 0.120000 +0 1 0 +0.640000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.023000 0.177000 0.151000 0.117000 +0 0 1 +0.210000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001600 0.017000 0.079000 0.077000 0.102000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.020600 0.080000 0.086000 0.093000 +0 0 1 +0.770000 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0.001900 0.016000 0.114000 0.099000 0.114000 +0 0 1 +0.830000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.022000 0.112000 0.097000 0.115000 +0 0 1 +0.620000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.006500 0.018000 0.097000 0.129000 0.076000 +0 0 1 +0.260000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000500 0.018000 0.111000 0.083000 0.134000 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.400000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.022000 0.103000 0.110000 0.093000 +0 0 1 +0.250000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.860000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.016000 0.124000 0.101000 0.122000 +0 0 1 +0.730000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000840 0.013000 0.066000 0.116000 0.056000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.020100 0.112000 0.073000 0.153000 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.009000 0.105000 0.061000 0.173000 +0 0 1 +0.521900 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000380 0.020000 0.113000 0.108000 0.104000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005730 0.018000 0.109000 0.104000 0.104000 +0 0 1 +0.160000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003600 0.026000 0.094000 0.094000 0.100000 +0 0 1 +0.750000 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0.005200 0.020100 0.096000 0.089000 0.108000 +0 0 1 +0.440000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.029000 0.100000 0.097000 0.103000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.024000 0.149000 0.116000 0.126000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.005000 0.077000 0.110000 0.070000 +0 0 1 +0.700000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.067000 0.083000 0.081000 +0 0 1 +0.820000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000200 0.014000 0.113000 0.085000 0.132000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001200 0.020100 0.105000 0.107000 0.099000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002080 0.020100 0.100000 0.104000 0.096000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020100 0.077000 0.071000 0.109000 +0 0 1 +0.540000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000040 0.031000 0.231000 0.096000 0.241000 +0 0 1 +0.320000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.077000 0.073000 0.105000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.020800 0.114000 0.090000 0.126000 +0 0 1 +0.570000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.023000 0.213000 0.109000 0.195000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.001900 0.020800 0.113000 0.101000 0.112000 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.133000 0.100000 0.133000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000150 0.073000 0.430000 0.109000 0.395000 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.023000 0.086000 0.108000 0.080000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.020100 0.090000 0.084000 0.107000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002080 0.017000 0.083000 0.058000 0.143000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.043000 0.184000 0.119000 0.155000 +0 0 1 +0.320000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000760 0.020800 0.082000 0.086000 0.095000 +0 0 1 +0.380000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002000 0.019000 0.139000 0.096000 0.145000 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.020100 0.077000 0.085000 0.091000 +0 0 1 +0.450000 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0.001300 0.013000 0.073000 0.104000 0.070000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.024000 0.073000 0.089000 0.082000 +0 0 1 +0.400000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.033000 0.032000 0.113290 0.096000 0.117760 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000830 0.023000 0.113000 0.084000 0.134000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.022000 0.105000 0.101000 0.105000 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.010000 0.020800 0.065000 0.100000 0.064930 +0 1 0 +0.780000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.018000 0.122000 0.107000 0.114000 +0 0 1 +0.830000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.005000 0.134000 0.073000 0.183000 +0 0 1 +0.160000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.006200 0.017400 0.108000 0.114000 0.094000 +0 1 0 +0.660000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.024000 0.122000 0.092000 0.133000 +0 0 1 +0.790000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.003900 0.009000 0.090000 0.062000 0.145000 +0 0 1 +0.630000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.004400 0.020100 0.136000 0.100000 0.136000 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.020800 0.097000 0.072000 0.135000 +0 0 1 +0.420000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000040 0.020800 0.111000 0.089000 0.125000 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.017000 0.092000 0.101000 0.091000 +0 0 1 +0.630000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020000 0.136000 0.114000 0.119000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002200 0.020600 0.100000 0.114000 0.087000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.020000 0.119000 0.092000 0.129000 +0 0 1 +0.700000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.020600 0.070000 0.090000 0.078000 +0 0 1 +0.280000 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.002400 0.020800 0.125000 0.099000 0.126000 +0 0 1 +0.250000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.014000 0.020600 0.081000 0.090000 0.090000 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004190 0.022000 0.104000 0.111000 0.093000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.043000 0.003000 0.014000 0.103000 0.013470 +1 0 0 +0.530000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000720 0.020100 0.120000 0.088000 0.139000 +0 0 1 +0.710000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.013000 0.093000 0.081000 0.115000 +0 0 1 +0.290000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001700 0.023000 0.135000 0.097000 0.140000 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.022000 0.071000 0.100000 0.071000 +0 0 1 +0.820000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.020600 0.125000 0.084000 0.149000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.023000 0.085000 0.081000 0.105000 +0 0 1 +0.580000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.106000 0.113000 0.094000 +0 0 1 +0.410000 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0.000200 0.020600 0.430000 0.109000 0.395000 +0 0 1 +0.410000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001600 0.031000 0.061000 0.093000 0.066000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.014000 0.089000 0.113000 0.079000 +0 0 1 +0.680000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.015000 0.020000 0.081000 0.101000 0.081000 +0 1 0 +0.520000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.012000 0.101000 0.090000 0.112000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.014000 0.116000 0.081000 0.143000 +0 0 1 +0.410000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005600 0.014000 0.130000 0.116000 0.112000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.024000 0.109000 0.099000 0.109870 +0 0 1 +0.840000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.020600 0.154000 0.097000 0.159000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002600 0.008000 0.097000 0.089000 0.109000 +0 0 1 +0.480000 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0.001200 0.020100 0.105000 0.072000 0.146000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.810000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.016000 0.094000 0.080000 0.119000 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.032000 0.123000 0.129000 0.096000 +0 0 1 +0.710000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000320 0.016000 0.164000 0.111000 0.148000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.001900 0.020800 0.118000 0.120000 0.098000 +0 0 1 +0.590000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.006800 0.007000 0.084000 0.078000 0.107000 +0 1 0 +0.650000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000020 0.031000 0.114000 0.091000 0.126000 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.014000 0.090000 0.080000 0.113000 +0 0 1 +0.770000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.039000 0.012000 0.048000 0.114000 0.042000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003600 0.020100 0.140000 0.150000 0.093000 +0 0 1 +0.430000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000700 0.025000 0.099000 0.112000 0.089000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007100 0.017000 0.096000 0.089000 0.108000 +0 1 0 +0.560000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.027000 0.212000 0.115000 0.184000 +0 0 1 +0.730000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.016000 0.089000 0.074000 0.119000 +0 0 1 +0.340000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.028000 0.160000 0.151000 0.106000 +0 0 1 +0.530000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000620 0.017000 0.116000 0.100000 0.116000 +0 0 1 +0.280000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000500 0.022000 0.089000 0.104000 0.084000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.003100 0.018000 0.095000 0.091000 0.104000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004800 0.020100 0.083000 0.084000 0.099000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.114000 0.090000 0.127000 +0 0 1 +0.340000 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.010000 0.022000 0.086000 0.091000 0.095000 +0 1 0 +0.150000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.029000 0.101000 0.096000 0.106000 +0 0 1 +0.340000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.017000 0.138000 0.103000 0.134000 +0 0 1 +0.440000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020100 0.078000 0.080000 0.098000 +0 0 1 +0.250000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001000 0.032000 0.117000 0.111000 0.105000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.017000 0.071000 0.108000 0.066000 +0 0 1 +0.590000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.000250 0.024000 0.109000 0.097000 0.113000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.025000 0.110000 0.100000 0.110000 +0 0 1 +0.150000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.126000 0.116000 0.109000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000140 0.020000 0.175000 0.104000 0.165000 +0 0 1 +0.720000 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0.000400 0.020600 0.186000 0.124000 0.150000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.019000 0.012000 0.102000 0.095000 0.106690 +0 1 0 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.024000 0.100000 0.100000 0.100000 +0 0 1 +0.360000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.027000 0.163000 0.104000 0.156000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000570 0.020100 0.135000 0.088000 0.153000 +0 0 1 +0.610000 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0.036000 0.012000 0.109000 0.104000 0.103000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001400 0.025000 0.056000 0.090000 0.062000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.023000 0.114000 0.110000 0.104000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.019000 0.017400 0.093000 0.120000 0.077000 +0 1 0 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000390 0.023000 0.102000 0.099000 0.102820 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.023000 0.092000 0.104000 0.088000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.020800 0.082000 0.088000 0.093000 +0 0 1 +0.830000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.020600 0.085000 0.065000 0.131000 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.008000 0.048000 0.070000 0.069000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020800 0.095000 0.097000 0.098000 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.019000 0.084000 0.078000 0.107000 +0 0 1 +0.780000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000430 0.020100 0.093000 0.093000 0.100000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.006200 0.017000 0.072000 0.089000 0.081000 +0 1 0 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000310 0.003000 0.080000 0.072000 0.111000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.000580 0.023000 0.099000 0.096000 0.103000 +0 0 1 +0.220000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020800 0.076000 0.079000 0.096000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020000 0.100000 0.092000 0.109000 +0 0 1 +0.500000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.018000 0.130000 0.112000 0.116000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002500 0.020000 0.101000 0.085000 0.119000 +0 0 1 +0.230000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000750 0.022000 0.106000 0.088000 0.120000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002320 0.004000 0.113290 0.096000 0.117760 +0 0 1 +0.640000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.009700 0.011000 0.077000 0.079000 0.097000 +0 1 0 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.020100 0.110000 0.103000 0.107000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000830 0.020100 0.104000 0.087000 0.120000 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.019000 0.109000 0.078000 0.139000 +0 0 1 +0.630000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001500 0.020800 0.129000 0.108000 0.120000 +0 0 1 +0.460000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.014000 0.093000 0.077000 0.121000 +0 0 1 +0.310000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000060 0.020100 0.123000 0.096000 0.127850 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000350 0.003000 0.044000 0.038000 0.118000 +0 0 1 +0.800000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000550 0.004000 0.090000 0.071000 0.127000 +0 0 1 +0.150000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.003100 0.020100 0.088000 0.074000 0.119000 +0 0 1 +0.630000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000510 0.020100 0.074000 0.063000 0.116000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.041000 0.017000 0.095000 0.102000 0.093000 +0 1 0 +0.740000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.020800 0.077000 0.091000 0.084000 +0 0 1 +0.300000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.031000 0.119000 0.108000 0.109000 +0 0 1 +0.840000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000670 0.009000 0.070000 0.078000 0.090000 +0 0 1 +0.440000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.020600 0.106000 0.102000 0.105000 +0 0 1 +0.210000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.018000 0.095000 0.096000 0.099000 +0 0 1 +0.630000 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0.003200 0.020100 0.160000 0.098000 0.162000 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002900 0.017000 0.075000 0.097000 0.077000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.090000 0.077000 0.117000 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.024000 0.017000 0.075000 0.084000 0.089000 +0 1 0 +0.560000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020100 0.120000 0.098000 0.122000 +0 0 1 +0.810000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000650 0.013000 0.091000 0.087000 0.104000 +0 0 1 +0.515000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020000 0.118000 0.113000 0.104000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.020100 0.142000 0.120000 0.118000 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.013000 0.071000 0.096000 0.073800 +0 0 1 +0.480000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.024000 0.130000 0.124000 0.105000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020100 0.132000 0.112000 0.118000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.057000 0.085000 0.065000 +0 0 1 +0.640000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.020600 0.098000 0.072000 0.136000 +0 0 1 +0.670000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000770 0.020100 0.135000 0.116000 0.116000 +0 0 1 +0.610000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000440 0.020600 0.075000 0.060000 0.124000 +0 0 1 +0.610000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.530000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000240 0.020100 0.153000 0.095000 0.161000 +0 0 1 +0.590000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.013000 0.078000 0.076000 0.103000 +0 0 1 +0.580000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.024000 0.095000 0.095000 0.100000 +0 0 1 +0.530000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000400 0.020600 0.115000 0.090000 0.128000 +0 0 1 +0.550000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.019000 0.107000 0.074000 0.144000 +0 0 1 +0.260000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020000 0.072000 0.069000 0.104000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.018000 0.108000 0.071000 0.151000 +0 0 1 +0.630000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.006700 0.015000 0.101000 0.065000 0.155000 +0 1 0 +0.820000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002080 0.017000 0.099000 0.091000 0.108000 +0 0 1 +0.510000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.019000 0.101000 0.108000 0.094000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.025000 0.125000 0.122000 0.102000 +0 0 1 +0.610000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008090 0.012000 0.092000 0.096000 0.096000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000080 0.025000 0.208000 0.086000 0.242000 +0 0 1 +0.540000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.020100 0.072000 0.096000 0.074830 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000660 0.020100 0.107000 0.086000 0.124000 +0 0 1 +0.450000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.020000 0.093000 0.098000 0.095000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.020600 0.127000 0.092000 0.138000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.015000 0.102000 0.099000 0.102820 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.020100 0.096000 0.090000 0.107000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.020100 0.075000 0.095000 0.079000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000400 0.024000 0.102000 0.112000 0.092000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001100 0.020000 0.097000 0.099000 0.098000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.023000 0.118000 0.097000 0.120000 +0 0 1 +0.840000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.012000 0.017400 0.101000 0.108000 0.094000 +0 1 0 +0.280000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002500 0.007000 0.087000 0.108000 0.081000 +0 0 1 +0.420000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.055000 0.020100 0.077000 0.097000 0.080000 +0 0 1 +0.910000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004690 0.014000 0.101000 0.088000 0.115000 +0 0 1 +0.210000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000350 0.009000 0.068000 0.096000 0.070680 +0 0 1 +0.440000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.018000 0.119000 0.098000 0.120000 +0 0 1 +0.290000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.018000 0.093000 0.069000 0.135000 +0 0 1 +0.590000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.042000 0.002000 0.014000 0.116000 0.012000 +1 0 0 +0.680000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.020000 0.025000 0.111000 0.157000 0.071000 +0 1 0 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.023000 0.101000 0.099000 0.102000 +0 0 1 +0.370000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.023000 0.068000 0.094000 0.072000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.035000 0.207000 0.096000 0.215170 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.019000 0.066000 0.071000 0.093000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.026000 0.108000 0.104000 0.102000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000710 0.017000 0.102000 0.112000 0.092000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.012000 0.124000 0.112000 0.111000 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001890 0.018000 0.071000 0.072000 0.099000 +0 0 1 +0.720000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000670 0.018000 0.099000 0.098000 0.101000 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000090 0.023000 0.212000 0.134000 0.158000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.048000 0.005000 0.004190 0.136000 0.003100 +1 0 0 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000790 0.020100 0.096000 0.099000 0.097000 +0 0 1 +0.130000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020100 0.082000 0.095000 0.086000 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.001600 0.017000 0.102000 0.089000 0.115000 +0 0 1 +0.430000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001100 0.023000 0.140000 0.120000 0.116000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.020100 0.114000 0.095000 0.120000 +0 0 1 +0.870000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000200 0.015000 0.132000 0.086000 0.153000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.024000 0.117000 0.104000 0.113000 +0 0 1 +0.630000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.023000 0.090000 0.088000 0.102000 +0 0 1 +0.820000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000170 0.018000 0.119000 0.091000 0.130000 +0 0 1 +0.740000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.028000 0.020600 0.074000 0.103000 0.072000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.018000 0.088000 0.114000 0.076000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0.002080 0.016000 0.136000 0.096000 0.141370 +0 0 1 +0.500000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.025000 0.114000 0.111000 0.103000 +0 0 1 +0.560000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.020600 0.170000 0.096000 0.177000 +0 0 1 +0.340000 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0.026000 0.037000 0.107000 0.121000 0.088000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007200 0.035000 0.126000 0.138000 0.092000 +0 1 0 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.025000 0.084000 0.104000 0.079000 +0 0 1 +0.670000 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0.002300 0.027000 0.124000 0.101000 0.123000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000870 0.026000 0.129000 0.142000 0.091000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000740 0.020100 0.134000 0.102000 0.131000 +0 0 1 +0.650000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001300 0.014000 0.144000 0.130000 0.110000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000070 0.027000 0.123000 0.129000 0.095000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.020100 0.097000 0.095000 0.102000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.440000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001300 0.015000 0.064000 0.101000 0.063000 +0 0 1 +0.250000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000520 0.018000 0.107000 0.093000 0.115000 +0 0 1 +0.650000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.034000 0.210000 0.104000 0.199000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007000 0.017000 0.096000 0.093000 0.103000 +0 1 0 +0.840000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.003000 0.073000 0.085000 0.086000 +0 0 1 +0.480000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.027000 0.110000 0.109000 0.101000 +0 0 1 +0.310000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.014000 0.062000 0.064000 0.098000 +0 0 1 +0.830000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000090 0.020100 0.102000 0.093000 0.110000 +0 0 1 +0.170000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.033000 0.084000 0.096000 0.087310 +0 0 1 +0.260000 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0.000300 0.020600 0.151000 0.197000 0.076000 +0 0 1 +0.510000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000880 0.020800 0.088000 0.085000 0.104000 +0 0 1 +0.410000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.015000 0.100000 0.101000 0.099000 +0 0 1 +0.610000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001800 0.023000 0.089000 0.085000 0.105000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000880 0.003000 0.046000 0.058000 0.079000 +0 0 1 +0.690000 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.014000 0.163000 0.082000 0.199000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000230 0.020100 0.085000 0.076000 0.111000 +0 0 1 +0.490000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.003000 0.032000 0.052000 0.060000 +0 0 1 +0.800000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008290 0.017000 0.115000 0.086000 0.134000 +0 1 0 +0.350000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.020000 0.121000 0.081000 0.148000 +0 0 1 +0.270000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.017000 0.089000 0.086000 0.104000 +0 0 1 +0.640000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.009290 0.025000 0.092000 0.095000 0.096230 +0 1 0 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005800 0.013000 0.092000 0.094000 0.098000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020100 0.117000 0.109000 0.107000 +0 0 1 +0.460000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.020100 0.078000 0.093000 0.084000 +0 0 1 +0.610000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.017000 0.096000 0.083000 0.116000 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.018000 0.101000 0.103000 0.098000 +0 0 1 +0.220000 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0.001900 0.020100 0.182000 0.195000 0.093000 +0 0 1 +0.230000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.010000 0.115000 0.092000 0.125000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000490 0.020000 0.123000 0.096000 0.127850 +0 0 1 +0.600000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000520 0.014000 0.131000 0.098000 0.133000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.020100 0.064000 0.080000 0.080000 +0 0 1 +0.470000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.018000 0.111000 0.092000 0.120000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.020600 0.104000 0.112000 0.092000 +0 0 1 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.025000 0.085000 0.081000 0.105000 +0 0 1 +0.740000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.000500 0.024000 0.100000 0.107000 0.093000 +0 0 1 +0.220000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000660 0.022000 0.120000 0.122000 0.098000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.019000 0.131000 0.095000 0.138000 +0 0 1 +0.210000 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.001890 0.020600 0.132000 0.087000 0.152000 +0 0 1 +0.950000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004400 0.004000 0.054000 0.062000 0.087000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.013000 0.073000 0.076000 0.096000 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000410 0.020100 0.117000 0.114000 0.103000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.013000 0.017000 0.064000 0.097000 0.066000 +0 1 0 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.020100 0.116000 0.098000 0.118000 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.009300 0.089000 0.066000 0.135000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001400 0.020100 0.093000 0.083000 0.112000 +0 0 1 +0.570000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.025000 0.066000 0.091000 0.073000 +0 0 1 +0.580000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000080 0.028000 0.109000 0.090000 0.121000 +0 0 1 +0.620000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.006500 0.017000 0.110000 0.141000 0.078000 +0 1 0 +0.430000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.026000 0.087000 0.113000 0.078000 +0 0 1 +0.650000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.017000 0.116000 0.107000 0.108000 +0 0 1 +0.450000 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.002300 0.022000 0.098000 0.093000 0.105000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000210 0.020000 0.142000 0.103000 0.138000 +0 0 1 +0.300000 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000050 0.019000 0.112000 0.077000 0.145000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000630 0.026000 0.160000 0.120000 0.134000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.026000 0.214000 0.099000 0.216000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000580 0.020600 0.150000 0.103000 0.146000 +0 0 1 +0.590000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.004300 0.011000 0.070000 0.100000 0.070000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000010 0.018000 0.173000 0.100000 0.173000 +0 0 1 +0.250000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.026400 0.023000 0.073000 0.109000 0.067000 +0 1 0 +0.360000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.033000 0.132000 0.121000 0.110000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.013000 0.110000 0.112000 0.098000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000650 0.020600 0.126000 0.131000 0.096000 +0 0 1 +0.710000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.038000 0.004000 0.037000 0.074000 0.050000 +1 0 0 +0.570000 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.001400 0.025000 0.101000 0.103000 0.096000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.022000 0.116000 0.114000 0.102000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.023000 0.113290 0.096000 0.117760 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020800 0.146000 0.120000 0.121000 +0 0 1 +0.250000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.077000 0.087000 0.088000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.017000 0.098000 0.108000 0.090000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.018000 0.142000 0.113000 0.125000 +0 0 1 +0.400000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002300 0.022000 0.123000 0.109000 0.113000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006300 0.009600 0.059000 0.098000 0.060000 +1 0 0 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.118000 0.091000 0.130000 +0 0 1 +0.720000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000850 0.017000 0.081000 0.089000 0.091000 +0 0 1 +0.650000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000810 0.020100 0.102000 0.084000 0.122000 +0 0 1 +0.310000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005100 0.020600 0.093000 0.097000 0.095000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.103000 0.109000 0.095000 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002200 0.020100 0.087000 0.080000 0.109000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.003600 0.013000 0.153000 0.100000 0.152000 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004190 0.025000 0.114000 0.116000 0.097000 +0 0 1 +0.680000 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0.000480 0.030000 0.097000 0.104000 0.092000 +0 0 1 +0.670000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.003100 0.020100 0.118000 0.101000 0.117000 +0 0 1 +0.710000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001500 0.020000 0.141000 0.103000 0.137000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.020100 0.103000 0.115000 0.090000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.018000 0.105000 0.099000 0.105840 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.020100 0.107000 0.111000 0.096000 +0 0 1 +0.710000 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.025000 0.003000 0.031000 0.068000 0.046000 +1 0 0 +0.800000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.008000 0.105000 0.088000 0.120000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.005000 0.113290 0.096000 0.117760 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003700 0.020000 0.047000 0.075000 0.063000 +0 0 1 +0.390000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001700 0.020100 0.090000 0.068000 0.132000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001890 0.011000 0.093000 0.078000 0.119000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.014000 0.074000 0.073000 0.101000 +0 0 1 +0.650000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000470 0.008000 0.154000 0.075000 0.204000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000020 0.028000 0.105000 0.096000 0.109140 +0 0 1 +0.800000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.033000 0.020100 0.234000 0.215000 0.109000 +0 0 1 +0.440000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.950000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000960 0.008000 0.103000 0.089000 0.116000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.016000 0.100000 0.086000 0.117000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.003300 0.007000 0.076000 0.072000 0.105000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000400 0.013000 0.091000 0.102000 0.089000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004600 0.016000 0.097000 0.112000 0.087000 +0 0 1 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001200 0.017000 0.101000 0.086000 0.117000 +0 0 1 +0.300000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000310 0.029000 0.143000 0.139000 0.103000 +0 0 1 +0.780000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001000 0.023000 0.096000 0.104000 0.092000 +0 0 1 +0.400000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000820 0.020100 0.140000 0.104000 0.132000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000580 0.010000 0.090000 0.077000 0.117000 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.018000 0.130000 0.091000 0.143000 +0 0 1 +0.630000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.020100 0.048000 0.055000 0.087000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.009290 0.017000 0.107000 0.113000 0.095000 +0 1 0 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.020100 0.098000 0.081000 0.120000 +0 0 1 +0.210000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.153000 0.156000 0.098000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004100 0.008000 0.077000 0.082000 0.093000 +0 0 1 +0.370000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001400 0.020100 0.100000 0.086000 0.117000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000950 0.020000 0.109000 0.115000 0.094000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.020000 0.130000 0.099000 0.131030 +0 0 1 +0.750000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.026000 0.090000 0.099000 0.091000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.019000 0.111180 0.099000 0.112070 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000830 0.031000 0.124000 0.110000 0.113000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005200 0.007000 0.061000 0.046000 0.133000 +0 0 1 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005300 0.014000 0.056000 0.088000 0.064000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.027000 0.136000 0.127000 0.107000 +0 0 1 +0.530000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.019000 0.104000 0.093000 0.112000 +0 0 1 +0.680000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.009390 0.009600 0.034000 0.063000 0.054000 +1 0 0 +0.710000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002400 0.025000 0.093000 0.107000 0.087000 +0 0 1 +0.400000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.020600 0.117000 0.121000 0.097000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.010000 0.022000 0.081000 0.109000 0.074000 +0 1 0 +0.660000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005900 0.015000 0.108000 0.089000 0.121000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001600 0.022000 0.087000 0.095000 0.092000 +0 0 1 +0.700000 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.002300 0.028000 0.090000 0.110000 0.082000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.011500 0.010000 0.128000 0.096000 0.133000 +0 1 0 +0.500000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.020600 0.124000 0.099000 0.130000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000090 0.016000 0.192000 0.116000 0.164000 +0 0 1 +0.750000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007000 0.023000 0.095000 0.110000 0.086000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000050 0.020100 0.147000 0.114000 0.129000 +0 0 1 +0.310000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.018000 0.067000 0.089000 0.072000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.047000 0.009600 0.019000 0.094000 0.020000 +1 0 0 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.017000 0.153000 0.104000 0.144000 +0 0 1 +0.580000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000060 0.034000 0.129000 0.095000 0.136000 +0 0 1 +0.640000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.015000 0.089000 0.097000 0.092000 +0 0 1 +0.660000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.018000 0.114000 0.092000 0.124000 +0 0 1 +0.560000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.002700 0.015000 0.103000 0.095000 0.109000 +0 0 1 +0.450000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000200 0.020800 0.101000 0.084000 0.121000 +0 0 1 +0.690000 1 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0.000300 0.026000 0.089000 0.110000 0.081000 +0 0 1 +0.700000 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0.004000 0.018000 0.109000 0.082000 0.133000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.123000 0.104000 0.116000 +0 0 1 +0.470000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.017000 0.094000 0.099000 0.094750 +0 0 1 +0.740000 1 1 0 1 0 0 0 0 1 1 0 0 0 0 0 0.005200 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0.002500 0.020600 0.118000 0.100000 0.118000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000820 0.014000 0.129000 0.088000 0.147000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000800 0.022000 0.091000 0.079000 0.115000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.020100 0.153000 0.099000 0.155000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020600 0.152000 0.113000 0.135000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.017000 0.075000 0.081000 0.093000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003800 0.018000 0.097000 0.085000 0.114000 +0 0 1 +0.270000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.079000 0.079000 0.100000 +0 0 1 +0.440000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.118000 0.095000 0.124000 +0 0 1 +0.500000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.022000 0.091000 0.111000 0.082000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.019000 0.090000 0.099000 0.091000 +0 0 1 +0.310000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000040 0.027000 0.163000 0.094000 0.172000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.020600 0.104000 0.090000 0.116000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.018000 0.100000 0.091000 0.110000 +0 0 1 +0.830000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.018000 0.099000 0.076000 0.130000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020000 0.119000 0.111000 0.107000 +0 0 1 +0.810000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020100 0.137000 0.115000 0.119000 +0 0 1 +0.660000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000320 0.007000 0.087000 0.091000 0.096000 +0 0 1 +0.070000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000940 0.020000 0.093000 0.084000 0.110000 +0 0 1 +0.410000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.003200 0.013000 0.078000 0.097000 0.080000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.014000 0.115000 0.097000 0.118000 +0 0 1 +0.510000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000060 0.020100 0.248000 0.143000 0.173000 +0 0 1 +0.470000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001100 0.020600 0.094000 0.097000 0.097000 +0 0 1 +0.360000 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.030000 0.071000 0.085000 0.084000 +0 0 1 +0.280000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.016000 0.091000 0.088000 0.103000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.024000 0.146000 0.092000 0.159000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000150 0.029000 0.099000 0.114000 0.088000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003900 0.025000 0.087000 0.111000 0.078000 +0 0 1 +0.200000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000900 0.024000 0.123000 0.099000 0.125000 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.019000 0.100000 0.104000 0.093000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000660 0.020100 0.160000 0.178000 0.090000 +0 0 1 +0.290000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.011000 0.046000 0.099000 0.104000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.022000 0.097000 0.101000 0.097000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.028000 0.122000 0.112000 0.109000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000700 0.022000 0.072000 0.116000 0.062000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.019000 0.126000 0.090000 0.141000 +0 0 1 +0.410000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.003600 0.034000 0.099000 0.107000 0.093000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.009290 0.015000 0.057000 0.069000 0.083000 +0 1 0 +0.580000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.020600 0.164000 0.110000 0.149000 +0 0 1 +0.580000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.011000 0.105000 0.087000 0.121000 +0 0 1 +0.720000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.019000 0.104000 0.101000 0.104000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.020100 0.097000 0.113000 0.086000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000840 0.020100 0.130000 0.104000 0.123000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020000 0.104000 0.094000 0.111000 +0 0 1 +0.510000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.013000 0.160000 0.099000 0.162000 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.025000 0.151000 0.121000 0.125000 +0 0 1 +0.660000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.002700 0.010000 0.067000 0.083000 0.080000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000310 0.020600 0.118000 0.083000 0.142000 +0 0 1 +0.730000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020100 0.156000 0.099000 0.158000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004100 0.020000 0.127000 0.104000 0.122000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.012000 0.022000 0.071000 0.140000 0.051000 +1 0 0 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004900 0.020000 0.097000 0.087000 0.112000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.009000 0.140000 0.099000 0.141120 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007500 0.016000 0.082000 0.108000 0.077000 +0 1 0 +0.200000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.015000 0.103000 0.110000 0.093000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000600 0.022000 0.123000 0.093000 0.132000 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.003700 0.020800 0.124000 0.095000 0.131000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.002000 0.080000 0.080000 0.099000 +0 0 1 +0.270000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000870 0.018000 0.098000 0.100000 0.098000 +0 0 1 +0.590000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020100 0.113000 0.092000 0.123000 +0 0 1 +0.440000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0.000090 0.049000 0.221000 0.093000 0.237000 +0 0 1 +0.160000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.025000 0.103000 0.086000 0.120000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020600 0.113000 0.097000 0.117000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.190000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000840 0.020000 0.098000 0.088000 0.112000 +0 0 1 +0.510000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.137000 0.084000 0.163000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000420 0.030000 0.091000 0.115000 0.079000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004300 0.020600 0.114000 0.104000 0.108000 +0 0 1 +0.390000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000550 0.020600 0.083000 0.104000 0.080000 +0 0 1 +0.340000 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.028000 0.155000 0.100000 0.155000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.023000 0.083000 0.097000 0.085000 +0 0 1 +0.460000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.020100 0.116000 0.100000 0.117000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.020000 0.104000 0.104000 0.098000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.090000 0.100000 0.090000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004690 0.019000 0.096000 0.112000 0.085000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000220 0.028000 0.095000 0.110000 0.086000 +0 0 1 +0.650000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.006000 0.061000 0.058000 0.105000 +0 0 1 +0.450000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001300 0.017000 0.090000 0.057000 0.158000 +0 0 1 +0.710000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000690 0.020100 0.135000 0.102000 0.133000 +0 0 1 +0.460000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.003000 0.023000 0.085000 0.090000 0.094000 +0 0 1 +0.530000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.022000 0.108000 0.089000 0.121000 +0 0 1 +0.340000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003800 0.020000 0.087000 0.115000 0.076000 +0 0 1 +0.750000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.000830 0.019000 0.116000 0.099000 0.117000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.020600 0.101000 0.090000 0.113000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.020100 0.113000 0.094000 0.120000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.037000 0.169000 0.114000 0.148000 +0 0 1 +0.740000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.006900 0.017400 0.097000 0.087000 0.112000 +0 1 0 +0.630000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000030 0.015000 0.147000 0.093000 0.158000 +0 0 1 +0.500000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001800 0.024000 0.116000 0.097000 0.120000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.018000 0.090000 0.071000 0.126000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.020600 0.137000 0.163000 0.084000 +0 0 1 +0.770000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.020600 0.131000 0.074000 0.176000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000830 0.024000 0.123000 0.114000 0.108000 +0 0 1 +0.830000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007000 0.020100 0.148000 0.087000 0.170000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.005100 0.016000 0.091000 0.108000 0.085000 +0 0 1 +0.170000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.580000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000640 0.010000 0.103000 0.099000 0.103830 +0 0 1 +0.770000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000810 0.020000 0.080000 0.096000 0.083160 +0 0 1 +0.410000 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0.022000 0.064000 0.094000 0.069000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.890000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.016000 0.108000 0.092000 0.118000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020100 0.097000 0.083000 0.117000 +0 0 1 +0.280000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000070 0.019000 0.175000 0.123000 0.143000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020100 0.150000 0.104000 0.142000 +0 0 1 +0.390000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000010 0.020100 0.098000 0.075000 0.131000 +0 0 1 +0.560000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.030000 0.104000 0.115000 0.090000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.010000 0.020000 0.078000 0.100000 0.077920 +0 1 0 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000560 0.013000 0.111000 0.086000 0.128000 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001300 0.019000 0.101000 0.099000 0.101810 +0 0 1 +0.520000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.015000 0.111000 0.098000 0.114000 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001300 0.018000 0.104000 0.099000 0.104830 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.131000 0.113000 0.116000 +0 0 1 +0.500000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.490000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.020600 0.184000 0.086000 0.214000 +0 0 1 +0.870000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.012000 0.103000 0.087000 0.118000 +0 0 1 +0.560000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.015000 0.114000 0.070000 0.163000 +0 0 1 +0.500000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.089000 0.002000 0.010000 0.113000 0.009000 +1 0 0 +0.340000 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0.035000 0.198000 0.179000 0.111000 +0 0 1 +0.540000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.020600 0.156000 0.123000 0.126000 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.016000 0.086000 0.070000 0.123000 +0 0 1 +0.400000 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002400 0.012000 0.095000 0.080000 0.119000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001700 0.020100 0.069000 0.052000 0.130000 +0 0 1 +0.510000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.077000 0.077000 0.099000 +0 0 1 +0.190000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001100 0.017000 0.111000 0.083000 0.134000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.083000 0.114000 +0 0 1 +0.550000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000980 0.020600 0.107000 0.099000 0.107000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000010 0.015000 0.140000 0.088000 0.160000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000030 0.026000 0.128000 0.103000 0.124000 +0 0 1 +0.490000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.023000 0.123000 0.115000 0.106000 +0 0 1 +0.200000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.500000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001400 0.018000 0.126000 0.107000 0.117000 +0 0 1 +0.800000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.022000 0.097000 0.104000 0.094000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020100 0.159000 0.180000 0.088000 +0 0 1 +0.770000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.220000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.017000 0.103000 0.100000 0.103000 +0 0 1 +0.370000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.019000 0.117000 0.100000 0.118000 +0 0 1 +0.670000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.020600 0.121000 0.096000 0.127000 +0 0 1 +0.210000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000150 0.011000 0.171000 0.109000 0.157000 +0 0 1 +0.600000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.013000 0.014000 0.057000 0.062000 0.092000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.034000 0.136000 0.073000 0.185000 +0 0 1 +0.210000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020000 0.076000 0.103000 0.073000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.022000 0.111180 0.099000 0.095000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.025000 0.100000 0.093000 0.107000 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020600 0.082000 0.107000 0.077000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001400 0.030000 0.132000 0.135000 0.098000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000600 0.020600 0.078000 0.107000 0.073000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001100 0.015000 0.093000 0.075000 0.124000 +0 0 1 +0.280000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.029000 0.171000 0.120000 0.143000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.011000 0.070000 0.092000 0.076000 +0 0 1 +0.310000 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0.001890 0.029000 0.159000 0.143000 0.111000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005600 0.010000 0.143000 0.083000 0.173000 +0 0 1 +0.320000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.310000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.003100 0.018000 0.120000 0.122000 0.099000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001700 0.019000 0.104000 0.113000 0.092000 +0 0 1 +0.480000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000060 0.014000 0.129000 0.090000 0.143000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000180 0.010000 0.151000 0.070000 0.216000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002000 0.018000 0.126000 0.091000 0.138000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000710 0.025000 0.094000 0.094000 0.100000 +0 0 1 +0.430000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.020600 0.134000 0.103000 0.131000 +0 0 1 +0.500000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.067000 0.007000 0.080000 0.107000 0.074000 +0 0 1 +0.920000 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000300 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.570000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.000070 0.020100 0.142000 0.087000 0.163000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002300 0.020100 0.081000 0.091000 0.089000 +0 0 1 +0.890000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.020100 0.104000 0.101000 0.103000 +0 0 1 +0.350000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001890 0.022000 0.081000 0.096000 0.084000 +0 0 1 +0.450000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.025000 0.114000 0.101000 0.113000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000470 0.022000 0.161000 0.104000 0.153000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.017000 0.104000 0.099000 0.104830 +0 0 1 +0.480000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006700 0.020100 0.161000 0.162000 0.099000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.023000 0.135000 0.107000 0.127000 +0 0 1 +0.490000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.025000 0.094000 0.115000 0.082000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.019000 0.110000 0.093000 0.118000 +0 0 1 +0.340000 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0.000250 0.039000 0.139000 0.127000 0.110000 +0 0 1 +0.380000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000970 0.016000 0.105000 0.086000 0.122000 +0 0 1 +0.250000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.017000 0.123000 0.104000 0.116000 +0 0 1 +0.550000 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0.008590 0.003000 0.073000 0.076000 0.096000 +0 1 0 +0.840000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001890 0.020600 0.088000 0.087000 0.100000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.085000 0.244000 0.098000 0.249000 +0 0 1 +0.400000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002320 0.020800 0.100000 0.096000 0.104000 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000510 0.020100 0.105000 0.104000 0.101000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.031000 0.008000 0.013000 0.119000 0.011000 +1 0 0 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000150 0.027000 0.096000 0.104000 0.091000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.020100 0.107000 0.113000 0.095000 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005400 0.017000 0.104000 0.101000 0.103000 +0 0 1 +0.820000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000320 0.016000 0.098000 0.089000 0.110000 +0 0 1 +0.670000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002000 0.025000 0.133000 0.119000 0.112000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.009290 0.019000 0.085000 0.107000 0.080000 +0 1 0 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.045000 0.204000 0.203000 0.100000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.011000 0.035000 0.146000 0.110000 0.133000 +0 0 1 +0.400000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.006000 0.020000 0.125000 0.104000 0.120000 +0 0 1 +0.730000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001800 0.020800 0.103000 0.092000 0.112000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004190 0.020800 0.083000 0.119000 0.069000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000380 0.034000 0.144000 0.126000 0.114000 +0 0 1 +0.340000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.031000 0.097000 0.110000 0.086000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004400 0.017000 0.094000 0.097000 0.097000 +0 0 1 +0.840000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.026000 0.020600 0.073000 0.103000 0.072000 +0 0 1 +0.250000 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0.001900 0.020800 0.095000 0.094000 0.101000 +0 0 1 +0.150000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.156000 0.102000 0.152000 +0 0 1 +0.840000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020100 0.095000 0.063000 0.151000 +0 0 1 +0.730000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.012000 0.106000 0.123000 0.086000 +0 0 1 +0.710000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.014000 0.120000 0.087000 0.138000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.720000 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0.001000 0.014000 0.120000 0.094000 0.128000 +0 0 1 +0.610000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.017000 0.022000 0.131000 0.122000 0.108000 +0 0 1 +0.190000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000560 0.020100 0.082000 0.058000 0.139000 +0 0 1 +0.700000 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0.000070 0.009000 0.104000 0.083000 0.124000 +0 0 1 +0.360000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.025000 0.102000 0.096000 0.106000 +0 0 1 +0.700000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000780 0.019000 0.136000 0.090000 0.152000 +0 0 1 +0.150000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.023000 0.183000 0.089000 0.205000 +0 0 1 +0.170000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.074000 0.077000 0.096000 +0 0 1 +0.380000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.016000 0.149000 0.097000 0.154000 +0 0 1 +0.810000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.020100 0.075000 0.100000 0.075000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.023000 0.166000 0.084000 0.198000 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.025000 0.091000 0.102000 0.090000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002500 0.020800 0.079000 0.099000 0.080000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003900 0.018000 0.103000 0.084000 0.124000 +0 0 1 +0.680000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.086000 0.093000 0.092000 +0 0 1 +0.690000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004900 0.020600 0.073000 0.093000 0.079000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.026000 0.117000 0.104000 0.111000 +0 0 1 +0.500000 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0.061000 0.009600 0.013000 0.116000 0.011000 +1 0 0 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.020100 0.111000 0.082000 0.137000 +0 0 1 +0.670000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005600 0.020100 0.085000 0.094000 0.090000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.020000 0.099000 0.103000 0.095000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.025000 0.102000 0.116000 0.087000 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004000 0.022000 0.090000 0.116000 0.078000 +0 0 1 +0.220000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.018000 0.145000 0.092000 0.158000 +0 0 1 +0.820000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.005000 0.100000 0.096000 0.104000 +0 0 1 +0.330000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000400 0.022000 0.090000 0.098000 0.091000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004100 0.025000 0.118000 0.099000 0.118950 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.004600 0.020600 0.157000 0.171000 0.092000 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.015000 0.020100 0.163000 0.156000 0.104000 +0 0 1 +0.510000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000060 0.022000 0.164000 0.109000 0.151000 +0 0 1 +0.430000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.070000 0.005000 0.002900 0.104000 0.002800 +1 0 0 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.810000 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0.003900 0.014000 0.102000 0.102000 0.100000 +0 0 1 +0.560000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.009500 0.020600 0.115000 0.131000 0.088000 +0 0 1 +0.490000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020100 0.134000 0.128000 0.105000 +0 0 1 +0.370000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.020600 0.181000 0.121000 0.150000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004300 0.025000 0.105000 0.101000 0.103000 +0 0 1 +0.790000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002400 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.760000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.018000 0.127000 0.128000 0.099000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.016000 0.123000 0.109000 0.113000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.065000 0.009600 0.049000 0.095000 0.052000 +1 0 0 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004800 0.026000 0.093000 0.116000 0.079000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000010 0.024000 0.127000 0.084000 0.152000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.023000 0.114000 0.104000 0.110000 +0 0 1 +0.840000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001900 0.025000 0.137000 0.110000 0.125000 +0 0 1 +0.750000 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.000200 0.034000 0.103000 0.132000 0.078000 +0 0 1 +0.810000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.010000 0.000500 0.091000 0.097000 0.093000 +0 1 0 +0.240000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000630 0.024000 0.094000 0.093000 0.101000 +0 0 1 +0.770000 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0.003500 0.008000 0.068000 0.097000 0.070000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.031000 0.136000 0.107000 0.127000 +0 0 1 +0.180000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005900 0.020800 0.093000 0.096000 0.097000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007200 0.020100 0.234000 0.070000 0.334000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.031000 0.132000 0.104000 0.125000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.020000 0.087000 0.099000 0.087700 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020100 0.094000 0.080000 0.118000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.023000 0.098000 0.093000 0.105000 +0 0 1 +0.290000 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0.001400 0.034000 0.147000 0.149000 0.099000 +0 0 1 +0.500000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.062000 0.009000 0.087000 0.094000 0.092000 +0 1 0 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.020000 0.009600 0.039000 0.100000 0.039000 +1 0 0 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.120000 0.098000 0.122000 +0 0 1 +0.810000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.017000 0.071000 0.092000 0.077000 +0 0 1 +0.600000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.099000 0.103000 0.096000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002700 0.013000 0.105000 0.101000 0.104000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000890 0.026000 0.095000 0.101000 0.095000 +0 0 1 +0.840000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004600 0.015000 0.083000 0.078000 0.106000 +0 0 1 +0.400000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000260 0.020600 0.120000 0.104000 0.114000 +0 0 1 +0.120000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.016000 0.140000 0.095000 0.148000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.024000 0.142000 0.112000 0.127000 +0 0 1 +0.660000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.019000 0.072000 0.084000 0.086000 +0 0 1 +0.760000 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001200 0.020800 0.081000 0.094000 0.086000 +0 0 1 +0.310000 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0.001600 0.020600 0.111000 0.100000 0.111000 +0 0 1 +0.670000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.018000 0.143000 0.087000 0.164000 +0 0 1 +0.650000 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000010 0.019000 0.088000 0.081000 0.109000 +0 0 1 +0.640000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004600 0.015000 0.133000 0.108000 0.124000 +0 0 1 +0.580000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.023000 0.104000 0.108000 0.096000 +0 0 1 +0.440000 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.000890 0.020600 0.040000 0.096000 0.042000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000730 0.020100 0.127000 0.104000 0.121000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.029000 0.123000 0.131000 0.094000 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.022000 0.079000 0.070000 0.114000 +0 0 1 +0.380000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000730 0.024000 0.135000 0.104000 0.129000 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000420 0.024000 0.134000 0.114000 0.117000 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.014000 0.113000 0.103000 0.110000 +0 0 1 +0.440000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000720 0.009000 0.096000 0.075000 0.127000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.000640 0.020800 0.092000 0.099000 0.093000 +0 0 1 +0.250000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.078000 0.090000 0.087000 +0 0 1 +0.210000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000400 0.020800 0.082000 0.076000 0.108000 +0 0 1 +0.430000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003800 0.022000 0.130000 0.097000 0.134000 +0 0 1 +0.740000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.007200 0.013000 0.096000 0.099000 0.097000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.091000 0.071000 0.128000 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.025000 0.121000 0.102000 0.119000 +0 0 1 +0.720000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.004500 0.020100 0.102000 0.094000 0.108000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001100 0.024000 0.081000 0.097000 0.084000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.015000 0.126000 0.096000 0.131000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.024000 0.103000 0.114000 0.090000 +0 0 1 +0.440000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001200 0.020100 0.072000 0.084000 0.086000 +0 0 1 +0.850000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.020800 0.100000 0.104000 0.095000 +0 0 1 +0.390000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000380 0.013000 0.084000 0.091000 0.097000 +0 0 1 +0.350000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000060 0.020100 0.113290 0.096000 0.143000 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.016000 0.103000 0.092000 0.111000 +0 0 1 +0.800000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000200 0.018000 0.111000 0.097000 0.114000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020100 0.138000 0.093000 0.148000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020600 0.123000 0.091000 0.136000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.012000 0.113000 0.101000 0.111000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.119000 0.112000 0.107000 +0 0 1 +0.700000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.000370 0.006000 0.115000 0.073000 0.158000 +0 0 1 +0.280000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004600 0.015000 0.092000 0.102000 0.090000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.017000 0.109000 0.093000 0.117000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.014000 0.129000 0.100000 0.129000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020600 0.088000 0.093000 0.095000 +0 0 1 +0.160000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.022000 0.090000 0.098000 0.092000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.022000 0.012000 0.071000 0.111000 0.064000 +1 0 0 +0.540000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000100 0.019000 0.102000 0.093000 0.110000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001500 0.018000 0.097000 0.100000 0.097000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.018000 0.093000 0.095000 0.098000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000900 0.022000 0.105000 0.109000 0.096000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020100 0.157000 0.124000 0.127000 +0 0 1 +0.440000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020100 0.094000 0.090000 0.105000 +0 0 1 +0.300000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.017000 0.111000 0.082000 0.135000 +0 0 1 +0.630000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.020600 0.161000 0.107000 0.151000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000080 0.020100 0.171000 0.088000 0.194000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000400 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002080 0.020600 0.076000 0.100000 0.075000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.025000 0.131000 0.111000 0.118000 +0 0 1 +0.170000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.083000 0.099000 0.084000 +0 0 1 +0.720000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020100 0.086000 0.109000 0.079000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001200 0.019000 0.092000 0.087000 0.105000 +0 0 1 +0.610000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.023000 0.104000 0.092000 0.113000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.031000 0.041000 0.230000 0.200000 0.115000 +0 0 1 +0.600000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.002320 0.027000 0.071000 0.085000 0.084000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005000 0.017000 0.060000 0.077000 0.078000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.019000 0.096000 0.100000 0.096000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000380 0.020100 0.110000 0.101000 0.109000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.103000 0.114000 0.091000 +0 0 1 +0.650000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.003100 0.027000 0.131000 0.103000 0.126000 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.007000 0.071000 0.074000 0.096000 +0 0 1 +0.590000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000300 0.024000 0.086000 0.090000 0.096000 +0 0 1 +0.160000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.019000 0.112000 0.126000 0.089000 +0 0 1 +0.420000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.023000 0.134000 0.100000 0.134000 +0 0 1 +0.300000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004300 0.020000 0.154000 0.100000 0.154000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.020800 0.119000 0.103000 0.116000 +0 0 1 +0.610000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000080 0.023000 0.150000 0.120000 0.125000 +0 0 1 +0.250000 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.002080 0.020600 0.101000 0.100000 0.101000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000030 0.027000 0.112000 0.100000 0.112000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.019000 0.022000 0.083000 0.103000 0.081000 +0 1 0 +0.670000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000200 0.009000 0.075000 0.073000 0.102000 +0 0 1 +0.590000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000580 0.020100 0.120000 0.093000 0.129000 +0 0 1 +0.850000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.011000 0.110000 0.108000 0.102000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.006400 0.017000 0.097000 0.087000 0.112000 +0 1 0 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000960 0.032000 0.154000 0.132000 0.117000 +0 0 1 +0.280000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.022000 0.082000 0.094000 0.087000 +0 0 1 +0.300000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004400 0.027000 0.131000 0.099000 0.132000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.040000 0.019000 0.048000 0.079000 0.061000 +1 0 0 +0.700000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.000900 0.020600 0.070000 0.080000 0.087000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005100 0.020000 0.080000 0.077000 0.104000 +0 0 1 +0.140000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003600 0.012000 0.103000 0.088000 0.118000 +0 0 1 +0.580000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020100 0.098000 0.093000 0.105000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.116000 0.104000 0.109000 +0 0 1 +0.280000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.026000 0.143000 0.107000 0.134000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.000500 0.106000 0.114000 0.093000 +0 0 1 +0.720000 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000280 0.009000 0.079000 0.070000 0.112000 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005100 0.029000 0.133000 0.100000 0.133000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.021000 0.014000 0.088000 0.077000 0.115000 +0 1 0 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.022000 0.110000 0.121000 0.091000 +0 0 1 +0.480000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.016000 0.096000 0.079000 0.122000 +0 0 1 +0.740000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.020800 0.166000 0.089000 0.186000 +0 0 1 +0.470000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000960 0.014000 0.106000 0.090000 0.118000 +0 0 1 +0.720000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000560 0.020100 0.094000 0.061000 0.154000 +0 0 1 +0.650000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.019000 0.109000 0.092000 0.118000 +0 0 1 +0.760000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000070 0.026000 0.157000 0.109000 0.144000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000700 0.015000 0.088000 0.087000 0.101000 +0 0 1 +0.200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.026000 0.087000 0.099000 0.087700 +0 0 1 +0.670000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000070 0.020100 0.138000 0.099000 0.139000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.020000 0.103000 0.090000 0.114000 +0 0 1 +0.160000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.011000 0.096000 0.087000 0.111000 +0 0 1 +0.600000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.003000 0.016000 0.104000 0.098000 0.106000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000090 0.010000 0.101000 0.082000 0.123000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.020100 0.108000 0.086000 0.125000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004100 0.022000 0.145000 0.134000 0.108000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000820 0.019000 0.159000 0.116000 0.137000 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003500 0.018000 0.091000 0.090000 0.101000 +0 0 1 +0.830000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.015000 0.115000 0.084000 0.137000 +0 0 1 +0.530000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.018000 0.096000 0.086000 0.112000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.020000 0.075000 0.082000 0.092000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001400 0.016000 0.110000 0.085000 0.129000 +0 0 1 +0.810000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000500 0.022000 0.102000 0.085000 0.119000 +0 0 1 +0.730000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.017000 0.107000 0.094000 0.113000 +0 0 1 +0.470000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000700 0.019000 0.099000 0.079000 0.125000 +0 0 1 +0.340000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.000380 0.019000 0.137000 0.082000 0.167000 +0 0 1 +0.580000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.065000 0.096000 0.068000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001800 0.016000 0.131000 0.096000 0.136170 +0 0 1 +0.490000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002400 0.020100 0.090000 0.092000 0.098000 +0 0 1 +0.500000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.020000 0.077000 0.075000 0.103000 +0 0 1 diff --git a/lib/ann/fann/datasets/thyroid.train b/lib/ann/fann/datasets/thyroid.train new file mode 100644 index 0000000..2d78e53 --- /dev/null +++ b/lib/ann/fann/datasets/thyroid.train @@ -0,0 +1,7201 @@ +3600 21 3 +0.530000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004300 0.015000 0.094000 0.088000 0.107000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000600 0.028000 0.122000 0.109000 0.112000 +0 0 1 +0.830000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000680 0.022000 0.105000 0.099000 0.105840 +0 0 1 +0.470000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.020800 0.091000 0.098000 0.092000 +0 0 1 +0.580000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.016000 0.140000 0.110000 0.127000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.023000 0.097000 0.089000 0.109000 +0 0 1 +0.430000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002600 0.018000 0.137000 0.102000 0.134000 +0 0 1 +0.570000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000900 0.015000 0.091000 0.078000 0.116000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.025000 0.103000 0.102000 0.101000 +0 0 1 +0.200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005900 0.020100 0.114000 0.131000 0.087000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.010000 0.088000 0.094000 0.094000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.007000 0.078000 0.082000 0.095000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.101000 0.109000 0.093000 +0 0 1 +0.250000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000990 0.030000 0.149000 0.096000 0.154880 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000920 0.020800 0.084000 0.086000 0.098000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003600 0.020100 0.091000 0.080000 0.114000 +0 0 1 +0.580000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.023000 0.124000 0.125000 0.099000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.015000 0.020000 0.080000 0.083000 0.096000 +0 1 0 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.012000 0.097000 0.097000 0.100000 +0 0 1 +0.360000 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.000040 0.017000 0.102000 0.090000 0.113000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000420 0.020800 0.145000 0.102000 0.142000 +0 0 1 +0.230000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.018000 0.122000 0.110000 0.111000 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000630 0.020100 0.132000 0.107000 0.123000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.020100 0.109000 0.090000 0.121000 +0 0 1 +0.700000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.020800 0.204000 0.093000 0.219000 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.020600 0.120000 0.102000 0.118000 +0 0 1 +0.590000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000150 0.025000 0.090000 0.085000 0.106000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004500 0.015000 0.090000 0.097000 0.093000 +0 0 1 +0.420000 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.000020 0.031000 0.136000 0.100000 0.136000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001700 0.020100 0.127000 0.094000 0.136000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000480 0.020100 0.040000 0.052000 0.077000 +0 0 1 +0.740000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.003300 0.012000 0.091000 0.092000 0.099000 +0 0 1 +0.630000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.000030 0.033000 0.120000 0.096000 0.125000 +0 0 1 +0.360000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000740 0.015000 0.072000 0.050000 0.145000 +0 0 1 +0.490000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000700 0.020800 0.102000 0.093000 0.110000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.028000 0.099000 0.083000 0.119000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000090 0.018000 0.120000 0.096000 0.124000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.014000 0.119000 0.098000 0.121000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.012000 0.092000 0.069000 0.133000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004800 0.009000 0.087000 0.078000 0.112000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.015000 0.108000 0.081000 0.133000 +0 0 1 +0.180000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.016000 0.013000 0.075000 0.111000 0.068000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.023000 0.097000 0.104000 0.093000 +0 0 1 +0.550000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.018000 0.129000 0.098000 0.132000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005200 0.020600 0.095000 0.111000 0.085000 +0 0 1 +0.240000 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0.003300 0.012000 0.070000 0.087000 0.080000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020600 0.092000 0.093000 0.099000 +0 0 1 +0.410000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.017000 0.115000 0.087000 0.132000 +0 0 1 +0.710000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.022000 0.140000 0.114000 0.123000 +0 0 1 +0.360000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113000 0.101000 0.113000 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.020800 0.102000 0.097000 0.105000 +0 0 1 +0.200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020600 0.105000 0.104000 0.101000 +0 0 1 +0.590000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002000 0.024000 0.094000 0.096000 0.098000 +0 0 1 +0.600000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001000 0.020800 0.097000 0.110000 0.090000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020600 0.098000 0.104000 0.095000 +0 0 1 +0.540000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.024000 0.107000 0.104000 0.101000 +0 0 1 +0.800000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000540 0.020000 0.112000 0.111000 0.101000 +0 0 1 +0.260000 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0.011000 0.020600 0.089000 0.104000 0.086000 +0 0 1 +0.250000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.003000 0.027000 0.110000 0.087000 0.126000 +0 0 1 +0.480000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020000 0.086000 0.078000 0.110000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.005300 0.027000 0.103000 0.129000 0.080000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020000 0.092000 0.086000 0.107000 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001200 0.020100 0.104000 0.096000 0.108000 +0 0 1 +0.780000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002080 0.018000 0.080000 0.072000 0.111000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000150 0.016000 0.074000 0.089000 0.083000 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.009090 0.008000 0.081000 0.066000 0.123000 +0 1 0 +0.750000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.015000 0.063000 0.068000 0.092000 +0 0 1 +0.360000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001900 0.018000 0.122000 0.092000 0.113000 +0 0 1 +0.220000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.019000 0.101000 0.092000 0.109000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.020100 0.145000 0.104000 0.137000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001900 0.020800 0.096000 0.102000 0.096000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001200 0.012000 0.093000 0.125000 0.074000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.008890 0.017400 0.075000 0.097000 0.077000 +0 1 0 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000190 0.016000 0.091000 0.104000 0.088000 +0 0 1 +0.440000 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.001900 0.018000 0.094000 0.089000 0.106000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002600 0.029000 0.119000 0.112000 0.106000 +0 0 1 +0.700000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.099000 0.086000 0.115000 +0 0 1 +0.660000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.020600 0.078000 0.102000 0.077000 +0 0 1 +0.710000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.003300 0.019000 0.116000 0.091000 0.128000 +0 0 1 +0.550000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.018000 0.052000 0.095000 0.055000 +0 0 1 +0.450000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020000 0.063000 0.066000 0.096000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008200 0.020800 0.080000 0.101000 0.079000 +0 1 0 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000070 0.020800 0.182000 0.103000 0.177000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.019000 0.092000 0.093000 0.098000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006200 0.020000 0.073000 0.100000 0.073000 +0 1 0 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001600 0.022000 0.120000 0.085000 0.141000 +0 0 1 +0.450000 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000210 0.020100 0.179000 0.099000 0.181000 +0 0 1 +0.610000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.118000 0.009600 0.018000 0.104000 0.017000 +1 0 0 +0.650000 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0.002080 0.017000 0.164000 0.109000 0.151000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000820 0.024000 0.096000 0.091000 0.105000 +0 0 1 +0.080000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.016000 0.101000 0.093000 0.108000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000850 0.025000 0.108000 0.109000 0.099000 +0 0 1 +0.590000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.020100 0.145000 0.098000 0.147000 +0 0 1 +0.270000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.023000 0.100000 0.088000 0.113000 +0 0 1 +0.700000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001100 0.017000 0.095000 0.068000 0.140000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020800 0.111180 0.099000 0.112070 +0 0 1 +0.750000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000690 0.020100 0.117000 0.100000 0.117000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.012000 0.117000 0.096000 0.121000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.020800 0.157000 0.116000 0.135000 +0 0 1 +0.510000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.026000 0.118000 0.091000 0.130000 +0 0 1 +0.610000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.011000 0.012000 0.083000 0.101000 0.082000 +0 1 0 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.015000 0.016000 0.082000 0.082000 0.100000 +0 1 0 +0.580000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000040 0.027000 0.108000 0.072000 0.149000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000250 0.044000 0.192000 0.091000 0.211000 +0 0 1 +0.440000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.024000 0.112000 0.101000 0.111000 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008790 0.027000 0.108000 0.111000 0.097000 +0 1 0 +0.540000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020100 0.096000 0.086000 0.112000 +0 0 1 +0.200000 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0.002000 0.018000 0.130000 0.101000 0.128000 +0 0 1 +0.860000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006500 0.004000 0.105000 0.080000 0.131000 +0 1 0 +0.280000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.020000 0.169000 0.099000 0.170360 +0 0 1 +0.410000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.005100 0.018000 0.091000 0.112000 0.082000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020100 0.161000 0.088000 0.183000 +0 0 1 +0.610000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002000 0.017000 0.107000 0.099000 0.107000 +0 0 1 +0.480000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000640 0.023000 0.107000 0.104000 0.101000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.015000 0.117000 0.086000 0.136000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006100 0.028000 0.111000 0.131000 0.085000 +0 1 0 +0.640000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.018000 0.080000 0.091000 0.088000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.115000 0.108000 0.107000 +0 0 1 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.090000 0.087000 0.103000 +0 0 1 +0.870000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.015000 0.096000 0.080000 0.120000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.020100 0.097000 0.090000 0.108000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001400 0.020100 0.108000 0.095000 0.114000 +0 0 1 +0.320000 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.001000 0.024000 0.121000 0.120000 0.101000 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.020000 0.154000 0.131000 0.118000 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000660 0.022000 0.152000 0.104000 0.145000 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004900 0.019000 0.101000 0.099000 0.101810 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.020600 0.112000 0.115000 0.097000 +0 0 1 +0.390000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.015000 0.084000 0.089000 0.094000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006300 0.011000 0.056000 0.086000 0.065000 +0 1 0 +0.620000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005600 0.020600 0.103000 0.112000 0.093000 +0 0 1 +0.580000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000150 0.016000 0.144000 0.109000 0.132000 +0 0 1 +0.560000 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0.003000 0.015000 0.103000 0.080000 0.128000 +0 0 1 +0.490000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.116000 0.007000 0.072000 0.095000 0.076000 +0 0 1 +0.700000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000570 0.020800 0.101000 0.078000 0.129000 +0 0 1 +0.710000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000160 0.024000 0.165000 0.135000 0.123000 +0 0 1 +0.390000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000620 0.020100 0.151000 0.096000 0.157000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000010 0.050000 0.244000 0.067000 0.362000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000330 0.018000 0.134000 0.097000 0.138000 +0 0 1 +0.530000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.020800 0.074000 0.090000 0.083000 +0 0 1 +0.210000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.028000 0.143000 0.125000 0.114000 +0 0 1 +0.280000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.024000 0.220000 0.148000 0.149000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.027000 0.009000 0.087000 0.084000 0.105000 +0 1 0 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000010 0.010000 0.101000 0.086000 0.117000 +0 0 1 +0.320000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.029000 0.128000 0.112000 0.114000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.010000 0.073000 0.082000 0.089000 +0 0 1 +0.800000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.018000 0.020000 0.076000 0.108000 0.070000 +0 1 0 +0.180000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020600 0.091000 0.098000 0.093000 +0 0 1 +0.670000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.020100 0.084000 0.096000 0.088000 +0 0 1 +0.280000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.103000 0.020800 0.065000 0.116000 0.056000 +1 0 0 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000280 0.005000 0.109000 0.077000 0.142000 +0 0 1 +0.810000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005400 0.013000 0.073000 0.072000 0.101000 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.136000 0.158000 0.086000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006600 0.022000 0.099000 0.116000 0.085000 +0 1 0 +0.690000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000340 0.020100 0.115000 0.102000 0.113000 +0 0 1 +0.750000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.002000 0.078000 0.056000 0.139000 +0 0 1 +0.010000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.043000 0.009600 0.033750 0.103000 0.032490 +1 0 0 +0.450000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006300 0.020000 0.119000 0.104000 0.114000 +0 1 0 +0.400000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.014000 0.199000 0.098000 0.204000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.020100 0.088000 0.077000 0.114000 +0 0 1 +0.440000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004600 0.020100 0.079000 0.083000 0.095000 +0 0 1 +0.380000 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0.000130 0.020100 0.146000 0.141000 0.104000 +0 0 1 +0.490000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007400 0.019000 0.101000 0.083000 0.122000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020100 0.178000 0.202000 0.088000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000370 0.022000 0.097000 0.100000 0.097000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.008000 0.103000 0.073000 0.141000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.118000 0.104000 0.112000 +0 0 1 +0.590000 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.000300 0.016000 0.112000 0.075000 0.148000 +0 0 1 +0.490000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.020100 0.095000 0.087000 0.109000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005900 0.020100 0.115000 0.087000 0.131000 +0 0 1 +0.530000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.015000 0.119000 0.101000 0.118000 +0 0 1 +0.280000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000660 0.024000 0.087000 0.082000 0.106000 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.019000 0.086000 0.094000 0.092000 +0 0 1 +0.380000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.048000 0.032000 0.099000 0.032250 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.001890 0.020600 0.088000 0.086000 0.102000 +0 0 1 +0.520000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000930 0.013000 0.086000 0.064000 0.134000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006000 0.017000 0.121000 0.112000 0.108000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001900 0.018000 0.097000 0.091000 0.106000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.026000 0.148000 0.129000 0.115000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.210000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020000 0.113290 0.096000 0.117760 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.003800 0.019000 0.107000 0.101000 0.106000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.020100 0.095000 0.084000 0.113000 +0 0 1 +0.440000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.025000 0.087000 0.098000 0.088000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.006000 0.110000 0.083000 0.133000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006100 0.014000 0.082000 0.085000 0.097000 +0 1 0 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003500 0.026000 0.106000 0.109000 0.097000 +0 0 1 +0.390000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.010000 0.061000 0.077000 0.079000 +0 0 1 +0.460000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000770 0.013000 0.050000 0.067000 0.075000 +0 0 1 +0.850000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.013000 0.017000 0.120000 0.088000 0.136000 +0 1 0 +0.530000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000510 0.024000 0.124000 0.096000 0.129000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.028000 0.123000 0.123000 0.100000 +0 0 1 +0.250000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001600 0.020800 0.089000 0.086000 0.103000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0.001600 0.018000 0.089000 0.080000 0.112000 +0 0 1 +0.640000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000440 0.025000 0.089000 0.097000 0.092000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.013000 0.100000 0.082000 0.122000 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.020100 0.064000 0.066000 0.097000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.017000 0.081000 0.095000 0.086000 +0 0 1 +0.830000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.012000 0.015000 0.094000 0.094000 0.100000 +0 1 0 +0.730000 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0.000020 0.015000 0.077000 0.094000 0.082000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.020000 0.099000 0.083000 0.119000 +0 0 1 +0.380000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000930 0.016000 0.131000 0.130000 0.101000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000600 0.025000 0.122000 0.104000 0.116000 +0 0 1 +0.420000 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000120 0.013000 0.093000 0.067000 0.139000 +0 0 1 +0.400000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020100 0.093000 0.091000 0.102000 +0 0 1 +0.200000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000460 0.020000 0.119000 0.110000 0.108000 +0 0 1 +0.820000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.001000 0.050000 0.031000 0.161000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006200 0.008000 0.051000 0.088000 0.058000 +1 0 0 +0.350000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.023000 0.080000 0.064000 0.125000 +0 0 1 +0.260000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.025000 0.098000 0.092000 0.107000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.510000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.020600 0.130000 0.086000 0.151000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.019000 0.123000 0.099000 0.124000 +0 0 1 +0.420000 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0.001900 0.022000 0.126000 0.097000 0.130000 +0 0 1 +0.500000 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.000010 0.028000 0.074000 0.114000 0.065000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.002500 0.025000 0.108000 0.123000 0.088000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020100 0.084000 0.100000 0.084000 +0 0 1 +0.370000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.023000 0.093000 0.082000 0.113000 +0 0 1 +0.340000 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0.000200 0.050000 0.223000 0.169000 0.131000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.018000 0.094000 0.100000 0.094000 +0 0 1 +0.740000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.001400 0.020600 0.109000 0.096000 0.114000 +0 0 1 +0.830000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.020600 0.100000 0.082000 0.122000 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000700 0.020600 0.114000 0.098000 0.117000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.026000 0.136000 0.115000 0.118000 +0 0 1 +0.500000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.560000 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0.000470 0.020100 0.125000 0.104000 0.119000 +0 0 1 +0.070000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.020600 0.155000 0.094000 0.165000 +0 0 1 +0.490000 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0.000080 0.027000 0.157000 0.104000 0.148000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001700 0.024000 0.133000 0.115000 0.116000 +0 0 1 +0.810000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000020 0.022000 0.153000 0.109000 0.140000 +0 0 1 +0.290000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.020600 0.141000 0.125000 0.113000 +0 0 1 +0.860000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005500 0.002000 0.038000 0.076000 0.050000 +0 0 1 +0.460000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000460 0.023000 0.093000 0.089000 0.104000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005600 0.030000 0.123000 0.122000 0.101000 +0 0 1 +0.900000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.024000 0.073000 0.107000 0.069000 +0 0 1 +0.440000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002300 0.023000 0.118000 0.101000 0.117000 +0 0 1 +0.700000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000300 0.018000 0.098000 0.093000 0.105000 +0 0 1 +0.570000 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.006000 0.023000 0.115000 0.096000 0.119540 +0 0 1 +0.680000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001500 0.023000 0.117000 0.104000 0.113000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.690000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005900 0.018000 0.163000 0.109000 0.149000 +0 0 1 +0.300000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001700 0.023000 0.083000 0.081000 0.102000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.020100 0.122000 0.103000 0.119000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020000 0.096000 0.095000 0.101000 +0 0 1 +0.320000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.029000 0.152000 0.116000 0.130000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.020800 0.087000 0.075000 0.115000 +0 0 1 +0.840000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.010000 0.081000 0.073000 0.111000 +0 0 1 +0.710000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001100 0.020600 0.108000 0.104000 0.104000 +0 0 1 +0.740000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001300 0.019000 0.100000 0.092000 0.108000 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.019000 0.079000 0.062000 0.127000 +0 0 1 +0.860000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.139000 0.124000 0.112000 +0 0 1 +0.800000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000370 0.007000 0.134000 0.112000 0.120000 +0 0 1 +0.210000 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0.000200 0.025000 0.108000 0.113000 0.096000 +0 0 1 +0.410000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.016000 0.091000 0.068000 0.133000 +0 0 1 +0.300000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002000 0.035000 0.120000 0.116000 0.102000 +0 0 1 +0.400000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006700 0.017000 0.087000 0.087000 0.100000 +0 1 0 +0.250000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002400 0.020000 0.106000 0.085000 0.125000 +0 0 1 +0.420000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.017000 0.084000 0.063000 0.133000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.020100 0.121000 0.093000 0.131000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001900 0.023000 0.098000 0.103000 0.095000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002000 0.022000 0.092000 0.071000 0.130000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.017000 0.017000 0.065000 0.068000 0.097000 +0 1 0 +0.730000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000830 0.014000 0.076000 0.074000 0.103000 +0 0 1 +0.610000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.590000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.020000 0.097000 0.071000 0.135000 +0 0 1 +0.530000 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.022000 0.089000 0.083000 0.107000 +0 0 1 +0.630000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.056000 0.100000 0.056000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.032000 0.187000 0.174000 0.107000 +0 0 1 +0.370000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001100 0.020000 0.111000 0.091000 0.123000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.058000 0.017400 0.077000 0.111000 0.069000 +0 1 0 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005000 0.024000 0.100000 0.096000 0.103950 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.020100 0.089000 0.095000 0.094000 +0 0 1 +0.660000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000320 0.017000 0.152000 0.113000 0.135000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.024000 0.054000 0.085000 0.063000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.009590 0.019000 0.079000 0.100000 0.080000 +0 1 0 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000580 0.020100 0.098000 0.099000 0.099000 +0 0 1 +0.410000 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0.003100 0.012000 0.144000 0.103000 0.139000 +0 0 1 +0.180000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000480 0.015000 0.087000 0.087000 0.100000 +0 0 1 +0.700000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006700 0.017000 0.117000 0.104000 0.113000 +0 1 0 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003800 0.020100 0.132000 0.116000 0.114000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.024000 0.112000 0.099000 0.112900 +0 0 1 +0.360000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.018000 0.124000 0.075000 0.166000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020100 0.086000 0.086000 0.099000 +0 0 1 +0.570000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002800 0.020100 0.116000 0.120000 0.097000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.022000 0.116000 0.104000 0.111000 +0 0 1 +0.280000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000960 0.014000 0.105000 0.101000 0.105000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002200 0.019000 0.098000 0.088000 0.110000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.016000 0.123000 0.096000 0.128000 +0 0 1 +0.220000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001000 0.023000 0.087000 0.089000 0.098000 +0 0 1 +0.500000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.024000 0.153000 0.119000 0.129000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.016000 0.057000 0.104000 0.054000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.027000 0.128000 0.096000 0.133050 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001900 0.015000 0.135000 0.104000 0.127000 +0 0 1 +0.410000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000390 0.019000 0.120000 0.103000 0.117000 +0 0 1 +0.180000 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001300 0.033000 0.163000 0.153000 0.107000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.340000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000010 0.040000 0.239000 0.090000 0.266000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.020000 0.091000 0.095000 0.096000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.023000 0.094000 0.099000 0.094750 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.004800 0.028000 0.100000 0.104000 0.094000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.012000 0.024000 0.084000 0.124000 0.068000 +0 1 0 +0.520000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.000500 0.016000 0.080000 0.082000 0.098000 +0 0 1 +0.580000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.016000 0.102000 0.107000 0.096000 +0 0 1 +0.580000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005600 0.020800 0.094000 0.101000 0.093000 +0 0 1 +0.610000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000060 0.015000 0.147000 0.060000 0.247000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020100 0.118000 0.128000 0.092000 +0 0 1 +0.710000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004690 0.017000 0.093000 0.098000 0.094000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.006000 0.094000 0.099000 0.094750 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.038000 0.200000 0.076000 0.264000 +0 0 1 +0.770000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002000 0.013000 0.097000 0.090000 0.108000 +0 0 1 +0.400000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.018000 0.081000 0.085000 0.095000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.024000 0.082000 0.081000 0.102000 +0 0 1 +0.740000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000480 0.015000 0.092000 0.085000 0.108000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.023000 0.140000 0.110000 0.127000 +0 0 1 +0.390000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.011000 0.084000 0.098000 0.086000 +0 0 1 +0.530000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000630 0.016000 0.115000 0.090000 0.128000 +0 0 1 +0.630000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.001800 0.020000 0.152000 0.116000 0.129000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.017000 0.093000 0.084000 0.111000 +0 0 1 +0.400000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004190 0.017000 0.093000 0.091000 0.102000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.019000 0.083000 0.074000 0.112000 +0 0 1 +0.250000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020100 0.170000 0.150000 0.113000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.022000 0.094000 0.089000 0.106000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000400 0.027000 0.101000 0.096000 0.105000 +0 0 1 +0.650000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.099000 0.052000 0.188000 +0 0 1 +0.550000 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0.007600 0.010000 0.086000 0.084000 0.102000 +0 0 1 +0.530000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.116000 0.095000 0.122000 +0 0 1 +0.610000 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000030 0.020100 0.180000 0.093000 0.194000 +0 0 1 +0.330000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.020100 0.138000 0.064000 0.217000 +0 0 1 +0.320000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003900 0.020000 0.104000 0.091000 0.113000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000950 0.020100 0.085000 0.080000 0.106000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.022000 0.129000 0.097000 0.133000 +0 0 1 +0.690000 1 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0.000710 0.020600 0.091000 0.094000 0.098000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.001700 0.039000 0.120000 0.116000 0.102000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.005100 0.025000 0.132000 0.097000 0.136000 +0 0 1 +0.460000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020600 0.070000 0.058000 0.122000 +0 0 1 +0.770000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.013000 0.102000 0.095000 0.108000 +0 0 1 +0.820000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.003200 0.014000 0.076000 0.086000 0.088000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000060 0.010000 0.146000 0.098000 0.149000 +0 0 1 +0.590000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.008000 0.099000 0.108000 0.092000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020100 0.121000 0.103000 0.117000 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004300 0.010000 0.050000 0.082000 0.061000 +0 0 1 +0.160000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004400 0.020100 0.101000 0.102000 0.099000 +0 0 1 +0.600000 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0.005500 0.020100 0.105000 0.081000 0.130000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.008000 0.108000 0.082000 0.132000 +0 0 1 +0.460000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000840 0.017000 0.111000 0.098000 0.113000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.010000 0.079000 0.111000 0.071000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.037000 0.017000 0.086000 0.082000 0.105000 +0 1 0 +0.670000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.002500 0.020100 0.103000 0.074000 0.139000 +0 0 1 +0.440000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.016000 0.017400 0.087000 0.091000 0.095000 +0 1 0 +0.320000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.177000 0.020100 0.072000 0.100000 0.072000 +0 0 1 +0.640000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.020100 0.143000 0.091000 0.156000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.067000 0.098000 0.068000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.020100 0.152000 0.151000 0.101000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.100000 0.087000 0.115000 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.074000 0.095000 0.078000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.143000 0.007000 0.073000 0.101000 0.072000 +0 1 0 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000620 0.020100 0.119000 0.098000 0.121000 +0 0 1 +0.680000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.025000 0.113000 0.076000 0.149000 +0 0 1 +0.360000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.095000 0.076000 0.125000 +0 0 1 +0.720000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000450 0.020100 0.119000 0.115000 0.104000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.020800 0.121000 0.112000 0.108000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.024000 0.017000 0.072000 0.107000 0.068000 +0 1 0 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.022000 0.090000 0.104000 0.087000 +0 0 1 +0.610000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000510 0.020600 0.090000 0.081000 0.111000 +0 0 1 +0.430000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.012000 0.078000 0.072000 0.108000 +0 0 1 +0.320000 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000150 0.024000 0.135000 0.115000 0.118000 +0 0 1 +0.560000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.006000 0.121000 0.119000 0.102000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.000500 0.020000 0.065000 0.031000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020100 0.121000 0.121000 0.100000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000700 0.020600 0.088000 0.082000 0.107000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002080 0.020000 0.128000 0.104000 0.123000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.144000 0.094000 0.154000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.023000 0.002000 0.050000 0.085000 0.058000 +1 0 0 +0.490000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001890 0.024000 0.111000 0.107000 0.104000 +0 0 1 +0.320000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.008090 0.025000 0.090000 0.095000 0.095000 +0 1 0 +0.330000 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0.003900 0.022000 0.120000 0.141000 0.085000 +0 0 1 +0.170000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001600 0.020100 0.118000 0.062000 0.190000 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.026000 0.122000 0.103000 0.118000 +0 0 1 +0.400000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000850 0.020100 0.103000 0.087000 0.118000 +0 0 1 +0.630000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003500 0.025000 0.108000 0.096000 0.113000 +0 0 1 +0.720000 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.005700 0.014000 0.092000 0.099000 0.093000 +0 0 1 +0.420000 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.000670 0.019000 0.074000 0.079000 0.093000 +0 0 1 +0.490000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020100 0.183000 0.102000 0.179000 +0 0 1 +0.500000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.117000 0.004000 0.017000 0.114000 0.015000 +1 0 0 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.012000 0.119000 0.098000 0.121000 +0 0 1 +0.520000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.020100 0.160000 0.082000 0.195000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.025000 0.121000 0.107000 0.114000 +0 0 1 +0.470000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005600 0.019000 0.081000 0.100000 0.082000 +0 0 1 +0.200000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006200 0.007000 0.101000 0.084000 0.120000 +0 0 1 +0.130000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.200000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001600 0.024000 0.093000 0.092000 0.101000 +0 0 1 +0.880000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.013000 0.017400 0.123000 0.099000 0.124000 +0 1 0 +0.120000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.023000 0.152000 0.080000 0.190000 +0 0 1 +0.370000 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0.000080 0.020100 0.168000 0.104000 0.162000 +0 0 1 +0.460000 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000010 0.046900 0.141000 0.090000 0.156000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.008590 0.017400 0.086000 0.084000 0.101000 +0 1 0 +0.430000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.101000 0.113000 0.090000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.012000 0.078000 0.073000 0.107000 +0 0 1 +0.250000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000700 0.016000 0.094000 0.093000 0.101000 +0 0 1 +0.680000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000060 0.024000 0.152000 0.116000 0.131000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.020600 0.103000 0.108000 0.095000 +0 0 1 +0.250000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000470 0.020000 0.078000 0.096000 0.081080 +0 0 1 +0.650000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020800 0.111000 0.099000 0.112000 +0 0 1 +0.300000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.003400 0.020100 0.094000 0.083000 0.113000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000830 0.022000 0.079000 0.080000 0.099000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000150 0.016000 0.101000 0.109000 0.092000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000400 0.020600 0.135000 0.084000 0.160000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.014000 0.005000 0.095000 0.083000 0.114000 +0 1 0 +0.410000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020100 0.123000 0.097000 0.127000 +0 0 1 +0.640000 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0.000840 0.020100 0.121000 0.089000 0.136000 +0 0 1 +0.830000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.019000 0.017400 0.148000 0.111000 0.134000 +0 1 0 +0.840000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.022000 0.106000 0.096000 0.110180 +0 0 1 +0.310000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.610000 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0.001800 0.019000 0.102000 0.104000 0.097000 +0 0 1 +0.560000 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0.002200 0.014000 0.088000 0.077000 0.114000 +0 0 1 +0.520000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007700 0.026000 0.057000 0.094000 0.061000 +1 0 0 +0.440000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.020100 0.172000 0.099000 0.174000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001010 0.025000 0.125000 0.102000 0.122000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.023000 0.101000 0.095000 0.106000 +0 0 1 +0.400000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.016000 0.099000 0.071000 0.140000 +0 0 1 +0.410000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003700 0.017000 0.112000 0.104000 0.107000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.022000 0.122000 0.115000 0.106000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.020100 0.080000 0.094000 0.085000 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002000 0.018000 0.088000 0.086000 0.102000 +0 0 1 +0.680000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000470 0.020600 0.117000 0.102000 0.115000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000080 0.048000 0.257000 0.120000 0.214000 +0 0 1 +0.400000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000440 0.019000 0.146000 0.085000 0.172000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.016000 0.080000 0.091000 0.088000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000820 0.020600 0.125000 0.101000 0.124000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006200 0.019000 0.089000 0.094000 0.095000 +0 1 0 +0.310000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.024000 0.107000 0.083000 0.129000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.007200 0.017000 0.074000 0.088000 0.084000 +0 1 0 +0.770000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.029000 0.151000 0.135000 0.111000 +0 0 1 +0.830000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.012000 0.103000 0.079000 0.131000 +0 0 1 +0.610000 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0.004800 0.017000 0.105000 0.107000 0.098000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000010 0.026000 0.166000 0.080000 0.207000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001000 0.023000 0.116000 0.113000 0.103000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001890 0.023000 0.098000 0.108000 0.091000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000820 0.013000 0.057000 0.069000 0.083000 +0 0 1 +0.280000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001400 0.024000 0.110000 0.099000 0.111000 +0 0 1 +0.140000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005800 0.028000 0.091000 0.103000 0.088000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.009000 0.126000 0.085000 0.148000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.013000 0.067000 0.088000 0.076000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.141000 0.133000 0.106000 +0 0 1 +0.530000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.078000 0.085000 0.091000 +0 0 1 +0.240000 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0.000940 0.037000 0.190000 0.195000 0.097000 +0 0 1 +0.580000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.009000 0.083000 0.078000 0.106000 +0 0 1 +0.130000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020600 0.113000 0.099000 0.114000 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.018000 0.102000 0.099000 0.103000 +0 0 1 +0.760000 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.001500 0.020100 0.101000 0.082000 0.123000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.700000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000270 0.007000 0.117000 0.084000 0.139000 +0 0 1 +0.580000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000610 0.020100 0.123000 0.096000 0.128000 +0 0 1 +0.940000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.013000 0.119000 0.104000 0.114000 +0 0 1 +0.700000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000600 0.026000 0.144000 0.120000 0.120000 +0 0 1 +0.430000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002320 0.019000 0.092000 0.076000 0.121000 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005500 0.020100 0.056000 0.086000 0.065000 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.004000 0.052000 0.075000 0.069000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.023000 0.128000 0.085000 0.151000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.020100 0.147000 0.134000 0.110000 +0 0 1 +0.830000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007000 0.017400 0.071000 0.078000 0.090000 +0 1 0 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.025000 0.125000 0.114000 0.109000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000400 0.022000 0.085000 0.107000 0.079000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000600 0.020600 0.076000 0.086000 0.088000 +0 0 1 +0.190000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001200 0.028000 0.112000 0.112000 0.099000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.017000 0.016000 0.089000 0.069000 0.129000 +0 1 0 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020100 0.107000 0.093000 0.115000 +0 0 1 +0.650000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000400 0.010000 0.154000 0.103000 0.149000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006700 0.019000 0.091000 0.103000 0.089000 +0 1 0 +0.580000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000580 0.015000 0.083000 0.086000 0.097000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004400 0.010000 0.084000 0.069000 0.121000 +0 0 1 +0.540000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002080 0.025000 0.128000 0.112000 0.114000 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000670 0.011000 0.137000 0.086000 0.160000 +0 0 1 +0.490000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.022000 0.100000 0.093000 0.108000 +0 0 1 +0.690000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.109000 0.093000 0.117000 +0 0 1 +0.390000 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0.004000 0.017000 0.063000 0.099000 0.063500 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.180000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.440000 0.005000 0.024000 0.132000 0.018000 +1 0 0 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005500 0.017000 0.131000 0.149000 0.088000 +0 0 1 +0.210000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000830 0.022000 0.132000 0.099000 0.133000 +0 0 1 +0.830000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000770 0.014400 0.123000 0.099000 0.124000 +0 0 1 +0.480000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0.002900 0.028000 0.122000 0.119000 0.103000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000720 0.038000 0.140000 0.116000 0.121000 +0 0 1 +0.820000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.000150 0.014000 0.133000 0.100000 0.134000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000520 0.020100 0.118000 0.090000 0.131000 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020800 0.109000 0.097000 0.112000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000150 0.025000 0.109000 0.075000 0.145000 +0 0 1 +0.530000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020800 0.133000 0.108000 0.123000 +0 0 1 +0.700000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.023000 0.141000 0.120000 0.117000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000390 0.020800 0.111000 0.091000 0.122000 +0 0 1 +0.810000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.010000 0.092000 0.099000 0.093000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000100 0.025000 0.180000 0.083000 0.217000 +0 0 1 +0.830000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.016000 0.105000 0.083000 0.127000 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001800 0.017000 0.123000 0.095000 0.130000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.700000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004000 0.004000 0.048000 0.051000 0.094000 +0 0 1 +0.350000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.004000 0.038000 0.108000 0.035000 +0 0 1 +0.340000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.020600 0.166000 0.096000 0.174000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004400 0.028000 0.103000 0.110000 0.094000 +0 0 1 +0.280000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.023000 0.099000 0.086000 0.115000 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.022000 0.084000 0.085000 0.099000 +0 0 1 +0.500000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.003000 0.020600 0.106000 0.107000 0.099000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.003700 0.020600 0.069000 0.083000 0.083000 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020100 0.135000 0.069000 0.196000 +0 0 1 +0.340000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.039000 0.200000 0.136000 0.147000 +0 0 1 +0.580000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000820 0.022000 0.100000 0.098000 0.102000 +0 0 1 +0.540000 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0.000050 0.012000 0.112000 0.077000 0.145000 +0 0 1 +0.390000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000930 0.026000 0.130000 0.113000 0.115000 +0 0 1 +0.470000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.105000 0.087000 0.121000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.007800 0.020000 0.095000 0.099000 0.096000 +0 1 0 +0.250000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.110000 0.108000 0.102000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.017000 0.091000 0.098000 0.093000 +0 0 1 +0.420000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.004400 0.019000 0.127000 0.114000 0.111000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000690 0.020100 0.123000 0.097000 0.128000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.009200 0.025000 0.106000 0.113000 0.094000 +0 1 0 +0.670000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.020800 0.096000 0.101000 0.095000 +0 0 1 +0.520000 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.000010 0.024000 0.108000 0.070000 0.154000 +0 0 1 +0.590000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.024000 0.131000 0.108000 0.121000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000760 0.020100 0.090000 0.067000 0.134000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.001100 0.018000 0.111000 0.102000 0.109000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.028000 0.018000 0.072000 0.087000 0.082000 +0 1 0 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020600 0.096000 0.087000 0.110000 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004400 0.023000 0.110000 0.116000 0.095000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.019000 0.098000 0.104000 0.092000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001400 0.016000 0.118000 0.101000 0.117000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001200 0.020600 0.084000 0.090000 0.094000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.020100 0.189000 0.147000 0.128000 +0 0 1 +0.170000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.190000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000350 0.008000 0.070000 0.083000 0.084000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.003000 0.023000 0.121000 0.101000 0.120000 +0 0 1 +0.020000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.472000 0.017000 0.034000 0.116000 0.029000 +1 0 0 +0.190000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.008500 0.034000 0.134000 0.155000 0.086000 +0 1 0 +0.530000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.000290 0.020100 0.075000 0.047000 0.160000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.081000 0.085000 0.095000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000840 0.020000 0.101000 0.104000 0.097000 +0 0 1 +0.560000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.020600 0.134000 0.103000 0.130000 +0 0 1 +0.500000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.020600 0.105000 0.092000 0.114000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.020100 0.100000 0.110000 0.091000 +0 0 1 +0.740000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.020800 0.149000 0.102000 0.147000 +0 0 1 +0.400000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020100 0.157000 0.152000 0.103000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.023000 0.005000 0.033000 0.067000 0.049000 +1 0 0 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000580 0.009000 0.110000 0.088000 0.125000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.003700 0.023000 0.100000 0.111000 0.090000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002200 0.025000 0.085000 0.092000 0.092000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005800 0.014000 0.096000 0.099000 0.097000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000070 0.038000 0.148000 0.096000 0.153840 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000400 0.026000 0.101000 0.103000 0.098000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004600 0.025000 0.082000 0.116000 0.070000 +0 0 1 +0.750000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.022000 0.100000 0.097000 0.104000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.023000 0.120000 0.101000 0.119000 +0 0 1 +0.720000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.003800 0.012000 0.122000 0.116000 0.104000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020000 0.096000 0.086000 0.112000 +0 0 1 +0.220000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.024000 0.181000 0.109000 0.166000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.024000 0.128000 0.113000 0.114000 +0 0 1 +0.270000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.019000 0.119000 0.089000 0.134000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020800 0.103000 0.091000 0.113000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004900 0.005000 0.035000 0.085000 0.041000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.020100 0.105000 0.096000 0.109000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000360 0.030000 0.131000 0.104000 0.126000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000690 0.020100 0.108000 0.087000 0.124000 +0 0 1 +0.210000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020100 0.083000 0.065000 0.128000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000010 0.036000 0.142000 0.123000 0.115000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000750 0.010000 0.141000 0.095000 0.148000 +0 0 1 +0.200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004300 0.031000 0.105000 0.102000 0.103000 +0 0 1 +0.870000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.018000 0.119000 0.089000 0.134000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.010000 0.103000 0.085000 0.122000 +0 0 1 +0.530000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000070 0.020600 0.171000 0.104000 0.162000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.019000 0.099000 0.112000 0.088000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002700 0.012000 0.100000 0.093000 0.108000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.009000 0.065000 0.088000 0.074000 +0 0 1 +0.730000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.009000 0.091000 0.054000 0.169000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.020000 0.088000 0.091000 0.097000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.020800 0.123000 0.103000 0.119000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005100 0.018000 0.087000 0.089000 0.098000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020000 0.109000 0.109000 0.100000 +0 0 1 +0.360000 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0.020600 0.108000 0.110000 0.099000 +0 0 1 +0.640000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.024000 0.132000 0.095000 0.139000 +0 0 1 +0.180000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.020800 0.120000 0.112000 0.107000 +0 0 1 +0.210000 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0.000250 0.013000 0.054000 0.107000 0.051000 +0 0 1 +0.210000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.015000 0.078000 0.089000 0.088000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.500000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.015000 0.146000 0.116000 0.124000 +0 0 1 +0.380000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000560 0.029000 0.158000 0.075000 0.211000 +0 0 1 +0.660000 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0.000200 0.018000 0.091000 0.112000 0.081000 +0 0 1 +0.760000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007500 0.020800 0.089000 0.114000 0.078000 +0 1 0 +0.470000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.029000 0.069000 0.101000 0.068000 +0 0 1 +0.390000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.004300 0.018000 0.092000 0.096000 0.095630 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001100 0.020000 0.139000 0.104000 0.134000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000900 0.029000 0.136000 0.138000 0.099000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.020000 0.106000 0.087000 0.121000 +0 0 1 +0.720000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.024000 0.189000 0.104000 0.179000 +0 0 1 +0.530000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.020600 0.088000 0.104000 0.084000 +0 0 1 +0.870000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.011000 0.064000 0.055000 0.116000 +0 0 1 +0.730000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.010000 0.010000 0.084000 0.139000 0.060000 +1 0 0 +0.580000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.029000 0.096000 0.103000 0.093000 +0 0 1 +0.730000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.008000 0.061000 0.049000 0.124000 +0 0 1 +0.830000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004690 0.019000 0.089000 0.099000 0.089710 +0 0 1 +0.260000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000170 0.009000 0.122000 0.099000 0.122980 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000190 0.018000 0.124000 0.112000 0.110000 +0 0 1 +0.650000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001200 0.020100 0.098000 0.078000 0.126000 +0 0 1 +0.210000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.090000 0.098000 0.092000 +0 0 1 +0.410000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000610 0.017000 0.108000 0.080000 0.135000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005600 0.020100 0.138000 0.121000 0.114000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.016000 0.139000 0.104000 0.134000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.020100 0.095000 0.083000 0.114000 +0 0 1 +0.360000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002800 0.020100 0.155000 0.097000 0.159000 +0 0 1 +0.430000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004500 0.002000 0.044000 0.064000 0.069000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020100 0.134000 0.114000 0.117000 +0 0 1 +0.450000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.018000 0.094000 0.084000 0.111000 +0 0 1 +0.450000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.023000 0.088000 0.084000 0.106000 +0 0 1 +0.490000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020100 0.098000 0.089000 0.110000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.004400 0.020100 0.058000 0.058000 0.100000 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001600 0.022000 0.096000 0.094000 0.102000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.020000 0.117000 0.080000 0.145000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000020 0.040000 0.209000 0.104000 0.197000 +0 0 1 +0.250000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.028000 0.011000 0.087000 0.094000 0.093000 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000910 0.018000 0.093000 0.104000 0.089000 +0 0 1 +0.500000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002800 0.015000 0.084000 0.102000 0.082000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.023000 0.105000 0.097000 0.109000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000920 0.020100 0.101000 0.091000 0.111000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.009200 0.018000 0.087000 0.104000 0.084000 +0 1 0 +0.230000 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0.007900 0.022000 0.104000 0.107000 0.097000 +0 1 0 +0.520000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.020600 0.119000 0.092000 0.129000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004400 0.016000 0.061000 0.109000 0.056000 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.031000 0.206000 0.159000 0.129000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.025000 0.160000 0.116000 0.136000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.023000 0.104000 0.099000 0.104830 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000630 0.020100 0.093000 0.101000 0.093000 +0 0 1 +0.750000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.020100 0.145000 0.100000 0.145000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.044000 0.017000 0.059000 0.104000 0.057000 +1 0 0 +0.430000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.013000 0.136000 0.097000 0.140000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000840 0.015000 0.100000 0.074000 0.135000 +0 0 1 +0.220000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001500 0.017000 0.106000 0.072000 0.147000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020800 0.141000 0.085000 0.167000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000740 0.005000 0.085000 0.077000 0.110000 +0 0 1 +0.340000 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0.001890 0.020600 0.103000 0.138000 0.075000 +0 0 1 +0.690000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002500 0.015000 0.082000 0.066000 0.124000 +0 0 1 +0.580000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000930 0.020100 0.084000 0.061000 0.139000 +0 0 1 +0.500000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001700 0.020600 0.090000 0.092000 0.098000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000130 0.030000 0.122000 0.095000 0.128000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003700 0.020100 0.114000 0.092000 0.124000 +0 0 1 +0.390000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000580 0.027000 0.176000 0.098000 0.180000 +0 0 1 +0.470000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.003400 0.022000 0.102000 0.102000 0.101000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007700 0.011000 0.156000 0.101000 0.155000 +0 0 1 +0.800000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020100 0.057000 0.078000 0.073000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.014000 0.020000 0.062000 0.090000 0.069000 +0 1 0 +0.490000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.018000 0.109000 0.104000 0.104000 +0 0 1 +0.670000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005400 0.012000 0.088000 0.069000 0.128000 +0 0 1 +0.780000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000210 0.020100 0.214000 0.123000 0.174000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001100 0.023000 0.096000 0.078000 0.123000 +0 0 1 +0.570000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.000100 0.024000 0.081000 0.089000 0.091000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.022000 0.101000 0.079000 0.129000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.019000 0.103000 0.099000 0.104000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001100 0.020000 0.123000 0.091000 0.135000 +0 0 1 +0.870000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.017000 0.140000 0.096000 0.147000 +0 0 1 +0.440000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.020600 0.088000 0.104000 0.083000 +0 0 1 +0.750000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.049000 0.003000 0.005000 0.116000 0.004000 +1 0 0 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.049000 0.249000 0.086000 0.290000 +0 0 1 +0.580000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003700 0.016000 0.076000 0.081000 0.095000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.022000 0.124000 0.108000 0.115000 +0 0 1 +0.460000 0 1 0 0 0 0 1 0 1 1 0 0 0 0 0 0.003400 0.018000 0.123000 0.090000 0.137000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.029000 0.104000 0.095000 0.110000 +0 0 1 +0.230000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.027000 0.113000 0.110000 0.102000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000630 0.025000 0.111000 0.097000 0.114000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020800 0.109000 0.102000 0.107000 +0 0 1 +0.660000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008290 0.017000 0.094000 0.095000 0.099000 +0 1 0 +0.490000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.860000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000120 0.009000 0.119000 0.091000 0.131000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.003000 0.073000 0.090000 0.081000 +0 0 1 +0.270000 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0.000260 0.020100 0.142000 0.134000 0.106000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.007000 0.041000 0.060000 0.069000 +0 0 1 +0.490000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002320 0.020100 0.148000 0.107000 0.138000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.018000 0.095000 0.091000 0.104000 +0 0 1 +0.580000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.016000 0.103000 0.090000 0.114000 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020600 0.098000 0.099000 0.099000 +0 0 1 +0.540000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000460 0.030000 0.116000 0.104000 0.110000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.023000 0.112000 0.101000 0.111000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000580 0.020600 0.115000 0.120000 0.096000 +0 0 1 +0.580000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.014000 0.129000 0.107000 0.120000 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000960 0.015000 0.077000 0.115000 0.067000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.026000 0.063000 0.074000 0.085000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.011400 0.017400 0.099000 0.097000 0.102000 +0 1 0 +0.440000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000660 0.020100 0.062000 0.094000 0.063000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000200 0.035000 0.172000 0.099000 0.173000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.016000 0.014000 0.068000 0.101000 0.067000 +0 1 0 +0.440000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.017000 0.092000 0.098000 0.094000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.007000 0.089000 0.072000 0.123000 +0 0 1 +0.600000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.017000 0.158000 0.104000 0.152000 +0 0 1 +0.400000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.023000 0.150000 0.124000 0.121000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.019000 0.072000 0.104000 0.068000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.022000 0.178000 0.126000 0.142000 +0 0 1 +0.700000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.014000 0.106000 0.092000 0.115000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.006000 0.082000 0.046000 0.179000 +0 0 1 +0.670000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002400 0.020100 0.127000 0.109000 0.117000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006000 0.020100 0.091000 0.093000 0.098000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000710 0.025000 0.141000 0.139000 0.101000 +0 0 1 +0.870000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.009000 0.106000 0.092000 0.115000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000640 0.014000 0.130000 0.091000 0.143000 +0 0 1 +0.260000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000730 0.029000 0.102000 0.088000 0.116000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020600 0.067000 0.071000 0.095000 +0 0 1 +0.870000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006400 0.000500 0.040000 0.068000 0.059000 +1 0 0 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.021000 0.008000 0.053000 0.086000 0.061000 +1 0 0 +0.190000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.023000 0.091000 0.093000 0.098000 +0 0 1 +0.590000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.017000 0.097000 0.076000 0.129000 +0 0 1 +0.790000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.034000 0.151000 0.074000 0.203000 +0 0 1 +0.730000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001010 0.018000 0.095000 0.096000 0.098750 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000450 0.020100 0.184000 0.121000 0.152000 +0 0 1 +0.010000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.030000 0.196000 0.096000 0.204000 +0 0 1 +0.130000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.028000 0.110000 0.110000 0.100000 +0 0 1 +0.440000 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0.000100 0.006000 0.061000 0.086000 0.071000 +0 0 1 +0.800000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008390 0.013000 0.068000 0.090000 0.076000 +0 1 0 +0.190000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000480 0.020100 0.074000 0.058000 0.128000 +0 0 1 +0.860000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.018000 0.089000 0.089000 0.100000 +0 0 1 +0.440000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003500 0.017000 0.103000 0.096000 0.107000 +0 0 1 +0.510000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000080 0.020100 0.146000 0.082000 0.178000 +0 0 1 +0.520000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.009590 0.012000 0.126000 0.090000 0.140000 +0 1 0 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000460 0.020100 0.117000 0.090000 0.130000 +0 0 1 +0.410000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020600 0.097000 0.088000 0.110000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001400 0.020100 0.135000 0.104000 0.127000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001890 0.020600 0.089000 0.096000 0.093000 +0 0 1 +0.750000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001400 0.016000 0.086000 0.089000 0.097000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.018000 0.093000 0.119000 0.078000 +0 0 1 +0.490000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.102000 0.094000 0.109000 +0 0 1 +0.310000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.049000 0.009600 0.087000 0.135000 0.064000 +1 0 0 +0.760000 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.000070 0.033000 0.183000 0.100000 0.183000 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000090 0.006000 0.091000 0.068000 0.134000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.680000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000160 0.020100 0.100000 0.091000 0.110000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.001100 0.026000 0.134000 0.096000 0.119000 +0 0 1 +0.680000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.029000 0.090000 0.100000 0.090000 +0 0 1 +0.280000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004190 0.015000 0.083000 0.099000 0.083660 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.018000 0.092000 0.099000 0.092740 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001100 0.022000 0.145000 0.123000 0.118000 +0 0 1 +0.380000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.028000 0.146000 0.110000 0.133000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.011000 0.015000 0.089000 0.112000 0.079000 +0 1 0 +0.340000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004000 0.018000 0.135000 0.100000 0.134000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.009000 0.093000 0.097000 0.097000 +0 0 1 +0.720000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000700 0.020000 0.082000 0.094000 0.087000 +0 0 1 +0.270000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.080000 0.094000 0.085000 +0 0 1 +0.590000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000650 0.020100 0.114000 0.096000 0.118000 +0 0 1 +0.590000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002080 0.020100 0.087000 0.096000 0.091000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000270 0.020100 0.117000 0.108000 0.108000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.020800 0.084000 0.087000 0.096000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.117000 0.098000 0.119000 +0 0 1 +0.710000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.020100 0.088000 0.103000 0.085000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000980 0.019000 0.150000 0.103000 0.146000 +0 0 1 +0.500000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.003300 0.020800 0.107000 0.107000 0.100000 +0 0 1 +0.500000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.058000 0.024000 0.025000 0.121000 0.020000 +1 0 0 +0.780000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.013000 0.116000 0.097000 0.119000 +0 0 1 +0.740000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.000360 0.013000 0.096000 0.075000 0.129000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002000 0.014000 0.107000 0.077000 0.139000 +0 0 1 +0.420000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.009090 0.020100 0.120000 0.107000 0.112000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000240 0.024000 0.119000 0.110000 0.109000 +0 0 1 +0.760000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.013000 0.093000 0.082000 0.113000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0.001100 0.016000 0.104000 0.079000 0.132000 +0 0 1 +0.540000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.020100 0.108000 0.084000 0.129000 +0 0 1 +0.180000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.020600 0.183000 0.130000 0.141000 +0 0 1 +0.640000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007700 0.020600 0.111000 0.112000 0.099000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.026000 0.020000 0.069000 0.097000 0.071000 +0 1 0 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.020100 0.152000 0.103000 0.148000 +0 0 1 +0.530000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002400 0.037000 0.172000 0.167000 0.103000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020600 0.059000 0.058000 0.099000 +0 0 1 +0.400000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.023000 0.134000 0.084000 0.160000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.017000 0.122000 0.091000 0.135000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.280000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.026000 0.091000 0.067000 0.135000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.016000 0.127000 0.100000 0.126000 +0 0 1 +0.130000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.002900 0.020100 0.104000 0.087000 0.120000 +0 0 1 +0.840000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.022000 0.138000 0.097000 0.143000 +0 0 1 +0.780000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000580 0.020000 0.101000 0.090000 0.112000 +0 0 1 +0.150000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.024000 0.105000 0.116000 0.091000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000930 0.017000 0.081000 0.099000 0.081650 +0 0 1 +0.780000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008590 0.020100 0.124000 0.098000 0.126000 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.027000 0.124000 0.120000 0.104000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000060 0.029000 0.150000 0.096000 0.155920 +0 0 1 +0.460000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.028000 0.143000 0.130000 0.110000 +0 0 1 +0.700000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.002300 0.027000 0.095000 0.107000 0.088000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020600 0.106000 0.128000 0.084000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.003000 0.085000 0.061000 0.139000 +0 0 1 +0.820000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.006600 0.016000 0.092000 0.100000 0.091000 +0 1 0 +0.140000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.025000 0.119000 0.073000 0.163000 +0 0 1 +0.680000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.025000 0.079000 0.086000 0.092000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008090 0.024000 0.132000 0.128000 0.103000 +0 1 0 +0.220000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.015000 0.133000 0.084000 0.159000 +0 0 1 +0.830000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.016000 0.103000 0.092000 0.112000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001300 0.036000 0.204000 0.179000 0.114000 +0 0 1 +0.610000 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0.000700 0.022000 0.118000 0.096000 0.122660 +0 0 1 +0.200000 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.000030 0.027000 0.107000 0.107000 0.100000 +0 0 1 +0.460000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.001700 0.010000 0.105000 0.100000 0.105000 +0 0 1 +0.900000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005700 0.016000 0.089000 0.091000 0.098000 +0 0 1 +0.490000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.087000 0.084000 0.103000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.022000 0.111180 0.099000 0.112070 +0 0 1 +0.590000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004900 0.014000 0.096000 0.088000 0.109000 +0 0 1 +0.300000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.014000 0.113000 0.083000 0.136000 +0 0 1 +0.330000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000010 0.020600 0.132000 0.087000 0.152000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.920000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000140 0.009000 0.092000 0.091000 0.101000 +0 0 1 +0.490000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.012000 0.089000 0.109000 0.082000 +0 0 1 +0.670000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000450 0.020600 0.124000 0.102000 0.122000 +0 0 1 +0.380000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000570 0.013000 0.156000 0.139000 0.112000 +0 0 1 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.022000 0.103000 0.104000 0.098000 +0 0 1 +0.750000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.091000 0.079000 0.114000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000060 0.051000 0.138000 0.113000 0.122000 +0 0 1 +0.670000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000670 0.018000 0.080000 0.086000 0.093000 +0 0 1 +0.620000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000230 0.020100 0.118000 0.087000 0.136000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.009000 0.093000 0.085000 0.109000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001890 0.013000 0.111180 0.099000 0.112070 +0 0 1 +0.640000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001000 0.017000 0.096000 0.090000 0.107000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.017000 0.119000 0.099000 0.119950 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.016000 0.068000 0.087000 0.078000 +0 0 1 +0.880000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.008000 0.113290 0.096000 0.117760 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.019000 0.165000 0.139000 0.118000 +0 0 1 +0.740000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.001100 0.024000 0.095000 0.109000 0.086000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000600 0.016000 0.095000 0.107000 0.089000 +0 0 1 +0.150000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.014000 0.137000 0.081000 0.169000 +0 0 1 +0.730000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.022000 0.119000 0.092000 0.129000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005100 0.020800 0.090000 0.107000 0.084000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.028000 0.122000 0.110000 0.111000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000010 0.018000 0.151000 0.094000 0.161000 +0 0 1 +0.910000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000150 0.013000 0.126000 0.096000 0.132000 +0 0 1 +0.190000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.019000 0.165000 0.095000 0.174000 +0 0 1 +0.720000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000700 0.014000 0.110000 0.088000 0.124000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.024000 0.004000 0.003000 0.099000 0.003000 +1 0 0 +0.590000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005200 0.020600 0.119000 0.093000 0.127000 +0 0 1 +0.660000 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000180 0.026000 0.083000 0.080000 0.104000 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.019000 0.108000 0.096000 0.112260 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.020100 0.099000 0.115000 0.086000 +0 0 1 +0.190000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.041900 0.128000 0.098000 0.130000 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.091000 0.084000 0.108000 +0 0 1 +0.640000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.013000 0.124000 0.090000 0.138000 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.084000 0.082000 0.102000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.007000 0.087000 0.081000 0.107000 +0 0 1 +0.490000 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0.000200 0.024000 0.137000 0.099000 0.138100 +0 0 1 +0.540000 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0.000080 0.020800 0.133000 0.114000 0.116000 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000700 0.020100 0.119000 0.094000 0.128000 +0 0 1 +0.750000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.008000 0.093000 0.058000 0.160000 +0 0 1 +0.280000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.017000 0.074000 0.073000 0.101000 +0 0 1 +0.620000 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0.001100 0.014000 0.103000 0.089000 0.115000 +0 0 1 +0.650000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.020100 0.121000 0.094000 0.129000 +0 0 1 +0.200000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.026000 0.171000 0.112000 0.153000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008090 0.017000 0.110000 0.091000 0.121000 +0 1 0 +0.390000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.031000 0.099000 0.101000 0.098000 +0 0 1 +0.720000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.013000 0.013000 0.106000 0.131000 0.082000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000400 0.025000 0.098000 0.101000 0.096000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.020600 0.134000 0.114000 0.118000 +0 0 1 +0.730000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.014000 0.091000 0.104000 0.087000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002700 0.024000 0.157000 0.120000 0.131000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002800 0.024000 0.111000 0.080000 0.139000 +0 0 1 +0.620000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000940 0.018000 0.083000 0.082000 0.101000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.028000 0.096000 0.094000 0.103000 +0 0 1 +0.450000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.013000 0.109000 0.089000 0.122000 +0 0 1 +0.490000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.031000 0.139000 0.114000 0.122000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.530000 0.020000 0.010000 0.112000 0.008500 +1 0 0 +0.550000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0.003100 0.020100 0.064000 0.090000 0.071000 +0 0 1 +0.690000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.018000 0.136000 0.092000 0.149000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.002900 0.025000 0.074000 0.099000 0.075000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.019000 0.086000 0.104000 0.081000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.020100 0.095000 0.087000 0.109000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.017000 0.077000 0.087000 0.089000 +0 0 1 +0.400000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.024000 0.105000 0.083000 0.125000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004100 0.020100 0.125000 0.104000 0.119000 +0 0 1 +0.210000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001400 0.016000 0.095000 0.093000 0.102000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020000 0.101000 0.093000 0.109000 +0 0 1 +0.490000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000490 0.017000 0.146000 0.089000 0.165000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.014000 0.085000 0.093000 0.092000 +0 0 1 +0.150000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002300 0.034000 0.115000 0.096000 0.120000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.004800 0.024000 0.114000 0.084000 0.135000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.013000 0.030000 0.141000 0.127000 0.111000 +0 1 0 +0.360000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001600 0.028000 0.131000 0.104000 0.125000 +0 0 1 +0.430000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000950 0.019000 0.101000 0.081000 0.125000 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.020000 0.095000 0.090000 0.106000 +0 0 1 +0.230000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000780 0.020000 0.102000 0.097000 0.106000 +0 0 1 +0.710000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.004300 0.013000 0.055000 0.083000 0.066000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000850 0.020100 0.094000 0.052000 0.177000 +0 0 1 +0.200000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003700 0.028000 0.158000 0.096000 0.165000 +0 0 1 +0.010000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020100 0.117000 0.097000 0.121000 +0 0 1 +0.290000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000250 0.020000 0.035000 0.099000 0.035280 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000610 0.017000 0.107000 0.081000 0.132000 +0 0 1 +0.840000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.020800 0.110000 0.104000 0.106000 +0 0 1 +0.500000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000520 0.020800 0.094000 0.095000 0.099000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003600 0.019000 0.087000 0.099000 0.087700 +0 0 1 +0.560000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.028000 0.141000 0.099000 0.142000 +0 0 1 +0.660000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.003000 0.064000 0.066000 0.096000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001500 0.020100 0.115000 0.108000 0.106000 +0 0 1 +0.540000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000930 0.018000 0.115000 0.094000 0.123000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.020100 0.160000 0.115000 0.139000 +0 0 1 +0.200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020800 0.106000 0.092000 0.115000 +0 0 1 +0.270000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.000010 0.032000 0.163000 0.110000 0.148000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003600 0.020100 0.133000 0.083000 0.161000 +0 0 1 +0.890000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.014000 0.009600 0.031210 0.102000 0.030420 +1 0 0 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020100 0.101000 0.090000 0.112000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003900 0.016000 0.139000 0.093000 0.150000 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020100 0.088000 0.078000 0.113000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.003800 0.022000 0.076000 0.130000 0.058000 +0 0 1 +0.730000 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0.000510 0.024000 0.192000 0.119000 0.162000 +0 0 1 +0.680000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.009000 0.072000 0.077000 0.094000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020600 0.166000 0.146000 0.115000 +0 0 1 +0.590000 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0.004190 0.025000 0.090000 0.102000 0.088000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000820 0.014000 0.091000 0.097000 0.094000 +0 0 1 +0.250000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.020100 0.151000 0.114000 0.133000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.270000 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0.000360 0.024000 0.114000 0.100000 0.115000 +0 0 1 +0.580000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.118000 0.104000 0.113000 +0 0 1 +0.170000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.013000 0.016000 0.151000 0.139000 0.109000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.020100 0.067000 0.099000 0.068000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006500 0.012000 0.169000 0.099000 0.171000 +0 0 1 +0.620000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.020600 0.126000 0.124000 0.101000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.025000 0.102000 0.092000 0.111000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.025000 0.147000 0.089000 0.165000 +0 0 1 +0.690000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.020800 0.188000 0.097000 0.194000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.020000 0.087000 0.084000 0.103000 +0 0 1 +0.260000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.018000 0.059000 0.100000 0.059000 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.018000 0.125000 0.074000 0.169000 +0 0 1 +0.660000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.003200 0.020100 0.094000 0.078000 0.099000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.037000 0.046000 0.092000 0.051000 +0 0 1 +0.880000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020100 0.140000 0.114000 0.123000 +0 0 1 +0.470000 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.023000 0.075000 0.089000 0.084000 +0 0 1 +0.900000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.012000 0.097000 0.093000 0.104000 +0 0 1 +0.750000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.002600 0.020100 0.096000 0.112000 0.086000 +0 0 1 +0.290000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000830 0.029000 0.123000 0.095000 0.130000 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.029000 0.119000 0.107000 0.111000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000550 0.017000 0.110000 0.107000 0.102000 +0 0 1 +0.450000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.020100 0.114000 0.081000 0.141000 +0 0 1 +0.250000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002700 0.020600 0.073000 0.097000 0.076000 +0 0 1 +0.300000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020000 0.080000 0.072000 0.110000 +0 0 1 +0.330000 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0.003000 0.025000 0.121000 0.138000 0.088000 +0 0 1 +0.350000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.026000 0.102000 0.113000 0.091000 +0 0 1 +0.350000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.010000 0.068000 0.088000 0.078000 +0 0 1 +0.330000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001000 0.020800 0.108000 0.092000 0.117000 +0 0 1 +0.750000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003700 0.020000 0.112000 0.097000 0.115000 +0 0 1 +0.800000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.019000 0.112000 0.087000 0.129000 +0 0 1 +0.400000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.017000 0.129000 0.087000 0.148000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.014000 0.130000 0.085000 0.153000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.004400 0.027000 0.131000 0.173000 0.076000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.023000 0.087000 0.094000 0.093000 +0 0 1 +0.080000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.022000 0.077000 0.085000 0.091000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.020800 0.124000 0.108000 0.114000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003600 0.070000 0.141000 0.177000 0.080000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000700 0.015000 0.090000 0.114000 0.079000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.580000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.022000 0.010000 0.155000 0.113000 0.137000 +0 0 1 +0.640000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000490 0.016000 0.097000 0.079000 0.123000 +0 0 1 +0.520000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001300 0.020000 0.102000 0.099000 0.102820 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.023000 0.180000 0.130000 0.139000 +0 0 1 +0.760000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.003800 0.027000 0.097000 0.119000 0.081000 +0 0 1 +0.630000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000400 0.014000 0.115000 0.102000 0.113000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001900 0.020000 0.146000 0.095000 0.154000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002080 0.017000 0.116000 0.101000 0.115000 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.008000 0.044000 0.115000 0.038000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.023000 0.140000 0.110000 0.127000 +0 0 1 +0.610000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001600 0.020100 0.115000 0.108000 0.106000 +0 0 1 +0.770000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.024000 0.100000 0.080000 0.124000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.091000 0.104000 0.087000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000060 0.020000 0.153000 0.099000 0.154000 +0 0 1 +0.550000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004600 0.020100 0.109000 0.097000 0.112000 +0 0 1 +0.240000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.000110 0.038000 0.096000 0.081000 0.119000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002300 0.020100 0.127000 0.111000 0.114000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.024000 0.091000 0.104000 0.087000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002320 0.055000 0.214000 0.091000 0.236000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000320 0.025000 0.169000 0.114000 0.149000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000620 0.023000 0.102000 0.103000 0.099000 +0 0 1 +0.870000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020800 0.118000 0.093000 0.127000 +0 0 1 +0.150000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000510 0.013000 0.121000 0.078000 0.155000 +0 0 1 +0.700000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.019000 0.087000 0.087000 0.100000 +0 0 1 +0.530000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.027000 0.129000 0.095000 0.136000 +0 0 1 +0.240000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.017000 0.076000 0.102000 0.075000 +0 0 1 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007100 0.020800 0.079000 0.096000 0.083000 +0 1 0 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.016000 0.145000 0.097000 0.149000 +0 0 1 +0.350000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.018000 0.100000 0.081000 0.123000 +0 0 1 +0.930000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000980 0.020100 0.088000 0.066000 0.133000 +0 0 1 +0.490000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.020100 0.085000 0.079000 0.107000 +0 0 1 +0.830000 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0.002200 0.007000 0.071000 0.076000 0.093000 +0 0 1 +0.400000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.031000 0.223000 0.132000 0.169000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.002200 0.020000 0.108000 0.108000 0.100000 +0 0 1 +0.580000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000220 0.026000 0.156000 0.111000 0.140000 +0 0 1 +0.570000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.000010 0.029000 0.098000 0.087000 0.113000 +0 0 1 +0.400000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.009200 0.015000 0.113000 0.103000 0.109000 +0 1 0 +0.830000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000840 0.020100 0.102000 0.085000 0.120000 +0 0 1 +0.740000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002000 0.022000 0.109000 0.091000 0.119000 +0 0 1 +0.210000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.007000 0.024000 0.045000 0.111000 0.041000 +0 0 1 +0.210000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.018000 0.087000 0.088000 0.099000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.020100 0.101000 0.104000 0.096000 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.002900 0.020100 0.143000 0.091000 0.157000 +0 0 1 +0.220000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000400 0.022000 0.134000 0.135000 0.099000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.025000 0.003000 0.010000 0.116000 0.008390 +1 0 0 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.091000 0.104000 0.088000 +0 0 1 +0.610000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000750 0.017000 0.088000 0.092000 0.096000 +0 0 1 +0.740000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000070 0.022000 0.191000 0.097000 0.197000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000700 0.019000 0.116000 0.089000 0.130000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.023000 0.114000 0.110000 0.104000 +0 0 1 +0.610000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.006800 0.009000 0.096000 0.101000 0.095000 +0 0 1 +0.270000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.106000 0.079000 0.134000 +0 0 1 +0.800000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.018000 0.112000 0.099000 0.113000 +0 0 1 +0.490000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003500 0.012000 0.144000 0.088000 0.164000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000780 0.029000 0.137000 0.141000 0.097000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002080 0.020600 0.117000 0.109000 0.107000 +0 0 1 +0.780000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.003000 0.057000 0.110000 0.052000 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.008000 0.075000 0.077000 0.098000 +0 0 1 +0.150000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020800 0.113000 0.090000 0.126000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008790 0.006000 0.040000 0.083000 0.048000 +1 0 0 +0.390000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.025000 0.130000 0.101000 0.129000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.003700 0.013000 0.083000 0.138000 0.060000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.020100 0.104000 0.095000 0.109000 +0 0 1 +0.650000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.103000 0.013000 0.031000 0.103000 0.029830 +1 0 0 +0.820000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.105000 0.110000 0.095000 +0 0 1 +0.530000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.020100 0.108000 0.093000 0.116000 +0 0 1 +0.280000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020000 0.105000 0.090000 0.116000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001700 0.018000 0.198000 0.100000 0.198000 +0 0 1 +0.370000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002800 0.020100 0.044000 0.064000 0.069000 +0 0 1 +0.490000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.020800 0.104000 0.078000 0.133000 +0 0 1 +0.630000 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.000780 0.019000 0.085000 0.110000 0.077000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000060 0.008000 0.061000 0.098000 0.062000 +0 0 1 +0.230000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.000220 0.065000 0.245000 0.076000 0.325000 +0 0 1 +0.490000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.018000 0.098000 0.113000 0.087000 +0 0 1 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.188000 0.013000 0.063000 0.119000 0.053000 +1 0 0 +0.780000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001500 0.020100 0.105000 0.062000 0.169000 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020800 0.111180 0.099000 0.112070 +0 0 1 +0.080000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.020600 0.087000 0.100000 0.087000 +0 0 1 +0.680000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.022000 0.142000 0.099000 0.143000 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000340 0.014000 0.123000 0.096000 0.128000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.020000 0.121000 0.119000 0.102000 +0 0 1 +0.610000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.020600 0.087000 0.079000 0.109000 +0 0 1 +0.330000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.016000 0.065000 0.076000 0.086000 +0 0 1 +0.860000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.020100 0.097000 0.091000 0.107000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.023000 0.087000 0.094000 0.093000 +0 0 1 +0.610000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000380 0.020600 0.121000 0.095000 0.128000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004190 0.020100 0.081000 0.086000 0.094000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.008890 0.012000 0.067000 0.075000 0.089000 +0 1 0 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001400 0.023000 0.126000 0.100000 0.126000 +0 0 1 +0.860000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001600 0.004000 0.076000 0.104000 0.072000 +0 0 1 +0.300000 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0.003300 0.020100 0.087000 0.116000 0.074000 +0 0 1 +0.350000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020100 0.093000 0.076000 0.122000 +0 0 1 +0.760000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.015000 0.093000 0.071000 0.132000 +0 0 1 +0.550000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001500 0.016000 0.108000 0.114000 0.095000 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.020100 0.111000 0.104000 0.107000 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000720 0.005000 0.078000 0.095000 0.082000 +0 0 1 +0.700000 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000020 0.015000 0.160000 0.094000 0.171000 +0 0 1 +0.680000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.001600 0.025000 0.099000 0.109000 0.090000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.098000 0.004000 0.005800 0.080000 0.007000 +1 0 0 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.020100 0.105000 0.096000 0.109000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007700 0.017000 0.063000 0.081000 0.079000 +0 1 0 +0.590000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001300 0.016000 0.082000 0.088000 0.093000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.009000 0.058000 0.128000 0.045000 +0 0 1 +0.670000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.009000 0.092000 0.087000 0.106000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006100 0.022000 0.074000 0.100000 0.073920 +0 1 0 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.028000 0.082000 0.089000 0.093000 +0 0 1 +0.160000 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.000500 0.032000 0.137000 0.116000 0.119000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.016000 0.101000 0.087000 0.116000 +0 0 1 +0.690000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.000180 0.014000 0.104000 0.068000 0.153000 +0 0 1 +0.760000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.001400 0.020800 0.080000 0.113000 0.071000 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.026000 0.142000 0.096000 0.149000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.017000 0.101000 0.085000 0.119000 +0 0 1 +0.580000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.020000 0.151000 0.104000 0.144000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000610 0.015000 0.112000 0.098000 0.114000 +0 0 1 +0.400000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003600 0.025000 0.095000 0.100000 0.095000 +0 0 1 +0.521900 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000030 0.028000 0.112000 0.084000 0.133000 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.027000 0.102000 0.094000 0.109000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.013000 0.025000 0.077000 0.095000 0.081000 +0 1 0 +0.400000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0.004100 0.026000 0.124000 0.130000 0.095000 +0 0 1 +0.520000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000130 0.020800 0.087000 0.095000 0.091000 +0 0 1 +0.510000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002200 0.020100 0.120000 0.122000 0.099000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.024000 0.073000 0.097000 0.075000 +0 0 1 +0.310000 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.003600 0.015000 0.105000 0.080000 0.131000 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000010 0.020000 0.071000 0.089000 0.080000 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.020800 0.122000 0.082000 0.150000 +0 0 1 +0.250000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001200 0.026000 0.121000 0.097000 0.125000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000700 0.020000 0.116000 0.099000 0.117000 +0 0 1 +0.390000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001100 0.016000 0.133000 0.102000 0.131000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.026000 0.117000 0.131000 0.090000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.020100 0.084000 0.083000 0.101000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000880 0.016000 0.114000 0.102000 0.112000 +0 0 1 +0.850000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.014000 0.086000 0.098000 0.088000 +0 0 1 +0.660000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000420 0.019000 0.153000 0.104000 0.147000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000980 0.018000 0.100000 0.099000 0.100800 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000970 0.019000 0.096000 0.093000 0.103000 +0 0 1 +0.800000 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000830 0.019000 0.116000 0.096000 0.120580 +0 0 1 +0.750000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.012000 0.020000 0.141000 0.113000 0.125000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000400 0.024000 0.077000 0.099000 0.078000 +0 0 1 +0.240000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004500 0.020600 0.166000 0.159000 0.104000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000630 0.023000 0.139000 0.111000 0.125000 +0 0 1 +0.680000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.006700 0.014000 0.101000 0.100000 0.100890 +0 1 0 +0.630000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000340 0.020100 0.142000 0.099000 0.143000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.020100 0.164000 0.134000 0.122000 +0 0 1 +0.840000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002320 0.029000 0.139000 0.093000 0.150000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.139000 0.009000 0.036000 0.090000 0.040000 +1 0 0 +0.470000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.014000 0.096000 0.087000 0.110000 +0 0 1 +0.620000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002200 0.028000 0.122000 0.113000 0.109000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.019000 0.110000 0.102000 0.108000 +0 0 1 +0.510000 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0.000030 0.043000 0.167000 0.102000 0.164000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000150 0.020600 0.133000 0.099000 0.135000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020000 0.087000 0.099000 0.087700 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.024000 0.133000 0.109000 0.122000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.022000 0.009600 0.065000 0.115000 0.057000 +1 0 0 +0.760000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000830 0.020800 0.134000 0.107000 0.125000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004400 0.024000 0.080000 0.098000 0.081000 +0 0 1 +0.820000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000580 0.009000 0.096000 0.076000 0.126000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.020800 0.109000 0.099000 0.109870 +0 0 1 +0.140000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020100 0.104000 0.098000 0.106000 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000300 0.020800 0.100000 0.104000 0.096000 +0 0 1 +0.840000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.024000 0.111180 0.099000 0.112070 +0 0 1 +0.500000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000170 0.017000 0.120000 0.098000 0.122000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.007900 0.024000 0.151000 0.163000 0.093000 +0 0 1 +0.560000 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002000 0.020000 0.094000 0.090000 0.104000 +0 0 1 +0.470000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000650 0.020100 0.131000 0.099000 0.132000 +0 0 1 +0.700000 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0.009500 0.005000 0.099000 0.058000 0.169000 +0 0 1 +0.620000 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000180 0.002000 0.094000 0.079000 0.119000 +0 0 1 +0.520000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020800 0.144000 0.125000 0.115000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020100 0.140000 0.116000 0.120000 +0 0 1 +0.270000 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0.025000 0.145000 0.145000 0.100000 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000050 0.019000 0.137000 0.109000 0.126000 +0 0 1 +0.700000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.023000 0.112000 0.104000 0.108000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.020100 0.117000 0.110000 0.106000 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.450000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000390 0.025000 0.120000 0.104000 0.115000 +0 0 1 +0.650000 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.012000 0.095000 0.098000 0.096000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.015000 0.085000 0.094000 0.090000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007700 0.019000 0.089000 0.104000 0.085000 +0 1 0 +0.610000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000180 0.015000 0.090000 0.079000 0.115000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.015000 0.085000 0.084000 0.102000 +0 0 1 +0.460000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.040000 0.131000 0.100000 0.131000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.151000 0.014000 0.042000 0.104000 0.039000 +1 0 0 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000420 0.018000 0.120000 0.094000 0.128000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000720 0.026000 0.117000 0.096000 0.121620 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000700 0.020000 0.085000 0.089000 0.096000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.003200 0.013000 0.096000 0.090000 0.107000 +0 0 1 +0.440000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.024000 0.135000 0.101000 0.135000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020100 0.098000 0.100000 0.098000 +0 0 1 +0.600000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.023000 0.160000 0.104000 0.151000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.022000 0.057000 0.092000 0.063000 +0 0 1 +0.350000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.019000 0.092000 0.089000 0.103000 +0 0 1 +0.340000 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0.002400 0.032000 0.137000 0.171000 0.080000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000950 0.022000 0.134000 0.090000 0.149000 +0 0 1 +0.790000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.022000 0.103000 0.095000 0.109000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000130 0.020100 0.107000 0.108000 0.099000 +0 0 1 +0.180000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020100 0.120000 0.141000 0.085000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000630 0.020100 0.104000 0.113000 0.092000 +0 0 1 +0.230000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.030000 0.174000 0.135000 0.129000 +0 0 1 +0.760000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000690 0.023000 0.138000 0.104000 0.133000 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000950 0.025000 0.138000 0.116000 0.118000 +0 0 1 +0.630000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000150 0.020600 0.079000 0.081000 0.097000 +0 0 1 +0.270000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.022000 0.099000 0.082000 0.120000 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000450 0.020100 0.113000 0.104000 0.107000 +0 0 1 +0.490000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001000 0.016000 0.093000 0.094000 0.099000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.014000 0.109000 0.095000 0.116000 +0 0 1 +0.610000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.020100 0.126000 0.115000 0.110000 +0 0 1 +0.670000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000970 0.018000 0.102000 0.092000 0.111000 +0 0 1 +0.720000 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0.006300 0.015000 0.094000 0.092000 0.102000 +0 0 1 +0.560000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001400 0.023000 0.115000 0.107000 0.107000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020000 0.089000 0.099000 0.089710 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020800 0.164000 0.114000 0.145000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020600 0.127000 0.101000 0.126000 +0 0 1 +0.410000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.022000 0.138000 0.090000 0.154000 +0 0 1 +0.190000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002300 0.030000 0.093000 0.095000 0.098000 +0 0 1 +0.370000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000480 0.004000 0.064000 0.032000 0.200000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000080 0.011000 0.138000 0.080000 0.173000 +0 0 1 +0.480000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.023000 0.082000 0.089000 0.091000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020000 0.092000 0.096000 0.096000 +0 0 1 +0.480000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.002900 0.020100 0.109000 0.099000 0.110000 +0 0 1 +0.270000 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0.001890 0.019000 0.111180 0.099000 0.112070 +0 0 1 +0.530000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.019000 0.096000 0.078000 0.124000 +0 0 1 +0.520000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.020100 0.176000 0.149000 0.118000 +0 0 1 +0.190000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.011000 0.105000 0.081000 0.129000 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.026000 0.054000 0.102000 0.053000 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020100 0.138000 0.148000 0.093000 +0 0 1 +0.730000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.019000 0.118000 0.090000 0.131000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.018000 0.133000 0.116000 0.115000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020000 0.089000 0.114000 0.079000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.023000 0.111000 0.114000 0.097000 +0 0 1 +0.430000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0.006500 0.018000 0.060000 0.089000 0.067000 +0 1 0 +0.160000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000070 0.015000 0.140000 0.089000 0.157000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.020000 0.118000 0.116000 0.102000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005100 0.025000 0.084000 0.104000 0.080000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.023000 0.084000 0.092000 0.092000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001300 0.017000 0.148000 0.104000 0.141000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.436000 0.009600 0.012000 0.101000 0.012000 +1 0 0 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004500 0.020800 0.113000 0.102000 0.111000 +0 0 1 +0.700000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.086000 0.005000 0.027000 0.084000 0.032000 +1 0 0 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000610 0.018000 0.096000 0.103000 0.094000 +0 0 1 +0.340000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.018000 0.060000 0.075000 0.080000 +0 0 1 +0.680000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020000 0.131000 0.107000 0.122000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.020100 0.116000 0.099000 0.117000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.026000 0.134000 0.099000 0.136000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.017000 0.017000 0.112000 0.116000 0.097000 +0 1 0 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.012000 0.122000 0.100000 0.122000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.005000 0.110000 0.086000 0.127000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003500 0.016000 0.091000 0.099000 0.091000 +0 0 1 +0.280000 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.003000 0.020800 0.136000 0.096000 0.141370 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.011000 0.095000 0.097000 0.098000 +0 0 1 +0.380000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000870 0.018000 0.107000 0.088000 0.121000 +0 0 1 +0.810000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.012000 0.147000 0.104000 0.138000 +0 0 1 +0.700000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000120 0.020600 0.124000 0.096000 0.129000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001100 0.018000 0.135000 0.109000 0.124000 +0 0 1 +0.510000 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.001900 0.022000 0.074000 0.091000 0.081000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.002600 0.020800 0.095000 0.097000 0.097000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.019000 0.141000 0.109000 0.129000 +0 0 1 +0.470000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.001200 0.027000 0.082000 0.104000 0.078000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.020000 0.017000 0.072000 0.096000 0.075000 +0 1 0 +0.650000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020100 0.086000 0.094000 0.091000 +0 0 1 +0.400000 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0.002320 0.020100 0.085000 0.112000 0.076000 +0 0 1 +0.810000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.018000 0.123000 0.098000 0.125000 +0 0 1 +0.730000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.015000 0.120000 0.094000 0.127000 +0 0 1 +0.250000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.018000 0.118000 0.099000 0.119000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.020000 0.066000 0.093000 0.071000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.014000 0.140000 0.113000 0.124000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001800 0.020600 0.063000 0.086000 0.073000 +0 0 1 +0.530000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.020000 0.131000 0.093000 0.142000 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.022000 0.107000 0.094000 0.114000 +0 0 1 +0.870000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.176000 0.009600 0.052000 0.123000 0.042000 +1 0 0 +0.690000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.018000 0.203000 0.091000 0.224000 +0 0 1 +0.660000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000100 0.006000 0.121000 0.085000 0.143000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000630 0.018000 0.120000 0.091000 0.132000 +0 0 1 +0.200000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.013000 0.077000 0.099000 0.077620 +0 0 1 +0.850000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000550 0.020100 0.024000 0.111000 0.022000 +0 0 1 +0.740000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020600 0.175000 0.115000 0.153000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.143000 0.111000 0.129000 +0 0 1 +0.320000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.020100 0.119000 0.088000 0.135000 +0 0 1 +0.450000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005000 0.007000 0.054000 0.085000 0.063000 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000520 0.020800 0.100000 0.099000 0.100800 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.020000 0.089000 0.089000 0.099000 +0 0 1 +0.760000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.006500 0.020100 0.084000 0.086000 0.097000 +0 0 1 +0.810000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.039000 0.007000 0.099000 0.089000 0.111000 +0 1 0 +0.550000 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0.016000 0.115000 0.084000 0.138000 +0 0 1 +0.440000 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.001600 0.024000 0.130000 0.108000 0.120000 +0 0 1 +0.320000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.029000 0.107000 0.087000 0.123000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.020800 0.113290 0.096000 0.123000 +0 0 1 +0.400000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020100 0.157000 0.189000 0.083000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020100 0.141000 0.136000 0.104000 +0 0 1 +0.630000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.003000 0.017000 0.093000 0.064000 0.146000 +0 0 1 +0.580000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000220 0.020000 0.134000 0.066000 0.203000 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000870 0.020000 0.095000 0.091000 0.105000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000880 0.015000 0.113000 0.074000 0.153000 +0 0 1 +0.620000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.003400 0.013000 0.092000 0.089000 0.104000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002600 0.013000 0.128000 0.107000 0.120000 +0 0 1 +0.350000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.027000 0.137000 0.119000 0.115000 +0 0 1 +0.730000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000350 0.016000 0.120000 0.111000 0.108000 +0 0 1 +0.480000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002400 0.020000 0.066000 0.074000 0.089000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006800 0.024000 0.096000 0.104000 0.090000 +0 1 0 +0.520000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.020100 0.125000 0.090000 0.138000 +0 0 1 +0.250000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.033000 0.116000 0.099000 0.116930 +0 0 1 +0.700000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001900 0.022000 0.113290 0.096000 0.117760 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001700 0.023000 0.136000 0.107000 0.127000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000400 0.020000 0.143000 0.128000 0.112000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.018000 0.101000 0.116000 0.086000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.003100 0.014000 0.096000 0.102000 0.094000 +0 0 1 +0.420000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008000 0.015000 0.110000 0.096000 0.114340 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001020 0.030000 0.130000 0.099000 0.131030 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.003000 0.020600 0.090000 0.114000 0.079000 +0 0 1 +0.430000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.019000 0.020600 0.063000 0.097000 0.065000 +0 0 1 +0.540000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000090 0.020100 0.134000 0.099000 0.135000 +0 0 1 +0.200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.580000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000110 0.020100 0.132000 0.076000 0.174000 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007800 0.055000 0.166000 0.121000 0.138000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.019000 0.097000 0.103000 0.094000 +0 0 1 +0.450000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.012000 0.020100 0.137000 0.074000 0.185000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.002000 0.087000 0.054000 0.161000 +0 0 1 +0.390000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000060 0.020100 0.169000 0.089000 0.189000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000580 0.015000 0.116000 0.093000 0.124000 +0 0 1 +0.680000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.270000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.018000 0.160000 0.112000 0.143000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0.006300 0.027000 0.153000 0.170000 0.090000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020100 0.129000 0.096000 0.134090 +0 0 1 +0.660000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.020600 0.134000 0.098000 0.137000 +0 0 1 +0.400000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.019000 0.142000 0.091000 0.156000 +0 0 1 +0.070000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007300 0.016000 0.064000 0.097000 0.066000 +0 1 0 +0.790000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.016000 0.082000 0.080000 0.104000 +0 0 1 +0.620000 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0.003400 0.013000 0.134000 0.119000 0.113000 +0 0 1 +0.680000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.125000 0.104000 0.119000 +0 0 1 +0.360000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.020600 0.187000 0.169000 0.111000 +0 0 1 +0.300000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.019000 0.110000 0.089000 0.125000 +0 0 1 +0.840000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002800 0.002000 0.094000 0.081000 0.116000 +0 0 1 +0.750000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000120 0.020600 0.109000 0.085000 0.128000 +0 0 1 +0.680000 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.001900 0.020600 0.093000 0.086000 0.108000 +0 0 1 +0.740000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.009000 0.104000 0.078000 0.133000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000770 0.032000 0.175000 0.147000 0.119000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.132900 0.410000 0.079000 0.519000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001890 0.027000 0.120000 0.127000 0.095000 +0 0 1 +0.410000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000010 0.025000 0.022000 0.099000 0.022170 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.020000 0.083000 0.087000 0.096000 +0 0 1 +0.720000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.010000 0.053000 0.061000 0.087000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.024000 0.109000 0.097000 0.112000 +0 0 1 +0.680000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.022000 0.099000 0.086000 0.115000 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005000 0.024000 0.099000 0.107000 0.093000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.023000 0.072000 0.104000 0.068000 +0 0 1 +0.370000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.250000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001800 0.020000 0.090000 0.092000 0.098000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.014000 0.102000 0.084000 0.121000 +0 0 1 +0.750000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.031000 0.141000 0.095000 0.149000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000100 0.006000 0.070000 0.090000 0.177000 +0 0 1 +0.670000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000810 0.020600 0.084000 0.083000 0.101000 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.003500 0.024000 0.095000 0.108000 0.088000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004500 0.011000 0.132000 0.101000 0.131000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000820 0.026000 0.180000 0.142000 0.126000 +0 0 1 +0.530000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.025000 0.166000 0.098000 0.169000 +0 0 1 +0.310000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.026000 0.113000 0.091000 0.123000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.022000 0.131000 0.104000 0.123000 +0 0 1 +0.590000 1 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0.000080 0.020600 0.125000 0.078000 0.161000 +0 0 1 +0.600000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001200 0.016000 0.104000 0.099000 0.105000 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.099000 0.099000 0.100000 +0 0 1 +0.410000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.024000 0.115000 0.111000 0.104000 +0 0 1 +0.600000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.016000 0.155000 0.072000 0.216000 +0 0 1 +0.150000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.014000 0.064000 0.079000 0.081000 +0 0 1 +0.180000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.024000 0.086000 0.101000 0.085000 +0 0 1 +0.620000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.020800 0.130000 0.099000 0.131000 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.019000 0.092000 0.104000 0.088000 +0 0 1 +0.590000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000010 0.022000 0.164000 0.101000 0.162000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.018000 0.103000 0.091000 0.113000 +0 0 1 +0.150000 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.260000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.009200 0.016000 0.104000 0.112000 0.093000 +0 1 0 +0.410000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000760 0.020600 0.107000 0.091000 0.118000 +0 0 1 +0.390000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000770 0.020100 0.085000 0.071000 0.120000 +0 0 1 +0.610000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006000 0.015000 0.097000 0.088000 0.110000 +0 0 1 +0.320000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002200 0.020000 0.102000 0.086000 0.119000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.017000 0.101000 0.099000 0.101810 +0 0 1 +0.610000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.022000 0.091000 0.087000 0.105000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020800 0.132000 0.113000 0.116000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.029000 0.022000 0.103000 0.090000 0.114000 +0 1 0 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.020800 0.110000 0.087000 0.126000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.047000 0.002000 0.002000 0.084000 0.002000 +1 0 0 +0.650000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000780 0.020100 0.110000 0.096000 0.115000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000060 0.022000 0.137000 0.102000 0.135000 +0 0 1 +0.660000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.001800 0.020100 0.105000 0.108000 0.097000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.020100 0.075000 0.057000 0.132000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.175000 0.086000 0.204000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000050 0.026000 0.093000 0.088000 0.106000 +0 0 1 +0.370000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000940 0.019000 0.099000 0.086000 0.115000 +0 0 1 +0.060000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020000 0.134000 0.096000 0.140000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001300 0.018000 0.104000 0.104000 0.100000 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0.000770 0.011000 0.081000 0.086000 0.095000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.020100 0.126000 0.116000 0.107000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005500 0.020100 0.131000 0.115000 0.114000 +0 0 1 +0.400000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001030 0.020000 0.098000 0.095000 0.103000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000070 0.024000 0.250000 0.104000 0.238000 +0 0 1 +0.610000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.013000 0.092000 0.089000 0.103000 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.003700 0.011000 0.126000 0.091000 0.138000 +0 0 1 +0.400000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.012000 0.020800 0.081000 0.109000 0.074000 +0 1 0 +0.340000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.027000 0.104000 0.101000 0.103000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.121000 0.109000 0.111000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.020000 0.132000 0.110000 0.120000 +0 0 1 +0.650000 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.003600 0.020100 0.097000 0.107000 0.091000 +0 0 1 +0.300000 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.003000 0.061000 0.116000 0.052000 +0 0 1 +0.750000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.004300 0.017000 0.142000 0.112000 0.127000 +0 0 1 +0.440000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004190 0.022000 0.113000 0.109000 0.103000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.014000 0.017000 0.123000 0.111000 0.111000 +0 1 0 +0.600000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000020 0.039000 0.123000 0.098000 0.126000 +0 0 1 +0.470000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020800 0.094000 0.079000 0.119000 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.014000 0.096000 0.088000 0.109000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.013000 0.097000 0.085000 0.115000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.035000 0.158000 0.159000 0.100000 +0 0 1 +0.580000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.022000 0.078000 0.097000 0.079000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000450 0.016000 0.101000 0.089000 0.114000 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.022000 0.146000 0.148000 0.098000 +0 0 1 +0.490000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.020600 0.138000 0.083000 0.166000 +0 0 1 +0.490000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.016000 0.106000 0.098000 0.108000 +0 0 1 +0.280000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000290 0.020100 0.061000 0.051000 0.120000 +0 0 1 +0.400000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000980 0.018000 0.098000 0.099000 0.099000 +0 0 1 +0.720000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.020800 0.070000 0.076000 0.092000 +0 0 1 +0.720000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.019000 0.125000 0.097000 0.129000 +0 0 1 +0.610000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.016000 0.130000 0.100000 0.130000 +0 0 1 +0.250000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.036000 0.045000 0.162000 0.115000 0.142000 +0 0 1 +0.320000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000700 0.029000 0.090000 0.102000 0.088000 +0 0 1 +0.380000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.015000 0.048000 0.071000 0.067000 +0 0 1 +0.810000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.001900 0.015000 0.071000 0.078000 0.091000 +0 0 1 +0.750000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.020600 0.074000 0.104000 0.070000 +0 0 1 +0.230000 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000050 0.033000 0.232000 0.134000 0.174000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020600 0.131000 0.095000 0.137000 +0 0 1 +0.430000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005500 0.004000 0.047000 0.088000 0.053000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.016000 0.099000 0.087000 0.114000 +0 0 1 +0.380000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.020100 0.099000 0.094000 0.105000 +0 0 1 +0.190000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.048000 0.020100 0.139000 0.116000 0.118000 +0 0 1 +0.500000 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.000030 0.034000 0.131000 0.102000 0.129000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.018000 0.068000 0.079000 0.086000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.165000 0.004000 0.017000 0.119000 0.014000 +1 0 0 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.018000 0.072000 0.104000 0.069000 +0 0 1 +0.420000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.020000 0.068000 0.087000 0.078000 +0 0 1 +0.210000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020000 0.076000 0.103000 0.073000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001900 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.800000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.020100 0.145000 0.113000 0.128000 +0 0 1 +0.210000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020100 0.140000 0.137000 0.102000 +0 0 1 +0.240000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.018000 0.092000 0.102000 0.090000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.150000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.014000 0.103000 0.085000 0.120000 +0 0 1 +0.310000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000470 0.020100 0.092000 0.091000 0.101000 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.103000 0.092000 0.112000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.024000 0.099000 0.121000 0.082000 +0 0 1 +0.250000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000880 0.017000 0.084000 0.077000 0.109000 +0 0 1 +0.500000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020000 0.094000 0.096000 0.098000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.012000 0.017400 0.099000 0.114000 0.087000 +0 1 0 +0.660000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000110 0.026000 0.118000 0.093000 0.127000 +0 0 1 +0.660000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000080 0.010000 0.141000 0.075000 0.188000 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.020100 0.121000 0.138000 0.087000 +0 0 1 +0.450000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.023000 0.138000 0.101000 0.126000 +0 0 1 +0.140000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003800 0.025000 0.080000 0.089000 0.090000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.020100 0.116000 0.173000 0.067000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003800 0.014000 0.098000 0.097000 0.110000 +0 0 1 +0.320000 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0.000500 0.030000 0.167000 0.182000 0.092000 +0 0 1 +0.660000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000730 0.015000 0.097000 0.071000 0.136000 +0 0 1 +0.370000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.024000 0.177000 0.146000 0.122000 +0 0 1 +0.500000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.108000 0.088000 0.123000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.038000 0.014000 0.074000 0.098000 0.076000 +0 1 0 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.020100 0.111000 0.099000 0.112000 +0 0 1 +0.600000 1 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0.000040 0.023000 0.155000 0.070000 0.221000 +0 0 1 +0.450000 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0.001200 0.027000 0.120000 0.113000 0.106000 +0 0 1 +0.710000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.012000 0.061000 0.080000 0.076000 +0 0 1 +0.210000 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.007100 0.029000 0.048000 0.101000 0.048000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.018000 0.094000 0.076000 0.124000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.020100 0.132000 0.113000 0.117000 +0 0 1 +0.470000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.013000 0.092000 0.078000 0.118000 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.018000 0.113290 0.096000 0.117760 +0 0 1 +0.660000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.015000 0.129000 0.102000 0.127000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000620 0.033000 0.130000 0.120000 0.108000 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005100 0.014000 0.117000 0.102000 0.114000 +0 0 1 +0.590000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.076000 0.094000 0.081000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.020800 0.115000 0.090000 0.129000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002700 0.015000 0.076000 0.088000 0.086000 +0 0 1 +0.170000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020100 0.078000 0.076000 0.103000 +0 0 1 +0.380000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.020000 0.078000 0.085000 0.092000 +0 0 1 +0.200000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.020100 0.086000 0.091000 0.095000 +0 0 1 +0.430000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.018000 0.114000 0.092000 0.125000 +0 0 1 +0.640000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.013000 0.119000 0.076000 0.157000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.018000 0.148000 0.125000 0.118000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000380 0.041900 0.179000 0.167000 0.107000 +0 0 1 +0.490000 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0.002320 0.039000 0.240000 0.125000 0.192000 +0 0 1 +0.270000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008200 0.014000 0.060000 0.125000 0.048000 +0 0 1 +0.500000 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0.040000 0.022000 0.075000 0.101000 0.074000 +0 1 0 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.013000 0.106000 0.084000 0.125000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001800 0.020100 0.095000 0.098000 0.097000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000470 0.020100 0.111000 0.084000 0.132000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004100 0.020100 0.056000 0.076000 0.073000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.064000 0.078000 0.082000 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.035000 0.120000 0.122000 0.098000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002320 0.023000 0.102000 0.096000 0.106020 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.003000 0.020800 0.107000 0.116000 0.092000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.096000 0.076000 0.127000 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000200 0.025000 0.124000 0.115000 0.108000 +0 0 1 +0.480000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.082000 0.093000 0.088000 +0 0 1 +0.480000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.178000 0.010000 0.063000 0.108000 0.059000 +1 0 0 +0.590000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000600 0.015000 0.133000 0.119000 0.112000 +0 0 1 +0.700000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.000020 0.017000 0.141000 0.088000 0.160000 +0 0 1 +0.500000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.018000 0.123000 0.097000 0.126000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000480 0.008000 0.062000 0.076000 0.082000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000780 0.025000 0.148000 0.123000 0.120000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001000 0.019000 0.130000 0.121000 0.107000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.046000 0.010000 0.048000 0.098000 0.049000 +1 0 0 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004190 0.028000 0.134000 0.126000 0.107000 +0 0 1 +0.680000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.054000 0.012000 0.019000 0.104000 0.018000 +0 0 1 +0.550000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000990 0.013000 0.093000 0.086000 0.108000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001400 0.024000 0.118000 0.091000 0.130000 +0 0 1 +0.480000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020100 0.081000 0.074000 0.109000 +0 0 1 +0.420000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.125000 0.112000 0.112000 +0 0 1 +0.210000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.023000 0.113290 0.096000 0.117760 +0 0 1 +0.500000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.018000 0.142000 0.099000 0.144000 +0 0 1 +0.520000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.005300 0.011000 0.098000 0.092000 0.107000 +0 0 1 +0.820000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000870 0.020100 0.091000 0.099000 0.092000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.003000 0.070000 0.061000 0.115000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001000 0.020100 0.078000 0.075000 0.104000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020800 0.104000 0.132000 0.079000 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.022000 0.116000 0.104000 0.112000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006200 0.023000 0.118000 0.130000 0.091000 +0 1 0 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020100 0.137000 0.096000 0.143000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004190 0.016000 0.069000 0.099000 0.070000 +0 0 1 +0.360000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001890 0.018000 0.082000 0.099000 0.082660 +0 0 1 +0.680000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.019000 0.108000 0.104000 0.102000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000070 0.034000 0.093000 0.107000 0.087000 +0 0 1 +0.580000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.020000 0.009600 0.060000 0.095000 0.063000 +1 0 0 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.027000 0.138000 0.134000 0.103000 +0 0 1 +0.230000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.038000 0.131000 0.104000 0.125000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020800 0.108000 0.104000 0.105000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.004500 0.017000 0.091000 0.109000 0.084000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.160000 0.004000 0.011000 0.124000 0.008890 +1 0 0 +0.570000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000200 0.020000 0.091000 0.116000 0.077000 +0 0 1 +0.630000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.107000 0.116000 0.091000 +0 0 1 +0.340000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000250 0.067000 0.230000 0.173000 0.133000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000050 0.025000 0.130000 0.086000 0.151000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.017000 0.083000 0.079000 0.105000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020100 0.107000 0.107000 0.100000 +0 0 1 +0.860000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.007000 0.105000 0.071000 0.148000 +0 0 1 +0.650000 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0.001300 0.020800 0.162000 0.119000 0.137000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.400000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007200 0.023000 0.111000 0.099000 0.112000 +0 1 0 +0.580000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.020000 0.107000 0.095000 0.113000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.022000 0.111180 0.099000 0.112070 +0 0 1 +0.650000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000010 0.031000 0.168000 0.098000 0.171000 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.019000 0.094000 0.107000 0.088000 +0 0 1 +0.670000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.024000 0.087000 0.109000 0.080000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.058000 0.009600 0.036000 0.101000 0.036000 +1 0 0 +0.520000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.020100 0.093000 0.088000 0.106000 +0 0 1 +0.790000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.004800 0.007000 0.077000 0.096000 0.080040 +0 0 1 +0.670000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000150 0.016000 0.094000 0.087000 0.108000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.020100 0.106000 0.111000 0.096000 +0 0 1 +0.200000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000480 0.014000 0.120000 0.096000 0.124740 +0 0 1 +0.670000 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.001890 0.020600 0.101000 0.101000 0.100000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.016000 0.086000 0.104000 0.083000 +0 0 1 +0.850000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.008000 0.011000 0.125000 0.089000 0.142000 +0 1 0 +0.240000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000380 0.023000 0.152000 0.096000 0.158000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002300 0.036000 0.148000 0.142000 0.104000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.020000 0.135000 0.121000 0.111000 +0 0 1 +0.580000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020600 0.123000 0.093000 0.132000 +0 0 1 +0.370000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000910 0.020000 0.085000 0.104000 0.081000 +0 0 1 +0.600000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004100 0.007000 0.105000 0.085000 0.124000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001600 0.022000 0.104000 0.099000 0.105000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.018000 0.161000 0.081000 0.199000 +0 0 1 +0.670000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.131000 0.097000 0.135000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0.002500 0.020000 0.128000 0.112000 0.115000 +0 0 1 +0.440000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.009000 0.125000 0.104000 0.119000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.025000 0.101000 0.090000 0.112000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.093000 0.091000 0.102000 +0 0 1 +0.380000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.105000 0.087000 0.121000 +0 0 1 +0.460000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000050 0.022000 0.097000 0.077000 0.125000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020000 0.123000 0.113000 0.109000 +0 0 1 +0.240000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.020000 0.121000 0.081000 0.149000 +0 0 1 +0.610000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.023000 0.143000 0.102000 0.141000 +0 0 1 +0.670000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020100 0.100000 0.087000 0.115000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007000 0.017000 0.116000 0.090000 0.128000 +0 1 0 +0.640000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.145000 0.093000 0.155000 +0 0 1 +0.200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.095000 0.095000 0.100000 +0 0 1 +0.280000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.016000 0.058000 0.113000 0.051000 +0 0 1 +0.220000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.023000 0.127000 0.100000 0.127000 +0 0 1 +0.490000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.002500 0.025000 0.100000 0.103000 0.097000 +0 0 1 +0.370000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000120 0.007000 0.053000 0.096000 0.055090 +0 0 1 +0.770000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.003000 0.026000 0.114000 0.088000 0.130000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.027000 0.025000 0.091000 0.087000 0.105000 +0 1 0 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.020000 0.103000 0.072000 0.143000 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.002320 0.020100 0.064000 0.076000 0.084000 +0 0 1 +0.780000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004500 0.009000 0.069000 0.074000 0.093000 +0 0 1 +0.750000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000020 0.020600 0.150000 0.088000 0.171000 +0 0 1 +0.410000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.030000 0.090000 0.096000 0.094000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.012000 0.107000 0.095000 0.112000 +0 0 1 +0.350000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020000 0.080000 0.108000 0.081000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.470000 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.001200 0.020800 0.105000 0.089000 0.118000 +0 0 1 +0.430000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.023000 0.121000 0.088000 0.137000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.013000 0.111000 0.092000 0.120000 +0 0 1 +0.670000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.019000 0.101000 0.096000 0.105000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000160 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.027000 0.129000 0.110000 0.117000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.015000 0.063000 0.057000 0.111000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004000 0.032000 0.106000 0.087000 0.122000 +0 0 1 +0.720000 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001700 0.020600 0.113000 0.085000 0.132000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.000100 0.031000 0.030000 0.089000 0.034000 +0 0 1 +0.210000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000400 0.034000 0.189000 0.135000 0.140000 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008890 0.012000 0.109000 0.093000 0.117000 +0 1 0 +0.610000 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0.003700 0.024000 0.077000 0.124000 0.062000 +0 0 1 +0.600000 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0.002320 0.026000 0.113290 0.096000 0.117760 +0 0 1 +0.710000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.000030 0.015000 0.104000 0.104000 0.100000 +0 0 1 +0.730000 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0.003200 0.020100 0.121000 0.088000 0.137000 +0 0 1 +0.200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002600 0.033000 0.121000 0.108000 0.112000 +0 0 1 +0.380000 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001500 0.023000 0.116000 0.108000 0.107000 +0 0 1 +0.180000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000980 0.020600 0.158000 0.131000 0.120000 +0 0 1 +0.610000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000410 0.012000 0.116000 0.087000 0.134000 +0 0 1 +0.760000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.058000 0.065000 0.089000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005600 0.020100 0.107000 0.094000 0.114000 +0 0 1 +0.860000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006700 0.016000 0.121000 0.088000 0.138000 +0 1 0 +0.040000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004000 0.012000 0.094000 0.058000 0.162000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.012000 0.015000 0.106000 0.092000 0.115000 +0 1 0 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.024000 0.150000 0.096000 0.155000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006900 0.015000 0.091000 0.095000 0.096000 +0 1 0 +0.610000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.020100 0.155000 0.133000 0.117000 +0 0 1 +0.260000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.015000 0.090000 0.090000 0.100000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.011000 0.122000 0.113000 0.108000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.023000 0.119000 0.099000 0.120000 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.093000 0.095000 0.098000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.026000 0.131000 0.116000 0.111000 +0 0 1 +0.680000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000970 0.013000 0.085000 0.087000 0.098000 +0 0 1 +0.590000 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0.000580 0.019000 0.143000 0.096000 0.148640 +0 0 1 +0.600000 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.030500 0.010000 0.032000 0.063000 0.051000 +1 0 0 +0.520000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.009200 0.022000 0.072000 0.108000 0.066000 +0 1 0 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020100 0.149000 0.104000 0.140000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020000 0.093000 0.091000 0.102000 +0 0 1 +0.420000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000970 0.027000 0.069000 0.052000 0.133000 +0 0 1 +0.210000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.031000 0.164000 0.081000 0.201000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008890 0.017000 0.119000 0.119000 0.100000 +0 1 0 +0.210000 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.023000 0.060000 0.098000 0.061000 +0 0 1 +0.160000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.030000 0.012000 0.030000 0.145000 0.021000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000150 0.043000 0.144000 0.162000 0.089000 +0 0 1 +0.580000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.024000 0.102000 0.077000 0.134000 +0 0 1 +0.730000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.015000 0.102000 0.087000 0.117000 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.009000 0.057000 0.061000 0.093000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.016000 0.017000 0.107000 0.135000 0.079000 +0 1 0 +0.600000 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.069000 0.132000 0.096000 0.137210 +0 0 1 +0.280000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.090000 0.111000 0.081000 +0 0 1 +0.710000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003600 0.017000 0.089000 0.104000 0.086000 +0 0 1 +0.490000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.020000 0.155000 0.101000 0.154000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000360 0.004000 0.082000 0.058000 0.140000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.020100 0.106000 0.093000 0.114000 +0 0 1 +0.520000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020100 0.110000 0.081000 0.137000 +0 0 1 +0.420000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006800 0.012000 0.044000 0.087000 0.051000 +1 0 0 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.024000 0.090000 0.092000 0.098000 +0 0 1 +0.640000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.000380 0.020100 0.100000 0.084000 0.119000 +0 0 1 +0.300000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.017000 0.106000 0.092000 0.115000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.360000 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0.000020 0.029000 0.194000 0.163000 0.119000 +0 0 1 +0.440000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.020100 0.097000 0.104000 0.092000 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002400 0.027000 0.080000 0.094000 0.085000 +0 0 1 +0.840000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.000900 0.017000 0.099000 0.079000 0.125000 +0 0 1 +0.330000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.024000 0.120000 0.098000 0.123000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.025000 0.118000 0.121000 0.098000 +0 0 1 +0.190000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.028000 0.131000 0.095000 0.138000 +0 0 1 +0.810000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003900 0.018000 0.131000 0.098000 0.133000 +0 0 1 +0.280000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002080 0.026000 0.121000 0.094000 0.130000 +0 0 1 +0.430000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.025000 0.070000 0.093000 0.075000 +0 0 1 +0.540000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.020600 0.101000 0.064000 0.158000 +0 0 1 +0.760000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000640 0.014000 0.101000 0.084000 0.120000 +0 0 1 +0.410000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.023000 0.190000 0.107000 0.177000 +0 0 1 +0.590000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.004000 0.013000 0.120000 0.094000 0.128000 +0 0 1 +0.370000 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0.000570 0.026000 0.159000 0.139000 0.114000 +0 0 1 +0.650000 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0.000030 0.019000 0.151000 0.089000 0.169000 +0 0 1 +0.900000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.020100 0.087000 0.084000 0.103000 +0 0 1 +0.650000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.018000 0.107000 0.110000 0.098000 +0 0 1 +0.710000 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0.000030 0.038000 0.171000 0.113000 0.151000 +0 0 1 +0.440000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004600 0.020100 0.069000 0.090000 0.077000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000380 0.011000 0.128000 0.080000 0.160000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.020000 0.122000 0.110000 0.111000 +0 0 1 +0.790000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.010000 0.020100 0.125000 0.099000 0.127000 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.023000 0.098000 0.107000 0.092000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.170000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000800 0.034000 0.046000 0.099000 0.046370 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000940 0.026000 0.115000 0.111000 0.104000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000790 0.012000 0.117000 0.085000 0.138000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.016000 0.080000 0.099000 0.081000 +0 0 1 +0.760000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.001300 0.024000 0.097000 0.099000 0.098000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.022000 0.139000 0.102000 0.136000 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005500 0.020100 0.141000 0.104000 0.133000 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000580 0.025000 0.089000 0.099000 0.089000 +0 0 1 +0.010000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.019000 0.121000 0.104000 0.116000 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.016000 0.106000 0.140000 0.076000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.018000 0.107000 0.104000 0.101000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.250000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.026000 0.120000 0.124000 0.096000 +0 0 1 +0.610000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020100 0.069000 0.081000 0.085000 +0 0 1 +0.500000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000080 0.020100 0.182000 0.131000 0.140000 +0 0 1 +0.480000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.031000 0.096000 0.092000 0.104000 +0 0 1 +0.570000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000620 0.020100 0.165000 0.099000 0.167000 +0 0 1 +0.130000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.380000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.018000 0.099000 0.096000 0.102910 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.020600 0.117000 0.111000 0.105000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000690 0.016000 0.089000 0.096000 0.093000 +0 0 1 +0.830000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.011000 0.095000 0.073000 0.129000 +0 0 1 +0.490000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020600 0.124000 0.115000 0.108000 +0 0 1 +0.490000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.020800 0.079000 0.087000 0.091000 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.018000 0.083000 0.119000 0.069000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006600 0.013000 0.146000 0.104000 0.137000 +0 1 0 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.025000 0.009600 0.033000 0.096000 0.034000 +1 0 0 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001600 0.018000 0.107000 0.111000 0.097000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.022000 0.023000 0.197000 0.092000 0.213000 +0 0 1 +0.340000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020100 0.141000 0.098000 0.145000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000120 0.014000 0.091000 0.081000 0.112000 +0 0 1 +0.790000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.017000 0.112000 0.096000 0.117000 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.004500 0.020000 0.139000 0.086000 0.161000 +0 0 1 +0.490000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.015000 0.101000 0.111000 0.092000 +0 0 1 +0.460000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.015000 0.097000 0.094000 0.104000 +0 0 1 +0.870000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.016000 0.134000 0.079000 0.170000 +0 0 1 +0.740000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.006300 0.012000 0.080000 0.092000 0.087000 +0 0 1 +0.720000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.018000 0.093000 0.079000 0.117000 +0 0 1 +0.720000 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000410 0.019000 0.108000 0.072000 0.150000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.019000 0.083000 0.089000 0.093000 +0 0 1 +0.290000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020800 0.081000 0.092000 0.088000 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001400 0.010000 0.099000 0.070000 0.142000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000250 0.008000 0.078000 0.075000 0.104000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006200 0.005000 0.130000 0.085000 0.153000 +0 1 0 +0.430000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.015000 0.076000 0.081000 0.093000 +0 0 1 +0.480000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001600 0.010000 0.071000 0.081000 0.088000 +0 0 1 +0.840000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001400 0.025000 0.134000 0.112000 0.120000 +0 0 1 +0.250000 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0.001890 0.022000 0.113000 0.108000 0.105000 +0 0 1 +0.590000 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.015000 0.014000 0.155000 0.104000 0.148000 +0 0 1 +0.720000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001300 0.010000 0.101000 0.080000 0.127000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.014000 0.062000 0.072000 0.085000 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.023000 0.106000 0.104000 0.100000 +0 0 1 +0.660000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.004500 0.013000 0.089000 0.073000 0.121000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000430 0.041000 0.123000 0.148000 0.083000 +0 0 1 +0.650000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.019000 0.139000 0.084000 0.165000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.025000 0.101000 0.104000 0.097000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.002320 0.024000 0.182000 0.101000 0.180000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000270 0.016000 0.104000 0.078000 0.134000 +0 0 1 +0.430000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.022000 0.093000 0.116000 0.080000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.007000 0.082000 0.088000 0.093000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003900 0.010000 0.090000 0.077000 0.117000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.550000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000670 0.018000 0.120000 0.088000 0.136000 +0 0 1 +0.510000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001800 0.020100 0.104000 0.104000 0.098000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.022000 0.134000 0.097000 0.138000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000700 0.022000 0.104000 0.102000 0.102000 +0 0 1 +0.710000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.022000 0.093000 0.087000 0.107000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000080 0.020600 0.133000 0.084000 0.158000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002080 0.031000 0.153000 0.160000 0.096000 +0 0 1 +0.600000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.400000 0.005000 0.011000 0.119000 0.009090 +1 0 0 +0.370000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.012000 0.017400 0.068000 0.062000 0.111000 +0 1 0 +0.450000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.020000 0.071000 0.093000 0.076000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001400 0.014000 0.116000 0.095000 0.123000 +0 0 1 +0.070000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.015000 0.017400 0.137000 0.103000 0.133000 +0 1 0 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003800 0.016000 0.106000 0.088000 0.120000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000500 0.020600 0.090000 0.109000 0.083000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.020100 0.090000 0.093000 0.097000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005500 0.020800 0.082000 0.092000 0.089000 +0 0 1 +0.220000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.023000 0.111000 0.102000 0.108000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001600 0.018000 0.099000 0.104000 0.094000 +0 0 1 +0.340000 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.002500 0.023000 0.113000 0.104000 0.107000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001100 0.014000 0.036000 0.086000 0.042000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.014000 0.075000 0.074000 0.101000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.030000 0.143000 0.133000 0.108000 +0 0 1 +0.300000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000080 0.019000 0.147000 0.103000 0.143000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.023000 0.112000 0.108000 0.104000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.028000 0.118000 0.097000 0.122000 +0 0 1 +0.540000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.016000 0.015000 0.060000 0.078000 0.077000 +0 1 0 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007500 0.017000 0.076000 0.095000 0.080000 +0 1 0 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.011000 0.091000 0.079000 0.115000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.020600 0.230000 0.104000 0.217000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002000 0.026000 0.108000 0.096000 0.113000 +0 0 1 +0.410000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.013000 0.095000 0.079000 0.120000 +0 0 1 +0.700000 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002900 0.011000 0.094000 0.062000 0.152000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.016000 0.116000 0.104000 0.111000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.018000 0.095000 0.090000 0.106000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.020100 0.113000 0.097000 0.117000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007200 0.016000 0.085000 0.091000 0.093000 +0 1 0 +0.040000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000070 0.032000 0.246000 0.104000 0.232000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.015000 0.103000 0.107000 0.096000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.010000 0.120000 0.056000 0.213000 +0 0 1 +0.560000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000380 0.020600 0.105000 0.090000 0.116000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.320000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000350 0.017000 0.097000 0.086000 0.113000 +0 0 1 +0.740000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.002900 0.020100 0.110000 0.104000 0.103000 +0 0 1 +0.430000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001600 0.020100 0.134000 0.086000 0.156000 +0 0 1 +0.970000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.018000 0.093000 0.089000 0.104000 +0 0 1 +0.330000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.008200 0.015000 0.074000 0.090000 0.083000 +0 0 1 +0.590000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.018000 0.147000 0.111000 0.132000 +0 0 1 +0.020000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000050 0.076000 0.257000 0.096000 0.268000 +0 0 1 +0.430000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.086000 0.104000 0.083000 +0 0 1 +0.710000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.014000 0.116000 0.096000 0.121000 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.017000 0.138000 0.115000 0.125000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004300 0.025000 0.089000 0.095000 0.094000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.009390 0.014000 0.077000 0.089000 0.087000 +0 1 0 +0.490000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020100 0.097000 0.071000 0.137000 +0 0 1 +0.820000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.014000 0.074000 0.052000 0.143000 +0 0 1 +0.560000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.008200 0.020000 0.066000 0.094000 0.070000 +0 1 0 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.019000 0.124000 0.108000 0.115000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.020800 0.079000 0.089000 0.090000 +0 0 1 +0.630000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000750 0.014000 0.112000 0.086000 0.130000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000230 0.034000 0.183000 0.098000 0.186000 +0 0 1 +0.710000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.015000 0.139000 0.103000 0.135000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.011000 0.023000 0.091000 0.096000 0.095000 +0 1 0 +0.460000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.023000 0.090000 0.087000 0.103000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.022000 0.111180 0.099000 0.112070 +0 0 1 +0.010000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.016000 0.027000 0.150000 0.109000 0.138000 +0 1 0 +0.620000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.011000 0.008000 0.073000 0.074000 0.098000 +0 1 0 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.018000 0.112000 0.089000 0.126000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.023000 0.135000 0.098000 0.138000 +0 0 1 +0.660000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000160 0.020100 0.140000 0.074000 0.189000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.019000 0.079000 0.107000 0.074000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020100 0.080000 0.088000 0.091000 +0 0 1 +0.490000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000760 0.008000 0.096000 0.086000 0.111000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.023000 0.092000 0.095000 0.097000 +0 0 1 +0.840000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.011000 0.129000 0.086000 0.150000 +0 0 1 +0.390000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001600 0.012000 0.095000 0.093000 0.102000 +0 0 1 +0.530000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001000 0.020100 0.101000 0.102000 0.099000 +0 0 1 +0.360000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000070 0.041000 0.153000 0.086000 0.178000 +0 0 1 +0.400000 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001100 0.028000 0.107000 0.109000 0.099000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.010000 0.015000 0.100000 0.087000 0.115000 +0 1 0 +0.780000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.008000 0.108000 0.081000 0.133000 +0 0 1 +0.200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020100 0.173000 0.132000 0.131000 +0 0 1 +0.580000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000520 0.020100 0.116000 0.098000 0.118000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.067000 0.090000 0.075000 +0 0 1 +0.640000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000980 0.015000 0.106000 0.087000 0.122000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.108000 0.099000 0.110000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000130 0.018000 0.118000 0.091000 0.130000 +0 0 1 +0.650000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007200 0.017000 0.081000 0.090000 0.090000 +0 1 0 +0.730000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000390 0.020600 0.104000 0.097000 0.107000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000670 0.020100 0.118000 0.122000 0.097000 +0 0 1 +0.250000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000060 0.027000 0.159000 0.092000 0.173000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000560 0.027000 0.179000 0.125000 0.143000 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020100 0.074000 0.073000 0.101000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000410 0.020100 0.096000 0.087000 0.110000 +0 0 1 +0.490000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.020100 0.193000 0.104000 0.184000 +0 0 1 +0.450000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.019000 0.083000 0.067000 0.124000 +0 0 1 +0.320000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000010 0.023000 0.147000 0.075000 0.198000 +0 0 1 +0.410000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000060 0.020100 0.159000 0.094000 0.169000 +0 0 1 +0.500000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003700 0.020100 0.118000 0.099000 0.119000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.022000 0.085000 0.113000 0.075000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.018000 0.102000 0.100000 0.102000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.440000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.014000 0.027000 0.063000 0.116000 0.054000 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.098000 0.019000 0.029000 0.111000 0.026000 +1 0 0 +0.510000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020600 0.160000 0.109000 0.147000 +0 0 1 +0.400000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0.001300 0.026000 0.135000 0.109000 0.124000 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.210000 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0.001300 0.019000 0.112000 0.104000 0.106000 +0 0 1 +0.170000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001000 0.015000 0.103000 0.088000 0.117000 +0 0 1 +0.660000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.003800 0.020800 0.079000 0.107000 0.074000 +0 0 1 +0.670000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.020600 0.124000 0.104000 0.119000 +0 0 1 +0.210000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.018000 0.163000 0.104000 0.155000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001700 0.020100 0.118000 0.111000 0.106000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000770 0.015000 0.141000 0.104000 0.134000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.019000 0.123000 0.116000 0.106000 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000930 0.020800 0.092000 0.085000 0.109000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020800 0.122000 0.114000 0.107000 +0 0 1 +0.810000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004300 0.004000 0.106000 0.068000 0.156000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.023000 0.138000 0.124000 0.111000 +0 0 1 +0.320000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.017000 0.101000 0.080000 0.126000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.027000 0.166000 0.149000 0.111000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.022000 0.142000 0.131000 0.108000 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000400 0.011000 0.132000 0.093000 0.142000 +0 0 1 +0.700000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.830000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000830 0.020100 0.125000 0.094000 0.133000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004400 0.015000 0.123000 0.096000 0.127850 +0 0 1 +0.470000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.012000 0.072000 0.082000 0.088000 +0 0 1 +0.210000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001500 0.020800 0.130000 0.104000 0.124000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.003300 0.020100 0.115000 0.133000 0.086000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000870 0.019000 0.120000 0.096000 0.125000 +0 0 1 +0.350000 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0.001100 0.028000 0.127000 0.158000 0.080000 +0 0 1 +0.210000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.016000 0.063000 0.085000 0.074000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020100 0.093000 0.103000 0.090000 +0 0 1 +0.570000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020800 0.093000 0.084000 0.111000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000850 0.020600 0.131000 0.091000 0.144000 +0 0 1 +0.200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000080 0.020100 0.179000 0.098000 0.183000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.006200 0.017400 0.086000 0.090000 0.095000 +0 1 0 +0.680000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.014000 0.085000 0.093000 0.091000 +0 0 1 +0.480000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.034000 0.219000 0.151000 0.145000 +0 0 1 +0.440000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.019000 0.099000 0.072000 0.139000 +0 0 1 +0.450000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000020 0.041900 0.183000 0.078000 0.235000 +0 0 1 +0.250000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001500 0.018000 0.093000 0.099000 0.094000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005400 0.020100 0.088000 0.101000 0.087000 +0 0 1 +0.320000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000960 0.020600 0.122000 0.107000 0.114000 +0 0 1 +0.190000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.020000 0.147000 0.090000 0.163000 +0 0 1 +0.570000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000510 0.019000 0.136000 0.076000 0.180000 +0 0 1 +0.520000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000900 0.020000 0.101000 0.108000 0.094000 +0 0 1 +0.610000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.063000 0.071000 0.089000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.022000 0.152000 0.078000 0.196000 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.000020 0.020100 0.127000 0.095000 0.134000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020100 0.113000 0.083000 0.136000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.015000 0.073000 0.082000 0.089000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.062000 0.113290 0.096000 0.117760 +0 0 1 +0.150000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.073000 0.087000 0.084000 +0 0 1 +0.400000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001600 0.020100 0.155000 0.093000 0.166000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.017000 0.130000 0.120000 0.109000 +0 0 1 +0.150000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000680 0.020100 0.082000 0.095000 0.086000 +0 0 1 +0.150000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.018000 0.015000 0.098000 0.088000 0.112000 +0 1 0 +0.800000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.013000 0.093000 0.086000 0.108000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.020000 0.073000 0.074000 0.099000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002320 0.020100 0.098000 0.100000 0.098000 +0 0 1 +0.650000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.014000 0.097000 0.082000 0.118000 +0 0 1 +0.640000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.020100 0.130000 0.087000 0.149000 +0 0 1 +0.450000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.000060 0.046000 0.210000 0.111000 0.190000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.016000 0.126000 0.093000 0.135000 +0 0 1 +0.670000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007600 0.017000 0.107000 0.102000 0.105000 +0 1 0 +0.400000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000810 0.020100 0.107000 0.100000 0.108000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.020100 0.094000 0.092000 0.102000 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.014000 0.019000 0.094000 0.086000 0.109000 +0 1 0 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.018000 0.162000 0.099000 0.164000 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.090000 0.092000 0.098000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.030000 0.125000 0.074000 0.169000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.002000 0.099000 0.072000 0.138000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000010 0.015000 0.160000 0.087000 0.185000 +0 0 1 +0.520000 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0.000040 0.019000 0.086000 0.077000 0.112000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.025000 0.121000 0.129000 0.094000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000820 0.017000 0.073000 0.087000 0.084000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000570 0.020100 0.088000 0.094000 0.094000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.013000 0.009600 0.075000 0.135000 0.055000 +1 0 0 +0.500000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020000 0.097000 0.088000 0.110000 +0 0 1 +0.830000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000360 0.019000 0.096000 0.094000 0.102000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020100 0.114000 0.101000 0.113000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.025000 0.135000 0.102000 0.132000 +0 0 1 +0.180000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000330 0.020100 0.154000 0.086000 0.179000 +0 0 1 +0.690000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.017000 0.118000 0.091000 0.130000 +0 0 1 +0.460000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001100 0.018000 0.103000 0.087000 0.118000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000170 0.012000 0.075000 0.088000 0.085000 +0 0 1 +0.490000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.091000 0.088000 0.103000 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.035000 0.020800 0.077000 0.110000 0.070000 +0 1 0 +0.610000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000850 0.023000 0.066000 0.107000 0.062000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001500 0.020100 0.137000 0.082000 0.167000 +0 0 1 +0.500000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.025000 0.133000 0.108000 0.123000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.026000 0.138000 0.158000 0.088000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005500 0.013000 0.128000 0.104000 0.121000 +0 0 1 +0.190000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005700 0.019000 0.104000 0.110000 0.094000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.003900 0.020800 0.130000 0.111000 0.116000 +0 0 1 +0.200000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.000150 0.025000 0.093000 0.100000 0.093000 +0 0 1 +0.620000 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0.000660 0.020800 0.150000 0.119000 0.126000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.001000 0.020100 0.101000 0.083000 0.121000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000070 0.038000 0.148000 0.096000 0.153840 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000300 0.020000 0.093000 0.099000 0.093000 +0 0 1 +0.820000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.004000 0.058000 0.068000 0.085000 +0 0 1 +0.860000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.007000 0.097000 0.085000 0.114000 +0 0 1 +0.610000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.020800 0.128000 0.094000 0.136000 +0 0 1 +0.620000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000540 0.020600 0.085000 0.094000 0.091000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.020100 0.099000 0.101000 0.098000 +0 0 1 +0.490000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.018000 0.128000 0.100000 0.128000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.610000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.029000 0.015000 0.061000 0.096000 0.064000 +1 0 0 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.026000 0.122000 0.116000 0.105000 +0 0 1 +0.830000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003500 0.018000 0.131000 0.122000 0.107000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.019000 0.039000 0.146000 0.116000 0.125000 +0 1 0 +0.530000 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.001100 0.019000 0.076000 0.067000 0.113000 +0 0 1 +0.380000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.078000 0.087000 0.090000 +0 0 1 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000910 0.020800 0.066000 0.066000 0.099000 +0 0 1 +0.420000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.052000 0.008000 0.028000 0.086000 0.033000 +1 0 0 +0.450000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020600 0.101000 0.095000 0.106000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005900 0.020100 0.123000 0.102000 0.121000 +0 0 1 +0.590000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.018000 0.106000 0.116000 0.091000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0.001890 0.018000 0.111000 0.096000 0.115000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.020100 0.088000 0.074000 0.120000 +0 0 1 +0.210000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000680 0.017000 0.094000 0.096000 0.097710 +0 0 1 +0.410000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008000 0.015000 0.072000 0.095000 0.075310 +0 1 0 +0.240000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.020100 0.146000 0.178000 0.082000 +0 0 1 +0.830000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001800 0.024000 0.100000 0.102000 0.098000 +0 0 1 +0.830000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.009000 0.056000 0.067000 0.084000 +0 0 1 +0.700000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.015000 0.070000 0.077000 0.091000 +0 0 1 +0.510000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.025000 0.106000 0.081000 0.130000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.440000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.027000 0.101000 0.110000 0.092000 +0 0 1 +0.380000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000670 0.019000 0.092000 0.076000 0.121000 +0 0 1 +0.760000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.014000 0.111000 0.078000 0.142000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001200 0.017000 0.076000 0.078000 0.097000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.008000 0.084000 0.082000 0.102000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.014000 0.084000 0.096000 0.088000 +0 0 1 +0.260000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005700 0.020800 0.073000 0.074000 0.098000 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020100 0.087000 0.095000 0.092000 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001300 0.020100 0.098000 0.084000 0.117000 +0 0 1 +0.630000 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000020 0.016000 0.183000 0.103000 0.178000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.011000 0.112000 0.082000 0.137000 +0 0 1 +0.540000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000900 0.020600 0.113000 0.090000 0.125000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.023000 0.065000 0.087000 0.075000 +0 0 1 +0.530000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000600 0.026000 0.136000 0.119000 0.114000 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.002080 0.019000 0.142000 0.161000 0.088000 +0 0 1 +0.350000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002500 0.018000 0.077000 0.096000 0.080040 +0 0 1 +0.860000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001200 0.012000 0.128000 0.094000 0.137000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004690 0.020600 0.111000 0.100000 0.112000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.015000 0.020800 0.083000 0.124000 0.067000 +0 1 0 +0.200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000700 0.054000 0.148000 0.148000 0.100000 +0 0 1 +0.150000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.018000 0.121000 0.125000 0.097000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.019000 0.111000 0.099000 0.112000 +0 0 1 +0.590000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.020100 0.157000 0.104000 0.150000 +0 0 1 +0.720000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004600 0.020100 0.106000 0.095000 0.112000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.020000 0.101000 0.120000 0.084000 +0 0 1 +0.700000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001800 0.015000 0.070000 0.086000 0.081000 +0 0 1 +0.690000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.020000 0.126000 0.102000 0.124000 +0 0 1 +0.740000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000370 0.020100 0.131000 0.084000 0.156000 +0 0 1 +0.800000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004100 0.007000 0.131000 0.074000 0.177000 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.020800 0.097000 0.099000 0.097780 +0 0 1 +0.420000 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0.006700 0.016000 0.086000 0.084000 0.102000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003900 0.012000 0.107000 0.086000 0.122000 +0 0 1 +0.220000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.114000 0.088000 0.130000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.020100 0.112000 0.104000 0.106000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000540 0.017000 0.090000 0.083000 0.109000 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000620 0.024000 0.118000 0.112000 0.106000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.023000 0.133000 0.110000 0.121000 +0 0 1 +0.440000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001010 0.018000 0.109000 0.100000 0.109000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020800 0.132000 0.092000 0.143000 +0 0 1 +0.630000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007400 0.020000 0.120000 0.102000 0.117000 +0 1 0 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000130 0.010000 0.102000 0.082000 0.124000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.031000 0.169000 0.121000 0.140000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000930 0.020100 0.114000 0.102000 0.112000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005700 0.022000 0.108000 0.115000 0.094000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004800 0.025000 0.066000 0.089000 0.075000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.020800 0.127000 0.124000 0.102000 +0 0 1 +0.720000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.108000 0.102000 0.106000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.011000 0.104000 0.104000 0.099000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.018000 0.095000 0.109000 0.087000 +0 0 1 +0.680000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.016000 0.083000 0.089000 0.093000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.022000 0.077000 0.078000 0.100000 +0 0 1 +0.770000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020100 0.047000 0.068000 0.069000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.189000 0.177000 0.107000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001700 0.020800 0.142000 0.128000 0.111000 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.023000 0.099000 0.104000 0.095000 +0 0 1 +0.600000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001900 0.020100 0.126000 0.116000 0.109000 +0 0 1 +0.170000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.145000 0.012000 0.036000 0.150000 0.024000 +0 0 1 +0.380000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.053000 0.116000 0.097000 0.119000 +0 0 1 +0.330000 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001700 0.026000 0.089000 0.060000 0.148000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000900 0.020100 0.089000 0.096000 0.092000 +0 0 1 +0.310000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.022000 0.012000 0.146000 0.121000 0.121000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.017000 0.111000 0.102000 0.108000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020100 0.163000 0.126000 0.130000 +0 0 1 +0.700000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.001200 0.020600 0.109000 0.108000 0.100000 +0 0 1 +0.190000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004500 0.013000 0.062000 0.074000 0.084000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.020800 0.139000 0.100000 0.139000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004190 0.024000 0.102000 0.102000 0.100000 +0 0 1 +0.330000 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.001800 0.024000 0.120000 0.099000 0.121000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.020000 0.092000 0.103000 0.089000 +0 0 1 +0.470000 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.001100 0.020800 0.061000 0.089000 0.069000 +0 0 1 +0.250000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.019000 0.063000 0.081000 0.078000 +0 0 1 +0.490000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000430 0.015000 0.168000 0.111000 0.151000 +0 0 1 +0.250000 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0.001800 0.020100 0.180000 0.189000 0.095000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.019000 0.125000 0.101000 0.124000 +0 0 1 +0.260000 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0.000200 0.039000 0.122000 0.128000 0.096000 +0 0 1 +0.260000 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.002320 0.018000 0.113290 0.096000 0.117760 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000060 0.019000 0.123000 0.074000 0.166000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.020100 0.176000 0.093000 0.189000 +0 0 1 +0.180000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.478000 0.009600 0.045000 0.130000 0.034000 +1 0 0 +0.590000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000680 0.012000 0.023000 0.017000 0.136000 +0 0 1 +0.640000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.001300 0.026000 0.118000 0.111000 0.106000 +0 0 1 +0.680000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.002600 0.018000 0.104000 0.110000 0.095000 +0 0 1 +0.470000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.015000 0.091000 0.092000 0.099000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000060 0.180000 0.430000 0.067000 0.642000 +0 0 1 +0.140000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.100000 0.109000 0.091000 +0 0 1 +0.520000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004500 0.020600 0.075000 0.084000 0.089000 +0 0 1 +0.830000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.008290 0.020800 0.104000 0.104000 0.097000 +0 1 0 +0.540000 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0.000080 0.020100 0.184000 0.109000 0.169000 +0 0 1 +0.640000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000780 0.020600 0.106000 0.088000 0.121000 +0 0 1 +0.720000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000740 0.010000 0.082000 0.086000 0.095000 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.018000 0.084000 0.124000 0.068000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000150 0.008000 0.090000 0.077000 0.117000 +0 0 1 +0.480000 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.000210 0.038000 0.168000 0.098000 0.171000 +0 0 1 +0.570000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.002080 0.025000 0.134000 0.094000 0.142000 +0 0 1 +0.770000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.012000 0.146000 0.093000 0.157000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000680 0.014000 0.092000 0.081000 0.114000 +0 0 1 +0.570000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000570 0.027000 0.189000 0.135000 0.140000 +0 0 1 +0.190000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.018000 0.082000 0.099000 0.082660 +0 0 1 +0.880000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.020600 0.078000 0.078000 0.100000 +0 0 1 +0.170000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.020600 0.117000 0.092000 0.126000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.024000 0.118000 0.088000 0.135000 +0 0 1 +0.710000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000110 0.020100 0.105000 0.074000 0.143000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.017000 0.111000 0.094000 0.118000 +0 0 1 +0.180000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.009590 0.024000 0.220000 0.168000 0.131000 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000930 0.013000 0.090000 0.104000 0.086000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.022000 0.089000 0.099000 0.089710 +0 0 1 +0.590000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.043000 0.081000 0.053000 +0 0 1 +0.530000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.003800 0.025000 0.105000 0.104000 0.101000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.026000 0.089000 0.098000 0.091000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002900 0.020100 0.133000 0.097000 0.137000 +0 0 1 +0.490000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000860 0.027000 0.094000 0.099000 0.094750 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.016000 0.109000 0.093000 0.117000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.026000 0.162000 0.121000 0.134000 +0 0 1 +0.770000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.004000 0.099000 0.080000 0.124000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000740 0.020100 0.097000 0.101000 0.096000 +0 0 1 +0.420000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.027000 0.172000 0.101000 0.172000 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.015000 0.113000 0.097000 0.117000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.011000 0.010000 0.099000 0.092000 0.108000 +0 1 0 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004600 0.009000 0.105000 0.072000 0.145000 +0 0 1 +0.180000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.019000 0.083000 0.108000 0.077000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000520 0.020600 0.096000 0.069000 0.140000 +0 0 1 +0.560000 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.098000 0.086000 0.115000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004900 0.020100 0.077000 0.082000 0.094000 +0 0 1 +0.190000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.164000 0.009600 0.065000 0.159000 0.041000 +1 0 0 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.027000 0.119000 0.136000 0.088000 +0 0 1 +0.500000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.020800 0.105000 0.102000 0.100000 +0 0 1 +0.120000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002400 0.020600 0.166000 0.120000 0.138000 +0 0 1 +0.210000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000760 0.011000 0.104000 0.113000 0.092000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002000 0.016000 0.104000 0.107000 0.097000 +0 0 1 +0.470000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.017000 0.066000 0.075000 0.088000 +0 0 1 +0.280000 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.000150 0.019000 0.075000 0.112000 0.067000 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.060000 0.007000 0.014000 0.111000 0.013000 +1 0 0 +0.670000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.020000 0.101000 0.081000 0.124000 +0 0 1 +0.640000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.007000 0.091000 0.083000 0.110000 +0 0 1 +0.230000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.020100 0.136000 0.067000 0.203000 +0 0 1 +0.200000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020100 0.133000 0.100000 0.133000 +0 0 1 +0.200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.101000 0.108000 0.094000 +0 0 1 +0.760000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.020800 0.098000 0.101000 0.097000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.013000 0.119000 0.111000 0.107000 +0 0 1 +0.470000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.004690 0.024000 0.102000 0.112000 0.092000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.020100 0.100000 0.104000 0.094000 +0 0 1 +0.720000 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0.006000 0.024000 0.118000 0.126000 0.094000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.020000 0.113000 0.103000 0.110000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.024000 0.017000 0.074000 0.084000 0.088000 +0 1 0 +0.150000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020600 0.102000 0.097000 0.105000 +0 0 1 +0.400000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.024000 0.105000 0.116000 0.088000 +0 0 1 +0.670000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.106000 0.092000 0.115000 +0 0 1 +0.460000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000880 0.007000 0.082000 0.099000 0.082660 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.009590 0.048000 0.168000 0.028000 0.612000 +0 0 1 +0.290000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.880000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000490 0.009000 0.110000 0.087000 0.126000 +0 0 1 +0.120000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.027000 0.093000 0.099000 0.093750 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.007000 0.050000 0.025000 0.205000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.018000 0.137000 0.098000 0.140000 +0 0 1 +0.340000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.017000 0.117000 0.074000 0.158000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.047000 0.011000 0.052000 0.090000 0.058000 +1 0 0 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.003000 0.079000 0.080000 0.098000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.015000 0.022000 0.098000 0.129000 0.076000 +0 1 0 +0.580000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020600 0.088000 0.081000 0.109000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.017000 0.016000 0.066000 0.100000 0.065000 +0 1 0 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.013000 0.106000 0.088000 0.120000 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.018000 0.095000 0.095000 0.101000 +0 0 1 +0.410000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.020000 0.122000 0.094000 0.122000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.025000 0.075000 0.096000 0.077960 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.010000 0.061000 0.077000 0.080000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.022000 0.098000 0.103000 0.096000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.001000 0.065000 0.048000 0.137000 +0 0 1 +0.810000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000670 0.020100 0.112000 0.095000 0.118000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.060000 0.003000 0.013000 0.099000 0.013000 +1 0 0 +0.490000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.025000 0.109000 0.108000 0.100000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.014000 0.013000 0.077000 0.094000 0.082000 +0 1 0 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004400 0.026000 0.098000 0.093000 0.105000 +0 0 1 +0.720000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.085000 0.006000 0.022000 0.111000 0.020000 +1 0 0 +0.420000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020000 0.057000 0.041000 0.140000 +0 0 1 +0.290000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001200 0.023000 0.099000 0.096000 0.104000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.001400 0.020100 0.148000 0.107000 0.138000 +0 0 1 +0.250000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.020600 0.075000 0.087000 0.086000 +0 0 1 +0.470000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000010 0.041900 0.214000 0.145000 0.148000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.017000 0.081000 0.099000 0.081650 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005800 0.020000 0.102000 0.116000 0.089000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.076000 0.236000 0.091000 0.259000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.022000 0.083000 0.104000 0.079000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.003000 0.020600 0.115000 0.107000 0.107000 +0 0 1 +0.280000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020800 0.135000 0.092000 0.147000 +0 0 1 +0.590000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.025000 0.096000 0.091000 0.105000 +0 0 1 +0.610000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.005900 0.020000 0.082000 0.096000 0.085230 +0 0 1 +0.450000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.020000 0.133000 0.098000 0.136000 +0 0 1 +0.760000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000800 0.011000 0.094000 0.093000 0.101000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.018000 0.167000 0.088000 0.189000 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.024000 0.115000 0.121000 0.095000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.016000 0.103000 0.073000 0.142000 +0 0 1 +0.290000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000680 0.020100 0.164000 0.110000 0.149000 +0 0 1 +0.250000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002080 0.020100 0.117000 0.088000 0.133000 +0 0 1 +0.370000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000700 0.020800 0.098000 0.099000 0.100000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000970 0.020600 0.094000 0.097000 0.097000 +0 0 1 +0.150000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.023000 0.120000 0.109000 0.110000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001400 0.023000 0.111000 0.097000 0.115000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001800 0.020100 0.121000 0.099000 0.122000 +0 0 1 +0.740000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.020000 0.113000 0.097000 0.116000 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.020600 0.129000 0.019000 0.142000 +0 0 1 +0.730000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000030 0.017000 0.127000 0.089000 0.143000 +0 0 1 +0.850000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.023000 0.120000 0.096000 0.126000 +0 0 1 +0.720000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.022000 0.087000 0.116000 0.074000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001200 0.025000 0.114000 0.109000 0.104000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.020100 0.156000 0.146000 0.107000 +0 0 1 +0.740000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002500 0.020100 0.112000 0.096000 0.116000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.022000 0.120000 0.103000 0.117000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.134000 0.101000 0.133000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006900 0.017400 0.085000 0.089000 0.095000 +0 1 0 +0.190000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000860 0.022000 0.111180 0.099000 0.112070 +0 0 1 +0.350000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.020600 0.139000 0.113000 0.123000 +0 0 1 +0.260000 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.002200 0.029000 0.085000 0.108000 0.079000 +0 0 1 +0.150000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020600 0.067000 0.093000 0.073000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004600 0.024000 0.125000 0.109000 0.115000 +0 0 1 +0.210000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.026000 0.106000 0.104000 0.101000 +0 0 1 +0.610000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.019000 0.086000 0.071000 0.120000 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001000 0.020100 0.061000 0.099000 0.062000 +0 0 1 +0.330000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000960 0.027000 0.112000 0.103000 0.109000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.190000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.028000 0.086000 0.089000 0.097000 +0 0 1 +0.430000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.103000 0.120000 0.086000 +0 0 1 +0.250000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.236000 0.002000 0.016000 0.094000 0.017000 +1 0 0 +0.610000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.029000 0.136000 0.120000 0.114000 +0 0 1 +0.580000 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000010 0.033000 0.129000 0.123000 0.105000 +0 0 1 +0.770000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.018000 0.114000 0.081000 0.141000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.016000 0.075000 0.076000 0.099000 +0 0 1 +0.250000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.003000 0.020800 0.093000 0.101000 0.092000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020100 0.066000 0.077000 0.086000 +0 0 1 +0.900000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.016000 0.091000 0.096000 0.095000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000070 0.020100 0.147000 0.095000 0.155000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020100 0.083000 0.080000 0.104000 +0 0 1 +0.240000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000100 0.016000 0.182000 0.099000 0.183460 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000570 0.019000 0.090000 0.088000 0.102000 +0 0 1 +0.420000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.020100 0.177000 0.096000 0.183990 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000660 0.017000 0.114000 0.089000 0.128000 +0 0 1 +0.150000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020100 0.104000 0.104000 0.098000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.023000 0.077000 0.104000 0.074000 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.016000 0.086000 0.080000 0.107000 +0 0 1 +0.790000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.041000 0.160000 0.078000 0.204000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000750 0.017000 0.147000 0.089000 0.165000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002000 0.023000 0.069000 0.091000 0.076000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.034000 0.015000 0.088000 0.104000 0.083000 +0 1 0 +0.800000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.005300 0.011000 0.097000 0.087000 0.112000 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.024000 0.133000 0.100000 0.132000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.023000 0.070000 0.099000 0.071000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.026000 0.157000 0.116000 0.135000 +0 0 1 +0.860000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.022000 0.084000 0.077000 0.110000 +0 0 1 +0.830000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.170000 0.009600 0.029000 0.103000 0.028000 +1 0 0 +0.710000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.086000 0.068000 0.126000 +0 0 1 +0.540000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000750 0.023000 0.109000 0.114000 0.095000 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020100 0.085000 0.082000 0.104000 +0 0 1 +0.770000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.017000 0.113000 0.094000 0.120000 +0 0 1 +0.680000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.008000 0.098000 0.082000 0.119000 +0 0 1 +0.510000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006400 0.020800 0.120000 0.109000 0.110000 +0 0 1 +0.490000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020100 0.097000 0.066000 0.147000 +0 0 1 +0.150000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.092000 0.104000 0.087000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000750 0.016000 0.100000 0.093000 0.107000 +0 0 1 +0.340000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.018000 0.093000 0.090000 0.103000 +0 0 1 +0.760000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005700 0.020100 0.098000 0.086000 0.115000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000120 0.015000 0.117000 0.094000 0.125000 +0 0 1 +0.430000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001900 0.033000 0.110000 0.119000 0.092000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.011000 0.019000 0.092000 0.084000 0.110000 +0 1 0 +0.340000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000150 0.023000 0.139000 0.104000 0.131000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020000 0.085000 0.104000 0.080000 +0 0 1 +0.550000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.020100 0.188000 0.083000 0.226000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.024000 0.110000 0.085000 0.129000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.045000 0.161000 0.165000 0.097000 +0 0 1 +0.790000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.014000 0.092000 0.088000 0.105000 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.022000 0.111180 0.099000 0.112070 +0 0 1 +0.790000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.013000 0.007000 0.124000 0.102000 0.122000 +0 0 1 +0.330000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000300 0.025000 0.107000 0.092000 0.116000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.023000 0.124000 0.116000 0.106000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.008200 0.016000 0.096000 0.095000 0.100410 +0 1 0 +0.580000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.000950 0.020100 0.088000 0.085000 0.104000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.020800 0.056000 0.096000 0.058000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.020600 0.103000 0.065000 0.158000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005600 0.015000 0.094000 0.102000 0.092000 +0 0 1 +0.710000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.012000 0.107000 0.110000 0.097000 +0 0 1 +0.010000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.006500 0.017000 0.133000 0.126000 0.106000 +0 1 0 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000010 0.020800 0.159000 0.113000 0.140000 +0 0 1 +0.330000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000420 0.020100 0.125000 0.086000 0.145000 +0 0 1 +0.160000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000400 0.017000 0.088000 0.089000 0.099000 +0 0 1 +0.210000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020100 0.120000 0.116000 0.102000 +0 0 1 +0.720000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000010 0.011000 0.240000 0.107000 0.223000 +0 0 1 +0.280000 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0.002500 0.026000 0.179000 0.155000 0.115000 +0 0 1 +0.460000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.032000 0.160000 0.153000 0.105000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.026000 0.117000 0.108000 0.108000 +0 0 1 +0.660000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000380 0.020100 0.060000 0.072000 0.083000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000580 0.022000 0.092000 0.096000 0.096000 +0 0 1 +0.290000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.020000 0.127000 0.092000 0.138000 +0 0 1 +0.700000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.015000 0.059000 0.079000 0.075000 +0 0 1 +0.740000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.004100 0.012000 0.123000 0.094000 0.131000 +0 0 1 +0.940000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003900 0.020600 0.157000 0.102000 0.154000 +0 0 1 +0.720000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.005400 0.018000 0.087000 0.091000 0.095000 +0 0 1 +0.740000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000730 0.023000 0.122000 0.080000 0.152000 +0 0 1 +0.480000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004300 0.018000 0.072000 0.090000 0.080000 +0 0 1 +0.650000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.014000 0.121000 0.081000 0.149000 +0 0 1 +0.780000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000990 0.017000 0.114000 0.096000 0.119000 +0 0 1 +0.540000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020000 0.084000 0.099000 0.084670 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000450 0.006000 0.079000 0.054000 0.148000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.001700 0.011000 0.064000 0.076000 0.084000 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.020600 0.085000 0.095000 0.090000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000670 0.026000 0.079000 0.084000 0.093000 +0 0 1 +0.460000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001500 0.023000 0.096000 0.087000 0.110000 +0 0 1 +0.760000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.026000 0.105000 0.096000 0.109140 +0 0 1 +0.680000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005400 0.027000 0.094000 0.114000 0.082000 +0 0 1 +0.470000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002500 0.018000 0.094000 0.100000 0.094000 +0 0 1 +0.160000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.020600 0.113000 0.095000 0.119000 +0 0 1 +0.680000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020800 0.085000 0.099000 0.085680 +0 0 1 +0.370000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000210 0.020600 0.156000 0.084000 0.187000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000580 0.020600 0.080000 0.082000 0.098000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007000 0.017000 0.077000 0.098000 0.078000 +0 1 0 +0.430000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.030000 0.130000 0.084000 0.155000 +0 0 1 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.023000 0.089000 0.122000 0.072000 +0 0 1 +0.700000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000700 0.009000 0.073000 0.099000 0.073580 +0 0 1 +0.490000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.028000 0.141000 0.111000 0.127000 +0 0 1 +0.640000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000240 0.020600 0.083000 0.090000 0.093000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002080 0.020600 0.070000 0.048000 0.146000 +0 0 1 +0.590000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.007100 0.019000 0.098000 0.111000 0.088000 +0 1 0 +0.500000 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.005500 0.016000 0.044000 0.108000 0.040000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.003300 0.013000 0.067000 0.096000 0.070000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005700 0.020100 0.132000 0.126000 0.105000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001900 0.024000 0.129000 0.116000 0.109000 +0 0 1 +0.440000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.020100 0.154000 0.104000 0.148000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020100 0.090000 0.082000 0.110000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020100 0.121000 0.108000 0.112000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020100 0.123000 0.101000 0.121000 +0 0 1 +0.560000 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0.000460 0.019000 0.103000 0.104000 0.097000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.005100 0.024000 0.105000 0.131000 0.080000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.022000 0.083000 0.100000 0.082000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.020800 0.159000 0.101000 0.157000 +0 0 1 +0.800000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.015000 0.095000 0.091000 0.104000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020100 0.088000 0.073000 0.121000 +0 0 1 +0.660000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.020100 0.080000 0.072000 0.110000 +0 0 1 +0.750000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004800 0.016000 0.093000 0.096000 0.096000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0.000070 0.017000 0.132000 0.102000 0.130000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.026000 0.084000 0.098000 0.086000 +0 0 1 +0.690000 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0.001300 0.020000 0.121000 0.107000 0.113000 +0 0 1 +0.470000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.020100 0.123000 0.102000 0.120000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003700 0.024000 0.133000 0.129000 0.103000 +0 0 1 +0.760000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003700 0.020100 0.103000 0.103000 0.100000 +0 0 1 +0.290000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.020000 0.093000 0.081000 0.115000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003500 0.017000 0.098000 0.074000 0.132000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004500 0.005000 0.083000 0.077000 0.108000 +0 0 1 +0.430000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.020600 0.197000 0.108000 0.182000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.008000 0.099000 0.079000 0.126000 +0 0 1 +0.620000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001900 0.020800 0.116000 0.112000 0.103000 +0 0 1 +0.650000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007700 0.014000 0.079000 0.092000 0.086000 +0 1 0 +0.400000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001400 0.018000 0.092000 0.085000 0.108000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.019000 0.159000 0.104000 0.153000 +0 0 1 +0.630000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002400 0.022000 0.113000 0.096000 0.117460 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000860 0.015000 0.150000 0.093000 0.161000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.020100 0.077000 0.060000 0.128000 +0 0 1 +0.500000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000150 0.020600 0.248000 0.150000 0.165000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004400 0.012000 0.095000 0.111000 0.085000 +0 0 1 +0.630000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.108000 0.004000 0.014000 0.098000 0.014000 +1 0 0 +0.550000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000060 0.020100 0.206000 0.081000 0.254000 +0 0 1 +0.500000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.000050 0.020100 0.129000 0.104000 0.124000 +0 0 1 +0.250000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000720 0.020100 0.128000 0.103000 0.124000 +0 0 1 +0.750000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.015000 0.121000 0.080000 0.153000 +0 0 1 +0.430000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001700 0.020600 0.104000 0.091000 0.115000 +0 0 1 +0.530000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.108000 0.082000 0.132000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.380000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000370 0.022000 0.086000 0.075000 0.115000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000720 0.028000 0.110000 0.099000 0.111000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.016000 0.130000 0.104000 0.123000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.087000 0.086000 0.101000 +0 0 1 +0.850000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.114000 0.003000 0.024000 0.061000 0.039000 +1 0 0 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.027000 0.114000 0.131000 0.087000 +0 0 1 +0.430000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000620 0.025000 0.134000 0.109000 0.123000 +0 0 1 +0.310000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.016000 0.124000 0.096000 0.129000 +0 0 1 +0.730000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008000 0.013000 0.101000 0.093000 0.108000 +0 1 0 +0.670000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000010 0.041900 0.188000 0.139000 0.135000 +0 0 1 +0.200000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.022000 0.117000 0.099000 0.117940 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.106000 0.113000 0.094000 +0 0 1 +0.720000 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.390000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.059000 0.080000 0.074000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.020600 0.082000 0.073000 0.112000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002320 0.006000 0.113290 0.096000 0.117760 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000850 0.026000 0.112000 0.101000 0.111000 +0 0 1 +0.720000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000970 0.020000 0.164000 0.099000 0.165320 +0 0 1 +0.580000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005300 0.020100 0.120000 0.095000 0.126000 +0 0 1 +0.600000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003700 0.019000 0.115000 0.107000 0.107000 +0 0 1 +0.250000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.041000 0.158000 0.142000 0.111000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.015000 0.076000 0.085000 0.089000 +0 0 1 +0.140000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.660000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000040 0.003000 0.072000 0.061000 0.119000 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.100000 0.004000 0.010000 0.100000 0.010000 +1 0 0 +0.650000 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0.000030 0.023000 0.154000 0.090000 0.170000 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.022000 0.099000 0.104000 0.096000 +0 0 1 +0.130000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020100 0.106000 0.107000 0.099000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.520000 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0.062000 0.009600 0.002500 0.119000 0.002500 +1 0 0 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000750 0.018000 0.114000 0.101000 0.113000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002000 0.015000 0.089000 0.103000 0.086000 +0 0 1 +0.550000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.020600 0.161000 0.090000 0.180000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000680 0.014000 0.101000 0.098000 0.103000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.030000 0.158000 0.087000 0.183000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000840 0.033000 0.222000 0.182000 0.122000 +0 0 1 +0.670000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000420 0.014000 0.140000 0.098000 0.143000 +0 0 1 +0.760000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.013000 0.093000 0.101000 0.091000 +0 0 1 +0.370000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.020100 0.228000 0.165000 0.138000 +0 0 1 +0.180000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001500 0.020600 0.116000 0.104000 0.111000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.020000 0.143000 0.131000 0.109000 +0 0 1 +0.250000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.468000 0.007000 0.021000 0.110000 0.019000 +1 0 0 +0.640000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000850 0.011000 0.099000 0.111000 0.090000 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.020000 0.073000 0.104000 0.070000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003500 0.024000 0.119000 0.170000 0.070000 +0 0 1 +0.760000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.015000 0.081000 0.092000 0.088000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000020 0.018000 0.143000 0.087000 0.164000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001100 0.020600 0.131000 0.050000 0.265000 +0 0 1 +0.390000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000110 0.020100 0.135000 0.101000 0.135000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.011000 0.026000 0.091000 0.100000 0.090900 +0 1 0 +0.320000 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0.001600 0.020100 0.170000 0.173000 0.098000 +0 0 1 +0.670000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.012000 0.100000 0.087000 0.115000 +0 0 1 +0.270000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000980 0.026000 0.144000 0.101000 0.143000 +0 0 1 +0.820000 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0.004690 0.014000 0.098000 0.091000 0.108000 +0 0 1 +0.070000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000400 0.023000 0.054000 0.086000 0.063000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006400 0.003000 0.013000 0.094000 0.014000 +1 0 0 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005700 0.020100 0.097000 0.100000 0.096000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.005000 0.079000 0.063000 0.126000 +0 0 1 +0.340000 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0.000050 0.041900 0.213000 0.194000 0.110000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.019000 0.098000 0.095000 0.103000 +0 0 1 +0.460000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.004800 0.029000 0.132000 0.127000 0.104000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.011000 0.004000 0.102000 0.100000 0.101890 +0 1 0 +0.400000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000700 0.018000 0.096000 0.094000 0.101000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.065000 0.009600 0.051000 0.104000 0.049000 +1 0 0 +0.400000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000470 0.020600 0.089000 0.089000 0.100000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.027000 0.113290 0.096000 0.117760 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.002300 0.020000 0.078000 0.104000 0.075000 +0 0 1 +0.700000 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0.000150 0.015000 0.085000 0.091000 0.094000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.020600 0.113000 0.098000 0.116000 +0 0 1 +0.530000 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0.000720 0.016000 0.065000 0.065000 0.100000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000650 0.020100 0.096000 0.079000 0.122000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006700 0.025000 0.098000 0.088000 0.111000 +0 1 0 +0.460000 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0.004000 0.022000 0.123000 0.090000 0.137000 +0 0 1 +0.380000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000350 0.020100 0.132000 0.104000 0.127000 +0 0 1 +0.170000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.005000 0.043000 0.041000 0.105000 +0 0 1 +0.240000 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000060 0.026000 0.176000 0.107000 0.164000 +0 0 1 +0.260000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020600 0.083000 0.070000 0.117000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.039000 0.181000 0.096000 0.188000 +0 0 1 +0.610000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001600 0.019000 0.103000 0.088000 0.118000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000350 0.020000 0.093000 0.103000 0.090000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.006200 0.007000 0.084000 0.073000 0.115000 +0 1 0 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.020600 0.119000 0.090000 0.131000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000830 0.023000 0.119000 0.111000 0.107000 +0 0 1 +0.760000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.026000 0.122000 0.125000 0.098000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000910 0.020100 0.134000 0.091000 0.147000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.033000 0.122000 0.146000 0.083000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000850 0.020000 0.103000 0.093000 0.111000 +0 0 1 +0.880000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000830 0.015000 0.089000 0.094000 0.095000 +0 0 1 +0.220000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020100 0.155000 0.097000 0.160000 +0 0 1 +0.330000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001000 0.014000 0.088000 0.078000 0.113000 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004800 0.015000 0.082000 0.113000 0.073000 +0 0 1 +0.570000 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0.004800 0.020800 0.085000 0.097000 0.087000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.030000 0.026000 0.151000 0.148000 0.102000 +0 0 1 +0.400000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.034000 0.017000 0.078000 0.090000 0.087000 +0 1 0 +0.610000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020000 0.137000 0.115000 0.119000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.008000 0.099000 0.088000 0.113000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.022000 0.096000 0.103000 0.093000 +0 0 1 +0.460000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.005000 0.020000 0.107000 0.114000 0.094000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.020000 0.144000 0.100000 0.145000 +0 0 1 +0.770000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000010 0.105900 0.226000 0.065000 0.349000 +0 0 1 +0.320000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.019000 0.137000 0.080000 0.172000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.393000 0.009600 0.015000 0.116000 0.013000 +1 0 0 +0.420000 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.017000 0.079000 0.088000 0.090000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0.048000 0.004000 0.012000 0.135000 0.009090 +1 0 0 +0.660000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.013000 0.094000 0.089000 0.106000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.098000 0.099000 0.098790 +0 0 1 +0.470000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001500 0.015000 0.098000 0.086000 0.113000 +0 0 1 +0.380000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.129000 0.116000 0.110000 +0 0 1 +0.700000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000460 0.007000 0.078000 0.058000 0.132000 +0 0 1 +0.410000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008390 0.015000 0.123000 0.096000 0.129000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000060 0.016000 0.123000 0.081000 0.152000 +0 0 1 +0.660000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.022000 0.193000 0.122000 0.158000 +0 0 1 +0.580000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000980 0.020600 0.099000 0.108000 0.092000 +0 0 1 +0.460000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.013000 0.114000 0.084000 0.136000 +0 0 1 +0.720000 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0.001500 0.018000 0.111180 0.093000 0.112000 +0 0 1 +0.340000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000010 0.023000 0.149000 0.088000 0.169000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003800 0.020100 0.182000 0.150000 0.121000 +0 0 1 +0.350000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020600 0.073000 0.077000 0.095000 +0 0 1 +0.630000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000690 0.020600 0.162000 0.099000 0.163000 +0 0 1 +0.490000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008200 0.020800 0.079000 0.089000 0.089000 +0 1 0 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.020600 0.069000 0.076000 0.091000 +0 0 1 +0.630000 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0.004100 0.018000 0.100000 0.121000 0.083000 +0 0 1 +0.330000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.160000 0.003000 0.009500 0.103000 0.009140 +1 0 0 +0.630000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.018000 0.121000 0.096000 0.125770 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000330 0.031000 0.103000 0.110000 0.094000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.029000 0.024000 0.058000 0.098000 0.059000 +1 0 0 +0.800000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.005000 0.076000 0.058000 0.129000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000080 0.020800 0.173000 0.093000 0.186000 +0 0 1 +0.480000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.020100 0.112000 0.097000 0.116000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000730 0.030000 0.148000 0.129000 0.115000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.092000 0.083000 0.111000 +0 0 1 +0.660000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000680 0.020100 0.076000 0.100000 0.076000 +0 0 1 +0.820000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.010000 0.068000 0.077000 0.088000 +0 0 1 +0.270000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.019000 0.094000 0.104000 0.089000 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.016000 0.086000 0.093000 0.092000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020000 0.123000 0.096000 0.127850 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000770 0.023000 0.083000 0.089000 0.094000 +0 0 1 +0.530000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.022000 0.020100 0.096000 0.083000 0.116000 +0 0 1 +0.570000 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0.050000 0.013000 0.064000 0.099000 0.064510 +0 0 1 +0.720000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.003600 0.020100 0.087000 0.098000 0.089000 +0 0 1 +0.480000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004400 0.006000 0.065000 0.066000 0.098000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.000020 0.020600 0.127000 0.104000 0.119000 +0 0 1 +0.780000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001600 0.010000 0.086000 0.079000 0.109000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.020000 0.131000 0.095000 0.138000 +0 0 1 +0.800000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.028000 0.103000 0.100000 0.103000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002080 0.020100 0.130000 0.112000 0.116000 +0 0 1 +0.800000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000750 0.020800 0.129000 0.104000 0.122000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.020100 0.091000 0.096000 0.095000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004100 0.010000 0.089000 0.091000 0.098000 +0 0 1 +0.730000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.007000 0.063000 0.088000 0.072000 +0 0 1 +0.790000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.016000 0.143000 0.090000 0.159000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000200 0.008000 0.124000 0.090000 0.137000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.031000 0.142000 0.147000 0.097000 +0 0 1 +0.840000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.012000 0.100000 0.070000 0.143000 +0 0 1 +0.500000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.013000 0.013000 0.086000 0.087000 0.099000 +0 1 0 +0.650000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.014790 0.015000 0.061000 0.085000 0.072000 +0 1 0 +0.250000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000670 0.020100 0.153000 0.107000 0.143000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020100 0.123000 0.093000 0.133000 +0 0 1 +0.420000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.020600 0.135000 0.066000 0.206000 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001400 0.013000 0.117000 0.116000 0.101000 +0 0 1 +0.740000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003500 0.020100 0.062000 0.078000 0.080000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.014000 0.072000 0.047000 0.153000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.038000 0.263000 0.170000 0.155000 +0 0 1 +0.150000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000010 0.060000 0.250000 0.080000 0.312000 +0 0 1 +0.800000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.028000 0.225000 0.168000 0.134000 +0 0 1 +0.560000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000210 0.024000 0.232000 0.098000 0.237000 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.015000 0.056000 0.278000 0.078000 0.356000 +0 0 1 +0.150000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.022000 0.089000 0.082000 0.109000 +0 0 1 +0.650000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.020600 0.137000 0.104000 0.129000 +0 0 1 +0.220000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.151000 0.104000 0.144000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004300 0.020100 0.078000 0.098000 0.080000 +0 0 1 +0.800000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.023000 0.124000 0.104000 0.118000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.740000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000700 0.020100 0.090000 0.077000 0.117000 +0 0 1 +0.870000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000790 0.015000 0.145000 0.088000 0.165000 +0 0 1 +0.470000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000020 0.019000 0.111000 0.093000 0.119000 +0 0 1 +0.430000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.020600 0.062000 0.094000 0.066000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000430 0.029000 0.118000 0.142000 0.083000 +0 0 1 +0.660000 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000890 0.017000 0.125000 0.098000 0.128000 +0 0 1 +0.710000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.026000 0.105000 0.102000 0.103000 +0 0 1 +0.670000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.019000 0.091000 0.079000 0.115000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.073000 0.009600 0.043000 0.085000 0.051000 +1 0 0 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.086000 0.093000 0.092000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.830000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000430 0.004000 0.092000 0.075000 0.123000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000720 0.017000 0.122000 0.107000 0.114000 +0 0 1 +0.520000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.023000 0.116000 0.094000 0.123000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.044000 0.016000 0.028000 0.097000 0.029000 +1 0 0 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000990 0.019000 0.091000 0.095000 0.096000 +0 0 1 +0.540000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000600 0.018000 0.100000 0.077000 0.130000 +0 0 1 +0.240000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.016000 0.096000 0.099000 0.096770 +0 0 1 +0.350000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.020600 0.129000 0.101000 0.128000 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.001890 0.018000 0.089000 0.104000 0.085000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.025000 0.109000 0.111000 0.098000 +0 0 1 +0.250000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.820000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001300 0.014000 0.131000 0.108000 0.121000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.022000 0.165000 0.089000 0.186000 +0 0 1 +0.490000 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0.000070 0.039000 0.224000 0.124000 0.181000 +0 0 1 +0.800000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000460 0.018000 0.115000 0.100000 0.115000 +0 0 1 +0.210000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020100 0.106000 0.100000 0.106000 +0 0 1 +0.580000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.017000 0.123000 0.096000 0.129000 +0 0 1 +0.490000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.025000 0.205000 0.120000 0.170000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000610 0.020100 0.184000 0.150000 0.123000 +0 0 1 +0.490000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.008290 0.009000 0.103000 0.111000 0.093000 +0 1 0 +0.640000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000090 0.023000 0.114000 0.093000 0.123000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.019000 0.107000 0.093000 0.115000 +0 0 1 +0.490000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.091000 0.104000 0.087000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.460000 0.005000 0.022000 0.138000 0.016000 +1 0 0 +0.640000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002400 0.020000 0.101000 0.094000 0.107000 +0 0 1 +0.430000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001900 0.018000 0.098000 0.088000 0.112000 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0.000420 0.025000 0.093000 0.114000 0.082000 +0 0 1 +0.280000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.003700 0.024000 0.107000 0.096000 0.112000 +0 0 1 +0.200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.020000 0.119000 0.096000 0.123700 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004690 0.022000 0.155000 0.094000 0.165000 +0 0 1 +0.640000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.003300 0.020100 0.113000 0.093000 0.122000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.015000 0.113000 0.093000 0.122000 +0 0 1 +0.520000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.020100 0.109000 0.110000 0.099000 +0 0 1 +0.540000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000660 0.020100 0.117000 0.109000 0.107000 +0 0 1 +0.440000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001900 0.029000 0.164000 0.138000 0.119000 +0 0 1 +0.630000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000800 0.019000 0.098000 0.089000 0.111000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003900 0.028000 0.124000 0.108000 0.115000 +0 0 1 +0.300000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.018000 0.096000 0.093000 0.103000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.020000 0.090000 0.093000 0.097000 +0 0 1 +0.720000 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0.000130 0.022000 0.112000 0.095000 0.118000 +0 0 1 +0.300000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.019000 0.086000 0.090000 0.096000 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004800 0.024000 0.164000 0.112000 0.146000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000080 0.040000 0.221000 0.109000 0.203000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.008000 0.044000 0.084000 0.052000 +0 0 1 +0.470000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.020600 0.073000 0.079000 0.092000 +0 0 1 +0.680000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.003700 0.006000 0.065000 0.088000 0.074000 +0 0 1 +0.250000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000090 0.022000 0.181000 0.123000 0.147000 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.020100 0.106000 0.092000 0.116000 +0 0 1 +0.560000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000200 0.020800 0.136000 0.099000 0.137090 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004800 0.020600 0.087000 0.093000 0.093000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.024000 0.101000 0.116000 0.087000 +0 0 1 +0.500000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000400 0.028000 0.094000 0.088000 0.106000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.020800 0.100000 0.077000 0.130000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.010000 0.117000 0.119000 0.098000 +0 0 1 +0.570000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.022000 0.104000 0.107000 0.097000 +0 0 1 +0.630000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.042000 0.016000 0.060000 0.093000 0.064000 +1 0 0 +0.750000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000070 0.030000 0.139000 0.098000 0.141000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.011000 0.093000 0.073000 0.127000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006200 0.012000 0.089000 0.074000 0.121000 +0 1 0 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.730000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.023000 0.104000 0.094000 0.110000 +0 0 1 +0.750000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001890 0.020600 0.147000 0.080000 0.183000 +0 0 1 +0.840000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.003600 0.006000 0.082000 0.074000 0.110000 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.003000 0.065000 0.042000 0.155000 +0 0 1 +0.440000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002080 0.033000 0.140000 0.165000 0.086000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.012000 0.098000 0.099000 0.098790 +0 0 1 +0.530000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020100 0.097000 0.104000 0.093000 +0 0 1 +0.590000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001100 0.020000 0.095000 0.085000 0.111000 +0 0 1 +0.900000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000150 0.017000 0.118000 0.082000 0.144000 +0 0 1 +0.660000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.086000 0.068000 0.126000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008700 0.033000 0.138000 0.153000 0.090000 +0 1 0 +0.510000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001700 0.020100 0.072000 0.092000 0.078000 +0 0 1 +0.760000 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0.001800 0.012000 0.065000 0.076000 0.086000 +0 0 1 +0.700000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008500 0.020600 0.127000 0.104000 0.121000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.006000 0.113000 0.089000 0.127000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.012000 0.095000 0.084000 0.113000 +0 0 1 +0.490000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000720 0.007000 0.123000 0.073000 0.168000 +0 0 1 +0.410000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.044000 0.138000 0.064000 0.218000 +0 0 1 +0.890000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.006000 0.101000 0.073000 0.138000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000080 0.028000 0.161000 0.112000 0.144000 +0 0 1 +0.830000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.023000 0.147000 0.109000 0.135000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004400 0.028000 0.118000 0.101000 0.117000 +0 0 1 +0.730000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.014000 0.048000 0.104000 0.046000 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.015000 0.105000 0.076000 0.138000 +0 0 1 +0.140000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020600 0.091000 0.093000 0.098000 +0 0 1 +0.430000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020100 0.077000 0.090000 0.086000 +0 0 1 +0.600000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000810 0.020600 0.192000 0.144000 0.134000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.014000 0.161000 0.088000 0.183000 +0 0 1 +0.410000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.019000 0.165000 0.099000 0.167000 +0 0 1 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.032000 0.207000 0.157000 0.132000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000800 0.018000 0.069000 0.085000 0.082000 +0 0 1 +0.010000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.014000 0.082000 0.074000 0.111000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.014000 0.071000 0.072000 0.099000 +0 0 1 +0.290000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.027000 0.201000 0.084000 0.239000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.013000 0.080000 0.088000 0.091000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020600 0.104000 0.104000 0.098000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000090 0.025000 0.167000 0.119000 0.140000 +0 0 1 +0.170000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000600 0.026000 0.102000 0.097000 0.106000 +0 0 1 +0.740000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.074000 0.087000 0.085000 +0 0 1 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.196000 0.094000 0.209000 +0 0 1 +0.180000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.031000 0.160000 0.090000 0.177000 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003800 0.026000 0.144000 0.143000 0.101000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.036000 0.161000 0.069000 0.233000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.020100 0.144000 0.170000 0.085000 +0 0 1 +0.450000 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0.001700 0.018000 0.094000 0.086000 0.109000 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.030000 0.117000 0.097000 0.120000 +0 0 1 +0.490000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.027000 0.093000 0.099000 0.094000 +0 0 1 +0.430000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.022000 0.075000 0.085000 0.088000 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000970 0.023000 0.125000 0.104000 0.117000 +0 0 1 +0.330000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020800 0.104000 0.085000 0.122000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.004900 0.010000 0.122000 0.110000 0.111000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020100 0.095000 0.088000 0.108000 +0 0 1 +0.450000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.061000 0.006000 0.023000 0.087000 0.026000 +1 0 0 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.024000 0.102000 0.108000 0.095000 +0 0 1 +0.720000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.096000 0.066000 0.145000 +0 0 1 +0.840000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.012000 0.132000 0.092000 0.145000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005100 0.024000 0.126000 0.113000 0.112000 +0 0 1 +0.420000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.003100 0.020800 0.134000 0.100000 0.135000 +0 0 1 +0.410000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.026000 0.197000 0.101000 0.195000 +0 0 1 +0.700000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.019000 0.103000 0.095000 0.109000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.020100 0.102000 0.090000 0.114000 +0 0 1 +0.460000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004190 0.022000 0.068000 0.099000 0.068540 +0 0 1 +0.630000 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0.002900 0.016000 0.101000 0.099000 0.101810 +0 0 1 +0.750000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.036000 0.184000 0.114000 0.162000 +0 0 1 +0.460000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.003000 0.018000 0.115000 0.101000 0.114000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006600 0.017000 0.114000 0.093000 0.123000 +0 1 0 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000310 0.020600 0.146000 0.104000 0.141000 +0 0 1 +0.370000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020100 0.109000 0.067000 0.163000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.027000 0.100000 0.104000 0.096000 +0 0 1 +0.390000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.710000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.029000 0.009600 0.057000 0.108000 0.053000 +1 0 0 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000640 0.020100 0.144000 0.115000 0.125000 +0 0 1 +0.350000 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0.002500 0.020100 0.144000 0.152000 0.095000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000600 0.018000 0.112000 0.104000 0.106000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.020000 0.192000 0.102000 0.188000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.032000 0.111180 0.099000 0.112070 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0.001900 0.018000 0.129000 0.063000 0.205000 +0 0 1 +0.460000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.022000 0.187000 0.110000 0.170000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001900 0.020000 0.141000 0.078000 0.181000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000970 0.011000 0.077000 0.086000 0.089000 +0 0 1 +0.840000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.004000 0.017000 0.064000 0.096000 0.067000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000070 0.020000 0.144000 0.078000 0.185000 +0 0 1 +0.510000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000700 0.020600 0.127000 0.119000 0.107000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004000 0.022000 0.083000 0.096000 0.086270 +0 0 1 +0.340000 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0.000010 0.038000 0.205000 0.184000 0.111000 +0 0 1 +0.330000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020800 0.069000 0.074000 0.093000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000140 0.034000 0.105000 0.099000 0.105840 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.460000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000980 0.025000 0.120000 0.104000 0.113000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004600 0.008000 0.091000 0.086000 0.106000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004690 0.020000 0.019000 0.112000 0.017000 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001300 0.027000 0.089000 0.091000 0.099000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000640 0.017000 0.113000 0.099000 0.115000 +0 0 1 +0.320000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020100 0.113000 0.104000 0.109000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.003300 0.008000 0.083000 0.067000 0.124000 +0 0 1 +0.850000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.197000 0.009600 0.031210 0.102000 0.030420 +1 0 0 +0.740000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.005100 0.018000 0.112000 0.107000 0.105000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.020100 0.105000 0.100000 0.105000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.226000 0.093000 0.243000 +0 0 1 +0.320000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002600 0.030000 0.138000 0.124000 0.111000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.011090 0.013000 0.088000 0.104000 0.083000 +0 1 0 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000720 0.020800 0.114000 0.111000 0.103000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0.001100 0.012000 0.070000 0.098000 0.071000 +0 0 1 +0.550000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000010 0.019000 0.115000 0.077000 0.149000 +0 0 1 +0.600000 1 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0.000070 0.013000 0.131000 0.093000 0.142000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001200 0.019000 0.122000 0.056000 0.218000 +0 0 1 +0.680000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.020000 0.020100 0.095000 0.098000 0.097000 +0 0 1 +0.440000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.045000 0.014000 0.039000 0.116000 0.033000 +1 0 0 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.620000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020800 0.110000 0.114000 0.096000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0.000200 0.045000 0.125000 0.082000 0.152000 +0 0 1 +0.440000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.027000 0.107000 0.086000 0.125000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.022000 0.015000 0.052000 0.084000 0.062000 +1 0 0 +0.240000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000370 0.020100 0.149000 0.084000 0.177000 +0 0 1 +0.840000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005000 0.026000 0.128000 0.114000 0.112000 +0 0 1 +0.420000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.007200 0.013000 0.093000 0.090000 0.104000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000080 0.004000 0.058000 0.076000 0.076000 +0 0 1 +0.500000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004000 0.020600 0.120000 0.080000 0.150000 +0 0 1 +0.240000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.028000 0.122000 0.113000 0.109000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001400 0.020600 0.078000 0.086000 0.090000 +0 0 1 +0.670000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000460 0.024000 0.158000 0.116000 0.135000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002320 0.010000 0.016000 0.110000 0.015000 +0 0 1 +0.520000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.023000 0.117000 0.111000 0.105000 +0 0 1 +0.240000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.023000 0.042000 0.092000 0.046000 +0 0 1 +0.340000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.016000 0.096000 0.097000 0.099000 +0 0 1 +0.600000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000010 0.018000 0.130000 0.086000 0.151000 +0 0 1 +0.550000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.028000 0.189000 0.166000 0.114000 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000570 0.014000 0.075000 0.072000 0.104000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.003600 0.020800 0.106000 0.104000 0.101000 +0 0 1 +0.350000 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.000300 0.020000 0.075000 0.121000 0.062000 +0 0 1 +0.860000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004000 0.020100 0.106000 0.083000 0.128000 +0 0 1 +0.490000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.013000 0.120000 0.143000 0.083000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.015000 0.080000 0.112000 0.071000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.024000 0.096000 0.098000 0.098000 +0 0 1 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003900 0.020100 0.106000 0.115000 0.093000 +0 0 1 +0.730000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.020100 0.138000 0.094000 0.146000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008500 0.010000 0.109000 0.088000 0.124000 +0 1 0 +0.600000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.183000 0.011000 0.045000 0.097000 0.046000 +1 0 0 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.009000 0.084000 0.087000 0.096000 +0 0 1 +0.340000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020100 0.070000 0.066000 0.106000 +0 0 1 +0.340000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.022000 0.078000 0.077000 0.102000 +0 0 1 +0.630000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000140 0.020100 0.119000 0.057000 0.209000 +0 0 1 +0.700000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.014000 0.098000 0.094000 0.105000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.360000 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.690000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.020600 0.135000 0.110000 0.123000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.016000 0.162000 0.094000 0.173000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.020100 0.088000 0.082000 0.108000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.029000 0.124000 0.128000 0.097000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020000 0.092000 0.095000 0.097000 +0 0 1 +0.860000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020100 0.116000 0.093000 0.125000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.004000 0.042000 0.116000 0.036000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.023000 0.128000 0.114000 0.112000 +0 0 1 +0.820000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020100 0.046000 0.088000 0.052000 +0 0 1 +0.210000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020100 0.129000 0.096000 0.134090 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000090 0.022000 0.128000 0.075000 0.172000 +0 0 1 +0.790000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.031000 0.162000 0.078000 0.209000 +0 0 1 +0.240000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.086000 0.103000 0.083000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.023000 0.007000 0.069000 0.104000 0.066000 +0 1 0 +0.520000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.020600 0.100000 0.079000 0.127000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002320 0.019000 0.113290 0.096000 0.117760 +0 0 1 +0.250000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020800 0.133000 0.099000 0.134070 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000210 0.009000 0.122000 0.104000 0.117000 +0 0 1 +0.570000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001200 0.014000 0.118000 0.102000 0.116000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000830 0.020600 0.193000 0.133000 0.144000 +0 0 1 +0.420000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000050 0.027000 0.111000 0.088000 0.127000 +0 0 1 +0.360000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.011000 0.069000 0.060000 0.114000 +0 0 1 +0.340000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001600 0.017000 0.067000 0.115000 0.059000 +0 0 1 +0.650000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006300 0.020100 0.108000 0.103000 0.105000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020100 0.064000 0.089000 0.072000 +0 0 1 +0.650000 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000030 0.022000 0.146000 0.104000 0.138000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.022000 0.073000 0.099000 0.074000 +0 0 1 +0.760000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.014000 0.091000 0.085000 0.108000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.020600 0.110000 0.102000 0.108000 +0 0 1 +0.460000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.027000 0.107000 0.077000 0.139000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000260 0.027000 0.120000 0.127000 0.095000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.020100 0.213000 0.176000 0.121000 +0 0 1 +0.370000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001600 0.020100 0.142000 0.123000 0.115000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000020 0.023000 0.122000 0.166000 0.073000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000070 0.016000 0.075000 0.109000 0.069000 +0 0 1 +0.350000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001700 0.024000 0.102000 0.104000 0.096000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.009000 0.031000 0.131000 0.123000 0.106000 +0 1 0 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.018000 0.070000 0.086000 0.081000 +0 0 1 +0.600000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002000 0.022000 0.128000 0.124000 0.103000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.012000 0.014000 0.111000 0.120000 0.093000 +0 1 0 +0.580000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003700 0.017000 0.064000 0.069000 0.093000 +0 0 1 +0.380000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.020800 0.144000 0.104000 0.136000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000540 0.023000 0.099000 0.108000 0.092000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003900 0.017000 0.104000 0.104000 0.100000 +0 0 1 +0.590000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006000 0.011000 0.048000 0.062000 0.077000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.019000 0.109000 0.101000 0.108000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001300 0.020100 0.082000 0.067000 0.122000 +0 0 1 +0.640000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.003300 0.008000 0.088000 0.067000 0.131000 +0 0 1 +0.590000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.070000 0.077000 0.091000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.019000 0.083000 0.101000 0.082000 +0 0 1 +0.660000 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.000070 0.029000 0.145000 0.125000 0.116000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.013000 0.127000 0.111000 0.115000 +0 0 1 +0.730000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.085000 0.083000 0.102000 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.029000 0.122000 0.111000 0.110000 +0 0 1 +0.540000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.020100 0.225000 0.083000 0.273000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.015000 0.106000 0.091000 0.117000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.020800 0.093000 0.090000 0.104000 +0 0 1 +0.660000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.019000 0.080000 0.085000 0.094000 +0 0 1 +0.510000 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.019000 0.019000 0.092000 0.084000 0.110000 +0 1 0 +0.500000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000170 0.020100 0.152000 0.130000 0.117000 +0 0 1 +0.440000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.003200 0.025000 0.088000 0.102000 0.086000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000980 0.024000 0.113000 0.108000 0.105000 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.098000 0.104000 0.094000 +0 0 1 +0.480000 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0.001500 0.025000 0.101000 0.097000 0.104000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.017000 0.027000 0.090000 0.074000 0.122000 +0 1 0 +0.740000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.003000 0.013000 0.096000 0.101000 0.095000 +0 0 1 +0.390000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.017000 0.094000 0.085000 0.110000 +0 0 1 +0.390000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.020800 0.095000 0.089000 0.107000 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.074000 0.005000 0.005000 0.093000 0.005500 +1 0 0 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006900 0.017000 0.109000 0.103000 0.106000 +0 1 0 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.023000 0.134000 0.124000 0.109000 +0 0 1 +0.190000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002700 0.027000 0.121000 0.116000 0.104000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.008000 0.084000 0.049000 0.171000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.020100 0.173000 0.162000 0.107000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000320 0.008000 0.082000 0.063000 0.130000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000910 0.024000 0.124000 0.104000 0.118000 +0 0 1 +0.530000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000320 0.020600 0.145000 0.096000 0.152000 +0 0 1 +0.700000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.020600 0.155000 0.104000 0.148000 +0 0 1 +0.930000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002700 0.004000 0.077000 0.086000 0.090000 +0 0 1 +0.590000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002700 0.020100 0.148000 0.109000 0.136000 +0 0 1 +0.510000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.013000 0.020800 0.082000 0.104000 0.077000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.031000 0.157000 0.092000 0.171000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.025000 0.004000 0.039000 0.061000 0.064000 +1 0 0 +0.390000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001200 0.020000 0.102000 0.093000 0.110000 +0 0 1 +0.200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.016000 0.063000 0.100000 0.063000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0.004400 0.026000 0.108000 0.112000 0.096000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.020600 0.092000 0.091000 0.101000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000580 0.020000 0.130000 0.102000 0.128000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.004600 0.024000 0.129000 0.102000 0.127000 +0 0 1 +0.180000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.490000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004500 0.032000 0.084000 0.084000 0.100000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.029000 0.118000 0.152000 0.078000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001300 0.032000 0.149000 0.116000 0.127000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.020600 0.097000 0.086000 0.112000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003600 0.020000 0.096000 0.110000 0.088000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.015000 0.104000 0.099000 0.104830 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001140 0.020100 0.092000 0.093000 0.099000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.020100 0.139000 0.091000 0.153000 +0 0 1 +0.590000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001700 0.012000 0.101000 0.090000 0.112000 +0 0 1 +0.350000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.023000 0.112000 0.100000 0.112000 +0 0 1 +0.520000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.020600 0.092000 0.087000 0.106000 +0 0 1 +0.570000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000080 0.020600 0.142000 0.093000 0.153000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.003400 0.019000 0.126000 0.116000 0.107000 +0 0 1 +0.160000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000810 0.020800 0.070000 0.083000 0.084000 +0 0 1 +0.200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.014000 0.096000 0.099000 0.096770 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.015000 0.091000 0.079000 0.115000 +0 0 1 +0.650000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020000 0.104000 0.093000 0.112000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000820 0.020100 0.110000 0.081000 0.136000 +0 0 1 +0.630000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.033000 0.015000 0.128000 0.100000 0.127870 +0 1 0 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000400 0.020800 0.078000 0.082000 0.095000 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.022000 0.164000 0.135000 0.122000 +0 0 1 +0.350000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.023000 0.098000 0.092000 0.106000 +0 0 1 +0.730000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002080 0.028000 0.109000 0.132000 0.083000 +0 0 1 +0.480000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.015000 0.081000 0.101000 0.080000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000180 0.014000 0.104000 0.083000 0.125000 +0 0 1 +0.810000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.003000 0.102000 0.096000 0.106000 +0 0 1 +0.570000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000620 0.015000 0.074000 0.078000 0.096000 +0 0 1 +0.870000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.015000 0.045000 0.239000 0.210000 0.113000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000560 0.013000 0.070000 0.093000 0.075000 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000600 0.023000 0.100000 0.094000 0.106000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004000 0.020100 0.098000 0.083000 0.118000 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020100 0.102000 0.066000 0.155000 +0 0 1 +0.460000 1 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0.001400 0.022000 0.122000 0.103000 0.119000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.011000 0.102000 0.081000 0.125000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000150 0.043000 0.189000 0.107000 0.176000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000320 0.020100 0.099000 0.101000 0.098000 +0 0 1 +0.150000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001500 0.019000 0.138000 0.098000 0.141000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.020100 0.107000 0.100000 0.107000 +0 0 1 +0.650000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.230000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0.002600 0.024000 0.074000 0.097000 0.076000 +0 0 1 +0.370000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.018000 0.109000 0.097000 0.112000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.020100 0.175000 0.103000 0.169000 +0 0 1 +0.830000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000920 0.009000 0.086000 0.076000 0.113000 +0 0 1 +0.340000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.000030 0.022000 0.105000 0.085000 0.123000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0.001200 0.023000 0.133000 0.116000 0.113000 +0 0 1 +0.410000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001600 0.018000 0.111000 0.081000 0.137000 +0 0 1 +0.430000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002800 0.020100 0.117000 0.077000 0.151000 +0 0 1 +0.880000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003500 0.016000 0.094000 0.094000 0.100000 +0 0 1 +0.420000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005100 0.015000 0.053000 0.076000 0.070000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.004100 0.040000 0.159000 0.162000 0.098000 +0 0 1 +0.490000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000110 0.016000 0.186000 0.097000 0.191000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006400 0.017000 0.117000 0.104000 0.113000 +0 1 0 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.027000 0.181000 0.165000 0.109000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000050 0.062000 0.386000 0.102000 0.378000 +0 0 1 +0.340000 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0.008290 0.031000 0.172000 0.180000 0.096000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.008890 0.017000 0.097000 0.088000 0.111000 +0 1 0 +0.620000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.000410 0.031000 0.108000 0.107000 0.101000 +0 0 1 +0.390000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000110 0.024000 0.135000 0.092000 0.147000 +0 0 1 +0.700000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001400 0.010000 0.077000 0.072000 0.107000 +0 0 1 +0.560000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.014000 0.020100 0.110000 0.097000 0.113000 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.017000 0.113000 0.099000 0.113910 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020600 0.100000 0.083000 0.121000 +0 0 1 +0.430000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.126000 0.103000 0.122000 +0 0 1 +0.700000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000430 0.020600 0.116000 0.078000 0.149000 +0 0 1 +0.750000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.022000 0.070000 0.085000 0.082000 +0 0 1 +0.590000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.020100 0.093000 0.080000 0.116000 +0 0 1 +0.660000 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0.001700 0.014000 0.089000 0.087000 0.103000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.013000 0.109000 0.104000 0.105000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.028000 0.113290 0.096000 0.117760 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.010000 0.065000 0.060000 0.108000 +0 0 1 +0.210000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.023000 0.119000 0.079000 0.151000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000310 0.036000 0.175000 0.099000 0.177000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.134000 0.103000 0.130000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000090 0.019000 0.160000 0.080000 0.200000 +0 0 1 +0.130000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.023000 0.105000 0.085000 0.124000 +0 0 1 +0.180000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.490000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000070 0.033000 0.239000 0.128000 0.187000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.010000 0.020100 0.155000 0.150000 0.103000 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.012000 0.018000 0.109000 0.104000 0.102000 +0 1 0 +0.610000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005400 0.020100 0.167000 0.093000 0.180000 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.020100 0.131000 0.092000 0.141000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.024000 0.111000 0.152000 0.073000 +0 0 1 +0.510000 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.002700 0.020000 0.115000 0.090000 0.128000 +0 0 1 +0.650000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004500 0.011000 0.094000 0.079000 0.119000 +0 0 1 +0.510000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.019000 0.063000 0.058000 0.107000 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.020600 0.105000 0.097000 0.108000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.020000 0.099000 0.110000 0.090000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000230 0.037000 0.144000 0.091000 0.158000 +0 0 1 +0.370000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.020600 0.133000 0.098000 0.136000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.010000 0.020000 0.069000 0.096000 0.071000 +0 1 0 +0.130000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000130 0.020100 0.139000 0.089000 0.156000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.019000 0.112000 0.095000 0.118000 +0 0 1 +0.480000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.004000 0.098000 0.073000 0.133000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.036000 0.006000 0.023000 0.068000 0.034000 +1 0 0 +0.820000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000580 0.009000 0.111000 0.096000 0.115380 +0 0 1 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.022000 0.124000 0.099000 0.125000 +0 0 1 +0.050000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.017000 0.020000 0.074000 0.095000 0.078000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020100 0.134000 0.120000 0.112000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007600 0.041900 0.164000 0.155000 0.106000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003500 0.017000 0.005000 0.120000 0.004150 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000060 0.014000 0.108000 0.097000 0.111000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003800 0.020100 0.084000 0.104000 0.080000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.012000 0.067000 0.096000 0.069000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000030 0.024000 0.046000 0.110000 0.042000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000040 0.026000 0.117000 0.102000 0.114000 +0 0 1 +0.900000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.018000 0.098000 0.094000 0.104000 +0 0 1 +0.850000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.012000 0.093000 0.079000 0.117000 +0 0 1 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000400 0.025000 0.165000 0.090000 0.184000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.013000 0.146000 0.089000 0.165000 +0 0 1 +0.310000 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0.001890 0.030000 0.158000 0.101000 0.156000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.078000 0.083000 0.094000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002400 0.016000 0.110000 0.104000 0.105000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006000 0.011000 0.121000 0.074000 0.164000 +0 0 1 +0.390000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.106000 0.091000 0.117000 +0 0 1 +0.730000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000790 0.015000 0.110000 0.088000 0.125000 +0 0 1 +0.740000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.003400 0.010000 0.102000 0.090000 0.114000 +0 0 1 +0.610000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.011000 0.082000 0.094000 0.087000 +0 0 1 +0.010000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008790 0.019000 0.113000 0.086000 0.131000 +0 1 0 +0.350000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.019000 0.115000 0.086000 0.134000 +0 0 1 +0.330000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006500 0.012000 0.090000 0.086000 0.105000 +0 1 0 +0.470000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.020000 0.128000 0.094000 0.136000 +0 0 1 +0.290000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.022000 0.089000 0.099000 0.090000 +0 0 1 +0.350000 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0.001700 0.020100 0.083000 0.112000 0.074000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000090 0.010000 0.101000 0.116000 0.087000 +0 0 1 +0.760000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008200 0.017000 0.125000 0.081000 0.153000 +0 1 0 +0.730000 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000050 0.020100 0.185000 0.094000 0.197000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.024000 0.102000 0.071000 0.144000 +0 0 1 +0.700000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000160 0.019000 0.175000 0.099000 0.176410 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000810 0.011000 0.106000 0.081000 0.131000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.053000 0.016000 0.113000 0.129000 0.088000 +0 1 0 +0.490000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.020000 0.094000 0.097000 0.098000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.044000 0.017000 0.079000 0.082000 0.096000 +0 1 0 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020100 0.114000 0.109000 0.104000 +0 0 1 +0.360000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.026000 0.129000 0.116000 0.109000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000850 0.030000 0.121000 0.125000 0.097000 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.019000 0.097000 0.099000 0.099000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002300 0.020600 0.125000 0.093000 0.135000 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005000 0.020600 0.082000 0.081000 0.101000 +0 0 1 +0.330000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.026000 0.086000 0.088000 0.098000 +0 0 1 +0.370000 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0.011000 0.012000 0.074000 0.077000 0.096000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.018000 0.090000 0.084000 0.108000 +0 0 1 +0.350000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.020800 0.071000 0.110000 0.064000 +0 0 1 +0.420000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.017000 0.101000 0.084000 0.120000 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.020600 0.082000 0.099000 0.083000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005100 0.020800 0.096000 0.087000 0.110000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.031000 0.026000 0.096630 0.095000 0.101070 +0 1 0 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.106000 0.074000 0.143000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.025000 0.157000 0.107000 0.147000 +0 0 1 +0.390000 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.001100 0.018000 0.077000 0.062000 0.124000 +0 0 1 +0.630000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001400 0.014000 0.090000 0.091000 0.100000 +0 0 1 +0.750000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.020000 0.111000 0.108000 0.103000 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.670000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020800 0.113290 0.096000 0.117760 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003800 0.020000 0.098000 0.101000 0.097000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.010000 0.016000 0.090000 0.089000 0.101000 +0 1 0 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.020100 0.158000 0.155000 0.102000 +0 0 1 +0.970000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.005000 0.101000 0.064000 0.158000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.029000 0.111000 0.092000 0.121000 +0 0 1 +0.460000 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0.001700 0.020600 0.139000 0.110000 0.127000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.002080 0.024000 0.106000 0.112000 0.095000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.012000 0.005000 0.060000 0.062000 0.097000 +0 1 0 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000960 0.020000 0.102000 0.097000 0.105000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.020000 0.109000 0.100000 0.109000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020800 0.112000 0.099000 0.112900 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020100 0.147000 0.109000 0.135000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020600 0.125000 0.111000 0.113000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000900 0.017000 0.095000 0.095000 0.100000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000020 0.053000 0.278000 0.078000 0.356000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.000500 0.038000 0.052000 0.073000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000770 0.017000 0.091000 0.096000 0.095000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000510 0.020600 0.118000 0.115000 0.103000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002080 0.013000 0.052000 0.083000 0.063000 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000190 0.030000 0.108000 0.113000 0.096000 +0 0 1 +0.430000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.027000 0.109000 0.110000 0.099000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.020600 0.100000 0.115000 0.087000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.023000 0.083000 0.119000 0.069000 +0 0 1 +0.620000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.020100 0.174000 0.098000 0.177000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000910 0.020100 0.118000 0.085000 0.139000 +0 0 1 +0.270000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000970 0.027000 0.096000 0.080000 0.120000 +0 0 1 +0.400000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000150 0.016000 0.173000 0.090000 0.192000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001700 0.020000 0.102000 0.096000 0.106000 +0 0 1 +0.460000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000020 0.045000 0.156000 0.076000 0.205000 +0 0 1 +0.470000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.020100 0.139000 0.104000 0.134000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.024000 0.013000 0.084000 0.082000 0.102000 +0 1 0 +0.570000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000230 0.024000 0.108000 0.103000 0.105000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.018000 0.106000 0.116000 0.091000 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000150 0.027000 0.119000 0.112000 0.106000 +0 0 1 +0.430000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000930 0.020100 0.081000 0.084000 0.097000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008790 0.023000 0.106000 0.125000 0.085000 +0 1 0 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.720000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003500 0.020100 0.124000 0.136000 0.091000 +0 0 1 +0.800000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.013000 0.122000 0.099000 0.123000 +0 0 1 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.020800 0.069000 0.081000 0.086000 +0 0 1 +0.270000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.026000 0.100000 0.099000 0.100800 +0 0 1 +0.640000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.020100 0.096000 0.079000 0.122000 +0 0 1 +0.250000 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0.001800 0.020100 0.158000 0.158000 0.100000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.018000 0.082000 0.095000 0.086000 +0 0 1 +0.500000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.011000 0.022000 0.095000 0.110000 0.086000 +0 0 1 +0.650000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.016000 0.109000 0.083000 0.131000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.022000 0.097000 0.087000 0.111000 +0 0 1 +0.500000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.080000 0.014000 0.041000 0.114000 0.036000 +1 0 0 +0.400000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.011000 0.111000 0.102000 0.109000 +0 0 1 +0.700000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007800 0.019000 0.052000 0.077000 0.068000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.020600 0.100000 0.100000 0.100000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.055000 0.009000 0.045000 0.104000 0.043000 +1 0 0 +0.350000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.020100 0.120000 0.080000 0.150000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000400 0.023000 0.120000 0.103000 0.117000 +0 0 1 +0.230000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.019000 0.077000 0.079000 0.097000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004100 0.020100 0.093000 0.098000 0.095000 +0 0 1 +0.290000 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0.000620 0.038000 0.211000 0.188000 0.112000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000010 0.029000 0.198000 0.091000 0.217000 +0 0 1 +0.800000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002700 0.020000 0.130000 0.104000 0.124000 +0 0 1 +0.810000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.022000 0.133000 0.078000 0.171000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002500 0.029000 0.086000 0.119000 0.072000 +0 0 1 +0.900000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.019000 0.203000 0.090000 0.224000 +0 0 1 +0.540000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.017000 0.105000 0.099000 0.105840 +0 0 1 +0.650000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002000 0.020800 0.154000 0.099000 0.156000 +0 0 1 +0.260000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001300 0.025000 0.132000 0.124000 0.107000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000580 0.020800 0.119000 0.108000 0.110000 +0 0 1 +0.740000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001500 0.020800 0.070000 0.074000 0.094000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000160 0.052000 0.183000 0.083000 0.220000 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.020800 0.116000 0.099000 0.116930 +0 0 1 +0.590000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.057000 0.372000 0.127000 0.291000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004300 0.012000 0.059000 0.083000 0.071000 +0 0 1 +0.830000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000730 0.020000 0.105000 0.085000 0.125000 +0 0 1 +0.300000 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0.001500 0.020100 0.222000 0.173000 0.128000 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000910 0.022000 0.096000 0.088000 0.109000 +0 0 1 +0.420000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.017000 0.105000 0.103000 0.101000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005400 0.026000 0.125000 0.099000 0.126000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000010 0.029000 0.205000 0.087000 0.235000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.019000 0.094000 0.089000 0.105000 +0 0 1 +0.720000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.025000 0.231000 0.092000 0.251000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.024000 0.152000 0.070000 0.217000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.022000 0.085000 0.104000 0.080000 +0 0 1 +0.670000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.007700 0.014000 0.083000 0.104000 0.080000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.013000 0.079000 0.076000 0.104000 +0 0 1 +0.160000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.252000 0.017000 0.005000 0.108000 0.005000 +1 0 0 +0.340000 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0.000020 0.037000 0.196000 0.165000 0.119000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.187000 0.104000 0.178000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.008000 0.080000 0.077000 0.104000 +0 0 1 +0.280000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.020000 0.115000 0.092000 0.124000 +0 0 1 +0.390000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.027000 0.091000 0.092000 0.098000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.003100 0.018000 0.087000 0.116000 0.075000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.131000 0.003000 0.008390 0.101000 0.008290 +1 0 0 +0.410000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000890 0.023000 0.098000 0.098000 0.100000 +0 0 1 +0.470000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.010000 0.130000 0.088000 0.148000 +0 0 1 +0.480000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.025000 0.081000 0.091000 0.089000 +0 0 1 +0.810000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004190 0.020800 0.088000 0.107000 0.082000 +0 0 1 +0.430000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.019000 0.098000 0.089000 0.110000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.024000 0.107000 0.110000 0.092000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000150 0.024000 0.137000 0.099000 0.138000 +0 0 1 +0.440000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000260 0.020600 0.127000 0.103000 0.124000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.023000 0.098000 0.097000 0.101000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.016000 0.112000 0.114000 0.098000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.028000 0.130000 0.116000 0.111000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000140 0.053000 0.129000 0.099000 0.130030 +0 0 1 +0.430000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.007200 0.023000 0.081000 0.099000 0.082000 +0 1 0 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000550 0.003000 0.033000 0.064000 0.052000 +0 0 1 +0.540000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005500 0.020100 0.057000 0.065000 0.087000 +0 0 1 +0.250000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.470000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.015000 0.061000 0.091000 0.067000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.009000 0.105000 0.082000 0.129000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004400 0.013000 0.107000 0.112000 0.095000 +0 0 1 +0.590000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.007800 0.017000 0.089000 0.085000 0.105000 +0 1 0 +0.160000 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0.004900 0.018000 0.143000 0.097000 0.148000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002300 0.016000 0.077000 0.104000 0.075000 +0 0 1 +0.610000 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.023000 0.110000 0.101000 0.109000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001400 0.020600 0.098000 0.101000 0.097000 +0 0 1 +0.540000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005200 0.017000 0.168000 0.114000 0.147000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001500 0.020100 0.102000 0.116000 0.087000 +0 0 1 +0.530000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.020600 0.129000 0.108000 0.119000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006400 0.023000 0.064000 0.098000 0.065000 +0 1 0 +0.200000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.026000 0.038000 0.110000 0.035000 +0 0 1 +0.250000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003600 0.020800 0.107000 0.095000 0.113000 +0 0 1 +0.840000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000500 0.020800 0.138000 0.092000 0.150000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020100 0.115000 0.070000 0.164000 +0 0 1 +0.490000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001800 0.020100 0.080000 0.066000 0.121000 +0 0 1 +0.530000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000670 0.017000 0.092000 0.099000 0.093000 +0 0 1 +0.380000 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0.000030 0.018000 0.130000 0.087000 0.150000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.020100 0.090000 0.103000 0.087000 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000100 0.018000 0.085000 0.078000 0.109000 +0 0 1 +0.250000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000810 0.018000 0.078000 0.101000 0.077000 +0 0 1 +0.730000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.091000 0.080000 0.113000 +0 0 1 +0.400000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.016000 0.095000 0.099000 0.096000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.022000 0.204000 0.146000 0.140000 +0 0 1 +0.500000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000970 0.020100 0.091000 0.080000 0.114000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.003300 0.009000 0.090000 0.088000 0.102000 +0 0 1 +0.270000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.020600 0.112000 0.095000 0.117000 +0 0 1 +0.210000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.016000 0.088000 0.101000 0.087000 +0 0 1 +0.430000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000680 0.025000 0.175000 0.123000 0.143000 +0 0 1 +0.590000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.020800 0.108000 0.104000 0.104000 +0 0 1 +0.320000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001500 0.018000 0.093000 0.093000 0.100000 +0 0 1 +0.790000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006400 0.018000 0.109000 0.097000 0.113000 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001200 0.016000 0.068000 0.102000 0.066000 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.016000 0.134000 0.120000 0.112000 +0 0 1 +0.360000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002200 0.017000 0.115000 0.098000 0.118000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002300 0.008000 0.090000 0.080000 0.112000 +0 0 1 +0.630000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.017000 0.090000 0.079000 0.114000 +0 0 1 +0.490000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.076000 0.071000 0.107000 +0 0 1 +0.500000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001700 0.018000 0.113000 0.101000 0.112000 +0 0 1 +0.620000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.010000 0.084000 0.052000 0.162000 +0 0 1 +0.160000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.009700 0.017400 0.098000 0.130000 0.076000 +0 1 0 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.024000 0.091000 0.099000 0.091730 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.025000 0.147000 0.089000 0.165000 +0 0 1 +0.150000 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000060 0.020100 0.127000 0.084000 0.151000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001700 0.031000 0.090000 0.096000 0.094000 +0 0 1 +0.350000 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0.000390 0.020100 0.196000 0.170000 0.115000 +0 0 1 +0.380000 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.000130 0.064000 0.256000 0.077000 0.332000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.020100 0.100000 0.091000 0.110000 +0 0 1 +0.700000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000970 0.013000 0.113000 0.091000 0.124000 +0 0 1 +0.500000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000670 0.026000 0.085000 0.089000 0.096000 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.016000 0.114000 0.093000 0.123000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.020100 0.091000 0.083000 0.110000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.162000 0.081000 0.200000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002900 0.020600 0.121000 0.100000 0.121000 +0 0 1 +0.760000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.023000 0.146000 0.100000 0.146000 +0 0 1 +0.110000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.020600 0.191000 0.123000 0.156000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0.001890 0.061000 0.214000 0.094000 0.228000 +0 0 1 +0.510000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.025000 0.082000 0.092000 0.089000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000130 0.025000 0.173000 0.108000 0.161000 +0 0 1 +0.520000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002300 0.025000 0.114000 0.107000 0.106000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006500 0.020600 0.045000 0.047000 0.096000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001900 0.023000 0.180000 0.104000 0.173000 +0 0 1 +0.590000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000060 0.020800 0.099000 0.073000 0.136000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.020000 0.010000 0.051000 0.084000 0.061000 +1 0 0 +0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020800 0.100000 0.095000 0.106000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.018000 0.098000 0.114000 0.085000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002400 0.020100 0.096000 0.087000 0.110000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000980 0.018000 0.094000 0.088000 0.107000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.016000 0.102000 0.082000 0.128000 +0 0 1 +0.480000 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0.005400 0.019000 0.087000 0.100000 0.087000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020000 0.079000 0.096000 0.082120 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.017000 0.076000 0.081000 0.093000 +0 0 1 +0.370000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.760000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.020600 0.077000 0.067000 0.115000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000730 0.020000 0.092000 0.095000 0.097000 +0 0 1 +0.730000 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0.001200 0.018000 0.121000 0.091000 0.134000 +0 0 1 +0.880000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.016000 0.107000 0.109000 0.099000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.015000 0.075000 0.090000 0.083000 +0 0 1 +0.610000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006200 0.012000 0.083000 0.082000 0.101000 +0 1 0 +0.180000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004190 0.020600 0.078000 0.077000 0.102000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.110000 0.096000 0.114000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0.000830 0.020100 0.090000 0.102000 0.088000 +0 0 1 +0.590000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.009700 0.017400 0.081000 0.096000 0.084000 +0 1 0 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020000 0.110000 0.096000 0.114000 +0 0 1 +0.140000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004400 0.011000 0.063000 0.080000 0.078000 +0 0 1 +0.320000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000330 0.023000 0.077000 0.083000 0.093000 +0 0 1 +0.540000 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0.000940 0.013000 0.078000 0.112000 0.070000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.065000 0.007000 0.028000 0.100000 0.028000 +1 0 0 +0.470000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.020100 0.133000 0.107000 0.124000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004500 0.012000 0.151000 0.114000 0.132000 +0 0 1 +0.250000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001100 0.020600 0.101000 0.107000 0.094000 +0 0 1 +0.530000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.026000 0.151000 0.116000 0.130000 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020100 0.064000 0.052000 0.121000 +0 0 1 +0.720000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000820 0.015000 0.083000 0.076000 0.117000 +0 0 1 +0.500000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.016000 0.105000 0.080000 0.131000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.025000 0.093000 0.078000 0.119000 +0 0 1 +0.610000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.009790 0.004000 0.081000 0.064000 0.126000 +0 1 0 +0.560000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000640 0.024000 0.086000 0.092000 0.094000 +0 0 1 +0.260000 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.003100 0.026000 0.095000 0.089000 0.107000 +0 0 1 +0.390000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.020100 0.089000 0.090000 0.099000 +0 0 1 +0.350000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.020100 0.090000 0.089000 0.101000 +0 0 1 +0.790000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000280 0.015000 0.138000 0.099000 0.139000 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000300 0.018000 0.117000 0.097000 0.121000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.019000 0.170000 0.123000 0.138000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0.002080 0.031000 0.116000 0.120000 0.096000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001100 0.020100 0.111000 0.096000 0.116000 +0 0 1 +0.610000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.018000 0.145000 0.104000 0.140000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.031000 0.169000 0.149000 0.114000 +0 0 1 +0.610000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001890 0.020000 0.147000 0.099000 0.148170 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002200 0.024000 0.085000 0.055000 0.155000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000170 0.024000 0.122000 0.100000 0.122000 +0 0 1 +0.270000 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0.001000 0.020100 0.138000 0.091000 0.152000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000060 0.020600 0.125000 0.107000 0.117000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004100 0.013000 0.063000 0.104000 0.061000 +0 0 1 +0.660000 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0.002000 0.018000 0.115000 0.097000 0.119000 +0 0 1 +0.280000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.024000 0.150000 0.116000 0.127000 +0 0 1 +0.150000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004800 0.020100 0.069000 0.102000 0.068000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000830 0.020100 0.125000 0.102000 0.123000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004800 0.020000 0.087000 0.095000 0.091000 +0 0 1 +0.430000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000460 0.020100 0.126000 0.082000 0.154000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.024000 0.098000 0.093000 0.105000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020000 0.109000 0.099000 0.109870 +0 0 1 +0.210000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.031000 0.111180 0.099000 0.112070 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.014000 0.080000 0.088000 0.091000 +0 0 1 +0.610000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.011000 0.113000 0.113000 0.100000 +0 0 1 +0.180000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020800 0.063000 0.078000 0.081000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.008000 0.017000 0.088000 0.099000 0.089000 +0 1 0 +0.390000 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0.001100 0.018000 0.091000 0.094000 0.097000 +0 0 1 +0.540000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.023000 0.134000 0.082000 0.163000 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.014000 0.139000 0.088000 0.157000 +0 0 1 +0.600000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.020600 0.150000 0.099000 0.151000 +0 0 1 +0.370000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002300 0.018000 0.078000 0.104000 0.076000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000920 0.019000 0.162000 0.107000 0.151000 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.019000 0.113290 0.096000 0.117760 +0 0 1 +0.280000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005900 0.020000 0.126000 0.126000 0.100000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.017000 0.103000 0.089000 0.116000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000610 0.013000 0.107000 0.096000 0.111220 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.032000 0.108000 0.104000 0.102000 +0 0 1 +0.680000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.015000 0.092000 0.108000 0.085000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020000 0.087000 0.073000 0.118000 +0 0 1 +0.660000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000050 0.018000 0.133000 0.102000 0.130000 +0 0 1 +0.510000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.022000 0.095000 0.096000 0.100000 +0 0 1 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.020600 0.161000 0.133000 0.121000 +0 0 1 +0.890000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.024000 0.105000 0.095000 0.110000 +0 0 1 +0.300000 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0.000710 0.031000 0.125000 0.139000 0.090000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.019000 0.138000 0.095000 0.145000 +0 0 1 +0.500000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.020000 0.083000 0.131000 0.063000 +0 0 1 +0.210000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.170000 0.101000 0.167000 +0 0 1 +0.710000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.020600 0.056000 0.112000 0.050000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.020100 0.096000 0.096000 0.100000 +0 0 1 +0.340000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000060 0.020100 0.600000 0.110000 0.546000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000080 0.020100 0.169000 0.144000 0.117000 +0 0 1 +0.870000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000150 0.017000 0.162000 0.087000 0.186000 +0 0 1 +0.730000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.011000 0.062000 0.070000 0.089000 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020100 0.075000 0.078000 0.096000 +0 0 1 +0.700000 1 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0.001900 0.013000 0.136000 0.080000 0.170000 +0 0 1 +0.640000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.020100 0.162000 0.097000 0.167000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000660 0.020100 0.131000 0.104000 0.124000 +0 0 1 +0.600000 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0.005900 0.020600 0.126000 0.113000 0.111000 +0 0 1 +0.820000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.020100 0.065000 0.064000 0.103000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003600 0.017000 0.115000 0.110000 0.105000 +0 0 1 +0.300000 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.002320 0.020100 0.087000 0.099000 0.087000 +0 0 1 +0.440000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.022000 0.103000 0.120000 0.086000 +0 0 1 +0.710000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.000010 0.020600 0.146000 0.093000 0.156000 +0 0 1 +0.260000 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0.000880 0.020100 0.119000 0.152000 0.078000 +0 0 1 +0.830000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.005200 0.018000 0.107000 0.102000 0.104000 +0 0 1 +0.460000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000980 0.020600 0.109000 0.091000 0.120000 +0 0 1 +0.650000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000470 0.023000 0.113000 0.091000 0.124000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0.001500 0.020000 0.113290 0.096000 0.107000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000680 0.020000 0.090000 0.080000 0.113000 +0 0 1 +0.470000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.114000 0.111000 0.102000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001200 0.029000 0.127000 0.100000 0.127000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000030 0.032000 0.123000 0.108000 0.114000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007200 0.020800 0.123000 0.116000 0.104000 +0 1 0 +0.570000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.430000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000850 0.018000 0.093000 0.073000 0.127000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000150 0.035000 0.217000 0.098000 0.221000 +0 0 1 +0.320000 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0.000050 0.039000 0.289000 0.175000 0.165000 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001800 0.018000 0.092000 0.099000 0.092740 +0 0 1 +0.730000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001600 0.020000 0.105000 0.116000 0.089000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.027000 0.150000 0.122000 0.124000 +0 0 1 +0.740000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.001400 0.020600 0.123000 0.157000 0.079000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.007000 0.076000 0.075000 0.102000 +0 0 1 +0.270000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000850 0.023000 0.141000 0.114000 0.125000 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.029000 0.108000 0.100000 0.108000 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.023000 0.128000 0.122000 0.105000 +0 0 1 +0.470000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001700 0.017000 0.091000 0.096000 0.094000 +0 0 1 +0.670000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.020600 0.152000 0.099000 0.153000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000880 0.022000 0.101000 0.103000 0.097000 +0 0 1 +0.580000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.016000 0.091000 0.104000 0.086000 +0 0 1 +0.570000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.016000 0.141000 0.089000 0.158000 +0 0 1 +0.660000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020100 0.098000 0.076000 0.130000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.023000 0.101000 0.094000 0.107000 +0 0 1 +0.250000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000400 0.023000 0.107000 0.094000 0.114000 +0 0 1 +0.600000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007300 0.016000 0.109000 0.104000 0.105000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.051000 0.004000 0.012000 0.126000 0.010000 +1 0 0 +0.680000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.026000 0.117000 0.124000 0.094000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.020100 0.079000 0.113000 0.070000 +0 0 1 +0.250000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020100 0.091000 0.124000 0.073000 +0 0 1 +0.630000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005800 0.019000 0.102000 0.116000 0.087000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.009000 0.083000 0.065000 0.128000 +0 0 1 +0.750000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.014000 0.107000 0.092000 0.116000 +0 0 1 +0.690000 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.002080 0.025000 0.131000 0.103000 0.126000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000010 0.040000 0.204000 0.084000 0.242000 +0 0 1 +0.750000 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.000310 0.022000 0.085000 0.119000 0.071000 +0 0 1 +0.490000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000270 0.016000 0.075000 0.077000 0.097000 +0 0 1 +0.670000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002080 0.020000 0.083000 0.096000 0.087000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.021000 0.012000 0.072000 0.100000 0.071920 +0 1 0 +0.490000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004600 0.022000 0.092000 0.083000 0.111000 +0 0 1 +0.690000 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.015000 0.104000 0.095000 0.109000 +0 0 1 +0.250000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004190 0.022000 0.078000 0.094000 0.083000 +0 0 1 +0.740000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.021000 0.018000 0.126000 0.116000 0.107000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.015000 0.095000 0.091000 0.104000 +0 0 1 +0.370000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.790000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001300 0.009000 0.102000 0.095000 0.107000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001890 0.028000 0.111180 0.099000 0.112070 +0 0 1 +0.590000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.020000 0.088000 0.099000 0.088700 +0 0 1 +0.600000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000120 0.020100 0.138000 0.080000 0.173000 +0 0 1 +0.530000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.034000 0.201000 0.108000 0.186000 +0 0 1 +0.440000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.016000 0.119000 0.109000 0.110000 +0 0 1 +0.580000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.016000 0.071000 0.082000 0.086000 +0 0 1 +0.450000 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.002300 0.024000 0.091000 0.086000 0.106000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.055000 0.199000 0.104000 0.190000 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.350000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000350 0.025000 0.099000 0.104000 0.096000 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000300 0.020600 0.076000 0.101000 0.076000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.003300 0.020100 0.149000 0.133000 0.112000 +0 0 1 +0.160000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.050000 0.164000 0.126000 0.130000 +0 0 1 +0.530000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.020600 0.184000 0.121000 0.153000 +0 0 1 +0.450000 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0.000040 0.020100 0.238000 0.109000 0.218000 +0 0 1 +0.650000 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0.000020 0.039000 0.133000 0.123000 0.108000 +0 0 1 +0.280000 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0.001500 0.015000 0.120000 0.101000 0.118000 +0 0 1 +0.670000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000980 0.016000 0.147000 0.089000 0.165000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000060 0.024000 0.103000 0.104000 0.097000 +0 0 1 +0.540000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.011000 0.130000 0.103000 0.127000 +0 0 1 +0.370000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.116000 0.090000 0.128000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020100 0.104000 0.096000 0.108000 +0 0 1 +0.310000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.023000 0.132000 0.116000 0.114000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002080 0.014000 0.089000 0.099000 0.090000 +0 0 1 +0.200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.020100 0.145000 0.151000 0.096000 +0 0 1 +0.510000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.071000 0.087000 0.082000 +0 0 1 +0.160000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004500 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.025000 0.094000 0.104000 0.090000 +0 0 1 +0.220000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.395000 0.107000 0.369000 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000450 0.020800 0.107000 0.090000 0.119000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000360 0.024000 0.128000 0.101000 0.127000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.098000 0.095000 0.103000 +0 0 1 +0.810000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.020100 0.160000 0.098000 0.162000 +0 0 1 +0.780000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.004100 0.019000 0.116000 0.104000 0.110000 +0 0 1 +0.590000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.019000 0.144000 0.093000 0.156000 +0 0 1 +0.590000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000070 0.024000 0.146000 0.108000 0.135000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001700 0.019000 0.146000 0.119000 0.123000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.016000 0.076000 0.081000 0.094000 +0 0 1 +0.830000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002800 0.011000 0.066000 0.071000 0.093000 +0 0 1 +0.240000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000600 0.030000 0.119000 0.103000 0.115000 +0 0 1 +0.690000 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0.007100 0.020600 0.093000 0.110000 0.085000 +0 0 1 +0.130000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.033000 0.113000 0.123000 0.092000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004900 0.016000 0.085000 0.087000 0.098000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020100 0.113000 0.092000 0.123000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004100 0.003000 0.100000 0.087000 0.115000 +0 0 1 +0.270000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.027000 0.116000 0.087000 0.134000 +0 0 1 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004600 0.012000 0.048000 0.089000 0.054000 +0 0 1 +0.230000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.028000 0.183000 0.123000 0.149000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003700 0.020600 0.086000 0.091000 0.095000 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000880 0.010000 0.090000 0.067000 0.134000 +0 0 1 +0.360000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000050 0.022000 0.162000 0.115000 0.140000 +0 0 1 +0.540000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.019000 0.095000 0.088000 0.109000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.020600 0.143000 0.076000 0.189000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000770 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.022000 0.127000 0.104000 0.121000 +0 0 1 +0.770000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.006200 0.016000 0.109000 0.095000 0.114010 +0 1 0 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.002300 0.004000 0.073000 0.060000 0.122000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.002320 0.020100 0.109000 0.104000 0.104000 +0 0 1 +0.220000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.010000 0.079000 0.086000 0.092000 +0 0 1 +0.630000 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0.000200 0.009000 0.110000 0.082000 0.134000 +0 0 1 +0.490000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.015000 0.085000 0.073000 0.116000 +0 0 1 +0.510000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.026000 0.089000 0.089000 0.100000 +0 0 1 +0.600000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.015000 0.132000 0.095000 0.138000 +0 0 1 +0.440000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.019000 0.074000 0.079000 0.094000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.026000 0.111000 0.100000 0.111000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.000600 0.023000 0.076000 0.104000 0.073000 +0 0 1 +0.610000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000730 0.017000 0.160000 0.111000 0.149000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.015000 0.116000 0.088000 0.132000 +0 0 1 +0.710000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000520 0.013000 0.138000 0.107000 0.129000 +0 0 1 +0.840000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000700 0.016000 0.070000 0.093000 0.075000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001800 0.016000 0.099000 0.082000 0.121000 +0 0 1 +0.620000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002080 0.020100 0.137000 0.089000 0.154000 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007400 0.014000 0.108000 0.108000 0.100000 +0 1 0 +0.620000 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.003700 0.014000 0.083000 0.081000 0.102000 +0 0 1 +0.310000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.166000 0.006000 0.032000 0.104000 0.031000 +1 0 0 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.024000 0.136000 0.092000 0.148000 +0 0 1 +0.520000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.029000 0.123000 0.103000 0.119000 +0 0 1 +0.390000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000100 0.041000 0.131000 0.095000 0.138000 +0 0 1 +0.390000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007500 0.019000 0.099000 0.103000 0.096000 +0 0 1 +0.520000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.018000 0.093000 0.099000 0.095000 +0 0 1 +0.250000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001300 0.022000 0.133000 0.092000 0.145000 +0 0 1 +0.160000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.024000 0.110000 0.092000 0.119000 +0 0 1 +0.360000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001000 0.018000 0.101000 0.092000 0.110000 +0 0 1 +0.320000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000450 0.025000 0.100000 0.116000 0.086000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0.000200 0.020600 0.256000 0.090000 0.283000 +0 0 1 +0.320000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.025000 0.138000 0.089000 0.154000 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000220 0.008000 0.073000 0.075000 0.097000 +0 0 1 +0.270000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0.002080 0.020800 0.114000 0.110000 0.104000 +0 0 1 +0.150000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.145000 0.017000 0.019000 0.113000 0.017000 +1 0 0 +0.690000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004190 0.019000 0.144000 0.088000 0.164000 +0 0 1 +0.540000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000030 0.019000 0.100000 0.111000 0.090000 +0 0 1 +0.840000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007800 0.012000 0.083000 0.069000 0.121000 +0 1 0 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001400 0.018000 0.120000 0.109000 0.110000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.023000 0.146000 0.134000 0.108000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.018000 0.157000 0.090000 0.175000 +0 0 1 +0.320000 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.007500 0.020100 0.109000 0.113000 0.096000 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000930 0.014000 0.057000 0.072000 0.079000 +0 0 1 +0.530000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.012000 0.020000 0.091590 0.100000 0.091500 +0 1 0 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.018000 0.087000 0.116000 0.075000 +0 0 1 +0.460000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001700 0.020100 0.135000 0.104000 0.129000 +0 0 1 +0.480000 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0.012000 0.020100 0.108000 0.103000 0.105000 +0 0 1 +0.200000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001500 0.020100 0.103000 0.112000 0.092000 +0 0 1 +0.360000 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.020600 0.101000 0.086000 0.117000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.180000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000730 0.020600 0.194000 0.097000 0.200000 +0 0 1 +0.440000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.199000 0.006000 0.010000 0.103000 0.010000 +1 0 0 +0.530000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.028000 0.130000 0.101000 0.128000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.024000 0.103000 0.102000 0.101000 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000450 0.014000 0.091000 0.080000 0.114000 +0 0 1 +0.220000 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000200 0.023000 0.147000 0.101000 0.145000 +0 0 1 +0.610000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.010000 0.072000 0.070000 0.103000 +0 0 1 +0.440000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002600 0.014000 0.088000 0.079000 0.111000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000060 0.025000 0.121000 0.125000 0.097000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000930 0.028000 0.155000 0.101000 0.153000 +0 0 1 +0.390000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001000 0.019000 0.083000 0.090000 0.092000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.043000 0.016000 0.063000 0.084000 0.075000 +0 1 0 +0.870000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.011000 0.118000 0.075000 0.157000 +0 0 1 +0.830000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020600 0.120000 0.129000 0.092000 +0 0 1 +0.660000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001000 0.020600 0.103000 0.116000 0.088000 +0 0 1 +0.620000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000810 0.023000 0.109000 0.116000 0.093000 +0 0 1 +0.490000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.128000 0.102000 0.125000 +0 0 1 +0.640000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020100 0.100000 0.096000 0.103950 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.012000 0.007000 0.084000 0.070000 0.121000 +0 1 0 +0.610000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003900 0.027000 0.084000 0.103000 0.081000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.009090 0.017000 0.082000 0.084000 0.098000 +0 1 0 +0.670000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.010000 0.065000 0.063000 0.105000 +0 0 1 +0.430000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.020100 0.075000 0.091000 0.082000 +0 0 1 +0.410000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006000 0.019000 0.114000 0.100000 0.114000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.039000 0.141000 0.112000 0.126000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.011000 0.026000 0.109000 0.104000 0.103000 +0 1 0 +0.460000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.020100 0.152000 0.099000 0.154000 +0 0 1 +0.850000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.006000 0.124000 0.096000 0.129000 +0 0 1 +0.400000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.018000 0.062000 0.085000 0.073000 +0 0 1 +0.620000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.009000 0.121000 0.096000 0.126000 +0 0 1 +0.790000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.137000 0.104000 0.131000 +0 0 1 +0.390000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003200 0.024000 0.107000 0.098000 0.110000 +0 0 1 +0.620000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002000 0.015000 0.077000 0.096000 0.080040 +0 0 1 +0.730000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.019000 0.102000 0.100000 0.102000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.000900 0.028000 0.126000 0.129000 0.098000 +0 0 1 +0.180000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.012000 0.022000 0.094000 0.096000 0.098000 +0 1 0 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.016000 0.083000 0.101000 0.082000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005400 0.022000 0.075000 0.090000 0.084000 +0 0 1 +0.650000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.014000 0.079000 0.077000 0.103000 +0 0 1 +0.580000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020100 0.151000 0.102000 0.148000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.020100 0.139000 0.107000 0.130000 +0 0 1 +0.360000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000440 0.016000 0.122000 0.086000 0.141000 +0 0 1 +0.570000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.011000 0.020800 0.134000 0.095000 0.140160 +0 1 0 +0.700000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000860 0.020100 0.097000 0.101000 0.096000 +0 0 1 +0.190000 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0.000020 0.020100 0.171000 0.097000 0.176000 +0 0 1 +0.830000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001700 0.015000 0.097000 0.098000 0.099000 +0 0 1 +0.160000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.020100 0.100000 0.103000 0.096000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000700 0.012000 0.081000 0.099000 0.082000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.086000 0.098000 0.088000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.020800 0.084000 0.100000 0.083000 +0 0 1 +0.330000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001000 0.022000 0.084000 0.084000 0.100000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000520 0.025000 0.105000 0.101000 0.104000 +0 0 1 +0.040000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000220 0.020100 0.162000 0.116000 0.137000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.014000 0.085000 0.087000 0.098000 +0 0 1 +0.340000 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0.002320 0.026000 0.082000 0.102000 0.080000 +0 0 1 +0.220000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.018000 0.118000 0.096000 0.123000 +0 0 1 +0.320000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.210000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.002320 0.020100 0.164000 0.161000 0.102000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.020100 0.143000 0.092000 0.155000 +0 0 1 +0.190000 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.009000 0.022000 0.117000 0.100000 0.116880 +0 1 0 +0.530000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.078000 0.020600 0.078000 0.116000 0.067000 +0 0 1 +0.710000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004500 0.010000 0.085000 0.079000 0.107000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000730 0.018000 0.097000 0.097000 0.101000 +0 0 1 +0.170000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020100 0.089000 0.110000 0.081000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.020100 0.096000 0.091000 0.105000 +0 0 1 +0.270000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000760 0.025000 0.160000 0.138000 0.116000 +0 0 1 +0.630000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000900 0.020800 0.153000 0.122000 0.126000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004190 0.027000 0.132000 0.170000 0.078000 +0 0 1 +0.400000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.018000 0.115000 0.112000 0.103000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020600 0.140000 0.163000 0.086000 +0 0 1 +0.280000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000500 0.022000 0.107000 0.094000 0.113000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.005500 0.014000 0.089000 0.099000 0.089000 +0 0 1 +0.590000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000250 0.018000 0.102000 0.082000 0.124000 +0 0 1 +0.760000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001500 0.019000 0.095000 0.091000 0.118000 +0 0 1 +0.310000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.015000 0.101000 0.089000 0.113000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001890 0.053000 0.181000 0.104000 0.174000 +0 0 1 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020100 0.148000 0.114000 0.130000 +0 0 1 +0.820000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004400 0.020100 0.105000 0.092000 0.114000 +0 0 1 +0.670000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001200 0.022000 0.121000 0.102000 0.118000 +0 0 1 +0.440000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001800 0.020800 0.163000 0.120000 0.136000 +0 0 1 +0.800000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007900 0.015000 0.106000 0.094000 0.113000 +0 0 1 +0.330000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000050 0.020100 0.148000 0.095000 0.156000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.020000 0.114000 0.133000 0.086000 +0 0 1 +0.400000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004190 0.020000 0.144000 0.116000 0.124000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.020100 0.123000 0.089000 0.139000 +0 0 1 +0.670000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.097000 0.095000 0.102000 +0 0 1 +0.640000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004400 0.022000 0.098000 0.097000 0.101000 +0 0 1 +0.410000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020800 0.103000 0.104000 0.100000 +0 0 1 +0.350000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.114000 0.080000 0.142500 +0 0 1 +0.700000 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0.002300 0.012000 0.107000 0.101000 0.105000 +0 0 1 +0.560000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000010 0.041000 0.191000 0.100000 0.191000 +0 0 1 +0.430000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.000040 0.045000 0.161000 0.108000 0.149000 +0 0 1 +0.260000 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0.001200 0.020100 0.131000 0.153000 0.086000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.005800 0.027000 0.079000 0.100000 0.079000 +0 0 1 +0.510000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004900 0.008000 0.081000 0.085000 0.095000 +0 0 1 +0.150000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.020100 0.084000 0.104000 0.081000 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002500 0.019000 0.109000 0.104000 0.104000 +0 0 1 +0.200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000700 0.024000 0.113000 0.134000 0.084000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.017000 0.081000 0.087000 0.094000 +0 0 1 +0.300000 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0.001100 0.036000 0.159000 0.165000 0.096000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001700 0.013000 0.108000 0.094000 0.115000 +0 0 1 +0.740000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.013000 0.016000 0.128000 0.101000 0.127000 +0 1 0 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.074000 0.069000 0.107000 +0 0 1 +0.580000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001400 0.020100 0.141000 0.075000 0.188000 +0 0 1 +0.320000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.029000 0.138000 0.115000 0.120000 +0 0 1 +0.530000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.022000 0.126000 0.096000 0.130970 +0 0 1 +0.450000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003500 0.051000 0.175000 0.091000 0.192000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002600 0.050000 0.160000 0.087000 0.184000 +0 0 1 +0.530000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.000120 0.020100 0.047000 0.093000 0.050000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.032000 0.136000 0.091000 0.149000 +0 0 1 +0.640000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.032000 0.014000 0.085000 0.116000 0.071000 +0 0 1 +0.380000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.019000 0.124000 0.120000 0.103000 +0 0 1 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001700 0.022000 0.116000 0.114000 0.102000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.035000 0.014000 0.078000 0.098000 0.080000 +0 1 0 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000840 0.008000 0.094000 0.086000 0.109000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.009890 0.007000 0.111000 0.092000 0.120000 +0 1 0 +0.230000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004100 0.020000 0.102000 0.099000 0.102820 +0 0 1 +0.300000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000600 0.019000 0.104000 0.101000 0.103000 +0 0 1 +0.660000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.012000 0.022000 0.096000 0.095000 0.100410 +0 1 0 +0.380000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002000 0.023000 0.122000 0.096000 0.126810 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.012000 0.088000 0.085000 0.104000 +0 0 1 +0.650000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002300 0.013000 0.157000 0.091000 0.172000 +0 0 1 +0.770000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001700 0.019000 0.080000 0.090000 0.090000 +0 0 1 +0.730000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000010 0.034000 0.133000 0.084000 0.159000 +0 0 1 +0.250000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004690 0.020100 0.162000 0.142000 0.114000 +0 0 1 +0.840000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002200 0.020100 0.092000 0.063000 0.146000 +0 0 1 +0.840000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.015000 0.096000 0.082000 0.117000 +0 0 1 +0.340000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000090 0.020800 0.116000 0.098000 0.118000 +0 0 1 +0.370000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.022000 0.100000 0.087000 0.115000 +0 0 1 +0.700000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000800 0.020000 0.109000 0.085000 0.129000 +0 0 1 +0.130000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.020600 0.067000 0.093000 0.072000 +0 0 1 +0.180000 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0.000830 0.029000 0.068000 0.116000 0.058000 +0 0 1 +0.610000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.020600 0.093000 0.094000 0.098000 +0 0 1 +0.590000 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.000090 0.020100 0.172000 0.096000 0.180000 +0 0 1 +0.670000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004300 0.020000 0.125000 0.101000 0.124000 +0 0 1 +0.320000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.027000 0.114000 0.093000 0.123000 +0 0 1 +0.250000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.111000 0.097000 0.114000 +0 0 1 +0.600000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.000200 0.020800 0.105000 0.109000 0.097000 +0 0 1 +0.010000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.018000 0.119000 0.104000 0.113000 +0 0 1 +0.310000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.000050 0.020100 0.117000 0.078000 0.150000 +0 0 1 +0.220000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.540000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003400 0.017000 0.113000 0.093000 0.122000 +0 0 1 +0.250000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.023000 0.085000 0.079000 0.107000 +0 0 1 +0.540000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0.001890 0.020600 0.096000 0.128000 0.075000 +0 0 1 +0.320000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001500 0.027000 0.163000 0.114000 0.143000 +0 0 1 +0.680000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.042000 0.002000 0.018000 0.109000 0.016000 +1 0 0 +0.420000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003900 0.020100 0.102000 0.101000 0.101000 +0 0 1 +0.680000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.027000 0.155000 0.098000 0.159000 +0 0 1 +0.130000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002500 0.017000 0.096000 0.068000 0.142000 +0 0 1 +0.620000 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0.013000 0.011000 0.087000 0.081000 0.107000 +0 0 1 +0.620000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004600 0.020100 0.096000 0.101000 0.095000 +0 0 1 +0.020000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0.004190 0.020800 0.152000 0.093000 0.163000 +0 0 1 +0.570000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.016790 0.017000 0.034000 0.097000 0.035000 +0 0 1 +0.180000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.020600 0.093000 0.104000 0.089000 +0 0 1 +0.600000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000480 0.017000 0.088000 0.083000 0.105000 +0 0 1 +0.840000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000200 0.007000 0.137000 0.084000 0.164000 +0 0 1 +0.420000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.002900 0.020600 0.141000 0.108000 0.131000 +0 0 1 +0.790000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002400 0.013000 0.092000 0.092000 0.100000 +0 0 1 +0.690000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001400 0.032000 0.148000 0.114000 0.130000 +0 0 1 +0.600000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001900 0.025000 0.095000 0.098000 0.097000 +0 0 1 +0.160000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003300 0.020600 0.065000 0.073000 0.090000 +0 0 1 +0.550000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000820 0.020100 0.080000 0.086000 0.093000 +0 0 1 +0.240000 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0.001200 0.020100 0.114000 0.111000 0.103000 +0 0 1 +0.420000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.002320 0.023000 0.113290 0.096000 0.117760 +0 0 1 +0.860000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002000 0.020600 0.131000 0.101000 0.131000 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004100 0.016000 0.094000 0.092000 0.102000 +0 0 1 +0.350000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.031000 0.239000 0.100000 0.239000 +0 0 1 +0.770000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001600 0.023000 0.144000 0.095000 0.152000 +0 0 1 +0.030000 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.001500 0.020100 0.077000 0.076000 0.101000 +0 0 1 +0.460000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.019000 0.116000 0.090000 0.129000 +0 0 1 +0.760000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003100 0.012000 0.100000 0.070000 0.143000 +0 0 1 +0.260000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.720000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.013700 0.017000 0.067000 0.075000 0.089000 +0 1 0 +0.690000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001100 0.019000 0.135000 0.096000 0.141000 +0 0 1 +0.640000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000020 0.020600 0.125000 0.113000 0.110000 +0 0 1 +0.610000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.032000 0.198000 0.155000 0.128000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.000250 0.017000 0.083000 0.092000 0.090000 +0 0 1 +0.240000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000060 0.017000 0.066000 0.079000 0.084000 +0 0 1 +0.810000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.015000 0.114000 0.099000 0.115000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000810 0.020800 0.117000 0.096000 0.122000 +0 0 1 +0.140000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.003000 0.027000 0.080000 0.083000 0.097000 +0 0 1 +0.510000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001200 0.023000 0.072000 0.084000 0.085000 +0 0 1 +0.300000 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0.031000 0.013000 0.066000 0.088000 0.075000 +0 0 1 +0.550000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.006100 0.023000 0.088000 0.091000 0.097000 +0 1 0 +0.480000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000300 0.026000 0.119000 0.120000 0.100000 +0 0 1 +0.810000 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.004800 0.020100 0.130000 0.116000 0.110000 +0 0 1 +0.140000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.008000 0.121000 0.095000 0.127000 +0 0 1 +0.280000 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.002200 0.011000 0.089000 0.093000 0.096000 +0 0 1 +0.440000 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0.001600 0.017000 0.087000 0.089000 0.098000 +0 0 1 +0.600000 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0.000010 0.023000 0.116000 0.094000 0.123000 +0 0 1 +0.520000 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0.003400 0.023000 0.084000 0.072000 0.117000 +0 0 1 +0.320000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001890 0.020600 0.134000 0.129000 0.104000 +0 0 1 +0.870000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.016000 0.113290 0.096000 0.117760 +0 0 1 +0.490000 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0.002320 0.020100 0.113290 0.096000 0.117760 +0 0 1 +0.480000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.007100 0.014000 0.088000 0.093000 0.095000 +0 1 0 +0.640000 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0.000920 0.009000 0.039000 0.091000 0.043000 +0 0 1 +0.780000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.017000 0.104000 0.076000 0.137000 +0 0 1 +0.390000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.001200 0.025000 0.117000 0.104000 0.113000 +0 0 1 +0.570000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0.001890 0.020600 0.111180 0.099000 0.112070 +0 0 1 +0.400000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002700 0.020000 0.128000 0.102000 0.126000 +0 0 1 +0.290000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.001300 0.016000 0.090000 0.097000 0.093000 +0 0 1 +0.280000 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0.009390 0.026000 0.089000 0.102000 0.087000 +0 1 0 +0.830000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002900 0.013000 0.092000 0.100000 0.092000 +0 0 1 +0.800000 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0.027000 0.101000 0.084000 0.121000 +0 0 1 +0.510000 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0.000460 0.020100 0.186000 0.115000 0.162000 +0 0 1 +0.360000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002320 0.020100 0.103000 0.081000 0.127000 +0 0 1 +0.630000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0.003200 0.019000 0.114000 0.100000 0.114000 +0 0 1 +0.390000 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0.001500 0.028000 0.131000 0.126000 0.104000 +0 0 1 diff --git a/lib/ann/fann/datasets/two-spiral.test b/lib/ann/fann/datasets/two-spiral.test new file mode 100644 index 0000000..a2bba47 --- /dev/null +++ b/lib/ann/fann/datasets/two-spiral.test @@ -0,0 +1,387 @@ +193 2 1 +0.485007 0.652173 +1 +0.544131 0.486615 +1 +0.637044 0.333021 +1 +0.603195 0.415316 +0 +0.396805 0.584684 +1 +0.158572 0.603566 +0 +0.023860 0.355564 +0 +0.618358 0.488347 +0 +0.395483 0.468291 +1 +0.434470 0.716004 +0 +0.613526 0.511186 +0 +0.292136 0.246708 +0 +0.843348 0.218225 +0 +0.077295 0.458364 +1 +0.768115 0.526413 +0 +0.614840 0.878591 +0 +0.818945 0.329526 +1 +0.318050 0.597247 +0 +0.569746 0.729943 +0 +0.690821 0.518800 +1 +0.915753 0.373886 +0 +0.492152 0.420289 +1 +0.181055 0.670474 +0 +0.887441 0.292911 +0 +0.386474 0.488814 +1 +0.458937 0.504043 +0 +0.507848 0.579711 +0 +0.850242 0.465510 +1 +0.455048 0.524025 +0 +0.274604 0.078310 +0 +0.270964 0.377571 +1 +0.507378 0.425121 +1 +0.565530 0.283996 +1 +0.592042 0.549202 +0 +0.547201 0.655618 +1 +0.610620 0.135348 +1 +0.523071 0.734300 +0 +0.663234 0.366045 +1 +0.613451 0.439364 +0 +0.469781 0.806763 +1 +0.452799 0.344382 +0 +0.381642 0.511653 +1 +1 0.549246 +1 +0.707864 0.753292 +1 +0.545441 0.038647 +0 +0.678841 0.554257 +1 +0.901815 0.621892 +0 +0.454559 0.961353 +1 +0.877118 0.809493 +1 +0.544952 0.475975 +1 +0.578942 0.647701 +1 +0.246834 0.423197 +1 +0.389380 0.864652 +0 +0 0.450754 +0 +0.522607 0.270532 +1 +0.149758 0.534490 +0 +0.122882 0.190507 +0 +0.576922 0.563133 +0 +0.542330 0.579202 +0 +0.637388 0.952914 +1 +0.695653 0.480736 +1 +0.530219 0.193237 +0 +0.231885 0.473587 +1 +0.688781 0.853193 +0 +0.592292 0.804267 +1 +0.750447 0.366140 +0 +0.407958 0.450798 +1 +0.633165 0.061023 +0 +0.202466 0.340959 +0 +0.524657 0.581293 +0 +0.215142 0.847098 +1 +0.725396 0.921690 +1 +0.477393 0.729468 +0 +0.395877 0.694788 +0 +0.412230 0.606941 +1 +0.313684 0.727018 +1 +0.530684 0.811595 +1 +0.797534 0.659041 +1 +0.362612 0.047086 +0 +0.767105 0.418981 +0 +0.587770 0.393059 +0 +0.385160 0.121409 +1 +0.172510 0.400652 +0 +0.216689 0.732501 +0 +0.133967 0.304347 +1 +0.520435 0.432644 +1 +0.658591 0.693254 +0 +0.264412 0.787057 +0 +0.154589 0.465975 +0 +0.514993 0.347827 +0 +0.309179 0.481200 +0 +0.618456 0.464071 +0 +0.475343 0.418707 +1 +0.411924 0.790328 +1 +0.479565 0.567356 +0 +0.457017 0.641679 +1 +0.242962 0.289048 +0 +0.469316 0.188405 +0 +0.430254 0.270057 +1 +0.321159 0.445743 +0 +0.311219 0.146807 +1 +0.242862 0.186670 +1 +0.098185 0.378108 +1 +0.652167 0.784696 +1 +0.072463 0.542106 +1 +0.384446 0.283801 +1 +0.469106 0.557793 +0 +0.307219 0.558473 +0 +0.423078 0.436867 +1 +0.542983 0.358321 +0 +0.934532 0.732263 +1 +0.538496 0.453097 +1 +0.484542 0.342994 +0 +0.753166 0.576803 +0 +0.735588 0.212943 +1 +0.359264 0.763285 +1 +0.545914 0.966184 +1 +0.421058 0.352299 +0 +0.454086 0.033816 +0 +0.249553 0.633860 +1 +0.783311 0.267499 +1 +0.609319 0.633214 +1 +0.347833 0.215304 +0 +0.729036 0.622429 +0 +0.567509 0.373710 +0 +0.604517 0.531709 +0 +0.363040 0.387593 +0 +0.515458 0.657006 +1 +0.193588 0.126633 +0 +0.455869 0.513385 +0 +0.866033 0.695653 +0 +0.677347 0.168216 +1 +0.492622 0.574879 +0 +0.538298 0.888889 +0 +0.922705 0.541636 +0 +0.457670 0.420798 +1 +0.817077 0.760224 +0 +0.636960 0.612407 +1 +0.432491 0.626290 +1 +0.386549 0.560636 +1 +0.232895 0.581019 +1 +0.112559 0.707089 +1 +0.696998 0.661680 +0 +0.827490 0.599348 +1 +0.845411 0.534025 +1 +0.461166 0.499998 +0 +0.362956 0.666979 +0 +0.604123 0.305212 +1 +0.456846 0.535413 +0 +0.339461 0.414184 +0 +0.713958 0.099718 +0 +0.681950 0.402753 +1 +0.065469 0.267737 +0 +0.462169 0.884058 +0 +0.541063 0.495957 +1 +0.543154 0.464587 +1 +0.841428 0.396434 +1 +0.757138 0.813330 +0 +0.692781 0.441527 +1 +0.227053 0.526877 +1 +0.461504 0.546903 +0 +0.407708 0.195733 +0 +0.560048 0.573175 +0 +0.660539 0.585816 +1 +0.381544 0.535929 +1 +0.303002 0.338320 +1 +0.439952 0.426825 +1 +0.461702 0.111111 +1 +0.276727 0.683227 +1 +0.530894 0.442207 +1 +0.784858 0.152902 +0 +0.757038 0.710952 +1 +0.927537 0.457894 +0 +0.286042 0.900282 +1 +0.976140 0.644436 +1 +0.322653 0.831784 +0 +0.537831 0.115942 +1 +0.390681 0.366786 +0 +0.588076 0.209672 +0 +0.366835 0.938977 +1 +0.156652 0.781775 +1 +0.772947 0.473123 +0 +0.640736 0.236715 +0 +0.336766 0.633955 +0 +0.182923 0.239776 +1 +0.476929 0.265700 +1 +0.304347 0.519264 +0 +0.341409 0.306746 +1 +0.806412 0.873367 +1 +0.615554 0.716199 +0 +0.723273 0.316773 +0 +0.686316 0.272982 +0 +0.084247 0.626114 +1 diff --git a/lib/ann/fann/datasets/two-spiral.train b/lib/ann/fann/datasets/two-spiral.train new file mode 100644 index 0000000..e268cb1 --- /dev/null +++ b/lib/ann/fann/datasets/two-spiral.train @@ -0,0 +1,387 @@ +193 2 1 +0.499995 0.653846 +1 +0.544418 0.481604 +1 +0.620200 0.320118 +1 +0.595191 0.404816 +0 +0.404809 0.595184 +1 +0.171310 0.636142 +0 +0.014323 0.403392 +0 +0.617884 0.476556 +0 +0.391548 0.478424 +1 +0.455912 0.721618 +0 +0.615385 0.500005 +0 +0.268835 0.268827 +0 +0.812761 0.187243 +0 +0.076923 0.499997 +1 +0.769231 0.500006 +0 +0.650862 0.864223 +0 +0.799812 0.299678 +1 +0.328106 0.614848 +0 +0.591985 0.722088 +0 +0.692308 0.500005 +1 +0.899757 0.334418 +0 +0.484058 0.419839 +1 +0.200188 0.700322 +0 +0.863769 0.256940 +0 +0.384615 0.499995 +1 +0.457562 0.508439 +0 +0.515942 0.580161 +0 +0.844219 0.431535 +1 +0.456027 0.529379 +0 +0.235571 0.104252 +0 +0.260149 0.400644 +1 +0.500003 0.423077 +1 +0.544088 0.278382 +1 +0.597716 0.540480 +0 +0.562549 0.651021 +1 +0.574101 0.127491 +1 +0.545953 0.731052 +0 +0.649585 0.350424 +1 +0.607934 0.427886 +0 +0.499995 0.807692 +1 +0.437451 0.348979 +0 +0.382116 0.523444 +1 +1 0.500000 +1 +0.731165 0.731173 +1 +0.500002 0.038462 +0 +0.683896 0.536585 +1 +0.910232 0.581604 +0 +0.499998 0.961538 +1 +0.903742 0.769772 +1 +0.543973 0.470621 +1 +0.593481 0.639914 +1 +0.240659 0.448408 +1 +0.425899 0.872509 +0 +0 0.500000 +0 +0.500006 0.269231 +1 +0.155781 0.568465 +0 +0.096258 0.230228 +0 +0.583945 0.556095 +0 +0.550746 0.575954 +0 +0.680302 0.935290 +1 +0.693329 0.461550 +1 +0.500005 0.192308 +0 +0.230769 0.499994 +1 +0.721691 0.831791 +0 +0.621423 0.793156 +1 +0.735853 0.342415 +0 +0.402284 0.459520 +1 +0.589105 0.052045 +0 +0.189081 0.371208 +0 +0.533114 0.579952 +0 +0.251594 0.871762 +1 +0.764429 0.895748 +1 +0.499994 0.730769 +0 +0.415362 0.704317 +0 +0.422537 0.615923 +1 +0.337064 0.743842 +1 +0.560960 0.806496 +1 +0.810919 0.628792 +1 +0.319698 0.064710 +0 +0.757622 0.393295 +0 +0.577463 0.384077 +0 +0.349138 0.135777 +1 +0.165214 0.433402 +0 +0.241631 0.758362 +0 +0.118012 0.341772 +1 +0.514072 0.429271 +1 +0.676772 0.676781 +0 +0.294328 0.807801 +0 +0.153846 0.499995 +0 +0.500005 0.346154 +0 +0.307692 0.499995 +0 +0.615487 0.452168 +0 +0.466886 0.420048 +1 +0.440905 0.797064 +1 +0.485928 0.570729 +0 +0.470919 0.646174 +1 +0.224179 0.315696 +0 +0.439040 0.193504 +0 +0.408015 0.277912 +1 +0.316104 0.463415 +0 +0.278309 0.168209 +1 +0.214440 0.214435 +1 +0.089768 0.418396 +1 +0.678953 0.767832 +1 +0.080336 0.583473 +1 +0.363783 0.296127 +1 +0.474240 0.562183 +0 +0.313445 0.577267 +0 +0.416055 0.443905 +1 +0.529081 0.353826 +0 +0.953056 0.687662 +1 +0.534725 0.448035 +1 +0.469053 0.344394 +0 +0.759341 0.551592 +0 +0.705672 0.192199 +1 +0.385925 0.775385 +1 +0.590978 0.957385 +1 +0.406519 0.360086 +0 +0.409022 0.042615 +0 +0.264147 0.657585 +1 +0.758369 0.241638 +1 +0.622380 0.622388 +1 +0.321047 0.232168 +0 +0.739851 0.599356 +0 +0.555199 0.366750 +0 +0.608452 0.521576 +0 +0.352098 0.401168 +0 +0.530947 0.655606 +1 +0.160045 0.160044 +0 +0.455582 0.518396 +0 +0.881988 0.658228 +0 +0.643511 0.153547 +1 +0.499997 0.576923 +0 +0.575968 0.881942 +0 +0.923077 0.500003 +0 +0.449254 0.424046 +1 +0.839782 0.727039 +0 +0.647902 0.598832 +1 +0.444801 0.633250 +1 +0.392066 0.572114 +1 +0.242378 0.606705 +1 +0.136231 0.743060 +1 +0.711862 0.641568 +0 +0.834786 0.566598 +1 +0.846154 0.500005 +1 +0.538462 0.500002 +1 +0.379800 0.679882 +0 +0.584638 0.295683 +1 +0.459204 0.540793 +0 +0.331216 0.430082 +0 +0.672945 0.082478 +0 +0.671894 0.385152 +1 +0.046944 0.312338 +0 +0.499995 0.884615 +0 +0.542438 0.491561 +1 +0.540796 0.459207 +1 +0.828690 0.363858 +1 +0.785560 0.785565 +0 +0.686555 0.422733 +1 +0.231226 0.553456 +1 +0.465275 0.551965 +0 +0.378577 0.206844 +0 +0.567988 0.567994 +0 +0.668784 0.569918 +1 +0.384513 0.547832 +1 +0.288138 0.358432 +1 +0.432012 0.432006 +1 +0.424032 0.118058 +1 +0.296023 0.703969 +1 +0.525760 0.437817 +1 +0.748406 0.128238 +0 +0.775821 0.684304 +1 +0.919664 0.416527 +0 +0.327055 0.917522 +1 +0.985677 0.596608 +1 +0.356489 0.846453 +0 +0.500005 0.115385 +1 +0.377620 0.377612 +0 +0.559095 0.202936 +0 +0.410895 0.947955 +1 +0.187239 0.812757 +1 +0.768774 0.446544 +0 +0.614075 0.224615 +0 +0.350415 0.649576 +0 +0.160218 0.272961 +1 +0.454047 0.268948 +1 +0.306671 0.538450 +0 +0.323228 0.323219 +1 +0.839955 0.839956 +1 +0.636217 0.703873 +0 +0.703977 0.296031 +0 +0.662936 0.256158 +0 +0.100243 0.665582 +1 diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Config/Languages.txt b/lib/ann/fann/docs/NaturalDocs-1.52/Config/Languages.txt new file mode 100755 index 0000000..64ab0ad --- /dev/null +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Config/Languages.txt @@ -0,0 +1,286 @@ +Format: 1.52 + +# This is the main Natural Docs languages file. If you change anything here, +# it will apply to EVERY PROJECT you use Natural Docs on. If you'd like to +# change something for just one project, edit the Languages.txt in its project +# directory instead. + + +#------------------------------------------------------------------------------- +# SYNTAX: +# +# Unlike other Natural Docs configuration files, in this file all comments +# MUST be alone on a line. Some languages deal with the # character, so you +# cannot put comments on the same line as content. +# +# Also, all lists are separated with spaces, not commas, again because some +# languages may need to use them. +# +# Language: [name] +# Defines a new language. Its name can use any characters. +# +# The language Shebang Script is special. It's entry is only used for +# extensions, and files with those extensions have their shebang (#!) lines +# read to determine the real language of the file. Extensionless files are +# always treated this way. +# +# The language Text File is also special. It's treated as one big comment +# so you can put Natural Docs content in them without special symbols. Also, +# if you don't specify a package separator, ignored prefixes, or enum value +# behavior, it will copy those settings from the language that is used most +# in the source tree. +# +# Extensions: [extension] [extension] ... +# Defines the file extensions of the language's source files. You can use * +# to mean any undefined extension. +# +# Shebang Strings: [string] [string] ... +# Defines a list of strings that can appear in the shebang (#!) line to +# designate that it's part of the language. +# +# Ignore Prefixes in Index: [prefix] [prefix] ... +# Ignore [Topic Type] Prefixes in Index: [prefix] [prefix] ... +# Specifies prefixes that should be ignored when sorting symbols in an +# index. Can be specified in general or for a specific topic type. +# +#------------------------------------------------------------------------------ +# For basic language support only: +# +# Line Comments: [symbol] [symbol] ... +# Defines a space-separated list of symbols that are used for line comments, +# if any. +# +# Block Comments: [opening sym] [closing sym] [opening sym] [closing sym] ... +# Defines a space-separated list of symbol pairs that are used for block +# comments, if any. +# +# Package Separator: [symbol] +# Defines the default package separator symbol. The default is a dot. +# +# [Topic Type] Prototype Enders: [symbol] [symbol] ... +# When defined, Natural Docs will attempt to get a prototype from the code +# immediately following the topic type. It stops when it reaches one of +# these symbols. Use \n for line breaks. +# +# Line Extender: [symbol] +# Defines the symbol that allows a prototype to span multiple lines if +# normally a line break would end it. +# +# Enum Values: [global|under type|under parent] +# Defines how enum values are referenced. The default is global. +# global - Values are always global, referenced as 'value'. +# under type - Values are under the enum type, referenced as +# 'package.enum.value'. +# under parent - Values are under the enum's parent, referenced as +# 'package.value'. +# +# Perl Package: [perl package] +# Specifies the Perl package used to fine-tune the language behavior in ways +# too complex to do in this file. +# +#------------------------------------------------------------------------------ +# For full language support only: +# +# Full Language Support: [perl package] +# Specifies the Perl package that has the parsing routines necessary for full +# language support. +# +#------------------------------------------------------------------------------- + +# The following languages MUST be defined in this file: +# +# Text File, Shebang Script + +# If you add a language that you think would be useful to other developers +# and should be included in Natural Docs by default, please e-mail it to +# languages [at] naturaldocs [dot] org. + + +Language: Text File + + Extension: txt + + +Language: Shebang Script + + Extension: cgi + + +Language: C/C++ + + Extensions: c cpp h hpp cxx hxx + Ignore Function Prefix in Index: ~ + Line Comment: // + Block Comment: /* */ + Package Separator: :: + Enum Values: Under parent + Class Prototype Enders: ; { + Function Prototype Enders: ; { + Variable Prototype Enders: ; = + + +Language: C# + + Extension: cs + Ignore Prefix in Index: @ + Full Language Support: NaturalDocs::Languages::CSharp + + +Language: Java + + Extension: java + Line Comment: // + Block Comment: /* */ + Enum Values: Under type + Function Prototype Ender: { + Variable Prototype Enders: ; = + + +Language: JavaScript + + Extension: js + Line Comment: // + Block Comment: /* */ + Enum Values: Under type + Function Prototype Ender: { + Variable Prototype Enders: ; = , } + + +Language: Perl + + Extensions: pl pm + Shebang String: perl + Ignore Variable Prefixes in Index: $ @ % * + Full Language Support: NaturalDocs::Languages::Perl + + +Language: Python + + Extension: py + Shebang String: python + Line Comment: # + Function Prototype Ender: : + Variable Prototype Ender: = + Line Extender: \ + + +Language: PHP + + Extensions: inc php php3 php4 phtml + Shebang String: php + Ignore Variable Prefix in Index: $ + Line Comments: // # + Block Comment: /* */ + Function Prototype Enders: ; { + Variable Prototype Enders: ; = + + +Language: SQL + + Extension: sql + Line Comment: -- + Block Comment: /* */ + Enum Values: Global + Function Prototype Enders: , ; ) as As AS is Is IS + Variable Prototype Enders: , ; ) := default Default DEFAULT + Database Trigger Prototype Enders: begin Begin BEGIN as As AS + Database Index Prototype Enders: , ; ) + Perl Package: NaturalDocs::Languages::PLSQL + + +Language: Visual Basic + + Extensions: vb vbs bas cls frm + Line Comment: ' + Enum Values: Under type + Function Prototype Ender: \n + Variable Prototype Enders: \n = + Line Extender: _ + + +Language: Pascal + + Extension: pas + Line Comment: // + Block Comments: { } (* *) + Function Prototype Ender: ; + Variable Prototype Enders: ; = + Perl Package: NaturalDocs::Languages::Pascal + + +Language: Assembly + + Extension: asm + Line Comment: ; + Variable Prototype Ender: \n + Line Extender: \ + + +Language: Ada + + Extensions: ada ads adb + Line Comment: -- + Function Prototype Enders: ; is Is IS + Variable Prototype Enders: ; := + Perl Package: NaturalDocs::Languages::Ada + + +Language: Tcl + + Extensions: tcl exp + Shebang Strings: tclsh wish expect + Line Comment: # + Package Separator: :: + Function Prototype Enders: ; { + Variable Prototype Enders: ; \n + Line Extender: \ + Perl Package: NaturalDocs::Languages::Tcl + + +Language: Ruby + + Extension: rb + Shebang String: ruby + Ignore Variable Prefixes in Index: $ @ @@ + Line Comment: # + Enum Values: Under parent + Function Prototype Enders: ; \n + Variable Prototype Enders: ; \n = + Line Extender: \ + + +Language: Makefile + + Extensions: mk mak make + Line Comment: # + + +Language: ActionScript + + Extensions: as mxml + Full Language Support: NaturalDocs::Languages::ActionScript + + +Language: ColdFusion + + Extensions: cfm cfml cfc + Line Comment: // + Block Comments: /* */ + Function Prototype Enders: { < + + +Language: R + + Extension: r + Line Comment: # + Function Prototype Enders: { ; + Variable Prototype Enders: <- = ; \n + + +Language: Fortran + + Extensions: f90 f95 f03 + Line Comment: ! + Function Prototype Ender: \n + Variable Prototype Enders: \n = => + Line Extender: & diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Config/Topics.txt b/lib/ann/fann/docs/NaturalDocs-1.52/Config/Topics.txt new file mode 100755 index 0000000..0f13830 --- /dev/null +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Config/Topics.txt @@ -0,0 +1,382 @@ +Format: 1.52 + +# This is the main Natural Docs topics file. If you change anything here, it +# will apply to EVERY PROJECT you use Natural Docs on. If you'd like to +# change something for just one project, edit the Topics.txt in its project +# directory instead. + + +#------------------------------------------------------------------------------- +# SYNTAX: +# +# Topic Type: [name] +# Creates a new topic type. Each type gets its own index and behavior +# settings. Its name can have letters, numbers, spaces, and these +# charaters: - / . ' +# +# The Enumeration type is special. It's indexed with Types but its members +# are indexed with Constants according to the rules in Languages.txt. +# +# Plural: [name] +# Sets the plural name of the topic type, if different. +# +# Keywords: +# [keyword] +# [keyword], [plural keyword] +# ... +# Defines a list of keywords for the topic type. They may only contain +# letters, numbers, and spaces and are not case sensitive. Plural keywords +# are used for list topics. +# +# Index: [yes|no] +# Whether the topics get their own index. Defaults to yes. Everything is +# included in the general index regardless of this setting. +# +# Scope: [normal|start|end|always global] +# How the topics affects scope. Defaults to normal. +# normal - Topics stay within the current scope. +# start - Topics start a new scope for all the topics beneath it, +# like class topics. +# end - Topics reset the scope back to global for all the topics +# beneath it. +# always global - Topics are defined as global, but do not change the scope +# for any other topics. +# +# Class Hierarchy: [yes|no] +# Whether the topics are part of the class hierarchy. Defaults to no. +# +# Page Title If First: [yes|no] +# Whether the topic's title becomes the page title if it's the first one in +# a file. Defaults to no. +# +# Break Lists: [yes|no] +# Whether list topics should be broken into individual topics in the output. +# Defaults to no. +# +# Can Group With: [type], [type], ... +# Defines a list of topic types that this one can possibly be grouped with. +# Defaults to none. +#------------------------------------------------------------------------------- + +# The following topics MUST be defined in this file: +# +# Generic, Class, Interface, Section, File, Group, Function, Variable, +# Property, Type, Constant, Enumeration, Event, Delegate + +# If you add something that you think would be useful to other developers +# and should be included in Natural Docs by default, please e-mail it to +# topics [at] naturaldocs [dot] org. + + +Topic Type: Generic + + Index: No + Keywords: + topic, topics + about, list + + +Topic Type: Class + + Plural: Classes + Scope: Start + Class Hierarchy: Yes + Page Title If First: Yes + Can Group With: Interfaces + + Keywords: + class, classes + structure, structures + struct, structs + package, packages + namespace, namespaces + + +Topic Type: Interface + + Plural: Interfaces + Scope: Start + Class Hierarchy: Yes + Page Title If First: Yes + Can Group With: Classes + + Keywords: + interface, interfaces + + +Topic Type: Section + + Plural: Sections + Index: No + Scope: End + Page Title If First: Yes + + Keywords: + section + title + + +Topic Type: File + + Plural: Files + Scope: Always global + Page Title If First: Yes + + Keywords: + file, files + program, programs + script, scripts + document, documents + doc, docs + header, headers + + +Topic Type: Group + + Plural: Groups + Index: No + + Keywords: + group + + +Topic Type: Function + + Plural: Functions + Break Lists: Yes + Can Group With: Properties + + Keywords: + function, functions + func, funcs + procedure, procedures + proc, procs + routine, routines + subroutine, subroutines + sub, subs + method, methods + callback, callbacks + constructor, constructors + destructor, destructors + operator, operators + + +Topic Type: Variable + + Plural: Variables + Can Group With: Types, Constants, Macros, Enumerations + + Keywords: + variable, variables + var, vars + integer, integers + int, ints + uint, uints + long, longs + ulong, ulongs + short, shorts + ushort, ushorts + byte, bytes + ubyte, ubytes + sbyte, sbytes + float, floats + double, doubles + real, reals + decimal, decimals + scalar, scalars + array, arrays + arrayref, arrayrefs + hash, hashes + hashref, hashrefs + bool, bools + boolean, booleans + flag, flags + bit, bits + bitfield, bitfields + field, fields + pointer, pointers + ptr, ptrs + reference, references + ref, refs + object, objects + obj, objs + character, characters + wcharacter, wcharacters + char, chars + wchar, wchars + string, strings + wstring, wstrings + str, strs + wstr, wstrs + handle, handles + + +Topic Type: Property + + Plural: Properties + Can Group With: Functions + + Keywords: + property, properties + prop, props + + +Topic Type: Type + + Plural: Types + Can Group With: Variables, Constants, Macros, Enumerations + + Keywords: + type, types + typedef, typedefs + + +Topic Type: Constant + + Plural: Constants + Can Group With: Variables, Types, Macros, Enumerations + + Keywords: + constant, constants + const, consts + + +Topic Type: Enumeration + + Plural: Enumerations + Index: No + Can Group With: Variables, Types, Macros, Constants + + Keywords: + enum, enums + enumeration, enumerations + + +Topic Type: Event + + Plural: Events + Keywords: + event, events + + +Topic Type: Delegate + + Plural: Delegates + Keywords: + delegate, delegates + + +Topic Type: Macro + + Plural: Macros + Can Group With: Variables, Types, Constants + + Keywords: + define, defines + def, defs + macro, macros + + +Topic Type: Database + + Plural: Databases + Page Title If First: Yes + + Keywords: + database, databases + db, dbs + + +Topic Type: Database Table + + Plural: Database Tables + Scope: Start + Page Title If First: Yes + + Keywords: + table, tables + database table, database tables + databasetable, databasetables + db table, db tables + dbtable, dbtables + + +Topic Type: Database View + + Plural: Database Views + Scope: Start + Page Title If First: Yes + + Keywords: + view, views + database view, database views + databaseview, databaseviews + db view, db views + dbview, dbviews + + +Topic Type: Database Index + + Plural: Database Indexes + Keywords: + index, indexes + index, indices + database index, database indexes + database index, database indices + databaseindex, databaseindexes + databaseindex, databaseindices + db index, db indexes + db index, db indices + dbindex, dbindexes + dbindex, dbindices + key, keys + database key, database keys + databasekey, databasekeys + db key, db keys + dbkey, dbkeys + primary key, primary keys + primarykey, primarykeys + database primary key, database primary keys + databaseprimarykey, databaseprimarykeys + db primary key, db primary keys + dbprimarykey, dbprimarykeys + + +Topic Type: Database Cursor + + Plural: Database Cursors + Keywords: + cursor, cursors + database cursor, database cursors + databasecursor, databasecursors + db cursor, db cursors + dbcursor, dbcursors + + +Topic Type: Database Trigger + + Plural: Database Triggers + Keywords: + trigger, triggers + database trigger, database triggers + databasetrigger, databasetriggers + db trigger, db triggers + dbtrigger, dbtriggers + + +Topic Type: Cookie + + Plural: Cookies + Scope: Always global + + Keywords: + cookie, cookies + + +Topic Type: Build Target + + Plural: Build Targets + Keywords: + target, targets + build target, build targets + buildtarget, buildtargets diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Help/customizinglanguages.html b/lib/ann/fann/docs/NaturalDocs-1.52/Help/customizinglanguages.html new file mode 100755 index 0000000..0b579d9 --- /dev/null +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Help/customizinglanguages.html @@ -0,0 +1,52 @@ + + +Customizing Natural Docs Languages + + + +
Natural Docs
Customizing
Organizing the MenuCSS StylesTopics and KeywordsLanguages, Indexes,
and Prototypes
Customizing Languages
Languages.txt

Natural Docs has two files called Languages.txt: one in its Config directory, and one in your project directory.  These control the language, index prefix, and prototype features of Natural Docs.

You should edit the one in your project directory whenever possible.  It keeps your changes separate and easier to manage, plus you don’t have to reapply them whenever you upgrade.  Editing the one in Natural Docs’ Config directory would be better only if you’re using Natural Docs with a lot of projects and would like the changes to apply everywhere.

Note that unlike other Natural Docs configuration files, comments can only appear on their own lines.  They cannot appear after something else on a line because settings may need to use the # symbol.  Also, all lists are space-separated instead of comma-separated, again because some settings may need to use the comma symbol.

File Extensions

If Natural Docs doesn’t recognize a file extension you use for your code, it’s not a problem.  You can alter the language definition from your project file to add them.

Alter Language: [your language]
+   Add Extensions: cxx hxx

On the other hand, if it’s scanning some files you don’t want it to scan, you can exclude extensions as well.  Just add this to the top of your file:

Ignore Extensions: c cpp

In this example, Natural Docs will ignore C++ source files, thus only scanning the headers.

Adding Languages

You can add basic language support for any programming language just by editing these configuration files.  Here are the most important settings:

Language: Fictional
+
+   Extensions: fsrc fhdr
+   Shebang Strings: fictional
+   Line Comment: //
+   Block Comment: /* */
+   Package Separator: ::

This tells Natural Docs that any files with the .fsrc or .fhdr extensions are part of our fictional programming language.  Also, any .cgi or extensionless files that have “fictional” in the shebang (#!) line are part of it as well.  Line comments start with // and block comments appear between /* and */.  The default package separator is ::.  Not too hard, huh?

You can also add settings to ignore prefixes in the index and detect prototypes, but those are dealt with in their own sections on this page.

Prototypes

So you’ve added a new language and want to detect prototypes.  Or perhaps you added a custom topic type and want to detect prototypes for that as well.  Here’s an example of the properties you need:

Function Prototype Enders: ; {
+Variable Prototype Enders: ; =

The algorithm for finding prototypes is very simple, yet it works really well in practice.  All the code following the comment is grabbed until it reaches an ender symbol or another comment.  Ender symbols appearing inside parenthesis, brackets, braces, or angle brackets don’t count.  If it reaches an ender symbol and somewhere in that code is the topic title, the code is accepted as the prototype.

So in the example above, variables end at semicolons (the end of the declaration) or equal signs (the default value expression, which we don’t want to include.)  Since the Natural Docs comment for the variable should have appeared right before the definition, that leaves us with the name and type.  Functions are handled similarly: they end at a semicolon (the end of a predeclaration) or an opening brace (the beginning of the body) leaving us with the name, parameters, and return type.

You can do this with any topic type, including custom ones.  Any prototypes that look like they have parameters will be formatted as such automatically.

Line Breaks

For some languages, line breaks are significant.  To have them end a prototype, use \n.  If it has an extender symbol that allows the code to continue on the next line, you can specify that as well.

Function Prototype Ender: \n
+Variable Prototype Ender: \n =
+Line Extender: _
Colors

If you’re collecting prototypes for a custom topic type, they will not automatically get their own background color like the other types have.  You have to define it via CSS.

Index Prefixes

Natural Docs has the ability to ignore prefixes in the indexes.  This is necessary because in certain languages, variables are prefixed with $ or other symbols and we don’t want them to get all grouped together under the symbols heading.  Instead, they appear in the sidebar and are sorted as if they’re not there.

A
 AddProperty, SomeClass
$amount
 Average

However, we can take advantage of this simply to get around coding conventions.  Suppose you prefix all your class names with C.  They’d all form one gigantic group under C in the index.  If you want, you can have it ignored so CCat, CDog, and CMouse get filed under C, D, and M instead.  Just add this to your languages file:

Alter Language: [your language]
+   Add Ignored Class Prefix in Index: C

Now C is ignored in your indexes:

A
CAccount
CAccountHolder
 AddProperty, SomeClass
$amount
 Average

You can include any number of prefixes and can do this for any topic type.  So if you have a bunch of functions that start with COM_ and DB_, you can ignore them too:

Alter Language: [your language]
+   Add Ignored Class Prefix in Index: C
+   Add Ignored Function Prefixes in Index: COM_ DB_
Special Languages

There are two languages with special properties: Shebang Script and Text File.

Shebang Script allows you to define the file extensions where the language is really determined by the shebang (#!) line within it.  For example, .cgi files.  If Natural Docs finds a .cgi file, it sees that it’s a Shebang Script so it opens it up to parse it’s shebang line.  It then searches it for substrings defined by other languages’ Shebang String settings to find out what language it really is.  Files with no extension are always treated this way.

With Text File, the entire file is treated like a comment.  There are no comment symbols required, you can just put Natural Docs content there in plain text.  The most important setting is Extensions.

However, since it is possible to document classes, functions, etc. in text files, they also have their own Package Separator and Ignored [type] Prefixes in Index settings.  To make things easier on you, by default it copies these settings from whichever language has the most source files in your project.  You can override this by manually setting them, but you shouldn’t need to.

Syntax Reference

Unlike other Natural Docs configuration files, comments can only appear on their own lines.  They cannot appear after something else on a line because settings may need to use the # symbol.  Likewise, lists are separated with spaces instead of commas because commas themselves may need to appear on the list.

Singular and plural forms are generally both supported, so you can write Extension or Extensions.  It doesn’t matter if they match how many items are set.  Also, you can use either Ignore or Ignored.

Ignore Extensions: [extension] [extension] ...

Causes the listed file extensions to be ignored, even if they were previously defined to be part of a language.  The list is space-separated.  ex. “Ignore Extensions: cvs txt

Language: [name]
+Alter Language: [name]

Creates a new language or alters an existing one.  Names can use any characters.  Note the special behavior for languages named Shebang Script and Text File.

If you’re altering an existing language and a property has an [Add/Replace] form, you have to specify whether you’re adding to or replacing the list if that property has already been defined.

General Language Properties
Extensions: [extension] [extension] ...
+[Add/Replace] Extensions: [extension] [extension] ...

Defines file extensions for the language’s source files.  The list is space-separated.  ex. “Extensions: c cpp”.  You can use extensions that were previously used by another language to redefine them.  You can use * to specify all undefined extensions.

Shebang Strings: [string] [string] ...
+[Add/Replace] Shebang Strings: [string] [string] ...

Defines a list of strings that can appear in the shebang (#!) line to designate that it’s part of this language.  They can appear anywhere in the line, so php will work for “#!/user/bin/php4”.  You can use strings that were previously used by another language to redefine them.

Ignore Prefixes in Index: [prefix] [prefix] ...
+Ignore [type] Prefixes in Index: [prefix] [prefix] ...
+
+[Add/Replace] Ignored Prefixes in Index: [prefix] [prefix] ...
+[Add/Replace] Ignored [type] Prefixes in Index: [prefix] [prefix] ...

Specifies prefixes that should be ignored when sorting symbols for an index.  Can be specified in general or for a specific topic type.  The prefixes will still appear, the symbols will just be sorted as if they’re not there.  For example, specifying ADO_ for functions will mean that ADO_DoSomething will appear under D instead of A.

Basic Language Support Properties

These attributes are only available for languages with basic language support.

Line Comments: [symbol] [symbol] ...

Defines a space-separated list of symbols that are used for line comments, if any.  ex. “Line Comment: //”.

Block Comments: [opening symbol] [closing symbol] [o.s.] [c.s.] ...

Defines a space-separated list of symbol pairs that are used for block comments, if any.  ex. “Block Comment: /* */”.

Enum Values: [global|under type|under parent]

Defines the behavior of enum values.  The default is global.

GlobalEnum values are always global and will be referenced as “Value”.
Under TypeEnum values appear under the type and will be referenced as “Package.Enum.Value”.
Under ParentEnum values appear under the parent and will be referenced as “Package.Value”
[type] Prototype Enders: [symbol] [symbol] ...

When defined, Natural Docs will attempt to collect prototypes from the code following the specified topic type.  It grabs code until the first ender symbol or the next Natural Docs comment, and if it contains the topic name, it serves as its prototype.  Use \n to specify a line break.  ex. “Function Prototype Enders: { ;”, “Variable Prototype Enders: = ;”.

Line Extender: [symbol]

Defines the symbol that allows a prototype to span multiple lines if normally a line break would end it.

Perl Package: [perl package]

Specifies the Perl package used to fine-tune the language behavior in ways too complex to do in this file.

Full Language Support Properties

These attributes are only available for languages with full language support.

Full Language Support: [perl package]

Specifies the Perl package that has the parsing routines necessary for full language support.

Copyright © 2003-2010 Greg Valure
\ No newline at end of file diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Help/customizingtopics.html b/lib/ann/fann/docs/NaturalDocs-1.52/Help/customizingtopics.html new file mode 100755 index 0000000..92a17f2 --- /dev/null +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Help/customizingtopics.html @@ -0,0 +1,74 @@ + + +Customizing Natural Docs Topics + + + +
Natural Docs
Customizing Topics
Topics.txt

Natural Docs has two files called Topics.txt: one in its Config directory, and one in your project directory.  These control the topic behavior and keywords Natural Docs uses.

You should edit the one in your project directory whenever possible.  It keeps your changes separate and easier to manage, plus you don’t have to reapply them whenever you upgrade.  Editing the one in Natural Docs’ Config directory would be better only if you’re using Natural Docs with a lot of projects and would like the changes to apply everywhere.

Topic Types vs. Keywords

It’s important to understand the difference between topic types and keywords.  Topic types have their own indexes and behavior settings.  You’ll reference them by name when dealing with indexes in the menu file or prototype detection in the language file, but not when documenting your code unless you make their names keywords as well.

You use keywords when documenting your code.  There can be many keywords per topic type, and they are completely interchangable.

Suppose you document a class with the Class keyword and a struct with Struct.  They are both keywords for the Class topic type by default, so they will appear in the same index.  If you wanted structs to have their own index, you would add a topic type for structs and change the Struct keyword to point to it.

Adding Topic Types

If you want to be able to document something in Natural Docs doesn’t handle by default, you want to create your own topic type for it.  Let’s say you’re working on a video game and you want to document all the sound effects because you want to keep track of what each one is for and have an index of them.  You’d add this to your topics file:

Topic Type: Sound Effect
+   Plural: Sound Effects
+   Keywords:
+      sound
+      sound effect
+

Sound effects can now be documented with the sound or sound effect keywords, and they’ll get their own index.  The Plural line just specifies the plural name of the topic type.  It isn’t required, but Natural Docs will use it in some places where the plural would sound more natural, like when grouping topics or naming indexes on the menu.

Here are a couple of other things you may want to add:

Topic Type: Sound Effect
+   Plural: Sound Effects
+   Scope: Always Global
+   Keywords:
+      sound, sounds
+      sound effect, sound effects
+

You can set the scope behavior of the topic type.  Your options are:

NormalTopics stay within the current scope.
StartTopics start a new scope for all the topics beneath it, like class topics.
EndTopics reset the scope back to global for all the topics beneath it.
Always GlobalTopics are defined as global, but do not change the scope for any other topics.

Here we set it to Always Global so that if we document one as part of a class, it will still be global yet will not break the class’ scope.  In other words, we can always link to it with just its name instead of needing something like <Class.Sound>.

The other thing we did was add plural keywords, which you do by using a comma after an existing keyword.  These keywords are used for list topics so we don’t have to document each one individually with the full syntax.

There are more options, these are just the most important ones.  See the full syntax reference for the rest.

Prototypes

If you’d like to collect prototypes for your new topic type, you have to do that by editing Languages.txt.

Changing Keywords
Adding and Changing

If you’re defining your own topic type or editing the main topics file, you simply add to the keywords list:

Topic Type: Sound Effect
+   Keywords:
+      sound, sounds
+      sound effect, sound effects
+

It doesn’t matter if the keyword was previously defined for a different topic type.  Just define it again and the definition will change.

If you want to add keywords to one of the main topic types from the project file, use Alter Topic Type instead:

Alter Topic Type: General
+   Keywords:
+      note
+      notes
+

Natural Docs will keep a list of the main file’s topic types in your project file so that you can do this easily.

Ignoring

Sometimes a keyword just gets in the way.  It’s too common in your comments and Natural Docs keeps accidentally picking them up as topics when that isn’t what you wanted.  You can get rid of keywords completely by either deleting them from the main file or putting this in your project file:

Ignore Keywords:
+   about
+   title
+

If you only have a few, you can use this syntax as well:

Ignore Keywords: note, notes, title
+
Altering Behavior

You can change the behavior of any topic type defined in the main file via your project file.  Just use Alter Topic Type and redefine any property.

Alter Topic Type: Constant
+   Scope: Always Global
+

Natural Docs will keep a list of the main file’s topic types in your project file so you can do this easily.  See the syntax reference below for a full list of your options.

Syntax Reference
Ignore Keywords: [keyword], [keyword] ...
+   [keyword]
+   [keyword], [keyword]
+   ...
+

Ignores the keywords so that they’re not recognized as Natural Docs topics anymore.  Can be specified as a list on the same line and/or following like a normal Keywords section.

Topic Type: [name]
+Alter Topic Type: [name]
+

Creates a new topic type or alters an existing one.  The name can only contain letters, numbers, spaces, and these characters: . - ‘ /.  It isn’t case sensitive, although the original case is remembered for presentation.

There are a number of default types that must be defined in the main file, but they will be listed there since it may change between versions.  The default types can have their keywords or behaviors changed, though, either by editing the default file or by overriding them in the user file.

Properties
Plural: [name]
+

Specifies the plural name of the topic type.  Defaults to the singular name.  Has the same restrictions as the topic type name.

Index: [yes|no]
+

Whether the topic type gets an index.  Defaults to yes.

Scope: [normal|start|end|always global]
+

How the topic affects scope.  Defaults to normal.

NormalTopics stay within the current scope.
StartTopics start a new scope for all the topics beneath it, like class topics.
EndTopics reset the scope back to global for all the topics beneath it.
Always GlobalTopics are defined as global, but do not change the scope for any other topics.
Class Hierarchy: [yes|no]
+

Whether the topic is part of the class hierarchy.  Defaults to no.

Page Title if First: [yes|no]
+

Whether the title of this topic becomes the page title if it is the first topic in a file.  Defaults to no.

Break Lists: [yes|no]
+

Whether list topics should be broken into individual topics in the output.  Defaults to no.

Can Group With: [topic type], [topic type], ...
+

Lists the topic types that can be grouped with this one in the output.  If two or more topic types often appear together, like Functions and Properties, this will allow them to be grouped together under one heading if it would cause too many groups otherwise.

Keywords:
+   [keyword]
+   [keyword], [plural keyword]
+   ...
+

A list of the topic type’s keywords.  Each line after the heading is the keyword and optionally its plural form.  This continues until the next line in “keyword: value” format.

  • Keywords can only have letters, numbers, and spaces.  No punctuation or symbols are allowed.
  • Keywords are not case sensitive.
  • Subsequent keyword sections add to the list.  They don’t replace it.
  • Keywords can be redefined by appearing in later keyword sections.
Copyright © 2003-2010 Greg Valure
\ No newline at end of file diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Help/documenting.html b/lib/ann/fann/docs/NaturalDocs-1.52/Help/documenting.html new file mode 100755 index 0000000..465ca95 --- /dev/null +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Help/documenting.html @@ -0,0 +1,58 @@ + + +Documenting Your Code - Natural Docs + + + +
Natural Docs
Using
Documenting
Your Code
KeywordsRunningTroubleshooting
Documenting Your Code

Here’s a quick example of how to document your code for Natural Docs.  If you’re a new user, we have a walkthrough to get you started.  Otherwise, visit the reference for the full details.

/*
+   Function: Multiply
+
+   Multiplies two integers.
+
+   Parameters:
+
+      x - The first integer.
+      y - The second integer.
+
+   Returns:
+
+      The two integers multiplied together.
+
+   See Also:
+
+      <Divide>
+*/
+int Multiply (int x, int y)
+   {  return x * y;  };
Copyright © 2003-2010 Greg Valure
\ No newline at end of file diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Help/documenting/reference.html b/lib/ann/fann/docs/NaturalDocs-1.52/Help/documenting/reference.html new file mode 100755 index 0000000..3a6b5f3 --- /dev/null +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Help/documenting/reference.html @@ -0,0 +1,147 @@ + + +Documenting Your Code: Reference - Natural Docs + + + +
Natural Docs
Documenting Your Code
int Add (int x,
int y)
Adds two integers.
int Subtract (int x,
int y)
Subtracts two integers.
int Multiply (int x,
int y)
Multiplies two integers.
int Divide (int x,
int y)
Divides two integers.
bool IsEqual (int x,
int y)
Returns whether two integers are equal.
Comments

There is no special comment style for Natural Docs.  You just embed Natural Docs topics into regular comments, and it’s pretty tolerant as far as style goes.  You can use block comments or string together line comments.  The only requirement is that the comments are not on the same line as code.

/* Function: Multiply
+   Multiplies two integers and returns the result. */
+
+// Function: Multiply
+// Multiplies two integers and returns the result.
+

Note that when stringing line comments together, blank lines that you want to include in the documentation must start with the comment symbol as well.  If a line is completely blank, it’s considered the end of the comment and thus the end of the Natural Docs topic.

Boxes and Horizontal Lines

Natural Docs can also handle comment boxes and horizontal lines.  It doesn’t matter what symbols they use.  The boxes don’t need to be closed on the right side, and they can have different symbols for the edges and corners.

/*
+ * Function: Multiply
+ * Multiplies two integers and returns the result.
+ */
+
+/* +-------------------------------------------------+
+   | Function: Multiply                              |
+   | Multiplies two integers and returns the result. |
+   +-------------------------------------------------+ */
+
+//////////////////////////////////////////////////////////////
+//
+//  Function: Multiply
+//  ------------------
+//
+//  Multiplies two integers together and returns the result.
+//
+//////////////////////////////////////////////////////////////
+
Javadoc Style

If you have full language support, you can also use Javadoc-style comments to write Natural Docs documentation.  To do this you repeat the last symbol on the first line of the comment once.  The comment must appear directly above what it’s documenting, and you can omit the topic line if you want (the “Function: Multiply” part.)

/**
+ * Multiplies two integers and returns the result.
+ */
+
+///
+// Multiplies two integers together and returns the result.
+

If you omit the topic line and include any Javadoc tags in the comment, like @param, the entire comment will be treated as Javadoc and can only use Javadoc formatting.  Otherwise it’s treated as a Natural Docs comment and you can use all the formatting options described on this page.  You can have both styles in the same source file, but not in the same comment.

Perl POD

Perl users can also use POD to do block comments.

=begin nd
+
+Function: Multiply
+Multiplies two integers and returns the result.
+
+=cut
+

You can also use NaturalDocs or Natural Docs in place of ND.  None of them are case sensitive.  If for some reason you want to go back to POD documentation instead of using =cut, you can write =end nd.

There’s a second form of just =nd which is offered as a convenience.  However, it is not valid POD.  Perl will skip over it and execute fine, but POD parsers will give errors and possibly include the unformatted text in the output.  Use the longer, valid form unless you know for certain that no one will ever try to run POD on your code.

=nd
+
+Function: Multiply
+Multiplies two integers and returns the result.
+
+=cut
+
Text Files

Documentation can also be included in text files.  Any file with a .txt extension appearing in the source tree and starting with a topic line will included in the documentation.  It will be treated the same as a source file, meaning it will appear in the menu, its topics will be in the indexes, and its topics can be linked to from anywhere in the documentation.  The only difference is you don’t need comment symbols.

Remember that the topic line is required to be the first line of content.  If the first non-blank line is not in the “Function: Multiply” format the file will be ignored.  An easy way to do this is to use the Title keyword, although all of the other ones will work as well.

Title: License
+
+This project is licensed under the GPL.
+

This method is convenient for documenting file formats, configuration settings, the general program architecture, or anything else that isn’t directly tied to a source file.

Keywords, Topics, and Scope

A topic in Natural Docs starts with a topic line in the format “keyword: name”.  You can have multiple topics per comment as long as you separate them with a blank line.  The keywords aren’t case sensitive.

The list of keywords is pretty predictable: Function, Class, Variable, etc.  Just use what you’re documenting.  There are many synonyms as well, so you can use keywords like Func, Procedure, Proc, Method and Constructor.  Look at the full list of keywords to see everything that’s available.

The list of keywords is separated into topic types.  Each type gets its own index, and which specific keyword you use doesn’t matter.  Some also have scoping rules or other behavior as noted.

Scope

Like the code it’s documenting, Natural Docs topics have scope.  This mostly has to do with linking: if you’re in a class you can link to its members by their name alone, but if you’re not, you have to use a notation like class.member or class::member.

If you have full language support and are documenting something that appears in the code, the scope will be handled automatically.  If you’re using text files, have basic language support, or are including a topic that doesn’t correspond to something in the code, scoping follows these rules:

List Topics

If you looked at the list, you saw that most of the keywords have plural forms.  That’s for list topics, which let you document many small things without using the full syntax.  Anything that appears in definition lists within that topic will be treated as if it had its own topic.  It will appear in the indexes and be linkable, just like normal topics.

Function list topics will automatically break apart in the output as well, so it will look the same as if you documented each one individually.

Linking

Linking is the one place where Natural Docs has some negative effect on the readability of the comments.  The alternative would be to automatically guess where links should be, but systems that do that can sometimes pepper your sentences with unintentional links to functions called “is” or “on”.  However, the Natural Docs syntax is still as minimal as possible.  Simply surround any topic you want to link to with angle brackets.  Natural Docs will keep track off all the topics and where they are defined, so you don’t need to use HTML-like syntax or remember what file anything is in.  Also, if the link can’t be resolved to anything, Natural Docs leaves the angle brackets in the output so if something wasn’t intended to be a link (such as #include <somefile.h>) it won’t be mangled.

Let's link to function <Multiply>.
+

Let’s link to function Multiply.

Links and topic names are case sensitive, regardless of whether the language is or not.

When linking to functions, it doesn’t matter if you include empty parenthesis or not.  Both <Function> and <Function()> will work.  However, if you documented the function with parameters as part of the name, you will need to include those parameters whenever linking to it.  It is recommended that you only include parameters in the topic name if you need to distinguish between two functions with the same name.

If the topic has a summary sentence, hovering over the link will give it to you as a tooltip.  If the topic has a prototype, that will be included as well.  You can try it above.

Scope

If a topic is considered part of a class, they can be linked to using any of the three most common class/member notations:  class.member, class::member, and class->member.  Natural Docs will not be confused by <class->member>.  Like in the language itself, if the topic you’re writing is in that class’ scope you can link to it simply as <member>.

If you have multi-level classes and packages, links can be relative as well.  So if you’re in Project::UI::Window::Base and you want to link to Project::UI::Button::Base, just using <Button::Base> will work.

Plurals and Possessives

To make the documentation easier to write and easier to read in the source file, you can include plurals and possessives inside the angle brackets.  In other words, you don’t have to use awkward syntax like <Object>s, although that’s supported as well.  You can simply write <Objects> and it will link to the symbol Object just fine.  It can handle any plural and/or possessive form you can throw at it.  I’m not kidding: Foxes, Fox’s, Foxes’, Children, Mice, Alumni, Indices, Amoebae, Teeth, just try to trip it up.

URLs and E-Mail

You can also link to URLs and e-mail addresses.  It will detect them automatically, but you can also put them in angle brackets if you like.

Visit <http://www.website.com> or send messages to
+email@address.com.
+

E-mail addresses are protected in a way that should avoid spam crawlers.  Although the link above looks and acts like a regular link (try it) the HTML code actually looks like this:

<a href="#"
+ onClick="location.href='mai' + 'lto:' + 'em' + 'ail' + '@'
+          + 'addre' + 'ss.com'; return false;">
+    em<span style="display: none">.nosp@m.</span>ail
+    <span>@</span>
+    addre<span style="display: none">.nosp@m.</span>ss.com
+</a>
+

You can create named links by putting the text, “at”, and then the address in the angle brackets.  This format lets it read naturally in a sentence.

Visit <the website at http://www.website.com> or <e-mail me at email@address.com>.
+
Formatting and Layout

You can apply additional formatting and layout to your Natural Docs content, all in ways that will appear very natural in the source code.

Paragraphs

You can break paragraphs by leaving blank lines between them.  So we have this in our content:

The first paragraph blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah.
+
+The second paragraph blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah.
+

and we get this in our output:

The first paragraph blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah.

The second paragraph blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah.

Bold and Underline

You can apply bold to a stretch of text by surrounding it with asterisks.  You can apply underlining by surrounding it with underscores instead.  With underlining, it doesn’t matter if you use an underscore for every space between words or not; they’ll be converted to spaces if you do.

Some *bold text* and some _underlined text_
+and yet _more_underlined_text_.
+

Some bold text and some underlined text and yet more underlined text.

Headings

You can add headings to your output just by ending a line with a colon and having a blank line above it.

Some text before the heading.
+
+Heading:
+Some text under the heading.
+

Some text before the heading.

Heading

Some text under the heading.

You must have a blank line above the heading or it will not work.  You can skip the blank after it but not before.

Bullet Lists

You can add bullet lists by starting a line with a dash, an asterisk, an o, or a plus.  Bullets can have blank lines between them if you want, and subsequent lines don’t have to be indented.  You end a list by skipping a line and doing something else.

- Bullet one.
+- Bullet two.
+  Bullet two continued.
+- Bullet three.
+
+Some text after the bullet list.
+
+o Spaced bullet one.
+
+o Spaced bullet two.
+Spaced bullet two continued.
+
+o Spaced bullet three.
+
+Some text after the spaced bullet list.
+
  • Bullet one.
  • Bullet two.  Bullet two continued.
  • Bullet three.

Some text after the bullet list.

  • Spaced bullet one.
  • Spaced bullet two.  Spaced bullet two continued.
  • Spaced bullet three.

Some text after the spaced bullet list.

Definition Lists

You can add a definition list by using the format below, specifically “text space dash space text”.  Like bullet lists, you can have blank lines between them if you want, subsequent lines don’t have to be indented, and you end the list by skipping a line and doing something else.

First  - This is the first item.
+Second - This is the second item.
+         This is more of the second item.
+Third  - This is the third item.
+This is more of the third item.
+
+Some text after the definition list.
+
FirstThis is the first item.
SecondThis is the second item.  This is more of the second item.
ThirdThis is the third item.  This is more of the third item.

Some text after the definition list.

Remember that with definition lists, if you’re using the plural form of the keywords each entry can be linked to as if it had its own topic.

Code and Text Diagrams

You can add example code or text diagrams by starting each line with >, |, or :.  If you have a vertical line or text box with the comment, you must separate these symbols from it with a space.

: a = b + c;
+
+>   +-----+     +-----+
+>   |  A  | --> |  B  |
+>   +-----+     +-----+
+>                  |
+>               +-----+
+>               |  C  |
+>               +-----+
+
a = b + c;
+-----+     +-----+
| A | --> | B |
+-----+ +-----+
|
+-----+
| C |
+-----+

For long stretches, this may be too tedious.  You can start a code section by placing (start code) or just (code) alone on a line.  You end it with either (end code) or just (end).  You can’t put any other content on these lines.

(start code)
+
+if (x == 0) {
+   DoSomething();
+}
+
+return x;
+
+(end)
+
if (x == 0) {
DoSomething();
}

return x;

You can also use example, diagram, or table instead of code.  Just use whatever’s appropriate.  Always flexible, it will accept begin for start and it will accept finish or done for end so you don’t have to remember the exact word.

Syntax highlighting will be applied to (start code) sections by default.  If you’d like to also apply it to >, :, and | lines or turn it off completely, use the -hl command line option.

Images

You can include images in your documentation by writing “(see filename)”.  If you put it alone on a line it will be embedded in place.

This is the first paragraph.
+
+(see logo.gif)
+
+This is the second paragraph.
+

This is the first paragraph.

This is the second paragraph.

If it’s not alone on a line the image will appear after the end of the paragraph, the text will become a link to it, and the file name will be used as a caption.

This is the first paragraph (see logo.gif)  This is
+more of the first paragraph.
+

This is the first paragraph (see logo)  This is more of the first paragraph.

logo

The image file names are relative to the source file the comment appears in or any directories specified with the -img command line option.  You can use relative paths like (see images/logo.gif) and (see ../images/logo.gif), but you cannot use absolute paths, URLs, or specify a file that’s not in a folder included by -i or -img.

Natural Docs supports gif, jpg, jpeg, png, and bmp files.

Page Titles

Natural Docs automatically determines the page title as follows:

  • If there’s only one topic in the file, that topic’s title becomes the page title.
  • Otherwise, if the first topic in the file is a class, section, or file, that topic’s title becomes the page title.
  • Otherwise, the file name becomes the page title.

This should be enough for most people.  However, if you don’t like the page title Natural Docs has chosen for you, add a “Title: [name]” comment to the top of the file to override it.  Title is a synonym of Section, so that will satisfy the second rule and make it the page title.

Summaries

Summaries are automatically generated for every file, class, and section.  You don’t have to do anything special to get them.

There are two things you may want to keep in mind when documenting your code so that the summaries are nicer.  The first is that they use the first sentence in the topic as the description, so long as it’s plain text and not something like a bullet list.  It will also appear in the tooltip whenever that topic is linked to.

The second is that you may want to manually add group topics to divide long lists and make the summaries easier to navigate.  Natural Docs will automatically group them by type if you do not, but sometimes you want to be more specific.  You don’t need to provide a description, just adding a “Group: [name]” comment is sufficient.  Note that once you manually add a group automatic grouping is completely turned off for that class.

Here’s an example summary.  Note that as before, when you hover over a link, you’ll get the prototype and summary line as a tooltip.

Summary
A example class that does arithmetic with functions for people scared of operators.
Adds two integers.
Subtracts two integers.
Multiplies two integers.
Divides two integers.
Returns whether two integers are equal.
Javadoc Compatibility

If you have full language support Natural Docs will also extract documentation from actual Javadoc comments, not just Natural Docs comments written with the Javadoc comment symbols.  This provides you with a good method of migrating to Natural Docs as you don’t have to convert all of your existing documentation.

/**
+ * Multiplies two integers.
+ *
+ * @param x The first integer.
+ * @param y The second integer.
+ * @return The two integers multiplied together.
+ * @see Divide
+ */
+

Multiply

int Multiply (int x,
int y)

Multiplies two integers.

Parameters

xThe first integer.
yThe second integer.

Returns

The two integers multiplied together.

See Also

Divide

While most Javadoc tags and simple HTML formatting are supported, Natural Docs is not a full Javadoc parser and may not support some advanced tags and HTML.  See this page for a list of what’s supported and what isn’t.

A source file can contain both Natural Docs and Javadoc comments.  However, you cannot mix the two within a single comment.  For example, you can’t use asterisks for bold in a @param line.  If a comment is written with the Javadoc comment symbols (repeat the last symbol of the first line once) doesn’t have a topic line (like “Function: Multiply”) and uses Javadoc tags (like @param) the comment is treated as Javadoc.  If any of those conditions aren’t true it’s treated as a Natural Docs comment.

Copyright © 2003-2010 Greg Valure
\ No newline at end of file diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Help/documenting/walkthrough.html b/lib/ann/fann/docs/NaturalDocs-1.52/Help/documenting/walkthrough.html new file mode 100755 index 0000000..055d0b8 --- /dev/null +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Help/documenting/walkthrough.html @@ -0,0 +1,181 @@ + + +Documenting Your Code - Walkthrough - Natural Docs + + + +
Natural Docs
Documenting Your Code
Our First Function

So you downloaded Natural Docs, you figured out the command line, and now it’s time to start documenting your code.  Natural Docs tries to make this very straightforward and painless, so let’s just dive right in:

/*
+   Function: Multiply
+   Multiplies two integers and returns the result.
+*/
+int Multiply (int x, int y)
+   {  return x * y;  };
+

That’s all you need.  Run Natural Docs and here’s what appears in your output:

Multiply

int Multiply (int x,
int y)

Multiplies two integers and returns the result.

Okay, so that’s all you need, but probably not all you want.  After all, you’ve got some real functions to document, not little one-liners.  Here’s something more elaborate:

/*
+   Function: Multiply
+
+   Multiplies two integers.
+
+   Parameters:
+
+      x - The first integer.
+      y - The second integer.
+
+   Returns:
+
+      The two integers multiplied together.
+
+   See Also:
+
+      <Divide>
+*/
+int Multiply (int x, int y)
+   {  return x * y;  };
+

Multiply

int Multiply (int x,
int y)

Multiplies two integers.

Parameters

xThe first integer.
yThe second integer.

Returns

The two integers multiplied together.

See Also

Divide

int Add (int x,
int y)
Adds two integers.
int Subtract (int x,
int y)
Subtracts two integers.
int Multiply (int x,
int y)
Multiplies two integers.
int Divide (int x,
int y)
Divides two integers.
bool IsEqual (int x,
int y)
Returns whether two integers are equal.

Still not too scary, huh?  Notice the comments are just as readable as the output.  No tags littered about, and the structure is very natural.  You probably get it just by looking at it, but let’s go through the details anyway.

Function: Multiply
+

Every one of these comments you write (called topics) are going to start with a topic line in the format “keyword: title”.  There are a lot of keywords, but they’re exactly what you’d expect: Function, Class, Variable, etc.  There are also a lot of synonyms so instead of Function you could use Func, Procedure, Proc, Method, Constructor, etc.  It’s designed so you can just use whatever it is you’re describing without memorizing anything.  You can glance over the keyword list but you shouldn’t have to consult it very often.

The other part of the topic line is the title.  It should match whatever it is you’re documenting, in this case the function name Multiply.  Natural Docs is case sensitive even if your programming language isn’t, so make sure you match it closely or you might not get the prototype in your output, which is the little gray box.  You don’t need to include the parameters in the title.  In fact, it’s better if you don’t.

Parameters:
+
+Returns:
+
+See Also:
+

You can also define headings by skipping a line and ending the text with a colon.  If you’re used to other documentation systems you may think there’s only a handful of headings to choose from, but any text formatted this way will become one.  If you want a heading called Dependencies you can go right ahead and add it.

x - The first integer.
+y - The second integer.
+

This is what’s called a definition list.  You can use more than one line to finish the definition, as it won’t stop until you skip a line.

x - The first integer.
+y - The second integer with a long description.
+    This is still part of the description.
+
+This is a new paragraph because we skipped a line.
+

Indentation doesn’t matter either, so even if the second description line wasn’t indented to match the first, it would still be considered part of it.

<Divide>
+

This is how we link in Natural Docs, with angle brackets.  There will be a lot more to say about this later, but for now I’ll just show you something cool.  Hover over it in the output below:

You get that everywhere in your generated documentation.

Classes and Scope

So that’s good for our one function of questionable usefulness, but what if we have a whole class of questionable usefulness?  We can document the class and it’s members the same way we documented the individual function, with a Natural Docs comment right above each element.  We’ll go back to short descriptions to keep the example manageable.

/*
+   Class: Counter
+   A class that manages an incrementing counter.
+*/
+class Counter
+   {
+   public:
+
+      /*
+         Constructor: Counter
+         Initializes the object.
+      */
+      Counter()
+         {  value = 0;  };
+
+      /*
+         Function: Value
+         Returns the value of the counter.
+      */
+      int Value()
+         {  return value;  };
+
+      /*
+         Function: Increment
+         Adds one to the counter.
+      */
+      void Increment()
+         {  value++;  };
+
+   protected:
+
+      /*
+         Variable: value
+         The counter's value.
+      */
+      int value;
+   };
+

Everything’s the same, we just substituted Class and Variable for the Function keyword when it was appropriate.  We also used Constructor, but we could have just as easily used Function there too.  They’re both keywords for the same thing so it doesn’t matter.

Scope

Like the source code itself, Natural Docs topics have scope.  Value and Increment are seen as part of class Counter, just like they are in the code.  Why is this important?  Linking.  Linking from one topic to another has similar rules to how one function can call another.  Since Value is in the same class as Increment, it’s topic can link to it with just <Increment>.  However, linking to Increment from a different class would require <Counter.Increment> instead.  You can actually use any of the three most common class/member notations: <Counter.Increment>, <Counter::Increment>, and <Counter->Increment>.

If your programming language has full language support, the scope is determined by the code and applied automatically.  However, if you only have basic language support it follows these rules:

  • Any topic that appears under a Class topic (or anything that says Starts Scope) is part of that class.
  • Any topic that appears under a Section topic (or anything that says Ends Scope) is global again.
  • Any File topic (or anything that says Always Global) is global no matter what and doesn’t affect any other topics.

Chances are you would have written the same thing even if you didn’t know this and it would have just worked.  You usually won’t need to think about them at all.  However, it’s still good to be aware of them in case something doesn’t behave the way you expected it to.

You actually know enough to go start documenting now.  I know Mr. ScrollBar says there’s more on this page you can learn, but if you want to skip out early, you can.  Really.  I don’t mind.

More Formatting

Okay then.  On we go.

Paragraphs, Bold, and Underline

The syntax for these three is exactly what you would expect it to be.

*Bold text*
+
+_Underlined text_
+
+Paragraphs are broken by skipping lines.  So the two
+lines above each have their own paragraph, but these
+three lines are all part of the same one.
+

Bold text

Underlined text

Paragraphs are broken by skipping lines.  So the two lines above each have their own paragraph, but these three lines are all part of the same one.

When underlining multiple words, you can use an underscore for each space or only put them at the edges like we did above.  Both ways will work.

Bullet Lists

You can add bullet lists by starting a line with a dash, an asterisk, an o, or a plus.  Like definition lists, bullets can span multiple lines and indentation doesn’t matter.  To end a bullet you have to skip a line before doing something else.

- Bullet one.
+- Bullet two.
+  Bullet two continued.
+- Bullet three.
+
+Some text after the bullet list.
+
  • Bullet one.
  • Bullet two.  Bullet two continued.
  • Bullet three.

Some text after the bullet list.

Code and Text Diagrams

You can add example code or text diagrams by starting each line with >, |, or :.

> a = b + c;
+> b++;
+
a = b + c;
b++;

If you have a long stretch, you can use (start code) and (end) instead.

(start code)
+
+if (x == 0) {
+   DoSomething();
+}
+
+return x;
+
+(end)
+
if (x == 0) {
DoSomething();
}

return x;

You can also use example, diagram, or table instead of code.  Just use whatever’s appropriate.

As I mentioned before, we don’t want you to worry about memorizing minor details, so in that spirit it will also accept begin for start and finish or done for end.  You can also write (end code) instead of just (end).

Syntax highlighting will be applied to (start code) sections by default.  If you’d like to also apply it to >, :, and | lines or turn it off completely, use the -hl command line option.

Images

You can include images in your documentation by writing “(see filename)”.  If you put it alone on a line it will be embedded in place, or if you put it in a paragraph it will appear after it using the file name as a caption.

This is the first paragraph.
+
+(see logo.gif)
+
+This is the second paragraph (see logo.gif)  This
+is more of the second paragraph.
+

This is the first paragraph.

This is the second paragraph (see logo)  This is more of the second paragraph.

logo

The image file names are relative to the source file the comment appears in, so if your file is C:\Project\SourceFile.cpp and your image is C:\Project\Images\Logo.gif, you would write (see Images/Logo.gif).  However, you can also specify image directories in the command line with -img, so if all your source files are in C:\Project\Source and all your images are in C:\Project\Images, you can put “-img C:\Project\Images” on the command line and just use (see logo.gif) again.

More on Linking

Yes, there’s still more to linking.  You can link to URLs and e-mail addresses, but in this case the angle brackets are optional.

Visit <http://www.website.com> or send messages to
+email@address.com.
+

You can create named links by putting the text, “at”, and then the address in the angle brackets.  This format lets it read naturally in a sentence.

Visit <the website at http://www.website.com> or <e-mail me at email@address.com>.
+

E-mail addresses are protected from spam crawlers.  They look and act like regular links (try it above) but you can see the actual HTML that’s generated for them here.

As for regular links, to help them fit into sentences easily you can actually include plurals and possessives inside the angle brackets.  In other words, you don’t have to use awkward syntax like <Object>s, although that’s supported as well.  You can simply write <Objects> and it will link to the symbol Object just fine.  It can handle any plural and/or possessive form you can throw at it.  I’m not kidding: Foxes, Fox’s, Foxes’, Children, Mice, Alumni, Indices, Amoebae, Teeth, just try to trip it up.

Extra Documentation

Sometimes you want to include documentation that doesn’t correspond directly to a code element.  Maybe you want to include license information or architecture notes.  There are two ways to do this.

Freestanding Topics

Just because most of the things you write will directly correspond to an element of your source code doesn’t mean they have to.  You can pick any of the available keywords and create a freestanding comment with it.  For example:

/*
+   Class: Counter
+   A class that manages an incrementing counter.
+*/
+class Counter
+   {
+   public:
+
+      /*
+         About: License
+         This file is licensed under the GPL.
+      */
+
+      /*
+         Constructor: Counter
+         Initializes the object.
+      */
+      Counter()
+         {  value = 0;  };
+   ...
+

The extra license topic will be added to the output just like the functions.

License

This file is licensed under the GPL.

Remember that because of scope, the License topic will actually be considered part of Counter the way it’s listed above.  You’d link to it from outside Counter with <Counter.License>.  That idea may take some getting used to, but if an extra topic only applies to one class that’s actually the most appropriate way to do it.  In this case it’s a license, so if it applies to the entire project instead you could put the comment above the class to make it global, just like moving a function there would.

Text Files

You can also add additional documentation with text files.  If you put a file with a .txt extension in your source tree and start it with a topic line, it’s contents will be treated the same as if it were in a comment in your source code.  That means you can define multiple topics within it, you can link between them and topics in your source code, and you can use all available formatting options.

Title: License
+
+This file is licensed under the GPL.
+
+I can link to <Counter> and <Counter.Increment>, and
+the documentation in that class can even link back
+with <License>.
+
+
+About: Second Topic
+
+I can create a *second* topic in here too, complete
+with formatting.
+

The thing some people forget though is that you must start it with a topic line, like “Title: License” above.  This is how Natural Docs tells it apart from regular text files.

Abbreviated Syntax

Here’s another useful thing you may want to know about.  Suppose you have a lot of little things to document, like constants.  Writing a separate topic for each one can be very tedious, no matter how much you compress it:

// Constant: COUNTER_NORMAL
+// Causes the counter to increment normally.
+#define COUNTER_NORMAL 0
+
+// Constant: COUNTER_ODD
+// Causes the counter to only increment in odd numbers.
+#define COUNTER_ODD 1
+
+// Constant: COUNTER_EVEN
+// Causes the counter to only increment in even numbers.
+#define COUNTER_EVEN 2
+

One thing you may have noticed in the keyword list is that they almost all have plural forms.  These are used to create what are called list topics.  You define a topic using a plural keyword, and then anything appearing in a definition list within it creates a linkable symbol as if they each had their own topic.  For example:

/*
+   Constants: Counter Modes
+
+   COUNTER_NORMAL - Causes the counter to increment normally.
+   COUNTER_ODD    - Causes the counter to only increment in odd numbers.
+   COUNTER_EVEN   - Causes the counter to only increment in even numbers.
+*/
+#define COUNTER_NORMAL 0
+#define COUNTER_ODD 1
+#define COUNTER_EVEN 2
+

I would now be able to write <COUNTER_ODD> and have it work the same as it would with the first example.

Using the enum or enumeration keyword is special because it automatically behaves in a similar manner.  This allows both the enum and its values to be documented in the same place.

/*
+   Enum: CounterMode
+
+   NORMAL - Causes the counter to increment normally.
+   ODD    - Causes the counter to only increment in odd numbers.
+   EVEN   - Causes the counter to only increment in even numbers.
+*/
+enum CounterMode { NORMAL, ODD, EVEN };
+

That’s it, you’re done with this walkthrough.  You should know enough now to make very good use of Natural Docs.  If you still want to know more, you can look in the reference for some of the smaller details we may have skipped over.  Also, look at the Customizing pages on this web site for even more you can do.

Copyright © 2003-2010 Greg Valure
\ No newline at end of file diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Help/example/Default.css b/lib/ann/fann/docs/NaturalDocs-1.52/Help/example/Default.css new file mode 100755 index 0000000..7318fdc --- /dev/null +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Help/example/Default.css @@ -0,0 +1,528 @@ +/* + IMPORTANT: If you're editing this file in the output directory of one of + your projects, your changes will be overwritten the next time you run + Natural Docs. Instead, copy this file to your project directory, make your + changes, and you can use it with -s. Even better would be to make a CSS + file in your project directory with only your changes, which you can then + use with -s [original style] [your changes]. + + On the other hand, if you're editing this file in the Natural Docs styles + directory, the changes will automatically be applied to all your projects + that use this style the next time Natural Docs is run on them. + + This file is part of Natural Docs, which is Copyright © 2003-2004 Greg Valure + Natural Docs is licensed under the GPL +*/ + +body { + font-family: Verdana, Arial, sans-serif; + color: #000000; + margin: 0px; padding: 0px } + +body.UnframedPage { + background-color: #E8E8E8 } + + +a:link, +a:visited { color: #900000; text-decoration: none } +a:hover { color: #900000; text-decoration: underline } +a:active { color: #FF0000; text-decoration: underline } + +td { + vertical-align: top } + +/* + Comment out this line to use web-style paragraphs (blank line between + paragraphs, no indent) instead of print-style paragraphs (no blank line, + indented.) +*/ +p { + text-indent: 5ex; margin: 0 } + + +/* Can't use something like display: none or it won't break. */ +.HB { + font-size: 1px } + + + + +body.FramedMenuPage, +.MenuSection { + font-size: 9pt; + background-color: #E8E8E8; + padding: 10px 0 0 0 } + +.MenuSection { + width: 27ex } + + + .MTitle { + font-size: 16pt; font-weight: bold; font-variant: small-caps; + text-align: center; + padding: 5px 10px 15px 10px; + border-bottom: 1px dotted #000000; + margin-bottom: 15px } + + .MSubTitle { + font-size: 9pt; font-weight: normal; font-variant: normal; + margin-top: 1ex; margin-bottom: 5px } + + + .MEntry a:link, + .MEntry a:hover, + .MEntry a:visited { color: #606060; margin-right: 0 } + .MEntry a:active { color: #A00000; margin-right: 0 } + + + .MGroup { + font-variant: small-caps; font-weight: bold; + margin: 1em 0 1em 10px } + + /* Konqueror just can't do margins. */ + .KHTML .MGroup { + margin-bottom: 0; padding-bottom: 1em } + + .MGroupContent { + font-variant: normal; font-weight: normal } + + .MGroup a:link, + .MGroup a:hover, + .MGroup a:visited { color: #545454; margin-right: 10px } + .MGroup a:active { color: #A00000; margin-right: 10px } + + + .MFile, + .MText, + .MLink, + .MIndex { + padding: 1px 17px 2px 10px; + margin: .25em 0 .25em 0 } + + .MText { + font-size: 8pt; font-style: italic } + + .MLink { + font-style: italic } + + #MSelected { + color: #000000; background-color: #FFFFFF; + /* Replace padding with border. */ + padding: 0 10px 0 10px; + border-width: 1px 2px 2px 0; border-style: solid; border-color: #000000; + margin-right: 5px } + + /* Close off the left side when its in a group. */ + .MGroup #MSelected { + padding-left: 9px; border-left-width: 1px } + + /* A treat for Mozilla users. Blatantly non-standard. Will be replaced with CSS 3 attributes when finalized/supported. */ + .Gecko #MSelected { + -moz-border-radius-topright: 10px; + -moz-border-radius-bottomright: 10px } + .Gecko .MGroup #MSelected { + -moz-border-radius-topleft: 10px; + -moz-border-radius-bottomleft: 10px } + + + + +body.FramedContentPage, +.ContentSection { + background-color: #FFFFFF; + padding-bottom: 15px } + +.ContentSection { + border-width: 0 0 1px 1px; border-style: solid; border-color: #000000 } + + + .CTopic { + font-size: 10pt; + /* This should be a margin but Konq 3.1.1 sucks. */ + padding-bottom: 3em } + + + .CTitle { + font-size: 12pt; font-weight: bold; + border-width: 0 0 1px 0; border-style: solid; border-color: #A0A0A0; + margin: 0 15px .5em 15px } + + .CGroup .CTitle { + font-size: 16pt; font-variant: small-caps; + padding-left: 15px; padding-right: 15px; + border-width: 0 0 2px 0; border-color: #000000; + margin-left: 0; margin-right: 0 } + + .CClass .CTitle, + .CInterface .CTitle, + .CDatabase .CTitle, + .CDatabaseTable .CTitle, + .CSection .CTitle { + font-size: 18pt; + color: #FFFFFF; background-color: #A0A0A0; + padding: 10px 15px 10px 15px; + border-width: 2px 0; border-color: #000000; + margin-left: 0; margin-right: 0 } + + #MainTopic .CTitle { + font-size: 20pt; + color: #FFFFFF; background-color: #7070C0; + padding: 10px 15px 10px 15px; + border-width: 0 0 3px 0; border-color: #000000; + margin-left: 0; margin-right: 0 } + + .CBody { + margin-left: 15px; margin-right: 15px } + + + .CToolTip { + position: absolute; visibility: hidden; + left: 0; top: 0; max-width: 50%; + background-color: #FFFFE0; + padding: 5px; + border-width: 1px 2px 2px 1px; border-style: solid; border-color: #000000; + font-size: 8pt } + + /* Opera 6 gives it a huge height otherwise. */ + .Opera6 .CTooltip, .Opera5 .CTooltip { + max-width: 100% } + + .CHeading { + font-weight: bold; font-size: 10pt; + margin-top: 1.5em; margin-bottom: .5em } + + .CCode { + font: 10pt "Courier New", Courier, monospace; + overflow: auto; + } + + .CBulletList { + /* I don't know why CBody's margin doesn't apply, but it's consistent across browsers so whatever. + Reapply it here as padding. */ + padding-left: 15px; padding-right: 15px; + margin: .5em 5ex .5em 5ex; + } + + .CDescriptionList { + margin: .5em 5ex 0 5ex } + + /* IE 4 and Konqueror always makes it too long. */ + .IE4 .CDescriptionList, + .KHTML .CDescriptionList { + width: 85% } + + .CDLEntry { + font: 10pt "Courier New", Courier, monospace; color: #808080; + padding-bottom: .25em; + white-space: nowrap } + + .CDLDescription { + font-size: 10pt; /* For browsers that don't inherit correctly, like Opera 5. */ + padding-bottom: .5em; padding-left: 5ex } + + .CTopic img { + text-align: center; + display: block; + margin: 1em auto; + } + .CImageCaption { + font-variant: small-caps; + font-size: 8pt; + color: #808080; + text-align: center; + position: relative; + top: 1em; + } + + .CImageLink { + color: #808080; + font-style: italic; + } + a.CImageLink:link, + a.CImageLink:visited, + a.CImageLink:hover { color: #808080 } + + + +.Prototype { + font: 10pt "Courier New", Courier, monospace; + padding: 5px 3ex; + border-width: 1px; border-style: solid; + margin: 0 5ex 1.5em 5ex; + } + + .Prototype td { + font-size: 10pt; + } + + .PDefaultValue, + .PTypePrefix { + color: #8F8F8F; + } + .PTypePrefix { + text-align: right; + } + + .IE .Prototype table { + padding: 0; + } + + .CFunction .Prototype { + background-color: #F4F4F4; border-color: #D0D0D0 } + .CProperty .Prototype { + background-color: #F4F4FF; border-color: #C0C0E8 } + .CVariable .Prototype { + background-color: #FFFFF0; border-color: #E0E0A0 } + + .CDatabaseIndex .Prototype, + .CConstant .Prototype { + background-color: #D0D0D0; border-color: #000000 } + .CType .Prototype { + background-color: #FFF8F8; border-color: #E8C8C8 } + .CDatabaseTrigger .Prototype, + .CEvent .Prototype, + .CDelegate .Prototype { + background-color: #F0FCF0; border-color: #B8E4B8 } + + .CToolTip .Prototype { + margin: 0 0 .5em 0; + white-space: nowrap; + } + + + + + +.Summary { + margin: 1.5em 5ex 0 5ex } + + .STitle { + font-size: 12pt; font-weight: bold; + margin-bottom: .5em } + + + .SBorder { + background-color: #FFFFF0; + padding: 15px; + border: 1px solid #C0C060 } + + /* Let's observe the evolution of IE's brokeness, shall we? + IE 4 always makes them too long, there's no way around it. */ + .IE4 .SBorder { + width: 85% } + /* IE 5 will make them too long unless you set the width to 100%. Isn't this implied for a div? */ + .IE5 .SBorder { + width: 100% } + /* IE 6 behaves like 5 when it's in a frame, but without frames it will be correct without a width or slightly too long + (but not enough to scroll) with a width. This arbitrary weirdness simply astounds me. */ + body.FramedContentPage .IE6 .SBorder { + width: 100% } + + /* A treat for Mozilla users. Blatantly non-standard. Will be replaced with CSS 3 attributes when finalized/supported. */ + .Gecko .SBorder { + -moz-border-radius: 20px } + + + .STable { + font-size: 9pt; width: 100% } + + .SEntrySize { + width: 30% } + .SDescriptionSize { + width: 70% } + + + .SMarked { + background-color: #F8F8D8 } + + + .SEntry .SIndent1 { + margin-left: 1.5ex } + .SEntry .SIndent2 { + margin-left: 3ex } + .SEntry .SIndent3 { + margin-left: 4.5ex } + .SEntry .SIndent4 { + margin-left: 6ex } + .SEntry .SIndent5 { + margin-left: 7.5ex } + + .SDescription { + padding-left: 3ex } + + .SDescription a { color: #800000} + .SDescription a:active { color: #A00000 } + + + .SGroup { + margin-top: .5em; margin-bottom: .25em } + + .SGroup .SEntry { + font-weight: bold; font-variant: small-caps } + + .SGroup .SEntry a { color: #800000 } + .SGroup .SEntry a:active { color: #F00000 } + + + .SMain .SEntry, + .SClass .SEntry, + .SDatabase .SEntry, + .SDatabaseTable .SEntry, + .SSection .SEntry { + font-weight: bold; font-size: 10pt; + margin-bottom: .25em } + + .SClass, + .SDatabase, + .SDatabaseTable, + .SSection { + margin-top: 1em } + + .SMain .SEntry a, + .SClass .SEntry a, + .SDatabase .SEntry a, + .SDatabaseTable .SEntry a, + .SSection .SEntry a { color: #000000 } + + .SMain .SEntry a:active, + .SClass .SEntry a:active, + .SDatabase .SEntry a:active, + .SDatabaseTable .SEntry a:active, + .SSection .SEntry a:active { color: #A00000 } + + + + + +.ClassHierarchy { + margin: 0 15px 1em 15px } + + .CHEntry { + border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0A0; + margin-bottom: 3px; + padding: 2px 2ex; + font-size: 10pt; + background-color: #F4F4F4; color: #606060; + } + + .Gecko .CHEntry { + -moz-border-radius: 4px; + } + + .CHCurrent .CHEntry { + font-weight: bold; + border-color: #000000; + color: #000000; + } + + .CHChildNote .CHEntry { + font-style: italic; + font-size: 8pt; + } + + .CHIndent { + margin-left: 3ex; + } + + .CHEntry a:link, + .CHEntry a:visited, + .CHEntry a:hover { + color: #606060; + } + .CHEntry a:active { + color: #800000; + } + + + + + +body.FramedIndexPage, +.IndexSection { + background-color: #FFFFFF; + font-size: 10pt; + padding: 15px } + +.IndexSection { + border-width: 0 0 1px 1px; border-style: solid; border-color: #000000 } + + .IPageTitle { + font-size: 20pt; font-weight: bold; + color: #FFFFFF; background-color: #7070C0; + padding: 10px 15px 10px 15px; + border-width: 0 0 3px 0; border-color: #000000; border-style: solid; + margin: -15px -15px 0 -15px } + + .INavigationBar { + text-align: center; + background-color: #FFFFF0; + padding: 5px; + border-bottom: solid 1px black; + margin: 0 -15px 15px -15px } + + .INavigationBar a { + font-weight: bold } + + .IHeading { + font-size: 16pt; font-weight: bold; + padding: 2.5em 0 .5em 0; + text-align: center; + width: 3.5ex; + } + #IFirstHeading { + padding-top: 0; + } + + .IEntry { + padding-left: 1ex; } + + .ISubIndex { + padding-left: 3ex; padding-bottom: .5em } + + /* While it may cause some entries to look like links when they aren't, I found it's much easier to read the + index if everything's the same color. */ + .ISymbol { + font-weight: bold; color: #900000 } + + .ISymbolPrefix { + text-align: right; + color: #C47C7C; + background-color: #F8F8F8; + border-right: 3px solid #E0E0E0; + border-left: 1px solid #E0E0E0; + padding: 0 1px 0 2px; + } + #IFirstSymbolPrefix { + border-top: 1px solid #E0E0E0; + } + #ILastSymbolPrefix { + border-bottom: 1px solid #E0E0E0; + } + #IOnlySymbolPrefix { + border-top: 1px solid #E0E0E0; + border-bottom: 1px solid #E0E0E0; + } + + a.IParent, + a.IFile { + display: block; + } + + + + +.Footer { + font-size: 8pt; color: #909090 } + +body.UnframedPage .Footer { + text-align: right; + margin: 2px } + +body.FramedMenuPage .Footer { + text-align: center; + margin: 5em 10px 0 10px} + + .Footer a:link, + .Footer a:hover, + .Footer a:visited { color: #909090 } + .Footer a:active { color: #A00000 } diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Help/example/NaturalDocs.js b/lib/ann/fann/docs/NaturalDocs-1.52/Help/example/NaturalDocs.js new file mode 100755 index 0000000..2af84cf --- /dev/null +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Help/example/NaturalDocs.js @@ -0,0 +1,204 @@ + +// +// Browser Styles +// ____________________________________________________________________________ + +var agt=navigator.userAgent.toLowerCase(); +var browserType; +var browserVer; + +if (agt.indexOf("opera") != -1) + { + browserType = "Opera"; + + if (agt.indexOf("opera 5") != -1 || agt.indexOf("opera/5") != -1) + { browserVer = "Opera5"; } + else if (agt.indexOf("opera 6") != -1 || agt.indexOf("opera/6") != -1) + { browserVer = "Opera6"; } + else if (agt.indexOf("opera 7") != -1 || agt.indexOf("opera/7") != -1) + { browserVer = "Opera7"; } + } + +else if (agt.indexOf("khtml") != -1 || agt.indexOf("konq") != -1 || agt.indexOf("safari") != -1) + { + browserType = "KHTML"; + } + +else if (agt.indexOf("msie") != -1) + { + browserType = "IE"; + + if (agt.indexOf("msie 4") != -1) + { browserVer = "IE4"; } + else if (agt.indexOf("msie 5") != -1) + { browserVer = "IE5"; } + else if (agt.indexOf("msie 6") != -1) + { browserVer = "IE6"; } + } + +else if (agt.indexOf("gecko") != -1) + { + browserType = "Gecko"; + } + +// Opera already taken care of. +else if (agt.indexOf("mozilla") != -1 && agt.indexOf("compatible") == -1 && agt.indexOf("spoofer") == -1 && + agt.indexOf("webtv") == -1 && agt.indexOf("hotjava") == -1) + { + browserType = "Netscape"; + + if (agt.indexOf("mozilla/4") != -1) + { browserVer = "Netscape4"; } + } + + +// +// Menu +// ____________________________________________________________________________ + + +function ToggleMenu(id) + { + if (!window.document.getElementById) + { return; }; + + var display = window.document.getElementById(id).style.display; + + if (display == "none") + { display = "block"; } + else + { display = "none"; } + + window.document.getElementById(id).style.display = display; + } + + +// +// Tooltips +// ____________________________________________________________________________ + + +var tooltipTimer = 0; + +function ShowTip(event, tooltipID, linkID) + { + if (tooltipTimer) + { clearTimeout(tooltipTimer); }; + + var docX = event.clientX + window.pageXOffset; + var docY = event.clientY + window.pageYOffset; + + var showCommand = "ReallyShowTip('" + tooltipID + "', '" + linkID + "', " + docX + ", " + docY + ")"; + + // KHTML cant handle showing on a timer right now. + + if (browserType != "KHTML") + { tooltipTimer = setTimeout(showCommand, 1000); } + else + { eval(showCommand); }; + } + +function ReallyShowTip(tooltipID, linkID, docX, docY) + { + tooltipTimer = 0; + + var tooltip; + var link; + + if (document.getElementById) + { + tooltip = document.getElementById(tooltipID); + link = document.getElementById(linkID); + } + else if (document.all) + { + tooltip = eval("document.all['" + tooltipID + "']"); + link = eval("document.all['" + linkID + "']"); + } + + if (tooltip) + { + var left = 0; + var top = 0; + + // Not everything supports offsetTop/Left/Width, and some, like Konqueror and Opera 5, think they do but do it badly. + + if (link && link.offsetWidth != null && browserType != "KHTML" && browserVer != "Opera5") + { + var item = link; + while (item != document.body) + { + left += item.offsetLeft; + item = item.offsetParent; + } + + item = link; + while (item != document.body) + { + top += item.offsetTop; + item = item.offsetParent; + } + top += link.offsetHeight; + } + + // The fallback method is to use the mouse X and Y relative to the document. We use a separate if and test if its a number + // in case some browser snuck through the above if statement but didn't support everything. + + if (!isFinite(top) || top == 0) + { + left = docX; + top = docY; + } + + // Some spacing to get it out from under the cursor. + + top += 10; + + // Make sure the tooltip doesnt get smushed by being too close to the edge, or in some browsers, go off the edge of the + // page. We do it here because Konqueror does get offsetWidth right even if it doesnt get the positioning right. + + if (tooltip.offsetWidth != null) + { + var width = tooltip.offsetWidth; + var docWidth = document.body.clientWidth; + + if (left + width > docWidth) + { left = docWidth - width - 1; } + } + + // Opera 5 chokes on the px extension, so it can use the Microsoft one instead. + + if (tooltip.style.left != null && browserVer != "Opera5") + { + tooltip.style.left = left + "px"; + tooltip.style.top = top + "px"; + } + else if (tooltip.style.pixelLeft != null) + { + tooltip.style.pixelLeft = left; + tooltip.style.pixelTop = top; + } + + tooltip.style.visibility = "visible"; + } + } + +function HideTip(tooltipID) + { + if (tooltipTimer) + { + clearTimeout(tooltipTimer); + tooltipTimer = 0; + } + + var tooltip; + + if (document.getElementById) + { tooltip = document.getElementById(tooltipID); } + else if (document.all) + { tooltip = eval("document.all['" + tooltipID + "']"); } + + if (tooltip) + { tooltip.style.visibility = "hidden"; } + } + diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Help/example/Roman.css b/lib/ann/fann/docs/NaturalDocs-1.52/Help/example/Roman.css new file mode 100755 index 0000000..54acc6e --- /dev/null +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Help/example/Roman.css @@ -0,0 +1,507 @@ +/* + IMPORTANT: If you're editing this file in the output directory of one of + your projects, your changes will be overwritten the next time you run + Natural Docs. Instead, copy this file to your project directory, make your + changes, and you can use it with -s. Even better would be to make a CSS + file in your project directory with only your changes, which you can then + use with -s [original style] [your changes]. + + On the other hand, if you're editing this file in the Natural Docs styles + directory, the changes will automatically be applied to all your projects + that use this style the next time Natural Docs is run on them. + + This file is part of Natural Docs, which is Copyright © 2003-2004 Greg Valure + Natural Docs is licensed under the GPL +*/ + +body { + font-family: "Times New Roman", Roman, serif; + color: #000000; + margin: 0px; padding: 0px } + +body.UnframedPage { + background-color: #E8E8E8 } + + +a:link, +a:visited { color: #900000; text-decoration: none } +a:hover { color: #900000; text-decoration: underline } +a:active { color: #FF0000; text-decoration: underline } + +td { + vertical-align: top } + +/* + Comment out this line to use web-style paragraphs (blank line between + paragraphs, no indent) instead of print-style paragraphs (no blank line, + indented.) +*/ +p { + text-indent: 5ex; margin: 0 } + + +/* Can't use something like display: none or it won't break. */ +.HB { + font-size: 1px } + + + + +body.FramedMenuPage, +.MenuSection { + font-size: 10pt; + background-color: #E8E8E8; + padding: 10px 0 0 0 } + +.MenuSection { + width: 27ex } + + + .MTitle { + font-size: 18pt; font-weight: bold; font-variant: small-caps; + text-align: center; + padding: 5px 10px 15px 10px; + border-bottom: 1px dotted #000000; + margin-bottom: 15px } + + .MSubTitle { + font-size: 10pt; font-weight: normal; font-variant: normal; + margin-top: 1ex; margin-bottom: 5px } + + + .MEntry a:link, + .MEntry a:hover, + .MEntry a:visited { color: #606060; margin-right: 0 } + .MEntry a:active { color: #A00000; margin-right: 0 } + + + .MGroup { + font-variant: small-caps; font-weight: bold; + margin: 1em 0 1em 10px } + + /* Konqueror just can't do margins. */ + .KHTML .MGroup { + margin-bottom: 0; padding-bottom: 1em } + + .MGroupContent { + font-variant: normal; font-weight: normal } + + .MGroup a:link, + .MGroup a:hover, + .MGroup a:visited { color: #545454; margin-right: 10px } + .MGroup a:active { color: #A00000; margin-right: 10px } + + + .MFile, + .MText, + .MLink, + .MIndex { + padding: 1px 17px 2px 10px; + margin: .25em 0 .25em 0 } + + .MText { + font-size: 8pt; font-style: italic } + + .MLink { + font-style: italic } + + #MSelected { + color: #000000; background-color: #FFFFFF; + /* Replace padding with border. */ + padding: 0 10px 0 10px; + border-width: 1px 2px 2px 0; border-style: solid; border-color: #000000; + margin-right: 5px } + + /* Close off the left side when its in a group. */ + .MGroup #MSelected { + padding-left: 9px; border-left-width: 1px } + + /* A treat for Mozilla users. Blatantly non-standard. Will be replaced with CSS 3 attributes when finalized/supported. */ + .Gecko #MSelected { + -moz-border-radius-topright: 10px; + -moz-border-radius-bottomright: 10px } + .Gecko .MGroup #MSelected { + -moz-border-radius-topleft: 10px; + -moz-border-radius-bottomleft: 10px } + + + + +body.FramedContentPage, +.ContentSection { + background-color: #FFFFFF; + padding-bottom: 15px } + +.ContentSection { + border-width: 0 0 1px 1px; border-style: solid; border-color: #000000 } + + + .CTopic { + font-size: 12pt; + /* This should be a margin but Konq 3.1.1 sucks. */ + padding-bottom: 3em } + + + .CTitle { + font-size: 16pt; font-weight: bold; + border-width: 0 0 1px 0; border-style: solid; border-color: #A0A0A0; + margin: 0 15px .5em 15px } + + .CGroup .CTitle { + font-size: 18pt; font-variant: small-caps; + padding-left: 15px; padding-right: 15px; + border-width: 0 0 2px 0; border-color: #000000; + margin-left: 0; margin-right: 0 } + + .CClass .CTitle, + .CInterface .CTitle, + .CDatabase .CTitle, + .CDatabaseTable .CTitle, + .CSection .CTitle { + font-size: 20pt; + color: #FFFFFF; background-color: #A0A0A0; + padding: 10px 15px 10px 15px; + border-width: 2px 0; border-color: #000000; + margin-left: 0; margin-right: 0 } + + #MainTopic .CTitle { + font-size: 24pt; + color: #FFFFFF; background-color: #7070C0; + padding: 10px 15px 10px 15px; + border-width: 0 0 3px 0; border-color: #000000; + margin-left: 0; margin-right: 0 } + + .CBody { + margin-left: 15px; margin-right: 15px } + + + .CToolTip { + position: absolute; visibility: hidden; + left: 0; top: 0; max-width: 50%; + background-color: #FFFFE0; + padding: 5px; + border-width: 1px 2px 2px 1px; border-style: solid; border-color: #000000; + font-size: 10pt } + + /* Opera 6 gives it a huge height otherwise. */ + .Opera6 .CTooltip, .Opera5 .CTooltip { + max-width: 100% } + + .CHeading { + font-weight: bold; + margin-top: 1.5em; margin-bottom: .5em } + + .CCode { + font: 10pt "Courier New", Courier, monospace; + overflow: auto; + } + + .CBulletList { + /* I don't know why CBody's margin doesn't apply, but it's consistent across browsers so whatever. + Reapply it here as padding. */ + padding-left: 15px; padding-right: 15px; + margin: .5em 5ex .5em 5ex; + } + + .CDescriptionList { + margin: .5em 5ex 0 5ex } + + /* IE 4 and Konqueror always makes it too long. */ + .IE4 .CDescriptionList, + .KHTML .CDescriptionList { + width: 85% } + + .CDLEntry { + font: 10pt "Courier New", Courier, monospace; color: #808080; + padding-bottom: .25em; + white-space: nowrap } + + .CDLDescription { + font-size: 12pt; /* For browsers that don't inherit correctly, like Opera 5. */ + padding-bottom: .5em; padding-left: 5ex } + + + + + +.Prototype { + font: 10pt "Courier New", Courier, monospace; + padding: 5px 3ex; + border-width: 1px; border-style: solid; + margin: 0 5ex 1.5em 5ex; + } + + .Prototype td { + font-size: 10pt; + } + + .PDefaultValue, + .PTypePrefix { + color: #8F8F8F; + } + .PTypePrefix { + text-align: right; + } + + .IE .Prototype table { + padding: 0; + } + + .CFunction .Prototype { + background-color: #F4F4F4; border-color: #D0D0D0 } + .CProperty .Prototype { + background-color: #F4F4FF; border-color: #C0C0E8 } + .CVariable .Prototype { + background-color: #FFFFF0; border-color: #E0E0A0 } + + .CDatabaseIndex .Prototype, + .CConstant .Prototype { + background-color: #D0D0D0; border-color: #000000 } + .CType .Prototype { + background-color: #FFF8F8; border-color: #E8C8C8 } + .CDatabaseTrigger .Prototype, + .CEvent .Prototype, + .CDelegate .Prototype { + background-color: #F0FCF0; border-color: #B8E4B8 } + + .CToolTip .Prototype { + margin: 0 0 .5em 0; + white-space: nowrap; + } + + + + + +.Summary { + margin: 1.5em 5ex 0 5ex } + + .STitle { + font-size: 14pt; font-weight: bold; + margin-bottom: .5em } + + + .SBorder { + background-color: #FFFFF0; + padding: 15px; + border: 1px solid #C0C060 } + + /* Let's observe the evolution of IE's brokeness, shall we? + IE 4 always makes them too long, there's no way around it. */ + .IE4 .SBorder { + width: 85% } + /* IE 5 will make them too long unless you set the width to 100%. Isn't this implied for a div? */ + .IE5 .SBorder { + width: 100% } + /* IE 6 behaves like 5 when it's in a frame, but without frames it will be correct without a width or slightly too long + (but not enough to scroll) with a width. This arbitrary weirdness simply astounds me. */ + body.FramedContentPage .IE6 .SBorder { + width: 100% } + + /* A treat for Mozilla users. Blatantly non-standard. Will be replaced with CSS 3 attributes when finalized/supported. */ + .Gecko .SBorder { + -moz-border-radius: 20px } + + + .STable { + font-size: 10pt; width: 100% } + + .SEntrySize { + width: 30% } + .SDescriptionSize { + width: 70% } + + + .SMarked { + background-color: #F8F8D8 } + + + .SEntry .SIndent1 { + margin-left: 1.5ex } + .SEntry .SIndent2 { + margin-left: 3ex } + .SEntry .SIndent3 { + margin-left: 4.5ex } + .SEntry .SIndent4 { + margin-left: 6ex } + .SEntry .SIndent5 { + margin-left: 7.5ex } + + .SDescription { + padding-left: 3ex } + + .SDescription a { color: #800000} + .SDescription a:active { color: #A00000 } + + + .SGroup { + margin-top: .5em; margin-bottom: .25em } + + .SGroup .SEntry { + font-weight: bold; font-variant: small-caps } + + .SGroup .SEntry a { color: #800000 } + .SGroup .SEntry a:active { color: #F00000 } + + + .SMain .SEntry, + .SClass .SEntry, + .SDatabase .SEntry, + .SDatabaseTable .SEntry, + .SSection .SEntry { + font-weight: bold; font-size: 12pt; + margin-bottom: .25em } + + .SClass, + .SDatabase, + .SDatabaseTable, + .SSection { + margin-top: 1em } + + .SMain .SEntry a, + .SClass .SEntry a, + .SDatabase .SEntry a, + .SDatabaseTable .SEntry a, + .SSection .SEntry a { color: #000000 } + + .SMain .SEntry a:active, + .SClass .SEntry a:active, + .SDatabase .SEntry a:active, + .SDatabaseTable .SEntry a:active, + .SSection .SEntry a:active { color: #A00000 } + + + + + +.ClassHierarchy { + margin: 0 15px 1em 15px } + + .CHEntry { + border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0A0; + margin-bottom: 3px; + padding: 2px 2ex; + font-size: 12pt; + background-color: #F4F4F4; color: #606060; + } + + .Gecko .CHEntry { + -moz-border-radius: 4px; + } + + .CHCurrent .CHEntry { + font-weight: bold; + border-color: #000000; + color: #000000; + } + + .CHChildNote .CHEntry { + font-style: italic; + font-size: 8pt; + } + + .CHIndent { + margin-left: 3ex; + } + + .CHEntry a:link, + .CHEntry a:visited, + .CHEntry a:hover { + color: #606060; + } + .CHEntry a:active { + color: #800000; + } + + + + + +body.FramedIndexPage, +.IndexSection { + background-color: #FFFFFF; + font: 12pt "Times New Roman", serif; + padding: 15px } + +.IndexSection { + border-width: 0 0 1px 1px; border-style: solid; border-color: #000000 } + + .IPageTitle { + font-size: 24pt; font-weight: bold; + color: #FFFFFF; background-color: #7070C0; + padding: 10px 15px 10px 15px; + border-width: 0 0 3px 0; border-color: #000000; border-style: solid; + margin: -15px -15px 0 -15px } + + .INavigationBar { + text-align: center; + background-color: #FFFFF0; + padding: 5px; + border-bottom: solid 1px black; + margin: 0 -15px 15px -15px } + + .INavigationBar a { + font-weight: bold } + + .IHeading { + font-size: 20pt; font-weight: bold; + padding: 2.5em 0 .5em 0; + text-align: center; + width: 3.5ex; + } + #IFirstHeading { + padding-top: 0; + } + + .IEntry { + padding-left: 1ex; } + + .ISubIndex { + padding-left: 3ex; padding-bottom: .5em } + + /* While it may cause some entries to look like links when they aren't, I found it's much easier to read the + index if everything's the same color. */ + .ISymbol { + font-weight: bold; color: #900000 } + + .ISymbolPrefix { + text-align: right; + color: #C47C7C; + background-color: #F8F8F8; + border-right: 3px solid #E0E0E0; + border-left: 1px solid #E0E0E0; + padding: 0 1px 0 2px; + } + #IFirstSymbolPrefix { + border-top: 1px solid #E0E0E0; + } + #ILastSymbolPrefix { + border-bottom: 1px solid #E0E0E0; + } + #IOnlySymbolPrefix { + border-top: 1px solid #E0E0E0; + border-bottom: 1px solid #E0E0E0; + } + + a.IParent, + a.IFile { + display: block; + } + + + +.Footer { + font-size: 8pt; color: #909090 } + +body.UnframedPage .Footer { + text-align: right; + margin: 2px } + +body.FramedMenuPage .Footer { + text-align: center; + margin: 5em 10px 0 10px} + + .Footer a:link, + .Footer a:hover, + .Footer a:visited { color: #909090 } + .Footer a:active { color: #A00000 } diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Help/example/Small.css b/lib/ann/fann/docs/NaturalDocs-1.52/Help/example/Small.css new file mode 100755 index 0000000..0cb7be1 --- /dev/null +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Help/example/Small.css @@ -0,0 +1,507 @@ +/* + IMPORTANT: If you're editing this file in the output directory of one of + your projects, your changes will be overwritten the next time you run + Natural Docs. Instead, copy this file to your project directory, make your + changes, and you can use it with -s. Even better would be to make a CSS + file in your project directory with only your changes, which you can then + use with -s [original style] [your changes]. + + On the other hand, if you're editing this file in the Natural Docs styles + directory, the changes will automatically be applied to all your projects + that use this style the next time Natural Docs is run on them. + + This file is part of Natural Docs, which is Copyright © 2003-2004 Greg Valure + Natural Docs is licensed under the GPL +*/ + +body { + font-family: Verdana, Arial, sans-serif; + color: #000000; + margin: 0px; padding: 0px } + +body.UnframedPage { + background-color: #E8E8E8 } + + +a:link, +a:visited { color: #900000; text-decoration: none } +a:hover { color: #900000; text-decoration: underline } +a:active { color: #FF0000; text-decoration: underline } + +td { + vertical-align: top } + +/* + Comment out this line to use web-style paragraphs (blank line between + paragraphs, no indent) instead of print-style paragraphs (no blank line, + indented.) +*/ +p { + text-indent: 5ex; margin: 0 } + + +/* Can't use something like display: none or it won't break. */ +.HB { + font-size: 1px } + + + + +body.FramedMenuPage, +.MenuSection { + font-size: 8pt; + background-color: #E8E8E8; + padding: 10px 0 0 0 } + +.MenuSection { + width: 27ex } + + + .MTitle { + font-size: 16pt; font-weight: bold; font-variant: small-caps; + text-align: center; + padding: 5px 10px 15px 10px; + border-bottom: 1px dotted #000000; + margin-bottom: 15px } + + .MSubTitle { + font-size: 9pt; font-weight: normal; font-variant: normal; + margin-top: 1ex; margin-bottom: 5px } + + + .MEntry a:link, + .MEntry a:hover, + .MEntry a:visited { color: #606060; margin-right: 0 } + .MEntry a:active { color: #A00000; margin-right: 0 } + + + .MGroup { + font-variant: small-caps; font-weight: bold; + margin: 1em 0 1em 10px } + + /* Konqueror just can't do margins. */ + .KHTML .MGroup { + margin-bottom: 0; padding-bottom: 1em } + + .MGroupContent { + font-variant: normal; font-weight: normal } + + .MGroup a:link, + .MGroup a:hover, + .MGroup a:visited { color: #545454; margin-right: 10px } + .MGroup a:active { color: #A00000; margin-right: 10px } + + + .MFile, + .MText, + .MLink, + .MIndex { + padding: 1px 17px 2px 10px; + margin: .25em 0 .25em 0 } + + .MText { + font-size: 8pt; font-style: italic } + + .MLink { + font-style: italic } + + #MSelected { + color: #000000; background-color: #FFFFFF; + /* Replace padding with border. */ + padding: 0 10px 0 10px; + border-width: 1px 2px 2px 0; border-style: solid; border-color: #000000; + margin-right: 5px } + + /* Close off the left side when its in a group. */ + .MGroup #MSelected { + padding-left: 9px; border-left-width: 1px } + + /* A treat for Mozilla users. Blatantly non-standard. Will be replaced with CSS 3 attributes when finalized/supported. */ + .Gecko #MSelected { + -moz-border-radius-topright: 10px; + -moz-border-radius-bottomright: 10px } + .Gecko .MGroup #MSelected { + -moz-border-radius-topleft: 10px; + -moz-border-radius-bottomleft: 10px } + + + + +body.FramedContentPage, +.ContentSection { + background-color: #FFFFFF; + padding-bottom: 15px } + +.ContentSection { + border-width: 0 0 1px 1px; border-style: solid; border-color: #000000 } + + + .CTopic { + font-size: 8pt; + /* This should be a margin but Konq 3.1.1 sucks. */ + padding-bottom: 3em } + + + .CTitle { + font-size: 11pt; font-weight: bold; + border-width: 0 0 1px 0; border-style: solid; border-color: #A0A0A0; + margin: 0 15px .5em 15px } + + .CGroup .CTitle { + font-size: 16pt; font-variant: small-caps; + padding-left: 15px; padding-right: 15px; + border-width: 0 0 2px 0; border-color: #000000; + margin-left: 0; margin-right: 0 } + + .CClass .CTitle, + .CInterface .CTitle, + .CDatabase .CTitle, + .CDatabaseTable .CTitle, + .CSection .CTitle { + font-size: 18pt; + color: #FFFFFF; background-color: #A0A0A0; + padding: 10px 15px 10px 15px; + border-width: 2px 0; border-color: #000000; + margin-left: 0; margin-right: 0 } + + #MainTopic .CTitle { + font-size: 20pt; + color: #FFFFFF; background-color: #7070C0; + padding: 10px 15px 10px 15px; + border-width: 0 0 3px 0; border-color: #000000; + margin-left: 0; margin-right: 0 } + + .CBody { + margin-left: 15px; margin-right: 15px } + + + .CToolTip { + position: absolute; visibility: hidden; + left: 0; top: 0; max-width: 50%; + background-color: #FFFFE0; + padding: 5px; + border-width: 1px 2px 2px 1px; border-style: solid; border-color: #000000; + font-size: 8pt } + + /* Opera 6 gives it a huge height otherwise. */ + .Opera6 .CTooltip, .Opera5 .CTooltip { + max-width: 100% } + + .CHeading { + font-weight: bold; font-size: 9pt; + margin-top: 1.5em; margin-bottom: .5em } + + .CCode { + font: 8pt "Courier New", Courier, monospace; + overflow: auto; + } + + .CBulletList { + /* I don't know why CBody's margin doesn't apply, but it's consistent across browsers so whatever. + Reapply it here as padding. */ + padding-left: 15px; padding-right: 15px; + margin: .5em 5ex .5em 5ex; + } + + .CDescriptionList { + margin: .5em 5ex 0 5ex } + + /* IE 4 and Konqueror always makes it too long. */ + .IE4 .CDescriptionList, + .KHTML .CDescriptionList { + width: 85% } + + .CDLEntry { + font: 8pt "Courier New", Courier, monospace; color: #808080; + padding-bottom: .25em; + white-space: nowrap } + + .CDLDescription { + font-size: 8pt; /* For browsers that don't inherit correctly, like Opera 5. */ + padding-bottom: .5em; padding-left: 5ex } + + + + + +.Prototype { + font: 8pt "Courier New", Courier, monospace; + padding: 5px 3ex; + border-width: 1px; border-style: solid; + margin: 0 5ex 1.5em 5ex; + } + + .Prototype td { + font-size: 8pt; + } + + .PDefaultValue, + .PTypePrefix { + color: #8F8F8F; + } + .PTypePrefix { + text-align: right; + } + + .IE .Prototype table { + padding: 0; + } + + .CFunction .Prototype { + background-color: #F4F4F4; border-color: #D0D0D0 } + .CProperty .Prototype { + background-color: #F4F4FF; border-color: #C0C0E8 } + .CVariable .Prototype { + background-color: #FFFFF0; border-color: #E0E0A0 } + + .CDatabaseIndex .Prototype, + .CConstant .Prototype { + background-color: #D0D0D0; border-color: #000000 } + .CType .Prototype { + background-color: #FFF8F8; border-color: #E8C8C8 } + .CDatabaseTrigger .Prototype, + .CEvent .Prototype, + .CDelegate .Prototype { + background-color: #F0FCF0; border-color: #B8E4B8 } + + .CToolTip .Prototype { + margin: 0 0 .5em 0; + white-space: nowrap; + } + + + + + +.Summary { + margin: 1.5em 5ex 0 5ex } + + .STitle { + font-size: 11pt; font-weight: bold; + margin-bottom: .5em } + + + .SBorder { + background-color: #FFFFF0; + padding: 15px; + border: 1px solid #C0C060 } + + /* Let's observe the evolution of IE's brokeness, shall we? + IE 4 always makes them too long, there's no way around it. */ + .IE4 .SBorder { + width: 85% } + /* IE 5 will make them too long unless you set the width to 100%. Isn't this implied for a div? */ + .IE5 .SBorder { + width: 100% } + /* IE 6 behaves like 5 when it's in a frame, but without frames it will be correct without a width or slightly too long + (but not enough to scroll) with a width. This arbitrary weirdness simply astounds me. */ + body.FramedContentPage .IE6 .SBorder { + width: 100% } + + /* A treat for Mozilla users. Blatantly non-standard. Will be replaced with CSS 3 attributes when finalized/supported. */ + .Gecko .SBorder { + -moz-border-radius: 20px } + + + .STable { + font-size: 8pt; width: 100% } + + .SEntrySize { + width: 30% } + .SDescriptionSize { + width: 70% } + + + .SMarked { + background-color: #F8F8D8 } + + + .SEntry .SIndent1 { + margin-left: 1.5ex } + .SEntry .SIndent2 { + margin-left: 3ex } + .SEntry .SIndent3 { + margin-left: 4.5ex } + .SEntry .SIndent4 { + margin-left: 6ex } + .SEntry .SIndent5 { + margin-left: 7.5ex } + + .SDescription { + padding-left: 3ex } + + .SDescription a { color: #800000} + .SDescription a:active { color: #A00000 } + + + .SGroup { + margin-top: .5em; margin-bottom: .25em } + + .SGroup .SEntry { + font-weight: bold; font-variant: small-caps } + + .SGroup .SEntry a { color: #800000 } + .SGroup .SEntry a:active { color: #F00000 } + + + .SMain .SEntry, + .SClass .SEntry, + .SDatabase .SEntry, + .SDatabaseTable .SEntry, + .SSection .SEntry { + font-weight: bold; font-size: 9pt; + margin-bottom: .25em } + + .SClass, + .SDatabase, + .SDatabaseTable, + .SSection { + margin-top: 1em } + + .SMain .SEntry a, + .SClass .SEntry a, + .SDatabase .SEntry a, + .SDatabaseTable .SEntry a, + .SSection .SEntry a { color: #000000 } + + .SMain .SEntry a:active, + .SClass .SEntry a:active, + .SDatabase .SEntry a:active, + .SDatabaseTable .SEntry a:active, + .SSection .SEntry a:active { color: #A00000 } + + + + + +.ClassHierarchy { + margin: 0 15px 1em 15px } + + .CHEntry { + border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0A0; + margin-bottom: 3px; + padding: 2px 2ex; + font-size: 8pt; + background-color: #F4F4F4; color: #606060; + } + + .Gecko .CHEntry { + -moz-border-radius: 4px; + } + + .CHCurrent .CHEntry { + font-weight: bold; + border-color: #000000; + color: #000000; + } + + .CHChildNote .CHEntry { + font-style: italic; + font-size: 8pt; + } + + .CHIndent { + margin-left: 3ex; + } + + .CHEntry a:link, + .CHEntry a:visited, + .CHEntry a:hover { + color: #606060; + } + .CHEntry a:active { + color: #800000; + } + + + + + +body.FramedIndexPage, +.IndexSection { + background-color: #FFFFFF; + font-size: 8pt; + padding: 15px } + +.IndexSection { + border-width: 0 0 1px 1px; border-style: solid; border-color: #000000 } + + .IPageTitle { + font-size: 20pt; font-weight: bold; + color: #FFFFFF; background-color: #7070C0; + padding: 10px 15px 10px 15px; + border-width: 0 0 3px 0; border-color: #000000; border-style: solid; + margin: -15px -15px 0 -15px } + + .INavigationBar { + text-align: center; + background-color: #FFFFF0; + padding: 5px; + border-bottom: solid 1px black; + margin: 0 -15px 15px -15px } + + .INavigationBar a { + font-weight: bold } + + .IHeading { + font-size: 14pt; font-weight: bold; + padding: 2.5em 0 .5em 0; + text-align: center; + width: 3.5ex; + } + #IFirstHeading { + padding-top: 0; + } + + .IEntry { + padding-left: 1ex; } + + .ISubIndex { + padding-left: 3ex; padding-bottom: .5em } + + /* While it may cause some entries to look like links when they aren't, I found it's much easier to read the + index if everything's the same color. */ + .ISymbol { + font-weight: bold; color: #900000 } + + .ISymbolPrefix { + text-align: right; + color: #C47C7C; + background-color: #F8F8F8; + border-right: 3px solid #E0E0E0; + border-left: 1px solid #E0E0E0; + padding: 0 1px 0 2px; + } + #IFirstSymbolPrefix { + border-top: 1px solid #E0E0E0; + } + #ILastSymbolPrefix { + border-bottom: 1px solid #E0E0E0; + } + #IOnlySymbolPrefix { + border-top: 1px solid #E0E0E0; + border-bottom: 1px solid #E0E0E0; + } + + a.IParent, + a.IFile { + display: block; + } + + + +.Footer { + font-size: 8pt; color: #909090 } + +body.UnframedPage .Footer { + text-align: right; + margin: 2px } + +body.FramedMenuPage .Footer { + text-align: center; + margin: 5em 10px 0 10px} + + .Footer a:link, + .Footer a:hover, + .Footer a:visited { color: #909090 } + .Footer a:active { color: #A00000 } diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Help/example/showstyle.html b/lib/ann/fann/docs/NaturalDocs-1.52/Help/example/showstyle.html new file mode 100755 index 0000000..e71b8b9 --- /dev/null +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Help/example/showstyle.html @@ -0,0 +1,43 @@ + + +CSS Sample - Project + + + + + + + + + + + + + + +
This is the style.  Back
+ + + + + + +

CSS Sample

Here’s what the output would look like with the currently selected CSS style.  The CSS structure is well-documented so you can easily alter it or make your own.

Here’s a paragraph break.  Natural Docs defaults to print-style paragraphs, where each one is indented rather than separated with a blank line.  If you open the CSS file it will tell you which line to remove to go back to web-style paragraphs.

Header

There’s a header, just so you know what one looks like in this style.  As you can tell, the quality of the text here is going to go downhill fast as I’m really just blathering on to fill up the page.  If you’re actually reading this, you can safely stop now.  No, really.  I’m not going to say anything important from here on down.  Reading it will be just as boring as writing it was.

  • Here’s a bullet.  Thought you should see that.
  • Here’s another one.  Well look at that.
  • And a third.  Looks just like all the others, but I’m going to give it some more text.  So there you go.

Now lets look at a text diagram, shall we?  Are you still reading this?  What’s wrong with you?

+------+     +------+
+| Moby | --> | Dick |
++------+     +------+
+   |
+   V
++----------+
+| Musician |
++----------+
Summary
Here’s what the output would look like with the currently selected CSS style.
Ah, here’s our first function.
This is another function, much like DoSomething(), but different, in that it does something else.
This is my variable.

DoSomething

int DoSomething(int one,
int two,
float four)

Ah, here’s our first function.  I have nothing to say about it just like I had nothing to say about anything else.  Typing, typing, typing to fill up space.  Just a random stream-of-consciousness about nothing.

Parameters

oneThis is the first parameter, aptly named one.
twoBet you can’t guess what the next one is called?
fourHah!  Did that just to screw you up.

Returns

Sometimes it returns, sometimes it doesn’t.  It’s moody that way.

DoSomethingElse

bool DoSomethingElse()

This is another function, much like DoSomething(), but different, in that it does something else.  Hover over DoSomething(), will ya?  See the nice DHTML tooltip goodness.  Here, here’s a link to myVariable too.  Hover over that.

Variables

myVariable

int myVariable

This is my variable.  See how the prototype is colored differently on the default styles?  I thought that was cool too, since you can tell where you are in the documentation easier.  Or maybe you didn’t think it was cool.  I shouldn’t make assumptions like that.  See, now you went and hurt my feelings.  Shame on you.

Um, why are you still reading this?  Didn’t you learn by now?

int DoSomething(int one,
int two,
float four)
Ah, here’s our first function.
bool DoSomethingElse()
This is another function, much like DoSomething(), but different, in that it does something else.
int myVariable
This is my variable.
diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Help/examples.css b/lib/ann/fann/docs/NaturalDocs-1.52/Help/examples.css new file mode 100755 index 0000000..f61d06b --- /dev/null +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Help/examples.css @@ -0,0 +1,90 @@ +@import URL(example/Default.css); + + +.NDContent { + color: #000000; background-color: #FFFFFF; + padding: 15px 0; + border-style: solid; + border-width: 1px 3px 3px 1px; + border-color: #c0c0c0 #808080 #808080 #c0c0c0; + margin: 1em 5ex; + -moz-border-radius: 12px; + } + + .NDContent p, + .NDContent li, + .NDContent td, + .NDMenu td, + .NDSummary td, + .NDIndex td { + font-size: 10pt; + line-height: normal; + } + .NDContent .CTopic { + padding-bottom: 0; + } + .Prototype td { + font: 10pt Courier New, monospace; + } + .NDIndex .IHeading { + font-size: 16pt; + } + + +.NDMenu { + font: 9pt Verdana, Arial, sans-serif; + color: #000000; background-color: #E8E8E8; + width: 27ex; + padding: 10px 0; + border-style: solid; + border-width: 1px 3px 3px 1px; + border-color: #808080 #606060 #606060 #808080; + margin: 1em 0 1em 5ex; + -moz-border-radius: 12px; + } + + +.NDFooter { + font: 8pt Verdana, Arial, sans-serif; + color: #909090; background-color: #E8E8E8; + border-style: solid; + border-width: 1px 3px 3px 1px; + border-color: #808080 #606060 #606060 #808080; + margin: 1em 0 1em 5ex; + -moz-border-radius: 12px; + } +.NDFooter td { + font-size: 8pt; + padding: 0 2ex; + } + + .NDFooter a:link, + .NDFooter a:hover, + .NDFooter a:visited { color: #909090 } + .NDFooter a:active { color: #A00000 } + + +.NDSummary { + padding: 15px; + border-style: solid; + border-width: 1px 3px 3px 1px; + border-color: #c0c0c0 #808080 #808080 #c0c0c0; + margin: 1em 5ex; + -moz-border-radius: 12px; + } + + .NDSummary .Summary { + margin-top: 0; + } + + +.NDIndex { + color: #000000; background-color: #FFFFFF; + padding: 15px; + border-style: solid; + border-width: 1px 3px 3px 1px; + border-color: #c0c0c0 #808080 #808080 #c0c0c0; + margin: 1em 5ex; + -moz-border-radius: 12px; + } + diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/header/background.png b/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/header/background.png new file mode 100755 index 0000000..09a2ea4 Binary files /dev/null and b/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/header/background.png differ diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/header/leftside.png b/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/header/leftside.png new file mode 100755 index 0000000..7d09386 Binary files /dev/null and b/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/header/leftside.png differ diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/header/logo.png b/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/header/logo.png new file mode 100755 index 0000000..9317a1b Binary files /dev/null and b/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/header/logo.png differ diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/header/overbody.png b/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/header/overbody.png new file mode 100755 index 0000000..6b86af1 Binary files /dev/null and b/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/header/overbody.png differ diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/header/overbodybg.png b/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/header/overbodybg.png new file mode 100755 index 0000000..b4284ec Binary files /dev/null and b/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/header/overbodybg.png differ diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/header/overleftmargin.png b/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/header/overleftmargin.png new file mode 100755 index 0000000..3d02af7 Binary files /dev/null and b/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/header/overleftmargin.png differ diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/header/overmenu.png b/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/header/overmenu.png new file mode 100755 index 0000000..d720d98 Binary files /dev/null and b/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/header/overmenu.png differ diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/header/overmenubg.png b/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/header/overmenubg.png new file mode 100755 index 0000000..69339d8 Binary files /dev/null and b/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/header/overmenubg.png differ diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/header/rightside.png b/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/header/rightside.png new file mode 100755 index 0000000..f8ef976 Binary files /dev/null and b/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/header/rightside.png differ diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/menu/about.png b/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/menu/about.png new file mode 100755 index 0000000..ca65ea4 Binary files /dev/null and b/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/menu/about.png differ diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/menu/background.png b/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/menu/background.png new file mode 100755 index 0000000..db8b557 Binary files /dev/null and b/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/menu/background.png differ diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/menu/bottomleft.png b/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/menu/bottomleft.png new file mode 100755 index 0000000..0f608c8 Binary files /dev/null and b/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/menu/bottomleft.png differ diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/menu/bottomright.png b/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/menu/bottomright.png new file mode 100755 index 0000000..10c9e02 Binary files /dev/null and b/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/menu/bottomright.png differ diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/menu/community.png b/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/menu/community.png new file mode 100755 index 0000000..0021013 Binary files /dev/null and b/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/menu/community.png differ diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/menu/customizing.png b/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/menu/customizing.png new file mode 100755 index 0000000..d56d25b Binary files /dev/null and b/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/menu/customizing.png differ diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/menu/using.png b/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/menu/using.png new file mode 100755 index 0000000..1de988d Binary files /dev/null and b/lib/ann/fann/docs/NaturalDocs-1.52/Help/images/menu/using.png differ diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Help/index.html b/lib/ann/fann/docs/NaturalDocs-1.52/Help/index.html new file mode 100755 index 0000000..0291bcc --- /dev/null +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Help/index.html @@ -0,0 +1,9 @@ + + +Natural Docs + + + +
Natural Docs
Version 1.52

This is the Natural Docs help file, a subset of the documentation available at the web site.  Everything you need is on the menu to the left.

Copyright © 2003-2010 Greg Valure
\ No newline at end of file diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Help/javascript/BrowserStyles.js b/lib/ann/fann/docs/NaturalDocs-1.52/Help/javascript/BrowserStyles.js new file mode 100755 index 0000000..7166641 --- /dev/null +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Help/javascript/BrowserStyles.js @@ -0,0 +1,77 @@ + +// +// Browser Styles +// ____________________________________________________________________________ + +var agt=navigator.userAgent.toLowerCase(); +var browserType; +var browserVer; + +if (agt.indexOf("opera") != -1) + { + browserType = "Opera"; + + if (agt.indexOf("opera 5") != -1 || agt.indexOf("opera/5") != -1) + { browserVer = "Opera5"; } + else if (agt.indexOf("opera 6") != -1 || agt.indexOf("opera/6") != -1) + { browserVer = "Opera6"; } + else if (agt.indexOf("opera 7") != -1 || agt.indexOf("opera/7") != -1) + { browserVer = "Opera7"; } + } + +else if (agt.indexOf("khtml") != -1 || agt.indexOf("konq") != -1 || agt.indexOf("safari") != -1) + { + browserType = "KHTML"; + } + +else if (agt.indexOf("msie") != -1) + { + browserType = "IE"; + + if (agt.indexOf("msie 4") != -1) + { browserVer = "IE4"; } + else if (agt.indexOf("msie 5") != -1) + { browserVer = "IE5"; } + else if (agt.indexOf("msie 6") != -1) + { browserVer = "IE6"; } + else if (agt.indexOf("msie 7") != -1) + { browserVer = "IE7"; } + } + +else if (agt.indexOf("gecko") != -1) + { + browserType = "Gecko"; + } + +// Opera already taken care of. +else if (agt.indexOf("mozilla") != -1 && agt.indexOf("compatible") == -1 && agt.indexOf("spoofer") == -1 && + agt.indexOf("webtv") == -1 && agt.indexOf("hotjava") == -1) + { + browserType = "Netscape"; + + if (agt.indexOf("mozilla/4") != -1) + { browserVer = "Netscape4"; } + } + + +function OpeningBrowserTags() + { + if (browserType) + { + document.write('
'); + + if (browserVer) + { document.write('
'); } + } + }; + +function ClosingBrowserTags() + { + if (browserType) + { + document.write('
'); + + if (browserVer) + { document.write('
'); } + } + }; diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Help/javascript/PNGHandling.js b/lib/ann/fann/docs/NaturalDocs-1.52/Help/javascript/PNGHandling.js new file mode 100755 index 0000000..ab47a53 --- /dev/null +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Help/javascript/PNGHandling.js @@ -0,0 +1,72 @@ +// Parts derived from: +// Opacity Displayer, Version 1.0 +// Copyright Michael Lovitt, 6/2002. +// Distribute freely, but please leave this notice intact. +// http://www.alistapart.com/articles/pngopacity/ + +// Parts derived from: +// Natural Docs +// Copyright (C) 2003-2004 Greg Valure +// http://www.naturaldocs.org/ + + +var pngTransform; +var pngNormal; + +var agt=navigator.userAgent.toLowerCase(); + +if (agt.indexOf("opera") != -1) + { + if ( (agt.indexOf("opera 5") != -1 || agt.indexOf("opera/5") != -1) && + agt.indexOf("mac") != -1) + { + pngNormal = 1; + } + else if (agt.indexOf("opera 6") != -1 || agt.indexOf("opera/6") != -1 || + agt.indexOf("opera 7") != -1 || agt.indexOf("opera/7") != -1) + { + pngNormal = 1; + } + } + +else if (agt.indexOf("msie") != -1) + { + if (agt.indexOf("msie 5.5") != -1 || agt.indexOf("msie 6") != -1) + { + if (agt.indexOf("mac") != -1) + { pngNormal = 1; } + else if (agt.indexOf("win") != -1) + { pngTransform = 1; }; + } + + else if (agt.indexOf("msie 5") != -1) + { + if (agt.indexOf("mac") != -1) + { pngNormal = 1; }; + } + + else if (agt.indexOf("msie 7") != -1) + { pngNormal = 1; } + } + +else if (agt.indexOf("gecko") != -1) + { + pngNormal = 1; + } + + +function PNGGIF(strPath, intWidth, intHeight, strAlt, strID) + { + if (pngTransform) + { + document.write('
'); + } + else if (pngNormal) + { + document.write(''+strAlt+''); + } + else + { + document.write(''+strAlt+''); + } + }; diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Help/keywords.html b/lib/ann/fann/docs/NaturalDocs-1.52/Help/keywords.html new file mode 100755 index 0000000..6482503 --- /dev/null +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Help/keywords.html @@ -0,0 +1,38 @@ + + +Natural Docs Topics and Keywords + + + +
Natural Docs
Topics and Keywords

Keywords are not case sensitive and are interchangable within their topic type.  The plural forms denote list topics where every item in its definition lists are treated like they have their own topic.

General Topics
Generic
topictopics
aboutlist
Section
Ends Scope
section
title
Group
group
File
Always Global
filefiles
programprograms
scriptscripts
documentdocuments
docdocs
headerheaders
Code Topics
Class
Starts Scope
classclasses
structurestructures
structstructs
packagepackages
namespacenamespaces
Interface
Starts Scope
interfaceinterfaces
Type
typetypes
typedeftypedefs
Constant
constantconstants
constconsts
Enumeration
Topic indexed under Types
Members indexed under Constants
enumerationenumerations
enumenums
Function
List topics break apart
functionfunctions
funcfuncs
procedureprocedures
procprocs
routineroutines
subroutinesubroutines
subsubs
methodmethods
callbackcallbacks
constructorconstructors
destructordestructors
operatoroperators
Property
propertyproperties
propprops
Event
eventevents
Delegate
delegatedelegates
Macro
macromacros
definedefines
defdefs
Variable
variablevariables
varvars
integerintegers
intints
uintuints
longlongs
ulongulongs
shortshorts
ushortushorts
bytebytes
ubyteubytes
sbytesbytes
floatfloats
doubledoubles
realreals
decimaldecimals
scalarscalars
arrayarrays
arrayrefarrayrefs
hashhashes
hashrefhashrefs
boolbools
booleanbooleans
flagflags
bitbits
bitfieldbitfields
fieldfields
pointerpointers
ptrptrs
referencereferences
refrefs
objectobjects
objobjs
charactercharacters
wcharacterwcharacters
charchars
wcharwchars
stringstrings
wstringwstrings
strstrs
wstrwstrs
handlehandles
Database Topics
Database
databasedatabases
dbdbs
Database Table
Starts Scope
tabletables
database tabledatabase tables
db tabledb tables
Database View
Starts Scope
viewviews
database viewdatabase views
db viewdb views
Database Cursor
cursorcursors
database cursordatabase cursors
db cursordb cursors
Database Index
indexindexes
indices
database indexdatabase indexes
database indices
db indexdb indexes
db indices
keykeys
database keydatabase keys
db keydb keys
primary keyprimary keys
database primary keydatabase primary keys
db primary keydb primary keys
Database Trigger
triggertriggers
database triggerdatabase triggers
db triggerdb triggers
Miscellaneous Topics
Cookie
Always global
cookiecookies
Build Target
targettargets
build targetbuild targets
Copyright © 2003-2010 Greg Valure
\ No newline at end of file diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Help/languages.html b/lib/ann/fann/docs/NaturalDocs-1.52/Help/languages.html new file mode 100755 index 0000000..02f21a0 --- /dev/null +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Help/languages.html @@ -0,0 +1,32 @@ + + +Natural Docs Language Support + + + +
Natural Docs
About
Language SupportOutput Formats
Language Support
Full Language Support

The following languages have full language support, which means you get:

Full code documentation.  All functions, variables, and classes will appear in the output regardless of whether you wrote anything for them.  This can be turned off with the -do command line option.

Inheritance diagrams.  They will appear in the output wherever appropriate.

Javadoc compatibility.  Natural Docs can read most Javadoc comments and include them in the output.  You can also write Natural Docs documentation without topic lines by using the Javadoc comment symbols.

Auto-scoping.  The class a topic is part of is determined by the source code rather than class and section topics.

  • C# (1.1, some 2.0)
  • Perl
  • ActionScript (2 and 3)
Basic Language Support

The following languages have basic language support, which means you have:

Explicit documentation only.  Only things you write Natural Docs documentation for will appear in the output.

No inheritance diagrams.

Natural Docs comments only.  They also need to include a topic line.

Topic scoping.  The class a topic is part of is determined by the topic scoping rules.

  • C/C++
  • Java
  • PHP
  • Python
  • PL/SQL
  • Visual Basic
  • Pascal/Delphi
  • Ada
  • JavaScript
  • Ruby
  • Tcl
  • ColdFusion
  • Assembly
  • Fortran (free-format only)
  • R
  • Makefiles
  • Plain Text
  • Custom Languages
Copyright © 2003-2010 Greg Valure
\ No newline at end of file diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Help/menu.html b/lib/ann/fann/docs/NaturalDocs-1.52/Help/menu.html new file mode 100755 index 0000000..ef087d2 --- /dev/null +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Help/menu.html @@ -0,0 +1,79 @@ + + +Organizing the Menu - Natural Docs + + + +
Natural Docs
Organizing the Menu

Natural Docs creates a file called Menu.txt in your project directory that you can edit to organize the menu.  It normally takes care of this on its own, but you have the option of improving it manually if you want to.

Order and Titles

If you’ve never looked in it before, the menu file will have some comments explaining its syntax and a list like you see below.

File: ClassA  (ClassA.h)
+File: ClassB  (ClassB.h)
+File: Globals  (Globals.h)
+

The list gets turned into a menu that looks like this:

The lines are in the format “File: [title] ([filename])”.  When Natural Docs made the menu, it decided on its own what the title of each file should be and then put them in alphabetical order.  However, suppose we don’t want this.  We want Globals above the classes and we want spaces in the menu titles.  So we edit the file.

File: Globals  (Globals.h)
+File: Class A  (ClassA.h)
+File: Class B  (ClassB.h)
+

Run Natural Docs again and the menu is updated.

However, open the menu file again and you’ll see something interesting.

File: Globals  (Globals.h)
+File: Class A  (no auto-title, ClassA.h)
+File: Class B  (no auto-title, ClassB.h)
+

Natural Docs noticed that you changed a couple of the titles and added a no auto-title attribute to each one.  This tells it to never change them on it’s own in the future, so your changes won’t be lost.  You don’t have to worry about adding this, Natural Docs will always do it automatically.  However, to go back to automatic titles you’d have to manually remove it.

Grouping

This menu is good for our example, but in the real world they get much, much longer.  We can add groups to organize it further.  Natural Docs will create them automatically based on the each file’s directory, but once again you can improve it manually if that’s not good enough.

You can add groups as shown below.

File: Globals  (Globals.h)
+Group: Classes {
+   File: Class A  (no auto-title, ClassA.h)
+   File: Class B  (no auto-title, ClassB.h) }
+

You can also nest them inside each other.

File: Globals  (Globals.h)
+Group: Classes {
+   File: Class A  (no auto-title, ClassA.h)
+   Group: Nested Group {
+      File: Class B  (no auto-title, ClassB.h)  }
+   }
+

We’ll get rid of the nested group because it doesn’t make sense for our example.  Run Natural Docs, open up the menu file again and take a look.

File: Globals  (Globals.h)
+
+Group: Classes  {
+
+   File: Class A  (no auto-title, ClassA.h)
+   File: Class B  (no auto-title, ClassB.h)
+   }  # Group: Classes
+

Natural Docs reformatted it.  When you’re organizing the menu, you don’t have to worry about the indentation or otherwise keeping it neat.  The file is reformatted every time it changes, so you can make quick and dirty edits and Natural Docs will keep it readable.

Besides breaking up long lists, groups also serve another purpose.  Clicking on them will make it expand and collapse.  Go ahead and try it in the examples above.  When the menu gets too long its groups will start being collapsed by default, allowing easier navigation on large projects where it would just be impractical to show everything at once.

Indexes and Search

Natural Docs will automatically determine what indexes your project needs and add them to the menu.  Anything indexed will also be used for the search feature.  The entries will look like this:

Group: Index {
+
+   Index: Everything
+   Class Index: Classes
+   Function Index: Functions
+   }  # Group: Index
+

Like the file entries we saw before, you can rename them by editing the title and reorder them by cutting and pasting.  However, if you decide you don’t want a particular index to be generated, just delete its entry and it will go away.  Just like before, Natural Docs will detect this and add something new:

Don't Index: Functions
+

As with no auto-title, Natural Docs adds this automatically to make sure it doesn’t later undo your changes.

Automatic Changes

Natural Docs tries to manage the menu on its own as much as possible so you don’t have to worry about it.  This is just a peek into some of the things it does so you know what to expect.

You already saw that by default Natural Docs tries to guess what title should be for each file.  If you leave it this way, Natural Docs will always update the menu for you if the file’s content changes significantly enough to change its guess, such as if you rename the first class defined in it.  If you’d like to take advantage of this to define the menu title in each source file instead of in the menu itself, add a “Title: [title]” comment to the top of the file.

When you add and delete source files, Natural Docs will automatically add and remove them from the menu file.  When adding one it will look for the best group to put it in by directory.  If your grouping mirrors the source tree somewhat, this will be a lot more accurate.  Also, if the group it’s putting it in is alphabetized, Natural Docs will put it in the correct place to maintain that alphabetization.  In fact, even if an existing file’s automatic title changes, it will change it’s position to make sure a previously alphabetized group stays that way.

There are exceptions in alphabetization for the indexes.  If a group only contains indexes, it can be the last item on the menu or in its parent group without making it count as unsorted.  Also, within groups that only contain indexes, the general index can be first, also without making the group count as unsorted.

Finally, if Natural Docs adds some files to a group that causes it to become too long, it will attempt to sub-group it based on directory.  However, it will only do this when its adding files on its own, so you don’t have to worry about it constantly messing up your groups.  Since new files aren’t added to a project that often, if you change the menu manually it should stay that way for quite some time.

Extras

There’s more you can do with the menu than just renaming and reorganizing its entries.  Natural Docs has a few extras you can add to it as well.

Title and Subtitle

You can add a title and subtitle to your menu.

Title: My Project
+SubTitle: Something That Does Something
+
+File: Globals  (Globals.h)
+Group: Classes
+   File: Class A  (no auto-title, ClassA.h)
+   File: Class B  (no auto-title, ClassB.h)
+
My Project
Something That Does Something

In addition to adding the title to the menu, the Title tag will also change the HTML page titles from “Class A” to “Class A - My Project”, making bookmarks clearer.

Text and Web Links

You can also add arbitrary text and web links to your menu.

File: Globals  (Globals.h)
+Group: Classes  {
+   Text: I couldn't think of good names for these classes.
+   File: Class A  (no auto-title, ClassA.h)
+   File: Class B  (no auto-title, ClassB.h)
+   }
+Link: Built with Natural Docs  (http://www.naturaldocs.org)
+
Classes

Even though comments use the # character, adding an anchor to a link (such as “http://www.website.com/page.html#anchor”) will still work.

Footers

Finally, you can add a footer to all your pages, such as a copyright notice.  Natural Docs will change any (c)’s it finds into real copyright symbols.

Footer: Copyright (C) 2010 Me
+
Copyright © 2010 Me  ·  Generated by Natural Docs

You can also add a timestamp in any format you want.  The tokens you can use in building it are:

mOne or two digit month.January is “1”
mmAlways two digit month.January is “01”
monShort month word.January is “Jan”
monthLong month word.January is “January”
dOne or two digit day.1 is “1”
ddAlways two digit day.1 is “01”
dayDay with letter extension.1 is “1st”
yyTwo digit year.2010 is “10”
yyyyFour digit year.2010 is “2010”
yearFour digit year.2010 is “2010”

Everything else appears literally, so we can add:

Timestamp: Updated month day, year
+

and get:

Copyright © 2010 Me  ·  Updated January 1st, 2010  ·  Generated by Natural Docs
Errors

If there’s ever an error in the menu file, Natural Docs will tell you when it’s run.  It also adds a comment for each one in the menu file itself so that you can search for them in a text editor.

# There is an error in this file.  Search for ERROR to find it.
+
+File: Globals  (Globals.h)
+Group: Classes  {
+# ERROR: Txet is not a valid keyword.
+   Txet: I couldn't think of good names for these classes.
+   File: Class A  (no auto-title, ClassA.h)
+   File: Class B  (no auto-title, ClassB.h)
+   }
+

Remember that Natural Docs reformats the menu file whenever it’s run, so you only need to correct the error.  Natural Docs will remove the error comments on its own.

Portability and Versioning Systems

If you only use one input directory, all the files in the menu will have relative paths.  However, if you have more Natural Docs will use the absolute path instead.

This is not a problem.  The menu file can still be shared between machines even if they don’t keep the source tree in the exact same location.  As long as you have the same layout within the source tree and point to the same base directories in the command line, Natural Docs will be able to convert the paths automatically for the new machine.

However, if you’re putting the menu file in a versioning system like Subversion or SourceSafe, it might be very desirable to only have relative paths so anybody can check it in and only the real changes show.  In that case, instead of using multiple input directories, see if it’s possible to only have one input directory and use the -xi command line option to exclude the subdirectories you don’t want scanned.

That’s It!

And we’re done.  The syntax to do all of this is included in the menu file itself, so you don’t need to memorize everything.  You shouldn’t need to organize the menu very often, just after a lot of new files have been added and if you don’t like the default.

Note that if you’re using the non-framed HTML output format, changing the menu does require every output file to be updated.  However, Natural Docs has a special process just for this so it won’t take nearly as long as if it were rebuilding them all from scratch.  Still, if you’re working on a large project, it may be worth considering the framed HTML output format.

Copyright © 2003-2010 Greg Valure
\ No newline at end of file diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Help/output.html b/lib/ann/fann/docs/NaturalDocs-1.52/Help/output.html new file mode 100755 index 0000000..7d1bcda --- /dev/null +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Help/output.html @@ -0,0 +1,84 @@ + + +Output Formats - Natural Docs + + + +
Natural Docs
About
Language SupportOutput Formats
Output Formats

These are the output formats that are currently implemented in Natural Docs.

HTMLHTML output.  Each page is self-contained.  Linking to specific pages is easy, but every file has to be updated whenever the menu changes.
FramedHTMLHTML output based on frames.  The menu is updated quickly, but linking to individual pages is difficult and some people just plain hate frames.
HTML Compatibility

These are the browsers Natural Docs’ HTML output has been tested with.  All browsers will be able to view and navigate it, some of the older ones just may not be able to use advanced features like search correctly.

FireFoxTested with 1.0, 1.5, and 2.0.
Internet ExplorerTested with 6 and 7.
SafariTested with 2 and 3.  Search doesn’t work with unframed HTML in 2.
OperaTested with 7.0, 7.5, 8.0, 8.5, and 9.0.  Search doesn’t work with 7.0, and sometimes tooltips.
KonquerorTested with 3.5.5.  Search doesn’t work.
Copyright © 2003-2010 Greg Valure
\ No newline at end of file diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Help/running.html b/lib/ann/fann/docs/NaturalDocs-1.52/Help/running.html new file mode 100755 index 0000000..df18656 --- /dev/null +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Help/running.html @@ -0,0 +1,40 @@ + + +Running Natural Docs + + + +
Natural Docs
Running Natural Docs
 
How and When

Probably the best way to run Natural Docs is as part of the build process.  This way every time you compile your code, your documentation is updated as well and you always have a current reference.  Natural Docs has a differential build process so it will not rebuild the entire set of documentation every time it’s run.

If you’d like to run it manually instead, you should determine the command line you need and save it as a shortcut, batch file, or script since you should be running it often and will rarely need to fiddle with the parameters.

Command Line
NaturalDocs -i [input (source) directory]
+            -o [output format] [output directory]
+            -p [project directory]
+            [options]
Required Parameters:
-i [dir]
--input [dir]
--source [dir]

The input (source) directory.  Natural Docs will build the documentation from the files in this directory and all its subdirectories.  You can specify it multiple times to include multiple directories.  See the list of supported programming languages.

-o [fmt] [dir]
--output [fmt] [dir]

The output format and directory.  This can also be specified multiple times, so you can build the documentation in multiple formats in a single run.  The supported formats are HTML and FramedHTML.

-p [dir]
--project [dir]

The project directory.  Natural Docs needs a place to store configuration and data files for each project it’s run on, so this is where it will put them.  No two projects should share the same directory.

Optional Parameters:
-xi [dir]
--exclude-input [dir]
--exclude-source [dir]

Excludes a subdirectory from being scanned.  The output and project directories are automatically excluded.

-img [dir]
--images [dir]

Adds a directory to search for image files when using (see [file]).

-s [style] ([style] ...)
--style [style] ([style] ...)

Selects the CSS style for HTML output.  The default styles are Default, Small, and Roman.

You can use any CSS file in your project directory or Natural Docs’ Styles directory just by using its name without the .css extension.  If you include more than one, they will all be included in the HTML that order.

-r
--rebuild

Rebuilds everything from scratch.  All source files will be rescanned and all output files will be rebuilt

-ro
--rebuild-output

Rebuilds all output files from scratch.

-t [len]
--tab-length [len]

Sets the number of spaces tabs should be expanded to.  This only needs to be set if you use tabs in example code or text diagrams.  The default is 4.

-hl [opt]
--highlight [opt]

Sets the syntax highlighting option used in the output.  Off turns off all syntax highlighting.  Code applies it to prototypes and (start code) segmentsAll applies it to prototypes, (start code) segments, and lines prefixed with >, |, or :.  The default is Code.

-do
--documented-only

Tells Natural Docs to only include what you explicitly document in the output, and not to find undocumented classes, functions, and variables.  This option is only relevant if you have full language support.

-oft
--only-file-titles

Tells Natural Docs to only use the file name for its menu and page titles.  It won’t try to determine one from the contents of the file.

-nag
--no-auto-group

Tells Natural Docs to not automatically create group topics if you don’t add them yourself.

-q
--quiet

Suppresses all non-error output.

-?
-h
--help

Prints the syntax reference.

No Longer Supported:
These parameters were part of previous Natural Docs releases, but are no longer supported.
-ho
--headers-only

This used to check only the headers and not the source files in C and C++.  Edit Languages.txt instead and add the line “Ignore Extensions: c cpp cxx”.

-s Custom
--style Custom

This used to tell Natural Docs not to alter the CSS file in the output directory.  Copy your custom CSS file to your project directory and use it with -s instead.

-ag [level]
--auto-group [level]

This used to set the level of auto-grouping between Full, Basic, and None.  The algorithm was improved so there’s no need for separate levels anymore.  You can use -nag if you want to turn it off completely.

-cs [charset]
--charset [charset]
--character-set [charset]

This used to set the character set property of the generated HTML.  Natural Docs now always uses UTF-8.

Examples
NaturalDocs -i C:\My Project\Source
+            -o FramedHTML C:\My Project\Docs
+            -p C:\My Project\Natural Docs
+
+NaturalDocs -i /project/src1
+            -i /project/src2
+            -o HTML /project/doc
+            -p /project/nd
+            -s Small -t 3
Copyright © 2003-2010 Greg Valure
\ No newline at end of file diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Help/styles.css b/lib/ann/fann/docs/NaturalDocs-1.52/Help/styles.css new file mode 100755 index 0000000..905f014 --- /dev/null +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Help/styles.css @@ -0,0 +1,292 @@ + +body { + background: #FFFFFF; + margin: 18px 15px 25px 15px !important; + } + +body, +td, +li { + font: 9pt Verdana, sans-serif; + } +p, +td, +li { + line-height: 150%; + } + +p { + text-indent: 4ex; + margin: 0; + } + +td { + vertical-align: top; + } + +a:link, +a:visited { color: #900000; text-decoration: none } +a:hover { color: #900000; text-decoration: underline } +a:active { color: #FF0000; text-decoration: underline } + +.Opera wbr:after { + content: "\00200B"; + } + +.NoIndent p + { text-indent: 0; } + +img { + border: none; + } + +.First { + margin-top: 0 !important; + padding-top: 0 !important; + } +.Last { + margin-bottom: 0 !important; + padding-bottom: 0 !important; + } + +.PageTable { + max-width: 950px; + margin-left: auto; + margin-right: auto; + } + +.Header { + background-image: URL("images/header/background.png"); + background-color: #7070C0; + } +.SideMenuTop { + background: URL("images/header/overmenubg.png"); + } +.SideMenuBottom { + vertical-align: bottom; + } +.BodyTop { + background: URL("images/header/overbodybg.png"); + text-align: right; + } +.BodyBottom { + vertical-align: bottom; + text-align: right; + font: italic 8pt Georgia, serif; + color: #C0C0C0; + padding-right: 10px; + } + +.Body { + padding: 15px 20px 0 25px; + } + + + + +pre, code, .Example { + font: 10pt Courier New, Courier, monospace; + color: #606060; + } +a code { + color: #C06060; + } +.Example { + overflow: auto; + } + +.PageTitle { + font: bold italic 21pt Trebuchet MS, sans-serif; letter-spacing: .5ex; text-transform: uppercase; + margin-bottom: .5em } +.IE .PageTitle { + letter-spacing: 1.25ex; + } + + +.Topic { + margin-bottom: 2em } + + +.TopicTitle { + font: 18pt Georgia, serif; + border-width: 0 0 1px 0; border-style: solid; border-color: #C0C0C0; + margin-bottom: .5em + } +#SubscribeTopicTitle { + margin-bottom: 0; + } +.Subscribe { + font-size: 8pt; + margin-bottom: 2em; + color: #909090; + } + +.Subscribe a:link, +.Subscribe a:hover, +.Subscribe a:visited { + color: #909090 } + + +.SubTopic { + font-weight: bold; font-size: 10pt; + padding-top: 1.5em; padding-bottom: .5em; + } + +.MiniTopic { + font-weight: bold; + padding-top: 1em; padding-bottom: 0em; + } + + +.TOC { + text-align: center; + font: 8pt Verdana, sans-serif; + text-transform: uppercase; + background-color: #F8F8F8; + border-width: 1px; border-style: solid; border-color: #C0C0C0; + margin-bottom: 1.5em; + padding: 2px 0; + -moz-border-radius: 14px; + } + + .TOC a { + margin: 0 0.75ex; } + + .TOC a:link, + .TOC a:hover, + .TOC a:visited { + color: #404040 } + + +.Example { + background-color: #FDFDFD; + padding: 15px; + border: 1px solid #C0C0C0; + border-width: 1px 1px 1px 6px; + border-style: dashed dashed dashed solid; + color: #707070; + margin: 15px 5ex; + } + + +.LastUpdated { + font: italic 10pt Georgia, serif; + color: #A0A0A0; + margin: 1em 0; + } + + + +.FAQSummary { + margin-bottom: 3em; + } +.FAQSummaryGroup { + font: bold 12pt Georgia, serif; + margin: 1em 0 .25em 0; + } +.FAQGroup { + font: 18pt Georgia, serif; + border-bottom: 1px solid #C0C0C0; + margin-bottom: .5em; + margin-top: 1.5em; + } +.FAQSummaryEntry:link, +.FAQSummaryEntry:visited, +.FAQSummaryEntry:hover, +.FAQSummaryEntry:active { + } + +.FAQEntry { + margin-bottom: 3em; + } +.FAQEntryTitle { + font: bold 12pt Georgia, serif; + margin-bottom: .5em; + } +.FAQEntry .SubTopic { + font: italic 9pt Verdana, sans-serif; + } + + + +.SideMenu { + width: 175px; /* 195 minus padding */ + text-align: center; + padding-top: 15px; + background-color: #F0F0F0; + } +.SideMenuBottom { + background-color: #F0F0F0; + } +.SideMenuBottomRight { + text-align: right; + } + +.SideMenuSection { + margin-bottom: 3em; + } + +.SideMenuTitle { + padding-bottom: 3px; + border-bottom: 1px solid #D0D0D0; + } + +.SideMenuBody { + padding-top: 1em; + background: URL("images/menu/background.png") repeat-x; + } + +.SideMenuEntry { + font: 8pt Verdana, sans-serif; + margin: 0 10px 1em 10px; + display: block; + } + +a.SideMenuEntry:link, +a.SideMenuEntry:visited { + color: #000000; + padding: 1px 10px 2px 9px; + } +a.SideMenuEntry:hover, +a.SideMenuEntry:active, +#SelectedSideMenuEntry { + border-style: solid; + border-width: 1px 2px 2px 1px; + padding: 0 8px; + text-decoration: none; + -moz-border-radius: 10px; + } +a.SideMenuEntry:hover, +a.SideMenuEntry:active { + color: #000000; + border-color: #C8C8C8; + background-color: #F8F8F8; + } +#SelectedSideMenuEntry { + color: #000000; + border-color: #606060; + background-color: #FFFFFF; + } + +.SideMenuSourceForge { + padding-top: 2.5em; + } + + + +/* Needed by the release notes for 1.3 */ + +.ExPrototype { + font: 10pt Courier New, Courier, monospace; + padding: 5px 3ex; + background-color: #F4F4F4; + border: 1px solid #D0D0D0; + margin: 1em 0; + } +.ExPrototype td { + font: 10pt Courier New, Courier, monospace; + } +.ExPrototype .Fade { + color: #8F8F8F; + } + diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Help/styles.html b/lib/ann/fann/docs/NaturalDocs-1.52/Help/styles.html new file mode 100755 index 0000000..808341d --- /dev/null +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Help/styles.html @@ -0,0 +1,52 @@ + + +CSS Styles - Natural Docs + + + +
Natural Docs
CSS Styles
Default Styles

These are the styles that come with Natural Docs.  They all follow the same color scheme and general layout; the choices are more so that you can choose the style of text you want.

You choose which style you want for your project by adding “-s [style name]” to the command line.

DefaultThis is the default style that Natural Docs uses.  Most of the text is 10pt Verdana.
SmallSmaller fonts than Default with most of the text using 8pt Verdana.  Some people like the small fonts because you can fit more on the screen at once.  However, some people hate them and find them hard to read.
RomanSerif fonts with most of the text using 12pt Roman.  Some people prefer Roman fonts, usually those that have decent anti-aliasing displays like Mac OS X or Windows XP with ClearType.
Customizing

There are two ways to customize the CSS files.  One is to build your own file from scratch, and the other is to make a touch-up file that gets applied after one of the default styles.  Either way you want to create your own CSS file in your project directory (the one you use with -p) or if you plan on sharing it between many projects, in Natural Docs’ Styles directory.

To use a custom file, no matter where you put it, you just use it with -s without the CSS extension.  So if you made Red.css, you use “-s Red”.  If you made a touch-up file instead, you use it after one of the default styles, such as with “-s Default Red”.  If you’re so inclined, you can string as many touch-up files together as you want or use one of your own as a base.

The CSS Guide documents the page structure and CSS styles of Natural Docs’ output.  Always remember to check its revisions section every time you upgrade Natural Docs because it may change between releases.

Common Customizations
Web-Style Paragraphs

Natural Docs defaults to print-style paragraphs like the one you are reading.  Each one is indented and there are no blank lines between them.  To switch to web-style paragraphs, which have blank lines and no indents, add this to your custom CSS file:

p {
+   text-indent: 0;
+   margin-bottom: 1em;
+   }
+
Prototype Colors

If you’ve added a custom topic type and have it finding prototypes for you, you may want to have them appear in a different color than the default black and white.  Add this to your custom CSS file:

.C[type] .Prototype {
+   background-color: [color];
+   border-color: [color];
+   }
+

Replace [type] with the name of your topic type, minus any symbols and spaces.  So if you added a type “Sound Effect”, you would apply the style to “.CSoundEffect .Prototype”.

Copyright © 2003-2010 Greg Valure
\ No newline at end of file diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Help/troubleshooting.html b/lib/ann/fann/docs/NaturalDocs-1.52/Help/troubleshooting.html new file mode 100755 index 0000000..3cc089e --- /dev/null +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Help/troubleshooting.html @@ -0,0 +1,18 @@ + + +Troubleshooting - Natural Docs + + + +
Natural Docs
Troubleshooting
Natural Docs Issues
I don’t get any documentation
Is it recognizing your source files?

If Natural Docs has never said “Parsing n files...” when you run it, or n was way too low a number, it is not finding your source files.

If it has, try this test.  Run Natural Docs once.  Edit one of your source files and save it.  Run Natural Docs again.  If it doesn’t say “Parsing 1 file...” it is not recognizing your file.

No, it’s not recognizing them

The most likely scenario is that Natural Docs doesn’t associate the file extension you’re using with your programming language.  Open Languages.txt in Natural Docs’ Config directory and find your language.  Underneath it you should see a line that says something like “Extensions: c cpp cxx h hpp hxx”.  Add the file extensions you use and try again.

If you use extensionless or .cgi files, do the same thing but instead look for a line that says something like “Shebang Strings: tclsh wish expect”.  If it is not there, you may need to add it yourself.  Edit it to include whatever appears in your shebang (#!) line that would say this file belongs to your language.

Otherwise just make sure you included the directory or one of its parents with -i on the command line.

Yes, it’s recognizing them

First note that unless you have full language support, Natural Docs will only include what you write for it.  It will not be able to scan your code and pick out all the classes and functions on its own.

If the problem is with text files, the most likely scenario is that you’re not including topic lines.  Like in comments, only things that appear under “keyword: name” lines count as Natural Docs content.

If it’s still not working, note that Natural Docs can only read ASCII or UTF-8 encoded files that use Windows (CR+LF) or Unix (LF) line endings.  If you use UTF-16 encoded files and/or classic Mac (CR) line endings you need to convert the files.  These are due to limitations in Perl.  Natural Docs 2.0 won’t have these problems.

Some of my topics don’t show up
  • Check the list of keywords to see if the one you’re using is there and you spelled it correctly.  Note that the web page only has the default set of keywords.  You may need to check Topics.txt in Natural Docs’ Config directory and your project directory if you’ve edited them
  • If the topics appear in code, make sure that the comments are alone on a line.  You cannot put Natural Docs content on the same line as code.  This includes having anything appear after a closing block comment symbol.
  • Make sure that if you have more than one topic in a comment, there is a blank line above the topic line.
  • If you have text boxes or lines, make sure they are completely unbroken.  You can also try removing them completely.
  • If the topics appear in a text file, make sure you included topic lines.  Like in comments, only things that appear after “keyword: name” lines count as Natural Docs content.  You could just add a Title: line to the top of the file to fix this.
Some of my topics aren’t formatting correctly
  • Headings must have a blank line above them.
  • Lines directly after bullet or definition lines are part of the previous bullet or definition, even if it’s not indented.  Skip a line first to do something else
  • If you’re getting symbols scattered throughout your text, make sure any text boxes or lines are completely unbroken.  You can also try removing them altogether.
  • If your example source code is getting mangled, remember to use the example code syntax.
  • If a line’s becoming a heading but shouldn’t, either get rid of the colon at the end or break it into two lines so the colon appears on the second line
  • If a line’s becoming a definition but shouldn’t, either get rid of the space-dash-space (use two dashes or remove one of the spaces) or break it into two lines so that the space-dash-space is on the second line.

I realize the last two aren’t great.  If you have any ideas as to how to reliably detect these kinds of false positives, e-mail me.

I’m not getting prototypes
  • The topic must appear directly above the thing it’s documenting.
  • Topics documented in lists will not get prototypes, even if the list break apart in the output.
  • The topic name must be present in the prototype somewhere.  Make sure the topic title has the same case as in the prototype and that it’s not misspelled.  This applies even if your language isn’t case sensitive.
  • If you’re documenting something with a new topic type you added to Topics.txt, you must also edit Languages.txt to tell it how to detect prototypes for that type.
My links aren’t working

If your links appear in the output as “<text>” instead of being converted to links, do the following:

  • Make sure the target appears in the output.  The easiest way is to see if it appears in the Everything index.
  • Make sure the link is spelled correctly and has the same case as what you’re linking to.  This applies even if your language isn’t case sensitive.
  • If the topic your link appears in and the link target are not in the same class (or are not both global) make sure you include the class in the link with class.target, class::target, or class->target.  You can check which classes topics appear in with the Everything index.  If your topics are appearing in the wrong classes, fix the documentation remembering the topic scoping rules.
Windows Issues
I get the message “Bad command or file name” or “perl is not recognized”

What’s happening is that NaturalDocs.bat can’t find Perl.  You need Perl installed to run Natural Docs, so if you haven’t done so already, you can download and install ActiveState’s ActivePerl for free.

If you already have Perl, it’s bin directory is either not in your path or the path isn’t being used by whatever you’re running it from, which happens on some IDEs.  Edit NaturalDocs.bat and on the line that says “perl NaturalDocs %NaturalDocsParams%”, change perl to be the full path to perl.exe, such as “C:\perl\bin\perl.exe”.  You need to include the quotes if there are spaces in the path.

I get the message “Can’t open perl script NaturalDocs”

What’s happening is that Perl can’t find the Natural Docs script file.  This happens when the working directory or “start in” folder isn’t the directory Natural Docs was installed to.  If changing that doesn’t work, or if you don’t have the option to set that, edit NaturalDocs.bat and find the line that says “perl NaturalDocs %NaturalDocsParams%”.  Change NaturalDocs to include the full path Natural Docs was installed to, such as “C:\Program Files\Natural Docs\NaturalDocs”.  You need to include the quotes if there are spaces in the path.

Copyright © 2003-2010 Greg Valure
\ No newline at end of file diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Info/CSSGuide.txt b/lib/ann/fann/docs/NaturalDocs-1.52/Info/CSSGuide.txt new file mode 100755 index 0000000..2496b0b --- /dev/null +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Info/CSSGuide.txt @@ -0,0 +1,947 @@ + + Architecture: CSS Structure +_______________________________________________________________________________ + +It's important to understand the internal HTML file structure and styles in order to design your own CSS style for Natural Docs. If +you're content with the default styles, there's no need to read this document. + +Topic: Diagram Conventions + + The diagrams are designed for clarity. In the actual HTML, you'd obviously see "
" + instead of "
". + + - A tag with just a style, for example "CTitle", means an unspecified element with that class. Style with .CTitle. + - A tag that includes a #, for example "#Menu", means an unspecified element with that ID. Style with #Menu. + - A tag that includes a HTML element as well, for example "table CDescriptionList", means it will always be that element. You + can style with either .CDescriptionList or table.CDescriptionList. + - A tag that has multiple classes or has an "and" in it, for example "CType and CTopic", means that both styles will apply to the + same element. You can style it with .CType.CTopic, noting that the space between them must be omitted. + - A tag that has an "or" in it, for example "#Content or #Index", is just shorthand for either of those elements. The diagram + applies to both of them but only one will actually appear at a time in the output. + - A tag or style with a question mark means that tag or style will only be there in certain situations. + + +Topic: Page Structure +_______________________________________________________________________________ + + The body tag is used to distinguish between the types of pages. + + Unframed Content/Index Page: + + (start diagram) + + + [browser styles] + + <#Content or #Index> + Content or Index + + + <#Menu> + Menu + + + <#Footer> + Footer + + + [/browser styles] + + + (end diagram) + + + Unframed Search Results Popup Page: + + (start diagram) + + + [browser styles] + + <#Index> + Index + + + [browser styles] + + + (end diagram) + + + Framed Menu Page: + + (start diagram) + + + [browser styles] + + <#Menu> + Menu + + + <#Footer> + Footer + + + [browser styles] + + + (end diagram) + + + Framed Content/Index/SearchResults Page: + + (start diagram) + + + [browser styles] + + <#Content or #Index> + Content or Index + + + [browser styles] + + + (end diagram) + + +Styles: Page Styles + + ContentPage - An unframed content page. + IndexPage - An unframed index page. + PopupSearchResultsPage - A search results page for use in a popup iframe. + + FramedContentPage - A framed content page. + FramedIndexPage - A framed index page. + FramedSearchResultsPage - A framed search results page. + + #Footer - The page footer. Will be in a framed menu page or on its own in a non-framed page. + + See Also: + + - <#Content> + - <#Menu> + - <#Index> + - <#Footer> + + + + +Styles: Browser Styles +_______________________________________________________________________________ + + + Natural Docs pages include JavaScript to detect which browser the user is running and apply styles so that you can work + around browser quirks right in the CSS file. + + The browser type and version styles will be applied immediately after the body tag. However, neither are guaranteed to be + there; the user may have JavaScript turned off or be using a browser that isn't detected. These styles should only be used to + correct minor flaws and should not be heavily relied on. + + > + > ? + > ? + > + > Page Content + > + > ? + > ? + > + + For example, if a 's style is giving you problems in Internet Explorer 6, override it with .IE6 .CTopic. If a 's + style gives you a problem in Opera 7 but only in frames, override it with .Framed.Opera7 .MTitle. + + Browser Types: + + If the browser is not one of the types below, neither this nor the browser version will be present. There's the possibility that + some obscure browser will appear as one of the others by spoofing, but the most prominent of these, Opera, Konqueror, and + Safari, are taken care of. + + IE - Internet Explorer + Firefox - Firefox and anything else based on the Gecko rendering engine. + Opera - Opera + Safari - Safari + Konqueror - Konqueror and anything else based on the KHTML rendering engine except Safari. + + Browser Versions: + + If the browser is not one of the versions below, this style will not be present. The browser type still may be. + + IE6 - Internet Explorer 6.x. + IE7 - Internet Explorer 7.x. + + Firefox1 - Firefox 1.0.x and anything else based on Gecko 1.7.x. + Firefox15 - Firefox 1.5.x and anything else based on Gecko 1.8.0.x. + Firefox2 - Firefox 2.0.x and anything else based on Gecko 1.8.1.x. + + Opera7 - Opera 7.x. + Opera8 - Opera 8.x. + Opera9 - Opera 9.x. + + Safari2 - Safari 2.x. + Safari3 - Safari 3.x. + + Notes: + + Why not apply them to the body tag itself? The JavaScript is easy enough and everything supports multiple classes, right? + Because IE 6 doesn't support multiple selectors so I wouldn't be able to combine browser and page styles. + .Opera.ContentPage will apply to all ContentPages in IE because it treats it as if only the last class is there. + + + + +Topic: Content Structure +_______________________________________________________________________________ + + + All the topics of a given file is contained in a <#Content>. All other content styles are prefixed with a C. + + Surrounding each piece of content is a and its type; for example, CFunction for a function. Inside that are the + and if necessary, . Inside are analogues to all the top-level tags:

,

, etc. + + In addition to the top-level tags, you also have prototypes, class hierarchies, and summaries which are + described in their own sections. + + (start diagram) + + <#Content> + + + + + + Topic title + + + + + [Class Hierarchy] + + [Prototype] + + + Heading + + +

+ Paragraph +

+ +
+                        Code or text diagram
+                    
+ +
    +
  • + Bullet item +
  • +
+ + ? + Caption + ? + + + + text + + + + + + + +
+ Entry + + Description +
+ + [Summary] + + + + + + + + + (end diagram) + + Take advantange of the CSS inheritance model. For example, you can style all titles via .CTitle, and you can style + specific titles with .CType .CTitle. + + +Styles: Content Styles + + #Content - Parent element containing all topics. + + CTopic - An individual topic. + + CTitle - The title of a topic. + CBody - The body of a topic. May not exist. + CHeading - Surrounds a heading. + CImageCaption - Surrounds an image caption. + CImageLink - Surrounds a link to an image. + + CDescriptionList - A description list, which is the type of list you're reading right now. Is implemented with a table. + CDLEntry - A description list entry, which is the left side. + CDLDescription - A description list description, which is the right side. + + #MainTopic - The ID given to the main topic, which is the first in the file. It is applied to the . + + CType - A placeholder for all type-specific styles. The actual styles will be C followed by the alphanumeric-only topic type name. + So the CType of a "PL/SQL Function" topic will actually be CPLSQLFunction. + + + + +Topic: Menu Structure +_______________________________________________________________________________ + + + Everything is enclosed in a <#Menu>. All other menu styles are prefixed with an M. + + The title is an and will always be at the beginning of the menu if it exists. If a subtitle exists as well, it will appear + as an inside . Subtitles aren't allowed without titles. Most other entries in the menu are contained in + . Here's the diagram: + + (start diagram) + + <#Menu> + + + Menu title + + + Menu sub title + + + + + + + File + + + + + + File + + + + + + Text + + + + + + Link + + + + + + Group + + + (MEntries) + + + + + + <#MSearchPanel and MSearchPanelActive/Inactive> + + + + + + + (if in unframed HTML) + <#MSearchResultsWindow> + + + + + + + + (end) + + The or entry that's currently selected will have the <#MSelected> ID, so you can reference it in CSS via + .MFile#MSelected. + + The search panel is has its own ID, <#MSearchPanel>, but also has one of the classes or + depending on whether any of the controls are selected or the results window is open. + <#MSearchResultsWindow> is separate because it may be floating. + + +Styles: Menu Styles + + #Menu - Parent element containing the entire menu. + + MTitle - The title of the menu. + MSubTitle - The subtitle of the menu. Will appear within . + + MFile - A file entry. + MGroup - A group entry. + MGroupContent - A container for a content. + MText - A plain text entry. + MLink - An external link entry. + MIndex - An index entry. + + #MSelected - The ID of the currently selected or . + + MType - , , , , or . + + #MSearchPanel - Contains all the search controls. + MSearchPanelActive - Applied to <#MSearchPanel> when any of the controls are selected or the results window is open. + MSearchPanelInactive - Applied to <#MSearchPanel> when not in use. + + #MSearchField - The text input field of the search panel. + #MSearchType - The drop down type selector of the search panel. + #MSearchEverything - The <#MSearchType> option for the Everything index. + + #MSearchResultsWindow - Contains all the search results elements. + #MSearchResults - Contains the iframe that will hold the results. + #MSearchRseultsWindowClose - The link to manually close the search results window. + + + + +Topic: Class Hierarchy Structure +_______________________________________________________________________________ + + + Everything is contained in a single . Each entry is surrounded by its type, such as , and the + generic . Depending on the context, entries may be surrounded by one or more . + + (start diagram) + + + + ? + + + + + ? + Entry + + + + + + ? + + + + (end diagram) + + +Styles: Class Hierarchy Styles + + ClassHierarchy - The topmost style containing everything. + + CHEntry - A generic class entry. + + CHParent - The style for a parent class. + CHCurrent - The style for the current class, which is the one the hierarchy is generated for. + CHChild - The style for a child class. + CHChildNote - The style for when a child is added that just shows how many other children were omitted. + + CHIndent - A style used to indent a level. + + CHType - , , , or . + + + + +Topic: Summary Structure +_______________________________________________________________________________ + + + Everything is enclosed in a single . All the other summary styles are prefixed with an S. + + holds the actual word "Summary" and and hold the content. exists because different + browsers apply table padding attributes in different ways. exists as a class to separate the main table from any other + tables that may be necessary. Here's a diagram: + + > + > + > + > Title + > + > + > + > + > ... + >
+ >
+ > + >
+ + On to the table content. + + > + > + > + > Entry + > + > + > + > + > Description + > + > + > + + exist to allow indenting. They're necessary because implementing it as nested tables, while structurally cleaner, + won't allow the desciptions to line up on the right throughout the entire summary. will be applied on almost every + other row to allow for tinting to improve readability. + + Use the power of CSS's inheritance rules to specify styles. For example, to set the style of a group entry, apply it to + .SGroup .SEntry. However, you could also apply a style to both the group's entry and description by applying the + style to .SGroup td. Or, you could apply a style to all the entries by applying it to .SEntry. And so on. + + +Styles: Summary Styles + + Summary - The topmost style containing the entire summary. + + STitle - Contains the summary title, which is the part that actually says "Summary". + + SBorder - Surrounds , since some browsers can't do table padding right. A hack, I know. + STable - The actual summary table. This class separates it from other layout tables that may appear. + + SMarked - A class applied to rows that should have a slightly different color than the rest of the rows to make them easier to + read. + + SEntry - The entry (left) side of the table. + SDescription - The description (right) side of the table. + + SIndent# - Surrounding entries and descriptions that are part of a group and need to be indented. Actual styles will be + SIndent1, SIndent2, etc. + + SType - A placeholder for all topic-specific styles. The actual styles will be S followed by the alphanumeric-only topic type name. + So the SType of a "PL/SQL Function" topic will actually be SPLSQLFunction. + + + + +Topic: Prototype Structure +_______________________________________________________________________________ + + + Everything is enclosed in a . All other styles are prefixed with a P. + + Parameter Type First Style: + + For prototypes such as + > void Function (unsigned int* a, int b = 0) + where the types come first. + + (start diagram) + + + + + + + + + + + + + + + + + + (repeated as necessary) + + + +
+ "void Function (" + + "unsigned" + + "int" + + "*" + + "a", "b" + + "=" + + "0" + + ")" +
+ + (end diagram) + + + Parameter Name First Style: + + For prototypes such as + > function Function (a, b: int; c: int := 0) + where the parameters come first. + + (start diagram) + + + + + + + + + + + + + + (repeated as necessary) + + + +
+ "function Function (" + + "a,", "b:", "c:" + + "int" + + ":=" + + "0" + + ")" +
+ + (end diagram) + + + Note that any section may not exist. For example, there will be no cells generated if none of the parameters + have it. + + +Styles: Prototype Styles + + Prototype - The style encompassing the entire prototype. + + PBeforeParameters - The part of the prototype that comes before the parameters. + PAfterParameters - The part of the prototype that comes after the parameters. + + PType - The parameter type. + PTypePrefix - The prefix of a parameter type. + PParameter - The parameter name. + PParameterPrefix - The prefix of a parameter name. + PDefaultValue - The default value expression for a parameter. + PDefaultValuePrefix - The prefix of the default value expression. + + + + +Topic: Link Structure +_______________________________________________________________________________ + + + All links to symbols have a type style prefixed with L. The only exceptions are summary entries; summary descriptions use + them as well. + + > + > Link + > + + You can use this to make links to different symbols appear in different styles. For example, making .LClass bold will make all + links to classes bold, except when appearing in summary entries. You can combine this with other styles to be even more + specific. For example, you can apply a style to function links appearing in summary descriptions with .SDescription .LFunction. + +Styles: Link Styles + + LType - A placeholder for all topic-specific styles. The actual styles will be L followed by the alphanumeric-only topic type name. + So the LType of a "PL/SQL Function" topic will actually be LPLSQLFunction. + + + +Topic: Index Structure +_______________________________________________________________________________ + + + Everything is enclosed in an <#Index>. Combine with and to distinguish between output formats. All + other index styles are prefixed with an I. + + (start diagram) + + <#Index> + + + Page Title + + + + A - B - C ... + + + + + + Heading (A, B, etc.) + + + + + + + ... + +
+ Prefix, if any + + Entry +
+ + + + (end diagram) + + Every index entry, including headings, are rows in a table. The first column of a non-heading are so that + the non-prefix portions align correctly. The other column are , of which there are multiple formats, described below. + + (start diagram) + + + Symbol + , + + Class + + + + Symbol + + + + Class + + ... + + + + Symbol + + + + Class + + + + File + + ... + + ... + + + (end diagram) + + Each part of the entry is surrounded by its type, which may or may not be a link. If an entry has more than one defining class + or file, they're broken out into . + + It's called instead of because class entries are . are only used when the symbol + has a class. If the symbol _is_ a class, the symbol is global. + + +Styles: Index Styles + + #Index - Parent element for the entire index. + + IPageTitle - The page title. + INavigationBar - The navigation bar. + + IHeading - An index heading, such as the letter for the group. + + IEntry - An entry in the index. + ISymbolPrefix - The stripped prefix of the entry. + ISymbol - The entry symbol. + IParent - The entry parent class. If the entry _is_ a class, this isn't defined because classes are global and don't have parent + classes. This is why it's called IParent instead of IClass; hopefully it's less confusing. + IFile - The file the entry is defined in. + + ISubIndex - The surrounding block if an entry needs to be broken out into a sub-index. + + #IFirstHeading - The ID of the first to appear in the file. + + #IFirstSymbolPrefix - The ID for the first to appear under an . + #ILastSymbolPrefix - The ID for the last to appear under an . + #IOnlySymbolPrefix - The ID if there is only one for an . + + + +Topic: Search Results Structure +_______________________________________________________________________________ + + + The search results use virtually the same structure and styles as the indexes, except that <#SearchResults> replaces + <#Index>, there's a new style, and there are a few additional blocks. + + Visibility: + + Visibility is *very* important to making the search work correctly. JavaScript will handle most of it, but your CSS needs to + abide by these rules. + + - sections are visible by default. + - sections are *not* visible by default. They must use display: none. + - should be display: none when under <#SearchResults>. + + +Styles: Search Results Styles + + #SearchResults - Parent element for the entire page. + SRStatus - Status message. Must be visible by default. + SRResult - A result. All you need to do for this class is set it to display: none. Nothing else should be set on it. + + + + +Topic: Tool Tip Structure +_______________________________________________________________________________ + + + Tool tips may appear anywhere in the page, mainly because it's assumed that they will use position: absolute and + visibility: hidden. + + The entire tool tip is found in a style, with a CType style inside it. CTypes are normally outside their elements, but + that would cause it to be partially visible in this case. We need to be the outermost style so its visibility and + position can be manipulated in JavaScript. + + Inside there's a and/or the description text. The description text has no special surrounding tags. + + > + > + > + > Prototype + > + > + > Summary text + > + > + +Styles: Tool Tip Styles + + CToolTip - Surrounds the entire tool tip. This *must* have position: absolute and visibility: hidden for the tool tip mechanism + to work. + + See also . + + +Styles: Miscellaneous Styles + + blockquote - This HTML element should surround anything that needs to be scrolled if it's too wide, like prototypes and text + diagrams. It's not a style because this makes it much easier to do the JavaScript necessary to get this working + in IE. + + +Group: History + +Topic: Revisions +_______________________________________________________________________________ + + + How the page structure has changed throughout the various releases. + + 1.4: + + - Replaced UnframedPage with and . + - Added <#Menu>, <#Content>, <#Footer>, and <#Index>. They were previously shown in the diagrams as classes but did + not actually appear in the generated output. + - Removed MenuSection, ContentSection, and IndexSection. Use things like ".ContentPage #Menu" instead. + - Removed tables from the unframed . Use CSS to position the elements instead. + - <#MainTopic> is applied to instead of . + - IE4, IE5, Opera5, Opera6, Netscape, and Netscape4 browser styles have been removed. , , + and have been added. Gecko has been replaced by , , , and . + KHTML has been replaced by , , , and . + - Removed redundant CParagraph, CCode, and CBulletList classes. Use with p, pre, and ul instead. + - Added and . + - Added <#MSearchPanel>, <#MSearchResultsWindow>, and all related styles. + - Added , , and . + - Removed SEntrySize. Apply the width to and instead. + - , , and were moved from the td and divs into the tr. + - Removed HB style. Now using wbr tag. + + 1.33: + + - Added . + + 1.32: + + - now surround elements that should scroll if they're too wide for the page. + + 1.3: + + - Removed CPrototype. See the replacement and . + - Removed SInGroup, SInClass, and SInSection in favor of more general . + - , , and are now completely determined by configuration files. + - , , and no longer have separate list types. A CFunctionList is now just a CFunction. + - Indexes are now done with tables. + - ISection was removed. + - are only used for the entry cell, not for each entry in an . + - Added , related IDs, and <#IFirstHeading>. + - Merged and into the same element. Must now be styled with .CType.CTopic (no space) while all + sub-elements will still be .CType .CElement (with space.) + + 1.21: + + - Added and TOPIC_PROPERTY_LIST styles, so they get corresponding , , and + . + + 1.2: + + - Added since 1.2 added class hierarchies. + + 1.16: + + - Changed the first topic from having a CMain type to having a normal type with a <#MainTopic> ID. + + 1.1: + + - Added . + - Renamed HiddenBreak to . + - Added , TOPIC_CONSTANT_LIST, , and TOPIC_TYPE_LIST types, so they get + corresponding , , and . + + 1.0: + + - The tags now appear arround the tags instead of vice versa. + - Added a tag to surround non- elements. + - now appears in tr's instead of td's, where it belonged in the first place. + + 0.95: + + - Added . + - Redid , replacing generic styles like Menu with page type styles like UnframedPage/MenuSection and + FramedMenuPage. + + 0.91: + + - Added and link styles, since 0.91 added URL and e-mail links. + - Added style, which is better than floating on its own. + + 0.9: + + - Added , since 0.9 added indexes. + diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Info/File Parsing.txt b/lib/ann/fann/docs/NaturalDocs-1.52/Info/File Parsing.txt new file mode 100755 index 0000000..10bd0e9 --- /dev/null +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Info/File Parsing.txt @@ -0,0 +1,83 @@ + + Architecture: File Parsing + +#################################################################################### + + This is the architecture and code path for general file parsing. We pick it up at Parse()> because we're not interested in how the files are gathered and their languages determined for the purposes of this document. We are just interested in the process each individual file goes through when it's decided that it should be parsed. + + + + Stage: Preparation and Differentiation + _______________________________________________________________________________________________________ + + Parse()> can be called from one of two places, ParseForInformation()> and ParseForBuild()>, which correspond to the parsing and building phases of Natural Docs. There is no noteworthy work done in either of them before they call Parse(). + + + Stage: Basic File Processing + _______________________________________________________________________________________________________ + + The nitty-gritty file handling is no longer done in itself due to the introduction of full language support in 1.3, as it required two completely different code paths for full and basic language support. Instead it's handled in NaturalDocs::Languages::Base->ParseFile(), which is really a virtual function that leads to ParseFile()> for basic language support or a version appearing in a package derived from for full language support. + + The mechinations of how these functions work is for another document, but their responsibility is to feed all comments Natural Docs should be interested in back to the parser via OnComment()>. + + + Stage: Comment Processing + _______________________________________________________________________________________________________ + + OnComment()> receives the comment sans comment symbols, since that's language specific. All comment symbols are replaced by spaces in the text instead of removed so any indentation is properly preserved. Also passed is whether it's a JavaDoc styled comment, as that varies by language as well. + + OnComment() runs what it receives through CleanComment()> which normalizes the text by removing comment boxes and horizontal lines, expanding tabs, etc. + + + Stage: Comment Type Determination + _______________________________________________________________________________________________________ + + OnComment() sends the comment to IsMine()> to test if it's definitely Natural Docs content, such as by starting with a recognized header line. If so, it sends it to ParseComment()>. + + If not, OnComment() sends the comment to IsMine()> to test if it's definitely JavaDoc content, such as by having JavaDoc tags. If so, it sends it to ParseComment()>. + + If not, the content is ambiguous. If it's a JavaDoc-styled comment it goes to ParseComment()> to be treated as a headerless Natural Docs comment. It is ignored otherwise, which lets normal comments slip through. Note that it's only ambiguous if neither parser claims it; there's no test to see if they both do. Instead Natural Docs always wins. + + We will not go into the JavaDoc code path for the purposes of this document. It simply converts the JavaDoc comment into as best it can, which will never be perfectly, and adds a to the list for that file. Each of those ParsedTopics will be headerless as indicated by having an undefined Title()>. + + + Stage: Native Comment Parsing + _______________________________________________________________________________________________________ + + At this point, parsing is handed off to ParseComment()>. It searches for header lines within the comment and divides the content into individual topics. It also detects (start code) and (end) sections so that anything that would normally be interpreted as a header line can appear there without breaking the topic. + + The content between the header lines is sent to FormatBody()> which handles all the block level formatting such as paragraphs, bullet lists, and code sections. That function in turn calls RichFormatTextBlock()> on certain snippets of the text to handle all inline formatting, such as bold, underline, and links, both explicit and automatic. + + ParseComment()> then has the body in so it makes a to add to the list. It keeps track of the scoping via topic scoping, regardless of whether we're using full or basic language support. Headerless topics are given normal scope regardless of whether they might be classes or other scoped types. + + + Group: Post Processing + _______________________________________________________________________________________________________ + + After all the comments have been parsed into ParsedTopics and execution has been returned to Parse()>, it's time for some after the fact cleanup. Some things are done like breaking topic lists, determining the menu title, and adding automatic group headings that we won't get into here. There are two processes that are very relevant though. + + + Stage: Repairing Packages + _______________________________________________________________________________________________________ + + If the file we parsed had full language support, the parser would have done more than just generate various OnComment() calls. It would also return a scope record, as represented by objects, and a second set of ParsedTopics it extracted purely from the code, which we'll refer to as autotopics. The scope record shows, purely from the source, what scope each line of code appears in. This is then combined with the topic scoping to update ParsedTopics that come from the comments in the function RepairPackages()>. + + If a comment topic changes the scope, that's honored until the next autotopic or scope change from the code. This allows someone to document a class that doesn't appear in the code purely with topic scoping without throwing off anything else. Any other comment topics have their scope changed to the current scope no matter how it's arrived at. This allows someone to manually document a function without manually documenting the class and still have it appear under that class. The scope record will change the scope to part of that class even if topic scoping did not. Essentially the previous topic scoping is thrown out, which I guess is something that can be improved. + + None of this affects the autotopics, as they are known to have the correct scoping since they are gleaned from the code with a dedicated parser. Wouldn't there be duplication of manually documented code elements, which would appear both in the autotopics and in the comment topics? Yes. That brings us to our next stage, which is... + + + Stage: Merging Auto Topics + _______________________________________________________________________________________________________ + + As mentioned above, ParseFile() also returns a set of ParsedTopics gleaned from the code called autotopics. The function MergeAutoTopics()> merges this list with the comment topics. + + The list is basically merged by line number. Since named topics should appear directly above the thing that they're documenting, topics are tested that way and combined into one if they match. The description and title of the comment topic is merged with the prototype of the autotopic. JavaDoc styled comments are also merged in this function, as they should appear directly above the code element they're documenting. Any headerless topics that don't, either by appearing past the last autotopic or above another comment topic, are discarded. + + + Stage: Conclusion + _______________________________________________________________________________________________________ + + Thus ends all processing by Parse()>. The file is now a single list of with all the body content in . If we were using ParseForBuild()>, that's pretty much it and it's ready to be converted into the output format. If we were using ParseForInformation()> though, the resulting file is scanned for all relevant information to feed into other packages such as . + + Note that no prototype processing was done in this process, only the possible tranferring of prototypes from one ParsedTopic to another when merging autotopics with comment topics. Obtaining prototypes and formatting them is handled by and derived packages. diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Info/HTMLTestCases.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Info/HTMLTestCases.pm new file mode 100755 index 0000000..ea434a4 --- /dev/null +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Info/HTMLTestCases.pm @@ -0,0 +1,270 @@ +############################################################################### +# +# File: Browser Testing +# +############################################################################### +# +# This file tests Natural Docs' generated output. Particularly useful when testing various browsers. +# +############################################################################### + +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL) +# Refer to License.txt for the complete details + +use strict; +use integer; + + +# +# About: Browsers +# +# The specific browser versions tested are below. Everything is tested on Windows Vista unless otherwise noted. +# +# Firefox 2.0.0.10 - 2.0 released October 2006. +# Firefox 1.5.0.8 - 1.5 released Novemer 2005. +# Firefox 1.0.8 - 1.0 released November 2004. Not critical to support. +# +# IE 7.0 - 7.0 released October 2006. +# IE 6.0 - 6.0 released August 2001. Tested on Windows XP SP2 via Virtual PC. +# +# Safari 3.0.4 - 3.0 released June 2007. Tested Windows version. +# Safari 2.0.4 - 2.0 released April 2005. Tested on Mac OS X 10.4 Tiger. +# +# Opera 9.02 - 9.0 released June 2006. +# Opera 8.54 - 8.5 released September 2005. +# Opera 8.02 - 8.0 released April 2005. +# Opera 7.51 - 7.5 released around August 2004 I think. Not critical to support. +# Opera 7.02 - 7.0 released January 2003. Not critical to support. +# +# Konqueror 3.5.5 - Tested on openSUSE 10.2 via VMware Player. +# + + +############################################################################### +# Group: Search + +# +# Topic: Unframed HTML Search +# +# Tests: +# +# - Make sure the search box appears and disappears correctly on hover. +# - Type to bring up results. Type further to narrow them. Narrow until there's no results. +# - Backspace to bring the results back. Backspacing to empty closes the results. +# - Type to bring up results with a different first letter. (Tests iframe content switch.) +# - Type *Z* to bring up empty page when there's nothing with that first letter. (Tests generic no results page.) +# - Type *Name* in Everything search to test expanding and collapsing, especially between two that differ only by case. +# - Change filter to *Functions* to test changing filter while results are open. Change to *Types* to switch to one with +# no results. +# - Test Close button on results. Should deactivate panel as well. +# - Clicking away should deactivate panel if the box is empty, not have an effect if there are results open. +# - Text should always change back to "Search" when deactivating. +# +# Results: +# +# Firefox 2.0 - OK +# Firefox 1.5 - OK +# Firefox 1.0 - OK +# +# IE 7.0 - OK +# IE 6.0 - Functionally OK. Search panel doesn't activate on hover. Works fine when clicked. +# +# Safari 3.0 - OK +# Safari 2.0 - *Broken.* Results panel doesn't show up. Border around deactivated search box. +# +# Opera 9.0 - OK +# Opera 8.5 - OK +# Opera 8.0 - OK +# Opera 7.5 - Functionally OK. Search panel has sunken border when deactivated, minor pixel shifting. +# Opera 7.0 - *Broken.* Completely. +# +# Konqueror 3.5 - *Broken.* Results panel doesn't show up. Seems to fail on "resultsFrame = window.frames.MSearchResults;" +# + +# +# Topic: Framed HTML Search +# +# Tests: +# +# - Make sure the search box appears and disappears correctly on hover. +# - Type to bring up results on right. Type further to narrow them. Narrow until there's no results. +# - Backspace to bring the results back. +# - Type to bring up results with a different first letter. (Tests frame content switch.) +# - Type *Z* to bring up empty page when there's nothing with that first letter. (Tests generic no results page.) +# - Type *Name* in Everything search to see that there's no collapsing in this mode. +# - Change filter to *Functions* to test changing filter while results are open. Change to *Types* to switch to one with +# no results. +# - Clicking away should deactivate panel. +# - Clicking a result should deactivate panel and show up in correct frame. +# - Text should always change back to "Search" when deactivating. +# +# Results: +# +# Firefox 2.0 - OK +# Firefox 1.5 - OK +# Firefox 1.0 - OK +# +# IE 7.0 - OK +# IE 6.0 - Functionally OK. Search panel doesn't activate on hover, is a little wide. Works fine when clicked. +# +# Safari 3.0 - OK +# Safari 2.0 - Functionally OK. Has a sunken border around the deactivated seach field. +# +# Opera 9.0 - OK +# Opera 8.5 - OK +# Opera 8.0 - OK +# Opera 7.5 - Functionally OK. Search panel has sunken border when deactivated, minor pixel shifting. +# Opera 7.0 - *Broken.* +# +# Konqueror 3.5 - Functionally OK. Panel doesn't reset and deactivate when clicking a result link. +# + + +############################################################################### +# Group: Other + +# +# Topic: Images +# +# Tests: +# +# - Here is an embedded image on its own line. +# +# (see images/logo.png) +# +# - Here is a reference in the middle of a sentence, in the middle of a bullet list: (see images/logo.png) It should have been +# converted to a link with the image appearing below the bullet list and the file name used as a caption. Make sure the +# caption positions correctly. +# - Here's a link to a non-existent image, which should appear literally: (see images/doesntexist.jpg) +# - Here is an embedded image that doesn't exist on it's own line. +# +# (see images/doesntexist.png) +# +# - Here is a link using the "(see)" syntax which shouldn't be interpreted as an image link because it doesn't end with an +# acceptable extension. Also, links should still resolve because of that. (see ) +# +# Results: +# +# Firefox 2.0 - OK +# Firefox 1.5 - OK +# Firefox 1.0 - OK +# +# IE 7.0 - OK +# IE 6.0 - OK +# +# Safari 3.0 - OK +# Safari 2.0 - OK +# +# Opera 9.0 - OK +# Opera 8.5 - OK +# Opera 8.0 - OK +# Opera 7.5 - OK +# Opera 7.0 - OK +# +# Konqueror 3.5 - OK + + +# +# Topic: Prototypes and Tooltips +# +# Hover over ParseComment()> and IsMine()> +# +# Tests: +# +# - A tooltip should appear about a second after you hover over the link above. +# - It should go away when you move the cursor away. +# - It shoud be positioned directly underneath with a slight gap. +# - The prototype should be formatted cleanly with each parameter on its own line and aligned in columns. +# - The asterisk should be in a separate column. +# - Test it with the link too close to the edge of the window so the pop-up has to shift left to fit. +# +# Results: +# +# Firefox 2.0 - OK +# Firefox 1.5 - OK +# Firefox 1.0 - OK +# +# IE 7.0 - OK +# IE 6.0 - OK +# +# Safari 3.0 - OK +# Safari 2.0 - OK +# +# Opera 9.0 - OK. Has its own tooltips turned on by default which can cover it up though. +# Opera 8.5 - OK. Has its own tooltips turned on by default which can cover it up though. +# Opera 8.0 - OK. Has its own tooltips turned on by default which can cover it up though. +# Opera 7.5 - OK. Has its own tooltips turned on by default which can cover it up though. +# Opera 7.0 - *Broken.* Usually works, if the window is too narrow may collapse completely. +# +# Konqueror 3.5 - OK +# + + +# +# Topic: Long code block scrolling +# +# Go to . +# +# Tests: +# +# - Shrink the browser window so that a line extends past the end of it. Only the line should have a scrollbar, not the +# entire page. +# - Expand the browser window. The scrollbar should disappear. +# +# Results: +# +# Firefox 2.0 - OK +# Firefox 1.5 - OK +# Firefox 1.0 - OK +# +# IE 7.0 - OK +# IE 6.0 - OK +# +# Safari 3.0 - OK +# Safari 2.0 - OK +# +# Opera 9.0 - OK +# Opera 8.5 - OK +# Opera 8.0 - OK +# Opera 7.5 - OK +# Opera 7.0 - OK +# +# Konqueror 3.5 - OK +# + + +# +# Topic: Menu and Class Hierarchies +# +# Go to . +# +# Tests: +# +# - Class hierarchy should look okay. +# - Make sure the menu hierarchy opens up on its own when the page is loaded. +# - You should be able to click on groups to open and close them. +# +# Results: +# +# Firefox 2.0 - OK +# Firefox 1.5 - OK +# Firefox 1.0 - OK +# +# IE 7.0 - OK +# IE 6.0 - OK +# +# Safari 3.0 - OK +# Safari 2.0 - OK +# +# Opera 9.0 - OK +# Opera 8.5 - OK +# Opera 8.0 - OK +# Opera 7.5 - OK +# Opera 7.0 - OK +# +# Konqueror 3.5 - OK +# + + +1; diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Info/Languages.txt b/lib/ann/fann/docs/NaturalDocs-1.52/Info/Languages.txt new file mode 100755 index 0000000..c564eb5 --- /dev/null +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Info/Languages.txt @@ -0,0 +1,107 @@ + + Title: Language Notes +_______________________________________________________________________________ + + This is more for my personal reference than anything else. + + + ___________________________________________________________________________ + + Topic: Prototype Parameter Styles + ___________________________________________________________________________ + + Parameters via Commas, Typed via Spaces: + + > FunctionName ( type indentifier, type identifier = value, modifier type identifier ) + > FunctionName ( indentifier, identifier = value ) + + The general idea is that parameters are separated by commas. Identifiers cannot contain spaces. Types and modifiers, + if available, are separated from the identifiers with spaces. There may be an equals sign to set the default value. + + So parsing means splitting by commas, stripping everything past an equals sign for the default value, stripping everything + after the last space for the identifier, and the rest is the type. If there are no internal spaces after the default value is + stripped, it's all identifier. + + Note that internal parenthesis, brackets, braces, and angle brackets should be parsed out. They may be present in default + values or types and any commas and equal signs in them should not be included. + + Applies to C++, Java, C#, JavaScript, Python, PHP, Ruby. + + Applies to Perl as well, even though it doesn't have any real parameter declaration structure. Just adding it with comments + is fine. + + Parameters via Semicolons and Commas, Typed via Colons: + + > FunctionName ( identifier: type; identifier, identifier: type; identifier: type := value ) + + Parameters via semicolons, types via colons. However, there can be more than one parameter per type via commas. + Default values via colon-equals. + + Applies to Pascal, Ada. + + + SQL: + + > FunctionName ( identifier type, identifier modifier type, identifier type := value ) + + Parameters separated by commas. Identifiers come before the types and are separated by a space. Default values are + specified with colon-equals. + + > FunctionName @identifier type, @dentifier modifier type, @identifier type = value + + Microsoft's SQL uses equals instead of colon-equals, doesn't need parenthesis, and starts its parameter names with an @ + symbol. + + + Visual Basic: + + > FunctionName ( modifiers identifier as type, identifier = value ) + + Parameters separated by commas. Default values via equals. However, any number of modifiers may appear before the + identifier. Those modifiers are ByVal, ByRef, Optional, and ParamArray. + + + Tcl: + + > FunctionName { identifier identifier { whatever } } { code } + + Identifiers are specified in the first set of braces and have no commas. However, they can be broken out into sub-braces. + + + ___________________________________________________________________________ + + Topic: Syntax References + ___________________________________________________________________________ + + C++ - http://www.csci.csusb.edu/dick/c++std/syntax.html + + C# - http://msdn.microsoft.com/library/default.asp?url=/library/en-us/csspec/html/CSharpSpecStart.asp. Open in IE. + + Java - http://cui.unige.ch/db-research/Enseignement/analyseinfo/ + Ada - http://cui.unige.ch/db-research/Enseignement/analyseinfo/ + + SQL - http://cui.unige.ch/db-research/Enseignement/analyseinfo/, + , or + (open in IE). + + JavaScript - http://academ.hvcc.edu/~kantopet/javascript/index.php + + Python - http://www.python.org/doc/2.3.4/ref/ref.html + + PHP - http://www.php.net/manual/en/langref.php + + Visual Basic - http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbls7/html/vbspecstart.asp. Open in IE. + + Pascal - . Open in IE. + + Ruby - http://www.rubycentral.com/book/ + + ActionScript 2 - + ActionScript 3 - + E2X - http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-357.pdf + + R - Somewhere on http://www.r-project.org. + + ColdFusion - + + Eiffel - http://www.gobosoft.com/eiffel/syntax/ diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Info/NDMarkup.txt b/lib/ann/fann/docs/NaturalDocs-1.52/Info/NDMarkup.txt new file mode 100755 index 0000000..2305172 --- /dev/null +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Info/NDMarkup.txt @@ -0,0 +1,92 @@ + + Architecture: NDMarkup +_______________________________________________________________________________ + +A markup format used by the parser, both internally and in objects. Text formatted in +NDMarkup will only have the tags documented below. + + +About: Top-Level Tags + + All content will be surrounded by one of the top-level tags. These tags will not appear within each other. + +

- Surrounds a paragraph. Paragraph breaks will replace double line breaks, and single line breaks will + be removed completely. + + - Surrounds code or text diagrams that should appear literally in the output. The type can + be code, text, or anonymous, in which case it's not specified whether it's code or text. + + - Surrounds a heading. + +
    - Surrounds a bulleted (unordered) list. +
    - Surrounds a description list, which is what you are reading. + + - An inline image. Target contains the image target, and original contains the + original text in case it doesn't resolve. + + +About: List Item Tags + + These tags will only appear within their respective lists. + +
  • - Surrounds a bulleted list item. + - Surrounds a description list entry, which is the left side. It will always be followed by a description list + description. + - Surrounds a description list symbol. This is the same as a description list entry, except that the content + is also a referenceable symbol. This occurs when inside a list topic. This tag will always + be followed by a description list description. +
    - Surrounds a description list description, which is the right side. It will always be preceded by a description + list entry or symbol. + +About: Text Tags + + These tags will only appear in paragraphs, headings, or description list descriptions. + + - Bold + - Italics + - Underline + + - Surrounds a potential link to a symbol; potential because the target is not guaranteed to + exist. This tag merely designates an attempted link. Target is what is attempting to be + linked to, name is the text that should appear for a successful link, and original is the + original text in case the link doesn't resolve. + + - An external link. There's no need for an original attribute because it will always be + turned into an actual link. + - A link to an e-mail address. + + - An image link. Target contains the image target, and original contains the original + text in case it doesn't resolve. + + +About: Amp Chars + + These are the only amp chars supported, and will appear everywhere. Every other character will appear as is. + + & - The ampersand &. + " - The double quote ". + < - The less than sign <. + > - The greater than sign >. + +About: Tabs + + NDMarkup will not contain tab characters, only spaces. Any tab characters appearing in the source files will be + expanded/replaced as necessary. + + +About: General Tag Properties + + Since the tags are generated, they will always have the following properties, which will make pattern matching much + easier. + + - Tags and amp chars will always be in all lowercase. + - Properties will appear exactly as documented here. They will be in all lowercase, in the documented order, and will have no + extraneous whitespace. Anything appearing in the properties will have amp chars. + - All code is valid, meaning tags will always be closed,
  • s will only appear within
      s, etc. + + So, for example, you can match description list entries with /(.+?)<\/de>/ and $1 will be the text. No surprises or + gotchas. No need for sophisticated parsing routines. + + Remember that for symbol definitions, the text should appear as is, but internally (such as for the anchor) they need to + be passed through Defines()> so that the output file is just as tolerant as + . diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Info/Symbol Management.txt b/lib/ann/fann/docs/NaturalDocs-1.52/Info/Symbol Management.txt new file mode 100755 index 0000000..fb2bad2 --- /dev/null +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Info/Symbol Management.txt @@ -0,0 +1,59 @@ + + Architecture: Symbol Management + +#################################################################################### + + This is the architecture and code path for symbol management. This is almost exclusively managed by , but it's complicated enough that I want a plain-English walk through of the code paths anyway. + + An important thing to remember is that each section below is simplified initially and then expanded upon in later sections as more facets of the code are introduced. You will not get the whole story of what a function does by reading just one section. + + + + Topic: Symbol Storage + _______________________________________________________________________________________________________ + + Symbols are indexed primarily by their , which is the normalized, pre-parsed series of identifiers that make it up. A symbol can have any number of definitions, including none, but can only have one definition per file. If a symbol is defined more than once in a file, only the first definition is counted. Stored for each definition is the , summary, and prototype. + + Each symbol that has a definition has one designated as the global definition. This is the one linked to by other files, unless that file happens to have its own definition which then takes precedence. Which definition is chosen is rather arbitrary at this point; probably the first one that got defined. Similarly, if the global definition is deleted, which one is chosen to replace it is completely arbitrary. + + Each symbol also stores a list of references to it. Note that references can be interpreted as multiple symbols, and each of those symbols will store a link back to the reference. In other words, every reference a symbol stores is one that _can_ be interpreted as that symbol, but that is not necessarily the interpretation the reference actually uses. A reference could have a better interpretation it uses instead. + + For example, suppose there are two functions, MyFunction() and MyClass.MyFunction(). The reference text "MyFunction()" appearing in MyClass can be interpreted as either MyClass.MyFunction(), or if that doesn't exist, the global MyFunction(). Both the symbols for MyFunction() and MyClass.MyFunction() will store that it's referenced by the link, even though the class scoped one serves as the actual definition. + + This is also the reason a symbol can exist that has no definitions: it has references. We want symbols to be created in the table for each reference interpretation, even if it doesn't exist. These are called potential symbols. The reason is so we know whether a new symbol definition fulfills an existing reference, since it may be a better interpretation for the reference than what is currently used. + + + + Topic: Reference Storage + _______________________________________________________________________________________________________ + + References are indexed primarily by their , which is actually an elaborate data structure packed into a string. It includes a of the text that appears in the link and a bunch of other data that determines the rules by which the link can be resolved. For example, it includes the scope it appears in and any "using" statements in effect, which are alternate possible scopes. It includes the type of link it is (text links, the ones you explicitly put in comments, aren't the only kind) and resolving flags which encode the language-specific rules of non-text links. But the bottom line is the encodes everything that influences how it may be resolved, so if two links come up with the same rules, they're considered two definitions of the same reference. This is the understanding of the word "reference" that will used in this document. + + Like symbols, each reference stores a list of definitions. However, it only stores the name as all the other relevant information is encoded in the itself. Unlike a symbol, which can be linked to the same no matter what kind of definitions it has, references that are in any way different might be interpreted differently and so need their own distinct entries in the symbol table. + + References also store a list of interpretations. Every possible interpretation of the reference is stored and given a numeric score. The higher the score, the better it suits the reference. In the MyFunction() example from before, MyClass.MyFunction() would have a higher score than just MyFunction() because the local scope should win. Each interpretation has a unique score, there are no duplicates. + + So the symbol and reference data structures are complimentary. Each symbol has a list of every reference that might be interpreted as it, and every reference has a list of each symbol that it could be interpreted as. Again, objects are created for potential symbols (those with references but no definitions) so that this structure always remains intact. + + The interpretation with the highest score which actually exists is deemed the current interpretation of the reference. Unlike symbols where the next global definition is arbitrary, the succession of reference interpretations is very controlled and predictable. + + + Topic: Change Detection + _______________________________________________________________________________________________________ + + Change management is handled a couple of ways. First, there is a secondary file index in that stores which symbols and references are stored in each file. It doesn't have any information other than a list of and since they can be used in the main structures to look up the details. If a file is deleted, the symbol table can then prune any definitions that should no longer be in the table. + + Another way deals with how the information parsing stage works. Files parsed for information just have their symbols and references added to the table regardless of whether this was the first time it was ever parsed or if it had been parsed before. If it had been parsed before, all the information from the previous parse should be in the symbol table and file indexes already. If a new symbol or reference is defined, that's fine, it's added to the table normally. However, if a symbol is redefined it's ignored because only the first definition matters. Also, this won't detect things that disappear. + + Enter watched files. tells to designate a file as watched before it starts parsing it, and then says to analyze the changes when it's done. The watched file is a second index of all the symbols and references that were defined since the watch started, including the specific details on the symbol definitions. When the analysis is done, it compares the list of symbols and references to the one in the main file index. Any that appear in the main file index but not the watched one are deleted because they didn't show up the second time around. Any symbol definitions that are different in the watched file than the main file are changed to the former, since the first definition that appeared the second time around was different than the original. + + + Topic: Change Management + _______________________________________________________________________________________________________ + + When a symbol's global definition changes, either because it switches to another file or because the details of the current file's definition changed (prototype, summary, etc.) it goes through all the references that can be interpreted as that symbol, finds the ones that use it as their current definition, and marks all the files that define them for rebuilding. The links in their output files have to be changed to the new definition or at least have their tooltips updated. + + When a symbol's last definition is deleted, it goes through all the references that can be interpreted as that symbol, finds the ones that use it as their current definition, and has them reinterpreted to the definition with the next highest score. The files that define them are also marked for rebuilding. + + When a potential symbol's first definition is found, it goes through all the references that can be interpreted as it and sees if it can serve as a higher scored interpretation than the current one. If so, the interpretations are changed and all the files that define them are marked for rebuilding. + diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Info/images/Logo.png b/lib/ann/fann/docs/NaturalDocs-1.52/Info/images/Logo.png new file mode 100755 index 0000000..87395ec Binary files /dev/null and b/lib/ann/fann/docs/NaturalDocs-1.52/Info/images/Logo.png differ diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/JavaScript/GooglePrettify.js b/lib/ann/fann/docs/NaturalDocs-1.52/JavaScript/GooglePrettify.js new file mode 100755 index 0000000..fda4bf1 --- /dev/null +++ b/lib/ann/fann/docs/NaturalDocs-1.52/JavaScript/GooglePrettify.js @@ -0,0 +1,1526 @@ + +// This code comes from the December 2009 release of Google Prettify, which is Copyright © 2006 Google Inc. +// Minor modifications are marked with "ND Change" comments. +// As part of Natural Docs, this code is licensed under version 3 of the GNU Affero General Public License (AGPL.) +// However, it may also be obtained separately under version 2.0 of the Apache License. +// Refer to License.txt for the complete details + + +// Main code +// ____________________________________________________________________________ + +// Copyright (C) 2006 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + +/** + * @fileoverview + * some functions for browser-side pretty printing of code contained in html. + *

      + * + * For a fairly comprehensive set of languages see the + * README + * file that came with this source. At a minimum, the lexer should work on a + * number of languages including C and friends, Java, Python, Bash, SQL, HTML, + * XML, CSS, Javascript, and Makefiles. It works passably on Ruby, PHP and Awk + * and a subset of Perl, but, because of commenting conventions, doesn't work on + * Smalltalk, Lisp-like, or CAML-like languages without an explicit lang class. + *

      + * Usage:

        + *
      1. include this source file in an html page via + * {@code } + *
      2. define style rules. See the example page for examples. + *
      3. mark the {@code
        } and {@code } tags in your source with
        + *    {@code class=prettyprint.}
        + *    You can also use the (html deprecated) {@code } tag, but the pretty
        + *    printer needs to do more substantial DOM manipulations to support that, so
        + *    some css styles may not be preserved.
        + * </ol>
        + * That's it.  I wanted to keep the API as simple as possible, so there's no
        + * need to specify which language the code is in, but if you wish, you can add
        + * another class to the {@code <pre>} or {@code <code>} element to specify the
        + * language, as in {@code <pre class="prettyprint lang-java">}.  Any class that
        + * starts with "lang-" followed by a file extension, specifies the file type.
        + * See the "lang-*.js" files in this directory for code that implements
        + * per-language file handlers.
        + * <p>
        + * Change log:<br>
        + * cbeust, 2006/08/22
        + * <blockquote>
        + *   Java annotations (start with "@") are now captured as literals ("lit")
        + * </blockquote>
        + * @requires console
        + * @overrides window
        + */
        +
        +// JSLint declarations
        +/*global console, document, navigator, setTimeout, window */
        +
        +/**
        + * Split {@code prettyPrint} into multiple timeouts so as not to interfere with
        + * UI events.
        + * If set to {@code false}, {@code prettyPrint()} is synchronous.
        + */
        +window['PR_SHOULD_USE_CONTINUATION'] = true;
        +
        +/** the number of characters between tab columns */
        +window['PR_TAB_WIDTH'] = 8;
        +
        +/** Walks the DOM returning a properly escaped version of innerHTML.
        +  * @param {Node} node
        +  * @param {Array.<string>} out output buffer that receives chunks of HTML.
        +  */
        +window['PR_normalizedHtml']
        +
        +/** Contains functions for creating and registering new language handlers.
        +  * @type {Object}
        +  */
        +  = window['PR']
        +
        +/** Pretty print a chunk of code.
        +  *
        +  * @param {string} sourceCodeHtml code as html
        +  * @return {string} code as html, but prettier
        +  */
        +  = window['prettyPrintOne']
        +/** Find all the {@code <pre>} and {@code <code>} tags in the DOM with
        +  * {@code class=prettyprint} and prettify them.
        +  * @param {Function?} opt_whenDone if specified, called when the last entry
        +  *     has been finished.
        +  */
        +  = window['prettyPrint'] = void 0;
        +
        +/** browser detection. @extern @returns false if not IE, otherwise the major version. */
        +window['_pr_isIE6'] = function () {
        +  var ieVersion = navigator && navigator.userAgent &&
        +      navigator.userAgent.match(/\bMSIE ([678])\./);
        +  ieVersion = ieVersion ? +ieVersion[1] : false;
        +  window['_pr_isIE6'] = function () { return ieVersion; };
        +  return ieVersion;
        +};
        +
        +
        +(function () {
        +  // Keyword lists for various languages.
        +  var FLOW_CONTROL_KEYWORDS =
        +      "break continue do else for if return while ";
        +  var C_KEYWORDS = FLOW_CONTROL_KEYWORDS + "auto case char const default " +
        +      "double enum extern float goto int long register short signed sizeof " +
        +      "static struct switch typedef union unsigned void volatile ";
        +  var COMMON_KEYWORDS = C_KEYWORDS + "catch class delete false import " +
        +      "new operator private protected public this throw true try typeof ";
        +  var CPP_KEYWORDS = COMMON_KEYWORDS + "alignof align_union asm axiom bool " +
        +      "concept concept_map const_cast constexpr decltype " +
        +      "dynamic_cast explicit export friend inline late_check " +
        +      "mutable namespace nullptr reinterpret_cast static_assert static_cast " +
        +      "template typeid typename using virtual wchar_t where ";
        +  var JAVA_KEYWORDS = COMMON_KEYWORDS +
        +      "abstract boolean byte extends final finally implements import " +
        +      "instanceof null native package strictfp super synchronized throws " +
        +      "transient ";
        +  var CSHARP_KEYWORDS = JAVA_KEYWORDS +
        +      "as base by checked decimal delegate descending event " +
        +      "fixed foreach from group implicit in interface internal into is lock " +
        +      "object out override orderby params partial readonly ref sbyte sealed " +
        +      "stackalloc string select uint ulong unchecked unsafe ushort var ";
        +  var JSCRIPT_KEYWORDS = COMMON_KEYWORDS +
        +      "debugger eval export function get null set undefined var with " +
        +      "Infinity NaN ";
        +  var PERL_KEYWORDS = "caller delete die do dump elsif eval exit foreach for " +
        +      "goto if import last local my next no our print package redo require " +
        +      "sub undef unless until use wantarray while BEGIN END ";
        +  var PYTHON_KEYWORDS = FLOW_CONTROL_KEYWORDS + "and as assert class def del " +
        +      "elif except exec finally from global import in is lambda " +
        +      "nonlocal not or pass print raise try with yield " +
        +      "False True None ";
        +  var RUBY_KEYWORDS = FLOW_CONTROL_KEYWORDS + "alias and begin case class def" +
        +      " defined elsif end ensure false in module next nil not or redo rescue " +
        +      "retry self super then true undef unless until when yield BEGIN END ";
        +  var SH_KEYWORDS = FLOW_CONTROL_KEYWORDS + "case done elif esac eval fi " +
        +      "function in local set then until ";
        +  var ALL_KEYWORDS = (
        +      CPP_KEYWORDS + CSHARP_KEYWORDS + JSCRIPT_KEYWORDS + PERL_KEYWORDS +
        +      PYTHON_KEYWORDS + RUBY_KEYWORDS + SH_KEYWORDS);
        +
        +  // token style names.  correspond to css classes
        +  /** token style for a string literal */
        +  var PR_STRING = 'str';
        +  /** token style for a keyword */
        +  var PR_KEYWORD = 'kwd';
        +  /** token style for a comment */
        +  var PR_COMMENT = 'com';
        +  /** token style for a type */
        +  var PR_TYPE = 'typ';
        +  /** token style for a literal value.  e.g. 1, null, true. */
        +  var PR_LITERAL = 'lit';
        +  /** token style for a punctuation string. */
        +  var PR_PUNCTUATION = 'pun';
        +  /** token style for a punctuation string. */
        +  var PR_PLAIN = 'pln';
        +
        +  /** token style for an sgml tag. */
        +  var PR_TAG = 'tag';
        +  /** token style for a markup declaration such as a DOCTYPE. */
        +  var PR_DECLARATION = 'dec';
        +  /** token style for embedded source. */
        +  var PR_SOURCE = 'src';
        +  /** token style for an sgml attribute name. */
        +  var PR_ATTRIB_NAME = 'atn';
        +  /** token style for an sgml attribute value. */
        +  var PR_ATTRIB_VALUE = 'atv';
        +
        +  /**
        +   * A class that indicates a section of markup that is not code, e.g. to allow
        +   * embedding of line numbers within code listings.
        +   */
        +  var PR_NOCODE = 'nocode';
        +
        +  /** A set of tokens that can precede a regular expression literal in
        +    * javascript.
        +    * http://www.mozilla.org/js/language/js20/rationale/syntax.html has the full
        +    * list, but I've removed ones that might be problematic when seen in
        +    * languages that don't support regular expression literals.
        +    *
        +    * <p>Specifically, I've removed any keywords that can't precede a regexp
        +    * literal in a syntactically legal javascript program, and I've removed the
        +    * "in" keyword since it's not a keyword in many languages, and might be used
        +    * as a count of inches.
        +    *
        +    * <p>The link a above does not accurately describe EcmaScript rules since
        +    * it fails to distinguish between (a=++/b/i) and (a++/b/i) but it works
        +    * very well in practice.
        +    *
        +    * @private
        +    */
        +  var REGEXP_PRECEDER_PATTERN = function () {
        +      var preceders = [
        +          "!", "!=", "!==", "#", "%", "%=", "&", "&&", "&&=",
        +          "&=", "(", "*", "*=", /* "+", */ "+=", ",", /* "-", */ "-=",
        +          "->", /*".", "..", "...", handled below */ "/", "/=", ":", "::", ";",
        +          "<", "<<", "<<=", "<=", "=", "==", "===", ">",
        +          ">=", ">>", ">>=", ">>>", ">>>=", "?", "@", "[",
        +          "^", "^=", "^^", "^^=", "{", "|", "|=", "||",
        +          "||=", "~" /* handles =~ and !~ */,
        +          "break", "case", "continue", "delete",
        +          "do", "else", "finally", "instanceof",
        +          "return", "throw", "try", "typeof"
        +          ];
        +      var pattern = '(?:^^|[+-]';
        +      for (var i = 0; i < preceders.length; ++i) {
        +        pattern += '|' + preceders[i].replace(/([^=<>:&a-z])/g, '\\$1');
        +      }
        +      pattern += ')\\s*';  // matches at end, and matches empty string
        +      return pattern;
        +      // CAVEAT: this does not properly handle the case where a regular
        +      // expression immediately follows another since a regular expression may
        +      // have flags for case-sensitivity and the like.  Having regexp tokens
        +      // adjacent is not valid in any language I'm aware of, so I'm punting.
        +      // TODO: maybe style special characters inside a regexp as punctuation.
        +    }();
        +
        +  // Define regexps here so that the interpreter doesn't have to create an
        +  // object each time the function containing them is called.
        +  // The language spec requires a new object created even if you don't access
        +  // the $1 members.
        +  var pr_amp = /&/g;
        +  var pr_lt = /</g;
        +  var pr_gt = />/g;
        +  var pr_quot = /\"/g;
        +  /** like textToHtml but escapes double quotes to be attribute safe. */
        +  function attribToHtml(str) {
        +    return str.replace(pr_amp, '&amp;')
        +        .replace(pr_lt, '&lt;')
        +        .replace(pr_gt, '&gt;')
        +        .replace(pr_quot, '&quot;');
        +  }
        +
        +  /** escapest html special characters to html. */
        +  function textToHtml(str) {
        +    return str.replace(pr_amp, '&amp;')
        +        .replace(pr_lt, '&lt;')
        +        .replace(pr_gt, '&gt;');
        +  }
        +
        +
        +  var pr_ltEnt = /&lt;/g;
        +  var pr_gtEnt = /&gt;/g;
        +  var pr_aposEnt = /&apos;/g;
        +  var pr_quotEnt = /&quot;/g;
        +  var pr_ampEnt = /&amp;/g;
        +  var pr_nbspEnt = /&nbsp;/g;
        +  /** unescapes html to plain text. */
        +  function htmlToText(html) {
        +    var pos = html.indexOf('&');
        +    if (pos < 0) { return html; }
        +    // Handle numeric entities specially.  We can't use functional substitution
        +    // since that doesn't work in older versions of Safari.
        +    // These should be rare since most browsers convert them to normal chars.
        +    for (--pos; (pos = html.indexOf('&#', pos + 1)) >= 0;) {
        +      var end = html.indexOf(';', pos);
        +      if (end >= 0) {
        +        var num = html.substring(pos + 3, end);
        +        var radix = 10;
        +        if (num && num.charAt(0) === 'x') {
        +          num = num.substring(1);
        +          radix = 16;
        +        }
        +        var codePoint = parseInt(num, radix);
        +        if (!isNaN(codePoint)) {
        +          html = (html.substring(0, pos) + String.fromCharCode(codePoint) +
        +                  html.substring(end + 1));
        +        }
        +      }
        +    }
        +
        +    return html.replace(pr_ltEnt, '<')
        +        .replace(pr_gtEnt, '>')
        +        .replace(pr_aposEnt, "'")
        +        .replace(pr_quotEnt, '"')
        +        .replace(pr_nbspEnt, ' ')
        +        .replace(pr_ampEnt, '&');
        +  }
        +
        +  /** is the given node's innerHTML normally unescaped? */
        +  function isRawContent(node) {
        +    return 'XMP' === node.tagName;
        +  }
        +
        +  var newlineRe = /[\r\n]/g;
        +  /**
        +   * Are newlines and adjacent spaces significant in the given node's innerHTML?
        +   */
        +  function isPreformatted(node, content) {
        +    // PRE means preformatted, and is a very common case, so don't create
        +    // unnecessary computed style objects.
        +    if ('PRE' === node.tagName) { return true; }
        +    if (!newlineRe.test(content)) { return true; }  // Don't care
        +    var whitespace = '';
        +    // For disconnected nodes, IE has no currentStyle.
        +    if (node.currentStyle) {
        +      whitespace = node.currentStyle.whiteSpace;
        +    } else if (window.getComputedStyle) {
        +      // Firefox makes a best guess if node is disconnected whereas Safari
        +      // returns the empty string.
        +      whitespace = window.getComputedStyle(node, null).whiteSpace;
        +    }
        +    return !whitespace || whitespace === 'pre';
        +  }
        +
        +  function normalizedHtml(node, out) {
        +    switch (node.nodeType) {
        +      case 1:  // an element
        +        var name = node.tagName.toLowerCase();
        +        out.push('<', name);
        +        for (var i = 0; i < node.attributes.length; ++i) {
        +          var attr = node.attributes[i];
        +          if (!attr.specified) { continue; }
        +          out.push(' ');
        +          normalizedHtml(attr, out);
        +        }
        +        out.push('>');
        +        for (var child = node.firstChild; child; child = child.nextSibling) {
        +          normalizedHtml(child, out);
        +        }
        +        if (node.firstChild || !/^(?:br|link|img)$/.test(name)) {
        +          out.push('<\/', name, '>');
        +        }
        +        break;
        +      case 2: // an attribute
        +        out.push(node.name.toLowerCase(), '="', attribToHtml(node.value), '"');
        +        break;
        +      case 3: case 4: // text
        +        out.push(textToHtml(node.nodeValue));
        +        break;
        +    }
        +  }
        +
        +  /**
        +   * Given a group of {@link RegExp}s, returns a {@code RegExp} that globally
        +   * matches the union o the sets o strings matched d by the input RegExp.
        +   * Since it matches globally, if the input strings have a start-of-input
        +   * anchor (/^.../), it is ignored for the purposes of unioning.
        +   * @param {Array.<RegExp>} regexs non multiline, non-global regexs.
        +   * @return {RegExp} a global regex.
        +   */
        +  function combinePrefixPatterns(regexs) {
        +    var capturedGroupIndex = 0;
        +
        +    var needToFoldCase = false;
        +    var ignoreCase = false;
        +    for (var i = 0, n = regexs.length; i < n; ++i) {
        +      var regex = regexs[i];
        +      if (regex.ignoreCase) {
        +        ignoreCase = true;
        +      } else if (/[a-z]/i.test(regex.source.replace(
        +                     /\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ''))) {
        +        needToFoldCase = true;
        +        ignoreCase = false;
        +        break;
        +      }
        +    }
        +
        +    function decodeEscape(charsetPart) {
        +      if (charsetPart.charAt(0) !== '\\') { return charsetPart.charCodeAt(0); }
        +      switch (charsetPart.charAt(1)) {
        +        case 'b': return 8;
        +        case 't': return 9;
        +        case 'n': return 0xa;
        +        case 'v': return 0xb;
        +        case 'f': return 0xc;
        +        case 'r': return 0xd;
        +        case 'u': case 'x':
        +          return parseInt(charsetPart.substring(2), 16)
        +              || charsetPart.charCodeAt(1);
        +        case '0': case '1': case '2': case '3': case '4':
        +        case '5': case '6': case '7':
        +          return parseInt(charsetPart.substring(1), 8);
        +        default: return charsetPart.charCodeAt(1);
        +      }
        +    }
        +
        +    function encodeEscape(charCode) {
        +      if (charCode < 0x20) {
        +        return (charCode < 0x10 ? '\\x0' : '\\x') + charCode.toString(16);
        +      }
        +      var ch = String.fromCharCode(charCode);
        +      if (ch === '\\' || ch === '-' || ch === '[' || ch === ']') {
        +        ch = '\\' + ch;
        +      }
        +      return ch;
        +    }
        +
        +    function caseFoldCharset(charSet) {
        +      var charsetParts = charSet.substring(1, charSet.length - 1).match(
        +          new RegExp(
        +              '\\\\u[0-9A-Fa-f]{4}'
        +              + '|\\\\x[0-9A-Fa-f]{2}'
        +              + '|\\\\[0-3][0-7]{0,2}'
        +              + '|\\\\[0-7]{1,2}'
        +              + '|\\\\[\\s\\S]'
        +              + '|-'
        +              + '|[^-\\\\]',
        +              'g'));
        +      var groups = [];
        +      var ranges = [];
        +      var inverse = charsetParts[0] === '^';
        +      for (var i = inverse ? 1 : 0, n = charsetParts.length; i < n; ++i) {
        +        var p = charsetParts[i];
        +        switch (p) {
        +          case '\\B': case '\\b':
        +          case '\\D': case '\\d':
        +          case '\\S': case '\\s':
        +          case '\\W': case '\\w':
        +            groups.push(p);
        +            continue;
        +        }
        +        var start = decodeEscape(p);
        +        var end;
        +        if (i + 2 < n && '-' === charsetParts[i + 1]) {
        +          end = decodeEscape(charsetParts[i + 2]);
        +          i += 2;
        +        } else {
        +          end = start;
        +        }
        +        ranges.push([start, end]);
        +        // If the range might intersect letters, then expand it.
        +        if (!(end < 65 || start > 122)) {
        +          if (!(end < 65 || start > 90)) {
        +            ranges.push([Math.max(65, start) | 32, Math.min(end, 90) | 32]);
        +          }
        +          if (!(end < 97 || start > 122)) {
        +            ranges.push([Math.max(97, start) & ~32, Math.min(end, 122) & ~32]);
        +          }
        +        }
        +      }
        +
        +      // [[1, 10], [3, 4], [8, 12], [14, 14], [16, 16], [17, 17]]
        +      // -> [[1, 12], [14, 14], [16, 17]]
        +      ranges.sort(function (a, b) { return (a[0] - b[0]) || (b[1]  - a[1]); });
        +      var consolidatedRanges = [];
        +      var lastRange = [NaN, NaN];
        +      for (var i = 0; i < ranges.length; ++i) {
        +        var range = ranges[i];
        +        if (range[0] <= lastRange[1] + 1) {
        +          lastRange[1] = Math.max(lastRange[1], range[1]);
        +        } else {
        +          consolidatedRanges.push(lastRange = range);
        +        }
        +      }
        +
        +      var out = ['['];
        +      if (inverse) { out.push('^'); }
        +      out.push.apply(out, groups);
        +      for (var i = 0; i < consolidatedRanges.length; ++i) {
        +        var range = consolidatedRanges[i];
        +        out.push(encodeEscape(range[0]));
        +        if (range[1] > range[0]) {
        +          if (range[1] + 1 > range[0]) { out.push('-'); }
        +          out.push(encodeEscape(range[1]));
        +        }
        +      }
        +      out.push(']');
        +      return out.join('');
        +    }
        +
        +    function allowAnywhereFoldCaseAndRenumberGroups(regex) {
        +      // Split into character sets, escape sequences, punctuation strings
        +      // like ('(', '(?:', ')', '^'), and runs of characters that do not
        +      // include any of the above.
        +      var parts = regex.source.match(
        +          new RegExp(
        +              '(?:'
        +              + '\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]'  // a character set
        +              + '|\\\\u[A-Fa-f0-9]{4}'  // a unicode escape
        +              + '|\\\\x[A-Fa-f0-9]{2}'  // a hex escape
        +              + '|\\\\[0-9]+'  // a back-reference or octal escape
        +              + '|\\\\[^ux0-9]'  // other escape sequence
        +              + '|\\(\\?[:!=]'  // start of a non-capturing group
        +              + '|[\\(\\)\\^]'  // start/emd of a group, or line start
        +              + '|[^\\x5B\\x5C\\(\\)\\^]+'  // run of other characters
        +              + ')',
        +              'g'));
        +      var n = parts.length;
        +
        +      // Maps captured group numbers to the number they will occupy in
        +      // the output or to -1 if that has not been determined, or to
        +      // undefined if they need not be capturing in the output.
        +      var capturedGroups = [];
        +
        +      // Walk over and identify back references to build the capturedGroups
        +      // mapping.
        +      for (var i = 0, groupIndex = 0; i < n; ++i) {
        +        var p = parts[i];
        +        if (p === '(') {
        +          // groups are 1-indexed, so max group index is count of '('
        +          ++groupIndex;
        +        } else if ('\\' === p.charAt(0)) {
        +          var decimalValue = +p.substring(1);
        +          if (decimalValue && decimalValue <= groupIndex) {
        +            capturedGroups[decimalValue] = -1;
        +          }
        +        }
        +      }
        +
        +      // Renumber groups and reduce capturing groups to non-capturing groups
        +      // where possible.
        +      for (var i = 1; i < capturedGroups.length; ++i) {
        +        if (-1 === capturedGroups[i]) {
        +          capturedGroups[i] = ++capturedGroupIndex;
        +        }
        +      }
        +      for (var i = 0, groupIndex = 0; i < n; ++i) {
        +        var p = parts[i];
        +        if (p === '(') {
        +          ++groupIndex;
        +          if (capturedGroups[groupIndex] === undefined) {
        +            parts[i] = '(?:';
        +          }
        +        } else if ('\\' === p.charAt(0)) {
        +          var decimalValue = +p.substring(1);
        +          if (decimalValue && decimalValue <= groupIndex) {
        +            parts[i] = '\\' + capturedGroups[groupIndex];
        +          }
        +        }
        +      }
        +
        +      // Remove any prefix anchors so that the output will match anywhere.
        +      // ^^ really does mean an anchored match though.
        +      for (var i = 0, groupIndex = 0; i < n; ++i) {
        +        if ('^' === parts[i] && '^' !== parts[i + 1]) { parts[i] = ''; }
        +      }
        +
        +      // Expand letters to groupts to handle mixing of case-sensitive and
        +      // case-insensitive patterns if necessary.
        +      if (regex.ignoreCase && needToFoldCase) {
        +        for (var i = 0; i < n; ++i) {
        +          var p = parts[i];
        +          var ch0 = p.charAt(0);
        +          if (p.length >= 2 && ch0 === '[') {
        +            parts[i] = caseFoldCharset(p);
        +          } else if (ch0 !== '\\') {
        +            // TODO: handle letters in numeric escapes.
        +            parts[i] = p.replace(
        +                /[a-zA-Z]/g,
        +                function (ch) {
        +                  var cc = ch.charCodeAt(0);
        +                  return '[' + String.fromCharCode(cc & ~32, cc | 32) + ']';
        +                });
        +          }
        +        }
        +      }
        +
        +      return parts.join('');
        +    }
        +
        +    var rewritten = [];
        +    for (var i = 0, n = regexs.length; i < n; ++i) {
        +      var regex = regexs[i];
        +      if (regex.global || regex.multiline) { throw new Error('' + regex); }
        +      rewritten.push(
        +          '(?:' + allowAnywhereFoldCaseAndRenumberGroups(regex) + ')');
        +    }
        +
        +    return new RegExp(rewritten.join('|'), ignoreCase ? 'gi' : 'g');
        +  }
        +
        +  var PR_innerHtmlWorks = null;
        +  function getInnerHtml(node) {
        +    // inner html is hopelessly broken in Safari 2.0.4 when the content is
        +    // an html description of well formed XML and the containing tag is a PRE
        +    // tag, so we detect that case and emulate innerHTML.
        +    if (null === PR_innerHtmlWorks) {
        +      var testNode = document.createElement('PRE');
        +      testNode.appendChild(
        +          document.createTextNode('<!DOCTYPE foo PUBLIC "foo bar">\n<foo />'));
        +      PR_innerHtmlWorks = !/</.test(testNode.innerHTML);
        +    }
        +
        +    if (PR_innerHtmlWorks) {
        +      var content = node.innerHTML;
        +      // XMP tags contain unescaped entities so require special handling.
        +      if (isRawContent(node)) {
        +        content = textToHtml(content);
        +      } else if (!isPreformatted(node, content)) {
        +        content = content.replace(/(<br\s*\/?>)[\r\n]+/g, '$1')
        +            .replace(/(?:[\r\n]+[ \t]*)+/g, ' ');
        +      }
        +      return content;
        +    }
        +
        +    var out = [];
        +    for (var child = node.firstChild; child; child = child.nextSibling) {
        +      normalizedHtml(child, out);
        +    }
        +    return out.join('');
        +  }
        +
        +  /** returns a function that expand tabs to spaces.  This function can be fed
        +    * successive chunks of text, and will maintain its own internal state to
        +    * keep track of how tabs are expanded.
        +    * @return {function (string) : string} a function that takes
        +    *   plain text and return the text with tabs expanded.
        +    * @private
        +    */
        +  function makeTabExpander(tabWidth) {
        +    var SPACES = '                ';
        +    var charInLine = 0;
        +
        +    return function (plainText) {
        +      // walk over each character looking for tabs and newlines.
        +      // On tabs, expand them.  On newlines, reset charInLine.
        +      // Otherwise increment charInLine
        +      var out = null;
        +      var pos = 0;
        +      for (var i = 0, n = plainText.length; i < n; ++i) {
        +        var ch = plainText.charAt(i);
        +
        +        switch (ch) {
        +          case '\t':
        +            if (!out) { out = []; }
        +            out.push(plainText.substring(pos, i));
        +            // calculate how much space we need in front of this part
        +            // nSpaces is the amount of padding -- the number of spaces needed
        +            // to move us to the next column, where columns occur at factors of
        +            // tabWidth.
        +            var nSpaces = tabWidth - (charInLine % tabWidth);
        +            charInLine += nSpaces;
        +            for (; nSpaces >= 0; nSpaces -= SPACES.length) {
        +              out.push(SPACES.substring(0, nSpaces));
        +            }
        +            pos = i + 1;
        +            break;
        +          case '\n':
        +            charInLine = 0;
        +            break;
        +          default:
        +            ++charInLine;
        +        }
        +      }
        +      if (!out) { return plainText; }
        +      out.push(plainText.substring(pos));
        +      return out.join('');
        +    };
        +  }
        +
        +  var pr_chunkPattern = new RegExp(
        +      '[^<]+'  // A run of characters other than '<'
        +      + '|<\!--[\\s\\S]*?--\>'  // an HTML comment
        +      + '|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>'  // a CDATA section
        +      // a probable tag that should not be highlighted
        +      + '|<\/?[a-zA-Z](?:[^>\"\']|\'[^\']*\'|\"[^\"]*\")*>'
        +      + '|<',  // A '<' that does not begin a larger chunk
        +      'g');
        +  var pr_commentPrefix = /^<\!--/;
        +  var pr_cdataPrefix = /^<!\[CDATA\[/;
        +  var pr_brPrefix = /^<br\b/i;
        +  var pr_tagNameRe = /^<(\/?)([a-zA-Z][a-zA-Z0-9]*)/;
        +
        +  /** split markup into chunks of html tags (style null) and
        +    * plain text (style {@link #PR_PLAIN}), converting tags which are
        +    * significant for tokenization (<br>) into their textual equivalent.
        +    *
        +    * @param {string} s html where whitespace is considered significant.
        +    * @return {Object} source code and extracted tags.
        +    * @private
        +    */
        +  function extractTags(s) {
        +    // since the pattern has the 'g' modifier and defines no capturing groups,
        +    // this will return a list of all chunks which we then classify and wrap as
        +    // PR_Tokens
        +    var matches = s.match(pr_chunkPattern);
        +    var sourceBuf = [];
        +    var sourceBufLen = 0;
        +    var extractedTags = [];
        +    if (matches) {
        +      for (var i = 0, n = matches.length; i < n; ++i) {
        +        var match = matches[i];
        +        if (match.length > 1 && match.charAt(0) === '<') {
        +          if (pr_commentPrefix.test(match)) { continue; }
        +          if (pr_cdataPrefix.test(match)) {
        +            // strip CDATA prefix and suffix.  Don't unescape since it's CDATA
        +            sourceBuf.push(match.substring(9, match.length - 3));
        +            sourceBufLen += match.length - 12;
        +          } else if (pr_brPrefix.test(match)) {
        +            // <br> tags are lexically significant so convert them to text.
        +            // This is undone later.
        +            sourceBuf.push('\n');
        +            ++sourceBufLen;
        +          } else {
        +            if (match.indexOf(PR_NOCODE) >= 0 && isNoCodeTag(match)) {
        +              // A <span class="nocode"> will start a section that should be
        +              // ignored.  Continue walking the list until we see a matching end
        +              // tag.
        +              var name = match.match(pr_tagNameRe)[2];
        +              var depth = 1;
        +              var j;
        +              end_tag_loop:
        +              for (j = i + 1; j < n; ++j) {
        +                var name2 = matches[j].match(pr_tagNameRe);
        +                if (name2 && name2[2] === name) {
        +                  if (name2[1] === '/') {
        +                    if (--depth === 0) { break end_tag_loop; }
        +                  } else {
        +                    ++depth;
        +                  }
        +                }
        +              }
        +              if (j < n) {
        +                extractedTags.push(
        +                    sourceBufLen, matches.slice(i, j + 1).join(''));
        +                i = j;
        +              } else {  // Ignore unclosed sections.
        +                extractedTags.push(sourceBufLen, match);
        +              }
        +            } else {
        +              extractedTags.push(sourceBufLen, match);
        +            }
        +          }
        +        } else {
        +          var literalText = htmlToText(match);
        +          sourceBuf.push(literalText);
        +          sourceBufLen += literalText.length;
        +        }
        +      }
        +    }
        +    return { source: sourceBuf.join(''), tags: extractedTags };
        +  }
        +
        +  /** True if the given tag contains a class attribute with the nocode class. */
        +  function isNoCodeTag(tag) {
        +    return !!tag
        +        // First canonicalize the representation of attributes
        +        .replace(/\s(\w+)\s*=\s*(?:\"([^\"]*)\"|'([^\']*)'|(\S+))/g,
        +                 ' $1="$2$3$4"')
        +        // Then look for the attribute we want.
        +        .match(/[cC][lL][aA][sS][sS]=\"[^\"]*\bnocode\b/);
        +  }
        +
        +  /**
        +   * Apply the given language handler to sourceCode and add the resulting
        +   * decorations to out.
        +   * @param {number} basePos the index of sourceCode within the chunk of source
        +   *    whose decorations are already present on out.
        +   */
        +  function appendDecorations(basePos, sourceCode, langHandler, out) {
        +    if (!sourceCode) { return; }
        +    var job = {
        +      source: sourceCode,
        +      basePos: basePos
        +    };
        +    langHandler(job);
        +    out.push.apply(out, job.decorations);
        +  }
        +
        +  /** Given triples of [style, pattern, context] returns a lexing function,
        +    * The lexing function interprets the patterns to find token boundaries and
        +    * returns a decoration list of the form
        +    * [index_0, style_0, index_1, style_1, ..., index_n, style_n]
        +    * where index_n is an index into the sourceCode, and style_n is a style
        +    * constant like PR_PLAIN.  index_n-1 <= index_n, and style_n-1 applies to
        +    * all characters in sourceCode[index_n-1:index_n].
        +    *
        +    * The stylePatterns is a list whose elements have the form
        +    * [style : string, pattern : RegExp, DEPRECATED, shortcut : string].
        +    *
        +    * Style is a style constant like PR_PLAIN, or can be a string of the
        +    * form 'lang-FOO', where FOO is a language extension describing the
        +    * language of the portion of the token in $1 after pattern executes.
        +    * E.g., if style is 'lang-lisp', and group 1 contains the text
        +    * '(hello (world))', then that portion of the token will be passed to the
        +    * registered lisp handler for formatting.
        +    * The text before and after group 1 will be restyled using this decorator
        +    * so decorators should take care that this doesn't result in infinite
        +    * recursion.  For example, the HTML lexer rule for SCRIPT elements looks
        +    * something like ['lang-js', /<[s]cript>(.+?)<\/script>/].  This may match
        +    * '<script>foo()<\/script>', which would cause the current decorator to
        +    * be called with '<script>' which would not match the same rule since
        +    * group 1 must not be empty, so it would be instead styled as PR_TAG by
        +    * the generic tag rule.  The handler registered for the 'js' extension would
        +    * then be called with 'foo()', and finally, the current decorator would
        +    * be called with '<\/script>' which would not match the original rule and
        +    * so the generic tag rule would identify it as a tag.
        +    *
        +    * Pattern must only match prefixes, and if it matches a prefix, then that
        +    * match is considered a token with the same style.
        +    *
        +    * Context is applied to the last non-whitespace, non-comment token
        +    * recognized.
        +    *
        +    * Shortcut is an optional string of characters, any of which, if the first
        +    * character, gurantee that this pattern and only this pattern matches.
        +    *
        +    * @param {Array} shortcutStylePatterns patterns that always start with
        +    *   a known character.  Must have a shortcut string.
        +    * @param {Array} fallthroughStylePatterns patterns that will be tried in
        +    *   order if the shortcut ones fail.  May have shortcuts.
        +    *
        +    * @return {function (Object)} a
        +    *   function that takes source code and returns a list of decorations.
        +    */
        +  function createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns) {
        +    var shortcuts = {};
        +    var tokenizer;
        +    (function () {
        +      var allPatterns = shortcutStylePatterns.concat(fallthroughStylePatterns);
        +      var allRegexs = [];
        +      var regexKeys = {};
        +      for (var i = 0, n = allPatterns.length; i < n; ++i) {
        +        var patternParts = allPatterns[i];
        +        var shortcutChars = patternParts[3];
        +        if (shortcutChars) {
        +          for (var c = shortcutChars.length; --c >= 0;) {
        +            shortcuts[shortcutChars.charAt(c)] = patternParts;
        +          }
        +        }
        +        var regex = patternParts[1];
        +        var k = '' + regex;
        +        if (!regexKeys.hasOwnProperty(k)) {
        +          allRegexs.push(regex);
        +          regexKeys[k] = null;
        +        }
        +      }
        +      allRegexs.push(/[\0-\uffff]/);
        +      tokenizer = combinePrefixPatterns(allRegexs);
        +    })();
        +
        +    var nPatterns = fallthroughStylePatterns.length;
        +    var notWs = /\S/;
        +
        +    /**
        +     * Lexes job.source and produces an output array job.decorations of style
        +     * classes preceded by the position at which they start in job.source in
        +     * order.
        +     *
        +     * @param {Object} job an object like {@code
        +     *    source: {string} sourceText plain text,
        +     *    basePos: {int} position of job.source in the larger chunk of
        +     *        sourceCode.
        +     * }
        +     */
        +    var decorate = function (job) {
        +      var sourceCode = job.source, basePos = job.basePos;
        +      /** Even entries are positions in source in ascending order.  Odd enties
        +        * are style markers (e.g., PR_COMMENT) that run from that position until
        +        * the end.
        +        * @type {Array.<number|string>}
        +        */
        +      var decorations = [basePos, PR_PLAIN];
        +      var pos = 0;  // index into sourceCode
        +      var tokens = sourceCode.match(tokenizer) || [];
        +      var styleCache = {};
        +
        +      for (var ti = 0, nTokens = tokens.length; ti < nTokens; ++ti) {
        +        var token = tokens[ti];
        +        var style = styleCache[token];
        +        var match = void 0;
        +
        +        var isEmbedded;
        +        if (typeof style === 'string') {
        +          isEmbedded = false;
        +        } else {
        +          var patternParts = shortcuts[token.charAt(0)];
        +          if (patternParts) {
        +            match = token.match(patternParts[1]);
        +            style = patternParts[0];
        +          } else {
        +            for (var i = 0; i < nPatterns; ++i) {
        +              patternParts = fallthroughStylePatterns[i];
        +              match = token.match(patternParts[1]);
        +              if (match) {
        +                style = patternParts[0];
        +                break;
        +              }
        +            }
        +
        +            if (!match) {  // make sure that we make progress
        +              style = PR_PLAIN;
        +            }
        +          }
        +
        +          isEmbedded = style.length >= 5 && 'lang-' === style.substring(0, 5);
        +          if (isEmbedded && !(match && typeof match[1] === 'string')) {
        +            isEmbedded = false;
        +            style = PR_SOURCE;
        +          }
        +
        +          if (!isEmbedded) { styleCache[token] = style; }
        +        }
        +
        +        var tokenStart = pos;
        +        pos += token.length;
        +
        +        if (!isEmbedded) {
        +          decorations.push(basePos + tokenStart, style);
        +        } else {  // Treat group 1 as an embedded block of source code.
        +          var embeddedSource = match[1];
        +          var embeddedSourceStart = token.indexOf(embeddedSource);
        +          var embeddedSourceEnd = embeddedSourceStart + embeddedSource.length;
        +          if (match[2]) {
        +            // If embeddedSource can be blank, then it would match at the
        +            // beginning which would cause us to infinitely recurse on the
        +            // entire token, so we catch the right context in match[2].
        +            embeddedSourceEnd = token.length - match[2].length;
        +            embeddedSourceStart = embeddedSourceEnd - embeddedSource.length;
        +          }
        +          var lang = style.substring(5);
        +          // Decorate the left of the embedded source
        +          appendDecorations(
        +              basePos + tokenStart,
        +              token.substring(0, embeddedSourceStart),
        +              decorate, decorations);
        +          // Decorate the embedded source
        +          appendDecorations(
        +              basePos + tokenStart + embeddedSourceStart,
        +              embeddedSource,
        +              langHandlerForExtension(lang, embeddedSource),
        +              decorations);
        +          // Decorate the right of the embedded section
        +          appendDecorations(
        +              basePos + tokenStart + embeddedSourceEnd,
        +              token.substring(embeddedSourceEnd),
        +              decorate, decorations);
        +        }
        +      }
        +      job.decorations = decorations;
        +    };
        +    return decorate;
        +  }
        +
        +  /** returns a function that produces a list of decorations from source text.
        +    *
        +    * This code treats ", ', and ` as string delimiters, and \ as a string
        +    * escape.  It does not recognize perl's qq() style strings.
        +    * It has no special handling for double delimiter escapes as in basic, or
        +    * the tripled delimiters used in python, but should work on those regardless
        +    * although in those cases a single string literal may be broken up into
        +    * multiple adjacent string literals.
        +    *
        +    * It recognizes C, C++, and shell style comments.
        +    *
        +    * @param {Object} options a set of optional parameters.
        +    * @return {function (Object)} a function that examines the source code
        +    *     in the input job and builds the decoration list.
        +    */
        +  function sourceDecorator(options) {
        +    var shortcutStylePatterns = [], fallthroughStylePatterns = [];
        +    if (options['tripleQuotedStrings']) {
        +      // '''multi-line-string''', 'single-line-string', and double-quoted
        +      shortcutStylePatterns.push(
        +          [PR_STRING,  /^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,
        +           null, '\'"']);
        +    } else if (options['multiLineStrings']) {
        +      // 'multi-line-string', "multi-line-string"
        +      shortcutStylePatterns.push(
        +          [PR_STRING,  /^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,
        +           null, '\'"`']);
        +    } else {
        +      // 'single-line-string', "single-line-string"
        +      shortcutStylePatterns.push(
        +          [PR_STRING,
        +           /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,
        +           null, '"\'']);
        +    }
        +    if (options['verbatimStrings']) {
        +      // verbatim-string-literal production from the C# grammar.  See issue 93.
        +      fallthroughStylePatterns.push(
        +          [PR_STRING, /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null]);
        +    }
        +    if (options['hashComments']) {
        +      if (options['cStyleComments']) {
        +        // Stop C preprocessor declarations at an unclosed open comment
        +        shortcutStylePatterns.push(
        +            [PR_COMMENT, /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,
        +             null, '#']);
        +        fallthroughStylePatterns.push(
        +            [PR_STRING,
        +             /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,
        +             null]);
        +      } else {
        +        shortcutStylePatterns.push([PR_COMMENT, /^#[^\r\n]*/, null, '#']);
        +      }
        +    }
        +    if (options['cStyleComments']) {
        +      fallthroughStylePatterns.push([PR_COMMENT, /^\/\/[^\r\n]*/, null]);
        +      fallthroughStylePatterns.push(
        +          [PR_COMMENT, /^\/\*[\s\S]*?(?:\*\/|$)/, null]);
        +    }
        +    if (options['regexLiterals']) {
        +      var REGEX_LITERAL = (
        +          // A regular expression literal starts with a slash that is
        +          // not followed by * or / so that it is not confused with
        +          // comments.
        +          '/(?=[^/*])'
        +          // and then contains any number of raw characters,
        +          + '(?:[^/\\x5B\\x5C]'
        +          // escape sequences (\x5C),
        +          +    '|\\x5C[\\s\\S]'
        +          // or non-nesting character sets (\x5B\x5D);
        +          +    '|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+'
        +          // finally closed by a /.
        +          + '/');
        +      fallthroughStylePatterns.push(
        +          ['lang-regex',
        +           new RegExp('^' + REGEXP_PRECEDER_PATTERN + '(' + REGEX_LITERAL + ')')
        +           ]);
        +    }
        +
        +    var keywords = options['keywords'].replace(/^\s+|\s+$/g, '');
        +    if (keywords.length) {
        +      fallthroughStylePatterns.push(
        +          [PR_KEYWORD,
        +           new RegExp('^(?:' + keywords.replace(/\s+/g, '|') + ')\\b'), null]);
        +    }
        +
        +    shortcutStylePatterns.push([PR_PLAIN,       /^\s+/, null, ' \r\n\t\xA0']);
        +    fallthroughStylePatterns.push(
        +        // TODO(mikesamuel): recognize non-latin letters and numerals in idents
        +        [PR_LITERAL,     /^@[a-z_$][a-z_$@0-9]*/i, null],
        +        [PR_TYPE,        /^@?[A-Z]+[a-z][A-Za-z_$@0-9]*/, null],
        +        [PR_PLAIN,       /^[a-z_$][a-z_$@0-9]*/i, null],
        +        [PR_LITERAL,
        +         new RegExp(
        +             '^(?:'
        +             // A hex number
        +             + '0x[a-f0-9]+'
        +             // or an octal or decimal number,
        +             + '|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)'
        +             // possibly in scientific notation
        +             + '(?:e[+\\-]?\\d+)?'
        +             + ')'
        +             // with an optional modifier like UL for unsigned long
        +             + '[a-z]*', 'i'),
        +         null, '0123456789'],
        +        [PR_PUNCTUATION, /^.[^\s\w\.$@\'\"\`\/\#]*/, null]);
        +
        +    return createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns);
        +  }
        +
        +  var decorateSource = sourceDecorator({
        +        'keywords': ALL_KEYWORDS,
        +        'hashComments': true,
        +        'cStyleComments': true,
        +        'multiLineStrings': true,
        +        'regexLiterals': true
        +      });
        +
        +  /** Breaks {@code job.source} around style boundaries in
        +    * {@code job.decorations} while re-interleaving {@code job.extractedTags},
        +    * and leaves the result in {@code job.prettyPrintedHtml}.
        +    * @param {Object} job like {
        +    *    source: {string} source as plain text,
        +    *    extractedTags: {Array.<number|string>} extractedTags chunks of raw
        +    *                   html preceded by their position in {@code job.source}
        +    *                   in order
        +    *    decorations: {Array.<number|string} an array of style classes preceded
        +    *                 by the position at which they start in job.source in order
        +    * }
        +    * @private
        +    */
        +  function recombineTagsAndDecorations(job) {
        +    var sourceText = job.source;
        +    var extractedTags = job.extractedTags;
        +    var decorations = job.decorations;
        +
        +    var html = [];
        +    // index past the last char in sourceText written to html
        +    var outputIdx = 0;
        +
        +    var openDecoration = null;
        +    var currentDecoration = null;
        +    var tagPos = 0;  // index into extractedTags
        +    var decPos = 0;  // index into decorations
        +    var tabExpander = makeTabExpander(window['PR_TAB_WIDTH']);
        +
        +    var adjacentSpaceRe = /([\r\n ]) /g;
        +    var startOrSpaceRe = /(^| ) /gm;
        +    var newlineRe = /\r\n?|\n/g;
        +    var trailingSpaceRe = /[ \r\n]$/;
        +    var lastWasSpace = true;  // the last text chunk emitted ended with a space.
        +
        +    // A helper function that is responsible for opening sections of decoration
        +    // and outputing properly escaped chunks of source
        +    function emitTextUpTo(sourceIdx) {
        +      if (sourceIdx > outputIdx) {
        +        if (openDecoration && openDecoration !== currentDecoration) {
        +          // Close the current decoration
        +          html.push('</span>');
        +          openDecoration = null;
        +        }
        +        if (!openDecoration && currentDecoration) {
        +          openDecoration = currentDecoration;
        +          html.push('<span class="', openDecoration, '">');
        +        }
        +        // This interacts badly with some wikis which introduces paragraph tags
        +        // into pre blocks for some strange reason.
        +        // It's necessary for IE though which seems to lose the preformattedness
        +        // of <pre> tags when their innerHTML is assigned.
        +        // http://stud3.tuwien.ac.at/~e0226430/innerHtmlQuirk.html
        +        // and it serves to undo the conversion of <br>s to newlines done in
        +        // chunkify.
        +        var htmlChunk = textToHtml(
        +            tabExpander(sourceText.substring(outputIdx, sourceIdx)))
        +            .replace(lastWasSpace
        +                     ? startOrSpaceRe
        +                     : adjacentSpaceRe, '$1&nbsp;');
        +        // Keep track of whether we need to escape space at the beginning of the
        +        // next chunk.
        +        lastWasSpace = trailingSpaceRe.test(htmlChunk);
        +        // IE collapses multiple adjacient <br>s into 1 line break.
        +        // Prefix every <br> with '&nbsp;' can prevent such IE's behavior.
        +        var lineBreakHtml = window['_pr_isIE6']() ? '&nbsp;<br />' : '<br />';
        +        html.push(htmlChunk.replace(newlineRe, lineBreakHtml));
        +        outputIdx = sourceIdx;
        +      }
        +    }
        +
        +    while (true) {
        +      // Determine if we're going to consume a tag this time around.  Otherwise
        +      // we consume a decoration or exit.
        +      var outputTag;
        +      if (tagPos < extractedTags.length) {
        +        if (decPos < decorations.length) {
        +          // Pick one giving preference to extractedTags since we shouldn't open
        +          // a new style that we're going to have to immediately close in order
        +          // to output a tag.
        +          outputTag = extractedTags[tagPos] <= decorations[decPos];
        +        } else {
        +          outputTag = true;
        +        }
        +      } else {
        +        outputTag = false;
        +      }
        +      // Consume either a decoration or a tag or exit.
        +      if (outputTag) {
        +        emitTextUpTo(extractedTags[tagPos]);
        +        if (openDecoration) {
        +          // Close the current decoration
        +          html.push('</span>');
        +          openDecoration = null;
        +        }
        +        html.push(extractedTags[tagPos + 1]);
        +        tagPos += 2;
        +      } else if (decPos < decorations.length) {
        +        emitTextUpTo(decorations[decPos]);
        +        currentDecoration = decorations[decPos + 1];
        +        decPos += 2;
        +      } else {
        +        break;
        +      }
        +    }
        +    emitTextUpTo(sourceText.length);
        +    if (openDecoration) {
        +      html.push('</span>');
        +    }
        +    job.prettyPrintedHtml = html.join('');
        +  }
        +
        +  /** Maps language-specific file extensions to handlers. */
        +  var langHandlerRegistry = {};
        +  /** Register a language handler for the given file extensions.
        +    * @param {function (Object)} handler a function from source code to a list
        +    *      of decorations.  Takes a single argument job which describes the
        +    *      state of the computation.   The single parameter has the form
        +    *      {@code {
        +    *        source: {string} as plain text.
        +    *        decorations: {Array.<number|string>} an array of style classes
        +    *                     preceded by the position at which they start in
        +    *                     job.source in order.
        +    *                     The language handler should assigned this field.
        +    *        basePos: {int} the position of source in the larger source chunk.
        +    *                 All positions in the output decorations array are relative
        +    *                 to the larger source chunk.
        +    *      } }
        +    * @param {Array.<string>} fileExtensions
        +    */
        +  function registerLangHandler(handler, fileExtensions) {
        +    for (var i = fileExtensions.length; --i >= 0;) {
        +      var ext = fileExtensions[i];
        +      if (!langHandlerRegistry.hasOwnProperty(ext)) {
        +        langHandlerRegistry[ext] = handler;
        +      } else if ('console' in window) {
        +        console.warn('cannot override language handler %s', ext);
        +      }
        +    }
        +  }
        +  function langHandlerForExtension(extension, source) {
        +    if (!(extension && langHandlerRegistry.hasOwnProperty(extension))) {
        +      // Treat it as markup if the first non whitespace character is a < and
        +      // the last non-whitespace character is a >.
        +      extension = /^\s*</.test(source)
        +          ? 'default-markup'
        +          : 'default-code';
        +    }
        +    return langHandlerRegistry[extension];
        +  }
        +  registerLangHandler(decorateSource, ['default-code']);
        +  registerLangHandler(
        +      createSimpleLexer(
        +          [],
        +          [
        +           [PR_PLAIN,       /^[^<?]+/],
        +           [PR_DECLARATION, /^<!\w[^>]*(?:>|$)/],
        +           [PR_COMMENT,     /^<\!--[\s\S]*?(?:-\->|$)/],
        +           // Unescaped content in an unknown language
        +           ['lang-',        /^<\?([\s\S]+?)(?:\?>|$)/],
        +           ['lang-',        /^<%([\s\S]+?)(?:%>|$)/],
        +           [PR_PUNCTUATION, /^(?:<[%?]|[%?]>)/],
        +           ['lang-',        /^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],
        +           // Unescaped content in javascript.  (Or possibly vbscript).
        +           ['lang-js',      /^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],
        +           // Contains unescaped stylesheet content
        +           ['lang-css',     /^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],
        +           ['lang-in.tag',  /^(<\/?[a-z][^<>]*>)/i]
        +          ]),
        +      ['default-markup', 'htm', 'html', 'mxml', 'xhtml', 'xml', 'xsl']);
        +  registerLangHandler(
        +      createSimpleLexer(
        +          [
        +           [PR_PLAIN,        /^[\s]+/, null, ' \t\r\n'],
        +           [PR_ATTRIB_VALUE, /^(?:\"[^\"]*\"?|\'[^\']*\'?)/, null, '\"\'']
        +           ],
        +          [
        +           [PR_TAG,          /^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],
        +           [PR_ATTRIB_NAME,  /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],
        +           ['lang-uq.val',   /^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],
        +           [PR_PUNCTUATION,  /^[=<>\/]+/],
        +           ['lang-js',       /^on\w+\s*=\s*\"([^\"]+)\"/i],
        +           ['lang-js',       /^on\w+\s*=\s*\'([^\']+)\'/i],
        +           ['lang-js',       /^on\w+\s*=\s*([^\"\'>\s]+)/i],
        +           ['lang-css',      /^style\s*=\s*\"([^\"]+)\"/i],
        +           ['lang-css',      /^style\s*=\s*\'([^\']+)\'/i],
        +           ['lang-css',      /^style\s*=\s*([^\"\'>\s]+)/i]
        +           ]),
        +      ['in.tag']);
        +  registerLangHandler(
        +      createSimpleLexer([], [[PR_ATTRIB_VALUE, /^[\s\S]+/]]), ['uq.val']);
        +  registerLangHandler(sourceDecorator({
        +          'keywords': CPP_KEYWORDS,
        +          'hashComments': true,
        +          'cStyleComments': true
        +        }), ['c', 'cc', 'cpp', 'cxx', 'cyc', 'm']);
        +  registerLangHandler(sourceDecorator({
        +          'keywords': 'null true false'
        +        }), ['json']);
        +  registerLangHandler(sourceDecorator({
        +          'keywords': CSHARP_KEYWORDS,
        +          'hashComments': true,
        +          'cStyleComments': true,
        +          'verbatimStrings': true
        +        }), ['cs']);
        +  registerLangHandler(sourceDecorator({
        +          'keywords': JAVA_KEYWORDS,
        +          'cStyleComments': true
        +        }), ['java']);
        +  registerLangHandler(sourceDecorator({
        +          'keywords': SH_KEYWORDS,
        +          'hashComments': true,
        +          'multiLineStrings': true
        +        }), ['bsh', 'csh', 'sh']);
        +  registerLangHandler(sourceDecorator({
        +          'keywords': PYTHON_KEYWORDS,
        +          'hashComments': true,
        +          'multiLineStrings': true,
        +          'tripleQuotedStrings': true
        +        }), ['cv', 'py']);
        +  registerLangHandler(sourceDecorator({
        +          'keywords': PERL_KEYWORDS,
        +          'hashComments': true,
        +          'multiLineStrings': true,
        +          'regexLiterals': true
        +        }), ['perl', 'pl', 'pm']);
        +  registerLangHandler(sourceDecorator({
        +          'keywords': RUBY_KEYWORDS,
        +          'hashComments': true,
        +          'multiLineStrings': true,
        +          'regexLiterals': true
        +        }), ['rb']);
        +  registerLangHandler(sourceDecorator({
        +          'keywords': JSCRIPT_KEYWORDS,
        +          'cStyleComments': true,
        +          'regexLiterals': true
        +        }), ['js']);
        +  registerLangHandler(
        +      createSimpleLexer([], [[PR_STRING, /^[\s\S]+/]]), ['regex']);
        +
        +  function applyDecorator(job) {
        +    var sourceCodeHtml = job.sourceCodeHtml;
        +    var opt_langExtension = job.langExtension;
        +
        +    // Prepopulate output in case processing fails with an exception.
        +    job.prettyPrintedHtml = sourceCodeHtml;
        +
        +    try {
        +      // Extract tags, and convert the source code to plain text.
        +      var sourceAndExtractedTags = extractTags(sourceCodeHtml);
        +      /** Plain text. @type {string} */
        +      var source = sourceAndExtractedTags.source;
        +      job.source = source;
        +      job.basePos = 0;
        +
        +      /** Even entries are positions in source in ascending order.  Odd entries
        +        * are tags that were extracted at that position.
        +        * @type {Array.<number|string>}
        +        */
        +      job.extractedTags = sourceAndExtractedTags.tags;
        +
        +      // Apply the appropriate language handler
        +      langHandlerForExtension(opt_langExtension, source)(job);
        +      // Integrate the decorations and tags back into the source code to produce
        +      // a decorated html string which is left in job.prettyPrintedHtml.
        +      recombineTagsAndDecorations(job);
        +    } catch (e) {
        +      if ('console' in window) {
        +        console.log(e);
        +        console.trace();
        +      }
        +    }
        +  }
        +
        +  function prettyPrintOne(sourceCodeHtml, opt_langExtension) {
        +    var job = {
        +      sourceCodeHtml: sourceCodeHtml,
        +      langExtension: opt_langExtension
        +    };
        +    applyDecorator(job);
        +    return job.prettyPrintedHtml;
        +  }
        +
        +  function prettyPrint(opt_whenDone) {
        +    var isIE678 = window['_pr_isIE6']();
        +    var ieNewline = isIE678 === 6 ? '\r\n' : '\r';
        +    // See bug 71 and http://stackoverflow.com/questions/136443/why-doesnt-ie7-
        +
        +    // fetch a list of nodes to rewrite
        +    var codeSegments = [
        +        document.getElementsByTagName('pre'),
        +        document.getElementsByTagName('code'),
        +        document.getElementsByTagName('td'),  /* ND Change: Add tables to support prototypes. */
        +        document.getElementsByTagName('xmp') ];
        +    var elements = [];
        +    for (var i = 0; i < codeSegments.length; ++i) {
        +      for (var j = 0, n = codeSegments[i].length; j < n; ++j) {
        +        elements.push(codeSegments[i][j]);
        +      }
        +    }
        +    codeSegments = null;
        +
        +    var clock = Date;
        +    if (!clock['now']) {
        +      clock = { 'now': function () { return (new Date).getTime(); } };
        +    }
        +
        +    // The loop is broken into a series of continuations to make sure that we
        +    // don't make the browser unresponsive when rewriting a large page.
        +    var k = 0;
        +    var prettyPrintingJob;
        +
        +    function doWork() {
        +      var endTime = (window['PR_SHOULD_USE_CONTINUATION'] ?
        +                     clock.now() + 250 /* ms */ :
        +                     Infinity);
        +      for (; k < elements.length && clock.now() < endTime; k++) {
        +        var cs = elements[k];
        +        if (cs.className && cs.className.indexOf('prettyprint') >= 0) {
        +          // If the classes includes a language extensions, use it.
        +          // Language extensions can be specified like
        +          //     <pre class="prettyprint lang-cpp">
        +          // the language extension "cpp" is used to find a language handler as
        +          // passed to PR_registerLangHandler.
        +          var langExtension = cs.className.match(/\blang-(\w+)\b/);
        +          if (langExtension) { langExtension = langExtension[1]; }
        +
        +          // make sure this is not nested in an already prettified element
        +          var nested = false;
        +          for (var p = cs.parentNode; p; p = p.parentNode) {
        +            if ((p.tagName === 'pre' || p.tagName === 'code' ||
        +                 p.tagName === 'xmp' || p.tagName === 'td') &&  /* ND Change: Add tables to support prototypes */
        +                p.className && p.className.indexOf('prettyprint') >= 0) {
        +              nested = true;
        +              break;
        +            }
        +          }
        +          if (!nested) {
        +            // fetch the content as a snippet of properly escaped HTML.
        +            // Firefox adds newlines at the end.
        +            var content = getInnerHtml(cs);
        +            content = content.replace(/(?:\r\n?|\n)$/, '');
        +
        +	  		/* ND Change: we need to preserve &nbsp;s so change them to a special character instead of a space. */
        +			content = content.replace(/&nbsp;/g, '\x11');
        +
        +            // do the pretty printing
        +            prettyPrintingJob = {
        +              sourceCodeHtml: content,
        +              langExtension: langExtension,
        +              sourceNode: cs
        +            };
        +            applyDecorator(prettyPrintingJob);
        +            replaceWithPrettyPrintedHtml();
        +          }
        +        }
        +      }
        +      if (k < elements.length) {
        +        // finish up in a continuation
        +        setTimeout(doWork, 250);
        +      } else if (opt_whenDone) {
        +        opt_whenDone();
        +      }
        +    }
        +
        +    function replaceWithPrettyPrintedHtml() {
        +      var newContent = prettyPrintingJob.prettyPrintedHtml;
        +      if (!newContent) { return; }
        +
        +      /* ND Change: Restore the preserved &nbsp;s.  */
        +	  newContent = newContent.replace(/\x11/g, '&nbsp;');
        +
        +      var cs = prettyPrintingJob.sourceNode;
        +
        +      // push the prettified html back into the tag.
        +      if (!isRawContent(cs)) {
        +        // just replace the old html with the new
        +        cs.innerHTML = newContent;
        +      } else {
        +        // we need to change the tag to a <pre> since <xmp>s do not allow
        +        // embedded tags such as the span tags used to attach styles to
        +        // sections of source code.
        +        var pre = document.createElement('PRE');
        +        for (var i = 0; i < cs.attributes.length; ++i) {
        +          var a = cs.attributes[i];
        +          if (a.specified) {
        +            var aname = a.name.toLowerCase();
        +            if (aname === 'class') {
        +              pre.className = a.value;  // For IE 6
        +            } else {
        +              pre.setAttribute(a.name, a.value);
        +            }
        +          }
        +        }
        +        pre.innerHTML = newContent;
        +
        +        // remove the old
        +        cs.parentNode.replaceChild(pre, cs);
        +        cs = pre;
        +      }
        +
        +      // Replace <br>s with line-feeds so that copying and pasting works
        +      // on IE 6.
        +      // Doing this on other browsers breaks lots of stuff since \r\n is
        +      // treated as two newlines on Firefox, and doing this also slows
        +      // down rendering.
        +      if (isIE678 && cs.tagName === 'PRE') {
        +        var lineBreaks = cs.getElementsByTagName('br');
        +        for (var j = lineBreaks.length; --j >= 0;) {
        +          var lineBreak = lineBreaks[j];
        +          lineBreak.parentNode.replaceChild(
        +              document.createTextNode(ieNewline), lineBreak);
        +        }
        +      }
        +    }
        +
        +    doWork();
        +  }
        +
        +  window['PR_normalizedHtml'] = normalizedHtml;
        +  window['prettyPrintOne'] = prettyPrintOne;
        +  window['prettyPrint'] = prettyPrint;
        +  window['PR'] = {
        +        'combinePrefixPatterns': combinePrefixPatterns,
        +        'createSimpleLexer': createSimpleLexer,
        +        'registerLangHandler': registerLangHandler,
        +        'sourceDecorator': sourceDecorator,
        +        'PR_ATTRIB_NAME': PR_ATTRIB_NAME,
        +        'PR_ATTRIB_VALUE': PR_ATTRIB_VALUE,
        +        'PR_COMMENT': PR_COMMENT,
        +        'PR_DECLARATION': PR_DECLARATION,
        +        'PR_KEYWORD': PR_KEYWORD,
        +        'PR_LITERAL': PR_LITERAL,
        +        'PR_NOCODE': PR_NOCODE,
        +        'PR_PLAIN': PR_PLAIN,
        +        'PR_PUNCTUATION': PR_PUNCTUATION,
        +        'PR_SOURCE': PR_SOURCE,
        +        'PR_STRING': PR_STRING,
        +        'PR_TAG': PR_TAG,
        +        'PR_TYPE': PR_TYPE
        +      };
        +})();
        +
        +
        +// ____________________________________________________________________________
        +
        +
        +
        +// Lua extension
        +
        +PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\r \xA0]+/,null,'	\n\r \xa0'],[PR.PR_STRING,/^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])*(?:\'|$))/,null,'\"\'']],[[PR.PR_COMMENT,/^--(?:\[(=*)\[[\s\S]*?(?:\]\1\]|$)|[^\r\n]*)/],[PR.PR_STRING,/^\[(=*)\[[\s\S]*?(?:\]\1\]|$)/],[PR.PR_KEYWORD,/^(?:and|break|do|else|elseif|end|false|for|function|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,null],[PR.PR_LITERAL,/^[+-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],[PR.PR_PLAIN,/^[a-z_]\w*/i],[PR.PR_PUNCTUATION,/^[^\w\t\n\r \xA0][^\w\t\n\r \xA0\"\'\-\+=]*/]]),['lua'])
        +
        +
        +// Haskell extension
        +
        +PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\x0B\x0C\r ]+/,null,'	\n\r '],[PR.PR_STRING,/^\"(?:[^\"\\\n\x0C\r]|\\[\s\S])*(?:\"|$)/,null,'\"'],[PR.PR_STRING,/^\'(?:[^\'\\\n\x0C\r]|\\[^&])\'?/,null,'\''],[PR.PR_LITERAL,/^(?:0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+\-]?\d+)?)/i,null,'0123456789']],[[PR.PR_COMMENT,/^(?:(?:--+(?:[^\r\n\x0C]*)?)|(?:\{-(?:[^-]|-+[^-\}])*-\}))/],[PR.PR_KEYWORD,/^(?:case|class|data|default|deriving|do|else|if|import|in|infix|infixl|infixr|instance|let|module|newtype|of|then|type|where|_)(?=[^a-zA-Z0-9\']|$)/,null],[PR.PR_PLAIN,/^(?:[A-Z][\w\']*\.)*[a-zA-Z][\w\']*/],[PR.PR_PUNCTUATION,/^[^\t\n\x0B\x0C\r a-zA-Z0-9\'\"]+/]]),['hs'])
        +
        +
        +// ML extension
        +
        +PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\r \xA0]+/,null,'	\n\r \xa0'],[PR.PR_COMMENT,/^#(?:if[\t\n\r \xA0]+(?:[a-z_$][\w\']*|``[^\r\n\t`]*(?:``|$))|else|endif|light)/i,null,'#'],[PR.PR_STRING,/^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])*(?:\'|$))/,null,'\"\'']],[[PR.PR_COMMENT,/^(?:\/\/[^\r\n]*|\(\*[\s\S]*?\*\))/],[PR.PR_KEYWORD,/^(?:abstract|and|as|assert|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|if|in|inherit|inline|interface|internal|lazy|let|match|member|module|mutable|namespace|new|null|of|open|or|override|private|public|rec|return|static|struct|then|to|true|try|type|upcast|use|val|void|when|while|with|yield|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|global|include|method|mixin|object|parallel|process|protected|pure|sealed|trait|virtual|volatile)\b/],[PR.PR_LITERAL,/^[+\-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],[PR.PR_PLAIN,/^(?:[a-z_]\w*[!?#]?|``[^\r\n\t`]*(?:``|$))/i],[PR.PR_PUNCTUATION,/^[^\t\n\r \xA0\"\'\w]+/]]),['fs','ml'])
        +
        +
        +// SQL extension
        +
        +PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\r \xA0]+/,null,'	\n\r \xa0'],[PR.PR_STRING,/^(?:"(?:[^\"\\]|\\.)*"|'(?:[^\'\\]|\\.)*')/,null,'\"\'']],[[PR.PR_COMMENT,/^(?:--[^\r\n]*|\/\*[\s\S]*?(?:\*\/|$))/],[PR.PR_KEYWORD,/^(?:ADD|ALL|ALTER|AND|ANY|AS|ASC|AUTHORIZATION|BACKUP|BEGIN|BETWEEN|BREAK|BROWSE|BULK|BY|CASCADE|CASE|CHECK|CHECKPOINT|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMN|COMMIT|COMPUTE|CONSTRAINT|CONTAINS|CONTAINSTABLE|CONTINUE|CONVERT|CREATE|CROSS|CURRENT|CURRENT_DATE|CURRENT_TIME|CURRENT_TIMESTAMP|CURRENT_USER|CURSOR|DATABASE|DBCC|DEALLOCATE|DECLARE|DEFAULT|DELETE|DENY|DESC|DISK|DISTINCT|DISTRIBUTED|DOUBLE|DROP|DUMMY|DUMP|ELSE|END|ERRLVL|ESCAPE|EXCEPT|EXEC|EXECUTE|EXISTS|EXIT|FETCH|FILE|FILLFACTOR|FOR|FOREIGN|FREETEXT|FREETEXTTABLE|FROM|FULL|FUNCTION|GOTO|GRANT|GROUP|HAVING|HOLDLOCK|IDENTITY|IDENTITYCOL|IDENTITY_INSERT|IF|IN|INDEX|INNER|INSERT|INTERSECT|INTO|IS|JOIN|KEY|KILL|LEFT|LIKE|LINENO|LOAD|NATIONAL|NOCHECK|NONCLUSTERED|NOT|NULL|NULLIF|OF|OFF|OFFSETS|ON|OPEN|OPENDATASOURCE|OPENQUERY|OPENROWSET|OPENXML|OPTION|OR|ORDER|OUTER|OVER|PERCENT|PLAN|PRECISION|PRIMARY|PRINT|PROC|PROCEDURE|PUBLIC|RAISERROR|READ|READTEXT|RECONFIGURE|REFERENCES|REPLICATION|RESTORE|RESTRICT|RETURN|REVOKE|RIGHT|ROLLBACK|ROWCOUNT|ROWGUIDCOL|RULE|SAVE|SCHEMA|SELECT|SESSION_USER|SET|SETUSER|SHUTDOWN|SOME|STATISTICS|SYSTEM_USER|TABLE|TEXTSIZE|THEN|TO|TOP|TRAN|TRANSACTION|TRIGGER|TRUNCATE|TSEQUAL|UNION|UNIQUE|UPDATE|UPDATETEXT|USE|USER|VALUES|VARYING|VIEW|WAITFOR|WHEN|WHERE|WHILE|WITH|WRITETEXT)(?=[^\w-]|$)/i,null],[PR.PR_LITERAL,/^[+-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],[PR.PR_PLAIN,/^[a-z_][\w-]*/i],[PR.PR_PUNCTUATION,/^[^\w\t\n\r \xA0\"\'][^\w\t\n\r \xA0+\-\"\']*/]]),['sql'])
        +
        +
        +// VB extension
        +
        +PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\r \xA0\u2028\u2029]+/,null,'	\n\r \xa0\u2028\u2029'],[PR.PR_STRING,/^(?:[\"\u201C\u201D](?:[^\"\u201C\u201D]|[\"\u201C\u201D]{2})(?:[\"\u201C\u201D]c|$)|[\"\u201C\u201D](?:[^\"\u201C\u201D]|[\"\u201C\u201D]{2})*(?:[\"\u201C\u201D]|$))/i,null,'\"\u201c\u201d'],[PR.PR_COMMENT,/^[\'\u2018\u2019][^\r\n\u2028\u2029]*/,null,'\'\u2018\u2019']],[[PR.PR_KEYWORD,/^(?:AddHandler|AddressOf|Alias|And|AndAlso|Ansi|As|Assembly|Auto|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|CBool|CByte|CChar|CDate|CDbl|CDec|Char|CInt|Class|CLng|CObj|Const|CShort|CSng|CStr|CType|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else|ElseIf|End|EndIf|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get|GetType|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|Let|Lib|Like|Long|Loop|Me|Mod|Module|MustInherit|MustOverride|MyBase|MyClass|Namespace|New|Next|Not|NotInheritable|NotOverridable|Object|On|Option|Optional|Or|OrElse|Overloads|Overridable|Overrides|ParamArray|Preserve|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|Select|Set|Shadows|Shared|Short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TypeOf|Unicode|Until|Variant|Wend|When|While|With|WithEvents|WriteOnly|Xor|EndIf|GoSub|Let|Variant|Wend)\b/i,null],[PR.PR_COMMENT,/^REM[^\r\n\u2028\u2029]*/i],[PR.PR_LITERAL,/^(?:True\b|False\b|Nothing\b|\d+(?:E[+\-]?\d+[FRD]?|[FRDSIL])?|(?:&H[0-9A-F]+|&O[0-7]+)[SIL]?|\d*\.\d+(?:E[+\-]?\d+)?[FRD]?|#\s+(?:\d+[\-\/]\d+[\-\/]\d+(?:\s+\d+:\d+(?::\d+)?(\s*(?:AM|PM))?)?|\d+:\d+(?::\d+)?(\s*(?:AM|PM))?)\s+#)/i],[PR.PR_PLAIN,/^(?:(?:[a-z]|_\w)\w*|\[(?:[a-z]|_\w)\w*\])/i],[PR.PR_PUNCTUATION,/^[^\w\t\n\r \"\'\[\]\xA0\u2018\u2019\u201C\u201D\u2028\u2029]+/],[PR.PR_PUNCTUATION,/^(?:\[|\])/]]),['vb','vbs'])
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/JavaScript/NaturalDocs.js b/lib/ann/fann/docs/NaturalDocs-1.52/JavaScript/NaturalDocs.js
        new file mode 100755
        index 0000000..3f42acd
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/JavaScript/NaturalDocs.js
        @@ -0,0 +1,841 @@
        +// This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +// Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +// Refer to License.txt for the complete details
        +
        +// This file may be distributed with documentation files generated by Natural Docs.
        +// Such documentation is not covered by Natural Docs' copyright and licensing,
        +// and may have its own copyright and distribution terms as decided by its author.
        +
        +
        +//
        +//  Browser Styles
        +// ____________________________________________________________________________
        +
        +var agt=navigator.userAgent.toLowerCase();
        +var browserType;
        +var browserVer;
        +
        +if (agt.indexOf("opera") != -1)
        +    {
        +    browserType = "Opera";
        +
        +    if (agt.indexOf("opera 7") != -1 || agt.indexOf("opera/7") != -1)
        +        {  browserVer = "Opera7";  }
        +    else if (agt.indexOf("opera 8") != -1 || agt.indexOf("opera/8") != -1)
        +        {  browserVer = "Opera8";  }
        +    else if (agt.indexOf("opera 9") != -1 || agt.indexOf("opera/9") != -1)
        +        {  browserVer = "Opera9";  }
        +    }
        +
        +else if (agt.indexOf("applewebkit") != -1)
        +    {
        +    browserType = "Safari";
        +
        +    if (agt.indexOf("version/3") != -1)
        +        {  browserVer = "Safari3";  }
        +    else if (agt.indexOf("safari/4") != -1)
        +        {  browserVer = "Safari2";  }
        +    }
        +
        +else if (agt.indexOf("khtml") != -1)
        +    {
        +    browserType = "Konqueror";
        +    }
        +
        +else if (agt.indexOf("msie") != -1)
        +    {
        +    browserType = "IE";
        +
        +    if (agt.indexOf("msie 6") != -1)
        +        {  browserVer = "IE6";  }
        +    else if (agt.indexOf("msie 7") != -1)
        +        {  browserVer = "IE7";  }
        +    }
        +
        +else if (agt.indexOf("gecko") != -1)
        +    {
        +    browserType = "Firefox";
        +
        +    if (agt.indexOf("rv:1.7") != -1)
        +        {  browserVer = "Firefox1";  }
        +    else if (agt.indexOf("rv:1.8)") != -1 || agt.indexOf("rv:1.8.0") != -1)
        +        {  browserVer = "Firefox15";  }
        +    else if (agt.indexOf("rv:1.8.1") != -1)
        +        {  browserVer = "Firefox2";  }
        +    }
        +
        +
        +//
        +//  Support Functions
        +// ____________________________________________________________________________
        +
        +
        +function GetXPosition(item)
        +    {
        +    var position = 0;
        +
        +    if (item.offsetWidth != null)
        +        {
        +        while (item != document.body && item != null)
        +            {
        +            position += item.offsetLeft;
        +            item = item.offsetParent;
        +            };
        +        };
        +
        +    return position;
        +    };
        +
        +
        +function GetYPosition(item)
        +    {
        +    var position = 0;
        +
        +    if (item.offsetWidth != null)
        +        {
        +        while (item != document.body && item != null)
        +            {
        +            position += item.offsetTop;
        +            item = item.offsetParent;
        +            };
        +        };
        +
        +    return position;
        +    };
        +
        +
        +function MoveToPosition(item, x, y)
        +    {
        +    // Opera 5 chokes on the px extension, so it can use the Microsoft one instead.
        +
        +    if (item.style.left != null)
        +        {
        +        item.style.left = x + "px";
        +        item.style.top = y + "px";
        +        }
        +    else if (item.style.pixelLeft != null)
        +        {
        +        item.style.pixelLeft = x;
        +        item.style.pixelTop = y;
        +        };
        +    };
        +
        +
        +//
        +//  Menu
        +// ____________________________________________________________________________
        +
        +
        +function ToggleMenu(id)
        +    {
        +    if (!window.document.getElementById)
        +        {  return;  };
        +
        +    var display = window.document.getElementById(id).style.display;
        +
        +    if (display == "none")
        +        {  display = "block";  }
        +    else
        +        {  display = "none";  }
        +
        +    window.document.getElementById(id).style.display = display;
        +    }
        +
        +function HideAllBut(ids, max)
        +    {
        +    if (document.getElementById)
        +        {
        +        ids.sort( function(a,b) { return a - b; } );
        +        var number = 1;
        +
        +        while (number < max)
        +            {
        +            if (ids.length > 0 && number == ids[0])
        +                {  ids.shift();  }
        +            else
        +                {
        +                document.getElementById("MGroupContent" + number).style.display = "none";
        +                };
        +
        +            number++;
        +            };
        +        };
        +    }
        +
        +
        +//
        +//  Tooltips
        +// ____________________________________________________________________________
        +
        +
        +var tooltipTimer = 0;
        +
        +function ShowTip(event, tooltipID, linkID)
        +    {
        +    if (tooltipTimer)
        +        {  clearTimeout(tooltipTimer);  };
        +
        +    var docX = event.clientX + window.pageXOffset;
        +    var docY = event.clientY + window.pageYOffset;
        +
        +    var showCommand = "ReallyShowTip('" + tooltipID + "', '" + linkID + "', " + docX + ", " + docY + ")";
        +
        +    tooltipTimer = setTimeout(showCommand, 1000);
        +    }
        +
        +function ReallyShowTip(tooltipID, linkID, docX, docY)
        +    {
        +    tooltipTimer = 0;
        +
        +    var tooltip;
        +    var link;
        +
        +    if (document.getElementById)
        +        {
        +        tooltip = document.getElementById(tooltipID);
        +        link = document.getElementById(linkID);
        +        }
        +/*    else if (document.all)
        +        {
        +        tooltip = eval("document.all['" + tooltipID + "']");
        +        link = eval("document.all['" + linkID + "']");
        +        }
        +*/
        +    if (tooltip)
        +        {
        +        var left = GetXPosition(link);
        +        var top = GetYPosition(link);
        +        top += link.offsetHeight;
        +
        +
        +        // The fallback method is to use the mouse X and Y relative to the document.  We use a separate if and test if its a number
        +        // in case some browser snuck through the above if statement but didn't support everything.
        +
        +        if (!isFinite(top) || top == 0)
        +            {
        +            left = docX;
        +            top = docY;
        +            }
        +
        +        // Some spacing to get it out from under the cursor.
        +
        +        top += 10;
        +
        +        // Make sure the tooltip doesnt get smushed by being too close to the edge, or in some browsers, go off the edge of the
        +        // page.  We do it here because Konqueror does get offsetWidth right even if it doesnt get the positioning right.
        +
        +        if (tooltip.offsetWidth != null)
        +            {
        +            var width = tooltip.offsetWidth;
        +            var docWidth = document.body.clientWidth;
        +
        +            if (left + width > docWidth)
        +                {  left = docWidth - width - 1;  }
        +
        +            // If there's a horizontal scroll bar we could go past zero because it's using the page width, not the window width.
        +            if (left < 0)
        +                {  left = 0;  };
        +            }
        +
        +        MoveToPosition(tooltip, left, top);
        +        tooltip.style.visibility = "visible";
        +        }
        +    }
        +
        +function HideTip(tooltipID)
        +    {
        +    if (tooltipTimer)
        +        {
        +        clearTimeout(tooltipTimer);
        +        tooltipTimer = 0;
        +        }
        +
        +    var tooltip;
        +
        +    if (document.getElementById)
        +        {  tooltip = document.getElementById(tooltipID); }
        +    else if (document.all)
        +        {  tooltip = eval("document.all['" + tooltipID + "']");  }
        +
        +    if (tooltip)
        +        {  tooltip.style.visibility = "hidden";  }
        +    }
        +
        +
        +//
        +//  Blockquote fix for IE
        +// ____________________________________________________________________________
        +
        +
        +function NDOnLoad()
        +    {
        +    if (browserVer == "IE6")
        +        {
        +        var scrollboxes = document.getElementsByTagName('blockquote');
        +
        +        if (scrollboxes.item(0))
        +            {
        +            NDDoResize();
        +            window.onresize=NDOnResize;
        +            };
        +        };
        +    };
        +
        +
        +var resizeTimer = 0;
        +
        +function NDOnResize()
        +    {
        +    if (resizeTimer != 0)
        +        {  clearTimeout(resizeTimer);  };
        +
        +    resizeTimer = setTimeout(NDDoResize, 250);
        +    };
        +
        +
        +function NDDoResize()
        +    {
        +    var scrollboxes = document.getElementsByTagName('blockquote');
        +
        +    var i;
        +    var item;
        +
        +    i = 0;
        +    while (item = scrollboxes.item(i))
        +        {
        +        item.style.width = 100;
        +        i++;
        +        };
        +
        +    i = 0;
        +    while (item = scrollboxes.item(i))
        +        {
        +        item.style.width = item.parentNode.offsetWidth;
        +        i++;
        +        };
        +
        +    clearTimeout(resizeTimer);
        +    resizeTimer = 0;
        +    }
        +
        +
        +
        +/* ________________________________________________________________________________________________________
        +
        +    Class: SearchPanel
        +    ________________________________________________________________________________________________________
        +
        +    A class handling everything associated with the search panel.
        +
        +    Parameters:
        +
        +        name - The name of the global variable that will be storing this instance.  Is needed to be able to set timeouts.
        +        mode - The mode the search is going to work in.  Pass <NaturalDocs::Builder::Base->CommandLineOption()>, so the
        +                   value will be something like "HTML" or "FramedHTML".
        +
        +    ________________________________________________________________________________________________________
        +*/
        +
        +
        +function SearchPanel(name, mode, resultsPath)
        +    {
        +    if (!name || !mode || !resultsPath)
        +        {  alert("Incorrect parameters to SearchPanel.");  };
        +
        +
        +    // Group: Variables
        +    // ________________________________________________________________________
        +
        +    /*
        +        var: name
        +        The name of the global variable that will be storing this instance of the class.
        +    */
        +    this.name = name;
        +
        +    /*
        +        var: mode
        +        The mode the search is going to work in, such as "HTML" or "FramedHTML".
        +    */
        +    this.mode = mode;
        +
        +    /*
        +        var: resultsPath
        +        The relative path from the current HTML page to the results page directory.
        +    */
        +    this.resultsPath = resultsPath;
        +
        +    /*
        +        var: keyTimeout
        +        The timeout used between a keystroke and when a search is performed.
        +    */
        +    this.keyTimeout = 0;
        +
        +    /*
        +        var: keyTimeoutLength
        +        The length of <keyTimeout> in thousandths of a second.
        +    */
        +    this.keyTimeoutLength = 500;
        +
        +    /*
        +        var: lastSearchValue
        +        The last search string executed, or an empty string if none.
        +    */
        +    this.lastSearchValue = "";
        +
        +    /*
        +        var: lastResultsPage
        +        The last results page.  The value is only relevant if <lastSearchValue> is set.
        +    */
        +    this.lastResultsPage = "";
        +
        +    /*
        +        var: deactivateTimeout
        +
        +        The timeout used between when a control is deactivated and when the entire panel is deactivated.  Is necessary
        +        because a control may be deactivated in favor of another control in the same panel, in which case it should stay
        +        active.
        +    */
        +    this.deactivateTimout = 0;
        +
        +    /*
        +        var: deactivateTimeoutLength
        +        The length of <deactivateTimeout> in thousandths of a second.
        +    */
        +    this.deactivateTimeoutLength = 200;
        +
        +
        +
        +
        +    // Group: DOM Elements
        +    // ________________________________________________________________________
        +
        +
        +    // Function: DOMSearchField
        +    this.DOMSearchField = function()
        +        {  return document.getElementById("MSearchField");  };
        +
        +    // Function: DOMSearchType
        +    this.DOMSearchType = function()
        +        {  return document.getElementById("MSearchType");  };
        +
        +    // Function: DOMPopupSearchResults
        +    this.DOMPopupSearchResults = function()
        +        {  return document.getElementById("MSearchResults");  };
        +
        +    // Function: DOMPopupSearchResultsWindow
        +    this.DOMPopupSearchResultsWindow = function()
        +        {  return document.getElementById("MSearchResultsWindow");  };
        +
        +    // Function: DOMSearchPanel
        +    this.DOMSearchPanel = function()
        +        {  return document.getElementById("MSearchPanel");  };
        +
        +
        +
        +
        +    // Group: Event Handlers
        +    // ________________________________________________________________________
        +
        +
        +    /*
        +        Function: OnSearchFieldFocus
        +        Called when focus is added or removed from the search field.
        +    */
        +    this.OnSearchFieldFocus = function(isActive)
        +        {
        +        this.Activate(isActive);
        +        };
        +
        +
        +    /*
        +        Function: OnSearchFieldChange
        +        Called when the content of the search field is changed.
        +    */
        +    this.OnSearchFieldChange = function()
        +        {
        +        if (this.keyTimeout)
        +            {
        +            clearTimeout(this.keyTimeout);
        +            this.keyTimeout = 0;
        +            };
        +
        +        var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
        +
        +        if (searchValue != this.lastSearchValue)
        +            {
        +            if (searchValue != "")
        +                {
        +                this.keyTimeout = setTimeout(this.name + ".Search()", this.keyTimeoutLength);
        +                }
        +            else
        +                {
        +                if (this.mode == "HTML")
        +                    {  this.DOMPopupSearchResultsWindow().style.display = "none";  };
        +                this.lastSearchValue = "";
        +                };
        +            };
        +        };
        +
        +
        +    /*
        +        Function: OnSearchTypeFocus
        +        Called when focus is added or removed from the search type.
        +    */
        +    this.OnSearchTypeFocus = function(isActive)
        +        {
        +        this.Activate(isActive);
        +        };
        +
        +
        +    /*
        +        Function: OnSearchTypeChange
        +        Called when the search type is changed.
        +    */
        +    this.OnSearchTypeChange = function()
        +        {
        +        var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
        +
        +        if (searchValue != "")
        +            {
        +            this.Search();
        +            };
        +        };
        +
        +
        +
        +    // Group: Action Functions
        +    // ________________________________________________________________________
        +
        +
        +    /*
        +        Function: CloseResultsWindow
        +        Closes the results window.
        +    */
        +    this.CloseResultsWindow = function()
        +        {
        +        this.DOMPopupSearchResultsWindow().style.display = "none";
        +        this.Activate(false, true);
        +        };
        +
        +
        +    /*
        +        Function: Search
        +        Performs a search.
        +    */
        +    this.Search = function()
        +        {
        +        this.keyTimeout = 0;
        +
        +        var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
        +        var searchTopic = this.DOMSearchType().value;
        +
        +        var pageExtension = searchValue.substr(0,1);
        +
        +        if (pageExtension.match(/^[a-z]/i))
        +            {  pageExtension = pageExtension.toUpperCase();  }
        +        else if (pageExtension.match(/^[0-9]/))
        +            {  pageExtension = 'Numbers';  }
        +        else
        +            {  pageExtension = "Symbols";  };
        +
        +        var resultsPage;
        +        var resultsPageWithSearch;
        +        var hasResultsPage;
        +
        +        // indexSectionsWithContent is defined in searchdata.js
        +        if (indexSectionsWithContent[searchTopic][pageExtension] == true)
        +            {
        +            resultsPage = this.resultsPath + '/' + searchTopic + pageExtension + '.html';
        +            resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
        +            hasResultsPage = true;
        +            }
        +        else
        +            {
        +            resultsPage = this.resultsPath + '/NoResults.html';
        +            resultsPageWithSearch = resultsPage;
        +            hasResultsPage = false;
        +            };
        +
        +        var resultsFrame;
        +        if (this.mode == "HTML")
        +            {  resultsFrame = window.frames.MSearchResults;  }
        +        else if (this.mode == "FramedHTML")
        +            {  resultsFrame = window.top.frames['Content'];  };
        +
        +
        +        if (resultsPage != this.lastResultsPage ||
        +
        +            // Bug in IE.  If everything becomes hidden in a run, none of them will be able to be reshown in the next for some
        +            // reason.  It counts the right number of results, and you can even read the display as "block" after setting it, but it
        +            // just doesn't work in IE 6 or IE 7.  So if we're on the right page but the previous search had no results, reload the
        +            // page anyway to get around the bug.
        +            (browserType == "IE" && hasResultsPage &&
        +            	(!resultsFrame.searchResults || resultsFrame.searchResults.lastMatchCount == 0)) )
        +
        +            {
        +            resultsFrame.location.href = resultsPageWithSearch;
        +            }
        +
        +        // So if the results page is right and there's no IE bug, reperform the search on the existing page.  We have to check if there
        +        // are results because NoResults.html doesn't have any JavaScript, and it would be useless to do anything on that page even
        +        // if it did.
        +        else if (hasResultsPage)
        +            {
        +            // We need to check if this exists in case the frame is present but didn't finish loading.
        +            if (resultsFrame.searchResults)
        +                {  resultsFrame.searchResults.Search(searchValue);  }
        +
        +            // Otherwise just reload instead of waiting.
        +            else
        +                {  resultsFrame.location.href = resultsPageWithSearch;  };
        +            };
        +
        +
        +        var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
        +
        +        if (this.mode == "HTML" && domPopupSearchResultsWindow.style.display != "block")
        +            {
        +            var domSearchType = this.DOMSearchType();
        +
        +            var left = GetXPosition(domSearchType);
        +            var top = GetYPosition(domSearchType) + domSearchType.offsetHeight;
        +
        +            MoveToPosition(domPopupSearchResultsWindow, left, top);
        +            domPopupSearchResultsWindow.style.display = 'block';
        +            };
        +
        +
        +        this.lastSearchValue = searchValue;
        +        this.lastResultsPage = resultsPage;
        +        };
        +
        +
        +
        +    // Group: Activation Functions
        +    // Functions that handle whether the entire panel is active or not.
        +    // ________________________________________________________________________
        +
        +
        +    /*
        +        Function: Activate
        +
        +        Activates or deactivates the search panel, resetting things to their default values if necessary.  You can call this on every
        +        control's OnBlur() and it will handle not deactivating the entire panel when focus is just switching between them transparently.
        +
        +        Parameters:
        +
        +            isActive - Whether you're activating or deactivating the panel.
        +            ignoreDeactivateDelay - Set if you're positive the action will deactivate the panel and thus want to skip the delay.
        +    */
        +    this.Activate = function(isActive, ignoreDeactivateDelay)
        +        {
        +        // We want to ignore isActive being false while the results window is open.
        +        if (isActive || (this.mode == "HTML" && this.DOMPopupSearchResultsWindow().style.display == "block"))
        +            {
        +            if (this.inactivateTimeout)
        +                {
        +                clearTimeout(this.inactivateTimeout);
        +                this.inactivateTimeout = 0;
        +                };
        +
        +            this.DOMSearchPanel().className = 'MSearchPanelActive';
        +
        +            var searchField = this.DOMSearchField();
        +
        +            if (searchField.value == 'Search')
        +                 {  searchField.value = "";  }
        +            }
        +        else if (!ignoreDeactivateDelay)
        +            {
        +            this.inactivateTimeout = setTimeout(this.name + ".InactivateAfterTimeout()", this.inactivateTimeoutLength);
        +            }
        +        else
        +            {
        +            this.InactivateAfterTimeout();
        +            };
        +        };
        +
        +
        +    /*
        +        Function: InactivateAfterTimeout
        +
        +        Called by <inactivateTimeout>, which is set by <Activate()>.  Inactivation occurs on a timeout because a control may
        +        receive OnBlur() when focus is really transferring to another control in the search panel.  In this case we don't want to
        +        actually deactivate the panel because not only would that cause a visible flicker but it could also reset the search value.
        +        So by doing it on a timeout instead, there's a short period where the second control's OnFocus() can cancel the deactivation.
        +    */
        +    this.InactivateAfterTimeout = function()
        +        {
        +        this.inactivateTimeout = 0;
        +
        +        this.DOMSearchPanel().className = 'MSearchPanelInactive';
        +        this.DOMSearchField().value = "Search";
        +
        +	    this.lastSearchValue = "";
        +	    this.lastResultsPage = "";
        +        };
        +    };
        +
        +
        +
        +
        +/* ________________________________________________________________________________________________________
        +
        +   Class: SearchResults
        +   _________________________________________________________________________________________________________
        +
        +   The class that handles everything on the search results page.
        +   _________________________________________________________________________________________________________
        +*/
        +
        +
        +function SearchResults(name, mode)
        +    {
        +    /*
        +        var: mode
        +        The mode the search is going to work in, such as "HTML" or "FramedHTML".
        +    */
        +    this.mode = mode;
        +
        +    /*
        +        var: lastMatchCount
        +        The number of matches from the last run of <Search()>.
        +    */
        +    this.lastMatchCount = 0;
        +
        +
        +    /*
        +        Function: Toggle
        +        Toggles the visibility of the passed element ID.
        +    */
        +    this.Toggle = function(id)
        +        {
        +        if (this.mode == "FramedHTML")
        +            {  return;  };
        +
        +        var parentElement = document.getElementById(id);
        +
        +        var element = parentElement.firstChild;
        +
        +        while (element && element != parentElement)
        +            {
        +            if (element.nodeName == 'DIV' && element.className == 'ISubIndex')
        +                {
        +                if (element.style.display == 'block')
        +                    {  element.style.display = "none";  }
        +                else
        +                    {  element.style.display = 'block';  }
        +                };
        +
        +            if (element.nodeName == 'DIV' && element.hasChildNodes())
        +                {  element = element.firstChild;  }
        +            else if (element.nextSibling)
        +                {  element = element.nextSibling;  }
        +            else
        +                {
        +                do
        +                    {
        +                    element = element.parentNode;
        +                    }
        +                while (element && element != parentElement && !element.nextSibling);
        +
        +                if (element && element != parentElement)
        +                    {  element = element.nextSibling;  };
        +                };
        +            };
        +        };
        +
        +
        +    /*
        +        Function: Search
        +
        +        Searches for the passed string.  If there is no parameter, it takes it from the URL query.
        +
        +        Always returns true, since other documents may try to call it and that may or may not be possible.
        +    */
        +    this.Search = function(search)
        +        {
        +        if (!search)
        +            {
        +            search = window.location.search;
        +            search = search.substring(1);  // Remove the leading ?
        +            search = unescape(search);
        +            };
        +
        +        search = search.replace(/^ +/, "");
        +        search = search.replace(/ +$/, "");
        +        search = search.toLowerCase();
        +
        +        if (search.match(/[^a-z0-9]/)) // Just a little speedup so it doesn't have to go through the below unnecessarily.
        +            {
        +            search = search.replace(/\_/g, "_und");
        +            search = search.replace(/\ +/gi, "_spc");
        +            search = search.replace(/\~/g, "_til");
        +            search = search.replace(/\!/g, "_exc");
        +            search = search.replace(/\@/g, "_att");
        +            search = search.replace(/\#/g, "_num");
        +            search = search.replace(/\$/g, "_dol");
        +            search = search.replace(/\%/g, "_pct");
        +            search = search.replace(/\^/g, "_car");
        +            search = search.replace(/\&/g, "_amp");
        +            search = search.replace(/\*/g, "_ast");
        +            search = search.replace(/\(/g, "_lpa");
        +            search = search.replace(/\)/g, "_rpa");
        +            search = search.replace(/\-/g, "_min");
        +            search = search.replace(/\+/g, "_plu");
        +            search = search.replace(/\=/g, "_equ");
        +            search = search.replace(/\{/g, "_lbc");
        +            search = search.replace(/\}/g, "_rbc");
        +            search = search.replace(/\[/g, "_lbk");
        +            search = search.replace(/\]/g, "_rbk");
        +            search = search.replace(/\:/g, "_col");
        +            search = search.replace(/\;/g, "_sco");
        +            search = search.replace(/\"/g, "_quo");
        +            search = search.replace(/\'/g, "_apo");
        +            search = search.replace(/\</g, "_lan");
        +            search = search.replace(/\>/g, "_ran");
        +            search = search.replace(/\,/g, "_com");
        +            search = search.replace(/\./g, "_per");
        +            search = search.replace(/\?/g, "_que");
        +            search = search.replace(/\//g, "_sla");
        +            search = search.replace(/[^a-z0-9\_]i/gi, "_zzz");
        +            };
        +
        +        var resultRows = document.getElementsByTagName("div");
        +        var matches = 0;
        +
        +        var i = 0;
        +        while (i < resultRows.length)
        +            {
        +            var row = resultRows.item(i);
        +
        +            if (row.className == "SRResult")
        +                {
        +                var rowMatchName = row.id.toLowerCase();
        +                rowMatchName = rowMatchName.replace(/^sr\d*_/, '');
        +
        +                if (search.length <= rowMatchName.length && rowMatchName.substr(0, search.length) == search)
        +                    {
        +                    row.style.display = "block";
        +                    matches++;
        +                    }
        +                else
        +                    {  row.style.display = "none";  };
        +                };
        +
        +            i++;
        +            };
        +
        +        document.getElementById("Searching").style.display="none";
        +
        +        if (matches == 0)
        +            {  document.getElementById("NoMatches").style.display="block";  }
        +        else
        +            {  document.getElementById("NoMatches").style.display="none";  }
        +
        +        this.lastMatchCount = matches;
        +
        +        return true;
        +        };
        +    };
        +
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/License.txt b/lib/ann/fann/docs/NaturalDocs-1.52/License.txt
        new file mode 100755
        index 0000000..70aabbe
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/License.txt
        @@ -0,0 +1,275 @@
        +Title: License
        +
        +Natural Docs is Copyright © 2003-2010 Greg Valure.  Natural Docs is licensed under version 3 of the GNU
        +Affero General Public License (AGPL).
        +
        +Natural Docs incorporates code from Google Prettify, which is Copyright © 2006 Google Inc.  Google Prettify
        +may be obtained separately under version 2.0 of the Apache License.  However, this combined product is still
        +licensed under the terms of the AGPLv3.
        +
        +Portions of Natural Docs may be distributed with generated documentation files in order to help them function,
        +such as JavaScript and CSS files.  These individual files retain their copyright and licensing terms, but they do
        +not apply to the remainder of the generated documentation.  All other generated documentation files remain
        +under the copyright and distribution terms decided by its author(s).
        +
        +
        +Topic: GNU Affero General Public License
        +
        +	Version 3, 19 November 2007
        +
        +	Copyright © 2007 Free Software Foundation, Inc.  <http://fsf.org/>
        +
        +	Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
        +
        +
        +	Preamble:
        +
        +	The GNU Affero General Public License is a free, copyleft license for software and other kinds of works, specifically designed to ensure cooperation with the community in the case of network server software.
        +
        +	The licenses for most software and other practical works are designed to take away your freedom to share and change the works.  By contrast, our General Public Licenses are intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users.
        +
        +	When we speak of free software, we are referring to freedom, not price.  Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things.
        +
        +	Developers that use our General Public Licenses protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License which gives you legal permission to copy, distribute and/or modify the software.
        +
        +	A secondary benefit of defending all users' freedom is that improvements made in alternate versions of the program, if they receive widespread use, become available for other developers to incorporate.  Many developers of free software are heartened and encouraged by the resulting cooperation.  However, in the case of software used on network servers, this result may fail to come about. The GNU General Public License permits making a modified version and letting the public access it on a server without ever releasing its source code to the public.
        +
        +	The GNU Affero General Public License is designed specifically to ensure that, in such cases, the modified source code becomes available to the community.  It requires the operator of a network server to provide the source code of the modified version running there to the users of that server.  Therefore, public use of a modified version, on a publicly accessible server, gives the public access to the source code of the modified version.
        +
        +	An older license, called the Affero General Public License and published by Affero, was designed to accomplish similar goals.  This is a different license, not a version of the Affero GPL, but Affero has released a new version of the Affero GPL which permits relicensing under this license.
        +
        +	The precise terms and conditions for copying, distribution and modification follow.
        +
        +
        +	TERMS AND CONDITIONS:
        +
        +	0. Definitions:
        +
        +	"This License" refers to version 3 of the GNU Affero General Public License.
        +
        +	"Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks.
        +
        +	"The Program" refers to any copyrightable work licensed under this License.  Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations
        +
        +	To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy.  The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work.
        +
        +	A "covered work" means either the unmodified Program or a work based on the Program.
        +
        +	To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy.  Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well.
        +
        +	To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.
        +
        +	An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this
        +	License, and how to view a copy of this License.  If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion.
        +
        +
        +	1. Source Code:
        +
        +	The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work.
        +
        +	A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language.
        +
        +	The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it.
        +
        +	The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work.
        +
        +	The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source.
        +
        +	The Corresponding Source for a work in source code form is that same work.
        +
        +
        +	2. Basic Permissions:
        +
        +	All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law.
        +
        +	You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you.
        +
        +	Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary.
        +
        +
        +	3. Protecting Users' Legal Rights From Anti-Circumvention Law:
        +
        +	No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures.
        +
        +	When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures.
        +
        +
        +	4. Conveying Verbatim Copies:
        +
        +	You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program.
        +
        +	You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee.
        +
        +
        +	5. Conveying Modified Source Versions:
        +
        +	You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code
        +under the terms of section 4, provided that you also meet all of these conditions:
        +
        +	    * a) The work must carry prominent notices stating that you modified it, and giving a relevant date.
        +	    * b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices".
        +	    * c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.
        +	    * d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so.
        +
        +	A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.
        +
        +
        +	6. Conveying Non-Source Forms:
        +
        +	You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the
        +machine-readable Corresponding Source under the terms of this License, in one of these ways:
        +
        +	    * a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange.
        +	    * b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge.
        +	    * c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b.
        +	    * d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements.
        +	    * e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d.
        +
        +	A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work.
        +
        +	A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product.
        +
        +	"Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.
        +
        +	If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM).
        +
        +	The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network.
        +
        +	Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying.
        +
        +
        +	7. Additional Terms:
        +
        +	"Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions.
        +
        +	When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission.
        +
        +	Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the
        +copyright holders of that material) supplement the terms of this License with terms:
        +
        +	    * a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or
        +	    * b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or
        +	    * c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or
        +	    * d) Limiting the use for publicity purposes of names of licensors or authors of the material; or
        +	    * e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or
        +	    * f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors.
        +
        +	All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying.
        +
        +	If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms.
        +
        +	Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way.
        +
        +
        +	8. Termination:
        +
        +	You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11).
        +
        +	However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.
        +
        +	Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.
        +
        +	Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10.
        +
        +
        +	9. Acceptance Not Required for Having Copies:
        +
        +	You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so.
        +
        +
        +	10. Automatic Licensing of Downstream Recipients:
        +
        +	Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License.
        +
        +	An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts.
        +
        +	You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it.
        +
        +
        +	11. Patents:
        +
        +	A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version".
        +
        +	A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License.
        +
        +	Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version.
        +
        +	In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party.
        +
        +	If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid.
        +
        +	If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it.
        +
        +	A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007.
        +
        +	Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law.
        +
        +
        +	12. No Surrender of Others' Freedom:
        +
        +	If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program.
        +
        +
        +	13. Remote Network Interaction; Use with the GNU General Public License:
        +
        +	Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software. This Corresponding Source shall include the Corresponding Source for any work covered by version 3 of the GNU General Public License that is incorporated pursuant to the following paragraph.
        +
        +	Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the work with which it is combined will remain governed by version 3 of the GNU General Public License.
        +
        +
        +	14. Revised Versions of this License:
        +
        +	The Free Software Foundation may publish revised and/or new versions of the GNU Affero General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
        +
        +	Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU Affero General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU Affero General Public License, you may choose any version ever published by the Free Software Foundation.
        +
        +	If the Program specifies that a proxy can decide which future versions of the GNU Affero General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program.
        +
        +	Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version.
        +
        +
        +	15. Disclaimer of Warranty:
        +
        +	THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
        +
        +
        +	16. Limitation of Liability:
        +
        +	IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
        +
        +
        +	17. Interpretation of Sections 15 and 16:
        +
        +	If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee.
        +
        +	END OF TERMS AND CONDITIONS
        +
        +
        +How to Apply These Terms to Your New Programs:
        +
        +If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.
        +
        +To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.
        +
        +    <one line to give the program's name and a brief idea of what it does.>
        +    Copyright (C) <year>  <name of author>
        +
        +    This program is free software: you can redistribute it and/or modify
        +    it under the terms of the GNU Affero General Public License as
        +    published by the Free Software Foundation, either version 3 of the
        +    License, or (at your option) any later version.
        +
        +    This program is distributed in the hope that it will be useful,
        +    but WITHOUT ANY WARRANTY; without even the implied warranty of
        +    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        +    GNU Affero General Public License for more details.
        +
        +    You should have received a copy of the GNU Affero General Public License
        +    along with this program.  If not, see <http://www.gnu.org/licenses/>.
        +
        +Also add information on how to contact you by electronic and paper mail.
        +
        +If your software can interact with users remotely through a computer network, you should also make sure that it provides a way for users to get its source. For example, if your program is a web application, its interface could display a "Source" link that leads users to an archive of the code. There are many ways you could offer source, and different solutions will be better for different programs; see section 13 for the specific requirements.
        +
        +You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU AGPL, see <http://www.gnu.org/licenses/>.
        +
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/BinaryFile.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/BinaryFile.pm
        new file mode 100755
        index 0000000..c37ddc1
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/BinaryFile.pm
        @@ -0,0 +1,337 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::BinaryFile
        +#
        +###############################################################################
        +#
        +#   A package to manage Natural Docs' binary data files.
        +#
        +#   Usage:
        +#
        +#       - Only one data file can be managed with this package at a time.  You must close the file before opening another
        +#         one.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::BinaryFile;
        +
        +use vars qw(@EXPORT @ISA);
        +require Exporter;
        +@ISA = qw(Exporter);
        +
        +@EXPORT = ('BINARY_FORMAT');
        +
        +use Encode qw(encode_utf8 decode_utf8);
        +
        +
        +###############################################################################
        +# Group: Format
        +
        +#
        +#   Topic: Standard Header
        +#
        +#   > [UInt8: BINARY_FORMAT]
        +#   > [VersionInt: app version]
        +#
        +#   The first byte is <BINARY_FORMAT>, which distinguishes binary configuration files from text ones, since Natural Docs
        +#   used to use text data files with the same name.
        +#
        +#   The next section is the version of Natural Docs that wrote the file, as defined by <NaturalDocs::Settings->AppVersion>
        +#   and written by <NaturalDocs::Version->ToBinaryFile()>.
        +#
        +
        +#
        +#   Topic: Data Types
        +#
        +#   All the integer data types are written most significant byte first, aka big endian.
        +#
        +#   An AString16 is a UInt16 followed by that many 8-bit ASCII characters.  It doesn't include a null character at the end.  Undef
        +#   strings are represented by a zero for the UInt16 and nothing following it.
        +#
        +#   A UString16 is a UInt16 followed by that many UTF-8 encoded bytes.  It doesn't include a null character at the end.  Undef
        +#   strings are represented by a zero for the UInt16 and nothing following it.
        +#
        +
        +#
        +#   Constant: BINARY_FORMAT
        +#
        +#   An 8-bit constant that's used as the first byte of binary data files.  This is used so that you can easily distinguish between
        +#   binary and old-style text data files.  It's not a character that would appear in plain text files.
        +#
        +use constant BINARY_FORMAT => pack('C', 0x06);
        +# Which is ACK or acknowledge in ASCII.  Is the cool spade character in DOS displays.
        +
        +
        +###############################################################################
        +# Group: Variables
        +
        +#
        +#   handle: FH_BINARYDATAFILE
        +#
        +#   The file handle used for the data file.
        +#
        +
        +
        +#
        +#   string: currentFile
        +#
        +#   The <FileName> for the current configuration file being parsed.
        +#
        +my $currentFile;
        +
        +
        +
        +###############################################################################
        +# Group: File Functions
        +
        +
        +#
        +#   Function: OpenForReading
        +#
        +#   Opens a binary file for reading.
        +#
        +#   Parameters:
        +#
        +#       minimumVersion - The minimum version of the file format that is acceptible.  May be undef.
        +#
        +#   Returns:
        +#
        +#       The format <VersionInt> or undef if it failed.  It could fail for any of the following reasons.
        +#
        +#       - The file doesn't exist.
        +#       - The file couldn't be opened.
        +#       - The file didn't have the proper header.
        +#       - Either the application or the file was from a development release, and they're not the exact same development release.
        +#       - The file's format was less than the minimum version, if one was defined.
        +#       - The file was from a later application version than the current.
        +#
        +sub OpenForReading #(FileName file, optional VersionInt minimumVersion) => VersionInt
        +    {
        +    my ($self, $file, $minimumVersion) = @_;
        +
        +    if (defined $currentFile)
        +        {  die "Tried to open binary file " . $file . " for reading when " . $currentFile . " was already open.";  };
        +
        +    $currentFile = $file;
        +
        +    if (open(FH_BINARYDATAFILE, '<' . $currentFile))
        +        {
        +        # See if it's binary.
        +        binmode(FH_BINARYDATAFILE);
        +
        +        my $firstChar;
        +        read(FH_BINARYDATAFILE, $firstChar, 1);
        +
        +        if ($firstChar == ::BINARY_FORMAT())
        +            {
        +            my $version = NaturalDocs::Version->FromBinaryFile(\*FH_BINARYDATAFILE);
        +
        +            if (NaturalDocs::Version->CheckFileFormat($version, $minimumVersion))
        +                {  return $version;  };
        +            };
        +
        +        close(FH_BINARYDATAFILE);
        +        };
        +
        +    $currentFile = undef;
        +    return undef;
        +    };
        +
        +
        +#
        +#   Function: OpenForWriting
        +#
        +#   Opens a binary file for writing and writes the standard header.  Dies if the file cannot be opened.
        +#
        +sub OpenForWriting #(FileName file)
        +    {
        +    my ($self, $file) = @_;
        +
        +    if (defined $currentFile)
        +        {  die "Tried to open binary file " . $file . " for writing when " . $currentFile . " was already open.";  };
        +
        +    $currentFile = $file;
        +
        +    open (FH_BINARYDATAFILE, '>' . $currentFile)
        +        or die "Couldn't save " . $file . ".\n";
        +
        +    binmode(FH_BINARYDATAFILE);
        +
        +    print FH_BINARYDATAFILE '' . ::BINARY_FORMAT();
        +    NaturalDocs::Version->ToBinaryFile(\*FH_BINARYDATAFILE, NaturalDocs::Settings->AppVersion());
        +    };
        +
        +
        +#
        +#   Function: Close
        +#
        +#   Closes the current configuration file.
        +#
        +sub Close
        +    {
        +    my $self = shift;
        +
        +    if (!$currentFile)
        +        {  die "Tried to close a binary file when one wasn't open.";  };
        +
        +    close(FH_BINARYDATAFILE);
        +    $currentFile = undef;
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Reading Functions
        +
        +
        +#
        +#   Function: GetUInt8
        +#   Reads and returns a UInt8 from the open file.
        +#
        +sub GetUInt8 # => UInt8
        +    {
        +    my $raw;
        +    read(FH_BINARYDATAFILE, $raw, 1);
        +
        +    return unpack('C', $raw);
        +    };
        +
        +#
        +#   Function: GetUInt16
        +#   Reads and returns a UInt16 from the open file.
        +#
        +sub GetUInt16 # => UInt16
        +    {
        +    my $raw;
        +    read(FH_BINARYDATAFILE, $raw, 2);
        +
        +    return unpack('n', $raw);
        +    };
        +
        +#
        +#   Function: GetUInt32
        +#   Reads and returns a UInt32 from the open file.
        +#
        +sub GetUInt32 # => UInt32
        +    {
        +    my $raw;
        +    read(FH_BINARYDATAFILE, $raw, 4);
        +
        +    return unpack('N', $raw);
        +    };
        +
        +#
        +#   Function: GetAString16
        +#   Reads and returns an AString16 from the open file.  Supports undef strings.
        +#
        +sub GetAString16 # => string
        +    {
        +    my $rawLength;
        +    read(FH_BINARYDATAFILE, $rawLength, 2);
        +    my $length = unpack('n', $rawLength);
        +
        +    if (!$length)
        +        {  return undef;  };
        +
        +    my $string;
        +    read(FH_BINARYDATAFILE, $string, $length);
        +
        +    return $string;
        +    };
        +
        +#
        +#   Function: GetUString16
        +#   Reads and returns a UString16 from the open file.  Supports undef strings.
        +#
        +sub GetUString16 # => string
        +    {
        +    my $rawLength;
        +    read(FH_BINARYDATAFILE, $rawLength, 2);
        +    my $length = unpack('n', $rawLength);
        +
        +    if (!$length)
        +        {  return undef;  };
        +
        +    my $string;
        +    read(FH_BINARYDATAFILE, $string, $length);
        +	$string = decode_utf8($string);
        +
        +    return $string;
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Writing Functions
        +
        +
        +#
        +#   Function: WriteUInt8
        +#   Writes a UInt8 to the open file.
        +#
        +sub WriteUInt8 #(UInt8 value)
        +    {
        +    my ($self, $value) = @_;
        +    print FH_BINARYDATAFILE pack('C', $value);
        +    };
        +
        +#
        +#   Function: WriteUInt16
        +#   Writes a UInt32 to the open file.
        +#
        +sub WriteUInt16 #(UInt16 value)
        +    {
        +    my ($self, $value) = @_;
        +    print FH_BINARYDATAFILE pack('n', $value);
        +    };
        +
        +#
        +#   Function: WriteUInt32
        +#   Writes a UInt32 to the open file.
        +#
        +sub WriteUInt32 #(UInt32 value)
        +    {
        +    my ($self, $value) = @_;
        +    print FH_BINARYDATAFILE pack('N', $value);
        +    };
        +
        +#
        +#   Function: WriteAString16
        +#   Writes an AString16 to the open file.  Supports undef strings.
        +#
        +sub WriteAString16 #(string value)
        +    {
        +    my ($self, $string) = @_;
        +
        +    if (length($string))
        +        {  print FH_BINARYDATAFILE pack('nA*', length($string), $string);  }
        +    else
        +        {  print FH_BINARYDATAFILE pack('n', 0);  };
        +    };
        +
        +#
        +#   Function: WriteUString16
        +#   Writes an UString16 to the open file.  Supports undef strings.
        +#
        +sub WriteUString16 #(string value)
        +    {
        +    my ($self, $string) = @_;
        +
        +    if (length($string))
        +        {
        +        $string = encode_utf8($string);
        +        print FH_BINARYDATAFILE pack('na*', length($string), $string);
        +        }
        +    else
        +        {  print FH_BINARYDATAFILE pack('n', 0);  };
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Builder.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Builder.pm
        new file mode 100755
        index 0000000..e8b1cd3
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Builder.pm
        @@ -0,0 +1,281 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::Builder
        +#
        +###############################################################################
        +#
        +#   A package that takes parsed source file and builds the output for it.
        +#
        +#   Usage and Dependencies:
        +#
        +#       - <Add()> can be called immediately.
        +#       - <OutputPackages()> and <OutputPackageOf()> can be called once all sub-packages have been registered via <Add()>.
        +#         Since this is normally done in their INIT functions, they should be available to all normal functions immediately.
        +#
        +#       - Prior to calling <Run()>, <NaturalDocs::Settings>, <NaturalDocs::Project>, <NaturalDocs::Menu>, and
        +#         <NaturalDocs::Parser> must be initialized.  <NaturalDocs::Settings->GenerateDirectoryNames()> must be called.
        +#         <NaturalDocs::SymbolTable> and <NaturalDocs::ClassHierarchy> must be initialized and fully resolved.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +
        +use strict;
        +use integer;
        +
        +use NaturalDocs::Builder::Base;
        +use NaturalDocs::Builder::HTML;
        +use NaturalDocs::Builder::FramedHTML;
        +
        +package NaturalDocs::Builder;
        +
        +
        +###############################################################################
        +# Group: Variables
        +
        +#
        +#   Array: outputPackages
        +#
        +#   An array of the output packages available for use.
        +#
        +my @outputPackages;
        +
        +
        +###############################################################################
        +# Group: Functions
        +
        +
        +#
        +#   Function: OutputPackages
        +#
        +#   Returns an arrayref of the output packages available for use.  The arrayref is not a copy of the data, so don't change it.
        +#
        +#   Add output packages to this list with the <Add()> function.
        +#
        +sub OutputPackages
        +    {  return \@outputPackages;  };
        +
        +
        +#
        +#   Function: OutputPackageOf
        +#
        +#   Returns the output package corresponding to the passed command line option, or undef if none.
        +#
        +sub OutputPackageOf #(commandLineOption)
        +    {
        +    my ($self, $commandLineOption) = @_;
        +
        +    $commandLineOption = lc($commandLineOption);
        +
        +    foreach my $package (@outputPackages)
        +        {
        +        if (lc($package->CommandLineOption()) eq $commandLineOption)
        +            {  return $package;  };
        +        };
        +
        +    return undef;
        +    };
        +
        +
        +
        +#
        +#   Function: Add
        +#
        +#   Adds an output package to those available for use.  All output packages must call this function in order to be recognized.
        +#
        +#   Parameters:
        +#
        +#       package - The package name.
        +#
        +sub Add #(package)
        +    {
        +    my ($self, $package) = @_;
        +
        +    # Output packages shouldn't register themselves more than once, so we don't need to check for it.
        +    push @outputPackages, $package;
        +    };
        +
        +
        +#
        +#   Function: Run
        +#
        +#   Runs the build process.  This must be called *every time* Natural Docs is run, regardless of whether any source files changed
        +#   or not.  Some output packages have dependencies on files outside of the source tree that need to be checked.
        +#
        +#   Since there are multiple stages to the build process, this function will handle its own status messages.  There's no need to print
        +#   "Building files..." or something similar beforehand.
        +#
        +sub Run
        +    {
        +    my ($self) = @_;
        +
        +
        +    # Determine what we're doing.
        +
        +    my $buildTargets = NaturalDocs::Settings->BuildTargets();
        +
        +    my $filesToBuild = NaturalDocs::Project->FilesToBuild();
        +    my $numberOfFilesToBuild = (scalar keys %$filesToBuild) * (scalar @$buildTargets);
        +
        +    my $filesToPurge = NaturalDocs::Project->FilesToPurge();
        +    my $numberOfFilesToPurge = (scalar keys %$filesToPurge) * (scalar @$buildTargets);
        +
        +    my $imagesToUpdate = NaturalDocs::Project->ImageFilesToUpdate();
        +    my $numberOfImagesToUpdate = (scalar keys %$imagesToUpdate) * (scalar @$buildTargets);
        +
        +    my $imagesToPurge = NaturalDocs::Project->ImageFilesToPurge();
        +    my $numberOfImagesToPurge = (scalar keys %$imagesToPurge) * (scalar @$buildTargets);
        +
        +    my %indexesToBuild;
        +    my %indexesToPurge;
        +
        +    my $currentIndexes = NaturalDocs::Menu->Indexes();
        +    my $previousIndexes = NaturalDocs::Menu->PreviousIndexes();
        +
        +    foreach my $index (keys %$currentIndexes)
        +        {
        +        if (NaturalDocs::SymbolTable->IndexChanged($index) || !exists $previousIndexes->{$index})
        +            {
        +            $indexesToBuild{$index} = 1;
        +            };
        +        };
        +
        +    # All indexes that still exist should have been deleted.
        +    foreach my $index (keys %$previousIndexes)
        +        {
        +        if (!exists $currentIndexes->{$index})
        +            {
        +            $indexesToPurge{$index} = 1;
        +            };
        +        };
        +
        +    my $numberOfIndexesToBuild = (scalar keys %indexesToBuild) * (scalar @$buildTargets);
        +    my $numberOfIndexesToPurge = (scalar keys %indexesToPurge) * (scalar @$buildTargets);
        +
        +
        +    # Start the build process
        +
        +    foreach my $buildTarget (@$buildTargets)
        +        {
        +        $buildTarget->Builder()->BeginBuild( $numberOfFilesToBuild || $numberOfFilesToPurge ||
        +                                                               $numberOfImagesToUpdate || $numberOfImagesToPurge ||
        +                                                               $numberOfIndexesToBuild || $numberOfIndexesToPurge ||
        +                                                               NaturalDocs::Menu->HasChanged() );
        +        };
        +
        +    if ($numberOfFilesToPurge)
        +        {
        +        NaturalDocs::StatusMessage->Start('Purging ' . $numberOfFilesToPurge
        +                                                          . ' file' . ($numberOfFilesToPurge > 1 ? 's' : '') . '...',
        +                                                             scalar @$buildTargets);
        +
        +        foreach my $buildTarget (@$buildTargets)
        +            {
        +            $buildTarget->Builder()->PurgeFiles($filesToPurge);
        +            NaturalDocs::StatusMessage->CompletedItem();
        +            };
        +        };
        +
        +    if ($numberOfIndexesToPurge)
        +        {
        +        NaturalDocs::StatusMessage->Start('Purging ' . $numberOfIndexesToPurge
        +                                                           . ' index' . ($numberOfIndexesToPurge > 1 ? 'es' : '') . '...',
        +                                                             scalar @$buildTargets);
        +
        +        foreach my $buildTarget (@$buildTargets)
        +            {
        +            $buildTarget->Builder()->PurgeIndexes(\%indexesToPurge);
        +            NaturalDocs::StatusMessage->CompletedItem();
        +            };
        +        };
        +
        +    if ($numberOfImagesToPurge)
        +        {
        +        NaturalDocs::StatusMessage->Start('Purging ' . $numberOfImagesToPurge
        +                                                          . ' image' . ($numberOfImagesToPurge > 1 ? 's' : '') . '...',
        +                                                             scalar @$buildTargets);
        +
        +        foreach my $buildTarget (@$buildTargets)
        +            {
        +            $buildTarget->Builder()->PurgeImages($imagesToPurge);
        +            NaturalDocs::StatusMessage->CompletedItem();
        +            };
        +        };
        +
        +    if ($numberOfFilesToBuild)
        +        {
        +        NaturalDocs::StatusMessage->Start('Building ' . $numberOfFilesToBuild
        +                                                           . ' file' . ($numberOfFilesToBuild > 1 ? 's' : '') . '...',
        +                                                             $numberOfFilesToBuild);
        +
        +        foreach my $file (keys %$filesToBuild)
        +            {
        +            my $parsedFile = NaturalDocs::Parser->ParseForBuild($file);
        +
        +            NaturalDocs::Error->OnStartBuilding($file);
        +
        +            foreach my $buildTarget (@$buildTargets)
        +                {
        +                $buildTarget->Builder()->BuildFile($file, $parsedFile);
        +                NaturalDocs::StatusMessage->CompletedItem();
        +                };
        +
        +            NaturalDocs::Error->OnEndBuilding($file);
        +            };
        +        };
        +
        +    if ($numberOfIndexesToBuild)
        +        {
        +        NaturalDocs::StatusMessage->Start('Building ' . $numberOfIndexesToBuild
        +                                                          . ' index' . ($numberOfIndexesToBuild > 1 ? 'es' : '') . '...',
        +                                                             $numberOfIndexesToBuild);
        +
        +        foreach my $index (keys %indexesToBuild)
        +            {
        +            foreach my $buildTarget (@$buildTargets)
        +                {
        +                $buildTarget->Builder()->BuildIndex($index);
        +                NaturalDocs::StatusMessage->CompletedItem();
        +                };
        +            };
        +        };
        +
        +    if ($numberOfImagesToUpdate)
        +        {
        +        NaturalDocs::StatusMessage->Start('Updating ' . $numberOfImagesToUpdate
        +                                                          . ' image' . ($numberOfImagesToUpdate > 1 ? 's' : '') . '...',
        +                                                             $numberOfImagesToUpdate);
        +
        +        foreach my $image (keys %$imagesToUpdate)
        +            {
        +            foreach my $buildTarget (@$buildTargets)
        +                {
        +                $buildTarget->Builder()->UpdateImage($image);
        +                NaturalDocs::StatusMessage->CompletedItem();
        +                };
        +            };
        +        };
        +
        +    if (NaturalDocs::Menu->HasChanged())
        +        {
        +        if (!NaturalDocs::Settings->IsQuiet())
        +            {  print "Updating menu...\n";  };
        +
        +        foreach my $buildTarget (@$buildTargets)
        +            {  $buildTarget->Builder()->UpdateMenu();  };
        +        };
        +
        +    foreach my $buildTarget (@$buildTargets)
        +        {
        +        $buildTarget->Builder()->EndBuild($numberOfFilesToBuild || $numberOfFilesToPurge ||
        +                                                           $numberOfIndexesToBuild || $numberOfIndexesToPurge ||
        +                                                           $numberOfImagesToUpdate || $numberOfImagesToPurge ||
        +                                                           NaturalDocs::Menu->HasChanged());
        +        };
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Builder/Base.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Builder/Base.pm
        new file mode 100755
        index 0000000..75b3fd3
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Builder/Base.pm
        @@ -0,0 +1,349 @@
        +###############################################################################
        +#
        +#   Class: NaturalDocs::Builder::Base
        +#
        +###############################################################################
        +#
        +#   A base class for all Builder output formats.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::Builder::Base;
        +
        +
        +###############################################################################
        +# Group: Notes
        +
        +
        +#
        +#   Topic: Implementation
        +#
        +#   Builder packages are implemented as blessed arrayrefs, not hashrefs.  This is done for all objects in Natural Docs for
        +#   efficiency reasons.  You create members by defining constants via <NaturalDocs::DefineMembers> and using them as
        +#   indexes into the array.
        +#
        +
        +#
        +#   Topic: Function Order
        +#
        +#   The functions in the build process will always be called in the following order.
        +#
        +#   - <BeginBuild()> will always be called.
        +#   - <PurgeFiles()> will be called next only if there's files that need to be purged.
        +#   - <PurgeIndexes()> will be called next only if there's indexes that need to be purged.
        +#   - <PurgeImages()> will e called next only if there's images that need to be purged.
        +#   - <BuildFile()> will be called once for each file that needs to be built, if any.
        +#   - <BuildIndex()> will be called once for each index that changed and is part of the menu, if any.
        +#   - <UpdateImage()> will be called once for each image that needs to be updated, if any.
        +#   - <UpdateMenu()> will be called next only if the menu changed.
        +#   - <EndBuild()> will always be called.
        +#
        +
        +#
        +#   Topic: How to Approach
        +#
        +#   Here's an idea of how to approach making packages for different output types.
        +#
        +#
        +#   Multiple Output Files, Embedded Menu:
        +#
        +#       This example is for when you want to build one output file per source file, each with its own copy of the menu within it.
        +#       This is how <NaturalDocs::Builder::HTML> works.
        +#
        +#       Make sure you create a function that generates just the menu for a particular source file.  We'll need to generate menus for
        +#       both building a file from scratch and for updating the menu on an existing output file, so it's better to give it its own function.
        +#       You may want to surround it with something that can be easily detected in the output file to make replacing easier.
        +#
        +#       <BeginBuild()> isn't important.  You don't need to implement it.
        +#
        +#       Implement <PurgeFiles()> to delete the output files associated with the purged files.
        +#
        +#       Implement <PurgeIndexes()> to delete the output files associated with the purged indexes.
        +#
        +#       Implement <BuildFile()> to create an output file for the parsed source file.  Use the menu function described earlier.
        +#
        +#       Implement <BuildIndex()> to create an output file for each index.  Use the menu function described earlier for each page.
        +#
        +#       Implement <UpdateMenu()> to go through the list of unbuilt files and update their menus.  You can get the list from
        +#       <NaturalDocs::Project->UnbuiltFilesWithContent()>.  You need to open their output files, replace the menu, and save it back
        +#       to disk.  Yes, it would be simpler from a programmer's point of view to just rebuild the file completely, but that would be
        +#       _very_ inefficient since there could potentially be a _lot_ of files in this group.
        +#
        +#       Also make sure <UpdateMenu()> goes through the unchanged indexes and updates them as well.
        +#
        +#       <EndBuild()> isn't important.  You don't need to implement it.
        +#
        +#
        +#   Multiple Output Files, Menu in File:
        +#
        +#       This example is for when you want to build one output file per source file, but keep the menu in its own separate file.  This
        +#       is how <NaturalDocs::Builder::FramedHTML> works.
        +#
        +#       <BeginBuild()> isn't important.  You don't need to implement it.
        +#
        +#       Implement <PurgeFiles()> to delete the output files associated with the purged files.
        +#
        +#       Implement <PurgeIndexes()> to delete the output files associated with the purged indexes.
        +#
        +#       Implement <BuildFile()> to generate an output file from the parsed source file.
        +#
        +#       Implement <BuildIndex()> to generate an output file for each index.
        +#
        +#       Implement <UpdateMenu()> to rebuild the menu file.
        +#
        +#       <EndBuild()> isn't important.  You don't need to implement it.
        +#
        +#
        +#   Single Output File using Intermediate Files:
        +#
        +#       This example is for when you want to build one output file, such as a PDF file, but use intermediate files to handle differential
        +#       building.  This would be much like how a compiler compiles each source file into a object file, and then a linker stitches them
        +#       all together into the final executable file.
        +#
        +#       <BeginBuild()> isn't important.  You don't need to implement it.
        +#
        +#       Implement <PurgeFiles()> to delete the intermediate files associated with the purged files.
        +#
        +#       Implement <PurgeIndexes()> to delete the intermediate files associated with the purged indexes.
        +#
        +#       Implement <BuildFile()> to generate an intermediate file from the parsed source file.
        +#
        +#       Implement <BuildIndex()> to generate an intermediate file for the specified index.
        +#
        +#       Implement <UpdateMenu()> to generate the intermediate file for the menu.
        +#
        +#       Implement <EndBuild()> so that if the project changed, it stitches the intermediate files together into the final
        +#       output file.  Make sure you check the parameter because the function will be called when nothing changes too.
        +#
        +#
        +#   Single Output File using Direct Changes:
        +#
        +#       This example is for when you want to build one output file, such as a PDF file, but engineering it in such a way that you don't
        +#       need to use intermediate files.  In other words, you're able to add, delete, and modify entries directly in the output file.
        +#
        +#       Implement <BeginBuild()> so that if the project changed, it opens the output file and does anything it needs to do
        +#       to get ready for editing.
        +#
        +#       Implement <PurgeFiles()> to remove the entries associated with the purged files.
        +#
        +#       Implement <PurgeIndexes()> to remove the entries associated with the purged indexes.
        +#
        +#       Implement <BuildFile()> to add or replace a section of the output file with a new one generated from the parsed file.
        +#
        +#       Implement <BuildIndex()> to add or replace an index in the output file with a new one generated from the specified index.
        +#
        +#       Implement <EndBuild()> so that if the project changed, it saves the output file to disk.
        +#
        +#       How you handle the menu depends on how the output file references other sections of itself.  If it can do so by name, then
        +#       you can implement <UpdateMenu()> to update the menu section of the file and you're done.  If it has to reference itself
        +#       by address or offset, it gets trickier.  You should skip <UpdateMenu()> and instead rebuild the menu in <EndBuild()> if
        +#       the parameter is true.  This lets you do it whenever anything changes in a file, rather than just when the menu
        +#       visibly changes.  How you keep track of the locations and how they change is your problem.
        +#
        +
        +
        +###############################################################################
        +#
        +#   Group: Required Interface Functions
        +#
        +#   All Builder classes *must* define these functions.
        +#
        +
        +
        +#
        +#   Function: INIT
        +#
        +#   Define this function to call <NaturalDocs::Builder->Add()> so that <NaturalDocs::Builder> knows about this package.
        +#   Packages are defined this way so that new ones can be added without messing around in other code.
        +#
        +
        +
        +#
        +#   Function: CommandLineOption
        +#
        +#   Define this function to return the text that should be put in the command line after -o to use this package.  It cannot have
        +#   spaces and is not case sensitive.
        +#
        +#   For example, <NaturalDocs::Builder::HTML> returns 'html' so someone could use -o html [directory] to use that package.
        +#
        +sub CommandLineOption
        +    {
        +    NaturalDocs::Error->SoftDeath($_[0] . " didn't define CommandLineOption().");
        +    };
        +
        +
        +#
        +#   Function: BuildFile
        +#
        +#   Define this function to convert a parsed file to this package's output format.  This function will be called once for every source
        +#   file that needs to be rebuilt.  However, if a file hasn't changed since the last time Natural Docs was run, it will not be sent to
        +#   this function.  All packages must support differential build.
        +#
        +#   Parameters:
        +#
        +#       sourceFile  - The name of the source file.
        +#       parsedFile  - The parsed source file, as an arrayref of <NaturalDocs::Parser::ParsedTopic> objects.
        +#
        +sub BuildFile #(sourceFile, parsedFile)
        +    {
        +    NaturalDocs::Error->SoftDeath($_[0] . " didn't define BuildFile().");
        +    };
        +
        +
        +###############################################################################
        +#
        +#   Group: Optional Interface Functions
        +#
        +#   These functions can be implemented but packages are not required to do so.
        +#
        +
        +
        +#
        +#   Function: New
        +#
        +#   Creates and returns a new object.
        +#
        +#   Note that this is the only function where the first parameter will be the package name, not the object itself.
        +#
        +sub New
        +    {
        +    my $package = shift;
        +
        +    my $object = [ ];
        +    bless $object, $package;
        +
        +    return $object;
        +    };
        +
        +
        +#
        +#   Function: BeginBuild
        +#
        +#   Define this function if the package needs to do anything at the beginning of the build process.  This function will be called
        +#   every time Natural Docs is run, even if the project hasn't changed.  This allows you to manage dependencies specific
        +#   to the output format that may change independently from the source tree and menu.  For example,
        +#   <NaturalDocs::Builder::HTML> needs to keep the CSS files in sync regardless of whether the source tree changed or not.
        +#
        +#   Parameters:
        +#
        +#       hasChanged - Whether the project has changed, such as source files or the menu file.  If false, nothing else is going to be
        +#                            called except <EndBuild()>.
        +#
        +sub BeginBuild #(hasChanged)
        +    {
        +    };
        +
        +
        +#
        +#   Function: EndBuild
        +#
        +#   Define this function if the package needs to do anything at the end of the build process.  This function will be called every time
        +#   Natural Docs is run, even if the project hasn't changed.  This allows you to manage dependencies specific to the output
        +#   format that may change independently from the source tree.  For example, <NaturalDocs::Builder::HTML> needs to keep the
        +#   CSS files in sync regardless of whether the source tree changed or not.
        +#
        +#   Parameters:
        +#
        +#       hasChanged - Whether the project has changed, such as source files or the menu file.  If false, the only other function that
        +#                            was called was <BeginBuild()>.
        +#
        +sub EndBuild #(hasChanged)
        +    {
        +    };
        +
        +
        +#
        +#   Function: BuildIndex
        +#
        +#   Define this function to create an index for the passed topic.  You can get the index from
        +#   <NaturalDocs::SymbolTable->Index()>.
        +#
        +#   The reason it's not passed directly to this function is because indexes may be time-consuming to create.  As such, they're
        +#   generated on demand because some output packages may choose not to implement them.
        +#
        +#   Parameters:
        +#
        +#       topic  - The <TopicType> to limit the index by.
        +#
        +sub BuildIndex #(topic)
        +    {
        +    };
        +
        +
        +#
        +#   Function: UpdateImage
        +#
        +#   Define this function to add or update the passed image in the output.
        +#
        +#   Parameters:
        +#
        +#       file - The image <FileName>
        +#
        +sub UpdateImage #(file)
        +    {
        +    };
        +
        +
        +#
        +#   Function: PurgeFiles
        +#
        +#   Define this function to make the package remove all output related to the passed files.  These files no longer have Natural Docs
        +#   content.
        +#
        +#   Parameters:
        +#
        +#       files - An existence hashref of the files to purge.
        +#
        +sub PurgeFiles #(files)
        +    {
        +    };
        +
        +
        +#
        +#   Function: PurgeIndexes
        +#
        +#   Define this function to make the package remove all output related to the passed indexes.  These indexes are no longer part
        +#   of the menu.
        +#
        +#   Parameters:
        +#
        +#       indexes  - An existence hashref of the <TopicTypes> of the indexes to purge.
        +#
        +sub PurgeIndexes #(indexes)
        +    {
        +    };
        +
        +
        +#
        +#   Function: PurgeImages
        +#
        +#   Define this function to make the package remove all output related to the passed image files.  These files are no longer used
        +#   by the documentation.
        +#
        +#   Parameters:
        +#
        +#       files - An existence hashref of the image <FileNames> to purge.
        +#
        +sub PurgeImages #(files)
        +    {
        +    };
        +
        +
        +#
        +#   Function: UpdateMenu
        +#
        +#   Define this function to make the package update the menu.  It will only be called if the menu changed.
        +#
        +sub UpdateMenu
        +    {
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Builder/FramedHTML.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Builder/FramedHTML.pm
        new file mode 100755
        index 0000000..c29528a
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Builder/FramedHTML.pm
        @@ -0,0 +1,354 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::Builder::FramedHTML
        +#
        +###############################################################################
        +#
        +#   A package that generates output in HTML with frames.
        +#
        +#   All functions are called with Package->Function() notation.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::Builder::FramedHTML;
        +
        +use base 'NaturalDocs::Builder::HTMLBase';
        +
        +
        +###############################################################################
        +# Group: Implemented Interface Functions
        +
        +
        +#
        +#   Function: INIT
        +#
        +#   Registers the package with <NaturalDocs::Builder>.
        +#
        +sub INIT
        +    {
        +    NaturalDocs::Builder->Add(__PACKAGE__);
        +    };
        +
        +
        +#
        +#   Function: CommandLineOption
        +#
        +#   Returns the option to follow -o to use this package.  In this case, "html".
        +#
        +sub CommandLineOption
        +    {
        +    return 'FramedHTML';
        +    };
        +
        +
        +#
        +#   Function: BuildFile
        +#
        +#   Builds the output file from the parsed source file.
        +#
        +#   Parameters:
        +#
        +#       sourcefile       - The <FileName> of the source file.
        +#       parsedFile      - An arrayref of the source file as <NaturalDocs::Parser::ParsedTopic> objects.
        +#
        +sub BuildFile #(sourceFile, parsedFile)
        +    {
        +    my ($self, $sourceFile, $parsedFile) = @_;
        +
        +    my $outputFile = $self->OutputFileOf($sourceFile);
        +
        +
        +    # 99.99% of the time the output directory will already exist, so this will actually be more efficient.  It only won't exist
        +    # if a new file was added in a new subdirectory and this is the first time that file was ever parsed.
        +    if (!open(OUTPUTFILEHANDLE, '>' . $outputFile))
        +        {
        +        NaturalDocs::File->CreatePath( NaturalDocs::File->NoFileName($outputFile) );
        +
        +        open(OUTPUTFILEHANDLE, '>' . $outputFile)
        +            or die "Couldn't create output file " . $outputFile . "\n";
        +        };
        +
        +    binmode(OUTPUTFILEHANDLE, ':encoding(UTF-8)');
        +    my $usePrettify = (NaturalDocs::Settings->HighlightCode() || NaturalDocs::Settings->HighlightAnonymous());
        +
        +
        +    print OUTPUTFILEHANDLE
        +
        +        # IE 6 doesn't like any doctype here at all.  Add one (strict or transitional doesn't matter) and it makes the page slightly too
        +        # wide for the frame.  Mozilla and Opera handle it like champs either way because they Don't Suck(tm).
        +
        +        # '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" '
        +        # . '"http://www.w3.org/TR/REC-html40/loose.dtd">' . "\n\n"
        +
        +        '<html><head>'
        +
        +        	. '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">'
        +
        +            . '<title>'
        +                . $self->BuildTitle($sourceFile)
        +            . '</title>'
        +
        +            . '<link rel="stylesheet" type="text/css" href="' . $self->MakeRelativeURL($outputFile, $self->MainCSSFile(), 1) . '">'
        +
        +            . '<script language=JavaScript src="' . $self->MakeRelativeURL($outputFile, $self->MainJavaScriptFile(), 1) . '"></script>';
        +
        +            if ($usePrettify)
        +            	{
        +            	print OUTPUTFILEHANDLE
        +	            '<script language=JavaScript src="' . $self->MakeRelativeURL($outputFile, $self->PrettifyJavaScriptFile(), 1) . '">'
        +	            . '</script>';
        +            	}
        +
        +        print OUTPUTFILEHANDLE
        +        '</head><body class="FramedContentPage" onLoad="NDOnLoad();' . ($usePrettify ? 'prettyPrint();' : '') . '">'
        +            . $self->OpeningBrowserStyles()
        +
        +            . $self->StandardComments()
        +
        +            . "\n\n\n"
        +                . $self->BuildContent($sourceFile, $parsedFile)
        +            . "\n\n\n"
        +
        +            . $self->BuildToolTips()
        +
        +            . $self->ClosingBrowserStyles()
        +        . '</body></html>';
        +
        +
        +    close(OUTPUTFILEHANDLE);
        +    };
        +
        +
        +#
        +#   Function: BuildIndex
        +#
        +#   Builds an index for the passed type.
        +#
        +#   Parameters:
        +#
        +#       type  - The <TopicType> to limit the index to, or undef if none.
        +#
        +sub BuildIndex #(type)
        +    {
        +    my ($self, $type) = @_;
        +
        +    my $indexTitle = $self->IndexTitleOf($type);
        +    my $indexFile = $self->IndexFileOf($type);
        +
        +    my $startIndexPage =
        +
        +        '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" '
        +            . '"http://www.w3.org/TR/REC-html40/loose.dtd">' . "\n\n"
        +
        +        . '<html><head>'
        +
        +        	. '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">'
        +
        +            . '<title>';
        +
        +            if (defined NaturalDocs::Menu->Title())
        +                {  $startIndexPage .= $self->StringToHTML(NaturalDocs::Menu->Title()) . ' - ';  };
        +
        +                $startIndexPage .=
        +                $indexTitle
        +            . '</title>'
        +
        +            . '<link rel="stylesheet" type="text/css" href="' . $self->MakeRelativeURL($indexFile, $self->MainCSSFile(), 1) . '">'
        +
        +            . '<script language=JavaScript src="' . $self->MakeRelativeURL($indexFile, $self->MainJavaScriptFile(), 1) . '"></script>'
        +
        +        . '</head><body class="FramedIndexPage" onLoad="NDOnLoad()">'
        +            . $self->OpeningBrowserStyles()
        +
        +            . "\n\n\n"
        +                . $self->StandardComments()
        +            . "\n\n\n"
        +                . '<div id=Index>'
        +                    . '<div class=IPageTitle>'
        +                        . $indexTitle
        +                    . '</div>';
        +
        +
        +    my $endIndexPage =
        +
        +                    '</div><!--Index-->'
        +                . "\n\n\n"
        +
        +                . $self->ClosingBrowserStyles()
        +
        +       . '</body></html>';
        +
        +    my $startSearchResultsPage =
        +
        +        '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" '
        +            . '"http://www.w3.org/TR/REC-html40/loose.dtd">' . "\n\n"
        +
        +        . '<html><head>'
        +
        +            . '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">'
        +
        +            . '<link rel="stylesheet" type="text/css" href="' . $self->MakeRelativeURL($indexFile, $self->MainCSSFile(), 1) . '">'
        +
        +            . '<script language=JavaScript src="' . $self->MakeRelativeURL($indexFile, $self->MainJavaScriptFile(), 1) . '"></script>'
        +            . '<script language=JavaScript src="' . $self->MakeRelativeURL($indexFile, $self->SearchDataJavaScriptFile(), 1) . '">'
        +                . '</script>'
        +
        +        . '</head><body class="FramedSearchResultsPage" onLoad="NDOnLoad()">'
        +            . $self->OpeningBrowserStyles()
        +
        +            . "\n\n\n"
        +                . $self->StandardComments()
        +            . "\n\n\n"
        +
        +                . '<div id=Index>'
        +                    . '<div class=IPageTitle>'
        +                        . 'Search Results'
        +                    . '</div>';
        +
        +    my $endSearchResultsPage =
        +
        +                    '</div><!--Index-->'
        +                . "\n\n\n"
        +
        +                . $self->ClosingBrowserStyles()
        +
        +       . '</body></html>';
        +
        +    my $indexContent = NaturalDocs::SymbolTable->Index($type);
        +    my $pageCount = $self->BuildIndexPages($type, $indexContent, $startIndexPage, $endIndexPage,
        +                                                                  $startSearchResultsPage, $endSearchResultsPage);
        +    $self->PurgeIndexFiles($type, $indexContent, $pageCount + 1);
        +    };
        +
        +
        +#
        +#   Function: UpdateMenu
        +#
        +#   Builds the menu file.  Also generates index.html.
        +#
        +sub UpdateMenu
        +    {
        +    my $self = shift;
        +
        +    my $outputDirectory = NaturalDocs::Settings->OutputDirectoryOf($self);
        +    my $outputFile = NaturalDocs::File->JoinPaths($outputDirectory, 'menu.html');
        +
        +
        +    open(OUTPUTFILEHANDLE, '>' . $outputFile)
        +        or die "Couldn't create output file " . $outputFile . "\n";
        +
        +    binmode(OUTPUTFILEHANDLE, ':encoding(UTF-8)');
        +
        +    my $title = 'Menu';
        +    if (defined $title)
        +        {  $title .= ' - ' . NaturalDocs::Menu->Title();  };
        +
        +    $title = $self->StringToHTML($title);
        +
        +
        +    print OUTPUTFILEHANDLE
        +
        +        '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" '
        +            . '"http://www.w3.org/TR/REC-html40/loose.dtd">' . "\n\n"
        +
        +        . '<html><head>'
        +
        +          	. '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">'
        +
        +            . '<title>'
        +                . $title
        +            . '</title>'
        +
        +            . '<base target="Content">'
        +
        +            . '<link rel="stylesheet" type="text/css" href="' . $self->MakeRelativeURL($outputFile, $self->MainCSSFile(), 1) . '">'
        +
        +            . '<script language=JavaScript src="' . $self->MakeRelativeURL($outputFile, $self->MainJavaScriptFile(), 1) . '"></script>'
        +            . '<script language=JavaScript src="' . $self->MakeRelativeURL($outputFile, $self->SearchDataJavaScriptFile(), 1) . '">'
        +                . '</script>'
        +
        +        . '</head><body class="FramedMenuPage" onLoad="NDOnLoad()">'
        +            . $self->OpeningBrowserStyles()
        +
        +            . $self->StandardComments()
        +
        +            . "\n\n\n"
        +                . $self->BuildMenu(undef, undef)
        +            . "\n\n\n"
        +                . $self->BuildFooter(1)
        +            . "\n\n\n"
        +
        +            . $self->ClosingBrowserStyles()
        +        . '</body></html>';
        +
        +
        +    close(OUTPUTFILEHANDLE);
        +
        +
        +    # Update index.html
        +
        +    my $firstMenuEntry = $self->FindFirstFile();
        +    my $indexFile = NaturalDocs::File->JoinPaths( NaturalDocs::Settings->OutputDirectoryOf($self), 'index.html' );
        +
        +    # We have to check because it's possible that there may be no files with Natural Docs content and thus no files on the menu.
        +    if (defined $firstMenuEntry)
        +        {
        +        open(INDEXFILEHANDLE, '>' . $indexFile)
        +            or die "Couldn't create output file " . $indexFile . ".\n";
        +
        +	    binmode(OUTPUTFILEHANDLE, ':encoding(UTF-8)');
        +
        +        print INDEXFILEHANDLE
        +
        +            '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN" '
        +                . '"http://www.w3.org/TR/REC-html40/frameset.dtd">'
        +
        +            . '<html>'
        +
        +                . '<head>'
        +
        +                    . '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">'
        +
        +                    . '<title>'
        +                        . $self->StringToHTML(NaturalDocs::Menu->Title())
        +                    . '</title>'
        +
        +                . '</head>'
        +
        +                . $self->StandardComments()
        +
        +                . '<frameset cols="185,*">'
        +                    . '<frame name=Menu src="menu.html">'
        +                    . '<frame name=Content src="'
        +                        . $self->MakeRelativeURL($indexFile, $self->OutputFileOf($firstMenuEntry->Target()), 1) . '">'
        +                . '</frameset>'
        +
        +                . '<noframes>'
        +                    . 'This documentation was designed for use with frames.  However, you can still use it by '
        +                    . '<a href="menu.html">starting from the menu page</a>.'
        +                    . "<script language=JavaScript><!--\n"
        +                        . 'location.href="menu.html";'
        +                    . "\n// --></script>"
        +                . '</noframes>'
        +
        +            . '</html>';
        +
        +        close INDEXFILEHANDLE;
        +        }
        +
        +    elsif (-e $indexFile)
        +        {
        +        unlink($indexFile);
        +        };
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Builder/HTML.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Builder/HTML.pm
        new file mode 100755
        index 0000000..86bd8bf
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Builder/HTML.pm
        @@ -0,0 +1,414 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::Builder::HTML
        +#
        +###############################################################################
        +#
        +#   A package that generates output in HTML.
        +#
        +#   All functions are called with Package->Function() notation.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::Builder::HTML;
        +
        +use base 'NaturalDocs::Builder::HTMLBase';
        +
        +
        +###############################################################################
        +# Group: Implemented Interface Functions
        +
        +
        +#
        +#   Function: INIT
        +#
        +#   Registers the package with <NaturalDocs::Builder>.
        +#
        +sub INIT
        +    {
        +    NaturalDocs::Builder->Add(__PACKAGE__);
        +    };
        +
        +
        +#
        +#   Function: CommandLineOption
        +#
        +#   Returns the option to follow -o to use this package.  In this case, "html".
        +#
        +sub CommandLineOption
        +    {
        +    return 'HTML';
        +    };
        +
        +
        +#
        +#   Function: BuildFile
        +#
        +#   Builds the output file from the parsed source file.
        +#
        +#   Parameters:
        +#
        +#       sourcefile       - The <FileName> of the source file.
        +#       parsedFile      - An arrayref of the source file as <NaturalDocs::Parser::ParsedTopic> objects.
        +#
        +sub BuildFile #(sourceFile, parsedFile)
        +    {
        +    my ($self, $sourceFile, $parsedFile) = @_;
        +
        +    my $outputFile = $self->OutputFileOf($sourceFile);
        +
        +
        +    # 99.99% of the time the output directory will already exist, so this will actually be more efficient.  It only won't exist
        +    # if a new file was added in a new subdirectory and this is the first time that file was ever parsed.
        +    if (!open(OUTPUTFILEHANDLE, '>' . $outputFile))
        +        {
        +        NaturalDocs::File->CreatePath( NaturalDocs::File->NoFileName($outputFile) );
        +
        +        open(OUTPUTFILEHANDLE, '>' . $outputFile)
        +            or die "Couldn't create output file " . $outputFile . "\n";
        +        };
        +
        +    binmode(OUTPUTFILEHANDLE, ':encoding(UTF-8)');
        +    my $usePrettify = (NaturalDocs::Settings->HighlightCode() || NaturalDocs::Settings->HighlightAnonymous());
        +
        +
        +    print OUTPUTFILEHANDLE
        +
        +        '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" '
        +            . '"http://www.w3.org/TR/REC-html40/strict.dtd">' . "\n\n"
        +
        +        . '<html><head>'
        +
        +            . '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">'
        +
        +            . '<title>'
        +                . $self->BuildTitle($sourceFile)
        +            . '</title>'
        +
        +            . '<link rel="stylesheet" type="text/css" href="' . $self->MakeRelativeURL($outputFile, $self->MainCSSFile(), 1) . '">'
        +
        +            . '<script language=JavaScript src="' . $self->MakeRelativeURL($outputFile, $self->MainJavaScriptFile(), 1) . '">'
        +                . '</script>';
        +
        +			if ($usePrettify)
        +				{
        +				print OUTPUTFILEHANDLE
        +	            '<script language=JavaScript src="' . $self->MakeRelativeURL($outputFile, $self->PrettifyJavaScriptFile(), 1) . '">'
        +	                . '</script>';
        +                }
        +
        +            print OUTPUTFILEHANDLE
        +            '<script language=JavaScript src="' . $self->MakeRelativeURL($outputFile, $self->SearchDataJavaScriptFile(), 1) . '">'
        +                . '</script>'
        +
        +	        . '</head><body class="ContentPage" onLoad="NDOnLoad();' . ($usePrettify ? 'prettyPrint();' : '') . '">'
        +            . $self->OpeningBrowserStyles()
        +
        +            . $self->StandardComments()
        +
        +            . "\n\n\n"
        +                . $self->BuildContent($sourceFile, $parsedFile)
        +            . "\n\n\n"
        +                . $self->BuildFooter()
        +            . "\n\n\n"
        +                . $self->BuildMenu($sourceFile, undef)
        +            . "\n\n\n"
        +                . $self->BuildToolTips()
        +            . "\n\n\n"
        +                . '<div id=MSearchResultsWindow>'
        +                    . '<iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe>'
        +                    . '<a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a>'
        +                . '</div>'
        +            . "\n\n\n"
        +
        +            . $self->ClosingBrowserStyles()
        +        . '</body></html>';
        +
        +
        +    close(OUTPUTFILEHANDLE);
        +    };
        +
        +
        +#
        +#   Function: BuildIndex
        +#
        +#   Builds an index for the passed type.
        +#
        +#   Parameters:
        +#
        +#       type  - The <TopicType> to limit the index to, or undef if none.
        +#
        +sub BuildIndex #(type)
        +    {
        +    my ($self, $type) = @_;
        +
        +    my $indexTitle = $self->IndexTitleOf($type);
        +
        +    my $startIndexPage =
        +
        +        '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" '
        +            . '"http://www.w3.org/TR/REC-html40/strict.dtd">' . "\n\n"
        +
        +        . '<html><head>'
        +
        +            . '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">'
        +
        +            . '<title>'
        +                . $indexTitle;
        +
        +                if (defined NaturalDocs::Menu->Title())
        +                    {  $startIndexPage .= ' - ' . $self->StringToHTML(NaturalDocs::Menu->Title());  };
        +
        +            $startIndexPage .=
        +            '</title>'
        +
        +            . '<link rel="stylesheet" type="text/css" href="' . $self->MakeRelativeURL($self->IndexDirectory(),
        +                                                                                                                       $self->MainCSSFile()) . '">'
        +
        +            . '<script language=JavaScript src="' . $self->MakeRelativeURL($self->IndexDirectory(),
        +                                                                                                        $self->MainJavaScriptFile()) . '"></script>'
        +            . '<script language=JavaScript src="' . $self->MakeRelativeURL($self->IndexDirectory(),
        +                                                                                                        $self->SearchDataJavaScriptFile()) . '">'
        +                . '</script>'
        +
        +        . '</head><body class="IndexPage" onLoad="NDOnLoad()">'
        +            . $self->OpeningBrowserStyles()
        +
        +        . $self->StandardComments()
        +
        +        . "\n\n\n"
        +
        +        . '<div id=Index>'
        +            . '<div class=IPageTitle>'
        +                . $indexTitle
        +            . '</div>';
        +
        +    my $endIndexPage =
        +            '</div><!--Index-->'
        +
        +            . "\n\n\n"
        +                . $self->BuildFooter()
        +            . "\n\n\n"
        +                . $self->BuildMenu(undef, $type)
        +            . "\n\n\n"
        +                . '<div id=MSearchResultsWindow>'
        +                    . '<iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe>'
        +                    . '<a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a>'
        +                . '</div>'
        +            . "\n\n\n"
        +
        +            . $self->ClosingBrowserStyles()
        +        . '</body></html>';
        +
        +
        +    my $startSearchResultsPage =
        +
        +        '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" '
        +            . '"http://www.w3.org/TR/REC-html40/strict.dtd">' . "\n\n"
        +
        +        . '<html><head>'
        +
        +            . '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">'
        +
        +            . '<link rel="stylesheet" type="text/css" href="' . $self->MakeRelativeURL($self->SearchResultsDirectory(),
        +                                                                                                                       $self->MainCSSFile()) . '">'
        +
        +            . '<script language=JavaScript src="' . $self->MakeRelativeURL($self->SearchResultsDirectory(),
        +                                                                                                        $self->MainJavaScriptFile()) . '"></script>'
        +
        +        . '</head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()">'
        +            . $self->OpeningBrowserStyles()
        +
        +        . $self->StandardComments()
        +
        +        . "\n\n\n"
        +
        +        . '<div id=Index>';
        +
        +
        +    my $endSearchResultsPage =
        +        '</div>'
        +        . $self->ClosingBrowserStyles()
        +   . '</body></html>';
        +
        +    my $indexContent = NaturalDocs::SymbolTable->Index($type);
        +    my $pageCount = $self->BuildIndexPages($type, $indexContent, $startIndexPage, $endIndexPage,
        +                                                                  $startSearchResultsPage, $endSearchResultsPage);
        +    $self->PurgeIndexFiles($type, $indexContent, $pageCount + 1);
        +    };
        +
        +
        +#
        +#   Function: UpdateMenu
        +#
        +#   Updates the menu in all the output files that weren't rebuilt.  Also generates index.html.
        +#
        +sub UpdateMenu
        +    {
        +    my $self = shift;
        +
        +
        +    # Update the menu on unbuilt files.
        +
        +    my $filesToUpdate = NaturalDocs::Project->UnbuiltFilesWithContent();
        +
        +    foreach my $sourceFile (keys %$filesToUpdate)
        +        {
        +        $self->UpdateFile($sourceFile);
        +        };
        +
        +
        +    # Update the menu on unchanged index files.
        +
        +    my $indexes = NaturalDocs::Menu->Indexes();
        +
        +    foreach my $index (keys %$indexes)
        +        {
        +        if (!NaturalDocs::SymbolTable->IndexChanged($index))
        +            {
        +            $self->UpdateIndex($index);
        +            };
        +        };
        +
        +
        +    # Update index.html
        +
        +    my $firstMenuEntry = $self->FindFirstFile();
        +    my $indexFile = NaturalDocs::File->JoinPaths( NaturalDocs::Settings->OutputDirectoryOf($self), 'index.html' );
        +
        +    # We have to check because it's possible that there may be no files with Natural Docs content and thus no files on the menu.
        +    if (defined $firstMenuEntry)
        +        {
        +        open(INDEXFILEHANDLE, '>' . $indexFile)
        +            or die "Couldn't create output file " . $indexFile . ".\n";
        +
        +	    binmode(INDEXFILEHANDLE, ':encoding(UTF-8)');
        +
        +        print INDEXFILEHANDLE
        +        '<html><head>'
        +             . '<meta http-equiv="Refresh" CONTENT="0; URL='
        +                 . $self->MakeRelativeURL( NaturalDocs::File->JoinPaths( NaturalDocs::Settings->OutputDirectoryOf($self), 'index.html'),
        +                                                        $self->OutputFileOf($firstMenuEntry->Target()), 1 ) . '">'
        +        . '</head></html>';
        +
        +        close INDEXFILEHANDLE;
        +        }
        +
        +    elsif (-e $indexFile)
        +        {
        +        unlink($indexFile);
        +        };
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Support Functions
        +
        +
        +#
        +#   Function: UpdateFile
        +#
        +#   Updates an output file.  Replaces the menu, HTML title, and footer.  It opens the output file, makes the changes, and saves it
        +#   back to disk, which is much quicker than rebuilding the file from scratch if these were the only things that changed.
        +#
        +#   Parameters:
        +#
        +#       sourceFile - The source <FileName>.
        +#
        +#   Dependencies:
        +#
        +#       - Requires <Builder::BuildMenu()> to surround its content with the exact strings "<div id=Menu>" and "</div><!--Menu-->".
        +#       - Requires <Builder::BuildFooter()> to surround its content with the exact strings "<div id=Footer>" and
        +#         "</div><!--Footer-->".
        +#
        +sub UpdateFile #(sourceFile)
        +    {
        +    my ($self, $sourceFile) = @_;
        +
        +    my $outputFile = $self->OutputFileOf($sourceFile);
        +
        +    if (open(OUTPUTFILEHANDLE, '<' . $outputFile))
        +        {
        +        my $content;
        +
        +	    binmode(OUTPUTFILEHANDLE, ':encoding(UTF-8)');
        +        read(OUTPUTFILEHANDLE, $content, -s OUTPUTFILEHANDLE);
        +        close(OUTPUTFILEHANDLE);
        +
        +
        +        $content =~ s{<title>[^<]*<\/title>}{'<title>' . $self->BuildTitle($sourceFile) . '</title>'}e;
        +
        +        $content =~ s/<div id=Menu>.*?<\/div><!--Menu-->/$self->BuildMenu($sourceFile, undef)/es;
        +
        +        $content =~ s/<div id=Footer>.*?<\/div><!--Footer-->/$self->BuildFooter()/e;
        +
        +
        +        open(OUTPUTFILEHANDLE, '>' . $outputFile);
        +	    binmode(OUTPUTFILEHANDLE, ':encoding(UTF-8)');
        +        print OUTPUTFILEHANDLE $content;
        +        close(OUTPUTFILEHANDLE);
        +        };
        +    };
        +
        +
        +#
        +#   Function: UpdateIndex
        +#
        +#   Updates an index's output file.  Replaces the menu and footer.  It opens the output file, makes the changes, and saves it
        +#   back to disk, which is much quicker than rebuilding the file from scratch if these were the only things that changed.
        +#
        +#   Parameters:
        +#
        +#       type - The index <TopicType>, or undef if none.
        +#
        +sub UpdateIndex #(type)
        +    {
        +    my ($self, $type) = @_;
        +
        +    my $page = 1;
        +
        +    my $outputFile = $self->IndexFileOf($type, $page);
        +
        +    my $newMenu = $self->BuildMenu(undef, $type);
        +    my $newFooter = $self->BuildFooter();
        +
        +    while (-e $outputFile)
        +        {
        +        open(OUTPUTFILEHANDLE, '<' . $outputFile)
        +            or die "Couldn't open output file " . $outputFile . ".\n";
        +
        +        my $content;
        +
        +	    binmode(OUTPUTFILEHANDLE, ':encoding(UTF-8)');
        +        read(OUTPUTFILEHANDLE, $content, -s OUTPUTFILEHANDLE);
        +        close(OUTPUTFILEHANDLE);
        +
        +
        +        $content =~ s/<div id=Menu>.*?<\/div><!--Menu-->/$newMenu/es;
        +
        +        $content =~ s/<div id=Footer>.*<\/div><!--Footer-->/$newFooter/e;
        +
        +
        +        open(OUTPUTFILEHANDLE, '>' . $outputFile)
        +            or die "Couldn't save output file " . $outputFile . ".\n";
        +
        +	    binmode(OUTPUTFILEHANDLE, ':encoding(UTF-8)');
        +        print OUTPUTFILEHANDLE $content;
        +        close(OUTPUTFILEHANDLE);
        +
        +        $page++;
        +        $outputFile = $self->IndexFileOf($type, $page);
        +        };
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Builder/HTMLBase.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Builder/HTMLBase.pm
        new file mode 100755
        index 0000000..9d7dab0
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Builder/HTMLBase.pm
        @@ -0,0 +1,3745 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::Builder::HTMLBase
        +#
        +###############################################################################
        +#
        +#   A base package for all the shared functionality in <NaturalDocs::Builder::HTML> and
        +#   <NaturalDocs::Builder::FramedHTML>.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +
        +use Tie::RefHash;
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::Builder::HTMLBase;
        +
        +use base 'NaturalDocs::Builder::Base';
        +
        +use NaturalDocs::DefineMembers 'MADE_EMPTY_SEARCH_RESULTS_PAGE', 'MadeEmptySearchResultsPage()',
        +                                                 'SetMadeEmptySearchResultsPage()';
        +
        +
        +
        +###############################################################################
        +# Group: Object Variables
        +
        +
        +#
        +#   Constants: Members
        +#
        +#   The object is implemented as a blessed arrayref, with the follow constants as indexes.
        +#
        +#   MADE_EMPTY_SEARCH_RESULTS_PAGE - Whether the search results page for searches with no results was generated.
        +#
        +
        +#
        +#   Constants: NDMarkupToHTML Styles
        +#
        +#   These are the styles used with <NDMarkupToHTML()>.
        +#
        +#   NDMARKUPTOHTML_GENERAL - General style.
        +#   NDMARKUPTOHTML_SUMMARY - For summaries.
        +#   NDMARKUPTOHTML_TOOLTIP - For tooltips.
        +#
        +use constant NDMARKUPTOHTML_GENERAL => undef;
        +use constant NDMARKUPTOHTML_SUMMARY => 1;
        +use constant NDMARKUPTOHTML_TOOLTIP => 2;
        +
        +
        +
        +###############################################################################
        +# Group: Package Variables
        +# These variables are shared by all instances of the package so don't change them.
        +
        +
        +#
        +#   handle: FH_CSS_FILE
        +#
        +#   The file handle to use when updating CSS files.
        +#
        +
        +
        +#
        +#   Hash: abbreviations
        +#
        +#   An existence hash of acceptable abbreviations.  These are words that <AddDoubleSpaces()> won't put a second space
        +#   after when followed by period-whitespace-capital letter.  Yes, this is seriously over-engineered.
        +#
        +my %abbreviations = ( mr => 1, mrs => 1, ms => 1, dr => 1,
        +                                  rev => 1, fr => 1, 'i.e' => 1,
        +                                  maj => 1, gen => 1, pres => 1, sen => 1, rep => 1,
        +                                  n => 1, s => 1, e => 1, w => 1, ne => 1, se => 1, nw => 1, sw => 1 );
        +
        +#
        +#   array: indexHeadings
        +#
        +#   An array of the headings of all the index sections.  First is for symbols, second for numbers, and the rest for each letter.
        +#
        +my @indexHeadings = ( '$#!', '0-9', 'A' .. 'Z' );
        +
        +#
        +#   array: indexAnchors
        +#
        +#   An array of the HTML anchors of all the index sections.  First is for symbols, second for numbers, and the rest for each letter.
        +#
        +my @indexAnchors = ( 'Symbols', 'Numbers', 'A' .. 'Z' );
        +
        +#
        +#   array: searchExtensions
        +#
        +#   An array of the search file name extensions for all the index sections.  First is for symbols, second for numbers, and the rest
        +#   for each letter.
        +#
        +my @searchExtensions = ( 'Symbols', 'Numbers', 'A' .. 'Z' );
        +
        +#
        +#   bool: saidUpdatingCSSFile
        +#
        +#   Whether the status message "Updating CSS file..." has been displayed.  We only want to print it once, no matter how many
        +#   HTML-based targets we are building.
        +#
        +my $saidUpdatingCSSFile;
        +
        +#
        +#   constant: ADD_HIDDEN_BREAKS
        +#
        +#   Just a synonym for "1" so that setting the flag on <StringToHTML()> is clearer in the calling code.
        +#
        +use constant ADD_HIDDEN_BREAKS => 1;
        +
        +
        +###############################################################################
        +# Group: ToolTip Package Variables
        +#
        +#   These variables are for the tooltip generation functions only.  Since they're reset on every call to <BuildContent()> and
        +#   <BuildIndexSections()>, and are only used by them and their support functions, they can be shared by all instances of the
        +#   package.
        +
        +#
        +#   int: tooltipLinkNumber
        +#
        +#   A number used as part of the ID for each link that has a tooltip.  Should be incremented whenever one is made.
        +#
        +my $tooltipLinkNumber;
        +
        +#
        +#   int: tooltipNumber
        +#
        +#   A number used as part of the ID for each tooltip.  Should be incremented whenever one is made.
        +#
        +my $tooltipNumber;
        +
        +#
        +#   hash: tooltipSymbolsToNumbers
        +#
        +#   A hash that maps the tooltip symbols to their assigned numbers.
        +#
        +my %tooltipSymbolsToNumbers;
        +
        +#
        +#   string: tooltipHTML
        +#
        +#   The generated tooltip HTML.
        +#
        +my $tooltipHTML;
        +
        +
        +###############################################################################
        +# Group: Menu Package Variables
        +#
        +#   These variables are for the menu generation functions only.  Since they're reset on every call to <BuildMenu()> and are
        +#   only used by it and its support functions, they can be shared by all instances of the package.
        +#
        +
        +
        +#
        +#   hash: prebuiltMenus
        +#
        +#   A hash that maps output directonies to menu HTML already built for it.  There will be no selection or JavaScript in the menus.
        +#
        +my %prebuiltMenus;
        +
        +
        +#
        +#   bool: menuNumbersAndLengthsDone
        +#
        +#   Set when the variables that only need to be calculated for the menu once are done.  This includes <menuGroupNumber>,
        +#   <menuLength>, <menuGroupLengths>, and <menuGroupNumbers>, and <menuRootLength>.
        +#
        +my $menuNumbersAndLengthsDone;
        +
        +
        +#
        +#   int: menuGroupNumber
        +#
        +#   The current menu group number.  Each time a group is created, this is incremented so that each one will be unique.
        +#
        +my $menuGroupNumber;
        +
        +
        +#
        +#   int: menuLength
        +#
        +#   The length of the entire menu, fully expanded.  The value is computed from the <Menu Length Constants>.
        +#
        +my $menuLength;
        +
        +
        +#
        +#   hash: menuGroupLengths
        +#
        +#   A hash of the length of each group, *not* including any subgroup contents.  The keys are references to each groups'
        +#   <NaturalDocs::Menu::Entry> object, and the values are their lengths computed from the <Menu Length Constants>.
        +#
        +my %menuGroupLengths;
        +tie %menuGroupLengths, 'Tie::RefHash';
        +
        +
        +#
        +#   hash: menuGroupNumbers
        +#
        +#   A hash of the number of each group, as managed by <menuGroupNumber>.  The keys are references to each groups'
        +#   <NaturalDocs::Menu::Entry> object, and the values are the number.
        +#
        +my %menuGroupNumbers;
        +tie %menuGroupNumbers, 'Tie::RefHash';
        +
        +
        +#
        +#   int: menuRootLength
        +#
        +#   The length of the top-level menu entries without expansion.  The value is computed from the <Menu Length Constants>.
        +#
        +my $menuRootLength;
        +
        +
        +#
        +#   constants: Menu Length Constants
        +#
        +#   Constants used to approximate the lengths of the menu or its groups.
        +#
        +#   MENU_TITLE_LENGTH       - The length of the title.
        +#   MENU_SUBTITLE_LENGTH - The length of the subtitle.
        +#   MENU_FILE_LENGTH         - The length of one file entry.
        +#   MENU_GROUP_LENGTH     - The length of one group entry.
        +#   MENU_TEXT_LENGTH        - The length of one text entry.
        +#   MENU_LINK_LENGTH        - The length of one link entry.
        +#
        +#   MENU_LENGTH_LIMIT    - The limit of the menu's length.  If the total length surpasses this limit, groups that aren't required
        +#                                       to be open to show the selection will default to closed on browsers that support it.
        +#
        +use constant MENU_TITLE_LENGTH => 3;
        +use constant MENU_SUBTITLE_LENGTH => 1;
        +use constant MENU_FILE_LENGTH => 1;
        +use constant MENU_GROUP_LENGTH => 2; # because it's a line and a blank space
        +use constant MENU_TEXT_LENGTH => 1;
        +use constant MENU_LINK_LENGTH => 1;
        +use constant MENU_INDEX_LENGTH => 1;
        +
        +use constant MENU_LENGTH_LIMIT => 35;
        +
        +
        +###############################################################################
        +# Group: Image Package Variables
        +#
        +#   These variables are for the image generation functions only.  Since they're reset on every call to <BuildContent()>,
        +#   and are only used by it and its support functions, they can be shared by all instances of thepackage.
        +
        +
        +#
        +#   var: imageAnchorNumber
        +#   Incremented for each image link in the file that requires an anchor.
        +#
        +my $imageAnchorNumber;
        +
        +
        +#
        +#   var: imageContent
        +#
        +#   The actual embedded image HTML for all image links.  When generating an image link, the link HTML is returned and
        +#   the HTML for the target image is added here.  Periodically, such as after the end of the paragraph, this content should
        +#   be added to the page and the variable set to undef.
        +#
        +my $imageContent;
        +
        +
        +
        +###############################################################################
        +# Group: Search Package Variables
        +#
        +#   These variables are for the search generation functions only.  Since they're reset on every call to <BuildIndexSections()> and
        +#   are only used by them and their support functions, they can be shared by all instances of the package.
        +
        +
        +#
        +#   hash: searchResultIDs
        +#
        +#   A hash mapping lowercase-only search result IDs to the number of times they've been used.  This is to work around an IE
        +#   bug where it won't correctly reference IDs if they differ only in case.
        +#
        +my %searchResultIDs;
        +
        +
        +
        +###############################################################################
        +# Group: Object Functions
        +
        +
        +#
        +#   Function: New
        +#   Creates and returns a new object.
        +#
        +sub New
        +    {
        +    my $class = shift;
        +
        +    my $object = $class->SUPER::New();
        +    $object->SetMadeEmptySearchResultsPage(0);
        +
        +    return $object;
        +    };
        +
        +
        +# Function: MadeEmptySearchResultsPage
        +# Returns whether the empty search results page was created or not.
        +
        +# Function: SetMadeEmptySearchResultsPage
        +# Sets whether the empty search results page was created or not.
        +
        +
        +
        +###############################################################################
        +# Group: Implemented Interface Functions
        +#
        +#   The behavior of these functions is shared between HTML output formats.
        +#
        +
        +
        +#
        +#   Function: UpdateImage
        +#
        +#   Define this function to add or update the passed image in the output.
        +#
        +#   Parameters:
        +#
        +#       file - The image <FileName>
        +#
        +sub UpdateImage #(file)
        +    {
        +    my ($self, $file) = @_;
        +
        +    my $outputFile = $self->OutputImageOf($file);
        +    my $outputDirectory = NaturalDocs::File->NoFileName($outputFile);
        +
        +    if (!-d $outputDirectory)
        +        {  NaturalDocs::File->CreatePath($outputDirectory);  };
        +
        +    NaturalDocs::File->Copy($file, $outputFile);
        +    };
        +
        +
        +#
        +#   Function: PurgeFiles
        +#
        +#   Deletes the output files associated with the purged source files.
        +#
        +sub PurgeFiles #(filesToPurge)
        +    {
        +    my ($self, $filesToPurge) = @_;
        +
        +    # Combine directories into a hash to remove duplicate work.
        +    my %directoriesToPurge;
        +
        +    foreach my $file (keys %$filesToPurge)
        +        {
        +        # It's possible that there may be files there that aren't in a valid input directory anymore.  They won't generate an output
        +        # file name so we need to check for undef.
        +        my $outputFile = $self->OutputFileOf($file);
        +        if (defined $outputFile)
        +            {
        +            unlink($outputFile);
        +            $directoriesToPurge{ NaturalDocs::File->NoFileName($outputFile) } = 1;
        +            };
        +        };
        +
        +    foreach my $directory (keys %directoriesToPurge)
        +        {
        +        NaturalDocs::File->RemoveEmptyTree($directory, NaturalDocs::Settings->OutputDirectoryOf($self));
        +        };
        +    };
        +
        +
        +#
        +#   Function: PurgeIndexes
        +#
        +#   Deletes the output files associated with the purged source files.
        +#
        +#   Parameters:
        +#
        +#       indexes  - An existence hashref of the index types to purge.  The keys are the <TopicTypes> or * for the general index.
        +#
        +sub PurgeIndexes #(indexes)
        +    {
        +    my ($self, $indexes) = @_;
        +
        +    foreach my $index (keys %$indexes)
        +        {
        +        $self->PurgeIndexFiles($index, undef, undef);
        +        };
        +    };
        +
        +
        +#
        +#   Function: PurgeImages
        +#
        +#   Define this function to make the package remove all output related to the passed image files.  These files are no longer used
        +#   by the documentation.
        +#
        +#   Parameters:
        +#
        +#       files - An existence hashref of the image <FileNames> to purge.
        +#
        +sub PurgeImages #(files)
        +    {
        +    my ($self, $filesToPurge) = @_;
        +
        +    # Combine directories into a hash to remove duplicate work.
        +    my %directoriesToPurge;
        +
        +    foreach my $file (keys %$filesToPurge)
        +        {
        +        # It's possible that there may be files there that aren't in a valid input directory anymore.  They won't generate an output
        +        # file name so we need to check for undef.
        +        my $outputFile = $self->OutputImageOf($file);
        +        if (defined $outputFile)
        +            {
        +            unlink($outputFile);
        +            $directoriesToPurge{ NaturalDocs::File->NoFileName($outputFile) } = 1;
        +            };
        +        };
        +
        +    foreach my $directory (keys %directoriesToPurge)
        +        {
        +        NaturalDocs::File->RemoveEmptyTree($directory, NaturalDocs::Settings->OutputDirectoryOf($self));
        +        };
        +    };
        +
        +
        +#
        +#   Function: BeginBuild
        +#
        +#   Creates the necessary subdirectories in the output directory.
        +#
        +sub BeginBuild #(hasChanged)
        +    {
        +    my ($self, $hasChanged) = @_;
        +
        +    foreach my $directory ( $self->JavaScriptDirectory(), $self->CSSDirectory(), $self->IndexDirectory(),
        +                                       $self->SearchResultsDirectory() )
        +        {
        +        if (!-d $directory)
        +            {  NaturalDocs::File->CreatePath($directory);  };
        +        };
        +    };
        +
        +
        +#
        +#   Function: EndBuild
        +#
        +#   Synchronizes the projects CSS and JavaScript files.  Also generates the search data JavaScript file.
        +#
        +sub EndBuild #(hasChanged)
        +    {
        +    my ($self, $hasChanged) = @_;
        +
        +
        +    # Update the style sheets.
        +
        +    my $styles = NaturalDocs::Settings->Styles();
        +    my $changed;
        +
        +    my $cssDirectory = $self->CSSDirectory();
        +    my $mainCSSFile = $self->MainCSSFile();
        +
        +    for (my $i = 0; $i < scalar @$styles; $i++)
        +        {
        +        my $outputCSSFile;
        +
        +        if (scalar @$styles == 1)
        +            {  $outputCSSFile = $mainCSSFile;  }
        +        else
        +            {  $outputCSSFile = NaturalDocs::File->JoinPaths($cssDirectory, ($i + 1) . '.css');  };
        +
        +
        +        my $masterCSSFile = NaturalDocs::File->JoinPaths( NaturalDocs::Settings->ProjectDirectory(), $styles->[$i] . '.css' );
        +
        +        if (! -e $masterCSSFile)
        +            {  $masterCSSFile = NaturalDocs::File->JoinPaths( NaturalDocs::Settings->StyleDirectory(), $styles->[$i] . '.css' );  };
        +
        +        # We check both the date and the size in case the user switches between two styles which just happen to have the same
        +        # date.  Should rarely happen, but it might.
        +        if (! -e $outputCSSFile ||
        +            (stat($masterCSSFile))[9] != (stat($outputCSSFile))[9] ||
        +             -s $masterCSSFile != -s $outputCSSFile)
        +            {
        +            if (!NaturalDocs::Settings->IsQuiet() && !$saidUpdatingCSSFile)
        +                {
        +                print "Updating CSS file...\n";
        +                $saidUpdatingCSSFile = 1;
        +                };
        +
        +            NaturalDocs::File->Copy($masterCSSFile, $outputCSSFile);
        +
        +            $changed = 1;
        +            };
        +        };
        +
        +
        +    my $deleteFrom;
        +
        +    if (scalar @$styles == 1)
        +        {  $deleteFrom = 1;  }
        +    else
        +        {  $deleteFrom = scalar @$styles + 1;  };
        +
        +    for (;;)
        +        {
        +        my $file = NaturalDocs::File->JoinPaths($cssDirectory, $deleteFrom . '.css');
        +
        +        if (! -e $file)
        +            {  last;  };
        +
        +        unlink ($file);
        +        $deleteFrom++;
        +
        +        $changed = 1;
        +        };
        +
        +
        +    if ($changed)
        +        {
        +        if (scalar @$styles > 1)
        +            {
        +            open(FH_CSS_FILE, '>' . $mainCSSFile);
        +		    binmode(FH_CSS_FILE, ':encoding(UTF-8)');
        +
        +            for (my $i = 0; $i < scalar @$styles; $i++)
        +                {
        +                print FH_CSS_FILE '@import URL("' . ($i + 1) . '.css");' . "\n";
        +                };
        +
        +            close(FH_CSS_FILE);
        +            };
        +        };
        +
        +
        +
        +    # Update the JavaScript files
        +
        +    my $jsMaster = NaturalDocs::File->JoinPaths( NaturalDocs::Settings->JavaScriptDirectory(), 'NaturalDocs.js' );
        +    my $jsOutput = $self->MainJavaScriptFile();
        +
        +    # We check both the date and the size in case the user switches between two styles which just happen to have the same
        +    # date.  Should rarely happen, but it might.
        +    if (! -e $jsOutput ||
        +        (stat($jsMaster))[9] != (stat($jsOutput))[9] ||
        +         -s $jsMaster != -s $jsOutput)
        +        {
        +        NaturalDocs::File->Copy($jsMaster, $jsOutput);
        +        };
        +
        +
        +    my $prettifyOutput = $self->PrettifyJavaScriptFile();
        +
        +    if (NaturalDocs::Settings->HighlightCode() || NaturalDocs::Settings->HighlightAnonymous())
        +    	{
        +	    my $prettifyMaster = NaturalDocs::File->JoinPaths( NaturalDocs::Settings->JavaScriptDirectory(), 'GooglePrettify.js' );
        +
        +	    # We check both the date and the size in case the user switches between two styles which just happen to have the same
        +	    # date.  Should rarely happen, but it might.
        +	    if (! -e $prettifyOutput ||
        +	        (stat($prettifyMaster))[9] != (stat($prettifyOutput))[9] ||
        +	         -s $prettifyMaster != -s $prettifyOutput)
        +	        {
        +	        NaturalDocs::File->Copy($prettifyMaster, $prettifyOutput);
        +	        };
        +	    }
        +	elsif (-e $prettifyOutput)
        +		{
        +		unlink $prettifyOutput;
        +		}
        +
        +
        +    my @indexes = keys %{NaturalDocs::Menu->Indexes()};
        +
        +    open(FH_INDEXINFOJS, '>' . NaturalDocs::File->JoinPaths( $self->JavaScriptDirectory(), 'searchdata.js'));
        +    binmode(FH_INDEXINFOJS, ':encoding(UTF-8)');
        +
        +    print FH_INDEXINFOJS
        +    "var indexSectionsWithContent = {\n";
        +
        +    for (my $i = 0; $i < scalar @indexes; $i++)
        +        {
        +        if ($i != 0)
        +            {  print FH_INDEXINFOJS ",\n";  };
        +
        +        print FH_INDEXINFOJS '   "' . NaturalDocs::Topics->NameOfType($indexes[$i], 1, 1) . "\": {\n";
        +
        +        my $content = NaturalDocs::SymbolTable->IndexSectionsWithContent($indexes[$i]);
        +        for (my $contentIndex = 0; $contentIndex < 28; $contentIndex++)
        +            {
        +            if ($contentIndex != 0)
        +                {  print FH_INDEXINFOJS ",\n";  };
        +
        +            print FH_INDEXINFOJS '      "' . $searchExtensions[$contentIndex] . '": ' . ($content->[$contentIndex] ? 'true' : 'false');
        +            };
        +
        +        print FH_INDEXINFOJS "\n      }";
        +        };
        +
        +    print FH_INDEXINFOJS
        +    "\n   }";
        +
        +    close(FH_INDEXINFOJS);
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Section Functions
        +
        +
        +#
        +#   Function: BuildTitle
        +#
        +#   Builds and returns the HTML page title of a file.
        +#
        +#   Parameters:
        +#
        +#       sourceFile - The source <FileName> to build the title of.
        +#
        +#   Returns:
        +#
        +#       The source file's title in HTML.
        +#
        +sub BuildTitle #(sourceFile)
        +    {
        +    my ($self, $sourceFile) = @_;
        +
        +    # If we have a menu title, the page title is [menu title] - [file title].  Otherwise it is just [file title].
        +
        +    my $title = NaturalDocs::Project->DefaultMenuTitleOf($sourceFile);
        +
        +    my $menuTitle = NaturalDocs::Menu->Title();
        +    if (defined $menuTitle && $menuTitle ne $title)
        +        {  $title .= ' - ' . $menuTitle;  };
        +
        +    $title = $self->StringToHTML($title);
        +
        +    return $title;
        +    };
        +
        +#
        +#   Function: BuildMenu
        +#
        +#   Builds and returns the side menu of a file.
        +#
        +#   Parameters:
        +#
        +#       sourceFile - The source <FileName> to use if you're looking for a source file.
        +#       indexType - The index <TopicType> to use if you're looking for an index.
        +#
        +#       Both sourceFile and indexType may be undef.
        +#
        +#   Returns:
        +#
        +#       The side menu in HTML.
        +#
        +#   Dependencies:
        +#
        +#       - <Builder::HTML::UpdateFile()> and <Builder::HTML::UpdateIndex()> require this section to be surrounded with the exact
        +#         strings "<div id=Menu>" and "</div><!--Menu-->".
        +#       - This function depends on the way <BuildMenuSegment()> formats file and index entries.
        +#
        +sub BuildMenu #(FileName sourceFile, TopicType indexType) -> string htmlMenu
        +    {
        +    my ($self, $sourceFile, $indexType) = @_;
        +
        +    if (!$menuNumbersAndLengthsDone)
        +        {
        +        $menuGroupNumber = 1;
        +        $menuLength = 0;
        +        %menuGroupLengths = ( );
        +        %menuGroupNumbers = ( );
        +        $menuRootLength = 0;
        +        };
        +
        +    my $outputDirectory;
        +
        +    if ($sourceFile)
        +        {  $outputDirectory = NaturalDocs::File->NoFileName( $self->OutputFileOf($sourceFile) );  }
        +    elsif ($indexType)
        +        {  $outputDirectory = NaturalDocs::File->NoFileName( $self->IndexFileOf($indexType) );  }
        +    else
        +        {  $outputDirectory = NaturalDocs::Settings->OutputDirectoryOf($self);  };
        +
        +
        +    # Comment needed for UpdateFile().
        +    my $output = '<div id=Menu>';
        +
        +
        +    if (!exists $prebuiltMenus{$outputDirectory})
        +        {
        +        my $segmentOutput;
        +
        +        ($segmentOutput, $menuRootLength) =
        +            $self->BuildMenuSegment($outputDirectory, NaturalDocs::Menu->Content(), 1);
        +
        +        my $titleOutput;
        +
        +        my $menuTitle = NaturalDocs::Menu->Title();
        +        if (defined $menuTitle)
        +            {
        +            if (!$menuNumbersAndLengthsDone)
        +                {  $menuLength += MENU_TITLE_LENGTH;  };
        +
        +            $menuRootLength += MENU_TITLE_LENGTH;
        +
        +            $titleOutput .=
        +            '<div class=MTitle>'
        +                . $self->StringToHTML($menuTitle);
        +
        +            my $menuSubTitle = NaturalDocs::Menu->SubTitle();
        +            if (defined $menuSubTitle)
        +                {
        +                if (!$menuNumbersAndLengthsDone)
        +                    {  $menuLength += MENU_SUBTITLE_LENGTH;  };
        +
        +                $menuRootLength += MENU_SUBTITLE_LENGTH;
        +
        +                $titleOutput .=
        +                '<div class=MSubTitle>'
        +                    . $self->StringToHTML($menuSubTitle)
        +                . '</div>';
        +                };
        +
        +            $titleOutput .=
        +            '</div>';
        +            };
        +
        +        my $searchOutput;
        +
        +        if (scalar keys %{NaturalDocs::Menu->Indexes()})
        +            {
        +            $searchOutput =
        +            '<script type="text/javascript"><!--' . "\n"
        +                . 'var searchPanel = new SearchPanel("searchPanel", "' . $self->CommandLineOption() . '", '
        +                    . '"' . $self->MakeRelativeURL($outputDirectory, $self->SearchResultsDirectory()) . '");' . "\n"
        +            . '--></script>'
        +
        +            . '<div id=MSearchPanel class=MSearchPanelInactive>'
        +                . '<input type=text id=MSearchField value=Search '
        +                    . 'onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" '
        +                    . 'onKeyUp="searchPanel.OnSearchFieldChange()">'
        +                . '<select id=MSearchType '
        +                    . 'onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" '
        +                    . 'onChange="searchPanel.OnSearchTypeChange()">';
        +
        +                my @indexes = keys %{NaturalDocs::Menu->Indexes()};
        +                @indexes = sort
        +                    {
        +                    if ($a eq ::TOPIC_GENERAL())  {  return -1;  }
        +                    elsif ($b eq ::TOPIC_GENERAL())  {  return 1;  }
        +                    else  {  return (NaturalDocs::Topics->NameOfType($a, 1) cmp NaturalDocs::Topics->NameOfType($b, 1))  };
        +                    }  @indexes;
        +
        +                foreach my $index (@indexes)
        +                    {
        +                    my ($name, $extra);
        +                    if ($index eq ::TOPIC_GENERAL())
        +                        {
        +                        $name = 'Everything';
        +                        $extra = ' id=MSearchEverything selected ';
        +                        }
        +                    else
        +                        {  $name = $self->ConvertAmpChars(NaturalDocs::Topics->NameOfType($index, 1));  }
        +
        +                    $searchOutput .=
        +                    '<option ' . $extra . 'value="' . NaturalDocs::Topics->NameOfType($index, 1, 1) . '">'
        +                        . $name
        +                    . '</option>';
        +                    };
        +
        +                $searchOutput .=
        +                '</select>'
        +            . '</div>';
        +            };
        +
        +        $prebuiltMenus{$outputDirectory} = $titleOutput . $segmentOutput . $searchOutput;
        +        $output .= $titleOutput . $segmentOutput . $searchOutput;
        +        }
        +    else
        +        {  $output .= $prebuiltMenus{$outputDirectory};  };
        +
        +
        +    # Highlight the menu selection.
        +
        +    if ($sourceFile)
        +        {
        +        # Dependency: This depends on how BuildMenuSegment() formats file entries.
        +        my $outputFile = $self->OutputFileOf($sourceFile);
        +        my $tag = '<div class=MFile><a href="' . $self->MakeRelativeURL($outputDirectory, $outputFile) . '">';
        +        my $tagIndex = index($output, $tag);
        +
        +        if ($tagIndex != -1)
        +            {
        +            my $endIndex = index($output, '</a>', $tagIndex);
        +
        +            substr($output, $endIndex, 4, '');
        +            substr($output, $tagIndex, length($tag), '<div class=MFile id=MSelected>');
        +            };
        +        }
        +    elsif ($indexType)
        +        {
        +        # Dependency: This depends on how BuildMenuSegment() formats index entries.
        +        my $outputFile = $self->IndexFileOf($indexType);
        +        my $tag = '<div class=MIndex><a href="' . $self->MakeRelativeURL($outputDirectory, $outputFile) . '">';
        +        my $tagIndex = index($output, $tag);
        +
        +        if ($tagIndex != -1)
        +            {
        +            my $endIndex = index($output, '</a>', $tagIndex);
        +
        +            substr($output, $endIndex, 4, '');
        +            substr($output, $tagIndex, length($tag), '<div class=MIndex id=MSelected>');
        +            };
        +        };
        +
        +
        +    # If the completely expanded menu is too long, collapse all the groups that aren't in the selection hierarchy or near the
        +    # selection.  By doing this instead of having them default to closed via CSS, any browser that doesn't support changing this at
        +    # runtime will keep the menu entirely open so that its still usable.
        +
        +    if ($menuLength > MENU_LENGTH_LIMIT())
        +        {
        +        my $menuSelectionHierarchy = $self->GetMenuSelectionHierarchy($sourceFile, $indexType);
        +
        +        my $toExpand = $self->ExpandMenu($sourceFile, $indexType, $menuSelectionHierarchy, $menuRootLength);
        +
        +        $output .=
        +
        +        '<script language=JavaScript><!--' . "\n"
        +
        +        . 'HideAllBut([' . join(', ', @$toExpand) . '], ' . $menuGroupNumber . ');'
        +
        +        . '// --></script>';
        +        };
        +
        +    $output .= '</div><!--Menu-->';
        +
        +    $menuNumbersAndLengthsDone = 1;
        +
        +    return $output;
        +    };
        +
        +
        +#
        +#   Function: BuildMenuSegment
        +#
        +#   A recursive function to build a segment of the menu.  *Remember to reset the <Menu Package Variables> before calling this
        +#   for the first time.*
        +#
        +#   Parameters:
        +#
        +#       outputDirectory - The output directory the menu is being built for.
        +#       menuSegment - An arrayref specifying the segment of the menu to build.  Either pass the menu itself or the contents
        +#                               of a group.
        +#       topLevel - Whether the passed segment is the top level segment or not.
        +#
        +#   Returns:
        +#
        +#       The array ( menuHTML, length ).
        +#
        +#       menuHTML - The menu segment in HTML.
        +#       groupLength - The length of the group, *not* including the contents of any subgroups, as computed from the
        +#                            <Menu Length Constants>.
        +#
        +#   Dependencies:
        +#
        +#       - <BuildMenu()> depends on the way this function formats file and index entries.
        +#
        +sub BuildMenuSegment #(outputDirectory, menuSegment, topLevel)
        +    {
        +    my ($self, $outputDirectory, $menuSegment, $topLevel) = @_;
        +
        +    my $output;
        +    my $groupLength = 0;
        +
        +    foreach my $entry (@$menuSegment)
        +        {
        +        if ($entry->Type() == ::MENU_GROUP())
        +            {
        +            my ($entryOutput, $entryLength) =
        +                $self->BuildMenuSegment($outputDirectory, $entry->GroupContent());
        +
        +            my $entryNumber;
        +
        +            if (!$menuNumbersAndLengthsDone)
        +                {
        +                $entryNumber = $menuGroupNumber;
        +                $menuGroupNumber++;
        +
        +                $menuGroupLengths{$entry} = $entryLength;
        +                $menuGroupNumbers{$entry} = $entryNumber;
        +                }
        +            else
        +                {  $entryNumber = $menuGroupNumbers{$entry};  };
        +
        +            $output .=
        +            '<div class=MEntry>'
        +                . '<div class=MGroup>'
        +
        +                    . '<a href="javascript:ToggleMenu(\'MGroupContent' . $entryNumber . '\')"'
        +                         . ($self->CommandLineOption() eq 'FramedHTML' ? ' target="_self"' : '') . '>'
        +                        . $self->StringToHTML($entry->Title())
        +                    . '</a>'
        +
        +                    . '<div class=MGroupContent id=MGroupContent' . $entryNumber . '>'
        +                        . $entryOutput
        +                    . '</div>'
        +
        +                . '</div>'
        +            . '</div>';
        +
        +            $groupLength += MENU_GROUP_LENGTH;
        +            }
        +
        +        elsif ($entry->Type() == ::MENU_FILE())
        +            {
        +            my $targetOutputFile = $self->OutputFileOf($entry->Target());
        +
        +        # Dependency: BuildMenu() depends on how this formats file entries.
        +            $output .=
        +            '<div class=MEntry>'
        +                . '<div class=MFile>'
        +                    . '<a href="' . $self->MakeRelativeURL($outputDirectory, $targetOutputFile) . '">'
        +                        . $self->StringToHTML( $entry->Title(), ADD_HIDDEN_BREAKS)
        +                    . '</a>'
        +                . '</div>'
        +            . '</div>';
        +
        +            $groupLength += MENU_FILE_LENGTH;
        +            }
        +
        +        elsif ($entry->Type() == ::MENU_TEXT())
        +            {
        +            $output .=
        +            '<div class=MEntry>'
        +                . '<div class=MText>'
        +                    . $self->StringToHTML( $entry->Title() )
        +                . '</div>'
        +            . '</div>';
        +
        +            $groupLength += MENU_TEXT_LENGTH;
        +            }
        +
        +        elsif ($entry->Type() == ::MENU_LINK())
        +            {
        +            $output .=
        +            '<div class=MEntry>'
        +                . '<div class=MLink>'
        +                    . '<a href="' . $entry->Target() . '"' . ($self->CommandLineOption() eq 'FramedHTML' ? ' target="_top"' : '') . '>'
        +                        . $self->StringToHTML( $entry->Title() )
        +                    . '</a>'
        +                . '</div>'
        +            . '</div>';
        +
        +            $groupLength += MENU_LINK_LENGTH;
        +            }
        +
        +        elsif ($entry->Type() == ::MENU_INDEX())
        +            {
        +            my $indexFile = $self->IndexFileOf($entry->Target);
        +
        +        # Dependency: BuildMenu() depends on how this formats index entries.
        +            $output .=
        +            '<div class=MEntry>'
        +                . '<div class=MIndex>'
        +                    . '<a href="' . $self->MakeRelativeURL( $outputDirectory, $self->IndexFileOf($entry->Target()) ) . '">'
        +                        . $self->StringToHTML( $entry->Title() )
        +                    . '</a>'
        +                . '</div>'
        +            . '</div>';
        +
        +            $groupLength += MENU_INDEX_LENGTH;
        +            };
        +        };
        +
        +
        +    if (!$menuNumbersAndLengthsDone)
        +        {  $menuLength += $groupLength;  };
        +
        +    return ($output, $groupLength);
        +    };
        +
        +
        +#
        +#   Function: BuildContent
        +#
        +#   Builds and returns the main page content.
        +#
        +#   Parameters:
        +#
        +#       sourceFile - The source <FileName>.
        +#       parsedFile - The parsed source file as an arrayref of <NaturalDocs::Parser::ParsedTopic> objects.
        +#
        +#   Returns:
        +#
        +#       The page content in HTML.
        +#
        +sub BuildContent #(sourceFile, parsedFile)
        +    {
        +    my ($self, $sourceFile, $parsedFile) = @_;
        +
        +    $self->ResetToolTips();
        +    $imageAnchorNumber = 1;
        +    $imageContent = undef;
        +
        +    my $output = '<div id=Content>';
        +    my $i = 0;
        +
        +    while ($i < scalar @$parsedFile)
        +        {
        +        my $anchor = $self->SymbolToHTMLSymbol($parsedFile->[$i]->Symbol());
        +
        +        my $scope = NaturalDocs::Topics->TypeInfo($parsedFile->[$i]->Type())->Scope();
        +
        +
        +        # The anchors are closed, but not around the text, so the :hover CSS style won't accidentally kick in.
        +
        +        my $headerType;
        +
        +        if ($i == 0)
        +            {  $headerType = 'h1';  }
        +        elsif ($scope == ::SCOPE_START() || $scope == ::SCOPE_END())
        +            {  $headerType = 'h2';  }
        +        else
        +            {  $headerType = 'h3';  };
        +
        +        $output .=
        +
        +        '<div class="C' . NaturalDocs::Topics->NameOfType($parsedFile->[$i]->Type(), 0, 1) . '">'
        +            . '<div class=CTopic' . ($i == 0 ? ' id=MainTopic' : '') . '>'
        +
        +                . '<' . $headerType . ' class=CTitle>'
        +                    . '<a name="' . $anchor . '"></a>'
        +                    . $self->StringToHTML( $parsedFile->[$i]->Title(), ADD_HIDDEN_BREAKS)
        +                . '</' . $headerType . '>';
        +
        +
        +        my $hierarchy;
        +        if (NaturalDocs::Topics->TypeInfo( $parsedFile->[$i]->Type() )->ClassHierarchy())
        +            {
        +            $hierarchy = $self->BuildClassHierarchy($sourceFile, $parsedFile->[$i]->Symbol());
        +            };
        +
        +        my $summary;
        +        if ($i == 0 || $scope == ::SCOPE_START() || $scope == ::SCOPE_END())
        +            {
        +            $summary .= $self->BuildSummary($sourceFile, $parsedFile, $i);
        +            };
        +
        +        my $hasBody;
        +        if (defined $hierarchy || defined $summary ||
        +            defined $parsedFile->[$i]->Prototype() || defined $parsedFile->[$i]->Body())
        +            {
        +            $output .= '<div class=CBody>';
        +            $hasBody = 1;
        +            };
        +
        +        $output .= $hierarchy;
        +
        +        if (defined $parsedFile->[$i]->Prototype())
        +            {
        +            $output .= $self->BuildPrototype($parsedFile->[$i]->Type(), $parsedFile->[$i]->Prototype(), $sourceFile);
        +            };
        +
        +        if (defined $parsedFile->[$i]->Body())
        +            {
        +            $output .= $self->NDMarkupToHTML( $sourceFile, $parsedFile->[$i]->Body(), $parsedFile->[$i]->Symbol(),
        +                                                                  $parsedFile->[$i]->Package(), $parsedFile->[$i]->Type(),
        +                                                                  $parsedFile->[$i]->Using() );
        +            };
        +
        +        $output .= $summary;
        +
        +
        +        if ($hasBody)
        +            {  $output .= '</div>';  };
        +
        +        $output .=
        +            '</div>' # CTopic
        +        . '</div>' # CType
        +        . "\n\n";
        +
        +        $i++;
        +        };
        +
        +    $output .= '</div><!--Content-->';
        +
        +    return $output;
        +    };
        +
        +
        +#
        +#   Function: BuildSummary
        +#
        +#   Builds a summary, either for the entire file or the current class/section.
        +#
        +#   Parameters:
        +#
        +#       sourceFile - The source <FileName> the summary appears in.
        +#
        +#       parsedFile - A reference to the parsed source file.
        +#
        +#       index   - The index into the parsed file to start at.  If undef or zero, it builds a summary for the entire file.  If it's the
        +#                    index of a <TopicType> that starts or ends a scope, it builds a summary for that scope
        +#
        +#   Returns:
        +#
        +#       The summary in HTML.
        +#
        +sub BuildSummary #(sourceFile, parsedFile, index)
        +    {
        +    my ($self, $sourceFile, $parsedFile, $index) = @_;
        +    my $completeSummary;
        +
        +    if (!defined $index || $index == 0)
        +        {
        +        $index = 0;
        +        $completeSummary = 1;
        +        }
        +    else
        +        {
        +        # Skip the scope entry.
        +        $index++;
        +        };
        +
        +    if ($index + 1 >= scalar @$parsedFile)
        +        {  return undef;  };
        +
        +
        +    my $scope = NaturalDocs::Topics->TypeInfo($parsedFile->[$index]->Type())->Scope();
        +
        +    # Return nothing if there's only one entry.
        +    if (!$completeSummary && ($scope == ::SCOPE_START() || $scope == ::SCOPE_END()) )
        +        {  return undef;  };
        +
        +
        +    my $indent = 0;
        +    my $inGroup;
        +
        +    my $isMarked = 0;
        +
        +    my $output =
        +    '<!--START_ND_SUMMARY-->'
        +    . '<div class=Summary><div class=STitle>Summary</div>'
        +
        +        # Not all browsers get table padding right, so we need a div to apply the border.
        +        . '<div class=SBorder>'
        +        . '<table border=0 cellspacing=0 cellpadding=0 class=STable>';
        +
        +        while ($index < scalar @$parsedFile)
        +            {
        +            my $topic = $parsedFile->[$index];
        +            my $scope = NaturalDocs::Topics->TypeInfo($topic->Type())->Scope();
        +
        +            if (!$completeSummary && ($scope == ::SCOPE_START() || $scope == ::SCOPE_END()) )
        +                {  last;  };
        +
        +
        +            # Remove modifiers as appropriate for the current entry.
        +
        +            if ($scope == ::SCOPE_START() || $scope == ::SCOPE_END())
        +                {
        +                $indent = 0;
        +                $inGroup = 0;
        +                $isMarked = 0;
        +                }
        +            elsif ($topic->Type() eq ::TOPIC_GROUP())
        +                {
        +                if ($inGroup)
        +                    {  $indent--;  };
        +
        +                $inGroup = 0;
        +                $isMarked = 0;
        +                };
        +
        +
        +            $output .=
        +             '<tr class="S' . ($index == 0 ? 'Main' : NaturalDocs::Topics->NameOfType($topic->Type(), 0, 1))
        +                . ($indent ? ' SIndent' . $indent : '') . ($isMarked ? ' SMarked' : '') .'">'
        +                . '<td class=SEntry>';
        +
        +           # Add the entry itself.
        +
        +            my $toolTipProperties;
        +
        +            # We only want a tooltip here if there's a protoype.  Otherwise it's redundant.
        +
        +            if (defined $topic->Prototype())
        +                {
        +                my $tooltipID = $self->BuildToolTip($topic->Symbol(), $sourceFile, $topic->Type(),
        +                                                                     $topic->Prototype(), $topic->Summary());
        +                $toolTipProperties = $self->BuildToolTipLinkProperties($tooltipID);
        +                };
        +
        +            $output .=
        +            '<a href="#' . $self->SymbolToHTMLSymbol($parsedFile->[$index]->Symbol()) . '" ' . $toolTipProperties . '>'
        +                . $self->StringToHTML( $parsedFile->[$index]->Title(), ADD_HIDDEN_BREAKS)
        +            . '</a>';
        +
        +
        +            $output .=
        +            '</td><td class=SDescription>';
        +
        +            if (defined $parsedFile->[$index]->Body())
        +                {
        +                $output .= $self->NDMarkupToHTML($sourceFile, $parsedFile->[$index]->Summary(),
        +                                                                     $parsedFile->[$index]->Symbol(), $parsedFile->[$index]->Package(),
        +                                                                     $parsedFile->[$index]->Type(), $parsedFile->[$index]->Using(),
        +                                                                     NDMARKUPTOHTML_SUMMARY);
        +                };
        +
        +
        +            $output .=
        +            '</td></tr>';
        +
        +
        +            # Prepare the modifiers for the next entry.
        +
        +            if ($scope == ::SCOPE_START() || $scope == ::SCOPE_END())
        +                {
        +                $indent = 1;
        +                $inGroup = 0;
        +                }
        +            elsif ($topic->Type() eq ::TOPIC_GROUP())
        +                {
        +                if (!$inGroup)
        +                    {
        +                    $indent++;
        +                    $inGroup = 1;
        +                    };
        +                };
        +
        +            $isMarked ^= 1;
        +            $index++;
        +            };
        +
        +        $output .=
        +        '</table>'
        +    . '</div>' # Body
        +    . '</div>' # Summary
        +    . "<!--END_ND_SUMMARY-->";
        +
        +    return $output;
        +    };
        +
        +
        +#
        +#   Function: BuildPrototype
        +#
        +#   Builds and returns the prototype as HTML.
        +#
        +#   Parameters:
        +#
        +#       type - The <TopicType> the prototype is from.
        +#       prototype - The prototype to format.
        +#       file - The <FileName> the prototype was defined in.
        +#
        +#   Returns:
        +#
        +#       The prototype in HTML.
        +#
        +sub BuildPrototype #(type, prototype, file)
        +    {
        +    my ($self, $type, $prototype, $file) = @_;
        +
        +    my $language = NaturalDocs::Languages->LanguageOf($file);
        +    my $prototypeObject = $language->ParsePrototype($type, $prototype);
        +
        +    my $output;
        +
        +    if ($prototypeObject->OnlyBeforeParameters())
        +        {
        +        $output =
        +        # A blockquote to scroll it if it's too long.
        +        '<blockquote>'
        +            # A surrounding table as a hack to make the div form-fit.
        +            . '<table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr>'
        +            	. '<td' . (NaturalDocs::Settings->HighlightCode() ? ' class="prettyprint"' : '') . '>'
        +	                . $self->ConvertAmpChars($prototypeObject->BeforeParameters())
        +	            . '</td>'
        +	        . '</tr></table>'
        +        . '</blockquote>';
        +        }
        +
        +    else
        +        {
        +        my $params = $prototypeObject->Parameters();
        +        my $beforeParams = $prototypeObject->BeforeParameters();
        +        my $afterParams = $prototypeObject->AfterParameters();
        +
        +	    my $highlightClass = (NaturalDocs::Settings->HighlightCode() ? ' prettyprint ' : '');
        +
        +        # Determine what features the prototype has and its length.
        +
        +        my ($hasType, $hasTypePrefix, $hasNamePrefix, $hasDefaultValue, $hasDefaultValuePrefix);
        +        my $maxParamLength = 0;
        +
        +        foreach my $param (@$params)
        +            {
        +            my $paramLength = length($param->Name());
        +
        +            if ($param->Type())
        +                {
        +                $hasType = 1;
        +                $paramLength += length($param->Type()) + 1;
        +                };
        +            if ($param->TypePrefix())
        +                {
        +                $hasTypePrefix = 1;
        +                $paramLength += length($param->TypePrefix()) + 1;
        +                };
        +            if ($param->NamePrefix())
        +                {
        +                $hasNamePrefix = 1;
        +                $paramLength += length($param->NamePrefix());
        +                };
        +            if ($param->DefaultValue())
        +                {
        +                $hasDefaultValue = 1;
        +
        +                # The length of the default value part is either the longest word, or 1/3 the total, whichever is longer.  We do this
        +                # because we don't want parameter lines wrapping to more than three lines, and there's no guarantee that the line will
        +                # wrap at all.  There's a small possibility that it could still wrap to four lines with this code, but we don't need to go
        +                # crazy(er) here.
        +
        +                my $thirdLength = length($param->DefaultValue()) / 3;
        +
        +                my @words = split(/ +/, $param->DefaultValue());
        +                my $maxWordLength = 0;
        +
        +                foreach my $word (@words)
        +                    {
        +                    if (length($word) > $maxWordLength)
        +                        {  $maxWordLength = length($word);  };
        +                    };
        +
        +                $paramLength += ($maxWordLength > $thirdLength ? $maxWordLength : $thirdLength) + 1;
        +                };
        +            if ($param->DefaultValuePrefix())
        +                {
        +                $hasDefaultValuePrefix = 1;
        +                $paramLength += length($param->DefaultValuePrefix()) + 1;
        +                };
        +
        +            if ($paramLength > $maxParamLength)
        +                {  $maxParamLength = $paramLength;  };
        +            };
        +
        +        my $useCondensed = (length($beforeParams) + $maxParamLength + length($afterParams) > 80 ? 1 : 0);
        +        my $parameterColumns = 1 + $hasType + $hasTypePrefix + $hasNamePrefix +
        +                                               $hasDefaultValue + $hasDefaultValuePrefix + $useCondensed;
        +
        +        $output =
        +        '<blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td>'
        +
        +            # Stupid hack to get it to work right in IE.
        +            . '<table border=0 cellspacing=0 cellpadding=0><tr>'
        +
        +            . '<td class="PBeforeParameters ' . $highlightClass . '"' . ($useCondensed ? 'colspan=' . $parameterColumns : 'nowrap') . '>'
        +                . $self->ConvertAmpChars($beforeParams);
        +
        +                if ($beforeParams && $beforeParams !~ /[\(\[\{\<]$/)
        +                    {  $output .= '&nbsp;';  };
        +
        +            $output .=
        +            '</td>';
        +
        +            for (my $i = 0; $i < scalar @$params; $i++)
        +                {
        +                if ($useCondensed)
        +                    {
        +                    $output .= '</tr><tr><td>&nbsp;&nbsp;&nbsp;</td>';
        +                    }
        +                elsif ($i > 0)
        +                    {
        +                    # Go to the next row and and skip the BeforeParameters cell.
        +                    $output .= '</tr><tr><td></td>';
        +                    };
        +
        +                if ($language->TypeBeforeParameter())
        +                    {
        +                    if ($hasTypePrefix)
        +                        {
        +                        my $htmlTypePrefix = $self->ConvertAmpChars($params->[$i]->TypePrefix());
        +                        $htmlTypePrefix =~ s/ $/&nbsp;/;
        +
        +                        $output .=
        +                        '<td class="PTypePrefix ' . $highlightClass . '" nowrap>'
        +                            . $htmlTypePrefix
        +                        . '</td>';
        +                        };
        +
        +                    if ($hasType)
        +                        {
        +                        $output .=
        +                        '<td class="PType ' . $highlightClass . '" nowrap>'
        +                            . $self->ConvertAmpChars($params->[$i]->Type()) . '&nbsp;'
        +                        . '</td>';
        +                        };
        +
        +                    if ($hasNamePrefix)
        +                        {
        +                        $output .=
        +                        '<td class="PParameterPrefix ' . $highlightClass . '" nowrap>'
        +                            . $self->ConvertAmpChars($params->[$i]->NamePrefix())
        +                        . '</td>';
        +                        };
        +
        +                    $output .=
        +                    '<td class="PParameter ' . $highlightClass . '" nowrap' . ($useCondensed && !$hasDefaultValue ? ' width=100%' : '') . '>'
        +                        . $self->ConvertAmpChars($params->[$i]->Name())
        +                    . '</td>';
        +                    }
        +
        +                else # !$language->TypeBeforeParameter()
        +                    {
        +                    $output .=
        +                    '<td class="PParameter ' . $highlightClass . '" nowrap>'
        +                        . $self->ConvertAmpChars( $params->[$i]->NamePrefix() . $params->[$i]->Name() )
        +                    . '</td>';
        +
        +                    if ($hasType || $hasTypePrefix)
        +                        {
        +                        my $typePrefix = $params->[$i]->TypePrefix();
        +                        if ($typePrefix)
        +                            {  $typePrefix .= ' ';  };
        +
        +                        $output .=
        +                        '<td class="PType ' . $highlightClass . '" nowrap' . ($useCondensed && !$hasDefaultValue ? ' width=100%' : '') . '>'
        +                            . '&nbsp;' . $self->ConvertAmpChars( $typePrefix . $params->[$i]->Type() )
        +                        . '</td>';
        +                        };
        +                    };
        +
        +                if ($hasDefaultValuePrefix)
        +                    {
        +                    $output .=
        +                    '<td class="PDefaultValuePrefix ' . $highlightClass . '">'
        +
        +                       . '&nbsp;' . $self->ConvertAmpChars( $params->[$i]->DefaultValuePrefix() ) . '&nbsp;'
        +                    . '</td>';
        +                    };
        +
        +                if ($hasDefaultValue)
        +                    {
        +                    $output .=
        +                    '<td class="PDefaultValue ' . $highlightClass . '" width=100%>'
        +                        . ($hasDefaultValuePrefix ? '' : '&nbsp;') . $self->ConvertAmpChars( $params->[$i]->DefaultValue() )
        +                    . '</td>';
        +                    };
        +                };
        +
        +            if ($useCondensed)
        +                {  $output .= '</tr><tr>';  };
        +
        +            $output .=
        +            '<td class="PAfterParameters ' . $highlightClass . '"' . ($useCondensed ? 'colspan=' . $parameterColumns : 'nowrap') . '>'
        +                 . $self->ConvertAmpChars($afterParams);
        +
        +                if ($afterParams && $afterParams !~ /^[\)\]\}\>]/)
        +                    {  $output .= '&nbsp;';  };
        +
        +            $output .=
        +            '</td>'
        +        . '</tr></table>'
        +
        +        # Hack.
        +        . '</td></tr></table></blockquote>';
        +       };
        +
        +    return $output;
        +    };
        +
        +
        +#
        +#   Function: BuildFooter
        +#
        +#   Builds and returns the HTML footer for the page.
        +#
        +#   Parameters:
        +#
        +#       multiline - Whether it should be formatted on multiple lines or not.
        +#
        +#   Dependencies:
        +#
        +#       <Builder::HTML::UpdateFile()> and <Builder::HTML::UpdateIndex()> require this section to be surrounded with the exact
        +#       strings "<div id=Footer>" and "</div><!--Footer-->".
        +#
        +sub BuildFooter #(bool multiline)
        +    {
        +    my ($self, $multiline) = @_;
        +
        +    my $footer = NaturalDocs::Menu->Footer();
        +    my $timestamp = NaturalDocs::Menu->TimeStamp();
        +    my $divider;
        +
        +    if ($multiline)
        +        {  $divider = '</p><p>';  }
        +    else
        +        {  $divider = '&nbsp; &middot;&nbsp; ';  };
        +
        +
        +    my $output = '<div id=Footer>';
        +    if ($multiline)
        +        {  $output .= '<p>';  };
        +
        +    if (defined $footer)
        +        {
        +        $footer =~ s/\(c\)/&copy;/gi;
        +        $footer =~ s/\(tm\)/&trade;/gi;
        +        $footer =~ s/\(r\)/&reg;/gi;
        +
        +        $output .= $footer . $divider;
        +        };
        +
        +    if (defined $timestamp)
        +        {
        +        $output .= $timestamp . $divider;
        +        };
        +
        +    $output .=
        +    '<a href="' . NaturalDocs::Settings->AppURL() . '">'
        +        . 'Generated by Natural Docs'
        +    . '</a>';
        +
        +    if ($multiline)
        +        {  $output .= '</p>';  };
        +
        +    $output .=
        +    '</div><!--Footer-->';
        +
        +    return $output;
        +    };
        +
        +
        +#
        +#   Function: BuildToolTip
        +#
        +#   Builds the HTML for a symbol's tooltip and stores it in <tooltipHTML>.
        +#
        +#   Parameters:
        +#
        +#       symbol - The target <SymbolString>.
        +#       file - The <FileName> the target's defined in.
        +#       type - The symbol <TopicType>.
        +#       prototype - The target prototype, or undef for none.
        +#       summary - The target summary, or undef for none.
        +#
        +#   Returns:
        +#
        +#       If a tooltip is necessary for the link, returns the tooltip ID.  If not, returns undef.
        +#
        +sub BuildToolTip #(symbol, file, type, prototype, summary)
        +    {
        +    my ($self, $symbol, $file, $type, $prototype, $summary) = @_;
        +
        +    if (defined $prototype || defined $summary)
        +        {
        +        my $htmlSymbol = $self->SymbolToHTMLSymbol($symbol);
        +        my $number = $tooltipSymbolsToNumbers{$htmlSymbol};
        +
        +        if (!defined $number)
        +            {
        +            $number = $tooltipNumber;
        +            $tooltipNumber++;
        +
        +            $tooltipSymbolsToNumbers{$htmlSymbol} = $number;
        +
        +            $tooltipHTML .=
        +            '<div class=CToolTip id="tt' . $number . '">'
        +                . '<div class=C' . NaturalDocs::Topics->NameOfType($type, 0, 1) . '>';
        +
        +            if (defined $prototype)
        +                {
        +                $tooltipHTML .= $self->BuildPrototype($type, $prototype, $file);
        +                };
        +
        +            if (defined $summary)
        +                {
        +                # The fact that we don't have scope or using shouldn't matter because links shouldn't be included in the style anyway.
        +                $summary = $self->NDMarkupToHTML($file, $summary, undef, undef, $type, undef, NDMARKUPTOHTML_TOOLTIP);
        +                $tooltipHTML .= $summary;
        +                };
        +
        +            $tooltipHTML .=
        +                '</div>'
        +            . '</div>';
        +            };
        +
        +        return 'tt' . $number;
        +        }
        +    else
        +        {  return undef;  };
        +    };
        +
        +#
        +#   Function: BuildToolTips
        +#
        +#   Builds and returns the tooltips for the page in HTML.
        +#
        +sub BuildToolTips
        +    {
        +    my $self = shift;
        +    return "\n<!--START_ND_TOOLTIPS-->\n" . $tooltipHTML . "<!--END_ND_TOOLTIPS-->\n\n";
        +    };
        +
        +#
        +#   Function: BuildClassHierarchy
        +#
        +#   Builds and returns a class hierarchy diagram for the passed class, if applicable.
        +#
        +#   Parameters:
        +#
        +#       file - The source <FileName>.
        +#       class - The class <SymbolString> to build the hierarchy of.
        +#
        +sub BuildClassHierarchy #(file, symbol)
        +    {
        +    my ($self, $file, $symbol) = @_;
        +
        +    my @parents = NaturalDocs::ClassHierarchy->ParentsOf($symbol);
        +    @parents = sort { ::StringCompare($a, $b) } @parents;
        +
        +    my @children = NaturalDocs::ClassHierarchy->ChildrenOf($symbol);
        +    @children = sort { ::StringCompare($a, $b) } @children;
        +
        +    if (!scalar @parents && !scalar @children)
        +        {  return undef;  };
        +
        +    my $output =
        +    '<div class=ClassHierarchy>';
        +
        +    if (scalar @parents)
        +        {
        +        $output .='<table border=0 cellspacing=0 cellpadding=0><tr><td>';
        +
        +        foreach my $parent (@parents)
        +            {
        +            $output .= $self->BuildClassHierarchyEntry($file, $parent, 'CHParent', 1);
        +            };
        +
        +        $output .= '</td></tr></table><div class=CHIndent>';
        +        };
        +
        +    $output .=
        +    '<table border=0 cellspacing=0 cellpadding=0><tr><td>'
        +        . $self->BuildClassHierarchyEntry($file, $symbol, 'CHCurrent', undef)
        +    . '</td></tr></table>';
        +
        +    if (scalar @children)
        +        {
        +        $output .=
        +        '<div class=CHIndent>'
        +            . '<table border=0 cellspacing=0 cellpadding=0><tr><td>';
        +
        +        if (scalar @children <= 5)
        +            {
        +            for (my $i = 0; $i < scalar @children; $i++)
        +                {  $output .= $self->BuildClassHierarchyEntry($file, $children[$i], 'CHChild', 1);  };
        +            }
        +        else
        +            {
        +            for (my $i = 0; $i < 4; $i++)
        +                {  $output .= $self->BuildClassHierarchyEntry($file, $children[$i], 'CHChild', 1);  };
        +
        +           $output .= '<div class=CHChildNote><div class=CHEntry>' . (scalar @children - 4) . ' other children</div></div>';
        +            };
        +
        +        $output .=
        +        '</td></tr></table>'
        +        . '</div>';
        +        };
        +
        +    if (scalar @parents)
        +        {  $output .= '</div>';  };
        +
        +    $output .=
        +    '</div>';
        +
        +    return $output;
        +    };
        +
        +
        +#
        +#   Function: BuildClassHierarchyEntry
        +#
        +#   Builds and returns a single class hierarchy entry.
        +#
        +#   Parameters:
        +#
        +#       file - The source <FileName>.
        +#       symbol - The class <SymbolString> whose entry is getting built.
        +#       style - The style to apply to the entry, such as <CHParent>.
        +#       link - Whether to build a link for this class or not.  When building the selected class' entry, this should be false.  It will
        +#               automatically handle whether the symbol is defined or not.
        +#
        +sub BuildClassHierarchyEntry #(file, symbol, style, link)
        +    {
        +    my ($self, $file, $symbol, $style, $link) = @_;
        +
        +    my @identifiers = NaturalDocs::SymbolString->IdentifiersOf($symbol);
        +    my $name = join(NaturalDocs::Languages->LanguageOf($file)->PackageSeparator(), @identifiers);
        +    $name = $self->StringToHTML($name);
        +
        +    my $output = '<div class=' . $style . '><div class=CHEntry>';
        +
        +    if ($link)
        +        {
        +        my $target = NaturalDocs::SymbolTable->Lookup($symbol, $file);
        +
        +        if (defined $target)
        +            {
        +            my $targetFile;
        +
        +            if ($target->File() ne $file)
        +                {  $targetFile = $self->MakeRelativeURL( $self->OutputFileOf($file), $self->OutputFileOf($target->File()), 1 );  };
        +            # else leave it undef
        +
        +            my $targetTooltipID = $self->BuildToolTip($symbol, $target->File(), $target->Type(),
        +                                                                          $target->Prototype(), $target->Summary());
        +
        +            my $toolTipProperties = $self->BuildToolTipLinkProperties($targetTooltipID);
        +
        +            $output .= '<a href="' . $targetFile . '#' . $self->SymbolToHTMLSymbol($symbol) . '" '
        +                            . 'class=L' . NaturalDocs::Topics->NameOfType($target->Type(), 0, 1) . ' ' . $toolTipProperties . '>'
        +                            . $name . '</a>';
        +            }
        +        else
        +            {  $output .= $name;  };
        +        }
        +    else
        +        {  $output .= $name;  };
        +
        +    $output .= '</div></div>';
        +    return $output;
        +    };
        +
        +
        +#
        +#   Function: OpeningBrowserStyles
        +#
        +#   Returns the JavaScript that will add opening browser styles if necessary.
        +#
        +sub OpeningBrowserStyles
        +    {
        +    my $self = shift;
        +
        +    return
        +
        +    '<script language=JavaScript><!--' . "\n"
        +
        +        # IE 4 and 5 don't understand 'undefined', so you can't say '!= undefined'.
        +        . 'if (browserType) {'
        +            . 'document.write("<div class=" + browserType + ">");'
        +            . 'if (browserVer) {'
        +                . 'document.write("<div class=" + browserVer + ">"); }'
        +            . '}'
        +
        +    . '// --></script>';
        +    };
        +
        +
        +#
        +#   Function: ClosingBrowserStyles
        +#
        +#   Returns the JavaScript that will close browser styles if necessary.
        +#
        +sub ClosingBrowserStyles
        +    {
        +    my $self = shift;
        +
        +    return
        +
        +    '<script language=JavaScript><!--' . "\n"
        +
        +        . 'if (browserType) {'
        +            . 'if (browserVer) {'
        +                . 'document.write("</div>"); }'
        +            . 'document.write("</div>");'
        +            . '}'
        +
        +    . '// --></script>';
        +    };
        +
        +
        +#
        +#   Function: StandardComments
        +#
        +#   Returns the standard HTML comments that should be included in every generated file.  This includes <IEWebMark()>, so this
        +#   really is required for proper functionality.
        +#
        +sub StandardComments
        +    {
        +    my $self = shift;
        +
        +    return "\n\n"
        +
        +        . '<!--  Generated by Natural Docs, version ' . NaturalDocs::Settings->TextAppVersion() . ' -->' . "\n"
        +        . '<!--  ' . NaturalDocs::Settings->AppURL() . '  -->' . "\n\n"
        +        . $self->IEWebMark() . "\n\n";
        +    };
        +
        +
        +#
        +#   Function: IEWebMark
        +#
        +#   Returns the HTML comment necessary to get around the security warnings in IE starting with Windows XP Service Pack 2.
        +#
        +#   With this mark, the HTML page is treated as if it were in the Internet security zone instead of the Local Machine zone.  This
        +#   prevents the lockdown on scripting that causes an error message to appear with each page.
        +#
        +#   More Information:
        +#
        +#       - http://www.microsoft.com/technet/prodtechnol/winxppro/maintain/sp2brows.mspx#EHAA
        +#       - http://www.phdcc.com/xpsp2.htm#markoftheweb
        +#
        +sub IEWebMark
        +    {
        +    my $self = shift;
        +
        +    return '<!-- saved from url=(0026)http://www.naturaldocs.org -->';
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Index Functions
        +
        +
        +#
        +#   Function: BuildIndexPages
        +#
        +#   Builds an index file or files.
        +#
        +#   Parameters:
        +#
        +#       type - The <TopicType> the index is limited to, or undef for none.
        +#       indexSections  - An arrayref of sections, each section being an arrayref <NaturalDocs::SymbolTable::IndexElement>
        +#                               objects.  The first section is for symbols, the second for numbers, and the rest for A through Z.
        +#       beginIndexPage - All the content of the HTML page up to where the index content should appear.
        +#       endIndexPage - All the content of the HTML page past where the index should appear.
        +#       beginSearchResultsPage - All the content of the HTML page up to where the search results content should appear.
        +#       endSearchResultsPage - All the content of the HTML page past where the search results content should appear.
        +#
        +#   Returns:
        +#
        +#       The number of pages in the index.
        +#
        +sub BuildIndexPages #(TopicType type, NaturalDocs::SymbolTable::IndexElement[] indexSections, string beginIndexPage, string endIndexPage, string beginSearchResultsPage, string endSearchResultsPage) => int
        +    {
        +    my ($self, $type, $indexSections, $beginIndexPage, $endIndexPage, $beginSearchResultsPage, $endSearchResultsPage) = @_;
        +
        +
        +    # Build the content.
        +
        +    my ($indexHTMLSections, $tooltipHTMLSections, $searchResultsHTMLSections) = $self->BuildIndexSections($indexSections);
        +
        +
        +    # Generate the search result pages.
        +
        +   for (my $i = 0; $i < 28; $i++)
        +        {
        +        if ($searchResultsHTMLSections->[$i])
        +            {
        +            my $searchResultsFileName = $self->SearchResultsFileOf($type, $searchExtensions[$i]);
        +
        +            open(INDEXFILEHANDLE, '>' . $searchResultsFileName)
        +                or die "Couldn't create output file " . $searchResultsFileName . ".\n";
        +
        +		    binmode(INDEXFILEHANDLE, ':encoding(UTF-8)');
        +
        +            print INDEXFILEHANDLE
        +
        +            $beginSearchResultsPage
        +
        +            . '<div class=SRStatus id=Loading>Loading...</div>'
        +
        +            . '<table border=0 cellspacing=0 cellpadding=0>'
        +                . $searchResultsHTMLSections->[$i]
        +            . '</table>'
        +
        +            . '<div class=SRStatus id=Searching>Searching...</div>'
        +            . '<div class=SRStatus id=NoMatches>No Matches</div>'
        +
        +            . '<script type="text/javascript"><!--' . "\n"
        +                . 'document.getElementById("Loading").style.display="none";' . "\n"
        +                . 'document.getElementById("NoMatches").style.display="none";' . "\n"
        +
        +                . 'var searchResults = new SearchResults("searchResults", "' . $self->CommandLineOption() . '");' . "\n"
        +                . 'searchResults.Search();' . "\n"
        +            . '--></script>'
        +
        +            . $endSearchResultsPage;
        +
        +            close(INDEXFILEHANDLE);
        +            };
        +        };
        +
        +    if (!$self->MadeEmptySearchResultsPage())
        +        {
        +        my $emptySearchResultsFileName = NaturalDocs::File->JoinPaths( $self->SearchResultsDirectory(), 'NoResults.html' );
        +
        +        open(INDEXFILEHANDLE, '>' . $emptySearchResultsFileName)
        +            or die "Couldn't create output file " . $emptySearchResultsFileName . ".\n";
        +
        +	    binmode(INDEXFILEHANDLE, ':encoding(UTF-8)');
        +
        +        print INDEXFILEHANDLE
        +
        +        $beginSearchResultsPage
        +        . '<div class=SRStatus id=NoMatches>No Matches</div>'
        +        . $endSearchResultsPage;
        +
        +        close(INDEXFILEHANDLE);
        +
        +        $self->SetMadeEmptySearchResultsPage(1);
        +        };
        +
        +
        +    # Generate the index pages.
        +
        +    my $page = 1;
        +    my $pageSize = 0;
        +    my @pageLocations;
        +
        +    # The maximum page size acceptable before starting a new page.  Note that this doesn't include beginPage and endPage,
        +    # because we don't want something like a large menu screwing up the calculations.
        +    use constant PAGESIZE_LIMIT => 50000;
        +
        +
        +    # File the pages.
        +
        +    for (my $i = 0; $i < scalar @$indexHTMLSections; $i++)
        +        {
        +        if (!defined $indexHTMLSections->[$i])
        +            {  next;  };
        +
        +        $pageSize += length($indexHTMLSections->[$i]) + length($tooltipHTMLSections->[$i]);
        +        $pageLocations[$i] = $page;
        +
        +        if ($pageSize + length($indexHTMLSections->[$i+1]) + length($tooltipHTMLSections->[$i+1]) > PAGESIZE_LIMIT)
        +            {
        +            $page++;
        +            $pageSize = 0;
        +            };
        +        };
        +
        +
        +    # Build the pages.
        +
        +    my $indexFileName;
        +    $page = -1;
        +    my $oldPage = -1;
        +    my $tooltips;
        +    my $firstHeading;
        +
        +    for (my $i = 0; $i < scalar @$indexHTMLSections; $i++)
        +        {
        +        if (!defined $indexHTMLSections->[$i])
        +            {  next;  };
        +
        +        $page = $pageLocations[$i];
        +
        +        # Switch files if we need to.
        +
        +        if ($page != $oldPage)
        +            {
        +            if ($oldPage != -1)
        +                {
        +                print INDEXFILEHANDLE '</table>' . $tooltips . $endIndexPage;
        +                close(INDEXFILEHANDLE);
        +                $tooltips = undef;
        +                };
        +
        +            $indexFileName = $self->IndexFileOf($type, $page);
        +
        +            open(INDEXFILEHANDLE, '>' . $indexFileName)
        +                or die "Couldn't create output file " . $indexFileName . ".\n";
        +
        +		    binmode(INDEXFILEHANDLE, ':encoding(UTF-8)');
        +
        +            print INDEXFILEHANDLE $beginIndexPage . $self->BuildIndexNavigationBar($type, $page, \@pageLocations)
        +                                              . '<table border=0 cellspacing=0 cellpadding=0>';
        +
        +            $oldPage = $page;
        +            $firstHeading = 1;
        +            };
        +
        +        print INDEXFILEHANDLE
        +        '<tr>'
        +            . '<td class=IHeading' . ($firstHeading ? ' id=IFirstHeading' : '') . '>'
        +                . '<a name="' . $indexAnchors[$i] . '"></a>'
        +                 . $indexHeadings[$i]
        +            . '</td>'
        +            . '<td></td>'
        +        . '</tr>'
        +
        +        . $indexHTMLSections->[$i];
        +
        +        $firstHeading = 0;
        +        $tooltips .= $tooltipHTMLSections->[$i];
        +        };
        +
        +    if ($page != -1)
        +        {
        +        print INDEXFILEHANDLE '</table>' . $tooltips . $endIndexPage;
        +        close(INDEXFILEHANDLE);
        +        }
        +
        +    # Build a dummy page so there's something at least.
        +    else
        +        {
        +        $indexFileName = $self->IndexFileOf($type, 1);
        +
        +        open(INDEXFILEHANDLE, '>' . $indexFileName)
        +            or die "Couldn't create output file " . $indexFileName . ".\n";
        +
        +    	binmode(INDEXFILEHANDLE, ':encoding(UTF-8)');
        +
        +        print INDEXFILEHANDLE
        +            $beginIndexPage
        +            . $self->BuildIndexNavigationBar($type, 1, \@pageLocations)
        +            . 'There are no entries in the ' . lc( NaturalDocs::Topics->NameOfType($type) ) . ' index.'
        +            . $endIndexPage;
        +
        +        close(INDEXFILEHANDLE);
        +        };
        +
        +
        +    return $page;
        +    };
        +
        +
        +#
        +#   Function: BuildIndexSections
        +#
        +#   Builds and returns the index and search results sections in HTML.
        +#
        +#   Parameters:
        +#
        +#       index  - An arrayref of sections, each section being an arrayref <NaturalDocs::SymbolTable::IndexElement> objects.
        +#                   The first section is for symbols, the second for numbers, and the rest for A through Z.
        +#
        +#   Returns:
        +#
        +#       The arrayref ( indexSections, tooltipSections, searchResultsSections ).
        +#
        +#       Index 0 is the symbols, index 1 is the numbers, and each following index is A through Z.  The content of each section
        +#       is its HTML, or undef if there is nothing for that section.
        +#
        +sub BuildIndexSections #(NaturalDocs::SymbolTable::IndexElement[] index) => ( string[], string[], string[] )
        +    {
        +    my ($self, $indexSections) = @_;
        +
        +    $self->ResetToolTips();
        +    %searchResultIDs = ( );
        +
        +    my $contentSections = [ ];
        +    my $tooltipSections = [ ];
        +    my $searchResultsSections = [ ];
        +
        +    for (my $section = 0; $section < scalar @$indexSections; $section++)
        +        {
        +        if (defined $indexSections->[$section])
        +            {
        +            my $total = scalar @{$indexSections->[$section]};
        +
        +            for (my $i = 0; $i < $total; $i++)
        +                {
        +                my $id;
        +
        +                if ($i == 0)
        +                    {
        +                    if ($total == 1)
        +                        {  $id = 'IOnlySymbolPrefix';  }
        +                    else
        +                        {  $id = 'IFirstSymbolPrefix';  };
        +                    }
        +                elsif ($i == $total - 1)
        +                    {  $id = 'ILastSymbolPrefix';  };
        +
        +                my ($content, $searchResult) = $self->BuildIndexElement($indexSections->[$section]->[$i], $id);
        +                $contentSections->[$section] .= $content;
        +                $searchResultsSections->[$section] .= $searchResult;
        +                };
        +
        +            $tooltipSections->[$section] .= $self->BuildToolTips();
        +            $self->ResetToolTips(1);
        +            };
        +        };
        +
        +
        +    return ( $contentSections, $tooltipSections, $searchResultsSections );
        +    };
        +
        +
        +#
        +#   Function: BuildIndexElement
        +#
        +#   Converts a <NaturalDocs::SymbolTable::IndexElement> to HTML and returns it.  It will handle all sub-elements automatically.
        +#
        +#   Parameters:
        +#
        +#       element - The <NaturalDocs::SymbolTable::IndexElement> to build.
        +#       cssID - The CSS ID to apply to the prefix.
        +#
        +#   Recursion-Only Parameters:
        +#
        +#       These parameters are used internally for recursion, and should not be set.
        +#
        +#       symbol - If the element is below symbol level, the <SymbolString> to use.
        +#       package - If the element is below package level, the package <SymbolString> to use.
        +#       hasPackage - Whether the element is below package level.  Is necessary because package may need to be undef.
        +#
        +#   Returns:
        +#
        +#       The array ( indexHTML, searchResultHTML ) which is the element in the respective HTML forms.
        +#
        +sub BuildIndexElement #(NaturalDocs::SymbolTable::IndexElement element, string cssID, SymbolString symbol, SymbolString package, bool hasPackage) => ( string, string )
        +    {
        +    my ($self, $element, $cssID, $symbol, $package, $hasPackage) = @_;
        +
        +
        +    # If we're doing a file sub-index entry...
        +
        +    if ($hasPackage)
        +        {
        +        my ($inputDirectory, $relativePath) = NaturalDocs::Settings->SplitFromInputDirectory($element->File());
        +
        +        return $self->BuildIndexLink($self->StringToHTML($relativePath, ADD_HIDDEN_BREAKS), $symbol,
        +                                                                                 $package, $element->File(), $element->Type(),
        +                                                                                 $element->Prototype(), $element->Summary(), 'IFile');
        +        }
        +
        +
        +    # If we're doing a package sub-index entry...
        +
        +    elsif (defined $symbol)
        +
        +        {
        +        my $text;
        +
        +        if ($element->Package())
        +            {
        +            $text = NaturalDocs::SymbolString->ToText($element->Package(), $element->PackageSeparator());
        +            $text = $self->StringToHTML($text, ADD_HIDDEN_BREAKS);
        +            }
        +        else
        +            {  $text = 'Global';  };
        +
        +        if (!$element->HasMultipleFiles())
        +            {
        +            return $self->BuildIndexLink($text, $symbol, $element->Package(), $element->File(), $element->Type(),
        +                                                      $element->Prototype(), $element->Summary(), 'IParent');
        +            }
        +
        +        else
        +            {
        +            my $indexHTML =
        +            '<span class=IParent>'
        +                . $text
        +            . '</span>'
        +            . '<div class=ISubIndex>';
        +
        +            my $searchResultHTML = $indexHTML;
        +
        +            my $fileElements = $element->File();
        +            foreach my $fileElement (@$fileElements)
        +                {
        +                my ($i, $s) = $self->BuildIndexElement($fileElement, $cssID, $symbol, $element->Package(), 1);
        +                $indexHTML .= $i;
        +                $searchResultHTML .= $s;
        +                };
        +
        +            $indexHTML .= '</div>';
        +            $searchResultHTML .= '</div>';
        +
        +            return ($indexHTML, $searchResultHTML);
        +            };
        +        }
        +
        +
        +    # If we're doing a top-level symbol entry...
        +
        +    else
        +        {
        +        my $symbolText = $self->StringToHTML($element->SortableSymbol(), ADD_HIDDEN_BREAKS);
        +        my $symbolPrefix = $self->StringToHTML($element->IgnoredPrefix());
        +        my $searchResultID = $self->StringToSearchResultID($element->SortableSymbol());
        +
        +        my $indexHTML =
        +        '<tr>'
        +            . '<td class=ISymbolPrefix' . ($cssID ? ' id=' . $cssID : '') . '>'
        +                . ($symbolPrefix || '&nbsp;')
        +            . '</td><td class=IEntry>';
        +
        +        my $searchResultsHTML =
        +        '<div class=SRResult id=' . $searchResultID . '><div class=IEntry>';
        +
        +            if ($symbolPrefix)
        +                {  $searchResultsHTML .= '<span class=ISymbolPrefix>' . $symbolPrefix . '</span>';  };
        +
        +        if (!$element->HasMultiplePackages())
        +            {
        +            my $packageText;
        +
        +            if (defined $element->Package())
        +                {
        +                $packageText = NaturalDocs::SymbolString->ToText($element->Package(), $element->PackageSeparator());
        +                $packageText = $self->StringToHTML($packageText, ADD_HIDDEN_BREAKS);
        +                };
        +
        +            if (!$element->HasMultipleFiles())
        +                {
        +                my ($i, $s) =
        +                    $self->BuildIndexLink($symbolText, $element->Symbol(), $element->Package(), $element->File(),
        +                                                     $element->Type(), $element->Prototype(), $element->Summary(), 'ISymbol');
        +                $indexHTML .= $i;
        +                $searchResultsHTML .= $s;
        +
        +                if (defined $packageText)
        +                    {
        +                    $indexHTML .=
        +                    ', <span class=IParent>'
        +                        . $packageText
        +                    . '</span>';
        +
        +                    $searchResultsHTML .=
        +                    ', <span class=IParent>'
        +                        . $packageText
        +                    . '</span>';
        +                    };
        +                }
        +            else # hasMultipleFiles but not multiplePackages
        +                {
        +                $indexHTML .=
        +                '<span class=ISymbol>'
        +                    . $symbolText
        +                . '</span>';
        +
        +                $searchResultsHTML .=
        +                q{<a href="javascript:searchResults.Toggle('} . $searchResultID . q{')" class=ISymbol>}
        +                    . $symbolText
        +                . '</a>';
        +
        +                my $output;
        +
        +                if (defined $packageText)
        +                    {
        +                    $output .=
        +                    ', <span class=IParent>'
        +                        . $packageText
        +                    . '</span>';
        +                    };
        +
        +                $output .=
        +                '<div class=ISubIndex>';
        +
        +                $indexHTML .= $output;
        +                $searchResultsHTML .= $output;
        +
        +                my $fileElements = $element->File();
        +                foreach my $fileElement (@$fileElements)
        +                    {
        +                    my ($i, $s) = $self->BuildIndexElement($fileElement, $cssID, $element->Symbol(), $element->Package(), 1);
        +                    $indexHTML .= $i;
        +                    $searchResultsHTML .= $s;
        +                    };
        +
        +                $indexHTML .= '</div>';
        +                $searchResultsHTML .= '</div>';
        +                };
        +            }
        +
        +        else # hasMultiplePackages
        +            {
        +            $indexHTML .=
        +            '<span class=ISymbol>'
        +                . $symbolText
        +            . '</span>'
        +            . '<div class=ISubIndex>';
        +
        +            $searchResultsHTML .=
        +            q{<a href="javascript:searchResults.Toggle('} . $searchResultID . q{')" class=ISymbol>}
        +                . $symbolText
        +            . '</a>'
        +            . '<div class=ISubIndex>';
        +
        +            my $packageElements = $element->Package();
        +            foreach my $packageElement (@$packageElements)
        +                {
        +                my ($i, $s) = $self->BuildIndexElement($packageElement, $cssID, $element->Symbol());
        +                $indexHTML .= $i;
        +                $searchResultsHTML .= $s;
        +                };
        +
        +            $indexHTML .= '</div>';
        +            $searchResultsHTML .= '</div>';
        +            };
        +
        +        $indexHTML .= '</td></tr>';
        +        $searchResultsHTML .= '</div></div>';
        +
        +        return ($indexHTML, $searchResultsHTML);
        +        };
        +    };
        +
        +
        +#
        +#   Function: BuildIndexLink
        +#
        +#   Builds and returns the HTML associated with an index link.  The HTML will be the a href tag, the text, and the closing tag.
        +#
        +#   Parameters:
        +#
        +#       text - The text of the link *in HTML*.  Use <IndexSymbolToHTML()> if necessary.
        +#       symbol - The partial <SymbolString> to link to.
        +#       package - The package <SymbolString> of the symbol.
        +#       file - The <FileName> the symbol is defined in.
        +#       type - The <TopicType> of the symbol.
        +#       prototype - The prototype of the symbol, or undef if none.
        +#       summary - The summary of the symbol, or undef if none.
        +#       style - The CSS style to apply to the link.
        +#
        +#   Returns:
        +#
        +#       The array ( indexHTML, searchResultHTML ) which is the link in the respective forms.
        +#
        +sub BuildIndexLink #(string text, SymbolString symbol, SymbolString package, FileName file, TopicType type, string prototype, string summary, string style) => ( string, string )
        +    {
        +    my ($self, $text, $symbol, $package, $file, $type, $prototype, $summary, $style) = @_;
        +
        +    $symbol = NaturalDocs::SymbolString->Join($package, $symbol);
        +
        +    my $targetTooltipID = $self->BuildToolTip($symbol, $file, $type, $prototype, $summary);
        +    my $toolTipProperties = $self->BuildToolTipLinkProperties($targetTooltipID);
        +
        +    my $indexHTML = '<a href="' . $self->MakeRelativeURL( $self->IndexDirectory(), $self->OutputFileOf($file) )
        +                                         . '#' . $self->SymbolToHTMLSymbol($symbol) . '" ' . $toolTipProperties . ' '
        +                                . 'class=' . $style . '>' . $text . '</a>';
        +    my $searchResultHTML = '<a href="' . $self->MakeRelativeURL( $self->SearchResultsDirectory(), $self->OutputFileOf($file) )
        +                                         . '#' . $self->SymbolToHTMLSymbol($symbol) . '" '
        +                                         . ($self->CommandLineOption eq 'HTML' ? 'target=_parent ' : '')
        +                                . 'class=' . $style . '>' . $text . '</a>';
        +
        +    return ($indexHTML, $searchResultHTML);
        +    };
        +
        +
        +#
        +#   Function: BuildIndexNavigationBar
        +#
        +#   Builds a navigation bar for a page of the index.
        +#
        +#   Parameters:
        +#
        +#       type - The <TopicType> of the index, or undef for general.
        +#       page - The page of the index the navigation bar is for.
        +#       locations - An arrayref of the locations of each section.  Index 0 is for the symbols, index 1 for the numbers, and the rest
        +#                       for each letter.  The values are the page numbers where the sections are located.
        +#
        +sub BuildIndexNavigationBar #(type, page, locations)
        +    {
        +    my ($self, $type, $page, $locations) = @_;
        +
        +    my $output = '<div class=INavigationBar>';
        +
        +    for (my $i = 0; $i < scalar @indexHeadings; $i++)
        +        {
        +        if ($i != 0)
        +            {  $output .= ' &middot; ';  };
        +
        +        if (defined $locations->[$i])
        +            {
        +            $output .= '<a href="';
        +
        +            if ($locations->[$i] != $page)
        +                {  $output .= $self->RelativeIndexFileOf($type, $locations->[$i]);  };
        +
        +            $output .= '#' . $indexAnchors[$i] . '">' . $indexHeadings[$i] . '</a>';
        +            }
        +        else
        +            {
        +            $output .= $indexHeadings[$i];
        +            };
        +        };
        +
        +    $output .= '</div>';
        +
        +    return $output;
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: File Functions
        +
        +
        +#
        +#   Function: PurgeIndexFiles
        +#
        +#   Removes all or some of the output files for an index.
        +#
        +#   Parameters:
        +#
        +#       type  - The index <TopicType>.
        +#       indexSections  - An arrayref of sections, each section being an arrayref <NaturalDocs::SymbolTable::IndexElement>
        +#                               objects.  The first section is for symbols, the second for numbers, and the rest for A through Z.  May be
        +#                               undef.
        +#       startingPage - If defined, only pages starting with this number will be removed.  Otherwise all pages will be removed.
        +#
        +sub PurgeIndexFiles #(TopicType type, optional NaturalDocs::SymbolTable::IndexElement[] indexSections, optional int startingPage)
        +    {
        +    my ($self, $type, $indexSections, $page) = @_;
        +
        +    # First the regular index pages.
        +
        +    if (!defined $page)
        +        {  $page = 1;  };
        +
        +    for (;;)
        +        {
        +        my $file = $self->IndexFileOf($type, $page);
        +
        +        if (-e $file)
        +            {
        +            unlink($file);
        +            $page++;
        +            }
        +        else
        +            {
        +            last;
        +            };
        +        };
        +
        +
        +    # Next the search results.
        +
        +    for (my $i = 0; $i < 28; $i++)
        +        {
        +        if (!$indexSections || !$indexSections->[$i])
        +            {
        +            my $file = $self->SearchResultsFileOf($type, $searchExtensions[$i]);
        +
        +            if (-e $file)
        +                {  unlink($file);  };
        +            };
        +        };
        +    };
        +
        +
        +#
        +#   Function: OutputFileOf
        +#
        +#   Returns the output file name of the source file.  Will be undef if it is not a file from a valid input directory.
        +#
        +sub OutputFileOf #(sourceFile)
        +    {
        +    my ($self, $sourceFile) = @_;
        +
        +    my ($inputDirectory, $relativeSourceFile) = NaturalDocs::Settings->SplitFromInputDirectory($sourceFile);
        +    if (!defined $inputDirectory)
        +        {  return undef;  };
        +
        +    my $outputDirectory = NaturalDocs::Settings->OutputDirectoryOf($self);
        +    my $inputDirectoryName = NaturalDocs::Settings->InputDirectoryNameOf($inputDirectory);
        +
        +    $outputDirectory = NaturalDocs::File->JoinPaths( $outputDirectory,
        +                                                                            'files' . ($inputDirectoryName != 1 ? $inputDirectoryName : ''), 1 );
        +
        +    # We need to change any extensions to dashes because Apache will think file.pl.html is a script.
        +    # We also need to add a dash if the file doesn't have an extension so there'd be no conflicts with index.html,
        +    # FunctionIndex.html, etc.
        +
        +    if (!($relativeSourceFile =~ tr/./-/))
        +        {  $relativeSourceFile .= '-';  };
        +
        +    $relativeSourceFile =~ tr/ &?(){};#/_/;
        +    $relativeSourceFile .= '.html';
        +
        +    return NaturalDocs::File->JoinPaths($outputDirectory, $relativeSourceFile);
        +    };
        +
        +
        +#
        +#   Function: OutputImageOf
        +#
        +#   Returns the output image file name of the source image file.  Will be undef if it is not a file from a valid input directory.
        +#
        +sub OutputImageOf #(sourceImageFile)
        +    {
        +    my ($self, $sourceImageFile) = @_;
        +
        +    my $outputDirectory = NaturalDocs::Settings->OutputDirectoryOf($self);
        +    my $topLevelDirectory;
        +
        +    my ($inputDirectory, $relativeImageFile) = NaturalDocs::Settings->SplitFromInputDirectory($sourceImageFile);
        +
        +    if (defined $inputDirectory)
        +        {
        +        my $inputDirectoryName = NaturalDocs::Settings->InputDirectoryNameOf($inputDirectory);
        +        $topLevelDirectory = 'files' . ($inputDirectoryName != 1 ? $inputDirectoryName : '');
        +        }
        +    else
        +        {
        +        ($inputDirectory, $relativeImageFile) = NaturalDocs::Settings->SplitFromImageDirectory($sourceImageFile);
        +
        +        if (!defined $inputDirectory)
        +            {  return undef;  };
        +
        +        my $inputDirectoryName = NaturalDocs::Settings->ImageDirectoryNameOf($inputDirectory);
        +        $topLevelDirectory = 'images' . ($inputDirectoryName != 1 ? $inputDirectoryName : '');
        +        }
        +
        +
        +    $outputDirectory = NaturalDocs::File->JoinPaths($outputDirectory, $topLevelDirectory, 1);
        +
        +    $relativeImageFile =~ tr/ /_/;
        +
        +    return NaturalDocs::File->JoinPaths($outputDirectory, $relativeImageFile);
        +    };
        +
        +
        +#
        +#   Function: IndexDirectory
        +#
        +#   Returns the directory of the index files.
        +#
        +sub IndexDirectory
        +    {
        +    my $self = shift;
        +    return NaturalDocs::File->JoinPaths( NaturalDocs::Settings->OutputDirectoryOf($self), 'index', 1);
        +    };
        +
        +
        +#
        +#   Function: IndexFileOf
        +#
        +#   Returns the output file name of the index file.
        +#
        +#   Parameters:
        +#
        +#       type  - The <TopicType> of the index.
        +#       page  - The page number.  Undef is the same as one.
        +#
        +sub IndexFileOf #(type, page)
        +    {
        +    my ($self, $type, $page) = @_;
        +    return NaturalDocs::File->JoinPaths( $self->IndexDirectory(), $self->RelativeIndexFileOf($type, $page) );
        +    };
        +
        +
        +#
        +#   Function: RelativeIndexFileOf
        +#
        +#   Returns the output file name of the index file, relative to other index files.
        +#
        +#   Parameters:
        +#
        +#       type  - The <TopicType> of the index.
        +#       page  - The page number.  Undef is the same as one.
        +#
        +sub RelativeIndexFileOf #(type, page)
        +    {
        +    my ($self, $type, $page) = @_;
        +    return NaturalDocs::Topics->NameOfType($type, 1, 1) . (defined $page && $page != 1 ? $page : '') . '.html';
        +    };
        +
        +
        +#
        +#   Function: SearchResultsDirectory
        +#
        +#   Returns the directory of the search results files.
        +#
        +sub SearchResultsDirectory
        +    {
        +    my $self = shift;
        +    return NaturalDocs::File->JoinPaths( NaturalDocs::Settings->OutputDirectoryOf($self), 'search', 1);
        +    };
        +
        +
        +#
        +#   Function: SearchResultsFileOf
        +#
        +#   Returns the output file name of the search result file.
        +#
        +#   Parameters:
        +#
        +#       type  - The <TopicType> of the index.
        +#       extra - The string to add to the end of the file name, such as "A" or "Symbols".
        +#
        +sub SearchResultsFileOf #(TopicType type, string extra)
        +    {
        +    my ($self, $type, $extra) = @_;
        +
        +    my $fileName = NaturalDocs::Topics->NameOfType($type, 1, 1) . $extra . '.html';
        +
        +    return NaturalDocs::File->JoinPaths( $self->SearchResultsDirectory(), $fileName );
        +    };
        +
        +
        +#
        +#   Function: CSSDirectory
        +#
        +#   Returns the directory of the CSS files.
        +#
        +sub CSSDirectory
        +    {
        +    my $self = shift;
        +    return NaturalDocs::File->JoinPaths( NaturalDocs::Settings->OutputDirectoryOf($self), 'styles', 1);
        +    };
        +
        +
        +#
        +#   Function: MainCSSFile
        +#
        +#   Returns the location of the main CSS file.
        +#
        +sub MainCSSFile
        +    {
        +    my $self = shift;
        +    return NaturalDocs::File->JoinPaths( $self->CSSDirectory(), 'main.css' );
        +    };
        +
        +
        +#
        +#   Function: JavaScriptDirectory
        +#
        +#   Returns the directory of the JavaScript files.
        +#
        +sub JavaScriptDirectory
        +    {
        +    my $self = shift;
        +    return NaturalDocs::File->JoinPaths( NaturalDocs::Settings->OutputDirectoryOf($self), 'javascript', 1);
        +    };
        +
        +
        +#
        +#   Function: MainJavaScriptFile
        +#
        +#   Returns the location of the main JavaScript file.
        +#
        +sub MainJavaScriptFile
        +    {
        +    my $self = shift;
        +    return NaturalDocs::File->JoinPaths( $self->JavaScriptDirectory(), 'main.js' );
        +    };
        +
        +
        +#
        +#   Function: PrettifyJavaScriptFile
        +#
        +#   Returns the location of the Google Prettify JavaScript file.
        +#
        +sub PrettifyJavaScriptFile
        +    {
        +    my $self = shift;
        +    return NaturalDocs::File->JoinPaths( $self->JavaScriptDirectory(), 'prettify.js' );
        +    };
        +
        +
        +#
        +#   Function: SearchDataJavaScriptFile
        +#
        +#   Returns the location of the search data JavaScript file.
        +#
        +sub SearchDataJavaScriptFile
        +    {
        +    my $self = shift;
        +    return NaturalDocs::File->JoinPaths( $self->JavaScriptDirectory(), 'searchdata.js' );
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Support Functions
        +
        +
        +#
        +#   Function: IndexTitleOf
        +#
        +#   Returns the page title of the index file.
        +#
        +#   Parameters:
        +#
        +#       type  - The type of index.
        +#
        +sub IndexTitleOf #(type)
        +    {
        +    my ($self, $type) = @_;
        +
        +    return ($type eq ::TOPIC_GENERAL() ? '' : NaturalDocs::Topics->NameOfType($type) . ' ') . 'Index';
        +    };
        +
        +#
        +#   Function: MakeRelativeURL
        +#
        +#   Returns a relative path between two files in the output tree and returns it in URL format.
        +#
        +#   Parameters:
        +#
        +#       baseFile    - The base <FileName> in local format, *not* in URL format.
        +#       targetFile  - The target <FileName> of the link in local format, *not* in URL format.
        +#       baseHasFileName - Whether baseFile has a file name attached or is just a path.
        +#
        +#   Returns:
        +#
        +#       The relative URL to the target.
        +#
        +sub MakeRelativeURL #(FileName baseFile, FileName targetFile, bool baseHasFileName) -> string relativeURL
        +    {
        +    my ($self, $baseFile, $targetFile, $baseHasFileName) = @_;
        +
        +    if ($baseHasFileName)
        +        {  $baseFile = NaturalDocs::File->NoFileName($baseFile)  };
        +
        +    my $relativePath = NaturalDocs::File->MakeRelativePath($baseFile, $targetFile);
        +
        +    return $self->ConvertAmpChars( NaturalDocs::File->ConvertToURL($relativePath) );
        +    };
        +
        +#
        +#   Function: StringToHTML
        +#
        +#   Converts a text string to HTML.  Does not apply paragraph tags or accept formatting tags.
        +#
        +#   Parameters:
        +#
        +#       string - The string to convert.
        +#       addHiddenBreaks - Whether to add hidden breaks to the string.  You can use <ADD_HIDDEN_BREAKS> for this parameter
        +#                                   if you want to make the calling code clearer.
        +#
        +#   Returns:
        +#
        +#       The string in HTML.
        +#
        +sub StringToHTML #(string, addHiddenBreaks)
        +    {
        +    my ($self, $string, $addHiddenBreaks) = @_;
        +
        +    $string =~ s/&/&amp;/g;
        +    $string =~ s/</&lt;/g;
        +    $string =~ s/>/&gt;/g;
        +
        +    # Me likey the fancy quotes.  They work in IE 4+, Mozilla, and Opera 5+.  We've already abandoned NS4 with the CSS
        +    # styles, so might as well.
        +    $string =~ s/^\'/&lsquo;/gm;
        +    $string =~ s/([\ \(\[\{])\'/$1&lsquo;/g;
        +    $string =~ s/\'/&rsquo;/g;
        +
        +    $string =~ s/^\"/&ldquo;/gm;
        +    $string =~ s/([\ \(\[\{])\"/$1&ldquo;/g;
        +    $string =~ s/\"/&rdquo;/g;
        +
        +    # Me likey the double spaces too.  As you can probably tell, I like print-formatting better than web-formatting.  The indented
        +    # paragraphs without blank lines in between them do become readable when you have fancy quotes and double spaces too.
        +    $string = $self->AddDoubleSpaces($string);
        +
        +    if ($addHiddenBreaks)
        +        {  $string = $self->AddHiddenBreaks($string);  };
        +
        +    return $string;
        +    };
        +
        +
        +#
        +#   Function: SymbolToHTMLSymbol
        +#
        +#   Converts a <SymbolString> to a HTML symbol, meaning one that is safe to include in anchor and link tags.  You don't need
        +#   to pass the result to <ConvertAmpChars()>.
        +#
        +sub SymbolToHTMLSymbol #(symbol)
        +    {
        +    my ($self, $symbol) = @_;
        +
        +    my @identifiers = NaturalDocs::SymbolString->IdentifiersOf($symbol);
        +    my $htmlSymbol = join('.', @identifiers);
        +
        +    # If only Mozilla was nice about putting special characters in URLs like IE and Opera are, I could leave spaces in and replace
        +    # "<>& with their amp chars.  But alas, Mozilla shows them as %20, etc. instead.  It would have made for nice looking URLs.
        +    $htmlSymbol =~ tr/ \"<>\?&%/_/d;
        +
        +    return $htmlSymbol;
        +    };
        +
        +
        +#
        +#   Function: StringToSearchResultID
        +#
        +#   Takes a text string and translates it into something that can be used as a CSS ID.
        +#
        +#   Parameters:
        +#
        +#       string - The string to convert
        +#       dontIncrement - If set, it reuses the last generated ID.  Otherwise it generates a new one if it matches a previously
        +#                               generated one in a case-insensitive way.
        +#
        +sub StringToSearchResultID #(string string, bool dontIncrement = 0) => string
        +    {
        +    my ($self, $string, $dontIncrement) = @_;
        +
        +    $string =~ s/\_/_und/g;
        +    $string =~ s/ +/_spc/g;
        +
        +    my %translation = ( '~' => '_til', '!' => '_exc', '@' => '_att', '#' => '_num', '$' => '_dol', '%' => '_pct', '^' => '_car',
        +                                  '&' => '_amp', '*' => '_ast', '(' => '_lpa', ')' => '_rpa', '-' => '_min', '+' => '_plu', '=' => '_equ',
        +                                  '{' => '_lbc', '}' => '_rbc', '[' => '_lbk', ']' => '_rbk', ':' => '_col', ';' => '_sco', '"' => '_quo',
        +                                  '\'' => '_apo', '<' => '_lan', '>' => '_ran', ',' => '_com', '.' => '_per', '?' => '_que', '/' => '_sla' );
        +
        +    $string =~ s/([\~\!\@\#\$\%\^\&\*\(\)\-\+\=\{\}\[\]\:\;\"\'\<\>\,\.\?\/])/$translation{$1}/ge;
        +    $string =~ s/[^a-z0-9_]/_zzz/gi;
        +
        +    my $number = $searchResultIDs{lc($string)};
        +
        +    if (!$number)
        +        {  $number = 1;  }
        +    elsif (!$dontIncrement)
        +        {  $number++;  };
        +
        +    $searchResultIDs{lc($string)} = $number;
        +
        +    return 'SR' . ($number == 1 ? '' : $number) . '_' . $string;
        +    };
        +
        +
        +#
        +#   Function: NDMarkupToHTML
        +#
        +#   Converts a block of <NDMarkup> to HTML.
        +#
        +#   Parameters:
        +#
        +#       sourceFile - The source <FileName> the <NDMarkup> appears in.
        +#       text    - The <NDMarkup> text to convert.
        +#       symbol - The topic <SymbolString> the <NDMarkup> appears in.
        +#       package  - The package <SymbolString> the <NDMarkup> appears in.
        +#       type - The <TopicType> the <NDMarkup> appears in.
        +#       using - An arrayref of scope <SymbolStrings> the <NDMarkup> also has access to, or undef if none.
        +#       style - Set to one of the <NDMarkupToHTML Styles> or leave undef for general.
        +#
        +#   Returns:
        +#
        +#       The text in HTML.
        +#
        +sub NDMarkupToHTML #(sourceFile, text, symbol, package, type, using, style)
        +    {
        +    my ($self, $sourceFile, $text, $symbol, $package, $type, $using, $style) = @_;
        +
        +    my $dlSymbolBehavior;
        +
        +    if ($type eq ::TOPIC_ENUMERATION())
        +        {  $dlSymbolBehavior = NaturalDocs::Languages->LanguageOf($sourceFile)->EnumValues();  }
        +   elsif (NaturalDocs::Topics->TypeInfo($type)->Scope() == ::SCOPE_ALWAYS_GLOBAL())
        +        {  $dlSymbolBehavior = ::ENUM_GLOBAL();  }
        +    else
        +        {  $dlSymbolBehavior = ::ENUM_UNDER_PARENT();  };
        +
        +    my $output;
        +    my $inCode;
        +
        +    my @splitText = split(/(<\/?code(?: type="[^"]+")?>)/, $text);
        +
        +    while (scalar @splitText)
        +        {
        +        $text = shift @splitText;
        +
        +        if ($text =~ /<code type="([^"]+)">/)
        +            {
        +            my $codeType = $1;
        +
        +            my $highlight = ( ($codeType eq "code" && NaturalDocs::Settings->HighlightCode()) ||
        +            						  ($codeType eq "anonymous" && NaturalDocs::Settings->HighlightAnonymous()) );
        +
        +            $output .= '<blockquote><pre' . ($highlight ? ' class="prettyprint"' : '') . '>';
        +            $inCode = 1;
        +            }
        +        elsif ($text eq '</code>')
        +            {
        +            $output .= '</pre></blockquote>';
        +            $inCode = undef;
        +            }
        +        elsif ($inCode)
        +            {
        +            # Leave line breaks in.
        +            $output .= $text;
        +            }
        +        else
        +            {
        +            # Format non-code text.
        +
        +            # Convert linked images.
        +            if ($text =~ /<img mode=\"link\"/)
        +                {
        +                if ($style == NDMARKUPTOHTML_GENERAL)
        +                    {
        +                    # Split by tags we would want to see the linked images appear after.  For example, an image link appearing in
        +                    # the middle of a paragraph would appear after the end of that paragraph.
        +                    my @imageBlocks = split(/(<p>.*?<\/p>|<dl>.*?<\/dl>|<ul>.*?<\/ul>)/, $text);
        +                    $text = undef;
        +
        +                    foreach my $imageBlock (@imageBlocks)
        +                        {
        +                        $imageBlock =~ s{<img mode=\"link\" target=\"([^\"]*)\" original=\"([^\"]*)\">}
        +                                                {$self->BuildImage($sourceFile, 'link', $1, $2)}ge;
        +
        +                        $text .= $imageBlock . $imageContent;
        +                        $imageContent = undef;
        +                        };
        +                    }
        +
        +                # Use only the text for tooltips and summaries.
        +                else
        +                    {
        +                    $text =~ s{<img mode=\"link\" target=\"[^\"]*\" original=\"([^\"]*)\">}{$1}g;
        +                    };
        +                };
        +
        +            # Convert quotes to fancy quotes.  This has to be done before links because some of them may have JavaScript
        +            # attributes that use the apostrophe character.
        +            $text =~ s/^\'/&lsquo;/gm;
        +            $text =~ s/([\ \(\[\{])\'/$1&lsquo;/g;
        +            $text =~ s/\'/&rsquo;/g;
        +
        +            $text =~ s/^&quot;/&ldquo;/gm;
        +            $text =~ s/([\ \(\[\{])&quot;/$1&ldquo;/g;
        +            $text =~ s/&quot;/&rdquo;/g;
        +
        +            # Resolve and convert links, except for tooltips.
        +            if ($style != NDMARKUPTOHTML_TOOLTIP)
        +                {
        +                $text =~ s{<link target=\"([^\"]*)\" name=\"([^\"]*)\" original=\"([^\"]*)\">}
        +                               {$self->BuildTextLink($1, $2, $3, $package, $using, $sourceFile)}ge;
        +                $text =~ s/<url target=\"([^\"]*)\" name=\"([^\"]*)\">/$self->BuildURLLink($1, $2)/ge;
        +                }
        +            else
        +                {
        +                $text =~ s{<link target=\"[^\"]*\" name=\"([^\"]*)\" original=\"[^\"]*\">}{$1}g;
        +                $text =~ s{<url target=\"[^\"]*\" name=\"([^\"]*)\">}{$1}g;
        +                };
        +
        +            # We do full e-mail links anyway just so the obfuscation remains.
        +            $text =~ s/<email target=\"([^\"]*)\" name=\"([^\"]*)\">/$self->BuildEMailLink($1, $2)/ge;
        +
        +
        +            # Convert inline images, but only for the general style.
        +            if ($style == NDMARKUPTOHTML_GENERAL)
        +                {
        +                $text =~ s{<img mode=\"inline\" target=\"([^\"]*)\" original=\"([^\"]*)\">}
        +                               {$self->BuildImage($sourceFile, 'inline', $1, $2)}ge;
        +                }
        +            else
        +                {
        +                $text =~ s{<img mode=\"inline\" target=\"[^\"]*\" original=\"([^\"]*)\">}{$1}g;
        +                };
        +
        +            # Copyright symbols.  Prevent conversion when part of (a), (b), (c) lists.
        +            if ($text !~ /\(a\)/i)
        +                {  $text =~ s/\(c\)/&copy;/gi;  };
        +
        +            # Trademark symbols.
        +            $text =~ s/\(tm\)/&trade;/gi;
        +            $text =~ s/\(r\)/&reg;/gi;
        +
        +            # Add double spaces too.
        +            $text = $self->AddDoubleSpaces($text);
        +
        +            # Headings
        +            $text =~ s/<h>/<h4 class=CHeading>/g;
        +            $text =~ s/<\/h>/<\/h4>/g;
        +
        +            # Description Lists
        +            $text =~ s/<dl>/<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>/g;
        +            $text =~ s/<\/dl>/<\/table>/g;
        +
        +            $text =~ s/<de>/<tr><td class=CDLEntry>/g;
        +            $text =~ s/<\/de>/<\/td>/g;
        +
        +            if ($dlSymbolBehavior == ::ENUM_GLOBAL())
        +                {  $text =~ s/<ds>([^<]+)<\/ds>/$self->MakeDescriptionListSymbol(undef, $1)/ge;  }
        +            elsif ($dlSymbolBehavior == ::ENUM_UNDER_PARENT())
        +                {  $text =~ s/<ds>([^<]+)<\/ds>/$self->MakeDescriptionListSymbol($package, $1)/ge;  }
        +            else # ($dlSymbolBehavior == ::ENUM_UNDER_TYPE())
        +                {  $text =~ s/<ds>([^<]+)<\/ds>/$self->MakeDescriptionListSymbol($symbol, $1)/ge;  }
        +
        +            sub MakeDescriptionListSymbol #(package, text)
        +                {
        +                my ($self, $package, $text) = @_;
        +
        +                $text = NaturalDocs::NDMarkup->RestoreAmpChars($text);
        +                my $symbol = NaturalDocs::SymbolString->FromText($text);
        +
        +                if (defined $package)
        +                    {  $symbol = NaturalDocs::SymbolString->Join($package, $symbol);  };
        +
        +                return
        +                '<tr>'
        +                    . '<td class=CDLEntry>'
        +                        # The anchors are closed, but not around the text, to prevent the :hover CSS style from kicking in.
        +                        . '<a name="' . $self->SymbolToHTMLSymbol($symbol) . '"></a>'
        +                        . $text
        +                    . '</td>';
        +                };
        +
        +            $text =~ s/<dd>/<td class=CDLDescription>/g;
        +            $text =~ s/<\/dd>/<\/td><\/tr>/g;
        +
        +            $output .= $text;
        +            };
        +        };
        +
        +    return $output;
        +    };
        +
        +
        +#
        +#   Function: BuildTextLink
        +#
        +#   Creates a HTML link to a symbol, if it exists.
        +#
        +#   Parameters:
        +#
        +#       target  - The link text.
        +#       name - The link name.
        +#       original - The original text as it appears in the source.
        +#       package  - The package <SymbolString> the link appears in, or undef if none.
        +#       using - An arrayref of additional scope <SymbolStrings> the link has access to, or undef if none.
        +#       sourceFile  - The <FileName> the link appears in.
        +#
        +#       Target, name, and original are assumed to still have <NDMarkup> amp chars.
        +#
        +#   Returns:
        +#
        +#       The link in HTML, including tags.  If the link doesn't resolve to anything, returns the HTML that should be substituted for it.
        +#
        +sub BuildTextLink #(target, name, original, package, using, sourceFile)
        +    {
        +    my ($self, $target, $name, $original, $package, $using, $sourceFile) = @_;
        +
        +    my $plainTarget = $self->RestoreAmpChars($target);
        +
        +    my $symbol = NaturalDocs::SymbolString->FromText($plainTarget);
        +    my $symbolTarget = NaturalDocs::SymbolTable->References(::REFERENCE_TEXT(), $symbol, $package, $using, $sourceFile);
        +
        +    if (defined $symbolTarget)
        +        {
        +        my $symbolTargetFile;
        +
        +        if ($symbolTarget->File() ne $sourceFile)
        +            {
        +            $symbolTargetFile = $self->MakeRelativeURL( $self->OutputFileOf($sourceFile),
        +                                                                               $self->OutputFileOf($symbolTarget->File()), 1 );
        +            };
        +        # else leave it undef
        +
        +        my $symbolTargetTooltipID = $self->BuildToolTip($symbolTarget->Symbol(), $sourceFile, $symbolTarget->Type(),
        +                                                                                 $symbolTarget->Prototype(), $symbolTarget->Summary());
        +
        +        my $toolTipProperties = $self->BuildToolTipLinkProperties($symbolTargetTooltipID);
        +
        +        return '<a href="' . $symbolTargetFile . '#' . $self->SymbolToHTMLSymbol($symbolTarget->Symbol()) . '" '
        +                    . 'class=L' . NaturalDocs::Topics->NameOfType($symbolTarget->Type(), 0, 1) . ' ' . $toolTipProperties . '>'
        +                        . $name
        +                    . '</a>';
        +        }
        +    else
        +        {
        +        return $original;
        +        };
        +    };
        +
        +
        +#
        +#   Function: BuildURLLink
        +#
        +#   Creates a HTML link to an external URL.  Long URLs will have hidden breaks to allow them to wrap.
        +#
        +#   Parameters:
        +#
        +#       target - The URL to link to.
        +#       name - The label of the link.
        +#
        +#       Both are assumed to still have <NDMarkup> amp chars.
        +#
        +#   Returns:
        +#
        +#       The HTML link, complete with tags.
        +#
        +sub BuildURLLink #(target, name)
        +    {
        +    my ($self, $target, $name) = @_;
        +
        +    # Don't restore amp chars on the target.
        +
        +    if (length $name < 50 || $name ne $target)
        +        {  return '<a href="' . $target . '" class=LURL target=_top>' . $name . '</a>';  };
        +
        +    my @segments = split(/([\,\/]|&amp;)/, $target);
        +    my $output = '<a href="' . $target . '" class=LURL target=_top>';
        +
        +    # Get past the first batch of slashes, since we don't want to break on things like http://.
        +
        +    $output .= $segments[0];
        +
        +    my $i = 1;
        +    while ($i < scalar @segments && ($segments[$i] eq '/' || !$segments[$i]))
        +        {
        +        $output .= $segments[$i];
        +        $i++;
        +        };
        +
        +    # Now break on each one of those symbols.
        +
        +    while ($i < scalar @segments)
        +        {
        +        if ($segments[$i] eq ',' || $segments[$i] eq '/' || $segments[$i] eq '&amp;')
        +            {  $output .= '<wbr>';  };
        +
        +        $output .= $segments[$i];
        +        $i++;
        +        };
        +
        +    $output .= '</a>';
        +    return $output;
        +    };
        +
        +
        +#
        +#   Function: BuildEMailLink
        +#
        +#   Creates a HTML link to an e-mail address.  The address will be transparently munged to protect it (hopefully) from spambots.
        +#
        +#   Parameters:
        +#
        +#       target  - The e-mail address.
        +#       name - The label of the link.
        +#
        +#       Both are assumed to still have <NDMarkup> amp chars.
        +#
        +#   Returns:
        +#
        +#       The HTML e-mail link, complete with tags.
        +#
        +sub BuildEMailLink #(target, name)
        +    {
        +    my ($self, $target, $name) = @_;
        +    my @splitAddress;
        +
        +
        +    # Hack the address up.  We want two user pieces and two host pieces.
        +
        +    my ($user, $host) = split(/\@/, $self->RestoreAmpChars($target));
        +
        +    my $userSplit = length($user) / 2;
        +
        +    push @splitAddress, NaturalDocs::NDMarkup->ConvertAmpChars( substr($user, 0, $userSplit) );
        +    push @splitAddress, NaturalDocs::NDMarkup->ConvertAmpChars( substr($user, $userSplit) );
        +
        +    push @splitAddress, '@';
        +
        +    my $hostSplit = length($host) / 2;
        +
        +    push @splitAddress, NaturalDocs::NDMarkup->ConvertAmpChars( substr($host, 0, $hostSplit) );
        +    push @splitAddress, NaturalDocs::NDMarkup->ConvertAmpChars( substr($host, $hostSplit) );
        +
        +
        +    # Now put it back together again.  We'll use spans to split the text transparently and JavaScript to split and join the link.
        +
        +    my $output =
        +    "<a href=\"#\" onClick=\"location.href='mai' + 'lto:' + '" . join("' + '", @splitAddress) . "'; return false;\" class=LEMail>";
        +
        +    if ($name eq $target)
        +        {
        +        $output .=
        +        $splitAddress[0] . '<span style="display: none">.nosp@m.</span>' . $splitAddress[1]
        +        . '<span>@</span>'
        +        . $splitAddress[3] . '<span style="display: none">.nosp@m.</span>' . $splitAddress[4];
        +        }
        +    else
        +        {  $output .= $name;  };
        +
        +    $output .= '</a>';
        +    return $output;
        +    };
        +
        +
        +#
        +#   Function: BuildImage
        +#
        +#   Builds the HTML for an image.
        +#
        +#   Parameters:
        +#
        +#       sourceFile - The source <FileName> this image appears in.
        +#       mode - Either "inline" or "link".
        +#       target - The target.
        +#       original - The original text.
        +#
        +#       All are assumed to still have <NDMarkup> amp chars.
        +#
        +#   Returns:
        +#
        +#       The result in HTML.  If the mode was "link", the target image's HTML is added to <imageContent>.
        +#
        +sub BuildImage #(sourceFile, mode, target, original)
        +    {
        +    my ($self, $sourceFile, $mode, $target, $original) = @_;
        +
        +    my $targetNoAmp = $self->RestoreAmpChars($target);
        +
        +    my $image = NaturalDocs::ImageReferenceTable->GetReferenceTarget($sourceFile, $targetNoAmp);
        +
        +    if ($image)
        +        {
        +        my ($width, $height) = NaturalDocs::Project->ImageFileDimensions($image);
        +
        +        if ($mode eq 'inline')
        +            {
        +            return
        +            '<img src="' . $self->MakeRelativeURL($self->OutputFileOf($sourceFile),
        +                                                                       $self->OutputImageOf($image), 1) . '"'
        +
        +            . ($width && $height ? ' width="' . $width . '" height="' . $height . '"' : '')
        +            . '>';
        +            }
        +        else # link
        +            {
        +            # Make the text a little more friendly in the output by removing any folders and file extensions.
        +            # (see images/Table1.gif) will be turned into (see Table1).
        +            my $originalNoAmp = $self->RestoreAmpChars($original);
        +            my $targetIndex = index($originalNoAmp, $targetNoAmp);
        +            my ($shortTarget, $shortTargetNoAmp, $shortOriginal);
        +
        +            if ($targetIndex != -1)
        +                {
        +                $shortTargetNoAmp = (NaturalDocs::File->SplitPath($targetNoAmp))[2];
        +                $shortTargetNoAmp = NaturalDocs::File->NoExtension($shortTargetNoAmp);
        +
        +                substr($originalNoAmp, $targetIndex, length($targetNoAmp), $shortTargetNoAmp);
        +
        +                $shortOriginal = NaturalDocs::NDMarkup->ConvertAmpChars($originalNoAmp);
        +                $shortTarget = NaturalDocs::NDMarkup->ConvertAmpChars($shortTargetNoAmp);
        +                };
        +
        +            my $output =
        +            '<a href="#Image' . $imageAnchorNumber . '" class=CImageLink>'
        +                . ($shortOriginal || $original)
        +            . '</a>';
        +
        +            $imageContent .=
        +            '<blockquote>'
        +            . '<div class=CImage>'
        +                . '<a name="Image' . $imageAnchorNumber . '"></a>'
        +                . '<div class=CImageCaption>' . ($shortTarget || $target) . '</div>'
        +                . '<img src="' . $self->MakeRelativeURL($self->OutputFileOf($sourceFile),
        +                                                                           $self->OutputImageOf($image), 1) . '"'
        +
        +                . ($width && $height ? ' width="' . $width . '" height="' . $height . '"' : '')
        +                . '>'
        +
        +            . '</div></blockquote>';
        +
        +            $imageAnchorNumber++;
        +            return $output;
        +            };
        +        }
        +    else # !$image
        +        {
        +        if ($mode eq 'inline')
        +            {  return '<p>' . $original . '</p>';  }
        +        else #($mode eq 'link')
        +            {  return $original;  };
        +        };
        +    };
        +
        +
        +#
        +#   Function: BuildToolTipLinkProperties
        +#
        +#   Returns the properties that should go in the link tag to add a tooltip to it.  Because the function accepts undef, you can
        +#   call it without checking if <BuildToolTip()> returned undef or not.
        +#
        +#   Parameters:
        +#
        +#       toolTipID - The ID of the tooltip.  If undef, the function will return undef.
        +#
        +#   Returns:
        +#
        +#       The properties that should be put in the link tag, or undef if toolTipID wasn't specified.
        +#
        +sub BuildToolTipLinkProperties #(toolTipID)
        +    {
        +    my ($self, $toolTipID) = @_;
        +
        +    if (defined $toolTipID)
        +        {
        +        my $currentNumber = $tooltipLinkNumber;
        +        $tooltipLinkNumber++;
        +
        +        return 'id=link' . $currentNumber . ' '
        +                . 'onMouseOver="ShowTip(event, \'' . $toolTipID . '\', \'link' . $currentNumber . '\')" '
        +                . 'onMouseOut="HideTip(\'' . $toolTipID . '\')"';
        +        }
        +    else
        +        {  return undef;  };
        +    };
        +
        +
        +#
        +#   Function: AddDoubleSpaces
        +#
        +#   Adds second spaces after the appropriate punctuation with &nbsp; so they show up in HTML.  They don't occur if there isn't at
        +#   least one space after the punctuation, so things like class.member notation won't be affected.
        +#
        +#   Parameters:
        +#
        +#       text - The text to convert.
        +#
        +#   Returns:
        +#
        +#       The text with double spaces as necessary.
        +#
        +sub AddDoubleSpaces #(text)
        +    {
        +    my ($self, $text) = @_;
        +
        +    # Question marks and exclamation points get double spaces unless followed by a lowercase letter.
        +
        +    $text =~ s/  ([^\ \t\r\n] [\!\?])  # Must appear after a non-whitespace character to apply.
        +
        +                      (&quot;|&[lr][sd]quo;|[\'\"\]\}\)]?)  # Tolerate closing quotes, parenthesis, etc.
        +                      ((?:<[^>]+>)*)  # Tolerate tags
        +
        +                      \   # The space
        +                      (?![a-z])  # Not followed by a lowercase character.
        +
        +                   /$1$2$3&nbsp;\ /gx;
        +
        +
        +    # Periods get double spaces if it's not followed by a lowercase letter.  However, if it's followed by a capital letter and the
        +    # preceding word is in the list of acceptable abbreviations, it won't get the double space.  Yes, I do realize I am seriously
        +    # over-engineering this.
        +
        +    $text =~ s/  ([^\ \t\r\n]+)  # The word prior to the period.
        +
        +                      \.
        +
        +                      (&quot;|&[lr][sd]quo;|[\'\"\]\}\)]?)  # Tolerate closing quotes, parenthesis, etc.
        +                      ((?:<[^>]+>)*)  # Tolerate tags
        +
        +                      \   # The space
        +                      ([^a-z])   # The next character, if it's not a lowercase letter.
        +
        +                  /$1 . '.' . $2 . $3 . MaybeExpand($1, $4) . $4/gex;
        +
        +    sub MaybeExpand #(leadWord, nextLetter)
        +        {
        +        my ($leadWord, $nextLetter) = @_;
        +
        +        if ($nextLetter =~ /^[A-Z]$/ && exists $abbreviations{ lc($leadWord) } )
        +            { return ' '; }
        +        else
        +            { return '&nbsp; '; };
        +        };
        +
        +    return $text;
        +    };
        +
        +
        +#
        +#   Function: ConvertAmpChars
        +#
        +#   Converts certain characters to their HTML amp char equivalents.
        +#
        +#   Parameters:
        +#
        +#       text - The text to convert.
        +#
        +#   Returns:
        +#
        +#       The converted text.
        +#
        +sub ConvertAmpChars #(text)
        +    {
        +    my ($self, $text) = @_;
        +
        +    $text =~ s/&/&amp;/g;
        +    $text =~ s/\"/&quot;/g;
        +    $text =~ s/</&lt;/g;
        +    $text =~ s/>/&gt;/g;
        +
        +    return $text;
        +    };
        +
        +
        +#
        +#   Function: RestoreAmpChars
        +#
        +#   Restores all amp characters to their original state.  This works with both <NDMarkup> amp chars and fancy quotes.
        +#
        +#   Parameters:
        +#
        +#       text - The text to convert.
        +#
        +#   Returns:
        +#
        +#       The converted text.
        +#
        +sub RestoreAmpChars #(text)
        +    {
        +    my ($self, $text) = @_;
        +
        +    $text = NaturalDocs::NDMarkup->RestoreAmpChars($text);
        +    $text =~ s/&[lr]squo;/\'/g;
        +    $text =~ s/&[lr]dquo;/\"/g;
        +
        +    return $text;
        +    };
        +
        +
        +#
        +#   Function: AddHiddenBreaks
        +#
        +#   Adds hidden breaks to symbols.  Puts them after symbol and directory separators so long names won't screw up the layout.
        +#
        +#   Parameters:
        +#
        +#       string - The string to break.
        +#
        +#   Returns:
        +#
        +#       The string with hidden breaks.
        +#
        +sub AddHiddenBreaks #(string)
        +    {
        +    my ($self, $string) = @_;
        +
        +    # \.(?=.{5,}) instead of \. so file extensions don't get breaks.
        +    # :+ instead of :: because Mac paths are separated by a : and we want to get those too.
        +
        +    $string =~ s/(\w(?:\.(?=.{5,})|:+|->|\\|\/))(\w)/$1 . '<wbr>' . $2/ge;
        +
        +    return $string;
        +    };
        +
        +
        +#
        +#   Function: FindFirstFile
        +#
        +#   A function that finds and returns the first file entry in the menu, or undef if none.
        +#
        +sub FindFirstFile
        +    {
        +    # Hidden parameter: arrayref
        +    # Used for recursion only.
        +
        +    my ($self, $arrayref) = @_;
        +
        +    if (!defined $arrayref)
        +        {  $arrayref = NaturalDocs::Menu->Content();  };
        +
        +    foreach my $entry (@$arrayref)
        +        {
        +        if ($entry->Type() == ::MENU_FILE())
        +            {
        +            return $entry;
        +            }
        +        elsif ($entry->Type() == ::MENU_GROUP())
        +            {
        +            my $result = $self->FindFirstFile($entry->GroupContent());
        +            if (defined $result)
        +                {  return $result;  };
        +            };
        +        };
        +
        +    return undef;
        +    };
        +
        +
        +#
        +#   Function: ExpandMenu
        +#
        +#   Determines which groups should be expanded.
        +#
        +#   Parameters:
        +#
        +#       sourceFile - The source <FileName> to use if you're looking for a source file.
        +#       indexType - The index <TopicType> to use if you're looking for an index.
        +#       selectionHierarchy - The <FileName> the menu is being built for.  Does not have to be on the menu itself.
        +#       rootLength - The length of the menu's root group, *not* including the contents of subgroups.
        +#
        +#   Returns:
        +#
        +#       An arrayref of all the group numbers that should be expanded.  At minimum, it will contain the numbers of the groups
        +#       present in <menuSelectionHierarchy>, though it may contain more.
        +#
        +sub ExpandMenu #(FileName sourceFile, TopicType indexType, NaturalDocs::Menu::Entry[] selectionHierarchy, int rootLength) -> int[] groupsToExpand
        +    {
        +    my ($self, $sourceFile, $indexType, $menuSelectionHierarchy, $rootLength) = @_;
        +
        +    my $toExpand = [ ];
        +
        +
        +    # First expand everything in the selection hierarchy.
        +
        +    my $length = $rootLength;
        +
        +    foreach my $entry (@$menuSelectionHierarchy)
        +        {
        +        $length += $menuGroupLengths{$entry};
        +        push @$toExpand, $menuGroupNumbers{$entry};
        +        };
        +
        +
        +    # Now do multiple passes of group expansion as necessary.  We start from bottomIndex and expand outwards.  We stop going
        +    # in a direction if a group there is too long -- we do not skip over it and check later groups as well.  However, if one direction
        +    # stops, the other can keep going.
        +
        +    my $pass = 1;
        +    my $hasSubGroups;
        +
        +    while ($length < MENU_LENGTH_LIMIT)
        +        {
        +        my $content;
        +        my $topIndex;
        +        my $bottomIndex;
        +
        +
        +        if ($pass == 1)
        +            {
        +            # First pass, we expand the selection's siblings.
        +
        +            if (scalar @$menuSelectionHierarchy)
        +                {  $content = $menuSelectionHierarchy->[0]->GroupContent();  }
        +            else
        +                {  $content = NaturalDocs::Menu->Content();  };
        +
        +            $bottomIndex = 0;
        +
        +            while ($bottomIndex < scalar @$content &&
        +                     !($content->[$bottomIndex]->Type() == ::MENU_FILE() &&
        +                       $content->[$bottomIndex]->Target() eq $sourceFile) &&
        +                     !($content->[$bottomIndex]->Type() != ::MENU_INDEX() &&
        +                       $content->[$bottomIndex]->Target() eq $indexType) )
        +                {  $bottomIndex++;  };
        +
        +            if ($bottomIndex == scalar @$content)
        +                {  $bottomIndex = 0;  };
        +            $topIndex = $bottomIndex - 1;
        +            }
        +
        +        elsif ($pass == 2)
        +            {
        +            # If the section we just expanded had no sub-groups, do another pass trying to expand the parent's sub-groups.  The
        +            # net effect is that groups won't collapse as much unnecessarily.  Someone can click on a file in a sub-group and the
        +            # groups in the parent will stay open.
        +
        +            if (!$hasSubGroups && scalar @$menuSelectionHierarchy)
        +                {
        +                if (scalar @$menuSelectionHierarchy > 1)
        +                    {  $content = $menuSelectionHierarchy->[1]->GroupContent();  }
        +                else
        +                    {  $content = NaturalDocs::Menu->Content();  };
        +
        +                $bottomIndex = 0;
        +
        +                while ($bottomIndex < scalar @$content &&
        +                         $content->[$bottomIndex] != $menuSelectionHierarchy->[0])
        +                    {  $bottomIndex++;  };
        +
        +                $topIndex = $bottomIndex - 1;
        +                $bottomIndex++;  # Increment past our own group.
        +                $hasSubGroups = undef;
        +                }
        +            else
        +                {  last;  };
        +            }
        +
        +        # No more passes.
        +        else
        +            {  last;  };
        +
        +
        +        while ( ($topIndex >= 0 || $bottomIndex < scalar @$content) && $length < MENU_LENGTH_LIMIT)
        +            {
        +            # We do the bottom first.
        +
        +            while ($bottomIndex < scalar @$content && $content->[$bottomIndex]->Type() != ::MENU_GROUP())
        +                {  $bottomIndex++;  };
        +
        +            if ($bottomIndex < scalar @$content)
        +                {
        +                my $bottomEntry = $content->[$bottomIndex];
        +                $hasSubGroups = 1;
        +
        +                if ($length + $menuGroupLengths{$bottomEntry} <= MENU_LENGTH_LIMIT)
        +                    {
        +                    $length += $menuGroupLengths{$bottomEntry};
        +                    push @$toExpand, $menuGroupNumbers{$bottomEntry};
        +                    $bottomIndex++;
        +                    }
        +                else
        +                    {  $bottomIndex = scalar @$content;  };
        +                };
        +
        +            # Top next.
        +
        +            while ($topIndex >= 0 && $content->[$topIndex]->Type() != ::MENU_GROUP())
        +                {  $topIndex--;  };
        +
        +            if ($topIndex >= 0)
        +                {
        +                my $topEntry = $content->[$topIndex];
        +                $hasSubGroups = 1;
        +
        +                if ($length + $menuGroupLengths{$topEntry} <= MENU_LENGTH_LIMIT)
        +                    {
        +                    $length += $menuGroupLengths{$topEntry};
        +                    push @$toExpand, $menuGroupNumbers{$topEntry};
        +                    $topIndex--;
        +                    }
        +                else
        +                    {  $topIndex = -1;  };
        +                };
        +            };
        +
        +
        +        $pass++;
        +        };
        +
        +    return $toExpand;
        +    };
        +
        +
        +#
        +#   Function: GetMenuSelectionHierarchy
        +#
        +#   Finds the sequence of menu groups that contain the current selection.
        +#
        +#   Parameters:
        +#
        +#       sourceFile - The source <FileName> to use if you're looking for a source file.
        +#       indexType - The index <TopicType> to use if you're looking for an index.
        +#
        +#   Returns:
        +#
        +#       An arrayref of the <NaturalDocs::Menu::Entry> objects of each group surrounding the selected menu item.  First entry is the
        +#       group immediately encompassing it, and each subsequent entry works its way towards the outermost group.
        +#
        +sub GetMenuSelectionHierarchy #(FileName sourceFile, TopicType indexType) -> NaturalDocs::Menu::Entry[] selectionHierarchy
        +    {
        +    my ($self, $sourceFile, $indexType) = @_;
        +
        +    my $hierarchy = [ ];
        +
        +    $self->FindMenuSelection($sourceFile, $indexType, $hierarchy, NaturalDocs::Menu->Content());
        +
        +    return $hierarchy;
        +    };
        +
        +
        +#
        +#   Function: FindMenuSelection
        +#
        +#   A recursive function that deterimes if it or any of its sub-groups has the menu selection.
        +#
        +#   Parameters:
        +#
        +#       sourceFile - The source <FileName> to use if you're looking for a source file.
        +#       indexType - The index <TopicType> to use if you're looking for an index.
        +#       hierarchyRef - A reference to the menu selection hierarchy.
        +#       entries - An arrayref of <NaturalDocs::Menu::Entries> to search.
        +#
        +#   Returns:
        +#
        +#       Whether this group or any of its subgroups had the selection.  If true, it will add any subgroups to the menu selection
        +#       hierarchy but not itself.  This prevents the topmost entry from being added.
        +#
        +sub FindMenuSelection #(FileName sourceFile, TopicType indexType, NaturalDocs::Menu::Entry[] hierarchyRef, NaturalDocs::Menu::Entry[] entries) -> bool hasSelection
        +    {
        +    my ($self, $sourceFile, $indexType, $hierarchyRef, $entries) = @_;
        +
        +    foreach my $entry (@$entries)
        +        {
        +        if ($entry->Type() == ::MENU_GROUP())
        +            {
        +            # If the subgroup has the selection...
        +            if ( $self->FindMenuSelection($sourceFile, $indexType, $hierarchyRef, $entry->GroupContent()) )
        +                {
        +                push @$hierarchyRef, $entry;
        +                return 1;
        +                };
        +            }
        +
        +        elsif ($entry->Type() == ::MENU_FILE())
        +            {
        +            if ($sourceFile eq $entry->Target())
        +                {  return 1;  };
        +            }
        +
        +        elsif ($entry->Type() == ::MENU_INDEX())
        +            {
        +            if ($indexType eq $entry->Target)
        +                {  return 1;  };
        +            };
        +        };
        +
        +    return 0;
        +    };
        +
        +
        +#
        +#   Function: ResetToolTips
        +#
        +#   Resets the <ToolTip Package Variables> for a new page.
        +#
        +#   Parameters:
        +#
        +#       samePage  - Set this flag if there's the possibility that the next batch of tooltips may be on the same page as the last.
        +#
        +sub ResetToolTips #(samePage)
        +    {
        +    my ($self, $samePage) = @_;
        +
        +    if (!$samePage)
        +        {
        +        $tooltipLinkNumber = 1;
        +        $tooltipNumber = 1;
        +        };
        +
        +    $tooltipHTML = undef;
        +    %tooltipSymbolsToNumbers = ( );
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/ClassHierarchy.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/ClassHierarchy.pm
        new file mode 100755
        index 0000000..4f2ee16
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/ClassHierarchy.pm
        @@ -0,0 +1,869 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::ClassHierarchy
        +#
        +###############################################################################
        +#
        +#   A package that handles all the gory details of managing the class hierarchy.  It handles the hierarchy itself, which files define
        +#   them, rebuilding the files that are affected by changes, and loading and saving them to a file.
        +#
        +#   Usage and Dependencies:
        +#
        +#       - <NaturalDocs::Settings> and <NaturalDocs::Project> must be initialized before use.
        +#
        +#       - <NaturalDocs::SymbolTable> must be initialized before <Load()> is called.  It must reflect the state as of the last time
        +#          Natural Docs was run.
        +#
        +#       - <Load()> must be called to initialize the package.  At this point, the <Information Functions> will return the state as
        +#         of the last time Natural Docs was run.  You are free to resolve <NaturalDocs::SymbolTable()> afterwards.
        +#
        +#       - <Purge()> must be called, and then <NaturalDocs::Parser->ParseForInformation()> must be called on all files that
        +#         have changed so it can fully resolve the hierarchy via the <Modification Functions()>.  Afterwards the
        +#         <Information Functions> will reflect the current state of the code.
        +#
        +#       - <Save()> must be called to commit any changes to the symbol table back to disk.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +
        +use strict;
        +use integer;
        +
        +use NaturalDocs::ClassHierarchy::Class;
        +use NaturalDocs::ClassHierarchy::File;
        +
        +package NaturalDocs::ClassHierarchy;
        +
        +use Encode qw(encode_utf8 decode_utf8);
        +
        +
        +###############################################################################
        +# Group: Variables
        +
        +#
        +#   handle: CLASS_HIERARCHY_FILEHANDLE
        +#   The file handle used with <ClassHierarchy.nd>.
        +#
        +
        +#
        +#   hash: classes
        +#
        +#   A hash of all the classes.  The keys are the class <SymbolStrings> and the values are <NaturalDocs::ClassHierarchy::Classes>.
        +#
        +my %classes;
        +
        +#
        +#   hash: files
        +#
        +#   A hash of the hierarchy information referenced by file.  The keys are the <FileNames>, and the values are
        +#   <NaturalDocs::ClassHierarchy::File>s.
        +#
        +my %files;
        +
        +#
        +#   hash: parentReferences
        +#
        +#   A hash of all the parent reference strings and what they resolve to.  The keys are the <ReferenceStrings> and the values are
        +#   the class <SymbolStrings> that they resolve to.
        +#
        +my %parentReferences;
        +
        +#
        +#   object: watchedFile
        +#
        +#   A <NaturalDocs::ClassHierarchy::File> object of the file being watched for changes.  This is compared to the version in <files>
        +#   to see if anything was changed since the last parse.
        +#
        +my $watchedFile;
        +
        +#
        +#   string: watchedFileName
        +#
        +#   The <FileName> of the watched file, if any.  If there is no watched file, this will be undef.
        +#
        +my $watchedFileName;
        +
        +#
        +#   bool: dontRebuildFiles
        +#
        +#   A bool to set if you don't want changes in the hierarchy to cause files to be rebuilt.
        +#
        +my $dontRebuildFiles;
        +
        +
        +
        +###############################################################################
        +# Group: Files
        +
        +
        +#
        +#   File: ClassHierarchy.nd
        +#
        +#   Stores the class hierarchy on disk.
        +#
        +#   Format:
        +#
        +#       > [BINARY_FORMAT]
        +#       > [VersionInt: app version]
        +#
        +#       The standard <BINARY_FORMAT> and <VersionInt> header.
        +#
        +#       > [SymbolString: class or undef to end]
        +#
        +#       Next we begin a class segment with its <SymbolString>.  These continue until the end of the file.  Only defined classes are
        +#       included.
        +#
        +#       > [UInt32: number of files]
        +#       > [UString16: file] [UString16: file] ...
        +#
        +#       Next there is the number of files that define that class.  It's a UInt32, which seems like overkill, but I could imagine every
        +#       file in a huge C++ project being under the same namespace, and thus contributing its own definition.  It's theoretically
        +#       possible.
        +#
        +#       Following the number is that many file names.  You must remember the index of each file, as they will be important later.
        +#       Indexes start at one because zero has a special meaning.
        +#
        +#       > [UInt8: number of parents]
        +#       > ( [ReferenceString (no type): parent]
        +#       >   [UInt32: file index] [UInt32: file index] ... [UInt32: 0] ) ...
        +#
        +#       Next there is the number of parents defined for this class.  For each one, we define a parent segment, which consists of
        +#       its <ReferenceString>, and then a zero-terminated string of indexes of the files that define that parent as part of that class.
        +#       The indexes start at one, and are into the list of files we saw previously.
        +#
        +#       Note that we do store class segments for classes without parents, but not for undefined classes.
        +#
        +#       This concludes a class segment.  These segments continue until an undef <SymbolString>.
        +#
        +#   See Also:
        +#
        +#       <File Format Conventions>
        +#
        +#   Revisions:
        +#
        +#		1.52:
        +#
        +#			- Changed AString16s to UString16s.
        +#
        +#       1.22:
        +#
        +#           - Classes and parents switched from AString16s to <SymbolStrings> and <ReferenceStrings>.
        +#           - A ending undef <SymbolString> was added to the end.  Previously it stopped when the file ran out.
        +#
        +#       1.2:
        +#
        +#           - This file was introduced in 1.2.
        +#
        +
        +
        +###############################################################################
        +# Group: File Functions
        +
        +
        +#
        +#   Function: Load
        +#
        +#   Loads the class hierarchy from disk.
        +#
        +sub Load
        +    {
        +    my ($self) = @_;
        +
        +    $dontRebuildFiles = 1;
        +
        +    my $fileIsOkay;
        +    my $fileName = NaturalDocs::Project->DataFile('ClassHierarchy.nd');
        +
        +    if (!NaturalDocs::Settings->RebuildData() && open(CLASS_HIERARCHY_FILEHANDLE, '<' . $fileName))
        +        {
        +        # See if it's binary.
        +        binmode(CLASS_HIERARCHY_FILEHANDLE);
        +
        +        my $firstChar;
        +        read(CLASS_HIERARCHY_FILEHANDLE, $firstChar, 1);
        +
        +        if ($firstChar != ::BINARY_FORMAT())
        +            {
        +            close(CLASS_HIERARCHY_FILEHANDLE);
        +            }
        +        else
        +            {
        +            my $version = NaturalDocs::Version->FromBinaryFile(\*CLASS_HIERARCHY_FILEHANDLE);
        +
        +            # Last file format change was 1.52
        +
        +            if (NaturalDocs::Version->CheckFileFormat( $version, NaturalDocs::Version->FromString('1.52') ))
        +                {  $fileIsOkay = 1;  }
        +            else
        +                {  close(CLASS_HIERARCHY_FILEHANDLE);  };
        +            };
        +        };
        +
        +
        +    if (!$fileIsOkay)
        +        {
        +        NaturalDocs::Project->ReparseEverything();
        +        }
        +    else
        +        {
        +        my $raw;
        +
        +        for (;;)
        +            {
        +            # [SymbolString: class or undef to end]
        +
        +            my $class = NaturalDocs::SymbolString->FromBinaryFile(\*CLASS_HIERARCHY_FILEHANDLE);
        +
        +            if (!defined $class)
        +                {  last;  };
        +
        +            # [UInt32: number of files]
        +
        +            read(CLASS_HIERARCHY_FILEHANDLE, $raw, 4);
        +            my $numberOfFiles = unpack('N', $raw);
        +
        +            my @files;
        +
        +            while ($numberOfFiles)
        +                {
        +                # [UString16: file]
        +
        +                read(CLASS_HIERARCHY_FILEHANDLE, $raw, 2);
        +                my $fileLength = unpack('n', $raw);
        +
        +                my $file;
        +                read(CLASS_HIERARCHY_FILEHANDLE, $file, $fileLength);
        +                $file = decode_utf8($file);
        +
        +                push @files, $file;
        +                $self->AddClass($file, $class, NaturalDocs::Languages->LanguageOf($file)->Name());
        +
        +                $numberOfFiles--;
        +                };
        +
        +            # [UInt8: number of parents]
        +
        +            read(CLASS_HIERARCHY_FILEHANDLE, $raw, 1);
        +            my $numberOfParents = unpack('C', $raw);
        +
        +            while ($numberOfParents)
        +                {
        +                # [ReferenceString (no type): parent]
        +
        +                my $parent = NaturalDocs::ReferenceString->FromBinaryFile(\*CLASS_HIERARCHY_FILEHANDLE,
        +                                                                                                         ::BINARYREF_NOTYPE(),
        +                                                                                                         ::REFERENCE_CH_PARENT());
        +
        +                for (;;)
        +                    {
        +                    # [UInt32: file index or 0]
        +
        +                    read(CLASS_HIERARCHY_FILEHANDLE, $raw, 4);
        +                    my $fileIndex = unpack('N', $raw);
        +
        +                    if ($fileIndex == 0)
        +                        {  last;  }
        +
        +                    $self->AddParentReference( $files[$fileIndex - 1], $class, $parent );
        +                    };
        +
        +                $numberOfParents--;
        +                };
        +            };
        +
        +        close(CLASS_HIERARCHY_FILEHANDLE);
        +        };
        +
        +    $dontRebuildFiles = undef;
        +    };
        +
        +
        +#
        +#   Function: Save
        +#
        +#   Saves the class hierarchy to disk.
        +#
        +sub Save
        +    {
        +    my ($self) = @_;
        +
        +    open (CLASS_HIERARCHY_FILEHANDLE, '>' . NaturalDocs::Project->DataFile('ClassHierarchy.nd'))
        +        or die "Couldn't save " . NaturalDocs::Project->DataFile('ClassHierarchy.nd') . ".\n";
        +
        +    binmode(CLASS_HIERARCHY_FILEHANDLE);
        +
        +    print CLASS_HIERARCHY_FILEHANDLE '' . ::BINARY_FORMAT();
        +    NaturalDocs::Version->ToBinaryFile(\*CLASS_HIERARCHY_FILEHANDLE, NaturalDocs::Settings->AppVersion());
        +
        +    while (my ($class, $classObject) = each %classes)
        +        {
        +        if ($classObject->IsDefined())
        +            {
        +            # [SymbolString: class or undef to end]
        +
        +            NaturalDocs::SymbolString->ToBinaryFile(\*CLASS_HIERARCHY_FILEHANDLE, $class);
        +
        +            # [UInt32: number of files]
        +
        +            my @definitions = $classObject->Definitions();
        +            my %definitionIndexes;
        +
        +            print CLASS_HIERARCHY_FILEHANDLE pack('N', scalar @definitions);
        +
        +            for (my $i = 0; $i < scalar @definitions; $i++)
        +                {
        +                # [UString16: file]
        +                my $uDefinition = encode_utf8($definitions[$i]);
        +                print CLASS_HIERARCHY_FILEHANDLE pack('na*', length($uDefinition), $uDefinition);
        +                $definitionIndexes{$definitions[$i]} = $i + 1;
        +                };
        +
        +            # [UInt8: number of parents]
        +
        +            my @parents = $classObject->ParentReferences();
        +            print CLASS_HIERARCHY_FILEHANDLE pack('C', scalar @parents);
        +
        +            foreach my $parent (@parents)
        +                {
        +                # [ReferenceString (no type): parent]
        +
        +                NaturalDocs::ReferenceString->ToBinaryFile(\*CLASS_HIERARCHY_FILEHANDLE, $parent, ::BINARYREF_NOTYPE());
        +
        +                # [UInt32: file index]
        +
        +                my @parentDefinitions = $classObject->ParentReferenceDefinitions($parent);
        +
        +                foreach my $parentDefinition (@parentDefinitions)
        +                    {
        +                    print CLASS_HIERARCHY_FILEHANDLE pack('N', $definitionIndexes{$parentDefinition});
        +                    };
        +
        +                # [UInt32: 0]
        +                print CLASS_HIERARCHY_FILEHANDLE pack('N', 0);
        +                };
        +            };
        +        };
        +
        +    # [SymbolString: class or undef to end]
        +
        +    NaturalDocs::SymbolString->ToBinaryFile(\*CLASS_HIERARCHY_FILEHANDLE, undef);
        +
        +    close(CLASS_HIERARCHY_FILEHANDLE);
        +    };
        +
        +
        +#
        +#   Function: Purge
        +#
        +#   Purges the hierarchy of files that no longer have Natural Docs content.
        +#
        +sub Purge
        +    {
        +    my ($self) = @_;
        +
        +    my $filesToPurge = NaturalDocs::Project->FilesToPurge();
        +
        +    foreach my $file (keys %$filesToPurge)
        +        {
        +        $self->DeleteFile($file);
        +        };
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Interface Functions
        +
        +
        +#
        +#   Function: OnInterpretationChange
        +#
        +#   Called by <NaturalDocs::SymbolTable> whenever a class hierarchy reference's intepretation changes, meaning it switched
        +#   from one symbol to another.
        +#
        +#       reference - The <ReferenceString> whose current interpretation changed.
        +#
        +sub OnInterpretationChange #(reference)
        +    {
        +    my ($self, $reference) = @_;
        +
        +    if (NaturalDocs::ReferenceString->TypeOf($reference) == ::REFERENCE_CH_PARENT())
        +        {
        +        # The approach here is simply to completely delete the reference and readd it.  This is less than optimal efficiency, since it's
        +        # being removed and added from %files too, even though that isn't required.  However, the simpler code is worth it
        +        # considering this will only happen when a parent reference becomes defined or undefined, or on the rare languages (like C#)
        +        # that allow relative parent references.
        +
        +        my $oldTargetSymbol = $parentReferences{$reference};
        +        my $oldTargetObject = $classes{$oldTargetSymbol};
        +
        +        my @classesWithReferenceParent = $oldTargetObject->Children();
        +
        +        # Each entry is an arrayref of file names.  Indexes are the same as classesWithReferenceParent's.
        +        my @filesDefiningReferenceParent;
        +
        +        foreach my $classWithReferenceParent (@classesWithReferenceParent)
        +            {
        +            my $fileList = [ $classes{$classWithReferenceParent}->ParentReferenceDefinitions($reference) ];
        +            push @filesDefiningReferenceParent, $fileList;
        +
        +            foreach my $fileDefiningReferenceParent (@$fileList)
        +                {
        +                $self->DeleteParentReference($fileDefiningReferenceParent, $classWithReferenceParent, $reference);
        +                };
        +            };
        +
        +
        +        # This will force the reference to be reinterpreted on the next add.
        +
        +        delete $parentReferences{$reference};
        +
        +
        +        # Now we can just readd it.
        +
        +        for (my $i = 0; $i < scalar @classesWithReferenceParent; $i++)
        +            {
        +            foreach my $file (@{$filesDefiningReferenceParent[$i]})
        +                {
        +                $self->AddParentReference($file, $classesWithReferenceParent[$i], $reference);
        +                };
        +            };
        +        };
        +
        +    # The only way for a REFERENCE_CH_CLASS reference to change is if the symbol is deleted.  That will be handled by
        +    # <AnalyzeChanges()>, so we don't need to do anything here.
        +    };
        +
        +
        +#
        +#   Function: OnTargetSymbolChange
        +#
        +#   Called by <NaturalDocs::SymbolTable> whenever a class hierarchy reference's target symbol changes, but the reference
        +#   still resolves to the same symbol.
        +#
        +#   Parameters:
        +#
        +#       reference - The <ReferenceString> that was affected by the change.
        +#
        +sub OnTargetSymbolChange #(reference)
        +    {
        +    my ($self, $reference) = @_;
        +
        +    my $type = NaturalDocs::ReferenceString->TypeOf($reference);
        +    my $class;
        +
        +    if ($type == ::REFERENCE_CH_PARENT())
        +        {  $class = $parentReferences{$reference};  }
        +    else # ($type == ::REFERENCE_CH_CLASS())
        +        {
        +        # Class references are global absolute, so we can just yank the symbol.
        +        (undef, $class, undef, undef, undef, undef) = NaturalDocs::ReferenceString->InformationOf($reference);
        +        };
        +
        +    $self->RebuildFilesFor($class, 1, 0, 1);
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Modification Functions
        +
        +
        +#
        +#   Function: AddClass
        +#
        +#   Adds a class to the hierarchy.
        +#
        +#   Parameters:
        +#
        +#       file - The <FileName> the class was defined in.
        +#       class - The class <SymbolString>.
        +#       languageName - The name of the language this applies to.
        +#
        +#   Note:
        +#
        +#       The file parameter must be defined when using this function externally.  It may be undef for internal use only.
        +#
        +sub AddClass #(file, class, languageName)
        +    {
        +    my ($self, $file, $class, $languageName) = @_;
        +
        +    if (!exists $classes{$class})
        +        {
        +        $classes{$class} = NaturalDocs::ClassHierarchy::Class->New();
        +        NaturalDocs::SymbolTable->AddReference($self->ClassReferenceOf($class, $languageName), $file)
        +        };
        +
        +    if (defined $file)
        +        {
        +        # If this was the first definition for this class...
        +        if ($classes{$class}->AddDefinition($file))
        +            {  $self->RebuildFilesFor($class, 1, 1, 1);  };
        +
        +        if (!exists $files{$file})
        +            {  $files{$file} = NaturalDocs::ClassHierarchy::File->New();  };
        +
        +        $files{$file}->AddClass($class);
        +
        +        if (defined $watchedFileName)
        +            {  $watchedFile->AddClass($class);  };
        +        };
        +    };
        +
        +
        +#
        +#   Function: AddParentReference
        +#
        +#   Adds a class-parent relationship to the hierarchy.  The classes will be created if they don't already exist.
        +#
        +#   Parameters:
        +#
        +#       file - The <FileName> the reference was defined in.
        +#       class - The class <SymbolString>.
        +#       symbol - The parent class <SymbolString>.
        +#       scope - The package <SymbolString> that the reference appeared in.
        +#       using - An arrayref of package <SymbolStrings> that the reference has access to via "using" statements.
        +#       resolvingFlags - Any <Resolving Flags> to be used when resolving the reference.
        +#
        +#   Alternate Parameters:
        +#
        +#       file - The <FileName> the reference was defined in.
        +#       class - The class <SymbolString>.
        +#       reference - The parent <ReferenceString>.
        +#
        +sub AddParentReference #(file, class, symbol, scope, using, resolvingFlags) or (file, class, reference)
        +    {
        +    my ($self, $file, $class, $symbol, $parentReference);
        +
        +    if (scalar @_ == 7)
        +        {
        +        my ($scope, $using, $resolvingFlags);
        +        ($self, $file, $class, $symbol, $scope, $using, $resolvingFlags) = @_;
        +
        +        $parentReference = NaturalDocs::ReferenceString->MakeFrom(::REFERENCE_CH_PARENT(), $symbol,
        +                                                                                                    NaturalDocs::Languages->LanguageOf($file)->Name(),
        +                                                                                                    $scope, $using, $resolvingFlags);
        +        }
        +    else
        +        {
        +        ($self, $file, $class, $parentReference) = @_;
        +        $symbol = (NaturalDocs::ReferenceString->InformationOf($parentReference))[1];
        +        };
        +
        +
        +    # In case it doesn't already exist.
        +    $self->AddClass($file, $class);
        +
        +    my $parent;
        +    if (exists $parentReferences{$parentReference})
        +        {
        +        $parent = $parentReferences{$parentReference};
        +        }
        +    else
        +        {
        +        NaturalDocs::SymbolTable->AddReference($parentReference, $file);
        +        my $parentTarget = NaturalDocs::SymbolTable->References($parentReference);
        +
        +        if (defined $parentTarget)
        +            {  $parent = $parentTarget->Symbol();  }
        +        else
        +            {  $parent = $symbol;  };
        +
        +        # In case it doesn't already exist.
        +        $self->AddClass(undef, $parent);
        +
        +        $parentReferences{$parentReference} = $parent;
        +        };
        +
        +
        +    # If this defined a new parent...
        +    if ($classes{$class}->AddParentReference($parentReference, $file, \%parentReferences))
        +        {
        +        $classes{$parent}->AddChild($class);
        +
        +        $self->RebuildFilesFor($class, 0, 1, 0);
        +        $self->RebuildFilesFor($parent, 0, 1, 0);
        +        };
        +
        +    $files{$file}->AddParentReference($class, $parentReference);
        +
        +    if (defined $watchedFileName)
        +        {  $watchedFile->AddParentReference($class, $parentReference);  };
        +    };
        +
        +
        +#
        +#   Function: WatchFileForChanges
        +#
        +#   Watches a file for changes, which can then be applied by <AnalyzeChanges()>.  Definitions are not deleted via a DeleteClass()
        +#   function.  Instead, a file is watched for changes, reparsed, and then a comparison is made to look for definitions that
        +#   disappeared and any other relevant changes.
        +#
        +#   Parameters:
        +#
        +#       file - The <FileName> to watch.
        +#
        +sub WatchFileForChanges #(file)
        +    {
        +    my ($self, $file) = @_;
        +
        +    $watchedFile = NaturalDocs::ClassHierarchy::File->New();
        +    $watchedFileName = $file;
        +    };
        +
        +
        +#
        +#   Function: AnalyzeChanges
        +#
        +#   Checks the watched file for any changes that occured since the last time is was parsed, and updates the hierarchy as
        +#   necessary.  Also sends any files that are affected to <NaturalDocs::Project->RebuildFile()>.
        +#
        +sub AnalyzeChanges
        +    {
        +    my ($self) = @_;
        +
        +    # If the file didn't have any classes before, and it still doesn't, it wont be in %files.
        +    if (exists $files{$watchedFileName})
        +        {
        +        my @originalClasses = $files{$watchedFileName}->Classes();
        +
        +        foreach my $originalClass (@originalClasses)
        +            {
        +            # If the class isn't there the second time around...
        +            if (!$watchedFile->HasClass($originalClass))
        +                {  $self->DeleteClass($watchedFileName, $originalClass);  }
        +
        +            else
        +                {
        +                my @originalParents = $files{$watchedFileName}->ParentReferencesOf($originalClass);
        +
        +                foreach my $originalParent (@originalParents)
        +                    {
        +                    # If the parent reference wasn't there the second time around...
        +                    if (!$watchedFile->HasParentReference($originalClass, $originalParent))
        +                        {  $self->DeleteParentReference($watchedFileName, $originalClass, $originalParent);  };
        +                    };
        +                };
        +            };
        +        };
        +
        +
        +    $watchedFile = undef;
        +    $watchedFileName = undef;
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Information Functions
        +
        +
        +#
        +#   Function: ParentsOf
        +#   Returns a <SymbolString> array of the passed class' parents, or an empty array if none.  Note that not all of them may be
        +#   defined.
        +#
        +sub ParentsOf #(class)
        +    {
        +    my ($self, $class) = @_;
        +
        +    if (exists $classes{$class})
        +        {  return $classes{$class}->Parents();  }
        +    else
        +        {  return ( );  };
        +    };
        +
        +#
        +#   Function: ChildrenOf
        +#   Returns a <SymbolString> array of the passed class' children, or an empty array if none.  Note that not all of them may be
        +#   defined.
        +#
        +sub ChildrenOf #(class)
        +    {
        +    my ($self, $class) = @_;
        +
        +    if (exists $classes{$class})
        +        {  return $classes{$class}->Children();  }
        +    else
        +        {  return ( );  };
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Support Functions
        +
        +
        +#
        +#   Function: DeleteFile
        +#
        +#   Deletes a file and everything defined in it.
        +#
        +#   Parameters:
        +#
        +#       file - The <FileName>.
        +#
        +sub DeleteFile #(file)
        +    {
        +    my ($self, $file) = @_;
        +
        +    if (!exists $files{$file})
        +        {  return;  };
        +
        +    my @classes = $files{$file}->Classes();
        +    foreach my $class (@classes)
        +        {
        +        $self->DeleteClass($file, $class);
        +        };
        +
        +    delete $files{$file};
        +    };
        +
        +#
        +#   Function: DeleteClass
        +#
        +#   Deletes a class definition from a file.  Will also delete any parent references from this class and file.  Will rebuild any file
        +#   affected unless <dontRebuildFiles> is set.
        +#
        +#   Parameters:
        +#
        +#       file - The <FileName> that defines the class.
        +#       class - The class <SymbolString>.
        +#
        +sub DeleteClass #(file, class)
        +    {
        +    my ($self, $file, $class) = @_;
        +
        +    my @parents = $files{$file}->ParentReferencesOf($class);
        +    foreach my $parent (@parents)
        +        {
        +        $self->DeleteParentReference($file, $class, $parent);
        +        };
        +
        +    $files{$file}->DeleteClass($class);
        +
        +    # If we're deleting the last definition of this class.
        +    if ($classes{$class}->DeleteDefinition($file))
        +        {
        +        if (!$classes{$class}->HasChildren())
        +            {
        +            delete $classes{$class};
        +
        +            if (!$dontRebuildFiles)
        +                {  NaturalDocs::Project->RebuildFile($file);  };
        +            }
        +        else
        +            {  $self->RebuildFilesFor($class, 0, 1, 1);  };
        +
        +        };
        +    };
        +
        +
        +#
        +#   Function: DeleteParentReference
        +#
        +#   Deletes a class' parent reference and returns whether it resulted in the loss of a parent class.  Will rebuild any file affected
        +#   unless <dontRebuildFiles> is set.
        +#
        +#   Parameters:
        +#
        +#       file - The <FileName> that defines the reference.
        +#       class - The class <SymbolString>.
        +#       reference - The parent <ReferenceString>.
        +#
        +#   Returns:
        +#
        +#       If the class lost a parent as a result of this, it will return its <SymbolString>.  It will return undef otherwise.
        +#
        +sub DeleteParentReference #(file, class, reference)
        +    {
        +    my ($self, $file, $class, $reference) = @_;
        +
        +    if (!exists $classes{$class})
        +        {  return;  };
        +
        +    $files{$file}->DeleteParentReference($class, $reference);
        +
        +    my $deletedParent = $classes{$class}->DeleteParentReference($reference, $file, \%parentReferences);
        +
        +    if (defined $deletedParent)
        +        {
        +        my $deletedParentObject = $classes{$deletedParent};
        +
        +        $deletedParentObject->DeleteChild($class);
        +
        +        $self->RebuildFilesFor($deletedParent, 0, 1, 0);
        +        $self->RebuildFilesFor($class, 0, 1, 0);
        +
        +        if (!$deletedParentObject->HasChildren() && !$deletedParentObject->IsDefined())
        +            {
        +            delete $classes{$deletedParent};
        +            NaturalDocs::SymbolTable->DeleteReference(
        +                $self->ClassReferenceOf($class, NaturalDocs::Languages->LanguageOf($file)->Name()) );
        +            };
        +
        +        return $deletedParent;
        +        };
        +
        +    return undef;
        +    };
        +
        +
        +#
        +#   Function: ClassReferenceOf
        +#
        +#   Returns the <REFERENCE_CH_CLASS> <ReferenceString> of the passed class <SymbolString>.
        +#
        +sub ClassReferenceOf #(class, languageName)
        +    {
        +    my ($self, $class, $languageName) = @_;
        +
        +    return NaturalDocs::ReferenceString->MakeFrom(::REFERENCE_CH_CLASS(), $class, $languageName, undef, undef,
        +                                                                            ::RESOLVE_ABSOLUTE() | ::RESOLVE_NOPLURAL());
        +    };
        +
        +
        +#
        +#   Function: RebuildFilesFor
        +#
        +#   Calls <NaturalDocs::Project->RebuildFile()> for every file defining the passed class, its parents, and/or its children.
        +#   Returns without doing anything if <dontRebuildFiles> is set.
        +#
        +#   Parameters:
        +#
        +#       class - The class <SymbolString>.
        +#       rebuildParents - Whether to rebuild the class' parents.
        +#       rebuildSelf - Whether to rebuild the class.
        +#       rebuildChildren - Whether to rebuild the class' children.
        +#
        +sub RebuildFilesFor #(class, rebuildParents, rebuildSelf, rebuildChildren)
        +    {
        +    my ($self, $class, $rebuildParents, $rebuildSelf, $rebuildChildren) = @_;
        +
        +    if ($dontRebuildFiles)
        +        {  return;  };
        +
        +    my @classesToBuild;
        +
        +    if ($rebuildParents)
        +        {  @classesToBuild = $classes{$class}->Parents();  };
        +    if ($rebuildSelf)
        +        {  push @classesToBuild, $class;  };
        +    if ($rebuildChildren)
        +        {  push @classesToBuild, $classes{$class}->Children();  };
        +
        +    foreach my $classToBuild (@classesToBuild)
        +        {
        +        my @definitions = $classes{$classToBuild}->Definitions();
        +
        +        foreach my $definition (@definitions)
        +            {  NaturalDocs::Project->RebuildFile($definition);  };
        +        };
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/ClassHierarchy/Class.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/ClassHierarchy/Class.pm
        new file mode 100755
        index 0000000..48ed6e2
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/ClassHierarchy/Class.pm
        @@ -0,0 +1,413 @@
        +###############################################################################
        +#
        +#   Class: NaturalDocs::ClassHierarchy::Class
        +#
        +###############################################################################
        +#
        +#   An object that stores information about a class in the hierarchy.  It does not store its <SymbolString>; it assumes that it will
        +#   be stored in a hashref where the key is the <SymbolString>.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::ClassHierarchy::Class;
        +
        +
        +#
        +#   Constants: Members
        +#
        +#   The class is implemented as a blessed arrayref.  The keys are the constants below.
        +#
        +#   DEFINITIONS - An existence hashref of all the <FileNames> which define this class.  Undef if none.
        +#   PARENTS - An existence hashref of the <SymbolStrings> of all the parents this class has.
        +#   CHILDREN - An existence hashref of the <SymbolStrings> of all the children this class has.
        +#   PARENT_REFERENCES - A hashref of the parent <ReferenceStrings> this class has.  The keys are the <ReferenceStrings>,
        +#                                      and the values are existence hashrefs of all the <FileNames> that define them.  Undef if none.
        +#
        +use NaturalDocs::DefineMembers 'DEFINITIONS', 'PARENTS', 'CHILDREN', 'PARENT_REFERENCES';
        +# Dependency: New() depends on the order of these constants, as well as the class not being derived from any other.
        +
        +
        +###############################################################################
        +# Group: Modification Functions
        +
        +
        +#
        +#   Function: New
        +#
        +#   Creates and returns a new class.
        +#
        +sub New
        +    {
        +    # Dependency: This function depends on the order of the constants, as well as the class not being derived from any other.
        +    my ($package, $definitionFile) = @_;
        +
        +    my $object = [ undef, undef, undef, undef ];
        +    bless $object, $package;
        +
        +    return $object;
        +    };
        +
        +
        +#
        +#   Function: AddDefinition
        +#
        +#   Adds a rew definition of this class and returns if that was the first definition.
        +#
        +#   Parameters:
        +#
        +#       file - The <FileName> the definition appears in.
        +#
        +#   Returns:
        +#
        +#       Whether this was the first definition of this class.
        +#
        +sub AddDefinition #(file)
        +    {
        +    my ($self, $file) = @_;
        +
        +    my $wasFirst;
        +
        +    if (!defined $self->[DEFINITIONS])
        +        {
        +        $self->[DEFINITIONS] = { };
        +        $wasFirst = 1;
        +        };
        +
        +    $self->[DEFINITIONS]->{$file} = 1;
        +
        +    return $wasFirst;
        +    };
        +
        +
        +#
        +#   Function: DeleteDefinition
        +#
        +#   Removes the definition of this class and returns if there are no more definitions.  Note that if there are no more
        +#   definitions, you may still want to keep the object around if <HasChildren()> returns true.
        +#
        +#   Parameters:
        +#
        +#       file - The <FileName> the definition appears in.
        +#
        +#   Returns:
        +#
        +#       Whether this deleted the last definition of this class.
        +#
        +sub DeleteDefinition #(file)
        +    {
        +    my ($self, $file) = @_;
        +
        +    if (defined $self->[DEFINITIONS])
        +        {
        +        delete $self->[DEFINITIONS]->{$file};
        +
        +        if (!scalar keys %{$self->[DEFINITIONS]})
        +            {
        +            $self->[DEFINITIONS] = undef;
        +            return 1;
        +            };
        +        };
        +
        +    return undef;
        +    };
        +
        +
        +#
        +#   Function: AddParentReference
        +#
        +#   Adds a parent reference to the class and return whether it resulted in a new parent class.
        +#
        +#   Parameters:
        +#
        +#       reference - The <ReferenceString> used to determine the parent.
        +#       file - The <FileName> the parent reference is in.
        +#       referenceTranslations - A hashref of what each reference currently resolves to.  The keys are the
        +#                                         <ReferenceStrings> and the values are class <SymbolStrings>.  It should include an entry for
        +#                                         the reference parameter above.
        +#
        +#   Returns:
        +#
        +#       If the reference adds a new parent, it will return that parent's <SymbolString>.  Otherwise it will return undef.
        +#
        +sub AddParentReference #(reference, file, referenceTranslations)
        +    {
        +    my ($self, $reference, $file, $referenceTranslations) = @_;
        +
        +    if (!defined $self->[PARENT_REFERENCES])
        +        {  $self->[PARENT_REFERENCES] = { };  };
        +    if (!defined $self->[PARENTS])
        +        {  $self->[PARENTS] = { };  };
        +
        +
        +    if (!exists $self->[PARENT_REFERENCES]->{$reference})
        +        {
        +        $self->[PARENT_REFERENCES]->{$reference} = { $file => 1 };
        +
        +        my $symbol = $referenceTranslations->{$reference};
        +
        +        if (!exists $self->[PARENTS]->{$symbol})
        +            {
        +            $self->[PARENTS]->{$symbol} = 1;
        +            return $symbol;
        +            }
        +        else
        +            {  return undef;  };
        +        }
        +    else
        +        {
        +        $self->[PARENT_REFERENCES]->{$reference}->{$file} = 1;
        +        return undef;
        +        };
        +    };
        +
        +#
        +#   Function: DeleteParentReference
        +#
        +#   Deletes a parent reference from the class and return whether it resulted in a loss of a parent class.
        +#
        +#   Parameters:
        +#
        +#       reference - The <ReferenceString> used to determine the parent.
        +#       file - The <FileName> the parent declaration is in.
        +#       referenceTranslations - A hashref of what each reference currently resolves to.  The keys are the
        +#                                         <ReferenceStrings> and the values are class <SymbolStrings>.  It should include an entry for
        +#                                         the reference parameter above.
        +#
        +#   Returns:
        +#
        +#       If this causes a parent class to be lost, it will return that parent's <SymbolString>.  Otherwise it will return undef.
        +#
        +sub DeleteParentReference #(reference, file, referenceTranslations)
        +    {
        +    my ($self, $reference, $file, $referenceTranslations) = @_;
        +
        +    if (defined $self->[PARENT_REFERENCES] && exists $self->[PARENT_REFERENCES]->{$reference} &&
        +        exists $self->[PARENT_REFERENCES]->{$reference}->{$file})
        +        {
        +        delete $self->[PARENT_REFERENCES]->{$reference}->{$file};
        +
        +        # Quit if there are other definitions of this reference.
        +        if (scalar keys %{$self->[PARENT_REFERENCES]->{$reference}})
        +            {  return undef;  };
        +
        +        delete $self->[PARENT_REFERENCES]->{$reference};
        +
        +        if (!scalar keys %{$self->[PARENT_REFERENCES]})
        +            {  $self->[PARENT_REFERENCES] = undef;  };
        +
        +        my $parent = $referenceTranslations->{$reference};
        +
        +        # Check if any other references resolve to the same parent.
        +        if (defined $self->[PARENT_REFERENCES])
        +            {
        +            foreach my $parentReference (keys %{$self->[PARENT_REFERENCES]})
        +                {
        +                if ($referenceTranslations->{$parentReference} eq $parent)
        +                    {  return undef;  };
        +                };
        +            };
        +
        +        # If we got this far, no other parent references resolve to this symbol.
        +
        +        delete $self->[PARENTS]->{$parent};
        +
        +        if (!scalar keys %{$self->[PARENTS]})
        +            {  $self->[PARENTS] = undef;  };
        +
        +        return $parent;
        +        }
        +    else
        +        {  return undef;  };
        +    };
        +
        +
        +#
        +#   Function: AddChild
        +#   Adds a child <SymbolString> to the class.  Unlike <AddParentReference()>, this does not keep track of anything other than
        +#   whether it has it or not.
        +#
        +#   Parameters:
        +#
        +#       child - The <SymbolString> to add.
        +#
        +sub AddChild #(child)
        +    {
        +    my ($self, $child) = @_;
        +
        +    if (!defined $self->[CHILDREN])
        +        {  $self->[CHILDREN] = { };  };
        +
        +    $self->[CHILDREN]->{$child} = 1;
        +    };
        +
        +#
        +#   Function: DeleteChild
        +#   Deletes a child <SymbolString> from the class.  Unlike <DeleteParentReference()>, this does not keep track of anything other
        +#   than whether it has it or not.
        +#
        +#   Parameters:
        +#
        +#       child - The <SymbolString> to delete.
        +#
        +sub DeleteChild #(child)
        +    {
        +    my ($self, $child) = @_;
        +
        +    if (defined $self->[CHILDREN])
        +        {
        +        delete $self->[CHILDREN]->{$child};
        +
        +        if (!scalar keys %{$self->[CHILDREN]})
        +            {  $self->[CHILDREN] = undef;  };
        +        };
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Information Functions
        +
        +#
        +#   Function: Definitions
        +#   Returns an array of the <FileNames> that define this class, or an empty array if none.
        +#
        +sub Definitions
        +    {
        +    my ($self) = @_;
        +
        +    if (defined $self->[DEFINITIONS])
        +        {  return keys %{$self->[DEFINITIONS]};  }
        +    else
        +        {  return ( );  };
        +    };
        +
        +#
        +#   Function: IsDefinedIn
        +#   Returns whether the class is defined in the passed <FileName>.
        +#
        +sub IsDefinedIn #(file)
        +    {
        +    my ($self, $file) = @_;
        +
        +    if (defined $self->[DEFINITIONS])
        +        {  return exists $self->[DEFINITIONS]->{$file};  }
        +    else
        +        {  return 0;  };
        +    };
        +
        +#
        +#   Function: IsDefined
        +#   Returns whether the class is defined in any files.
        +#
        +sub IsDefined
        +    {
        +    my ($self) = @_;
        +    return defined $self->[DEFINITIONS];
        +    };
        +
        +#
        +#   Function: ParentReferences
        +#   Returns an array of the parent <ReferenceStrings>, or an empty array if none.
        +#
        +sub ParentReferences
        +    {
        +    my ($self) = @_;
        +
        +    if (defined $self->[PARENT_REFERENCES])
        +        {  return keys %{$self->[PARENT_REFERENCES]};  }
        +    else
        +        {  return ( );  };
        +    };
        +
        +#
        +#   Function: HasParentReference
        +#   Returns whether the class has the passed parent <ReferenceString>.
        +#
        +sub HasParentReference #(reference)
        +    {
        +    my ($self, $reference) = @_;
        +    return (defined $self->[PARENT_REFERENCES] && exists $self->[PARENT_REFERENCES]->{$reference});
        +    };
        +
        +#
        +#   Function: HasParentReferences
        +#   Returns whether the class has any parent <ReferenceStrings>.
        +#
        +sub HasParentReferences
        +    {
        +    my ($self) = @_;
        +    return defined $self->[PARENT_REFERENCES];
        +    };
        +
        +#
        +#   Function: Parents
        +#   Returns an array of the parent <SymbolStrings>, or an empty array if none.
        +#
        +sub Parents
        +    {
        +    my ($self) = @_;
        +
        +    if (defined $self->[PARENTS])
        +        {  return keys %{$self->[PARENTS]};  }
        +    else
        +        {  return ( );  };
        +    };
        +
        +#
        +#   Function: HasParents
        +#   Returns whether the class has any parent <SymbolStrings> defined.
        +#
        +sub HasParents
        +    {
        +    my ($self) = @_;
        +    return defined $self->[PARENTS];
        +    };
        +
        +#
        +#   Function: Children
        +#   Returns an array of the child <SymbolStrings>, or an empty array if none.
        +#
        +sub Children
        +    {
        +    my ($self) = @_;
        +
        +    if (defined $self->[CHILDREN])
        +        {  return keys %{$self->[CHILDREN]};  }
        +    else
        +        {  return ( );  };
        +    };
        +
        +#
        +#   Function: HasChildren
        +#   Returns whether any child <SymbolStrings> are defined.
        +#
        +sub HasChildren
        +    {
        +    my ($self) = @_;
        +    return defined $self->[CHILDREN];
        +    };
        +
        +
        +#
        +#   Function: ParentReferenceDefinitions
        +#   Returns an array of the <FileNames> which define the passed parent <ReferenceString>, or an empty array if none.
        +#
        +sub ParentReferenceDefinitions #(reference)
        +    {
        +    my ($self, $reference) = @_;
        +
        +    if (defined $self->[PARENT_REFERENCES] && exists $self->[PARENT_REFERENCES]->{$reference})
        +        {  return keys %{$self->[PARENT_REFERENCES]->{$reference}};  }
        +    else
        +        {  return ( );  };
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/ClassHierarchy/File.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/ClassHierarchy/File.pm
        new file mode 100755
        index 0000000..0f7b322
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/ClassHierarchy/File.pm
        @@ -0,0 +1,158 @@
        +###############################################################################
        +#
        +#   Class: NaturalDocs::ClassHierarchy::File
        +#
        +###############################################################################
        +#
        +#   An object that stores information about what hierarchy information is present in a file.  It does not store its <FileName>; it
        +#   assumes that it will be stored in a hashref where the key is the <FileName>.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::ClassHierarchy::File;
        +
        +
        +#
        +#   Topic: Implementation
        +#
        +#   Since there's only one member in the class, and it's a hashref, the class is simply the hashref itself blessed as a class.
        +#   The keys are the class <SymbolStrings> that are defined in the file, and the values are existence hashrefs of each class'
        +#   parent <ReferenceStrings>, or undef if none.
        +#
        +
        +
        +###############################################################################
        +# Group: Modification Functions
        +
        +
        +#
        +#   Function: New
        +#
        +#   Creates and returns a new class.
        +#
        +sub New
        +    {
        +    my ($package) = @_;
        +
        +    my $object = { };
        +    bless $object, $package;
        +
        +    return $object;
        +    };
        +
        +#
        +#   Function: AddClass
        +#   Adds a rew class <SymbolString> to the file.
        +#
        +sub AddClass #(class)
        +    {
        +    my ($self, $class) = @_;
        +
        +    if (!exists $self->{$class})
        +        {  $self->{$class} = undef;  };
        +    };
        +
        +#
        +#   Function: DeleteClass
        +#   Deletes a class <SymbolString> from the file.
        +#
        +sub DeleteClass #(class)
        +    {
        +    my ($self, $class) = @_;
        +    delete $self->{$class};
        +    };
        +
        +#
        +#   Function: AddParentReference
        +#   Adds a parent <ReferenceString> to a class <SymbolString>.
        +#
        +sub AddParentReference #(class, parentReference)
        +    {
        +    my ($self, $class, $parent) = @_;
        +
        +    if (!exists $self->{$class} || !defined $self->{$class})
        +        {  $self->{$class} = { };  };
        +
        +    $self->{$class}->{$parent} = 1;
        +    };
        +
        +#
        +#   Function: DeleteParentReference
        +#   Deletes a parent <ReferenceString> from a class <SymbolString>.
        +#
        +sub DeleteParentReference #(class, parent)
        +    {
        +    my ($self, $class, $parent) = @_;
        +
        +    if (exists $self->{$class})
        +        {
        +        delete $self->{$class}->{$parent};
        +
        +        if (!scalar keys %{$self->{$class}})
        +            {  $self->{$class} = undef;  };
        +        };
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Information Functions
        +
        +
        +#
        +#   Function: Classes
        +#   Returns an array of the class <SymbolStrings> that are defined by this file, or an empty array if none.
        +#
        +sub Classes
        +    {
        +    my ($self) = @_;
        +    return keys %{$self};
        +    };
        +
        +#
        +#   Function: HasClass
        +#   Returns whether the file defines the passed class <SymbolString>.
        +#
        +sub HasClass #(class)
        +    {
        +    my ($self, $class) = @_;
        +    return exists $self->{$class};
        +    };
        +
        +#
        +#   Function: ParentReferencesOf
        +#   Returns an array of the parent <ReferenceStrings> that are defined by the class, or an empty array if none.
        +#
        +sub ParentReferencesOf #(class)
        +    {
        +    my ($self, $class) = @_;
        +
        +    if (!exists $self->{$class} || !defined $self->{$class})
        +        {  return ( );  }
        +    else
        +        {  return keys %{$self->{$class}};  };
        +    };
        +
        +#
        +#   Function: HasParentReference
        +#   Returns whether the file defines the passed class <SymbolString> and parent <ReferenceString>.
        +#
        +sub HasParentReference #(class, parent)
        +    {
        +    my ($self, $class, $parent) = @_;
        +
        +    if (!$self->HasClass($class))
        +        {  return undef;  };
        +
        +    return exists $self->{$class}->{$parent};
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/ConfigFile.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/ConfigFile.pm
        new file mode 100755
        index 0000000..e9fd7cc
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/ConfigFile.pm
        @@ -0,0 +1,508 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::ConfigFile
        +#
        +###############################################################################
        +#
        +#   A package to manage Natural Docs' configuration files.
        +#
        +#   Usage:
        +#
        +#       - Only one configuration file can be managed with this package at a time.  You must close the file before opening another
        +#         one.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::ConfigFile;
        +
        +
        +
        +#
        +#   Topic: Format
        +#
        +#   All configuration files are text files.
        +#
        +#   > # [comment]
        +#
        +#   Comments start with the # character.
        +#
        +#   > Format: [version]
        +#
        +#   All configuration files *must* have a format line as its first line containing content.  Whitespace and comments are permitted
        +#   ahead of it.
        +#
        +#   > [keyword]: [value]
        +#
        +#   Keywords can only contain <CFChars>.  Keywords are not case sensitive.  Values can be anything and run until the end of
        +#   the line or a comment.
        +#
        +#   > [value]
        +#
        +#   Lines that don't start with a valid keyword format are considered to be all value.
        +#
        +#   > [line] { [line] } [line]
        +#
        +#   Files supporting brace groups (specified in <Open()>) may also have braces that can appear anywhere.  It allows more than
        +#   one thing to appear per line, which isn't supported otherwise.  Consequently, values may not have braces.
        +#
        +
        +
        +#
        +#   Type: CFChars
        +#
        +#   The characters that can appear in configuration file keywords and user-defined element names: letters, numbers, spaces,
        +#   dashes, slashes, apostrophes, and periods.
        +#
        +#   Although the list above is exhaustive, it should be noted that you especially can *not* use colons (messes up keyword: value
        +#   sequences) commas (messes up item, item, item list sequences) and hashes (messes up comment detection.)
        +#
        +#   You can search the source code for [CFChars] to find all the instances where this definition is used.
        +#
        +
        +
        +###############################################################################
        +# Group: Variables
        +
        +#
        +#   handle: CONFIG_FILEHANDLE
        +#
        +#   The file handle used for the configuration file.
        +#
        +
        +
        +#
        +#   string: file
        +#
        +#   The <FileName> for the current configuration file being parsed.
        +#
        +my $file;
        +
        +
        +#
        +#	var: lineReader
        +#
        +#	The <LineReader> used to read the configuration file.
        +#
        +my $lineReader;
        +
        +
        +#
        +#   array: errors
        +#
        +#   An array of errors added by <AddError()>.  Every odd entry is the line number, and every even entry following is the
        +#   error message.
        +#
        +my @errors;
        +
        +
        +#
        +#   var: lineNumber
        +#
        +#   The current line number for the configuration file.
        +#
        +my $lineNumber;
        +
        +
        +#
        +#   bool: hasBraceGroups
        +#
        +#   Whether the file has brace groups or not.
        +#
        +my $hasBraceGroups;
        +
        +
        +#
        +#   array: virtualLines
        +#
        +#   An array of virtual lines if a line from the file contained more than one.
        +#
        +#   Files with brace groups may have more than one virtual line per actual file line, such as "Group: A { Group: B".  When that
        +#   happens, any extra virtual lines are put into here so they can be returned on the next call.
        +#
        +my @virtualLines;
        +
        +
        +
        +###############################################################################
        +# Group: Functions
        +
        +
        +#
        +#   Function: Open
        +#
        +#   Opens a configuration file for parsing and returns the format <VersionInt>.
        +#
        +#   Parameters:
        +#
        +#       file - The <FileName> to parse.
        +#       hasBraceGroups - Whether the file supports brace groups or not.  If so, lines with braces will be split apart behind the
        +#                                  scenes.
        +#
        +#   Returns:
        +#
        +#       The <VersionInt> of the file, or undef if the file doesn't exist.
        +#
        +sub Open #(file, hasBraceGroups)
        +    {
        +    my $self;
        +    ($self, $file, $hasBraceGroups) = @_;
        +
        +    @errors = ( );
        +
        +    # It will be incremented to one when the first line is read from the file.
        +    $lineNumber = 0;
        +
        +    open(CONFIG_FILEHANDLE, '<' . $file) or return undef;
        +    $lineReader = NaturalDocs::LineReader->New(\*CONFIG_FILEHANDLE);
        +
        +
        +    # Get the format line.
        +
        +    my ($keyword, $value, $comment) = $self->GetLine();
        +
        +    if ($keyword eq 'format')
        +        {  return NaturalDocs::Version->FromString($value);  }
        +    else
        +        {  die "The first content line in " . $file . " must be the Format: line.\n";  };
        +    };
        +
        +
        +#
        +#   Function: Close
        +#
        +#   Closes the current configuration file.
        +#
        +sub Close
        +    {
        +    my $self = shift;
        +    close(CONFIG_FILEHANDLE);
        +    };
        +
        +
        +#
        +#   Function: GetLine
        +#
        +#   Returns the next line containing content, or an empty array if none.
        +#
        +#   Returns:
        +#
        +#       Returns the array ( keyword, value, comment ), or an empty array if none.  All tabs will be converted to spaces, and all
        +#       whitespace will be condensed into a single space.
        +#
        +#       keyword - The keyword part of the line, if any.  Is converted to lowercase and doesn't include the colon.  If the file supports
        +#                       brace groups, opening and closing braces will be returned as keywords.
        +#       value - The value part of the line, minus any whitespace.  Keeps its original case.
        +#       comment - The comment following the line, if any.  This includes the # symbol and a leading space if there was
        +#                       any whitespace, since it may be significant.  Otherwise undef.  Used for lines where the # character needs to be
        +#                       accepted as part of the value.
        +#
        +sub GetLine
        +    {
        +    my $self = shift;
        +
        +    my ($line, $comment);
        +
        +
        +    # Get the next line with content.
        +
        +    do
        +        {
        +        # Get the next line.
        +
        +        my $isFileLine;
        +
        +        if (scalar @virtualLines)
        +            {
        +            $line = shift @virtualLines;
        +            $isFileLine = 0;
        +            }
        +        else
        +            {
        +            $line = $lineReader->Get();
        +            $lineNumber++;
        +
        +            if (!defined $line)
        +                {  return ( );  };
        +
        +            # Condense spaces and tabs into a single space.
        +            $line =~ tr/\t /  /s;
        +            $isFileLine = 1;
        +            };
        +
        +
        +        # Split off the comment.
        +
        +        if ($line =~ /^(.*?)( ?#.*)$/)
        +            {  ($line, $comment) = ($1, $2);  }
        +        else
        +            {  $comment = undef;  };
        +
        +
        +        # Split any brace groups.
        +
        +        if ($isFileLine && $hasBraceGroups && $line =~ /[\{\}]/)
        +            {
        +            ($line, @virtualLines) = split(/([\{\}])/, $line);
        +
        +            $virtualLines[-1] .= $comment;
        +            $comment = undef;
        +            };
        +
        +
        +        # Remove whitespace.
        +
        +        $line =~ s/^ //;
        +        $line =~ s/ $//;
        +        $comment =~ s/ $//;
        +        # We want to keep the leading space on a comment.
        +        }
        +    while (!$line);
        +
        +
        +    # Process the line.
        +
        +    if ($hasBraceGroups && ($line eq '{' || $line eq '}'))
        +        {
        +        return ($line, undef, undef);
        +        };
        +
        +
        +    if ($line =~ /^([a-z0-9\ \'\/\.\-]+?) ?: ?(.*)$/i) # [CFChars]
        +        {
        +        my ($keyword, $value) = ($1, $2);
        +        return (lc($keyword), $value, $comment);
        +        }
        +
        +    else
        +        {
        +        return (undef, $line, $comment);
        +        };
        +    };
        +
        +
        +#
        +#   Function: LineNumber
        +#
        +#   Returns the line number for the line last returned by <GetLine()>.
        +#
        +sub LineNumber
        +    {  return $lineNumber;  };
        +
        +
        +
        +###############################################################################
        +# Group: Error Functions
        +
        +
        +#
        +#   Function: AddError
        +#
        +#   Stores an error for the current configuration file.  Will be attached to the last line read by <GetLine()>.
        +#
        +#   Parameters:
        +#
        +#       message - The error message.
        +#       lineNumber - The line number to use.  If not specified, it will use the line number from the last call to <GetLine()>.
        +#
        +sub AddError #(message, lineNumber)
        +    {
        +    my ($self, $message, $messageLineNumber) = @_;
        +
        +    if (!defined $messageLineNumber)
        +        {  $messageLineNumber = $lineNumber;  };
        +
        +    push @errors, $messageLineNumber, $message;
        +    };
        +
        +
        +#
        +#   Function: ErrorCount
        +#
        +#   Returns how many errors the configuration file has.
        +#
        +sub ErrorCount
        +    {
        +    return (scalar @errors) / 2;
        +    };
        +
        +
        +#
        +#   Function: PrintErrorsAndAnnotateFile
        +#
        +#   Prints the errors to STDERR in the standard GNU format and annotates the configuration file with them.  It does *not* end
        +#   execution.  <Close()> *must* be called before this function.
        +#
        +sub PrintErrorsAndAnnotateFile
        +    {
        +    my ($self) = @_;
        +
        +    if (scalar @errors)
        +        {
        +        open(CONFIG_FILEHANDLE, '<' . $file);
        +
        +        my $lineReader = NaturalDocs::LineReader->New(\*CONFIG_FILEHANDLE);
        +        my @lines = $lineReader->GetAll();
        +
        +        close(CONFIG_FILEHANDLE);
        +
        +        # We need to keep track of both the real and the original line numbers.  The original line numbers are for matching errors in
        +        # the errors array, and don't include any comment lines added or deleted.  Line number is the current line number including
        +        # those comment lines for sending to the display.
        +        my $lineNumber = 1;
        +        my $originalLineNumber = 1;
        +
        +        open(CONFIG_FILEHANDLE, '>' . $file);
        +
        +        # We don't want to keep the old error header, if present.
        +        if ($lines[0] =~ /^\# There (?:is an error|are \d+ errors) in this file\./)
        +            {
        +            shift @lines;
        +            $originalLineNumber++;
        +
        +            # We want to drop the blank line after it as well.
        +            if ($lines[0] eq "\n")
        +                {
        +                shift @lines;
        +                $originalLineNumber++;
        +                };
        +            };
        +
        +        if ($self->ErrorCount() == 1)
        +            {
        +            print CONFIG_FILEHANDLE
        +            "# There is an error in this file.  Search for ERROR to find it.\n\n";
        +            }
        +        else
        +            {
        +            print CONFIG_FILEHANDLE
        +            "# There are " . $self->ErrorCount() . " errors in this file.  Search for ERROR to find them.\n\n";
        +            };
        +
        +        $lineNumber += 2;
        +
        +
        +        foreach my $line (@lines)
        +            {
        +            while (scalar @errors && $originalLineNumber == $errors[0])
        +                {
        +                my $errorLine = shift @errors;
        +                my $errorMessage = shift @errors;
        +
        +                print CONFIG_FILEHANDLE "# ERROR: " . $errorMessage . "\n";
        +
        +                # Use the GNU error format, which should make it easier to handle errors when Natural Docs is part of a build process.
        +                # See http://www.gnu.org/prep/standards_15.html
        +
        +                $errorMessage = lcfirst($errorMessage);
        +                $errorMessage =~ s/\.$//;
        +
        +                print STDERR 'NaturalDocs:' . $file . ':' . $lineNumber . ': ' . $errorMessage . "\n";
        +
        +                $lineNumber++;
        +                };
        +
        +            # We want to remove error lines from previous runs.
        +            if (substr($line, 0, 9) ne '# ERROR: ')
        +                {
        +                print CONFIG_FILEHANDLE $line;
        +                $lineNumber++;
        +                };
        +
        +            $originalLineNumber++;
        +            };
        +
        +        # Clean up any remaining errors.
        +        while (scalar @errors)
        +            {
        +            my $errorLine = shift @errors;
        +            my $errorMessage = shift @errors;
        +
        +            print CONFIG_FILEHANDLE "# ERROR: " . $errorMessage . "\n";
        +
        +            # Use the GNU error format, which should make it easier to handle errors when Natural Docs is part of a build process.
        +            # See http://www.gnu.org/prep/standards_15.html
        +
        +            $errorMessage = lcfirst($errorMessage);
        +            $errorMessage =~ s/\.$//;
        +
        +            print STDERR 'NaturalDocs:' . $file . ':' . $lineNumber . ': ' . $errorMessage . "\n";
        +            };
        +
        +        close(CONFIG_FILEHANDLE);
        +        };
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Misc Functions
        +
        +
        +#
        +#   Function: HasOnlyCFChars
        +#
        +#   Returns whether the passed string contains only <CFChars>.
        +#
        +sub HasOnlyCFChars #(string)
        +    {
        +    my ($self, $string) = @_;
        +    return ($string =~ /^[a-z0-9\ \.\-\/\']*$/i);  # [CFChars]
        +    };
        +
        +
        +#
        +#   Function: CFCharNames
        +#
        +#   Returns a plain-english list of <CFChars> which can be embedded in a sentence.  For example, "You can only use
        +#   [CFCharsList()] in the name.
        +#
        +sub CFCharNames
        +    {
        +    # [CFChars]
        +    return 'letters, numbers, spaces, periods, dashes, slashes, and apostrophes';
        +    };
        +
        +
        +#
        +#   Function: Obscure
        +#
        +#   Obscures the passed text so that it is not user editable and returns it.  The encoding method is not secure; it is just designed
        +#   to be fast and to discourage user editing.
        +#
        +sub Obscure #(text)
        +    {
        +    my ($self, $text) = @_;
        +
        +    # ` is specifically chosen to encode to space because of its rarity.  We don't want a trailing one to get cut off before decoding.
        +    $text =~ tr{a-zA-Z0-9\ \\\/\.\:\_\-\`}
        +                    {pY9fGc\`R8lAoE\\uIdH6tN\/7sQjKx0B5mW\.vZ41PyFg\:CrLaO\_eUi2DhT\-nSqJkXb3MwVz\ };
        +
        +    return $text;
        +    };
        +
        +
        +#
        +#   Function: Unobscure
        +#
        +#   Restores text encoded with <Obscure()> and returns it.
        +#
        +sub Unobscure #(text)
        +    {
        +    my ($self, $text) = @_;
        +
        +    $text =~ tr{pY9fGc\`R8lAoE\\uIdH6tN\/7sQjKx0B5mW\.vZ41PyFg\:CrLaO\_eUi2DhT\-nSqJkXb3MwVz\ }
        +                    {a-zA-Z0-9\ \\\/\.\:\_\-\`};
        +
        +    return $text;
        +    };
        +
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Constants.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Constants.pm
        new file mode 100755
        index 0000000..66d934c
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Constants.pm
        @@ -0,0 +1,166 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::Constants
        +#
        +###############################################################################
        +#
        +#   Constants that are used throughout the script.  All are exported by default.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::Constants;
        +
        +use vars qw(@EXPORT @ISA);
        +require Exporter;
        +@ISA = qw(Exporter);
        +
        +@EXPORT = ('MENU_TITLE', 'MENU_SUBTITLE', 'MENU_FILE', 'MENU_GROUP', 'MENU_TEXT', 'MENU_LINK', 'MENU_FOOTER',
        +                   'MENU_INDEX', 'MENU_FORMAT', 'MENU_ENDOFORIGINAL', 'MENU_DATA',
        +
        +                   'MENU_FILE_NOAUTOTITLE', 'MENU_GROUP_UPDATETITLES', 'MENU_GROUP_UPDATESTRUCTURE',
        +                   'MENU_GROUP_UPDATEORDER', 'MENU_GROUP_HASENDOFORIGINAL',
        +                   'MENU_GROUP_UNSORTED', 'MENU_GROUP_FILESSORTED',
        +                   'MENU_GROUP_FILESANDGROUPSSORTED', 'MENU_GROUP_EVERYTHINGSORTED',
        +                   'MENU_GROUP_ISINDEXGROUP',
        +
        +                   'FILE_NEW', 'FILE_CHANGED', 'FILE_SAME', 'FILE_DOESNTEXIST');
        +
        +#
        +#   Topic: Assumptions
        +#
        +#   - No constant here will ever be zero.
        +#   - All constants are exported by default.
        +#
        +
        +
        +###############################################################################
        +# Group: Virtual Types
        +# These are only groups of constants, but should be treated like typedefs or enums.  Each one represents a distinct type and
        +# their values should only be one of their constants or undef.
        +
        +
        +#
        +#   Constants: MenuEntryType
        +#
        +#   The types of entries that can appear in the menu.
        +#
        +#       MENU_TITLE         - The title of the menu.
        +#       MENU_SUBTITLE   - The sub-title of the menu.
        +#       MENU_FILE           - A source file, relative to the source directory.
        +#       MENU_GROUP       - A group.
        +#       MENU_TEXT          - Arbitrary text.
        +#       MENU_LINK           - A web link.
        +#       MENU_FOOTER      - Footer text.
        +#       MENU_INDEX        - An index.
        +#       MENU_FORMAT     - The version of Natural Docs the menu file was generated with.
        +#       MENU_ENDOFORIGINAL - A dummy entry that marks where the original group content ends.  This is used when automatically
        +#                                           changing the groups so that the alphabetization or lack thereof can be detected without being
        +#                                           affected by new entries tacked on to the end.
        +#       MENU_DATA - Data not meant for user editing.
        +#
        +#   Dependency:
        +#
        +#       <PreviousMenuState.nd> depends on these values all being able to fit into a UInt8, i.e. <= 255.
        +#
        +use constant MENU_TITLE => 1;
        +use constant MENU_SUBTITLE => 2;
        +use constant MENU_FILE => 3;
        +use constant MENU_GROUP => 4;
        +use constant MENU_TEXT => 5;
        +use constant MENU_LINK => 6;
        +use constant MENU_FOOTER => 7;
        +use constant MENU_INDEX => 8;
        +use constant MENU_FORMAT => 9;
        +use constant MENU_ENDOFORIGINAL => 10;
        +use constant MENU_DATA => 11;
        +
        +
        +#
        +#   Constants: FileStatus
        +#
        +#   What happened to a file since Natural Docs' last execution.
        +#
        +#       FILE_NEW                - The file has been added since the last run.
        +#       FILE_CHANGED        - The file has been modified since the last run.
        +#       FILE_SAME               - The file hasn't been modified since the last run.
        +#       FILE_DOESNTEXIST  - The file doesn't exist, or was deleted.
        +#
        +use constant FILE_NEW => 1;
        +use constant FILE_CHANGED => 2;
        +use constant FILE_SAME => 3;
        +use constant FILE_DOESNTEXIST => 4;
        +
        +
        +
        +###############################################################################
        +# Group: Flags
        +# These constants can be combined with each other.
        +
        +
        +#
        +#   Constants: Menu Entry Flags
        +#
        +#   The various flags that can apply to a menu entry.  You cannot mix flags of different types, since they may overlap.
        +#
        +#   File Flags:
        +#
        +#       MENU_FILE_NOAUTOTITLE - Whether the file is auto-titled or not.
        +#
        +#   Group Flags:
        +#
        +#       MENU_GROUP_UPDATETITLES - The group should have its auto-titles regenerated.
        +#       MENU_GROUP_UPDATESTRUCTURE - The group should be checked for structural changes, such as being removed or being
        +#                                                             split into subgroups.
        +#       MENU_GROUP_UPDATEORDER - The group should be resorted.
        +#
        +#       MENU_GROUP_HASENDOFORIGINAL - Whether the group contains a dummy <MENU_ENDOFORIGINAL> entry.
        +#       MENU_GROUP_ISINDEXGROUP - Whether the group is used primarily for <MENU_INDEX> entries.  <MENU_TEXT> entries
        +#                                                       are tolerated.
        +#
        +#       MENU_GROUP_UNSORTED - The group's contents are not sorted.
        +#       MENU_GROUP_FILESSORTED - The group's files are sorted alphabetically.
        +#       MENU_GROUP_FILESANDGROUPSSORTED - The group's files and sub-groups are sorted alphabetically.
        +#       MENU_GROUP_EVERYTHINGSORTED - All entries in the group are sorted alphabetically.
        +#
        +use constant MENU_FILE_NOAUTOTITLE => 0x0001;
        +
        +use constant MENU_GROUP_UPDATETITLES => 0x0001;
        +use constant MENU_GROUP_UPDATESTRUCTURE => 0x0002;
        +use constant MENU_GROUP_UPDATEORDER => 0x0004;
        +use constant MENU_GROUP_HASENDOFORIGINAL => 0x0008;
        +
        +# This could really be a two-bit field instead of four flags, but it's not worth the effort since it's only used internally.
        +use constant MENU_GROUP_UNSORTED => 0x0010;
        +use constant MENU_GROUP_FILESSORTED => 0x0020;
        +use constant MENU_GROUP_FILESANDGROUPSSORTED => 0x0040;
        +use constant MENU_GROUP_EVERYTHINGSORTED => 0x0080;
        +
        +use constant MENU_GROUP_ISINDEXGROUP => 0x0100;
        +
        +
        +
        +
        +###############################################################################
        +# Group: Support Functions
        +
        +
        +#
        +#   Function: IsClassHierarchyReference
        +#   Returns whether the passed <ReferenceType> belongs to <NaturalDocs::ClassHierarchy>.
        +#
        +sub IsClassHierarchyReference #(reference)
        +    {
        +    my ($self, $reference) = @_;
        +    return ($reference == ::REFERENCE_CH_CLASS() || $reference == ::REFERENCE_CH_PARENT());
        +    };
        +
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/DefineMembers.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/DefineMembers.pm
        new file mode 100755
        index 0000000..8e04d3d
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/DefineMembers.pm
        @@ -0,0 +1,101 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::DefineMembers
        +#
        +###############################################################################
        +#
        +#   A custom Perl pragma to define member constants and accessors for use in Natural Docs objects while supporting inheritance.
        +#
        +#   Each member will be defined as a numeric constant which should be used as that variable's index into the object arrayref.
        +#   They will be assigned sequentially from zero, and take into account any members defined this way in parent classes.  Note
        +#   that you can *not* use multiple inheritance with this method.
        +#
        +#   If a parameter ends in parenthesis, it will be generated as an accessor for the previous member.  If it also starts with "Set",
        +#   the accessor will accept a single parameter to replace the value with.  If it's followed with "duparrayref", it will assume the
        +#   parameter is either an arrayref or undef, and if the former, will duplicate it to set the value.
        +#
        +#   Example:
        +#
        +#   > package MyPackage;
        +#   >
        +#   > use NaturalDocs::DefineMembers 'VAR_A', 'VarA()', 'SetVarA()',
        +#   >                                'VAR_B', 'VarB()',
        +#   >                                'VAR_C',
        +#   >                                'VAR_D', 'VarD()', 'SetVarD() duparrayref';
        +#   >
        +#   > sub SetC #(C)
        +#   >    {
        +#   >    my ($self, $c) = @_;
        +#   >    $self->[VAR_C] = $c;
        +#   >    };
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +
        +package NaturalDocs::DefineMembers;
        +
        +sub import #(member, member, ...)
        +    {
        +    my ($self, @parameters) = @_;
        +    my $package = caller();
        +
        +    no strict 'refs';
        +    my $parent = ${$package . '::ISA'}[0];
        +    use strict 'refs';
        +
        +    my $memberConstant = 0;
        +    my $lastMemberName;
        +
        +    if (defined $parent && $parent->can('END_OF_MEMBERS'))
        +        {  $memberConstant = $parent->END_OF_MEMBERS();  };
        +
        +    my $code = '{ package ' . $package . ";\n";
        +
        +    foreach my $parameter (@parameters)
        +        {
        +        if ($parameter =~ /^(.+)\(\) *(duparrayref)?$/i)
        +            {
        +            my ($functionName, $pragma) = ($1, lc($2));
        +
        +            if ($functionName =~ /^Set/)
        +                {
        +                if ($pragma eq 'duparrayref')
        +                    {
        +                    $code .=
        +                    'sub ' . $functionName . '
        +                        {
        +                        if (defined $_[1])
        +                            {  $_[0]->[' . $lastMemberName . '] = [ @{$_[1]} ];  }
        +                        else
        +                            {  $_[0]->[' . $lastMemberName . '] = undef;  };
        +                        };' . "\n";
        +                    }
        +                else
        +                    {
        +                    $code .= 'sub ' . $functionName . ' { $_[0]->[' . $lastMemberName . '] = $_[1];  };' . "\n";
        +                    };
        +                }
        +            else
        +                {
        +                $code .= 'sub ' . $functionName . ' { return $_[0]->[' . $lastMemberName . '];  };' . "\n";
        +                };
        +            }
        +        else
        +            {
        +            $code .= 'use constant ' . $parameter . ' => ' . $memberConstant . ";\n";
        +            $memberConstant++;
        +            $lastMemberName = $parameter;
        +            };
        +        };
        +
        +    $code .= 'use constant END_OF_MEMBERS => ' . $memberConstant . ";\n";
        +    $code .= '};';
        +
        +    eval $code;
        +    };
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Error.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Error.pm
        new file mode 100755
        index 0000000..5b30060
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Error.pm
        @@ -0,0 +1,306 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::Error
        +#
        +###############################################################################
        +#
        +#   Manages all aspects of error handling in Natural Docs.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +$SIG{'__DIE__'} = \&NaturalDocs::Error::CatchDeath;
        +
        +
        +package NaturalDocs::Error;
        +
        +
        +###############################################################################
        +# Group: Variables
        +
        +
        +#
        +#   handle: FH_CRASHREPORT
        +#   The filehandle used for generating crash reports.
        +#
        +
        +
        +#
        +#   var: stackTrace
        +#   The stack trace generated by <CatchDeath()>.
        +#
        +my $stackTrace;
        +
        +
        +#
        +#   var: softDeath
        +#   Whether the program exited using <SoftDeath()>.
        +#
        +my $softDeath;
        +
        +
        +#
        +#   var: currentAction
        +#   What Natural Docs was doing when it crashed.  This stores strings generated by functions like <OnStartParsing()>.
        +#
        +my $currentAction;
        +
        +
        +###############################################################################
        +# Group: Functions
        +
        +
        +#
        +#   Function: SoftDeath
        +#
        +#   Generates a "soft" death, which means the program exits like with Perl's die(), but no crash report will be generated.
        +#
        +#   Parameter:
        +#
        +#       message - The error message to die with.
        +#
        +sub SoftDeath #(message)
        +    {
        +    my ($self, $message) = @_;
        +
        +    $softDeath = 1;
        +    if ($message !~ /\n$/)
        +        {  $message .= "\n";  };
        +
        +    die $message;
        +    };
        +
        +
        +#
        +#   Function: OnStartParsing
        +#
        +#   Called whenever <NaturalDocs::Parser> starts parsing a source file.
        +#
        +sub OnStartParsing #(FileName file)
        +    {
        +    my ($self, $file) = @_;
        +    $currentAction = 'Parsing ' . $file;
        +    };
        +
        +
        +#
        +#   Function: OnEndParsing
        +#
        +#   Called whenever <NaturalDocs::Parser> is done parsing a source file.
        +#
        +sub OnEndParsing #(FileName file)
        +    {
        +    my ($self, $file) = @_;
        +    $currentAction = undef;
        +    };
        +
        +
        +#
        +#   Function: OnStartBuilding
        +#
        +#   Called whenever <NaturalDocs::Builder> starts building a source file.
        +#
        +sub OnStartBuilding #(FileName file)
        +    {
        +    my ($self, $file) = @_;
        +    $currentAction = 'Building ' . $file;
        +    };
        +
        +
        +#
        +#   Function: OnEndBuilding
        +#
        +#   Called whenever <NaturalDocs::Builder> is done building a source file.
        +#
        +sub OnEndBuilding #(FileName file)
        +    {
        +    my ($self, $file) = @_;
        +    $currentAction = undef;
        +    };
        +
        +
        +#
        +#   Function: HandleDeath
        +#
        +#   Should be called whenever Natural Docs dies out of execution.
        +#
        +sub HandleDeath
        +    {
        +    my $self = shift;
        +
        +    my $reason = $::EVAL_ERROR;
        +    $reason =~ s/[\n\r]+$//;
        +
        +    my $errorMessage =
        +         "\n"
        +         . "Natural Docs encountered the following error and was stopped:\n"
        +         . "\n"
        +         . "   " . $reason . "\n"
        +         . "\n"
        +
        +         . "You can get help at the following web site:\n"
        +         . "\n"
        +         . "   " . NaturalDocs::Settings->AppURL() . "\n"
        +         . "\n";
        +
        +    if (!$softDeath)
        +        {
        +        my $crashReport = $self->GenerateCrashReport();
        +
        +        if ($crashReport)
        +            {
        +            $errorMessage .=
        +             "If sending an error report, please include the information found in the\n"
        +             . "following file:\n"
        +             . "\n"
        +             . "   " . $crashReport . "\n"
        +             . "\n";
        +            }
        +        else
        +            {
        +            $errorMessage .=
        +             "If sending an error report, please include the following information:\n"
        +             . "\n"
        +             . "   Natural Docs version: " . NaturalDocs::Settings->TextAppVersion() . "\n"
        +             . "   Perl version: " . $self->PerlVersion() . " on " . $::OSNAME . "\n"
        +             . "\n";
        +             };
        +        };
        +
        +    die $errorMessage;
        +    };
        +
        +
        +###############################################################################
        +# Group: Support Functions
        +
        +
        +#
        +#   Function: PerlVersion
        +#   Returns the current Perl version as a string.
        +#
        +sub PerlVersion
        +    {
        +    my $self = shift;
        +
        +    my $perlVersion;
        +
        +    if ($^V)
        +        {  $perlVersion = sprintf('%vd', $^V);  }
        +    if (!$perlVersion || substr($perlVersion, 0, 1) eq '%')
        +        {  $perlVersion = $];  };
        +
        +    return $perlVersion;
        +    };
        +
        +
        +#
        +#   Function: GenerateCrashReport
        +#
        +#   Generates a report and returns the <FileName> it's located at.  Returns undef if it could not generate one.
        +#
        +sub GenerateCrashReport
        +    {
        +    my $self = shift;
        +
        +    my $errorMessage = $::EVAL_ERROR;
        +    $errorMessage =~ s/[\r\n]+$//;
        +
        +    my $reportDirectory = NaturalDocs::Settings->ProjectDirectory();
        +
        +    if (!$reportDirectory || !-d $reportDirectory)
        +        {  return undef;  };
        +
        +    my $file = NaturalDocs::File->JoinPaths($reportDirectory, 'LastCrash.txt');
        +
        +    open(FH_CRASHREPORT, '>' . $file) or return undef;
        +
        +    print FH_CRASHREPORT
        +    'Crash Message:' . "\n\n"
        +    . '   ' . $errorMessage . "\n\n";
        +
        +    if ($currentAction)
        +        {
        +        print FH_CRASHREPORT
        +        'Current Action:' . "\n\n"
        +        . '   ' . $currentAction . "\n\n";
        +        };
        +
        +    print FH_CRASHREPORT
        +    'Natural Docs version ' . NaturalDocs::Settings->TextAppVersion() . "\n"
        +    . 'Perl version ' . $self->PerlVersion . ' on ' . $::OSNAME . "\n\n"
        +    . 'Command Line:' . "\n\n"
        +    . '   ' . join(' ', @ARGV) . "\n\n";
        +
        +    if ($stackTrace)
        +        {
        +        print FH_CRASHREPORT
        +        'Stack Trace:' . "\n\n"
        +        . $stackTrace;
        +        }
        +    else
        +        {
        +        print FH_CRASHREPORT
        +        'Stack Trace not available.' . "\n\n";
        +        };
        +
        +    close(FH_CRASHREPORT);
        +    return $file;
        +    };
        +
        +
        +###############################################################################
        +# Group: Signal Handlers
        +
        +
        +#
        +#   Function: CatchDeath
        +#
        +#   Catches Perl die calls.
        +#
        +#   *IMPORTANT:* This function is a signal handler and should not be called manually.  Also, because of this, it does not have
        +#   a $self parameter.
        +#
        +#   Parameters:
        +#
        +#       message - The error message to die with.
        +#
        +sub CatchDeath #(message)
        +    {
        +    # No $self because it's a signal handler.
        +    my $message = shift;
        +
        +    if (!$NaturalDocs::Error::softDeath)
        +        {
        +        my $i = 0;
        +        my ($lastPackage, $lastFile, $lastLine, $lastFunction);
        +
        +        while (my ($package, $file, $line, $function) = caller($i))
        +            {
        +            if ($i != 0)
        +                {  $stackTrace .= ', called from' . "\n";  };
        +
        +            $stackTrace .= '   ' . $function;
        +
        +            if (defined $lastLine)
        +                {
        +                $stackTrace .= ', line ' . $lastLine;
        +
        +                if ($function !~ /^NaturalDocs::/)
        +                    {  $stackTrace .= ' of ' . $lastFile;  };
        +                };
        +
        +            ($lastPackage, $lastFile, $lastLine, $lastFunction) = ($package, $file, $line, $function);
        +            $i++;
        +            };
        +        };
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/File.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/File.pm
        new file mode 100755
        index 0000000..9a13c99
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/File.pm
        @@ -0,0 +1,541 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::File
        +#
        +###############################################################################
        +#
        +#   A package to manage file access across platforms.  Incorporates functions from various standard File:: packages, but more
        +#   importantly, works around the glorious suckage present in File::Spec, at least in version 0.82 and earlier.  Read the "Why oh
        +#   why?" sections for why this package was necessary.
        +#
        +#   Usage and Dependencies:
        +#
        +#       - The package doesn't depend on any other Natural Docs packages and is ready to use immediately.
        +#
        +#       - All functions except <CanonizePath()> assume that all parameters are canonized.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use File::Spec ();
        +use File::Path ();
        +use File::Copy ();
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::File;
        +
        +
        +#
        +#   Function: CheckCompatibility
        +#
        +#   Checks if the standard packages required by this one are up to snuff and dies if they aren't.  This is done because I can't
        +#   tell which versions of File::Spec have splitpath just by the version numbers.
        +#
        +sub CheckCompatibility
        +    {
        +    my ($self) = @_;
        +
        +    eval {
        +        File::Spec->splitpath('');
        +    };
        +
        +    if ($@)
        +        {
        +        NaturalDocs::Error->SoftDeath("Natural Docs requires a newer version of File::Spec than you have.  "
        +                                                    . "You must either upgrade it or upgrade Perl.");
        +        };
        +    };
        +
        +
        +###############################################################################
        +# Group: Path String Functions
        +
        +
        +#
        +#   Function: CanonizePath
        +#
        +#   Takes a path and returns a logically simplified version of it.
        +#
        +#   Why oh why?:
        +#
        +#       Because File::Spec->canonpath doesn't strip quotes on Windows.  So if you pass in "a b\c" or "a b"\c, they still end up as
        +#       different strings even though they're logically the same.
        +#
        +#       It also doesn't remove things like "..", so "a/b/../c" doesn't simplify to "a/c" like it should.
        +#
        +sub CanonizePath #(path)
        +    {
        +    my ($self, $path) = @_;
        +
        +    if ($::OSNAME eq 'MSWin32')
        +        {
        +        # We don't have to use a smarter algorithm for dropping quotes because they're invalid characters for actual file and
        +        # directory names.
        +        $path =~ s/\"//g;
        +        };
        +
        +    $path = File::Spec->canonpath($path);
        +
        +    # Condense a/b/../c into a/c.
        +
        +    my $upDir = File::Spec->updir();
        +    if (index($path, $upDir) != -1)
        +        {
        +        my ($volume, $directoryString, $file) = $self->SplitPath($path);
        +        my @directories = $self->SplitDirectories($directoryString);
        +
        +        my $i = 1;
        +        while ($i < scalar @directories)
        +            {
        +            if ($i > 0 && $directories[$i] eq $upDir && $directories[$i - 1] ne $upDir)
        +                {
        +                splice(@directories, $i - 1, 2);
        +                $i--;
        +                }
        +            else
        +                {  $i++;  };
        +            };
        +
        +        $directoryString = $self->JoinDirectories(@directories);
        +        $path = $self->JoinPath($volume, $directoryString, $file);
        +        };
        +
        +    return $path;
        +    };
        +
        +
        +#
        +#   Function: PathIsAbsolute
        +#
        +#   Returns whether the passed path is absolute.
        +#
        +sub PathIsAbsolute #(path)
        +    {
        +    my ($self, $path) = @_;
        +    return File::Spec->file_name_is_absolute($path);
        +    };
        +
        +
        +#
        +#   Function: JoinPath
        +#
        +#   Creates a path from its elements.
        +#
        +#   Parameters:
        +#
        +#       volume - The volume, such as the drive letter on Windows.  Undef if none.
        +#       dirString - The directory string.  Create with <JoinDirectories()> if necessary.
        +#       file - The file name, or undef if none.
        +#
        +#   Returns:
        +#
        +#       The joined path.
        +#
        +sub JoinPath #(volume, dirString, $file)
        +    {
        +    my ($self, $volume, $dirString, $file) = @_;
        +    return File::Spec->catpath($volume, $dirString, $file);
        +    };
        +
        +
        +#
        +#   Function: JoinPaths
        +#
        +#   Joins two paths.
        +#
        +#   Parameters:
        +#
        +#       basePath       - May be a relative path, an absolute path, or undef.
        +#       extraPath      - May be a relative path, a file, a relative path and file together, or undef.
        +#       noFileInExtra - Set this to true if extraPath is a relative path only, and doesn't have a file.
        +#
        +#   Returns:
        +#
        +#       The joined path.
        +#
        +#   Why oh why?:
        +#
        +#       Because nothing in File::Spec will simply slap two paths together.  They have to be split up for catpath/file, and rel2abs
        +#       requires the base to be absolute.
        +#
        +sub JoinPaths #(basePath, extraPath, noFileInExtra)
        +    {
        +    my ($self, $basePath, $extraPath, $noFileInExtra) = @_;
        +
        +    # If both are undef, it will return undef, which is what we want.
        +    if (!defined $basePath)
        +        {  return $extraPath;  }
        +    elsif (!defined $extraPath)
        +        {  return $basePath;  };
        +
        +    my ($baseVolume, $baseDirString, $baseFile) = File::Spec->splitpath($basePath, 1);
        +    my ($extraVolume, $extraDirString, $extraFile) = File::Spec->splitpath($extraPath, $noFileInExtra);
        +
        +    my @baseDirectories = $self->SplitDirectories($baseDirString);
        +    my @extraDirectories = $self->SplitDirectories($extraDirString);
        +
        +    my $fullDirString = $self->JoinDirectories(@baseDirectories, @extraDirectories);
        +
        +    my $fullPath = File::Spec->catpath($baseVolume, $fullDirString, $extraFile);
        +
        +    return $self->CanonizePath($fullPath);
        +    };
        +
        +
        +#
        +#   Function: SplitPath
        +#
        +#   Takes a path and returns its elements.
        +#
        +#   Parameters:
        +#
        +#       path - The path to split.
        +#       noFile - Set to true if the path doesn't have a file at the end.
        +#
        +#   Returns:
        +#
        +#       The array ( volume, directoryString, file ).  If any don't apply, they will be undef.  Use <SplitDirectories()> to split the
        +#       directory string if desired.
        +#
        +#   Why oh Why?:
        +#
        +#       Because File::Spec->splitpath may leave a trailing slash/backslash/whatever on the directory string, which makes
        +#       it a bit hard to match it with results from File::Spec->catdir.
        +#
        +sub SplitPath #(path, noFile)
        +    {
        +    my ($self, $path, $noFile) = @_;
        +
        +    my @segments = File::Spec->splitpath($path, $noFile);
        +
        +    if (!length $segments[0])
        +        {  $segments[0] = undef;  };
        +    if (!length $segments[2])
        +        {  $segments[2] = undef;  };
        +
        +    $segments[1] = File::Spec->catdir( File::Spec->splitdir($segments[1]) );
        +
        +    return @segments;
        +    };
        +
        +
        +#
        +#   Function: JoinDirectories
        +#
        +#   Creates a directory string from an array of directory names.
        +#
        +#   Parameters:
        +#
        +#       directory - A directory name.  There may be as many of these as desired.
        +#
        +sub JoinDirectories #(directory, directory, ...)
        +    {
        +    my ($self, @directories) = @_;
        +    return File::Spec->catdir(@directories);
        +    };
        +
        +
        +#
        +#   Function: SplitDirectories
        +#
        +#   Takes a string of directories and returns an array of its elements.
        +#
        +#   Why oh why?:
        +#
        +#       Because File::Spec->splitdir might leave an empty element at the end of the array, which screws up both joining in
        +#       <ConvertToURL> and navigation in <MakeRelativePath>.
        +#
        +sub SplitDirectories #(directoryString)
        +    {
        +    my ($self, $directoryString) = @_;
        +
        +    my @directories = File::Spec->splitdir($directoryString);
        +
        +    if (!length $directories[-1])
        +        {  pop @directories;  };
        +
        +    return @directories;
        +    };
        +
        +
        +#
        +#   Function: MakeRelativePath
        +#
        +#   Takes two paths and returns a relative path between them.
        +#
        +#   Parameters:
        +#
        +#       basePath    - The starting path.  May be relative or absolute, so long as the target path is as well.
        +#       targetPath  - The target path.  May be relative or absolute, so long as the base path is as well.
        +#
        +#       If both paths are relative, they are assumed to be relative to the same base.
        +#
        +#   Returns:
        +#
        +#       The target path relative to base.
        +#
        +#   Why oh why?:
        +#
        +#       First, there's nothing that gives a relative path between two relative paths.
        +#
        +#       Second, if target and base are absolute but on different volumes, File::Spec->abs2rel creates a totally non-functional
        +#       relative path.  It should return the target as is, since there is no relative path.
        +#
        +#       Third, File::Spec->abs2rel between absolute paths on the same volume, at least on Windows, leaves the drive letter
        +#       on.  So abs2rel('a:\b\c\d', 'a:\b') returns 'a:c\d' instead of the expected 'c\d'.  That makes no sense whatsoever.  It's
        +#       not like it was designed to handle only directory names, either; the documentation says 'path' and the code seems to
        +#       explicitly handle it.  There's just an 'unless' in there that tacks on the volume, defeating the purpose of a *relative* path
        +#       and making the function worthless.
        +#
        +sub MakeRelativePath #(basePath, targetPath)
        +    {
        +    my ($self, $basePath, $targetPath) = @_;
        +
        +    my ($baseVolume, $baseDirString, $baseFile) = $self->SplitPath($basePath, 1);
        +    my ($targetVolume, $targetDirString, $targetFile) = $self->SplitPath($targetPath);
        +
        +    # If the volumes are different, there is no possible relative path.
        +    if ($targetVolume ne $baseVolume)
        +        {  return $targetPath;  };
        +
        +    my @baseDirectories = $self->SplitDirectories($baseDirString);
        +    my @targetDirectories = $self->SplitDirectories($targetDirString);
        +
        +    # Skip the parts of the path that are the same.
        +    while (scalar @baseDirectories && @targetDirectories && $baseDirectories[0] eq $targetDirectories[0])
        +        {
        +        shift @baseDirectories;
        +        shift @targetDirectories;
        +        };
        +
        +    # Back out of the base path until it reaches where they were similar.
        +    for (my $i = 0; $i < scalar @baseDirectories; $i++)
        +        {
        +        unshift @targetDirectories, File::Spec->updir();
        +        };
        +
        +    $targetDirString = $self->JoinDirectories(@targetDirectories);
        +
        +    return File::Spec->catpath(undef, $targetDirString, $targetFile);
        +    };
        +
        +
        +#
        +#   Function: IsSubPathOf
        +#
        +#   Returns whether the path is a descendant of another path.
        +#
        +#   Parameters:
        +#
        +#       base - The base path to test against.
        +#       path - The possible subpath to test.
        +#
        +#   Returns:
        +#
        +#       Whether path is a descendant of base.
        +#
        +sub IsSubPathOf #(base, path)
        +    {
        +    my ($self, $base, $path) = @_;
        +
        +    # This is a quick test that should find a false quickly.
        +    if ($base eq substr($path, 0, length($base)))
        +        {
        +        # This doesn't guarantee true, because it could be "C:\A B" and "C:\A B C\File".  So we test for it by seeing if the last
        +        # directory in base is the same as the equivalent directory in path.
        +
        +        my ($baseVolume, $baseDirString, $baseFile) = NaturalDocs::File->SplitPath($base, 1);
        +        my @baseDirectories = NaturalDocs::File->SplitDirectories($baseDirString);
        +
        +        my ($pathVolume, $pathDirString, $pathFile) = NaturalDocs::File->SplitPath($path);
        +        my @pathDirectories = NaturalDocs::File->SplitDirectories($pathDirString);
        +
        +        return ( $baseDirectories[-1] eq $pathDirectories[ scalar @baseDirectories - 1 ] );
        +        }
        +    else
        +        {  return undef;  };
        +    };
        +
        +
        +#
        +#   Function: ConvertToURL
        +#
        +#   Takes a relative path and converts it from the native format to a relative URL.  Note that it _doesn't_ convert special characters
        +#   to amp chars.
        +#
        +sub ConvertToURL #(path)
        +    {
        +    my ($self, $path) = @_;
        +
        +    my ($pathVolume, $pathDirString, $pathFile) = $self->SplitPath($path);
        +    my @pathDirectories = $self->SplitDirectories($pathDirString);
        +
        +    my $i = 0;
        +    while ($i < scalar @pathDirectories && $pathDirectories[$i] eq File::Spec->updir())
        +        {
        +        $pathDirectories[$i] = '..';
        +        $i++;
        +        };
        +
        +    return join('/', @pathDirectories, $pathFile);
        +    };
        +
        +
        +#
        +#   Function: NoUpwards
        +#
        +#   Takes an array of directory entries and returns one without all the entries that refer to the parent directory, such as '.' and '..'.
        +#
        +sub NoUpwards #(array)
        +    {
        +    my ($self, @array) = @_;
        +    return File::Spec->no_upwards(@array);
        +    };
        +
        +
        +#
        +#   Function: NoFileName
        +#
        +#   Takes a path and returns a version without the file name.  Useful for sending paths to <CreatePath()>.
        +#
        +sub NoFileName #(path)
        +    {
        +    my ($self, $path) = @_;
        +
        +    my ($pathVolume, $pathDirString, $pathFile) = File::Spec->splitpath($path);
        +
        +    return File::Spec->catpath($pathVolume, $pathDirString, undef);
        +    };
        +
        +
        +#
        +#   Function: NoExtension
        +#
        +#   Returns the path without an extension.
        +#
        +sub NoExtension #(path)
        +    {
        +    my ($self, $path) = @_;
        +
        +    my $extension = $self->ExtensionOf($path);
        +
        +    if ($extension)
        +        {  $path = substr($path, 0, length($path) - length($extension) - 1);  };
        +
        +    return $path;
        +    };
        +
        +
        +#
        +#   Function: ExtensionOf
        +#
        +#   Returns the extension of the passed path, or undef if none.
        +#
        +sub ExtensionOf #(path)
        +    {
        +    my ($self, $path) = @_;
        +
        +    my ($pathVolume, $pathDirString, $pathFile) = File::Spec->splitpath($path);
        +
        +    # We need the leading dot in the regex so files that start with a dot but don't have an extension count as extensionless files.
        +    if ($pathFile =~ /.\.([^\.]+)$/)
        +        {  return $1;  }
        +    else
        +        {  return undef;  };
        +    };
        +
        +
        +#
        +#   Function: IsCaseSensitive
        +#
        +#   Returns whether the current platform has case-sensitive paths.
        +#
        +sub IsCaseSensitive
        +    {
        +    return !(File::Spec->case_tolerant());
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Disk Functions
        +
        +
        +#
        +#   Function: CreatePath
        +#
        +#   Creates a directory tree corresponding to the passed path, regardless of how many directories do or do not already exist.
        +#   Do _not_ include a file name in the path.  Use <NoFileName()> first if you need to.
        +#
        +sub CreatePath #(path)
        +    {
        +    my ($self, $path) = @_;
        +    File::Path::mkpath($path);
        +    };
        +
        +
        +#
        +#   Function: RemoveEmptyTree
        +#
        +#   Removes an empty directory tree.  The passed directory will be removed if it's empty, and it will keep removing its parents
        +#   until it reaches one that's not empty or a set limit.
        +#
        +#   Parameters:
        +#
        +#       path - The path to start from.  It will try to remove this directory and work it's way down.
        +#       limit - The path to stop at if it doesn't find any non-empty directories first.  This path will *not* be removed.
        +#
        +sub RemoveEmptyTree #(path, limit)
        +    {
        +    my ($self, $path, $limit) = @_;
        +
        +    my ($volume, $directoryString) = $self->SplitPath($path, 1);
        +    my @directories = $self->SplitDirectories($directoryString);
        +
        +    my $directory = $path;
        +
        +    while (-d $directory && $directory ne $limit)
        +        {
        +        opendir FH_ND_FILE, $directory;
        +        my @entries = readdir FH_ND_FILE;
        +        closedir FH_ND_FILE;
        +
        +        @entries = $self->NoUpwards(@entries);
        +
        +        if (scalar @entries || !rmdir($directory))
        +            {  last;  };
        +
        +        pop @directories;
        +        $directoryString = $self->JoinDirectories(@directories);
        +        $directory = $self->JoinPath($volume, $directoryString);
        +        };
        +    };
        +
        +
        +#
        +#   Function: Copy
        +#
        +#   Copies a file from one path to another.  If the destination file exists, it is overwritten.
        +#
        +#   Parameters:
        +#
        +#       source       - The file to copy.
        +#       destination - The destination to copy to.
        +#
        +#   Returns:
        +#
        +#       Whether it succeeded
        +#
        +sub Copy #(source, destination) => bool
        +    {
        +    my ($self, $source, $destination) = @_;
        +    return File::Copy::copy($source, $destination);
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/ImageReferenceTable.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/ImageReferenceTable.pm
        new file mode 100755
        index 0000000..43865f1
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/ImageReferenceTable.pm
        @@ -0,0 +1,398 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::ImageReferenceTable
        +#
        +###############################################################################
        +#
        +#   A <NaturalDocs::SourceDB>-based package that manages all the image references appearing in source files.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +use NaturalDocs::ImageReferenceTable::String;
        +use NaturalDocs::ImageReferenceTable::Reference;
        +
        +
        +package NaturalDocs::ImageReferenceTable;
        +
        +use base 'NaturalDocs::SourceDB::Extension';
        +
        +
        +###############################################################################
        +# Group: Information
        +
        +#
        +#   Topic: Usage
        +#
        +#       - <NaturalDocs::Project> and <NaturalDocs::SourceDB> must be initialized before this package can be used.
        +#
        +#       - Call <Register()> before using.
        +#
        +#
        +#   Topic: Programming Notes
        +#
        +#       When working on this code, remember that there are three things it has to juggle.
        +#
        +#       - The information in <NaturalDocs::SourceDB>.
        +#       - Image file references in <NaturalDocs::Project>.
        +#       - Source file rebuilding on changes.
        +#
        +#       Managing the actual image files will be handled between <NaturalDocs::Project> and the <NaturalDocs::Builder>
        +#       sub-packages.
        +#
        +#
        +#   Topic: Implementation
        +#
        +#       Managing image references is simpler than managing the references in <NaturalDocs::SymbolTable>.  In SymbolTable,
        +#       you have to worry about reference targets popping into and out of existence.  A link may go to a file that hasn't been
        +#       reparsed yet and the target may no longer exist.  We have to deal with that when we know it, which may be after the
        +#       reference's file was parsed.  Also, a new definition may appear that serves as a better interpretation of a link than its
        +#       current target, and again we may only know that after the reference's file has been parsed already.  So we have to deal
        +#       with scores and potential symbols and each symbol knowing exactly what links to it and so forth.
        +#
        +#       Not so with image references.  All possible targets (all possible image files) are known by <NaturalDocs::Project> early
        +#       on and will remain consistent throughout execution.  So because of that, we can get away with only storing reference
        +#       counts with each image and determining exactly where a reference points to as we find them.
        +#
        +#       Reference counts are stored with the image file information in <NaturalDocs::Project>.  However, it is not loaded and
        +#       saved to disk by it.  Rather, it is regenerated by this package when it loads <ImageReferenceTable.nd>.
        +#       NaturalDocs::Project only stores the last modification time (so it can add files to the build list if they've changed) and
        +#       whether it had any references at all on the last run (so it knows whether it should care if they've changed.)
        +#       ImageReferenceTable.nd stores each reference's target, width, and height.  Whether their interpretations have changed is
        +#       dealt with in the <Load()> function, again since the list of targets (image files) is constant.
        +#
        +#       The package is based on <NaturalDocs::SourceDB>, so read it's documentation for more information on how it works.
        +#
        +
        +
        +###############################################################################
        +# Group: Variables
        +
        +
        +#
        +#   var: extensionID
        +#   The <ExtensionID> granted by <NaturalDocs::SourceDB>.
        +#
        +my $extensionID;
        +
        +
        +
        +###############################################################################
        +# Group: Files
        +
        +
        +#
        +#   File: ImageReferenceTable.nd
        +#
        +#   The data file which stores all the image references from the last run of Natural Docs.
        +#
        +#   Format:
        +#
        +#       > [Standard Binary Header]
        +#
        +#       It starts with the standard binary header from <NaturalDocs::BinaryFile>.
        +#
        +#       > [Image Reference String or undef]
        +#       > [UString16: target file]
        +#       > [UInt16: target width or 0]
        +#       > [UInt16: target height or 0]
        +#
        +#       For each <ImageReferenceString>, it's target, width, and height are stored.  The target is needed so we can tell if it
        +#       changed from the last run, and the dimensions are needed because if the target hasn't changed but the file's dimensions
        +#       have, the source files need to be rebuilt.
        +#
        +#       <ImageReferenceStrings> are encoded by <NaturalDocs::ImageReferenceTable::String>.
        +#
        +#       > [UString16: definition file or undef] ...
        +#
        +#       Then comes a series of UString16s for all the files that define the reference until it hits an undef.
        +#
        +#       This whole series is repeated for each <ImageReferenceString> until it hits an undef.
        +#
        +#	Revisions:
        +#
        +#		1.52:
        +#
        +#			- AString16s were changed to UString16s.
        +#
        +#		1.4:
        +#
        +#			- The file was added to Natural Docs.
        +#
        +
        +
        +
        +###############################################################################
        +# Group: Functions
        +
        +
        +#
        +#   Function: Register
        +#   Registers the package with <NaturalDocs::SourceDB>.
        +#
        +sub Register
        +    {
        +    my $self = shift;
        +    $extensionID = NaturalDocs::SourceDB->RegisterExtension($self, 0);
        +    };
        +
        +
        +#
        +#   Function: Load
        +#
        +#   Loads the data from <ImageReferenceTable.nd>.  Returns whether it was successful.
        +#
        +sub Load # => bool
        +    {
        +    my $self = shift;
        +
        +    if (NaturalDocs::Settings->RebuildData())
        +        {  return 0;  };
        +
        +    my $version = NaturalDocs::BinaryFile->OpenForReading( NaturalDocs::Project->DataFile('ImageReferenceTable.nd') );
        +    my $fileIsOkay;
        +
        +    if (defined $version)
        +        {
        +        if (NaturalDocs::Version->CheckFileFormat($version, NaturalDocs::Version->FromString('1.52')))
        +            {  $fileIsOkay = 1;  }
        +        else
        +            {  NaturalDocs::BinaryFile->Close();  };
        +        };
        +
        +    if (!$fileIsOkay)
        +        {  return 0;  };
        +
        +
        +    # [Image Reference String or undef]
        +    while (my $referenceString = NaturalDocs::ImageReferenceTable::String->FromBinaryFile())
        +        {
        +        NaturalDocs::SourceDB->AddItem($extensionID, $referenceString,
        +                                                           NaturalDocs::ImageReferenceTable::Reference->New());
        +
        +        # [UString16: target file]
        +        # [UInt16: target width or 0]
        +        # [UInt16: target height or 0]
        +
        +        my $targetFile = NaturalDocs::BinaryFile->GetUString16();
        +        my $width = NaturalDocs::BinaryFile->GetUInt16();
        +        my $height = NaturalDocs::BinaryFile->GetUInt16();
        +
        +        my $newTargetFile = $self->SetReferenceTarget($referenceString);
        +        my $newWidth;
        +        my $newHeight;
        +
        +        if ($newTargetFile)
        +            {
        +            NaturalDocs::Project->AddImageFileReference($newTargetFile);
        +            ($newWidth, $newHeight) = NaturalDocs::Project->ImageFileDimensions($newTargetFile);
        +            };
        +
        +        my $rebuildDefinitions = ($newTargetFile ne $targetFile || $newWidth != $width || $newHeight != $height);
        +
        +
        +        # [UString16: definition file or undef] ...
        +        while (my $definitionFile = NaturalDocs::BinaryFile->GetUString16())
        +            {
        +            NaturalDocs::SourceDB->AddDefinition($extensionID, $referenceString, $definitionFile);
        +
        +            if ($rebuildDefinitions)
        +                {  NaturalDocs::Project->RebuildFile($definitionFile);  };
        +            };
        +        };
        +
        +
        +    NaturalDocs::BinaryFile->Close();
        +    return 1;
        +    };
        +
        +
        +#
        +#   Function: Save
        +#
        +#   Saves the data to <ImageReferenceTable.nd>.
        +#
        +sub Save
        +    {
        +    my $self = shift;
        +
        +    my $references = NaturalDocs::SourceDB->GetAllItemsHashRef($extensionID);
        +
        +    NaturalDocs::BinaryFile->OpenForWriting( NaturalDocs::Project->DataFile('ImageReferenceTable.nd') );
        +
        +    while (my ($referenceString, $referenceObject) = each %$references)
        +        {
        +        # [Image Reference String or undef]
        +        # [UString16: target file]
        +        # [UInt16: target width or 0]
        +        # [UInt16: target height or 0]
        +
        +        NaturalDocs::ImageReferenceTable::String->ToBinaryFile($referenceString);
        +
        +        my $target = $referenceObject->Target();
        +        my ($width, $height);
        +
        +        if ($target)
        +            {  ($width, $height) = NaturalDocs::Project->ImageFileDimensions($target);  };
        +
        +        NaturalDocs::BinaryFile->WriteUString16( $referenceObject->Target() );
        +        NaturalDocs::BinaryFile->WriteUInt16( ($width || 0) );
        +        NaturalDocs::BinaryFile->WriteUInt16( ($height || 0) );
        +
        +        # [UString16: definition file or undef] ...
        +
        +        my $definitions = $referenceObject->GetAllDefinitionsHashRef();
        +
        +        foreach my $definition (keys %$definitions)
        +            {  NaturalDocs::BinaryFile->WriteUString16($definition);  };
        +
        +        NaturalDocs::BinaryFile->WriteUString16(undef);
        +        };
        +
        +    NaturalDocs::ImageReferenceTable::String->ToBinaryFile(undef);
        +
        +    NaturalDocs::BinaryFile->Close();
        +    };
        +
        +
        +#
        +#   Function: AddReference
        +#
        +#   Adds a new image reference.
        +#
        +sub AddReference #(FileName file, string referenceText)
        +    {
        +    my ($self, $file, $referenceText) = @_;
        +
        +    my $referenceString = NaturalDocs::ImageReferenceTable::String->Make($file, $referenceText);
        +
        +    if (!NaturalDocs::SourceDB->HasItem($extensionID, $referenceString))
        +        {
        +        my $referenceObject = NaturalDocs::ImageReferenceTable::Reference->New();
        +        NaturalDocs::SourceDB->AddItem($extensionID, $referenceString, $referenceObject);
        +
        +        my $target = $self->SetReferenceTarget($referenceString);
        +        if ($target)
        +            {  NaturalDocs::Project->AddImageFileReference($target);  };
        +        };
        +
        +    NaturalDocs::SourceDB->AddDefinition($extensionID, $referenceString, $file);
        +    };
        +
        +
        +#
        +#   Function: OnDeletedDefinition
        +#
        +#   Called for each definition deleted by <NaturalDocs::SourceDB>.  This is called *after* the definition has been deleted from
        +#   the database, so don't expect to be able to read it.
        +#
        +sub OnDeletedDefinition #(ImageReferenceString referenceString, FileName file, bool wasLastDefinition)
        +    {
        +    my ($self, $referenceString, $file, $wasLastDefinition) = @_;
        +
        +    if ($wasLastDefinition)
        +        {
        +        my $referenceObject = NaturalDocs::SourceDB->GetItem($extensionID, $referenceString);
        +        my $target = $referenceObject->Target();
        +
        +        if ($target)
        +            {  NaturalDocs::Project->DeleteImageFileReference($target);  };
        +
        +        NaturalDocs::SourceDB->DeleteItem($extensionID, $referenceString);
        +        };
        +    };
        +
        +
        +#
        +#   Function: GetReferenceTarget
        +#
        +#   Returns the image file the reference resolves to, or undef if none.
        +#
        +#   Parameters:
        +#
        +#       sourceFile - The source <FileName> the reference appears in.
        +#       text - The reference text.
        +#
        +sub GetReferenceTarget #(FileName sourceFile, string text) => FileName
        +    {
        +    my ($self, $sourceFile, $text) = @_;
        +
        +    my $referenceString = NaturalDocs::ImageReferenceTable::String->Make($sourceFile, $text);
        +    my $reference = NaturalDocs::SourceDB->GetItem($extensionID, $referenceString);
        +
        +    if (!defined $reference)
        +        {  return undef;  }
        +    else
        +        {  return $reference->Target();  };
        +    };
        +
        +
        +#
        +#   Function: SetReferenceTarget
        +#
        +#   Determines the best target for the passed <ImageReferenceString> and sets it on the
        +#   <NaturalDocs::ImageReferenceTable::Reference> object.  Returns the new target <FileName>.  Does *not* add any source
        +#   files to the bulid list.
        +#
        +sub SetReferenceTarget #(ImageReferenceString referenceString) => FileName
        +    {
        +    my ($self, $referenceString) = @_;
        +
        +    my $referenceObject = NaturalDocs::SourceDB->GetItem($extensionID, $referenceString);
        +    my ($sourcePath, $text) = NaturalDocs::ImageReferenceTable::String->InformationOf($referenceString);
        +
        +
        +    # Try the path relative to the source file first.
        +
        +    my $target;
        +
        +    my $imageFile = NaturalDocs::File->JoinPaths($sourcePath, $text);
        +    my $exists = NaturalDocs::Project->ImageFileExists($imageFile);
        +
        +
        +    # Then try relative image directories.
        +
        +    if (!$exists)
        +        {
        +        my $relativeImageDirectories = NaturalDocs::Settings->RelativeImageDirectories();
        +
        +        for (my $i = 0; $i < scalar @$relativeImageDirectories && !$exists; $i++)
        +            {
        +            $imageFile = NaturalDocs::File->JoinPaths($sourcePath, $relativeImageDirectories->[$i], 1);
        +            $imageFile = NaturalDocs::File->JoinPaths($imageFile, $text);
        +
        +            $exists = NaturalDocs::Project->ImageFileExists($imageFile);
        +            };
        +        };
        +
        +
        +    # Then try absolute image directories.
        +
        +    if (!$exists)
        +        {
        +        my $imageDirectories = NaturalDocs::Settings->ImageDirectories();
        +
        +        for (my $i = 0; $i < scalar @$imageDirectories && !$exists; $i++)
        +            {
        +            $imageFile = NaturalDocs::File->JoinPaths($imageDirectories->[$i], $text);
        +            $exists = NaturalDocs::Project->ImageFileExists($imageFile);
        +            };
        +        };
        +
        +
        +    if ($exists)
        +        {  $target = NaturalDocs::Project->ImageFileCapitalization($imageFile);  };
        +    #else leave it as undef.
        +
        +    $referenceObject->SetTarget($target);
        +    return $target;
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/ImageReferenceTable/Reference.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/ImageReferenceTable/Reference.pm
        new file mode 100755
        index 0000000..3477435
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/ImageReferenceTable/Reference.pm
        @@ -0,0 +1,45 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::ImageReferenceTable::Reference
        +#
        +###############################################################################
        +#
        +#   A class for references being tracked in <NaturalDocs::SourceDB>.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +
        +package NaturalDocs::ImageReferenceTable::Reference;
        +
        +use base 'NaturalDocs::SourceDB::Item';
        +
        +
        +use NaturalDocs::DefineMembers 'TARGET', 'Target()', 'SetTarget()',
        +                                                 'NEEDS_REBUILD', 'NeedsRebuild()', 'SetNeedsRebuild()';
        +
        +
        +#
        +#   Variables: Members
        +#
        +#   The following constants are indexes into the object array.
        +#
        +#   TARGET - The image <FileName> this reference resolves to, or undef if none.
        +#
        +
        +
        +#
        +#   Functions: Member Functions
        +#
        +#   Target - Returns the image <FileName> this reference resolves to, or undef if none.
        +#   SetTarget - Replaces the image <FileName> this reference resolves to, or undef if none.
        +#
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/ImageReferenceTable/String.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/ImageReferenceTable/String.pm
        new file mode 100755
        index 0000000..67a30cc
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/ImageReferenceTable/String.pm
        @@ -0,0 +1,111 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::ImageReferenceTable::String
        +#
        +###############################################################################
        +#
        +#   A package for creating and managing <ImageReferenceStrings>.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +
        +package NaturalDocs::ImageReferenceTable::String;
        +
        +
        +#
        +#   Type: ImageReferenceString
        +#
        +#   A string representing a unique image reference.  It's composed of the reference text and the directory of the source file.
        +#   The source file name itself isn't included because two files in the same directory with the same reference text will always go
        +#   to the same targets.
        +#
        +
        +
        +#
        +#   Function: Make
        +#
        +#   Converts a source <FileName> and the reference text to an <ImageReferenceString>.
        +#
        +sub Make #(FileName sourceFile, string text) => ImageReferenceString
        +    {
        +    my ($self, $sourceFile, $text) = @_;
        +
        +    my $path = NaturalDocs::File->NoFileName($sourceFile);
        +
        +    # Condense whitespace and remove any separator characters.
        +    $path =~ tr/ \t\r\n\x1C/ /s;
        +    $text =~ tr/ \t\r\n\x1C/ /s;
        +
        +    return $path . "\x1C" . $text;
        +    };
        +
        +
        +#
        +#   Function: InformationOf
        +#
        +#   Returns the information contained in the <ImageReferenceString> as the array ( path, text ).
        +#
        +sub InformationOf #(ImageReferenceString referenceString)
        +    {
        +    my ($self, $referenceString) = @_;
        +    return split(/\x1C/, $referenceString);
        +    };
        +
        +
        +#
        +#   Function: ToBinaryFile
        +#
        +#   Writes an <ImageReferenceString> to <NaturalDocs::BinaryFile>.  Can also encode an undef.
        +#
        +#   Format:
        +#
        +#       > [UString16: path] [UString16: reference text] ...
        +#
        +#       Undef is represented by the first UString16 being undef.
        +#
        +sub ToBinaryFile #(ImageReferenceString referenceString)
        +    {
        +    my ($self, $referenceString) = @_;
        +
        +    if (defined $referenceString)
        +        {
        +        my ($path, $text) = split(/\x1C/, $referenceString);
        +
        +        NaturalDocs::BinaryFile->WriteUString16($path);
        +        NaturalDocs::BinaryFile->WriteUString16($text);
        +        }
        +    else
        +        {
        +        NaturalDocs::BinaryFile->WriteUString16(undef);
        +        };
        +    };
        +
        +
        +#
        +#   Function: FromBinaryFile
        +#
        +#   Loads an <ImageReferenceString> or undef from <NaturalDocs::BinaryFile> and returns it.
        +#
        +sub FromBinaryFile
        +    {
        +    my $self = shift;
        +
        +    my $path = NaturalDocs::BinaryFile->GetUString16();
        +
        +    if (!defined $path)
        +        {  return undef;  };
        +
        +    my $text = NaturalDocs::BinaryFile->GetUString16();
        +
        +    return $path . "\x1C" . $text;
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages.pm
        new file mode 100755
        index 0000000..549b17c
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages.pm
        @@ -0,0 +1,1481 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::Languages
        +#
        +###############################################################################
        +#
        +#   A package to manage all the programming languages Natural Docs supports.
        +#
        +#   Usage and Dependencies:
        +#
        +#       - Prior to use, <NaturalDocs::Settings> must be initialized and <Load()> must be called.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use Text::Wrap();
        +
        +use NaturalDocs::Languages::Prototype;
        +
        +use NaturalDocs::Languages::Base;
        +use NaturalDocs::Languages::Simple;
        +use NaturalDocs::Languages::Advanced;
        +
        +use NaturalDocs::Languages::Perl;
        +use NaturalDocs::Languages::CSharp;
        +use NaturalDocs::Languages::ActionScript;
        +
        +use NaturalDocs::Languages::Ada;
        +use NaturalDocs::Languages::PLSQL;
        +use NaturalDocs::Languages::Pascal;
        +use NaturalDocs::Languages::Tcl;
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::Languages;
        +
        +
        +###############################################################################
        +# Group: Variables
        +
        +
        +#
        +#   handle: FH_LANGUAGES
        +#
        +#   The file handle used for writing to <Languages.txt>.
        +#
        +
        +
        +#
        +#   hash: languages
        +#
        +#   A hash of all the defined languages.  The keys are the all-lowercase language names, and the values are
        +#   <NaturalDocs::Languages::Base>-derived objects.
        +#
        +my %languages;
        +
        +#
        +#   hash: extensions
        +#
        +#   A hash of all the defined languages' extensions.  The keys are the all-lowercase extensions, and the values are the
        +#   all-lowercase names of the languages that defined them.
        +#
        +my %extensions;
        +
        +#
        +#   hash: shebangStrings
        +#
        +#   A hash of all the defined languages' strings to search for in the shebang (#!) line.  The keys are the all-lowercase strings, and
        +#   the values are the all-lowercase names of the languages that defined them.
        +#
        +my %shebangStrings;
        +
        +#
        +#   hash: shebangFiles
        +#
        +#   A hash of all the defined languages for files where it needs to be found via shebang strings.  The keys are the file names,
        +#   and the values are language names, or undef if the file isn't supported.  These values should be filled in the first time
        +#   each file is parsed for a shebang string so that it doesn't have to be done multiple times.
        +#
        +my %shebangFiles;
        +
        +#
        +#   array: mainLanguageNames
        +#
        +#   An array of the language names that are defined in the main <Languages.txt>.
        +#
        +my @mainLanguageNames;
        +
        +
        +
        +###############################################################################
        +# Group: Files
        +
        +
        +#
        +#   File: Languages.txt
        +#
        +#   The configuration file that defines or overrides the language definitions for Natural Docs.  One version sits in Natural Docs'
        +#   configuration directory, and another can be in a project directory to add to or override them.
        +#
        +#   > # [comments]
        +#
        +#   Everything after a # symbol is ignored.  However, for this particular file, comments can only appear on their own lines.
        +#   They cannot appear after content on the same line.
        +#
        +#   > Format: [version]
        +#
        +#   Specifies the file format version of the file.
        +#
        +#
        +#   Sections:
        +#
        +#       > Ignore[d] Extension[s]: [extension] [extension] ...
        +#
        +#       Causes the listed file extensions to be ignored, even if they were previously defined to be part of a language.  The list is
        +#       space-separated.  ex. "Ignore Extensions: cvs txt"
        +#
        +#
        +#       > Language: [name]
        +#
        +#       Creates a new language.  Everything underneath applies to this language until the next one.  Names can use any
        +#       characters.
        +#
        +#       The languages "Text File" and "Shebang Script" have special meanings.  Text files are considered all comment and don't
        +#       have comment symbols.  Shebang scripts have their language determined by the shebang string and automatically
        +#       include files with no extension in addition to the extensions defined.
        +#
        +#       If "Text File" doesn't define ignored prefixes, a package separator, or enum value behavior, those settings will be copied
        +#       from the language with the most files in the source tree.
        +#
        +#
        +#       > Alter Language: [name]
        +#
        +#       Alters an existing language.  Everything underneath it overrides the previous settings until the next one.  Note that if a
        +#       property has an [Add/Replace] form and that property has already been defined, you have to specify whether you're adding
        +#       to or replacing the defined list.
        +#
        +#
        +#   Language Properties:
        +#
        +#       > Extension[s]: [extension] [extension] ...
        +#       > [Add/Replace] Extension[s]: ...
        +#
        +#       Defines file extensions for the language's source files.  The list is space-separated.  ex. "Extensions: c cpp".  You can use
        +#       extensions that were previously used by another language to redefine them.
        +#
        +#
        +#       > Shebang String[s]: [string] [string] ...
        +#       > [Add/Replace] Shebang String[s]: ...
        +#
        +#       Defines a list of strings that can appear in the shebang (#!) line to designate that it's part of this language.  They can
        +#       appear anywhere in the line, so "php" will work for "#!/user/bin/php4".  You can use strings that were previously used by
        +#       another language to redefine them.
        +#
        +#
        +#       > Ignore[d] Prefix[es] in Index: [prefix] [prefix] ...
        +#       > Ignore[d] [Topic Type] Prefix[es] in Index: [prefix] [prefix] ...
        +#       > [Add/Replace] Ignore[d] Prefix[es] in Index: ...
        +#       > [Add/Replace] Ignore[d] [Topic Type] Prefix[es] in Index: ...
        +#
        +#       Specifies prefixes that should be ignored when sorting symbols for an index.  Can be specified in general or for a specific
        +#       <TopicType>.  The prefixes will still appear, the symbols will just be sorted as if they're not there.  For example, specifying
        +#       "ADO_" for functions will mean that "ADO_DoSomething" will appear under D instead of A.
        +#
        +#
        +#   Basic Language Support Properties:
        +#
        +#       These attributes are only available for languages with basic language support.
        +#
        +#
        +#       > Line Comment[s]: [symbol] [symbol] ...
        +#
        +#       Defines a space-separated list of symbols that are used for line comments, if any.  ex. "Line Comment: //".
        +#
        +#
        +#       > Block Comment[s]: [opening symbol] [closing symbol] [opening symbol] [closing symbol] ...
        +#
        +#       Defines a space-separated list of symbol pairs that are used for block comments, if any.  ex. "Block Comment: /* */".
        +#
        +#
        +#       > Package Separator: [symbol]
        +#
        +#       Defines the default package separator symbol, such as . or ::.  This is for presentation only and will not affect how
        +#       Natural Docs links are parsed.  The default is a dot.
        +#
        +#
        +#       > [Topic Type] Prototype Ender[s]: [symbol] [symbol] ...
        +#
        +#       When defined, Natural Docs will attempt to collect prototypes from the code following the specified <TopicType>.  It grabs
        +#       code until the first ender symbol or the next Natural Docs comment, and if it contains the topic name, it serves as its
        +#       prototype.  Use \n to specify a line break.  ex. "Function Prototype Enders: { ;", "Variable Prototype Enders: = ;".
        +#
        +#
        +#       > Line Extender: [symbol]
        +#
        +#       Defines the symbol that allows a prototype to span multiple lines if normally a line break would end it.
        +#
        +#
        +#       > Enum Values: [global|under type|under parent]
        +#
        +#       Defines how enum values are referenced.  The default is global.
        +#
        +#       global - Values are always global, referenced as 'value'.
        +#       under type - Values are under the enum type, referenced as 'package.enum.value'.
        +#       under parent - Values are under the enum's parent, referenced as 'package.value'.
        +#
        +#
        +#       > Perl Package: [perl package]
        +#
        +#       Specifies the Perl package used to fine-tune the language behavior in ways too complex to do in this file.
        +#
        +#
        +#   Full Language Support Properties:
        +#
        +#       These attributes are only available for languages with full language support.
        +#
        +#
        +#       > Full Language Support: [perl package]
        +#
        +#       Specifies the Perl package that has the parsing routines necessary for full language support.
        +#
        +#
        +#   Revisions:
        +#
        +#       1.32:
        +#
        +#           - Package Separator is now a basic language support only property.
        +#           - Added Enum Values setting.
        +#
        +#       1.3:
        +#
        +#           - The file was introduced.
        +
        +
        +###############################################################################
        +# Group: File Functions
        +
        +
        +#
        +#   Function: Load
        +#
        +#   Loads both the master and the project version of <Languages.txt>.
        +#
        +sub Load
        +    {
        +    my $self = shift;
        +
        +    # Hashrefs where the keys are all-lowercase extensions/shebang strings, and the values are arrayrefs of the languages
        +    # that defined them, earliest first, all lowercase.
        +    my %tempExtensions;
        +    my %tempShebangStrings;
        +
        +    $self->LoadFile(1, \%tempExtensions, \%tempShebangStrings);  # Main
        +
        +    if (!exists $languages{'shebang script'})
        +        {  NaturalDocs::ConfigFile->AddError('You must define "Shebang Script" in the main languages file.');  };
        +    if (!exists $languages{'text file'})
        +        {  NaturalDocs::ConfigFile->AddError('You must define "Text File" in the main languages file.');  };
        +
        +    my $errorCount = NaturalDocs::ConfigFile->ErrorCount();
        +
        +    if ($errorCount)
        +        {
        +        NaturalDocs::ConfigFile->PrintErrorsAndAnnotateFile();
        +        NaturalDocs::Error->SoftDeath('There ' . ($errorCount == 1 ? 'is an error' : 'are ' . $errorCount . ' errors')
        +                                                    . ' in ' . NaturalDocs::Project->MainConfigFile('Languages.txt'));
        +        }
        +
        +
        +    $self->LoadFile(0, \%tempExtensions, \%tempShebangStrings);  # User
        +
        +    $errorCount = NaturalDocs::ConfigFile->ErrorCount();
        +
        +    if ($errorCount)
        +        {
        +        NaturalDocs::ConfigFile->PrintErrorsAndAnnotateFile();
        +        NaturalDocs::Error->SoftDeath('There ' . ($errorCount == 1 ? 'is an error' : 'are ' . $errorCount . ' errors')
        +                                                    . ' in ' . NaturalDocs::Project->UserConfigFile('Languages.txt'));
        +        };
        +
        +
        +    # Convert the temp hashes into the real ones.
        +
        +    while (my ($extension, $languages) = each %tempExtensions)
        +        {
        +        $extensions{$extension} = $languages->[-1];
        +        };
        +    while (my ($shebangString, $languages) = each %tempShebangStrings)
        +        {
        +        $shebangStrings{$shebangString} = $languages->[-1];
        +        };
        +    };
        +
        +
        +#
        +#   Function: LoadFile
        +#
        +#   Loads a particular version of <Languages.txt>.
        +#
        +#   Parameters:
        +#
        +#       isMain - Whether the file is the main file or not.
        +#       tempExtensions - A hashref where the keys are all-lowercase extensions, and the values are arrayrefs of the all-lowercase
        +#                                 names of the languages that defined them, earliest first.  It will be changed by this function.
        +#       tempShebangStrings - A hashref where the keys are all-lowercase shebang strings, and the values are arrayrefs of the
        +#                                        all-lowercase names of the languages that defined them, earliest first.  It will be changed by this
        +#                                        function.
        +#
        +sub LoadFile #(isMain, tempExtensions, tempShebangStrings)
        +    {
        +    my ($self, $isMain, $tempExtensions, $tempShebangStrings) = @_;
        +
        +    my ($file, $status);
        +
        +    if ($isMain)
        +        {
        +        $file = NaturalDocs::Project->MainConfigFile('Languages.txt');
        +        $status = NaturalDocs::Project->MainConfigFileStatus('Languages.txt');
        +        }
        +    else
        +        {
        +        $file = NaturalDocs::Project->UserConfigFile('Languages.txt');
        +        $status = NaturalDocs::Project->UserConfigFileStatus('Languages.txt');
        +        };
        +
        +
        +    my $version;
        +
        +    # An array of properties for the current language.  Each entry is the three consecutive values ( lineNumber, keyword, value ).
        +    my @properties;
        +
        +    if ($version = NaturalDocs::ConfigFile->Open($file))
        +        {
        +        # The format hasn't changed significantly since the file was introduced.
        +
        +        if ($status == ::FILE_CHANGED())
        +            {
        +            NaturalDocs::Project->ReparseEverything();
        +            NaturalDocs::SymbolTable->RebuildAllIndexes();  # Because the ignored prefixes could change.
        +            };
        +
        +        my ($keyword, $value, $comment);
        +
        +        while (($keyword, $value, $comment) = NaturalDocs::ConfigFile->GetLine())
        +            {
        +            $value .= $comment;
        +            $value =~ s/^ //;
        +
        +            # Process previous properties.
        +            if (($keyword eq 'language' || $keyword eq 'alter language') && scalar @properties)
        +                {
        +                if ($isMain && $properties[1] eq 'language')
        +                    {  push @mainLanguageNames, $properties[2];  };
        +
        +                $self->ProcessProperties(\@properties, $version, $tempExtensions, $tempShebangStrings);
        +                @properties = ( );
        +                };
        +
        +            if ($keyword =~ /^ignored? extensions?$/)
        +                {
        +                $value =~ tr/.*//d;
        +                my @extensions = split(/ /, lc($value));
        +
        +                foreach my $extension (@extensions)
        +                    {  delete $tempExtensions->{$extension};  };
        +                }
        +            else
        +                {
        +                push @properties, NaturalDocs::ConfigFile->LineNumber(), $keyword, $value;
        +                };
        +            };
        +
        +        if (scalar @properties)
        +            {
        +            if ($isMain && $properties[1] eq 'language')
        +                {  push @mainLanguageNames, $properties[2];  };
        +
        +            $self->ProcessProperties(\@properties, $version, $tempExtensions, $tempShebangStrings);
        +            };
        +        }
        +
        +    else # couldn't open file
        +        {
        +        if ($isMain)
        +            {  die "Couldn't open languages file " . $file . "\n";  };
        +        };
        +    };
        +
        +
        +#
        +#   Function: ProcessProperties
        +#
        +#   Processes an array of language properties from <Languages.txt>.
        +#
        +#   Parameters:
        +#
        +#       properties - An arrayref of properties where each entry is the three consecutive values ( lineNumber, keyword, value ).
        +#                         It must start with the Language or Alter Language property.
        +#       version - The <VersionInt> of the file.
        +#       tempExtensions - A hashref where the keys are all-lowercase extensions, and the values are arrayrefs of the all-lowercase
        +#                                 names of the languages that defined them, earliest first.  It will be changed by this function.
        +#       tempShebangStrings - A hashref where the keys are all-lowercase shebang strings, and the values are arrayrefs of the
        +#                                        all-lowercase names of the languages that defined them, earliest first.  It will be changed by this
        +#                                        function.
        +#
        +sub ProcessProperties #(properties, version, tempExtensions, tempShebangStrings)
        +    {
        +    my ($self, $properties, $version, $tempExtensions, $tempShebangStrings) = @_;
        +
        +
        +    # First validate the name and check whether the language has full support.
        +
        +    my $language;
        +    my $fullLanguageSupport;
        +    my ($lineNumber, $languageKeyword, $languageName) = @$properties[0..2];
        +    my $lcLanguageName = lc($languageName);
        +    my ($keyword, $value);
        +
        +    if ($languageKeyword eq 'alter language')
        +        {
        +        $language = $languages{$lcLanguageName};
        +
        +        if (!defined $language)
        +            {
        +            NaturalDocs::ConfigFile->AddError('The language ' . $languageName . ' is not defined.', $lineNumber);
        +            return;
        +            }
        +        else
        +            {
        +            $fullLanguageSupport = (!$language->isa('NaturalDocs::Languages::Simple'));
        +            };
        +        }
        +
        +    elsif ($languageKeyword eq 'language')
        +        {
        +        if (exists $languages{$lcLanguageName})
        +            {
        +            NaturalDocs::ConfigFile->AddError('The language ' . $value . ' is already defined.  Use "Alter Language" if you want '
        +                                                             . 'to override its settings.', $lineNumber);
        +            return;
        +            };
        +
        +        # Case is important with these two.
        +        if ($lcLanguageName eq 'shebang script')
        +            {  $languageName = 'Shebang Script';  }
        +        elsif ($lcLanguageName eq 'text file')
        +            {  $languageName = 'Text File';  };
        +
        +
        +        # Go through the properties looking for whether the language has basic or full support and which package to use to create
        +        # it.
        +
        +        for (my $i = 3; $i < scalar @$properties; $i += 3)
        +            {
        +            ($lineNumber, $keyword, $value) = @$properties[$i..$i+2];
        +
        +            if ($keyword eq 'full language support')
        +                {
        +                $fullLanguageSupport = 1;
        +
        +                eval
        +                    {
        +                    $language = $value->New($languageName);
        +                    };
        +                if ($::EVAL_ERROR)
        +                    {
        +                    NaturalDocs::ConfigFile->AddError('Could not create ' . $value . ' object.', $lineNumber);
        +                    return;
        +                    };
        +
        +                last;
        +                }
        +
        +            elsif ($keyword eq 'perl package')
        +                {
        +                eval
        +                    {
        +                    $language = $value->New($languageName);
        +                    };
        +                if ($::EVAL_ERROR)
        +                    {
        +                    NaturalDocs::ConfigFile->AddError('Could not create ' . $value . ' object.', $lineNumber);
        +                    return;
        +                    };
        +                };
        +            };
        +
        +        # If $language was not created by now, it's a generic basic support language.
        +        if (!defined $language)
        +            {  $language = NaturalDocs::Languages::Simple->New($languageName);  };
        +
        +        $languages{$lcLanguageName} = $language;
        +        }
        +
        +    else # not language or alter language
        +        {
        +        NaturalDocs::ConfigFile->AddError('You must start this line with "Language", "Alter Language", or "Ignore Extensions".',
        +                                                           $lineNumber);
        +        return;
        +        };
        +
        +
        +    # Decode the properties.
        +
        +    for (my $i = 3; $i < scalar @$properties; $i += 3)
        +        {
        +        ($lineNumber, $keyword, $value) = @$properties[$i..$i+2];
        +
        +        if ($keyword =~ /^(?:(add|replace) )?extensions?$/)
        +            {
        +            my $command = $1;
        +
        +
        +            # Remove old extensions.
        +
        +            if (defined $language->Extensions() && $command eq 'replace')
        +                {
        +                foreach my $extension (@{$language->Extensions()})
        +                    {
        +                    if (exists $tempExtensions->{$extension})
        +                        {
        +                        my $languages = $tempExtensions->{$extension};
        +                        my $i = 0;
        +
        +                        while ($i < scalar @$languages)
        +                            {
        +                            if ($languages->[$i] eq $lcLanguageName)
        +                                {  splice(@$languages, $i, 1);  }
        +                            else
        +                                {  $i++;  };
        +                            };
        +
        +                        if (!scalar @$languages)
        +                            {  delete $tempExtensions->{$extension};  };
        +                        };
        +                    };
        +                };
        +
        +
        +            # Add new extensions.
        +
        +            # Ignore stars and dots so people could use .ext or *.ext.
        +            $value =~ s/\*\.|\.//g;
        +
        +            my @extensions = split(/ /, lc($value));
        +
        +            foreach my $extension (@extensions)
        +                {
        +                if (!exists $tempExtensions->{$extension})
        +                    {  $tempExtensions->{$extension} = [ ];  };
        +
        +                push @{$tempExtensions->{$extension}}, $lcLanguageName;
        +                };
        +
        +
        +            # Set the extensions for the language object.
        +
        +            if (defined $language->Extensions())
        +                {
        +                if ($command eq 'add')
        +                    {  push @extensions, @{$language->Extensions()};  }
        +                elsif (!$command)
        +                    {
        +                    NaturalDocs::ConfigFile->AddError('You need to specify whether you are adding to or replacing the list of extensions.',
        +                                                                       $lineNumber);
        +                    };
        +                };
        +
        +            $language->SetExtensions(\@extensions);
        +            }
        +
        +        elsif ($keyword =~ /^(?:(add|replace) )?shebang strings?$/)
        +            {
        +            my $command = $1;
        +
        +
        +            # Remove old strings.
        +
        +            if (defined $language->ShebangStrings() && $command eq 'replace')
        +                {
        +                foreach my $shebangString (@{$language->ShebangStrings()})
        +                    {
        +                    if (exists $tempShebangStrings->{$shebangString})
        +                        {
        +                        my $languages = $tempShebangStrings->{$shebangString};
        +                        my $i = 0;
        +
        +                        while ($i < scalar @$languages)
        +                            {
        +                            if ($languages->[$i] eq $lcLanguageName)
        +                                {  splice(@$languages, $i, 1);  }
        +                            else
        +                                {  $i++;  };
        +                            };
        +
        +                        if (!scalar @$languages)
        +                            {  delete $tempShebangStrings->{$shebangString};  };
        +                        };
        +                    };
        +                };
        +
        +
        +            # Add new strings.
        +
        +            my @shebangStrings = split(/ /, lc($value));
        +
        +            foreach my $shebangString (@shebangStrings)
        +                {
        +                if (!exists $tempShebangStrings->{$shebangString})
        +                    {  $tempShebangStrings->{$shebangString} = [ ];  };
        +
        +                push @{$tempShebangStrings->{$shebangString}}, $lcLanguageName;
        +                };
        +
        +
        +            # Set the strings for the language object.
        +
        +            if (defined $language->ShebangStrings())
        +                {
        +                if ($command eq 'add')
        +                    {  push @shebangStrings, @{$language->ShebangStrings()};  }
        +                elsif (!$command)
        +                    {
        +                    NaturalDocs::ConfigFile->AddError('You need to specify whether you are adding to or replacing the list of shebang '
        +                                                                     . 'strings.', $lineNumber);
        +                    };
        +                };
        +
        +            $language->SetShebangStrings(\@shebangStrings);
        +            }
        +
        +        elsif ($keyword eq 'package separator')
        +            {
        +            if ($fullLanguageSupport)
        +                {
        +                # Prior to 1.32, package separator was used with full language support too.  Accept it without complaining, even though
        +                # we ignore it.
        +                if ($version >= NaturalDocs::Version->FromString('1.32'))
        +                    {
        +                    NaturalDocs::ConfigFile->AddError('You cannot define this property when using full language support.', $lineNumber);
        +                    };
        +                }
        +            else
        +                {  $language->SetPackageSeparator($value);  };
        +            }
        +
        +        elsif ($keyword =~ /^(?:(add|replace) )?ignored? (?:(.+) )?prefix(?:es)? in index$/)
        +            {
        +            my ($command, $topicName) = ($1, $2);
        +            my $topicType;
        +
        +            if ($topicName)
        +                {
        +                if (!( ($topicType, undef) = NaturalDocs::Topics->NameInfo($topicName) ))
        +                    {
        +                    NaturalDocs::ConfigFile->AddError($topicName . ' is not a defined topic type.', $lineNumber);
        +                    };
        +                }
        +            else
        +                {  $topicType = ::TOPIC_GENERAL();  };
        +
        +            if ($topicType)
        +                {
        +                my @prefixes;
        +
        +                if (defined $language->IgnoredPrefixesFor($topicType))
        +                    {
        +                    if ($command eq 'add')
        +                        {  @prefixes = @{$language->IgnoredPrefixesFor($topicType)};  }
        +                    elsif (!$command)
        +                        {
        +                        NaturalDocs::ConfigFile->AddError('You need to specify whether you are adding to or replacing the list of '
        +                                                                         . 'ignored prefixes.', $lineNumber);
        +                        };
        +                    };
        +
        +                push @prefixes, split(/ /, $value);
        +                $language->SetIgnoredPrefixesFor($topicType, \@prefixes);
        +                };
        +            }
        +
        +        elsif ($keyword eq 'full language support' || $keyword eq 'perl package')
        +            {
        +            if ($languageKeyword eq 'alter language')
        +                {
        +                NaturalDocs::ConfigFile->AddError('You cannot use ' . $keyword . ' with Alter Language.', $lineNumber);
        +                };
        +            # else ignore it.
        +            }
        +
        +        elsif ($keyword =~ /^line comments?$/)
        +            {
        +            if ($fullLanguageSupport)
        +                {
        +                NaturalDocs::ConfigFile->AddError('You cannot define this property when using full language support.', $lineNumber);
        +                }
        +            else
        +                {
        +                my @symbols = split(/ /, $value);
        +                $language->SetLineCommentSymbols(\@symbols);
        +                };
        +            }
        +
        +        elsif ($keyword =~ /^block comments?$/)
        +            {
        +            if ($fullLanguageSupport)
        +                {
        +                NaturalDocs::ConfigFile->AddError('You cannot define this property when using full language support.', $lineNumber);
        +                }
        +            else
        +                {
        +                my @symbols = split(/ /, $value);
        +
        +                if ((scalar @symbols) % 2 == 0)
        +                    {  $language->SetBlockCommentSymbols(\@symbols);  }
        +                else
        +                    {  NaturalDocs::ConfigFile->AddError('Block comment symbols must appear in pairs.', $lineNumber);  };
        +                };
        +            }
        +
        +        elsif ($keyword =~ /^(?:(.+) )?prototype enders?$/)
        +            {
        +            if ($fullLanguageSupport)
        +                {
        +                NaturalDocs::ConfigFile->AddError('You cannot define this property when using full language support.', $lineNumber);
        +                }
        +            else
        +                {
        +                my $topicName = $1;
        +                my $topicType;
        +
        +                if ($topicName)
        +                    {
        +                    if (!( ($topicType, undef) = NaturalDocs::Topics->NameInfo($topicName) ))
        +                        {
        +                        NaturalDocs::ConfigFile->AddError($topicName . ' is not a defined topic type.', $lineNumber);
        +                        };
        +                    }
        +                else
        +                    {  $topicType = ::TOPIC_GENERAL();  };
        +
        +                if ($topicType)
        +                    {
        +                    $value =~ s/\\n/\n/g;
        +                    my @symbols = split(/ /, $value);
        +                    $language->SetPrototypeEndersFor($topicType, \@symbols);
        +                    };
        +                };
        +            }
        +
        +        elsif ($keyword eq 'line extender')
        +            {
        +            if ($fullLanguageSupport)
        +                {
        +                NaturalDocs::ConfigFile->AddError('You cannot define this property when using full language support.', $lineNumber);
        +                }
        +            else
        +                {
        +                $language->SetLineExtender($value);
        +                };
        +            }
        +
        +        elsif ($keyword eq 'enum values')
        +            {
        +            if ($fullLanguageSupport)
        +                {
        +                NaturalDocs::ConfigFile->AddError('You cannot define this property when using full language support.', $lineNumber);
        +                }
        +            else
        +                {
        +                $value = lc($value);
        +                my $constant;
        +
        +                if ($value eq 'global')
        +                    {  $constant = ::ENUM_GLOBAL();  }
        +                elsif ($value eq 'under type')
        +                    {  $constant = ::ENUM_UNDER_TYPE();  }
        +                elsif ($value eq 'under parent')
        +                    {  $constant = ::ENUM_UNDER_PARENT();  };
        +
        +                if (defined $constant)
        +                    {  $language->SetEnumValues($constant);  }
        +                else
        +                    {
        +                    NaturalDocs::ConfigFile->AddError('Enum Values must be "Global", "Under Type", or "Under Parent".', $lineNumber);
        +                    };
        +                };
        +            }
        +
        +        else
        +            {
        +            NaturalDocs::ConfigFile->AddError($keyword . ' is not a valid keyword.', $lineNumber);
        +            };
        +        };
        +    };
        +
        +
        +#
        +#   Function: Save
        +#
        +#   Saves the main and user versions of <Languages.txt>.
        +#
        +sub Save
        +    {
        +    my $self = shift;
        +
        +    $self->SaveFile(1); # Main
        +    $self->SaveFile(0); # User
        +    };
        +
        +
        +#
        +#   Function: SaveFile
        +#
        +#   Saves a particular version of <Topics.txt>.
        +#
        +#   Parameters:
        +#
        +#       isMain - Whether the file is the main file or not.
        +#
        +sub SaveFile #(isMain)
        +    {
        +    my ($self, $isMain) = @_;
        +
        +    my $file;
        +
        +    if ($isMain)
        +        {
        +        if (NaturalDocs::Project->MainConfigFileStatus('Languages.txt') == ::FILE_SAME())
        +            {  return;  };
        +        $file = NaturalDocs::Project->MainConfigFile('Languages.txt');
        +        }
        +    else
        +        {
        +        # Have to check the main too because this file lists the languages defined there.
        +        if (NaturalDocs::Project->UserConfigFileStatus('Languages.txt') == ::FILE_SAME() &&
        +            NaturalDocs::Project->MainConfigFileStatus('Languages.txt') == ::FILE_SAME())
        +            {  return;  };
        +        $file = NaturalDocs::Project->UserConfigFile('Languages.txt');
        +        };
        +
        +
        +    # Array of segments, with each being groups of three consecutive entries.  The first is the keyword ('language' or
        +    # 'alter language'), the second is the value, and the third is a hashref of all the properties.
        +    # - For properties that can accept a topic type, the property values are hashrefs mapping topic types to the values.
        +    # - For properties that can accept 'add' or 'replace', there is an additional property ending in 'command' that stores it.
        +    # - For properties that can accept both, the 'command' thing is applied to the topic types rather than the properties.
        +    my @segments;
        +
        +    my @ignoredExtensions;
        +
        +    my $currentProperties;
        +    my $version;
        +
        +    if ($version = NaturalDocs::ConfigFile->Open($file))
        +        {
        +        # We can assume the file is valid.
        +
        +        while (my ($keyword, $value, $comment) = NaturalDocs::ConfigFile->GetLine())
        +            {
        +            $value .= $comment;
        +            $value =~ s/^ //;
        +
        +            if ($keyword eq 'language')
        +                {
        +                $currentProperties = { };
        +
        +                # Case is important with these two.
        +                if (lc($value) eq 'shebang script')
        +                    {  $value = 'Shebang Script';  }
        +                elsif (lc($value) eq 'text file')
        +                    {  $value = 'Text File';  };
        +
        +                push @segments, 'language', $value, $currentProperties;
        +                }
        +
        +            elsif ($keyword eq 'alter language')
        +                {
        +                $currentProperties = { };
        +                push @segments, 'alter language', $languages{lc($value)}->Name(), $currentProperties;
        +                }
        +
        +            elsif ($keyword =~ /^ignored? extensions?$/)
        +                {
        +                $value =~ tr/*.//d;
        +                push @ignoredExtensions, split(/ /, $value);
        +                }
        +
        +            elsif ($keyword eq 'package separator' || $keyword eq 'full language support' || $keyword eq 'perl package' ||
        +                    $keyword eq 'line extender' || $keyword eq 'enum values')
        +                {
        +                $currentProperties->{$keyword} = $value;
        +                }
        +
        +            elsif ($keyword =~ /^line comments?$/)
        +                {
        +                $currentProperties->{'line comments'} = $value;
        +                }
        +            elsif ($keyword =~ /^block comments?$/)
        +                {
        +                $currentProperties->{'block comments'} = $value;
        +                }
        +
        +            elsif ($keyword =~ /^(?:(add|replace) )?extensions?$/)
        +                {
        +                my $command = $1;
        +
        +                if ($command eq 'add' && exists $currentProperties->{'extensions'})
        +                    {  $currentProperties->{'extensions'} .= ' ' . $value;  }
        +                else
        +                    {
        +                    $currentProperties->{'extensions'} = $value;
        +                    $currentProperties->{'extensions command'} = $command;
        +                    };
        +                }
        +
        +            elsif ($keyword =~ /^(?:(add|replace) )?shebang strings?$/)
        +                {
        +                my $command = $1;
        +
        +                if ($command eq 'add' && exists $currentProperties->{'shebang strings'})
        +                    {  $currentProperties->{'shebang strings'} .= ' ' . $value;  }
        +                else
        +                    {
        +                    $currentProperties->{'shebang strings'} = $value;
        +                    $currentProperties->{'shebang strings command'} = $command;
        +                    };
        +                }
        +
        +            elsif ($keyword =~ /^(?:(.+) )?prototype enders?$/)
        +                {
        +                my $topicName = $1;
        +                my $topicType;
        +
        +                if ($topicName)
        +                    {  ($topicType, undef) = NaturalDocs::Topics->NameInfo($topicName);  }
        +                else
        +                    {  $topicType = ::TOPIC_GENERAL();  };
        +
        +                my $currentTypeProperties = $currentProperties->{'prototype enders'};
        +
        +                if (!defined $currentTypeProperties)
        +                    {
        +                    $currentTypeProperties = { };
        +                    $currentProperties->{'prototype enders'} = $currentTypeProperties;
        +                    };
        +
        +                $currentTypeProperties->{$topicType} = $value;
        +                }
        +
        +            elsif ($keyword =~ /^(?:(add|replace) )?ignored? (?:(.+) )?prefix(?:es)? in index$/)
        +                {
        +                my ($command, $topicName) = ($1, $2);
        +                my $topicType;
        +
        +                if ($topicName)
        +                    {  ($topicType, undef) = NaturalDocs::Topics->NameInfo($topicName);  }
        +                else
        +                    {  $topicType = ::TOPIC_GENERAL();  };
        +
        +                my $currentTypeProperties = $currentProperties->{'ignored prefixes in index'};
        +
        +                if (!defined $currentTypeProperties)
        +                    {
        +                    $currentTypeProperties = { };
        +                    $currentProperties->{'ignored prefixes in index'} = $currentTypeProperties;
        +                    };
        +
        +                if ($command eq 'add' && exists $currentTypeProperties->{$topicType})
        +                    {  $currentTypeProperties->{$topicType} .= ' ' . $value;  }
        +                else
        +                    {
        +                    $currentTypeProperties->{$topicType} = $value;
        +                    $currentTypeProperties->{$topicType . ' command'} = $command;
        +                    };
        +                };
        +            };
        +
        +        NaturalDocs::ConfigFile->Close();
        +        };
        +
        +
        +    if (!open(FH_LANGUAGES, '>' . $file))
        +        {
        +        # The main file may be on a shared volume or some other place the user doesn't have write access to.  Since this is only to
        +        # reformat the file, we can ignore the failure.
        +        if ($isMain)
        +            {  return;  }
        +        else
        +            {  die "Couldn't save " . $file;  };
        +        };
        +
        +    binmode(FH_LANGUAGES, ':encoding(UTF-8)');
        +    print FH_LANGUAGES 'Format: ' . NaturalDocs::Settings->TextAppVersion() . "\n\n";
        +
        +    # Remember the 80 character limit.
        +
        +    if ($isMain)
        +        {
        +        print FH_LANGUAGES
        +        "# This is the main Natural Docs languages file.  If you change anything here,\n"
        +        . "# it will apply to EVERY PROJECT you use Natural Docs on.  If you'd like to\n"
        +        . "# change something for just one project, edit the Languages.txt in its project\n"
        +        . "# directory instead.\n";
        +        }
        +    else
        +        {
        +        print FH_LANGUAGES
        +        "# This is the Natural Docs languages file for this project.  If you change\n"
        +        . "# anything here, it will apply to THIS PROJECT ONLY.  If you'd like to change\n"
        +        . "# something for all your projects, edit the Languages.txt in Natural Docs'\n"
        +        . "# Config directory instead.\n\n\n";
        +
        +        if (scalar @ignoredExtensions == 1)
        +            {
        +            print FH_LANGUAGES
        +            'Ignore Extension: ' . $ignoredExtensions[0] . "\n";
        +            }
        +        elsif (scalar @ignoredExtensions)
        +            {
        +            print FH_LANGUAGES
        +            'Ignore Extensions: ' . join(' ', @ignoredExtensions) . "\n";
        +            }
        +        else
        +            {
        +            print FH_LANGUAGES
        +            "# You can prevent certain file extensions from being scanned like this:\n"
        +            . "# Ignore Extensions: [extension] [extension] ...\n"
        +            };
        +        };
        +
        +    print FH_LANGUAGES
        +    "\n\n"
        +    . "#-------------------------------------------------------------------------------\n"
        +    . "# SYNTAX:\n"
        +    . "#\n"
        +    . "# Unlike other Natural Docs configuration files, in this file all comments\n"
        +    . "# MUST be alone on a line.  Some languages deal with the # character, so you\n"
        +    . "# cannot put comments on the same line as content.\n"
        +    . "#\n"
        +    . "# Also, all lists are separated with spaces, not commas, again because some\n"
        +    . "# languages may need to use them.\n"
        +    . "#\n";
        +
        +    if ($isMain)
        +        {
        +        print FH_LANGUAGES
        +        "# Language: [name]\n"
        +        . "#    Defines a new language.  Its name can use any characters.\n"
        +        . "#\n";
        +        }
        +    else
        +        {
        +        print FH_LANGUAGES
        +        "# Language: [name]\n"
        +        . "# Alter Language: [name]\n"
        +        . "#    Defines a new language or alters an existing one.  Its name can use any\n"
        +        . "#    characters.  If any of the properties below have an add/replace form, you\n"
        +        . "#    must use that when using Alter Language.\n"
        +        . "#\n";
        +        };
        +
        +    print FH_LANGUAGES
        +    "#    The language Shebang Script is special.  It's entry is only used for\n"
        +    . "#    extensions, and files with those extensions have their shebang (#!) lines\n"
        +    . "#    read to determine the real language of the file.  Extensionless files are\n"
        +    . "#    always treated this way.\n"
        +    . "#\n"
        +    . "#    The language Text File is also special.  It's treated as one big comment\n"
        +    . "#    so you can put Natural Docs content in them without special symbols.  Also,\n"
        +    . "#    if you don't specify a package separator, ignored prefixes, or enum value\n"
        +    . "#    behavior, it will copy those settings from the language that is used most\n"
        +    . "#    in the source tree.\n"
        +    . "#\n"
        +    . "# Extensions: [extension] [extension] ...\n";
        +
        +    if ($isMain)
        +        {
        +        print FH_LANGUAGES
        +        "#    Defines the file extensions of the language's source files.  You can use *\n"
        +        . "#    to mean any undefined extension.\n"
        +        . "#\n"
        +        . "# Shebang Strings: [string] [string] ...\n"
        +        . "#    Defines a list of strings that can appear in the shebang (#!) line to\n"
        +        . "#    designate that it's part of the language.\n"
        +        . "#\n";
        +        }
        +    else
        +        {
        +        print FH_LANGUAGES
        +        "# [Add/Replace] Extensions: [extension] [extension] ...\n"
        +        . "#    Defines the file extensions of the language's source files.  You can\n"
        +        . "#    redefine extensions found in the main languages file.  You can use * to\n"
        +        . "#    mean any undefined extension.\n"
        +        . "#\n"
        +        . "# Shebang Strings: [string] [string] ...\n"
        +        . "# [Add/Replace] Shebang Strings: [string] [string] ...\n"
        +        . "#    Defines a list of strings that can appear in the shebang (#!) line to\n"
        +        . "#    designate that it's part of the language.  You can redefine strings found\n"
        +        . "#    in the main languages file.\n"
        +        . "#\n";
        +        };
        +
        +    print FH_LANGUAGES
        +    "# Ignore Prefixes in Index: [prefix] [prefix] ...\n"
        +    . (!$isMain ? "# [Add/Replace] Ignored Prefixes in Index: [prefix] [prefix] ...\n#\n" : '')
        +    . "# Ignore [Topic Type] Prefixes in Index: [prefix] [prefix] ...\n"
        +    . (!$isMain ? "# [Add/Replace] Ignored [Topic Type] Prefixes in Index: [prefix] [prefix] ...\n" : '')
        +    . "#    Specifies prefixes that should be ignored when sorting symbols in an\n"
        +    . "#    index.  Can be specified in general or for a specific topic type.\n"
        +    . "#\n"
        +    . "#------------------------------------------------------------------------------\n"
        +    . "# For basic language support only:\n"
        +    . "#\n"
        +    . "# Line Comments: [symbol] [symbol] ...\n"
        +    . "#    Defines a space-separated list of symbols that are used for line comments,\n"
        +    . "#    if any.\n"
        +    . "#\n"
        +    . "# Block Comments: [opening sym] [closing sym] [opening sym] [closing sym] ...\n"
        +    . "#    Defines a space-separated list of symbol pairs that are used for block\n"
        +    . "#    comments, if any.\n"
        +    . "#\n"
        +    . "# Package Separator: [symbol]\n"
        +    . "#    Defines the default package separator symbol.  The default is a dot.\n"
        +    . "#\n"
        +    . "# [Topic Type] Prototype Enders: [symbol] [symbol] ...\n"
        +    . "#    When defined, Natural Docs will attempt to get a prototype from the code\n"
        +    . "#    immediately following the topic type.  It stops when it reaches one of\n"
        +    . "#    these symbols.  Use \\n for line breaks.\n"
        +    . "#\n"
        +    . "# Line Extender: [symbol]\n"
        +    . "#    Defines the symbol that allows a prototype to span multiple lines if\n"
        +    . "#    normally a line break would end it.\n"
        +    . "#\n"
        +    . "# Enum Values: [global|under type|under parent]\n"
        +    . "#    Defines how enum values are referenced.  The default is global.\n"
        +    . "#    global       - Values are always global, referenced as 'value'.\n"
        +    . "#    under type   - Values are under the enum type, referenced as\n"
        +    . "#               'package.enum.value'.\n"
        +    . "#    under parent - Values are under the enum's parent, referenced as\n"
        +    . "#               'package.value'.\n"
        +    . "#\n"
        +    . "# Perl Package: [perl package]\n"
        +    . "#    Specifies the Perl package used to fine-tune the language behavior in ways\n"
        +    . "#    too complex to do in this file.\n"
        +    . "#\n"
        +    . "#------------------------------------------------------------------------------\n"
        +    . "# For full language support only:\n"
        +    . "#\n"
        +    . "# Full Language Support: [perl package]\n"
        +    . "#    Specifies the Perl package that has the parsing routines necessary for full\n"
        +    . "#    language support.\n"
        +    . "#\n"
        +    . "#-------------------------------------------------------------------------------\n\n";
        +
        +    if ($isMain)
        +        {
        +        print FH_LANGUAGES
        +        "# The following languages MUST be defined in this file:\n"
        +        . "#\n"
        +        . "#    Text File, Shebang Script\n";
        +        }
        +    else
        +        {
        +        print FH_LANGUAGES
        +        "# The following languages are defined in the main file, if you'd like to alter\n"
        +        . "# them:\n"
        +        . "#\n"
        +        . Text::Wrap::wrap('#    ', '#    ', join(', ', @mainLanguageNames)) . "\n";
        +        };
        +
        +    print FH_LANGUAGES "\n"
        +    . "# If you add a language that you think would be useful to other developers\n"
        +    . "# and should be included in Natural Docs by default, please e-mail it to\n"
        +    . "# languages [at] naturaldocs [dot] org.\n";
        +
        +    my @topicTypeOrder = ( ::TOPIC_GENERAL(), ::TOPIC_CLASS(), ::TOPIC_FUNCTION(), ::TOPIC_VARIABLE(),
        +                                         ::TOPIC_PROPERTY(), ::TOPIC_TYPE(), ::TOPIC_CONSTANT() );
        +
        +    for (my $i = 0; $i < scalar @segments; $i += 3)
        +        {
        +        my ($keyword, $name, $properties) = @segments[$i..$i+2];
        +
        +        print FH_LANGUAGES "\n\n";
        +
        +        if ($keyword eq 'language')
        +            {  print FH_LANGUAGES 'Language: ' . $name . "\n\n";  }
        +        else
        +            {  print FH_LANGUAGES 'Alter Language: ' . $name . "\n\n";  };
        +
        +        if (exists $properties->{'extensions'})
        +            {
        +            print FH_LANGUAGES '   ';
        +
        +            if ($properties->{'extensions command'})
        +                {  print FH_LANGUAGES ucfirst($properties->{'extensions command'}) . ' ';  };
        +
        +            my @extensions = split(/ /, $properties->{'extensions'}, 2);
        +
        +            if (scalar @extensions == 1)
        +                {  print FH_LANGUAGES 'Extension: ';  }
        +            else
        +                {  print FH_LANGUAGES 'Extensions: ';  };
        +
        +            print FH_LANGUAGES lc($properties->{'extensions'}) . "\n";
        +            };
        +
        +        if (exists $properties->{'shebang strings'})
        +            {
        +            print FH_LANGUAGES '   ';
        +
        +            if ($properties->{'shebang strings command'})
        +                {  print FH_LANGUAGES ucfirst($properties->{'shebang strings command'}) . ' ';  };
        +
        +            my @shebangStrings = split(/ /, $properties->{'shebang strings'}, 2);
        +
        +            if (scalar @shebangStrings == 1)
        +                {  print FH_LANGUAGES 'Shebang String: ';  }
        +            else
        +                {  print FH_LANGUAGES 'Shebang Strings: ';  };
        +
        +            print FH_LANGUAGES lc($properties->{'shebang strings'}) . "\n";
        +            };
        +
        +        if (exists $properties->{'ignored prefixes in index'})
        +            {
        +            my $topicTypePrefixes = $properties->{'ignored prefixes in index'};
        +
        +            my %usedTopicTypes;
        +            my @topicTypes = ( @topicTypeOrder, keys %$topicTypePrefixes );
        +
        +            foreach my $topicType (@topicTypes)
        +                {
        +                if ($topicType !~ / command$/ &&
        +                    exists $topicTypePrefixes->{$topicType} &&
        +                    !exists $usedTopicTypes{$topicType})
        +                    {
        +                    print FH_LANGUAGES '   ';
        +
        +                    if ($topicTypePrefixes->{$topicType . ' command'})
        +                        {  print FH_LANGUAGES ucfirst($topicTypePrefixes->{$topicType . ' command'}) . ' Ignored ';  }
        +                    else
        +                        {  print FH_LANGUAGES 'Ignore ';  };
        +
        +                    if ($topicType ne ::TOPIC_GENERAL())
        +                        {  print FH_LANGUAGES NaturalDocs::Topics->TypeInfo($topicType)->Name() . ' ';  };
        +
        +                    my @prefixes = split(/ /, $topicTypePrefixes->{$topicType}, 2);
        +
        +                    if (scalar @prefixes == 1)
        +                        {  print FH_LANGUAGES 'Prefix in Index: ';  }
        +                    else
        +                        {  print FH_LANGUAGES 'Prefixes in Index: ';  };
        +
        +                    print FH_LANGUAGES $topicTypePrefixes->{$topicType} . "\n";
        +
        +                    $usedTopicTypes{$topicType} = 1;
        +                    };
        +                };
        +            };
        +
        +        if (exists $properties->{'line comments'})
        +            {
        +            my @comments = split(/ /, $properties->{'line comments'}, 2);
        +
        +            if (scalar @comments == 1)
        +                {  print FH_LANGUAGES '   Line Comment: ';  }
        +            else
        +                {  print FH_LANGUAGES '   Line Comments: ';  };
        +
        +            print FH_LANGUAGES $properties->{'line comments'} . "\n";
        +            };
        +
        +        if (exists $properties->{'block comments'})
        +            {
        +            my @comments = split(/ /, $properties->{'block comments'}, 3);
        +
        +            if (scalar @comments == 2)
        +                {  print FH_LANGUAGES '   Block Comment: ';  }
        +            else
        +                {  print FH_LANGUAGES '   Block Comments: ';  };
        +
        +            print FH_LANGUAGES $properties->{'block comments'} . "\n";
        +            };
        +
        +        if (exists $properties->{'package separator'})
        +            {
        +            # Prior to 1.32, Package Separator was allowed for full language support.  Ignore it when reformatting.
        +            if ($version >= NaturalDocs::Version->FromString('1.32') || !exists $properties->{'full language support'})
        +                {  print FH_LANGUAGES '   Package Separator: ' . $properties->{'package separator'} . "\n";  };
        +            };
        +
        +        if (exists $properties->{'enum values'})
        +            {
        +            print FH_LANGUAGES '   Enum Values: ' . ucfirst(lc($properties->{'enum values'})) . "\n";
        +            };
        +
        +        if (exists $properties->{'prototype enders'})
        +            {
        +            my $topicTypeEnders = $properties->{'prototype enders'};
        +
        +            my %usedTopicTypes;
        +            my @topicTypes = ( @topicTypeOrder, keys %$topicTypeEnders );
        +
        +            foreach my $topicType (@topicTypes)
        +                {
        +                if ($topicType !~ / command$/ &&
        +                    exists $topicTypeEnders->{$topicType} &&
        +                    !exists $usedTopicTypes{$topicType})
        +                    {
        +                    print FH_LANGUAGES '   ';
        +
        +                    if ($topicType ne ::TOPIC_GENERAL())
        +                        {  print FH_LANGUAGES NaturalDocs::Topics->TypeInfo($topicType)->Name() . ' ';  };
        +
        +                    my @enders = split(/ /, $topicTypeEnders->{$topicType}, 2);
        +
        +                    if (scalar @enders == 1)
        +                        {  print FH_LANGUAGES 'Prototype Ender: ';  }
        +                    else
        +                        {  print FH_LANGUAGES 'Prototype Enders: ';  };
        +
        +                    print FH_LANGUAGES $topicTypeEnders->{$topicType} . "\n";
        +
        +                    $usedTopicTypes{$topicType} = 1;
        +                    };
        +                };
        +            };
        +
        +        if (exists $properties->{'line extender'})
        +            {
        +            print FH_LANGUAGES '   Line Extender: ' . $properties->{'line extender'} . "\n";
        +            };
        +
        +        if (exists $properties->{'perl package'})
        +            {
        +            print FH_LANGUAGES '   Perl Package: ' . $properties->{'perl package'} . "\n";
        +            };
        +
        +        if (exists $properties->{'full language support'})
        +            {
        +            print FH_LANGUAGES '   Full Language Support: ' . $properties->{'full language support'} . "\n";
        +            };
        +        };
        +
        +    close(FH_LANGUAGES);
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Functions
        +
        +
        +#
        +#   Function: LanguageOf
        +#
        +#   Returns the language of the passed source file.
        +#
        +#   Parameters:
        +#
        +#       sourceFile - The source <FileName> to get the language of.
        +#
        +#   Returns:
        +#
        +#       A <NaturalDocs::Languages::Base>-derived object for the passed file, or undef if the file is not a recognized language.
        +#
        +sub LanguageOf #(sourceFile)
        +    {
        +    my ($self, $sourceFile) = @_;
        +
        +    my $extension = NaturalDocs::File->ExtensionOf($sourceFile);
        +    if (defined $extension)
        +        {  $extension = lc($extension);  };
        +
        +    my $languageName;
        +
        +    if (!defined $extension)
        +        {  $languageName = 'shebang script';  }
        +    else
        +        {  $languageName = $extensions{$extension};  };
        +
        +    if (!defined $languageName)
        +        {  $languageName = $extensions{'*'};  };
        +
        +    if (defined $languageName)
        +        {
        +        if ($languageName eq 'shebang script')
        +            {
        +            if (exists $shebangFiles{$sourceFile})
        +                {
        +                if (defined $shebangFiles{$sourceFile})
        +                    {  return $languages{$shebangFiles{$sourceFile}};  }
        +                else
        +                    {  return undef;  };
        +                }
        +
        +            else # (!exists $shebangFiles{$sourceFile})
        +                {
        +                my $shebangLine;
        +
        +                if (open(SOURCEFILEHANDLE, '<' . $sourceFile))
        +                   {
        +					# Run it through an eval since extensionless files may not be text files at all.
        +                    eval
        +                        {
        +                        my $lineReader = NaturalDocs::LineReader->New(\*SOURCEFILEHANDLE);
        +                        $shebangLine = $lineReader->Get();
        +
        +                        if (substr($shebangLine, 0, 2) ne '#!')
        +                            {  $shebangLine = undef;  };
        +
        +                        close (SOURCEFILEHANDLE);
        +                       }
        +                   }
        +               elsif (defined $extension)
        +                   {  die 'Could not open ' . $sourceFile;  }
        +	            # Ignore extensionless files that can't be opened.  They may be system files.
        +
        +                if (!defined $shebangLine)
        +                    {
        +                    $shebangFiles{$sourceFile} = undef;
        +                    return undef;
        +                    }
        +                else
        +                    {
        +                    $shebangLine = lc($shebangLine);
        +
        +                    foreach my $shebangString (keys %shebangStrings)
        +                        {
        +                        if (index($shebangLine, $shebangString) != -1)
        +                            {
        +                            $shebangFiles{$sourceFile} = $shebangStrings{$shebangString};
        +                            return $languages{$shebangStrings{$shebangString}};
        +                            };
        +                        };
        +
        +                    $shebangFiles{$sourceFile} = undef;
        +                    return undef;
        +                    };
        +                };
        +            }
        +
        +        else # language name ne 'shebang script'
        +            {  return $languages{$languageName};  };
        +        }
        +    else # !defined $language
        +        {
        +        return undef;
        +        };
        +    };
        +
        +
        +#
        +#   Function: OnMostUsedLanguageKnown
        +#
        +#   Called when the most used language is known.
        +#
        +sub OnMostUsedLanguageKnown
        +    {
        +    my $self = shift;
        +
        +    my $language = $languages{lc( NaturalDocs::Project->MostUsedLanguage() )};
        +
        +    if ($language)
        +        {
        +        if (!$languages{'text file'}->HasIgnoredPrefixes())
        +            {  $languages{'text file'}->CopyIgnoredPrefixesOf($language);  };
        +        if (!$languages{'text file'}->PackageSeparatorWasSet())
        +            {  $languages{'text file'}->SetPackageSeparator($language->PackageSeparator());  };
        +        if (!$languages{'text file'}->EnumValuesWasSet())
        +            {  $languages{'text file'}->SetEnumValues($language->EnumValues());  };
        +        };
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/ActionScript.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/ActionScript.pm
        new file mode 100755
        index 0000000..b24ba9d
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/ActionScript.pm
        @@ -0,0 +1,1487 @@
        +###############################################################################
        +#
        +#   Class: NaturalDocs::Languages::ActionScript
        +#
        +###############################################################################
        +#
        +#   A subclass to handle the language variations of Flash ActionScript.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::Languages::ActionScript;
        +
        +use base 'NaturalDocs::Languages::Advanced';
        +
        +
        +################################################################################
        +# Group: Constants and Types
        +
        +
        +#
        +#   Constants: XML Tag Type
        +#
        +#   XML_OPENING_TAG - The tag is an opening one, such as <tag>.
        +#   XML_CLOSING_TAG - The tag is a closing one, such as </tag>.
        +#   XML_SELF_CONTAINED_TAG - The tag is self contained, such as <tag />.
        +#
        +use constant XML_OPENING_TAG => 1;
        +use constant XML_CLOSING_TAG => 2;
        +use constant XML_SELF_CONTAINED_TAG => 3;
        +
        +
        +################################################################################
        +# Group: Package Variables
        +
        +#
        +#   hash: classModifiers
        +#   An existence hash of all the acceptable class modifiers.  The keys are in all lowercase.
        +#
        +my %classModifiers = ( 'dynamic' => 1,
        +                                   'intrinsic' => 1,
        +                                   'final' => 1,
        +                                   'internal' => 1,
        +                                   'public' => 1 );
        +
        +#
        +#   hash: memberModifiers
        +#   An existence hash of all the acceptable class member modifiers.  The keys are in all lowercase.
        +#
        +my %memberModifiers = ( 'public' => 1,
        +                                        'private' => 1,
        +                                        'protected' => 1,
        +                                        'static' => 1,
        +                                        'internal' => 1,
        +                                        'override' => 1 );
        +
        +
        +#
        +#   hash: declarationEnders
        +#   An existence hash of all the tokens that can end a declaration.  This is important because statements don't require a semicolon
        +#   to end.  The keys are in all lowercase.
        +#
        +my %declarationEnders = ( ';' => 1,
        +                                        '}' => 1,
        +                                        '{' => 1,
        +                                        'public' => 1,
        +                                        'private' => 1,
        +                                        'protected' => 1,
        +                                        'static' => 1,
        +                                        'internal' => 1,
        +                                        'dynamic' => 1,
        +                                        'intrinsic' => 1,
        +                                        'final' => 1,
        +                                        'override' => 1,
        +                                        'class' => 1,
        +                                        'interface' => 1,
        +                                        'var' => 1,
        +                                        'function' => 1,
        +                                        'const' => 1,
        +                                        'namespace' => 1,
        +                                        'import' => 1 );
        +
        +
        +#
        +#   var: isEscaped
        +#   Whether the current file being parsed uses escapement.
        +#
        +my $isEscaped;
        +
        +
        +
        +################################################################################
        +# Group: Interface Functions
        +
        +
        +#
        +#   Function: PackageSeparator
        +#   Returns the package separator symbol.
        +#
        +sub PackageSeparator
        +    {  return '.';  };
        +
        +
        +#
        +#   Function: EnumValues
        +#   Returns the <EnumValuesType> that describes how the language handles enums.
        +#
        +sub EnumValues
        +    {  return ::ENUM_GLOBAL();  };
        +
        +
        +#
        +#   Function: ParseParameterLine
        +#   Parses a prototype parameter line and returns it as a <NaturalDocs::Languages::Prototype::Parameter> object.
        +#
        +sub ParseParameterLine #(line)
        +    {
        +    my ($self, $line) = @_;
        +
        +    if ($line =~ /^ ?\.\.\.\ (.+)$/)
        +        {
        +        # This puts them in the wrong fields as $1 should be the name and ... should be the type.  However, this is necessary
        +        # because the order in the source is reversed from other parameter declarations and it's more important for the output
        +        # to match the source.
        +        return NaturalDocs::Languages::Prototype::Parameter->New($1, undef, '...', undef, undef, undef);
        +        }
        +    else
        +        {  return $self->ParsePascalParameterLine($line);  };
        +    };
        +
        +
        +#
        +#   Function: TypeBeforeParameter
        +#   Returns whether the type appears before the parameter in prototypes.
        +#
        +sub TypeBeforeParameter
        +    {  return 0;  };
        +
        +
        +#
        +#   Function: PreprocessFile
        +#
        +#   If the file is escaped, strips out all unescaped code.  Will translate any unescaped comments into comments surrounded by
        +#   "\x1C\x1D\x1E\x1F" and "\x1F\x1E\x1D" characters, so chosen because they are the same character lengths as <!-- and -->
        +#   and will not appear in normal code.
        +#
        +sub PreprocessFile
        +    {
        +    my ($self, $lines) = @_;
        +
        +    if (!$isEscaped)
        +        {  return;  };
        +
        +    use constant MODE_UNESCAPED_REGULAR => 1;
        +    use constant MODE_UNESCAPED_PI => 2;
        +    use constant MODE_UNESCAPED_CDATA => 3;
        +    use constant MODE_UNESCAPED_COMMENT => 4;
        +    use constant MODE_ESCAPED_UNKNOWN_CDATA => 5;
        +    use constant MODE_ESCAPED_CDATA => 6;
        +    use constant MODE_ESCAPED_NO_CDATA => 7;
        +
        +    my $mode = MODE_UNESCAPED_REGULAR;
        +
        +    for (my $i = 0; $i < scalar @$lines; $i++)
        +        {
        +        my @tokens = split(/(<[ \t]*\/?[ \t]*mx:Script[^>]*>|<\?|\?>|<\!--|-->|<\!\[CDATA\[|\]\]\>)/, $lines->[$i]);
        +        my $newLine;
        +
        +        foreach my $token (@tokens)
        +            {
        +            if ($mode == MODE_UNESCAPED_REGULAR)
        +                {
        +                if ($token eq '<?')
        +                    {  $mode = MODE_UNESCAPED_PI;  }
        +                elsif ($token eq '<![CDATA[')
        +                    {  $mode = MODE_UNESCAPED_CDATA;  }
        +                elsif ($token eq '<!--')
        +                    {
        +                    $mode = MODE_UNESCAPED_COMMENT;
        +                    $newLine .= "\x1C\x1D\x1E\x1F";
        +                    }
        +                elsif ($token =~ /^<[ \t]*mx:Script/)
        +                    {  $mode = MODE_ESCAPED_UNKNOWN_CDATA;  };
        +                }
        +
        +            elsif ($mode == MODE_UNESCAPED_PI)
        +                {
        +                if ($token eq '?>')
        +                    {  $mode = MODE_UNESCAPED_REGULAR;  };
        +                }
        +
        +            elsif ($mode == MODE_UNESCAPED_CDATA)
        +                {
        +                if ($token eq ']]>')
        +                    {  $mode = MODE_UNESCAPED_REGULAR;  };
        +                }
        +
        +            elsif ($mode == MODE_UNESCAPED_COMMENT)
        +                {
        +                if ($token eq '-->')
        +                    {
        +                    $mode = MODE_UNESCAPED_REGULAR;
        +                    $newLine .= "\x1F\x1E\x1D";
        +                    }
        +                else
        +                    {  $newLine .= $token;  };
        +                }
        +
        +            elsif ($mode == MODE_ESCAPED_UNKNOWN_CDATA)
        +                {
        +                if ($token eq '<![CDATA[')
        +                    {  $mode = MODE_ESCAPED_CDATA;  }
        +                elsif ($token =~ /^<[ \t]*\/[ \t]*mx:Script/)
        +                    {
        +                    $mode = MODE_UNESCAPED_REGULAR;
        +                    $newLine .= '; ';
        +                    }
        +                elsif ($token !~ /^[ \t]*$/)
        +                    {
        +                    $mode = MODE_ESCAPED_NO_CDATA;
        +                    $newLine .= $token;
        +                    };
        +                }
        +
        +            elsif ($mode == MODE_ESCAPED_CDATA)
        +                {
        +                if ($token eq ']]>')
        +                    {
        +                    $mode = MODE_UNESCAPED_REGULAR;
        +                    $newLine .= '; ';
        +                    }
        +                else
        +                    {  $newLine .= $token;  };
        +                }
        +
        +            else #($mode == MODE_ESCAPED_NO_CDATA)
        +                {
        +                if ($token =~ /^<[ \t]*\/[ \t]*mx:Script/)
        +                    {
        +                    $mode = MODE_UNESCAPED_REGULAR;
        +                    $newLine .= '; ';
        +                    }
        +                else
        +                    {  $newLine .= $token;  };
        +                };
        +
        +            };
        +
        +        $lines->[$i] = $newLine;
        +        };
        +    };
        +
        +
        +#
        +#   Function: ParseFile
        +#
        +#   Parses the passed source file, sending comments acceptable for documentation to <NaturalDocs::Parser->OnComment()>.
        +#
        +#   Parameters:
        +#
        +#       sourceFile - The <FileName> to parse.
        +#       topicList - A reference to the list of <NaturalDocs::Parser::ParsedTopics> being built by the file.
        +#
        +#   Returns:
        +#
        +#       The array ( autoTopics, scopeRecord ).
        +#
        +#       autoTopics - An arrayref of automatically generated topics from the file, or undef if none.
        +#       scopeRecord - An arrayref of <NaturalDocs::Languages::Advanced::ScopeChanges>, or undef if none.
        +#
        +sub ParseFile #(sourceFile, topicsList)
        +    {
        +    my ($self, $sourceFile, $topicsList) = @_;
        +
        +    # The \x1# comment symbols are inserted by PreprocessFile() to stand in for XML comments in escaped files.
        +    my @parseParameters = ( [ '//' ], [ '/*', '*/', "\x1C\x1D\x1E\x1F", "\x1F\x1E\x1D" ], [ '///' ], [ '/**', '*/' ] );
        +
        +    my $extension = lc(NaturalDocs::File->ExtensionOf($sourceFile));
        +    $isEscaped = ($extension eq 'mxml');
        +
        +    $self->ParseForCommentsAndTokens($sourceFile, @parseParameters);
        +
        +    my $tokens = $self->Tokens();
        +    my $index = 0;
        +    my $lineNumber = 1;
        +
        +    while ($index < scalar @$tokens)
        +        {
        +        if ($self->TryToSkipWhitespace(\$index, \$lineNumber) ||
        +            $self->TryToGetImport(\$index, \$lineNumber) ||
        +            $self->TryToGetClass(\$index, \$lineNumber) ||
        +            $self->TryToGetFunction(\$index, \$lineNumber) ||
        +            $self->TryToGetVariable(\$index, \$lineNumber) )
        +            {
        +            # The functions above will handle everything.
        +            }
        +
        +        elsif ($tokens->[$index] eq '{')
        +            {
        +            $self->StartScope('}', $lineNumber, undef, undef, undef);
        +            $index++;
        +            }
        +
        +        elsif ($tokens->[$index] eq '}')
        +            {
        +            if ($self->ClosingScopeSymbol() eq '}')
        +                {  $self->EndScope($lineNumber);  };
        +
        +            $index++;
        +            }
        +
        +        else
        +            {
        +            $self->SkipToNextStatement(\$index, \$lineNumber);
        +            };
        +        };
        +
        +
        +    # Don't need to keep these around.
        +    $self->ClearTokens();
        +
        +
        +    my $autoTopics = $self->AutoTopics();
        +
        +    my $scopeRecord = $self->ScopeRecord();
        +    if (defined $scopeRecord && !scalar @$scopeRecord)
        +        {  $scopeRecord = undef;  };
        +
        +    return ( $autoTopics, $scopeRecord );
        +    };
        +
        +
        +
        +################################################################################
        +# Group: Statement Parsing Functions
        +# All functions here assume that the current position is at the beginning of a statement.
        +#
        +# Note for developers: I am well aware that the code in these functions do not check if we're past the end of the tokens as
        +# often as it should.  We're making use of the fact that Perl will always return undef in these cases to keep the code simpler.
        +
        +
        +#
        +#   Function: TryToGetIdentifier
        +#
        +#   Determines whether the position is at an identifier, and if so, skips it and returns the complete identifier as a string.  Returns
        +#   undef otherwise.
        +#
        +#   Parameters:
        +#
        +#       indexRef - A reference to the current token index.
        +#       lineNumberRef - A reference to the current line number.
        +#       allowStar - If set, allows the last identifier to be a star.
        +#
        +sub TryToGetIdentifier #(indexRef, lineNumberRef, allowStar)
        +    {
        +    my ($self, $indexRef, $lineNumberRef, $allowStar) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    my $index = $$indexRef;
        +
        +    use constant MODE_IDENTIFIER_START => 1;
        +    use constant MODE_IN_IDENTIFIER => 2;
        +    use constant MODE_AFTER_STAR => 3;
        +
        +    my $identifier;
        +    my $mode = MODE_IDENTIFIER_START;
        +
        +    while ($index < scalar @$tokens)
        +        {
        +        if ($mode == MODE_IDENTIFIER_START)
        +            {
        +            if ($tokens->[$index] =~ /^[a-z\$\_]/i)
        +                {
        +                $identifier .= $tokens->[$index];
        +                $index++;
        +
        +                $mode = MODE_IN_IDENTIFIER;
        +                }
        +            elsif ($allowStar && $tokens->[$index] eq '*')
        +                {
        +                $identifier .= '*';
        +                $index++;
        +
        +                $mode = MODE_AFTER_STAR;
        +                }
        +            else
        +                {  return undef;  };
        +            }
        +
        +        elsif ($mode == MODE_IN_IDENTIFIER)
        +            {
        +            if ($tokens->[$index] eq '.')
        +                {
        +                $identifier .= '.';
        +                $index++;
        +
        +                $mode = MODE_IDENTIFIER_START;
        +                }
        +            elsif ($tokens->[$index] =~ /^[a-z0-9\$\_]/i)
        +                {
        +                $identifier .= $tokens->[$index];
        +                $index++;
        +                }
        +            else
        +                {  last;  };
        +            }
        +
        +        else #($mode == MODE_AFTER_STAR)
        +            {
        +            if ($tokens->[$index] =~ /^[a-z0-9\$\_\.]/i)
        +                {  return undef;  }
        +            else
        +                {  last;  };
        +            };
        +        };
        +
        +    # We need to check again because we may have run out of tokens after a dot.
        +    if ($mode != MODE_IDENTIFIER_START)
        +        {
        +        $$indexRef = $index;
        +        return $identifier;
        +        }
        +    else
        +        {  return undef;  };
        +    };
        +
        +
        +#
        +#   Function: TryToGetImport
        +#
        +#   Determines whether the position is at a import statement, and if so, adds it as a Using statement to the current scope, skips
        +#   it, and returns true.
        +#
        +sub TryToGetImport #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    my $index = $$indexRef;
        +    my $lineNumber = $$lineNumberRef;
        +
        +    if ($tokens->[$index] ne 'import')
        +        {  return undef;  };
        +
        +    $index++;
        +    $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +    my $identifier = $self->TryToGetIdentifier(\$index, \$lineNumber, 1);
        +    if (!$identifier)
        +        {  return undef;  };
        +
        +
        +    # Currently we implement importing by stripping the last package level and treating it as a using.  So "import p1.p2.p3" makes
        +    # p1.p2 the using path, which is over-tolerant but that's okay.  "import p1.p2.*" is treated the same way, but in this case it's
        +    # not over-tolerant.  If there's no dot, there's no point to including it.
        +
        +    if (index($identifier, '.') != -1)
        +        {
        +        $identifier =~ s/\.[^\.]+$//;
        +        $self->AddUsing( NaturalDocs::SymbolString->FromText($identifier) );
        +        };
        +
        +    $$indexRef = $index;
        +    $$lineNumberRef = $lineNumber;
        +
        +    return 1;
        +    };
        +
        +
        +#
        +#   Function: TryToGetClass
        +#
        +#   Determines whether the position is at a class declaration statement, and if so, generates a topic for it, skips it, and
        +#   returns true.
        +#
        +#   Supported Syntaxes:
        +#
        +#       - Classes
        +#       - Interfaces
        +#       - Classes and interfaces with _global
        +#
        +sub TryToGetClass #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    my $index = $$indexRef;
        +    my $lineNumber = $$lineNumberRef;
        +
        +    my @modifiers;
        +
        +    while ($tokens->[$index] =~ /^[a-z]/i &&
        +              exists $classModifiers{lc($tokens->[$index])} )
        +        {
        +        push @modifiers, lc($tokens->[$index]);
        +        $index++;
        +
        +        $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +        };
        +
        +    my $type;
        +
        +    if ($tokens->[$index] eq 'class' || $tokens->[$index] eq 'interface')
        +        {
        +        $type = $tokens->[$index];
        +
        +        $index++;
        +        $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +        }
        +    else
        +        {  return undef;  };
        +
        +    my $className = $self->TryToGetIdentifier(\$index, \$lineNumber);
        +
        +    if (!$className)
        +        {  return undef;  };
        +
        +    $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +    my @parents;
        +
        +    if ($tokens->[$index] eq 'extends')
        +        {
        +        $index++;
        +        $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +        # Interfaces can extend multiple other interfaces, which is NOT clearly mentioned in the docs.
        +
        +        for (;;)
        +        	{
        +	        my $parent = $self->TryToGetIdentifier(\$index, \$lineNumber);
        +	        if (!$parent)
        +	            {  return undef;  };
        +
        +	        push @parents, $parent;
        +
        +	        $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +            if ($tokens->[$index] ne ',')
        +                {  last;  }
        +            else
        +                {
        +                $index++;
        +                $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +                };
        +	        }
        +        };
        +
        +    if ($type eq 'class' && $tokens->[$index] eq 'implements')
        +        {
        +        $index++;
        +        $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +        for (;;)
        +            {
        +            my $parent = $self->TryToGetIdentifier(\$index, \$lineNumber);
        +            if (!$parent)
        +                {  return undef;  };
        +
        +            push @parents, $parent;
        +
        +            $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +            if ($tokens->[$index] ne ',')
        +                {  last;  }
        +            else
        +                {
        +                $index++;
        +                $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +                };
        +            };
        +        };
        +
        +    if ($tokens->[$index] ne '{')
        +        {  return undef;  };
        +
        +    $index++;
        +
        +
        +    # If we made it this far, we have a valid class declaration.
        +
        +    my $topicType;
        +
        +    if ($type eq 'interface')
        +        {  $topicType = ::TOPIC_INTERFACE();  }
        +    else
        +        {  $topicType = ::TOPIC_CLASS();  };
        +
        +    $className =~ s/^_global.//;
        +
        +    my $autoTopic = NaturalDocs::Parser::ParsedTopic->New($topicType, $className,
        +                                                                                         undef, $self->CurrentUsing(),
        +                                                                                         undef,
        +                                                                                         undef, undef, $$lineNumberRef);
        +
        +    $self->AddAutoTopic($autoTopic);
        +    NaturalDocs::Parser->OnClass($autoTopic->Package());
        +
        +    foreach my $parent (@parents)
        +        {
        +        NaturalDocs::Parser->OnClassParent($autoTopic->Package(), NaturalDocs::SymbolString->FromText($parent),
        +                                                               undef, $self->CurrentUsing(), ::RESOLVE_ABSOLUTE());
        +        };
        +
        +    $self->StartScope('}', $lineNumber, $autoTopic->Package());
        +
        +    $$indexRef = $index;
        +    $$lineNumberRef = $lineNumber;
        +
        +    return 1;
        +    };
        +
        +
        +#
        +#   Function: TryToGetFunction
        +#
        +#   Determines if the position is on a function declaration, and if so, generates a topic for it, skips it, and returns true.
        +#
        +#   Supported Syntaxes:
        +#
        +#       - Functions
        +#       - Constructors
        +#       - Properties
        +#       - Functions with _global
        +#       - Functions with namespaces
        +#
        +sub TryToGetFunction #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    my $index = $$indexRef;
        +    my $lineNumber = $$lineNumberRef;
        +
        +    my $startIndex = $index;
        +    my $startLine = $lineNumber;
        +
        +    my @modifiers;
        +    my $namespace;
        +
        +    while ($tokens->[$index] =~ /^[a-z]/i)
        +        {
        +        if ($tokens->[$index] eq 'function')
        +            {  last;  }
        +
        +        elsif (exists $memberModifiers{lc($tokens->[$index])})
        +            {
        +            push @modifiers, lc($tokens->[$index]);
        +            $index++;
        +
        +            $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +            }
        +
        +        elsif (!$namespace)
        +            {
        +            do
        +                {
        +                $namespace .= $tokens->[$index];
        +                $index++;
        +                }
        +            while ($tokens->[$index] =~ /^[a-z0-9_]/i);
        +
        +            $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +            }
        +
        +        else
        +            {  last;  };
        +        };
        +
        +    if ($tokens->[$index] ne 'function')
        +        {  return undef;  };
        +    $index++;
        +
        +    $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +    my $type;
        +
        +    if ($tokens->[$index] eq 'get' || $tokens->[$index] eq 'set')
        +        {
        +        # This can either be a property ("function get Something()") or a function name ("function get()").
        +
        +        my $nextIndex = $index;
        +        my $nextLineNumber = $lineNumber;
        +
        +        $nextIndex++;
        +        $self->TryToSkipWhitespace(\$nextIndex, \$nextLineNumber);
        +
        +        if ($tokens->[$nextIndex] eq '(')
        +            {
        +            $type = ::TOPIC_FUNCTION();
        +            # Ignore the movement and let the code ahead pick it up as the name.
        +            }
        +        else
        +            {
        +            $type = ::TOPIC_PROPERTY();
        +            $index = $nextIndex;
        +            $lineNumber = $nextLineNumber;
        +            };
        +        }
        +    else
        +        {  $type = ::TOPIC_FUNCTION();  };
        +
        +    my $name = $self->TryToGetIdentifier(\$index, \$lineNumber);
        +    if (!$name)
        +        {  return undef;  };
        +
        +    $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +    if ($tokens->[$index] ne '(')
        +        {  return undef;  };
        +
        +    $index++;
        +    $self->GenericSkipUntilAfter(\$index, \$lineNumber, ')');
        +
        +    $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +    if ($tokens->[$index] eq ':')
        +        {
        +        $index++;
        +
        +        $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +        $self->TryToGetIdentifier(\$index, \$lineNumber, 1);
        +
        +        $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +        };
        +
        +
        +    my $prototype = $self->NormalizePrototype( $self->CreateString($startIndex, $index) );
        +
        +    if ($tokens->[$index] eq '{')
        +        {  $self->GenericSkip(\$index, \$lineNumber);  }
        +    elsif (!exists $declarationEnders{$tokens->[$index]})
        +        {  return undef;  };
        +
        +
        +    my $scope = $self->CurrentScope();
        +
        +    if ($name =~ s/^_global.//)
        +        {  $scope = undef;  };
        +    if ($namespace)
        +        {  $scope = NaturalDocs::SymbolString->Join($scope, $namespace);  };
        +
        +    $self->AddAutoTopic(NaturalDocs::Parser::ParsedTopic->New($type, $name,
        +                                                                                              $scope, $self->CurrentUsing(),
        +                                                                                              $prototype,
        +                                                                                              undef, undef, $startLine));
        +
        +
        +    # We succeeded if we got this far.
        +
        +    $$indexRef = $index;
        +    $$lineNumberRef = $lineNumber;
        +
        +    return 1;
        +    };
        +
        +
        +#
        +#   Function: TryToGetVariable
        +#
        +#   Determines if the position is on a variable declaration statement, and if so, generates a topic for each variable, skips the
        +#   statement, and returns true.
        +#
        +#   Supported Syntaxes:
        +#
        +#       - Variables
        +#       - Variables with _global
        +#       - Variables with type * (untyped)
        +#       - Constants
        +#       - Variables and constants with namespaces
        +#
        +sub TryToGetVariable #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    my $index = $$indexRef;
        +    my $lineNumber = $$lineNumberRef;
        +
        +    my $startIndex = $index;
        +    my $startLine = $lineNumber;
        +
        +    my @modifiers;
        +    my $namespace;
        +
        +    while ($tokens->[$index] =~ /^[a-z]/i)
        +        {
        +        if ($tokens->[$index] eq 'var' || $tokens->[$index] eq 'const')
        +            {  last;  }
        +
        +        elsif (exists $memberModifiers{lc($tokens->[$index])})
        +            {
        +            push @modifiers, lc($tokens->[$index]);
        +            $index++;
        +
        +            $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +            }
        +
        +        elsif (!$namespace)
        +            {
        +            do
        +                {
        +                $namespace .= $tokens->[$index];
        +                $index++;
        +                }
        +            while ($tokens->[$index] =~ /^[a-z0-9_]/i);
        +
        +            $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +            }
        +
        +        else
        +            {  last;  };
        +        };
        +
        +    my $type;
        +
        +    if ($tokens->[$index] eq 'var')
        +        {  $type = ::TOPIC_VARIABLE();  }
        +    elsif ($tokens->[$index] eq 'const')
        +        {  $type = ::TOPIC_CONSTANT();  }
        +    else
        +        {  return undef;  };
        +    $index++;
        +
        +    $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +    my $endTypeIndex = $index;
        +    my @names;
        +    my @types;
        +
        +    for (;;)
        +        {
        +        my $name = $self->TryToGetIdentifier(\$index, \$lineNumber);
        +        if (!$name)
        +            {  return undef;  };
        +
        +        $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +        my $type;
        +
        +        if ($tokens->[$index] eq ':')
        +            {
        +            $index++;
        +            $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +            $type = ': ' . $self->TryToGetIdentifier(\$index, \$lineNumber, 1);
        +
        +            $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +            };
        +
        +        if ($tokens->[$index] eq '=')
        +            {
        +            do
        +                {
        +                $self->GenericSkip(\$index, \$lineNumber);
        +                }
        +            while ($tokens->[$index] ne ',' && !exists $declarationEnders{$tokens->[$index]} && $index < scalar @$tokens);
        +            };
        +
        +        push @names, $name;
        +        push @types, $type;
        +
        +        if ($tokens->[$index] eq ',')
        +            {
        +            $index++;
        +            $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +            }
        +        elsif (exists $declarationEnders{$tokens->[$index]})
        +            {  last;  }
        +        else
        +            {  return undef;  };
        +        };
        +
        +
        +    # We succeeded if we got this far.
        +
        +    my $prototypePrefix = $self->CreateString($startIndex, $endTypeIndex);
        +
        +    for (my $i = 0; $i < scalar @names; $i++)
        +        {
        +        my $prototype = $self->NormalizePrototype( $prototypePrefix . ' ' . $names[$i] . $types[$i]);
        +        my $scope = $self->CurrentScope();
        +
        +        if ($names[$i] =~ s/^_global.//)
        +            {  $scope = undef;  };
        +        if ($namespace)
        +            {  $scope = NaturalDocs::SymbolString->Join($scope, $namespace);  };
        +
        +        $self->AddAutoTopic(NaturalDocs::Parser::ParsedTopic->New($type, $names[$i],
        +                                                                                                  $scope, $self->CurrentUsing(),
        +                                                                                                  $prototype,
        +                                                                                                  undef, undef, $startLine));
        +        };
        +
        +    $$indexRef = $index;
        +    $$lineNumberRef = $lineNumber;
        +
        +    return 1;
        +    };
        +
        +
        +
        +################################################################################
        +# Group: Low Level Parsing Functions
        +
        +
        +#
        +#   Function: GenericSkip
        +#
        +#   Advances the position one place through general code.
        +#
        +#   - If the position is on a string, it will skip it completely.
        +#   - If the position is on an opening symbol, it will skip until the past the closing symbol.
        +#   - If the position is on whitespace (including comments), it will skip it completely.
        +#   - Otherwise it skips one token.
        +#
        +#   Parameters:
        +#
        +#       indexRef - A reference to the current index.
        +#       lineNumberRef - A reference to the current line number.
        +#
        +sub GenericSkip #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    # We can ignore the scope stack because we're just skipping everything without parsing, and we need recursion anyway.
        +    if ($tokens->[$$indexRef] eq '{')
        +        {
        +        $$indexRef++;
        +        $self->GenericSkipUntilAfter($indexRef, $lineNumberRef, '}');
        +        }
        +    elsif ($tokens->[$$indexRef] eq '(')
        +        {
        +        $$indexRef++;
        +        $self->GenericSkipUntilAfter($indexRef, $lineNumberRef, ')');
        +        }
        +    elsif ($tokens->[$$indexRef] eq '[')
        +        {
        +        $$indexRef++;
        +        $self->GenericSkipUntilAfter($indexRef, $lineNumberRef, ']');
        +        }
        +
        +    elsif ($self->TryToSkipWhitespace($indexRef, $lineNumberRef) ||
        +            $self->TryToSkipString($indexRef, $lineNumberRef) ||
        +            $self->TryToSkipRegExp($indexRef, $lineNumberRef) ||
        +            $self->TryToSkipXML($indexRef, $lineNumberRef) )
        +        {
        +        }
        +
        +    else
        +        {  $$indexRef++;  };
        +    };
        +
        +
        +#
        +#   Function: GenericSkipUntilAfter
        +#
        +#   Advances the position via <GenericSkip()> until a specific token is reached and passed.
        +#
        +sub GenericSkipUntilAfter #(indexRef, lineNumberRef, token)
        +    {
        +    my ($self, $indexRef, $lineNumberRef, $token) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    while ($$indexRef < scalar @$tokens && $tokens->[$$indexRef] ne $token)
        +        {  $self->GenericSkip($indexRef, $lineNumberRef);  };
        +
        +    if ($tokens->[$$indexRef] eq "\n")
        +        {  $$lineNumberRef++;  };
        +    $$indexRef++;
        +    };
        +
        +
        +#
        +#   Function: IndiscriminateSkipUntilAfterSequence
        +#
        +#   Advances the position indiscriminately until a specific token sequence is reached and passed.
        +#
        +sub IndiscriminateSkipUntilAfterSequence #(indexRef, lineNumberRef, token, token, ...)
        +    {
        +    my ($self, $indexRef, $lineNumberRef, @sequence) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    while ($$indexRef < scalar @$tokens && !$self->IsAtSequence($$indexRef, @sequence))
        +        {
        +        if ($tokens->[$$indexRef] eq "\n")
        +            {  $$lineNumberRef++;  };
        +        $$indexRef++;
        +        };
        +
        +    if ($self->IsAtSequence($$indexRef, @sequence))
        +        {
        +        $$indexRef += scalar @sequence;
        +        foreach my $token (@sequence)
        +            {
        +            if ($token eq "\n")
        +                {  $$lineNumberRef++;  };
        +            };
        +        };
        +    };
        +
        +
        +#
        +#   Function: SkipToNextStatement
        +#
        +#   Advances the position via <GenericSkip()> until the next statement, which is defined as anything in <declarationEnders> not
        +#   appearing in brackets or strings.  It will always advance at least one token.
        +#
        +sub SkipToNextStatement #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    if ($tokens->[$$indexRef] eq ';')
        +        {  $$indexRef++;  }
        +
        +    else
        +        {
        +        do
        +            {
        +            $self->GenericSkip($indexRef, $lineNumberRef);
        +            }
        +        while ( $$indexRef < scalar @$tokens &&
        +                  !exists $declarationEnders{$tokens->[$$indexRef]} );
        +        };
        +    };
        +
        +
        +#
        +#   Function: TryToSkipRegExp
        +#   If the current position is on a regular expression, skip past it and return true.
        +#
        +sub TryToSkipRegExp #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    if ($tokens->[$$indexRef] eq '/')
        +        {
        +        # A slash can either start a regular expression or be a divide symbol.  Skip backwards to see what the previous symbol is.
        +        my $index = $$indexRef - 1;
        +
        +        while ($index >= 0 && $tokens->[$index] =~ /^(?: |\t|\n)/)
        +            {  $index--;  };
        +
        +        if ($index < 0 || $tokens->[$index] !~ /^[\:\=\(\[\,]/)
        +            {  return 0;  };
        +
        +        $$indexRef++;
        +
        +        while ($$indexRef < scalar @$tokens && $tokens->[$$indexRef] ne '/')
        +            {
        +            if ($tokens->[$$indexRef] eq '\\')
        +                {  $$indexRef += 2;  }
        +            elsif ($tokens->[$$indexRef] eq "\n")
        +                {
        +                $$indexRef++;
        +                $$lineNumberRef++;
        +                }
        +            else
        +                {  $$indexRef++;  }
        +            };
        +
        +        if ($$indexRef < scalar @$tokens)
        +            {
        +            $$indexRef++;
        +
        +            if ($tokens->[$$indexRef] =~ /^[gimsx]+$/i)
        +                {  $$indexRef++;  };
        +            };
        +
        +        return 1;
        +        }
        +    else
        +        {  return 0;  };
        +    };
        +
        +
        +#
        +#   Function: TryToSkipXML
        +#   If the current position is on an XML literal, skip past it and return true.
        +#
        +sub TryToSkipXML #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    if ($tokens->[$$indexRef] eq '<')
        +        {
        +        # A < can either start an XML literal or be a comparison or shift operator.  First check the next character for << or <=.
        +
        +        my $index = $$indexRef + 1;
        +
        +        while ($index < scalar @$tokens && $tokens->[$index] =~ /^[\=\<]$/)
        +            {  return 0;  };
        +
        +
        +        # Next try the previous character.
        +
        +        $index = $$indexRef - 1;
        +
        +        while ($index >= 0 && $tokens->[$index] =~ /^[ |\t|\n]/)
        +            {  $index--;  };
        +
        +        if ($index < 0 || $tokens->[$index] !~ /^[\=\(\[\,\>]/)
        +            {  return 0;  };
        +        }
        +    else
        +        {  return 0;  };
        +
        +
        +    # Only handle the tag here if it's not an irregular XML section.
        +    if (!$self->TryToSkipIrregularXML($indexRef, $lineNumberRef))
        +        {
        +        my @tagStack;
        +
        +        my ($tagType, $tagIdentifier) = $self->GetAndSkipXMLTag($indexRef, $lineNumberRef);
        +        if ($tagType == XML_OPENING_TAG)
        +            {  push @tagStack, $tagIdentifier;  };
        +
        +        while (scalar @tagStack && $$indexRef < scalar @$tokens)
        +            {
        +            $self->SkipToNextXMLTag($indexRef, $lineNumberRef);
        +            ($tagType, $tagIdentifier) = $self->GetAndSkipXMLTag($indexRef, $lineNumberRef);
        +
        +            if ($tagType == XML_OPENING_TAG)
        +                {  push @tagStack, $tagIdentifier;  }
        +            elsif ($tagType == XML_CLOSING_TAG && $tagIdentifier eq $tagStack[-1])
        +                {  pop @tagStack;  };
        +            };
        +        };
        +
        +
        +    return 1;
        +    };
        +
        +
        +#
        +#   Function: TryToSkipIrregularXML
        +#
        +#   If the current position is on an irregular XML tag, skip past it and return true.  Irregular XML tags are defined as
        +#
        +#       CDATA - <![CDATA[ ... ]]>
        +#       Comments - <!-- ... -->
        +#       PI - <? ... ?>
        +#
        +sub TryToSkipIrregularXML #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +
        +    if ($self->IsAtSequence($$indexRef, '<', '!', '[', 'CDATA', '['))
        +        {
        +        $$indexRef += 5;
        +        $self->IndiscriminateSkipUntilAfterSequence($indexRef, $lineNumberRef, ']', ']', '>');
        +        return 1;
        +        }
        +
        +    elsif ($self->IsAtSequence($$indexRef, '<', '!', '-', '-'))
        +        {
        +        $$indexRef += 4;
        +        $self->IndiscriminateSkipUntilAfterSequence($indexRef, $lineNumberRef, '-', '-', '>');
        +        return 1;
        +        }
        +
        +    elsif ($self->IsAtSequence($$indexRef, '<', '?'))
        +        {
        +        $$indexRef += 2;
        +        $self->IndiscriminateSkipUntilAfterSequence($indexRef, $lineNumberRef, '?', '>');
        +        return 1;
        +        }
        +
        +    else
        +        {  return 0;  };
        +    };
        +
        +
        +#
        +#   Function: GetAndSkipXMLTag
        +#
        +#   Processes the XML tag at the current position, moves beyond it, and returns information about it.  Assumes the position is on
        +#   the opening angle bracket of the tag and the tag is a normal XML tag, not one of the ones handled by
        +#   <TryToSkipIrregularXML()>.
        +#
        +#   Parameters:
        +#
        +#       indexRef - A reference to the index of the position of the opening angle bracket.
        +#       lineNumberRef - A reference to the line number of the position of the opening angle bracket.
        +#
        +#   Returns:
        +#
        +#       The array ( tagType, name ).
        +#
        +#       tagType - One of the <XML Tag Type> constants.
        +#       identifier - The identifier of the tag.  If it's an empty tag (<> or </>), this will be "(anonymous)".
        +#
        +sub GetAndSkipXMLTag #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    if ($$indexRef < scalar @$tokens && $tokens->[$$indexRef] ne '<')
        +        {  die "Tried to call GetXMLTag when the position isn't on an opening bracket.";  };
        +
        +    # Get the anonymous ones out of the way so we don't have to worry about them below, since they're rather exceptional.
        +
        +    if ($self->IsAtSequence($$indexRef, '<', '>'))
        +        {
        +        $$indexRef += 2;
        +        return ( XML_OPENING_TAG, '(anonymous)' );
        +        }
        +    elsif ($self->IsAtSequence($$indexRef, '<', '/', '>'))
        +        {
        +        $$indexRef += 3;
        +        return ( XML_CLOSING_TAG, '(anonymous)' );
        +        };
        +
        +
        +    # Grab the identifier.
        +
        +    my $tagType = XML_OPENING_TAG;
        +    my $identifier;
        +
        +    $$indexRef++;
        +
        +    if ($tokens->[$$indexRef] eq '/')
        +        {
        +        $$indexRef++;
        +        $tagType = XML_CLOSING_TAG;
        +        };
        +
        +    $self->TryToSkipXMLWhitespace($indexRef, $lineNumberRef);
        +
        +
        +    # The identifier could be a native expression in braces.
        +
        +    if ($tokens->[$$indexRef] eq '{')
        +        {
        +        my $startOfIdentifier = $$indexRef;
        +
        +        $$indexRef++;
        +        $self->GenericSkipUntilAfter($indexRef, $lineNumberRef, '}');
        +
        +        $identifier = $self->CreateString($startOfIdentifier, $$indexRef);
        +        }
        +
        +
        +    # Otherwise just grab content until whitespace or the end of the tag.
        +
        +    else
        +        {
        +        while ($$indexRef < scalar @$tokens && $tokens->[$$indexRef] !~ /^[\/\>\ \t]$/)
        +            {
        +            $identifier .= $tokens->[$$indexRef];
        +            $$indexRef++;
        +            };
        +        };
        +
        +
        +    # Skip to the end of the tag.
        +
        +    while ($$indexRef < scalar @$tokens && $tokens->[$$indexRef] !~ /^[\/\>]$/)
        +        {
        +        if ($tokens->[$$indexRef] eq '{')
        +            {
        +            $$indexRef++;
        +            $self->GenericSkipUntilAfter($indexRef, $lineNumberRef, '}');
        +            }
        +
        +        elsif ($self->TryToSkipXMLWhitespace($indexRef, $lineNumberRef))
        +            {  }
        +
        +        # We don't need to do special handling for attribute quotes or anything like that because there's no backslashing in
        +        # XML.  It's all handled with entity characters.
        +        else
        +            {  $$indexRef++;  };
        +        };
        +
        +
        +    if ($tokens->[$$indexRef] eq '/')
        +        {
        +        if ($tagType == XML_OPENING_TAG)
        +            {  $tagType = XML_SELF_CONTAINED_TAG;  };
        +
        +        $$indexRef++;
        +        };
        +
        +    if ($tokens->[$$indexRef] eq '>')
        +        {  $$indexRef++;  };
        +
        +    if (!$identifier)
        +        {  $identifier = '(anonymous)';  };
        +
        +
        +    return ( $tagType, $identifier );
        +    };
        +
        +
        +#
        +#   Function: SkipToNextXMLTag
        +#   Skips to the next normal XML tag.  It will not stop at elements handled by <TryToSkipIrregularXML()>.  Note that if the
        +#   position is already at an XML tag, it will not move.
        +#
        +sub SkipToNextXMLTag #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    while ($$indexRef < scalar @$tokens)
        +        {
        +        if ($tokens->[$$indexRef] eq '{')
        +            {
        +            $$indexRef++;
        +            $self->GenericSkipUntilAfter($indexRef, $lineNumberRef, '}');
        +            }
        +
        +        elsif ($self->TryToSkipIrregularXML($indexRef, $lineNumberRef))
        +            {  }
        +
        +        elsif ($tokens->[$$indexRef] eq '<')
        +            {  last;  }
        +
        +        else
        +            {
        +            if ($tokens->[$$indexRef] eq "\n")
        +                {  $$lineNumberRef++;  };
        +
        +            $$indexRef++;
        +            };
        +        };
        +    };
        +
        +
        +#
        +#   Function: TryToSkipXMLWhitespace
        +#   If the current position is on XML whitespace, skip past it and return true.
        +#
        +sub TryToSkipXMLWhitespace #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    my $result;
        +
        +    while ($$indexRef < scalar @$tokens)
        +        {
        +        if ($tokens->[$$indexRef] =~ /^[ \t]/)
        +            {
        +            $$indexRef++;
        +            $result = 1;
        +            }
        +        elsif ($tokens->[$$indexRef] eq "\n")
        +            {
        +            $$indexRef++;
        +            $$lineNumberRef++;
        +            $result = 1;
        +            }
        +        else
        +            {  last;  };
        +        };
        +
        +    return $result;
        +    };
        +
        +
        +#
        +#   Function: TryToSkipString
        +#   If the current position is on a string delimiter, skip past the string and return true.
        +#
        +#   Parameters:
        +#
        +#       indexRef - A reference to the index of the position to start at.
        +#       lineNumberRef - A reference to the line number of the position.
        +#
        +#   Returns:
        +#
        +#       Whether the position was at a string.
        +#
        +#   Syntax Support:
        +#
        +#       - Supports quotes and apostrophes.
        +#
        +sub TryToSkipString #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +
        +    return ($self->SUPER::TryToSkipString($indexRef, $lineNumberRef, '\'') ||
        +               $self->SUPER::TryToSkipString($indexRef, $lineNumberRef, '"') );
        +    };
        +
        +
        +#
        +#   Function: TryToSkipWhitespace
        +#   If the current position is on a whitespace token, a line break token, or a comment, it skips them and returns true.  If there are
        +#   a number of these in a row, it skips them all.
        +#
        +sub TryToSkipWhitespace #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    my $result;
        +
        +    while ($$indexRef < scalar @$tokens)
        +        {
        +        if ($tokens->[$$indexRef] =~ /^[ \t]/)
        +            {
        +            $$indexRef++;
        +            $result = 1;
        +            }
        +        elsif ($tokens->[$$indexRef] eq "\n")
        +            {
        +            $$indexRef++;
        +            $$lineNumberRef++;
        +            $result = 1;
        +            }
        +        elsif ($self->TryToSkipComment($indexRef, $lineNumberRef))
        +            {
        +            $result = 1;
        +            }
        +        else
        +            {  last;  };
        +        };
        +
        +    return $result;
        +    };
        +
        +
        +#
        +#   Function: TryToSkipComment
        +#   If the current position is on a comment, skip past it and return true.
        +#
        +sub TryToSkipComment #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +
        +    return ( $self->TryToSkipLineComment($indexRef, $lineNumberRef) ||
        +                $self->TryToSkipMultilineComment($indexRef, $lineNumberRef) );
        +    };
        +
        +
        +#
        +#   Function: TryToSkipLineComment
        +#   If the current position is on a line comment symbol, skip past it and return true.
        +#
        +sub TryToSkipLineComment #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    if ($tokens->[$$indexRef] eq '/' && $tokens->[$$indexRef+1] eq '/')
        +        {
        +        $self->SkipRestOfLine($indexRef, $lineNumberRef);
        +        return 1;
        +        }
        +    else
        +        {  return undef;  };
        +    };
        +
        +
        +#
        +#   Function: TryToSkipMultilineComment
        +#   If the current position is on an opening comment symbol, skip past it and return true.
        +#
        +sub TryToSkipMultilineComment #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    if ($tokens->[$$indexRef] eq '/' && $tokens->[$$indexRef+1] eq '*')
        +        {
        +        $self->SkipUntilAfter($indexRef, $lineNumberRef, '*', '/');
        +        return 1;
        +        }
        +    else
        +        {  return undef;  };
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/Ada.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/Ada.pm
        new file mode 100755
        index 0000000..062c5ae
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/Ada.pm
        @@ -0,0 +1,39 @@
        +###############################################################################
        +#
        +#   Class: NaturalDocs::Languages::Ada
        +#
        +###############################################################################
        +#
        +#   A subclass to handle the language variations of Ada
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::Languages::Ada;
        +
        +use base 'NaturalDocs::Languages::Simple';
        +
        +
        +#
        +#   Function: ParseParameterLine
        +#   Overridden because Ada uses Pascal-style parameters
        +#
        +sub ParseParameterLine #(...)
        +    {
        +    my ($self, @params) = @_;
        +    return $self->SUPER::ParsePascalParameterLine(@params);
        +    };
        +
        +sub TypeBeforeParameter
        +    {
        +    return 0;
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/Advanced.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/Advanced.pm
        new file mode 100755
        index 0000000..d6cafa7
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/Advanced.pm
        @@ -0,0 +1,817 @@
        +###############################################################################
        +#
        +#   Class: NaturalDocs::Languages::Advanced
        +#
        +###############################################################################
        +#
        +#   The base class for all languages that have full support in Natural Docs.  Each one will have a custom parser capable
        +#   of documenting undocumented aspects of the code.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +use NaturalDocs::Languages::Advanced::Scope;
        +use NaturalDocs::Languages::Advanced::ScopeChange;
        +
        +package NaturalDocs::Languages::Advanced;
        +
        +use base 'NaturalDocs::Languages::Base';
        +
        +
        +#############################################################################
        +# Group: Implementation
        +
        +#
        +#   Constants: Members
        +#
        +#   The class is implemented as a blessed arrayref.  The following constants are used as indexes.
        +#
        +#   TOKENS - An arrayref of tokens used in all the <Parsing Functions>.
        +#   SCOPE_STACK - An arrayref of <NaturalDocs::Languages::Advanced::Scope> objects serving as a scope stack for parsing.
        +#                            There will always be one available, with a symbol of undef, for the top level.
        +#   SCOPE_RECORD - An arrayref of <NaturalDocs::Languages::Advanced::ScopeChange> objects, as generated by the scope
        +#                              stack.  If there is more than one change per line, only the last is stored.
        +#   AUTO_TOPICS - An arrayref of <NaturalDocs::Parser::ParsedTopics> generated automatically from the code.
        +#
        +use NaturalDocs::DefineMembers 'TOKENS', 'SCOPE_STACK', 'SCOPE_RECORD', 'AUTO_TOPICS';
        +
        +
        +#############################################################################
        +# Group: Functions
        +
        +#
        +#   Function: New
        +#
        +#   Creates and returns a new object.
        +#
        +#   Parameters:
        +#
        +#       name - The name of the language.
        +#
        +sub New #(name)
        +    {
        +    my ($package, @parameters) = @_;
        +
        +    my $object = $package->SUPER::New(@parameters);
        +    $object->[TOKENS] = undef;
        +    $object->[SCOPE_STACK] = undef;
        +    $object->[SCOPE_RECORD] = undef;
        +
        +    return $object;
        +    };
        +
        +
        +# Function: Tokens
        +# Returns the tokens found by <ParseForCommentsAndTokens()>.
        +sub Tokens
        +    {  return $_[0]->[TOKENS];  };
        +
        +# Function: SetTokens
        +# Replaces the tokens.
        +sub SetTokens #(tokens)
        +    {  $_[0]->[TOKENS] = $_[1];  };
        +
        +# Function: ClearTokens
        +#  Resets the token list.  You may want to do this after parsing is over to save memory.
        +sub ClearTokens
        +    {  $_[0]->[TOKENS] = undef;  };
        +
        +# Function: AutoTopics
        +# Returns the arrayref of automatically generated topics, or undef if none.
        +sub AutoTopics
        +    {  return $_[0]->[AUTO_TOPICS];  };
        +
        +# Function: AddAutoTopic
        +# Adds a <NaturalDocs::Parser::ParsedTopic> to <AutoTopics()>.
        +sub AddAutoTopic #(topic)
        +    {
        +    my ($self, $topic) = @_;
        +    if (!defined $self->[AUTO_TOPICS])
        +        {  $self->[AUTO_TOPICS] = [ ];  };
        +    push @{$self->[AUTO_TOPICS]}, $topic;
        +    };
        +
        +# Function: ClearAutoTopics
        +# Resets the automatic topic list.  Not necessary if you call <ParseForCommentsAndTokens()>.
        +sub ClearAutoTopics
        +    {  $_[0]->[AUTO_TOPICS] = undef;  };
        +
        +# Function: ScopeRecord
        +# Returns an arrayref of <NaturalDocs::Languages::Advanced::ScopeChange> objects describing how and when the scope
        +# changed thoughout the file.  There will always be at least one entry, which will be for line 1 and undef as the scope.
        +sub ScopeRecord
        +    {  return $_[0]->[SCOPE_RECORD];  };
        +
        +
        +
        +###############################################################################
        +#
        +#   Group: Parsing Functions
        +#
        +#   These functions are good general language building blocks.  Use them to create your language-specific parser.
        +#
        +#   All functions work on <Tokens()> and assume it is set by <ParseForCommentsAndTokens()>.
        +#
        +
        +
        +#
        +#   Function: ParseForCommentsAndTokens
        +#
        +#   Loads the passed file, sends all appropriate comments to <NaturalDocs::Parser->OnComment()>, and breaks the rest into
        +#   an arrayref of tokens.  Tokens are defined as
        +#
        +#   - All consecutive alphanumeric and underscore characters.
        +#   - All consecutive whitespace.
        +#   - A single line break.  It will always be "\n"; you don't have to worry about platform differences.
        +#   - A single character not included above, which is usually a symbol.  Multiple consecutive ones each get their own token.
        +#
        +#   The result will be placed in <Tokens()>.
        +#
        +#   Parameters:
        +#
        +#       sourceFile - The source <FileName> to load and parse.
        +#       lineCommentSymbols - An arrayref of symbols that designate line comments, or undef if none.
        +#       blockCommentSymbols - An arrayref of symbol pairs that designate multiline comments, or undef if none.  Symbol pairs are
        +#                                            designated as two consecutive array entries, the opening symbol appearing first.
        +#       javadocLineCommentSymbols - An arrayref of symbols that designate the start of a JavaDoc comment, or undef if none.
        +#       javadocBlockCommentSymbols - An arrayref of symbol pairs that designate multiline JavaDoc comments, or undef if none.
        +#
        +#   Notes:
        +#
        +#       - This function automatically calls <ClearAutoTopics()> and <ClearScopeStack()>.  You only need to call those functions
        +#         manually if you override this one.
        +#       - To save parsing time, all comment lines sent to <NaturalDocs::Parser->OnComment()> will be replaced with blank lines
        +#         in <Tokens()>.  It's all the same to most languages.
        +#
        +sub ParseForCommentsAndTokens #(FileName sourceFile, string[] lineCommentSymbols, string[] blockCommentSymbols, string[] javadocLineCommentSymbols, string[] javadocBlockCommentSymbols)
        +    {
        +    my ($self, $sourceFile, $lineCommentSymbols, $blockCommentSymbols,
        +           $javadocLineCommentSymbols, $javadocBlockCommentSymbols) = @_;
        +
        +    open(SOURCEFILEHANDLE, '<' . $sourceFile)
        +        or die "Couldn't open input file " . $sourceFile . "\n";
        +
        +    my $lineReader = NaturalDocs::LineReader->New(\*SOURCEFILEHANDLE);
        +
        +    my $tokens = [ ];
        +    $self->SetTokens($tokens);
        +
        +    # For convenience.
        +    $self->ClearAutoTopics();
        +    $self->ClearScopeStack();
        +
        +
        +    # Load and preprocess the file
        +
        +    my @lines = $lineReader->GetAll();
        +    close(SOURCEFILEHANDLE);
        +
        +    $self->PreprocessFile(\@lines);
        +
        +
        +    # Go through the file
        +
        +    my $lineIndex = 0;
        +
        +    while ($lineIndex < scalar @lines)
        +        {
        +        my $line = $lines[$lineIndex];
        +
        +        my @commentLines;
        +        my $commentLineNumber;
        +        my $isJavaDoc;
        +        my $closingSymbol;
        +
        +
        +        # Retrieve single line comments.  This leaves $lineIndex at the next line.
        +
        +        if ( ($isJavaDoc = $self->StripOpeningJavaDocSymbols(\$line, $javadocLineCommentSymbols)) ||
        +              $self->StripOpeningSymbols(\$line, $lineCommentSymbols))
        +            {
        +            $commentLineNumber = $lineIndex + 1;
        +
        +            do
        +                {
        +                push @commentLines, $line;
        +                push @$tokens, "\n";
        +
        +                $lineIndex++;
        +
        +                if ($lineIndex >= scalar @lines)
        +                    {  goto EndDo;  };
        +
        +                $line = $lines[$lineIndex];
        +                }
        +            while ($self->StripOpeningSymbols(\$line, $lineCommentSymbols));
        +
        +            EndDo:  # I hate Perl sometimes.
        +            }
        +
        +
        +        # Retrieve multiline comments.  This leaves $lineIndex at the next line.
        +
        +        elsif ( ($isJavaDoc = $self->StripOpeningJavaDocBlockSymbols(\$line, $javadocBlockCommentSymbols)) ||
        +                 ($closingSymbol = $self->StripOpeningBlockSymbols(\$line, $blockCommentSymbols)) )
        +            {
        +            $commentLineNumber = $lineIndex + 1;
        +
        +            if ($isJavaDoc)
        +                {  $closingSymbol = $isJavaDoc;  };
        +
        +            # Note that it is possible for a multiline comment to start correctly but not end so.  We want those comments to stay in
        +            # the code.  For example, look at this prototype with this splint annotation:
        +            #
        +            # int get_array(integer_t id,
        +            #                    /*@out@*/ array_t array);
        +            #
        +            # The annotation starts correctly but doesn't end so because it is followed by code on the same line.
        +
        +            my ($lineRemainder, $isMultiLine);
        +
        +            for (;;)
        +                {
        +                $lineRemainder = $self->StripClosingSymbol(\$line, $closingSymbol);
        +
        +                push @commentLines, $line;
        +
        +                #  If we found an end comment symbol...
        +                if (defined $lineRemainder)
        +                    {  last;  };
        +
        +                push @$tokens, "\n";
        +                $lineIndex++;
        +                $isMultiLine = 1;
        +
        +                if ($lineIndex >= scalar @lines)
        +                    {  last;  };
        +
        +                $line = $lines[$lineIndex];
        +                };
        +
        +            if ($lineRemainder !~ /^[ \t]*$/)
        +                {
        +                # If there was something past the closing symbol this wasn't an acceptable comment.
        +
        +                if ($isMultiLine)
        +                    {  $self->TokenizeLine($lineRemainder);  }
        +                else
        +                    {
        +                    # We go back to the original line if it wasn't a multiline comment because we want the comment to stay in the
        +                    # code.  Otherwise the /*@out@*/ from the example would be removed.
        +                    $self->TokenizeLine($lines[$lineIndex]);
        +                    };
        +
        +                @commentLines = ( );
        +                }
        +            else
        +                {
        +                push @$tokens, "\n";
        +                };
        +
        +            $lineIndex++;
        +            }
        +
        +
        +        # Otherwise just add it to the code.
        +
        +        else
        +            {
        +            $self->TokenizeLine($line);
        +            $lineIndex++;
        +            };
        +
        +
        +        # If there were comments, send them to Parser->OnComment().
        +
        +        if (scalar @commentLines)
        +            {
        +            NaturalDocs::Parser->OnComment(\@commentLines, $commentLineNumber, $isJavaDoc);
        +            @commentLines = ( );
        +            $isJavaDoc = undef;
        +            };
        +
        +        # $lineIndex was incremented by the individual code paths above.
        +
        +        };  # while ($lineIndex < scalar @lines)
        +    };
        +
        +
        +#
        +#   Function: PreprocessFile
        +#
        +#   An overridable function if you'd like to preprocess the file before it goes into <ParseForCommentsAndTokens()>.
        +#
        +#   Parameters:
        +#
        +#       lines - An arrayref to the file's lines.  Each line has its line break stripped off, but is otherwise untouched.
        +#
        +sub PreprocessFile #(lines)
        +    {
        +    };
        +
        +
        +#
        +#   Function: TokenizeLine
        +#
        +#   Converts the passed line to tokens as described in <ParseForCommentsAndTokens> and adds them to <Tokens()>.  Also
        +#   adds a line break token after it.
        +#
        +sub TokenizeLine #(line)
        +    {
        +    my ($self, $line) = @_;
        +    push @{$self->Tokens()}, $line =~ /(\w+|[ \t]+|.)/g, "\n";
        +    };
        +
        +
        +#
        +#   Function: TryToSkipString
        +#
        +#   If the position is on a string delimiter, moves the position to the token following the closing delimiter, or past the end of the
        +#   tokens if there is none.  Assumes all other characters are allowed in the string, the delimiter itself is allowed if it's preceded by
        +#   a backslash, and line breaks are allowed in the string.
        +#
        +#   Parameters:
        +#
        +#       indexRef - A reference to the position's index into <Tokens()>.
        +#       lineNumberRef - A reference to the position's line number.
        +#       openingDelimiter - The opening string delimiter, such as a quote or an apostrophe.
        +#       closingDelimiter - The closing string delimiter, if different.  If not defined, assumes the same as openingDelimiter.
        +#       startContentIndexRef - A reference to a variable in which to store the index of the first token of the string's content.
        +#                                         May be undef.
        +#       endContentIndexRef - A reference to a variable in which to store the index of the end of the string's content, which is one
        +#                                        past the last index of content.  May be undef.
        +#
        +#   Returns:
        +#
        +#       Whether the position was on the passed delimiter or not.  The index, line number, and content index ref variables will be
        +#       updated only if true.
        +#
        +sub TryToSkipString #(indexRef, lineNumberRef, openingDelimiter, closingDelimiter, startContentIndexRef, endContentIndexRef)
        +    {
        +    my ($self, $index, $lineNumber, $openingDelimiter, $closingDelimiter, $startContentIndexRef, $endContentIndexRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    if (!defined $closingDelimiter)
        +        {  $closingDelimiter = $openingDelimiter;  };
        +
        +    if ($tokens->[$$index] ne $openingDelimiter)
        +        {  return undef;  };
        +
        +
        +    $$index++;
        +    if (defined $startContentIndexRef)
        +        {  $$startContentIndexRef = $$index;  };
        +
        +    while ($$index < scalar @$tokens)
        +        {
        +        if ($tokens->[$$index] eq "\\")
        +            {
        +            # Skip the token after it.
        +            $$index += 2;
        +            }
        +        elsif ($tokens->[$$index] eq "\n")
        +            {
        +            $$lineNumber++;
        +            $$index++;
        +            }
        +        elsif ($tokens->[$$index] eq $closingDelimiter)
        +            {
        +            if (defined $endContentIndexRef)
        +                {  $$endContentIndexRef = $$index;  };
        +
        +            $$index++;
        +            last;
        +            }
        +        else
        +            {
        +            $$index++;
        +            };
        +        };
        +
        +    if ($$index >= scalar @$tokens && defined $endContentIndexRef)
        +        {  $$endContentIndexRef = scalar @$tokens;  };
        +
        +    return 1;
        +    };
        +
        +
        +#
        +#   Function: SkipRestOfLine
        +#
        +#   Moves the position to the token following the next line break, or past the end of the tokens array if there is none.  Useful for
        +#   line comments.
        +#
        +#   Note that it skips blindly.  It assumes there cannot be anything of interest, such as a string delimiter, between the position
        +#   and the end of the line.
        +#
        +#   Parameters:
        +#
        +#       indexRef - A reference to the position's index into <Tokens()>.
        +#       lineNumberRef - A reference to the position's line number.
        +
        +sub SkipRestOfLine #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $index, $lineNumber) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    while ($$index < scalar @$tokens)
        +        {
        +        if ($tokens->[$$index] eq "\n")
        +            {
        +            $$lineNumber++;
        +            $$index++;
        +            last;
        +            }
        +        else
        +            {
        +            $$index++;
        +            };
        +        };
        +    };
        +
        +
        +#
        +#   Function: SkipUntilAfter
        +#
        +#   Moves the position to the token following the next occurance of a particular token sequence, or past the end of the tokens
        +#   array if it never occurs.  Useful for multiline comments.
        +#
        +#   Note that it skips blindly.  It assumes there cannot be anything of interest, such as a string delimiter, between the position
        +#   and the end of the line.
        +#
        +#   Parameters:
        +#
        +#       indexRef - A reference to the position's index.
        +#       lineNumberRef - A reference to the position's line number.
        +#       token - A token that must be matched.  Can be specified multiple times to match a sequence of tokens.
        +#
        +sub SkipUntilAfter #(indexRef, lineNumberRef, token, token, ...)
        +    {
        +    my ($self, $index, $lineNumber, @target) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    while ($$index < scalar @$tokens)
        +        {
        +        if ($tokens->[$$index] eq $target[0] && ($$index + scalar @target) <= scalar @$tokens)
        +            {
        +            my $match = 1;
        +
        +            for (my $i = 1; $i < scalar @target; $i++)
        +                {
        +                if ($tokens->[$$index+$i] ne $target[$i])
        +                    {
        +                    $match = 0;
        +                    last;
        +                    };
        +                };
        +
        +            if ($match)
        +                {
        +                $$index += scalar @target;
        +                return;
        +                };
        +            };
        +
        +        if ($tokens->[$$index] eq "\n")
        +            {
        +            $$lineNumber++;
        +            $$index++;
        +            }
        +        else
        +            {
        +            $$index++;
        +            };
        +        };
        +    };
        +
        +
        +#
        +#   Function: IsFirstLineToken
        +#
        +#   Returns whether the position is at the first token of a line, not including whitespace.
        +#
        +#   Parameters:
        +#
        +#       index - The index of the position.
        +#
        +sub IsFirstLineToken #(index)
        +    {
        +    my ($self, $index) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    if ($index == 0)
        +        {  return 1;  };
        +
        +    $index--;
        +
        +    if ($tokens->[$index] =~ /^[ \t]/)
        +        {  $index--;  };
        +
        +    if ($index <= 0 || $tokens->[$index] eq "\n")
        +        {  return 1;  }
        +    else
        +        {  return undef;  };
        +    };
        +
        +
        +#
        +#   Function: IsLastLineToken
        +#
        +#   Returns whether the position is at the last token of a line, not including whitespace.
        +#
        +#   Parameters:
        +#
        +#       index - The index of the position.
        +#
        +sub IsLastLineToken #(index)
        +    {
        +    my ($self, $index) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    do
        +        {  $index++;  }
        +    while ($index < scalar @$tokens && $tokens->[$index] =~ /^[ \t]/);
        +
        +    if ($index >= scalar @$tokens || $tokens->[$index] eq "\n")
        +        {  return 1;  }
        +    else
        +        {  return undef;  };
        +    };
        +
        +
        +#
        +#   Function: IsAtSequence
        +#
        +#   Returns whether the position is at a sequence of tokens.
        +#
        +#   Parameters:
        +#
        +#       index - The index of the position.
        +#       token - A token to match.  Specify multiple times to specify the sequence.
        +#
        +sub IsAtSequence #(index, token, token, token ...)
        +    {
        +    my ($self, $index, @target) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    if ($index + scalar @target > scalar @$tokens)
        +        {  return undef;  };
        +
        +    for (my $i = 0; $i < scalar @target; $i++)
        +        {
        +        if ($tokens->[$index + $i] ne $target[$i])
        +            {  return undef;  };
        +        };
        +
        +    return 1;
        +    };
        +
        +
        +#
        +#   Function: IsBackslashed
        +#
        +#   Returns whether the position is after a backslash.
        +#
        +#   Parameters:
        +#
        +#       index - The index of the postition.
        +#
        +sub IsBackslashed #(index)
        +    {
        +    my ($self, $index) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    if ($index > 0 && $tokens->[$index - 1] eq "\\")
        +        {  return 1;  }
        +    else
        +        {  return undef;  };
        +    };
        +
        +
        +
        +###############################################################################
        +#
        +#   Group: Scope Functions
        +#
        +#   These functions provide a nice scope stack implementation for language-specific parsers to use.  The default implementation
        +#   makes the following assumptions.
        +#
        +#   - Packages completely replace one another, rather than concatenating.  You need to concatenate manually if that's the
        +#     behavior.
        +#
        +#   - Packages inherit, so if a scope level doesn't set its own, the package is the same as the parent scope's.
        +#
        +
        +
        +#
        +#   Function: ClearScopeStack
        +#
        +#   Clears the scope stack for a new file.  Not necessary if you call <ParseForCommentsAndTokens()>.
        +#
        +sub ClearScopeStack
        +    {
        +    my ($self) = @_;
        +    $self->[SCOPE_STACK] = [ NaturalDocs::Languages::Advanced::Scope->New(undef, undef) ];
        +    $self->[SCOPE_RECORD] = [ NaturalDocs::Languages::Advanced::ScopeChange->New(undef, 1) ];
        +    };
        +
        +
        +#
        +#   Function: StartScope
        +#
        +#   Records a new scope level.
        +#
        +#   Parameters:
        +#
        +#       closingSymbol - The closing symbol of the scope.
        +#       lineNumber - The line number where the scope begins.
        +#       package - The package <SymbolString> of the scope.  Undef means no change.
        +#
        +sub StartScope #(closingSymbol, lineNumber, package)
        +    {
        +    my ($self, $closingSymbol, $lineNumber, $package) = @_;
        +
        +    push @{$self->[SCOPE_STACK]},
        +            NaturalDocs::Languages::Advanced::Scope->New($closingSymbol, $package, $self->CurrentUsing());
        +
        +    $self->AddToScopeRecord($self->CurrentScope(), $lineNumber);
        +    };
        +
        +
        +#
        +#   Function: EndScope
        +#
        +#   Records the end of the current scope level.  Note that this is blind; you need to manually check <ClosingScopeSymbol()> if
        +#   you need to determine if it is correct to do so.
        +#
        +#   Parameters:
        +#
        +#       lineNumber - The line number where the scope ends.
        +#
        +sub EndScope #(lineNumber)
        +    {
        +    my ($self, $lineNumber) = @_;
        +
        +    if (scalar @{$self->[SCOPE_STACK]} > 1)
        +        {  pop @{$self->[SCOPE_STACK]};  };
        +
        +    $self->AddToScopeRecord($self->CurrentScope(), $lineNumber);
        +    };
        +
        +
        +#
        +#   Function: ClosingScopeSymbol
        +#
        +#   Returns the symbol that ends the current scope level, or undef if we are at the top level.
        +#
        +sub ClosingScopeSymbol
        +    {
        +    my ($self) = @_;
        +    return $self->[SCOPE_STACK]->[-1]->ClosingSymbol();
        +    };
        +
        +
        +#
        +#   Function: CurrentScope
        +#
        +#   Returns the current calculated scope, or undef if global.  The default implementation just returns <CurrentPackage()>.  This
        +#   is a separate function because C++ may need to track namespaces and classes separately, and so the current scope would
        +#   be a concatenation of them.
        +#
        +sub CurrentScope
        +    {
        +    return $_[0]->CurrentPackage();
        +    };
        +
        +
        +#
        +#   Function: CurrentPackage
        +#
        +#   Returns the current calculated package or class, or undef if none.
        +#
        +sub CurrentPackage
        +    {
        +    my ($self) = @_;
        +
        +    my $package;
        +
        +    for (my $index = scalar @{$self->[SCOPE_STACK]} - 1; $index >= 0 && !defined $package; $index--)
        +        {
        +        $package = $self->[SCOPE_STACK]->[$index]->Package();
        +        };
        +
        +    return $package;
        +    };
        +
        +
        +#
        +#   Function: SetPackage
        +#
        +#   Sets the package for the current scope level.
        +#
        +#   Parameters:
        +#
        +#       package - The new package <SymbolString>.
        +#       lineNumber - The line number the new package starts on.
        +#
        +sub SetPackage #(package, lineNumber)
        +    {
        +    my ($self, $package, $lineNumber) = @_;
        +    $self->[SCOPE_STACK]->[-1]->SetPackage($package);
        +
        +    $self->AddToScopeRecord($self->CurrentScope(), $lineNumber);
        +    };
        +
        +
        +#
        +#   Function: CurrentUsing
        +#
        +#   Returns the current calculated arrayref of <SymbolStrings> from Using statements, or undef if none.
        +#
        +sub CurrentUsing
        +    {
        +    my ($self) = @_;
        +    return $self->[SCOPE_STACK]->[-1]->Using();
        +    };
        +
        +
        +#
        +#   Function: AddUsing
        +#
        +#   Adds a Using <SymbolString> to the current scope.
        +#
        +sub AddUsing #(using)
        +    {
        +    my ($self, $using) = @_;
        +    $self->[SCOPE_STACK]->[-1]->AddUsing($using);
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Support Functions
        +
        +
        +#
        +#   Function: AddToScopeRecord
        +#
        +#   Adds a change to the scope record, condensing unnecessary entries.
        +#
        +#   Parameters:
        +#
        +#       newScope - What the scope <SymbolString> changed to.
        +#       lineNumber - Where the scope changed.
        +#
        +sub AddToScopeRecord #(newScope, lineNumber)
        +    {
        +    my ($self, $scope, $lineNumber) = @_;
        +    my $scopeRecord = $self->ScopeRecord();
        +
        +    if ($scope ne $scopeRecord->[-1]->Scope())
        +        {
        +        if ($scopeRecord->[-1]->LineNumber() == $lineNumber)
        +            {  $scopeRecord->[-1]->SetScope($scope);  }
        +        else
        +            {  push @$scopeRecord, NaturalDocs::Languages::Advanced::ScopeChange->New($scope, $lineNumber);  };
        +        };
        +    };
        +
        +
        +#
        +#   Function: CreateString
        +#
        +#   Converts the specified tokens into a string and returns it.
        +#
        +#   Parameters:
        +#
        +#       startIndex - The starting index to convert.
        +#       endIndex - The ending index, which is *not inclusive*.
        +#
        +#   Returns:
        +#
        +#       The string.
        +#
        +sub CreateString #(startIndex, endIndex)
        +    {
        +    my ($self, $startIndex, $endIndex) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    my $string;
        +
        +    while ($startIndex < $endIndex && $startIndex < scalar @$tokens)
        +        {
        +        $string .= $tokens->[$startIndex];
        +        $startIndex++;
        +        };
        +
        +    return $string;
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/Advanced/Scope.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/Advanced/Scope.pm
        new file mode 100755
        index 0000000..3921810
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/Advanced/Scope.pm
        @@ -0,0 +1,96 @@
        +###############################################################################
        +#
        +#   Class: NaturalDocs::Languages::Advanced::Scope
        +#
        +###############################################################################
        +#
        +#   A class used to store a scope level.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::Languages::Advanced::Scope;
        +
        +#
        +#   Constants: Implementation
        +#
        +#   The object is implemented as a blessed arrayref.  The constants below are used as indexes.
        +#
        +#   CLOSING_SYMBOL - The closing symbol character of the scope.
        +#   PACKAGE - The package <SymbolString> of the scope.
        +#   USING - An arrayref of <SymbolStrings> for using statements, or undef if none.
        +#
        +use NaturalDocs::DefineMembers 'CLOSING_SYMBOL', 'PACKAGE', 'USING';
        +# Dependency: New() depends on the order of these constants as well as that there is no inherited members.
        +
        +
        +#
        +#   Function: New
        +#
        +#   Creates and returns a new object.
        +#
        +#   Parameters:
        +#
        +#       closingSymbol - The closing symbol character of the scope.
        +#       package - The package <SymbolString> of the scope.
        +#       using - An arrayref of using <SymbolStrings>, or undef if none.  The contents of the array will be duplicated.
        +#
        +#       If package is set to undef, it is assumed that it inherits the value of the previous scope on the stack.
        +#
        +sub New #(closingSymbol, package, using)
        +    {
        +    # Dependency: This depends on the order of the parameters matching the constants, and that there are no inherited
        +    # members.
        +    my $package = shift;
        +
        +    my $object = [ @_ ];
        +    bless $object, $package;
        +
        +    if (defined $object->[USING])
        +        {  $object->[USING] = [ @{$object->[USING]} ];  };
        +
        +    return $object;
        +    };
        +
        +
        +# Function: ClosingSymbol
        +# Returns the closing symbol character of the scope.
        +sub ClosingSymbol
        +    {  return $_[0]->[CLOSING_SYMBOL];  };
        +
        +# Function: Package
        +# Returns the package <SymbolString> of the scope, or undef if none.
        +sub Package
        +    {  return $_[0]->[PACKAGE];  };
        +
        +# Function: SetPackage
        +# Sets the package <SymbolString> of the scope.
        +sub SetPackage #(package)
        +    {  $_[0]->[PACKAGE] = $_[1];  };
        +
        +# Function: Using
        +# Returns an arrayref of <SymbolStrings> for using statements, or undef if none
        +sub Using
        +    {  return $_[0]->[USING];  };
        +
        +# Function: AddUsing
        +# Adds a <SymbolString> to the <Using()> array.
        +sub AddUsing #(using)
        +    {
        +    my ($self, $using) = @_;
        +
        +    if (!defined $self->[USING])
        +        {  $self->[USING] = [ ];  };
        +
        +    push @{$self->[USING]}, $using;
        +    };
        +
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/Advanced/ScopeChange.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/Advanced/ScopeChange.pm
        new file mode 100755
        index 0000000..8774d5b
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/Advanced/ScopeChange.pm
        @@ -0,0 +1,71 @@
        +###############################################################################
        +#
        +#   Class: NaturalDocs::Languages::Advanced::ScopeChange
        +#
        +###############################################################################
        +#
        +#   A class used to store a scope change.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::Languages::Advanced::ScopeChange;
        +
        +#
        +#   Constants: Implementation
        +#
        +#   The object is implemented as a blessed arrayref.  The constants below are used as indexes.
        +#
        +#   SCOPE - The new scope <SymbolString>.
        +#   LINE_NUMBER - The line number of the change.
        +#
        +use NaturalDocs::DefineMembers 'SCOPE', 'LINE_NUMBER';
        +# Dependency: New() depends on the order of these constants as well as that there is no inherited members.
        +
        +
        +#
        +#   Function: New
        +#
        +#   Creates and returns a new object.
        +#
        +#   Parameters:
        +#
        +#       scope - The <SymbolString> the scope was changed to.
        +#       lineNumber - What line it occurred on.
        +#
        +sub New #(scope, lineNumber)
        +    {
        +    # Dependency: This depends on the order of the parameters matching the constants, and that there are no inherited
        +    # members.
        +    my $self = shift;
        +
        +    my $object = [ @_ ];
        +    bless $object, $self;
        +
        +    return $object;
        +    };
        +
        +
        +# Function: Scope
        +# Returns the <SymbolString> the scope was changed to.
        +sub Scope
        +    {  return $_[0]->[SCOPE];  };
        +
        +# Function: SetScope
        +# Replaces the <SymbolString> the scope was changed to.
        +sub SetScope #(scope)
        +    {  $_[0]->[SCOPE] = $_[1];  };
        +
        +# Function: LineNumber
        +# Returns the line number of the change.
        +sub LineNumber
        +    {  return $_[0]->[LINE_NUMBER];  };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/Base.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/Base.pm
        new file mode 100755
        index 0000000..15880c4
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/Base.pm
        @@ -0,0 +1,833 @@
        +###############################################################################
        +#
        +#   Class: NaturalDocs::Languages::Base
        +#
        +###############################################################################
        +#
        +#   A base class for all programming language parsers.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::Languages::Base;
        +
        +use NaturalDocs::DefineMembers 'NAME', 'Name()',
        +                                                 'EXTENSIONS', 'Extensions()', 'SetExtensions() duparrayref',
        +                                                 'SHEBANG_STRINGS', 'ShebangStrings()', 'SetShebangStrings() duparrayref',
        +                                                 'IGNORED_PREFIXES',
        +                                                 'ENUM_VALUES';
        +
        +use base 'Exporter';
        +our @EXPORT = ('ENUM_GLOBAL', 'ENUM_UNDER_TYPE', 'ENUM_UNDER_PARENT');
        +
        +
        +#
        +#   Constants: EnumValuesType
        +#
        +#   How enum values are handled in the language.
        +#
        +#   ENUM_GLOBAL - Values are always global and thus 'value'.
        +#   ENUM_UNDER_TYPE - Values are under the type in the hierarchy, and thus 'package.enum.value'.
        +#   ENUM_UNDER_PARENT - Values are under the parent in the hierarchy, putting them on the same level as the enum itself.  Thus
        +#                                       'package.value'.
        +#
        +use constant ENUM_GLOBAL => 1;
        +use constant ENUM_UNDER_TYPE => 2;
        +use constant ENUM_UNDER_PARENT => 3;
        +
        +
        +#
        +#   Handle: SOURCEFILEHANDLE
        +#
        +#   The handle of the source file currently being parsed.
        +#
        +
        +
        +#
        +#   Function: New
        +#
        +#   Creates and returns a new object.
        +#
        +#   Parameters:
        +#
        +#       name - The name of the language.
        +#
        +sub New #(name)
        +    {
        +    my ($selfPackage, $name) = @_;
        +
        +    my $object = [ ];
        +
        +    $object->[NAME] = $name;
        +
        +    bless $object, $selfPackage;
        +    return $object;
        +    };
        +
        +
        +#
        +#   Functions: Members
        +#
        +#   Name - Returns the language's name.
        +#   Extensions - Returns an arrayref of the language's file extensions, or undef if none.
        +#   SetExtensions - Replaces the arrayref of the language's file extensions.
        +#   ShebangStrings - Returns an arrayref of the language's shebang strings, or undef if none.
        +#   SetShebangStrings - Replaces the arrayref of the language's shebang strings.
        +#
        +
        +#
        +#   Function: PackageSeparator
        +#   Returns the language's package separator string.
        +#
        +sub PackageSeparator
        +    {  return '.';  };
        +
        +#
        +#   Function: PackageSeparatorWasSet
        +#   Returns whether the language's package separator string was ever changed from the default.
        +#
        +sub PackageSeparatorWasSet
        +    {  return 0;  };
        +
        +
        +#
        +#   Function: EnumValues
        +#   Returns the <EnumValuesType> that describes how the language handles enums.
        +#
        +sub EnumValues
        +    {  return ENUM_GLOBAL;  };
        +
        +
        +#
        +#   Function: IgnoredPrefixesFor
        +#
        +#   Returns an arrayref of ignored prefixes for the passed <TopicType>, or undef if none.  The array is sorted so that the longest
        +#   prefixes are first.
        +#
        +sub IgnoredPrefixesFor #(type)
        +    {
        +    my ($self, $type) = @_;
        +
        +    if (defined $self->[IGNORED_PREFIXES])
        +        {  return $self->[IGNORED_PREFIXES]->{$type};  }
        +    else
        +        {  return undef;  };
        +    };
        +
        +
        +#
        +#   Function: SetIgnoredPrefixesFor
        +#
        +#   Replaces the arrayref of ignored prefixes for the passed <TopicType>.
        +#
        +sub SetIgnoredPrefixesFor #(type, prefixes)
        +    {
        +    my ($self, $type, $prefixesRef) = @_;
        +
        +    if (!defined $self->[IGNORED_PREFIXES])
        +        {  $self->[IGNORED_PREFIXES] = { };  };
        +
        +    if (!defined $prefixesRef)
        +        {  delete $self->[IGNORED_PREFIXES]->{$type};  }
        +    else
        +        {
        +        my $prefixes = [ @$prefixesRef ];
        +
        +        # Sort prefixes to be longest to shortest.
        +        @$prefixes = sort { length $b <=> length $a } @$prefixes;
        +
        +        $self->[IGNORED_PREFIXES]->{$type} = $prefixes;
        +        };
        +    };
        +
        +
        +#
        +#   Function: HasIgnoredPrefixes
        +#
        +#   Returns whether the language has any ignored prefixes at all.
        +#
        +sub HasIgnoredPrefixes
        +    {  return defined $_[0]->[IGNORED_PREFIXES];  };
        +
        +
        +#
        +#   Function: CopyIgnoredPrefixesOf
        +#
        +#   Copies all the ignored prefix settings of the passed <NaturalDocs::Languages::Base> object.
        +#
        +sub CopyIgnoredPrefixesOf #(language)
        +    {
        +    my ($self, $language) = @_;
        +
        +    if ($language->HasIgnoredPrefixes())
        +        {
        +        $self->[IGNORED_PREFIXES] = { };
        +
        +        while (my ($topicType, $prefixes) = each %{$language->[IGNORED_PREFIXES]})
        +            {
        +            $self->[IGNORED_PREFIXES]->{$topicType} = [ @$prefixes ];
        +            };
        +        };
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Parsing Functions
        +
        +
        +#
        +#   Function: ParseFile
        +#
        +#   Parses the passed source file, sending comments acceptable for documentation to <NaturalDocs::Parser->OnComment()>.
        +#   This *must* be defined by a subclass.
        +#
        +#   Parameters:
        +#
        +#       sourceFile - The <FileName> of the source file to parse.
        +#       topicList - A reference to the list of <NaturalDocs::Parser::ParsedTopics> being built by the file.
        +#
        +#   Returns:
        +#
        +#       The array ( autoTopics, scopeRecord ).
        +#
        +#       autoTopics - An arrayref of automatically generated <NaturalDocs::Parser::ParsedTopics> from the file, or undef if none.
        +#       scopeRecord - An arrayref of <NaturalDocs::Languages::Advanced::ScopeChanges>, or undef if none.
        +#
        +
        +
        +#
        +#   Function: ParsePrototype
        +#
        +#   Parses the prototype and returns it as a <NaturalDocs::Languages::Prototype> object.
        +#
        +#   Parameters:
        +#
        +#       type - The <TopicType>.
        +#       prototype - The text prototype.
        +#
        +#   Returns:
        +#
        +#       A <NaturalDocs::Languages::Prototype> object.
        +#
        +sub ParsePrototype #(type, prototype)
        +    {
        +    my ($self, $type, $prototype) = @_;
        +
        +    my $isClass = NaturalDocs::Topics->TypeInfo($type)->ClassHierarchy();
        +
        +    if ($prototype !~ /\(.*[^ ].*\)/ && (!$isClass || $prototype !~ /\{.*[^ ].*\}/))
        +        {
        +        my $object = NaturalDocs::Languages::Prototype->New($prototype);
        +        return $object;
        +        };
        +
        +
        +    # Parse the parameters out of the prototype.
        +
        +    my @tokens = $prototype =~ /([^\(\)\[\]\{\}\<\>\'\"\,\;]+|.)/g;
        +
        +    my $parameter;
        +    my @parameterLines;
        +
        +    my @symbolStack;
        +    my $finishedParameters;
        +
        +    my ($beforeParameters, $afterParameters);
        +
        +    foreach my $token (@tokens)
        +        {
        +        if ($finishedParameters)
        +            {  $afterParameters .= $token;  }
        +
        +        elsif ($symbolStack[-1] eq '\'' || $symbolStack[-1] eq '"')
        +            {
        +            if ($symbolStack[0] eq '(' || ($isClass && $symbolStack[0] eq '{'))
        +                {  $parameter .= $token;  }
        +            else
        +                {  $beforeParameters .= $token;  };
        +
        +            if ($token eq $symbolStack[-1])
        +                {  pop @symbolStack;  };
        +            }
        +
        +        elsif ($token =~ /^[\(\[\{\<\'\"]$/)
        +            {
        +            if ($symbolStack[0] eq '(' || ($isClass && $symbolStack[0] eq '{'))
        +                {  $parameter .= $token;   }
        +            else
        +                {  $beforeParameters .= $token;  };
        +
        +            push @symbolStack, $token;
        +            }
        +
        +        elsif ( ($token eq ')' && $symbolStack[-1] eq '(') ||
        +                 ($token eq ']' && $symbolStack[-1] eq '[') ||
        +                 ($token eq '}' && $symbolStack[-1] eq '{') ||
        +                 ($token eq '>' && $symbolStack[-1] eq '<') )
        +            {
        +            if ($symbolStack[0] eq '(')
        +                {
        +                if ($token eq ')' && scalar @symbolStack == 1)
        +                    {
        +                    if ($parameter ne ' ')
        +                        {  push @parameterLines, $parameter;  };
        +
        +                    $finishedParameters = 1;
        +                    $afterParameters .= $token;
        +                    }
        +                else
        +                    {  $parameter .= $token;  };
        +                }
        +            elsif ($isClass && $symbolStack[0] eq '{')
        +                {
        +                if ($token eq '}' && scalar @symbolStack == 1)
        +                    {
        +                    if ($parameter ne ' ')
        +                        {  push @parameterLines, $parameter;  };
        +
        +                    $finishedParameters = 1;
        +                    $afterParameters .= $token;
        +                    }
        +                else
        +                    {  $parameter .= $token;  };
        +                }
        +            else
        +                {
        +                $beforeParameters .= $token;
        +                };
        +
        +            pop @symbolStack;
        +            }
        +
        +        elsif ($token eq ',' || $token eq ';')
        +            {
        +            if ($symbolStack[0] eq '(' || ($isClass && $symbolStack[0] eq '{'))
        +                {
        +                if (scalar @symbolStack == 1)
        +                    {
        +                    push @parameterLines, $parameter . $token;
        +                    $parameter = undef;
        +                    }
        +                else
        +                    {
        +                    $parameter .= $token;
        +                    };
        +                }
        +            else
        +                {
        +                $beforeParameters .= $token;
        +                };
        +            }
        +
        +        else
        +            {
        +            if ($symbolStack[0] eq '(' || ($isClass && $symbolStack[0] eq '{'))
        +                {  $parameter .= $token;  }
        +            else
        +                {  $beforeParameters .= $token;  };
        +            };
        +        };
        +
        +    foreach my $part (\$beforeParameters, \$afterParameters)
        +        {
        +        $$part =~ s/^ //;
        +        $$part =~ s/ $//;
        +        };
        +
        +    my $prototypeObject = NaturalDocs::Languages::Prototype->New($beforeParameters, $afterParameters);
        +
        +
        +    # Parse the actual parameters.
        +
        +    foreach my $parameterLine (@parameterLines)
        +        {
        +        $prototypeObject->AddParameter( $self->ParseParameterLine($parameterLine) );
        +        };
        +
        +    return $prototypeObject;
        +    };
        +
        +
        +#
        +#   Function: ParseParameterLine
        +#
        +#   Parses a prototype parameter line and returns it as a <NaturalDocs::Languages::Prototype::Parameter> object.
        +#
        +#   This vesion assumes a C++ style line.  If you need a Pascal style line, override this function to forward to
        +#   <ParsePascalParameterLine()>.
        +#
        +#   > Function(parameter, type parameter, type parameter = value);
        +#
        +sub ParseParameterLine #(line)
        +    {
        +    my ($self, $line) = @_;
        +
        +    $line =~ s/^ //;
        +    $line =~ s/ $//;
        +
        +    my @tokens = $line =~ /([^ \(\)\{\}\[\]\<\>\'\"\=]+|.)/g;
        +
        +    my @symbolStack;
        +    my @parameterWords = ( undef );
        +    my ($defaultValue, $defaultValuePrefix, $inDefaultValue);
        +
        +    foreach my $token (@tokens)
        +        {
        +        if ($inDefaultValue)
        +            {  $defaultValue .= $token;  }
        +
        +        elsif ($symbolStack[-1] eq '\'' || $symbolStack[-1] eq '"')
        +            {
        +            $parameterWords[-1] .= $token;
        +
        +            if ($token eq $symbolStack[-1])
        +                {  pop @symbolStack;  };
        +            }
        +
        +        elsif ($token =~ /^[\(\[\{\<\'\"]$/)
        +            {
        +            push @symbolStack, $token;
        +            $parameterWords[-1] .= $token;
        +            }
        +
        +        elsif ( ($token eq ')' && $symbolStack[-1] eq '(') ||
        +                 ($token eq ']' && $symbolStack[-1] eq '[') ||
        +                 ($token eq '}' && $symbolStack[-1] eq '{') ||
        +                 ($token eq '>' && $symbolStack[-1] eq '<') )
        +            {
        +            pop @symbolStack;
        +            $parameterWords[-1] .= $token;
        +            }
        +
        +        elsif ($token eq ' ')
        +            {
        +            if (!scalar @symbolStack)
        +                {  push @parameterWords, undef;  }
        +            else
        +                {  $parameterWords[-1] .= $token;  };
        +            }
        +
        +        elsif ($token eq '=')
        +            {
        +            if (!scalar @symbolStack)
        +                {
        +                $defaultValuePrefix = $token;
        +                $inDefaultValue = 1;
        +                }
        +            else
        +                {  $parameterWords[-1] .= $token;  };
        +            }
        +
        +        else
        +            {
        +            $parameterWords[-1] .= $token;
        +            };
        +        };
        +
        +    my ($name, $namePrefix, $type, $typePrefix);
        +
        +    if (!$parameterWords[-1])
        +        {  pop @parameterWords;  };
        +
        +    $name = pop @parameterWords;
        +
        +    if ($parameterWords[-1]=~ /([\*\&]+)$/)
        +        {
        +        $namePrefix = $1;
        +        $parameterWords[-1] = substr($parameterWords[-1], 0, 0 - length($namePrefix));
        +        $parameterWords[-1] =~ s/ $//;
        +
        +        if (!$parameterWords[-1])
        +            {  pop @parameterWords;  };
        +        }
        +    elsif ($name =~ /^([\*\&]+)/)
        +        {
        +        $namePrefix = $1;
        +        $name = substr($name, length($namePrefix));
        +        $name =~ s/^ //;
        +        };
        +
        +    $type = pop @parameterWords;
        +    $typePrefix = join(' ', @parameterWords);
        +
        +    if ($typePrefix)
        +        {  $typePrefix .= ' ';  };
        +
        +    if ($type =~ /^([a-z0-9_\:\.]+(?:\.|\:\:))[a-z0-9_]/i)
        +        {
        +        my $attachedTypePrefix = $1;
        +
        +        $typePrefix .= $attachedTypePrefix;
        +        $type = substr($type, length($attachedTypePrefix));
        +        };
        +
        +    $defaultValue =~ s/ $//;
        +
        +    return NaturalDocs::Languages::Prototype::Parameter->New($type, $typePrefix, $name, $namePrefix,
        +                                                                                             $defaultValue, $defaultValuePrefix);
        +    };
        +
        +
        +#
        +#   Function: ParsePascalParameterLine
        +#
        +#   Parses a Pascal-like prototype parameter line and returns it as a <NaturalDocs::Languages::Prototype::Parameter> object.
        +#   Pascal lines are as follows:
        +#
        +#   > Function (name: type; name, name: type := value)
        +#
        +#   Also supports ActionScript lines
        +#
        +#   > Function (name: type, name, name: type = value)
        +#
        +sub ParsePascalParameterLine #(line)
        +    {
        +    my ($self, $line) = @_;
        +
        +    $line =~ s/^ //;
        +    $line =~ s/ $//;
        +
        +    my @tokens = $line =~ /([^\(\)\{\}\[\]\<\>\'\"\=\:]+|\:\=|.)/g;
        +    my ($type, $name, $defaultValue, $defaultValuePrefix, $afterName, $afterDefaultValue);
        +    my @symbolStack;
        +
        +    foreach my $token (@tokens)
        +        {
        +        if ($afterDefaultValue)
        +            {  $defaultValue .= $token;  }
        +
        +        elsif ($symbolStack[-1] eq '\'' || $symbolStack[-1] eq '"')
        +            {
        +            if ($afterName)
        +                {  $type .= $token;  }
        +            else
        +                {  $name .= $token;  };
        +
        +            if ($token eq $symbolStack[-1])
        +                {  pop @symbolStack;  };
        +            }
        +
        +        elsif ($token =~ /^[\(\[\{\<\'\"]$/)
        +            {
        +            push @symbolStack, $token;
        +
        +            if ($afterName)
        +                {  $type .= $token;  }
        +            else
        +                {  $name .= $token;  };
        +            }
        +
        +        elsif ( ($token eq ')' && $symbolStack[-1] eq '(') ||
        +                 ($token eq ']' && $symbolStack[-1] eq '[') ||
        +                 ($token eq '}' && $symbolStack[-1] eq '{') ||
        +                 ($token eq '>' && $symbolStack[-1] eq '<') )
        +            {
        +            pop @symbolStack;
        +
        +            if ($afterName)
        +                {  $type .= $token;  }
        +            else
        +                {  $name .= $token;  };
        +            }
        +
        +        elsif ($afterName)
        +            {
        +            if (($token eq ':=' || $token eq '=') && !scalar @symbolStack)
        +                {
        +                $defaultValuePrefix = $token;
        +                $afterDefaultValue = 1;
        +                }
        +            else
        +                {  $type .= $token;  };
        +            }
        +
        +        elsif ($token eq ':' && !scalar @symbolStack)
        +            {
        +            $name .= $token;
        +            $afterName = 1;
        +            }
        +
        +        else
        +            {  $name .= $token;  };
        +        };
        +
        +    foreach my $part (\$type, \$name, \$defaultValue)
        +        {
        +        $$part =~ s/^ //;
        +        $$part =~ s/ $//;
        +        };
        +
        +    return NaturalDocs::Languages::Prototype::Parameter->New($type, undef, $name, undef, $defaultValue, $defaultValuePrefix);
        +    };
        +
        +
        +#
        +#   Function: TypeBeforeParameter
        +#
        +#   Returns whether the type appears before the parameter in prototypes.
        +#
        +#   For example, it does in C++
        +#   > void Function (int a, int b)
        +#
        +#   but does not in Pascal
        +#   > function Function (a: int; b, c: int)
        +#
        +sub TypeBeforeParameter
        +    {
        +    return 1;
        +    };
        +
        +
        +
        +#
        +#   Function: IgnoredPrefixLength
        +#
        +#   Returns the length of the prefix that should be ignored in the index, or zero if none.
        +#
        +#   Parameters:
        +#
        +#       name - The name of the symbol.
        +#       type  - The symbol's <TopicType>.
        +#
        +#   Returns:
        +#
        +#       The length of the prefix to ignore, or zero if none.
        +#
        +sub IgnoredPrefixLength #(name, type)
        +    {
        +    my ($self, $name, $type) = @_;
        +
        +    foreach my $prefixes ($self->IgnoredPrefixesFor($type), $self->IgnoredPrefixesFor(::TOPIC_GENERAL()))
        +        {
        +        if (defined $prefixes)
        +            {
        +            foreach my $prefix (@$prefixes)
        +                {
        +                if (substr($name, 0, length($prefix)) eq $prefix)
        +                    {  return length($prefix);  };
        +                };
        +            };
        +        };
        +
        +    return 0;
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Support Functions
        +
        +
        +#
        +#   Function: StripOpeningSymbols
        +#
        +#   Determines if the line starts with any of the passed symbols, and if so, replaces it with spaces.  This only happens
        +#   if the only thing before it on the line is whitespace.
        +#
        +#   Parameters:
        +#
        +#       lineRef - A reference to the line to check.
        +#       symbols - An arrayref of the symbols to check for.
        +#
        +#   Returns:
        +#
        +#       If the line starts with any of the passed comment symbols, it will replace it in the line with spaces and return the symbol.
        +#       If the line doesn't, it will leave the line alone and return undef.
        +#
        +sub StripOpeningSymbols #(lineRef, symbols)
        +    {
        +    my ($self, $lineRef, $symbols) = @_;
        +
        +    if (!defined $symbols)
        +        {  return undef;  };
        +
        +    my ($index, $symbol) = ::FindFirstSymbol($$lineRef, $symbols);
        +
        +    if ($index != -1 && substr($$lineRef, 0, $index) =~ /^[ \t]*$/)
        +        {
        +        return substr($$lineRef, $index, length($symbol), ' ' x length($symbol));
        +        };
        +
        +    return undef;
        +    };
        +
        +
        +#
        +#   Function: StripOpeningJavaDocSymbols
        +#
        +#   Determines if the line starts with any of the passed symbols, and if so, replaces it with spaces.  This only happens
        +#   if the only thing before it on the line is whitespace and the next character after it is whitespace or the end of the line.
        +#
        +#   Parameters:
        +#
        +#       lineRef - A reference to the line to check.
        +#       symbols - An arrayref of the symbols to check for.
        +#
        +#   Returns:
        +#
        +#       If the line starts with any of the passed comment symbols, it will replace it in the line with spaces and return the symbol.
        +#       If the line doesn't, it will leave the line alone and return undef.
        +#
        +sub StripOpeningJavaDocSymbols #(lineRef, symbols)
        +    {
        +    my ($self, $lineRef, $symbols) = @_;
        +
        +    if (!defined $symbols)
        +        {  return undef;  };
        +
        +    my ($index, $symbol) = ::FindFirstSymbol($$lineRef, $symbols);
        +
        +    if ($index != -1 && substr($$lineRef, 0, $index) =~ /^[ \t]*$/ && substr($$lineRef, $index + length($symbol), 1) =~ /^[ \t]?$/)
        +        {
        +        return substr($$lineRef, $index, length($symbol), ' ' x length($symbol));
        +        };
        +
        +    return undef;
        +    };
        +
        +
        +#
        +#   Function: StripOpeningBlockSymbols
        +#
        +#   Determines if the line starts with any of the opening symbols in the passed symbol pairs, and if so, replaces it with spaces.
        +#   This only happens if the only thing before it on the line is whitespace.
        +#
        +#   Parameters:
        +#
        +#       lineRef - A reference to the line to check.
        +#       symbolPairs - An arrayref of the symbol pairs to check for.  Pairs are specified as two consecutive array entries, with the
        +#                            opening symbol first.
        +#
        +#   Returns:
        +#
        +#       If the line starts with any of the opening symbols, it will replace it in the line with spaces and return the closing symbol.
        +#       If the line doesn't, it will leave the line alone and return undef.
        +#
        +sub StripOpeningBlockSymbols #(lineRef, symbolPairs)
        +    {
        +    my ($self, $lineRef, $symbolPairs) = @_;
        +
        +    if (!defined $symbolPairs)
        +        {  return undef;  };
        +
        +    for (my $i = 0; $i < scalar @$symbolPairs; $i += 2)
        +        {
        +        my $index = index($$lineRef, $symbolPairs->[$i]);
        +
        +        if ($index != -1 && substr($$lineRef, 0, $index) =~ /^[ \t]*$/)
        +            {
        +            substr($$lineRef, $index, length($symbolPairs->[$i]), ' ' x length($symbolPairs->[$i]));
        +            return $symbolPairs->[$i + 1];
        +            };
        +        };
        +
        +    return undef;
        +    };
        +
        +
        +#
        +#   Function: StripOpeningJavaDocBlockSymbols
        +#
        +#   Determines if the line starts with any of the opening symbols in the passed symbol pairs, and if so, replaces it with spaces.
        +#   This only happens if the only thing before it on the line is whitespace and the next character is whitespace or the end of the line.
        +#
        +#   Parameters:
        +#
        +#       lineRef - A reference to the line to check.
        +#       symbolPairs - An arrayref of the symbol pairs to check for.  Pairs are specified as two consecutive array entries, with the
        +#                            opening symbol first.
        +#
        +#   Returns:
        +#
        +#       If the line starts with any of the opening symbols, it will replace it in the line with spaces and return the closing symbol.
        +#       If the line doesn't, it will leave the line alone and return undef.
        +#
        +sub StripOpeningJavaDocBlockSymbols #(lineRef, symbolPairs)
        +    {
        +    my ($self, $lineRef, $symbolPairs) = @_;
        +
        +    if (!defined $symbolPairs)
        +        {  return undef;  };
        +
        +    for (my $i = 0; $i < scalar @$symbolPairs; $i += 2)
        +        {
        +        my $index = index($$lineRef, $symbolPairs->[$i]);
        +
        +        if ($index != -1 && substr($$lineRef, 0, $index) =~ /^[ \t]*$/ &&
        +            substr($$lineRef, $index + length($symbolPairs->[$i]), 1) =~ /^[ \t]?$/)
        +            {
        +            substr($$lineRef, $index, length($symbolPairs->[$i]), ' ' x length($symbolPairs->[$i]));
        +            return $symbolPairs->[$i + 1];
        +            };
        +        };
        +
        +    return undef;
        +    };
        +
        +
        +#
        +#   Function: StripClosingSymbol
        +#
        +#   Determines if the line contains a symbol, and if so, truncates it just before the symbol.
        +#
        +#   Parameters:
        +#
        +#       lineRef - A reference to the line to check.
        +#       symbol - The symbol to check for.
        +#
        +#   Returns:
        +#
        +#       The remainder of the line, or undef if the symbol was not found.
        +#
        +sub StripClosingSymbol #(lineRef, symbol)
        +    {
        +    my ($self, $lineRef, $symbol) = @_;
        +
        +    my $index = index($$lineRef, $symbol);
        +
        +    if ($index != -1)
        +        {
        +        my $lineRemainder = substr($$lineRef, $index + length($symbol));
        +        $$lineRef = substr($$lineRef, 0, $index);
        +
        +        return $lineRemainder;
        +        }
        +    else
        +        {  return undef;  };
        +    };
        +
        +
        +#
        +#   Function: NormalizePrototype
        +#
        +#   Normalizes a prototype.  Specifically, condenses spaces, tabs, and line breaks into single spaces and removes leading and
        +#   trailing ones.
        +#
        +#   Parameters:
        +#
        +#       prototype - The original prototype string.
        +#
        +#   Returns:
        +#
        +#       The normalized prototype.
        +#
        +sub NormalizePrototype #(prototype)
        +    {
        +    my ($self, $prototype) = @_;
        +
        +    $prototype =~ tr/ \t\r\n/ /s;
        +    $prototype =~ s/^ //;
        +    $prototype =~ s/ $//;
        +
        +    return $prototype;
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/CSharp.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/CSharp.pm
        new file mode 100755
        index 0000000..13a0c94
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/CSharp.pm
        @@ -0,0 +1,1552 @@
        +###############################################################################
        +#
        +#   Class: NaturalDocs::Languages::CSharp
        +#
        +###############################################################################
        +#
        +#   A subclass to handle the language variations of C#.
        +#
        +#
        +#   Topic: Language Support
        +#
        +#       Supported:
        +#
        +#       - Classes
        +#       - Namespaces (no topic generated)
        +#       - Functions
        +#       - Constructors and Destructors
        +#       - Properties
        +#       - Indexers
        +#       - Operators
        +#       - Delegates
        +#       - Variables
        +#       - Constants
        +#       - Events
        +#       - Enums
        +#
        +#       Not supported yet:
        +#
        +#       - Autodocumenting enum members
        +#       - Using alias
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::Languages::CSharp;
        +
        +use base 'NaturalDocs::Languages::Advanced';
        +
        +
        +###############################################################################
        +# Group: Package Variables
        +
        +#
        +#   hash: classKeywords
        +#   An existence hash of all the acceptable class keywords.  The keys are in all lowercase.
        +#
        +my %classKeywords = ( 'class' => 1,
        +                                    'struct' => 1,
        +                                    'interface' => 1 );
        +
        +#
        +#   hash: classModifiers
        +#   An existence hash of all the acceptable class modifiers.  The keys are in all lowercase.
        +#
        +my %classModifiers = ( 'new' => 1,
        +                                   'public' => 1,
        +                                   'protected' => 1,
        +                                   'internal' => 1,
        +                                   'private' => 1,
        +                                   'abstract' => 1,
        +                                   'sealed' => 1,
        +                                   'unsafe' => 1,
        +                                   'static' => 1,
        +                                   'partial' => 1 );
        +
        +#
        +#   hash: functionModifiers
        +#   An existence hash of all the acceptable function modifiers.  Also applies to properties.  Also encompasses those for operators
        +#   and indexers, but have more than are valid for them.  The keys are in all lowercase.
        +#
        +my %functionModifiers = ( 'new' => 1,
        +                                       'public' => 1,
        +                                       'protected' => 1,
        +                                       'internal' => 1,
        +                                       'private' => 1,
        +                                       'static' => 1,
        +                                       'virtual' => 1,
        +                                       'sealed' => 1,
        +                                       'override' => 1,
        +                                       'abstract' => 1,
        +                                       'extern' => 1,
        +                                       'unsafe' => 1 );
        +
        +#
        +#   hash: variableModifiers
        +#   An existence hash of all the acceptable variable modifiers.  The keys are in all lowercase.
        +#
        +my %variableModifiers = ( 'new' => 1,
        +                                       'public' => 1,
        +                                       'protected' => 1,
        +                                       'internal' => 1,
        +                                       'private' => 1,
        +                                       'static' => 1,
        +                                       'readonly' => 1,
        +                                       'volatile' => 1,
        +                                       'unsafe' => 1 );
        +
        +#
        +#   hash: enumTypes
        +#   An existence hash of all the possible enum types.  The keys are in all lowercase.
        +#
        +my %enumTypes = ( 'sbyte' => 1,
        +                             'byte' => 1,
        +                             'short' => 1,
        +                             'ushort' => 1,
        +                             'int' => 1,
        +                             'uint' => 1,
        +                             'long' => 1,
        +                             'ulong' => 1 );
        +
        +#
        +#   hash: impossibleTypeWords
        +#   An existence hash of all the reserved words that cannot be in a type.  This includes 'enum' and all modifiers.  The keys are in
        +#   all lowercase.
        +#
        +my %impossibleTypeWords = ( 'abstract' => 1, 'as' => 1, 'base' => 1, 'break' => 1, 'case' => 1, 'catch' => 1,
        +                                              'checked' => 1, 'class' => 1, 'const' => 1, 'continue' => 1, 'default' => 1, 'delegate' => 1,
        +                                              'do' => 1, 'else' => 1, 'enum' => 1, 'event' => 1, 'explicit' => 1, 'extern' => 1,
        +                                              'false' => 1, 'finally' => 1, 'fixed' => 1, 'for' => 1, 'foreach' => 1, 'goto' => 1, 'if' => 1,
        +                                              'implicit' => 1, 'in' => 1, 'interface' => 1, 'internal' => 1, 'is' => 1, 'lock' => 1,
        +                                              'namespace' => 1, 'new' => 1, 'null' => 1, 'operator' => 1, 'out' => 1, 'override' => 1,
        +                                              'params' => 1, 'private' => 1, 'protected' => 1, 'public' => 1, 'readonly' => 1, 'ref' => 1,
        +                                              'return' => 1, 'sealed' => 1, 'sizeof' => 1, 'stackalloc' => 1, 'static' => 1,
        +                                              'struct' => 1, 'switch' => 1, 'this' => 1, 'throw' => 1, 'true' => 1, 'try' => 1, 'typeof' => 1,
        +                                              'unchecked' => 1, 'unsafe' => 1, 'using' => 1, 'virtual' => 1, 'volatile' => 1, 'while' => 1 );
        +# Deleted from the list: object, string, bool, decimal, sbyte, byte, short, ushort, int, uint, long, ulong, char, float, double, void
        +
        +
        +
        +###############################################################################
        +# Group: Interface Functions
        +
        +
        +#
        +#   Function: PackageSeparator
        +#   Returns the package separator symbol.
        +#
        +sub PackageSeparator
        +    {  return '.';  };
        +
        +
        +#
        +#   Function: EnumValues
        +#   Returns the <EnumValuesType> that describes how the language handles enums.
        +#
        +sub EnumValues
        +    {  return ::ENUM_UNDER_TYPE();  };
        +
        +
        +#
        +#   Function: ParseFile
        +#
        +#   Parses the passed source file, sending comments acceptable for documentation to <NaturalDocs::Parser->OnComment()>.
        +#
        +#   Parameters:
        +#
        +#       sourceFile - The <FileName> to parse.
        +#       topicList - A reference to the list of <NaturalDocs::Parser::ParsedTopics> being built by the file.
        +#
        +#   Returns:
        +#
        +#       The array ( autoTopics, scopeRecord ).
        +#
        +#       autoTopics - An arrayref of automatically generated topics from the file, or undef if none.
        +#       scopeRecord - An arrayref of <NaturalDocs::Languages::Advanced::ScopeChanges>, or undef if none.
        +#
        +sub ParseFile #(sourceFile, topicsList)
        +    {
        +    my ($self, $sourceFile, $topicsList) = @_;
        +
        +    $self->ParseForCommentsAndTokens($sourceFile, [ '//' ], [ '/*', '*/' ], [ '///' ], [ '/**', '*/' ] );
        +
        +    my $tokens = $self->Tokens();
        +    my $index = 0;
        +    my $lineNumber = 1;
        +
        +    while ($index < scalar @$tokens)
        +        {
        +        if ($self->TryToSkipWhitespace(\$index, \$lineNumber) ||
        +            $self->TryToGetNamespace(\$index, \$lineNumber) ||
        +            $self->TryToGetUsing(\$index, \$lineNumber) ||
        +            $self->TryToGetClass(\$index, \$lineNumber) ||
        +            $self->TryToGetFunction(\$index, \$lineNumber) ||
        +            $self->TryToGetOverloadedOperator(\$index, \$lineNumber) ||
        +            $self->TryToGetVariable(\$index, \$lineNumber) ||
        +            $self->TryToGetEnum(\$index, \$lineNumber) )
        +            {
        +            # The functions above will handle everything.
        +            }
        +
        +        elsif ($tokens->[$index] eq '{')
        +            {
        +            $self->StartScope('}', $lineNumber, undef, undef, undef);
        +            $index++;
        +            }
        +
        +        elsif ($tokens->[$index] eq '}')
        +            {
        +            if ($self->ClosingScopeSymbol() eq '}')
        +                {  $self->EndScope($lineNumber);  };
        +
        +            $index++;
        +            }
        +
        +        else
        +            {
        +            $self->SkipRestOfStatement(\$index, \$lineNumber);
        +            };
        +        };
        +
        +
        +    # Don't need to keep these around.
        +    $self->ClearTokens();
        +
        +
        +    my $autoTopics = $self->AutoTopics();
        +
        +    my $scopeRecord = $self->ScopeRecord();
        +    if (defined $scopeRecord && !scalar @$scopeRecord)
        +        {  $scopeRecord = undef;  };
        +
        +    return ( $autoTopics, $scopeRecord );
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Statement Parsing Functions
        +# All functions here assume that the current position is at the beginning of a statement.
        +#
        +# Note for developers: I am well aware that the code in these functions do not check if we're past the end of the tokens as
        +# often as it should.  We're making use of the fact that Perl will always return undef in these cases to keep the code simpler.
        +
        +
        +#
        +#   Function: TryToGetNamespace
        +#
        +#   Determines whether the position is at a namespace declaration statement, and if so, adjusts the scope, skips it, and returns
        +#   true.
        +#
        +#   Why no topic?:
        +#
        +#       The main reason we don't create a Natural Docs topic for a namespace is because in order to declare class A.B.C in C#,
        +#       you must do this:
        +#
        +#       > namespace A.B
        +#       >    {
        +#       >    class C
        +#       >        { ... }
        +#       >    }
        +#
        +#       That would result in a namespace topic whose only purpose is really to qualify C.  It would take the default page title, and
        +#       thus the default menu title.  So if you have files for A.B.X, A.B.Y, and A.B.Z, they all will appear as A.B on the menu.
        +#
        +#       If something actually appears in the namespace besides a class, it will be handled by
        +#       <NaturalDocs::Parser->AddPackageDelineators()>.  That function will add a package topic to correct the scope.
        +#
        +#       If the user actually documented it, it will still appear because of the manual topic.
        +#
        +sub TryToGetNamespace #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    if (lc($tokens->[$$indexRef]) ne 'namespace')
        +        {  return undef;  };
        +
        +    my $index = $$indexRef + 1;
        +    my $lineNumber = $$lineNumberRef;
        +
        +    if (!$self->TryToSkipWhitespace(\$index, \$lineNumber))
        +        {  return undef;  };
        +
        +    my $name;
        +
        +    while ($tokens->[$index] =~ /^[a-z_\.\@]/i)
        +        {
        +        $name .= $tokens->[$index];
        +        $index++;
        +        };
        +
        +    if (!defined $name)
        +        {  return undef;  };
        +
        +    $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +    if ($tokens->[$index] ne '{')
        +        {  return undef;  };
        +
        +    $index++;
        +
        +
        +    # We found a valid one if we made it this far.
        +
        +    my $autoTopic = NaturalDocs::Parser::ParsedTopic->New(::TOPIC_CLASS(), $name,
        +                                                                                         $self->CurrentScope(), $self->CurrentUsing(),
        +                                                                                         undef,
        +                                                                                         undef, undef, $$lineNumberRef);
        +
        +    # We don't add an auto-topic for namespaces.  See the function documentation above.
        +
        +    NaturalDocs::Parser->OnClass($autoTopic->Package());
        +
        +    $self->StartScope('}', $lineNumber, $autoTopic->Package());
        +
        +    $$indexRef = $index;
        +    $$lineNumberRef = $lineNumber;
        +
        +    return 1;
        +    };
        +
        +
        +#
        +#   Function: TryToGetClass
        +#
        +#   Determines whether the position is at a class declaration statement, and if so, generates a topic for it, skips it, and
        +#   returns true.
        +#
        +#   Supported Syntaxes:
        +#
        +#       - Classes
        +#       - Structs
        +#       - Interfaces
        +#
        +sub TryToGetClass #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    my $index = $$indexRef;
        +    my $lineNumber = $$lineNumberRef;
        +
        +    my $startIndex = $index;
        +    my $startLine = $lineNumber;
        +    my $needsPrototype = 0;
        +
        +    if ($self->TryToSkipAttributes(\$index, \$lineNumber))
        +        {  $self->TryToSkipWhitespace(\$index, \$lineNumber);  }
        +
        +    my @modifiers;
        +
        +    while ($tokens->[$index] =~ /^[a-z]/i &&
        +              !exists $classKeywords{lc($tokens->[$index])} &&
        +              exists $classModifiers{lc($tokens->[$index])} )
        +        {
        +        push @modifiers, lc($tokens->[$index]);
        +        $index++;
        +
        +        $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +        };
        +
        +    if (!exists $classKeywords{lc($tokens->[$index])})
        +        {  return undef;  };
        +
        +    my $lcClassKeyword = lc($tokens->[$index]);
        +
        +    $index++;
        +
        +    if (!$self->TryToSkipWhitespace(\$index, \$lineNumber))
        +        {  return undef;  };
        +
        +    my $name;
        +
        +    while ($tokens->[$index] =~ /^[a-z_\@]/i)
        +        {
        +        $name .= $tokens->[$index];
        +        $index++;
        +        };
        +
        +    if (!defined $name)
        +        {  return undef;  };
        +
        +    $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +	if ($self->TryToSkipTemplateSpec(\$index, \$lineNumber))
        +		{
        +		$needsPrototype = 1;
        +		$self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +		if ($self->TryToSkipWhereClauses(\$index, \$lineNumber))
        +			{  $self->TryToSkipWhitespace(\$index, \$lineNumber);  }
        +		}
        +
        +    my @parents;
        +
        +    if ($tokens->[$index] eq ':')
        +        {
        +        my $inheritsTemplates;
        +
        +        do
        +            {
        +            $index++;
        +
        +            $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +            my $parentName;
        +
        +            while ($tokens->[$index] =~ /^[a-z_\.\@]/i)
        +                {
        +                $parentName .= $tokens->[$index];
        +                $index++;
        +                };
        +
        +            if (!defined $parentName)
        +                {  return undef;  };
        +
        +            push @parents, NaturalDocs::SymbolString->FromText($parentName);
        +
        +            $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +            if ($self->TryToSkipTemplateSpec(\$index, \$lineNumber))
        +            	{
        +            	$inheritsTemplates = 1;
        +            	$needsPrototype = 1;
        +            	$self->TryToSkipWhitespace(\$index, \$lineNumber);
        +            	}
        +            }
        +        while ($tokens->[$index] eq ',');
        +
        +        if ($inheritsTemplates)
        +        	{
        +        	if ($self->TryToSkipWhereClauses(\$index, \$lineNumber))
        +        		{  $self->TryToSkipWhitespace(\$index, \$lineNumber);  }
        +        	}
        +        };
        +
        +    if ($tokens->[$index] ne '{')
        +        {  return undef;  };
        +
        +
        +    # If we made it this far, we have a valid class declaration.
        +
        +    my @scopeIdentifiers = NaturalDocs::SymbolString->IdentifiersOf($self->CurrentScope());
        +    $name = join('.', @scopeIdentifiers, $name);
        +
        +    my $topicType;
        +
        +    if ($lcClassKeyword eq 'interface')
        +        {  $topicType = ::TOPIC_INTERFACE();  }
        +    else
        +        {  $topicType = ::TOPIC_CLASS();  };
        +
        +    my $prototype;
        +
        +    if ($needsPrototype)
        +            {
        +            $prototype = $self->CreateString($startIndex, $index);
        +            }
        +
        +    my $autoTopic = NaturalDocs::Parser::ParsedTopic->New($topicType, $name,
        +                                                                                         undef, $self->CurrentUsing(),
        +                                                                                         $prototype,
        +                                                                                         undef, undef, $$lineNumberRef);
        +
        +    $self->AddAutoTopic($autoTopic);
        +    NaturalDocs::Parser->OnClass($autoTopic->Package());
        +
        +    foreach my $parent (@parents)
        +        {
        +        NaturalDocs::Parser->OnClassParent($autoTopic->Package(), $parent, $self->CurrentScope(), undef,
        +                                                               ::RESOLVE_RELATIVE());
        +        };
        +
        +    $self->StartScope('}', $lineNumber, $autoTopic->Package());
        +
        +    $index++;
        +
        +    $$indexRef = $index;
        +    $$lineNumberRef = $lineNumber;
        +
        +    return 1;
        +    };
        +
        +
        +#
        +#   Function: TryToGetUsing
        +#
        +#   Determines whether the position is at a using statement, and if so, adds it to the current scope, skips it, and returns
        +#        true.
        +#
        +#        Supported:
        +#
        +#       - Using
        +#
        +#        Unsupported:
        +#
        +#                - Using with alias
        +#
        +sub TryToGetUsing #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    my $index = $$indexRef;
        +    my $lineNumber = $$lineNumberRef;
        +
        +    if (lc($tokens->[$index]) ne 'using')
        +        {  return undef;  };
        +
        +    $index++;
        +    $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +    my $name;
        +
        +    while ($tokens->[$index] =~ /^[a-z_\@\.]/i)
        +        {
        +        $name .= $tokens->[$index];
        +        $index++;
        +        };
        +
        +    if ($tokens->[$index] ne ';' ||
        +                !defined $name)
        +        {  return undef;  };
        +
        +    $index++;
        +
        +
        +    $self->AddUsing( NaturalDocs::SymbolString->FromText($name) );
        +
        +    $$indexRef = $index;
        +    $$lineNumberRef = $lineNumber;
        +
        +    return 1;
        +    };
        +
        +
        +
        +#
        +#   Function: TryToGetFunction
        +#
        +#   Determines if the position is on a function declaration, and if so, generates a topic for it, skips it, and returns true.
        +#
        +#   Supported Syntaxes:
        +#
        +#       - Functions
        +#       - Constructors
        +#       - Destructors
        +#       - Properties
        +#       - Indexers
        +#       - Delegates
        +#       - Events
        +#
        +sub TryToGetFunction #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    my $index = $$indexRef;
        +    my $lineNumber = $$lineNumberRef;
        +
        +    if ($self->TryToSkipAttributes(\$index, \$lineNumber))
        +        {  $self->TryToSkipWhitespace(\$index, \$lineNumber);  };
        +
        +    my $startIndex = $index;
        +    my $startLine = $lineNumber;
        +
        +    my @modifiers;
        +
        +    while ($tokens->[$index] =~ /^[a-z]/i &&
        +              exists $functionModifiers{lc($tokens->[$index])} )
        +        {
        +        push @modifiers, lc($tokens->[$index]);
        +        $index++;
        +
        +        $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +        };
        +
        +    my $isDelegate;
        +    my $isEvent;
        +
        +    if (lc($tokens->[$index]) eq 'delegate')
        +        {
        +        $isDelegate = 1;
        +        $index++;
        +        $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +        }
        +    elsif (lc($tokens->[$index]) eq 'event')
        +        {
        +        $isEvent = 1;
        +        $index++;
        +        $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +        };
        +
        +    my $returnType = $self->TryToGetType(\$index, \$lineNumber);
        +
        +    $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +    my $name;
        +    my $lastNameWord;
        +    my $hasTemplates;
        +
        +    while ($tokens->[$index] =~ /^[a-z\_\@\.\~]/i)
        +        {
        +        $name .= $tokens->[$index];
        +        $lastNameWord = $tokens->[$index];
        +        $index++;
        +
        +        # For explicit generic interface definitions, such as
        +        # IDObjectType System.Collections.Generic.IEnumerator<IDObjectType>.Current
        +        # or templated functions.
        +
        +        if ($self->TryToSkipTemplateSpec(\$index, \$lineNumber))
        +        	{
        +        	$hasTemplates = 1;
        +        	$self->TryToSkipWhitespace(\$index, \$lineNumber);
        +        	}
        +        };
        +
        +    if (!defined $name)
        +        {
        +        # Constructors and destructors don't have return types.  It's possible their names were mistaken for the return type.
        +        if (defined $returnType)
        +            {
        +            $name = $returnType;
        +            $returnType = undef;
        +
        +            $name =~ /([a-z0-9_]+)$/i;
        +            $lastNameWord = $1;
        +            }
        +        else
        +            {  return undef;  };
        +        };
        +
        +    # If there's no return type, make sure it's a constructor or destructor.
        +    if (!defined $returnType)
        +        {
        +        my @identifiers = NaturalDocs::SymbolString->IdentifiersOf( $self->CurrentScope() );
        +
        +        if ($lastNameWord ne $identifiers[-1])
        +            {  return undef;  };
        +        };
        +
        +    $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +
        +    # Skip the brackets on indexers.
        +    if ($tokens->[$index] eq '[' && lc($lastNameWord) eq 'this')
        +        {
        +        # This should jump the brackets completely.
        +        $self->GenericSkip(\$index, \$lineNumber);
        +        $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +        $name .= '[]';
        +        };
        +
        +
        +    # Properties, indexers, events with braces
        +
        +    if ($tokens->[$index] eq '{')
        +        {
        +        my $prototype = $self->CreateString($startIndex, $index);
        +
        +        $index++;
        +        $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +        my ($aWord, $bWord, $hasA, $hasB);
        +
        +        if ($isEvent)
        +            {
        +            $aWord = 'add';
        +            $bWord = 'remove';
        +            }
        +        else
        +            {
        +            $aWord = 'get';
        +            $bWord = 'set';
        +            };
        +
        +        while ($index < scalar @$tokens)
        +            {
        +            if ($self->TryToSkipAttributes(\$index, \$lineNumber))
        +                {  $self->TryToSkipWhitespace(\$index, \$lineNumber);  };
        +
        +            if (lc($tokens->[$index]) eq $aWord)
        +                {  $hasA = 1;  }
        +            elsif (lc($tokens->[$index]) eq $bWord)
        +                {  $hasB = 1;  }
        +            elsif ($tokens->[$index] eq '}')
        +                {
        +                $index++;
        +                last;
        +                };
        +
        +            $self->SkipRestOfStatement(\$index, \$lineNumber);
        +            $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +            };
        +
        +        if ($hasA && $hasB)
        +            {  $prototype .= ' { ' . $aWord . ', ' . $bWord . ' }';  }
        +        elsif ($hasA)
        +            {  $prototype .= ' { ' . $aWord . ' }';  }
        +        elsif ($hasB)
        +            {  $prototype .= ' { ' . $bWord . ' }';  };
        +
        +        $prototype = $self->NormalizePrototype($prototype);
        +
        +        my $topicType = ( $isEvent ? ::TOPIC_EVENT() : ::TOPIC_PROPERTY() );
        +
        +        $self->AddAutoTopic(NaturalDocs::Parser::ParsedTopic->New($topicType, $name,
        +                                                                                                  $self->CurrentScope(), $self->CurrentUsing(),
        +                                                                                                  $prototype,
        +                                                                                                  undef, undef, $startLine));
        +        }
        +
        +
        +    # Functions, constructors, destructors, delegates.
        +
        +    elsif ($tokens->[$index] eq '(')
        +        {
        +        # This should jump the parenthesis completely.
        +        $self->GenericSkip(\$index, \$lineNumber);
        +		$self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +        if ($hasTemplates && $self->TryToSkipWhereClauses(\$index, \$lineNumber))
        +        	{  $self->TryToSkipWhitespace(\$index, \$lineNumber);  }
        +
        +        my $topicType = ( $isDelegate ? ::TOPIC_DELEGATE() : ::TOPIC_FUNCTION() );
        +        my $prototype = $self->NormalizePrototype( $self->CreateString($startIndex, $index) );
        +
        +        $self->AddAutoTopic(NaturalDocs::Parser::ParsedTopic->New($topicType, $name,
        +                                                                                                  $self->CurrentScope(), $self->CurrentUsing(),
        +                                                                                                  $prototype,
        +                                                                                                  undef, undef, $startLine));
        +
        +        $self->SkipRestOfStatement(\$index, \$lineNumber);
        +        }
        +
        +
        +    # Events without braces
        +
        +    elsif ($isEvent && $tokens->[$index] eq ';')
        +        {
        +        my $prototype = $self->NormalizePrototype( $self->CreateString($startIndex, $index) );
        +
        +        $self->AddAutoTopic(NaturalDocs::Parser::ParsedTopic->New(::TOPIC_EVENT(), $name,
        +                                                                                                  $self->CurrentScope(), $self->CurrentUsing(),
        +                                                                                                  $prototype,
        +                                                                                                  undef, undef, $startLine));
        +        $index++;
        +        }
        +
        +    else
        +        {  return undef;  };
        +
        +
        +    # We succeeded if we got this far.
        +
        +    $$indexRef = $index;
        +    $$lineNumberRef = $lineNumber;
        +
        +    return 1;
        +    };
        +
        +
        +#
        +#   Function: TryToGetOverloadedOperator
        +#
        +#   Determines if the position is on an operator overload declaration, and if so, generates a topic for it, skips it, and returns true.
        +#
        +sub TryToGetOverloadedOperator #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    my $index = $$indexRef;
        +    my $lineNumber = $$lineNumberRef;
        +
        +    if ($self->TryToSkipAttributes(\$index, \$lineNumber))
        +        {  $self->TryToSkipWhitespace(\$index, \$lineNumber);  };
        +
        +    my $startIndex = $index;
        +    my $startLine = $lineNumber;
        +
        +    my @modifiers;
        +
        +    while ($tokens->[$index] =~ /^[a-z]/i &&
        +              exists $functionModifiers{lc($tokens->[$index])} )
        +        {
        +        push @modifiers, lc($tokens->[$index]);
        +        $index++;
        +
        +        $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +        };
        +
        +
        +    my $name;
        +
        +
        +    # Casting operators.
        +
        +    if (lc($tokens->[$index]) eq 'implicit' || lc($tokens->[$index]) eq 'explicit')
        +        {
        +        $index++;
        +
        +        $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +        if (lc($tokens->[$index]) ne 'operator')
        +            {  return undef;  };
        +
        +        $index++;
        +        $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +        $name = $self->TryToGetType(\$index, \$lineNumber);
        +
        +        if (!defined $name)
        +            {  return undef;  };
        +        }
        +
        +
        +    # Symbol operators.
        +
        +    else
        +        {
        +        if (!$self->TryToGetType(\$index, \$lineNumber))
        +            {  return undef;  };
        +
        +        $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +        if (lc($tokens->[$index]) ne 'operator')
        +            {  return undef;  };
        +
        +        $index++;
        +
        +        $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +        if (lc($tokens->[$index]) eq 'true' || lc($tokens->[$index]) eq 'false')
        +            {
        +            $name = $tokens->[$index];
        +            $index++;
        +            }
        +        else
        +            {
        +            while ($tokens->[$index] =~ /^[\+\-\!\~\*\/\%\&\|\^\<\>\=]$/)
        +                {
        +                $name .= $tokens->[$index];
        +                $index++;
        +                };
        +            };
        +        };
        +
        +    $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +    if ($tokens->[$index] ne '(')
        +        {  return undef;  };
        +
        +    # This should skip the parenthesis completely.
        +    $self->GenericSkip(\$index, \$lineNumber);
        +
        +    my $prototype = $self->NormalizePrototype( $self->CreateString($startIndex, $index) );
        +
        +    $self->AddAutoTopic(NaturalDocs::Parser::ParsedTopic->New(::TOPIC_FUNCTION(), 'operator ' . $name,
        +                                                                                              $self->CurrentScope(), $self->CurrentUsing(),
        +                                                                                              $prototype,
        +                                                                                              undef, undef, $startLine));
        +
        +    $self->SkipRestOfStatement(\$index, \$lineNumber);
        +
        +
        +    # We succeeded if we got this far.
        +
        +    $$indexRef = $index;
        +    $$lineNumberRef = $lineNumber;
        +
        +    return 1;
        +    };
        +
        +
        +#
        +#   Function: TryToGetVariable
        +#
        +#   Determines if the position is on a variable declaration statement, and if so, generates a topic for each variable, skips the
        +#   statement, and returns true.
        +#
        +#   Supported Syntaxes:
        +#
        +#       - Variables
        +#       - Constants
        +#
        +sub TryToGetVariable #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    my $index = $$indexRef;
        +    my $lineNumber = $$lineNumberRef;
        +
        +    if ($self->TryToSkipAttributes(\$index, \$lineNumber))
        +        {  $self->TryToSkipWhitespace(\$index, \$lineNumber);  };
        +
        +    my $startIndex = $index;
        +    my $startLine = $lineNumber;
        +
        +    my @modifiers;
        +
        +    while ($tokens->[$index] =~ /^[a-z]/i &&
        +              exists $variableModifiers{lc($tokens->[$index])} )
        +        {
        +        push @modifiers, lc($tokens->[$index]);
        +        $index++;
        +
        +        $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +        };
        +
        +    my $type;
        +    if (lc($tokens->[$index]) eq 'const')
        +        {
        +        $type = ::TOPIC_CONSTANT();
        +        $index++;
        +        $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +        }
        +    else
        +        {
        +        $type = ::TOPIC_VARIABLE();
        +        };
        +
        +    if (!$self->TryToGetType(\$index, \$lineNumber))
        +        {  return undef;  };
        +
        +    my $endTypeIndex = $index;
        +
        +    $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +    my @names;
        +
        +    for (;;)
        +        {
        +        my $name;
        +
        +        while ($tokens->[$index] =~ /^[a-z\@\_]/i)
        +            {
        +            $name .= $tokens->[$index];
        +            $index++;
        +            };
        +
        +        $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +        if ($tokens->[$index] eq '=')
        +            {
        +            do
        +                {
        +                $self->GenericSkip(\$index, \$lineNumber);
        +                }
        +            while ($tokens->[$index] ne ',' && $tokens->[$index] ne ';');
        +            };
        +
        +        push @names, $name;
        +
        +        if ($tokens->[$index] eq ';')
        +            {
        +            $index++;
        +            last;
        +            }
        +        elsif ($tokens->[$index] eq ',')
        +            {
        +            $index++;
        +            $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +            }
        +        else
        +            {  return undef;  };
        +        };
        +
        +
        +    # We succeeded if we got this far.
        +
        +    my $prototypePrefix = $self->CreateString($startIndex, $endTypeIndex);
        +
        +    foreach my $name (@names)
        +        {
        +        my $prototype = $self->NormalizePrototype( $prototypePrefix . ' ' . $name );
        +
        +        $self->AddAutoTopic(NaturalDocs::Parser::ParsedTopic->New($type, $name,
        +                                                                                                  $self->CurrentScope(), $self->CurrentUsing(),
        +                                                                                                  $prototype,
        +                                                                                                  undef, undef, $startLine));
        +        };
        +
        +    $$indexRef = $index;
        +    $$lineNumberRef = $lineNumber;
        +
        +    return 1;
        +    };
        +
        +
        +#
        +#   Function: TryToGetEnum
        +#
        +#   Determines if the position is on an enum declaration statement, and if so, generates a topic for it.
        +#
        +#   Supported Syntaxes:
        +#
        +#       - Enums
        +#       - Enums with declared types
        +#
        +#   Unsupported:
        +#
        +#       - Documenting the members automatically
        +#
        +sub TryToGetEnum #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    my $index = $$indexRef;
        +    my $lineNumber = $$lineNumberRef;
        +
        +    if ($self->TryToSkipAttributes(\$index, \$lineNumber))
        +        {  $self->TryToSkipWhitespace(\$index, \$lineNumber);  };
        +
        +    my $startIndex = $index;
        +    my $startLine = $lineNumber;
        +
        +    my @modifiers;
        +
        +    while ($tokens->[$index] =~ /^[a-z]/i &&
        +              exists $variableModifiers{lc($tokens->[$index])} )
        +        {
        +        push @modifiers, lc($tokens->[$index]);
        +        $index++;
        +
        +        $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +        };
        +
        +    if (lc($tokens->[$index]) ne 'enum')
        +        {  return undef;  }
        +
        +    $index++;
        +    $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +    my $name;
        +
        +    while ($tokens->[$index] =~ /^[a-z\@\_]/i)
        +        {
        +        $name .= $tokens->[$index];
        +        $index++;
        +        };
        +
        +    $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +    if ($tokens->[$index] eq ':')
        +        {
        +        $index++;
        +        $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +        if (!exists $enumTypes{ lc($tokens->[$index]) })
        +            {  return undef;  }
        +
        +        $index++;
        +        $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +        }
        +
        +    if ($tokens->[$index] ne '{')
        +        {  return undef;  }
        +
        +    # We succeeded if we got this far.
        +
        +    my $prototype = $self->CreateString($startIndex, $index);
        +    $prototype = $self->NormalizePrototype( $prototype );
        +
        +    $self->SkipRestOfStatement(\$index, \$lineNumber);
        +
        +    $self->AddAutoTopic(NaturalDocs::Parser::ParsedTopic->New(::TOPIC_ENUMERATION(), $name,
        +                                                                                              $self->CurrentScope(), $self->CurrentUsing(),
        +                                                                                              $prototype,
        +                                                                                              undef, undef, $startLine));
        +
        +    $$indexRef = $index;
        +    $$lineNumberRef = $lineNumber;
        +
        +    return 1;
        +    };
        +
        +
        +#
        +#   Function: TryToGetType
        +#
        +#   Determines if the position is on a type identifier, and if so, skips it and returns it as a string.  This function does _not_ allow
        +#   modifiers.  You must take care of those beforehand.
        +#
        +sub TryToGetType #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    my $name;
        +    my $index = $$indexRef;
        +    my $lineNumber = $$lineNumberRef;
        +
        +    while ($tokens->[$index] =~ /^[a-z\@\.\_]/i)
        +        {
        +		# Case sensitive since you can declare a class Lock even though lock is a keyword.
        +        if (exists $impossibleTypeWords{ $tokens->[$index] } && $name !~ /\@$/)
        +            {  return undef;  };
        +
        +        $name .= $tokens->[$index];
        +        $index++;
        +        };
        +
        +    if (!defined $name)
        +        {  return undef;  };
        +
        +        $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +        if ($tokens->[$index] eq '?')
        +                {
        +                $name .= '?';
        +                $index++;
        +
        +                $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +                }
        +
        +    if ($self->TryToSkipTemplateSpec(\$index, \$lineNumber))
        +    	{  $self->TryToSkipWhitespace(\$index, \$lineNumber);  }
        +
        +    while ($tokens->[$index] eq '[')
        +        {
        +        $name .= '[';
        +        $index++;
        +
        +        while ($tokens->[$index] eq ',')
        +            {
        +            $name .= ',';
        +            $index++;
        +            };
        +
        +        if ($tokens->[$index] eq ']')
        +            {
        +            $name .= ']';
        +            $index++;
        +            }
        +        else
        +            {  return undef;  }
        +        };
        +
        +    $$indexRef = $index;
        +    $$lineNumberRef = $lineNumber;
        +
        +    return $name;
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Low Level Parsing Functions
        +
        +
        +#
        +#   Function: GenericSkip
        +#
        +#   Advances the position one place through general code.
        +#
        +#   - If the position is on a string, it will skip it completely.
        +#   - If the position is on an opening symbol, it will skip until the past the closing symbol.
        +#   - If the position is on whitespace (including comments and preprocessing directives), it will skip it completely.
        +#   - Otherwise it skips one token.
        +#
        +#   Parameters:
        +#
        +#       indexRef - A reference to the current index.
        +#       lineNumberRef - A reference to the current line number.
        +#
        +sub GenericSkip #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    # We can ignore the scope stack because we're just skipping everything without parsing, and we need recursion anyway.
        +    if ($tokens->[$$indexRef] eq '{')
        +        {
        +        $$indexRef++;
        +        $self->GenericSkipUntilAfter($indexRef, $lineNumberRef, '}');
        +        }
        +    elsif ($tokens->[$$indexRef] eq '(')
        +        {
        +        $$indexRef++;
        +        $self->GenericSkipUntilAfter($indexRef, $lineNumberRef, ')');
        +        }
        +    elsif ($tokens->[$$indexRef] eq '[')
        +        {
        +        $$indexRef++;
        +        $self->GenericSkipUntilAfter($indexRef, $lineNumberRef, ']');
        +        }
        +
        +    elsif ($self->TryToSkipWhitespace($indexRef, $lineNumberRef) ||
        +            $self->TryToSkipString($indexRef, $lineNumberRef))
        +        {
        +        }
        +
        +    else
        +        {  $$indexRef++;  };
        +    };
        +
        +
        +#
        +#   Function: GenericSkipUntilAfter
        +#
        +#   Advances the position via <GenericSkip()> until a specific token is reached and passed.
        +#
        +sub GenericSkipUntilAfter #(indexRef, lineNumberRef, token)
        +    {
        +    my ($self, $indexRef, $lineNumberRef, $token) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    while ($$indexRef < scalar @$tokens && $tokens->[$$indexRef] ne $token)
        +        {  $self->GenericSkip($indexRef, $lineNumberRef);  };
        +
        +    if ($tokens->[$$indexRef] eq "\n")
        +        {  $$lineNumberRef++;  };
        +    $$indexRef++;
        +    };
        +
        +
        +#
        +#   Function: SkipRestOfStatement
        +#
        +#   Advances the position via <GenericSkip()> until after the end of the current statement, which is defined as a semicolon or
        +#   a brace group.  Of course, either of those appearing inside parenthesis, a nested brace group, etc. don't count.
        +#
        +sub SkipRestOfStatement #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    while ($$indexRef < scalar @$tokens &&
        +             $tokens->[$$indexRef] ne ';' &&
        +             $tokens->[$$indexRef] ne '{')
        +        {
        +        $self->GenericSkip($indexRef, $lineNumberRef);
        +        };
        +
        +    if ($tokens->[$$indexRef] eq ';')
        +        {  $$indexRef++;  }
        +    elsif ($tokens->[$$indexRef] eq '{')
        +        {  $self->GenericSkip($indexRef, $lineNumberRef);  };
        +    };
        +
        +
        +#
        +#   Function: TryToSkipString
        +#   If the current position is on a string delimiter, skip past the string and return true.
        +#
        +#   Parameters:
        +#
        +#       indexRef - A reference to the index of the position to start at.
        +#       lineNumberRef - A reference to the line number of the position.
        +#
        +#   Returns:
        +#
        +#       Whether the position was at a string.
        +#
        +#   Syntax Support:
        +#
        +#       - Supports quotes, apostrophes, and at-quotes.
        +#
        +sub TryToSkipString #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    # The three string delimiters.  All three are Perl variables when preceded by a dollar sign.
        +    if ($self->SUPER::TryToSkipString($indexRef, $lineNumberRef, '\'') ||
        +        $self->SUPER::TryToSkipString($indexRef, $lineNumberRef, '"') )
        +        {
        +        return 1;
        +        }
        +    elsif ($tokens->[$$indexRef] eq '@' && $tokens->[$$indexRef+1] eq '"')
        +        {
        +        $$indexRef += 2;
        +
        +        # We need to do at-strings manually because backslash characters are accepted as regular characters, and two consecutive
        +        # quotes are accepted as well.
        +
        +        while ($$indexRef < scalar @$tokens && !($tokens->[$$indexRef] eq '"' && $tokens->[$$indexRef+1] ne '"') )
        +            {
        +            if ($tokens->[$$indexRef] eq '"')
        +                {
        +                # This is safe because the while condition will only let through quote pairs.
        +                $$indexRef += 2;
        +                }
        +            elsif ($tokens->[$$indexRef] eq "\n")
        +                {
        +                $$indexRef++;
        +                $$lineNumberRef++;
        +                }
        +            else
        +                {
        +                $$indexRef++;
        +                };
        +            };
        +
        +        # Skip the closing quote.
        +        if ($$indexRef < scalar @$tokens)
        +            {  $$indexRef++;  };
        +
        +        return 1;
        +        }
        +    else
        +        {  return undef;  };
        +    };
        +
        +
        +#
        +#   Function: TryToSkipAttributes
        +#   If the current position is on an attribute section, skip it and return true.  Skips multiple attribute sections if they appear
        +#   consecutively.
        +#
        +sub TryToSkipAttributes #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    my $success;
        +
        +    while ($tokens->[$$indexRef] eq '[')
        +        {
        +        $success = 1;
        +        $$indexRef++;
        +        $self->GenericSkipUntilAfter($indexRef, $lineNumberRef, ']');
        +        $self->TryToSkipWhitespace($indexRef, $lineNumberRef);
        +        };
        +
        +    return $success;
        +    };
        +
        +
        +#
        +#	Function: TryToSkipTemplateSpec
        +#	If the current position is on a template spec (the part in angle brackets) skip it and return true.  Can handle nested
        +#	templates.
        +#
        +sub TryToSkipTemplateSpec #(indexRef, lineNumberRef)
        +	{
        +	my ($self, $indexRef, $lineNumberRef) = @_;
        +	my $tokens = $self->Tokens();
        +
        +    if ($tokens->[$$indexRef] eq '<')
        +        {
        +        my $nestingLevel = 1;
        +        $$indexRef++;
        +        $self->TryToSkipWhitespace($indexRef, $lineNumberRef);
        +
        +        while ($$indexRef < scalar @$tokens && $nestingLevel > 0)
        +        	{
        +        	if ($tokens->[$$indexRef] eq '<')
        +        		{  $nestingLevel++;  }
        +        	elsif ($tokens->[$$indexRef] eq '>')
        +        		{  $nestingLevel--;  }
        +
        +            $$indexRef++;
        +        	$self->TryToSkipWhitespace($indexRef, $lineNumberRef);
        +			}
        +
        +		return 1;
        +        }
        +    else
        +    	{  return undef;  }
        +	}
        +
        +
        +#
        +#	Function: TryToSkipWhereClauses
        +#	If the current position is on a "where" clause, skips it and returns true.  Can handle multiple wheres in a row.
        +#
        +sub TryToSkipWhereClauses #(indexRef, lineNumberRef)
        +	{
        +	my ($self, $indexRef, $lineNumberRef) = @_;
        +	my $tokens = $self->Tokens();
        +
        +    if ($tokens->[$$indexRef] ne 'where')
        +    	{  return undef;  }
        +
        +	my $index = $$indexRef;
        +	my $lineNumber = $$lineNumberRef;
        +
        +    do
        +        {
        +        $index++;  # Skip the where
        +        $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +        $index++;  # Skip the variable name
        +        $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +        if ($tokens->[$index] ne ':')
        +        	{  return undef;  }
        +
        +        $index++;  # Skip the colon
        +        $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +        for (;;)
        +        	{
        +        	if ($index >= scalar @$tokens)
        +        		{  return undef;  }
        +        	elsif ($tokens->[$index] eq 'new')
        +        		{
        +        		$index++;
        +        		$self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +        		if ($tokens->[$index] ne '(')
        +        			{  return undef;  }
        +
        +                $index++;
        +        		$self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +        		if ($tokens->[$index] ne ')')
        +        			{  return undef;  }
        +
        +        		$index++;
        +        		$self->TryToSkipWhitespace(\$index, \$lineNumber);
        +        		}
        +        	else
        +        		{
        +        		while ($index < scalar @$tokens && $tokens->[$index] =~ /^[a-z0-9_\.\@]+$/i)
        +        			{  $index++;  }
        +
        +        		$self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +        		if ($self->TryToSkipTemplateSpec(\$index, \$lineNumber))
        +        			{  $self->TryToSkipWhitespace(\$index, \$lineNumber);  }
        +        		}
        +
        +        	if ($tokens->[$index] eq ',')
        +        		{
        +        		$index++;
        +        		$self->TryToSkipWhitespace(\$index, \$lineNumber);
        +        		}
        +        	else
        +        		{  last;  }
        +        	}
        +        }
        +    while ($tokens->[$index] eq 'where');
        +
        +    $$indexRef = $index;
        +    $$lineNumberRef = $lineNumber;
        +
        +    return 1;
        +	}
        +
        +
        +#
        +#   Function: TryToSkipWhitespace
        +#   If the current position is on a whitespace token, a line break token, a comment, or a preprocessing directive, it skips them
        +#   and returns true.  If there are a number of these in a row, it skips them all.
        +#
        +sub TryToSkipWhitespace #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    my $result;
        +
        +    while ($$indexRef < scalar @$tokens)
        +        {
        +        if ($tokens->[$$indexRef] =~ /^[ \t]/)
        +            {
        +            $$indexRef++;
        +            $result = 1;
        +            }
        +        elsif ($tokens->[$$indexRef] eq "\n")
        +            {
        +            $$indexRef++;
        +            $$lineNumberRef++;
        +            $result = 1;
        +            }
        +        elsif ($self->TryToSkipComment($indexRef, $lineNumberRef) ||
        +                $self->TryToSkipPreprocessingDirective($indexRef, $lineNumberRef))
        +            {
        +            $result = 1;
        +            }
        +        else
        +            {  last;  };
        +        };
        +
        +    return $result;
        +    };
        +
        +
        +#
        +#   Function: TryToSkipComment
        +#   If the current position is on a comment, skip past it and return true.
        +#
        +sub TryToSkipComment #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +
        +    return ( $self->TryToSkipLineComment($indexRef, $lineNumberRef) ||
        +                $self->TryToSkipMultilineComment($indexRef, $lineNumberRef) );
        +    };
        +
        +
        +#
        +#   Function: TryToSkipLineComment
        +#   If the current position is on a line comment symbol, skip past it and return true.
        +#
        +sub TryToSkipLineComment #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    if ($tokens->[$$indexRef] eq '/' && $tokens->[$$indexRef+1] eq '/')
        +        {
        +        $self->SkipRestOfLine($indexRef, $lineNumberRef);
        +        return 1;
        +        }
        +    else
        +        {  return undef;  };
        +    };
        +
        +
        +#
        +#   Function: TryToSkipMultilineComment
        +#   If the current position is on an opening comment symbol, skip past it and return true.
        +#
        +sub TryToSkipMultilineComment #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    if ($tokens->[$$indexRef] eq '/' && $tokens->[$$indexRef+1] eq '*')
        +        {
        +        $self->SkipUntilAfter($indexRef, $lineNumberRef, '*', '/');
        +        return 1;
        +        }
        +    else
        +        {  return undef;  };
        +    };
        +
        +
        +#
        +#   Function: TryToSkipPreprocessingDirective
        +#   If the current position is on a preprocessing directive, skip past it and return true.
        +#
        +sub TryToSkipPreprocessingDirective #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    if ($tokens->[$$indexRef] eq '#' && $self->IsFirstLineToken($$indexRef))
        +        {
        +        $self->SkipRestOfLine($indexRef, $lineNumberRef);
        +        return 1;
        +        }
        +    else
        +        {  return undef;  };
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/PLSQL.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/PLSQL.pm
        new file mode 100755
        index 0000000..c72db78
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/PLSQL.pm
        @@ -0,0 +1,320 @@
        +###############################################################################
        +#
        +#   Class: NaturalDocs::Languages::PLSQL
        +#
        +###############################################################################
        +#
        +#   A subclass to handle the language variations of PL/SQL.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::Languages::PLSQL;
        +
        +use base 'NaturalDocs::Languages::Simple';
        +
        +
        +#
        +#   Function: OnPrototypeEnd
        +#
        +#   Microsoft's SQL specifies parameters as shown below.
        +#
        +#   > CREATE PROCEDURE Test @as int, @foo int AS ...
        +#
        +#   Having a parameter @is or @as is perfectly valid even though those words are also used to end the prototype.  We need to
        +#   ignore text-based enders preceded by an at sign.  Also note that it does not have parenthesis for parameter lists.  We need to
        +#   skip all commas if the prototype doesn't have parenthesis but does have @ characters.
        +#
        +#	Identifiers such as function names may contain the characters $, #, and _, so if "as" or "is" appears directly after one of them
        +#	we need to ignore the ender there as well.
        +#
        +#	> FUNCTION Something_is_something ...
        +#
        +#   Parameters:
        +#
        +#       type - The <TopicType> of the prototype.
        +#       prototypeRef - A reference to the prototype so far, minus the ender in dispute.
        +#       ender - The ender symbol.
        +#
        +#   Returns:
        +#
        +#       ENDER_ACCEPT - The ender is accepted and the prototype is finished.
        +#       ENDER_IGNORE - The ender is rejected and parsing should continue.  Note that the prototype will be rejected as a whole
        +#                                  if all enders are ignored before reaching the end of the code.
        +#       ENDER_ACCEPT_AND_CONTINUE - The ender is accepted so the prototype may stand as is.  However, the prototype might
        +#                                                          also continue on so continue parsing.  If there is no accepted ender between here and
        +#                                                          the end of the code this version will be accepted instead.
        +#       ENDER_REVERT_TO_ACCEPTED - The expedition from ENDER_ACCEPT_AND_CONTINUE failed.  Use the last accepted
        +#                                                        version and end parsing.
        +#
        +sub OnPrototypeEnd #(type, prototypeRef, ender)
        +    {
        +    my ($self, $type, $prototypeRef, $ender) = @_;
        +
        +    # _ should be handled already.
        +    if ($ender =~ /^[a-z]+$/i && substr($$prototypeRef, -1) =~ /^[\@\$\#]$/)
        +        {  return ::ENDER_IGNORE();  }
        +
        +    elsif ($type eq ::TOPIC_FUNCTION() && $ender eq ',')
        +        {
        +        if ($$prototypeRef =~ /^[^\(]*\@/)
        +            {  return ::ENDER_IGNORE();  }
        +        else
        +            {  return ::ENDER_ACCEPT();  };
        +        }
        +
        +    else
        +        {  return ::ENDER_ACCEPT();  };
        +    };
        +
        +
        +#
        +#   Function: ParsePrototype
        +#
        +#   Overridden to handle Microsoft's parenthesisless version.  Otherwise just throws to the parent.
        +#
        +#   Parameters:
        +#
        +#       type - The <TopicType>.
        +#       prototype - The text prototype.
        +#
        +#   Returns:
        +#
        +#       A <NaturalDocs::Languages::Prototype> object.
        +#
        +sub ParsePrototype #(type, prototype)
        +    {
        +    my ($self, $type, $prototype) = @_;
        +
        +    my $noParenthesisParameters = ($type eq ::TOPIC_FUNCTION() && $prototype =~ /^[^\(]*\@/);
        +
        +    if ($prototype !~ /\(.*[^ ].*\)/ && !$noParenthesisParameters)
        +        {  return $self->SUPER::ParsePrototype($type, $prototype);  };
        +
        +
        +
        +    my ($beforeParameters, $afterParameters, $isAfterParameters);
        +
        +    if ($noParenthesisParameters)
        +        {
        +        ($beforeParameters, $prototype) = split(/\@/, $prototype, 2);
        +        $prototype = '@' . $prototype;
        +        };
        +
        +    my @tokens = $prototype =~ /([^\(\)\[\]\{\}\<\>\'\"\,]+|.)/g;
        +
        +    my $parameter;
        +    my @parameterLines;
        +
        +    my @symbolStack;
        +
        +    foreach my $token (@tokens)
        +        {
        +        if ($isAfterParameters)
        +            {  $afterParameters .= $token;  }
        +
        +        elsif ($symbolStack[-1] eq '\'' || $symbolStack[-1] eq '"')
        +            {
        +            if ($noParenthesisParameters || $symbolStack[0] eq '(')
        +                {  $parameter .= $token;  }
        +            else
        +                {  $beforeParameters .= $token;  };
        +
        +            if ($token eq $symbolStack[-1])
        +                {  pop @symbolStack;  };
        +            }
        +
        +        elsif ($token =~ /^[\(\[\{\<\'\"]$/)
        +            {
        +            if ($noParenthesisParameters || $symbolStack[0] eq '(')
        +                {  $parameter .= $token;  }
        +            else
        +                {  $beforeParameters .= $token;  };
        +
        +            push @symbolStack, $token;
        +            }
        +
        +        elsif ( ($token eq ')' && $symbolStack[-1] eq '(') ||
        +                 ($token eq ']' && $symbolStack[-1] eq '[') ||
        +                 ($token eq '}' && $symbolStack[-1] eq '{') ||
        +                 ($token eq '>' && $symbolStack[-1] eq '<') )
        +            {
        +            if (!$noParenthesisParameters && $token eq ')' && scalar @symbolStack == 1 && $symbolStack[0] eq '(')
        +                {
        +                $afterParameters .= $token;
        +                $isAfterParameters = 1;
        +                }
        +            else
        +                {  $parameter .= $token;  };
        +
        +            pop @symbolStack;
        +            }
        +
        +        elsif ($token eq ',')
        +            {
        +            if (!scalar @symbolStack)
        +                {
        +                if ($noParenthesisParameters)
        +                    {
        +                    push @parameterLines, $parameter . $token;
        +                    $parameter = undef;
        +                    }
        +                else
        +                    {
        +                    $beforeParameters .= $token;
        +                    };
        +                }
        +            else
        +                {
        +                if (scalar @symbolStack == 1 && $symbolStack[0] eq '(' && !$noParenthesisParameters)
        +                    {
        +                    push @parameterLines, $parameter . $token;
        +                    $parameter = undef;
        +                    }
        +                else
        +                    {
        +                    $parameter .= $token;
        +                    };
        +                };
        +            }
        +
        +        else
        +            {
        +            if ($noParenthesisParameters || $symbolStack[0] eq '(')
        +                {  $parameter .= $token;  }
        +            else
        +                {  $beforeParameters .= $token;  };
        +            };
        +        };
        +
        +    push @parameterLines, $parameter;
        +
        +    foreach my $item (\$beforeParameters, \$afterParameters)
        +        {
        +        $$item =~ s/^ //;
        +        $$item =~ s/ $//;
        +        }
        +
        +    my $prototypeObject = NaturalDocs::Languages::Prototype->New($beforeParameters, $afterParameters);
        +
        +
        +    # Parse the actual parameters.
        +
        +    foreach my $parameterLine (@parameterLines)
        +        {
        +        $prototypeObject->AddParameter( $self->ParseParameterLine($parameterLine) );
        +        };
        +
        +    return $prototypeObject;
        +    };
        +
        +
        +#
        +#   Function: ParseParameterLine
        +#
        +#   Parses a prototype parameter line and returns it as a <NaturalDocs::Languages::Prototype::Parameter> object.
        +#
        +sub ParseParameterLine #(line)
        +    {
        +    my ($self, $line) = @_;
        +
        +    $line =~ s/^ //;
        +    $line =~ s/ $//;
        +
        +    my @tokens = $line =~ /([^\(\)\[\]\{\}\<\>\'\"\:\=\ ]+|\:\=|.)/g;
        +
        +    my ($name, $type, $defaultValue, $defaultValuePrefix, $inType, $inDefaultValue);
        +
        +
        +    my @symbolStack;
        +
        +    foreach my $token (@tokens)
        +        {
        +        if ($inDefaultValue)
        +            {  $defaultValue .= $token;  }
        +
        +        elsif ($symbolStack[-1] eq '\'' || $symbolStack[-1] eq '"')
        +            {
        +            if ($inType)
        +                {  $type .= $token;  }
        +            else
        +                {  $name .= $token;  };
        +
        +            if ($token eq $symbolStack[-1])
        +                {  pop @symbolStack;  };
        +            }
        +
        +        elsif ($token =~ /^[\(\[\{\<\'\"]$/)
        +            {
        +            if ($inType)
        +                {  $type .= $token;  }
        +            else
        +                {  $name .= $token;  };
        +
        +            push @symbolStack, $token;
        +            }
        +
        +        elsif ( ($token eq ')' && $symbolStack[-1] eq '(') ||
        +                 ($token eq ']' && $symbolStack[-1] eq '[') ||
        +                 ($token eq '}' && $symbolStack[-1] eq '{') ||
        +                 ($token eq '>' && $symbolStack[-1] eq '<') )
        +            {
        +            if ($inType)
        +                {  $type .= $token;  }
        +            else
        +                {  $name .= $token;  };
        +
        +            pop @symbolStack;
        +            }
        +
        +        elsif ($token eq ' ')
        +            {
        +            if ($inType)
        +                {  $type .= $token;  }
        +            elsif (!scalar @symbolStack)
        +                {  $inType = 1;  }
        +            else
        +                {  $name .= $token;  };
        +            }
        +
        +        elsif ($token eq ':=' || $token eq '=')
        +            {
        +            if (!scalar @symbolStack)
        +                {
        +                $defaultValuePrefix = $token;
        +                $inDefaultValue = 1;
        +                }
        +            elsif ($inType)
        +                {  $type .= $token;  }
        +            else
        +                {  $name .= $token;  };
        +            }
        +
        +        else
        +            {
        +            if ($inType)
        +                {  $type .= $token;  }
        +            else
        +                {  $name .= $token;  };
        +            };
        +        };
        +
        +    foreach my $part (\$type, \$defaultValue)
        +        {
        +        $$part =~ s/ $//;
        +        };
        +
        +    return NaturalDocs::Languages::Prototype::Parameter->New($type, undef, $name, undef, $defaultValue, $defaultValuePrefix);
        +    };
        +
        +
        +sub TypeBeforeParameter
        +    {  return 0;  };
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/Pascal.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/Pascal.pm
        new file mode 100755
        index 0000000..69cf567
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/Pascal.pm
        @@ -0,0 +1,144 @@
        +###############################################################################
        +#
        +#   Class: NaturalDocs::Languages::Pascal
        +#
        +###############################################################################
        +#
        +#   A subclass to handle the language variations of Pascal and Delphi.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::Languages::Pascal;
        +
        +use base 'NaturalDocs::Languages::Simple';
        +
        +
        +#
        +#   hash: prototypeDirectives
        +#
        +#   An existence hash of all the directives that can appear after a function prototype and will be included.  The keys are the all
        +#   lowercase keywords.
        +#
        +my %prototypeDirectives = ( 'overload' => 1,
        +                                           'override' => 1,
        +                                           'virtual' => 1,
        +                                           'abstract' => 1,
        +                                           'reintroduce' => 1,
        +                                           'export' => 1,
        +                                           'public' => 1,
        +                                           'interrupt' => 1,
        +                                           'register' => 1,
        +                                           'pascal' => 1,
        +                                           'cdecl' => 1,
        +                                           'stdcall' => 1,
        +                                           'popstack' => 1,
        +                                           'saveregisters' => 1,
        +                                           'inline' => 1,
        +                                           'safecall' => 1 );
        +
        +#
        +#   hash: longPrototypeDirectives
        +#
        +#   An existence hash of all the directives with parameters that can appear after a function prototype and will be included.  The
        +#   keys are the all lowercase keywords.
        +#
        +my %longPrototypeDirectives = ( 'alias' => 1,
        +                                                 'external' => 1 );
        +
        +#
        +#   bool: checkingForDirectives
        +#
        +#   Set after the first function semicolon, which means we're in directives mode.
        +#
        +my $checkingForDirectives;
        +
        +
        +#
        +#   Function: OnCode
        +#
        +#   Just overridden to reset <checkingForDirectives>.
        +#
        +sub OnCode #(...)
        +    {
        +    my ($self, @parameters) = @_;
        +
        +    $checkingForDirectives = 0;
        +
        +    return $self->SUPER::OnCode(@parameters);
        +    };
        +
        +
        +#
        +#   Function: OnPrototypeEnd
        +#
        +#   Pascal's syntax has directives after the prototype that should be included.
        +#
        +#   > function MyFunction ( param1: type ); virtual; abstract;
        +#
        +#   Parameters:
        +#
        +#       type - The <TopicType> of the prototype.
        +#       prototypeRef - A reference to the prototype so far, minus the ender in dispute.
        +#       ender - The ender symbol.
        +#
        +#   Returns:
        +#
        +#       ENDER_ACCEPT - The ender is accepted and the prototype is finished.
        +#       ENDER_IGNORE - The ender is rejected and parsing should continue.  Note that the prototype will be rejected as a whole
        +#                                  if all enders are ignored before reaching the end of the code.
        +#       ENDER_ACCEPT_AND_CONTINUE - The ender is accepted so the prototype may stand as is.  However, the prototype might
        +#                                                          also continue on so continue parsing.  If there is no accepted ender between here and
        +#                                                          the end of the code this version will be accepted instead.
        +#       ENDER_REVERT_TO_ACCEPTED - The expedition from ENDER_ACCEPT_AND_CONTINUE failed.  Use the last accepted
        +#                                                        version and end parsing.
        +#
        +sub OnPrototypeEnd #(type, prototypeRef, ender)
        +    {
        +    my ($self, $type, $prototypeRef, $ender) = @_;
        +
        +    if ($type eq ::TOPIC_FUNCTION() && $ender eq ';')
        +        {
        +        if (!$checkingForDirectives)
        +            {
        +            $checkingForDirectives = 1;
        +            return ::ENDER_ACCEPT_AND_CONTINUE();
        +            }
        +        elsif ($$prototypeRef =~ /;[ \t]*([a-z]+)([^;]*)$/i)
        +            {
        +            my ($lastDirective, $extra) = (lc($1), $2);
        +
        +            if (exists $prototypeDirectives{$lastDirective} && $extra =~ /^[ \t]*$/)
        +                {  return ::ENDER_ACCEPT_AND_CONTINUE();  }
        +            elsif (exists $longPrototypeDirectives{$lastDirective})
        +                {  return ::ENDER_ACCEPT_AND_CONTINUE();  }
        +            else
        +                {  return ::ENDER_REVERT_TO_ACCEPTED();  };
        +            }
        +        else
        +            {  return ::ENDER_REVERT_TO_ACCEPTED();  };
        +        }
        +    else
        +        {  return ::ENDER_ACCEPT();  };
        +    };
        +
        +
        +sub ParseParameterLine #(...)
        +    {
        +    my ($self, @params) = @_;
        +    return $self->SUPER::ParsePascalParameterLine(@params);
        +    };
        +
        +sub TypeBeforeParameter
        +    {
        +    return 0;
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/Perl.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/Perl.pm
        new file mode 100755
        index 0000000..5d971b8
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/Perl.pm
        @@ -0,0 +1,1371 @@
        +###############################################################################
        +#
        +#   Class: NaturalDocs::Languages::Perl
        +#
        +###############################################################################
        +#
        +#   A subclass to handle the language variations of Perl.
        +#
        +#
        +#   Topic: Language Support
        +#
        +#       Supported:
        +#
        +#       - Packages
        +#       - Inheritance via "use base" and "@ISA =".
        +#       - Functions
        +#       - Variables
        +#
        +#       Not supported yet:
        +#
        +#       - Constants
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::Languages::Perl;
        +
        +use base 'NaturalDocs::Languages::Advanced';
        +
        +
        +#
        +#   array: hereDocTerminators
        +#   An array of active Here Doc terminators, or an empty array if not active.  Each entry is an arrayref of tokens.  The entries
        +#   must appear in the order they must appear in the source.
        +#
        +my @hereDocTerminators;
        +
        +
        +
        +###############################################################################
        +# Group: Interface Functions
        +
        +
        +#
        +#   Function: PackageSeparator
        +#   Returns the package separator symbol.
        +#
        +sub PackageSeparator
        +    {  return '::';  };
        +
        +#
        +#   Function: EnumValues
        +#   Returns the <EnumValuesType> that describes how the language handles enums.
        +#
        +sub EnumValues
        +    {  return ::ENUM_GLOBAL();  };
        +
        +
        +#
        +#   Function: ParseFile
        +#
        +#   Parses the passed source file, sending comments acceptable for documentation to <NaturalDocs::Parser->OnComment()>.
        +#
        +#   Parameters:
        +#
        +#       sourceFile - The name of the source file to parse.
        +#       topicList - A reference to the list of <NaturalDocs::Parser::ParsedTopics> being built by the file.
        +#
        +#   Returns:
        +#
        +#       The array ( autoTopics, scopeRecord ).
        +#
        +#       autoTopics - An arrayref of automatically generated topics from the file, or undef if none.
        +#       scopeRecord - An arrayref of <NaturalDocs::Languages::Advanced::ScopeChanges>, or undef if none.
        +#
        +sub ParseFile #(sourceFile, topicsList)
        +    {
        +    my ($self, $sourceFile, $topicsList) = @_;
        +
        +    @hereDocTerminators = ( );
        +
        +    # The regular block comment symbols are undef because they're all potentially JavaDoc comments.  PreprocessFile() will
        +    # handle translating things like =begin naturaldocs and =begin javadoc to =begin nd.
        +    $self->ParseForCommentsAndTokens($sourceFile, [ '#' ], undef, [ '##' ], [ '=begin nd', '=end nd' ]);
        +
        +    my $tokens = $self->Tokens();
        +    my $index = 0;
        +    my $lineNumber = 1;
        +
        +    while ($index < scalar @$tokens)
        +        {
        +        if ($self->TryToSkipWhitespace(\$index, \$lineNumber) ||
        +            $self->TryToGetPackage(\$index, \$lineNumber) ||
        +            $self->TryToGetBase(\$index, \$lineNumber) ||
        +            $self->TryToGetFunction(\$index, \$lineNumber) ||
        +            $self->TryToGetVariable(\$index, \$lineNumber) )
        +            {
        +            # The functions above will handle everything.
        +            }
        +
        +        elsif ($tokens->[$index] eq '{')
        +            {
        +            $self->StartScope('}', $lineNumber, undef);
        +            $index++;
        +            }
        +
        +        elsif ($tokens->[$index] eq '}')
        +            {
        +            if ($self->ClosingScopeSymbol() eq '}')
        +                {  $self->EndScope($lineNumber);  };
        +
        +            $index++;
        +            }
        +
        +        elsif (lc($tokens->[$index]) eq 'eval')
        +            {
        +            # We want to skip the token in this case instead of letting it fall to SkipRestOfStatement.  This allows evals with braces
        +            # to be treated like normal floating braces.
        +            $index++;
        +            }
        +
        +        else
        +            {
        +            $self->SkipRestOfStatement(\$index, \$lineNumber);
        +            };
        +        };
        +
        +
        +    # Don't need to keep these around.
        +    $self->ClearTokens();
        +
        +    return ( $self->AutoTopics(), $self->ScopeRecord() );
        +    };
        +
        +
        +#
        +#   Function: PreprocessFile
        +#
        +#   Overridden to support "=begin nd" and similar.
        +#
        +#   - "=begin [nd|naturaldocs|natural docs|jd|javadoc|java doc]" all translate to "=begin nd".
        +#   - "=[nd|naturaldocs|natural docs]" also translate to "=begin nd".
        +#   - "=end [nd|naturaldocs|natural docs|jd|javadoc]" all translate to "=end nd".
        +#   - "=cut" from a ND block translates into "=end nd", but the next line will be altered to begin with "(NDPODBREAK)".  This is
        +#     so if there is POD leading into ND which ends with a cut, the parser can still end the original POD because the end ND line
        +#     would have been removed.  Remember, <NaturalDocs::Languages::Advanced->ParseForCommentsAndTokens()> removes
        +#     Natural Docs-worthy comments to save parsing time.
        +#   - "=pod begin nd" and "=pod end nd" are supported for compatibility with ND 1.32 and earlier, even though the syntax is a
        +#     mistake.
        +#   - It also supports the wrong plural forms, so naturaldoc/natural doc/javadocs/java docs will work.
        +#
        +sub PreprocessFile #(lines)
        +    {
        +    my ($self, $lines) = @_;
        +
        +    my $inNDPOD = 0;
        +    my $mustBreakPOD = 0;
        +
        +    for (my $i = 0; $i < scalar @$lines; $i++)
        +        {
        +        if ($lines->[$i] =~ /^\=(?:(?:pod[ \t]+)?begin[ \t]+)?(?:nd|natural[ \t]*docs?|jd|java[ \t]*docs?)[ \t]*$/i)
        +            {
        +            $lines->[$i] = '=begin nd';
        +            $inNDPOD = 1;
        +            $mustBreakPOD = 0;
        +            }
        +        elsif ($lines->[$i] =~ /^\=(?:pod[ \t]+)end[ \t]+(?:nd|natural[ \t]*docs?|jd|javadocs?)[ \t]*$/i)
        +            {
        +            $lines->[$i] = '=end nd';
        +            $inNDPOD = 0;
        +            $mustBreakPOD = 0;
        +            }
        +        elsif ($lines->[$i] =~ /^\=cut[ \t]*$/i)
        +            {
        +            if ($inNDPOD)
        +                {
        +                $lines->[$i] = '=end nd';
        +                $inNDPOD = 0;
        +                $mustBreakPOD = 1;
        +                };
        +            }
        +        elsif ($mustBreakPOD)
        +            {
        +            $lines->[$i] = '(NDPODBREAK)' . $lines->[$i];
        +            $mustBreakPOD = 0;
        +            };
        +        };
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Statement Parsing Functions
        +# All functions here assume that the current position is at the beginning of a statement.
        +#
        +# Note for developers: I am well aware that the code in these functions do not check if we're past the end of the tokens as
        +# often as it should.  We're making use of the fact that Perl will always return undef in these cases to keep the code simpler.
        +
        +
        +#
        +#   Function: TryToGetPackage
        +#
        +#   Determines whether the position is at a package declaration statement, and if so, generates a topic for it, skips it, and
        +#   returns true.
        +#
        +sub TryToGetPackage #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    if (lc($tokens->[$$indexRef]) eq 'package')
        +        {
        +        my $index = $$indexRef + 1;
        +        my $lineNumber = $$lineNumberRef;
        +
        +        if (!$self->TryToSkipWhitespace(\$index, \$lineNumber))
        +            {  return undef;  };
        +
        +        my $name;
        +
        +        while ($tokens->[$index] =~ /^[a-z_\:]/i)
        +            {
        +            $name .= $tokens->[$index];
        +            $index++;
        +            };
        +
        +        if (!defined $name)
        +            {  return undef;  };
        +
        +        my $autoTopic = NaturalDocs::Parser::ParsedTopic->New(::TOPIC_CLASS(), $name,
        +                                                                                             undef, undef,
        +                                                                                             undef,
        +                                                                                             undef, undef, $$lineNumberRef);
        +        $self->AddAutoTopic($autoTopic);
        +
        +        NaturalDocs::Parser->OnClass($autoTopic->Symbol());
        +
        +        $self->SetPackage($autoTopic->Symbol(), $$lineNumberRef);
        +
        +        $$indexRef = $index;
        +        $$lineNumberRef = $lineNumber;
        +        $self->SkipRestOfStatement($indexRef, $lineNumberRef);
        +
        +        return 1;
        +        };
        +
        +    return undef;
        +    };
        +
        +
        +#
        +#   Function: TryToGetBase
        +#
        +#   Determines whether the position is at a package base declaration statement, and if so, calls
        +#   <NaturalDocs::Parser->OnClassParent()>.
        +#
        +#   Supported Syntaxes:
        +#
        +#   > use base [list of strings]
        +#   > @ISA = [list of strings]
        +#   > @[package]::ISA = [list of strings]
        +#   > our @ISA = [list of strings]
        +#
        +sub TryToGetBase #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    my ($index, $lineNumber, $class, $parents);
        +
        +    if (lc($tokens->[$$indexRef]) eq 'use')
        +        {
        +        $index = $$indexRef + 1;
        +        $lineNumber = $$lineNumberRef;
        +
        +        if (!$self->TryToSkipWhitespace(\$index, \$lineNumber) ||
        +           lc($tokens->[$index]) ne 'base')
        +            {  return undef;  }
        +
        +        $index++;
        +        $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +        $parents = $self->TryToGetListOfStrings(\$index, \$lineNumber);
        +        }
        +
        +    else
        +        {
        +        $index = $$indexRef;
        +        $lineNumber = $$lineNumberRef;
        +
        +        if (lc($tokens->[$index]) eq 'our')
        +            {
        +            $index++;
        +            $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +            };
        +
        +        if ($tokens->[$index] eq '@')
        +            {
        +            $index++;
        +
        +            while ($index < scalar @$tokens)
        +                {
        +                if ($tokens->[$index] eq 'ISA')
        +                    {
        +                    $index++;
        +                    $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +                    if ($tokens->[$index] eq '=')
        +                        {
        +                        $index++;
        +                        $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +                        $parents = $self->TryToGetListOfStrings(\$index, \$lineNumber);
        +                        }
        +                    else
        +                        {  last;  };
        +                    }
        +
        +                # If token isn't ISA...
        +                elsif ($tokens->[$index] =~ /^[a-z0-9_:]/i)
        +                    {
        +                    $class .= $tokens->[$index];
        +                    $index++;
        +                    }
        +                else
        +                    {  last;  };
        +                };
        +            };
        +        };
        +
        +    if (defined $parents)
        +        {
        +        if (defined $class)
        +            {
        +            $class =~ s/::$//;
        +            my @classIdentifiers = split(/::/, $class);
        +            $class = NaturalDocs::SymbolString->Join(@classIdentifiers);
        +            }
        +        else
        +            {  $class = $self->CurrentScope();  };
        +
        +        foreach my $parent (@$parents)
        +            {
        +            my @parentIdentifiers = split(/::/, $parent);
        +            my $parentSymbol = NaturalDocs::SymbolString->Join(@parentIdentifiers);
        +
        +            NaturalDocs::Parser->OnClassParent($class, $parentSymbol, undef, undef, ::RESOLVE_ABSOLUTE());
        +            };
        +
        +        $$indexRef = $index;
        +        $$lineNumberRef = $lineNumber;
        +        $self->SkipRestOfStatement($indexRef, $lineNumberRef);
        +
        +        return 1;
        +        }
        +    else
        +        {  return undef;  };
        +    };
        +
        +
        +#
        +#   Function: TryToGetFunction
        +#
        +#   Determines whether the position is at a function declaration statement, and if so, generates a topic for it, skips it, and
        +#   returns true.
        +#
        +sub TryToGetFunction #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    if ( lc($tokens->[$$indexRef]) eq 'sub')
        +        {
        +        my $prototypeStart = $$indexRef;
        +        my $prototypeStartLine = $$lineNumberRef;
        +        my $prototypeEnd = $$indexRef + 1;
        +        my $prototypeEndLine = $$lineNumberRef;
        +
        +        if ( !$self->TryToSkipWhitespace(\$prototypeEnd, \$prototypeEndLine) ||
        +             $tokens->[$prototypeEnd] !~ /^[a-z_]/i )
        +            {  return undef;  };
        +
        +        my $name = $tokens->[$prototypeEnd];
        +        $prototypeEnd++;
        +
        +        # We parsed 'sub [name]'.  Now keep going until we find a semicolon or a brace.
        +
        +        for (;;)
        +            {
        +            if ($prototypeEnd >= scalar @$tokens)
        +                {  return undef;  }
        +
        +            # End if we find a semicolon, since it means we found a predeclaration rather than an actual function.
        +            elsif ($tokens->[$prototypeEnd] eq ';')
        +                {  return undef;  }
        +
        +            elsif ($tokens->[$prototypeEnd] eq '{')
        +                {
        +                # Found it!
        +
        +                my $prototype = $self->NormalizePrototype( $self->CreateString($prototypeStart, $prototypeEnd) );
        +
        +                $self->AddAutoTopic(NaturalDocs::Parser::ParsedTopic->New(::TOPIC_FUNCTION(), $name,
        +                                                                                                          $self->CurrentScope(), undef,
        +                                                                                                          $prototype,
        +                                                                                                          undef, undef, $prototypeStartLine));
        +
        +                $$indexRef = $prototypeEnd;
        +                $$lineNumberRef = $prototypeEndLine;
        +
        +                $self->SkipRestOfStatement($indexRef, $lineNumberRef);
        +
        +                return 1;
        +                }
        +
        +            else
        +                {  $self->GenericSkip(\$prototypeEnd, \$prototypeEndLine, 0, 1);  };
        +            };
        +        }
        +    else
        +        {  return undef;  };
        +    };
        +
        +
        +#
        +#   Function: TryToGetVariable
        +#
        +#   Determines if the position is at a variable declaration statement, and if so, generates a topic for it, skips it, and returns
        +#   true.
        +#
        +#   Supported Syntaxes:
        +#
        +#   - Supports variables declared with "my", "our", and "local".
        +#   - Supports multiple declarations in one statement, such as "my ($x, $y);".
        +#   - Supports types and attributes.
        +#
        +sub TryToGetVariable #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    my $firstToken = lc( $tokens->[$$indexRef] );
        +
        +    if ($firstToken eq 'my' || $firstToken eq 'our' || $firstToken eq 'local')
        +        {
        +        my $prototypeStart = $$indexRef;
        +        my $prototypeStartLine = $$lineNumberRef;
        +        my $prototypeEnd = $$indexRef + 1;
        +        my $prototypeEndLine = $$lineNumberRef;
        +
        +        $self->TryToSkipWhitespace(\$prototypeEnd, \$prototypeEndLine);
        +
        +
        +        # Get the type if present.
        +
        +        my $type;
        +
        +        if ($tokens->[$prototypeEnd] =~ /^[a-z\:]/i)
        +            {
        +            do
        +                {
        +                $type .= $tokens->[$prototypeEnd];
        +                $prototypeEnd++;
        +                }
        +            while ($tokens->[$prototypeEnd] =~ /^[a-z\:]/i);
        +
        +            if (!$self->TryToSkipWhitespace(\$prototypeEnd, \$prototypeEndLine))
        +                {  return undef;  };
        +            };
        +
        +
        +        # Get the name, or possibly names.
        +
        +        if ($tokens->[$prototypeEnd] eq '(')
        +            {
        +            # If there's multiple variables, we'll need to build a custom prototype for each one.  $firstToken already has the
        +            # declaring word.  We're going to store each name in @names, and we're going to use $prototypeStart and
        +            # $prototypeEnd to capture any properties appearing after the list.
        +
        +            my $name;
        +            my @names;
        +            my $hasComma = 0;
        +
        +            $prototypeStart = $prototypeEnd + 1;
        +            $prototypeStartLine = $prototypeEndLine;
        +
        +            for (;;)
        +                {
        +                $self->TryToSkipWhitespace(\$prototypeStart, \$prototypeStartLine);
        +
        +                $name = $self->TryToGetVariableName(\$prototypeStart, \$prototypeStartLine);
        +
        +                if (!defined $name)
        +                    {  return undef;  };
        +
        +                push @names, $name;
        +
        +                $self->TryToSkipWhitespace(\$prototypeStart, \$prototypeStartLine);
        +
        +                # We can have multiple commas in a row.  We can also have trailing commas.  However, the parenthesis must
        +                # not start with a comma or be empty, hence this logic does not appear earlier.
        +                while ($tokens->[$prototypeStart] eq ',')
        +                    {
        +                    $prototypeStart++;
        +                    $self->TryToSkipWhitespace(\$prototypeStart, \$prototypeStartLine);
        +
        +                    $hasComma = 1;
        +                    }
        +
        +                if ($tokens->[$prototypeStart] eq ')')
        +                    {
        +                    $prototypeStart++;
        +                    last;
        +                    }
        +                elsif (!$hasComma)
        +                    {  return undef;  };
        +                };
        +
        +
        +            # Now find the end of the prototype.
        +
        +            $prototypeEnd = $prototypeStart;
        +            $prototypeEndLine = $prototypeStartLine;
        +
        +            while ($prototypeEnd < scalar @$tokens &&
        +                     $tokens->[$prototypeEnd] !~ /^[\;\=]/)
        +                {
        +                $prototypeEnd++;
        +                };
        +
        +
        +            my $prototypePrefix = $firstToken . ' ';
        +            if (defined $type)
        +                {  $prototypePrefix .= $type . ' ';  };
        +
        +            my $prototypeSuffix = ' ' . $self->CreateString($prototypeStart, $prototypeEnd);
        +
        +            foreach $name (@names)
        +                {
        +                my $prototype = $self->NormalizePrototype( $prototypePrefix . $name . $prototypeSuffix );
        +
        +                $self->AddAutoTopic(NaturalDocs::Parser::ParsedTopic->New(::TOPIC_VARIABLE(), $name,
        +                                                                                                           $self->CurrentScope(), undef,
        +                                                                                                           $prototype,
        +                                                                                                           undef, undef, $prototypeStartLine));
        +                };
        +
        +            $self->SkipRestOfStatement(\$prototypeEnd, \$prototypeEndLine);
        +
        +            $$indexRef = $prototypeEnd;
        +            $$lineNumberRef = $prototypeEndLine;
        +            }
        +
        +        else # no parenthesis
        +            {
        +            my $name = $self->TryToGetVariableName(\$prototypeEnd, \$prototypeEndLine);
        +
        +            if (!defined $name)
        +                {  return undef;  };
        +
        +            while ($prototypeEnd < scalar @$tokens &&
        +                     $tokens->[$prototypeEnd] !~ /^[\;\=]/)
        +                {
        +                $prototypeEnd++;
        +                };
        +
        +            my $prototype = $self->NormalizePrototype( $self->CreateString($prototypeStart, $prototypeEnd) );
        +
        +            $self->AddAutoTopic(NaturalDocs::Parser::ParsedTopic->New(::TOPIC_VARIABLE(), $name,
        +                                                                                                       $self->CurrentScope(), undef,
        +                                                                                                       $prototype,
        +                                                                                                       undef, undef, $prototypeStartLine));
        +
        +            $self->SkipRestOfStatement(\$prototypeEnd, \$prototypeEndLine);
        +
        +            $$indexRef = $prototypeEnd;
        +            $$lineNumberRef = $prototypeEndLine;
        +            };
        +
        +        return 1;
        +        }
        +    else
        +        {  return undef;  };
        +    };
        +
        +
        +#
        +#   Function: TryToGetVariableName
        +#
        +#   Determines if the position is at a variable name, and if so, skips it and returns the name.
        +#
        +sub TryToGetVariableName #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    my $name;
        +
        +    if ($tokens->[$$indexRef] =~ /^[\$\@\%\*]/)
        +        {
        +        $name .= $tokens->[$$indexRef];
        +        $$indexRef++;
        +
        +        $self->TryToSkipWhitespace($indexRef, $lineNumberRef);
        +
        +        if ($tokens->[$$indexRef] =~ /^[a-z_]/i)
        +            {
        +            $name .= $tokens->[$$indexRef];
        +            $$indexRef++;
        +            }
        +        else
        +            {  return undef;  };
        +        };
        +
        +    return $name;
        +    };
        +
        +
        +#
        +#   Function: TryToGetListOfStrings
        +#
        +#   Attempts to retrieve a list of strings from the current position.  Returns an arrayref of them if any are found, or undef if none.
        +#   It stops the moment it reaches a non-string, so "string1, variable, string2" will only return string1.
        +#
        +#   Supported Syntaxes:
        +#
        +#   - Supports parenthesis.
        +#   - Supports all string forms supported by <TryToSkipString()>.
        +#   - Supports qw() string arrays.
        +#
        +sub TryToGetListOfStrings #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    my $parenthesis = 0;
        +    my $strings;
        +
        +    while ($$indexRef < scalar @$tokens)
        +        {
        +        # We'll tolerate parenthesis.
        +        if ($tokens->[$$indexRef] eq '(')
        +            {
        +            $$indexRef++;
        +            $parenthesis++;
        +            }
        +        elsif ($tokens->[$$indexRef] eq ')')
        +            {
        +            if ($parenthesis == 0)
        +                {  last;  };
        +
        +            $$indexRef++;
        +            $parenthesis--;
        +            }
        +        elsif ($tokens->[$$indexRef] eq ',')
        +            {
        +            $$indexRef++;
        +            }
        +        else
        +            {
        +            my ($startContent, $endContent);
        +            my $symbolIndex = $$indexRef;
        +
        +            if ($self->TryToSkipString($indexRef, $lineNumberRef, \$startContent, \$endContent))
        +                {
        +                my $content = $self->CreateString($startContent, $endContent);
        +
        +                if (!defined $strings)
        +                    {  $strings = [ ];  };
        +
        +                if (lc($tokens->[$symbolIndex]) eq 'qw')
        +                    {
        +                    $content =~ tr/ \t\n/ /s;
        +                    $content =~ s/^ //;
        +
        +                    my @qwStrings = split(/ /, $content);
        +
        +                    push @$strings, @qwStrings;
        +                    }
        +                else
        +                    {
        +                    push @$strings, $content;
        +                    };
        +                }
        +            else
        +                {  last;  };
        +            };
        +
        +        $self->TryToSkipWhitespace($indexRef, $lineNumberRef);
        +        };
        +
        +    return $strings;
        +    };
        +
        +
        +###############################################################################
        +# Group: Low Level Parsing Functions
        +
        +
        +#
        +#   Function: GenericSkip
        +#
        +#   Advances the position one place through general code.
        +#
        +#   - If the position is on a comment or string, it will skip it completely.
        +#   - If the position is on an opening symbol, it will skip until the past the closing symbol.
        +#   - If the position is on a regexp or quote-like operator, it will skip it completely.
        +#   - If the position is on a backslash, it will skip it and the following token.
        +#   - If the position is on whitespace (including comments), it will skip it completely.
        +#   - Otherwise it skips one token.
        +#
        +#   Parameters:
        +#
        +#       indexRef - A reference to the current index.
        +#       lineNumberRef - A reference to the current line number.
        +#       noRegExps - If set, does not test for regular expressions.
        +#
        +sub GenericSkip #(indexRef, lineNumberRef, noRegExps)
        +    {
        +    my ($self, $indexRef, $lineNumberRef, $noRegExps, $allowStringedClosingParens) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    if ($tokens->[$$indexRef] eq "\\" && $$indexRef + 1 < scalar @$tokens && $tokens->[$$indexRef+1] ne "\n")
        +        {  $$indexRef += 2;  }
        +
        +    # Note that we don't want to count backslashed ()[]{} since they could be in regexps.  Also, ()[] are valid variable names
        +    # when preceded by a string.
        +
        +    # We can ignore the scope stack because we're just skipping everything without parsing, and we need recursion anyway.
        +    elsif ($tokens->[$$indexRef] eq '{' && !$self->IsBackslashed($$indexRef))
        +        {
        +        $$indexRef++;
        +        $self->GenericSkipUntilAfter($indexRef, $lineNumberRef, '}', $noRegExps, $allowStringedClosingParens);
        +        }
        +    elsif ($tokens->[$$indexRef] eq '(' && !$self->IsBackslashed($$indexRef) && !$self->IsStringed($$indexRef))
        +        {
        +        # Temporarily allow stringed closing parenthesis if it looks like we're in an anonymous function declaration with Perl's
        +        # cheap version of prototypes, such as "my $_declare = sub($) {}".
        +        my $tempAllowStringedClosingParens = $allowStringedClosingParens;
        +        if (!$allowStringedClosingParens)
        +        	{
        +        	my $tempIndex = $$indexRef - 1;
        +        	if ($tempIndex >= 0 && $tokens->[$tempIndex] =~ /^[ \t]/)
        +        		{  $tempIndex--;  }
        +        	if ($tempIndex >= 0 && $tokens->[$tempIndex] eq 'sub')
        +        		{  $tempAllowStringedClosingParens = 1;  }
        +        	}
        +
        +        $$indexRef++;
        +
        +        do
        +            {  $self->GenericSkipUntilAfter($indexRef, $lineNumberRef, ')', $noRegExps, $tempAllowStringedClosingParens);  }
        +        while ($$indexRef < scalar @$tokens && $self->IsStringed($$indexRef - 1) && !$tempAllowStringedClosingParens);
        +        }
        +    elsif ($tokens->[$$indexRef] eq '[' && !$self->IsBackslashed($$indexRef) && !$self->IsStringed($$indexRef))
        +        {
        +        $$indexRef++;
        +
        +        do
        +            {  $self->GenericSkipUntilAfter($indexRef, $lineNumberRef, ']', $noRegExps, $allowStringedClosingParens);  }
        +        while ($$indexRef < scalar @$tokens && $self->IsStringed($$indexRef - 1));
        +        }
        +
        +    elsif ($self->TryToSkipWhitespace($indexRef, $lineNumberRef) ||
        +            $self->TryToSkipString($indexRef, $lineNumberRef) ||
        +            $self->TryToSkipHereDocDeclaration($indexRef, $lineNumberRef) ||
        +            (!$noRegExps && $self->TryToSkipRegexp($indexRef, $lineNumberRef) ) )
        +        {
        +        }
        +
        +    else
        +        {  $$indexRef++;  };
        +    };
        +
        +
        +#
        +#   Function: GenericSkipUntilAfter
        +#
        +#   Advances the position via <GenericSkip()> until a specific token is reached and passed.
        +#
        +sub GenericSkipUntilAfter #(indexRef, lineNumberRef, token, noRegExps, allowStringedClosingParens)
        +    {
        +    my ($self, $indexRef, $lineNumberRef, $token, $noRegExps, $allowStringedClosingParens) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    while ($$indexRef < scalar @$tokens && $tokens->[$$indexRef] ne $token)
        +        {  $self->GenericSkip($indexRef, $lineNumberRef, $noRegExps, $allowStringedClosingParens);  };
        +
        +    if ($tokens->[$$indexRef] eq "\n")
        +        {  $$lineNumberRef++;  };
        +    $$indexRef++;
        +    };
        +
        +
        +#
        +#   Function: GenericRegexpSkip
        +#
        +#   Advances the position one place through regexp code.
        +#
        +#   - If the position is on an opening symbol, it will skip until the past the closing symbol.
        +#   - If the position is on a backslash, it will skip it and the following token.
        +#   - If the position is on whitespace (not including comments), it will skip it completely.
        +#   - Otherwise it skips one token.
        +#
        +#   Also differs from <GenericSkip()> in that the parenthesis in $( and $) do count against the scope, where they wouldn't
        +#   normally.
        +#
        +#   Parameters:
        +#
        +#       indexRef - A reference to the current index.
        +#       lineNumberRef - A reference to the current line number.
        +#       inBrackets - Whether we're in brackets or not.  If true, we don't care about matching braces and parenthesis.
        +#
        +sub GenericRegexpSkip #(indexRef, lineNumberRef, inBrackets)
        +    {
        +    my ($self, $indexRef, $lineNumberRef, $inBrackets) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    if ($tokens->[$$indexRef] eq "\\" && $$indexRef + 1 < scalar @$tokens && $tokens->[$$indexRef+1] ne "\n")
        +        {  $$indexRef += 2;  }
        +
        +    # We can ignore the scope stack because we're just skipping everything without parsing, and we need recursion anyway.
        +    elsif ($tokens->[$$indexRef] eq '{' && !$self->IsBackslashed($$indexRef) && !$inBrackets)
        +        {
        +        $$indexRef++;
        +        $self->GenericRegexpSkipUntilAfter($indexRef, $lineNumberRef, '}');
        +        }
        +    elsif ($tokens->[$$indexRef] eq '(' && !$self->IsBackslashed($$indexRef) && !$inBrackets)
        +        {
        +        $$indexRef++;
        +        $self->GenericRegexpSkipUntilAfter($indexRef, $lineNumberRef, ')');
        +        }
        +    elsif ($tokens->[$$indexRef] eq '[' && !$self->IsBackslashed($$indexRef) && !$self->IsStringed($$indexRef))
        +        {
        +        $$indexRef++;
        +
        +        do
        +            {  $self->GenericRegexpSkipUntilAfter($indexRef, $lineNumberRef, ']');  }
        +        while ($$indexRef < scalar @$tokens && $self->IsStringed($$indexRef - 1));
        +        }
        +
        +    elsif ($tokens->[$$indexRef] eq "\n")
        +        {
        +        $$lineNumberRef++;
        +        $$indexRef++;
        +        }
        +
        +    else
        +        {  $$indexRef++;  };
        +    };
        +
        +
        +#
        +#   Function: GenericRegexpSkipUntilAfter
        +#
        +#   Advances the position via <GenericRegexpSkip()> until a specific token is reached and passed.
        +#
        +sub GenericRegexpSkipUntilAfter #(indexRef, lineNumberRef, token)
        +    {
        +    my ($self, $indexRef, $lineNumberRef, $token) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    my $inBrackets = ( $token eq ']' );
        +
        +    while ($$indexRef < scalar @$tokens && $tokens->[$$indexRef] ne $token)
        +        {  $self->GenericRegexpSkip($indexRef, $lineNumberRef, $inBrackets);  };
        +
        +    if ($tokens->[$$indexRef] eq "\n")
        +        {  $$lineNumberRef++;  };
        +    $$indexRef++;
        +    };
        +
        +
        +#
        +#   Function: SkipRestOfStatement
        +#
        +#   Advances the position via <GenericSkip()> until after the end of the current statement, which is defined as a semicolon or
        +#   a brace group.  Of course, either of those appearing inside parenthesis, a nested brace group, etc. don't count.
        +#
        +sub SkipRestOfStatement #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    while ($$indexRef < scalar @$tokens &&
        +             $tokens->[$$indexRef] ne ';' &&
        +             !($tokens->[$$indexRef] eq '{' && !$self->IsStringed($$indexRef)) )
        +        {
        +        $self->GenericSkip($indexRef, $lineNumberRef);
        +        };
        +
        +    if ($tokens->[$$indexRef] eq ';')
        +        {  $$indexRef++;  }
        +    elsif ($tokens->[$$indexRef] eq '{')
        +        {  $self->GenericSkip($indexRef, $lineNumberRef);  };
        +    };
        +
        +
        +#
        +#   Function: TryToSkipWhitespace
        +#
        +#   If the current position is on whitespace it skips them and returns true.  If there are a number of these in a row, it skips them
        +#   all.
        +#
        +#   Supported Syntax:
        +#
        +#       - Whitespace
        +#       - Line break
        +#       - All comment forms supported by <TryToSkipComment()>
        +#       - Here Doc content
        +#
        +sub TryToSkipWhitespace #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    my $result;
        +
        +    while ($$indexRef < scalar @$tokens)
        +        {
        +        if ($self->TryToSkipHereDocContent($indexRef, $lineNumberRef) ||
        +            $self->TryToSkipComment($indexRef, $lineNumberRef))
        +            {
        +            $result = 1;
        +            }
        +        elsif ($tokens->[$$indexRef] =~ /^[ \t]/)
        +            {
        +            $$indexRef++;
        +            $result = 1;
        +            }
        +        elsif ($tokens->[$$indexRef] eq "\n")
        +            {
        +            $$indexRef++;
        +            $$lineNumberRef++;
        +            $result = 1;
        +            }
        +        else
        +            {  last;  };
        +        };
        +
        +    return $result;
        +    };
        +
        +
        +#
        +#   Function: TryToSkipComment
        +#   If the current position is on a comment, skip past it and return true.
        +#
        +sub TryToSkipComment #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +
        +    return ( $self->TryToSkipLineComment($indexRef, $lineNumberRef) ||
        +                $self->TryToSkipPODComment($indexRef, $lineNumberRef) );
        +    };
        +
        +
        +#
        +#   Function: TryToSkipLineComment
        +#   If the current position is on a line comment symbol, skip past it and return true.
        +#
        +sub TryToSkipLineComment #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    # Note that $#var is not a comment.
        +    if ($tokens->[$$indexRef] eq '#' && !$self->IsStringed($$indexRef))
        +        {
        +        $self->SkipRestOfLine($indexRef, $lineNumberRef);
        +        return 1;
        +        }
        +    else
        +        {  return undef;  };
        +    };
        +
        +
        +#
        +#   Function: TryToSkipPODComment
        +#   If the current position is on a POD comment symbol, skip past it and return true.
        +#
        +sub TryToSkipPODComment #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    # Note that whitespace is not allowed before the equals sign.  It must directly start a line.
        +    if ($tokens->[$$indexRef] eq '=' &&
        +        ( $$indexRef == 0 || $tokens->[$$indexRef - 1] eq "\n" ) &&
        +        $tokens->[$$indexRef + 1] =~ /^[a-z]/i )
        +        {
        +        # Skip until =cut or (NDPODBREAK).  Note that it's theoretically possible for =cut to appear without a prior POD directive.
        +
        +        do
        +            {
        +            if ($tokens->[$$indexRef] eq '=' && lc( $tokens->[$$indexRef + 1] ) eq 'cut')
        +                {
        +                $self->SkipRestOfLine($indexRef, $lineNumberRef);
        +                last;
        +                }
        +            elsif ($tokens->[$$indexRef] eq '(' && $$indexRef + 2 < scalar @$tokens &&
        +                    $tokens->[$$indexRef+1] eq 'NDPODBREAK' && $tokens->[$$indexRef+2] eq ')')
        +                {
        +                $$indexRef += 3;
        +                last;
        +                }
        +            else
        +                {
        +                $self->SkipRestOfLine($indexRef, $lineNumberRef);
        +                };
        +            }
        +        while ($$indexRef < scalar @$tokens);
        +
        +        return 1;
        +        }
        +
        +    # It's also possible that (NDPODBREAK) will appear without any opening pod statement because "=begin nd" and "=cut" will
        +    # still result in one.  We need to pick off the stray (NDPODBREAK).
        +    elsif ($tokens->[$$indexRef] eq '(' && $$indexRef + 2 < scalar @$tokens &&
        +            $tokens->[$$indexRef+1] eq 'NDPODBREAK' && $tokens->[$$indexRef+2] eq ')')
        +        {
        +        $$indexRef += 3;
        +        return 1;
        +        }
        +
        +    else
        +        {  return undef;  };
        +    };
        +
        +
        +#
        +#   Function: TryToSkipString
        +#   If the current position is on a string delimiter, skip past the string and return true.
        +#
        +#   Parameters:
        +#
        +#       indexRef - A reference to the index of the position to start at.
        +#       lineNumberRef - A reference to the line number of the position.
        +#       startContentIndexRef - A reference to the variable in which to store the index of the first content token.  May be undef.
        +#       endContentIndexRef - A reference to the variable in which to store the index of the end of the content, which is one past
        +#                                        the last content token.  may be undef.
        +#
        +#   Returns:
        +#
        +#       Whether the position was at a string.  The index, line number, and content index variabls will only be changed if true.
        +#
        +#   Syntax Support:
        +#
        +#       - Supports quotes, apostrophes, backticks, q(), qq(), qx(), and qw().
        +#       - All symbols are supported for the letter forms.
        +#
        +sub TryToSkipString #(indexRef, lineNumberRef, startContentIndexRef, endContentIndexRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef, $startContentIndexRef, $endContentIndexRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    # The three string delimiters.  All three are Perl variables when preceded by a dollar sign.
        +    if (!$self->IsStringed($$indexRef) &&
        +        ( $self->SUPER::TryToSkipString($indexRef, $lineNumberRef, '\'', '\'', $startContentIndexRef, $endContentIndexRef) ||
        +          $self->SUPER::TryToSkipString($indexRef, $lineNumberRef, '"', '"', $startContentIndexRef, $endContentIndexRef) ||
        +          $self->SUPER::TryToSkipString($indexRef, $lineNumberRef, '`', '`', $startContentIndexRef, $endContentIndexRef) ) )
        +        {
        +        return 1;
        +        }
        +    elsif ($tokens->[$$indexRef] =~ /^(?:q|qq|qx|qw)$/i &&
        +            ($$indexRef == 0 || $tokens->[$$indexRef - 1] !~ /^[\$\%\@\*]$/))
        +        {
        +        $$indexRef++;
        +
        +        $self->TryToSkipWhitespace($indexRef, $lineNumberRef);
        +
        +        my $openingSymbol = $tokens->[$$indexRef];
        +        my $closingSymbol;
        +
        +        if ($openingSymbol eq '{')
        +            {  $closingSymbol = '}';  }
        +        elsif ($openingSymbol eq '(')
        +            {  $closingSymbol = ')';  }
        +        elsif ($openingSymbol eq '[')
        +            {  $closingSymbol = ']';  }
        +        elsif ($openingSymbol eq '<')
        +            {  $closingSymbol = '>';  }
        +        else
        +            {  $closingSymbol = $openingSymbol;  };
        +
        +        $self->SUPER::TryToSkipString($indexRef, $lineNumberRef, $openingSymbol, $closingSymbol,
        +                                                      $startContentIndexRef, $endContentIndexRef);
        +
        +        return 1;
        +        }
        +    else
        +        {  return undef;  };
        +    };
        +
        +
        +#
        +#   Function: TryToSkipHereDocDeclaration
        +#
        +#   If the current position is on a Here Doc declaration, add its terminators to <hereDocTerminators> and skip it.
        +#
        +#   Syntax Support:
        +#
        +#       - Supports <<EOF
        +#       - Supports << "String" with all string forms supported by <TryToSkipString()>.
        +#
        +sub TryToSkipHereDocDeclaration #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    my $index = $$indexRef;
        +    my $lineNumber = $$lineNumberRef;
        +
        +    if ($tokens->[$index] eq '<' && $tokens->[$index + 1] eq '<')
        +        {
        +        $index += 2;
        +        my $success;
        +
        +        # No whitespace allowed with the bare word.
        +        if ($tokens->[$index] =~ /^[a-z0-9_]/i)
        +            {
        +            push @hereDocTerminators, [ $tokens->[$index] ];
        +            $index++;
        +            $success = 1;
        +            }
        +        else
        +            {
        +            $self->TryToSkipWhitespace(\$index, \$lineNumber);
        +
        +            my ($contentStart, $contentEnd);
        +            if ($self->TryToSkipString(\$index, \$lineNumber, \$contentStart, \$contentEnd))
        +                {
        +                push @hereDocTerminators, [ @{$tokens}[$contentStart..$contentEnd - 1] ];
        +                $success = 1;
        +                };
        +            };
        +
        +        if ($success)
        +            {
        +            $$indexRef = $index;
        +            $$lineNumberRef = $lineNumber;
        +
        +            return 1;
        +            };
        +        };
        +
        +    return 0;
        +    };
        +
        +
        +#
        +#   Function: TryToSkipHereDocContent
        +#
        +#   If the current position is at the beginning of a line and there are entries in <hereDocTerminators>, skips lines until all the
        +#   terminators are exhausted or we reach the end of the file.
        +#
        +#   Returns:
        +#
        +#       Whether the position was on Here Doc content.
        +#
        +sub TryToSkipHereDocContent #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    # We don't use IsFirstLineToken() because it really needs to be the first line token.  Whitespace is not allowed.
        +    if ($$indexRef > 0 && $tokens->[$$indexRef - 1] eq "\n")
        +        {
        +        my $success = (scalar @hereDocTerminators > 0);
        +
        +        while (scalar @hereDocTerminators && $$indexRef < scalar @$tokens)
        +            {
        +            my $terminatorIndex = 0;
        +
        +            while ($hereDocTerminators[0]->[$terminatorIndex] eq $tokens->[$$indexRef])
        +                {
        +                $terminatorIndex++;
        +                $$indexRef++;
        +                };
        +
        +            if ($terminatorIndex == scalar @{$hereDocTerminators[0]} &&
        +                ($tokens->[$$indexRef] eq "\n" || ($tokens->[$$indexRef] =~ /^[ \t]/ && $tokens->[$$indexRef + 1] eq "\n")) )
        +                {
        +                shift @hereDocTerminators;
        +                $$indexRef++;
        +                $$lineNumberRef++;
        +                }
        +            else
        +                {  $self->SkipRestOfLine($indexRef, $lineNumberRef);  };
        +            };
        +
        +        return $success;
        +        }
        +
        +    else
        +        {  return 0;  };
        +    };
        +
        +
        +#
        +#   Function: TryToSkipRegexp
        +#   If the current position is on a regular expression or a quote-like operator, skip past it and return true.
        +#
        +#   Syntax Support:
        +#
        +#       - Supports //, ??, m//, qr//, s///, tr///, and y///.
        +#       - All symbols are supported for the letter forms.
        +#       - ?? is *not* supported because it could cause problems with ?: statements.  The generic parser has a good chance of
        +#         successfully stumbling through a regex, whereas the regex code will almost certainly see the rest of the file as part of it.
        +#
        +sub TryToSkipRegexp #(indexRef, lineNumberRef)
        +    {
        +    my ($self, $indexRef, $lineNumberRef) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    my $isRegexp;
        +
        +    # If it's a supported character sequence that's not a variable (ex $qr) or package (ex a::tr)...
        +    if ($tokens->[$$indexRef] =~ /^(?:m|qr|s|tr|y)$/i &&
        +         ($$indexRef == 0 || $tokens->[$$indexRef - 1] !~ /^[\$\%\@\*\-\>\:]$/) )
        +        {  $isRegexp = 1;  }
        +
        +    elsif ($tokens->[$$indexRef] eq '/' && !$self->IsStringed($$indexRef))
        +        {
        +        # This is a bit of a hack.  If we find a random slash, it could be a divide operator or a bare regexp.  Find the first previous
        +        # non-whitespace token and if it's text, a closing brace, or a string, assume it's a divide operator.  (Strings don't make
        +        # much pratical sense there but a regexp would be impossible.)  Otherwise assume it's a regexp.
        +
        +        # We make a special consideration for split() appearing without parenthesis.  If the previous token is split and it's not a
        +        # variable, assume it is a regexp even though it fails the above test.
        +
        +        my $index = $$indexRef - 1;
        +
        +        while ($index >= 0 && $tokens->[$index] =~ /^(?: |\t|\n)/)
        +            {  $index--;  };
        +
        +        if ($index < 0 || $tokens->[$index] !~ /^[a-zA-Z0-9_\)\]\}\'\"\`]/ ||
        +            ($tokens->[$index] =~ /^split|grep$/ && $index > 0 && $tokens->[$index-1] !~ /^[\$\%\@\*]$/) )
        +            {  $isRegexp = 1;  };
        +        };
        +
        +    if ($isRegexp)
        +        {
        +        my $operator = lc($tokens->[$$indexRef]);
        +        my $index = $$indexRef;
        +        my $lineNumber = $$lineNumberRef;
        +
        +        if ($operator =~ /^[\?\/]/)
        +            {  $operator = 'm';  }
        +        else
        +            {
        +            $index++;
        +
        +            # Believe it or not, s#...# is allowed.  We can't pass over number signs here.
        +            if ($tokens->[$index] ne '#')
        +                {  $self->TryToSkipWhitespace(\$index, \$lineNumber);  };
        +            };
        +
        +        if ($tokens->[$index] =~ /^\w/)
        +            {  return undef;  };
        +        if ($tokens->[$index] eq '=' && $tokens->[$index+1] eq '>')
        +        	{  return undef;  };
        +
        +        my $openingSymbol = $tokens->[$index];
        +        my $closingSymbol;
        +
        +        if ($openingSymbol eq '{')
        +            {  $closingSymbol = '}';  }
        +        elsif ($openingSymbol eq '(')
        +            {  $closingSymbol = ')';  }
        +        elsif ($openingSymbol eq '[')
        +            {  $closingSymbol = ']';  }
        +        elsif ($openingSymbol eq '<')
        +            {  $closingSymbol = '>';  }
        +        else
        +            {  $closingSymbol = $openingSymbol;  };
        +
        +        $index++;
        +
        +        $self->GenericRegexpSkipUntilAfter(\$index, \$lineNumber, $closingSymbol);
        +
        +        $$indexRef = $index;
        +        $$lineNumberRef = $lineNumber;
        +
        +        if ($operator =~ /^(?:s|tr|y)$/)
        +            {
        +            if ($openingSymbol ne $closingSymbol)
        +                {
        +                $self->TryToSkipWhitespace($indexRef, $lineNumberRef);
        +
        +                $openingSymbol = $tokens->[$index];
        +
        +                if ($openingSymbol eq '{')
        +                    {  $closingSymbol = '}';  }
        +                elsif ($openingSymbol eq '(')
        +                    {  $closingSymbol = ')';  }
        +                elsif ($openingSymbol eq '[')
        +                    {  $closingSymbol = ']';  }
        +                elsif ($openingSymbol eq '<')
        +                    {  $closingSymbol = '>';  }
        +                else
        +                    {  $closingSymbol = $openingSymbol;  };
        +
        +                $$indexRef++;
        +                };
        +
        +            if ($operator eq 's')
        +                {
        +                $self->GenericSkipUntilAfter($indexRef, $lineNumberRef, $closingSymbol, 1);
        +                }
        +            else # ($operator eq 'tr' || $operator eq 'y')
        +                {
        +                while ($$indexRef < scalar @$tokens &&
        +                          ($tokens->[$$indexRef] ne $closingSymbol || $self->IsBackslashed($$indexRef)) )
        +                    {
        +                    if ($tokens->[$$indexRef] eq "\n")
        +                        {  $$lineNumberRef++;  };
        +                    $$indexRef++;
        +                    };
        +
        +                $$indexRef++;
        +                };
        +            };
        +
        +        # We want to skip any letters after the regexp.  Otherwise something like tr/a/b/s; could have the trailing s; interpreted
        +        # as another regexp.  Whitespace is not allowed between the closing symbol and the letters.
        +
        +        if ($tokens->[$$indexRef] =~ /^[a-z]/i)
        +            {  $$indexRef++;  };
        +
        +        return 1;
        +        };
        +
        +    return undef;
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Support Functions
        +
        +
        +#
        +#   Function: IsStringed
        +#
        +#   Returns whether the position is after a string (dollar sign) character.  Returns false if it's preceded by two dollar signs so
        +#   "if ($x == $$)" doesn't skip the closing parenthesis as stringed.
        +#
        +#   Parameters:
        +#
        +#       index - The index of the postition.
        +#
        +sub IsStringed #(index)
        +    {
        +    my ($self, $index) = @_;
        +    my $tokens = $self->Tokens();
        +
        +    if ($index > 0 && $tokens->[$index - 1] eq '$' && !($index > 1 && $tokens->[$index - 2] eq '$'))
        +        {  return 1;  }
        +    else
        +        {  return undef;  };
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/Prototype.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/Prototype.pm
        new file mode 100755
        index 0000000..b4d5fc8
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/Prototype.pm
        @@ -0,0 +1,93 @@
        +###############################################################################
        +#
        +#   Class: NaturalDocs::Languages::Prototype
        +#
        +###############################################################################
        +#
        +#   A data class for storing parsed prototypes.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +use NaturalDocs::Languages::Prototype::Parameter;
        +
        +
        +package NaturalDocs::Languages::Prototype;
        +
        +use NaturalDocs::DefineMembers 'BEFORE_PARAMETERS', 'BeforeParameters()', 'SetBeforeParameters()',
        +                                                 'AFTER_PARAMETERS', 'AfterParameters()', 'SetAfterParameters()',
        +                                                 'PARAMETERS', 'Parameters()';
        +# Dependency: New(), constant order, no parents.
        +
        +
        +#
        +#   Function: New
        +#
        +#   Creates and returns a new prototype object.
        +#
        +#   Parameters:
        +#
        +#       beforeParameters - The part of the prototype before the parameter list.
        +#       afterParameters - The part of the prototype after the parameter list.
        +#
        +#   You cannot set the parameters from here.  Use <AddParameter()>.
        +#
        +sub New #(beforeParameters, afterParameters)
        +    {
        +    my ($package, @params) = @_;
        +
        +    # Dependency: Constant order, no parents.
        +
        +    my $object = [ @params ];
        +    bless $object, $package;
        +
        +    return $object;
        +    };
        +
        +
        +#
        +#   Functions: Members
        +#
        +#   BeforeParameters - Returns the part of the prototype before the parameter list.  If there is no parameter list, this will be the
        +#                                only thing that returns content.
        +#   SetBeforeParameters - Replaces the part of the prototype before the parameter list.
        +#   AfterParameters - Returns the part of the prototype after the parameter list, if any.
        +#   SetAfterParameters - Replaces the part of the prototype after the parameter list.
        +#   Parameters - Returns the parameter list as an arrayref of <NaturalDocs::Languages::Prototype::Parameters>, or undef if none.
        +#
        +
        +#
        +#   Function: AddParameter
        +#
        +#   Adds a <NaturalDocs::Languages::Prototype::Parameter> to the list.
        +#
        +sub AddParameter #(parameter)
        +    {
        +    my ($self, $parameter) = @_;
        +
        +    if (!defined $self->[PARAMETERS])
        +        {  $self->[PARAMETERS] = [ ];  };
        +
        +    push @{$self->[PARAMETERS]}, $parameter;
        +    };
        +
        +
        +#
        +#   Function: OnlyBeforeParameters
        +#
        +#   Returns whether <BeforeParameters()> is the only thing set.
        +#
        +sub OnlyBeforeParameters
        +    {
        +    my $self = shift;
        +    return (!defined $self->[PARAMETERS] && !defined $self->[AFTER_PARAMETERS]);
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/Prototype/Parameter.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/Prototype/Parameter.pm
        new file mode 100755
        index 0000000..41b5bce
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/Prototype/Parameter.pm
        @@ -0,0 +1,88 @@
        +###############################################################################
        +#
        +#   Class: NaturalDocs::Languages::Prototype::Parameter
        +#
        +###############################################################################
        +#
        +#   A data class for storing parsed prototype parameters.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::Languages::Prototype::Parameter;
        +
        +use NaturalDocs::DefineMembers 'TYPE', 'Type()', 'SetType()',
        +                                                 'TYPE_PREFIX', 'TypePrefix()', 'SetTypePrefix()',
        +                                                 'NAME', 'Name()', 'SetName()',
        +                                                 'NAME_PREFIX', 'NamePrefix()', 'SetNamePrefix()',
        +                                                 'DEFAULT_VALUE', 'DefaultValue()', 'SetDefaultValue()',
        +                                                 'DEFAULT_VALUE_PREFIX', 'DefaultValuePrefix()', 'SetDefaultValuePrefix()';
        +# Dependency: New() depends on the order of these constants and that they don't inherit from another class.
        +
        +
        +#
        +#   Constants: Members
        +#
        +#   The object is implemented as a blessed arrayref, with the following constants as its indexes.
        +#
        +#       TYPE - The parameter type, if any.
        +#       TYPE_PREFIX - The parameter type prefix which should be aligned separately, if any.
        +#       NAME - The parameter name.
        +#       NAME_PREFIX - The parameter name prefix which should be aligned separately, if any.
        +#       DEFAULT_VALUE - The default value expression, if any.
        +#       DEFAULT_VALUE_PREFIX - The default value prefix which should be aligned separately, if any.
        +#
        +
        +#
        +#   Function: New
        +#
        +#   Creates and returns a new prototype object.
        +#
        +#   Parameters:
        +#
        +#       type - The parameter type, if any.
        +#       typePrefix - The parameter type prefix which should be aligned separately, if any.
        +#       name - The parameter name.
        +#       namePrefix - The parameter name prefix which should be aligned separately, if any.
        +#       defaultValue - The default value expression, if any.
        +#       defaultValuePrefix - The default value prefix which should be aligned separately, if any.
        +#
        +sub New #(type, typePrefix, name, namePrefix, defaultValue, defaultValuePrefix)
        +    {
        +    my ($package, @params) = @_;
        +
        +    # Dependency: This depends on the order of the parameters being the same as the order of the constants, and that the
        +    # constants don't inherit from another class.
        +
        +    my $object = [ @params ];
        +    bless $object, $package;
        +
        +    return $object;
        +    };
        +
        +
        +#
        +#   Functions: Members
        +#
        +#   Type - The parameter type, if any.
        +#   SetType - Replaces the parameter type.
        +#   TypePrefix - The parameter type prefix, which should be aligned separately, if any.
        +#   SetTypePrefix - Replaces the parameter type prefix.
        +#   Name - The parameter name.
        +#   SetName - Replaces the parameter name.
        +#   NamePrefix - The parameter name prefix, which should be aligned separately, if any.
        +#   SetNamePrefix - Replaces the parameter name prefix.
        +#   DefaultValue - The default value expression, if any.
        +#   SetDefaultValue - Replaces the default value expression.
        +#   DefaultValuePrefix - The default value prefix, which should be aligned separately, if any.
        +#   SetDefaultValuePrefix - Replaces the default value prefix.
        +#
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/Simple.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/Simple.pm
        new file mode 100755
        index 0000000..6dfacd8
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/Simple.pm
        @@ -0,0 +1,487 @@
        +###############################################################################
        +#
        +#   Class: NaturalDocs::Languages::Simple
        +#
        +###############################################################################
        +#
        +#   A class containing the characteristics of a particular programming language for basic support within Natural Docs.
        +#   Also serves as a base class for languages that break from general conventions, such as not having parameter lists use
        +#   parenthesis and commas.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::Languages::Simple;
        +
        +use base 'NaturalDocs::Languages::Base';
        +use base 'Exporter';
        +
        +our @EXPORT = ( 'ENDER_ACCEPT', 'ENDER_IGNORE', 'ENDER_ACCEPT_AND_CONTINUE', 'ENDER_REVERT_TO_ACCEPTED' );
        +
        +
        +use NaturalDocs::DefineMembers 'LINE_COMMENT_SYMBOLS', 'LineCommentSymbols()', 'SetLineCommentSymbols() duparrayref',
        +                                                 'BLOCK_COMMENT_SYMBOLS', 'BlockCommentSymbols()',
        +                                                                                              'SetBlockCommentSymbols() duparrayref',
        +                                                 'PROTOTYPE_ENDERS',
        +                                                 'LINE_EXTENDER', 'LineExtender()', 'SetLineExtender()',
        +                                                 'PACKAGE_SEPARATOR', 'PackageSeparator()',
        +                                                 'PACKAGE_SEPARATOR_WAS_SET', 'PackageSeparatorWasSet()',
        +                                                 'ENUM_VALUES', 'EnumValues()',
        +                                                 'ENUM_VALUES_WAS_SET', 'EnumValuesWasSet()';
        +
        +#
        +#   Function: New
        +#
        +#   Creates and returns a new object.
        +#
        +#   Parameters:
        +#
        +#       name - The name of the language.
        +#
        +sub New #(name)
        +    {
        +    my ($selfPackage, $name) = @_;
        +
        +    my $object = $selfPackage->SUPER::New($name);
        +
        +    $object->[ENUM_VALUES] = ::ENUM_GLOBAL();
        +    $object->[PACKAGE_SEPARATOR] = '.';
        +
        +    return $object;
        +    };
        +
        +
        +#
        +#   Functions: Members
        +#
        +#   LineCommentSymbols - Returns an arrayref of symbols that start a line comment, or undef if none.
        +#   SetLineCommentSymbols - Replaces the arrayref of symbols that start a line comment.
        +#   BlockCommentSymbols - Returns an arrayref of start/end symbol pairs that specify a block comment, or undef if none.  Pairs
        +#                                        are specified with two consecutive array entries.
        +#   SetBlockCommentSymbols - Replaces the arrayref of start/end symbol pairs that specify a block comment.  Pairs are
        +#                                             specified with two consecutive array entries.
        +#   LineExtender - Returns the symbol to ignore a line break in languages where line breaks are significant.
        +#   SetLineExtender - Replaces the symbol to ignore a line break in languages where line breaks are significant.
        +#   PackageSeparator - Returns the package separator symbol.
        +#   PackageSeparatorWasSet - Returns whether the package separator symbol was ever changed from the default.
        +#
        +
        +#
        +#   Function: SetPackageSeparator
        +#   Replaces the language's package separator string.
        +#
        +sub SetPackageSeparator #(separator)
        +    {
        +    my ($self, $separator) = @_;
        +    $self->[PACKAGE_SEPARATOR] = $separator;
        +    $self->[PACKAGE_SEPARATOR_WAS_SET] = 1;
        +    };
        +
        +
        +#
        +#   Functions: Members
        +#
        +#   EnumValues - Returns the <EnumValuesType> that describes how the language handles enums.
        +#   EnumValuesWasSet - Returns whether <EnumValues> was ever changed from the default.
        +
        +
        +#
        +#   Function: SetEnumValues
        +#   Replaces the <EnumValuesType> that describes how the language handles enums.
        +#
        +sub SetEnumValues #(EnumValuesType newBehavior)
        +    {
        +    my ($self, $behavior) = @_;
        +    $self->[ENUM_VALUES] = $behavior;
        +    $self->[ENUM_VALUES_WAS_SET] = 1;
        +    };
        +
        +
        +#
        +#   Function: PrototypeEndersFor
        +#
        +#   Returns an arrayref of prototype ender symbols for the passed <TopicType>, or undef if none.
        +#
        +sub PrototypeEndersFor #(type)
        +    {
        +    my ($self, $type) = @_;
        +
        +    if (defined $self->[PROTOTYPE_ENDERS])
        +        {  return $self->[PROTOTYPE_ENDERS]->{$type};  }
        +    else
        +        {  return undef;  };
        +    };
        +
        +
        +#
        +#   Function: SetPrototypeEndersFor
        +#
        +#   Replaces the arrayref of prototype ender symbols for the passed <TopicType>.
        +#
        +sub SetPrototypeEndersFor #(type, enders)
        +    {
        +    my ($self, $type, $enders) = @_;
        +
        +    if (!defined $self->[PROTOTYPE_ENDERS])
        +        {  $self->[PROTOTYPE_ENDERS] = { };  };
        +
        +    if (!defined $enders)
        +        {  delete $self->[PROTOTYPE_ENDERS]->{$type};  }
        +    else
        +        {
        +        $self->[PROTOTYPE_ENDERS]->{$type} = [ @$enders ];
        +        };
        +    };
        +
        +
        +
        +
        +###############################################################################
        +# Group: Parsing Functions
        +
        +
        +#
        +#   Function: ParseFile
        +#
        +#   Parses the passed source file, sending comments acceptable for documentation to <NaturalDocs::Parser->OnComment()>
        +#   and all other sections to <OnCode()>.
        +#
        +#   Parameters:
        +#
        +#       sourceFile - The <FileName> of the source file to parse.
        +#       topicList - A reference to the list of <NaturalDocs::Parser::ParsedTopics> being built by the file.
        +#
        +#   Returns:
        +#
        +#       Since this class cannot automatically document the code or generate a scope record, it always returns ( undef, undef ).
        +#
        +sub ParseFile #(sourceFile, topicsList)
        +    {
        +    my ($self, $sourceFile, $topicsList) = @_;
        +
        +    open(SOURCEFILEHANDLE, '<' . $sourceFile)
        +        or die "Couldn't open input file " . $sourceFile . "\n";
        +
        +    my $lineReader = NaturalDocs::LineReader->New(\*SOURCEFILEHANDLE);
        +
        +    my @commentLines;
        +    my @codeLines;
        +    my $lastCommentTopicCount = 0;
        +
        +    if ($self->Name() eq 'Text File')
        +        {
        +        @commentLines = $lineReader->GetAll();
        +        NaturalDocs::Parser->OnComment(\@commentLines, 1);
        +        }
        +
        +    else
        +        {
        +        my $line = $lineReader->Get();
        +        my $lineNumber = 1;
        +
        +        while (defined $line)
        +            {
        +            my $originalLine = $line;
        +
        +
        +            # Retrieve multiline comments.  This leaves $line at the next line.
        +            # We check for multiline comments before single line comments because in Lua the symbols are --[[ and --.
        +
        +            if (my $closingSymbol = $self->StripOpeningBlockSymbols(\$line, $self->BlockCommentSymbols()))
        +                {
        +                # Note that it is possible for a multiline comment to start correctly but not end so.  We want those comments to stay in
        +                # the code.  For example, look at this prototype with this splint annotation:
        +                #
        +                # int get_array(integer_t id,
        +                #                    /*@out@*/ array_t array);
        +                #
        +                # The annotation starts correctly but doesn't end so because it is followed by code on the same line.
        +
        +                my $lineRemainder;
        +
        +                for (;;)
        +                    {
        +                    $lineRemainder = $self->StripClosingSymbol(\$line, $closingSymbol);
        +
        +                    push @commentLines, $line;
        +
        +                    #  If we found an end comment symbol...
        +                    if (defined $lineRemainder)
        +                        {  last;  };
        +
        +                    $line = $lineReader->Get();
        +
        +                    if (!defined $line)
        +                        {  last;  };
        +                    };
        +
        +                if ($lineRemainder !~ /^[ \t]*$/)
        +                    {
        +                    # If there was something past the closing symbol this wasn't an acceptable comment, so move the lines to code.
        +                    push @codeLines, @commentLines;
        +                    @commentLines = ( );
        +                    };
        +
        +                $line = $lineReader->Get();
        +                }
        +
        +
        +            # Retrieve single line comments.  This leaves $line at the next line.
        +
        +            elsif ($self->StripOpeningSymbols(\$line, $self->LineCommentSymbols()))
        +                {
        +                do
        +                    {
        +                    push @commentLines, $line;
        +                    $line = $lineReader->Get();
        +
        +                    if (!defined $line)
        +                        {  goto EndDo;  };
        +                    }
        +                while ($self->StripOpeningSymbols(\$line, $self->LineCommentSymbols()));
        +
        +                EndDo:  # I hate Perl sometimes.
        +                }
        +
        +
        +            # Otherwise just add it to the code.
        +
        +            else
        +                {
        +                push @codeLines, $line;
        +                $line = $lineReader->Get();
        +                };
        +
        +
        +            # If there were comments, send them to Parser->OnComment().
        +
        +            if (scalar @commentLines)
        +                {
        +                # First process any code lines before the comment.
        +                if (scalar @codeLines)
        +                    {
        +                    $self->OnCode(\@codeLines, $lineNumber, $topicsList, $lastCommentTopicCount);
        +                    $lineNumber += scalar @codeLines;
        +                    @codeLines = ( );
        +                    };
        +
        +                $lastCommentTopicCount = NaturalDocs::Parser->OnComment(\@commentLines, $lineNumber);
        +                $lineNumber += scalar @commentLines;
        +                @commentLines = ( );
        +                };
        +
        +            };  # while (defined $line)
        +
        +
        +        # Clean up any remaining code.
        +        if (scalar @codeLines)
        +            {
        +            $self->OnCode(\@codeLines, $lineNumber, $topicsList, $lastCommentTopicCount);
        +            @codeLines = ( );
        +            };
        +
        +        };
        +
        +    close(SOURCEFILEHANDLE);
        +
        +    return ( undef, undef );
        +    };
        +
        +
        +#
        +#   Function: OnCode
        +#
        +#   Called whenever a section of code is encountered by the parser.  Is used to find the prototype of the last topic created.
        +#
        +#   Parameters:
        +#
        +#       codeLines - The source code as an arrayref of lines.
        +#       codeLineNumber - The line number of the first line of code.
        +#       topicList - A reference to the list of <NaturalDocs::Parser::ParsedTopics> being built by the file.
        +#       lastCommentTopicCount - The number of Natural Docs topics that were created by the last comment.
        +#
        +sub OnCode #(codeLines, codeLineNumber, topicList, lastCommentTopicCount)
        +    {
        +    my ($self, $codeLines, $codeLineNumber, $topicList, $lastCommentTopicCount) = @_;
        +
        +    if ($lastCommentTopicCount && defined $self->PrototypeEndersFor($topicList->[-1]->Type()))
        +        {
        +        my $lineIndex = 0;
        +        my $prototype;
        +
        +        # Skip all blank lines before a prototype.
        +        while ($lineIndex < scalar @$codeLines && $codeLines->[$lineIndex] =~ /^[ \t]*$/)
        +            {  $lineIndex++;  };
        +
        +        my @tokens;
        +        my $tokenIndex = 0;
        +
        +        my @brackets;
        +        my $enders = $self->PrototypeEndersFor($topicList->[-1]->Type());
        +
        +        # Add prototype lines until we reach the end of the prototype or the end of the code lines.
        +        while ($lineIndex < scalar @$codeLines)
        +            {
        +            my $line = $self->RemoveLineExtender($codeLines->[$lineIndex] . "\n");
        +
        +            push @tokens, $line =~ /([^\(\)\[\]\{\}\<\>]+|.)/g;
        +
        +            while ($tokenIndex < scalar @tokens)
        +                {
        +                # If we're not inside brackets, check for ender symbols.
        +                if (!scalar @brackets)
        +                    {
        +                    my $startingIndex = 0;
        +                    my $testPrototype;
        +
        +                    for (;;)
        +                        {
        +                        my ($enderIndex, $ender) = ::FindFirstSymbol($tokens[$tokenIndex], $enders, $startingIndex);
        +
        +                        if ($enderIndex == -1)
        +                            {  last;  }
        +                        else
        +                            {
        +                            # We do this here so we don't duplicate prototype for every single token.  Just the first time an ender symbol
        +                            # is found in one.
        +                            if (!defined $testPrototype)
        +                                {  $testPrototype = $prototype;  };
        +
        +                            $testPrototype .= substr($tokens[$tokenIndex], $startingIndex, $enderIndex - $startingIndex);
        +
        +                            my $enderResult;
        +
        +                            # If the ender is all text and the character preceding or following it is as well, ignore it.
        +                            if ($ender =~ /^[a-z0-9]+$/i &&
        +                                ( ($enderIndex > 0 && substr($tokens[$tokenIndex], $enderIndex - 1, 1) =~ /^[a-z0-9_]$/i) ||
        +                                   substr($tokens[$tokenIndex], $enderIndex + length($ender), 1) =~ /^[a-z0-9_]$/i ) )
        +                                {  $enderResult = ENDER_IGNORE();  }
        +                            else
        +                                {  $enderResult = $self->OnPrototypeEnd($topicList->[-1]->Type(), \$testPrototype, $ender);  }
        +
        +                            if ($enderResult == ENDER_IGNORE())
        +                                {
        +                                $testPrototype .= $ender;
        +                                $startingIndex = $enderIndex + length($ender);
        +                                }
        +                            elsif ($enderResult == ENDER_REVERT_TO_ACCEPTED())
        +                                {
        +                                return;
        +                                }
        +                            else # ENDER_ACCEPT || ENDER_ACCEPT_AND_CONTINUE
        +                                {
        +                                my $titleInPrototype = $topicList->[-1]->Title();
        +
        +                                # Strip parenthesis so Function(2) and Function(int, int) will still match Function(anything).
        +                                $titleInPrototype =~ s/[\t ]*\([^\(]*$//;
        +
        +                                if (index($testPrototype, $titleInPrototype) != -1)
        +                                    {
        +                                    $topicList->[-1]->SetPrototype( $self->NormalizePrototype($testPrototype) );
        +                                    };
        +
        +                                if ($enderResult == ENDER_ACCEPT())
        +                                    {  return;  }
        +                                else # ENDER_ACCEPT_AND_CONTINUE
        +                                    {
        +                                    $testPrototype .= $ender;
        +                                    $startingIndex = $enderIndex + length($ender);
        +                                    };
        +                                };
        +                            };
        +                        };
        +                    }
        +
        +                # If we are inside brackets, check for closing symbols.
        +                elsif ( ($tokens[$tokenIndex] eq ')' && $brackets[-1] eq '(') ||
        +                         ($tokens[$tokenIndex] eq ']' && $brackets[-1] eq '[') ||
        +                         ($tokens[$tokenIndex] eq '}' && $brackets[-1] eq '{') ||
        +                         ($tokens[$tokenIndex] eq '>' && $brackets[-1] eq '<') )
        +                    {
        +                    pop @brackets;
        +                    };
        +
        +                # Check for opening brackets.
        +				if ($tokens[$tokenIndex] =~ /^[\(\[\{]$/ ||
        +				    ($tokens[$tokenIndex] eq "<" && $tokens[$tokenIndex-1] !~ /operator[ \t]*$/) )
        +	                {
        +                    push @brackets, $tokens[$tokenIndex];
        +                    };
        +
        +                $prototype .= $tokens[$tokenIndex];
        +                $tokenIndex++;
        +                };
        +
        +            $lineIndex++;
        +            };
        +
        +        # If we got out of that while loop by running out of lines, there was no prototype.
        +        };
        +    };
        +
        +
        +use constant ENDER_ACCEPT => 1;
        +use constant ENDER_IGNORE => 2;
        +use constant ENDER_ACCEPT_AND_CONTINUE => 3;
        +use constant ENDER_REVERT_TO_ACCEPTED => 4;
        +
        +#
        +#   Function: OnPrototypeEnd
        +#
        +#   Called whenever the end of a prototype is found so that there's a chance for derived classes to mark false positives.
        +#
        +#   Parameters:
        +#
        +#       type - The <TopicType> of the prototype.
        +#       prototypeRef - A reference to the prototype so far, minus the ender in dispute.
        +#       ender - The ender symbol.
        +#
        +#   Returns:
        +#
        +#       ENDER_ACCEPT - The ender is accepted and the prototype is finished.
        +#       ENDER_IGNORE - The ender is rejected and parsing should continue.  Note that the prototype will be rejected as a whole
        +#                                  if all enders are ignored before reaching the end of the code.
        +#       ENDER_ACCEPT_AND_CONTINUE - The ender is accepted so the prototype may stand as is.  However, the prototype might
        +#                                                          also continue on so continue parsing.  If there is no accepted ender between here and
        +#                                                          the end of the code this version will be accepted instead.
        +#       ENDER_REVERT_TO_ACCEPTED - The expedition from ENDER_ACCEPT_AND_CONTINUE failed.  Use the last accepted
        +#                                                        version and end parsing.
        +#
        +sub OnPrototypeEnd #(type, prototypeRef, ender)
        +    {
        +    return ENDER_ACCEPT();
        +    };
        +
        +
        +#
        +#   Function: RemoveLineExtender
        +#
        +#   If the passed line has a line extender, returns it without the extender or the line break that follows.  If it doesn't, or there are
        +#   no line extenders defined, returns the passed line unchanged.
        +#
        +sub RemoveLineExtender #(line)
        +    {
        +    my ($self, $line) = @_;
        +
        +    if (defined $self->LineExtender())
        +        {
        +        my $lineExtenderIndex = rindex($line, $self->LineExtender());
        +
        +        if ($lineExtenderIndex != -1 &&
        +            substr($line, $lineExtenderIndex + length($self->LineExtender())) =~ /^[ \t]*\n$/)
        +            {
        +            $line = substr($line, 0, $lineExtenderIndex) . ' ';
        +            };
        +        };
        +
        +    return $line;
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/Tcl.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/Tcl.pm
        new file mode 100755
        index 0000000..fde2a19
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Languages/Tcl.pm
        @@ -0,0 +1,220 @@
        +###############################################################################
        +#
        +#   Class: NaturalDocs::Languages::Tcl
        +#
        +###############################################################################
        +#
        +#   A subclass to handle the language variations of Tcl.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::Languages::Tcl;
        +
        +use base 'NaturalDocs::Languages::Simple';
        +
        +
        +#
        +#   bool: pastFirstBrace
        +#
        +#   Whether we've past the first brace in a function prototype or not.
        +#
        +my $pastFirstBrace;
        +
        +
        +#
        +#   Function: OnCode
        +#
        +#   This is just overridden to reset <pastFirstBrace>.
        +#
        +sub OnCode #(...)
        +    {
        +    my ($self, @params) = @_;
        +
        +    $pastFirstBrace = 0;
        +
        +    return $self->SUPER::OnCode(@params);
        +    };
        +
        +
        +#
        +#   Function: OnPrototypeEnd
        +#
        +#   Tcl's function syntax is shown below.
        +#
        +#   > proc [name] { [params] } { [code] }
        +#
        +#   The opening brace is one of the prototype enders.  We need to allow the first opening brace because it contains the
        +#   parameters.
        +#
        +#   Also, the parameters may have braces within them.  I've seen one that used { seconds 20 } as a parameter.
        +#
        +#   Parameters:
        +#
        +#       type - The <TopicType> of the prototype.
        +#       prototypeRef - A reference to the prototype so far, minus the ender in dispute.
        +#       ender - The ender symbol.
        +#
        +#   Returns:
        +#
        +#       ENDER_ACCEPT - The ender is accepted and the prototype is finished.
        +#       ENDER_IGNORE - The ender is rejected and parsing should continue.  Note that the prototype will be rejected as a whole
        +#                                  if all enders are ignored before reaching the end of the code.
        +#       ENDER_ACCEPT_AND_CONTINUE - The ender is accepted so the prototype may stand as is.  However, the prototype might
        +#                                                          also continue on so continue parsing.  If there is no accepted ender between here and
        +#                                                          the end of the code this version will be accepted instead.
        +#       ENDER_REVERT_TO_ACCEPTED - The expedition from ENDER_ACCEPT_AND_CONTINUE failed.  Use the last accepted
        +#                                                        version and end parsing.
        +#
        +sub OnPrototypeEnd #(type, prototypeRef, ender)
        +    {
        +    my ($self, $type, $prototypeRef, $ender) = @_;
        +
        +    if ($type eq ::TOPIC_FUNCTION() && $ender eq '{' && !$pastFirstBrace)
        +        {
        +        $pastFirstBrace = 1;
        +        return ::ENDER_IGNORE();
        +        }
        +    else
        +        {  return ::ENDER_ACCEPT();  };
        +    };
        +
        +
        +#
        +#   Function: ParsePrototype
        +#
        +#   Parses the prototype and returns it as a <NaturalDocs::Languages::Prototype> object.
        +#
        +#   Parameters:
        +#
        +#       type - The <TopicType>.
        +#       prototype - The text prototype.
        +#
        +#   Returns:
        +#
        +#       A <NaturalDocs::Languages::Prototype> object.
        +#
        +sub ParsePrototype #(type, prototype)
        +    {
        +    my ($self, $type, $prototype) = @_;
        +
        +    if ($type ne ::TOPIC_FUNCTION())
        +        {
        +        my $object = NaturalDocs::Languages::Prototype->New($prototype);
        +        return $object;
        +        };
        +
        +
        +    # Parse the parameters out of the prototype.
        +
        +    my @tokens = $prototype =~ /([^\{\}\ ]+|.)/g;
        +
        +    my $parameter;
        +    my @parameterLines;
        +
        +    my $braceLevel = 0;
        +
        +    my ($beforeParameters, $afterParameters, $finishedParameters);
        +
        +    foreach my $token (@tokens)
        +        {
        +        if ($finishedParameters)
        +            {  $afterParameters .= $token;  }
        +
        +        elsif ($token eq '{')
        +            {
        +            if ($braceLevel == 0)
        +                {  $beforeParameters .= $token;  }
        +
        +            else # braceLevel > 0
        +                {  $parameter .= $token;   };
        +
        +            $braceLevel++;
        +            }
        +
        +        elsif ($token eq '}')
        +            {
        +            if ($braceLevel == 1)
        +                {
        +                if ($parameter && $parameter ne ' ')
        +                    {  push @parameterLines, $parameter;  };
        +
        +                $finishedParameters = 1;
        +                $afterParameters .= $token;
        +
        +                $braceLevel--;
        +                }
        +            elsif ($braceLevel > 1)
        +                {
        +                $parameter .= $token;
        +                $braceLevel--;
        +                };
        +            }
        +
        +        elsif ($token eq ' ')
        +            {
        +            if ($braceLevel == 1)
        +                {
        +                if ($parameter)
        +                    {  push @parameterLines, $parameter;  };
        +
        +                $parameter = undef;
        +                }
        +            elsif ($braceLevel > 1)
        +                {
        +                $parameter .= $token;
        +                }
        +            else
        +                {
        +                $beforeParameters .= $token;
        +                };
        +            }
        +
        +        else
        +            {
        +            if ($braceLevel > 0)
        +                {  $parameter .= $token;  }
        +            else
        +                {  $beforeParameters .= $token;  };
        +            };
        +        };
        +
        +    foreach my $part (\$beforeParameters, \$afterParameters)
        +        {
        +        $$part =~ s/^ //;
        +        $$part =~ s/ $//;
        +        };
        +
        +    my $prototypeObject = NaturalDocs::Languages::Prototype->New($beforeParameters, $afterParameters);
        +
        +
        +    # Parse the actual parameters.
        +
        +    foreach my $parameterLine (@parameterLines)
        +        {
        +        $prototypeObject->AddParameter( $self->ParseParameterLine($parameterLine) );
        +        };
        +
        +    return $prototypeObject;
        +    };
        +
        +
        +#
        +#   Function: ParseParameterLine
        +#
        +#   Parses a prototype parameter line and returns it as a <NaturalDocs::Languages::Prototype::Parameter> object.
        +#
        +sub ParseParameterLine #(line)
        +    {
        +    my ($self, $line) = @_;
        +    return NaturalDocs::Languages::Prototype::Parameter->New(undef, undef, $line, undef, undef, undef);
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/LineReader.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/LineReader.pm
        new file mode 100755
        index 0000000..d1d38d7
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/LineReader.pm
        @@ -0,0 +1,192 @@
        +###############################################################################
        +#
        +#   Class: NaturalDocs::LineReader
        +#
        +###############################################################################
        +#
        +#   An object to handle reading text files line by line in a cross platform manner.  Using this class instead of the standard
        +#	angle brackets approach has the following benefits:
        +#
        +#	- It strips all three types of line breaks automatically: CR/LF (Windows) LF (Unix) and CR (Classic Mac).  You do not need to
        +#	  call chomp().  Perl's chomp() fails when parsing Windows-format line breaks on a Unix platform anyway.  It leaves the /r on,
        +#	  which screws everything up.
        +#	- It reads Classic Mac files line by line correctly, whereas the Perl version returns it all as one line.
        +#	- It abstracts away ignoring the Unicode BOM on the first line, if present.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +use Encode;
        +
        +
        +package NaturalDocs::LineReader;
        +
        +#
        +#	Constants: Members
        +#
        +#	LINEREADER_FILEHANDLE - The file handle being used to read the file.  Has the LINEREADER_ prefix to make sure it doesn't
        +#											 conflict with any actual filehandles named FILEHANDLE in the program.
        +#	CACHED_LINES - An arrayref of lines already read into memory.
        +#
        +use NaturalDocs::DefineMembers 'LINEREADER_FILEHANDLE',
        +                                                 'CACHED_LINES';
        +
        +#
        +#   Function: New
        +#
        +#   Creates and returns a new object.
        +#
        +#   Parameters:
        +#
        +#       filehandle - The file handle being used to read the file.
        +#
        +sub New #(filehandle)
        +    {
        +    my ($selfPackage, $filehandle) = @_;
        +
        +    my $object = [ ];
        +
        +    $object->[LINEREADER_FILEHANDLE] = $filehandle;
        +    $object->[CACHED_LINES] = [ ];
        +
        +    binmode($filehandle, ':raw');
        +
        +	my $hasBOM = 0;
        +    my $possibleBOM = undef;
        +    read($filehandle, $possibleBOM, 2);
        +
        +    if ($possibleBOM eq "\xEF\xBB")
        +        {
        +        read($filehandle, $possibleBOM, 1);
        +        if ($possibleBOM eq "\xBF")
        +            {
        +            binmode($filehandle, ':crlf:encoding(UTF-8)');  # Strict UTF-8, not Perl's lax version.
        +			$hasBOM = 1;
        +            }
        +        }
        +    elsif ($possibleBOM eq "\xFE\xFF")
        +        {
        +        binmode($filehandle, ':crlf:encoding(UTF-16BE)');
        +		$hasBOM = 1;
        +        }
        +    elsif ($possibleBOM eq "\xFF\xFE")
        +        {
        +        binmode($filehandle, ':crlf:encoding(UTF-16LE)');
        +		$hasBOM = 1;
        +        }
        +
        +	if (!$hasBOM)
        +        {
        +        seek($filehandle, 0, 0);
        +
        +		my $rawData = undef;
        +		my $readLength = -s $filehandle;
        +
        +		# Since we're only reading the data to determine if it's UTF-8, sanity check the file length.  We may run 
        +		# across a huge extensionless system file and we don't want to load the whole thing.  Half a meg should
        +		# be good enough to encompass giant source files while not bogging things down on system files.
        +		if ($readLength > 512 * 1024)
        +			{  $readLength = 512 * 1024;  }
        +
        +		read($filehandle, $rawData, $readLength);
        +
        +		eval
        +			{  $rawData = Encode::decode("UTF-8", $rawData, Encode::FB_CROAK);  };
        +
        +		if ($::EVAL_ERROR)
        +			{  binmode($filehandle, ':crlf');  }
        +		else
        +			{  
        +			# Theoretically, since this is valid UTF-8 data we should be able to split it on line breaks and feed them into
        +			# CACHED_LINES instead of setting the encoding to UTF-8 and seeking back to zero just to read it all again.
        +			# Alas, this doesn't work for an easily identifiable reason.  I'm sure there is one, but I couldn't figure it out
        +			# before my patience ran out so I'm just letting the file cache absorb the hit instead.  If we were ever to do
        +			# this in the future you'd have to handle the file length capping code above too.
        +			binmode($filehandle, ':crlf:encoding(UTF-8)');  
        +			}
        +
        +		seek($filehandle, 0, 0);
        +		}
        +
        +    bless $object, $selfPackage;
        +    return $object;
        +    };
        +
        +
        +#
        +#   Function: Chomp
        +#
        +#   Removes any line breaks from the end of a value.  It does not remove any that are in the middle of it.
        +#
        +#   Parameters:
        +#
        +#       lineRef - A *reference* to the line to chomp.
        +#
        +sub Chomp #(lineRef)
        +    {
        +    my ($self, $lineRef) = @_;
        +    $$lineRef =~ s/(?:\r\n|\r|\n)$//;
        +    };
        +
        +
        +#
        +#	Function: Get
        +#
        +#	Returns the next line of text from the file, or undef if there are no more.  The line break will be removed automatically.  If
        +#	the first line contains a Unicode BOM, that will also be removed automatically.
        +#
        +sub Get
        +	{
        +	my $self = shift;
        +	my $line = undef;
        +
        +	if (scalar @{$self->[CACHED_LINES]} == 0)
        +		{
        +		my $filehandle = $self->[LINEREADER_FILEHANDLE];
        +		my $rawLine = <$filehandle>;
        +
        +		if (!defined $rawLine)
        +			{  return undef;  }
        +
        +		$self->Chomp(\$rawLine);
        +
        +        if ($rawLine =~ /\r/)
        +        	{
        +	  		push @{$self->[CACHED_LINES]}, split(/\r/, $rawLine);  # Split for Classic Mac
        +			$line = shift @{$self->[CACHED_LINES]};
        +          	}
        +        else
        +        	{  $line = $rawLine;  }
        +		}
        +	else
        +		{  $line = shift @{$self->[CACHED_LINES]};  }
        +
        +	return $line;
        +	}
        +
        +
        +#
        +#	Function: GetAll
        +#
        +#	Returns an array of all the lines from the file.  The line breaks will be removed automatically.  If the first line contains a
        +#	Unicode BOM, that will also be removed automatically.
        +#
        +sub GetAll
        +	{
        +	my $self = shift;
        +
        +	my $filehandle = $self->[LINEREADER_FILEHANDLE];
        +	my $rawContent;
        +
        +    read($filehandle, $rawContent, -s $filehandle);
        +
        +    return split(/\r\n|\n|\r/, $rawContent);
        +	}
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Menu.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Menu.pm
        new file mode 100755
        index 0000000..bc1fe84
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Menu.pm
        @@ -0,0 +1,3430 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::Menu
        +#
        +###############################################################################
        +#
        +#   A package handling the menu's contents and state.
        +#
        +#   Usage and Dependencies:
        +#
        +#       - The <Event Handlers> can be called by <NaturalDocs::Project> immediately.
        +#
        +#       - Prior to initialization, <NaturalDocs::Project> must be initialized, and all files that have been changed must be run
        +#         through <NaturalDocs::Parser->ParseForInformation()>.
        +#
        +#       - To initialize, call <LoadAndUpdate()>.  Afterwards, all other functions are available.  Also, <LoadAndUpdate()> will
        +#         call <NaturalDocs::Settings->GenerateDirectoryNames()>.
        +#
        +#       - To save the changes back to disk, call <Save()>.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use Tie::RefHash;
        +
        +use NaturalDocs::Menu::Entry;
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::Menu;
        +
        +use Encode qw(encode_utf8 decode_utf8);
        +
        +
        +#
        +#   Constants: Constants
        +#
        +#   MAXFILESINGROUP - The maximum number of file entries that can be present in a group before it becomes a candidate for
        +#                                  sub-grouping.
        +#   MINFILESINNEWGROUP - The minimum number of file entries that must be present in a group before it will be automatically
        +#                                        created.  This is *not* the number of files that must be in a group before it's deleted.
        +#
        +use constant MAXFILESINGROUP => 6;
        +use constant MINFILESINNEWGROUP => 3;
        +
        +
        +###############################################################################
        +# Group: Variables
        +
        +
        +#
        +#   bool: hasChanged
        +#
        +#   Whether the menu changed or not, regardless of why.
        +#
        +my $hasChanged;
        +
        +
        +#
        +#   Object: menu
        +#
        +#   The parsed menu file.  Is stored as a <MENU_GROUP> <NaturalDocs::Menu::Entry> object, with the top-level entries being
        +#   stored as the group's content.  This is done because it makes a number of functions simpler to implement, plus it allows group
        +#   flags to be set on the top-level.  However, it is exposed externally via <Content()> as an arrayref.
        +#
        +#   This structure will only contain objects for <MENU_FILE>, <MENU_GROUP>, <MENU_TEXT>, <MENU_LINK>, and
        +#   <MENU_INDEX> entries.  Other types, such as <MENU_TITLE>, are stored in variables such as <title>.
        +#
        +my $menu;
        +
        +#
        +#   hash: defaultTitlesChanged
        +#
        +#   An existence hash of default titles that have changed, since <OnDefaultTitleChange()> will be called before
        +#   <LoadAndUpdate()>.  Collects them to be applied later.  The keys are the <FileNames>.
        +#
        +my %defaultTitlesChanged;
        +
        +#
        +#   String: title
        +#
        +#   The title of the menu.
        +#
        +my $title;
        +
        +#
        +#   String: subTitle
        +#
        +#   The sub-title of the menu.
        +#
        +my $subTitle;
        +
        +#
        +#   String: footer
        +#
        +#   The footer for the documentation.
        +#
        +my $footer;
        +
        +#
        +#   String: timestampText
        +#
        +#   The timestamp for the documentation, stored as the final output text.
        +#
        +my $timestampText;
        +
        +#
        +#   String: timestampCode
        +#
        +#   The timestamp for the documentation, storted as the symbolic code.
        +#
        +my $timestampCode;
        +
        +#
        +#   hash: indexes
        +#
        +#   An existence hash of all the defined index <TopicTypes> appearing in the menu.
        +#
        +my %indexes;
        +
        +#
        +#   hash: previousIndexes
        +#
        +#   An existence hash of all the index <TopicTypes> that appeared in the menu last time.
        +#
        +my %previousIndexes;
        +
        +#
        +#   hash: bannedIndexes
        +#
        +#   An existence hash of all the index <TopicTypes> that the user has manually deleted, and thus should not be added back to
        +#   the menu automatically.
        +#
        +my %bannedIndexes;
        +
        +
        +###############################################################################
        +# Group: Files
        +
        +#
        +#   File: Menu.txt
        +#
        +#   The file used to generate the menu.
        +#
        +#   Format:
        +#
        +#       The file is plain text.  Blank lines can appear anywhere and are ignored.  Tags and their content must be completely
        +#       contained on one line with the exception of Group's braces.  All values in brackets below are encoded with entity characters.
        +#
        +#       > # [comment]
        +#
        +#       The file supports single-line comments via #.  They can appear alone on a line or after content.
        +#
        +#       > Format: [version]
        +#       > Title: [title]
        +#       > SubTitle: [subtitle]
        +#       > Footer: [footer]
        +#       > Timestamp: [timestamp code]
        +#
        +#       The file format version, menu title, subtitle, footer, and timestamp are specified as above.  Each can only be specified once,
        +#       with subsequent ones being ignored.  Subtitle is ignored if Title is not present.  Format must be the first entry in the file.  If
        +#       it's not present, it's assumed the menu is from version 0.95 or earlier, since it was added with 1.0.
        +#
        +#       The timestamp code is as follows.
        +#
        +#           m - Single digit month, where applicable.  January is "1".
        +#           mm - Always double digit month.  January is "01".
        +#           mon - Short month word.  January is "Jan".
        +#           month - Long month word.  January is "January".
        +#           d - Single digit day, where applicable.  1 is "1".
        +#           dd - Always double digit day.  1 is "01".
        +#           day - Day with text extension.  1 is "1st".
        +#           yy - Double digit year.  2006 is "06".
        +#           yyyy - Four digit year.  2006 is "2006".
        +#           year - Four digit year.  2006 is "2006".
        +#
        +#       Anything else is left literal in the output.
        +#
        +#       > File: [title] ([file name])
        +#       > File: [title] (auto-title, [file name])
        +#       > File: [title] (no auto-title, [file name])
        +#
        +#       Files are specified as above.  If there is only one input directory, file names are relative.  Otherwise they are absolute.
        +#       If "no auto-title" is specified, the title on the line is used.  If not, the title is ignored and the
        +#       default file title is used instead.  Auto-title defaults to on, so specifying "auto-title" is for compatibility only.
        +#
        +#       > Group: [title]
        +#       > Group: [title] { ... }
        +#
        +#       Groups are specified as above.  If no braces are specified, the group's content is everything that follows until the end of the
        +#       file, the next group (braced or unbraced), or the closing brace of a parent group.  Group braces are the only things in this
        +#       file that can span multiple lines.
        +#
        +#       There is no limitations on where the braces can appear.  The opening brace can appear after the group tag, on its own line,
        +#       or preceding another tag on a line.  Similarly, the closing brace can appear after another tag or on its own line.  Being
        +#       bitchy here would just get in the way of quick and dirty editing; the package will clean it up automatically when it writes it
        +#       back to disk.
        +#
        +#       > Text: [text]
        +#
        +#       Arbitrary text is specified as above.  As with other tags, everything must be contained on the same line.
        +#
        +#       > Link: [URL]
        +#       > Link: [title] ([URL])
        +#
        +#       External links can be specified as above.  If the titled form is not used, the URL is used as the title.
        +#
        +#       > Index: [name]
        +#       > [topic type name] Index: [name]
        +#
        +#       Indexes are specified as above.  The topic type names can be either singular or plural.  General is assumed if not specified.
        +#
        +#       > Don't Index: [topic type name]
        +#       > Don't Index: [topic type name], [topic type name], ...
        +#
        +#       The option above prevents indexes that exist but are not on the menu from being automatically added.
        +#
        +#       > Data: [number]([obscured data])
        +#
        +#       Used to store non-user editable data.
        +#
        +#       > Data: 1([obscured: [directory name]///[input directory]])
        +#
        +#       When there is more than one directory, these lines store the input directories used in the last run and their names.  This
        +#       allows menu files to be shared across machines since the names will be consistent and the directories can be used to convert
        +#       filenames to the local machine's paths.  We don't want this user-editable because they may think changing it changes the
        +#       input directories, when it doesn't.  Also, changing it without changing all the paths screws up resolving.
        +#
        +#       > Data: 2([obscured: [directory name])
        +#
        +#       When there is only one directory and its name is not "default", this stores the name.
        +#
        +#
        +#   Entities:
        +#
        +#       &amp; - Ampersand.
        +#       &lparen; - Left parenthesis.
        +#       &rparen; - Right parenthesis.
        +#       &lbrace; - Left brace.
        +#       &rbrace; - Right brace.
        +#
        +#
        +#   Revisions:
        +#
        +#       1.4:
        +#
        +#           - Added Timestamp property.
        +#           - Values are now encoded with entity characters.
        +#
        +#       1.3:
        +#
        +#           - File names are now relative again if there is only one input directory.
        +#           - Data: 2(...) added.
        +#           - Can't use synonyms like "copyright" for "footer" or "sub-title" for "subtitle".
        +#           - "Don't Index" line now requires commas to separate them, whereas it tolerated just spaces before.
        +#
        +#       1.16:
        +#
        +#           - File names are now absolute instead of relative.  Prior to 1.16 only one input directory was allowed, so they could be
        +#             relative.
        +#           - Data keywords introduced to store input directories and their names.
        +#
        +#       1.14:
        +#
        +#           - Renamed this file from NaturalDocs_Menu.txt to Menu.txt.
        +#
        +#       1.1:
        +#
        +#           - Added the "don't index" line.
        +#
        +#           This is also the point where indexes were automatically added and removed, so all index entries from prior revisions
        +#           were manually added and are not guaranteed to contain anything.
        +#
        +#       1.0:
        +#
        +#           - Added the format line.
        +#           - Added the "no auto-title" attribute.
        +#           - Changed the file entry default to auto-title.
        +#
        +#           This is also the point where auto-organization and better auto-titles were introduced.  All groups in prior revisions were
        +#           manually added, with the exception of a top-level Other group where new files were automatically added if there were
        +#           groups defined.
        +#
        +#       Break in support:
        +#
        +#           Releases prior to 1.0 are no longer supported.  Why?
        +#
        +#           - They don't have a Format: line, which is required by <NaturalDocs::ConfigFile>, although I could work around this
        +#             if I needed to.
        +#           - No significant number of downloads for pre-1.0 releases.
        +#           - Code simplification.  I don't have to bridge the conversion from manual-only menu organization to automatic.
        +#
        +#       0.9:
        +#
        +#           - Added index entries.
        +#
        +
        +#
        +#   File: PreviousMenuState.nd
        +#
        +#   The file used to store the previous state of the menu so as to detect changes.
        +#
        +#
        +#   Format:
        +#
        +#   > [BINARY_FORMAT]
        +#   > [VersionInt: app version]
        +#
        +#   First is the standard <BINARY_FORMAT> <VersionInt> header.
        +#
        +#   > [UInt8: 0 (end group)]
        +#   > [UInt8: MENU_FILE] [UInt8: noAutoTitle] [UString16: title] [UString16: target]
        +#   > [UInt8: MENU_GROUP] [UString16: title]
        +#   > [UInt8: MENU_INDEX] [UString16: title] [UString16: topic type]
        +#   > [UInt8: MENU_LINK] [UString16: title] [UString16: url]
        +#   > [UInt8: MENU_TEXT] [UString16: text]
        +#
        +#   The first UInt8 of each following line is either zero or one of the <Menu Entry Types>.  What follows is contextual.
        +#
        +#   There are no entries for title, subtitle, or footer.  Only the entries present in <menu>.
        +#
        +#   See Also:
        +#
        +#       <File Format Conventions>
        +#
        +#   Dependencies:
        +#
        +#       - Because the type is represented by a UInt8, the <Menu Entry Types> must all be <= 255.
        +#
        +#   Revisions:
        +#
        +#		1.52:
        +#
        +#			- All AString16s were changed to UString16s.
        +#
        +#       1.3:
        +#
        +#           - The topic type following the <MENU_INDEX> entries were changed from UInt8s to AString16s, since <TopicTypes>
        +#             were switched from integer constants to strings.  You can still convert the old to the new via
        +#             <NaturalDocs::Topics->TypeFromLegacy()>.
        +#
        +#       1.16:
        +#
        +#           - The file targets are now absolute.  Prior to 1.16, they were relative to the input directory since only one was allowed.
        +#
        +#       1.14:
        +#
        +#           - The file was renamed from NaturalDocs.m to PreviousMenuState.nd and moved into the Data subdirectory.
        +#
        +#       1.0:
        +#
        +#           - The file's format was completely redone.  Prior to 1.0, the file was a text file consisting of the app version and a line
        +#             which was a tab-separated list of the indexes present in the menu.  * meant the general index.
        +#
        +#       Break in support:
        +#
        +#           Pre-1.0 files are no longer supported.  There was no significant number of downloads for pre-1.0 releases, and this
        +#           eliminates a separate code path for them.
        +#
        +#       0.95:
        +#
        +#           - Change the file version to match the app version.  Prior to 0.95, the version line was 1.  Test for "1" instead of "1.0" to
        +#             distinguish.
        +#
        +#       0.9:
        +#
        +#           - The file was added to the project.  Prior to 0.9, it didn't exist.
        +#
        +
        +
        +###############################################################################
        +# Group: File Functions
        +
        +#
        +#   Function: LoadAndUpdate
        +#
        +#   Loads the menu file from disk and updates it.  Will add, remove, rearrange, and remove auto-titling from entries as
        +#   necessary.  Will also call <NaturalDocs::Settings->GenerateDirectoryNames()>.
        +#
        +sub LoadAndUpdate
        +    {
        +    my ($self) = @_;
        +
        +    my ($inputDirectoryNames, $relativeFiles, $onlyDirectoryName) = $self->LoadMenuFile();
        +
        +    my $errorCount = NaturalDocs::ConfigFile->ErrorCount();
        +    if ($errorCount)
        +        {
        +        NaturalDocs::ConfigFile->PrintErrorsAndAnnotateFile();
        +        NaturalDocs::Error->SoftDeath('There ' . ($errorCount == 1 ? 'is an error' : 'are ' . $errorCount . ' errors')
        +                                                    . ' in ' . NaturalDocs::Project->UserConfigFile('Menu.txt'));
        +        };
        +
        +    # If the menu has a timestamp and today is a different day than the last time Natural Docs was run, we have to count it as the
        +    # menu changing.
        +    if (defined $timestampCode)
        +        {
        +        my (undef, undef, undef, $currentDay, $currentMonth, $currentYear) = localtime();
        +        my (undef, undef, undef, $lastDay, $lastMonth, $lastYear) =
        +            localtime( (stat( NaturalDocs::Project->DataFile('PreviousMenuState.nd') ))[9] );
        +            # This should be okay if the previous menu state file doesn't exist.
        +
        +        if ($currentDay != $lastDay || $currentMonth != $lastMonth || $currentYear != $lastYear)
        +            {  $hasChanged = 1;  };
        +        };
        +
        +
        +    if ($relativeFiles)
        +        {
        +        my $inputDirectory = $self->ResolveRelativeInputDirectories($onlyDirectoryName);
        +
        +        if ($onlyDirectoryName)
        +            {  $inputDirectoryNames = { $inputDirectory => $onlyDirectoryName };  };
        +        }
        +    else
        +        {  $self->ResolveInputDirectories($inputDirectoryNames);  };
        +
        +    NaturalDocs::Settings->GenerateDirectoryNames($inputDirectoryNames);
        +
        +    my $filesInMenu = $self->FilesInMenu();
        +
        +    my ($previousMenu, $previousIndexes, $previousFiles) = $self->LoadPreviousMenuStateFile();
        +
        +    if (defined $previousIndexes)
        +        {  %previousIndexes = %$previousIndexes;  };
        +
        +    if (defined $previousFiles)
        +        {  $self->LockUserTitleChanges($previousFiles);  };
        +
        +    # Don't need these anymore.  We keep this level of detail because it may be used more in the future.
        +    $previousMenu = undef;
        +    $previousFiles = undef;
        +    $previousIndexes = undef;
        +
        +    # We flag title changes instead of actually performing them at this point for two reasons.  First, contents of groups are still
        +    # subject to change, which would affect the generated titles.  Second, we haven't detected the sort order yet.  Changing titles
        +    # could make groups appear unalphabetized when they were beforehand.
        +
        +    my $updateAllTitles;
        +
        +    # If the menu file changed, we can't be sure which groups changed and which didn't without a comparison, which really isn't
        +    # worth the trouble.  So we regenerate all the titles instead.
        +    if (NaturalDocs::Project->UserConfigFileStatus('Menu.txt') == ::FILE_CHANGED())
        +        {  $updateAllTitles = 1;  }
        +    else
        +        {  $self->FlagAutoTitleChanges();  };
        +
        +    # We add new files before deleting old files so their presence still affects the grouping.  If we deleted old files first, it could
        +    # throw off where to place the new ones.
        +
        +    $self->AutoPlaceNewFiles($filesInMenu);
        +
        +    my $numberRemoved = $self->RemoveDeadFiles();
        +
        +    $self->CheckForTrashedMenu(scalar keys %$filesInMenu, $numberRemoved);
        +
        +    # Don't ban indexes if they deleted Menu.txt.  They may have not deleted PreviousMenuState.nd and we don't want everything
        +    # to be banned because of it.
        +    if (NaturalDocs::Project->UserConfigFileStatus('Menu.txt') != ::FILE_DOESNTEXIST())
        +        {  $self->BanAndUnbanIndexes();  };
        +
        +    # Index groups need to be detected before adding new ones.
        +
        +    $self->DetectIndexGroups();
        +
        +    $self->AddAndRemoveIndexes();
        +
        +   # We wait until after new files are placed to remove dead groups because a new file may save a group.
        +
        +    $self->RemoveDeadGroups();
        +
        +    $self->CreateDirectorySubGroups();
        +
        +    # We detect the sort before regenerating the titles so it doesn't get thrown off by changes.  However, we do it after deleting
        +    # dead entries and moving things into subgroups because their removal may bump it into a stronger sort category (i.e.
        +    # SORTFILESANDGROUPS instead of just SORTFILES.)  New additions don't factor into the sort.
        +
        +    $self->DetectOrder($updateAllTitles);
        +
        +    $self->GenerateAutoFileTitles($updateAllTitles);
        +
        +    $self->ResortGroups($updateAllTitles);
        +
        +
        +    # Don't need this anymore.
        +    %defaultTitlesChanged = ( );
        +    };
        +
        +
        +#
        +#   Function: Save
        +#
        +#   Writes the changes to the menu files.
        +#
        +sub Save
        +    {
        +    my ($self) = @_;
        +
        +    if ($hasChanged)
        +        {
        +        $self->SaveMenuFile();
        +        $self->SavePreviousMenuStateFile();
        +        };
        +    };
        +
        +
        +###############################################################################
        +# Group: Information Functions
        +
        +#
        +#   Function: HasChanged
        +#
        +#   Returns whether the menu has changed or not.
        +#
        +sub HasChanged
        +    {  return $hasChanged;  };
        +
        +#
        +#   Function: Content
        +#
        +#   Returns the parsed menu as an arrayref of <NaturalDocs::Menu::Entry> objects.  Do not change the arrayref.
        +#
        +#   The arrayref will only contain <MENU_FILE>, <MENU_GROUP>, <MENU_INDEX>, <MENU_TEXT>, and <MENU_LINK>
        +#   entries.  Entries such as <MENU_TITLE> are parsed out and are only accessible via functions such as <Title()>.
        +#
        +sub Content
        +    {  return $menu->GroupContent();  };
        +
        +#
        +#   Function: Title
        +#
        +#   Returns the title of the menu, or undef if none.
        +#
        +sub Title
        +    {  return $title;  };
        +
        +#
        +#   Function: SubTitle
        +#
        +#   Returns the sub-title of the menu, or undef if none.
        +#
        +sub SubTitle
        +    {  return $subTitle;  };
        +
        +#
        +#   Function: Footer
        +#
        +#   Returns the footer of the documentation, or undef if none.
        +#
        +sub Footer
        +    {  return $footer;  };
        +
        +#
        +#   Function: TimeStamp
        +#
        +#   Returns the timestamp text of the documentation, or undef if none.
        +#
        +sub TimeStamp
        +    {  return $timestampText;  };
        +
        +#
        +#   Function: Indexes
        +#
        +#   Returns an existence hashref of all the index <TopicTypes> appearing in the menu.  Do not change the hashref.
        +#
        +sub Indexes
        +    {  return \%indexes;  };
        +
        +#
        +#   Function: PreviousIndexes
        +#
        +#   Returns an existence hashref of all the index <TopicTypes> that previously appeared in the menu.  Do not change the
        +#   hashref.
        +#
        +sub PreviousIndexes
        +    {  return \%previousIndexes;  };
        +
        +
        +#
        +#   Function: FilesInMenu
        +#
        +#   Returns a hashref of all the files present in the menu.  The keys are the <FileNames>, and the values are references to their
        +#   <NaturalDocs::Menu::Entry> objects.
        +#
        +sub FilesInMenu
        +    {
        +    my ($self) = @_;
        +
        +    my @groupStack = ( $menu );
        +    my $filesInMenu = { };
        +
        +    while (scalar @groupStack)
        +        {
        +        my $currentGroup = pop @groupStack;
        +        my $currentGroupContent = $currentGroup->GroupContent();
        +
        +        foreach my $entry (@$currentGroupContent)
        +            {
        +            if ($entry->Type() == ::MENU_GROUP())
        +                {  push @groupStack, $entry;  }
        +            elsif ($entry->Type() == ::MENU_FILE())
        +                {  $filesInMenu->{ $entry->Target() } = $entry;  };
        +            };
        +        };
        +
        +    return $filesInMenu;
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Event Handlers
        +#
        +#   These functions are called by <NaturalDocs::Project> only.  You don't need to worry about calling them.  For example, when
        +#   changing the default menu title of a file, you only need to call <NaturalDocs::Project->SetDefaultMenuTitle()>.  That function
        +#   will handle calling <OnDefaultTitleChange()>.
        +
        +
        +#
        +#   Function: OnDefaultTitleChange
        +#
        +#   Called by <NaturalDocs::Project> if the default menu title of a source file has changed.
        +#
        +#   Parameters:
        +#
        +#       file    - The source <FileName> that had its default menu title changed.
        +#
        +sub OnDefaultTitleChange #(file)
        +    {
        +    my ($self, $file) = @_;
        +
        +    # Collect them for later.  We'll deal with them in LoadAndUpdate().
        +
        +    $defaultTitlesChanged{$file} = 1;
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Support Functions
        +
        +
        +#
        +#   Function: LoadMenuFile
        +#
        +#   Loads and parses the menu file <Menu.txt>.  This will fill <menu>, <title>, <subTitle>, <footer>, <timestampText>,
        +#   <timestampCode>, <indexes>, and <bannedIndexes>.  If there are any errors in the file, they will be recorded with
        +#   <NaturalDocs::ConfigFile->AddError()>.
        +#
        +#   Returns:
        +#
        +#       The array ( inputDirectories, relativeFiles, onlyDirectoryName ) or an empty array if the file doesn't exist.
        +#
        +#       inputDirectories - A hashref of all the input directories and their names stored in the menu file.  The keys are the
        +#                                 directories and the values are their names.  Undef if none.
        +#       relativeFiles - Whether the menu uses relative file names.
        +#       onlyDirectoryName - The name of the input directory if there is only one.
        +#
        +sub LoadMenuFile
        +    {
        +    my ($self) = @_;
        +
        +    my $inputDirectories = { };
        +    my $relativeFiles;
        +    my $onlyDirectoryName;
        +
        +    # A stack of Menu::Entry object references as we move through the groups.
        +    my @groupStack;
        +
        +    $menu = NaturalDocs::Menu::Entry->New(::MENU_GROUP(), undef, undef, undef);
        +    my $currentGroup = $menu;
        +
        +    # Whether we're currently in a braceless group, since we'd have to find the implied end rather than an explicit one.
        +    my $inBracelessGroup;
        +
        +    # Whether we're right after a group token, which is the only place there can be an opening brace.
        +    my $afterGroupToken;
        +
        +    my $version;
        +
        +    if ($version = NaturalDocs::ConfigFile->Open(NaturalDocs::Project->UserConfigFile('Menu.txt'), 1))
        +        {
        +        # We don't check if the menu file is from a future version because we can't just throw it out and regenerate it like we can
        +        # with other data files.  So we just keep going regardless.  Any syntactic differences will show up as errors.
        +
        +        while (my ($keyword, $value, $comment) = NaturalDocs::ConfigFile->GetLine())
        +            {
        +            # Check for an opening brace after a group token.  This has to be separate from the rest of the code because the flag
        +            # needs to be reset after every line.
        +            if ($afterGroupToken)
        +                {
        +                $afterGroupToken = undef;
        +
        +                if ($keyword eq '{')
        +                    {
        +                    $inBracelessGroup = undef;
        +                    next;
        +                    }
        +                else
        +                    {  $inBracelessGroup = 1;  };
        +                };
        +
        +
        +            # Now on to the real code.
        +
        +            if ($keyword eq 'file')
        +                {
        +                my $flags = 0;
        +
        +                if ($value =~ /^(.+)\(([^\(]+)\)$/)
        +                    {
        +                    my ($title, $file) = ($1, $2);
        +
        +                    $title =~ s/ +$//;
        +
        +                    # Check for auto-title modifier.
        +                    if ($file =~ /^((?:no )?auto-title, ?)(.+)$/i)
        +                        {
        +                        my $modifier;
        +                        ($modifier, $file) = ($1, $2);
        +
        +                        if ($modifier =~ /^no/i)
        +                            {  $flags |= ::MENU_FILE_NOAUTOTITLE();  };
        +                        };
        +
        +                    my $entry = NaturalDocs::Menu::Entry->New(::MENU_FILE(), $self->RestoreAmpChars($title),
        +                                                                                       $self->RestoreAmpChars($file), $flags);
        +
        +                    $currentGroup->PushToGroup($entry);
        +                    }
        +                else
        +                    {  NaturalDocs::ConfigFile->AddError('File lines must be in the format "File: [title] ([location])"');  };
        +                }
        +
        +            elsif ($keyword eq 'group')
        +                {
        +                # End a braceless group, if we were in one.
        +                if ($inBracelessGroup)
        +                    {
        +                    $currentGroup = pop @groupStack;
        +                    $inBracelessGroup = undef;
        +                    };
        +
        +                my $entry = NaturalDocs::Menu::Entry->New(::MENU_GROUP(), $self->RestoreAmpChars($value), undef, undef);
        +
        +                $currentGroup->PushToGroup($entry);
        +
        +                push @groupStack, $currentGroup;
        +                $currentGroup = $entry;
        +
        +                $afterGroupToken = 1;
        +                }
        +
        +
        +            elsif ($keyword eq '{')
        +                {
        +                NaturalDocs::ConfigFile->AddError('Opening braces are only allowed after Group tags.');
        +                }
        +
        +
        +            elsif ($keyword eq '}')
        +                {
        +                # End a braceless group, if we were in one.
        +                if ($inBracelessGroup)
        +                    {
        +                    $currentGroup = pop @groupStack;
        +                    $inBracelessGroup = undef;
        +                    };
        +
        +                # End a braced group too.
        +                if (scalar @groupStack)
        +                    {  $currentGroup = pop @groupStack;  }
        +                else
        +                    {  NaturalDocs::ConfigFile->AddError('Unmatched closing brace.');  };
        +                }
        +
        +
        +            elsif ($keyword eq 'title')
        +                {
        +                if (!defined $title)
        +                    {  $title = $self->RestoreAmpChars($value);  }
        +                else
        +                    {  NaturalDocs::ConfigFile->AddError('Title can only be defined once.');  };
        +                }
        +
        +
        +            elsif ($keyword eq 'subtitle')
        +                {
        +                if (defined $title)
        +                    {
        +                    if (!defined $subTitle)
        +                        {  $subTitle = $self->RestoreAmpChars($value);  }
        +                    else
        +                        {  NaturalDocs::ConfigFile->AddError('SubTitle can only be defined once.');  };
        +                    }
        +                else
        +                    {  NaturalDocs::ConfigFile->AddError('Title must be defined before SubTitle.');  };
        +                }
        +
        +
        +            elsif ($keyword eq 'footer')
        +                {
        +                if (!defined $footer)
        +                    {  $footer = $self->RestoreAmpChars($value);  }
        +                else
        +                    {  NaturalDocs::ConfigFile->AddError('Footer can only be defined once.');  };
        +                }
        +
        +
        +            elsif ($keyword eq 'timestamp')
        +                {
        +                if (!defined $timestampCode)
        +                    {
        +                    $timestampCode = $self->RestoreAmpChars($value);
        +                    $self->GenerateTimestampText();
        +                    }
        +                else
        +                    {  NaturalDocs::ConfigFile->AddError('Timestamp can only be defined once.');  };
        +                }
        +
        +
        +            elsif ($keyword eq 'text')
        +                {
        +                $currentGroup->PushToGroup( NaturalDocs::Menu::Entry->New(::MENU_TEXT(), $self->RestoreAmpChars($value),
        +                                                                                                              undef, undef) );
        +                }
        +
        +
        +            elsif ($keyword eq 'link')
        +                {
        +                my ($title, $url);
        +
        +                if ($value =~ /^([^\(\)]+?) ?\(([^\)]+)\)$/)
        +                    {
        +                    ($title, $url) = ($1, $2);
        +                    }
        +                elsif (defined $comment)
        +                    {
        +                    $value .= $comment;
        +
        +                    if ($value =~ /^([^\(\)]+?) ?\(([^\)]+)\) ?(?:#.*)?$/)
        +                        {
        +                        ($title, $url) = ($1, $2);
        +                        };
        +                    };
        +
        +                if ($title)
        +                    {
        +                    $currentGroup->PushToGroup( NaturalDocs::Menu::Entry->New(::MENU_LINK(), $self->RestoreAmpChars($title),
        +                                                                 $self->RestoreAmpChars($url), undef) );
        +                    }
        +                else
        +                    {  NaturalDocs::ConfigFile->AddError('Link lines must be in the format "Link: [title] ([url])"');  };
        +                }
        +
        +
        +            elsif ($keyword eq 'data')
        +                {
        +                $value =~ /^(\d)\((.*)\)$/;
        +                my ($number, $data) = ($1, $2);
        +
        +                $data = NaturalDocs::ConfigFile->Unobscure($data);
        +
        +                # The input directory naming convention changed with version 1.32, but NaturalDocs::Settings will handle that
        +                # automatically.
        +
        +                if ($number == 1)
        +                    {
        +                    my ($dirName, $inputDir) = split(/\/\/\//, $data, 2);
        +                    $inputDirectories->{$inputDir} = $dirName;
        +                    }
        +                elsif ($number == 2)
        +                    {  $onlyDirectoryName = $data;  };
        +                # Ignore other numbers because it may be from a future format and we don't want to make the user delete it
        +                # manually.
        +                }
        +
        +            elsif ($keyword eq "don't index")
        +                {
        +                my @indexes = split(/, ?/, $value);
        +
        +                foreach my $index (@indexes)
        +                    {
        +                    my $indexType = NaturalDocs::Topics->TypeFromName( $self->RestoreAmpChars($index) );
        +
        +                    if (defined $indexType)
        +                        {  $bannedIndexes{$indexType} = 1;  };
        +                    };
        +                }
        +
        +            elsif ($keyword eq 'index')
        +                {
        +                my $entry = NaturalDocs::Menu::Entry->New(::MENU_INDEX(), $self->RestoreAmpChars($value),
        +                                                                                   ::TOPIC_GENERAL(), undef);
        +                $currentGroup->PushToGroup($entry);
        +
        +                $indexes{::TOPIC_GENERAL()} = 1;
        +                }
        +
        +            elsif (substr($keyword, -6) eq ' index')
        +                {
        +                my $index = substr($keyword, 0, -6);
        +                my ($indexType, $indexInfo) = NaturalDocs::Topics->NameInfo( $self->RestoreAmpChars($index) );
        +
        +                if (defined $indexType)
        +                    {
        +                    if ($indexInfo->Index())
        +                        {
        +                        $indexes{$indexType} = 1;
        +                        $currentGroup->PushToGroup(
        +                            NaturalDocs::Menu::Entry->New(::MENU_INDEX(), $self->RestoreAmpChars($value), $indexType, undef) );
        +                        }
        +                    else
        +                        {
        +                        # If it's on the menu but isn't indexable, the topic setting may have changed out from under it.
        +                        $hasChanged = 1;
        +                        };
        +                    }
        +                else
        +                    {
        +                    NaturalDocs::ConfigFile->AddError($index . ' is not a valid index type.');
        +                    };
        +                }
        +
        +            else
        +                {
        +                NaturalDocs::ConfigFile->AddError(ucfirst($keyword) . ' is not a valid keyword.');
        +                };
        +            };
        +
        +
        +        # End a braceless group, if we were in one.
        +        if ($inBracelessGroup)
        +            {
        +            $currentGroup = pop @groupStack;
        +            $inBracelessGroup = undef;
        +            };
        +
        +        # Close up all open groups.
        +        my $openGroups = 0;
        +        while (scalar @groupStack)
        +            {
        +            $currentGroup = pop @groupStack;
        +            $openGroups++;
        +            };
        +
        +        if ($openGroups == 1)
        +            {  NaturalDocs::ConfigFile->AddError('There is an unclosed group.');  }
        +        elsif ($openGroups > 1)
        +            {  NaturalDocs::ConfigFile->AddError('There are ' . $openGroups . ' unclosed groups.');  };
        +
        +
        +        if (!scalar keys %$inputDirectories)
        +            {
        +            $inputDirectories = undef;
        +            $relativeFiles = 1;
        +            };
        +
        +        NaturalDocs::ConfigFile->Close();
        +
        +        return ($inputDirectories, $relativeFiles, $onlyDirectoryName);
        +        }
        +
        +    else
        +        {  return ( );  };
        +    };
        +
        +
        +#
        +#   Function: SaveMenuFile
        +#
        +#   Saves the current menu to <Menu.txt>.
        +#
        +sub SaveMenuFile
        +    {
        +    my ($self) = @_;
        +
        +    open(MENUFILEHANDLE, '>' . NaturalDocs::Project->UserConfigFile('Menu.txt'))
        +        or die "Couldn't save menu file " . NaturalDocs::Project->UserConfigFile('Menu.txt') . "\n";
        +
        +    binmode(MENUFILEHANDLE, ':encoding(UTF-8)');
        +
        +    print MENUFILEHANDLE
        +    "Format: " . NaturalDocs::Settings->TextAppVersion() . "\n\n\n";
        +
        +    my $inputDirs = NaturalDocs::Settings->InputDirectories();
        +
        +
        +    if (defined $title)
        +        {
        +        print MENUFILEHANDLE 'Title: ' . $self->ConvertAmpChars($title) . "\n";
        +
        +        if (defined $subTitle)
        +            {
        +            print MENUFILEHANDLE 'SubTitle: ' . $self->ConvertAmpChars($subTitle) . "\n";
        +            }
        +        else
        +            {
        +            print MENUFILEHANDLE
        +            "\n"
        +            . "# You can also add a sub-title to your menu like this:\n"
        +            . "# SubTitle: [subtitle]\n";
        +            };
        +        }
        +    else
        +        {
        +        print MENUFILEHANDLE
        +        "# You can add a title and sub-title to your menu like this:\n"
        +        . "# Title: [project name]\n"
        +        . "# SubTitle: [subtitle]\n";
        +        };
        +
        +    print MENUFILEHANDLE "\n";
        +
        +    if (defined $footer)
        +        {
        +        print MENUFILEHANDLE 'Footer: ' . $self->ConvertAmpChars($footer) . "\n";
        +        }
        +    else
        +        {
        +        print MENUFILEHANDLE
        +        "# You can add a footer to your documentation like this:\n"
        +        . "# Footer: [text]\n"
        +        . "# If you want to add a copyright notice, this would be the place to do it.\n";
        +        };
        +
        +    if (defined $timestampCode)
        +        {
        +        print MENUFILEHANDLE 'Timestamp: ' . $self->ConvertAmpChars($timestampCode) . "\n";
        +        }
        +    else
        +        {
        +        print MENUFILEHANDLE
        +        "\n"
        +        . "# You can add a timestamp to your documentation like one of these:\n"
        +        . "# Timestamp: Generated on month day, year\n"
        +        . "# Timestamp: Updated mm/dd/yyyy\n"
        +        . "# Timestamp: Last updated mon day\n"
        +        . "#\n";
        +        };
        +
        +    print MENUFILEHANDLE
        +        qq{#   m     - One or two digit month.  January is "1"\n}
        +        . qq{#   mm    - Always two digit month.  January is "01"\n}
        +        . qq{#   mon   - Short month word.  January is "Jan"\n}
        +        . qq{#   month - Long month word.  January is "January"\n}
        +        . qq{#   d     - One or two digit day.  1 is "1"\n}
        +        . qq{#   dd    - Always two digit day.  1 is "01"\n}
        +        . qq{#   day   - Day with letter extension.  1 is "1st"\n}
        +        . qq{#   yy    - Two digit year.  2006 is "06"\n}
        +        . qq{#   yyyy  - Four digit year.  2006 is "2006"\n}
        +        . qq{#   year  - Four digit year.  2006 is "2006"\n}
        +
        +        . "\n";
        +
        +    if (scalar keys %bannedIndexes)
        +        {
        +        print MENUFILEHANDLE
        +
        +        "# These are indexes you deleted, so Natural Docs will not add them again\n"
        +        . "# unless you remove them from this line.\n"
        +        . "\n"
        +        . "Don't Index: ";
        +
        +        my $first = 1;
        +
        +        foreach my $index (keys %bannedIndexes)
        +            {
        +            if (!$first)
        +                {  print MENUFILEHANDLE ', ';  }
        +            else
        +                {  $first = undef;  };
        +
        +            print MENUFILEHANDLE $self->ConvertAmpChars( NaturalDocs::Topics->NameOfType($index, 1), CONVERT_COMMAS() );
        +            };
        +
        +        print MENUFILEHANDLE "\n\n";
        +        };
        +
        +
        +    # Remember to keep lines below eighty characters.
        +
        +    print MENUFILEHANDLE
        +    "\n"
        +    . "# --------------------------------------------------------------------------\n"
        +    . "# \n"
        +    . "# Cut and paste the lines below to change the order in which your files\n"
        +    . "# appear on the menu.  Don't worry about adding or removing files, Natural\n"
        +    . "# Docs will take care of that.\n"
        +    . "# \n"
        +    . "# You can further organize the menu by grouping the entries.  Add a\n"
        +    . "# \"Group: [name] {\" line to start a group, and add a \"}\" to end it.\n"
        +    . "# \n"
        +    . "# You can add text and web links to the menu by adding \"Text: [text]\" and\n"
        +    . "# \"Link: [name] ([URL])\" lines, respectively.\n"
        +    . "# \n"
        +    . "# The formatting and comments are auto-generated, so don't worry about\n"
        +    . "# neatness when editing the file.  Natural Docs will clean it up the next\n"
        +    . "# time it is run.  When working with groups, just deal with the braces and\n"
        +    . "# forget about the indentation and comments.\n"
        +    . "# \n";
        +
        +    if (scalar @$inputDirs > 1)
        +        {
        +        print MENUFILEHANDLE
        +        "# You can use this file on other computers even if they use different\n"
        +        . "# directories.  As long as the command line points to the same source files,\n"
        +        . "# Natural Docs will be able to correct the locations automatically.\n"
        +        . "# \n";
        +        };
        +
        +    print MENUFILEHANDLE
        +    "# --------------------------------------------------------------------------\n"
        +
        +    . "\n\n";
        +
        +
        +    $self->WriteMenuEntries($menu->GroupContent(), \*MENUFILEHANDLE, undef, (scalar @$inputDirs == 1));
        +
        +
        +    if (scalar @$inputDirs > 1)
        +        {
        +        print MENUFILEHANDLE
        +        "\n\n##### Do not change or remove these lines. #####\n";
        +
        +        foreach my $inputDir (@$inputDirs)
        +            {
        +            print MENUFILEHANDLE
        +            'Data: 1(' . NaturalDocs::ConfigFile->Obscure( NaturalDocs::Settings->InputDirectoryNameOf($inputDir)
        +                                                                              . '///' . $inputDir ) . ")\n";
        +            };
        +        }
        +    elsif (lc(NaturalDocs::Settings->InputDirectoryNameOf($inputDirs->[0])) != 1)
        +        {
        +        print MENUFILEHANDLE
        +        "\n\n##### Do not change or remove this line. #####\n"
        +        . 'Data: 2(' . NaturalDocs::ConfigFile->Obscure( NaturalDocs::Settings->InputDirectoryNameOf($inputDirs->[0]) ) . ")\n";
        +        }
        +
        +    close(MENUFILEHANDLE);
        +    };
        +
        +
        +#
        +#   Function: WriteMenuEntries
        +#
        +#   A recursive function to write the contents of an arrayref of <NaturalDocs::Menu::Entry> objects to disk.
        +#
        +#   Parameters:
        +#
        +#       entries          - The arrayref of menu entries to write.
        +#       fileHandle      - The handle to the output file.
        +#       indentChars   - The indentation _characters_ to add before each line.  It is not the number of characters, it is the characters
        +#                              themselves.  Use undef for none.
        +#       relativeFiles - Whether to use relative file names.
        +#
        +sub WriteMenuEntries #(entries, fileHandle, indentChars, relativeFiles)
        +    {
        +    my ($self, $entries, $fileHandle, $indentChars, $relativeFiles) = @_;
        +    my $lastEntryType;
        +
        +    foreach my $entry (@$entries)
        +        {
        +        if ($entry->Type() == ::MENU_FILE())
        +            {
        +            my $fileName;
        +
        +            if ($relativeFiles)
        +                {  $fileName = (NaturalDocs::Settings->SplitFromInputDirectory($entry->Target()))[1];  }
        +            else
        +                {  $fileName = $entry->Target();  };
        +
        +            print $fileHandle $indentChars . 'File: ' . $self->ConvertAmpChars( $entry->Title(), CONVERT_PARENTHESIS() )
        +                                  . '  (' . ($entry->Flags() & ::MENU_FILE_NOAUTOTITLE() ? 'no auto-title, ' : '')
        +                                  . $self->ConvertAmpChars($fileName) . ")\n";
        +            }
        +        elsif ($entry->Type() == ::MENU_GROUP())
        +            {
        +            if (defined $lastEntryType && $lastEntryType != ::MENU_GROUP())
        +                {  print $fileHandle "\n";  };
        +
        +            print $fileHandle $indentChars . 'Group: ' . $self->ConvertAmpChars( $entry->Title() ) . "  {\n\n";
        +            $self->WriteMenuEntries($entry->GroupContent(), $fileHandle, '   ' . $indentChars, $relativeFiles);
        +            print $fileHandle '   ' . $indentChars . '}  # Group: ' . $self->ConvertAmpChars( $entry->Title() ) . "\n\n";
        +            }
        +        elsif ($entry->Type() == ::MENU_TEXT())
        +            {
        +            print $fileHandle $indentChars . 'Text: ' . $self->ConvertAmpChars( $entry->Title() ) . "\n";
        +            }
        +        elsif ($entry->Type() == ::MENU_LINK())
        +            {
        +            print $fileHandle $indentChars . 'Link: ' . $self->ConvertAmpChars( $entry->Title() ) . '  '
        +                                                        . '(' . $self->ConvertAmpChars( $entry->Target(), CONVERT_PARENTHESIS() ) . ')' . "\n";
        +            }
        +        elsif ($entry->Type() == ::MENU_INDEX())
        +            {
        +            my $type;
        +            if ($entry->Target() ne ::TOPIC_GENERAL())
        +                {
        +                $type = NaturalDocs::Topics->NameOfType($entry->Target()) . ' ';
        +                };
        +
        +            print $fileHandle $indentChars . $self->ConvertAmpChars($type, CONVERT_COLONS()) . 'Index: '
        +                                                        . $self->ConvertAmpChars( $entry->Title() ) . "\n";
        +            };
        +
        +        $lastEntryType = $entry->Type();
        +        };
        +    };
        +
        +
        +#
        +#   Function: LoadPreviousMenuStateFile
        +#
        +#   Loads and parses the previous menu state file.
        +#
        +#   Returns:
        +#
        +#       The array ( previousMenu, previousIndexes, previousFiles ) or an empty array if there was a problem with the file.
        +#
        +#       previousMenu - A <MENU_GROUP> <NaturalDocs::Menu::Entry> object, similar to <menu>, which contains the entire
        +#                              previous menu.
        +#       previousIndexes - An existence hashref of the index <TopicTypes> present in the previous menu.
        +#       previousFiles - A hashref of the files present in the previous menu.  The keys are the <FileNames>, and the entries are
        +#                             references to its object in previousMenu.
        +#
        +sub LoadPreviousMenuStateFile
        +    {
        +    my ($self) = @_;
        +
        +    my $fileIsOkay;
        +    my $version;
        +    my $previousStateFileName = NaturalDocs::Project->DataFile('PreviousMenuState.nd');
        +
        +    if (open(PREVIOUSSTATEFILEHANDLE, '<' . $previousStateFileName))
        +        {
        +        # See if it's binary.
        +        binmode(PREVIOUSSTATEFILEHANDLE);
        +
        +        my $firstChar;
        +        read(PREVIOUSSTATEFILEHANDLE, $firstChar, 1);
        +
        +        if ($firstChar == ::BINARY_FORMAT())
        +            {
        +            $version = NaturalDocs::Version->FromBinaryFile(\*PREVIOUSSTATEFILEHANDLE);
        +
        +            if (NaturalDocs::Version->CheckFileFormat($version, NaturalDocs::Version->FromString('1.52')))
        +                {  $fileIsOkay = 1;  }
        +            else
        +                {  close(PREVIOUSSTATEFILEHANDLE);  };
        +            }
        +
        +        else # it's not in binary
        +            {  close(PREVIOUSSTATEFILEHANDLE);  };
        +        };
        +
        +    if ($fileIsOkay)
        +        {
        +        if (NaturalDocs::Project->UserConfigFileStatus('Menu.txt') == ::FILE_CHANGED())
        +            {  $hasChanged = 1;  };
        +
        +
        +        my $menu = NaturalDocs::Menu::Entry->New(::MENU_GROUP(), undef, undef, undef);
        +        my $indexes = { };
        +        my $files = { };
        +
        +        my @groupStack;
        +        my $currentGroup = $menu;
        +        my $raw;
        +
        +        # [UInt8: type or 0 for end group]
        +
        +        while (read(PREVIOUSSTATEFILEHANDLE, $raw, 1))
        +            {
        +            my ($type, $flags, $title, $titleLength, $target, $targetLength);
        +            $type = unpack('C', $raw);
        +
        +            if ($type == 0)
        +                {  $currentGroup = pop @groupStack;  }
        +
        +            elsif ($type == ::MENU_FILE())
        +                {
        +                # [UInt8: noAutoTitle] [UString16: title] [UString16: target]
        +
        +                read(PREVIOUSSTATEFILEHANDLE, $raw, 3);
        +                (my $noAutoTitle, $titleLength) = unpack('Cn', $raw);
        +
        +                if ($noAutoTitle)
        +                    {  $flags = ::MENU_FILE_NOAUTOTITLE();  };
        +
        +                read(PREVIOUSSTATEFILEHANDLE, $title, $titleLength);
        +                $title = decode_utf8($title);
        +
        +                read(PREVIOUSSTATEFILEHANDLE, $raw, 2);
        +
        +                $targetLength = unpack('n', $raw);
        +
        +                read(PREVIOUSSTATEFILEHANDLE, $target, $targetLength);
        +                $target = decode_utf8($target);
        +                }
        +
        +            elsif ($type == ::MENU_GROUP())
        +                {
        +                # [UString16: title]
        +
        +                read(PREVIOUSSTATEFILEHANDLE, $raw, 2);
        +                $titleLength = unpack('n', $raw);
        +
        +                read(PREVIOUSSTATEFILEHANDLE, $title, $titleLength);
        +                $title = decode_utf8($title);
        +                }
        +
        +            elsif ($type == ::MENU_INDEX())
        +                {
        +                # [UString16: title]
        +
        +                read(PREVIOUSSTATEFILEHANDLE, $raw, 2);
        +                $titleLength = unpack('n', $raw);
        +
        +                read(PREVIOUSSTATEFILEHANDLE, $title, $titleLength);
        +                $title = decode_utf8($title);
        +
        +                if ($version >= NaturalDocs::Version->FromString('1.3'))
        +                    {
        +                    # [UString16: topic type]
        +                    read(PREVIOUSSTATEFILEHANDLE, $raw, 2);
        +                    $targetLength = unpack('n', $raw);
        +
        +                    read(PREVIOUSSTATEFILEHANDLE, $target, $targetLength);
        +                    $target = decode_utf8($target);
        +                    }
        +                else
        +                    {
        +                    # [UInt8: topic type (0 for general)]
        +                    read(PREVIOUSSTATEFILEHANDLE, $raw, 1);
        +                    $target = unpack('C', $raw);
        +
        +                    $target = NaturalDocs::Topics->TypeFromLegacy($target);
        +                    };
        +                }
        +
        +            elsif ($type == ::MENU_LINK())
        +                {
        +                # [UString16: title] [UString16: url]
        +
        +                read(PREVIOUSSTATEFILEHANDLE, $raw, 2);
        +                $titleLength = unpack('n', $raw);
        +
        +                read(PREVIOUSSTATEFILEHANDLE, $title, $titleLength);
        +                $title = decode_utf8($title);
        +
        +                read(PREVIOUSSTATEFILEHANDLE, $raw, 2);
        +                $targetLength = unpack('n', $raw);
        +
        +                read(PREVIOUSSTATEFILEHANDLE, $target, $targetLength);
        +                $target = decode_utf8($target);
        +                }
        +
        +            elsif ($type == ::MENU_TEXT())
        +                {
        +                # [UString16: text]
        +
        +                read(PREVIOUSSTATEFILEHANDLE, $raw, 2);
        +                $titleLength = unpack('n', $raw);
        +
        +                read(PREVIOUSSTATEFILEHANDLE, $title, $titleLength);
        +                $title = decode_utf8($title);
        +                };
        +
        +
        +            # The topic type of the index may have been removed.
        +
        +            if ( !($type == ::MENU_INDEX() && !NaturalDocs::Topics->IsValidType($target)) )
        +                {
        +                my $entry = NaturalDocs::Menu::Entry->New($type, $title, $target, ($flags || 0));
        +                $currentGroup->PushToGroup($entry);
        +
        +                if ($type == ::MENU_FILE())
        +                    {
        +                    $files->{$target} = $entry;
        +                    }
        +                elsif ($type == ::MENU_GROUP())
        +                    {
        +                    push @groupStack, $currentGroup;
        +                    $currentGroup = $entry;
        +                    }
        +                elsif ($type == ::MENU_INDEX())
        +                    {
        +                    $indexes->{$target} = 1;
        +                    };
        +                };
        +
        +            };
        +
        +        close(PREVIOUSSTATEFILEHANDLE);
        +
        +        return ($menu, $indexes, $files);
        +        }
        +    else
        +        {
        +        $hasChanged = 1;
        +        return ( );
        +        };
        +    };
        +
        +
        +#
        +#   Function: SavePreviousMenuStateFile
        +#
        +#   Saves changes to <PreviousMenuState.nd>.
        +#
        +sub SavePreviousMenuStateFile
        +    {
        +    my ($self) = @_;
        +
        +    open (PREVIOUSSTATEFILEHANDLE, '>' . NaturalDocs::Project->DataFile('PreviousMenuState.nd'))
        +        or die "Couldn't save " . NaturalDocs::Project->DataFile('PreviousMenuState.nd') . ".\n";
        +
        +    binmode(PREVIOUSSTATEFILEHANDLE);
        +
        +    print PREVIOUSSTATEFILEHANDLE '' . ::BINARY_FORMAT();
        +
        +    NaturalDocs::Version->ToBinaryFile(\*PREVIOUSSTATEFILEHANDLE, NaturalDocs::Settings->AppVersion());
        +
        +    $self->WritePreviousMenuStateEntries($menu->GroupContent(), \*PREVIOUSSTATEFILEHANDLE);
        +
        +    close(PREVIOUSSTATEFILEHANDLE);
        +    };
        +
        +
        +#
        +#   Function: WritePreviousMenuStateEntries
        +#
        +#   A recursive function to write the contents of an arrayref of <NaturalDocs::Menu::Entry> objects to disk.
        +#
        +#   Parameters:
        +#
        +#       entries          - The arrayref of menu entries to write.
        +#       fileHandle      - The handle to the output file.
        +#
        +sub WritePreviousMenuStateEntries #(entries, fileHandle)
        +    {
        +    my ($self, $entries, $fileHandle) = @_;
        +
        +    foreach my $entry (@$entries)
        +        {
        +        if ($entry->Type() == ::MENU_FILE())
        +            {
        +            # We need to do length manually instead of using n/A in the template because it's not supported in earlier versions
        +            # of Perl.
        +
        +            # [UInt8: MENU_FILE] [UInt8: noAutoTitle] [UString16: title] [UString16: target]
        +            my $uTitle = encode_utf8($entry->Title());
        +            my $uTarget = encode_utf8($entry->Target());
        +
        +            print $fileHandle pack('CCna*na*', ::MENU_FILE(), ($entry->Flags() & ::MENU_FILE_NOAUTOTITLE() ? 1 : 0),
        +                                                                length($uTitle), $uTitle, length($uTarget), $uTarget);
        +            }
        +
        +        elsif ($entry->Type() == ::MENU_GROUP())
        +            {
        +            # [UInt8: MENU_GROUP] [UString16: title]
        +            my $uTitle = encode_utf8($entry->Title());
        +
        +            print $fileHandle pack('Cna*', ::MENU_GROUP(), length($uTitle), $uTitle);
        +            $self->WritePreviousMenuStateEntries($entry->GroupContent(), $fileHandle);
        +            print $fileHandle pack('C', 0);
        +            }
        +
        +        elsif ($entry->Type() == ::MENU_INDEX())
        +            {
        +            # [UInt8: MENU_INDEX] [UString16: title] [UString16: topic type]
        +            my $uTitle = encode_utf8($entry->Title());
        +            my $uTarget = encode_utf8($entry->Target());
        +
        +            print $fileHandle pack('Cna*na*', ::MENU_INDEX(), length($uTitle), $uTitle, length($uTarget), $uTarget);
        +            }
        +
        +        elsif ($entry->Type() == ::MENU_LINK())
        +            {
        +            # [UInt8: MENU_LINK] [UString16: title] [UString16: url]
        +            my $uTitle = encode_utf8($entry->Title());
        +            my $uTarget = encode_utf8($entry->Target());
        +
        +            print $fileHandle pack('Cna*na*', ::MENU_LINK(), length($uTitle), $uTitle, length($uTarget), $uTarget);
        +            }
        +
        +        elsif ($entry->Type() == ::MENU_TEXT())
        +            {
        +            # [UInt8: MENU_TEXT] [UString16: text]
        +            my $uTitle = encode_utf8($entry->Title());
        +
        +            print $fileHandle pack('Cna*', ::MENU_TEXT(), length($uTitle), $uTitle);
        +            };
        +        };
        +
        +    };
        +
        +
        +#
        +#   Function: CheckForTrashedMenu
        +#
        +#   Checks the menu to see if a significant number of file entries didn't resolve to actual files, and if so, saves a backup of the
        +#   menu and issues a warning.
        +#
        +#   Parameters:
        +#
        +#       numberOriginallyInMenu - A count of how many file entries were in the menu orignally.
        +#       numberRemoved - A count of how many file entries were removed from the menu.
        +#
        +sub CheckForTrashedMenu #(numberOriginallyInMenu, numberRemoved)
        +    {
        +    my ($self, $numberOriginallyInMenu, $numberRemoved) = @_;
        +
        +    no integer;
        +
        +    if ( ($numberOriginallyInMenu >= 6 && $numberRemoved == $numberOriginallyInMenu) ||
        +         ($numberOriginallyInMenu >= 12 && ($numberRemoved / $numberOriginallyInMenu) >= 0.4) ||
        +         ($numberRemoved >= 15) )
        +        {
        +        my $backupFile = NaturalDocs::Project->UserConfigFile('Menu_Backup.txt');
        +        my $backupFileNumber = 1;
        +
        +        while (-e $backupFile)
        +            {
        +            $backupFileNumber++;
        +            $backupFile = NaturalDocs::Project->UserConfigFile('Menu_Backup_' . $backupFileNumber . '.txt');
        +            };
        +
        +        NaturalDocs::File->Copy( NaturalDocs::Project->UserConfigFile('Menu.txt'), $backupFile );
        +
        +        print STDERR
        +        "\n"
        +        # GNU format.  See http://www.gnu.org/prep/standards_15.html
        +        . "NaturalDocs: warning: possible trashed menu\n"
        +        . "\n"
        +        . "   Natural Docs has detected that a significant number file entries in the\n"
        +        . "   menu did not resolve to actual files.  A backup of your original menu file\n"
        +        . "   has been saved as\n"
        +        . "\n"
        +        . "   " . $backupFile . "\n"
        +        . "\n"
        +        . "   - If you recently deleted a lot of files from your project, you can safely\n"
        +        . "     ignore this message.  They have been deleted from the menu as well.\n"
        +        . "   - If you recently rearranged your source tree, you may want to restore your\n"
        +        . "     menu from the backup and do a search and replace to preserve your layout.\n"
        +        . "     Otherwise the position of any moved files will be reset.\n"
        +        . "   - If neither of these is the case, you may have gotten the -i parameter\n"
        +        . "     wrong in the command line.  You should definitely restore the backup and\n"
        +        . "     try again, because otherwise every file in your menu will be reset.\n"
        +        . "\n";
        +        };
        +
        +    use integer;
        +    };
        +
        +
        +#
        +#   Function: GenerateTimestampText
        +#
        +#   Generates <timestampText> from <timestampCode> with the current date.
        +#
        +sub GenerateTimestampText
        +    {
        +    my $self = shift;
        +
        +    my @longMonths = ( 'January', 'February', 'March', 'April', 'May', 'June',
        +                                   'July', 'August', 'September', 'October', 'November', 'December' );
        +    my @shortMonths = ( 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec' );
        +
        +    my (undef, undef, undef, $day, $month, $year) = localtime();
        +    $year += 1900;
        +
        +    my $longDay;
        +    if ($day % 10 == 1 && $day != 11)
        +        {  $longDay = $day . 'st';  }
        +    elsif ($day % 10 == 2 && $day != 12)
        +        {  $longDay = $day . 'nd';  }
        +    elsif ($day % 10 == 3 && $day != 13)
        +        {  $longDay = $day . 'rd';  }
        +    else
        +        {  $longDay = $day . 'th';  };
        +
        +
        +    $timestampText = $timestampCode;
        +
        +    $timestampText =~ s/(?<![a-z])month(?![a-z])/$longMonths[$month]/i;
        +    $timestampText =~ s/(?<![a-z])mon(?![a-z])/$shortMonths[$month]/i;
        +    $timestampText =~ s/(?<![a-z])mm(?![a-z])/sprintf('%02d', $month + 1)/ie;
        +    $timestampText =~ s/(?<![a-z])m(?![a-z])/$month + 1/ie;
        +
        +    $timestampText =~ s/(?<![a-z])day(?![a-z])/$longDay/i;
        +    $timestampText =~ s/(?<![a-z])dd(?![a-z])/sprintf('%02d', $day)/ie;
        +    $timestampText =~ s/(?<![a-z])d(?![a-z])/$day/i;
        +
        +    $timestampText =~ s/(?<![a-z])(?:year|yyyy)(?![a-z])/$year/i;
        +    $timestampText =~ s/(?<![a-z])yy(?![a-z])/sprintf('%02d', $year % 100)/ie;
        +    };
        +
        +
        +use constant CONVERT_PARENTHESIS => 0x01;
        +use constant CONVERT_COMMAS => 0x02;
        +use constant CONVERT_COLONS => 0x04;
        +
        +#
        +#   Function: ConvertAmpChars
        +#   Replaces certain characters in the string with their entities and returns it.
        +#
        +#   Parameters:
        +#
        +#       text - The text to convert.
        +#       flags - The flags of any additional characters to convert.
        +#
        +#   Flags:
        +#
        +#       - CONVERT_PARENTHESIS
        +#       - CONVERT_COMMAS
        +#       - CONVERT_COLONS
        +#
        +#   Returns:
        +#
        +#       The string with the amp chars converted.
        +#
        +sub ConvertAmpChars #(string text, int flags) => string
        +    {
        +    my ($self, $text, $flags) = @_;
        +
        +    $text =~ s/&/&amp;/g;
        +    $text =~ s/\{/&lbrace;/g;
        +    $text =~ s/\}/&rbrace;/g;
        +
        +    if ($flags & CONVERT_PARENTHESIS())
        +        {
        +        $text =~ s/\(/&lparen;/g;
        +        $text =~ s/\)/&rparen;/g;
        +        };
        +    if ($flags & CONVERT_COMMAS())
        +        {
        +        $text =~ s/\,/&comma;/g;
        +        };
        +    if ($flags & CONVERT_COLONS())
        +        {
        +        $text =~ s/\:/&colon;/g;
        +        };
        +
        +    return $text;
        +    };
        +
        +
        +#
        +#   Function: RestoreAmpChars
        +#   Replaces entity characters in the string with their original characters and returns it.  This will restore all amp chars regardless
        +#   of the flags passed to <ConvertAmpChars()>.
        +#
        +sub RestoreAmpChars #(string text) => string
        +    {
        +    my ($self, $text) = @_;
        +
        +    $text =~ s/&lparen;/(/gi;
        +    $text =~ s/&rparen;/)/gi;
        +    $text =~ s/&lbrace;/{/gi;
        +    $text =~ s/&rbrace;/}/gi;
        +    $text =~ s/&comma;/,/gi;
        +    $text =~ s/&amp;/&/gi;
        +    $text =~ s/&colon;/:/gi;
        +
        +    return $text;
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Auto-Adjustment Functions
        +
        +
        +#
        +#   Function: ResolveInputDirectories
        +#
        +#   Detects if the input directories in the menu file match those in the command line, and if not, tries to resolve them.  This allows
        +#   menu files to work across machines, since the absolute paths won't be the same but the relative ones should be.
        +#
        +#   Parameters:
        +#
        +#       inputDirectoryNames - A hashref of the input directories appearing in the menu file, or undef if none.  The keys are the
        +#                                        directories, and the values are their names.  May be undef.
        +#
        +sub ResolveInputDirectories #(inputDirectoryNames)
        +    {
        +    my ($self, $menuDirectoryNames) = @_;
        +
        +
        +    # Determine which directories don't match the command line, if any.
        +
        +    my $inputDirectories = NaturalDocs::Settings->InputDirectories();
        +    my @unresolvedMenuDirectories;
        +
        +    foreach my $menuDirectory (keys %$menuDirectoryNames)
        +        {
        +        my $found;
        +
        +        foreach my $inputDirectory (@$inputDirectories)
        +            {
        +            if ($menuDirectory eq $inputDirectory)
        +                {
        +                $found = 1;
        +                last;
        +                };
        +            };
        +
        +        if (!$found)
        +            {  push @unresolvedMenuDirectories, $menuDirectory;  };
        +        };
        +
        +    # Quit if everything matches up, which should be the most common case.
        +    if (!scalar @unresolvedMenuDirectories)
        +        {  return;  };
        +
        +    # Poop.  See which input directories are still available.
        +
        +    my @unresolvedInputDirectories;
        +
        +    foreach my $inputDirectory (@$inputDirectories)
        +        {
        +        if (!exists $menuDirectoryNames->{$inputDirectory})
        +            {  push @unresolvedInputDirectories, $inputDirectory;  };
        +        };
        +
        +    # Quit if there are none.  This means an input directory is in the menu that isn't in the command line.  Natural Docs should
        +    # proceed normally and let the files be deleted.
        +    if (!scalar @unresolvedInputDirectories)
        +        {
        +        $hasChanged = 1;
        +        return;
        +        };
        +
        +    # The index into menuDirectoryScores is the same as in unresolvedMenuDirectories.  The index into each arrayref within it is
        +    # the same as in unresolvedInputDirectories.
        +    my @menuDirectoryScores;
        +    for (my $i = 0; $i < scalar @unresolvedMenuDirectories; $i++)
        +        {  push @menuDirectoryScores, [ ];  };
        +
        +
        +    # Now plow through the menu, looking for files that have an unresolved base.
        +
        +    my @menuGroups = ( $menu );
        +
        +    while (scalar @menuGroups)
        +        {
        +        my $currentGroup = pop @menuGroups;
        +        my $currentGroupContent = $currentGroup->GroupContent();
        +
        +        foreach my $entry (@$currentGroupContent)
        +            {
        +            if ($entry->Type() == ::MENU_GROUP())
        +                {
        +                push @menuGroups, $entry;
        +                }
        +            elsif ($entry->Type() == ::MENU_FILE())
        +                {
        +                # Check if it uses an unresolved base.
        +                for (my $i = 0; $i < scalar @unresolvedMenuDirectories; $i++)
        +                    {
        +                    if (NaturalDocs::File->IsSubPathOf($unresolvedMenuDirectories[$i], $entry->Target()))
        +                        {
        +                        my $relativePath = NaturalDocs::File->MakeRelativePath($unresolvedMenuDirectories[$i], $entry->Target());
        +                        $self->ResolveFile($relativePath, \@unresolvedInputDirectories, $menuDirectoryScores[$i]);
        +                        last;
        +                        };
        +                    };
        +                };
        +            };
        +        };
        +
        +
        +    # Now, create an array of score objects.  Each score object is the three value arrayref [ from, to, score ].  From and To are the
        +    # conversion options and are the indexes into unresolvedInput/MenuDirectories.  We'll sort this array by score to get the best
        +    # possible conversions.  Yes, really.
        +    my @scores;
        +
        +    for (my $menuIndex = 0; $menuIndex < scalar @unresolvedMenuDirectories; $menuIndex++)
        +        {
        +        for (my $inputIndex = 0; $inputIndex < scalar @unresolvedInputDirectories; $inputIndex++)
        +            {
        +            if ($menuDirectoryScores[$menuIndex]->[$inputIndex])
        +                {
        +                push @scores, [ $menuIndex, $inputIndex, $menuDirectoryScores[$menuIndex]->[$inputIndex] ];
        +                };
        +            };
        +        };
        +
        +    @scores = sort { $b->[2] <=> $a->[2] } @scores;
        +
        +
        +    # Now we determine what goes where.
        +    my @menuDirectoryConversions;
        +
        +    foreach my $scoreObject (@scores)
        +        {
        +        if (!defined $menuDirectoryConversions[ $scoreObject->[0] ])
        +            {
        +            $menuDirectoryConversions[ $scoreObject->[0] ] = $unresolvedInputDirectories[ $scoreObject->[1] ];
        +            };
        +        };
        +
        +
        +    # Now, FINALLY, we do the conversion.  Note that not every menu directory may have a conversion defined.
        +
        +    @menuGroups = ( $menu );
        +
        +    while (scalar @menuGroups)
        +        {
        +        my $currentGroup = pop @menuGroups;
        +        my $currentGroupContent = $currentGroup->GroupContent();
        +
        +        foreach my $entry (@$currentGroupContent)
        +            {
        +            if ($entry->Type() == ::MENU_GROUP())
        +                {
        +                push @menuGroups, $entry;
        +                }
        +            elsif ($entry->Type() == ::MENU_FILE())
        +                {
        +                # Check if it uses an unresolved base.
        +                for (my $i = 0; $i < scalar @unresolvedMenuDirectories; $i++)
        +                    {
        +                    if (NaturalDocs::File->IsSubPathOf($unresolvedMenuDirectories[$i], $entry->Target()) &&
        +                        defined $menuDirectoryConversions[$i])
        +                        {
        +                        my $relativePath = NaturalDocs::File->MakeRelativePath($unresolvedMenuDirectories[$i], $entry->Target());
        +                        $entry->SetTarget( NaturalDocs::File->JoinPaths($menuDirectoryConversions[$i], $relativePath) );
        +                        last;
        +                        };
        +                    };
        +                };
        +            };
        +        };
        +
        +
        +    # Whew.
        +
        +    $hasChanged = 1;
        +    };
        +
        +
        +#
        +#   Function: ResolveRelativeInputDirectories
        +#
        +#   Resolves relative input directories to the input directories available.
        +#
        +sub ResolveRelativeInputDirectories
        +    {
        +    my ($self) = @_;
        +
        +    my $inputDirectories = NaturalDocs::Settings->InputDirectories();
        +    my $resolvedInputDirectory;
        +
        +    if (scalar @$inputDirectories == 1)
        +        {  $resolvedInputDirectory = $inputDirectories->[0];  }
        +    else
        +        {
        +        my @score;
        +
        +        # Plow through the menu, looking for files and scoring them.
        +
        +        my @menuGroups = ( $menu );
        +
        +        while (scalar @menuGroups)
        +            {
        +            my $currentGroup = pop @menuGroups;
        +            my $currentGroupContent = $currentGroup->GroupContent();
        +
        +            foreach my $entry (@$currentGroupContent)
        +                {
        +                if ($entry->Type() == ::MENU_GROUP())
        +                    {
        +                    push @menuGroups, $entry;
        +                    }
        +                elsif ($entry->Type() == ::MENU_FILE())
        +                    {
        +                    $self->ResolveFile($entry->Target(), $inputDirectories, \@score);
        +                    };
        +                };
        +            };
        +
        +        # Determine the best match.
        +
        +        my $bestScore = 0;
        +        my $bestIndex = 0;
        +
        +        for (my $i = 0; $i < scalar @$inputDirectories; $i++)
        +            {
        +            if ($score[$i] > $bestScore)
        +                {
        +                $bestScore = $score[$i];
        +                $bestIndex = $i;
        +                };
        +            };
        +
        +        $resolvedInputDirectory = $inputDirectories->[$bestIndex];
        +        };
        +
        +
        +    # Okay, now that we have our resolved directory, update everything.
        +
        +    my @menuGroups = ( $menu );
        +
        +    while (scalar @menuGroups)
        +        {
        +        my $currentGroup = pop @menuGroups;
        +        my $currentGroupContent = $currentGroup->GroupContent();
        +
        +        foreach my $entry (@$currentGroupContent)
        +            {
        +            if ($entry->Type() == ::MENU_GROUP())
        +                {  push @menuGroups, $entry;  }
        +            elsif ($entry->Type() == ::MENU_FILE())
        +                {
        +                $entry->SetTarget( NaturalDocs::File->JoinPaths($resolvedInputDirectory, $entry->Target()) );
        +                };
        +            };
        +        };
        +
        +    if (scalar @$inputDirectories > 1)
        +        {  $hasChanged = 1;  };
        +
        +    return $resolvedInputDirectory;
        +    };
        +
        +
        +#
        +#   Function: ResolveFile
        +#
        +#   Tests a relative path against a list of directories.  Adds one to the score of each base where there is a match.
        +#
        +#   Parameters:
        +#
        +#       relativePath - The relative file name to test.
        +#       possibleBases - An arrayref of bases to test it against.
        +#       possibleBaseScores - An arrayref of scores to adjust.  The score indexes should correspond to the base indexes.
        +#
        +sub ResolveFile #(relativePath, possibleBases, possibleBaseScores)
        +    {
        +    my ($self, $relativePath, $possibleBases, $possibleBaseScores) = @_;
        +
        +    for (my $i = 0; $i < scalar @$possibleBases; $i++)
        +        {
        +        if (-e NaturalDocs::File->JoinPaths($possibleBases->[$i], $relativePath))
        +            {  $possibleBaseScores->[$i]++;  };
        +        };
        +    };
        +
        +
        +#
        +#   Function: LockUserTitleChanges
        +#
        +#   Detects if the user manually changed any file titles, and if so, automatically locks them with <MENU_FILE_NOAUTOTITLE>.
        +#
        +#   Parameters:
        +#
        +#       previousMenuFiles - A hashref of the files from the previous menu state.  The keys are the <FileNames>, and the values are
        +#                                    references to their <NaturalDocs::Menu::Entry> objects.
        +#
        +sub LockUserTitleChanges #(previousMenuFiles)
        +    {
        +    my ($self, $previousMenuFiles) = @_;
        +
        +    my @groupStack = ( $menu );
        +    my $groupEntry;
        +
        +    while (scalar @groupStack)
        +        {
        +        $groupEntry = pop @groupStack;
        +
        +        foreach my $entry (@{$groupEntry->GroupContent()})
        +            {
        +
        +            # If it's an unlocked file entry
        +            if ($entry->Type() == ::MENU_FILE() && ($entry->Flags() & ::MENU_FILE_NOAUTOTITLE()) == 0)
        +                {
        +                my $previousEntry = $previousMenuFiles->{$entry->Target()};
        +
        +                # If the previous entry was also unlocked and the titles are different, the user changed the title.  Automatically lock it.
        +                if (defined $previousEntry && ($previousEntry->Flags() & ::MENU_FILE_NOAUTOTITLE()) == 0 &&
        +                    $entry->Title() ne $previousEntry->Title())
        +                    {
        +                    $entry->SetFlags($entry->Flags() | ::MENU_FILE_NOAUTOTITLE());
        +                    $hasChanged = 1;
        +                    };
        +                }
        +
        +            elsif ($entry->Type() == ::MENU_GROUP())
        +                {
        +                push @groupStack, $entry;
        +                };
        +
        +            };
        +        };
        +    };
        +
        +
        +#
        +#   Function: FlagAutoTitleChanges
        +#
        +#   Finds which files have auto-titles that changed and flags their groups for updating with <MENU_GROUP_UPDATETITLES> and
        +#   <MENU_GROUP_UPDATEORDER>.
        +#
        +sub FlagAutoTitleChanges
        +    {
        +    my ($self) = @_;
        +
        +    my @groupStack = ( $menu );
        +    my $groupEntry;
        +
        +    while (scalar @groupStack)
        +        {
        +        $groupEntry = pop @groupStack;
        +
        +        foreach my $entry (@{$groupEntry->GroupContent()})
        +            {
        +            if ($entry->Type() == ::MENU_FILE() && ($entry->Flags() & ::MENU_FILE_NOAUTOTITLE()) == 0 &&
        +                exists $defaultTitlesChanged{$entry->Target()})
        +                {
        +                $groupEntry->SetFlags($groupEntry->Flags() | ::MENU_GROUP_UPDATETITLES() | ::MENU_GROUP_UPDATEORDER());
        +                $hasChanged = 1;
        +                }
        +            elsif ($entry->Type() == ::MENU_GROUP())
        +                {
        +                push @groupStack, $entry;
        +                };
        +            };
        +        };
        +    };
        +
        +
        +#
        +#   Function: AutoPlaceNewFiles
        +#
        +#   Adds files to the menu that aren't already on it, attempting to guess where they belong.
        +#
        +#   New files are placed after a dummy <MENU_ENDOFORIGINAL> entry so that they don't affect the detected order.  Also, the
        +#   groups they're placed in get <MENU_GROUP_UPDATETITLES>, <MENU_GROUP_UPDATESTRUCTURE>, and
        +#   <MENU_GROUP_UPDATEORDER> flags.
        +#
        +#   Parameters:
        +#
        +#       filesInMenu - An existence hash of all the <FileNames> present in the menu.
        +#
        +sub AutoPlaceNewFiles #(fileInMenu)
        +    {
        +    my ($self, $filesInMenu) = @_;
        +
        +    my $files = NaturalDocs::Project->FilesWithContent();
        +
        +    my $directories;
        +
        +    foreach my $file (keys %$files)
        +        {
        +        if (!exists $filesInMenu->{$file})
        +            {
        +            # This is done on demand because new files shouldn't be added very often, so this will save time.
        +            if (!defined $directories)
        +                {  $directories = $self->MatchDirectoriesAndGroups();  };
        +
        +            my $targetGroup;
        +            my $fileDirectoryString = (NaturalDocs::File->SplitPath($file))[1];
        +
        +            $targetGroup = $directories->{$fileDirectoryString};
        +
        +            if (!defined $targetGroup)
        +                {
        +                # Okay, if there's no exact match, work our way down.
        +
        +                my @fileDirectories = NaturalDocs::File->SplitDirectories($fileDirectoryString);
        +
        +                do
        +                    {
        +                    pop @fileDirectories;
        +                    $targetGroup = $directories->{ NaturalDocs::File->JoinDirectories(@fileDirectories) };
        +                    }
        +                while (!defined $targetGroup && scalar @fileDirectories);
        +
        +                if (!defined $targetGroup)
        +                    {  $targetGroup = $menu;  };
        +                };
        +
        +            $targetGroup->MarkEndOfOriginal();
        +            $targetGroup->PushToGroup( NaturalDocs::Menu::Entry->New(::MENU_FILE(), undef, $file, undef) );
        +
        +            $targetGroup->SetFlags( $targetGroup->Flags() | ::MENU_GROUP_UPDATETITLES() |
        +                                                 ::MENU_GROUP_UPDATESTRUCTURE() | ::MENU_GROUP_UPDATEORDER() );
        +
        +            $hasChanged = 1;
        +            };
        +        };
        +    };
        +
        +
        +#
        +#   Function: MatchDirectoriesAndGroups
        +#
        +#   Determines which groups files in certain directories should be placed in.
        +#
        +#   Returns:
        +#
        +#       A hashref.  The keys are the directory names, and the values are references to the group objects they should be placed in.
        +#
        +#       This only repreesents directories that currently have files on the menu, so it shouldn't be assumed that every possible
        +#       directory will exist.  To match, you should first try to match the directory, and then strip the deepest directories one by
        +#       one until there's a match or there's none left.  If there's none left, use the root group <menu>.
        +#
        +sub MatchDirectoriesAndGroups
        +    {
        +    my ($self) = @_;
        +
        +    # The keys are the directory names, and the values are hashrefs.  For the hashrefs, the keys are the group objects, and the
        +    # values are the number of files in them from that directory.  In other words,
        +    # $directories{$directory}->{$groupEntry} = $count;
        +    my %directories;
        +    # Note that we need to use Tie::RefHash to use references as keys.  Won't work otherwise.  Also, not every Perl distro comes
        +    # with Tie::RefHash::Nestable, so we can't rely on that.
        +
        +    # We're using an index instead of pushing and popping because we want to save a list of the groups in the order they appear
        +    # to break ties.
        +    my @groups = ( $menu );
        +    my $groupIndex = 0;
        +
        +
        +    # Count the number of files in each group that appear in each directory.
        +
        +    while ($groupIndex < scalar @groups)
        +        {
        +        my $groupEntry = $groups[$groupIndex];
        +
        +        foreach my $entry (@{$groupEntry->GroupContent()})
        +            {
        +            if ($entry->Type() == ::MENU_GROUP())
        +                {
        +                push @groups, $entry;
        +                }
        +            elsif ($entry->Type() == ::MENU_FILE())
        +                {
        +                my $directory = (NaturalDocs::File->SplitPath($entry->Target()))[1];
        +
        +                if (!exists $directories{$directory})
        +                    {
        +                    my $subHash = { };
        +                    tie %$subHash, 'Tie::RefHash';
        +                    $directories{$directory} = $subHash;
        +                    };
        +
        +                if (!exists $directories{$directory}->{$groupEntry})
        +                    {  $directories{$directory}->{$groupEntry} = 1;  }
        +                else
        +                    {  $directories{$directory}->{$groupEntry}++;  };
        +                };
        +            };
        +
        +        $groupIndex++;
        +        };
        +
        +
        +    # Determine which group goes with which directory, breaking ties by using whichever group appears first.
        +
        +    my $finalDirectories = { };
        +
        +    while (my ($directory, $directoryGroups) = each %directories)
        +        {
        +        my $bestGroup;
        +        my $bestCount = 0;
        +        my %tiedGroups;  # Existence hash
        +
        +        while (my ($group, $count) = each %$directoryGroups)
        +            {
        +            if ($count > $bestCount)
        +                {
        +                $bestGroup = $group;
        +                $bestCount = $count;
        +                %tiedGroups = ( );
        +                }
        +            elsif ($count == $bestCount)
        +                {
        +                $tiedGroups{$group} = 1;
        +                };
        +            };
        +
        +        # Break ties.
        +        if (scalar keys %tiedGroups)
        +            {
        +            $tiedGroups{$bestGroup} = 1;
        +
        +            foreach my $group (@groups)
        +                {
        +                if (exists $tiedGroups{$group})
        +                    {
        +                    $bestGroup = $group;
        +                    last;
        +                    };
        +                };
        +            };
        +
        +
        +        $finalDirectories->{$directory} = $bestGroup;
        +        };
        +
        +
        +    return $finalDirectories;
        +    };
        +
        +
        +#
        +#   Function: RemoveDeadFiles
        +#
        +#   Removes files from the menu that no longer exist or no longer have Natural Docs content.
        +#
        +#   Returns:
        +#
        +#       The number of file entries removed.
        +#
        +sub RemoveDeadFiles
        +    {
        +    my ($self) = @_;
        +
        +    my @groupStack = ( $menu );
        +    my $numberRemoved = 0;
        +
        +    my $filesWithContent = NaturalDocs::Project->FilesWithContent();
        +
        +    while (scalar @groupStack)
        +        {
        +        my $groupEntry = pop @groupStack;
        +        my $groupContent = $groupEntry->GroupContent();
        +
        +        my $index = 0;
        +        while ($index < scalar @$groupContent)
        +            {
        +            if ($groupContent->[$index]->Type() == ::MENU_FILE() &&
        +                !exists $filesWithContent->{ $groupContent->[$index]->Target() } )
        +                {
        +                $groupEntry->DeleteFromGroup($index);
        +
        +                $groupEntry->SetFlags( $groupEntry->Flags() | ::MENU_GROUP_UPDATETITLES() |
        +                                                   ::MENU_GROUP_UPDATESTRUCTURE() );
        +                $numberRemoved++;
        +                $hasChanged = 1;
        +                }
        +
        +            elsif ($groupContent->[$index]->Type() == ::MENU_GROUP())
        +                {
        +                push @groupStack, $groupContent->[$index];
        +                $index++;
        +                }
        +
        +            else
        +                {  $index++;  };
        +            };
        +        };
        +
        +    return $numberRemoved;
        +    };
        +
        +
        +#
        +#   Function: BanAndUnbanIndexes
        +#
        +#   Adjusts the indexes that are banned depending on if the user added or deleted any.
        +#
        +sub BanAndUnbanIndexes
        +    {
        +    my ($self) = @_;
        +
        +    # Unban any indexes that are present, meaning the user added them back manually without deleting the ban.
        +    foreach my $index (keys %indexes)
        +        {  delete $bannedIndexes{$index};  };
        +
        +    # Ban any indexes that were in the previous menu but not the current, meaning the user manually deleted them.  However,
        +    # don't do this if the topic isn't indexable, meaning they changed the topic type rather than the menu.
        +    foreach my $index (keys %previousIndexes)
        +        {
        +        if (!exists $indexes{$index} && NaturalDocs::Topics->TypeInfo($index)->Index())
        +            {  $bannedIndexes{$index} = 1;  };
        +        };
        +    };
        +
        +
        +#
        +#   Function: AddAndRemoveIndexes
        +#
        +#   Automatically adds and removes index entries on the menu as necessary.  <DetectIndexGroups()> should be called
        +#   beforehand.
        +#
        +sub AddAndRemoveIndexes
        +    {
        +    my ($self) = @_;
        +
        +    my %validIndexes;
        +    my @allIndexes = NaturalDocs::Topics->AllIndexableTypes();
        +
        +    foreach my $index (@allIndexes)
        +        {
        +        # Strip the banned indexes first so it's potentially less work for SymbolTable.
        +        if (!exists $bannedIndexes{$index})
        +            {  $validIndexes{$index} = 1;  };
        +        };
        +
        +    %validIndexes = %{NaturalDocs::SymbolTable->HasIndexes(\%validIndexes)};
        +
        +
        +    # Delete dead indexes and find the best index group.
        +
        +    my @groupStack = ( $menu );
        +
        +    my $bestIndexGroup;
        +    my $bestIndexCount = 0;
        +
        +    while (scalar @groupStack)
        +        {
        +        my $currentGroup = pop @groupStack;
        +        my $index = 0;
        +
        +        my $currentIndexCount = 0;
        +
        +        while ($index < scalar @{$currentGroup->GroupContent()})
        +            {
        +            my $entry = $currentGroup->GroupContent()->[$index];
        +
        +            if ($entry->Type() == ::MENU_INDEX())
        +                {
        +                $currentIndexCount++;
        +
        +                if ($currentIndexCount > $bestIndexCount)
        +                    {
        +                    $bestIndexCount = $currentIndexCount;
        +                    $bestIndexGroup = $currentGroup;
        +                    };
        +
        +                # Remove it if it's dead.
        +
        +                if (!exists $validIndexes{ $entry->Target() })
        +                    {
        +                    $currentGroup->DeleteFromGroup($index);
        +                    delete $indexes{ $entry->Target() };
        +                    $hasChanged = 1;
        +                    }
        +                else
        +                    {  $index++;  };
        +                }
        +
        +            else
        +                {
        +                if ($entry->Type() == ::MENU_GROUP())
        +                    {  push @groupStack, $entry;  };
        +
        +                $index++;
        +                };
        +            };
        +        };
        +
        +
        +    # Now add the new indexes.
        +
        +    foreach my $index (keys %indexes)
        +        {  delete $validIndexes{$index};  };
        +
        +    if (scalar keys %validIndexes)
        +        {
        +        # Add a group if there are no indexes at all.
        +
        +        if ($bestIndexCount == 0)
        +            {
        +            $menu->MarkEndOfOriginal();
        +
        +            my $newIndexGroup = NaturalDocs::Menu::Entry->New(::MENU_GROUP(), 'Index', undef,
        +                                                                                              ::MENU_GROUP_ISINDEXGROUP());
        +            $menu->PushToGroup($newIndexGroup);
        +
        +            $bestIndexGroup = $newIndexGroup;
        +            $menu->SetFlags( $menu->Flags() | ::MENU_GROUP_UPDATEORDER() | ::MENU_GROUP_UPDATESTRUCTURE() );
        +            };
        +
        +        # Add the new indexes.
        +
        +        $bestIndexGroup->MarkEndOfOriginal();
        +        my $isIndexGroup = $bestIndexGroup->Flags() & ::MENU_GROUP_ISINDEXGROUP();
        +
        +        foreach my $index (keys %validIndexes)
        +            {
        +            my $title;
        +
        +            if ($isIndexGroup)
        +                {
        +                if ($index eq ::TOPIC_GENERAL())
        +                    {  $title = 'Everything';  }
        +                else
        +                    {  $title = NaturalDocs::Topics->NameOfType($index, 1);  };
        +                }
        +            else
        +                {
        +                $title = NaturalDocs::Topics->NameOfType($index) . ' Index';
        +                };
        +
        +            my $newEntry = NaturalDocs::Menu::Entry->New(::MENU_INDEX(), $title, $index, undef);
        +            $bestIndexGroup->PushToGroup($newEntry);
        +
        +            $indexes{$index} = 1;
        +            };
        +
        +        $bestIndexGroup->SetFlags( $bestIndexGroup->Flags() |
        +                                                   ::MENU_GROUP_UPDATEORDER() | ::MENU_GROUP_UPDATESTRUCTURE() );
        +        $hasChanged = 1;
        +        };
        +    };
        +
        +
        +#
        +#   Function: RemoveDeadGroups
        +#
        +#   Removes groups with less than two entries.  It will always remove empty groups, and it will remove groups with one entry if it
        +#   has the <MENU_GROUP_UPDATESTRUCTURE> flag.
        +#
        +sub RemoveDeadGroups
        +    {
        +    my ($self) = @_;
        +
        +    my $index = 0;
        +
        +    while ($index < scalar @{$menu->GroupContent()})
        +        {
        +        my $entry = $menu->GroupContent()->[$index];
        +
        +        if ($entry->Type() == ::MENU_GROUP())
        +            {
        +            my $removed = $self->RemoveIfDead($entry, $menu, $index);
        +
        +            if (!$removed)
        +                {  $index++;  };
        +            }
        +        else
        +            {  $index++;  };
        +        };
        +    };
        +
        +
        +#
        +#   Function: RemoveIfDead
        +#
        +#   Checks a group and all its sub-groups for life and remove any that are dead.  Empty groups are removed, and groups with one
        +#   entry and the <MENU_GROUP_UPDATESTRUCTURE> flag have their entry moved to the parent group.
        +#
        +#   Parameters:
        +#
        +#       groupEntry - The group to check for possible deletion.
        +#       parentGroupEntry - The parent group to move the single entry to if necessary.
        +#       parentGroupIndex - The index of the group in its parent.
        +#
        +#   Returns:
        +#
        +#       Whether the group was removed or not.
        +#
        +sub RemoveIfDead #(groupEntry, parentGroupEntry, parentGroupIndex)
        +    {
        +    my ($self, $groupEntry, $parentGroupEntry, $parentGroupIndex) = @_;
        +
        +
        +    # Do all sub-groups first, since their deletions will affect our UPDATESTRUCTURE flag and content count.
        +
        +    my $index = 0;
        +    while ($index < scalar @{$groupEntry->GroupContent()})
        +        {
        +        my $entry = $groupEntry->GroupContent()->[$index];
        +
        +        if ($entry->Type() == ::MENU_GROUP())
        +            {
        +            my $removed = $self->RemoveIfDead($entry, $groupEntry, $index);
        +
        +            if (!$removed)
        +                {  $index++;  };
        +            }
        +        else
        +            {  $index++;  };
        +        };
        +
        +
        +    # Now check ourself.
        +
        +    my $count = scalar @{$groupEntry->GroupContent()};
        +    if ($groupEntry->Flags() & ::MENU_GROUP_HASENDOFORIGINAL())
        +        {  $count--;  };
        +
        +    if ($count == 0)
        +        {
        +        $parentGroupEntry->DeleteFromGroup($parentGroupIndex);
        +
        +        $parentGroupEntry->SetFlags( $parentGroupEntry->Flags() | ::MENU_GROUP_UPDATESTRUCTURE() );
        +
        +        $hasChanged = 1;
        +        return 1;
        +        }
        +    elsif ($count == 1 && ($groupEntry->Flags() & ::MENU_GROUP_UPDATESTRUCTURE()) )
        +        {
        +        my $onlyEntry = $groupEntry->GroupContent()->[0];
        +        if ($onlyEntry->Type() == ::MENU_ENDOFORIGINAL())
        +            {  $onlyEntry = $groupEntry->GroupContent()->[1];  };
        +
        +        $parentGroupEntry->DeleteFromGroup($parentGroupIndex);
        +
        +        $parentGroupEntry->MarkEndOfOriginal();
        +        $parentGroupEntry->PushToGroup($onlyEntry);
        +
        +        $parentGroupEntry->SetFlags( $parentGroupEntry->Flags() | ::MENU_GROUP_UPDATETITLES() |
        +                                                     ::MENU_GROUP_UPDATEORDER() | ::MENU_GROUP_UPDATESTRUCTURE() );
        +
        +        $hasChanged = 1;
        +        return 1;
        +        }
        +    else
        +        {  return undef;  };
        +    };
        +
        +
        +#
        +#   Function: DetectIndexGroups
        +#
        +#   Finds groups that are primarily used for indexes and gives them the <MENU_GROUP_ISINDEXGROUP> flag.
        +#
        +sub DetectIndexGroups
        +    {
        +    my ($self) = @_;
        +
        +    my @groupStack = ( $menu );
        +
        +    while (scalar @groupStack)
        +        {
        +        my $groupEntry = pop @groupStack;
        +
        +        my $isIndexGroup = -1;  # -1: Can't tell yet.  0: Can't be an index group.  1: Is an index group so far.
        +
        +        foreach my $entry (@{$groupEntry->GroupContent()})
        +            {
        +            if ($entry->Type() == ::MENU_INDEX())
        +                {
        +                if ($isIndexGroup == -1)
        +                    {  $isIndexGroup = 1;  };
        +                }
        +
        +            # Text is tolerated, but it still needs at least one index entry.
        +            elsif ($entry->Type() != ::MENU_TEXT())
        +                {
        +                $isIndexGroup = 0;
        +
        +                if ($entry->Type() == ::MENU_GROUP())
        +                    {  push @groupStack, $entry;  };
        +                };
        +            };
        +
        +        if ($isIndexGroup == 1)
        +            {
        +            $groupEntry->SetFlags( $groupEntry->Flags() | ::MENU_GROUP_ISINDEXGROUP() );
        +            };
        +        };
        +    };
        +
        +
        +#
        +#   Function: CreateDirectorySubGroups
        +#
        +#   Where possible, creates sub-groups based on directories for any long groups that have <MENU_GROUP_UPDATESTRUCTURE>
        +#   set.  Clears the flag afterwards on groups that are short enough to not need any more sub-groups, but leaves it for the rest.
        +#
        +sub CreateDirectorySubGroups
        +    {
        +    my ($self) = @_;
        +
        +    my @groupStack = ( $menu );
        +
        +    foreach my $groupEntry (@groupStack)
        +        {
        +        if ($groupEntry->Flags() & ::MENU_GROUP_UPDATESTRUCTURE())
        +            {
        +            # Count the number of files.
        +
        +            my $fileCount = 0;
        +
        +            foreach my $entry (@{$groupEntry->GroupContent()})
        +                {
        +                if ($entry->Type() == ::MENU_FILE())
        +                    {  $fileCount++;  };
        +                };
        +
        +
        +            if ($fileCount > MAXFILESINGROUP)
        +                {
        +                my @sharedDirectories = $self->SharedDirectoriesOf($groupEntry);
        +                my $unsharedIndex = scalar @sharedDirectories;
        +
        +                # The keys are the first directory entries after the shared ones, and the values are the number of files that are in
        +                # that directory.  Files that don't have subdirectories after the shared directories aren't included because they shouldn't
        +                # be put in a subgroup.
        +                my %directoryCounts;
        +
        +                foreach my $entry (@{$groupEntry->GroupContent()})
        +                    {
        +                    if ($entry->Type() == ::MENU_FILE())
        +                        {
        +                        my @entryDirectories = NaturalDocs::File->SplitDirectories( (NaturalDocs::File->SplitPath($entry->Target()))[1] );
        +
        +                        if (scalar @entryDirectories > $unsharedIndex)
        +                            {
        +                            my $unsharedDirectory = $entryDirectories[$unsharedIndex];
        +
        +                            if (!exists $directoryCounts{$unsharedDirectory})
        +                                {  $directoryCounts{$unsharedDirectory} = 1;  }
        +                            else
        +                                {  $directoryCounts{$unsharedDirectory}++;  };
        +                            };
        +                        };
        +                    };
        +
        +
        +                # Now create the subgroups.
        +
        +                # The keys are the first directory entries after the shared ones, and the values are the groups for those files to be
        +                # put in.  There will only be entries for the groups with at least MINFILESINNEWGROUP files.
        +                my %directoryGroups;
        +
        +                while (my ($directory, $count) = each %directoryCounts)
        +                    {
        +                    if ($count >= MINFILESINNEWGROUP)
        +                        {
        +                        my $newGroup = NaturalDocs::Menu::Entry->New( ::MENU_GROUP(), ucfirst($directory), undef,
        +                                                                                                   ::MENU_GROUP_UPDATETITLES() |
        +                                                                                                   ::MENU_GROUP_UPDATEORDER() );
        +
        +                        if ($count > MAXFILESINGROUP)
        +                            {  $newGroup->SetFlags( $newGroup->Flags() | ::MENU_GROUP_UPDATESTRUCTURE());  };
        +
        +                        $groupEntry->MarkEndOfOriginal();
        +                        push @{$groupEntry->GroupContent()}, $newGroup;
        +
        +                        $directoryGroups{$directory} = $newGroup;
        +                        $fileCount -= $count;
        +                        };
        +                    };
        +
        +
        +                # Now fill the subgroups.
        +
        +                if (scalar keys %directoryGroups)
        +                    {
        +                    my $afterOriginal;
        +                    my $index = 0;
        +
        +                    while ($index < scalar @{$groupEntry->GroupContent()})
        +                        {
        +                        my $entry = $groupEntry->GroupContent()->[$index];
        +
        +                        if ($entry->Type() == ::MENU_FILE())
        +                            {
        +                            my @entryDirectories =
        +                                NaturalDocs::File->SplitDirectories( (NaturalDocs::File->SplitPath($entry->Target()))[1] );
        +
        +                            my $unsharedDirectory = $entryDirectories[$unsharedIndex];
        +
        +                            if (exists $directoryGroups{$unsharedDirectory})
        +                                {
        +                                my $targetGroup = $directoryGroups{$unsharedDirectory};
        +
        +                                if ($afterOriginal)
        +                                    {  $targetGroup->MarkEndOfOriginal();  };
        +                                $targetGroup->PushToGroup($entry);
        +
        +                                $groupEntry->DeleteFromGroup($index);
        +                                }
        +                            else
        +                                {  $index++;  };
        +                            }
        +
        +                        elsif ($entry->Type() == ::MENU_ENDOFORIGINAL())
        +                            {
        +                            $afterOriginal = 1;
        +                            $index++;
        +                            }
        +
        +                        elsif ($entry->Type() == ::MENU_GROUP())
        +                            {
        +                            # See if we need to relocate this group.
        +
        +                            my @groupDirectories = $self->SharedDirectoriesOf($entry);
        +
        +                            # The group's shared directories must be at least two levels deeper than the current.  If the first level deeper
        +                            # is a new group, move it there because it's a subdirectory of that one.
        +                            if (scalar @groupDirectories - scalar @sharedDirectories >= 2)
        +                                {
        +                                my $unsharedDirectory = $groupDirectories[$unsharedIndex];
        +
        +                                if (exists $directoryGroups{$unsharedDirectory} &&
        +                                    $directoryGroups{$unsharedDirectory} != $entry)
        +                                    {
        +                                    my $targetGroup = $directoryGroups{$unsharedDirectory};
        +
        +                                    if ($afterOriginal)
        +                                        {  $targetGroup->MarkEndOfOriginal();  };
        +                                    $targetGroup->PushToGroup($entry);
        +
        +                                    $groupEntry->DeleteFromGroup($index);
        +
        +                                    # We need to retitle the group if it has the name of the unshared directory.
        +
        +                                    my $oldTitle = $entry->Title();
        +                                    $oldTitle =~ s/ +//g;
        +                                    $unsharedDirectory =~ s/ +//g;
        +
        +                                    if (lc($oldTitle) eq lc($unsharedDirectory))
        +                                        {
        +                                        $entry->SetTitle($groupDirectories[$unsharedIndex + 1]);
        +                                        };
        +                                    }
        +                                else
        +                                    {  $index++;  };
        +                                }
        +                            else
        +                                {  $index++;  };
        +                            }
        +
        +                        else
        +                            {  $index++;  };
        +                        };
        +
        +                    $hasChanged = 1;
        +
        +                    if ($fileCount <= MAXFILESINGROUP)
        +                        {  $groupEntry->SetFlags( $groupEntry->Flags() & ~::MENU_GROUP_UPDATESTRUCTURE() );  };
        +
        +                    $groupEntry->SetFlags( $groupEntry->Flags() | ::MENU_GROUP_UPDATETITLES() |
        +                                                                                         ::MENU_GROUP_UPDATEORDER() );
        +                    };
        +
        +                };  # If group has >MAXFILESINGROUP files
        +            };  # If group has UPDATESTRUCTURE
        +
        +
        +        # Okay, now go through all the subgroups.  We do this after the above so that newly created groups can get subgrouped
        +        # further.
        +
        +        foreach my $entry (@{$groupEntry->GroupContent()})
        +            {
        +            if ($entry->Type() == ::MENU_GROUP())
        +                {  push @groupStack, $entry;  };
        +            };
        +
        +        };  # For each group entry
        +    };
        +
        +
        +#
        +#   Function: DetectOrder
        +#
        +#   Detects the order of the entries in all groups that have the <MENU_GROUP_UPDATEORDER> flag set.  Will set one of the
        +#   <MENU_GROUP_FILESSORTED>, <MENU_GROUP_FILESANDGROUPSSORTED>, <MENU_GROUP_EVERYTHINGSORTED>, or
        +#   <MENU_GROUP_UNSORTED> flags.  It will always go for the most comprehensive sort possible, so if a group only has one
        +#   entry, it will be flagged as <MENU_GROUP_EVERYTHINGSORTED>.
        +#
        +#   <DetectIndexGroups()> should be called beforehand, as the <MENU_GROUP_ISINDEXGROUP> flag affects how the order is
        +#   detected.
        +#
        +#   The sort detection stops if it reaches a <MENU_ENDOFORIGINAL> entry, so new entries can be added to the end while still
        +#   allowing the original sort to be detected.
        +#
        +#   Parameters:
        +#
        +#       forceAll - If set, the order will be detected for all groups regardless of whether <MENU_GROUP_UPDATEORDER> is set.
        +#
        +sub DetectOrder #(forceAll)
        +    {
        +    my ($self, $forceAll) = @_;
        +    my @groupStack = ( $menu );
        +
        +    while (scalar @groupStack)
        +        {
        +        my $groupEntry = pop @groupStack;
        +        my $index = 0;
        +
        +
        +        # First detect the sort.
        +
        +        if ($forceAll || ($groupEntry->Flags() & ::MENU_GROUP_UPDATEORDER()) )
        +            {
        +            my $order = ::MENU_GROUP_EVERYTHINGSORTED();
        +
        +            my $lastFile;
        +            my $lastFileOrGroup;
        +
        +            while ($index < scalar @{$groupEntry->GroupContent()} &&
        +                     $groupEntry->GroupContent()->[$index]->Type() != ::MENU_ENDOFORIGINAL() &&
        +                     $order != ::MENU_GROUP_UNSORTED())
        +                {
        +                my $entry = $groupEntry->GroupContent()->[$index];
        +
        +
        +                # Ignore the last entry if it's an index group.  We don't want it to affect the sort.
        +
        +                if ($index + 1 == scalar @{$groupEntry->GroupContent()} &&
        +                    $entry->Type() == ::MENU_GROUP() && ($entry->Flags() & ::MENU_GROUP_ISINDEXGROUP()) )
        +                    {
        +                    # Ignore.
        +
        +                    # This is an awkward code construct, basically working towards an else instead of using an if, but the code just gets
        +                    # too hard to read otherwise.  The compiled code should work out to roughly the same thing anyway.
        +                    }
        +
        +
        +                # Ignore the first entry if it's the general index in an index group.  We don't want it to affect the sort.
        +
        +                elsif ($index == 0 && ($groupEntry->Flags() & ::MENU_GROUP_ISINDEXGROUP()) &&
        +                        $entry->Type() == ::MENU_INDEX() && $entry->Target() eq ::TOPIC_GENERAL() )
        +                    {
        +                    # Ignore.
        +                    }
        +
        +
        +                # Degenerate the sort.
        +
        +                else
        +                    {
        +
        +                    if ($order == ::MENU_GROUP_EVERYTHINGSORTED() && $index > 0 &&
        +                        ::StringCompare($entry->Title(), $groupEntry->GroupContent()->[$index - 1]->Title()) < 0)
        +                        {  $order = ::MENU_GROUP_FILESANDGROUPSSORTED();  };
        +
        +                    if ($order == ::MENU_GROUP_FILESANDGROUPSSORTED() &&
        +                        ($entry->Type() == ::MENU_FILE() || $entry->Type() == ::MENU_GROUP()) &&
        +                        defined $lastFileOrGroup && ::StringCompare($entry->Title(), $lastFileOrGroup->Title()) < 0)
        +                        {  $order = ::MENU_GROUP_FILESSORTED();  };
        +
        +                    if ($order == ::MENU_GROUP_FILESSORTED() &&
        +                        $entry->Type() == ::MENU_FILE() && defined $lastFile &&
        +                        ::StringCompare($entry->Title(), $lastFile->Title()) < 0)
        +                        {  $order = ::MENU_GROUP_UNSORTED();  };
        +
        +                    };
        +
        +
        +                # Set the lastX parameters for comparison and add sub-groups to the stack.
        +
        +                if ($entry->Type() == ::MENU_FILE())
        +                    {
        +                    $lastFile = $entry;
        +                    $lastFileOrGroup = $entry;
        +                    }
        +                elsif ($entry->Type() == ::MENU_GROUP())
        +                    {
        +                    $lastFileOrGroup = $entry;
        +                    push @groupStack, $entry;
        +                    };
        +
        +                $index++;
        +                };
        +
        +            $groupEntry->SetFlags($groupEntry->Flags() | $order);
        +            };
        +
        +
        +        # Find any subgroups in the remaining entries.
        +
        +        while ($index < scalar @{$groupEntry->GroupContent()})
        +            {
        +            my $entry = $groupEntry->GroupContent()->[$index];
        +
        +            if ($entry->Type() == ::MENU_GROUP())
        +                {  push @groupStack, $entry;  };
        +
        +            $index++;
        +            };
        +        };
        +    };
        +
        +
        +#
        +#   Function: GenerateAutoFileTitles
        +#
        +#   Creates titles for the unlocked file entries in all groups that have the <MENU_GROUP_UPDATETITLES> flag set.  It clears the
        +#   flag afterwards so it can be used efficiently for multiple sweeps.
        +#
        +#   Parameters:
        +#
        +#       forceAll - If set, forces all the unlocked file titles to update regardless of whether the group has the
        +#                     <MENU_GROUP_UPDATETITLES> flag set.
        +#
        +sub GenerateAutoFileTitles #(forceAll)
        +    {
        +    my ($self, $forceAll) = @_;
        +
        +    my @groupStack = ( $menu );
        +
        +    while (scalar @groupStack)
        +        {
        +        my $groupEntry = pop @groupStack;
        +
        +        if ($forceAll || ($groupEntry->Flags() & ::MENU_GROUP_UPDATETITLES()) )
        +            {
        +            # Find common prefixes and paths to strip from the default menu titles.
        +
        +            my @sharedDirectories = $self->SharedDirectoriesOf($groupEntry);
        +            my $noSharedDirectories = (scalar @sharedDirectories == 0);
        +
        +            my @sharedPrefixes;
        +            my $noSharedPrefixes;
        +
        +            foreach my $entry (@{$groupEntry->GroupContent()})
        +                {
        +                if ($entry->Type() == ::MENU_FILE())
        +                    {
        +                    # Find the common prefixes among all file entries that are unlocked and don't use the file name as their default title.
        +
        +                    my $defaultTitle = NaturalDocs::Project->DefaultMenuTitleOf($entry->Target());
        +
        +                    if (!$noSharedPrefixes && ($entry->Flags() & ::MENU_FILE_NOAUTOTITLE()) == 0 &&
        +                        $defaultTitle ne $entry->Target())
        +                        {
        +                        # If the filename is part of the title, separate it off so no part of it gets included as a common prefix.  This would
        +                        # happen if there's a group with only one file in it (Project.h => h) or only files that differ by extension
        +                        # (Project.h, Project.cpp => h, cpp) and people labeled them manually (// File: Project.h).
        +                        my $filename = (NaturalDocs::File->SplitPath($entry->Target()))[2];
        +                        my $filenamePart;
        +
        +                        if ( length $defaultTitle >= length $filename &&
        +                             lc(substr($defaultTitle, 0 - length($filename))) eq lc($filename) )
        +                            {
        +                            $filenamePart = substr($defaultTitle, 0 - length($filename));
        +                            $defaultTitle = substr($defaultTitle, 0, 0 - length($filename));
        +                            };
        +
        +
        +                        my @entryPrefixes = split(/(\.|::|->)/, $defaultTitle);
        +
        +                        # Remove potential leading undef/empty string.
        +                        if (!length $entryPrefixes[0])
        +                            {  shift @entryPrefixes;  };
        +
        +                        # Remove last entry.  Something has to exist for the title.  If we already separated off the filename, that will be
        +                        # it instead.
        +                        if (!$filenamePart)
        +                            {  pop @entryPrefixes;  };
        +
        +                        if (!scalar @entryPrefixes)
        +                            {  $noSharedPrefixes = 1;  }
        +                        elsif (!scalar @sharedPrefixes)
        +                            {  @sharedPrefixes = @entryPrefixes;  }
        +                        elsif ($entryPrefixes[0] ne $sharedPrefixes[0])
        +                            {  $noSharedPrefixes = 1;  }
        +
        +                        # If both arrays have entries, and the first is shared...
        +                        else
        +                            {
        +                            my $index = 1;
        +
        +                            while ($index < scalar @sharedPrefixes && $entryPrefixes[$index] eq $sharedPrefixes[$index])
        +                                {  $index++;  };
        +
        +                            if ($index < scalar @sharedPrefixes)
        +                                {  splice(@sharedPrefixes, $index);  };
        +                            };
        +                        };
        +
        +                    };  # if entry is MENU_FILE
        +                };  # foreach entry in group content.
        +
        +
        +            if (!scalar @sharedPrefixes)
        +                {  $noSharedPrefixes = 1;  };
        +
        +
        +            # Update all the menu titles of unlocked file entries.
        +
        +            foreach my $entry (@{$groupEntry->GroupContent()})
        +                {
        +                if ($entry->Type() == ::MENU_FILE() && ($entry->Flags() & ::MENU_FILE_NOAUTOTITLE()) == 0)
        +                    {
        +                    my $title = NaturalDocs::Project->DefaultMenuTitleOf($entry->Target());
        +
        +                    if ($title eq $entry->Target())
        +                        {
        +                        my ($volume, $directoryString, $file) = NaturalDocs::File->SplitPath($entry->Target());
        +                        my @directories = NaturalDocs::File->SplitDirectories($directoryString);
        +
        +                        if (!$noSharedDirectories)
        +                            {  splice(@directories, 0, scalar @sharedDirectories);  };
        +
        +                        # directory\...\directory\file.ext
        +
        +                        if (scalar @directories > 2)
        +                            {  @directories = ( $directories[0], '...', $directories[-1] );  };
        +
        +                        $directoryString = NaturalDocs::File->JoinDirectories(@directories);
        +                        $title = NaturalDocs::File->JoinPaths($directoryString, $file);
        +                        }
        +
        +                    else
        +                        {
        +                        my $filename = (NaturalDocs::File->SplitPath($entry->Target()))[2];
        +                        my $filenamePart;
        +
        +                        if ( length $title >= length $filename &&
        +                             lc(substr($title, 0 - length($filename))) eq lc($filename) )
        +                            {
        +                            $filenamePart = substr($title, 0 - length($filename));
        +                            $title = substr($title, 0, 0 - length($filename));
        +                            };
        +
        +                        my @segments = split(/(::|\.|->)/, $title);
        +                        if (!length $segments[0])
        +                            {  shift @segments;  };
        +
        +                        if ($filenamePart)
        +                            {  push @segments, $filenamePart;  };
        +
        +                        if (!$noSharedPrefixes)
        +                            {  splice(@segments, 0, scalar @sharedPrefixes);  };
        +
        +                        # package...package::target
        +
        +                        if (scalar @segments > 5)
        +                            {  splice(@segments, 1, scalar @segments - 4, '...');  };
        +
        +                        $title = join('', @segments);
        +                        };
        +
        +                    $entry->SetTitle($title);
        +                    };  # If entry is an unlocked file
        +                };  # Foreach entry
        +
        +            $groupEntry->SetFlags( $groupEntry->Flags() & ~::MENU_GROUP_UPDATETITLES() );
        +
        +            };  # If updating group titles
        +
        +        # Now find any subgroups.
        +        foreach my $entry (@{$groupEntry->GroupContent()})
        +            {
        +            if ($entry->Type() == ::MENU_GROUP())
        +                {  push @groupStack, $entry;  };
        +            };
        +        };
        +
        +    };
        +
        +
        +#
        +#   Function: ResortGroups
        +#
        +#   Resorts all groups that have <MENU_GROUP_UPDATEORDER> set.  Assumes <DetectOrder()> and <GenerateAutoFileTitles()>
        +#   have already been called.  Will clear the flag and any <MENU_ENDOFORIGINAL> entries on reordered groups.
        +#
        +#   Parameters:
        +#
        +#       forceAll - If set, resorts all groups regardless of whether <MENU_GROUP_UPDATEORDER> is set.
        +#
        +sub ResortGroups #(forceAll)
        +    {
        +    my ($self, $forceAll) = @_;
        +    my @groupStack = ( $menu );
        +
        +    while (scalar @groupStack)
        +        {
        +        my $groupEntry = pop @groupStack;
        +
        +        if ($forceAll || ($groupEntry->Flags() & ::MENU_GROUP_UPDATEORDER()) )
        +            {
        +            my $newEntriesIndex;
        +
        +
        +            # Strip the ENDOFORIGINAL.
        +
        +            if ($groupEntry->Flags() & ::MENU_GROUP_HASENDOFORIGINAL())
        +                {
        +                $newEntriesIndex = 0;
        +
        +                while ($newEntriesIndex < scalar @{$groupEntry->GroupContent()} &&
        +                         $groupEntry->GroupContent()->[$newEntriesIndex]->Type() != ::MENU_ENDOFORIGINAL() )
        +                    {  $newEntriesIndex++;  };
        +
        +                $groupEntry->DeleteFromGroup($newEntriesIndex);
        +
        +                $groupEntry->SetFlags( $groupEntry->Flags() & ~::MENU_GROUP_HASENDOFORIGINAL() );
        +                }
        +            else
        +                {  $newEntriesIndex = -1;  };
        +
        +
        +            # Strip the exceptions.
        +
        +            my $trailingIndexGroup;
        +            my $leadingGeneralIndex;
        +
        +            if ( ($groupEntry->Flags() & ::MENU_GROUP_ISINDEXGROUP()) &&
        +                 $groupEntry->GroupContent()->[0]->Type() == ::MENU_INDEX() &&
        +                 $groupEntry->GroupContent()->[0]->Target() eq ::TOPIC_GENERAL() )
        +                {
        +                $leadingGeneralIndex = shift @{$groupEntry->GroupContent()};
        +                if ($newEntriesIndex != -1)
        +                    {  $newEntriesIndex--;  };
        +                }
        +
        +            elsif (scalar @{$groupEntry->GroupContent()} && $newEntriesIndex != 0)
        +                {
        +                my $lastIndex;
        +
        +                if ($newEntriesIndex != -1)
        +                    {  $lastIndex = $newEntriesIndex - 1;  }
        +                else
        +                    {  $lastIndex = scalar @{$groupEntry->GroupContent()} - 1;  };
        +
        +                if ($groupEntry->GroupContent()->[$lastIndex]->Type() == ::MENU_GROUP() &&
        +                    ( $groupEntry->GroupContent()->[$lastIndex]->Flags() & ::MENU_GROUP_ISINDEXGROUP() ) )
        +                    {
        +                    $trailingIndexGroup = $groupEntry->GroupContent()->[$lastIndex];
        +                    $groupEntry->DeleteFromGroup($lastIndex);
        +
        +                    if ($newEntriesIndex != -1)
        +                        {  $newEntriesIndex++;  };
        +                    };
        +                };
        +
        +
        +            # If there weren't already exceptions, strip them from the new entries.
        +
        +            if ( (!defined $trailingIndexGroup || !defined $leadingGeneralIndex) && $newEntriesIndex != -1)
        +                {
        +                my $index = $newEntriesIndex;
        +
        +                while ($index < scalar @{$groupEntry->GroupContent()})
        +                    {
        +                    my $entry = $groupEntry->GroupContent()->[$index];
        +
        +                    if (!defined $trailingIndexGroup &&
        +                        $entry->Type() == ::MENU_GROUP() && ($entry->Flags() & ::MENU_GROUP_ISINDEXGROUP()) )
        +                        {
        +                        $trailingIndexGroup = $entry;
        +                        $groupEntry->DeleteFromGroup($index);
        +                        }
        +                    elsif (!defined $leadingGeneralIndex && ($groupEntry->Flags() & ::MENU_GROUP_ISINDEXGROUP()) &&
        +                            $entry->Type() == ::MENU_INDEX() && !defined $entry->Target())
        +                        {
        +                        $leadingGeneralIndex = $entry;
        +                        $groupEntry->DeleteFromGroup($index);
        +                        }
        +                    else
        +                        {  $index++;  };
        +                    };
        +                };
        +
        +
        +            # If there's no order, we still want to sort the new additions.
        +
        +            if ($groupEntry->Flags() & ::MENU_GROUP_UNSORTED())
        +                {
        +                if ($newEntriesIndex != -1)
        +                    {
        +                    my @newEntries =
        +                        @{$groupEntry->GroupContent()}[$newEntriesIndex..scalar @{$groupEntry->GroupContent()} - 1];
        +
        +                    @newEntries = sort { $self->CompareEntries($a, $b) } @newEntries;
        +
        +                    foreach my $newEntry (@newEntries)
        +                        {
        +                        $groupEntry->GroupContent()->[$newEntriesIndex] = $newEntry;
        +                        $newEntriesIndex++;
        +                        };
        +                    };
        +                }
        +
        +            elsif ($groupEntry->Flags() & ::MENU_GROUP_EVERYTHINGSORTED())
        +                {
        +                @{$groupEntry->GroupContent()} = sort { $self->CompareEntries($a, $b) } @{$groupEntry->GroupContent()};
        +                }
        +
        +            elsif ( ($groupEntry->Flags() & ::MENU_GROUP_FILESSORTED()) ||
        +                     ($groupEntry->Flags() & ::MENU_GROUP_FILESANDGROUPSSORTED()) )
        +                {
        +                my $groupContent = $groupEntry->GroupContent();
        +                my @newEntries;
        +
        +                if ($newEntriesIndex != -1)
        +                    {  @newEntries = splice( @$groupContent, $newEntriesIndex );  };
        +
        +
        +                # First resort the existing entries.
        +
        +                # A couple of support functions.  They're defined here instead of spun off into their own functions because they're only
        +                # used here and to make them general we would need to add support for the other sort options.
        +
        +                sub IsIncludedInSort #(groupEntry, entry)
        +                    {
        +                    my ($self, $groupEntry, $entry) = @_;
        +
        +                    return ($entry->Type() == ::MENU_FILE() ||
        +                                ( $entry->Type() == ::MENU_GROUP() &&
        +                                    ($groupEntry->Flags() & ::MENU_GROUP_FILESANDGROUPSSORTED()) ) );
        +                    };
        +
        +                sub IsSorted #(groupEntry)
        +                    {
        +                    my ($self, $groupEntry) = @_;
        +                    my $lastApplicable;
        +
        +                    foreach my $entry (@{$groupEntry->GroupContent()})
        +                        {
        +                        # If the entry is applicable to the sort order...
        +                        if ($self->IsIncludedInSort($groupEntry, $entry))
        +                            {
        +                            if (defined $lastApplicable)
        +                                {
        +                                if ($self->CompareEntries($entry, $lastApplicable) < 0)
        +                                    {  return undef;  };
        +                                };
        +
        +                            $lastApplicable = $entry;
        +                            };
        +                        };
        +
        +                    return 1;
        +                    };
        +
        +
        +                # There's a good chance it's still sorted.  They should only become unsorted if an auto-title changes.
        +                if (!$self->IsSorted($groupEntry))
        +                    {
        +                    # Crap.  Okay, method one is to sort each group of continuous sortable elements.  There's a possibility that doing
        +                    # this will cause the whole to become sorted again.  We try this first, even though it isn't guaranteed to succeed,
        +                    # because it will restore the sort without moving any unsortable entries.
        +
        +                    # Copy it because we'll need the original if this fails.
        +                    my @originalGroupContent = @$groupContent;
        +
        +                    my $index = 0;
        +                    my $startSortable = 0;
        +
        +                    while (1)
        +                        {
        +                        # If index is on an unsortable entry or the end of the array...
        +                        if ($index == scalar @$groupContent || !$self->IsIncludedInSort($groupEntry, $groupContent->[$index]))
        +                            {
        +                            # If we have at least two sortable entries...
        +                            if ($index - $startSortable >= 2)
        +                                {
        +                                # Sort them.
        +                                my @sortableEntries = @{$groupContent}[$startSortable .. $index - 1];
        +                                @sortableEntries = sort { $self->CompareEntries($a, $b) } @sortableEntries;
        +                                foreach my $sortableEntry (@sortableEntries)
        +                                    {
        +                                    $groupContent->[$startSortable] = $sortableEntry;
        +                                    $startSortable++;
        +                                    };
        +                                };
        +
        +                            if ($index == scalar @$groupContent)
        +                                {  last;  };
        +
        +                            $startSortable = $index + 1;
        +                            };
        +
        +                        $index++;
        +                        };
        +
        +                    if (!$self->IsSorted($groupEntry))
        +                        {
        +                        # Crap crap.  Okay, now we do a full sort but with potential damage to the original structure.  Each unsortable
        +                        # element is locked to the next sortable element.  We sort the sortable elements, bringing all the unsortable
        +                        # pieces with them.
        +
        +                        my @pieces = ( [ ] );
        +                        my $currentPiece = $pieces[0];
        +
        +                        foreach my $entry (@originalGroupContent)
        +                            {
        +                            push @$currentPiece, $entry;
        +
        +                            # If the entry is sortable...
        +                            if ($self->IsIncludedInSort($groupEntry, $entry))
        +                                {
        +                                $currentPiece = [ ];
        +                                push @pieces, $currentPiece;
        +                                };
        +                            };
        +
        +                        my $lastUnsortablePiece;
        +
        +                        # If the last entry was sortable, we'll have an empty piece at the end.  Drop it.
        +                        if (scalar @{$pieces[-1]} == 0)
        +                            {  pop @pieces;  }
        +
        +                        # If the last entry wasn't sortable, the last piece won't end with a sortable element.  Save it, but remove it
        +                        # from the list.
        +                        else
        +                            {  $lastUnsortablePiece = pop @pieces;  };
        +
        +                        # Sort the list.
        +                        @pieces = sort { $self->CompareEntries( $a->[-1], $b->[-1] ) } @pieces;
        +
        +                        # Copy it back to the original.
        +                        if (defined $lastUnsortablePiece)
        +                            {  push @pieces, $lastUnsortablePiece;  };
        +
        +                        my $index = 0;
        +
        +                        foreach my $piece (@pieces)
        +                            {
        +                            foreach my $entry (@{$piece})
        +                                {
        +                                $groupEntry->GroupContent()->[$index] = $entry;
        +                                $index++;
        +                                };
        +                            };
        +                        };
        +                    };
        +
        +
        +                # Okay, the orginal entries are sorted now.  Sort the new entries and apply.
        +
        +                if (scalar @newEntries)
        +                    {
        +                    @newEntries = sort { $self->CompareEntries($a, $b) } @newEntries;
        +                    my @originalEntries = @$groupContent;
        +                    @$groupContent = ( );
        +
        +                    while (1)
        +                        {
        +                        while (scalar @originalEntries && !$self->IsIncludedInSort($groupEntry, $originalEntries[0]))
        +                            {  push @$groupContent, (shift @originalEntries);  };
        +
        +                        if (!scalar @originalEntries || !scalar @newEntries)
        +                            {  last;  };
        +
        +                        while (scalar @newEntries && $self->CompareEntries($newEntries[0], $originalEntries[0]) < 0)
        +                            {  push @$groupContent, (shift @newEntries);  };
        +
        +                        push @$groupContent, (shift @originalEntries);
        +
        +                        if (!scalar @originalEntries || !scalar @newEntries)
        +                            {  last;  };
        +                        };
        +
        +                    if (scalar @originalEntries)
        +                        {  push @$groupContent, @originalEntries;  }
        +                    elsif (scalar @newEntries)
        +                        {  push @$groupContent, @newEntries;  };
        +                    };
        +                };
        +
        +
        +            # Now re-add the exceptions.
        +
        +            if (defined $leadingGeneralIndex)
        +                {
        +                unshift @{$groupEntry->GroupContent()}, $leadingGeneralIndex;
        +                };
        +
        +            if (defined $trailingIndexGroup)
        +                {
        +                $groupEntry->PushToGroup($trailingIndexGroup);
        +                };
        +
        +            };
        +
        +        foreach my $entry (@{$groupEntry->GroupContent()})
        +            {
        +            if ($entry->Type() == ::MENU_GROUP())
        +                {  push @groupStack, $entry;  };
        +            };
        +        };
        +    };
        +
        +
        +#
        +#   Function: CompareEntries
        +#
        +#   A comparison function for use in sorting.  Compares the two entries by their titles with <StringCompare()>, but in the case
        +#   of a tie, puts <MENU_FILE> entries above <MENU_GROUP> entries.
        +#
        +sub CompareEntries #(a, b)
        +    {
        +    my ($self, $a, $b) = @_;
        +
        +    my $result = ::StringCompare($a->Title(), $b->Title());
        +
        +    if ($result == 0)
        +        {
        +        if ($a->Type() == ::MENU_FILE() && $b->Type() == ::MENU_GROUP())
        +            {  $result = -1;  }
        +        elsif ($a->Type() == ::MENU_GROUP() && $b->Type() == ::MENU_FILE())
        +            {  $result = 1;  };
        +        };
        +
        +    return $result;
        +    };
        +
        +
        +#
        +#   Function: SharedDirectoriesOf
        +#
        +#   Returns an array of all the directories shared by the files in the group.  If none, returns an empty array.
        +#
        +sub SharedDirectoriesOf #(group)
        +    {
        +    my ($self, $groupEntry) = @_;
        +    my @sharedDirectories;
        +
        +    foreach my $entry (@{$groupEntry->GroupContent()})
        +        {
        +        if ($entry->Type() == ::MENU_FILE())
        +            {
        +            my @entryDirectories = NaturalDocs::File->SplitDirectories( (NaturalDocs::File->SplitPath($entry->Target()))[1] );
        +
        +            if (!scalar @sharedDirectories)
        +                {  @sharedDirectories = @entryDirectories;  }
        +            else
        +                {  ::ShortenToMatchStrings(\@sharedDirectories, \@entryDirectories);  };
        +
        +            if (!scalar @sharedDirectories)
        +                {  last;  };
        +            };
        +        };
        +
        +    return @sharedDirectories;
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Menu/Entry.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Menu/Entry.pm
        new file mode 100755
        index 0000000..00bdd4e
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Menu/Entry.pm
        @@ -0,0 +1,202 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::Menu::Entry
        +#
        +###############################################################################
        +#
        +#   A class representing an entry in the menu.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::Menu::Entry;
        +
        +
        +###############################################################################
        +# Group: Implementation
        +
        +#
        +#   Constants: Members
        +#
        +#   The object is implemented as a blessed arrayref with the indexes below.
        +#
        +#       TYPE      - The <MenuEntryType>
        +#       TITLE     - The title of the entry.
        +#       TARGET  - The target of the entry.  If the type is <MENU_FILE>, it will be the source <FileName>.  If the type is
        +#                       <MENU_LINK>, it will be the URL.  If the type is <MENU_GROUP>, it will be an arrayref of
        +#                       <NaturalDocs::Menu::Entry> objects representing the group's content.  If the type is <MENU_INDEX>, it will be
        +#                       a <TopicType>.
        +#       FLAGS    - Any <Menu Entry Flags> that apply.
        +#
        +use constant TYPE => 0;
        +use constant TITLE => 1;
        +use constant TARGET => 2;
        +use constant FLAGS => 3;
        +# DEPENDENCY: New() depends on the order of these constants.
        +
        +
        +###############################################################################
        +# Group: Functions
        +
        +#
        +#   Function: New
        +#
        +#   Creates and returns a new object.
        +#
        +#   Parameters:
        +#
        +#       type     - The <MenuEntryType>.
        +#       title      - The title of the entry.
        +#       target   - The target of the entry, if applicable.  If the type is <MENU_FILE>, use the source <FileName>.  If the type is
        +#                     <MENU_LINK>, use the URL.  If the type is <MENU_INDEX>, use the <TopicType>.  Otherwise set it to undef.
        +#       flags     - Any <Menu Entry Flags> that apply.
        +#
        +sub New #(type, title, target, flags)
        +    {
        +    # DEPENDENCY: This gode depends on the order of the constants.
        +
        +    my $package = shift;
        +
        +    my $object = [ @_ ];
        +    bless $object, $package;
        +
        +    if ($object->[TYPE] == ::MENU_GROUP())
        +        {  $object->[TARGET] = [ ];  };
        +    if (!defined $object->[FLAGS])
        +        {  $object->[FLAGS] = 0;  };
        +
        +    return $object;
        +    };
        +
        +
        +#   Function: Type
        +#   Returns the <MenuEntryType>.
        +sub Type
        +    {  return $_[0]->[TYPE];  };
        +
        +#   Function: Title
        +#   Returns the title of the entry.
        +sub Title
        +    {  return $_[0]->[TITLE];  };
        +
        +# Function: SetTitle
        +# Replaces the entry's title.
        +sub SetTitle #(title)
        +    {  $_[0]->[TITLE] = $_[1];  };
        +
        +#
        +#   Function: Target
        +#
        +#   Returns the target of the entry, if applicable.  If the type is <MENU_FILE>, it returns the source <FileName>.  If the type is
        +#   <MENU_LINK>, it returns the URL.  If the type is <MENU_INDEX>, it returns the <TopicType>.  Otherwise it returns undef.
        +#
        +sub Target
        +    {
        +    my $self = shift;
        +
        +    # Group entries are the only time when target won't be undef when it should be.
        +    if ($self->Type() == ::MENU_GROUP())
        +        {  return undef;  }
        +    else
        +        {  return $self->[TARGET];  };
        +    };
        +
        +# Function: SetTarget
        +# Replaces the entry's target.
        +sub SetTarget #(target)
        +    {  $_[0]->[TARGET] = $_[1];  };
        +
        +#   Function: Flags
        +#   Returns the <Menu Entry Flags>.
        +sub Flags
        +    {  return $_[0]->[FLAGS];  };
        +
        +# Function: SetFlags
        +# Replaces the <Menu Entry Flags>.
        +sub SetFlags #(flags)
        +    {  $_[0]->[FLAGS] = $_[1];  };
        +
        +
        +
        +###############################################################################
        +# Group: Group Functions
        +#
        +#   All of these functions assume the type is <MENU_GROUP>.  Do *not* call any of these without checking <Type()> first.
        +
        +
        +#
        +#   Function: GroupContent
        +#
        +#   Returns an arrayref of <NaturalDocs::Menu::Entry> objects representing the contents of the
        +#   group, or undef otherwise.  This arrayref will always exist for <MENU_GROUP>'s and can be changed.
        +#
        +sub GroupContent
        +    {
        +    return $_[0]->[TARGET];
        +    };
        +
        +
        +#
        +#   Function: GroupIsEmpty
        +#
        +#   If the type is <MENU_GROUP>, returns whether the group is empty.
        +#
        +sub GroupIsEmpty
        +    {
        +    my $self = shift;
        +    return (scalar @{$self->GroupContent()} > 0);
        +    };
        +
        +
        +#
        +#   Function: PushToGroup
        +#
        +#   Pushes the entry to the end of the group content.
        +#
        +sub PushToGroup #(entry)
        +    {
        +    my ($self, $entry) = @_;
        +    push @{$self->GroupContent()}, $entry;
        +    };
        +
        +
        +#
        +#   Function: DeleteFromGroup
        +#
        +#   Deletes an entry from the group content by index.
        +#
        +sub DeleteFromGroup #(index)
        +    {
        +    my ($self, $index) = @_;
        +
        +    my $groupContent = $self->GroupContent();
        +
        +    splice( @$groupContent, $index, 1 );
        +    };
        +
        +
        +#
        +#   Function: MarkEndOfOriginal
        +#
        +#   If the group doesn't already have one, adds a <MENU_ENDOFORIGINAL> entry to the end and sets the
        +#   <MENU_GROUP_HASENDOFORIGINAL> flag.
        +#
        +sub MarkEndOfOriginal
        +    {
        +    my $self = shift;
        +
        +    if (($self->Flags() & ::MENU_GROUP_HASENDOFORIGINAL()) == 0)
        +        {
        +        $self->PushToGroup( NaturalDocs::Menu::Entry->New(::MENU_ENDOFORIGINAL(), undef, undef, undef) );
        +        $self->SetFlags( $self->Flags() | ::MENU_GROUP_HASENDOFORIGINAL() );
        +        };
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/NDMarkup.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/NDMarkup.pm
        new file mode 100755
        index 0000000..46adc02
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/NDMarkup.pm
        @@ -0,0 +1,77 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::NDMarkup
        +#
        +###############################################################################
        +#
        +#   A package of support functions for dealing with <NDMarkup>.
        +#
        +#   Usage and Dependencies:
        +#
        +#       The package doesn't depend on any Natural Docs packages and is ready to use right away.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::NDMarkup;
        +
        +#
        +#   Function: ConvertAmpChars
        +#
        +#   Substitutes certain characters with their <NDMarkup> amp chars.
        +#
        +#   Parameters:
        +#
        +#       text - The block of text to convert.
        +#
        +#   Returns:
        +#
        +#       The converted text block.
        +#
        +sub ConvertAmpChars #(text)
        +    {
        +    my ($self, $text) = @_;
        +
        +    $text =~ s/&/&amp;/g;
        +    $text =~ s/</&lt;/g;
        +    $text =~ s/>/&gt;/g;
        +    $text =~ s/\"/&quot;/g;
        +
        +    return $text;
        +    };
        +
        +
        +#
        +#   Function: RestoreAmpChars
        +#
        +#   Replaces <NDMarkup> amp chars with their original symbols.
        +#
        +#   Parameters:
        +#
        +#       text - The text to restore.
        +#
        +#   Returns:
        +#
        +#       The restored text.
        +#
        +sub RestoreAmpChars #(text)
        +    {
        +    my ($self, $text) = @_;
        +
        +    $text =~ s/&quot;/\"/g;
        +    $text =~ s/&gt;/>/g;
        +    $text =~ s/&lt;/</g;
        +    $text =~ s/&amp;/&/g;
        +
        +    return $text;
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Parser.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Parser.pm
        new file mode 100755
        index 0000000..24c415f
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Parser.pm
        @@ -0,0 +1,1335 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::Parser
        +#
        +###############################################################################
        +#
        +#   A package that coordinates source file parsing between the <NaturalDocs::Languages::Base>-derived objects and its own
        +#   sub-packages such as <NaturalDocs::Parser::Native>.  Also handles sending symbols to <NaturalDocs::SymbolTable> and
        +#   other generic topic processing.
        +#
        +#   Usage and Dependencies:
        +#
        +#       - Prior to use, <NaturalDocs::Settings>, <NaturalDocs::Languages>, <NaturalDocs::Project>, <NaturalDocs::SymbolTable>,
        +#         and <NaturalDocs::ClassHierarchy> must be initialized.  <NaturalDocs::SymbolTable> and <NaturalDocs::ClassHierarchy>
        +#         do not have to be fully resolved.
        +#
        +#       - Aside from that, the package is ready to use right away.  It does not have its own initialization function.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use NaturalDocs::Parser::ParsedTopic;
        +use NaturalDocs::Parser::Native;
        +use NaturalDocs::Parser::JavaDoc;
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::Parser;
        +
        +
        +
        +###############################################################################
        +# Group: Variables
        +
        +
        +#
        +#   var: sourceFile
        +#
        +#   The source <FileName> currently being parsed.
        +#
        +my $sourceFile;
        +
        +#
        +#   var: language
        +#
        +#   The language object for the file, derived from <NaturalDocs::Languages::Base>.
        +#
        +my $language;
        +
        +#
        +#   Array: parsedFile
        +#
        +#   An array of <NaturalDocs::Parser::ParsedTopic> objects.
        +#
        +my @parsedFile;
        +
        +
        +#
        +#   bool: parsingForInformation
        +#   Whether <ParseForInformation()> was called.  If false, then <ParseForBuild()> was called.
        +#
        +my $parsingForInformation;
        +
        +
        +
        +###############################################################################
        +# Group: Functions
        +
        +#
        +#   Function: ParseForInformation
        +#
        +#   Parses the input file for information.  Will update the information about the file in <NaturalDocs::SymbolTable> and
        +#   <NaturalDocs::Project>.
        +#
        +#   Parameters:
        +#
        +#       file - The <FileName> to parse.
        +#
        +sub ParseForInformation #(file)
        +    {
        +    my ($self, $file) = @_;
        +    $sourceFile = $file;
        +
        +    $parsingForInformation = 1;
        +
        +    # Watch this parse so we detect any changes.
        +    NaturalDocs::SymbolTable->WatchFileForChanges($sourceFile);
        +    NaturalDocs::ClassHierarchy->WatchFileForChanges($sourceFile);
        +    NaturalDocs::SourceDB->WatchFileForChanges($sourceFile);
        +
        +    my $defaultMenuTitle = $self->Parse();
        +
        +    foreach my $topic (@parsedFile)
        +        {
        +        # Add a symbol for the topic.
        +
        +        my $type = $topic->Type();
        +        if ($type eq ::TOPIC_ENUMERATION())
        +            {  $type = ::TOPIC_TYPE();  };
        +
        +        NaturalDocs::SymbolTable->AddSymbol($topic->Symbol(), $sourceFile, $type,
        +                                                                   $topic->Prototype(), $topic->Summary());
        +
        +
        +        # You can't put the function call directly in a while with a regex.  It has to sit in a variable to work.
        +        my $body = $topic->Body();
        +
        +
        +        # If it's a list or enum topic, add a symbol for each description list entry.
        +
        +        if ($topic->IsList() || $topic->Type() eq ::TOPIC_ENUMERATION())
        +            {
        +            # We'll hijack the enum constants to apply to non-enum behavior too.
        +            my $behavior;
        +
        +            if ($topic->Type() eq ::TOPIC_ENUMERATION())
        +                {
        +                $type = ::TOPIC_CONSTANT();
        +                $behavior = $language->EnumValues();
        +                }
        +            elsif (NaturalDocs::Topics->TypeInfo($topic->Type())->Scope() == ::SCOPE_ALWAYS_GLOBAL())
        +                {
        +                $behavior = ::ENUM_GLOBAL();
        +                }
        +            else
        +                {
        +                $behavior = ::ENUM_UNDER_PARENT();
        +                };
        +
        +            while ($body =~ /<ds>([^<]+)<\/ds><dd>(.*?)<\/dd>/g)
        +                {
        +                my ($listTextSymbol, $listSummary) = ($1, $2);
        +
        +                $listTextSymbol = NaturalDocs::NDMarkup->RestoreAmpChars($listTextSymbol);
        +                my $listSymbol = NaturalDocs::SymbolString->FromText($listTextSymbol);
        +
        +                if ($behavior == ::ENUM_UNDER_PARENT())
        +                    {  $listSymbol = NaturalDocs::SymbolString->Join($topic->Package(), $listSymbol);  }
        +                elsif ($behavior == ::ENUM_UNDER_TYPE())
        +                    {  $listSymbol = NaturalDocs::SymbolString->Join($topic->Symbol(), $listSymbol);  };
        +
        +                NaturalDocs::SymbolTable->AddSymbol($listSymbol, $sourceFile, $type, undef,
        +                                                                           $self->GetSummaryFromDescriptionList($listSummary));
        +                };
        +            };
        +
        +
        +        # Add references in the topic.
        +
        +        while ($body =~ /<link target=\"([^\"]*)\" name=\"[^\"]*\" original=\"[^\"]*\">/g)
        +            {
        +            my $linkText = NaturalDocs::NDMarkup->RestoreAmpChars($1);
        +            my $linkSymbol = NaturalDocs::SymbolString->FromText($linkText);
        +
        +            NaturalDocs::SymbolTable->AddReference(::REFERENCE_TEXT(), $linkSymbol,
        +                                                                           $topic->Package(), $topic->Using(), $sourceFile);
        +            };
        +
        +
        +        # Add images in the topic.
        +
        +        while ($body =~ /<img mode=\"[^\"]*\" target=\"([^\"]+)\" original=\"[^\"]*\">/g)
        +            {
        +            my $target = NaturalDocs::NDMarkup->RestoreAmpChars($1);
        +            NaturalDocs::ImageReferenceTable->AddReference($sourceFile, $target);
        +            };
        +        };
        +
        +    # Handle any changes to the file.
        +    NaturalDocs::ClassHierarchy->AnalyzeChanges();
        +    NaturalDocs::SymbolTable->AnalyzeChanges();
        +    NaturalDocs::SourceDB->AnalyzeWatchedFileChanges();
        +
        +    # Update project on the file's characteristics.
        +    my $hasContent = (scalar @parsedFile > 0);
        +
        +    NaturalDocs::Project->SetHasContent($sourceFile, $hasContent);
        +    if ($hasContent)
        +        {  NaturalDocs::Project->SetDefaultMenuTitle($sourceFile, $defaultMenuTitle);  };
        +
        +    # We don't need to keep this around.
        +    @parsedFile = ( );
        +    };
        +
        +
        +#
        +#   Function: ParseForBuild
        +#
        +#   Parses the input file for building, returning it as a <NaturalDocs::Parser::ParsedTopic> arrayref.
        +#
        +#   Note that all new and changed files should be parsed for symbols via <ParseForInformation()> before calling this function on
        +#   *any* file.  The reason is that <NaturalDocs::SymbolTable> needs to know about all the symbol definitions and references to
        +#   resolve them properly.
        +#
        +#   Parameters:
        +#
        +#       file - The <FileName> to parse for building.
        +#
        +#   Returns:
        +#
        +#       An arrayref of the source file as <NaturalDocs::Parser::ParsedTopic> objects.
        +#
        +sub ParseForBuild #(file)
        +    {
        +    my ($self, $file) = @_;
        +    $sourceFile = $file;
        +
        +    $parsingForInformation = undef;
        +
        +    $self->Parse();
        +
        +    return \@parsedFile;
        +    };
        +
        +
        +
        +
        +###############################################################################
        +# Group: Interface Functions
        +
        +
        +#
        +#   Function: OnComment
        +#
        +#   The function called by <NaturalDocs::Languages::Base>-derived objects when their parsers encounter a comment
        +#   suitable for documentation.
        +#
        +#   Parameters:
        +#
        +#       commentLines - An arrayref of the comment's lines.  The language's comment symbols should be converted to spaces,
        +#                               and there should be no line break characters at the end of each line.  *The original memory will be
        +#                               changed.*
        +#       lineNumber - The line number of the first of the comment lines.
        +#       isJavaDoc - Whether the comment is in JavaDoc format.
        +#
        +#   Returns:
        +#
        +#       The number of topics created by this comment, or zero if none.
        +#
        +sub OnComment #(string[] commentLines, int lineNumber, bool isJavaDoc)
        +    {
        +    my ($self, $commentLines, $lineNumber, $isJavaDoc) = @_;
        +
        +    $self->CleanComment($commentLines);
        +
        +    # We check if it's definitely Natural Docs content first.  This overrides all else, since it's possible that a comment could start
        +    # with a topic line yet have something that looks like a JavaDoc tag.  Natural Docs wins in this case.
        +    if (NaturalDocs::Parser::Native->IsMine($commentLines, $isJavaDoc))
        +        {  return NaturalDocs::Parser::Native->ParseComment($commentLines, $isJavaDoc, $lineNumber, \@parsedFile);  }
        +
        +    elsif (NaturalDocs::Parser::JavaDoc->IsMine($commentLines, $isJavaDoc))
        +        {  return NaturalDocs::Parser::JavaDoc->ParseComment($commentLines, $isJavaDoc, $lineNumber, \@parsedFile);  }
        +
        +    # If the content is ambiguous and it's a JavaDoc-styled comment, treat it as Natural Docs content.
        +    elsif ($isJavaDoc)
        +        {  return NaturalDocs::Parser::Native->ParseComment($commentLines, $isJavaDoc, $lineNumber, \@parsedFile);  }
        +    };
        +
        +
        +#
        +#   Function: OnClass
        +#
        +#   A function called by <NaturalDocs::Languages::Base>-derived objects when their parsers encounter a class declaration.
        +#
        +#   Parameters:
        +#
        +#       class - The <SymbolString> of the class encountered.
        +#
        +sub OnClass #(class)
        +    {
        +    my ($self, $class) = @_;
        +
        +    if ($parsingForInformation)
        +        {  NaturalDocs::ClassHierarchy->AddClass($sourceFile, $class);  };
        +    };
        +
        +
        +#
        +#   Function: OnClassParent
        +#
        +#   A function called by <NaturalDocs::Languages::Base>-derived objects when their parsers encounter a declaration of
        +#   inheritance.
        +#
        +#   Parameters:
        +#
        +#       class - The <SymbolString> of the class we're in.
        +#       parent - The <SymbolString> of the class it inherits.
        +#       scope - The package <SymbolString> that the reference appeared in.
        +#       using - An arrayref of package <SymbolStrings> that the reference has access to via "using" statements.
        +#       resolvingFlags - Any <Resolving Flags> to be used when resolving the reference.  <RESOLVE_NOPLURAL> is added
        +#                              automatically since that would never apply to source code.
        +#
        +sub OnClassParent #(class, parent, scope, using, resolvingFlags)
        +    {
        +    my ($self, $class, $parent, $scope, $using, $resolvingFlags) = @_;
        +
        +    if ($parsingForInformation)
        +        {
        +        NaturalDocs::ClassHierarchy->AddParentReference($sourceFile, $class, $parent, $scope, $using,
        +                                                                                   $resolvingFlags | ::RESOLVE_NOPLURAL());
        +        };
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Support Functions
        +
        +
        +#   Function: Parse
        +#
        +#   Opens the source file and parses process.  Most of the actual parsing is done in <NaturalDocs::Languages::Base->ParseFile()>
        +#   and <OnComment()>, though.
        +#
        +#   *Do not call externally.*  Rather, call <ParseForInformation()> or <ParseForBuild()>.
        +#
        +#   Returns:
        +#
        +#       The default menu title of the file.  Will be the <FileName> if nothing better is found.
        +#
        +sub Parse
        +    {
        +    my ($self) = @_;
        +
        +    NaturalDocs::Error->OnStartParsing($sourceFile);
        +
        +    $language = NaturalDocs::Languages->LanguageOf($sourceFile);
        +    NaturalDocs::Parser::Native->Start();
        +    @parsedFile = ( );
        +
        +    my ($autoTopics, $scopeRecord) = $language->ParseFile($sourceFile, \@parsedFile);
        +
        +
        +    $self->AddToClassHierarchy();
        +
        +    $self->BreakLists();
        +
        +    if (defined $autoTopics)
        +        {
        +        if (defined $scopeRecord)
        +            {  $self->RepairPackages($autoTopics, $scopeRecord);  };
        +
        +        $self->MergeAutoTopics($language, $autoTopics);
        +        };
        +
        +    $self->RemoveRemainingHeaderlessTopics();
        +
        +
        +    # We don't need to do this if there aren't any auto-topics because the only package changes would be implied by the comments.
        +    if (defined $autoTopics)
        +        {  $self->AddPackageDelineators();  };
        +
        +    if (!NaturalDocs::Settings->NoAutoGroup())
        +        {  $self->MakeAutoGroups($autoTopics);  };
        +
        +
        +    # Set the menu title.
        +
        +    my $defaultMenuTitle = $sourceFile;
        +
        +    if (scalar @parsedFile)
        +        {
        +        my $addFileTitle;
        +
        +        if (NaturalDocs::Settings->OnlyFileTitles())
        +            {
        +            # We still want to use the title from the topics if the first one is a file.
        +            if ($parsedFile[0]->Type() eq ::TOPIC_FILE())
        +                {  $addFileTitle = 0;  }
        +            else
        +                {  $addFileTitle = 1;  };
        +            }
        +        elsif (scalar @parsedFile == 1 || NaturalDocs::Topics->TypeInfo( $parsedFile[0]->Type() )->PageTitleIfFirst())
        +            {  $addFileTitle = 0;  }
        +        else
        +            {  $addFileTitle = 1;  };
        +
        +        if (!$addFileTitle)
        +            {
        +            $defaultMenuTitle = $parsedFile[0]->Title();
        +            }
        +        else
        +            {
        +            # If the title ended up being the file name, add a leading section for it.
        +
        +            unshift @parsedFile,
        +                       NaturalDocs::Parser::ParsedTopic->New(::TOPIC_FILE(), (NaturalDocs::File->SplitPath($sourceFile))[2],
        +                                                                                  undef, undef, undef, undef, undef, 1, undef);
        +            };
        +        };
        +
        +    NaturalDocs::Error->OnEndParsing($sourceFile);
        +
        +    return $defaultMenuTitle;
        +    };
        +
        +
        +#
        +#   Function: CleanComment
        +#
        +#   Removes any extraneous formatting and whitespace from the comment.  Eliminates comment boxes, horizontal lines, trailing
        +#   whitespace from lines, and expands all tab characters.  It keeps leading whitespace, though, since it may be needed for
        +#   example code, and blank lines, since the original line numbers are needed.
        +#
        +#   Parameters:
        +#
        +#       commentLines  - An arrayref of the comment lines to clean.  *The original memory will be changed.*  Lines should have the
        +#                                language's comment symbols replaced by spaces and not have a trailing line break.
        +#
        +sub CleanComment #(commentLines)
        +    {
        +    my ($self, $commentLines) = @_;
        +
        +    use constant DONT_KNOW => 0;
        +    use constant IS_UNIFORM => 1;
        +    use constant IS_UNIFORM_IF_AT_END => 2;
        +    use constant IS_NOT_UNIFORM => 3;
        +
        +    my $leftSide = DONT_KNOW;
        +    my $rightSide = DONT_KNOW;
        +    my $leftSideChar;
        +    my $rightSideChar;
        +
        +    my $index = 0;
        +    my $tabLength = NaturalDocs::Settings->TabLength();
        +
        +    while ($index < scalar @$commentLines)
        +        {
        +        # Strip trailing whitespace from the original.
        +
        +        $commentLines->[$index] =~ s/[ \t]+$//;
        +
        +
        +        # Expand tabs in the original.  This method is almost six times faster than Text::Tabs' method.
        +
        +        my $tabIndex = index($commentLines->[$index], "\t");
        +
        +        while ($tabIndex != -1)
        +            {
        +            substr( $commentLines->[$index], $tabIndex, 1, ' ' x ($tabLength - ($tabIndex % $tabLength)) );
        +            $tabIndex = index($commentLines->[$index], "\t", $tabIndex);
        +            };
        +
        +
        +        # Make a working copy and strip leading whitespace as well.  This has to be done after tabs are expanded because
        +        # stripping indentation could change how far tabs are expanded.
        +
        +        my $line = $commentLines->[$index];
        +        $line =~ s/^ +//;
        +
        +        # If the line is blank...
        +        if (!length $line)
        +            {
        +            # If we have a potential vertical line, this only acceptable if it's at the end of the comment.
        +            if ($leftSide == IS_UNIFORM)
        +                {  $leftSide = IS_UNIFORM_IF_AT_END;  };
        +            if ($rightSide == IS_UNIFORM)
        +                {  $rightSide = IS_UNIFORM_IF_AT_END;  };
        +            }
        +
        +        # If there's at least four symbols in a row, it's a horizontal line.  The second regex supports differing edge characters.  It
        +        # doesn't matter if any of this matches the left and right side symbols.  The length < 256 is a sanity check, because that
        +        # regexp has caused the perl regexp engine to choke on an insane line someone sent me from an automatically generated
        +        # file.  It had over 10k characters on the first line, and most of them were 0x00.
        +        elsif ($line =~ /^([^a-zA-Z0-9 ])\1{3,}$/ ||
        +                (length $line < 256 && $line =~ /^([^a-zA-Z0-9 ])\1*([^a-zA-Z0-9 ])\2{3,}([^a-zA-Z0-9 ])\3*$/) )
        +            {
        +            # Ignore it.  This has no effect on the vertical line detection.  We want to keep it in the output though in case it was
        +            # in a code section.
        +            }
        +
        +        # If the line is not blank or a horizontal line...
        +        else
        +            {
        +            # More content means any previous blank lines are no longer tolerated in vertical line detection.  They are only
        +            # acceptable at the end of the comment.
        +
        +            if ($leftSide == IS_UNIFORM_IF_AT_END)
        +                {  $leftSide = IS_NOT_UNIFORM;  };
        +            if ($rightSide == IS_UNIFORM_IF_AT_END)
        +                {  $rightSide = IS_NOT_UNIFORM;  };
        +
        +
        +            # Detect vertical lines.  Lines are only lines if they are followed by whitespace or a connected horizontal line.
        +            # Otherwise we may accidentally detect lines from short comments that just happen to have every first or last
        +            # character the same.
        +
        +            if ($leftSide != IS_NOT_UNIFORM)
        +                {
        +                if ($line =~ /^([^a-zA-Z0-9])\1*(?: |$)/)
        +                    {
        +                    if ($leftSide == DONT_KNOW)
        +                        {
        +                        $leftSide = IS_UNIFORM;
        +                        $leftSideChar = $1;
        +                        }
        +                    else # ($leftSide == IS_UNIFORM)  Other choices already ruled out.
        +                        {
        +                        if ($leftSideChar ne $1)
        +                            {  $leftSide = IS_NOT_UNIFORM;  };
        +                        };
        +                    }
        +                # We'll tolerate the lack of symbols on the left on the first line, because it may be a
        +                # /* Function: Whatever
        +                #  * Description.
        +                #  */
        +                # comment which would have the leading /* blanked out.
        +                elsif ($index != 0)
        +                    {
        +                    $leftSide = IS_NOT_UNIFORM;
        +                    };
        +                };
        +
        +            if ($rightSide != IS_NOT_UNIFORM)
        +                {
        +                if ($line =~ / ([^a-zA-Z0-9])\1*$/)
        +                    {
        +                    if ($rightSide == DONT_KNOW)
        +                        {
        +                        $rightSide = IS_UNIFORM;
        +                        $rightSideChar = $1;
        +                        }
        +                    else # ($rightSide == IS_UNIFORM)  Other choices already ruled out.
        +                        {
        +                        if ($rightSideChar ne $1)
        +                            {  $rightSide = IS_NOT_UNIFORM;  };
        +                        };
        +                    }
        +                else
        +                    {
        +                    $rightSide = IS_NOT_UNIFORM;
        +                    };
        +                };
        +
        +            # We'll remove vertical lines later if they're uniform throughout the entire comment.
        +            };
        +
        +        $index++;
        +        };
        +
        +
        +    if ($leftSide == IS_UNIFORM_IF_AT_END)
        +        {  $leftSide = IS_UNIFORM;  };
        +    if ($rightSide == IS_UNIFORM_IF_AT_END)
        +        {  $rightSide = IS_UNIFORM;  };
        +
        +
        +    $index = 0;
        +    my $inCodeSection = 0;
        +
        +    while ($index < scalar @$commentLines)
        +        {
        +        # Clear horizontal lines only if we're not in a code section.
        +        if ($commentLines->[$index] =~ /^ *([^a-zA-Z0-9 ])\1{3,}$/ ||
        +            ( length $commentLines->[$index] < 256 &&
        +              $commentLines->[$index] =~ /^ *([^a-zA-Z0-9 ])\1*([^a-zA-Z0-9 ])\2{3,}([^a-zA-Z0-9 ])\3*$/ ) )
        +        	{
        +        	if (!$inCodeSection)
        +        		{  $commentLines->[$index] = '';  }
        +        	}
        +
        +        else
        +        	{
        +	        # Clear vertical lines.
        +
        +	        if ($leftSide == IS_UNIFORM)
        +	            {
        +	            # This works because every line should either start this way, be blank, or be the first line that doesn't start with a
        +	            # symbol.
        +	            $commentLines->[$index] =~ s/^ *([^a-zA-Z0-9 ])\1*//;
        +	            };
        +
        +	        if ($rightSide == IS_UNIFORM)
        +	            {
        +	            $commentLines->[$index] =~ s/ *([^a-zA-Z0-9 ])\1*$//;
        +	            };
        +
        +
        +	        # Clear horizontal lines again if there were vertical lines.  This catches lines that were separated from the verticals by
        +	        # whitespace.
        +
        +	        if (($leftSide == IS_UNIFORM || $rightSide == IS_UNIFORM) && !$inCodeSection)
        +	            {
        +	            $commentLines->[$index] =~ s/^ *([^a-zA-Z0-9 ])\1{3,}$//;
        +	            $commentLines->[$index] =~ s/^ *([^a-zA-Z0-9 ])\1*([^a-zA-Z0-9 ])\2{3,}([^a-zA-Z0-9 ])\3*$//;
        +	            };
        +
        +
        +	        # Check for the start and end of code sections.  Note that this doesn't affect vertical line removal.
        +
        +	        if (!$inCodeSection &&
        +	        	$commentLines->[$index] =~ /^ *\( *(?:(?:start|begin)? +)?(?:table|code|example|diagram) *\)$/i )
        +	        	{
        +	        	$inCodeSection = 1;
        +	        	}
        +	        elsif ($inCodeSection &&
        +	        	    $commentLines->[$index] =~ /^ *\( *(?:end|finish|done)(?: +(?:table|code|example|diagram))? *\)$/i)
        +	        	 {
        +	        	 $inCodeSection = 0;
        +	        	 }
        +	        }
        +
        +
        +        $index++;
        +        };
        +
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Processing Functions
        +
        +
        +#
        +#   Function: RepairPackages
        +#
        +#   Recalculates the packages for all comment topics using the auto-topics and the scope record.  Call this *before* calling
        +#   <MergeAutoTopics()>.
        +#
        +#   Parameters:
        +#
        +#       autoTopics - A reference to the list of automatically generated <NaturalDocs::Parser::ParsedTopics>.
        +#       scopeRecord - A reference to an array of <NaturalDocs::Languages::Advanced::ScopeChanges>.
        +#
        +sub RepairPackages #(autoTopics, scopeRecord)
        +    {
        +    my ($self, $autoTopics, $scopeRecord) = @_;
        +
        +    my $topicIndex = 0;
        +    my $autoTopicIndex = 0;
        +    my $scopeIndex = 0;
        +
        +    my $topic = $parsedFile[0];
        +    my $autoTopic = $autoTopics->[0];
        +    my $scopeChange = $scopeRecord->[0];
        +
        +    my $currentPackage;
        +    my $inFakePackage;
        +
        +    while (defined $topic)
        +        {
        +        # First update the scope via the record if its defined and has the lowest line number.
        +        if (defined $scopeChange &&
        +            $scopeChange->LineNumber() <= $topic->LineNumber() &&
        +            (!defined $autoTopic || $scopeChange->LineNumber() <= $autoTopic->LineNumber()) )
        +            {
        +            $currentPackage = $scopeChange->Scope();
        +            $scopeIndex++;
        +            $scopeChange = $scopeRecord->[$scopeIndex];  # Will be undef when past end.
        +            $inFakePackage = undef;
        +            }
        +
        +        # Next try to end a fake scope with an auto topic if its defined and has the lowest line number.
        +        elsif (defined $autoTopic &&
        +                $autoTopic->LineNumber() <= $topic->LineNumber())
        +            {
        +            if ($inFakePackage)
        +                {
        +                $currentPackage = $autoTopic->Package();
        +                $inFakePackage = undef;
        +                };
        +
        +            $autoTopicIndex++;
        +            $autoTopic = $autoTopics->[$autoTopicIndex];  # Will be undef when past end.
        +            }
        +
        +
        +        # Finally try to handle the topic, since it has the lowest line number.  Check for Type() because headerless topics won't have
        +        # one.
        +        else
        +            {
        +            my $scope;
        +            if ($topic->Type())
        +                {  $scope = NaturalDocs::Topics->TypeInfo($topic->Type())->Scope();  }
        +            else
        +                {  $scope = ::SCOPE_NORMAL();  };
        +
        +            if ($scope == ::SCOPE_START() || $scope == ::SCOPE_END())
        +                {
        +                # They should already have the correct class and scope.
        +                $currentPackage = $topic->Package();
        +                $inFakePackage = 1;
        +                }
        +           else
        +                {
        +                # Fix the package of everything else.
        +
        +                # Note that the first function or variable topic to appear in a fake package will assume that package even if it turns out
        +                # to be incorrect in the actual code, since the topic will come before the auto-topic.  This will be corrected in
        +                # MergeAutoTopics().
        +
        +                $topic->SetPackage($currentPackage);
        +                };
        +
        +            $topicIndex++;
        +            $topic = $parsedFile[$topicIndex];  # Will be undef when past end.
        +            };
        +        };
        +
        +    };
        +
        +
        +#
        +#   Function: MergeAutoTopics
        +#
        +#   Merges the automatically generated topics into the file.  If an auto-topic matches an existing topic, it will have it's prototype
        +#   and package transferred.  If it doesn't, the auto-topic will be inserted into the list unless
        +#   <NaturalDocs::Settings->DocumentedOnly()> is set.  If an existing topic doesn't have a title, it's assumed to be a headerless
        +#   comment and will be merged with the next auto-topic or discarded.
        +#
        +#   Parameters:
        +#
        +#       language - The <NaturalDocs::Languages::Base>-derived class for the file.
        +#       autoTopics - A reference to the list of automatically generated topics.
        +#
        +sub MergeAutoTopics #(language, autoTopics)
        +    {
        +    my ($self, $language, $autoTopics) = @_;
        +
        +    my $topicIndex = 0;
        +    my $autoTopicIndex = 0;
        +
        +    # Keys are topic types, values are existence hashrefs of titles.
        +    my %topicsInLists;
        +
        +    while ($topicIndex < scalar @parsedFile && $autoTopicIndex < scalar @$autoTopics)
        +        {
        +        my $topic = $parsedFile[$topicIndex];
        +        my $autoTopic = $autoTopics->[$autoTopicIndex];
        +
        +        my $cleanTitle = $topic->Title();
        +        $cleanTitle =~ s/[\t ]*\([^\(]*$//;
        +
        +        # Add the auto-topic if it's higher in the file than the current topic.
        +        if ($autoTopic->LineNumber() < $topic->LineNumber())
        +            {
        +            if (exists $topicsInLists{$autoTopic->Type()} &&
        +                exists $topicsInLists{$autoTopic->Type()}->{$autoTopic->Title()})
        +                {
        +                # Remove it from the list so a second one with the same name will be added.
        +                delete $topicsInLists{$autoTopic->Type()}->{$autoTopic->Title()};
        +                }
        +            elsif (!NaturalDocs::Settings->DocumentedOnly())
        +                {
        +                splice(@parsedFile, $topicIndex, 0, $autoTopic);
        +                $topicIndex++;
        +                };
        +
        +            $autoTopicIndex++;
        +            }
        +
        +        # Remove a headerless topic if there's another topic between it and the next auto-topic.
        +        elsif (!$topic->Title() && $topicIndex + 1 < scalar @parsedFile &&
        +                $parsedFile[$topicIndex+1]->LineNumber() < $autoTopic->LineNumber())
        +            {
        +            splice(@parsedFile, $topicIndex, 1);
        +            }
        +
        +        # Transfer information if we have a match or a headerless topic.
        +        elsif ( !$topic->Title() ||
        +        		  $topic->Symbol() eq $autoTopic->Symbol() ||
        +        		  ( $topic->Type() == $autoTopic->Type() &&
        +        			( index($autoTopic->Title(), $cleanTitle) != -1 || index($cleanTitle, $autoTopic->Title()) != -1 ) ) )
        +            {
        +            $topic->SetType($autoTopic->Type());
        +            $topic->SetPrototype($autoTopic->Prototype());
        +            $topic->SetUsing($autoTopic->Using());
        +
        +            if (!$topic->Title())
        +                {  $topic->SetTitle($autoTopic->Title());  };
        +
        +            if (NaturalDocs::Topics->TypeInfo($topic->Type())->Scope() != ::SCOPE_START())
        +                {  $topic->SetPackage($autoTopic->Package());  }
        +            elsif ($autoTopic->Package() ne $topic->Package())
        +                {
        +                my @autoPackageIdentifiers = NaturalDocs::SymbolString->IdentifiersOf($autoTopic->Package());
        +                my @packageIdentifiers = NaturalDocs::SymbolString->IdentifiersOf($topic->Package());
        +
        +                while (scalar @autoPackageIdentifiers && $autoPackageIdentifiers[-1] eq $packageIdentifiers[-1])
        +                    {
        +                    pop @autoPackageIdentifiers;
        +                    pop @packageIdentifiers;
        +                    };
        +
        +                if (scalar @autoPackageIdentifiers)
        +                    {  $topic->SetPackage( NaturalDocs::SymbolString->Join(@autoPackageIdentifiers) );  };
        +                };
        +
        +            $topicIndex++;
        +            $autoTopicIndex++;
        +            }
        +
        +        # Extract topics in lists.
        +        elsif ($topic->IsList())
        +            {
        +            if (!exists $topicsInLists{$topic->Type()})
        +                {  $topicsInLists{$topic->Type()} = { };  };
        +
        +            my $body = $topic->Body();
        +
        +            while ($body =~ /<ds>([^<]+)<\/ds>/g)
        +                {  $topicsInLists{$topic->Type()}->{NaturalDocs::NDMarkup->RestoreAmpChars($1)} = 1;  };
        +
        +            $topicIndex++;
        +            }
        +
        +        # Otherwise there's no match.  Skip the topic.  The auto-topic will be added later.
        +        else
        +            {
        +            $topicIndex++;
        +            }
        +        };
        +
        +    # Add any auto-topics remaining.
        +    if (!NaturalDocs::Settings->DocumentedOnly())
        +    	{
        +	    while ($autoTopicIndex < scalar @$autoTopics)
        +	        {
        +	        my $autoTopic = $autoTopics->[$autoTopicIndex];
        +
        +	        if (exists $topicsInLists{$autoTopic->Type()} &&
        +	            exists $topicsInLists{$autoTopic->Type()}->{$autoTopic->Title()})
        +	            {
        +	            # Remove it from the list so a second one with the same name will be added.
        +	            delete $topicsInLists{$autoTopic->Type()}->{$autoTopic->Title()};
        +	            }
        +	        else
        +	            {
        +	            push(@parsedFile, $autoTopic);
        +	            };
        +
        +	        $autoTopicIndex++;
        +	        };
        +        };
        +   };
        +
        +
        +#
        +#   Function: RemoveRemainingHeaderlessTopics
        +#
        +#   After <MergeAutoTopics()> is done, this function removes any remaining headerless topics from the file.  If they don't merge
        +#   into anything, they're not valid topics.
        +#
        +sub RemoveRemainingHeaderlessTopics
        +    {
        +    my ($self) = @_;
        +
        +    my $index = 0;
        +    while ($index < scalar @parsedFile)
        +        {
        +        if ($parsedFile[$index]->Title())
        +            {  $index++;  }
        +        else
        +            {  splice(@parsedFile, $index, 1);  };
        +        };
        +    };
        +
        +
        +#
        +#   Function: MakeAutoGroups
        +#
        +#   Creates group topics for files that do not have them.
        +#
        +sub MakeAutoGroups
        +    {
        +    my ($self) = @_;
        +
        +    # No groups only one topic.
        +    if (scalar @parsedFile < 2)
        +        {  return;  };
        +
        +    my $index = 0;
        +    my $startStretch = 0;
        +
        +    # Skip the first entry if its the page title.
        +    if (NaturalDocs::Topics->TypeInfo( $parsedFile[0]->Type() )->PageTitleIfFirst())
        +        {
        +        $index = 1;
        +        $startStretch = 1;
        +        };
        +
        +    # Make auto-groups for each stretch between scope-altering topics.
        +    while ($index < scalar @parsedFile)
        +        {
        +        my $scope = NaturalDocs::Topics->TypeInfo($parsedFile[$index]->Type())->Scope();
        +
        +        if ($scope == ::SCOPE_START() || $scope == ::SCOPE_END())
        +            {
        +            if ($index > $startStretch)
        +                {  $index += $self->MakeAutoGroupsFor($startStretch, $index);  };
        +
        +            $startStretch = $index + 1;
        +            };
        +
        +        $index++;
        +        };
        +
        +    if ($index > $startStretch)
        +        {  $self->MakeAutoGroupsFor($startStretch, $index);  };
        +    };
        +
        +
        +#
        +#   Function: MakeAutoGroupsFor
        +#
        +#   Creates group topics for sections of files that do not have them.  A support function for <MakeAutoGroups()>.
        +#
        +#   Parameters:
        +#
        +#       startIndex - The index to start at.
        +#       endIndex - The index to end at.  Not inclusive.
        +#
        +#   Returns:
        +#
        +#       The number of group topics added.
        +#
        +sub MakeAutoGroupsFor #(startIndex, endIndex)
        +    {
        +    my ($self, $startIndex, $endIndex) = @_;
        +
        +    # No groups if any are defined already.
        +    for (my $i = $startIndex; $i < $endIndex; $i++)
        +        {
        +        if ($parsedFile[$i]->Type() eq ::TOPIC_GROUP())
        +            {  return 0;  };
        +        };
        +
        +
        +    use constant COUNT => 0;
        +    use constant TYPE => 1;
        +    use constant SECOND_TYPE => 2;
        +    use constant SIZE => 3;
        +
        +    # This is an array of ( count, type, secondType ) triples.  Count and Type will always be filled in; count is the number of
        +    # consecutive topics of type.  On the second pass, if small groups are combined secondType will be filled in.  There will not be
        +    # more than two types per group.
        +    my @groups;
        +    my $groupIndex = 0;
        +
        +
        +    # First pass: Determine all the groups.
        +
        +    my $i = $startIndex;
        +    my $currentType;
        +
        +    while ($i < $endIndex)
        +        {
        +        if (!defined $currentType || ($parsedFile[$i]->Type() ne $currentType && $parsedFile[$i]->Type() ne ::TOPIC_GENERIC()) )
        +            {
        +            if (defined $currentType)
        +                {  $groupIndex += SIZE;  };
        +
        +            $currentType = $parsedFile[$i]->Type();
        +
        +            $groups[$groupIndex + COUNT] = 1;
        +            $groups[$groupIndex + TYPE] = $currentType;
        +            }
        +        else
        +            {  $groups[$groupIndex + COUNT]++;  };
        +
        +        $i++;
        +        };
        +
        +
        +    # Second pass: Combine groups based on "noise".  Noise means types go from A to B to A at least once, and there are at least
        +    # two groups in a row with three or less, and at least one of those groups is two or less.  So 3, 3, 3 doesn't count as noise, but
        +    # 3, 2, 3 does.
        +
        +    $groupIndex = 0;
        +
        +    # While there are at least three groups left...
        +    while ($groupIndex < scalar @groups - (2 * SIZE))
        +        {
        +        # If the group two places in front of this one has the same type...
        +        if ($groups[$groupIndex + (2 * SIZE) + TYPE] eq $groups[$groupIndex + TYPE])
        +            {
        +            # It means we went from A to B to A, which partially qualifies as noise.
        +
        +            my $firstType = $groups[$groupIndex + TYPE];
        +            my $secondType = $groups[$groupIndex + SIZE + TYPE];
        +
        +            if (NaturalDocs::Topics->TypeInfo($firstType)->CanGroupWith($secondType) ||
        +                NaturalDocs::Topics->TypeInfo($secondType)->CanGroupWith($firstType))
        +                {
        +                my $hasNoise;
        +
        +                my $hasThrees;
        +                my $hasTwosOrOnes;
        +
        +                my $endIndex = $groupIndex;
        +
        +                while ($endIndex < scalar @groups &&
        +                         ($groups[$endIndex + TYPE] eq $firstType || $groups[$endIndex + TYPE] eq $secondType))
        +                    {
        +                    if ($groups[$endIndex + COUNT] > 3)
        +                        {
        +                        # They must be consecutive to count.
        +                        $hasThrees = 0;
        +                        $hasTwosOrOnes = 0;
        +                        }
        +                    elsif ($groups[$endIndex + COUNT] == 3)
        +                        {
        +                        $hasThrees = 1;
        +
        +                        if ($hasTwosOrOnes)
        +                            {  $hasNoise = 1;  };
        +                        }
        +                    else # < 3
        +                        {
        +                        if ($hasThrees || $hasTwosOrOnes)
        +                            {  $hasNoise = 1;  };
        +
        +                        $hasTwosOrOnes = 1;
        +                        };
        +
        +                    $endIndex += SIZE;
        +                    };
        +
        +                if (!$hasNoise)
        +                    {
        +                    $groupIndex = $endIndex - SIZE;
        +                    }
        +                else # hasNoise
        +                    {
        +                    $groups[$groupIndex + SECOND_TYPE] = $secondType;
        +
        +                    for (my $noiseIndex = $groupIndex + SIZE; $noiseIndex < $endIndex; $noiseIndex += SIZE)
        +                        {
        +                        $groups[$groupIndex + COUNT] += $groups[$noiseIndex + COUNT];
        +                        };
        +
        +                    splice(@groups, $groupIndex + SIZE, $endIndex - $groupIndex - SIZE);
        +
        +                    $groupIndex += SIZE;
        +                    };
        +                }
        +
        +            else # They can't group together
        +                {
        +                $groupIndex += SIZE;
        +                };
        +            }
        +
        +        else
        +            {  $groupIndex += SIZE;  };
        +        };
        +
        +
        +    # Finally, create group topics for the parsed file.
        +
        +    $groupIndex = 0;
        +    $i = $startIndex;
        +
        +    while ($groupIndex < scalar @groups)
        +        {
        +        if ($groups[$groupIndex + TYPE] ne ::TOPIC_GENERIC())
        +            {
        +            my $topic = $parsedFile[$i];
        +            my $title = NaturalDocs::Topics->NameOfType($groups[$groupIndex + TYPE], 1);
        +
        +            if (defined $groups[$groupIndex + SECOND_TYPE])
        +                {  $title .= ' and ' . NaturalDocs::Topics->NameOfType($groups[$groupIndex + SECOND_TYPE], 1);  };
        +
        +            splice(@parsedFile, $i, 0, NaturalDocs::Parser::ParsedTopic->New(::TOPIC_GROUP(),
        +                                                                                                            $title,
        +                                                                                                            $topic->Package(), $topic->Using(),
        +                                                                                                            undef, undef, undef,
        +                                                                                                            $topic->LineNumber()) );
        +            $i++;
        +            };
        +
        +        $i += $groups[$groupIndex + COUNT];
        +        $groupIndex += SIZE;
        +        };
        +
        +    return (scalar @groups / SIZE);
        +    };
        +
        +
        +#
        +#   Function: AddToClassHierarchy
        +#
        +#   Adds any class topics to the class hierarchy, since they may not have been called with <OnClass()> if they didn't match up to
        +#   an auto-topic.
        +#
        +sub AddToClassHierarchy
        +    {
        +    my ($self) = @_;
        +
        +    foreach my $topic (@parsedFile)
        +        {
        +        if ($topic->Type() && NaturalDocs::Topics->TypeInfo( $topic->Type() )->ClassHierarchy())
        +            {
        +            if ($topic->IsList())
        +                {
        +                my $body = $topic->Body();
        +
        +                while ($body =~ /<ds>([^<]+)<\/ds>/g)
        +                    {
        +                    $self->OnClass( NaturalDocs::SymbolString->FromText( NaturalDocs::NDMarkup->RestoreAmpChars($1) ) );
        +                    };
        +                }
        +            else
        +                {
        +                $self->OnClass($topic->Package());
        +                };
        +            };
        +        };
        +    };
        +
        +
        +#
        +#   Function: AddPackageDelineators
        +#
        +#   Adds section and class topics to make sure the package is correctly represented in the documentation.  Should be called last in
        +#   this process.
        +#
        +sub AddPackageDelineators
        +    {
        +    my ($self) = @_;
        +
        +    my $index = 0;
        +    my $currentPackage;
        +
        +    # Values are the arrayref [ title, type ];
        +    my %usedPackages;
        +
        +    while ($index < scalar @parsedFile)
        +        {
        +        my $topic = $parsedFile[$index];
        +
        +        if ($topic->Package() ne $currentPackage)
        +            {
        +            $currentPackage = $topic->Package();
        +            my $scopeType = NaturalDocs::Topics->TypeInfo($topic->Type())->Scope();
        +
        +            if ($scopeType == ::SCOPE_START())
        +                {
        +                $usedPackages{$currentPackage} = [ $topic->Title(), $topic->Type() ];
        +                }
        +            elsif ($scopeType == ::SCOPE_END())
        +                {
        +                my $newTopic;
        +
        +                if (!defined $currentPackage)
        +                    {
        +                    $newTopic = NaturalDocs::Parser::ParsedTopic->New(::TOPIC_SECTION(), 'Global',
        +                                                                                                   undef, undef,
        +                                                                                                   undef, undef, undef,
        +                                                                                                   $topic->LineNumber(), undef);
        +                    }
        +                else
        +                    {
        +                    my ($title, $body, $summary, $type);
        +                    my @packageIdentifiers = NaturalDocs::SymbolString->IdentifiersOf($currentPackage);
        +
        +                    if (exists $usedPackages{$currentPackage})
        +                        {
        +                        $title = $usedPackages{$currentPackage}->[0];
        +                        $type = $usedPackages{$currentPackage}->[1];
        +                        $body = '<p>(continued)</p>';
        +                        $summary = '(continued)';
        +                        }
        +                    else
        +                        {
        +                        $title = join($language->PackageSeparator(), @packageIdentifiers);
        +                        $type = ::TOPIC_CLASS();
        +
        +                        # Body and summary stay undef.
        +
        +                        $usedPackages{$currentPackage} = $title;
        +                        };
        +
        +                    my @titleIdentifiers = NaturalDocs::SymbolString->IdentifiersOf( NaturalDocs::SymbolString->FromText($title) );
        +                    for (my $i = 0; $i < scalar @titleIdentifiers; $i++)
        +                        {  pop @packageIdentifiers;  };
        +
        +                    $newTopic = NaturalDocs::Parser::ParsedTopic->New($type, $title,
        +                                                                                                   NaturalDocs::SymbolString->Join(@packageIdentifiers), undef,
        +                                                                                                   undef, $summary, $body,
        +                                                                                                   $topic->LineNumber(), undef);
        +                    }
        +
        +                splice(@parsedFile, $index, 0, $newTopic);
        +                $index++;
        +                }
        +            };
        +
        +        $index++;
        +        };
        +    };
        +
        +
        +#
        +#   Function: BreakLists
        +#
        +#   Breaks list topics into individual topics.
        +#
        +sub BreakLists
        +    {
        +    my $self = shift;
        +
        +    my $index = 0;
        +
        +    while ($index < scalar @parsedFile)
        +        {
        +        my $topic = $parsedFile[$index];
        +
        +        if ($topic->IsList() && NaturalDocs::Topics->TypeInfo( $topic->Type() )->BreakLists())
        +            {
        +            my $body = $topic->Body();
        +
        +            my @newTopics;
        +            my $newBody;
        +
        +            my $bodyIndex = 0;
        +
        +            for (;;)
        +                {
        +                my $startList = index($body, '<dl>', $bodyIndex);
        +
        +                if ($startList == -1)
        +                    {  last;  };
        +
        +                $newBody .= substr($body, $bodyIndex, $startList - $bodyIndex);
        +
        +                my $endList = index($body, '</dl>', $startList);
        +                my $listBody = substr($body, $startList, $endList - $startList);
        +
        +                while ($listBody =~ /<ds>([^<]+)<\/ds><dd>(.*?)<\/dd>/g)
        +                    {
        +                    my ($symbol, $description) = ($1, $2);
        +
        +                    push @newTopics, NaturalDocs::Parser::ParsedTopic->New( $topic->Type(), $symbol, $topic->Package(),
        +                                                                                                            $topic->Using(), undef,
        +                                                                                                            $self->GetSummaryFromDescriptionList($description),
        +                                                                                                            '<p>' . $description .  '</p>', $topic->LineNumber(),
        +                                                                                                            undef );
        +                    };
        +
        +                $bodyIndex = $endList + 5;
        +                };
        +
        +            $newBody .= substr($body, $bodyIndex);
        +
        +            # Remove trailing headings.
        +            $newBody =~ s/(?:<h>[^<]+<\/h>)+$//;
        +
        +            # Remove empty headings.
        +            $newBody =~ s/(?:<h>[^<]+<\/h>)+(<h>[^<]+<\/h>)/$1/g;
        +
        +            if ($newBody)
        +                {
        +                unshift @newTopics, NaturalDocs::Parser::ParsedTopic->New( ::TOPIC_GROUP(), $topic->Title(), $topic->Package(),
        +                                                                                                          $topic->Using(), undef,
        +                                                                                                          $self->GetSummaryFromBody($newBody), $newBody,
        +                                                                                                          $topic->LineNumber(), undef );
        +                };
        +
        +            splice(@parsedFile, $index, 1, @newTopics);
        +
        +            $index += scalar @newTopics;
        +            }
        +
        +        else # not a list
        +            {  $index++;  };
        +        };
        +    };
        +
        +
        +#
        +#   Function: GetSummaryFromBody
        +#
        +#   Returns the summary text from the topic body.
        +#
        +#   Parameters:
        +#
        +#       body - The complete topic body, in <NDMarkup>.
        +#
        +#   Returns:
        +#
        +#       The topic summary, or undef if none.
        +#
        +sub GetSummaryFromBody #(body)
        +    {
        +    my ($self, $body) = @_;
        +
        +    my $summary;
        +
        +    # Extract the first sentence from the leading paragraph, if any.  We'll tolerate a single header beforehand, but nothing else.
        +
        +    if ($body =~ /^(?:<h>[^<]*<\/h>)?<p>(.*?)(<\/p>|[\.\!\?](?:[\)\}\'\ ]|&quot;|&gt;))/x)
        +        {
        +        $summary = $1;
        +
        +        if ($2 ne '</p>')
        +            {  $summary .= $2;  };
        +        };
        +
        +    return $summary;
        +    };
        +
        +
        +#
        +#   Function: GetSummaryFromDescriptionList
        +#
        +#   Returns the summary text from a description list entry.
        +#
        +#   Parameters:
        +#
        +#       description - The description in <NDMarkup>.  Should be the content between the <dd></dd> tags only.
        +#
        +#   Returns:
        +#
        +#       The description summary, or undef if none.
        +#
        +sub GetSummaryFromDescriptionList #(description)
        +    {
        +    my ($self, $description) = @_;
        +
        +    my $summary;
        +
        +    if ($description =~ /^(.*?)($|[\.\!\?](?:[\)\}\'\ ]|&quot;|&gt;))/)
        +        {  $summary = $1 . $2;  };
        +
        +    return $summary;
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Parser/JavaDoc.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Parser/JavaDoc.pm
        new file mode 100755
        index 0000000..0e8bd4b
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Parser/JavaDoc.pm
        @@ -0,0 +1,465 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::Parser::JavaDoc
        +#
        +###############################################################################
        +#
        +#   A package for translating JavaDoc topics into Natural Docs.
        +#
        +#   Supported tags:
        +#
        +#       - @param
        +#       - @author
        +#       - @deprecated
        +#       - @code, @literal (doesn't change font)
        +#       - @exception, @throws (doesn't link to class)
        +#       - @link, @linkplain (doesn't change font)
        +#       - @return, @returns
        +#       - @see
        +#       - @since
        +#       - @value (shown as link instead of replacement)
        +#       - @version
        +#
        +#   Stripped tags:
        +#
        +#       - @inheritDoc
        +#       - @serial, @serialField, @serialData
        +#       - All other block level tags.
        +#
        +#   Unsupported tags:
        +#
        +#       These will appear literally in the output because I cannot handle them easily.
        +#
        +#       - @docRoot
        +#       - Any other tags not mentioned
        +#
        +#   Supported HTML:
        +#
        +#       - p
        +#       - b, i, u
        +#       - pre
        +#       - a href
        +#       - ol, ul, li (ol gets converted to ul)
        +#       - gt, lt, amp, quot, nbsp entities
        +#
        +#   Stripped HTML:
        +#
        +#       - code
        +#       - HTML comments
        +#
        +#   Unsupported HTML:
        +#
        +#       These will appear literally in the output because I cannot handle them easily.
        +#
        +#       - Any tags with additional properties other than a href.  (ex. <p class=Something>)
        +#       - Any other tags not mentioned
        +#
        +#   Reference:
        +#
        +#       http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/javadoc.html
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::Parser::JavaDoc;
        +
        +
        +#
        +#   hash: blockTags
        +#   An existence hash of the all-lowercase JavaDoc block tags, not including the @.
        +#
        +my %blockTags = ( 'param' => 1, 'author' => 1, 'deprecated' => 1, 'exception' => 1, 'return' => 1, 'see' => 1,
        +                             'serial' => 1, 'serialfield' => 1, 'serialdata' => 1, 'since' => 1, 'throws' => 1, 'version' => 1,
        +                             'returns' => 1 );
        +
        +#
        +#   hash: inlineTags
        +#   An existence hash of the all-lowercase JavaDoc inline tags, not including the @.
        +#
        +my %inlineTags = ( 'inheritdoc' => 1, 'docroot' => 1, 'code' => 1, 'literal' => 1, 'link' => 1, 'linkplain' => 1, 'value' => 1 );
        +
        +
        +##
        +#   Examines the comment and returns whether it is *definitely* JavaDoc content, i.e. is owned by this package.
        +#
        +#   Parameters:
        +#
        +#       commentLines - An arrayref of the comment lines.  Must have been run through <NaturalDocs::Parser->CleanComment()>.
        +#       isJavaDoc - Whether the comment is JavaDoc styled.  This doesn't necessarily mean it has JavaDoc content.
        +#
        +#   Returns:
        +#
        +#       Whether the comment is *definitely* JavaDoc content.
        +#
        +sub IsMine #(string[] commentLines, bool isJavaDoc)
        +    {
        +    my ($self, $commentLines, $isJavaDoc) = @_;
        +
        +    if (!$isJavaDoc)
        +        {  return undef;  };
        +
        +    for (my $line = 0; $line < scalar @$commentLines; $line++)
        +        {
        +        if ($commentLines->[$line] =~ /^ *@([a-z]+) /i && exists $blockTags{$1} ||
        +            $commentLines->[$line] =~ /\{@([a-z]+) /i && exists $inlineTags{$1})
        +            {
        +            return 1;
        +            };
        +        };
        +
        +    return 0;
        +    };
        +
        +
        +##
        +#   Parses the JavaDoc-syntax comment and adds it to the parsed topic list.
        +#
        +#   Parameters:
        +#
        +#       commentLines - An arrayref of the comment lines.  Must have been run through <NaturalDocs::Parser->CleanComment()>.
        +#                               *The original memory will be changed.*
        +#       isJavaDoc - Whether the comment is JavaDoc styled.  This doesn't necessarily mean it has JavaDoc content.
        +#       lineNumber - The line number of the first of the comment lines.
        +#       parsedTopics - A reference to the array where any new <NaturalDocs::Parser::ParsedTopics> should be placed.
        +#
        +#   Returns:
        +#
        +#       The number of parsed topics added to the array, which in this case will always be one.
        +#
        +sub ParseComment #(string[] commentLines, bool isJavaDoc, int lineNumber, ParsedTopics[]* parsedTopics)
        +    {
        +    my ($self, $commentLines, $isJavaDoc, $lineNumber, $parsedTopics) = @_;
        +
        +
        +    # Stage one: Before block level tags.
        +
        +    my $i = 0;
        +    my $output;
        +    my $unformattedText;
        +    my $inCode;
        +    my $sharedCodeIndent;
        +
        +    while ($i < scalar @$commentLines &&
        +              !($commentLines->[$i] =~ /^ *@([a-z]+) /i && exists $blockTags{$1}) )
        +        {
        +        my $line = $self->ConvertAmpChars($commentLines->[$i]);
        +        my @tokens = split(/(&lt;\/?pre&gt;)/, $line);
        +
        +        foreach my $token (@tokens)
        +            {
        +            if ($token =~ /^&lt;pre&gt;$/i)
        +                {
        +                if (!$inCode && $unformattedText)
        +                    {
        +                    $output .= '<p>' . $self->FormatText($unformattedText, 1) . '</p>';
        +                    };
        +
        +                $inCode = 1;
        +                $unformattedText = undef;
        +                }
        +            elsif ($token =~ /^&lt;\/pre&gt;$/i)
        +                {
        +                if ($inCode && $unformattedText)
        +                    {
        +                    $unformattedText =~ s/^ {$sharedCodeIndent}//mg;
        +                    $unformattedText =~ s/\n{3,}/\n\n/g;
        +                    $unformattedText =~ s/\n+$//;
        +                    $output .= '<code type="anonymous">' . $unformattedText . '</code>';
        +
        +                    $sharedCodeIndent = undef;
        +                    };
        +
        +                $inCode = 0;
        +                $unformattedText = undef;
        +                }
        +            elsif (length($token))
        +                {
        +                if (!$inCode)
        +                    {
        +                    $token =~ s/^ +//;
        +                    if ($unformattedText)
        +                        {  $unformattedText .= ' ';  };
        +                    }
        +                else
        +                    {
        +                    $token =~ /^( *)/;
        +                    my $indent = length($1);
        +
        +                    if (!defined $sharedCodeIndent || $indent < $sharedCodeIndent)
        +                        {  $sharedCodeIndent = $indent;  };
        +                    };
        +
        +                $unformattedText .= $token;
        +                };
        +            };
        +
        +        if ($inCode && $unformattedText)
        +            {  $unformattedText .= "\n";  };
        +
        +        $i++;
        +        };
        +
        +    if ($unformattedText)
        +        {
        +        if ($inCode)
        +            {
        +            $unformattedText =~ s/^ {$sharedCodeIndent}//mg;
        +            $unformattedText =~ s/\n{3,}/\n\n/g;
        +            $unformattedText =~ s/\n+$//;
        +            $output .= '<code type="anonymous">' . $unformattedText . '</code>';
        +            }
        +        else
        +            {  $output .= '<p>' . $self->FormatText($unformattedText, 1) . '</p>';  };
        +
        +        $unformattedText = undef;
        +        };
        +
        +
        +    # Stage two: Block level tags.
        +
        +    my ($keyword, $value, $unformattedTextPtr, $unformattedTextCloser);
        +    my ($params, $authors, $deprecation, $throws, $returns, $seeAlso, $since, $version);
        +
        +
        +    while ($i < scalar @$commentLines)
        +        {
        +        my $line = $self->ConvertAmpChars($commentLines->[$i]);
        +        $line =~ s/^ +//;
        +
        +        if ($line =~ /^@([a-z]+) ?(.*)$/i)
        +            {
        +            ($keyword, $value) = (lc($1), $2);
        +
        +            # Process the previous one, if any.
        +            if ($unformattedText)
        +                {
        +                $$unformattedTextPtr .= $self->FormatText($unformattedText) . $unformattedTextCloser;
        +                $unformattedText = undef;
        +                };
        +
        +            if ($keyword eq 'param')
        +                {
        +                $value =~ /^([a-z0-9_]+) *(.*)$/i;
        +
        +                $params .= '<de>' . $1 . '</de><dd>';
        +                $unformattedText = $2;
        +
        +                $unformattedTextPtr = \$params;
        +                $unformattedTextCloser = '</dd>';
        +                }
        +            elsif ($keyword eq 'exception' || $keyword eq 'throws')
        +                {
        +                $value =~ /^([a-z0-9_]+) *(.*)$/i;
        +
        +                $throws .= '<de>' . $1 . '</de><dd>';
        +                $unformattedText = $2;
        +
        +                $unformattedTextPtr = \$throws;
        +                $unformattedTextCloser = '</dd>';
        +                }
        +            elsif ($keyword eq 'return' || $keyword eq 'returns')
        +                {
        +                if ($returns)
        +                    {  $returns .= ' ';  };
        +
        +                $unformattedText = $value;
        +                $unformattedTextPtr = \$returns;
        +                $unformattedTextCloser = undef;
        +                }
        +            elsif ($keyword eq 'author')
        +                {
        +                if ($authors)
        +                    {  $authors .= ', ';  };
        +
        +                $unformattedText = $value;
        +                $unformattedTextPtr = \$authors;
        +                $unformattedTextCloser = undef;
        +                }
        +            elsif ($keyword eq 'deprecated')
        +                {
        +                if ($deprecation)
        +                    {  $deprecation .= ' ';  };
        +
        +                $unformattedText = $value;
        +                $unformattedTextPtr = \$deprecation;
        +                $unformattedTextCloser = undef;
        +                }
        +            elsif ($keyword eq 'since')
        +                {
        +                if ($since)
        +                    {  $since .= ', ';  };
        +
        +                $unformattedText = $value;
        +                $unformattedTextPtr = \$since;
        +                $unformattedTextCloser = undef;
        +                }
        +            elsif ($keyword eq 'version')
        +                {
        +                if ($version)
        +                    {  $version .= ', ';  };
        +
        +                $unformattedText = $value;
        +                $unformattedTextPtr = \$version;
        +                $unformattedTextCloser = undef;
        +                }
        +            elsif ($keyword eq 'see')
        +                {
        +                if ($seeAlso)
        +                    {  $seeAlso .= ', ';  };
        +
        +                $unformattedText = undef;
        +
        +                if ($value =~ /^&(?:quot|lt);/i)
        +                    {  $seeAlso .= $self->FormatText($value);  }
        +                else
        +                    {  $seeAlso .= $self->ConvertLink($value);  };
        +                };
        +
        +            # Everything else will be skipped.
        +            }
        +        elsif ($unformattedText)
        +            {
        +            $unformattedText .= ' ' . $line;
        +            };
        +
        +        $i++;
        +        };
        +
        +    if ($unformattedText)
        +        {
        +        $$unformattedTextPtr .= $self->FormatText($unformattedText) . $unformattedTextCloser;
        +        $unformattedText = undef;
        +        };
        +
        +    if ($params)
        +        {  $output .= '<h>Parameters</h><dl>' . $params . '</dl>';  };
        +    if ($returns)
        +        {  $output .= '<h>Returns</h><p>' . $returns . '</p>';  };
        +    if ($throws)
        +        {  $output .= '<h>Throws</h><dl>' . $throws . '</dl>';  };
        +    if ($since)
        +        {  $output .= '<h>Since</h><p>' . $since . '</p>';  };
        +    if ($version)
        +        {  $output .= '<h>Version</h><p>' . $version . '</p>';  };
        +    if ($deprecation)
        +        {  $output .= '<h>Deprecated</h><p>' . $deprecation . '</p>';  };
        +    if ($authors)
        +        {  $output .= '<h>Author</h><p>' . $authors . '</p>';  };
        +    if ($seeAlso)
        +        {  $output .= '<h>See Also</h><p>' . $seeAlso . '</p>';  };
        +
        +
        +    # Stage three: Build the parsed topic.
        +
        +    my $summary = NaturalDocs::Parser->GetSummaryFromBody($output);
        +
        +    push @$parsedTopics, NaturalDocs::Parser::ParsedTopic->New(undef, undef, undef, undef, undef, $summary,
        +                                                                                                $output, $lineNumber, undef);
        +    return 1;
        +    };
        +
        +
        +##
        +#   Translates any inline tags or HTML codes to <NDMarkup> and returns it.
        +#
        +sub FormatText #(string text, bool inParagraph)
        +    {
        +    my ($self, $text, $inParagraph) = @_;
        +
        +    # JavaDoc Literal
        +
        +    $text =~ s/\{\@(?:code|literal) ([^\}]*)\}/$self->ConvertAmpChars($1)/gie;
        +
        +
        +    # HTML
        +
        +    $text =~ s/&lt;b&gt;(.*?)&lt;\/b&gt;/<b>$1<\/b>/gi;
        +    $text =~ s/&lt;i&gt;(.*?)&lt;\/i&gt;/<i>$1<\/i>/gi;
        +    $text =~ s/&lt;u&gt;(.*?)&lt;\/u&gt;/<u>$1<\/u>/gi;
        +
        +    $text =~ s/&lt;code&gt;(.*?)&lt;\/code&gt;/$1/gi;
        +
        +    $text =~ s/&lt;ul.*?&gt;(.*?)&lt;\/ul&gt;/<ul>$1<\/ul>/gi;
        +    $text =~ s/&lt;ol.*?&gt;(.*?)&lt;\/ol&gt;/<ul>$1<\/ul>/gi;
        +    $text =~ s/&lt;li.*?&gt;(.*?)&lt;\/li&gt;/<li>$1<\/li>/gi;
        +
        +    $text =~ s/&lt;!--.*?--&gt;//gi;
        +
        +    $text =~ s/&lt;\/p&gt;//gi;
        +    $text =~ s/^&lt;p&gt;//i;
        +    if ($inParagraph)
        +        {  $text =~ s/&lt;p&gt;/<\/p><p>/gi;  }
        +    else
        +        {  $text =~ s/&lt;p&gt;//gi;  };
        +
        +    $text =~ s/&lt;a href=&quot;mailto:(.*?)&quot;.*?&gt;(.*?)&lt;\/a&gt;/$self->MakeEMailLink($1, $2)/gie;
        +    $text =~ s/&lt;a href=&quot;(.*?)&quot;.*?&gt;(.*?)&lt;\/a&gt;/$self->MakeURLLink($1, $2)/gie;
        +
        +    $text =~ s/&amp;nbsp;/ /gi;
        +    $text =~ s/&amp;amp;/&amp;/gi;
        +    $text =~ s/&amp;gt;/&gt;/gi;
        +    $text =~ s/&amp;lt;/&lt;/gi;
        +    $text =~ s/&amp;quot;/&quot;/gi;
        +
        +
        +
        +    # JavaDoc
        +
        +    $text =~ s/\{\@inheritdoc\}//gi;
        +    $text =~ s/\{\@(?:linkplain|link|value) ([^\}]*)\}/$self->ConvertLink($1)/gie;
        +
        +    return $text;
        +    };
        +
        +
        +sub ConvertAmpChars #(text)
        +    {
        +    my ($self, $text) = @_;
        +
        +    $text =~ s/&/&amp;/g;
        +    $text =~ s/</&lt;/g;
        +    $text =~ s/>/&gt;/g;
        +    $text =~ s/"/&quot;/g;
        +
        +    return $text;
        +    };
        +
        +sub ConvertLink #(text)
        +    {
        +    my ($self, $text) = @_;
        +
        +    $text =~ /^ *([a-z0-9\_\.\:\#]+(?:\([^\)]*\))?) *(.*)$/i;
        +    my ($target, $label) = ($1, $2);
        +
        +    # Convert the anchor to part of the link, but remove it altogether if it's the beginning of the link.
        +    $target =~ s/^\#//;
        +    $target =~ s/\#/\./;
        +
        +    $label =~ s/ +$//;
        +
        +    if (!length $label)
        +        {  return '<link target="' . $target . '" name="' . $target . '" original="' . $target . '">';  }
        +    else
        +        {  return '<link target="' . $target . '" name="' . $label . '" original="' . $label . ' (' . $target . ')">';  };
        +    };
        +
        +sub MakeURLLink #(target, text)
        +    {
        +    my ($self, $target, $text) = @_;
        +    return '<url target="' . $target . '" name="' . $text . '">';
        +    };
        +
        +sub MakeEMailLink #(target, text)
        +    {
        +    my ($self, $target, $text) = @_;
        +    return '<email target="' . $target . '" name="' . $text . '">';
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Parser/Native.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Parser/Native.pm
        new file mode 100755
        index 0000000..39d8663
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Parser/Native.pm
        @@ -0,0 +1,1073 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::Parser::Native
        +#
        +###############################################################################
        +#
        +#   A package that converts comments from Natural Docs' native format into <NaturalDocs::Parser::ParsedTopic> objects.
        +#   Unlike most second-level packages, these are packages and not object classes.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::Parser::Native;
        +
        +
        +###############################################################################
        +# Group: Variables
        +
        +
        +# Return values of TagType().  Not documented here.
        +use constant POSSIBLE_OPENING_TAG => 1;
        +use constant POSSIBLE_CLOSING_TAG => 2;
        +use constant NOT_A_TAG => 3;
        +
        +
        +#
        +#   var: package
        +#
        +#   A <SymbolString> representing the package normal topics will be a part of at the current point in the file.  This is a package variable
        +#   because it needs to be reserved between function calls.
        +#
        +my $package;
        +
        +#
        +#   hash: functionListIgnoredHeadings
        +#
        +#   An existence hash of all the headings that prevent the parser from creating function list symbols.  Whenever one of
        +#   these headings are used in a function list topic, symbols are not created from definition lists until the next heading.  The keys
        +#   are in all lowercase.
        +#
        +my %functionListIgnoredHeadings = ( 'parameters' => 1,
        +                                                       'parameter' => 1,
        +                                                       'params' => 1,
        +                                                       'param' => 1,
        +                                                       'arguments' => 1,
        +                                                       'argument' => 1,
        +                                                       'args' => 1,
        +                                                       'arg' => 1 );
        +
        +
        +###############################################################################
        +# Group: Interface Functions
        +
        +
        +#
        +#   Function: Start
        +#
        +#   This will be called whenever a file is about to be parsed.  It allows the package to reset its internal state.
        +#
        +sub Start
        +    {
        +    my ($self) = @_;
        +    $package = undef;
        +    };
        +
        +
        +#
        +#   Function: IsMine
        +#
        +#   Examines the comment and returns whether it is *definitely* Natural Docs content, i.e. it is owned by this package.  Note
        +#   that a comment can fail this function and still be interpreted as a Natural Docs content, for example a JavaDoc-styled comment
        +#   that doesn't have header lines but no JavaDoc tags either.
        +#
        +#   Parameters:
        +#
        +#       commentLines - An arrayref of the comment lines.  Must have been run through <NaturalDocs::Parser->CleanComment()>.
        +#       isJavaDoc - Whether the comment was JavaDoc-styled.
        +#
        +#   Returns:
        +#
        +#       Whether the comment is *definitely* Natural Docs content.
        +#
        +sub IsMine #(string[] commentLines, bool isJavaDoc)
        +    {
        +    my ($self, $commentLines, $isJavaDoc) = @_;
        +
        +    # Skip to the first line with content.
        +    my $line = 0;
        +
        +    while ($line < scalar @$commentLines && !length $commentLines->[$line])
        +        {  $line++;  };
        +
        +    return $self->ParseHeaderLine($commentLines->[$line]);
        +    };
        +
        +
        +
        +#
        +#   Function: ParseComment
        +#
        +#   This will be called whenever a comment capable of containing Natural Docs content is found.
        +#
        +#   Parameters:
        +#
        +#       commentLines - An arrayref of the comment lines.  Must have been run through <NaturalDocs::Parser->CleanComment()>.
        +#                               *The original memory will be changed.*
        +#       isJavaDoc - Whether the comment is JavaDoc styled.
        +#       lineNumber - The line number of the first of the comment lines.
        +#       parsedTopics - A reference to the array where any new <NaturalDocs::Parser::ParsedTopics> should be placed.
        +#
        +#   Returns:
        +#
        +#       The number of parsed topics added to the array, or zero if none.
        +#
        +sub ParseComment #(commentLines, isJavaDoc, lineNumber, parsedTopics)
        +    {
        +    my ($self, $commentLines, $isJavaDoc, $lineNumber, $parsedTopics) = @_;
        +
        +    my $topicCount = 0;
        +    my $prevLineBlank = 1;
        +    my $inCodeSection = 0;
        +
        +    my ($type, $scope, $isPlural, $title, $symbol);
        +    #my $package;  # package variable.
        +    my ($newKeyword, $newTitle);
        +
        +    my $index = 0;
        +
        +    my $bodyStart = 0;
        +    my $bodyEnd = 0;  # Not inclusive.
        +
        +    while ($index < scalar @$commentLines)
        +        {
        +        # Everything but leading whitespace was removed beforehand.
        +
        +        # If we're in a code section...
        +        if ($inCodeSection)
        +            {
        +            if ($commentLines->[$index] =~ /^ *\( *(?:end|finish|done)(?: +(?:table|code|example|diagram))? *\)$/i)
        +                {  $inCodeSection = undef;  };
        +
        +            $prevLineBlank = 0;
        +            $bodyEnd++;
        +            }
        +
        +        # If the line is empty...
        +        elsif (!length($commentLines->[$index]))
        +            {
        +            $prevLineBlank = 1;
        +
        +            if ($topicCount)
        +                {  $bodyEnd++;  };
        +            }
        +
        +        # If the line has a recognized header and the previous line is blank...
        +        elsif ($prevLineBlank && (($newKeyword, $newTitle) = $self->ParseHeaderLine($commentLines->[$index])) )
        +            {
        +            # Process the previous one, if any.
        +
        +            if ($topicCount)
        +                {
        +                if ($scope == ::SCOPE_START() || $scope == ::SCOPE_END())
        +                    {  $package = undef;  };
        +
        +                my $body = $self->FormatBody($commentLines, $bodyStart, $bodyEnd, $type, $isPlural);
        +                my $newTopic = $self->MakeParsedTopic($type, $title, $package, $body, $lineNumber + $bodyStart - 1, $isPlural);
        +                push @$parsedTopics, $newTopic;
        +
        +                $package = $newTopic->Package();
        +                };
        +
        +            $title = $newTitle;
        +
        +            my $typeInfo;
        +            ($type, $typeInfo, $isPlural) = NaturalDocs::Topics->KeywordInfo($newKeyword);
        +            $scope = $typeInfo->Scope();
        +
        +            $bodyStart = $index + 1;
        +            $bodyEnd = $index + 1;
        +
        +            $topicCount++;
        +
        +            $prevLineBlank = 0;
        +            }
        +
        +        # If we're on a non-empty, non-header line of a JavaDoc-styled comment and we haven't started a topic yet...
        +        elsif ($isJavaDoc && !$topicCount)
        +            {
        +            $type = undef;
        +            $scope = ::SCOPE_NORMAL();  # The scope repair and topic merging processes will handle if this is a class topic.
        +            $isPlural = undef;
        +            $title = undef;
        +            $symbol = undef;
        +
        +            $bodyStart = $index;
        +            $bodyEnd = $index + 1;
        +
        +            $topicCount++;
        +
        +            $prevLineBlank = undef;
        +            }
        +
        +        # If we're on a normal content line within a topic
        +        elsif ($topicCount)
        +            {
        +            $prevLineBlank = 0;
        +            $bodyEnd++;
        +
        +            if ($commentLines->[$index] =~ /^ *\( *(?:(?:start|begin)? +)?(?:table|code|example|diagram) *\)$/i)
        +                {  $inCodeSection = 1;  };
        +            };
        +
        +
        +        $index++;
        +        };
        +
        +
        +    # Last one, if any.  This is the only one that gets the prototypes.
        +    if ($topicCount)
        +        {
        +        if ($scope == ::SCOPE_START() || $scope == ::SCOPE_END())
        +            {  $package = undef;  };
        +
        +        my $body = $self->FormatBody($commentLines, $bodyStart, $bodyEnd, $type, $isPlural);
        +        my $newTopic = $self->MakeParsedTopic($type, $title, $package, $body, $lineNumber + $bodyStart - 1, $isPlural);
        +        push @$parsedTopics, $newTopic;
        +        $topicCount++;
        +
        +        $package = $newTopic->Package();
        +        };
        +
        +    return $topicCount;
        +    };
        +
        +
        +#
        +#   Function: ParseHeaderLine
        +#
        +#   If the passed line is a topic header, returns the array ( keyword, title ).  Otherwise returns an empty array.
        +#
        +sub ParseHeaderLine #(line)
        +    {
        +    my ($self, $line) = @_;
        +
        +    if ($line =~ /^ *([a-z0-9 ]*[a-z0-9]): +(.*)$/i)
        +        {
        +        my ($keyword, $title) = ($1, $2);
        +
        +        # We need to do it this way because if you do "if (ND:T->KeywordInfo($keyword)" and the last element of the array it
        +        # returns is false, the statement is false.  That is really retarded, but there it is.
        +        my ($type, undef, undef) = NaturalDocs::Topics->KeywordInfo($keyword);
        +
        +        if ($type)
        +            {  return ($keyword, $title);  }
        +        else
        +            {  return ( );  };
        +        }
        +    else
        +        {  return ( );  };
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Support Functions
        +
        +
        +#
        +#   Function: MakeParsedTopic
        +#
        +#   Creates a <NaturalDocs::Parser::ParsedTopic> object for the passed parameters.  Scope is gotten from
        +#   the package variable <package> instead of from the parameters.  The summary is generated from the body.
        +#
        +#   Parameters:
        +#
        +#       type         - The <TopicType>.  May be undef for headerless topics.
        +#       title          - The title of the topic.  May be undef for headerless topics.
        +#       package    - The package <SymbolString> the topic appears in.
        +#       body        - The topic's body in <NDMarkup>.
        +#       lineNumber - The topic's line number.
        +#       isList         - Whether the topic is a list.
        +#
        +#   Returns:
        +#
        +#       The <NaturalDocs::Parser::ParsedTopic> object.
        +#
        +sub MakeParsedTopic #(type, title, package, body, lineNumber, isList)
        +    {
        +    my ($self, $type, $title, $package, $body, $lineNumber, $isList) = @_;
        +
        +    my $summary;
        +
        +    if (defined $body)
        +        {  $summary = NaturalDocs::Parser->GetSummaryFromBody($body);  };
        +
        +    return NaturalDocs::Parser::ParsedTopic->New($type, $title, $package, undef, undef, $summary,
        +                                                                         $body, $lineNumber, $isList);
        +    };
        +
        +
        +#
        +#    Function: FormatBody
        +#
        +#    Converts the section body to <NDMarkup>.
        +#
        +#    Parameters:
        +#
        +#       commentLines - The arrayref of comment lines.
        +#       startingIndex  - The starting index of the body to format.
        +#       endingIndex   - The ending index of the body to format, *not* inclusive.
        +#       type               - The type of the section.  May be undef for headerless comments.
        +#       isList              - Whether it's a list topic.
        +#
        +#    Returns:
        +#
        +#        The body formatted in <NDMarkup>.
        +#
        +sub FormatBody #(commentLines, startingIndex, endingIndex, type, isList)
        +    {
        +    my ($self, $commentLines, $startingIndex, $endingIndex, $type, $isList) = @_;
        +
        +    use constant TAG_NONE => 1;
        +    use constant TAG_PARAGRAPH => 2;
        +    use constant TAG_BULLETLIST => 3;
        +    use constant TAG_DESCRIPTIONLIST => 4;
        +    use constant TAG_HEADING => 5;
        +    use constant TAG_PREFIXCODE => 6;
        +    use constant TAG_TAGCODE => 7;
        +
        +    my %tagEnders = ( TAG_NONE() => '',
        +                                 TAG_PARAGRAPH() => '</p>',
        +                                 TAG_BULLETLIST() => '</li></ul>',
        +                                 TAG_DESCRIPTIONLIST() => '</dd></dl>',
        +                                 TAG_HEADING() => '</h>',
        +                                 TAG_PREFIXCODE() => '</code>',
        +                                 TAG_TAGCODE() => '</code>' );
        +
        +    my $topLevelTag = TAG_NONE;
        +
        +    my $output;
        +    my $textBlock;
        +    my $prevLineBlank = 1;
        +
        +    my $codeBlock;
        +    my $removedCodeSpaces;
        +
        +    my $ignoreListSymbols;
        +
        +    my $index = $startingIndex;
        +
        +    while ($index < $endingIndex)
        +        {
        +        # If we're in a tagged code section...
        +        if ($topLevelTag == TAG_TAGCODE)
        +            {
        +            if ($commentLines->[$index] =~ /^ *\( *(?:end|finish|done)(?: +(?:table|code|example|diagram))? *\)$/i)
        +                {
        +                $codeBlock =~ s/\n+$//;
        +                $output .= NaturalDocs::NDMarkup->ConvertAmpChars($codeBlock) . '</code>';
        +                $codeBlock = undef;
        +                $topLevelTag = TAG_NONE;
        +                $prevLineBlank = undef;
        +                }
        +            else
        +                {
        +                $self->AddToCodeBlock($commentLines->[$index], \$codeBlock, \$removedCodeSpaces);
        +                };
        +            }
        +
        +        # If the line starts with a code designator...
        +        elsif ($commentLines->[$index] =~ /^ *[>:|](.*)$/)
        +            {
        +            my $code = $1;
        +
        +            if ($topLevelTag == TAG_PREFIXCODE)
        +                {
        +                $self->AddToCodeBlock($code, \$codeBlock, \$removedCodeSpaces);
        +                }
        +            else # $topLevelTag != TAG_PREFIXCODE
        +                {
        +                if (defined $textBlock)
        +                    {
        +                    $output .= $self->RichFormatTextBlock($textBlock) . $tagEnders{$topLevelTag};
        +                    $textBlock = undef;
        +                    };
        +
        +                $topLevelTag = TAG_PREFIXCODE;
        +                $output .= '<code type="anonymous">';
        +                $self->AddToCodeBlock($code, \$codeBlock, \$removedCodeSpaces);
        +                };
        +            }
        +
        +        # If we're not in either code style...
        +        else
        +            {
        +            # Strip any leading whitespace.
        +            $commentLines->[$index] =~ s/^ +//;
        +
        +            # If we were in a prefixed code section...
        +            if ($topLevelTag == TAG_PREFIXCODE)
        +                {
        +                $codeBlock =~ s/\n+$//;
        +                $output .= NaturalDocs::NDMarkup->ConvertAmpChars($codeBlock) . '</code>';
        +                $codeBlock = undef;
        +                $topLevelTag = TAG_NONE;
        +                $prevLineBlank = undef;
        +                };
        +
        +
        +            # If the line is blank...
        +            if (!length($commentLines->[$index]))
        +                {
        +                # End a paragraph.  Everything else ignores it for now.
        +                if ($topLevelTag == TAG_PARAGRAPH)
        +                    {
        +                    $output .= $self->RichFormatTextBlock($textBlock) . '</p>';
        +                    $textBlock = undef;
        +                    $topLevelTag = TAG_NONE;
        +                    };
        +
        +                $prevLineBlank = 1;
        +                }
        +
        +            # If the line starts with a bullet...
        +            elsif ($commentLines->[$index] =~ /^[-\*o+] +([^ ].*)$/ &&
        +                    substr($1, 0, 2) ne '- ')  # Make sure "o - Something" is a definition, not a bullet.
        +                {
        +                my $bulletedText = $1;
        +
        +                if (defined $textBlock)
        +                    {  $output .= $self->RichFormatTextBlock($textBlock);  };
        +
        +                if ($topLevelTag == TAG_BULLETLIST)
        +                    {
        +                    $output .= '</li><li>';
        +                    }
        +                else #($topLevelTag != TAG_BULLETLIST)
        +                    {
        +                    $output .= $tagEnders{$topLevelTag} . '<ul><li>';
        +                    $topLevelTag = TAG_BULLETLIST;
        +                    };
        +
        +                $textBlock = $bulletedText;
        +
        +                $prevLineBlank = undef;
        +                }
        +
        +            # If the line looks like a description list entry...
        +            elsif ($commentLines->[$index] =~ /^(.+?) +- +([^ ].*)$/ && $topLevelTag != TAG_PARAGRAPH)
        +                {
        +                my $entry = $1;
        +                my $description = $2;
        +
        +                if (defined $textBlock)
        +                    {  $output .= $self->RichFormatTextBlock($textBlock);  };
        +
        +                if ($topLevelTag == TAG_DESCRIPTIONLIST)
        +                    {
        +                    $output .= '</dd>';
        +                    }
        +                else #($topLevelTag != TAG_DESCRIPTIONLIST)
        +                    {
        +                    $output .= $tagEnders{$topLevelTag} . '<dl>';
        +                    $topLevelTag = TAG_DESCRIPTIONLIST;
        +                    };
        +
        +                if (($isList && !$ignoreListSymbols) || $type eq ::TOPIC_ENUMERATION())
        +                    {
        +                    $output .= '<ds>' . NaturalDocs::NDMarkup->ConvertAmpChars($entry) . '</ds><dd>';
        +                    }
        +                else
        +                    {
        +                    $output .= '<de>' . NaturalDocs::NDMarkup->ConvertAmpChars($entry) . '</de><dd>';
        +                    };
        +
        +                $textBlock = $description;
        +
        +                $prevLineBlank = undef;
        +                }
        +
        +            # If the line could be a header...
        +            elsif ($prevLineBlank && $commentLines->[$index] =~ /^(.*)([^ ]):$/)
        +                {
        +                my $headerText = $1 . $2;
        +
        +                if (defined $textBlock)
        +                    {
        +                    $output .= $self->RichFormatTextBlock($textBlock);
        +                    $textBlock = undef;
        +                    }
        +
        +                $output .= $tagEnders{$topLevelTag};
        +                $topLevelTag = TAG_NONE;
        +
        +                $output .= '<h>' . $self->RichFormatTextBlock($headerText) . '</h>';
        +
        +                if ($type eq ::TOPIC_FUNCTION() && $isList)
        +                    {
        +                    $ignoreListSymbols = exists $functionListIgnoredHeadings{lc($headerText)};
        +                    };
        +
        +                $prevLineBlank = undef;
        +                }
        +
        +            # If the line looks like a code tag...
        +            elsif ($commentLines->[$index] =~ /^\( *(?:(?:start|begin)? +)?(table|code|example|diagram) *\)$/i)
        +                {
        +				my $codeType = lc($1);
        +
        +                if (defined $textBlock)
        +                    {
        +                    $output .= $self->RichFormatTextBlock($textBlock);
        +                    $textBlock = undef;
        +                    };
        +
        +                if ($codeType eq 'example')
        +                	{  $codeType = 'anonymous';  }
        +                elsif ($codeType eq 'table' || $codeType eq 'diagram')
        +                	{  $codeType = 'text';  }
        +                # else leave it 'code'
        +
        +                $output .= $tagEnders{$topLevelTag} . '<code type="' . $codeType . '">';
        +                $topLevelTag = TAG_TAGCODE;
        +                }
        +
        +            # If the line looks like an inline image...
        +            elsif ($commentLines->[$index] =~ /^(\( *see +)([^\)]+?)( *\))$/i)
        +                {
        +                if (defined $textBlock)
        +                    {
        +                    $output .= $self->RichFormatTextBlock($textBlock);
        +                    $textBlock = undef;
        +                    };
        +
        +                $output .= $tagEnders{$topLevelTag};
        +                $topLevelTag = TAG_NONE;
        +
        +                $output .= '<img mode="inline" target="' . NaturalDocs::NDMarkup->ConvertAmpChars($2) . '" '
        +                                . 'original="' . NaturalDocs::NDMarkup->ConvertAmpChars($1 . $2 . $3) . '">';
        +
        +                $prevLineBlank = undef;
        +                }
        +
        +            # If the line isn't any of those, we consider it normal text.
        +            else
        +                {
        +                # A blank line followed by normal text ends lists.  We don't handle this when we detect if the line's blank because
        +                # we don't want blank lines between list items to break the list.
        +                if ($prevLineBlank && ($topLevelTag == TAG_BULLETLIST || $topLevelTag == TAG_DESCRIPTIONLIST))
        +                    {
        +                    $output .= $self->RichFormatTextBlock($textBlock) . $tagEnders{$topLevelTag} . '<p>';
        +
        +                    $topLevelTag = TAG_PARAGRAPH;
        +                    $textBlock = undef;
        +                    }
        +
        +                elsif ($topLevelTag == TAG_NONE)
        +                    {
        +                    $output .= '<p>';
        +                    $topLevelTag = TAG_PARAGRAPH;
        +                    # textBlock will already be undef.
        +                    };
        +
        +                if (defined $textBlock)
        +                    {  $textBlock .= ' ';  };
        +
        +                $textBlock .= $commentLines->[$index];
        +
        +                $prevLineBlank = undef;
        +                };
        +            };
        +
        +        $index++;
        +        };
        +
        +    # Clean up anything left dangling.
        +    if (defined $textBlock)
        +        {
        +        $output .= $self->RichFormatTextBlock($textBlock) . $tagEnders{$topLevelTag};
        +        }
        +    elsif (defined $codeBlock)
        +        {
        +        $codeBlock =~ s/\n+$//;
        +        $output .= NaturalDocs::NDMarkup->ConvertAmpChars($codeBlock) . '</code>';
        +        };
        +
        +    return $output;
        +    };
        +
        +
        +#
        +#   Function: AddToCodeBlock
        +#
        +#   Adds a line of text to a code block, handling all the indentation processing required.
        +#
        +#   Parameters:
        +#
        +#       line - The line of text to add.
        +#       codeBlockRef - A reference to the code block to add it to.
        +#       removedSpacesRef - A reference to a variable to hold the number of spaces removed.  It needs to be stored between calls.
        +#                                      It will reset itself automatically when the code block codeBlockRef points to is undef.
        +#
        +sub AddToCodeBlock #(line, codeBlockRef, removedSpacesRef)
        +    {
        +    my ($self, $line, $codeBlockRef, $removedSpacesRef) = @_;
        +
        +    $line =~ /^( *)(.*)$/;
        +    my ($spaces, $code) = ($1, $2);
        +
        +    if (!defined $$codeBlockRef)
        +        {
        +        if (length($code))
        +            {
        +            $$codeBlockRef = $code . "\n";
        +            $$removedSpacesRef = length($spaces);
        +            };
        +        # else ignore leading line breaks.
        +        }
        +
        +    elsif (length $code)
        +        {
        +        # Make sure we have the minimum amount of spaces to the left possible.
        +        if (length($spaces) != $$removedSpacesRef)
        +            {
        +            my $spaceDifference = abs( length($spaces) - $$removedSpacesRef );
        +            my $spacesToAdd = ' ' x $spaceDifference;
        +
        +            if (length($spaces) > $$removedSpacesRef)
        +                {
        +                $$codeBlockRef .= $spacesToAdd;
        +                }
        +            else
        +                {
        +                $$codeBlockRef =~ s/^(.)/$spacesToAdd . $1/gme;
        +                $$removedSpacesRef = length($spaces);
        +                };
        +            };
        +
        +        $$codeBlockRef .= $code . "\n";
        +        }
        +
        +    else # (!length $code)
        +        {
        +        $$codeBlockRef .= "\n";
        +        };
        +    };
        +
        +
        +#
        +#   Function: RichFormatTextBlock
        +#
        +#   Applies rich <NDMarkup> formatting to a chunk of text.  This includes both amp chars, formatting tags, and link tags.
        +#
        +#   Parameters:
        +#
        +#       text - The block of text to format.
        +#
        +#   Returns:
        +#
        +#       The formatted text block.
        +#
        +sub RichFormatTextBlock #(text)
        +    {
        +    my ($self, $text) = @_;
        +    my $output;
        +
        +
        +    # First find bare urls, e-mail addresses, and images.  We have to do this before the split because they may contain underscores
        +    # or asterisks.  We have to mark the tags with \x1E and \x1F so they don't get confused with angle brackets from the comment.
        +    # We can't convert the amp chars beforehand because we need lookbehinds in the regexps below and they need to be
        +    # constant length.  Sucks, huh?
        +
        +    $text =~ s{
        +                       # The previous character can't be an alphanumeric or an opening angle bracket.
        +                       (?<!  [a-z0-9<]  )
        +
        +                       # Optional mailto:.  Ignored in output.
        +                       (?:mailto\:)?
        +
        +                       # Begin capture
        +                       (
        +
        +                       # The user portion.  Alphanumeric and - _.  Dots can appear between, but not at the edges or more than
        +                       # one in a row.
        +                       (?:  [a-z0-9\-_]+  \.  )*   [a-z0-9\-_]+
        +
        +                       @
        +
        +                       # The domain.  Alphanumeric and -.  Dots same as above, however, there must be at least two sections
        +                       # and the last one must be two to four alphanumeric characters (.com, .uk, .info, .203 for IP addresses)
        +                       (?:  [a-z0-9\-]+  \.  )+  [a-z]{2,4}
        +
        +                       # End capture.
        +                       )
        +
        +                       # The next character can't be an alphanumeric, which should prevent .abcde from matching the two to
        +                       # four character requirement, or a closing angle bracket.
        +                       (?!  [a-z0-9>]  )
        +
        +                       }
        +
        +                       {"\x1E" . 'email target="' . NaturalDocs::NDMarkup->ConvertAmpChars($1) . '" '
        +                       . 'name="' . NaturalDocs::NDMarkup->ConvertAmpChars($1) . '"' . "\x1F"}igxe;
        +
        +    $text =~ s{
        +                       # The previous character can't be an alphanumeric or an opening angle bracket.
        +                       (?<!  [a-z0-9<]  )
        +
        +                       # Begin capture.
        +                       (
        +
        +                       # URL must start with one of the acceptable protocols.
        +                       (?:http|https|ftp|news|file)\:
        +
        +                       # The acceptable URL characters as far as I know.
        +                       [a-z0-9\-\=\~\@\#\%\&\_\+\/\;\:\?\*\.\,]*
        +
        +                       # The URL characters minus period and comma.  If it ends on them, they're probably intended as
        +                       # punctuation.
        +                       [a-z0-9\-\=\~\@\#\%\&\_\+\/\;\:\?\*]
        +
        +                       # End capture.
        +                       )
        +
        +                       # The next character must not be an acceptable character or a closing angle bracket.  It must also not be a
        +					   # dot and then an acceptable character.  These will prevent the URL from ending early just to get a match.
        +                       (?!  \.?[a-z0-9\-\=\~\@\#\%\&\_\+\/\;\:\?\*\>]  )
        +
        +                       }
        +
        +                       {"\x1E" . 'url target="' . NaturalDocs::NDMarkup->ConvertAmpChars($1) . '" '
        +                       . 'name="' . NaturalDocs::NDMarkup->ConvertAmpChars($1) . '"' . "\x1F"}igxe;
        +
        +
        +    # Find image links.  Inline images should already be pulled out by now.
        +
        +    $text =~ s{(\( *see +)([^\)\<\>]+?)( *\))}
        +                      {"\x1E" . 'img mode="link" target="' . NaturalDocs::NDMarkup->ConvertAmpChars($2) . '" '
        +                        . 'original="' . NaturalDocs::NDMarkup->ConvertAmpChars($1 . $2 . $3) . '"' . "\x1F"}gie;
        +
        +
        +
        +    # Split the text from the potential tags.
        +
        +    my @tempTextBlocks = split(/([\*_<>\x1E\x1F])/, $text);
        +
        +    # Since the symbols are considered dividers, empty strings could appear between two in a row or at the beginning/end of the
        +    # array.  This could seriously screw up TagType(), so we need to get rid of them.
        +    my @textBlocks;
        +
        +    while (scalar @tempTextBlocks)
        +        {
        +        my $tempTextBlock = shift @tempTextBlocks;
        +
        +        if (length $tempTextBlock)
        +            {  push @textBlocks, $tempTextBlock;  };
        +        };
        +
        +
        +    my $bold;
        +    my $underline;
        +    my $underlineHasWhitespace;
        +
        +    my $index = 0;
        +
        +    while ($index < scalar @textBlocks)
        +        {
        +        if ($textBlocks[$index] eq "\x1E")
        +            {
        +            $output .= '<';
        +            $index++;
        +
        +            while ($textBlocks[$index] ne "\x1F")
        +                {
        +                $output .= $textBlocks[$index];
        +                $index++;
        +                };
        +
        +            $output .= '>';
        +            }
        +
        +        elsif ($textBlocks[$index] eq '<' && $self->TagType(\@textBlocks, $index) == POSSIBLE_OPENING_TAG)
        +            {
        +            my $endingIndex = $self->ClosingTag(\@textBlocks, $index, undef);
        +
        +            if ($endingIndex != -1)
        +                {
        +                my $linkText;
        +                $index++;
        +
        +                while ($index < $endingIndex)
        +                    {
        +                    $linkText .= $textBlocks[$index];
        +                    $index++;
        +                    };
        +                # Index will be incremented again at the end of the loop.
        +
        +                $linkText = NaturalDocs::NDMarkup->ConvertAmpChars($linkText);
        +
        +                if ($linkText =~ /^(?:mailto\:)?((?:[a-z0-9\-_]+\.)*[a-z0-9\-_]+@(?:[a-z0-9\-]+\.)+[a-z]{2,4})$/i)
        +                    {  $output .= '<email target="' . $1 . '" name="' . $1 . '">';  }
        +                elsif ($linkText =~ /^(.+?) at (?:mailto\:)?((?:[a-z0-9\-_]+\.)*[a-z0-9\-_]+@(?:[a-z0-9\-]+\.)+[a-z]{2,4})$/i)
        +                    {  $output .= '<email target="' . $2 . '" name="' . $1 . '">';  }
        +                elsif ($linkText =~ /^(?:http|https|ftp|news|file)\:/i)
        +                    {  $output .= '<url target="' . $linkText . '" name="' . $linkText . '">';  }
        +                elsif ($linkText =~ /^(.+?) at ((?:http|https|ftp|news|file)\:.+)/i)
        +                    {  $output .= '<url target="' . $2 . '" name="' . $1 . '">';  }
        +                else
        +                    {  $output .= '<link target="' . $linkText . '" name="' . $linkText . '" original="&lt;' . $linkText . '&gt;">';  };
        +                }
        +
        +            else # it's not a link.
        +                {
        +                $output .= '&lt;';
        +                };
        +            }
        +
        +        elsif ($textBlocks[$index] eq '*')
        +            {
        +            my $tagType = $self->TagType(\@textBlocks, $index);
        +
        +            if ($tagType == POSSIBLE_OPENING_TAG && $self->ClosingTag(\@textBlocks, $index, undef) != -1)
        +                {
        +                # ClosingTag() makes sure tags aren't opened multiple times in a row.
        +                $bold = 1;
        +                $output .= '<b>';
        +                }
        +            elsif ($bold && $tagType == POSSIBLE_CLOSING_TAG)
        +                {
        +                $bold = undef;
        +                $output .= '</b>';
        +                }
        +            else
        +                {
        +                $output .= '*';
        +                };
        +            }
        +
        +        elsif ($textBlocks[$index] eq '_')
        +            {
        +            my $tagType = $self->TagType(\@textBlocks, $index);
        +
        +             if ($tagType == POSSIBLE_OPENING_TAG && $self->ClosingTag(\@textBlocks, $index, \$underlineHasWhitespace) != -1)
        +                {
        +                # ClosingTag() makes sure tags aren't opened multiple times in a row.
        +                $underline = 1;
        +                #underlineHasWhitespace is set by ClosingTag().
        +                $output .= '<u>';
        +                }
        +            elsif ($underline && $tagType == POSSIBLE_CLOSING_TAG)
        +                {
        +                $underline = undef;
        +                #underlineHasWhitespace will be reset by the next opening underline.
        +                $output .= '</u>';
        +                }
        +            elsif ($underline && !$underlineHasWhitespace)
        +                {
        +                # If there's no whitespace between underline tags, all underscores are replaced by spaces so
        +                # _some_underlined_text_ becomes <u>some underlined text</u>.  The standard _some underlined text_
        +                # will work too.
        +                $output .= ' ';
        +                }
        +            else
        +                {
        +                $output .= '_';
        +                };
        +            }
        +
        +        else # plain text or a > that isn't part of a link
        +            {
        +            $output .= NaturalDocs::NDMarkup->ConvertAmpChars($textBlocks[$index]);
        +           };
        +
        +        $index++;
        +        };
        +
        +    return $output;
        +    };
        +
        +
        +#
        +#   Function: TagType
        +#
        +#   Returns whether the tag is a possible opening or closing tag, or neither.  "Possible" because it doesn't check if an opening tag is
        +#   closed or a closing tag is opened, just whether the surrounding characters allow it to be a candidate for a tag.  For example, in
        +#   "A _B" the underscore is a possible opening underline tag, but in "A_B" it is not.  Support function for <RichFormatTextBlock()>.
        +#
        +#   Parameters:
        +#
        +#       textBlocks  - A reference to an array of text blocks.
        +#       index         - The index of the tag.
        +#
        +#   Returns:
        +#
        +#       POSSIBLE_OPENING_TAG, POSSIBLE_CLOSING_TAG, or NOT_A_TAG.
        +#
        +sub TagType #(textBlocks, index)
        +    {
        +    my ($self, $textBlocks, $index) = @_;
        +
        +
        +    # Possible opening tags
        +
        +    if ( ( $textBlocks->[$index] =~ /^[\*_<]$/ ) &&
        +
        +        # Before it must be whitespace, the beginning of the text, or ({["'-/*_.
        +        ( $index == 0 || $textBlocks->[$index-1] =~ /[\ \t\n\(\{\[\"\'\-\/\*\_]$/ ) &&
        +
        +        # Notes for 2.0: Include Spanish upside down ! and ? as well as opening quotes (66) and apostrophes (6).  Look into
        +        # Unicode character classes as well.
        +
        +        # After it must be non-whitespace.
        +        ( $index + 1 < scalar @$textBlocks && $textBlocks->[$index+1] !~ /^[\ \t\n]/) &&
        +
        +        # Make sure we don't accept <<, <=, <-, or *= as opening tags.
        +        ( $textBlocks->[$index] ne '<' || $textBlocks->[$index+1] !~ /^[<=-]/ ) &&
        +        ( $textBlocks->[$index] ne '*' || $textBlocks->[$index+1] !~ /^[\=\*]/ ) &&
        +
        +        # Make sure we don't accept * or _ before it unless it's <.
        +        ( $textBlocks->[$index] eq '<' || $index == 0 || $textBlocks->[$index-1] !~ /[\*\_]$/) )
        +        {
        +        return POSSIBLE_OPENING_TAG;
        +        }
        +
        +
        +    # Possible closing tags
        +
        +    elsif ( ( $textBlocks->[$index] =~ /^[\*_>]$/) &&
        +
        +            # After it must be whitespace, the end of the text, or )}].,!?"';:-/*_.
        +            ( $index + 1 == scalar @$textBlocks || $textBlocks->[$index+1] =~ /^[ \t\n\)\]\}\.\,\!\?\"\'\;\:\-\/\*\_]/ ||
        +              # Links also get plurals, like <link>s, <linx>es, <link>'s, and <links>'.
        +              ( $textBlocks->[$index] eq '>' && $textBlocks->[$index+1] =~ /^(?:es|s|\')/ ) ) &&
        +
        +            # Notes for 2.0: Include closing quotes (99) and apostrophes (9).  Look into Unicode character classes as well.
        +
        +            # Before it must be non-whitespace.
        +            ( $index != 0 && $textBlocks->[$index-1] !~ /[ \t\n]$/ ) &&
        +
        +            # Make sure we don't accept >>, ->, or => as closing tags.  >= is already taken care of.
        +            ( $textBlocks->[$index] ne '>' || $textBlocks->[$index-1] !~ /[>=-]$/ ) &&
        +
        +            # Make sure we don't accept * or _ after it unless it's >.
        +            ( $textBlocks->[$index] eq '>' || $textBlocks->[$index+1] !~ /[\*\_]$/) )
        +        {
        +        return POSSIBLE_CLOSING_TAG;
        +        }
        +
        +    else
        +        {
        +        return NOT_A_TAG;
        +        };
        +
        +    };
        +
        +
        +#
        +#   Function: ClosingTag
        +#
        +#   Returns whether a tag is closed or not, where it's closed if it is, and optionally whether there is any whitespace between the
        +#   tags.  Support function for <RichFormatTextBlock()>.
        +#
        +#   The results of this function are in full context, meaning that if it says a tag is closed, it can be interpreted as that tag in the
        +#   final output.  It takes into account any spoiling factors, like there being two opening tags in a row.
        +#
        +#   Parameters:
        +#
        +#       textBlocks             - A reference to an array of text blocks.
        +#       index                    - The index of the opening tag.
        +#       hasWhitespaceRef  - A reference to the variable that will hold whether there is whitespace between the tags or not.  If
        +#                                     undef, the function will not check.  If the tag is not closed, the variable will not be changed.
        +#
        +#   Returns:
        +#
        +#       If the tag is closed, it returns the index of the closing tag and puts whether there was whitespace between the tags in
        +#       hasWhitespaceRef if it was specified.  If the tag is not closed, it returns -1 and doesn't touch the variable pointed to by
        +#       hasWhitespaceRef.
        +#
        +sub ClosingTag #(textBlocks, index, hasWhitespace)
        +    {
        +    my ($self, $textBlocks, $index, $hasWhitespaceRef) = @_;
        +
        +    my $hasWhitespace;
        +    my $closingTag;
        +
        +    if ($textBlocks->[$index] eq '*' || $textBlocks->[$index] eq '_')
        +        {  $closingTag = $textBlocks->[$index];  }
        +    elsif ($textBlocks->[$index] eq '<')
        +        {  $closingTag = '>';  }
        +    else
        +        {  return -1;  };
        +
        +    my $beginningIndex = $index;
        +    $index++;
        +
        +    while ($index < scalar @$textBlocks)
        +        {
        +        if ($textBlocks->[$index] eq '<' && $self->TagType($textBlocks, $index) == POSSIBLE_OPENING_TAG)
        +            {
        +            # If we hit a < and we're checking whether a link is closed, it's not.  The first < becomes literal and the second one
        +            # becomes the new link opening.
        +            if ($closingTag eq '>')
        +                {
        +                return -1;
        +                }
        +
        +            # If we're not searching for the end of a link, we have to skip the link because formatting tags cannot appear within
        +            # them.  That's of course provided it's closed.
        +            else
        +                {
        +                my $linkHasWhitespace;
        +
        +                my $endIndex = $self->ClosingTag($textBlocks, $index,
        +                                                                    ($hasWhitespaceRef && !$hasWhitespace ? \$linkHasWhitespace : undef) );
        +
        +                if ($endIndex != -1)
        +                    {
        +                    if ($linkHasWhitespace)
        +                        {  $hasWhitespace = 1;  };
        +
        +                    # index will be incremented again at the end of the loop, which will bring us past the link's >.
        +                    $index = $endIndex;
        +                    };
        +                };
        +            }
        +
        +        elsif ($textBlocks->[$index] eq $closingTag)
        +            {
        +            my $tagType = $self->TagType($textBlocks, $index);
        +
        +            if ($tagType == POSSIBLE_CLOSING_TAG)
        +                {
        +                # There needs to be something between the tags for them to count.
        +                if ($index == $beginningIndex + 1)
        +                    {  return -1;  }
        +                else
        +                    {
        +                    # Success!
        +
        +                    if ($hasWhitespaceRef)
        +                        {  $$hasWhitespaceRef = $hasWhitespace;  };
        +
        +                    return $index;
        +                    };
        +                }
        +
        +            # If there are two opening tags of the same type, the first becomes literal and the next becomes part of a tag.
        +            elsif ($tagType == POSSIBLE_OPENING_TAG)
        +                {  return -1;  }
        +            }
        +
        +        elsif ($hasWhitespaceRef && !$hasWhitespace)
        +            {
        +            if ($textBlocks->[$index] =~ /[ \t\n]/)
        +                {  $hasWhitespace = 1;  };
        +            };
        +
        +        $index++;
        +        };
        +
        +    # Hit the end of the text blocks if we're here.
        +    return -1;
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Parser/ParsedTopic.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Parser/ParsedTopic.pm
        new file mode 100755
        index 0000000..c4c2afd
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Parser/ParsedTopic.pm
        @@ -0,0 +1,254 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::Parser::ParsedTopic
        +#
        +###############################################################################
        +#
        +#   A class for parsed topics of source files.  Also encompasses some of the <TopicType>-specific behavior.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::Parser::ParsedTopic;
        +
        +
        +###############################################################################
        +# Group: Implementation
        +
        +#
        +#   Constants: Members
        +#
        +#   The object is a blessed arrayref with the following indexes.
        +#
        +#       TYPE           - The <TopicType>.
        +#       TITLE          - The title of the topic.
        +#       PACKAGE    - The package <SymbolString> the topic appears in, or undef if none.
        +#       USING         - An arrayref of additional package <SymbolStrings> available to the topic via "using" statements, or undef if
        +#                           none.
        +#       PROTOTYPE - The prototype, if it exists and is applicable.
        +#       SUMMARY    - The summary, if it exists.
        +#       BODY          - The body of the topic, formatted in <NDMarkup>.  Some topics may not have bodies, and if not, this
        +#                           will be undef.
        +#       LINE_NUMBER  - The line number the topic appears at in the file.
        +#       IS_LIST - Whether the topic is a list.
        +#
        +use NaturalDocs::DefineMembers 'TYPE', 'TITLE', 'PACKAGE', 'USING', 'PROTOTYPE', 'SUMMARY', 'BODY',
        +                                                 'LINE_NUMBER', 'IS_LIST';
        +# DEPENDENCY: New() depends on the order of these constants, and that this class is not inheriting any members.
        +
        +
        +#
        +#   Architecture: Title, Package, and Symbol Behavior
        +#
        +#   Title, package, and symbol behavior is a little awkward so it deserves some explanation.  Basically you set them according to
        +#   certain rules, but you get computed values that try to hide all the different scoping situations.
        +#
        +#   Normal Topics:
        +#
        +#       Set them to the title and package as they appear.  "Function" and "PkgA.PkgB" will return "Function" for the title,
        +#       "PkgA.PkgB" for the package, and "PkgA.PkgB.Function" for the symbol.
        +#
        +#       In the rare case that a title has a separator symbol it's treated as inadvertant, so "A vs. B" in "PkgA.PkgB" still returns just
        +#       "PkgA.PkgB" for the package even though if you got it from the symbol it can be seen as "PkgA.PkgB.A vs".
        +#
        +#   Scope Topics:
        +#
        +#       Set the title normally and leave the package undef.  So "PkgA.PkgB" and undef will return "PkgA.PkgB" for the title as well
        +#       as for the package and symbol.
        +#
        +#       The only time you should set the package is when you have full language support and they only documented the class with
        +#       a partial title.  So if you documented "PkgA.PkgB" with just "PkgB", you want to set the package to "PkgA".  This
        +#       will return "PkgB" as the title for presentation and will return "PkgA.PkgB" for the package and symbol, which is correct.
        +#
        +#   Always Global Topics:
        +#
        +#       Set the title and package normally, do not set the package to undef.  So "Global" and "PkgA.PkgB" will return "Global" as
        +#       the title, "PkgA.PkgB" as the package, and "Global" as the symbol.
        +#
        +#   Um, yeah...:
        +#
        +#       So does this suck?  Yes, yes it does.  But the suckiness is centralized here instead of having to be handled everywhere these
        +#       issues come into play.  Just realize there are a certain set of rules to follow when you *set* these variables, and the results
        +#       you see when you *get* them are computed rather than literal.
        +#
        +
        +
        +###############################################################################
        +# Group: Functions
        +
        +#
        +#   Function: New
        +#
        +#   Creates a new object.
        +#
        +#   Parameters:
        +#
        +#       type          - The <TopicType>.
        +#       title           - The title of the topic.
        +#       package    - The package <SymbolString> the topic appears in, or undef if none.
        +#       using         - An arrayref of additional package <SymbolStrings> available to the topic via "using" statements, or undef if
        +#                          none.
        +#       prototype   - The prototype, if it exists and is applicable.  Otherwise set to undef.
        +#       summary   - The summary of the topic, if any.
        +#       body          - The body of the topic, formatted in <NDMarkup>.  May be undef, as some topics may not have bodies.
        +#       lineNumber - The line number the topic appears at in the file.
        +#       isList          - Whether the topic is a list topic or not.
        +#
        +#   Returns:
        +#
        +#       The new object.
        +#
        +sub New #(type, title, package, using, prototype, summary, body, lineNumber, isList)
        +    {
        +    # DEPENDENCY: This depends on the order of the parameter list being the same as the constants, and that there are no
        +    # members inherited from a base class.
        +
        +    my $package = shift;
        +
        +    my $object = [ @_ ];
        +    bless $object, $package;
        +
        +    if (defined $object->[USING])
        +        {  $object->[USING] = [ @{$object->[USING]} ];  };
        +
        +    return $object;
        +    };
        +
        +
        +# Function: Type
        +# Returns the <TopicType>.
        +sub Type
        +    {  return $_[0]->[TYPE];  };
        +
        +# Function: SetType
        +# Replaces the <TopicType>.
        +sub SetType #(type)
        +    {  $_[0]->[TYPE] = $_[1];  };
        +
        +# Function: IsList
        +# Returns whether the topic is a list.
        +sub IsList
        +    {  return $_[0]->[IS_LIST];  };
        +
        +# Function: SetIsList
        +# Sets whether the topic is a list.
        +sub SetIsList
        +    {  $_[0]->[IS_LIST] = $_[1];  };
        +
        +# Function: Title
        +# Returns the title of the topic.
        +sub Title
        +    {  return $_[0]->[TITLE];  };
        +
        +# Function: SetTitle
        +# Replaces the topic title.
        +sub SetTitle #(title)
        +    {  $_[0]->[TITLE] = $_[1];  };
        +
        +#
        +#   Function: Symbol
        +#
        +#   Returns the <SymbolString> defined by the topic.  It is fully resolved and does _not_ need to be joined with <Package()>.
        +#
        +#   Type-Specific Behavior:
        +#
        +#       - If the <TopicType> is always global, the symbol will be generated from the title only.
        +#       - Everything else's symbols will be generated from the title and the package passed to <New()>.
        +#
        +sub Symbol
        +    {
        +    my ($self) = @_;
        +
        +    my $titleSymbol = NaturalDocs::SymbolString->FromText($self->[TITLE]);
        +
        +    if (NaturalDocs::Topics->TypeInfo($self->Type())->Scope() == ::SCOPE_ALWAYS_GLOBAL())
        +        {  return $titleSymbol;  }
        +    else
        +        {
        +        return NaturalDocs::SymbolString->Join( $self->[PACKAGE], $titleSymbol );
        +        };
        +    };
        +
        +
        +#
        +#   Function: Package
        +#
        +#   Returns the package <SymbolString> that the topic appears in.
        +#
        +#   Type-Specific Behavior:
        +#
        +#       - If the <TopicType> has scope, the package will be generated from both the title and the package passed to <New()>, not
        +#         just the package.
        +#       - If the <TopicType> is always global, the package will be the one passed to <New()>, even though it isn't part of it's
        +#         <Symbol()>.
        +#       - Everything else's package will be what was passed to <New()>, even if the title has separator symbols in it.
        +#
        +sub Package
        +    {
        +    my ($self) = @_;
        +
        +    # Headerless topics may not have a type yet.
        +    if ($self->Type() && NaturalDocs::Topics->TypeInfo($self->Type())->Scope() == ::SCOPE_START())
        +        {  return $self->Symbol();  }
        +    else
        +        {  return $self->[PACKAGE];  };
        +    };
        +
        +
        +# Function: SetPackage
        +# Replaces the package the topic appears in.  This will behave the same way as the package parameter in <New()>.  Later calls
        +# to <Package()> will still be generated according to its type-specific behavior.
        +sub SetPackage #(package)
        +    {  $_[0]->[PACKAGE] = $_[1];  };
        +
        +# Function: Using
        +# Returns an arrayref of additional scope <SymbolStrings> available to the topic via "using" statements, or undef if none.
        +sub Using
        +    {  return $_[0]->[USING];  };
        +
        +# Function: SetUsing
        +# Replaces the using arrayref of sope <SymbolStrings>.
        +sub SetUsing #(using)
        +    {  $_[0]->[USING] = $_[1];  };
        +
        +# Function: Prototype
        +# Returns the prototype if one is defined.  Will be undef otherwise.
        +sub Prototype
        +    {  return $_[0]->[PROTOTYPE];  };
        +
        +# Function: SetPrototype
        +# Replaces the function or variable prototype.
        +sub SetPrototype #(prototype)
        +    {  $_[0]->[PROTOTYPE] = $_[1];  };
        +
        +# Function: Summary
        +# Returns the topic summary, if it exists, formatted in <NDMarkup>.
        +sub Summary
        +    {  return $_[0]->[SUMMARY];  };
        +
        +# Function: Body
        +# Returns the topic's body, formatted in <NDMarkup>.  May be undef.
        +sub Body
        +    {  return $_[0]->[BODY];  };
        +
        +# Function: SetBody
        +# Replaces the topic's body, formatted in <NDMarkup>.  May be undef.
        +sub SetBody #(body)
        +    {
        +    my ($self, $body) = @_;
        +    $self->[BODY] = $body;
        +    };
        +
        +# Function: LineNumber
        +# Returns the line the topic appears at in the file.
        +sub LineNumber
        +    {  return $_[0]->[LINE_NUMBER];  };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Project.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Project.pm
        new file mode 100755
        index 0000000..cac8bdb
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Project.pm
        @@ -0,0 +1,1406 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::Project
        +#
        +###############################################################################
        +#
        +#   A package that manages information about the files in the source tree, as well as the list of files that have to be parsed
        +#   and built.
        +#
        +#   Usage and Dependencies:
        +#
        +#       - All the <Config and Data File Functions> are available immediately, except for the status functions.
        +#
        +#       - <ReparseEverything()> and <RebuildEverything()> are available immediately, because they may need to be called
        +#         after <LoadConfigFileInfo()> but before <LoadSourceFileInfo()>.
        +#
        +#       - Prior to <LoadConfigFileInfo()>, <NaturalDocs::Settings> must be initialized.
        +#
        +#       - After <LoadConfigFileInfo()>, the status <Config and Data File Functions> are available as well.
        +#
        +#       - Prior to <LoadSourceFileInfo()>, <NaturalDocs::Settings> and <NaturalDocs::Languages> must be initialized.
        +#
        +#       - After <LoadSourceFileInfo()>, the rest of the <Source File Functions> are available.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use NaturalDocs::Project::SourceFile;
        +use NaturalDocs::Project::ImageFile;
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::Project;
        +
        +
        +###############################################################################
        +# Group: File Handles
        +
        +#
        +#   handle: FH_FILEINFO
        +#
        +#   The file handle for the file information file, <FileInfo.nd>.
        +#
        +
        +#
        +#   handle: FH_CONFIGFILEINFO
        +#
        +#   The file handle for the config file information file, <ConfigFileInfo.nd>.
        +#
        +
        +#
        +#   handle: FH_IMAGEFILE
        +#
        +#   The file handle for determining the dimensions of image files.
        +#
        +
        +
        +
        +###############################################################################
        +# Group: Source File Variables
        +
        +
        +#
        +#   hash: supportedFiles
        +#
        +#   A hash of all the supported files in the input directory.  The keys are the <FileNames>, and the values are
        +#   <NaturalDocs::Project::SourceFile> objects.
        +#
        +my %supportedFiles;
        +
        +#
        +#   hash: filesToParse
        +#
        +#   An existence hash of all the <FileNames> that need to be parsed.
        +#
        +my %filesToParse;
        +
        +#
        +#   hash: filesToBuild
        +#
        +#   An existence hash of all the <FileNames> that need to be built.
        +#
        +my %filesToBuild;
        +
        +#
        +#   hash: filesToPurge
        +#
        +#   An existence hash of the <FileNames> that had Natural Docs content last time, but now either don't exist or no longer have
        +#   content.
        +#
        +my %filesToPurge;
        +
        +#
        +#   hash: unbuiltFilesWithContent
        +#
        +#   An existence hash of all the <FileNames> that have Natural Docs content but are not part of <filesToBuild>.
        +#
        +my %unbuiltFilesWithContent;
        +
        +
        +# bool: reparseEverything
        +# Whether all the source files need to be reparsed.
        +my $reparseEverything;
        +
        +# bool: rebuildEverything
        +# Whether all the source files need to be rebuilt.
        +my $rebuildEverything;
        +
        +# hash: mostUsedLanguage
        +# The name of the most used language.  Doesn't include text files.
        +my $mostUsedLanguage;
        +
        +
        +
        +###############################################################################
        +# Group: Configuration File Variables
        +
        +
        +#
        +#   hash: mainConfigFile
        +#
        +#   A hash mapping all the main configuration file names without paths to their <FileStatus>.  Prior to <LoadConfigFileInfo()>,
        +#   it serves as an existence hashref of the file names.
        +#
        +my %mainConfigFiles = ( 'Topics.txt' => 1, 'Languages.txt' => 1 );
        +
        +#
        +#   hash: userConfigFiles
        +#
        +#   A hash mapping all the user configuration file names without paths to their <FileStatus>.  Prior to <LoadConfigFileInfo()>,
        +#   it serves as an existence hashref of the file names.
        +#
        +my %userConfigFiles = ( 'Topics.txt' => 1, 'Languages.txt' => 1, 'Menu.txt' => 1 );
        +
        +
        +
        +
        +###############################################################################
        +# Group: Image File Variables
        +
        +
        +#
        +#   hash: imageFileExtensions
        +#
        +#   An existence hash of all the file extensions for images.  Extensions are in all lowercase.
        +#
        +my %imageFileExtensions = ( 'jpg' => 1, 'jpeg' => 1, 'gif' => 1, 'png' => 1, 'bmp' => 1 );
        +
        +
        +#
        +#   hash: imageFiles
        +#
        +#   A hash of all the image files in the project.  The keys are the <FileNames> and the values are
        +#   <NaturalDocs::Project::ImageFiles>.
        +#
        +my %imageFiles;
        +
        +
        +#
        +#   hash: imageFilesToUpdate
        +#
        +#   An existence hash of all the image <FileNames> that need to be updated, either because they changed or they're new to the
        +#   project.
        +#
        +my %imageFilesToUpdate;
        +
        +
        +#
        +#   hash: imageFilesToPurge
        +#
        +#   An existence hash of all the image <FileNames> that need to be purged, either because the files no longer exist or because
        +#   they are no longer used.
        +#
        +my %imageFilesToPurge;
        +
        +
        +#
        +#   hash: insensitiveImageFiles
        +#
        +#   A hash that maps all lowercase image <FileNames> to their proper case as it would appear in <imageFiles>.  Used for
        +#   case insensitivity, obviously.
        +#
        +#   You can't just use all lowercase in <imageFiles> because both Linux and HTTP are case sensitive, so the original case must
        +#   be preserved.  We also want to allow separate entries for files that differ based only on case, so it goes to <imageFiles> first
        +#   where they can be distinguished and here only if there's no match.  Ties are broken by whichever is lower with cmp, because
        +#   it has to resolve consistently on all runs of the program.
        +#
        +my %insensitiveImageFiles;
        +
        +
        +
        +###############################################################################
        +# Group: Files
        +
        +
        +#
        +#   File: FileInfo.nd
        +#
        +#   An index of the state of the files as of the last parse.  Used to determine if files were added, deleted, or changed.
        +#
        +#   Format:
        +#
        +#       The format is a text file.
        +#
        +#       > [VersionInt: app version]
        +#
        +#       The beginning of the file is the <VersionInt> it was generated with.
        +#
        +#       > [most used language name]
        +#
        +#       Next is the name of the most used language in the source tree.  Does not include text files.
        +#
        +#       Each following line is
        +#
        +#       > [file name] tab [last modification time] tab [has ND content (0 or 1)] tab [default menu title] \n
        +#
        +#   Revisions:
        +#
        +#       1.3:
        +#
        +#           - The line following the <VersionInt>, which was previously the last modification time of <Menu.txt>, was changed to
        +#             the name of the most used language.
        +#
        +#       1.16:
        +#
        +#           - File names are now absolute.  Prior to 1.16, they were relative to the input directory since only one was allowed.
        +#
        +#       1.14:
        +#
        +#           - The file was renamed from NaturalDocs.files to FileInfo.nd and moved into the Data subdirectory.
        +#
        +#       0.95:
        +#
        +#           - The file version was changed to match the program version.  Prior to 0.95, the version line was 1.  Test for "1" instead
        +#             of "1.0" to distinguish.
        +#
        +
        +
        +#
        +#   File: ConfigFileInfo.nd
        +#
        +#   An index of the state of the config files as of the last parse.
        +#
        +#   Format:
        +#
        +#       > [BINARY_FORMAT]
        +#       > [VersionInt: app version]
        +#
        +#       First is the standard <BINARY_FORMAT> <VersionInt> header.
        +#
        +#       > [UInt32: last modification time of menu]
        +#       > [UInt32: last modification of main topics file]
        +#       > [UInt32: last modification of user topics file]
        +#       > [UInt32: last modification of main languages file]
        +#       > [UInt32: last modification of user languages file]
        +#
        +#       Next are the last modification times of various configuration files as UInt32s in the standard Unix format.
        +#
        +#
        +#   Revisions:
        +#
        +#       1.3:
        +#
        +#           - The file was added to Natural Docs.  Previously the last modification of <Menu.txt> was stored in <FileInfo.nd>, and
        +#             <Topics.txt> and <Languages.txt> didn't exist.
        +#
        +
        +
        +#
        +#   File: ImageFileInfo.nd
        +#
        +#   An index of the state of the image files as of the last parse.
        +#
        +#   Format:
        +#
        +#       > [Standard Binary Header]
        +#
        +#       First is the standard binary file header as defined by <NaturalDocs::BinaryFile>.
        +#
        +#       > [UString16: file name or undef]
        +#       > [UInt32: last modification time]
        +#       > [UInt8: was used]
        +#
        +#       This section is repeated until the file name is null.  The last modification times are UInt32s in the standard Unix format.
        +#
        +#
        +#   Revisions:
        +#
        +#		1.52:
        +#
        +#			- AString16s were changed to UString16s.
        +#
        +#       1.4:
        +#
        +#           - The file was added to Natural Docs.
        +#
        +
        +
        +
        +###############################################################################
        +# Group: File Functions
        +
        +#
        +#   Function: LoadSourceFileInfo
        +#
        +#   Loads the project file from disk and compares it against the files in the input directory.  Project is loaded from
        +#   <FileInfo.nd>.  New and changed files will be added to <FilesToParse()>, and if they have content,
        +#   <FilesToBuild()>.
        +#
        +#   Will call <NaturalDocs::Languages->OnMostUsedLanguageKnown()> if <MostUsedLanguage()> changes.
        +#
        +#   Returns:
        +#
        +#       Returns whether the project was changed in any way.
        +#
        +sub LoadSourceFileInfo
        +    {
        +    my ($self) = @_;
        +
        +    $self->GetAllSupportedFiles();
        +    NaturalDocs::Languages->OnMostUsedLanguageKnown();
        +
        +    my $fileIsOkay;
        +    my $version;
        +    my $hasChanged;
        +    my $lineReader;
        +
        +    if (open(FH_FILEINFO, '<' . $self->DataFile('FileInfo.nd')))
        +        {
        +        $lineReader = NaturalDocs::LineReader->New(\*FH_FILEINFO);
        +
        +        # Check if the file is in the right format.
        +        $version = NaturalDocs::Version->FromString($lineReader->Get());
        +
        +        # The project file need to be rebuilt for 1.16.  The source files need to be reparsed and the output files rebuilt for 1.51.
        +        # We'll tolerate the difference between 1.16 and 1.3 in the loader.
        +
        +        if (NaturalDocs::Version->CheckFileFormat( $version, NaturalDocs::Version->FromString('1.16') ))
        +            {
        +            $fileIsOkay = 1;
        +
        +            if (!NaturalDocs::Version->CheckFileFormat( $version, NaturalDocs::Version->FromString('1.51') ))
        +                {
        +                $reparseEverything = 1;
        +                $rebuildEverything = 1;
        +                $hasChanged = 1;
        +                };
        +            }
        +        else
        +            {
        +            close(FH_FILEINFO);
        +            $hasChanged = 1;
        +            };
        +        };
        +
        +
        +    if ($fileIsOkay)
        +        {
        +        my %indexedFiles;
        +
        +
        +        my $line = $lineReader->Get();
        +
        +        # Prior to 1.3 it was the last modification time of Menu.txt, which we ignore and treat as though the most used language
        +        # changed.  Prior to 1.32 the settings didn't transfer over correctly to Menu.txt so we need to behave that way again.
        +        if ($version < NaturalDocs::Version->FromString('1.32') || lc($mostUsedLanguage) ne lc($line))
        +            {
        +            $reparseEverything = 1;
        +            NaturalDocs::SymbolTable->RebuildAllIndexes();
        +            };
        +
        +
        +        # Parse the rest of the file.
        +
        +        while ($line = $lineReader->Get())
        +            {
        +            my ($file, $modification, $hasContent, $menuTitle) = split(/\t/, $line, 4);
        +
        +            # If the file no longer exists...
        +            if (!exists $supportedFiles{$file})
        +                {
        +                if ($hasContent)
        +                    {  $filesToPurge{$file} = 1;  };
        +
        +                $hasChanged = 1;
        +                }
        +
        +            # If the file still exists...
        +            else
        +                {
        +                $indexedFiles{$file} = 1;
        +
        +                # If the file changed...
        +                if ($supportedFiles{$file}->LastModified() != $modification)
        +                    {
        +                    $supportedFiles{$file}->SetStatus(::FILE_CHANGED());
        +                    $filesToParse{$file} = 1;
        +
        +                    # If the file loses its content, this will be removed by SetHasContent().
        +                    if ($hasContent)
        +                        {  $filesToBuild{$file} = 1;  };
        +
        +                    $hasChanged = 1;
        +                    }
        +
        +                # If the file has not changed...
        +                else
        +                    {
        +                    my $status;
        +
        +                    if ($rebuildEverything && $hasContent)
        +                        {
        +                        $status = ::FILE_CHANGED();
        +
        +                        # If the file loses its content, this will be removed by SetHasContent().
        +                        $filesToBuild{$file} = 1;
        +                        $hasChanged = 1;
        +                        }
        +                    else
        +                        {
        +                        $status = ::FILE_SAME();
        +
        +                        if ($hasContent)
        +                            {  $unbuiltFilesWithContent{$file} = 1;  };
        +                        };
        +
        +                    if ($reparseEverything)
        +                        {
        +                        $status = ::FILE_CHANGED();
        +
        +                        $filesToParse{$file} = 1;
        +                        $hasChanged = 1;
        +                        };
        +
        +                    $supportedFiles{$file}->SetStatus($status);
        +                    };
        +
        +                $supportedFiles{$file}->SetHasContent($hasContent);
        +                $supportedFiles{$file}->SetDefaultMenuTitle($menuTitle);
        +                };
        +            };
        +
        +        close(FH_FILEINFO);
        +
        +
        +        # Check for added files.
        +
        +        if (scalar keys %supportedFiles > scalar keys %indexedFiles)
        +            {
        +            foreach my $file (keys %supportedFiles)
        +                {
        +                if (!exists $indexedFiles{$file})
        +                    {
        +                    $supportedFiles{$file}->SetStatus(::FILE_NEW());
        +                    $supportedFiles{$file}->SetDefaultMenuTitle($file);
        +                    $supportedFiles{$file}->SetHasContent(undef);
        +                    $filesToParse{$file} = 1;
        +                    # It will be added to filesToBuild if HasContent gets set to true when it's parsed.
        +                    $hasChanged = 1;
        +                    };
        +                };
        +            };
        +        }
        +
        +    # If something's wrong with FileInfo.nd, everything is new.
        +    else
        +        {
        +        foreach my $file (keys %supportedFiles)
        +            {
        +            $supportedFiles{$file}->SetStatus(::FILE_NEW());
        +            $supportedFiles{$file}->SetDefaultMenuTitle($file);
        +            $supportedFiles{$file}->SetHasContent(undef);
        +            $filesToParse{$file} = 1;
        +            # It will be added to filesToBuild if HasContent gets set to true when it's parsed.
        +            };
        +
        +        $hasChanged = 1;
        +        };
        +
        +
        +    # There are other side effects, so we need to call this.
        +    if ($rebuildEverything)
        +        {  $self->RebuildEverything();  };
        +
        +
        +    return $hasChanged;
        +    };
        +
        +
        +#
        +#   Function: SaveSourceFileInfo
        +#
        +#   Saves the source file info to disk.  Everything is saved in <FileInfo.nd>.
        +#
        +sub SaveSourceFileInfo
        +    {
        +    my ($self) = @_;
        +
        +    open(FH_FILEINFO, '>' . $self->DataFile('FileInfo.nd'))
        +        or die "Couldn't save project file " . $self->DataFile('FileInfo.nd') . "\n";
        +
        +    NaturalDocs::Version->ToTextFile(\*FH_FILEINFO, NaturalDocs::Settings->AppVersion());
        +
        +    print FH_FILEINFO $mostUsedLanguage . "\n";
        +
        +    while (my ($fileName, $file) = each %supportedFiles)
        +        {
        +        print FH_FILEINFO $fileName . "\t"
        +                              . $file->LastModified() . "\t"
        +                              . ($file->HasContent() || '0') . "\t"
        +                              . $file->DefaultMenuTitle() . "\n";
        +        };
        +
        +    close(FH_FILEINFO);
        +    };
        +
        +
        +#
        +#   Function: LoadConfigFileInfo
        +#
        +#   Loads the config file info from disk.
        +#
        +sub LoadConfigFileInfo
        +    {
        +    my ($self) = @_;
        +
        +    my $fileIsOkay;
        +    my $version;
        +    my $fileName = NaturalDocs::Project->DataFile('ConfigFileInfo.nd');
        +
        +    if (open(FH_CONFIGFILEINFO, '<' . $fileName))
        +        {
        +        # See if it's binary.
        +        binmode(FH_CONFIGFILEINFO);
        +
        +        my $firstChar;
        +        read(FH_CONFIGFILEINFO, $firstChar, 1);
        +
        +        if ($firstChar == ::BINARY_FORMAT())
        +            {
        +            $version = NaturalDocs::Version->FromBinaryFile(\*FH_CONFIGFILEINFO);
        +
        +            # It hasn't changed since being introduced.
        +
        +            if (NaturalDocs::Version->CheckFileFormat($version))
        +                {  $fileIsOkay = 1;  }
        +            else
        +                {  close(FH_CONFIGFILEINFO);  };
        +            }
        +
        +        else # it's not in binary
        +            {  close(FH_CONFIGFILEINFO);  };
        +        };
        +
        +    my @configFiles = ( $self->UserConfigFile('Menu.txt'), \$userConfigFiles{'Menu.txt'},
        +                                 $self->MainConfigFile('Topics.txt'), \$mainConfigFiles{'Topics.txt'},
        +                                 $self->UserConfigFile('Topics.txt'), \$userConfigFiles{'Topics.txt'},
        +                                 $self->MainConfigFile('Languages.txt'), \$mainConfigFiles{'Languages.txt'},
        +                                 $self->UserConfigFile('Languages.txt'), \$userConfigFiles{'Languages.txt'} );
        +
        +    if ($fileIsOkay)
        +        {
        +        my $raw;
        +
        +        read(FH_CONFIGFILEINFO, $raw, 20);
        +        my @configFileDates = unpack('NNNNN', $raw);
        +
        +        while (scalar @configFiles)
        +            {
        +            my $file = shift @configFiles;
        +            my $fileStatus = shift @configFiles;
        +            my $fileDate = shift @configFileDates;
        +
        +            if (-e $file)
        +                {
        +                if ($fileDate == (stat($file))[9])
        +                    {  $$fileStatus = ::FILE_SAME();  }
        +                else
        +                    {  $$fileStatus = ::FILE_CHANGED();  };
        +                }
        +            else
        +                {  $$fileStatus = ::FILE_DOESNTEXIST();  };
        +            };
        +
        +        close(FH_CONFIGFILEINFO);
        +        }
        +    else # !$fileIsOkay
        +        {
        +        while (scalar @configFiles)
        +            {
        +            my $file = shift @configFiles;
        +            my $fileStatus = shift @configFiles;
        +
        +            if (-e $file)
        +                {  $$fileStatus = ::FILE_CHANGED();  }
        +            else
        +                {  $$fileStatus = ::FILE_DOESNTEXIST();  };
        +            };
        +        };
        +
        +    if ($userConfigFiles{'Menu.txt'} == ::FILE_SAME() && $rebuildEverything)
        +        {  $userConfigFiles{'Menu.txt'} = ::FILE_CHANGED();  };
        +    };
        +
        +
        +#
        +#   Function: SaveConfigFileInfo
        +#
        +#   Saves the config file info to disk.  You *must* save all other config files first, such as <Menu.txt> and <Topics.txt>.
        +#
        +sub SaveConfigFileInfo
        +    {
        +    my ($self) = @_;
        +
        +    open (FH_CONFIGFILEINFO, '>' . NaturalDocs::Project->DataFile('ConfigFileInfo.nd'))
        +        or die "Couldn't save " . NaturalDocs::Project->DataFile('ConfigFileInfo.nd') . ".\n";
        +
        +    binmode(FH_CONFIGFILEINFO);
        +
        +    print FH_CONFIGFILEINFO '' . ::BINARY_FORMAT();
        +
        +    NaturalDocs::Version->ToBinaryFile(\*FH_CONFIGFILEINFO, NaturalDocs::Settings->AppVersion());
        +
        +    print FH_CONFIGFILEINFO pack('NNNNN', (stat($self->UserConfigFile('Menu.txt')))[9],
        +                                                                (stat($self->MainConfigFile('Topics.txt')))[9],
        +                                                                (stat($self->UserConfigFile('Topics.txt')))[9],
        +                                                                (stat($self->MainConfigFile('Languages.txt')))[9],
        +                                                                (stat($self->UserConfigFile('Languages.txt')))[9] );
        +
        +    close(FH_CONFIGFILEINFO);
        +    };
        +
        +
        +#
        +#   Function: LoadImageFileInfo
        +#
        +#   Loads the image file info from disk.
        +#
        +sub LoadImageFileInfo
        +    {
        +    my ($self) = @_;
        +
        +    my $version = NaturalDocs::BinaryFile->OpenForReading( NaturalDocs::Project->DataFile('ImageFileInfo.nd') );
        +    my $fileIsOkay;
        +
        +    if (defined $version)
        +        {
        +        if (NaturalDocs::Version->CheckFileFormat($version, NaturalDocs::Version->FromString('1.52')))
        +            {  $fileIsOkay = 1;  }
        +        else
        +            {  NaturalDocs::BinaryFile->Close();  };
        +        };
        +
        +    if ($fileIsOkay)
        +        {
        +        # [UString16: file name or undef]
        +
        +        while (my $imageFile = NaturalDocs::BinaryFile->GetUString16())
        +            {
        +            # [UInt32: last modified]
        +            # [UInt8: was used]
        +
        +            my $lastModified = NaturalDocs::BinaryFile->GetUInt32();
        +            my $wasUsed = NaturalDocs::BinaryFile->GetUInt8();
        +
        +            my $imageFileObject = $imageFiles{$imageFile};
        +
        +            # If there's an image file in ImageFileInfo.nd that no longer exists...
        +            if (!$imageFileObject)
        +                {
        +                $imageFileObject = NaturalDocs::Project::ImageFile->New($lastModified, ::FILE_DOESNTEXIST(), $wasUsed);
        +                $imageFiles{$imageFile} = $imageFileObject;
        +
        +                if ($wasUsed)
        +                    {  $imageFilesToPurge{$imageFile} = 1;  };
        +                }
        +            else
        +                {
        +                $imageFileObject->SetWasUsed($wasUsed);
        +
        +                # This will be removed if it gets any references.
        +                if ($wasUsed)
        +                    {  $imageFilesToPurge{$imageFile} = 1;  };
        +
        +                if ($imageFileObject->LastModified() == $lastModified && !$rebuildEverything)
        +                    {  $imageFileObject->SetStatus(::FILE_SAME());  }
        +                else
        +                    {  $imageFileObject->SetStatus(::FILE_CHANGED());  };
        +                };
        +            };
        +
        +        NaturalDocs::BinaryFile->Close();
        +        }
        +
        +    else # !$fileIsOkay
        +        {
        +        $self->RebuildEverything();
        +        };
        +    };
        +
        +
        +#
        +#   Function: SaveImageFileInfo
        +#
        +#   Saves the image file info to disk.
        +#
        +sub SaveImageFileInfo
        +    {
        +    my $self = shift;
        +
        +    NaturalDocs::BinaryFile->OpenForWriting( NaturalDocs::Project->DataFile('ImageFileInfo.nd') );
        +
        +    while (my ($imageFile, $imageFileInfo) = each %imageFiles)
        +        {
        +        if ($imageFileInfo->Status() != ::FILE_DOESNTEXIST())
        +            {
        +            # [UString16: file name or undef]
        +            # [UInt32: last modification time]
        +            # [UInt8: was used]
        +
        +            NaturalDocs::BinaryFile->WriteUString16($imageFile);
        +            NaturalDocs::BinaryFile->WriteUInt32($imageFileInfo->LastModified());
        +            NaturalDocs::BinaryFile->WriteUInt8( ($imageFileInfo->ReferenceCount() > 0 ? 1 : 0) );
        +            };
        +        };
        +
        +    NaturalDocs::BinaryFile->WriteUString16(undef);
        +    NaturalDocs::BinaryFile->Close();
        +    };
        +
        +
        +#
        +#   Function: MigrateOldFiles
        +#
        +#   If the project uses the old file names used prior to 1.14, it converts them to the new file names.
        +#
        +sub MigrateOldFiles
        +    {
        +    my ($self) = @_;
        +
        +    my $projectDirectory = NaturalDocs::Settings->ProjectDirectory();
        +
        +    # We use the menu file as a test to see if we're using the new format.
        +    if (-e NaturalDocs::File->JoinPaths($projectDirectory, 'NaturalDocs_Menu.txt'))
        +        {
        +        # The Data subdirectory would have been created by NaturalDocs::Settings.
        +
        +        rename( NaturalDocs::File->JoinPaths($projectDirectory, 'NaturalDocs_Menu.txt'), $self->UserConfigFile('Menu.txt') );
        +
        +        if (-e NaturalDocs::File->JoinPaths($projectDirectory, 'NaturalDocs.sym'))
        +            {  rename( NaturalDocs::File->JoinPaths($projectDirectory, 'NaturalDocs.sym'), $self->DataFile('SymbolTable.nd') );  };
        +
        +        if (-e NaturalDocs::File->JoinPaths($projectDirectory, 'NaturalDocs.files'))
        +            {  rename( NaturalDocs::File->JoinPaths($projectDirectory, 'NaturalDocs.files'), $self->DataFile('FileInfo.nd') );  };
        +
        +        if (-e NaturalDocs::File->JoinPaths($projectDirectory, 'NaturalDocs.m'))
        +            {  rename( NaturalDocs::File->JoinPaths($projectDirectory, 'NaturalDocs.m'), $self->DataFile('PreviousMenuState.nd') );  };
        +        };
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Config and Data File Functions
        +
        +
        +#
        +#   Function: MainConfigFile
        +#
        +#   Returns the full path to the passed main configuration file.  Pass the file name only.
        +#
        +sub MainConfigFile #(string file)
        +    {
        +    my ($self, $file) = @_;
        +    return NaturalDocs::File->JoinPaths( NaturalDocs::Settings->ConfigDirectory(), $file );
        +    };
        +
        +#
        +#   Function: MainConfigFileStatus
        +#
        +#   Returns the <FileStatus> of the passed main configuration file.  Pass the file name only.
        +#
        +sub MainConfigFileStatus #(string file)
        +    {
        +    my ($self, $file) = @_;
        +    return $mainConfigFiles{$file};
        +    };
        +
        +#
        +#   Function: UserConfigFile
        +#
        +#   Returns the full path to the passed user configuration file.  Pass the file name only.
        +#
        +sub UserConfigFile #(string file)
        +    {
        +    my ($self, $file) = @_;
        +    return NaturalDocs::File->JoinPaths( NaturalDocs::Settings->ProjectDirectory(), $file );
        +    };
        +
        +#
        +#   Function: UserConfigFileStatus
        +#
        +#   Returns the <FileStatus> of the passed user configuration file.  Pass the file name only.
        +#
        +sub UserConfigFileStatus #(string file)
        +    {
        +    my ($self, $file) = @_;
        +    return $userConfigFiles{$file};
        +    };
        +
        +#
        +#   Function: DataFile
        +#
        +#   Returns the full path to the passed data file.  Pass the file name only.
        +#
        +sub DataFile #(string file)
        +    {
        +    my ($self, $file) = @_;
        +    return NaturalDocs::File->JoinPaths( NaturalDocs::Settings->ProjectDataDirectory(), $file );
        +    };
        +
        +
        +
        +
        +###############################################################################
        +# Group: Source File Functions
        +
        +
        +# Function: FilesToParse
        +# Returns an existence hashref of the <FileNames> to parse.  This is not a copy of the data, so don't change it.
        +sub FilesToParse
        +    {  return \%filesToParse;  };
        +
        +# Function: FilesToBuild
        +# Returns an existence hashref of the <FileNames> to build.  This is not a copy of the data, so don't change it.
        +sub FilesToBuild
        +    {  return \%filesToBuild;  };
        +
        +# Function: FilesToPurge
        +# Returns an existence hashref of the <FileNames> that had content last time, but now either don't anymore or were deleted.
        +# This is not a copy of the data, so don't change it.
        +sub FilesToPurge
        +    {  return \%filesToPurge;  };
        +
        +#
        +#   Function: RebuildFile
        +#
        +#   Adds the file to the list of files to build.  This function will automatically filter out files that don't have Natural Docs content and
        +#   files that are part of <FilesToPurge()>.  If this gets called on a file and that file later gets Natural Docs content, it will be added.
        +#
        +#   Parameters:
        +#
        +#       file - The <FileName> to build or rebuild.
        +#
        +sub RebuildFile #(file)
        +    {
        +    my ($self, $file) = @_;
        +
        +    # We don't want to add it to the build list if it doesn't exist, doesn't have Natural Docs content, or it's going to be purged.
        +    # If it wasn't parsed yet and will later be found to have ND content, it will be added by SetHasContent().
        +    if (exists $supportedFiles{$file} && !exists $filesToPurge{$file} && $supportedFiles{$file}->HasContent())
        +        {
        +        $filesToBuild{$file} = 1;
        +
        +        if (exists $unbuiltFilesWithContent{$file})
        +            {  delete $unbuiltFilesWithContent{$file};  };
        +        };
        +    };
        +
        +
        +#
        +#   Function: ReparseEverything
        +#
        +#   Adds all supported files to the list of files to parse.  This does not necessarily mean these files are going to be rebuilt.
        +#
        +sub ReparseEverything
        +    {
        +    my ($self) = @_;
        +
        +    if (!$reparseEverything)
        +        {
        +        foreach my $file (keys %supportedFiles)
        +            {
        +            $filesToParse{$file} = 1;
        +            };
        +
        +        $reparseEverything = 1;
        +        };
        +    };
        +
        +
        +#
        +#   Function: RebuildEverything
        +#
        +#   Adds all supported files to the list of files to build.  This does not necessarily mean these files are going to be reparsed.
        +#
        +sub RebuildEverything
        +    {
        +    my ($self) = @_;
        +
        +    foreach my $file (keys %unbuiltFilesWithContent)
        +        {
        +        $filesToBuild{$file} = 1;
        +        };
        +
        +    %unbuiltFilesWithContent = ( );
        +    $rebuildEverything = 1;
        +
        +    NaturalDocs::SymbolTable->RebuildAllIndexes();
        +
        +    if ($userConfigFiles{'Menu.txt'} == ::FILE_SAME())
        +        {  $userConfigFiles{'Menu.txt'} = ::FILE_CHANGED();  };
        +
        +    while (my ($imageFile, $imageObject) = each %imageFiles)
        +        {
        +        if ($imageObject->ReferenceCount())
        +            {  $imageFilesToUpdate{$imageFile} = 1;  };
        +        };
        +    };
        +
        +
        +# Function: UnbuiltFilesWithContent
        +# Returns an existence hashref of the <FileNames> that have Natural Docs content but are not part of <FilesToBuild()>.  This is
        +# not a copy of the data so don't change it.
        +sub UnbuiltFilesWithContent
        +    {  return \%unbuiltFilesWithContent;  };
        +
        +# Function: FilesWithContent
        +# Returns and existence hashref of the <FileNames> that have Natural Docs content.
        +sub FilesWithContent
        +    {
        +    # Don't keep this one internally, but there's an easy way to make it.
        +    return { %filesToBuild, %unbuiltFilesWithContent };
        +    };
        +
        +
        +#
        +#   Function: HasContent
        +#
        +#   Returns whether the <FileName> contains Natural Docs content.
        +#
        +sub HasContent #(file)
        +    {
        +    my ($self, $file) = @_;
        +
        +    if (exists $supportedFiles{$file})
        +        {  return $supportedFiles{$file}->HasContent();  }
        +    else
        +        {  return undef;  };
        +    };
        +
        +
        +#
        +#   Function: SetHasContent
        +#
        +#   Sets whether the <FileName> has Natural Docs content or not.
        +#
        +sub SetHasContent #(file, hasContent)
        +    {
        +    my ($self, $file, $hasContent) = @_;
        +
        +    if (exists $supportedFiles{$file} && $supportedFiles{$file}->HasContent() != $hasContent)
        +        {
        +        # If the file now has content...
        +        if ($hasContent)
        +            {
        +            $filesToBuild{$file} = 1;
        +            }
        +
        +        # If the file's content has been removed...
        +        else
        +            {
        +            delete $filesToBuild{$file};  # may not be there
        +            $filesToPurge{$file} = 1;
        +            };
        +
        +        $supportedFiles{$file}->SetHasContent($hasContent);
        +        };
        +    };
        +
        +
        +#
        +#   Function: StatusOf
        +#
        +#   Returns the <FileStatus> of the passed <FileName>.
        +#
        +sub StatusOf #(file)
        +    {
        +    my ($self, $file) = @_;
        +
        +    if (exists $supportedFiles{$file})
        +        {  return $supportedFiles{$file}->Status();  }
        +    else
        +        {  return ::FILE_DOESNTEXIST();  };
        +    };
        +
        +
        +#
        +#   Function: DefaultMenuTitleOf
        +#
        +#   Returns the default menu title of the <FileName>.  If one isn't specified, it returns the <FileName>.
        +#
        +sub DefaultMenuTitleOf #(file)
        +    {
        +    my ($self, $file) = @_;
        +
        +    if (exists $supportedFiles{$file})
        +        {  return $supportedFiles{$file}->DefaultMenuTitle();  }
        +    else
        +        {  return $file;  };
        +    };
        +
        +
        +#
        +#   Function: SetDefaultMenuTitle
        +#
        +#   Sets the <FileName's> default menu title.
        +#
        +sub SetDefaultMenuTitle #(file, menuTitle)
        +    {
        +    my ($self, $file, $menuTitle) = @_;
        +
        +    if (exists $supportedFiles{$file} && $supportedFiles{$file}->DefaultMenuTitle() ne $menuTitle)
        +        {
        +        $supportedFiles{$file}->SetDefaultMenuTitle($menuTitle);
        +        NaturalDocs::Menu->OnDefaultTitleChange($file);
        +        };
        +    };
        +
        +
        +#
        +#   Function: MostUsedLanguage
        +#
        +#   Returns the name of the most used language in the source trees.  Does not include text files.
        +#
        +sub MostUsedLanguage
        +    {  return $mostUsedLanguage;  };
        +
        +
        +
        +
        +###############################################################################
        +# Group: Image File Functions
        +
        +
        +#
        +#   Function: ImageFileExists
        +#   Returns whether the passed image file exists.
        +#
        +sub ImageFileExists #(FileName file) => bool
        +    {
        +    my ($self, $file) = @_;
        +
        +    if (!exists $imageFiles{$file})
        +        {  $file = $insensitiveImageFiles{lc($file)};  };
        +
        +    return (exists $imageFiles{$file} && $imageFiles{$file}->Status() != ::FILE_DOESNTEXIST());
        +    };
        +
        +
        +#
        +#   Function: ImageFileDimensions
        +#   Returns the dimensions of the passed image file as the array ( width, height ).  Returns them both as undef if it cannot be
        +#   determined.
        +#
        +sub ImageFileDimensions #(FileName file) => (int, int)
        +    {
        +    my ($self, $file) = @_;
        +
        +    if (!exists $imageFiles{$file})
        +        {  $file = $insensitiveImageFiles{lc($file)};  };
        +
        +    my $object = $imageFiles{$file};
        +    if (!$object)
        +        {  die "Tried to get the dimensions of an image that doesn't exist.";  };
        +
        +    if ($object->Width() == -1)
        +        {  $self->DetermineImageDimensions($file);  };
        +
        +    return ($object->Width(), $object->Height());
        +    };
        +
        +
        +#
        +#   Function: ImageFileCapitalization
        +#   Returns the properly capitalized version of the passed image <FileName>.  Image file paths are treated as case insensitive
        +#   regardless of whether the underlying operating system is or not, so we have to make sure the final version matches the
        +#   capitalization of the actual file.
        +#
        +sub ImageFileCapitalization #(FileName file) => FileName
        +    {
        +    my ($self, $file) = @_;
        +
        +    if (exists $imageFiles{$file})
        +        {  return $file;  }
        +    elsif (exists $insensitiveImageFiles{lc($file)})
        +        {  return $insensitiveImageFiles{lc($file)};  }
        +    else
        +        {  die "Tried to get the capitalization of an image file that doesn't exist.";  };
        +    };
        +
        +
        +#
        +#   Function: AddImageFileReference
        +#   Adds a reference to the passed image <FileName>.
        +#
        +sub AddImageFileReference #(FileName imageFile)
        +    {
        +    my ($self, $imageFile) = @_;
        +
        +    if (!exists $imageFiles{$imageFile})
        +        {  $imageFile = $insensitiveImageFiles{lc($imageFile)};  };
        +
        +    my $imageFileInfo = $imageFiles{$imageFile};
        +
        +    if ($imageFileInfo == undef || $imageFileInfo->Status() == ::FILE_DOESNTEXIST())
        +        {  die "Tried to add a reference to a non-existant image file.";  };
        +
        +    if ($imageFileInfo->AddReference() == 1)
        +        {
        +        delete $imageFilesToPurge{$imageFile};
        +
        +        if (!$imageFileInfo->WasUsed() ||
        +            $imageFileInfo->Status() == ::FILE_NEW() ||
        +            $imageFileInfo->Status() == ::FILE_CHANGED())
        +            {  $imageFilesToUpdate{$imageFile} = 1;  };
        +        };
        +    };
        +
        +
        +#
        +#   Function: DeleteImageFileReference
        +#   Deletes a reference from the passed image <FileName>.
        +#
        +sub DeleteImageFileReference #(FileName imageFile)
        +    {
        +    my ($self, $imageFile) = @_;
        +
        +    if (!exists $imageFiles{$imageFile})
        +        {  $imageFile = $insensitiveImageFiles{lc($imageFile)};  };
        +
        +    if (!exists $imageFiles{$imageFile})
        +        {  die "Tried to delete a reference to a non-existant image file.";  };
        +
        +    if ($imageFiles{$imageFile}->DeleteReference() == 0)
        +        {
        +        delete $imageFilesToUpdate{$imageFile};
        +
        +        if ($imageFiles{$imageFile}->WasUsed())
        +            {  $imageFilesToPurge{$imageFile} = 1;  };
        +        };
        +    };
        +
        +
        +#
        +#   Function: ImageFilesToUpdate
        +#   Returns an existence hashref of image <FileNames> that need to be updated.  *Do not change.*
        +#
        +sub ImageFilesToUpdate
        +    {  return \%imageFilesToUpdate;  };
        +
        +
        +#
        +#   Function: ImageFilesToPurge
        +#   Returns an existence hashref of image <FileNames> that need to be updated.  *Do not change.*
        +#
        +sub ImageFilesToPurge
        +    {  return \%imageFilesToPurge;  };
        +
        +
        +
        +###############################################################################
        +# Group: Support Functions
        +
        +#
        +#   Function: GetAllSupportedFiles
        +#
        +#   Gets all the supported files in the passed directory and its subdirectories and puts them into <supportedFiles>.  The only
        +#   attribute that will be set is <NaturalDocs::Project::SourceFile->LastModified()>.  Also sets <mostUsedLanguage>.
        +#
        +sub GetAllSupportedFiles
        +    {
        +    my ($self) = @_;
        +
        +    my @directories = @{NaturalDocs::Settings->InputDirectories()};
        +    my $isCaseSensitive = NaturalDocs::File->IsCaseSensitive();
        +
        +    # Keys are language names, values are counts.
        +    my %languageCounts;
        +
        +
        +    # Make an existence hash of excluded directories.
        +
        +    my %excludedDirectories;
        +    my $excludedDirectoryArrayRef = NaturalDocs::Settings->ExcludedInputDirectories();
        +
        +    foreach my $excludedDirectory (@$excludedDirectoryArrayRef)
        +        {
        +        if ($isCaseSensitive)
        +            {  $excludedDirectories{$excludedDirectory} = 1;  }
        +        else
        +            {  $excludedDirectories{lc($excludedDirectory)} = 1;  };
        +        };
        +
        +
        +    my $imagesOnly;
        +    my $language;
        +
        +    while (scalar @directories)
        +        {
        +        my $directory = pop @directories;
        +
        +        opendir DIRECTORYHANDLE, $directory;
        +        my @entries = readdir DIRECTORYHANDLE;
        +        closedir DIRECTORYHANDLE;
        +
        +        @entries = NaturalDocs::File->NoUpwards(@entries);
        +
        +        foreach my $entry (@entries)
        +            {
        +            my $fullEntry = NaturalDocs::File->JoinPaths($directory, $entry);
        +
        +            # If an entry is a directory, recurse.
        +            if (-d $fullEntry)
        +                {
        +                # Join again with the noFile flag set in case the platform handles them differently.
        +                $fullEntry = NaturalDocs::File->JoinPaths($directory, $entry, 1);
        +
        +                if ($isCaseSensitive)
        +                    {
        +                    if (!exists $excludedDirectories{$fullEntry})
        +                        {  push @directories, $fullEntry;  };
        +                    }
        +                else
        +                    {
        +                    if (!exists $excludedDirectories{lc($fullEntry)})
        +                        {  push @directories, $fullEntry;  };
        +                    };
        +                }
        +
        +            # Otherwise add it if it's a supported extension.
        +            else
        +                {
        +                my $extension = NaturalDocs::File->ExtensionOf($entry);
        +
        +                if (exists $imageFileExtensions{lc($extension)})
        +                    {
        +                    my $fileObject = NaturalDocs::Project::ImageFile->New( (stat($fullEntry))[9], ::FILE_NEW(), 0 );
        +                    $imageFiles{$fullEntry} = $fileObject;
        +
        +                    my $lcFullEntry = lc($fullEntry);
        +
        +                    if (!exists $insensitiveImageFiles{$lcFullEntry} ||
        +                        ($fullEntry cmp $insensitiveImageFiles{$lcFullEntry}) < 0)
        +                        {
        +                        $insensitiveImageFiles{$lcFullEntry} = $fullEntry;
        +                        };
        +                    }
        +                elsif (!$imagesOnly && ($language = NaturalDocs::Languages->LanguageOf($fullEntry)) )
        +                    {
        +                    my $fileObject = NaturalDocs::Project::SourceFile->New();
        +                    $fileObject->SetLastModified(( stat($fullEntry))[9] );
        +                    $supportedFiles{$fullEntry} = $fileObject;
        +
        +                    $languageCounts{$language->Name()}++;
        +                    };
        +                };
        +            };
        +
        +
        +        # After we run out of source directories, add the image directories.
        +
        +        if (scalar @directories == 0 && !$imagesOnly)
        +            {
        +            $imagesOnly = 1;
        +            @directories = @{NaturalDocs::Settings->ImageDirectories()};
        +            };
        +        };
        +
        +
        +    my $topCount = 0;
        +
        +    while (my ($language, $count) = each %languageCounts)
        +        {
        +        if ($count > $topCount && $language ne 'Text File')
        +            {
        +            $topCount = $count;
        +            $mostUsedLanguage = $language;
        +            };
        +        };
        +    };
        +
        +
        +#
        +#   Function: DetermineImageDimensions
        +#
        +#   Attempts to determine the dimensions of the passed image and apply them to their object in <imageFiles>.  Will set them to
        +#   undef if they can't be determined.
        +#
        +sub DetermineImageDimensions #(FileName imageFile)
        +    {
        +    my ($self, $imageFile) = @_;
        +
        +    my $imageFileObject = $imageFiles{$imageFile};
        +    if (!defined $imageFileObject)
        +        {  die "Tried to determine image dimensions of a file with no object.";  };
        +
        +    my $extension = lc( NaturalDocs::File->ExtensionOf($imageFile) );
        +    my ($width, $height);
        +
        +    if ($imageFileExtensions{$extension})
        +        {
        +        open(FH_IMAGEFILE, '<' . $imageFile)
        +            or die 'Could not open ' . $imageFile . "\n";
        +        binmode(FH_IMAGEFILE);
        +
        +        my $raw;
        +
        +        if ($extension eq 'gif')
        +            {
        +            read(FH_IMAGEFILE, $raw, 6);
        +
        +            if ($raw eq 'GIF87a' || $raw eq 'GIF89a')
        +                {
        +                read(FH_IMAGEFILE, $raw, 4);
        +                ($width, $height) = unpack('vv', $raw);
        +                };
        +            }
        +
        +        elsif ($extension eq 'png')
        +            {
        +            read(FH_IMAGEFILE, $raw, 8);
        +
        +            if ($raw eq "\x89PNG\x0D\x0A\x1A\x0A")
        +                {
        +                seek(FH_IMAGEFILE, 4, 1);
        +                read(FH_IMAGEFILE, $raw, 4);
        +
        +                if ($raw eq 'IHDR')
        +                    {
        +                    read(FH_IMAGEFILE, $raw, 8);
        +                    ($width, $height) = unpack('NN', $raw);
        +                    };
        +                };
        +            }
        +
        +        elsif ($extension eq 'bmp')
        +            {
        +            read(FH_IMAGEFILE, $raw, 2);
        +
        +            if ($raw eq 'BM')
        +                {
        +                seek(FH_IMAGEFILE, 16, 1);
        +                read(FH_IMAGEFILE, $raw, 8);
        +
        +                ($width, $height) = unpack('VV', $raw);
        +                };
        +            }
        +
        +        elsif ($extension eq 'jpg' || $extension eq 'jpeg')
        +            {
        +            read(FH_IMAGEFILE, $raw, 2);
        +            my $isOkay = ($raw eq "\xFF\xD8");
        +
        +            while ($isOkay)
        +                {
        +                read(FH_IMAGEFILE, $raw, 4);
        +                my ($marker, $code, $length) = unpack('CCn', $raw);
        +
        +                $isOkay = ($marker eq 0xFF);
        +
        +                if ($isOkay)
        +                    {
        +                    if ($code >= 0xC0 && $code <= 0xC3)
        +                        {
        +                        read(FH_IMAGEFILE, $raw, 5);
        +                        ($height, $width) = unpack('xnn', $raw);
        +                        last;
        +                        }
        +
        +                    else
        +                        {
        +                        $isOkay = seek(FH_IMAGEFILE, $length - 2, 1);
        +                        };
        +                    };
        +                };
        +            };
        +
        +        close(FH_IMAGEFILE);
        +        };
        +
        +
        +    # Sanity check the values.  Although images can theoretically be bigger than 5000, most won't.  The worst that happens in this
        +    # case is just that they don't get length and width values in the output anyway.
        +    if ($width > 0 && $width < 5000 && $height > 0 && $height < 5000)
        +        {  $imageFileObject->SetDimensions($width, $height);  }
        +    else
        +        {  $imageFileObject->SetDimensions(undef, undef);  };
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Project/ImageFile.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Project/ImageFile.pm
        new file mode 100755
        index 0000000..f72adc4
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Project/ImageFile.pm
        @@ -0,0 +1,161 @@
        +###############################################################################
        +#
        +#   Class: NaturalDocs::Project::ImageFile
        +#
        +###############################################################################
        +#
        +#   A simple information class about project image files.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::Project::ImageFile;
        +
        +
        +
        +###############################################################################
        +# Group: Implementation
        +
        +#
        +#   Constants: Members
        +#
        +#   The class is implemented as a blessed arrayref.  The following constants are used as indexes.
        +#
        +#       LAST_MODIFIED - The integer timestamp of when the file was last modified.
        +#       STATUS - <FileStatus> since the last build.
        +#       REFERENCE_COUNT - The number of references to the image from the source files.
        +#       WAS_USED - Whether the image was used the last time Natural Docs was run.
        +#       WIDTH - The image width.  Undef if can't be determined, -1 if haven't attempted to determine yet.
        +#       HEIGHT - The image height.  Undef if can't be determined, -1 if haven't attempted to determine yet.
        +#
        +
        +use NaturalDocs::DefineMembers 'LAST_MODIFIED', 'LastModified()', 'SetLastModified()',
        +                                                 'STATUS', 'Status()', 'SetStatus()',
        +                                                 'REFERENCE_COUNT', 'ReferenceCount()',
        +                                                 'WAS_USED', 'WasUsed()', 'SetWasUsed()',
        +                                                 'WIDTH', 'Width()',
        +                                                 'HEIGHT', 'Height()';
        +
        +
        +#
        +#   Topic: WasUsed versus References
        +#
        +#   <WasUsed()> is a simple true/false that notes whether this image file was used the last time Natural Docs was run.
        +#   <ReferenceCount()> is a counter for the number of times it's used *this* run.  As such, it starts at zero regardless of whether
        +#   <WasUsed()> is set or not.
        +#
        +
        +
        +###############################################################################
        +# Group: Functions
        +
        +#
        +#   Function: New
        +#
        +#   Creates and returns a new file object.
        +#
        +#   Parameters:
        +#
        +#       lastModified - The image file's last modification timestamp
        +#       status - The <FileStatus>.
        +#       wasUsed - Whether this image file was used the *last* time Natural Docs was run.
        +#
        +sub New #(timestamp lastModified, FileStatus status, bool wasUsed)
        +    {
        +    my ($package, $lastModified, $status, $width, $height, $wasUsed) = @_;
        +
        +    my $object = [ ];
        +    $object->[LAST_MODIFIED] = $lastModified;
        +    $object->[STATUS] = $status;
        +    $object->[REFERENCE_COUNT] = 0;
        +    $object->[WAS_USED] = $wasUsed;
        +    $object->[WIDTH] = -1;
        +    $object->[HEIGHT] = -1;
        +
        +    bless $object, $package;
        +
        +    return $object;
        +    };
        +
        +
        +#
        +#   Functions: Member Functions
        +#
        +#   LastModified - Returns the integer timestamp of when the file was last modified.
        +#   SetLastModified - Sets the file's last modification timestamp.
        +#   Status - Returns the <FileStatus> since the last build.
        +#   SetStatus - Sets the <FileStatus> since the last build.
        +#
        +
        +#
        +#   Function: ReferenceCount
        +#   Returns the current number of references to this image file during *this* Natural Docs execution.
        +#
        +
        +#
        +#   Function: AddReference
        +#   Increases the number of references to this image file by one.  Returns the new reference count.
        +#
        +sub AddReference
        +    {
        +    my $self = shift;
        +
        +    $self->[REFERENCE_COUNT]++;
        +    return $self->[REFERENCE_COUNT];
        +    };
        +
        +#
        +#   Function: DeleteReference
        +#   Decreases the number of references to this image file by one.  Returns the new reference count.
        +#
        +sub DeleteReference
        +    {
        +    my $self = shift;
        +    $self->[REFERENCE_COUNT]--;
        +
        +    if ($self->[REFERENCE_COUNT] < 0)
        +        {  die "Deleted more references to an image file than existed.";  };
        +
        +    return $self->[REFERENCE_COUNT];
        +    };
        +
        +
        +#
        +#   Functions: Member Functions
        +#
        +#   WasUsed - Returns whether this image file was used during the *last* Natural Docs execution.
        +#   SetWasUsed - Sets whether this image file was used during the *last* Natural Docs execution.
        +#   Width - Returns the width in pixels, undef if it can't be determined, and -1 if determination hasn't been attempted yet.
        +#   Height - Returns the width in pixels, undef if it can't be determined, and -1 if determination hasn't been attempted yet.
        +#
        +
        +
        +#
        +#   Function: SetDimensions
        +#   Sets the width and height of the image.  Set to undef if they can't be determined.
        +#
        +sub SetDimensions #(int width, int height)
        +    {
        +    my ($self, $width, $height) = @_;
        +
        +    # If either are undef, both should be undef.  This will also convert zeroes to undef.
        +    if (!$width || !$height)
        +        {
        +        $self->[WIDTH] = undef;
        +        $self->[HEIGHT] = undef;
        +        }
        +    else
        +        {
        +        $self->[WIDTH] = $width;
        +        $self->[HEIGHT] = $height;
        +        };
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Project/SourceFile.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Project/SourceFile.pm
        new file mode 100755
        index 0000000..aff05c7
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Project/SourceFile.pm
        @@ -0,0 +1,114 @@
        +###############################################################################
        +#
        +#   Class: NaturalDocs::Project::SourceFile
        +#
        +###############################################################################
        +#
        +#   A simple information class about project files.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::Project::SourceFile;
        +
        +
        +
        +###############################################################################
        +# Group: Implementation
        +
        +#
        +#   Constants: Members
        +#
        +#   The class is implemented as a blessed arrayref.  The following constants are used as indexes.
        +#
        +#       HAS_CONTENT             - Whether the file contains Natural Docs content or not.
        +#       LAST_MODIFIED           - The integer timestamp of when the file was last modified.
        +#       STATUS                       - <FileStatus> since the last build.
        +#       DEFAULT_MENU_TITLE  - The file's default title in the menu.
        +#
        +
        +# DEPENDENCY: New() depends on its parameter list being in the same order as these constants.  If the order changes, New()
        +# needs to be changed.
        +use NaturalDocs::DefineMembers 'HAS_CONTENT', 'LAST_MODIFIED', 'STATUS', 'DEFAULT_MENU_TITLE';
        +
        +
        +###############################################################################
        +# Group: Functions
        +
        +#
        +#   Function: New
        +#
        +#   Creates and returns a new file object.
        +#
        +#   Parameters:
        +#
        +#       hasContent         - Whether the file contains Natural Docs content or not.
        +#       lastModified         - The integer timestamp of when the file was last modified.
        +#       status                 - The <FileStatus> since the last build.
        +#       defaultMenuTitle  - The file's title in the menu.
        +#
        +#   Returns:
        +#
        +#       A reference to the new object.
        +#
        +sub New #(hasContent, lastModified, status, defaultMenuTitle)
        +    {
        +    # DEPENDENCY: This function depends on its parameter list being in the same order as the member constants.  If either order
        +    # changes, this function needs to be changed.
        +
        +    my $package = shift;
        +
        +    my $object = [ @_ ];
        +    bless $object, $package;
        +
        +    return $object;
        +    };
        +
        +# Function: HasContent
        +# Returns whether the file contains Natural Docs content or not.
        +sub HasContent
        +    {  return $_[0]->[HAS_CONTENT];  };
        +
        +# Function: SetHasContent
        +# Sets whether the file contains Natural Docs content or not.
        +sub SetHasContent #(hasContent)
        +    {  $_[0]->[HAS_CONTENT] = $_[1];  };
        +
        +# Function: LastModified
        +# Returns the integer timestamp of when the file was last modified.
        +sub LastModified
        +    {  return $_[0]->[LAST_MODIFIED];  };
        +
        +# Function: SetLastModified
        +# Sets the file's last modification timestamp.
        +sub SetLastModified #(lastModified)
        +    {  $_[0]->[LAST_MODIFIED] = $_[1];  };
        +
        +# Function: Status
        +# Returns the <FileStatus> since the last build.
        +sub Status
        +    {  return $_[0]->[STATUS];  };
        +
        +# Function: SetStatus
        +# Sets the <FileStatus> since the last build.
        +sub SetStatus #(status)
        +    {  $_[0]->[STATUS] = $_[1];  };
        +
        +# Function: DefaultMenuTitle
        +# Returns the file's default title on the menu.
        +sub DefaultMenuTitle
        +    {  return $_[0]->[DEFAULT_MENU_TITLE];  };
        +
        +# Function: SetDefaultMenuTitle
        +# Sets the file's default title on the menu.
        +sub SetDefaultMenuTitle #(menuTitle)
        +    {  $_[0]->[DEFAULT_MENU_TITLE] = $_[1];  };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/ReferenceString.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/ReferenceString.pm
        new file mode 100755
        index 0000000..1252c0f
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/ReferenceString.pm
        @@ -0,0 +1,345 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::ReferenceString
        +#
        +###############################################################################
        +#
        +#   A package to manage <ReferenceString> handling throughout the program.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::ReferenceString;
        +
        +use vars '@ISA', '@EXPORT';
        +@ISA = 'Exporter';
        +@EXPORT = ( 'BINARYREF_NOTYPE', 'BINARYREF_NORESOLVINGFLAGS',
        +
        +                     'REFERENCE_TEXT', 'REFERENCE_CH_CLASS', 'REFERENCE_CH_PARENT',
        +
        +                     'RESOLVE_RELATIVE', 'RESOLVE_ABSOLUTE', 'RESOLVE_NOPLURAL', 'RESOLVE_NOUSING' );
        +
        +use Encode qw(encode_utf8 decode_utf8);
        +
        +
        +#
        +#   Constants: Binary Format Flags
        +#
        +#   These flags can be combined to specify the format when using <ToBinaryFile()> and <FromBinaryFile()>.  All are exported
        +#   by default.
        +#
        +#   BINARYREF_NOTYPE - Do not include the <ReferenceType>.
        +#   BINARYREF_NORESOLVEFLAGS - Do not include the <Resolving Flags>.
        +#
        +use constant BINARYREF_NOTYPE => 0x01;
        +use constant BINARYREF_NORESOLVINGFLAGS => 0x02;
        +
        +
        +#
        +#   Constants: ReferenceType
        +#
        +#   The type of a reference.
        +#
        +#       REFERENCE_TEXT - The reference appears in the text of the documentation.
        +#       REFERENCE_CH_CLASS - A class reference handled by <NaturalDocs::ClassHierarchy>.
        +#       REFERENCE_CH_PARENT - A parent class reference handled by <NaturalDocs::ClassHierarchy>.
        +#
        +#   Dependencies:
        +#
        +#       - <ToBinaryFile()> and <FromBinaryFile()> require that these values fit into a UInt8, i.e. are <= 255.
        +#
        +use constant REFERENCE_TEXT => 1;
        +use constant REFERENCE_CH_CLASS => 2;
        +use constant REFERENCE_CH_PARENT => 3;
        +
        +
        +#
        +#   Constants: Resolving Flags
        +#
        +#   Used to influence the method of resolving references in <NaturalDocs::SymbolTable>.
        +#
        +#       RESOLVE_RELATIVE - The reference text is truly relative, rather than Natural Docs' semi-relative.
        +#       RESOLVE_ABSOLUTE - The reference text is always absolute.  No local or relative references.
        +#       RESOLVE_NOPLURAL - The reference text may not be interpreted as a plural, and thus match singular forms as well.
        +#       RESOLVE_NOUSING - The reference text may not include "using" statements when being resolved.
        +#
        +#       If neither <RESOLVE_RELATIVE> or <RESOLVE_ABSOLUTE> is specified, Natural Docs' semi-relative kicks in instead,
        +#       which is where links are interpreted as local, then global, then relative.  <RESOLVE_RELATIVE> states that links are
        +#       local, then relative, then global.
        +#
        +#   Dependencies:
        +#
        +#       - <ToBinaryFile()> and <FromBinaryFile()> require that these values fit into a UInt8, i.e. are <= 255.
        +#
        +use constant RESOLVE_RELATIVE => 0x01;
        +use constant RESOLVE_ABSOLUTE => 0x02;
        +use constant RESOLVE_NOPLURAL => 0x04;
        +use constant RESOLVE_NOUSING => 0x08;
        +
        +
        +#
        +#
        +#   Function: MakeFrom
        +#
        +#   Encodes the passed information as a <ReferenceString>.  The format of the string should be treated as opaque.  However, the
        +#   characteristic you can rely on is that the same string will always be made from the same parameters, and thus it's suitable
        +#   for comparison and use as hash keys.
        +#
        +#   Parameters:
        +#
        +#       type - The <ReferenceType>.
        +#       symbol - The <SymbolString> of the reference.
        +#       language - The name of the language that defines the file this reference appears in.
        +#       scope - The scope <SymbolString> the reference appears in, or undef if none.
        +#       using - An arrayref of scope <SymbolStrings> that are also available for checking due to the equivalent a "using" statement,
        +#                  or undef if none.
        +#       resolvingFlags - The <Resolving Flags> to use with this reference.  They are ignored if the type is <REFERENCE_TEXT>.
        +#
        +#   Returns:
        +#
        +#       The encoded <ReferenceString>.
        +#
        +sub MakeFrom #(ReferenceType type, SymbolString symbol, string language, SymbolString scope, SymbolString[]* using, flags resolvingFlags)
        +    {
        +    my ($self, $type, $symbol, $language, $scope, $using, $resolvingFlags) = @_;
        +
        +    if ($type == ::REFERENCE_TEXT() || $resolvingFlags == 0)
        +       {  $resolvingFlags = undef;  };
        +
        +    # The format is [type] 0x1E [resolving flags] 0x1E [symbol] 0x1E [scope] ( 0x1E [using] )*
        +    # If there is no scope and/or using, the separator characters still remain.
        +
        +    # DEPENDENCY: SymbolString->FromText() removed all 0x1E characters.
        +    # DEPENDENCY: SymbolString->FromText() doesn't use 0x1E characters in its encoding.
        +
        +    my $string = $type . "\x1E" . $symbol . "\x1E" . $language . "\x1E" . $resolvingFlags . "\x1E";
        +
        +    if (defined $scope)
        +        {
        +        $string .= $scope;
        +        };
        +
        +    $string .= "\x1E";
        +
        +    if (defined $using)
        +        {
        +        $string .= join("\x1E", @$using);
        +        };
        +
        +    return $string;
        +    };
        +
        +
        +#
        +#   Function: ToBinaryFile
        +#
        +#   Writes a <ReferenceString> to the passed filehandle.  Can also encode an undef.
        +#
        +#   Parameters:
        +#
        +#       fileHandle - The filehandle to write to.
        +#       referenceString - The <ReferenceString> to write, or undef.
        +#       binaryFormatFlags - Any <Binary Format Flags> you want to use to influence encoding.
        +#
        +#   Format:
        +#
        +#       > [SymbolString: Symbol or undef for an undef reference]
        +#       > [UString16: language]
        +#       > [SymbolString: Scope or undef for none]
        +#       >
        +#       > [SymbolString: Using or undef for none]
        +#       > [SymbolString: Using or undef for no more]
        +#       > ...
        +#       >
        +#       > [UInt8: Type unless BINARYREF_NOTYPE is set]
        +#       > [UInt8: Resolving Flags unless BINARYREF_NORESOLVINGFLAGS is set]
        +#
        +#   Dependencies:
        +#
        +#       - <ReferenceTypes> must fit into a UInt8.  All values must be <= 255.
        +#       - All <Resolving Flags> must fit into a UInt8.  All values must be <= 255.
        +#
        +sub ToBinaryFile #(FileHandle fileHandle, ReferenceString referenceString, flags binaryFormatFlags)
        +    {
        +    my ($self, $fileHandle, $referenceString, $binaryFormatFlags) = @_;
        +
        +    my ($type, $symbol, $language, $scope, $using, $resolvingFlags) = $self->InformationOf($referenceString);
        +
        +    # [SymbolString: Symbol or undef for an undef reference]
        +
        +    NaturalDocs::SymbolString->ToBinaryFile($fileHandle, $symbol);
        +
        +    # [UString16: language]
        +
        +    # $language may be undefined because $referenceString may be undefined to end a list of them.
        +    if (defined $language)
        +    	{
        +	    my $uLanguage = encode_utf8($language);
        +	    print $fileHandle pack('na*', length $uLanguage, $uLanguage);
        +	    }
        +	else
        +		{  print $fileHandle pack('n', 0);  }
        +
        +    # [SymbolString: scope or undef if none]
        +
        +    NaturalDocs::SymbolString->ToBinaryFile($fileHandle, $scope);
        +
        +    # [SymbolString: using or undef if none/no more] ...
        +
        +    if (defined $using)
        +        {
        +        foreach my $usingScope (@$using)
        +            {  NaturalDocs::SymbolString->ToBinaryFile($fileHandle, $usingScope);  };
        +        };
        +
        +    NaturalDocs::SymbolString->ToBinaryFile($fileHandle, undef);
        +
        +    # [UInt8: Type unless BINARYREF_NOTYPE is set]
        +
        +    if (!($binaryFormatFlags & BINARYREF_NOTYPE))
        +        {  print $fileHandle pack('C', $type);  };
        +
        +    # [UInt8: Resolving Flags unless BINARYREF_NORESOLVINGFLAGS is set]
        +
        +    if (!($binaryFormatFlags & BINARYREF_NORESOLVINGFLAGS))
        +        {  print $fileHandle pack('C', $type);  };
        +    };
        +
        +
        +#
        +#   Function: FromBinaryFile
        +#
        +#   Reads a <ReferenceString> or undef from the passed filehandle.
        +#
        +#   Parameters:
        +#
        +#       fileHandle - The filehandle to read from.
        +#       binaryFormatFlags - Any <Binary Format Flags> you want to use to influence decoding.
        +#       type - The <ReferenceType> to use if <BINARYREF_NOTYPE> is set.
        +#       resolvingFlags - The <Resolving Flags> to use if <BINARYREF_NORESOLVINGFLAGS> is set.
        +#
        +#   Returns:
        +#
        +#       The <ReferenceString> or undef.
        +#
        +#   See Also:
        +#
        +#       See <ToBinaryFile()> for format and dependencies.
        +#
        +sub FromBinaryFile #(FileHandle fileHandle, flags binaryFormatFlags, ReferenceType type, flags resolvingFlags)
        +    {
        +    my ($self, $fileHandle, $binaryFormatFlags, $type, $resolvingFlags) = @_;
        +    my $raw;
        +
        +    # [SymbolString: Symbol or undef for an undef reference]
        +
        +    my $symbol = NaturalDocs::SymbolString->FromBinaryFile($fileHandle);
        +
        +    if (!defined $symbol)
        +        {  return undef;  };
        +
        +
        +    # [UString16: language]
        +
        +    read($fileHandle, $raw, 2);
        +    my $languageLength = unpack('n', $raw);
        +
        +    my $language;
        +    read($fileHandle, $language, $languageLength);
        +    $language = decode_utf8($language);
        +
        +
        +    # [SymbolString: scope or undef if none]
        +
        +    my $scope = NaturalDocs::SymbolString->FromBinaryFile($fileHandle);
        +
        +    # [SymbolString: using or undef if none/no more] ...
        +
        +    my $usingSymbol;
        +    my @using;
        +
        +    while ($usingSymbol = NaturalDocs::SymbolString->FromBinaryFile($fileHandle))
        +        {  push @using, $usingSymbol;  };
        +
        +    if (scalar @using)
        +        {  $usingSymbol = \@using;  }
        +    else
        +        {  $usingSymbol = undef;  };
        +
        +    # [UInt8: Type unless BINARYREF_NOTYPE is set]
        +
        +    if (!($binaryFormatFlags & BINARYREF_NOTYPE))
        +        {
        +        my $raw;
        +        read($fileHandle, $raw, 1);
        +        $type = unpack('C', $raw);
        +        };
        +
        +    # [UInt8: Resolving Flags unless BINARYREF_NORESOLVINGFLAGS is set]
        +
        +    if (!($binaryFormatFlags & BINARYREF_NORESOLVINGFLAGS))
        +        {
        +        my $raw;
        +        read($fileHandle, $raw, 1);
        +        $resolvingFlags = unpack('C', $raw);
        +        };
        +
        +    return $self->MakeFrom($type, $symbol, $language, $scope, $usingSymbol, $resolvingFlags);
        +    };
        +
        +
        +#
        +#   Function: InformationOf
        +#
        +#   Returns the information encoded in a <ReferenceString>.
        +#
        +#   Parameters:
        +#
        +#       referenceString - The <ReferenceString> to decode.
        +#
        +#   Returns:
        +#
        +#       The array ( type, symbol, language, scope, using, resolvingFlags ).
        +#
        +#       type - The <ReferenceType>.
        +#       symbol - The <SymbolString>.
        +#       language - The name of the language that defined the file the reference was defined in.
        +#       scope - The scope <SymbolString>, or undef if none.
        +#       using - An arrayref of scope <SymbolStrings> that the reference also has access to via "using" statements, or undef if none.
        +#       resolvingFlags - The <Resolving Flags> of the reference.
        +#
        +sub InformationOf #(ReferenceString referenceString)
        +    {
        +    my ($self, $referenceString) = @_;
        +
        +    my ($type, $symbolString, $language, $resolvingFlags, $scopeString, @usingStrings) = split(/\x1E/, $referenceString);
        +
        +    if (!length $resolvingFlags)
        +        {  $resolvingFlags = undef;  };
        +
        +    return ( $type, $symbolString, $language, $scopeString, [ @usingStrings ], $resolvingFlags );
        +    };
        +
        +
        +#
        +#   Function: TypeOf
        +#
        +#   Returns the <ReferenceType> encoded in the reference string.  This is faster than <InformationOf()> if this is
        +#   the only information you need.
        +#
        +sub TypeOf #(ReferenceString referenceString)
        +    {
        +    my ($self, $referenceString) = @_;
        +
        +    $referenceString =~ /^([^\x1E]+)/;
        +    return $1;
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Settings.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Settings.pm
        new file mode 100755
        index 0000000..25fb223
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Settings.pm
        @@ -0,0 +1,1484 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::Settings
        +#
        +###############################################################################
        +#
        +#   A package to handle the command line and various other program settings.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use Cwd ();
        +
        +use NaturalDocs::Settings::BuildTarget;
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::Settings;
        +
        +
        +###############################################################################
        +# Group: Information
        +
        +=pod begin nd
        +
        +    Topic: Usage and Dependencies
        +
        +        - The <Constant Functions> can be called immediately.
        +
        +        - Prior to initialization, <NaturalDocs::Builder> must have all its output packages registered.
        +
        +        - To initialize, call <Load()>.  All functions except <InputDirectoryNameOf()> will then be available.
        +
        +        - <GenerateDirectoryNames()> must be called before <InputDirectoryNameOf()> will work.  Currently it is called by
        +          <NaturalDocs::Menu->LoadAndUpdate()>.
        +
        +
        +    Architecture: Internal Overview
        +
        +        - <Load()> first parses the command line, gathering all the settings and checking for errors.  All <NaturalDocs::Builder>
        +          packages must be registered before this is called because it needs their command line options.
        +          <NaturalDocs::Project->ReparseEverything()> and <NaturalDocs::Project->RebuildEverything()> are called right away if -r
        +          or -ro are used.
        +
        +        - Output directories are *not* named at this point.  See <Named Directories>.
        +
        +        - The previous settings from the last time Natural Docs was run are loaded and compared to the current settings.
        +          <NaturalDocs::Project->ReparseEverything()> and <NaturalDocs::Project->RebuildEverything()> are called if there are
        +          any differences that warrant it.
        +
        +        - It then waits for <GenerateDirectoryNames()> to be called by <NaturalDocs::Menu>.  The reason for this is that the
        +          previous directory names are stored as hints in the menu file, for reasons explained in <Named Directories>.  Once that
        +          happens all the unnamed directories have names generated for them so everything is named.  The package is completely
        +          set up.
        +
        +        - The input directories are stored in an array instead of a hash because the order they were declared in matters.  If two
        +          people use multiple input directories on separate computers without sharing a menu file, they should at least get consistent
        +          directory names by declaring them in the same order.
        +
        +
        +    Architecture: Named Directories
        +
        +        Ever since Natural Docs introduced multiple input directories in 1.16, they've had to be named.  Since they don't necessarily
        +        extend from the same root anymore, they can't share an output directory without the risk of file name conflicts.  There was
        +        an early attempt at giving them actual names, but now they're just numbered from 1.
        +
        +        Directory names aren't generated right away.  It waits for <Menu.txt> to load because that holds the obfuscated names from
        +        the last run.  <NaturalDocs::Menu> then calls <GenerateDirectoryNames()> and passes those along as hints.
        +        <GenerateDirectoryNames()> then applies them to any matches and generates new ones for any remaining.  This is done so
        +        that output page locations can remain consistent when built on multiple computers, so long as the menu file is shared.  I tend
        +        to think the menu file is the most likely configuration file to be shared.
        +
        +
        +    Architecture: Removed Directories
        +
        +        Directories that were part of the previous run but aren't anymore are still stored in the package.  The primary reason, though
        +        there may be others, is file purging.  If an input directory is removed, all the output files that were generated from anything
        +        in it need to be removed.  To find out what the output file name was for a removed source file, it needs to be able to split it
        +        from it's original input directory and know what that directory was named.  If this didn't happen those output files would be
        +        orphaned, as was the case prior to 1.32.
        +
        +=cut
        +
        +
        +
        +###############################################################################
        +# Group: Variables
        +
        +
        +# handle: PREVIOUS_SETTINGS_FILEHANDLE
        +# The file handle used with <PreviousSettings.nd>.
        +
        +# array: inputDirectories
        +# An array of input directories.
        +my @inputDirectories;
        +
        +# array: inputDirectoryNames
        +# An array of the input directory names.  Each name corresponds to the directory of the same index in <inputDirectories>.
        +my @inputDirectoryNames;
        +
        +# array: imageDirectories
        +# An array of image directories.
        +my @imageDirectories;
        +
        +# array: imageDirectoryNames
        +# An array of the image directory names.  Each name corresponds to the directory of the same index in <imageDirectories>.
        +my @imageDirectoryNames;
        +
        +# array: relativeImageDirectories
        +# An array of the relative paths for images.  The asterisks found in the command line are not present.
        +my @relativeImageDirectories;
        +
        +# array: excludedInputDirectories
        +# An array of input directories to exclude.
        +my @excludedInputDirectories;
        +
        +# array: removedInputDirectories
        +# An array of input directories that were once in the command line but are no longer.
        +my @removedInputDirectories;
        +
        +# array: removedInputDirectoryNames
        +# An array of the removed input directories' names.  Each name corresponds to the directory of the same index in
        +# <removedInputDirectories>.
        +my @removedInputDirectoryNames;
        +
        +# array: removedImageDirectories
        +# An array of image directories that were once in the command line but are no longer.
        +my @removedImageDirectories;
        +
        +# array: removedImageDirectoryNames
        +# An array of the removed image directories' names.  Each name corresponds to the directory of the same index in
        +# <removedImageDirectories>.
        +my @removedImageDirectoryNames;
        +
        +# var: projectDirectory
        +# The project directory.
        +my $projectDirectory;
        +
        +# array: buildTargets
        +# An array of <NaturalDocs::Settings::BuildTarget>s.
        +my @buildTargets;
        +
        +# var: documentedOnly
        +# Whether undocumented code aspects should be included in the output.
        +my $documentedOnly;
        +
        +# int: tabLength
        +# The number of spaces in tabs.
        +my $tabLength;
        +
        +# bool: noAutoGroup
        +# Whether auto-grouping is turned off.
        +my $noAutoGroup;
        +
        +# bool: onlyFileTitles
        +# Whether source files should always use the file name as the title.
        +my $onlyFileTitles;
        +
        +# bool: isQuiet
        +# Whether the script should be run in quiet mode or not.
        +my $isQuiet;
        +
        +# bool: rebuildData
        +# WHether most data files should be ignored and rebuilt.
        +my $rebuildData;
        +
        +# array: styles
        +# An array of style names to use, most important first.
        +my @styles;
        +
        +# var: highlightCode
        +# Whether syntax highlighting should be applied to code tags.
        +my $highlightCode;
        +
        +# var: highlightAnonymous
        +# Whether syntax highlighting should be applied to anonymous code tags.
        +my $highlightAnonymous;
        +
        +
        +###############################################################################
        +# Group: Files
        +
        +
        +#
        +#   File: PreviousSettings.nd
        +#
        +#   Stores the previous command line settings.
        +#
        +#   Format:
        +#
        +#       > [BINARY_FORMAT]
        +#       > [VersionInt: app version]
        +#
        +#       The file starts with the standard <BINARY_FORMAT> <VersionInt> header.
        +#
        +#       > [UInt8: tab length]
        +#       > [UInt8: documented only (0 or 1)]
        +#       > [UInt8: no auto-group (0 or 1)]
        +#       > [UInt8: only file titles (0 or 1)]
        +#		> [UInt8: highlight code (0 or 1)]
        +#		> [UInt8: highlight anonymous (0 or 1)]
        +#       >
        +#       > [UInt8: number of input directories]
        +#       > [UString16: input directory] [UString16: input directory name] ...
        +#
        +#       A count of input directories, then that number of directory/name pairs.
        +#
        +#       > [UInt8: number of output targets]
        +#       > [UString16: output directory] [UString16: output format command line option] ...
        +#
        +#       A count of output targets, then that number of directory/format pairs.
        +#
        +#
        +#   Revisions:
        +#
        +#		1.52:
        +#
        +#			- Changed AString16s to UString16s.
        +#
        +#		1.51:
        +#
        +#			- Removed charset.
        +#
        +#		1.5:
        +#
        +#			- Added highlight code and highlight anonymous.
        +#
        +#       1.4:
        +#
        +#           - Added only file titles.
        +#
        +#       1.33:
        +#
        +#           - Added charset.
        +#
        +#       1.3:
        +#
        +#           - Removed headers-only, which was a 0/1 UInt8 after tab length.
        +#           - Change auto-group level (1 = no, 2 = yes, 3 = full only) to no auto-group (0 or 1).
        +#
        +#       1.22:
        +#
        +#           - Added auto-group level.
        +#
        +#       1.2:
        +#
        +#           - File was added to the project.  Prior to 1.2, it didn't exist.
        +#
        +
        +
        +###############################################################################
        +# Group: Action Functions
        +
        +#
        +#   Function: Load
        +#
        +#   Loads and parses all settings from the command line and configuration files.  Will exit if the options are invalid or the syntax
        +#   reference was requested.
        +#
        +sub Load
        +    {
        +    my ($self) = @_;
        +
        +    $self->ParseCommandLine();
        +    $self->LoadAndComparePreviousSettings();
        +    };
        +
        +
        +#
        +#   Function: Save
        +#
        +#   Saves all settings in configuration files to disk.
        +#
        +sub Save
        +    {
        +    my ($self) = @_;
        +
        +    $self->SavePreviousSettings();
        +    };
        +
        +
        +#
        +#   Function: GenerateDirectoryNames
        +#
        +#   Generates names for each of the input and image directories, which can later be retrieved with <InputDirectoryNameOf()>
        +#   and <ImageDirectoryNameOf()>.
        +#
        +#   Parameters:
        +#
        +#       inputHints - A hashref of suggested input directory names, where the keys are the directories and the values are the names.
        +#                        These take precedence over anything generated.  You should include names for directories that are no longer in
        +#                        the command line.  This parameter may be undef.
        +#       imageHints - Same as inputHints, only for the image directories.
        +#
        +sub GenerateDirectoryNames #(hashref inputHints, hashref imageHints)
        +    {
        +    my ($self, $inputHints, $imageHints) = @_;
        +
        +    my %usedInputNames;
        +    my %usedImageNames;
        +
        +
        +    if (defined $inputHints)
        +        {
        +        # First, we have to convert all non-numeric names to numbers, since they may come from a pre-1.32 menu file.  We do it
        +        # here instead of in NaturalDocs::Menu to keep the naming scheme centralized.
        +
        +        my @names = values %$inputHints;
        +        my $hasNonNumeric;
        +
        +        foreach my $name (@names)
        +            {
        +            if ($name !~ /^[0-9]+$/)
        +                {
        +                $hasNonNumeric = 1;
        +                last;
        +                };
        +            };
        +
        +
        +        if ($hasNonNumeric)
        +            {
        +            # Hash mapping old names to new names.
        +            my %conversion;
        +
        +            # The sequential number to use.  Starts at two because we want 'default' to be one.
        +            my $currentNumber = 2;
        +
        +            # If there's only one name, we set it to one no matter what it was set to before.
        +            if (scalar @names == 1)
        +                {  $conversion{$names[0]} = 1;  }
        +            else
        +                {
        +                # We sort the list first because we want the end result to be predictable.  This conversion could be happening on many
        +                # machines, and they may not all specify the input directories in the same order.  They need to all come up with the
        +                # same result.
        +                @names = sort @names;
        +
        +                foreach my $name (@names)
        +                    {
        +                    if ($name eq 'default')
        +                        {  $conversion{$name} = 1;  }
        +                    else
        +                        {
        +                        $conversion{$name} = $currentNumber;
        +                        $currentNumber++;
        +                        };
        +                    };
        +                };
        +
        +            # Convert them to the new names.
        +            foreach my $directory (keys %$inputHints)
        +                {
        +                $inputHints->{$directory} = $conversion{ $inputHints->{$directory} };
        +                };
        +            };
        +
        +
        +        # Now we apply all the names from the hints, and save any unused ones as removed directories.
        +
        +        for (my $i = 0; $i < scalar @inputDirectories; $i++)
        +            {
        +            if (exists $inputHints->{$inputDirectories[$i]})
        +                {
        +                $inputDirectoryNames[$i] = $inputHints->{$inputDirectories[$i]};
        +                $usedInputNames{ $inputDirectoryNames[$i] } = 1;
        +                delete $inputHints->{$inputDirectories[$i]};
        +                };
        +            };
        +
        +
        +        # Any remaining hints are saved as removed directories.
        +
        +        while (my ($directory, $name) = each %$inputHints)
        +            {
        +            push @removedInputDirectories, $directory;
        +            push @removedInputDirectoryNames, $name;
        +            };
        +        };
        +
        +
        +    if (defined $imageHints)
        +        {
        +        # Image directory names were never non-numeric, so there is no conversion.  Apply all the names from the hints.
        +
        +        for (my $i = 0; $i < scalar @imageDirectories; $i++)
        +            {
        +            if (exists $imageHints->{$imageDirectories[$i]})
        +                {
        +                $imageDirectoryNames[$i] = $imageHints->{$imageDirectories[$i]};
        +                $usedImageNames{ $imageDirectoryNames[$i] } = 1;
        +                delete $imageHints->{$imageDirectories[$i]};
        +                };
        +            };
        +
        +
        +        # Any remaining hints are saved as removed directories.
        +
        +        while (my ($directory, $name) = each %$imageHints)
        +            {
        +            push @removedImageDirectories, $directory;
        +            push @removedImageDirectoryNames, $name;
        +            };
        +        };
        +
        +
        +    # Now we generate names for anything remaining.
        +
        +    my $inputCounter = 1;
        +
        +    for (my $i = 0; $i < scalar @inputDirectories; $i++)
        +        {
        +        if (!defined $inputDirectoryNames[$i])
        +            {
        +            while (exists $usedInputNames{$inputCounter})
        +                {  $inputCounter++;  };
        +
        +            $inputDirectoryNames[$i] = $inputCounter;
        +            $usedInputNames{$inputCounter} = 1;
        +
        +            $inputCounter++;
        +            };
        +        };
        +
        +
        +    my $imageCounter = 1;
        +
        +    for (my $i = 0; $i < scalar @imageDirectories; $i++)
        +        {
        +        if (!defined $imageDirectoryNames[$i])
        +            {
        +            while (exists $usedImageNames{$imageCounter})
        +                {  $imageCounter++;  };
        +
        +            $imageDirectoryNames[$i] = $imageCounter;
        +            $usedImageNames{$imageCounter} = 1;
        +
        +            $imageCounter++;
        +            };
        +        };
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Information Functions
        +
        +
        +#
        +#   Function: InputDirectories
        +#
        +#   Returns an arrayref of input directories.  Do not change.
        +#
        +#   This will not return any removed input directories.
        +#
        +sub InputDirectories
        +    {  return \@inputDirectories;  };
        +
        +#
        +#   Function: InputDirectoryNameOf
        +#
        +#   Returns the generated name of the passed input directory.  <GenerateDirectoryNames()> must be called once before this
        +#   function is available.
        +#
        +#   If a name for a removed input directory is available, it will be returned as well.
        +#
        +sub InputDirectoryNameOf #(directory)
        +    {
        +    my ($self, $directory) = @_;
        +
        +    for (my $i = 0; $i < scalar @inputDirectories; $i++)
        +        {
        +        if ($directory eq $inputDirectories[$i])
        +            {  return $inputDirectoryNames[$i];  };
        +        };
        +
        +    for (my $i = 0; $i < scalar @removedInputDirectories; $i++)
        +        {
        +        if ($directory eq $removedInputDirectories[$i])
        +            {  return $removedInputDirectoryNames[$i];  };
        +        };
        +
        +    return undef;
        +    };
        +
        +
        +#
        +#   Function: SplitFromInputDirectory
        +#
        +#   Takes an input file name and returns the array ( inputDirectory, relativePath ).
        +#
        +#   If the file cannot be split from an input directory, it will try to do it with the removed input directories.
        +#
        +sub SplitFromInputDirectory #(file)
        +    {
        +    my ($self, $file) = @_;
        +
        +    foreach my $directory (@inputDirectories, @removedInputDirectories)
        +        {
        +        if (NaturalDocs::File->IsSubPathOf($directory, $file))
        +            {  return ( $directory, NaturalDocs::File->MakeRelativePath($directory, $file) );  };
        +        };
        +
        +    return ( );
        +    };
        +
        +
        +#
        +#   Function: ImageDirectories
        +#
        +#   Returns an arrayref of image directories.  Do not change.
        +#
        +#   This will not return any removed image directories.
        +#
        +sub ImageDirectories
        +    {  return \@imageDirectories;  };
        +
        +
        +#
        +#   Function: ImageDirectoryNameOf
        +#
        +#   Returns the generated name of the passed image or input directory.  <GenerateDirectoryNames()> must be called once before
        +#   this function is available.
        +#
        +#   If a name for a removed input or image directory is available, it will be returned as well.
        +#
        +sub ImageDirectoryNameOf #(directory)
        +    {
        +    my ($self, $directory) = @_;
        +
        +    for (my $i = 0; $i < scalar @imageDirectories; $i++)
        +        {
        +        if ($directory eq $imageDirectories[$i])
        +            {  return $imageDirectoryNames[$i];  };
        +        };
        +
        +    for (my $i = 0; $i < scalar @removedImageDirectories; $i++)
        +        {
        +        if ($directory eq $removedImageDirectories[$i])
        +            {  return $removedImageDirectoryNames[$i];  };
        +        };
        +
        +    return undef;
        +    };
        +
        +
        +#
        +#   Function: SplitFromImageDirectory
        +#
        +#   Takes an input image file name and returns the array ( imageDirectory, relativePath ).
        +#
        +#   If the file cannot be split from an image directory, it will try to do it with the removed image directories.
        +#
        +sub SplitFromImageDirectory #(file)
        +    {
        +    my ($self, $file) = @_;
        +
        +    foreach my $directory (@imageDirectories, @removedImageDirectories)
        +        {
        +        if (NaturalDocs::File->IsSubPathOf($directory, $file))
        +            {  return ( $directory, NaturalDocs::File->MakeRelativePath($directory, $file) );  };
        +        };
        +
        +    return ( );
        +    };
        +
        +
        +#
        +#   Function: RelativeImageDirectories
        +#
        +#   Returns an arrayref of relative image directories.  Do not change.
        +#
        +sub RelativeImageDirectories
        +    {  return \@relativeImageDirectories;  };
        +
        +
        +# Function: ExcludedInputDirectories
        +# Returns an arrayref of input directories to exclude.  Do not change.
        +sub ExcludedInputDirectories
        +    {  return \@excludedInputDirectories;  };
        +
        +
        +# Function: BuildTargets
        +# Returns an arrayref of <NaturalDocs::Settings::BuildTarget>s.  Do not change.
        +sub BuildTargets
        +    {  return \@buildTargets;  };
        +
        +
        +#
        +#   Function: OutputDirectoryOf
        +#
        +#   Returns the output directory of a builder object.
        +#
        +#   Parameters:
        +#
        +#       object - The builder object, whose class is derived from <NaturalDocs::Builder::Base>.
        +#
        +#   Returns:
        +#
        +#       The builder directory, or undef if the object wasn't found..
        +#
        +sub OutputDirectoryOf #(object)
        +    {
        +    my ($self, $object) = @_;
        +
        +    foreach my $buildTarget (@buildTargets)
        +        {
        +        if ($buildTarget->Builder() == $object)
        +            {  return $buildTarget->Directory();  };
        +        };
        +
        +    return undef;
        +    };
        +
        +
        +# Function: Styles
        +# Returns an arrayref of the styles associated with the output.
        +sub Styles
        +    {  return \@styles;  };
        +
        +# Function: ProjectDirectory
        +# Returns the project directory.
        +sub ProjectDirectory
        +    {  return $projectDirectory;  };
        +
        +# Function: ProjectDataDirectory
        +# Returns the project data directory.
        +sub ProjectDataDirectory
        +    {  return NaturalDocs::File->JoinPaths($projectDirectory, 'Data', 1);  };
        +
        +# Function: StyleDirectory
        +# Returns the main style directory.
        +sub StyleDirectory
        +    {  return NaturalDocs::File->JoinPaths($FindBin::RealBin, 'Styles', 1);  };
        +
        +# Function: JavaScriptDirectory
        +# Returns the main JavaScript directory.
        +sub JavaScriptDirectory
        +    {  return NaturalDocs::File->JoinPaths($FindBin::RealBin, 'JavaScript', 1);  };
        +
        +# Function: ConfigDirectory
        +# Returns the main configuration directory.
        +sub ConfigDirectory
        +    {  return NaturalDocs::File->JoinPaths($FindBin::RealBin, 'Config', 1);  };
        +
        +# Function: DocumentedOnly
        +# Returns whether undocumented code aspects should be included in the output.
        +sub DocumentedOnly
        +    {  return $documentedOnly;  };
        +
        +# Function: TabLength
        +# Returns the number of spaces tabs should be expanded to.
        +sub TabLength
        +    {  return $tabLength;  };
        +
        +# Function: NoAutoGroup
        +# Returns whether auto-grouping is turned off.
        +sub NoAutoGroup
        +    {  return $noAutoGroup;  };
        +
        +# Function: OnlyFileTitles
        +# Returns whether source files should always use the file name as the title.
        +sub OnlyFileTitles
        +    {  return $onlyFileTitles;  };
        +
        +# Function: IsQuiet
        +# Returns whether the script should be run in quiet mode or not.
        +sub IsQuiet
        +    {  return $isQuiet;  };
        +
        +# Function: RebuildData
        +# Returns whether all data files should be ignored and rebuilt.
        +sub RebuildData
        +    {  return $rebuildData;  };
        +
        +# Function: HighlightCode
        +# Returns whether to apply syntax highlighting (start code) sections.
        +sub HighlightCode
        +	{  return $highlightCode;  }
        +
        +# Function: HighlightAnonymous
        +# Returns whether to apply syntax highlighting to anonymous code sections designated with :, >, or |.
        +sub HighlightAnonymous
        +	{  return $highlightAnonymous;  }
        +
        +
        +###############################################################################
        +# Group: Constant Functions
        +
        +#
        +#   Function: AppVersion
        +#
        +#   Returns Natural Docs' version number as an integer.  Use <TextAppVersion()> to get a printable version.
        +#
        +sub AppVersion
        +    {
        +    my ($self) = @_;
        +    return NaturalDocs::Version->FromString($self->TextAppVersion());
        +    };
        +
        +#
        +#   Function: TextAppVersion
        +#
        +#   Returns Natural Docs' version number as plain text.
        +#
        +sub TextAppVersion
        +    {
        +    return '1.52';
        +    };
        +
        +#
        +#   Function: AppURL
        +#
        +#   Returns a string of the project's current web address.
        +#
        +sub AppURL
        +    {  return 'http://www.naturaldocs.org';  };
        +
        +
        +
        +###############################################################################
        +# Group: Support Functions
        +
        +
        +#
        +#   Function: ParseCommandLine
        +#
        +#   Parses and validates the command line.  Will cause the script to exit if the options ask for the syntax reference or
        +#   are invalid.
        +#
        +sub ParseCommandLine
        +    {
        +    my ($self) = @_;
        +
        +    my %synonyms = ( 'input'    => '-i',
        +                                  'source' => '-i',
        +                                  'excludeinput' => '-xi',
        +                                  'excludesource' => '-xi',
        +                                  'images' => '-img',
        +                                  'output'  => '-o',
        +                                  'project' => '-p',
        +                                  'documentedonly' => '-do',
        +                                  'style'    => '-s',
        +                                  'rebuild' => '-r',
        +                                  'rebuildoutput' => '-ro',
        +                                  'tablength' => '-t',
        +                                  'quiet'    => '-q',
        +                                  'headersonly' => '-ho',
        +                                  'help'     => '-h',
        +                                  'autogroup' => '-ag',
        +                                  'noautogroup' => '-nag',
        +                                  'onlyfiletitles' => '-oft',
        +                                  'onlyfiletitle' => '-oft',
        +                                  'highlight' => '-hl',
        +                                  'highlighting' => '-hl' );
        +
        +
        +    my @errorMessages;
        +
        +    my $valueRef;
        +    my $option;
        +
        +    my @outputStrings;
        +    my @imageStrings;
        +    my $highlightString;
        +
        +
        +    # Sometimes $valueRef is set to $ignored instead of undef because we don't want certain errors to cause other,
        +    # unnecessary errors.  For example, if they set the input directory twice, we want to show that error and swallow the
        +    # specified directory without complaint.  Otherwise it would complain about the directory too as if it were random crap
        +    # inserted into the command line.
        +    my $ignored;
        +
        +    my $index = 0;
        +
        +    while ($index < scalar @ARGV)
        +        {
        +        my $arg = $ARGV[$index];
        +
        +        if (substr($arg, 0, 1) eq '-')
        +            {
        +            $option = lc($arg);
        +
        +            # Support options like -t2 as well as -t 2.
        +            if ($option =~ /^([^0-9]+)([0-9]+)$/)
        +                {
        +                $option = $1;
        +                splice(@ARGV, $index + 1, 0, $2);
        +                };
        +
        +            # Convert long forms to short.
        +            if (substr($option, 1, 1) eq '-')
        +                {
        +                # Strip all dashes.
        +                my $newOption = $option;
        +                $newOption =~ tr/-//d;
        +
        +                if (exists $synonyms{$newOption})
        +                    {  $option = $synonyms{$newOption};  }
        +                }
        +
        +            if ($option eq '-i')
        +                {
        +                push @inputDirectories, undef;
        +                $valueRef = \$inputDirectories[-1];
        +                }
        +            elsif ($option eq '-xi')
        +                {
        +                push @excludedInputDirectories, undef;
        +                $valueRef = \$excludedInputDirectories[-1];
        +                }
        +            elsif ($option eq '-img')
        +                {
        +                push @imageStrings, undef;
        +                $valueRef = \$imageStrings[-1];
        +                }
        +            elsif ($option eq '-p')
        +                {
        +                if (defined $projectDirectory)
        +                    {
        +                    push @errorMessages, 'You cannot have more than one project directory.';
        +                    $valueRef = \$ignored;
        +                    }
        +                else
        +                    {  $valueRef = \$projectDirectory;  };
        +                }
        +            elsif ($option eq '-o')
        +                {
        +                push @outputStrings, undef;
        +                $valueRef = \$outputStrings[-1];
        +                }
        +            elsif ($option eq '-s')
        +                {
        +                $valueRef = \$styles[0];
        +                }
        +            elsif ($option eq '-t')
        +                {
        +                $valueRef = \$tabLength;
        +                }
        +            elsif ($option eq '-hl')
        +            	{
        +            	$valueRef = \$highlightString;
        +            	}
        +            elsif ($option eq '-ag')
        +                {
        +                push @errorMessages, 'The -ag setting is no longer supported.  You can use -nag (--no-auto-group) to turn off '
        +                                               . "auto-grouping, but there aren't multiple levels anymore.";
        +                $valueRef = \$ignored;
        +                }
        +
        +            # Options that aren't followed by content.
        +            else
        +                {
        +                $valueRef = undef;
        +
        +                if ($option eq '-r')
        +                    {
        +                    NaturalDocs::Project->ReparseEverything();
        +                    NaturalDocs::Project->RebuildEverything();
        +                    $rebuildData = 1;
        +                    }
        +                elsif ($option eq '-ro')
        +                    {
        +                    NaturalDocs::Project->RebuildEverything();
        +                    }
        +                elsif ($option eq '-do')
        +                    {  $documentedOnly = 1;  }
        +                elsif ($option eq '-oft')
        +                    {  $onlyFileTitles = 1;  }
        +                elsif ($option eq '-q')
        +                    {  $isQuiet = 1;  }
        +                elsif ($option eq '-ho')
        +                    {
        +                    push @errorMessages, 'The -ho setting is no longer supported.  You can have Natural Docs skip over the source file '
        +                                                   . 'extensions by editing Languages.txt in your project directory.';
        +                    }
        +                elsif ($option eq '-nag')
        +                    {  $noAutoGroup = 1;  }
        +                elsif ($option eq '-?' || $option eq '-h')
        +                    {
        +                    $self->PrintSyntax();
        +                    exit;
        +                    }
        +                else
        +                    {  push @errorMessages, 'Unrecognized option ' . $option;  };
        +
        +                };
        +
        +            }
        +
        +        # Is a segment of text, not an option...
        +        else
        +            {
        +            if (defined $valueRef)
        +                {
        +                # We want to preserve spaces in paths.
        +                if (defined $$valueRef)
        +                    {  $$valueRef .= ' ';  };
        +
        +                $$valueRef .= $arg;
        +                }
        +
        +            else
        +                {
        +                push @errorMessages, 'Unrecognized element ' . $arg;
        +                };
        +            };
        +
        +        $index++;
        +        };
        +
        +
        +    # Validate the style, if specified.
        +
        +    if ($styles[0])
        +        {
        +        my @stylePieces = split(/ +/, $styles[0]);
        +        @styles = ( );
        +
        +        while (scalar @stylePieces)
        +            {
        +            if (lc($stylePieces[0]) eq 'custom')
        +                {
        +                push @errorMessages, 'The "Custom" style setting is no longer supported.  Copy your custom style sheet to your '
        +                                               . 'project directory and you can refer to it with -s.';
        +                shift @stylePieces;
        +                }
        +            else
        +                {
        +                # People may use styles with spaces in them.  If a style doesn't exist, we need to join the pieces until we find one that
        +                # does or we run out of pieces.
        +
        +                my $extras = 0;
        +                my $success;
        +
        +                while ($extras < scalar @stylePieces)
        +                    {
        +                    my $style;
        +
        +                    if (!$extras)
        +                        {  $style = $stylePieces[0];  }
        +                    else
        +                        {  $style = join(' ', @stylePieces[0..$extras]);  };
        +
        +                    my $cssFile = NaturalDocs::File->JoinPaths( $self->StyleDirectory(), $style . '.css' );
        +                    if (-e $cssFile)
        +                        {
        +                        push @styles, $style;
        +                        splice(@stylePieces, 0, 1 + $extras);
        +                        $success = 1;
        +                        last;
        +                        }
        +                    else
        +                        {
        +                        $cssFile = NaturalDocs::File->JoinPaths( $self->ProjectDirectory(), $style . '.css' );
        +
        +                        if (-e $cssFile)
        +                            {
        +                            push @styles, $style;
        +                            splice(@stylePieces, 0, 1 + $extras);
        +                            $success = 1;
        +                            last;
        +                            }
        +                        else
        +                            {  $extras++;  };
        +                        };
        +                    };
        +
        +                if (!$success)
        +                    {
        +                    push @errorMessages, 'The style "' . $stylePieces[0] . '" does not exist.';
        +                    shift @stylePieces;
        +                    };
        +                };
        +            };
        +        }
        +    else
        +        {  @styles = ( 'Default' );  };
        +
        +
        +    # Decode and validate the output strings.
        +
        +    my %outputDirectories;
        +
        +    foreach my $outputString (@outputStrings)
        +        {
        +        my ($format, $directory) = split(/ /, $outputString, 2);
        +
        +        if (!defined $directory)
        +            {  push @errorMessages, 'The -o option needs two parameters: -o [format] [directory]';  }
        +        else
        +            {
        +            if (!NaturalDocs::File->PathIsAbsolute($directory))
        +                {  $directory = NaturalDocs::File->JoinPaths(Cwd::cwd(), $directory, 1);  };
        +
        +            $directory = NaturalDocs::File->CanonizePath($directory);
        +
        +            if (! -e $directory || ! -d $directory)
        +                {
        +                # They may have forgotten the format portion and the directory name had a space in it.
        +                if (-e ($format . ' ' . $directory) && -d ($format . ' ' . $directory))
        +                    {
        +                    push @errorMessages, 'The -o option needs two parameters: -o [format] [directory]';
        +                    $format = undef;
        +                    }
        +                else
        +                    {  push @errorMessages, 'The output directory ' . $directory . ' does not exist.';  }
        +                }
        +            elsif (exists $outputDirectories{$directory})
        +                {  push @errorMessages, 'You cannot specify the output directory ' . $directory . ' more than once.';  }
        +            else
        +                {  $outputDirectories{$directory} = 1;  };
        +
        +            if (defined $format)
        +                {
        +                my $builderPackage = NaturalDocs::Builder->OutputPackageOf($format);
        +
        +                if (defined $builderPackage)
        +                    {
        +                    push @buildTargets,
        +                            NaturalDocs::Settings::BuildTarget->New($builderPackage->New(), $directory);
        +                    }
        +                else
        +                    {
        +                    push @errorMessages, 'The output format ' . $format . ' doesn\'t exist or is not installed.';
        +                    $valueRef = \$ignored;
        +                    };
        +                };
        +            };
        +        };
        +
        +    if (!scalar @buildTargets)
        +        {  push @errorMessages, 'You did not specify an output directory.';  };
        +
        +
        +    # Decode and validate the image strings.
        +
        +    foreach my $imageString (@imageStrings)
        +        {
        +        if ($imageString =~ /^ *\*/)
        +            {
        +            # The below NaturalDocs::File functions assume everything is canonized.
        +            $imageString = NaturalDocs::File->CanonizePath($imageString);
        +
        +            my ($volume, $directoryString) = NaturalDocs::File->SplitPath($imageString, 1);
        +            my @directories = NaturalDocs::File->SplitDirectories($directoryString);
        +
        +            shift @directories;
        +
        +            $directoryString = NaturalDocs::File->JoinDirectories(@directories);
        +            push @relativeImageDirectories, NaturalDocs::File->JoinPath($volume, $directoryString);
        +            }
        +        else
        +            {
        +            if (!NaturalDocs::File->PathIsAbsolute($imageString))
        +                {  $imageString = NaturalDocs::File->JoinPaths(Cwd::cwd(), $imageString, 1);  };
        +
        +            $imageString = NaturalDocs::File->CanonizePath($imageString);
        +
        +            if (! -e $imageString || ! -d $imageString)
        +                {  push @errorMessages, 'The image directory ' . $imageString . ' does not exist.';  };
        +
        +            push @imageDirectories, $imageString;
        +            };
        +        };
        +
        +
        +    # Make sure the input and project directories are specified, canonized, and exist.
        +
        +    if (scalar @inputDirectories)
        +        {
        +        for (my $i = 0; $i < scalar @inputDirectories; $i++)
        +            {
        +            if (!NaturalDocs::File->PathIsAbsolute($inputDirectories[$i]))
        +                {  $inputDirectories[$i] = NaturalDocs::File->JoinPaths(Cwd::cwd(), $inputDirectories[$i], 1);  };
        +
        +            $inputDirectories[$i] = NaturalDocs::File->CanonizePath($inputDirectories[$i]);
        +
        +            if (! -e $inputDirectories[$i] || ! -d $inputDirectories[$i])
        +                {  push @errorMessages, 'The input directory ' . $inputDirectories[$i] . ' does not exist.';  };
        +            };
        +        }
        +    else
        +        {  push @errorMessages, 'You did not specify an input (source) directory.';  };
        +
        +    if (defined $projectDirectory)
        +        {
        +        if (!NaturalDocs::File->PathIsAbsolute($projectDirectory))
        +            {  $projectDirectory = NaturalDocs::File->JoinPaths(Cwd::cwd(), $projectDirectory, 1);  };
        +
        +        $projectDirectory = NaturalDocs::File->CanonizePath($projectDirectory);
        +
        +        if (! -e $projectDirectory || ! -d $projectDirectory)
        +            {  push @errorMessages, 'The project directory ' . $projectDirectory . ' does not exist.';  };
        +
        +        # Create the Data subdirectory if it doesn't exist.
        +        NaturalDocs::File->CreatePath( NaturalDocs::File->JoinPaths($projectDirectory, 'Data', 1) );
        +        }
        +    else
        +        {  push @errorMessages, 'You did not specify a project directory.';  };
        +
        +
        +    # Make sure the excluded input directories are canonized, and add the project and output directories to the list.
        +
        +    for (my $i = 0; $i < scalar @excludedInputDirectories; $i++)
        +        {
        +        if (!NaturalDocs::File->PathIsAbsolute($excludedInputDirectories[$i]))
        +            {  $excludedInputDirectories[$i] = NaturalDocs::File->JoinPaths(Cwd::cwd(), $excludedInputDirectories[$i], 1);  };
        +
        +        $excludedInputDirectories[$i] = NaturalDocs::File->CanonizePath($excludedInputDirectories[$i]);
        +        };
        +
        +    push @excludedInputDirectories, $projectDirectory;
        +
        +    foreach my $buildTarget (@buildTargets)
        +        {
        +        push @excludedInputDirectories, $buildTarget->Directory();
        +        };
        +
        +
        +    # Determine the tab length, and default to four if not specified.
        +
        +    if (defined $tabLength)
        +        {
        +        if ($tabLength !~ /^[0-9]+$/)
        +            {  push @errorMessages, 'The tab length must be a number.';  };
        +        }
        +    else
        +        {  $tabLength = 4;  };
        +
        +
        +    # Decode and validate the highlight setting.
        +
        +    if (defined $highlightString)
        +    	{
        +    	$highlightString = lc($highlightString);
        +
        +    	if ($highlightString eq 'off')
        +    		{
        +    		$highlightCode = undef;
        +    		$highlightAnonymous = undef;
        +    		}
        +    	elsif ($highlightString eq 'code')
        +    		{
        +    		$highlightCode = 1;
        +    		$highlightAnonymous = undef;
        +    		}
        +    	elsif ($highlightString eq 'all')
        +    		{
        +    		$highlightCode = 1;
        +    		$highlightAnonymous = 1;
        +    		}
        +    	else
        +    		{  push @errorMessages, $highlightString . ' is not a valid value for --highlight.';  }
        +    	}
        +    else
        +    	{
        +    	$highlightCode = 1;
        +    	$highlightAnonymous = undef;
        +    	}
        +
        +
        +    # Exit with the error message if there was one.
        +
        +    if (scalar @errorMessages)
        +        {
        +        print join("\n", @errorMessages) . "\nType NaturalDocs -h to see the syntax reference.\n";
        +        exit;
        +        };
        +    };
        +
        +#
        +#   Function: PrintSyntax
        +#
        +#   Prints the syntax reference.
        +#
        +sub PrintSyntax
        +    {
        +    my ($self) = @_;
        +
        +    # Make sure all line lengths are under 80 characters.
        +
        +    print
        +
        +    "Natural Docs, version " . $self->TextAppVersion() . "\n"
        +    . $self->AppURL() . "\n"
        +    . "This program is licensed under version 3 of the AGPL\n"
        +    . "Refer to License.txt for the complete details\n"
        +    . "--------------------------------------\n"
        +    . "\n"
        +    . "Syntax:\n"
        +    . "\n"
        +    . "    NaturalDocs -i [input (source) directory]\n"
        +    . "               (-i [input (source) directory] ...)\n"
        +    . "                -o [output format] [output directory]\n"
        +    . "               (-o [output format] [output directory] ...)\n"
        +    . "                -p [project directory]\n"
        +    . "                [options]\n"
        +    . "\n"
        +    . "Examples:\n"
        +    . "\n"
        +    . "    NaturalDocs -i C:\\My Project\\Source -o HTML C:\\My Project\\Docs\n"
        +    . "                -p C:\\My Project\\Natural Docs\n"
        +    . "    NaturalDocs -i /src/project -o HTML /doc/project\n"
        +    . "                -p /etc/naturaldocs/project -s Small -q\n"
        +    . "\n"
        +    . "Required Parameters:\n"
        +    . "\n"
        +    . " -i [dir]\n--input [dir]\n--source [dir]\n"
        +    . "     Specifies an input (source) directory.  Required.\n"
        +    . "     Can be specified multiple times.\n"
        +    . "\n"
        +    . " -o [fmt] [dir]\n--output [fmt] [dir]\n"
        +    . "    Specifies an output format and directory.  Required.\n"
        +    . "    Can be specified multiple times, but only once per directory.\n"
        +    . "    Possible output formats:\n";
        +
        +    $self->PrintOutputFormats('    - ');
        +
        +    print
        +    "\n"
        +    . " -p [dir]\n--project [dir]\n"
        +    . "    Specifies the project directory.  Required.\n"
        +    . "    There needs to be a unique project directory for every source directory.\n"
        +    . "\n"
        +    . "Optional Parameters:\n"
        +    . "\n"
        +    . " -s [style] ([style] [style] ...)\n--style [style] ([style] [style] ...)\n"
        +    . "    Specifies the CSS style when building HTML output.  If multiple styles are\n"
        +    . "    specified, they will all be included in the order given.\n"
        +    . "\n"
        +    . " -img [image directory]\n--image [image directory]\n"
        +    . "    Specifies an image directory.  Can be specified multiple times.\n"
        +    . "    Start with * to specify a relative directory, as in -img */images.\n"
        +    . "\n"
        +    . " -do\n--documented-only\n"
        +    . "    Specifies only documented code aspects should be included in the output.\n"
        +    . "\n"
        +    . " -t [len]\n--tab-length [len]\n"
        +    . "    Specifies the number of spaces tabs should be expanded to.  This only needs\n"
        +    . "    to be set if you use tabs in example code and text diagrams.  Defaults to 4.\n"
        +    . "\n"
        +    . " -xi [dir]\n--exclude-input [dir]\n--exclude-source [dir]\n"
        +    . "    Excludes an input (source) directory from the documentation.\n"
        +    . "    Automatically done for the project and output directories.  Can\n"
        +    . "    be specified multiple times.\n"
        +    . "\n"
        +    . " -nag\n--no-auto-group\n"
        +    . "    Turns off auto-grouping completely.\n"
        +    . "\n"
        +    . " -oft\n--only-file-titles\n"
        +    . "    Source files will only use the file name as the title.\n"
        +    . "\n"
        +    . " -hl [option]\n--highlight [option]\n"
        +    . "    Specifies when syntax highlighting should be applied.  Defaults to code.\n"
        +    . "    off  - No syntax highlighting is applied.\n"
        +    . "    code - Syntax highlighting is only applied to prototypes and (start code)\n"
        +    . "           segments.\n"
        +    . "    all  - Systax highlighting is applied to prototypes, (start code) segments,\n"
        +    . "           and lines starting with >, :, or |."
        +    . "\n"
        +    . " -r\n--rebuild\n"
        +    . "    Rebuilds all output and data files from scratch.\n"
        +    . "    Does not affect the menu file.\n"
        +    . "\n"
        +    . " -ro\n--rebuild-output\n"
        +    . "    Rebuilds all output files from scratch.\n"
        +    . "\n"
        +    . " -q\n--quiet\n"
        +    . "    Suppresses all non-error output.\n"
        +    . "\n"
        +    . " -?\n -h\n--help\n"
        +    . "    Displays this syntax reference.\n";
        +    };
        +
        +
        +#
        +#   Function: PrintOutputFormats
        +#
        +#   Prints all the possible output formats that can be specified with -o.  Each one will be placed on its own line.
        +#
        +#   Parameters:
        +#
        +#       prefix - Characters to prefix each one with, such as for indentation.
        +#
        +sub PrintOutputFormats #(prefix)
        +    {
        +    my ($self, $prefix) = @_;
        +
        +    my $outputPackages = NaturalDocs::Builder::OutputPackages();
        +
        +    foreach my $outputPackage (@$outputPackages)
        +        {
        +        print $prefix . $outputPackage->CommandLineOption() . "\n";
        +        };
        +    };
        +
        +
        +#
        +#   Function: LoadAndComparePreviousSettings
        +#
        +#   Loads <PreviousSettings.nd> and compares the values there with those in the command line.  If differences require it,
        +#   sets <rebuildData> and/or <rebuildOutput>.
        +#
        +sub LoadAndComparePreviousSettings
        +    {
        +    my ($self) = @_;
        +
        +    my $fileIsOkay;
        +
        +    if (!NaturalDocs::Settings->RebuildData())
        +        {
        +        my $version;
        +
        +        if (NaturalDocs::BinaryFile->OpenForReading( NaturalDocs::Project->DataFile('PreviousSettings.nd'),
        +                                                                           NaturalDocs::Version->FromString('1.52') ))
        +            {  $fileIsOkay = 1;  };
        +        };
        +
        +    if (!$fileIsOkay)
        +        {
        +        # We need to reparse everything because --documented-only may have changed.
        +        # We need to rebuild everything because --tab-length may have changed.
        +        NaturalDocs::Project->ReparseEverything();
        +        NaturalDocs::Project->RebuildEverything();
        +        }
        +    else
        +        {
        +        my $raw;
        +
        +        # [UInt8: tab expansion]
        +        # [UInt8: documented only (0 or 1)]
        +        # [UInt8: no auto-group (0 or 1)]
        +        # [UInt8: only file titles (0 or 1)]
        +        # [UInt8: highlight code (0 or 1)]
        +        # [UInt8: highlight anonymous (0 or 1)]
        +
        +        my $prevTabLength = NaturalDocs::BinaryFile->GetUInt8();
        +        my $prevDocumentedOnly = NaturalDocs::BinaryFile->GetUInt8();
        +        my $prevNoAutoGroup = NaturalDocs::BinaryFile->GetUInt8();
        +        my $prevOnlyFileTitles = NaturalDocs::BinaryFile->GetUInt8();
        +        my $prevHighlightCode = NaturalDocs::BinaryFile->GetUInt8();
        +        my $prevHighlightAnonymous = NaturalDocs::BinaryFile->GetUInt8();
        +
        +        if ($prevDocumentedOnly == 0)
        +            {  $prevDocumentedOnly = undef;  };
        +        if ($prevNoAutoGroup == 0)
        +            {  $prevNoAutoGroup = undef;  };
        +        if ($prevOnlyFileTitles == 0)
        +            {  $prevOnlyFileTitles = undef;  };
        +        if ($prevHighlightCode == 0)
        +            {  $prevHighlightCode = undef;  };
        +        if ($prevHighlightAnonymous == 0)
        +            {  $prevHighlightAnonymous = undef;  };
        +
        +        if ($prevTabLength != $self->TabLength() ||
        +        	$prevHighlightCode != $self->HighlightCode() ||
        +        	$prevHighlightAnonymous != $self->HighlightAnonymous())
        +            {
        +            NaturalDocs::Project->RebuildEverything();
        +            };
        +
        +        if ($prevDocumentedOnly != $self->DocumentedOnly() ||
        +            $prevNoAutoGroup != $self->NoAutoGroup() ||
        +            $prevOnlyFileTitles != $self->OnlyFileTitles())
        +            {
        +            NaturalDocs::Project->ReparseEverything();
        +            };
        +
        +
        +        # [UInt8: number of input directories]
        +
        +        my $inputDirectoryCount = NaturalDocs::BinaryFile->GetUInt8();
        +
        +        while ($inputDirectoryCount)
        +            {
        +            # [UString16: input directory] [UString16: input directory name] ...
        +
        +            my $inputDirectory = NaturalDocs::BinaryFile->GetUString16();
        +            my $inputDirectoryName = NaturalDocs::BinaryFile->GetUString16();
        +
        +            # Not doing anything with this for now.
        +
        +            $inputDirectoryCount--;
        +            };
        +
        +
        +        # [UInt8: number of output targets]
        +
        +        my $outputTargetCount = NaturalDocs::BinaryFile->GetUInt8();
        +
        +        # Keys are the directories, values are the command line options.
        +        my %previousOutputDirectories;
        +
        +        while ($outputTargetCount)
        +            {
        +            # [UString16: output directory] [UString16: output format command line option] ...
        +
        +            my $outputDirectory = NaturalDocs::BinaryFile->GetUString16();
        +            my $outputCommand = NaturalDocs::BinaryFile->GetUString16();
        +
        +            $previousOutputDirectories{$outputDirectory} = $outputCommand;
        +
        +            $outputTargetCount--;
        +            };
        +
        +        # Check if any targets were added to the command line, or if their formats changed.  We don't care if targets were
        +        # removed.
        +        my $buildTargets = $self->BuildTargets();
        +
        +        foreach my $buildTarget (@$buildTargets)
        +            {
        +            if (!exists $previousOutputDirectories{$buildTarget->Directory()} ||
        +                $buildTarget->Builder()->CommandLineOption() ne $previousOutputDirectories{$buildTarget->Directory()})
        +                {
        +                NaturalDocs::Project->RebuildEverything();
        +                last;
        +                };
        +            };
        +
        +        NaturalDocs::BinaryFile->Close();
        +        };
        +    };
        +
        +
        +#
        +#   Function: SavePreviousSettings
        +#
        +#   Saves the settings into <PreviousSettings.nd>.
        +#
        +sub SavePreviousSettings
        +    {
        +    my ($self) = @_;
        +
        +    NaturalDocs::BinaryFile->OpenForWriting(  NaturalDocs::Project->DataFile('PreviousSettings.nd') );
        +
        +    # [UInt8: tab length]
        +    # [UInt8: documented only (0 or 1)]
        +    # [UInt8: no auto-group (0 or 1)]
        +    # [UInt8: only file titles (0 or 1)]
        +    # [UInt8: highlight code (0 or 1)]
        +    # [UInt8: highlight anonymous (0 or 1)]
        +    # [UInt8: number of input directories]
        +
        +    my $inputDirectories = $self->InputDirectories();
        +
        +    NaturalDocs::BinaryFile->WriteUInt8($self->TabLength());
        +    NaturalDocs::BinaryFile->WriteUInt8($self->DocumentedOnly() ? 1 : 0);
        +    NaturalDocs::BinaryFile->WriteUInt8($self->NoAutoGroup() ? 1 : 0);
        +    NaturalDocs::BinaryFile->WriteUInt8($self->OnlyFileTitles() ? 1 : 0);
        +    NaturalDocs::BinaryFile->WriteUInt8($self->HighlightCode() ? 1 : 0);
        +    NaturalDocs::BinaryFile->WriteUInt8($self->HighlightAnonymous() ? 1 : 0);
        +    NaturalDocs::BinaryFile->WriteUInt8(scalar @$inputDirectories);
        +
        +    foreach my $inputDirectory (@$inputDirectories)
        +        {
        +        my $inputDirectoryName = $self->InputDirectoryNameOf($inputDirectory);
        +
        +        # [UString16: input directory] [UString16: input directory name] ...
        +        NaturalDocs::BinaryFile->WriteUString16($inputDirectory);
        +        NaturalDocs::BinaryFile->WriteUString16($inputDirectoryName);
        +        };
        +
        +    # [UInt8: number of output targets]
        +
        +    my $buildTargets = $self->BuildTargets();
        +    NaturalDocs::BinaryFile->WriteUInt8(scalar @$buildTargets);
        +
        +    foreach my $buildTarget (@$buildTargets)
        +        {
        +        # [UString16: output directory] [UString16: output format command line option] ...
        +        NaturalDocs::BinaryFile->WriteUString16( $buildTarget->Directory() );
        +        NaturalDocs::BinaryFile->WriteUString16( $buildTarget->Builder()->CommandLineOption() );
        +        };
        +
        +    NaturalDocs::BinaryFile->Close();
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Settings/BuildTarget.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Settings/BuildTarget.pm
        new file mode 100755
        index 0000000..8159575
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Settings/BuildTarget.pm
        @@ -0,0 +1,67 @@
        +###############################################################################
        +#
        +#   Class: NaturalDocs::Settings::BuildTarget
        +#
        +###############################################################################
        +#
        +#   A class that stores information about a build target.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::Settings::BuildTarget;
        +
        +use NaturalDocs::DefineMembers 'BUILDER', 'Builder()', 'SetBuilder()',
        +                                                 'DIRECTORY', 'Directory()', 'SetDirectory()';
        +
        +
        +#
        +#   Constants: Members
        +#
        +#   The class is implemented as a blessed arrayref with the members below.
        +#
        +#       BUILDER      - The <NaturalDocs::Builder::Base>-derived object for the target's output format.
        +#       DIRECTORY - The output directory of the target.
        +#
        +
        +#
        +#   Function: New
        +#
        +#   Creates and returns a new object.
        +#
        +#   Parameters:
        +#
        +#       builder - The <NaturalDocs::Builder::Base>-derived object for the target's output format.
        +#       directory - The directory to place the output files in.
        +#
        +sub New #(builder, directory)
        +    {
        +    my ($package, $builder, $directory) = @_;
        +
        +    my $object = [ ];
        +    bless $object, $package;
        +
        +    $object->SetBuilder($builder);
        +    $object->SetDirectory($directory);
        +
        +    return $object;
        +    };
        +
        +
        +#
        +#   Functions: Member Functions
        +#
        +#   Builder - Returns the <NaturalDocs::Builder::Base>-derived object for the target's output format.
        +#   SetBuilder - Replaces the <NaturalDocs::Builder::Base>-derived object for the target's output format.
        +#   Directory - Returns the directory for the target's output files.
        +#   SetDirectory - Replaces the directory for the target's output files.
        +#
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SourceDB.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SourceDB.pm
        new file mode 100755
        index 0000000..773aadc
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SourceDB.pm
        @@ -0,0 +1,679 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::SourceDB
        +#
        +###############################################################################
        +#
        +#   SourceDB is an experimental package meant to unify the tracking of various elements in the source code.
        +#
        +#   Requirements:
        +#
        +#       - All extension packages must call <RegisterExtension()> before they can be used.
        +#
        +#
        +#   Architecture: The Idea
        +#
        +#       For quite a while Natural Docs only needed <SymbolTable>.  However, 1.3 introduced the <ClassHierarchy> package
        +#       which duplicated some of its functionality to track classes and parent references.  1.4 now needs <ImageReferenceTable>,
        +#       so this package was an attempt to isolate the common functionality so the wheel doesn't have to keep being rewritten as
        +#       the scope of Natural Docs expands.
        +#
        +#       SourceDB is designed around <Extensions> and items.  The purposefully vague "items" are anything in the source code
        +#       that we need to track the definitions of.  Extensions are the packages to track them, only they're derived from
        +#       <NaturalDocs::SourceDB::Extension> and registered with this package instead of being free standing and duplicating
        +#       functionality such as watched files.
        +#
        +#       The architecture on this package isn't comprehensive yet.  As more extensions are added or previously made free standing
        +#       packages are migrated to it it will expand to encompass them.  However, it's still experimental so this concept may
        +#       eventually be abandoned for something better instead.
        +#
        +#
        +#   Architecture: Assumptions
        +#
        +#       SourceDB is built around certain assumptions.
        +#
        +#       One item per file:
        +#
        +#           SourceDB assumes that only the first item per file with a particular item string is relevant.  For example, if two functions
        +#           have the exact same name, there's no way to link to the second one either in HTML or internally so it doesn't matter for
        +#           our purposes.  Likewise, if two references are exactly the same they go to the same target, so it doesn't matter whether
        +#           there's one or two or a thousand.  All that matters is that at least one reference exists in this file because you only need
        +#           to determine whether the entire file gets rebuilt.  If two items are different in some meaningful way, they should generate
        +#           different item strings.
        +#
        +#       Watched file parsing:
        +#
        +#           SourceDB assumes the parse method is that the information that was stored from Natural Docs' previous run is loaded, a
        +#           file is watched, that file is reparsed, and then <AnalyzeWatchedFileChanges()> is called.  When the file is reparsed all
        +#           items within it are added the same as if the file was never parsed before.
        +#
        +#           If there's a new item this time around, that's fine no matter what.  However, a changed item wouldn't normally be
        +#           recorded because the previous run's definition is seen as the first one and subsequent ones are ignored.  Also, deleted
        +#           items would normally not be recorded either because we're only adding.
        +#
        +#           The watched file method fixes this because everything is also added to a second, clean database specifically for the
        +#           watched file.  Because it starts clean, it always gets the first definition from the current parse which can then be
        +#           compared to the original by <AnalyzeWatchedFileChanges()>.  Because it starts clean you can also compare it to the
        +#           main database to see if anything was deleted, because it would appear in the main database but not the watched one.
        +#
        +#           This means that functions like <ChangeDefinition()> and <DeleteDefinition()> should only be called by
        +#           <AnalyzeWatchedFileChanges()>.  Externally only <AddDefinition()> should be called.  <DeleteItem()> is okay to be
        +#           called externally because entire items aren't managed by the watched file database, only definitions.
        +#
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +
        +use NaturalDocs::SourceDB::Extension;
        +use NaturalDocs::SourceDB::Item;
        +use NaturalDocs::SourceDB::ItemDefinition;
        +use NaturalDocs::SourceDB::File;
        +use NaturalDocs::SourceDB::WatchedFileDefinitions;
        +
        +
        +package NaturalDocs::SourceDB;
        +
        +
        +###############################################################################
        +# Group: Types
        +
        +
        +#
        +#   Type: ExtensionID
        +#
        +#   A unique identifier for each <NaturalDocs::SourceDB> extension as given out by <RegisterExtension()>.
        +#
        +
        +
        +
        +###############################################################################
        +# Group: Variables
        +
        +
        +#
        +#   array: extensions
        +#
        +#   An array of <NaturalDocs::SourceDB::Extension>-derived extensions, as added with <RegisterExtension()>.  The indexes
        +#   are the <ExtensionIDs> and the values are package references.
        +#
        +my @extensions;
        +
        +#
        +#   array: extensionUsesDefinitionObjects
        +#
        +#   An array where the indexes are <ExtensionIDs> and the values are whether that extension uses its own definition class
        +#   derived from <NaturalDocs::SourceDB::ItemDefinition> or it just tracks their existence.
        +#
        +my @extensionUsesDefinitionObjects;
        +
        +
        +
        +#
        +#   array: items
        +#
        +#   The array of source items.  The <ExtensionIDs> are the indexes, and the values are hashrefs mapping the item
        +#   string to <NaturalDocs::SourceDB::Item>-derived objects.  Hashrefs may be undef.
        +#
        +my @items;
        +
        +
        +#
        +#   hash: files
        +#
        +#   A hashref mapping source <FileNames> to <NaturalDocs::SourceDB::Files>.
        +#
        +my %files;
        +
        +
        +#
        +#   object: watchedFile
        +#
        +#   When a file is being watched for changes, will be a <NaturalDocs::SourceDB::File> for that file.  Is undef otherwise.
        +#
        +#   When the file is parsed, items are added to both this and the version in <files>.  Thus afterwards we can compare the two to
        +#   see if any were deleted since the last time Natural Docs was run, because they would be in the <files> version but not this
        +#   one.
        +#
        +my $watchedFile;
        +
        +
        +#
        +#   string: watchedFileName
        +#
        +#   When a file is being watched for changes, will be the <FileName> of the file being watched.  Is undef otherwise.
        +#
        +my $watchedFileName;
        +
        +
        +#
        +#   object: watchedFileDefinitions
        +#
        +#   When a file is being watched for changes, will be a <NaturalDocs::SourceDB::WatchedFileDefinitions> object.  Is undef
        +#   otherwise.
        +#
        +#   When the file is parsed, items are added to both this and the version in <items>.  Since only the first definition is kept, this
        +#   will always have the definition info from the file whereas the version in <items> will have the first definition as of the last time
        +#   Natural Docs was run.  Thus they can be compared to see if the definitions of items that existed the last time around have
        +#   changed.
        +#
        +my $watchedFileDefinitions;
        +
        +
        +
        +###############################################################################
        +# Group: Extension Functions
        +
        +
        +#
        +#   Function: RegisterExtension
        +#
        +#   Registers a <NaturalDocs::SourceDB::Extension>-derived package and returns a unique <ExtensionID> for it.  All extensions
        +#   must call this before they can be used.
        +#
        +#   Registration Order:
        +#
        +#       The order in which extensions register is important.  Whenever possible, items are added in the order their extensions
        +#       registered.  However, items are changed and deleted in the reverse order.  Take advantage of this to minimize
        +#       churn between extensions that are dependent on each other.
        +#
        +#       For example, when symbols are added or deleted they may cause references to be retargeted and thus their files need to
        +#       be rebuilt.  However, adding or deleting references never causes the symbols' files to be rebuilt.  So it makes sense that
        +#       symbols should be created before references, and that references should be deleted before symbols.
        +#
        +#   Parameters:
        +#
        +#       extension - The package or object of the extension.  Must be derived from <NaturalDocs::SourceDB::Extension>.
        +#       usesDefinitionObjects - Whether the extension uses its own class derived from <NaturalDocs::SourceDB::ItemDefinition>
        +#                                         or simply tracks each definitions existence.
        +#
        +#   Returns:
        +#
        +#       An <ExtensionID> unique to the extension.  This should be saved because it's required in functions such as <AddItem()>.
        +#
        +sub RegisterExtension #(package extension, bool usesDefinitionObjects) => ExtensionID
        +    {
        +    my ($self, $extension, $usesDefinitionObjects) = @_;
        +
        +    push @extensions, $extension;
        +    push @extensionUsesDefinitionObjects, $usesDefinitionObjects;
        +
        +    return scalar @extensions - 1;
        +    };
        +
        +
        +
        +
        +###############################################################################
        +# Group: File Functions
        +
        +
        +#
        +#   Function: Load
        +#
        +#   Loads the data of the source database and all the extensions.  Will call <NaturalDocs::SourceDB::Extension->Load()> for
        +#   all of them, unless there's a situation where all the source files are going to be reparsed anyway in which case it's not needed.
        +#
        +sub Load
        +    {
        +    my $self = shift;
        +
        +    # No point loading if RebuildData is set.
        +    if (!NaturalDocs::Settings->RebuildData())
        +        {
        +        # If any load fails, stop loading the rest and just reparse all the source files.
        +        my $success = 1;
        +
        +        for (my $extension = 0; $extension < scalar @extensions && $success; $extension++)
        +            {
        +            $success = $extensions[$extension]->Load();
        +            };
        +
        +        if (!$success)
        +            {  NaturalDocs::Project->ReparseEverything();  };
        +        };
        +    };
        +
        +
        +#
        +#   Function: Save
        +#
        +#   Saves the data of the source database and all its extensions.  Will call <NaturalDocs::SourceDB::Extension->Save()> for all
        +#   of them.
        +#
        +sub Save
        +    {
        +    my $self = shift;
        +
        +    for (my $extension = scalar @extensions - 1; $extension >= 0; $extension--)
        +        {
        +        $extensions[$extension]->Save();
        +        };
        +    };
        +
        +
        +#
        +#   Function: PurgeDeletedSourceFiles
        +#
        +#   Removes all data associated with deleted source files.
        +#
        +sub PurgeDeletedSourceFiles
        +    {
        +    my $self = shift;
        +
        +    my $filesToPurge = NaturalDocs::Project->FilesToPurge();
        +
        +    # Extension is the outermost loop because we want the extensions added last to have their definitions removed first to cause
        +    # the least amount of churn between interdependent extensions.
        +    for (my $extension = scalar @extensions - 1; $extension >= 0; $extension--)
        +        {
        +        foreach my $file (keys %$filesToPurge)
        +            {
        +            if (exists $files{$file})
        +                {
        +                my @items = $files{$file}->ListItems($extension);
        +
        +                foreach my $item (@items)
        +                    {
        +                    $self->DeleteDefinition($extension, $item, $file);
        +                    };
        +                }; # file exists
        +            }; # each file
        +        }; # each extension
        +    };
        +
        +
        +
        +
        +
        +###############################################################################
        +# Group: Item Functions
        +
        +
        +#
        +#   Function: AddItem
        +#
        +#   Adds the passed item to the database.  This will not work if the item string already exists.  The item added should *not*
        +#   already have definitions attached.  Only use this to add blank items and then call <AddDefinition()> instead.
        +#
        +#   Parameters:
        +#
        +#       extension - An <ExtensionID>.
        +#       itemString - The string serving as the item identifier.
        +#       item - An object derived from <NaturalDocs::SourceDB::Item>.
        +#
        +#   Returns:
        +#
        +#       Whether the item was added, that is, whether it was the first time this item was added.
        +#
        +sub AddItem #(ExtensionID extension, string itemString, NaturalDocs::SourceDB::Item item) => bool
        +    {
        +    my ($self, $extension, $itemString, $item) = @_;
        +
        +    if (!defined $items[$extension])
        +        {  $items[$extension] = { };  };
        +
        +    if (!exists $items[$extension]->{$itemString})
        +        {
        +        if ($item->HasDefinitions())
        +            {  die "Tried to add an item to SourceDB that already had definitions.";  };
        +
        +        $items[$extension]->{$itemString} = $item;
        +        return 1;
        +        };
        +
        +    return 0;
        +    };
        +
        +
        +#
        +#   Function: GetItem
        +#
        +#   Returns the <NaturalDocs::SourceDB::Item>-derived object for the passed <ExtensionID> and item string, or undef if there
        +#   is none.
        +#
        +sub GetItem #(ExtensionID extension, string itemString) => bool
        +    {
        +    my ($self, $extensionID, $itemString) = @_;
        +
        +    if (defined $items[$extensionID])
        +        {  return $items[$extensionID]->{$itemString};  }
        +    else
        +        {  return undef;  };
        +    };
        +
        +
        +#
        +#   Function: DeleteItem
        +#
        +#   Deletes the record of the passed <ExtensionID> and item string.  Do *not* delete items that still have definitions.  Use
        +#   <DeleteDefinition()> first.
        +#
        +#   Parameters:
        +#
        +#       extension - The <ExtensionID>.
        +#       itemString - The item's identifying string.
        +#
        +#   Returns:
        +#
        +#       Whether it was successful, meaning whether an entry existed for it.
        +#
        +sub DeleteItem #(ExtensionID extension, string itemString) => bool
        +    {
        +    my ($self, $extension, $itemString) = @_;
        +
        +    if (defined $items[$extension] && exists $items[$extension]->{$itemString})
        +        {
        +        if ($items[$extension]->{$itemString}->HasDefinitions())
        +            {  die "Tried to delete an item from SourceDB that still has definitions.";  };
        +
        +        delete $items[$extension]->{$itemString};
        +        return 1;
        +        }
        +    else
        +        {  return 0;  };
        +    };
        +
        +
        +#
        +#   Function: HasItem
        +#
        +#   Returns whether there is an item defined for the passed <ExtensionID> and item string.
        +#
        +sub HasItem #(ExtensionID extension, string itemString) => bool
        +    {
        +    my ($self, $extension, $itemString) = @_;
        +
        +    if (defined $items[$extension])
        +        {  return (exists $items[$extension]->{$itemString});  }
        +    else
        +        {  return 0;  };
        +    };
        +
        +
        +#
        +#   Function: GetAllItemsHashRef
        +#
        +#   Returns a hashref of all the items defined for an extension.  *Do not change the contents.*  The keys are the item strings and
        +#   the values are <NaturalDocs::SourceDB::Items> or derived classes.
        +#
        +sub GetAllItemsHashRef #(ExtensionID extension) => hashref
        +    {
        +    my ($self, $extension) = @_;
        +    return $items[$extension];
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Definition Functions
        +
        +
        +#
        +#   Function: AddDefinition
        +#
        +#   Adds a definition to an item.  Assumes the item was already created with <AddItem()>.  If there's already a definition for this
        +#   file in the item, the new definition will be ignored.
        +#
        +#   Parameters:
        +#
        +#       extension - The <ExtensionID>.
        +#       itemString - The item string.
        +#       file - The <FileName> the definition is in.
        +#       definition - If you're using a custom <NaturalDocs::SourceDB::ItemDefinition> class, you must include an object for it here.
        +#                       Otherwise this parameter is ignored.
        +#
        +#   Returns:
        +#
        +#       Whether the definition was added, which is to say, whether this was the first definition for the passed <FileName>.
        +#
        +sub AddDefinition #(ExtensionID extension, string itemString, FileName file, optional NaturalDocs::SourceDB::ItemDefinition definition) => bool
        +    {
        +    my ($self, $extension, $itemString, $file, $definition) = @_;
        +
        +
        +    # Items
        +
        +    my $item = $self->GetItem($extension, $itemString);
        +
        +    if (!defined $item)
        +        {  die "Tried to add a definition to an undefined item in SourceDB.";  };
        +
        +    if (!$extensionUsesDefinitionObjects[$extension])
        +        {  $definition = 1;  };
        +
        +    my $result = $item->AddDefinition($file, $definition);
        +
        +
        +    # Files
        +
        +    if (!exists $files{$file})
        +        {  $files{$file} = NaturalDocs::SourceDB::File->New();  };
        +
        +    $files{$file}->AddItem($extension, $itemString);
        +
        +
        +    # Watched File
        +
        +    if ($self->WatchingFileForChanges())
        +        {
        +        $watchedFile->AddItem($extension, $itemString);
        +
        +        if ($extensionUsesDefinitionObjects[$extension])
        +            {  $watchedFileDefinitions->AddDefinition($extension, $itemString, $definition);  };
        +        };
        +
        +
        +    return $result;
        +    };
        +
        +
        +#
        +#   Function: ChangeDefinition
        +#
        +#   Changes the definition of an item.  This function is only used for extensions that use custom
        +#   <NaturalDocs::SourceDB::ItemDefinition>-derived classes.
        +#
        +#   Parameters:
        +#
        +#       extension - The <ExtensionID>.
        +#       itemString - The item string.
        +#       file - The <FileName> the definition is in.
        +#       definition - The definition, which must be an object derived from <NaturalDocs::SourceDB::ItemDefinition>.
        +#
        +sub ChangeDefinition #(ExtensionID extension, string itemString, FileName file, NaturalDocs::SourceDB::ItemDefinition definition)
        +    {
        +    my ($self, $extension, $itemString, $file, $definition) = @_;
        +
        +    my $item = $self->GetItem($extension, $itemString);
        +
        +    if (!defined $item)
        +        {  die "Tried to change the definition of an undefined item in SourceDB.";  };
        +
        +    if (!$extensionUsesDefinitionObjects[$extension])
        +        {  die "Tried to change the definition of an item in an extension that doesn't use definition objects in SourceDB.";  };
        +
        +    if (!$item->HasDefinition($file))
        +        {  die "Tried to change a definition that doesn't exist in SourceDB.";  };
        +
        +    $item->ChangeDefinition($file, $definition);
        +    $extensions[$extension]->OnChangedDefinition($itemString, $file);
        +    };
        +
        +
        +#
        +#   Function: GetDefinition
        +#
        +#   If the extension uses custom <NaturalDocs::SourceDB::ItemDefinition> classes, returns it for the passed definition or undef
        +#   if it doesn't exist.  Otherwise returns whether it exists.
        +#
        +sub GetDefinition #(ExtensionID extension, string itemString, FileName file) => NaturalDocs::SourceDB::ItemDefinition or bool
        +    {
        +    my ($self, $extension, $itemString, $file) = @_;
        +
        +    my $item = $self->GetItem($extension, $itemString);
        +
        +    if (!defined $item)
        +        {  return undef;  };
        +
        +    return $item->GetDefinition($file);
        +    };
        +
        +
        +#
        +#   Function: DeleteDefinition
        +#
        +#   Removes the definition for the passed item.  Returns whether it was successful, meaning whether a definition existed for that
        +#   file.
        +#
        +sub DeleteDefinition #(ExtensionID extension, string itemString, FileName file) => bool
        +    {
        +    my ($self, $extension, $itemString, $file) = @_;
        +
        +    my $item = $self->GetItem($extension, $itemString);
        +
        +    if (!defined $item)
        +        {  return 0;  };
        +
        +    my $result = $item->DeleteDefinition($file);
        +
        +    if ($result)
        +        {
        +        $files{$file}->DeleteItem($extension, $itemString);
        +        $extensions[$extension]->OnDeletedDefinition($itemString, $file, !$item->HasDefinitions());
        +        };
        +
        +    return $result;
        +    };
        +
        +
        +#
        +#   Function: HasDefinitions
        +#
        +#   Returns whether there are any definitions for this item.
        +#
        +sub HasDefinitions #(ExtensionID extension, string itemString) => bool
        +    {
        +    my ($self, $extension, $itemString) = @_;
        +
        +    my $item = $self->GetItem($extension, $itemString);
        +
        +    if (!defined $item)
        +        {  return 0;  };
        +
        +    return $item->HasDefinitions();
        +    };
        +
        +
        +#
        +#   Function: HasDefinition
        +#
        +#   Returns whether there is a definition for the passed <FileName>.
        +#
        +sub HasDefinition #(ExtensionID extension, string itemString, FileName file) => bool
        +    {
        +    my ($self, $extension, $itemString, $file) = @_;
        +
        +    my $item = $self->GetItem($extension, $itemString);
        +
        +    if (!defined $item)
        +        {  return 0;  };
        +
        +    return $item->HasDefinition($file);
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Watched File Functions
        +
        +
        +#
        +#   Function: WatchFileForChanges
        +#
        +#   Begins watching a file for changes.  Only one file at a time can be watched.
        +#
        +#   This should be called before a file is parsed so the file info goes both into the main database and the watched file info.
        +#   Afterwards you call <AnalyzeWatchedFileChanges()> so item deletions and definition changes can be detected.
        +#
        +#   Parameters:
        +#
        +#       filename - The <FileName> to watch.
        +#
        +sub WatchFileForChanges #(FileName filename)
        +    {
        +    my ($self, $filename) = @_;
        +
        +    $watchedFileName = $filename;
        +    $watchedFile = NaturalDocs::SourceDB::File->New();
        +    $watchedFileDefinitions = NaturalDocs::SourceDB::WatchedFileDefinitions->New();
        +    };
        +
        +
        +#
        +#   Function: WatchingFileForChanges
        +#
        +#   Returns whether we're currently watching a file for changes or not.
        +#
        +sub WatchingFileForChanges # => bool
        +    {
        +    my $self = shift;
        +    return defined $watchedFileName;
        +    };
        +
        +
        +#
        +#   Function: AnalyzeWatchedFileChanges
        +#
        +#   Analyzes the watched file for changes.  Will delete and change definitions as necessary.
        +#
        +sub AnalyzeWatchedFileChanges
        +    {
        +    my $self = shift;
        +
        +    if (!$self->WatchingFileForChanges())
        +        {  die "Tried to analyze watched file for changes in SourceDB when no file was being watched.";  };
        +    if (!$files{$watchedFileName})
        +        {  return;  };
        +
        +
        +    # Process extensions last registered to first.
        +
        +    for (my $extension = scalar @extensions - 1; $extension >= 0; $extension--)
        +        {
        +        my @items = $files{$watchedFileName}->ListItems($extension);
        +
        +        foreach my $item (@items)
        +            {
        +            if ($watchedFile->HasItem($extension, $item))
        +                {
        +                if ($extensionUsesDefinitionObjects[$extension])
        +                    {
        +                    my $originalDefinition = $items[$extension]->GetDefinition($watchedFileName);
        +                    my $watchedDefinition = $watchedFileDefinitions->GetDefinition($extension, $item);
        +
        +                    if (!$originalDefinition->Compare($watchedDefinition))
        +                        {  $self->ChangeDefinition($extension, $item, $watchedFileName, $watchedDefinition);  };
        +                    }
        +                }
        +            else # !$watchedFile->HasItem($item)
        +                {
        +                $self->DeleteDefinition($extension, $item, $watchedFileName);
        +                };
        +            };
        +        };
        +
        +
        +    $watchedFile = undef;
        +    $watchedFileName = undef;
        +    $watchedFileDefinitions = undef;
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SourceDB/Extension.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SourceDB/Extension.pm
        new file mode 100755
        index 0000000..d610b24
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SourceDB/Extension.pm
        @@ -0,0 +1,85 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::SourceDB::Extension
        +#
        +###############################################################################
        +#
        +#   A base package for all <SourceDB> extensions.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +
        +package NaturalDocs::SourceDB::Extension;
        +
        +
        +###############################################################################
        +# Group: Interface Functions
        +# These functions must be overridden by the derived class.
        +
        +
        +#
        +#   Function: Register
        +#
        +#   Override this function to register the package with <NaturalDocs::SourceDB->RegisterExtension()>.
        +#
        +sub Register
        +    {
        +    die "Called SourceDB::Extension->Register().  This function should be overridden by every extension.";
        +    };
        +
        +
        +#
        +#   Function: Load
        +#
        +#   Called by <NaturalDocs::SourceDB->Load()> to load the extension's data.  Returns whether it was successful.
        +#
        +#   *This function might not be called.*  If there's a situation that would cause all the source files to be reparsed anyway,
        +#   <NaturalDocs::SourceDB> may skip calling Load() for the remaining extensions.  You should *not* depend on this function
        +#   for any critical initialization that needs to happen every time regardless.
        +#
        +sub Load # => bool
        +    {
        +    return 1;
        +    };
        +
        +
        +#
        +#   Function: Save
        +#
        +#   Called by <NaturalDocs::SourceDB->Save()> to save the extension's data.
        +#
        +sub Save
        +    {
        +    };
        +
        +
        +#
        +#   Function: OnDeletedDefinition
        +#
        +#   Called for each definition deleted by <NaturalDocs::SourceDB>.  This is called *after* the definition has been deleted from
        +#   the database, so don't expect to be able to read it.
        +#
        +sub OnDeletedDefinition #(string itemString, FileName file, bool wasLastDefinition)
        +    {
        +    };
        +
        +
        +#
        +#   Function: OnChangedDefinition
        +#
        +#   Called for each definition changed by <NaturalDocs::SourceDB>.  This is called *after* the definition has been changed, so
        +#   don't expect to be able to read the original value.
        +#
        +sub OnChangedDefinition #(string itemString, FileName file)
        +    {
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SourceDB/File.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SourceDB/File.pm
        new file mode 100755
        index 0000000..1a4419f
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SourceDB/File.pm
        @@ -0,0 +1,130 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::SourceDB::File
        +#
        +###############################################################################
        +#
        +#   A class used to index items by file.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +
        +package NaturalDocs::SourceDB::File;
        +
        +use NaturalDocs::DefineMembers 'ITEMS';
        +
        +
        +#
        +#   Variables: Members
        +#
        +#   These constants serve as indexes into the object array.
        +#
        +#   ITEMS - An arrayref where an <ExtensionID> is the index and the members are existence hashrefs of the item strigs defined
        +#               in this file.  The arrayref will always exist, but the hashrefs may be undef.
        +#
        +
        +
        +#
        +#   Function: New
        +#
        +#   Returns a new object.
        +#
        +sub New
        +    {
        +    my $package = shift;
        +
        +    my $object = [ ];
        +    $object->[ITEMS] = [ ];
        +
        +    bless $object, $package;
        +    return $object;
        +    };
        +
        +
        +#
        +#   Function: AddItem
        +#
        +#   Adds an item to this file.  Returns whether this added a new item.
        +#
        +sub AddItem #(ExtensionID extension, string itemString) => bool
        +    {
        +    my ($self, $extension, $itemString) = @_;
        +
        +    if (!defined $self->[ITEMS]->[$extension])
        +        {
        +        $self->[ITEMS]->[$extension] = { $itemString => 1 };
        +        return 1;
        +        }
        +    elsif (!exists $self->[ITEMS]->[$extension]->{$itemString})
        +        {
        +        $self->[ITEMS]->[$extension]->{$itemString} = 1;
        +        return 1;
        +        }
        +    else
        +        {
        +        return 0;
        +        };
        +    };
        +
        +
        +#
        +#   Function: HasItem
        +#
        +#   Returns whether the item exists in this file.
        +#
        +sub HasItem #(ExtensionID extension, string itemString) => bool
        +    {
        +    my ($self, $extension, $itemString) = @_;
        +
        +    if (defined $self->[ITEMS]->[$extension])
        +        {  return exists $self->[ITEMS]->[$extension]->{$itemString};  }
        +    else
        +        {  return 0;  };
        +    };
        +
        +
        +#
        +#   Function: DeleteItem
        +#
        +#   Deletes the passed item.  Returns whether it existed.
        +#
        +sub DeleteItem #(ExtensionID extension, string itemString) => bool
        +    {
        +    my ($self, $extension, $itemString) = @_;
        +
        +    if (!defined $self->[ITEMS]->[$extension])
        +        {  return 0;  }
        +    elsif (exists $self->[ITEMS]->[$extension]->{$itemString})
        +        {
        +        delete $self->[ITEMS]->[$extension]->{$itemString};
        +        return 1;
        +        }
        +    else
        +        {  return 0;  };
        +    };
        +
        +
        +#
        +#   Function: ListItems
        +#
        +#   Returns an array of all the item strings defined for a particular extension, or an empty list if none.
        +#
        +sub ListItems #(ExtensionID extension) => string array
        +    {
        +    my ($self, $extension) = @_;
        +
        +    if (defined $self->[ITEMS]->[$extension])
        +        {  return keys %{$self->[ITEMS]->[$extension]};  }
        +    else
        +        {  return ( );  };
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SourceDB/Item.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SourceDB/Item.pm
        new file mode 100755
        index 0000000..b434756
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SourceDB/Item.pm
        @@ -0,0 +1,202 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::SourceDB::Item
        +#
        +###############################################################################
        +#
        +#   A base class for something being tracked in <NaturalDocs::SourceDB>.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +
        +package NaturalDocs::SourceDB::Item;
        +
        +use NaturalDocs::DefineMembers 'DEFINITIONS';
        +
        +
        +#
        +#   Variables: Members
        +#
        +#   The following constants are indexes into the object array.
        +#
        +#   DEFINITIONS - A hashref that maps <FileNames> to either <NaturalDocs::SourceDB::ItemDefinition>-derived objects or
        +#                         serves as an existence hashref depending on whether the extension only tracks existence.  Will be undef if
        +#                         there are none.
        +#
        +
        +
        +#
        +#   Function: New
        +#
        +#   Creates and returns a new object.
        +#
        +sub New
        +    {
        +    my $class = shift;
        +
        +    my $object = [ ];
        +    bless $object, $class;
        +
        +    return $object;
        +    };
        +
        +
        +
        +###############################################################################
        +#
        +#   Group: Definition Functions
        +#
        +#   These functions should be called by <NaturalDocs::SourceDB>.  You should not be calling them directly.  Call functions
        +#   like <NaturalDocs::SourceDB->AddDefinition()> instead.
        +#
        +
        +
        +#
        +#   Function: AddDefinition
        +#
        +#   Adds a definition for the passed <FileName>.  If it's already defined, the new definition will be ignored.
        +#
        +#   Parameters:
        +#
        +#       file - The <FileName>.
        +#       definition - The definition, which must be an object derived from <NaturalDocs::SourceDB::ItemDefinition> or undef if
        +#                       the extension only tracks existence.
        +#
        +#   Returns:
        +#
        +#       Whether the definition was added, which is to say, whether this was the first definition for the passed <FileName>.
        +#
        +sub AddDefinition #(FileName file, optional NaturalDocs::SourceDB::ItemDefinition definition) => bool
        +    {
        +    my ($self, $file, $definition) = @_;
        +
        +    if (!defined $self->[DEFINITIONS])
        +        {  $self->[DEFINITIONS] = { };  };
        +
        +    if (!exists $self->[DEFINITIONS]->{$file})
        +        {
        +        if (!defined $definition)
        +            {  $definition = 1;  };
        +
        +        $self->[DEFINITIONS]->{$file} = $definition;
        +        return 1;
        +        }
        +    else
        +        {  return 0;  };
        +    };
        +
        +
        +#
        +#   Function: ChangeDefinition
        +#
        +#   Changes the definition for the passed <FileName>.
        +#
        +#   Parameters:
        +#
        +#       file - The <FileName>.
        +#       definition - The definition, which must be an object derived from <NaturalDocs::SourceDB::ItemDefinition>.
        +#
        +sub ChangeDefinition #(FileName file, NaturalDocs::SourceDB::ItemDefinition definition)
        +    {
        +    my ($self, $file, $definition) = @_;
        +
        +    if (!defined $self->[DEFINITIONS] || !exists $self->[DEFINITIONS]->{$file})
        +        {  die "Tried to change a non-existant definition in SourceD::Item.";  };
        +
        +    $self->[DEFINITIONS]->{$file} = $definition;
        +    };
        +
        +
        +#
        +#   Function: GetDefinition
        +#
        +#   Returns the <NaturalDocs::SourceDB::ItemDefinition>-derived object for the passed <FileName>, non-zero if it only tracks
        +#   existence, or undef if there is no definition.
        +#
        +sub GetDefinition #(FileName file) => NaturalDocs::SourceDB::ItemDefinition or bool
        +    {
        +    my ($self, $file) = @_;
        +
        +    if (defined $self->[DEFINITIONS])
        +        {  return $self->[DEFINITIONS]->{$file};  }
        +    else
        +        {  return undef;  };
        +    };
        +
        +
        +#
        +#   Function: DeleteDefinition
        +#
        +#   Removes the definition for the passed <FileName>.  Returns whether it was successful, meaning whether a definition existed
        +#   for that file.
        +#
        +sub DeleteDefinition #(FileName file) => bool
        +    {
        +    my ($self, $file) = @_;
        +
        +    if (defined $self->[DEFINITIONS])
        +        {
        +        if (exists $self->[DEFINITIONS]->{$file})
        +            {
        +            delete $self->[DEFINITIONS]->{$file};
        +
        +            if (!scalar keys %{$self->[DEFINITIONS]})
        +                {  $self->[DEFINITIONS] = undef;  };
        +
        +            return 1;
        +            };
        +        };
        +
        +    return 0;
        +    };
        +
        +
        +#
        +#   Function: HasDefinitions
        +#
        +#   Returns whether there are any definitions for this item.
        +#
        +sub HasDefinitions # => bool
        +    {
        +    my $self = shift;
        +    return (defined $self->[DEFINITIONS]);
        +    };
        +
        +
        +#
        +#   Function: HasDefinition
        +#
        +#   Returns whether there is a definition for the passed <FileName>.
        +#
        +sub HasDefinition #(FileName file) => bool
        +    {
        +    my ($self, $file) = @_;
        +
        +    if (defined $self->[DEFINITIONS])
        +        {  return (exists $self->[DEFINITIONS]->{$file});  }
        +    else
        +        {  return 0;  };
        +    };
        +
        +
        +#
        +#   Function: GetAllDefinitionsHashRef
        +#
        +#   Returns a hashref of all the definitions of this item.  *Do not change.*  The keys are the <FileNames>, and the values are
        +#   either <NaturalDocs::SourceDB::ItemDefinition>-derived objects or it's just an existence hashref if those aren't used.
        +#
        +sub GetAllDefinitionsHashRef
        +    {
        +    my $self = shift;
        +    return $self->[DEFINITIONS];
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SourceDB/ItemDefinition.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SourceDB/ItemDefinition.pm
        new file mode 100755
        index 0000000..5fe82f8
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SourceDB/ItemDefinition.pm
        @@ -0,0 +1,46 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::SourceDB::ItemDefinition
        +#
        +###############################################################################
        +#
        +#   A base class for all item definitions for extensions that track more than existence.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +
        +package NaturalDocs::SourceDB::ItemDefinition;
        +
        +
        +#
        +#   Function: Compare
        +#
        +#   Returns whether the definitions are equal.  This version returns true by default, you must override it in your subclasses
        +#   to make the results relevant.  This is important for <NaturalDocs::SourceDB->AnalyzeTrackedFileChanges()>.
        +#
        +#   This will only be called between objects of the same <ExtensionID>.  If you use multiple derived classes for the same
        +#   <ExtensionID>, you will have to take that into account yourself.
        +#
        +#   Parameters:
        +#
        +#       other - Another <NaturalDocs::SourceDB::ItemDefinition>-derived object to compare this one to.  It will always be from
        +#                  the same <ExtensionID>.
        +#
        +#   Returns:
        +#
        +#       Whether they are equal.
        +#
        +sub Compare #(other)
        +    {
        +    return 1;
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SourceDB/WatchedFileDefinitions.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SourceDB/WatchedFileDefinitions.pm
        new file mode 100755
        index 0000000..f42bbab
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SourceDB/WatchedFileDefinitions.pm
        @@ -0,0 +1,160 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::SourceDB::WatchedFileDefinitions
        +#
        +###############################################################################
        +#
        +#   A class to track the definitions appearing in a watched file.  This is only used for extensions that track definition info with
        +#   <NaturalDocs::SourceDB::ItemDefinition>-derived objects.  Do not use it for extensions that only track existence.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +
        +package NaturalDocs::SourceDB::WatchedFileDefinitions;
        +
        +
        +#
        +#   Variables: Members
        +#
        +#   This object would only have one member, which is an array, so the object itself serves as that member.
        +#
        +#   <ExtensionIDs> are used as indexes into this object.  Each entry is a hashref that maps item strings to
        +#   <NaturalDocs::SourceDB::ItemDefinition>-derived objects.  This is only done for extensions that use those objects to track
        +#   definitions, it's not needed for extensions that only track existence.  If there are no definitions, the entry will be undef.
        +#
        +
        +
        +#
        +#   Function: New
        +#
        +#   Creates and returns a new object.
        +#
        +sub New
        +    {
        +    my $class = shift;
        +
        +    my $object = [ ];
        +    bless $object, $class;
        +
        +    return $object;
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Definition Functions
        +#
        +
        +
        +#
        +#   Function: AddDefinition
        +#
        +#   Adds a definition for the passed item string.  If it's already defined, the new definition will be ignored.
        +#
        +#   Parameters:
        +#
        +#       extension - The <ExtensionID>.
        +#       itemString - The item string.
        +#       definition - The definition, which must be an object derived from <NaturalDocs::SourceDB::ItemDefinition>.
        +#
        +#   Returns:
        +#
        +#       Whether the definition was added, which is to say, whether this was the first definition for the passed <FileName>.
        +#
        +sub AddDefinition #(ExtensionID extension, string itemString, NaturalDocs::SourceDB::ItemDefinition definition) => bool
        +    {
        +    my ($self, $extension, $itemString, $definition) = @_;
        +
        +    if (!defined $self->[$extension])
        +        {  $self->[$extension] = { };  };
        +
        +    if (!exists $self->[$extension]->{$itemString})
        +        {
        +        $self->[$extension]->{$itemString} = $definition;
        +        return 1;
        +        }
        +    else
        +        {  return 0;  };
        +    };
        +
        +
        +#
        +#   Function: GetDefinition
        +#
        +#   Returns the <NaturalDocs::SourceDB::ItemDefinition>-derived object for the passed item string  or undef if there is none.
        +#
        +sub GetDefinition #(ExtensionID extension, string itemString) => NaturalDocs::SourceDB::ItemDefinition
        +    {
        +    my ($self, $extension, $itemString) = @_;
        +
        +    if (defined $self->[$extension])
        +        {  return $self->[$extension]->{$itemString};  }
        +    else
        +        {  return undef;  };
        +    };
        +
        +
        +#
        +#   Function: DeleteDefinition
        +#
        +#   Removes the definition for the passed item string.  Returns whether it was successful, meaning whether a definition existed
        +#   for that item.
        +#
        +sub DeleteDefinition #(ExtensionID extension, string itemString) => bool
        +    {
        +    my ($self, $extension, $itemString) = @_;
        +
        +    if (defined $self->[$extension])
        +        {
        +        if (exists $self->[$extension]->{$itemString})
        +            {
        +            delete $self->[$extension]->{$itemString};
        +
        +            if (!scalar keys %{$self->[$extension]})
        +                {  $self->[$extension] = undef;  };
        +
        +            return 1;
        +            };
        +        };
        +
        +    return 0;
        +    };
        +
        +
        +#
        +#   Function: HasDefinitions
        +#
        +#   Returns whether there are any definitions for this item.
        +#
        +sub HasDefinitions #(ExtensionID extension) => bool
        +    {
        +    my ($self, $extension) = @_;
        +
        +    return (defined $self->[$extension]);
        +    };
        +
        +
        +#
        +#   Function: HasDefinition
        +#
        +#   Returns whether there is a definition for the passed item string.
        +#
        +sub HasDefinition #(ExtensionID extension, string itemString) => bool
        +    {
        +    my ($self, $extension, $itemString) = @_;
        +
        +    if (defined $self->[$extension])
        +        {  return (exists $self->[$extension]->{$itemString});  }
        +    else
        +        {  return 0;  };
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/StatusMessage.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/StatusMessage.pm
        new file mode 100755
        index 0000000..e374c0e
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/StatusMessage.pm
        @@ -0,0 +1,103 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::StatusMessage
        +#
        +###############################################################################
        +#
        +#   A package to handle status message updates.  Automatically handles <NaturalDocs::Settings->IsQuiet()>.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::StatusMessage;
        +
        +
        +#
        +#   var: message
        +#   The message to display.
        +#
        +my $message;
        +
        +#
        +#   var: total
        +#   The number of items to work through.
        +#
        +my $total;
        +
        +#
        +#   var: completed
        +#   The number of items completed.
        +#
        +my $completed;
        +
        +#
        +#   var: lastMessageTime
        +#   The time the last message was posted.
        +#
        +my $lastMessageTime;
        +
        +
        +#
        +#   constant: TIME_BETWEEN_UPDATES
        +#   The number of seconds that should occur between updates.
        +#
        +use constant TIME_BETWEEN_UPDATES => 10;
        +
        +
        +
        +#
        +#   Function: Start
        +#
        +#   Starts the status message.
        +#
        +#   Parameters:
        +#
        +#       message - The message to post.
        +#       total - The number of items that are going to be worked through.
        +#
        +sub Start #(message, total)
        +    {
        +    my $self = shift;
        +
        +    if (!NaturalDocs::Settings->IsQuiet())
        +        {
        +        ($message, $total) = @_;
        +        $completed = 0;
        +
        +        print $message . "\n";
        +
        +        $lastMessageTime = time();
        +        };
        +    };
        +
        +
        +#
        +#   Function: CompletedItem
        +#
        +#   Should be called every time an item is completed.
        +#
        +sub CompletedItem
        +    {
        +    my $self = shift;
        +
        +    if (!NaturalDocs::Settings->IsQuiet())
        +        {
        +        # We scale completed by 100 since we need to anyway to get the percentage.
        +
        +        $completed += 100;
        +
        +        if (time() >= $lastMessageTime + TIME_BETWEEN_UPDATES && $completed != $total * 100)
        +            {
        +            print $message . ' (' . ($completed / $total) . '%)' . "\n";
        +            $lastMessageTime = time();
        +            };
        +        };
        +    };
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SymbolString.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SymbolString.pm
        new file mode 100755
        index 0000000..07f989f
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SymbolString.pm
        @@ -0,0 +1,217 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::SymbolString
        +#
        +###############################################################################
        +#
        +#   A package to manage <SymbolString> handling throughout the program.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::SymbolString;
        +
        +use Encode qw(encode_utf8 decode_utf8);
        +
        +
        +#
        +#   Function: FromText
        +#
        +#   Extracts and returns a <SymbolString> from plain text.
        +#
        +#   This should be the only way to get a <SymbolString> from plain text, as the splitting and normalization must be consistent
        +#   throughout the application.
        +#
        +sub FromText #(string textSymbol)
        +    {
        +    my ($self, $textSymbol) = @_;
        +
        +    # The internal format of a symbol is all the normalized identifiers separated by 0x1F characters.
        +
        +    # Convert whitespace and reserved characters to spaces, and condense multiple consecutive ones.
        +    $textSymbol =~ tr/ \t\r\n\x1C\x1D\x1E\x1F/ /s;
        +
        +    # DEPENDENCY: ReferenceString->MakeFrom() assumes all 0x1E characters were removed.
        +    # DEPENDENCY: ReferenceString->MakeFrom() assumes this encoding doesn't use 0x1E characters.
        +
        +    # Remove spaces unless they're separating two alphanumeric/underscore characters.
        +    $textSymbol =~ s/^ //;
        +    $textSymbol =~ s/ $//;
        +    $textSymbol =~ s/(\W) /$1/g;
        +    $textSymbol =~ s/ (\W)/$1/g;
        +
        +    # Remove trailing empty parenthesis, so Function and Function() are equivalent.
        +    $textSymbol =~ s/\(\)$//;
        +
        +    # Split the string into pieces.
        +    my @pieces = split(/(\.|::|->)/, $textSymbol);
        +    my $symbolString;
        +
        +    my $lastWasSeparator = 1;
        +
        +    foreach my $piece (@pieces)
        +        {
        +        if ($piece =~ /^(?:\.|::|->)$/)
        +            {
        +            if (!$lastWasSeparator)
        +                {
        +                $symbolString .= "\x1F";
        +                $lastWasSeparator = 1;
        +                };
        +            }
        +        elsif (length $piece)
        +            {
        +            $symbolString .= $piece;
        +            $lastWasSeparator = 0;
        +            };
        +        # Ignore empty pieces
        +        };
        +
        +    $symbolString =~ s/\x1F$//;
        +
        +    return $symbolString;
        +    };
        +
        +
        +#
        +#   Function: ToText
        +#
        +#   Converts a <SymbolString> to text, using the passed separator.
        +#
        +sub ToText #(SymbolString symbolString, string separator)
        +    {
        +    my ($self, $symbolString, $separator) = @_;
        +
        +    my @identifiers = $self->IdentifiersOf($symbolString);
        +    return join($separator, @identifiers);
        +    };
        +
        +
        +#
        +#   Function: ToBinaryFile
        +#
        +#   Writes a <SymbolString> to the passed filehandle.  Can also encode an undef.
        +#
        +#   Parameters:
        +#
        +#       fileHandle - The filehandle to write to.
        +#       symbol - The <SymbolString> to write, or undef.
        +#
        +#   Format:
        +#
        +#       > [UInt8: number of identifiers]
        +#       >    [UString16: identifier] [UString16: identifier] ...
        +#
        +#       Undef is represented by a zero for the number of identifiers.
        +#
        +sub ToBinaryFile #(FileHandle fileHandle, SymbolString symbol)
        +    {
        +    my ($self, $fileHandle, $symbol) = @_;
        +
        +    my @identifiers;
        +    if (defined $symbol)
        +        {  @identifiers = $self->IdentifiersOf($symbol);  };
        +
        +    print $fileHandle pack('C', scalar @identifiers);
        +
        +    foreach my $identifier (@identifiers)
        +        {
        +        my $uIdentifier = encode_utf8($identifier);
        +        print $fileHandle pack('na*', length($uIdentifier), $uIdentifier);
        +        };
        +    };
        +
        +
        +#
        +#   Function: FromBinaryFile
        +#
        +#   Loads a <SymbolString> or undef from the filehandle and returns it.
        +#
        +#   Parameters:
        +#
        +#       fileHandle - The filehandle to read from.
        +#
        +#   Returns:
        +#
        +#       The <SymbolString> or undef.
        +#
        +#   See also:
        +#
        +#       See <ToBinaryFile()> for format and dependencies.
        +#
        +sub FromBinaryFile #(FileHandle fileHandle)
        +    {
        +    my ($self, $fileHandle) = @_;
        +
        +    my $raw;
        +
        +    # [UInt8: number of identifiers or 0 if none]
        +
        +    read($fileHandle, $raw, 1);
        +    my $identifierCount = unpack('C', $raw);
        +
        +    my @identifiers;
        +
        +    while ($identifierCount)
        +        {
        +        # [UString16: identifier] [UString16: identifier] ...
        +
        +        read($fileHandle, $raw, 2);
        +        my $identifierLength = unpack('n', $raw);
        +
        +        my $identifier;
        +        read($fileHandle, $identifier, $identifierLength);
        +        $identifier = decode_utf8($identifier);
        +
        +        push @identifiers, $identifier;
        +
        +        $identifierCount--;
        +        };
        +
        +    if (scalar @identifiers)
        +        {  return $self->Join(@identifiers);  }
        +    else
        +        {  return undef;  };
        +    };
        +
        +
        +#
        +#   Function: IdentifiersOf
        +#
        +#   Returns the <SymbolString> as an array of identifiers.
        +#
        +sub IdentifiersOf #(SymbolString symbol)
        +    {
        +    my ($self, $symbol) = @_;
        +    return split(/\x1F/, $symbol);
        +    };
        +
        +
        +#
        +#   Function: Join
        +#
        +#   Takes a list of identifiers and/or <SymbolStrings> and returns it as a new <SymbolString>.
        +#
        +sub Join #(string/SymbolString identifier/symbol, string/SymolString identifier/symbol, ...)
        +    {
        +    my ($self, @pieces) = @_;
        +
        +    # Can't have undefs screwing everything up.
        +    while (scalar @pieces && !defined $pieces[0])
        +        {  shift @pieces;  };
        +
        +    # We need to test @pieces first because joining on an empty array returns an empty string rather than undef.
        +    if (scalar @pieces)
        +       {  return join("\x1F", @pieces);  }
        +    else
        +        {  return undef;  };
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SymbolTable.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SymbolTable.pm
        new file mode 100755
        index 0000000..3a5d9b0
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SymbolTable.pm
        @@ -0,0 +1,2016 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::SymbolTable
        +#
        +###############################################################################
        +#
        +#   A package that handles all the gory details of managing symbols.  It handles where they are defined, which files
        +#   reference them, if any are undefined or duplicated, and loading and saving them to a file.
        +#
        +#   Usage and Dependencies:
        +#
        +#       - At any time, <RebuildAllIndexes()> can be called.
        +#
        +#       - <NaturalDocs::Settings>, <NaturalDocs::Languages>, and <NaturalDocs::Project> must be initialized before use.
        +#
        +#       - <Load()> must be called to initialize the package.  At this point, the <Information Functions> will return the symbol
        +#         table as of the last time Natural Docs was run.
        +#
        +#       - Note that <Load()> and <Save()> only manage <REFERENCE_TEXT> references.  All other reference types must be
        +#         managed by their respective classes.  They should be readded after <Load()> to recreate the state of the last time
        +#         Natural Docs was run.
        +#
        +#       - <Purge()> must be called, and then <NaturalDocs::Parser->ParseForInformation()> on all files that have changed so it
        +#         can fully resolve the symbol table via the <Modification Functions>.  Afterwards <PurgeResolvingInfo()> can be called
        +#         to reclaim some memory, and the symbol table will reflect the current state of the code.
        +#
        +#       - <Save()> must be called to commit any changes to the symbol table back to disk.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +
        +use NaturalDocs::SymbolTable::Symbol;
        +use NaturalDocs::SymbolTable::SymbolDefinition;
        +use NaturalDocs::SymbolTable::Reference;
        +use NaturalDocs::SymbolTable::File;
        +use NaturalDocs::SymbolTable::ReferenceTarget;
        +use NaturalDocs::SymbolTable::IndexElement;
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::SymbolTable;
        +
        +use Encode qw(encode_utf8 decode_utf8);
        +
        +
        +###############################################################################
        +# Group: Variables
        +
        +#
        +#   handle: SYMBOLTABLE_FILEHANDLE
        +#
        +#   The file handle used with <SymbolTable.nd>.
        +#
        +
        +#
        +#   hash: symbols
        +#
        +#   A hash of all <SymbolStrings>.  The keys are the <SymbolStrings> and the values are <NaturalDocs::SymbolTable::Symbol>
        +#   objects.
        +#
        +#   Prior to <PurgeResolvingInfo()>, both defined symbols and symbols that are merely potential interpretations of references
        +#   will be here.  Afterwards, only defined symbols will be here.
        +#
        +my %symbols;
        +
        +#
        +#   hash: references
        +#
        +#   A hash of all references in the project.  The keys are <ReferenceStrings> and the values are
        +#   <NaturalDocs::SymbolTable::Reference> objects.
        +#
        +#   Prior to <PurgeResolvingInfo()>, all possible interpretations will be stored for each reference.  Afterwards, only the current
        +#   interpretation will be.
        +#
        +my %references;
        +
        +#
        +#   hash: files
        +#
        +#   A hash of all the files that define symbols and references in the project.  The keys are the <FileNames>, and the values are
        +#   <NaturalDocs::SymbolTable::File> objects.
        +#
        +#   After <PurgeResolvingInfo()>, this hash will be empty.
        +#
        +my %files;
        +
        +#
        +#   object: watchedFile
        +#
        +#   A <NaturalDocs::SymbolTable::File> object of the file being watched for changes.  This is compared to the version in <files>
        +#   to see if anything was changed since the last parse.
        +#
        +my $watchedFile;
        +
        +#
        +#   string: watchedFileName
        +#
        +#   The <FileName> of the watched file, if any.  If there is no watched file, this will be undef.
        +#
        +my $watchedFileName;
        +
        +#
        +#   hash: watchedFileSymbolDefinitions
        +#
        +#   A hashref of the symbol definition information for all the <SymbolStrings> in the watched file.  The keys are the symbol strings,
        +#   and the values are <NaturalDocs::SymbolTable::SymbolDefinition> objects.
        +#
        +my %watchedFileSymbolDefinitions;
        +
        +
        +#
        +#   hash: indexes
        +#
        +#   A hash of generated symbol indexes.  The keys are <TopicTypes> and the values are sorted arrayrefs of
        +#   <NaturalDocs::SymbolTable::IndexElements>, or undef if its empty.
        +#
        +my %indexes;
        +
        +
        +#
        +#   hash: indexChanges
        +#
        +#   A hash of all the indexes that have changed.  The keys are the <TopicTypes> and the entries are undef if they have not
        +#   changed, or 1 if they have.  The key will not exist if the <TopicType> has not been checked.
        +#
        +my %indexChanges;
        +
        +
        +#
        +#   hash: indexSectionsWithContent
        +#
        +#   A hash of which sections in an index have content.  The keys are the <TopicTypes> of each index, and the values are
        +#   arrayrefs of bools where the first represents symbols, the second numbers, and the rest A-Z.  If there is no information
        +#   available for an index, it's entry will not exist here.
        +#
        +my %indexSectionsWithContent;
        +
        +
        +#
        +#   bool: rebuildIndexes
        +#
        +#   Whether all indexes should be rebuilt regardless of whether they have been changed.
        +#
        +my $rebuildIndexes;
        +
        +
        +
        +###############################################################################
        +# Group: Files
        +
        +
        +#
        +#   File: SymbolTable.nd
        +#
        +#   The storage file for the symbol table.
        +#
        +#   Format:
        +#
        +#       > [BINARY_FORMAT]
        +#       > [VersionInt: app version]
        +#
        +#       The file starts with the standard <BINARY_FORMAT> <VersionInt> header.
        +#
        +#       The first stage of the file is for symbol definitions, analogous to <symbols>.
        +#
        +#       > [SymbolString: symbol or undef to end] ...
        +#       >
        +#       > [UInt16: number of definitions]
        +#       >
        +#       >    [UString16: global definition file] [UString16: TopicType]
        +#       >       [UString16: prototype] [UString16: summary]
        +#       >
        +#       >    [UString16: definition file] ...
        +#       >
        +#       >    ...
        +#
        +#       These blocks continue until the <SymbolString> is undef.  Only defined symbols will be included in this file, so
        +#       number of definitions will never be zero.  The first one is always the global definition.  If a symbol does not have a
        +#       prototype or summary, the UInt16 length of the string will be zero.
        +#
        +#       The second stage is for references, which is analogous to <references>.  Only <REFERENCE_TEXT> references are
        +#       stored in this file, and their <Resolving Flags> are implied so they aren't stored either.
        +#
        +#       > [ReferenceString (no type, resolving flags): reference or undef to end]
        +#       >
        +#       > [UInt8: number of definition files]
        +#       >    [UString16: definition file] [UString16: definition file] ...
        +#
        +#       These blocks continue until the <ReferenceString> is undef.  Since there can be multiple using <SymbolStrings>, those
        +#       continue until the number of identifiers is zero.  Note that all interpretations are rebuilt rather than stored.
        +#
        +#   See Also:
        +#
        +#       <File Format Conventions>
        +#
        +#   Revisions:
        +#
        +#		1.52:
        +#
        +#			- Changed AString16s to UString16s.
        +#
        +#       1.3:
        +#
        +#           - Symbol <TopicTypes> were changed from UInt8s to AString16s, now that <TopicTypes> are strings instead of
        +#             integer constants.
        +#
        +#       1.22:
        +#
        +#           - File format was completely rebuilt to accommodate the new symbol format and to be in binary.  To see the plain text
        +#             format prior to 1.22, check out 1.21's version of this file from CVS.  It is too big a change to note here.
        +#
        +
        +
        +#
        +#   File: IndexInfo.nd
        +#
        +#   The storage file for information about the indexes.
        +#
        +#   Format:
        +#
        +#       > [Standard Header]
        +#
        +#       The standard binary file header.
        +#
        +#       > [UString16: index topic name]
        +#       > [uint8: symbols have content (0 or 1)]
        +#       > [uint8: numbers have content (0 or 1)]
        +#       > [uint8: A has content] [uint8: B has content] ...
        +#       > ...
        +#
        +#       Every index that has information about it is stored with the topic type name first, then 28 uint8s that say whether that
        +#       part of the index has content or not.  The first is for symbols, the second is for numbers, and the rest are for A-Z.  If an
        +#       index's state is unknown, it won't appear in this file.
        +#
        +#   Revisions:
        +#
        +#		1.52:
        +#
        +#			- AString16s were changed to UString16s.
        +#
        +#       1.4:
        +#
        +#           - The file is introduced.
        +#
        +
        +
        +
        +###############################################################################
        +# Group: File Functions
        +
        +
        +#
        +#   Function: Load
        +#
        +#   Loads all data files from disk.
        +#
        +sub Load
        +    {
        +    my ($self) = @_;
        +
        +    $self->LoadSymbolTable();
        +    $self->LoadIndexInfo();
        +    };
        +
        +
        +#
        +#   Function: LoadSymbolTable
        +#
        +#   Loads <SymbolTable.nd> from disk.
        +#
        +sub LoadSymbolTable
        +    {
        +    my ($self) = @_;
        +
        +    my $fileIsOkay;
        +
        +    if (!NaturalDocs::Settings->RebuildData() &&
        +        open(SYMBOLTABLE_FILEHANDLE, '<' . NaturalDocs::Project->DataFile('SymbolTable.nd')) )
        +        {
        +        # See if it's binary.
        +        binmode(SYMBOLTABLE_FILEHANDLE);
        +
        +        my $firstChar;
        +        read(SYMBOLTABLE_FILEHANDLE, $firstChar, 1);
        +
        +        if ($firstChar == ::BINARY_FORMAT())
        +            {
        +            my $version = NaturalDocs::Version->FromBinaryFile(\*SYMBOLTABLE_FILEHANDLE);
        +
        +            if (NaturalDocs::Version->CheckFileFormat( $version, NaturalDocs::Version->FromString('1.52') ))
        +                {  $fileIsOkay = 1;  }
        +            else
        +                {  close(SYMBOLTABLE_FILEHANDLE);  };
        +            }
        +
        +        else
        +            {  close(SYMBOLTABLE_FILEHANDLE);  };
        +        };
        +
        +
        +    if (!$fileIsOkay)
        +        {
        +        NaturalDocs::Project->ReparseEverything();
        +        return;
        +        }
        +
        +    my $raw;
        +
        +
        +    # Symbols
        +
        +    for (;;)
        +        {
        +        # [SymbolString: symbol or undef to end]
        +
        +        my $symbol = NaturalDocs::SymbolString->FromBinaryFile(\*SYMBOLTABLE_FILEHANDLE);
        +
        +        if (!defined $symbol)
        +            {  last;  };
        +
        +        my $symbolObject = NaturalDocs::SymbolTable::Symbol->New();
        +        $symbols{$symbol} = $symbolObject;
        +
        +        # [UInt16: number of definitions]
        +
        +        read(SYMBOLTABLE_FILEHANDLE, $raw, 2);
        +        my $definitionCount = unpack('n', $raw);
        +
        +        do
        +            {
        +            # [UString16: (global?) definition file]
        +
        +            read(SYMBOLTABLE_FILEHANDLE, $raw, 2);
        +            my $fileLength = unpack('n', $raw);
        +
        +            my $file;
        +            read(SYMBOLTABLE_FILEHANDLE, $file, $fileLength);
        +            $file = decode_utf8($file);
        +
        +            # [UString16: TopicType]
        +
        +            read(SYMBOLTABLE_FILEHANDLE, $raw, 2);
        +            my $typeLength = unpack('n', $raw);
        +
        +            my $type;
        +            read(SYMBOLTABLE_FILEHANDLE, $type, $typeLength);
        +            $type = decode_utf8($type);
        +
        +            # [UString16: prototype]
        +
        +            read(SYMBOLTABLE_FILEHANDLE, $raw, 2);
        +            my $prototypeLength = unpack('n', $raw);
        +
        +            my $prototype;
        +            if ($prototypeLength)
        +                {
        +                read(SYMBOLTABLE_FILEHANDLE, $prototype, $prototypeLength);
        +                $prototype = decode_utf8($prototype);
        +                };
        +
        +            # [UString16: summary]
        +
        +            read(SYMBOLTABLE_FILEHANDLE, $raw, 2);
        +            my $summaryLength = unpack('n', $raw);
        +
        +            my $summary;
        +            if ($summaryLength)
        +                {
        +                read(SYMBOLTABLE_FILEHANDLE, $summary, $summaryLength);
        +                $summary = decode_utf8($summary);
        +                };
        +
        +            $symbolObject->AddDefinition($file, $type, $prototype, $summary);
        +
        +            # Add it.
        +
        +            if (!exists $files{$file})
        +                {  $files{$file} = NaturalDocs::SymbolTable::File->New();  };
        +
        +            $files{$file}->AddSymbol($symbol);
        +
        +            $definitionCount--;
        +            }
        +        while ($definitionCount);
        +        };
        +
        +
        +    # References
        +
        +    for (;;)
        +        {
        +        # [ReferenceString (no type, resolving flags): reference or undef to end]
        +
        +        my $referenceString = NaturalDocs::ReferenceString->FromBinaryFile(\*SYMBOLTABLE_FILEHANDLE,
        +                                                                                                              ::BINARYREF_NOTYPE() |
        +                                                                                                              ::BINARYREF_NORESOLVINGFLAGS(),
        +                                                                                                              ::REFERENCE_TEXT(), undef);
        +
        +        if (!defined $referenceString)
        +            {  last;  };
        +
        +        my $referenceObject = NaturalDocs::SymbolTable::Reference->New();
        +        $references{$referenceString} = $referenceObject;
        +
        +        # [UInt8: number of definition files]
        +
        +        read(SYMBOLTABLE_FILEHANDLE, $raw, 1);
        +        my $definitionCount = unpack('C', $raw);
        +        do
        +            {
        +            # [UString16: definition file] [UString16: definition file] ...
        +
        +            read(SYMBOLTABLE_FILEHANDLE, $raw, 2);
        +            my $definitionLength = unpack('n', $raw);
        +
        +            my $definition;
        +            read(SYMBOLTABLE_FILEHANDLE, $definition, $definitionLength);
        +            $definition = decode_utf8($definition);
        +
        +            # Add it.
        +
        +            $referenceObject->AddDefinition($definition);
        +
        +            if (!exists $files{$definition})
        +                {  $files{$definition} = NaturalDocs::SymbolTable::File->New();  };
        +
        +            $files{$definition}->AddReference($referenceString);
        +
        +            $definitionCount--;
        +            }
        +        while ($definitionCount);
        +
        +        $self->GenerateInterpretations($referenceString);
        +        $self->InterpretReference($referenceString);
        +        };
        +
        +    close(SYMBOLTABLE_FILEHANDLE);
        +    };
        +
        +
        +#
        +#   Function: LoadIndexInfo
        +#
        +#   Loads <IndexInfo.nd> from disk.
        +#
        +sub LoadIndexInfo
        +    {
        +    my ($self) = @_;
        +
        +    if (NaturalDocs::Settings->RebuildData())
        +        {  return;  };
        +
        +    my $version = NaturalDocs::BinaryFile->OpenForReading( NaturalDocs::Project->DataFile('IndexInfo.nd') );
        +
        +    if (!defined $version)
        +        {  return;  }
        +
        +    if (!NaturalDocs::Version->CheckFileFormat($version, NaturalDocs::Version->FromString('1.52')))
        +        {
        +        NaturalDocs::BinaryFile->Close();
        +        return;
        +        };
        +
        +    my $topicTypeName;
        +    while ($topicTypeName = NaturalDocs::BinaryFile->GetUString16())
        +        {
        +        my $topicType = NaturalDocs::Topics->TypeFromName($topicTypeName);
        +        my $content = [ ];
        +
        +        for (my $i = 0; $i < 28; $i++)
        +            {  push @$content, NaturalDocs::BinaryFile->GetUInt8();  };
        +
        +        if (defined $topicType)  # The name in the file could be from a type that was deleted
        +            {  $indexSectionsWithContent{$topicType} = $content;  };
        +        };
        +
        +    NaturalDocs::BinaryFile->Close();
        +    };
        +
        +
        +#
        +#   Function: Purge
        +#
        +#   Purges the symbol table of all symbols and references from files that no longer have Natural Docs content.
        +#
        +sub Purge
        +    {
        +    my ($self) = @_;
        +
        +    my $filesToPurge = NaturalDocs::Project->FilesToPurge();
        +
        +    # We do this in two stages.  First we delete all the references, and then we delete all the definitions.  This causes us to go
        +    # through the list twice, but it makes sure no purged files get added to the build list.  For example, if we deleted all of
        +    # Purge File A's references and definitions, and Purge File B had a reference to one of those symbols, Purge File B
        +    # would be added to the build list because one of its references changed.  By removing all the references in all the files
        +    # before removing the definitions, we avoid this.
        +
        +    foreach my $file (keys %$filesToPurge)
        +        {
        +        if (exists $files{$file})
        +            {
        +            my @references = $files{$file}->References();
        +            foreach my $reference (@references)
        +                {  $self->DeleteReference($reference, $file);  };
        +            };
        +        };
        +
        +    foreach my $file (keys %$filesToPurge)
        +        {
        +        if (exists $files{$file})
        +            {
        +            my @symbols = $files{$file}->Symbols();
        +            foreach my $symbol (@symbols)
        +                {  $self->DeleteSymbol($symbol, $file);  };
        +
        +            delete $files{$file};
        +            };
        +        };
        +    };
        +
        +
        +#
        +#   Function: Save
        +#
        +#   Saves all data files to disk.
        +#
        +sub Save
        +    {
        +    my ($self) = @_;
        +
        +    $self->SaveSymbolTable();
        +    $self->SaveIndexInfo();
        +    };
        +
        +
        +#
        +#   Function: SaveSymbolTable
        +#
        +#   Saves <SymbolTable.nd> to disk.
        +#
        +sub SaveSymbolTable
        +    {
        +    my ($self) = @_;
        +
        +    open (SYMBOLTABLE_FILEHANDLE, '>' . NaturalDocs::Project->DataFile('SymbolTable.nd'))
        +        or die "Couldn't save " . NaturalDocs::Project->DataFile('SymbolTable.nd') . ".\n";
        +
        +    binmode(SYMBOLTABLE_FILEHANDLE);
        +
        +    print SYMBOLTABLE_FILEHANDLE '' . ::BINARY_FORMAT();
        +
        +    NaturalDocs::Version->ToBinaryFile(\*SYMBOLTABLE_FILEHANDLE, NaturalDocs::Settings->AppVersion());
        +
        +
        +    # Symbols
        +
        +    while (my ($symbol, $symbolObject) = each %symbols)
        +        {
        +        # Only existing symbols.
        +        if ($symbolObject->IsDefined())
        +            {
        +            # [SymbolString: symbol or undef to end]
        +
        +            NaturalDocs::SymbolString->ToBinaryFile(\*SYMBOLTABLE_FILEHANDLE, $symbol);
        +
        +            # [UInt16: number of definitions]
        +
        +            my @definitions = $symbolObject->Definitions();
        +            print SYMBOLTABLE_FILEHANDLE pack('n', scalar @definitions);
        +
        +            # [UString16: global definition file] [UString16: TopicType]
        +
        +            my $uGlobalDefinition = encode_utf8($symbolObject->GlobalDefinition());
        +            my $uGlobalType = encode_utf8($symbolObject->GlobalType());
        +
        +            print SYMBOLTABLE_FILEHANDLE pack('na*na*', length $uGlobalDefinition, $uGlobalDefinition,
        +                                                                                   length $uGlobalType, $uGlobalType);
        +
        +            # [UString16: prototype]
        +
        +            my $prototype = $symbolObject->GlobalPrototype();
        +
        +            if (defined $prototype)
        +                {
        +                my $uPrototype = encode_utf8($prototype);
        +                print SYMBOLTABLE_FILEHANDLE pack('na*', length($uPrototype), $uPrototype);
        +                }
        +            else
        +                {  print SYMBOLTABLE_FILEHANDLE pack('n', 0);  };
        +
        +            # [UString16: summary]
        +
        +            my $summary = $symbolObject->GlobalSummary();
        +
        +            if (defined $summary)
        +                {
        +                my $uSummary = encode_utf8($summary);
        +                print SYMBOLTABLE_FILEHANDLE pack('na*', length($uSummary), $uSummary);
        +                }
        +            else
        +                {  print SYMBOLTABLE_FILEHANDLE pack('n', 0);  };
        +
        +
        +            foreach my $definition (@definitions)
        +                {
        +                if ($definition ne $symbolObject->GlobalDefinition())
        +                    {
        +                    # [UString16: definition file] [UString16: TopicType]
        +
        +                    my $uDefinition = encode_utf8($definition);
        +                    my $uTopicType = encode_utf8($symbolObject->TypeDefinedIn($definition));
        +
        +                    print SYMBOLTABLE_FILEHANDLE pack('na*na*', length $uDefinition, $uDefinition,
        +                                                                                           length $uTopicType, $uTopicType);
        +
        +                    # [UString16: prototype]
        +
        +                    my $prototype = $symbolObject->PrototypeDefinedIn($definition);
        +
        +                    if (defined $prototype)
        +                        {
        +                        my $uPrototype = encode_utf8($prototype);
        +                        print SYMBOLTABLE_FILEHANDLE pack('na*', length($uPrototype), $uPrototype);
        +                        }
        +                    else
        +                        {  print SYMBOLTABLE_FILEHANDLE pack('n', 0);  };
        +
        +                    # [UString16: summary]
        +
        +                    my $summary = $symbolObject->SummaryDefinedIn($definition);
        +
        +                    if (defined $summary)
        +                        {
        +                        my $uSummary = encode_utf8($summary);
        +                        print SYMBOLTABLE_FILEHANDLE pack('na*', length($uSummary), $uSummary);
        +                        }
        +                    else
        +                        {  print SYMBOLTABLE_FILEHANDLE pack('n', 0);  };
        +                    };
        +                };
        +            };
        +        };
        +
        +     # [SymbolString: symbol or undef to end]
        +
        +     NaturalDocs::SymbolString->ToBinaryFile(\*SYMBOLTABLE_FILEHANDLE, undef);
        +
        +
        +     # References
        +
        +    while (my ($reference, $referenceObject) = each %references)
        +        {
        +        my $type = NaturalDocs::ReferenceString->TypeOf($reference);
        +
        +        if ($type == ::REFERENCE_TEXT())
        +            {
        +            # [ReferenceString (no type, resolving flags): reference or undef to end]
        +
        +            NaturalDocs::ReferenceString->ToBinaryFile(\*SYMBOLTABLE_FILEHANDLE, $reference,
        +                                                                             ::BINARYREF_NOTYPE() | ::BINARYREF_NORESOLVINGFLAGS());
        +
        +            # [UInt8: number of definition files]
        +
        +            my @definitions = $referenceObject->Definitions();
        +            print SYMBOLTABLE_FILEHANDLE pack('C', scalar @definitions);
        +
        +            # [UString16: definition file] [UString16: definition file] ...
        +
        +            foreach my $definition (@definitions)
        +                {
        +                my $uDefinition = encode_utf8($definition);
        +                print SYMBOLTABLE_FILEHANDLE pack('na*', length($uDefinition), $uDefinition);
        +                };
        +            };
        +        };
        +
        +    # [ReferenceString (no type, resolving flags): reference or undef to end]
        +
        +    NaturalDocs::ReferenceString->ToBinaryFile(\*SYMBOLTABLE_FILEHANDLE, undef,
        +                                                                     ::BINARYREF_NOTYPE() | ::BINARYREF_NORESOLVINGFLAGS());
        +
        +    close(SYMBOLTABLE_FILEHANDLE);
        +    };
        +
        +
        +#
        +#   Function: SaveIndexInfo
        +#
        +#   Saves <IndexInfo.nd> to disk.
        +#
        +sub SaveIndexInfo
        +    {
        +    my ($self) = @_;
        +
        +    NaturalDocs::BinaryFile->OpenForWriting( NaturalDocs::Project->DataFile('IndexInfo.nd') );
        +
        +    while (my ($topicType, $content) = each %indexSectionsWithContent)
        +        {
        +        NaturalDocs::BinaryFile->WriteUString16( NaturalDocs::Topics->NameOfType($topicType) );
        +
        +        for (my $i = 0; $i < 28; $i++)
        +            {
        +            if ($content->[$i])
        +                {  NaturalDocs::BinaryFile->WriteUInt8(1);  }
        +            else
        +                {  NaturalDocs::BinaryFile->WriteUInt8(0);  };
        +            };
        +        };
        +
        +    NaturalDocs::BinaryFile->Close();
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Modification Functions
        +# These functions should not be called after <PurgeResolvingInfo()>.
        +
        +#
        +#   Function: AddSymbol
        +#
        +#   Adds a symbol definition to the table, if it doesn't already exist.  If the definition changes or otherwise requires the files that
        +#   reference it to be updated, the function will call <NaturalDocs::Project->RebuildFile()> to make sure that they are.
        +#
        +#   Parameters:
        +#
        +#       symbol  - The <SymbolString>.
        +#       file        - The <FileName> where it's defined.
        +#       type      - The symbol's <TopicType>.
        +#       prototype - The symbol's prototype, if applicable.
        +#       summary - The symbol's summary, if applicable.
        +#
        +sub AddSymbol #(symbol, file, type, prototype, summary)
        +    {
        +    my ($self, $symbol, $file, $type, $prototype, $summary) = @_;
        +
        +
        +    # If the symbol doesn't exist...
        +    if (!exists $symbols{$symbol})
        +        {
        +        # Create the symbol.  There are no references that could be interpreted as this or else it would have existed already.
        +
        +        my $newSymbol = NaturalDocs::SymbolTable::Symbol->New();
        +        $newSymbol->AddDefinition($file, $type, $prototype, $summary);
        +
        +        $symbols{$symbol} = $newSymbol;
        +
        +        $self->OnIndexChange($type);
        +        NaturalDocs::Project->RebuildFile($file);
        +        }
        +
        +
        +    # If the symbol already exists...
        +    else
        +        {
        +        my $symbolObject = $symbols{$symbol};
        +
        +        # If the symbol isn't defined, i.e. it was a potential interpretation only...
        +        if (!$symbolObject->IsDefined())
        +            {
        +            $symbolObject->AddDefinition($file, $type, $prototype, $summary);
        +
        +            # See if this symbol provides a better interpretation of any references.  We can assume this symbol has interpretations
        +            # because the object won't exist without either that or definitions.
        +
        +            my %referencesAndScores = $symbolObject->ReferencesAndScores();
        +
        +            while (my ($referenceString, $referenceScore) = each %referencesAndScores)
        +                {
        +                my $referenceObject = $references{$referenceString};
        +
        +                if (!$referenceObject->HasCurrentInterpretation() ||
        +                    $referenceScore > $referenceObject->CurrentScore())
        +                    {
        +                    $referenceObject->SetCurrentInterpretation($symbol);
        +                    $self->OnInterpretationChange($referenceString);
        +                    };
        +                };
        +
        +            $self->OnIndexChange($type);
        +            NaturalDocs::Project->RebuildFile($file);
        +            }
        +
        +        # If the symbol is defined but not in this file...
        +        elsif (!$symbolObject->IsDefinedIn($file))
        +            {
        +            $symbolObject->AddDefinition($file, $type, $prototype, $summary);
        +
        +            $self->OnIndexChange($type);
        +            NaturalDocs::Project->RebuildFile($file);
        +
        +            # We don't have to check other files because if the symbol is defined it already has a global definiton,
        +            # and everything else is either using that or its own definition, and thus wouldn't be affected by this.
        +            };
        +
        +        # If the symbol was already defined in this file, ignore it.
        +
        +        };
        +
        +
        +    # Add it to the file index.
        +
        +    if (!exists $files{$file})
        +        {  $files{$file} = NaturalDocs::SymbolTable::File->New();  };
        +
        +    $files{$file}->AddSymbol($symbol);
        +
        +
        +    # Add it to the watched file, if necessary.
        +
        +    if (defined $watchedFileName)
        +        {
        +        $watchedFile->AddSymbol($symbol);
        +
        +        if (!exists $watchedFileSymbolDefinitions{$symbol})
        +            {
        +            $watchedFileSymbolDefinitions{$symbol} =
        +                 NaturalDocs::SymbolTable::SymbolDefinition->New($type, $prototype, $summary);
        +            };
        +        };
        +    };
        +
        +
        +#
        +#   Function: AddReference
        +#
        +#   Adds a reference to the table, if it doesn't already exist.
        +#
        +#   Parameters:
        +#
        +#       type        - The <ReferenceType>.
        +#       symbol    - The reference <SymbolString>.
        +#       scope      - The scope <SymbolString> it appears in.
        +#       using       - An arrayref of scope <SymbolStrings> accessible to the reference via "using" statements, or undef if none.
        +#       file          - The <FileName> where the reference appears.  This is not required unless the type is <REFERENCE_TEXT>.
        +#       resolvingFlags - The <Resolving Flags> of the reference.  They will be ignored if the type is <REFERENCE_TEXT>.
        +#
        +#   Alternate Parameters:
        +#
        +#       referenceString - The <ReferenceString> to add.
        +#       file - The <FileName> where the reference appears.  This is not required unless the type is <REFERENCE_TEXT>.
        +#
        +sub AddReference #(type, symbol, scope, using, file, resolvingFlags) or (referenceString, file)
        +    {
        +    my ($self, $referenceString, $file);
        +
        +    if (scalar @_ <= 3)
        +        {
        +        ($self, $referenceString, $file) = @_;
        +        }
        +    else
        +        {
        +        my ($type, $symbol, $scope, $using, $resolvingFlags);
        +        ($self, $type, $symbol, $scope, $using, $file, $resolvingFlags) = @_;
        +
        +        $referenceString = NaturalDocs::ReferenceString->MakeFrom($type, $symbol,
        +                                                                                                   NaturalDocs::Languages->LanguageOf($file)->Name(),
        +                                                                                                   $scope, $using, $resolvingFlags);
        +        };
        +
        +
        +    # If the reference doesn't exist...
        +    if (!exists $references{$referenceString})
        +        {
        +        my $referenceObject = NaturalDocs::SymbolTable::Reference->New();
        +
        +        $references{$referenceString} = $referenceObject;
        +
        +        $self->GenerateInterpretations($referenceString);
        +        $self->InterpretReference($referenceString);
        +        }
        +
        +
        +    if (defined $file)
        +        {
        +        $references{$referenceString}->AddDefinition($file);
        +
        +
        +        # Add it to the file index.
        +
        +        if (!exists $files{$file})
        +            {  $files{$file} = NaturalDocs::SymbolTable::File->New();  };
        +
        +        $files{$file}->AddReference($referenceString);
        +
        +
        +        # Add it to the watched file, if necessary.
        +
        +        if (defined $watchedFileName)
        +            {  $watchedFile->AddReference($referenceString);  };
        +        };
        +    };
        +
        +
        +#
        +#   Function: WatchFileForChanges
        +#
        +#   Tracks a file to see if any symbols or references were changed or deleted in ways that would require other files to be rebuilt.
        +#   Assumes that after this function call, the entire file will be parsed again, and thus every symbol and reference will go through
        +#   <AddSymbol()> and <AddReference()>.  Afterwards, call <AnalyzeChanges()> to handle any differences.
        +#
        +#   Parameters:
        +#
        +#       file - The <FileName> to watch.
        +#
        +sub WatchFileForChanges #(file)
        +    {
        +    my ($self, $file) = @_;
        +
        +    $watchedFile = NaturalDocs::SymbolTable::File->New();
        +    $watchedFileName = $file;
        +    %watchedFileSymbolDefinitions = ( );
        +    };
        +
        +
        +#
        +#   Function: AnalyzeChanges
        +#
        +#   Handles any changes found when reparsing a file using <WatchFileForChanges()>.
        +#
        +sub AnalyzeChanges
        +    {
        +    my ($self) = @_;
        +
        +    if (exists $files{$watchedFileName})
        +        {
        +
        +        # Go through the references and remove any that were deleted.  Ones that were added will have already been added to
        +        # the table in AddReference().
        +
        +        my @references = $files{$watchedFileName}->References();
        +        foreach my $reference (@references)
        +            {
        +            if (!$watchedFile->DefinesReference($reference))
        +                {  $self->DeleteReference($reference, $watchedFileName);  };
        +            };
        +        };
        +
        +    # We have to check if the watched file exists again because DeleteReference() could have removed it.  I'm still not sure how a
        +    # file could have references without symbols, but apparently it's happened in the real world because it's crashed on people.
        +    if (exists $files{$watchedFileName})
        +        {
        +        # Go through the symbols.
        +
        +        my $rebuildFile;
        +
        +        my @symbols = $files{$watchedFileName}->Symbols();
        +        foreach my $symbol (@symbols)
        +            {
        +            # Delete symbols that don't exist.
        +
        +            if (!$watchedFile->DefinesSymbol($symbol))
        +                {
        +                $self->DeleteSymbol($symbol, $watchedFileName);
        +                $rebuildFile = 1;
        +                }
        +
        +            else
        +                {
        +                my $symbolObject = $symbols{$symbol};
        +                my $newSymbolDef = $watchedFileSymbolDefinitions{$symbol};
        +
        +                # Update symbols that changed.
        +
        +                if ( $symbolObject->TypeDefinedIn($watchedFileName) ne $newSymbolDef->Type() ||
        +                     $symbolObject->PrototypeDefinedIn($watchedFileName) ne $newSymbolDef->Prototype() ||
        +                     $symbolObject->SummaryDefinedIn($watchedFileName) ne $newSymbolDef->Summary() )
        +                    {
        +                    $self->OnIndexChange($symbolObject->TypeDefinedIn($watchedFileName));
        +                    $self->OnIndexChange($newSymbolDef->Type());
        +                    $rebuildFile = 1;
        +
        +                    $symbolObject->ChangeDefinition($watchedFileName, $newSymbolDef->Type(), $newSymbolDef->Prototype(),
        +                                                                       $newSymbolDef->Summary());
        +
        +                    # If the symbol definition was the global one, we need to update all files that reference it.  If it wasn't, the only file
        +                    # that could references it is itself, and the only way the symbol definition could change in the first place was if it was
        +                    # itself changed.
        +                    if ($symbolObject->GlobalDefinition() eq $watchedFileName)
        +                        {
        +                        # Rebuild the files that have references to this symbol
        +                        my @references = $symbolObject->References();
        +                        foreach my $reference (@references)
        +                            {
        +                            if ($references{$reference}->CurrentInterpretation() eq $symbol)
        +                                {  $self->OnTargetSymbolChange($reference);  };
        +                            }; # While references
        +                        }; # If global definition is watched file
        +                    }; # If the symbol definition changed
        +                }; # If the symbol still exists
        +            }; # foreach symbol in watched file
        +
        +        if ($rebuildFile)
        +            {  NaturalDocs::Project->RebuildFile($watchedFileName);  };
        +
        +        };
        +
        +
        +    $watchedFile = undef;
        +    $watchedFileName = undef;
        +    %watchedFileSymbolDefinitions = ( );
        +    };
        +
        +
        +#
        +#   Function: DeleteReference
        +#
        +#   Deletes a reference from the table.
        +#
        +#   Be careful with this function, as deleting a reference means there are no more of them in the file at all.  The tables do not
        +#   keep track of how many times references appear in a file.  In these cases you should instead call <WatchFileForChanges()>,
        +#   reparse the file, thus readding all the references, and call <AnalyzeChanges()>.
        +#
        +#   <REFERENCE_TEXT> references should *always* be managed with <WatchFileForChanges()> and <AnalyzeChanges()>.
        +#   This function should only be used externally for other types of references.
        +#
        +#   Parameters:
        +#
        +#       referenceString - The <ReferenceString>.
        +#       file - The <FileName> where the reference is.  This is not required unless the type is <REFERENCE_TEXT>.
        +#
        +sub DeleteReference #(referenceString, file)
        +    {
        +    my ($self, $referenceString, $file) = @_;
        +
        +
        +    # If the reference exists...
        +    if (exists $references{$referenceString})
        +        {
        +        my $referenceObject = $references{$referenceString};
        +
        +        if (defined $file)
        +            {  $referenceObject->DeleteDefinition($file);  };
        +
        +        # If there are no other definitions, or it doesn't use file definitions to begin with...
        +        if (!$referenceObject->IsDefined())
        +            {
        +            my @interpretations = $referenceObject->Interpretations();
        +            foreach my $interpretation (@interpretations)
        +                {
        +                $symbols{$interpretation}->DeleteReference($referenceString);
        +                };
        +
        +            delete $references{$referenceString};
        +            };
        +
        +
        +        if (defined $file)
        +            {
        +            # Remove it from the file index.
        +
        +            $files{$file}->DeleteReference($referenceString);
        +
        +            if (!$files{$file}->HasAnything())
        +                {  delete $files{$file};  };
        +
        +            # We don't need to worry about the watched file, since this function will only be called by AnalyzeChanges() and
        +            # LoadAndPurge().
        +            };
        +        };
        +    };
        +
        +
        +#
        +#   Function: RebuildAllIndexes
        +#
        +#   When called, it makes sure all indexes are listed as changed by <IndexChanged()>, regardless of whether they actually did
        +#   or not.
        +#
        +#   This can be called at any time.
        +#
        +sub RebuildAllIndexes
        +    {
        +    my $self = shift;
        +    $rebuildIndexes = 1;
        +    };
        +
        +
        +#
        +#   Function: PurgeResolvingInfo
        +#
        +#   Purges unnecessary information from the symbol table after it is fully resolved.  This will reduce the memory footprint for the
        +#   build stage.  After calling this function, you can only call the <Information Functions> and <Save()>.
        +#
        +sub PurgeResolvingInfo
        +    {
        +    my ($self) = @_;
        +
        +    # Go through the symbols.  We don't need to keep around potential symbols anymore, nor do we need what references can
        +    # be interpreted as the defined ones.
        +
        +    while (my ($symbol, $symbolObject) = each %symbols)
        +        {
        +        if ($symbolObject->IsDefined())
        +            {  $symbolObject->DeleteAllReferences();  }
        +        else
        +            {  delete $symbols{$symbol};  };
        +        };
        +
        +
        +    # Go through the references.  We don't need any of the interpretations except for the current.
        +
        +    foreach my $referenceObject (values %references)
        +        {  $referenceObject->DeleteAllInterpretationsButCurrent();  };
        +
        +
        +    # We don't need the information by file at all.
        +
        +    %files = ( );
        +    };
        +
        +
        +#
        +#   Function: PurgeIndexes
        +#
        +#   Clears all generated indexes.
        +#
        +sub PurgeIndexes
        +    {
        +    my ($self) = @_;
        +    %indexes = ( );
        +    };
        +
        +
        +###############################################################################
        +# Group: Information Functions
        +# These functions should not be called until the symbol table is fully resolved.
        +
        +
        +#
        +#   Function: References
        +#
        +#   Returns what the passed reference information resolve to, if anything.  Note that this only works if the reference had
        +#   been previously added to the table via <AddReference()> with the exact same parameters.
        +#
        +#   Parameters:
        +#
        +#       type     - The <ReferenceType>.
        +#       symbol - The reference <SymbolString>.
        +#       scope   - The scope <SymbolString> the reference appears in, or undef if none.
        +#       using    - An arrayref of scope <SymbolStrings> available to the reference via using statements.
        +#       file       - The source <FileName> the reference appears in, or undef if none.
        +#       resolvingFlags - The <Resolving Flags> of the reference.  Ignored if the type is <REFERENCE_TEXT>.
        +#
        +#   Alternate Parameters:
        +#
        +#       referenceString - The <ReferenceString> to resolve.
        +#       file - The source <FileName> the reference appears in, or undef if none.
        +#
        +#   Returns:
        +#
        +#       A <NaturalDocs::SymbolTable::ReferenceTarget> object, or undef if the reference doesn't resolve to anything.
        +#
        +sub References #(type, symbol, scope, using, file, resolvingFlags) or (referenceString, file)
        +    {
        +    my ($self, $referenceString, $file);
        +
        +    if (scalar @_ <= 3)
        +        {  ($self, $referenceString, $file) = @_;  }
        +    else
        +        {
        +        my ($type, $symbol, $scope, $using, $resolvingFlags);
        +        ($self, $type, $symbol, $scope, $using, $file, $resolvingFlags) = @_;
        +
        +        $referenceString = NaturalDocs::ReferenceString->MakeFrom($type, $symbol,
        +                                                                                                  NaturalDocs::Languages->LanguageOf($file)->Name(),
        +                                                                                                  $scope, $using, $resolvingFlags);
        +        };
        +
        +    if (exists $references{$referenceString} && $references{$referenceString}->HasCurrentInterpretation())
        +        {
        +        my $targetSymbol = $references{$referenceString}->CurrentInterpretation();
        +        my $targetObject = $symbols{$targetSymbol};
        +
        +        my $targetFile;
        +        my $targetType;
        +        my $targetPrototype;
        +        my $targetSummary;
        +
        +        if (defined $file && $targetObject->IsDefinedIn($file))
        +            {
        +            $targetFile = $file;
        +            $targetType = $targetObject->TypeDefinedIn($file);
        +            $targetPrototype = $targetObject->PrototypeDefinedIn($file);
        +            $targetSummary = $targetObject->SummaryDefinedIn($file);
        +            }
        +        else
        +            {
        +            $targetFile = $targetObject->GlobalDefinition();
        +            $targetType = $targetObject->GlobalType();
        +            $targetPrototype = $targetObject->GlobalPrototype();
        +            $targetSummary = $targetObject->GlobalSummary();
        +            };
        +
        +        return NaturalDocs::SymbolTable::ReferenceTarget->New($targetSymbol, $targetFile, $targetType, $targetPrototype,
        +                                                                                             $targetSummary);
        +        }
        +
        +    else
        +        {  return undef;  };
        +    };
        +
        +
        +#
        +#   Function: Lookup
        +#
        +#   Returns information on the passed <SymbolString>, if it exists.  Note that the symbol must be fully resolved.
        +#
        +#   Parameters:
        +#
        +#       symbol - The <SymbolString>.
        +#       file - The source <FileName> the reference appears in, or undef if none.
        +#
        +#   Returns:
        +#
        +#       A <NaturalDocs::SymbolTable::ReferenceTarget> object, or undef if the symbol isn't defined.
        +#
        +sub Lookup #(symbol, file)
        +    {
        +    my ($self, $symbol, $file) = @_;
        +
        +    my $symbolObject = $symbols{$symbol};
        +
        +    if (defined $symbolObject)
        +        {
        +        my $targetFile;
        +        my $targetType;
        +        my $targetPrototype;
        +        my $targetSummary;
        +
        +        if (defined $file && $symbolObject->IsDefinedIn($file))
        +            {
        +            $targetFile = $file;
        +            $targetType = $symbolObject->TypeDefinedIn($file);
        +            $targetPrototype = $symbolObject->PrototypeDefinedIn($file);
        +            $targetSummary = $symbolObject->SummaryDefinedIn($file);
        +            }
        +        else
        +            {
        +            $targetFile = $symbolObject->GlobalDefinition();
        +            $targetType = $symbolObject->GlobalType();
        +            $targetPrototype = $symbolObject->GlobalPrototype();
        +            $targetSummary = $symbolObject->GlobalSummary();
        +            };
        +
        +        return NaturalDocs::SymbolTable::ReferenceTarget->New($symbol, $targetFile, $targetType, $targetPrototype,
        +                                                                                             $targetSummary);
        +        }
        +
        +    else
        +        {  return undef;  };
        +    };
        +
        +
        +#
        +#   Function: Index
        +#
        +#   Returns a symbol index.
        +#
        +#   Indexes are generated on demand, but they are stored so subsequent calls for the same index will be fast.  Call
        +#   <PurgeIndexes()> to clear the generated indexes.
        +#
        +#   Parameters:
        +#
        +#       type  - The <TopicType> of symbol to limit the index to, or undef for none.
        +#
        +#   Returns:
        +#
        +#       An arrayref of sections.  The first represents all the symbols, the second the numbers, and the rest A through Z.
        +#       Each section is a sorted arrayref of <NaturalDocs::SymbolTable::IndexElement> objects.  If a section has no content,
        +#       it will be undef.
        +#
        +sub Index #(type)
        +    {
        +    my ($self, $type) = @_;
        +
        +    if (!exists $indexes{$type})
        +        {  $indexes{$type} = $self->MakeIndex($type);  };
        +
        +    return $indexes{$type};
        +    };
        +
        +
        +#
        +#   Function: HasIndexes
        +#
        +#   Determines which indexes out of a list actually have content.
        +#
        +#   Parameters:
        +#
        +#       types  - An existence hashref of the <TopicTypes> to check for indexes.
        +#
        +#   Returns:
        +#
        +#       An existence hashref of all the specified indexes that have content.  Will return an empty hashref if none.
        +#
        +sub HasIndexes #(types)
        +    {
        +    my ($self, $types) = @_;
        +
        +    # EliminationHash is a copy of all the types, and the types will be deleted as they are found.  This allows us to quit early if
        +    # we've found all the types because the hash will be empty.  We'll later return the original hash minus what was left over
        +    # in here, which are the ones that weren't found.
        +    my %eliminationHash = %$types;
        +
        +    finddefs:
        +    foreach my $symbolObject (values %symbols)
        +        {
        +        foreach my $definition ($symbolObject->Definitions())
        +            {
        +            delete $eliminationHash{ $symbolObject->TypeDefinedIn($definition) };
        +            delete $eliminationHash{ ::TOPIC_GENERAL() };
        +
        +            if (!scalar keys %eliminationHash)
        +                {  last finddefs;  };
        +            };
        +        };
        +
        +    my $result = { %$types };
        +
        +    foreach my $type (keys %eliminationHash)
        +        {  delete $result->{$type};  };
        +
        +    return $result;
        +    };
        +
        +
        +#
        +#   Function: IndexChanged
        +#
        +#   Returns whether the specified index has changed.
        +#
        +#   Parameters:
        +#
        +#       type  - The <TopicType> to limit the index to.
        +#
        +sub IndexChanged #(TopicType type)
        +    {
        +    my ($self, $type) = @_;
        +    return ($rebuildIndexes || defined $indexChanges{$type});
        +    };
        +
        +
        +#
        +#   Function: IndexSectionsWithContent
        +#
        +#   Returns an arrayref of whether each section of the specified index has content.  The first entry will be for symbols, the second
        +#   for numbers, and the rest A-Z.  Do not change the arrayref.
        +#
        +sub IndexSectionsWithContent #(TopicType type)
        +    {
        +    my ($self, $type) = @_;
        +
        +    if (!exists $indexSectionsWithContent{$type})
        +        {
        +        # This is okay because Index() stores generated indexes.  It's not an expensive operation unless the index was never asked
        +        # for before or it will never be asked for otherwise, and this shouldn't be the case.
        +
        +        my $index = $self->Index($type);
        +        my $content = [ ];
        +
        +        for (my $i = 0; $i < 28; $i++)
        +            {
        +            push @$content, (defined $index->[$i] ? 1 : 0);
        +            };
        +
        +        $indexSectionsWithContent{$type} = $content;
        +        };
        +
        +    return $indexSectionsWithContent{$type};
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Event Handlers
        +
        +
        +#
        +#   Function: OnIndexChange
        +#
        +#   Called whenever a change happens to a symbol that would cause an index to be regenerated.
        +#
        +#   Parameters:
        +#
        +#       type - The <TopicType> of the symbol that caused the change.
        +#
        +sub OnIndexChange #(TopicType type)
        +    {
        +    my ($self, $type) = @_;
        +
        +    $indexChanges{$type} = 1;
        +    $indexChanges{::TOPIC_GENERAL()} = 1;
        +    delete $indexSectionsWithContent{$type};
        +    };
        +
        +
        +#
        +#   Function: OnInterpretationChange
        +#
        +#   Called whenever the current interpretation of a reference changes, meaning it switched from one symbol to another.
        +#
        +#   Parameters:
        +#
        +#       referenceString - The <ReferenceString> whose current interpretation changed.
        +#
        +sub OnInterpretationChange #(referenceString)
        +    {
        +    my ($self, $referenceString) = @_;
        +    my $referenceType = NaturalDocs::ReferenceString->TypeOf($referenceString);
        +
        +    if ($referenceType == ::REFERENCE_TEXT())
        +        {
        +        my @referenceDefinitions = $references{$referenceString}->Definitions();
        +
        +        foreach my $referenceDefinition (@referenceDefinitions)
        +            {
        +            NaturalDocs::Project->RebuildFile($referenceDefinition);
        +            };
        +        }
        +
        +    elsif (NaturalDocs::Constants->IsClassHierarchyReference($referenceType))
        +        {
        +        NaturalDocs::ClassHierarchy->OnInterpretationChange($referenceString);
        +        };
        +    };
        +
        +
        +#
        +#   Function: OnTargetSymbolChange
        +#
        +#   Called whenever the symbol that serves as the interpretation of a reference changes, but the reference still resolves to
        +#   the same symbol.  This would happen if the type, prototype, summary, or which file serves as global definition of the symbol
        +#   changes.
        +#
        +#   Parameters:
        +#
        +#       referenceString - The <ReferenceString> whose interpretation's symbol changed.
        +#
        +sub OnTargetSymbolChange #(referenceString)
        +    {
        +    my ($self, $referenceString) = @_;
        +    my $referenceType = NaturalDocs::ReferenceString->TypeOf($referenceString);
        +
        +    if ($referenceType == ::REFERENCE_TEXT())
        +        {
        +        my @referenceDefinitions = $references{$referenceString}->Definitions();
        +
        +        foreach my $referenceDefinition (@referenceDefinitions)
        +            {
        +            NaturalDocs::Project->RebuildFile($referenceDefinition);
        +            };
        +        }
        +
        +    elsif (NaturalDocs::Constants->IsClassHierarchyReference($referenceType))
        +        {
        +        NaturalDocs::ClassHierarchy->OnTargetSymbolChange($referenceString);
        +        };
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Support Functions
        +
        +
        +#
        +#   Function: DeleteSymbol
        +#
        +#   Removes a symbol definition from the table.  It will call <OnInterpretationChange()> for all references that have it as their
        +#   current interpretation.
        +#
        +#   External code should not attempt to delete symbols using this function.  Instead it should call <WatchFileFoChanges()>,
        +#   reparse the file, and call <AnalyzeChanges()>.
        +#
        +#   Parameters:
        +#
        +#       symbol - The <SymbolString>.
        +#       file       - The <FileName> where the definition is.
        +#
        +sub DeleteSymbol #(symbol, file)
        +    {
        +    my ($self, $symbol, $file) = @_;
        +
        +
        +    # If the symbol and definition exist...
        +    if (exists $symbols{$symbol} && $symbols{$symbol}->IsDefinedIn($file))
        +        {
        +        my $symbolObject = $symbols{$symbol};
        +        my $wasGlobal = ($symbolObject->GlobalDefinition() eq $file);
        +
        +        $self->OnIndexChange($symbolObject->TypeDefinedIn($file));
        +
        +        $symbolObject->DeleteDefinition($file);
        +
        +        # If this was one definition of many...
        +        if ($symbolObject->IsDefined())
        +            {
        +
        +            # If this was the global definition...
        +            if ($wasGlobal)
        +                {
        +                # Update every file that referenced the global symbol; i.e. every file that doesn't have its own definition.
        +
        +                my @references = $symbolObject->References();
        +
        +                foreach my $reference (@references)
        +                    {
        +                    if ($references{$reference}->CurrentInterpretation() eq $symbol)
        +                        {
        +                        $self->OnTargetSymbolChange($reference);
        +                        };
        +                    };
        +                }
        +
        +            # If this wasn't the global definition...
        +            else
        +                {
        +                # It's a safe bet that we don't need to do anything here.  The only thing that we even need to look for here is if the
        +                # file referenced its own symbol and thus should be rebuilt.  However, if the file is having a symbol deleted, it either
        +                # changed or was itself deleted.  If it changed and still has other Natural Docs content, it should already be on the
        +                # rebuild list.  If it was deleted or no longer has Natural Docs content, we certainly don't want to add it to the rebuild
        +                # list.
        +                };
        +            }
        +
        +        # If this is the only definition...
        +        else
        +            {
        +            # If this symbol is the interpretation of any references...
        +            if ($symbolObject->HasReferences())
        +                {
        +                # If this was the current interpretation of any references, reinterpret them and rebuild their files.
        +
        +                my @references = $symbolObject->References();
        +
        +                foreach my $reference (@references)
        +                    {
        +                    if ($references{$reference}->CurrentInterpretation() eq $symbol)
        +                        {
        +                        $self->InterpretReference($reference);
        +                        $self->OnInterpretationChange($reference);
        +                        };
        +                    };
        +                }
        +
        +            # If there are no interpretations of the symbol...
        +            else
        +                {
        +                # Delete the symbol entirely.
        +                delete $symbols{$symbol};
        +                };
        +            };
        +
        +        # Remove it from the file index.
        +
        +        $files{$file}->DeleteSymbol($symbol);
        +
        +        if (!$files{$file}->HasAnything())
        +            {  delete $files{$file};  };
        +
        +
        +        # We don't need to worry about the watched file, since this function will only be called by AnalyzeChanges() and
        +        # LoadAndPurge().
        +        };
        +    };
        +
        +
        +#
        +#   Function: GenerateInterpretations
        +#
        +#   Generates the list of interpretations for the passed reference.  Also creates potential symbols as necessary.
        +#
        +#   Parameters:
        +#
        +#       referenceString - The <ReferenceString> to generate the interpretations of.
        +#
        +sub GenerateInterpretations #(referenceString)
        +    {
        +    my ($self, $referenceString) = @_;
        +
        +    my ($type, $symbol, $languageName, $scope, $using, $resolvingFlags) =
        +        NaturalDocs::ReferenceString->InformationOf($referenceString);
        +
        +    # RESOLVE_NOPLURAL is handled by having @singulars be empty.
        +    my @singulars;
        +    if (!($resolvingFlags & ::RESOLVE_NOPLURAL()))
        +        {  @singulars = $self->SingularInterpretationsOf($symbol);  };
        +
        +    # Since higher scores are better, we'll start at a high number and decrement.
        +    my $score = 50000;
        +
        +
        +    # If RESOLVE_RELATIVE is set, we do all the scope relatives before the global.
        +    if ($resolvingFlags & ::RESOLVE_RELATIVE())
        +        {
        +        $score = $self->GenerateRelativeInterpretations($referenceString, $symbol, \@singulars, $scope, $score);
        +        }
        +
        +    # If neither RESOLVE_RELATIVE nor RESOLVE_ABSOLUTE is set, we only do the local before the global.
        +    elsif (!($resolvingFlags & ::RESOLVE_ABSOLUTE()))
        +        {
        +        $self->AddInterpretation($referenceString, NaturalDocs::SymbolString->Join($scope, $symbol), $score);
        +        $score--;
        +
        +        foreach my $singular (@singulars)
        +            {
        +            $self->AddInterpretation($referenceString, NaturalDocs::SymbolString->Join($scope, $singular), $score);
        +            $score--;
        +            };
        +        };
        +
        +
        +    # Do the global.
        +
        +    $self->AddInterpretation($referenceString, $symbol, $score);
        +    $score--;
        +
        +    foreach my $singular (@singulars)
        +        {
        +        $self->AddInterpretation($referenceString, $singular, $score);
        +        $score--;
        +        };
        +
        +
        +    # If neither RESOLVE_RELATIVE nor RESOLVE_ABSOLUTE is set, we need to do the rest of the scope relatives after the global.
        +    if (!($resolvingFlags & ::RESOLVE_RELATIVE()) && !($resolvingFlags & ::RESOLVE_ABSOLUTE()))
        +        {
        +        $score = $self->GenerateRelativeInterpretations($referenceString, $symbol, \@singulars, $scope, $score, 1);
        +        };
        +
        +
        +    # Finally, if RESOLVE_NOUSING isn't set, go through the using scopes.
        +    if (!($resolvingFlags & ::RESOLVE_NOUSING()) && defined $using)
        +        {
        +        foreach my $usingScope (@$using)
        +            {
        +            if ($resolvingFlags & ::RESOLVE_ABSOLUTE())
        +                {
        +                $self->AddInterpretation($referenceString, NaturalDocs::SymbolString->Join($usingScope, $symbol), $score);
        +                $score--;
        +
        +                foreach my $singular (@singulars)
        +                    {
        +                    $self->AddInterpretation($referenceString, NaturalDocs::SymbolString->Join($usingScope, $singular), $score);
        +                    $score--;
        +                    };
        +                }
        +            else
        +                {
        +                $score = $self->GenerateRelativeInterpretations($referenceString, $symbol, \@singulars, $usingScope, $score);
        +                };
        +            };
        +        };
        +    };
        +
        +
        +#
        +#   Function: GenerateRelativeInterpretations
        +#
        +#   Generates the list of relative interpretations for the passed reference and packages.  Also creates potential symbols as
        +#   necessary.
        +#
        +#   This function will _not_ create global interpretations.  It _will_ create a local interpretations (symbol + all packages) unless
        +#   you set dontUseFull.
        +#
        +#   Parameters:
        +#
        +#       referenceString - The <ReferenceString> to generate interpretations for.
        +#       symbol - The <SymbolString> to generate interpretations of.
        +#       singulars - A reference to an array of singular <SymbolStrings> to also generate interpretations of.  Set to an empty array
        +#                       if none.
        +#       package - The package <SymbolString> to use.  May be undef.
        +#       score - The starting score to apply.
        +#       dontUseFull - Whether to not generate an interpretation including the full package identifier.  If set, generated interpretations
        +#                           will start one level down.
        +#
        +#   Returns:
        +#
        +#       The next unused score.  This is basically the passed score minus the number of interpretations created.
        +#
        +sub GenerateRelativeInterpretations #(referenceString, symbol, singulars, package, score, dontUseFull)
        +    {
        +    my ($self, $referenceString, $symbol, $singulars, $package, $score, $dontUseFull) = @_;
        +
        +    my @packages = NaturalDocs::SymbolString->IdentifiersOf($package);
        +
        +    # The last package index to include.  This number is INCLUSIVE!
        +    my $packageLevel = scalar @packages - 1;
        +
        +    if ($dontUseFull)
        +        {  $packageLevel--;  };
        +
        +    while ($packageLevel >= 0)
        +        {
        +        $self->AddInterpretation($referenceString, NaturalDocs::SymbolString->Join(@packages[0..$packageLevel], $symbol),
        +                                             $score);
        +        $score--;
        +
        +        foreach my $singular (@$singulars)
        +            {
        +            $self->AddInterpretation($referenceString, NaturalDocs::SymbolString->Join(@packages[0..$packageLevel], $singular),
        +                                                 $score);
        +            $score--;
        +            };
        +
        +        $packageLevel--;
        +        };
        +
        +    return $score;
        +    };
        +
        +
        +#
        +#   Function: SingularInterpretationsOf
        +#
        +#   Generates singular interpretations of a <SymbolString> if it can be interpreted as a plural.  Not all of them will be valid singular
        +#   forms, but that doesn't matter since it's incredibly unlikely an invalid form would exist as a symbol.  What matters is that the
        +#   legimate singular is present on the list.
        +#
        +#   Parameters:
        +#
        +#       symbol - The <SymbolString>.
        +#
        +#   Returns:
        +#
        +#       An array of potential singular interpretations as <SymbolStrings>, in no particular order.  If the symbol can't be interpreted
        +#       as a plural, returns an empty array.
        +#
        +sub SingularInterpretationsOf #(symbol)
        +    {
        +    my ($self, $symbol) = @_;
        +
        +    my @identifiers = NaturalDocs::SymbolString->IdentifiersOf($symbol);
        +    my $lastIdentifier = pop @identifiers;
        +    my $preIdentifiers = NaturalDocs::SymbolString->Join(@identifiers);
        +
        +    my @results;
        +
        +    # First cut off any 's or ' at the end, since they can appear after other plural forms.
        +    if ($lastIdentifier =~ s/\'s?$//i)
        +        {
        +        push @results, NaturalDocs::SymbolString->Join($preIdentifiers, $lastIdentifier);
        +        };
        +
        +    # See http://www.gsu.edu/~wwwesl/egw/crump.htm for a good list of potential plural forms.  There are a couple more than
        +    # listed below, but they're fairly rare and this is already seriously over-engineered.  This is split by suffix length to make
        +    # comparisons more efficient.
        +
        +    # The fact that this will generate some impossible combinations (leaves => leave, leav, leaf, leafe) doesn't matter.  It's very
        +    # unlikely that more than one will manage to match a defined symbol.  Even if they do (leave, leaf), it's incredibly unlikely
        +    # that someone has defined an impossible one (leav, leafe).  So it's not so important that we remove impossible combinations,
        +    # just that we include all the possible ones.
        +
        +    my @suffixGroups = ( [ 's', undef,  # boys => boy
        +                                       'i', 'us',  # alumni => alumnus
        +                                       'a', 'um', # errata => erratum
        +                                       'a', 'on' ],  # phenomena => phenomenon
        +
        +                                    [ 'es', undef,  # foxes => fox
        +                                      'ae', 'a' ],  # amoebae => amoeba
        +
        +                                    [ 'ies', 'y',  # pennies => penny
        +                                      'ves', 'f',  # calves => calf
        +                                      'ves', 'fe',  # knives => knife
        +                                      'men', 'man',  # women => woman
        +                                      'ice', 'ouse',  # mice => mouse
        +                                      'oes', 'o',  # vetoes => veto
        +                                      'ces', 'x',  # matrices => matrix
        +                                      'xen', 'x' ],  # oxen => ox
        +
        +                                    [ 'ices', 'ex',  # indices => index
        +                                      'feet', 'foot',  # feet => foot
        +                                      'eese', 'oose',  # geese => goose
        +                                      'eeth', 'ooth',  # teeth => tooth
        +                                      'dren', 'd' ] );  # children => child
        +
        +    my $suffixLength = 1;
        +
        +    foreach my $suffixGroup (@suffixGroups)
        +        {
        +        my $identifierSuffix = lc( substr($lastIdentifier, 0 - $suffixLength) );
        +        my $cutIdentifier = substr($lastIdentifier, 0, 0 - $suffixLength);
        +
        +        for (my $i = 0; $i + 1 < scalar @$suffixGroup; $i += 2)
        +            {
        +            my $suffix = $suffixGroup->[$i];
        +            my $replacement = $suffixGroup->[$i + 1];
        +
        +            if ($identifierSuffix eq $suffix)
        +                {
        +                if (defined $replacement)
        +                    {
        +                    push @results, NaturalDocs::SymbolString->Join($preIdentifiers, $cutIdentifier . $replacement);
        +                    push @results, NaturalDocs::SymbolString->Join($preIdentifiers, $cutIdentifier . uc($replacement));
        +                    }
        +                else
        +                    {
        +                    push @results, NaturalDocs::SymbolString->Join($preIdentifiers, $cutIdentifier);
        +                    };
        +                };
        +            };
        +
        +        $suffixLength++;
        +        };
        +
        +    return @results;
        +    };
        +
        +
        +#
        +#   Function: AddInterpretation
        +#
        +#   Adds an interpretation to an existing reference.  Creates potential symbols as necessary.
        +#
        +#   Parameters:
        +#
        +#       referenceString - The <ReferenceString> to add the interpretation to.
        +#       symbol - The <SymbolString> the reference can be interpreted as.
        +#       score - The score of the interpretation.
        +#
        +sub AddInterpretation #(referenceString, symbol, score)
        +    {
        +    my ($self, $referenceString, $symbol, $score) = @_;
        +
        +    $references{$referenceString}->AddInterpretation($symbol, $score);
        +
        +    # Create a potential symbol if it doesn't exist.
        +
        +    if (!exists $symbols{$symbol})
        +        {  $symbols{$symbol} = NaturalDocs::SymbolTable::Symbol->New();  };
        +
        +    $symbols{$symbol}->AddReference($referenceString, $score);
        +    };
        +
        +
        +#
        +#   Function: InterpretReference
        +#
        +#   Interprets the passed reference, matching it to the defined symbol with the highest score.  If the symbol is already
        +#   interpreted, it will reinterpret it.  If there are no matches, it will make it an undefined reference.
        +#
        +#   Parameters:
        +#
        +#       referenceString - The <ReferenceString> to interpret.
        +#
        +sub InterpretReference #(referenceString)
        +    {
        +    my ($self, $referenceString) = @_;
        +
        +    my $interpretation;
        +    my $currentInterpretation;
        +    my $score;
        +    my $currentScore = -1;
        +
        +    my $referenceObject = $references{$referenceString};
        +
        +    my %interpretationsAndScores = $referenceObject->InterpretationsAndScores();
        +    while ( ($interpretation, $score) = each %interpretationsAndScores )
        +        {
        +        if ($score > $currentScore && $symbols{$interpretation}->IsDefined())
        +            {
        +            $currentScore = $score;
        +            $currentInterpretation = $interpretation;
        +            };
        +        };
        +
        +    if ($currentScore > -1)
        +        {  $referenceObject->SetCurrentInterpretation($currentInterpretation);  }
        +    else
        +        {  $referenceObject->SetCurrentInterpretation(undef);  };
        +    };
        +
        +
        +#
        +#   Function: MakeIndex
        +#
        +#   Generates a symbol index.
        +#
        +#   Parameters:
        +#
        +#       type  - The <TopicType> to limit the index to.
        +#
        +#   Returns:
        +#
        +#       An arrayref of sections.  The first represents all the symbols, the second the numbers, and the rest A through Z.
        +#       Each section is a sorted arrayref of <NaturalDocs::SymbolTable::IndexElement> objects.  If a section has no content,
        +#       it will be undef.
        +#
        +sub MakeIndex #(type)
        +    {
        +    my ($self, $type) = @_;
        +
        +
        +    # Go through the symbols and generate IndexElements for any that belong in the index.
        +
        +    # Keys are the symbol strings, values are IndexElements.
        +    my %indexSymbols;
        +
        +    while (my ($symbolString, $object) = each %symbols)
        +        {
        +        my ($symbol, $package) = $self->SplitSymbolForIndex($symbolString, $object->GlobalType());
        +        my @definitions = $object->Definitions();
        +
        +        foreach my $definition (@definitions)
        +            {
        +            my $definitionType = $object->TypeDefinedIn($definition);
        +
        +            if ($type eq ::TOPIC_GENERAL() || $type eq $definitionType)
        +                {
        +                if (!exists $indexSymbols{$symbol})
        +                    {
        +                    $indexSymbols{$symbol} =
        +                        NaturalDocs::SymbolTable::IndexElement->New($symbol, $package, $definition, $definitionType,
        +                                                                                               $object->PrototypeDefinedIn($definition),
        +                                                                                               $object->SummaryDefinedIn($definition) );
        +                    }
        +                else
        +                    {
        +                    $indexSymbols{$symbol}->Merge($package, $definition, $definitionType,
        +                                                                       $object->PrototypeDefinedIn($definition),
        +                                                                       $object->SummaryDefinedIn($definition) );
        +                    };
        +                }; # If type matches
        +            }; # Each definition
        +        }; # Each symbol
        +
        +
        +    # Generate sortable symbols for each IndexElement, sort them internally, and divide them into sections.
        +
        +    my $sections = [ ];
        +
        +    foreach my $indexElement (values %indexSymbols)
        +        {
        +        $indexElement->Sort();
        +        $indexElement->MakeSortableSymbol();
        +
        +        my $sectionNumber;
        +
        +        if ($indexElement->SortableSymbol() =~ /^([a-z])/i)
        +            {  $sectionNumber = ord(lc($1)) - ord('a') + 2;  }
        +        elsif ($indexElement->SortableSymbol() =~ /^[0-9]/)
        +            {  $sectionNumber = 1;  }
        +        else
        +            {  $sectionNumber = 0;  };
        +
        +        if (!defined $sections->[$sectionNumber])
        +            {  $sections->[$sectionNumber] = [ ];  };
        +
        +        push @{$sections->[$sectionNumber]}, $indexElement;
        +        };
        +
        +
        +    # Sort each section.
        +
        +    for (my $i = 0; $i < scalar @$sections; $i++)
        +        {
        +        if (defined $sections->[$i])
        +            {
        +            @{$sections->[$i]} = sort
        +                {
        +                my $result = ::StringCompare($a->SortableSymbol(), $b->SortableSymbol());
        +
        +                if ($result == 0)
        +                    {  $result = ::StringCompare($a->IgnoredPrefix(), $b->IgnoredPrefix());  };
        +
        +                return $result;
        +                }
        +            @{$sections->[$i]};
        +            };
        +        };
        +
        +    return $sections;
        +    };
        +
        +
        +#
        +#   Function: SplitSymbolForIndex
        +#
        +#   Splits a <SymbolString> into its symbol and package portions for indexing.
        +#
        +#   Parameters:
        +#
        +#       symbol - The <SymbolString>.
        +#       type - Its <TopicType>.
        +#
        +#   Returns:
        +#
        +#       The array ( symbol, package ), which are both <SymbolStrings>.  If the symbol is global, package will be undef.
        +#
        +sub SplitSymbolForIndex #(symbol, type)
        +    {
        +    my ($self, $symbol, $type) = @_;
        +
        +    my $scope = NaturalDocs::Topics->TypeInfo($type)->Scope();
        +
        +    if ($scope == ::SCOPE_START() || $scope == ::SCOPE_ALWAYS_GLOBAL())
        +        {  return ( $symbol, undef );  }
        +    else
        +        {
        +        my @identifiers = NaturalDocs::SymbolString->IdentifiersOf($symbol);
        +
        +        $symbol = pop @identifiers;
        +        my $package = NaturalDocs::SymbolString->Join(@identifiers);
        +
        +        return ( $symbol, $package );
        +        };
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SymbolTable/File.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SymbolTable/File.pm
        new file mode 100755
        index 0000000..f07c8c9
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SymbolTable/File.pm
        @@ -0,0 +1,187 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::SymbolTable::File
        +#
        +###############################################################################
        +#
        +#   A class representing a file, keeping track of what symbols and references are defined in it.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::SymbolTable::File;
        +
        +
        +###############################################################################
        +# Group: Implementation
        +
        +#
        +#   Constants: Members
        +#
        +#   The class is implemented as a blessed arrayref.  The following constants are its members.
        +#
        +#       SYMBOLS       - An existence hashref of the <SymbolStrings> it defines.
        +#       REFERENCES  - An existence hashref of the <ReferenceStrings> in the file.
        +#
        +
        +# DEPENDENCY: New() depends on the order of these constants.  If they change, New() has to be updated.
        +use constant SYMBOLS => 0;
        +use constant REFERENCES => 1;
        +
        +
        +###############################################################################
        +# Group: Modification Functions
        +
        +
        +#
        +#   Function: New
        +#
        +#   Creates and returns a new object.
        +#
        +sub New
        +    {
        +    my $package = shift;
        +
        +    # Let's make it safe, since normally you can pass values to New.  Having them just be ignored would be an obscure error.
        +    if (scalar @_)
        +        {  die "You can't pass values to NaturalDocs::SymbolTable::File->New()\n";  };
        +
        +    # DEPENDENCY: This code depends on the order of the member constants.
        +    my $object = [ { }, { } ];
        +    bless $object, $package;
        +
        +    return $object;
        +    };
        +
        +
        +#
        +#   Function: AddSymbol
        +#
        +#   Adds a <SymbolString> definition.
        +#
        +#   Parameters:
        +#
        +#       symbol - The <SymbolString> being added.
        +#
        +sub AddSymbol #(symbol)
        +    {
        +    my ($self, $symbol) = @_;
        +    $self->[SYMBOLS]{$symbol} = 1;
        +    };
        +
        +
        +#
        +#   Function: DeleteSymbol
        +#
        +#   Removes a <SymbolString> definition.
        +#
        +#   Parameters:
        +#
        +#       symbol - The <SymbolString> to delete.
        +#
        +sub DeleteSymbol #(symbol)
        +    {
        +    my ($self, $symbol) = @_;
        +    delete $self->[SYMBOLS]{$symbol};
        +    };
        +
        +
        +#
        +#   Function: AddReference
        +#
        +#   Adds a reference definition.
        +#
        +#   Parameters:
        +#
        +#       referenceString - The <ReferenceString> being added.
        +#
        +sub AddReference #(referenceString)
        +    {
        +    my ($self, $referenceString) = @_;
        +    $self->[REFERENCES]{$referenceString} = 1;
        +    };
        +
        +
        +#
        +#   Function: DeleteReference
        +#
        +#   Removes a reference definition.
        +#
        +#   Parameters:
        +#
        +#       referenceString - The <ReferenceString> to delete.
        +#
        +sub DeleteReference #(referenceString)
        +    {
        +    my ($self, $referenceString) = @_;
        +    delete $self->[REFERENCES]{$referenceString};
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Information Functions
        +
        +
        +#
        +#   Function: HasAnything
        +#
        +#   Returns whether the file has any symbol or reference definitions at all.
        +#
        +sub HasAnything
        +    {
        +    return (scalar keys %{$_[0]->[SYMBOLS]} || scalar keys %{$_[0]->[REFERENCES]});
        +    };
        +
        +#
        +#   Function: Symbols
        +#
        +#   Returns an array of all the <SymbolStrings> defined in this file.  If none, returns an empty array.
        +#
        +sub Symbols
        +    {
        +    return keys %{$_[0]->[SYMBOLS]};
        +    };
        +
        +
        +#
        +#   Function: References
        +#
        +#   Returns an array of all the <ReferenceStrings> defined in this file.  If none, returns an empty array.
        +#
        +sub References
        +    {
        +    return keys %{$_[0]->[REFERENCES]};
        +    };
        +
        +
        +#
        +#   Function: DefinesSymbol
        +#
        +#   Returns whether the file defines the passed <SymbolString> or not.
        +#
        +sub DefinesSymbol #(symbol)
        +    {
        +    my ($self, $symbol) = @_;
        +    return exists $self->[SYMBOLS]{$symbol};
        +    };
        +
        +
        +#
        +#   Function: DefinesReference
        +#
        +#   Returns whether the file defines the passed <ReferenceString> or not.
        +#
        +sub DefinesReference #(referenceString)
        +    {
        +    my ($self, $referenceString) = @_;
        +    return exists $self->[REFERENCES]{$referenceString};
        +    };
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SymbolTable/IndexElement.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SymbolTable/IndexElement.pm
        new file mode 100755
        index 0000000..ee6a9e8
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SymbolTable/IndexElement.pm
        @@ -0,0 +1,523 @@
        +###############################################################################
        +#
        +#   Class: NaturalDocs::SymbolTable::IndexElement
        +#
        +###############################################################################
        +#
        +#   A class representing part of an indexed symbol.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use Tie::RefHash;
        +
        +use strict;
        +use integer;
        +
        +
        +package NaturalDocs::SymbolTable::IndexElement;
        +
        +
        +#
        +#   Topic: How IndexElements Work
        +#
        +#   This is a little tricky, so make sure you understand this.  Indexes are sorted by symbol, then packages, then file.  If there is only
        +#   one package for a symbol, or one file definition for a package/symbol, they are added inline to the entry.  However, if there are
        +#   multiple packages or files, the function for it returns an arrayref of IndexElements instead.  Which members are defined and
        +#   undefined should follow common sense.  For example, if a symbol is defined in multiple packages, the symbol's IndexElement
        +#   will not define <File()>, <Type()>, or <Prototype()>; those will be defined in child elements.  Similarly, the child elements will
        +#   not define <Symbol()> since it's redundant.
        +#
        +#   Diagrams may be clearer.  If a member isn't listed for an element, it isn't defined.
        +#
        +#   A symbol that only has one package and file:
        +#   > [Element]
        +#   > - Symbol
        +#   > - Package
        +#   > - File
        +#   > - Type
        +#   > - Prototype
        +#   > - Summary
        +#
        +#   A symbol that is defined by multiple packages, each with only one file:
        +#   > [Element]
        +#   > - Symbol
        +#   > - Package
        +#   >     [Element]
        +#   >     - Package
        +#   >     - File
        +#   >     - Type
        +#   >     - Prototype
        +#   >     - Summary
        +#   >     [Element]
        +#   >     - ...
        +#
        +#   A symbol that is defined by one package, but has multiple files
        +#   > [Element]
        +#   > - Symbol
        +#   > - Package
        +#   > - File
        +#   >    [Element]
        +#   >    - File
        +#   >    - Type
        +#   >    - Protype
        +#   >    - Summary
        +#   >    [Element]
        +#   >    - ...
        +#
        +#   A symbol that is defined by multiple packages which have multiple files:
        +#   > [Element]
        +#   > - Symbol
        +#   > - Package
        +#   >    [Element]
        +#   >    - Package
        +#   >    - File
        +#   >      [Element]
        +#   >      - File
        +#   >      - Type
        +#   >      - Prototype
        +#   >      - Summary
        +#   >      [Element]
        +#   >      - ...
        +#   >    [Element]
        +#   >    - ...
        +#
        +#   Why is it done this way?:
        +#
        +#   Because it makes it easier to generate nice indexes since all the splitting and combining is done for you.  If a symbol
        +#   has only one package, you just want to link to it, you don't want to break out a subindex for just one package.  However, if
        +#   it has multiple package, you do want the subindex and to link to each one individually.  Use <HasMultiplePackages()> and
        +#   <HasMultipleFiles()> to determine whether you need to add a subindex for it.
        +#
        +#
        +#   Combining Properties:
        +#
        +#   All IndexElements also have combining properties set.
        +#
        +#   CombinedType - The general <TopicType> of the entry.  Conflicts combine into <TOPIC_GENERAL>.
        +#   PackageSeparator - The package separator symbol of the entry.  Conflicts combine into a dot.
        +#
        +#   So if an IndexElement only has one definition, <CombinedType()> is the same as the <TopicType> and <PackageSeparator()>
        +#   is that of the definition's language.  If other definitions are added and they have the same properties, the combined properties
        +#   will remain the same.  However, if they're different, they switch values as noted above.
        +#
        +#
        +#   Sortable Symbol:
        +#
        +#   <SortableSymbol()> is a pseudo-combining property.  There were a few options for dealing with multiple languages defining
        +#   the same symbol but stripping different prefixes off it, but ultimately I decided to go with whatever the language does that
        +#   has the most definitions.  There's not likely to be many conflicts here in the real world; probably the only thing would be
        +#   defining it in a text file and forgetting to specify the prefixes to strip there too.  So this works.
        +#
        +#   Ties are broken pretty much randomly, except that text files always lose if its one of the options.
        +#
        +#   It's a pseudo-combining property because it's done after the IndexElements are all filled in and only stored in the top-level
        +#   ones.
        +#
        +
        +
        +###############################################################################
        +# Group: Implementation
        +
        +#
        +#   Constants: Members
        +#
        +#   The class is implemented as a blessed arrayref.  The following constants are its members.
        +#
        +#   SYMBOL - The <SymbolString> without the package portion.
        +#   PACKAGE - The package <SymbolString>.  Will be a package <SymbolString>, undef for global, or an arrayref of
        +#                    <NaturalDocs::SymbolTable::IndexElement> objects if multiple packages define the symbol.
        +#   FILE - The <FileName> the package/symbol is defined in.  Will be the file name or an arrayref of
        +#            <NaturalDocs::SymbolTable::IndexElements> if multiple files define the package/symbol.
        +#   TYPE - The package/symbol/file <TopicType>.
        +#   PROTOTYPE - The package/symbol/file prototype, or undef if not applicable.
        +#   SUMMARY - The package/symbol/file summary, or undef if not applicable.
        +#   COMBINED_TYPE - The combined <TopicType> of the element.
        +#   PACKAGE_SEPARATOR - The combined package separator symbol of the element.
        +#   SORTABLE_SYMBOL - The sortable symbol as a text string.
        +#   IGNORED_PREFIX - The part of the symbol that was stripped off to make the sortable symbol.
        +#
        +use NaturalDocs::DefineMembers 'SYMBOL', 'Symbol()',
        +                                                 'PACKAGE', 'Package()',
        +                                                 'FILE', 'File()',
        +                                                 'TYPE', 'Type()',
        +                                                 'PROTOTYPE', 'Prototype()',
        +                                                 'SUMMARY', 'Summary()',
        +                                                 'COMBINED_TYPE', 'CombinedType()',
        +                                                 'PACKAGE_SEPARATOR', 'PackageSeparator()',
        +                                                 'SORTABLE_SYMBOL', 'SortableSymbol()',
        +                                                 'IGNORED_PREFIX', 'IgnoredPrefix()';
        +# DEPENDENCY: New() depends on the order of these constants and that there is no inheritance..
        +
        +
        +###############################################################################
        +# Group: Modification Functions
        +
        +#
        +#   Function: New
        +#
        +#   Returns a new object.
        +#
        +#   This should only be used for creating an entirely new symbol.  You should *not* pass arrayrefs as package or file parameters
        +#   if you are calling this externally.  Use <Merge()> instead.
        +#
        +#   Parameters:
        +#
        +#       symbol  - The <SymbolString> without the package portion.
        +#       package - The package <SymbolString>, or undef for global.
        +#       file  - The symbol's definition file.
        +#       type  - The symbol's <TopicType>.
        +#       prototype  - The symbol's prototype, if applicable.
        +#       summary  - The symbol's summary, if applicable.
        +#
        +#   Optional Parameters:
        +#
        +#       These parameters don't need to be specified.  You should ignore them when calling this externally.
        +#
        +#       combinedType - The symbol's combined <TopicType>.
        +#       packageSeparator - The symbol's combined package separator symbol.
        +#
        +sub New #(symbol, package, file, type, prototype, summary, combinedType, packageSeparator)
        +    {
        +    # DEPENDENCY: This depends on the parameter list being in the same order as the constants.
        +
        +    my $self = shift;
        +
        +    my $object = [ @_ ];
        +    bless $object, $self;
        +
        +    if (!defined $object->[COMBINED_TYPE])
        +        {  $object->[COMBINED_TYPE] = $object->[TYPE];  };
        +
        +    if (!defined $object->[PACKAGE_SEPARATOR])
        +        {
        +        if ($object->[TYPE] eq ::TOPIC_FILE())
        +            {  $object->[PACKAGE_SEPARATOR] = '.';  }
        +        else
        +            {
        +            $object->[PACKAGE_SEPARATOR] = NaturalDocs::Languages->LanguageOf($object->[FILE])->PackageSeparator();
        +            };
        +        };
        +
        +    return $object;
        +    };
        +
        +
        +#
        +#   Function: Merge
        +#
        +#   Adds another definition of the same symbol.  Perhaps it has a different package or defining file.
        +#
        +#   Parameters:
        +#
        +#       package - The package <SymbolString>, or undef for global.
        +#       file  - The symbol's definition file.
        +#       type  - The symbol's <TopicType>.
        +#       prototype  - The symbol's protoype if applicable.
        +#       summary  - The symbol's summary if applicable.
        +#
        +sub Merge #(package, file, type, prototype, summary)
        +    {
        +    my ($self, $package, $file, $type, $prototype, $summary) = @_;
        +
        +    # If there's only one package...
        +    if (!$self->HasMultiplePackages())
        +        {
        +        # If there's one package and it's the same as the new one...
        +        if ($package eq $self->Package())
        +            {
        +            $self->MergeFile($file, $type, $prototype, $summary);
        +            }
        +
        +        # If there's one package and the new one is different...
        +        else
        +            {
        +            my $selfDefinition = NaturalDocs::SymbolTable::IndexElement->New(undef, $self->Package(), $self->File(),
        +                                                                                                                 $self->Type(), $self->Prototype(),
        +                                                                                                                 $self->Summary(), $self->CombinedType(),
        +                                                                                                                 $self->PackageSeparator());
        +            my $newDefinition = NaturalDocs::SymbolTable::IndexElement->New(undef, $package, $file, $type, $prototype,
        +                                                                                                                  $summary);
        +
        +            $self->[PACKAGE] = [ $selfDefinition, $newDefinition ];
        +            $self->[FILE] = undef;
        +            $self->[TYPE] = undef;
        +            $self->[PROTOTYPE] = undef;
        +            $self->[SUMMARY] = undef;
        +
        +            if ($newDefinition->Type() ne $self->CombinedType())
        +                {  $self->[COMBINED_TYPE] = ::TOPIC_GENERAL();  };
        +            if ($newDefinition->PackageSeparator() ne $self->PackageSeparator())
        +                {  $self->[PACKAGE_SEPARATOR] = '.';  };
        +            };
        +        }
        +
        +    # If there's more than one package...
        +    else
        +        {
        +        # See if the new package is one of them.
        +        my $selfPackages = $self->Package();
        +        my $matchingPackage;
        +
        +        foreach my $testPackage (@$selfPackages)
        +            {
        +            if ($package eq $testPackage->Package())
        +                {
        +                $testPackage->MergeFile($file, $type, $prototype, $summary);;
        +                return;
        +                };
        +            };
        +
        +        my $newDefinition = NaturalDocs::SymbolTable::IndexElement->New(undef, $package, $file, $type, $prototype,
        +                                                                                                              $summary);
        +        push @{$self->[PACKAGE]}, $newDefinition;
        +
        +        if ($newDefinition->Type() ne $self->CombinedType())
        +            {  $self->[COMBINED_TYPE] = ::TOPIC_GENERAL();  };
        +        if ($newDefinition->PackageSeparator() ne $self->PackageSeparator())
        +            {  $self->[PACKAGE_SEPARATOR] = '.';  };
        +        };
        +    };
        +
        +
        +#
        +#   Function: Sort
        +#
        +#   Sorts the package and file lists of the symbol.
        +#
        +sub Sort
        +    {
        +    my $self = shift;
        +
        +    if ($self->HasMultipleFiles())
        +        {
        +        @{$self->[FILE]} = sort { ::StringCompare($a->File(), $b->File()) } @{$self->File()};
        +        }
        +
        +    elsif ($self->HasMultiplePackages())
        +        {
        +        @{$self->[PACKAGE]} = sort { ::StringCompare( $a->Package(), $b->Package()) } @{$self->[PACKAGE]};
        +
        +        foreach my $packageElement ( @{$self->[PACKAGE]} )
        +            {
        +            if ($packageElement->HasMultipleFiles())
        +                {  $packageElement->Sort();  };
        +            };
        +        };
        +    };
        +
        +
        +#
        +#   Function: MakeSortableSymbol
        +#
        +#   Generates <SortableSymbol()> and <IgnoredPrefix()>.  Should only be called after everything is merged.
        +#
        +sub MakeSortableSymbol
        +    {
        +    my $self = shift;
        +
        +    my $finalLanguage;
        +
        +    if ($self->HasMultiplePackages() || $self->HasMultipleFiles())
        +        {
        +        # Collect all the files that define this symbol.
        +
        +        my @files;
        +
        +        if ($self->HasMultipleFiles())
        +            {
        +            my $fileElements = $self->File();
        +
        +            foreach my $fileElement (@$fileElements)
        +                {  push @files, $fileElement->File();  };
        +            }
        +        else # HasMultiplePackages
        +            {
        +            my $packages = $self->Package();
        +
        +            foreach my $package (@$packages)
        +                {
        +                if ($package->HasMultipleFiles())
        +                    {
        +                    my $fileElements = $package->File();
        +
        +                    foreach my $fileElement (@$fileElements)
        +                        {  push @files, $fileElement->File();  };
        +                    }
        +                else
        +                    {  push @files, $package->File();  };
        +                };
        +            };
        +
        +
        +        # Determine which language defines it the most.
        +
        +        # Keys are language objects, values are counts.
        +        my %languages;
        +        tie %languages, 'Tie::RefHash';
        +
        +        foreach my $file (@files)
        +            {
        +            my $language = NaturalDocs::Languages->LanguageOf($file);
        +
        +            if (exists $languages{$language})
        +                {  $languages{$language}++;  }
        +            else
        +                {  $languages{$language} = 1;  };
        +            };
        +
        +        my $topCount = 0;
        +        my @topLanguages;
        +
        +        while (my ($language, $count) = each %languages)
        +            {
        +            if ($count > $topCount)
        +                {
        +                $topCount = $count;
        +                @topLanguages = ( $language );
        +                }
        +            elsif ($count == $topCount)
        +                {
        +                push @topLanguages, $language;
        +                };
        +            };
        +
        +        if (scalar @topLanguages == 1)
        +            {  $finalLanguage = $topLanguages[0];  }
        +        else
        +            {
        +            if ($topLanguages[0]->Name() ne 'Text File')
        +                {  $finalLanguage = $topLanguages[0];  }
        +            else
        +                {  $finalLanguage = $topLanguages[1];  };
        +            };
        +        }
        +
        +    else # !hasMultiplePackages && !hasMultipleFiles
        +        {  $finalLanguage = NaturalDocs::Languages->LanguageOf($self->File());  };
        +
        +    my $textSymbol = NaturalDocs::SymbolString->ToText($self->Symbol(), $self->PackageSeparator());
        +    my $ignoredPrefixLength = $finalLanguage->IgnoredPrefixLength($textSymbol, $self->CombinedType());
        +
        +    if ($ignoredPrefixLength)
        +        {
        +        $self->[IGNORED_PREFIX] = substr($textSymbol, 0, $ignoredPrefixLength);
        +        $self->[SORTABLE_SYMBOL] = substr($textSymbol, $ignoredPrefixLength);
        +        }
        +    else
        +        {  $self->[SORTABLE_SYMBOL] = $textSymbol;  };
        +    };
        +
        +
        +
        +###############################################################################
        +#
        +#   Functions: Information Functions
        +#
        +#   Symbol - Returns the <SymbolString> without the package portion.
        +#   Package - If <HasMultiplePackages()> is true, returns an arrayref of <NaturalDocs::SymbolTable::IndexElement> objects.
        +#                  Otherwise returns the package <SymbolString>, or undef if global.
        +#   File - If <HasMultipleFiles()> is true, returns an arrayref of <NaturalDocs::SymbolTable::IndexElement> objects.  Otherwise
        +#           returns the name of the definition file.
        +#   Type - Returns the <TopicType> of the package/symbol/file, if applicable.
        +#   Prototype - Returns the prototype of the package/symbol/file, if applicable.
        +#   Summary - Returns the summary of the package/symbol/file, if applicable.
        +#   CombinedType - Returns the combined <TopicType> of the element.
        +#   PackageSeparator - Returns the combined package separator symbol of the element.
        +#   SortableSymbol - Returns the sortable symbol as a text string.  Only available after calling <MakeSortableSymbol()>.
        +#   IgnoredPrefix - Returns the part of the symbol that was stripped off to make the <SortableSymbol()>, or undef if none.
        +#                          Only available after calling <MakeSortableSymbol()>.
        +#
        +
        +#   Function: HasMultiplePackages
        +#   Returns whether <Packages()> is broken out into more elements.
        +sub HasMultiplePackages
        +    {  return ref($_[0]->[PACKAGE]);  };
        +
        +#   Function: HasMultipleFiles
        +#   Returns whether <File()> is broken out into more elements.
        +sub HasMultipleFiles
        +    {  return ref($_[0]->[FILE]);  };
        +
        +
        +
        +
        +
        +
        +###############################################################################
        +# Group: Support Functions
        +
        +#
        +#   Function: MergeFile
        +#
        +#   Adds another definition of the same package/symbol.  Perhaps the file is different.
        +#
        +#   Parameters:
        +#
        +#       file  - The package/symbol's definition file.
        +#       type  - The package/symbol's <TopicType>.
        +#       prototype  - The package/symbol's protoype if applicable.
        +#       summary  - The package/symbol's summary if applicable.
        +#
        +sub MergeFile #(file, type, prototype, summary)
        +    {
        +    my ($self, $file, $type, $prototype, $summary) = @_;
        +
        +    # If there's only one file...
        +    if (!$self->HasMultipleFiles())
        +        {
        +        # If there's one file and it's the different from the new one...
        +        if ($file ne $self->File())
        +            {
        +            my $selfDefinition = NaturalDocs::SymbolTable::IndexElement->New(undef, undef, $self->File(), $self->Type(),
        +                                                                                                                 $self->Prototype(), $self->Summary(),
        +                                                                                                                 $self->CombinedType(),
        +                                                                                                                 $self->PackageSeparator());
        +            my $newDefinition = NaturalDocs::SymbolTable::IndexElement->New(undef, undef, $file, $type, $prototype,
        +                                                                                                                  $summary);
        +
        +            $self->[FILE] = [ $selfDefinition, $newDefinition ];
        +            $self->[TYPE] = undef;
        +            $self->[PROTOTYPE] = undef;
        +            $self->[SUMMARY] = undef;
        +
        +            if ($newDefinition->Type() ne $self->CombinedType())
        +                {  $self->[COMBINED_TYPE] = ::TOPIC_GENERAL();  };
        +            if ($newDefinition->PackageSeparator() ne $self->PackageSeparator())
        +                {  $self->[PACKAGE_SEPARATOR] = '.';  };
        +            }
        +
        +        # If the file was the same, just ignore the duplicate in the index.
        +        }
        +
        +    # If there's more than one file...
        +    else
        +        {
        +        # See if the new file is one of them.
        +        my $files = $self->File();
        +
        +        foreach my $testElement (@$files)
        +            {
        +            if ($testElement->File() eq $file)
        +                {
        +                # If the new file's already in the index, ignore the duplicate.
        +                return;
        +                };
        +            };
        +
        +        my $newDefinition = NaturalDocs::SymbolTable::IndexElement->New(undef, undef, $file, $type, $prototype,
        +                                                                                                              $summary);
        +        push @{$self->[FILE]}, $newDefinition;
        +
        +        if ($newDefinition->Type() ne $self->CombinedType())
        +            {  $self->[COMBINED_TYPE] = ::TOPIC_GENERAL();  };
        +        if ($newDefinition->PackageSeparator() ne $self->PackageSeparator())
        +            {  $self->[PACKAGE_SEPARATOR] = '.';  };
        +        };
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SymbolTable/Reference.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SymbolTable/Reference.pm
        new file mode 100755
        index 0000000..fd5ef70
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SymbolTable/Reference.pm
        @@ -0,0 +1,274 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::SymbolTable::Reference
        +#
        +###############################################################################
        +#
        +#   A class representing a symbol or a potential symbol.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::SymbolTable::Reference;
        +
        +
        +###############################################################################
        +# Group: Implementation
        +
        +#
        +#   Constants: Members
        +#
        +#   The class is implemented as a blessed arrayref.  The following constants are its members.
        +#
        +#       DEFINITIONS                        - An existence hashref of the <FileNames> that define this reference.
        +#       INTERPRETATIONS                - A hashref of the possible interpretations of this reference.  The keys are the <SymbolStrings>
        +#                                                     and the values are the scores.
        +#       CURRENT_INTERPRETATION  - The interpretation currently used as the reference target.  It will be the interpretation with
        +#                                                     the highest score that is actually defined.  If none are defined, this item will be undef.
        +#
        +
        +# DEPENDENCY: New() depends on the order of these constants.  If they change, New() has to be updated.
        +use constant DEFINITIONS => 0;
        +use constant INTERPRETATIONS => 1;
        +use constant CURRENT_INTERPRETATION => 2;
        +
        +
        +###############################################################################
        +# Group: Modification Functions
        +
        +
        +#
        +#   Function: New
        +#
        +#   Creates and returns a new object.
        +#
        +sub New
        +    {
        +    my $package = shift;
        +
        +    # Let's make it safe, since normally you can pass values to New.  Having them just be ignored would be an obscure error.
        +    if (scalar @_)
        +        {  die "You can't pass values to NaturalDocs::SymbolTable::Reference->New()\n";  };
        +
        +    # DEPENDENCY: This code depends on the order of the member constants.
        +    my $object = [ { }, { }, undef ];
        +    bless $object, $package;
        +
        +    return $object;
        +    };
        +
        +
        +#
        +#   Function: AddDefinition
        +#
        +#   Adds a reference definition.
        +#
        +#   Parameters:
        +#
        +#       file   - The <FileName> that defines the reference.
        +#
        +sub AddDefinition #(file)
        +    {
        +    my ($self, $file) = @_;
        +
        +    $self->[DEFINITIONS]{$file} = 1;
        +    };
        +
        +
        +#
        +#   Function: DeleteDefinition
        +#
        +#   Removes a reference definition.
        +#
        +#   Parameters:
        +#
        +#       file - The <FileName> which has the definition to delete.
        +#
        +sub DeleteDefinition #(file)
        +    {
        +    my ($self, $file) = @_;
        +
        +    delete $self->[DEFINITIONS]{$file};
        +    };
        +
        +
        +#
        +#   Function: AddInterpretation
        +#
        +#   Adds a symbol that this reference can be interpreted as.
        +#
        +#   Parameters:
        +#
        +#       symbol  - The <SymbolString>.
        +#       score     - The score of this interpretation.
        +#
        +sub AddInterpretation #(symbol, score)
        +    {
        +    my ($self, $symbol, $score) = @_;
        +
        +    $self->[INTERPRETATIONS]{$symbol} = $score;
        +    };
        +
        +
        +#
        +#   Function: DeleteInterpretation
        +#
        +#   Deletes a symbol that this reference can be interpreted as.
        +#
        +#   Parameters:
        +#
        +#       symbol - The <SymbolString> to delete.
        +#
        +sub DeleteInterpretation #(symbol)
        +    {
        +    my ($self, $symbol) = @_;
        +
        +    delete $self->[INTERPRETATIONS]{$symbol};
        +    };
        +
        +
        +#
        +#   Function: DeleteAllInterpretationsButCurrent
        +#
        +#   Deletes all interpretations except for the current one.
        +#
        +sub DeleteAllInterpretationsButCurrent
        +    {
        +    my $self = shift;
        +
        +    if ($self->HasCurrentInterpretation())
        +        {
        +        my $score = $self->CurrentScore();
        +
        +        # Fastest way to clear a hash except for one item?  Make a new hash with just that item.
        +        %{$self->[INTERPRETATIONS]} = ( $self->[CURRENT_INTERPRETATION] => $score );
        +        };
        +    };
        +
        +
        +#
        +#   Function: SetCurrentInterpretation
        +#
        +#   Changes the current interpretation.  The new one must already have been added via <AddInterpretation()>.
        +#
        +#   Parameters:
        +#
        +#       symbol - The <SymbolString>l to make the current interpretation.  Can be set to undef to clear it.
        +#
        +sub SetCurrentInterpretation #(symbol)
        +    {
        +    my ($self, $symbol) = @_;
        +
        +    $self->[CURRENT_INTERPRETATION] = $symbol;
        +    };
        +
        +
        +###############################################################################
        +# Group: Information Functions
        +
        +
        +#
        +#   Function: Definitions
        +#
        +#   Returns an array of all the <FileNames> that define this reference.  If none do, returns an empty array.
        +#
        +sub Definitions
        +    {
        +    return keys %{$_[0]->[DEFINITIONS]};
        +    };
        +
        +
        +#
        +#   Function: IsDefined
        +#
        +#   Returns whether the reference has any definitions or not.
        +#
        +sub IsDefined
        +    {
        +    return scalar keys %{$_[0]->[DEFINITIONS]};
        +    };
        +
        +
        +#
        +#   Function: IsDefinedIn
        +#
        +#   Returns whether the reference is defined in the passed <FileName>.
        +#
        +sub IsDefinedIn #(file)
        +    {
        +    my ($self, $file) = @_;
        +
        +    return exists $self->[DEFINITIONS]{$file};
        +    };
        +
        +
        +#
        +#   Function: Interpretations
        +#
        +#   Returns an array of all the <SymbolStrings> that this reference can be interpreted as.  If none, returns an empty array.
        +#
        +sub Interpretations
        +    {
        +    return keys %{$_[0]->[INTERPRETATIONS]};
        +    };
        +
        +
        +#
        +#   Function: InterpretationsAndScores
        +#
        +#   Returns a hash of all the <SymbolStrings> that this reference can be interpreted as and their scores.  The keys are the <SymbolStrings>
        +#   and the values are the scores.  If none, returns an empty hash.
        +#
        +sub InterpretationsAndScores
        +    {
        +    return %{$_[0]->[INTERPRETATIONS]};
        +    };
        +
        +
        +#
        +#   Function: HasCurrentInterpretation
        +#
        +#   Returns whether the reference has a current interpretation or not.
        +#
        +sub HasCurrentInterpretation
        +    {
        +    return defined $_[0]->[CURRENT_INTERPRETATION];
        +    };
        +
        +
        +#
        +#   Function: CurrentInterpretation
        +#
        +#   Returns the <SymbolString> of the current interpretation, or undef if none.
        +#
        +sub CurrentInterpretation
        +    {
        +    return $_[0]->[CURRENT_INTERPRETATION];
        +    };
        +
        +
        +#
        +#   Function: CurrentScore
        +#
        +#   Returns the score of the current interpretation, or undef if none.
        +#
        +sub CurrentScore
        +    {
        +    my $self = shift;
        +
        +    if (defined $self->[CURRENT_INTERPRETATION])
        +        {
        +        return $self->[INTERPRETATIONS]{ $self->[CURRENT_INTERPRETATION] };
        +        }
        +    else
        +        {  return undef;  };
        +    };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SymbolTable/ReferenceTarget.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SymbolTable/ReferenceTarget.pm
        new file mode 100755
        index 0000000..4f9ee40
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SymbolTable/ReferenceTarget.pm
        @@ -0,0 +1,98 @@
        +###############################################################################
        +#
        +#   Class: NaturalDocs::SymbolTable::ReferenceTarget
        +#
        +###############################################################################
        +#
        +#   A class for storing information about a reference target.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::SymbolTable::ReferenceTarget;
        +
        +
        +###############################################################################
        +# Group: Implementation
        +
        +#
        +#   Constants: Members
        +#
        +#   The class is implemented as a blessed arrayref.  The following constants are its members.
        +#
        +#       SYMBOL  - The target <SymbolString>.
        +#       FILE        - The <FileName> the target is defined in.
        +#       TYPE       - The target <TopicType>.
        +#       PROTOTYPE - The target's prototype, or undef if none.
        +#       SUMMARY    - The target's summary, or undef if none.
        +#
        +
        +# DEPENDENCY: New() depends on the order of these constants.  If they change, New() has to be updated.
        +use constant SYMBOL => 0;
        +use constant FILE => 1;
        +use constant TYPE => 2;
        +use constant PROTOTYPE => 3;
        +use constant SUMMARY => 4;
        +
        +###############################################################################
        +# Group: Functions
        +
        +
        +#
        +#   Function: New
        +#
        +#   Creates and returns a new object.
        +#
        +#   Parameters:
        +#
        +#       symbol - The target <SymbolString>.
        +#       file       - The <FileName> the target is defined in.
        +#       type     - The <TopicType> of the target symbol.
        +#       prototype - The target's prototype.  Set to undef if not defined or not applicable.
        +#       summary - The target's summary.  Set to undef if not defined or not applicable.
        +#
        +sub New #(symbol, file, type, prototype, summary)
        +    {
        +    # DEPENDENCY: This code depends on the order of the member constants.
        +
        +    my $package = shift;
        +
        +    my $object = [ @_ ];
        +    bless $object, $package;
        +
        +    return $object;
        +    };
        +
        +
        +# Function: Symbol
        +# Returns the target's <SymbolString>.
        +sub Symbol
        +    {  return $_[0]->[SYMBOL];  };
        +
        +# Function: File
        +# Returns the <FileName> the target is defined in.
        +sub File
        +    {  return $_[0]->[FILE];  };
        +
        +# Function: Type
        +# Returns the target's <TopicType>.
        +sub Type
        +    {  return $_[0]->[TYPE];  };
        +
        +# Function: Prototype
        +# Returns the target's prototype, or undef if not defined or not applicable.
        +sub Prototype
        +    {  return $_[0]->[PROTOTYPE];  };
        +
        +# Function: Summary
        +# Returns the target's summary, or undef if not defined or not applicable.
        +sub Summary
        +    {  return $_[0]->[SUMMARY];  };
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SymbolTable/Symbol.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SymbolTable/Symbol.pm
        new file mode 100755
        index 0000000..83a7148
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SymbolTable/Symbol.pm
        @@ -0,0 +1,429 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::SymbolTable::Symbol
        +#
        +###############################################################################
        +#
        +#   A class representing a symbol or a potential symbol.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::SymbolTable::Symbol;
        +
        +
        +###############################################################################
        +# Group: Implementation
        +
        +#
        +#   Constants: Members
        +#
        +#   The class is implemented as a blessed arrayref.  The following constants are its members.
        +#
        +#       DEFINITIONS             - A hashref of all the files which define this symbol.  The keys are the <FileNames>, and the values are
        +#                                         <NaturalDocs::SymbolTable::SymbolDefinition> objects.  If no files define this symbol, this item will
        +#                                          be undef.
        +#       GLOBAL_DEFINITION  - The <FileName> which defines the global version of the symbol, which is what is used if
        +#                                          a file references the symbol but does not have its own definition.  If there are no definitions, this
        +#                                          item will be undef.
        +#       REFERENCES              - A hashref of the references that can be interpreted as this symbol.  This doesn't mean these
        +#                                          references necessarily are.  The keys are the reference strings, and the values are the scores of
        +#                                          the interpretations.  If no references can be interpreted as this symbol, this item will be undef.
        +#
        +use constant DEFINITIONS => 0;
        +use constant GLOBAL_DEFINITION => 1;
        +use constant REFERENCES => 2;
        +
        +
        +###############################################################################
        +# Group: Modification Functions
        +
        +#
        +#   Function: New
        +#
        +#   Creates and returns a new object.
        +#
        +sub New
        +    {
        +    my $package = shift;
        +
        +    # Let's make it safe, since normally you can pass values to New.  Having them just be ignored would be an obscure error.
        +    if (scalar @_)
        +        {  die "You can't pass values to NaturalDocs::SymbolTable::Symbol->New()\n";  };
        +
        +    my $object = [ undef, undef, undef ];
        +    bless $object, $package;
        +
        +    return $object;
        +    };
        +
        +#
        +#   Function: AddDefinition
        +#
        +#   Adds a symbol definition.  If this is the first definition for this symbol, it will become the global definition.  If the definition
        +#   already exists for the file, it will be ignored.
        +#
        +#   Parameters:
        +#
        +#       file   - The <FileName> that defines the symbol.
        +#       type - The <TopicType> of the definition.
        +#       prototype - The prototype of the definition, if applicable.  Undef otherwise.
        +#       summary - The summary for the definition, if applicable.  Undef otherwise.
        +#
        +#   Returns:
        +#
        +#       Whether this provided the first definition for this symbol.
        +#
        +sub AddDefinition #(file, type, prototype, summary)
        +    {
        +    my ($self, $file, $type, $prototype, $summary) = @_;
        +
        +    my $isFirst;
        +
        +    if (!defined $self->[DEFINITIONS])
        +        {
        +        $self->[DEFINITIONS] = { };
        +        $self->[GLOBAL_DEFINITION] = $file;
        +        $isFirst = 1;
        +        };
        +
        +    if (!exists $self->[DEFINITIONS]{$file})
        +        {
        +        $self->[DEFINITIONS]{$file} = NaturalDocs::SymbolTable::SymbolDefinition->New($type, $prototype, $summary);
        +        };
        +
        +    return $isFirst;
        +    };
        +
        +
        +#
        +#   Function: ChangeDefinition
        +#
        +#   Changes the information about an existing definition.
        +#
        +#   Parameters:
        +#
        +#       file   - The <FileName> that defines the symbol.  Must exist.
        +#       type - The new <TopicType> of the definition.
        +#       prototype - The new prototype of the definition, if applicable.  Undef otherwise.
        +#       summary - The new summary of the definition, if applicable.  Undef otherwise.
        +#
        +sub ChangeDefinition #(file, type, prototype, summary)
        +    {
        +    my ($self, $file, $type, $prototype, $summary) = @_;
        +
        +    if (defined $self->[DEFINITIONS] &&
        +        exists $self->[DEFINITIONS]{$file})
        +        {
        +        $self->[DEFINITIONS]{$file}->SetType($type);
        +        $self->[DEFINITIONS]{$file}->SetPrototype($prototype);
        +        $self->[DEFINITIONS]{$file}->SetSummary($summary);
        +        };
        +    };
        +
        +
        +#
        +#   Function: DeleteDefinition
        +#
        +#   Removes a symbol definition.  If the definition served as the global definition, a new one will be selected.
        +#
        +#   Parameters:
        +#
        +#       file - The <FileName> which contains definition to delete.
        +#
        +#   Returns:
        +#
        +#       Whether that was the only definition, and the symbol is now undefined.
        +#
        +sub DeleteDefinition #(file)
        +    {
        +    my ($self, $file) = @_;
        +
        +    # If there are no definitions...
        +    if (!defined $self->[DEFINITIONS])
        +        {  return undef;  };
        +
        +    delete $self->[DEFINITIONS]{$file};
        +
        +    # If there are no more definitions...
        +    if (!scalar keys %{$self->[DEFINITIONS]})
        +        {
        +        $self->[DEFINITIONS] = undef;
        +
        +        # If definitions was previously defined, and now is empty, we can safely assume that the global definition was just deleted
        +        # without checking it against $file.
        +
        +        $self->[GLOBAL_DEFINITION] = undef;
        +
        +        return 1;
        +        }
        +
        +    # If there are more definitions and the global one was just deleted...
        +    elsif ($self->[GLOBAL_DEFINITION] eq $file)
        +        {
        +        # Which one becomes global is pretty much random.
        +        $self->[GLOBAL_DEFINITION] = (keys %{$self->[DEFINITIONS]})[0];
        +        return undef;
        +        };
        +    };
        +
        +
        +#
        +#   Function: AddReference
        +#
        +#   Adds a reference that can be interpreted as this symbol.  It can be, but not necessarily is.
        +#
        +#   Parameters:
        +#
        +#       referenceString - The string of the reference.
        +#       score                - The score of this interpretation.
        +#
        +sub AddReference #(referenceString, score)
        +    {
        +    my ($self, $referenceString, $score) = @_;
        +
        +    if (!defined $self->[REFERENCES])
        +        {  $self->[REFERENCES] = { };  };
        +
        +    $self->[REFERENCES]{$referenceString} = $score;
        +    };
        +
        +
        +#
        +#   Function: DeleteReference
        +#
        +#   Deletes a reference that can be interpreted as this symbol.
        +#
        +#   Parameters:
        +#
        +#       referenceString - The string of the reference to delete.
        +#
        +sub DeleteReference #(referenceString)
        +    {
        +    my ($self, $referenceString) = @_;
        +
        +    # If there are no definitions...
        +    if (!defined $self->[REFERENCES])
        +        {  return;  };
        +
        +    delete $self->[REFERENCES]{$referenceString};
        +
        +    # If there are no more definitions...
        +    if (!scalar keys %{$self->[REFERENCES]})
        +        {
        +        $self->[REFERENCES] = undef;
        +        };
        +    };
        +
        +
        +#
        +#   Function: DeleteAllReferences
        +#
        +#   Removes all references that can be interpreted as this symbol.
        +#
        +sub DeleteAllReferences
        +    {
        +    $_[0]->[REFERENCES] = undef;
        +    };
        +
        +
        +###############################################################################
        +# Group: Information Functions
        +
        +#
        +#   Function: IsDefined
        +#
        +#   Returns whether the symbol is defined anywhere or not.  If it's not, that means it's just a potential interpretation of a
        +#   reference.
        +#
        +sub IsDefined
        +    {
        +    return defined $_[0]->[GLOBAL_DEFINITION];
        +    };
        +
        +#
        +#   Function: IsDefinedIn
        +#
        +#   Returns whether the symbol is defined in the passed <FileName>.
        +#
        +sub IsDefinedIn #(file)
        +    {
        +    my ($self, $file) = @_;
        +    return ($self->IsDefined() && exists $self->[DEFINITIONS]{$file});
        +    };
        +
        +
        +#
        +#   Function: Definitions
        +#
        +#   Returns an array of all the <FileNames> that define this symbol.  If none do, will return an empty array.
        +#
        +sub Definitions
        +    {
        +    my $self = shift;
        +
        +    if ($self->IsDefined())
        +        {  return keys %{$self->[DEFINITIONS]};  }
        +    else
        +        {  return ( );  };
        +    };
        +
        +
        +#
        +#   Function: GlobalDefinition
        +#
        +#   Returns the <FileName> that contains the global definition of this symbol, or undef if the symbol isn't defined.
        +#
        +sub GlobalDefinition
        +    {
        +    return $_[0]->[GLOBAL_DEFINITION];
        +    };
        +
        +
        +#
        +#   Function: TypeDefinedIn
        +#
        +#   Returns the <TopicType> of the symbol defined in the passed <FileName>, or undef if it's not defined in that file.
        +#
        +sub TypeDefinedIn #(file)
        +    {
        +    my ($self, $file) = @_;
        +
        +    if ($self->IsDefined())
        +        {  return $self->[DEFINITIONS]{$file}->Type();  }
        +    else
        +        {  return undef;  };
        +    };
        +
        +
        +#
        +#   Function: GlobalType
        +#
        +#   Returns the <TopicType> of the global definition, or undef if the symbol isn't defined.
        +#
        +sub GlobalType
        +    {
        +    my $self = shift;
        +
        +    my $globalDefinition = $self->GlobalDefinition();
        +
        +    if (!defined $globalDefinition)
        +        {  return undef;  }
        +    else
        +        {  return $self->[DEFINITIONS]{$globalDefinition}->Type();  };
        +    };
        +
        +
        +#
        +#   Function: PrototypeDefinedIn
        +#
        +#   Returns the prototype of symbol defined in the passed <FileName>, or undef if it doesn't exist or is not defined in that file.
        +#
        +sub PrototypeDefinedIn #(file)
        +    {
        +    my ($self, $file) = @_;
        +
        +    if ($self->IsDefined())
        +        {  return $self->[DEFINITIONS]{$file}->Prototype();  }
        +    else
        +        {  return undef;  };
        +    };
        +
        +
        +#
        +#   Function: GlobalPrototype
        +#
        +#   Returns the prototype of the global definition.  Will be undef if it doesn't exist or the symbol isn't defined.
        +#
        +sub GlobalPrototype
        +    {
        +    my $self = shift;
        +
        +    my $globalDefinition = $self->GlobalDefinition();
        +
        +    if (!defined $globalDefinition)
        +        {  return undef;  }
        +    else
        +        {  return $self->[DEFINITIONS]{$globalDefinition}->Prototype();  };
        +    };
        +
        +
        +#
        +#   Function: SummaryDefinedIn
        +#
        +#   Returns the summary of symbol defined in the passed <FileName>, or undef if it doesn't exist or is not defined in that file.
        +#
        +sub SummaryDefinedIn #(file)
        +    {
        +    my ($self, $file) = @_;
        +
        +    if ($self->IsDefined())
        +        {  return $self->[DEFINITIONS]{$file}->Summary();  }
        +    else
        +        {  return undef;  };
        +    };
        +
        +
        +#
        +#   Function: GlobalSummary
        +#
        +#   Returns the summary of the global definition.  Will be undef if it doesn't exist or the symbol isn't defined.
        +#
        +sub GlobalSummary
        +    {
        +    my $self = shift;
        +
        +    my $globalDefinition = $self->GlobalDefinition();
        +
        +    if (!defined $globalDefinition)
        +        {  return undef;  }
        +    else
        +        {  return $self->[DEFINITIONS]{$globalDefinition}->Summary();  };
        +    };
        +
        +
        +#
        +#   Function: HasReferences
        +#
        +#   Returns whether the symbol can be interpreted as any references.
        +#
        +sub HasReferences
        +    {
        +    return defined $_[0]->[REFERENCES];
        +    };
        +
        +#
        +#   Function: References
        +#
        +#   Returns an array of all the reference strings that can be interpreted as this symbol.  If none, will return an empty array.
        +#
        +sub References
        +    {
        +    if (defined $_[0]->[REFERENCES])
        +        {  return keys %{$_[0]->[REFERENCES]};  }
        +    else
        +        {  return ( );  };
        +    };
        +
        +
        +#
        +#   Function: ReferencesAndScores
        +#
        +#   Returns a hash of all the references that can be interpreted as this symbol and their scores.  The keys are the reference
        +#   strings, and the values are the scores.  If none, will return an empty hash.
        +#
        +sub ReferencesAndScores
        +    {
        +    if (defined $_[0]->[REFERENCES])
        +        {  return %{$_[0]->[REFERENCES]};  }
        +    else
        +        {  return ( );  };
        +    };
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SymbolTable/SymbolDefinition.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SymbolTable/SymbolDefinition.pm
        new file mode 100755
        index 0000000..9d57460
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/SymbolTable/SymbolDefinition.pm
        @@ -0,0 +1,97 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::SymbolTable::SymbolDefinition
        +#
        +###############################################################################
        +#
        +#   A class representing a symbol definition.  This does not store the definition symbol, class, or file.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::SymbolTable::SymbolDefinition;
        +
        +
        +###############################################################################
        +# Group: Implementation
        +
        +#
        +#   Constants: Members
        +#
        +#   The class is implemented as a blessed arrayref.  The following constants are its members.
        +#
        +#       TYPE  - The symbol <TopicType>.
        +#       PROTOTYPE  - The symbol's prototype, if applicable.  Will be undef otherwise.
        +#       SUMMARY - The symbol's summary, if applicable.  Will be undef otherwise.
        +#
        +use constant TYPE => 0;
        +use constant PROTOTYPE => 1;
        +use constant SUMMARY => 2;
        +# New depends on the order of the constants.
        +
        +
        +###############################################################################
        +# Group: Functions
        +
        +#
        +#   Function: New
        +#
        +#   Creates and returns a new object.
        +#
        +#   Parameters:
        +#
        +#       type - The symbol <TopicType>.
        +#       prototype  - The symbol prototype, if applicable.  Undef otherwise.
        +#       summary - The symbol's summary, if applicable.  Undef otherwise.
        +#
        +sub New #(type, prototype, summary)
        +    {
        +    # This depends on the parameter list being the same as the constant order.
        +
        +    my $package = shift;
        +
        +    my $object = [ @_ ];
        +    bless $object, $package;
        +
        +    return $object;
        +    };
        +
        +
        +#   Function: Type
        +#   Returns the definition's <TopicType>.
        +sub Type
        +    {  return $_[0]->[TYPE];  };
        +
        +# Function: SetType
        +# Changes the <TopicType>.
        +sub SetType #(type)
        +    {  $_[0]->[TYPE] = $_[1];  };
        +
        +#   Function: Prototype
        +#   Returns the definition's prototype, or undef if it doesn't have one.
        +sub Prototype
        +    {  return $_[0]->[PROTOTYPE];  };
        +
        +# Function: SetPrototype
        +# Changes the prototype.
        +sub SetPrototype #(prototype)
        +    {  $_[0]->[PROTOTYPE] = $_[1];  };
        +
        +#   Function: Summary
        +#   Returns the definition's summary, or undef if it doesn't have one.
        +sub Summary
        +    {  return $_[0]->[SUMMARY];  };
        +
        +# Function: SetSummary
        +# Changes the summary.
        +sub SetSummary #(summary)
        +    {  $_[0]->[SUMMARY] = $_[1];  };
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Topics.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Topics.pm
        new file mode 100755
        index 0000000..6bd3553
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Topics.pm
        @@ -0,0 +1,1321 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::Topics
        +#
        +###############################################################################
        +#
        +#   The topic constants and functions to convert them to and from strings used throughout the script.  All constants are exported
        +#   by default.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use Text::Wrap ( );
        +use Tie::RefHash ( );
        +
        +use strict;
        +use integer;
        +
        +use NaturalDocs::Topics::Type;
        +
        +package NaturalDocs::Topics;
        +
        +use base 'Exporter';
        +our @EXPORT = ( 'TOPIC_GENERAL', 'TOPIC_GENERIC', 'TOPIC_GROUP', 'TOPIC_CLASS', 'TOPIC_FILE', 'TOPIC_FUNCTION',
        +                          'TOPIC_VARIABLE', 'TOPIC_PROPERTY', 'TOPIC_TYPE', 'TOPIC_ENUMERATION', 'TOPIC_CONSTANT',
        +                          'TOPIC_INTERFACE', 'TOPIC_EVENT', 'TOPIC_DELEGATE', 'TOPIC_SECTION' );
        +
        +
        +
        +###############################################################################
        +# Group: Types
        +
        +
        +#
        +#   Type: TopicType
        +#
        +#   A string representing a topic type as defined in <Topics.txt>.  It's format should be treated as opaque; use <MakeTopicType()>
        +#   to get them from topic names.  However, they can be compared for equality with string functions.
        +#
        +
        +
        +#
        +#   Constants: Default TopicTypes
        +#
        +#   Exported constants of the default <TopicTypes>, so you don't have to go through <TypeFromName()> every time.
        +#
        +#   TOPIC_GENERAL - The general <TopicType>, which has the special meaning of none in particular.
        +#   TOPIC_GENERIC - Generic <TopicType>.
        +#   TOPIC_GROUP - Group <TopicType>.
        +#   TOPIC_CLASS - Class <TopicType>.
        +#   TOPIC_INTERFACE - Interface <TopicType>.
        +#   TOPIC_FILE - File <TopicType>.
        +#   TOPIC_SECTION - Section <TopicType>.
        +#   TOPIC_FUNCTION - Function <TopicType>.
        +#   TOPIC_VARIABLE - Variable <TopicType>.
        +#   TOPIC_PROPERTY - Property <TopicType>.
        +#   TOPIC_TYPE - Type <TopicType>.
        +#   TOPIC_CONSTANT - Constant <TopicType>.
        +#   TOPIC_ENUMERATION - Enum <TopicType>.
        +#   TOPIC_DELEGATE - Delegate <TopicType>.
        +#   TOPIC_EVENT - Event <TopicType>.
        +#
        +use constant TOPIC_GENERAL => 'general';
        +use constant TOPIC_GENERIC => 'generic';
        +use constant TOPIC_GROUP => 'group';
        +use constant TOPIC_CLASS => 'class';
        +use constant TOPIC_INTERFACE => 'interface';
        +use constant TOPIC_FILE => 'file';
        +use constant TOPIC_SECTION => 'section';
        +use constant TOPIC_FUNCTION => 'function';
        +use constant TOPIC_VARIABLE => 'variable';
        +use constant TOPIC_PROPERTY => 'property';
        +use constant TOPIC_TYPE => 'type';
        +use constant TOPIC_CONSTANT => 'constant';
        +use constant TOPIC_ENUMERATION => 'enumeration';
        +use constant TOPIC_DELEGATE => 'delegate';
        +use constant TOPIC_EVENT => 'event';
        +# Dependency: The values of these constants must match what is generated by MakeTopicType().
        +# Dependency: These types must be added to requiredTypeNames so that they always exist.
        +
        +
        +
        +
        +###############################################################################
        +# Group: Variables
        +
        +
        +#
        +#   handle: FH_TOPICS
        +#
        +#   The file handle used when writing to <Topics.txt>.
        +#
        +
        +
        +#
        +#   hash: types
        +#
        +#   A hashref that maps <TopicTypes> to <NaturalDocs::Topics::Type>s.
        +#
        +my %types;
        +
        +
        +#
        +#   hash: names
        +#
        +#   A hashref that maps various forms of the all-lowercase type names to <TopicTypes>.  All are in the same hash because
        +#   two names that reduce to the same thing it would cause big problems, and we need to catch that.  Keys include
        +#
        +#   - Topic names
        +#   - Plural topic names
        +#   - Alphanumeric-only topic names
        +#   - Alphanumeric-only plural topic names
        +#
        +my %names;
        +
        +
        +#
        +#   hash: keywords
        +#
        +#   A hashref that maps all-lowercase keywords to their <TopicTypes>.  Must not have any of the same keys as
        +#   <pluralKeywords>.
        +#
        +my %keywords;
        +
        +
        +#
        +#   hash: pluralKeywords
        +#
        +#   A hashref that maps all-lowercase plural keywords to their <TopicTypes>.  Must not have any of the same keys as
        +#   <keywords>.
        +#
        +my %pluralKeywords;
        +
        +
        +#
        +#   hash: indexable
        +#
        +#   An existence hash of all the indexable <TopicTypes>.
        +#
        +my %indexable;
        +
        +
        +#
        +#   array: requiredTypeNames
        +#
        +#   An array of the <TopicType> names which are required to be defined in the main file.  Are in the order they should appear
        +#   when reformatting.
        +#
        +my @requiredTypeNames = ( 'Generic', 'Class', 'Interface', 'Section', 'File', 'Group', 'Function', 'Variable', 'Property', 'Type',
        +                                           'Constant', 'Enumeration', 'Event', 'Delegate' );
        +
        +
        +#
        +#   array: legacyTypes
        +#
        +#   An array that converts the legacy topic types, which were numeric constants prior to 1.3, to the current <TopicTypes>.
        +#   The legacy types are used as an index into the array.  Note that this does not support list type values.
        +#
        +my @legacyTypes = ( TOPIC_GENERAL, TOPIC_CLASS, TOPIC_SECTION, TOPIC_FILE, TOPIC_GROUP, TOPIC_FUNCTION,
        +                                TOPIC_VARIABLE, TOPIC_GENERIC, TOPIC_TYPE, TOPIC_CONSTANT, TOPIC_PROPERTY );
        +
        +
        +#
        +#   array: mainTopicNames
        +#
        +#   An array of the <TopicType> names that are defined in the main <Topics.txt>.
        +#
        +my @mainTopicNames;
        +
        +
        +
        +###############################################################################
        +# Group: Files
        +
        +
        +#
        +#   File: Topics.txt
        +#
        +#   The configuration file that defines or overrides the topic definitions for Natural Docs.  One version sits in Natural Docs'
        +#   configuration directory, and another can be in a project directory to add to or override them.
        +#
        +#   > # [comments]
        +#
        +#   Everything after a # symbol is ignored.
        +#
        +#   Except when specifying topic names, everything below is case-insensitive.
        +#
        +#   > Format: [version]
        +#
        +#   Specifies the file format version of the file.
        +#
        +#
        +#   Sections:
        +#
        +#       > Ignore[d] Keyword[s]: [keyword], [keyword] ...
        +#       >    [keyword]
        +#       >    [keyword], [keyword]
        +#       >    ...
        +#
        +#       Ignores the keywords so that they're not recognized as Natural Docs topics anymore.  Can be specified as a list on the same
        +#       line and/or following like a normal Keywords section.
        +#
        +#       > Topic Type: [name]
        +#       > Alter Topic Type: [name]
        +#
        +#       Creates a new topic type or alters an existing one.  The name can only contain <CFChars> and isn't case sensitive, although
        +#       the original case is remembered for presentation.
        +#
        +#       The name General is reserved.  There are a number of default types that must be defined in the main file as well, but those
        +#       are governed by <NaturalDocs::Topics> and are not included here.  The default types can have their keywords or behaviors
        +#       changed, though, either by editing the default file or by overriding them in the user file.
        +#
        +#       Enumeration is a special type.  It is indexed with Types and its definition list members are listed with Constants according
        +#       to the rules in <Languages.txt>.
        +#
        +#
        +#   Topic Type Sections:
        +#
        +#       > Plural: [name]
        +#
        +#       Specifies the plural name of the topic type.  Defaults to the singular name.  Has the same restrictions as the topic type
        +#       name.
        +#
        +#       > Index: [yes|no]
        +#
        +#       Whether the topic type gets an index.  Defaults to yes.
        +#
        +#       > Scope: [normal|start|end|always global]
        +#
        +#       How the topic affects scope.  Defaults to normal.
        +#
        +#       normal - The topic stays within the current scope.
        +#       start - The topic starts a new scope for all the topics beneath it, like class topics.
        +#       end - The topic resets the scope back to global for all the topics beneath it, like section topics.
        +#       always global - The topic is defined as a global symbol, but does not change the scope for any other topics.
        +#
        +#       > Class Hierarchy: [yes|no]
        +#
        +#       Whether the topic is part of the class hierarchy.  Defaults to no.
        +#
        +#       > Page Title if First: [yes|no]
        +#
        +#       Whether the title of this topic becomes the page title if it is the first topic in a file.  Defaults to no.
        +#
        +#       > Break Lists: [yes|no]
        +#
        +#       Whether list topics should be broken into individual topics in the output.  Defaults to no.
        +#
        +#       > Can Group With: [topic type], [topic type], ...
        +#
        +#       The list of <TopicTypes> the topic can possibly be grouped with.
        +#
        +#       > [Add] Keyword[s]:
        +#       >    [keyword]
        +#       >    [keyword], [plural keyword]
        +#       >    ...
        +#
        +#       A list of the topic type's keywords.  Each line after the heading is the keyword and optionally its plural form.  This continues
        +#       until the next line in "keyword: value" format.  "Add" isn't required.
        +#
        +#       - Keywords can only have letters and numbers.  No punctuation or spaces are allowed.
        +#       - Keywords are not case sensitive.
        +#       - Subsequent keyword sections add to the list.  They don't replace it.
        +#       - Keywords can be redefined by other keyword sections.
        +#
        +#
        +#   Revisions:
        +#
        +#       1.3:
        +#
        +#           The initial version of this file.
        +#
        +
        +
        +###############################################################################
        +# Group: File Functions
        +
        +
        +#
        +#   Function: Load
        +#
        +#   Loads both the master and the project version of <Topics.txt>.
        +#
        +sub Load
        +    {
        +    my $self = shift;
        +
        +    # Add the special General topic type.
        +
        +    $types{::TOPIC_GENERAL()} = NaturalDocs::Topics::Type->New('General', 'General', 1, ::SCOPE_NORMAL(), undef);
        +    $names{'general'} = ::TOPIC_GENERAL();
        +    $indexable{::TOPIC_GENERAL()} = 1;
        +    # There are no keywords for the general topic.
        +
        +
        +    $self->LoadFile(1);  # Main
        +
        +    # Dependency: All the default topic types must be checked for existence.
        +
        +    # Check to see if the required types are defined.
        +    foreach my $name (@requiredTypeNames)
        +        {
        +        if (!exists $names{lc($name)})
        +            {  NaturalDocs::ConfigFile->AddError('The ' . $name . ' topic type must be defined in the main topics file.');  };
        +        };
        +
        +    my $errorCount = NaturalDocs::ConfigFile->ErrorCount();
        +
        +    if ($errorCount)
        +        {
        +        NaturalDocs::ConfigFile->PrintErrorsAndAnnotateFile();
        +        NaturalDocs::Error->SoftDeath('There ' . ($errorCount == 1 ? 'is an error' : 'are ' . $errorCount . ' errors')
        +                                                    . ' in ' . NaturalDocs::Project->MainConfigFile('Topics.txt'));
        +        }
        +
        +
        +    $self->LoadFile();  # User
        +
        +    $errorCount = NaturalDocs::ConfigFile->ErrorCount();
        +
        +    if ($errorCount)
        +        {
        +        NaturalDocs::ConfigFile->PrintErrorsAndAnnotateFile();
        +        NaturalDocs::Error->SoftDeath('There ' . ($errorCount == 1 ? 'is an error' : 'are ' . $errorCount . ' errors')
        +                                                    . ' in ' . NaturalDocs::Project->UserConfigFile('Topics.txt'));
        +        }
        +    };
        +
        +
        +#
        +#   Function: LoadFile
        +#
        +#   Loads a particular version of <Topics.txt>.
        +#
        +#   Parameters:
        +#
        +#       isMain - Whether the file is the main file or not.
        +#
        +sub LoadFile #(isMain)
        +    {
        +    my ($self, $isMain) = @_;
        +
        +    my ($file, $status);
        +
        +    if ($isMain)
        +        {
        +        $file = NaturalDocs::Project->MainConfigFile('Topics.txt');
        +        $status = NaturalDocs::Project->MainConfigFileStatus('Topics.txt');
        +        }
        +    else
        +        {
        +        $file = NaturalDocs::Project->UserConfigFile('Topics.txt');
        +        $status = NaturalDocs::Project->UserConfigFileStatus('Topics.txt');
        +        };
        +
        +    my $version;
        +
        +    if ($version = NaturalDocs::ConfigFile->Open($file))
        +        {
        +        # The format hasn't changed since the file was introduced.
        +
        +        if ($status == ::FILE_CHANGED())
        +            {  NaturalDocs::Project->ReparseEverything();  };
        +
        +        my ($topicTypeKeyword, $topicTypeName, $topicType, $topicTypeObject, $inKeywords, $inIgnoredKeywords);
        +
        +        # Keys are topic type objects, values are unparsed strings.
        +        my %canGroupWith;
        +        tie %canGroupWith, 'Tie::RefHash';
        +
        +        while (my ($keyword, $value) = NaturalDocs::ConfigFile->GetLine())
        +            {
        +            if ($keyword)
        +                {
        +                $inKeywords = 0;
        +                $inIgnoredKeywords = 0;
        +                };
        +
        +            if ($keyword eq 'topic type')
        +                {
        +                $topicTypeKeyword = $keyword;
        +                $topicTypeName = $value;
        +
        +                # Resolve conflicts and create the type if necessary.
        +
        +                $topicType = $self->MakeTopicType($topicTypeName);
        +                my $lcTopicTypeName = lc($topicTypeName);
        +
        +                my $lcTopicTypeAName = $lcTopicTypeName;
        +                $lcTopicTypeAName =~ tr/a-z0-9//cd;
        +
        +                if (!NaturalDocs::ConfigFile->HasOnlyCFChars($topicTypeName))
        +                    {
        +                    NaturalDocs::ConfigFile->AddError('Topic names can only have ' . NaturalDocs::ConfigFile->CFCharNames() . '.');
        +                    }
        +                elsif ($topicType eq ::TOPIC_GENERAL())
        +                    {
        +                    NaturalDocs::ConfigFile->AddError('You cannot define a General topic type.');
        +                    }
        +                elsif (defined $types{$topicType} || defined $names{$lcTopicTypeName} || defined $names{$lcTopicTypeAName})
        +                    {
        +                    NaturalDocs::ConfigFile->AddError('Topic type ' . $topicTypeName . ' is already defined or its name is too '
        +                                                                     . 'similar to an existing name.  Use Alter Topic Type if you meant to override '
        +                                                                     . 'its settings.');
        +                    }
        +                else
        +                    {
        +                    $topicTypeObject = NaturalDocs::Topics::Type->New($topicTypeName, $topicTypeName, 1, ::SCOPE_NORMAL(),
        +                                                                                                  0, 0);
        +
        +                    $types{$topicType} = $topicTypeObject;
        +                    $names{$lcTopicTypeName} = $topicType;
        +                    $names{$lcTopicTypeAName} = $topicType;
        +
        +                    $indexable{$topicType} = 1;
        +
        +                    if ($isMain)
        +                        {  push @mainTopicNames, $topicTypeName;  };
        +                    };
        +                }
        +
        +            elsif ($keyword eq 'alter topic type')
        +                {
        +                $topicTypeKeyword = $keyword;
        +                $topicTypeName = $value;
        +
        +                # Resolve conflicts and create the type if necessary.
        +
        +                $topicType = $names{lc($topicTypeName)};
        +
        +                if (!defined $topicType)
        +                    {  NaturalDocs::ConfigFile->AddError('Topic type ' . $topicTypeName . ' doesn\'t exist.');  }
        +                elsif ($topicType eq ::TOPIC_GENERAL())
        +                    {  NaturalDocs::ConfigFile->AddError('You cannot alter the General topic type.');  }
        +                else
        +                    {
        +                    $topicTypeObject = $types{$topicType};
        +                    };
        +                }
        +
        +            elsif ($keyword =~ /^ignored? keywords?$/)
        +                {
        +                $inIgnoredKeywords = 1;
        +
        +                my @ignoredKeywords = split(/ ?, ?/, lc($value));
        +
        +                foreach my $ignoredKeyword (@ignoredKeywords)
        +                    {
        +                    delete $keywords{$ignoredKeyword};
        +                    delete $pluralKeywords{$ignoredKeyword};
        +                    };
        +                }
        +
        +            # We continue even if there are errors in the topic type line so that we can find any other errors in the file as well.  We'd
        +            # rather them all show up at once instead of them showing up one at a time between Natural Docs runs.  So we just ignore
        +            # the settings if $topicTypeObject is undef.
        +
        +
        +            elsif ($keyword eq 'plural')
        +                {
        +                my $pluralName = $value;
        +                my $lcPluralName = lc($pluralName);
        +
        +                my $lcPluralAName = $lcPluralName;
        +                $lcPluralAName =~ tr/a-zA-Z0-9//cd;
        +
        +                if (!NaturalDocs::ConfigFile->HasOnlyCFChars($pluralName))
        +                    {
        +                    NaturalDocs::ConfigFile->AddError('Plural names can only have '
        +                                                                     . NaturalDocs::ConfigFile->CFCharNames() . '.');
        +                    }
        +                elsif ($lcPluralAName eq 'general')
        +                    {
        +                    NaturalDocs::ConfigFile->AddError('You cannot use General as a plural name for ' . $topicTypeName . '.');
        +                    }
        +                elsif ( (defined $names{$lcPluralName} && $names{$lcPluralName} ne $topicType) ||
        +                         (defined $names{$lcPluralAName} && $names{$lcPluralAName} ne $topicType) )
        +                    {
        +                    NaturalDocs::ConfigFile->AddError($topicTypeName . "'s plural name, " . $pluralName
        +                                                                     . ', is already defined or is too similar to an existing name.');
        +                    }
        +
        +                elsif (defined $topicTypeObject)
        +                    {
        +                    $topicTypeObject->SetPluralName($pluralName);
        +
        +                    $names{$lcPluralName} = $topicType;
        +                    $names{$lcPluralAName} = $topicType;
        +                    };
        +                }
        +
        +            elsif ($keyword eq 'index')
        +                {
        +                $value = lc($value);
        +
        +                if ($value eq 'yes')
        +                    {
        +                    if (defined $topicTypeObject)
        +                        {
        +                        $topicTypeObject->SetIndex(1);
        +                        $indexable{$topicType} = 1;
        +                        };
        +                    }
        +                elsif ($value eq 'no')
        +                    {
        +                    if (defined $topicTypeObject)
        +                        {
        +                        $topicTypeObject->SetIndex(0);
        +                        delete $indexable{$topicType};
        +                        };
        +                    }
        +                else
        +                    {
        +                    NaturalDocs::ConfigFile->AddError('Index lines can only be "yes" or "no".');
        +                    };
        +                }
        +
        +            elsif ($keyword eq 'class hierarchy')
        +                {
        +                $value = lc($value);
        +
        +                if ($value eq 'yes')
        +                    {
        +                    if (defined $topicTypeObject)
        +                        {  $topicTypeObject->SetClassHierarchy(1);  };
        +                    }
        +                elsif ($value eq 'no')
        +                    {
        +                    if (defined $topicTypeObject)
        +                        {  $topicTypeObject->SetClassHierarchy(0);  };
        +                    }
        +                else
        +                    {
        +                    NaturalDocs::ConfigFile->AddError('Class Hierarchy lines can only be "yes" or "no".');
        +                    };
        +                }
        +
        +            elsif ($keyword eq 'scope')
        +                {
        +                $value = lc($value);
        +
        +                if ($value eq 'normal')
        +                    {
        +                    if (defined $topicTypeObject)
        +                        {  $topicTypeObject->SetScope(::SCOPE_NORMAL());  };
        +                    }
        +                elsif ($value eq 'start')
        +                    {
        +                    if (defined $topicTypeObject)
        +                        {  $topicTypeObject->SetScope(::SCOPE_START());  };
        +                    }
        +                elsif ($value eq 'end')
        +                    {
        +                    if (defined $topicTypeObject)
        +                        {  $topicTypeObject->SetScope(::SCOPE_END());  };
        +                    }
        +                elsif ($value eq 'always global')
        +                    {
        +                    if (defined $topicTypeObject)
        +                        {  $topicTypeObject->SetScope(::SCOPE_ALWAYS_GLOBAL());  };
        +                    }
        +                else
        +                    {
        +                    NaturalDocs::ConfigFile->AddError('Scope lines can only be "normal", "start", "end", or "always global".');
        +                    };
        +                }
        +
        +            elsif ($keyword eq 'page title if first')
        +                {
        +                $value = lc($value);
        +
        +                if ($value eq 'yes')
        +                    {
        +                    if (defined $topicTypeObject)
        +                        {  $topicTypeObject->SetPageTitleIfFirst(1);  };
        +                    }
        +                elsif ($value eq 'no')
        +                    {
        +                    if (defined $topicTypeObject)
        +                        {  $topicTypeObject->SetPageTitleIfFirst(undef);  };
        +                    }
        +                else
        +                    {
        +                    NaturalDocs::ConfigFile->AddError('Page Title if First lines can only be "yes" or "no".');
        +                    };
        +                }
        +
        +            elsif ($keyword eq 'break lists')
        +                {
        +                $value = lc($value);
        +
        +                if ($value eq 'yes')
        +                    {
        +                    if (defined $topicTypeObject)
        +                        {  $topicTypeObject->SetBreakLists(1);  };
        +                    }
        +                elsif ($value eq 'no')
        +                    {
        +                    if (defined $topicTypeObject)
        +                        {  $topicTypeObject->SetBreakLists(undef);  };
        +                    }
        +                else
        +                    {
        +                    NaturalDocs::ConfigFile->AddError('Break Lists lines can only be "yes" or "no".');
        +                    };
        +                }
        +
        +            elsif ($keyword eq 'can group with')
        +                {
        +                if (defined $topicTypeObject)
        +                    {  $canGroupWith{$topicTypeObject} = lc($value);  };
        +                }
        +
        +            elsif ($keyword =~ /^(?:add )?keywords?$/)
        +                {
        +                $inKeywords = 1;
        +                }
        +
        +            elsif (defined $keyword)
        +                {  NaturalDocs::ConfigFile->AddError($keyword . ' is not a valid keyword.');  }
        +
        +            elsif (!$inKeywords && !$inIgnoredKeywords)
        +                {
        +                NaturalDocs::ConfigFile->AddError('All lines in ' . $topicTypeKeyword . ' sections must begin with a keyword.');
        +                }
        +
        +            else # No keyword but in keyword section.
        +                {
        +                $value = lc($value);
        +
        +                if ($value =~ /^([a-z0-9 ]*[a-z0-9]) ?, ?([a-z0-9 ]+)$/)
        +                    {
        +                    my ($singular, $plural) = ($1, $2);
        +
        +                    if ($inIgnoredKeywords)
        +                        {
        +                        delete $keywords{$singular};
        +                        delete $keywords{$plural};
        +                        delete $pluralKeywords{$singular};
        +                        delete $pluralKeywords{$plural};
        +                        }
        +                    elsif (defined $topicTypeObject)
        +                        {
        +                        $keywords{$singular} = $topicType;
        +                        delete $pluralKeywords{$singular};
        +
        +                        $pluralKeywords{$plural} = $topicType;
        +                        delete $keywords{$plural};
        +                        };
        +                    }
        +                elsif ($value =~ /^[a-z0-9 ]+$/)
        +                    {
        +                    if ($inIgnoredKeywords)
        +                        {
        +                        delete $keywords{$value};
        +                        delete $pluralKeywords{$value};
        +                        }
        +                    elsif (defined $topicType)
        +                        {
        +                        $keywords{$value} = $topicType;
        +                        delete $pluralKeywords{$value};
        +                        };
        +                    }
        +                else
        +                    {
        +                    NaturalDocs::ConfigFile->AddError('Keywords can only have letters, numbers, and spaces.  '
        +                                                                     . 'Plurals must be separated by a comma.');
        +                    };
        +                };
        +            };
        +
        +        NaturalDocs::ConfigFile->Close();
        +
        +
        +        # Parse out the Can Group With lines now that everything's defined.
        +
        +        while (my ($typeObject, $value) = each %canGroupWith)
        +            {
        +            my @values = split(/ ?, ?/, $value);
        +            my @types;
        +
        +            foreach my $value (@values)
        +                {
        +                # We're just going to ignore invalid items.
        +                if (exists $names{$value})
        +                    {  push @types, $names{$value};  };
        +                };
        +
        +            if (scalar @types)
        +                {  $typeObject->SetCanGroupWith(\@types);  };
        +            };
        +        }
        +
        +    else # couldn't open file
        +        {
        +        if ($isMain)
        +            {  die "Couldn't open topics file " . $file . "\n";  }
        +        else
        +            {  NaturalDocs::Project->ReparseEverything();  };
        +        };
        +    };
        +
        +
        +#
        +#   Function: Save
        +#
        +#   Saves the main and user versions of <Topics.txt>.
        +#
        +sub Save
        +    {
        +    my $self = shift;
        +
        +    $self->SaveFile(1); # Main
        +    $self->SaveFile(0); # User
        +    };
        +
        +
        +#
        +#   Function: SaveFile
        +#
        +#   Saves a particular version of <Topics.txt>.
        +#
        +#   Parameters:
        +#
        +#       isMain - Whether the file is the main file or not.
        +#
        +sub SaveFile #(isMain)
        +    {
        +    my ($self, $isMain) = @_;
        +
        +    my $file;
        +
        +    if ($isMain)
        +        {
        +        if (NaturalDocs::Project->MainConfigFileStatus('Topics.txt') == ::FILE_SAME())
        +            {  return;  };
        +        $file = NaturalDocs::Project->MainConfigFile('Topics.txt');
        +        }
        +    else
        +        {
        +        # We have to check the main one two because this lists the topics defined in it.
        +        if (NaturalDocs::Project->UserConfigFileStatus('Topics.txt') == ::FILE_SAME() &&
        +            NaturalDocs::Project->MainConfigFileStatus('Topics.txt') == ::FILE_SAME())
        +            {  return;  };
        +        $file = NaturalDocs::Project->UserConfigFile('Topics.txt');
        +        };
        +
        +
        +    # Array of topic type names in the order they appear in the file.  If Alter Topic Type is used, the name will end with an asterisk.
        +    my @topicTypeOrder;
        +
        +    # Keys are topic type names, values are property hashrefs.  Hashref keys are the property names, values the value.
        +    # For keywords, the key is Keywords and the values are arrayrefs of singular and plural pairs.  If no plural is defined, the entry
        +    # will be undef.
        +    my %properties;
        +
        +    # List of ignored keywords specified as Ignore Keywords: [keyword], [keyword], ...
        +    my @inlineIgnoredKeywords;
        +
        +    # List of ignored keywords specified in [keyword], [plural keyword] lines.  Done in pairs, like for regular keywords.
        +    my @separateIgnoredKeywords;
        +
        +    my $inIgnoredKeywords;
        +
        +    if (NaturalDocs::ConfigFile->Open($file))
        +        {
        +        # We can assume the file is valid.
        +
        +        my ($keyword, $value, $topicTypeName);
        +
        +        while (($keyword, $value) = NaturalDocs::ConfigFile->GetLine())
        +            {
        +            $keyword = lc($keyword);
        +
        +            if ($keyword eq 'topic type' || $keyword eq 'alter topic type')
        +                {
        +                $topicTypeName = $types{ $names{lc($value)} }->Name();
        +
        +                if ($keyword eq 'alter topic type')
        +                    {  $topicTypeName .= '*';  };
        +
        +                push @topicTypeOrder, $topicTypeName;
        +
        +                if (!exists $properties{$topicTypeName})
        +                    {  $properties{$topicTypeName} = { 'keywords' => [ ] };  };
        +                }
        +
        +            elsif ($keyword eq 'plural')
        +                {
        +                $properties{$topicTypeName}->{$keyword} = $value;
        +                }
        +
        +            elsif ($keyword eq 'index' ||
        +                    $keyword eq 'scope' ||
        +                    $keyword eq 'page title if first' ||
        +                    $keyword eq 'class hierarchy' ||
        +                    $keyword eq 'break lists' ||
        +                    $keyword eq 'can group with')
        +                {
        +                $properties{$topicTypeName}->{$keyword} = lc($value);
        +                }
        +
        +            elsif ($keyword =~ /^(?:add )?keywords?$/)
        +                {
        +                $inIgnoredKeywords = 0;
        +                }
        +
        +            elsif ($keyword =~ /^ignored? keywords?$/)
        +                {
        +                $inIgnoredKeywords = 1;
        +                if ($value)
        +                    {  push @inlineIgnoredKeywords, split(/ ?, ?/, $value);  };
        +                }
        +
        +            elsif (!$keyword)
        +                {
        +                my ($singular, $plural) = split(/ ?, ?/, lc($value));
        +
        +                if ($inIgnoredKeywords)
        +                    {  push @separateIgnoredKeywords, $singular, $plural;  }
        +                else
        +                    {  push @{$properties{$topicTypeName}->{'keywords'}}, $singular, $plural;  };
        +                };
        +            };
        +
        +        NaturalDocs::ConfigFile->Close();
        +        };
        +
        +
        +    if (!open(FH_TOPICS, '>' . $file))
        +        {
        +        # The main file may be on a shared volume or some other place the user doesn't have write access to.  Since this is only to
        +        # reformat the file, we can ignore the failure.
        +        if ($isMain)
        +            {  return;  }
        +        else
        +            {  die "Couldn't save " . $file;  };
        +        };
        +
        +    binmode(FH_TOPICS, ':encoding(UTF-8)');
        +    print FH_TOPICS 'Format: ' . NaturalDocs::Settings->TextAppVersion() . "\n\n";
        +
        +    # Remember the 80 character limit.
        +
        +    if ($isMain)
        +        {
        +        print FH_TOPICS
        +        "# This is the main Natural Docs topics file.  If you change anything here, it\n"
        +        . "# will apply to EVERY PROJECT you use Natural Docs on.  If you'd like to\n"
        +        . "# change something for just one project, edit the Topics.txt in its project\n"
        +        . "# directory instead.\n";
        +        }
        +    else
        +        {
        +        print FH_TOPICS
        +        "# This is the Natural Docs topics file for this project.  If you change anything\n"
        +        . "# here, it will apply to THIS PROJECT ONLY.  If you'd like to change something\n"
        +        . "# for all your projects, edit the Topics.txt in Natural Docs' Config directory\n"
        +        . "# instead.\n\n\n";
        +
        +        if (scalar @inlineIgnoredKeywords || scalar @separateIgnoredKeywords)
        +            {
        +            if (scalar @inlineIgnoredKeywords == 1 && !scalar @separateIgnoredKeywords)
        +                {
        +                print FH_TOPICS 'Ignore Keyword: ' . $inlineIgnoredKeywords[0] . "\n";
        +                }
        +            else
        +                {
        +                print FH_TOPICS
        +                'Ignore Keywords: ' . join(', ', @inlineIgnoredKeywords) . "\n";
        +
        +                for (my $i = 0; $i < scalar @separateIgnoredKeywords; $i += 2)
        +                    {
        +                    print FH_TOPICS '   ' . $separateIgnoredKeywords[$i];
        +
        +                    if (defined $separateIgnoredKeywords[$i + 1])
        +                        {  print FH_TOPICS ', ' . $separateIgnoredKeywords[$i + 1];  };
        +
        +                    print FH_TOPICS "\n";
        +                    };
        +                };
        +            }
        +        else
        +            {
        +            print FH_TOPICS
        +            "# If you'd like to prevent keywords from being recognized by Natural Docs, you\n"
        +            . "# can do it like this:\n"
        +            . "# Ignore Keywords: [keyword], [keyword], ...\n"
        +            . "#\n"
        +            . "# Or you can use the list syntax like how they are defined:\n"
        +            . "# Ignore Keywords:\n"
        +            . "#    [keyword]\n"
        +            . "#    [keyword], [plural keyword]\n"
        +            . "#    ...\n";
        +            };
        +        };
        +
        +    print FH_TOPICS # [CFChars]
        +    "\n\n"
        +    . "#-------------------------------------------------------------------------------\n"
        +    . "# SYNTAX:\n"
        +    . "#\n";
        +
        +    if ($isMain)
        +        {
        +        print FH_TOPICS
        +        "# Topic Type: [name]\n"
        +        . "#    Creates a new topic type.  Each type gets its own index and behavior\n"
        +        . "#    settings.  Its name can have letters, numbers, spaces, and these\n"
        +        . "#    charaters: - / . '\n"
        +        . "#\n"
        +        . "#    The Enumeration type is special.  It's indexed with Types but its members\n"
        +        . "#    are indexed with Constants according to the rules in Languages.txt.\n"
        +        . "#\n"
        +        }
        +    else
        +        {
        +        print FH_TOPICS
        +        "# Topic Type: [name]\n"
        +        . "# Alter Topic Type: [name]\n"
        +        . "#    Creates a new topic type or alters one from the main file.  Each type gets\n"
        +        . "#    its own index and behavior settings.  Its name can have letters, numbers,\n"
        +        . "#    spaces, and these charaters: - / . '\n"
        +        . "#\n";
        +        };
        +
        +    print FH_TOPICS
        +    "# Plural: [name]\n"
        +    . "#    Sets the plural name of the topic type, if different.\n"
        +    . "#\n"
        +    . "# Keywords:\n"
        +    . "#    [keyword]\n"
        +    . "#    [keyword], [plural keyword]\n"
        +    . "#    ...\n";
        +
        +    if ($isMain)
        +        {
        +        print FH_TOPICS
        +        "#    Defines a list of keywords for the topic type.  They may only contain\n"
        +        . "#    letters, numbers, and spaces and are not case sensitive.  Plural keywords\n"
        +        . "#    are used for list topics.\n";
        +        }
        +    else
        +        {
        +        print FH_TOPICS
        +        "#    Defines or adds to the list of keywords for the topic type.  They may only\n"
        +        . "#    contain letters, numbers, and spaces and are not case sensitive.  Plural\n"
        +        . "#    keywords are used for list topics.  You can redefine keywords found in the\n"
        +        . "#    main topics file.\n";
        +        }
        +
        +    print FH_TOPICS
        +    "#\n"
        +    . "# Index: [yes|no]\n"
        +    . "#    Whether the topics get their own index.  Defaults to yes.  Everything is\n"
        +    . "#    included in the general index regardless of this setting.\n"
        +    . "#\n"
        +    . "# Scope: [normal|start|end|always global]\n"
        +    . "#    How the topics affects scope.  Defaults to normal.\n"
        +    . "#    normal        - Topics stay within the current scope.\n"
        +    . "#    start         - Topics start a new scope for all the topics beneath it,\n"
        +    . "#                    like class topics.\n"
        +    . "#    end           - Topics reset the scope back to global for all the topics\n"
        +    . "#                    beneath it.\n"
        +    . "#    always global - Topics are defined as global, but do not change the scope\n"
        +    . "#                    for any other topics.\n"
        +    . "#\n"
        +    . "# Class Hierarchy: [yes|no]\n"
        +    . "#    Whether the topics are part of the class hierarchy.  Defaults to no.\n"
        +    . "#\n"
        +    . "# Page Title If First: [yes|no]\n"
        +    . "#    Whether the topic's title becomes the page title if it's the first one in\n"
        +    . "#    a file.  Defaults to no.\n"
        +    . "#\n"
        +    . "# Break Lists: [yes|no]\n"
        +    . "#    Whether list topics should be broken into individual topics in the output.\n"
        +    . "#    Defaults to no.\n"
        +    . "#\n"
        +    . "# Can Group With: [type], [type], ...\n"
        +    . "#    Defines a list of topic types that this one can possibly be grouped with.\n"
        +    . "#    Defaults to none.\n"
        +    . "#-------------------------------------------------------------------------------\n\n";
        +
        +    my $listToPrint;
        +
        +    if ($isMain)
        +        {
        +        print FH_TOPICS
        +        "# The following topics MUST be defined in this file:\n"
        +        . "#\n";
        +        $listToPrint = \@requiredTypeNames;
        +        }
        +    else
        +        {
        +        print FH_TOPICS
        +        "# The following topics are defined in the main file, if you'd like to alter\n"
        +        . "# their behavior or add keywords:\n"
        +        . "#\n";
        +        $listToPrint = \@mainTopicNames;
        +        }
        +
        +    print FH_TOPICS
        +    Text::Wrap::wrap('#    ', '#    ', join(', ', @$listToPrint)) . "\n"
        +    . "\n"
        +    . "# If you add something that you think would be useful to other developers\n"
        +    . "# and should be included in Natural Docs by default, please e-mail it to\n"
        +    . "# topics [at] naturaldocs [dot] org.\n";
        +
        +    # Existence hash.  We do this because we want the required ones to go first by adding them to @topicTypeOrder, but we don't
        +    # want them to appear twice.
        +    my %doneTopicTypes;
        +    my ($altering, $numberOfProperties);
        +
        +    if ($isMain)
        +        {  unshift @topicTypeOrder, @requiredTypeNames;  };
        +
        +    my @propertyOrder = ('Plural', 'Index', 'Scope', 'Class Hierarchy', 'Page Title If First', 'Break Lists');
        +
        +    foreach my $topicType (@topicTypeOrder)
        +        {
        +        if (!exists $doneTopicTypes{$topicType})
        +            {
        +            if (substr($topicType, -1) eq '*')
        +                {
        +                print FH_TOPICS "\n\n"
        +                . 'Alter Topic Type: ' . substr($topicType, 0, -1) . "\n\n";
        +
        +                $altering = 1;
        +                $numberOfProperties = 0;
        +                }
        +            else
        +                {
        +                print FH_TOPICS "\n\n"
        +                . 'Topic Type: ' . $topicType . "\n\n";
        +
        +                $altering = 0;
        +                $numberOfProperties = 0;
        +                };
        +
        +            foreach my $property (@propertyOrder)
        +                {
        +                if (exists $properties{$topicType}->{lc($property)})
        +                    {
        +                    print FH_TOPICS
        +                    '   ' . $property . ': ' . ucfirst( $properties{$topicType}->{lc($property)} ) . "\n";
        +
        +                    $numberOfProperties++;
        +                    };
        +                };
        +
        +            if (exists $properties{$topicType}->{'can group with'})
        +                {
        +                my @typeStrings = split(/ ?, ?/, lc($properties{$topicType}->{'can group with'}));
        +                my @types;
        +
        +                foreach my $typeString (@typeStrings)
        +                    {
        +                    if (exists $names{$typeString})
        +                        {  push @types, $names{$typeString};  };
        +                    };
        +
        +                if (scalar @types)
        +                    {
        +                    for (my $i = 0; $i < scalar @types; $i++)
        +                        {
        +                        my $name = NaturalDocs::Topics->NameOfType($types[$i], 1);
        +
        +                        if ($i == 0)
        +                            {  print FH_TOPICS '   Can Group With: ' . $name;  }
        +                        else
        +                            {  print FH_TOPICS ', ' . $name;  };
        +                        };
        +
        +                    print FH_TOPICS "\n";
        +                    $numberOfProperties++;
        +                    };
        +                };
        +
        +            if (scalar @{$properties{$topicType}->{'keywords'}})
        +                {
        +                if ($numberOfProperties > 1)
        +                    {  print FH_TOPICS "\n";  };
        +
        +                print FH_TOPICS
        +                '   ' . ($altering ? 'Add ' : '') . 'Keywords:' . "\n";
        +
        +                my $keywords = $properties{$topicType}->{'keywords'};
        +
        +                for (my $i = 0; $i < scalar @$keywords; $i += 2)
        +                    {
        +                    print FH_TOPICS '      ' . $keywords->[$i];
        +
        +                    if (defined $keywords->[$i + 1])
        +                        {  print FH_TOPICS ', ' . $keywords->[$i + 1];  };
        +
        +                    print FH_TOPICS "\n";
        +                    };
        +                };
        +
        +            $doneTopicTypes{$topicType} = 1;
        +            };
        +        };
        +
        +    close(FH_TOPICS);
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Functions
        +
        +
        +#
        +#   Function: KeywordInfo
        +#
        +#   Returns information about a topic keyword.
        +#
        +#   Parameters:
        +#
        +#       keyword - The keyword, which may be plural.
        +#
        +#   Returns:
        +#
        +#       The array ( topicType, info, isPlural ), or an empty array if the keyword doesn't exist.
        +#
        +#       topicType - The <TopicType> of the keyword.
        +#       info - The <NaturalDocs::Topics::Type> of its type.
        +#       isPlural - Whether the keyword was plural or not.
        +#
        +sub KeywordInfo #(keyword)
        +    {
        +    my ($self, $keyword) = @_;
        +
        +    $keyword = lc($keyword);
        +
        +    my $type = $keywords{$keyword};
        +
        +    if (defined $type)
        +        {  return ( $type, $types{$type}, undef );  };
        +
        +    $type = $pluralKeywords{$keyword};
        +
        +    if (defined $type)
        +        {  return ( $type, $types{$type}, 1 );  };
        +
        +    return ( );
        +    };
        +
        +
        +#
        +#   Function: NameInfo
        +#
        +#   Returns information about a topic name.
        +#
        +#   Parameters:
        +#
        +#      name - The topic type name, which can be plural and/or alphanumeric only.
        +#
        +#   Returns:
        +#
        +#       The array ( topicType, info ), or an empty array if the name doesn't exist.  Note that unlike <KeywordInfo()>, this
        +#       does *not* tell you whether the name is plural or not.
        +#
        +#       topicType - The <TopicType> of the name.
        +#       info - The <NaturalDocs::Topics::Type> of the type.
        +#
        +sub NameInfo #(name)
        +    {
        +    my ($self, $name) = @_;
        +
        +    my $type = $names{lc($name)};
        +
        +    if (defined $type)
        +        {  return ( $type, $types{$type} );  }
        +    else
        +        {  return ( );  };
        +    };
        +
        +
        +#
        +#   Function: TypeInfo
        +#
        +#   Returns information about a <TopicType>.
        +#
        +#   Parameters:
        +#
        +#      type - The <TopicType>.
        +#
        +#   Returns:
        +#
        +#       The <NaturalDocs::Topics::Type> of the type, or undef if it didn't exist.
        +#
        +sub TypeInfo #(type)
        +    {
        +    my ($self, $type) = @_;
        +    return $types{$type};
        +    };
        +
        +
        +#
        +#   Function: NameOfType
        +#
        +#   Returns the name of the passed <TopicType>, or undef if it doesn't exist.
        +#
        +#   Parameters:
        +#
        +#       topicType - The <TopicType>.
        +#       plural - Whether to return the plural instead of the singular.
        +#       alphanumericOnly - Whether to strips everything but alphanumeric characters out.  Case isn't modified.
        +#
        +#   Returns:
        +#
        +#       The topic type name, according to what was specified in the parameters, or undef if it doesn't exist.
        +#
        +sub NameOfType #(topicType, plural, alphanumericOnly)
        +    {
        +    my ($self, $topicType, $plural, $alphanumericOnly) = @_;
        +
        +    my $topicObject = $types{$topicType};
        +
        +    if (!defined $topicObject)
        +        {  return undef;  };
        +
        +    my $topicName = ($plural ? $topicObject->PluralName() : $topicObject->Name());
        +
        +    if ($alphanumericOnly)
        +        {  $topicName =~ tr/a-zA-Z0-9//cd;  };
        +
        +    return $topicName;
        +    };
        +
        +
        +#
        +#   Function: TypeFromName
        +#
        +#   Returns a <TopicType> for the passed topic name.
        +#
        +#   Parameters:
        +#
        +#       topicName - The name of the topic, which can be plural and/or alphanumeric only.
        +#
        +#   Returns:
        +#
        +#       The <TopicType>.  It does not specify whether the name was plural or not.
        +#
        +sub TypeFromName #(topicName)
        +    {
        +    my ($self, $topicName) = @_;
        +
        +    return $names{lc($topicName)};
        +    };
        +
        +
        +#
        +#   Function: IsValidType
        +#
        +#   Returns whether the passed <TopicType> is defined.
        +#
        +sub IsValidType #(type)
        +    {
        +    my ($self, $type) = @_;
        +    return exists $types{$type};
        +    };
        +
        +
        +#
        +#   Function: TypeFromLegacy
        +#
        +#   Returns a <TopicType> for the passed legacy topic type integer.  <TopicTypes> were changed from integer constants to
        +#   strings in 1.3.
        +#
        +sub TypeFromLegacy #(legacyInt)
        +    {
        +    my ($self, $int) = @_;
        +    return $legacyTypes[$int];
        +    };
        +
        +
        +#
        +#   Function: AllIndexableTypes
        +#
        +#   Returns an array of all possible indexable <TopicTypes>.
        +#
        +sub AllIndexableTypes
        +    {
        +    my ($self) = @_;
        +    return keys %indexable;
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Support Functions
        +
        +
        +#
        +#   Function: MakeTopicType
        +#
        +#   Returns a <TopicType> for the passed topic name.  It does not check to see if it exists already.
        +#
        +#   Parameters:
        +#
        +sub MakeTopicType #(topicName)
        +    {
        +    my ($self, $topicName) = @_;
        +
        +    # Dependency: The values of the default topic type constants must match what is generated here.
        +
        +    # Turn everything to lowercase and strip non-alphanumeric characters.
        +    $topicName = lc($topicName);
        +    $topicName =~ tr/a-z0-9//cd;
        +
        +    return $topicName;
        +    };
        +
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Topics/Type.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Topics/Type.pm
        new file mode 100755
        index 0000000..2ed959e
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Topics/Type.pm
        @@ -0,0 +1,152 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::Topics::Type
        +#
        +###############################################################################
        +#
        +#   A class storing information about a <TopicType>.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +
        +package NaturalDocs::Topics::Type;
        +
        +use NaturalDocs::DefineMembers 'NAME',                         'Name()',
        +                                                 'PLURAL_NAME',             'PluralName()',      'SetPluralName()',
        +                                                 'INDEX',                        'Index()',              'SetIndex()',
        +                                                 'SCOPE',                       'Scope()',              'SetScope()',
        +                                                 'PAGE_TITLE_IF_FIRST', 'PageTitleIfFirst()', 'SetPageTitleIfFirst()',
        +                                                 'BREAK_LISTS',             'BreakLists()',        'SetBreakLists()',
        +                                                 'CLASS_HIERARCHY',    'ClassHierarchy()',  'SetClassHierarchy()',
        +                                                 'CAN_GROUP_WITH';
        +
        +# Dependency: New() depends on the order of these and that there are no parent classes.
        +
        +use base 'Exporter';
        +our @EXPORT = ('SCOPE_NORMAL', 'SCOPE_START', 'SCOPE_END', 'SCOPE_ALWAYS_GLOBAL');
        +
        +#
        +#   Constants: Members
        +#
        +#   The object is implemented as a blessed arrayref, with the following constants as its indexes.
        +#
        +#   NAME - The topic's name.
        +#   PLURAL_NAME - The topic's plural name.
        +#   INDEX - Whether the topic is indexed.
        +#   SCOPE - The topic's <ScopeType>.
        +#   PAGE_TITLE_IF_FIRST - Whether the topic becomes the page title if it's first in a file.
        +#   BREAK_LISTS - Whether list topics should be broken into individual topics in the output.
        +#   CLASS_HIERARCHY - Whether the topic is part of the class hierarchy.
        +#   CAN_GROUP_WITH - The existence hashref of <TopicTypes> the type can be grouped with.
        +#
        +
        +
        +
        +###############################################################################
        +# Group: Types
        +
        +
        +#
        +#   Constants: ScopeType
        +#
        +#   The possible values for <Scope()>.
        +#
        +#   SCOPE_NORMAL - The topic stays in the current scope without affecting it.
        +#   SCOPE_START - The topic starts a scope.
        +#   SCOPE_END - The topic ends a scope, returning it to global.
        +#   SCOPE_ALWAYS_GLOBAL - The topic is always global, but it doesn't affect the current scope.
        +#
        +use constant SCOPE_NORMAL => 1;
        +use constant SCOPE_START => 2;
        +use constant SCOPE_END => 3;
        +use constant SCOPE_ALWAYS_GLOBAL => 4;
        +
        +
        +
        +###############################################################################
        +# Group: Functions
        +
        +
        +#
        +#   Function: New
        +#
        +#   Creates and returns a new object.
        +#
        +#   Parameters:
        +#
        +#       name - The topic name.
        +#       pluralName - The topic's plural name.
        +#       index - Whether the topic is indexed.
        +#       scope - The topic's <ScopeType>.
        +#       pageTitleIfFirst - Whether the topic becomes the page title if it's the first one in a file.
        +#       breakLists - Whether list topics should be broken into individual topics in the output.
        +#
        +sub New #(name, pluralName, index, scope, pageTitleIfFirst, breakLists)
        +    {
        +    my ($self, @params) = @_;
        +
        +    # Dependency: Depends on the parameter order matching the member order and that there are no parent classes.
        +
        +    my $object = [ @params ];
        +    bless $object, $self;
        +
        +    return $object;
        +    };
        +
        +
        +#
        +#   Functions: Accessors
        +#
        +#   Name - Returns the topic name.
        +#   PluralName - Returns the topic's plural name.
        +#   SetPluralName - Replaces the topic's plural name.
        +#   Index - Whether the topic is indexed.
        +#   SetIndex - Sets whether the topic is indexed.
        +#   Scope - Returns the topic's <ScopeType>.
        +#   SetScope - Replaces the topic's <ScopeType>.
        +#   PageTitleIfFirst - Returns whether the topic becomes the page title if it's first in the file.
        +#   SetPageTitleIfFirst - Sets whether the topic becomes the page title if it's first in the file.
        +#   BreakLists - Returns whether list topics should be broken into individual topics in the output.
        +#   SetBreakLists - Sets whether list topics should be broken into individual topics in the output.
        +#   ClassHierarchy - Returns whether the topic is part of the class hierarchy.
        +#   SetClassHierarchy - Sets whether the topic is part of the class hierarchy.
        +#
        +
        +
        +#
        +#   Function: CanGroupWith
        +#
        +#   Returns whether the type can be grouped with the passed <TopicType>.
        +#
        +sub CanGroupWith #(TopicType type) -> bool
        +    {
        +    my ($self, $type) = @_;
        +    return ( defined $self->[CAN_GROUP_WITH] && exists $self->[CAN_GROUP_WITH]->{$type} );
        +    };
        +
        +
        +#
        +#   Function: SetCanGroupWith
        +#
        +#   Sets the list of <TopicTypes> the type can be grouped with.
        +#
        +sub SetCanGroupWith #(TopicType[] types)
        +    {
        +    my ($self, $types) = @_;
        +
        +    $self->[CAN_GROUP_WITH] = { };
        +
        +    foreach my $type (@$types)
        +        {  $self->[CAN_GROUP_WITH]->{$type} = 1;  };
        +    };
        +
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Version.pm b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Version.pm
        new file mode 100755
        index 0000000..27a22ec
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Modules/NaturalDocs/Version.pm
        @@ -0,0 +1,361 @@
        +###############################################################################
        +#
        +#   Package: NaturalDocs::Version
        +#
        +###############################################################################
        +#
        +#   A package for handling version information.  What?  That's right.  Although it should be easy and obvious, version numbers
        +#   need to be dealt with in a variety of formats, plus there's compatibility with older releases which handled it differently.  I
        +#   wanted to centralize the code after it started getting complicated.  So there ya go.
        +#
        +###############################################################################
        +
        +# This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
        +# Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
        +# Refer to License.txt for the complete details
        +
        +use strict;
        +use integer;
        +
        +package NaturalDocs::Version;
        +
        +
        +###############################################################################
        +# Group: Functions
        +
        +
        +#
        +#   Function: ToString
        +#
        +#   Converts a <VersionInt> to a string.
        +#
        +sub ToString #(VersionInt version) => string
        +    {
        +    my ($self, $version) = @_;
        +
        +    my ($major, $minor, $month, $day, $year) = $self->ToValues($version);
        +
        +    if ($minor % 10 == 0)
        +        {  $minor /= 10;  };
        +
        +    if ($day)
        +        {  return sprintf('Development Release %02d-%02d-%d (%d.%d base)', $month, $day, $year, $major, $minor);  }
        +    else
        +        {  return $major . '.' . $minor;  };
        +    };
        +
        +
        +#
        +#   Function: FromString
        +#
        +#   Converts a version string to a <VersionInt>.
        +#
        +sub FromString #(string string) => VersionInt
        +    {
        +    my ($self, $string) = @_;
        +
        +    if ($string eq '1')
        +        {
        +        return $self->FromValues(0, 91, 0, 0, 0);  # 0.91
        +        }
        +    else
        +        {
        +        my ($major, $minor, $month, $day, $year);
        +
        +        if ($string =~ /^(\d{1,2})\.(\d{1,2})$/)
        +            {
        +            ($major, $minor) = ($1, $2);
        +            ($month, $day, $year) = (0, 0, 0);
        +            }
        +        elsif ($string =~ /^Development Release (\d{1,2})-(\d{1,2})-(\d\d\d\d) \((\d{1,2})\.(\d{1,2}) base\)$/)
        +            {
        +            ($month, $day, $year, $major, $minor) = ($1, $2, $3, $4, $5);
        +
        +            # We have to do sanity checking because these can come from user-editable text files.  The version numbers should
        +            # already be constrained simply by being forced to have only two digits.
        +
        +            if ($month > 12 || $month < 1 || $day > 31 || $day < 1 || $year > 2255 || $year < 2000)
        +                {  die 'The version string ' . $string . " doesn't have a valid date.\n";  };
        +            }
        +        else
        +            {
        +            die 'The version string ' . $string . " isn't in a recognized format.\n";
        +            };
        +
        +        if (length $minor == 1)
        +            {  $minor *= 10;  };
        +
        +        return $self->FromValues($major, $minor, $month, $day, $year);
        +        };
        +    };
        +
        +
        +#
        +#   Function: ToTextFile
        +#
        +#   Writes a <VersionInt> to a text file.
        +#
        +#   Parameters:
        +#
        +#       fileHandle - The handle of the file to write it to.  It should be at the correct location.
        +#       version - The <VersionInt> to write.
        +#
        +sub ToTextFile #(handle fileHandle, VersionInt version)
        +    {
        +    my ($self, $fileHandle, $version) = @_;
        +
        +    print $fileHandle $self->ToString($version) . "\n";
        +    };
        +
        +
        +#
        +#   Function: ToBinaryFile
        +#
        +#   Writes a <VersionInt> to a binary file.
        +#
        +#   Parameters:
        +#
        +#       fileHandle - The handle of the file to write it to.  It should be at the correct location.
        +#       version - The <VersionInt> to write.
        +#
        +sub ToBinaryFile #(handle fileHandle, VersionInt version)
        +    {
        +    my ($self, $fileHandle, $version) = @_;
        +
        +    my ($major, $minor, $month, $day, $year) = $self->ToValues($version);
        +
        +    # 1.35 development releases are encoded as 1.36.  Everything else is literal.
        +    if ($day && $major == 1 && $minor == 35)
        +        {  $minor = 36;  };
        +
        +    print $fileHandle pack('CC', $major, $minor);
        +
        +    # Date fields didn't exist with 1.35 stable and earlier.  1.35 development releases are encoded as 1.36, so this works.
        +    if ($major > 1 || ($major == 1 && $minor > 35))
        +        {
        +        if ($day)
        +            {  $year -= 2000;  };
        +
        +        print $fileHandle pack('CCC', $month, $day, $year);
        +        };
        +    };
        +
        +
        +#
        +#   Function: FromBinaryFile
        +#
        +#   Retrieves a <VersionInt> from a binary file.
        +#
        +#   Parameters:
        +#
        +#       fileHandle - The handle of the file to read it from.  It should be at the correct location.
        +#
        +#   Returns:
        +#
        +#       The <VersionInt>.
        +#
        +sub FromBinaryFile #(handle fileHandle) => VersionInt
        +    {
        +    my ($self, $fileHandle) = @_;
        +
        +    my ($major, $minor, $month, $day, $year);
        +
        +    my $raw;
        +    read($fileHandle, $raw, 2);
        +
        +    ($major, $minor) = unpack('CC', $raw);
        +
        +    # 1.35 stable is the last release without the date fields.  1.35 development releases are encoded as 1.36, so this works.
        +    if ($major > 1 || ($major == 1 && $minor > 35))
        +        {
        +        read($fileHandle, $raw, 3);
        +        ($month, $day, $year) = unpack('CCC', $raw);
        +
        +        if ($day)
        +            {  $year += 2000;  };
        +        }
        +    else
        +        {  ($month, $day, $year) = (0, 0, 0);  };
        +
        +    # Fix the 1.35 development release special encoding.
        +    if ($major == 1 && $minor == 36)
        +        {  $minor = 35;  };
        +
        +
        +    return $self->FromValues($major, $minor, $month, $day, $year);
        +    };
        +
        +
        +#
        +#   Function: ToValues
        +#
        +#   Converts a <VersionInt> to the array ( major, minor, month, day, year ).  The minor version will be in two digit form, so x.2
        +#   will return 20.  The date fields will be zero for stable releases.
        +#
        +sub ToValues #(VersionInt version) => ( int, int, int, int, int )
        +    {
        +    my ($self, $version) = @_;
        +
        +    my $major = ($version & 0x00003F80) >> 7;
        +    my $minor = ($version & 0x0000007F);
        +    my $month = ($version & 0x00780000) >> 19;
        +    my $day = ($version & 0x0007C000) >> 14;
        +    my $year = ($version & 0x7F800000) >> 23;
        +
        +    if ($year)
        +        {  $year += 2000;  };
        +
        +    return ( $major, $minor, $month, $day, $year );
        +    };
        +
        +
        +#
        +#   Function: FromValues
        +#
        +#   Returns a <VersionInt> created from the passed values.
        +#
        +#   Parameters:
        +#
        +#       major - The major version number.  For development releases, it should be the stable version it's based off of.
        +#       minor - The minor version number.  It should always be two digits, so x.2 should pass 20.  For development
        +#                  releases, it should be the stable version it's based off of.
        +#       month - The numeric month of the development release.  For stable releases it should be zero.
        +#       day - The day of the development release.  For stable releases it should be zero.
        +#       year - The year of the development release.  For stable releases it should be zero.
        +#
        +#   Returns:
        +#
        +#       The <VersionInt>.
        +#
        +sub FromValues #(int major, int minor, int month, int day, int year) => VersionInt
        +    {
        +    my ($self, $major, $minor, $month, $day, $year) = @_;
        +
        +    if ($day)
        +        {  $year -= 2000;  };
        +
        +    return ($major << 7) + ($minor) + ($month << 19) + ($day << 14) + ($year << 23);
        +    };
        +
        +
        +#
        +#   Function: CheckFileFormat
        +#
        +#   Checks if a file's format is compatible with the current release.
        +#
        +#   - If the application is a development release or the file is from one, this only returns true if they are from the exact same
        +#     development release.
        +#   - If neither of them are development releases, this only returns true if the file is from a release between the minimum specified
        +#     and the current version.  If there's no minimum it just checks that it's below the current version.
        +#
        +#   Parameters:
        +#
        +#       fileVersion - The <VersionInt> of the file format.
        +#       minimumVersion - The minimum <VersionInt> required of the file format.  May be undef.
        +#
        +#   Returns:
        +#
        +#       Whether the file's format is compatible per the above rules.
        +#
        +sub CheckFileFormat #(VersionInt fileVersion, optional VersionInt minimumVersion) => bool
        +    {
        +    my ($self, $fileVersion, $minimumVersion) = @_;
        +
        +    my $appVersion = NaturalDocs::Settings->AppVersion();
        +
        +    if ($self->IsDevelopmentRelease($appVersion) || $self->IsDevelopmentRelease($fileVersion))
        +        {  return ($appVersion == $fileVersion);  }
        +    elsif ($minimumVersion && $fileVersion < $minimumVersion)
        +        {  return 0;  }
        +    else
        +        {  return ($fileVersion <= $appVersion);  };
        +    };
        +
        +
        +#
        +#   Function: IsDevelopmentRelease
        +#
        +#   Returns whether the passed <VersionInt> is for a development release.
        +#
        +sub IsDevelopmentRelease #(VersionInt version) => bool
        +    {
        +    my ($self, $version) = @_;
        +
        +    # Return if any of the date fields are set.
        +    return ($version & 0x7FFFC000);
        +    };
        +
        +
        +
        +###############################################################################
        +# Group: Implementation
        +
        +#
        +#   About: String Format
        +#
        +#   Full Releases:
        +#
        +#       Full releases are in the common major.minor format.  Either part can be up to two digits.  The minor version is interpreted
        +#       as decimal places, so 1.3 > 1.22.  There are no leading or trailing zeroes.
        +#
        +#   Development Releases:
        +#
        +#       Development releases are in the format "Development Release mm-dd-yyyy (vv.vv base)" where vv.vv is the version
        +#       number of the full release it's based off of.  The month and day will have leading zeroes where applicable.  Example:
        +#       "Development Release 07-09-2006 (1.35 base)".
        +#
        +#   0.91 and Earlier:
        +#
        +#       Text files from releases prior to 0.95 had a separate file format version number that was used instead of the application
        +#       version.  These were never changed between 0.85 and 0.91, so they are simply "1".  Text version numbers that are "1"
        +#       instead of "1.0" will be interpreted as 0.91.
        +#
        +
        +#
        +#   About: Integer Format
        +#
        +#   <VersionInts> are 32-bit values with the bit distribution below.
        +#
        +#   > s yyyyyyyy mmmm ddddd vvvvvvv xxxxxxx
        +#   > [syyy|yyyy] [ymmm|mddd] [ddvv|vvvv] [vxxx|xxxx]
        +#
        +#   s - The sign bit.  Always zero, so it's always interpreted as positive.
        +#   y - The year bits if it's a development release, zero otherwise.  2000 is added to the value, so the range is from 2000 to 2255.
        +#   m - The month bits if it's a development release, zero otherwise.
        +#   d - The day bits if it's a development release, zero otherwise.
        +#   v - The major version bits.  For development releases, it's the last stable version it was based off of.
        +#   x - The minor version bits.  It's always stored as two decimals, so x.2 would store 20 here.  For development releases, it's the
        +#        last stable version it was based off of.
        +#
        +#   It's stored with the development release date at a higher significance than the version because we want a stable release to
        +#   always treat a development release as higher than itself, and thus not attempt to read any of the data files.  I'm not tracking
        +#   data file formats at the development release level.
        +#
        +
        +#
        +#   About: Binary File Format
        +#
        +#   Current:
        +#
        +#       Five 8-bit unsigned values, appearing major, minor, month, day, year.  Minor is always stored with two digits, so x.2 would
        +#       store 20.  Year is stored minus 2000, so 2006 is stored 6.  Stable releases store zero for all the date fields.
        +#
        +#   1.35 Development Releases:
        +#
        +#       1.35-based development releases are stored the same as current releases, but with 1.36 as the version number.  This is
        +#       done so previous versions of Natural Docs that didn't include the date fields would still know it's a higher version.  There is
        +#       no actual 1.36 release.
        +#
        +#   1.35 and Earlier:
        +#
        +#       Two 8-bit unsigned values, appearing major then minor.  Minor is always stored with two digits, so x.2 would store 20.
        +#
        +
        +#
        +#   About: Text File Format
        +#
        +#   In text files, versions are the <String Format> followed by a native line break.
        +#
        +
        +
        +1;
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/NaturalDocs b/lib/ann/fann/docs/NaturalDocs-1.52/NaturalDocs
        new file mode 100755
        index 0000000..70390e0
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/NaturalDocs
        @@ -0,0 +1,367 @@
        +#!/usr/bin/perl
        +
        +=begin nd
        +
        +    Script: NaturalDocs
        +    ___________________________________________________________________________
        +
        +    Version 1.52
        +
        +    Copyright © 2003-2010 Greg Valure
        +
        +    http://www.naturaldocs.org
        +
        +	Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL).  Refer to the <License> for the
        +	complete details.
        +
        +
        +    Topic: Code Conventions
        +
        +        - Every package function is called with an arrow operator.  It's needed for inheritance in some places, and consistency
        +         when it's not.
        +
        +        - No constant will ever be zero or undef.  Those are reserved so any piece of code can allow a "none of the above" option
        +         and not worry about conflicts with an existing value.
        +
        +        - Existence hashes are hashes where the value doesn't matter.  It acts more as a set, where the existence of the key is
        +         the significant part.
        +
        +
        +    Topic: File Format Conventions
        +
        +        - All integers appear in big-endian format.  So a UInt16 should be handled with a 'n' in pack and unpack, not with a 'S'.
        +
        +        - UString16's are a big-endian UInt16 followed by that many UTF-8 bytes.  A null-terminator is not stored.
        +
        +        - If a higher-level type is described in a file format, that means the loading and saving format is handled by that package.
        +         For example, if you see <SymbolString> in the format, that means <NaturalDocs::SymbolString->ToBinaryFile()> and
        +         <NaturalDocs::SymbolString->FromBinaryFile()> are used to manipulate it, and the underlying format should be treated
        +         as opaque.
        +
        +=cut
        +
        +
        +use strict;
        +use integer;
        +
        +use 5.008;  # When :encoding modifiers were allowed with file access.
        +
        +use English '-no_match_vars';
        +
        +use FindBin;
        +use lib "$FindBin::RealBin/Modules";
        +
        +sub INIT
        +    {
        +    # This function is just here so that when I start the debugger, it doesn't open a new file.  Normally it would jump to an INIT
        +    # function in some other file since that's the first piece of code to execute.
        +    };
        +
        +
        +use NaturalDocs::Constants;
        +use NaturalDocs::Version;
        +use NaturalDocs::File;
        +use NaturalDocs::Error;
        +
        +use NaturalDocs::LineReader;
        +use NaturalDocs::ConfigFile;
        +use NaturalDocs::BinaryFile;
        +use NaturalDocs::StatusMessage;
        +use NaturalDocs::SymbolString;
        +use NaturalDocs::ReferenceString;
        +use NaturalDocs::NDMarkup;
        +
        +use NaturalDocs::Settings;
        +use NaturalDocs::Topics;
        +use NaturalDocs::Languages;
        +use NaturalDocs::Project;
        +use NaturalDocs::Menu;
        +use NaturalDocs::SymbolTable;
        +use NaturalDocs::ClassHierarchy;
        +use NaturalDocs::SourceDB;
        +use NaturalDocs::ImageReferenceTable;
        +use NaturalDocs::Parser;
        +use NaturalDocs::Builder;
        +
        +
        +
        +###############################################################################
        +#
        +#   Group: Basic Types
        +#
        +#   Types used throughout the program.  As Perl is a weakly-typed language unless you box things into objects, these types are
        +#   for documentation purposes and are not enforced.
        +#
        +#
        +#   Type: FileName
        +#
        +#   A string representing the absolute, platform-dependent path to a file.  Relative file paths are no longer in use anywhere in the
        +#   program.  All path manipulation should be done through <NaturalDocs::File>.
        +#
        +#
        +#   Type: VersionInt
        +#
        +#   A comparable integer representing a version number.  Converting them to and from text and binary should be handled by
        +#   <NaturalDocs::Version>.
        +#
        +#
        +#   Type: SymbolString
        +#
        +#   A scalar which encodes a normalized array of identifier strings representing a full or partially-resolved symbol.  All symbols
        +#   must be retrieved from plain text via <NaturalDocs::SymbolString->FromText()> so that the separation and normalization is
        +#   always consistent.  SymbolStrings are comparable via string compare functions and are sortable.
        +#
        +#
        +#   Type: ReferenceString
        +#
        +#   All the information about a reference that makes it unique encoded into a string.  This includes the <SymbolString> of the
        +#   reference, the scope <SymbolString> it appears in, the scope <SymbolStrings> it has access to via "using", and the
        +#   <ReferenceType>.  This is done because if any of those parameters change, it needs to be treated as a completely separate
        +#   reference.
        +#
        +
        +
        +
        +###############################################################################
        +# Group: Support Functions
        +# General functions that are used throughout the program, and that don't really fit anywhere else.
        +
        +
        +#
        +#   Function: StringCompare
        +#
        +#   Compares two strings so that the result is good for proper sorting.  A proper sort orders the characters as
        +#   follows:
        +#
        +#   - End of string.
        +#   - Whitespace.  Line break-tab-space.
        +#   - Symbols, which is anything not included in the other entries.
        +#   - Numbers, 0-9.
        +#   - Letters, case insensitive except to break ties.
        +#
        +#   If you use cmp instead of this function, the result would go by ASCII/Unicode values which would place certain symbols
        +#   between letters and numbers instead of having them all grouped together.  Also, you would have to choose between case
        +#   sensitivity or complete case insensitivity, in which ties are broken arbitrarily.
        +#
        +#   Returns:
        +#
        +#   Like cmp, it returns zero if A and B are equal, a positive value if A is greater than B, and a negative value if A is less than B.
        +#
        +sub StringCompare #(a, b)
        +    {
        +    my ($a, $b) = @_;
        +
        +    if (!defined $a)
        +        {
        +        if (!defined $b)
        +            {  return 0;  }
        +        else
        +            {  return -1;  };
        +        }
        +    elsif (!defined $b)
        +        {
        +        return 1;
        +        };
        +
        +    my $translatedA = lc($a);
        +    my $translatedB = lc($b);
        +
        +    $translatedA =~ tr/\n\r\t 0-9a-z/\x01\x02\x03\x04\xDB-\xFE/;
        +    $translatedB =~ tr/\n\r\t 0-9a-z/\x01\x02\x03\x04\xDB-\xFE/;
        +
        +    my $result = $translatedA cmp $translatedB;
        +
        +    if ($result == 0)
        +        {
        +        # Break the tie by comparing their case.  Lowercase before uppercase.
        +
        +        # If statement just to keep everything theoretically kosher, even though in practice we don't need this.
        +        if (ord('A') > ord('a'))
        +            {  return ($a cmp $b);  }
        +        else
        +            {  return ($b cmp $a);  };
        +        }
        +    else
        +        {  return $result;  };
        +    };
        +
        +
        +#
        +#   Function: ShortenToMatchStrings
        +#
        +#   Compares two arrayrefs and shortens the first array to only contain shared entries.  Assumes all entries are strings.
        +#
        +#   Parameters:
        +#
        +#       sharedArrayRef - The arrayref that will be shortened to only contain common elements.
        +#       compareArrayRef - The arrayref to match.
        +#
        +sub ShortenToMatchStrings #(sharedArrayRef, compareArrayRef)
        +    {
        +    my ($sharedArrayRef, $compareArrayRef) = @_;
        +
        +    my $index = 0;
        +
        +    while ($index < scalar @$sharedArrayRef && $index < scalar @$compareArrayRef &&
        +             $sharedArrayRef->[$index] eq $compareArrayRef->[$index])
        +        {  $index++;  };
        +
        +    if ($index < scalar @$sharedArrayRef)
        +        {  splice(@$sharedArrayRef, $index);  };
        +    };
        +
        +
        +#
        +#   Function: FindFirstSymbol
        +#
        +#   Searches a string for a number of symbols to see which appears first.
        +#
        +#   Parameters:
        +#
        +#       string - The string to search.
        +#       symbols - An arrayref of symbols to look for.
        +#       index - The index to start at, if any.
        +#
        +#   Returns:
        +#
        +#       The array ( index, symbol ).
        +#
        +#       index - The index the first symbol appears at, or -1 if none appear.
        +#       symbol - The symbol that appeared, or undef if none.
        +#
        +sub FindFirstSymbol #(string, symbols, index)
        +    {
        +    my ($string, $symbols, $index) = @_;
        +
        +    if (!defined $index)
        +        {  $index = 0;  };
        +
        +    my $lowestIndex = -1;
        +    my $lowestSymbol;
        +
        +    foreach my $symbol (@$symbols)
        +        {
        +        my $testIndex = index($string, $symbol, $index);
        +
        +        if ($testIndex != -1 && ($lowestIndex == -1 || $testIndex < $lowestIndex))
        +            {
        +            $lowestIndex = $testIndex;
        +            $lowestSymbol = $symbol;
        +            };
        +        };
        +
        +    return ($lowestIndex, $lowestSymbol);
        +    };
        +
        +
        +
        +
        +###############################################################################
        +#
        +#   Main Code
        +#
        +#   The order in which functions are called here is critically important.  Read the "Usage and Dependencies" sections of all the
        +#   packages before even thinking about rearranging these.
        +#
        +
        +
        +eval {
        +
        +    # Check that our required packages are okay.
        +
        +    NaturalDocs::File->CheckCompatibility();
        +
        +
        +    # Almost everything requires Settings to be initialized.
        +
        +    NaturalDocs::Settings->Load();
        +
        +
        +    NaturalDocs::Project->LoadConfigFileInfo();
        +
        +    NaturalDocs::Topics->Load();
        +    NaturalDocs::Languages->Load();
        +
        +
        +    # Migrate from the old file names that were used prior to 1.14.
        +
        +    NaturalDocs::Project->MigrateOldFiles();
        +
        +
        +    if (!NaturalDocs::Settings->IsQuiet())
        +        {  print "Finding files and detecting changes...\n";  };
        +
        +    NaturalDocs::Project->LoadSourceFileInfo();
        +    NaturalDocs::Project->LoadImageFileInfo();
        +
        +    # Register SourceDB extensions.  Order is important.
        +    NaturalDocs::ImageReferenceTable->Register();
        +
        +    NaturalDocs::SymbolTable->Load();
        +    NaturalDocs::ClassHierarchy->Load();
        +    NaturalDocs::SourceDB->Load();
        +
        +    NaturalDocs::SymbolTable->Purge();
        +    NaturalDocs::ClassHierarchy->Purge();
        +    NaturalDocs::SourceDB->PurgeDeletedSourceFiles();
        +
        +
        +    # Parse any supported files that have changed.
        +
        +    my $filesToParse = NaturalDocs::Project->FilesToParse();
        +    my $amount = scalar keys %$filesToParse;
        +
        +    if ($amount > 0)
        +        {
        +        NaturalDocs::StatusMessage->Start('Parsing ' . $amount . ' file' . ($amount > 1 ? 's' : '') . '...', $amount);
        +
        +        foreach my $file (keys %$filesToParse)
        +            {
        +            NaturalDocs::Parser->ParseForInformation($file);
        +            NaturalDocs::StatusMessage->CompletedItem();
        +            };
        +        };
        +
        +
        +    # The symbol table is now fully resolved, so we can reduce its memory footprint.
        +
        +    NaturalDocs::SymbolTable->PurgeResolvingInfo();
        +
        +
        +    # Load and update the menu file.  We need to do this after parsing so when it is updated, it will detect files where the
        +    # default menu title has changed and files that have added or deleted Natural Docs content.
        +
        +    NaturalDocs::Menu->LoadAndUpdate();
        +
        +
        +    # Build any files that need it.  This needs to be run regardless of whether there are any files to build.  It will handle its own
        +    # output messages.
        +
        +    NaturalDocs::Builder->Run();
        +
        +
        +    # Write the changes back to disk.
        +
        +    NaturalDocs::Menu->Save();
        +    NaturalDocs::Project->SaveImageFileInfo();
        +    NaturalDocs::Project->SaveSourceFileInfo();
        +    NaturalDocs::SymbolTable->Save();
        +    NaturalDocs::ClassHierarchy->Save();
        +    NaturalDocs::SourceDB->Save();
        +    NaturalDocs::Settings->Save();
        +    NaturalDocs::Topics->Save();
        +    NaturalDocs::Languages->Save();
        +
        +    # Must be done last.
        +    NaturalDocs::Project->SaveConfigFileInfo();
        +
        +    if (!NaturalDocs::Settings->IsQuiet())
        +        {  print "Done.\n";  };
        +
        +};
        +
        +if ($EVAL_ERROR)  # Oops.
        +    {
        +    NaturalDocs::Error->HandleDeath();
        +    };
        +
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/NaturalDocs.bat b/lib/ann/fann/docs/NaturalDocs-1.52/NaturalDocs.bat
        new file mode 100755
        index 0000000..59e3963
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/NaturalDocs.bat
        @@ -0,0 +1,17 @@
        +@echo off
        +
        +set NaturalDocsParams=
        +
        +rem Shift and loop so we can get more than nine parameters.
        +rem This is especially important if we have spaces in file names.
        +
        +:MORE
        +if "%1"=="" goto NOMORE
        +set NaturalDocsParams=%NaturalDocsParams% %1
        +shift
        +goto MORE
        +:NOMORE
        +
        +perl NaturalDocs %NaturalDocsParams%
        +
        +set NaturalDocsParams=
        \ No newline at end of file
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Styles/Default.css b/lib/ann/fann/docs/NaturalDocs-1.52/Styles/Default.css
        new file mode 100755
        index 0000000..511703f
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Styles/Default.css
        @@ -0,0 +1,828 @@
        +/*
        +   IMPORTANT: If you're editing this file in the output directory of one of
        +   your projects, your changes will be overwritten the next time you run
        +   Natural Docs.  Instead, copy this file to your project directory, make your
        +   changes, and you can use it with -s.  Even better would be to make a CSS
        +   file in your project directory with only your changes, which you can then
        +   use with -s [original style] [your changes].
        +
        +   On the other hand, if you're editing this file in the Natural Docs styles
        +   directory, the changes will automatically be applied to all your projects
        +   that use this style the next time Natural Docs is run on them.
        +
        +   This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure.
        +   Natural Docs is licensed under version 3 of the GNU Affero General Public
        +   License (AGPL).  Refer to License.txt for the complete details.
        +
        +   This file may be distributed with documentation files generated by Natural Docs.
        +   Such documentation is not covered by Natural Docs' copyright and licensing,
        +   and may have its own copyright and distribution terms as decided by its author.
        +*/
        +
        +body {
        +    font: 10pt Verdana, Arial, sans-serif;
        +    color: #000000;
        +    margin: 0; padding: 0;
        +    }
        +
        +.ContentPage,
        +.IndexPage,
        +.FramedMenuPage {
        +    background-color: #E8E8E8;
        +    }
        +.FramedContentPage,
        +.FramedIndexPage,
        +.FramedSearchResultsPage,
        +.PopupSearchResultsPage {
        +    background-color: #FFFFFF;
        +    }
        +
        +
        +a:link,
        +a:visited { color: #900000; text-decoration: none }
        +a:hover { color: #900000; text-decoration: underline }
        +a:active { color: #FF0000; text-decoration: underline }
        +
        +td {
        +    vertical-align: top }
        +
        +img { border: 0;  }
        +
        +
        +/*
        +    Comment out this line to use web-style paragraphs (blank line between
        +    paragraphs, no indent) instead of print-style paragraphs (no blank line,
        +    indented.)
        +*/
        +p {
        +    text-indent: 5ex; margin: 0 }
        +
        +
        +/*  Opera doesn't break with just wbr, but will if you add this.  */
        +.Opera wbr:after {
        +	content: "\00200B";
        +	}
        +
        +
        +/*  Blockquotes are used as containers for things that may need to scroll.  */
        +blockquote {
        +    padding: 0;
        +    margin: 0;
        +    overflow: auto;
        +    }
        +
        +
        +.Firefox1 blockquote {
        +    padding-bottom: .5em;
        +    }
        +
        +/*  Turn off scrolling when printing.  */
        +@media print {
        +    blockquote {
        +        overflow: visible;
        +        }
        +    .IE blockquote {
        +        width: auto;
        +        }
        +    }
        +
        +
        +
        +#Menu {
        +    font-size: 9pt;
        +    padding: 10px 0 0 0;
        +    }
        +.ContentPage #Menu,
        +.IndexPage #Menu {
        +    position: absolute;
        +    top: 0;
        +    left: 0;
        +    width: 31ex;
        +    overflow: hidden;
        +    }
        +.ContentPage .Firefox #Menu,
        +.IndexPage .Firefox #Menu {
        +    width: 27ex;
        +    }
        +
        +
        +    .MTitle {
        +        font-size: 16pt; font-weight: bold; font-variant: small-caps;
        +        text-align: center;
        +        padding: 5px 10px 15px 10px;
        +        border-bottom: 1px dotted #000000;
        +        margin-bottom: 15px }
        +
        +    .MSubTitle {
        +        font-size: 9pt; font-weight: normal; font-variant: normal;
        +        margin-top: 1ex; margin-bottom: 5px }
        +
        +
        +    .MEntry a:link,
        +    .MEntry a:hover,
        +    .MEntry a:visited { color: #606060; margin-right: 0 }
        +    .MEntry a:active { color: #A00000; margin-right: 0 }
        +
        +
        +    .MGroup {
        +        font-variant: small-caps; font-weight: bold;
        +        margin: 1em 0 1em 10px;
        +        }
        +
        +    .MGroupContent {
        +        font-variant: normal; font-weight: normal }
        +
        +    .MGroup a:link,
        +    .MGroup a:hover,
        +    .MGroup a:visited { color: #545454; margin-right: 10px }
        +    .MGroup a:active { color: #A00000; margin-right: 10px }
        +
        +
        +    .MFile,
        +    .MText,
        +    .MLink,
        +    .MIndex {
        +        padding: 1px 17px 2px 10px;
        +        margin: .25em 0 .25em 0;
        +        }
        +
        +    .MText {
        +        font-size: 8pt; font-style: italic }
        +
        +    .MLink {
        +        font-style: italic }
        +
        +    #MSelected {
        +        color: #000000; background-color: #FFFFFF;
        +        /*  Replace padding with border.  */
        +        padding: 0 10px 0 10px;
        +        border-width: 1px 2px 2px 0; border-style: solid; border-color: #000000;
        +        margin-right: 5px;
        +        }
        +
        +    /*  Close off the left side when its in a group.  */
        +    .MGroup #MSelected {
        +        padding-left: 9px; border-left-width: 1px }
        +
        +    /*  A treat for Mozilla users.  Blatantly non-standard.  Will be replaced with CSS 3 attributes when finalized/supported.  */
        +    .Firefox #MSelected {
        +        -moz-border-radius-topright: 10px;
        +        -moz-border-radius-bottomright: 10px }
        +    .Firefox .MGroup #MSelected {
        +        -moz-border-radius-topleft: 10px;
        +        -moz-border-radius-bottomleft: 10px }
        +
        +
        +    #MSearchPanel {
        +        padding: 0px 6px;
        +        margin: .25em 0;
        +        }
        +
        +
        +    #MSearchField {
        +        font: italic 9pt Verdana, sans-serif;
        +        color: #606060;
        +        background-color: #E8E8E8;
        +        border: none;
        +        padding: 2px 4px;
        +        width: 100%;
        +        }
        +    /* Only Opera gets it right. */
        +    .Firefox #MSearchField,
        +    .IE #MSearchField,
        +    .Safari #MSearchField {
        +        width: 94%;
        +        }
        +    .Opera9 #MSearchField,
        +    .Konqueror #MSearchField {
        +        width: 97%;
        +        }
        +    .FramedMenuPage .Firefox #MSearchField,
        +    .FramedMenuPage .Safari #MSearchField,
        +    .FramedMenuPage .Konqueror #MSearchField {
        +        width: 98%;
        +        }
        +
        +    /* Firefox doesn't do this right in frames without #MSearchPanel added on.
        +        It's presence doesn't hurt anything other browsers. */
        +    #MSearchPanel.MSearchPanelInactive:hover #MSearchField {
        +        background-color: #FFFFFF;
        +        border: 1px solid #C0C0C0;
        +        padding: 1px 3px;
        +        }
        +    .MSearchPanelActive #MSearchField {
        +        background-color: #FFFFFF;
        +        border: 1px solid #C0C0C0;
        +        font-style: normal;
        +        padding: 1px 3px;
        +        }
        +
        +    #MSearchType {
        +        visibility: hidden;
        +        font: 8pt Verdana, sans-serif;
        +        width: 98%;
        +        padding: 0;
        +        border: 1px solid #C0C0C0;
        +        }
        +    .MSearchPanelActive #MSearchType,
        +    /*  As mentioned above, Firefox doesn't do this right in frames without #MSearchPanel added on. */
        +    #MSearchPanel.MSearchPanelInactive:hover #MSearchType,
        +    #MSearchType:focus {
        +        visibility: visible;
        +        color: #606060;
        +        }
        +    #MSearchType option#MSearchEverything {
        +        font-weight: bold;
        +        }
        +
        +    .Opera8 .MSearchPanelInactive:hover,
        +    .Opera8 .MSearchPanelActive {
        +        margin-left: -1px;
        +        }
        +
        +
        +    iframe#MSearchResults {
        +        width: 60ex;
        +        height: 15em;
        +        }
        +    #MSearchResultsWindow {
        +        display: none;
        +        position: absolute;
        +        left: 0; top: 0;
        +        border: 1px solid #000000;
        +        background-color: #E8E8E8;
        +        }
        +    #MSearchResultsWindowClose {
        +        font-weight: bold;
        +        font-size: 8pt;
        +        display: block;
        +        padding: 2px 5px;
        +        }
        +    #MSearchResultsWindowClose:link,
        +    #MSearchResultsWindowClose:visited {
        +        color: #000000;
        +        text-decoration: none;
        +        }
        +    #MSearchResultsWindowClose:active,
        +    #MSearchResultsWindowClose:hover {
        +        color: #800000;
        +        text-decoration: none;
        +        background-color: #F4F4F4;
        +        }
        +
        +
        +
        +
        +#Content {
        +    padding-bottom: 15px;
        +    }
        +
        +.ContentPage #Content {
        +    border-width: 0 0 1px 1px;
        +    border-style: solid;
        +    border-color: #000000;
        +    background-color: #FFFFFF;
        +    font-size: 9pt;  /* To make 31ex match the menu's 31ex. */
        +    margin-left: 31ex;
        +    }
        +.ContentPage .Firefox #Content {
        +    margin-left: 27ex;
        +    }
        +
        +
        +
        +    .CTopic {
        +        font-size: 10pt;
        +        margin-bottom: 3em;
        +        }
        +
        +
        +    .CTitle {
        +        font-size: 12pt; font-weight: bold;
        +        border-width: 0 0 1px 0; border-style: solid; border-color: #A0A0A0;
        +        margin: 0 15px .5em 15px }
        +
        +    .CGroup .CTitle {
        +        font-size: 16pt; font-variant: small-caps;
        +        padding-left: 15px; padding-right: 15px;
        +        border-width: 0 0 2px 0; border-color: #000000;
        +        margin-left: 0; margin-right: 0 }
        +
        +    .CClass .CTitle,
        +    .CInterface .CTitle,
        +    .CDatabase .CTitle,
        +    .CDatabaseTable .CTitle,
        +    .CSection .CTitle {
        +        font-size: 18pt;
        +        color: #FFFFFF; background-color: #A0A0A0;
        +        padding: 10px 15px 10px 15px;
        +        border-width: 2px 0; border-color: #000000;
        +        margin-left: 0; margin-right: 0 }
        +
        +    #MainTopic .CTitle {
        +        font-size: 20pt;
        +        color: #FFFFFF; background-color: #7070C0;
        +        padding: 10px 15px 10px 15px;
        +        border-width: 0 0 3px 0; border-color: #000000;
        +        margin-left: 0; margin-right: 0 }
        +
        +    .CBody {
        +        margin-left: 15px; margin-right: 15px }
        +
        +
        +    .CToolTip {
        +        position: absolute; visibility: hidden;
        +        left: 0; top: 0;
        +        background-color: #FFFFE0;
        +        padding: 5px;
        +        border-width: 1px 2px 2px 1px; border-style: solid; border-color: #000000;
        +        font-size: 8pt;
        +        }
        +
        +    .Opera .CToolTip {
        +        max-width: 98%;
        +        }
        +
        +    /*  Scrollbars would be useless.  */
        +    .CToolTip blockquote {
        +        overflow: hidden;
        +        }
        +    .IE6 .CToolTip blockquote {
        +        overflow: visible;
        +        }
        +
        +    .CHeading {
        +        font-weight: bold; font-size: 10pt;
        +        margin: 1.5em 0 .5em 0;
        +        }
        +
        +    .CBody pre {
        +        font: 10pt "Courier New", Courier, monospace;
        +	    background-color: #FCFCFC;
        +	    margin: 1em 35px;
        +	    padding: 10px 15px 10px 10px;
        +	    border-color: #E0E0E0 #E0E0E0 #E0E0E0 #E4E4E4;
        +	    border-width: 1px 1px 1px 6px;
        +	    border-style: dashed dashed dashed solid;
        +        }
        +
        +    .CBody ul {
        +        /*  I don't know why CBody's margin doesn't apply, but it's consistent across browsers so whatever.
        +             Reapply it here as padding.  */
        +        padding-left: 15px; padding-right: 15px;
        +        margin: .5em 5ex .5em 5ex;
        +        }
        +
        +    .CDescriptionList {
        +        margin: .5em 5ex 0 5ex }
        +
        +        .CDLEntry {
        +            font: 10pt "Courier New", Courier, monospace; color: #808080;
        +            padding-bottom: .25em;
        +            white-space: nowrap }
        +
        +        .CDLDescription {
        +            font-size: 10pt;  /*  For browsers that don't inherit correctly, like Opera 5.  */
        +            padding-bottom: .5em; padding-left: 5ex }
        +
        +
        +    .CTopic img {
        +        text-align: center;
        +        display: block;
        +        margin: 1em auto;
        +        }
        +    .CImageCaption {
        +        font-variant: small-caps;
        +        font-size: 8pt;
        +        color: #808080;
        +        text-align: center;
        +        position: relative;
        +        top: 1em;
        +        }
        +
        +    .CImageLink {
        +        color: #808080;
        +        font-style: italic;
        +        }
        +    a.CImageLink:link,
        +    a.CImageLink:visited,
        +    a.CImageLink:hover { color: #808080 }
        +
        +
        +
        +
        +
        +.Prototype {
        +    font: 10pt "Courier New", Courier, monospace;
        +    padding: 5px 3ex;
        +    border-width: 1px; border-style: solid;
        +    margin: 0 5ex 1.5em 5ex;
        +    }
        +
        +    .Prototype td {
        +        font-size: 10pt;
        +        }
        +
        +    .PDefaultValue,
        +    .PDefaultValuePrefix,
        +    .PTypePrefix {
        +        color: #8F8F8F;
        +        }
        +    .PTypePrefix {
        +        text-align: right;
        +        }
        +    .PAfterParameters {
        +        vertical-align: bottom;
        +        }
        +
        +    .IE .Prototype table {
        +        padding: 0;
        +        }
        +
        +    .CFunction .Prototype {
        +        background-color: #F4F4F4; border-color: #D0D0D0 }
        +    .CProperty .Prototype {
        +        background-color: #F4F4FF; border-color: #C0C0E8 }
        +    .CVariable .Prototype {
        +        background-color: #FFFFF0; border-color: #E0E0A0 }
        +
        +    .CClass .Prototype {
        +        border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0A0;
        +        background-color: #F4F4F4;
        +        }
        +    .CInterface .Prototype {
        +        border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0D0;
        +        background-color: #F4F4FF;
        +        }
        +
        +    .CDatabaseIndex .Prototype,
        +    .CConstant .Prototype {
        +        background-color: #D0D0D0; border-color: #000000 }
        +    .CType .Prototype,
        +    .CEnumeration .Prototype {
        +        background-color: #FAF0F0; border-color: #E0B0B0;
        +        }
        +    .CDatabaseTrigger .Prototype,
        +    .CEvent .Prototype,
        +    .CDelegate .Prototype {
        +        background-color: #F0FCF0; border-color: #B8E4B8 }
        +
        +    .CToolTip .Prototype {
        +        margin: 0 0 .5em 0;
        +        white-space: nowrap;
        +        }
        +
        +
        +
        +
        +
        +.Summary {
        +    margin: 1.5em 5ex 0 5ex }
        +
        +    .STitle {
        +        font-size: 12pt; font-weight: bold;
        +        margin-bottom: .5em }
        +
        +
        +    .SBorder {
        +        background-color: #FFFFF0;
        +        padding: 15px;
        +        border: 1px solid #C0C060 }
        +
        +    /* In a frame IE 6 will make them too long unless you set the width to 100%.  Without frames it will be correct without a width
        +        or slightly too long (but not enough to scroll) with a width.  This arbitrary weirdness simply astounds me.  IE 7 has the same
        +        problem with frames, haven't tested it without.  */
        +    .FramedContentPage .IE .SBorder {
        +        width: 100% }
        +
        +    /*  A treat for Mozilla users.  Blatantly non-standard.  Will be replaced with CSS 3 attributes when finalized/supported.  */
        +    .Firefox .SBorder {
        +        -moz-border-radius: 20px }
        +
        +
        +    .STable {
        +        font-size: 9pt; width: 100% }
        +
        +    .SEntry {
        +        width: 30% }
        +    .SDescription {
        +        width: 70% }
        +
        +
        +    .SMarked {
        +        background-color: #F8F8D8 }
        +
        +    .SDescription { padding-left: 2ex }
        +    .SIndent1 .SEntry { padding-left: 1.5ex }   .SIndent1 .SDescription { padding-left: 3.5ex }
        +    .SIndent2 .SEntry { padding-left: 3.0ex }   .SIndent2 .SDescription { padding-left: 5.0ex }
        +    .SIndent3 .SEntry { padding-left: 4.5ex }   .SIndent3 .SDescription { padding-left: 6.5ex }
        +    .SIndent4 .SEntry { padding-left: 6.0ex }   .SIndent4 .SDescription { padding-left: 8.0ex }
        +    .SIndent5 .SEntry { padding-left: 7.5ex }   .SIndent5 .SDescription { padding-left: 9.5ex }
        +
        +    .SDescription a { color: #800000}
        +    .SDescription a:active { color: #A00000 }
        +
        +    .SGroup td {
        +        padding-top: .5em; padding-bottom: .25em }
        +
        +    .SGroup .SEntry {
        +        font-weight: bold; font-variant: small-caps }
        +
        +    .SGroup .SEntry a { color: #800000 }
        +    .SGroup .SEntry a:active { color: #F00000 }
        +
        +
        +    .SMain td,
        +    .SClass td,
        +    .SDatabase td,
        +    .SDatabaseTable td,
        +    .SSection td {
        +        font-size: 10pt;
        +        padding-bottom: .25em }
        +
        +    .SClass td,
        +    .SDatabase td,
        +    .SDatabaseTable td,
        +    .SSection td {
        +        padding-top: 1em }
        +
        +    .SMain .SEntry,
        +    .SClass .SEntry,
        +    .SDatabase .SEntry,
        +    .SDatabaseTable .SEntry,
        +    .SSection .SEntry {
        +        font-weight: bold;
        +        }
        +
        +    .SMain .SEntry a,
        +    .SClass .SEntry a,
        +    .SDatabase .SEntry a,
        +    .SDatabaseTable .SEntry a,
        +    .SSection .SEntry a { color: #000000 }
        +
        +    .SMain .SEntry a:active,
        +    .SClass .SEntry a:active,
        +    .SDatabase .SEntry a:active,
        +    .SDatabaseTable .SEntry a:active,
        +    .SSection .SEntry a:active { color: #A00000 }
        +
        +
        +
        +
        +
        +.ClassHierarchy {
        +    margin: 0 15px 1em 15px }
        +
        +    .CHEntry {
        +        border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0A0;
        +        margin-bottom: 3px;
        +        padding: 2px 2ex;
        +        font-size: 10pt;
        +        background-color: #F4F4F4; color: #606060;
        +        }
        +
        +    .Firefox .CHEntry {
        +        -moz-border-radius: 4px;
        +        }
        +
        +    .CHCurrent .CHEntry {
        +        font-weight: bold;
        +        border-color: #000000;
        +        color: #000000;
        +        }
        +
        +    .CHChildNote .CHEntry {
        +        font-style: italic;
        +        font-size: 8pt;
        +        }
        +
        +    .CHIndent {
        +        margin-left: 3ex;
        +        }
        +
        +    .CHEntry a:link,
        +    .CHEntry a:visited,
        +    .CHEntry a:hover {
        +        color: #606060;
        +        }
        +    .CHEntry a:active {
        +        color: #800000;
        +        }
        +
        +
        +
        +
        +
        +#Index {
        +    background-color: #FFFFFF;
        +    }
        +
        +/*  As opposed to .PopupSearchResultsPage #Index  */
        +.IndexPage #Index,
        +.FramedIndexPage #Index,
        +.FramedSearchResultsPage #Index {
        +    padding: 15px;
        +    }
        +
        +.IndexPage #Index {
        +    border-width: 0 0 1px 1px;
        +    border-style: solid;
        +    border-color: #000000;
        +    font-size: 9pt;  /* To make 27ex match the menu's 27ex. */
        +    margin-left: 27ex;
        +    }
        +
        +
        +    .IPageTitle {
        +        font-size: 20pt; font-weight: bold;
        +        color: #FFFFFF; background-color: #7070C0;
        +        padding: 10px 15px 10px 15px;
        +        border-width: 0 0 3px 0; border-color: #000000; border-style: solid;
        +        margin: -15px -15px 0 -15px }
        +
        +    .FramedSearchResultsPage .IPageTitle {
        +        margin-bottom: 15px;
        +        }
        +
        +    .INavigationBar {
        +        font-size: 10pt;
        +        text-align: center;
        +        background-color: #FFFFF0;
        +        padding: 5px;
        +        border-bottom: solid 1px black;
        +        margin: 0 -15px 15px -15px;
        +        }
        +
        +    .INavigationBar a {
        +        font-weight: bold }
        +
        +    .IHeading {
        +        font-size: 16pt; font-weight: bold;
        +        padding: 2.5em 0 .5em 0;
        +        text-align: center;
        +        width: 3.5ex;
        +        }
        +    #IFirstHeading {
        +        padding-top: 0;
        +        }
        +
        +    .IEntry {
        +        font-size: 10pt;
        +        padding-left: 1ex;
        +        }
        +    .PopupSearchResultsPage .IEntry {
        +        font-size: 8pt;
        +        padding: 1px 5px;
        +        }
        +    .PopupSearchResultsPage .Opera9 .IEntry,
        +    .FramedSearchResultsPage .Opera9 .IEntry {
        +        text-align: left;
        +        }
        +    .FramedSearchResultsPage .IEntry {
        +        padding: 0;
        +        }
        +
        +    .ISubIndex {
        +        padding-left: 3ex; padding-bottom: .5em }
        +    .PopupSearchResultsPage .ISubIndex {
        +        display: none;
        +        }
        +
        +    /*  While it may cause some entries to look like links when they aren't, I found it's much easier to read the
        +         index if everything's the same color.  */
        +    .ISymbol {
        +        font-weight: bold; color: #900000  }
        +
        +    .IndexPage .ISymbolPrefix,
        +    .FramedIndexPage .ISymbolPrefix {
        +        font-size: 10pt;
        +        text-align: right;
        +        color: #C47C7C;
        +        background-color: #F8F8F8;
        +        border-right: 3px solid #E0E0E0;
        +        border-left: 1px solid #E0E0E0;
        +        padding: 0 1px 0 2px;
        +        }
        +    .PopupSearchResultsPage .ISymbolPrefix,
        +    .FramedSearchResultsPage .ISymbolPrefix {
        +        color: #900000;
        +        }
        +    .PopupSearchResultsPage .ISymbolPrefix {
        +        font-size: 8pt;
        +        }
        +
        +    .IndexPage #IFirstSymbolPrefix,
        +    .FramedIndexPage #IFirstSymbolPrefix {
        +        border-top: 1px solid #E0E0E0;
        +        }
        +    .IndexPage #ILastSymbolPrefix,
        +    .FramedIndexPage #ILastSymbolPrefix {
        +        border-bottom: 1px solid #E0E0E0;
        +        }
        +    .IndexPage #IOnlySymbolPrefix,
        +    .FramedIndexPage #IOnlySymbolPrefix {
        +        border-top: 1px solid #E0E0E0;
        +        border-bottom: 1px solid #E0E0E0;
        +        }
        +
        +    a.IParent,
        +    a.IFile {
        +        display: block;
        +        }
        +
        +    .PopupSearchResultsPage .SRStatus {
        +        padding: 2px 5px;
        +        font-size: 8pt;
        +        font-style: italic;
        +        }
        +    .FramedSearchResultsPage .SRStatus {
        +        font-size: 10pt;
        +        font-style: italic;
        +        }
        +
        +    .SRResult {
        +        display: none;
        +        }
        +
        +
        +
        +#Footer {
        +    font-size: 8pt;
        +    color: #989898;
        +    text-align: right;
        +    }
        +
        +#Footer p {
        +    text-indent: 0;
        +    margin-bottom: .5em;
        +    }
        +
        +.ContentPage #Footer,
        +.IndexPage #Footer {
        +    text-align: right;
        +    margin: 2px;
        +    }
        +
        +.FramedMenuPage #Footer {
        +    text-align: center;
        +    margin: 5em 10px 10px 10px;
        +    padding-top: 1em;
        +    border-top: 1px solid #C8C8C8;
        +    }
        +
        +    #Footer a:link,
        +    #Footer a:hover,
        +    #Footer a:visited { color: #989898 }
        +    #Footer a:active { color: #A00000 }
        +
        +
        +
        +.prettyprint .kwd { color: #800000; }  /* keywords */
        +
        +    .prettyprint.PDefaultValue .kwd,
        +    .prettyprint.PDefaultValuePrefix .kwd,
        +    .prettyprint.PTypePrefix .kwd {
        +        color: #C88F8F;
        +        }
        +
        +.prettyprint .com { color: #008000; }  /* comments */
        +
        +    .prettyprint.PDefaultValue .com,
        +    .prettyprint.PDefaultValuePrefix .com,
        +    .prettyprint.PTypePrefix .com {
        +        color: #8FC88F;
        +        }
        +
        +.prettyprint .str { color: #0000B0; }  /* strings */
        +.prettyprint .lit { color: #0000B0; }  /* literals */
        +
        +    .prettyprint.PDefaultValue .str,
        +    .prettyprint.PDefaultValuePrefix .str,
        +    .prettyprint.PTypePrefix .str,
        +    .prettyprint.PDefaultValue .lit,
        +    .prettyprint.PDefaultValuePrefix .lit,
        +    .prettyprint.PTypePrefix .lit {
        +        color: #8F8FC0;
        +        }
        +
        +.prettyprint .typ { color: #000000; }  /* types */
        +.prettyprint .pun { color: #000000; }  /* punctuation */
        +.prettyprint .pln { color: #000000; }  /* punctuation */
        +
        +    .prettyprint.PDefaultValue .typ,
        +    .prettyprint.PDefaultValuePrefix .typ,
        +    .prettyprint.PTypePrefix .typ,
        +    .prettyprint.PDefaultValue .pun,
        +    .prettyprint.PDefaultValuePrefix .pun,
        +    .prettyprint.PTypePrefix .pun,
        +    .prettyprint.PDefaultValue .pln,
        +    .prettyprint.PDefaultValuePrefix .pln,
        +    .prettyprint.PTypePrefix .pln {
        +        color: #8F8F8F;
        +        }
        +
        +.prettyprint .tag { color: #008; }
        +.prettyprint .atn { color: #606; }
        +.prettyprint .atv { color: #080; }
        +.prettyprint .dec { color: #606; }
        +
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Styles/Roman.css b/lib/ann/fann/docs/NaturalDocs-1.52/Styles/Roman.css
        new file mode 100755
        index 0000000..6c3f0cd
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Styles/Roman.css
        @@ -0,0 +1,826 @@
        +/*
        +   IMPORTANT: If you're editing this file in the output directory of one of
        +   your projects, your changes will be overwritten the next time you run
        +   Natural Docs.  Instead, copy this file to your project directory, make your
        +   changes, and you can use it with -s.  Even better would be to make a CSS
        +   file in your project directory with only your changes, which you can then
        +   use with -s [original style] [your changes].
        +
        +   On the other hand, if you're editing this file in the Natural Docs styles
        +   directory, the changes will automatically be applied to all your projects
        +   that use this style the next time Natural Docs is run on them.
        +
        +   This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure.
        +   Natural Docs is licensed under version 3 of the GNU Affero General Public
        +   License (AGPL).  Refer to License.txt for the complete details.
        +
        +   This file may be distributed with documentation files generated by Natural Docs.
        +   Such documentation is not covered by Natural Docs' copyright and licensing,
        +   and may have its own copyright and distribution terms as decided by its author.
        +*/
        +
        +body {
        +    font: 12pt "Times New Roman", Roman, serif;
        +    color: #000000;
        +    margin: 0; padding: 0;
        +    }
        +
        +.ContentPage,
        +.IndexPage,
        +.FramedMenuPage {
        +    background-color: #E8E8E8;
        +    }
        +.FramedContentPage,
        +.FramedIndexPage,
        +.FramedSearchResultsPage,
        +.PopupSearchResultsPage {
        +    background-color: #FFFFFF;
        +    }
        +
        +
        +a:link,
        +a:visited { color: #900000; text-decoration: none }
        +a:hover { color: #900000; text-decoration: underline }
        +a:active { color: #FF0000; text-decoration: underline }
        +
        +td {
        +    vertical-align: top }
        +
        +img { border: 0;  }
        +
        +
        +/*
        +    Comment out this line to use web-style paragraphs (blank line between
        +    paragraphs, no indent) instead of print-style paragraphs (no blank line,
        +    indented.)
        +*/
        +p {
        +    text-indent: 5ex; margin: 0 }
        +
        +
        +/*  Opera doesn't break with just wbr, but will if you add this.  */
        +.Opera wbr:after {
        +	content: "\00200B";
        +	}
        +
        +/*  Blockquotes are used as containers for things that may need to scroll.  */
        +blockquote {
        +    padding: 0;
        +    margin: 0;
        +    overflow: auto;
        +    }
        +
        +
        +.Firefox1 blockquote {
        +    padding-bottom: .5em;
        +    }
        +
        +/*  Turn off scrolling when printing.  */
        +@media print {
        +    blockquote {
        +        overflow: visible;
        +        }
        +    .IE blockquote {
        +        width: auto;
        +        }
        +    }
        +
        +
        +
        +#Menu {
        +    font-size: 10pt;
        +    padding: 10px 0 0 0;
        +    }
        +.ContentPage #Menu,
        +.IndexPage #Menu {
        +    position: absolute;
        +    top: 0;
        +    left: 0;
        +    width: 31ex;
        +    overflow: hidden;
        +    }
        +.ContentPage .Firefox #Menu,
        +.IndexPage .Firefox #Menu {
        +    width: 27ex;
        +    }
        +
        +
        +    .MTitle {
        +        font-size: 18pt; font-weight: bold; font-variant: small-caps;
        +        text-align: center;
        +        padding: 5px 10px 15px 10px;
        +        border-bottom: 1px dotted #000000;
        +        margin-bottom: 15px }
        +
        +    .MSubTitle {
        +        font-size: 10pt; font-weight: normal; font-variant: normal;
        +        margin-top: 1ex; margin-bottom: 5px }
        +
        +
        +    .MEntry a:link,
        +    .MEntry a:hover,
        +    .MEntry a:visited { color: #606060; margin-right: 0 }
        +    .MEntry a:active { color: #A00000; margin-right: 0 }
        +
        +
        +    .MGroup {
        +        font-variant: small-caps; font-weight: bold;
        +        margin: 1em 0 1em 10px;
        +        }
        +
        +    .MGroupContent {
        +        font-variant: normal; font-weight: normal }
        +
        +    .MGroup a:link,
        +    .MGroup a:hover,
        +    .MGroup a:visited { color: #545454; margin-right: 10px }
        +    .MGroup a:active { color: #A00000; margin-right: 10px }
        +
        +
        +    .MFile,
        +    .MText,
        +    .MLink,
        +    .MIndex {
        +        padding: 1px 17px 2px 10px;
        +        margin: .25em 0 .25em 0;
        +        }
        +
        +    .MText {
        +        font-size: 8pt; font-style: italic }
        +
        +    .MLink {
        +        font-style: italic }
        +
        +    #MSelected {
        +        color: #000000; background-color: #FFFFFF;
        +        /*  Replace padding with border.  */
        +        padding: 0 10px 0 10px;
        +        border-width: 1px 2px 2px 0; border-style: solid; border-color: #000000;
        +        margin-right: 5px;
        +        }
        +
        +    /*  Close off the left side when its in a group.  */
        +    .MGroup #MSelected {
        +        padding-left: 9px; border-left-width: 1px }
        +
        +    /*  A treat for Mozilla users.  Blatantly non-standard.  Will be replaced with CSS 3 attributes when finalized/supported.  */
        +    .Firefox #MSelected {
        +        -moz-border-radius-topright: 10px;
        +        -moz-border-radius-bottomright: 10px }
        +    .Firefox .MGroup #MSelected {
        +        -moz-border-radius-topleft: 10px;
        +        -moz-border-radius-bottomleft: 10px }
        +
        +
        +    #MSearchPanel {
        +        padding: 0px 6px;
        +        margin: .25em 0;
        +        }
        +
        +
        +    #MSearchField {
        +        font: italic 10pt "Times New Roman", Roman, serif;
        +        color: #606060;
        +        background-color: #E8E8E8;
        +        border: none;
        +        padding: 2px 4px;
        +        width: 100%;
        +        }
        +    /* Only Opera gets it right. */
        +    .Firefox #MSearchField,
        +    .IE #MSearchField,
        +    .Safari #MSearchField {
        +        width: 94%;
        +        }
        +    .Opera9 #MSearchField,
        +    .Konqueror #MSearchField {
        +        width: 97%;
        +        }
        +    .FramedMenuPage .Firefox #MSearchField,
        +    .FramedMenuPage .Safari #MSearchField,
        +    .FramedMenuPage .Konqueror #MSearchField {
        +        width: 98%;
        +        }
        +
        +    /* Firefox doesn't do this right in frames without #MSearchPanel added on.
        +        It's presence doesn't hurt anything other browsers. */
        +    #MSearchPanel.MSearchPanelInactive:hover #MSearchField {
        +        background-color: #FFFFFF;
        +        border: 1px solid #C0C0C0;
        +        padding: 1px 3px;
        +        }
        +    .MSearchPanelActive #MSearchField {
        +        background-color: #FFFFFF;
        +        border: 1px solid #C0C0C0;
        +        font-style: normal;
        +        padding: 1px 3px;
        +        }
        +
        +    #MSearchType {
        +        visibility: hidden;
        +        font: 10pt "Times New Roman", Roman, serif;
        +        width: 98%;
        +        padding: 0;
        +        border: 1px solid #C0C0C0;
        +        }
        +    .MSearchPanelActive #MSearchType,
        +    /*  As mentioned above, Firefox doesn't do this right in frames without #MSearchPanel added on. */
        +    #MSearchPanel.MSearchPanelInactive:hover #MSearchType,
        +    #MSearchType:focus {
        +        visibility: visible;
        +        color: #606060;
        +        }
        +    #MSearchType option#MSearchEverything {
        +        font-weight: bold;
        +        }
        +
        +    .Opera8 .MSearchPanelInactive:hover,
        +    .Opera8 .MSearchPanelActive {
        +        margin-left: -1px;
        +        }
        +
        +
        +    iframe#MSearchResults {
        +        width: 60ex;
        +        height: 15em;
        +        }
        +    #MSearchResultsWindow {
        +        display: none;
        +        position: absolute;
        +        left: 0; top: 0;
        +        border: 1px solid #000000;
        +        background-color: #E8E8E8;
        +        }
        +    #MSearchResultsWindowClose {
        +        font-weight: bold;
        +        font-size: 8pt;
        +        display: block;
        +        padding: 2px 5px;
        +        }
        +    #MSearchResultsWindowClose:link,
        +    #MSearchResultsWindowClose:visited {
        +        color: #000000;
        +        text-decoration: none;
        +        }
        +    #MSearchResultsWindowClose:active,
        +    #MSearchResultsWindowClose:hover {
        +        color: #800000;
        +        text-decoration: none;
        +        background-color: #F4F4F4;
        +        }
        +
        +
        +
        +
        +#Content {
        +    padding-bottom: 15px;
        +    }
        +
        +.ContentPage #Content {
        +    border-width: 0 0 1px 1px;
        +    border-style: solid;
        +    border-color: #000000;
        +    background-color: #FFFFFF;
        +    font-size: 10pt;  /* To make 31ex match the menu's 31ex. */
        +    margin-left: 31ex;
        +    }
        +.ContentPage .Firefox #Content {
        +    margin-left: 27ex;
        +    }
        +
        +
        +
        +    .CTopic {
        +        font-size: 12pt;
        +        margin-bottom: 3em;
        +        }
        +
        +
        +    .CTitle {
        +        font-size: 16pt; font-weight: bold;
        +        border-width: 0 0 1px 0; border-style: solid; border-color: #A0A0A0;
        +        margin: 0 15px .5em 15px }
        +
        +    .CGroup .CTitle {
        +        font-size: 18pt; font-variant: small-caps;
        +        padding-left: 15px; padding-right: 15px;
        +        border-width: 0 0 2px 0; border-color: #000000;
        +        margin-left: 0; margin-right: 0 }
        +
        +    .CClass .CTitle,
        +    .CInterface .CTitle,
        +    .CDatabase .CTitle,
        +    .CDatabaseTable .CTitle,
        +    .CSection .CTitle {
        +        font-size: 20pt;
        +        color: #FFFFFF; background-color: #A0A0A0;
        +        padding: 10px 15px 10px 15px;
        +        border-width: 2px 0; border-color: #000000;
        +        margin-left: 0; margin-right: 0 }
        +
        +    #MainTopic .CTitle {
        +        font-size: 24pt;
        +        color: #FFFFFF; background-color: #7070C0;
        +        padding: 10px 15px 10px 15px;
        +        border-width: 0 0 3px 0; border-color: #000000;
        +        margin-left: 0; margin-right: 0 }
        +
        +    .CBody {
        +        margin-left: 15px; margin-right: 15px }
        +
        +
        +    .CToolTip {
        +        position: absolute; visibility: hidden;
        +        left: 0; top: 0;
        +        background-color: #FFFFE0;
        +        padding: 5px;
        +        border-width: 1px 2px 2px 1px; border-style: solid; border-color: #000000;
        +        font-size: 10pt;
        +        }
        +
        +    .Opera .CToolTip {
        +        max-width: 98%;
        +        }
        +
        +    /*  Scrollbars would be useless.  */
        +    .CToolTip blockquote {
        +        overflow: hidden;
        +        }
        +    .IE6 .CToolTip blockquote {
        +        overflow: visible;
        +        }
        +
        +    .CHeading {
        +        font-weight: bold; font-size: 10pt;
        +        margin: 1.5em 0 .5em 0;
        +        }
        +
        +    .CBody pre {
        +        font: 10pt "Courier New", Courier, monospace;
        +	    background-color: #FCFCFC;
        +	    margin: 1em 35px;
        +	    padding: 10px 15px 10px 10px;
        +	    border-color: #E0E0E0 #E0E0E0 #E0E0E0 #E4E4E4;
        +	    border-width: 1px 1px 1px 6px;
        +	    border-style: dashed dashed dashed solid;
        +        }
        +
        +    .CBody ul {
        +        /*  I don't know why CBody's margin doesn't apply, but it's consistent across browsers so whatever.
        +             Reapply it here as padding.  */
        +        padding-left: 15px; padding-right: 15px;
        +        margin: .5em 5ex .5em 5ex;
        +        }
        +
        +    .CDescriptionList {
        +        margin: .5em 5ex 0 5ex }
        +
        +        .CDLEntry {
        +            font: 10pt "Courier New", Courier, monospace; color: #808080;
        +            padding-bottom: .25em;
        +            white-space: nowrap }
        +
        +        .CDLDescription {
        +            font-size: 12pt;  /*  For browsers that don't inherit correctly, like Opera 5.  */
        +            padding-bottom: .5em; padding-left: 5ex }
        +
        +
        +    .CTopic img {
        +        text-align: center;
        +        display: block;
        +        margin: 1em auto;
        +        }
        +    .CImageCaption {
        +        font-variant: small-caps;
        +        font-size: 10pt;
        +        color: #808080;
        +        text-align: center;
        +        position: relative;
        +        top: 1em;
        +        }
        +
        +    .CImageLink {
        +        color: #808080;
        +        font-style: italic;
        +        }
        +    a.CImageLink:link,
        +    a.CImageLink:visited,
        +    a.CImageLink:hover { color: #808080 }
        +
        +
        +
        +
        +
        +.Prototype {
        +    font: 10pt "Courier New", Courier, monospace;
        +    padding: 5px 3ex;
        +    border-width: 1px; border-style: solid;
        +    margin: 0 5ex 1.5em 5ex;
        +    }
        +
        +    .Prototype td {
        +        font-size: 10pt;
        +        }
        +
        +    .PDefaultValue,
        +    .PDefaultValuePrefix,
        +    .PTypePrefix {
        +        color: #8F8F8F;
        +        }
        +    .PTypePrefix {
        +        text-align: right;
        +        }
        +    .PAfterParameters {
        +        vertical-align: bottom;
        +        }
        +
        +    .IE .Prototype table {
        +        padding: 0;
        +        }
        +
        +    .CFunction .Prototype {
        +        background-color: #F4F4F4; border-color: #D0D0D0 }
        +    .CProperty .Prototype {
        +        background-color: #F4F4FF; border-color: #C0C0E8 }
        +    .CVariable .Prototype {
        +        background-color: #FFFFF0; border-color: #E0E0A0 }
        +
        +    .CClass .Prototype {
        +        border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0A0;
        +        background-color: #F4F4F4;
        +        }
        +    .CInterface .Prototype {
        +        border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0D0;
        +        background-color: #F4F4FF;
        +        }
        +
        +    .CDatabaseIndex .Prototype,
        +    .CConstant .Prototype {
        +        background-color: #D0D0D0; border-color: #000000 }
        +    .CType .Prototype,
        +    .CEnumeration .Prototype {
        +        background-color: #FAF0F0; border-color: #E0B0B0;
        +        }
        +    .CDatabaseTrigger .Prototype,
        +    .CEvent .Prototype,
        +    .CDelegate .Prototype {
        +        background-color: #F0FCF0; border-color: #B8E4B8 }
        +
        +    .CToolTip .Prototype {
        +        margin: 0 0 .5em 0;
        +        white-space: nowrap;
        +        }
        +
        +
        +
        +
        +
        +.Summary {
        +    margin: 1.5em 5ex 0 5ex }
        +
        +    .STitle {
        +        font-size: 14pt; font-weight: bold;
        +        margin-bottom: .5em }
        +
        +
        +    .SBorder {
        +        background-color: #FFFFF0;
        +        padding: 15px;
        +        border: 1px solid #C0C060 }
        +
        +    /* In a frame IE 6 will make them too long unless you set the width to 100%.  Without frames it will be correct without a width
        +        or slightly too long (but not enough to scroll) with a width.  This arbitrary weirdness simply astounds me.  IE 7 has the same
        +        problem with frames, haven't tested it without.  */
        +    .FramedContentPage .IE .SBorder {
        +        width: 100% }
        +
        +    /*  A treat for Mozilla users.  Blatantly non-standard.  Will be replaced with CSS 3 attributes when finalized/supported.  */
        +    .Firefox .SBorder {
        +        -moz-border-radius: 20px }
        +
        +
        +    .STable {
        +        font-size: 10pt; width: 100% }
        +
        +    .SEntry {
        +        width: 30% }
        +    .SDescription {
        +        width: 70% }
        +
        +
        +    .SMarked {
        +        background-color: #F8F8D8 }
        +
        +    .SDescription { padding-left: 2ex }
        +    .SIndent1 .SEntry { padding-left: 1.5ex }   .SIndent1 .SDescription { padding-left: 3.5ex }
        +    .SIndent2 .SEntry { padding-left: 3.0ex }   .SIndent2 .SDescription { padding-left: 5.0ex }
        +    .SIndent3 .SEntry { padding-left: 4.5ex }   .SIndent3 .SDescription { padding-left: 6.5ex }
        +    .SIndent4 .SEntry { padding-left: 6.0ex }   .SIndent4 .SDescription { padding-left: 8.0ex }
        +    .SIndent5 .SEntry { padding-left: 7.5ex }   .SIndent5 .SDescription { padding-left: 9.5ex }
        +
        +    .SDescription a { color: #800000}
        +    .SDescription a:active { color: #A00000 }
        +
        +    .SGroup td {
        +        padding-top: .5em; padding-bottom: .25em }
        +
        +    .SGroup .SEntry {
        +        font-weight: bold; font-variant: small-caps }
        +
        +    .SGroup .SEntry a { color: #800000 }
        +    .SGroup .SEntry a:active { color: #F00000 }
        +
        +
        +    .SMain td,
        +    .SClass td,
        +    .SDatabase td,
        +    .SDatabaseTable td,
        +    .SSection td {
        +        font-size: 12pt;
        +        padding-bottom: .25em }
        +
        +    .SClass td,
        +    .SDatabase td,
        +    .SDatabaseTable td,
        +    .SSection td {
        +        padding-top: 1em }
        +
        +    .SMain .SEntry,
        +    .SClass .SEntry,
        +    .SDatabase .SEntry,
        +    .SDatabaseTable .SEntry,
        +    .SSection .SEntry {
        +        font-weight: bold;
        +        }
        +
        +    .SMain .SEntry a,
        +    .SClass .SEntry a,
        +    .SDatabase .SEntry a,
        +    .SDatabaseTable .SEntry a,
        +    .SSection .SEntry a { color: #000000 }
        +
        +    .SMain .SEntry a:active,
        +    .SClass .SEntry a:active,
        +    .SDatabase .SEntry a:active,
        +    .SDatabaseTable .SEntry a:active,
        +    .SSection .SEntry a:active { color: #A00000 }
        +
        +
        +
        +
        +
        +.ClassHierarchy {
        +    margin: 0 15px 1em 15px }
        +
        +    .CHEntry {
        +        border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0A0;
        +        margin-bottom: 3px;
        +        padding: 2px 2ex;
        +        font-size: 12pt;
        +        background-color: #F4F4F4; color: #606060;
        +        }
        +
        +    .Firefox .CHEntry {
        +        -moz-border-radius: 4px;
        +        }
        +
        +    .CHCurrent .CHEntry {
        +        font-weight: bold;
        +        border-color: #000000;
        +        color: #000000;
        +        }
        +
        +    .CHChildNote .CHEntry {
        +        font-style: italic;
        +        font-size: 10pt;
        +        }
        +
        +    .CHIndent {
        +        margin-left: 3ex;
        +        }
        +
        +    .CHEntry a:link,
        +    .CHEntry a:visited,
        +    .CHEntry a:hover {
        +        color: #606060;
        +        }
        +    .CHEntry a:active {
        +        color: #800000;
        +        }
        +
        +
        +
        +
        +
        +#Index {
        +    background-color: #FFFFFF;
        +    }
        +
        +/*  As opposed to .PopupSearchResultsPage #Index  */
        +.IndexPage #Index,
        +.FramedIndexPage #Index,
        +.FramedSearchResultsPage #Index {
        +    padding: 15px;
        +    }
        +
        +.IndexPage #Index {
        +    border-width: 0 0 1px 1px;
        +    border-style: solid;
        +    border-color: #000000;
        +    font-size: 10pt;  /* To make 27ex match the menu's 27ex. */
        +    margin-left: 27ex;
        +    }
        +
        +
        +    .IPageTitle {
        +        font-size: 24pt; font-weight: bold;
        +        color: #FFFFFF; background-color: #7070C0;
        +        padding: 10px 15px 10px 15px;
        +        border-width: 0 0 3px 0; border-color: #000000; border-style: solid;
        +        margin: -15px -15px 0 -15px }
        +
        +    .FramedSearchResultsPage .IPageTitle {
        +        margin-bottom: 15px;
        +        }
        +
        +    .INavigationBar {
        +        text-align: center;
        +        background-color: #FFFFF0;
        +        padding: 5px;
        +        border-bottom: solid 1px black;
        +        margin: 0 -15px 15px -15px;
        +        }
        +
        +    .INavigationBar a {
        +        font-weight: bold }
        +
        +    .IHeading {
        +        font-size: 20pt; font-weight: bold;
        +        padding: 2.5em 0 .5em 0;
        +        text-align: center;
        +        width: 3.5ex;
        +        }
        +    #IFirstHeading {
        +        padding-top: 0;
        +        }
        +
        +    .IEntry {
        +        font-size: 12pt;
        +        padding-left: 1ex;
        +        }
        +    .PopupSearchResultsPage .IEntry {
        +        font-size: 10pt;
        +        padding: 1px 5px;
        +        }
        +    .PopupSearchResultsPage .Opera9 .IEntry,
        +    .FramedSearchResultsPage .Opera9 .IEntry {
        +        text-align: left;
        +        }
        +    .FramedSearchResultsPage .IEntry {
        +        padding: 0;
        +        }
        +
        +    .ISubIndex {
        +        padding-left: 3ex; padding-bottom: .5em }
        +    .PopupSearchResultsPage .ISubIndex {
        +        display: none;
        +        }
        +
        +    /*  While it may cause some entries to look like links when they aren't, I found it's much easier to read the
        +         index if everything's the same color.  */
        +    .ISymbol {
        +        font-weight: bold; color: #900000  }
        +
        +    .IndexPage .ISymbolPrefix,
        +    .FramedIndexPage .ISymbolPrefix {
        +        font-size: 12pt;
        +        text-align: right;
        +        color: #C47C7C;
        +        background-color: #F8F8F8;
        +        border-right: 3px solid #E0E0E0;
        +        border-left: 1px solid #E0E0E0;
        +        padding: 0 1px 0 2px;
        +        }
        +    .PopupSearchResultsPage .ISymbolPrefix,
        +    .FramedSearchResultsPage .ISymbolPrefix {
        +        color: #900000;
        +        }
        +    .PopupSearchResultsPage .ISymbolPrefix {
        +        font-size: 10pt;
        +        }
        +
        +    .IndexPage #IFirstSymbolPrefix,
        +    .FramedIndexPage #IFirstSymbolPrefix {
        +        border-top: 1px solid #E0E0E0;
        +        }
        +    .IndexPage #ILastSymbolPrefix,
        +    .FramedIndexPage #ILastSymbolPrefix {
        +        border-bottom: 1px solid #E0E0E0;
        +        }
        +    .IndexPage #IOnlySymbolPrefix,
        +    .FramedIndexPage #IOnlySymbolPrefix {
        +        border-top: 1px solid #E0E0E0;
        +        border-bottom: 1px solid #E0E0E0;
        +        }
        +
        +    a.IParent,
        +    a.IFile {
        +        display: block;
        +        }
        +
        +    .PopupSearchResultsPage .SRStatus {
        +        padding: 2px 5px;
        +        font-size: 10pt;
        +        font-style: italic;
        +        }
        +    .FramedSearchResultsPage .SRStatus {
        +        font-size: 12pt;
        +        font-style: italic;
        +        }
        +
        +    .SRResult {
        +        display: none;
        +        }
        +
        +
        +
        +#Footer {
        +    font-size: 8pt;
        +    color: #989898;
        +    text-align: right;
        +    }
        +
        +#Footer p {
        +    text-indent: 0;
        +    margin-bottom: .5em;
        +    }
        +
        +.ContentPage #Footer,
        +.IndexPage #Footer {
        +    text-align: right;
        +    margin: 2px;
        +    }
        +
        +.FramedMenuPage #Footer {
        +    text-align: center;
        +    margin: 5em 10px 10px 10px;
        +    padding-top: 1em;
        +    border-top: 1px solid #C8C8C8;
        +    }
        +
        +    #Footer a:link,
        +    #Footer a:hover,
        +    #Footer a:visited { color: #989898 }
        +    #Footer a:active { color: #A00000 }
        +
        +
        +
        +.prettyprint .kwd { color: #800000; }  /* keywords */
        +
        +    .prettyprint.PDefaultValue .kwd,
        +    .prettyprint.PDefaultValuePrefix .kwd,
        +    .prettyprint.PTypePrefix .kwd {
        +        color: #C88F8F;
        +        }
        +
        +.prettyprint .com { color: #008000; }  /* comments */
        +
        +    .prettyprint.PDefaultValue .com,
        +    .prettyprint.PDefaultValuePrefix .com,
        +    .prettyprint.PTypePrefix .com {
        +        color: #8FC88F;
        +        }
        +
        +.prettyprint .str { color: #0000B0; }  /* strings */
        +.prettyprint .lit { color: #0000B0; }  /* literals */
        +
        +    .prettyprint.PDefaultValue .str,
        +    .prettyprint.PDefaultValuePrefix .str,
        +    .prettyprint.PTypePrefix .str,
        +    .prettyprint.PDefaultValue .lit,
        +    .prettyprint.PDefaultValuePrefix .lit,
        +    .prettyprint.PTypePrefix .lit {
        +        color: #8F8FC0;
        +        }
        +
        +.prettyprint .typ { color: #000000; }  /* types */
        +.prettyprint .pun { color: #000000; }  /* punctuation */
        +.prettyprint .pln { color: #000000; }  /* punctuation */
        +
        +    .prettyprint.PDefaultValue .typ,
        +    .prettyprint.PDefaultValuePrefix .typ,
        +    .prettyprint.PTypePrefix .typ,
        +    .prettyprint.PDefaultValue .pun,
        +    .prettyprint.PDefaultValuePrefix .pun,
        +    .prettyprint.PTypePrefix .pun,
        +    .prettyprint.PDefaultValue .pln,
        +    .prettyprint.PDefaultValuePrefix .pln,
        +    .prettyprint.PTypePrefix .pln {
        +        color: #8F8F8F;
        +        }
        +
        +.prettyprint .tag { color: #008; }
        +.prettyprint .atn { color: #606; }
        +.prettyprint .atv { color: #080; }
        +.prettyprint .dec { color: #606; }
        +
        diff --git a/lib/ann/fann/docs/NaturalDocs-1.52/Styles/Small.css b/lib/ann/fann/docs/NaturalDocs-1.52/Styles/Small.css
        new file mode 100755
        index 0000000..1832d8f
        --- /dev/null
        +++ b/lib/ann/fann/docs/NaturalDocs-1.52/Styles/Small.css
        @@ -0,0 +1,824 @@
        +/*
        +   IMPORTANT: If you're editing this file in the output directory of one of
        +   your projects, your changes will be overwritten the next time you run
        +   Natural Docs.  Instead, copy this file to your project directory, make your
        +   changes, and you can use it with -s.  Even better would be to make a CSS
        +   file in your project directory with only your changes, which you can then
        +   use with -s [original style] [your changes].
        +
        +   On the other hand, if you're editing this file in the Natural Docs styles
        +   directory, the changes will automatically be applied to all your projects
        +   that use this style the next time Natural Docs is run on them.
        +
        +   This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure.
        +   Natural Docs is licensed under version 3 of the GNU Affero General Public
        +   License (AGPL).  Refer to License.txt for the complete details.
        +
        +   This file may be distributed with documentation files generated by Natural Docs.
        +   Such documentation is not covered by Natural Docs' copyright and licensing,
        +   and may have its own copyright and distribution terms as decided by its author.
        +*/
        +
        +body {
        +    font: 8pt Verdana, Arial, sans-serif;
        +    color: #000000;
        +    margin: 0; padding: 0;
        +    }
        +
        +.ContentPage,
        +.IndexPage,
        +.FramedMenuPage {
        +    background-color: #E8E8E8;
        +    }
        +.FramedContentPage,
        +.FramedIndexPage,
        +.FramedSearchResultsPage,
        +.PopupSearchResultsPage {
        +    background-color: #FFFFFF;
        +    }
        +
        +
        +a:link,
        +a:visited { color: #900000; text-decoration: none }
        +a:hover { color: #900000; text-decoration: underline }
        +a:active { color: #FF0000; text-decoration: underline }
        +
        +td {
        +    vertical-align: top }
        +
        +img { border: 0;  }
        +
        +
        +/*
        +    Comment out this line to use web-style paragraphs (blank line between
        +    paragraphs, no indent) instead of print-style paragraphs (no blank line,
        +    indented.)
        +*/
        +p {
        +    text-indent: 5ex; margin: 0 }
        +
        +
        +/*  Opera doesn't break with just wbr, but will if you add this.  */
        +.Opera wbr:after {
        +	content: "\00200B";
        +	}
        +
        +/*  Blockquotes are used as containers for things that may need to scroll.  */
        +blockquote {
        +    padding: 0;
        +    margin: 0;
        +    overflow: auto;
        +    }
        +
        +
        +.Firefox1 blockquote {
        +    padding-bottom: .5em;
        +    }
        +
        +/*  Turn off scrolling when printing.  */
        +@media print {
        +    blockquote {
        +        overflow: visible;
        +        }
        +    .IE blockquote {
        +        width: auto;
        +        }
        +    }
        +
        +
        +
        +#Menu {
        +    font-size: 8pt;
        +    padding: 10px 0 0 0;
        +    }
        +.ContentPage #Menu,
        +.IndexPage #Menu {
        +    position: absolute;
        +    top: 0;
        +    left: 0;
        +    width: 31ex;
        +    overflow: hidden;
        +    }
        +.ContentPage .Firefox #Menu,
        +.IndexPage .Firefox #Menu {
        +    width: 27ex;
        +    }
        +
        +
        +    .MTitle {
        +        font-size: 16pt; font-weight: bold; font-variant: small-caps;
        +        text-align: center;
        +        padding: 5px 10px 15px 10px;
        +        border-bottom: 1px dotted #000000;
        +        margin-bottom: 15px }
        +
        +    .MSubTitle {
        +        font-size: 9pt; font-weight: normal; font-variant: normal;
        +        margin-top: 1ex; margin-bottom: 5px }
        +
        +
        +    .MEntry a:link,
        +    .MEntry a:hover,
        +    .MEntry a:visited { color: #606060; margin-right: 0 }
        +    .MEntry a:active { color: #A00000; margin-right: 0 }
        +
        +
        +    .MGroup {
        +        font-variant: small-caps; font-weight: bold;
        +        margin: 1em 0 1em 10px;
        +        }
        +
        +    .MGroupContent {
        +        font-variant: normal; font-weight: normal }
        +
        +    .MGroup a:link,
        +    .MGroup a:hover,
        +    .MGroup a:visited { color: #545454; margin-right: 10px }
        +    .MGroup a:active { color: #A00000; margin-right: 10px }
        +
        +
        +    .MFile,
        +    .MText,
        +    .MLink,
        +    .MIndex {
        +        padding: 1px 17px 2px 10px;
        +        margin: .25em 0 .25em 0;
        +        }
        +
        +    .MText {
        +        font-size: 8pt; font-style: italic }
        +
        +    .MLink {
        +        font-style: italic }
        +
        +    #MSelected {
        +        color: #000000; background-color: #FFFFFF;
        +        /*  Replace padding with border.  */
        +        padding: 0 10px 0 10px;
        +        border-width: 1px 2px 2px 0; border-style: solid; border-color: #000000;
        +        margin-right: 5px;
        +        }
        +
        +    /*  Close off the left side when its in a group.  */
        +    .MGroup #MSelected {
        +        padding-left: 9px; border-left-width: 1px }
        +
        +    /*  A treat for Mozilla users.  Blatantly non-standard.  Will be replaced with CSS 3 attributes when finalized/supported.  */
        +    .Firefox #MSelected {
        +        -moz-border-radius-topright: 10px;
        +        -moz-border-radius-bottomright: 10px }
        +    .Firefox .MGroup #MSelected {
        +        -moz-border-radius-topleft: 10px;
        +        -moz-border-radius-bottomleft: 10px }
        +
        +
        +    #MSearchPanel {
        +        padding: 0px 6px;
        +        margin: .25em 0;
        +        }
        +
        +
        +    #MSearchField {
        +        font: italic 8pt Verdana, sans-serif;
        +        color: #606060;
        +        background-color: #E8E8E8;
        +        border: none;
        +        padding: 2px 4px;
        +        width: 100%;
        +        }
        +    /* Only Opera gets it right. */
        +    .Firefox #MSearchField,
        +    .IE #MSearchField,
        +    .Safari #MSearchField {
        +        width: 94%;
        +        }
        +    .Opera9 #MSearchField,
        +    .Konqueror #MSearchField {
        +        width: 97%;
        +        }
        +    .FramedMenuPage .Firefox #MSearchField,
        +    .FramedMenuPage .Safari #MSearchField,
        +    .FramedMenuPage .Konqueror #MSearchField {
        +        width: 98%;
        +        }
        +
        +    /* Firefox doesn't do this right in frames without #MSearchPanel added on.
        +        It's presence doesn't hurt anything other browsers. */
        +    #MSearchPanel.MSearchPanelInactive:hover #MSearchField {
        +        background-color: #FFFFFF;
        +        border: 1px solid #C0C0C0;
        +        padding: 1px 3px;
        +        }
        +    .MSearchPanelActive #MSearchField {
        +        background-color: #FFFFFF;
        +        border: 1px solid #C0C0C0;
        +        font-style: normal;
        +        padding: 1px 3px;
        +        }
        +
        +    #MSearchType {
        +        visibility: hidden;
        +        font: 8pt Verdana, sans-serif;
        +        width: 98%;
        +        padding: 0;
        +        border: 1px solid #C0C0C0;
        +        }
        +    .MSearchPanelActive #MSearchType,
        +    /*  As mentioned above, Firefox doesn't do this right in frames without #MSearchPanel added on. */
        +    #MSearchPanel.MSearchPanelInactive:hover #MSearchType,
        +    #MSearchType:focus {
        +        visibility: visible;
        +        color: #606060;
        +        }
        +    #MSearchType option#MSearchEverything {
        +        font-weight: bold;
        +        }
        +
        +    .Opera8 .MSearchPanelInactive:hover,
        +    .Opera8 .MSearchPanelActive {
        +        margin-left: -1px;
        +        }
        +
        +
        +    iframe#MSearchResults {
        +        width: 60ex;
        +        height: 15em;
        +        }
        +    #MSearchResultsWindow {
        +        display: none;
        +        position: absolute;
        +        left: 0; top: 0;
        +        border: 1px solid #000000;
        +        background-color: #E8E8E8;
        +        }
        +    #MSearchResultsWindowClose {
        +        font-weight: bold;
        +        font-size: 8pt;
        +        display: block;
        +        padding: 2px 5px;
        +        }
        +    #MSearchResultsWindowClose:link,
        +    #MSearchResultsWindowClose:visited {
        +        color: #000000;
        +        text-decoration: none;
        +        }
        +    #MSearchResultsWindowClose:active,
        +    #MSearchResultsWindowClose:hover {
        +        color: #800000;
        +        text-decoration: none;
        +        background-color: #F4F4F4;
        +        }
        +
        +
        +
        +
        +#Content {
        +    padding-bottom: 15px;
        +    }
        +
        +.ContentPage #Content {
        +    border-width: 0 0 1px 1px;
        +    border-style: solid;
        +    border-color: #000000;
        +    background-color: #FFFFFF;
        +    font-size: 8pt;  /* To make 31ex match the menu's 31ex. */
        +    margin-left: 31ex;
        +    }
        +.ContentPage .Firefox #Content {
        +    margin-left: 27ex;
        +    }
        +
        +
        +
        +    .CTopic {
        +        font-size: 8pt;
        +        margin-bottom: 3em;
        +        }
        +
        +
        +    .CTitle {
        +        font-size: 11pt; font-weight: bold;
        +        border-width: 0 0 1px 0; border-style: solid; border-color: #A0A0A0;
        +        margin: 0 15px .5em 15px }
        +
        +    .CGroup .CTitle {
        +        font-size: 16pt; font-variant: small-caps;
        +        padding-left: 15px; padding-right: 15px;
        +        border-width: 0 0 2px 0; border-color: #000000;
        +        margin-left: 0; margin-right: 0 }
        +
        +    .CClass .CTitle,
        +    .CInterface .CTitle,
        +    .CDatabase .CTitle,
        +    .CDatabaseTable .CTitle,
        +    .CSection .CTitle {
        +        font-size: 18pt;
        +        color: #FFFFFF; background-color: #A0A0A0;
        +        padding: 10px 15px 10px 15px;
        +        border-width: 2px 0; border-color: #000000;
        +        margin-left: 0; margin-right: 0 }
        +
        +    #MainTopic .CTitle {
        +        font-size: 20pt;
        +        color: #FFFFFF; background-color: #7070C0;
        +        padding: 10px 15px 10px 15px;
        +        border-width: 0 0 3px 0; border-color: #000000;
        +        margin-left: 0; margin-right: 0 }
        +
        +    .CBody {
        +        margin-left: 15px; margin-right: 15px }
        +
        +
        +    .CToolTip {
        +        position: absolute; visibility: hidden;
        +        left: 0; top: 0;
        +        background-color: #FFFFE0;
        +        padding: 5px;
        +        border-width: 1px 2px 2px 1px; border-style: solid; border-color: #000000;
        +        font-size: 8pt;
        +        }
        +
        +    .Opera .CToolTip {
        +        max-width: 98%;
        +        }
        +
        +    /*  Scrollbars would be useless.  */
        +    .CToolTip blockquote {
        +        overflow: hidden;
        +        }
        +    .IE6 .CToolTip blockquote {
        +        overflow: visible;
        +        }
        +
        +    .CHeading {
        +        font-weight: bold; font-size: 9pt;
        +        margin: 1.5em 0 .5em 0;
        +        }
        +
        +    .CBody pre {
        +        font: 8pt "Courier New", Courier, monospace;
        +	    background-color: #FCFCFC;
        +	    margin: 1em 35px;
        +	    padding: 10px 15px 10px 10px;
        +	    border-color: #E0E0E0 #E0E0E0 #E0E0E0 #E4E4E4;
        +	    border-width: 1px 1px 1px 6px;
        +	    border-style: dashed dashed dashed solid;
        +        }
        +
        +    .CBody ul {
        +        /*  I don't know why CBody's margin doesn't apply, but it's consistent across browsers so whatever.
        +             Reapply it here as padding.  */
        +        padding-left: 15px; padding-right: 15px;
        +        margin: .5em 5ex .5em 5ex;
        +        }
        +
        +    .CDescriptionList {
        +        margin: .5em 5ex 0 5ex }
        +
        +        .CDLEntry {
        +            font: 8pt "Courier New", Courier, monospace; color: #808080;
        +            padding-bottom: .25em;
        +            white-space: nowrap }
        +
        +        .CDLDescription {
        +            font-size: 8pt;  /*  For browsers that don't inherit correctly, like Opera 5.  */
        +            padding-bottom: .5em; padding-left: 5ex }
        +
        +
        +    .CTopic img {
        +        text-align: center;
        +        display: block;
        +        margin: 1em auto;
        +        }
        +    .CImageCaption {
        +        font-variant: small-caps;
        +        font-size: 8pt;
        +        color: #808080;
        +        text-align: center;
        +        position: relative;
        +        top: 1em;
        +        }
        +
        +    .CImageLink {
        +        color: #808080;
        +        font-style: italic;
        +        }
        +    a.CImageLink:link,
        +    a.CImageLink:visited,
        +    a.CImageLink:hover { color: #808080 }
        +
        +
        +
        +
        +
        +.Prototype {
        +    font: 8pt "Courier New", Courier, monospace;
        +    padding: 5px 3ex;
        +    border-width: 1px; border-style: solid;
        +    margin: 0 5ex 1.5em 5ex;
        +    }
        +
        +    .Prototype td {
        +        font-size: 8pt;
        +        }
        +
        +    .PDefaultValue,
        +    .PDefaultValuePrefix,
        +    .PTypePrefix {
        +        color: #8F8F8F;
        +        }
        +    .PTypePrefix {
        +        text-align: right;
        +        }
        +    .PAfterParameters {
        +        vertical-align: bottom;
        +        }
        +
        +    .IE .Prototype table {
        +        padding: 0;
        +        }
        +
        +    .CFunction .Prototype {
        +        background-color: #F4F4F4; border-color: #D0D0D0 }
        +    .CProperty .Prototype {
        +        background-color: #F4F4FF; border-color: #C0C0E8 }
        +    .CVariable .Prototype {
        +        background-color: #FFFFF0; border-color: #E0E0A0 }
        +
        +    .CClass .Prototype {
        +        border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0A0;
        +        background-color: #F4F4F4;
        +        }
        +    .CInterface .Prototype {
        +        border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0D0;
        +        background-color: #F4F4FF;
        +        }
        +
        +    .CDatabaseIndex .Prototype,
        +    .CConstant .Prototype {
        +        background-color: #D0D0D0; border-color: #000000 }
        +    .CType .Prototype,
        +    .CEnumeration .Prototype {
        +        background-color: #FAF0F0; border-color: #E0B0B0;
        +        }
        +    .CDatabaseTrigger .Prototype,
        +    .CEvent .Prototype,
        +    .CDelegate .Prototype {
        +        background-color: #F0FCF0; border-color: #B8E4B8 }
        +
        +    .CToolTip .Prototype {
        +        margin: 0 0 .5em 0;
        +        white-space: nowrap;
        +        }
        +
        +
        +
        +
        +
        +.Summary {
        +    margin: 1.5em 5ex 0 5ex }
        +
        +    .STitle {
        +        font-size: 11pt; font-weight: bold;
        +        margin-bottom: .5em }
        +
        +
        +    .SBorder {
        +        background-color: #FFFFF0;
        +        padding: 15px;
        +        border: 1px solid #C0C060 }
        +
        +    /* In a frame IE 6 will make them too long unless you set the width to 100%.  Without frames it will be correct without a width
        +        or slightly too long (but not enough to scroll) with a width.  This arbitrary weirdness simply astounds me.  IE 7 has the same
        +        problem with frames, haven't tested it without.  */
        +    .FramedContentPage .IE .SBorder {
        +        width: 100% }
        +
        +    /*  A treat for Mozilla users.  Blatantly non-standard.  Will be replaced with CSS 3 attributes when finalized/supported.  */
        +    .Firefox .SBorder {
        +        -moz-border-radius: 20px }
        +
        +
        +    .STable {
        +        font-size: 8pt; width: 100% }
        +
        +    .SEntry {
        +        width: 30% }
        +    .SDescription {
        +        width: 70% }
        +
        +
        +    .SMarked {
        +        background-color: #F8F8D8 }
        +
        +    .SDescription { padding-left: 2ex }
        +    .SIndent1 .SEntry { padding-left: 1.5ex }   .SIndent1 .SDescription { padding-left: 3.5ex }
        +    .SIndent2 .SEntry { padding-left: 3.0ex }   .SIndent2 .SDescription { padding-left: 5.0ex }
        +    .SIndent3 .SEntry { padding-left: 4.5ex }   .SIndent3 .SDescription { padding-left: 6.5ex }
        +    .SIndent4 .SEntry { padding-left: 6.0ex }   .SIndent4 .SDescription { padding-left: 8.0ex }
        +    .SIndent5 .SEntry { padding-left: 7.5ex }   .SIndent5 .SDescription { padding-left: 9.5ex }
        +
        +    .SDescription a { color: #800000}
        +    .SDescription a:active { color: #A00000 }
        +
        +    .SGroup td {
        +        padding-top: .5em; padding-bottom: .25em }
        +
        +    .SGroup .SEntry {
        +        font-weight: bold; font-variant: small-caps }
        +
        +    .SGroup .SEntry a { color: #800000 }
        +    .SGroup .SEntry a:active { color: #F00000 }
        +
        +
        +    .SMain td,
        +    .SClass td,
        +    .SDatabase td,
        +    .SDatabaseTable td,
        +    .SSection td {
        +        font-size: 10pt;
        +        padding-bottom: .25em }
        +
        +    .SClass td,
        +    .SDatabase td,
        +    .SDatabaseTable td,
        +    .SSection td {
        +        padding-top: 1em }
        +
        +    .SMain .SEntry,
        +    .SClass .SEntry,
        +    .SDatabase .SEntry,
        +    .SDatabaseTable .SEntry,
        +    .SSection .SEntry {
        +        font-weight: bold;
        +        }
        +
        +    .SMain .SEntry a,
        +    .SClass .SEntry a,
        +    .SDatabase .SEntry a,
        +    .SDatabaseTable .SEntry a,
        +    .SSection .SEntry a { color: #000000 }
        +
        +    .SMain .SEntry a:active,
        +    .SClass .SEntry a:active,
        +    .SDatabase .SEntry a:active,
        +    .SDatabaseTable .SEntry a:active,
        +    .SSection .SEntry a:active { color: #A00000 }
        +
        +
        +
        +
        +
        +.ClassHierarchy {
        +    margin: 0 15px 1em 15px }
        +
        +    .CHEntry {
        +        border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0A0;
        +        margin-bottom: 3px;
        +        padding: 2px 2ex;
        +        font-size: 8pt;
        +        background-color: #F4F4F4; color: #606060;
        +        }
        +
        +    .Firefox .CHEntry {
        +        -moz-border-radius: 4px;
        +        }
        +
        +    .CHCurrent .CHEntry {
        +        font-weight: bold;
        +        border-color: #000000;
        +        color: #000000;
        +        }
        +
        +    .CHChildNote .CHEntry {
        +        font-style: italic;
        +        font-size: 8pt;
        +        }
        +
        +    .CHIndent {
        +        margin-left: 3ex;
        +        }
        +
        +    .CHEntry a:link,
        +    .CHEntry a:visited,
        +    .CHEntry a:hover {
        +        color: #606060;
        +        }
        +    .CHEntry a:active {
        +        color: #800000;
        +        }
        +
        +
        +
        +
        +
        +#Index {
        +    background-color: #FFFFFF;
        +    }
        +
        +/*  As opposed to .PopupSearchResultsPage #Index  */
        +.IndexPage #Index,
        +.FramedIndexPage #Index,
        +.FramedSearchResultsPage #Index {
        +    padding: 15px;
        +    }
        +
        +.IndexPage #Index {
        +    border-width: 0 0 1px 1px;
        +    border-style: solid;
        +    border-color: #000000;
        +    font-size: 8pt;  /* To make 27ex match the menu's 27ex. */
        +    margin-left: 27ex;
        +    }
        +
        +
        +    .IPageTitle {
        +        font-size: 20pt; font-weight: bold;
        +        color: #FFFFFF; background-color: #7070C0;
        +        padding: 10px 15px 10px 15px;
        +        border-width: 0 0 3px 0; border-color: #000000; border-style: solid;
        +        margin: -15px -15px 0 -15px }
        +
        +    .FramedSearchResultsPage .IPageTitle {
        +        margin-bottom: 15px;
        +        }
        +
        +    .INavigationBar {
        +        text-align: center;
        +        background-color: #FFFFF0;
        +        padding: 5px;
        +        border-bottom: solid 1px black;
        +        margin: 0 -15px 15px -15px;
        +        }
        +
        +    .INavigationBar a {
        +        font-weight: bold }
        +
        +    .IHeading {
        +        font-size: 14pt; font-weight: bold;
        +        padding: 2.5em 0 .5em 0;
        +        text-align: center;
        +        width: 3.5ex;
        +        }
        +    #IFirstHeading {
        +        padding-top: 0;
        +        }
        +
        +    .IEntry {
        +        padding-left: 1ex;
        +        }
        +    .PopupSearchResultsPage .IEntry {
        +        font-size: 8pt;
        +        padding: 1px 5px;
        +        }
        +    .PopupSearchResultsPage .Opera9 .IEntry,
        +    .FramedSearchResultsPage .Opera9 .IEntry {
        +        text-align: left;
        +        }
        +    .FramedSearchResultsPage .IEntry {
        +        padding: 0;
        +        }
        +
        +    .ISubIndex {
        +        padding-left: 3ex; padding-bottom: .5em }
        +    .PopupSearchResultsPage .ISubIndex {
        +        display: none;
        +        }
        +
        +    /*  While it may cause some entries to look like links when they aren't, I found it's much easier to read the
        +         index if everything's the same color.  */
        +    .ISymbol {
        +        font-weight: bold; color: #900000  }
        +
        +    .IndexPage .ISymbolPrefix,
        +    .FramedIndexPage .ISymbolPrefix {
        +        text-align: right;
        +        color: #C47C7C;
        +        background-color: #F8F8F8;
        +        border-right: 3px solid #E0E0E0;
        +        border-left: 1px solid #E0E0E0;
        +        padding: 0 1px 0 2px;
        +        }
        +    .PopupSearchResultsPage .ISymbolPrefix,
        +    .FramedSearchResultsPage .ISymbolPrefix {
        +        color: #900000;
        +        }
        +    .PopupSearchResultsPage .ISymbolPrefix {
        +        font-size: 8pt;
        +        }
        +
        +    .IndexPage #IFirstSymbolPrefix,
        +    .FramedIndexPage #IFirstSymbolPrefix {
        +        border-top: 1px solid #E0E0E0;
        +        }
        +    .IndexPage #ILastSymbolPrefix,
        +    .FramedIndexPage #ILastSymbolPrefix {
        +        border-bottom: 1px solid #E0E0E0;
        +        }
        +    .IndexPage #IOnlySymbolPrefix,
        +    .FramedIndexPage #IOnlySymbolPrefix {
        +        border-top: 1px solid #E0E0E0;
        +        border-bottom: 1px solid #E0E0E0;
        +        }
        +
        +    a.IParent,
        +    a.IFile {
        +        display: block;
        +        }
        +
        +    .PopupSearchResultsPage .SRStatus {
        +        padding: 2px 5px;
        +        font-size: 8pt;
        +        font-style: italic;
        +        }
        +    .FramedSearchResultsPage .SRStatus {
        +        font-size: 8pt;
        +        font-style: italic;
        +        }
        +
        +    .SRResult {
        +        display: none;
        +        }
        +
        +
        +
        +#Footer {
        +    font-size: 8pt;
        +    color: #989898;
        +    text-align: right;
        +    }
        +
        +#Footer p {
        +    text-indent: 0;
        +    margin-bottom: .5em;
        +    }
        +
        +.ContentPage #Footer,
        +.IndexPage #Footer {
        +    text-align: right;
        +    margin: 2px;
        +    }
        +
        +.FramedMenuPage #Footer {
        +    text-align: center;
        +    margin: 5em 10px 10px 10px;
        +    padding-top: 1em;
        +    border-top: 1px solid #C8C8C8;
        +    }
        +
        +    #Footer a:link,
        +    #Footer a:hover,
        +    #Footer a:visited { color: #989898 }
        +    #Footer a:active { color: #A00000 }
        +
        +
        +
        +.prettyprint .kwd { color: #800000; }  /* keywords */
        +
        +    .prettyprint.PDefaultValue .kwd,
        +    .prettyprint.PDefaultValuePrefix .kwd,
        +    .prettyprint.PTypePrefix .kwd {
        +        color: #C88F8F;
        +        }
        +
        +.prettyprint .com { color: #008000; }  /* comments */
        +
        +    .prettyprint.PDefaultValue .com,
        +    .prettyprint.PDefaultValuePrefix .com,
        +    .prettyprint.PTypePrefix .com {
        +        color: #8FC88F;
        +        }
        +
        +.prettyprint .str { color: #0000B0; }  /* strings */
        +.prettyprint .lit { color: #0000B0; }  /* literals */
        +
        +    .prettyprint.PDefaultValue .str,
        +    .prettyprint.PDefaultValuePrefix .str,
        +    .prettyprint.PTypePrefix .str,
        +    .prettyprint.PDefaultValue .lit,
        +    .prettyprint.PDefaultValuePrefix .lit,
        +    .prettyprint.PTypePrefix .lit {
        +        color: #8F8FC0;
        +        }
        +
        +.prettyprint .typ { color: #000000; }  /* types */
        +.prettyprint .pun { color: #000000; }  /* punctuation */
        +.prettyprint .pln { color: #000000; }  /* punctuation */
        +
        +    .prettyprint.PDefaultValue .typ,
        +    .prettyprint.PDefaultValuePrefix .typ,
        +    .prettyprint.PTypePrefix .typ,
        +    .prettyprint.PDefaultValue .pun,
        +    .prettyprint.PDefaultValuePrefix .pun,
        +    .prettyprint.PTypePrefix .pun,
        +    .prettyprint.PDefaultValue .pln,
        +    .prettyprint.PDefaultValuePrefix .pln,
        +    .prettyprint.PTypePrefix .pln {
        +        color: #8F8F8F;
        +        }
        +
        +.prettyprint .tag { color: #008; }
        +.prettyprint .atn { color: #606; }
        +.prettyprint .atv { color: #080; }
        +.prettyprint .dec { color: #606; }
        +
        diff --git a/lib/ann/fann/docs/generate_docs.sh b/lib/ann/fann/docs/generate_docs.sh
        new file mode 100755
        index 0000000..daaab11
        --- /dev/null
        +++ b/lib/ann/fann/docs/generate_docs.sh
        @@ -0,0 +1,5 @@
        +#!/usr/bin/env bash
        +
        +SCRIPT_PATH=`dirname $0`
        +
        +${SCRIPT_PATH}/NaturalDocs-1.52/NaturalDocs -r -i ${SCRIPT_PATH}/../src/include/ -o HTML ${SCRIPT_PATH}/html -p ${SCRIPT_PATH}/prj
        \ No newline at end of file
        diff --git a/lib/ann/fann/docs/prj/Languages.txt b/lib/ann/fann/docs/prj/Languages.txt
        new file mode 100644
        index 0000000..42b197c
        --- /dev/null
        +++ b/lib/ann/fann/docs/prj/Languages.txt
        @@ -0,0 +1,113 @@
        +Format: 1.52
        +
        +# This is the Natural Docs languages file for this project.  If you change
        +# anything here, it will apply to THIS PROJECT ONLY.  If you'd like to change
        +# something for all your projects, edit the Languages.txt in Natural Docs'
        +# Config directory instead.
        +
        +
        +# You can prevent certain file extensions from being scanned like this:
        +# Ignore Extensions: [extension] [extension] ...
        +
        +
        +#-------------------------------------------------------------------------------
        +# SYNTAX:
        +#
        +# Unlike other Natural Docs configuration files, in this file all comments
        +# MUST be alone on a line.  Some languages deal with the # character, so you
        +# cannot put comments on the same line as content.
        +#
        +# Also, all lists are separated with spaces, not commas, again because some
        +# languages may need to use them.
        +#
        +# Language: [name]
        +# Alter Language: [name]
        +#    Defines a new language or alters an existing one.  Its name can use any
        +#    characters.  If any of the properties below have an add/replace form, you
        +#    must use that when using Alter Language.
        +#
        +#    The language Shebang Script is special.  It's entry is only used for
        +#    extensions, and files with those extensions have their shebang (#!) lines
        +#    read to determine the real language of the file.  Extensionless files are
        +#    always treated this way.
        +#
        +#    The language Text File is also special.  It's treated as one big comment
        +#    so you can put Natural Docs content in them without special symbols.  Also,
        +#    if you don't specify a package separator, ignored prefixes, or enum value
        +#    behavior, it will copy those settings from the language that is used most
        +#    in the source tree.
        +#
        +# Extensions: [extension] [extension] ...
        +# [Add/Replace] Extensions: [extension] [extension] ...
        +#    Defines the file extensions of the language's source files.  You can
        +#    redefine extensions found in the main languages file.  You can use * to
        +#    mean any undefined extension.
        +#
        +# Shebang Strings: [string] [string] ...
        +# [Add/Replace] Shebang Strings: [string] [string] ...
        +#    Defines a list of strings that can appear in the shebang (#!) line to
        +#    designate that it's part of the language.  You can redefine strings found
        +#    in the main languages file.
        +#
        +# Ignore Prefixes in Index: [prefix] [prefix] ...
        +# [Add/Replace] Ignored Prefixes in Index: [prefix] [prefix] ...
        +#
        +# Ignore [Topic Type] Prefixes in Index: [prefix] [prefix] ...
        +# [Add/Replace] Ignored [Topic Type] Prefixes in Index: [prefix] [prefix] ...
        +#    Specifies prefixes that should be ignored when sorting symbols in an
        +#    index.  Can be specified in general or for a specific topic type.
        +#
        +#------------------------------------------------------------------------------
        +# For basic language support only:
        +#
        +# Line Comments: [symbol] [symbol] ...
        +#    Defines a space-separated list of symbols that are used for line comments,
        +#    if any.
        +#
        +# Block Comments: [opening sym] [closing sym] [opening sym] [closing sym] ...
        +#    Defines a space-separated list of symbol pairs that are used for block
        +#    comments, if any.
        +#
        +# Package Separator: [symbol]
        +#    Defines the default package separator symbol.  The default is a dot.
        +#
        +# [Topic Type] Prototype Enders: [symbol] [symbol] ...
        +#    When defined, Natural Docs will attempt to get a prototype from the code
        +#    immediately following the topic type.  It stops when it reaches one of
        +#    these symbols.  Use \n for line breaks.
        +#
        +# Line Extender: [symbol]
        +#    Defines the symbol that allows a prototype to span multiple lines if
        +#    normally a line break would end it.
        +#
        +# Enum Values: [global|under type|under parent]
        +#    Defines how enum values are referenced.  The default is global.
        +#    global       - Values are always global, referenced as 'value'.
        +#    under type   - Values are under the enum type, referenced as
        +#               'package.enum.value'.
        +#    under parent - Values are under the enum's parent, referenced as
        +#               'package.value'.
        +#
        +# Perl Package: [perl package]
        +#    Specifies the Perl package used to fine-tune the language behavior in ways
        +#    too complex to do in this file.
        +#
        +#------------------------------------------------------------------------------
        +# For full language support only:
        +#
        +# Full Language Support: [perl package]
        +#    Specifies the Perl package that has the parsing routines necessary for full
        +#    language support.
        +#
        +#-------------------------------------------------------------------------------
        +
        +# The following languages are defined in the main file, if you'd like to alter
        +# them:
        +#
        +#    Text File, Shebang Script, C/C++, C#, Java, JavaScript, Perl, Python,
        +#    PHP, SQL, Visual Basic, Pascal, Assembly, Ada, Tcl, Ruby, Makefile,
        +#    ActionScript, ColdFusion, R, Fortran
        +
        +# If you add a language that you think would be useful to other developers
        +# and should be included in Natural Docs by default, please e-mail it to
        +# languages [at] naturaldocs [dot] org.
        diff --git a/lib/ann/fann/docs/prj/Menu.txt b/lib/ann/fann/docs/prj/Menu.txt
        new file mode 100644
        index 0000000..eccf2c1
        --- /dev/null
        +++ b/lib/ann/fann/docs/prj/Menu.txt
        @@ -0,0 +1,72 @@
        +Format: 1.52
        +
        +
        +Title: FANN
        +SubTitle: Fast Artificial Neural Network Library
        +
        +# You can add a footer to your documentation like this:
        +# Footer: [text]
        +# If you want to add a copyright notice, this would be the place to do it.
        +
        +# You can add a timestamp to your documentation like one of these:
        +# Timestamp: Generated on month day, year
        +# Timestamp: Updated mm/dd/yyyy
        +# Timestamp: Last updated mon day
        +#
        +#   m     - One or two digit month.  January is "1"
        +#   mm    - Always two digit month.  January is "01"
        +#   mon   - Short month word.  January is "Jan"
        +#   month - Long month word.  January is "January"
        +#   d     - One or two digit day.  1 is "1"
        +#   dd    - Always two digit day.  1 is "01"
        +#   day   - Day with letter extension.  1 is "1st"
        +#   yy    - Two digit year.  2006 is "06"
        +#   yyyy  - Four digit year.  2006 is "2006"
        +#   year  - Four digit year.  2006 is "2006"
        +
        +
        +# --------------------------------------------------------------------------
        +# 
        +# Cut and paste the lines below to change the order in which your files
        +# appear on the menu.  Don't worry about adding or removing files, Natural
        +# Docs will take care of that.
        +# 
        +# You can further organize the menu by grouping the entries.  Add a
        +# "Group: [name] {" line to start a group, and add a "}" to end it.
        +# 
        +# You can add text and web links to the menu by adding "Text: [text]" and
        +# "Link: [name] ([URL])" lines, respectively.
        +# 
        +# The formatting and comments are auto-generated, so don't worry about
        +# neatness when editing the file.  Natural Docs will clean it up the next
        +# time it is run.  When working with groups, just deal with the braces and
        +# forget about the indentation and comments.
        +# 
        +# --------------------------------------------------------------------------
        +
        +
        +Link: Github  (https://github.com/libfann/fann)
        +Link: FANN Webpage  (http://leenissen.dk/fann/wp/)
        +
        +Group: Reference Manual  {
        +
        +   File: FANN Creation/Execution  (fann.h)
        +   File: FANN Datatypes  (fann_data.h)
        +   File: FANN Training  (fann_train.h)
        +   File: FANN Cascade Training  (fann_cascade.h)
        +   File: FANN Error Handling  (fann_error.h)
        +   File: FANN File Input/Output  (fann_io.h)
        +   File: FANN C++ Wrapper  (fann_cpp.h)
        +   File: FANN C++ Training Data  (fann_training_data_cpp.h)
        +   File: FANN C++ Datatypes  (fann_data_cpp.h)
        +   }  # Group: Reference Manual
        +
        +Group: Index  {
        +
        +   Index: Everything
        +   Class Index: Classes
        +   Constant Index: Constants
        +   Function Index: Functions
        +   Type Index: Types
        +   }  # Group: Index
        +
        diff --git a/lib/ann/fann/docs/prj/Topics.txt b/lib/ann/fann/docs/prj/Topics.txt
        new file mode 100644
        index 0000000..905270f
        --- /dev/null
        +++ b/lib/ann/fann/docs/prj/Topics.txt
        @@ -0,0 +1,81 @@
        +Format: 1.52
        +
        +# This is the Natural Docs topics file for this project.  If you change anything
        +# here, it will apply to THIS PROJECT ONLY.  If you'd like to change something
        +# for all your projects, edit the Topics.txt in Natural Docs' Config directory
        +# instead.
        +
        +
        +# If you'd like to prevent keywords from being recognized by Natural Docs, you
        +# can do it like this:
        +# Ignore Keywords: [keyword], [keyword], ...
        +#
        +# Or you can use the list syntax like how they are defined:
        +# Ignore Keywords:
        +#    [keyword]
        +#    [keyword], [plural keyword]
        +#    ...
        +
        +
        +#-------------------------------------------------------------------------------
        +# SYNTAX:
        +#
        +# Topic Type: [name]
        +# Alter Topic Type: [name]
        +#    Creates a new topic type or alters one from the main file.  Each type gets
        +#    its own index and behavior settings.  Its name can have letters, numbers,
        +#    spaces, and these charaters: - / . '
        +#
        +# Plural: [name]
        +#    Sets the plural name of the topic type, if different.
        +#
        +# Keywords:
        +#    [keyword]
        +#    [keyword], [plural keyword]
        +#    ...
        +#    Defines or adds to the list of keywords for the topic type.  They may only
        +#    contain letters, numbers, and spaces and are not case sensitive.  Plural
        +#    keywords are used for list topics.  You can redefine keywords found in the
        +#    main topics file.
        +#
        +# Index: [yes|no]
        +#    Whether the topics get their own index.  Defaults to yes.  Everything is
        +#    included in the general index regardless of this setting.
        +#
        +# Scope: [normal|start|end|always global]
        +#    How the topics affects scope.  Defaults to normal.
        +#    normal        - Topics stay within the current scope.
        +#    start         - Topics start a new scope for all the topics beneath it,
        +#                    like class topics.
        +#    end           - Topics reset the scope back to global for all the topics
        +#                    beneath it.
        +#    always global - Topics are defined as global, but do not change the scope
        +#                    for any other topics.
        +#
        +# Class Hierarchy: [yes|no]
        +#    Whether the topics are part of the class hierarchy.  Defaults to no.
        +#
        +# Page Title If First: [yes|no]
        +#    Whether the topic's title becomes the page title if it's the first one in
        +#    a file.  Defaults to no.
        +#
        +# Break Lists: [yes|no]
        +#    Whether list topics should be broken into individual topics in the output.
        +#    Defaults to no.
        +#
        +# Can Group With: [type], [type], ...
        +#    Defines a list of topic types that this one can possibly be grouped with.
        +#    Defaults to none.
        +#-------------------------------------------------------------------------------
        +
        +# The following topics are defined in the main file, if you'd like to alter
        +# their behavior or add keywords:
        +#
        +#    Generic, Class, Interface, Section, File, Group, Function, Variable,
        +#    Property, Type, Constant, Enumeration, Event, Delegate, Macro,
        +#    Database, Database Table, Database View, Database Index, Database
        +#    Cursor, Database Trigger, Cookie, Build Target
        +
        +# If you add something that you think would be useful to other developers
        +# and should be included in Natural Docs by default, please e-mail it to
        +# topics [at] naturaldocs [dot] org.
        diff --git a/lib/ann/fann/docs/publish_docs.sh b/lib/ann/fann/docs/publish_docs.sh
        new file mode 100755
        index 0000000..ae68c60
        --- /dev/null
        +++ b/lib/ann/fann/docs/publish_docs.sh
        @@ -0,0 +1,11 @@
        +#!/usr/bin/env bash
        +
        +SCRIPT_PATH=`dirname $0`
        +GH_PAGES_PATH=${SCRIPT_PATH}/../../pages/fann/
        +
        +${SCRIPT_PATH}/generate_docs.sh
        +
        +cp -a ${SCRIPT_PATH}/html/* ${GH_PAGES_PATH}/docs/
        +cd ${GH_PAGES_PATH}
        +git commit -a -m "Automated update of docs"
        +git push origin gh-pages
        \ No newline at end of file
        diff --git a/lib/ann/fann/examples/.gitignore b/lib/ann/fann/examples/.gitignore
        new file mode 100644
        index 0000000..7cf8e68
        --- /dev/null
        +++ b/lib/ann/fann/examples/.gitignore
        @@ -0,0 +1,18 @@
        +cascade_train
        +mushroom
        +robot
        +scaling_test
        +scaling_train
        +simple_test
        +simple_train
        +steepness_train
        +xor_fixed.data
        +xor_fixed.net
        +xor_float.net
        +xor_test
        +xor_test_fixed
        +xor_train
        +cascade_train_debug
        +xor_test_debug
        +xor_test_fixed_debug
        +xor_train_debug
        diff --git a/lib/ann/fann/examples/cascade_train.c b/lib/ann/fann/examples/cascade_train.c
        new file mode 100644
        index 0000000..191fc38
        --- /dev/null
        +++ b/lib/ann/fann/examples/cascade_train.c
        @@ -0,0 +1,116 @@
        +/*
        +  Fast Artificial Neural Network Library (fann)
        +  Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com)
        +  
        +  This library is free software; you can redistribute it and/or
        +  modify it under the terms of the GNU Lesser General Public
        +  License as published by the Free Software Foundation; either
        +  version 2.1 of the License, or (at your option) any later version.
        +  
        +  This library is distributed in the hope that it will be useful,
        +  but WITHOUT ANY WARRANTY; without even the implied warranty of
        +  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
        +  Lesser General Public License for more details.
        +  
        +  You should have received a copy of the GNU Lesser General Public
        +  License along with this library; if not, write to the Free Software
        +  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        +*/
        +
        +#include <stdio.h>
        +
        +#include "fann.h"
        +
        +
        +int main()
        +{
        +	struct fann *ann;
        +	struct fann_train_data *train_data, *test_data;
        +	const float desired_error = (const float)0.0;
        +	unsigned int max_neurons = 30;
        +	unsigned int neurons_between_reports = 1;
        +	unsigned int bit_fail_train, bit_fail_test;
        +	float mse_train, mse_test;
        +	unsigned int i = 0;
        +	fann_type *output;
        +	fann_type steepness;
        +	int multi = 0;
        +	enum fann_activationfunc_enum activation;
        +	enum fann_train_enum training_algorithm = FANN_TRAIN_RPROP;
        +	
        +	printf("Reading data.\n");
        +	 
        +	train_data = fann_read_train_from_file("../../datasets/parity8.train");
        +	test_data = fann_read_train_from_file("../../datasets/parity8.test");
        +
        +	fann_scale_train_data(train_data, -1, 1);
        +	fann_scale_train_data(test_data, -1, 1);
        +	
        +	printf("Creating network.\n");
        +	
        +	ann = fann_create_shortcut(2, fann_num_input_train_data(train_data), fann_num_output_train_data(train_data));
        +		
        +	fann_set_training_algorithm(ann, training_algorithm);
        +	fann_set_activation_function_hidden(ann, FANN_SIGMOID_SYMMETRIC);
        +	fann_set_activation_function_output(ann, FANN_LINEAR);
        +	fann_set_train_error_function(ann, FANN_ERRORFUNC_LINEAR);
        +	
        +	if(!multi)
        +	{
        +		/*steepness = 0.5;*/
        +		steepness = 1;
        +		fann_set_cascade_activation_steepnesses(ann, &steepness, 1);
        +		/*activation = FANN_SIN_SYMMETRIC;*/
        +		activation = FANN_SIGMOID_SYMMETRIC;
        +		
        +		fann_set_cascade_activation_functions(ann, &activation, 1);		
        +		fann_set_cascade_num_candidate_groups(ann, 8);
        +	}	
        +		
        +	if(training_algorithm == FANN_TRAIN_QUICKPROP)
        +	{
        +		fann_set_learning_rate(ann, 0.35f);
        +		fann_randomize_weights(ann, -2.0f, 2.0f);
        +	}
        +	
        +	fann_set_bit_fail_limit(ann, (fann_type)0.9);
        +	fann_set_train_stop_function(ann, FANN_STOPFUNC_BIT);
        +	fann_print_parameters(ann);
        +		
        +	fann_save(ann, "cascade_train2.net");
        +	
        +	printf("Training network.\n");
        +
        +	fann_cascadetrain_on_data(ann, train_data, max_neurons, neurons_between_reports, desired_error);
        +	
        +	fann_print_connections(ann);
        +	
        +	mse_train = fann_test_data(ann, train_data);
        +	bit_fail_train = fann_get_bit_fail(ann);
        +	mse_test = fann_test_data(ann, test_data);
        +	bit_fail_test = fann_get_bit_fail(ann);
        +	
        +	printf("\nTrain error: %f, Train bit-fail: %d, Test error: %f, Test bit-fail: %d\n\n", 
        +		   mse_train, bit_fail_train, mse_test, bit_fail_test);
        +	
        +	for(i = 0; i < train_data->num_data; i++)
        +	{
        +		output = fann_run(ann, train_data->input[i]);
        +		if((train_data->output[i][0] >= 0 && output[0] <= 0) ||
        +		   (train_data->output[i][0] <= 0 && output[0] >= 0))
        +		{
        +			printf("ERROR: %f does not match %f\n", train_data->output[i][0], output[0]);
        +		}
        +	}
        +	
        +	printf("Saving network.\n");
        +	
        +	fann_save(ann, "cascade_train.net");
        +	
        +	printf("Cleaning up.\n");
        +	fann_destroy_train(train_data);
        +	fann_destroy_train(test_data);
        +	fann_destroy(ann);
        +	
        +	return 0;
        +}
        diff --git a/lib/ann/fann/examples/momentums.c b/lib/ann/fann/examples/momentums.c
        new file mode 100644
        index 0000000..0523aba
        --- /dev/null
        +++ b/lib/ann/fann/examples/momentums.c
        @@ -0,0 +1,59 @@
        +/*
        +Fast Artificial Neural Network Library (fann)
        +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com)
        +
        +This library is free software; you can redistribute it and/or
        +modify it under the terms of the GNU Lesser General Public
        +License as published by the Free Software Foundation; either
        +version 2.1 of the License, or (at your option) any later version.
        +
        +This library is distributed in the hope that it will be useful,
        +but WITHOUT ANY WARRANTY; without even the implied warranty of
        +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the GNU
        +Lesser General Public License for more details.
        +
        +You should have received a copy of the GNU Lesser General Public
        +License along with this library; if not, write to the Free Software
        +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA02111-1307USA
        +*/
        +
        +#include <stdio.h>
        +
        +#include "fann.h"
        +
        +int main()
        +{
        +	const unsigned int num_layers = 3;
        +	const unsigned int num_neurons_hidden = 96;
        +	const float desired_error = (const float) 0.001;
        +	struct fann *ann;
        +	struct fann_train_data *train_data, *test_data;
        +
        +	float momentum;
        +
        +	train_data = fann_read_train_from_file("../../datasets/robot.train");
        +	test_data = fann_read_train_from_file("../../datasets/robot.test");
        +
        +	for ( momentum = 0.0f; momentum < 0.7f; momentum += 0.1f )
        +	{
        +		printf("============= momentum = %f =============\n", momentum);
        +
        +		ann = fann_create_standard(num_layers,
        +						train_data->num_input, num_neurons_hidden, train_data->num_output);
        +
        +		fann_set_training_algorithm(ann, FANN_TRAIN_INCREMENTAL);
        +
        +		fann_set_learning_momentum(ann, momentum);
        +
        +		fann_train_on_data(ann, train_data, 2000, 500, desired_error);
        +
        +		printf("MSE error on train data: %f\n", fann_test_data(ann, train_data));
        +		printf("MSE error on test data : %f\n", fann_test_data(ann, test_data));
        +
        +		fann_destroy(ann);
        +	}
        +
        +	fann_destroy_train(train_data);
        +	fann_destroy_train(test_data);
        +	return 0;
        +}
        diff --git a/lib/ann/fann/examples/mushroom.c b/lib/ann/fann/examples/mushroom.c
        new file mode 100644
        index 0000000..fdb075a
        --- /dev/null
        +++ b/lib/ann/fann/examples/mushroom.c
        @@ -0,0 +1,74 @@
        +/*
        +Fast Artificial Neural Network Library (fann)
        +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com)
        +
        +This library is free software; you can redistribute it and/or
        +modify it under the terms of the GNU Lesser General Public
        +License as published by the Free Software Foundation; either
        +version 2.1 of the License, or (at your option) any later version.
        +
        +This library is distributed in the hope that it will be useful,
        +but WITHOUT ANY WARRANTY; without even the implied warranty of
        +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
        +Lesser General Public License for more details.
        +
        +You should have received a copy of the GNU Lesser General Public
        +License along with this library; if not, write to the Free Software
        +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        +*/
        +
        +#include <stdio.h>
        +
        +#include "fann.h"
        +
        +int main()
        +{
        +	const unsigned int num_layers = 3;
        +	const unsigned int num_neurons_hidden = 32;
        +	const float desired_error = (const float) 0.0001;
        +	const unsigned int max_epochs = 300;
        +	const unsigned int epochs_between_reports = 10;
        +	struct fann *ann;
        +	struct fann_train_data *train_data, *test_data;
        +
        +	unsigned int i = 0;
        +
        +	printf("Creating network.\n");
        +
        +	train_data = fann_read_train_from_file("../../datasets/mushroom.train");
        +
        +	ann = fann_create_standard(num_layers,
        +					  train_data->num_input, num_neurons_hidden, train_data->num_output);
        +
        +	printf("Training network.\n");
        +
        +	fann_set_activation_function_hidden(ann, FANN_SIGMOID_SYMMETRIC);
        +	fann_set_activation_function_output(ann, FANN_SIGMOID);
        +
        +	/*fann_set_training_algorithm(ann, FANN_TRAIN_INCREMENTAL); */
        +
        +	fann_train_on_data(ann, train_data, max_epochs, epochs_between_reports, desired_error);
        +
        +	printf("Testing network.\n");
        +
        +	test_data = fann_read_train_from_file("../../datasets/mushroom.test");
        +
        +	fann_reset_MSE(ann);
        +	for(i = 0; i < fann_length_train_data(test_data); i++)
        +	{
        +		fann_test(ann, test_data->input[i], test_data->output[i]);
        +	}
        +	
        +	printf("MSE error on test data: %f\n", fann_get_MSE(ann));
        +
        +	printf("Saving network.\n");
        +
        +	fann_save(ann, "mushroom_float.net");
        +
        +	printf("Cleaning up.\n");
        +	fann_destroy_train(train_data);
        +	fann_destroy_train(test_data);
        +	fann_destroy(ann);
        +
        +	return 0;
        +}
        diff --git a/lib/ann/fann/examples/parallel_train.c b/lib/ann/fann/examples/parallel_train.c
        new file mode 100644
        index 0000000..57c21fd
        --- /dev/null
        +++ b/lib/ann/fann/examples/parallel_train.c
        @@ -0,0 +1,54 @@
        +/*
        +Fast Artificial Neural Network Library (fann)
        +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com)
        +
        +This library is free software; you can redistribute it and/or
        +modify it under the terms of the GNU Lesser General Public
        +License as published by the Free Software Foundation; either
        +version 2.1 of the License, or (at your option) any later version.
        +
        +This library is distributed in the hope that it will be useful,
        +but WITHOUT ANY WARRANTY; without even the implied warranty of
        +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
        +Lesser General Public License for more details.
        +
        +You should have received a copy of the GNU Lesser General Public
        +License along with this library; if not, write to the Free Software
        +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        +*/
        +
        +#include "fann.h"
        +#include "parallel_fann.h"
        +
        +int main(int argc, const char* argv[])
        +{
        +	const unsigned int max_epochs = 1000;
        +	unsigned int num_threads = 1;
        +	struct fann_train_data *data;
        +	struct fann *ann;
        +	long before;
        +	float error;
        +	unsigned int i;
        +
        +	if(argc == 2)
        +		num_threads = atoi(argv[1]);
        +
        +	data = fann_read_train_from_file("../../datasets/mushroom.train");
        +	ann = fann_create_standard(3, fann_num_input_train_data(data), 32, fann_num_output_train_data(data));
        +
        +	fann_set_activation_function_hidden(ann, FANN_SIGMOID_SYMMETRIC);
        +	fann_set_activation_function_output(ann, FANN_SIGMOID);
        +
        +	before = GetTickCount();
        +	for(i = 1; i <= max_epochs; i++)
        +	{
        +		error = num_threads > 1 ? fann_train_epoch_irpropm_parallel(ann, data, num_threads) : fann_train_epoch(ann, data);
        +		printf("Epochs     %8d. Current error: %.10f\n", i, error);
        +	}
        +	printf("ticks %d", GetTickCount()-before);
        +
        +	fann_destroy(ann);
        +	fann_destroy_train(data);
        +
        +	return 0;
        +}
        diff --git a/lib/ann/fann/examples/robot.c b/lib/ann/fann/examples/robot.c
        new file mode 100644
        index 0000000..9934797
        --- /dev/null
        +++ b/lib/ann/fann/examples/robot.c
        @@ -0,0 +1,69 @@
        +/*
        +Fast Artificial Neural Network Library (fann)
        +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com)
        +
        +This library is free software; you can redistribute it and/or
        +modify it under the terms of the GNU Lesser General Public
        +License as published by the Free Software Foundation; either
        +version 2.1 of the License, or (at your option) any later version.
        +
        +This library is distributed in the hope that it will be useful,
        +but WITHOUT ANY WARRANTY; without even the implied warranty of
        +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
        +Lesser General Public License for more details.
        +
        +You should have received a copy of the GNU Lesser General Public
        +License along with this library; if not, write to the Free Software
        +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        +*/
        +
        +#include <stdio.h>
        +
        +#include "fann.h"
        +
        +int main()
        +{
        +	const unsigned int num_layers = 3;
        +	const unsigned int num_neurons_hidden = 96;
        +	const float desired_error = (const float) 0.001;
        +	struct fann *ann;
        +	struct fann_train_data *train_data, *test_data;
        +
        +	unsigned int i = 0;
        +
        +	printf("Creating network.\n");
        +
        +	train_data = fann_read_train_from_file("../../datasets/robot.train");
        +
        +	ann = fann_create_standard(num_layers,
        +					  train_data->num_input, num_neurons_hidden, train_data->num_output);
        +
        +	printf("Training network.\n");
        +
        +	fann_set_training_algorithm(ann, FANN_TRAIN_INCREMENTAL);
        +	fann_set_learning_momentum(ann, 0.4f);
        +
        +	fann_train_on_data(ann, train_data, 3000, 10, desired_error);
        +
        +	printf("Testing network.\n");
        +
        +	test_data = fann_read_train_from_file("../../datasets/robot.test");
        +
        +	fann_reset_MSE(ann);
        +	for(i = 0; i < fann_length_train_data(test_data); i++)
        +	{
        +		fann_test(ann, test_data->input[i], test_data->output[i]);
        +	}
        +	printf("MSE error on test data: %f\n", fann_get_MSE(ann));
        +
        +	printf("Saving network.\n");
        +
        +	fann_save(ann, "robot_float.net");
        +
        +	printf("Cleaning up.\n");
        +	fann_destroy_train(train_data);
        +	fann_destroy_train(test_data);
        +	fann_destroy(ann);
        +
        +	return 0;
        +}
        diff --git a/lib/ann/fann/examples/scaling_test.c b/lib/ann/fann/examples/scaling_test.c
        new file mode 100644
        index 0000000..0ea8600
        --- /dev/null
        +++ b/lib/ann/fann/examples/scaling_test.c
        @@ -0,0 +1,36 @@
        +#include <stdio.h>
        +#include "fann.h"
        +
        +int main( int argc, char** argv )
        +{
        +	fann_type *calc_out;
        +	unsigned int i;
        +	int ret = 0;
        +	struct fann *ann;
        +	struct fann_train_data *data;
        +	printf("Creating network.\n");
        +	ann = fann_create_from_file("scaling.net");
        +	if(!ann)
        +	{
        +		printf("Error creating ann --- ABORTING.\n");
        +		return 0;
        +	}
        +	fann_print_connections(ann);
        +	fann_print_parameters(ann);
        +	printf("Testing network.\n");
        +	data = fann_read_train_from_file("../../datasets/scaling.data");
        +	for(i = 0; i < fann_length_train_data(data); i++)
        +	{
        +		fann_reset_MSE(ann);
        +    	fann_scale_input( ann, data->input[i] );
        +		calc_out = fann_run( ann, data->input[i] );
        +		fann_descale_output( ann, calc_out );
        +		printf("Result %f original %f error %f\n",
        +			calc_out[0], data->output[i][0],
        +			(float) fann_abs(calc_out[0] - data->output[i][0]));
        +	}
        +	printf("Cleaning up.\n");
        +	fann_destroy_train(data);
        +	fann_destroy(ann);
        +	return ret;
        +}
        diff --git a/lib/ann/fann/examples/scaling_train.c b/lib/ann/fann/examples/scaling_train.c
        new file mode 100644
        index 0000000..4cde59a
        --- /dev/null
        +++ b/lib/ann/fann/examples/scaling_train.c
        @@ -0,0 +1,33 @@
        +#include "fann.h"
        +
        +int main( int argc, char** argv )
        +{
        +	const unsigned int num_input = 3;
        +	const unsigned int num_output = 1;
        +	const unsigned int num_layers = 4;
        +	const unsigned int num_neurons_hidden = 5;
        +	const float desired_error = (const float) 0.0001;
        +	const unsigned int max_epochs = 5000;
        +	const unsigned int epochs_between_reports = 1000;
        +	struct fann_train_data * data = NULL;
        +	struct fann *ann = fann_create_standard(num_layers, num_input, num_neurons_hidden, num_neurons_hidden, num_output);
        +	fann_set_activation_function_hidden(ann, FANN_SIGMOID_SYMMETRIC);
        +	fann_set_activation_function_output(ann, FANN_LINEAR);
        +	fann_set_training_algorithm(ann, FANN_TRAIN_RPROP);
        +	data = fann_read_train_from_file("../../datasets/scaling.data");
        +	fann_set_scaling_params(
        +		    ann,
        +			data,
        +			-1,	/* New input minimum */
        +			1,	/* New input maximum */
        +			-1,	/* New output minimum */
        +			1);	/* New output maximum */
        +
        +	fann_scale_train( ann, data );
        +
        +	fann_train_on_data(ann, data, max_epochs, epochs_between_reports, desired_error);
        +	fann_destroy_train( data );
        +	fann_save(ann, "scaling.net");
        +	fann_destroy(ann);
        +	return 0;
        +}
        diff --git a/lib/ann/fann/examples/simple_test.c b/lib/ann/fann/examples/simple_test.c
        new file mode 100644
        index 0000000..f3f2e96
        --- /dev/null
        +++ b/lib/ann/fann/examples/simple_test.c
        @@ -0,0 +1,38 @@
        +/*
        +Fast Artificial Neural Network Library (fann)
        +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com)
        +
        +This library is free software; you can redistribute it and/or
        +modify it under the terms of the GNU Lesser General Public
        +License as published by the Free Software Foundation; either
        +version 2.1 of the License, or (at your option) any later version.
        +
        +This library is distributed in the hope that it will be useful,
        +but WITHOUT ANY WARRANTY; without even the implied warranty of
        +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
        +Lesser General Public License for more details.
        +
        +You should have received a copy of the GNU Lesser General Public
        +License along with this library; if not, write to the Free Software
        +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        +*/
        +
        +#include <stdio.h>
        +#include "floatfann.h"
        +
        +int main()
        +{
        +	fann_type *calc_out;
        +	fann_type input[2];
        +
        +	struct fann *ann = fann_create_from_file("xor_float.net");
        +
        +	input[0] = -1;
        +	input[1] = 1;
        +	calc_out = fann_run(ann, input);
        +
        +	printf("xor test (%f,%f) -> %f\n", input[0], input[1], calc_out[0]);
        +
        +	fann_destroy(ann);
        +	return 0;
        +}
        diff --git a/lib/ann/fann/examples/simple_train.c b/lib/ann/fann/examples/simple_train.c
        new file mode 100644
        index 0000000..0a36ab7
        --- /dev/null
        +++ b/lib/ann/fann/examples/simple_train.c
        @@ -0,0 +1,44 @@
        +/*
        +Fast Artificial Neural Network Library (fann)
        +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com)
        +
        +This library is free software; you can redistribute it and/or
        +modify it under the terms of the GNU Lesser General Public
        +License as published by the Free Software Foundation; either
        +version 2.1 of the License, or (at your option) any later version.
        +
        +This library is distributed in the hope that it will be useful,
        +but WITHOUT ANY WARRANTY; without even the implied warranty of
        +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
        +Lesser General Public License for more details.
        +
        +You should have received a copy of the GNU Lesser General Public
        +License along with this library; if not, write to the Free Software
        +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        +*/
        +
        +#include "fann.h"
        +
        +int main()
        +{
        +	const unsigned int num_input = 2;
        +	const unsigned int num_output = 1;
        +	const unsigned int num_layers = 3;
        +	const unsigned int num_neurons_hidden = 3;
        +	const float desired_error = (const float) 0.001;
        +	const unsigned int max_epochs = 500000;
        +	const unsigned int epochs_between_reports = 1000;
        +
        +	struct fann *ann = fann_create_standard(num_layers, num_input, num_neurons_hidden, num_output);
        +
        +	fann_set_activation_function_hidden(ann, FANN_SIGMOID_SYMMETRIC);
        +	fann_set_activation_function_output(ann, FANN_SIGMOID_SYMMETRIC);
        +
        +	fann_train_on_file(ann, "xor.data", max_epochs, epochs_between_reports, desired_error);
        +
        +	fann_save(ann, "xor_float.net");
        +
        +	fann_destroy(ann);
        +
        +	return 0;
        +}
        diff --git a/lib/ann/fann/examples/steepness_train.c b/lib/ann/fann/examples/steepness_train.c
        new file mode 100644
        index 0000000..3d06f27
        --- /dev/null
        +++ b/lib/ann/fann/examples/steepness_train.c
        @@ -0,0 +1,116 @@
        +/*
        +Fast Artificial Neural Network Library (fann)
        +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com)
        +
        +This library is free software; you can redistribute it and/or
        +modify it under the terms of the GNU Lesser General Public
        +License as published by the Free Software Foundation; either
        +version 2.1 of the License, or (at your option) any later version.
        +
        +This library is distributed in the hope that it will be useful,
        +but WITHOUT ANY WARRANTY; without even the implied warranty of
        +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
        +Lesser General Public License for more details.
        +
        +You should have received a copy of the GNU Lesser General Public
        +License along with this library; if not, write to the Free Software
        +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        +*/
        +
        +#include "fann.h"
        +#include <stdio.h>
        +
        +void train_on_steepness_file(struct fann *ann, char *filename,
        +							 unsigned int max_epochs, unsigned int epochs_between_reports,
        +							 float desired_error, float steepness_start,
        +							 float steepness_step, float steepness_end)
        +{
        +	float error;
        +	unsigned int i;
        +
        +	struct fann_train_data *data = fann_read_train_from_file(filename);
        +
        +	if(epochs_between_reports)
        +	{
        +		printf("Max epochs %8d. Desired error: %.10f\n", max_epochs, desired_error);
        +	}
        +
        +	fann_set_activation_steepness_hidden(ann, steepness_start);
        +	fann_set_activation_steepness_output(ann, steepness_start);
        +	for(i = 1; i <= max_epochs; i++)
        +	{
        +		/* train */
        +		error = fann_train_epoch(ann, data);
        +
        +		/* print current output */
        +		if(epochs_between_reports &&
        +		   (i % epochs_between_reports == 0 || i == max_epochs || i == 1 || error < desired_error))
        +		{
        +			printf("Epochs     %8d. Current error: %.10f\n", i, error);
        +		}
        +
        +		if(error < desired_error)
        +		{
        +			steepness_start += steepness_step;
        +			if(steepness_start <= steepness_end)
        +			{
        +				printf("Steepness: %f\n", steepness_start);
        +				fann_set_activation_steepness_hidden(ann, steepness_start);
        +				fann_set_activation_steepness_output(ann, steepness_start);
        +			}
        +			else
        +			{
        +				break;
        +			}
        +		}
        +	}
        +	fann_destroy_train(data);
        +}
        +
        +int main()
        +{
        +	const unsigned int num_input = 2;
        +	const unsigned int num_output = 1;
        +	const unsigned int num_layers = 3;
        +	const unsigned int num_neurons_hidden = 3;
        +	const float desired_error = (const float) 0.001;
        +	const unsigned int max_epochs = 500000;
        +	const unsigned int epochs_between_reports = 1000;
        +	unsigned int i;
        +	fann_type *calc_out;
        +
        +	struct fann_train_data *data;
        +
        +	struct fann *ann = fann_create_standard(num_layers,
        +								   num_input, num_neurons_hidden, num_output);
        +
        +	data = fann_read_train_from_file("xor.data");
        +
        +	fann_set_activation_function_hidden(ann, FANN_SIGMOID_SYMMETRIC);
        +	fann_set_activation_function_output(ann, FANN_SIGMOID_SYMMETRIC);
        +
        +	fann_set_training_algorithm(ann, FANN_TRAIN_QUICKPROP);
        +
        +	train_on_steepness_file(ann, "xor.data", max_epochs,
        +							epochs_between_reports, desired_error, (float) 1.0, (float) 0.1,
        +							(float) 20.0);
        +
        +	fann_set_activation_function_hidden(ann, FANN_THRESHOLD_SYMMETRIC);
        +	fann_set_activation_function_output(ann, FANN_THRESHOLD_SYMMETRIC);
        +
        +	for(i = 0; i != fann_length_train_data(data); i++)
        +	{
        +		calc_out = fann_run(ann, data->input[i]);
        +		printf("XOR test (%f, %f) -> %f, should be %f, difference=%f\n",
        +			   data->input[i][0], data->input[i][1], calc_out[0], data->output[i][0],
        +			   (float) fann_abs(calc_out[0] - data->output[i][0]));
        +	}
        +
        +
        +	fann_save(ann, "xor_float.net");
        +
        +	fann_destroy(ann);
        +	fann_destroy_train(data);
        +
        +	return 0;
        +}
        diff --git a/lib/ann/fann/examples/xor.data b/lib/ann/fann/examples/xor.data
        new file mode 100644
        index 0000000..e831fc6
        --- /dev/null
        +++ b/lib/ann/fann/examples/xor.data
        @@ -0,0 +1,9 @@
        +4 2 1
        +-1 -1
        +-1
        +-1 1
        +1
        +1 -1
        +1
        +1 1
        +-1
        diff --git a/lib/ann/fann/examples/xor_sample.cpp b/lib/ann/fann/examples/xor_sample.cpp
        new file mode 100644
        index 0000000..fce3edf
        --- /dev/null
        +++ b/lib/ann/fann/examples/xor_sample.cpp
        @@ -0,0 +1,152 @@
        +/*
        + *
        + *  Fast Artificial Neural Network (fann) C++ Wrapper Sample
        + *
        + *  C++ wrapper XOR sample with functionality similar to xor_train.c
        + *
        + *  Copyright (C) 2004-2006 created by freegoldbar (at) yahoo dot com
        + *
        + *  This wrapper is free software; you can redistribute it and/or
        + *  modify it under the terms of the GNU Lesser General Public
        + *  License as published by the Free Software Foundation; either
        + *  version 2.1 of the License, or (at your option) any later version.
        + *
        + *  This wrapper is distributed in the hope that it will be useful,
        + *  but WITHOUT ANY WARRANTY; without even the implied warranty of
        + *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
        + *  Lesser General Public License for more details.
        + *
        + *  You should have received a copy of the GNU Lesser General Public
        + *  License along with this library; if not, write to the Free Software
        + *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        + *
        + */
        +
        +#include "floatfann.h"
        +#include "fann_cpp.h"
        +
        +#include <ios>
        +#include <iostream>
        +#include <iomanip>
        +using std::cout;
        +using std::cerr;
        +using std::endl;
        +using std::setw;
        +using std::left;
        +using std::right;
        +using std::showpos;
        +using std::noshowpos;
        +
        +
        +// Callback function that simply prints the information to cout
        +int print_callback(FANN::neural_net &net, FANN::training_data &train,
        +    unsigned int max_epochs, unsigned int epochs_between_reports,
        +    float desired_error, unsigned int epochs, void *user_data)
        +{
        +    cout << "Epochs     " << setw(8) << epochs << ". "
        +         << "Current Error: " << left << net.get_MSE() << right << endl;
        +    return 0;
        +}
        +
        +// Test function that demonstrates usage of the fann C++ wrapper
        +void xor_test()
        +{
        +    cout << endl << "XOR test started." << endl;
        +
        +    const float learning_rate = 0.7f;
        +    const unsigned int num_layers = 3;
        +    const unsigned int num_input = 2;
        +    const unsigned int num_hidden = 3;
        +    const unsigned int num_output = 1;
        +    const float desired_error = 0.001f;
        +    const unsigned int max_iterations = 300000;
        +    const unsigned int iterations_between_reports = 1000;
        +
        +    cout << endl << "Creating network." << endl;
        +
        +    FANN::neural_net net;
        +    net.create_standard(num_layers, num_input, num_hidden, num_output);
        +
        +    net.set_learning_rate(learning_rate);
        +
        +    net.set_activation_steepness_hidden(1.0);
        +    net.set_activation_steepness_output(1.0);
        +    
        +    net.set_activation_function_hidden(FANN::SIGMOID_SYMMETRIC_STEPWISE);
        +    net.set_activation_function_output(FANN::SIGMOID_SYMMETRIC_STEPWISE);
        +
        +    // Set additional properties such as the training algorithm
        +    //net.set_training_algorithm(FANN::TRAIN_QUICKPROP);
        +
        +    // Output network type and parameters
        +    cout << endl << "Network Type                         :  ";
        +    switch (net.get_network_type())
        +    {
        +    case FANN::LAYER:
        +        cout << "LAYER" << endl;
        +        break;
        +    case FANN::SHORTCUT:
        +        cout << "SHORTCUT" << endl;
        +        break;
        +    default:
        +        cout << "UNKNOWN" << endl;
        +        break;
        +    }
        +    net.print_parameters();
        +
        +    cout << endl << "Training network." << endl;
        +
        +    FANN::training_data data;
        +    if (data.read_train_from_file("xor.data"))
        +    {
        +        // Initialize and train the network with the data
        +        net.init_weights(data);
        +
        +        cout << "Max Epochs " << setw(8) << max_iterations << ". "
        +            << "Desired Error: " << left << desired_error << right << endl;
        +        net.set_callback(print_callback, NULL);
        +        net.train_on_data(data, max_iterations,
        +            iterations_between_reports, desired_error);
        +
        +        cout << endl << "Testing network." << endl;
        +
        +        for (unsigned int i = 0; i < data.length_train_data(); ++i)
        +        {
        +            // Run the network on the test data
        +            fann_type *calc_out = net.run(data.get_input()[i]);
        +
        +            cout << "XOR test (" << showpos << data.get_input()[i][0] << ", " 
        +                 << data.get_input()[i][1] << ") -> " << *calc_out
        +                 << ", should be " << data.get_output()[i][0] << ", "
        +                 << "difference = " << noshowpos
        +                 << fann_abs(*calc_out - data.get_output()[i][0]) << endl;
        +        }
        +        
        +        cout << endl << "Saving network." << endl;
        +
        +        // Save the network in floating point and fixed point
        +        net.save("xor_float.net");
        +        unsigned int decimal_point = net.save_to_fixed("xor_fixed.net");
        +        data.save_train_to_fixed("xor_fixed.data", decimal_point);
        +
        +        cout << endl << "XOR test completed." << endl;
        +    }
        +}
        +
        +/* Startup function. Syncronizes C and C++ output, calls the test function
        +   and reports any exceptions */
        +int main(int argc, char **argv)
        +{
        +    try
        +    {
        +        std::ios::sync_with_stdio(); // Syncronize cout and printf output
        +        xor_test();
        +    }
        +    catch (...)
        +    {
        +        cerr << endl << "Abnormal exception." << endl;
        +    }
        +    return 0;
        +}
        +
        +/******************************************************************************/
        diff --git a/lib/ann/fann/examples/xor_test.c b/lib/ann/fann/examples/xor_test.c
        new file mode 100644
        index 0000000..15b8e58
        --- /dev/null
        +++ b/lib/ann/fann/examples/xor_test.c
        @@ -0,0 +1,84 @@
        +/*
        +Fast Artificial Neural Network Library (fann)
        +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com)
        +
        +This library is free software; you can redistribute it and/or
        +modify it under the terms of the GNU Lesser General Public
        +License as published by the Free Software Foundation; either
        +version 2.1 of the License, or (at your option) any later version.
        +
        +This library is distributed in the hope that it will be useful,
        +but WITHOUT ANY WARRANTY; without even the implied warranty of
        +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
        +Lesser General Public License for more details.
        +
        +You should have received a copy of the GNU Lesser General Public
        +License along with this library; if not, write to the Free Software
        +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        +*/
        +
        +#include <stdio.h>
        +
        +#include "fann.h"
        +
        +int main()
        +{
        +	fann_type *calc_out;
        +	unsigned int i;
        +	int ret = 0;
        +
        +	struct fann *ann;
        +	struct fann_train_data *data;
        +
        +	printf("Creating network.\n");
        +
        +#ifdef FIXEDFANN
        +	ann = fann_create_from_file("xor_fixed.net");
        +#else
        +	ann = fann_create_from_file("xor_float.net");
        +#endif
        +
        +	if(!ann)
        +	{
        +		printf("Error creating ann --- ABORTING.\n");
        +		return -1;
        +	}
        +
        +	fann_print_connections(ann);
        +	fann_print_parameters(ann);
        +
        +	printf("Testing network.\n");
        +
        +#ifdef FIXEDFANN
        +	data = fann_read_train_from_file("xor_fixed.data");
        +#else
        +	data = fann_read_train_from_file("xor.data");
        +#endif
        +
        +	for(i = 0; i < fann_length_train_data(data); i++)
        +	{
        +		fann_reset_MSE(ann);
        +		calc_out = fann_test(ann, data->input[i], data->output[i]);
        +#ifdef FIXEDFANN
        +		printf("XOR test (%d, %d) -> %d, should be %d, difference=%f\n",
        +			   data->input[i][0], data->input[i][1], calc_out[0], data->output[i][0],
        +			   (float) fann_abs(calc_out[0] - data->output[i][0]) / fann_get_multiplier(ann));
        +
        +		if((float) fann_abs(calc_out[0] - data->output[i][0]) / fann_get_multiplier(ann) > 0.2)
        +		{
        +			printf("Test failed\n");
        +			ret = -1;
        +		}
        +#else
        +		printf("XOR test (%f, %f) -> %f, should be %f, difference=%f\n",
        +			   data->input[i][0], data->input[i][1], calc_out[0], data->output[i][0],
        +			   (float) fann_abs(calc_out[0] - data->output[i][0]));
        +#endif
        +	}
        +
        +	printf("Cleaning up.\n");
        +	fann_destroy_train(data);
        +	fann_destroy(ann);
        +
        +	return ret;
        +}
        diff --git a/lib/ann/fann/examples/xor_train.c b/lib/ann/fann/examples/xor_train.c
        new file mode 100644
        index 0000000..571cb00
        --- /dev/null
        +++ b/lib/ann/fann/examples/xor_train.c
        @@ -0,0 +1,91 @@
        +/*
        +Fast Artificial Neural Network Library (fann)
        +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com)
        +
        +This library is free software; you can redistribute it and/or
        +modify it under the terms of the GNU Lesser General Public
        +License as published by the Free Software Foundation; either
        +version 2.1 of the License, or (at your option) any later version.
        +
        +This library is distributed in the hope that it will be useful,
        +but WITHOUT ANY WARRANTY; without even the implied warranty of
        +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
        +Lesser General Public License for more details.
        +
        +You should have received a copy of the GNU Lesser General Public
        +License along with this library; if not, write to the Free Software
        +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        +*/
        +
        +#include <stdio.h>
        +
        +#include "fann.h"
        +
        +int FANN_API test_callback(struct fann *ann, struct fann_train_data *train,
        +	unsigned int max_epochs, unsigned int epochs_between_reports, 
        +	float desired_error, unsigned int epochs)
        +{
        +	printf("Epochs     %8d. MSE: %.5f. Desired-MSE: %.5f\n", epochs, fann_get_MSE(ann), desired_error);
        +	return 0;
        +}
        +
        +int main()
        +{
        +	fann_type *calc_out;
        +	const unsigned int num_input = 2;
        +	const unsigned int num_output = 1;
        +	const unsigned int num_layers = 3;
        +	const unsigned int num_neurons_hidden = 3;
        +	const float desired_error = (const float) 0;
        +	const unsigned int max_epochs = 1000;
        +	const unsigned int epochs_between_reports = 10;
        +	struct fann *ann;
        +	struct fann_train_data *data;
        +
        +	unsigned int i = 0;
        +	unsigned int decimal_point;
        +
        +	printf("Creating network.\n");
        +	ann = fann_create_standard(num_layers, num_input, num_neurons_hidden, num_output);
        +
        +	data = fann_read_train_from_file("xor.data");
        +
        +	fann_set_activation_steepness_hidden(ann, 1);
        +	fann_set_activation_steepness_output(ann, 1);
        +
        +	fann_set_activation_function_hidden(ann, FANN_SIGMOID_SYMMETRIC);
        +	fann_set_activation_function_output(ann, FANN_SIGMOID_SYMMETRIC);
        +
        +	fann_set_train_stop_function(ann, FANN_STOPFUNC_BIT);
        +	fann_set_bit_fail_limit(ann, 0.01f);
        +
        +	fann_set_training_algorithm(ann, FANN_TRAIN_RPROP);
        +
        +	fann_init_weights(ann, data);
        +	
        +	printf("Training network.\n");
        +	fann_train_on_data(ann, data, max_epochs, epochs_between_reports, desired_error);
        +
        +	printf("Testing network. %f\n", fann_test_data(ann, data));
        +
        +	for(i = 0; i < fann_length_train_data(data); i++)
        +	{
        +		calc_out = fann_run(ann, data->input[i]);
        +		printf("XOR test (%f,%f) -> %f, should be %f, difference=%f\n",
        +			   data->input[i][0], data->input[i][1], calc_out[0], data->output[i][0],
        +			   fann_abs(calc_out[0] - data->output[i][0]));
        +	}
        +
        +	printf("Saving network.\n");
        +
        +	fann_save(ann, "xor_float.net");
        +
        +	decimal_point = fann_save_to_fixed(ann, "xor_fixed.net");
        +	fann_save_train_to_fixed(data, "xor_fixed.data", decimal_point);
        +
        +	printf("Cleaning up.\n");
        +	fann_destroy_train(data);
        +	fann_destroy(ann);
        +
        +	return 0;
        +}
        diff --git a/lib/ann/fann/ignore.bii b/lib/ann/fann/ignore.bii
        new file mode 100644
        index 0000000..6e92914
        --- /dev/null
        +++ b/lib/ann/fann/ignore.bii
        @@ -0,0 +1,4 @@
        +bin/*
        +VS2010/*
        +lib/*
        +cmake/*
        \ No newline at end of file
        diff --git a/lib/ann/fann/lib/googletest/CHANGES b/lib/ann/fann/lib/googletest/CHANGES
        new file mode 100644
        index 0000000..0552132
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/CHANGES
        @@ -0,0 +1,157 @@
        +Changes for 1.7.0:
        +
        +* New feature: death tests are supported on OpenBSD and in iOS
        +  simulator now.
        +* New feature: Google Test now implements a protocol to allow
        +  a test runner to detect that a test program has exited
        +  prematurely and report it as a failure (before it would be
        +  falsely reported as a success if the exit code is 0).
        +* New feature: Test::RecordProperty() can now be used outside of the
        +  lifespan of a test method, in which case it will be attributed to
        +  the current test case or the test program in the XML report.
        +* New feature (potentially breaking): --gtest_list_tests now prints
        +  the type parameters and value parameters for each test.
        +* Improvement: char pointers and char arrays are now escaped properly
        +  in failure messages.
        +* Improvement: failure summary in XML reports now includes file and
        +  line information.
        +* Improvement: the <testsuites> XML element now has a timestamp attribute.
        +* Improvement: When --gtest_filter is specified, XML report now doesn't
        +  contain information about tests that are filtered out.
        +* Fixed the bug where long --gtest_filter flag values are truncated in
        +  death tests.
        +* Potentially breaking change: RUN_ALL_TESTS() is now implemented as a
        +  function instead of a macro in order to work better with Clang.
        +* Compatibility fixes with C++ 11 and various platforms.
        +* Bug/warning fixes.
        +
        +Changes for 1.6.0:
        +
        +* New feature: ADD_FAILURE_AT() for reporting a test failure at the
        +  given source location -- useful for writing testing utilities.
        +* New feature: the universal value printer is moved from Google Mock
        +  to Google Test.
        +* New feature: type parameters and value parameters are reported in
        +  the XML report now.
        +* A gtest_disable_pthreads CMake option.
        +* Colored output works in GNU Screen sessions now.
        +* Parameters of value-parameterized tests are now printed in the
        +  textual output.
        +* Failures from ad hoc test assertions run before RUN_ALL_TESTS() are
        +  now correctly reported.
        +* Arguments of ASSERT_XY and EXPECT_XY no longer need to support << to
        +  ostream.
        +* More complete handling of exceptions.
        +* GTEST_ASSERT_XY can be used instead of ASSERT_XY in case the latter
        +  name is already used by another library.
        +* --gtest_catch_exceptions is now true by default, allowing a test
        +  program to continue after an exception is thrown.
        +* Value-parameterized test fixtures can now derive from Test and
        +  WithParamInterface<T> separately, easing conversion of legacy tests.
        +* Death test messages are clearly marked to make them more
        +  distinguishable from other messages.
        +* Compatibility fixes for Android, Google Native Client, MinGW, HP UX,
        +  PowerPC, Lucid autotools, libCStd, Sun C++, Borland C++ Builder (Code Gear),
        +  IBM XL C++ (Visual Age C++), and C++0x.
        +* Bug fixes and implementation clean-ups.
        +* Potentially incompatible changes: disables the harmful 'make install'
        +  command in autotools.
        +
        +Changes for 1.5.0:
        +
        + * New feature: assertions can be safely called in multiple threads
        +   where the pthreads library is available.
        + * New feature: predicates used inside EXPECT_TRUE() and friends
        +   can now generate custom failure messages.
        + * New feature: Google Test can now be compiled as a DLL.
        + * New feature: fused source files are included.
        + * New feature: prints help when encountering unrecognized Google Test flags.
        + * Experimental feature: CMake build script (requires CMake 2.6.4+).
        + * Experimental feature: the Pump script for meta programming.
        + * double values streamed to an assertion are printed with enough precision
        +   to differentiate any two different values.
        + * Google Test now works on Solaris and AIX.
        + * Build and test script improvements.
        + * Bug fixes and implementation clean-ups.
        +
        + Potentially breaking changes:
        +
        + * Stopped supporting VC++ 7.1 with exceptions disabled.
        + * Dropped support for 'make install'.
        +
        +Changes for 1.4.0:
        +
        + * New feature: the event listener API
        + * New feature: test shuffling
        + * New feature: the XML report format is closer to junitreport and can
        +   be parsed by Hudson now.
        + * New feature: when a test runs under Visual Studio, its failures are
        +   integrated in the IDE.
        + * New feature: /MD(d) versions of VC++ projects.
        + * New feature: elapsed time for the tests is printed by default.
        + * New feature: comes with a TR1 tuple implementation such that Boost
        +   is no longer needed for Combine().
        + * New feature: EXPECT_DEATH_IF_SUPPORTED macro and friends.
        + * New feature: the Xcode project can now produce static gtest
        +   libraries in addition to a framework.
        + * Compatibility fixes for Solaris, Cygwin, minGW, Windows Mobile,
        +   Symbian, gcc, and C++Builder.
        + * Bug fixes and implementation clean-ups.
        +
        +Changes for 1.3.0:
        +
        + * New feature: death tests on Windows, Cygwin, and Mac.
        + * New feature: ability to use Google Test assertions in other testing
        +   frameworks.
        + * New feature: ability to run disabled test via
        +   --gtest_also_run_disabled_tests.
        + * New feature: the --help flag for printing the usage.
        + * New feature: access to Google Test flag values in user code.
        + * New feature: a script that packs Google Test into one .h and one
        +   .cc file for easy deployment.
        + * New feature: support for distributing test functions to multiple
        +   machines (requires support from the test runner).
        + * Bug fixes and implementation clean-ups.
        +
        +Changes for 1.2.1:
        +
        + * Compatibility fixes for Linux IA-64 and IBM z/OS.
        + * Added support for using Boost and other TR1 implementations.
        + * Changes to the build scripts to support upcoming release of Google C++
        +   Mocking Framework.
        + * Added Makefile to the distribution package.
        + * Improved build instructions in README.
        +
        +Changes for 1.2.0:
        +
        + * New feature: value-parameterized tests.
        + * New feature: the ASSERT/EXPECT_(NON)FATAL_FAILURE(_ON_ALL_THREADS)
        +   macros.
        + * Changed the XML report format to match JUnit/Ant's.
        + * Added tests to the Xcode project.
        + * Added scons/SConscript for building with SCons.
        + * Added src/gtest-all.cc for building Google Test from a single file.
        + * Fixed compatibility with Solaris and z/OS.
        + * Enabled running Python tests on systems with python 2.3 installed,
        +   e.g. Mac OS X 10.4.
        + * Bug fixes.
        +
        +Changes for 1.1.0:
        +
        + * New feature: type-parameterized tests.
        + * New feature: exception assertions.
        + * New feature: printing elapsed time of tests.
        + * Improved the robustness of death tests.
        + * Added an Xcode project and samples.
        + * Adjusted the output format on Windows to be understandable by Visual Studio.
        + * Minor bug fixes.
        +
        +Changes for 1.0.1:
        +
        + * Added project files for Visual Studio 7.1.
        + * Fixed issues with compiling on Mac OS X.
        + * Fixed issues with compiling on Cygwin.
        +
        +Changes for 1.0.0:
        +
        + * Initial Open Source release of Google Test
        diff --git a/lib/ann/fann/lib/googletest/CMakeLists.txt b/lib/ann/fann/lib/googletest/CMakeLists.txt
        new file mode 100644
        index 0000000..961672a
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/CMakeLists.txt
        @@ -0,0 +1,270 @@
        +########################################################################
        +# CMake build script for Google Test.
        +#
        +# To run the tests for Google Test itself on Linux, use 'make test' or
        +# ctest.  You can select which tests to run using 'ctest -R regex'.
        +# For more options, run 'ctest --help'.
        +
        +# BUILD_SHARED_LIBS is a standard CMake variable, but we declare it here to
        +# make it prominent in the GUI.
        +option(BUILD_SHARED_LIBS "Build shared libraries (DLLs)." OFF)
        +
        +# When other libraries are using a shared version of runtime libraries,
        +# Google Test also has to use one.
        +option(
        +  gtest_force_shared_crt
        +  "Use shared (DLL) run-time lib even when Google Test is built as static lib."
        +  OFF)
        +
        +option(gtest_build_tests "Build all of gtest's own tests." OFF)
        +
        +option(gtest_build_samples "Build gtest's sample programs." OFF)
        +
        +option(gtest_disable_pthreads "Disable uses of pthreads in gtest." OFF)
        +
        +option(
        +  gtest_hide_internal_symbols
        +  "Build gtest with internal symbols hidden in shared libraries."
        +  OFF)
        +
        +# Defines pre_project_set_up_hermetic_build() and set_up_hermetic_build().
        +include(cmake/hermetic_build.cmake OPTIONAL)
        +
        +if (COMMAND pre_project_set_up_hermetic_build)
        +  pre_project_set_up_hermetic_build()
        +endif()
        +
        +########################################################################
        +#
        +# Project-wide settings
        +
        +# Name of the project.
        +#
        +# CMake files in this project can refer to the root source directory
        +# as ${gtest_SOURCE_DIR} and to the root binary directory as
        +# ${gtest_BINARY_DIR}.
        +# Language "C" is required for find_package(Threads).
        +project(gtest CXX C)
        +cmake_minimum_required(VERSION 2.6.2)
        +
        +if (COMMAND set_up_hermetic_build)
        +  set_up_hermetic_build()
        +endif()
        +
        +if (gtest_hide_internal_symbols)
        +  set(CMAKE_CXX_VISIBILITY_PRESET hidden)
        +  set(CMAKE_VISIBILITY_INLINES_HIDDEN 1)
        +endif()
        +
        +# Define helper functions and macros used by Google Test.
        +include(cmake/internal_utils.cmake)
        +
        +config_compiler_and_linker()  # Defined in internal_utils.cmake.
        +
        +# Where Google Test's .h files can be found.
        +include_directories(
        +  ${gtest_SOURCE_DIR}/include
        +  ${gtest_SOURCE_DIR})
        +
        +# Where Google Test's libraries can be found.
        +link_directories(${gtest_BINARY_DIR}/src)
        +
        +# Summary of tuple support for Microsoft Visual Studio:
        +# Compiler    version(MS)  version(cmake)  Support
        +# ----------  -----------  --------------  -----------------------------
        +# <= VS 2010  <= 10        <= 1600         Use Google Tests's own tuple.
        +# VS 2012     11           1700            std::tr1::tuple + _VARIADIC_MAX=10
        +# VS 2013     12           1800            std::tr1::tuple
        +if (MSVC AND MSVC_VERSION EQUAL 1700)
        +  add_definitions(/D _VARIADIC_MAX=10)
        +endif()
        +
        +########################################################################
        +#
        +# Defines the gtest & gtest_main libraries.  User tests should link
        +# with one of them.
        +
        +# Google Test libraries.  We build them using more strict warnings than what
        +# are used for other targets, to ensure that gtest can be compiled by a user
        +# aggressive about warnings.
        +cxx_library(gtest "${cxx_strict}" src/gtest-all.cc)
        +cxx_library(gtest_main "${cxx_strict}" src/gtest_main.cc)
        +target_link_libraries(gtest_main gtest)
        +
        +########################################################################
        +#
        +# Samples on how to link user tests with gtest or gtest_main.
        +#
        +# They are not built by default.  To build them, set the
        +# gtest_build_samples option to ON.  You can do it by running ccmake
        +# or specifying the -Dgtest_build_samples=ON flag when running cmake.
        +
        +if (gtest_build_samples)
        +  cxx_executable(sample1_unittest samples gtest_main samples/sample1.cc)
        +  cxx_executable(sample2_unittest samples gtest_main samples/sample2.cc)
        +  cxx_executable(sample3_unittest samples gtest_main)
        +  cxx_executable(sample4_unittest samples gtest_main samples/sample4.cc)
        +  cxx_executable(sample5_unittest samples gtest_main samples/sample1.cc)
        +  cxx_executable(sample6_unittest samples gtest_main)
        +  cxx_executable(sample7_unittest samples gtest_main)
        +  cxx_executable(sample8_unittest samples gtest_main)
        +  cxx_executable(sample9_unittest samples gtest)
        +  cxx_executable(sample10_unittest samples gtest)
        +endif()
        +
        +########################################################################
        +#
        +# Google Test's own tests.
        +#
        +# You can skip this section if you aren't interested in testing
        +# Google Test itself.
        +#
        +# The tests are not built by default.  To build them, set the
        +# gtest_build_tests option to ON.  You can do it by running ccmake
        +# or specifying the -Dgtest_build_tests=ON flag when running cmake.
        +
        +if (gtest_build_tests)
        +  # This must be set in the root directory for the tests to be run by
        +  # 'make test' or ctest.
        +  enable_testing()
        +
        +  ############################################################
        +  # C++ tests built with standard compiler flags.
        +
        +  cxx_test(gtest-death-test_test gtest_main)
        +  cxx_test(gtest_environment_test gtest)
        +  cxx_test(gtest-filepath_test gtest_main)
        +  cxx_test(gtest-linked_ptr_test gtest_main)
        +  cxx_test(gtest-listener_test gtest_main)
        +  cxx_test(gtest_main_unittest gtest_main)
        +  cxx_test(gtest-message_test gtest_main)
        +  cxx_test(gtest_no_test_unittest gtest)
        +  cxx_test(gtest-options_test gtest_main)
        +  cxx_test(gtest-param-test_test gtest
        +    test/gtest-param-test2_test.cc)
        +  cxx_test(gtest-port_test gtest_main)
        +  cxx_test(gtest_pred_impl_unittest gtest_main)
        +  cxx_test(gtest_premature_exit_test gtest
        +    test/gtest_premature_exit_test.cc)
        +  cxx_test(gtest-printers_test gtest_main)
        +  cxx_test(gtest_prod_test gtest_main
        +    test/production.cc)
        +  cxx_test(gtest_repeat_test gtest)
        +  cxx_test(gtest_sole_header_test gtest_main)
        +  cxx_test(gtest_stress_test gtest)
        +  cxx_test(gtest-test-part_test gtest_main)
        +  cxx_test(gtest_throw_on_failure_ex_test gtest)
        +  cxx_test(gtest-typed-test_test gtest_main
        +    test/gtest-typed-test2_test.cc)
        +  cxx_test(gtest_unittest gtest_main)
        +  cxx_test(gtest-unittest-api_test gtest)
        +
        +  ############################################################
        +  # C++ tests built with non-standard compiler flags.
        +
        +  # MSVC 7.1 does not support STL with exceptions disabled.
        +  if (NOT MSVC OR MSVC_VERSION GREATER 1310)
        +    cxx_library(gtest_no_exception "${cxx_no_exception}"
        +      src/gtest-all.cc)
        +    cxx_library(gtest_main_no_exception "${cxx_no_exception}"
        +      src/gtest-all.cc src/gtest_main.cc)
        +  endif()
        +  cxx_library(gtest_main_no_rtti "${cxx_no_rtti}"
        +    src/gtest-all.cc src/gtest_main.cc)
        +
        +  cxx_test_with_flags(gtest-death-test_ex_nocatch_test
        +    "${cxx_exception} -DGTEST_ENABLE_CATCH_EXCEPTIONS_=0"
        +    gtest test/gtest-death-test_ex_test.cc)
        +  cxx_test_with_flags(gtest-death-test_ex_catch_test
        +    "${cxx_exception} -DGTEST_ENABLE_CATCH_EXCEPTIONS_=1"
        +    gtest test/gtest-death-test_ex_test.cc)
        +
        +  cxx_test_with_flags(gtest_no_rtti_unittest "${cxx_no_rtti}"
        +    gtest_main_no_rtti test/gtest_unittest.cc)
        +
        +  cxx_shared_library(gtest_dll "${cxx_default}"
        +    src/gtest-all.cc src/gtest_main.cc)
        +
        +  cxx_executable_with_flags(gtest_dll_test_ "${cxx_default}"
        +    gtest_dll test/gtest_all_test.cc)
        +  set_target_properties(gtest_dll_test_
        +                        PROPERTIES
        +                        COMPILE_DEFINITIONS "GTEST_LINKED_AS_SHARED_LIBRARY=1")
        +
        +  if (NOT MSVC OR MSVC_VERSION LESS 1600)  # 1600 is Visual Studio 2010.
        +    # Visual Studio 2010, 2012, and 2013 define symbols in std::tr1 that
        +    # conflict with our own definitions. Therefore using our own tuple does not
        +    # work on those compilers.
        +    cxx_library(gtest_main_use_own_tuple "${cxx_use_own_tuple}"
        +      src/gtest-all.cc src/gtest_main.cc)
        +
        +    cxx_test_with_flags(gtest-tuple_test "${cxx_use_own_tuple}"
        +      gtest_main_use_own_tuple test/gtest-tuple_test.cc)
        +
        +    cxx_test_with_flags(gtest_use_own_tuple_test "${cxx_use_own_tuple}"
        +      gtest_main_use_own_tuple
        +      test/gtest-param-test_test.cc test/gtest-param-test2_test.cc)
        +  endif()
        +
        +  ############################################################
        +  # Python tests.
        +
        +  cxx_executable(gtest_break_on_failure_unittest_ test gtest)
        +  py_test(gtest_break_on_failure_unittest)
        +
        +  # Visual Studio .NET 2003 does not support STL with exceptions disabled.
        +  if (NOT MSVC OR MSVC_VERSION GREATER 1310)  # 1310 is Visual Studio .NET 2003
        +    cxx_executable_with_flags(
        +      gtest_catch_exceptions_no_ex_test_
        +      "${cxx_no_exception}"
        +      gtest_main_no_exception
        +      test/gtest_catch_exceptions_test_.cc)
        +  endif()
        +
        +  cxx_executable_with_flags(
        +    gtest_catch_exceptions_ex_test_
        +    "${cxx_exception}"
        +    gtest_main
        +    test/gtest_catch_exceptions_test_.cc)
        +  py_test(gtest_catch_exceptions_test)
        +
        +  cxx_executable(gtest_color_test_ test gtest)
        +  py_test(gtest_color_test)
        +
        +  cxx_executable(gtest_env_var_test_ test gtest)
        +  py_test(gtest_env_var_test)
        +
        +  cxx_executable(gtest_filter_unittest_ test gtest)
        +  py_test(gtest_filter_unittest)
        +
        +  cxx_executable(gtest_help_test_ test gtest_main)
        +  py_test(gtest_help_test)
        +
        +  cxx_executable(gtest_list_tests_unittest_ test gtest)
        +  py_test(gtest_list_tests_unittest)
        +
        +  cxx_executable(gtest_output_test_ test gtest)
        +  py_test(gtest_output_test)
        +
        +  cxx_executable(gtest_shuffle_test_ test gtest)
        +  py_test(gtest_shuffle_test)
        +
        +  # MSVC 7.1 does not support STL with exceptions disabled.
        +  if (NOT MSVC OR MSVC_VERSION GREATER 1310)
        +    cxx_executable(gtest_throw_on_failure_test_ test gtest_no_exception)
        +    set_target_properties(gtest_throw_on_failure_test_
        +      PROPERTIES
        +      COMPILE_FLAGS "${cxx_no_exception}")
        +    py_test(gtest_throw_on_failure_test)
        +  endif()
        +
        +  cxx_executable(gtest_uninitialized_test_ test gtest)
        +  py_test(gtest_uninitialized_test)
        +
        +  cxx_executable(gtest_xml_outfile1_test_ test gtest_main)
        +  cxx_executable(gtest_xml_outfile2_test_ test gtest_main)
        +  py_test(gtest_xml_outfiles_test)
        +
        +  cxx_executable(gtest_xml_output_unittest_ test gtest)
        +  py_test(gtest_xml_output_unittest)
        +endif()
        diff --git a/lib/ann/fann/lib/googletest/CONTRIBUTORS b/lib/ann/fann/lib/googletest/CONTRIBUTORS
        new file mode 100644
        index 0000000..feae2fc
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/CONTRIBUTORS
        @@ -0,0 +1,37 @@
        +# This file contains a list of people who've made non-trivial
        +# contribution to the Google C++ Testing Framework project.  People
        +# who commit code to the project are encouraged to add their names
        +# here.  Please keep the list sorted by first names.
        +
        +Ajay Joshi <jaj@google.com>
        +Balázs Dán <balazs.dan@gmail.com>
        +Bharat Mediratta <bharat@menalto.com>
        +Chandler Carruth <chandlerc@google.com>
        +Chris Prince <cprince@google.com>
        +Chris Taylor <taylorc@google.com>
        +Dan Egnor <egnor@google.com>
        +Eric Roman <eroman@chromium.org>
        +Hady Zalek <hady.zalek@gmail.com>
        +Jeffrey Yasskin <jyasskin@google.com>
        +Jói Sigurðsson <joi@google.com>
        +Keir Mierle <mierle@gmail.com>
        +Keith Ray <keith.ray@gmail.com>
        +Kenton Varda <kenton@google.com>
        +Manuel Klimek <klimek@google.com>
        +Markus Heule <markus.heule@gmail.com>
        +Mika Raento <mikie@iki.fi>
        +Miklós Fazekas <mfazekas@szemafor.com>
        +Pasi Valminen <pasi.valminen@gmail.com>
        +Patrick Hanna <phanna@google.com>
        +Patrick Riley <pfr@google.com>
        +Peter Kaminski <piotrk@google.com>
        +Preston Jackson <preston.a.jackson@gmail.com>
        +Rainer Klaffenboeck <rainer.klaffenboeck@dynatrace.com>
        +Russ Cox <rsc@google.com>
        +Russ Rufer <russ@pentad.com>
        +Sean Mcafee <eefacm@gmail.com>
        +Sigurður Ãsgeirsson <siggi@google.com>
        +Tracy Bialik <tracy@pentad.com>
        +Vadim Berman <vadimb@google.com>
        +Vlad Losev <vladl@google.com>
        +Zhanyong Wan <wan@google.com>
        diff --git a/lib/ann/fann/lib/googletest/LICENSE b/lib/ann/fann/lib/googletest/LICENSE
        new file mode 100644
        index 0000000..1941a11
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/LICENSE
        @@ -0,0 +1,28 @@
        +Copyright 2008, Google Inc.
        +All rights reserved.
        +
        +Redistribution and use in source and binary forms, with or without
        +modification, are permitted provided that the following conditions are
        +met:
        +
        +    * Redistributions of source code must retain the above copyright
        +notice, this list of conditions and the following disclaimer.
        +    * Redistributions in binary form must reproduce the above
        +copyright notice, this list of conditions and the following disclaimer
        +in the documentation and/or other materials provided with the
        +distribution.
        +    * Neither the name of Google Inc. nor the names of its
        +contributors may be used to endorse or promote products derived from
        +this software without specific prior written permission.
        +
        +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        diff --git a/lib/ann/fann/lib/googletest/Makefile.am b/lib/ann/fann/lib/googletest/Makefile.am
        new file mode 100644
        index 0000000..29797e4
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/Makefile.am
        @@ -0,0 +1,310 @@
        +# Automake file
        +
        +ACLOCAL_AMFLAGS = -I m4
        +
        +# Nonstandard package files for distribution
        +EXTRA_DIST = \
        +  CHANGES \
        +  CONTRIBUTORS \
        +  LICENSE \
        +  include/gtest/gtest-param-test.h.pump \
        +  include/gtest/internal/gtest-param-util-generated.h.pump \
        +  include/gtest/internal/gtest-tuple.h.pump \
        +  include/gtest/internal/gtest-type-util.h.pump \
        +  make/Makefile \
        +  scripts/fuse_gtest_files.py \
        +  scripts/gen_gtest_pred_impl.py \
        +  scripts/pump.py \
        +  scripts/test/Makefile
        +
        +# gtest source files that we don't compile directly.  They are
        +# #included by gtest-all.cc.
        +GTEST_SRC = \
        +  src/gtest-death-test.cc \
        +  src/gtest-filepath.cc \
        +  src/gtest-internal-inl.h \
        +  src/gtest-port.cc \
        +  src/gtest-printers.cc \
        +  src/gtest-test-part.cc \
        +  src/gtest-typed-test.cc \
        +  src/gtest.cc
        +
        +EXTRA_DIST += $(GTEST_SRC)
        +
        +# Sample files that we don't compile.
        +EXTRA_DIST += \
        +  samples/prime_tables.h \
        +  samples/sample2_unittest.cc \
        +  samples/sample3_unittest.cc \
        +  samples/sample4_unittest.cc \
        +  samples/sample5_unittest.cc \
        +  samples/sample6_unittest.cc \
        +  samples/sample7_unittest.cc \
        +  samples/sample8_unittest.cc \
        +  samples/sample9_unittest.cc
        +
        +# C++ test files that we don't compile directly.
        +EXTRA_DIST += \
        +  test/gtest-death-test_ex_test.cc \
        +  test/gtest-death-test_test.cc \
        +  test/gtest-filepath_test.cc \
        +  test/gtest-linked_ptr_test.cc \
        +  test/gtest-listener_test.cc \
        +  test/gtest-message_test.cc \
        +  test/gtest-options_test.cc \
        +  test/gtest-param-test2_test.cc \
        +  test/gtest-param-test2_test.cc \
        +  test/gtest-param-test_test.cc \
        +  test/gtest-param-test_test.cc \
        +  test/gtest-param-test_test.h \
        +  test/gtest-port_test.cc \
        +  test/gtest_premature_exit_test.cc \
        +  test/gtest-printers_test.cc \
        +  test/gtest-test-part_test.cc \
        +  test/gtest-tuple_test.cc \
        +  test/gtest-typed-test2_test.cc \
        +  test/gtest-typed-test_test.cc \
        +  test/gtest-typed-test_test.h \
        +  test/gtest-unittest-api_test.cc \
        +  test/gtest_break_on_failure_unittest_.cc \
        +  test/gtest_catch_exceptions_test_.cc \
        +  test/gtest_color_test_.cc \
        +  test/gtest_env_var_test_.cc \
        +  test/gtest_environment_test.cc \
        +  test/gtest_filter_unittest_.cc \
        +  test/gtest_help_test_.cc \
        +  test/gtest_list_tests_unittest_.cc \
        +  test/gtest_main_unittest.cc \
        +  test/gtest_no_test_unittest.cc \
        +  test/gtest_output_test_.cc \
        +  test/gtest_pred_impl_unittest.cc \
        +  test/gtest_prod_test.cc \
        +  test/gtest_repeat_test.cc \
        +  test/gtest_shuffle_test_.cc \
        +  test/gtest_sole_header_test.cc \
        +  test/gtest_stress_test.cc \
        +  test/gtest_throw_on_failure_ex_test.cc \
        +  test/gtest_throw_on_failure_test_.cc \
        +  test/gtest_uninitialized_test_.cc \
        +  test/gtest_unittest.cc \
        +  test/gtest_unittest.cc \
        +  test/gtest_xml_outfile1_test_.cc \
        +  test/gtest_xml_outfile2_test_.cc \
        +  test/gtest_xml_output_unittest_.cc \
        +  test/production.cc \
        +  test/production.h
        +
        +# Python tests that we don't run.
        +EXTRA_DIST += \
        +  test/gtest_break_on_failure_unittest.py \
        +  test/gtest_catch_exceptions_test.py \
        +  test/gtest_color_test.py \
        +  test/gtest_env_var_test.py \
        +  test/gtest_filter_unittest.py \
        +  test/gtest_help_test.py \
        +  test/gtest_list_tests_unittest.py \
        +  test/gtest_output_test.py \
        +  test/gtest_output_test_golden_lin.txt \
        +  test/gtest_shuffle_test.py \
        +  test/gtest_test_utils.py \
        +  test/gtest_throw_on_failure_test.py \
        +  test/gtest_uninitialized_test.py \
        +  test/gtest_xml_outfiles_test.py \
        +  test/gtest_xml_output_unittest.py \
        +  test/gtest_xml_test_utils.py
        +
        +# CMake script
        +EXTRA_DIST += \
        +  CMakeLists.txt \
        +  cmake/internal_utils.cmake
        +
        +# MSVC project files
        +EXTRA_DIST += \
        +  msvc/gtest-md.sln \
        +  msvc/gtest-md.vcproj \
        +  msvc/gtest.sln \
        +  msvc/gtest.vcproj \
        +  msvc/gtest_main-md.vcproj \
        +  msvc/gtest_main.vcproj \
        +  msvc/gtest_prod_test-md.vcproj \
        +  msvc/gtest_prod_test.vcproj \
        +  msvc/gtest_unittest-md.vcproj \
        +  msvc/gtest_unittest.vcproj
        +
        +# xcode project files
        +EXTRA_DIST += \
        +  xcode/Config/DebugProject.xcconfig \
        +  xcode/Config/FrameworkTarget.xcconfig \
        +  xcode/Config/General.xcconfig \
        +  xcode/Config/ReleaseProject.xcconfig \
        +  xcode/Config/StaticLibraryTarget.xcconfig \
        +  xcode/Config/TestTarget.xcconfig \
        +  xcode/Resources/Info.plist \
        +  xcode/Scripts/runtests.sh \
        +  xcode/Scripts/versiongenerate.py \
        +  xcode/gtest.xcodeproj/project.pbxproj
        +
        +# xcode sample files
        +EXTRA_DIST += \
        +  xcode/Samples/FrameworkSample/Info.plist \
        +  xcode/Samples/FrameworkSample/WidgetFramework.xcodeproj/project.pbxproj \
        +  xcode/Samples/FrameworkSample/runtests.sh \
        +  xcode/Samples/FrameworkSample/widget.cc \
        +  xcode/Samples/FrameworkSample/widget.h \
        +  xcode/Samples/FrameworkSample/widget_test.cc
        +
        +# C++Builder project files
        +EXTRA_DIST += \
        +  codegear/gtest.cbproj \
        +  codegear/gtest.groupproj \
        +  codegear/gtest_all.cc \
        +  codegear/gtest_link.cc \
        +  codegear/gtest_main.cbproj \
        +  codegear/gtest_unittest.cbproj
        +
        +# Distribute and install M4 macro
        +m4datadir = $(datadir)/aclocal
        +m4data_DATA = m4/gtest.m4
        +EXTRA_DIST += $(m4data_DATA)
        +
        +# We define the global AM_CPPFLAGS as everything we compile includes from these
        +# directories.
        +AM_CPPFLAGS = -I$(srcdir) -I$(srcdir)/include
        +
        +# Modifies compiler and linker flags for pthreads compatibility.
        +if HAVE_PTHREADS
        +  AM_CXXFLAGS = @PTHREAD_CFLAGS@ -DGTEST_HAS_PTHREAD=1
        +  AM_LIBS = @PTHREAD_LIBS@
        +else
        +  AM_CXXFLAGS = -DGTEST_HAS_PTHREAD=0
        +endif
        +
        +# Build rules for libraries.
        +lib_LTLIBRARIES = lib/libgtest.la lib/libgtest_main.la
        +
        +lib_libgtest_la_SOURCES = src/gtest-all.cc
        +
        +pkginclude_HEADERS = \
        +  include/gtest/gtest-death-test.h \
        +  include/gtest/gtest-message.h \
        +  include/gtest/gtest-param-test.h \
        +  include/gtest/gtest-printers.h \
        +  include/gtest/gtest-spi.h \
        +  include/gtest/gtest-test-part.h \
        +  include/gtest/gtest-typed-test.h \
        +  include/gtest/gtest.h \
        +  include/gtest/gtest_pred_impl.h \
        +  include/gtest/gtest_prod.h
        +
        +pkginclude_internaldir = $(pkgincludedir)/internal
        +pkginclude_internal_HEADERS = \
        +  include/gtest/internal/gtest-death-test-internal.h \
        +  include/gtest/internal/gtest-filepath.h \
        +  include/gtest/internal/gtest-internal.h \
        +  include/gtest/internal/gtest-linked_ptr.h \
        +  include/gtest/internal/gtest-param-util-generated.h \
        +  include/gtest/internal/gtest-param-util.h \
        +  include/gtest/internal/gtest-port.h \
        +  include/gtest/internal/gtest-port-arch.h \
        +  include/gtest/internal/gtest-string.h \
        +  include/gtest/internal/gtest-tuple.h \
        +  include/gtest/internal/gtest-type-util.h \
        +  include/gtest/internal/custom/gtest.h \
        +  include/gtest/internal/custom/gtest-port.h \
        +  include/gtest/internal/custom/gtest-printers.h
        +
        +lib_libgtest_main_la_SOURCES = src/gtest_main.cc
        +lib_libgtest_main_la_LIBADD = lib/libgtest.la
        +
        +# Bulid rules for samples and tests. Automake's naming for some of
        +# these variables isn't terribly obvious, so this is a brief
        +# reference:
        +#
        +# TESTS -- Programs run automatically by "make check"
        +# check_PROGRAMS -- Programs built by "make check" but not necessarily run
        +
        +noinst_LTLIBRARIES = samples/libsamples.la
        +
        +samples_libsamples_la_SOURCES = \
        +  samples/sample1.cc \
        +  samples/sample1.h \
        +  samples/sample2.cc \
        +  samples/sample2.h \
        +  samples/sample3-inl.h \
        +  samples/sample4.cc \
        +  samples/sample4.h
        +
        +TESTS=
        +TESTS_ENVIRONMENT = GTEST_SOURCE_DIR="$(srcdir)/test" \
        +                    GTEST_BUILD_DIR="$(top_builddir)/test"
        +check_PROGRAMS=
        +
        +# A simple sample on using gtest.
        +TESTS += samples/sample1_unittest
        +check_PROGRAMS += samples/sample1_unittest
        +samples_sample1_unittest_SOURCES = samples/sample1_unittest.cc
        +samples_sample1_unittest_LDADD = lib/libgtest_main.la \
        +                                 lib/libgtest.la \
        +                                 samples/libsamples.la
        +
        +# Another sample.  It also verifies that libgtest works.
        +TESTS += samples/sample10_unittest
        +check_PROGRAMS += samples/sample10_unittest
        +samples_sample10_unittest_SOURCES = samples/sample10_unittest.cc
        +samples_sample10_unittest_LDADD = lib/libgtest.la
        +
        +# This tests most constructs of gtest and verifies that libgtest_main
        +# and libgtest work.
        +TESTS += test/gtest_all_test
        +check_PROGRAMS += test/gtest_all_test
        +test_gtest_all_test_SOURCES = test/gtest_all_test.cc
        +test_gtest_all_test_LDADD = lib/libgtest_main.la \
        +                            lib/libgtest.la
        +
        +# Tests that fused gtest files compile and work.
        +FUSED_GTEST_SRC = \
        +  fused-src/gtest/gtest-all.cc \
        +  fused-src/gtest/gtest.h \
        +  fused-src/gtest/gtest_main.cc
        +
        +if HAVE_PYTHON
        +TESTS += test/fused_gtest_test
        +check_PROGRAMS += test/fused_gtest_test
        +test_fused_gtest_test_SOURCES = $(FUSED_GTEST_SRC) \
        +                                samples/sample1.cc samples/sample1_unittest.cc
        +test_fused_gtest_test_CPPFLAGS = -I"$(srcdir)/fused-src"
        +
        +# Build rules for putting fused Google Test files into the distribution
        +# package. The user can also create those files by manually running
        +# scripts/fuse_gtest_files.py.
        +$(test_fused_gtest_test_SOURCES): fused-gtest
        +
        +fused-gtest: $(pkginclude_HEADERS) $(pkginclude_internal_HEADERS) \
        +             $(GTEST_SRC) src/gtest-all.cc src/gtest_main.cc \
        +             scripts/fuse_gtest_files.py
        +	mkdir -p "$(srcdir)/fused-src"
        +	chmod -R u+w "$(srcdir)/fused-src"
        +	rm -f "$(srcdir)/fused-src/gtest/gtest-all.cc"
        +	rm -f "$(srcdir)/fused-src/gtest/gtest.h"
        +	"$(srcdir)/scripts/fuse_gtest_files.py" "$(srcdir)/fused-src"
        +	cp -f "$(srcdir)/src/gtest_main.cc" "$(srcdir)/fused-src/gtest/"
        +
        +maintainer-clean-local:
        +	rm -rf "$(srcdir)/fused-src"
        +endif
        +
        +# Death tests may produce core dumps in the build directory. In case
        +# this happens, clean them to keep distcleancheck happy.
        +CLEANFILES = core
        +
        +# Disables 'make install' as installing a compiled version of Google
        +# Test can lead to undefined behavior due to violation of the
        +# One-Definition Rule.
        +
        +install-exec-local:
        +	echo "'make install' is dangerous and not supported. Instead, see README for how to integrate Google Test into your build system."
        +	false
        +
        +install-data-local:
        +	echo "'make install' is dangerous and not supported. Instead, see README for how to integrate Google Test into your build system."
        +	false
        diff --git a/lib/ann/fann/lib/googletest/README.md b/lib/ann/fann/lib/googletest/README.md
        new file mode 100644
        index 0000000..e0ea1b0
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/README.md
        @@ -0,0 +1,280 @@
        +
        +### Generic Build Instructions ###
        +
        +#### Setup ####
        +
        +To build Google Test and your tests that use it, you need to tell your
        +build system where to find its headers and source files.  The exact
        +way to do it depends on which build system you use, and is usually
        +straightforward.
        +
        +#### Build ####
        +
        +Suppose you put Google Test in directory `${GTEST_DIR}`.  To build it,
        +create a library build target (or a project as called by Visual Studio
        +and Xcode) to compile
        +
        +    ${GTEST_DIR}/src/gtest-all.cc
        +
        +with `${GTEST_DIR}/include` in the system header search path and `${GTEST_DIR}`
        +in the normal header search path.  Assuming a Linux-like system and gcc,
        +something like the following will do:
        +
        +    g++ -isystem ${GTEST_DIR}/include -I${GTEST_DIR} \
        +        -pthread -c ${GTEST_DIR}/src/gtest-all.cc
        +    ar -rv libgtest.a gtest-all.o
        +
        +(We need `-pthread` as Google Test uses threads.)
        +
        +Next, you should compile your test source file with
        +`${GTEST_DIR}/include` in the system header search path, and link it
        +with gtest and any other necessary libraries:
        +
        +    g++ -isystem ${GTEST_DIR}/include -pthread path/to/your_test.cc libgtest.a \
        +        -o your_test
        +
        +As an example, the make/ directory contains a Makefile that you can
        +use to build Google Test on systems where GNU make is available
        +(e.g. Linux, Mac OS X, and Cygwin).  It doesn't try to build Google
        +Test's own tests.  Instead, it just builds the Google Test library and
        +a sample test.  You can use it as a starting point for your own build
        +script.
        +
        +If the default settings are correct for your environment, the
        +following commands should succeed:
        +
        +    cd ${GTEST_DIR}/make
        +    make
        +    ./sample1_unittest
        +
        +If you see errors, try to tweak the contents of `make/Makefile` to make
        +them go away.  There are instructions in `make/Makefile` on how to do
        +it.
        +
        +### Using CMake ###
        +
        +Google Test comes with a CMake build script (
        +[CMakeLists.txt](CMakeLists.txt)) that can be used on a wide range of platforms ("C" stands for
        +cross-platform.). If you don't have CMake installed already, you can
        +download it for free from <http://www.cmake.org/>.
        +
        +CMake works by generating native makefiles or build projects that can
        +be used in the compiler environment of your choice.  The typical
        +workflow starts with:
        +
        +    mkdir mybuild       # Create a directory to hold the build output.
        +    cd mybuild
        +    cmake ${GTEST_DIR}  # Generate native build scripts.
        +
        +If you want to build Google Test's samples, you should replace the
        +last command with
        +
        +    cmake -Dgtest_build_samples=ON ${GTEST_DIR}
        +
        +If you are on a \*nix system, you should now see a Makefile in the
        +current directory.  Just type 'make' to build gtest.
        +
        +If you use Windows and have Visual Studio installed, a `gtest.sln` file
        +and several `.vcproj` files will be created.  You can then build them
        +using Visual Studio.
        +
        +On Mac OS X with Xcode installed, a `.xcodeproj` file will be generated.
        +
        +### Legacy Build Scripts ###
        +
        +Before settling on CMake, we have been providing hand-maintained build
        +projects/scripts for Visual Studio, Xcode, and Autotools.  While we
        +continue to provide them for convenience, they are not actively
        +maintained any more.  We highly recommend that you follow the
        +instructions in the previous two sections to integrate Google Test
        +with your existing build system.
        +
        +If you still need to use the legacy build scripts, here's how:
        +
        +The msvc\ folder contains two solutions with Visual C++ projects.
        +Open the `gtest.sln` or `gtest-md.sln` file using Visual Studio, and you
        +are ready to build Google Test the same way you build any Visual
        +Studio project.  Files that have names ending with -md use DLL
        +versions of Microsoft runtime libraries (the /MD or the /MDd compiler
        +option).  Files without that suffix use static versions of the runtime
        +libraries (the /MT or the /MTd option).  Please note that one must use
        +the same option to compile both gtest and the test code.  If you use
        +Visual Studio 2005 or above, we recommend the -md version as /MD is
        +the default for new projects in these versions of Visual Studio.
        +
        +On Mac OS X, open the `gtest.xcodeproj` in the `xcode/` folder using
        +Xcode.  Build the "gtest" target.  The universal binary framework will
        +end up in your selected build directory (selected in the Xcode
        +"Preferences..." -> "Building" pane and defaults to xcode/build).
        +Alternatively, at the command line, enter:
        +
        +    xcodebuild
        +
        +This will build the "Release" configuration of gtest.framework in your
        +default build location.  See the "xcodebuild" man page for more
        +information about building different configurations and building in
        +different locations.
        +
        +If you wish to use the Google Test Xcode project with Xcode 4.x and
        +above, you need to either:
        +
        + * update the SDK configuration options in xcode/Config/General.xconfig.
        +   Comment options `SDKROOT`, `MACOS_DEPLOYMENT_TARGET`, and `GCC_VERSION`. If
        +   you choose this route you lose the ability to target earlier versions
        +   of MacOS X.
        + * Install an SDK for an earlier version. This doesn't appear to be
        +   supported by Apple, but has been reported to work
        +   (http://stackoverflow.com/questions/5378518).
        +
        +### Tweaking Google Test ###
        +
        +Google Test can be used in diverse environments.  The default
        +configuration may not work (or may not work well) out of the box in
        +some environments.  However, you can easily tweak Google Test by
        +defining control macros on the compiler command line.  Generally,
        +these macros are named like `GTEST_XYZ` and you define them to either 1
        +or 0 to enable or disable a certain feature.
        +
        +We list the most frequently used macros below.  For a complete list,
        +see file [include/gtest/internal/gtest-port.h](include/gtest/internal/gtest-port.h).
        +
        +### Choosing a TR1 Tuple Library ###
        +
        +Some Google Test features require the C++ Technical Report 1 (TR1)
        +tuple library, which is not yet available with all compilers.  The
        +good news is that Google Test implements a subset of TR1 tuple that's
        +enough for its own need, and will automatically use this when the
        +compiler doesn't provide TR1 tuple.
        +
        +Usually you don't need to care about which tuple library Google Test
        +uses.  However, if your project already uses TR1 tuple, you need to
        +tell Google Test to use the same TR1 tuple library the rest of your
        +project uses, or the two tuple implementations will clash.  To do
        +that, add
        +
        +    -DGTEST_USE_OWN_TR1_TUPLE=0
        +
        +to the compiler flags while compiling Google Test and your tests.  If
        +you want to force Google Test to use its own tuple library, just add
        +
        +    -DGTEST_USE_OWN_TR1_TUPLE=1
        +
        +to the compiler flags instead.
        +
        +If you don't want Google Test to use tuple at all, add
        +
        +    -DGTEST_HAS_TR1_TUPLE=0
        +
        +and all features using tuple will be disabled.
        +
        +### Multi-threaded Tests ###
        +
        +Google Test is thread-safe where the pthread library is available.
        +After `#include "gtest/gtest.h"`, you can check the `GTEST_IS_THREADSAFE`
        +macro to see whether this is the case (yes if the macro is `#defined` to
        +1, no if it's undefined.).
        +
        +If Google Test doesn't correctly detect whether pthread is available
        +in your environment, you can force it with
        +
        +    -DGTEST_HAS_PTHREAD=1
        +
        +or
        +
        +    -DGTEST_HAS_PTHREAD=0
        +
        +When Google Test uses pthread, you may need to add flags to your
        +compiler and/or linker to select the pthread library, or you'll get
        +link errors.  If you use the CMake script or the deprecated Autotools
        +script, this is taken care of for you.  If you use your own build
        +script, you'll need to read your compiler and linker's manual to
        +figure out what flags to add.
        +
        +### As a Shared Library (DLL) ###
        +
        +Google Test is compact, so most users can build and link it as a
        +static library for the simplicity.  You can choose to use Google Test
        +as a shared library (known as a DLL on Windows) if you prefer.
        +
        +To compile *gtest* as a shared library, add
        +
        +    -DGTEST_CREATE_SHARED_LIBRARY=1
        +
        +to the compiler flags.  You'll also need to tell the linker to produce
        +a shared library instead - consult your linker's manual for how to do
        +it.
        +
        +To compile your *tests* that use the gtest shared library, add
        +
        +    -DGTEST_LINKED_AS_SHARED_LIBRARY=1
        +
        +to the compiler flags.
        +
        +Note: while the above steps aren't technically necessary today when
        +using some compilers (e.g. GCC), they may become necessary in the
        +future, if we decide to improve the speed of loading the library (see
        +<http://gcc.gnu.org/wiki/Visibility> for details).  Therefore you are
        +recommended to always add the above flags when using Google Test as a
        +shared library.  Otherwise a future release of Google Test may break
        +your build script.
        +
        +### Avoiding Macro Name Clashes ###
        +
        +In C++, macros don't obey namespaces.  Therefore two libraries that
        +both define a macro of the same name will clash if you #include both
        +definitions.  In case a Google Test macro clashes with another
        +library, you can force Google Test to rename its macro to avoid the
        +conflict.
        +
        +Specifically, if both Google Test and some other code define macro
        +FOO, you can add
        +
        +    -DGTEST_DONT_DEFINE_FOO=1
        +
        +to the compiler flags to tell Google Test to change the macro's name
        +from `FOO` to `GTEST_FOO`.  Currently `FOO` can be `FAIL`, `SUCCEED`,
        +or `TEST`.  For example, with `-DGTEST_DONT_DEFINE_TEST=1`, you'll
        +need to write
        +
        +    GTEST_TEST(SomeTest, DoesThis) { ... }
        +
        +instead of
        +
        +    TEST(SomeTest, DoesThis) { ... }
        +
        +in order to define a test.
        +
        +## Developing Google Test ##
        +
        +This section discusses how to make your own changes to Google Test.
        +
        +### Testing Google Test Itself ###
        +
        +To make sure your changes work as intended and don't break existing
        +functionality, you'll want to compile and run Google Test's own tests.
        +For that you can use CMake:
        +
        +    mkdir mybuild
        +    cd mybuild
        +    cmake -Dgtest_build_tests=ON ${GTEST_DIR}
        +
        +Make sure you have Python installed, as some of Google Test's tests
        +are written in Python.  If the cmake command complains about not being
        +able to find Python (`Could NOT find PythonInterp (missing:
        +PYTHON_EXECUTABLE)`), try telling it explicitly where your Python
        +executable can be found:
        +
        +    cmake -DPYTHON_EXECUTABLE=path/to/python -Dgtest_build_tests=ON ${GTEST_DIR}
        +
        +Next, you can build Google Test and all of its own tests.  On \*nix,
        +this is usually done by 'make'.  To run the tests, do
        +
        +    make test
        +
        +All tests should pass.
        +
        +Normally you don't need to worry about regenerating the source files,
        +unless you need to modify them.  In that case, you should modify the
        +corresponding .pump files instead and run the pump.py Python script to
        +regenerate them.  You can find pump.py in the [scripts/](scripts/) directory.
        +Read the [Pump manual](docs/PumpManual.md) for how to use it.
        diff --git a/lib/ann/fann/lib/googletest/build-aux/.keep b/lib/ann/fann/lib/googletest/build-aux/.keep
        new file mode 100644
        index 0000000..e69de29
        diff --git a/lib/ann/fann/lib/googletest/cmake/internal_utils.cmake b/lib/ann/fann/lib/googletest/cmake/internal_utils.cmake
        new file mode 100644
        index 0000000..93e6dbb
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/cmake/internal_utils.cmake
        @@ -0,0 +1,242 @@
        +# Defines functions and macros useful for building Google Test and
        +# Google Mock.
        +#
        +# Note:
        +#
        +# - This file will be run twice when building Google Mock (once via
        +#   Google Test's CMakeLists.txt, and once via Google Mock's).
        +#   Therefore it shouldn't have any side effects other than defining
        +#   the functions and macros.
        +#
        +# - The functions/macros defined in this file may depend on Google
        +#   Test and Google Mock's option() definitions, and thus must be
        +#   called *after* the options have been defined.
        +
        +# Tweaks CMake's default compiler/linker settings to suit Google Test's needs.
        +#
        +# This must be a macro(), as inside a function string() can only
        +# update variables in the function scope.
        +macro(fix_default_compiler_settings_)
        +  if (MSVC)
        +    # For MSVC, CMake sets certain flags to defaults we want to override.
        +    # This replacement code is taken from sample in the CMake Wiki at
        +    # http://www.cmake.org/Wiki/CMake_FAQ#Dynamic_Replace.
        +    foreach (flag_var
        +             CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
        +             CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
        +      if (NOT BUILD_SHARED_LIBS AND NOT gtest_force_shared_crt)
        +        # When Google Test is built as a shared library, it should also use
        +        # shared runtime libraries.  Otherwise, it may end up with multiple
        +        # copies of runtime library data in different modules, resulting in
        +        # hard-to-find crashes. When it is built as a static library, it is
        +        # preferable to use CRT as static libraries, as we don't have to rely
        +        # on CRT DLLs being available. CMake always defaults to using shared
        +        # CRT libraries, so we override that default here.
        +        string(REPLACE "/MD" "-MT" ${flag_var} "${${flag_var}}")
        +      endif()
        +
        +      # We prefer more strict warning checking for building Google Test.
        +      # Replaces /W3 with /W4 in defaults.
        +      string(REPLACE "/W3" "/W4" ${flag_var} "${${flag_var}}")
        +    endforeach()
        +  endif()
        +endmacro()
        +
        +# Defines the compiler/linker flags used to build Google Test and
        +# Google Mock.  You can tweak these definitions to suit your need.  A
        +# variable's value is empty before it's explicitly assigned to.
        +macro(config_compiler_and_linker)
        +  if (NOT gtest_disable_pthreads)
        +    # Defines CMAKE_USE_PTHREADS_INIT and CMAKE_THREAD_LIBS_INIT.
        +    find_package(Threads)
        +  endif()
        +
        +  fix_default_compiler_settings_()
        +  if (MSVC)
        +    # Newlines inside flags variables break CMake's NMake generator.
        +    # TODO(vladl@google.com): Add -RTCs and -RTCu to debug builds.
        +    set(cxx_base_flags "-GS -W4 -WX -wd4251 -wd4275 -nologo -J -Zi")
        +    if (MSVC_VERSION LESS 1400)  # 1400 is Visual Studio 2005
        +      # Suppress spurious warnings MSVC 7.1 sometimes issues.
        +      # Forcing value to bool.
        +      set(cxx_base_flags "${cxx_base_flags} -wd4800")
        +      # Copy constructor and assignment operator could not be generated.
        +      set(cxx_base_flags "${cxx_base_flags} -wd4511 -wd4512")
        +      # Compatibility warnings not applicable to Google Test.
        +      # Resolved overload was found by argument-dependent lookup.
        +      set(cxx_base_flags "${cxx_base_flags} -wd4675")
        +    endif()
        +    if (MSVC_VERSION LESS 1500)  # 1500 is Visual Studio 2008
        +      # Conditional expression is constant.
        +      # When compiling with /W4, we get several instances of C4127
        +      # (Conditional expression is constant). In our code, we disable that
        +      # warning on a case-by-case basis. However, on Visual Studio 2005,
        +      # the warning fires on std::list. Therefore on that compiler and earlier,
        +      # we disable the warning project-wide.
        +      set(cxx_base_flags "${cxx_base_flags} -wd4127")
        +    endif()
        +    if (NOT (MSVC_VERSION LESS 1700))  # 1700 is Visual Studio 2012.
        +      # Suppress "unreachable code" warning on VS 2012 and later.
        +      # http://stackoverflow.com/questions/3232669 explains the issue.
        +      set(cxx_base_flags "${cxx_base_flags} -wd4702")
        +    endif()
        +
        +    set(cxx_base_flags "${cxx_base_flags} -D_UNICODE -DUNICODE -DWIN32 -D_WIN32")
        +    set(cxx_base_flags "${cxx_base_flags} -DSTRICT -DWIN32_LEAN_AND_MEAN")
        +    set(cxx_exception_flags "-EHsc -D_HAS_EXCEPTIONS=1")
        +    set(cxx_no_exception_flags "-D_HAS_EXCEPTIONS=0")
        +    set(cxx_no_rtti_flags "-GR-")
        +  elseif (CMAKE_COMPILER_IS_GNUCXX)
        +    set(cxx_base_flags "-Wall -Wshadow")
        +    set(cxx_exception_flags "-fexceptions")
        +    set(cxx_no_exception_flags "-fno-exceptions")
        +    # Until version 4.3.2, GCC doesn't define a macro to indicate
        +    # whether RTTI is enabled.  Therefore we define GTEST_HAS_RTTI
        +    # explicitly.
        +    set(cxx_no_rtti_flags "-fno-rtti -DGTEST_HAS_RTTI=0")
        +    set(cxx_strict_flags
        +      "-Wextra -Wno-unused-parameter -Wno-missing-field-initializers")
        +  elseif (CMAKE_CXX_COMPILER_ID STREQUAL "SunPro")
        +    set(cxx_exception_flags "-features=except")
        +    # Sun Pro doesn't provide macros to indicate whether exceptions and
        +    # RTTI are enabled, so we define GTEST_HAS_* explicitly.
        +    set(cxx_no_exception_flags "-features=no%except -DGTEST_HAS_EXCEPTIONS=0")
        +    set(cxx_no_rtti_flags "-features=no%rtti -DGTEST_HAS_RTTI=0")
        +  elseif (CMAKE_CXX_COMPILER_ID STREQUAL "VisualAge" OR
        +      CMAKE_CXX_COMPILER_ID STREQUAL "XL")
        +    # CMake 2.8 changes Visual Age's compiler ID to "XL".
        +    set(cxx_exception_flags "-qeh")
        +    set(cxx_no_exception_flags "-qnoeh")
        +    # Until version 9.0, Visual Age doesn't define a macro to indicate
        +    # whether RTTI is enabled.  Therefore we define GTEST_HAS_RTTI
        +    # explicitly.
        +    set(cxx_no_rtti_flags "-qnortti -DGTEST_HAS_RTTI=0")
        +  elseif (CMAKE_CXX_COMPILER_ID STREQUAL "HP")
        +    set(cxx_base_flags "-AA -mt")
        +    set(cxx_exception_flags "-DGTEST_HAS_EXCEPTIONS=1")
        +    set(cxx_no_exception_flags "+noeh -DGTEST_HAS_EXCEPTIONS=0")
        +    # RTTI can not be disabled in HP aCC compiler.
        +    set(cxx_no_rtti_flags "")
        +  endif()
        +
        +  if (CMAKE_USE_PTHREADS_INIT)  # The pthreads library is available and allowed.
        +    set(cxx_base_flags "${cxx_base_flags} -DGTEST_HAS_PTHREAD=1")
        +  else()
        +    set(cxx_base_flags "${cxx_base_flags} -DGTEST_HAS_PTHREAD=0")
        +  endif()
        +
        +  # For building gtest's own tests and samples.
        +  set(cxx_exception "${CMAKE_CXX_FLAGS} ${cxx_base_flags} ${cxx_exception_flags}")
        +  set(cxx_no_exception
        +    "${CMAKE_CXX_FLAGS} ${cxx_base_flags} ${cxx_no_exception_flags}")
        +  set(cxx_default "${cxx_exception}")
        +  set(cxx_no_rtti "${cxx_default} ${cxx_no_rtti_flags}")
        +  set(cxx_use_own_tuple "${cxx_default} -DGTEST_USE_OWN_TR1_TUPLE=1")
        +
        +  # For building the gtest libraries.
        +  set(cxx_strict "${cxx_default} ${cxx_strict_flags}")
        +endmacro()
        +
        +# Defines the gtest & gtest_main libraries.  User tests should link
        +# with one of them.
        +function(cxx_library_with_type name type cxx_flags)
        +  # type can be either STATIC or SHARED to denote a static or shared library.
        +  # ARGN refers to additional arguments after 'cxx_flags'.
        +  add_library(${name} ${type} ${ARGN})
        +  set_target_properties(${name}
        +    PROPERTIES
        +    COMPILE_FLAGS "${cxx_flags}")
        +  if (BUILD_SHARED_LIBS OR type STREQUAL "SHARED")
        +    set_target_properties(${name}
        +      PROPERTIES
        +      COMPILE_DEFINITIONS "GTEST_CREATE_SHARED_LIBRARY=1")
        +  endif()
        +  if (CMAKE_USE_PTHREADS_INIT)
        +    target_link_libraries(${name} ${CMAKE_THREAD_LIBS_INIT})
        +  endif()
        +endfunction()
        +
        +########################################################################
        +#
        +# Helper functions for creating build targets.
        +
        +function(cxx_shared_library name cxx_flags)
        +  cxx_library_with_type(${name} SHARED "${cxx_flags}" ${ARGN})
        +endfunction()
        +
        +function(cxx_library name cxx_flags)
        +  cxx_library_with_type(${name} "" "${cxx_flags}" ${ARGN})
        +endfunction()
        +
        +# cxx_executable_with_flags(name cxx_flags libs srcs...)
        +#
        +# creates a named C++ executable that depends on the given libraries and
        +# is built from the given source files with the given compiler flags.
        +function(cxx_executable_with_flags name cxx_flags libs)
        +  add_executable(${name} ${ARGN})
        +  if (cxx_flags)
        +    set_target_properties(${name}
        +      PROPERTIES
        +      COMPILE_FLAGS "${cxx_flags}")
        +  endif()
        +  if (BUILD_SHARED_LIBS)
        +    set_target_properties(${name}
        +      PROPERTIES
        +      COMPILE_DEFINITIONS "GTEST_LINKED_AS_SHARED_LIBRARY=1")
        +  endif()
        +  # To support mixing linking in static and dynamic libraries, link each
        +  # library in with an extra call to target_link_libraries.
        +  foreach (lib "${libs}")
        +    target_link_libraries(${name} ${lib})
        +  endforeach()
        +endfunction()
        +
        +# cxx_executable(name dir lib srcs...)
        +#
        +# creates a named target that depends on the given libs and is built
        +# from the given source files.  dir/name.cc is implicitly included in
        +# the source file list.
        +function(cxx_executable name dir libs)
        +  cxx_executable_with_flags(
        +    ${name} "${cxx_default}" "${libs}" "${dir}/${name}.cc" ${ARGN})
        +endfunction()
        +
        +# Sets PYTHONINTERP_FOUND and PYTHON_EXECUTABLE.
        +find_package(PythonInterp)
        +
        +# cxx_test_with_flags(name cxx_flags libs srcs...)
        +#
        +# creates a named C++ test that depends on the given libs and is built
        +# from the given source files with the given compiler flags.
        +function(cxx_test_with_flags name cxx_flags libs)
        +  cxx_executable_with_flags(${name} "${cxx_flags}" "${libs}" ${ARGN})
        +  add_test(${name} ${name})
        +endfunction()
        +
        +# cxx_test(name libs srcs...)
        +#
        +# creates a named test target that depends on the given libs and is
        +# built from the given source files.  Unlike cxx_test_with_flags,
        +# test/name.cc is already implicitly included in the source file list.
        +function(cxx_test name libs)
        +  cxx_test_with_flags("${name}" "${cxx_default}" "${libs}"
        +    "test/${name}.cc" ${ARGN})
        +endfunction()
        +
        +# py_test(name)
        +#
        +# creates a Python test with the given name whose main module is in
        +# test/name.py.  It does nothing if Python is not installed.
        +function(py_test name)
        +  # We are not supporting Python tests on Linux yet as they consider
        +  # all Linux environments to be google3 and try to use google3 features.
        +  if (PYTHONINTERP_FOUND)
        +    # ${CMAKE_BINARY_DIR} is known at configuration time, so we can
        +    # directly bind it from cmake. ${CTEST_CONFIGURATION_TYPE} is known
        +    # only at ctest runtime (by calling ctest -c <Configuration>), so
        +    # we have to escape $ to delay variable substitution here.
        +    add_test(${name}
        +      ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test/${name}.py
        +          --build_dir=${CMAKE_CURRENT_BINARY_DIR}/\${CTEST_CONFIGURATION_TYPE})
        +  endif()
        +endfunction()
        diff --git a/lib/ann/fann/lib/googletest/codegear/gtest.cbproj b/lib/ann/fann/lib/googletest/codegear/gtest.cbproj
        new file mode 100644
        index 0000000..95c3054
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/codegear/gtest.cbproj
        @@ -0,0 +1,138 @@
        +<?xml version="1.0" encoding="utf-8"?>
        +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
        +  <PropertyGroup>
        +    <ProjectGuid>{bca37a72-5b07-46cf-b44e-89f8e06451a2}</ProjectGuid>
        +    <Config Condition="'$(Config)'==''">Release</Config>
        +  </PropertyGroup>
        +  <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
        +    <Base>true</Base>
        +  </PropertyGroup>
        +  <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_1)'!=''">
        +    <Base>true</Base>
        +    <Cfg_1>true</Cfg_1>
        +    <CfgParent>Base</CfgParent>
        +  </PropertyGroup>
        +  <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_2)'!=''">
        +    <Base>true</Base>
        +    <Cfg_2>true</Cfg_2>
        +    <CfgParent>Base</CfgParent>
        +  </PropertyGroup>
        +  <PropertyGroup Condition="'$(Base)'!=''">
        +    <BCC_OptimizeForSpeed>true</BCC_OptimizeForSpeed>
        +    <OutputExt>lib</OutputExt>
        +    <DCC_CBuilderOutput>JPHNE</DCC_CBuilderOutput>
        +    <Defines>NO_STRICT</Defines>
        +    <DynamicRTL>true</DynamicRTL>
        +    <UsePackages>true</UsePackages>
        +    <ProjectType>CppStaticLibrary</ProjectType>
        +    <BCC_CPPCompileAlways>true</BCC_CPPCompileAlways>
        +    <PackageImports>rtl.bpi;vcl.bpi;bcbie.bpi;vclx.bpi;vclactnband.bpi;xmlrtl.bpi;bcbsmp.bpi;dbrtl.bpi;vcldb.bpi;bdertl.bpi;vcldbx.bpi;dsnap.bpi;dsnapcon.bpi;vclib.bpi;ibxpress.bpi;adortl.bpi;dbxcds.bpi;dbexpress.bpi;DbxCommonDriver.bpi;websnap.bpi;vclie.bpi;webdsnap.bpi;inet.bpi;inetdbbde.bpi;inetdbxpress.bpi;soaprtl.bpi;Rave75VCL.bpi;teeUI.bpi;tee.bpi;teedb.bpi;IndyCore.bpi;IndySystem.bpi;IndyProtocols.bpi;IntrawebDB_90_100.bpi;Intraweb_90_100.bpi;dclZipForged11.bpi;vclZipForged11.bpi;GR32_BDS2006.bpi;GR32_DSGN_BDS2006.bpi;Jcl.bpi;JclVcl.bpi;JvCoreD11R.bpi;JvSystemD11R.bpi;JvStdCtrlsD11R.bpi;JvAppFrmD11R.bpi;JvBandsD11R.bpi;JvDBD11R.bpi;JvDlgsD11R.bpi;JvBDED11R.bpi;JvCmpD11R.bpi;JvCryptD11R.bpi;JvCtrlsD11R.bpi;JvCustomD11R.bpi;JvDockingD11R.bpi;JvDotNetCtrlsD11R.bpi;JvEDID11R.bpi;JvGlobusD11R.bpi;JvHMID11R.bpi;JvInterpreterD11R.bpi;JvJansD11R.bpi;JvManagedThreadsD11R.bpi;JvMMD11R.bpi;JvNetD11R.bpi;JvPageCompsD11R.bpi;JvPluginD11R.bpi;JvPrintPreviewD11R.bpi;JvRuntimeDesignD11R.bpi;JvTimeFrameworkD11R.bpi;JvValidatorsD11R.bpi;JvWizardD11R.bpi;JvXPCtrlsD11R.bpi;VclSmp.bpi;CExceptionExpert11.bpi</PackageImports>
        +    <BCC_wpar>false</BCC_wpar>
        +    <IncludePath>$(BDS)\include;$(BDS)\include\dinkumware;$(BDS)\include\vcl;..\src;..\include;..</IncludePath>
        +    <AllPackageLibs>rtl.lib;vcl.lib</AllPackageLibs>
        +    <TLIB_PageSize>32</TLIB_PageSize>
        +    <ILINK_LibraryPath>$(BDS)\lib;$(BDS)\lib\obj;$(BDS)\lib\psdk</ILINK_LibraryPath>
        +  </PropertyGroup>
        +  <PropertyGroup Condition="'$(Cfg_1)'!=''">
        +    <BCC_OptimizeForSpeed>false</BCC_OptimizeForSpeed>
        +    <DCC_Optimize>false</DCC_Optimize>
        +    <DCC_DebugInfoInExe>true</DCC_DebugInfoInExe>
        +    <Defines>_DEBUG;$(Defines)</Defines>
        +    <ILINK_FullDebugInfo>true</ILINK_FullDebugInfo>
        +    <BCC_InlineFunctionExpansion>false</BCC_InlineFunctionExpansion>
        +    <ILINK_DisableIncrementalLinking>true</ILINK_DisableIncrementalLinking>
        +    <BCC_UseRegisterVariables>None</BCC_UseRegisterVariables>
        +    <DCC_Define>DEBUG</DCC_Define>
        +    <BCC_DebugLineNumbers>true</BCC_DebugLineNumbers>
        +    <IntermediateOutputDir>Debug</IntermediateOutputDir>
        +    <TASM_DisplaySourceLines>true</TASM_DisplaySourceLines>
        +    <BCC_StackFrames>true</BCC_StackFrames>
        +    <BCC_DisableOptimizations>true</BCC_DisableOptimizations>
        +    <ILINK_LibraryPath>$(BDS)\lib\debug;$(ILINK_LibraryPath)</ILINK_LibraryPath>
        +    <TASM_Debugging>Full</TASM_Debugging>
        +    <BCC_SourceDebuggingOn>true</BCC_SourceDebuggingOn>
        +  </PropertyGroup>
        +  <PropertyGroup Condition="'$(Cfg_2)'!=''">
        +    <Defines>NDEBUG;$(Defines)</Defines>
        +    <IntermediateOutputDir>Release</IntermediateOutputDir>
        +    <ILINK_LibraryPath>$(BDS)\lib\release;$(ILINK_LibraryPath)</ILINK_LibraryPath>
        +    <TASM_Debugging>None</TASM_Debugging>
        +  </PropertyGroup>
        +  <ProjectExtensions>
        +    <Borland.Personality>CPlusPlusBuilder.Personality</Borland.Personality>
        +    <Borland.ProjectType>CppStaticLibrary</Borland.ProjectType>
        +    <BorlandProject>
        +<BorlandProject><CPlusPlusBuilder.Personality><VersionInfo><VersionInfo Name="IncludeVerInfo">False</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">1</VersionInfo><VersionInfo Name="MinorVer">0</VersionInfo><VersionInfo Name="Release">0</VersionInfo><VersionInfo Name="Build">0</VersionInfo><VersionInfo Name="Debug">False</VersionInfo><VersionInfo Name="PreRelease">False</VersionInfo><VersionInfo Name="Special">False</VersionInfo><VersionInfo Name="Private">False</VersionInfo><VersionInfo Name="DLL">False</VersionInfo><VersionInfo Name="Locale">1033</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName"></VersionInfoKeys><VersionInfoKeys Name="FileDescription"></VersionInfoKeys><VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="InternalName"></VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName"></VersionInfoKeys><VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys></VersionInfoKeys><Debugging><Debugging Name="DebugSourceDirs"></Debugging></Debugging><Parameters><Parameters Name="RunParams"></Parameters><Parameters Name="Launcher"></Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="DebugCWD"></Parameters><Parameters Name="HostApplication"></Parameters><Parameters Name="RemoteHost"></Parameters><Parameters Name="RemotePath"></Parameters><Parameters Name="RemoteParams"></Parameters><Parameters Name="RemoteLauncher"></Parameters><Parameters Name="UseRemoteLauncher">False</Parameters><Parameters Name="RemoteCWD"></Parameters><Parameters Name="RemoteDebug">False</Parameters><Parameters Name="Debug Symbols Search Path"></Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><Excluded_Packages>
        +      
        +      
        +      <Excluded_Packages Name="$(BDS)\bin\bcboffice2k100.bpl">CodeGear C++Builder Office 2000 Servers Package</Excluded_Packages>
        +      <Excluded_Packages Name="$(BDS)\bin\bcbofficexp100.bpl">CodeGear C++Builder Office XP Servers Package</Excluded_Packages>
        +    </Excluded_Packages><Linker><Linker Name="LibPrefix"></Linker><Linker Name="LibSuffix"></Linker><Linker Name="LibVersion"></Linker></Linker><ProjectProperties><ProjectProperties Name="AutoShowDeps">False</ProjectProperties><ProjectProperties Name="ManagePaths">True</ProjectProperties><ProjectProperties Name="VerifyPackages">True</ProjectProperties></ProjectProperties><HistoryLists_hlIncludePath><HistoryLists_hlIncludePath Name="Count">3</HistoryLists_hlIncludePath><HistoryLists_hlIncludePath Name="Item0">$(BDS)\include;$(BDS)\include\dinkumware;$(BDS)\include\vcl;..\src;..\include;..</HistoryLists_hlIncludePath><HistoryLists_hlIncludePath Name="Item1">$(BDS)\include;$(BDS)\include\dinkumware;$(BDS)\include\vcl;..\src;..\include;..</HistoryLists_hlIncludePath><HistoryLists_hlIncludePath Name="Item2">$(BDS)\include;$(BDS)\include\dinkumware;$(BDS)\include\vcl;..\src;..\src;..\include</HistoryLists_hlIncludePath></HistoryLists_hlIncludePath><HistoryLists_hlILINK_LibraryPath><HistoryLists_hlILINK_LibraryPath Name="Count">1</HistoryLists_hlILINK_LibraryPath><HistoryLists_hlILINK_LibraryPath Name="Item0">$(BDS)\lib;$(BDS)\lib\obj;$(BDS)\lib\psdk</HistoryLists_hlILINK_LibraryPath></HistoryLists_hlILINK_LibraryPath><HistoryLists_hlDefines><HistoryLists_hlDefines Name="Count">1</HistoryLists_hlDefines><HistoryLists_hlDefines Name="Item0">NO_STRICT</HistoryLists_hlDefines></HistoryLists_hlDefines><HistoryLists_hlTLIB_PageSize><HistoryLists_hlTLIB_PageSize Name="Count">1</HistoryLists_hlTLIB_PageSize><HistoryLists_hlTLIB_PageSize Name="Item0">32</HistoryLists_hlTLIB_PageSize><HistoryLists_hlTLIB_PageSize Name="Item1">16</HistoryLists_hlTLIB_PageSize></HistoryLists_hlTLIB_PageSize></CPlusPlusBuilder.Personality></BorlandProject></BorlandProject>
        +  </ProjectExtensions>
        +  <Import Project="$(MSBuildBinPath)\Borland.Cpp.Targets" />
        +  <ItemGroup>
        +    <None Include="..\include\gtest\gtest-death-test.h">
        +      <BuildOrder>3</BuildOrder>
        +    </None>
        +    <None Include="..\include\gtest\gtest-message.h">
        +      <BuildOrder>4</BuildOrder>
        +    </None>
        +    <None Include="..\include\gtest\gtest-param-test.h">
        +      <BuildOrder>5</BuildOrder>
        +    </None>
        +    <None Include="..\include\gtest\gtest-spi.h">
        +      <BuildOrder>6</BuildOrder>
        +    </None>
        +    <None Include="..\include\gtest\gtest-test-part.h">
        +      <BuildOrder>7</BuildOrder>
        +    </None>
        +    <None Include="..\include\gtest\gtest-typed-test.h">
        +      <BuildOrder>8</BuildOrder>
        +    </None>
        +    <None Include="..\include\gtest\gtest.h">
        +      <BuildOrder>0</BuildOrder>
        +    </None>
        +    <None Include="..\include\gtest\gtest_pred_impl.h">
        +      <BuildOrder>1</BuildOrder>
        +    </None>
        +    <None Include="..\include\gtest\gtest_prod.h">
        +      <BuildOrder>2</BuildOrder>
        +    </None>
        +    <None Include="..\include\gtest\internal\gtest-death-test-internal.h">
        +      <BuildOrder>9</BuildOrder>
        +    </None>
        +    <None Include="..\include\gtest\internal\gtest-filepath.h">
        +      <BuildOrder>10</BuildOrder>
        +    </None>
        +    <None Include="..\include\gtest\internal\gtest-internal.h">
        +      <BuildOrder>11</BuildOrder>
        +    </None>
        +    <None Include="..\include\gtest\internal\gtest-linked_ptr.h">
        +      <BuildOrder>12</BuildOrder>
        +    </None>
        +    <None Include="..\include\gtest\internal\gtest-param-util-generated.h">
        +      <BuildOrder>14</BuildOrder>
        +    </None>
        +    <None Include="..\include\gtest\internal\gtest-param-util.h">
        +      <BuildOrder>13</BuildOrder>
        +    </None>
        +    <None Include="..\include\gtest\internal\gtest-port.h">
        +      <BuildOrder>15</BuildOrder>
        +    </None>
        +    <None Include="..\include\gtest\internal\gtest-string.h">
        +      <BuildOrder>16</BuildOrder>
        +    </None>
        +    <None Include="..\include\gtest\internal\gtest-type-util.h">
        +      <BuildOrder>17</BuildOrder>
        +    </None>
        +    <CppCompile Include="gtest_all.cc">
        +      <BuildOrder>18</BuildOrder>
        +    </CppCompile>
        +    <BuildConfiguration Include="Debug">
        +      <Key>Cfg_1</Key>
        +    </BuildConfiguration>
        +    <BuildConfiguration Include="Release">
        +      <Key>Cfg_2</Key>
        +    </BuildConfiguration>
        +  </ItemGroup>
        +</Project>
        \ No newline at end of file
        diff --git a/lib/ann/fann/lib/googletest/codegear/gtest.groupproj b/lib/ann/fann/lib/googletest/codegear/gtest.groupproj
        new file mode 100644
        index 0000000..faf31ca
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/codegear/gtest.groupproj
        @@ -0,0 +1,54 @@
        +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
        +  <PropertyGroup>
        +    <ProjectGuid>{c1d923e0-6cba-4332-9b6f-3420acbf5091}</ProjectGuid>
        +  </PropertyGroup>
        +  <ItemGroup />
        +  <ItemGroup>
        +    <Projects Include="gtest.cbproj" />
        +    <Projects Include="gtest_main.cbproj" />
        +    <Projects Include="gtest_unittest.cbproj" />
        +  </ItemGroup>
        +  <ProjectExtensions>
        +    <Borland.Personality>Default.Personality</Borland.Personality>
        +    <Borland.ProjectType />
        +    <BorlandProject>
        +<BorlandProject xmlns=""><Default.Personality></Default.Personality></BorlandProject></BorlandProject>
        +  </ProjectExtensions>
        +  <Target Name="gtest">
        +    <MSBuild Projects="gtest.cbproj" Targets="" />
        +  </Target>
        +  <Target Name="gtest:Clean">
        +    <MSBuild Projects="gtest.cbproj" Targets="Clean" />
        +  </Target>
        +  <Target Name="gtest:Make">
        +    <MSBuild Projects="gtest.cbproj" Targets="Make" />
        +  </Target>
        +  <Target Name="gtest_main">
        +    <MSBuild Projects="gtest_main.cbproj" Targets="" />
        +  </Target>
        +  <Target Name="gtest_main:Clean">
        +    <MSBuild Projects="gtest_main.cbproj" Targets="Clean" />
        +  </Target>
        +  <Target Name="gtest_main:Make">
        +    <MSBuild Projects="gtest_main.cbproj" Targets="Make" />
        +  </Target>
        +  <Target Name="gtest_unittest">
        +    <MSBuild Projects="gtest_unittest.cbproj" Targets="" />
        +  </Target>
        +  <Target Name="gtest_unittest:Clean">
        +    <MSBuild Projects="gtest_unittest.cbproj" Targets="Clean" />
        +  </Target>
        +  <Target Name="gtest_unittest:Make">
        +    <MSBuild Projects="gtest_unittest.cbproj" Targets="Make" />
        +  </Target>
        +  <Target Name="Build">
        +    <CallTarget Targets="gtest;gtest_main;gtest_unittest" />
        +  </Target>
        +  <Target Name="Clean">
        +    <CallTarget Targets="gtest:Clean;gtest_main:Clean;gtest_unittest:Clean" />
        +  </Target>
        +  <Target Name="Make">
        +    <CallTarget Targets="gtest:Make;gtest_main:Make;gtest_unittest:Make" />
        +  </Target>
        +  <Import Condition="Exists('$(MSBuildBinPath)\Borland.Group.Targets')" Project="$(MSBuildBinPath)\Borland.Group.Targets" />
        +</Project>
        \ No newline at end of file
        diff --git a/lib/ann/fann/lib/googletest/codegear/gtest_all.cc b/lib/ann/fann/lib/googletest/codegear/gtest_all.cc
        new file mode 100644
        index 0000000..121b2d8
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/codegear/gtest_all.cc
        @@ -0,0 +1,38 @@
        +// Copyright 2009, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: Josh Kelley (joshkel@gmail.com)
        +//
        +// Google C++ Testing Framework (Google Test)
        +//
        +// C++Builder's IDE cannot build a static library from files with hyphens
        +// in their name.  See http://qc.codegear.com/wc/qcmain.aspx?d=70977 .
        +// This file serves as a workaround.
        +
        +#include "src/gtest-all.cc"
        diff --git a/lib/ann/fann/lib/googletest/codegear/gtest_link.cc b/lib/ann/fann/lib/googletest/codegear/gtest_link.cc
        new file mode 100644
        index 0000000..918eccd
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/codegear/gtest_link.cc
        @@ -0,0 +1,40 @@
        +// Copyright 2009, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: Josh Kelley (joshkel@gmail.com)
        +//
        +// Google C++ Testing Framework (Google Test)
        +//
        +// Links gtest.lib and gtest_main.lib into the current project in C++Builder.
        +// This means that these libraries can't be renamed, but it's the only way to
        +// ensure that Debug versus Release test builds are linked against the
        +// appropriate Debug or Release build of the libraries.
        +
        +#pragma link "gtest.lib"
        +#pragma link "gtest_main.lib"
        diff --git a/lib/ann/fann/lib/googletest/codegear/gtest_main.cbproj b/lib/ann/fann/lib/googletest/codegear/gtest_main.cbproj
        new file mode 100644
        index 0000000..d76ce13
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/codegear/gtest_main.cbproj
        @@ -0,0 +1,82 @@
        +<?xml version="1.0" encoding="utf-8"?>
        +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
        +  <PropertyGroup>
        +    <ProjectGuid>{bca37a72-5b07-46cf-b44e-89f8e06451a2}</ProjectGuid>
        +    <Config Condition="'$(Config)'==''">Release</Config>
        +  </PropertyGroup>
        +  <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
        +    <Base>true</Base>
        +  </PropertyGroup>
        +  <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_1)'!=''">
        +    <Base>true</Base>
        +    <Cfg_1>true</Cfg_1>
        +    <CfgParent>Base</CfgParent>
        +  </PropertyGroup>
        +  <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_2)'!=''">
        +    <Base>true</Base>
        +    <Cfg_2>true</Cfg_2>
        +    <CfgParent>Base</CfgParent>
        +  </PropertyGroup>
        +  <PropertyGroup Condition="'$(Base)'!=''">
        +    <BCC_OptimizeForSpeed>true</BCC_OptimizeForSpeed>
        +    <OutputExt>lib</OutputExt>
        +    <DCC_CBuilderOutput>JPHNE</DCC_CBuilderOutput>
        +    <Defines>NO_STRICT</Defines>
        +    <DynamicRTL>true</DynamicRTL>
        +    <UsePackages>true</UsePackages>
        +    <ProjectType>CppStaticLibrary</ProjectType>
        +    <BCC_CPPCompileAlways>true</BCC_CPPCompileAlways>
        +    <PackageImports>rtl.bpi;vcl.bpi;bcbie.bpi;vclx.bpi;vclactnband.bpi;xmlrtl.bpi;bcbsmp.bpi;dbrtl.bpi;vcldb.bpi;bdertl.bpi;vcldbx.bpi;dsnap.bpi;dsnapcon.bpi;vclib.bpi;ibxpress.bpi;adortl.bpi;dbxcds.bpi;dbexpress.bpi;DbxCommonDriver.bpi;websnap.bpi;vclie.bpi;webdsnap.bpi;inet.bpi;inetdbbde.bpi;inetdbxpress.bpi;soaprtl.bpi;Rave75VCL.bpi;teeUI.bpi;tee.bpi;teedb.bpi;IndyCore.bpi;IndySystem.bpi;IndyProtocols.bpi;IntrawebDB_90_100.bpi;Intraweb_90_100.bpi;dclZipForged11.bpi;vclZipForged11.bpi;GR32_BDS2006.bpi;GR32_DSGN_BDS2006.bpi;Jcl.bpi;JclVcl.bpi;JvCoreD11R.bpi;JvSystemD11R.bpi;JvStdCtrlsD11R.bpi;JvAppFrmD11R.bpi;JvBandsD11R.bpi;JvDBD11R.bpi;JvDlgsD11R.bpi;JvBDED11R.bpi;JvCmpD11R.bpi;JvCryptD11R.bpi;JvCtrlsD11R.bpi;JvCustomD11R.bpi;JvDockingD11R.bpi;JvDotNetCtrlsD11R.bpi;JvEDID11R.bpi;JvGlobusD11R.bpi;JvHMID11R.bpi;JvInterpreterD11R.bpi;JvJansD11R.bpi;JvManagedThreadsD11R.bpi;JvMMD11R.bpi;JvNetD11R.bpi;JvPageCompsD11R.bpi;JvPluginD11R.bpi;JvPrintPreviewD11R.bpi;JvRuntimeDesignD11R.bpi;JvTimeFrameworkD11R.bpi;JvValidatorsD11R.bpi;JvWizardD11R.bpi;JvXPCtrlsD11R.bpi;VclSmp.bpi;CExceptionExpert11.bpi</PackageImports>
        +    <BCC_wpar>false</BCC_wpar>
        +    <IncludePath>$(BDS)\include;$(BDS)\include\dinkumware;$(BDS)\include\vcl;..\src;..\include;..</IncludePath>
        +    <AllPackageLibs>rtl.lib;vcl.lib</AllPackageLibs>
        +    <TLIB_PageSize>32</TLIB_PageSize>
        +    <ILINK_LibraryPath>$(BDS)\lib;$(BDS)\lib\obj;$(BDS)\lib\psdk</ILINK_LibraryPath>
        +  </PropertyGroup>
        +  <PropertyGroup Condition="'$(Cfg_1)'!=''">
        +    <BCC_OptimizeForSpeed>false</BCC_OptimizeForSpeed>
        +    <DCC_Optimize>false</DCC_Optimize>
        +    <DCC_DebugInfoInExe>true</DCC_DebugInfoInExe>
        +    <Defines>_DEBUG;$(Defines)</Defines>
        +    <ILINK_FullDebugInfo>true</ILINK_FullDebugInfo>
        +    <BCC_InlineFunctionExpansion>false</BCC_InlineFunctionExpansion>
        +    <ILINK_DisableIncrementalLinking>true</ILINK_DisableIncrementalLinking>
        +    <BCC_UseRegisterVariables>None</BCC_UseRegisterVariables>
        +    <DCC_Define>DEBUG</DCC_Define>
        +    <BCC_DebugLineNumbers>true</BCC_DebugLineNumbers>
        +    <IntermediateOutputDir>Debug</IntermediateOutputDir>
        +    <TASM_DisplaySourceLines>true</TASM_DisplaySourceLines>
        +    <BCC_StackFrames>true</BCC_StackFrames>
        +    <BCC_DisableOptimizations>true</BCC_DisableOptimizations>
        +    <ILINK_LibraryPath>$(BDS)\lib\debug;$(ILINK_LibraryPath)</ILINK_LibraryPath>
        +    <TASM_Debugging>Full</TASM_Debugging>
        +    <BCC_SourceDebuggingOn>true</BCC_SourceDebuggingOn>
        +  </PropertyGroup>
        +  <PropertyGroup Condition="'$(Cfg_2)'!=''">
        +    <Defines>NDEBUG;$(Defines)</Defines>
        +    <IntermediateOutputDir>Release</IntermediateOutputDir>
        +    <ILINK_LibraryPath>$(BDS)\lib\release;$(ILINK_LibraryPath)</ILINK_LibraryPath>
        +    <TASM_Debugging>None</TASM_Debugging>
        +  </PropertyGroup>
        +  <ProjectExtensions>
        +    <Borland.Personality>CPlusPlusBuilder.Personality</Borland.Personality>
        +    <Borland.ProjectType>CppStaticLibrary</Borland.ProjectType>
        +    <BorlandProject>
        +<BorlandProject><CPlusPlusBuilder.Personality><VersionInfo><VersionInfo Name="IncludeVerInfo">False</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">1</VersionInfo><VersionInfo Name="MinorVer">0</VersionInfo><VersionInfo Name="Release">0</VersionInfo><VersionInfo Name="Build">0</VersionInfo><VersionInfo Name="Debug">False</VersionInfo><VersionInfo Name="PreRelease">False</VersionInfo><VersionInfo Name="Special">False</VersionInfo><VersionInfo Name="Private">False</VersionInfo><VersionInfo Name="DLL">False</VersionInfo><VersionInfo Name="Locale">1033</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName"></VersionInfoKeys><VersionInfoKeys Name="FileDescription"></VersionInfoKeys><VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="InternalName"></VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName"></VersionInfoKeys><VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys></VersionInfoKeys><Debugging><Debugging Name="DebugSourceDirs"></Debugging></Debugging><Parameters><Parameters Name="RunParams"></Parameters><Parameters Name="Launcher"></Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="DebugCWD"></Parameters><Parameters Name="HostApplication"></Parameters><Parameters Name="RemoteHost"></Parameters><Parameters Name="RemotePath"></Parameters><Parameters Name="RemoteParams"></Parameters><Parameters Name="RemoteLauncher"></Parameters><Parameters Name="UseRemoteLauncher">False</Parameters><Parameters Name="RemoteCWD"></Parameters><Parameters Name="RemoteDebug">False</Parameters><Parameters Name="Debug Symbols Search Path"></Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><Excluded_Packages>
        +      <Excluded_Packages Name="$(BDS)\bin\bcboffice2k100.bpl">CodeGear C++Builder Office 2000 Servers Package</Excluded_Packages>
        +      <Excluded_Packages Name="$(BDS)\bin\bcbofficexp100.bpl">CodeGear C++Builder Office XP Servers Package</Excluded_Packages>
        +    </Excluded_Packages><Linker><Linker Name="LibPrefix"></Linker><Linker Name="LibSuffix"></Linker><Linker Name="LibVersion"></Linker></Linker><ProjectProperties><ProjectProperties Name="AutoShowDeps">False</ProjectProperties><ProjectProperties Name="ManagePaths">True</ProjectProperties><ProjectProperties Name="VerifyPackages">True</ProjectProperties></ProjectProperties><HistoryLists_hlIncludePath><HistoryLists_hlIncludePath Name="Count">3</HistoryLists_hlIncludePath><HistoryLists_hlIncludePath Name="Item0">$(BDS)\include;$(BDS)\include\dinkumware;$(BDS)\include\vcl;..\src;..\include;..</HistoryLists_hlIncludePath><HistoryLists_hlIncludePath Name="Item1">$(BDS)\include;$(BDS)\include\dinkumware;$(BDS)\include\vcl;..\src;..\include;..</HistoryLists_hlIncludePath><HistoryLists_hlIncludePath Name="Item2">$(BDS)\include;$(BDS)\include\dinkumware;$(BDS)\include\vcl;..\src;..\src;..\include</HistoryLists_hlIncludePath></HistoryLists_hlIncludePath><HistoryLists_hlILINK_LibraryPath><HistoryLists_hlILINK_LibraryPath Name="Count">1</HistoryLists_hlILINK_LibraryPath><HistoryLists_hlILINK_LibraryPath Name="Item0">$(BDS)\lib;$(BDS)\lib\obj;$(BDS)\lib\psdk</HistoryLists_hlILINK_LibraryPath></HistoryLists_hlILINK_LibraryPath><HistoryLists_hlDefines><HistoryLists_hlDefines Name="Count">1</HistoryLists_hlDefines><HistoryLists_hlDefines Name="Item0">NO_STRICT</HistoryLists_hlDefines></HistoryLists_hlDefines><HistoryLists_hlTLIB_PageSize><HistoryLists_hlTLIB_PageSize Name="Count">1</HistoryLists_hlTLIB_PageSize><HistoryLists_hlTLIB_PageSize Name="Item0">32</HistoryLists_hlTLIB_PageSize><HistoryLists_hlTLIB_PageSize Name="Item1">16</HistoryLists_hlTLIB_PageSize></HistoryLists_hlTLIB_PageSize></CPlusPlusBuilder.Personality></BorlandProject></BorlandProject>
        +  </ProjectExtensions>
        +  <Import Project="$(MSBuildBinPath)\Borland.Cpp.Targets" />
        +  <ItemGroup>
        +    <CppCompile Include="..\src\gtest_main.cc">
        +      <BuildOrder>0</BuildOrder>
        +    </CppCompile>
        +    <BuildConfiguration Include="Debug">
        +      <Key>Cfg_1</Key>
        +    </BuildConfiguration>
        +    <BuildConfiguration Include="Release">
        +      <Key>Cfg_2</Key>
        +    </BuildConfiguration>
        +  </ItemGroup>
        +</Project>
        diff --git a/lib/ann/fann/lib/googletest/codegear/gtest_unittest.cbproj b/lib/ann/fann/lib/googletest/codegear/gtest_unittest.cbproj
        new file mode 100644
        index 0000000..dc5db8e
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/codegear/gtest_unittest.cbproj
        @@ -0,0 +1,88 @@
        +<?xml version="1.0" encoding="utf-8"?>
        +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
        +  <PropertyGroup>
        +    <ProjectGuid>{eea63393-5ac5-4b9c-8909-d75fef2daa41}</ProjectGuid>
        +    <Config Condition="'$(Config)'==''">Release</Config>
        +  </PropertyGroup>
        +  <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
        +    <Base>true</Base>
        +  </PropertyGroup>
        +  <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_1)'!=''">
        +    <Base>true</Base>
        +    <Cfg_1>true</Cfg_1>
        +    <CfgParent>Base</CfgParent>
        +  </PropertyGroup>
        +  <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_2)'!=''">
        +    <Base>true</Base>
        +    <Cfg_2>true</Cfg_2>
        +    <CfgParent>Base</CfgParent>
        +  </PropertyGroup>
        +  <PropertyGroup Condition="'$(Base)'!=''">
        +    <OutputExt>exe</OutputExt>
        +    <BCC_OptimizeForSpeed>true</BCC_OptimizeForSpeed>
        +    <Defines>NO_STRICT</Defines>
        +    <DCC_CBuilderOutput>JPHNE</DCC_CBuilderOutput>
        +    <DynamicRTL>true</DynamicRTL>
        +    <ILINK_ObjectSearchPath>..\test</ILINK_ObjectSearchPath>
        +    <UsePackages>true</UsePackages>
        +    <ProjectType>CppConsoleApplication</ProjectType>
        +    <NoVCL>true</NoVCL>
        +    <BCC_CPPCompileAlways>true</BCC_CPPCompileAlways>
        +    <PackageImports>rtl.bpi;vcl.bpi;bcbie.bpi;vclx.bpi;vclactnband.bpi;xmlrtl.bpi;bcbsmp.bpi;dbrtl.bpi;vcldb.bpi;bdertl.bpi;vcldbx.bpi;dsnap.bpi;dsnapcon.bpi;vclib.bpi;ibxpress.bpi;adortl.bpi;dbxcds.bpi;dbexpress.bpi;DbxCommonDriver.bpi;websnap.bpi;vclie.bpi;webdsnap.bpi;inet.bpi;inetdbbde.bpi;inetdbxpress.bpi;soaprtl.bpi;Rave75VCL.bpi;teeUI.bpi;tee.bpi;teedb.bpi;IndyCore.bpi;IndySystem.bpi;IndyProtocols.bpi;IntrawebDB_90_100.bpi;Intraweb_90_100.bpi;Jcl.bpi;JclVcl.bpi;JvCoreD11R.bpi;JvSystemD11R.bpi;JvStdCtrlsD11R.bpi;JvAppFrmD11R.bpi;JvBandsD11R.bpi;JvDBD11R.bpi;JvDlgsD11R.bpi;JvBDED11R.bpi;JvCmpD11R.bpi;JvCryptD11R.bpi;JvCtrlsD11R.bpi;JvCustomD11R.bpi;JvDockingD11R.bpi;JvDotNetCtrlsD11R.bpi;JvEDID11R.bpi;JvGlobusD11R.bpi;JvHMID11R.bpi;JvInterpreterD11R.bpi;JvJansD11R.bpi;JvManagedThreadsD11R.bpi;JvMMD11R.bpi;JvNetD11R.bpi;JvPageCompsD11R.bpi;JvPluginD11R.bpi;JvPrintPreviewD11R.bpi;JvRuntimeDesignD11R.bpi;JvTimeFrameworkD11R.bpi;JvValidatorsD11R.bpi;JvWizardD11R.bpi;JvXPCtrlsD11R.bpi;VclSmp.bpi</PackageImports>
        +    <BCC_wpar>false</BCC_wpar>
        +    <IncludePath>$(BDS)\include;$(BDS)\include\dinkumware;$(BDS)\include\vcl;..\include;..\test;..</IncludePath>
        +    <ILINK_LibraryPath>$(BDS)\lib;$(BDS)\lib\obj;$(BDS)\lib\psdk;..\test</ILINK_LibraryPath>
        +    <Multithreaded>true</Multithreaded>
        +  </PropertyGroup>
        +  <PropertyGroup Condition="'$(Cfg_1)'!=''">
        +    <BCC_OptimizeForSpeed>false</BCC_OptimizeForSpeed>
        +    <DCC_Optimize>false</DCC_Optimize>
        +    <DCC_DebugInfoInExe>true</DCC_DebugInfoInExe>
        +    <Defines>_DEBUG;$(Defines)</Defines>
        +    <ILINK_FullDebugInfo>true</ILINK_FullDebugInfo>
        +    <BCC_InlineFunctionExpansion>false</BCC_InlineFunctionExpansion>
        +    <ILINK_DisableIncrementalLinking>true</ILINK_DisableIncrementalLinking>
        +    <BCC_UseRegisterVariables>None</BCC_UseRegisterVariables>
        +    <DCC_Define>DEBUG</DCC_Define>
        +    <BCC_DebugLineNumbers>true</BCC_DebugLineNumbers>
        +    <IntermediateOutputDir>Debug</IntermediateOutputDir>
        +    <TASM_DisplaySourceLines>true</TASM_DisplaySourceLines>
        +    <BCC_StackFrames>true</BCC_StackFrames>
        +    <BCC_DisableOptimizations>true</BCC_DisableOptimizations>
        +    <ILINK_LibraryPath>$(BDS)\lib\debug;$(ILINK_LibraryPath)</ILINK_LibraryPath>
        +    <TASM_Debugging>Full</TASM_Debugging>
        +    <BCC_SourceDebuggingOn>true</BCC_SourceDebuggingOn>
        +  </PropertyGroup>
        +  <PropertyGroup Condition="'$(Cfg_2)'!=''">
        +    <Defines>NDEBUG;$(Defines)</Defines>
        +    <IntermediateOutputDir>Release</IntermediateOutputDir>
        +    <ILINK_LibraryPath>$(BDS)\lib\release;$(ILINK_LibraryPath)</ILINK_LibraryPath>
        +    <TASM_Debugging>None</TASM_Debugging>
        +  </PropertyGroup>
        +  <ProjectExtensions>
        +    <Borland.Personality>CPlusPlusBuilder.Personality</Borland.Personality>
        +    <Borland.ProjectType>CppConsoleApplication</Borland.ProjectType>
        +    <BorlandProject>
        +<BorlandProject><CPlusPlusBuilder.Personality><VersionInfo><VersionInfo Name="IncludeVerInfo">False</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">1</VersionInfo><VersionInfo Name="MinorVer">0</VersionInfo><VersionInfo Name="Release">0</VersionInfo><VersionInfo Name="Build">0</VersionInfo><VersionInfo Name="Debug">False</VersionInfo><VersionInfo Name="PreRelease">False</VersionInfo><VersionInfo Name="Special">False</VersionInfo><VersionInfo Name="Private">False</VersionInfo><VersionInfo Name="DLL">False</VersionInfo><VersionInfo Name="Locale">1033</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName"></VersionInfoKeys><VersionInfoKeys Name="FileDescription"></VersionInfoKeys><VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="InternalName"></VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName"></VersionInfoKeys><VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys></VersionInfoKeys><Debugging><Debugging Name="DebugSourceDirs"></Debugging></Debugging><Parameters><Parameters Name="RunParams"></Parameters><Parameters Name="Launcher"></Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="DebugCWD"></Parameters><Parameters Name="HostApplication"></Parameters><Parameters Name="RemoteHost"></Parameters><Parameters Name="RemotePath"></Parameters><Parameters Name="RemoteParams"></Parameters><Parameters Name="RemoteLauncher"></Parameters><Parameters Name="UseRemoteLauncher">False</Parameters><Parameters Name="RemoteCWD"></Parameters><Parameters Name="RemoteDebug">False</Parameters><Parameters Name="Debug Symbols Search Path"></Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><Excluded_Packages>
        +      
        +      
        +      <Excluded_Packages Name="$(BDS)\bin\bcboffice2k100.bpl">CodeGear C++Builder Office 2000 Servers Package</Excluded_Packages>
        +      <Excluded_Packages Name="$(BDS)\bin\bcbofficexp100.bpl">CodeGear C++Builder Office XP Servers Package</Excluded_Packages>
        +    </Excluded_Packages><Linker><Linker Name="LibPrefix"></Linker><Linker Name="LibSuffix"></Linker><Linker Name="LibVersion"></Linker></Linker><ProjectProperties><ProjectProperties Name="AutoShowDeps">False</ProjectProperties><ProjectProperties Name="ManagePaths">True</ProjectProperties><ProjectProperties Name="VerifyPackages">True</ProjectProperties></ProjectProperties><HistoryLists_hlIncludePath><HistoryLists_hlIncludePath Name="Count">3</HistoryLists_hlIncludePath><HistoryLists_hlIncludePath Name="Item0">$(BDS)\include;$(BDS)\include\dinkumware;$(BDS)\include\vcl;..\include;..\test;..</HistoryLists_hlIncludePath><HistoryLists_hlIncludePath Name="Item1">$(BDS)\include;$(BDS)\include\dinkumware;$(BDS)\include\vcl;..\include;..\test</HistoryLists_hlIncludePath><HistoryLists_hlIncludePath Name="Item2">$(BDS)\include;$(BDS)\include\dinkumware;$(BDS)\include\vcl;..\include</HistoryLists_hlIncludePath></HistoryLists_hlIncludePath><HistoryLists_hlILINK_LibraryPath><HistoryLists_hlILINK_LibraryPath Name="Count">1</HistoryLists_hlILINK_LibraryPath><HistoryLists_hlILINK_LibraryPath Name="Item0">$(BDS)\lib;$(BDS)\lib\obj;$(BDS)\lib\psdk;..\test</HistoryLists_hlILINK_LibraryPath><HistoryLists_hlILINK_LibraryPath Name="Item1">$(BDS)\lib;$(BDS)\lib\obj;$(BDS)\lib\psdk;..\test</HistoryLists_hlILINK_LibraryPath><HistoryLists_hlILINK_LibraryPath Name="Item2">$(BDS)\lib;$(BDS)\lib\obj;$(BDS)\lib\psdk;$(OUTPUTDIR);..\test</HistoryLists_hlILINK_LibraryPath></HistoryLists_hlILINK_LibraryPath><HistoryLists_hlDefines><HistoryLists_hlDefines Name="Count">2</HistoryLists_hlDefines><HistoryLists_hlDefines Name="Item0">NO_STRICT</HistoryLists_hlDefines><HistoryLists_hlDefines Name="Item1">STRICT</HistoryLists_hlDefines></HistoryLists_hlDefines></CPlusPlusBuilder.Personality></BorlandProject></BorlandProject>
        +  </ProjectExtensions>
        +  <Import Project="$(MSBuildBinPath)\Borland.Cpp.Targets" />
        +  <ItemGroup>
        +    <CppCompile Include="..\test\gtest_unittest.cc">
        +      <BuildOrder>0</BuildOrder>
        +    </CppCompile>
        +    <CppCompile Include="gtest_link.cc">
        +      <BuildOrder>1</BuildOrder>
        +    </CppCompile>
        +    <BuildConfiguration Include="Debug">
        +      <Key>Cfg_1</Key>
        +    </BuildConfiguration>
        +    <BuildConfiguration Include="Release">
        +      <Key>Cfg_2</Key>
        +    </BuildConfiguration>
        +  </ItemGroup>
        +</Project>
        \ No newline at end of file
        diff --git a/lib/ann/fann/lib/googletest/configure.ac b/lib/ann/fann/lib/googletest/configure.ac
        new file mode 100644
        index 0000000..cc592e1
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/configure.ac
        @@ -0,0 +1,68 @@
        +m4_include(m4/acx_pthread.m4)
        +
        +# At this point, the Xcode project assumes the version string will be three
        +# integers separated by periods and surrounded by square brackets (e.g.
        +# "[1.0.1]"). It also asumes that there won't be any closing parenthesis
        +# between "AC_INIT(" and the closing ")" including comments and strings.
        +AC_INIT([Google C++ Testing Framework],
        +        [1.7.0],
        +        [googletestframework@googlegroups.com],
        +        [gtest])
        +
        +# Provide various options to initialize the Autoconf and configure processes.
        +AC_PREREQ([2.59])
        +AC_CONFIG_SRCDIR([./LICENSE])
        +AC_CONFIG_MACRO_DIR([m4])
        +AC_CONFIG_AUX_DIR([build-aux])
        +AC_CONFIG_HEADERS([build-aux/config.h])
        +AC_CONFIG_FILES([Makefile])
        +AC_CONFIG_FILES([scripts/gtest-config], [chmod +x scripts/gtest-config])
        +
        +# Initialize Automake with various options. We require at least v1.9, prevent
        +# pedantic complaints about package files, and enable various distribution
        +# targets.
        +AM_INIT_AUTOMAKE([1.9 dist-bzip2 dist-zip foreign subdir-objects])
        +
        +# Check for programs used in building Google Test.
        +AC_PROG_CC
        +AC_PROG_CXX
        +AC_LANG([C++])
        +AC_PROG_LIBTOOL
        +
        +# TODO(chandlerc@google.com): Currently we aren't running the Python tests
        +# against the interpreter detected by AM_PATH_PYTHON, and so we condition
        +# HAVE_PYTHON by requiring "python" to be in the PATH, and that interpreter's
        +# version to be >= 2.3. This will allow the scripts to use a "/usr/bin/env"
        +# hashbang.
        +PYTHON=  # We *do not* allow the user to specify a python interpreter
        +AC_PATH_PROG([PYTHON],[python],[:])
        +AS_IF([test "$PYTHON" != ":"],
        +      [AM_PYTHON_CHECK_VERSION([$PYTHON],[2.3],[:],[PYTHON=":"])])
        +AM_CONDITIONAL([HAVE_PYTHON],[test "$PYTHON" != ":"])
        +
        +# Configure pthreads.
        +AC_ARG_WITH([pthreads],
        +            [AS_HELP_STRING([--with-pthreads],
        +               [use pthreads (default is yes)])],
        +            [with_pthreads=$withval],
        +            [with_pthreads=check])
        +
        +have_pthreads=no
        +AS_IF([test "x$with_pthreads" != "xno"],
        +      [ACX_PTHREAD(
        +        [],
        +        [AS_IF([test "x$with_pthreads" != "xcheck"],
        +               [AC_MSG_FAILURE(
        +                 [--with-pthreads was specified, but unable to be used])])])
        +       have_pthreads="$acx_pthread_ok"])
        +AM_CONDITIONAL([HAVE_PTHREADS],[test "x$have_pthreads" = "xyes"])
        +AC_SUBST(PTHREAD_CFLAGS)
        +AC_SUBST(PTHREAD_LIBS)
        +
        +# TODO(chandlerc@google.com) Check for the necessary system headers.
        +
        +# TODO(chandlerc@google.com) Check the types, structures, and other compiler
        +# and architecture characteristics.
        +
        +# Output the generated files. No further autoconf macros may be used.
        +AC_OUTPUT
        diff --git a/lib/ann/fann/lib/googletest/docs/AdvancedGuide.md b/lib/ann/fann/lib/googletest/docs/AdvancedGuide.md
        new file mode 100644
        index 0000000..4d34ba5
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/docs/AdvancedGuide.md
        @@ -0,0 +1,2183 @@
        +
        +
        +Now that you have read [Primer](Primer.md) and learned how to write tests
        +using Google Test, it's time to learn some new tricks. This document
        +will show you more assertions as well as how to construct complex
        +failure messages, propagate fatal failures, reuse and speed up your
        +test fixtures, and use various flags with your tests.
        +
        +# More Assertions #
        +
        +This section covers some less frequently used, but still significant,
        +assertions.
        +
        +## Explicit Success and Failure ##
        +
        +These three assertions do not actually test a value or expression. Instead,
        +they generate a success or failure directly. Like the macros that actually
        +perform a test, you may stream a custom failure message into the them.
        +
        +| `SUCCEED();` |
        +|:-------------|
        +
        +Generates a success. This does NOT make the overall test succeed. A test is
        +considered successful only if none of its assertions fail during its execution.
        +
        +Note: `SUCCEED()` is purely documentary and currently doesn't generate any
        +user-visible output. However, we may add `SUCCEED()` messages to Google Test's
        +output in the future.
        +
        +| `FAIL();`  | `ADD_FAILURE();` | `ADD_FAILURE_AT("`_file\_path_`", `_line\_number_`);` |
        +|:-----------|:-----------------|:------------------------------------------------------|
        +
        +`FAIL()` generates a fatal failure, while `ADD_FAILURE()` and `ADD_FAILURE_AT()` generate a nonfatal
        +failure. These are useful when control flow, rather than a Boolean expression,
        +deteremines the test's success or failure. For example, you might want to write
        +something like:
        +
        +```
        +switch(expression) {
        +  case 1: ... some checks ...
        +  case 2: ... some other checks
        +  ...
        +  default: FAIL() << "We shouldn't get here.";
        +}
        +```
        +
        +Note: you can only use `FAIL()` in functions that return `void`. See the [Assertion Placement section](#assertion-placement) for more information.
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +## Exception Assertions ##
        +
        +These are for verifying that a piece of code throws (or does not
        +throw) an exception of the given type:
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_THROW(`_statement_, _exception\_type_`);`  | `EXPECT_THROW(`_statement_, _exception\_type_`);`  | _statement_ throws an exception of the given type  |
        +| `ASSERT_ANY_THROW(`_statement_`);`                | `EXPECT_ANY_THROW(`_statement_`);`                | _statement_ throws an exception of any type        |
        +| `ASSERT_NO_THROW(`_statement_`);`                 | `EXPECT_NO_THROW(`_statement_`);`                 | _statement_ doesn't throw any exception            |
        +
        +Examples:
        +
        +```
        +ASSERT_THROW(Foo(5), bar_exception);
        +
        +EXPECT_NO_THROW({
        +  int n = 5;
        +  Bar(&n);
        +});
        +```
        +
        +_Availability_: Linux, Windows, Mac; since version 1.1.0.
        +
        +## Predicate Assertions for Better Error Messages ##
        +
        +Even though Google Test has a rich set of assertions, they can never be
        +complete, as it's impossible (nor a good idea) to anticipate all the scenarios
        +a user might run into. Therefore, sometimes a user has to use `EXPECT_TRUE()`
        +to check a complex expression, for lack of a better macro. This has the problem
        +of not showing you the values of the parts of the expression, making it hard to
        +understand what went wrong. As a workaround, some users choose to construct the
        +failure message by themselves, streaming it into `EXPECT_TRUE()`. However, this
        +is awkward especially when the expression has side-effects or is expensive to
        +evaluate.
        +
        +Google Test gives you three different options to solve this problem:
        +
        +### Using an Existing Boolean Function ###
        +
        +If you already have a function or a functor that returns `bool` (or a type
        +that can be implicitly converted to `bool`), you can use it in a _predicate
        +assertion_ to get the function arguments printed for free:
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_PRED1(`_pred1, val1_`);`       | `EXPECT_PRED1(`_pred1, val1_`);` | _pred1(val1)_ returns true |
        +| `ASSERT_PRED2(`_pred2, val1, val2_`);` | `EXPECT_PRED2(`_pred2, val1, val2_`);` |  _pred2(val1, val2)_ returns true |
        +|  ...                | ...                    | ...          |
        +
        +In the above, _predn_ is an _n_-ary predicate function or functor, where
        +_val1_, _val2_, ..., and _valn_ are its arguments. The assertion succeeds
        +if the predicate returns `true` when applied to the given arguments, and fails
        +otherwise. When the assertion fails, it prints the value of each argument. In
        +either case, the arguments are evaluated exactly once.
        +
        +Here's an example. Given
        +
        +```
        +// Returns true iff m and n have no common divisors except 1.
        +bool MutuallyPrime(int m, int n) { ... }
        +const int a = 3;
        +const int b = 4;
        +const int c = 10;
        +```
        +
        +the assertion `EXPECT_PRED2(MutuallyPrime, a, b);` will succeed, while the
        +assertion `EXPECT_PRED2(MutuallyPrime, b, c);` will fail with the message
        +
        +<pre>
        +!MutuallyPrime(b, c) is false, where<br>
        +b is 4<br>
        +c is 10<br>
        +</pre>
        +
        +**Notes:**
        +
        +  1. If you see a compiler error "no matching function to call" when using `ASSERT_PRED*` or `EXPECT_PRED*`, please see [this FAQ](FAQ.md#the-compiler-complains-no-matching-function-to-call-when-i-use-assert_predn-how-do-i-fix-it) for how to resolve it.
        +  1. Currently we only provide predicate assertions of arity <= 5. If you need a higher-arity assertion, let us know.
        +
        +_Availability_: Linux, Windows, Mac
        +
        +### Using a Function That Returns an AssertionResult ###
        +
        +While `EXPECT_PRED*()` and friends are handy for a quick job, the
        +syntax is not satisfactory: you have to use different macros for
        +different arities, and it feels more like Lisp than C++.  The
        +`::testing::AssertionResult` class solves this problem.
        +
        +An `AssertionResult` object represents the result of an assertion
        +(whether it's a success or a failure, and an associated message).  You
        +can create an `AssertionResult` using one of these factory
        +functions:
        +
        +```
        +namespace testing {
        +
        +// Returns an AssertionResult object to indicate that an assertion has
        +// succeeded.
        +AssertionResult AssertionSuccess();
        +
        +// Returns an AssertionResult object to indicate that an assertion has
        +// failed.
        +AssertionResult AssertionFailure();
        +
        +}
        +```
        +
        +You can then use the `<<` operator to stream messages to the
        +`AssertionResult` object.
        +
        +To provide more readable messages in Boolean assertions
        +(e.g. `EXPECT_TRUE()`), write a predicate function that returns
        +`AssertionResult` instead of `bool`. For example, if you define
        +`IsEven()` as:
        +
        +```
        +::testing::AssertionResult IsEven(int n) {
        +  if ((n % 2) == 0)
        +    return ::testing::AssertionSuccess();
        +  else
        +    return ::testing::AssertionFailure() << n << " is odd";
        +}
        +```
        +
        +instead of:
        +
        +```
        +bool IsEven(int n) {
        +  return (n % 2) == 0;
        +}
        +```
        +
        +the failed assertion `EXPECT_TRUE(IsEven(Fib(4)))` will print:
        +
        +<pre>
        +Value of: IsEven(Fib(4))<br>
        +Actual: false (*3 is odd*)<br>
        +Expected: true<br>
        +</pre>
        +
        +instead of a more opaque
        +
        +<pre>
        +Value of: IsEven(Fib(4))<br>
        +Actual: false<br>
        +Expected: true<br>
        +</pre>
        +
        +If you want informative messages in `EXPECT_FALSE` and `ASSERT_FALSE`
        +as well, and are fine with making the predicate slower in the success
        +case, you can supply a success message:
        +
        +```
        +::testing::AssertionResult IsEven(int n) {
        +  if ((n % 2) == 0)
        +    return ::testing::AssertionSuccess() << n << " is even";
        +  else
        +    return ::testing::AssertionFailure() << n << " is odd";
        +}
        +```
        +
        +Then the statement `EXPECT_FALSE(IsEven(Fib(6)))` will print
        +
        +<pre>
        +Value of: IsEven(Fib(6))<br>
        +Actual: true (8 is even)<br>
        +Expected: false<br>
        +</pre>
        +
        +_Availability_: Linux, Windows, Mac; since version 1.4.1.
        +
        +### Using a Predicate-Formatter ###
        +
        +If you find the default message generated by `(ASSERT|EXPECT)_PRED*` and
        +`(ASSERT|EXPECT)_(TRUE|FALSE)` unsatisfactory, or some arguments to your
        +predicate do not support streaming to `ostream`, you can instead use the
        +following _predicate-formatter assertions_ to _fully_ customize how the
        +message is formatted:
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_PRED_FORMAT1(`_pred\_format1, val1_`);`        | `EXPECT_PRED_FORMAT1(`_pred\_format1, val1_`); | _pred\_format1(val1)_ is successful |
        +| `ASSERT_PRED_FORMAT2(`_pred\_format2, val1, val2_`);` | `EXPECT_PRED_FORMAT2(`_pred\_format2, val1, val2_`);` | _pred\_format2(val1, val2)_ is successful |
        +| `...`               | `...`                  | `...`        |
        +
        +The difference between this and the previous two groups of macros is that instead of
        +a predicate, `(ASSERT|EXPECT)_PRED_FORMAT*` take a _predicate-formatter_
        +(_pred\_formatn_), which is a function or functor with the signature:
        +
        +`::testing::AssertionResult PredicateFormattern(const char* `_expr1_`, const char* `_expr2_`, ... const char* `_exprn_`, T1 `_val1_`, T2 `_val2_`, ... Tn `_valn_`);`
        +
        +where _val1_, _val2_, ..., and _valn_ are the values of the predicate
        +arguments, and _expr1_, _expr2_, ..., and _exprn_ are the corresponding
        +expressions as they appear in the source code. The types `T1`, `T2`, ..., and
        +`Tn` can be either value types or reference types. For example, if an
        +argument has type `Foo`, you can declare it as either `Foo` or `const Foo&`,
        +whichever is appropriate.
        +
        +A predicate-formatter returns a `::testing::AssertionResult` object to indicate
        +whether the assertion has succeeded or not. The only way to create such an
        +object is to call one of these factory functions:
        +
        +As an example, let's improve the failure message in the previous example, which uses `EXPECT_PRED2()`:
        +
        +```
        +// Returns the smallest prime common divisor of m and n,
        +// or 1 when m and n are mutually prime.
        +int SmallestPrimeCommonDivisor(int m, int n) { ... }
        +
        +// A predicate-formatter for asserting that two integers are mutually prime.
        +::testing::AssertionResult AssertMutuallyPrime(const char* m_expr,
        +                                               const char* n_expr,
        +                                               int m,
        +                                               int n) {
        +  if (MutuallyPrime(m, n))
        +    return ::testing::AssertionSuccess();
        + 
        +  return ::testing::AssertionFailure()
        +      << m_expr << " and " << n_expr << " (" << m << " and " << n
        +      << ") are not mutually prime, " << "as they have a common divisor "
        +      << SmallestPrimeCommonDivisor(m, n);
        +}
        +```
        +
        +With this predicate-formatter, we can use
        +
        +```
        +EXPECT_PRED_FORMAT2(AssertMutuallyPrime, b, c);
        +```
        +
        +to generate the message
        +
        +<pre>
        +b and c (4 and 10) are not mutually prime, as they have a common divisor 2.<br>
        +</pre>
        +
        +As you may have realized, many of the assertions we introduced earlier are
        +special cases of `(EXPECT|ASSERT)_PRED_FORMAT*`. In fact, most of them are
        +indeed defined using `(EXPECT|ASSERT)_PRED_FORMAT*`.
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +
        +## Floating-Point Comparison ##
        +
        +Comparing floating-point numbers is tricky. Due to round-off errors, it is
        +very unlikely that two floating-points will match exactly. Therefore,
        +`ASSERT_EQ` 's naive comparison usually doesn't work. And since floating-points
        +can have a wide value range, no single fixed error bound works. It's better to
        +compare by a fixed relative error bound, except for values close to 0 due to
        +the loss of precision there.
        +
        +In general, for floating-point comparison to make sense, the user needs to
        +carefully choose the error bound. If they don't want or care to, comparing in
        +terms of Units in the Last Place (ULPs) is a good default, and Google Test
        +provides assertions to do this. Full details about ULPs are quite long; if you
        +want to learn more, see
        +[this article on float comparison](http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm).
        +
        +### Floating-Point Macros ###
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_FLOAT_EQ(`_expected, actual_`);`  | `EXPECT_FLOAT_EQ(`_expected, actual_`);` | the two `float` values are almost equal |
        +| `ASSERT_DOUBLE_EQ(`_expected, actual_`);` | `EXPECT_DOUBLE_EQ(`_expected, actual_`);` | the two `double` values are almost equal |
        +
        +By "almost equal", we mean the two values are within 4 ULP's from each
        +other.
        +
        +The following assertions allow you to choose the acceptable error bound:
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_NEAR(`_val1, val2, abs\_error_`);` | `EXPECT_NEAR`_(val1, val2, abs\_error_`);` | the difference between _val1_ and _val2_ doesn't exceed the given absolute error |
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +### Floating-Point Predicate-Format Functions ###
        +
        +Some floating-point operations are useful, but not that often used. In order
        +to avoid an explosion of new macros, we provide them as predicate-format
        +functions that can be used in predicate assertion macros (e.g.
        +`EXPECT_PRED_FORMAT2`, etc).
        +
        +```
        +EXPECT_PRED_FORMAT2(::testing::FloatLE, val1, val2);
        +EXPECT_PRED_FORMAT2(::testing::DoubleLE, val1, val2);
        +```
        +
        +Verifies that _val1_ is less than, or almost equal to, _val2_. You can
        +replace `EXPECT_PRED_FORMAT2` in the above table with `ASSERT_PRED_FORMAT2`.
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +## Windows HRESULT assertions ##
        +
        +These assertions test for `HRESULT` success or failure.
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_HRESULT_SUCCEEDED(`_expression_`);` | `EXPECT_HRESULT_SUCCEEDED(`_expression_`);` | _expression_ is a success `HRESULT` |
        +| `ASSERT_HRESULT_FAILED(`_expression_`);`    | `EXPECT_HRESULT_FAILED(`_expression_`);`    | _expression_ is a failure `HRESULT` |
        +
        +The generated output contains the human-readable error message
        +associated with the `HRESULT` code returned by _expression_.
        +
        +You might use them like this:
        +
        +```
        +CComPtr shell;
        +ASSERT_HRESULT_SUCCEEDED(shell.CoCreateInstance(L"Shell.Application"));
        +CComVariant empty;
        +ASSERT_HRESULT_SUCCEEDED(shell->ShellExecute(CComBSTR(url), empty, empty, empty, empty));
        +```
        +
        +_Availability_: Windows.
        +
        +## Type Assertions ##
        +
        +You can call the function
        +```
        +::testing::StaticAssertTypeEq<T1, T2>();
        +```
        +to assert that types `T1` and `T2` are the same.  The function does
        +nothing if the assertion is satisfied.  If the types are different,
        +the function call will fail to compile, and the compiler error message
        +will likely (depending on the compiler) show you the actual values of
        +`T1` and `T2`.  This is mainly useful inside template code.
        +
        +_Caveat:_ When used inside a member function of a class template or a
        +function template, `StaticAssertTypeEq<T1, T2>()` is effective _only if_
        +the function is instantiated.  For example, given:
        +```
        +template <typename T> class Foo {
        + public:
        +  void Bar() { ::testing::StaticAssertTypeEq<int, T>(); }
        +};
        +```
        +the code:
        +```
        +void Test1() { Foo<bool> foo; }
        +```
        +will _not_ generate a compiler error, as `Foo<bool>::Bar()` is never
        +actually instantiated.  Instead, you need:
        +```
        +void Test2() { Foo<bool> foo; foo.Bar(); }
        +```
        +to cause a compiler error.
        +
        +_Availability:_ Linux, Windows, Mac; since version 1.3.0.
        +
        +## Assertion Placement ##
        +
        +You can use assertions in any C++ function. In particular, it doesn't
        +have to be a method of the test fixture class. The one constraint is
        +that assertions that generate a fatal failure (`FAIL*` and `ASSERT_*`)
        +can only be used in void-returning functions. This is a consequence of
        +Google Test not using exceptions. By placing it in a non-void function
        +you'll get a confusing compile error like
        +`"error: void value not ignored as it ought to be"`.
        +
        +If you need to use assertions in a function that returns non-void, one option
        +is to make the function return the value in an out parameter instead. For
        +example, you can rewrite `T2 Foo(T1 x)` to `void Foo(T1 x, T2* result)`. You
        +need to make sure that `*result` contains some sensible value even when the
        +function returns prematurely. As the function now returns `void`, you can use
        +any assertion inside of it.
        +
        +If changing the function's type is not an option, you should just use
        +assertions that generate non-fatal failures, such as `ADD_FAILURE*` and
        +`EXPECT_*`.
        +
        +_Note_: Constructors and destructors are not considered void-returning
        +functions, according to the C++ language specification, and so you may not use
        +fatal assertions in them. You'll get a compilation error if you try. A simple
        +workaround is to transfer the entire body of the constructor or destructor to a
        +private void-returning method. However, you should be aware that a fatal
        +assertion failure in a constructor does not terminate the current test, as your
        +intuition might suggest; it merely returns from the constructor early, possibly
        +leaving your object in a partially-constructed state. Likewise, a fatal
        +assertion failure in a destructor may leave your object in a
        +partially-destructed state. Use assertions carefully in these situations!
        +
        +# Teaching Google Test How to Print Your Values #
        +
        +When a test assertion such as `EXPECT_EQ` fails, Google Test prints the
        +argument values to help you debug.  It does this using a
        +user-extensible value printer.
        +
        +This printer knows how to print built-in C++ types, native arrays, STL
        +containers, and any type that supports the `<<` operator.  For other
        +types, it prints the raw bytes in the value and hopes that you the
        +user can figure it out.
        +
        +As mentioned earlier, the printer is _extensible_.  That means
        +you can teach it to do a better job at printing your particular type
        +than to dump the bytes.  To do that, define `<<` for your type:
        +
        +```
        +#include <iostream>
        +
        +namespace foo {
        +
        +class Bar { ... };  // We want Google Test to be able to print instances of this.
        +
        +// It's important that the << operator is defined in the SAME
        +// namespace that defines Bar.  C++'s look-up rules rely on that.
        +::std::ostream& operator<<(::std::ostream& os, const Bar& bar) {
        +  return os << bar.DebugString();  // whatever needed to print bar to os
        +}
        +
        +}  // namespace foo
        +```
        +
        +Sometimes, this might not be an option: your team may consider it bad
        +style to have a `<<` operator for `Bar`, or `Bar` may already have a
        +`<<` operator that doesn't do what you want (and you cannot change
        +it).  If so, you can instead define a `PrintTo()` function like this:
        +
        +```
        +#include <iostream>
        +
        +namespace foo {
        +
        +class Bar { ... };
        +
        +// It's important that PrintTo() is defined in the SAME
        +// namespace that defines Bar.  C++'s look-up rules rely on that.
        +void PrintTo(const Bar& bar, ::std::ostream* os) {
        +  *os << bar.DebugString();  // whatever needed to print bar to os
        +}
        +
        +}  // namespace foo
        +```
        +
        +If you have defined both `<<` and `PrintTo()`, the latter will be used
        +when Google Test is concerned.  This allows you to customize how the value
        +appears in Google Test's output without affecting code that relies on the
        +behavior of its `<<` operator.
        +
        +If you want to print a value `x` using Google Test's value printer
        +yourself, just call `::testing::PrintToString(`_x_`)`, which
        +returns an `std::string`:
        +
        +```
        +vector<pair<Bar, int> > bar_ints = GetBarIntVector();
        +
        +EXPECT_TRUE(IsCorrectBarIntVector(bar_ints))
        +    << "bar_ints = " << ::testing::PrintToString(bar_ints);
        +```
        +
        +# Death Tests #
        +
        +In many applications, there are assertions that can cause application failure
        +if a condition is not met. These sanity checks, which ensure that the program
        +is in a known good state, are there to fail at the earliest possible time after
        +some program state is corrupted. If the assertion checks the wrong condition,
        +then the program may proceed in an erroneous state, which could lead to memory
        +corruption, security holes, or worse. Hence it is vitally important to test
        +that such assertion statements work as expected.
        +
        +Since these precondition checks cause the processes to die, we call such tests
        +_death tests_. More generally, any test that checks that a program terminates
        +(except by throwing an exception) in an expected fashion is also a death test.
        +
        +Note that if a piece of code throws an exception, we don't consider it "death"
        +for the purpose of death tests, as the caller of the code could catch the exception
        +and avoid the crash. If you want to verify exceptions thrown by your code,
        +see [Exception Assertions](#exception-assertions).
        +
        +If you want to test `EXPECT_*()/ASSERT_*()` failures in your test code, see [Catching Failures](#catching-failures).
        +
        +## How to Write a Death Test ##
        +
        +Google Test has the following macros to support death tests:
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_DEATH(`_statement, regex_`); | `EXPECT_DEATH(`_statement, regex_`); | _statement_ crashes with the given error |
        +| `ASSERT_DEATH_IF_SUPPORTED(`_statement, regex_`); | `EXPECT_DEATH_IF_SUPPORTED(`_statement, regex_`); | if death tests are supported, verifies that _statement_ crashes with the given error; otherwise verifies nothing |
        +| `ASSERT_EXIT(`_statement, predicate, regex_`); | `EXPECT_EXIT(`_statement, predicate, regex_`); |_statement_ exits with the given error and its exit code matches _predicate_ |
        +
        +where _statement_ is a statement that is expected to cause the process to
        +die, _predicate_ is a function or function object that evaluates an integer
        +exit status, and _regex_ is a regular expression that the stderr output of
        +_statement_ is expected to match. Note that _statement_ can be _any valid
        +statement_ (including _compound statement_) and doesn't have to be an
        +expression.
        +
        +As usual, the `ASSERT` variants abort the current test function, while the
        +`EXPECT` variants do not.
        +
        +**Note:** We use the word "crash" here to mean that the process
        +terminates with a _non-zero_ exit status code.  There are two
        +possibilities: either the process has called `exit()` or `_exit()`
        +with a non-zero value, or it may be killed by a signal.
        +
        +This means that if _statement_ terminates the process with a 0 exit
        +code, it is _not_ considered a crash by `EXPECT_DEATH`.  Use
        +`EXPECT_EXIT` instead if this is the case, or if you want to restrict
        +the exit code more precisely.
        +
        +A predicate here must accept an `int` and return a `bool`. The death test
        +succeeds only if the predicate returns `true`. Google Test defines a few
        +predicates that handle the most common cases:
        +
        +```
        +::testing::ExitedWithCode(exit_code)
        +```
        +
        +This expression is `true` if the program exited normally with the given exit
        +code.
        +
        +```
        +::testing::KilledBySignal(signal_number)  // Not available on Windows.
        +```
        +
        +This expression is `true` if the program was killed by the given signal.
        +
        +The `*_DEATH` macros are convenient wrappers for `*_EXIT` that use a predicate
        +that verifies the process' exit code is non-zero.
        +
        +Note that a death test only cares about three things:
        +
        +  1. does _statement_ abort or exit the process?
        +  1. (in the case of `ASSERT_EXIT` and `EXPECT_EXIT`) does the exit status satisfy _predicate_?  Or (in the case of `ASSERT_DEATH` and `EXPECT_DEATH`) is the exit status non-zero?  And
        +  1. does the stderr output match _regex_?
        +
        +In particular, if _statement_ generates an `ASSERT_*` or `EXPECT_*` failure, it will **not** cause the death test to fail, as Google Test assertions don't abort the process.
        +
        +To write a death test, simply use one of the above macros inside your test
        +function. For example,
        +
        +```
        +TEST(MyDeathTest, Foo) {
        +  // This death test uses a compound statement.
        +  ASSERT_DEATH({ int n = 5; Foo(&n); }, "Error on line .* of Foo()");
        +}
        +TEST(MyDeathTest, NormalExit) {
        +  EXPECT_EXIT(NormalExit(), ::testing::ExitedWithCode(0), "Success");
        +}
        +TEST(MyDeathTest, KillMyself) {
        +  EXPECT_EXIT(KillMyself(), ::testing::KilledBySignal(SIGKILL), "Sending myself unblockable signal");
        +}
        +```
        +
        +verifies that:
        +
        +  * calling `Foo(5)` causes the process to die with the given error message,
        +  * calling `NormalExit()` causes the process to print `"Success"` to stderr and exit with exit code 0, and
        +  * calling `KillMyself()` kills the process with signal `SIGKILL`.
        +
        +The test function body may contain other assertions and statements as well, if
        +necessary.
        +
        +_Important:_ We strongly recommend you to follow the convention of naming your
        +test case (not test) `*DeathTest` when it contains a death test, as
        +demonstrated in the above example. The `Death Tests And Threads` section below
        +explains why.
        +
        +If a test fixture class is shared by normal tests and death tests, you
        +can use typedef to introduce an alias for the fixture class and avoid
        +duplicating its code:
        +```
        +class FooTest : public ::testing::Test { ... };
        +
        +typedef FooTest FooDeathTest;
        +
        +TEST_F(FooTest, DoesThis) {
        +  // normal test
        +}
        +
        +TEST_F(FooDeathTest, DoesThat) {
        +  // death test
        +}
        +```
        +
        +_Availability:_ Linux, Windows (requires MSVC 8.0 or above), Cygwin, and Mac (the latter three are supported since v1.3.0).  `(ASSERT|EXPECT)_DEATH_IF_SUPPORTED` are new in v1.4.0.
        +
        +## Regular Expression Syntax ##
        +
        +On POSIX systems (e.g. Linux, Cygwin, and Mac), Google Test uses the
        +[POSIX extended regular expression](http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap09.html#tag_09_04)
        +syntax in death tests. To learn about this syntax, you may want to read this [Wikipedia entry](http://en.wikipedia.org/wiki/Regular_expression#POSIX_Extended_Regular_Expressions).
        +
        +On Windows, Google Test uses its own simple regular expression
        +implementation. It lacks many features you can find in POSIX extended
        +regular expressions.  For example, we don't support union (`"x|y"`),
        +grouping (`"(xy)"`), brackets (`"[xy]"`), and repetition count
        +(`"x{5,7}"`), among others. Below is what we do support (Letter `A` denotes a
        +literal character, period (`.`), or a single `\\` escape sequence; `x`
        +and `y` denote regular expressions.):
        +
        +| `c` | matches any literal character `c` |
        +|:----|:----------------------------------|
        +| `\\d` | matches any decimal digit         |
        +| `\\D` | matches any character that's not a decimal digit |
        +| `\\f` | matches `\f`                      |
        +| `\\n` | matches `\n`                      |
        +| `\\r` | matches `\r`                      |
        +| `\\s` | matches any ASCII whitespace, including `\n` |
        +| `\\S` | matches any character that's not a whitespace |
        +| `\\t` | matches `\t`                      |
        +| `\\v` | matches `\v`                      |
        +| `\\w` | matches any letter, `_`, or decimal digit |
        +| `\\W` | matches any character that `\\w` doesn't match |
        +| `\\c` | matches any literal character `c`, which must be a punctuation |
        +| `\\.` | matches the `.` character         |
        +| `.` | matches any single character except `\n` |
        +| `A?` | matches 0 or 1 occurrences of `A` |
        +| `A*` | matches 0 or many occurrences of `A` |
        +| `A+` | matches 1 or many occurrences of `A` |
        +| `^` | matches the beginning of a string (not that of each line) |
        +| `$` | matches the end of a string (not that of each line) |
        +| `xy` | matches `x` followed by `y`       |
        +
        +To help you determine which capability is available on your system,
        +Google Test defines macro `GTEST_USES_POSIX_RE=1` when it uses POSIX
        +extended regular expressions, or `GTEST_USES_SIMPLE_RE=1` when it uses
        +the simple version.  If you want your death tests to work in both
        +cases, you can either `#if` on these macros or use the more limited
        +syntax only.
        +
        +## How It Works ##
        +
        +Under the hood, `ASSERT_EXIT()` spawns a new process and executes the
        +death test statement in that process. The details of of how precisely
        +that happens depend on the platform and the variable
        +`::testing::GTEST_FLAG(death_test_style)` (which is initialized from the
        +command-line flag `--gtest_death_test_style`).
        +
        +  * On POSIX systems, `fork()` (or `clone()` on Linux) is used to spawn the child, after which:
        +    * If the variable's value is `"fast"`, the death test statement is immediately executed.
        +    * If the variable's value is `"threadsafe"`, the child process re-executes the unit test binary just as it was originally invoked, but with some extra flags to cause just the single death test under consideration to be run.
        +  * On Windows, the child is spawned using the `CreateProcess()` API, and re-executes the binary to cause just the single death test under consideration to be run - much like the `threadsafe` mode on POSIX.
        +
        +Other values for the variable are illegal and will cause the death test to
        +fail. Currently, the flag's default value is `"fast"`. However, we reserve the
        +right to change it in the future. Therefore, your tests should not depend on
        +this.
        +
        +In either case, the parent process waits for the child process to complete, and checks that
        +
        +  1. the child's exit status satisfies the predicate, and
        +  1. the child's stderr matches the regular expression.
        +
        +If the death test statement runs to completion without dying, the child
        +process will nonetheless terminate, and the assertion fails.
        +
        +## Death Tests And Threads ##
        +
        +The reason for the two death test styles has to do with thread safety. Due to
        +well-known problems with forking in the presence of threads, death tests should
        +be run in a single-threaded context. Sometimes, however, it isn't feasible to
        +arrange that kind of environment. For example, statically-initialized modules
        +may start threads before main is ever reached. Once threads have been created,
        +it may be difficult or impossible to clean them up.
        +
        +Google Test has three features intended to raise awareness of threading issues.
        +
        +  1. A warning is emitted if multiple threads are running when a death test is encountered.
        +  1. Test cases with a name ending in "DeathTest" are run before all other tests.
        +  1. It uses `clone()` instead of `fork()` to spawn the child process on Linux (`clone()` is not available on Cygwin and Mac), as `fork()` is more likely to cause the child to hang when the parent process has multiple threads.
        +
        +It's perfectly fine to create threads inside a death test statement; they are
        +executed in a separate process and cannot affect the parent.
        +
        +## Death Test Styles ##
        +
        +The "threadsafe" death test style was introduced in order to help mitigate the
        +risks of testing in a possibly multithreaded environment. It trades increased
        +test execution time (potentially dramatically so) for improved thread safety.
        +We suggest using the faster, default "fast" style unless your test has specific
        +problems with it.
        +
        +You can choose a particular style of death tests by setting the flag
        +programmatically:
        +
        +```
        +::testing::FLAGS_gtest_death_test_style = "threadsafe";
        +```
        +
        +You can do this in `main()` to set the style for all death tests in the
        +binary, or in individual tests. Recall that flags are saved before running each
        +test and restored afterwards, so you need not do that yourself. For example:
        +
        +```
        +TEST(MyDeathTest, TestOne) {
        +  ::testing::FLAGS_gtest_death_test_style = "threadsafe";
        +  // This test is run in the "threadsafe" style:
        +  ASSERT_DEATH(ThisShouldDie(), "");
        +}
        +
        +TEST(MyDeathTest, TestTwo) {
        +  // This test is run in the "fast" style:
        +  ASSERT_DEATH(ThisShouldDie(), "");
        +}
        +
        +int main(int argc, char** argv) {
        +  ::testing::InitGoogleTest(&argc, argv);
        +  ::testing::FLAGS_gtest_death_test_style = "fast";
        +  return RUN_ALL_TESTS();
        +}
        +```
        +
        +## Caveats ##
        +
        +The _statement_ argument of `ASSERT_EXIT()` can be any valid C++ statement.
        +If it leaves the current function via a `return` statement or by throwing an exception,
        +the death test is considered to have failed.  Some Google Test macros may return
        +from the current function (e.g. `ASSERT_TRUE()`), so be sure to avoid them in _statement_.
        +
        +Since _statement_ runs in the child process, any in-memory side effect (e.g.
        +modifying a variable, releasing memory, etc) it causes will _not_ be observable
        +in the parent process. In particular, if you release memory in a death test,
        +your program will fail the heap check as the parent process will never see the
        +memory reclaimed. To solve this problem, you can
        +
        +  1. try not to free memory in a death test;
        +  1. free the memory again in the parent process; or
        +  1. do not use the heap checker in your program.
        +
        +Due to an implementation detail, you cannot place multiple death test
        +assertions on the same line; otherwise, compilation will fail with an unobvious
        +error message.
        +
        +Despite the improved thread safety afforded by the "threadsafe" style of death
        +test, thread problems such as deadlock are still possible in the presence of
        +handlers registered with `pthread_atfork(3)`.
        +
        +# Using Assertions in Sub-routines #
        +
        +## Adding Traces to Assertions ##
        +
        +If a test sub-routine is called from several places, when an assertion
        +inside it fails, it can be hard to tell which invocation of the
        +sub-routine the failure is from.  You can alleviate this problem using
        +extra logging or custom failure messages, but that usually clutters up
        +your tests. A better solution is to use the `SCOPED_TRACE` macro:
        +
        +| `SCOPED_TRACE(`_message_`);` |
        +|:-----------------------------|
        +
        +where _message_ can be anything streamable to `std::ostream`. This
        +macro will cause the current file name, line number, and the given
        +message to be added in every failure message. The effect will be
        +undone when the control leaves the current lexical scope.
        +
        +For example,
        +
        +```
        +10: void Sub1(int n) {
        +11:   EXPECT_EQ(1, Bar(n));
        +12:   EXPECT_EQ(2, Bar(n + 1));
        +13: }
        +14: 
        +15: TEST(FooTest, Bar) {
        +16:   {
        +17:     SCOPED_TRACE("A");  // This trace point will be included in
        +18:                         // every failure in this scope.
        +19:     Sub1(1);
        +20:   }
        +21:   // Now it won't.
        +22:   Sub1(9);
        +23: }
        +```
        +
        +could result in messages like these:
        +
        +```
        +path/to/foo_test.cc:11: Failure
        +Value of: Bar(n)
        +Expected: 1
        +  Actual: 2
        +   Trace:
        +path/to/foo_test.cc:17: A
        +
        +path/to/foo_test.cc:12: Failure
        +Value of: Bar(n + 1)
        +Expected: 2
        +  Actual: 3
        +```
        +
        +Without the trace, it would've been difficult to know which invocation
        +of `Sub1()` the two failures come from respectively. (You could add an
        +extra message to each assertion in `Sub1()` to indicate the value of
        +`n`, but that's tedious.)
        +
        +Some tips on using `SCOPED_TRACE`:
        +
        +  1. With a suitable message, it's often enough to use `SCOPED_TRACE` at the beginning of a sub-routine, instead of at each call site.
        +  1. When calling sub-routines inside a loop, make the loop iterator part of the message in `SCOPED_TRACE` such that you can know which iteration the failure is from.
        +  1. Sometimes the line number of the trace point is enough for identifying the particular invocation of a sub-routine. In this case, you don't have to choose a unique message for `SCOPED_TRACE`. You can simply use `""`.
        +  1. You can use `SCOPED_TRACE` in an inner scope when there is one in the outer scope. In this case, all active trace points will be included in the failure messages, in reverse order they are encountered.
        +  1. The trace dump is clickable in Emacs' compilation buffer - hit return on a line number and you'll be taken to that line in the source file!
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +## Propagating Fatal Failures ##
        +
        +A common pitfall when using `ASSERT_*` and `FAIL*` is not understanding that
        +when they fail they only abort the _current function_, not the entire test. For
        +example, the following test will segfault:
        +```
        +void Subroutine() {
        +  // Generates a fatal failure and aborts the current function.
        +  ASSERT_EQ(1, 2);
        +  // The following won't be executed.
        +  ...
        +}
        +
        +TEST(FooTest, Bar) {
        +  Subroutine();
        +  // The intended behavior is for the fatal failure
        +  // in Subroutine() to abort the entire test.
        +  // The actual behavior: the function goes on after Subroutine() returns.
        +  int* p = NULL;
        +  *p = 3; // Segfault!
        +}
        +```
        +
        +Since we don't use exceptions, it is technically impossible to
        +implement the intended behavior here.  To alleviate this, Google Test
        +provides two solutions.  You could use either the
        +`(ASSERT|EXPECT)_NO_FATAL_FAILURE` assertions or the
        +`HasFatalFailure()` function.  They are described in the following two
        +subsections.
        +
        +### Asserting on Subroutines ###
        +
        +As shown above, if your test calls a subroutine that has an `ASSERT_*`
        +failure in it, the test will continue after the subroutine
        +returns. This may not be what you want.
        +
        +Often people want fatal failures to propagate like exceptions.  For
        +that Google Test offers the following macros:
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_NO_FATAL_FAILURE(`_statement_`);` | `EXPECT_NO_FATAL_FAILURE(`_statement_`);` | _statement_ doesn't generate any new fatal failures in the current thread. |
        +
        +Only failures in the thread that executes the assertion are checked to
        +determine the result of this type of assertions.  If _statement_
        +creates new threads, failures in these threads are ignored.
        +
        +Examples:
        +
        +```
        +ASSERT_NO_FATAL_FAILURE(Foo());
        +
        +int i;
        +EXPECT_NO_FATAL_FAILURE({
        +  i = Bar();
        +});
        +```
        +
        +_Availability:_ Linux, Windows, Mac. Assertions from multiple threads
        +are currently not supported.
        +
        +### Checking for Failures in the Current Test ###
        +
        +`HasFatalFailure()` in the `::testing::Test` class returns `true` if an
        +assertion in the current test has suffered a fatal failure. This
        +allows functions to catch fatal failures in a sub-routine and return
        +early.
        +
        +```
        +class Test {
        + public:
        +  ...
        +  static bool HasFatalFailure();
        +};
        +```
        +
        +The typical usage, which basically simulates the behavior of a thrown
        +exception, is:
        +
        +```
        +TEST(FooTest, Bar) {
        +  Subroutine();
        +  // Aborts if Subroutine() had a fatal failure.
        +  if (HasFatalFailure())
        +    return;
        +  // The following won't be executed.
        +  ...
        +}
        +```
        +
        +If `HasFatalFailure()` is used outside of `TEST()` , `TEST_F()` , or a test
        +fixture, you must add the `::testing::Test::` prefix, as in:
        +
        +```
        +if (::testing::Test::HasFatalFailure())
        +  return;
        +```
        +
        +Similarly, `HasNonfatalFailure()` returns `true` if the current test
        +has at least one non-fatal failure, and `HasFailure()` returns `true`
        +if the current test has at least one failure of either kind.
        +
        +_Availability:_ Linux, Windows, Mac.  `HasNonfatalFailure()` and
        +`HasFailure()` are available since version 1.4.0.
        +
        +# Logging Additional Information #
        +
        +In your test code, you can call `RecordProperty("key", value)` to log
        +additional information, where `value` can be either a string or an `int`. The _last_ value recorded for a key will be emitted to the XML output
        +if you specify one. For example, the test
        +
        +```
        +TEST_F(WidgetUsageTest, MinAndMaxWidgets) {
        +  RecordProperty("MaximumWidgets", ComputeMaxUsage());
        +  RecordProperty("MinimumWidgets", ComputeMinUsage());
        +}
        +```
        +
        +will output XML like this:
        +
        +```
        +...
        +  <testcase name="MinAndMaxWidgets" status="run" time="6" classname="WidgetUsageTest"
        +            MaximumWidgets="12"
        +            MinimumWidgets="9" />
        +...
        +```
        +
        +_Note_:
        +  * `RecordProperty()` is a static member of the `Test` class. Therefore it needs to be prefixed with `::testing::Test::` if used outside of the `TEST` body and the test fixture class.
        +  * `key` must be a valid XML attribute name, and cannot conflict with the ones already used by Google Test (`name`, `status`, `time`, `classname`, `type_param`, and `value_param`).
        +  * Calling `RecordProperty()` outside of the lifespan of a test is allowed. If it's called outside of a test but between a test case's `SetUpTestCase()` and `TearDownTestCase()` methods, it will be attributed to the XML element for the test case. If it's called outside of all test cases (e.g. in a test environment), it will be attributed to the top-level XML element.
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +# Sharing Resources Between Tests in the Same Test Case #
        +
        +
        +
        +Google Test creates a new test fixture object for each test in order to make
        +tests independent and easier to debug. However, sometimes tests use resources
        +that are expensive to set up, making the one-copy-per-test model prohibitively
        +expensive.
        +
        +If the tests don't change the resource, there's no harm in them sharing a
        +single resource copy. So, in addition to per-test set-up/tear-down, Google Test
        +also supports per-test-case set-up/tear-down. To use it:
        +
        +  1. In your test fixture class (say `FooTest` ), define as `static` some member variables to hold the shared resources.
        +  1. In the same test fixture class, define a `static void SetUpTestCase()` function (remember not to spell it as **`SetupTestCase`** with a small `u`!) to set up the shared resources and a `static void TearDownTestCase()` function to tear them down.
        +
        +That's it! Google Test automatically calls `SetUpTestCase()` before running the
        +_first test_ in the `FooTest` test case (i.e. before creating the first
        +`FooTest` object), and calls `TearDownTestCase()` after running the _last test_
        +in it (i.e. after deleting the last `FooTest` object). In between, the tests
        +can use the shared resources.
        +
        +Remember that the test order is undefined, so your code can't depend on a test
        +preceding or following another. Also, the tests must either not modify the
        +state of any shared resource, or, if they do modify the state, they must
        +restore the state to its original value before passing control to the next
        +test.
        +
        +Here's an example of per-test-case set-up and tear-down:
        +```
        +class FooTest : public ::testing::Test {
        + protected:
        +  // Per-test-case set-up.
        +  // Called before the first test in this test case.
        +  // Can be omitted if not needed.
        +  static void SetUpTestCase() {
        +    shared_resource_ = new ...;
        +  }
        +
        +  // Per-test-case tear-down.
        +  // Called after the last test in this test case.
        +  // Can be omitted if not needed.
        +  static void TearDownTestCase() {
        +    delete shared_resource_;
        +    shared_resource_ = NULL;
        +  }
        +
        +  // You can define per-test set-up and tear-down logic as usual.
        +  virtual void SetUp() { ... }
        +  virtual void TearDown() { ... }
        +
        +  // Some expensive resource shared by all tests.
        +  static T* shared_resource_;
        +};
        +
        +T* FooTest::shared_resource_ = NULL;
        +
        +TEST_F(FooTest, Test1) {
        +  ... you can refer to shared_resource here ...
        +}
        +TEST_F(FooTest, Test2) {
        +  ... you can refer to shared_resource here ...
        +}
        +```
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +# Global Set-Up and Tear-Down #
        +
        +Just as you can do set-up and tear-down at the test level and the test case
        +level, you can also do it at the test program level. Here's how.
        +
        +First, you subclass the `::testing::Environment` class to define a test
        +environment, which knows how to set-up and tear-down:
        +
        +```
        +class Environment {
        + public:
        +  virtual ~Environment() {}
        +  // Override this to define how to set up the environment.
        +  virtual void SetUp() {}
        +  // Override this to define how to tear down the environment.
        +  virtual void TearDown() {}
        +};
        +```
        +
        +Then, you register an instance of your environment class with Google Test by
        +calling the `::testing::AddGlobalTestEnvironment()` function:
        +
        +```
        +Environment* AddGlobalTestEnvironment(Environment* env);
        +```
        +
        +Now, when `RUN_ALL_TESTS()` is called, it first calls the `SetUp()` method of
        +the environment object, then runs the tests if there was no fatal failures, and
        +finally calls `TearDown()` of the environment object.
        +
        +It's OK to register multiple environment objects. In this case, their `SetUp()`
        +will be called in the order they are registered, and their `TearDown()` will be
        +called in the reverse order.
        +
        +Note that Google Test takes ownership of the registered environment objects.
        +Therefore **do not delete them** by yourself.
        +
        +You should call `AddGlobalTestEnvironment()` before `RUN_ALL_TESTS()` is
        +called, probably in `main()`. If you use `gtest_main`, you need to      call
        +this before `main()` starts for it to take effect. One way to do this is to
        +define a global variable like this:
        +
        +```
        +::testing::Environment* const foo_env = ::testing::AddGlobalTestEnvironment(new FooEnvironment);
        +```
        +
        +However, we strongly recommend you to write your own `main()` and call
        +`AddGlobalTestEnvironment()` there, as relying on initialization of global
        +variables makes the code harder to read and may cause problems when you
        +register multiple environments from different translation units and the
        +environments have dependencies among them (remember that the compiler doesn't
        +guarantee the order in which global variables from different translation units
        +are initialized).
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +
        +# Value Parameterized Tests #
        +
        +_Value-parameterized tests_ allow you to test your code with different
        +parameters without writing multiple copies of the same test.
        +
        +Suppose you write a test for your code and then realize that your code is affected by a presence of a Boolean command line flag.
        +
        +```
        +TEST(MyCodeTest, TestFoo) {
        +  // A code to test foo().
        +}
        +```
        +
        +Usually people factor their test code into a function with a Boolean parameter in such situations. The function sets the flag, then executes the testing code.
        +
        +```
        +void TestFooHelper(bool flag_value) {
        +  flag = flag_value;
        +  // A code to test foo().
        +}
        +
        +TEST(MyCodeTest, TestFoo) {
        +  TestFooHelper(false);
        +  TestFooHelper(true);
        +}
        +```
        +
        +But this setup has serious drawbacks. First, when a test assertion fails in your tests, it becomes unclear what value of the parameter caused it to fail. You can stream a clarifying message into your `EXPECT`/`ASSERT` statements, but it you'll have to do it with all of them. Second, you have to add one such helper function per test. What if you have ten tests? Twenty? A hundred?
        +
        +Value-parameterized tests will let you write your test only once and then easily instantiate and run it with an arbitrary number of parameter values.
        +
        +Here are some other situations when value-parameterized tests come handy:
        +
        +  * You want to test different implementations of an OO interface.
        +  * You want to test your code over various inputs (a.k.a. data-driven testing). This feature is easy to abuse, so please exercise your good sense when doing it!
        +
        +## How to Write Value-Parameterized Tests ##
        +
        +To write value-parameterized tests, first you should define a fixture
        +class.  It must be derived from both `::testing::Test` and
        +`::testing::WithParamInterface<T>` (the latter is a pure interface),
        +where `T` is the type of your parameter values.  For convenience, you
        +can just derive the fixture class from `::testing::TestWithParam<T>`,
        +which itself is derived from both `::testing::Test` and
        +`::testing::WithParamInterface<T>`. `T` can be any copyable type. If
        +it's a raw pointer, you are responsible for managing the lifespan of
        +the pointed values.
        +
        +```
        +class FooTest : public ::testing::TestWithParam<const char*> {
        +  // You can implement all the usual fixture class members here.
        +  // To access the test parameter, call GetParam() from class
        +  // TestWithParam<T>.
        +};
        +
        +// Or, when you want to add parameters to a pre-existing fixture class:
        +class BaseTest : public ::testing::Test {
        +  ...
        +};
        +class BarTest : public BaseTest,
        +                public ::testing::WithParamInterface<const char*> {
        +  ...
        +};
        +```
        +
        +Then, use the `TEST_P` macro to define as many test patterns using
        +this fixture as you want.  The `_P` suffix is for "parameterized" or
        +"pattern", whichever you prefer to think.
        +
        +```
        +TEST_P(FooTest, DoesBlah) {
        +  // Inside a test, access the test parameter with the GetParam() method
        +  // of the TestWithParam<T> class:
        +  EXPECT_TRUE(foo.Blah(GetParam()));
        +  ...
        +}
        +
        +TEST_P(FooTest, HasBlahBlah) {
        +  ...
        +}
        +```
        +
        +Finally, you can use `INSTANTIATE_TEST_CASE_P` to instantiate the test
        +case with any set of parameters you want. Google Test defines a number of
        +functions for generating test parameters. They return what we call
        +(surprise!) _parameter generators_. Here is a summary of them,
        +which are all in the `testing` namespace:
        +
        +| `Range(begin, end[, step])` | Yields values `{begin, begin+step, begin+step+step, ...}`. The values do not include `end`. `step` defaults to 1. |
        +|:----------------------------|:------------------------------------------------------------------------------------------------------------------|
        +| `Values(v1, v2, ..., vN)`   | Yields values `{v1, v2, ..., vN}`.                                                                                |
        +| `ValuesIn(container)` and `ValuesIn(begin, end)` | Yields values from a C-style array, an STL-style container, or an iterator range `[begin, end)`. `container`, `begin`, and `end` can be expressions whose values are determined at run time.  |
        +| `Bool()`                    | Yields sequence `{false, true}`.                                                                                  |
        +| `Combine(g1, g2, ..., gN)`  | Yields all combinations (the Cartesian product for the math savvy) of the values generated by the `N` generators. This is only available if your system provides the `<tr1/tuple>` header. If you are sure your system does, and Google Test disagrees, you can override it by defining `GTEST_HAS_TR1_TUPLE=1`. See comments in [include/gtest/internal/gtest-port.h](https://github.com/google/googletest/blob/master/googletest/include/gtest/internal/gtest-port.h) for more information. |
        +
        +For more details, see the comments at the definitions of these functions in the [source code](https://github.com/google/googletest/blob/master/googletest/include/gtest/gtest-param-test.h).
        +
        +The following statement will instantiate tests from the `FooTest` test case
        +each with parameter values `"meeny"`, `"miny"`, and `"moe"`.
        +
        +```
        +INSTANTIATE_TEST_CASE_P(InstantiationName,
        +                        FooTest,
        +                        ::testing::Values("meeny", "miny", "moe"));
        +```
        +
        +To distinguish different instances of the pattern (yes, you can
        +instantiate it more than once), the first argument to
        +`INSTANTIATE_TEST_CASE_P` is a prefix that will be added to the actual
        +test case name. Remember to pick unique prefixes for different
        +instantiations. The tests from the instantiation above will have these
        +names:
        +
        +  * `InstantiationName/FooTest.DoesBlah/0` for `"meeny"`
        +  * `InstantiationName/FooTest.DoesBlah/1` for `"miny"`
        +  * `InstantiationName/FooTest.DoesBlah/2` for `"moe"`
        +  * `InstantiationName/FooTest.HasBlahBlah/0` for `"meeny"`
        +  * `InstantiationName/FooTest.HasBlahBlah/1` for `"miny"`
        +  * `InstantiationName/FooTest.HasBlahBlah/2` for `"moe"`
        +
        +You can use these names in [--gtest\_filter](#running-a-subset-of-the-tests).
        +
        +This statement will instantiate all tests from `FooTest` again, each
        +with parameter values `"cat"` and `"dog"`:
        +
        +```
        +const char* pets[] = {"cat", "dog"};
        +INSTANTIATE_TEST_CASE_P(AnotherInstantiationName, FooTest,
        +                        ::testing::ValuesIn(pets));
        +```
        +
        +The tests from the instantiation above will have these names:
        +
        +  * `AnotherInstantiationName/FooTest.DoesBlah/0` for `"cat"`
        +  * `AnotherInstantiationName/FooTest.DoesBlah/1` for `"dog"`
        +  * `AnotherInstantiationName/FooTest.HasBlahBlah/0` for `"cat"`
        +  * `AnotherInstantiationName/FooTest.HasBlahBlah/1` for `"dog"`
        +
        +Please note that `INSTANTIATE_TEST_CASE_P` will instantiate _all_
        +tests in the given test case, whether their definitions come before or
        +_after_ the `INSTANTIATE_TEST_CASE_P` statement.
        +
        +You can see
        +[these](https://github.com/google/googletest/blob/master/googletest/samples/sample7_unittest.cc)
        +[files](https://github.com/google/googletest/blob/master/googletest/samples/sample8_unittest.cc) for more examples.
        +
        +_Availability_: Linux, Windows (requires MSVC 8.0 or above), Mac; since version 1.2.0.
        +
        +## Creating Value-Parameterized Abstract Tests ##
        +
        +In the above, we define and instantiate `FooTest` in the same source
        +file. Sometimes you may want to define value-parameterized tests in a
        +library and let other people instantiate them later. This pattern is
        +known as <i>abstract tests</i>. As an example of its application, when you
        +are designing an interface you can write a standard suite of abstract
        +tests (perhaps using a factory function as the test parameter) that
        +all implementations of the interface are expected to pass. When
        +someone implements the interface, he can instantiate your suite to get
        +all the interface-conformance tests for free.
        +
        +To define abstract tests, you should organize your code like this:
        +
        +  1. Put the definition of the parameterized test fixture class (e.g. `FooTest`) in a header file, say `foo_param_test.h`. Think of this as _declaring_ your abstract tests.
        +  1. Put the `TEST_P` definitions in `foo_param_test.cc`, which includes `foo_param_test.h`. Think of this as _implementing_ your abstract tests.
        +
        +Once they are defined, you can instantiate them by including
        +`foo_param_test.h`, invoking `INSTANTIATE_TEST_CASE_P()`, and linking
        +with `foo_param_test.cc`. You can instantiate the same abstract test
        +case multiple times, possibly in different source files.
        +
        +# Typed Tests #
        +
        +Suppose you have multiple implementations of the same interface and
        +want to make sure that all of them satisfy some common requirements.
        +Or, you may have defined several types that are supposed to conform to
        +the same "concept" and you want to verify it.  In both cases, you want
        +the same test logic repeated for different types.
        +
        +While you can write one `TEST` or `TEST_F` for each type you want to
        +test (and you may even factor the test logic into a function template
        +that you invoke from the `TEST`), it's tedious and doesn't scale:
        +if you want _m_ tests over _n_ types, you'll end up writing _m\*n_
        +`TEST`s.
        +
        +_Typed tests_ allow you to repeat the same test logic over a list of
        +types.  You only need to write the test logic once, although you must
        +know the type list when writing typed tests.  Here's how you do it:
        +
        +First, define a fixture class template.  It should be parameterized
        +by a type.  Remember to derive it from `::testing::Test`:
        +
        +```
        +template <typename T>
        +class FooTest : public ::testing::Test {
        + public:
        +  ...
        +  typedef std::list<T> List;
        +  static T shared_;
        +  T value_;
        +};
        +```
        +
        +Next, associate a list of types with the test case, which will be
        +repeated for each type in the list:
        +
        +```
        +typedef ::testing::Types<char, int, unsigned int> MyTypes;
        +TYPED_TEST_CASE(FooTest, MyTypes);
        +```
        +
        +The `typedef` is necessary for the `TYPED_TEST_CASE` macro to parse
        +correctly.  Otherwise the compiler will think that each comma in the
        +type list introduces a new macro argument.
        +
        +Then, use `TYPED_TEST()` instead of `TEST_F()` to define a typed test
        +for this test case.  You can repeat this as many times as you want:
        +
        +```
        +TYPED_TEST(FooTest, DoesBlah) {
        +  // Inside a test, refer to the special name TypeParam to get the type
        +  // parameter.  Since we are inside a derived class template, C++ requires
        +  // us to visit the members of FooTest via 'this'.
        +  TypeParam n = this->value_;
        +
        +  // To visit static members of the fixture, add the 'TestFixture::'
        +  // prefix.
        +  n += TestFixture::shared_;
        +
        +  // To refer to typedefs in the fixture, add the 'typename TestFixture::'
        +  // prefix.  The 'typename' is required to satisfy the compiler.
        +  typename TestFixture::List values;
        +  values.push_back(n);
        +  ...
        +}
        +
        +TYPED_TEST(FooTest, HasPropertyA) { ... }
        +```
        +
        +You can see `samples/sample6_unittest.cc` for a complete example.
        +
        +_Availability:_ Linux, Windows (requires MSVC 8.0 or above), Mac;
        +since version 1.1.0.
        +
        +# Type-Parameterized Tests #
        +
        +_Type-parameterized tests_ are like typed tests, except that they
        +don't require you to know the list of types ahead of time.  Instead,
        +you can define the test logic first and instantiate it with different
        +type lists later.  You can even instantiate it more than once in the
        +same program.
        +
        +If you are designing an interface or concept, you can define a suite
        +of type-parameterized tests to verify properties that any valid
        +implementation of the interface/concept should have.  Then, the author
        +of each implementation can just instantiate the test suite with his
        +type to verify that it conforms to the requirements, without having to
        +write similar tests repeatedly.  Here's an example:
        +
        +First, define a fixture class template, as we did with typed tests:
        +
        +```
        +template <typename T>
        +class FooTest : public ::testing::Test {
        +  ...
        +};
        +```
        +
        +Next, declare that you will define a type-parameterized test case:
        +
        +```
        +TYPED_TEST_CASE_P(FooTest);
        +```
        +
        +The `_P` suffix is for "parameterized" or "pattern", whichever you
        +prefer to think.
        +
        +Then, use `TYPED_TEST_P()` to define a type-parameterized test.  You
        +can repeat this as many times as you want:
        +
        +```
        +TYPED_TEST_P(FooTest, DoesBlah) {
        +  // Inside a test, refer to TypeParam to get the type parameter.
        +  TypeParam n = 0;
        +  ...
        +}
        +
        +TYPED_TEST_P(FooTest, HasPropertyA) { ... }
        +```
        +
        +Now the tricky part: you need to register all test patterns using the
        +`REGISTER_TYPED_TEST_CASE_P` macro before you can instantiate them.
        +The first argument of the macro is the test case name; the rest are
        +the names of the tests in this test case:
        +
        +```
        +REGISTER_TYPED_TEST_CASE_P(FooTest,
        +                           DoesBlah, HasPropertyA);
        +```
        +
        +Finally, you are free to instantiate the pattern with the types you
        +want.  If you put the above code in a header file, you can `#include`
        +it in multiple C++ source files and instantiate it multiple times.
        +
        +```
        +typedef ::testing::Types<char, int, unsigned int> MyTypes;
        +INSTANTIATE_TYPED_TEST_CASE_P(My, FooTest, MyTypes);
        +```
        +
        +To distinguish different instances of the pattern, the first argument
        +to the `INSTANTIATE_TYPED_TEST_CASE_P` macro is a prefix that will be
        +added to the actual test case name.  Remember to pick unique prefixes
        +for different instances.
        +
        +In the special case where the type list contains only one type, you
        +can write that type directly without `::testing::Types<...>`, like this:
        +
        +```
        +INSTANTIATE_TYPED_TEST_CASE_P(My, FooTest, int);
        +```
        +
        +You can see `samples/sample6_unittest.cc` for a complete example.
        +
        +_Availability:_ Linux, Windows (requires MSVC 8.0 or above), Mac;
        +since version 1.1.0.
        +
        +# Testing Private Code #
        +
        +If you change your software's internal implementation, your tests should not
        +break as long as the change is not observable by users. Therefore, per the
        +_black-box testing principle_, most of the time you should test your code
        +through its public interfaces.
        +
        +If you still find yourself needing to test internal implementation code,
        +consider if there's a better design that wouldn't require you to do so. If you
        +absolutely have to test non-public interface code though, you can. There are
        +two cases to consider:
        +
        +  * Static functions (_not_ the same as static member functions!) or unnamed namespaces, and
        +  * Private or protected class members
        +
        +## Static Functions ##
        +
        +Both static functions and definitions/declarations in an unnamed namespace are
        +only visible within the same translation unit. To test them, you can `#include`
        +the entire `.cc` file being tested in your `*_test.cc` file. (#including `.cc`
        +files is not a good way to reuse code - you should not do this in production
        +code!)
        +
        +However, a better approach is to move the private code into the
        +`foo::internal` namespace, where `foo` is the namespace your project normally
        +uses, and put the private declarations in a `*-internal.h` file. Your
        +production `.cc` files and your tests are allowed to include this internal
        +header, but your clients are not. This way, you can fully test your internal
        +implementation without leaking it to your clients.
        +
        +## Private Class Members ##
        +
        +Private class members are only accessible from within the class or by friends.
        +To access a class' private members, you can declare your test fixture as a
        +friend to the class and define accessors in your fixture. Tests using the
        +fixture can then access the private members of your production class via the
        +accessors in the fixture. Note that even though your fixture is a friend to
        +your production class, your tests are not automatically friends to it, as they
        +are technically defined in sub-classes of the fixture.
        +
        +Another way to test private members is to refactor them into an implementation
        +class, which is then declared in a `*-internal.h` file. Your clients aren't
        +allowed to include this header but your tests can. Such is called the Pimpl
        +(Private Implementation) idiom.
        +
        +Or, you can declare an individual test as a friend of your class by adding this
        +line in the class body:
        +
        +```
        +FRIEND_TEST(TestCaseName, TestName);
        +```
        +
        +For example,
        +```
        +// foo.h
        +#include "gtest/gtest_prod.h"
        +
        +// Defines FRIEND_TEST.
        +class Foo {
        +  ...
        + private:
        +  FRIEND_TEST(FooTest, BarReturnsZeroOnNull);
        +  int Bar(void* x);
        +};
        +
        +// foo_test.cc
        +...
        +TEST(FooTest, BarReturnsZeroOnNull) {
        +  Foo foo;
        +  EXPECT_EQ(0, foo.Bar(NULL));
        +  // Uses Foo's private member Bar().
        +}
        +```
        +
        +Pay special attention when your class is defined in a namespace, as you should
        +define your test fixtures and tests in the same namespace if you want them to
        +be friends of your class. For example, if the code to be tested looks like:
        +
        +```
        +namespace my_namespace {
        +
        +class Foo {
        +  friend class FooTest;
        +  FRIEND_TEST(FooTest, Bar);
        +  FRIEND_TEST(FooTest, Baz);
        +  ...
        +  definition of the class Foo
        +  ...
        +};
        +
        +}  // namespace my_namespace
        +```
        +
        +Your test code should be something like:
        +
        +```
        +namespace my_namespace {
        +class FooTest : public ::testing::Test {
        + protected:
        +  ...
        +};
        +
        +TEST_F(FooTest, Bar) { ... }
        +TEST_F(FooTest, Baz) { ... }
        +
        +}  // namespace my_namespace
        +```
        +
        +# Catching Failures #
        +
        +If you are building a testing utility on top of Google Test, you'll
        +want to test your utility.  What framework would you use to test it?
        +Google Test, of course.
        +
        +The challenge is to verify that your testing utility reports failures
        +correctly.  In frameworks that report a failure by throwing an
        +exception, you could catch the exception and assert on it.  But Google
        +Test doesn't use exceptions, so how do we test that a piece of code
        +generates an expected failure?
        +
        +`"gtest/gtest-spi.h"` contains some constructs to do this.  After
        +#including this header, you can use
        +
        +| `EXPECT_FATAL_FAILURE(`_statement, substring_`);` |
        +|:--------------------------------------------------|
        +
        +to assert that _statement_ generates a fatal (e.g. `ASSERT_*`) failure
        +whose message contains the given _substring_, or use
        +
        +| `EXPECT_NONFATAL_FAILURE(`_statement, substring_`);` |
        +|:-----------------------------------------------------|
        +
        +if you are expecting a non-fatal (e.g. `EXPECT_*`) failure.
        +
        +For technical reasons, there are some caveats:
        +
        +  1. You cannot stream a failure message to either macro.
        +  1. _statement_ in `EXPECT_FATAL_FAILURE()` cannot reference local non-static variables or non-static members of `this` object.
        +  1. _statement_ in `EXPECT_FATAL_FAILURE()` cannot return a value.
        +
        +_Note:_ Google Test is designed with threads in mind.  Once the
        +synchronization primitives in `"gtest/internal/gtest-port.h"` have
        +been implemented, Google Test will become thread-safe, meaning that
        +you can then use assertions in multiple threads concurrently.  Before
        +
        +that, however, Google Test only supports single-threaded usage.  Once
        +thread-safe, `EXPECT_FATAL_FAILURE()` and `EXPECT_NONFATAL_FAILURE()`
        +will capture failures in the current thread only. If _statement_
        +creates new threads, failures in these threads will be ignored.  If
        +you want to capture failures from all threads instead, you should use
        +the following macros:
        +
        +| `EXPECT_FATAL_FAILURE_ON_ALL_THREADS(`_statement, substring_`);` |
        +|:-----------------------------------------------------------------|
        +| `EXPECT_NONFATAL_FAILURE_ON_ALL_THREADS(`_statement, substring_`);` |
        +
        +# Getting the Current Test's Name #
        +
        +Sometimes a function may need to know the name of the currently running test.
        +For example, you may be using the `SetUp()` method of your test fixture to set
        +the golden file name based on which test is running. The `::testing::TestInfo`
        +class has this information:
        +
        +```
        +namespace testing {
        +
        +class TestInfo {
        + public:
        +  // Returns the test case name and the test name, respectively.
        +  //
        +  // Do NOT delete or free the return value - it's managed by the
        +  // TestInfo class.
        +  const char* test_case_name() const;
        +  const char* name() const;
        +};
        +
        +}  // namespace testing
        +```
        +
        +
        +> To obtain a `TestInfo` object for the currently running test, call
        +`current_test_info()` on the `UnitTest` singleton object:
        +
        +```
        +// Gets information about the currently running test.
        +// Do NOT delete the returned object - it's managed by the UnitTest class.
        +const ::testing::TestInfo* const test_info =
        +  ::testing::UnitTest::GetInstance()->current_test_info();
        +printf("We are in test %s of test case %s.\n",
        +       test_info->name(), test_info->test_case_name());
        +```
        +
        +`current_test_info()` returns a null pointer if no test is running. In
        +particular, you cannot find the test case name in `TestCaseSetUp()`,
        +`TestCaseTearDown()` (where you know the test case name implicitly), or
        +functions called from them.
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +# Extending Google Test by Handling Test Events #
        +
        +Google Test provides an <b>event listener API</b> to let you receive
        +notifications about the progress of a test program and test
        +failures. The events you can listen to include the start and end of
        +the test program, a test case, or a test method, among others. You may
        +use this API to augment or replace the standard console output,
        +replace the XML output, or provide a completely different form of
        +output, such as a GUI or a database. You can also use test events as
        +checkpoints to implement a resource leak checker, for example.
        +
        +_Availability:_ Linux, Windows, Mac; since v1.4.0.
        +
        +## Defining Event Listeners ##
        +
        +To define a event listener, you subclass either
        +[testing::TestEventListener](https://github.com/google/googletest/blob/master/googletest/include/gtest/gtest.h#L991)
        +or [testing::EmptyTestEventListener](https://github.com/google/googletest/blob/master/googletest/include/gtest/gtest.h#L1044).
        +The former is an (abstract) interface, where <i>each pure virtual method<br>
        +can be overridden to handle a test event</i> (For example, when a test
        +starts, the `OnTestStart()` method will be called.). The latter provides
        +an empty implementation of all methods in the interface, such that a
        +subclass only needs to override the methods it cares about.
        +
        +When an event is fired, its context is passed to the handler function
        +as an argument. The following argument types are used:
        +  * [UnitTest](https://github.com/google/googletest/blob/master/googletest/include/gtest/gtest.h#L1151) reflects the state of the entire test program,
        +  * [TestCase](https://github.com/google/googletest/blob/master/googletest/include/gtest/gtest.h#L778) has information about a test case, which can contain one or more tests,
        +  * [TestInfo](https://github.com/google/googletest/blob/master/googletest/include/gtest/gtest.h#L644) contains the state of a test, and
        +  * [TestPartResult](https://github.com/google/googletest/blob/master/googletest/include/gtest/gtest-test-part.h#L47) represents the result of a test assertion.
        +
        +An event handler function can examine the argument it receives to find
        +out interesting information about the event and the test program's
        +state.  Here's an example:
        +
        +```
        +  class MinimalistPrinter : public ::testing::EmptyTestEventListener {
        +    // Called before a test starts.
        +    virtual void OnTestStart(const ::testing::TestInfo& test_info) {
        +      printf("*** Test %s.%s starting.\n",
        +             test_info.test_case_name(), test_info.name());
        +    }
        +
        +    // Called after a failed assertion or a SUCCEED() invocation.
        +    virtual void OnTestPartResult(
        +        const ::testing::TestPartResult& test_part_result) {
        +      printf("%s in %s:%d\n%s\n",
        +             test_part_result.failed() ? "*** Failure" : "Success",
        +             test_part_result.file_name(),
        +             test_part_result.line_number(),
        +             test_part_result.summary());
        +    }
        +
        +    // Called after a test ends.
        +    virtual void OnTestEnd(const ::testing::TestInfo& test_info) {
        +      printf("*** Test %s.%s ending.\n",
        +             test_info.test_case_name(), test_info.name());
        +    }
        +  };
        +```
        +
        +## Using Event Listeners ##
        +
        +To use the event listener you have defined, add an instance of it to
        +the Google Test event listener list (represented by class
        +[TestEventListeners](https://github.com/google/googletest/blob/master/googletest/include/gtest/gtest.h#L1064)
        +- note the "s" at the end of the name) in your
        +`main()` function, before calling `RUN_ALL_TESTS()`:
        +```
        +int main(int argc, char** argv) {
        +  ::testing::InitGoogleTest(&argc, argv);
        +  // Gets hold of the event listener list.
        +  ::testing::TestEventListeners& listeners =
        +      ::testing::UnitTest::GetInstance()->listeners();
        +  // Adds a listener to the end.  Google Test takes the ownership.
        +  listeners.Append(new MinimalistPrinter);
        +  return RUN_ALL_TESTS();
        +}
        +```
        +
        +There's only one problem: the default test result printer is still in
        +effect, so its output will mingle with the output from your minimalist
        +printer. To suppress the default printer, just release it from the
        +event listener list and delete it. You can do so by adding one line:
        +```
        +  ...
        +  delete listeners.Release(listeners.default_result_printer());
        +  listeners.Append(new MinimalistPrinter);
        +  return RUN_ALL_TESTS();
        +```
        +
        +Now, sit back and enjoy a completely different output from your
        +tests. For more details, you can read this
        +[sample](https://github.com/google/googletest/blob/master/googletest/samples/sample9_unittest.cc).
        +
        +You may append more than one listener to the list. When an `On*Start()`
        +or `OnTestPartResult()` event is fired, the listeners will receive it in
        +the order they appear in the list (since new listeners are added to
        +the end of the list, the default text printer and the default XML
        +generator will receive the event first). An `On*End()` event will be
        +received by the listeners in the _reverse_ order. This allows output by
        +listeners added later to be framed by output from listeners added
        +earlier.
        +
        +## Generating Failures in Listeners ##
        +
        +You may use failure-raising macros (`EXPECT_*()`, `ASSERT_*()`,
        +`FAIL()`, etc) when processing an event. There are some restrictions:
        +
        +  1. You cannot generate any failure in `OnTestPartResult()` (otherwise it will cause `OnTestPartResult()` to be called recursively).
        +  1. A listener that handles `OnTestPartResult()` is not allowed to generate any failure.
        +
        +When you add listeners to the listener list, you should put listeners
        +that handle `OnTestPartResult()` _before_ listeners that can generate
        +failures. This ensures that failures generated by the latter are
        +attributed to the right test by the former.
        +
        +We have a sample of failure-raising listener
        +[here](https://github.com/google/googletest/blob/master/googletest/samples/sample10_unittest.cc).
        +
        +# Running Test Programs: Advanced Options #
        +
        +Google Test test programs are ordinary executables. Once built, you can run
        +them directly and affect their behavior via the following environment variables
        +and/or command line flags. For the flags to work, your programs must call
        +`::testing::InitGoogleTest()` before calling `RUN_ALL_TESTS()`.
        +
        +To see a list of supported flags and their usage, please run your test
        +program with the `--help` flag.  You can also use `-h`, `-?`, or `/?`
        +for short.  This feature is added in version 1.3.0.
        +
        +If an option is specified both by an environment variable and by a
        +flag, the latter takes precedence.  Most of the options can also be
        +set/read in code: to access the value of command line flag
        +`--gtest_foo`, write `::testing::GTEST_FLAG(foo)`.  A common pattern is
        +to set the value of a flag before calling `::testing::InitGoogleTest()`
        +to change the default value of the flag:
        +```
        +int main(int argc, char** argv) {
        +  // Disables elapsed time by default.
        +  ::testing::GTEST_FLAG(print_time) = false;
        +
        +  // This allows the user to override the flag on the command line.
        +  ::testing::InitGoogleTest(&argc, argv);
        +
        +  return RUN_ALL_TESTS();
        +}
        +```
        +
        +## Selecting Tests ##
        +
        +This section shows various options for choosing which tests to run.
        +
        +### Listing Test Names ###
        +
        +Sometimes it is necessary to list the available tests in a program before
        +running them so that a filter may be applied if needed. Including the flag
        +`--gtest_list_tests` overrides all other flags and lists tests in the following
        +format:
        +```
        +TestCase1.
        +  TestName1
        +  TestName2
        +TestCase2.
        +  TestName
        +```
        +
        +None of the tests listed are actually run if the flag is provided. There is no
        +corresponding environment variable for this flag.
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +### Running a Subset of the Tests ###
        +
        +By default, a Google Test program runs all tests the user has defined.
        +Sometimes, you want to run only a subset of the tests (e.g. for debugging or
        +quickly verifying a change). If you set the `GTEST_FILTER` environment variable
        +or the `--gtest_filter` flag to a filter string, Google Test will only run the
        +tests whose full names (in the form of `TestCaseName.TestName`) match the
        +filter.
        +
        +The format of a filter is a '`:`'-separated list of wildcard patterns (called
        +the positive patterns) optionally followed by a '`-`' and another
        +'`:`'-separated pattern list (called the negative patterns). A test matches the
        +filter if and only if it matches any of the positive patterns but does not
        +match any of the negative patterns.
        +
        +A pattern may contain `'*'` (matches any string) or `'?'` (matches any single
        +character). For convenience, the filter `'*-NegativePatterns'` can be also
        +written as `'-NegativePatterns'`.
        +
        +For example:
        +
        +  * `./foo_test` Has no flag, and thus runs all its tests.
        +  * `./foo_test --gtest_filter=*` Also runs everything, due to the single match-everything `*` value.
        +  * `./foo_test --gtest_filter=FooTest.*` Runs everything in test case `FooTest`.
        +  * `./foo_test --gtest_filter=*Null*:*Constructor*` Runs any test whose full name contains either `"Null"` or `"Constructor"`.
        +  * `./foo_test --gtest_filter=-*DeathTest.*` Runs all non-death tests.
        +  * `./foo_test --gtest_filter=FooTest.*-FooTest.Bar` Runs everything in test case `FooTest` except `FooTest.Bar`.
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +### Temporarily Disabling Tests ###
        +
        +If you have a broken test that you cannot fix right away, you can add the
        +`DISABLED_` prefix to its name. This will exclude it from execution. This is
        +better than commenting out the code or using `#if 0`, as disabled tests are
        +still compiled (and thus won't rot).
        +
        +If you need to disable all tests in a test case, you can either add `DISABLED_`
        +to the front of the name of each test, or alternatively add it to the front of
        +the test case name.
        +
        +For example, the following tests won't be run by Google Test, even though they
        +will still be compiled:
        +
        +```
        +// Tests that Foo does Abc.
        +TEST(FooTest, DISABLED_DoesAbc) { ... }
        +
        +class DISABLED_BarTest : public ::testing::Test { ... };
        +
        +// Tests that Bar does Xyz.
        +TEST_F(DISABLED_BarTest, DoesXyz) { ... }
        +```
        +
        +_Note:_ This feature should only be used for temporary pain-relief. You still
        +have to fix the disabled tests at a later date. As a reminder, Google Test will
        +print a banner warning you if a test program contains any disabled tests.
        +
        +_Tip:_ You can easily count the number of disabled tests you have
        +using `grep`. This number can be used as a metric for improving your
        +test quality.
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +### Temporarily Enabling Disabled Tests ###
        +
        +To include [disabled tests](#temporarily-disabling-tests) in test
        +execution, just invoke the test program with the
        +`--gtest_also_run_disabled_tests` flag or set the
        +`GTEST_ALSO_RUN_DISABLED_TESTS` environment variable to a value other
        +than `0`.  You can combine this with the
        +[--gtest\_filter](#running-a-subset-of-the-tests) flag to further select
        +which disabled tests to run.
        +
        +_Availability:_ Linux, Windows, Mac; since version 1.3.0.
        +
        +## Repeating the Tests ##
        +
        +Once in a while you'll run into a test whose result is hit-or-miss. Perhaps it
        +will fail only 1% of the time, making it rather hard to reproduce the bug under
        +a debugger. This can be a major source of frustration.
        +
        +The `--gtest_repeat` flag allows you to repeat all (or selected) test methods
        +in a program many times. Hopefully, a flaky test will eventually fail and give
        +you a chance to debug. Here's how to use it:
        +
        +| `$ foo_test --gtest_repeat=1000` | Repeat foo\_test 1000 times and don't stop at failures. |
        +|:---------------------------------|:--------------------------------------------------------|
        +| `$ foo_test --gtest_repeat=-1`   | A negative count means repeating forever.               |
        +| `$ foo_test --gtest_repeat=1000 --gtest_break_on_failure` | Repeat foo\_test 1000 times, stopping at the first failure. This is especially useful when running under a debugger: when the testfails, it will drop into the debugger and you can then inspect variables and stacks. |
        +| `$ foo_test --gtest_repeat=1000 --gtest_filter=FooBar` | Repeat the tests whose name matches the filter 1000 times. |
        +
        +If your test program contains global set-up/tear-down code registered
        +using `AddGlobalTestEnvironment()`, it will be repeated in each
        +iteration as well, as the flakiness may be in it. You can also specify
        +the repeat count by setting the `GTEST_REPEAT` environment variable.
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +## Shuffling the Tests ##
        +
        +You can specify the `--gtest_shuffle` flag (or set the `GTEST_SHUFFLE`
        +environment variable to `1`) to run the tests in a program in a random
        +order. This helps to reveal bad dependencies between tests.
        +
        +By default, Google Test uses a random seed calculated from the current
        +time. Therefore you'll get a different order every time. The console
        +output includes the random seed value, such that you can reproduce an
        +order-related test failure later. To specify the random seed
        +explicitly, use the `--gtest_random_seed=SEED` flag (or set the
        +`GTEST_RANDOM_SEED` environment variable), where `SEED` is an integer
        +between 0 and 99999. The seed value 0 is special: it tells Google Test
        +to do the default behavior of calculating the seed from the current
        +time.
        +
        +If you combine this with `--gtest_repeat=N`, Google Test will pick a
        +different random seed and re-shuffle the tests in each iteration.
        +
        +_Availability:_ Linux, Windows, Mac; since v1.4.0.
        +
        +## Controlling Test Output ##
        +
        +This section teaches how to tweak the way test results are reported.
        +
        +### Colored Terminal Output ###
        +
        +Google Test can use colors in its terminal output to make it easier to spot
        +the separation between tests, and whether tests passed.
        +
        +You can set the GTEST\_COLOR environment variable or set the `--gtest_color`
        +command line flag to `yes`, `no`, or `auto` (the default) to enable colors,
        +disable colors, or let Google Test decide. When the value is `auto`, Google
        +Test will use colors if and only if the output goes to a terminal and (on
        +non-Windows platforms) the `TERM` environment variable is set to `xterm` or
        +`xterm-color`.
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +### Suppressing the Elapsed Time ###
        +
        +By default, Google Test prints the time it takes to run each test.  To
        +suppress that, run the test program with the `--gtest_print_time=0`
        +command line flag.  Setting the `GTEST_PRINT_TIME` environment
        +variable to `0` has the same effect.
        +
        +_Availability:_ Linux, Windows, Mac.  (In Google Test 1.3.0 and lower,
        +the default behavior is that the elapsed time is **not** printed.)
        +
        +### Generating an XML Report ###
        +
        +Google Test can emit a detailed XML report to a file in addition to its normal
        +textual output. The report contains the duration of each test, and thus can
        +help you identify slow tests.
        +
        +To generate the XML report, set the `GTEST_OUTPUT` environment variable or the
        +`--gtest_output` flag to the string `"xml:_path_to_output_file_"`, which will
        +create the file at the given location. You can also just use the string
        +`"xml"`, in which case the output can be found in the `test_detail.xml` file in
        +the current directory.
        +
        +If you specify a directory (for example, `"xml:output/directory/"` on Linux or
        +`"xml:output\directory\"` on Windows), Google Test will create the XML file in
        +that directory, named after the test executable (e.g. `foo_test.xml` for test
        +program `foo_test` or `foo_test.exe`). If the file already exists (perhaps left
        +over from a previous run), Google Test will pick a different name (e.g.
        +`foo_test_1.xml`) to avoid overwriting it.
        +
        +The report uses the format described here.  It is based on the
        +`junitreport` Ant task and can be parsed by popular continuous build
        +systems like [Hudson](https://hudson.dev.java.net/). Since that format
        +was originally intended for Java, a little interpretation is required
        +to make it apply to Google Test tests, as shown here:
        +
        +```
        +<testsuites name="AllTests" ...>
        +  <testsuite name="test_case_name" ...>
        +    <testcase name="test_name" ...>
        +      <failure message="..."/>
        +      <failure message="..."/>
        +      <failure message="..."/>
        +    </testcase>
        +  </testsuite>
        +</testsuites>
        +```
        +
        +  * The root `<testsuites>` element corresponds to the entire test program.
        +  * `<testsuite>` elements correspond to Google Test test cases.
        +  * `<testcase>` elements correspond to Google Test test functions.
        +
        +For instance, the following program
        +
        +```
        +TEST(MathTest, Addition) { ... }
        +TEST(MathTest, Subtraction) { ... }
        +TEST(LogicTest, NonContradiction) { ... }
        +```
        +
        +could generate this report:
        +
        +```
        +<?xml version="1.0" encoding="UTF-8"?>
        +<testsuites tests="3" failures="1" errors="0" time="35" name="AllTests">
        +  <testsuite name="MathTest" tests="2" failures="1" errors="0" time="15">
        +    <testcase name="Addition" status="run" time="7" classname="">
        +      <failure message="Value of: add(1, 1)&#x0A; Actual: 3&#x0A;Expected: 2" type=""/>
        +      <failure message="Value of: add(1, -1)&#x0A; Actual: 1&#x0A;Expected: 0" type=""/>
        +    </testcase>
        +    <testcase name="Subtraction" status="run" time="5" classname="">
        +    </testcase>
        +  </testsuite>
        +  <testsuite name="LogicTest" tests="1" failures="0" errors="0" time="5">
        +    <testcase name="NonContradiction" status="run" time="5" classname="">
        +    </testcase>
        +  </testsuite>
        +</testsuites>
        +```
        +
        +Things to note:
        +
        +  * The `tests` attribute of a `<testsuites>` or `<testsuite>` element tells how many test functions the Google Test program or test case contains, while the `failures` attribute tells how many of them failed.
        +  * The `time` attribute expresses the duration of the test, test case, or entire test program in milliseconds.
        +  * Each `<failure>` element corresponds to a single failed Google Test assertion.
        +  * Some JUnit concepts don't apply to Google Test, yet we have to conform to the DTD. Therefore you'll see some dummy elements and attributes in the report. You can safely ignore these parts.
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +## Controlling How Failures Are Reported ##
        +
        +### Turning Assertion Failures into Break-Points ###
        +
        +When running test programs under a debugger, it's very convenient if the
        +debugger can catch an assertion failure and automatically drop into interactive
        +mode. Google Test's _break-on-failure_ mode supports this behavior.
        +
        +To enable it, set the `GTEST_BREAK_ON_FAILURE` environment variable to a value
        +other than `0` . Alternatively, you can use the `--gtest_break_on_failure`
        +command line flag.
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +### Disabling Catching Test-Thrown Exceptions ###
        +
        +Google Test can be used either with or without exceptions enabled.  If
        +a test throws a C++ exception or (on Windows) a structured exception
        +(SEH), by default Google Test catches it, reports it as a test
        +failure, and continues with the next test method.  This maximizes the
        +coverage of a test run.  Also, on Windows an uncaught exception will
        +cause a pop-up window, so catching the exceptions allows you to run
        +the tests automatically.
        +
        +When debugging the test failures, however, you may instead want the
        +exceptions to be handled by the debugger, such that you can examine
        +the call stack when an exception is thrown.  To achieve that, set the
        +`GTEST_CATCH_EXCEPTIONS` environment variable to `0`, or use the
        +`--gtest_catch_exceptions=0` flag when running the tests.
        +
        +**Availability**: Linux, Windows, Mac.
        +
        +### Letting Another Testing Framework Drive ###
        +
        +If you work on a project that has already been using another testing
        +framework and is not ready to completely switch to Google Test yet,
        +you can get much of Google Test's benefit by using its assertions in
        +your existing tests.  Just change your `main()` function to look
        +like:
        +
        +```
        +#include "gtest/gtest.h"
        +
        +int main(int argc, char** argv) {
        +  ::testing::GTEST_FLAG(throw_on_failure) = true;
        +  // Important: Google Test must be initialized.
        +  ::testing::InitGoogleTest(&argc, argv);
        +
        +  ... whatever your existing testing framework requires ...
        +}
        +```
        +
        +With that, you can use Google Test assertions in addition to the
        +native assertions your testing framework provides, for example:
        +
        +```
        +void TestFooDoesBar() {
        +  Foo foo;
        +  EXPECT_LE(foo.Bar(1), 100);     // A Google Test assertion.
        +  CPPUNIT_ASSERT(foo.IsEmpty());  // A native assertion.
        +}
        +```
        +
        +If a Google Test assertion fails, it will print an error message and
        +throw an exception, which will be treated as a failure by your host
        +testing framework.  If you compile your code with exceptions disabled,
        +a failed Google Test assertion will instead exit your program with a
        +non-zero code, which will also signal a test failure to your test
        +runner.
        +
        +If you don't write `::testing::GTEST_FLAG(throw_on_failure) = true;` in
        +your `main()`, you can alternatively enable this feature by specifying
        +the `--gtest_throw_on_failure` flag on the command-line or setting the
        +`GTEST_THROW_ON_FAILURE` environment variable to a non-zero value.
        +
        +Death tests are _not_ supported when other test framework is used to organize tests.
        +
        +_Availability:_ Linux, Windows, Mac; since v1.3.0.
        +
        +## Distributing Test Functions to Multiple Machines ##
        +
        +If you have more than one machine you can use to run a test program,
        +you might want to run the test functions in parallel and get the
        +result faster.  We call this technique _sharding_, where each machine
        +is called a _shard_.
        +
        +Google Test is compatible with test sharding.  To take advantage of
        +this feature, your test runner (not part of Google Test) needs to do
        +the following:
        +
        +  1. Allocate a number of machines (shards) to run the tests.
        +  1. On each shard, set the `GTEST_TOTAL_SHARDS` environment variable to the total number of shards.  It must be the same for all shards.
        +  1. On each shard, set the `GTEST_SHARD_INDEX` environment variable to the index of the shard.  Different shards must be assigned different indices, which must be in the range `[0, GTEST_TOTAL_SHARDS - 1]`.
        +  1. Run the same test program on all shards.  When Google Test sees the above two environment variables, it will select a subset of the test functions to run.  Across all shards, each test function in the program will be run exactly once.
        +  1. Wait for all shards to finish, then collect and report the results.
        +
        +Your project may have tests that were written without Google Test and
        +thus don't understand this protocol.  In order for your test runner to
        +figure out which test supports sharding, it can set the environment
        +variable `GTEST_SHARD_STATUS_FILE` to a non-existent file path.  If a
        +test program supports sharding, it will create this file to
        +acknowledge the fact (the actual contents of the file are not
        +important at this time; although we may stick some useful information
        +in it in the future.); otherwise it will not create it.
        +
        +Here's an example to make it clear.  Suppose you have a test program
        +`foo_test` that contains the following 5 test functions:
        +```
        +TEST(A, V)
        +TEST(A, W)
        +TEST(B, X)
        +TEST(B, Y)
        +TEST(B, Z)
        +```
        +and you have 3 machines at your disposal.  To run the test functions in
        +parallel, you would set `GTEST_TOTAL_SHARDS` to 3 on all machines, and
        +set `GTEST_SHARD_INDEX` to 0, 1, and 2 on the machines respectively.
        +Then you would run the same `foo_test` on each machine.
        +
        +Google Test reserves the right to change how the work is distributed
        +across the shards, but here's one possible scenario:
        +
        +  * Machine #0 runs `A.V` and `B.X`.
        +  * Machine #1 runs `A.W` and `B.Y`.
        +  * Machine #2 runs `B.Z`.
        +
        +_Availability:_ Linux, Windows, Mac; since version 1.3.0.
        +
        +# Fusing Google Test Source Files #
        +
        +Google Test's implementation consists of ~30 files (excluding its own
        +tests).  Sometimes you may want them to be packaged up in two files (a
        +`.h` and a `.cc`) instead, such that you can easily copy them to a new
        +machine and start hacking there.  For this we provide an experimental
        +Python script `fuse_gtest_files.py` in the `scripts/` directory (since release 1.3.0).
        +Assuming you have Python 2.4 or above installed on your machine, just
        +go to that directory and run
        +```
        +python fuse_gtest_files.py OUTPUT_DIR
        +```
        +
        +and you should see an `OUTPUT_DIR` directory being created with files
        +`gtest/gtest.h` and `gtest/gtest-all.cc` in it.  These files contain
        +everything you need to use Google Test.  Just copy them to anywhere
        +you want and you are ready to write tests.  You can use the
        +[scripts/test/Makefile](https://github.com/google/googletest/blob/master/googletest/scripts/test/Makefile)
        +file as an example on how to compile your tests against them.
        +
        +# Where to Go from Here #
        +
        +Congratulations! You've now learned more advanced Google Test tools and are
        +ready to tackle more complex testing tasks. If you want to dive even deeper, you
        +can read the [Frequently-Asked Questions](FAQ.md).
        diff --git a/lib/ann/fann/lib/googletest/docs/DevGuide.md b/lib/ann/fann/lib/googletest/docs/DevGuide.md
        new file mode 100644
        index 0000000..867770a
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/docs/DevGuide.md
        @@ -0,0 +1,139 @@
        +
        +
        +If you are interested in understanding the internals of Google Test,
        +building from source, or contributing ideas or modifications to the
        +project, then this document is for you.
        +
        +# Introduction #
        +
        +First, let's give you some background of the project.
        +
        +## Licensing ##
        +
        +All Google Test source and pre-built packages are provided under the [New BSD License](http://www.opensource.org/licenses/bsd-license.php).
        +
        +## The Google Test Community ##
        +
        +The Google Test community exists primarily through the [discussion group](http://groups.google.com/group/googletestframework), the
        +[issue tracker](http://code.google.com/p/googletest/issues/list) and, to a lesser extent, the [source control repository](http://code.google.com/p/googletest/source/checkout). You are definitely encouraged to contribute to the
        +discussion and you can also help us to keep the effectiveness of the
        +group high by following and promoting the guidelines listed here.
        +
        +### Please Be Friendly ###
        +
        +Showing courtesy and respect to others is a vital part of the Google
        +culture, and we strongly encourage everyone participating in Google
        +Test development to join us in accepting nothing less. Of course,
        +being courteous is not the same as failing to constructively disagree
        +with each other, but it does mean that we should be respectful of each
        +other when enumerating the 42 technical reasons that a particular
        +proposal may not be the best choice. There's never a reason to be
        +antagonistic or dismissive toward anyone who is sincerely trying to
        +contribute to a discussion.
        +
        +Sure, C++ testing is serious business and all that, but it's also
        +a lot of fun. Let's keep it that way. Let's strive to be one of the
        +friendliest communities in all of open source.
        +
        +### Where to Discuss Google Test ###
        +
        +As always, discuss Google Test in the official [Google C++ Testing Framework discussion group](http://groups.google.com/group/googletestframework).  You don't have to actually submit
        +code in order to sign up. Your participation itself is a valuable
        +contribution.
        +
        +# Working with the Code #
        +
        +If you want to get your hands dirty with the code inside Google Test,
        +this is the section for you.
        +
        +## Checking Out the Source from Subversion ##
        +
        +Checking out the Google Test source is most useful if you plan to
        +tweak it yourself.  You check out the source for Google Test using a
        +[Subversion](http://subversion.tigris.org/) client as you would for any
        +other project hosted on Google Code.  Please see the instruction on
        +the [source code access page](http://code.google.com/p/googletest/source/checkout) for how to do it.
        +
        +## Compiling from Source ##
        +
        +Once you check out the code, you can find instructions on how to
        +compile it in the [README](http://code.google.com/p/googletest/source/browse/trunk/README) file.
        +
        +## Testing ##
        +
        +A testing framework is of no good if itself is not thoroughly tested.
        +Tests should be written for any new code, and changes should be
        +verified to not break existing tests before they are submitted for
        +review. To perform the tests, follow the instructions in [README](http://code.google.com/p/googletest/source/browse/trunk/README) and
        +verify that there are no failures.
        +
        +# Contributing Code #
        +
        +We are excited that Google Test is now open source, and hope to get
        +great patches from the community. Before you fire up your favorite IDE
        +and begin hammering away at that new feature, though, please take the
        +time to read this section and understand the process. While it seems
        +rigorous, we want to keep a high standard of quality in the code
        +base.
        +
        +## Contributor License Agreements ##
        +
        +You must sign a Contributor License Agreement (CLA) before we can
        +accept any code.  The CLA protects you and us.
        +
        +  * If you are an individual writing original source code and you're sure you own the intellectual property, then you'll need to sign an [individual CLA](http://code.google.com/legal/individual-cla-v1.0.html).
        +  * If you work for a company that wants to allow you to contribute your work to Google Test, then you'll need to sign a [corporate CLA](http://code.google.com/legal/corporate-cla-v1.0.html).
        +
        +Follow either of the two links above to access the appropriate CLA and
        +instructions for how to sign and return it.
        +
        +## Coding Style ##
        +
        +To keep the source consistent, readable, diffable and easy to merge,
        +we use a fairly rigid coding style, as defined by the [google-styleguide](http://code.google.com/p/google-styleguide/) project.  All patches will be expected
        +to conform to the style outlined [here](http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml).
        +
        +## Updating Generated Code ##
        +
        +Some of Google Test's source files are generated by the Pump tool (a
        +Python script).  If you need to update such files, please modify the
        +source (`foo.h.pump`) and re-generate the C++ file using Pump.  You
        +can read the PumpManual for details.
        +
        +## Submitting Patches ##
        +
        +Please do submit code. Here's what you need to do:
        +
        +  1. Normally you should make your change against the SVN trunk instead of a branch or a tag, as the latter two are for release control and should be treated mostly as read-only.
        +  1. Decide which code you want to submit. A submission should be a set of changes that addresses one issue in the [Google Test issue tracker](http://code.google.com/p/googletest/issues/list). Please don't mix more than one logical change per submittal, because it makes the history hard to follow. If you want to make a change that doesn't have a corresponding issue in the issue tracker, please create one.
        +  1. Also, coordinate with team members that are listed on the issue in question. This ensures that work isn't being duplicated and communicating your plan early also generally leads to better patches.
        +  1. Ensure that your code adheres to the [Google Test source code style](#Coding_Style.md).
        +  1. Ensure that there are unit tests for your code.
        +  1. Sign a Contributor License Agreement.
        +  1. Create a patch file using `svn diff`.
        +  1. We use [Rietveld](http://codereview.appspot.com/) to do web-based code reviews.  You can read about the tool [here](http://code.google.com/p/rietveld/wiki/CodeReviewHelp).  When you are ready, upload your patch via Rietveld and notify `googletestframework@googlegroups.com` to review it.  There are several ways to upload the patch.  We recommend using the [upload\_gtest.py](http://code.google.com/p/googletest/source/browse/trunk/scripts/upload_gtest.py) script, which you can find in the `scripts/` folder in the SVN trunk.
        +
        +## Google Test Committers ##
        +
        +The current members of the Google Test engineering team are the only
        +committers at present. In the great tradition of eating one's own
        +dogfood, we will be requiring each new Google Test engineering team
        +member to earn the right to become a committer by following the
        +procedures in this document, writing consistently great code, and
        +demonstrating repeatedly that he or she truly gets the zen of Google
        +Test.
        +
        +# Release Process #
        +
        +We follow the typical release process for Subversion-based projects:
        +
        +  1. A release branch named `release-X.Y` is created.
        +  1. Bugs are fixed and features are added in trunk; those individual patches are merged into the release branch until it's stable.
        +  1. An individual point release (the `Z` in `X.Y.Z`) is made by creating a tag from the branch.
        +  1. Repeat steps 2 and 3 throughout one release cycle (as determined by features or time).
        +  1. Go back to step 1 to create another release branch and so on.
        +
        +
        +---
        +
        +This page is based on the [Making GWT Better](http://code.google.com/webtoolkit/makinggwtbetter.html) guide from the [Google Web Toolkit](http://code.google.com/webtoolkit/) project.  Except as otherwise [noted](http://code.google.com/policies.html#restrictions), the content of this page is licensed under the [Creative Commons Attribution 2.5 License](http://creativecommons.org/licenses/by/2.5/).
        \ No newline at end of file
        diff --git a/lib/ann/fann/lib/googletest/docs/Documentation.md b/lib/ann/fann/lib/googletest/docs/Documentation.md
        new file mode 100644
        index 0000000..8ca1aac
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/docs/Documentation.md
        @@ -0,0 +1,14 @@
        +This page lists all documentation wiki pages for Google Test **(the SVN trunk version)**
        +-- **if you use a released version of Google Test, please read the
        +documentation for that specific version instead.**
        +
        +  * [Primer](Primer.md) -- start here if you are new to Google Test.
        +  * [Samples](Samples.md) -- learn from examples.
        +  * [AdvancedGuide](AdvancedGuide.md) -- learn more about Google Test.
        +  * [XcodeGuide](XcodeGuide.md) -- how to use Google Test in Xcode on Mac.
        +  * [Frequently-Asked Questions](FAQ.md) -- check here before asking a question on the mailing list.
        +
        +To contribute code to Google Test, read:
        +
        +  * [DevGuide](DevGuide.md) -- read this _before_ writing your first patch.
        +  * [PumpManual](PumpManual.md) -- how we generate some of Google Test's source files.
        \ No newline at end of file
        diff --git a/lib/ann/fann/lib/googletest/docs/FAQ.md b/lib/ann/fann/lib/googletest/docs/FAQ.md
        new file mode 100644
        index 0000000..ccbd97b
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/docs/FAQ.md
        @@ -0,0 +1,1087 @@
        +
        +
        +If you cannot find the answer to your question here, and you have read
        +[Primer](Primer.md) and [AdvancedGuide](AdvancedGuide.md), send it to
        +googletestframework@googlegroups.com.
        +
        +## Why should I use Google Test instead of my favorite C++ testing framework? ##
        +
        +First, let us say clearly that we don't want to get into the debate of
        +which C++ testing framework is **the best**.  There exist many fine
        +frameworks for writing C++ tests, and we have tremendous respect for
        +the developers and users of them.  We don't think there is (or will
        +be) a single best framework - you have to pick the right tool for the
        +particular task you are tackling.
        +
        +We created Google Test because we couldn't find the right combination
        +of features and conveniences in an existing framework to satisfy _our_
        +needs.  The following is a list of things that _we_ like about Google
        +Test.  We don't claim them to be unique to Google Test - rather, the
        +combination of them makes Google Test the choice for us.  We hope this
        +list can help you decide whether it is for you too.
        +
        +  * Google Test is designed to be portable: it doesn't require exceptions or RTTI; it works around various bugs in various compilers and environments; etc.  As a result, it works on Linux, Mac OS X, Windows and several embedded operating systems.
        +  * Nonfatal assertions (`EXPECT_*`) have proven to be great time savers, as they allow a test to report multiple failures in a single edit-compile-test cycle.
        +  * It's easy to write assertions that generate informative messages: you just use the stream syntax to append any additional information, e.g. `ASSERT_EQ(5, Foo(i)) << " where i = " << i;`.  It doesn't require a new set of macros or special functions.
        +  * Google Test automatically detects your tests and doesn't require you to enumerate them in order to run them.
        +  * Death tests are pretty handy for ensuring that your asserts in production code are triggered by the right conditions.
        +  * `SCOPED_TRACE` helps you understand the context of an assertion failure when it comes from inside a sub-routine or loop.
        +  * You can decide which tests to run using name patterns.  This saves time when you want to quickly reproduce a test failure.
        +  * Google Test can generate XML test result reports that can be parsed by popular continuous build system like Hudson.
        +  * Simple things are easy in Google Test, while hard things are possible: in addition to advanced features like [global test environments](http://code.google.com/p/googletest/wiki/AdvancedGuide#Global_Set-Up_and_Tear-Down) and tests parameterized by [values](http://code.google.com/p/googletest/wiki/AdvancedGuide#Value_Parameterized_Tests) or [types](http://code.google.com/p/googletest/wiki/AdvancedGuide#Typed_Tests), Google Test supports various ways for the user to extend the framework -- if Google Test doesn't do something out of the box, chances are that a user can implement the feature using Google Test's public API, without changing Google Test itself.  In particular, you can:
        +    * expand your testing vocabulary by defining [custom predicates](http://code.google.com/p/googletest/wiki/AdvancedGuide#Predicate_Assertions_for_Better_Error_Messages),
        +    * teach Google Test how to [print your types](http://code.google.com/p/googletest/wiki/AdvancedGuide#Teaching_Google_Test_How_to_Print_Your_Values),
        +    * define your own testing macros or utilities and verify them using Google Test's [Service Provider Interface](http://code.google.com/p/googletest/wiki/AdvancedGuide#Catching_Failures), and
        +    * reflect on the test cases or change the test output format by intercepting the [test events](http://code.google.com/p/googletest/wiki/AdvancedGuide#Extending_Google_Test_by_Handling_Test_Events).
        +
        +## I'm getting warnings when compiling Google Test.  Would you fix them? ##
        +
        +We strive to minimize compiler warnings Google Test generates.  Before releasing a new version, we test to make sure that it doesn't generate warnings when compiled using its CMake script on Windows, Linux, and Mac OS.
        +
        +Unfortunately, this doesn't mean you are guaranteed to see no warnings when compiling Google Test in your environment:
        +
        +  * You may be using a different compiler as we use, or a different version of the same compiler.  We cannot possibly test for all compilers.
        +  * You may be compiling on a different platform as we do.
        +  * Your project may be using different compiler flags as we do.
        +
        +It is not always possible to make Google Test warning-free for everyone.  Or, it may not be desirable if the warning is rarely enabled and fixing the violations makes the code more complex.
        +
        +If you see warnings when compiling Google Test, we suggest that you use the `-isystem` flag (assuming your are using GCC) to mark Google Test headers as system headers.  That'll suppress warnings from Google Test headers.
        +
        +## Why should not test case names and test names contain underscore? ##
        +
        +Underscore (`_`) is special, as C++ reserves the following to be used by
        +the compiler and the standard library:
        +
        +  1. any identifier that starts with an `_` followed by an upper-case letter, and
        +  1. any identifier that containers two consecutive underscores (i.e. `__`) _anywhere_ in its name.
        +
        +User code is _prohibited_ from using such identifiers.
        +
        +Now let's look at what this means for `TEST` and `TEST_F`.
        +
        +Currently `TEST(TestCaseName, TestName)` generates a class named
        +`TestCaseName_TestName_Test`.  What happens if `TestCaseName` or `TestName`
        +contains `_`?
        +
        +  1. If `TestCaseName` starts with an `_` followed by an upper-case letter (say, `_Foo`), we end up with `_Foo_TestName_Test`, which is reserved and thus invalid.
        +  1. If `TestCaseName` ends with an `_` (say, `Foo_`), we get `Foo__TestName_Test`, which is invalid.
        +  1. If `TestName` starts with an `_` (say, `_Bar`), we get `TestCaseName__Bar_Test`, which is invalid.
        +  1. If `TestName` ends with an `_` (say, `Bar_`), we get `TestCaseName_Bar__Test`, which is invalid.
        +
        +So clearly `TestCaseName` and `TestName` cannot start or end with `_`
        +(Actually, `TestCaseName` can start with `_` -- as long as the `_` isn't
        +followed by an upper-case letter.  But that's getting complicated.  So
        +for simplicity we just say that it cannot start with `_`.).
        +
        +It may seem fine for `TestCaseName` and `TestName` to contain `_` in the
        +middle.  However, consider this:
        +```
        +TEST(Time, Flies_Like_An_Arrow) { ... }
        +TEST(Time_Flies, Like_An_Arrow) { ... }
        +```
        +
        +Now, the two `TEST`s will both generate the same class
        +(`Time_Files_Like_An_Arrow_Test`).  That's not good.
        +
        +So for simplicity, we just ask the users to avoid `_` in `TestCaseName`
        +and `TestName`.  The rule is more constraining than necessary, but it's
        +simple and easy to remember.  It also gives Google Test some wiggle
        +room in case its implementation needs to change in the future.
        +
        +If you violate the rule, there may not be immediately consequences,
        +but your test may (just may) break with a new compiler (or a new
        +version of the compiler you are using) or with a new version of Google
        +Test.  Therefore it's best to follow the rule.
        +
        +## Why is it not recommended to install a pre-compiled copy of Google Test (for example, into /usr/local)? ##
        +
        +In the early days, we said that you could install
        +compiled Google Test libraries on `*`nix systems using `make install`.
        +Then every user of your machine can write tests without
        +recompiling Google Test.
        +
        +This seemed like a good idea, but it has a
        +got-cha: every user needs to compile his tests using the _same_ compiler
        +flags used to compile the installed Google Test libraries; otherwise
        +he may run into undefined behaviors (i.e. the tests can behave
        +strangely and may even crash for no obvious reasons).
        +
        +Why?  Because C++ has this thing called the One-Definition Rule: if
        +two C++ source files contain different definitions of the same
        +class/function/variable, and you link them together, you violate the
        +rule.  The linker may or may not catch the error (in many cases it's
        +not required by the C++ standard to catch the violation).  If it
        +doesn't, you get strange run-time behaviors that are unexpected and
        +hard to debug.
        +
        +If you compile Google Test and your test code using different compiler
        +flags, they may see different definitions of the same
        +class/function/variable (e.g. due to the use of `#if` in Google Test).
        +Therefore, for your sanity, we recommend to avoid installing pre-compiled
        +Google Test libraries.  Instead, each project should compile
        +Google Test itself such that it can be sure that the same flags are
        +used for both Google Test and the tests.
        +
        +## How do I generate 64-bit binaries on Windows (using Visual Studio 2008)? ##
        +
        +(Answered by Trevor Robinson)
        +
        +Load the supplied Visual Studio solution file, either `msvc\gtest-md.sln` or
        +`msvc\gtest.sln`. Go through the migration wizard to migrate the
        +solution and project files to Visual Studio 2008. Select
        +`Configuration Manager...` from the `Build` menu. Select `<New...>` from
        +the `Active solution platform` dropdown.  Select `x64` from the new
        +platform dropdown, leave `Copy settings from` set to `Win32` and
        +`Create new project platforms` checked, then click `OK`. You now have
        +`Win32` and `x64` platform configurations, selectable from the
        +`Standard` toolbar, which allow you to toggle between building 32-bit or
        +64-bit binaries (or both at once using Batch Build).
        +
        +In order to prevent build output files from overwriting one another,
        +you'll need to change the `Intermediate Directory` settings for the
        +newly created platform configuration across all the projects. To do
        +this, multi-select (e.g. using shift-click) all projects (but not the
        +solution) in the `Solution Explorer`. Right-click one of them and
        +select `Properties`. In the left pane, select `Configuration Properties`,
        +and from the `Configuration` dropdown, select `All Configurations`.
        +Make sure the selected platform is `x64`. For the
        +`Intermediate Directory` setting, change the value from
        +`$(PlatformName)\$(ConfigurationName)` to
        +`$(OutDir)\$(ProjectName)`. Click `OK` and then build the
        +solution. When the build is complete, the 64-bit binaries will be in
        +the `msvc\x64\Debug` directory.
        +
        +## Can I use Google Test on MinGW? ##
        +
        +We haven't tested this ourselves, but Per Abrahamsen reported that he
        +was able to compile and install Google Test successfully when using
        +MinGW from Cygwin.  You'll need to configure it with:
        +
        +`PATH/TO/configure CC="gcc -mno-cygwin" CXX="g++ -mno-cygwin"`
        +
        +You should be able to replace the `-mno-cygwin` option with direct links
        +to the real MinGW binaries, but we haven't tried that.
        +
        +Caveats:
        +
        +  * There are many warnings when compiling.
        +  * `make check` will produce some errors as not all tests for Google Test itself are compatible with MinGW.
        +
        +We also have reports on successful cross compilation of Google Test
        +MinGW binaries on Linux using
        +[these instructions](http://wiki.wxwidgets.org/Cross-Compiling_Under_Linux#Cross-compiling_under_Linux_for_MS_Windows)
        +on the WxWidgets site.
        +
        +Please contact `googletestframework@googlegroups.com` if you are
        +interested in improving the support for MinGW.
        +
        +## Why does Google Test support EXPECT\_EQ(NULL, ptr) and ASSERT\_EQ(NULL, ptr) but not EXPECT\_NE(NULL, ptr) and ASSERT\_NE(NULL, ptr)? ##
        +
        +Due to some peculiarity of C++, it requires some non-trivial template
        +meta programming tricks to support using `NULL` as an argument of the
        +`EXPECT_XX()` and `ASSERT_XX()` macros. Therefore we only do it where
        +it's most needed (otherwise we make the implementation of Google Test
        +harder to maintain and more error-prone than necessary).
        +
        +The `EXPECT_EQ()` macro takes the _expected_ value as its first
        +argument and the _actual_ value as the second. It's reasonable that
        +someone wants to write `EXPECT_EQ(NULL, some_expression)`, and this
        +indeed was requested several times. Therefore we implemented it.
        +
        +The need for `EXPECT_NE(NULL, ptr)` isn't nearly as strong. When the
        +assertion fails, you already know that `ptr` must be `NULL`, so it
        +doesn't add any information to print ptr in this case. That means
        +`EXPECT_TRUE(ptr != NULL)` works just as well.
        +
        +If we were to support `EXPECT_NE(NULL, ptr)`, for consistency we'll
        +have to support `EXPECT_NE(ptr, NULL)` as well, as unlike `EXPECT_EQ`,
        +we don't have a convention on the order of the two arguments for
        +`EXPECT_NE`. This means using the template meta programming tricks
        +twice in the implementation, making it even harder to understand and
        +maintain. We believe the benefit doesn't justify the cost.
        +
        +Finally, with the growth of Google Mock's [matcher](http://code.google.com/p/googlemock/wiki/CookBook#Using_Matchers_in_Google_Test_Assertions) library, we are
        +encouraging people to use the unified `EXPECT_THAT(value, matcher)`
        +syntax more often in tests. One significant advantage of the matcher
        +approach is that matchers can be easily combined to form new matchers,
        +while the `EXPECT_NE`, etc, macros cannot be easily
        +combined. Therefore we want to invest more in the matchers than in the
        +`EXPECT_XX()` macros.
        +
        +## Does Google Test support running tests in parallel? ##
        +
        +Test runners tend to be tightly coupled with the build/test
        +environment, and Google Test doesn't try to solve the problem of
        +running tests in parallel.  Instead, we tried to make Google Test work
        +nicely with test runners.  For example, Google Test's XML report
        +contains the time spent on each test, and its `gtest_list_tests` and
        +`gtest_filter` flags can be used for splitting the execution of test
        +methods into multiple processes.  These functionalities can help the
        +test runner run the tests in parallel.
        +
        +## Why don't Google Test run the tests in different threads to speed things up? ##
        +
        +It's difficult to write thread-safe code.  Most tests are not written
        +with thread-safety in mind, and thus may not work correctly in a
        +multi-threaded setting.
        +
        +If you think about it, it's already hard to make your code work when
        +you know what other threads are doing.  It's much harder, and
        +sometimes even impossible, to make your code work when you don't know
        +what other threads are doing (remember that test methods can be added,
        +deleted, or modified after your test was written).  If you want to run
        +the tests in parallel, you'd better run them in different processes.
        +
        +## Why aren't Google Test assertions implemented using exceptions? ##
        +
        +Our original motivation was to be able to use Google Test in projects
        +that disable exceptions.  Later we realized some additional benefits
        +of this approach:
        +
        +  1. Throwing in a destructor is undefined behavior in C++.  Not using exceptions means Google Test's assertions are safe to use in destructors.
        +  1. The `EXPECT_*` family of macros will continue even after a failure, allowing multiple failures in a `TEST` to be reported in a single run. This is a popular feature, as in C++ the edit-compile-test cycle is usually quite long and being able to fixing more than one thing at a time is a blessing.
        +  1. If assertions are implemented using exceptions, a test may falsely ignore a failure if it's caught by user code:
        +```
        +try { ... ASSERT_TRUE(...) ... }
        +catch (...) { ... }
        +```
        +The above code will pass even if the `ASSERT_TRUE` throws.  While it's unlikely for someone to write this in a test, it's possible to run into this pattern when you write assertions in callbacks that are called by the code under test.
        +
        +The downside of not using exceptions is that `ASSERT_*` (implemented
        +using `return`) will only abort the current function, not the current
        +`TEST`.
        +
        +## Why do we use two different macros for tests with and without fixtures? ##
        +
        +Unfortunately, C++'s macro system doesn't allow us to use the same
        +macro for both cases.  One possibility is to provide only one macro
        +for tests with fixtures, and require the user to define an empty
        +fixture sometimes:
        +
        +```
        +class FooTest : public ::testing::Test {};
        +
        +TEST_F(FooTest, DoesThis) { ... }
        +```
        +or
        +```
        +typedef ::testing::Test FooTest;
        +
        +TEST_F(FooTest, DoesThat) { ... }
        +```
        +
        +Yet, many people think this is one line too many. :-) Our goal was to
        +make it really easy to write tests, so we tried to make simple tests
        +trivial to create.  That means using a separate macro for such tests.
        +
        +We think neither approach is ideal, yet either of them is reasonable.
        +In the end, it probably doesn't matter much either way.
        +
        +## Why don't we use structs as test fixtures? ##
        +
        +We like to use structs only when representing passive data.  This
        +distinction between structs and classes is good for documenting the
        +intent of the code's author.  Since test fixtures have logic like
        +`SetUp()` and `TearDown()`, they are better defined as classes.
        +
        +## Why are death tests implemented as assertions instead of using a test runner? ##
        +
        +Our goal was to make death tests as convenient for a user as C++
        +possibly allows.  In particular:
        +
        +  * The runner-style requires to split the information into two pieces: the definition of the death test itself, and the specification for the runner on how to run the death test and what to expect.  The death test would be written in C++, while the runner spec may or may not be.  A user needs to carefully keep the two in sync. `ASSERT_DEATH(statement, expected_message)` specifies all necessary information in one place, in one language, without boilerplate code. It is very declarative.
        +  * `ASSERT_DEATH` has a similar syntax and error-reporting semantics as other Google Test assertions, and thus is easy to learn.
        +  * `ASSERT_DEATH` can be mixed with other assertions and other logic at your will.  You are not limited to one death test per test method. For example, you can write something like:
        +```
        +    if (FooCondition()) {
        +      ASSERT_DEATH(Bar(), "blah");
        +    } else {
        +      ASSERT_EQ(5, Bar());
        +    }
        +```
        +If you prefer one death test per test method, you can write your tests in that style too, but we don't want to impose that on the users.  The fewer artificial limitations the better.
        +  * `ASSERT_DEATH` can reference local variables in the current function, and you can decide how many death tests you want based on run-time information.  For example,
        +```
        +    const int count = GetCount();  // Only known at run time.
        +    for (int i = 1; i <= count; i++) {
        +      ASSERT_DEATH({
        +        double* buffer = new double[i];
        +        ... initializes buffer ...
        +        Foo(buffer, i)
        +      }, "blah blah");
        +    }
        +```
        +The runner-based approach tends to be more static and less flexible, or requires more user effort to get this kind of flexibility.
        +
        +Another interesting thing about `ASSERT_DEATH` is that it calls `fork()`
        +to create a child process to run the death test.  This is lightening
        +fast, as `fork()` uses copy-on-write pages and incurs almost zero
        +overhead, and the child process starts from the user-supplied
        +statement directly, skipping all global and local initialization and
        +any code leading to the given statement.  If you launch the child
        +process from scratch, it can take seconds just to load everything and
        +start running if the test links to many libraries dynamically.
        +
        +## My death test modifies some state, but the change seems lost after the death test finishes. Why? ##
        +
        +Death tests (`EXPECT_DEATH`, etc) are executed in a sub-process s.t. the
        +expected crash won't kill the test program (i.e. the parent process). As a
        +result, any in-memory side effects they incur are observable in their
        +respective sub-processes, but not in the parent process. You can think of them
        +as running in a parallel universe, more or less.
        +
        +## The compiler complains about "undefined references" to some static const member variables, but I did define them in the class body. What's wrong? ##
        +
        +If your class has a static data member:
        +
        +```
        +// foo.h
        +class Foo {
        +  ...
        +  static const int kBar = 100;
        +};
        +```
        +
        +You also need to define it _outside_ of the class body in `foo.cc`:
        +
        +```
        +const int Foo::kBar;  // No initializer here.
        +```
        +
        +Otherwise your code is **invalid C++**, and may break in unexpected ways. In
        +particular, using it in Google Test comparison assertions (`EXPECT_EQ`, etc)
        +will generate an "undefined reference" linker error.
        +
        +## I have an interface that has several implementations. Can I write a set of tests once and repeat them over all the implementations? ##
        +
        +Google Test doesn't yet have good support for this kind of tests, or
        +data-driven tests in general. We hope to be able to make improvements in this
        +area soon.
        +
        +## Can I derive a test fixture from another? ##
        +
        +Yes.
        +
        +Each test fixture has a corresponding and same named test case. This means only
        +one test case can use a particular fixture. Sometimes, however, multiple test
        +cases may want to use the same or slightly different fixtures. For example, you
        +may want to make sure that all of a GUI library's test cases don't leak
        +important system resources like fonts and brushes.
        +
        +In Google Test, you share a fixture among test cases by putting the shared
        +logic in a base test fixture, then deriving from that base a separate fixture
        +for each test case that wants to use this common logic. You then use `TEST_F()`
        +to write tests using each derived fixture.
        +
        +Typically, your code looks like this:
        +
        +```
        +// Defines a base test fixture.
        +class BaseTest : public ::testing::Test {
        +  protected:
        +   ...
        +};
        +
        +// Derives a fixture FooTest from BaseTest.
        +class FooTest : public BaseTest {
        +  protected:
        +    virtual void SetUp() {
        +      BaseTest::SetUp();  // Sets up the base fixture first.
        +      ... additional set-up work ...
        +    }
        +    virtual void TearDown() {
        +      ... clean-up work for FooTest ...
        +      BaseTest::TearDown();  // Remember to tear down the base fixture
        +                             // after cleaning up FooTest!
        +    }
        +    ... functions and variables for FooTest ...
        +};
        +
        +// Tests that use the fixture FooTest.
        +TEST_F(FooTest, Bar) { ... }
        +TEST_F(FooTest, Baz) { ... }
        +
        +... additional fixtures derived from BaseTest ...
        +```
        +
        +If necessary, you can continue to derive test fixtures from a derived fixture.
        +Google Test has no limit on how deep the hierarchy can be.
        +
        +For a complete example using derived test fixtures, see
        +[sample5](http://code.google.com/p/googletest/source/browse/trunk/samples/sample5_unittest.cc).
        +
        +## My compiler complains "void value not ignored as it ought to be." What does this mean? ##
        +
        +You're probably using an `ASSERT_*()` in a function that doesn't return `void`.
        +`ASSERT_*()` can only be used in `void` functions.
        +
        +## My death test hangs (or seg-faults). How do I fix it? ##
        +
        +In Google Test, death tests are run in a child process and the way they work is
        +delicate. To write death tests you really need to understand how they work.
        +Please make sure you have read this.
        +
        +In particular, death tests don't like having multiple threads in the parent
        +process. So the first thing you can try is to eliminate creating threads
        +outside of `EXPECT_DEATH()`.
        +
        +Sometimes this is impossible as some library you must use may be creating
        +threads before `main()` is even reached. In this case, you can try to minimize
        +the chance of conflicts by either moving as many activities as possible inside
        +`EXPECT_DEATH()` (in the extreme case, you want to move everything inside), or
        +leaving as few things as possible in it. Also, you can try to set the death
        +test style to `"threadsafe"`, which is safer but slower, and see if it helps.
        +
        +If you go with thread-safe death tests, remember that they rerun the test
        +program from the beginning in the child process. Therefore make sure your
        +program can run side-by-side with itself and is deterministic.
        +
        +In the end, this boils down to good concurrent programming. You have to make
        +sure that there is no race conditions or dead locks in your program. No silver
        +bullet - sorry!
        +
        +## Should I use the constructor/destructor of the test fixture or the set-up/tear-down function? ##
        +
        +The first thing to remember is that Google Test does not reuse the
        +same test fixture object across multiple tests. For each `TEST_F`,
        +Google Test will create a fresh test fixture object, _immediately_
        +call `SetUp()`, run the test body, call `TearDown()`, and then
        +_immediately_ delete the test fixture object.
        +
        +When you need to write per-test set-up and tear-down logic, you have
        +the choice between using the test fixture constructor/destructor or
        +`SetUp()/TearDown()`. The former is usually preferred, as it has the
        +following benefits:
        +
        +  * By initializing a member variable in the constructor, we have the option to make it `const`, which helps prevent accidental changes to its value and makes the tests more obviously correct.
        +  * In case we need to subclass the test fixture class, the subclass' constructor is guaranteed to call the base class' constructor first, and the subclass' destructor is guaranteed to call the base class' destructor afterward. With `SetUp()/TearDown()`, a subclass may make the mistake of forgetting to call the base class' `SetUp()/TearDown()` or call them at the wrong moment.
        +
        +You may still want to use `SetUp()/TearDown()` in the following rare cases:
        +  * If the tear-down operation could throw an exception, you must use `TearDown()` as opposed to the destructor, as throwing in a destructor leads to undefined behavior and usually will kill your program right away. Note that many standard libraries (like STL) may throw when exceptions are enabled in the compiler. Therefore you should prefer `TearDown()` if you want to write portable tests that work with or without exceptions.
        +  * The assertion macros throw an exception when flag `--gtest_throw_on_failure` is specified. Therefore, you shouldn't use Google Test assertions in a destructor if you plan to run your tests with this flag.
        +  * In a constructor or destructor, you cannot make a virtual function call on this object. (You can call a method declared as virtual, but it will be statically bound.) Therefore, if you need to call a method that will be overriden in a derived class, you have to use `SetUp()/TearDown()`.
        +
        +## The compiler complains "no matching function to call" when I use ASSERT\_PREDn. How do I fix it? ##
        +
        +If the predicate function you use in `ASSERT_PRED*` or `EXPECT_PRED*` is
        +overloaded or a template, the compiler will have trouble figuring out which
        +overloaded version it should use. `ASSERT_PRED_FORMAT*` and
        +`EXPECT_PRED_FORMAT*` don't have this problem.
        +
        +If you see this error, you might want to switch to
        +`(ASSERT|EXPECT)_PRED_FORMAT*`, which will also give you a better failure
        +message. If, however, that is not an option, you can resolve the problem by
        +explicitly telling the compiler which version to pick.
        +
        +For example, suppose you have
        +
        +```
        +bool IsPositive(int n) {
        +  return n > 0;
        +}
        +bool IsPositive(double x) {
        +  return x > 0;
        +}
        +```
        +
        +you will get a compiler error if you write
        +
        +```
        +EXPECT_PRED1(IsPositive, 5);
        +```
        +
        +However, this will work:
        +
        +```
        +EXPECT_PRED1(*static_cast<bool (*)(int)>*(IsPositive), 5);
        +```
        +
        +(The stuff inside the angled brackets for the `static_cast` operator is the
        +type of the function pointer for the `int`-version of `IsPositive()`.)
        +
        +As another example, when you have a template function
        +
        +```
        +template <typename T>
        +bool IsNegative(T x) {
        +  return x < 0;
        +}
        +```
        +
        +you can use it in a predicate assertion like this:
        +
        +```
        +ASSERT_PRED1(IsNegative*<int>*, -5);
        +```
        +
        +Things are more interesting if your template has more than one parameters. The
        +following won't compile:
        +
        +```
        +ASSERT_PRED2(*GreaterThan<int, int>*, 5, 0);
        +```
        +
        +
        +as the C++ pre-processor thinks you are giving `ASSERT_PRED2` 4 arguments,
        +which is one more than expected. The workaround is to wrap the predicate
        +function in parentheses:
        +
        +```
        +ASSERT_PRED2(*(GreaterThan<int, int>)*, 5, 0);
        +```
        +
        +
        +## My compiler complains about "ignoring return value" when I call RUN\_ALL\_TESTS(). Why? ##
        +
        +Some people had been ignoring the return value of `RUN_ALL_TESTS()`. That is,
        +instead of
        +
        +```
        +return RUN_ALL_TESTS();
        +```
        +
        +they write
        +
        +```
        +RUN_ALL_TESTS();
        +```
        +
        +This is wrong and dangerous. A test runner needs to see the return value of
        +`RUN_ALL_TESTS()` in order to determine if a test has passed. If your `main()`
        +function ignores it, your test will be considered successful even if it has a
        +Google Test assertion failure. Very bad.
        +
        +To help the users avoid this dangerous bug, the implementation of
        +`RUN_ALL_TESTS()` causes gcc to raise this warning, when the return value is
        +ignored. If you see this warning, the fix is simple: just make sure its value
        +is used as the return value of `main()`.
        +
        +## My compiler complains that a constructor (or destructor) cannot return a value. What's going on? ##
        +
        +Due to a peculiarity of C++, in order to support the syntax for streaming
        +messages to an `ASSERT_*`, e.g.
        +
        +```
        +ASSERT_EQ(1, Foo()) << "blah blah" << foo;
        +```
        +
        +we had to give up using `ASSERT*` and `FAIL*` (but not `EXPECT*` and
        +`ADD_FAILURE*`) in constructors and destructors. The workaround is to move the
        +content of your constructor/destructor to a private void member function, or
        +switch to `EXPECT_*()` if that works. This section in the user's guide explains
        +it.
        +
        +## My set-up function is not called. Why? ##
        +
        +C++ is case-sensitive. It should be spelled as `SetUp()`.  Did you
        +spell it as `Setup()`?
        +
        +Similarly, sometimes people spell `SetUpTestCase()` as `SetupTestCase()` and
        +wonder why it's never called.
        +
        +## How do I jump to the line of a failure in Emacs directly? ##
        +
        +Google Test's failure message format is understood by Emacs and many other
        +IDEs, like acme and XCode. If a Google Test message is in a compilation buffer
        +in Emacs, then it's clickable. You can now hit `enter` on a message to jump to
        +the corresponding source code, or use `C-x `` to jump to the next failure.
        +
        +## I have several test cases which share the same test fixture logic, do I have to define a new test fixture class for each of them? This seems pretty tedious. ##
        +
        +You don't have to. Instead of
        +
        +```
        +class FooTest : public BaseTest {};
        +
        +TEST_F(FooTest, Abc) { ... }
        +TEST_F(FooTest, Def) { ... }
        +
        +class BarTest : public BaseTest {};
        +
        +TEST_F(BarTest, Abc) { ... }
        +TEST_F(BarTest, Def) { ... }
        +```
        +
        +you can simply `typedef` the test fixtures:
        +```
        +typedef BaseTest FooTest;
        +
        +TEST_F(FooTest, Abc) { ... }
        +TEST_F(FooTest, Def) { ... }
        +
        +typedef BaseTest BarTest;
        +
        +TEST_F(BarTest, Abc) { ... }
        +TEST_F(BarTest, Def) { ... }
        +```
        +
        +## The Google Test output is buried in a whole bunch of log messages. What do I do? ##
        +
        +The Google Test output is meant to be a concise and human-friendly report. If
        +your test generates textual output itself, it will mix with the Google Test
        +output, making it hard to read. However, there is an easy solution to this
        +problem.
        +
        +Since most log messages go to stderr, we decided to let Google Test output go
        +to stdout. This way, you can easily separate the two using redirection. For
        +example:
        +```
        +./my_test > googletest_output.txt
        +```
        +
        +## Why should I prefer test fixtures over global variables? ##
        +
        +There are several good reasons:
        +  1. It's likely your test needs to change the states of its global variables. This makes it difficult to keep side effects from escaping one test and contaminating others, making debugging difficult. By using fixtures, each test has a fresh set of variables that's different (but with the same names). Thus, tests are kept independent of each other.
        +  1. Global variables pollute the global namespace.
        +  1. Test fixtures can be reused via subclassing, which cannot be done easily with global variables. This is useful if many test cases have something in common.
        +
        +## How do I test private class members without writing FRIEND\_TEST()s? ##
        +
        +You should try to write testable code, which means classes should be easily
        +tested from their public interface. One way to achieve this is the Pimpl idiom:
        +you move all private members of a class into a helper class, and make all
        +members of the helper class public.
        +
        +You have several other options that don't require using `FRIEND_TEST`:
        +  * Write the tests as members of the fixture class:
        +```
        +class Foo {
        +  friend class FooTest;
        +  ...
        +};
        +
        +class FooTest : public ::testing::Test {
        + protected:
        +  ...
        +  void Test1() {...} // This accesses private members of class Foo.
        +  void Test2() {...} // So does this one.
        +};
        +
        +TEST_F(FooTest, Test1) {
        +  Test1();
        +}
        +
        +TEST_F(FooTest, Test2) {
        +  Test2();
        +}
        +```
        +  * In the fixture class, write accessors for the tested class' private members, then use the accessors in your tests:
        +```
        +class Foo {
        +  friend class FooTest;
        +  ...
        +};
        +
        +class FooTest : public ::testing::Test {
        + protected:
        +  ...
        +  T1 get_private_member1(Foo* obj) {
        +    return obj->private_member1_;
        +  }
        +};
        +
        +TEST_F(FooTest, Test1) {
        +  ...
        +  get_private_member1(x)
        +  ...
        +}
        +```
        +  * If the methods are declared **protected**, you can change their access level in a test-only subclass:
        +```
        +class YourClass {
        +  ...
        + protected: // protected access for testability.
        +  int DoSomethingReturningInt();
        +  ...
        +};
        +
        +// in the your_class_test.cc file:
        +class TestableYourClass : public YourClass {
        +  ...
        + public: using YourClass::DoSomethingReturningInt; // changes access rights
        +  ...
        +};
        +
        +TEST_F(YourClassTest, DoSomethingTest) {
        +  TestableYourClass obj;
        +  assertEquals(expected_value, obj.DoSomethingReturningInt());
        +}
        +```
        +
        +## How do I test private class static members without writing FRIEND\_TEST()s? ##
        +
        +We find private static methods clutter the header file.  They are
        +implementation details and ideally should be kept out of a .h. So often I make
        +them free functions instead.
        +
        +Instead of:
        +```
        +// foo.h
        +class Foo {
        +  ...
        + private:
        +  static bool Func(int n);
        +};
        +
        +// foo.cc
        +bool Foo::Func(int n) { ... }
        +
        +// foo_test.cc
        +EXPECT_TRUE(Foo::Func(12345));
        +```
        +
        +You probably should better write:
        +```
        +// foo.h
        +class Foo {
        +  ...
        +};
        +
        +// foo.cc
        +namespace internal {
        +  bool Func(int n) { ... }
        +}
        +
        +// foo_test.cc
        +namespace internal {
        +  bool Func(int n);
        +}
        +
        +EXPECT_TRUE(internal::Func(12345));
        +```
        +
        +## I would like to run a test several times with different parameters. Do I need to write several similar copies of it? ##
        +
        +No. You can use a feature called [value-parameterized tests](AdvancedGuide#Value_Parameterized_Tests.md) which
        +lets you repeat your tests with different parameters, without defining it more than once.
        +
        +## How do I test a file that defines main()? ##
        +
        +To test a `foo.cc` file, you need to compile and link it into your unit test
        +program. However, when the file contains a definition for the `main()`
        +function, it will clash with the `main()` of your unit test, and will result in
        +a build error.
        +
        +The right solution is to split it into three files:
        +  1. `foo.h` which contains the declarations,
        +  1. `foo.cc` which contains the definitions except `main()`, and
        +  1. `foo_main.cc` which contains nothing but the definition of `main()`.
        +
        +Then `foo.cc` can be easily tested.
        +
        +If you are adding tests to an existing file and don't want an intrusive change
        +like this, there is a hack: just include the entire `foo.cc` file in your unit
        +test. For example:
        +```
        +// File foo_unittest.cc
        +
        +// The headers section
        +...
        +
        +// Renames main() in foo.cc to make room for the unit test main()
        +#define main FooMain
        +
        +#include "a/b/foo.cc"
        +
        +// The tests start here.
        +...
        +```
        +
        +
        +However, please remember this is a hack and should only be used as the last
        +resort.
        +
        +## What can the statement argument in ASSERT\_DEATH() be? ##
        +
        +`ASSERT_DEATH(_statement_, _regex_)` (or any death assertion macro) can be used
        +wherever `_statement_` is valid. So basically `_statement_` can be any C++
        +statement that makes sense in the current context. In particular, it can
        +reference global and/or local variables, and can be:
        +  * a simple function call (often the case),
        +  * a complex expression, or
        +  * a compound statement.
        +
        +> Some examples are shown here:
        +```
        +// A death test can be a simple function call.
        +TEST(MyDeathTest, FunctionCall) {
        +  ASSERT_DEATH(Xyz(5), "Xyz failed");
        +}
        +
        +// Or a complex expression that references variables and functions.
        +TEST(MyDeathTest, ComplexExpression) {
        +  const bool c = Condition();
        +  ASSERT_DEATH((c ? Func1(0) : object2.Method("test")),
        +               "(Func1|Method) failed");
        +}
        +
        +// Death assertions can be used any where in a function. In
        +// particular, they can be inside a loop.
        +TEST(MyDeathTest, InsideLoop) {
        +  // Verifies that Foo(0), Foo(1), ..., and Foo(4) all die.
        +  for (int i = 0; i < 5; i++) {
        +    EXPECT_DEATH_M(Foo(i), "Foo has \\d+ errors",
        +                   ::testing::Message() << "where i is " << i);
        +  }
        +}
        +
        +// A death assertion can contain a compound statement.
        +TEST(MyDeathTest, CompoundStatement) {
        +  // Verifies that at lease one of Bar(0), Bar(1), ..., and
        +  // Bar(4) dies.
        +  ASSERT_DEATH({
        +    for (int i = 0; i < 5; i++) {
        +      Bar(i);
        +    }
        +  },
        +  "Bar has \\d+ errors");}
        +```
        +
        +`googletest_unittest.cc` contains more examples if you are interested.
        +
        +## What syntax does the regular expression in ASSERT\_DEATH use? ##
        +
        +On POSIX systems, Google Test uses the POSIX Extended regular
        +expression syntax
        +(http://en.wikipedia.org/wiki/Regular_expression#POSIX_Extended_Regular_Expressions).
        +On Windows, it uses a limited variant of regular expression
        +syntax. For more details, see the
        +[regular expression syntax](AdvancedGuide#Regular_Expression_Syntax.md).
        +
        +## I have a fixture class Foo, but TEST\_F(Foo, Bar) gives me error "no matching function for call to Foo::Foo()". Why? ##
        +
        +Google Test needs to be able to create objects of your test fixture class, so
        +it must have a default constructor. Normally the compiler will define one for
        +you. However, there are cases where you have to define your own:
        +  * If you explicitly declare a non-default constructor for class `Foo`, then you need to define a default constructor, even if it would be empty.
        +  * If `Foo` has a const non-static data member, then you have to define the default constructor _and_ initialize the const member in the initializer list of the constructor. (Early versions of `gcc` doesn't force you to initialize the const member. It's a bug that has been fixed in `gcc 4`.)
        +
        +## Why does ASSERT\_DEATH complain about previous threads that were already joined? ##
        +
        +With the Linux pthread library, there is no turning back once you cross the
        +line from single thread to multiple threads. The first time you create a
        +thread, a manager thread is created in addition, so you get 3, not 2, threads.
        +Later when the thread you create joins the main thread, the thread count
        +decrements by 1, but the manager thread will never be killed, so you still have
        +2 threads, which means you cannot safely run a death test.
        +
        +The new NPTL thread library doesn't suffer from this problem, as it doesn't
        +create a manager thread. However, if you don't control which machine your test
        +runs on, you shouldn't depend on this.
        +
        +## Why does Google Test require the entire test case, instead of individual tests, to be named FOODeathTest when it uses ASSERT\_DEATH? ##
        +
        +Google Test does not interleave tests from different test cases. That is, it
        +runs all tests in one test case first, and then runs all tests in the next test
        +case, and so on. Google Test does this because it needs to set up a test case
        +before the first test in it is run, and tear it down afterwords. Splitting up
        +the test case would require multiple set-up and tear-down processes, which is
        +inefficient and makes the semantics unclean.
        +
        +If we were to determine the order of tests based on test name instead of test
        +case name, then we would have a problem with the following situation:
        +
        +```
        +TEST_F(FooTest, AbcDeathTest) { ... }
        +TEST_F(FooTest, Uvw) { ... }
        +
        +TEST_F(BarTest, DefDeathTest) { ... }
        +TEST_F(BarTest, Xyz) { ... }
        +```
        +
        +Since `FooTest.AbcDeathTest` needs to run before `BarTest.Xyz`, and we don't
        +interleave tests from different test cases, we need to run all tests in the
        +`FooTest` case before running any test in the `BarTest` case. This contradicts
        +with the requirement to run `BarTest.DefDeathTest` before `FooTest.Uvw`.
        +
        +## But I don't like calling my entire test case FOODeathTest when it contains both death tests and non-death tests. What do I do? ##
        +
        +You don't have to, but if you like, you may split up the test case into
        +`FooTest` and `FooDeathTest`, where the names make it clear that they are
        +related:
        +
        +```
        +class FooTest : public ::testing::Test { ... };
        +
        +TEST_F(FooTest, Abc) { ... }
        +TEST_F(FooTest, Def) { ... }
        +
        +typedef FooTest FooDeathTest;
        +
        +TEST_F(FooDeathTest, Uvw) { ... EXPECT_DEATH(...) ... }
        +TEST_F(FooDeathTest, Xyz) { ... ASSERT_DEATH(...) ... }
        +```
        +
        +## The compiler complains about "no match for 'operator<<'" when I use an assertion. What gives? ##
        +
        +If you use a user-defined type `FooType` in an assertion, you must make sure
        +there is an `std::ostream& operator<<(std::ostream&, const FooType&)` function
        +defined such that we can print a value of `FooType`.
        +
        +In addition, if `FooType` is declared in a name space, the `<<` operator also
        +needs to be defined in the _same_ name space.
        +
        +## How do I suppress the memory leak messages on Windows? ##
        +
        +Since the statically initialized Google Test singleton requires allocations on
        +the heap, the Visual C++ memory leak detector will report memory leaks at the
        +end of the program run. The easiest way to avoid this is to use the
        +`_CrtMemCheckpoint` and `_CrtMemDumpAllObjectsSince` calls to not report any
        +statically initialized heap objects. See MSDN for more details and additional
        +heap check/debug routines.
        +
        +## I am building my project with Google Test in Visual Studio and all I'm getting is a bunch of linker errors (or warnings). Help! ##
        +
        +You may get a number of the following linker error or warnings if you
        +attempt to link your test project with the Google Test library when
        +your project and the are not built using the same compiler settings.
        +
        +  * LNK2005: symbol already defined in object
        +  * LNK4217: locally defined symbol 'symbol' imported in function 'function'
        +  * LNK4049: locally defined symbol 'symbol' imported
        +
        +The Google Test project (gtest.vcproj) has the Runtime Library option
        +set to /MT (use multi-threaded static libraries, /MTd for debug). If
        +your project uses something else, for example /MD (use multi-threaded
        +DLLs, /MDd for debug), you need to change the setting in the Google
        +Test project to match your project's.
        +
        +To update this setting open the project properties in the Visual
        +Studio IDE then select the branch Configuration Properties | C/C++ |
        +Code Generation and change the option "Runtime Library".  You may also try
        +using gtest-md.vcproj instead of gtest.vcproj.
        +
        +## I put my tests in a library and Google Test doesn't run them. What's happening? ##
        +Have you read a
        +[warning](http://code.google.com/p/googletest/wiki/Primer#Important_note_for_Visual_C++_users) on
        +the Google Test Primer page?
        +
        +## I want to use Google Test with Visual Studio but don't know where to start. ##
        +Many people are in your position and one of the posted his solution to
        +our mailing list. Here is his link:
        +http://hassanjamilahmad.blogspot.com/2009/07/gtest-starters-help.html.
        +
        +## I am seeing compile errors mentioning std::type\_traits when I try to use Google Test on Solaris. ##
        +Google Test uses parts of the standard C++ library that SunStudio does not support.
        +Our users reported success using alternative implementations. Try running the build after runing this commad:
        +
        +`export CC=cc CXX=CC CXXFLAGS='-library=stlport4'`
        +
        +## How can my code detect if it is running in a test? ##
        +
        +If you write code that sniffs whether it's running in a test and does
        +different things accordingly, you are leaking test-only logic into
        +production code and there is no easy way to ensure that the test-only
        +code paths aren't run by mistake in production.  Such cleverness also
        +leads to
        +[Heisenbugs](http://en.wikipedia.org/wiki/Unusual_software_bug#Heisenbug).
        +Therefore we strongly advise against the practice, and Google Test doesn't
        +provide a way to do it.
        +
        +In general, the recommended way to cause the code to behave
        +differently under test is [dependency injection](http://jamesshore.com/Blog/Dependency-Injection-Demystified.html).
        +You can inject different functionality from the test and from the
        +production code.  Since your production code doesn't link in the
        +for-test logic at all, there is no danger in accidentally running it.
        +
        +However, if you _really_, _really_, _really_ have no choice, and if
        +you follow the rule of ending your test program names with `_test`,
        +you can use the _horrible_ hack of sniffing your executable name
        +(`argv[0]` in `main()`) to know whether the code is under test.
        +
        +## Google Test defines a macro that clashes with one defined by another library. How do I deal with that? ##
        +
        +In C++, macros don't obey namespaces.  Therefore two libraries that
        +both define a macro of the same name will clash if you #include both
        +definitions.  In case a Google Test macro clashes with another
        +library, you can force Google Test to rename its macro to avoid the
        +conflict.
        +
        +Specifically, if both Google Test and some other code define macro
        +`FOO`, you can add
        +```
        +  -DGTEST_DONT_DEFINE_FOO=1
        +```
        +to the compiler flags to tell Google Test to change the macro's name
        +from `FOO` to `GTEST_FOO`. For example, with `-DGTEST_DONT_DEFINE_TEST=1`, you'll need to write
        +```
        +  GTEST_TEST(SomeTest, DoesThis) { ... }
        +```
        +instead of
        +```
        +  TEST(SomeTest, DoesThis) { ... }
        +```
        +in order to define a test.
        +
        +Currently, the following `TEST`, `FAIL`, `SUCCEED`, and the basic comparison assertion macros can have alternative names. You can see the full list of covered macros [here](http://www.google.com/codesearch?q=if+!GTEST_DONT_DEFINE_\w%2B+package:http://googletest\.googlecode\.com+file:/include/gtest/gtest.h). More information can be found in the "Avoiding Macro Name Clashes" section of the README file.
        +
        +
        +## Is it OK if I have two separate `TEST(Foo, Bar)` test methods defined in different namespaces? ##
        +
        +Yes.
        +
        +The rule is **all test methods in the same test case must use the same fixture class**. This means that the following is **allowed** because both tests use the same fixture class (`::testing::Test`).
        +
        +```
        +namespace foo {
        +TEST(CoolTest, DoSomething) {
        +  SUCCEED();
        +}
        +}  // namespace foo
        +
        +namespace bar {
        +TEST(CoolTest, DoSomething) {
        +  SUCCEED();
        +}
        +}  // namespace foo
        +```
        +
        +However, the following code is **not allowed** and will produce a runtime error from Google Test because the test methods are using different test fixture classes with the same test case name.
        +
        +```
        +namespace foo {
        +class CoolTest : public ::testing::Test {};  // Fixture foo::CoolTest
        +TEST_F(CoolTest, DoSomething) {
        +  SUCCEED();
        +}
        +}  // namespace foo
        +
        +namespace bar {
        +class CoolTest : public ::testing::Test {};  // Fixture: bar::CoolTest
        +TEST_F(CoolTest, DoSomething) {
        +  SUCCEED();
        +}
        +}  // namespace foo
        +```
        +
        +## How do I build Google Testing Framework with Xcode 4? ##
        +
        +If you try to build Google Test's Xcode project with Xcode 4.0 or later, you may encounter an error message that looks like
        +"Missing SDK in target gtest\_framework: /Developer/SDKs/MacOSX10.4u.sdk". That means that Xcode does not support the SDK the project is targeting. See the Xcode section in the [README](http://code.google.com/p/googletest/source/browse/trunk/README) file on how to resolve this.
        +
        +## My question is not covered in your FAQ! ##
        +
        +If you cannot find the answer to your question in this FAQ, there are
        +some other resources you can use:
        +
        +  1. read other [wiki pages](http://code.google.com/p/googletest/w/list),
        +  1. search the mailing list [archive](http://groups.google.com/group/googletestframework/topics),
        +  1. ask it on [googletestframework@googlegroups.com](mailto:googletestframework@googlegroups.com) and someone will answer it (to prevent spam, we require you to join the [discussion group](http://groups.google.com/group/googletestframework) before you can post.).
        +
        +Please note that creating an issue in the
        +[issue tracker](http://code.google.com/p/googletest/issues/list) is _not_
        +a good way to get your answer, as it is monitored infrequently by a
        +very small number of people.
        +
        +When asking a question, it's helpful to provide as much of the
        +following information as possible (people cannot help you if there's
        +not enough information in your question):
        +
        +  * the version (or the revision number if you check out from SVN directly) of Google Test you use (Google Test is under active development, so it's possible that your problem has been solved in a later version),
        +  * your operating system,
        +  * the name and version of your compiler,
        +  * the complete command line flags you give to your compiler,
        +  * the complete compiler error messages (if the question is about compilation),
        +  * the _actual_ code (ideally, a minimal but complete program) that has the problem you encounter.
        \ No newline at end of file
        diff --git a/lib/ann/fann/lib/googletest/docs/Primer.md b/lib/ann/fann/lib/googletest/docs/Primer.md
        new file mode 100644
        index 0000000..b57ed4a
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/docs/Primer.md
        @@ -0,0 +1,502 @@
        +
        +
        +# Introduction: Why Google C++ Testing Framework? #
        +
        +_Google C++ Testing Framework_ helps you write better C++ tests.
        +
        +No matter whether you work on Linux, Windows, or a Mac, if you write C++ code,
        +Google Test can help you.
        +
        +So what makes a good test, and how does Google C++ Testing Framework fit in? We believe:
        +  1. Tests should be _independent_ and _repeatable_. It's a pain to debug a test that succeeds or fails as a result of other tests.  Google C++ Testing Framework isolates the tests by running each of them on a different object. When a test fails, Google C++ Testing Framework allows you to run it in isolation for quick debugging.
        +  1. Tests should be well _organized_ and reflect the structure of the tested code.  Google C++ Testing Framework groups related tests into test cases that can share data and subroutines. This common pattern is easy to recognize and makes tests easy to maintain. Such consistency is especially helpful when people switch projects and start to work on a new code base.
        +  1. Tests should be _portable_ and _reusable_. The open-source community has a lot of code that is platform-neutral, its tests should also be platform-neutral.  Google C++ Testing Framework works on different OSes, with different compilers (gcc, MSVC, and others), with or without exceptions, so Google C++ Testing Framework tests can easily work with a variety of configurations.  (Note that the current release only contains build scripts for Linux - we are actively working on scripts for other platforms.)
        +  1. When tests fail, they should provide as much _information_ about the problem as possible. Google C++ Testing Framework doesn't stop at the first test failure. Instead, it only stops the current test and continues with the next. You can also set up tests that report non-fatal failures after which the current test continues. Thus, you can detect and fix multiple bugs in a single run-edit-compile cycle.
        +  1. The testing framework should liberate test writers from housekeeping chores and let them focus on the test _content_.  Google C++ Testing Framework automatically keeps track of all tests defined, and doesn't require the user to enumerate them in order to run them.
        +  1. Tests should be _fast_. With Google C++ Testing Framework, you can reuse shared resources across tests and pay for the set-up/tear-down only once, without making tests depend on each other.
        +
        +Since Google C++ Testing Framework is based on the popular xUnit
        +architecture, you'll feel right at home if you've used JUnit or PyUnit before.
        +If not, it will take you about 10 minutes to learn the basics and get started.
        +So let's go!
        +
        +_Note:_ We sometimes refer to Google C++ Testing Framework informally
        +as _Google Test_.
        +
        +# Setting up a New Test Project #
        +
        +To write a test program using Google Test, you need to compile Google
        +Test into a library and link your test with it.  We provide build
        +files for some popular build systems: `msvc/` for Visual Studio,
        +`xcode/` for Mac Xcode, `make/` for GNU make, `codegear/` for Borland
        +C++ Builder, and the autotools script (deprecated) and
        +`CMakeLists.txt` for CMake (recommended) in the Google Test root
        +directory.  If your build system is not on this list, you can take a
        +look at `make/Makefile` to learn how Google Test should be compiled
        +(basically you want to compile `src/gtest-all.cc` with `GTEST_ROOT`
        +and `GTEST_ROOT/include` in the header search path, where `GTEST_ROOT`
        +is the Google Test root directory).
        +
        +Once you are able to compile the Google Test library, you should
        +create a project or build target for your test program.  Make sure you
        +have `GTEST_ROOT/include` in the header search path so that the
        +compiler can find `"gtest/gtest.h"` when compiling your test.  Set up
        +your test project to link with the Google Test library (for example,
        +in Visual Studio, this is done by adding a dependency on
        +`gtest.vcproj`).
        +
        +If you still have questions, take a look at how Google Test's own
        +tests are built and use them as examples.
        +
        +# Basic Concepts #
        +
        +When using Google Test, you start by writing _assertions_, which are statements
        +that check whether a condition is true. An assertion's result can be _success_,
        +_nonfatal failure_, or _fatal failure_. If a fatal failure occurs, it aborts
        +the current function; otherwise the program continues normally.
        +
        +_Tests_ use assertions to verify the tested code's behavior. If a test crashes
        +or has a failed assertion, then it _fails_; otherwise it _succeeds_.
        +
        +A _test case_ contains one or many tests. You should group your tests into test
        +cases that reflect the structure of the tested code. When multiple tests in a
        +test case need to share common objects and subroutines, you can put them into a
        +_test fixture_ class.
        +
        +A _test program_ can contain multiple test cases.
        +
        +We'll now explain how to write a test program, starting at the individual
        +assertion level and building up to tests and test cases.
        +
        +# Assertions #
        +
        +Google Test assertions are macros that resemble function calls. You test a
        +class or function by making assertions about its behavior. When an assertion
        +fails, Google Test prints the assertion's source file and line number location,
        +along with a failure message. You may also supply a custom failure message
        +which will be appended to Google Test's message.
        +
        +The assertions come in pairs that test the same thing but have different
        +effects on the current function. `ASSERT_*` versions generate fatal failures
        +when they fail, and **abort the current function**. `EXPECT_*` versions generate
        +nonfatal failures, which don't abort the current function. Usually `EXPECT_*`
        +are preferred, as they allow more than one failures to be reported in a test.
        +However, you should use `ASSERT_*` if it doesn't make sense to continue when
        +the assertion in question fails.
        +
        +Since a failed `ASSERT_*` returns from the current function immediately,
        +possibly skipping clean-up code that comes after it, it may cause a space leak.
        +Depending on the nature of the leak, it may or may not be worth fixing - so
        +keep this in mind if you get a heap checker error in addition to assertion
        +errors.
        +
        +To provide a custom failure message, simply stream it into the macro using the
        +`<<` operator, or a sequence of such operators. An example:
        +```
        +ASSERT_EQ(x.size(), y.size()) << "Vectors x and y are of unequal length";
        +
        +for (int i = 0; i < x.size(); ++i) {
        +  EXPECT_EQ(x[i], y[i]) << "Vectors x and y differ at index " << i;
        +}
        +```
        +
        +Anything that can be streamed to an `ostream` can be streamed to an assertion
        +macro--in particular, C strings and `string` objects. If a wide string
        +(`wchar_t*`, `TCHAR*` in `UNICODE` mode on Windows, or `std::wstring`) is
        +streamed to an assertion, it will be translated to UTF-8 when printed.
        +
        +## Basic Assertions ##
        +
        +These assertions do basic true/false condition testing.
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_TRUE(`_condition_`)`;  | `EXPECT_TRUE(`_condition_`)`;   | _condition_ is true |
        +| `ASSERT_FALSE(`_condition_`)`; | `EXPECT_FALSE(`_condition_`)`;  | _condition_ is false |
        +
        +Remember, when they fail, `ASSERT_*` yields a fatal failure and
        +returns from the current function, while `EXPECT_*` yields a nonfatal
        +failure, allowing the function to continue running. In either case, an
        +assertion failure means its containing test fails.
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +## Binary Comparison ##
        +
        +This section describes assertions that compare two values.
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +|`ASSERT_EQ(`_expected_`, `_actual_`);`|`EXPECT_EQ(`_expected_`, `_actual_`);`| _expected_ `==` _actual_ |
        +|`ASSERT_NE(`_val1_`, `_val2_`);`      |`EXPECT_NE(`_val1_`, `_val2_`);`      | _val1_ `!=` _val2_ |
        +|`ASSERT_LT(`_val1_`, `_val2_`);`      |`EXPECT_LT(`_val1_`, `_val2_`);`      | _val1_ `<` _val2_ |
        +|`ASSERT_LE(`_val1_`, `_val2_`);`      |`EXPECT_LE(`_val1_`, `_val2_`);`      | _val1_ `<=` _val2_ |
        +|`ASSERT_GT(`_val1_`, `_val2_`);`      |`EXPECT_GT(`_val1_`, `_val2_`);`      | _val1_ `>` _val2_ |
        +|`ASSERT_GE(`_val1_`, `_val2_`);`      |`EXPECT_GE(`_val1_`, `_val2_`);`      | _val1_ `>=` _val2_ |
        +
        +In the event of a failure, Google Test prints both _val1_ and _val2_
        +. In `ASSERT_EQ*` and `EXPECT_EQ*` (and all other equality assertions
        +we'll introduce later), you should put the expression you want to test
        +in the position of _actual_, and put its expected value in _expected_,
        +as Google Test's failure messages are optimized for this convention.
        +
        +Value arguments must be comparable by the assertion's comparison
        +operator or you'll get a compiler error.  We used to require the
        +arguments to support the `<<` operator for streaming to an `ostream`,
        +but it's no longer necessary since v1.6.0 (if `<<` is supported, it
        +will be called to print the arguments when the assertion fails;
        +otherwise Google Test will attempt to print them in the best way it
        +can. For more details and how to customize the printing of the
        +arguments, see this Google Mock [recipe](http://code.google.com/p/googlemock/wiki/CookBook#Teaching_Google_Mock_How_to_Print_Your_Values).).
        +
        +These assertions can work with a user-defined type, but only if you define the
        +corresponding comparison operator (e.g. `==`, `<`, etc).  If the corresponding
        +operator is defined, prefer using the `ASSERT_*()` macros because they will
        +print out not only the result of the comparison, but the two operands as well.
        +
        +Arguments are always evaluated exactly once. Therefore, it's OK for the
        +arguments to have side effects. However, as with any ordinary C/C++ function,
        +the arguments' evaluation order is undefined (i.e. the compiler is free to
        +choose any order) and your code should not depend on any particular argument
        +evaluation order.
        +
        +`ASSERT_EQ()` does pointer equality on pointers. If used on two C strings, it
        +tests if they are in the same memory location, not if they have the same value.
        +Therefore, if you want to compare C strings (e.g. `const char*`) by value, use
        +`ASSERT_STREQ()` , which will be described later on. In particular, to assert
        +that a C string is `NULL`, use `ASSERT_STREQ(NULL, c_string)` . However, to
        +compare two `string` objects, you should use `ASSERT_EQ`.
        +
        +Macros in this section work with both narrow and wide string objects (`string`
        +and `wstring`).
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +## String Comparison ##
        +
        +The assertions in this group compare two **C strings**. If you want to compare
        +two `string` objects, use `EXPECT_EQ`, `EXPECT_NE`, and etc instead.
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_STREQ(`_expected\_str_`, `_actual\_str_`);`    | `EXPECT_STREQ(`_expected\_str_`, `_actual\_str_`);`     | the two C strings have the same content |
        +| `ASSERT_STRNE(`_str1_`, `_str2_`);`    | `EXPECT_STRNE(`_str1_`, `_str2_`);`     | the two C strings have different content |
        +| `ASSERT_STRCASEEQ(`_expected\_str_`, `_actual\_str_`);`| `EXPECT_STRCASEEQ(`_expected\_str_`, `_actual\_str_`);` | the two C strings have the same content, ignoring case |
        +| `ASSERT_STRCASENE(`_str1_`, `_str2_`);`| `EXPECT_STRCASENE(`_str1_`, `_str2_`);` | the two C strings have different content, ignoring case |
        +
        +Note that "CASE" in an assertion name means that case is ignored.
        +
        +`*STREQ*` and `*STRNE*` also accept wide C strings (`wchar_t*`). If a
        +comparison of two wide strings fails, their values will be printed as UTF-8
        +narrow strings.
        +
        +A `NULL` pointer and an empty string are considered _different_.
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +See also: For more string comparison tricks (substring, prefix, suffix, and
        +regular expression matching, for example), see the [Advanced Google Test Guide](AdvancedGuide.md).
        +
        +# Simple Tests #
        +
        +To create a test:
        +  1. Use the `TEST()` macro to define and name a test function, These are ordinary C++ functions that don't return a value.
        +  1. In this function, along with any valid C++ statements you want to include, use the various Google Test assertions to check values.
        +  1. The test's result is determined by the assertions; if any assertion in the test fails (either fatally or non-fatally), or if the test crashes, the entire test fails. Otherwise, it succeeds.
        +
        +```
        +TEST(test_case_name, test_name) {
        + ... test body ...
        +}
        +```
        +
        +
        +`TEST()` arguments go from general to specific. The _first_ argument is the
        +name of the test case, and the _second_ argument is the test's name within the
        +test case. Both names must be valid C++ identifiers, and they should not contain underscore (`_`). A test's _full name_ consists of its containing test case and its
        +individual name. Tests from different test cases can have the same individual
        +name.
        +
        +For example, let's take a simple integer function:
        +```
        +int Factorial(int n); // Returns the factorial of n
        +```
        +
        +A test case for this function might look like:
        +```
        +// Tests factorial of 0.
        +TEST(FactorialTest, HandlesZeroInput) {
        +  EXPECT_EQ(1, Factorial(0));
        +}
        +
        +// Tests factorial of positive numbers.
        +TEST(FactorialTest, HandlesPositiveInput) {
        +  EXPECT_EQ(1, Factorial(1));
        +  EXPECT_EQ(2, Factorial(2));
        +  EXPECT_EQ(6, Factorial(3));
        +  EXPECT_EQ(40320, Factorial(8));
        +}
        +```
        +
        +Google Test groups the test results by test cases, so logically-related tests
        +should be in the same test case; in other words, the first argument to their
        +`TEST()` should be the same. In the above example, we have two tests,
        +`HandlesZeroInput` and `HandlesPositiveInput`, that belong to the same test
        +case `FactorialTest`.
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +# Test Fixtures: Using the Same Data Configuration for Multiple Tests #
        +
        +If you find yourself writing two or more tests that operate on similar data,
        +you can use a _test fixture_. It allows you to reuse the same configuration of
        +objects for several different tests.
        +
        +To create a fixture, just:
        +  1. Derive a class from `::testing::Test` . Start its body with `protected:` or `public:` as we'll want to access fixture members from sub-classes.
        +  1. Inside the class, declare any objects you plan to use.
        +  1. If necessary, write a default constructor or `SetUp()` function to prepare the objects for each test. A common mistake is to spell `SetUp()` as `Setup()` with a small `u` - don't let that happen to you.
        +  1. If necessary, write a destructor or `TearDown()` function to release any resources you allocated in `SetUp()` . To learn when you should use the constructor/destructor and when you should use `SetUp()/TearDown()`, read this [FAQ entry](http://code.google.com/p/googletest/wiki/FAQ#Should_I_use_the_constructor/destructor_of_the_test_fixture_or_t).
        +  1. If needed, define subroutines for your tests to share.
        +
        +When using a fixture, use `TEST_F()` instead of `TEST()` as it allows you to
        +access objects and subroutines in the test fixture:
        +```
        +TEST_F(test_case_name, test_name) {
        + ... test body ...
        +}
        +```
        +
        +Like `TEST()`, the first argument is the test case name, but for `TEST_F()`
        +this must be the name of the test fixture class. You've probably guessed: `_F`
        +is for fixture.
        +
        +Unfortunately, the C++ macro system does not allow us to create a single macro
        +that can handle both types of tests. Using the wrong macro causes a compiler
        +error.
        +
        +Also, you must first define a test fixture class before using it in a
        +`TEST_F()`, or you'll get the compiler error "`virtual outside class
        +declaration`".
        +
        +For each test defined with `TEST_F()`, Google Test will:
        +  1. Create a _fresh_ test fixture at runtime
        +  1. Immediately initialize it via `SetUp()` ,
        +  1. Run the test
        +  1. Clean up by calling `TearDown()`
        +  1. Delete the test fixture.  Note that different tests in the same test case have different test fixture objects, and Google Test always deletes a test fixture before it creates the next one. Google Test does not reuse the same test fixture for multiple tests. Any changes one test makes to the fixture do not affect other tests.
        +
        +As an example, let's write tests for a FIFO queue class named `Queue`, which
        +has the following interface:
        +```
        +template <typename E> // E is the element type.
        +class Queue {
        + public:
        +  Queue();
        +  void Enqueue(const E& element);
        +  E* Dequeue(); // Returns NULL if the queue is empty.
        +  size_t size() const;
        +  ...
        +};
        +```
        +
        +First, define a fixture class. By convention, you should give it the name
        +`FooTest` where `Foo` is the class being tested.
        +```
        +class QueueTest : public ::testing::Test {
        + protected:
        +  virtual void SetUp() {
        +    q1_.Enqueue(1);
        +    q2_.Enqueue(2);
        +    q2_.Enqueue(3);
        +  }
        +
        +  // virtual void TearDown() {}
        +
        +  Queue<int> q0_;
        +  Queue<int> q1_;
        +  Queue<int> q2_;
        +};
        +```
        +
        +In this case, `TearDown()` is not needed since we don't have to clean up after
        +each test, other than what's already done by the destructor.
        +
        +Now we'll write tests using `TEST_F()` and this fixture.
        +```
        +TEST_F(QueueTest, IsEmptyInitially) {
        +  EXPECT_EQ(0, q0_.size());
        +}
        +
        +TEST_F(QueueTest, DequeueWorks) {
        +  int* n = q0_.Dequeue();
        +  EXPECT_EQ(NULL, n);
        +
        +  n = q1_.Dequeue();
        +  ASSERT_TRUE(n != NULL);
        +  EXPECT_EQ(1, *n);
        +  EXPECT_EQ(0, q1_.size());
        +  delete n;
        +
        +  n = q2_.Dequeue();
        +  ASSERT_TRUE(n != NULL);
        +  EXPECT_EQ(2, *n);
        +  EXPECT_EQ(1, q2_.size());
        +  delete n;
        +}
        +```
        +
        +The above uses both `ASSERT_*` and `EXPECT_*` assertions. The rule of thumb is
        +to use `EXPECT_*` when you want the test to continue to reveal more errors
        +after the assertion failure, and use `ASSERT_*` when continuing after failure
        +doesn't make sense. For example, the second assertion in the `Dequeue` test is
        +`ASSERT_TRUE(n != NULL)`, as we need to dereference the pointer `n` later,
        +which would lead to a segfault when `n` is `NULL`.
        +
        +When these tests run, the following happens:
        +  1. Google Test constructs a `QueueTest` object (let's call it `t1` ).
        +  1. `t1.SetUp()` initializes `t1` .
        +  1. The first test ( `IsEmptyInitially` ) runs on `t1` .
        +  1. `t1.TearDown()` cleans up after the test finishes.
        +  1. `t1` is destructed.
        +  1. The above steps are repeated on another `QueueTest` object, this time running the `DequeueWorks` test.
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +_Note_: Google Test automatically saves all _Google Test_ flags when a test
        +object is constructed, and restores them when it is destructed.
        +
        +# Invoking the Tests #
        +
        +`TEST()` and `TEST_F()` implicitly register their tests with Google Test. So, unlike with many other C++ testing frameworks, you don't have to re-list all your defined tests in order to run them.
        +
        +After defining your tests, you can run them with `RUN_ALL_TESTS()` , which returns `0` if all the tests are successful, or `1` otherwise. Note that `RUN_ALL_TESTS()` runs _all tests_ in your link unit -- they can be from different test cases, or even different source files.
        +
        +When invoked, the `RUN_ALL_TESTS()` macro:
        +  1. Saves the state of all  Google Test flags.
        +  1. Creates a test fixture object for the first test.
        +  1. Initializes it via `SetUp()`.
        +  1. Runs the test on the fixture object.
        +  1. Cleans up the fixture via `TearDown()`.
        +  1. Deletes the fixture.
        +  1. Restores the state of all Google Test flags.
        +  1. Repeats the above steps for the next test, until all tests have run.
        +
        +In addition, if the text fixture's constructor generates a fatal failure in
        +step 2, there is no point for step 3 - 5 and they are thus skipped. Similarly,
        +if step 3 generates a fatal failure, step 4 will be skipped.
        +
        +_Important_: You must not ignore the return value of `RUN_ALL_TESTS()`, or `gcc`
        +will give you a compiler error. The rationale for this design is that the
        +automated testing service determines whether a test has passed based on its
        +exit code, not on its stdout/stderr output; thus your `main()` function must
        +return the value of `RUN_ALL_TESTS()`.
        +
        +Also, you should call `RUN_ALL_TESTS()` only **once**. Calling it more than once
        +conflicts with some advanced Google Test features (e.g. thread-safe death
        +tests) and thus is not supported.
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +# Writing the main() Function #
        +
        +You can start from this boilerplate:
        +```
        +#include "this/package/foo.h"
        +#include "gtest/gtest.h"
        +
        +namespace {
        +
        +// The fixture for testing class Foo.
        +class FooTest : public ::testing::Test {
        + protected:
        +  // You can remove any or all of the following functions if its body
        +  // is empty.
        +
        +  FooTest() {
        +    // You can do set-up work for each test here.
        +  }
        +
        +  virtual ~FooTest() {
        +    // You can do clean-up work that doesn't throw exceptions here.
        +  }
        +
        +  // If the constructor and destructor are not enough for setting up
        +  // and cleaning up each test, you can define the following methods:
        +
        +  virtual void SetUp() {
        +    // Code here will be called immediately after the constructor (right
        +    // before each test).
        +  }
        +
        +  virtual void TearDown() {
        +    // Code here will be called immediately after each test (right
        +    // before the destructor).
        +  }
        +
        +  // Objects declared here can be used by all tests in the test case for Foo.
        +};
        +
        +// Tests that the Foo::Bar() method does Abc.
        +TEST_F(FooTest, MethodBarDoesAbc) {
        +  const string input_filepath = "this/package/testdata/myinputfile.dat";
        +  const string output_filepath = "this/package/testdata/myoutputfile.dat";
        +  Foo f;
        +  EXPECT_EQ(0, f.Bar(input_filepath, output_filepath));
        +}
        +
        +// Tests that Foo does Xyz.
        +TEST_F(FooTest, DoesXyz) {
        +  // Exercises the Xyz feature of Foo.
        +}
        +
        +}  // namespace
        +
        +int main(int argc, char **argv) {
        +  ::testing::InitGoogleTest(&argc, argv);
        +  return RUN_ALL_TESTS();
        +}
        +```
        +
        +The `::testing::InitGoogleTest()` function parses the command line for Google
        +Test flags, and removes all recognized flags. This allows the user to control a
        +test program's behavior via various flags, which we'll cover in [AdvancedGuide](AdvancedGuide.md).
        +You must call this function before calling `RUN_ALL_TESTS()`, or the flags
        +won't be properly initialized.
        +
        +On Windows, `InitGoogleTest()` also works with wide strings, so it can be used
        +in programs compiled in `UNICODE` mode as well.
        +
        +But maybe you think that writing all those main() functions is too much work? We agree with you completely and that's why Google Test provides a basic implementation of main(). If it fits your needs, then just link your test with gtest\_main library and you are good to go.
        +
        +## Important note for Visual C++ users ##
        +If you put your tests into a library and your `main()` function is in a different library or in your .exe file, those tests will not run. The reason is a [bug](https://connect.microsoft.com/feedback/viewfeedback.aspx?FeedbackID=244410&siteid=210) in Visual C++. When you define your tests, Google Test creates certain static objects to register them. These objects are not referenced from elsewhere but their constructors are still supposed to run. When Visual C++ linker sees that nothing in the library is referenced from other places it throws the library out. You have to reference your library with tests from your main program to keep the linker from discarding it. Here is how to do it. Somewhere in your library code declare a function:
        +```
        +__declspec(dllexport) int PullInMyLibrary() { return 0; }
        +```
        +If you put your tests in a static library (not DLL) then `__declspec(dllexport)` is not required. Now, in your main program, write a code that invokes that function:
        +```
        +int PullInMyLibrary();
        +static int dummy = PullInMyLibrary();
        +```
        +This will keep your tests referenced and will make them register themselves at startup.
        +
        +In addition, if you define your tests in a static library, add `/OPT:NOREF` to your main program linker options. If you use MSVC++ IDE, go to your .exe project properties/Configuration Properties/Linker/Optimization and set References setting to `Keep Unreferenced Data (/OPT:NOREF)`. This will keep Visual C++ linker from discarding individual symbols generated by your tests from the final executable.
        +
        +There is one more pitfall, though. If you use Google Test as a static library (that's how it is defined in gtest.vcproj) your tests must also reside in a static library. If you have to have them in a DLL, you _must_ change Google Test to build into a DLL as well. Otherwise your tests will not run correctly or will not run at all. The general conclusion here is: make your life easier - do not write your tests in libraries!
        +
        +# Where to Go from Here #
        +
        +Congratulations! You've learned the Google Test basics. You can start writing
        +and running Google Test tests, read some [samples](Samples.md), or continue with
        +[AdvancedGuide](AdvancedGuide.md), which describes many more useful Google Test features.
        +
        +# Known Limitations #
        +
        +Google Test is designed to be thread-safe.  The implementation is
        +thread-safe on systems where the `pthreads` library is available.  It
        +is currently _unsafe_ to use Google Test assertions from two threads
        +concurrently on other systems (e.g. Windows).  In most tests this is
        +not an issue as usually the assertions are done in the main thread. If
        +you want to help, you can volunteer to implement the necessary
        +synchronization primitives in `gtest-port.h` for your platform.
        diff --git a/lib/ann/fann/lib/googletest/docs/PumpManual.md b/lib/ann/fann/lib/googletest/docs/PumpManual.md
        new file mode 100644
        index 0000000..8184f15
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/docs/PumpManual.md
        @@ -0,0 +1,177 @@
        +
        +
        +<b>P</b>ump is <b>U</b>seful for <b>M</b>eta <b>P</b>rogramming.
        +
        +# The Problem #
        +
        +Template and macro libraries often need to define many classes,
        +functions, or macros that vary only (or almost only) in the number of
        +arguments they take. It's a lot of repetitive, mechanical, and
        +error-prone work.
        +
        +Variadic templates and variadic macros can alleviate the problem.
        +However, while both are being considered by the C++ committee, neither
        +is in the standard yet or widely supported by compilers.  Thus they
        +are often not a good choice, especially when your code needs to be
        +portable. And their capabilities are still limited.
        +
        +As a result, authors of such libraries often have to write scripts to
        +generate their implementation. However, our experience is that it's
        +tedious to write such scripts, which tend to reflect the structure of
        +the generated code poorly and are often hard to read and edit. For
        +example, a small change needed in the generated code may require some
        +non-intuitive, non-trivial changes in the script. This is especially
        +painful when experimenting with the code.
        +
        +# Our Solution #
        +
        +Pump (for Pump is Useful for Meta Programming, Pretty Useful for Meta
        +Programming, or Practical Utility for Meta Programming, whichever you
        +prefer) is a simple meta-programming tool for C++. The idea is that a
        +programmer writes a `foo.pump` file which contains C++ code plus meta
        +code that manipulates the C++ code. The meta code can handle
        +iterations over a range, nested iterations, local meta variable
        +definitions, simple arithmetic, and conditional expressions. You can
        +view it as a small Domain-Specific Language. The meta language is
        +designed to be non-intrusive (s.t. it won't confuse Emacs' C++ mode,
        +for example) and concise, making Pump code intuitive and easy to
        +maintain.
        +
        +## Highlights ##
        +
        +  * The implementation is in a single Python script and thus ultra portable: no build or installation is needed and it works cross platforms.
        +  * Pump tries to be smart with respect to [Google's style guide](http://code.google.com/p/google-styleguide/): it breaks long lines (easy to have when they are generated) at acceptable places to fit within 80 columns and indent the continuation lines correctly.
        +  * The format is human-readable and more concise than XML.
        +  * The format works relatively well with Emacs' C++ mode.
        +
        +## Examples ##
        +
        +The following Pump code (where meta keywords start with `$`, `[[` and `]]` are meta brackets, and `$$` starts a meta comment that ends with the line):
        +
        +```
        +$var n = 3     $$ Defines a meta variable n.
        +$range i 0..n  $$ Declares the range of meta iterator i (inclusive).
        +$for i [[
        +               $$ Meta loop.
        +// Foo$i does blah for $i-ary predicates.
        +$range j 1..i
        +template <size_t N $for j [[, typename A$j]]>
        +class Foo$i {
        +$if i == 0 [[
        +  blah a;
        +]] $elif i <= 2 [[
        +  blah b;
        +]] $else [[
        +  blah c;
        +]]
        +};
        +
        +]]
        +```
        +
        +will be translated by the Pump compiler to:
        +
        +```
        +// Foo0 does blah for 0-ary predicates.
        +template <size_t N>
        +class Foo0 {
        +  blah a;
        +};
        +
        +// Foo1 does blah for 1-ary predicates.
        +template <size_t N, typename A1>
        +class Foo1 {
        +  blah b;
        +};
        +
        +// Foo2 does blah for 2-ary predicates.
        +template <size_t N, typename A1, typename A2>
        +class Foo2 {
        +  blah b;
        +};
        +
        +// Foo3 does blah for 3-ary predicates.
        +template <size_t N, typename A1, typename A2, typename A3>
        +class Foo3 {
        +  blah c;
        +};
        +```
        +
        +In another example,
        +
        +```
        +$range i 1..n
        +Func($for i + [[a$i]]);
        +$$ The text between i and [[ is the separator between iterations.
        +```
        +
        +will generate one of the following lines (without the comments), depending on the value of `n`:
        +
        +```
        +Func();              // If n is 0.
        +Func(a1);            // If n is 1.
        +Func(a1 + a2);       // If n is 2.
        +Func(a1 + a2 + a3);  // If n is 3.
        +// And so on...
        +```
        +
        +## Constructs ##
        +
        +We support the following meta programming constructs:
        +
        +| `$var id = exp` | Defines a named constant value. `$id` is valid util the end of the current meta lexical block. |
        +|:----------------|:-----------------------------------------------------------------------------------------------|
        +| `$range id exp..exp` | Sets the range of an iteration variable, which can be reused in multiple loops later.          |
        +| `$for id sep [[ code ]]` | Iteration. The range of `id` must have been defined earlier. `$id` is valid in `code`.         |
        +| `$($)`          | Generates a single `$` character.                                                              |
        +| `$id`           | Value of the named constant or iteration variable.                                             |
        +| `$(exp)`        | Value of the expression.                                                                       |
        +| `$if exp [[ code ]] else_branch` | Conditional.                                                                                   |
        +| `[[ code ]]`    | Meta lexical block.                                                                            |
        +| `cpp_code`      | Raw C++ code.                                                                                  |
        +| `$$ comment`    | Meta comment.                                                                                  |
        +
        +**Note:** To give the user some freedom in formatting the Pump source
        +code, Pump ignores a new-line character if it's right after `$for foo`
        +or next to `[[` or `]]`. Without this rule you'll often be forced to write
        +very long lines to get the desired output. Therefore sometimes you may
        +need to insert an extra new-line in such places for a new-line to show
        +up in your output.
        +
        +## Grammar ##
        +
        +```
        +code ::= atomic_code*
        +atomic_code ::= $var id = exp
        +    | $var id = [[ code ]]
        +    | $range id exp..exp
        +    | $for id sep [[ code ]]
        +    | $($)
        +    | $id
        +    | $(exp)
        +    | $if exp [[ code ]] else_branch
        +    | [[ code ]]
        +    | cpp_code
        +sep ::= cpp_code | empty_string
        +else_branch ::= $else [[ code ]]
        +    | $elif exp [[ code ]] else_branch
        +    | empty_string
        +exp ::= simple_expression_in_Python_syntax
        +```
        +
        +## Code ##
        +
        +You can find the source code of Pump in [scripts/pump.py](../scripts/pump.py). It is still
        +very unpolished and lacks automated tests, although it has been
        +successfully used many times. If you find a chance to use it in your
        +project, please let us know what you think!  We also welcome help on
        +improving Pump.
        +
        +## Real Examples ##
        +
        +You can find real-world applications of Pump in [Google Test](http://www.google.com/codesearch?q=file%3A\.pump%24+package%3Ahttp%3A%2F%2Fgoogletest\.googlecode\.com) and [Google Mock](http://www.google.com/codesearch?q=file%3A\.pump%24+package%3Ahttp%3A%2F%2Fgooglemock\.googlecode\.com).  The source file `foo.h.pump` generates `foo.h`.
        +
        +## Tips ##
        +
        +  * If a meta variable is followed by a letter or digit, you can separate them using `[[]]`, which inserts an empty string. For example `Foo$j[[]]Helper` generate `Foo1Helper` when `j` is 1.
        +  * To avoid extra-long Pump source lines, you can break a line anywhere you want by inserting `[[]]` followed by a new line. Since any new-line character next to `[[` or `]]` is ignored, the generated code won't contain this new line.
        diff --git a/lib/ann/fann/lib/googletest/docs/Samples.md b/lib/ann/fann/lib/googletest/docs/Samples.md
        new file mode 100644
        index 0000000..f21d200
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/docs/Samples.md
        @@ -0,0 +1,14 @@
        +If you're like us, you'd like to look at some Google Test sample code.  The
        +[samples folder](../samples) has a number of well-commented samples showing how to use a
        +variety of Google Test features.
        +
        +  * [Sample #1](../samples/sample1_unittest.cc) shows the basic steps of using Google Test to test C++ functions.
        +  * [Sample #2](../samples/sample2_unittest.cc) shows a more complex unit test for a class with multiple member functions.
        +  * [Sample #3](../samples/sample3_unittest.cc) uses a test fixture.
        +  * [Sample #4](../samples/sample4_unittest.cc) is another basic example of using Google Test.
        +  * [Sample #5](../samples/sample5_unittest.cc) teaches how to reuse a test fixture in multiple test cases by deriving sub-fixtures from it.
        +  * [Sample #6](../samples/sample6_unittest.cc) demonstrates type-parameterized tests.
        +  * [Sample #7](../samples/sample7_unittest.cc) teaches the basics of value-parameterized tests.
        +  * [Sample #8](../samples/sample8_unittest.cc) shows using `Combine()` in value-parameterized tests.
        +  * [Sample #9](../samples/sample9_unittest.cc) shows use of the listener API to modify Google Test's console output and the use of its reflection API to inspect test results.
        +  * [Sample #10](../samples/sample10_unittest.cc) shows use of the listener API to implement a primitive memory leak checker.
        diff --git a/lib/ann/fann/lib/googletest/docs/V1_5_AdvancedGuide.md b/lib/ann/fann/lib/googletest/docs/V1_5_AdvancedGuide.md
        new file mode 100644
        index 0000000..2c3fc1a
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/docs/V1_5_AdvancedGuide.md
        @@ -0,0 +1,2096 @@
        +
        +
        +Now that you have read [Primer](V1_5_Primer.md) and learned how to write tests
        +using Google Test, it's time to learn some new tricks. This document
        +will show you more assertions as well as how to construct complex
        +failure messages, propagate fatal failures, reuse and speed up your
        +test fixtures, and use various flags with your tests.
        +
        +# More Assertions #
        +
        +This section covers some less frequently used, but still significant,
        +assertions.
        +
        +## Explicit Success and Failure ##
        +
        +These three assertions do not actually test a value or expression. Instead,
        +they generate a success or failure directly. Like the macros that actually
        +perform a test, you may stream a custom failure message into the them.
        +
        +| `SUCCEED();` |
        +|:-------------|
        +
        +Generates a success. This does NOT make the overall test succeed. A test is
        +considered successful only if none of its assertions fail during its execution.
        +
        +Note: `SUCCEED()` is purely documentary and currently doesn't generate any
        +user-visible output. However, we may add `SUCCEED()` messages to Google Test's
        +output in the future.
        +
        +| `FAIL();`  | `ADD_FAILURE();` |
        +|:-----------|:-----------------|
        +
        +`FAIL*` generates a fatal failure while `ADD_FAILURE*` generates a nonfatal
        +failure. These are useful when control flow, rather than a Boolean expression,
        +deteremines the test's success or failure. For example, you might want to write
        +something like:
        +
        +```
        +switch(expression) {
        +  case 1: ... some checks ...
        +  case 2: ... some other checks
        +  ...
        +  default: FAIL() << "We shouldn't get here.";
        +}
        +```
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +## Exception Assertions ##
        +
        +These are for verifying that a piece of code throws (or does not
        +throw) an exception of the given type:
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_THROW(`_statement_, _exception\_type_`);`  | `EXPECT_THROW(`_statement_, _exception\_type_`);`  | _statement_ throws an exception of the given type  |
        +| `ASSERT_ANY_THROW(`_statement_`);`                | `EXPECT_ANY_THROW(`_statement_`);`                | _statement_ throws an exception of any type        |
        +| `ASSERT_NO_THROW(`_statement_`);`                 | `EXPECT_NO_THROW(`_statement_`);`                 | _statement_ doesn't throw any exception            |
        +
        +Examples:
        +
        +```
        +ASSERT_THROW(Foo(5), bar_exception);
        +
        +EXPECT_NO_THROW({
        +  int n = 5;
        +  Bar(&n);
        +});
        +```
        +
        +_Availability_: Linux, Windows, Mac; since version 1.1.0.
        +
        +## Predicate Assertions for Better Error Messages ##
        +
        +Even though Google Test has a rich set of assertions, they can never be
        +complete, as it's impossible (nor a good idea) to anticipate all the scenarios
        +a user might run into. Therefore, sometimes a user has to use `EXPECT_TRUE()`
        +to check a complex expression, for lack of a better macro. This has the problem
        +of not showing you the values of the parts of the expression, making it hard to
        +understand what went wrong. As a workaround, some users choose to construct the
        +failure message by themselves, streaming it into `EXPECT_TRUE()`. However, this
        +is awkward especially when the expression has side-effects or is expensive to
        +evaluate.
        +
        +Google Test gives you three different options to solve this problem:
        +
        +### Using an Existing Boolean Function ###
        +
        +If you already have a function or a functor that returns `bool` (or a type
        +that can be implicitly converted to `bool`), you can use it in a _predicate
        +assertion_ to get the function arguments printed for free:
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_PRED1(`_pred1, val1_`);`       | `EXPECT_PRED1(`_pred1, val1_`);` | _pred1(val1)_ returns true |
        +| `ASSERT_PRED2(`_pred2, val1, val2_`);` | `EXPECT_PRED2(`_pred2, val1, val2_`);` |  _pred2(val1, val2)_ returns true |
        +|  ...                | ...                    | ...          |
        +
        +In the above, _predn_ is an _n_-ary predicate function or functor, where
        +_val1_, _val2_, ..., and _valn_ are its arguments. The assertion succeeds
        +if the predicate returns `true` when applied to the given arguments, and fails
        +otherwise. When the assertion fails, it prints the value of each argument. In
        +either case, the arguments are evaluated exactly once.
        +
        +Here's an example. Given
        +
        +```
        +// Returns true iff m and n have no common divisors except 1.
        +bool MutuallyPrime(int m, int n) { ... }
        +const int a = 3;
        +const int b = 4;
        +const int c = 10;
        +```
        +
        +the assertion `EXPECT_PRED2(MutuallyPrime, a, b);` will succeed, while the
        +assertion `EXPECT_PRED2(MutuallyPrime, b, c);` will fail with the message
        +
        +<pre>
        +!MutuallyPrime(b, c) is false, where<br>
        +b is 4<br>
        +c is 10<br>
        +</pre>
        +
        +**Notes:**
        +
        +  1. If you see a compiler error "no matching function to call" when using `ASSERT_PRED*` or `EXPECT_PRED*`, please see [this](http://code.google.com/p/googletest/wiki/V1_5_FAQ#The_compiler_complains_%22no_matching_function_to_call%22) for how to resolve it.
        +  1. Currently we only provide predicate assertions of arity <= 5. If you need a higher-arity assertion, let us know.
        +
        +_Availability_: Linux, Windows, Mac
        +
        +### Using a Function That Returns an AssertionResult ###
        +
        +While `EXPECT_PRED*()` and friends are handy for a quick job, the
        +syntax is not satisfactory: you have to use different macros for
        +different arities, and it feels more like Lisp than C++.  The
        +`::testing::AssertionResult` class solves this problem.
        +
        +An `AssertionResult` object represents the result of an assertion
        +(whether it's a success or a failure, and an associated message).  You
        +can create an `AssertionResult` using one of these factory
        +functions:
        +
        +```
        +namespace testing {
        +
        +// Returns an AssertionResult object to indicate that an assertion has
        +// succeeded.
        +AssertionResult AssertionSuccess();
        +
        +// Returns an AssertionResult object to indicate that an assertion has
        +// failed.
        +AssertionResult AssertionFailure();
        +
        +}
        +```
        +
        +You can then use the `<<` operator to stream messages to the
        +`AssertionResult` object.
        +
        +To provide more readable messages in Boolean assertions
        +(e.g. `EXPECT_TRUE()`), write a predicate function that returns
        +`AssertionResult` instead of `bool`. For example, if you define
        +`IsEven()` as:
        +
        +```
        +::testing::AssertionResult IsEven(int n) {
        +  if ((n % 2) == 0)
        +    return ::testing::AssertionSuccess();
        +  else
        +    return ::testing::AssertionFailure() << n << " is odd";
        +}
        +```
        +
        +instead of:
        +
        +```
        +bool IsEven(int n) {
        +  return (n % 2) == 0;
        +}
        +```
        +
        +the failed assertion `EXPECT_TRUE(IsEven(Fib(4)))` will print:
        +
        +<pre>
        +Value of: !IsEven(Fib(4))<br>
        +Actual: false (*3 is odd*)<br>
        +Expected: true<br>
        +</pre>
        +
        +instead of a more opaque
        +
        +<pre>
        +Value of: !IsEven(Fib(4))<br>
        +Actual: false<br>
        +Expected: true<br>
        +</pre>
        +
        +If you want informative messages in `EXPECT_FALSE` and `ASSERT_FALSE`
        +as well, and are fine with making the predicate slower in the success
        +case, you can supply a success message:
        +
        +```
        +::testing::AssertionResult IsEven(int n) {
        +  if ((n % 2) == 0)
        +    return ::testing::AssertionSuccess() << n << " is even";
        +  else
        +    return ::testing::AssertionFailure() << n << " is odd";
        +}
        +```
        +
        +Then the statement `EXPECT_FALSE(IsEven(Fib(6)))` will print
        +
        +<pre>
        +Value of: !IsEven(Fib(6))<br>
        +Actual: true (8 is even)<br>
        +Expected: false<br>
        +</pre>
        +
        +_Availability_: Linux, Windows, Mac; since version 1.4.1.
        +
        +### Using a Predicate-Formatter ###
        +
        +If you find the default message generated by `(ASSERT|EXPECT)_PRED*` and
        +`(ASSERT|EXPECT)_(TRUE|FALSE)` unsatisfactory, or some arguments to your
        +predicate do not support streaming to `ostream`, you can instead use the
        +following _predicate-formatter assertions_ to _fully_ customize how the
        +message is formatted:
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_PRED_FORMAT1(`_pred\_format1, val1_`);`        | `EXPECT_PRED_FORMAT1(`_pred\_format1, val1_`); | _pred\_format1(val1)_ is successful |
        +| `ASSERT_PRED_FORMAT2(`_pred\_format2, val1, val2_`);` | `EXPECT_PRED_FORMAT2(`_pred\_format2, val1, val2_`);` | _pred\_format2(val1, val2)_ is successful |
        +| `...`               | `...`                  | `...`        |
        +
        +The difference between this and the previous two groups of macros is that instead of
        +a predicate, `(ASSERT|EXPECT)_PRED_FORMAT*` take a _predicate-formatter_
        +(_pred\_formatn_), which is a function or functor with the signature:
        +
        +`::testing::AssertionResult PredicateFormattern(const char* `_expr1_`, const char* `_expr2_`, ... const char* `_exprn_`, T1 `_val1_`, T2 `_val2_`, ... Tn `_valn_`);`
        +
        +where _val1_, _val2_, ..., and _valn_ are the values of the predicate
        +arguments, and _expr1_, _expr2_, ..., and _exprn_ are the corresponding
        +expressions as they appear in the source code. The types `T1`, `T2`, ..., and
        +`Tn` can be either value types or reference types. For example, if an
        +argument has type `Foo`, you can declare it as either `Foo` or `const Foo&`,
        +whichever is appropriate.
        +
        +A predicate-formatter returns a `::testing::AssertionResult` object to indicate
        +whether the assertion has succeeded or not. The only way to create such an
        +object is to call one of these factory functions:
        +
        +As an example, let's improve the failure message in the previous example, which uses `EXPECT_PRED2()`:
        +
        +```
        +// Returns the smallest prime common divisor of m and n,
        +// or 1 when m and n are mutually prime.
        +int SmallestPrimeCommonDivisor(int m, int n) { ... }
        +
        +// A predicate-formatter for asserting that two integers are mutually prime.
        +::testing::AssertionResult AssertMutuallyPrime(const char* m_expr,
        +                                               const char* n_expr,
        +                                               int m,
        +                                               int n) {
        +  if (MutuallyPrime(m, n))
        +    return ::testing::AssertionSuccess();
        + 
        +  return ::testing::AssertionFailure()
        +      << m_expr << " and " << n_expr << " (" << m << " and " << n
        +      << ") are not mutually prime, " << "as they have a common divisor "
        +      << SmallestPrimeCommonDivisor(m, n);
        +}
        +```
        +
        +With this predicate-formatter, we can use
        +
        +```
        +EXPECT_PRED_FORMAT2(AssertMutuallyPrime, b, c);
        +```
        +
        +to generate the message
        +
        +<pre>
        +b and c (4 and 10) are not mutually prime, as they have a common divisor 2.<br>
        +</pre>
        +
        +As you may have realized, many of the assertions we introduced earlier are
        +special cases of `(EXPECT|ASSERT)_PRED_FORMAT*`. In fact, most of them are
        +indeed defined using `(EXPECT|ASSERT)_PRED_FORMAT*`.
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +
        +## Floating-Point Comparison ##
        +
        +Comparing floating-point numbers is tricky. Due to round-off errors, it is
        +very unlikely that two floating-points will match exactly. Therefore,
        +`ASSERT_EQ` 's naive comparison usually doesn't work. And since floating-points
        +can have a wide value range, no single fixed error bound works. It's better to
        +compare by a fixed relative error bound, except for values close to 0 due to
        +the loss of precision there.
        +
        +In general, for floating-point comparison to make sense, the user needs to
        +carefully choose the error bound. If they don't want or care to, comparing in
        +terms of Units in the Last Place (ULPs) is a good default, and Google Test
        +provides assertions to do this. Full details about ULPs are quite long; if you
        +want to learn more, see
        +[this article on float comparison](http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm).
        +
        +### Floating-Point Macros ###
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_FLOAT_EQ(`_expected, actual_`);`  | `EXPECT_FLOAT_EQ(`_expected, actual_`);` | the two `float` values are almost equal |
        +| `ASSERT_DOUBLE_EQ(`_expected, actual_`);` | `EXPECT_DOUBLE_EQ(`_expected, actual_`);` | the two `double` values are almost equal |
        +
        +By "almost equal", we mean the two values are within 4 ULP's from each
        +other.
        +
        +The following assertions allow you to choose the acceptable error bound:
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_NEAR(`_val1, val2, abs\_error_`);` | `EXPECT_NEAR`_(val1, val2, abs\_error_`);` | the difference between _val1_ and _val2_ doesn't exceed the given absolute error |
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +### Floating-Point Predicate-Format Functions ###
        +
        +Some floating-point operations are useful, but not that often used. In order
        +to avoid an explosion of new macros, we provide them as predicate-format
        +functions that can be used in predicate assertion macros (e.g.
        +`EXPECT_PRED_FORMAT2`, etc).
        +
        +```
        +EXPECT_PRED_FORMAT2(::testing::FloatLE, val1, val2);
        +EXPECT_PRED_FORMAT2(::testing::DoubleLE, val1, val2);
        +```
        +
        +Verifies that _val1_ is less than, or almost equal to, _val2_. You can
        +replace `EXPECT_PRED_FORMAT2` in the above table with `ASSERT_PRED_FORMAT2`.
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +## Windows HRESULT assertions ##
        +
        +These assertions test for `HRESULT` success or failure.
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_HRESULT_SUCCEEDED(`_expression_`);` | `EXPECT_HRESULT_SUCCEEDED(`_expression_`);` | _expression_ is a success `HRESULT` |
        +| `ASSERT_HRESULT_FAILED(`_expression_`);`    | `EXPECT_HRESULT_FAILED(`_expression_`);`    | _expression_ is a failure `HRESULT` |
        +
        +The generated output contains the human-readable error message
        +associated with the `HRESULT` code returned by _expression_.
        +
        +You might use them like this:
        +
        +```
        +CComPtr shell;
        +ASSERT_HRESULT_SUCCEEDED(shell.CoCreateInstance(L"Shell.Application"));
        +CComVariant empty;
        +ASSERT_HRESULT_SUCCEEDED(shell->ShellExecute(CComBSTR(url), empty, empty, empty, empty));
        +```
        +
        +_Availability_: Windows.
        +
        +## Type Assertions ##
        +
        +You can call the function
        +```
        +::testing::StaticAssertTypeEq<T1, T2>();
        +```
        +to assert that types `T1` and `T2` are the same.  The function does
        +nothing if the assertion is satisfied.  If the types are different,
        +the function call will fail to compile, and the compiler error message
        +will likely (depending on the compiler) show you the actual values of
        +`T1` and `T2`.  This is mainly useful inside template code.
        +
        +_Caveat:_ When used inside a member function of a class template or a
        +function template, `StaticAssertTypeEq<T1, T2>()` is effective _only if_
        +the function is instantiated.  For example, given:
        +```
        +template <typename T> class Foo {
        + public:
        +  void Bar() { ::testing::StaticAssertTypeEq<int, T>(); }
        +};
        +```
        +the code:
        +```
        +void Test1() { Foo<bool> foo; }
        +```
        +will _not_ generate a compiler error, as `Foo<bool>::Bar()` is never
        +actually instantiated.  Instead, you need:
        +```
        +void Test2() { Foo<bool> foo; foo.Bar(); }
        +```
        +to cause a compiler error.
        +
        +_Availability:_ Linux, Windows, Mac; since version 1.3.0.
        +
        +## Assertion Placement ##
        +
        +You can use assertions in any C++ function. In particular, it doesn't
        +have to be a method of the test fixture class. The one constraint is
        +that assertions that generate a fatal failure (`FAIL*` and `ASSERT_*`)
        +can only be used in void-returning functions. This is a consequence of
        +Google Test not using exceptions. By placing it in a non-void function
        +you'll get a confusing compile error like
        +`"error: void value not ignored as it ought to be"`.
        +
        +If you need to use assertions in a function that returns non-void, one option
        +is to make the function return the value in an out parameter instead. For
        +example, you can rewrite `T2 Foo(T1 x)` to `void Foo(T1 x, T2* result)`. You
        +need to make sure that `*result` contains some sensible value even when the
        +function returns prematurely. As the function now returns `void`, you can use
        +any assertion inside of it.
        +
        +If changing the function's type is not an option, you should just use
        +assertions that generate non-fatal failures, such as `ADD_FAILURE*` and
        +`EXPECT_*`.
        +
        +_Note_: Constructors and destructors are not considered void-returning
        +functions, according to the C++ language specification, and so you may not use
        +fatal assertions in them. You'll get a compilation error if you try. A simple
        +workaround is to transfer the entire body of the constructor or destructor to a
        +private void-returning method. However, you should be aware that a fatal
        +assertion failure in a constructor does not terminate the current test, as your
        +intuition might suggest; it merely returns from the constructor early, possibly
        +leaving your object in a partially-constructed state. Likewise, a fatal
        +assertion failure in a destructor may leave your object in a
        +partially-destructed state. Use assertions carefully in these situations!
        +
        +# Death Tests #
        +
        +In many applications, there are assertions that can cause application failure
        +if a condition is not met. These sanity checks, which ensure that the program
        +is in a known good state, are there to fail at the earliest possible time after
        +some program state is corrupted. If the assertion checks the wrong condition,
        +then the program may proceed in an erroneous state, which could lead to memory
        +corruption, security holes, or worse. Hence it is vitally important to test
        +that such assertion statements work as expected.
        +
        +Since these precondition checks cause the processes to die, we call such tests
        +_death tests_. More generally, any test that checks that a program terminates
        +in an expected fashion is also a death test.
        +
        +If you want to test `EXPECT_*()/ASSERT_*()` failures in your test code, see [Catching Failures](#Catching_Failures.md).
        +
        +## How to Write a Death Test ##
        +
        +Google Test has the following macros to support death tests:
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_DEATH(`_statement, regex_`); | `EXPECT_DEATH(`_statement, regex_`); | _statement_ crashes with the given error |
        +| `ASSERT_DEATH_IF_SUPPORTED(`_statement, regex_`); | `EXPECT_DEATH_IF_SUPPORTED(`_statement, regex_`); | if death tests are supported, verifies that _statement_ crashes with the given error; otherwise verifies nothing |
        +| `ASSERT_EXIT(`_statement, predicate, regex_`); | `EXPECT_EXIT(`_statement, predicate, regex_`); |_statement_ exits with the given error and its exit code matches _predicate_ |
        +
        +where _statement_ is a statement that is expected to cause the process to
        +die, _predicate_ is a function or function object that evaluates an integer
        +exit status, and _regex_ is a regular expression that the stderr output of
        +_statement_ is expected to match. Note that _statement_ can be _any valid
        +statement_ (including _compound statement_) and doesn't have to be an
        +expression.
        +
        +As usual, the `ASSERT` variants abort the current test function, while the
        +`EXPECT` variants do not.
        +
        +**Note:** We use the word "crash" here to mean that the process
        +terminates with a _non-zero_ exit status code.  There are two
        +possibilities: either the process has called `exit()` or `_exit()`
        +with a non-zero value, or it may be killed by a signal.
        +
        +This means that if _statement_ terminates the process with a 0 exit
        +code, it is _not_ considered a crash by `EXPECT_DEATH`.  Use
        +`EXPECT_EXIT` instead if this is the case, or if you want to restrict
        +the exit code more precisely.
        +
        +A predicate here must accept an `int` and return a `bool`. The death test
        +succeeds only if the predicate returns `true`. Google Test defines a few
        +predicates that handle the most common cases:
        +
        +```
        +::testing::ExitedWithCode(exit_code)
        +```
        +
        +This expression is `true` if the program exited normally with the given exit
        +code.
        +
        +```
        +::testing::KilledBySignal(signal_number)  // Not available on Windows.
        +```
        +
        +This expression is `true` if the program was killed by the given signal.
        +
        +The `*_DEATH` macros are convenient wrappers for `*_EXIT` that use a predicate
        +that verifies the process' exit code is non-zero.
        +
        +Note that a death test only cares about three things:
        +
        +  1. does _statement_ abort or exit the process?
        +  1. (in the case of `ASSERT_EXIT` and `EXPECT_EXIT`) does the exit status satisfy _predicate_?  Or (in the case of `ASSERT_DEATH` and `EXPECT_DEATH`) is the exit status non-zero?  And
        +  1. does the stderr output match _regex_?
        +
        +In particular, if _statement_ generates an `ASSERT_*` or `EXPECT_*` failure, it will **not** cause the death test to fail, as Google Test assertions don't abort the process.
        +
        +To write a death test, simply use one of the above macros inside your test
        +function. For example,
        +
        +```
        +TEST(My*DeathTest*, Foo) {
        +  // This death test uses a compound statement.
        +  ASSERT_DEATH({ int n = 5; Foo(&n); }, "Error on line .* of Foo()");
        +}
        +TEST(MyDeathTest, NormalExit) {
        +  EXPECT_EXIT(NormalExit(), ::testing::ExitedWithCode(0), "Success");
        +}
        +TEST(MyDeathTest, KillMyself) {
        +  EXPECT_EXIT(KillMyself(), ::testing::KilledBySignal(SIGKILL), "Sending myself unblockable signal");
        +}
        +```
        +
        +verifies that:
        +
        +  * calling `Foo(5)` causes the process to die with the given error message,
        +  * calling `NormalExit()` causes the process to print `"Success"` to stderr and exit with exit code 0, and
        +  * calling `KillMyself()` kills the process with signal `SIGKILL`.
        +
        +The test function body may contain other assertions and statements as well, if
        +necessary.
        +
        +_Important:_ We strongly recommend you to follow the convention of naming your
        +test case (not test) `*DeathTest` when it contains a death test, as
        +demonstrated in the above example. The `Death Tests And Threads` section below
        +explains why.
        +
        +If a test fixture class is shared by normal tests and death tests, you
        +can use typedef to introduce an alias for the fixture class and avoid
        +duplicating its code:
        +```
        +class FooTest : public ::testing::Test { ... };
        +
        +typedef FooTest FooDeathTest;
        +
        +TEST_F(FooTest, DoesThis) {
        +  // normal test
        +}
        +
        +TEST_F(FooDeathTest, DoesThat) {
        +  // death test
        +}
        +```
        +
        +_Availability:_ Linux, Windows (requires MSVC 8.0 or above), Cygwin, and Mac (the latter three are supported since v1.3.0).  `(ASSERT|EXPECT)_DEATH_IF_SUPPORTED` are new in v1.4.0.
        +
        +## Regular Expression Syntax ##
        +
        +On POSIX systems (e.g. Linux, Cygwin, and Mac), Google Test uses the
        +[POSIX extended regular expression](http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap09.html#tag_09_04)
        +syntax in death tests. To learn about this syntax, you may want to read this [Wikipedia entry](http://en.wikipedia.org/wiki/Regular_expression#POSIX_Extended_Regular_Expressions).
        +
        +On Windows, Google Test uses its own simple regular expression
        +implementation. It lacks many features you can find in POSIX extended
        +regular expressions.  For example, we don't support union (`"x|y"`),
        +grouping (`"(xy)"`), brackets (`"[xy]"`), and repetition count
        +(`"x{5,7}"`), among others. Below is what we do support (`A` denotes a
        +literal character, period (`.`), or a single `\\` escape sequence; `x`
        +and `y` denote regular expressions.):
        +
        +| `c` | matches any literal character `c` |
        +|:----|:----------------------------------|
        +| `\\d` | matches any decimal digit         |
        +| `\\D` | matches any character that's not a decimal digit |
        +| `\\f` | matches `\f`                      |
        +| `\\n` | matches `\n`                      |
        +| `\\r` | matches `\r`                      |
        +| `\\s` | matches any ASCII whitespace, including `\n` |
        +| `\\S` | matches any character that's not a whitespace |
        +| `\\t` | matches `\t`                      |
        +| `\\v` | matches `\v`                      |
        +| `\\w` | matches any letter, `_`, or decimal digit |
        +| `\\W` | matches any character that `\\w` doesn't match |
        +| `\\c` | matches any literal character `c`, which must be a punctuation |
        +| `.` | matches any single character except `\n` |
        +| `A?` | matches 0 or 1 occurrences of `A` |
        +| `A*` | matches 0 or many occurrences of `A` |
        +| `A+` | matches 1 or many occurrences of `A` |
        +| `^` | matches the beginning of a string (not that of each line) |
        +| `$` | matches the end of a string (not that of each line) |
        +| `xy` | matches `x` followed by `y`       |
        +
        +To help you determine which capability is available on your system,
        +Google Test defines macro `GTEST_USES_POSIX_RE=1` when it uses POSIX
        +extended regular expressions, or `GTEST_USES_SIMPLE_RE=1` when it uses
        +the simple version.  If you want your death tests to work in both
        +cases, you can either `#if` on these macros or use the more limited
        +syntax only.
        +
        +## How It Works ##
        +
        +Under the hood, `ASSERT_EXIT()` spawns a new process and executes the
        +death test statement in that process. The details of of how precisely
        +that happens depend on the platform and the variable
        +`::testing::GTEST_FLAG(death_test_style)` (which is initialized from the
        +command-line flag `--gtest_death_test_style`).
        +
        +  * On POSIX systems, `fork()` (or `clone()` on Linux) is used to spawn the child, after which:
        +    * If the variable's value is `"fast"`, the death test statement is immediately executed.
        +    * If the variable's value is `"threadsafe"`, the child process re-executes the unit test binary just as it was originally invoked, but with some extra flags to cause just the single death test under consideration to be run.
        +  * On Windows, the child is spawned using the `CreateProcess()` API, and re-executes the binary to cause just the single death test under consideration to be run - much like the `threadsafe` mode on POSIX.
        +
        +Other values for the variable are illegal and will cause the death test to
        +fail. Currently, the flag's default value is `"fast"`. However, we reserve the
        +right to change it in the future. Therefore, your tests should not depend on
        +this.
        +
        +In either case, the parent process waits for the child process to complete, and checks that
        +
        +  1. the child's exit status satisfies the predicate, and
        +  1. the child's stderr matches the regular expression.
        +
        +If the death test statement runs to completion without dying, the child
        +process will nonetheless terminate, and the assertion fails.
        +
        +## Death Tests And Threads ##
        +
        +The reason for the two death test styles has to do with thread safety. Due to
        +well-known problems with forking in the presence of threads, death tests should
        +be run in a single-threaded context. Sometimes, however, it isn't feasible to
        +arrange that kind of environment. For example, statically-initialized modules
        +may start threads before main is ever reached. Once threads have been created,
        +it may be difficult or impossible to clean them up.
        +
        +Google Test has three features intended to raise awareness of threading issues.
        +
        +  1. A warning is emitted if multiple threads are running when a death test is encountered.
        +  1. Test cases with a name ending in "DeathTest" are run before all other tests.
        +  1. It uses `clone()` instead of `fork()` to spawn the child process on Linux (`clone()` is not available on Cygwin and Mac), as `fork()` is more likely to cause the child to hang when the parent process has multiple threads.
        +
        +It's perfectly fine to create threads inside a death test statement; they are
        +executed in a separate process and cannot affect the parent.
        +
        +## Death Test Styles ##
        +
        +The "threadsafe" death test style was introduced in order to help mitigate the
        +risks of testing in a possibly multithreaded environment. It trades increased
        +test execution time (potentially dramatically so) for improved thread safety.
        +We suggest using the faster, default "fast" style unless your test has specific
        +problems with it.
        +
        +You can choose a particular style of death tests by setting the flag
        +programmatically:
        +
        +```
        +::testing::FLAGS_gtest_death_test_style = "threadsafe";
        +```
        +
        +You can do this in `main()` to set the style for all death tests in the
        +binary, or in individual tests. Recall that flags are saved before running each
        +test and restored afterwards, so you need not do that yourself. For example:
        +
        +```
        +TEST(MyDeathTest, TestOne) {
        +  ::testing::FLAGS_gtest_death_test_style = "threadsafe";
        +  // This test is run in the "threadsafe" style:
        +  ASSERT_DEATH(ThisShouldDie(), "");
        +}
        +
        +TEST(MyDeathTest, TestTwo) {
        +  // This test is run in the "fast" style:
        +  ASSERT_DEATH(ThisShouldDie(), "");
        +}
        +
        +int main(int argc, char** argv) {
        +  ::testing::InitGoogleTest(&argc, argv);
        +  ::testing::FLAGS_gtest_death_test_style = "fast";
        +  return RUN_ALL_TESTS();
        +}
        +```
        +
        +## Caveats ##
        +
        +The _statement_ argument of `ASSERT_EXIT()` can be any valid C++ statement
        +except that it can not return from the current function. This means
        +_statement_ should not contain `return` or a macro that might return (e.g.
        +`ASSERT_TRUE()` ). If _statement_ returns before it crashes, Google Test will
        +print an error message, and the test will fail.
        +
        +Since _statement_ runs in the child process, any in-memory side effect (e.g.
        +modifying a variable, releasing memory, etc) it causes will _not_ be observable
        +in the parent process. In particular, if you release memory in a death test,
        +your program will fail the heap check as the parent process will never see the
        +memory reclaimed. To solve this problem, you can
        +
        +  1. try not to free memory in a death test;
        +  1. free the memory again in the parent process; or
        +  1. do not use the heap checker in your program.
        +
        +Due to an implementation detail, you cannot place multiple death test
        +assertions on the same line; otherwise, compilation will fail with an unobvious
        +error message.
        +
        +Despite the improved thread safety afforded by the "threadsafe" style of death
        +test, thread problems such as deadlock are still possible in the presence of
        +handlers registered with `pthread_atfork(3)`.
        +
        +# Using Assertions in Sub-routines #
        +
        +## Adding Traces to Assertions ##
        +
        +If a test sub-routine is called from several places, when an assertion
        +inside it fails, it can be hard to tell which invocation of the
        +sub-routine the failure is from.  You can alleviate this problem using
        +extra logging or custom failure messages, but that usually clutters up
        +your tests. A better solution is to use the `SCOPED_TRACE` macro:
        +
        +| `SCOPED_TRACE(`_message_`);` |
        +|:-----------------------------|
        +
        +where _message_ can be anything streamable to `std::ostream`. This
        +macro will cause the current file name, line number, and the given
        +message to be added in every failure message. The effect will be
        +undone when the control leaves the current lexical scope.
        +
        +For example,
        +
        +```
        +10: void Sub1(int n) {
        +11:   EXPECT_EQ(1, Bar(n));
        +12:   EXPECT_EQ(2, Bar(n + 1));
        +13: }
        +14: 
        +15: TEST(FooTest, Bar) {
        +16:   {
        +17:     SCOPED_TRACE("A");  // This trace point will be included in
        +18:                         // every failure in this scope.
        +19:     Sub1(1);
        +20:   }
        +21:   // Now it won't.
        +22:   Sub1(9);
        +23: }
        +```
        +
        +could result in messages like these:
        +
        +```
        +path/to/foo_test.cc:11: Failure
        +Value of: Bar(n)
        +Expected: 1
        +  Actual: 2
        +   Trace:
        +path/to/foo_test.cc:17: A
        +
        +path/to/foo_test.cc:12: Failure
        +Value of: Bar(n + 1)
        +Expected: 2
        +  Actual: 3
        +```
        +
        +Without the trace, it would've been difficult to know which invocation
        +of `Sub1()` the two failures come from respectively. (You could add an
        +extra message to each assertion in `Sub1()` to indicate the value of
        +`n`, but that's tedious.)
        +
        +Some tips on using `SCOPED_TRACE`:
        +
        +  1. With a suitable message, it's often enough to use `SCOPED_TRACE` at the beginning of a sub-routine, instead of at each call site.
        +  1. When calling sub-routines inside a loop, make the loop iterator part of the message in `SCOPED_TRACE` such that you can know which iteration the failure is from.
        +  1. Sometimes the line number of the trace point is enough for identifying the particular invocation of a sub-routine. In this case, you don't have to choose a unique message for `SCOPED_TRACE`. You can simply use `""`.
        +  1. You can use `SCOPED_TRACE` in an inner scope when there is one in the outer scope. In this case, all active trace points will be included in the failure messages, in reverse order they are encountered.
        +  1. The trace dump is clickable in Emacs' compilation buffer - hit return on a line number and you'll be taken to that line in the source file!
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +## Propagating Fatal Failures ##
        +
        +A common pitfall when using `ASSERT_*` and `FAIL*` is not understanding that
        +when they fail they only abort the _current function_, not the entire test. For
        +example, the following test will segfault:
        +```
        +void Subroutine() {
        +  // Generates a fatal failure and aborts the current function.
        +  ASSERT_EQ(1, 2);
        +  // The following won't be executed.
        +  ...
        +}
        +
        +TEST(FooTest, Bar) {
        +  Subroutine();
        +  // The intended behavior is for the fatal failure
        +  // in Subroutine() to abort the entire test.
        +  // The actual behavior: the function goes on after Subroutine() returns.
        +  int* p = NULL;
        +  *p = 3; // Segfault!
        +}
        +```
        +
        +Since we don't use exceptions, it is technically impossible to
        +implement the intended behavior here.  To alleviate this, Google Test
        +provides two solutions.  You could use either the
        +`(ASSERT|EXPECT)_NO_FATAL_FAILURE` assertions or the
        +`HasFatalFailure()` function.  They are described in the following two
        +subsections.
        +
        +
        +
        +### Asserting on Subroutines ###
        +
        +As shown above, if your test calls a subroutine that has an `ASSERT_*`
        +failure in it, the test will continue after the subroutine
        +returns. This may not be what you want.
        +
        +Often people want fatal failures to propagate like exceptions.  For
        +that Google Test offers the following macros:
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_NO_FATAL_FAILURE(`_statement_`);` | `EXPECT_NO_FATAL_FAILURE(`_statement_`);` | _statement_ doesn't generate any new fatal failures in the current thread. |
        +
        +Only failures in the thread that executes the assertion are checked to
        +determine the result of this type of assertions.  If _statement_
        +creates new threads, failures in these threads are ignored.
        +
        +Examples:
        +
        +```
        +ASSERT_NO_FATAL_FAILURE(Foo());
        +
        +int i;
        +EXPECT_NO_FATAL_FAILURE({
        +  i = Bar();
        +});
        +```
        +
        +_Availability:_ Linux, Windows, Mac. Assertions from multiple threads
        +are currently not supported.
        +
        +### Checking for Failures in the Current Test ###
        +
        +`HasFatalFailure()` in the `::testing::Test` class returns `true` if an
        +assertion in the current test has suffered a fatal failure. This
        +allows functions to catch fatal failures in a sub-routine and return
        +early.
        +
        +```
        +class Test {
        + public:
        +  ...
        +  static bool HasFatalFailure();
        +};
        +```
        +
        +The typical usage, which basically simulates the behavior of a thrown
        +exception, is:
        +
        +```
        +TEST(FooTest, Bar) {
        +  Subroutine();
        +  // Aborts if Subroutine() had a fatal failure.
        +  if (HasFatalFailure())
        +    return;
        +  // The following won't be executed.
        +  ...
        +}
        +```
        +
        +If `HasFatalFailure()` is used outside of `TEST()` , `TEST_F()` , or a test
        +fixture, you must add the `::testing::Test::` prefix, as in:
        +
        +```
        +if (::testing::Test::HasFatalFailure())
        +  return;
        +```
        +
        +Similarly, `HasNonfatalFailure()` returns `true` if the current test
        +has at least one non-fatal failure, and `HasFailure()` returns `true`
        +if the current test has at least one failure of either kind.
        +
        +_Availability:_ Linux, Windows, Mac.  `HasNonfatalFailure()` and
        +`HasFailure()` are available since version 1.4.0.
        +
        +# Logging Additional Information #
        +
        +In your test code, you can call `RecordProperty("key", value)` to log
        +additional information, where `value` can be either a C string or a 32-bit
        +integer. The _last_ value recorded for a key will be emitted to the XML output
        +if you specify one. For example, the test
        +
        +```
        +TEST_F(WidgetUsageTest, MinAndMaxWidgets) {
        +  RecordProperty("MaximumWidgets", ComputeMaxUsage());
        +  RecordProperty("MinimumWidgets", ComputeMinUsage());
        +}
        +```
        +
        +will output XML like this:
        +
        +```
        +...
        +  <testcase name="MinAndMaxWidgets" status="run" time="6" classname="WidgetUsageTest"
        +            MaximumWidgets="12"
        +            MinimumWidgets="9" />
        +...
        +```
        +
        +_Note_:
        +  * `RecordProperty()` is a static member of the `Test` class. Therefore it needs to be prefixed with `::testing::Test::` if used outside of the `TEST` body and the test fixture class.
        +  * `key` must be a valid XML attribute name, and cannot conflict with the ones already used by Google Test (`name`, `status`,     `time`, and `classname`).
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +# Sharing Resources Between Tests in the Same Test Case #
        +
        +
        +
        +Google Test creates a new test fixture object for each test in order to make
        +tests independent and easier to debug. However, sometimes tests use resources
        +that are expensive to set up, making the one-copy-per-test model prohibitively
        +expensive.
        +
        +If the tests don't change the resource, there's no harm in them sharing a
        +single resource copy. So, in addition to per-test set-up/tear-down, Google Test
        +also supports per-test-case set-up/tear-down. To use it:
        +
        +  1. In your test fixture class (say `FooTest` ), define as `static` some member variables to hold the shared resources.
        +  1. In the same test fixture class, define a `static void SetUpTestCase()` function (remember not to spell it as **`SetupTestCase`** with a small `u`!) to set up the shared resources and a `static void TearDownTestCase()` function to tear them down.
        +
        +That's it! Google Test automatically calls `SetUpTestCase()` before running the
        +_first test_ in the `FooTest` test case (i.e. before creating the first
        +`FooTest` object), and calls `TearDownTestCase()` after running the _last test_
        +in it (i.e. after deleting the last `FooTest` object). In between, the tests
        +can use the shared resources.
        +
        +Remember that the test order is undefined, so your code can't depend on a test
        +preceding or following another. Also, the tests must either not modify the
        +state of any shared resource, or, if they do modify the state, they must
        +restore the state to its original value before passing control to the next
        +test.
        +
        +Here's an example of per-test-case set-up and tear-down:
        +```
        +class FooTest : public ::testing::Test {
        + protected:
        +  // Per-test-case set-up.
        +  // Called before the first test in this test case.
        +  // Can be omitted if not needed.
        +  static void SetUpTestCase() {
        +    shared_resource_ = new ...;
        +  }
        +
        +  // Per-test-case tear-down.
        +  // Called after the last test in this test case.
        +  // Can be omitted if not needed.
        +  static void TearDownTestCase() {
        +    delete shared_resource_;
        +    shared_resource_ = NULL;
        +  }
        +
        +  // You can define per-test set-up and tear-down logic as usual.
        +  virtual void SetUp() { ... }
        +  virtual void TearDown() { ... }
        +
        +  // Some expensive resource shared by all tests.
        +  static T* shared_resource_;
        +};
        +
        +T* FooTest::shared_resource_ = NULL;
        +
        +TEST_F(FooTest, Test1) {
        +  ... you can refer to shared_resource here ...
        +}
        +TEST_F(FooTest, Test2) {
        +  ... you can refer to shared_resource here ...
        +}
        +```
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +# Global Set-Up and Tear-Down #
        +
        +Just as you can do set-up and tear-down at the test level and the test case
        +level, you can also do it at the test program level. Here's how.
        +
        +First, you subclass the `::testing::Environment` class to define a test
        +environment, which knows how to set-up and tear-down:
        +
        +```
        +class Environment {
        + public:
        +  virtual ~Environment() {}
        +  // Override this to define how to set up the environment.
        +  virtual void SetUp() {}
        +  // Override this to define how to tear down the environment.
        +  virtual void TearDown() {}
        +};
        +```
        +
        +Then, you register an instance of your environment class with Google Test by
        +calling the `::testing::AddGlobalTestEnvironment()` function:
        +
        +```
        +Environment* AddGlobalTestEnvironment(Environment* env);
        +```
        +
        +Now, when `RUN_ALL_TESTS()` is called, it first calls the `SetUp()` method of
        +the environment object, then runs the tests if there was no fatal failures, and
        +finally calls `TearDown()` of the environment object.
        +
        +It's OK to register multiple environment objects. In this case, their `SetUp()`
        +will be called in the order they are registered, and their `TearDown()` will be
        +called in the reverse order.
        +
        +Note that Google Test takes ownership of the registered environment objects.
        +Therefore **do not delete them** by yourself.
        +
        +You should call `AddGlobalTestEnvironment()` before `RUN_ALL_TESTS()` is
        +called, probably in `main()`. If you use `gtest_main`, you need to      call
        +this before `main()` starts for it to take effect. One way to do this is to
        +define a global variable like this:
        +
        +```
        +::testing::Environment* const foo_env = ::testing::AddGlobalTestEnvironment(new FooEnvironment);
        +```
        +
        +However, we strongly recommend you to write your own `main()` and call
        +`AddGlobalTestEnvironment()` there, as relying on initialization of global
        +variables makes the code harder to read and may cause problems when you
        +register multiple environments from different translation units and the
        +environments have dependencies among them (remember that the compiler doesn't
        +guarantee the order in which global variables from different translation units
        +are initialized).
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +
        +# Value Parameterized Tests #
        +
        +_Value-parameterized tests_ allow you to test your code with different
        +parameters without writing multiple copies of the same test.
        +
        +Suppose you write a test for your code and then realize that your code is affected by a presence of a Boolean command line flag.
        +
        +```
        +TEST(MyCodeTest, TestFoo) {
        +  // A code to test foo().
        +}
        +```
        +
        +Usually people factor their test code into a function with a Boolean parameter in such situations. The function sets the flag, then executes the testing code.
        +
        +```
        +void TestFooHelper(bool flag_value) {
        +  flag = flag_value;
        +  // A code to test foo().
        +}
        +
        +TEST(MyCodeTest, TestFooo) {
        +  TestFooHelper(false);
        +  TestFooHelper(true);
        +}
        +```
        +
        +But this setup has serious drawbacks. First, when a test assertion fails in your tests, it becomes unclear what value of the parameter caused it to fail. You can stream a clarifying message into your `EXPECT`/`ASSERT` statements, but it you'll have to do it with all of them. Second, you have to add one such helper function per test. What if you have ten tests? Twenty? A hundred?
        +
        +Value-parameterized tests will let you write your test only once and then easily instantiate and run it with an arbitrary number of parameter values.
        +
        +Here are some other situations when value-parameterized tests come handy:
        +
        +  * You wan to test different implementations of an OO interface.
        +  * You want to test your code over various inputs (a.k.a. data-driven testing). This feature is easy to abuse, so please exercise your good sense when doing it!
        +
        +## How to Write Value-Parameterized Tests ##
        +
        +To write value-parameterized tests, first you should define a fixture
        +class. It must be derived from `::testing::TestWithParam<T>`, where `T`
        +is the type of your parameter values. `TestWithParam<T>` is itself
        +derived from `::testing::Test`. `T` can be any copyable type. If it's
        +a raw pointer, you are responsible for managing the lifespan of the
        +pointed values.
        +
        +```
        +class FooTest : public ::testing::TestWithParam<const char*> {
        +  // You can implement all the usual fixture class members here.
        +  // To access the test parameter, call GetParam() from class
        +  // TestWithParam<T>.
        +};
        +```
        +
        +Then, use the `TEST_P` macro to define as many test patterns using
        +this fixture as you want.  The `_P` suffix is for "parameterized" or
        +"pattern", whichever you prefer to think.
        +
        +```
        +TEST_P(FooTest, DoesBlah) {
        +  // Inside a test, access the test parameter with the GetParam() method
        +  // of the TestWithParam<T> class:
        +  EXPECT_TRUE(foo.Blah(GetParam()));
        +  ...
        +}
        +
        +TEST_P(FooTest, HasBlahBlah) {
        +  ...
        +}
        +```
        +
        +Finally, you can use `INSTANTIATE_TEST_CASE_P` to instantiate the test
        +case with any set of parameters you want. Google Test defines a number of
        +functions for generating test parameters. They return what we call
        +(surprise!) _parameter generators_. Here is a summary of them,
        +which are all in the `testing` namespace:
        +
        +| `Range(begin, end[, step])` | Yields values `{begin, begin+step, begin+step+step, ...}`. The values do not include `end`. `step` defaults to 1. |
        +|:----------------------------|:------------------------------------------------------------------------------------------------------------------|
        +| `Values(v1, v2, ..., vN)`   | Yields values `{v1, v2, ..., vN}`.                                                                                |
        +| `ValuesIn(container)` and `ValuesIn(begin, end)` | Yields values from a C-style array, an STL-style container, or an iterator range `[begin, end)`.                  |
        +| `Bool()`                    | Yields sequence `{false, true}`.                                                                                  |
        +| `Combine(g1, g2, ..., gN)`  | Yields all combinations (the Cartesian product for the math savvy) of the values generated by the `N` generators. This is only available if your system provides the `<tr1/tuple>` header. If you are sure your system does, and Google Test disagrees, you can override it by defining `GTEST_HAS_TR1_TUPLE=1`. See comments in [include/gtest/internal/gtest-port.h](http://code.google.com/p/googletest/source/browse/trunk/include/gtest/internal/gtest-port.h) for more information. |
        +
        +For more details, see the comments at the definitions of these functions in the [source code](http://code.google.com/p/googletest/source/browse/trunk/include/gtest/gtest-param-test.h).
        +
        +The following statement will instantiate tests from the `FooTest` test case
        +each with parameter values `"meeny"`, `"miny"`, and `"moe"`.
        +
        +```
        +INSTANTIATE_TEST_CASE_P(InstantiationName,
        +                        FooTest,
        +                        ::testing::Values("meeny", "miny", "moe"));
        +```
        +
        +To distinguish different instances of the pattern (yes, you can
        +instantiate it more than once), the first argument to
        +`INSTANTIATE_TEST_CASE_P` is a prefix that will be added to the actual
        +test case name. Remember to pick unique prefixes for different
        +instantiations. The tests from the instantiation above will have these
        +names:
        +
        +  * `InstantiationName/FooTest.DoesBlah/0` for `"meeny"`
        +  * `InstantiationName/FooTest.DoesBlah/1` for `"miny"`
        +  * `InstantiationName/FooTest.DoesBlah/2` for `"moe"`
        +  * `InstantiationName/FooTest.HasBlahBlah/0` for `"meeny"`
        +  * `InstantiationName/FooTest.HasBlahBlah/1` for `"miny"`
        +  * `InstantiationName/FooTest.HasBlahBlah/2` for `"moe"`
        +
        +You can use these names in [--gtest\_filter](#Running_a_Subset_of_the_Tests.md).
        +
        +This statement will instantiate all tests from `FooTest` again, each
        +with parameter values `"cat"` and `"dog"`:
        +
        +```
        +const char* pets[] = {"cat", "dog"};
        +INSTANTIATE_TEST_CASE_P(AnotherInstantiationName, FooTest,
        +                        ::testing::ValuesIn(pets));
        +```
        +
        +The tests from the instantiation above will have these names:
        +
        +  * `AnotherInstantiationName/FooTest.DoesBlah/0` for `"cat"`
        +  * `AnotherInstantiationName/FooTest.DoesBlah/1` for `"dog"`
        +  * `AnotherInstantiationName/FooTest.HasBlahBlah/0` for `"cat"`
        +  * `AnotherInstantiationName/FooTest.HasBlahBlah/1` for `"dog"`
        +
        +Please note that `INSTANTIATE_TEST_CASE_P` will instantiate _all_
        +tests in the given test case, whether their definitions come before or
        +_after_ the `INSTANTIATE_TEST_CASE_P` statement.
        +
        +You can see
        +[these](http://code.google.com/p/googletest/source/browse/trunk/samples/sample7_unittest.cc)
        +[files](http://code.google.com/p/googletest/source/browse/trunk/samples/sample8_unittest.cc) for more examples.
        +
        +_Availability_: Linux, Windows (requires MSVC 8.0 or above), Mac; since version 1.2.0.
        +
        +## Creating Value-Parameterized Abstract Tests ##
        +
        +In the above, we define and instantiate `FooTest` in the same source
        +file. Sometimes you may want to define value-parameterized tests in a
        +library and let other people instantiate them later. This pattern is
        +known as <i>abstract tests</i>. As an example of its application, when you
        +are designing an interface you can write a standard suite of abstract
        +tests (perhaps using a factory function as the test parameter) that
        +all implementations of the interface are expected to pass. When
        +someone implements the interface, he can instantiate your suite to get
        +all the interface-conformance tests for free.
        +
        +To define abstract tests, you should organize your code like this:
        +
        +  1. Put the definition of the parameterized test fixture class (e.g. `FooTest`) in a header file, say `foo_param_test.h`. Think of this as _declaring_ your abstract tests.
        +  1. Put the `TEST_P` definitions in `foo_param_test.cc`, which includes `foo_param_test.h`. Think of this as _implementing_ your abstract tests.
        +
        +Once they are defined, you can instantiate them by including
        +`foo_param_test.h`, invoking `INSTANTIATE_TEST_CASE_P()`, and linking
        +with `foo_param_test.cc`. You can instantiate the same abstract test
        +case multiple times, possibly in different source files.
        +
        +# Typed Tests #
        +
        +Suppose you have multiple implementations of the same interface and
        +want to make sure that all of them satisfy some common requirements.
        +Or, you may have defined several types that are supposed to conform to
        +the same "concept" and you want to verify it.  In both cases, you want
        +the same test logic repeated for different types.
        +
        +While you can write one `TEST` or `TEST_F` for each type you want to
        +test (and you may even factor the test logic into a function template
        +that you invoke from the `TEST`), it's tedious and doesn't scale:
        +if you want _m_ tests over _n_ types, you'll end up writing _m\*n_
        +`TEST`s.
        +
        +_Typed tests_ allow you to repeat the same test logic over a list of
        +types.  You only need to write the test logic once, although you must
        +know the type list when writing typed tests.  Here's how you do it:
        +
        +First, define a fixture class template.  It should be parameterized
        +by a type.  Remember to derive it from `::testing::Test`:
        +
        +```
        +template <typename T>
        +class FooTest : public ::testing::Test {
        + public:
        +  ...
        +  typedef std::list<T> List;
        +  static T shared_;
        +  T value_;
        +};
        +```
        +
        +Next, associate a list of types with the test case, which will be
        +repeated for each type in the list:
        +
        +```
        +typedef ::testing::Types<char, int, unsigned int> MyTypes;
        +TYPED_TEST_CASE(FooTest, MyTypes);
        +```
        +
        +The `typedef` is necessary for the `TYPED_TEST_CASE` macro to parse
        +correctly.  Otherwise the compiler will think that each comma in the
        +type list introduces a new macro argument.
        +
        +Then, use `TYPED_TEST()` instead of `TEST_F()` to define a typed test
        +for this test case.  You can repeat this as many times as you want:
        +
        +```
        +TYPED_TEST(FooTest, DoesBlah) {
        +  // Inside a test, refer to the special name TypeParam to get the type
        +  // parameter.  Since we are inside a derived class template, C++ requires
        +  // us to visit the members of FooTest via 'this'.
        +  TypeParam n = this->value_;
        +
        +  // To visit static members of the fixture, add the 'TestFixture::'
        +  // prefix.
        +  n += TestFixture::shared_;
        +
        +  // To refer to typedefs in the fixture, add the 'typename TestFixture::'
        +  // prefix.  The 'typename' is required to satisfy the compiler.
        +  typename TestFixture::List values;
        +  values.push_back(n);
        +  ...
        +}
        +
        +TYPED_TEST(FooTest, HasPropertyA) { ... }
        +```
        +
        +You can see `samples/sample6_unittest.cc` for a complete example.
        +
        +_Availability:_ Linux, Windows (requires MSVC 8.0 or above), Mac;
        +since version 1.1.0.
        +
        +# Type-Parameterized Tests #
        +
        +_Type-parameterized tests_ are like typed tests, except that they
        +don't require you to know the list of types ahead of time.  Instead,
        +you can define the test logic first and instantiate it with different
        +type lists later.  You can even instantiate it more than once in the
        +same program.
        +
        +If you are designing an interface or concept, you can define a suite
        +of type-parameterized tests to verify properties that any valid
        +implementation of the interface/concept should have.  Then, the author
        +of each implementation can just instantiate the test suite with his
        +type to verify that it conforms to the requirements, without having to
        +write similar tests repeatedly.  Here's an example:
        +
        +First, define a fixture class template, as we did with typed tests:
        +
        +```
        +template <typename T>
        +class FooTest : public ::testing::Test {
        +  ...
        +};
        +```
        +
        +Next, declare that you will define a type-parameterized test case:
        +
        +```
        +TYPED_TEST_CASE_P(FooTest);
        +```
        +
        +The `_P` suffix is for "parameterized" or "pattern", whichever you
        +prefer to think.
        +
        +Then, use `TYPED_TEST_P()` to define a type-parameterized test.  You
        +can repeat this as many times as you want:
        +
        +```
        +TYPED_TEST_P(FooTest, DoesBlah) {
        +  // Inside a test, refer to TypeParam to get the type parameter.
        +  TypeParam n = 0;
        +  ...
        +}
        +
        +TYPED_TEST_P(FooTest, HasPropertyA) { ... }
        +```
        +
        +Now the tricky part: you need to register all test patterns using the
        +`REGISTER_TYPED_TEST_CASE_P` macro before you can instantiate them.
        +The first argument of the macro is the test case name; the rest are
        +the names of the tests in this test case:
        +
        +```
        +REGISTER_TYPED_TEST_CASE_P(FooTest,
        +                           DoesBlah, HasPropertyA);
        +```
        +
        +Finally, you are free to instantiate the pattern with the types you
        +want.  If you put the above code in a header file, you can `#include`
        +it in multiple C++ source files and instantiate it multiple times.
        +
        +```
        +typedef ::testing::Types<char, int, unsigned int> MyTypes;
        +INSTANTIATE_TYPED_TEST_CASE_P(My, FooTest, MyTypes);
        +```
        +
        +To distinguish different instances of the pattern, the first argument
        +to the `INSTANTIATE_TYPED_TEST_CASE_P` macro is a prefix that will be
        +added to the actual test case name.  Remember to pick unique prefixes
        +for different instances.
        +
        +In the special case where the type list contains only one type, you
        +can write that type directly without `::testing::Types<...>`, like this:
        +
        +```
        +INSTANTIATE_TYPED_TEST_CASE_P(My, FooTest, int);
        +```
        +
        +You can see `samples/sample6_unittest.cc` for a complete example.
        +
        +_Availability:_ Linux, Windows (requires MSVC 8.0 or above), Mac;
        +since version 1.1.0.
        +
        +# Testing Private Code #
        +
        +If you change your software's internal implementation, your tests should not
        +break as long as the change is not observable by users. Therefore, per the
        +_black-box testing principle_, most of the time you should test your code
        +through its public interfaces.
        +
        +If you still find yourself needing to test internal implementation code,
        +consider if there's a better design that wouldn't require you to do so. If you
        +absolutely have to test non-public interface code though, you can. There are
        +two cases to consider:
        +
        +  * Static functions (_not_ the same as static member functions!) or unnamed namespaces, and
        +  * Private or protected class members
        +
        +## Static Functions ##
        +
        +Both static functions and definitions/declarations in an unnamed namespace are
        +only visible within the same translation unit. To test them, you can `#include`
        +the entire `.cc` file being tested in your `*_test.cc` file. (#including `.cc`
        +files is not a good way to reuse code - you should not do this in production
        +code!)
        +
        +However, a better approach is to move the private code into the
        +`foo::internal` namespace, where `foo` is the namespace your project normally
        +uses, and put the private declarations in a `*-internal.h` file. Your
        +production `.cc` files and your tests are allowed to include this internal
        +header, but your clients are not. This way, you can fully test your internal
        +implementation without leaking it to your clients.
        +
        +## Private Class Members ##
        +
        +Private class members are only accessible from within the class or by friends.
        +To access a class' private members, you can declare your test fixture as a
        +friend to the class and define accessors in your fixture. Tests using the
        +fixture can then access the private members of your production class via the
        +accessors in the fixture. Note that even though your fixture is a friend to
        +your production class, your tests are not automatically friends to it, as they
        +are technically defined in sub-classes of the fixture.
        +
        +Another way to test private members is to refactor them into an implementation
        +class, which is then declared in a `*-internal.h` file. Your clients aren't
        +allowed to include this header but your tests can. Such is called the Pimpl
        +(Private Implementation) idiom.
        +
        +Or, you can declare an individual test as a friend of your class by adding this
        +line in the class body:
        +
        +```
        +FRIEND_TEST(TestCaseName, TestName);
        +```
        +
        +For example,
        +```
        +// foo.h
        +#include <gtest/gtest_prod.h>
        +
        +// Defines FRIEND_TEST.
        +class Foo {
        +  ...
        + private:
        +  FRIEND_TEST(FooTest, BarReturnsZeroOnNull);
        +  int Bar(void* x);
        +};
        +
        +// foo_test.cc
        +...
        +TEST(FooTest, BarReturnsZeroOnNull) {
        +  Foo foo;
        +  EXPECT_EQ(0, foo.Bar(NULL));
        +  // Uses Foo's private member Bar().
        +}
        +```
        +
        +Pay special attention when your class is defined in a namespace, as you should
        +define your test fixtures and tests in the same namespace if you want them to
        +be friends of your class. For example, if the code to be tested looks like:
        +
        +```
        +namespace my_namespace {
        +
        +class Foo {
        +  friend class FooTest;
        +  FRIEND_TEST(FooTest, Bar);
        +  FRIEND_TEST(FooTest, Baz);
        +  ...
        +  definition of the class Foo
        +  ...
        +};
        +
        +}  // namespace my_namespace
        +```
        +
        +Your test code should be something like:
        +
        +```
        +namespace my_namespace {
        +class FooTest : public ::testing::Test {
        + protected:
        +  ...
        +};
        +
        +TEST_F(FooTest, Bar) { ... }
        +TEST_F(FooTest, Baz) { ... }
        +
        +}  // namespace my_namespace
        +```
        +
        +# Catching Failures #
        +
        +If you are building a testing utility on top of Google Test, you'll
        +want to test your utility.  What framework would you use to test it?
        +Google Test, of course.
        +
        +The challenge is to verify that your testing utility reports failures
        +correctly.  In frameworks that report a failure by throwing an
        +exception, you could catch the exception and assert on it.  But Google
        +Test doesn't use exceptions, so how do we test that a piece of code
        +generates an expected failure?
        +
        +`<gtest/gtest-spi.h>` contains some constructs to do this.  After
        +#including this header, you can use
        +
        +| `EXPECT_FATAL_FAILURE(`_statement, substring_`);` |
        +|:--------------------------------------------------|
        +
        +to assert that _statement_ generates a fatal (e.g. `ASSERT_*`) failure
        +whose message contains the given _substring_, or use
        +
        +| `EXPECT_NONFATAL_FAILURE(`_statement, substring_`);` |
        +|:-----------------------------------------------------|
        +
        +if you are expecting a non-fatal (e.g. `EXPECT_*`) failure.
        +
        +For technical reasons, there are some caveats:
        +
        +  1. You cannot stream a failure message to either macro.
        +  1. _statement_ in `EXPECT_FATAL_FAILURE()` cannot reference local non-static variables or non-static members of `this` object.
        +  1. _statement_ in `EXPECT_FATAL_FAILURE()` cannot return a value.
        +
        +_Note:_ Google Test is designed with threads in mind.  Once the
        +synchronization primitives in `<gtest/internal/gtest-port.h>` have
        +been implemented, Google Test will become thread-safe, meaning that
        +you can then use assertions in multiple threads concurrently.  Before
        +
        +that, however, Google Test only supports single-threaded usage.  Once
        +thread-safe, `EXPECT_FATAL_FAILURE()` and `EXPECT_NONFATAL_FAILURE()`
        +will capture failures in the current thread only. If _statement_
        +creates new threads, failures in these threads will be ignored.  If
        +you want to capture failures from all threads instead, you should use
        +the following macros:
        +
        +| `EXPECT_FATAL_FAILURE_ON_ALL_THREADS(`_statement, substring_`);` |
        +|:-----------------------------------------------------------------|
        +| `EXPECT_NONFATAL_FAILURE_ON_ALL_THREADS(`_statement, substring_`);` |
        +
        +# Getting the Current Test's Name #
        +
        +Sometimes a function may need to know the name of the currently running test.
        +For example, you may be using the `SetUp()` method of your test fixture to set
        +the golden file name based on which test is running. The `::testing::TestInfo`
        +class has this information:
        +
        +```
        +namespace testing {
        +
        +class TestInfo {
        + public:
        +  // Returns the test case name and the test name, respectively.
        +  //
        +  // Do NOT delete or free the return value - it's managed by the
        +  // TestInfo class.
        +  const char* test_case_name() const;
        +  const char* name() const;
        +};
        +
        +}  // namespace testing
        +```
        +
        +
        +> To obtain a `TestInfo` object for the currently running test, call
        +`current_test_info()` on the `UnitTest` singleton object:
        +
        +```
        +// Gets information about the currently running test.
        +// Do NOT delete the returned object - it's managed by the UnitTest class.
        +const ::testing::TestInfo* const test_info =
        +  ::testing::UnitTest::GetInstance()->current_test_info();
        +printf("We are in test %s of test case %s.\n",
        +       test_info->name(), test_info->test_case_name());
        +```
        +
        +`current_test_info()` returns a null pointer if no test is running. In
        +particular, you cannot find the test case name in `TestCaseSetUp()`,
        +`TestCaseTearDown()` (where you know the test case name implicitly), or
        +functions called from them.
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +# Extending Google Test by Handling Test Events #
        +
        +Google Test provides an <b>event listener API</b> to let you receive
        +notifications about the progress of a test program and test
        +failures. The events you can listen to include the start and end of
        +the test program, a test case, or a test method, among others. You may
        +use this API to augment or replace the standard console output,
        +replace the XML output, or provide a completely different form of
        +output, such as a GUI or a database. You can also use test events as
        +checkpoints to implement a resource leak checker, for example.
        +
        +_Availability:_ Linux, Windows, Mac; since v1.4.0.
        +
        +## Defining Event Listeners ##
        +
        +To define a event listener, you subclass either
        +[testing::TestEventListener](http://code.google.com/p/googletest/source/browse/trunk/include/gtest/gtest.h#855)
        +or [testing::EmptyTestEventListener](http://code.google.com/p/googletest/source/browse/trunk/include/gtest/gtest.h#905).
        +The former is an (abstract) interface, where <i>each pure virtual method<br>
        +can be overridden to handle a test event</i> (For example, when a test
        +starts, the `OnTestStart()` method will be called.). The latter provides
        +an empty implementation of all methods in the interface, such that a
        +subclass only needs to override the methods it cares about.
        +
        +When an event is fired, its context is passed to the handler function
        +as an argument. The following argument types are used:
        +  * [UnitTest](http://code.google.com/p/googletest/source/browse/trunk/include/gtest/gtest.h#1007) reflects the state of the entire test program,
        +  * [TestCase](http://code.google.com/p/googletest/source/browse/trunk/include/gtest/gtest.h#689) has information about a test case, which can contain one or more tests,
        +  * [TestInfo](http://code.google.com/p/googletest/source/browse/trunk/include/gtest/gtest.h#599) contains the state of a test, and
        +  * [TestPartResult](http://code.google.com/p/googletest/source/browse/trunk/include/gtest/gtest-test-part.h#42) represents the result of a test assertion.
        +
        +An event handler function can examine the argument it receives to find
        +out interesting information about the event and the test program's
        +state.  Here's an example:
        +
        +```
        +  class MinimalistPrinter : public ::testing::EmptyTestEventListener {
        +    // Called before a test starts.
        +    virtual void OnTestStart(const ::testing::TestInfo& test_info) {
        +      printf("*** Test %s.%s starting.\n",
        +             test_info.test_case_name(), test_info.name());
        +    }
        +
        +    // Called after a failed assertion or a SUCCESS().
        +    virtual void OnTestPartResult(
        +        const ::testing::TestPartResult& test_part_result) {
        +      printf("%s in %s:%d\n%s\n",
        +             test_part_result.failed() ? "*** Failure" : "Success",
        +             test_part_result.file_name(),
        +             test_part_result.line_number(),
        +             test_part_result.summary());
        +    }
        +
        +    // Called after a test ends.
        +    virtual void OnTestEnd(const ::testing::TestInfo& test_info) {
        +      printf("*** Test %s.%s ending.\n",
        +             test_info.test_case_name(), test_info.name());
        +    }
        +  };
        +```
        +
        +## Using Event Listeners ##
        +
        +To use the event listener you have defined, add an instance of it to
        +the Google Test event listener list (represented by class
        +[TestEventListeners](http://code.google.com/p/googletest/source/browse/trunk/include/gtest/gtest.h#929)
        +- note the "s" at the end of the name) in your
        +`main()` function, before calling `RUN_ALL_TESTS()`:
        +```
        +int main(int argc, char** argv) {
        +  ::testing::InitGoogleTest(&argc, argv);
        +  // Gets hold of the event listener list.
        +  ::testing::TestEventListeners& listeners =
        +      ::testing::UnitTest::GetInstance()->listeners();
        +  // Adds a listener to the end.  Google Test takes the ownership.
        +  listeners.Append(new MinimalistPrinter);
        +  return RUN_ALL_TESTS();
        +}
        +```
        +
        +There's only one problem: the default test result printer is still in
        +effect, so its output will mingle with the output from your minimalist
        +printer. To suppress the default printer, just release it from the
        +event listener list and delete it. You can do so by adding one line:
        +```
        +  ...
        +  delete listeners.Release(listeners.default_result_printer());
        +  listeners.Append(new MinimalistPrinter);
        +  return RUN_ALL_TESTS();
        +```
        +
        +Now, sit back and enjoy a completely different output from your
        +tests. For more details, you can read this
        +[sample](http://code.google.com/p/googletest/source/browse/trunk/samples/sample9_unittest.cc).
        +
        +You may append more than one listener to the list. When an `On*Start()`
        +or `OnTestPartResult()` event is fired, the listeners will receive it in
        +the order they appear in the list (since new listeners are added to
        +the end of the list, the default text printer and the default XML
        +generator will receive the event first). An `On*End()` event will be
        +received by the listeners in the _reverse_ order. This allows output by
        +listeners added later to be framed by output from listeners added
        +earlier.
        +
        +## Generating Failures in Listeners ##
        +
        +You may use failure-raising macros (`EXPECT_*()`, `ASSERT_*()`,
        +`FAIL()`, etc) when processing an event. There are some restrictions:
        +
        +  1. You cannot generate any failure in `OnTestPartResult()` (otherwise it will cause `OnTestPartResult()` to be called recursively).
        +  1. A listener that handles `OnTestPartResult()` is not allowed to generate any failure.
        +
        +When you add listeners to the listener list, you should put listeners
        +that handle `OnTestPartResult()` _before_ listeners that can generate
        +failures. This ensures that failures generated by the latter are
        +attributed to the right test by the former.
        +
        +We have a sample of failure-raising listener
        +[here](http://code.google.com/p/googletest/source/browse/trunk/samples/sample10_unittest.cc).
        +
        +# Running Test Programs: Advanced Options #
        +
        +Google Test test programs are ordinary executables. Once built, you can run
        +them directly and affect their behavior via the following environment variables
        +and/or command line flags. For the flags to work, your programs must call
        +`::testing::InitGoogleTest()` before calling `RUN_ALL_TESTS()`.
        +
        +To see a list of supported flags and their usage, please run your test
        +program with the `--help` flag.  You can also use `-h`, `-?`, or `/?`
        +for short.  This feature is added in version 1.3.0.
        +
        +If an option is specified both by an environment variable and by a
        +flag, the latter takes precedence.  Most of the options can also be
        +set/read in code: to access the value of command line flag
        +`--gtest_foo`, write `::testing::GTEST_FLAG(foo)`.  A common pattern is
        +to set the value of a flag before calling `::testing::InitGoogleTest()`
        +to change the default value of the flag:
        +```
        +int main(int argc, char** argv) {
        +  // Disables elapsed time by default.
        +  ::testing::GTEST_FLAG(print_time) = false;
        +
        +  // This allows the user to override the flag on the command line.
        +  ::testing::InitGoogleTest(&argc, argv);
        +
        +  return RUN_ALL_TESTS();
        +}
        +```
        +
        +## Selecting Tests ##
        +
        +This section shows various options for choosing which tests to run.
        +
        +### Listing Test Names ###
        +
        +Sometimes it is necessary to list the available tests in a program before
        +running them so that a filter may be applied if needed. Including the flag
        +`--gtest_list_tests` overrides all other flags and lists tests in the following
        +format:
        +```
        +TestCase1.
        +  TestName1
        +  TestName2
        +TestCase2.
        +  TestName
        +```
        +
        +None of the tests listed are actually run if the flag is provided. There is no
        +corresponding environment variable for this flag.
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +### Running a Subset of the Tests ###
        +
        +By default, a Google Test program runs all tests the user has defined.
        +Sometimes, you want to run only a subset of the tests (e.g. for debugging or
        +quickly verifying a change). If you set the `GTEST_FILTER` environment variable
        +or the `--gtest_filter` flag to a filter string, Google Test will only run the
        +tests whose full names (in the form of `TestCaseName.TestName`) match the
        +filter.
        +
        +The format of a filter is a '`:`'-separated list of wildcard patterns (called
        +the positive patterns) optionally followed by a '`-`' and another
        +'`:`'-separated pattern list (called the negative patterns). A test matches the
        +filter if and only if it matches any of the positive patterns but does not
        +match any of the negative patterns.
        +
        +A pattern may contain `'*'` (matches any string) or `'?'` (matches any single
        +character). For convenience, the filter `'*-NegativePatterns'` can be also
        +written as `'-NegativePatterns'`.
        +
        +For example:
        +
        +  * `./foo_test` Has no flag, and thus runs all its tests.
        +  * `./foo_test --gtest_filter=*` Also runs everything, due to the single match-everything `*` value.
        +  * `./foo_test --gtest_filter=FooTest.*` Runs everything in test case `FooTest`.
        +  * `./foo_test --gtest_filter=*Null*:*Constructor*` Runs any test whose full name contains either `"Null"` or `"Constructor"`.
        +  * `./foo_test --gtest_filter=-*DeathTest.*` Runs all non-death tests.
        +  * `./foo_test --gtest_filter=FooTest.*-FooTest.Bar` Runs everything in test case `FooTest` except `FooTest.Bar`.
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +### Temporarily Disabling Tests ###
        +
        +If you have a broken test that you cannot fix right away, you can add the
        +`DISABLED_` prefix to its name. This will exclude it from execution. This is
        +better than commenting out the code or using `#if 0`, as disabled tests are
        +still compiled (and thus won't rot).
        +
        +If you need to disable all tests in a test case, you can either add `DISABLED_`
        +to the front of the name of each test, or alternatively add it to the front of
        +the test case name.
        +
        +For example, the following tests won't be run by Google Test, even though they
        +will still be compiled:
        +
        +```
        +// Tests that Foo does Abc.
        +TEST(FooTest, DISABLED_DoesAbc) { ... }
        +
        +class DISABLED_BarTest : public ::testing::Test { ... };
        +
        +// Tests that Bar does Xyz.
        +TEST_F(DISABLED_BarTest, DoesXyz) { ... }
        +```
        +
        +_Note:_ This feature should only be used for temporary pain-relief. You still
        +have to fix the disabled tests at a later date. As a reminder, Google Test will
        +print a banner warning you if a test program contains any disabled tests.
        +
        +_Tip:_ You can easily count the number of disabled tests you have
        +using `grep`. This number can be used as a metric for improving your
        +test quality.
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +### Temporarily Enabling Disabled Tests ###
        +
        +To include [disabled tests](#Temporarily_Disabling_Tests.md) in test
        +execution, just invoke the test program with the
        +`--gtest_also_run_disabled_tests` flag or set the
        +`GTEST_ALSO_RUN_DISABLED_TESTS` environment variable to a value other
        +than `0`.  You can combine this with the
        +[--gtest\_filter](#Running_a_Subset_of_the_Tests.md) flag to further select
        +which disabled tests to run.
        +
        +_Availability:_ Linux, Windows, Mac; since version 1.3.0.
        +
        +## Repeating the Tests ##
        +
        +Once in a while you'll run into a test whose result is hit-or-miss. Perhaps it
        +will fail only 1% of the time, making it rather hard to reproduce the bug under
        +a debugger. This can be a major source of frustration.
        +
        +The `--gtest_repeat` flag allows you to repeat all (or selected) test methods
        +in a program many times. Hopefully, a flaky test will eventually fail and give
        +you a chance to debug. Here's how to use it:
        +
        +| `$ foo_test --gtest_repeat=1000` | Repeat foo\_test 1000 times and don't stop at failures. |
        +|:---------------------------------|:--------------------------------------------------------|
        +| `$ foo_test --gtest_repeat=-1`   | A negative count means repeating forever.               |
        +| `$ foo_test --gtest_repeat=1000 --gtest_break_on_failure` | Repeat foo\_test 1000 times, stopping at the first failure. This is especially useful when running under a debugger: when the testfails, it will drop into the debugger and you can then inspect variables and stacks. |
        +| `$ foo_test --gtest_repeat=1000 --gtest_filter=FooBar` | Repeat the tests whose name matches the filter 1000 times. |
        +
        +If your test program contains global set-up/tear-down code registered
        +using `AddGlobalTestEnvironment()`, it will be repeated in each
        +iteration as well, as the flakiness may be in it. You can also specify
        +the repeat count by setting the `GTEST_REPEAT` environment variable.
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +## Shuffling the Tests ##
        +
        +You can specify the `--gtest_shuffle` flag (or set the `GTEST_SHUFFLE`
        +environment variable to `1`) to run the tests in a program in a random
        +order. This helps to reveal bad dependencies between tests.
        +
        +By default, Google Test uses a random seed calculated from the current
        +time. Therefore you'll get a different order every time. The console
        +output includes the random seed value, such that you can reproduce an
        +order-related test failure later. To specify the random seed
        +explicitly, use the `--gtest_random_seed=SEED` flag (or set the
        +`GTEST_RANDOM_SEED` environment variable), where `SEED` is an integer
        +between 0 and 99999. The seed value 0 is special: it tells Google Test
        +to do the default behavior of calculating the seed from the current
        +time.
        +
        +If you combine this with `--gtest_repeat=N`, Google Test will pick a
        +different random seed and re-shuffle the tests in each iteration.
        +
        +_Availability:_ Linux, Windows, Mac; since v1.4.0.
        +
        +## Controlling Test Output ##
        +
        +This section teaches how to tweak the way test results are reported.
        +
        +### Colored Terminal Output ###
        +
        +Google Test can use colors in its terminal output to make it easier to spot
        +the separation between tests, and whether tests passed.
        +
        +You can set the GTEST\_COLOR environment variable or set the `--gtest_color`
        +command line flag to `yes`, `no`, or `auto` (the default) to enable colors,
        +disable colors, or let Google Test decide. When the value is `auto`, Google
        +Test will use colors if and only if the output goes to a terminal and (on
        +non-Windows platforms) the `TERM` environment variable is set to `xterm` or
        +`xterm-color`.
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +### Suppressing the Elapsed Time ###
        +
        +By default, Google Test prints the time it takes to run each test.  To
        +suppress that, run the test program with the `--gtest_print_time=0`
        +command line flag.  Setting the `GTEST_PRINT_TIME` environment
        +variable to `0` has the same effect.
        +
        +_Availability:_ Linux, Windows, Mac.  (In Google Test 1.3.0 and lower,
        +the default behavior is that the elapsed time is **not** printed.)
        +
        +### Generating an XML Report ###
        +
        +Google Test can emit a detailed XML report to a file in addition to its normal
        +textual output. The report contains the duration of each test, and thus can
        +help you identify slow tests.
        +
        +To generate the XML report, set the `GTEST_OUTPUT` environment variable or the
        +`--gtest_output` flag to the string `"xml:_path_to_output_file_"`, which will
        +create the file at the given location. You can also just use the string
        +`"xml"`, in which case the output can be found in the `test_detail.xml` file in
        +the current directory.
        +
        +If you specify a directory (for example, `"xml:output/directory/"` on Linux or
        +`"xml:output\directory\"` on Windows), Google Test will create the XML file in
        +that directory, named after the test executable (e.g. `foo_test.xml` for test
        +program `foo_test` or `foo_test.exe`). If the file already exists (perhaps left
        +over from a previous run), Google Test will pick a different name (e.g.
        +`foo_test_1.xml`) to avoid overwriting it.
        +
        +The report uses the format described here.  It is based on the
        +`junitreport` Ant task and can be parsed by popular continuous build
        +systems like [Hudson](https://hudson.dev.java.net/). Since that format
        +was originally intended for Java, a little interpretation is required
        +to make it apply to Google Test tests, as shown here:
        +
        +```
        +<testsuites name="AllTests" ...>
        +  <testsuite name="test_case_name" ...>
        +    <testcase name="test_name" ...>
        +      <failure message="..."/>
        +      <failure message="..."/>
        +      <failure message="..."/>
        +    </testcase>
        +  </testsuite>
        +</testsuites>
        +```
        +
        +  * The root `<testsuites>` element corresponds to the entire test program.
        +  * `<testsuite>` elements correspond to Google Test test cases.
        +  * `<testcase>` elements correspond to Google Test test functions.
        +
        +For instance, the following program
        +
        +```
        +TEST(MathTest, Addition) { ... }
        +TEST(MathTest, Subtraction) { ... }
        +TEST(LogicTest, NonContradiction) { ... }
        +```
        +
        +could generate this report:
        +
        +```
        +<?xml version="1.0" encoding="UTF-8"?>
        +<testsuites tests="3" failures="1" errors="0" time="35" name="AllTests">
        +  <testsuite name="MathTest" tests="2" failures="1"* errors="0" time="15">
        +    <testcase name="Addition" status="run" time="7" classname="">
        +      <failure message="Value of: add(1, 1)&#x0A; Actual: 3&#x0A;Expected: 2" type=""/>
        +      <failure message="Value of: add(1, -1)&#x0A; Actual: 1&#x0A;Expected: 0" type=""/>
        +    </testcase>
        +    <testcase name="Subtraction" status="run" time="5" classname="">
        +    </testcase>
        +  </testsuite>
        +  <testsuite name="LogicTest" tests="1" failures="0" errors="0" time="5">
        +    <testcase name="NonContradiction" status="run" time="5" classname="">
        +    </testcase>
        +  </testsuite>
        +</testsuites>
        +```
        +
        +Things to note:
        +
        +  * The `tests` attribute of a `<testsuites>` or `<testsuite>` element tells how many test functions the Google Test program or test case contains, while the `failures` attribute tells how many of them failed.
        +  * The `time` attribute expresses the duration of the test, test case, or entire test program in milliseconds.
        +  * Each `<failure>` element corresponds to a single failed Google Test assertion.
        +  * Some JUnit concepts don't apply to Google Test, yet we have to conform to the DTD. Therefore you'll see some dummy elements and attributes in the report. You can safely ignore these parts.
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +## Controlling How Failures Are Reported ##
        +
        +### Turning Assertion Failures into Break-Points ###
        +
        +When running test programs under a debugger, it's very convenient if the
        +debugger can catch an assertion failure and automatically drop into interactive
        +mode. Google Test's _break-on-failure_ mode supports this behavior.
        +
        +To enable it, set the `GTEST_BREAK_ON_FAILURE` environment variable to a value
        +other than `0` . Alternatively, you can use the `--gtest_break_on_failure`
        +command line flag.
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +### Suppressing Pop-ups Caused by Exceptions ###
        +
        +On Windows, Google Test may be used with exceptions enabled. Even when
        +exceptions are disabled, an application can still throw structured exceptions
        +(SEH's). If a test throws an exception, by default Google Test doesn't try to
        +catch it. Instead, you'll see a pop-up dialog, at which point you can attach
        +the process to a debugger and easily find out what went wrong.
        +
        +However, if you don't want to see the pop-ups (for example, if you run the
        +tests in a batch job), set the `GTEST_CATCH_EXCEPTIONS` environment variable to
        +a non- `0` value, or use the `--gtest_catch_exceptions` flag. Google Test now
        +catches all test-thrown exceptions and logs them as failures.
        +
        +_Availability:_ Windows. `GTEST_CATCH_EXCEPTIONS` and
        +`--gtest_catch_exceptions` have no effect on Google Test's behavior on Linux or
        +Mac, even if exceptions are enabled. It is possible to add support for catching
        +exceptions on these platforms, but it is not implemented yet.
        +
        +### Letting Another Testing Framework Drive ###
        +
        +If you work on a project that has already been using another testing
        +framework and is not ready to completely switch to Google Test yet,
        +you can get much of Google Test's benefit by using its assertions in
        +your existing tests.  Just change your `main()` function to look
        +like:
        +
        +```
        +#include <gtest/gtest.h>
        +
        +int main(int argc, char** argv) {
        +  ::testing::GTEST_FLAG(throw_on_failure) = true;
        +  // Important: Google Test must be initialized.
        +  ::testing::InitGoogleTest(&argc, argv);
        +
        +  ... whatever your existing testing framework requires ...
        +}
        +```
        +
        +With that, you can use Google Test assertions in addition to the
        +native assertions your testing framework provides, for example:
        +
        +```
        +void TestFooDoesBar() {
        +  Foo foo;
        +  EXPECT_LE(foo.Bar(1), 100);     // A Google Test assertion.
        +  CPPUNIT_ASSERT(foo.IsEmpty());  // A native assertion.
        +}
        +```
        +
        +If a Google Test assertion fails, it will print an error message and
        +throw an exception, which will be treated as a failure by your host
        +testing framework.  If you compile your code with exceptions disabled,
        +a failed Google Test assertion will instead exit your program with a
        +non-zero code, which will also signal a test failure to your test
        +runner.
        +
        +If you don't write `::testing::GTEST_FLAG(throw_on_failure) = true;` in
        +your `main()`, you can alternatively enable this feature by specifying
        +the `--gtest_throw_on_failure` flag on the command-line or setting the
        +`GTEST_THROW_ON_FAILURE` environment variable to a non-zero value.
        +
        +_Availability:_ Linux, Windows, Mac; since v1.3.0.
        +
        +## Distributing Test Functions to Multiple Machines ##
        +
        +If you have more than one machine you can use to run a test program,
        +you might want to run the test functions in parallel and get the
        +result faster.  We call this technique _sharding_, where each machine
        +is called a _shard_.
        +
        +Google Test is compatible with test sharding.  To take advantage of
        +this feature, your test runner (not part of Google Test) needs to do
        +the following:
        +
        +  1. Allocate a number of machines (shards) to run the tests.
        +  1. On each shard, set the `GTEST_TOTAL_SHARDS` environment variable to the total number of shards.  It must be the same for all shards.
        +  1. On each shard, set the `GTEST_SHARD_INDEX` environment variable to the index of the shard.  Different shards must be assigned different indices, which must be in the range `[0, GTEST_TOTAL_SHARDS - 1]`.
        +  1. Run the same test program on all shards.  When Google Test sees the above two environment variables, it will select a subset of the test functions to run.  Across all shards, each test function in the program will be run exactly once.
        +  1. Wait for all shards to finish, then collect and report the results.
        +
        +Your project may have tests that were written without Google Test and
        +thus don't understand this protocol.  In order for your test runner to
        +figure out which test supports sharding, it can set the environment
        +variable `GTEST_SHARD_STATUS_FILE` to a non-existent file path.  If a
        +test program supports sharding, it will create this file to
        +acknowledge the fact (the actual contents of the file are not
        +important at this time; although we may stick some useful information
        +in it in the future.); otherwise it will not create it.
        +
        +Here's an example to make it clear.  Suppose you have a test program
        +`foo_test` that contains the following 5 test functions:
        +```
        +TEST(A, V)
        +TEST(A, W)
        +TEST(B, X)
        +TEST(B, Y)
        +TEST(B, Z)
        +```
        +and you have 3 machines at your disposal.  To run the test functions in
        +parallel, you would set `GTEST_TOTAL_SHARDS` to 3 on all machines, and
        +set `GTEST_SHARD_INDEX` to 0, 1, and 2 on the machines respectively.
        +Then you would run the same `foo_test` on each machine.
        +
        +Google Test reserves the right to change how the work is distributed
        +across the shards, but here's one possible scenario:
        +
        +  * Machine #0 runs `A.V` and `B.X`.
        +  * Machine #1 runs `A.W` and `B.Y`.
        +  * Machine #2 runs `B.Z`.
        +
        +_Availability:_ Linux, Windows, Mac; since version 1.3.0.
        +
        +# Fusing Google Test Source Files #
        +
        +Google Test's implementation consists of ~30 files (excluding its own
        +tests).  Sometimes you may want them to be packaged up in two files (a
        +`.h` and a `.cc`) instead, such that you can easily copy them to a new
        +machine and start hacking there.  For this we provide an experimental
        +Python script `fuse_gtest_files.py` in the `scripts/` directory (since release 1.3.0).
        +Assuming you have Python 2.4 or above installed on your machine, just
        +go to that directory and run
        +```
        +python fuse_gtest_files.py OUTPUT_DIR
        +```
        +
        +and you should see an `OUTPUT_DIR` directory being created with files
        +`gtest/gtest.h` and `gtest/gtest-all.cc` in it.  These files contain
        +everything you need to use Google Test.  Just copy them to anywhere
        +you want and you are ready to write tests.  You can use the
        +[scrpts/test/Makefile](http://code.google.com/p/googletest/source/browse/trunk/scripts/test/Makefile)
        +file as an example on how to compile your tests against them.
        +
        +# Where to Go from Here #
        +
        +Congratulations! You've now learned more advanced Google Test tools and are
        +ready to tackle more complex testing tasks. If you want to dive even deeper, you
        +can read the [FAQ](V1_5_FAQ.md).
        \ No newline at end of file
        diff --git a/lib/ann/fann/lib/googletest/docs/V1_5_Documentation.md b/lib/ann/fann/lib/googletest/docs/V1_5_Documentation.md
        new file mode 100644
        index 0000000..46bba2e
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/docs/V1_5_Documentation.md
        @@ -0,0 +1,12 @@
        +This page lists all official documentation wiki pages for Google Test **1.5.0** -- **if you use a different version of Google Test, make sure to read the documentation for that version instead.**
        +
        +  * [Primer](V1_5_Primer.md) -- start here if you are new to Google Test.
        +  * [Samples](Samples.md) -- learn from examples.
        +  * [AdvancedGuide](V1_5_AdvancedGuide.md) -- learn more about Google Test.
        +  * [XcodeGuide](V1_5_XcodeGuide.md) -- how to use Google Test in Xcode on Mac.
        +  * [Frequently-Asked Questions](V1_5_FAQ.md) -- check here before asking a question on the mailing list.
        +
        +To contribute code to Google Test, read:
        +
        +  * DevGuide -- read this _before_ writing your first patch.
        +  * [PumpManual](V1_5_PumpManual.md) -- how we generate some of Google Test's source files.
        \ No newline at end of file
        diff --git a/lib/ann/fann/lib/googletest/docs/V1_5_FAQ.md b/lib/ann/fann/lib/googletest/docs/V1_5_FAQ.md
        new file mode 100644
        index 0000000..014dba2
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/docs/V1_5_FAQ.md
        @@ -0,0 +1,885 @@
        +
        +
        +If you cannot find the answer to your question here, and you have read
        +[Primer](V1_5_Primer.md) and [AdvancedGuide](V1_5_AdvancedGuide.md), send it to
        +googletestframework@googlegroups.com.
        +
        +## Why should I use Google Test instead of my favorite C++ testing framework? ##
        +
        +First, let's say clearly that we don't want to get into the debate of
        +which C++ testing framework is **the best**.  There exist many fine
        +frameworks for writing C++ tests, and we have tremendous respect for
        +the developers and users of them.  We don't think there is (or will
        +be) a single best framework - you have to pick the right tool for the
        +particular task you are tackling.
        +
        +We created Google Test because we couldn't find the right combination
        +of features and conveniences in an existing framework to satisfy _our_
        +needs.  The following is a list of things that _we_ like about Google
        +Test.  We don't claim them to be unique to Google Test - rather, the
        +combination of them makes Google Test the choice for us.  We hope this
        +list can help you decide whether it is for you too.
        +
        +  * Google Test is designed to be portable.  It works where many STL types (e.g. `std::string` and `std::vector`) don't compile.  It doesn't require exceptions or RTTI.  As a result, it runs on Linux, Mac OS X, Windows and several embedded operating systems.
        +  * Nonfatal assertions (`EXPECT_*`) have proven to be great time savers, as they allow a test to report multiple failures in a single edit-compile-test cycle.
        +  * It's easy to write assertions that generate informative messages: you just use the stream syntax to append any additional information, e.g. `ASSERT_EQ(5, Foo(i)) << " where i = " << i;`.  It doesn't require a new set of macros or special functions.
        +  * Google Test automatically detects your tests and doesn't require you to enumerate them in order to run them.
        +  * No framework can anticipate all your needs, so Google Test provides `EXPECT_PRED*` to make it easy to extend your assertion vocabulary.  For a nicer syntax, you can define your own assertion macros trivially in terms of `EXPECT_PRED*`.
        +  * Death tests are pretty handy for ensuring that your asserts in production code are triggered by the right conditions.
        +  * `SCOPED_TRACE` helps you understand the context of an assertion failure when it comes from inside a sub-routine or loop.
        +  * You can decide which tests to run using name patterns.  This saves time when you want to quickly reproduce a test failure.
        +
        +## How do I generate 64-bit binaries on Windows (using Visual Studio 2008)? ##
        +
        +(Answered by Trevor Robinson)
        +
        +Load the supplied Visual Studio solution file, either `msvc\gtest-md.sln` or
        +`msvc\gtest.sln`. Go through the migration wizard to migrate the
        +solution and project files to Visual Studio 2008. Select
        +`Configuration Manager...` from the `Build` menu. Select `<New...>` from
        +the `Active solution platform` dropdown.  Select `x64` from the new
        +platform dropdown, leave `Copy settings from` set to `Win32` and
        +`Create new project platforms` checked, then click `OK`. You now have
        +`Win32` and `x64` platform configurations, selectable from the
        +`Standard` toolbar, which allow you to toggle between building 32-bit or
        +64-bit binaries (or both at once using Batch Build).
        +
        +In order to prevent build output files from overwriting one another,
        +you'll need to change the `Intermediate Directory` settings for the
        +newly created platform configuration across all the projects. To do
        +this, multi-select (e.g. using shift-click) all projects (but not the
        +solution) in the `Solution Explorer`. Right-click one of them and
        +select `Properties`. In the left pane, select `Configuration Properties`,
        +and from the `Configuration` dropdown, select `All Configurations`.
        +Make sure the selected platform is `x64`. For the
        +`Intermediate Directory` setting, change the value from
        +`$(PlatformName)\$(ConfigurationName)` to
        +`$(OutDir)\$(ProjectName)`. Click `OK` and then build the
        +solution. When the build is complete, the 64-bit binaries will be in
        +the `msvc\x64\Debug` directory.
        +
        +## Can I use Google Test on MinGW? ##
        +
        +We haven't tested this ourselves, but Per Abrahamsen reported that he
        +was able to compile and install Google Test successfully when using
        +MinGW from Cygwin.  You'll need to configure it with:
        +
        +`PATH/TO/configure CC="gcc -mno-cygwin" CXX="g++ -mno-cygwin"`
        +
        +You should be able to replace the `-mno-cygwin` option with direct links
        +to the real MinGW binaries, but we haven't tried that.
        +
        +Caveats:
        +
        +  * There are many warnings when compiling.
        +  * `make check` will produce some errors as not all tests for Google Test itself are compatible with MinGW.
        +
        +We also have reports on successful cross compilation of Google Test MinGW binaries on Linux using [these instructions](http://wiki.wxwidgets.org/Cross-Compiling_Under_Linux#Cross-compiling_under_Linux_for_MS_Windows) on the WxWidgets site.
        +
        +Please contact `googletestframework@googlegroups.com` if you are
        +interested in improving the support for MinGW.
        +
        +## Why does Google Test support EXPECT\_EQ(NULL, ptr) and ASSERT\_EQ(NULL, ptr) but not EXPECT\_NE(NULL, ptr) and ASSERT\_NE(NULL, ptr)? ##
        +
        +Due to some peculiarity of C++, it requires some non-trivial template
        +meta programming tricks to support using `NULL` as an argument of the
        +`EXPECT_XX()` and `ASSERT_XX()` macros. Therefore we only do it where
        +it's most needed (otherwise we make the implementation of Google Test
        +harder to maintain and more error-prone than necessary).
        +
        +The `EXPECT_EQ()` macro takes the _expected_ value as its first
        +argument and the _actual_ value as the second. It's reasonable that
        +someone wants to write `EXPECT_EQ(NULL, some_expression)`, and this
        +indeed was requested several times. Therefore we implemented it.
        +
        +The need for `EXPECT_NE(NULL, ptr)` isn't nearly as strong. When the
        +assertion fails, you already know that `ptr` must be `NULL`, so it
        +doesn't add any information to print ptr in this case. That means
        +`EXPECT_TRUE(ptr ! NULL)` works just as well.
        +
        +If we were to support `EXPECT_NE(NULL, ptr)`, for consistency we'll
        +have to support `EXPECT_NE(ptr, NULL)` as well, as unlike `EXPECT_EQ`,
        +we don't have a convention on the order of the two arguments for
        +`EXPECT_NE`. This means using the template meta programming tricks
        +twice in the implementation, making it even harder to understand and
        +maintain. We believe the benefit doesn't justify the cost.
        +
        +Finally, with the growth of Google Mock's [matcher](http://code.google.com/p/googlemock/wiki/CookBook#Using_Matchers_in_Google_Test_Assertions) library, we are
        +encouraging people to use the unified `EXPECT_THAT(value, matcher)`
        +syntax more often in tests. One significant advantage of the matcher
        +approach is that matchers can be easily combined to form new matchers,
        +while the `EXPECT_NE`, etc, macros cannot be easily
        +combined. Therefore we want to invest more in the matchers than in the
        +`EXPECT_XX()` macros.
        +
        +## Does Google Test support running tests in parallel? ##
        +
        +Test runners tend to be tightly coupled with the build/test
        +environment, and Google Test doesn't try to solve the problem of
        +running tests in parallel.  Instead, we tried to make Google Test work
        +nicely with test runners.  For example, Google Test's XML report
        +contains the time spent on each test, and its `gtest_list_tests` and
        +`gtest_filter` flags can be used for splitting the execution of test
        +methods into multiple processes.  These functionalities can help the
        +test runner run the tests in parallel.
        +
        +## Why don't Google Test run the tests in different threads to speed things up? ##
        +
        +It's difficult to write thread-safe code.  Most tests are not written
        +with thread-safety in mind, and thus may not work correctly in a
        +multi-threaded setting.
        +
        +If you think about it, it's already hard to make your code work when
        +you know what other threads are doing.  It's much harder, and
        +sometimes even impossible, to make your code work when you don't know
        +what other threads are doing (remember that test methods can be added,
        +deleted, or modified after your test was written).  If you want to run
        +the tests in parallel, you'd better run them in different processes.
        +
        +## Why aren't Google Test assertions implemented using exceptions? ##
        +
        +Our original motivation was to be able to use Google Test in projects
        +that disable exceptions.  Later we realized some additional benefits
        +of this approach:
        +
        +  1. Throwing in a destructor is undefined behavior in C++.  Not using exceptions means Google Test's assertions are safe to use in destructors.
        +  1. The `EXPECT_*` family of macros will continue even after a failure, allowing multiple failures in a `TEST` to be reported in a single run. This is a popular feature, as in C++ the edit-compile-test cycle is usually quite long and being able to fixing more than one thing at a time is a blessing.
        +  1. If assertions are implemented using exceptions, a test may falsely ignore a failure if it's caught by user code:
        +```
        +try { ... ASSERT_TRUE(...) ... }
        +catch (...) { ... }
        +```
        +The above code will pass even if the `ASSERT_TRUE` throws.  While it's unlikely for someone to write this in a test, it's possible to run into this pattern when you write assertions in callbacks that are called by the code under test.
        +
        +The downside of not using exceptions is that `ASSERT_*` (implemented
        +using `return`) will only abort the current function, not the current
        +`TEST`.
        +
        +## Why do we use two different macros for tests with and without fixtures? ##
        +
        +Unfortunately, C++'s macro system doesn't allow us to use the same
        +macro for both cases.  One possibility is to provide only one macro
        +for tests with fixtures, and require the user to define an empty
        +fixture sometimes:
        +
        +```
        +class FooTest : public ::testing::Test {};
        +
        +TEST_F(FooTest, DoesThis) { ... }
        +```
        +or
        +```
        +typedef ::testing::Test FooTest;
        +
        +TEST_F(FooTest, DoesThat) { ... }
        +```
        +
        +Yet, many people think this is one line too many. :-) Our goal was to
        +make it really easy to write tests, so we tried to make simple tests
        +trivial to create.  That means using a separate macro for such tests.
        +
        +We think neither approach is ideal, yet either of them is reasonable.
        +In the end, it probably doesn't matter much either way.
        +
        +## Why don't we use structs as test fixtures? ##
        +
        +We like to use structs only when representing passive data.  This
        +distinction between structs and classes is good for documenting the
        +intent of the code's author.  Since test fixtures have logic like
        +`SetUp()` and `TearDown()`, they are better defined as classes.
        +
        +## Why are death tests implemented as assertions instead of using a test runner? ##
        +
        +Our goal was to make death tests as convenient for a user as C++
        +possibly allows.  In particular:
        +
        +  * The runner-style requires to split the information into two pieces: the definition of the death test itself, and the specification for the runner on how to run the death test and what to expect.  The death test would be written in C++, while the runner spec may or may not be.  A user needs to carefully keep the two in sync. `ASSERT_DEATH(statement, expected_message)` specifies all necessary information in one place, in one language, without boilerplate code. It is very declarative.
        +  * `ASSERT_DEATH` has a similar syntax and error-reporting semantics as other Google Test assertions, and thus is easy to learn.
        +  * `ASSERT_DEATH` can be mixed with other assertions and other logic at your will.  You are not limited to one death test per test method. For example, you can write something like:
        +```
        +    if (FooCondition()) {
        +      ASSERT_DEATH(Bar(), "blah");
        +    } else {
        +      ASSERT_EQ(5, Bar());
        +    }
        +```
        +If you prefer one death test per test method, you can write your tests in that style too, but we don't want to impose that on the users.  The fewer artificial limitations the better.
        +  * `ASSERT_DEATH` can reference local variables in the current function, and you can decide how many death tests you want based on run-time information.  For example,
        +```
        +    const int count = GetCount();  // Only known at run time.
        +    for (int i = 1; i <= count; i++) {
        +      ASSERT_DEATH({
        +        double* buffer = new double[i];
        +        ... initializes buffer ...
        +        Foo(buffer, i)
        +      }, "blah blah");
        +    }
        +```
        +The runner-based approach tends to be more static and less flexible, or requires more user effort to get this kind of flexibility.
        +
        +Another interesting thing about `ASSERT_DEATH` is that it calls `fork()`
        +to create a child process to run the death test.  This is lightening
        +fast, as `fork()` uses copy-on-write pages and incurs almost zero
        +overhead, and the child process starts from the user-supplied
        +statement directly, skipping all global and local initialization and
        +any code leading to the given statement.  If you launch the child
        +process from scratch, it can take seconds just to load everything and
        +start running if the test links to many libraries dynamically.
        +
        +## My death test modifies some state, but the change seems lost after the death test finishes. Why? ##
        +
        +Death tests (`EXPECT_DEATH`, etc) are executed in a sub-process s.t. the
        +expected crash won't kill the test program (i.e. the parent process). As a
        +result, any in-memory side effects they incur are observable in their
        +respective sub-processes, but not in the parent process. You can think of them
        +as running in a parallel universe, more or less.
        +
        +## The compiler complains about "undefined references" to some static const member variables, but I did define them in the class body. What's wrong? ##
        +
        +If your class has a static data member:
        +
        +```
        +// foo.h
        +class Foo {
        +  ...
        +  static const int kBar = 100;
        +};
        +```
        +
        +You also need to define it _outside_ of the class body in `foo.cc`:
        +
        +```
        +const int Foo::kBar;  // No initializer here.
        +```
        +
        +Otherwise your code is **invalid C++**, and may break in unexpected ways. In
        +particular, using it in Google Test comparison assertions (`EXPECT_EQ`, etc)
        +will generate an "undefined reference" linker error.
        +
        +## I have an interface that has several implementations. Can I write a set of tests once and repeat them over all the implementations? ##
        +
        +Google Test doesn't yet have good support for this kind of tests, or
        +data-driven tests in general. We hope to be able to make improvements in this
        +area soon.
        +
        +## Can I derive a test fixture from another? ##
        +
        +Yes.
        +
        +Each test fixture has a corresponding and same named test case. This means only
        +one test case can use a particular fixture. Sometimes, however, multiple test
        +cases may want to use the same or slightly different fixtures. For example, you
        +may want to make sure that all of a GUI library's test cases don't leak
        +important system resources like fonts and brushes.
        +
        +In Google Test, you share a fixture among test cases by putting the shared
        +logic in a base test fixture, then deriving from that base a separate fixture
        +for each test case that wants to use this common logic. You then use `TEST_F()`
        +to write tests using each derived fixture.
        +
        +Typically, your code looks like this:
        +
        +```
        +// Defines a base test fixture.
        +class BaseTest : public ::testing::Test {
        +  protected:
        +   ...
        +};
        +
        +// Derives a fixture FooTest from BaseTest.
        +class FooTest : public BaseTest {
        +  protected:
        +    virtual void SetUp() {
        +      BaseTest::SetUp();  // Sets up the base fixture first.
        +      ... additional set-up work ...
        +    }
        +    virtual void TearDown() {
        +      ... clean-up work for FooTest ...
        +      BaseTest::TearDown();  // Remember to tear down the base fixture
        +                             // after cleaning up FooTest!
        +    }
        +    ... functions and variables for FooTest ...
        +};
        +
        +// Tests that use the fixture FooTest.
        +TEST_F(FooTest, Bar) { ... }
        +TEST_F(FooTest, Baz) { ... }
        +
        +... additional fixtures derived from BaseTest ...
        +```
        +
        +If necessary, you can continue to derive test fixtures from a derived fixture.
        +Google Test has no limit on how deep the hierarchy can be.
        +
        +For a complete example using derived test fixtures, see
        +`samples/sample5_unittest.cc`.
        +
        +## My compiler complains "void value not ignored as it ought to be." What does this mean? ##
        +
        +You're probably using an `ASSERT_*()` in a function that doesn't return `void`.
        +`ASSERT_*()` can only be used in `void` functions.
        +
        +## My death test hangs (or seg-faults). How do I fix it? ##
        +
        +In Google Test, death tests are run in a child process and the way they work is
        +delicate. To write death tests you really need to understand how they work.
        +Please make sure you have read this.
        +
        +In particular, death tests don't like having multiple threads in the parent
        +process. So the first thing you can try is to eliminate creating threads
        +outside of `EXPECT_DEATH()`.
        +
        +Sometimes this is impossible as some library you must use may be creating
        +threads before `main()` is even reached. In this case, you can try to minimize
        +the chance of conflicts by either moving as many activities as possible inside
        +`EXPECT_DEATH()` (in the extreme case, you want to move everything inside), or
        +leaving as few things as possible in it. Also, you can try to set the death
        +test style to `"threadsafe"`, which is safer but slower, and see if it helps.
        +
        +If you go with thread-safe death tests, remember that they rerun the test
        +program from the beginning in the child process. Therefore make sure your
        +program can run side-by-side with itself and is deterministic.
        +
        +In the end, this boils down to good concurrent programming. You have to make
        +sure that there is no race conditions or dead locks in your program. No silver
        +bullet - sorry!
        +
        +## Should I use the constructor/destructor of the test fixture or the set-up/tear-down function? ##
        +
        +The first thing to remember is that Google Test does not reuse the
        +same test fixture object across multiple tests. For each `TEST_F`,
        +Google Test will create a fresh test fixture object, _immediately_
        +call `SetUp()`, run the test, call `TearDown()`, and then
        +_immediately_ delete the test fixture object. Therefore, there is no
        +need to write a `SetUp()` or `TearDown()` function if the constructor
        +or destructor already does the job.
        +
        +You may still want to use `SetUp()/TearDown()` in the following cases:
        +  * If the tear-down operation could throw an exception, you must use `TearDown()` as opposed to the destructor, as throwing in a destructor leads to undefined behavior and usually will kill your program right away. Note that many standard libraries (like STL) may throw when exceptions are enabled in the compiler. Therefore you should prefer `TearDown()` if you want to write portable tests that work with or without exceptions.
        +  * The Google Test team is considering making the assertion macros throw on platforms where exceptions are enabled (e.g. Windows, Mac OS, and Linux client-side), which will eliminate the need for the user to propagate failures from a subroutine to its caller. Therefore, you shouldn't use Google Test assertions in a destructor if your code could run on such a platform.
        +  * In a constructor or destructor, you cannot make a virtual function call on this object. (You can call a method declared as virtual, but it will be statically bound.) Therefore, if you need to call a method that will be overriden in a derived class, you have to use `SetUp()/TearDown()`.
        +
        +## The compiler complains "no matching function to call" when I use ASSERT\_PREDn. How do I fix it? ##
        +
        +If the predicate function you use in `ASSERT_PRED*` or `EXPECT_PRED*` is
        +overloaded or a template, the compiler will have trouble figuring out which
        +overloaded version it should use. `ASSERT_PRED_FORMAT*` and
        +`EXPECT_PRED_FORMAT*` don't have this problem.
        +
        +If you see this error, you might want to switch to
        +`(ASSERT|EXPECT)_PRED_FORMAT*`, which will also give you a better failure
        +message. If, however, that is not an option, you can resolve the problem by
        +explicitly telling the compiler which version to pick.
        +
        +For example, suppose you have
        +
        +```
        +bool IsPositive(int n) {
        +  return n > 0;
        +}
        +bool IsPositive(double x) {
        +  return x > 0;
        +}
        +```
        +
        +you will get a compiler error if you write
        +
        +```
        +EXPECT_PRED1(IsPositive, 5);
        +```
        +
        +However, this will work:
        +
        +```
        +EXPECT_PRED1(*static_cast<bool (*)(int)>*(IsPositive), 5);
        +```
        +
        +(The stuff inside the angled brackets for the `static_cast` operator is the
        +type of the function pointer for the `int`-version of `IsPositive()`.)
        +
        +As another example, when you have a template function
        +
        +```
        +template <typename T>
        +bool IsNegative(T x) {
        +  return x < 0;
        +}
        +```
        +
        +you can use it in a predicate assertion like this:
        +
        +```
        +ASSERT_PRED1(IsNegative*<int>*, -5);
        +```
        +
        +Things are more interesting if your template has more than one parameters. The
        +following won't compile:
        +
        +```
        +ASSERT_PRED2(*GreaterThan<int, int>*, 5, 0);
        +```
        +
        +
        +as the C++ pre-processor thinks you are giving `ASSERT_PRED2` 4 arguments,
        +which is one more than expected. The workaround is to wrap the predicate
        +function in parentheses:
        +
        +```
        +ASSERT_PRED2(*(GreaterThan<int, int>)*, 5, 0);
        +```
        +
        +
        +## My compiler complains about "ignoring return value" when I call RUN\_ALL\_TESTS(). Why? ##
        +
        +Some people had been ignoring the return value of `RUN_ALL_TESTS()`. That is,
        +instead of
        +
        +```
        +return RUN_ALL_TESTS();
        +```
        +
        +they write
        +
        +```
        +RUN_ALL_TESTS();
        +```
        +
        +This is wrong and dangerous. A test runner needs to see the return value of
        +`RUN_ALL_TESTS()` in order to determine if a test has passed. If your `main()`
        +function ignores it, your test will be considered successful even if it has a
        +Google Test assertion failure. Very bad.
        +
        +To help the users avoid this dangerous bug, the implementation of
        +`RUN_ALL_TESTS()` causes gcc to raise this warning, when the return value is
        +ignored. If you see this warning, the fix is simple: just make sure its value
        +is used as the return value of `main()`.
        +
        +## My compiler complains that a constructor (or destructor) cannot return a value. What's going on? ##
        +
        +Due to a peculiarity of C++, in order to support the syntax for streaming
        +messages to an `ASSERT_*`, e.g.
        +
        +```
        +ASSERT_EQ(1, Foo()) << "blah blah" << foo;
        +```
        +
        +we had to give up using `ASSERT*` and `FAIL*` (but not `EXPECT*` and
        +`ADD_FAILURE*`) in constructors and destructors. The workaround is to move the
        +content of your constructor/destructor to a private void member function, or
        +switch to `EXPECT_*()` if that works. This section in the user's guide explains
        +it.
        +
        +## My set-up function is not called. Why? ##
        +
        +C++ is case-sensitive. It should be spelled as `SetUp()`.  Did you
        +spell it as `Setup()`?
        +
        +Similarly, sometimes people spell `SetUpTestCase()` as `SetupTestCase()` and
        +wonder why it's never called.
        +
        +## How do I jump to the line of a failure in Emacs directly? ##
        +
        +Google Test's failure message format is understood by Emacs and many other
        +IDEs, like acme and XCode. If a Google Test message is in a compilation buffer
        +in Emacs, then it's clickable. You can now hit `enter` on a message to jump to
        +the corresponding source code, or use `C-x `` to jump to the next failure.
        +
        +## I have several test cases which share the same test fixture logic, do I have to define a new test fixture class for each of them? This seems pretty tedious. ##
        +
        +You don't have to. Instead of
        +
        +```
        +class FooTest : public BaseTest {};
        +
        +TEST_F(FooTest, Abc) { ... }
        +TEST_F(FooTest, Def) { ... }
        +
        +class BarTest : public BaseTest {};
        +
        +TEST_F(BarTest, Abc) { ... }
        +TEST_F(BarTest, Def) { ... }
        +```
        +
        +you can simply `typedef` the test fixtures:
        +```
        +typedef BaseTest FooTest;
        +
        +TEST_F(FooTest, Abc) { ... }
        +TEST_F(FooTest, Def) { ... }
        +
        +typedef BaseTest BarTest;
        +
        +TEST_F(BarTest, Abc) { ... }
        +TEST_F(BarTest, Def) { ... }
        +```
        +
        +## The Google Test output is buried in a whole bunch of log messages. What do I do? ##
        +
        +The Google Test output is meant to be a concise and human-friendly report. If
        +your test generates textual output itself, it will mix with the Google Test
        +output, making it hard to read. However, there is an easy solution to this
        +problem.
        +
        +Since most log messages go to stderr, we decided to let Google Test output go
        +to stdout. This way, you can easily separate the two using redirection. For
        +example:
        +```
        +./my_test > googletest_output.txt
        +```
        +
        +## Why should I prefer test fixtures over global variables? ##
        +
        +There are several good reasons:
        +  1. It's likely your test needs to change the states of its global variables. This makes it difficult to keep side effects from escaping one test and contaminating others, making debugging difficult. By using fixtures, each test has a fresh set of variables that's different (but with the same names). Thus, tests are kept independent of each other.
        +  1. Global variables pollute the global namespace.
        +  1. Test fixtures can be reused via subclassing, which cannot be done easily with global variables. This is useful if many test cases have something in common.
        +
        +## How do I test private class members without writing FRIEND\_TEST()s? ##
        +
        +You should try to write testable code, which means classes should be easily
        +tested from their public interface. One way to achieve this is the Pimpl idiom:
        +you move all private members of a class into a helper class, and make all
        +members of the helper class public.
        +
        +You have several other options that don't require using `FRIEND_TEST`:
        +  * Write the tests as members of the fixture class:
        +```
        +class Foo {
        +  friend class FooTest;
        +  ...
        +};
        +
        +class FooTest : public ::testing::Test {
        + protected:
        +  ...
        +  void Test1() {...} // This accesses private members of class Foo.
        +  void Test2() {...} // So does this one.
        +};
        +
        +TEST_F(FooTest, Test1) {
        +  Test1();
        +}
        +
        +TEST_F(FooTest, Test2) {
        +  Test2();
        +}
        +```
        +  * In the fixture class, write accessors for the tested class' private members, then use the accessors in your tests:
        +```
        +class Foo {
        +  friend class FooTest;
        +  ...
        +};
        +
        +class FooTest : public ::testing::Test {
        + protected:
        +  ...
        +  T1 get_private_member1(Foo* obj) {
        +    return obj->private_member1_;
        +  }
        +};
        +
        +TEST_F(FooTest, Test1) {
        +  ...
        +  get_private_member1(x)
        +  ...
        +}
        +```
        +  * If the methods are declared **protected**, you can change their access level in a test-only subclass:
        +```
        +class YourClass {
        +  ...
        + protected: // protected access for testability.
        +  int DoSomethingReturningInt();
        +  ...
        +};
        +
        +// in the your_class_test.cc file:
        +class TestableYourClass : public YourClass {
        +  ...
        + public: using YourClass::DoSomethingReturningInt; // changes access rights
        +  ...
        +};
        +
        +TEST_F(YourClassTest, DoSomethingTest) {
        +  TestableYourClass obj;
        +  assertEquals(expected_value, obj.DoSomethingReturningInt());
        +}
        +```
        +
        +## How do I test private class static members without writing FRIEND\_TEST()s? ##
        +
        +We find private static methods clutter the header file.  They are
        +implementation details and ideally should be kept out of a .h. So often I make
        +them free functions instead.
        +
        +Instead of:
        +```
        +// foo.h
        +class Foo {
        +  ...
        + private:
        +  static bool Func(int n);
        +};
        +
        +// foo.cc
        +bool Foo::Func(int n) { ... }
        +
        +// foo_test.cc
        +EXPECT_TRUE(Foo::Func(12345));
        +```
        +
        +You probably should better write:
        +```
        +// foo.h
        +class Foo {
        +  ...
        +};
        +
        +// foo.cc
        +namespace internal {
        +  bool Func(int n) { ... }
        +}
        +
        +// foo_test.cc
        +namespace internal {
        +  bool Func(int n);
        +}
        +
        +EXPECT_TRUE(internal::Func(12345));
        +```
        +
        +## I would like to run a test several times with different parameters. Do I need to write several similar copies of it? ##
        +
        +No. You can use a feature called [value-parameterized tests](V1_5_AdvancedGuide#Value_Parameterized_Tests.md) which
        +lets you repeat your tests with different parameters, without defining it more than once.
        +
        +## How do I test a file that defines main()? ##
        +
        +To test a `foo.cc` file, you need to compile and link it into your unit test
        +program. However, when the file contains a definition for the `main()`
        +function, it will clash with the `main()` of your unit test, and will result in
        +a build error.
        +
        +The right solution is to split it into three files:
        +  1. `foo.h` which contains the declarations,
        +  1. `foo.cc` which contains the definitions except `main()`, and
        +  1. `foo_main.cc` which contains nothing but the definition of `main()`.
        +
        +Then `foo.cc` can be easily tested.
        +
        +If you are adding tests to an existing file and don't want an intrusive change
        +like this, there is a hack: just include the entire `foo.cc` file in your unit
        +test. For example:
        +```
        +// File foo_unittest.cc
        +
        +// The headers section
        +...
        +
        +// Renames main() in foo.cc to make room for the unit test main()
        +#define main FooMain
        +
        +#include "a/b/foo.cc"
        +
        +// The tests start here.
        +...
        +```
        +
        +
        +However, please remember this is a hack and should only be used as the last
        +resort.
        +
        +## What can the statement argument in ASSERT\_DEATH() be? ##
        +
        +`ASSERT_DEATH(_statement_, _regex_)` (or any death assertion macro) can be used
        +wherever `_statement_` is valid. So basically `_statement_` can be any C++
        +statement that makes sense in the current context. In particular, it can
        +reference global and/or local variables, and can be:
        +  * a simple function call (often the case),
        +  * a complex expression, or
        +  * a compound statement.
        +
        +> Some examples are shown here:
        +```
        +// A death test can be a simple function call.
        +TEST(MyDeathTest, FunctionCall) {
        +  ASSERT_DEATH(Xyz(5), "Xyz failed");
        +}
        +
        +// Or a complex expression that references variables and functions.
        +TEST(MyDeathTest, ComplexExpression) {
        +  const bool c = Condition();
        +  ASSERT_DEATH((c ? Func1(0) : object2.Method("test")),
        +               "(Func1|Method) failed");
        +}
        +
        +// Death assertions can be used any where in a function. In
        +// particular, they can be inside a loop.
        +TEST(MyDeathTest, InsideLoop) {
        +  // Verifies that Foo(0), Foo(1), ..., and Foo(4) all die.
        +  for (int i = 0; i < 5; i++) {
        +    EXPECT_DEATH_M(Foo(i), "Foo has \\d+ errors",
        +                   ::testing::Message() << "where i is " << i);
        +  }
        +}
        +
        +// A death assertion can contain a compound statement.
        +TEST(MyDeathTest, CompoundStatement) {
        +  // Verifies that at lease one of Bar(0), Bar(1), ..., and
        +  // Bar(4) dies.
        +  ASSERT_DEATH({
        +    for (int i = 0; i < 5; i++) {
        +      Bar(i);
        +    }
        +  },
        +  "Bar has \\d+ errors");}
        +```
        +
        +`googletest_unittest.cc` contains more examples if you are interested.
        +
        +## What syntax does the regular expression in ASSERT\_DEATH use? ##
        +
        +On POSIX systems, Google Test uses the POSIX Extended regular
        +expression syntax
        +(http://en.wikipedia.org/wiki/Regular_expression#POSIX_Extended_Regular_Expressions). On
        +Windows, it uses a limited variant of regular expression syntax. For
        +more details, see the [regular expression syntax](V1_5_AdvancedGuide#Regular_Expression_Syntax.md).
        +
        +## I have a fixture class Foo, but TEST\_F(Foo, Bar) gives me error "no matching function for call to Foo::Foo()". Why? ##
        +
        +Google Test needs to be able to create objects of your test fixture class, so
        +it must have a default constructor. Normally the compiler will define one for
        +you. However, there are cases where you have to define your own:
        +  * If you explicitly declare a non-default constructor for class `Foo`, then you need to define a default constructor, even if it would be empty.
        +  * If `Foo` has a const non-static data member, then you have to define the default constructor _and_ initialize the const member in the initializer list of the constructor. (Early versions of `gcc` doesn't force you to initialize the const member. It's a bug that has been fixed in `gcc 4`.)
        +
        +## Why does ASSERT\_DEATH complain about previous threads that were already joined? ##
        +
        +With the Linux pthread library, there is no turning back once you cross the
        +line from single thread to multiple threads. The first time you create a
        +thread, a manager thread is created in addition, so you get 3, not 2, threads.
        +Later when the thread you create joins the main thread, the thread count
        +decrements by 1, but the manager thread will never be killed, so you still have
        +2 threads, which means you cannot safely run a death test.
        +
        +The new NPTL thread library doesn't suffer from this problem, as it doesn't
        +create a manager thread. However, if you don't control which machine your test
        +runs on, you shouldn't depend on this.
        +
        +## Why does Google Test require the entire test case, instead of individual tests, to be named FOODeathTest when it uses ASSERT\_DEATH? ##
        +
        +Google Test does not interleave tests from different test cases. That is, it
        +runs all tests in one test case first, and then runs all tests in the next test
        +case, and so on. Google Test does this because it needs to set up a test case
        +before the first test in it is run, and tear it down afterwords. Splitting up
        +the test case would require multiple set-up and tear-down processes, which is
        +inefficient and makes the semantics unclean.
        +
        +If we were to determine the order of tests based on test name instead of test
        +case name, then we would have a problem with the following situation:
        +
        +```
        +TEST_F(FooTest, AbcDeathTest) { ... }
        +TEST_F(FooTest, Uvw) { ... }
        +
        +TEST_F(BarTest, DefDeathTest) { ... }
        +TEST_F(BarTest, Xyz) { ... }
        +```
        +
        +Since `FooTest.AbcDeathTest` needs to run before `BarTest.Xyz`, and we don't
        +interleave tests from different test cases, we need to run all tests in the
        +`FooTest` case before running any test in the `BarTest` case. This contradicts
        +with the requirement to run `BarTest.DefDeathTest` before `FooTest.Uvw`.
        +
        +## But I don't like calling my entire test case FOODeathTest when it contains both death tests and non-death tests. What do I do? ##
        +
        +You don't have to, but if you like, you may split up the test case into
        +`FooTest` and `FooDeathTest`, where the names make it clear that they are
        +related:
        +
        +```
        +class FooTest : public ::testing::Test { ... };
        +
        +TEST_F(FooTest, Abc) { ... }
        +TEST_F(FooTest, Def) { ... }
        +
        +typedef FooTest FooDeathTest;
        +
        +TEST_F(FooDeathTest, Uvw) { ... EXPECT_DEATH(...) ... }
        +TEST_F(FooDeathTest, Xyz) { ... ASSERT_DEATH(...) ... }
        +```
        +
        +## The compiler complains about "no match for 'operator<<'" when I use an assertion. What gives? ##
        +
        +If you use a user-defined type `FooType` in an assertion, you must make sure
        +there is an `std::ostream& operator<<(std::ostream&, const FooType&)` function
        +defined such that we can print a value of `FooType`.
        +
        +In addition, if `FooType` is declared in a name space, the `<<` operator also
        +needs to be defined in the _same_ name space.
        +
        +## How do I suppress the memory leak messages on Windows? ##
        +
        +Since the statically initialized Google Test singleton requires allocations on
        +the heap, the Visual C++ memory leak detector will report memory leaks at the
        +end of the program run. The easiest way to avoid this is to use the
        +`_CrtMemCheckpoint` and `_CrtMemDumpAllObjectsSince` calls to not report any
        +statically initialized heap objects. See MSDN for more details and additional
        +heap check/debug routines.
        +
        +## I am building my project with Google Test in Visual Studio and all I'm getting is a bunch of linker errors (or warnings). Help! ##
        +
        +You may get a number of the following linker error or warnings if you
        +attempt to link your test project with the Google Test library when
        +your project and the are not built using the same compiler settings.
        +
        +  * LNK2005: symbol already defined in object
        +  * LNK4217: locally defined symbol 'symbol' imported in function 'function'
        +  * LNK4049: locally defined symbol 'symbol' imported
        +
        +The Google Test project (gtest.vcproj) has the Runtime Library option
        +set to /MT (use multi-threaded static libraries, /MTd for debug). If
        +your project uses something else, for example /MD (use multi-threaded
        +DLLs, /MDd for debug), you need to change the setting in the Google
        +Test project to match your project's.
        +
        +To update this setting open the project properties in the Visual
        +Studio IDE then select the branch Configuration Properties | C/C++ |
        +Code Generation and change the option "Runtime Library".  You may also try
        +using gtest-md.vcproj instead of gtest.vcproj.
        +
        +## I put my tests in a library and Google Test doesn't run them. What's happening? ##
        +Have you read a
        +[warning](V1_5_Primer#Important_note_for_Visual_C++_users.md) on
        +the Google Test Primer page?
        +
        +## I want to use Google Test with Visual Studio but don't know where to start. ##
        +Many people are in your position and one of the posted his solution to
        +our mailing list. Here is his link:
        +http://hassanjamilahmad.blogspot.com/2009/07/gtest-starters-help.html.
        +
        +## My question is not covered in your FAQ! ##
        +
        +If you cannot find the answer to your question in this FAQ, there are
        +some other resources you can use:
        +
        +  1. read other [wiki pages](http://code.google.com/p/googletest/w/list),
        +  1. search the mailing list [archive](http://groups.google.com/group/googletestframework/topics),
        +  1. ask it on [googletestframework@googlegroups.com](mailto:googletestframework@googlegroups.com) and someone will answer it (to prevent spam, we require you to join the [discussion group](http://groups.google.com/group/googletestframework) before you can post.).
        +
        +Please note that creating an issue in the
        +[issue tracker](http://code.google.com/p/googletest/issues/list) is _not_
        +a good way to get your answer, as it is monitored infrequently by a
        +very small number of people.
        +
        +When asking a question, it's helpful to provide as much of the
        +following information as possible (people cannot help you if there's
        +not enough information in your question):
        +
        +  * the version (or the revision number if you check out from SVN directly) of Google Test you use (Google Test is under active development, so it's possible that your problem has been solved in a later version),
        +  * your operating system,
        +  * the name and version of your compiler,
        +  * the complete command line flags you give to your compiler,
        +  * the complete compiler error messages (if the question is about compilation),
        +  * the _actual_ code (ideally, a minimal but complete program) that has the problem you encounter.ïœ
        \ No newline at end of file
        diff --git a/lib/ann/fann/lib/googletest/docs/V1_5_Primer.md b/lib/ann/fann/lib/googletest/docs/V1_5_Primer.md
        new file mode 100644
        index 0000000..5c42e0b
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/docs/V1_5_Primer.md
        @@ -0,0 +1,497 @@
        +
        +
        +# Introduction: Why Google C++ Testing Framework? #
        +
        +_Google C++ Testing Framework_ helps you write better C++ tests.
        +
        +No matter whether you work on Linux, Windows, or a Mac, if you write C++ code,
        +Google Test can help you.
        +
        +So what makes a good test, and how does Google C++ Testing Framework fit in? We believe:
        +  1. Tests should be _independent_ and _repeatable_. It's a pain to debug a test that succeeds or fails as a result of other tests.  Google C++ Testing Framework isolates the tests by running each of them on a different object. When a test fails, Google C++ Testing Framework allows you to run it in isolation for quick debugging.
        +  1. Tests should be well _organized_ and reflect the structure of the tested code.  Google C++ Testing Framework groups related tests into test cases that can share data and subroutines. This common pattern is easy to recognize and makes tests easy to maintain. Such consistency is especially helpful when people switch projects and start to work on a new code base.
        +  1. Tests should be _portable_ and _reusable_. The open-source community has a lot of code that is platform-neutral, its tests should also be platform-neutral.  Google C++ Testing Framework works on different OSes, with different compilers (gcc, MSVC, and others), with or without exceptions, so Google C++ Testing Framework tests can easily work with a variety of configurations.  (Note that the current release only contains build scripts for Linux - we are actively working on scripts for other platforms.)
        +  1. When tests fail, they should provide as much _information_ about the problem as possible. Google C++ Testing Framework doesn't stop at the first test failure. Instead, it only stops the current test and continues with the next. You can also set up tests that report non-fatal failures after which the current test continues. Thus, you can detect and fix multiple bugs in a single run-edit-compile cycle.
        +  1. The testing framework should liberate test writers from housekeeping chores and let them focus on the test _content_.  Google C++ Testing Framework automatically keeps track of all tests defined, and doesn't require the user to enumerate them in order to run them.
        +  1. Tests should be _fast_. With Google C++ Testing Framework, you can reuse shared resources across tests and pay for the set-up/tear-down only once, without making tests depend on each other.
        +
        +Since Google C++ Testing Framework is based on the popular xUnit
        +architecture, you'll feel right at home if you've used JUnit or PyUnit before.
        +If not, it will take you about 10 minutes to learn the basics and get started.
        +So let's go!
        +
        +_Note:_ We sometimes refer to Google C++ Testing Framework informally
        +as _Google Test_.
        +
        +# Setting up a New Test Project #
        +
        +To write a test program using Google Test, you need to compile Google
        +Test into a library and link your test with it.  We provide build
        +files for some popular build systems (`msvc/` for Visual Studio,
        +`xcode/` for Mac Xcode, `make/` for GNU make, `codegear/` for Borland
        +C++ Builder, and the autotools script in the
        +Google Test root directory).  If your build system is not on this
        +list, you can take a look at `make/Makefile` to learn how Google Test
        +should be compiled (basically you want to compile `src/gtest-all.cc`
        +with `GTEST_ROOT` and `GTEST_ROOT/include` in the header search path,
        +where `GTEST_ROOT` is the Google Test root directory).
        +
        +Once you are able to compile the Google Test library, you should
        +create a project or build target for your test program.  Make sure you
        +have `GTEST_ROOT/include` in the header search path so that the
        +compiler can find `<gtest/gtest.h>` when compiling your test.  Set up
        +your test project to link with the Google Test library (for example,
        +in Visual Studio, this is done by adding a dependency on
        +`gtest.vcproj`).
        +
        +If you still have questions, take a look at how Google Test's own
        +tests are built and use them as examples.
        +
        +# Basic Concepts #
        +
        +When using Google Test, you start by writing _assertions_, which are statements
        +that check whether a condition is true. An assertion's result can be _success_,
        +_nonfatal failure_, or _fatal failure_. If a fatal failure occurs, it aborts
        +the current function; otherwise the program continues normally.
        +
        +_Tests_ use assertions to verify the tested code's behavior. If a test crashes
        +or has a failed assertion, then it _fails_; otherwise it _succeeds_.
        +
        +A _test case_ contains one or many tests. You should group your tests into test
        +cases that reflect the structure of the tested code. When multiple tests in a
        +test case need to share common objects and subroutines, you can put them into a
        +_test fixture_ class.
        +
        +A _test program_ can contain multiple test cases.
        +
        +We'll now explain how to write a test program, starting at the individual
        +assertion level and building up to tests and test cases.
        +
        +# Assertions #
        +
        +Google Test assertions are macros that resemble function calls. You test a
        +class or function by making assertions about its behavior. When an assertion
        +fails, Google Test prints the assertion's source file and line number location,
        +along with a failure message. You may also supply a custom failure message
        +which will be appended to Google Test's message.
        +
        +The assertions come in pairs that test the same thing but have different
        +effects on the current function. `ASSERT_*` versions generate fatal failures
        +when they fail, and **abort the current function**. `EXPECT_*` versions generate
        +nonfatal failures, which don't abort the current function. Usually `EXPECT_*`
        +are preferred, as they allow more than one failures to be reported in a test.
        +However, you should use `ASSERT_*` if it doesn't make sense to continue when
        +the assertion in question fails.
        +
        +Since a failed `ASSERT_*` returns from the current function immediately,
        +possibly skipping clean-up code that comes after it, it may cause a space leak.
        +Depending on the nature of the leak, it may or may not be worth fixing - so
        +keep this in mind if you get a heap checker error in addition to assertion
        +errors.
        +
        +To provide a custom failure message, simply stream it into the macro using the
        +`<<` operator, or a sequence of such operators. An example:
        +```
        +ASSERT_EQ(x.size(), y.size()) << "Vectors x and y are of unequal length";
        +
        +for (int i = 0; i < x.size(); ++i) {
        +  EXPECT_EQ(x[i], y[i]) << "Vectors x and y differ at index " << i;
        +}
        +```
        +
        +Anything that can be streamed to an `ostream` can be streamed to an assertion
        +macro--in particular, C strings and `string` objects. If a wide string
        +(`wchar_t*`, `TCHAR*` in `UNICODE` mode on Windows, or `std::wstring`) is
        +streamed to an assertion, it will be translated to UTF-8 when printed.
        +
        +## Basic Assertions ##
        +
        +These assertions do basic true/false condition testing.
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_TRUE(`_condition_`)`;  | `EXPECT_TRUE(`_condition_`)`;   | _condition_ is true |
        +| `ASSERT_FALSE(`_condition_`)`; | `EXPECT_FALSE(`_condition_`)`;  | _condition_ is false |
        +
        +Remember, when they fail, `ASSERT_*` yields a fatal failure and
        +returns from the current function, while `EXPECT_*` yields a nonfatal
        +failure, allowing the function to continue running. In either case, an
        +assertion failure means its containing test fails.
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +## Binary Comparison ##
        +
        +This section describes assertions that compare two values.
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +|`ASSERT_EQ(`_expected_`, `_actual_`);`|`EXPECT_EQ(`_expected_`, `_actual_`);`| _expected_ `==` _actual_ |
        +|`ASSERT_NE(`_val1_`, `_val2_`);`      |`EXPECT_NE(`_val1_`, `_val2_`);`      | _val1_ `!=` _val2_ |
        +|`ASSERT_LT(`_val1_`, `_val2_`);`      |`EXPECT_LT(`_val1_`, `_val2_`);`      | _val1_ `<` _val2_ |
        +|`ASSERT_LE(`_val1_`, `_val2_`);`      |`EXPECT_LE(`_val1_`, `_val2_`);`      | _val1_ `<=` _val2_ |
        +|`ASSERT_GT(`_val1_`, `_val2_`);`      |`EXPECT_GT(`_val1_`, `_val2_`);`      | _val1_ `>` _val2_ |
        +|`ASSERT_GE(`_val1_`, `_val2_`);`      |`EXPECT_GE(`_val1_`, `_val2_`);`      | _val1_ `>=` _val2_ |
        +
        +In the event of a failure, Google Test prints both _val1_ and _val2_
        +. In `ASSERT_EQ*` and `EXPECT_EQ*` (and all other equality assertions
        +we'll introduce later), you should put the expression you want to test
        +in the position of _actual_, and put its expected value in _expected_,
        +as Google Test's failure messages are optimized for this convention.
        +
        +Value arguments must be comparable by the assertion's comparison operator or
        +you'll get a compiler error. Values must also support the `<<` operator for
        +streaming to an `ostream`. All built-in types support this.
        +
        +These assertions can work with a user-defined type, but only if you define the
        +corresponding comparison operator (e.g. `==`, `<`, etc).  If the corresponding
        +operator is defined, prefer using the `ASSERT_*()` macros because they will
        +print out not only the result of the comparison, but the two operands as well.
        +
        +Arguments are always evaluated exactly once. Therefore, it's OK for the
        +arguments to have side effects. However, as with any ordinary C/C++ function,
        +the arguments' evaluation order is undefined (i.e. the compiler is free to
        +choose any order) and your code should not depend on any particular argument
        +evaluation order.
        +
        +`ASSERT_EQ()` does pointer equality on pointers. If used on two C strings, it
        +tests if they are in the same memory location, not if they have the same value.
        +Therefore, if you want to compare C strings (e.g. `const char*`) by value, use
        +`ASSERT_STREQ()` , which will be described later on. In particular, to assert
        +that a C string is `NULL`, use `ASSERT_STREQ(NULL, c_string)` . However, to
        +compare two `string` objects, you should use `ASSERT_EQ`.
        +
        +Macros in this section work with both narrow and wide string objects (`string`
        +and `wstring`).
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +## String Comparison ##
        +
        +The assertions in this group compare two **C strings**. If you want to compare
        +two `string` objects, use `EXPECT_EQ`, `EXPECT_NE`, and etc instead.
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_STREQ(`_expected\_str_`, `_actual\_str_`);`    | `EXPECT_STREQ(`_expected\_str_`, `_actual\_str_`);`     | the two C strings have the same content |
        +| `ASSERT_STRNE(`_str1_`, `_str2_`);`    | `EXPECT_STRNE(`_str1_`, `_str2_`);`     | the two C strings have different content |
        +| `ASSERT_STRCASEEQ(`_expected\_str_`, `_actual\_str_`);`| `EXPECT_STRCASEEQ(`_expected\_str_`, `_actual\_str_`);` | the two C strings have the same content, ignoring case |
        +| `ASSERT_STRCASENE(`_str1_`, `_str2_`);`| `EXPECT_STRCASENE(`_str1_`, `_str2_`);` | the two C strings have different content, ignoring case |
        +
        +Note that "CASE" in an assertion name means that case is ignored.
        +
        +`*STREQ*` and `*STRNE*` also accept wide C strings (`wchar_t*`). If a
        +comparison of two wide strings fails, their values will be printed as UTF-8
        +narrow strings.
        +
        +A `NULL` pointer and an empty string are considered _different_.
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +See also: For more string comparison tricks (substring, prefix, suffix, and
        +regular expression matching, for example), see the [AdvancedGuide Advanced
        +Google Test Guide].
        +
        +# Simple Tests #
        +
        +To create a test:
        +  1. Use the `TEST()` macro to define and name a test function, These are ordinary C++ functions that don't return a value.
        +  1. In this function, along with any valid C++ statements you want to include, use the various Google Test assertions to check values.
        +  1. The test's result is determined by the assertions; if any assertion in the test fails (either fatally or non-fatally), or if the test crashes, the entire test fails. Otherwise, it succeeds.
        +
        +```
        +TEST(test_case_name, test_name) {
        + ... test body ...
        +}
        +```
        +
        +
        +`TEST()` arguments go from general to specific. The _first_ argument is the
        +name of the test case, and the _second_ argument is the test's name within the
        +test case. Remember that a test case can contain any number of individual
        +tests. A test's _full name_ consists of its containing test case and its
        +individual name. Tests from different test cases can have the same individual
        +name.
        +
        +For example, let's take a simple integer function:
        +```
        +int Factorial(int n); // Returns the factorial of n
        +```
        +
        +A test case for this function might look like:
        +```
        +// Tests factorial of 0.
        +TEST(FactorialTest, HandlesZeroInput) {
        +  EXPECT_EQ(1, Factorial(0));
        +}
        +
        +// Tests factorial of positive numbers.
        +TEST(FactorialTest, HandlesPositiveInput) {
        +  EXPECT_EQ(1, Factorial(1));
        +  EXPECT_EQ(2, Factorial(2));
        +  EXPECT_EQ(6, Factorial(3));
        +  EXPECT_EQ(40320, Factorial(8));
        +}
        +```
        +
        +Google Test groups the test results by test cases, so logically-related tests
        +should be in the same test case; in other words, the first argument to their
        +`TEST()` should be the same. In the above example, we have two tests,
        +`HandlesZeroInput` and `HandlesPositiveInput`, that belong to the same test
        +case `FactorialTest`.
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +# Test Fixtures: Using the Same Data Configuration for Multiple Tests #
        +
        +If you find yourself writing two or more tests that operate on similar data,
        +you can use a _test fixture_. It allows you to reuse the same configuration of
        +objects for several different tests.
        +
        +To create a fixture, just:
        +  1. Derive a class from `::testing::Test` . Start its body with `protected:` or `public:` as we'll want to access fixture members from sub-classes.
        +  1. Inside the class, declare any objects you plan to use.
        +  1. If necessary, write a default constructor or `SetUp()` function to prepare the objects for each test. A common mistake is to spell `SetUp()` as `Setup()` with a small `u` - don't let that happen to you.
        +  1. If necessary, write a destructor or `TearDown()` function to release any resources you allocated in `SetUp()` . To learn when you should use the constructor/destructor and when you should use `SetUp()/TearDown()`, read this [FAQ entry](http://code.google.com/p/googletest/wiki/V1_5_FAQ#Should_I_use_the_constructor/destructor_of_the_test_fixture_or_t).
        +  1. If needed, define subroutines for your tests to share.
        +
        +When using a fixture, use `TEST_F()` instead of `TEST()` as it allows you to
        +access objects and subroutines in the test fixture:
        +```
        +TEST_F(test_case_name, test_name) {
        + ... test body ...
        +}
        +```
        +
        +Like `TEST()`, the first argument is the test case name, but for `TEST_F()`
        +this must be the name of the test fixture class. You've probably guessed: `_F`
        +is for fixture.
        +
        +Unfortunately, the C++ macro system does not allow us to create a single macro
        +that can handle both types of tests. Using the wrong macro causes a compiler
        +error.
        +
        +Also, you must first define a test fixture class before using it in a
        +`TEST_F()`, or you'll get the compiler error "`virtual outside class
        +declaration`".
        +
        +For each test defined with `TEST_F()`, Google Test will:
        +  1. Create a _fresh_ test fixture at runtime
        +  1. Immediately initialize it via `SetUp()` ,
        +  1. Run the test
        +  1. Clean up by calling `TearDown()`
        +  1. Delete the test fixture.  Note that different tests in the same test case have different test fixture objects, and Google Test always deletes a test fixture before it creates the next one. Google Test does not reuse the same test fixture for multiple tests. Any changes one test makes to the fixture do not affect other tests.
        +
        +As an example, let's write tests for a FIFO queue class named `Queue`, which
        +has the following interface:
        +```
        +template <typename E> // E is the element type.
        +class Queue {
        + public:
        +  Queue();
        +  void Enqueue(const E& element);
        +  E* Dequeue(); // Returns NULL if the queue is empty.
        +  size_t size() const;
        +  ...
        +};
        +```
        +
        +First, define a fixture class. By convention, you should give it the name
        +`FooTest` where `Foo` is the class being tested.
        +```
        +class QueueTest : public ::testing::Test {
        + protected:
        +  virtual void SetUp() {
        +    q1_.Enqueue(1);
        +    q2_.Enqueue(2);
        +    q2_.Enqueue(3);
        +  }
        +
        +  // virtual void TearDown() {}
        +
        +  Queue<int> q0_;
        +  Queue<int> q1_;
        +  Queue<int> q2_;
        +};
        +```
        +
        +In this case, `TearDown()` is not needed since we don't have to clean up after
        +each test, other than what's already done by the destructor.
        +
        +Now we'll write tests using `TEST_F()` and this fixture.
        +```
        +TEST_F(QueueTest, IsEmptyInitially) {
        +  EXPECT_EQ(0, q0_.size());
        +}
        +
        +TEST_F(QueueTest, DequeueWorks) {
        +  int* n = q0_.Dequeue();
        +  EXPECT_EQ(NULL, n);
        +
        +  n = q1_.Dequeue();
        +  ASSERT_TRUE(n != NULL);
        +  EXPECT_EQ(1, *n);
        +  EXPECT_EQ(0, q1_.size());
        +  delete n;
        +
        +  n = q2_.Dequeue();
        +  ASSERT_TRUE(n != NULL);
        +  EXPECT_EQ(2, *n);
        +  EXPECT_EQ(1, q2_.size());
        +  delete n;
        +}
        +```
        +
        +The above uses both `ASSERT_*` and `EXPECT_*` assertions. The rule of thumb is
        +to use `EXPECT_*` when you want the test to continue to reveal more errors
        +after the assertion failure, and use `ASSERT_*` when continuing after failure
        +doesn't make sense. For example, the second assertion in the `Dequeue` test is
        +`ASSERT_TRUE(n != NULL)`, as we need to dereference the pointer `n` later,
        +which would lead to a segfault when `n` is `NULL`.
        +
        +When these tests run, the following happens:
        +  1. Google Test constructs a `QueueTest` object (let's call it `t1` ).
        +  1. `t1.SetUp()` initializes `t1` .
        +  1. The first test ( `IsEmptyInitially` ) runs on `t1` .
        +  1. `t1.TearDown()` cleans up after the test finishes.
        +  1. `t1` is destructed.
        +  1. The above steps are repeated on another `QueueTest` object, this time running the `DequeueWorks` test.
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +_Note_: Google Test automatically saves all _Google Test_ flags when a test
        +object is constructed, and restores them when it is destructed.
        +
        +# Invoking the Tests #
        +
        +`TEST()` and `TEST_F()` implicitly register their tests with Google Test. So, unlike with many other C++ testing frameworks, you don't have to re-list all your defined tests in order to run them.
        +
        +After defining your tests, you can run them with `RUN_ALL_TESTS()` , which returns `0` if all the tests are successful, or `1` otherwise. Note that `RUN_ALL_TESTS()` runs _all tests_ in your link unit -- they can be from different test cases, or even different source files.
        +
        +When invoked, the `RUN_ALL_TESTS()` macro:
        +  1. Saves the state of all  Google Test flags.
        +  1. Creates a test fixture object for the first test.
        +  1. Initializes it via `SetUp()`.
        +  1. Runs the test on the fixture object.
        +  1. Cleans up the fixture via `TearDown()`.
        +  1. Deletes the fixture.
        +  1. Restores the state of all Google Test flags.
        +  1. Repeats the above steps for the next test, until all tests have run.
        +
        +In addition, if the text fixture's constructor generates a fatal failure in
        +step 2, there is no point for step 3 - 5 and they are thus skipped. Similarly,
        +if step 3 generates a fatal failure, step 4 will be skipped.
        +
        +_Important_: You must not ignore the return value of `RUN_ALL_TESTS()`, or `gcc`
        +will give you a compiler error. The rationale for this design is that the
        +automated testing service determines whether a test has passed based on its
        +exit code, not on its stdout/stderr output; thus your `main()` function must
        +return the value of `RUN_ALL_TESTS()`.
        +
        +Also, you should call `RUN_ALL_TESTS()` only **once**. Calling it more than once
        +conflicts with some advanced Google Test features (e.g. thread-safe death
        +tests) and thus is not supported.
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +# Writing the main() Function #
        +
        +You can start from this boilerplate:
        +```
        +#include "this/package/foo.h"
        +#include <gtest/gtest.h>
        +
        +namespace {
        +
        +// The fixture for testing class Foo.
        +class FooTest : public ::testing::Test {
        + protected:
        +  // You can remove any or all of the following functions if its body
        +  // is empty.
        +
        +  FooTest() {
        +    // You can do set-up work for each test here.
        +  }
        +
        +  virtual ~FooTest() {
        +    // You can do clean-up work that doesn't throw exceptions here.
        +  }
        +
        +  // If the constructor and destructor are not enough for setting up
        +  // and cleaning up each test, you can define the following methods:
        +
        +  virtual void SetUp() {
        +    // Code here will be called immediately after the constructor (right
        +    // before each test).
        +  }
        +
        +  virtual void TearDown() {
        +    // Code here will be called immediately after each test (right
        +    // before the destructor).
        +  }
        +
        +  // Objects declared here can be used by all tests in the test case for Foo.
        +};
        +
        +// Tests that the Foo::Bar() method does Abc.
        +TEST_F(FooTest, MethodBarDoesAbc) {
        +  const string input_filepath = "this/package/testdata/myinputfile.dat";
        +  const string output_filepath = "this/package/testdata/myoutputfile.dat";
        +  Foo f;
        +  EXPECT_EQ(0, f.Bar(input_filepath, output_filepath));
        +}
        +
        +// Tests that Foo does Xyz.
        +TEST_F(FooTest, DoesXyz) {
        +  // Exercises the Xyz feature of Foo.
        +}
        +
        +}  // namespace
        +
        +int main(int argc, char **argv) {
        +  ::testing::InitGoogleTest(&argc, argv);
        +  return RUN_ALL_TESTS();
        +}
        +```
        +
        +The `::testing::InitGoogleTest()` function parses the command line for Google
        +Test flags, and removes all recognized flags. This allows the user to control a
        +test program's behavior via various flags, which we'll cover in [AdvancedGuide](V1_5_AdvancedGuide.md).
        +You must call this function before calling `RUN_ALL_TESTS()`, or the flags
        +won't be properly initialized.
        +
        +On Windows, `InitGoogleTest()` also works with wide strings, so it can be used
        +in programs compiled in `UNICODE` mode as well.
        +
        +But maybe you think that writing all those main() functions is too much work? We agree with you completely and that's why Google Test provides a basic implementation of main(). If it fits your needs, then just link your test with gtest\_main library and you are good to go.
        +
        +## Important note for Visual C++ users ##
        +If you put your tests into a library and your `main()` function is in a different library or in your .exe file, those tests will not run. The reason is a [bug](https://connect.microsoft.com/feedback/viewfeedback.aspx?FeedbackID=244410&siteid=210) in Visual C++. When you define your tests, Google Test creates certain static objects to register them. These objects are not referenced from elsewhere but their constructors are still supposed to run. When Visual C++ linker sees that nothing in the library is referenced from other places it throws the library out. You have to reference your library with tests from your main program to keep the linker from discarding it. Here is how to do it. Somewhere in your library code declare a function:
        +```
        +__declspec(dllexport) int PullInMyLibrary() { return 0; }
        +```
        +If you put your tests in a static library (not DLL) then `__declspec(dllexport)` is not required. Now, in your main program, write a code that invokes that function:
        +```
        +int PullInMyLibrary();
        +static int dummy = PullInMyLibrary();
        +```
        +This will keep your tests referenced and will make them register themselves at startup.
        +
        +In addition, if you define your tests in a static library, add `/OPT:NOREF` to your main program linker options. If you use MSVC++ IDE, go to your .exe project properties/Configuration Properties/Linker/Optimization and set References setting to `Keep Unreferenced Data (/OPT:NOREF)`. This will keep Visual C++ linker from discarding individual symbols generated by your tests from the final executable.
        +
        +There is one more pitfall, though. If you use Google Test as a static library (that's how it is defined in gtest.vcproj) your tests must also reside in a static library. If you have to have them in a DLL, you _must_ change Google Test to build into a DLL as well. Otherwise your tests will not run correctly or will not run at all. The general conclusion here is: make your life easier - do not write your tests in libraries!
        +
        +# Where to Go from Here #
        +
        +Congratulations! You've learned the Google Test basics. You can start writing
        +and running Google Test tests, read some [samples](Samples.md), or continue with
        +[AdvancedGuide](V1_5_AdvancedGuide.md), which describes many more useful Google Test features.
        +
        +# Known Limitations #
        +
        +Google Test is designed to be thread-safe.  The implementation is
        +thread-safe on systems where the `pthreads` library is available.  It
        +is currently _unsafe_ to use Google Test assertions from two threads
        +concurrently on other systems (e.g. Windows).  In most tests this is
        +not an issue as usually the assertions are done in the main thread. If
        +you want to help, you can volunteer to implement the necessary
        +synchronization primitives in `gtest-port.h` for your platform.
        \ No newline at end of file
        diff --git a/lib/ann/fann/lib/googletest/docs/V1_5_PumpManual.md b/lib/ann/fann/lib/googletest/docs/V1_5_PumpManual.md
        new file mode 100644
        index 0000000..1571078
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/docs/V1_5_PumpManual.md
        @@ -0,0 +1,177 @@
        +
        +
        +<b>P</b>ump is <b>U</b>seful for <b>M</b>eta <b>P</b>rogramming.
        +
        +# The Problem #
        +
        +Template and macro libraries often need to define many classes,
        +functions, or macros that vary only (or almost only) in the number of
        +arguments they take. It's a lot of repetitive, mechanical, and
        +error-prone work.
        +
        +Variadic templates and variadic macros can alleviate the problem.
        +However, while both are being considered by the C++ committee, neither
        +is in the standard yet or widely supported by compilers.  Thus they
        +are often not a good choice, especially when your code needs to be
        +portable. And their capabilities are still limited.
        +
        +As a result, authors of such libraries often have to write scripts to
        +generate their implementation. However, our experience is that it's
        +tedious to write such scripts, which tend to reflect the structure of
        +the generated code poorly and are often hard to read and edit. For
        +example, a small change needed in the generated code may require some
        +non-intuitive, non-trivial changes in the script. This is especially
        +painful when experimenting with the code.
        +
        +# Our Solution #
        +
        +Pump (for Pump is Useful for Meta Programming, Pretty Useful for Meta
        +Programming, or Practical Utility for Meta Programming, whichever you
        +prefer) is a simple meta-programming tool for C++. The idea is that a
        +programmer writes a `foo.pump` file which contains C++ code plus meta
        +code that manipulates the C++ code. The meta code can handle
        +iterations over a range, nested iterations, local meta variable
        +definitions, simple arithmetic, and conditional expressions. You can
        +view it as a small Domain-Specific Language. The meta language is
        +designed to be non-intrusive (s.t. it won't confuse Emacs' C++ mode,
        +for example) and concise, making Pump code intuitive and easy to
        +maintain.
        +
        +## Highlights ##
        +
        +  * The implementation is in a single Python script and thus ultra portable: no build or installation is needed and it works cross platforms.
        +  * Pump tries to be smart with respect to [Google's style guide](http://code.google.com/p/google-styleguide/): it breaks long lines (easy to have when they are generated) at acceptable places to fit within 80 columns and indent the continuation lines correctly.
        +  * The format is human-readable and more concise than XML.
        +  * The format works relatively well with Emacs' C++ mode.
        +
        +## Examples ##
        +
        +The following Pump code (where meta keywords start with `$`, `[[` and `]]` are meta brackets, and `$$` starts a meta comment that ends with the line):
        +
        +```
        +$var n = 3     $$ Defines a meta variable n.
        +$range i 0..n  $$ Declares the range of meta iterator i (inclusive).
        +$for i [[
        +               $$ Meta loop.
        +// Foo$i does blah for $i-ary predicates.
        +$range j 1..i
        +template <size_t N $for j [[, typename A$j]]>
        +class Foo$i {
        +$if i == 0 [[
        +  blah a;
        +]] $elif i <= 2 [[
        +  blah b;
        +]] $else [[
        +  blah c;
        +]]
        +};
        +
        +]]
        +```
        +
        +will be translated by the Pump compiler to:
        +
        +```
        +// Foo0 does blah for 0-ary predicates.
        +template <size_t N>
        +class Foo0 {
        +  blah a;
        +};
        +
        +// Foo1 does blah for 1-ary predicates.
        +template <size_t N, typename A1>
        +class Foo1 {
        +  blah b;
        +};
        +
        +// Foo2 does blah for 2-ary predicates.
        +template <size_t N, typename A1, typename A2>
        +class Foo2 {
        +  blah b;
        +};
        +
        +// Foo3 does blah for 3-ary predicates.
        +template <size_t N, typename A1, typename A2, typename A3>
        +class Foo3 {
        +  blah c;
        +};
        +```
        +
        +In another example,
        +
        +```
        +$range i 1..n
        +Func($for i + [[a$i]]);
        +$$ The text between i and [[ is the separator between iterations.
        +```
        +
        +will generate one of the following lines (without the comments), depending on the value of `n`:
        +
        +```
        +Func();              // If n is 0.
        +Func(a1);            // If n is 1.
        +Func(a1 + a2);       // If n is 2.
        +Func(a1 + a2 + a3);  // If n is 3.
        +// And so on...
        +```
        +
        +## Constructs ##
        +
        +We support the following meta programming constructs:
        +
        +| `$var id = exp` | Defines a named constant value. `$id` is valid util the end of the current meta lexical block. |
        +|:----------------|:-----------------------------------------------------------------------------------------------|
        +| $range id exp..exp | Sets the range of an iteration variable, which can be reused in multiple loops later.          |
        +| $for id sep [[code ](.md)] | Iteration. The range of `id` must have been defined earlier. `$id` is valid in `code`.         |
        +| `$($)`          | Generates a single `$` character.                                                              |
        +| `$id`           | Value of the named constant or iteration variable.                                             |
        +| `$(exp)`        | Value of the expression.                                                                       |
        +| `$if exp [[ code ]] else_branch` | Conditional.                                                                                   |
        +| `[[ code ]]`    | Meta lexical block.                                                                            |
        +| `cpp_code`      | Raw C++ code.                                                                                  |
        +| `$$ comment`    | Meta comment.                                                                                  |
        +
        +**Note:** To give the user some freedom in formatting the Pump source
        +code, Pump ignores a new-line character if it's right after `$for foo`
        +or next to `[[` or `]]`. Without this rule you'll often be forced to write
        +very long lines to get the desired output. Therefore sometimes you may
        +need to insert an extra new-line in such places for a new-line to show
        +up in your output.
        +
        +## Grammar ##
        +
        +```
        +code ::= atomic_code*
        +atomic_code ::= $var id = exp
        +    | $var id = [[ code ]]
        +    | $range id exp..exp
        +    | $for id sep [[ code ]]
        +    | $($)
        +    | $id
        +    | $(exp)
        +    | $if exp [[ code ]] else_branch
        +    | [[ code ]]
        +    | cpp_code
        +sep ::= cpp_code | empty_string
        +else_branch ::= $else [[ code ]]
        +    | $elif exp [[ code ]] else_branch
        +    | empty_string
        +exp ::= simple_expression_in_Python_syntax
        +```
        +
        +## Code ##
        +
        +You can find the source code of Pump in [scripts/pump.py](http://code.google.com/p/googletest/source/browse/trunk/scripts/pump.py). It is still
        +very unpolished and lacks automated tests, although it has been
        +successfully used many times. If you find a chance to use it in your
        +project, please let us know what you think!  We also welcome help on
        +improving Pump.
        +
        +## Real Examples ##
        +
        +You can find real-world applications of Pump in [Google Test](http://www.google.com/codesearch?q=file%3A\.pump%24+package%3Ahttp%3A%2F%2Fgoogletest\.googlecode\.com) and [Google Mock](http://www.google.com/codesearch?q=file%3A\.pump%24+package%3Ahttp%3A%2F%2Fgooglemock\.googlecode\.com).  The source file `foo.h.pump` generates `foo.h`.
        +
        +## Tips ##
        +
        +  * If a meta variable is followed by a letter or digit, you can separate them using `[[]]`, which inserts an empty string. For example `Foo$j[[]]Helper` generate `Foo1Helper` when `j` is 1.
        +  * To avoid extra-long Pump source lines, you can break a line anywhere you want by inserting `[[]]` followed by a new line. Since any new-line character next to `[[` or `]]` is ignored, the generated code won't contain this new line.
        \ No newline at end of file
        diff --git a/lib/ann/fann/lib/googletest/docs/V1_5_XcodeGuide.md b/lib/ann/fann/lib/googletest/docs/V1_5_XcodeGuide.md
        new file mode 100644
        index 0000000..bf24bf5
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/docs/V1_5_XcodeGuide.md
        @@ -0,0 +1,93 @@
        +
        +
        +This guide will explain how to use the Google Testing Framework in your Xcode projects on Mac OS X. This tutorial begins by quickly explaining what to do for experienced users. After the quick start, the guide goes provides additional explanation about each step.
        +
        +# Quick Start #
        +
        +Here is the quick guide for using Google Test in your Xcode project.
        +
        +  1. Download the source from the [website](http://code.google.com/p/googletest) using this command: `svn checkout http://googletest.googlecode.com/svn/trunk/ googletest-read-only`
        +  1. Open up the `gtest.xcodeproj` in the `googletest-read-only/xcode/` directory and build the gtest.framework.
        +  1. Create a new "Shell Tool" target in your Xcode project called something like "UnitTests"
        +  1. Add the gtest.framework to your project and add it to the "Link Binary with Libraries" build phase of "UnitTests"
        +  1. Add your unit test source code to the "Compile Sources" build phase of "UnitTests"
        +  1. Edit the "UnitTests" executable and add an environment variable named "DYLD\_FRAMEWORK\_PATH" with a value equal to the path to the framework containing the gtest.framework relative to the compiled executable.
        +  1. Build and Go
        +
        +The following sections further explain each of the steps listed above in depth, describing in more detail how to complete it including some variations.
        +
        +# Get the Source #
        +
        +Currently, the gtest.framework discussed here isn't available in a tagged release of Google Test, it is only available in the trunk. As explained at the Google Test [site](http://code.google.com/p/googletest/source/checkout">svn), you can get the code from anonymous SVN with this command:
        +
        +```
        +svn checkout http://googletest.googlecode.com/svn/trunk/ googletest-read-only
        +```
        +
        +Alternatively, if you are working with Subversion in your own code base, you can add Google Test as an external dependency to your own Subversion repository. By following this approach, everyone that checks out your svn repository will also receive a copy of Google Test (a specific version, if you wish) without having to check it out explicitly. This makes the set up of your project simpler and reduces the copied code in the repository.
        +
        +To use `svn:externals`, decide where you would like to have the external source reside. You might choose to put the external source inside the trunk, because you want it to be part of the branch when you make a release. However, keeping it outside the trunk in a version-tagged directory called something like `third-party/googletest/1.0.1`, is another option. Once the location is established, use `svn propedit svn:externals _directory_` to set the svn:externals property on a directory in your repository. This directory won't contain the code, but be its versioned parent directory.
        +
        +The command `svn propedit` will bring up your Subversion editor, making editing the long, (potentially multi-line) property simpler. This same method can be used to check out a tagged branch, by using the appropriate URL (e.g. `http://googletest.googlecode.com/svn/tags/release-1.0.1`). Additionally, the svn:externals property allows the specification of a particular revision of the trunk with the `-r_##_` option (e.g. `externals/src/googletest -r60 http://googletest.googlecode.com/svn/trunk`).
        +
        +Here is an example of using the svn:externals properties on a trunk (read via `svn propget`) of a project. This value checks out a copy of Google Test into the `trunk/externals/src/googletest/` directory.
        +
        +```
        +[Computer:svn] user$ svn propget svn:externals trunk
        +externals/src/googletest http://googletest.googlecode.com/svn/trunk
        +```
        +
        +# Add the Framework to Your Project #
        +
        +The next step is to build and add the gtest.framework to your own project. This guide describes two common ways below.
        +
        +  * **Option 1** --- The simplest way to add Google Test to your own project, is to open gtest.xcodeproj (found in the xcode/ directory of the Google Test trunk) and build the framework manually. Then, add the built framework into your project using the "Add->Existing Framework..." from the context menu or "Project->Add..." from the main menu. The gtest.framework is relocatable and contains the headers and object code that you'll need to make tests. This method requires rebuilding every time you upgrade Google Test in your project.
        +  * **Option 2** --- If you are going to be living off the trunk of Google Test, incorporating its latest features into your unit tests (or are a Google Test developer yourself). You'll want to rebuild the framework every time the source updates. to do this, you'll need to add the gtest.xcodeproj file, not the framework itself, to your own Xcode project. Then, from the build products that are revealed by the project's disclosure triangle, you can find the gtest.framework, which can be added to your targets (discussed below).
        +
        +# Make a Test Target #
        +
        +To start writing tests, make a new "Shell Tool" target. This target template is available under BSD, Cocoa, or Carbon. Add your unit test source code to the "Compile Sources" build phase of the target.
        +
        +Next, you'll want to add gtest.framework in two different ways, depending upon which option you chose above.
        +
        +  * **Option 1** --- During compilation, Xcode will need to know that you are linking against the gtest.framework. Add the gtest.framework to the "Link Binary with Libraries" build phase of your test target. This will include the Google Test headers in your header search path, and will tell the linker where to find the library.
        +  * **Option 2** --- If your working out of the trunk, you'll also want to add gtest.framework to your "Link Binary with Libraries" build phase of your test target. In addition, you'll  want to add the gtest.framework as a dependency to your unit test target. This way, Xcode will make sure that gtest.framework is up to date, every time your build your target. Finally, if you don't share build directories with Google Test, you'll have to copy the gtest.framework into your own build products directory using a "Run Script" build phase.
        +
        +# Set Up the Executable Run Environment #
        +
        +Since the unit test executable is a shell tool, it doesn't have a bundle with a `Contents/Frameworks` directory, in which to place gtest.framework. Instead, the dynamic linker must be told at runtime to search for the framework in another location. This can be accomplished by setting the "DYLD\_FRAMEWORK\_PATH" environment variable in the "Edit Active Executable ..." Arguments tab, under "Variables to be set in the environment:". The path for this value is the path (relative or absolute) of the directory containing the gtest.framework.
        +
        +If you haven't set up the DYLD\_FRAMEWORK\_PATH, correctly, you might get a message like this:
        +
        +```
        +[Session started at 2008-08-15 06:23:57 -0600.]
        +  dyld: Library not loaded: @loader_path/../Frameworks/gtest.framework/Versions/A/gtest
        +    Referenced from: /Users/username/Documents/Sandbox/gtestSample/build/Debug/WidgetFrameworkTest
        +    Reason: image not found
        +```
        +
        +To correct this problem, got to the directory containing the executable named in "Referenced from:" value in the error message above. Then, with the terminal in this location, find the relative path to the directory containing the gtest.framework. That is the value you'll need to set as the DYLD\_FRAMEWORK\_PATH.
        +
        +# Build and Go #
        +
        +Now, when you click "Build and Go", the test will be executed. Dumping out something like this:
        +
        +```
        +[Session started at 2008-08-06 06:36:13 -0600.]
        +[==========] Running 2 tests from 1 test case.
        +[----------] Global test environment set-up.
        +[----------] 2 tests from WidgetInitializerTest
        +[ RUN      ] WidgetInitializerTest.TestConstructor
        +[       OK ] WidgetInitializerTest.TestConstructor
        +[ RUN      ] WidgetInitializerTest.TestConversion
        +[       OK ] WidgetInitializerTest.TestConversion
        +[----------] Global test environment tear-down
        +[==========] 2 tests from 1 test case ran.
        +[  PASSED  ] 2 tests.
        +
        +The Debugger has exited with status 0.  
        +```
        +
        +# Summary #
        +
        +Unit testing is a valuable way to ensure your data model stays valid even during rapid development or refactoring. The Google Testing Framework is a great unit testing framework for C and C++ which integrates well with an Xcode development environment.
        \ No newline at end of file
        diff --git a/lib/ann/fann/lib/googletest/docs/V1_6_AdvancedGuide.md b/lib/ann/fann/lib/googletest/docs/V1_6_AdvancedGuide.md
        new file mode 100644
        index 0000000..44e0d6f
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/docs/V1_6_AdvancedGuide.md
        @@ -0,0 +1,2178 @@
        +
        +
        +Now that you have read [Primer](V1_6_Primer.md) and learned how to write tests
        +using Google Test, it's time to learn some new tricks. This document
        +will show you more assertions as well as how to construct complex
        +failure messages, propagate fatal failures, reuse and speed up your
        +test fixtures, and use various flags with your tests.
        +
        +# More Assertions #
        +
        +This section covers some less frequently used, but still significant,
        +assertions.
        +
        +## Explicit Success and Failure ##
        +
        +These three assertions do not actually test a value or expression. Instead,
        +they generate a success or failure directly. Like the macros that actually
        +perform a test, you may stream a custom failure message into the them.
        +
        +| `SUCCEED();` |
        +|:-------------|
        +
        +Generates a success. This does NOT make the overall test succeed. A test is
        +considered successful only if none of its assertions fail during its execution.
        +
        +Note: `SUCCEED()` is purely documentary and currently doesn't generate any
        +user-visible output. However, we may add `SUCCEED()` messages to Google Test's
        +output in the future.
        +
        +| `FAIL();`  | `ADD_FAILURE();` | `ADD_FAILURE_AT("`_file\_path_`", `_line\_number_`);` |
        +|:-----------|:-----------------|:------------------------------------------------------|
        +
        +`FAIL()` generates a fatal failure, while `ADD_FAILURE()` and `ADD_FAILURE_AT()` generate a nonfatal
        +failure. These are useful when control flow, rather than a Boolean expression,
        +deteremines the test's success or failure. For example, you might want to write
        +something like:
        +
        +```
        +switch(expression) {
        +  case 1: ... some checks ...
        +  case 2: ... some other checks
        +  ...
        +  default: FAIL() << "We shouldn't get here.";
        +}
        +```
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +## Exception Assertions ##
        +
        +These are for verifying that a piece of code throws (or does not
        +throw) an exception of the given type:
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_THROW(`_statement_, _exception\_type_`);`  | `EXPECT_THROW(`_statement_, _exception\_type_`);`  | _statement_ throws an exception of the given type  |
        +| `ASSERT_ANY_THROW(`_statement_`);`                | `EXPECT_ANY_THROW(`_statement_`);`                | _statement_ throws an exception of any type        |
        +| `ASSERT_NO_THROW(`_statement_`);`                 | `EXPECT_NO_THROW(`_statement_`);`                 | _statement_ doesn't throw any exception            |
        +
        +Examples:
        +
        +```
        +ASSERT_THROW(Foo(5), bar_exception);
        +
        +EXPECT_NO_THROW({
        +  int n = 5;
        +  Bar(&n);
        +});
        +```
        +
        +_Availability_: Linux, Windows, Mac; since version 1.1.0.
        +
        +## Predicate Assertions for Better Error Messages ##
        +
        +Even though Google Test has a rich set of assertions, they can never be
        +complete, as it's impossible (nor a good idea) to anticipate all the scenarios
        +a user might run into. Therefore, sometimes a user has to use `EXPECT_TRUE()`
        +to check a complex expression, for lack of a better macro. This has the problem
        +of not showing you the values of the parts of the expression, making it hard to
        +understand what went wrong. As a workaround, some users choose to construct the
        +failure message by themselves, streaming it into `EXPECT_TRUE()`. However, this
        +is awkward especially when the expression has side-effects or is expensive to
        +evaluate.
        +
        +Google Test gives you three different options to solve this problem:
        +
        +### Using an Existing Boolean Function ###
        +
        +If you already have a function or a functor that returns `bool` (or a type
        +that can be implicitly converted to `bool`), you can use it in a _predicate
        +assertion_ to get the function arguments printed for free:
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_PRED1(`_pred1, val1_`);`       | `EXPECT_PRED1(`_pred1, val1_`);` | _pred1(val1)_ returns true |
        +| `ASSERT_PRED2(`_pred2, val1, val2_`);` | `EXPECT_PRED2(`_pred2, val1, val2_`);` |  _pred2(val1, val2)_ returns true |
        +|  ...                | ...                    | ...          |
        +
        +In the above, _predn_ is an _n_-ary predicate function or functor, where
        +_val1_, _val2_, ..., and _valn_ are its arguments. The assertion succeeds
        +if the predicate returns `true` when applied to the given arguments, and fails
        +otherwise. When the assertion fails, it prints the value of each argument. In
        +either case, the arguments are evaluated exactly once.
        +
        +Here's an example. Given
        +
        +```
        +// Returns true iff m and n have no common divisors except 1.
        +bool MutuallyPrime(int m, int n) { ... }
        +const int a = 3;
        +const int b = 4;
        +const int c = 10;
        +```
        +
        +the assertion `EXPECT_PRED2(MutuallyPrime, a, b);` will succeed, while the
        +assertion `EXPECT_PRED2(MutuallyPrime, b, c);` will fail with the message
        +
        +<pre>
        +!MutuallyPrime(b, c) is false, where<br>
        +b is 4<br>
        +c is 10<br>
        +</pre>
        +
        +**Notes:**
        +
        +  1. If you see a compiler error "no matching function to call" when using `ASSERT_PRED*` or `EXPECT_PRED*`, please see [this](http://code.google.com/p/googletest/wiki/V1_6_FAQ#The_compiler_complains_%22no_matching_function_to_call%22) for how to resolve it.
        +  1. Currently we only provide predicate assertions of arity <= 5. If you need a higher-arity assertion, let us know.
        +
        +_Availability_: Linux, Windows, Mac
        +
        +### Using a Function That Returns an AssertionResult ###
        +
        +While `EXPECT_PRED*()` and friends are handy for a quick job, the
        +syntax is not satisfactory: you have to use different macros for
        +different arities, and it feels more like Lisp than C++.  The
        +`::testing::AssertionResult` class solves this problem.
        +
        +An `AssertionResult` object represents the result of an assertion
        +(whether it's a success or a failure, and an associated message).  You
        +can create an `AssertionResult` using one of these factory
        +functions:
        +
        +```
        +namespace testing {
        +
        +// Returns an AssertionResult object to indicate that an assertion has
        +// succeeded.
        +AssertionResult AssertionSuccess();
        +
        +// Returns an AssertionResult object to indicate that an assertion has
        +// failed.
        +AssertionResult AssertionFailure();
        +
        +}
        +```
        +
        +You can then use the `<<` operator to stream messages to the
        +`AssertionResult` object.
        +
        +To provide more readable messages in Boolean assertions
        +(e.g. `EXPECT_TRUE()`), write a predicate function that returns
        +`AssertionResult` instead of `bool`. For example, if you define
        +`IsEven()` as:
        +
        +```
        +::testing::AssertionResult IsEven(int n) {
        +  if ((n % 2) == 0)
        +    return ::testing::AssertionSuccess();
        +  else
        +    return ::testing::AssertionFailure() << n << " is odd";
        +}
        +```
        +
        +instead of:
        +
        +```
        +bool IsEven(int n) {
        +  return (n % 2) == 0;
        +}
        +```
        +
        +the failed assertion `EXPECT_TRUE(IsEven(Fib(4)))` will print:
        +
        +<pre>
        +Value of: !IsEven(Fib(4))<br>
        +Actual: false (*3 is odd*)<br>
        +Expected: true<br>
        +</pre>
        +
        +instead of a more opaque
        +
        +<pre>
        +Value of: !IsEven(Fib(4))<br>
        +Actual: false<br>
        +Expected: true<br>
        +</pre>
        +
        +If you want informative messages in `EXPECT_FALSE` and `ASSERT_FALSE`
        +as well, and are fine with making the predicate slower in the success
        +case, you can supply a success message:
        +
        +```
        +::testing::AssertionResult IsEven(int n) {
        +  if ((n % 2) == 0)
        +    return ::testing::AssertionSuccess() << n << " is even";
        +  else
        +    return ::testing::AssertionFailure() << n << " is odd";
        +}
        +```
        +
        +Then the statement `EXPECT_FALSE(IsEven(Fib(6)))` will print
        +
        +<pre>
        +Value of: !IsEven(Fib(6))<br>
        +Actual: true (8 is even)<br>
        +Expected: false<br>
        +</pre>
        +
        +_Availability_: Linux, Windows, Mac; since version 1.4.1.
        +
        +### Using a Predicate-Formatter ###
        +
        +If you find the default message generated by `(ASSERT|EXPECT)_PRED*` and
        +`(ASSERT|EXPECT)_(TRUE|FALSE)` unsatisfactory, or some arguments to your
        +predicate do not support streaming to `ostream`, you can instead use the
        +following _predicate-formatter assertions_ to _fully_ customize how the
        +message is formatted:
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_PRED_FORMAT1(`_pred\_format1, val1_`);`        | `EXPECT_PRED_FORMAT1(`_pred\_format1, val1_`); | _pred\_format1(val1)_ is successful |
        +| `ASSERT_PRED_FORMAT2(`_pred\_format2, val1, val2_`);` | `EXPECT_PRED_FORMAT2(`_pred\_format2, val1, val2_`);` | _pred\_format2(val1, val2)_ is successful |
        +| `...`               | `...`                  | `...`        |
        +
        +The difference between this and the previous two groups of macros is that instead of
        +a predicate, `(ASSERT|EXPECT)_PRED_FORMAT*` take a _predicate-formatter_
        +(_pred\_formatn_), which is a function or functor with the signature:
        +
        +`::testing::AssertionResult PredicateFormattern(const char* `_expr1_`, const char* `_expr2_`, ... const char* `_exprn_`, T1 `_val1_`, T2 `_val2_`, ... Tn `_valn_`);`
        +
        +where _val1_, _val2_, ..., and _valn_ are the values of the predicate
        +arguments, and _expr1_, _expr2_, ..., and _exprn_ are the corresponding
        +expressions as they appear in the source code. The types `T1`, `T2`, ..., and
        +`Tn` can be either value types or reference types. For example, if an
        +argument has type `Foo`, you can declare it as either `Foo` or `const Foo&`,
        +whichever is appropriate.
        +
        +A predicate-formatter returns a `::testing::AssertionResult` object to indicate
        +whether the assertion has succeeded or not. The only way to create such an
        +object is to call one of these factory functions:
        +
        +As an example, let's improve the failure message in the previous example, which uses `EXPECT_PRED2()`:
        +
        +```
        +// Returns the smallest prime common divisor of m and n,
        +// or 1 when m and n are mutually prime.
        +int SmallestPrimeCommonDivisor(int m, int n) { ... }
        +
        +// A predicate-formatter for asserting that two integers are mutually prime.
        +::testing::AssertionResult AssertMutuallyPrime(const char* m_expr,
        +                                               const char* n_expr,
        +                                               int m,
        +                                               int n) {
        +  if (MutuallyPrime(m, n))
        +    return ::testing::AssertionSuccess();
        + 
        +  return ::testing::AssertionFailure()
        +      << m_expr << " and " << n_expr << " (" << m << " and " << n
        +      << ") are not mutually prime, " << "as they have a common divisor "
        +      << SmallestPrimeCommonDivisor(m, n);
        +}
        +```
        +
        +With this predicate-formatter, we can use
        +
        +```
        +EXPECT_PRED_FORMAT2(AssertMutuallyPrime, b, c);
        +```
        +
        +to generate the message
        +
        +<pre>
        +b and c (4 and 10) are not mutually prime, as they have a common divisor 2.<br>
        +</pre>
        +
        +As you may have realized, many of the assertions we introduced earlier are
        +special cases of `(EXPECT|ASSERT)_PRED_FORMAT*`. In fact, most of them are
        +indeed defined using `(EXPECT|ASSERT)_PRED_FORMAT*`.
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +
        +## Floating-Point Comparison ##
        +
        +Comparing floating-point numbers is tricky. Due to round-off errors, it is
        +very unlikely that two floating-points will match exactly. Therefore,
        +`ASSERT_EQ` 's naive comparison usually doesn't work. And since floating-points
        +can have a wide value range, no single fixed error bound works. It's better to
        +compare by a fixed relative error bound, except for values close to 0 due to
        +the loss of precision there.
        +
        +In general, for floating-point comparison to make sense, the user needs to
        +carefully choose the error bound. If they don't want or care to, comparing in
        +terms of Units in the Last Place (ULPs) is a good default, and Google Test
        +provides assertions to do this. Full details about ULPs are quite long; if you
        +want to learn more, see
        +[this article on float comparison](http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm).
        +
        +### Floating-Point Macros ###
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_FLOAT_EQ(`_expected, actual_`);`  | `EXPECT_FLOAT_EQ(`_expected, actual_`);` | the two `float` values are almost equal |
        +| `ASSERT_DOUBLE_EQ(`_expected, actual_`);` | `EXPECT_DOUBLE_EQ(`_expected, actual_`);` | the two `double` values are almost equal |
        +
        +By "almost equal", we mean the two values are within 4 ULP's from each
        +other.
        +
        +The following assertions allow you to choose the acceptable error bound:
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_NEAR(`_val1, val2, abs\_error_`);` | `EXPECT_NEAR`_(val1, val2, abs\_error_`);` | the difference between _val1_ and _val2_ doesn't exceed the given absolute error |
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +### Floating-Point Predicate-Format Functions ###
        +
        +Some floating-point operations are useful, but not that often used. In order
        +to avoid an explosion of new macros, we provide them as predicate-format
        +functions that can be used in predicate assertion macros (e.g.
        +`EXPECT_PRED_FORMAT2`, etc).
        +
        +```
        +EXPECT_PRED_FORMAT2(::testing::FloatLE, val1, val2);
        +EXPECT_PRED_FORMAT2(::testing::DoubleLE, val1, val2);
        +```
        +
        +Verifies that _val1_ is less than, or almost equal to, _val2_. You can
        +replace `EXPECT_PRED_FORMAT2` in the above table with `ASSERT_PRED_FORMAT2`.
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +## Windows HRESULT assertions ##
        +
        +These assertions test for `HRESULT` success or failure.
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_HRESULT_SUCCEEDED(`_expression_`);` | `EXPECT_HRESULT_SUCCEEDED(`_expression_`);` | _expression_ is a success `HRESULT` |
        +| `ASSERT_HRESULT_FAILED(`_expression_`);`    | `EXPECT_HRESULT_FAILED(`_expression_`);`    | _expression_ is a failure `HRESULT` |
        +
        +The generated output contains the human-readable error message
        +associated with the `HRESULT` code returned by _expression_.
        +
        +You might use them like this:
        +
        +```
        +CComPtr shell;
        +ASSERT_HRESULT_SUCCEEDED(shell.CoCreateInstance(L"Shell.Application"));
        +CComVariant empty;
        +ASSERT_HRESULT_SUCCEEDED(shell->ShellExecute(CComBSTR(url), empty, empty, empty, empty));
        +```
        +
        +_Availability_: Windows.
        +
        +## Type Assertions ##
        +
        +You can call the function
        +```
        +::testing::StaticAssertTypeEq<T1, T2>();
        +```
        +to assert that types `T1` and `T2` are the same.  The function does
        +nothing if the assertion is satisfied.  If the types are different,
        +the function call will fail to compile, and the compiler error message
        +will likely (depending on the compiler) show you the actual values of
        +`T1` and `T2`.  This is mainly useful inside template code.
        +
        +_Caveat:_ When used inside a member function of a class template or a
        +function template, `StaticAssertTypeEq<T1, T2>()` is effective _only if_
        +the function is instantiated.  For example, given:
        +```
        +template <typename T> class Foo {
        + public:
        +  void Bar() { ::testing::StaticAssertTypeEq<int, T>(); }
        +};
        +```
        +the code:
        +```
        +void Test1() { Foo<bool> foo; }
        +```
        +will _not_ generate a compiler error, as `Foo<bool>::Bar()` is never
        +actually instantiated.  Instead, you need:
        +```
        +void Test2() { Foo<bool> foo; foo.Bar(); }
        +```
        +to cause a compiler error.
        +
        +_Availability:_ Linux, Windows, Mac; since version 1.3.0.
        +
        +## Assertion Placement ##
        +
        +You can use assertions in any C++ function. In particular, it doesn't
        +have to be a method of the test fixture class. The one constraint is
        +that assertions that generate a fatal failure (`FAIL*` and `ASSERT_*`)
        +can only be used in void-returning functions. This is a consequence of
        +Google Test not using exceptions. By placing it in a non-void function
        +you'll get a confusing compile error like
        +`"error: void value not ignored as it ought to be"`.
        +
        +If you need to use assertions in a function that returns non-void, one option
        +is to make the function return the value in an out parameter instead. For
        +example, you can rewrite `T2 Foo(T1 x)` to `void Foo(T1 x, T2* result)`. You
        +need to make sure that `*result` contains some sensible value even when the
        +function returns prematurely. As the function now returns `void`, you can use
        +any assertion inside of it.
        +
        +If changing the function's type is not an option, you should just use
        +assertions that generate non-fatal failures, such as `ADD_FAILURE*` and
        +`EXPECT_*`.
        +
        +_Note_: Constructors and destructors are not considered void-returning
        +functions, according to the C++ language specification, and so you may not use
        +fatal assertions in them. You'll get a compilation error if you try. A simple
        +workaround is to transfer the entire body of the constructor or destructor to a
        +private void-returning method. However, you should be aware that a fatal
        +assertion failure in a constructor does not terminate the current test, as your
        +intuition might suggest; it merely returns from the constructor early, possibly
        +leaving your object in a partially-constructed state. Likewise, a fatal
        +assertion failure in a destructor may leave your object in a
        +partially-destructed state. Use assertions carefully in these situations!
        +
        +# Teaching Google Test How to Print Your Values #
        +
        +When a test assertion such as `EXPECT_EQ` fails, Google Test prints the
        +argument values to help you debug.  It does this using a
        +user-extensible value printer.
        +
        +This printer knows how to print built-in C++ types, native arrays, STL
        +containers, and any type that supports the `<<` operator.  For other
        +types, it prints the raw bytes in the value and hopes that you the
        +user can figure it out.
        +
        +As mentioned earlier, the printer is _extensible_.  That means
        +you can teach it to do a better job at printing your particular type
        +than to dump the bytes.  To do that, define `<<` for your type:
        +
        +```
        +#include <iostream>
        +
        +namespace foo {
        +
        +class Bar { ... };  // We want Google Test to be able to print instances of this.
        +
        +// It's important that the << operator is defined in the SAME
        +// namespace that defines Bar.  C++'s look-up rules rely on that.
        +::std::ostream& operator<<(::std::ostream& os, const Bar& bar) {
        +  return os << bar.DebugString();  // whatever needed to print bar to os
        +}
        +
        +}  // namespace foo
        +```
        +
        +Sometimes, this might not be an option: your team may consider it bad
        +style to have a `<<` operator for `Bar`, or `Bar` may already have a
        +`<<` operator that doesn't do what you want (and you cannot change
        +it).  If so, you can instead define a `PrintTo()` function like this:
        +
        +```
        +#include <iostream>
        +
        +namespace foo {
        +
        +class Bar { ... };
        +
        +// It's important that PrintTo() is defined in the SAME
        +// namespace that defines Bar.  C++'s look-up rules rely on that.
        +void PrintTo(const Bar& bar, ::std::ostream* os) {
        +  *os << bar.DebugString();  // whatever needed to print bar to os
        +}
        +
        +}  // namespace foo
        +```
        +
        +If you have defined both `<<` and `PrintTo()`, the latter will be used
        +when Google Test is concerned.  This allows you to customize how the value
        +appears in Google Test's output without affecting code that relies on the
        +behavior of its `<<` operator.
        +
        +If you want to print a value `x` using Google Test's value printer
        +yourself, just call `::testing::PrintToString(`_x_`)`, which
        +returns an `std::string`:
        +
        +```
        +vector<pair<Bar, int> > bar_ints = GetBarIntVector();
        +
        +EXPECT_TRUE(IsCorrectBarIntVector(bar_ints))
        +    << "bar_ints = " << ::testing::PrintToString(bar_ints);
        +```
        +
        +# Death Tests #
        +
        +In many applications, there are assertions that can cause application failure
        +if a condition is not met. These sanity checks, which ensure that the program
        +is in a known good state, are there to fail at the earliest possible time after
        +some program state is corrupted. If the assertion checks the wrong condition,
        +then the program may proceed in an erroneous state, which could lead to memory
        +corruption, security holes, or worse. Hence it is vitally important to test
        +that such assertion statements work as expected.
        +
        +Since these precondition checks cause the processes to die, we call such tests
        +_death tests_. More generally, any test that checks that a program terminates
        +(except by throwing an exception) in an expected fashion is also a death test.
        +
        +Note that if a piece of code throws an exception, we don't consider it "death"
        +for the purpose of death tests, as the caller of the code could catch the exception
        +and avoid the crash. If you want to verify exceptions thrown by your code,
        +see [Exception Assertions](#Exception_Assertions.md).
        +
        +If you want to test `EXPECT_*()/ASSERT_*()` failures in your test code, see [Catching Failures](#Catching_Failures.md).
        +
        +## How to Write a Death Test ##
        +
        +Google Test has the following macros to support death tests:
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_DEATH(`_statement, regex_`); | `EXPECT_DEATH(`_statement, regex_`); | _statement_ crashes with the given error |
        +| `ASSERT_DEATH_IF_SUPPORTED(`_statement, regex_`); | `EXPECT_DEATH_IF_SUPPORTED(`_statement, regex_`); | if death tests are supported, verifies that _statement_ crashes with the given error; otherwise verifies nothing |
        +| `ASSERT_EXIT(`_statement, predicate, regex_`); | `EXPECT_EXIT(`_statement, predicate, regex_`); |_statement_ exits with the given error and its exit code matches _predicate_ |
        +
        +where _statement_ is a statement that is expected to cause the process to
        +die, _predicate_ is a function or function object that evaluates an integer
        +exit status, and _regex_ is a regular expression that the stderr output of
        +_statement_ is expected to match. Note that _statement_ can be _any valid
        +statement_ (including _compound statement_) and doesn't have to be an
        +expression.
        +
        +As usual, the `ASSERT` variants abort the current test function, while the
        +`EXPECT` variants do not.
        +
        +**Note:** We use the word "crash" here to mean that the process
        +terminates with a _non-zero_ exit status code.  There are two
        +possibilities: either the process has called `exit()` or `_exit()`
        +with a non-zero value, or it may be killed by a signal.
        +
        +This means that if _statement_ terminates the process with a 0 exit
        +code, it is _not_ considered a crash by `EXPECT_DEATH`.  Use
        +`EXPECT_EXIT` instead if this is the case, or if you want to restrict
        +the exit code more precisely.
        +
        +A predicate here must accept an `int` and return a `bool`. The death test
        +succeeds only if the predicate returns `true`. Google Test defines a few
        +predicates that handle the most common cases:
        +
        +```
        +::testing::ExitedWithCode(exit_code)
        +```
        +
        +This expression is `true` if the program exited normally with the given exit
        +code.
        +
        +```
        +::testing::KilledBySignal(signal_number)  // Not available on Windows.
        +```
        +
        +This expression is `true` if the program was killed by the given signal.
        +
        +The `*_DEATH` macros are convenient wrappers for `*_EXIT` that use a predicate
        +that verifies the process' exit code is non-zero.
        +
        +Note that a death test only cares about three things:
        +
        +  1. does _statement_ abort or exit the process?
        +  1. (in the case of `ASSERT_EXIT` and `EXPECT_EXIT`) does the exit status satisfy _predicate_?  Or (in the case of `ASSERT_DEATH` and `EXPECT_DEATH`) is the exit status non-zero?  And
        +  1. does the stderr output match _regex_?
        +
        +In particular, if _statement_ generates an `ASSERT_*` or `EXPECT_*` failure, it will **not** cause the death test to fail, as Google Test assertions don't abort the process.
        +
        +To write a death test, simply use one of the above macros inside your test
        +function. For example,
        +
        +```
        +TEST(My*DeathTest*, Foo) {
        +  // This death test uses a compound statement.
        +  ASSERT_DEATH({ int n = 5; Foo(&n); }, "Error on line .* of Foo()");
        +}
        +TEST(MyDeathTest, NormalExit) {
        +  EXPECT_EXIT(NormalExit(), ::testing::ExitedWithCode(0), "Success");
        +}
        +TEST(MyDeathTest, KillMyself) {
        +  EXPECT_EXIT(KillMyself(), ::testing::KilledBySignal(SIGKILL), "Sending myself unblockable signal");
        +}
        +```
        +
        +verifies that:
        +
        +  * calling `Foo(5)` causes the process to die with the given error message,
        +  * calling `NormalExit()` causes the process to print `"Success"` to stderr and exit with exit code 0, and
        +  * calling `KillMyself()` kills the process with signal `SIGKILL`.
        +
        +The test function body may contain other assertions and statements as well, if
        +necessary.
        +
        +_Important:_ We strongly recommend you to follow the convention of naming your
        +test case (not test) `*DeathTest` when it contains a death test, as
        +demonstrated in the above example. The `Death Tests And Threads` section below
        +explains why.
        +
        +If a test fixture class is shared by normal tests and death tests, you
        +can use typedef to introduce an alias for the fixture class and avoid
        +duplicating its code:
        +```
        +class FooTest : public ::testing::Test { ... };
        +
        +typedef FooTest FooDeathTest;
        +
        +TEST_F(FooTest, DoesThis) {
        +  // normal test
        +}
        +
        +TEST_F(FooDeathTest, DoesThat) {
        +  // death test
        +}
        +```
        +
        +_Availability:_ Linux, Windows (requires MSVC 8.0 or above), Cygwin, and Mac (the latter three are supported since v1.3.0).  `(ASSERT|EXPECT)_DEATH_IF_SUPPORTED` are new in v1.4.0.
        +
        +## Regular Expression Syntax ##
        +
        +On POSIX systems (e.g. Linux, Cygwin, and Mac), Google Test uses the
        +[POSIX extended regular expression](http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap09.html#tag_09_04)
        +syntax in death tests. To learn about this syntax, you may want to read this [Wikipedia entry](http://en.wikipedia.org/wiki/Regular_expression#POSIX_Extended_Regular_Expressions).
        +
        +On Windows, Google Test uses its own simple regular expression
        +implementation. It lacks many features you can find in POSIX extended
        +regular expressions.  For example, we don't support union (`"x|y"`),
        +grouping (`"(xy)"`), brackets (`"[xy]"`), and repetition count
        +(`"x{5,7}"`), among others. Below is what we do support (`A` denotes a
        +literal character, period (`.`), or a single `\\` escape sequence; `x`
        +and `y` denote regular expressions.):
        +
        +| `c` | matches any literal character `c` |
        +|:----|:----------------------------------|
        +| `\\d` | matches any decimal digit         |
        +| `\\D` | matches any character that's not a decimal digit |
        +| `\\f` | matches `\f`                      |
        +| `\\n` | matches `\n`                      |
        +| `\\r` | matches `\r`                      |
        +| `\\s` | matches any ASCII whitespace, including `\n` |
        +| `\\S` | matches any character that's not a whitespace |
        +| `\\t` | matches `\t`                      |
        +| `\\v` | matches `\v`                      |
        +| `\\w` | matches any letter, `_`, or decimal digit |
        +| `\\W` | matches any character that `\\w` doesn't match |
        +| `\\c` | matches any literal character `c`, which must be a punctuation |
        +| `.` | matches any single character except `\n` |
        +| `A?` | matches 0 or 1 occurrences of `A` |
        +| `A*` | matches 0 or many occurrences of `A` |
        +| `A+` | matches 1 or many occurrences of `A` |
        +| `^` | matches the beginning of a string (not that of each line) |
        +| `$` | matches the end of a string (not that of each line) |
        +| `xy` | matches `x` followed by `y`       |
        +
        +To help you determine which capability is available on your system,
        +Google Test defines macro `GTEST_USES_POSIX_RE=1` when it uses POSIX
        +extended regular expressions, or `GTEST_USES_SIMPLE_RE=1` when it uses
        +the simple version.  If you want your death tests to work in both
        +cases, you can either `#if` on these macros or use the more limited
        +syntax only.
        +
        +## How It Works ##
        +
        +Under the hood, `ASSERT_EXIT()` spawns a new process and executes the
        +death test statement in that process. The details of of how precisely
        +that happens depend on the platform and the variable
        +`::testing::GTEST_FLAG(death_test_style)` (which is initialized from the
        +command-line flag `--gtest_death_test_style`).
        +
        +  * On POSIX systems, `fork()` (or `clone()` on Linux) is used to spawn the child, after which:
        +    * If the variable's value is `"fast"`, the death test statement is immediately executed.
        +    * If the variable's value is `"threadsafe"`, the child process re-executes the unit test binary just as it was originally invoked, but with some extra flags to cause just the single death test under consideration to be run.
        +  * On Windows, the child is spawned using the `CreateProcess()` API, and re-executes the binary to cause just the single death test under consideration to be run - much like the `threadsafe` mode on POSIX.
        +
        +Other values for the variable are illegal and will cause the death test to
        +fail. Currently, the flag's default value is `"fast"`. However, we reserve the
        +right to change it in the future. Therefore, your tests should not depend on
        +this.
        +
        +In either case, the parent process waits for the child process to complete, and checks that
        +
        +  1. the child's exit status satisfies the predicate, and
        +  1. the child's stderr matches the regular expression.
        +
        +If the death test statement runs to completion without dying, the child
        +process will nonetheless terminate, and the assertion fails.
        +
        +## Death Tests And Threads ##
        +
        +The reason for the two death test styles has to do with thread safety. Due to
        +well-known problems with forking in the presence of threads, death tests should
        +be run in a single-threaded context. Sometimes, however, it isn't feasible to
        +arrange that kind of environment. For example, statically-initialized modules
        +may start threads before main is ever reached. Once threads have been created,
        +it may be difficult or impossible to clean them up.
        +
        +Google Test has three features intended to raise awareness of threading issues.
        +
        +  1. A warning is emitted if multiple threads are running when a death test is encountered.
        +  1. Test cases with a name ending in "DeathTest" are run before all other tests.
        +  1. It uses `clone()` instead of `fork()` to spawn the child process on Linux (`clone()` is not available on Cygwin and Mac), as `fork()` is more likely to cause the child to hang when the parent process has multiple threads.
        +
        +It's perfectly fine to create threads inside a death test statement; they are
        +executed in a separate process and cannot affect the parent.
        +
        +## Death Test Styles ##
        +
        +The "threadsafe" death test style was introduced in order to help mitigate the
        +risks of testing in a possibly multithreaded environment. It trades increased
        +test execution time (potentially dramatically so) for improved thread safety.
        +We suggest using the faster, default "fast" style unless your test has specific
        +problems with it.
        +
        +You can choose a particular style of death tests by setting the flag
        +programmatically:
        +
        +```
        +::testing::FLAGS_gtest_death_test_style = "threadsafe";
        +```
        +
        +You can do this in `main()` to set the style for all death tests in the
        +binary, or in individual tests. Recall that flags are saved before running each
        +test and restored afterwards, so you need not do that yourself. For example:
        +
        +```
        +TEST(MyDeathTest, TestOne) {
        +  ::testing::FLAGS_gtest_death_test_style = "threadsafe";
        +  // This test is run in the "threadsafe" style:
        +  ASSERT_DEATH(ThisShouldDie(), "");
        +}
        +
        +TEST(MyDeathTest, TestTwo) {
        +  // This test is run in the "fast" style:
        +  ASSERT_DEATH(ThisShouldDie(), "");
        +}
        +
        +int main(int argc, char** argv) {
        +  ::testing::InitGoogleTest(&argc, argv);
        +  ::testing::FLAGS_gtest_death_test_style = "fast";
        +  return RUN_ALL_TESTS();
        +}
        +```
        +
        +## Caveats ##
        +
        +The _statement_ argument of `ASSERT_EXIT()` can be any valid C++ statement.
        +If it leaves the current function via a `return` statement or by throwing an exception,
        +the death test is considered to have failed.  Some Google Test macros may return
        +from the current function (e.g. `ASSERT_TRUE()`), so be sure to avoid them in _statement_.
        +
        +Since _statement_ runs in the child process, any in-memory side effect (e.g.
        +modifying a variable, releasing memory, etc) it causes will _not_ be observable
        +in the parent process. In particular, if you release memory in a death test,
        +your program will fail the heap check as the parent process will never see the
        +memory reclaimed. To solve this problem, you can
        +
        +  1. try not to free memory in a death test;
        +  1. free the memory again in the parent process; or
        +  1. do not use the heap checker in your program.
        +
        +Due to an implementation detail, you cannot place multiple death test
        +assertions on the same line; otherwise, compilation will fail with an unobvious
        +error message.
        +
        +Despite the improved thread safety afforded by the "threadsafe" style of death
        +test, thread problems such as deadlock are still possible in the presence of
        +handlers registered with `pthread_atfork(3)`.
        +
        +# Using Assertions in Sub-routines #
        +
        +## Adding Traces to Assertions ##
        +
        +If a test sub-routine is called from several places, when an assertion
        +inside it fails, it can be hard to tell which invocation of the
        +sub-routine the failure is from.  You can alleviate this problem using
        +extra logging or custom failure messages, but that usually clutters up
        +your tests. A better solution is to use the `SCOPED_TRACE` macro:
        +
        +| `SCOPED_TRACE(`_message_`);` |
        +|:-----------------------------|
        +
        +where _message_ can be anything streamable to `std::ostream`. This
        +macro will cause the current file name, line number, and the given
        +message to be added in every failure message. The effect will be
        +undone when the control leaves the current lexical scope.
        +
        +For example,
        +
        +```
        +10: void Sub1(int n) {
        +11:   EXPECT_EQ(1, Bar(n));
        +12:   EXPECT_EQ(2, Bar(n + 1));
        +13: }
        +14: 
        +15: TEST(FooTest, Bar) {
        +16:   {
        +17:     SCOPED_TRACE("A");  // This trace point will be included in
        +18:                         // every failure in this scope.
        +19:     Sub1(1);
        +20:   }
        +21:   // Now it won't.
        +22:   Sub1(9);
        +23: }
        +```
        +
        +could result in messages like these:
        +
        +```
        +path/to/foo_test.cc:11: Failure
        +Value of: Bar(n)
        +Expected: 1
        +  Actual: 2
        +   Trace:
        +path/to/foo_test.cc:17: A
        +
        +path/to/foo_test.cc:12: Failure
        +Value of: Bar(n + 1)
        +Expected: 2
        +  Actual: 3
        +```
        +
        +Without the trace, it would've been difficult to know which invocation
        +of `Sub1()` the two failures come from respectively. (You could add an
        +extra message to each assertion in `Sub1()` to indicate the value of
        +`n`, but that's tedious.)
        +
        +Some tips on using `SCOPED_TRACE`:
        +
        +  1. With a suitable message, it's often enough to use `SCOPED_TRACE` at the beginning of a sub-routine, instead of at each call site.
        +  1. When calling sub-routines inside a loop, make the loop iterator part of the message in `SCOPED_TRACE` such that you can know which iteration the failure is from.
        +  1. Sometimes the line number of the trace point is enough for identifying the particular invocation of a sub-routine. In this case, you don't have to choose a unique message for `SCOPED_TRACE`. You can simply use `""`.
        +  1. You can use `SCOPED_TRACE` in an inner scope when there is one in the outer scope. In this case, all active trace points will be included in the failure messages, in reverse order they are encountered.
        +  1. The trace dump is clickable in Emacs' compilation buffer - hit return on a line number and you'll be taken to that line in the source file!
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +## Propagating Fatal Failures ##
        +
        +A common pitfall when using `ASSERT_*` and `FAIL*` is not understanding that
        +when they fail they only abort the _current function_, not the entire test. For
        +example, the following test will segfault:
        +```
        +void Subroutine() {
        +  // Generates a fatal failure and aborts the current function.
        +  ASSERT_EQ(1, 2);
        +  // The following won't be executed.
        +  ...
        +}
        +
        +TEST(FooTest, Bar) {
        +  Subroutine();
        +  // The intended behavior is for the fatal failure
        +  // in Subroutine() to abort the entire test.
        +  // The actual behavior: the function goes on after Subroutine() returns.
        +  int* p = NULL;
        +  *p = 3; // Segfault!
        +}
        +```
        +
        +Since we don't use exceptions, it is technically impossible to
        +implement the intended behavior here.  To alleviate this, Google Test
        +provides two solutions.  You could use either the
        +`(ASSERT|EXPECT)_NO_FATAL_FAILURE` assertions or the
        +`HasFatalFailure()` function.  They are described in the following two
        +subsections.
        +
        +### Asserting on Subroutines ###
        +
        +As shown above, if your test calls a subroutine that has an `ASSERT_*`
        +failure in it, the test will continue after the subroutine
        +returns. This may not be what you want.
        +
        +Often people want fatal failures to propagate like exceptions.  For
        +that Google Test offers the following macros:
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_NO_FATAL_FAILURE(`_statement_`);` | `EXPECT_NO_FATAL_FAILURE(`_statement_`);` | _statement_ doesn't generate any new fatal failures in the current thread. |
        +
        +Only failures in the thread that executes the assertion are checked to
        +determine the result of this type of assertions.  If _statement_
        +creates new threads, failures in these threads are ignored.
        +
        +Examples:
        +
        +```
        +ASSERT_NO_FATAL_FAILURE(Foo());
        +
        +int i;
        +EXPECT_NO_FATAL_FAILURE({
        +  i = Bar();
        +});
        +```
        +
        +_Availability:_ Linux, Windows, Mac. Assertions from multiple threads
        +are currently not supported.
        +
        +### Checking for Failures in the Current Test ###
        +
        +`HasFatalFailure()` in the `::testing::Test` class returns `true` if an
        +assertion in the current test has suffered a fatal failure. This
        +allows functions to catch fatal failures in a sub-routine and return
        +early.
        +
        +```
        +class Test {
        + public:
        +  ...
        +  static bool HasFatalFailure();
        +};
        +```
        +
        +The typical usage, which basically simulates the behavior of a thrown
        +exception, is:
        +
        +```
        +TEST(FooTest, Bar) {
        +  Subroutine();
        +  // Aborts if Subroutine() had a fatal failure.
        +  if (HasFatalFailure())
        +    return;
        +  // The following won't be executed.
        +  ...
        +}
        +```
        +
        +If `HasFatalFailure()` is used outside of `TEST()` , `TEST_F()` , or a test
        +fixture, you must add the `::testing::Test::` prefix, as in:
        +
        +```
        +if (::testing::Test::HasFatalFailure())
        +  return;
        +```
        +
        +Similarly, `HasNonfatalFailure()` returns `true` if the current test
        +has at least one non-fatal failure, and `HasFailure()` returns `true`
        +if the current test has at least one failure of either kind.
        +
        +_Availability:_ Linux, Windows, Mac.  `HasNonfatalFailure()` and
        +`HasFailure()` are available since version 1.4.0.
        +
        +# Logging Additional Information #
        +
        +In your test code, you can call `RecordProperty("key", value)` to log
        +additional information, where `value` can be either a C string or a 32-bit
        +integer. The _last_ value recorded for a key will be emitted to the XML output
        +if you specify one. For example, the test
        +
        +```
        +TEST_F(WidgetUsageTest, MinAndMaxWidgets) {
        +  RecordProperty("MaximumWidgets", ComputeMaxUsage());
        +  RecordProperty("MinimumWidgets", ComputeMinUsage());
        +}
        +```
        +
        +will output XML like this:
        +
        +```
        +...
        +  <testcase name="MinAndMaxWidgets" status="run" time="6" classname="WidgetUsageTest"
        +            MaximumWidgets="12"
        +            MinimumWidgets="9" />
        +...
        +```
        +
        +_Note_:
        +  * `RecordProperty()` is a static member of the `Test` class. Therefore it needs to be prefixed with `::testing::Test::` if used outside of the `TEST` body and the test fixture class.
        +  * `key` must be a valid XML attribute name, and cannot conflict with the ones already used by Google Test (`name`, `status`,     `time`, and `classname`).
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +# Sharing Resources Between Tests in the Same Test Case #
        +
        +
        +
        +Google Test creates a new test fixture object for each test in order to make
        +tests independent and easier to debug. However, sometimes tests use resources
        +that are expensive to set up, making the one-copy-per-test model prohibitively
        +expensive.
        +
        +If the tests don't change the resource, there's no harm in them sharing a
        +single resource copy. So, in addition to per-test set-up/tear-down, Google Test
        +also supports per-test-case set-up/tear-down. To use it:
        +
        +  1. In your test fixture class (say `FooTest` ), define as `static` some member variables to hold the shared resources.
        +  1. In the same test fixture class, define a `static void SetUpTestCase()` function (remember not to spell it as **`SetupTestCase`** with a small `u`!) to set up the shared resources and a `static void TearDownTestCase()` function to tear them down.
        +
        +That's it! Google Test automatically calls `SetUpTestCase()` before running the
        +_first test_ in the `FooTest` test case (i.e. before creating the first
        +`FooTest` object), and calls `TearDownTestCase()` after running the _last test_
        +in it (i.e. after deleting the last `FooTest` object). In between, the tests
        +can use the shared resources.
        +
        +Remember that the test order is undefined, so your code can't depend on a test
        +preceding or following another. Also, the tests must either not modify the
        +state of any shared resource, or, if they do modify the state, they must
        +restore the state to its original value before passing control to the next
        +test.
        +
        +Here's an example of per-test-case set-up and tear-down:
        +```
        +class FooTest : public ::testing::Test {
        + protected:
        +  // Per-test-case set-up.
        +  // Called before the first test in this test case.
        +  // Can be omitted if not needed.
        +  static void SetUpTestCase() {
        +    shared_resource_ = new ...;
        +  }
        +
        +  // Per-test-case tear-down.
        +  // Called after the last test in this test case.
        +  // Can be omitted if not needed.
        +  static void TearDownTestCase() {
        +    delete shared_resource_;
        +    shared_resource_ = NULL;
        +  }
        +
        +  // You can define per-test set-up and tear-down logic as usual.
        +  virtual void SetUp() { ... }
        +  virtual void TearDown() { ... }
        +
        +  // Some expensive resource shared by all tests.
        +  static T* shared_resource_;
        +};
        +
        +T* FooTest::shared_resource_ = NULL;
        +
        +TEST_F(FooTest, Test1) {
        +  ... you can refer to shared_resource here ...
        +}
        +TEST_F(FooTest, Test2) {
        +  ... you can refer to shared_resource here ...
        +}
        +```
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +# Global Set-Up and Tear-Down #
        +
        +Just as you can do set-up and tear-down at the test level and the test case
        +level, you can also do it at the test program level. Here's how.
        +
        +First, you subclass the `::testing::Environment` class to define a test
        +environment, which knows how to set-up and tear-down:
        +
        +```
        +class Environment {
        + public:
        +  virtual ~Environment() {}
        +  // Override this to define how to set up the environment.
        +  virtual void SetUp() {}
        +  // Override this to define how to tear down the environment.
        +  virtual void TearDown() {}
        +};
        +```
        +
        +Then, you register an instance of your environment class with Google Test by
        +calling the `::testing::AddGlobalTestEnvironment()` function:
        +
        +```
        +Environment* AddGlobalTestEnvironment(Environment* env);
        +```
        +
        +Now, when `RUN_ALL_TESTS()` is called, it first calls the `SetUp()` method of
        +the environment object, then runs the tests if there was no fatal failures, and
        +finally calls `TearDown()` of the environment object.
        +
        +It's OK to register multiple environment objects. In this case, their `SetUp()`
        +will be called in the order they are registered, and their `TearDown()` will be
        +called in the reverse order.
        +
        +Note that Google Test takes ownership of the registered environment objects.
        +Therefore **do not delete them** by yourself.
        +
        +You should call `AddGlobalTestEnvironment()` before `RUN_ALL_TESTS()` is
        +called, probably in `main()`. If you use `gtest_main`, you need to      call
        +this before `main()` starts for it to take effect. One way to do this is to
        +define a global variable like this:
        +
        +```
        +::testing::Environment* const foo_env = ::testing::AddGlobalTestEnvironment(new FooEnvironment);
        +```
        +
        +However, we strongly recommend you to write your own `main()` and call
        +`AddGlobalTestEnvironment()` there, as relying on initialization of global
        +variables makes the code harder to read and may cause problems when you
        +register multiple environments from different translation units and the
        +environments have dependencies among them (remember that the compiler doesn't
        +guarantee the order in which global variables from different translation units
        +are initialized).
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +
        +# Value Parameterized Tests #
        +
        +_Value-parameterized tests_ allow you to test your code with different
        +parameters without writing multiple copies of the same test.
        +
        +Suppose you write a test for your code and then realize that your code is affected by a presence of a Boolean command line flag.
        +
        +```
        +TEST(MyCodeTest, TestFoo) {
        +  // A code to test foo().
        +}
        +```
        +
        +Usually people factor their test code into a function with a Boolean parameter in such situations. The function sets the flag, then executes the testing code.
        +
        +```
        +void TestFooHelper(bool flag_value) {
        +  flag = flag_value;
        +  // A code to test foo().
        +}
        +
        +TEST(MyCodeTest, TestFooo) {
        +  TestFooHelper(false);
        +  TestFooHelper(true);
        +}
        +```
        +
        +But this setup has serious drawbacks. First, when a test assertion fails in your tests, it becomes unclear what value of the parameter caused it to fail. You can stream a clarifying message into your `EXPECT`/`ASSERT` statements, but it you'll have to do it with all of them. Second, you have to add one such helper function per test. What if you have ten tests? Twenty? A hundred?
        +
        +Value-parameterized tests will let you write your test only once and then easily instantiate and run it with an arbitrary number of parameter values.
        +
        +Here are some other situations when value-parameterized tests come handy:
        +
        +  * You want to test different implementations of an OO interface.
        +  * You want to test your code over various inputs (a.k.a. data-driven testing). This feature is easy to abuse, so please exercise your good sense when doing it!
        +
        +## How to Write Value-Parameterized Tests ##
        +
        +To write value-parameterized tests, first you should define a fixture
        +class.  It must be derived from both `::testing::Test` and
        +`::testing::WithParamInterface<T>` (the latter is a pure interface),
        +where `T` is the type of your parameter values.  For convenience, you
        +can just derive the fixture class from `::testing::TestWithParam<T>`,
        +which itself is derived from both `::testing::Test` and
        +`::testing::WithParamInterface<T>`. `T` can be any copyable type. If
        +it's a raw pointer, you are responsible for managing the lifespan of
        +the pointed values.
        +
        +```
        +class FooTest : public ::testing::TestWithParam<const char*> {
        +  // You can implement all the usual fixture class members here.
        +  // To access the test parameter, call GetParam() from class
        +  // TestWithParam<T>.
        +};
        +
        +// Or, when you want to add parameters to a pre-existing fixture class:
        +class BaseTest : public ::testing::Test {
        +  ...
        +};
        +class BarTest : public BaseTest,
        +                public ::testing::WithParamInterface<const char*> {
        +  ...
        +};
        +```
        +
        +Then, use the `TEST_P` macro to define as many test patterns using
        +this fixture as you want.  The `_P` suffix is for "parameterized" or
        +"pattern", whichever you prefer to think.
        +
        +```
        +TEST_P(FooTest, DoesBlah) {
        +  // Inside a test, access the test parameter with the GetParam() method
        +  // of the TestWithParam<T> class:
        +  EXPECT_TRUE(foo.Blah(GetParam()));
        +  ...
        +}
        +
        +TEST_P(FooTest, HasBlahBlah) {
        +  ...
        +}
        +```
        +
        +Finally, you can use `INSTANTIATE_TEST_CASE_P` to instantiate the test
        +case with any set of parameters you want. Google Test defines a number of
        +functions for generating test parameters. They return what we call
        +(surprise!) _parameter generators_. Here is a summary of them,
        +which are all in the `testing` namespace:
        +
        +| `Range(begin, end[, step])` | Yields values `{begin, begin+step, begin+step+step, ...}`. The values do not include `end`. `step` defaults to 1. |
        +|:----------------------------|:------------------------------------------------------------------------------------------------------------------|
        +| `Values(v1, v2, ..., vN)`   | Yields values `{v1, v2, ..., vN}`.                                                                                |
        +| `ValuesIn(container)` and `ValuesIn(begin, end)` | Yields values from a C-style array, an STL-style container, or an iterator range `[begin, end)`. `container`, `begin`, and `end` can be expressions whose values are determined at run time.  |
        +| `Bool()`                    | Yields sequence `{false, true}`.                                                                                  |
        +| `Combine(g1, g2, ..., gN)`  | Yields all combinations (the Cartesian product for the math savvy) of the values generated by the `N` generators. This is only available if your system provides the `<tr1/tuple>` header. If you are sure your system does, and Google Test disagrees, you can override it by defining `GTEST_HAS_TR1_TUPLE=1`. See comments in [include/gtest/internal/gtest-port.h](http://code.google.com/p/googletest/source/browse/trunk/include/gtest/internal/gtest-port.h) for more information. |
        +
        +For more details, see the comments at the definitions of these functions in the [source code](http://code.google.com/p/googletest/source/browse/trunk/include/gtest/gtest-param-test.h).
        +
        +The following statement will instantiate tests from the `FooTest` test case
        +each with parameter values `"meeny"`, `"miny"`, and `"moe"`.
        +
        +```
        +INSTANTIATE_TEST_CASE_P(InstantiationName,
        +                        FooTest,
        +                        ::testing::Values("meeny", "miny", "moe"));
        +```
        +
        +To distinguish different instances of the pattern (yes, you can
        +instantiate it more than once), the first argument to
        +`INSTANTIATE_TEST_CASE_P` is a prefix that will be added to the actual
        +test case name. Remember to pick unique prefixes for different
        +instantiations. The tests from the instantiation above will have these
        +names:
        +
        +  * `InstantiationName/FooTest.DoesBlah/0` for `"meeny"`
        +  * `InstantiationName/FooTest.DoesBlah/1` for `"miny"`
        +  * `InstantiationName/FooTest.DoesBlah/2` for `"moe"`
        +  * `InstantiationName/FooTest.HasBlahBlah/0` for `"meeny"`
        +  * `InstantiationName/FooTest.HasBlahBlah/1` for `"miny"`
        +  * `InstantiationName/FooTest.HasBlahBlah/2` for `"moe"`
        +
        +You can use these names in [--gtest\_filter](#Running_a_Subset_of_the_Tests.md).
        +
        +This statement will instantiate all tests from `FooTest` again, each
        +with parameter values `"cat"` and `"dog"`:
        +
        +```
        +const char* pets[] = {"cat", "dog"};
        +INSTANTIATE_TEST_CASE_P(AnotherInstantiationName, FooTest,
        +                        ::testing::ValuesIn(pets));
        +```
        +
        +The tests from the instantiation above will have these names:
        +
        +  * `AnotherInstantiationName/FooTest.DoesBlah/0` for `"cat"`
        +  * `AnotherInstantiationName/FooTest.DoesBlah/1` for `"dog"`
        +  * `AnotherInstantiationName/FooTest.HasBlahBlah/0` for `"cat"`
        +  * `AnotherInstantiationName/FooTest.HasBlahBlah/1` for `"dog"`
        +
        +Please note that `INSTANTIATE_TEST_CASE_P` will instantiate _all_
        +tests in the given test case, whether their definitions come before or
        +_after_ the `INSTANTIATE_TEST_CASE_P` statement.
        +
        +You can see
        +[these](http://code.google.com/p/googletest/source/browse/trunk/samples/sample7_unittest.cc)
        +[files](http://code.google.com/p/googletest/source/browse/trunk/samples/sample8_unittest.cc) for more examples.
        +
        +_Availability_: Linux, Windows (requires MSVC 8.0 or above), Mac; since version 1.2.0.
        +
        +## Creating Value-Parameterized Abstract Tests ##
        +
        +In the above, we define and instantiate `FooTest` in the same source
        +file. Sometimes you may want to define value-parameterized tests in a
        +library and let other people instantiate them later. This pattern is
        +known as <i>abstract tests</i>. As an example of its application, when you
        +are designing an interface you can write a standard suite of abstract
        +tests (perhaps using a factory function as the test parameter) that
        +all implementations of the interface are expected to pass. When
        +someone implements the interface, he can instantiate your suite to get
        +all the interface-conformance tests for free.
        +
        +To define abstract tests, you should organize your code like this:
        +
        +  1. Put the definition of the parameterized test fixture class (e.g. `FooTest`) in a header file, say `foo_param_test.h`. Think of this as _declaring_ your abstract tests.
        +  1. Put the `TEST_P` definitions in `foo_param_test.cc`, which includes `foo_param_test.h`. Think of this as _implementing_ your abstract tests.
        +
        +Once they are defined, you can instantiate them by including
        +`foo_param_test.h`, invoking `INSTANTIATE_TEST_CASE_P()`, and linking
        +with `foo_param_test.cc`. You can instantiate the same abstract test
        +case multiple times, possibly in different source files.
        +
        +# Typed Tests #
        +
        +Suppose you have multiple implementations of the same interface and
        +want to make sure that all of them satisfy some common requirements.
        +Or, you may have defined several types that are supposed to conform to
        +the same "concept" and you want to verify it.  In both cases, you want
        +the same test logic repeated for different types.
        +
        +While you can write one `TEST` or `TEST_F` for each type you want to
        +test (and you may even factor the test logic into a function template
        +that you invoke from the `TEST`), it's tedious and doesn't scale:
        +if you want _m_ tests over _n_ types, you'll end up writing _m\*n_
        +`TEST`s.
        +
        +_Typed tests_ allow you to repeat the same test logic over a list of
        +types.  You only need to write the test logic once, although you must
        +know the type list when writing typed tests.  Here's how you do it:
        +
        +First, define a fixture class template.  It should be parameterized
        +by a type.  Remember to derive it from `::testing::Test`:
        +
        +```
        +template <typename T>
        +class FooTest : public ::testing::Test {
        + public:
        +  ...
        +  typedef std::list<T> List;
        +  static T shared_;
        +  T value_;
        +};
        +```
        +
        +Next, associate a list of types with the test case, which will be
        +repeated for each type in the list:
        +
        +```
        +typedef ::testing::Types<char, int, unsigned int> MyTypes;
        +TYPED_TEST_CASE(FooTest, MyTypes);
        +```
        +
        +The `typedef` is necessary for the `TYPED_TEST_CASE` macro to parse
        +correctly.  Otherwise the compiler will think that each comma in the
        +type list introduces a new macro argument.
        +
        +Then, use `TYPED_TEST()` instead of `TEST_F()` to define a typed test
        +for this test case.  You can repeat this as many times as you want:
        +
        +```
        +TYPED_TEST(FooTest, DoesBlah) {
        +  // Inside a test, refer to the special name TypeParam to get the type
        +  // parameter.  Since we are inside a derived class template, C++ requires
        +  // us to visit the members of FooTest via 'this'.
        +  TypeParam n = this->value_;
        +
        +  // To visit static members of the fixture, add the 'TestFixture::'
        +  // prefix.
        +  n += TestFixture::shared_;
        +
        +  // To refer to typedefs in the fixture, add the 'typename TestFixture::'
        +  // prefix.  The 'typename' is required to satisfy the compiler.
        +  typename TestFixture::List values;
        +  values.push_back(n);
        +  ...
        +}
        +
        +TYPED_TEST(FooTest, HasPropertyA) { ... }
        +```
        +
        +You can see `samples/sample6_unittest.cc` for a complete example.
        +
        +_Availability:_ Linux, Windows (requires MSVC 8.0 or above), Mac;
        +since version 1.1.0.
        +
        +# Type-Parameterized Tests #
        +
        +_Type-parameterized tests_ are like typed tests, except that they
        +don't require you to know the list of types ahead of time.  Instead,
        +you can define the test logic first and instantiate it with different
        +type lists later.  You can even instantiate it more than once in the
        +same program.
        +
        +If you are designing an interface or concept, you can define a suite
        +of type-parameterized tests to verify properties that any valid
        +implementation of the interface/concept should have.  Then, the author
        +of each implementation can just instantiate the test suite with his
        +type to verify that it conforms to the requirements, without having to
        +write similar tests repeatedly.  Here's an example:
        +
        +First, define a fixture class template, as we did with typed tests:
        +
        +```
        +template <typename T>
        +class FooTest : public ::testing::Test {
        +  ...
        +};
        +```
        +
        +Next, declare that you will define a type-parameterized test case:
        +
        +```
        +TYPED_TEST_CASE_P(FooTest);
        +```
        +
        +The `_P` suffix is for "parameterized" or "pattern", whichever you
        +prefer to think.
        +
        +Then, use `TYPED_TEST_P()` to define a type-parameterized test.  You
        +can repeat this as many times as you want:
        +
        +```
        +TYPED_TEST_P(FooTest, DoesBlah) {
        +  // Inside a test, refer to TypeParam to get the type parameter.
        +  TypeParam n = 0;
        +  ...
        +}
        +
        +TYPED_TEST_P(FooTest, HasPropertyA) { ... }
        +```
        +
        +Now the tricky part: you need to register all test patterns using the
        +`REGISTER_TYPED_TEST_CASE_P` macro before you can instantiate them.
        +The first argument of the macro is the test case name; the rest are
        +the names of the tests in this test case:
        +
        +```
        +REGISTER_TYPED_TEST_CASE_P(FooTest,
        +                           DoesBlah, HasPropertyA);
        +```
        +
        +Finally, you are free to instantiate the pattern with the types you
        +want.  If you put the above code in a header file, you can `#include`
        +it in multiple C++ source files and instantiate it multiple times.
        +
        +```
        +typedef ::testing::Types<char, int, unsigned int> MyTypes;
        +INSTANTIATE_TYPED_TEST_CASE_P(My, FooTest, MyTypes);
        +```
        +
        +To distinguish different instances of the pattern, the first argument
        +to the `INSTANTIATE_TYPED_TEST_CASE_P` macro is a prefix that will be
        +added to the actual test case name.  Remember to pick unique prefixes
        +for different instances.
        +
        +In the special case where the type list contains only one type, you
        +can write that type directly without `::testing::Types<...>`, like this:
        +
        +```
        +INSTANTIATE_TYPED_TEST_CASE_P(My, FooTest, int);
        +```
        +
        +You can see `samples/sample6_unittest.cc` for a complete example.
        +
        +_Availability:_ Linux, Windows (requires MSVC 8.0 or above), Mac;
        +since version 1.1.0.
        +
        +# Testing Private Code #
        +
        +If you change your software's internal implementation, your tests should not
        +break as long as the change is not observable by users. Therefore, per the
        +_black-box testing principle_, most of the time you should test your code
        +through its public interfaces.
        +
        +If you still find yourself needing to test internal implementation code,
        +consider if there's a better design that wouldn't require you to do so. If you
        +absolutely have to test non-public interface code though, you can. There are
        +two cases to consider:
        +
        +  * Static functions (_not_ the same as static member functions!) or unnamed namespaces, and
        +  * Private or protected class members
        +
        +## Static Functions ##
        +
        +Both static functions and definitions/declarations in an unnamed namespace are
        +only visible within the same translation unit. To test them, you can `#include`
        +the entire `.cc` file being tested in your `*_test.cc` file. (#including `.cc`
        +files is not a good way to reuse code - you should not do this in production
        +code!)
        +
        +However, a better approach is to move the private code into the
        +`foo::internal` namespace, where `foo` is the namespace your project normally
        +uses, and put the private declarations in a `*-internal.h` file. Your
        +production `.cc` files and your tests are allowed to include this internal
        +header, but your clients are not. This way, you can fully test your internal
        +implementation without leaking it to your clients.
        +
        +## Private Class Members ##
        +
        +Private class members are only accessible from within the class or by friends.
        +To access a class' private members, you can declare your test fixture as a
        +friend to the class and define accessors in your fixture. Tests using the
        +fixture can then access the private members of your production class via the
        +accessors in the fixture. Note that even though your fixture is a friend to
        +your production class, your tests are not automatically friends to it, as they
        +are technically defined in sub-classes of the fixture.
        +
        +Another way to test private members is to refactor them into an implementation
        +class, which is then declared in a `*-internal.h` file. Your clients aren't
        +allowed to include this header but your tests can. Such is called the Pimpl
        +(Private Implementation) idiom.
        +
        +Or, you can declare an individual test as a friend of your class by adding this
        +line in the class body:
        +
        +```
        +FRIEND_TEST(TestCaseName, TestName);
        +```
        +
        +For example,
        +```
        +// foo.h
        +#include "gtest/gtest_prod.h"
        +
        +// Defines FRIEND_TEST.
        +class Foo {
        +  ...
        + private:
        +  FRIEND_TEST(FooTest, BarReturnsZeroOnNull);
        +  int Bar(void* x);
        +};
        +
        +// foo_test.cc
        +...
        +TEST(FooTest, BarReturnsZeroOnNull) {
        +  Foo foo;
        +  EXPECT_EQ(0, foo.Bar(NULL));
        +  // Uses Foo's private member Bar().
        +}
        +```
        +
        +Pay special attention when your class is defined in a namespace, as you should
        +define your test fixtures and tests in the same namespace if you want them to
        +be friends of your class. For example, if the code to be tested looks like:
        +
        +```
        +namespace my_namespace {
        +
        +class Foo {
        +  friend class FooTest;
        +  FRIEND_TEST(FooTest, Bar);
        +  FRIEND_TEST(FooTest, Baz);
        +  ...
        +  definition of the class Foo
        +  ...
        +};
        +
        +}  // namespace my_namespace
        +```
        +
        +Your test code should be something like:
        +
        +```
        +namespace my_namespace {
        +class FooTest : public ::testing::Test {
        + protected:
        +  ...
        +};
        +
        +TEST_F(FooTest, Bar) { ... }
        +TEST_F(FooTest, Baz) { ... }
        +
        +}  // namespace my_namespace
        +```
        +
        +# Catching Failures #
        +
        +If you are building a testing utility on top of Google Test, you'll
        +want to test your utility.  What framework would you use to test it?
        +Google Test, of course.
        +
        +The challenge is to verify that your testing utility reports failures
        +correctly.  In frameworks that report a failure by throwing an
        +exception, you could catch the exception and assert on it.  But Google
        +Test doesn't use exceptions, so how do we test that a piece of code
        +generates an expected failure?
        +
        +`"gtest/gtest-spi.h"` contains some constructs to do this.  After
        +#including this header, you can use
        +
        +| `EXPECT_FATAL_FAILURE(`_statement, substring_`);` |
        +|:--------------------------------------------------|
        +
        +to assert that _statement_ generates a fatal (e.g. `ASSERT_*`) failure
        +whose message contains the given _substring_, or use
        +
        +| `EXPECT_NONFATAL_FAILURE(`_statement, substring_`);` |
        +|:-----------------------------------------------------|
        +
        +if you are expecting a non-fatal (e.g. `EXPECT_*`) failure.
        +
        +For technical reasons, there are some caveats:
        +
        +  1. You cannot stream a failure message to either macro.
        +  1. _statement_ in `EXPECT_FATAL_FAILURE()` cannot reference local non-static variables or non-static members of `this` object.
        +  1. _statement_ in `EXPECT_FATAL_FAILURE()` cannot return a value.
        +
        +_Note:_ Google Test is designed with threads in mind.  Once the
        +synchronization primitives in `"gtest/internal/gtest-port.h"` have
        +been implemented, Google Test will become thread-safe, meaning that
        +you can then use assertions in multiple threads concurrently.  Before
        +
        +that, however, Google Test only supports single-threaded usage.  Once
        +thread-safe, `EXPECT_FATAL_FAILURE()` and `EXPECT_NONFATAL_FAILURE()`
        +will capture failures in the current thread only. If _statement_
        +creates new threads, failures in these threads will be ignored.  If
        +you want to capture failures from all threads instead, you should use
        +the following macros:
        +
        +| `EXPECT_FATAL_FAILURE_ON_ALL_THREADS(`_statement, substring_`);` |
        +|:-----------------------------------------------------------------|
        +| `EXPECT_NONFATAL_FAILURE_ON_ALL_THREADS(`_statement, substring_`);` |
        +
        +# Getting the Current Test's Name #
        +
        +Sometimes a function may need to know the name of the currently running test.
        +For example, you may be using the `SetUp()` method of your test fixture to set
        +the golden file name based on which test is running. The `::testing::TestInfo`
        +class has this information:
        +
        +```
        +namespace testing {
        +
        +class TestInfo {
        + public:
        +  // Returns the test case name and the test name, respectively.
        +  //
        +  // Do NOT delete or free the return value - it's managed by the
        +  // TestInfo class.
        +  const char* test_case_name() const;
        +  const char* name() const;
        +};
        +
        +}  // namespace testing
        +```
        +
        +
        +> To obtain a `TestInfo` object for the currently running test, call
        +`current_test_info()` on the `UnitTest` singleton object:
        +
        +```
        +// Gets information about the currently running test.
        +// Do NOT delete the returned object - it's managed by the UnitTest class.
        +const ::testing::TestInfo* const test_info =
        +  ::testing::UnitTest::GetInstance()->current_test_info();
        +printf("We are in test %s of test case %s.\n",
        +       test_info->name(), test_info->test_case_name());
        +```
        +
        +`current_test_info()` returns a null pointer if no test is running. In
        +particular, you cannot find the test case name in `TestCaseSetUp()`,
        +`TestCaseTearDown()` (where you know the test case name implicitly), or
        +functions called from them.
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +# Extending Google Test by Handling Test Events #
        +
        +Google Test provides an <b>event listener API</b> to let you receive
        +notifications about the progress of a test program and test
        +failures. The events you can listen to include the start and end of
        +the test program, a test case, or a test method, among others. You may
        +use this API to augment or replace the standard console output,
        +replace the XML output, or provide a completely different form of
        +output, such as a GUI or a database. You can also use test events as
        +checkpoints to implement a resource leak checker, for example.
        +
        +_Availability:_ Linux, Windows, Mac; since v1.4.0.
        +
        +## Defining Event Listeners ##
        +
        +To define a event listener, you subclass either
        +[testing::TestEventListener](http://code.google.com/p/googletest/source/browse/trunk/include/gtest/gtest.h#855)
        +or [testing::EmptyTestEventListener](http://code.google.com/p/googletest/source/browse/trunk/include/gtest/gtest.h#905).
        +The former is an (abstract) interface, where <i>each pure virtual method<br>
        +can be overridden to handle a test event</i> (For example, when a test
        +starts, the `OnTestStart()` method will be called.). The latter provides
        +an empty implementation of all methods in the interface, such that a
        +subclass only needs to override the methods it cares about.
        +
        +When an event is fired, its context is passed to the handler function
        +as an argument. The following argument types are used:
        +  * [UnitTest](http://code.google.com/p/googletest/source/browse/trunk/include/gtest/gtest.h#1007) reflects the state of the entire test program,
        +  * [TestCase](http://code.google.com/p/googletest/source/browse/trunk/include/gtest/gtest.h#689) has information about a test case, which can contain one or more tests,
        +  * [TestInfo](http://code.google.com/p/googletest/source/browse/trunk/include/gtest/gtest.h#599) contains the state of a test, and
        +  * [TestPartResult](http://code.google.com/p/googletest/source/browse/trunk/include/gtest/gtest-test-part.h#42) represents the result of a test assertion.
        +
        +An event handler function can examine the argument it receives to find
        +out interesting information about the event and the test program's
        +state.  Here's an example:
        +
        +```
        +  class MinimalistPrinter : public ::testing::EmptyTestEventListener {
        +    // Called before a test starts.
        +    virtual void OnTestStart(const ::testing::TestInfo& test_info) {
        +      printf("*** Test %s.%s starting.\n",
        +             test_info.test_case_name(), test_info.name());
        +    }
        +
        +    // Called after a failed assertion or a SUCCEED() invocation.
        +    virtual void OnTestPartResult(
        +        const ::testing::TestPartResult& test_part_result) {
        +      printf("%s in %s:%d\n%s\n",
        +             test_part_result.failed() ? "*** Failure" : "Success",
        +             test_part_result.file_name(),
        +             test_part_result.line_number(),
        +             test_part_result.summary());
        +    }
        +
        +    // Called after a test ends.
        +    virtual void OnTestEnd(const ::testing::TestInfo& test_info) {
        +      printf("*** Test %s.%s ending.\n",
        +             test_info.test_case_name(), test_info.name());
        +    }
        +  };
        +```
        +
        +## Using Event Listeners ##
        +
        +To use the event listener you have defined, add an instance of it to
        +the Google Test event listener list (represented by class
        +[TestEventListeners](http://code.google.com/p/googletest/source/browse/trunk/include/gtest/gtest.h#929)
        +- note the "s" at the end of the name) in your
        +`main()` function, before calling `RUN_ALL_TESTS()`:
        +```
        +int main(int argc, char** argv) {
        +  ::testing::InitGoogleTest(&argc, argv);
        +  // Gets hold of the event listener list.
        +  ::testing::TestEventListeners& listeners =
        +      ::testing::UnitTest::GetInstance()->listeners();
        +  // Adds a listener to the end.  Google Test takes the ownership.
        +  listeners.Append(new MinimalistPrinter);
        +  return RUN_ALL_TESTS();
        +}
        +```
        +
        +There's only one problem: the default test result printer is still in
        +effect, so its output will mingle with the output from your minimalist
        +printer. To suppress the default printer, just release it from the
        +event listener list and delete it. You can do so by adding one line:
        +```
        +  ...
        +  delete listeners.Release(listeners.default_result_printer());
        +  listeners.Append(new MinimalistPrinter);
        +  return RUN_ALL_TESTS();
        +```
        +
        +Now, sit back and enjoy a completely different output from your
        +tests. For more details, you can read this
        +[sample](http://code.google.com/p/googletest/source/browse/trunk/samples/sample9_unittest.cc).
        +
        +You may append more than one listener to the list. When an `On*Start()`
        +or `OnTestPartResult()` event is fired, the listeners will receive it in
        +the order they appear in the list (since new listeners are added to
        +the end of the list, the default text printer and the default XML
        +generator will receive the event first). An `On*End()` event will be
        +received by the listeners in the _reverse_ order. This allows output by
        +listeners added later to be framed by output from listeners added
        +earlier.
        +
        +## Generating Failures in Listeners ##
        +
        +You may use failure-raising macros (`EXPECT_*()`, `ASSERT_*()`,
        +`FAIL()`, etc) when processing an event. There are some restrictions:
        +
        +  1. You cannot generate any failure in `OnTestPartResult()` (otherwise it will cause `OnTestPartResult()` to be called recursively).
        +  1. A listener that handles `OnTestPartResult()` is not allowed to generate any failure.
        +
        +When you add listeners to the listener list, you should put listeners
        +that handle `OnTestPartResult()` _before_ listeners that can generate
        +failures. This ensures that failures generated by the latter are
        +attributed to the right test by the former.
        +
        +We have a sample of failure-raising listener
        +[here](http://code.google.com/p/googletest/source/browse/trunk/samples/sample10_unittest.cc).
        +
        +# Running Test Programs: Advanced Options #
        +
        +Google Test test programs are ordinary executables. Once built, you can run
        +them directly and affect their behavior via the following environment variables
        +and/or command line flags. For the flags to work, your programs must call
        +`::testing::InitGoogleTest()` before calling `RUN_ALL_TESTS()`.
        +
        +To see a list of supported flags and their usage, please run your test
        +program with the `--help` flag.  You can also use `-h`, `-?`, or `/?`
        +for short.  This feature is added in version 1.3.0.
        +
        +If an option is specified both by an environment variable and by a
        +flag, the latter takes precedence.  Most of the options can also be
        +set/read in code: to access the value of command line flag
        +`--gtest_foo`, write `::testing::GTEST_FLAG(foo)`.  A common pattern is
        +to set the value of a flag before calling `::testing::InitGoogleTest()`
        +to change the default value of the flag:
        +```
        +int main(int argc, char** argv) {
        +  // Disables elapsed time by default.
        +  ::testing::GTEST_FLAG(print_time) = false;
        +
        +  // This allows the user to override the flag on the command line.
        +  ::testing::InitGoogleTest(&argc, argv);
        +
        +  return RUN_ALL_TESTS();
        +}
        +```
        +
        +## Selecting Tests ##
        +
        +This section shows various options for choosing which tests to run.
        +
        +### Listing Test Names ###
        +
        +Sometimes it is necessary to list the available tests in a program before
        +running them so that a filter may be applied if needed. Including the flag
        +`--gtest_list_tests` overrides all other flags and lists tests in the following
        +format:
        +```
        +TestCase1.
        +  TestName1
        +  TestName2
        +TestCase2.
        +  TestName
        +```
        +
        +None of the tests listed are actually run if the flag is provided. There is no
        +corresponding environment variable for this flag.
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +### Running a Subset of the Tests ###
        +
        +By default, a Google Test program runs all tests the user has defined.
        +Sometimes, you want to run only a subset of the tests (e.g. for debugging or
        +quickly verifying a change). If you set the `GTEST_FILTER` environment variable
        +or the `--gtest_filter` flag to a filter string, Google Test will only run the
        +tests whose full names (in the form of `TestCaseName.TestName`) match the
        +filter.
        +
        +The format of a filter is a '`:`'-separated list of wildcard patterns (called
        +the positive patterns) optionally followed by a '`-`' and another
        +'`:`'-separated pattern list (called the negative patterns). A test matches the
        +filter if and only if it matches any of the positive patterns but does not
        +match any of the negative patterns.
        +
        +A pattern may contain `'*'` (matches any string) or `'?'` (matches any single
        +character). For convenience, the filter `'*-NegativePatterns'` can be also
        +written as `'-NegativePatterns'`.
        +
        +For example:
        +
        +  * `./foo_test` Has no flag, and thus runs all its tests.
        +  * `./foo_test --gtest_filter=*` Also runs everything, due to the single match-everything `*` value.
        +  * `./foo_test --gtest_filter=FooTest.*` Runs everything in test case `FooTest`.
        +  * `./foo_test --gtest_filter=*Null*:*Constructor*` Runs any test whose full name contains either `"Null"` or `"Constructor"`.
        +  * `./foo_test --gtest_filter=-*DeathTest.*` Runs all non-death tests.
        +  * `./foo_test --gtest_filter=FooTest.*-FooTest.Bar` Runs everything in test case `FooTest` except `FooTest.Bar`.
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +### Temporarily Disabling Tests ###
        +
        +If you have a broken test that you cannot fix right away, you can add the
        +`DISABLED_` prefix to its name. This will exclude it from execution. This is
        +better than commenting out the code or using `#if 0`, as disabled tests are
        +still compiled (and thus won't rot).
        +
        +If you need to disable all tests in a test case, you can either add `DISABLED_`
        +to the front of the name of each test, or alternatively add it to the front of
        +the test case name.
        +
        +For example, the following tests won't be run by Google Test, even though they
        +will still be compiled:
        +
        +```
        +// Tests that Foo does Abc.
        +TEST(FooTest, DISABLED_DoesAbc) { ... }
        +
        +class DISABLED_BarTest : public ::testing::Test { ... };
        +
        +// Tests that Bar does Xyz.
        +TEST_F(DISABLED_BarTest, DoesXyz) { ... }
        +```
        +
        +_Note:_ This feature should only be used for temporary pain-relief. You still
        +have to fix the disabled tests at a later date. As a reminder, Google Test will
        +print a banner warning you if a test program contains any disabled tests.
        +
        +_Tip:_ You can easily count the number of disabled tests you have
        +using `grep`. This number can be used as a metric for improving your
        +test quality.
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +### Temporarily Enabling Disabled Tests ###
        +
        +To include [disabled tests](#Temporarily_Disabling_Tests.md) in test
        +execution, just invoke the test program with the
        +`--gtest_also_run_disabled_tests` flag or set the
        +`GTEST_ALSO_RUN_DISABLED_TESTS` environment variable to a value other
        +than `0`.  You can combine this with the
        +[--gtest\_filter](#Running_a_Subset_of_the_Tests.md) flag to further select
        +which disabled tests to run.
        +
        +_Availability:_ Linux, Windows, Mac; since version 1.3.0.
        +
        +## Repeating the Tests ##
        +
        +Once in a while you'll run into a test whose result is hit-or-miss. Perhaps it
        +will fail only 1% of the time, making it rather hard to reproduce the bug under
        +a debugger. This can be a major source of frustration.
        +
        +The `--gtest_repeat` flag allows you to repeat all (or selected) test methods
        +in a program many times. Hopefully, a flaky test will eventually fail and give
        +you a chance to debug. Here's how to use it:
        +
        +| `$ foo_test --gtest_repeat=1000` | Repeat foo\_test 1000 times and don't stop at failures. |
        +|:---------------------------------|:--------------------------------------------------------|
        +| `$ foo_test --gtest_repeat=-1`   | A negative count means repeating forever.               |
        +| `$ foo_test --gtest_repeat=1000 --gtest_break_on_failure` | Repeat foo\_test 1000 times, stopping at the first failure. This is especially useful when running under a debugger: when the testfails, it will drop into the debugger and you can then inspect variables and stacks. |
        +| `$ foo_test --gtest_repeat=1000 --gtest_filter=FooBar` | Repeat the tests whose name matches the filter 1000 times. |
        +
        +If your test program contains global set-up/tear-down code registered
        +using `AddGlobalTestEnvironment()`, it will be repeated in each
        +iteration as well, as the flakiness may be in it. You can also specify
        +the repeat count by setting the `GTEST_REPEAT` environment variable.
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +## Shuffling the Tests ##
        +
        +You can specify the `--gtest_shuffle` flag (or set the `GTEST_SHUFFLE`
        +environment variable to `1`) to run the tests in a program in a random
        +order. This helps to reveal bad dependencies between tests.
        +
        +By default, Google Test uses a random seed calculated from the current
        +time. Therefore you'll get a different order every time. The console
        +output includes the random seed value, such that you can reproduce an
        +order-related test failure later. To specify the random seed
        +explicitly, use the `--gtest_random_seed=SEED` flag (or set the
        +`GTEST_RANDOM_SEED` environment variable), where `SEED` is an integer
        +between 0 and 99999. The seed value 0 is special: it tells Google Test
        +to do the default behavior of calculating the seed from the current
        +time.
        +
        +If you combine this with `--gtest_repeat=N`, Google Test will pick a
        +different random seed and re-shuffle the tests in each iteration.
        +
        +_Availability:_ Linux, Windows, Mac; since v1.4.0.
        +
        +## Controlling Test Output ##
        +
        +This section teaches how to tweak the way test results are reported.
        +
        +### Colored Terminal Output ###
        +
        +Google Test can use colors in its terminal output to make it easier to spot
        +the separation between tests, and whether tests passed.
        +
        +You can set the GTEST\_COLOR environment variable or set the `--gtest_color`
        +command line flag to `yes`, `no`, or `auto` (the default) to enable colors,
        +disable colors, or let Google Test decide. When the value is `auto`, Google
        +Test will use colors if and only if the output goes to a terminal and (on
        +non-Windows platforms) the `TERM` environment variable is set to `xterm` or
        +`xterm-color`.
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +### Suppressing the Elapsed Time ###
        +
        +By default, Google Test prints the time it takes to run each test.  To
        +suppress that, run the test program with the `--gtest_print_time=0`
        +command line flag.  Setting the `GTEST_PRINT_TIME` environment
        +variable to `0` has the same effect.
        +
        +_Availability:_ Linux, Windows, Mac.  (In Google Test 1.3.0 and lower,
        +the default behavior is that the elapsed time is **not** printed.)
        +
        +### Generating an XML Report ###
        +
        +Google Test can emit a detailed XML report to a file in addition to its normal
        +textual output. The report contains the duration of each test, and thus can
        +help you identify slow tests.
        +
        +To generate the XML report, set the `GTEST_OUTPUT` environment variable or the
        +`--gtest_output` flag to the string `"xml:_path_to_output_file_"`, which will
        +create the file at the given location. You can also just use the string
        +`"xml"`, in which case the output can be found in the `test_detail.xml` file in
        +the current directory.
        +
        +If you specify a directory (for example, `"xml:output/directory/"` on Linux or
        +`"xml:output\directory\"` on Windows), Google Test will create the XML file in
        +that directory, named after the test executable (e.g. `foo_test.xml` for test
        +program `foo_test` or `foo_test.exe`). If the file already exists (perhaps left
        +over from a previous run), Google Test will pick a different name (e.g.
        +`foo_test_1.xml`) to avoid overwriting it.
        +
        +The report uses the format described here.  It is based on the
        +`junitreport` Ant task and can be parsed by popular continuous build
        +systems like [Hudson](https://hudson.dev.java.net/). Since that format
        +was originally intended for Java, a little interpretation is required
        +to make it apply to Google Test tests, as shown here:
        +
        +```
        +<testsuites name="AllTests" ...>
        +  <testsuite name="test_case_name" ...>
        +    <testcase name="test_name" ...>
        +      <failure message="..."/>
        +      <failure message="..."/>
        +      <failure message="..."/>
        +    </testcase>
        +  </testsuite>
        +</testsuites>
        +```
        +
        +  * The root `<testsuites>` element corresponds to the entire test program.
        +  * `<testsuite>` elements correspond to Google Test test cases.
        +  * `<testcase>` elements correspond to Google Test test functions.
        +
        +For instance, the following program
        +
        +```
        +TEST(MathTest, Addition) { ... }
        +TEST(MathTest, Subtraction) { ... }
        +TEST(LogicTest, NonContradiction) { ... }
        +```
        +
        +could generate this report:
        +
        +```
        +<?xml version="1.0" encoding="UTF-8"?>
        +<testsuites tests="3" failures="1" errors="0" time="35" name="AllTests">
        +  <testsuite name="MathTest" tests="2" failures="1" errors="0" time="15">
        +    <testcase name="Addition" status="run" time="7" classname="">
        +      <failure message="Value of: add(1, 1)&#x0A; Actual: 3&#x0A;Expected: 2" type=""/>
        +      <failure message="Value of: add(1, -1)&#x0A; Actual: 1&#x0A;Expected: 0" type=""/>
        +    </testcase>
        +    <testcase name="Subtraction" status="run" time="5" classname="">
        +    </testcase>
        +  </testsuite>
        +  <testsuite name="LogicTest" tests="1" failures="0" errors="0" time="5">
        +    <testcase name="NonContradiction" status="run" time="5" classname="">
        +    </testcase>
        +  </testsuite>
        +</testsuites>
        +```
        +
        +Things to note:
        +
        +  * The `tests` attribute of a `<testsuites>` or `<testsuite>` element tells how many test functions the Google Test program or test case contains, while the `failures` attribute tells how many of them failed.
        +  * The `time` attribute expresses the duration of the test, test case, or entire test program in milliseconds.
        +  * Each `<failure>` element corresponds to a single failed Google Test assertion.
        +  * Some JUnit concepts don't apply to Google Test, yet we have to conform to the DTD. Therefore you'll see some dummy elements and attributes in the report. You can safely ignore these parts.
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +## Controlling How Failures Are Reported ##
        +
        +### Turning Assertion Failures into Break-Points ###
        +
        +When running test programs under a debugger, it's very convenient if the
        +debugger can catch an assertion failure and automatically drop into interactive
        +mode. Google Test's _break-on-failure_ mode supports this behavior.
        +
        +To enable it, set the `GTEST_BREAK_ON_FAILURE` environment variable to a value
        +other than `0` . Alternatively, you can use the `--gtest_break_on_failure`
        +command line flag.
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +### Disabling Catching Test-Thrown Exceptions ###
        +
        +Google Test can be used either with or without exceptions enabled.  If
        +a test throws a C++ exception or (on Windows) a structured exception
        +(SEH), by default Google Test catches it, reports it as a test
        +failure, and continues with the next test method.  This maximizes the
        +coverage of a test run.  Also, on Windows an uncaught exception will
        +cause a pop-up window, so catching the exceptions allows you to run
        +the tests automatically.
        +
        +When debugging the test failures, however, you may instead want the
        +exceptions to be handled by the debugger, such that you can examine
        +the call stack when an exception is thrown.  To achieve that, set the
        +`GTEST_CATCH_EXCEPTIONS` environment variable to `0`, or use the
        +`--gtest_catch_exceptions=0` flag when running the tests.
        +
        +**Availability**: Linux, Windows, Mac.
        +
        +### Letting Another Testing Framework Drive ###
        +
        +If you work on a project that has already been using another testing
        +framework and is not ready to completely switch to Google Test yet,
        +you can get much of Google Test's benefit by using its assertions in
        +your existing tests.  Just change your `main()` function to look
        +like:
        +
        +```
        +#include "gtest/gtest.h"
        +
        +int main(int argc, char** argv) {
        +  ::testing::GTEST_FLAG(throw_on_failure) = true;
        +  // Important: Google Test must be initialized.
        +  ::testing::InitGoogleTest(&argc, argv);
        +
        +  ... whatever your existing testing framework requires ...
        +}
        +```
        +
        +With that, you can use Google Test assertions in addition to the
        +native assertions your testing framework provides, for example:
        +
        +```
        +void TestFooDoesBar() {
        +  Foo foo;
        +  EXPECT_LE(foo.Bar(1), 100);     // A Google Test assertion.
        +  CPPUNIT_ASSERT(foo.IsEmpty());  // A native assertion.
        +}
        +```
        +
        +If a Google Test assertion fails, it will print an error message and
        +throw an exception, which will be treated as a failure by your host
        +testing framework.  If you compile your code with exceptions disabled,
        +a failed Google Test assertion will instead exit your program with a
        +non-zero code, which will also signal a test failure to your test
        +runner.
        +
        +If you don't write `::testing::GTEST_FLAG(throw_on_failure) = true;` in
        +your `main()`, you can alternatively enable this feature by specifying
        +the `--gtest_throw_on_failure` flag on the command-line or setting the
        +`GTEST_THROW_ON_FAILURE` environment variable to a non-zero value.
        +
        +_Availability:_ Linux, Windows, Mac; since v1.3.0.
        +
        +## Distributing Test Functions to Multiple Machines ##
        +
        +If you have more than one machine you can use to run a test program,
        +you might want to run the test functions in parallel and get the
        +result faster.  We call this technique _sharding_, where each machine
        +is called a _shard_.
        +
        +Google Test is compatible with test sharding.  To take advantage of
        +this feature, your test runner (not part of Google Test) needs to do
        +the following:
        +
        +  1. Allocate a number of machines (shards) to run the tests.
        +  1. On each shard, set the `GTEST_TOTAL_SHARDS` environment variable to the total number of shards.  It must be the same for all shards.
        +  1. On each shard, set the `GTEST_SHARD_INDEX` environment variable to the index of the shard.  Different shards must be assigned different indices, which must be in the range `[0, GTEST_TOTAL_SHARDS - 1]`.
        +  1. Run the same test program on all shards.  When Google Test sees the above two environment variables, it will select a subset of the test functions to run.  Across all shards, each test function in the program will be run exactly once.
        +  1. Wait for all shards to finish, then collect and report the results.
        +
        +Your project may have tests that were written without Google Test and
        +thus don't understand this protocol.  In order for your test runner to
        +figure out which test supports sharding, it can set the environment
        +variable `GTEST_SHARD_STATUS_FILE` to a non-existent file path.  If a
        +test program supports sharding, it will create this file to
        +acknowledge the fact (the actual contents of the file are not
        +important at this time; although we may stick some useful information
        +in it in the future.); otherwise it will not create it.
        +
        +Here's an example to make it clear.  Suppose you have a test program
        +`foo_test` that contains the following 5 test functions:
        +```
        +TEST(A, V)
        +TEST(A, W)
        +TEST(B, X)
        +TEST(B, Y)
        +TEST(B, Z)
        +```
        +and you have 3 machines at your disposal.  To run the test functions in
        +parallel, you would set `GTEST_TOTAL_SHARDS` to 3 on all machines, and
        +set `GTEST_SHARD_INDEX` to 0, 1, and 2 on the machines respectively.
        +Then you would run the same `foo_test` on each machine.
        +
        +Google Test reserves the right to change how the work is distributed
        +across the shards, but here's one possible scenario:
        +
        +  * Machine #0 runs `A.V` and `B.X`.
        +  * Machine #1 runs `A.W` and `B.Y`.
        +  * Machine #2 runs `B.Z`.
        +
        +_Availability:_ Linux, Windows, Mac; since version 1.3.0.
        +
        +# Fusing Google Test Source Files #
        +
        +Google Test's implementation consists of ~30 files (excluding its own
        +tests).  Sometimes you may want them to be packaged up in two files (a
        +`.h` and a `.cc`) instead, such that you can easily copy them to a new
        +machine and start hacking there.  For this we provide an experimental
        +Python script `fuse_gtest_files.py` in the `scripts/` directory (since release 1.3.0).
        +Assuming you have Python 2.4 or above installed on your machine, just
        +go to that directory and run
        +```
        +python fuse_gtest_files.py OUTPUT_DIR
        +```
        +
        +and you should see an `OUTPUT_DIR` directory being created with files
        +`gtest/gtest.h` and `gtest/gtest-all.cc` in it.  These files contain
        +everything you need to use Google Test.  Just copy them to anywhere
        +you want and you are ready to write tests.  You can use the
        +[scripts/test/Makefile](http://code.google.com/p/googletest/source/browse/trunk/scripts/test/Makefile)
        +file as an example on how to compile your tests against them.
        +
        +# Where to Go from Here #
        +
        +Congratulations! You've now learned more advanced Google Test tools and are
        +ready to tackle more complex testing tasks. If you want to dive even deeper, you
        +can read the [Frequently-Asked Questions](V1_6_FAQ.md).
        \ No newline at end of file
        diff --git a/lib/ann/fann/lib/googletest/docs/V1_6_Documentation.md b/lib/ann/fann/lib/googletest/docs/V1_6_Documentation.md
        new file mode 100644
        index 0000000..ca92466
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/docs/V1_6_Documentation.md
        @@ -0,0 +1,14 @@
        +This page lists all documentation wiki pages for Google Test **1.6**
        +-- **if you use a released version of Google Test, please read the
        +documentation for that specific version instead.**
        +
        +  * [Primer](V1_6_Primer.md) -- start here if you are new to Google Test.
        +  * [Samples](V1_6_Samples.md) -- learn from examples.
        +  * [AdvancedGuide](V1_6_AdvancedGuide.md) -- learn more about Google Test.
        +  * [XcodeGuide](V1_6_XcodeGuide.md) -- how to use Google Test in Xcode on Mac.
        +  * [Frequently-Asked Questions](V1_6_FAQ.md) -- check here before asking a question on the mailing list.
        +
        +To contribute code to Google Test, read:
        +
        +  * [DevGuide](DevGuide.md) -- read this _before_ writing your first patch.
        +  * [PumpManual](V1_6_PumpManual.md) -- how we generate some of Google Test's source files.
        \ No newline at end of file
        diff --git a/lib/ann/fann/lib/googletest/docs/V1_6_FAQ.md b/lib/ann/fann/lib/googletest/docs/V1_6_FAQ.md
        new file mode 100644
        index 0000000..61677a6
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/docs/V1_6_FAQ.md
        @@ -0,0 +1,1037 @@
        +
        +
        +If you cannot find the answer to your question here, and you have read
        +[Primer](V1_6_Primer.md) and [AdvancedGuide](V1_6_AdvancedGuide.md), send it to
        +googletestframework@googlegroups.com.
        +
        +## Why should I use Google Test instead of my favorite C++ testing framework? ##
        +
        +First, let us say clearly that we don't want to get into the debate of
        +which C++ testing framework is **the best**.  There exist many fine
        +frameworks for writing C++ tests, and we have tremendous respect for
        +the developers and users of them.  We don't think there is (or will
        +be) a single best framework - you have to pick the right tool for the
        +particular task you are tackling.
        +
        +We created Google Test because we couldn't find the right combination
        +of features and conveniences in an existing framework to satisfy _our_
        +needs.  The following is a list of things that _we_ like about Google
        +Test.  We don't claim them to be unique to Google Test - rather, the
        +combination of them makes Google Test the choice for us.  We hope this
        +list can help you decide whether it is for you too.
        +
        +  * Google Test is designed to be portable: it doesn't require exceptions or RTTI; it works around various bugs in various compilers and environments; etc.  As a result, it works on Linux, Mac OS X, Windows and several embedded operating systems.
        +  * Nonfatal assertions (`EXPECT_*`) have proven to be great time savers, as they allow a test to report multiple failures in a single edit-compile-test cycle.
        +  * It's easy to write assertions that generate informative messages: you just use the stream syntax to append any additional information, e.g. `ASSERT_EQ(5, Foo(i)) << " where i = " << i;`.  It doesn't require a new set of macros or special functions.
        +  * Google Test automatically detects your tests and doesn't require you to enumerate them in order to run them.
        +  * Death tests are pretty handy for ensuring that your asserts in production code are triggered by the right conditions.
        +  * `SCOPED_TRACE` helps you understand the context of an assertion failure when it comes from inside a sub-routine or loop.
        +  * You can decide which tests to run using name patterns.  This saves time when you want to quickly reproduce a test failure.
        +  * Google Test can generate XML test result reports that can be parsed by popular continuous build system like Hudson.
        +  * Simple things are easy in Google Test, while hard things are possible: in addition to advanced features like [global test environments](http://code.google.com/p/googletest/wiki/V1_6_AdvancedGuide#Global_Set-Up_and_Tear-Down) and tests parameterized by [values](http://code.google.com/p/googletest/wiki/V1_6_AdvancedGuide#Value_Parameterized_Tests) or [types](http://code.google.com/p/googletest/wiki/V1_6_AdvancedGuide#Typed_Tests), Google Test supports various ways for the user to extend the framework -- if Google Test doesn't do something out of the box, chances are that a user can implement the feature using Google Test's public API, without changing Google Test itself.  In particular, you can:
        +    * expand your testing vocabulary by defining [custom predicates](http://code.google.com/p/googletest/wiki/V1_6_AdvancedGuide#Predicate_Assertions_for_Better_Error_Messages),
        +    * teach Google Test how to [print your types](http://code.google.com/p/googletest/wiki/V1_6_AdvancedGuide#Teaching_Google_Test_How_to_Print_Your_Values),
        +    * define your own testing macros or utilities and verify them using Google Test's [Service Provider Interface](http://code.google.com/p/googletest/wiki/V1_6_AdvancedGuide#Catching_Failures), and
        +    * reflect on the test cases or change the test output format by intercepting the [test events](http://code.google.com/p/googletest/wiki/V1_6_AdvancedGuide#Extending_Google_Test_by_Handling_Test_Events).
        +
        +## I'm getting warnings when compiling Google Test.  Would you fix them? ##
        +
        +We strive to minimize compiler warnings Google Test generates.  Before releasing a new version, we test to make sure that it doesn't generate warnings when compiled using its CMake script on Windows, Linux, and Mac OS.
        +
        +Unfortunately, this doesn't mean you are guaranteed to see no warnings when compiling Google Test in your environment:
        +
        +  * You may be using a different compiler as we use, or a different version of the same compiler.  We cannot possibly test for all compilers.
        +  * You may be compiling on a different platform as we do.
        +  * Your project may be using different compiler flags as we do.
        +
        +It is not always possible to make Google Test warning-free for everyone.  Or, it may not be desirable if the warning is rarely enabled and fixing the violations makes the code more complex.
        +
        +If you see warnings when compiling Google Test, we suggest that you use the `-isystem` flag (assuming your are using GCC) to mark Google Test headers as system headers.  That'll suppress warnings from Google Test headers.
        +
        +## Why should not test case names and test names contain underscore? ##
        +
        +Underscore (`_`) is special, as C++ reserves the following to be used by
        +the compiler and the standard library:
        +
        +  1. any identifier that starts with an `_` followed by an upper-case letter, and
        +  1. any identifier that containers two consecutive underscores (i.e. `__`) _anywhere_ in its name.
        +
        +User code is _prohibited_ from using such identifiers.
        +
        +Now let's look at what this means for `TEST` and `TEST_F`.
        +
        +Currently `TEST(TestCaseName, TestName)` generates a class named
        +`TestCaseName_TestName_Test`.  What happens if `TestCaseName` or `TestName`
        +contains `_`?
        +
        +  1. If `TestCaseName` starts with an `_` followed by an upper-case letter (say, `_Foo`), we end up with `_Foo_TestName_Test`, which is reserved and thus invalid.
        +  1. If `TestCaseName` ends with an `_` (say, `Foo_`), we get `Foo__TestName_Test`, which is invalid.
        +  1. If `TestName` starts with an `_` (say, `_Bar`), we get `TestCaseName__Bar_Test`, which is invalid.
        +  1. If `TestName` ends with an `_` (say, `Bar_`), we get `TestCaseName_Bar__Test`, which is invalid.
        +
        +So clearly `TestCaseName` and `TestName` cannot start or end with `_`
        +(Actually, `TestCaseName` can start with `_` -- as long as the `_` isn't
        +followed by an upper-case letter.  But that's getting complicated.  So
        +for simplicity we just say that it cannot start with `_`.).
        +
        +It may seem fine for `TestCaseName` and `TestName` to contain `_` in the
        +middle.  However, consider this:
        +```
        +TEST(Time, Flies_Like_An_Arrow) { ... }
        +TEST(Time_Flies, Like_An_Arrow) { ... }
        +```
        +
        +Now, the two `TEST`s will both generate the same class
        +(`Time_Files_Like_An_Arrow_Test`).  That's not good.
        +
        +So for simplicity, we just ask the users to avoid `_` in `TestCaseName`
        +and `TestName`.  The rule is more constraining than necessary, but it's
        +simple and easy to remember.  It also gives Google Test some wiggle
        +room in case its implementation needs to change in the future.
        +
        +If you violate the rule, there may not be immediately consequences,
        +but your test may (just may) break with a new compiler (or a new
        +version of the compiler you are using) or with a new version of Google
        +Test.  Therefore it's best to follow the rule.
        +
        +## Why is it not recommended to install a pre-compiled copy of Google Test (for example, into /usr/local)? ##
        +
        +In the early days, we said that you could install
        +compiled Google Test libraries on `*`nix systems using `make install`.
        +Then every user of your machine can write tests without
        +recompiling Google Test.
        +
        +This seemed like a good idea, but it has a
        +got-cha: every user needs to compile his tests using the _same_ compiler
        +flags used to compile the installed Google Test libraries; otherwise
        +he may run into undefined behaviors (i.e. the tests can behave
        +strangely and may even crash for no obvious reasons).
        +
        +Why?  Because C++ has this thing called the One-Definition Rule: if
        +two C++ source files contain different definitions of the same
        +class/function/variable, and you link them together, you violate the
        +rule.  The linker may or may not catch the error (in many cases it's
        +not required by the C++ standard to catch the violation).  If it
        +doesn't, you get strange run-time behaviors that are unexpected and
        +hard to debug.
        +
        +If you compile Google Test and your test code using different compiler
        +flags, they may see different definitions of the same
        +class/function/variable (e.g. due to the use of `#if` in Google Test).
        +Therefore, for your sanity, we recommend to avoid installing pre-compiled
        +Google Test libraries.  Instead, each project should compile
        +Google Test itself such that it can be sure that the same flags are
        +used for both Google Test and the tests.
        +
        +## How do I generate 64-bit binaries on Windows (using Visual Studio 2008)? ##
        +
        +(Answered by Trevor Robinson)
        +
        +Load the supplied Visual Studio solution file, either `msvc\gtest-md.sln` or
        +`msvc\gtest.sln`. Go through the migration wizard to migrate the
        +solution and project files to Visual Studio 2008. Select
        +`Configuration Manager...` from the `Build` menu. Select `<New...>` from
        +the `Active solution platform` dropdown.  Select `x64` from the new
        +platform dropdown, leave `Copy settings from` set to `Win32` and
        +`Create new project platforms` checked, then click `OK`. You now have
        +`Win32` and `x64` platform configurations, selectable from the
        +`Standard` toolbar, which allow you to toggle between building 32-bit or
        +64-bit binaries (or both at once using Batch Build).
        +
        +In order to prevent build output files from overwriting one another,
        +you'll need to change the `Intermediate Directory` settings for the
        +newly created platform configuration across all the projects. To do
        +this, multi-select (e.g. using shift-click) all projects (but not the
        +solution) in the `Solution Explorer`. Right-click one of them and
        +select `Properties`. In the left pane, select `Configuration Properties`,
        +and from the `Configuration` dropdown, select `All Configurations`.
        +Make sure the selected platform is `x64`. For the
        +`Intermediate Directory` setting, change the value from
        +`$(PlatformName)\$(ConfigurationName)` to
        +`$(OutDir)\$(ProjectName)`. Click `OK` and then build the
        +solution. When the build is complete, the 64-bit binaries will be in
        +the `msvc\x64\Debug` directory.
        +
        +## Can I use Google Test on MinGW? ##
        +
        +We haven't tested this ourselves, but Per Abrahamsen reported that he
        +was able to compile and install Google Test successfully when using
        +MinGW from Cygwin.  You'll need to configure it with:
        +
        +`PATH/TO/configure CC="gcc -mno-cygwin" CXX="g++ -mno-cygwin"`
        +
        +You should be able to replace the `-mno-cygwin` option with direct links
        +to the real MinGW binaries, but we haven't tried that.
        +
        +Caveats:
        +
        +  * There are many warnings when compiling.
        +  * `make check` will produce some errors as not all tests for Google Test itself are compatible with MinGW.
        +
        +We also have reports on successful cross compilation of Google Test
        +MinGW binaries on Linux using
        +[these instructions](http://wiki.wxwidgets.org/Cross-Compiling_Under_Linux#Cross-compiling_under_Linux_for_MS_Windows)
        +on the WxWidgets site.
        +
        +Please contact `googletestframework@googlegroups.com` if you are
        +interested in improving the support for MinGW.
        +
        +## Why does Google Test support EXPECT\_EQ(NULL, ptr) and ASSERT\_EQ(NULL, ptr) but not EXPECT\_NE(NULL, ptr) and ASSERT\_NE(NULL, ptr)? ##
        +
        +Due to some peculiarity of C++, it requires some non-trivial template
        +meta programming tricks to support using `NULL` as an argument of the
        +`EXPECT_XX()` and `ASSERT_XX()` macros. Therefore we only do it where
        +it's most needed (otherwise we make the implementation of Google Test
        +harder to maintain and more error-prone than necessary).
        +
        +The `EXPECT_EQ()` macro takes the _expected_ value as its first
        +argument and the _actual_ value as the second. It's reasonable that
        +someone wants to write `EXPECT_EQ(NULL, some_expression)`, and this
        +indeed was requested several times. Therefore we implemented it.
        +
        +The need for `EXPECT_NE(NULL, ptr)` isn't nearly as strong. When the
        +assertion fails, you already know that `ptr` must be `NULL`, so it
        +doesn't add any information to print ptr in this case. That means
        +`EXPECT_TRUE(ptr ! NULL)` works just as well.
        +
        +If we were to support `EXPECT_NE(NULL, ptr)`, for consistency we'll
        +have to support `EXPECT_NE(ptr, NULL)` as well, as unlike `EXPECT_EQ`,
        +we don't have a convention on the order of the two arguments for
        +`EXPECT_NE`. This means using the template meta programming tricks
        +twice in the implementation, making it even harder to understand and
        +maintain. We believe the benefit doesn't justify the cost.
        +
        +Finally, with the growth of Google Mock's [matcher](http://code.google.com/p/googlemock/wiki/CookBook#Using_Matchers_in_Google_Test_Assertions) library, we are
        +encouraging people to use the unified `EXPECT_THAT(value, matcher)`
        +syntax more often in tests. One significant advantage of the matcher
        +approach is that matchers can be easily combined to form new matchers,
        +while the `EXPECT_NE`, etc, macros cannot be easily
        +combined. Therefore we want to invest more in the matchers than in the
        +`EXPECT_XX()` macros.
        +
        +## Does Google Test support running tests in parallel? ##
        +
        +Test runners tend to be tightly coupled with the build/test
        +environment, and Google Test doesn't try to solve the problem of
        +running tests in parallel.  Instead, we tried to make Google Test work
        +nicely with test runners.  For example, Google Test's XML report
        +contains the time spent on each test, and its `gtest_list_tests` and
        +`gtest_filter` flags can be used for splitting the execution of test
        +methods into multiple processes.  These functionalities can help the
        +test runner run the tests in parallel.
        +
        +## Why don't Google Test run the tests in different threads to speed things up? ##
        +
        +It's difficult to write thread-safe code.  Most tests are not written
        +with thread-safety in mind, and thus may not work correctly in a
        +multi-threaded setting.
        +
        +If you think about it, it's already hard to make your code work when
        +you know what other threads are doing.  It's much harder, and
        +sometimes even impossible, to make your code work when you don't know
        +what other threads are doing (remember that test methods can be added,
        +deleted, or modified after your test was written).  If you want to run
        +the tests in parallel, you'd better run them in different processes.
        +
        +## Why aren't Google Test assertions implemented using exceptions? ##
        +
        +Our original motivation was to be able to use Google Test in projects
        +that disable exceptions.  Later we realized some additional benefits
        +of this approach:
        +
        +  1. Throwing in a destructor is undefined behavior in C++.  Not using exceptions means Google Test's assertions are safe to use in destructors.
        +  1. The `EXPECT_*` family of macros will continue even after a failure, allowing multiple failures in a `TEST` to be reported in a single run. This is a popular feature, as in C++ the edit-compile-test cycle is usually quite long and being able to fixing more than one thing at a time is a blessing.
        +  1. If assertions are implemented using exceptions, a test may falsely ignore a failure if it's caught by user code:
        +```
        +try { ... ASSERT_TRUE(...) ... }
        +catch (...) { ... }
        +```
        +The above code will pass even if the `ASSERT_TRUE` throws.  While it's unlikely for someone to write this in a test, it's possible to run into this pattern when you write assertions in callbacks that are called by the code under test.
        +
        +The downside of not using exceptions is that `ASSERT_*` (implemented
        +using `return`) will only abort the current function, not the current
        +`TEST`.
        +
        +## Why do we use two different macros for tests with and without fixtures? ##
        +
        +Unfortunately, C++'s macro system doesn't allow us to use the same
        +macro for both cases.  One possibility is to provide only one macro
        +for tests with fixtures, and require the user to define an empty
        +fixture sometimes:
        +
        +```
        +class FooTest : public ::testing::Test {};
        +
        +TEST_F(FooTest, DoesThis) { ... }
        +```
        +or
        +```
        +typedef ::testing::Test FooTest;
        +
        +TEST_F(FooTest, DoesThat) { ... }
        +```
        +
        +Yet, many people think this is one line too many. :-) Our goal was to
        +make it really easy to write tests, so we tried to make simple tests
        +trivial to create.  That means using a separate macro for such tests.
        +
        +We think neither approach is ideal, yet either of them is reasonable.
        +In the end, it probably doesn't matter much either way.
        +
        +## Why don't we use structs as test fixtures? ##
        +
        +We like to use structs only when representing passive data.  This
        +distinction between structs and classes is good for documenting the
        +intent of the code's author.  Since test fixtures have logic like
        +`SetUp()` and `TearDown()`, they are better defined as classes.
        +
        +## Why are death tests implemented as assertions instead of using a test runner? ##
        +
        +Our goal was to make death tests as convenient for a user as C++
        +possibly allows.  In particular:
        +
        +  * The runner-style requires to split the information into two pieces: the definition of the death test itself, and the specification for the runner on how to run the death test and what to expect.  The death test would be written in C++, while the runner spec may or may not be.  A user needs to carefully keep the two in sync. `ASSERT_DEATH(statement, expected_message)` specifies all necessary information in one place, in one language, without boilerplate code. It is very declarative.
        +  * `ASSERT_DEATH` has a similar syntax and error-reporting semantics as other Google Test assertions, and thus is easy to learn.
        +  * `ASSERT_DEATH` can be mixed with other assertions and other logic at your will.  You are not limited to one death test per test method. For example, you can write something like:
        +```
        +    if (FooCondition()) {
        +      ASSERT_DEATH(Bar(), "blah");
        +    } else {
        +      ASSERT_EQ(5, Bar());
        +    }
        +```
        +If you prefer one death test per test method, you can write your tests in that style too, but we don't want to impose that on the users.  The fewer artificial limitations the better.
        +  * `ASSERT_DEATH` can reference local variables in the current function, and you can decide how many death tests you want based on run-time information.  For example,
        +```
        +    const int count = GetCount();  // Only known at run time.
        +    for (int i = 1; i <= count; i++) {
        +      ASSERT_DEATH({
        +        double* buffer = new double[i];
        +        ... initializes buffer ...
        +        Foo(buffer, i)
        +      }, "blah blah");
        +    }
        +```
        +The runner-based approach tends to be more static and less flexible, or requires more user effort to get this kind of flexibility.
        +
        +Another interesting thing about `ASSERT_DEATH` is that it calls `fork()`
        +to create a child process to run the death test.  This is lightening
        +fast, as `fork()` uses copy-on-write pages and incurs almost zero
        +overhead, and the child process starts from the user-supplied
        +statement directly, skipping all global and local initialization and
        +any code leading to the given statement.  If you launch the child
        +process from scratch, it can take seconds just to load everything and
        +start running if the test links to many libraries dynamically.
        +
        +## My death test modifies some state, but the change seems lost after the death test finishes. Why? ##
        +
        +Death tests (`EXPECT_DEATH`, etc) are executed in a sub-process s.t. the
        +expected crash won't kill the test program (i.e. the parent process). As a
        +result, any in-memory side effects they incur are observable in their
        +respective sub-processes, but not in the parent process. You can think of them
        +as running in a parallel universe, more or less.
        +
        +## The compiler complains about "undefined references" to some static const member variables, but I did define them in the class body. What's wrong? ##
        +
        +If your class has a static data member:
        +
        +```
        +// foo.h
        +class Foo {
        +  ...
        +  static const int kBar = 100;
        +};
        +```
        +
        +You also need to define it _outside_ of the class body in `foo.cc`:
        +
        +```
        +const int Foo::kBar;  // No initializer here.
        +```
        +
        +Otherwise your code is **invalid C++**, and may break in unexpected ways. In
        +particular, using it in Google Test comparison assertions (`EXPECT_EQ`, etc)
        +will generate an "undefined reference" linker error.
        +
        +## I have an interface that has several implementations. Can I write a set of tests once and repeat them over all the implementations? ##
        +
        +Google Test doesn't yet have good support for this kind of tests, or
        +data-driven tests in general. We hope to be able to make improvements in this
        +area soon.
        +
        +## Can I derive a test fixture from another? ##
        +
        +Yes.
        +
        +Each test fixture has a corresponding and same named test case. This means only
        +one test case can use a particular fixture. Sometimes, however, multiple test
        +cases may want to use the same or slightly different fixtures. For example, you
        +may want to make sure that all of a GUI library's test cases don't leak
        +important system resources like fonts and brushes.
        +
        +In Google Test, you share a fixture among test cases by putting the shared
        +logic in a base test fixture, then deriving from that base a separate fixture
        +for each test case that wants to use this common logic. You then use `TEST_F()`
        +to write tests using each derived fixture.
        +
        +Typically, your code looks like this:
        +
        +```
        +// Defines a base test fixture.
        +class BaseTest : public ::testing::Test {
        +  protected:
        +   ...
        +};
        +
        +// Derives a fixture FooTest from BaseTest.
        +class FooTest : public BaseTest {
        +  protected:
        +    virtual void SetUp() {
        +      BaseTest::SetUp();  // Sets up the base fixture first.
        +      ... additional set-up work ...
        +    }
        +    virtual void TearDown() {
        +      ... clean-up work for FooTest ...
        +      BaseTest::TearDown();  // Remember to tear down the base fixture
        +                             // after cleaning up FooTest!
        +    }
        +    ... functions and variables for FooTest ...
        +};
        +
        +// Tests that use the fixture FooTest.
        +TEST_F(FooTest, Bar) { ... }
        +TEST_F(FooTest, Baz) { ... }
        +
        +... additional fixtures derived from BaseTest ...
        +```
        +
        +If necessary, you can continue to derive test fixtures from a derived fixture.
        +Google Test has no limit on how deep the hierarchy can be.
        +
        +For a complete example using derived test fixtures, see
        +[sample5](http://code.google.com/p/googletest/source/browse/trunk/samples/sample5_unittest.cc).
        +
        +## My compiler complains "void value not ignored as it ought to be." What does this mean? ##
        +
        +You're probably using an `ASSERT_*()` in a function that doesn't return `void`.
        +`ASSERT_*()` can only be used in `void` functions.
        +
        +## My death test hangs (or seg-faults). How do I fix it? ##
        +
        +In Google Test, death tests are run in a child process and the way they work is
        +delicate. To write death tests you really need to understand how they work.
        +Please make sure you have read this.
        +
        +In particular, death tests don't like having multiple threads in the parent
        +process. So the first thing you can try is to eliminate creating threads
        +outside of `EXPECT_DEATH()`.
        +
        +Sometimes this is impossible as some library you must use may be creating
        +threads before `main()` is even reached. In this case, you can try to minimize
        +the chance of conflicts by either moving as many activities as possible inside
        +`EXPECT_DEATH()` (in the extreme case, you want to move everything inside), or
        +leaving as few things as possible in it. Also, you can try to set the death
        +test style to `"threadsafe"`, which is safer but slower, and see if it helps.
        +
        +If you go with thread-safe death tests, remember that they rerun the test
        +program from the beginning in the child process. Therefore make sure your
        +program can run side-by-side with itself and is deterministic.
        +
        +In the end, this boils down to good concurrent programming. You have to make
        +sure that there is no race conditions or dead locks in your program. No silver
        +bullet - sorry!
        +
        +## Should I use the constructor/destructor of the test fixture or the set-up/tear-down function? ##
        +
        +The first thing to remember is that Google Test does not reuse the
        +same test fixture object across multiple tests. For each `TEST_F`,
        +Google Test will create a fresh test fixture object, _immediately_
        +call `SetUp()`, run the test, call `TearDown()`, and then
        +_immediately_ delete the test fixture object. Therefore, there is no
        +need to write a `SetUp()` or `TearDown()` function if the constructor
        +or destructor already does the job.
        +
        +You may still want to use `SetUp()/TearDown()` in the following cases:
        +  * If the tear-down operation could throw an exception, you must use `TearDown()` as opposed to the destructor, as throwing in a destructor leads to undefined behavior and usually will kill your program right away. Note that many standard libraries (like STL) may throw when exceptions are enabled in the compiler. Therefore you should prefer `TearDown()` if you want to write portable tests that work with or without exceptions.
        +  * The Google Test team is considering making the assertion macros throw on platforms where exceptions are enabled (e.g. Windows, Mac OS, and Linux client-side), which will eliminate the need for the user to propagate failures from a subroutine to its caller. Therefore, you shouldn't use Google Test assertions in a destructor if your code could run on such a platform.
        +  * In a constructor or destructor, you cannot make a virtual function call on this object. (You can call a method declared as virtual, but it will be statically bound.) Therefore, if you need to call a method that will be overriden in a derived class, you have to use `SetUp()/TearDown()`.
        +
        +## The compiler complains "no matching function to call" when I use ASSERT\_PREDn. How do I fix it? ##
        +
        +If the predicate function you use in `ASSERT_PRED*` or `EXPECT_PRED*` is
        +overloaded or a template, the compiler will have trouble figuring out which
        +overloaded version it should use. `ASSERT_PRED_FORMAT*` and
        +`EXPECT_PRED_FORMAT*` don't have this problem.
        +
        +If you see this error, you might want to switch to
        +`(ASSERT|EXPECT)_PRED_FORMAT*`, which will also give you a better failure
        +message. If, however, that is not an option, you can resolve the problem by
        +explicitly telling the compiler which version to pick.
        +
        +For example, suppose you have
        +
        +```
        +bool IsPositive(int n) {
        +  return n > 0;
        +}
        +bool IsPositive(double x) {
        +  return x > 0;
        +}
        +```
        +
        +you will get a compiler error if you write
        +
        +```
        +EXPECT_PRED1(IsPositive, 5);
        +```
        +
        +However, this will work:
        +
        +```
        +EXPECT_PRED1(*static_cast<bool (*)(int)>*(IsPositive), 5);
        +```
        +
        +(The stuff inside the angled brackets for the `static_cast` operator is the
        +type of the function pointer for the `int`-version of `IsPositive()`.)
        +
        +As another example, when you have a template function
        +
        +```
        +template <typename T>
        +bool IsNegative(T x) {
        +  return x < 0;
        +}
        +```
        +
        +you can use it in a predicate assertion like this:
        +
        +```
        +ASSERT_PRED1(IsNegative*<int>*, -5);
        +```
        +
        +Things are more interesting if your template has more than one parameters. The
        +following won't compile:
        +
        +```
        +ASSERT_PRED2(*GreaterThan<int, int>*, 5, 0);
        +```
        +
        +
        +as the C++ pre-processor thinks you are giving `ASSERT_PRED2` 4 arguments,
        +which is one more than expected. The workaround is to wrap the predicate
        +function in parentheses:
        +
        +```
        +ASSERT_PRED2(*(GreaterThan<int, int>)*, 5, 0);
        +```
        +
        +
        +## My compiler complains about "ignoring return value" when I call RUN\_ALL\_TESTS(). Why? ##
        +
        +Some people had been ignoring the return value of `RUN_ALL_TESTS()`. That is,
        +instead of
        +
        +```
        +return RUN_ALL_TESTS();
        +```
        +
        +they write
        +
        +```
        +RUN_ALL_TESTS();
        +```
        +
        +This is wrong and dangerous. A test runner needs to see the return value of
        +`RUN_ALL_TESTS()` in order to determine if a test has passed. If your `main()`
        +function ignores it, your test will be considered successful even if it has a
        +Google Test assertion failure. Very bad.
        +
        +To help the users avoid this dangerous bug, the implementation of
        +`RUN_ALL_TESTS()` causes gcc to raise this warning, when the return value is
        +ignored. If you see this warning, the fix is simple: just make sure its value
        +is used as the return value of `main()`.
        +
        +## My compiler complains that a constructor (or destructor) cannot return a value. What's going on? ##
        +
        +Due to a peculiarity of C++, in order to support the syntax for streaming
        +messages to an `ASSERT_*`, e.g.
        +
        +```
        +ASSERT_EQ(1, Foo()) << "blah blah" << foo;
        +```
        +
        +we had to give up using `ASSERT*` and `FAIL*` (but not `EXPECT*` and
        +`ADD_FAILURE*`) in constructors and destructors. The workaround is to move the
        +content of your constructor/destructor to a private void member function, or
        +switch to `EXPECT_*()` if that works. This section in the user's guide explains
        +it.
        +
        +## My set-up function is not called. Why? ##
        +
        +C++ is case-sensitive. It should be spelled as `SetUp()`.  Did you
        +spell it as `Setup()`?
        +
        +Similarly, sometimes people spell `SetUpTestCase()` as `SetupTestCase()` and
        +wonder why it's never called.
        +
        +## How do I jump to the line of a failure in Emacs directly? ##
        +
        +Google Test's failure message format is understood by Emacs and many other
        +IDEs, like acme and XCode. If a Google Test message is in a compilation buffer
        +in Emacs, then it's clickable. You can now hit `enter` on a message to jump to
        +the corresponding source code, or use `C-x `` to jump to the next failure.
        +
        +## I have several test cases which share the same test fixture logic, do I have to define a new test fixture class for each of them? This seems pretty tedious. ##
        +
        +You don't have to. Instead of
        +
        +```
        +class FooTest : public BaseTest {};
        +
        +TEST_F(FooTest, Abc) { ... }
        +TEST_F(FooTest, Def) { ... }
        +
        +class BarTest : public BaseTest {};
        +
        +TEST_F(BarTest, Abc) { ... }
        +TEST_F(BarTest, Def) { ... }
        +```
        +
        +you can simply `typedef` the test fixtures:
        +```
        +typedef BaseTest FooTest;
        +
        +TEST_F(FooTest, Abc) { ... }
        +TEST_F(FooTest, Def) { ... }
        +
        +typedef BaseTest BarTest;
        +
        +TEST_F(BarTest, Abc) { ... }
        +TEST_F(BarTest, Def) { ... }
        +```
        +
        +## The Google Test output is buried in a whole bunch of log messages. What do I do? ##
        +
        +The Google Test output is meant to be a concise and human-friendly report. If
        +your test generates textual output itself, it will mix with the Google Test
        +output, making it hard to read. However, there is an easy solution to this
        +problem.
        +
        +Since most log messages go to stderr, we decided to let Google Test output go
        +to stdout. This way, you can easily separate the two using redirection. For
        +example:
        +```
        +./my_test > googletest_output.txt
        +```
        +
        +## Why should I prefer test fixtures over global variables? ##
        +
        +There are several good reasons:
        +  1. It's likely your test needs to change the states of its global variables. This makes it difficult to keep side effects from escaping one test and contaminating others, making debugging difficult. By using fixtures, each test has a fresh set of variables that's different (but with the same names). Thus, tests are kept independent of each other.
        +  1. Global variables pollute the global namespace.
        +  1. Test fixtures can be reused via subclassing, which cannot be done easily with global variables. This is useful if many test cases have something in common.
        +
        +## How do I test private class members without writing FRIEND\_TEST()s? ##
        +
        +You should try to write testable code, which means classes should be easily
        +tested from their public interface. One way to achieve this is the Pimpl idiom:
        +you move all private members of a class into a helper class, and make all
        +members of the helper class public.
        +
        +You have several other options that don't require using `FRIEND_TEST`:
        +  * Write the tests as members of the fixture class:
        +```
        +class Foo {
        +  friend class FooTest;
        +  ...
        +};
        +
        +class FooTest : public ::testing::Test {
        + protected:
        +  ...
        +  void Test1() {...} // This accesses private members of class Foo.
        +  void Test2() {...} // So does this one.
        +};
        +
        +TEST_F(FooTest, Test1) {
        +  Test1();
        +}
        +
        +TEST_F(FooTest, Test2) {
        +  Test2();
        +}
        +```
        +  * In the fixture class, write accessors for the tested class' private members, then use the accessors in your tests:
        +```
        +class Foo {
        +  friend class FooTest;
        +  ...
        +};
        +
        +class FooTest : public ::testing::Test {
        + protected:
        +  ...
        +  T1 get_private_member1(Foo* obj) {
        +    return obj->private_member1_;
        +  }
        +};
        +
        +TEST_F(FooTest, Test1) {
        +  ...
        +  get_private_member1(x)
        +  ...
        +}
        +```
        +  * If the methods are declared **protected**, you can change their access level in a test-only subclass:
        +```
        +class YourClass {
        +  ...
        + protected: // protected access for testability.
        +  int DoSomethingReturningInt();
        +  ...
        +};
        +
        +// in the your_class_test.cc file:
        +class TestableYourClass : public YourClass {
        +  ...
        + public: using YourClass::DoSomethingReturningInt; // changes access rights
        +  ...
        +};
        +
        +TEST_F(YourClassTest, DoSomethingTest) {
        +  TestableYourClass obj;
        +  assertEquals(expected_value, obj.DoSomethingReturningInt());
        +}
        +```
        +
        +## How do I test private class static members without writing FRIEND\_TEST()s? ##
        +
        +We find private static methods clutter the header file.  They are
        +implementation details and ideally should be kept out of a .h. So often I make
        +them free functions instead.
        +
        +Instead of:
        +```
        +// foo.h
        +class Foo {
        +  ...
        + private:
        +  static bool Func(int n);
        +};
        +
        +// foo.cc
        +bool Foo::Func(int n) { ... }
        +
        +// foo_test.cc
        +EXPECT_TRUE(Foo::Func(12345));
        +```
        +
        +You probably should better write:
        +```
        +// foo.h
        +class Foo {
        +  ...
        +};
        +
        +// foo.cc
        +namespace internal {
        +  bool Func(int n) { ... }
        +}
        +
        +// foo_test.cc
        +namespace internal {
        +  bool Func(int n);
        +}
        +
        +EXPECT_TRUE(internal::Func(12345));
        +```
        +
        +## I would like to run a test several times with different parameters. Do I need to write several similar copies of it? ##
        +
        +No. You can use a feature called [value-parameterized tests](V1_6_AdvancedGuide#Value_Parameterized_Tests.md) which
        +lets you repeat your tests with different parameters, without defining it more than once.
        +
        +## How do I test a file that defines main()? ##
        +
        +To test a `foo.cc` file, you need to compile and link it into your unit test
        +program. However, when the file contains a definition for the `main()`
        +function, it will clash with the `main()` of your unit test, and will result in
        +a build error.
        +
        +The right solution is to split it into three files:
        +  1. `foo.h` which contains the declarations,
        +  1. `foo.cc` which contains the definitions except `main()`, and
        +  1. `foo_main.cc` which contains nothing but the definition of `main()`.
        +
        +Then `foo.cc` can be easily tested.
        +
        +If you are adding tests to an existing file and don't want an intrusive change
        +like this, there is a hack: just include the entire `foo.cc` file in your unit
        +test. For example:
        +```
        +// File foo_unittest.cc
        +
        +// The headers section
        +...
        +
        +// Renames main() in foo.cc to make room for the unit test main()
        +#define main FooMain
        +
        +#include "a/b/foo.cc"
        +
        +// The tests start here.
        +...
        +```
        +
        +
        +However, please remember this is a hack and should only be used as the last
        +resort.
        +
        +## What can the statement argument in ASSERT\_DEATH() be? ##
        +
        +`ASSERT_DEATH(_statement_, _regex_)` (or any death assertion macro) can be used
        +wherever `_statement_` is valid. So basically `_statement_` can be any C++
        +statement that makes sense in the current context. In particular, it can
        +reference global and/or local variables, and can be:
        +  * a simple function call (often the case),
        +  * a complex expression, or
        +  * a compound statement.
        +
        +> Some examples are shown here:
        +```
        +// A death test can be a simple function call.
        +TEST(MyDeathTest, FunctionCall) {
        +  ASSERT_DEATH(Xyz(5), "Xyz failed");
        +}
        +
        +// Or a complex expression that references variables and functions.
        +TEST(MyDeathTest, ComplexExpression) {
        +  const bool c = Condition();
        +  ASSERT_DEATH((c ? Func1(0) : object2.Method("test")),
        +               "(Func1|Method) failed");
        +}
        +
        +// Death assertions can be used any where in a function. In
        +// particular, they can be inside a loop.
        +TEST(MyDeathTest, InsideLoop) {
        +  // Verifies that Foo(0), Foo(1), ..., and Foo(4) all die.
        +  for (int i = 0; i < 5; i++) {
        +    EXPECT_DEATH_M(Foo(i), "Foo has \\d+ errors",
        +                   ::testing::Message() << "where i is " << i);
        +  }
        +}
        +
        +// A death assertion can contain a compound statement.
        +TEST(MyDeathTest, CompoundStatement) {
        +  // Verifies that at lease one of Bar(0), Bar(1), ..., and
        +  // Bar(4) dies.
        +  ASSERT_DEATH({
        +    for (int i = 0; i < 5; i++) {
        +      Bar(i);
        +    }
        +  },
        +  "Bar has \\d+ errors");}
        +```
        +
        +`googletest_unittest.cc` contains more examples if you are interested.
        +
        +## What syntax does the regular expression in ASSERT\_DEATH use? ##
        +
        +On POSIX systems, Google Test uses the POSIX Extended regular
        +expression syntax
        +(http://en.wikipedia.org/wiki/Regular_expression#POSIX_Extended_Regular_Expressions).
        +On Windows, it uses a limited variant of regular expression
        +syntax. For more details, see the
        +[regular expression syntax](V1_6_AdvancedGuide#Regular_Expression_Syntax.md).
        +
        +## I have a fixture class Foo, but TEST\_F(Foo, Bar) gives me error "no matching function for call to Foo::Foo()". Why? ##
        +
        +Google Test needs to be able to create objects of your test fixture class, so
        +it must have a default constructor. Normally the compiler will define one for
        +you. However, there are cases where you have to define your own:
        +  * If you explicitly declare a non-default constructor for class `Foo`, then you need to define a default constructor, even if it would be empty.
        +  * If `Foo` has a const non-static data member, then you have to define the default constructor _and_ initialize the const member in the initializer list of the constructor. (Early versions of `gcc` doesn't force you to initialize the const member. It's a bug that has been fixed in `gcc 4`.)
        +
        +## Why does ASSERT\_DEATH complain about previous threads that were already joined? ##
        +
        +With the Linux pthread library, there is no turning back once you cross the
        +line from single thread to multiple threads. The first time you create a
        +thread, a manager thread is created in addition, so you get 3, not 2, threads.
        +Later when the thread you create joins the main thread, the thread count
        +decrements by 1, but the manager thread will never be killed, so you still have
        +2 threads, which means you cannot safely run a death test.
        +
        +The new NPTL thread library doesn't suffer from this problem, as it doesn't
        +create a manager thread. However, if you don't control which machine your test
        +runs on, you shouldn't depend on this.
        +
        +## Why does Google Test require the entire test case, instead of individual tests, to be named FOODeathTest when it uses ASSERT\_DEATH? ##
        +
        +Google Test does not interleave tests from different test cases. That is, it
        +runs all tests in one test case first, and then runs all tests in the next test
        +case, and so on. Google Test does this because it needs to set up a test case
        +before the first test in it is run, and tear it down afterwords. Splitting up
        +the test case would require multiple set-up and tear-down processes, which is
        +inefficient and makes the semantics unclean.
        +
        +If we were to determine the order of tests based on test name instead of test
        +case name, then we would have a problem with the following situation:
        +
        +```
        +TEST_F(FooTest, AbcDeathTest) { ... }
        +TEST_F(FooTest, Uvw) { ... }
        +
        +TEST_F(BarTest, DefDeathTest) { ... }
        +TEST_F(BarTest, Xyz) { ... }
        +```
        +
        +Since `FooTest.AbcDeathTest` needs to run before `BarTest.Xyz`, and we don't
        +interleave tests from different test cases, we need to run all tests in the
        +`FooTest` case before running any test in the `BarTest` case. This contradicts
        +with the requirement to run `BarTest.DefDeathTest` before `FooTest.Uvw`.
        +
        +## But I don't like calling my entire test case FOODeathTest when it contains both death tests and non-death tests. What do I do? ##
        +
        +You don't have to, but if you like, you may split up the test case into
        +`FooTest` and `FooDeathTest`, where the names make it clear that they are
        +related:
        +
        +```
        +class FooTest : public ::testing::Test { ... };
        +
        +TEST_F(FooTest, Abc) { ... }
        +TEST_F(FooTest, Def) { ... }
        +
        +typedef FooTest FooDeathTest;
        +
        +TEST_F(FooDeathTest, Uvw) { ... EXPECT_DEATH(...) ... }
        +TEST_F(FooDeathTest, Xyz) { ... ASSERT_DEATH(...) ... }
        +```
        +
        +## The compiler complains about "no match for 'operator<<'" when I use an assertion. What gives? ##
        +
        +If you use a user-defined type `FooType` in an assertion, you must make sure
        +there is an `std::ostream& operator<<(std::ostream&, const FooType&)` function
        +defined such that we can print a value of `FooType`.
        +
        +In addition, if `FooType` is declared in a name space, the `<<` operator also
        +needs to be defined in the _same_ name space.
        +
        +## How do I suppress the memory leak messages on Windows? ##
        +
        +Since the statically initialized Google Test singleton requires allocations on
        +the heap, the Visual C++ memory leak detector will report memory leaks at the
        +end of the program run. The easiest way to avoid this is to use the
        +`_CrtMemCheckpoint` and `_CrtMemDumpAllObjectsSince` calls to not report any
        +statically initialized heap objects. See MSDN for more details and additional
        +heap check/debug routines.
        +
        +## I am building my project with Google Test in Visual Studio and all I'm getting is a bunch of linker errors (or warnings). Help! ##
        +
        +You may get a number of the following linker error or warnings if you
        +attempt to link your test project with the Google Test library when
        +your project and the are not built using the same compiler settings.
        +
        +  * LNK2005: symbol already defined in object
        +  * LNK4217: locally defined symbol 'symbol' imported in function 'function'
        +  * LNK4049: locally defined symbol 'symbol' imported
        +
        +The Google Test project (gtest.vcproj) has the Runtime Library option
        +set to /MT (use multi-threaded static libraries, /MTd for debug). If
        +your project uses something else, for example /MD (use multi-threaded
        +DLLs, /MDd for debug), you need to change the setting in the Google
        +Test project to match your project's.
        +
        +To update this setting open the project properties in the Visual
        +Studio IDE then select the branch Configuration Properties | C/C++ |
        +Code Generation and change the option "Runtime Library".  You may also try
        +using gtest-md.vcproj instead of gtest.vcproj.
        +
        +## I put my tests in a library and Google Test doesn't run them. What's happening? ##
        +Have you read a
        +[warning](http://code.google.com/p/googletest/wiki/V1_6_Primer#Important_note_for_Visual_C++_users) on
        +the Google Test Primer page?
        +
        +## I want to use Google Test with Visual Studio but don't know where to start. ##
        +Many people are in your position and one of the posted his solution to
        +our mailing list. Here is his link:
        +http://hassanjamilahmad.blogspot.com/2009/07/gtest-starters-help.html.
        +
        +## I am seeing compile errors mentioning std::type\_traits when I try to use Google Test on Solaris. ##
        +Google Test uses parts of the standard C++ library that SunStudio does not support.
        +Our users reported success using alternative implementations. Try running the build after runing this commad:
        +
        +`export CC=cc CXX=CC CXXFLAGS='-library=stlport4'`
        +
        +## How can my code detect if it is running in a test? ##
        +
        +If you write code that sniffs whether it's running in a test and does
        +different things accordingly, you are leaking test-only logic into
        +production code and there is no easy way to ensure that the test-only
        +code paths aren't run by mistake in production.  Such cleverness also
        +leads to
        +[Heisenbugs](http://en.wikipedia.org/wiki/Unusual_software_bug#Heisenbug).
        +Therefore we strongly advise against the practice, and Google Test doesn't
        +provide a way to do it.
        +
        +In general, the recommended way to cause the code to behave
        +differently under test is [dependency injection](http://jamesshore.com/Blog/Dependency-Injection-Demystified.html).
        +You can inject different functionality from the test and from the
        +production code.  Since your production code doesn't link in the
        +for-test logic at all, there is no danger in accidentally running it.
        +
        +However, if you _really_, _really_, _really_ have no choice, and if
        +you follow the rule of ending your test program names with `_test`,
        +you can use the _horrible_ hack of sniffing your executable name
        +(`argv[0]` in `main()`) to know whether the code is under test.
        +
        +## Google Test defines a macro that clashes with one defined by another library. How do I deal with that? ##
        +
        +In C++, macros don't obey namespaces.  Therefore two libraries that
        +both define a macro of the same name will clash if you #include both
        +definitions.  In case a Google Test macro clashes with another
        +library, you can force Google Test to rename its macro to avoid the
        +conflict.
        +
        +Specifically, if both Google Test and some other code define macro
        +`FOO`, you can add
        +```
        +  -DGTEST_DONT_DEFINE_FOO=1
        +```
        +to the compiler flags to tell Google Test to change the macro's name
        +from `FOO` to `GTEST_FOO`. For example, with `-DGTEST_DONT_DEFINE_TEST=1`, you'll need to write
        +```
        +  GTEST_TEST(SomeTest, DoesThis) { ... }
        +```
        +instead of
        +```
        +  TEST(SomeTest, DoesThis) { ... }
        +```
        +in order to define a test.
        +
        +Currently, the following `TEST`, `FAIL`, `SUCCEED`, and the basic comparison assertion macros can have alternative names. You can see the full list of covered macros [here](http://www.google.com/codesearch?q=if+!GTEST_DONT_DEFINE_\w%2B+package:http://googletest\.googlecode\.com+file:/include/gtest/gtest.h). More information can be found in the "Avoiding Macro Name Clashes" section of the README file.
        +
        +## My question is not covered in your FAQ! ##
        +
        +If you cannot find the answer to your question in this FAQ, there are
        +some other resources you can use:
        +
        +  1. read other [wiki pages](http://code.google.com/p/googletest/w/list),
        +  1. search the mailing list [archive](http://groups.google.com/group/googletestframework/topics),
        +  1. ask it on [googletestframework@googlegroups.com](mailto:googletestframework@googlegroups.com) and someone will answer it (to prevent spam, we require you to join the [discussion group](http://groups.google.com/group/googletestframework) before you can post.).
        +
        +Please note that creating an issue in the
        +[issue tracker](http://code.google.com/p/googletest/issues/list) is _not_
        +a good way to get your answer, as it is monitored infrequently by a
        +very small number of people.
        +
        +When asking a question, it's helpful to provide as much of the
        +following information as possible (people cannot help you if there's
        +not enough information in your question):
        +
        +  * the version (or the revision number if you check out from SVN directly) of Google Test you use (Google Test is under active development, so it's possible that your problem has been solved in a later version),
        +  * your operating system,
        +  * the name and version of your compiler,
        +  * the complete command line flags you give to your compiler,
        +  * the complete compiler error messages (if the question is about compilation),
        +  * the _actual_ code (ideally, a minimal but complete program) that has the problem you encounter.
        \ No newline at end of file
        diff --git a/lib/ann/fann/lib/googletest/docs/V1_6_Primer.md b/lib/ann/fann/lib/googletest/docs/V1_6_Primer.md
        new file mode 100644
        index 0000000..2c51a21
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/docs/V1_6_Primer.md
        @@ -0,0 +1,501 @@
        +
        +
        +# Introduction: Why Google C++ Testing Framework? #
        +
        +_Google C++ Testing Framework_ helps you write better C++ tests.
        +
        +No matter whether you work on Linux, Windows, or a Mac, if you write C++ code,
        +Google Test can help you.
        +
        +So what makes a good test, and how does Google C++ Testing Framework fit in? We believe:
        +  1. Tests should be _independent_ and _repeatable_. It's a pain to debug a test that succeeds or fails as a result of other tests.  Google C++ Testing Framework isolates the tests by running each of them on a different object. When a test fails, Google C++ Testing Framework allows you to run it in isolation for quick debugging.
        +  1. Tests should be well _organized_ and reflect the structure of the tested code.  Google C++ Testing Framework groups related tests into test cases that can share data and subroutines. This common pattern is easy to recognize and makes tests easy to maintain. Such consistency is especially helpful when people switch projects and start to work on a new code base.
        +  1. Tests should be _portable_ and _reusable_. The open-source community has a lot of code that is platform-neutral, its tests should also be platform-neutral.  Google C++ Testing Framework works on different OSes, with different compilers (gcc, MSVC, and others), with or without exceptions, so Google C++ Testing Framework tests can easily work with a variety of configurations.  (Note that the current release only contains build scripts for Linux - we are actively working on scripts for other platforms.)
        +  1. When tests fail, they should provide as much _information_ about the problem as possible. Google C++ Testing Framework doesn't stop at the first test failure. Instead, it only stops the current test and continues with the next. You can also set up tests that report non-fatal failures after which the current test continues. Thus, you can detect and fix multiple bugs in a single run-edit-compile cycle.
        +  1. The testing framework should liberate test writers from housekeeping chores and let them focus on the test _content_.  Google C++ Testing Framework automatically keeps track of all tests defined, and doesn't require the user to enumerate them in order to run them.
        +  1. Tests should be _fast_. With Google C++ Testing Framework, you can reuse shared resources across tests and pay for the set-up/tear-down only once, without making tests depend on each other.
        +
        +Since Google C++ Testing Framework is based on the popular xUnit
        +architecture, you'll feel right at home if you've used JUnit or PyUnit before.
        +If not, it will take you about 10 minutes to learn the basics and get started.
        +So let's go!
        +
        +_Note:_ We sometimes refer to Google C++ Testing Framework informally
        +as _Google Test_.
        +
        +# Setting up a New Test Project #
        +
        +To write a test program using Google Test, you need to compile Google
        +Test into a library and link your test with it.  We provide build
        +files for some popular build systems: `msvc/` for Visual Studio,
        +`xcode/` for Mac Xcode, `make/` for GNU make, `codegear/` for Borland
        +C++ Builder, and the autotools script (deprecated) and
        +`CMakeLists.txt` for CMake (recommended) in the Google Test root
        +directory.  If your build system is not on this list, you can take a
        +look at `make/Makefile` to learn how Google Test should be compiled
        +(basically you want to compile `src/gtest-all.cc` with `GTEST_ROOT`
        +and `GTEST_ROOT/include` in the header search path, where `GTEST_ROOT`
        +is the Google Test root directory).
        +
        +Once you are able to compile the Google Test library, you should
        +create a project or build target for your test program.  Make sure you
        +have `GTEST_ROOT/include` in the header search path so that the
        +compiler can find `"gtest/gtest.h"` when compiling your test.  Set up
        +your test project to link with the Google Test library (for example,
        +in Visual Studio, this is done by adding a dependency on
        +`gtest.vcproj`).
        +
        +If you still have questions, take a look at how Google Test's own
        +tests are built and use them as examples.
        +
        +# Basic Concepts #
        +
        +When using Google Test, you start by writing _assertions_, which are statements
        +that check whether a condition is true. An assertion's result can be _success_,
        +_nonfatal failure_, or _fatal failure_. If a fatal failure occurs, it aborts
        +the current function; otherwise the program continues normally.
        +
        +_Tests_ use assertions to verify the tested code's behavior. If a test crashes
        +or has a failed assertion, then it _fails_; otherwise it _succeeds_.
        +
        +A _test case_ contains one or many tests. You should group your tests into test
        +cases that reflect the structure of the tested code. When multiple tests in a
        +test case need to share common objects and subroutines, you can put them into a
        +_test fixture_ class.
        +
        +A _test program_ can contain multiple test cases.
        +
        +We'll now explain how to write a test program, starting at the individual
        +assertion level and building up to tests and test cases.
        +
        +# Assertions #
        +
        +Google Test assertions are macros that resemble function calls. You test a
        +class or function by making assertions about its behavior. When an assertion
        +fails, Google Test prints the assertion's source file and line number location,
        +along with a failure message. You may also supply a custom failure message
        +which will be appended to Google Test's message.
        +
        +The assertions come in pairs that test the same thing but have different
        +effects on the current function. `ASSERT_*` versions generate fatal failures
        +when they fail, and **abort the current function**. `EXPECT_*` versions generate
        +nonfatal failures, which don't abort the current function. Usually `EXPECT_*`
        +are preferred, as they allow more than one failures to be reported in a test.
        +However, you should use `ASSERT_*` if it doesn't make sense to continue when
        +the assertion in question fails.
        +
        +Since a failed `ASSERT_*` returns from the current function immediately,
        +possibly skipping clean-up code that comes after it, it may cause a space leak.
        +Depending on the nature of the leak, it may or may not be worth fixing - so
        +keep this in mind if you get a heap checker error in addition to assertion
        +errors.
        +
        +To provide a custom failure message, simply stream it into the macro using the
        +`<<` operator, or a sequence of such operators. An example:
        +```
        +ASSERT_EQ(x.size(), y.size()) << "Vectors x and y are of unequal length";
        +
        +for (int i = 0; i < x.size(); ++i) {
        +  EXPECT_EQ(x[i], y[i]) << "Vectors x and y differ at index " << i;
        +}
        +```
        +
        +Anything that can be streamed to an `ostream` can be streamed to an assertion
        +macro--in particular, C strings and `string` objects. If a wide string
        +(`wchar_t*`, `TCHAR*` in `UNICODE` mode on Windows, or `std::wstring`) is
        +streamed to an assertion, it will be translated to UTF-8 when printed.
        +
        +## Basic Assertions ##
        +
        +These assertions do basic true/false condition testing.
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_TRUE(`_condition_`)`;  | `EXPECT_TRUE(`_condition_`)`;   | _condition_ is true |
        +| `ASSERT_FALSE(`_condition_`)`; | `EXPECT_FALSE(`_condition_`)`;  | _condition_ is false |
        +
        +Remember, when they fail, `ASSERT_*` yields a fatal failure and
        +returns from the current function, while `EXPECT_*` yields a nonfatal
        +failure, allowing the function to continue running. In either case, an
        +assertion failure means its containing test fails.
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +## Binary Comparison ##
        +
        +This section describes assertions that compare two values.
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +|`ASSERT_EQ(`_expected_`, `_actual_`);`|`EXPECT_EQ(`_expected_`, `_actual_`);`| _expected_ `==` _actual_ |
        +|`ASSERT_NE(`_val1_`, `_val2_`);`      |`EXPECT_NE(`_val1_`, `_val2_`);`      | _val1_ `!=` _val2_ |
        +|`ASSERT_LT(`_val1_`, `_val2_`);`      |`EXPECT_LT(`_val1_`, `_val2_`);`      | _val1_ `<` _val2_ |
        +|`ASSERT_LE(`_val1_`, `_val2_`);`      |`EXPECT_LE(`_val1_`, `_val2_`);`      | _val1_ `<=` _val2_ |
        +|`ASSERT_GT(`_val1_`, `_val2_`);`      |`EXPECT_GT(`_val1_`, `_val2_`);`      | _val1_ `>` _val2_ |
        +|`ASSERT_GE(`_val1_`, `_val2_`);`      |`EXPECT_GE(`_val1_`, `_val2_`);`      | _val1_ `>=` _val2_ |
        +
        +In the event of a failure, Google Test prints both _val1_ and _val2_
        +. In `ASSERT_EQ*` and `EXPECT_EQ*` (and all other equality assertions
        +we'll introduce later), you should put the expression you want to test
        +in the position of _actual_, and put its expected value in _expected_,
        +as Google Test's failure messages are optimized for this convention.
        +
        +Value arguments must be comparable by the assertion's comparison
        +operator or you'll get a compiler error.  We used to require the
        +arguments to support the `<<` operator for streaming to an `ostream`,
        +but it's no longer necessary since v1.6.0 (if `<<` is supported, it
        +will be called to print the arguments when the assertion fails;
        +otherwise Google Test will attempt to print them in the best way it
        +can. For more details and how to customize the printing of the
        +arguments, see this Google Mock [recipe](http://code.google.com/p/googlemock/wiki/CookBook#Teaching_Google_Mock_How_to_Print_Your_Values).).
        +
        +These assertions can work with a user-defined type, but only if you define the
        +corresponding comparison operator (e.g. `==`, `<`, etc).  If the corresponding
        +operator is defined, prefer using the `ASSERT_*()` macros because they will
        +print out not only the result of the comparison, but the two operands as well.
        +
        +Arguments are always evaluated exactly once. Therefore, it's OK for the
        +arguments to have side effects. However, as with any ordinary C/C++ function,
        +the arguments' evaluation order is undefined (i.e. the compiler is free to
        +choose any order) and your code should not depend on any particular argument
        +evaluation order.
        +
        +`ASSERT_EQ()` does pointer equality on pointers. If used on two C strings, it
        +tests if they are in the same memory location, not if they have the same value.
        +Therefore, if you want to compare C strings (e.g. `const char*`) by value, use
        +`ASSERT_STREQ()` , which will be described later on. In particular, to assert
        +that a C string is `NULL`, use `ASSERT_STREQ(NULL, c_string)` . However, to
        +compare two `string` objects, you should use `ASSERT_EQ`.
        +
        +Macros in this section work with both narrow and wide string objects (`string`
        +and `wstring`).
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +## String Comparison ##
        +
        +The assertions in this group compare two **C strings**. If you want to compare
        +two `string` objects, use `EXPECT_EQ`, `EXPECT_NE`, and etc instead.
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_STREQ(`_expected\_str_`, `_actual\_str_`);`    | `EXPECT_STREQ(`_expected\_str_`, `_actual\_str_`);`     | the two C strings have the same content |
        +| `ASSERT_STRNE(`_str1_`, `_str2_`);`    | `EXPECT_STRNE(`_str1_`, `_str2_`);`     | the two C strings have different content |
        +| `ASSERT_STRCASEEQ(`_expected\_str_`, `_actual\_str_`);`| `EXPECT_STRCASEEQ(`_expected\_str_`, `_actual\_str_`);` | the two C strings have the same content, ignoring case |
        +| `ASSERT_STRCASENE(`_str1_`, `_str2_`);`| `EXPECT_STRCASENE(`_str1_`, `_str2_`);` | the two C strings have different content, ignoring case |
        +
        +Note that "CASE" in an assertion name means that case is ignored.
        +
        +`*STREQ*` and `*STRNE*` also accept wide C strings (`wchar_t*`). If a
        +comparison of two wide strings fails, their values will be printed as UTF-8
        +narrow strings.
        +
        +A `NULL` pointer and an empty string are considered _different_.
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +See also: For more string comparison tricks (substring, prefix, suffix, and
        +regular expression matching, for example), see the [Advanced Google Test Guide](V1_6_AdvancedGuide.md).
        +
        +# Simple Tests #
        +
        +To create a test:
        +  1. Use the `TEST()` macro to define and name a test function, These are ordinary C++ functions that don't return a value.
        +  1. In this function, along with any valid C++ statements you want to include, use the various Google Test assertions to check values.
        +  1. The test's result is determined by the assertions; if any assertion in the test fails (either fatally or non-fatally), or if the test crashes, the entire test fails. Otherwise, it succeeds.
        +
        +```
        +TEST(test_case_name, test_name) {
        + ... test body ...
        +}
        +```
        +
        +
        +`TEST()` arguments go from general to specific. The _first_ argument is the
        +name of the test case, and the _second_ argument is the test's name within the
        +test case. Both names must be valid C++ identifiers, and they should not contain underscore (`_`). A test's _full name_ consists of its containing test case and its
        +individual name. Tests from different test cases can have the same individual
        +name.
        +
        +For example, let's take a simple integer function:
        +```
        +int Factorial(int n); // Returns the factorial of n
        +```
        +
        +A test case for this function might look like:
        +```
        +// Tests factorial of 0.
        +TEST(FactorialTest, HandlesZeroInput) {
        +  EXPECT_EQ(1, Factorial(0));
        +}
        +
        +// Tests factorial of positive numbers.
        +TEST(FactorialTest, HandlesPositiveInput) {
        +  EXPECT_EQ(1, Factorial(1));
        +  EXPECT_EQ(2, Factorial(2));
        +  EXPECT_EQ(6, Factorial(3));
        +  EXPECT_EQ(40320, Factorial(8));
        +}
        +```
        +
        +Google Test groups the test results by test cases, so logically-related tests
        +should be in the same test case; in other words, the first argument to their
        +`TEST()` should be the same. In the above example, we have two tests,
        +`HandlesZeroInput` and `HandlesPositiveInput`, that belong to the same test
        +case `FactorialTest`.
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +# Test Fixtures: Using the Same Data Configuration for Multiple Tests #
        +
        +If you find yourself writing two or more tests that operate on similar data,
        +you can use a _test fixture_. It allows you to reuse the same configuration of
        +objects for several different tests.
        +
        +To create a fixture, just:
        +  1. Derive a class from `::testing::Test` . Start its body with `protected:` or `public:` as we'll want to access fixture members from sub-classes.
        +  1. Inside the class, declare any objects you plan to use.
        +  1. If necessary, write a default constructor or `SetUp()` function to prepare the objects for each test. A common mistake is to spell `SetUp()` as `Setup()` with a small `u` - don't let that happen to you.
        +  1. If necessary, write a destructor or `TearDown()` function to release any resources you allocated in `SetUp()` . To learn when you should use the constructor/destructor and when you should use `SetUp()/TearDown()`, read this [FAQ entry](http://code.google.com/p/googletest/wiki/V1_6_FAQ#Should_I_use_the_constructor/destructor_of_the_test_fixture_or_t).
        +  1. If needed, define subroutines for your tests to share.
        +
        +When using a fixture, use `TEST_F()` instead of `TEST()` as it allows you to
        +access objects and subroutines in the test fixture:
        +```
        +TEST_F(test_case_name, test_name) {
        + ... test body ...
        +}
        +```
        +
        +Like `TEST()`, the first argument is the test case name, but for `TEST_F()`
        +this must be the name of the test fixture class. You've probably guessed: `_F`
        +is for fixture.
        +
        +Unfortunately, the C++ macro system does not allow us to create a single macro
        +that can handle both types of tests. Using the wrong macro causes a compiler
        +error.
        +
        +Also, you must first define a test fixture class before using it in a
        +`TEST_F()`, or you'll get the compiler error "`virtual outside class
        +declaration`".
        +
        +For each test defined with `TEST_F()`, Google Test will:
        +  1. Create a _fresh_ test fixture at runtime
        +  1. Immediately initialize it via `SetUp()` ,
        +  1. Run the test
        +  1. Clean up by calling `TearDown()`
        +  1. Delete the test fixture.  Note that different tests in the same test case have different test fixture objects, and Google Test always deletes a test fixture before it creates the next one. Google Test does not reuse the same test fixture for multiple tests. Any changes one test makes to the fixture do not affect other tests.
        +
        +As an example, let's write tests for a FIFO queue class named `Queue`, which
        +has the following interface:
        +```
        +template <typename E> // E is the element type.
        +class Queue {
        + public:
        +  Queue();
        +  void Enqueue(const E& element);
        +  E* Dequeue(); // Returns NULL if the queue is empty.
        +  size_t size() const;
        +  ...
        +};
        +```
        +
        +First, define a fixture class. By convention, you should give it the name
        +`FooTest` where `Foo` is the class being tested.
        +```
        +class QueueTest : public ::testing::Test {
        + protected:
        +  virtual void SetUp() {
        +    q1_.Enqueue(1);
        +    q2_.Enqueue(2);
        +    q2_.Enqueue(3);
        +  }
        +
        +  // virtual void TearDown() {}
        +
        +  Queue<int> q0_;
        +  Queue<int> q1_;
        +  Queue<int> q2_;
        +};
        +```
        +
        +In this case, `TearDown()` is not needed since we don't have to clean up after
        +each test, other than what's already done by the destructor.
        +
        +Now we'll write tests using `TEST_F()` and this fixture.
        +```
        +TEST_F(QueueTest, IsEmptyInitially) {
        +  EXPECT_EQ(0, q0_.size());
        +}
        +
        +TEST_F(QueueTest, DequeueWorks) {
        +  int* n = q0_.Dequeue();
        +  EXPECT_EQ(NULL, n);
        +
        +  n = q1_.Dequeue();
        +  ASSERT_TRUE(n != NULL);
        +  EXPECT_EQ(1, *n);
        +  EXPECT_EQ(0, q1_.size());
        +  delete n;
        +
        +  n = q2_.Dequeue();
        +  ASSERT_TRUE(n != NULL);
        +  EXPECT_EQ(2, *n);
        +  EXPECT_EQ(1, q2_.size());
        +  delete n;
        +}
        +```
        +
        +The above uses both `ASSERT_*` and `EXPECT_*` assertions. The rule of thumb is
        +to use `EXPECT_*` when you want the test to continue to reveal more errors
        +after the assertion failure, and use `ASSERT_*` when continuing after failure
        +doesn't make sense. For example, the second assertion in the `Dequeue` test is
        +`ASSERT_TRUE(n != NULL)`, as we need to dereference the pointer `n` later,
        +which would lead to a segfault when `n` is `NULL`.
        +
        +When these tests run, the following happens:
        +  1. Google Test constructs a `QueueTest` object (let's call it `t1` ).
        +  1. `t1.SetUp()` initializes `t1` .
        +  1. The first test ( `IsEmptyInitially` ) runs on `t1` .
        +  1. `t1.TearDown()` cleans up after the test finishes.
        +  1. `t1` is destructed.
        +  1. The above steps are repeated on another `QueueTest` object, this time running the `DequeueWorks` test.
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +_Note_: Google Test automatically saves all _Google Test_ flags when a test
        +object is constructed, and restores them when it is destructed.
        +
        +# Invoking the Tests #
        +
        +`TEST()` and `TEST_F()` implicitly register their tests with Google Test. So, unlike with many other C++ testing frameworks, you don't have to re-list all your defined tests in order to run them.
        +
        +After defining your tests, you can run them with `RUN_ALL_TESTS()` , which returns `0` if all the tests are successful, or `1` otherwise. Note that `RUN_ALL_TESTS()` runs _all tests_ in your link unit -- they can be from different test cases, or even different source files.
        +
        +When invoked, the `RUN_ALL_TESTS()` macro:
        +  1. Saves the state of all  Google Test flags.
        +  1. Creates a test fixture object for the first test.
        +  1. Initializes it via `SetUp()`.
        +  1. Runs the test on the fixture object.
        +  1. Cleans up the fixture via `TearDown()`.
        +  1. Deletes the fixture.
        +  1. Restores the state of all Google Test flags.
        +  1. Repeats the above steps for the next test, until all tests have run.
        +
        +In addition, if the text fixture's constructor generates a fatal failure in
        +step 2, there is no point for step 3 - 5 and they are thus skipped. Similarly,
        +if step 3 generates a fatal failure, step 4 will be skipped.
        +
        +_Important_: You must not ignore the return value of `RUN_ALL_TESTS()`, or `gcc`
        +will give you a compiler error. The rationale for this design is that the
        +automated testing service determines whether a test has passed based on its
        +exit code, not on its stdout/stderr output; thus your `main()` function must
        +return the value of `RUN_ALL_TESTS()`.
        +
        +Also, you should call `RUN_ALL_TESTS()` only **once**. Calling it more than once
        +conflicts with some advanced Google Test features (e.g. thread-safe death
        +tests) and thus is not supported.
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +# Writing the main() Function #
        +
        +You can start from this boilerplate:
        +```
        +#include "this/package/foo.h"
        +#include "gtest/gtest.h"
        +
        +namespace {
        +
        +// The fixture for testing class Foo.
        +class FooTest : public ::testing::Test {
        + protected:
        +  // You can remove any or all of the following functions if its body
        +  // is empty.
        +
        +  FooTest() {
        +    // You can do set-up work for each test here.
        +  }
        +
        +  virtual ~FooTest() {
        +    // You can do clean-up work that doesn't throw exceptions here.
        +  }
        +
        +  // If the constructor and destructor are not enough for setting up
        +  // and cleaning up each test, you can define the following methods:
        +
        +  virtual void SetUp() {
        +    // Code here will be called immediately after the constructor (right
        +    // before each test).
        +  }
        +
        +  virtual void TearDown() {
        +    // Code here will be called immediately after each test (right
        +    // before the destructor).
        +  }
        +
        +  // Objects declared here can be used by all tests in the test case for Foo.
        +};
        +
        +// Tests that the Foo::Bar() method does Abc.
        +TEST_F(FooTest, MethodBarDoesAbc) {
        +  const string input_filepath = "this/package/testdata/myinputfile.dat";
        +  const string output_filepath = "this/package/testdata/myoutputfile.dat";
        +  Foo f;
        +  EXPECT_EQ(0, f.Bar(input_filepath, output_filepath));
        +}
        +
        +// Tests that Foo does Xyz.
        +TEST_F(FooTest, DoesXyz) {
        +  // Exercises the Xyz feature of Foo.
        +}
        +
        +}  // namespace
        +
        +int main(int argc, char **argv) {
        +  ::testing::InitGoogleTest(&argc, argv);
        +  return RUN_ALL_TESTS();
        +}
        +```
        +
        +The `::testing::InitGoogleTest()` function parses the command line for Google
        +Test flags, and removes all recognized flags. This allows the user to control a
        +test program's behavior via various flags, which we'll cover in [AdvancedGuide](V1_6_AdvancedGuide.md).
        +You must call this function before calling `RUN_ALL_TESTS()`, or the flags
        +won't be properly initialized.
        +
        +On Windows, `InitGoogleTest()` also works with wide strings, so it can be used
        +in programs compiled in `UNICODE` mode as well.
        +
        +But maybe you think that writing all those main() functions is too much work? We agree with you completely and that's why Google Test provides a basic implementation of main(). If it fits your needs, then just link your test with gtest\_main library and you are good to go.
        +
        +## Important note for Visual C++ users ##
        +If you put your tests into a library and your `main()` function is in a different library or in your .exe file, those tests will not run. The reason is a [bug](https://connect.microsoft.com/feedback/viewfeedback.aspx?FeedbackID=244410&siteid=210) in Visual C++. When you define your tests, Google Test creates certain static objects to register them. These objects are not referenced from elsewhere but their constructors are still supposed to run. When Visual C++ linker sees that nothing in the library is referenced from other places it throws the library out. You have to reference your library with tests from your main program to keep the linker from discarding it. Here is how to do it. Somewhere in your library code declare a function:
        +```
        +__declspec(dllexport) int PullInMyLibrary() { return 0; }
        +```
        +If you put your tests in a static library (not DLL) then `__declspec(dllexport)` is not required. Now, in your main program, write a code that invokes that function:
        +```
        +int PullInMyLibrary();
        +static int dummy = PullInMyLibrary();
        +```
        +This will keep your tests referenced and will make them register themselves at startup.
        +
        +In addition, if you define your tests in a static library, add `/OPT:NOREF` to your main program linker options. If you use MSVC++ IDE, go to your .exe project properties/Configuration Properties/Linker/Optimization and set References setting to `Keep Unreferenced Data (/OPT:NOREF)`. This will keep Visual C++ linker from discarding individual symbols generated by your tests from the final executable.
        +
        +There is one more pitfall, though. If you use Google Test as a static library (that's how it is defined in gtest.vcproj) your tests must also reside in a static library. If you have to have them in a DLL, you _must_ change Google Test to build into a DLL as well. Otherwise your tests will not run correctly or will not run at all. The general conclusion here is: make your life easier - do not write your tests in libraries!
        +
        +# Where to Go from Here #
        +
        +Congratulations! You've learned the Google Test basics. You can start writing
        +and running Google Test tests, read some [samples](V1_6_Samples.md), or continue with
        +[AdvancedGuide](V1_6_AdvancedGuide.md), which describes many more useful Google Test features.
        +
        +# Known Limitations #
        +
        +Google Test is designed to be thread-safe.  The implementation is
        +thread-safe on systems where the `pthreads` library is available.  It
        +is currently _unsafe_ to use Google Test assertions from two threads
        +concurrently on other systems (e.g. Windows).  In most tests this is
        +not an issue as usually the assertions are done in the main thread. If
        +you want to help, you can volunteer to implement the necessary
        +synchronization primitives in `gtest-port.h` for your platform.
        \ No newline at end of file
        diff --git a/lib/ann/fann/lib/googletest/docs/V1_6_PumpManual.md b/lib/ann/fann/lib/googletest/docs/V1_6_PumpManual.md
        new file mode 100644
        index 0000000..cf6cf56
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/docs/V1_6_PumpManual.md
        @@ -0,0 +1,177 @@
        +
        +
        +<b>P</b>ump is <b>U</b>seful for <b>M</b>eta <b>P</b>rogramming.
        +
        +# The Problem #
        +
        +Template and macro libraries often need to define many classes,
        +functions, or macros that vary only (or almost only) in the number of
        +arguments they take. It's a lot of repetitive, mechanical, and
        +error-prone work.
        +
        +Variadic templates and variadic macros can alleviate the problem.
        +However, while both are being considered by the C++ committee, neither
        +is in the standard yet or widely supported by compilers.  Thus they
        +are often not a good choice, especially when your code needs to be
        +portable. And their capabilities are still limited.
        +
        +As a result, authors of such libraries often have to write scripts to
        +generate their implementation. However, our experience is that it's
        +tedious to write such scripts, which tend to reflect the structure of
        +the generated code poorly and are often hard to read and edit. For
        +example, a small change needed in the generated code may require some
        +non-intuitive, non-trivial changes in the script. This is especially
        +painful when experimenting with the code.
        +
        +# Our Solution #
        +
        +Pump (for Pump is Useful for Meta Programming, Pretty Useful for Meta
        +Programming, or Practical Utility for Meta Programming, whichever you
        +prefer) is a simple meta-programming tool for C++. The idea is that a
        +programmer writes a `foo.pump` file which contains C++ code plus meta
        +code that manipulates the C++ code. The meta code can handle
        +iterations over a range, nested iterations, local meta variable
        +definitions, simple arithmetic, and conditional expressions. You can
        +view it as a small Domain-Specific Language. The meta language is
        +designed to be non-intrusive (s.t. it won't confuse Emacs' C++ mode,
        +for example) and concise, making Pump code intuitive and easy to
        +maintain.
        +
        +## Highlights ##
        +
        +  * The implementation is in a single Python script and thus ultra portable: no build or installation is needed and it works cross platforms.
        +  * Pump tries to be smart with respect to [Google's style guide](http://code.google.com/p/google-styleguide/): it breaks long lines (easy to have when they are generated) at acceptable places to fit within 80 columns and indent the continuation lines correctly.
        +  * The format is human-readable and more concise than XML.
        +  * The format works relatively well with Emacs' C++ mode.
        +
        +## Examples ##
        +
        +The following Pump code (where meta keywords start with `$`, `[[` and `]]` are meta brackets, and `$$` starts a meta comment that ends with the line):
        +
        +```
        +$var n = 3     $$ Defines a meta variable n.
        +$range i 0..n  $$ Declares the range of meta iterator i (inclusive).
        +$for i [[
        +               $$ Meta loop.
        +// Foo$i does blah for $i-ary predicates.
        +$range j 1..i
        +template <size_t N $for j [[, typename A$j]]>
        +class Foo$i {
        +$if i == 0 [[
        +  blah a;
        +]] $elif i <= 2 [[
        +  blah b;
        +]] $else [[
        +  blah c;
        +]]
        +};
        +
        +]]
        +```
        +
        +will be translated by the Pump compiler to:
        +
        +```
        +// Foo0 does blah for 0-ary predicates.
        +template <size_t N>
        +class Foo0 {
        +  blah a;
        +};
        +
        +// Foo1 does blah for 1-ary predicates.
        +template <size_t N, typename A1>
        +class Foo1 {
        +  blah b;
        +};
        +
        +// Foo2 does blah for 2-ary predicates.
        +template <size_t N, typename A1, typename A2>
        +class Foo2 {
        +  blah b;
        +};
        +
        +// Foo3 does blah for 3-ary predicates.
        +template <size_t N, typename A1, typename A2, typename A3>
        +class Foo3 {
        +  blah c;
        +};
        +```
        +
        +In another example,
        +
        +```
        +$range i 1..n
        +Func($for i + [[a$i]]);
        +$$ The text between i and [[ is the separator between iterations.
        +```
        +
        +will generate one of the following lines (without the comments), depending on the value of `n`:
        +
        +```
        +Func();              // If n is 0.
        +Func(a1);            // If n is 1.
        +Func(a1 + a2);       // If n is 2.
        +Func(a1 + a2 + a3);  // If n is 3.
        +// And so on...
        +```
        +
        +## Constructs ##
        +
        +We support the following meta programming constructs:
        +
        +| `$var id = exp` | Defines a named constant value. `$id` is valid util the end of the current meta lexical block. |
        +|:----------------|:-----------------------------------------------------------------------------------------------|
        +| `$range id exp..exp` | Sets the range of an iteration variable, which can be reused in multiple loops later.          |
        +| `$for id sep [[ code ]]` | Iteration. The range of `id` must have been defined earlier. `$id` is valid in `code`.         |
        +| `$($)`          | Generates a single `$` character.                                                              |
        +| `$id`           | Value of the named constant or iteration variable.                                             |
        +| `$(exp)`        | Value of the expression.                                                                       |
        +| `$if exp [[ code ]] else_branch` | Conditional.                                                                                   |
        +| `[[ code ]]`    | Meta lexical block.                                                                            |
        +| `cpp_code`      | Raw C++ code.                                                                                  |
        +| `$$ comment`    | Meta comment.                                                                                  |
        +
        +**Note:** To give the user some freedom in formatting the Pump source
        +code, Pump ignores a new-line character if it's right after `$for foo`
        +or next to `[[` or `]]`. Without this rule you'll often be forced to write
        +very long lines to get the desired output. Therefore sometimes you may
        +need to insert an extra new-line in such places for a new-line to show
        +up in your output.
        +
        +## Grammar ##
        +
        +```
        +code ::= atomic_code*
        +atomic_code ::= $var id = exp
        +    | $var id = [[ code ]]
        +    | $range id exp..exp
        +    | $for id sep [[ code ]]
        +    | $($)
        +    | $id
        +    | $(exp)
        +    | $if exp [[ code ]] else_branch
        +    | [[ code ]]
        +    | cpp_code
        +sep ::= cpp_code | empty_string
        +else_branch ::= $else [[ code ]]
        +    | $elif exp [[ code ]] else_branch
        +    | empty_string
        +exp ::= simple_expression_in_Python_syntax
        +```
        +
        +## Code ##
        +
        +You can find the source code of Pump in [scripts/pump.py](http://code.google.com/p/googletest/source/browse/trunk/scripts/pump.py). It is still
        +very unpolished and lacks automated tests, although it has been
        +successfully used many times. If you find a chance to use it in your
        +project, please let us know what you think!  We also welcome help on
        +improving Pump.
        +
        +## Real Examples ##
        +
        +You can find real-world applications of Pump in [Google Test](http://www.google.com/codesearch?q=file%3A\.pump%24+package%3Ahttp%3A%2F%2Fgoogletest\.googlecode\.com) and [Google Mock](http://www.google.com/codesearch?q=file%3A\.pump%24+package%3Ahttp%3A%2F%2Fgooglemock\.googlecode\.com).  The source file `foo.h.pump` generates `foo.h`.
        +
        +## Tips ##
        +
        +  * If a meta variable is followed by a letter or digit, you can separate them using `[[]]`, which inserts an empty string. For example `Foo$j[[]]Helper` generate `Foo1Helper` when `j` is 1.
        +  * To avoid extra-long Pump source lines, you can break a line anywhere you want by inserting `[[]]` followed by a new line. Since any new-line character next to `[[` or `]]` is ignored, the generated code won't contain this new line.
        \ No newline at end of file
        diff --git a/lib/ann/fann/lib/googletest/docs/V1_6_Samples.md b/lib/ann/fann/lib/googletest/docs/V1_6_Samples.md
        new file mode 100644
        index 0000000..8122569
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/docs/V1_6_Samples.md
        @@ -0,0 +1,14 @@
        +If you're like us, you'd like to look at some Google Test sample code.  The
        +[samples folder](http://code.google.com/p/googletest/source/browse/#svn/trunk/samples) has a number of well-commented samples showing how to use a
        +variety of Google Test features.
        +
        +  * [Sample #1](http://code.google.com/p/googletest/source/browse/trunk/samples/sample1_unittest.cc) shows the basic steps of using Google Test to test C++ functions.
        +  * [Sample #2](http://code.google.com/p/googletest/source/browse/trunk/samples/sample2_unittest.cc) shows a more complex unit test for a class with multiple member functions.
        +  * [Sample #3](http://code.google.com/p/googletest/source/browse/trunk/samples/sample3_unittest.cc) uses a test fixture.
        +  * [Sample #4](http://code.google.com/p/googletest/source/browse/trunk/samples/sample4_unittest.cc) is another basic example of using Google Test.
        +  * [Sample #5](http://code.google.com/p/googletest/source/browse/trunk/samples/sample5_unittest.cc) teaches how to reuse a test fixture in multiple test cases by deriving sub-fixtures from it.
        +  * [Sample #6](http://code.google.com/p/googletest/source/browse/trunk/samples/sample6_unittest.cc) demonstrates type-parameterized tests.
        +  * [Sample #7](http://code.google.com/p/googletest/source/browse/trunk/samples/sample7_unittest.cc) teaches the basics of value-parameterized tests.
        +  * [Sample #8](http://code.google.com/p/googletest/source/browse/trunk/samples/sample8_unittest.cc) shows using `Combine()` in value-parameterized tests.
        +  * [Sample #9](http://code.google.com/p/googletest/source/browse/trunk/samples/sample9_unittest.cc) shows use of the listener API to modify Google Test's console output and the use of its reflection API to inspect test results.
        +  * [Sample #10](http://code.google.com/p/googletest/source/browse/trunk/samples/sample10_unittest.cc) shows use of the listener API to implement a primitive memory leak checker.
        \ No newline at end of file
        diff --git a/lib/ann/fann/lib/googletest/docs/V1_6_XcodeGuide.md b/lib/ann/fann/lib/googletest/docs/V1_6_XcodeGuide.md
        new file mode 100644
        index 0000000..bf24bf5
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/docs/V1_6_XcodeGuide.md
        @@ -0,0 +1,93 @@
        +
        +
        +This guide will explain how to use the Google Testing Framework in your Xcode projects on Mac OS X. This tutorial begins by quickly explaining what to do for experienced users. After the quick start, the guide goes provides additional explanation about each step.
        +
        +# Quick Start #
        +
        +Here is the quick guide for using Google Test in your Xcode project.
        +
        +  1. Download the source from the [website](http://code.google.com/p/googletest) using this command: `svn checkout http://googletest.googlecode.com/svn/trunk/ googletest-read-only`
        +  1. Open up the `gtest.xcodeproj` in the `googletest-read-only/xcode/` directory and build the gtest.framework.
        +  1. Create a new "Shell Tool" target in your Xcode project called something like "UnitTests"
        +  1. Add the gtest.framework to your project and add it to the "Link Binary with Libraries" build phase of "UnitTests"
        +  1. Add your unit test source code to the "Compile Sources" build phase of "UnitTests"
        +  1. Edit the "UnitTests" executable and add an environment variable named "DYLD\_FRAMEWORK\_PATH" with a value equal to the path to the framework containing the gtest.framework relative to the compiled executable.
        +  1. Build and Go
        +
        +The following sections further explain each of the steps listed above in depth, describing in more detail how to complete it including some variations.
        +
        +# Get the Source #
        +
        +Currently, the gtest.framework discussed here isn't available in a tagged release of Google Test, it is only available in the trunk. As explained at the Google Test [site](http://code.google.com/p/googletest/source/checkout">svn), you can get the code from anonymous SVN with this command:
        +
        +```
        +svn checkout http://googletest.googlecode.com/svn/trunk/ googletest-read-only
        +```
        +
        +Alternatively, if you are working with Subversion in your own code base, you can add Google Test as an external dependency to your own Subversion repository. By following this approach, everyone that checks out your svn repository will also receive a copy of Google Test (a specific version, if you wish) without having to check it out explicitly. This makes the set up of your project simpler and reduces the copied code in the repository.
        +
        +To use `svn:externals`, decide where you would like to have the external source reside. You might choose to put the external source inside the trunk, because you want it to be part of the branch when you make a release. However, keeping it outside the trunk in a version-tagged directory called something like `third-party/googletest/1.0.1`, is another option. Once the location is established, use `svn propedit svn:externals _directory_` to set the svn:externals property on a directory in your repository. This directory won't contain the code, but be its versioned parent directory.
        +
        +The command `svn propedit` will bring up your Subversion editor, making editing the long, (potentially multi-line) property simpler. This same method can be used to check out a tagged branch, by using the appropriate URL (e.g. `http://googletest.googlecode.com/svn/tags/release-1.0.1`). Additionally, the svn:externals property allows the specification of a particular revision of the trunk with the `-r_##_` option (e.g. `externals/src/googletest -r60 http://googletest.googlecode.com/svn/trunk`).
        +
        +Here is an example of using the svn:externals properties on a trunk (read via `svn propget`) of a project. This value checks out a copy of Google Test into the `trunk/externals/src/googletest/` directory.
        +
        +```
        +[Computer:svn] user$ svn propget svn:externals trunk
        +externals/src/googletest http://googletest.googlecode.com/svn/trunk
        +```
        +
        +# Add the Framework to Your Project #
        +
        +The next step is to build and add the gtest.framework to your own project. This guide describes two common ways below.
        +
        +  * **Option 1** --- The simplest way to add Google Test to your own project, is to open gtest.xcodeproj (found in the xcode/ directory of the Google Test trunk) and build the framework manually. Then, add the built framework into your project using the "Add->Existing Framework..." from the context menu or "Project->Add..." from the main menu. The gtest.framework is relocatable and contains the headers and object code that you'll need to make tests. This method requires rebuilding every time you upgrade Google Test in your project.
        +  * **Option 2** --- If you are going to be living off the trunk of Google Test, incorporating its latest features into your unit tests (or are a Google Test developer yourself). You'll want to rebuild the framework every time the source updates. to do this, you'll need to add the gtest.xcodeproj file, not the framework itself, to your own Xcode project. Then, from the build products that are revealed by the project's disclosure triangle, you can find the gtest.framework, which can be added to your targets (discussed below).
        +
        +# Make a Test Target #
        +
        +To start writing tests, make a new "Shell Tool" target. This target template is available under BSD, Cocoa, or Carbon. Add your unit test source code to the "Compile Sources" build phase of the target.
        +
        +Next, you'll want to add gtest.framework in two different ways, depending upon which option you chose above.
        +
        +  * **Option 1** --- During compilation, Xcode will need to know that you are linking against the gtest.framework. Add the gtest.framework to the "Link Binary with Libraries" build phase of your test target. This will include the Google Test headers in your header search path, and will tell the linker where to find the library.
        +  * **Option 2** --- If your working out of the trunk, you'll also want to add gtest.framework to your "Link Binary with Libraries" build phase of your test target. In addition, you'll  want to add the gtest.framework as a dependency to your unit test target. This way, Xcode will make sure that gtest.framework is up to date, every time your build your target. Finally, if you don't share build directories with Google Test, you'll have to copy the gtest.framework into your own build products directory using a "Run Script" build phase.
        +
        +# Set Up the Executable Run Environment #
        +
        +Since the unit test executable is a shell tool, it doesn't have a bundle with a `Contents/Frameworks` directory, in which to place gtest.framework. Instead, the dynamic linker must be told at runtime to search for the framework in another location. This can be accomplished by setting the "DYLD\_FRAMEWORK\_PATH" environment variable in the "Edit Active Executable ..." Arguments tab, under "Variables to be set in the environment:". The path for this value is the path (relative or absolute) of the directory containing the gtest.framework.
        +
        +If you haven't set up the DYLD\_FRAMEWORK\_PATH, correctly, you might get a message like this:
        +
        +```
        +[Session started at 2008-08-15 06:23:57 -0600.]
        +  dyld: Library not loaded: @loader_path/../Frameworks/gtest.framework/Versions/A/gtest
        +    Referenced from: /Users/username/Documents/Sandbox/gtestSample/build/Debug/WidgetFrameworkTest
        +    Reason: image not found
        +```
        +
        +To correct this problem, got to the directory containing the executable named in "Referenced from:" value in the error message above. Then, with the terminal in this location, find the relative path to the directory containing the gtest.framework. That is the value you'll need to set as the DYLD\_FRAMEWORK\_PATH.
        +
        +# Build and Go #
        +
        +Now, when you click "Build and Go", the test will be executed. Dumping out something like this:
        +
        +```
        +[Session started at 2008-08-06 06:36:13 -0600.]
        +[==========] Running 2 tests from 1 test case.
        +[----------] Global test environment set-up.
        +[----------] 2 tests from WidgetInitializerTest
        +[ RUN      ] WidgetInitializerTest.TestConstructor
        +[       OK ] WidgetInitializerTest.TestConstructor
        +[ RUN      ] WidgetInitializerTest.TestConversion
        +[       OK ] WidgetInitializerTest.TestConversion
        +[----------] Global test environment tear-down
        +[==========] 2 tests from 1 test case ran.
        +[  PASSED  ] 2 tests.
        +
        +The Debugger has exited with status 0.  
        +```
        +
        +# Summary #
        +
        +Unit testing is a valuable way to ensure your data model stays valid even during rapid development or refactoring. The Google Testing Framework is a great unit testing framework for C and C++ which integrates well with an Xcode development environment.
        \ No newline at end of file
        diff --git a/lib/ann/fann/lib/googletest/docs/V1_7_AdvancedGuide.md b/lib/ann/fann/lib/googletest/docs/V1_7_AdvancedGuide.md
        new file mode 100644
        index 0000000..a3d6462
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/docs/V1_7_AdvancedGuide.md
        @@ -0,0 +1,2181 @@
        +
        +
        +Now that you have read [Primer](V1_7_Primer.md) and learned how to write tests
        +using Google Test, it's time to learn some new tricks. This document
        +will show you more assertions as well as how to construct complex
        +failure messages, propagate fatal failures, reuse and speed up your
        +test fixtures, and use various flags with your tests.
        +
        +# More Assertions #
        +
        +This section covers some less frequently used, but still significant,
        +assertions.
        +
        +## Explicit Success and Failure ##
        +
        +These three assertions do not actually test a value or expression. Instead,
        +they generate a success or failure directly. Like the macros that actually
        +perform a test, you may stream a custom failure message into the them.
        +
        +| `SUCCEED();` |
        +|:-------------|
        +
        +Generates a success. This does NOT make the overall test succeed. A test is
        +considered successful only if none of its assertions fail during its execution.
        +
        +Note: `SUCCEED()` is purely documentary and currently doesn't generate any
        +user-visible output. However, we may add `SUCCEED()` messages to Google Test's
        +output in the future.
        +
        +| `FAIL();`  | `ADD_FAILURE();` | `ADD_FAILURE_AT("`_file\_path_`", `_line\_number_`);` |
        +|:-----------|:-----------------|:------------------------------------------------------|
        +
        +`FAIL()` generates a fatal failure, while `ADD_FAILURE()` and `ADD_FAILURE_AT()` generate a nonfatal
        +failure. These are useful when control flow, rather than a Boolean expression,
        +deteremines the test's success or failure. For example, you might want to write
        +something like:
        +
        +```
        +switch(expression) {
        +  case 1: ... some checks ...
        +  case 2: ... some other checks
        +  ...
        +  default: FAIL() << "We shouldn't get here.";
        +}
        +```
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +## Exception Assertions ##
        +
        +These are for verifying that a piece of code throws (or does not
        +throw) an exception of the given type:
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_THROW(`_statement_, _exception\_type_`);`  | `EXPECT_THROW(`_statement_, _exception\_type_`);`  | _statement_ throws an exception of the given type  |
        +| `ASSERT_ANY_THROW(`_statement_`);`                | `EXPECT_ANY_THROW(`_statement_`);`                | _statement_ throws an exception of any type        |
        +| `ASSERT_NO_THROW(`_statement_`);`                 | `EXPECT_NO_THROW(`_statement_`);`                 | _statement_ doesn't throw any exception            |
        +
        +Examples:
        +
        +```
        +ASSERT_THROW(Foo(5), bar_exception);
        +
        +EXPECT_NO_THROW({
        +  int n = 5;
        +  Bar(&n);
        +});
        +```
        +
        +_Availability_: Linux, Windows, Mac; since version 1.1.0.
        +
        +## Predicate Assertions for Better Error Messages ##
        +
        +Even though Google Test has a rich set of assertions, they can never be
        +complete, as it's impossible (nor a good idea) to anticipate all the scenarios
        +a user might run into. Therefore, sometimes a user has to use `EXPECT_TRUE()`
        +to check a complex expression, for lack of a better macro. This has the problem
        +of not showing you the values of the parts of the expression, making it hard to
        +understand what went wrong. As a workaround, some users choose to construct the
        +failure message by themselves, streaming it into `EXPECT_TRUE()`. However, this
        +is awkward especially when the expression has side-effects or is expensive to
        +evaluate.
        +
        +Google Test gives you three different options to solve this problem:
        +
        +### Using an Existing Boolean Function ###
        +
        +If you already have a function or a functor that returns `bool` (or a type
        +that can be implicitly converted to `bool`), you can use it in a _predicate
        +assertion_ to get the function arguments printed for free:
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_PRED1(`_pred1, val1_`);`       | `EXPECT_PRED1(`_pred1, val1_`);` | _pred1(val1)_ returns true |
        +| `ASSERT_PRED2(`_pred2, val1, val2_`);` | `EXPECT_PRED2(`_pred2, val1, val2_`);` |  _pred2(val1, val2)_ returns true |
        +|  ...                | ...                    | ...          |
        +
        +In the above, _predn_ is an _n_-ary predicate function or functor, where
        +_val1_, _val2_, ..., and _valn_ are its arguments. The assertion succeeds
        +if the predicate returns `true` when applied to the given arguments, and fails
        +otherwise. When the assertion fails, it prints the value of each argument. In
        +either case, the arguments are evaluated exactly once.
        +
        +Here's an example. Given
        +
        +```
        +// Returns true iff m and n have no common divisors except 1.
        +bool MutuallyPrime(int m, int n) { ... }
        +const int a = 3;
        +const int b = 4;
        +const int c = 10;
        +```
        +
        +the assertion `EXPECT_PRED2(MutuallyPrime, a, b);` will succeed, while the
        +assertion `EXPECT_PRED2(MutuallyPrime, b, c);` will fail with the message
        +
        +<pre>
        +!MutuallyPrime(b, c) is false, where<br>
        +b is 4<br>
        +c is 10<br>
        +</pre>
        +
        +**Notes:**
        +
        +  1. If you see a compiler error "no matching function to call" when using `ASSERT_PRED*` or `EXPECT_PRED*`, please see [this](http://code.google.com/p/googletest/wiki/V1_7_FAQ#The_compiler_complains_%22no_matching_function_to_call%22) for how to resolve it.
        +  1. Currently we only provide predicate assertions of arity <= 5. If you need a higher-arity assertion, let us know.
        +
        +_Availability_: Linux, Windows, Mac
        +
        +### Using a Function That Returns an AssertionResult ###
        +
        +While `EXPECT_PRED*()` and friends are handy for a quick job, the
        +syntax is not satisfactory: you have to use different macros for
        +different arities, and it feels more like Lisp than C++.  The
        +`::testing::AssertionResult` class solves this problem.
        +
        +An `AssertionResult` object represents the result of an assertion
        +(whether it's a success or a failure, and an associated message).  You
        +can create an `AssertionResult` using one of these factory
        +functions:
        +
        +```
        +namespace testing {
        +
        +// Returns an AssertionResult object to indicate that an assertion has
        +// succeeded.
        +AssertionResult AssertionSuccess();
        +
        +// Returns an AssertionResult object to indicate that an assertion has
        +// failed.
        +AssertionResult AssertionFailure();
        +
        +}
        +```
        +
        +You can then use the `<<` operator to stream messages to the
        +`AssertionResult` object.
        +
        +To provide more readable messages in Boolean assertions
        +(e.g. `EXPECT_TRUE()`), write a predicate function that returns
        +`AssertionResult` instead of `bool`. For example, if you define
        +`IsEven()` as:
        +
        +```
        +::testing::AssertionResult IsEven(int n) {
        +  if ((n % 2) == 0)
        +    return ::testing::AssertionSuccess();
        +  else
        +    return ::testing::AssertionFailure() << n << " is odd";
        +}
        +```
        +
        +instead of:
        +
        +```
        +bool IsEven(int n) {
        +  return (n % 2) == 0;
        +}
        +```
        +
        +the failed assertion `EXPECT_TRUE(IsEven(Fib(4)))` will print:
        +
        +<pre>
        +Value of: IsEven(Fib(4))<br>
        +Actual: false (*3 is odd*)<br>
        +Expected: true<br>
        +</pre>
        +
        +instead of a more opaque
        +
        +<pre>
        +Value of: IsEven(Fib(4))<br>
        +Actual: false<br>
        +Expected: true<br>
        +</pre>
        +
        +If you want informative messages in `EXPECT_FALSE` and `ASSERT_FALSE`
        +as well, and are fine with making the predicate slower in the success
        +case, you can supply a success message:
        +
        +```
        +::testing::AssertionResult IsEven(int n) {
        +  if ((n % 2) == 0)
        +    return ::testing::AssertionSuccess() << n << " is even";
        +  else
        +    return ::testing::AssertionFailure() << n << " is odd";
        +}
        +```
        +
        +Then the statement `EXPECT_FALSE(IsEven(Fib(6)))` will print
        +
        +<pre>
        +Value of: IsEven(Fib(6))<br>
        +Actual: true (8 is even)<br>
        +Expected: false<br>
        +</pre>
        +
        +_Availability_: Linux, Windows, Mac; since version 1.4.1.
        +
        +### Using a Predicate-Formatter ###
        +
        +If you find the default message generated by `(ASSERT|EXPECT)_PRED*` and
        +`(ASSERT|EXPECT)_(TRUE|FALSE)` unsatisfactory, or some arguments to your
        +predicate do not support streaming to `ostream`, you can instead use the
        +following _predicate-formatter assertions_ to _fully_ customize how the
        +message is formatted:
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_PRED_FORMAT1(`_pred\_format1, val1_`);`        | `EXPECT_PRED_FORMAT1(`_pred\_format1, val1_`); | _pred\_format1(val1)_ is successful |
        +| `ASSERT_PRED_FORMAT2(`_pred\_format2, val1, val2_`);` | `EXPECT_PRED_FORMAT2(`_pred\_format2, val1, val2_`);` | _pred\_format2(val1, val2)_ is successful |
        +| `...`               | `...`                  | `...`        |
        +
        +The difference between this and the previous two groups of macros is that instead of
        +a predicate, `(ASSERT|EXPECT)_PRED_FORMAT*` take a _predicate-formatter_
        +(_pred\_formatn_), which is a function or functor with the signature:
        +
        +`::testing::AssertionResult PredicateFormattern(const char* `_expr1_`, const char* `_expr2_`, ... const char* `_exprn_`, T1 `_val1_`, T2 `_val2_`, ... Tn `_valn_`);`
        +
        +where _val1_, _val2_, ..., and _valn_ are the values of the predicate
        +arguments, and _expr1_, _expr2_, ..., and _exprn_ are the corresponding
        +expressions as they appear in the source code. The types `T1`, `T2`, ..., and
        +`Tn` can be either value types or reference types. For example, if an
        +argument has type `Foo`, you can declare it as either `Foo` or `const Foo&`,
        +whichever is appropriate.
        +
        +A predicate-formatter returns a `::testing::AssertionResult` object to indicate
        +whether the assertion has succeeded or not. The only way to create such an
        +object is to call one of these factory functions:
        +
        +As an example, let's improve the failure message in the previous example, which uses `EXPECT_PRED2()`:
        +
        +```
        +// Returns the smallest prime common divisor of m and n,
        +// or 1 when m and n are mutually prime.
        +int SmallestPrimeCommonDivisor(int m, int n) { ... }
        +
        +// A predicate-formatter for asserting that two integers are mutually prime.
        +::testing::AssertionResult AssertMutuallyPrime(const char* m_expr,
        +                                               const char* n_expr,
        +                                               int m,
        +                                               int n) {
        +  if (MutuallyPrime(m, n))
        +    return ::testing::AssertionSuccess();
        + 
        +  return ::testing::AssertionFailure()
        +      << m_expr << " and " << n_expr << " (" << m << " and " << n
        +      << ") are not mutually prime, " << "as they have a common divisor "
        +      << SmallestPrimeCommonDivisor(m, n);
        +}
        +```
        +
        +With this predicate-formatter, we can use
        +
        +```
        +EXPECT_PRED_FORMAT2(AssertMutuallyPrime, b, c);
        +```
        +
        +to generate the message
        +
        +<pre>
        +b and c (4 and 10) are not mutually prime, as they have a common divisor 2.<br>
        +</pre>
        +
        +As you may have realized, many of the assertions we introduced earlier are
        +special cases of `(EXPECT|ASSERT)_PRED_FORMAT*`. In fact, most of them are
        +indeed defined using `(EXPECT|ASSERT)_PRED_FORMAT*`.
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +
        +## Floating-Point Comparison ##
        +
        +Comparing floating-point numbers is tricky. Due to round-off errors, it is
        +very unlikely that two floating-points will match exactly. Therefore,
        +`ASSERT_EQ` 's naive comparison usually doesn't work. And since floating-points
        +can have a wide value range, no single fixed error bound works. It's better to
        +compare by a fixed relative error bound, except for values close to 0 due to
        +the loss of precision there.
        +
        +In general, for floating-point comparison to make sense, the user needs to
        +carefully choose the error bound. If they don't want or care to, comparing in
        +terms of Units in the Last Place (ULPs) is a good default, and Google Test
        +provides assertions to do this. Full details about ULPs are quite long; if you
        +want to learn more, see
        +[this article on float comparison](http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm).
        +
        +### Floating-Point Macros ###
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_FLOAT_EQ(`_expected, actual_`);`  | `EXPECT_FLOAT_EQ(`_expected, actual_`);` | the two `float` values are almost equal |
        +| `ASSERT_DOUBLE_EQ(`_expected, actual_`);` | `EXPECT_DOUBLE_EQ(`_expected, actual_`);` | the two `double` values are almost equal |
        +
        +By "almost equal", we mean the two values are within 4 ULP's from each
        +other.
        +
        +The following assertions allow you to choose the acceptable error bound:
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_NEAR(`_val1, val2, abs\_error_`);` | `EXPECT_NEAR`_(val1, val2, abs\_error_`);` | the difference between _val1_ and _val2_ doesn't exceed the given absolute error |
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +### Floating-Point Predicate-Format Functions ###
        +
        +Some floating-point operations are useful, but not that often used. In order
        +to avoid an explosion of new macros, we provide them as predicate-format
        +functions that can be used in predicate assertion macros (e.g.
        +`EXPECT_PRED_FORMAT2`, etc).
        +
        +```
        +EXPECT_PRED_FORMAT2(::testing::FloatLE, val1, val2);
        +EXPECT_PRED_FORMAT2(::testing::DoubleLE, val1, val2);
        +```
        +
        +Verifies that _val1_ is less than, or almost equal to, _val2_. You can
        +replace `EXPECT_PRED_FORMAT2` in the above table with `ASSERT_PRED_FORMAT2`.
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +## Windows HRESULT assertions ##
        +
        +These assertions test for `HRESULT` success or failure.
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_HRESULT_SUCCEEDED(`_expression_`);` | `EXPECT_HRESULT_SUCCEEDED(`_expression_`);` | _expression_ is a success `HRESULT` |
        +| `ASSERT_HRESULT_FAILED(`_expression_`);`    | `EXPECT_HRESULT_FAILED(`_expression_`);`    | _expression_ is a failure `HRESULT` |
        +
        +The generated output contains the human-readable error message
        +associated with the `HRESULT` code returned by _expression_.
        +
        +You might use them like this:
        +
        +```
        +CComPtr shell;
        +ASSERT_HRESULT_SUCCEEDED(shell.CoCreateInstance(L"Shell.Application"));
        +CComVariant empty;
        +ASSERT_HRESULT_SUCCEEDED(shell->ShellExecute(CComBSTR(url), empty, empty, empty, empty));
        +```
        +
        +_Availability_: Windows.
        +
        +## Type Assertions ##
        +
        +You can call the function
        +```
        +::testing::StaticAssertTypeEq<T1, T2>();
        +```
        +to assert that types `T1` and `T2` are the same.  The function does
        +nothing if the assertion is satisfied.  If the types are different,
        +the function call will fail to compile, and the compiler error message
        +will likely (depending on the compiler) show you the actual values of
        +`T1` and `T2`.  This is mainly useful inside template code.
        +
        +_Caveat:_ When used inside a member function of a class template or a
        +function template, `StaticAssertTypeEq<T1, T2>()` is effective _only if_
        +the function is instantiated.  For example, given:
        +```
        +template <typename T> class Foo {
        + public:
        +  void Bar() { ::testing::StaticAssertTypeEq<int, T>(); }
        +};
        +```
        +the code:
        +```
        +void Test1() { Foo<bool> foo; }
        +```
        +will _not_ generate a compiler error, as `Foo<bool>::Bar()` is never
        +actually instantiated.  Instead, you need:
        +```
        +void Test2() { Foo<bool> foo; foo.Bar(); }
        +```
        +to cause a compiler error.
        +
        +_Availability:_ Linux, Windows, Mac; since version 1.3.0.
        +
        +## Assertion Placement ##
        +
        +You can use assertions in any C++ function. In particular, it doesn't
        +have to be a method of the test fixture class. The one constraint is
        +that assertions that generate a fatal failure (`FAIL*` and `ASSERT_*`)
        +can only be used in void-returning functions. This is a consequence of
        +Google Test not using exceptions. By placing it in a non-void function
        +you'll get a confusing compile error like
        +`"error: void value not ignored as it ought to be"`.
        +
        +If you need to use assertions in a function that returns non-void, one option
        +is to make the function return the value in an out parameter instead. For
        +example, you can rewrite `T2 Foo(T1 x)` to `void Foo(T1 x, T2* result)`. You
        +need to make sure that `*result` contains some sensible value even when the
        +function returns prematurely. As the function now returns `void`, you can use
        +any assertion inside of it.
        +
        +If changing the function's type is not an option, you should just use
        +assertions that generate non-fatal failures, such as `ADD_FAILURE*` and
        +`EXPECT_*`.
        +
        +_Note_: Constructors and destructors are not considered void-returning
        +functions, according to the C++ language specification, and so you may not use
        +fatal assertions in them. You'll get a compilation error if you try. A simple
        +workaround is to transfer the entire body of the constructor or destructor to a
        +private void-returning method. However, you should be aware that a fatal
        +assertion failure in a constructor does not terminate the current test, as your
        +intuition might suggest; it merely returns from the constructor early, possibly
        +leaving your object in a partially-constructed state. Likewise, a fatal
        +assertion failure in a destructor may leave your object in a
        +partially-destructed state. Use assertions carefully in these situations!
        +
        +# Teaching Google Test How to Print Your Values #
        +
        +When a test assertion such as `EXPECT_EQ` fails, Google Test prints the
        +argument values to help you debug.  It does this using a
        +user-extensible value printer.
        +
        +This printer knows how to print built-in C++ types, native arrays, STL
        +containers, and any type that supports the `<<` operator.  For other
        +types, it prints the raw bytes in the value and hopes that you the
        +user can figure it out.
        +
        +As mentioned earlier, the printer is _extensible_.  That means
        +you can teach it to do a better job at printing your particular type
        +than to dump the bytes.  To do that, define `<<` for your type:
        +
        +```
        +#include <iostream>
        +
        +namespace foo {
        +
        +class Bar { ... };  // We want Google Test to be able to print instances of this.
        +
        +// It's important that the << operator is defined in the SAME
        +// namespace that defines Bar.  C++'s look-up rules rely on that.
        +::std::ostream& operator<<(::std::ostream& os, const Bar& bar) {
        +  return os << bar.DebugString();  // whatever needed to print bar to os
        +}
        +
        +}  // namespace foo
        +```
        +
        +Sometimes, this might not be an option: your team may consider it bad
        +style to have a `<<` operator for `Bar`, or `Bar` may already have a
        +`<<` operator that doesn't do what you want (and you cannot change
        +it).  If so, you can instead define a `PrintTo()` function like this:
        +
        +```
        +#include <iostream>
        +
        +namespace foo {
        +
        +class Bar { ... };
        +
        +// It's important that PrintTo() is defined in the SAME
        +// namespace that defines Bar.  C++'s look-up rules rely on that.
        +void PrintTo(const Bar& bar, ::std::ostream* os) {
        +  *os << bar.DebugString();  // whatever needed to print bar to os
        +}
        +
        +}  // namespace foo
        +```
        +
        +If you have defined both `<<` and `PrintTo()`, the latter will be used
        +when Google Test is concerned.  This allows you to customize how the value
        +appears in Google Test's output without affecting code that relies on the
        +behavior of its `<<` operator.
        +
        +If you want to print a value `x` using Google Test's value printer
        +yourself, just call `::testing::PrintToString(`_x_`)`, which
        +returns an `std::string`:
        +
        +```
        +vector<pair<Bar, int> > bar_ints = GetBarIntVector();
        +
        +EXPECT_TRUE(IsCorrectBarIntVector(bar_ints))
        +    << "bar_ints = " << ::testing::PrintToString(bar_ints);
        +```
        +
        +# Death Tests #
        +
        +In many applications, there are assertions that can cause application failure
        +if a condition is not met. These sanity checks, which ensure that the program
        +is in a known good state, are there to fail at the earliest possible time after
        +some program state is corrupted. If the assertion checks the wrong condition,
        +then the program may proceed in an erroneous state, which could lead to memory
        +corruption, security holes, or worse. Hence it is vitally important to test
        +that such assertion statements work as expected.
        +
        +Since these precondition checks cause the processes to die, we call such tests
        +_death tests_. More generally, any test that checks that a program terminates
        +(except by throwing an exception) in an expected fashion is also a death test.
        +
        +Note that if a piece of code throws an exception, we don't consider it "death"
        +for the purpose of death tests, as the caller of the code could catch the exception
        +and avoid the crash. If you want to verify exceptions thrown by your code,
        +see [Exception Assertions](#Exception_Assertions.md).
        +
        +If you want to test `EXPECT_*()/ASSERT_*()` failures in your test code, see [Catching Failures](#Catching_Failures.md).
        +
        +## How to Write a Death Test ##
        +
        +Google Test has the following macros to support death tests:
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_DEATH(`_statement, regex_`); | `EXPECT_DEATH(`_statement, regex_`); | _statement_ crashes with the given error |
        +| `ASSERT_DEATH_IF_SUPPORTED(`_statement, regex_`); | `EXPECT_DEATH_IF_SUPPORTED(`_statement, regex_`); | if death tests are supported, verifies that _statement_ crashes with the given error; otherwise verifies nothing |
        +| `ASSERT_EXIT(`_statement, predicate, regex_`); | `EXPECT_EXIT(`_statement, predicate, regex_`); |_statement_ exits with the given error and its exit code matches _predicate_ |
        +
        +where _statement_ is a statement that is expected to cause the process to
        +die, _predicate_ is a function or function object that evaluates an integer
        +exit status, and _regex_ is a regular expression that the stderr output of
        +_statement_ is expected to match. Note that _statement_ can be _any valid
        +statement_ (including _compound statement_) and doesn't have to be an
        +expression.
        +
        +As usual, the `ASSERT` variants abort the current test function, while the
        +`EXPECT` variants do not.
        +
        +**Note:** We use the word "crash" here to mean that the process
        +terminates with a _non-zero_ exit status code.  There are two
        +possibilities: either the process has called `exit()` or `_exit()`
        +with a non-zero value, or it may be killed by a signal.
        +
        +This means that if _statement_ terminates the process with a 0 exit
        +code, it is _not_ considered a crash by `EXPECT_DEATH`.  Use
        +`EXPECT_EXIT` instead if this is the case, or if you want to restrict
        +the exit code more precisely.
        +
        +A predicate here must accept an `int` and return a `bool`. The death test
        +succeeds only if the predicate returns `true`. Google Test defines a few
        +predicates that handle the most common cases:
        +
        +```
        +::testing::ExitedWithCode(exit_code)
        +```
        +
        +This expression is `true` if the program exited normally with the given exit
        +code.
        +
        +```
        +::testing::KilledBySignal(signal_number)  // Not available on Windows.
        +```
        +
        +This expression is `true` if the program was killed by the given signal.
        +
        +The `*_DEATH` macros are convenient wrappers for `*_EXIT` that use a predicate
        +that verifies the process' exit code is non-zero.
        +
        +Note that a death test only cares about three things:
        +
        +  1. does _statement_ abort or exit the process?
        +  1. (in the case of `ASSERT_EXIT` and `EXPECT_EXIT`) does the exit status satisfy _predicate_?  Or (in the case of `ASSERT_DEATH` and `EXPECT_DEATH`) is the exit status non-zero?  And
        +  1. does the stderr output match _regex_?
        +
        +In particular, if _statement_ generates an `ASSERT_*` or `EXPECT_*` failure, it will **not** cause the death test to fail, as Google Test assertions don't abort the process.
        +
        +To write a death test, simply use one of the above macros inside your test
        +function. For example,
        +
        +```
        +TEST(MyDeathTest, Foo) {
        +  // This death test uses a compound statement.
        +  ASSERT_DEATH({ int n = 5; Foo(&n); }, "Error on line .* of Foo()");
        +}
        +TEST(MyDeathTest, NormalExit) {
        +  EXPECT_EXIT(NormalExit(), ::testing::ExitedWithCode(0), "Success");
        +}
        +TEST(MyDeathTest, KillMyself) {
        +  EXPECT_EXIT(KillMyself(), ::testing::KilledBySignal(SIGKILL), "Sending myself unblockable signal");
        +}
        +```
        +
        +verifies that:
        +
        +  * calling `Foo(5)` causes the process to die with the given error message,
        +  * calling `NormalExit()` causes the process to print `"Success"` to stderr and exit with exit code 0, and
        +  * calling `KillMyself()` kills the process with signal `SIGKILL`.
        +
        +The test function body may contain other assertions and statements as well, if
        +necessary.
        +
        +_Important:_ We strongly recommend you to follow the convention of naming your
        +test case (not test) `*DeathTest` when it contains a death test, as
        +demonstrated in the above example. The `Death Tests And Threads` section below
        +explains why.
        +
        +If a test fixture class is shared by normal tests and death tests, you
        +can use typedef to introduce an alias for the fixture class and avoid
        +duplicating its code:
        +```
        +class FooTest : public ::testing::Test { ... };
        +
        +typedef FooTest FooDeathTest;
        +
        +TEST_F(FooTest, DoesThis) {
        +  // normal test
        +}
        +
        +TEST_F(FooDeathTest, DoesThat) {
        +  // death test
        +}
        +```
        +
        +_Availability:_ Linux, Windows (requires MSVC 8.0 or above), Cygwin, and Mac (the latter three are supported since v1.3.0).  `(ASSERT|EXPECT)_DEATH_IF_SUPPORTED` are new in v1.4.0.
        +
        +## Regular Expression Syntax ##
        +
        +On POSIX systems (e.g. Linux, Cygwin, and Mac), Google Test uses the
        +[POSIX extended regular expression](http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap09.html#tag_09_04)
        +syntax in death tests. To learn about this syntax, you may want to read this [Wikipedia entry](http://en.wikipedia.org/wiki/Regular_expression#POSIX_Extended_Regular_Expressions).
        +
        +On Windows, Google Test uses its own simple regular expression
        +implementation. It lacks many features you can find in POSIX extended
        +regular expressions.  For example, we don't support union (`"x|y"`),
        +grouping (`"(xy)"`), brackets (`"[xy]"`), and repetition count
        +(`"x{5,7}"`), among others. Below is what we do support (Letter `A` denotes a
        +literal character, period (`.`), or a single `\\` escape sequence; `x`
        +and `y` denote regular expressions.):
        +
        +| `c` | matches any literal character `c` |
        +|:----|:----------------------------------|
        +| `\\d` | matches any decimal digit         |
        +| `\\D` | matches any character that's not a decimal digit |
        +| `\\f` | matches `\f`                      |
        +| `\\n` | matches `\n`                      |
        +| `\\r` | matches `\r`                      |
        +| `\\s` | matches any ASCII whitespace, including `\n` |
        +| `\\S` | matches any character that's not a whitespace |
        +| `\\t` | matches `\t`                      |
        +| `\\v` | matches `\v`                      |
        +| `\\w` | matches any letter, `_`, or decimal digit |
        +| `\\W` | matches any character that `\\w` doesn't match |
        +| `\\c` | matches any literal character `c`, which must be a punctuation |
        +| `\\.` | matches the `.` character         |
        +| `.` | matches any single character except `\n` |
        +| `A?` | matches 0 or 1 occurrences of `A` |
        +| `A*` | matches 0 or many occurrences of `A` |
        +| `A+` | matches 1 or many occurrences of `A` |
        +| `^` | matches the beginning of a string (not that of each line) |
        +| `$` | matches the end of a string (not that of each line) |
        +| `xy` | matches `x` followed by `y`       |
        +
        +To help you determine which capability is available on your system,
        +Google Test defines macro `GTEST_USES_POSIX_RE=1` when it uses POSIX
        +extended regular expressions, or `GTEST_USES_SIMPLE_RE=1` when it uses
        +the simple version.  If you want your death tests to work in both
        +cases, you can either `#if` on these macros or use the more limited
        +syntax only.
        +
        +## How It Works ##
        +
        +Under the hood, `ASSERT_EXIT()` spawns a new process and executes the
        +death test statement in that process. The details of of how precisely
        +that happens depend on the platform and the variable
        +`::testing::GTEST_FLAG(death_test_style)` (which is initialized from the
        +command-line flag `--gtest_death_test_style`).
        +
        +  * On POSIX systems, `fork()` (or `clone()` on Linux) is used to spawn the child, after which:
        +    * If the variable's value is `"fast"`, the death test statement is immediately executed.
        +    * If the variable's value is `"threadsafe"`, the child process re-executes the unit test binary just as it was originally invoked, but with some extra flags to cause just the single death test under consideration to be run.
        +  * On Windows, the child is spawned using the `CreateProcess()` API, and re-executes the binary to cause just the single death test under consideration to be run - much like the `threadsafe` mode on POSIX.
        +
        +Other values for the variable are illegal and will cause the death test to
        +fail. Currently, the flag's default value is `"fast"`. However, we reserve the
        +right to change it in the future. Therefore, your tests should not depend on
        +this.
        +
        +In either case, the parent process waits for the child process to complete, and checks that
        +
        +  1. the child's exit status satisfies the predicate, and
        +  1. the child's stderr matches the regular expression.
        +
        +If the death test statement runs to completion without dying, the child
        +process will nonetheless terminate, and the assertion fails.
        +
        +## Death Tests And Threads ##
        +
        +The reason for the two death test styles has to do with thread safety. Due to
        +well-known problems with forking in the presence of threads, death tests should
        +be run in a single-threaded context. Sometimes, however, it isn't feasible to
        +arrange that kind of environment. For example, statically-initialized modules
        +may start threads before main is ever reached. Once threads have been created,
        +it may be difficult or impossible to clean them up.
        +
        +Google Test has three features intended to raise awareness of threading issues.
        +
        +  1. A warning is emitted if multiple threads are running when a death test is encountered.
        +  1. Test cases with a name ending in "DeathTest" are run before all other tests.
        +  1. It uses `clone()` instead of `fork()` to spawn the child process on Linux (`clone()` is not available on Cygwin and Mac), as `fork()` is more likely to cause the child to hang when the parent process has multiple threads.
        +
        +It's perfectly fine to create threads inside a death test statement; they are
        +executed in a separate process and cannot affect the parent.
        +
        +## Death Test Styles ##
        +
        +The "threadsafe" death test style was introduced in order to help mitigate the
        +risks of testing in a possibly multithreaded environment. It trades increased
        +test execution time (potentially dramatically so) for improved thread safety.
        +We suggest using the faster, default "fast" style unless your test has specific
        +problems with it.
        +
        +You can choose a particular style of death tests by setting the flag
        +programmatically:
        +
        +```
        +::testing::FLAGS_gtest_death_test_style = "threadsafe";
        +```
        +
        +You can do this in `main()` to set the style for all death tests in the
        +binary, or in individual tests. Recall that flags are saved before running each
        +test and restored afterwards, so you need not do that yourself. For example:
        +
        +```
        +TEST(MyDeathTest, TestOne) {
        +  ::testing::FLAGS_gtest_death_test_style = "threadsafe";
        +  // This test is run in the "threadsafe" style:
        +  ASSERT_DEATH(ThisShouldDie(), "");
        +}
        +
        +TEST(MyDeathTest, TestTwo) {
        +  // This test is run in the "fast" style:
        +  ASSERT_DEATH(ThisShouldDie(), "");
        +}
        +
        +int main(int argc, char** argv) {
        +  ::testing::InitGoogleTest(&argc, argv);
        +  ::testing::FLAGS_gtest_death_test_style = "fast";
        +  return RUN_ALL_TESTS();
        +}
        +```
        +
        +## Caveats ##
        +
        +The _statement_ argument of `ASSERT_EXIT()` can be any valid C++ statement.
        +If it leaves the current function via a `return` statement or by throwing an exception,
        +the death test is considered to have failed.  Some Google Test macros may return
        +from the current function (e.g. `ASSERT_TRUE()`), so be sure to avoid them in _statement_.
        +
        +Since _statement_ runs in the child process, any in-memory side effect (e.g.
        +modifying a variable, releasing memory, etc) it causes will _not_ be observable
        +in the parent process. In particular, if you release memory in a death test,
        +your program will fail the heap check as the parent process will never see the
        +memory reclaimed. To solve this problem, you can
        +
        +  1. try not to free memory in a death test;
        +  1. free the memory again in the parent process; or
        +  1. do not use the heap checker in your program.
        +
        +Due to an implementation detail, you cannot place multiple death test
        +assertions on the same line; otherwise, compilation will fail with an unobvious
        +error message.
        +
        +Despite the improved thread safety afforded by the "threadsafe" style of death
        +test, thread problems such as deadlock are still possible in the presence of
        +handlers registered with `pthread_atfork(3)`.
        +
        +# Using Assertions in Sub-routines #
        +
        +## Adding Traces to Assertions ##
        +
        +If a test sub-routine is called from several places, when an assertion
        +inside it fails, it can be hard to tell which invocation of the
        +sub-routine the failure is from.  You can alleviate this problem using
        +extra logging or custom failure messages, but that usually clutters up
        +your tests. A better solution is to use the `SCOPED_TRACE` macro:
        +
        +| `SCOPED_TRACE(`_message_`);` |
        +|:-----------------------------|
        +
        +where _message_ can be anything streamable to `std::ostream`. This
        +macro will cause the current file name, line number, and the given
        +message to be added in every failure message. The effect will be
        +undone when the control leaves the current lexical scope.
        +
        +For example,
        +
        +```
        +10: void Sub1(int n) {
        +11:   EXPECT_EQ(1, Bar(n));
        +12:   EXPECT_EQ(2, Bar(n + 1));
        +13: }
        +14: 
        +15: TEST(FooTest, Bar) {
        +16:   {
        +17:     SCOPED_TRACE("A");  // This trace point will be included in
        +18:                         // every failure in this scope.
        +19:     Sub1(1);
        +20:   }
        +21:   // Now it won't.
        +22:   Sub1(9);
        +23: }
        +```
        +
        +could result in messages like these:
        +
        +```
        +path/to/foo_test.cc:11: Failure
        +Value of: Bar(n)
        +Expected: 1
        +  Actual: 2
        +   Trace:
        +path/to/foo_test.cc:17: A
        +
        +path/to/foo_test.cc:12: Failure
        +Value of: Bar(n + 1)
        +Expected: 2
        +  Actual: 3
        +```
        +
        +Without the trace, it would've been difficult to know which invocation
        +of `Sub1()` the two failures come from respectively. (You could add an
        +extra message to each assertion in `Sub1()` to indicate the value of
        +`n`, but that's tedious.)
        +
        +Some tips on using `SCOPED_TRACE`:
        +
        +  1. With a suitable message, it's often enough to use `SCOPED_TRACE` at the beginning of a sub-routine, instead of at each call site.
        +  1. When calling sub-routines inside a loop, make the loop iterator part of the message in `SCOPED_TRACE` such that you can know which iteration the failure is from.
        +  1. Sometimes the line number of the trace point is enough for identifying the particular invocation of a sub-routine. In this case, you don't have to choose a unique message for `SCOPED_TRACE`. You can simply use `""`.
        +  1. You can use `SCOPED_TRACE` in an inner scope when there is one in the outer scope. In this case, all active trace points will be included in the failure messages, in reverse order they are encountered.
        +  1. The trace dump is clickable in Emacs' compilation buffer - hit return on a line number and you'll be taken to that line in the source file!
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +## Propagating Fatal Failures ##
        +
        +A common pitfall when using `ASSERT_*` and `FAIL*` is not understanding that
        +when they fail they only abort the _current function_, not the entire test. For
        +example, the following test will segfault:
        +```
        +void Subroutine() {
        +  // Generates a fatal failure and aborts the current function.
        +  ASSERT_EQ(1, 2);
        +  // The following won't be executed.
        +  ...
        +}
        +
        +TEST(FooTest, Bar) {
        +  Subroutine();
        +  // The intended behavior is for the fatal failure
        +  // in Subroutine() to abort the entire test.
        +  // The actual behavior: the function goes on after Subroutine() returns.
        +  int* p = NULL;
        +  *p = 3; // Segfault!
        +}
        +```
        +
        +Since we don't use exceptions, it is technically impossible to
        +implement the intended behavior here.  To alleviate this, Google Test
        +provides two solutions.  You could use either the
        +`(ASSERT|EXPECT)_NO_FATAL_FAILURE` assertions or the
        +`HasFatalFailure()` function.  They are described in the following two
        +subsections.
        +
        +### Asserting on Subroutines ###
        +
        +As shown above, if your test calls a subroutine that has an `ASSERT_*`
        +failure in it, the test will continue after the subroutine
        +returns. This may not be what you want.
        +
        +Often people want fatal failures to propagate like exceptions.  For
        +that Google Test offers the following macros:
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_NO_FATAL_FAILURE(`_statement_`);` | `EXPECT_NO_FATAL_FAILURE(`_statement_`);` | _statement_ doesn't generate any new fatal failures in the current thread. |
        +
        +Only failures in the thread that executes the assertion are checked to
        +determine the result of this type of assertions.  If _statement_
        +creates new threads, failures in these threads are ignored.
        +
        +Examples:
        +
        +```
        +ASSERT_NO_FATAL_FAILURE(Foo());
        +
        +int i;
        +EXPECT_NO_FATAL_FAILURE({
        +  i = Bar();
        +});
        +```
        +
        +_Availability:_ Linux, Windows, Mac. Assertions from multiple threads
        +are currently not supported.
        +
        +### Checking for Failures in the Current Test ###
        +
        +`HasFatalFailure()` in the `::testing::Test` class returns `true` if an
        +assertion in the current test has suffered a fatal failure. This
        +allows functions to catch fatal failures in a sub-routine and return
        +early.
        +
        +```
        +class Test {
        + public:
        +  ...
        +  static bool HasFatalFailure();
        +};
        +```
        +
        +The typical usage, which basically simulates the behavior of a thrown
        +exception, is:
        +
        +```
        +TEST(FooTest, Bar) {
        +  Subroutine();
        +  // Aborts if Subroutine() had a fatal failure.
        +  if (HasFatalFailure())
        +    return;
        +  // The following won't be executed.
        +  ...
        +}
        +```
        +
        +If `HasFatalFailure()` is used outside of `TEST()` , `TEST_F()` , or a test
        +fixture, you must add the `::testing::Test::` prefix, as in:
        +
        +```
        +if (::testing::Test::HasFatalFailure())
        +  return;
        +```
        +
        +Similarly, `HasNonfatalFailure()` returns `true` if the current test
        +has at least one non-fatal failure, and `HasFailure()` returns `true`
        +if the current test has at least one failure of either kind.
        +
        +_Availability:_ Linux, Windows, Mac.  `HasNonfatalFailure()` and
        +`HasFailure()` are available since version 1.4.0.
        +
        +# Logging Additional Information #
        +
        +In your test code, you can call `RecordProperty("key", value)` to log
        +additional information, where `value` can be either a string or an `int`. The _last_ value recorded for a key will be emitted to the XML output
        +if you specify one. For example, the test
        +
        +```
        +TEST_F(WidgetUsageTest, MinAndMaxWidgets) {
        +  RecordProperty("MaximumWidgets", ComputeMaxUsage());
        +  RecordProperty("MinimumWidgets", ComputeMinUsage());
        +}
        +```
        +
        +will output XML like this:
        +
        +```
        +...
        +  <testcase name="MinAndMaxWidgets" status="run" time="6" classname="WidgetUsageTest"
        +            MaximumWidgets="12"
        +            MinimumWidgets="9" />
        +...
        +```
        +
        +_Note_:
        +  * `RecordProperty()` is a static member of the `Test` class. Therefore it needs to be prefixed with `::testing::Test::` if used outside of the `TEST` body and the test fixture class.
        +  * `key` must be a valid XML attribute name, and cannot conflict with the ones already used by Google Test (`name`, `status`, `time`, `classname`, `type_param`, and `value_param`).
        +  * Calling `RecordProperty()` outside of the lifespan of a test is allowed. If it's called outside of a test but between a test case's `SetUpTestCase()` and `TearDownTestCase()` methods, it will be attributed to the XML element for the test case. If it's called outside of all test cases (e.g. in a test environment), it will be attributed to the top-level XML element.
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +# Sharing Resources Between Tests in the Same Test Case #
        +
        +
        +
        +Google Test creates a new test fixture object for each test in order to make
        +tests independent and easier to debug. However, sometimes tests use resources
        +that are expensive to set up, making the one-copy-per-test model prohibitively
        +expensive.
        +
        +If the tests don't change the resource, there's no harm in them sharing a
        +single resource copy. So, in addition to per-test set-up/tear-down, Google Test
        +also supports per-test-case set-up/tear-down. To use it:
        +
        +  1. In your test fixture class (say `FooTest` ), define as `static` some member variables to hold the shared resources.
        +  1. In the same test fixture class, define a `static void SetUpTestCase()` function (remember not to spell it as **`SetupTestCase`** with a small `u`!) to set up the shared resources and a `static void TearDownTestCase()` function to tear them down.
        +
        +That's it! Google Test automatically calls `SetUpTestCase()` before running the
        +_first test_ in the `FooTest` test case (i.e. before creating the first
        +`FooTest` object), and calls `TearDownTestCase()` after running the _last test_
        +in it (i.e. after deleting the last `FooTest` object). In between, the tests
        +can use the shared resources.
        +
        +Remember that the test order is undefined, so your code can't depend on a test
        +preceding or following another. Also, the tests must either not modify the
        +state of any shared resource, or, if they do modify the state, they must
        +restore the state to its original value before passing control to the next
        +test.
        +
        +Here's an example of per-test-case set-up and tear-down:
        +```
        +class FooTest : public ::testing::Test {
        + protected:
        +  // Per-test-case set-up.
        +  // Called before the first test in this test case.
        +  // Can be omitted if not needed.
        +  static void SetUpTestCase() {
        +    shared_resource_ = new ...;
        +  }
        +
        +  // Per-test-case tear-down.
        +  // Called after the last test in this test case.
        +  // Can be omitted if not needed.
        +  static void TearDownTestCase() {
        +    delete shared_resource_;
        +    shared_resource_ = NULL;
        +  }
        +
        +  // You can define per-test set-up and tear-down logic as usual.
        +  virtual void SetUp() { ... }
        +  virtual void TearDown() { ... }
        +
        +  // Some expensive resource shared by all tests.
        +  static T* shared_resource_;
        +};
        +
        +T* FooTest::shared_resource_ = NULL;
        +
        +TEST_F(FooTest, Test1) {
        +  ... you can refer to shared_resource here ...
        +}
        +TEST_F(FooTest, Test2) {
        +  ... you can refer to shared_resource here ...
        +}
        +```
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +# Global Set-Up and Tear-Down #
        +
        +Just as you can do set-up and tear-down at the test level and the test case
        +level, you can also do it at the test program level. Here's how.
        +
        +First, you subclass the `::testing::Environment` class to define a test
        +environment, which knows how to set-up and tear-down:
        +
        +```
        +class Environment {
        + public:
        +  virtual ~Environment() {}
        +  // Override this to define how to set up the environment.
        +  virtual void SetUp() {}
        +  // Override this to define how to tear down the environment.
        +  virtual void TearDown() {}
        +};
        +```
        +
        +Then, you register an instance of your environment class with Google Test by
        +calling the `::testing::AddGlobalTestEnvironment()` function:
        +
        +```
        +Environment* AddGlobalTestEnvironment(Environment* env);
        +```
        +
        +Now, when `RUN_ALL_TESTS()` is called, it first calls the `SetUp()` method of
        +the environment object, then runs the tests if there was no fatal failures, and
        +finally calls `TearDown()` of the environment object.
        +
        +It's OK to register multiple environment objects. In this case, their `SetUp()`
        +will be called in the order they are registered, and their `TearDown()` will be
        +called in the reverse order.
        +
        +Note that Google Test takes ownership of the registered environment objects.
        +Therefore **do not delete them** by yourself.
        +
        +You should call `AddGlobalTestEnvironment()` before `RUN_ALL_TESTS()` is
        +called, probably in `main()`. If you use `gtest_main`, you need to      call
        +this before `main()` starts for it to take effect. One way to do this is to
        +define a global variable like this:
        +
        +```
        +::testing::Environment* const foo_env = ::testing::AddGlobalTestEnvironment(new FooEnvironment);
        +```
        +
        +However, we strongly recommend you to write your own `main()` and call
        +`AddGlobalTestEnvironment()` there, as relying on initialization of global
        +variables makes the code harder to read and may cause problems when you
        +register multiple environments from different translation units and the
        +environments have dependencies among them (remember that the compiler doesn't
        +guarantee the order in which global variables from different translation units
        +are initialized).
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +
        +# Value Parameterized Tests #
        +
        +_Value-parameterized tests_ allow you to test your code with different
        +parameters without writing multiple copies of the same test.
        +
        +Suppose you write a test for your code and then realize that your code is affected by a presence of a Boolean command line flag.
        +
        +```
        +TEST(MyCodeTest, TestFoo) {
        +  // A code to test foo().
        +}
        +```
        +
        +Usually people factor their test code into a function with a Boolean parameter in such situations. The function sets the flag, then executes the testing code.
        +
        +```
        +void TestFooHelper(bool flag_value) {
        +  flag = flag_value;
        +  // A code to test foo().
        +}
        +
        +TEST(MyCodeTest, TestFoo) {
        +  TestFooHelper(false);
        +  TestFooHelper(true);
        +}
        +```
        +
        +But this setup has serious drawbacks. First, when a test assertion fails in your tests, it becomes unclear what value of the parameter caused it to fail. You can stream a clarifying message into your `EXPECT`/`ASSERT` statements, but it you'll have to do it with all of them. Second, you have to add one such helper function per test. What if you have ten tests? Twenty? A hundred?
        +
        +Value-parameterized tests will let you write your test only once and then easily instantiate and run it with an arbitrary number of parameter values.
        +
        +Here are some other situations when value-parameterized tests come handy:
        +
        +  * You want to test different implementations of an OO interface.
        +  * You want to test your code over various inputs (a.k.a. data-driven testing). This feature is easy to abuse, so please exercise your good sense when doing it!
        +
        +## How to Write Value-Parameterized Tests ##
        +
        +To write value-parameterized tests, first you should define a fixture
        +class.  It must be derived from both `::testing::Test` and
        +`::testing::WithParamInterface<T>` (the latter is a pure interface),
        +where `T` is the type of your parameter values.  For convenience, you
        +can just derive the fixture class from `::testing::TestWithParam<T>`,
        +which itself is derived from both `::testing::Test` and
        +`::testing::WithParamInterface<T>`. `T` can be any copyable type. If
        +it's a raw pointer, you are responsible for managing the lifespan of
        +the pointed values.
        +
        +```
        +class FooTest : public ::testing::TestWithParam<const char*> {
        +  // You can implement all the usual fixture class members here.
        +  // To access the test parameter, call GetParam() from class
        +  // TestWithParam<T>.
        +};
        +
        +// Or, when you want to add parameters to a pre-existing fixture class:
        +class BaseTest : public ::testing::Test {
        +  ...
        +};
        +class BarTest : public BaseTest,
        +                public ::testing::WithParamInterface<const char*> {
        +  ...
        +};
        +```
        +
        +Then, use the `TEST_P` macro to define as many test patterns using
        +this fixture as you want.  The `_P` suffix is for "parameterized" or
        +"pattern", whichever you prefer to think.
        +
        +```
        +TEST_P(FooTest, DoesBlah) {
        +  // Inside a test, access the test parameter with the GetParam() method
        +  // of the TestWithParam<T> class:
        +  EXPECT_TRUE(foo.Blah(GetParam()));
        +  ...
        +}
        +
        +TEST_P(FooTest, HasBlahBlah) {
        +  ...
        +}
        +```
        +
        +Finally, you can use `INSTANTIATE_TEST_CASE_P` to instantiate the test
        +case with any set of parameters you want. Google Test defines a number of
        +functions for generating test parameters. They return what we call
        +(surprise!) _parameter generators_. Here is a summary of them,
        +which are all in the `testing` namespace:
        +
        +| `Range(begin, end[, step])` | Yields values `{begin, begin+step, begin+step+step, ...}`. The values do not include `end`. `step` defaults to 1. |
        +|:----------------------------|:------------------------------------------------------------------------------------------------------------------|
        +| `Values(v1, v2, ..., vN)`   | Yields values `{v1, v2, ..., vN}`.                                                                                |
        +| `ValuesIn(container)` and `ValuesIn(begin, end)` | Yields values from a C-style array, an STL-style container, or an iterator range `[begin, end)`. `container`, `begin`, and `end` can be expressions whose values are determined at run time.  |
        +| `Bool()`                    | Yields sequence `{false, true}`.                                                                                  |
        +| `Combine(g1, g2, ..., gN)`  | Yields all combinations (the Cartesian product for the math savvy) of the values generated by the `N` generators. This is only available if your system provides the `<tr1/tuple>` header. If you are sure your system does, and Google Test disagrees, you can override it by defining `GTEST_HAS_TR1_TUPLE=1`. See comments in [include/gtest/internal/gtest-port.h](http://code.google.com/p/googletest/source/browse/trunk/include/gtest/internal/gtest-port.h) for more information. |
        +
        +For more details, see the comments at the definitions of these functions in the [source code](http://code.google.com/p/googletest/source/browse/trunk/include/gtest/gtest-param-test.h).
        +
        +The following statement will instantiate tests from the `FooTest` test case
        +each with parameter values `"meeny"`, `"miny"`, and `"moe"`.
        +
        +```
        +INSTANTIATE_TEST_CASE_P(InstantiationName,
        +                        FooTest,
        +                        ::testing::Values("meeny", "miny", "moe"));
        +```
        +
        +To distinguish different instances of the pattern (yes, you can
        +instantiate it more than once), the first argument to
        +`INSTANTIATE_TEST_CASE_P` is a prefix that will be added to the actual
        +test case name. Remember to pick unique prefixes for different
        +instantiations. The tests from the instantiation above will have these
        +names:
        +
        +  * `InstantiationName/FooTest.DoesBlah/0` for `"meeny"`
        +  * `InstantiationName/FooTest.DoesBlah/1` for `"miny"`
        +  * `InstantiationName/FooTest.DoesBlah/2` for `"moe"`
        +  * `InstantiationName/FooTest.HasBlahBlah/0` for `"meeny"`
        +  * `InstantiationName/FooTest.HasBlahBlah/1` for `"miny"`
        +  * `InstantiationName/FooTest.HasBlahBlah/2` for `"moe"`
        +
        +You can use these names in [--gtest\_filter](#Running_a_Subset_of_the_Tests.md).
        +
        +This statement will instantiate all tests from `FooTest` again, each
        +with parameter values `"cat"` and `"dog"`:
        +
        +```
        +const char* pets[] = {"cat", "dog"};
        +INSTANTIATE_TEST_CASE_P(AnotherInstantiationName, FooTest,
        +                        ::testing::ValuesIn(pets));
        +```
        +
        +The tests from the instantiation above will have these names:
        +
        +  * `AnotherInstantiationName/FooTest.DoesBlah/0` for `"cat"`
        +  * `AnotherInstantiationName/FooTest.DoesBlah/1` for `"dog"`
        +  * `AnotherInstantiationName/FooTest.HasBlahBlah/0` for `"cat"`
        +  * `AnotherInstantiationName/FooTest.HasBlahBlah/1` for `"dog"`
        +
        +Please note that `INSTANTIATE_TEST_CASE_P` will instantiate _all_
        +tests in the given test case, whether their definitions come before or
        +_after_ the `INSTANTIATE_TEST_CASE_P` statement.
        +
        +You can see
        +[these](http://code.google.com/p/googletest/source/browse/trunk/samples/sample7_unittest.cc)
        +[files](http://code.google.com/p/googletest/source/browse/trunk/samples/sample8_unittest.cc) for more examples.
        +
        +_Availability_: Linux, Windows (requires MSVC 8.0 or above), Mac; since version 1.2.0.
        +
        +## Creating Value-Parameterized Abstract Tests ##
        +
        +In the above, we define and instantiate `FooTest` in the same source
        +file. Sometimes you may want to define value-parameterized tests in a
        +library and let other people instantiate them later. This pattern is
        +known as <i>abstract tests</i>. As an example of its application, when you
        +are designing an interface you can write a standard suite of abstract
        +tests (perhaps using a factory function as the test parameter) that
        +all implementations of the interface are expected to pass. When
        +someone implements the interface, he can instantiate your suite to get
        +all the interface-conformance tests for free.
        +
        +To define abstract tests, you should organize your code like this:
        +
        +  1. Put the definition of the parameterized test fixture class (e.g. `FooTest`) in a header file, say `foo_param_test.h`. Think of this as _declaring_ your abstract tests.
        +  1. Put the `TEST_P` definitions in `foo_param_test.cc`, which includes `foo_param_test.h`. Think of this as _implementing_ your abstract tests.
        +
        +Once they are defined, you can instantiate them by including
        +`foo_param_test.h`, invoking `INSTANTIATE_TEST_CASE_P()`, and linking
        +with `foo_param_test.cc`. You can instantiate the same abstract test
        +case multiple times, possibly in different source files.
        +
        +# Typed Tests #
        +
        +Suppose you have multiple implementations of the same interface and
        +want to make sure that all of them satisfy some common requirements.
        +Or, you may have defined several types that are supposed to conform to
        +the same "concept" and you want to verify it.  In both cases, you want
        +the same test logic repeated for different types.
        +
        +While you can write one `TEST` or `TEST_F` for each type you want to
        +test (and you may even factor the test logic into a function template
        +that you invoke from the `TEST`), it's tedious and doesn't scale:
        +if you want _m_ tests over _n_ types, you'll end up writing _m\*n_
        +`TEST`s.
        +
        +_Typed tests_ allow you to repeat the same test logic over a list of
        +types.  You only need to write the test logic once, although you must
        +know the type list when writing typed tests.  Here's how you do it:
        +
        +First, define a fixture class template.  It should be parameterized
        +by a type.  Remember to derive it from `::testing::Test`:
        +
        +```
        +template <typename T>
        +class FooTest : public ::testing::Test {
        + public:
        +  ...
        +  typedef std::list<T> List;
        +  static T shared_;
        +  T value_;
        +};
        +```
        +
        +Next, associate a list of types with the test case, which will be
        +repeated for each type in the list:
        +
        +```
        +typedef ::testing::Types<char, int, unsigned int> MyTypes;
        +TYPED_TEST_CASE(FooTest, MyTypes);
        +```
        +
        +The `typedef` is necessary for the `TYPED_TEST_CASE` macro to parse
        +correctly.  Otherwise the compiler will think that each comma in the
        +type list introduces a new macro argument.
        +
        +Then, use `TYPED_TEST()` instead of `TEST_F()` to define a typed test
        +for this test case.  You can repeat this as many times as you want:
        +
        +```
        +TYPED_TEST(FooTest, DoesBlah) {
        +  // Inside a test, refer to the special name TypeParam to get the type
        +  // parameter.  Since we are inside a derived class template, C++ requires
        +  // us to visit the members of FooTest via 'this'.
        +  TypeParam n = this->value_;
        +
        +  // To visit static members of the fixture, add the 'TestFixture::'
        +  // prefix.
        +  n += TestFixture::shared_;
        +
        +  // To refer to typedefs in the fixture, add the 'typename TestFixture::'
        +  // prefix.  The 'typename' is required to satisfy the compiler.
        +  typename TestFixture::List values;
        +  values.push_back(n);
        +  ...
        +}
        +
        +TYPED_TEST(FooTest, HasPropertyA) { ... }
        +```
        +
        +You can see `samples/sample6_unittest.cc` for a complete example.
        +
        +_Availability:_ Linux, Windows (requires MSVC 8.0 or above), Mac;
        +since version 1.1.0.
        +
        +# Type-Parameterized Tests #
        +
        +_Type-parameterized tests_ are like typed tests, except that they
        +don't require you to know the list of types ahead of time.  Instead,
        +you can define the test logic first and instantiate it with different
        +type lists later.  You can even instantiate it more than once in the
        +same program.
        +
        +If you are designing an interface or concept, you can define a suite
        +of type-parameterized tests to verify properties that any valid
        +implementation of the interface/concept should have.  Then, the author
        +of each implementation can just instantiate the test suite with his
        +type to verify that it conforms to the requirements, without having to
        +write similar tests repeatedly.  Here's an example:
        +
        +First, define a fixture class template, as we did with typed tests:
        +
        +```
        +template <typename T>
        +class FooTest : public ::testing::Test {
        +  ...
        +};
        +```
        +
        +Next, declare that you will define a type-parameterized test case:
        +
        +```
        +TYPED_TEST_CASE_P(FooTest);
        +```
        +
        +The `_P` suffix is for "parameterized" or "pattern", whichever you
        +prefer to think.
        +
        +Then, use `TYPED_TEST_P()` to define a type-parameterized test.  You
        +can repeat this as many times as you want:
        +
        +```
        +TYPED_TEST_P(FooTest, DoesBlah) {
        +  // Inside a test, refer to TypeParam to get the type parameter.
        +  TypeParam n = 0;
        +  ...
        +}
        +
        +TYPED_TEST_P(FooTest, HasPropertyA) { ... }
        +```
        +
        +Now the tricky part: you need to register all test patterns using the
        +`REGISTER_TYPED_TEST_CASE_P` macro before you can instantiate them.
        +The first argument of the macro is the test case name; the rest are
        +the names of the tests in this test case:
        +
        +```
        +REGISTER_TYPED_TEST_CASE_P(FooTest,
        +                           DoesBlah, HasPropertyA);
        +```
        +
        +Finally, you are free to instantiate the pattern with the types you
        +want.  If you put the above code in a header file, you can `#include`
        +it in multiple C++ source files and instantiate it multiple times.
        +
        +```
        +typedef ::testing::Types<char, int, unsigned int> MyTypes;
        +INSTANTIATE_TYPED_TEST_CASE_P(My, FooTest, MyTypes);
        +```
        +
        +To distinguish different instances of the pattern, the first argument
        +to the `INSTANTIATE_TYPED_TEST_CASE_P` macro is a prefix that will be
        +added to the actual test case name.  Remember to pick unique prefixes
        +for different instances.
        +
        +In the special case where the type list contains only one type, you
        +can write that type directly without `::testing::Types<...>`, like this:
        +
        +```
        +INSTANTIATE_TYPED_TEST_CASE_P(My, FooTest, int);
        +```
        +
        +You can see `samples/sample6_unittest.cc` for a complete example.
        +
        +_Availability:_ Linux, Windows (requires MSVC 8.0 or above), Mac;
        +since version 1.1.0.
        +
        +# Testing Private Code #
        +
        +If you change your software's internal implementation, your tests should not
        +break as long as the change is not observable by users. Therefore, per the
        +_black-box testing principle_, most of the time you should test your code
        +through its public interfaces.
        +
        +If you still find yourself needing to test internal implementation code,
        +consider if there's a better design that wouldn't require you to do so. If you
        +absolutely have to test non-public interface code though, you can. There are
        +two cases to consider:
        +
        +  * Static functions (_not_ the same as static member functions!) or unnamed namespaces, and
        +  * Private or protected class members
        +
        +## Static Functions ##
        +
        +Both static functions and definitions/declarations in an unnamed namespace are
        +only visible within the same translation unit. To test them, you can `#include`
        +the entire `.cc` file being tested in your `*_test.cc` file. (#including `.cc`
        +files is not a good way to reuse code - you should not do this in production
        +code!)
        +
        +However, a better approach is to move the private code into the
        +`foo::internal` namespace, where `foo` is the namespace your project normally
        +uses, and put the private declarations in a `*-internal.h` file. Your
        +production `.cc` files and your tests are allowed to include this internal
        +header, but your clients are not. This way, you can fully test your internal
        +implementation without leaking it to your clients.
        +
        +## Private Class Members ##
        +
        +Private class members are only accessible from within the class or by friends.
        +To access a class' private members, you can declare your test fixture as a
        +friend to the class and define accessors in your fixture. Tests using the
        +fixture can then access the private members of your production class via the
        +accessors in the fixture. Note that even though your fixture is a friend to
        +your production class, your tests are not automatically friends to it, as they
        +are technically defined in sub-classes of the fixture.
        +
        +Another way to test private members is to refactor them into an implementation
        +class, which is then declared in a `*-internal.h` file. Your clients aren't
        +allowed to include this header but your tests can. Such is called the Pimpl
        +(Private Implementation) idiom.
        +
        +Or, you can declare an individual test as a friend of your class by adding this
        +line in the class body:
        +
        +```
        +FRIEND_TEST(TestCaseName, TestName);
        +```
        +
        +For example,
        +```
        +// foo.h
        +#include "gtest/gtest_prod.h"
        +
        +// Defines FRIEND_TEST.
        +class Foo {
        +  ...
        + private:
        +  FRIEND_TEST(FooTest, BarReturnsZeroOnNull);
        +  int Bar(void* x);
        +};
        +
        +// foo_test.cc
        +...
        +TEST(FooTest, BarReturnsZeroOnNull) {
        +  Foo foo;
        +  EXPECT_EQ(0, foo.Bar(NULL));
        +  // Uses Foo's private member Bar().
        +}
        +```
        +
        +Pay special attention when your class is defined in a namespace, as you should
        +define your test fixtures and tests in the same namespace if you want them to
        +be friends of your class. For example, if the code to be tested looks like:
        +
        +```
        +namespace my_namespace {
        +
        +class Foo {
        +  friend class FooTest;
        +  FRIEND_TEST(FooTest, Bar);
        +  FRIEND_TEST(FooTest, Baz);
        +  ...
        +  definition of the class Foo
        +  ...
        +};
        +
        +}  // namespace my_namespace
        +```
        +
        +Your test code should be something like:
        +
        +```
        +namespace my_namespace {
        +class FooTest : public ::testing::Test {
        + protected:
        +  ...
        +};
        +
        +TEST_F(FooTest, Bar) { ... }
        +TEST_F(FooTest, Baz) { ... }
        +
        +}  // namespace my_namespace
        +```
        +
        +# Catching Failures #
        +
        +If you are building a testing utility on top of Google Test, you'll
        +want to test your utility.  What framework would you use to test it?
        +Google Test, of course.
        +
        +The challenge is to verify that your testing utility reports failures
        +correctly.  In frameworks that report a failure by throwing an
        +exception, you could catch the exception and assert on it.  But Google
        +Test doesn't use exceptions, so how do we test that a piece of code
        +generates an expected failure?
        +
        +`"gtest/gtest-spi.h"` contains some constructs to do this.  After
        +#including this header, you can use
        +
        +| `EXPECT_FATAL_FAILURE(`_statement, substring_`);` |
        +|:--------------------------------------------------|
        +
        +to assert that _statement_ generates a fatal (e.g. `ASSERT_*`) failure
        +whose message contains the given _substring_, or use
        +
        +| `EXPECT_NONFATAL_FAILURE(`_statement, substring_`);` |
        +|:-----------------------------------------------------|
        +
        +if you are expecting a non-fatal (e.g. `EXPECT_*`) failure.
        +
        +For technical reasons, there are some caveats:
        +
        +  1. You cannot stream a failure message to either macro.
        +  1. _statement_ in `EXPECT_FATAL_FAILURE()` cannot reference local non-static variables or non-static members of `this` object.
        +  1. _statement_ in `EXPECT_FATAL_FAILURE()` cannot return a value.
        +
        +_Note:_ Google Test is designed with threads in mind.  Once the
        +synchronization primitives in `"gtest/internal/gtest-port.h"` have
        +been implemented, Google Test will become thread-safe, meaning that
        +you can then use assertions in multiple threads concurrently.  Before
        +
        +that, however, Google Test only supports single-threaded usage.  Once
        +thread-safe, `EXPECT_FATAL_FAILURE()` and `EXPECT_NONFATAL_FAILURE()`
        +will capture failures in the current thread only. If _statement_
        +creates new threads, failures in these threads will be ignored.  If
        +you want to capture failures from all threads instead, you should use
        +the following macros:
        +
        +| `EXPECT_FATAL_FAILURE_ON_ALL_THREADS(`_statement, substring_`);` |
        +|:-----------------------------------------------------------------|
        +| `EXPECT_NONFATAL_FAILURE_ON_ALL_THREADS(`_statement, substring_`);` |
        +
        +# Getting the Current Test's Name #
        +
        +Sometimes a function may need to know the name of the currently running test.
        +For example, you may be using the `SetUp()` method of your test fixture to set
        +the golden file name based on which test is running. The `::testing::TestInfo`
        +class has this information:
        +
        +```
        +namespace testing {
        +
        +class TestInfo {
        + public:
        +  // Returns the test case name and the test name, respectively.
        +  //
        +  // Do NOT delete or free the return value - it's managed by the
        +  // TestInfo class.
        +  const char* test_case_name() const;
        +  const char* name() const;
        +};
        +
        +}  // namespace testing
        +```
        +
        +
        +> To obtain a `TestInfo` object for the currently running test, call
        +`current_test_info()` on the `UnitTest` singleton object:
        +
        +```
        +// Gets information about the currently running test.
        +// Do NOT delete the returned object - it's managed by the UnitTest class.
        +const ::testing::TestInfo* const test_info =
        +  ::testing::UnitTest::GetInstance()->current_test_info();
        +printf("We are in test %s of test case %s.\n",
        +       test_info->name(), test_info->test_case_name());
        +```
        +
        +`current_test_info()` returns a null pointer if no test is running. In
        +particular, you cannot find the test case name in `TestCaseSetUp()`,
        +`TestCaseTearDown()` (where you know the test case name implicitly), or
        +functions called from them.
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +# Extending Google Test by Handling Test Events #
        +
        +Google Test provides an <b>event listener API</b> to let you receive
        +notifications about the progress of a test program and test
        +failures. The events you can listen to include the start and end of
        +the test program, a test case, or a test method, among others. You may
        +use this API to augment or replace the standard console output,
        +replace the XML output, or provide a completely different form of
        +output, such as a GUI or a database. You can also use test events as
        +checkpoints to implement a resource leak checker, for example.
        +
        +_Availability:_ Linux, Windows, Mac; since v1.4.0.
        +
        +## Defining Event Listeners ##
        +
        +To define a event listener, you subclass either
        +[testing::TestEventListener](http://code.google.com/p/googletest/source/browse/trunk/include/gtest/gtest.h#855)
        +or [testing::EmptyTestEventListener](http://code.google.com/p/googletest/source/browse/trunk/include/gtest/gtest.h#905).
        +The former is an (abstract) interface, where <i>each pure virtual method<br>
        +can be overridden to handle a test event</i> (For example, when a test
        +starts, the `OnTestStart()` method will be called.). The latter provides
        +an empty implementation of all methods in the interface, such that a
        +subclass only needs to override the methods it cares about.
        +
        +When an event is fired, its context is passed to the handler function
        +as an argument. The following argument types are used:
        +  * [UnitTest](http://code.google.com/p/googletest/source/browse/trunk/include/gtest/gtest.h#1007) reflects the state of the entire test program,
        +  * [TestCase](http://code.google.com/p/googletest/source/browse/trunk/include/gtest/gtest.h#689) has information about a test case, which can contain one or more tests,
        +  * [TestInfo](http://code.google.com/p/googletest/source/browse/trunk/include/gtest/gtest.h#599) contains the state of a test, and
        +  * [TestPartResult](http://code.google.com/p/googletest/source/browse/trunk/include/gtest/gtest-test-part.h#42) represents the result of a test assertion.
        +
        +An event handler function can examine the argument it receives to find
        +out interesting information about the event and the test program's
        +state.  Here's an example:
        +
        +```
        +  class MinimalistPrinter : public ::testing::EmptyTestEventListener {
        +    // Called before a test starts.
        +    virtual void OnTestStart(const ::testing::TestInfo& test_info) {
        +      printf("*** Test %s.%s starting.\n",
        +             test_info.test_case_name(), test_info.name());
        +    }
        +
        +    // Called after a failed assertion or a SUCCEED() invocation.
        +    virtual void OnTestPartResult(
        +        const ::testing::TestPartResult& test_part_result) {
        +      printf("%s in %s:%d\n%s\n",
        +             test_part_result.failed() ? "*** Failure" : "Success",
        +             test_part_result.file_name(),
        +             test_part_result.line_number(),
        +             test_part_result.summary());
        +    }
        +
        +    // Called after a test ends.
        +    virtual void OnTestEnd(const ::testing::TestInfo& test_info) {
        +      printf("*** Test %s.%s ending.\n",
        +             test_info.test_case_name(), test_info.name());
        +    }
        +  };
        +```
        +
        +## Using Event Listeners ##
        +
        +To use the event listener you have defined, add an instance of it to
        +the Google Test event listener list (represented by class
        +[TestEventListeners](http://code.google.com/p/googletest/source/browse/trunk/include/gtest/gtest.h#929)
        +- note the "s" at the end of the name) in your
        +`main()` function, before calling `RUN_ALL_TESTS()`:
        +```
        +int main(int argc, char** argv) {
        +  ::testing::InitGoogleTest(&argc, argv);
        +  // Gets hold of the event listener list.
        +  ::testing::TestEventListeners& listeners =
        +      ::testing::UnitTest::GetInstance()->listeners();
        +  // Adds a listener to the end.  Google Test takes the ownership.
        +  listeners.Append(new MinimalistPrinter);
        +  return RUN_ALL_TESTS();
        +}
        +```
        +
        +There's only one problem: the default test result printer is still in
        +effect, so its output will mingle with the output from your minimalist
        +printer. To suppress the default printer, just release it from the
        +event listener list and delete it. You can do so by adding one line:
        +```
        +  ...
        +  delete listeners.Release(listeners.default_result_printer());
        +  listeners.Append(new MinimalistPrinter);
        +  return RUN_ALL_TESTS();
        +```
        +
        +Now, sit back and enjoy a completely different output from your
        +tests. For more details, you can read this
        +[sample](http://code.google.com/p/googletest/source/browse/trunk/samples/sample9_unittest.cc).
        +
        +You may append more than one listener to the list. When an `On*Start()`
        +or `OnTestPartResult()` event is fired, the listeners will receive it in
        +the order they appear in the list (since new listeners are added to
        +the end of the list, the default text printer and the default XML
        +generator will receive the event first). An `On*End()` event will be
        +received by the listeners in the _reverse_ order. This allows output by
        +listeners added later to be framed by output from listeners added
        +earlier.
        +
        +## Generating Failures in Listeners ##
        +
        +You may use failure-raising macros (`EXPECT_*()`, `ASSERT_*()`,
        +`FAIL()`, etc) when processing an event. There are some restrictions:
        +
        +  1. You cannot generate any failure in `OnTestPartResult()` (otherwise it will cause `OnTestPartResult()` to be called recursively).
        +  1. A listener that handles `OnTestPartResult()` is not allowed to generate any failure.
        +
        +When you add listeners to the listener list, you should put listeners
        +that handle `OnTestPartResult()` _before_ listeners that can generate
        +failures. This ensures that failures generated by the latter are
        +attributed to the right test by the former.
        +
        +We have a sample of failure-raising listener
        +[here](http://code.google.com/p/googletest/source/browse/trunk/samples/sample10_unittest.cc).
        +
        +# Running Test Programs: Advanced Options #
        +
        +Google Test test programs are ordinary executables. Once built, you can run
        +them directly and affect their behavior via the following environment variables
        +and/or command line flags. For the flags to work, your programs must call
        +`::testing::InitGoogleTest()` before calling `RUN_ALL_TESTS()`.
        +
        +To see a list of supported flags and their usage, please run your test
        +program with the `--help` flag.  You can also use `-h`, `-?`, or `/?`
        +for short.  This feature is added in version 1.3.0.
        +
        +If an option is specified both by an environment variable and by a
        +flag, the latter takes precedence.  Most of the options can also be
        +set/read in code: to access the value of command line flag
        +`--gtest_foo`, write `::testing::GTEST_FLAG(foo)`.  A common pattern is
        +to set the value of a flag before calling `::testing::InitGoogleTest()`
        +to change the default value of the flag:
        +```
        +int main(int argc, char** argv) {
        +  // Disables elapsed time by default.
        +  ::testing::GTEST_FLAG(print_time) = false;
        +
        +  // This allows the user to override the flag on the command line.
        +  ::testing::InitGoogleTest(&argc, argv);
        +
        +  return RUN_ALL_TESTS();
        +}
        +```
        +
        +## Selecting Tests ##
        +
        +This section shows various options for choosing which tests to run.
        +
        +### Listing Test Names ###
        +
        +Sometimes it is necessary to list the available tests in a program before
        +running them so that a filter may be applied if needed. Including the flag
        +`--gtest_list_tests` overrides all other flags and lists tests in the following
        +format:
        +```
        +TestCase1.
        +  TestName1
        +  TestName2
        +TestCase2.
        +  TestName
        +```
        +
        +None of the tests listed are actually run if the flag is provided. There is no
        +corresponding environment variable for this flag.
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +### Running a Subset of the Tests ###
        +
        +By default, a Google Test program runs all tests the user has defined.
        +Sometimes, you want to run only a subset of the tests (e.g. for debugging or
        +quickly verifying a change). If you set the `GTEST_FILTER` environment variable
        +or the `--gtest_filter` flag to a filter string, Google Test will only run the
        +tests whose full names (in the form of `TestCaseName.TestName`) match the
        +filter.
        +
        +The format of a filter is a '`:`'-separated list of wildcard patterns (called
        +the positive patterns) optionally followed by a '`-`' and another
        +'`:`'-separated pattern list (called the negative patterns). A test matches the
        +filter if and only if it matches any of the positive patterns but does not
        +match any of the negative patterns.
        +
        +A pattern may contain `'*'` (matches any string) or `'?'` (matches any single
        +character). For convenience, the filter `'*-NegativePatterns'` can be also
        +written as `'-NegativePatterns'`.
        +
        +For example:
        +
        +  * `./foo_test` Has no flag, and thus runs all its tests.
        +  * `./foo_test --gtest_filter=*` Also runs everything, due to the single match-everything `*` value.
        +  * `./foo_test --gtest_filter=FooTest.*` Runs everything in test case `FooTest`.
        +  * `./foo_test --gtest_filter=*Null*:*Constructor*` Runs any test whose full name contains either `"Null"` or `"Constructor"`.
        +  * `./foo_test --gtest_filter=-*DeathTest.*` Runs all non-death tests.
        +  * `./foo_test --gtest_filter=FooTest.*-FooTest.Bar` Runs everything in test case `FooTest` except `FooTest.Bar`.
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +### Temporarily Disabling Tests ###
        +
        +If you have a broken test that you cannot fix right away, you can add the
        +`DISABLED_` prefix to its name. This will exclude it from execution. This is
        +better than commenting out the code or using `#if 0`, as disabled tests are
        +still compiled (and thus won't rot).
        +
        +If you need to disable all tests in a test case, you can either add `DISABLED_`
        +to the front of the name of each test, or alternatively add it to the front of
        +the test case name.
        +
        +For example, the following tests won't be run by Google Test, even though they
        +will still be compiled:
        +
        +```
        +// Tests that Foo does Abc.
        +TEST(FooTest, DISABLED_DoesAbc) { ... }
        +
        +class DISABLED_BarTest : public ::testing::Test { ... };
        +
        +// Tests that Bar does Xyz.
        +TEST_F(DISABLED_BarTest, DoesXyz) { ... }
        +```
        +
        +_Note:_ This feature should only be used for temporary pain-relief. You still
        +have to fix the disabled tests at a later date. As a reminder, Google Test will
        +print a banner warning you if a test program contains any disabled tests.
        +
        +_Tip:_ You can easily count the number of disabled tests you have
        +using `grep`. This number can be used as a metric for improving your
        +test quality.
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +### Temporarily Enabling Disabled Tests ###
        +
        +To include [disabled tests](#Temporarily_Disabling_Tests.md) in test
        +execution, just invoke the test program with the
        +`--gtest_also_run_disabled_tests` flag or set the
        +`GTEST_ALSO_RUN_DISABLED_TESTS` environment variable to a value other
        +than `0`.  You can combine this with the
        +[--gtest\_filter](#Running_a_Subset_of_the_Tests.md) flag to further select
        +which disabled tests to run.
        +
        +_Availability:_ Linux, Windows, Mac; since version 1.3.0.
        +
        +## Repeating the Tests ##
        +
        +Once in a while you'll run into a test whose result is hit-or-miss. Perhaps it
        +will fail only 1% of the time, making it rather hard to reproduce the bug under
        +a debugger. This can be a major source of frustration.
        +
        +The `--gtest_repeat` flag allows you to repeat all (or selected) test methods
        +in a program many times. Hopefully, a flaky test will eventually fail and give
        +you a chance to debug. Here's how to use it:
        +
        +| `$ foo_test --gtest_repeat=1000` | Repeat foo\_test 1000 times and don't stop at failures. |
        +|:---------------------------------|:--------------------------------------------------------|
        +| `$ foo_test --gtest_repeat=-1`   | A negative count means repeating forever.               |
        +| `$ foo_test --gtest_repeat=1000 --gtest_break_on_failure` | Repeat foo\_test 1000 times, stopping at the first failure. This is especially useful when running under a debugger: when the testfails, it will drop into the debugger and you can then inspect variables and stacks. |
        +| `$ foo_test --gtest_repeat=1000 --gtest_filter=FooBar` | Repeat the tests whose name matches the filter 1000 times. |
        +
        +If your test program contains global set-up/tear-down code registered
        +using `AddGlobalTestEnvironment()`, it will be repeated in each
        +iteration as well, as the flakiness may be in it. You can also specify
        +the repeat count by setting the `GTEST_REPEAT` environment variable.
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +## Shuffling the Tests ##
        +
        +You can specify the `--gtest_shuffle` flag (or set the `GTEST_SHUFFLE`
        +environment variable to `1`) to run the tests in a program in a random
        +order. This helps to reveal bad dependencies between tests.
        +
        +By default, Google Test uses a random seed calculated from the current
        +time. Therefore you'll get a different order every time. The console
        +output includes the random seed value, such that you can reproduce an
        +order-related test failure later. To specify the random seed
        +explicitly, use the `--gtest_random_seed=SEED` flag (or set the
        +`GTEST_RANDOM_SEED` environment variable), where `SEED` is an integer
        +between 0 and 99999. The seed value 0 is special: it tells Google Test
        +to do the default behavior of calculating the seed from the current
        +time.
        +
        +If you combine this with `--gtest_repeat=N`, Google Test will pick a
        +different random seed and re-shuffle the tests in each iteration.
        +
        +_Availability:_ Linux, Windows, Mac; since v1.4.0.
        +
        +## Controlling Test Output ##
        +
        +This section teaches how to tweak the way test results are reported.
        +
        +### Colored Terminal Output ###
        +
        +Google Test can use colors in its terminal output to make it easier to spot
        +the separation between tests, and whether tests passed.
        +
        +You can set the GTEST\_COLOR environment variable or set the `--gtest_color`
        +command line flag to `yes`, `no`, or `auto` (the default) to enable colors,
        +disable colors, or let Google Test decide. When the value is `auto`, Google
        +Test will use colors if and only if the output goes to a terminal and (on
        +non-Windows platforms) the `TERM` environment variable is set to `xterm` or
        +`xterm-color`.
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +### Suppressing the Elapsed Time ###
        +
        +By default, Google Test prints the time it takes to run each test.  To
        +suppress that, run the test program with the `--gtest_print_time=0`
        +command line flag.  Setting the `GTEST_PRINT_TIME` environment
        +variable to `0` has the same effect.
        +
        +_Availability:_ Linux, Windows, Mac.  (In Google Test 1.3.0 and lower,
        +the default behavior is that the elapsed time is **not** printed.)
        +
        +### Generating an XML Report ###
        +
        +Google Test can emit a detailed XML report to a file in addition to its normal
        +textual output. The report contains the duration of each test, and thus can
        +help you identify slow tests.
        +
        +To generate the XML report, set the `GTEST_OUTPUT` environment variable or the
        +`--gtest_output` flag to the string `"xml:_path_to_output_file_"`, which will
        +create the file at the given location. You can also just use the string
        +`"xml"`, in which case the output can be found in the `test_detail.xml` file in
        +the current directory.
        +
        +If you specify a directory (for example, `"xml:output/directory/"` on Linux or
        +`"xml:output\directory\"` on Windows), Google Test will create the XML file in
        +that directory, named after the test executable (e.g. `foo_test.xml` for test
        +program `foo_test` or `foo_test.exe`). If the file already exists (perhaps left
        +over from a previous run), Google Test will pick a different name (e.g.
        +`foo_test_1.xml`) to avoid overwriting it.
        +
        +The report uses the format described here.  It is based on the
        +`junitreport` Ant task and can be parsed by popular continuous build
        +systems like [Jenkins](http://jenkins-ci.org/). Since that format
        +was originally intended for Java, a little interpretation is required
        +to make it apply to Google Test tests, as shown here:
        +
        +```
        +<testsuites name="AllTests" ...>
        +  <testsuite name="test_case_name" ...>
        +    <testcase name="test_name" ...>
        +      <failure message="..."/>
        +      <failure message="..."/>
        +      <failure message="..."/>
        +    </testcase>
        +  </testsuite>
        +</testsuites>
        +```
        +
        +  * The root `<testsuites>` element corresponds to the entire test program.
        +  * `<testsuite>` elements correspond to Google Test test cases.
        +  * `<testcase>` elements correspond to Google Test test functions.
        +
        +For instance, the following program
        +
        +```
        +TEST(MathTest, Addition) { ... }
        +TEST(MathTest, Subtraction) { ... }
        +TEST(LogicTest, NonContradiction) { ... }
        +```
        +
        +could generate this report:
        +
        +```
        +<?xml version="1.0" encoding="UTF-8"?>
        +<testsuites tests="3" failures="1" errors="0" time="35" name="AllTests">
        +  <testsuite name="MathTest" tests="2" failures="1" errors="0" time="15">
        +    <testcase name="Addition" status="run" time="7" classname="">
        +      <failure message="Value of: add(1, 1)&#x0A; Actual: 3&#x0A;Expected: 2" type=""/>
        +      <failure message="Value of: add(1, -1)&#x0A; Actual: 1&#x0A;Expected: 0" type=""/>
        +    </testcase>
        +    <testcase name="Subtraction" status="run" time="5" classname="">
        +    </testcase>
        +  </testsuite>
        +  <testsuite name="LogicTest" tests="1" failures="0" errors="0" time="5">
        +    <testcase name="NonContradiction" status="run" time="5" classname="">
        +    </testcase>
        +  </testsuite>
        +</testsuites>
        +```
        +
        +Things to note:
        +
        +  * The `tests` attribute of a `<testsuites>` or `<testsuite>` element tells how many test functions the Google Test program or test case contains, while the `failures` attribute tells how many of them failed.
        +  * The `time` attribute expresses the duration of the test, test case, or entire test program in milliseconds.
        +  * Each `<failure>` element corresponds to a single failed Google Test assertion.
        +  * Some JUnit concepts don't apply to Google Test, yet we have to conform to the DTD. Therefore you'll see some dummy elements and attributes in the report. You can safely ignore these parts.
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +## Controlling How Failures Are Reported ##
        +
        +### Turning Assertion Failures into Break-Points ###
        +
        +When running test programs under a debugger, it's very convenient if the
        +debugger can catch an assertion failure and automatically drop into interactive
        +mode. Google Test's _break-on-failure_ mode supports this behavior.
        +
        +To enable it, set the `GTEST_BREAK_ON_FAILURE` environment variable to a value
        +other than `0` . Alternatively, you can use the `--gtest_break_on_failure`
        +command line flag.
        +
        +_Availability:_ Linux, Windows, Mac.
        +
        +### Disabling Catching Test-Thrown Exceptions ###
        +
        +Google Test can be used either with or without exceptions enabled.  If
        +a test throws a C++ exception or (on Windows) a structured exception
        +(SEH), by default Google Test catches it, reports it as a test
        +failure, and continues with the next test method.  This maximizes the
        +coverage of a test run.  Also, on Windows an uncaught exception will
        +cause a pop-up window, so catching the exceptions allows you to run
        +the tests automatically.
        +
        +When debugging the test failures, however, you may instead want the
        +exceptions to be handled by the debugger, such that you can examine
        +the call stack when an exception is thrown.  To achieve that, set the
        +`GTEST_CATCH_EXCEPTIONS` environment variable to `0`, or use the
        +`--gtest_catch_exceptions=0` flag when running the tests.
        +
        +**Availability**: Linux, Windows, Mac.
        +
        +### Letting Another Testing Framework Drive ###
        +
        +If you work on a project that has already been using another testing
        +framework and is not ready to completely switch to Google Test yet,
        +you can get much of Google Test's benefit by using its assertions in
        +your existing tests.  Just change your `main()` function to look
        +like:
        +
        +```
        +#include "gtest/gtest.h"
        +
        +int main(int argc, char** argv) {
        +  ::testing::GTEST_FLAG(throw_on_failure) = true;
        +  // Important: Google Test must be initialized.
        +  ::testing::InitGoogleTest(&argc, argv);
        +
        +  ... whatever your existing testing framework requires ...
        +}
        +```
        +
        +With that, you can use Google Test assertions in addition to the
        +native assertions your testing framework provides, for example:
        +
        +```
        +void TestFooDoesBar() {
        +  Foo foo;
        +  EXPECT_LE(foo.Bar(1), 100);     // A Google Test assertion.
        +  CPPUNIT_ASSERT(foo.IsEmpty());  // A native assertion.
        +}
        +```
        +
        +If a Google Test assertion fails, it will print an error message and
        +throw an exception, which will be treated as a failure by your host
        +testing framework.  If you compile your code with exceptions disabled,
        +a failed Google Test assertion will instead exit your program with a
        +non-zero code, which will also signal a test failure to your test
        +runner.
        +
        +If you don't write `::testing::GTEST_FLAG(throw_on_failure) = true;` in
        +your `main()`, you can alternatively enable this feature by specifying
        +the `--gtest_throw_on_failure` flag on the command-line or setting the
        +`GTEST_THROW_ON_FAILURE` environment variable to a non-zero value.
        +
        +Death tests are _not_ supported when other test framework is used to organize tests.
        +
        +_Availability:_ Linux, Windows, Mac; since v1.3.0.
        +
        +## Distributing Test Functions to Multiple Machines ##
        +
        +If you have more than one machine you can use to run a test program,
        +you might want to run the test functions in parallel and get the
        +result faster.  We call this technique _sharding_, where each machine
        +is called a _shard_.
        +
        +Google Test is compatible with test sharding.  To take advantage of
        +this feature, your test runner (not part of Google Test) needs to do
        +the following:
        +
        +  1. Allocate a number of machines (shards) to run the tests.
        +  1. On each shard, set the `GTEST_TOTAL_SHARDS` environment variable to the total number of shards.  It must be the same for all shards.
        +  1. On each shard, set the `GTEST_SHARD_INDEX` environment variable to the index of the shard.  Different shards must be assigned different indices, which must be in the range `[0, GTEST_TOTAL_SHARDS - 1]`.
        +  1. Run the same test program on all shards.  When Google Test sees the above two environment variables, it will select a subset of the test functions to run.  Across all shards, each test function in the program will be run exactly once.
        +  1. Wait for all shards to finish, then collect and report the results.
        +
        +Your project may have tests that were written without Google Test and
        +thus don't understand this protocol.  In order for your test runner to
        +figure out which test supports sharding, it can set the environment
        +variable `GTEST_SHARD_STATUS_FILE` to a non-existent file path.  If a
        +test program supports sharding, it will create this file to
        +acknowledge the fact (the actual contents of the file are not
        +important at this time; although we may stick some useful information
        +in it in the future.); otherwise it will not create it.
        +
        +Here's an example to make it clear.  Suppose you have a test program
        +`foo_test` that contains the following 5 test functions:
        +```
        +TEST(A, V)
        +TEST(A, W)
        +TEST(B, X)
        +TEST(B, Y)
        +TEST(B, Z)
        +```
        +and you have 3 machines at your disposal.  To run the test functions in
        +parallel, you would set `GTEST_TOTAL_SHARDS` to 3 on all machines, and
        +set `GTEST_SHARD_INDEX` to 0, 1, and 2 on the machines respectively.
        +Then you would run the same `foo_test` on each machine.
        +
        +Google Test reserves the right to change how the work is distributed
        +across the shards, but here's one possible scenario:
        +
        +  * Machine #0 runs `A.V` and `B.X`.
        +  * Machine #1 runs `A.W` and `B.Y`.
        +  * Machine #2 runs `B.Z`.
        +
        +_Availability:_ Linux, Windows, Mac; since version 1.3.0.
        +
        +# Fusing Google Test Source Files #
        +
        +Google Test's implementation consists of ~30 files (excluding its own
        +tests).  Sometimes you may want them to be packaged up in two files (a
        +`.h` and a `.cc`) instead, such that you can easily copy them to a new
        +machine and start hacking there.  For this we provide an experimental
        +Python script `fuse_gtest_files.py` in the `scripts/` directory (since release 1.3.0).
        +Assuming you have Python 2.4 or above installed on your machine, just
        +go to that directory and run
        +```
        +python fuse_gtest_files.py OUTPUT_DIR
        +```
        +
        +and you should see an `OUTPUT_DIR` directory being created with files
        +`gtest/gtest.h` and `gtest/gtest-all.cc` in it.  These files contain
        +everything you need to use Google Test.  Just copy them to anywhere
        +you want and you are ready to write tests.  You can use the
        +[scripts/test/Makefile](http://code.google.com/p/googletest/source/browse/trunk/scripts/test/Makefile)
        +file as an example on how to compile your tests against them.
        +
        +# Where to Go from Here #
        +
        +Congratulations! You've now learned more advanced Google Test tools and are
        +ready to tackle more complex testing tasks. If you want to dive even deeper, you
        +can read the [Frequently-Asked Questions](V1_7_FAQ.md).
        \ No newline at end of file
        diff --git a/lib/ann/fann/lib/googletest/docs/V1_7_Documentation.md b/lib/ann/fann/lib/googletest/docs/V1_7_Documentation.md
        new file mode 100644
        index 0000000..282697a
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/docs/V1_7_Documentation.md
        @@ -0,0 +1,14 @@
        +This page lists all documentation wiki pages for Google Test **(the SVN trunk version)**
        +-- **if you use a released version of Google Test, please read the
        +documentation for that specific version instead.**
        +
        +  * [Primer](V1_7_Primer.md) -- start here if you are new to Google Test.
        +  * [Samples](V1_7_Samples.md) -- learn from examples.
        +  * [AdvancedGuide](V1_7_AdvancedGuide.md) -- learn more about Google Test.
        +  * [XcodeGuide](V1_7_XcodeGuide.md) -- how to use Google Test in Xcode on Mac.
        +  * [Frequently-Asked Questions](V1_7_FAQ.md) -- check here before asking a question on the mailing list.
        +
        +To contribute code to Google Test, read:
        +
        +  * [DevGuide](DevGuide.md) -- read this _before_ writing your first patch.
        +  * [PumpManual](V1_7_PumpManual.md) -- how we generate some of Google Test's source files.
        \ No newline at end of file
        diff --git a/lib/ann/fann/lib/googletest/docs/V1_7_FAQ.md b/lib/ann/fann/lib/googletest/docs/V1_7_FAQ.md
        new file mode 100644
        index 0000000..b5d547c
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/docs/V1_7_FAQ.md
        @@ -0,0 +1,1081 @@
        +
        +
        +If you cannot find the answer to your question here, and you have read
        +[Primer](V1_7_Primer.md) and [AdvancedGuide](V1_7_AdvancedGuide.md), send it to
        +googletestframework@googlegroups.com.
        +
        +## Why should I use Google Test instead of my favorite C++ testing framework? ##
        +
        +First, let us say clearly that we don't want to get into the debate of
        +which C++ testing framework is **the best**.  There exist many fine
        +frameworks for writing C++ tests, and we have tremendous respect for
        +the developers and users of them.  We don't think there is (or will
        +be) a single best framework - you have to pick the right tool for the
        +particular task you are tackling.
        +
        +We created Google Test because we couldn't find the right combination
        +of features and conveniences in an existing framework to satisfy _our_
        +needs.  The following is a list of things that _we_ like about Google
        +Test.  We don't claim them to be unique to Google Test - rather, the
        +combination of them makes Google Test the choice for us.  We hope this
        +list can help you decide whether it is for you too.
        +
        +  * Google Test is designed to be portable: it doesn't require exceptions or RTTI; it works around various bugs in various compilers and environments; etc.  As a result, it works on Linux, Mac OS X, Windows and several embedded operating systems.
        +  * Nonfatal assertions (`EXPECT_*`) have proven to be great time savers, as they allow a test to report multiple failures in a single edit-compile-test cycle.
        +  * It's easy to write assertions that generate informative messages: you just use the stream syntax to append any additional information, e.g. `ASSERT_EQ(5, Foo(i)) << " where i = " << i;`.  It doesn't require a new set of macros or special functions.
        +  * Google Test automatically detects your tests and doesn't require you to enumerate them in order to run them.
        +  * Death tests are pretty handy for ensuring that your asserts in production code are triggered by the right conditions.
        +  * `SCOPED_TRACE` helps you understand the context of an assertion failure when it comes from inside a sub-routine or loop.
        +  * You can decide which tests to run using name patterns.  This saves time when you want to quickly reproduce a test failure.
        +  * Google Test can generate XML test result reports that can be parsed by popular continuous build system like Hudson.
        +  * Simple things are easy in Google Test, while hard things are possible: in addition to advanced features like [global test environments](http://code.google.com/p/googletest/wiki/V1_7_AdvancedGuide#Global_Set-Up_and_Tear-Down) and tests parameterized by [values](http://code.google.com/p/googletest/wiki/V1_7_AdvancedGuide#Value_Parameterized_Tests) or [types](http://code.google.com/p/googletest/wiki/V1_7_AdvancedGuide#Typed_Tests), Google Test supports various ways for the user to extend the framework -- if Google Test doesn't do something out of the box, chances are that a user can implement the feature using Google Test's public API, without changing Google Test itself.  In particular, you can:
        +    * expand your testing vocabulary by defining [custom predicates](http://code.google.com/p/googletest/wiki/V1_7_AdvancedGuide#Predicate_Assertions_for_Better_Error_Messages),
        +    * teach Google Test how to [print your types](http://code.google.com/p/googletest/wiki/V1_7_AdvancedGuide#Teaching_Google_Test_How_to_Print_Your_Values),
        +    * define your own testing macros or utilities and verify them using Google Test's [Service Provider Interface](http://code.google.com/p/googletest/wiki/V1_7_AdvancedGuide#Catching_Failures), and
        +    * reflect on the test cases or change the test output format by intercepting the [test events](http://code.google.com/p/googletest/wiki/V1_7_AdvancedGuide#Extending_Google_Test_by_Handling_Test_Events).
        +
        +## I'm getting warnings when compiling Google Test.  Would you fix them? ##
        +
        +We strive to minimize compiler warnings Google Test generates.  Before releasing a new version, we test to make sure that it doesn't generate warnings when compiled using its CMake script on Windows, Linux, and Mac OS.
        +
        +Unfortunately, this doesn't mean you are guaranteed to see no warnings when compiling Google Test in your environment:
        +
        +  * You may be using a different compiler as we use, or a different version of the same compiler.  We cannot possibly test for all compilers.
        +  * You may be compiling on a different platform as we do.
        +  * Your project may be using different compiler flags as we do.
        +
        +It is not always possible to make Google Test warning-free for everyone.  Or, it may not be desirable if the warning is rarely enabled and fixing the violations makes the code more complex.
        +
        +If you see warnings when compiling Google Test, we suggest that you use the `-isystem` flag (assuming your are using GCC) to mark Google Test headers as system headers.  That'll suppress warnings from Google Test headers.
        +
        +## Why should not test case names and test names contain underscore? ##
        +
        +Underscore (`_`) is special, as C++ reserves the following to be used by
        +the compiler and the standard library:
        +
        +  1. any identifier that starts with an `_` followed by an upper-case letter, and
        +  1. any identifier that containers two consecutive underscores (i.e. `__`) _anywhere_ in its name.
        +
        +User code is _prohibited_ from using such identifiers.
        +
        +Now let's look at what this means for `TEST` and `TEST_F`.
        +
        +Currently `TEST(TestCaseName, TestName)` generates a class named
        +`TestCaseName_TestName_Test`.  What happens if `TestCaseName` or `TestName`
        +contains `_`?
        +
        +  1. If `TestCaseName` starts with an `_` followed by an upper-case letter (say, `_Foo`), we end up with `_Foo_TestName_Test`, which is reserved and thus invalid.
        +  1. If `TestCaseName` ends with an `_` (say, `Foo_`), we get `Foo__TestName_Test`, which is invalid.
        +  1. If `TestName` starts with an `_` (say, `_Bar`), we get `TestCaseName__Bar_Test`, which is invalid.
        +  1. If `TestName` ends with an `_` (say, `Bar_`), we get `TestCaseName_Bar__Test`, which is invalid.
        +
        +So clearly `TestCaseName` and `TestName` cannot start or end with `_`
        +(Actually, `TestCaseName` can start with `_` -- as long as the `_` isn't
        +followed by an upper-case letter.  But that's getting complicated.  So
        +for simplicity we just say that it cannot start with `_`.).
        +
        +It may seem fine for `TestCaseName` and `TestName` to contain `_` in the
        +middle.  However, consider this:
        +```
        +TEST(Time, Flies_Like_An_Arrow) { ... }
        +TEST(Time_Flies, Like_An_Arrow) { ... }
        +```
        +
        +Now, the two `TEST`s will both generate the same class
        +(`Time_Files_Like_An_Arrow_Test`).  That's not good.
        +
        +So for simplicity, we just ask the users to avoid `_` in `TestCaseName`
        +and `TestName`.  The rule is more constraining than necessary, but it's
        +simple and easy to remember.  It also gives Google Test some wiggle
        +room in case its implementation needs to change in the future.
        +
        +If you violate the rule, there may not be immediately consequences,
        +but your test may (just may) break with a new compiler (or a new
        +version of the compiler you are using) or with a new version of Google
        +Test.  Therefore it's best to follow the rule.
        +
        +## Why is it not recommended to install a pre-compiled copy of Google Test (for example, into /usr/local)? ##
        +
        +In the early days, we said that you could install
        +compiled Google Test libraries on `*`nix systems using `make install`.
        +Then every user of your machine can write tests without
        +recompiling Google Test.
        +
        +This seemed like a good idea, but it has a
        +got-cha: every user needs to compile his tests using the _same_ compiler
        +flags used to compile the installed Google Test libraries; otherwise
        +he may run into undefined behaviors (i.e. the tests can behave
        +strangely and may even crash for no obvious reasons).
        +
        +Why?  Because C++ has this thing called the One-Definition Rule: if
        +two C++ source files contain different definitions of the same
        +class/function/variable, and you link them together, you violate the
        +rule.  The linker may or may not catch the error (in many cases it's
        +not required by the C++ standard to catch the violation).  If it
        +doesn't, you get strange run-time behaviors that are unexpected and
        +hard to debug.
        +
        +If you compile Google Test and your test code using different compiler
        +flags, they may see different definitions of the same
        +class/function/variable (e.g. due to the use of `#if` in Google Test).
        +Therefore, for your sanity, we recommend to avoid installing pre-compiled
        +Google Test libraries.  Instead, each project should compile
        +Google Test itself such that it can be sure that the same flags are
        +used for both Google Test and the tests.
        +
        +## How do I generate 64-bit binaries on Windows (using Visual Studio 2008)? ##
        +
        +(Answered by Trevor Robinson)
        +
        +Load the supplied Visual Studio solution file, either `msvc\gtest-md.sln` or
        +`msvc\gtest.sln`. Go through the migration wizard to migrate the
        +solution and project files to Visual Studio 2008. Select
        +`Configuration Manager...` from the `Build` menu. Select `<New...>` from
        +the `Active solution platform` dropdown.  Select `x64` from the new
        +platform dropdown, leave `Copy settings from` set to `Win32` and
        +`Create new project platforms` checked, then click `OK`. You now have
        +`Win32` and `x64` platform configurations, selectable from the
        +`Standard` toolbar, which allow you to toggle between building 32-bit or
        +64-bit binaries (or both at once using Batch Build).
        +
        +In order to prevent build output files from overwriting one another,
        +you'll need to change the `Intermediate Directory` settings for the
        +newly created platform configuration across all the projects. To do
        +this, multi-select (e.g. using shift-click) all projects (but not the
        +solution) in the `Solution Explorer`. Right-click one of them and
        +select `Properties`. In the left pane, select `Configuration Properties`,
        +and from the `Configuration` dropdown, select `All Configurations`.
        +Make sure the selected platform is `x64`. For the
        +`Intermediate Directory` setting, change the value from
        +`$(PlatformName)\$(ConfigurationName)` to
        +`$(OutDir)\$(ProjectName)`. Click `OK` and then build the
        +solution. When the build is complete, the 64-bit binaries will be in
        +the `msvc\x64\Debug` directory.
        +
        +## Can I use Google Test on MinGW? ##
        +
        +We haven't tested this ourselves, but Per Abrahamsen reported that he
        +was able to compile and install Google Test successfully when using
        +MinGW from Cygwin.  You'll need to configure it with:
        +
        +`PATH/TO/configure CC="gcc -mno-cygwin" CXX="g++ -mno-cygwin"`
        +
        +You should be able to replace the `-mno-cygwin` option with direct links
        +to the real MinGW binaries, but we haven't tried that.
        +
        +Caveats:
        +
        +  * There are many warnings when compiling.
        +  * `make check` will produce some errors as not all tests for Google Test itself are compatible with MinGW.
        +
        +We also have reports on successful cross compilation of Google Test
        +MinGW binaries on Linux using
        +[these instructions](http://wiki.wxwidgets.org/Cross-Compiling_Under_Linux#Cross-compiling_under_Linux_for_MS_Windows)
        +on the WxWidgets site.
        +
        +Please contact `googletestframework@googlegroups.com` if you are
        +interested in improving the support for MinGW.
        +
        +## Why does Google Test support EXPECT\_EQ(NULL, ptr) and ASSERT\_EQ(NULL, ptr) but not EXPECT\_NE(NULL, ptr) and ASSERT\_NE(NULL, ptr)? ##
        +
        +Due to some peculiarity of C++, it requires some non-trivial template
        +meta programming tricks to support using `NULL` as an argument of the
        +`EXPECT_XX()` and `ASSERT_XX()` macros. Therefore we only do it where
        +it's most needed (otherwise we make the implementation of Google Test
        +harder to maintain and more error-prone than necessary).
        +
        +The `EXPECT_EQ()` macro takes the _expected_ value as its first
        +argument and the _actual_ value as the second. It's reasonable that
        +someone wants to write `EXPECT_EQ(NULL, some_expression)`, and this
        +indeed was requested several times. Therefore we implemented it.
        +
        +The need for `EXPECT_NE(NULL, ptr)` isn't nearly as strong. When the
        +assertion fails, you already know that `ptr` must be `NULL`, so it
        +doesn't add any information to print ptr in this case. That means
        +`EXPECT_TRUE(ptr != NULL)` works just as well.
        +
        +If we were to support `EXPECT_NE(NULL, ptr)`, for consistency we'll
        +have to support `EXPECT_NE(ptr, NULL)` as well, as unlike `EXPECT_EQ`,
        +we don't have a convention on the order of the two arguments for
        +`EXPECT_NE`. This means using the template meta programming tricks
        +twice in the implementation, making it even harder to understand and
        +maintain. We believe the benefit doesn't justify the cost.
        +
        +Finally, with the growth of Google Mock's [matcher](http://code.google.com/p/googlemock/wiki/CookBook#Using_Matchers_in_Google_Test_Assertions) library, we are
        +encouraging people to use the unified `EXPECT_THAT(value, matcher)`
        +syntax more often in tests. One significant advantage of the matcher
        +approach is that matchers can be easily combined to form new matchers,
        +while the `EXPECT_NE`, etc, macros cannot be easily
        +combined. Therefore we want to invest more in the matchers than in the
        +`EXPECT_XX()` macros.
        +
        +## Does Google Test support running tests in parallel? ##
        +
        +Test runners tend to be tightly coupled with the build/test
        +environment, and Google Test doesn't try to solve the problem of
        +running tests in parallel.  Instead, we tried to make Google Test work
        +nicely with test runners.  For example, Google Test's XML report
        +contains the time spent on each test, and its `gtest_list_tests` and
        +`gtest_filter` flags can be used for splitting the execution of test
        +methods into multiple processes.  These functionalities can help the
        +test runner run the tests in parallel.
        +
        +## Why don't Google Test run the tests in different threads to speed things up? ##
        +
        +It's difficult to write thread-safe code.  Most tests are not written
        +with thread-safety in mind, and thus may not work correctly in a
        +multi-threaded setting.
        +
        +If you think about it, it's already hard to make your code work when
        +you know what other threads are doing.  It's much harder, and
        +sometimes even impossible, to make your code work when you don't know
        +what other threads are doing (remember that test methods can be added,
        +deleted, or modified after your test was written).  If you want to run
        +the tests in parallel, you'd better run them in different processes.
        +
        +## Why aren't Google Test assertions implemented using exceptions? ##
        +
        +Our original motivation was to be able to use Google Test in projects
        +that disable exceptions.  Later we realized some additional benefits
        +of this approach:
        +
        +  1. Throwing in a destructor is undefined behavior in C++.  Not using exceptions means Google Test's assertions are safe to use in destructors.
        +  1. The `EXPECT_*` family of macros will continue even after a failure, allowing multiple failures in a `TEST` to be reported in a single run. This is a popular feature, as in C++ the edit-compile-test cycle is usually quite long and being able to fixing more than one thing at a time is a blessing.
        +  1. If assertions are implemented using exceptions, a test may falsely ignore a failure if it's caught by user code:
        +```
        +try { ... ASSERT_TRUE(...) ... }
        +catch (...) { ... }
        +```
        +The above code will pass even if the `ASSERT_TRUE` throws.  While it's unlikely for someone to write this in a test, it's possible to run into this pattern when you write assertions in callbacks that are called by the code under test.
        +
        +The downside of not using exceptions is that `ASSERT_*` (implemented
        +using `return`) will only abort the current function, not the current
        +`TEST`.
        +
        +## Why do we use two different macros for tests with and without fixtures? ##
        +
        +Unfortunately, C++'s macro system doesn't allow us to use the same
        +macro for both cases.  One possibility is to provide only one macro
        +for tests with fixtures, and require the user to define an empty
        +fixture sometimes:
        +
        +```
        +class FooTest : public ::testing::Test {};
        +
        +TEST_F(FooTest, DoesThis) { ... }
        +```
        +or
        +```
        +typedef ::testing::Test FooTest;
        +
        +TEST_F(FooTest, DoesThat) { ... }
        +```
        +
        +Yet, many people think this is one line too many. :-) Our goal was to
        +make it really easy to write tests, so we tried to make simple tests
        +trivial to create.  That means using a separate macro for such tests.
        +
        +We think neither approach is ideal, yet either of them is reasonable.
        +In the end, it probably doesn't matter much either way.
        +
        +## Why don't we use structs as test fixtures? ##
        +
        +We like to use structs only when representing passive data.  This
        +distinction between structs and classes is good for documenting the
        +intent of the code's author.  Since test fixtures have logic like
        +`SetUp()` and `TearDown()`, they are better defined as classes.
        +
        +## Why are death tests implemented as assertions instead of using a test runner? ##
        +
        +Our goal was to make death tests as convenient for a user as C++
        +possibly allows.  In particular:
        +
        +  * The runner-style requires to split the information into two pieces: the definition of the death test itself, and the specification for the runner on how to run the death test and what to expect.  The death test would be written in C++, while the runner spec may or may not be.  A user needs to carefully keep the two in sync. `ASSERT_DEATH(statement, expected_message)` specifies all necessary information in one place, in one language, without boilerplate code. It is very declarative.
        +  * `ASSERT_DEATH` has a similar syntax and error-reporting semantics as other Google Test assertions, and thus is easy to learn.
        +  * `ASSERT_DEATH` can be mixed with other assertions and other logic at your will.  You are not limited to one death test per test method. For example, you can write something like:
        +```
        +    if (FooCondition()) {
        +      ASSERT_DEATH(Bar(), "blah");
        +    } else {
        +      ASSERT_EQ(5, Bar());
        +    }
        +```
        +If you prefer one death test per test method, you can write your tests in that style too, but we don't want to impose that on the users.  The fewer artificial limitations the better.
        +  * `ASSERT_DEATH` can reference local variables in the current function, and you can decide how many death tests you want based on run-time information.  For example,
        +```
        +    const int count = GetCount();  // Only known at run time.
        +    for (int i = 1; i <= count; i++) {
        +      ASSERT_DEATH({
        +        double* buffer = new double[i];
        +        ... initializes buffer ...
        +        Foo(buffer, i)
        +      }, "blah blah");
        +    }
        +```
        +The runner-based approach tends to be more static and less flexible, or requires more user effort to get this kind of flexibility.
        +
        +Another interesting thing about `ASSERT_DEATH` is that it calls `fork()`
        +to create a child process to run the death test.  This is lightening
        +fast, as `fork()` uses copy-on-write pages and incurs almost zero
        +overhead, and the child process starts from the user-supplied
        +statement directly, skipping all global and local initialization and
        +any code leading to the given statement.  If you launch the child
        +process from scratch, it can take seconds just to load everything and
        +start running if the test links to many libraries dynamically.
        +
        +## My death test modifies some state, but the change seems lost after the death test finishes. Why? ##
        +
        +Death tests (`EXPECT_DEATH`, etc) are executed in a sub-process s.t. the
        +expected crash won't kill the test program (i.e. the parent process). As a
        +result, any in-memory side effects they incur are observable in their
        +respective sub-processes, but not in the parent process. You can think of them
        +as running in a parallel universe, more or less.
        +
        +## The compiler complains about "undefined references" to some static const member variables, but I did define them in the class body. What's wrong? ##
        +
        +If your class has a static data member:
        +
        +```
        +// foo.h
        +class Foo {
        +  ...
        +  static const int kBar = 100;
        +};
        +```
        +
        +You also need to define it _outside_ of the class body in `foo.cc`:
        +
        +```
        +const int Foo::kBar;  // No initializer here.
        +```
        +
        +Otherwise your code is **invalid C++**, and may break in unexpected ways. In
        +particular, using it in Google Test comparison assertions (`EXPECT_EQ`, etc)
        +will generate an "undefined reference" linker error.
        +
        +## I have an interface that has several implementations. Can I write a set of tests once and repeat them over all the implementations? ##
        +
        +Google Test doesn't yet have good support for this kind of tests, or
        +data-driven tests in general. We hope to be able to make improvements in this
        +area soon.
        +
        +## Can I derive a test fixture from another? ##
        +
        +Yes.
        +
        +Each test fixture has a corresponding and same named test case. This means only
        +one test case can use a particular fixture. Sometimes, however, multiple test
        +cases may want to use the same or slightly different fixtures. For example, you
        +may want to make sure that all of a GUI library's test cases don't leak
        +important system resources like fonts and brushes.
        +
        +In Google Test, you share a fixture among test cases by putting the shared
        +logic in a base test fixture, then deriving from that base a separate fixture
        +for each test case that wants to use this common logic. You then use `TEST_F()`
        +to write tests using each derived fixture.
        +
        +Typically, your code looks like this:
        +
        +```
        +// Defines a base test fixture.
        +class BaseTest : public ::testing::Test {
        +  protected:
        +   ...
        +};
        +
        +// Derives a fixture FooTest from BaseTest.
        +class FooTest : public BaseTest {
        +  protected:
        +    virtual void SetUp() {
        +      BaseTest::SetUp();  // Sets up the base fixture first.
        +      ... additional set-up work ...
        +    }
        +    virtual void TearDown() {
        +      ... clean-up work for FooTest ...
        +      BaseTest::TearDown();  // Remember to tear down the base fixture
        +                             // after cleaning up FooTest!
        +    }
        +    ... functions and variables for FooTest ...
        +};
        +
        +// Tests that use the fixture FooTest.
        +TEST_F(FooTest, Bar) { ... }
        +TEST_F(FooTest, Baz) { ... }
        +
        +... additional fixtures derived from BaseTest ...
        +```
        +
        +If necessary, you can continue to derive test fixtures from a derived fixture.
        +Google Test has no limit on how deep the hierarchy can be.
        +
        +For a complete example using derived test fixtures, see
        +[sample5](http://code.google.com/p/googletest/source/browse/trunk/samples/sample5_unittest.cc).
        +
        +## My compiler complains "void value not ignored as it ought to be." What does this mean? ##
        +
        +You're probably using an `ASSERT_*()` in a function that doesn't return `void`.
        +`ASSERT_*()` can only be used in `void` functions.
        +
        +## My death test hangs (or seg-faults). How do I fix it? ##
        +
        +In Google Test, death tests are run in a child process and the way they work is
        +delicate. To write death tests you really need to understand how they work.
        +Please make sure you have read this.
        +
        +In particular, death tests don't like having multiple threads in the parent
        +process. So the first thing you can try is to eliminate creating threads
        +outside of `EXPECT_DEATH()`.
        +
        +Sometimes this is impossible as some library you must use may be creating
        +threads before `main()` is even reached. In this case, you can try to minimize
        +the chance of conflicts by either moving as many activities as possible inside
        +`EXPECT_DEATH()` (in the extreme case, you want to move everything inside), or
        +leaving as few things as possible in it. Also, you can try to set the death
        +test style to `"threadsafe"`, which is safer but slower, and see if it helps.
        +
        +If you go with thread-safe death tests, remember that they rerun the test
        +program from the beginning in the child process. Therefore make sure your
        +program can run side-by-side with itself and is deterministic.
        +
        +In the end, this boils down to good concurrent programming. You have to make
        +sure that there is no race conditions or dead locks in your program. No silver
        +bullet - sorry!
        +
        +## Should I use the constructor/destructor of the test fixture or the set-up/tear-down function? ##
        +
        +The first thing to remember is that Google Test does not reuse the
        +same test fixture object across multiple tests. For each `TEST_F`,
        +Google Test will create a fresh test fixture object, _immediately_
        +call `SetUp()`, run the test, call `TearDown()`, and then
        +_immediately_ delete the test fixture object. Therefore, there is no
        +need to write a `SetUp()` or `TearDown()` function if the constructor
        +or destructor already does the job.
        +
        +You may still want to use `SetUp()/TearDown()` in the following cases:
        +  * If the tear-down operation could throw an exception, you must use `TearDown()` as opposed to the destructor, as throwing in a destructor leads to undefined behavior and usually will kill your program right away. Note that many standard libraries (like STL) may throw when exceptions are enabled in the compiler. Therefore you should prefer `TearDown()` if you want to write portable tests that work with or without exceptions.
        +  * The assertion macros throw an exception when flag `--gtest_throw_on_failure` is specified. Therefore, you shouldn't use Google Test assertions in a destructor if you plan to run your tests with this flag.
        +  * In a constructor or destructor, you cannot make a virtual function call on this object. (You can call a method declared as virtual, but it will be statically bound.) Therefore, if you need to call a method that will be overriden in a derived class, you have to use `SetUp()/TearDown()`.
        +
        +## The compiler complains "no matching function to call" when I use ASSERT\_PREDn. How do I fix it? ##
        +
        +If the predicate function you use in `ASSERT_PRED*` or `EXPECT_PRED*` is
        +overloaded or a template, the compiler will have trouble figuring out which
        +overloaded version it should use. `ASSERT_PRED_FORMAT*` and
        +`EXPECT_PRED_FORMAT*` don't have this problem.
        +
        +If you see this error, you might want to switch to
        +`(ASSERT|EXPECT)_PRED_FORMAT*`, which will also give you a better failure
        +message. If, however, that is not an option, you can resolve the problem by
        +explicitly telling the compiler which version to pick.
        +
        +For example, suppose you have
        +
        +```
        +bool IsPositive(int n) {
        +  return n > 0;
        +}
        +bool IsPositive(double x) {
        +  return x > 0;
        +}
        +```
        +
        +you will get a compiler error if you write
        +
        +```
        +EXPECT_PRED1(IsPositive, 5);
        +```
        +
        +However, this will work:
        +
        +```
        +EXPECT_PRED1(*static_cast<bool (*)(int)>*(IsPositive), 5);
        +```
        +
        +(The stuff inside the angled brackets for the `static_cast` operator is the
        +type of the function pointer for the `int`-version of `IsPositive()`.)
        +
        +As another example, when you have a template function
        +
        +```
        +template <typename T>
        +bool IsNegative(T x) {
        +  return x < 0;
        +}
        +```
        +
        +you can use it in a predicate assertion like this:
        +
        +```
        +ASSERT_PRED1(IsNegative*<int>*, -5);
        +```
        +
        +Things are more interesting if your template has more than one parameters. The
        +following won't compile:
        +
        +```
        +ASSERT_PRED2(*GreaterThan<int, int>*, 5, 0);
        +```
        +
        +
        +as the C++ pre-processor thinks you are giving `ASSERT_PRED2` 4 arguments,
        +which is one more than expected. The workaround is to wrap the predicate
        +function in parentheses:
        +
        +```
        +ASSERT_PRED2(*(GreaterThan<int, int>)*, 5, 0);
        +```
        +
        +
        +## My compiler complains about "ignoring return value" when I call RUN\_ALL\_TESTS(). Why? ##
        +
        +Some people had been ignoring the return value of `RUN_ALL_TESTS()`. That is,
        +instead of
        +
        +```
        +return RUN_ALL_TESTS();
        +```
        +
        +they write
        +
        +```
        +RUN_ALL_TESTS();
        +```
        +
        +This is wrong and dangerous. A test runner needs to see the return value of
        +`RUN_ALL_TESTS()` in order to determine if a test has passed. If your `main()`
        +function ignores it, your test will be considered successful even if it has a
        +Google Test assertion failure. Very bad.
        +
        +To help the users avoid this dangerous bug, the implementation of
        +`RUN_ALL_TESTS()` causes gcc to raise this warning, when the return value is
        +ignored. If you see this warning, the fix is simple: just make sure its value
        +is used as the return value of `main()`.
        +
        +## My compiler complains that a constructor (or destructor) cannot return a value. What's going on? ##
        +
        +Due to a peculiarity of C++, in order to support the syntax for streaming
        +messages to an `ASSERT_*`, e.g.
        +
        +```
        +ASSERT_EQ(1, Foo()) << "blah blah" << foo;
        +```
        +
        +we had to give up using `ASSERT*` and `FAIL*` (but not `EXPECT*` and
        +`ADD_FAILURE*`) in constructors and destructors. The workaround is to move the
        +content of your constructor/destructor to a private void member function, or
        +switch to `EXPECT_*()` if that works. This section in the user's guide explains
        +it.
        +
        +## My set-up function is not called. Why? ##
        +
        +C++ is case-sensitive. It should be spelled as `SetUp()`.  Did you
        +spell it as `Setup()`?
        +
        +Similarly, sometimes people spell `SetUpTestCase()` as `SetupTestCase()` and
        +wonder why it's never called.
        +
        +## How do I jump to the line of a failure in Emacs directly? ##
        +
        +Google Test's failure message format is understood by Emacs and many other
        +IDEs, like acme and XCode. If a Google Test message is in a compilation buffer
        +in Emacs, then it's clickable. You can now hit `enter` on a message to jump to
        +the corresponding source code, or use `C-x `` to jump to the next failure.
        +
        +## I have several test cases which share the same test fixture logic, do I have to define a new test fixture class for each of them? This seems pretty tedious. ##
        +
        +You don't have to. Instead of
        +
        +```
        +class FooTest : public BaseTest {};
        +
        +TEST_F(FooTest, Abc) { ... }
        +TEST_F(FooTest, Def) { ... }
        +
        +class BarTest : public BaseTest {};
        +
        +TEST_F(BarTest, Abc) { ... }
        +TEST_F(BarTest, Def) { ... }
        +```
        +
        +you can simply `typedef` the test fixtures:
        +```
        +typedef BaseTest FooTest;
        +
        +TEST_F(FooTest, Abc) { ... }
        +TEST_F(FooTest, Def) { ... }
        +
        +typedef BaseTest BarTest;
        +
        +TEST_F(BarTest, Abc) { ... }
        +TEST_F(BarTest, Def) { ... }
        +```
        +
        +## The Google Test output is buried in a whole bunch of log messages. What do I do? ##
        +
        +The Google Test output is meant to be a concise and human-friendly report. If
        +your test generates textual output itself, it will mix with the Google Test
        +output, making it hard to read. However, there is an easy solution to this
        +problem.
        +
        +Since most log messages go to stderr, we decided to let Google Test output go
        +to stdout. This way, you can easily separate the two using redirection. For
        +example:
        +```
        +./my_test > googletest_output.txt
        +```
        +
        +## Why should I prefer test fixtures over global variables? ##
        +
        +There are several good reasons:
        +  1. It's likely your test needs to change the states of its global variables. This makes it difficult to keep side effects from escaping one test and contaminating others, making debugging difficult. By using fixtures, each test has a fresh set of variables that's different (but with the same names). Thus, tests are kept independent of each other.
        +  1. Global variables pollute the global namespace.
        +  1. Test fixtures can be reused via subclassing, which cannot be done easily with global variables. This is useful if many test cases have something in common.
        +
        +## How do I test private class members without writing FRIEND\_TEST()s? ##
        +
        +You should try to write testable code, which means classes should be easily
        +tested from their public interface. One way to achieve this is the Pimpl idiom:
        +you move all private members of a class into a helper class, and make all
        +members of the helper class public.
        +
        +You have several other options that don't require using `FRIEND_TEST`:
        +  * Write the tests as members of the fixture class:
        +```
        +class Foo {
        +  friend class FooTest;
        +  ...
        +};
        +
        +class FooTest : public ::testing::Test {
        + protected:
        +  ...
        +  void Test1() {...} // This accesses private members of class Foo.
        +  void Test2() {...} // So does this one.
        +};
        +
        +TEST_F(FooTest, Test1) {
        +  Test1();
        +}
        +
        +TEST_F(FooTest, Test2) {
        +  Test2();
        +}
        +```
        +  * In the fixture class, write accessors for the tested class' private members, then use the accessors in your tests:
        +```
        +class Foo {
        +  friend class FooTest;
        +  ...
        +};
        +
        +class FooTest : public ::testing::Test {
        + protected:
        +  ...
        +  T1 get_private_member1(Foo* obj) {
        +    return obj->private_member1_;
        +  }
        +};
        +
        +TEST_F(FooTest, Test1) {
        +  ...
        +  get_private_member1(x)
        +  ...
        +}
        +```
        +  * If the methods are declared **protected**, you can change their access level in a test-only subclass:
        +```
        +class YourClass {
        +  ...
        + protected: // protected access for testability.
        +  int DoSomethingReturningInt();
        +  ...
        +};
        +
        +// in the your_class_test.cc file:
        +class TestableYourClass : public YourClass {
        +  ...
        + public: using YourClass::DoSomethingReturningInt; // changes access rights
        +  ...
        +};
        +
        +TEST_F(YourClassTest, DoSomethingTest) {
        +  TestableYourClass obj;
        +  assertEquals(expected_value, obj.DoSomethingReturningInt());
        +}
        +```
        +
        +## How do I test private class static members without writing FRIEND\_TEST()s? ##
        +
        +We find private static methods clutter the header file.  They are
        +implementation details and ideally should be kept out of a .h. So often I make
        +them free functions instead.
        +
        +Instead of:
        +```
        +// foo.h
        +class Foo {
        +  ...
        + private:
        +  static bool Func(int n);
        +};
        +
        +// foo.cc
        +bool Foo::Func(int n) { ... }
        +
        +// foo_test.cc
        +EXPECT_TRUE(Foo::Func(12345));
        +```
        +
        +You probably should better write:
        +```
        +// foo.h
        +class Foo {
        +  ...
        +};
        +
        +// foo.cc
        +namespace internal {
        +  bool Func(int n) { ... }
        +}
        +
        +// foo_test.cc
        +namespace internal {
        +  bool Func(int n);
        +}
        +
        +EXPECT_TRUE(internal::Func(12345));
        +```
        +
        +## I would like to run a test several times with different parameters. Do I need to write several similar copies of it? ##
        +
        +No. You can use a feature called [value-parameterized tests](V1_7_AdvancedGuide#Value_Parameterized_Tests.md) which
        +lets you repeat your tests with different parameters, without defining it more than once.
        +
        +## How do I test a file that defines main()? ##
        +
        +To test a `foo.cc` file, you need to compile and link it into your unit test
        +program. However, when the file contains a definition for the `main()`
        +function, it will clash with the `main()` of your unit test, and will result in
        +a build error.
        +
        +The right solution is to split it into three files:
        +  1. `foo.h` which contains the declarations,
        +  1. `foo.cc` which contains the definitions except `main()`, and
        +  1. `foo_main.cc` which contains nothing but the definition of `main()`.
        +
        +Then `foo.cc` can be easily tested.
        +
        +If you are adding tests to an existing file and don't want an intrusive change
        +like this, there is a hack: just include the entire `foo.cc` file in your unit
        +test. For example:
        +```
        +// File foo_unittest.cc
        +
        +// The headers section
        +...
        +
        +// Renames main() in foo.cc to make room for the unit test main()
        +#define main FooMain
        +
        +#include "a/b/foo.cc"
        +
        +// The tests start here.
        +...
        +```
        +
        +
        +However, please remember this is a hack and should only be used as the last
        +resort.
        +
        +## What can the statement argument in ASSERT\_DEATH() be? ##
        +
        +`ASSERT_DEATH(_statement_, _regex_)` (or any death assertion macro) can be used
        +wherever `_statement_` is valid. So basically `_statement_` can be any C++
        +statement that makes sense in the current context. In particular, it can
        +reference global and/or local variables, and can be:
        +  * a simple function call (often the case),
        +  * a complex expression, or
        +  * a compound statement.
        +
        +> Some examples are shown here:
        +```
        +// A death test can be a simple function call.
        +TEST(MyDeathTest, FunctionCall) {
        +  ASSERT_DEATH(Xyz(5), "Xyz failed");
        +}
        +
        +// Or a complex expression that references variables and functions.
        +TEST(MyDeathTest, ComplexExpression) {
        +  const bool c = Condition();
        +  ASSERT_DEATH((c ? Func1(0) : object2.Method("test")),
        +               "(Func1|Method) failed");
        +}
        +
        +// Death assertions can be used any where in a function. In
        +// particular, they can be inside a loop.
        +TEST(MyDeathTest, InsideLoop) {
        +  // Verifies that Foo(0), Foo(1), ..., and Foo(4) all die.
        +  for (int i = 0; i < 5; i++) {
        +    EXPECT_DEATH_M(Foo(i), "Foo has \\d+ errors",
        +                   ::testing::Message() << "where i is " << i);
        +  }
        +}
        +
        +// A death assertion can contain a compound statement.
        +TEST(MyDeathTest, CompoundStatement) {
        +  // Verifies that at lease one of Bar(0), Bar(1), ..., and
        +  // Bar(4) dies.
        +  ASSERT_DEATH({
        +    for (int i = 0; i < 5; i++) {
        +      Bar(i);
        +    }
        +  },
        +  "Bar has \\d+ errors");}
        +```
        +
        +`googletest_unittest.cc` contains more examples if you are interested.
        +
        +## What syntax does the regular expression in ASSERT\_DEATH use? ##
        +
        +On POSIX systems, Google Test uses the POSIX Extended regular
        +expression syntax
        +(http://en.wikipedia.org/wiki/Regular_expression#POSIX_Extended_Regular_Expressions).
        +On Windows, it uses a limited variant of regular expression
        +syntax. For more details, see the
        +[regular expression syntax](V1_7_AdvancedGuide#Regular_Expression_Syntax.md).
        +
        +## I have a fixture class Foo, but TEST\_F(Foo, Bar) gives me error "no matching function for call to Foo::Foo()". Why? ##
        +
        +Google Test needs to be able to create objects of your test fixture class, so
        +it must have a default constructor. Normally the compiler will define one for
        +you. However, there are cases where you have to define your own:
        +  * If you explicitly declare a non-default constructor for class `Foo`, then you need to define a default constructor, even if it would be empty.
        +  * If `Foo` has a const non-static data member, then you have to define the default constructor _and_ initialize the const member in the initializer list of the constructor. (Early versions of `gcc` doesn't force you to initialize the const member. It's a bug that has been fixed in `gcc 4`.)
        +
        +## Why does ASSERT\_DEATH complain about previous threads that were already joined? ##
        +
        +With the Linux pthread library, there is no turning back once you cross the
        +line from single thread to multiple threads. The first time you create a
        +thread, a manager thread is created in addition, so you get 3, not 2, threads.
        +Later when the thread you create joins the main thread, the thread count
        +decrements by 1, but the manager thread will never be killed, so you still have
        +2 threads, which means you cannot safely run a death test.
        +
        +The new NPTL thread library doesn't suffer from this problem, as it doesn't
        +create a manager thread. However, if you don't control which machine your test
        +runs on, you shouldn't depend on this.
        +
        +## Why does Google Test require the entire test case, instead of individual tests, to be named FOODeathTest when it uses ASSERT\_DEATH? ##
        +
        +Google Test does not interleave tests from different test cases. That is, it
        +runs all tests in one test case first, and then runs all tests in the next test
        +case, and so on. Google Test does this because it needs to set up a test case
        +before the first test in it is run, and tear it down afterwords. Splitting up
        +the test case would require multiple set-up and tear-down processes, which is
        +inefficient and makes the semantics unclean.
        +
        +If we were to determine the order of tests based on test name instead of test
        +case name, then we would have a problem with the following situation:
        +
        +```
        +TEST_F(FooTest, AbcDeathTest) { ... }
        +TEST_F(FooTest, Uvw) { ... }
        +
        +TEST_F(BarTest, DefDeathTest) { ... }
        +TEST_F(BarTest, Xyz) { ... }
        +```
        +
        +Since `FooTest.AbcDeathTest` needs to run before `BarTest.Xyz`, and we don't
        +interleave tests from different test cases, we need to run all tests in the
        +`FooTest` case before running any test in the `BarTest` case. This contradicts
        +with the requirement to run `BarTest.DefDeathTest` before `FooTest.Uvw`.
        +
        +## But I don't like calling my entire test case FOODeathTest when it contains both death tests and non-death tests. What do I do? ##
        +
        +You don't have to, but if you like, you may split up the test case into
        +`FooTest` and `FooDeathTest`, where the names make it clear that they are
        +related:
        +
        +```
        +class FooTest : public ::testing::Test { ... };
        +
        +TEST_F(FooTest, Abc) { ... }
        +TEST_F(FooTest, Def) { ... }
        +
        +typedef FooTest FooDeathTest;
        +
        +TEST_F(FooDeathTest, Uvw) { ... EXPECT_DEATH(...) ... }
        +TEST_F(FooDeathTest, Xyz) { ... ASSERT_DEATH(...) ... }
        +```
        +
        +## The compiler complains about "no match for 'operator<<'" when I use an assertion. What gives? ##
        +
        +If you use a user-defined type `FooType` in an assertion, you must make sure
        +there is an `std::ostream& operator<<(std::ostream&, const FooType&)` function
        +defined such that we can print a value of `FooType`.
        +
        +In addition, if `FooType` is declared in a name space, the `<<` operator also
        +needs to be defined in the _same_ name space.
        +
        +## How do I suppress the memory leak messages on Windows? ##
        +
        +Since the statically initialized Google Test singleton requires allocations on
        +the heap, the Visual C++ memory leak detector will report memory leaks at the
        +end of the program run. The easiest way to avoid this is to use the
        +`_CrtMemCheckpoint` and `_CrtMemDumpAllObjectsSince` calls to not report any
        +statically initialized heap objects. See MSDN for more details and additional
        +heap check/debug routines.
        +
        +## I am building my project with Google Test in Visual Studio and all I'm getting is a bunch of linker errors (or warnings). Help! ##
        +
        +You may get a number of the following linker error or warnings if you
        +attempt to link your test project with the Google Test library when
        +your project and the are not built using the same compiler settings.
        +
        +  * LNK2005: symbol already defined in object
        +  * LNK4217: locally defined symbol 'symbol' imported in function 'function'
        +  * LNK4049: locally defined symbol 'symbol' imported
        +
        +The Google Test project (gtest.vcproj) has the Runtime Library option
        +set to /MT (use multi-threaded static libraries, /MTd for debug). If
        +your project uses something else, for example /MD (use multi-threaded
        +DLLs, /MDd for debug), you need to change the setting in the Google
        +Test project to match your project's.
        +
        +To update this setting open the project properties in the Visual
        +Studio IDE then select the branch Configuration Properties | C/C++ |
        +Code Generation and change the option "Runtime Library".  You may also try
        +using gtest-md.vcproj instead of gtest.vcproj.
        +
        +## I put my tests in a library and Google Test doesn't run them. What's happening? ##
        +Have you read a
        +[warning](http://code.google.com/p/googletest/wiki/V1_7_Primer#Important_note_for_Visual_C++_users) on
        +the Google Test Primer page?
        +
        +## I want to use Google Test with Visual Studio but don't know where to start. ##
        +Many people are in your position and one of the posted his solution to
        +our mailing list. Here is his link:
        +http://hassanjamilahmad.blogspot.com/2009/07/gtest-starters-help.html.
        +
        +## I am seeing compile errors mentioning std::type\_traits when I try to use Google Test on Solaris. ##
        +Google Test uses parts of the standard C++ library that SunStudio does not support.
        +Our users reported success using alternative implementations. Try running the build after runing this commad:
        +
        +`export CC=cc CXX=CC CXXFLAGS='-library=stlport4'`
        +
        +## How can my code detect if it is running in a test? ##
        +
        +If you write code that sniffs whether it's running in a test and does
        +different things accordingly, you are leaking test-only logic into
        +production code and there is no easy way to ensure that the test-only
        +code paths aren't run by mistake in production.  Such cleverness also
        +leads to
        +[Heisenbugs](http://en.wikipedia.org/wiki/Unusual_software_bug#Heisenbug).
        +Therefore we strongly advise against the practice, and Google Test doesn't
        +provide a way to do it.
        +
        +In general, the recommended way to cause the code to behave
        +differently under test is [dependency injection](http://jamesshore.com/Blog/Dependency-Injection-Demystified.html).
        +You can inject different functionality from the test and from the
        +production code.  Since your production code doesn't link in the
        +for-test logic at all, there is no danger in accidentally running it.
        +
        +However, if you _really_, _really_, _really_ have no choice, and if
        +you follow the rule of ending your test program names with `_test`,
        +you can use the _horrible_ hack of sniffing your executable name
        +(`argv[0]` in `main()`) to know whether the code is under test.
        +
        +## Google Test defines a macro that clashes with one defined by another library. How do I deal with that? ##
        +
        +In C++, macros don't obey namespaces.  Therefore two libraries that
        +both define a macro of the same name will clash if you #include both
        +definitions.  In case a Google Test macro clashes with another
        +library, you can force Google Test to rename its macro to avoid the
        +conflict.
        +
        +Specifically, if both Google Test and some other code define macro
        +`FOO`, you can add
        +```
        +  -DGTEST_DONT_DEFINE_FOO=1
        +```
        +to the compiler flags to tell Google Test to change the macro's name
        +from `FOO` to `GTEST_FOO`. For example, with `-DGTEST_DONT_DEFINE_TEST=1`, you'll need to write
        +```
        +  GTEST_TEST(SomeTest, DoesThis) { ... }
        +```
        +instead of
        +```
        +  TEST(SomeTest, DoesThis) { ... }
        +```
        +in order to define a test.
        +
        +Currently, the following `TEST`, `FAIL`, `SUCCEED`, and the basic comparison assertion macros can have alternative names. You can see the full list of covered macros [here](http://www.google.com/codesearch?q=if+!GTEST_DONT_DEFINE_\w%2B+package:http://googletest\.googlecode\.com+file:/include/gtest/gtest.h). More information can be found in the "Avoiding Macro Name Clashes" section of the README file.
        +
        +
        +## Is it OK if I have two separate `TEST(Foo, Bar)` test methods defined in different namespaces? ##
        +
        +Yes.
        +
        +The rule is **all test methods in the same test case must use the same fixture class**. This means that the following is **allowed** because both tests use the same fixture class (`::testing::Test`).
        +
        +```
        +namespace foo {
        +TEST(CoolTest, DoSomething) {
        +  SUCCEED();
        +}
        +}  // namespace foo
        +
        +namespace bar {
        +TEST(CoolTest, DoSomething) {
        +  SUCCEED();
        +}
        +}  // namespace foo
        +```
        +
        +However, the following code is **not allowed** and will produce a runtime error from Google Test because the test methods are using different test fixture classes with the same test case name.
        +
        +```
        +namespace foo {
        +class CoolTest : public ::testing::Test {};  // Fixture foo::CoolTest
        +TEST_F(CoolTest, DoSomething) {
        +  SUCCEED();
        +}
        +}  // namespace foo
        +
        +namespace bar {
        +class CoolTest : public ::testing::Test {};  // Fixture: bar::CoolTest
        +TEST_F(CoolTest, DoSomething) {
        +  SUCCEED();
        +}
        +}  // namespace foo
        +```
        +
        +## How do I build Google Testing Framework with Xcode 4? ##
        +
        +If you try to build Google Test's Xcode project with Xcode 4.0 or later, you may encounter an error message that looks like
        +"Missing SDK in target gtest\_framework: /Developer/SDKs/MacOSX10.4u.sdk". That means that Xcode does not support the SDK the project is targeting. See the Xcode section in the [README](http://code.google.com/p/googletest/source/browse/trunk/README) file on how to resolve this.
        +
        +## My question is not covered in your FAQ! ##
        +
        +If you cannot find the answer to your question in this FAQ, there are
        +some other resources you can use:
        +
        +  1. read other [wiki pages](http://code.google.com/p/googletest/w/list),
        +  1. search the mailing list [archive](http://groups.google.com/group/googletestframework/topics),
        +  1. ask it on [googletestframework@googlegroups.com](mailto:googletestframework@googlegroups.com) and someone will answer it (to prevent spam, we require you to join the [discussion group](http://groups.google.com/group/googletestframework) before you can post.).
        +
        +Please note that creating an issue in the
        +[issue tracker](http://code.google.com/p/googletest/issues/list) is _not_
        +a good way to get your answer, as it is monitored infrequently by a
        +very small number of people.
        +
        +When asking a question, it's helpful to provide as much of the
        +following information as possible (people cannot help you if there's
        +not enough information in your question):
        +
        +  * the version (or the revision number if you check out from SVN directly) of Google Test you use (Google Test is under active development, so it's possible that your problem has been solved in a later version),
        +  * your operating system,
        +  * the name and version of your compiler,
        +  * the complete command line flags you give to your compiler,
        +  * the complete compiler error messages (if the question is about compilation),
        +  * the _actual_ code (ideally, a minimal but complete program) that has the problem you encounter.
        \ No newline at end of file
        diff --git a/lib/ann/fann/lib/googletest/docs/V1_7_Primer.md b/lib/ann/fann/lib/googletest/docs/V1_7_Primer.md
        new file mode 100644
        index 0000000..1de5080
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/docs/V1_7_Primer.md
        @@ -0,0 +1,501 @@
        +
        +
        +# Introduction: Why Google C++ Testing Framework? #
        +
        +_Google C++ Testing Framework_ helps you write better C++ tests.
        +
        +No matter whether you work on Linux, Windows, or a Mac, if you write C++ code,
        +Google Test can help you.
        +
        +So what makes a good test, and how does Google C++ Testing Framework fit in? We believe:
        +  1. Tests should be _independent_ and _repeatable_. It's a pain to debug a test that succeeds or fails as a result of other tests.  Google C++ Testing Framework isolates the tests by running each of them on a different object. When a test fails, Google C++ Testing Framework allows you to run it in isolation for quick debugging.
        +  1. Tests should be well _organized_ and reflect the structure of the tested code.  Google C++ Testing Framework groups related tests into test cases that can share data and subroutines. This common pattern is easy to recognize and makes tests easy to maintain. Such consistency is especially helpful when people switch projects and start to work on a new code base.
        +  1. Tests should be _portable_ and _reusable_. The open-source community has a lot of code that is platform-neutral, its tests should also be platform-neutral.  Google C++ Testing Framework works on different OSes, with different compilers (gcc, MSVC, and others), with or without exceptions, so Google C++ Testing Framework tests can easily work with a variety of configurations.  (Note that the current release only contains build scripts for Linux - we are actively working on scripts for other platforms.)
        +  1. When tests fail, they should provide as much _information_ about the problem as possible. Google C++ Testing Framework doesn't stop at the first test failure. Instead, it only stops the current test and continues with the next. You can also set up tests that report non-fatal failures after which the current test continues. Thus, you can detect and fix multiple bugs in a single run-edit-compile cycle.
        +  1. The testing framework should liberate test writers from housekeeping chores and let them focus on the test _content_.  Google C++ Testing Framework automatically keeps track of all tests defined, and doesn't require the user to enumerate them in order to run them.
        +  1. Tests should be _fast_. With Google C++ Testing Framework, you can reuse shared resources across tests and pay for the set-up/tear-down only once, without making tests depend on each other.
        +
        +Since Google C++ Testing Framework is based on the popular xUnit
        +architecture, you'll feel right at home if you've used JUnit or PyUnit before.
        +If not, it will take you about 10 minutes to learn the basics and get started.
        +So let's go!
        +
        +_Note:_ We sometimes refer to Google C++ Testing Framework informally
        +as _Google Test_.
        +
        +# Setting up a New Test Project #
        +
        +To write a test program using Google Test, you need to compile Google
        +Test into a library and link your test with it.  We provide build
        +files for some popular build systems: `msvc/` for Visual Studio,
        +`xcode/` for Mac Xcode, `make/` for GNU make, `codegear/` for Borland
        +C++ Builder, and the autotools script (deprecated) and
        +`CMakeLists.txt` for CMake (recommended) in the Google Test root
        +directory.  If your build system is not on this list, you can take a
        +look at `make/Makefile` to learn how Google Test should be compiled
        +(basically you want to compile `src/gtest-all.cc` with `GTEST_ROOT`
        +and `GTEST_ROOT/include` in the header search path, where `GTEST_ROOT`
        +is the Google Test root directory).
        +
        +Once you are able to compile the Google Test library, you should
        +create a project or build target for your test program.  Make sure you
        +have `GTEST_ROOT/include` in the header search path so that the
        +compiler can find `"gtest/gtest.h"` when compiling your test.  Set up
        +your test project to link with the Google Test library (for example,
        +in Visual Studio, this is done by adding a dependency on
        +`gtest.vcproj`).
        +
        +If you still have questions, take a look at how Google Test's own
        +tests are built and use them as examples.
        +
        +# Basic Concepts #
        +
        +When using Google Test, you start by writing _assertions_, which are statements
        +that check whether a condition is true. An assertion's result can be _success_,
        +_nonfatal failure_, or _fatal failure_. If a fatal failure occurs, it aborts
        +the current function; otherwise the program continues normally.
        +
        +_Tests_ use assertions to verify the tested code's behavior. If a test crashes
        +or has a failed assertion, then it _fails_; otherwise it _succeeds_.
        +
        +A _test case_ contains one or many tests. You should group your tests into test
        +cases that reflect the structure of the tested code. When multiple tests in a
        +test case need to share common objects and subroutines, you can put them into a
        +_test fixture_ class.
        +
        +A _test program_ can contain multiple test cases.
        +
        +We'll now explain how to write a test program, starting at the individual
        +assertion level and building up to tests and test cases.
        +
        +# Assertions #
        +
        +Google Test assertions are macros that resemble function calls. You test a
        +class or function by making assertions about its behavior. When an assertion
        +fails, Google Test prints the assertion's source file and line number location,
        +along with a failure message. You may also supply a custom failure message
        +which will be appended to Google Test's message.
        +
        +The assertions come in pairs that test the same thing but have different
        +effects on the current function. `ASSERT_*` versions generate fatal failures
        +when they fail, and **abort the current function**. `EXPECT_*` versions generate
        +nonfatal failures, which don't abort the current function. Usually `EXPECT_*`
        +are preferred, as they allow more than one failures to be reported in a test.
        +However, you should use `ASSERT_*` if it doesn't make sense to continue when
        +the assertion in question fails.
        +
        +Since a failed `ASSERT_*` returns from the current function immediately,
        +possibly skipping clean-up code that comes after it, it may cause a space leak.
        +Depending on the nature of the leak, it may or may not be worth fixing - so
        +keep this in mind if you get a heap checker error in addition to assertion
        +errors.
        +
        +To provide a custom failure message, simply stream it into the macro using the
        +`<<` operator, or a sequence of such operators. An example:
        +```
        +ASSERT_EQ(x.size(), y.size()) << "Vectors x and y are of unequal length";
        +
        +for (int i = 0; i < x.size(); ++i) {
        +  EXPECT_EQ(x[i], y[i]) << "Vectors x and y differ at index " << i;
        +}
        +```
        +
        +Anything that can be streamed to an `ostream` can be streamed to an assertion
        +macro--in particular, C strings and `string` objects. If a wide string
        +(`wchar_t*`, `TCHAR*` in `UNICODE` mode on Windows, or `std::wstring`) is
        +streamed to an assertion, it will be translated to UTF-8 when printed.
        +
        +## Basic Assertions ##
        +
        +These assertions do basic true/false condition testing.
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_TRUE(`_condition_`)`;  | `EXPECT_TRUE(`_condition_`)`;   | _condition_ is true |
        +| `ASSERT_FALSE(`_condition_`)`; | `EXPECT_FALSE(`_condition_`)`;  | _condition_ is false |
        +
        +Remember, when they fail, `ASSERT_*` yields a fatal failure and
        +returns from the current function, while `EXPECT_*` yields a nonfatal
        +failure, allowing the function to continue running. In either case, an
        +assertion failure means its containing test fails.
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +## Binary Comparison ##
        +
        +This section describes assertions that compare two values.
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +|`ASSERT_EQ(`_expected_`, `_actual_`);`|`EXPECT_EQ(`_expected_`, `_actual_`);`| _expected_ `==` _actual_ |
        +|`ASSERT_NE(`_val1_`, `_val2_`);`      |`EXPECT_NE(`_val1_`, `_val2_`);`      | _val1_ `!=` _val2_ |
        +|`ASSERT_LT(`_val1_`, `_val2_`);`      |`EXPECT_LT(`_val1_`, `_val2_`);`      | _val1_ `<` _val2_ |
        +|`ASSERT_LE(`_val1_`, `_val2_`);`      |`EXPECT_LE(`_val1_`, `_val2_`);`      | _val1_ `<=` _val2_ |
        +|`ASSERT_GT(`_val1_`, `_val2_`);`      |`EXPECT_GT(`_val1_`, `_val2_`);`      | _val1_ `>` _val2_ |
        +|`ASSERT_GE(`_val1_`, `_val2_`);`      |`EXPECT_GE(`_val1_`, `_val2_`);`      | _val1_ `>=` _val2_ |
        +
        +In the event of a failure, Google Test prints both _val1_ and _val2_
        +. In `ASSERT_EQ*` and `EXPECT_EQ*` (and all other equality assertions
        +we'll introduce later), you should put the expression you want to test
        +in the position of _actual_, and put its expected value in _expected_,
        +as Google Test's failure messages are optimized for this convention.
        +
        +Value arguments must be comparable by the assertion's comparison
        +operator or you'll get a compiler error.  We used to require the
        +arguments to support the `<<` operator for streaming to an `ostream`,
        +but it's no longer necessary since v1.6.0 (if `<<` is supported, it
        +will be called to print the arguments when the assertion fails;
        +otherwise Google Test will attempt to print them in the best way it
        +can. For more details and how to customize the printing of the
        +arguments, see this Google Mock [recipe](http://code.google.com/p/googlemock/wiki/CookBook#Teaching_Google_Mock_How_to_Print_Your_Values).).
        +
        +These assertions can work with a user-defined type, but only if you define the
        +corresponding comparison operator (e.g. `==`, `<`, etc).  If the corresponding
        +operator is defined, prefer using the `ASSERT_*()` macros because they will
        +print out not only the result of the comparison, but the two operands as well.
        +
        +Arguments are always evaluated exactly once. Therefore, it's OK for the
        +arguments to have side effects. However, as with any ordinary C/C++ function,
        +the arguments' evaluation order is undefined (i.e. the compiler is free to
        +choose any order) and your code should not depend on any particular argument
        +evaluation order.
        +
        +`ASSERT_EQ()` does pointer equality on pointers. If used on two C strings, it
        +tests if they are in the same memory location, not if they have the same value.
        +Therefore, if you want to compare C strings (e.g. `const char*`) by value, use
        +`ASSERT_STREQ()` , which will be described later on. In particular, to assert
        +that a C string is `NULL`, use `ASSERT_STREQ(NULL, c_string)` . However, to
        +compare two `string` objects, you should use `ASSERT_EQ`.
        +
        +Macros in this section work with both narrow and wide string objects (`string`
        +and `wstring`).
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +## String Comparison ##
        +
        +The assertions in this group compare two **C strings**. If you want to compare
        +two `string` objects, use `EXPECT_EQ`, `EXPECT_NE`, and etc instead.
        +
        +| **Fatal assertion** | **Nonfatal assertion** | **Verifies** |
        +|:--------------------|:-----------------------|:-------------|
        +| `ASSERT_STREQ(`_expected\_str_`, `_actual\_str_`);`    | `EXPECT_STREQ(`_expected\_str_`, `_actual\_str_`);`     | the two C strings have the same content |
        +| `ASSERT_STRNE(`_str1_`, `_str2_`);`    | `EXPECT_STRNE(`_str1_`, `_str2_`);`     | the two C strings have different content |
        +| `ASSERT_STRCASEEQ(`_expected\_str_`, `_actual\_str_`);`| `EXPECT_STRCASEEQ(`_expected\_str_`, `_actual\_str_`);` | the two C strings have the same content, ignoring case |
        +| `ASSERT_STRCASENE(`_str1_`, `_str2_`);`| `EXPECT_STRCASENE(`_str1_`, `_str2_`);` | the two C strings have different content, ignoring case |
        +
        +Note that "CASE" in an assertion name means that case is ignored.
        +
        +`*STREQ*` and `*STRNE*` also accept wide C strings (`wchar_t*`). If a
        +comparison of two wide strings fails, their values will be printed as UTF-8
        +narrow strings.
        +
        +A `NULL` pointer and an empty string are considered _different_.
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +See also: For more string comparison tricks (substring, prefix, suffix, and
        +regular expression matching, for example), see the [Advanced Google Test Guide](V1_7_AdvancedGuide.md).
        +
        +# Simple Tests #
        +
        +To create a test:
        +  1. Use the `TEST()` macro to define and name a test function, These are ordinary C++ functions that don't return a value.
        +  1. In this function, along with any valid C++ statements you want to include, use the various Google Test assertions to check values.
        +  1. The test's result is determined by the assertions; if any assertion in the test fails (either fatally or non-fatally), or if the test crashes, the entire test fails. Otherwise, it succeeds.
        +
        +```
        +TEST(test_case_name, test_name) {
        + ... test body ...
        +}
        +```
        +
        +
        +`TEST()` arguments go from general to specific. The _first_ argument is the
        +name of the test case, and the _second_ argument is the test's name within the
        +test case. Both names must be valid C++ identifiers, and they should not contain underscore (`_`). A test's _full name_ consists of its containing test case and its
        +individual name. Tests from different test cases can have the same individual
        +name.
        +
        +For example, let's take a simple integer function:
        +```
        +int Factorial(int n); // Returns the factorial of n
        +```
        +
        +A test case for this function might look like:
        +```
        +// Tests factorial of 0.
        +TEST(FactorialTest, HandlesZeroInput) {
        +  EXPECT_EQ(1, Factorial(0));
        +}
        +
        +// Tests factorial of positive numbers.
        +TEST(FactorialTest, HandlesPositiveInput) {
        +  EXPECT_EQ(1, Factorial(1));
        +  EXPECT_EQ(2, Factorial(2));
        +  EXPECT_EQ(6, Factorial(3));
        +  EXPECT_EQ(40320, Factorial(8));
        +}
        +```
        +
        +Google Test groups the test results by test cases, so logically-related tests
        +should be in the same test case; in other words, the first argument to their
        +`TEST()` should be the same. In the above example, we have two tests,
        +`HandlesZeroInput` and `HandlesPositiveInput`, that belong to the same test
        +case `FactorialTest`.
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +# Test Fixtures: Using the Same Data Configuration for Multiple Tests #
        +
        +If you find yourself writing two or more tests that operate on similar data,
        +you can use a _test fixture_. It allows you to reuse the same configuration of
        +objects for several different tests.
        +
        +To create a fixture, just:
        +  1. Derive a class from `::testing::Test` . Start its body with `protected:` or `public:` as we'll want to access fixture members from sub-classes.
        +  1. Inside the class, declare any objects you plan to use.
        +  1. If necessary, write a default constructor or `SetUp()` function to prepare the objects for each test. A common mistake is to spell `SetUp()` as `Setup()` with a small `u` - don't let that happen to you.
        +  1. If necessary, write a destructor or `TearDown()` function to release any resources you allocated in `SetUp()` . To learn when you should use the constructor/destructor and when you should use `SetUp()/TearDown()`, read this [FAQ entry](http://code.google.com/p/googletest/wiki/V1_7_FAQ#Should_I_use_the_constructor/destructor_of_the_test_fixture_or_t).
        +  1. If needed, define subroutines for your tests to share.
        +
        +When using a fixture, use `TEST_F()` instead of `TEST()` as it allows you to
        +access objects and subroutines in the test fixture:
        +```
        +TEST_F(test_case_name, test_name) {
        + ... test body ...
        +}
        +```
        +
        +Like `TEST()`, the first argument is the test case name, but for `TEST_F()`
        +this must be the name of the test fixture class. You've probably guessed: `_F`
        +is for fixture.
        +
        +Unfortunately, the C++ macro system does not allow us to create a single macro
        +that can handle both types of tests. Using the wrong macro causes a compiler
        +error.
        +
        +Also, you must first define a test fixture class before using it in a
        +`TEST_F()`, or you'll get the compiler error "`virtual outside class
        +declaration`".
        +
        +For each test defined with `TEST_F()`, Google Test will:
        +  1. Create a _fresh_ test fixture at runtime
        +  1. Immediately initialize it via `SetUp()` ,
        +  1. Run the test
        +  1. Clean up by calling `TearDown()`
        +  1. Delete the test fixture.  Note that different tests in the same test case have different test fixture objects, and Google Test always deletes a test fixture before it creates the next one. Google Test does not reuse the same test fixture for multiple tests. Any changes one test makes to the fixture do not affect other tests.
        +
        +As an example, let's write tests for a FIFO queue class named `Queue`, which
        +has the following interface:
        +```
        +template <typename E> // E is the element type.
        +class Queue {
        + public:
        +  Queue();
        +  void Enqueue(const E& element);
        +  E* Dequeue(); // Returns NULL if the queue is empty.
        +  size_t size() const;
        +  ...
        +};
        +```
        +
        +First, define a fixture class. By convention, you should give it the name
        +`FooTest` where `Foo` is the class being tested.
        +```
        +class QueueTest : public ::testing::Test {
        + protected:
        +  virtual void SetUp() {
        +    q1_.Enqueue(1);
        +    q2_.Enqueue(2);
        +    q2_.Enqueue(3);
        +  }
        +
        +  // virtual void TearDown() {}
        +
        +  Queue<int> q0_;
        +  Queue<int> q1_;
        +  Queue<int> q2_;
        +};
        +```
        +
        +In this case, `TearDown()` is not needed since we don't have to clean up after
        +each test, other than what's already done by the destructor.
        +
        +Now we'll write tests using `TEST_F()` and this fixture.
        +```
        +TEST_F(QueueTest, IsEmptyInitially) {
        +  EXPECT_EQ(0, q0_.size());
        +}
        +
        +TEST_F(QueueTest, DequeueWorks) {
        +  int* n = q0_.Dequeue();
        +  EXPECT_EQ(NULL, n);
        +
        +  n = q1_.Dequeue();
        +  ASSERT_TRUE(n != NULL);
        +  EXPECT_EQ(1, *n);
        +  EXPECT_EQ(0, q1_.size());
        +  delete n;
        +
        +  n = q2_.Dequeue();
        +  ASSERT_TRUE(n != NULL);
        +  EXPECT_EQ(2, *n);
        +  EXPECT_EQ(1, q2_.size());
        +  delete n;
        +}
        +```
        +
        +The above uses both `ASSERT_*` and `EXPECT_*` assertions. The rule of thumb is
        +to use `EXPECT_*` when you want the test to continue to reveal more errors
        +after the assertion failure, and use `ASSERT_*` when continuing after failure
        +doesn't make sense. For example, the second assertion in the `Dequeue` test is
        +`ASSERT_TRUE(n != NULL)`, as we need to dereference the pointer `n` later,
        +which would lead to a segfault when `n` is `NULL`.
        +
        +When these tests run, the following happens:
        +  1. Google Test constructs a `QueueTest` object (let's call it `t1` ).
        +  1. `t1.SetUp()` initializes `t1` .
        +  1. The first test ( `IsEmptyInitially` ) runs on `t1` .
        +  1. `t1.TearDown()` cleans up after the test finishes.
        +  1. `t1` is destructed.
        +  1. The above steps are repeated on another `QueueTest` object, this time running the `DequeueWorks` test.
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +_Note_: Google Test automatically saves all _Google Test_ flags when a test
        +object is constructed, and restores them when it is destructed.
        +
        +# Invoking the Tests #
        +
        +`TEST()` and `TEST_F()` implicitly register their tests with Google Test. So, unlike with many other C++ testing frameworks, you don't have to re-list all your defined tests in order to run them.
        +
        +After defining your tests, you can run them with `RUN_ALL_TESTS()` , which returns `0` if all the tests are successful, or `1` otherwise. Note that `RUN_ALL_TESTS()` runs _all tests_ in your link unit -- they can be from different test cases, or even different source files.
        +
        +When invoked, the `RUN_ALL_TESTS()` macro:
        +  1. Saves the state of all  Google Test flags.
        +  1. Creates a test fixture object for the first test.
        +  1. Initializes it via `SetUp()`.
        +  1. Runs the test on the fixture object.
        +  1. Cleans up the fixture via `TearDown()`.
        +  1. Deletes the fixture.
        +  1. Restores the state of all Google Test flags.
        +  1. Repeats the above steps for the next test, until all tests have run.
        +
        +In addition, if the text fixture's constructor generates a fatal failure in
        +step 2, there is no point for step 3 - 5 and they are thus skipped. Similarly,
        +if step 3 generates a fatal failure, step 4 will be skipped.
        +
        +_Important_: You must not ignore the return value of `RUN_ALL_TESTS()`, or `gcc`
        +will give you a compiler error. The rationale for this design is that the
        +automated testing service determines whether a test has passed based on its
        +exit code, not on its stdout/stderr output; thus your `main()` function must
        +return the value of `RUN_ALL_TESTS()`.
        +
        +Also, you should call `RUN_ALL_TESTS()` only **once**. Calling it more than once
        +conflicts with some advanced Google Test features (e.g. thread-safe death
        +tests) and thus is not supported.
        +
        +_Availability_: Linux, Windows, Mac.
        +
        +# Writing the main() Function #
        +
        +You can start from this boilerplate:
        +```
        +#include "this/package/foo.h"
        +#include "gtest/gtest.h"
        +
        +namespace {
        +
        +// The fixture for testing class Foo.
        +class FooTest : public ::testing::Test {
        + protected:
        +  // You can remove any or all of the following functions if its body
        +  // is empty.
        +
        +  FooTest() {
        +    // You can do set-up work for each test here.
        +  }
        +
        +  virtual ~FooTest() {
        +    // You can do clean-up work that doesn't throw exceptions here.
        +  }
        +
        +  // If the constructor and destructor are not enough for setting up
        +  // and cleaning up each test, you can define the following methods:
        +
        +  virtual void SetUp() {
        +    // Code here will be called immediately after the constructor (right
        +    // before each test).
        +  }
        +
        +  virtual void TearDown() {
        +    // Code here will be called immediately after each test (right
        +    // before the destructor).
        +  }
        +
        +  // Objects declared here can be used by all tests in the test case for Foo.
        +};
        +
        +// Tests that the Foo::Bar() method does Abc.
        +TEST_F(FooTest, MethodBarDoesAbc) {
        +  const string input_filepath = "this/package/testdata/myinputfile.dat";
        +  const string output_filepath = "this/package/testdata/myoutputfile.dat";
        +  Foo f;
        +  EXPECT_EQ(0, f.Bar(input_filepath, output_filepath));
        +}
        +
        +// Tests that Foo does Xyz.
        +TEST_F(FooTest, DoesXyz) {
        +  // Exercises the Xyz feature of Foo.
        +}
        +
        +}  // namespace
        +
        +int main(int argc, char **argv) {
        +  ::testing::InitGoogleTest(&argc, argv);
        +  return RUN_ALL_TESTS();
        +}
        +```
        +
        +The `::testing::InitGoogleTest()` function parses the command line for Google
        +Test flags, and removes all recognized flags. This allows the user to control a
        +test program's behavior via various flags, which we'll cover in [AdvancedGuide](V1_7_AdvancedGuide.md).
        +You must call this function before calling `RUN_ALL_TESTS()`, or the flags
        +won't be properly initialized.
        +
        +On Windows, `InitGoogleTest()` also works with wide strings, so it can be used
        +in programs compiled in `UNICODE` mode as well.
        +
        +But maybe you think that writing all those main() functions is too much work? We agree with you completely and that's why Google Test provides a basic implementation of main(). If it fits your needs, then just link your test with gtest\_main library and you are good to go.
        +
        +## Important note for Visual C++ users ##
        +If you put your tests into a library and your `main()` function is in a different library or in your .exe file, those tests will not run. The reason is a [bug](https://connect.microsoft.com/feedback/viewfeedback.aspx?FeedbackID=244410&siteid=210) in Visual C++. When you define your tests, Google Test creates certain static objects to register them. These objects are not referenced from elsewhere but their constructors are still supposed to run. When Visual C++ linker sees that nothing in the library is referenced from other places it throws the library out. You have to reference your library with tests from your main program to keep the linker from discarding it. Here is how to do it. Somewhere in your library code declare a function:
        +```
        +__declspec(dllexport) int PullInMyLibrary() { return 0; }
        +```
        +If you put your tests in a static library (not DLL) then `__declspec(dllexport)` is not required. Now, in your main program, write a code that invokes that function:
        +```
        +int PullInMyLibrary();
        +static int dummy = PullInMyLibrary();
        +```
        +This will keep your tests referenced and will make them register themselves at startup.
        +
        +In addition, if you define your tests in a static library, add `/OPT:NOREF` to your main program linker options. If you use MSVC++ IDE, go to your .exe project properties/Configuration Properties/Linker/Optimization and set References setting to `Keep Unreferenced Data (/OPT:NOREF)`. This will keep Visual C++ linker from discarding individual symbols generated by your tests from the final executable.
        +
        +There is one more pitfall, though. If you use Google Test as a static library (that's how it is defined in gtest.vcproj) your tests must also reside in a static library. If you have to have them in a DLL, you _must_ change Google Test to build into a DLL as well. Otherwise your tests will not run correctly or will not run at all. The general conclusion here is: make your life easier - do not write your tests in libraries!
        +
        +# Where to Go from Here #
        +
        +Congratulations! You've learned the Google Test basics. You can start writing
        +and running Google Test tests, read some [samples](V1_7_Samples.md), or continue with
        +[AdvancedGuide](V1_7_AdvancedGuide.md), which describes many more useful Google Test features.
        +
        +# Known Limitations #
        +
        +Google Test is designed to be thread-safe.  The implementation is
        +thread-safe on systems where the `pthreads` library is available.  It
        +is currently _unsafe_ to use Google Test assertions from two threads
        +concurrently on other systems (e.g. Windows).  In most tests this is
        +not an issue as usually the assertions are done in the main thread. If
        +you want to help, you can volunteer to implement the necessary
        +synchronization primitives in `gtest-port.h` for your platform.
        \ No newline at end of file
        diff --git a/lib/ann/fann/lib/googletest/docs/V1_7_PumpManual.md b/lib/ann/fann/lib/googletest/docs/V1_7_PumpManual.md
        new file mode 100644
        index 0000000..cf6cf56
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/docs/V1_7_PumpManual.md
        @@ -0,0 +1,177 @@
        +
        +
        +<b>P</b>ump is <b>U</b>seful for <b>M</b>eta <b>P</b>rogramming.
        +
        +# The Problem #
        +
        +Template and macro libraries often need to define many classes,
        +functions, or macros that vary only (or almost only) in the number of
        +arguments they take. It's a lot of repetitive, mechanical, and
        +error-prone work.
        +
        +Variadic templates and variadic macros can alleviate the problem.
        +However, while both are being considered by the C++ committee, neither
        +is in the standard yet or widely supported by compilers.  Thus they
        +are often not a good choice, especially when your code needs to be
        +portable. And their capabilities are still limited.
        +
        +As a result, authors of such libraries often have to write scripts to
        +generate their implementation. However, our experience is that it's
        +tedious to write such scripts, which tend to reflect the structure of
        +the generated code poorly and are often hard to read and edit. For
        +example, a small change needed in the generated code may require some
        +non-intuitive, non-trivial changes in the script. This is especially
        +painful when experimenting with the code.
        +
        +# Our Solution #
        +
        +Pump (for Pump is Useful for Meta Programming, Pretty Useful for Meta
        +Programming, or Practical Utility for Meta Programming, whichever you
        +prefer) is a simple meta-programming tool for C++. The idea is that a
        +programmer writes a `foo.pump` file which contains C++ code plus meta
        +code that manipulates the C++ code. The meta code can handle
        +iterations over a range, nested iterations, local meta variable
        +definitions, simple arithmetic, and conditional expressions. You can
        +view it as a small Domain-Specific Language. The meta language is
        +designed to be non-intrusive (s.t. it won't confuse Emacs' C++ mode,
        +for example) and concise, making Pump code intuitive and easy to
        +maintain.
        +
        +## Highlights ##
        +
        +  * The implementation is in a single Python script and thus ultra portable: no build or installation is needed and it works cross platforms.
        +  * Pump tries to be smart with respect to [Google's style guide](http://code.google.com/p/google-styleguide/): it breaks long lines (easy to have when they are generated) at acceptable places to fit within 80 columns and indent the continuation lines correctly.
        +  * The format is human-readable and more concise than XML.
        +  * The format works relatively well with Emacs' C++ mode.
        +
        +## Examples ##
        +
        +The following Pump code (where meta keywords start with `$`, `[[` and `]]` are meta brackets, and `$$` starts a meta comment that ends with the line):
        +
        +```
        +$var n = 3     $$ Defines a meta variable n.
        +$range i 0..n  $$ Declares the range of meta iterator i (inclusive).
        +$for i [[
        +               $$ Meta loop.
        +// Foo$i does blah for $i-ary predicates.
        +$range j 1..i
        +template <size_t N $for j [[, typename A$j]]>
        +class Foo$i {
        +$if i == 0 [[
        +  blah a;
        +]] $elif i <= 2 [[
        +  blah b;
        +]] $else [[
        +  blah c;
        +]]
        +};
        +
        +]]
        +```
        +
        +will be translated by the Pump compiler to:
        +
        +```
        +// Foo0 does blah for 0-ary predicates.
        +template <size_t N>
        +class Foo0 {
        +  blah a;
        +};
        +
        +// Foo1 does blah for 1-ary predicates.
        +template <size_t N, typename A1>
        +class Foo1 {
        +  blah b;
        +};
        +
        +// Foo2 does blah for 2-ary predicates.
        +template <size_t N, typename A1, typename A2>
        +class Foo2 {
        +  blah b;
        +};
        +
        +// Foo3 does blah for 3-ary predicates.
        +template <size_t N, typename A1, typename A2, typename A3>
        +class Foo3 {
        +  blah c;
        +};
        +```
        +
        +In another example,
        +
        +```
        +$range i 1..n
        +Func($for i + [[a$i]]);
        +$$ The text between i and [[ is the separator between iterations.
        +```
        +
        +will generate one of the following lines (without the comments), depending on the value of `n`:
        +
        +```
        +Func();              // If n is 0.
        +Func(a1);            // If n is 1.
        +Func(a1 + a2);       // If n is 2.
        +Func(a1 + a2 + a3);  // If n is 3.
        +// And so on...
        +```
        +
        +## Constructs ##
        +
        +We support the following meta programming constructs:
        +
        +| `$var id = exp` | Defines a named constant value. `$id` is valid util the end of the current meta lexical block. |
        +|:----------------|:-----------------------------------------------------------------------------------------------|
        +| `$range id exp..exp` | Sets the range of an iteration variable, which can be reused in multiple loops later.          |
        +| `$for id sep [[ code ]]` | Iteration. The range of `id` must have been defined earlier. `$id` is valid in `code`.         |
        +| `$($)`          | Generates a single `$` character.                                                              |
        +| `$id`           | Value of the named constant or iteration variable.                                             |
        +| `$(exp)`        | Value of the expression.                                                                       |
        +| `$if exp [[ code ]] else_branch` | Conditional.                                                                                   |
        +| `[[ code ]]`    | Meta lexical block.                                                                            |
        +| `cpp_code`      | Raw C++ code.                                                                                  |
        +| `$$ comment`    | Meta comment.                                                                                  |
        +
        +**Note:** To give the user some freedom in formatting the Pump source
        +code, Pump ignores a new-line character if it's right after `$for foo`
        +or next to `[[` or `]]`. Without this rule you'll often be forced to write
        +very long lines to get the desired output. Therefore sometimes you may
        +need to insert an extra new-line in such places for a new-line to show
        +up in your output.
        +
        +## Grammar ##
        +
        +```
        +code ::= atomic_code*
        +atomic_code ::= $var id = exp
        +    | $var id = [[ code ]]
        +    | $range id exp..exp
        +    | $for id sep [[ code ]]
        +    | $($)
        +    | $id
        +    | $(exp)
        +    | $if exp [[ code ]] else_branch
        +    | [[ code ]]
        +    | cpp_code
        +sep ::= cpp_code | empty_string
        +else_branch ::= $else [[ code ]]
        +    | $elif exp [[ code ]] else_branch
        +    | empty_string
        +exp ::= simple_expression_in_Python_syntax
        +```
        +
        +## Code ##
        +
        +You can find the source code of Pump in [scripts/pump.py](http://code.google.com/p/googletest/source/browse/trunk/scripts/pump.py). It is still
        +very unpolished and lacks automated tests, although it has been
        +successfully used many times. If you find a chance to use it in your
        +project, please let us know what you think!  We also welcome help on
        +improving Pump.
        +
        +## Real Examples ##
        +
        +You can find real-world applications of Pump in [Google Test](http://www.google.com/codesearch?q=file%3A\.pump%24+package%3Ahttp%3A%2F%2Fgoogletest\.googlecode\.com) and [Google Mock](http://www.google.com/codesearch?q=file%3A\.pump%24+package%3Ahttp%3A%2F%2Fgooglemock\.googlecode\.com).  The source file `foo.h.pump` generates `foo.h`.
        +
        +## Tips ##
        +
        +  * If a meta variable is followed by a letter or digit, you can separate them using `[[]]`, which inserts an empty string. For example `Foo$j[[]]Helper` generate `Foo1Helper` when `j` is 1.
        +  * To avoid extra-long Pump source lines, you can break a line anywhere you want by inserting `[[]]` followed by a new line. Since any new-line character next to `[[` or `]]` is ignored, the generated code won't contain this new line.
        \ No newline at end of file
        diff --git a/lib/ann/fann/lib/googletest/docs/V1_7_Samples.md b/lib/ann/fann/lib/googletest/docs/V1_7_Samples.md
        new file mode 100644
        index 0000000..8122569
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/docs/V1_7_Samples.md
        @@ -0,0 +1,14 @@
        +If you're like us, you'd like to look at some Google Test sample code.  The
        +[samples folder](http://code.google.com/p/googletest/source/browse/#svn/trunk/samples) has a number of well-commented samples showing how to use a
        +variety of Google Test features.
        +
        +  * [Sample #1](http://code.google.com/p/googletest/source/browse/trunk/samples/sample1_unittest.cc) shows the basic steps of using Google Test to test C++ functions.
        +  * [Sample #2](http://code.google.com/p/googletest/source/browse/trunk/samples/sample2_unittest.cc) shows a more complex unit test for a class with multiple member functions.
        +  * [Sample #3](http://code.google.com/p/googletest/source/browse/trunk/samples/sample3_unittest.cc) uses a test fixture.
        +  * [Sample #4](http://code.google.com/p/googletest/source/browse/trunk/samples/sample4_unittest.cc) is another basic example of using Google Test.
        +  * [Sample #5](http://code.google.com/p/googletest/source/browse/trunk/samples/sample5_unittest.cc) teaches how to reuse a test fixture in multiple test cases by deriving sub-fixtures from it.
        +  * [Sample #6](http://code.google.com/p/googletest/source/browse/trunk/samples/sample6_unittest.cc) demonstrates type-parameterized tests.
        +  * [Sample #7](http://code.google.com/p/googletest/source/browse/trunk/samples/sample7_unittest.cc) teaches the basics of value-parameterized tests.
        +  * [Sample #8](http://code.google.com/p/googletest/source/browse/trunk/samples/sample8_unittest.cc) shows using `Combine()` in value-parameterized tests.
        +  * [Sample #9](http://code.google.com/p/googletest/source/browse/trunk/samples/sample9_unittest.cc) shows use of the listener API to modify Google Test's console output and the use of its reflection API to inspect test results.
        +  * [Sample #10](http://code.google.com/p/googletest/source/browse/trunk/samples/sample10_unittest.cc) shows use of the listener API to implement a primitive memory leak checker.
        \ No newline at end of file
        diff --git a/lib/ann/fann/lib/googletest/docs/V1_7_XcodeGuide.md b/lib/ann/fann/lib/googletest/docs/V1_7_XcodeGuide.md
        new file mode 100644
        index 0000000..bf24bf5
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/docs/V1_7_XcodeGuide.md
        @@ -0,0 +1,93 @@
        +
        +
        +This guide will explain how to use the Google Testing Framework in your Xcode projects on Mac OS X. This tutorial begins by quickly explaining what to do for experienced users. After the quick start, the guide goes provides additional explanation about each step.
        +
        +# Quick Start #
        +
        +Here is the quick guide for using Google Test in your Xcode project.
        +
        +  1. Download the source from the [website](http://code.google.com/p/googletest) using this command: `svn checkout http://googletest.googlecode.com/svn/trunk/ googletest-read-only`
        +  1. Open up the `gtest.xcodeproj` in the `googletest-read-only/xcode/` directory and build the gtest.framework.
        +  1. Create a new "Shell Tool" target in your Xcode project called something like "UnitTests"
        +  1. Add the gtest.framework to your project and add it to the "Link Binary with Libraries" build phase of "UnitTests"
        +  1. Add your unit test source code to the "Compile Sources" build phase of "UnitTests"
        +  1. Edit the "UnitTests" executable and add an environment variable named "DYLD\_FRAMEWORK\_PATH" with a value equal to the path to the framework containing the gtest.framework relative to the compiled executable.
        +  1. Build and Go
        +
        +The following sections further explain each of the steps listed above in depth, describing in more detail how to complete it including some variations.
        +
        +# Get the Source #
        +
        +Currently, the gtest.framework discussed here isn't available in a tagged release of Google Test, it is only available in the trunk. As explained at the Google Test [site](http://code.google.com/p/googletest/source/checkout">svn), you can get the code from anonymous SVN with this command:
        +
        +```
        +svn checkout http://googletest.googlecode.com/svn/trunk/ googletest-read-only
        +```
        +
        +Alternatively, if you are working with Subversion in your own code base, you can add Google Test as an external dependency to your own Subversion repository. By following this approach, everyone that checks out your svn repository will also receive a copy of Google Test (a specific version, if you wish) without having to check it out explicitly. This makes the set up of your project simpler and reduces the copied code in the repository.
        +
        +To use `svn:externals`, decide where you would like to have the external source reside. You might choose to put the external source inside the trunk, because you want it to be part of the branch when you make a release. However, keeping it outside the trunk in a version-tagged directory called something like `third-party/googletest/1.0.1`, is another option. Once the location is established, use `svn propedit svn:externals _directory_` to set the svn:externals property on a directory in your repository. This directory won't contain the code, but be its versioned parent directory.
        +
        +The command `svn propedit` will bring up your Subversion editor, making editing the long, (potentially multi-line) property simpler. This same method can be used to check out a tagged branch, by using the appropriate URL (e.g. `http://googletest.googlecode.com/svn/tags/release-1.0.1`). Additionally, the svn:externals property allows the specification of a particular revision of the trunk with the `-r_##_` option (e.g. `externals/src/googletest -r60 http://googletest.googlecode.com/svn/trunk`).
        +
        +Here is an example of using the svn:externals properties on a trunk (read via `svn propget`) of a project. This value checks out a copy of Google Test into the `trunk/externals/src/googletest/` directory.
        +
        +```
        +[Computer:svn] user$ svn propget svn:externals trunk
        +externals/src/googletest http://googletest.googlecode.com/svn/trunk
        +```
        +
        +# Add the Framework to Your Project #
        +
        +The next step is to build and add the gtest.framework to your own project. This guide describes two common ways below.
        +
        +  * **Option 1** --- The simplest way to add Google Test to your own project, is to open gtest.xcodeproj (found in the xcode/ directory of the Google Test trunk) and build the framework manually. Then, add the built framework into your project using the "Add->Existing Framework..." from the context menu or "Project->Add..." from the main menu. The gtest.framework is relocatable and contains the headers and object code that you'll need to make tests. This method requires rebuilding every time you upgrade Google Test in your project.
        +  * **Option 2** --- If you are going to be living off the trunk of Google Test, incorporating its latest features into your unit tests (or are a Google Test developer yourself). You'll want to rebuild the framework every time the source updates. to do this, you'll need to add the gtest.xcodeproj file, not the framework itself, to your own Xcode project. Then, from the build products that are revealed by the project's disclosure triangle, you can find the gtest.framework, which can be added to your targets (discussed below).
        +
        +# Make a Test Target #
        +
        +To start writing tests, make a new "Shell Tool" target. This target template is available under BSD, Cocoa, or Carbon. Add your unit test source code to the "Compile Sources" build phase of the target.
        +
        +Next, you'll want to add gtest.framework in two different ways, depending upon which option you chose above.
        +
        +  * **Option 1** --- During compilation, Xcode will need to know that you are linking against the gtest.framework. Add the gtest.framework to the "Link Binary with Libraries" build phase of your test target. This will include the Google Test headers in your header search path, and will tell the linker where to find the library.
        +  * **Option 2** --- If your working out of the trunk, you'll also want to add gtest.framework to your "Link Binary with Libraries" build phase of your test target. In addition, you'll  want to add the gtest.framework as a dependency to your unit test target. This way, Xcode will make sure that gtest.framework is up to date, every time your build your target. Finally, if you don't share build directories with Google Test, you'll have to copy the gtest.framework into your own build products directory using a "Run Script" build phase.
        +
        +# Set Up the Executable Run Environment #
        +
        +Since the unit test executable is a shell tool, it doesn't have a bundle with a `Contents/Frameworks` directory, in which to place gtest.framework. Instead, the dynamic linker must be told at runtime to search for the framework in another location. This can be accomplished by setting the "DYLD\_FRAMEWORK\_PATH" environment variable in the "Edit Active Executable ..." Arguments tab, under "Variables to be set in the environment:". The path for this value is the path (relative or absolute) of the directory containing the gtest.framework.
        +
        +If you haven't set up the DYLD\_FRAMEWORK\_PATH, correctly, you might get a message like this:
        +
        +```
        +[Session started at 2008-08-15 06:23:57 -0600.]
        +  dyld: Library not loaded: @loader_path/../Frameworks/gtest.framework/Versions/A/gtest
        +    Referenced from: /Users/username/Documents/Sandbox/gtestSample/build/Debug/WidgetFrameworkTest
        +    Reason: image not found
        +```
        +
        +To correct this problem, got to the directory containing the executable named in "Referenced from:" value in the error message above. Then, with the terminal in this location, find the relative path to the directory containing the gtest.framework. That is the value you'll need to set as the DYLD\_FRAMEWORK\_PATH.
        +
        +# Build and Go #
        +
        +Now, when you click "Build and Go", the test will be executed. Dumping out something like this:
        +
        +```
        +[Session started at 2008-08-06 06:36:13 -0600.]
        +[==========] Running 2 tests from 1 test case.
        +[----------] Global test environment set-up.
        +[----------] 2 tests from WidgetInitializerTest
        +[ RUN      ] WidgetInitializerTest.TestConstructor
        +[       OK ] WidgetInitializerTest.TestConstructor
        +[ RUN      ] WidgetInitializerTest.TestConversion
        +[       OK ] WidgetInitializerTest.TestConversion
        +[----------] Global test environment tear-down
        +[==========] 2 tests from 1 test case ran.
        +[  PASSED  ] 2 tests.
        +
        +The Debugger has exited with status 0.  
        +```
        +
        +# Summary #
        +
        +Unit testing is a valuable way to ensure your data model stays valid even during rapid development or refactoring. The Google Testing Framework is a great unit testing framework for C and C++ which integrates well with an Xcode development environment.
        \ No newline at end of file
        diff --git a/lib/ann/fann/lib/googletest/docs/XcodeGuide.md b/lib/ann/fann/lib/googletest/docs/XcodeGuide.md
        new file mode 100644
        index 0000000..bf24bf5
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/docs/XcodeGuide.md
        @@ -0,0 +1,93 @@
        +
        +
        +This guide will explain how to use the Google Testing Framework in your Xcode projects on Mac OS X. This tutorial begins by quickly explaining what to do for experienced users. After the quick start, the guide goes provides additional explanation about each step.
        +
        +# Quick Start #
        +
        +Here is the quick guide for using Google Test in your Xcode project.
        +
        +  1. Download the source from the [website](http://code.google.com/p/googletest) using this command: `svn checkout http://googletest.googlecode.com/svn/trunk/ googletest-read-only`
        +  1. Open up the `gtest.xcodeproj` in the `googletest-read-only/xcode/` directory and build the gtest.framework.
        +  1. Create a new "Shell Tool" target in your Xcode project called something like "UnitTests"
        +  1. Add the gtest.framework to your project and add it to the "Link Binary with Libraries" build phase of "UnitTests"
        +  1. Add your unit test source code to the "Compile Sources" build phase of "UnitTests"
        +  1. Edit the "UnitTests" executable and add an environment variable named "DYLD\_FRAMEWORK\_PATH" with a value equal to the path to the framework containing the gtest.framework relative to the compiled executable.
        +  1. Build and Go
        +
        +The following sections further explain each of the steps listed above in depth, describing in more detail how to complete it including some variations.
        +
        +# Get the Source #
        +
        +Currently, the gtest.framework discussed here isn't available in a tagged release of Google Test, it is only available in the trunk. As explained at the Google Test [site](http://code.google.com/p/googletest/source/checkout">svn), you can get the code from anonymous SVN with this command:
        +
        +```
        +svn checkout http://googletest.googlecode.com/svn/trunk/ googletest-read-only
        +```
        +
        +Alternatively, if you are working with Subversion in your own code base, you can add Google Test as an external dependency to your own Subversion repository. By following this approach, everyone that checks out your svn repository will also receive a copy of Google Test (a specific version, if you wish) without having to check it out explicitly. This makes the set up of your project simpler and reduces the copied code in the repository.
        +
        +To use `svn:externals`, decide where you would like to have the external source reside. You might choose to put the external source inside the trunk, because you want it to be part of the branch when you make a release. However, keeping it outside the trunk in a version-tagged directory called something like `third-party/googletest/1.0.1`, is another option. Once the location is established, use `svn propedit svn:externals _directory_` to set the svn:externals property on a directory in your repository. This directory won't contain the code, but be its versioned parent directory.
        +
        +The command `svn propedit` will bring up your Subversion editor, making editing the long, (potentially multi-line) property simpler. This same method can be used to check out a tagged branch, by using the appropriate URL (e.g. `http://googletest.googlecode.com/svn/tags/release-1.0.1`). Additionally, the svn:externals property allows the specification of a particular revision of the trunk with the `-r_##_` option (e.g. `externals/src/googletest -r60 http://googletest.googlecode.com/svn/trunk`).
        +
        +Here is an example of using the svn:externals properties on a trunk (read via `svn propget`) of a project. This value checks out a copy of Google Test into the `trunk/externals/src/googletest/` directory.
        +
        +```
        +[Computer:svn] user$ svn propget svn:externals trunk
        +externals/src/googletest http://googletest.googlecode.com/svn/trunk
        +```
        +
        +# Add the Framework to Your Project #
        +
        +The next step is to build and add the gtest.framework to your own project. This guide describes two common ways below.
        +
        +  * **Option 1** --- The simplest way to add Google Test to your own project, is to open gtest.xcodeproj (found in the xcode/ directory of the Google Test trunk) and build the framework manually. Then, add the built framework into your project using the "Add->Existing Framework..." from the context menu or "Project->Add..." from the main menu. The gtest.framework is relocatable and contains the headers and object code that you'll need to make tests. This method requires rebuilding every time you upgrade Google Test in your project.
        +  * **Option 2** --- If you are going to be living off the trunk of Google Test, incorporating its latest features into your unit tests (or are a Google Test developer yourself). You'll want to rebuild the framework every time the source updates. to do this, you'll need to add the gtest.xcodeproj file, not the framework itself, to your own Xcode project. Then, from the build products that are revealed by the project's disclosure triangle, you can find the gtest.framework, which can be added to your targets (discussed below).
        +
        +# Make a Test Target #
        +
        +To start writing tests, make a new "Shell Tool" target. This target template is available under BSD, Cocoa, or Carbon. Add your unit test source code to the "Compile Sources" build phase of the target.
        +
        +Next, you'll want to add gtest.framework in two different ways, depending upon which option you chose above.
        +
        +  * **Option 1** --- During compilation, Xcode will need to know that you are linking against the gtest.framework. Add the gtest.framework to the "Link Binary with Libraries" build phase of your test target. This will include the Google Test headers in your header search path, and will tell the linker where to find the library.
        +  * **Option 2** --- If your working out of the trunk, you'll also want to add gtest.framework to your "Link Binary with Libraries" build phase of your test target. In addition, you'll  want to add the gtest.framework as a dependency to your unit test target. This way, Xcode will make sure that gtest.framework is up to date, every time your build your target. Finally, if you don't share build directories with Google Test, you'll have to copy the gtest.framework into your own build products directory using a "Run Script" build phase.
        +
        +# Set Up the Executable Run Environment #
        +
        +Since the unit test executable is a shell tool, it doesn't have a bundle with a `Contents/Frameworks` directory, in which to place gtest.framework. Instead, the dynamic linker must be told at runtime to search for the framework in another location. This can be accomplished by setting the "DYLD\_FRAMEWORK\_PATH" environment variable in the "Edit Active Executable ..." Arguments tab, under "Variables to be set in the environment:". The path for this value is the path (relative or absolute) of the directory containing the gtest.framework.
        +
        +If you haven't set up the DYLD\_FRAMEWORK\_PATH, correctly, you might get a message like this:
        +
        +```
        +[Session started at 2008-08-15 06:23:57 -0600.]
        +  dyld: Library not loaded: @loader_path/../Frameworks/gtest.framework/Versions/A/gtest
        +    Referenced from: /Users/username/Documents/Sandbox/gtestSample/build/Debug/WidgetFrameworkTest
        +    Reason: image not found
        +```
        +
        +To correct this problem, got to the directory containing the executable named in "Referenced from:" value in the error message above. Then, with the terminal in this location, find the relative path to the directory containing the gtest.framework. That is the value you'll need to set as the DYLD\_FRAMEWORK\_PATH.
        +
        +# Build and Go #
        +
        +Now, when you click "Build and Go", the test will be executed. Dumping out something like this:
        +
        +```
        +[Session started at 2008-08-06 06:36:13 -0600.]
        +[==========] Running 2 tests from 1 test case.
        +[----------] Global test environment set-up.
        +[----------] 2 tests from WidgetInitializerTest
        +[ RUN      ] WidgetInitializerTest.TestConstructor
        +[       OK ] WidgetInitializerTest.TestConstructor
        +[ RUN      ] WidgetInitializerTest.TestConversion
        +[       OK ] WidgetInitializerTest.TestConversion
        +[----------] Global test environment tear-down
        +[==========] 2 tests from 1 test case ran.
        +[  PASSED  ] 2 tests.
        +
        +The Debugger has exited with status 0.  
        +```
        +
        +# Summary #
        +
        +Unit testing is a valuable way to ensure your data model stays valid even during rapid development or refactoring. The Google Testing Framework is a great unit testing framework for C and C++ which integrates well with an Xcode development environment.
        \ No newline at end of file
        diff --git a/lib/ann/fann/lib/googletest/include/gtest/gtest-death-test.h b/lib/ann/fann/lib/googletest/include/gtest/gtest-death-test.h
        new file mode 100644
        index 0000000..957a69c
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/include/gtest/gtest-death-test.h
        @@ -0,0 +1,294 @@
        +// Copyright 2005, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +//
        +// The Google C++ Testing Framework (Google Test)
        +//
        +// This header file defines the public API for death tests.  It is
        +// #included by gtest.h so a user doesn't need to include this
        +// directly.
        +
        +#ifndef GTEST_INCLUDE_GTEST_GTEST_DEATH_TEST_H_
        +#define GTEST_INCLUDE_GTEST_GTEST_DEATH_TEST_H_
        +
        +#include "gtest/internal/gtest-death-test-internal.h"
        +
        +namespace testing {
        +
        +// This flag controls the style of death tests.  Valid values are "threadsafe",
        +// meaning that the death test child process will re-execute the test binary
        +// from the start, running only a single death test, or "fast",
        +// meaning that the child process will execute the test logic immediately
        +// after forking.
        +GTEST_DECLARE_string_(death_test_style);
        +
        +#if GTEST_HAS_DEATH_TEST
        +
        +namespace internal {
        +
        +// Returns a Boolean value indicating whether the caller is currently
        +// executing in the context of the death test child process.  Tools such as
        +// Valgrind heap checkers may need this to modify their behavior in death
        +// tests.  IMPORTANT: This is an internal utility.  Using it may break the
        +// implementation of death tests.  User code MUST NOT use it.
        +GTEST_API_ bool InDeathTestChild();
        +
        +}  // namespace internal
        +
        +// The following macros are useful for writing death tests.
        +
        +// Here's what happens when an ASSERT_DEATH* or EXPECT_DEATH* is
        +// executed:
        +//
        +//   1. It generates a warning if there is more than one active
        +//   thread.  This is because it's safe to fork() or clone() only
        +//   when there is a single thread.
        +//
        +//   2. The parent process clone()s a sub-process and runs the death
        +//   test in it; the sub-process exits with code 0 at the end of the
        +//   death test, if it hasn't exited already.
        +//
        +//   3. The parent process waits for the sub-process to terminate.
        +//
        +//   4. The parent process checks the exit code and error message of
        +//   the sub-process.
        +//
        +// Examples:
        +//
        +//   ASSERT_DEATH(server.SendMessage(56, "Hello"), "Invalid port number");
        +//   for (int i = 0; i < 5; i++) {
        +//     EXPECT_DEATH(server.ProcessRequest(i),
        +//                  "Invalid request .* in ProcessRequest()")
        +//                  << "Failed to die on request " << i;
        +//   }
        +//
        +//   ASSERT_EXIT(server.ExitNow(), ::testing::ExitedWithCode(0), "Exiting");
        +//
        +//   bool KilledBySIGHUP(int exit_code) {
        +//     return WIFSIGNALED(exit_code) && WTERMSIG(exit_code) == SIGHUP;
        +//   }
        +//
        +//   ASSERT_EXIT(client.HangUpServer(), KilledBySIGHUP, "Hanging up!");
        +//
        +// On the regular expressions used in death tests:
        +//
        +//   On POSIX-compliant systems (*nix), we use the <regex.h> library,
        +//   which uses the POSIX extended regex syntax.
        +//
        +//   On other platforms (e.g. Windows), we only support a simple regex
        +//   syntax implemented as part of Google Test.  This limited
        +//   implementation should be enough most of the time when writing
        +//   death tests; though it lacks many features you can find in PCRE
        +//   or POSIX extended regex syntax.  For example, we don't support
        +//   union ("x|y"), grouping ("(xy)"), brackets ("[xy]"), and
        +//   repetition count ("x{5,7}"), among others.
        +//
        +//   Below is the syntax that we do support.  We chose it to be a
        +//   subset of both PCRE and POSIX extended regex, so it's easy to
        +//   learn wherever you come from.  In the following: 'A' denotes a
        +//   literal character, period (.), or a single \\ escape sequence;
        +//   'x' and 'y' denote regular expressions; 'm' and 'n' are for
        +//   natural numbers.
        +//
        +//     c     matches any literal character c
        +//     \\d   matches any decimal digit
        +//     \\D   matches any character that's not a decimal digit
        +//     \\f   matches \f
        +//     \\n   matches \n
        +//     \\r   matches \r
        +//     \\s   matches any ASCII whitespace, including \n
        +//     \\S   matches any character that's not a whitespace
        +//     \\t   matches \t
        +//     \\v   matches \v
        +//     \\w   matches any letter, _, or decimal digit
        +//     \\W   matches any character that \\w doesn't match
        +//     \\c   matches any literal character c, which must be a punctuation
        +//     .     matches any single character except \n
        +//     A?    matches 0 or 1 occurrences of A
        +//     A*    matches 0 or many occurrences of A
        +//     A+    matches 1 or many occurrences of A
        +//     ^     matches the beginning of a string (not that of each line)
        +//     $     matches the end of a string (not that of each line)
        +//     xy    matches x followed by y
        +//
        +//   If you accidentally use PCRE or POSIX extended regex features
        +//   not implemented by us, you will get a run-time failure.  In that
        +//   case, please try to rewrite your regular expression within the
        +//   above syntax.
        +//
        +//   This implementation is *not* meant to be as highly tuned or robust
        +//   as a compiled regex library, but should perform well enough for a
        +//   death test, which already incurs significant overhead by launching
        +//   a child process.
        +//
        +// Known caveats:
        +//
        +//   A "threadsafe" style death test obtains the path to the test
        +//   program from argv[0] and re-executes it in the sub-process.  For
        +//   simplicity, the current implementation doesn't search the PATH
        +//   when launching the sub-process.  This means that the user must
        +//   invoke the test program via a path that contains at least one
        +//   path separator (e.g. path/to/foo_test and
        +//   /absolute/path/to/bar_test are fine, but foo_test is not).  This
        +//   is rarely a problem as people usually don't put the test binary
        +//   directory in PATH.
        +//
        +// TODO(wan@google.com): make thread-safe death tests search the PATH.
        +
        +// Asserts that a given statement causes the program to exit, with an
        +// integer exit status that satisfies predicate, and emitting error output
        +// that matches regex.
        +# define ASSERT_EXIT(statement, predicate, regex) \
        +    GTEST_DEATH_TEST_(statement, predicate, regex, GTEST_FATAL_FAILURE_)
        +
        +// Like ASSERT_EXIT, but continues on to successive tests in the
        +// test case, if any:
        +# define EXPECT_EXIT(statement, predicate, regex) \
        +    GTEST_DEATH_TEST_(statement, predicate, regex, GTEST_NONFATAL_FAILURE_)
        +
        +// Asserts that a given statement causes the program to exit, either by
        +// explicitly exiting with a nonzero exit code or being killed by a
        +// signal, and emitting error output that matches regex.
        +# define ASSERT_DEATH(statement, regex) \
        +    ASSERT_EXIT(statement, ::testing::internal::ExitedUnsuccessfully, regex)
        +
        +// Like ASSERT_DEATH, but continues on to successive tests in the
        +// test case, if any:
        +# define EXPECT_DEATH(statement, regex) \
        +    EXPECT_EXIT(statement, ::testing::internal::ExitedUnsuccessfully, regex)
        +
        +// Two predicate classes that can be used in {ASSERT,EXPECT}_EXIT*:
        +
        +// Tests that an exit code describes a normal exit with a given exit code.
        +class GTEST_API_ ExitedWithCode {
        + public:
        +  explicit ExitedWithCode(int exit_code);
        +  bool operator()(int exit_status) const;
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ExitedWithCode& other);
        +
        +  const int exit_code_;
        +};
        +
        +# if !GTEST_OS_WINDOWS
        +// Tests that an exit code describes an exit due to termination by a
        +// given signal.
        +class GTEST_API_ KilledBySignal {
        + public:
        +  explicit KilledBySignal(int signum);
        +  bool operator()(int exit_status) const;
        + private:
        +  const int signum_;
        +};
        +# endif  // !GTEST_OS_WINDOWS
        +
        +// EXPECT_DEBUG_DEATH asserts that the given statements die in debug mode.
        +// The death testing framework causes this to have interesting semantics,
        +// since the sideeffects of the call are only visible in opt mode, and not
        +// in debug mode.
        +//
        +// In practice, this can be used to test functions that utilize the
        +// LOG(DFATAL) macro using the following style:
        +//
        +// int DieInDebugOr12(int* sideeffect) {
        +//   if (sideeffect) {
        +//     *sideeffect = 12;
        +//   }
        +//   LOG(DFATAL) << "death";
        +//   return 12;
        +// }
        +//
        +// TEST(TestCase, TestDieOr12WorksInDgbAndOpt) {
        +//   int sideeffect = 0;
        +//   // Only asserts in dbg.
        +//   EXPECT_DEBUG_DEATH(DieInDebugOr12(&sideeffect), "death");
        +//
        +// #ifdef NDEBUG
        +//   // opt-mode has sideeffect visible.
        +//   EXPECT_EQ(12, sideeffect);
        +// #else
        +//   // dbg-mode no visible sideeffect.
        +//   EXPECT_EQ(0, sideeffect);
        +// #endif
        +// }
        +//
        +// This will assert that DieInDebugReturn12InOpt() crashes in debug
        +// mode, usually due to a DCHECK or LOG(DFATAL), but returns the
        +// appropriate fallback value (12 in this case) in opt mode. If you
        +// need to test that a function has appropriate side-effects in opt
        +// mode, include assertions against the side-effects.  A general
        +// pattern for this is:
        +//
        +// EXPECT_DEBUG_DEATH({
        +//   // Side-effects here will have an effect after this statement in
        +//   // opt mode, but none in debug mode.
        +//   EXPECT_EQ(12, DieInDebugOr12(&sideeffect));
        +// }, "death");
        +//
        +# ifdef NDEBUG
        +
        +#  define EXPECT_DEBUG_DEATH(statement, regex) \
        +  GTEST_EXECUTE_STATEMENT_(statement, regex)
        +
        +#  define ASSERT_DEBUG_DEATH(statement, regex) \
        +  GTEST_EXECUTE_STATEMENT_(statement, regex)
        +
        +# else
        +
        +#  define EXPECT_DEBUG_DEATH(statement, regex) \
        +  EXPECT_DEATH(statement, regex)
        +
        +#  define ASSERT_DEBUG_DEATH(statement, regex) \
        +  ASSERT_DEATH(statement, regex)
        +
        +# endif  // NDEBUG for EXPECT_DEBUG_DEATH
        +#endif  // GTEST_HAS_DEATH_TEST
        +
        +// EXPECT_DEATH_IF_SUPPORTED(statement, regex) and
        +// ASSERT_DEATH_IF_SUPPORTED(statement, regex) expand to real death tests if
        +// death tests are supported; otherwise they just issue a warning.  This is
        +// useful when you are combining death test assertions with normal test
        +// assertions in one test.
        +#if GTEST_HAS_DEATH_TEST
        +# define EXPECT_DEATH_IF_SUPPORTED(statement, regex) \
        +    EXPECT_DEATH(statement, regex)
        +# define ASSERT_DEATH_IF_SUPPORTED(statement, regex) \
        +    ASSERT_DEATH(statement, regex)
        +#else
        +# define EXPECT_DEATH_IF_SUPPORTED(statement, regex) \
        +    GTEST_UNSUPPORTED_DEATH_TEST_(statement, regex, )
        +# define ASSERT_DEATH_IF_SUPPORTED(statement, regex) \
        +    GTEST_UNSUPPORTED_DEATH_TEST_(statement, regex, return)
        +#endif
        +
        +}  // namespace testing
        +
        +#endif  // GTEST_INCLUDE_GTEST_GTEST_DEATH_TEST_H_
        diff --git a/lib/ann/fann/lib/googletest/include/gtest/gtest-message.h b/lib/ann/fann/lib/googletest/include/gtest/gtest-message.h
        new file mode 100644
        index 0000000..fe879bc
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/include/gtest/gtest-message.h
        @@ -0,0 +1,250 @@
        +// Copyright 2005, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +//
        +// The Google C++ Testing Framework (Google Test)
        +//
        +// This header file defines the Message class.
        +//
        +// IMPORTANT NOTE: Due to limitation of the C++ language, we have to
        +// leave some internal implementation details in this header file.
        +// They are clearly marked by comments like this:
        +//
        +//   // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
        +//
        +// Such code is NOT meant to be used by a user directly, and is subject
        +// to CHANGE WITHOUT NOTICE.  Therefore DO NOT DEPEND ON IT in a user
        +// program!
        +
        +#ifndef GTEST_INCLUDE_GTEST_GTEST_MESSAGE_H_
        +#define GTEST_INCLUDE_GTEST_GTEST_MESSAGE_H_
        +
        +#include <limits>
        +
        +#include "gtest/internal/gtest-port.h"
        +
        +// Ensures that there is at least one operator<< in the global namespace.
        +// See Message& operator<<(...) below for why.
        +void operator<<(const testing::internal::Secret&, int);
        +
        +namespace testing {
        +
        +// The Message class works like an ostream repeater.
        +//
        +// Typical usage:
        +//
        +//   1. You stream a bunch of values to a Message object.
        +//      It will remember the text in a stringstream.
        +//   2. Then you stream the Message object to an ostream.
        +//      This causes the text in the Message to be streamed
        +//      to the ostream.
        +//
        +// For example;
        +//
        +//   testing::Message foo;
        +//   foo << 1 << " != " << 2;
        +//   std::cout << foo;
        +//
        +// will print "1 != 2".
        +//
        +// Message is not intended to be inherited from.  In particular, its
        +// destructor is not virtual.
        +//
        +// Note that stringstream behaves differently in gcc and in MSVC.  You
        +// can stream a NULL char pointer to it in the former, but not in the
        +// latter (it causes an access violation if you do).  The Message
        +// class hides this difference by treating a NULL char pointer as
        +// "(null)".
        +class GTEST_API_ Message {
        + private:
        +  // The type of basic IO manipulators (endl, ends, and flush) for
        +  // narrow streams.
        +  typedef std::ostream& (*BasicNarrowIoManip)(std::ostream&);
        +
        + public:
        +  // Constructs an empty Message.
        +  Message();
        +
        +  // Copy constructor.
        +  Message(const Message& msg) : ss_(new ::std::stringstream) {  // NOLINT
        +    *ss_ << msg.GetString();
        +  }
        +
        +  // Constructs a Message from a C-string.
        +  explicit Message(const char* str) : ss_(new ::std::stringstream) {
        +    *ss_ << str;
        +  }
        +
        +#if GTEST_OS_SYMBIAN
        +  // Streams a value (either a pointer or not) to this object.
        +  template <typename T>
        +  inline Message& operator <<(const T& value) {
        +    StreamHelper(typename internal::is_pointer<T>::type(), value);
        +    return *this;
        +  }
        +#else
        +  // Streams a non-pointer value to this object.
        +  template <typename T>
        +  inline Message& operator <<(const T& val) {
        +    // Some libraries overload << for STL containers.  These
        +    // overloads are defined in the global namespace instead of ::std.
        +    //
        +    // C++'s symbol lookup rule (i.e. Koenig lookup) says that these
        +    // overloads are visible in either the std namespace or the global
        +    // namespace, but not other namespaces, including the testing
        +    // namespace which Google Test's Message class is in.
        +    //
        +    // To allow STL containers (and other types that has a << operator
        +    // defined in the global namespace) to be used in Google Test
        +    // assertions, testing::Message must access the custom << operator
        +    // from the global namespace.  With this using declaration,
        +    // overloads of << defined in the global namespace and those
        +    // visible via Koenig lookup are both exposed in this function.
        +    using ::operator <<;
        +    *ss_ << val;
        +    return *this;
        +  }
        +
        +  // Streams a pointer value to this object.
        +  //
        +  // This function is an overload of the previous one.  When you
        +  // stream a pointer to a Message, this definition will be used as it
        +  // is more specialized.  (The C++ Standard, section
        +  // [temp.func.order].)  If you stream a non-pointer, then the
        +  // previous definition will be used.
        +  //
        +  // The reason for this overload is that streaming a NULL pointer to
        +  // ostream is undefined behavior.  Depending on the compiler, you
        +  // may get "0", "(nil)", "(null)", or an access violation.  To
        +  // ensure consistent result across compilers, we always treat NULL
        +  // as "(null)".
        +  template <typename T>
        +  inline Message& operator <<(T* const& pointer) {  // NOLINT
        +    if (pointer == NULL) {
        +      *ss_ << "(null)";
        +    } else {
        +      *ss_ << pointer;
        +    }
        +    return *this;
        +  }
        +#endif  // GTEST_OS_SYMBIAN
        +
        +  // Since the basic IO manipulators are overloaded for both narrow
        +  // and wide streams, we have to provide this specialized definition
        +  // of operator <<, even though its body is the same as the
        +  // templatized version above.  Without this definition, streaming
        +  // endl or other basic IO manipulators to Message will confuse the
        +  // compiler.
        +  Message& operator <<(BasicNarrowIoManip val) {
        +    *ss_ << val;
        +    return *this;
        +  }
        +
        +  // Instead of 1/0, we want to see true/false for bool values.
        +  Message& operator <<(bool b) {
        +    return *this << (b ? "true" : "false");
        +  }
        +
        +  // These two overloads allow streaming a wide C string to a Message
        +  // using the UTF-8 encoding.
        +  Message& operator <<(const wchar_t* wide_c_str);
        +  Message& operator <<(wchar_t* wide_c_str);
        +
        +#if GTEST_HAS_STD_WSTRING
        +  // Converts the given wide string to a narrow string using the UTF-8
        +  // encoding, and streams the result to this Message object.
        +  Message& operator <<(const ::std::wstring& wstr);
        +#endif  // GTEST_HAS_STD_WSTRING
        +
        +#if GTEST_HAS_GLOBAL_WSTRING
        +  // Converts the given wide string to a narrow string using the UTF-8
        +  // encoding, and streams the result to this Message object.
        +  Message& operator <<(const ::wstring& wstr);
        +#endif  // GTEST_HAS_GLOBAL_WSTRING
        +
        +  // Gets the text streamed to this object so far as an std::string.
        +  // Each '\0' character in the buffer is replaced with "\\0".
        +  //
        +  // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
        +  std::string GetString() const;
        +
        + private:
        +
        +#if GTEST_OS_SYMBIAN
        +  // These are needed as the Nokia Symbian Compiler cannot decide between
        +  // const T& and const T* in a function template. The Nokia compiler _can_
        +  // decide between class template specializations for T and T*, so a
        +  // tr1::type_traits-like is_pointer works, and we can overload on that.
        +  template <typename T>
        +  inline void StreamHelper(internal::true_type /*is_pointer*/, T* pointer) {
        +    if (pointer == NULL) {
        +      *ss_ << "(null)";
        +    } else {
        +      *ss_ << pointer;
        +    }
        +  }
        +  template <typename T>
        +  inline void StreamHelper(internal::false_type /*is_pointer*/,
        +                           const T& value) {
        +    // See the comments in Message& operator <<(const T&) above for why
        +    // we need this using statement.
        +    using ::operator <<;
        +    *ss_ << value;
        +  }
        +#endif  // GTEST_OS_SYMBIAN
        +
        +  // We'll hold the text streamed to this object here.
        +  const internal::scoped_ptr< ::std::stringstream> ss_;
        +
        +  // We declare (but don't implement) this to prevent the compiler
        +  // from implementing the assignment operator.
        +  void operator=(const Message&);
        +};
        +
        +// Streams a Message to an ostream.
        +inline std::ostream& operator <<(std::ostream& os, const Message& sb) {
        +  return os << sb.GetString();
        +}
        +
        +namespace internal {
        +
        +// Converts a streamable value to an std::string.  A NULL pointer is
        +// converted to "(null)".  When the input value is a ::string,
        +// ::std::string, ::wstring, or ::std::wstring object, each NUL
        +// character in it is replaced with "\\0".
        +template <typename T>
        +std::string StreamableToString(const T& streamable) {
        +  return (Message() << streamable).GetString();
        +}
        +
        +}  // namespace internal
        +}  // namespace testing
        +
        +#endif  // GTEST_INCLUDE_GTEST_GTEST_MESSAGE_H_
        diff --git a/lib/ann/fann/lib/googletest/include/gtest/gtest-param-test.h b/lib/ann/fann/lib/googletest/include/gtest/gtest-param-test.h
        new file mode 100644
        index 0000000..038f9ba
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/include/gtest/gtest-param-test.h
        @@ -0,0 +1,1444 @@
        +// This file was GENERATED by command:
        +//     pump.py gtest-param-test.h.pump
        +// DO NOT EDIT BY HAND!!!
        +
        +// Copyright 2008, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Authors: vladl@google.com (Vlad Losev)
        +//
        +// Macros and functions for implementing parameterized tests
        +// in Google C++ Testing Framework (Google Test)
        +//
        +// This file is generated by a SCRIPT.  DO NOT EDIT BY HAND!
        +//
        +#ifndef GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_
        +#define GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_
        +
        +
        +// Value-parameterized tests allow you to test your code with different
        +// parameters without writing multiple copies of the same test.
        +//
        +// Here is how you use value-parameterized tests:
        +
        +#if 0
        +
        +// To write value-parameterized tests, first you should define a fixture
        +// class. It is usually derived from testing::TestWithParam<T> (see below for
        +// another inheritance scheme that's sometimes useful in more complicated
        +// class hierarchies), where the type of your parameter values.
        +// TestWithParam<T> is itself derived from testing::Test. T can be any
        +// copyable type. If it's a raw pointer, you are responsible for managing the
        +// lifespan of the pointed values.
        +
        +class FooTest : public ::testing::TestWithParam<const char*> {
        +  // You can implement all the usual class fixture members here.
        +};
        +
        +// Then, use the TEST_P macro to define as many parameterized tests
        +// for this fixture as you want. The _P suffix is for "parameterized"
        +// or "pattern", whichever you prefer to think.
        +
        +TEST_P(FooTest, DoesBlah) {
        +  // Inside a test, access the test parameter with the GetParam() method
        +  // of the TestWithParam<T> class:
        +  EXPECT_TRUE(foo.Blah(GetParam()));
        +  ...
        +}
        +
        +TEST_P(FooTest, HasBlahBlah) {
        +  ...
        +}
        +
        +// Finally, you can use INSTANTIATE_TEST_CASE_P to instantiate the test
        +// case with any set of parameters you want. Google Test defines a number
        +// of functions for generating test parameters. They return what we call
        +// (surprise!) parameter generators. Here is a  summary of them, which
        +// are all in the testing namespace:
        +//
        +//
        +//  Range(begin, end [, step]) - Yields values {begin, begin+step,
        +//                               begin+step+step, ...}. The values do not
        +//                               include end. step defaults to 1.
        +//  Values(v1, v2, ..., vN)    - Yields values {v1, v2, ..., vN}.
        +//  ValuesIn(container)        - Yields values from a C-style array, an STL
        +//  ValuesIn(begin,end)          container, or an iterator range [begin, end).
        +//  Bool()                     - Yields sequence {false, true}.
        +//  Combine(g1, g2, ..., gN)   - Yields all combinations (the Cartesian product
        +//                               for the math savvy) of the values generated
        +//                               by the N generators.
        +//
        +// For more details, see comments at the definitions of these functions below
        +// in this file.
        +//
        +// The following statement will instantiate tests from the FooTest test case
        +// each with parameter values "meeny", "miny", and "moe".
        +
        +INSTANTIATE_TEST_CASE_P(InstantiationName,
        +                        FooTest,
        +                        Values("meeny", "miny", "moe"));
        +
        +// To distinguish different instances of the pattern, (yes, you
        +// can instantiate it more then once) the first argument to the
        +// INSTANTIATE_TEST_CASE_P macro is a prefix that will be added to the
        +// actual test case name. Remember to pick unique prefixes for different
        +// instantiations. The tests from the instantiation above will have
        +// these names:
        +//
        +//    * InstantiationName/FooTest.DoesBlah/0 for "meeny"
        +//    * InstantiationName/FooTest.DoesBlah/1 for "miny"
        +//    * InstantiationName/FooTest.DoesBlah/2 for "moe"
        +//    * InstantiationName/FooTest.HasBlahBlah/0 for "meeny"
        +//    * InstantiationName/FooTest.HasBlahBlah/1 for "miny"
        +//    * InstantiationName/FooTest.HasBlahBlah/2 for "moe"
        +//
        +// You can use these names in --gtest_filter.
        +//
        +// This statement will instantiate all tests from FooTest again, each
        +// with parameter values "cat" and "dog":
        +
        +const char* pets[] = {"cat", "dog"};
        +INSTANTIATE_TEST_CASE_P(AnotherInstantiationName, FooTest, ValuesIn(pets));
        +
        +// The tests from the instantiation above will have these names:
        +//
        +//    * AnotherInstantiationName/FooTest.DoesBlah/0 for "cat"
        +//    * AnotherInstantiationName/FooTest.DoesBlah/1 for "dog"
        +//    * AnotherInstantiationName/FooTest.HasBlahBlah/0 for "cat"
        +//    * AnotherInstantiationName/FooTest.HasBlahBlah/1 for "dog"
        +//
        +// Please note that INSTANTIATE_TEST_CASE_P will instantiate all tests
        +// in the given test case, whether their definitions come before or
        +// AFTER the INSTANTIATE_TEST_CASE_P statement.
        +//
        +// Please also note that generator expressions (including parameters to the
        +// generators) are evaluated in InitGoogleTest(), after main() has started.
        +// This allows the user on one hand, to adjust generator parameters in order
        +// to dynamically determine a set of tests to run and on the other hand,
        +// give the user a chance to inspect the generated tests with Google Test
        +// reflection API before RUN_ALL_TESTS() is executed.
        +//
        +// You can see samples/sample7_unittest.cc and samples/sample8_unittest.cc
        +// for more examples.
        +//
        +// In the future, we plan to publish the API for defining new parameter
        +// generators. But for now this interface remains part of the internal
        +// implementation and is subject to change.
        +//
        +//
        +// A parameterized test fixture must be derived from testing::Test and from
        +// testing::WithParamInterface<T>, where T is the type of the parameter
        +// values. Inheriting from TestWithParam<T> satisfies that requirement because
        +// TestWithParam<T> inherits from both Test and WithParamInterface. In more
        +// complicated hierarchies, however, it is occasionally useful to inherit
        +// separately from Test and WithParamInterface. For example:
        +
        +class BaseTest : public ::testing::Test {
        +  // You can inherit all the usual members for a non-parameterized test
        +  // fixture here.
        +};
        +
        +class DerivedTest : public BaseTest, public ::testing::WithParamInterface<int> {
        +  // The usual test fixture members go here too.
        +};
        +
        +TEST_F(BaseTest, HasFoo) {
        +  // This is an ordinary non-parameterized test.
        +}
        +
        +TEST_P(DerivedTest, DoesBlah) {
        +  // GetParam works just the same here as if you inherit from TestWithParam.
        +  EXPECT_TRUE(foo.Blah(GetParam()));
        +}
        +
        +#endif  // 0
        +
        +#include "gtest/internal/gtest-port.h"
        +
        +#if !GTEST_OS_SYMBIAN
        +# include <utility>
        +#endif
        +
        +// scripts/fuse_gtest.py depends on gtest's own header being #included
        +// *unconditionally*.  Therefore these #includes cannot be moved
        +// inside #if GTEST_HAS_PARAM_TEST.
        +#include "gtest/internal/gtest-internal.h"
        +#include "gtest/internal/gtest-param-util.h"
        +#include "gtest/internal/gtest-param-util-generated.h"
        +
        +#if GTEST_HAS_PARAM_TEST
        +
        +namespace testing {
        +
        +// Functions producing parameter generators.
        +//
        +// Google Test uses these generators to produce parameters for value-
        +// parameterized tests. When a parameterized test case is instantiated
        +// with a particular generator, Google Test creates and runs tests
        +// for each element in the sequence produced by the generator.
        +//
        +// In the following sample, tests from test case FooTest are instantiated
        +// each three times with parameter values 3, 5, and 8:
        +//
        +// class FooTest : public TestWithParam<int> { ... };
        +//
        +// TEST_P(FooTest, TestThis) {
        +// }
        +// TEST_P(FooTest, TestThat) {
        +// }
        +// INSTANTIATE_TEST_CASE_P(TestSequence, FooTest, Values(3, 5, 8));
        +//
        +
        +// Range() returns generators providing sequences of values in a range.
        +//
        +// Synopsis:
        +// Range(start, end)
        +//   - returns a generator producing a sequence of values {start, start+1,
        +//     start+2, ..., }.
        +// Range(start, end, step)
        +//   - returns a generator producing a sequence of values {start, start+step,
        +//     start+step+step, ..., }.
        +// Notes:
        +//   * The generated sequences never include end. For example, Range(1, 5)
        +//     returns a generator producing a sequence {1, 2, 3, 4}. Range(1, 9, 2)
        +//     returns a generator producing {1, 3, 5, 7}.
        +//   * start and end must have the same type. That type may be any integral or
        +//     floating-point type or a user defined type satisfying these conditions:
        +//     * It must be assignable (have operator=() defined).
        +//     * It must have operator+() (operator+(int-compatible type) for
        +//       two-operand version).
        +//     * It must have operator<() defined.
        +//     Elements in the resulting sequences will also have that type.
        +//   * Condition start < end must be satisfied in order for resulting sequences
        +//     to contain any elements.
        +//
        +template <typename T, typename IncrementT>
        +internal::ParamGenerator<T> Range(T start, T end, IncrementT step) {
        +  return internal::ParamGenerator<T>(
        +      new internal::RangeGenerator<T, IncrementT>(start, end, step));
        +}
        +
        +template <typename T>
        +internal::ParamGenerator<T> Range(T start, T end) {
        +  return Range(start, end, 1);
        +}
        +
        +// ValuesIn() function allows generation of tests with parameters coming from
        +// a container.
        +//
        +// Synopsis:
        +// ValuesIn(const T (&array)[N])
        +//   - returns a generator producing sequences with elements from
        +//     a C-style array.
        +// ValuesIn(const Container& container)
        +//   - returns a generator producing sequences with elements from
        +//     an STL-style container.
        +// ValuesIn(Iterator begin, Iterator end)
        +//   - returns a generator producing sequences with elements from
        +//     a range [begin, end) defined by a pair of STL-style iterators. These
        +//     iterators can also be plain C pointers.
        +//
        +// Please note that ValuesIn copies the values from the containers
        +// passed in and keeps them to generate tests in RUN_ALL_TESTS().
        +//
        +// Examples:
        +//
        +// This instantiates tests from test case StringTest
        +// each with C-string values of "foo", "bar", and "baz":
        +//
        +// const char* strings[] = {"foo", "bar", "baz"};
        +// INSTANTIATE_TEST_CASE_P(StringSequence, SrtingTest, ValuesIn(strings));
        +//
        +// This instantiates tests from test case StlStringTest
        +// each with STL strings with values "a" and "b":
        +//
        +// ::std::vector< ::std::string> GetParameterStrings() {
        +//   ::std::vector< ::std::string> v;
        +//   v.push_back("a");
        +//   v.push_back("b");
        +//   return v;
        +// }
        +//
        +// INSTANTIATE_TEST_CASE_P(CharSequence,
        +//                         StlStringTest,
        +//                         ValuesIn(GetParameterStrings()));
        +//
        +//
        +// This will also instantiate tests from CharTest
        +// each with parameter values 'a' and 'b':
        +//
        +// ::std::list<char> GetParameterChars() {
        +//   ::std::list<char> list;
        +//   list.push_back('a');
        +//   list.push_back('b');
        +//   return list;
        +// }
        +// ::std::list<char> l = GetParameterChars();
        +// INSTANTIATE_TEST_CASE_P(CharSequence2,
        +//                         CharTest,
        +//                         ValuesIn(l.begin(), l.end()));
        +//
        +template <typename ForwardIterator>
        +internal::ParamGenerator<
        +  typename ::testing::internal::IteratorTraits<ForwardIterator>::value_type>
        +ValuesIn(ForwardIterator begin, ForwardIterator end) {
        +  typedef typename ::testing::internal::IteratorTraits<ForwardIterator>
        +      ::value_type ParamType;
        +  return internal::ParamGenerator<ParamType>(
        +      new internal::ValuesInIteratorRangeGenerator<ParamType>(begin, end));
        +}
        +
        +template <typename T, size_t N>
        +internal::ParamGenerator<T> ValuesIn(const T (&array)[N]) {
        +  return ValuesIn(array, array + N);
        +}
        +
        +template <class Container>
        +internal::ParamGenerator<typename Container::value_type> ValuesIn(
        +    const Container& container) {
        +  return ValuesIn(container.begin(), container.end());
        +}
        +
        +// Values() allows generating tests from explicitly specified list of
        +// parameters.
        +//
        +// Synopsis:
        +// Values(T v1, T v2, ..., T vN)
        +//   - returns a generator producing sequences with elements v1, v2, ..., vN.
        +//
        +// For example, this instantiates tests from test case BarTest each
        +// with values "one", "two", and "three":
        +//
        +// INSTANTIATE_TEST_CASE_P(NumSequence, BarTest, Values("one", "two", "three"));
        +//
        +// This instantiates tests from test case BazTest each with values 1, 2, 3.5.
        +// The exact type of values will depend on the type of parameter in BazTest.
        +//
        +// INSTANTIATE_TEST_CASE_P(FloatingNumbers, BazTest, Values(1, 2, 3.5));
        +//
        +// Currently, Values() supports from 1 to 50 parameters.
        +//
        +template <typename T1>
        +internal::ValueArray1<T1> Values(T1 v1) {
        +  return internal::ValueArray1<T1>(v1);
        +}
        +
        +template <typename T1, typename T2>
        +internal::ValueArray2<T1, T2> Values(T1 v1, T2 v2) {
        +  return internal::ValueArray2<T1, T2>(v1, v2);
        +}
        +
        +template <typename T1, typename T2, typename T3>
        +internal::ValueArray3<T1, T2, T3> Values(T1 v1, T2 v2, T3 v3) {
        +  return internal::ValueArray3<T1, T2, T3>(v1, v2, v3);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4>
        +internal::ValueArray4<T1, T2, T3, T4> Values(T1 v1, T2 v2, T3 v3, T4 v4) {
        +  return internal::ValueArray4<T1, T2, T3, T4>(v1, v2, v3, v4);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5>
        +internal::ValueArray5<T1, T2, T3, T4, T5> Values(T1 v1, T2 v2, T3 v3, T4 v4,
        +    T5 v5) {
        +  return internal::ValueArray5<T1, T2, T3, T4, T5>(v1, v2, v3, v4, v5);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6>
        +internal::ValueArray6<T1, T2, T3, T4, T5, T6> Values(T1 v1, T2 v2, T3 v3,
        +    T4 v4, T5 v5, T6 v6) {
        +  return internal::ValueArray6<T1, T2, T3, T4, T5, T6>(v1, v2, v3, v4, v5, v6);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7>
        +internal::ValueArray7<T1, T2, T3, T4, T5, T6, T7> Values(T1 v1, T2 v2, T3 v3,
        +    T4 v4, T5 v5, T6 v6, T7 v7) {
        +  return internal::ValueArray7<T1, T2, T3, T4, T5, T6, T7>(v1, v2, v3, v4, v5,
        +      v6, v7);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8>
        +internal::ValueArray8<T1, T2, T3, T4, T5, T6, T7, T8> Values(T1 v1, T2 v2,
        +    T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8) {
        +  return internal::ValueArray8<T1, T2, T3, T4, T5, T6, T7, T8>(v1, v2, v3, v4,
        +      v5, v6, v7, v8);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9>
        +internal::ValueArray9<T1, T2, T3, T4, T5, T6, T7, T8, T9> Values(T1 v1, T2 v2,
        +    T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9) {
        +  return internal::ValueArray9<T1, T2, T3, T4, T5, T6, T7, T8, T9>(v1, v2, v3,
        +      v4, v5, v6, v7, v8, v9);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10>
        +internal::ValueArray10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Values(T1 v1,
        +    T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10) {
        +  return internal::ValueArray10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(v1,
        +      v2, v3, v4, v5, v6, v7, v8, v9, v10);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11>
        +internal::ValueArray11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10,
        +    T11> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +    T10 v10, T11 v11) {
        +  return internal::ValueArray11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10,
        +      T11>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12>
        +internal::ValueArray12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +    T12> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +    T10 v10, T11 v11, T12 v12) {
        +  return internal::ValueArray12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13>
        +internal::ValueArray13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +    T13> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +    T10 v10, T11 v11, T12 v12, T13 v13) {
        +  return internal::ValueArray13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12, T13>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14>
        +internal::ValueArray14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    T14> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +    T10 v10, T11 v11, T12 v12, T13 v13, T14 v14) {
        +  return internal::ValueArray14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12, T13, T14>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13,
        +      v14);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15>
        +internal::ValueArray15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    T14, T15> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8,
        +    T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15) {
        +  return internal::ValueArray15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12, T13, T14, T15>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12,
        +      v13, v14, v15);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16>
        +internal::ValueArray16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    T14, T15, T16> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
        +    T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
        +    T16 v16) {
        +  return internal::ValueArray16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12, T13, T14, T15, T16>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11,
        +      v12, v13, v14, v15, v16);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17>
        +internal::ValueArray17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    T14, T15, T16, T17> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
        +    T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
        +    T16 v16, T17 v17) {
        +  return internal::ValueArray17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12, T13, T14, T15, T16, T17>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
        +      v11, v12, v13, v14, v15, v16, v17);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18>
        +internal::ValueArray18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    T14, T15, T16, T17, T18> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6,
        +    T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
        +    T16 v16, T17 v17, T18 v18) {
        +  return internal::ValueArray18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12, T13, T14, T15, T16, T17, T18>(v1, v2, v3, v4, v5, v6, v7, v8, v9,
        +      v10, v11, v12, v13, v14, v15, v16, v17, v18);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19>
        +internal::ValueArray19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    T14, T15, T16, T17, T18, T19> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5,
        +    T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14,
        +    T15 v15, T16 v16, T17 v17, T18 v18, T19 v19) {
        +  return internal::ValueArray19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12, T13, T14, T15, T16, T17, T18, T19>(v1, v2, v3, v4, v5, v6, v7, v8,
        +      v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20>
        +internal::ValueArray20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    T14, T15, T16, T17, T18, T19, T20> Values(T1 v1, T2 v2, T3 v3, T4 v4,
        +    T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
        +    T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20) {
        +  return internal::ValueArray20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12, T13, T14, T15, T16, T17, T18, T19, T20>(v1, v2, v3, v4, v5, v6, v7,
        +      v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21>
        +internal::ValueArray21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    T14, T15, T16, T17, T18, T19, T20, T21> Values(T1 v1, T2 v2, T3 v3, T4 v4,
        +    T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
        +    T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21) {
        +  return internal::ValueArray21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21>(v1, v2, v3, v4, v5, v6,
        +      v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22>
        +internal::ValueArray22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    T14, T15, T16, T17, T18, T19, T20, T21, T22> Values(T1 v1, T2 v2, T3 v3,
        +    T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
        +    T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
        +    T21 v21, T22 v22) {
        +  return internal::ValueArray22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22>(v1, v2, v3, v4,
        +      v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
        +      v20, v21, v22);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23>
        +internal::ValueArray23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23> Values(T1 v1, T2 v2,
        +    T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
        +    T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
        +    T21 v21, T22 v22, T23 v23) {
        +  return internal::ValueArray23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23>(v1, v2, v3,
        +      v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
        +      v20, v21, v22, v23);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24>
        +internal::ValueArray24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24> Values(T1 v1, T2 v2,
        +    T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
        +    T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
        +    T21 v21, T22 v22, T23 v23, T24 v24) {
        +  return internal::ValueArray24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24>(v1, v2,
        +      v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18,
        +      v19, v20, v21, v22, v23, v24);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25>
        +internal::ValueArray25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> Values(T1 v1,
        +    T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11,
        +    T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19,
        +    T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25) {
        +  return internal::ValueArray25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25>(v1,
        +      v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17,
        +      v18, v19, v20, v21, v22, v23, v24, v25);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26>
        +internal::ValueArray26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
        +    T26> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +    T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +    T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
        +    T26 v26) {
        +  return internal::ValueArray26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
        +      T26>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15,
        +      v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27>
        +internal::ValueArray27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
        +    T27> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +    T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +    T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
        +    T26 v26, T27 v27) {
        +  return internal::ValueArray27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
        +      T26, T27>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14,
        +      v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28>
        +internal::ValueArray28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
        +    T28> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +    T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +    T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
        +    T26 v26, T27 v27, T28 v28) {
        +  return internal::ValueArray28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
        +      T26, T27, T28>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13,
        +      v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27,
        +      v28);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29>
        +internal::ValueArray29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +    T29> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +    T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +    T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
        +    T26 v26, T27 v27, T28 v28, T29 v29) {
        +  return internal::ValueArray29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
        +      T26, T27, T28, T29>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12,
        +      v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
        +      v27, v28, v29);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30>
        +internal::ValueArray30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +    T29, T30> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8,
        +    T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16,
        +    T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24,
        +    T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30) {
        +  return internal::ValueArray30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
        +      T26, T27, T28, T29, T30>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11,
        +      v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25,
        +      v26, v27, v28, v29, v30);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31>
        +internal::ValueArray31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +    T29, T30, T31> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
        +    T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
        +    T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
        +    T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31) {
        +  return internal::ValueArray31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
        +      T26, T27, T28, T29, T30, T31>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
        +      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24,
        +      v25, v26, v27, v28, v29, v30, v31);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32>
        +internal::ValueArray32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +    T29, T30, T31, T32> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
        +    T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
        +    T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
        +    T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
        +    T32 v32) {
        +  return internal::ValueArray32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
        +      T26, T27, T28, T29, T30, T31, T32>(v1, v2, v3, v4, v5, v6, v7, v8, v9,
        +      v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23,
        +      v24, v25, v26, v27, v28, v29, v30, v31, v32);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33>
        +internal::ValueArray33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +    T29, T30, T31, T32, T33> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6,
        +    T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
        +    T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
        +    T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
        +    T32 v32, T33 v33) {
        +  return internal::ValueArray33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
        +      T26, T27, T28, T29, T30, T31, T32, T33>(v1, v2, v3, v4, v5, v6, v7, v8,
        +      v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23,
        +      v24, v25, v26, v27, v28, v29, v30, v31, v32, v33);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34>
        +internal::ValueArray34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +    T29, T30, T31, T32, T33, T34> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5,
        +    T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14,
        +    T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22,
        +    T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30,
        +    T31 v31, T32 v32, T33 v33, T34 v34) {
        +  return internal::ValueArray34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
        +      T26, T27, T28, T29, T30, T31, T32, T33, T34>(v1, v2, v3, v4, v5, v6, v7,
        +      v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22,
        +      v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35>
        +internal::ValueArray35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +    T29, T30, T31, T32, T33, T34, T35> Values(T1 v1, T2 v2, T3 v3, T4 v4,
        +    T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
        +    T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21,
        +    T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29,
        +    T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35) {
        +  return internal::ValueArray35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
        +      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35>(v1, v2, v3, v4, v5, v6,
        +      v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21,
        +      v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36>
        +internal::ValueArray36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +    T29, T30, T31, T32, T33, T34, T35, T36> Values(T1 v1, T2 v2, T3 v3, T4 v4,
        +    T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
        +    T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21,
        +    T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29,
        +    T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36) {
        +  return internal::ValueArray36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
        +      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36>(v1, v2, v3, v4,
        +      v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
        +      v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33,
        +      v34, v35, v36);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37>
        +internal::ValueArray37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +    T29, T30, T31, T32, T33, T34, T35, T36, T37> Values(T1 v1, T2 v2, T3 v3,
        +    T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
        +    T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
        +    T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28,
        +    T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36,
        +    T37 v37) {
        +  return internal::ValueArray37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
        +      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37>(v1, v2, v3,
        +      v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
        +      v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33,
        +      v34, v35, v36, v37);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38>
        +internal::ValueArray38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38> Values(T1 v1, T2 v2,
        +    T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
        +    T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
        +    T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28,
        +    T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36,
        +    T37 v37, T38 v38) {
        +  return internal::ValueArray38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
        +      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38>(v1, v2,
        +      v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18,
        +      v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32,
        +      v33, v34, v35, v36, v37, v38);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39>
        +internal::ValueArray39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39> Values(T1 v1, T2 v2,
        +    T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
        +    T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
        +    T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28,
        +    T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36,
        +    T37 v37, T38 v38, T39 v39) {
        +  return internal::ValueArray39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
        +      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39>(v1,
        +      v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17,
        +      v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31,
        +      v32, v33, v34, v35, v36, v37, v38, v39);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40>
        +internal::ValueArray40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40> Values(T1 v1,
        +    T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11,
        +    T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19,
        +    T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27,
        +    T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35,
        +    T36 v36, T37 v37, T38 v38, T39 v39, T40 v40) {
        +  return internal::ValueArray40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
        +      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
        +      T40>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15,
        +      v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29,
        +      v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41>
        +internal::ValueArray41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
        +    T41> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +    T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +    T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
        +    T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
        +    T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41) {
        +  return internal::ValueArray41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
        +      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
        +      T40, T41>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14,
        +      v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28,
        +      v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41, typename T42>
        +internal::ValueArray42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
        +    T42> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +    T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +    T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
        +    T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
        +    T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
        +    T42 v42) {
        +  return internal::ValueArray42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
        +      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
        +      T40, T41, T42>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13,
        +      v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27,
        +      v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41,
        +      v42);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41, typename T42, typename T43>
        +internal::ValueArray43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
        +    T43> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +    T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +    T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
        +    T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
        +    T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
        +    T42 v42, T43 v43) {
        +  return internal::ValueArray43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
        +      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
        +      T40, T41, T42, T43>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12,
        +      v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
        +      v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40,
        +      v41, v42, v43);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41, typename T42, typename T43, typename T44>
        +internal::ValueArray44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
        +    T44> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +    T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +    T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
        +    T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
        +    T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
        +    T42 v42, T43 v43, T44 v44) {
        +  return internal::ValueArray44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
        +      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
        +      T40, T41, T42, T43, T44>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11,
        +      v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25,
        +      v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39,
        +      v40, v41, v42, v43, v44);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41, typename T42, typename T43, typename T44, typename T45>
        +internal::ValueArray45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
        +    T44, T45> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8,
        +    T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16,
        +    T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24,
        +    T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32,
        +    T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40,
        +    T41 v41, T42 v42, T43 v43, T44 v44, T45 v45) {
        +  return internal::ValueArray45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
        +      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
        +      T40, T41, T42, T43, T44, T45>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
        +      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24,
        +      v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38,
        +      v39, v40, v41, v42, v43, v44, v45);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41, typename T42, typename T43, typename T44, typename T45,
        +    typename T46>
        +internal::ValueArray46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
        +    T44, T45, T46> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
        +    T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
        +    T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
        +    T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
        +    T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39,
        +    T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46) {
        +  return internal::ValueArray46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
        +      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
        +      T40, T41, T42, T43, T44, T45, T46>(v1, v2, v3, v4, v5, v6, v7, v8, v9,
        +      v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23,
        +      v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37,
        +      v38, v39, v40, v41, v42, v43, v44, v45, v46);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41, typename T42, typename T43, typename T44, typename T45,
        +    typename T46, typename T47>
        +internal::ValueArray47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
        +    T44, T45, T46, T47> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
        +    T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
        +    T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
        +    T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
        +    T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39,
        +    T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47) {
        +  return internal::ValueArray47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
        +      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
        +      T40, T41, T42, T43, T44, T45, T46, T47>(v1, v2, v3, v4, v5, v6, v7, v8,
        +      v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23,
        +      v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37,
        +      v38, v39, v40, v41, v42, v43, v44, v45, v46, v47);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41, typename T42, typename T43, typename T44, typename T45,
        +    typename T46, typename T47, typename T48>
        +internal::ValueArray48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
        +    T44, T45, T46, T47, T48> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6,
        +    T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
        +    T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
        +    T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
        +    T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39,
        +    T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47,
        +    T48 v48) {
        +  return internal::ValueArray48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
        +      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
        +      T40, T41, T42, T43, T44, T45, T46, T47, T48>(v1, v2, v3, v4, v5, v6, v7,
        +      v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22,
        +      v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36,
        +      v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41, typename T42, typename T43, typename T44, typename T45,
        +    typename T46, typename T47, typename T48, typename T49>
        +internal::ValueArray49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
        +    T44, T45, T46, T47, T48, T49> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5,
        +    T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14,
        +    T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22,
        +    T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30,
        +    T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38,
        +    T39 v39, T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46,
        +    T47 v47, T48 v48, T49 v49) {
        +  return internal::ValueArray49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
        +      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
        +      T40, T41, T42, T43, T44, T45, T46, T47, T48, T49>(v1, v2, v3, v4, v5, v6,
        +      v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21,
        +      v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35,
        +      v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41, typename T42, typename T43, typename T44, typename T45,
        +    typename T46, typename T47, typename T48, typename T49, typename T50>
        +internal::ValueArray50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
        +    T44, T45, T46, T47, T48, T49, T50> Values(T1 v1, T2 v2, T3 v3, T4 v4,
        +    T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
        +    T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21,
        +    T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29,
        +    T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37,
        +    T38 v38, T39 v39, T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45,
        +    T46 v46, T47 v47, T48 v48, T49 v49, T50 v50) {
        +  return internal::ValueArray50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
        +      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
        +      T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50>(v1, v2, v3, v4,
        +      v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
        +      v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33,
        +      v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47,
        +      v48, v49, v50);
        +}
        +
        +// Bool() allows generating tests with parameters in a set of (false, true).
        +//
        +// Synopsis:
        +// Bool()
        +//   - returns a generator producing sequences with elements {false, true}.
        +//
        +// It is useful when testing code that depends on Boolean flags. Combinations
        +// of multiple flags can be tested when several Bool()'s are combined using
        +// Combine() function.
        +//
        +// In the following example all tests in the test case FlagDependentTest
        +// will be instantiated twice with parameters false and true.
        +//
        +// class FlagDependentTest : public testing::TestWithParam<bool> {
        +//   virtual void SetUp() {
        +//     external_flag = GetParam();
        +//   }
        +// }
        +// INSTANTIATE_TEST_CASE_P(BoolSequence, FlagDependentTest, Bool());
        +//
        +inline internal::ParamGenerator<bool> Bool() {
        +  return Values(false, true);
        +}
        +
        +# if GTEST_HAS_COMBINE
        +// Combine() allows the user to combine two or more sequences to produce
        +// values of a Cartesian product of those sequences' elements.
        +//
        +// Synopsis:
        +// Combine(gen1, gen2, ..., genN)
        +//   - returns a generator producing sequences with elements coming from
        +//     the Cartesian product of elements from the sequences generated by
        +//     gen1, gen2, ..., genN. The sequence elements will have a type of
        +//     tuple<T1, T2, ..., TN> where T1, T2, ..., TN are the types
        +//     of elements from sequences produces by gen1, gen2, ..., genN.
        +//
        +// Combine can have up to 10 arguments. This number is currently limited
        +// by the maximum number of elements in the tuple implementation used by Google
        +// Test.
        +//
        +// Example:
        +//
        +// This will instantiate tests in test case AnimalTest each one with
        +// the parameter values tuple("cat", BLACK), tuple("cat", WHITE),
        +// tuple("dog", BLACK), and tuple("dog", WHITE):
        +//
        +// enum Color { BLACK, GRAY, WHITE };
        +// class AnimalTest
        +//     : public testing::TestWithParam<tuple<const char*, Color> > {...};
        +//
        +// TEST_P(AnimalTest, AnimalLooksNice) {...}
        +//
        +// INSTANTIATE_TEST_CASE_P(AnimalVariations, AnimalTest,
        +//                         Combine(Values("cat", "dog"),
        +//                                 Values(BLACK, WHITE)));
        +//
        +// This will instantiate tests in FlagDependentTest with all variations of two
        +// Boolean flags:
        +//
        +// class FlagDependentTest
        +//     : public testing::TestWithParam<tuple<bool, bool> > {
        +//   virtual void SetUp() {
        +//     // Assigns external_flag_1 and external_flag_2 values from the tuple.
        +//     tie(external_flag_1, external_flag_2) = GetParam();
        +//   }
        +// };
        +//
        +// TEST_P(FlagDependentTest, TestFeature1) {
        +//   // Test your code using external_flag_1 and external_flag_2 here.
        +// }
        +// INSTANTIATE_TEST_CASE_P(TwoBoolSequence, FlagDependentTest,
        +//                         Combine(Bool(), Bool()));
        +//
        +template <typename Generator1, typename Generator2>
        +internal::CartesianProductHolder2<Generator1, Generator2> Combine(
        +    const Generator1& g1, const Generator2& g2) {
        +  return internal::CartesianProductHolder2<Generator1, Generator2>(
        +      g1, g2);
        +}
        +
        +template <typename Generator1, typename Generator2, typename Generator3>
        +internal::CartesianProductHolder3<Generator1, Generator2, Generator3> Combine(
        +    const Generator1& g1, const Generator2& g2, const Generator3& g3) {
        +  return internal::CartesianProductHolder3<Generator1, Generator2, Generator3>(
        +      g1, g2, g3);
        +}
        +
        +template <typename Generator1, typename Generator2, typename Generator3,
        +    typename Generator4>
        +internal::CartesianProductHolder4<Generator1, Generator2, Generator3,
        +    Generator4> Combine(
        +    const Generator1& g1, const Generator2& g2, const Generator3& g3,
        +        const Generator4& g4) {
        +  return internal::CartesianProductHolder4<Generator1, Generator2, Generator3,
        +      Generator4>(
        +      g1, g2, g3, g4);
        +}
        +
        +template <typename Generator1, typename Generator2, typename Generator3,
        +    typename Generator4, typename Generator5>
        +internal::CartesianProductHolder5<Generator1, Generator2, Generator3,
        +    Generator4, Generator5> Combine(
        +    const Generator1& g1, const Generator2& g2, const Generator3& g3,
        +        const Generator4& g4, const Generator5& g5) {
        +  return internal::CartesianProductHolder5<Generator1, Generator2, Generator3,
        +      Generator4, Generator5>(
        +      g1, g2, g3, g4, g5);
        +}
        +
        +template <typename Generator1, typename Generator2, typename Generator3,
        +    typename Generator4, typename Generator5, typename Generator6>
        +internal::CartesianProductHolder6<Generator1, Generator2, Generator3,
        +    Generator4, Generator5, Generator6> Combine(
        +    const Generator1& g1, const Generator2& g2, const Generator3& g3,
        +        const Generator4& g4, const Generator5& g5, const Generator6& g6) {
        +  return internal::CartesianProductHolder6<Generator1, Generator2, Generator3,
        +      Generator4, Generator5, Generator6>(
        +      g1, g2, g3, g4, g5, g6);
        +}
        +
        +template <typename Generator1, typename Generator2, typename Generator3,
        +    typename Generator4, typename Generator5, typename Generator6,
        +    typename Generator7>
        +internal::CartesianProductHolder7<Generator1, Generator2, Generator3,
        +    Generator4, Generator5, Generator6, Generator7> Combine(
        +    const Generator1& g1, const Generator2& g2, const Generator3& g3,
        +        const Generator4& g4, const Generator5& g5, const Generator6& g6,
        +        const Generator7& g7) {
        +  return internal::CartesianProductHolder7<Generator1, Generator2, Generator3,
        +      Generator4, Generator5, Generator6, Generator7>(
        +      g1, g2, g3, g4, g5, g6, g7);
        +}
        +
        +template <typename Generator1, typename Generator2, typename Generator3,
        +    typename Generator4, typename Generator5, typename Generator6,
        +    typename Generator7, typename Generator8>
        +internal::CartesianProductHolder8<Generator1, Generator2, Generator3,
        +    Generator4, Generator5, Generator6, Generator7, Generator8> Combine(
        +    const Generator1& g1, const Generator2& g2, const Generator3& g3,
        +        const Generator4& g4, const Generator5& g5, const Generator6& g6,
        +        const Generator7& g7, const Generator8& g8) {
        +  return internal::CartesianProductHolder8<Generator1, Generator2, Generator3,
        +      Generator4, Generator5, Generator6, Generator7, Generator8>(
        +      g1, g2, g3, g4, g5, g6, g7, g8);
        +}
        +
        +template <typename Generator1, typename Generator2, typename Generator3,
        +    typename Generator4, typename Generator5, typename Generator6,
        +    typename Generator7, typename Generator8, typename Generator9>
        +internal::CartesianProductHolder9<Generator1, Generator2, Generator3,
        +    Generator4, Generator5, Generator6, Generator7, Generator8,
        +    Generator9> Combine(
        +    const Generator1& g1, const Generator2& g2, const Generator3& g3,
        +        const Generator4& g4, const Generator5& g5, const Generator6& g6,
        +        const Generator7& g7, const Generator8& g8, const Generator9& g9) {
        +  return internal::CartesianProductHolder9<Generator1, Generator2, Generator3,
        +      Generator4, Generator5, Generator6, Generator7, Generator8, Generator9>(
        +      g1, g2, g3, g4, g5, g6, g7, g8, g9);
        +}
        +
        +template <typename Generator1, typename Generator2, typename Generator3,
        +    typename Generator4, typename Generator5, typename Generator6,
        +    typename Generator7, typename Generator8, typename Generator9,
        +    typename Generator10>
        +internal::CartesianProductHolder10<Generator1, Generator2, Generator3,
        +    Generator4, Generator5, Generator6, Generator7, Generator8, Generator9,
        +    Generator10> Combine(
        +    const Generator1& g1, const Generator2& g2, const Generator3& g3,
        +        const Generator4& g4, const Generator5& g5, const Generator6& g6,
        +        const Generator7& g7, const Generator8& g8, const Generator9& g9,
        +        const Generator10& g10) {
        +  return internal::CartesianProductHolder10<Generator1, Generator2, Generator3,
        +      Generator4, Generator5, Generator6, Generator7, Generator8, Generator9,
        +      Generator10>(
        +      g1, g2, g3, g4, g5, g6, g7, g8, g9, g10);
        +}
        +# endif  // GTEST_HAS_COMBINE
        +
        +
        +
        +# define TEST_P(test_case_name, test_name) \
        +  class GTEST_TEST_CLASS_NAME_(test_case_name, test_name) \
        +      : public test_case_name { \
        +   public: \
        +    GTEST_TEST_CLASS_NAME_(test_case_name, test_name)() {} \
        +    virtual void TestBody(); \
        +   private: \
        +    static int AddToRegistry() { \
        +      ::testing::UnitTest::GetInstance()->parameterized_test_registry(). \
        +          GetTestCasePatternHolder<test_case_name>(\
        +              #test_case_name, \
        +              ::testing::internal::CodeLocation(\
        +                  __FILE__, __LINE__))->AddTestPattern(\
        +                      #test_case_name, \
        +                      #test_name, \
        +                      new ::testing::internal::TestMetaFactory< \
        +                          GTEST_TEST_CLASS_NAME_(\
        +                              test_case_name, test_name)>()); \
        +      return 0; \
        +    } \
        +    static int gtest_registering_dummy_ GTEST_ATTRIBUTE_UNUSED_; \
        +    GTEST_DISALLOW_COPY_AND_ASSIGN_(\
        +        GTEST_TEST_CLASS_NAME_(test_case_name, test_name)); \
        +  }; \
        +  int GTEST_TEST_CLASS_NAME_(test_case_name, \
        +                             test_name)::gtest_registering_dummy_ = \
        +      GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::AddToRegistry(); \
        +  void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::TestBody()
        +
        +// The optional last argument to INSTANTIATE_TEST_CASE_P allows the user
        +// to specify a function or functor that generates custom test name suffixes
        +// based on the test parameters. The function should accept one argument of
        +// type testing::TestParamInfo<class ParamType>, and return std::string.
        +//
        +// testing::PrintToStringParamName is a builtin test suffix generator that
        +// returns the value of testing::PrintToString(GetParam()). It does not work
        +// for std::string or C strings.
        +//
        +// Note: test names must be non-empty, unique, and may only contain ASCII
        +// alphanumeric characters or underscore.
        +
        +# define INSTANTIATE_TEST_CASE_P(prefix, test_case_name, generator, ...) \
        +  ::testing::internal::ParamGenerator<test_case_name::ParamType> \
        +      gtest_##prefix##test_case_name##_EvalGenerator_() { return generator; } \
        +  ::std::string gtest_##prefix##test_case_name##_EvalGenerateName_( \
        +      const ::testing::TestParamInfo<test_case_name::ParamType>& info) { \
        +    return ::testing::internal::GetParamNameGen<test_case_name::ParamType> \
        +        (__VA_ARGS__)(info); \
        +  } \
        +  int gtest_##prefix##test_case_name##_dummy_ GTEST_ATTRIBUTE_UNUSED_ = \
        +      ::testing::UnitTest::GetInstance()->parameterized_test_registry(). \
        +          GetTestCasePatternHolder<test_case_name>(\
        +              #test_case_name, \
        +              ::testing::internal::CodeLocation(\
        +                  __FILE__, __LINE__))->AddTestCaseInstantiation(\
        +                      #prefix, \
        +                      &gtest_##prefix##test_case_name##_EvalGenerator_, \
        +                      &gtest_##prefix##test_case_name##_EvalGenerateName_, \
        +                      __FILE__, __LINE__)
        +
        +}  // namespace testing
        +
        +#endif  // GTEST_HAS_PARAM_TEST
        +
        +#endif  // GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_
        diff --git a/lib/ann/fann/lib/googletest/include/gtest/gtest-param-test.h.pump b/lib/ann/fann/lib/googletest/include/gtest/gtest-param-test.h.pump
        new file mode 100644
        index 0000000..3078d6d
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/include/gtest/gtest-param-test.h.pump
        @@ -0,0 +1,510 @@
        +$$ -*- mode: c++; -*-
        +$var n = 50  $$ Maximum length of Values arguments we want to support.
        +$var maxtuple = 10  $$ Maximum number of Combine arguments we want to support.
        +// Copyright 2008, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Authors: vladl@google.com (Vlad Losev)
        +//
        +// Macros and functions for implementing parameterized tests
        +// in Google C++ Testing Framework (Google Test)
        +//
        +// This file is generated by a SCRIPT.  DO NOT EDIT BY HAND!
        +//
        +#ifndef GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_
        +#define GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_
        +
        +
        +// Value-parameterized tests allow you to test your code with different
        +// parameters without writing multiple copies of the same test.
        +//
        +// Here is how you use value-parameterized tests:
        +
        +#if 0
        +
        +// To write value-parameterized tests, first you should define a fixture
        +// class. It is usually derived from testing::TestWithParam<T> (see below for
        +// another inheritance scheme that's sometimes useful in more complicated
        +// class hierarchies), where the type of your parameter values.
        +// TestWithParam<T> is itself derived from testing::Test. T can be any
        +// copyable type. If it's a raw pointer, you are responsible for managing the
        +// lifespan of the pointed values.
        +
        +class FooTest : public ::testing::TestWithParam<const char*> {
        +  // You can implement all the usual class fixture members here.
        +};
        +
        +// Then, use the TEST_P macro to define as many parameterized tests
        +// for this fixture as you want. The _P suffix is for "parameterized"
        +// or "pattern", whichever you prefer to think.
        +
        +TEST_P(FooTest, DoesBlah) {
        +  // Inside a test, access the test parameter with the GetParam() method
        +  // of the TestWithParam<T> class:
        +  EXPECT_TRUE(foo.Blah(GetParam()));
        +  ...
        +}
        +
        +TEST_P(FooTest, HasBlahBlah) {
        +  ...
        +}
        +
        +// Finally, you can use INSTANTIATE_TEST_CASE_P to instantiate the test
        +// case with any set of parameters you want. Google Test defines a number
        +// of functions for generating test parameters. They return what we call
        +// (surprise!) parameter generators. Here is a  summary of them, which
        +// are all in the testing namespace:
        +//
        +//
        +//  Range(begin, end [, step]) - Yields values {begin, begin+step,
        +//                               begin+step+step, ...}. The values do not
        +//                               include end. step defaults to 1.
        +//  Values(v1, v2, ..., vN)    - Yields values {v1, v2, ..., vN}.
        +//  ValuesIn(container)        - Yields values from a C-style array, an STL
        +//  ValuesIn(begin,end)          container, or an iterator range [begin, end).
        +//  Bool()                     - Yields sequence {false, true}.
        +//  Combine(g1, g2, ..., gN)   - Yields all combinations (the Cartesian product
        +//                               for the math savvy) of the values generated
        +//                               by the N generators.
        +//
        +// For more details, see comments at the definitions of these functions below
        +// in this file.
        +//
        +// The following statement will instantiate tests from the FooTest test case
        +// each with parameter values "meeny", "miny", and "moe".
        +
        +INSTANTIATE_TEST_CASE_P(InstantiationName,
        +                        FooTest,
        +                        Values("meeny", "miny", "moe"));
        +
        +// To distinguish different instances of the pattern, (yes, you
        +// can instantiate it more then once) the first argument to the
        +// INSTANTIATE_TEST_CASE_P macro is a prefix that will be added to the
        +// actual test case name. Remember to pick unique prefixes for different
        +// instantiations. The tests from the instantiation above will have
        +// these names:
        +//
        +//    * InstantiationName/FooTest.DoesBlah/0 for "meeny"
        +//    * InstantiationName/FooTest.DoesBlah/1 for "miny"
        +//    * InstantiationName/FooTest.DoesBlah/2 for "moe"
        +//    * InstantiationName/FooTest.HasBlahBlah/0 for "meeny"
        +//    * InstantiationName/FooTest.HasBlahBlah/1 for "miny"
        +//    * InstantiationName/FooTest.HasBlahBlah/2 for "moe"
        +//
        +// You can use these names in --gtest_filter.
        +//
        +// This statement will instantiate all tests from FooTest again, each
        +// with parameter values "cat" and "dog":
        +
        +const char* pets[] = {"cat", "dog"};
        +INSTANTIATE_TEST_CASE_P(AnotherInstantiationName, FooTest, ValuesIn(pets));
        +
        +// The tests from the instantiation above will have these names:
        +//
        +//    * AnotherInstantiationName/FooTest.DoesBlah/0 for "cat"
        +//    * AnotherInstantiationName/FooTest.DoesBlah/1 for "dog"
        +//    * AnotherInstantiationName/FooTest.HasBlahBlah/0 for "cat"
        +//    * AnotherInstantiationName/FooTest.HasBlahBlah/1 for "dog"
        +//
        +// Please note that INSTANTIATE_TEST_CASE_P will instantiate all tests
        +// in the given test case, whether their definitions come before or
        +// AFTER the INSTANTIATE_TEST_CASE_P statement.
        +//
        +// Please also note that generator expressions (including parameters to the
        +// generators) are evaluated in InitGoogleTest(), after main() has started.
        +// This allows the user on one hand, to adjust generator parameters in order
        +// to dynamically determine a set of tests to run and on the other hand,
        +// give the user a chance to inspect the generated tests with Google Test
        +// reflection API before RUN_ALL_TESTS() is executed.
        +//
        +// You can see samples/sample7_unittest.cc and samples/sample8_unittest.cc
        +// for more examples.
        +//
        +// In the future, we plan to publish the API for defining new parameter
        +// generators. But for now this interface remains part of the internal
        +// implementation and is subject to change.
        +//
        +//
        +// A parameterized test fixture must be derived from testing::Test and from
        +// testing::WithParamInterface<T>, where T is the type of the parameter
        +// values. Inheriting from TestWithParam<T> satisfies that requirement because
        +// TestWithParam<T> inherits from both Test and WithParamInterface. In more
        +// complicated hierarchies, however, it is occasionally useful to inherit
        +// separately from Test and WithParamInterface. For example:
        +
        +class BaseTest : public ::testing::Test {
        +  // You can inherit all the usual members for a non-parameterized test
        +  // fixture here.
        +};
        +
        +class DerivedTest : public BaseTest, public ::testing::WithParamInterface<int> {
        +  // The usual test fixture members go here too.
        +};
        +
        +TEST_F(BaseTest, HasFoo) {
        +  // This is an ordinary non-parameterized test.
        +}
        +
        +TEST_P(DerivedTest, DoesBlah) {
        +  // GetParam works just the same here as if you inherit from TestWithParam.
        +  EXPECT_TRUE(foo.Blah(GetParam()));
        +}
        +
        +#endif  // 0
        +
        +#include "gtest/internal/gtest-port.h"
        +
        +#if !GTEST_OS_SYMBIAN
        +# include <utility>
        +#endif
        +
        +// scripts/fuse_gtest.py depends on gtest's own header being #included
        +// *unconditionally*.  Therefore these #includes cannot be moved
        +// inside #if GTEST_HAS_PARAM_TEST.
        +#include "gtest/internal/gtest-internal.h"
        +#include "gtest/internal/gtest-param-util.h"
        +#include "gtest/internal/gtest-param-util-generated.h"
        +
        +#if GTEST_HAS_PARAM_TEST
        +
        +namespace testing {
        +
        +// Functions producing parameter generators.
        +//
        +// Google Test uses these generators to produce parameters for value-
        +// parameterized tests. When a parameterized test case is instantiated
        +// with a particular generator, Google Test creates and runs tests
        +// for each element in the sequence produced by the generator.
        +//
        +// In the following sample, tests from test case FooTest are instantiated
        +// each three times with parameter values 3, 5, and 8:
        +//
        +// class FooTest : public TestWithParam<int> { ... };
        +//
        +// TEST_P(FooTest, TestThis) {
        +// }
        +// TEST_P(FooTest, TestThat) {
        +// }
        +// INSTANTIATE_TEST_CASE_P(TestSequence, FooTest, Values(3, 5, 8));
        +//
        +
        +// Range() returns generators providing sequences of values in a range.
        +//
        +// Synopsis:
        +// Range(start, end)
        +//   - returns a generator producing a sequence of values {start, start+1,
        +//     start+2, ..., }.
        +// Range(start, end, step)
        +//   - returns a generator producing a sequence of values {start, start+step,
        +//     start+step+step, ..., }.
        +// Notes:
        +//   * The generated sequences never include end. For example, Range(1, 5)
        +//     returns a generator producing a sequence {1, 2, 3, 4}. Range(1, 9, 2)
        +//     returns a generator producing {1, 3, 5, 7}.
        +//   * start and end must have the same type. That type may be any integral or
        +//     floating-point type or a user defined type satisfying these conditions:
        +//     * It must be assignable (have operator=() defined).
        +//     * It must have operator+() (operator+(int-compatible type) for
        +//       two-operand version).
        +//     * It must have operator<() defined.
        +//     Elements in the resulting sequences will also have that type.
        +//   * Condition start < end must be satisfied in order for resulting sequences
        +//     to contain any elements.
        +//
        +template <typename T, typename IncrementT>
        +internal::ParamGenerator<T> Range(T start, T end, IncrementT step) {
        +  return internal::ParamGenerator<T>(
        +      new internal::RangeGenerator<T, IncrementT>(start, end, step));
        +}
        +
        +template <typename T>
        +internal::ParamGenerator<T> Range(T start, T end) {
        +  return Range(start, end, 1);
        +}
        +
        +// ValuesIn() function allows generation of tests with parameters coming from
        +// a container.
        +//
        +// Synopsis:
        +// ValuesIn(const T (&array)[N])
        +//   - returns a generator producing sequences with elements from
        +//     a C-style array.
        +// ValuesIn(const Container& container)
        +//   - returns a generator producing sequences with elements from
        +//     an STL-style container.
        +// ValuesIn(Iterator begin, Iterator end)
        +//   - returns a generator producing sequences with elements from
        +//     a range [begin, end) defined by a pair of STL-style iterators. These
        +//     iterators can also be plain C pointers.
        +//
        +// Please note that ValuesIn copies the values from the containers
        +// passed in and keeps them to generate tests in RUN_ALL_TESTS().
        +//
        +// Examples:
        +//
        +// This instantiates tests from test case StringTest
        +// each with C-string values of "foo", "bar", and "baz":
        +//
        +// const char* strings[] = {"foo", "bar", "baz"};
        +// INSTANTIATE_TEST_CASE_P(StringSequence, SrtingTest, ValuesIn(strings));
        +//
        +// This instantiates tests from test case StlStringTest
        +// each with STL strings with values "a" and "b":
        +//
        +// ::std::vector< ::std::string> GetParameterStrings() {
        +//   ::std::vector< ::std::string> v;
        +//   v.push_back("a");
        +//   v.push_back("b");
        +//   return v;
        +// }
        +//
        +// INSTANTIATE_TEST_CASE_P(CharSequence,
        +//                         StlStringTest,
        +//                         ValuesIn(GetParameterStrings()));
        +//
        +//
        +// This will also instantiate tests from CharTest
        +// each with parameter values 'a' and 'b':
        +//
        +// ::std::list<char> GetParameterChars() {
        +//   ::std::list<char> list;
        +//   list.push_back('a');
        +//   list.push_back('b');
        +//   return list;
        +// }
        +// ::std::list<char> l = GetParameterChars();
        +// INSTANTIATE_TEST_CASE_P(CharSequence2,
        +//                         CharTest,
        +//                         ValuesIn(l.begin(), l.end()));
        +//
        +template <typename ForwardIterator>
        +internal::ParamGenerator<
        +  typename ::testing::internal::IteratorTraits<ForwardIterator>::value_type>
        +ValuesIn(ForwardIterator begin, ForwardIterator end) {
        +  typedef typename ::testing::internal::IteratorTraits<ForwardIterator>
        +      ::value_type ParamType;
        +  return internal::ParamGenerator<ParamType>(
        +      new internal::ValuesInIteratorRangeGenerator<ParamType>(begin, end));
        +}
        +
        +template <typename T, size_t N>
        +internal::ParamGenerator<T> ValuesIn(const T (&array)[N]) {
        +  return ValuesIn(array, array + N);
        +}
        +
        +template <class Container>
        +internal::ParamGenerator<typename Container::value_type> ValuesIn(
        +    const Container& container) {
        +  return ValuesIn(container.begin(), container.end());
        +}
        +
        +// Values() allows generating tests from explicitly specified list of
        +// parameters.
        +//
        +// Synopsis:
        +// Values(T v1, T v2, ..., T vN)
        +//   - returns a generator producing sequences with elements v1, v2, ..., vN.
        +//
        +// For example, this instantiates tests from test case BarTest each
        +// with values "one", "two", and "three":
        +//
        +// INSTANTIATE_TEST_CASE_P(NumSequence, BarTest, Values("one", "two", "three"));
        +//
        +// This instantiates tests from test case BazTest each with values 1, 2, 3.5.
        +// The exact type of values will depend on the type of parameter in BazTest.
        +//
        +// INSTANTIATE_TEST_CASE_P(FloatingNumbers, BazTest, Values(1, 2, 3.5));
        +//
        +// Currently, Values() supports from 1 to $n parameters.
        +//
        +$range i 1..n
        +$for i [[
        +$range j 1..i
        +
        +template <$for j, [[typename T$j]]>
        +internal::ValueArray$i<$for j, [[T$j]]> Values($for j, [[T$j v$j]]) {
        +  return internal::ValueArray$i<$for j, [[T$j]]>($for j, [[v$j]]);
        +}
        +
        +]]
        +
        +// Bool() allows generating tests with parameters in a set of (false, true).
        +//
        +// Synopsis:
        +// Bool()
        +//   - returns a generator producing sequences with elements {false, true}.
        +//
        +// It is useful when testing code that depends on Boolean flags. Combinations
        +// of multiple flags can be tested when several Bool()'s are combined using
        +// Combine() function.
        +//
        +// In the following example all tests in the test case FlagDependentTest
        +// will be instantiated twice with parameters false and true.
        +//
        +// class FlagDependentTest : public testing::TestWithParam<bool> {
        +//   virtual void SetUp() {
        +//     external_flag = GetParam();
        +//   }
        +// }
        +// INSTANTIATE_TEST_CASE_P(BoolSequence, FlagDependentTest, Bool());
        +//
        +inline internal::ParamGenerator<bool> Bool() {
        +  return Values(false, true);
        +}
        +
        +# if GTEST_HAS_COMBINE
        +// Combine() allows the user to combine two or more sequences to produce
        +// values of a Cartesian product of those sequences' elements.
        +//
        +// Synopsis:
        +// Combine(gen1, gen2, ..., genN)
        +//   - returns a generator producing sequences with elements coming from
        +//     the Cartesian product of elements from the sequences generated by
        +//     gen1, gen2, ..., genN. The sequence elements will have a type of
        +//     tuple<T1, T2, ..., TN> where T1, T2, ..., TN are the types
        +//     of elements from sequences produces by gen1, gen2, ..., genN.
        +//
        +// Combine can have up to $maxtuple arguments. This number is currently limited
        +// by the maximum number of elements in the tuple implementation used by Google
        +// Test.
        +//
        +// Example:
        +//
        +// This will instantiate tests in test case AnimalTest each one with
        +// the parameter values tuple("cat", BLACK), tuple("cat", WHITE),
        +// tuple("dog", BLACK), and tuple("dog", WHITE):
        +//
        +// enum Color { BLACK, GRAY, WHITE };
        +// class AnimalTest
        +//     : public testing::TestWithParam<tuple<const char*, Color> > {...};
        +//
        +// TEST_P(AnimalTest, AnimalLooksNice) {...}
        +//
        +// INSTANTIATE_TEST_CASE_P(AnimalVariations, AnimalTest,
        +//                         Combine(Values("cat", "dog"),
        +//                                 Values(BLACK, WHITE)));
        +//
        +// This will instantiate tests in FlagDependentTest with all variations of two
        +// Boolean flags:
        +//
        +// class FlagDependentTest
        +//     : public testing::TestWithParam<tuple<bool, bool> > {
        +//   virtual void SetUp() {
        +//     // Assigns external_flag_1 and external_flag_2 values from the tuple.
        +//     tie(external_flag_1, external_flag_2) = GetParam();
        +//   }
        +// };
        +//
        +// TEST_P(FlagDependentTest, TestFeature1) {
        +//   // Test your code using external_flag_1 and external_flag_2 here.
        +// }
        +// INSTANTIATE_TEST_CASE_P(TwoBoolSequence, FlagDependentTest,
        +//                         Combine(Bool(), Bool()));
        +//
        +$range i 2..maxtuple
        +$for i [[
        +$range j 1..i
        +
        +template <$for j, [[typename Generator$j]]>
        +internal::CartesianProductHolder$i<$for j, [[Generator$j]]> Combine(
        +    $for j, [[const Generator$j& g$j]]) {
        +  return internal::CartesianProductHolder$i<$for j, [[Generator$j]]>(
        +      $for j, [[g$j]]);
        +}
        +
        +]]
        +# endif  // GTEST_HAS_COMBINE
        +
        +
        +
        +# define TEST_P(test_case_name, test_name) \
        +  class GTEST_TEST_CLASS_NAME_(test_case_name, test_name) \
        +      : public test_case_name { \
        +   public: \
        +    GTEST_TEST_CLASS_NAME_(test_case_name, test_name)() {} \
        +    virtual void TestBody(); \
        +   private: \
        +    static int AddToRegistry() { \
        +      ::testing::UnitTest::GetInstance()->parameterized_test_registry(). \
        +          GetTestCasePatternHolder<test_case_name>(\
        +              #test_case_name, \
        +              ::testing::internal::CodeLocation(\
        +                  __FILE__, __LINE__))->AddTestPattern(\
        +                      #test_case_name, \
        +                      #test_name, \
        +                      new ::testing::internal::TestMetaFactory< \
        +                          GTEST_TEST_CLASS_NAME_(\
        +                              test_case_name, test_name)>()); \
        +      return 0; \
        +    } \
        +    static int gtest_registering_dummy_ GTEST_ATTRIBUTE_UNUSED_; \
        +    GTEST_DISALLOW_COPY_AND_ASSIGN_(\
        +        GTEST_TEST_CLASS_NAME_(test_case_name, test_name)); \
        +  }; \
        +  int GTEST_TEST_CLASS_NAME_(test_case_name, \
        +                             test_name)::gtest_registering_dummy_ = \
        +      GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::AddToRegistry(); \
        +  void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::TestBody()
        +
        +// The optional last argument to INSTANTIATE_TEST_CASE_P allows the user
        +// to specify a function or functor that generates custom test name suffixes
        +// based on the test parameters. The function should accept one argument of
        +// type testing::TestParamInfo<class ParamType>, and return std::string.
        +//
        +// testing::PrintToStringParamName is a builtin test suffix generator that
        +// returns the value of testing::PrintToString(GetParam()).
        +//
        +// Note: test names must be non-empty, unique, and may only contain ASCII
        +// alphanumeric characters or underscore. Because PrintToString adds quotes
        +// to std::string and C strings, it won't work for these types.
        +
        +# define INSTANTIATE_TEST_CASE_P(prefix, test_case_name, generator, ...) \
        +  ::testing::internal::ParamGenerator<test_case_name::ParamType> \
        +      gtest_##prefix##test_case_name##_EvalGenerator_() { return generator; } \
        +  ::std::string gtest_##prefix##test_case_name##_EvalGenerateName_( \
        +      const ::testing::TestParamInfo<test_case_name::ParamType>& info) { \
        +    return ::testing::internal::GetParamNameGen<test_case_name::ParamType> \
        +        (__VA_ARGS__)(info); \
        +  } \
        +  int gtest_##prefix##test_case_name##_dummy_ GTEST_ATTRIBUTE_UNUSED_ = \
        +      ::testing::UnitTest::GetInstance()->parameterized_test_registry(). \
        +          GetTestCasePatternHolder<test_case_name>(\
        +              #test_case_name, \
        +              ::testing::internal::CodeLocation(\
        +                  __FILE__, __LINE__))->AddTestCaseInstantiation(\
        +                      #prefix, \
        +                      &gtest_##prefix##test_case_name##_EvalGenerator_, \
        +                      &gtest_##prefix##test_case_name##_EvalGenerateName_, \
        +                      __FILE__, __LINE__)
        +
        +}  // namespace testing
        +
        +#endif  // GTEST_HAS_PARAM_TEST
        +
        +#endif  // GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_
        diff --git a/lib/ann/fann/lib/googletest/include/gtest/gtest-printers.h b/lib/ann/fann/lib/googletest/include/gtest/gtest-printers.h
        new file mode 100644
        index 0000000..8a33164
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/include/gtest/gtest-printers.h
        @@ -0,0 +1,993 @@
        +// Copyright 2007, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +// Google Test - The Google C++ Testing Framework
        +//
        +// This file implements a universal value printer that can print a
        +// value of any type T:
        +//
        +//   void ::testing::internal::UniversalPrinter<T>::Print(value, ostream_ptr);
        +//
        +// A user can teach this function how to print a class type T by
        +// defining either operator<<() or PrintTo() in the namespace that
        +// defines T.  More specifically, the FIRST defined function in the
        +// following list will be used (assuming T is defined in namespace
        +// foo):
        +//
        +//   1. foo::PrintTo(const T&, ostream*)
        +//   2. operator<<(ostream&, const T&) defined in either foo or the
        +//      global namespace.
        +//
        +// If none of the above is defined, it will print the debug string of
        +// the value if it is a protocol buffer, or print the raw bytes in the
        +// value otherwise.
        +//
        +// To aid debugging: when T is a reference type, the address of the
        +// value is also printed; when T is a (const) char pointer, both the
        +// pointer value and the NUL-terminated string it points to are
        +// printed.
        +//
        +// We also provide some convenient wrappers:
        +//
        +//   // Prints a value to a string.  For a (const or not) char
        +//   // pointer, the NUL-terminated string (but not the pointer) is
        +//   // printed.
        +//   std::string ::testing::PrintToString(const T& value);
        +//
        +//   // Prints a value tersely: for a reference type, the referenced
        +//   // value (but not the address) is printed; for a (const or not) char
        +//   // pointer, the NUL-terminated string (but not the pointer) is
        +//   // printed.
        +//   void ::testing::internal::UniversalTersePrint(const T& value, ostream*);
        +//
        +//   // Prints value using the type inferred by the compiler.  The difference
        +//   // from UniversalTersePrint() is that this function prints both the
        +//   // pointer and the NUL-terminated string for a (const or not) char pointer.
        +//   void ::testing::internal::UniversalPrint(const T& value, ostream*);
        +//
        +//   // Prints the fields of a tuple tersely to a string vector, one
        +//   // element for each field. Tuple support must be enabled in
        +//   // gtest-port.h.
        +//   std::vector<string> UniversalTersePrintTupleFieldsToStrings(
        +//       const Tuple& value);
        +//
        +// Known limitation:
        +//
        +// The print primitives print the elements of an STL-style container
        +// using the compiler-inferred type of *iter where iter is a
        +// const_iterator of the container.  When const_iterator is an input
        +// iterator but not a forward iterator, this inferred type may not
        +// match value_type, and the print output may be incorrect.  In
        +// practice, this is rarely a problem as for most containers
        +// const_iterator is a forward iterator.  We'll fix this if there's an
        +// actual need for it.  Note that this fix cannot rely on value_type
        +// being defined as many user-defined container types don't have
        +// value_type.
        +
        +#ifndef GTEST_INCLUDE_GTEST_GTEST_PRINTERS_H_
        +#define GTEST_INCLUDE_GTEST_GTEST_PRINTERS_H_
        +
        +#include <ostream>  // NOLINT
        +#include <sstream>
        +#include <string>
        +#include <utility>
        +#include <vector>
        +#include "gtest/internal/gtest-port.h"
        +#include "gtest/internal/gtest-internal.h"
        +
        +#if GTEST_HAS_STD_TUPLE_
        +# include <tuple>
        +#endif
        +
        +namespace testing {
        +
        +// Definitions in the 'internal' and 'internal2' name spaces are
        +// subject to change without notice.  DO NOT USE THEM IN USER CODE!
        +namespace internal2 {
        +
        +// Prints the given number of bytes in the given object to the given
        +// ostream.
        +GTEST_API_ void PrintBytesInObjectTo(const unsigned char* obj_bytes,
        +                                     size_t count,
        +                                     ::std::ostream* os);
        +
        +// For selecting which printer to use when a given type has neither <<
        +// nor PrintTo().
        +enum TypeKind {
        +  kProtobuf,              // a protobuf type
        +  kConvertibleToInteger,  // a type implicitly convertible to BiggestInt
        +                          // (e.g. a named or unnamed enum type)
        +  kOtherType              // anything else
        +};
        +
        +// TypeWithoutFormatter<T, kTypeKind>::PrintValue(value, os) is called
        +// by the universal printer to print a value of type T when neither
        +// operator<< nor PrintTo() is defined for T, where kTypeKind is the
        +// "kind" of T as defined by enum TypeKind.
        +template <typename T, TypeKind kTypeKind>
        +class TypeWithoutFormatter {
        + public:
        +  // This default version is called when kTypeKind is kOtherType.
        +  static void PrintValue(const T& value, ::std::ostream* os) {
        +    PrintBytesInObjectTo(reinterpret_cast<const unsigned char*>(&value),
        +                         sizeof(value), os);
        +  }
        +};
        +
        +// We print a protobuf using its ShortDebugString() when the string
        +// doesn't exceed this many characters; otherwise we print it using
        +// DebugString() for better readability.
        +const size_t kProtobufOneLinerMaxLength = 50;
        +
        +template <typename T>
        +class TypeWithoutFormatter<T, kProtobuf> {
        + public:
        +  static void PrintValue(const T& value, ::std::ostream* os) {
        +    const ::testing::internal::string short_str = value.ShortDebugString();
        +    const ::testing::internal::string pretty_str =
        +        short_str.length() <= kProtobufOneLinerMaxLength ?
        +        short_str : ("\n" + value.DebugString());
        +    *os << ("<" + pretty_str + ">");
        +  }
        +};
        +
        +template <typename T>
        +class TypeWithoutFormatter<T, kConvertibleToInteger> {
        + public:
        +  // Since T has no << operator or PrintTo() but can be implicitly
        +  // converted to BiggestInt, we print it as a BiggestInt.
        +  //
        +  // Most likely T is an enum type (either named or unnamed), in which
        +  // case printing it as an integer is the desired behavior.  In case
        +  // T is not an enum, printing it as an integer is the best we can do
        +  // given that it has no user-defined printer.
        +  static void PrintValue(const T& value, ::std::ostream* os) {
        +    const internal::BiggestInt kBigInt = value;
        +    *os << kBigInt;
        +  }
        +};
        +
        +// Prints the given value to the given ostream.  If the value is a
        +// protocol message, its debug string is printed; if it's an enum or
        +// of a type implicitly convertible to BiggestInt, it's printed as an
        +// integer; otherwise the bytes in the value are printed.  This is
        +// what UniversalPrinter<T>::Print() does when it knows nothing about
        +// type T and T has neither << operator nor PrintTo().
        +//
        +// A user can override this behavior for a class type Foo by defining
        +// a << operator in the namespace where Foo is defined.
        +//
        +// We put this operator in namespace 'internal2' instead of 'internal'
        +// to simplify the implementation, as much code in 'internal' needs to
        +// use << in STL, which would conflict with our own << were it defined
        +// in 'internal'.
        +//
        +// Note that this operator<< takes a generic std::basic_ostream<Char,
        +// CharTraits> type instead of the more restricted std::ostream.  If
        +// we define it to take an std::ostream instead, we'll get an
        +// "ambiguous overloads" compiler error when trying to print a type
        +// Foo that supports streaming to std::basic_ostream<Char,
        +// CharTraits>, as the compiler cannot tell whether
        +// operator<<(std::ostream&, const T&) or
        +// operator<<(std::basic_stream<Char, CharTraits>, const Foo&) is more
        +// specific.
        +template <typename Char, typename CharTraits, typename T>
        +::std::basic_ostream<Char, CharTraits>& operator<<(
        +    ::std::basic_ostream<Char, CharTraits>& os, const T& x) {
        +  TypeWithoutFormatter<T,
        +      (internal::IsAProtocolMessage<T>::value ? kProtobuf :
        +       internal::ImplicitlyConvertible<const T&, internal::BiggestInt>::value ?
        +       kConvertibleToInteger : kOtherType)>::PrintValue(x, &os);
        +  return os;
        +}
        +
        +}  // namespace internal2
        +}  // namespace testing
        +
        +// This namespace MUST NOT BE NESTED IN ::testing, or the name look-up
        +// magic needed for implementing UniversalPrinter won't work.
        +namespace testing_internal {
        +
        +// Used to print a value that is not an STL-style container when the
        +// user doesn't define PrintTo() for it.
        +template <typename T>
        +void DefaultPrintNonContainerTo(const T& value, ::std::ostream* os) {
        +  // With the following statement, during unqualified name lookup,
        +  // testing::internal2::operator<< appears as if it was declared in
        +  // the nearest enclosing namespace that contains both
        +  // ::testing_internal and ::testing::internal2, i.e. the global
        +  // namespace.  For more details, refer to the C++ Standard section
        +  // 7.3.4-1 [namespace.udir].  This allows us to fall back onto
        +  // testing::internal2::operator<< in case T doesn't come with a <<
        +  // operator.
        +  //
        +  // We cannot write 'using ::testing::internal2::operator<<;', which
        +  // gcc 3.3 fails to compile due to a compiler bug.
        +  using namespace ::testing::internal2;  // NOLINT
        +
        +  // Assuming T is defined in namespace foo, in the next statement,
        +  // the compiler will consider all of:
        +  //
        +  //   1. foo::operator<< (thanks to Koenig look-up),
        +  //   2. ::operator<< (as the current namespace is enclosed in ::),
        +  //   3. testing::internal2::operator<< (thanks to the using statement above).
        +  //
        +  // The operator<< whose type matches T best will be picked.
        +  //
        +  // We deliberately allow #2 to be a candidate, as sometimes it's
        +  // impossible to define #1 (e.g. when foo is ::std, defining
        +  // anything in it is undefined behavior unless you are a compiler
        +  // vendor.).
        +  *os << value;
        +}
        +
        +}  // namespace testing_internal
        +
        +namespace testing {
        +namespace internal {
        +
        +// FormatForComparison<ToPrint, OtherOperand>::Format(value) formats a
        +// value of type ToPrint that is an operand of a comparison assertion
        +// (e.g. ASSERT_EQ).  OtherOperand is the type of the other operand in
        +// the comparison, and is used to help determine the best way to
        +// format the value.  In particular, when the value is a C string
        +// (char pointer) and the other operand is an STL string object, we
        +// want to format the C string as a string, since we know it is
        +// compared by value with the string object.  If the value is a char
        +// pointer but the other operand is not an STL string object, we don't
        +// know whether the pointer is supposed to point to a NUL-terminated
        +// string, and thus want to print it as a pointer to be safe.
        +//
        +// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
        +
        +// The default case.
        +template <typename ToPrint, typename OtherOperand>
        +class FormatForComparison {
        + public:
        +  static ::std::string Format(const ToPrint& value) {
        +    return ::testing::PrintToString(value);
        +  }
        +};
        +
        +// Array.
        +template <typename ToPrint, size_t N, typename OtherOperand>
        +class FormatForComparison<ToPrint[N], OtherOperand> {
        + public:
        +  static ::std::string Format(const ToPrint* value) {
        +    return FormatForComparison<const ToPrint*, OtherOperand>::Format(value);
        +  }
        +};
        +
        +// By default, print C string as pointers to be safe, as we don't know
        +// whether they actually point to a NUL-terminated string.
        +
        +#define GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(CharType)                \
        +  template <typename OtherOperand>                                      \
        +  class FormatForComparison<CharType*, OtherOperand> {                  \
        +   public:                                                              \
        +    static ::std::string Format(CharType* value) {                      \
        +      return ::testing::PrintToString(static_cast<const void*>(value)); \
        +    }                                                                   \
        +  }
        +
        +GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(char);
        +GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(const char);
        +GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(wchar_t);
        +GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(const wchar_t);
        +
        +#undef GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_
        +
        +// If a C string is compared with an STL string object, we know it's meant
        +// to point to a NUL-terminated string, and thus can print it as a string.
        +
        +#define GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(CharType, OtherStringType) \
        +  template <>                                                           \
        +  class FormatForComparison<CharType*, OtherStringType> {               \
        +   public:                                                              \
        +    static ::std::string Format(CharType* value) {                      \
        +      return ::testing::PrintToString(value);                           \
        +    }                                                                   \
        +  }
        +
        +GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(char, ::std::string);
        +GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(const char, ::std::string);
        +
        +#if GTEST_HAS_GLOBAL_STRING
        +GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(char, ::string);
        +GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(const char, ::string);
        +#endif
        +
        +#if GTEST_HAS_GLOBAL_WSTRING
        +GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(wchar_t, ::wstring);
        +GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(const wchar_t, ::wstring);
        +#endif
        +
        +#if GTEST_HAS_STD_WSTRING
        +GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(wchar_t, ::std::wstring);
        +GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(const wchar_t, ::std::wstring);
        +#endif
        +
        +#undef GTEST_IMPL_FORMAT_C_STRING_AS_STRING_
        +
        +// Formats a comparison assertion (e.g. ASSERT_EQ, EXPECT_LT, and etc)
        +// operand to be used in a failure message.  The type (but not value)
        +// of the other operand may affect the format.  This allows us to
        +// print a char* as a raw pointer when it is compared against another
        +// char* or void*, and print it as a C string when it is compared
        +// against an std::string object, for example.
        +//
        +// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
        +template <typename T1, typename T2>
        +std::string FormatForComparisonFailureMessage(
        +    const T1& value, const T2& /* other_operand */) {
        +  return FormatForComparison<T1, T2>::Format(value);
        +}
        +
        +// UniversalPrinter<T>::Print(value, ostream_ptr) prints the given
        +// value to the given ostream.  The caller must ensure that
        +// 'ostream_ptr' is not NULL, or the behavior is undefined.
        +//
        +// We define UniversalPrinter as a class template (as opposed to a
        +// function template), as we need to partially specialize it for
        +// reference types, which cannot be done with function templates.
        +template <typename T>
        +class UniversalPrinter;
        +
        +template <typename T>
        +void UniversalPrint(const T& value, ::std::ostream* os);
        +
        +// Used to print an STL-style container when the user doesn't define
        +// a PrintTo() for it.
        +template <typename C>
        +void DefaultPrintTo(IsContainer /* dummy */,
        +                    false_type /* is not a pointer */,
        +                    const C& container, ::std::ostream* os) {
        +  const size_t kMaxCount = 32;  // The maximum number of elements to print.
        +  *os << '{';
        +  size_t count = 0;
        +  for (typename C::const_iterator it = container.begin();
        +       it != container.end(); ++it, ++count) {
        +    if (count > 0) {
        +      *os << ',';
        +      if (count == kMaxCount) {  // Enough has been printed.
        +        *os << " ...";
        +        break;
        +      }
        +    }
        +    *os << ' ';
        +    // We cannot call PrintTo(*it, os) here as PrintTo() doesn't
        +    // handle *it being a native array.
        +    internal::UniversalPrint(*it, os);
        +  }
        +
        +  if (count > 0) {
        +    *os << ' ';
        +  }
        +  *os << '}';
        +}
        +
        +// Used to print a pointer that is neither a char pointer nor a member
        +// pointer, when the user doesn't define PrintTo() for it.  (A member
        +// variable pointer or member function pointer doesn't really point to
        +// a location in the address space.  Their representation is
        +// implementation-defined.  Therefore they will be printed as raw
        +// bytes.)
        +template <typename T>
        +void DefaultPrintTo(IsNotContainer /* dummy */,
        +                    true_type /* is a pointer */,
        +                    T* p, ::std::ostream* os) {
        +  if (p == NULL) {
        +    *os << "NULL";
        +  } else {
        +    // C++ doesn't allow casting from a function pointer to any object
        +    // pointer.
        +    //
        +    // IsTrue() silences warnings: "Condition is always true",
        +    // "unreachable code".
        +    if (IsTrue(ImplicitlyConvertible<T*, const void*>::value)) {
        +      // T is not a function type.  We just call << to print p,
        +      // relying on ADL to pick up user-defined << for their pointer
        +      // types, if any.
        +      *os << p;
        +    } else {
        +      // T is a function type, so '*os << p' doesn't do what we want
        +      // (it just prints p as bool).  We want to print p as a const
        +      // void*.  However, we cannot cast it to const void* directly,
        +      // even using reinterpret_cast, as earlier versions of gcc
        +      // (e.g. 3.4.5) cannot compile the cast when p is a function
        +      // pointer.  Casting to UInt64 first solves the problem.
        +      *os << reinterpret_cast<const void*>(
        +          reinterpret_cast<internal::UInt64>(p));
        +    }
        +  }
        +}
        +
        +// Used to print a non-container, non-pointer value when the user
        +// doesn't define PrintTo() for it.
        +template <typename T>
        +void DefaultPrintTo(IsNotContainer /* dummy */,
        +                    false_type /* is not a pointer */,
        +                    const T& value, ::std::ostream* os) {
        +  ::testing_internal::DefaultPrintNonContainerTo(value, os);
        +}
        +
        +// Prints the given value using the << operator if it has one;
        +// otherwise prints the bytes in it.  This is what
        +// UniversalPrinter<T>::Print() does when PrintTo() is not specialized
        +// or overloaded for type T.
        +//
        +// A user can override this behavior for a class type Foo by defining
        +// an overload of PrintTo() in the namespace where Foo is defined.  We
        +// give the user this option as sometimes defining a << operator for
        +// Foo is not desirable (e.g. the coding style may prevent doing it,
        +// or there is already a << operator but it doesn't do what the user
        +// wants).
        +template <typename T>
        +void PrintTo(const T& value, ::std::ostream* os) {
        +  // DefaultPrintTo() is overloaded.  The type of its first two
        +  // arguments determine which version will be picked.  If T is an
        +  // STL-style container, the version for container will be called; if
        +  // T is a pointer, the pointer version will be called; otherwise the
        +  // generic version will be called.
        +  //
        +  // Note that we check for container types here, prior to we check
        +  // for protocol message types in our operator<<.  The rationale is:
        +  //
        +  // For protocol messages, we want to give people a chance to
        +  // override Google Mock's format by defining a PrintTo() or
        +  // operator<<.  For STL containers, other formats can be
        +  // incompatible with Google Mock's format for the container
        +  // elements; therefore we check for container types here to ensure
        +  // that our format is used.
        +  //
        +  // The second argument of DefaultPrintTo() is needed to bypass a bug
        +  // in Symbian's C++ compiler that prevents it from picking the right
        +  // overload between:
        +  //
        +  //   PrintTo(const T& x, ...);
        +  //   PrintTo(T* x, ...);
        +  DefaultPrintTo(IsContainerTest<T>(0), is_pointer<T>(), value, os);
        +}
        +
        +// The following list of PrintTo() overloads tells
        +// UniversalPrinter<T>::Print() how to print standard types (built-in
        +// types, strings, plain arrays, and pointers).
        +
        +// Overloads for various char types.
        +GTEST_API_ void PrintTo(unsigned char c, ::std::ostream* os);
        +GTEST_API_ void PrintTo(signed char c, ::std::ostream* os);
        +inline void PrintTo(char c, ::std::ostream* os) {
        +  // When printing a plain char, we always treat it as unsigned.  This
        +  // way, the output won't be affected by whether the compiler thinks
        +  // char is signed or not.
        +  PrintTo(static_cast<unsigned char>(c), os);
        +}
        +
        +// Overloads for other simple built-in types.
        +inline void PrintTo(bool x, ::std::ostream* os) {
        +  *os << (x ? "true" : "false");
        +}
        +
        +// Overload for wchar_t type.
        +// Prints a wchar_t as a symbol if it is printable or as its internal
        +// code otherwise and also as its decimal code (except for L'\0').
        +// The L'\0' char is printed as "L'\\0'". The decimal code is printed
        +// as signed integer when wchar_t is implemented by the compiler
        +// as a signed type and is printed as an unsigned integer when wchar_t
        +// is implemented as an unsigned type.
        +GTEST_API_ void PrintTo(wchar_t wc, ::std::ostream* os);
        +
        +// Overloads for C strings.
        +GTEST_API_ void PrintTo(const char* s, ::std::ostream* os);
        +inline void PrintTo(char* s, ::std::ostream* os) {
        +  PrintTo(ImplicitCast_<const char*>(s), os);
        +}
        +
        +// signed/unsigned char is often used for representing binary data, so
        +// we print pointers to it as void* to be safe.
        +inline void PrintTo(const signed char* s, ::std::ostream* os) {
        +  PrintTo(ImplicitCast_<const void*>(s), os);
        +}
        +inline void PrintTo(signed char* s, ::std::ostream* os) {
        +  PrintTo(ImplicitCast_<const void*>(s), os);
        +}
        +inline void PrintTo(const unsigned char* s, ::std::ostream* os) {
        +  PrintTo(ImplicitCast_<const void*>(s), os);
        +}
        +inline void PrintTo(unsigned char* s, ::std::ostream* os) {
        +  PrintTo(ImplicitCast_<const void*>(s), os);
        +}
        +
        +// MSVC can be configured to define wchar_t as a typedef of unsigned
        +// short.  It defines _NATIVE_WCHAR_T_DEFINED when wchar_t is a native
        +// type.  When wchar_t is a typedef, defining an overload for const
        +// wchar_t* would cause unsigned short* be printed as a wide string,
        +// possibly causing invalid memory accesses.
        +#if !defined(_MSC_VER) || defined(_NATIVE_WCHAR_T_DEFINED)
        +// Overloads for wide C strings
        +GTEST_API_ void PrintTo(const wchar_t* s, ::std::ostream* os);
        +inline void PrintTo(wchar_t* s, ::std::ostream* os) {
        +  PrintTo(ImplicitCast_<const wchar_t*>(s), os);
        +}
        +#endif
        +
        +// Overload for C arrays.  Multi-dimensional arrays are printed
        +// properly.
        +
        +// Prints the given number of elements in an array, without printing
        +// the curly braces.
        +template <typename T>
        +void PrintRawArrayTo(const T a[], size_t count, ::std::ostream* os) {
        +  UniversalPrint(a[0], os);
        +  for (size_t i = 1; i != count; i++) {
        +    *os << ", ";
        +    UniversalPrint(a[i], os);
        +  }
        +}
        +
        +// Overloads for ::string and ::std::string.
        +#if GTEST_HAS_GLOBAL_STRING
        +GTEST_API_ void PrintStringTo(const ::string&s, ::std::ostream* os);
        +inline void PrintTo(const ::string& s, ::std::ostream* os) {
        +  PrintStringTo(s, os);
        +}
        +#endif  // GTEST_HAS_GLOBAL_STRING
        +
        +GTEST_API_ void PrintStringTo(const ::std::string&s, ::std::ostream* os);
        +inline void PrintTo(const ::std::string& s, ::std::ostream* os) {
        +  PrintStringTo(s, os);
        +}
        +
        +// Overloads for ::wstring and ::std::wstring.
        +#if GTEST_HAS_GLOBAL_WSTRING
        +GTEST_API_ void PrintWideStringTo(const ::wstring&s, ::std::ostream* os);
        +inline void PrintTo(const ::wstring& s, ::std::ostream* os) {
        +  PrintWideStringTo(s, os);
        +}
        +#endif  // GTEST_HAS_GLOBAL_WSTRING
        +
        +#if GTEST_HAS_STD_WSTRING
        +GTEST_API_ void PrintWideStringTo(const ::std::wstring&s, ::std::ostream* os);
        +inline void PrintTo(const ::std::wstring& s, ::std::ostream* os) {
        +  PrintWideStringTo(s, os);
        +}
        +#endif  // GTEST_HAS_STD_WSTRING
        +
        +#if GTEST_HAS_TR1_TUPLE || GTEST_HAS_STD_TUPLE_
        +// Helper function for printing a tuple.  T must be instantiated with
        +// a tuple type.
        +template <typename T>
        +void PrintTupleTo(const T& t, ::std::ostream* os);
        +#endif  // GTEST_HAS_TR1_TUPLE || GTEST_HAS_STD_TUPLE_
        +
        +#if GTEST_HAS_TR1_TUPLE
        +// Overload for ::std::tr1::tuple.  Needed for printing function arguments,
        +// which are packed as tuples.
        +
        +// Overloaded PrintTo() for tuples of various arities.  We support
        +// tuples of up-to 10 fields.  The following implementation works
        +// regardless of whether tr1::tuple is implemented using the
        +// non-standard variadic template feature or not.
        +
        +inline void PrintTo(const ::std::tr1::tuple<>& t, ::std::ostream* os) {
        +  PrintTupleTo(t, os);
        +}
        +
        +template <typename T1>
        +void PrintTo(const ::std::tr1::tuple<T1>& t, ::std::ostream* os) {
        +  PrintTupleTo(t, os);
        +}
        +
        +template <typename T1, typename T2>
        +void PrintTo(const ::std::tr1::tuple<T1, T2>& t, ::std::ostream* os) {
        +  PrintTupleTo(t, os);
        +}
        +
        +template <typename T1, typename T2, typename T3>
        +void PrintTo(const ::std::tr1::tuple<T1, T2, T3>& t, ::std::ostream* os) {
        +  PrintTupleTo(t, os);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4>
        +void PrintTo(const ::std::tr1::tuple<T1, T2, T3, T4>& t, ::std::ostream* os) {
        +  PrintTupleTo(t, os);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5>
        +void PrintTo(const ::std::tr1::tuple<T1, T2, T3, T4, T5>& t,
        +             ::std::ostream* os) {
        +  PrintTupleTo(t, os);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +          typename T6>
        +void PrintTo(const ::std::tr1::tuple<T1, T2, T3, T4, T5, T6>& t,
        +             ::std::ostream* os) {
        +  PrintTupleTo(t, os);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +          typename T6, typename T7>
        +void PrintTo(const ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7>& t,
        +             ::std::ostream* os) {
        +  PrintTupleTo(t, os);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +          typename T6, typename T7, typename T8>
        +void PrintTo(const ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7, T8>& t,
        +             ::std::ostream* os) {
        +  PrintTupleTo(t, os);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +          typename T6, typename T7, typename T8, typename T9>
        +void PrintTo(const ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9>& t,
        +             ::std::ostream* os) {
        +  PrintTupleTo(t, os);
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +          typename T6, typename T7, typename T8, typename T9, typename T10>
        +void PrintTo(
        +    const ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>& t,
        +    ::std::ostream* os) {
        +  PrintTupleTo(t, os);
        +}
        +#endif  // GTEST_HAS_TR1_TUPLE
        +
        +#if GTEST_HAS_STD_TUPLE_
        +template <typename... Types>
        +void PrintTo(const ::std::tuple<Types...>& t, ::std::ostream* os) {
        +  PrintTupleTo(t, os);
        +}
        +#endif  // GTEST_HAS_STD_TUPLE_
        +
        +// Overload for std::pair.
        +template <typename T1, typename T2>
        +void PrintTo(const ::std::pair<T1, T2>& value, ::std::ostream* os) {
        +  *os << '(';
        +  // We cannot use UniversalPrint(value.first, os) here, as T1 may be
        +  // a reference type.  The same for printing value.second.
        +  UniversalPrinter<T1>::Print(value.first, os);
        +  *os << ", ";
        +  UniversalPrinter<T2>::Print(value.second, os);
        +  *os << ')';
        +}
        +
        +// Implements printing a non-reference type T by letting the compiler
        +// pick the right overload of PrintTo() for T.
        +template <typename T>
        +class UniversalPrinter {
        + public:
        +  // MSVC warns about adding const to a function type, so we want to
        +  // disable the warning.
        +  GTEST_DISABLE_MSC_WARNINGS_PUSH_(4180)
        +
        +  // Note: we deliberately don't call this PrintTo(), as that name
        +  // conflicts with ::testing::internal::PrintTo in the body of the
        +  // function.
        +  static void Print(const T& value, ::std::ostream* os) {
        +    // By default, ::testing::internal::PrintTo() is used for printing
        +    // the value.
        +    //
        +    // Thanks to Koenig look-up, if T is a class and has its own
        +    // PrintTo() function defined in its namespace, that function will
        +    // be visible here.  Since it is more specific than the generic ones
        +    // in ::testing::internal, it will be picked by the compiler in the
        +    // following statement - exactly what we want.
        +    PrintTo(value, os);
        +  }
        +
        +  GTEST_DISABLE_MSC_WARNINGS_POP_()
        +};
        +
        +// UniversalPrintArray(begin, len, os) prints an array of 'len'
        +// elements, starting at address 'begin'.
        +template <typename T>
        +void UniversalPrintArray(const T* begin, size_t len, ::std::ostream* os) {
        +  if (len == 0) {
        +    *os << "{}";
        +  } else {
        +    *os << "{ ";
        +    const size_t kThreshold = 18;
        +    const size_t kChunkSize = 8;
        +    // If the array has more than kThreshold elements, we'll have to
        +    // omit some details by printing only the first and the last
        +    // kChunkSize elements.
        +    // TODO(wan@google.com): let the user control the threshold using a flag.
        +    if (len <= kThreshold) {
        +      PrintRawArrayTo(begin, len, os);
        +    } else {
        +      PrintRawArrayTo(begin, kChunkSize, os);
        +      *os << ", ..., ";
        +      PrintRawArrayTo(begin + len - kChunkSize, kChunkSize, os);
        +    }
        +    *os << " }";
        +  }
        +}
        +// This overload prints a (const) char array compactly.
        +GTEST_API_ void UniversalPrintArray(
        +    const char* begin, size_t len, ::std::ostream* os);
        +
        +// This overload prints a (const) wchar_t array compactly.
        +GTEST_API_ void UniversalPrintArray(
        +    const wchar_t* begin, size_t len, ::std::ostream* os);
        +
        +// Implements printing an array type T[N].
        +template <typename T, size_t N>
        +class UniversalPrinter<T[N]> {
        + public:
        +  // Prints the given array, omitting some elements when there are too
        +  // many.
        +  static void Print(const T (&a)[N], ::std::ostream* os) {
        +    UniversalPrintArray(a, N, os);
        +  }
        +};
        +
        +// Implements printing a reference type T&.
        +template <typename T>
        +class UniversalPrinter<T&> {
        + public:
        +  // MSVC warns about adding const to a function type, so we want to
        +  // disable the warning.
        +  GTEST_DISABLE_MSC_WARNINGS_PUSH_(4180)
        +
        +  static void Print(const T& value, ::std::ostream* os) {
        +    // Prints the address of the value.  We use reinterpret_cast here
        +    // as static_cast doesn't compile when T is a function type.
        +    *os << "@" << reinterpret_cast<const void*>(&value) << " ";
        +
        +    // Then prints the value itself.
        +    UniversalPrint(value, os);
        +  }
        +
        +  GTEST_DISABLE_MSC_WARNINGS_POP_()
        +};
        +
        +// Prints a value tersely: for a reference type, the referenced value
        +// (but not the address) is printed; for a (const) char pointer, the
        +// NUL-terminated string (but not the pointer) is printed.
        +
        +template <typename T>
        +class UniversalTersePrinter {
        + public:
        +  static void Print(const T& value, ::std::ostream* os) {
        +    UniversalPrint(value, os);
        +  }
        +};
        +template <typename T>
        +class UniversalTersePrinter<T&> {
        + public:
        +  static void Print(const T& value, ::std::ostream* os) {
        +    UniversalPrint(value, os);
        +  }
        +};
        +template <typename T, size_t N>
        +class UniversalTersePrinter<T[N]> {
        + public:
        +  static void Print(const T (&value)[N], ::std::ostream* os) {
        +    UniversalPrinter<T[N]>::Print(value, os);
        +  }
        +};
        +template <>
        +class UniversalTersePrinter<const char*> {
        + public:
        +  static void Print(const char* str, ::std::ostream* os) {
        +    if (str == NULL) {
        +      *os << "NULL";
        +    } else {
        +      UniversalPrint(string(str), os);
        +    }
        +  }
        +};
        +template <>
        +class UniversalTersePrinter<char*> {
        + public:
        +  static void Print(char* str, ::std::ostream* os) {
        +    UniversalTersePrinter<const char*>::Print(str, os);
        +  }
        +};
        +
        +#if GTEST_HAS_STD_WSTRING
        +template <>
        +class UniversalTersePrinter<const wchar_t*> {
        + public:
        +  static void Print(const wchar_t* str, ::std::ostream* os) {
        +    if (str == NULL) {
        +      *os << "NULL";
        +    } else {
        +      UniversalPrint(::std::wstring(str), os);
        +    }
        +  }
        +};
        +#endif
        +
        +template <>
        +class UniversalTersePrinter<wchar_t*> {
        + public:
        +  static void Print(wchar_t* str, ::std::ostream* os) {
        +    UniversalTersePrinter<const wchar_t*>::Print(str, os);
        +  }
        +};
        +
        +template <typename T>
        +void UniversalTersePrint(const T& value, ::std::ostream* os) {
        +  UniversalTersePrinter<T>::Print(value, os);
        +}
        +
        +// Prints a value using the type inferred by the compiler.  The
        +// difference between this and UniversalTersePrint() is that for a
        +// (const) char pointer, this prints both the pointer and the
        +// NUL-terminated string.
        +template <typename T>
        +void UniversalPrint(const T& value, ::std::ostream* os) {
        +  // A workarond for the bug in VC++ 7.1 that prevents us from instantiating
        +  // UniversalPrinter with T directly.
        +  typedef T T1;
        +  UniversalPrinter<T1>::Print(value, os);
        +}
        +
        +typedef ::std::vector<string> Strings;
        +
        +// TuplePolicy<TupleT> must provide:
        +// - tuple_size
        +//     size of tuple TupleT.
        +// - get<size_t I>(const TupleT& t)
        +//     static function extracting element I of tuple TupleT.
        +// - tuple_element<size_t I>::type
        +//     type of element I of tuple TupleT.
        +template <typename TupleT>
        +struct TuplePolicy;
        +
        +#if GTEST_HAS_TR1_TUPLE
        +template <typename TupleT>
        +struct TuplePolicy {
        +  typedef TupleT Tuple;
        +  static const size_t tuple_size = ::std::tr1::tuple_size<Tuple>::value;
        +
        +  template <size_t I>
        +  struct tuple_element : ::std::tr1::tuple_element<I, Tuple> {};
        +
        +  template <size_t I>
        +  static typename AddReference<
        +      const typename ::std::tr1::tuple_element<I, Tuple>::type>::type get(
        +      const Tuple& tuple) {
        +    return ::std::tr1::get<I>(tuple);
        +  }
        +};
        +template <typename TupleT>
        +const size_t TuplePolicy<TupleT>::tuple_size;
        +#endif  // GTEST_HAS_TR1_TUPLE
        +
        +#if GTEST_HAS_STD_TUPLE_
        +template <typename... Types>
        +struct TuplePolicy< ::std::tuple<Types...> > {
        +  typedef ::std::tuple<Types...> Tuple;
        +  static const size_t tuple_size = ::std::tuple_size<Tuple>::value;
        +
        +  template <size_t I>
        +  struct tuple_element : ::std::tuple_element<I, Tuple> {};
        +
        +  template <size_t I>
        +  static const typename ::std::tuple_element<I, Tuple>::type& get(
        +      const Tuple& tuple) {
        +    return ::std::get<I>(tuple);
        +  }
        +};
        +template <typename... Types>
        +const size_t TuplePolicy< ::std::tuple<Types...> >::tuple_size;
        +#endif  // GTEST_HAS_STD_TUPLE_
        +
        +#if GTEST_HAS_TR1_TUPLE || GTEST_HAS_STD_TUPLE_
        +// This helper template allows PrintTo() for tuples and
        +// UniversalTersePrintTupleFieldsToStrings() to be defined by
        +// induction on the number of tuple fields.  The idea is that
        +// TuplePrefixPrinter<N>::PrintPrefixTo(t, os) prints the first N
        +// fields in tuple t, and can be defined in terms of
        +// TuplePrefixPrinter<N - 1>.
        +//
        +// The inductive case.
        +template <size_t N>
        +struct TuplePrefixPrinter {
        +  // Prints the first N fields of a tuple.
        +  template <typename Tuple>
        +  static void PrintPrefixTo(const Tuple& t, ::std::ostream* os) {
        +    TuplePrefixPrinter<N - 1>::PrintPrefixTo(t, os);
        +    GTEST_INTENTIONAL_CONST_COND_PUSH_()
        +    if (N > 1) {
        +    GTEST_INTENTIONAL_CONST_COND_POP_()
        +      *os << ", ";
        +    }
        +    UniversalPrinter<
        +        typename TuplePolicy<Tuple>::template tuple_element<N - 1>::type>
        +        ::Print(TuplePolicy<Tuple>::template get<N - 1>(t), os);
        +  }
        +
        +  // Tersely prints the first N fields of a tuple to a string vector,
        +  // one element for each field.
        +  template <typename Tuple>
        +  static void TersePrintPrefixToStrings(const Tuple& t, Strings* strings) {
        +    TuplePrefixPrinter<N - 1>::TersePrintPrefixToStrings(t, strings);
        +    ::std::stringstream ss;
        +    UniversalTersePrint(TuplePolicy<Tuple>::template get<N - 1>(t), &ss);
        +    strings->push_back(ss.str());
        +  }
        +};
        +
        +// Base case.
        +template <>
        +struct TuplePrefixPrinter<0> {
        +  template <typename Tuple>
        +  static void PrintPrefixTo(const Tuple&, ::std::ostream*) {}
        +
        +  template <typename Tuple>
        +  static void TersePrintPrefixToStrings(const Tuple&, Strings*) {}
        +};
        +
        +// Helper function for printing a tuple.
        +// Tuple must be either std::tr1::tuple or std::tuple type.
        +template <typename Tuple>
        +void PrintTupleTo(const Tuple& t, ::std::ostream* os) {
        +  *os << "(";
        +  TuplePrefixPrinter<TuplePolicy<Tuple>::tuple_size>::PrintPrefixTo(t, os);
        +  *os << ")";
        +}
        +
        +// Prints the fields of a tuple tersely to a string vector, one
        +// element for each field.  See the comment before
        +// UniversalTersePrint() for how we define "tersely".
        +template <typename Tuple>
        +Strings UniversalTersePrintTupleFieldsToStrings(const Tuple& value) {
        +  Strings result;
        +  TuplePrefixPrinter<TuplePolicy<Tuple>::tuple_size>::
        +      TersePrintPrefixToStrings(value, &result);
        +  return result;
        +}
        +#endif  // GTEST_HAS_TR1_TUPLE || GTEST_HAS_STD_TUPLE_
        +
        +}  // namespace internal
        +
        +template <typename T>
        +::std::string PrintToString(const T& value) {
        +  ::std::stringstream ss;
        +  internal::UniversalTersePrinter<T>::Print(value, &ss);
        +  return ss.str();
        +}
        +
        +}  // namespace testing
        +
        +// Include any custom printer added by the local installation.
        +// We must include this header at the end to make sure it can use the
        +// declarations from this file.
        +#include "gtest/internal/custom/gtest-printers.h"
        +
        +#endif  // GTEST_INCLUDE_GTEST_GTEST_PRINTERS_H_
        diff --git a/lib/ann/fann/lib/googletest/include/gtest/gtest-spi.h b/lib/ann/fann/lib/googletest/include/gtest/gtest-spi.h
        new file mode 100644
        index 0000000..f63fa9a
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/include/gtest/gtest-spi.h
        @@ -0,0 +1,232 @@
        +// Copyright 2007, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +//
        +// Utilities for testing Google Test itself and code that uses Google Test
        +// (e.g. frameworks built on top of Google Test).
        +
        +#ifndef GTEST_INCLUDE_GTEST_GTEST_SPI_H_
        +#define GTEST_INCLUDE_GTEST_GTEST_SPI_H_
        +
        +#include "gtest/gtest.h"
        +
        +namespace testing {
        +
        +// This helper class can be used to mock out Google Test failure reporting
        +// so that we can test Google Test or code that builds on Google Test.
        +//
        +// An object of this class appends a TestPartResult object to the
        +// TestPartResultArray object given in the constructor whenever a Google Test
        +// failure is reported. It can either intercept only failures that are
        +// generated in the same thread that created this object or it can intercept
        +// all generated failures. The scope of this mock object can be controlled with
        +// the second argument to the two arguments constructor.
        +class GTEST_API_ ScopedFakeTestPartResultReporter
        +    : public TestPartResultReporterInterface {
        + public:
        +  // The two possible mocking modes of this object.
        +  enum InterceptMode {
        +    INTERCEPT_ONLY_CURRENT_THREAD,  // Intercepts only thread local failures.
        +    INTERCEPT_ALL_THREADS           // Intercepts all failures.
        +  };
        +
        +  // The c'tor sets this object as the test part result reporter used
        +  // by Google Test.  The 'result' parameter specifies where to report the
        +  // results. This reporter will only catch failures generated in the current
        +  // thread. DEPRECATED
        +  explicit ScopedFakeTestPartResultReporter(TestPartResultArray* result);
        +
        +  // Same as above, but you can choose the interception scope of this object.
        +  ScopedFakeTestPartResultReporter(InterceptMode intercept_mode,
        +                                   TestPartResultArray* result);
        +
        +  // The d'tor restores the previous test part result reporter.
        +  virtual ~ScopedFakeTestPartResultReporter();
        +
        +  // Appends the TestPartResult object to the TestPartResultArray
        +  // received in the constructor.
        +  //
        +  // This method is from the TestPartResultReporterInterface
        +  // interface.
        +  virtual void ReportTestPartResult(const TestPartResult& result);
        + private:
        +  void Init();
        +
        +  const InterceptMode intercept_mode_;
        +  TestPartResultReporterInterface* old_reporter_;
        +  TestPartResultArray* const result_;
        +
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(ScopedFakeTestPartResultReporter);
        +};
        +
        +namespace internal {
        +
        +// A helper class for implementing EXPECT_FATAL_FAILURE() and
        +// EXPECT_NONFATAL_FAILURE().  Its destructor verifies that the given
        +// TestPartResultArray contains exactly one failure that has the given
        +// type and contains the given substring.  If that's not the case, a
        +// non-fatal failure will be generated.
        +class GTEST_API_ SingleFailureChecker {
        + public:
        +  // The constructor remembers the arguments.
        +  SingleFailureChecker(const TestPartResultArray* results,
        +                       TestPartResult::Type type,
        +                       const string& substr);
        +  ~SingleFailureChecker();
        + private:
        +  const TestPartResultArray* const results_;
        +  const TestPartResult::Type type_;
        +  const string substr_;
        +
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(SingleFailureChecker);
        +};
        +
        +}  // namespace internal
        +
        +}  // namespace testing
        +
        +// A set of macros for testing Google Test assertions or code that's expected
        +// to generate Google Test fatal failures.  It verifies that the given
        +// statement will cause exactly one fatal Google Test failure with 'substr'
        +// being part of the failure message.
        +//
        +// There are two different versions of this macro. EXPECT_FATAL_FAILURE only
        +// affects and considers failures generated in the current thread and
        +// EXPECT_FATAL_FAILURE_ON_ALL_THREADS does the same but for all threads.
        +//
        +// The verification of the assertion is done correctly even when the statement
        +// throws an exception or aborts the current function.
        +//
        +// Known restrictions:
        +//   - 'statement' cannot reference local non-static variables or
        +//     non-static members of the current object.
        +//   - 'statement' cannot return a value.
        +//   - You cannot stream a failure message to this macro.
        +//
        +// Note that even though the implementations of the following two
        +// macros are much alike, we cannot refactor them to use a common
        +// helper macro, due to some peculiarity in how the preprocessor
        +// works.  The AcceptsMacroThatExpandsToUnprotectedComma test in
        +// gtest_unittest.cc will fail to compile if we do that.
        +#define EXPECT_FATAL_FAILURE(statement, substr) \
        +  do { \
        +    class GTestExpectFatalFailureHelper {\
        +     public:\
        +      static void Execute() { statement; }\
        +    };\
        +    ::testing::TestPartResultArray gtest_failures;\
        +    ::testing::internal::SingleFailureChecker gtest_checker(\
        +        &gtest_failures, ::testing::TestPartResult::kFatalFailure, (substr));\
        +    {\
        +      ::testing::ScopedFakeTestPartResultReporter gtest_reporter(\
        +          ::testing::ScopedFakeTestPartResultReporter:: \
        +          INTERCEPT_ONLY_CURRENT_THREAD, &gtest_failures);\
        +      GTestExpectFatalFailureHelper::Execute();\
        +    }\
        +  } while (::testing::internal::AlwaysFalse())
        +
        +#define EXPECT_FATAL_FAILURE_ON_ALL_THREADS(statement, substr) \
        +  do { \
        +    class GTestExpectFatalFailureHelper {\
        +     public:\
        +      static void Execute() { statement; }\
        +    };\
        +    ::testing::TestPartResultArray gtest_failures;\
        +    ::testing::internal::SingleFailureChecker gtest_checker(\
        +        &gtest_failures, ::testing::TestPartResult::kFatalFailure, (substr));\
        +    {\
        +      ::testing::ScopedFakeTestPartResultReporter gtest_reporter(\
        +          ::testing::ScopedFakeTestPartResultReporter:: \
        +          INTERCEPT_ALL_THREADS, &gtest_failures);\
        +      GTestExpectFatalFailureHelper::Execute();\
        +    }\
        +  } while (::testing::internal::AlwaysFalse())
        +
        +// A macro for testing Google Test assertions or code that's expected to
        +// generate Google Test non-fatal failures.  It asserts that the given
        +// statement will cause exactly one non-fatal Google Test failure with 'substr'
        +// being part of the failure message.
        +//
        +// There are two different versions of this macro. EXPECT_NONFATAL_FAILURE only
        +// affects and considers failures generated in the current thread and
        +// EXPECT_NONFATAL_FAILURE_ON_ALL_THREADS does the same but for all threads.
        +//
        +// 'statement' is allowed to reference local variables and members of
        +// the current object.
        +//
        +// The verification of the assertion is done correctly even when the statement
        +// throws an exception or aborts the current function.
        +//
        +// Known restrictions:
        +//   - You cannot stream a failure message to this macro.
        +//
        +// Note that even though the implementations of the following two
        +// macros are much alike, we cannot refactor them to use a common
        +// helper macro, due to some peculiarity in how the preprocessor
        +// works.  If we do that, the code won't compile when the user gives
        +// EXPECT_NONFATAL_FAILURE() a statement that contains a macro that
        +// expands to code containing an unprotected comma.  The
        +// AcceptsMacroThatExpandsToUnprotectedComma test in gtest_unittest.cc
        +// catches that.
        +//
        +// For the same reason, we have to write
        +//   if (::testing::internal::AlwaysTrue()) { statement; }
        +// instead of
        +//   GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement)
        +// to avoid an MSVC warning on unreachable code.
        +#define EXPECT_NONFATAL_FAILURE(statement, substr) \
        +  do {\
        +    ::testing::TestPartResultArray gtest_failures;\
        +    ::testing::internal::SingleFailureChecker gtest_checker(\
        +        &gtest_failures, ::testing::TestPartResult::kNonFatalFailure, \
        +        (substr));\
        +    {\
        +      ::testing::ScopedFakeTestPartResultReporter gtest_reporter(\
        +          ::testing::ScopedFakeTestPartResultReporter:: \
        +          INTERCEPT_ONLY_CURRENT_THREAD, &gtest_failures);\
        +      if (::testing::internal::AlwaysTrue()) { statement; }\
        +    }\
        +  } while (::testing::internal::AlwaysFalse())
        +
        +#define EXPECT_NONFATAL_FAILURE_ON_ALL_THREADS(statement, substr) \
        +  do {\
        +    ::testing::TestPartResultArray gtest_failures;\
        +    ::testing::internal::SingleFailureChecker gtest_checker(\
        +        &gtest_failures, ::testing::TestPartResult::kNonFatalFailure, \
        +        (substr));\
        +    {\
        +      ::testing::ScopedFakeTestPartResultReporter gtest_reporter(\
        +          ::testing::ScopedFakeTestPartResultReporter::INTERCEPT_ALL_THREADS, \
        +          &gtest_failures);\
        +      if (::testing::internal::AlwaysTrue()) { statement; }\
        +    }\
        +  } while (::testing::internal::AlwaysFalse())
        +
        +#endif  // GTEST_INCLUDE_GTEST_GTEST_SPI_H_
        diff --git a/lib/ann/fann/lib/googletest/include/gtest/gtest-test-part.h b/lib/ann/fann/lib/googletest/include/gtest/gtest-test-part.h
        new file mode 100644
        index 0000000..77eb844
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/include/gtest/gtest-test-part.h
        @@ -0,0 +1,179 @@
        +// Copyright 2008, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: mheule@google.com (Markus Heule)
        +//
        +
        +#ifndef GTEST_INCLUDE_GTEST_GTEST_TEST_PART_H_
        +#define GTEST_INCLUDE_GTEST_GTEST_TEST_PART_H_
        +
        +#include <iosfwd>
        +#include <vector>
        +#include "gtest/internal/gtest-internal.h"
        +#include "gtest/internal/gtest-string.h"
        +
        +namespace testing {
        +
        +// A copyable object representing the result of a test part (i.e. an
        +// assertion or an explicit FAIL(), ADD_FAILURE(), or SUCCESS()).
        +//
        +// Don't inherit from TestPartResult as its destructor is not virtual.
        +class GTEST_API_ TestPartResult {
        + public:
        +  // The possible outcomes of a test part (i.e. an assertion or an
        +  // explicit SUCCEED(), FAIL(), or ADD_FAILURE()).
        +  enum Type {
        +    kSuccess,          // Succeeded.
        +    kNonFatalFailure,  // Failed but the test can continue.
        +    kFatalFailure      // Failed and the test should be terminated.
        +  };
        +
        +  // C'tor.  TestPartResult does NOT have a default constructor.
        +  // Always use this constructor (with parameters) to create a
        +  // TestPartResult object.
        +  TestPartResult(Type a_type,
        +                 const char* a_file_name,
        +                 int a_line_number,
        +                 const char* a_message)
        +      : type_(a_type),
        +        file_name_(a_file_name == NULL ? "" : a_file_name),
        +        line_number_(a_line_number),
        +        summary_(ExtractSummary(a_message)),
        +        message_(a_message) {
        +  }
        +
        +  // Gets the outcome of the test part.
        +  Type type() const { return type_; }
        +
        +  // Gets the name of the source file where the test part took place, or
        +  // NULL if it's unknown.
        +  const char* file_name() const {
        +    return file_name_.empty() ? NULL : file_name_.c_str();
        +  }
        +
        +  // Gets the line in the source file where the test part took place,
        +  // or -1 if it's unknown.
        +  int line_number() const { return line_number_; }
        +
        +  // Gets the summary of the failure message.
        +  const char* summary() const { return summary_.c_str(); }
        +
        +  // Gets the message associated with the test part.
        +  const char* message() const { return message_.c_str(); }
        +
        +  // Returns true iff the test part passed.
        +  bool passed() const { return type_ == kSuccess; }
        +
        +  // Returns true iff the test part failed.
        +  bool failed() const { return type_ != kSuccess; }
        +
        +  // Returns true iff the test part non-fatally failed.
        +  bool nonfatally_failed() const { return type_ == kNonFatalFailure; }
        +
        +  // Returns true iff the test part fatally failed.
        +  bool fatally_failed() const { return type_ == kFatalFailure; }
        +
        + private:
        +  Type type_;
        +
        +  // Gets the summary of the failure message by omitting the stack
        +  // trace in it.
        +  static std::string ExtractSummary(const char* message);
        +
        +  // The name of the source file where the test part took place, or
        +  // "" if the source file is unknown.
        +  std::string file_name_;
        +  // The line in the source file where the test part took place, or -1
        +  // if the line number is unknown.
        +  int line_number_;
        +  std::string summary_;  // The test failure summary.
        +  std::string message_;  // The test failure message.
        +};
        +
        +// Prints a TestPartResult object.
        +std::ostream& operator<<(std::ostream& os, const TestPartResult& result);
        +
        +// An array of TestPartResult objects.
        +//
        +// Don't inherit from TestPartResultArray as its destructor is not
        +// virtual.
        +class GTEST_API_ TestPartResultArray {
        + public:
        +  TestPartResultArray() {}
        +
        +  // Appends the given TestPartResult to the array.
        +  void Append(const TestPartResult& result);
        +
        +  // Returns the TestPartResult at the given index (0-based).
        +  const TestPartResult& GetTestPartResult(int index) const;
        +
        +  // Returns the number of TestPartResult objects in the array.
        +  int size() const;
        +
        + private:
        +  std::vector<TestPartResult> array_;
        +
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(TestPartResultArray);
        +};
        +
        +// This interface knows how to report a test part result.
        +class TestPartResultReporterInterface {
        + public:
        +  virtual ~TestPartResultReporterInterface() {}
        +
        +  virtual void ReportTestPartResult(const TestPartResult& result) = 0;
        +};
        +
        +namespace internal {
        +
        +// This helper class is used by {ASSERT|EXPECT}_NO_FATAL_FAILURE to check if a
        +// statement generates new fatal failures. To do so it registers itself as the
        +// current test part result reporter. Besides checking if fatal failures were
        +// reported, it only delegates the reporting to the former result reporter.
        +// The original result reporter is restored in the destructor.
        +// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
        +class GTEST_API_ HasNewFatalFailureHelper
        +    : public TestPartResultReporterInterface {
        + public:
        +  HasNewFatalFailureHelper();
        +  virtual ~HasNewFatalFailureHelper();
        +  virtual void ReportTestPartResult(const TestPartResult& result);
        +  bool has_new_fatal_failure() const { return has_new_fatal_failure_; }
        + private:
        +  bool has_new_fatal_failure_;
        +  TestPartResultReporterInterface* original_reporter_;
        +
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(HasNewFatalFailureHelper);
        +};
        +
        +}  // namespace internal
        +
        +}  // namespace testing
        +
        +#endif  // GTEST_INCLUDE_GTEST_GTEST_TEST_PART_H_
        diff --git a/lib/ann/fann/lib/googletest/include/gtest/gtest-typed-test.h b/lib/ann/fann/lib/googletest/include/gtest/gtest-typed-test.h
        new file mode 100644
        index 0000000..5f69d56
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/include/gtest/gtest-typed-test.h
        @@ -0,0 +1,263 @@
        +// Copyright 2008 Google Inc.
        +// All Rights Reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +#ifndef GTEST_INCLUDE_GTEST_GTEST_TYPED_TEST_H_
        +#define GTEST_INCLUDE_GTEST_GTEST_TYPED_TEST_H_
        +
        +// This header implements typed tests and type-parameterized tests.
        +
        +// Typed (aka type-driven) tests repeat the same test for types in a
        +// list.  You must know which types you want to test with when writing
        +// typed tests. Here's how you do it:
        +
        +#if 0
        +
        +// First, define a fixture class template.  It should be parameterized
        +// by a type.  Remember to derive it from testing::Test.
        +template <typename T>
        +class FooTest : public testing::Test {
        + public:
        +  ...
        +  typedef std::list<T> List;
        +  static T shared_;
        +  T value_;
        +};
        +
        +// Next, associate a list of types with the test case, which will be
        +// repeated for each type in the list.  The typedef is necessary for
        +// the macro to parse correctly.
        +typedef testing::Types<char, int, unsigned int> MyTypes;
        +TYPED_TEST_CASE(FooTest, MyTypes);
        +
        +// If the type list contains only one type, you can write that type
        +// directly without Types<...>:
        +//   TYPED_TEST_CASE(FooTest, int);
        +
        +// Then, use TYPED_TEST() instead of TEST_F() to define as many typed
        +// tests for this test case as you want.
        +TYPED_TEST(FooTest, DoesBlah) {
        +  // Inside a test, refer to TypeParam to get the type parameter.
        +  // Since we are inside a derived class template, C++ requires use to
        +  // visit the members of FooTest via 'this'.
        +  TypeParam n = this->value_;
        +
        +  // To visit static members of the fixture, add the TestFixture::
        +  // prefix.
        +  n += TestFixture::shared_;
        +
        +  // To refer to typedefs in the fixture, add the "typename
        +  // TestFixture::" prefix.
        +  typename TestFixture::List values;
        +  values.push_back(n);
        +  ...
        +}
        +
        +TYPED_TEST(FooTest, HasPropertyA) { ... }
        +
        +#endif  // 0
        +
        +// Type-parameterized tests are abstract test patterns parameterized
        +// by a type.  Compared with typed tests, type-parameterized tests
        +// allow you to define the test pattern without knowing what the type
        +// parameters are.  The defined pattern can be instantiated with
        +// different types any number of times, in any number of translation
        +// units.
        +//
        +// If you are designing an interface or concept, you can define a
        +// suite of type-parameterized tests to verify properties that any
        +// valid implementation of the interface/concept should have.  Then,
        +// each implementation can easily instantiate the test suite to verify
        +// that it conforms to the requirements, without having to write
        +// similar tests repeatedly.  Here's an example:
        +
        +#if 0
        +
        +// First, define a fixture class template.  It should be parameterized
        +// by a type.  Remember to derive it from testing::Test.
        +template <typename T>
        +class FooTest : public testing::Test {
        +  ...
        +};
        +
        +// Next, declare that you will define a type-parameterized test case
        +// (the _P suffix is for "parameterized" or "pattern", whichever you
        +// prefer):
        +TYPED_TEST_CASE_P(FooTest);
        +
        +// Then, use TYPED_TEST_P() to define as many type-parameterized tests
        +// for this type-parameterized test case as you want.
        +TYPED_TEST_P(FooTest, DoesBlah) {
        +  // Inside a test, refer to TypeParam to get the type parameter.
        +  TypeParam n = 0;
        +  ...
        +}
        +
        +TYPED_TEST_P(FooTest, HasPropertyA) { ... }
        +
        +// Now the tricky part: you need to register all test patterns before
        +// you can instantiate them.  The first argument of the macro is the
        +// test case name; the rest are the names of the tests in this test
        +// case.
        +REGISTER_TYPED_TEST_CASE_P(FooTest,
        +                           DoesBlah, HasPropertyA);
        +
        +// Finally, you are free to instantiate the pattern with the types you
        +// want.  If you put the above code in a header file, you can #include
        +// it in multiple C++ source files and instantiate it multiple times.
        +//
        +// To distinguish different instances of the pattern, the first
        +// argument to the INSTANTIATE_* macro is a prefix that will be added
        +// to the actual test case name.  Remember to pick unique prefixes for
        +// different instances.
        +typedef testing::Types<char, int, unsigned int> MyTypes;
        +INSTANTIATE_TYPED_TEST_CASE_P(My, FooTest, MyTypes);
        +
        +// If the type list contains only one type, you can write that type
        +// directly without Types<...>:
        +//   INSTANTIATE_TYPED_TEST_CASE_P(My, FooTest, int);
        +
        +#endif  // 0
        +
        +#include "gtest/internal/gtest-port.h"
        +#include "gtest/internal/gtest-type-util.h"
        +
        +// Implements typed tests.
        +
        +#if GTEST_HAS_TYPED_TEST
        +
        +// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE.
        +//
        +// Expands to the name of the typedef for the type parameters of the
        +// given test case.
        +# define GTEST_TYPE_PARAMS_(TestCaseName) gtest_type_params_##TestCaseName##_
        +
        +// The 'Types' template argument below must have spaces around it
        +// since some compilers may choke on '>>' when passing a template
        +// instance (e.g. Types<int>)
        +# define TYPED_TEST_CASE(CaseName, Types) \
        +  typedef ::testing::internal::TypeList< Types >::type \
        +      GTEST_TYPE_PARAMS_(CaseName)
        +
        +# define TYPED_TEST(CaseName, TestName) \
        +  template <typename gtest_TypeParam_> \
        +  class GTEST_TEST_CLASS_NAME_(CaseName, TestName) \
        +      : public CaseName<gtest_TypeParam_> { \
        +   private: \
        +    typedef CaseName<gtest_TypeParam_> TestFixture; \
        +    typedef gtest_TypeParam_ TypeParam; \
        +    virtual void TestBody(); \
        +  }; \
        +  bool gtest_##CaseName##_##TestName##_registered_ GTEST_ATTRIBUTE_UNUSED_ = \
        +      ::testing::internal::TypeParameterizedTest< \
        +          CaseName, \
        +          ::testing::internal::TemplateSel< \
        +              GTEST_TEST_CLASS_NAME_(CaseName, TestName)>, \
        +          GTEST_TYPE_PARAMS_(CaseName)>::Register(\
        +              "", ::testing::internal::CodeLocation(__FILE__, __LINE__), \
        +              #CaseName, #TestName, 0); \
        +  template <typename gtest_TypeParam_> \
        +  void GTEST_TEST_CLASS_NAME_(CaseName, TestName)<gtest_TypeParam_>::TestBody()
        +
        +#endif  // GTEST_HAS_TYPED_TEST
        +
        +// Implements type-parameterized tests.
        +
        +#if GTEST_HAS_TYPED_TEST_P
        +
        +// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE.
        +//
        +// Expands to the namespace name that the type-parameterized tests for
        +// the given type-parameterized test case are defined in.  The exact
        +// name of the namespace is subject to change without notice.
        +# define GTEST_CASE_NAMESPACE_(TestCaseName) \
        +  gtest_case_##TestCaseName##_
        +
        +// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE.
        +//
        +// Expands to the name of the variable used to remember the names of
        +// the defined tests in the given test case.
        +# define GTEST_TYPED_TEST_CASE_P_STATE_(TestCaseName) \
        +  gtest_typed_test_case_p_state_##TestCaseName##_
        +
        +// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE DIRECTLY.
        +//
        +// Expands to the name of the variable used to remember the names of
        +// the registered tests in the given test case.
        +# define GTEST_REGISTERED_TEST_NAMES_(TestCaseName) \
        +  gtest_registered_test_names_##TestCaseName##_
        +
        +// The variables defined in the type-parameterized test macros are
        +// static as typically these macros are used in a .h file that can be
        +// #included in multiple translation units linked together.
        +# define TYPED_TEST_CASE_P(CaseName) \
        +  static ::testing::internal::TypedTestCasePState \
        +      GTEST_TYPED_TEST_CASE_P_STATE_(CaseName)
        +
        +# define TYPED_TEST_P(CaseName, TestName) \
        +  namespace GTEST_CASE_NAMESPACE_(CaseName) { \
        +  template <typename gtest_TypeParam_> \
        +  class TestName : public CaseName<gtest_TypeParam_> { \
        +   private: \
        +    typedef CaseName<gtest_TypeParam_> TestFixture; \
        +    typedef gtest_TypeParam_ TypeParam; \
        +    virtual void TestBody(); \
        +  }; \
        +  static bool gtest_##TestName##_defined_ GTEST_ATTRIBUTE_UNUSED_ = \
        +      GTEST_TYPED_TEST_CASE_P_STATE_(CaseName).AddTestName(\
        +          __FILE__, __LINE__, #CaseName, #TestName); \
        +  } \
        +  template <typename gtest_TypeParam_> \
        +  void GTEST_CASE_NAMESPACE_(CaseName)::TestName<gtest_TypeParam_>::TestBody()
        +
        +# define REGISTER_TYPED_TEST_CASE_P(CaseName, ...) \
        +  namespace GTEST_CASE_NAMESPACE_(CaseName) { \
        +  typedef ::testing::internal::Templates<__VA_ARGS__>::type gtest_AllTests_; \
        +  } \
        +  static const char* const GTEST_REGISTERED_TEST_NAMES_(CaseName) = \
        +      GTEST_TYPED_TEST_CASE_P_STATE_(CaseName).VerifyRegisteredTestNames(\
        +          __FILE__, __LINE__, #__VA_ARGS__)
        +
        +// The 'Types' template argument below must have spaces around it
        +// since some compilers may choke on '>>' when passing a template
        +// instance (e.g. Types<int>)
        +# define INSTANTIATE_TYPED_TEST_CASE_P(Prefix, CaseName, Types) \
        +  bool gtest_##Prefix##_##CaseName GTEST_ATTRIBUTE_UNUSED_ = \
        +      ::testing::internal::TypeParameterizedTestCase<CaseName, \
        +          GTEST_CASE_NAMESPACE_(CaseName)::gtest_AllTests_, \
        +          ::testing::internal::TypeList< Types >::type>::Register(\
        +              #Prefix, \
        +              ::testing::internal::CodeLocation(__FILE__, __LINE__), \
        +              &GTEST_TYPED_TEST_CASE_P_STATE_(CaseName), \
        +              #CaseName, GTEST_REGISTERED_TEST_NAMES_(CaseName))
        +
        +#endif  // GTEST_HAS_TYPED_TEST_P
        +
        +#endif  // GTEST_INCLUDE_GTEST_GTEST_TYPED_TEST_H_
        diff --git a/lib/ann/fann/lib/googletest/include/gtest/gtest.h b/lib/ann/fann/lib/googletest/include/gtest/gtest.h
        new file mode 100644
        index 0000000..7b59c49
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/include/gtest/gtest.h
        @@ -0,0 +1,2240 @@
        +// Copyright 2005, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +//
        +// The Google C++ Testing Framework (Google Test)
        +//
        +// This header file defines the public API for Google Test.  It should be
        +// included by any test program that uses Google Test.
        +//
        +// IMPORTANT NOTE: Due to limitation of the C++ language, we have to
        +// leave some internal implementation details in this header file.
        +// They are clearly marked by comments like this:
        +//
        +//   // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
        +//
        +// Such code is NOT meant to be used by a user directly, and is subject
        +// to CHANGE WITHOUT NOTICE.  Therefore DO NOT DEPEND ON IT in a user
        +// program!
        +//
        +// Acknowledgment: Google Test borrowed the idea of automatic test
        +// registration from Barthelemy Dagenais' (barthelemy@prologique.com)
        +// easyUnit framework.
        +
        +#ifndef GTEST_INCLUDE_GTEST_GTEST_H_
        +#define GTEST_INCLUDE_GTEST_GTEST_H_
        +
        +#include <limits>
        +#include <ostream>
        +#include <vector>
        +
        +#include "gtest/internal/gtest-internal.h"
        +#include "gtest/internal/gtest-string.h"
        +#include "gtest/gtest-death-test.h"
        +#include "gtest/gtest-message.h"
        +#include "gtest/gtest-param-test.h"
        +#include "gtest/gtest-printers.h"
        +#include "gtest/gtest_prod.h"
        +#include "gtest/gtest-test-part.h"
        +#include "gtest/gtest-typed-test.h"
        +
        +// Depending on the platform, different string classes are available.
        +// On Linux, in addition to ::std::string, Google also makes use of
        +// class ::string, which has the same interface as ::std::string, but
        +// has a different implementation.
        +//
        +// You can define GTEST_HAS_GLOBAL_STRING to 1 to indicate that
        +// ::string is available AND is a distinct type to ::std::string, or
        +// define it to 0 to indicate otherwise.
        +//
        +// If ::std::string and ::string are the same class on your platform
        +// due to aliasing, you should define GTEST_HAS_GLOBAL_STRING to 0.
        +//
        +// If you do not define GTEST_HAS_GLOBAL_STRING, it is defined
        +// heuristically.
        +
        +namespace testing {
        +
        +// Declares the flags.
        +
        +// This flag temporary enables the disabled tests.
        +GTEST_DECLARE_bool_(also_run_disabled_tests);
        +
        +// This flag brings the debugger on an assertion failure.
        +GTEST_DECLARE_bool_(break_on_failure);
        +
        +// This flag controls whether Google Test catches all test-thrown exceptions
        +// and logs them as failures.
        +GTEST_DECLARE_bool_(catch_exceptions);
        +
        +// This flag enables using colors in terminal output. Available values are
        +// "yes" to enable colors, "no" (disable colors), or "auto" (the default)
        +// to let Google Test decide.
        +GTEST_DECLARE_string_(color);
        +
        +// This flag sets up the filter to select by name using a glob pattern
        +// the tests to run. If the filter is not given all tests are executed.
        +GTEST_DECLARE_string_(filter);
        +
        +// This flag causes the Google Test to list tests. None of the tests listed
        +// are actually run if the flag is provided.
        +GTEST_DECLARE_bool_(list_tests);
        +
        +// This flag controls whether Google Test emits a detailed XML report to a file
        +// in addition to its normal textual output.
        +GTEST_DECLARE_string_(output);
        +
        +// This flags control whether Google Test prints the elapsed time for each
        +// test.
        +GTEST_DECLARE_bool_(print_time);
        +
        +// This flag specifies the random number seed.
        +GTEST_DECLARE_int32_(random_seed);
        +
        +// This flag sets how many times the tests are repeated. The default value
        +// is 1. If the value is -1 the tests are repeating forever.
        +GTEST_DECLARE_int32_(repeat);
        +
        +// This flag controls whether Google Test includes Google Test internal
        +// stack frames in failure stack traces.
        +GTEST_DECLARE_bool_(show_internal_stack_frames);
        +
        +// When this flag is specified, tests' order is randomized on every iteration.
        +GTEST_DECLARE_bool_(shuffle);
        +
        +// This flag specifies the maximum number of stack frames to be
        +// printed in a failure message.
        +GTEST_DECLARE_int32_(stack_trace_depth);
        +
        +// When this flag is specified, a failed assertion will throw an
        +// exception if exceptions are enabled, or exit the program with a
        +// non-zero code otherwise.
        +GTEST_DECLARE_bool_(throw_on_failure);
        +
        +// When this flag is set with a "host:port" string, on supported
        +// platforms test results are streamed to the specified port on
        +// the specified host machine.
        +GTEST_DECLARE_string_(stream_result_to);
        +
        +// The upper limit for valid stack trace depths.
        +const int kMaxStackTraceDepth = 100;
        +
        +namespace internal {
        +
        +class AssertHelper;
        +class DefaultGlobalTestPartResultReporter;
        +class ExecDeathTest;
        +class NoExecDeathTest;
        +class FinalSuccessChecker;
        +class GTestFlagSaver;
        +class StreamingListenerTest;
        +class TestResultAccessor;
        +class TestEventListenersAccessor;
        +class TestEventRepeater;
        +class UnitTestRecordPropertyTestHelper;
        +class WindowsDeathTest;
        +class UnitTestImpl* GetUnitTestImpl();
        +void ReportFailureInUnknownLocation(TestPartResult::Type result_type,
        +                                    const std::string& message);
        +
        +}  // namespace internal
        +
        +// The friend relationship of some of these classes is cyclic.
        +// If we don't forward declare them the compiler might confuse the classes
        +// in friendship clauses with same named classes on the scope.
        +class Test;
        +class TestCase;
        +class TestInfo;
        +class UnitTest;
        +
        +// A class for indicating whether an assertion was successful.  When
        +// the assertion wasn't successful, the AssertionResult object
        +// remembers a non-empty message that describes how it failed.
        +//
        +// To create an instance of this class, use one of the factory functions
        +// (AssertionSuccess() and AssertionFailure()).
        +//
        +// This class is useful for two purposes:
        +//   1. Defining predicate functions to be used with Boolean test assertions
        +//      EXPECT_TRUE/EXPECT_FALSE and their ASSERT_ counterparts
        +//   2. Defining predicate-format functions to be
        +//      used with predicate assertions (ASSERT_PRED_FORMAT*, etc).
        +//
        +// For example, if you define IsEven predicate:
        +//
        +//   testing::AssertionResult IsEven(int n) {
        +//     if ((n % 2) == 0)
        +//       return testing::AssertionSuccess();
        +//     else
        +//       return testing::AssertionFailure() << n << " is odd";
        +//   }
        +//
        +// Then the failed expectation EXPECT_TRUE(IsEven(Fib(5)))
        +// will print the message
        +//
        +//   Value of: IsEven(Fib(5))
        +//     Actual: false (5 is odd)
        +//   Expected: true
        +//
        +// instead of a more opaque
        +//
        +//   Value of: IsEven(Fib(5))
        +//     Actual: false
        +//   Expected: true
        +//
        +// in case IsEven is a simple Boolean predicate.
        +//
        +// If you expect your predicate to be reused and want to support informative
        +// messages in EXPECT_FALSE and ASSERT_FALSE (negative assertions show up
        +// about half as often as positive ones in our tests), supply messages for
        +// both success and failure cases:
        +//
        +//   testing::AssertionResult IsEven(int n) {
        +//     if ((n % 2) == 0)
        +//       return testing::AssertionSuccess() << n << " is even";
        +//     else
        +//       return testing::AssertionFailure() << n << " is odd";
        +//   }
        +//
        +// Then a statement EXPECT_FALSE(IsEven(Fib(6))) will print
        +//
        +//   Value of: IsEven(Fib(6))
        +//     Actual: true (8 is even)
        +//   Expected: false
        +//
        +// NB: Predicates that support negative Boolean assertions have reduced
        +// performance in positive ones so be careful not to use them in tests
        +// that have lots (tens of thousands) of positive Boolean assertions.
        +//
        +// To use this class with EXPECT_PRED_FORMAT assertions such as:
        +//
        +//   // Verifies that Foo() returns an even number.
        +//   EXPECT_PRED_FORMAT1(IsEven, Foo());
        +//
        +// you need to define:
        +//
        +//   testing::AssertionResult IsEven(const char* expr, int n) {
        +//     if ((n % 2) == 0)
        +//       return testing::AssertionSuccess();
        +//     else
        +//       return testing::AssertionFailure()
        +//         << "Expected: " << expr << " is even\n  Actual: it's " << n;
        +//   }
        +//
        +// If Foo() returns 5, you will see the following message:
        +//
        +//   Expected: Foo() is even
        +//     Actual: it's 5
        +//
        +class GTEST_API_ AssertionResult {
        + public:
        +  // Copy constructor.
        +  // Used in EXPECT_TRUE/FALSE(assertion_result).
        +  AssertionResult(const AssertionResult& other);
        +
        +  GTEST_DISABLE_MSC_WARNINGS_PUSH_(4800 /* forcing value to bool */)
        +
        +  // Used in the EXPECT_TRUE/FALSE(bool_expression).
        +  //
        +  // T must be contextually convertible to bool.
        +  //
        +  // The second parameter prevents this overload from being considered if
        +  // the argument is implicitly convertible to AssertionResult. In that case
        +  // we want AssertionResult's copy constructor to be used.
        +  template <typename T>
        +  explicit AssertionResult(
        +      const T& success,
        +      typename internal::EnableIf<
        +          !internal::ImplicitlyConvertible<T, AssertionResult>::value>::type*
        +          /*enabler*/ = NULL)
        +      : success_(success) {}
        +
        +  GTEST_DISABLE_MSC_WARNINGS_POP_()
        +
        +  // Assignment operator.
        +  AssertionResult& operator=(AssertionResult other) {
        +    swap(other);
        +    return *this;
        +  }
        +
        +  // Returns true iff the assertion succeeded.
        +  operator bool() const { return success_; }  // NOLINT
        +
        +  // Returns the assertion's negation. Used with EXPECT/ASSERT_FALSE.
        +  AssertionResult operator!() const;
        +
        +  // Returns the text streamed into this AssertionResult. Test assertions
        +  // use it when they fail (i.e., the predicate's outcome doesn't match the
        +  // assertion's expectation). When nothing has been streamed into the
        +  // object, returns an empty string.
        +  const char* message() const {
        +    return message_.get() != NULL ?  message_->c_str() : "";
        +  }
        +  // TODO(vladl@google.com): Remove this after making sure no clients use it.
        +  // Deprecated; please use message() instead.
        +  const char* failure_message() const { return message(); }
        +
        +  // Streams a custom failure message into this object.
        +  template <typename T> AssertionResult& operator<<(const T& value) {
        +    AppendMessage(Message() << value);
        +    return *this;
        +  }
        +
        +  // Allows streaming basic output manipulators such as endl or flush into
        +  // this object.
        +  AssertionResult& operator<<(
        +      ::std::ostream& (*basic_manipulator)(::std::ostream& stream)) {
        +    AppendMessage(Message() << basic_manipulator);
        +    return *this;
        +  }
        +
        + private:
        +  // Appends the contents of message to message_.
        +  void AppendMessage(const Message& a_message) {
        +    if (message_.get() == NULL)
        +      message_.reset(new ::std::string);
        +    message_->append(a_message.GetString().c_str());
        +  }
        +
        +  // Swap the contents of this AssertionResult with other.
        +  void swap(AssertionResult& other);
        +
        +  // Stores result of the assertion predicate.
        +  bool success_;
        +  // Stores the message describing the condition in case the expectation
        +  // construct is not satisfied with the predicate's outcome.
        +  // Referenced via a pointer to avoid taking too much stack frame space
        +  // with test assertions.
        +  internal::scoped_ptr< ::std::string> message_;
        +};
        +
        +// Makes a successful assertion result.
        +GTEST_API_ AssertionResult AssertionSuccess();
        +
        +// Makes a failed assertion result.
        +GTEST_API_ AssertionResult AssertionFailure();
        +
        +// Makes a failed assertion result with the given failure message.
        +// Deprecated; use AssertionFailure() << msg.
        +GTEST_API_ AssertionResult AssertionFailure(const Message& msg);
        +
        +// The abstract class that all tests inherit from.
        +//
        +// In Google Test, a unit test program contains one or many TestCases, and
        +// each TestCase contains one or many Tests.
        +//
        +// When you define a test using the TEST macro, you don't need to
        +// explicitly derive from Test - the TEST macro automatically does
        +// this for you.
        +//
        +// The only time you derive from Test is when defining a test fixture
        +// to be used a TEST_F.  For example:
        +//
        +//   class FooTest : public testing::Test {
        +//    protected:
        +//     void SetUp() override { ... }
        +//     void TearDown() override { ... }
        +//     ...
        +//   };
        +//
        +//   TEST_F(FooTest, Bar) { ... }
        +//   TEST_F(FooTest, Baz) { ... }
        +//
        +// Test is not copyable.
        +class GTEST_API_ Test {
        + public:
        +  friend class TestInfo;
        +
        +  // Defines types for pointers to functions that set up and tear down
        +  // a test case.
        +  typedef internal::SetUpTestCaseFunc SetUpTestCaseFunc;
        +  typedef internal::TearDownTestCaseFunc TearDownTestCaseFunc;
        +
        +  // The d'tor is virtual as we intend to inherit from Test.
        +  virtual ~Test();
        +
        +  // Sets up the stuff shared by all tests in this test case.
        +  //
        +  // Google Test will call Foo::SetUpTestCase() before running the first
        +  // test in test case Foo.  Hence a sub-class can define its own
        +  // SetUpTestCase() method to shadow the one defined in the super
        +  // class.
        +  static void SetUpTestCase() {}
        +
        +  // Tears down the stuff shared by all tests in this test case.
        +  //
        +  // Google Test will call Foo::TearDownTestCase() after running the last
        +  // test in test case Foo.  Hence a sub-class can define its own
        +  // TearDownTestCase() method to shadow the one defined in the super
        +  // class.
        +  static void TearDownTestCase() {}
        +
        +  // Returns true iff the current test has a fatal failure.
        +  static bool HasFatalFailure();
        +
        +  // Returns true iff the current test has a non-fatal failure.
        +  static bool HasNonfatalFailure();
        +
        +  // Returns true iff the current test has a (either fatal or
        +  // non-fatal) failure.
        +  static bool HasFailure() { return HasFatalFailure() || HasNonfatalFailure(); }
        +
        +  // Logs a property for the current test, test case, or for the entire
        +  // invocation of the test program when used outside of the context of a
        +  // test case.  Only the last value for a given key is remembered.  These
        +  // are public static so they can be called from utility functions that are
        +  // not members of the test fixture.  Calls to RecordProperty made during
        +  // lifespan of the test (from the moment its constructor starts to the
        +  // moment its destructor finishes) will be output in XML as attributes of
        +  // the <testcase> element.  Properties recorded from fixture's
        +  // SetUpTestCase or TearDownTestCase are logged as attributes of the
        +  // corresponding <testsuite> element.  Calls to RecordProperty made in the
        +  // global context (before or after invocation of RUN_ALL_TESTS and from
        +  // SetUp/TearDown method of Environment objects registered with Google
        +  // Test) will be output as attributes of the <testsuites> element.
        +  static void RecordProperty(const std::string& key, const std::string& value);
        +  static void RecordProperty(const std::string& key, int value);
        +
        + protected:
        +  // Creates a Test object.
        +  Test();
        +
        +  // Sets up the test fixture.
        +  virtual void SetUp();
        +
        +  // Tears down the test fixture.
        +  virtual void TearDown();
        +
        + private:
        +  // Returns true iff the current test has the same fixture class as
        +  // the first test in the current test case.
        +  static bool HasSameFixtureClass();
        +
        +  // Runs the test after the test fixture has been set up.
        +  //
        +  // A sub-class must implement this to define the test logic.
        +  //
        +  // DO NOT OVERRIDE THIS FUNCTION DIRECTLY IN A USER PROGRAM.
        +  // Instead, use the TEST or TEST_F macro.
        +  virtual void TestBody() = 0;
        +
        +  // Sets up, executes, and tears down the test.
        +  void Run();
        +
        +  // Deletes self.  We deliberately pick an unusual name for this
        +  // internal method to avoid clashing with names used in user TESTs.
        +  void DeleteSelf_() { delete this; }
        +
        +  const internal::scoped_ptr< GTEST_FLAG_SAVER_ > gtest_flag_saver_;
        +
        +  // Often a user misspells SetUp() as Setup() and spends a long time
        +  // wondering why it is never called by Google Test.  The declaration of
        +  // the following method is solely for catching such an error at
        +  // compile time:
        +  //
        +  //   - The return type is deliberately chosen to be not void, so it
        +  //   will be a conflict if void Setup() is declared in the user's
        +  //   test fixture.
        +  //
        +  //   - This method is private, so it will be another compiler error
        +  //   if the method is called from the user's test fixture.
        +  //
        +  // DO NOT OVERRIDE THIS FUNCTION.
        +  //
        +  // If you see an error about overriding the following function or
        +  // about it being private, you have mis-spelled SetUp() as Setup().
        +  struct Setup_should_be_spelled_SetUp {};
        +  virtual Setup_should_be_spelled_SetUp* Setup() { return NULL; }
        +
        +  // We disallow copying Tests.
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(Test);
        +};
        +
        +typedef internal::TimeInMillis TimeInMillis;
        +
        +// A copyable object representing a user specified test property which can be
        +// output as a key/value string pair.
        +//
        +// Don't inherit from TestProperty as its destructor is not virtual.
        +class TestProperty {
        + public:
        +  // C'tor.  TestProperty does NOT have a default constructor.
        +  // Always use this constructor (with parameters) to create a
        +  // TestProperty object.
        +  TestProperty(const std::string& a_key, const std::string& a_value) :
        +    key_(a_key), value_(a_value) {
        +  }
        +
        +  // Gets the user supplied key.
        +  const char* key() const {
        +    return key_.c_str();
        +  }
        +
        +  // Gets the user supplied value.
        +  const char* value() const {
        +    return value_.c_str();
        +  }
        +
        +  // Sets a new value, overriding the one supplied in the constructor.
        +  void SetValue(const std::string& new_value) {
        +    value_ = new_value;
        +  }
        +
        + private:
        +  // The key supplied by the user.
        +  std::string key_;
        +  // The value supplied by the user.
        +  std::string value_;
        +};
        +
        +// The result of a single Test.  This includes a list of
        +// TestPartResults, a list of TestProperties, a count of how many
        +// death tests there are in the Test, and how much time it took to run
        +// the Test.
        +//
        +// TestResult is not copyable.
        +class GTEST_API_ TestResult {
        + public:
        +  // Creates an empty TestResult.
        +  TestResult();
        +
        +  // D'tor.  Do not inherit from TestResult.
        +  ~TestResult();
        +
        +  // Gets the number of all test parts.  This is the sum of the number
        +  // of successful test parts and the number of failed test parts.
        +  int total_part_count() const;
        +
        +  // Returns the number of the test properties.
        +  int test_property_count() const;
        +
        +  // Returns true iff the test passed (i.e. no test part failed).
        +  bool Passed() const { return !Failed(); }
        +
        +  // Returns true iff the test failed.
        +  bool Failed() const;
        +
        +  // Returns true iff the test fatally failed.
        +  bool HasFatalFailure() const;
        +
        +  // Returns true iff the test has a non-fatal failure.
        +  bool HasNonfatalFailure() const;
        +
        +  // Returns the elapsed time, in milliseconds.
        +  TimeInMillis elapsed_time() const { return elapsed_time_; }
        +
        +  // Returns the i-th test part result among all the results. i can range
        +  // from 0 to test_property_count() - 1. If i is not in that range, aborts
        +  // the program.
        +  const TestPartResult& GetTestPartResult(int i) const;
        +
        +  // Returns the i-th test property. i can range from 0 to
        +  // test_property_count() - 1. If i is not in that range, aborts the
        +  // program.
        +  const TestProperty& GetTestProperty(int i) const;
        +
        + private:
        +  friend class TestInfo;
        +  friend class TestCase;
        +  friend class UnitTest;
        +  friend class internal::DefaultGlobalTestPartResultReporter;
        +  friend class internal::ExecDeathTest;
        +  friend class internal::TestResultAccessor;
        +  friend class internal::UnitTestImpl;
        +  friend class internal::WindowsDeathTest;
        +
        +  // Gets the vector of TestPartResults.
        +  const std::vector<TestPartResult>& test_part_results() const {
        +    return test_part_results_;
        +  }
        +
        +  // Gets the vector of TestProperties.
        +  const std::vector<TestProperty>& test_properties() const {
        +    return test_properties_;
        +  }
        +
        +  // Sets the elapsed time.
        +  void set_elapsed_time(TimeInMillis elapsed) { elapsed_time_ = elapsed; }
        +
        +  // Adds a test property to the list. The property is validated and may add
        +  // a non-fatal failure if invalid (e.g., if it conflicts with reserved
        +  // key names). If a property is already recorded for the same key, the
        +  // value will be updated, rather than storing multiple values for the same
        +  // key.  xml_element specifies the element for which the property is being
        +  // recorded and is used for validation.
        +  void RecordProperty(const std::string& xml_element,
        +                      const TestProperty& test_property);
        +
        +  // Adds a failure if the key is a reserved attribute of Google Test
        +  // testcase tags.  Returns true if the property is valid.
        +  // TODO(russr): Validate attribute names are legal and human readable.
        +  static bool ValidateTestProperty(const std::string& xml_element,
        +                                   const TestProperty& test_property);
        +
        +  // Adds a test part result to the list.
        +  void AddTestPartResult(const TestPartResult& test_part_result);
        +
        +  // Returns the death test count.
        +  int death_test_count() const { return death_test_count_; }
        +
        +  // Increments the death test count, returning the new count.
        +  int increment_death_test_count() { return ++death_test_count_; }
        +
        +  // Clears the test part results.
        +  void ClearTestPartResults();
        +
        +  // Clears the object.
        +  void Clear();
        +
        +  // Protects mutable state of the property vector and of owned
        +  // properties, whose values may be updated.
        +  internal::Mutex test_properites_mutex_;
        +
        +  // The vector of TestPartResults
        +  std::vector<TestPartResult> test_part_results_;
        +  // The vector of TestProperties
        +  std::vector<TestProperty> test_properties_;
        +  // Running count of death tests.
        +  int death_test_count_;
        +  // The elapsed time, in milliseconds.
        +  TimeInMillis elapsed_time_;
        +
        +  // We disallow copying TestResult.
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(TestResult);
        +};  // class TestResult
        +
        +// A TestInfo object stores the following information about a test:
        +//
        +//   Test case name
        +//   Test name
        +//   Whether the test should be run
        +//   A function pointer that creates the test object when invoked
        +//   Test result
        +//
        +// The constructor of TestInfo registers itself with the UnitTest
        +// singleton such that the RUN_ALL_TESTS() macro knows which tests to
        +// run.
        +class GTEST_API_ TestInfo {
        + public:
        +  // Destructs a TestInfo object.  This function is not virtual, so
        +  // don't inherit from TestInfo.
        +  ~TestInfo();
        +
        +  // Returns the test case name.
        +  const char* test_case_name() const { return test_case_name_.c_str(); }
        +
        +  // Returns the test name.
        +  const char* name() const { return name_.c_str(); }
        +
        +  // Returns the name of the parameter type, or NULL if this is not a typed
        +  // or a type-parameterized test.
        +  const char* type_param() const {
        +    if (type_param_.get() != NULL)
        +      return type_param_->c_str();
        +    return NULL;
        +  }
        +
        +  // Returns the text representation of the value parameter, or NULL if this
        +  // is not a value-parameterized test.
        +  const char* value_param() const {
        +    if (value_param_.get() != NULL)
        +      return value_param_->c_str();
        +    return NULL;
        +  }
        +
        +  // Returns the file name where this test is defined.
        +  const char* file() const { return location_.file.c_str(); }
        +
        +  // Returns the line where this test is defined.
        +  int line() const { return location_.line; }
        +
        +  // Returns true if this test should run, that is if the test is not
        +  // disabled (or it is disabled but the also_run_disabled_tests flag has
        +  // been specified) and its full name matches the user-specified filter.
        +  //
        +  // Google Test allows the user to filter the tests by their full names.
        +  // The full name of a test Bar in test case Foo is defined as
        +  // "Foo.Bar".  Only the tests that match the filter will run.
        +  //
        +  // A filter is a colon-separated list of glob (not regex) patterns,
        +  // optionally followed by a '-' and a colon-separated list of
        +  // negative patterns (tests to exclude).  A test is run if it
        +  // matches one of the positive patterns and does not match any of
        +  // the negative patterns.
        +  //
        +  // For example, *A*:Foo.* is a filter that matches any string that
        +  // contains the character 'A' or starts with "Foo.".
        +  bool should_run() const { return should_run_; }
        +
        +  // Returns true iff this test will appear in the XML report.
        +  bool is_reportable() const {
        +    // For now, the XML report includes all tests matching the filter.
        +    // In the future, we may trim tests that are excluded because of
        +    // sharding.
        +    return matches_filter_;
        +  }
        +
        +  // Returns the result of the test.
        +  const TestResult* result() const { return &result_; }
        +
        + private:
        +#if GTEST_HAS_DEATH_TEST
        +  friend class internal::DefaultDeathTestFactory;
        +#endif  // GTEST_HAS_DEATH_TEST
        +  friend class Test;
        +  friend class TestCase;
        +  friend class internal::UnitTestImpl;
        +  friend class internal::StreamingListenerTest;
        +  friend TestInfo* internal::MakeAndRegisterTestInfo(
        +      const char* test_case_name,
        +      const char* name,
        +      const char* type_param,
        +      const char* value_param,
        +      internal::CodeLocation code_location,
        +      internal::TypeId fixture_class_id,
        +      Test::SetUpTestCaseFunc set_up_tc,
        +      Test::TearDownTestCaseFunc tear_down_tc,
        +      internal::TestFactoryBase* factory);
        +
        +  // Constructs a TestInfo object. The newly constructed instance assumes
        +  // ownership of the factory object.
        +  TestInfo(const std::string& test_case_name,
        +           const std::string& name,
        +           const char* a_type_param,   // NULL if not a type-parameterized test
        +           const char* a_value_param,  // NULL if not a value-parameterized test
        +           internal::CodeLocation a_code_location,
        +           internal::TypeId fixture_class_id,
        +           internal::TestFactoryBase* factory);
        +
        +  // Increments the number of death tests encountered in this test so
        +  // far.
        +  int increment_death_test_count() {
        +    return result_.increment_death_test_count();
        +  }
        +
        +  // Creates the test object, runs it, records its result, and then
        +  // deletes it.
        +  void Run();
        +
        +  static void ClearTestResult(TestInfo* test_info) {
        +    test_info->result_.Clear();
        +  }
        +
        +  // These fields are immutable properties of the test.
        +  const std::string test_case_name_;     // Test case name
        +  const std::string name_;               // Test name
        +  // Name of the parameter type, or NULL if this is not a typed or a
        +  // type-parameterized test.
        +  const internal::scoped_ptr<const ::std::string> type_param_;
        +  // Text representation of the value parameter, or NULL if this is not a
        +  // value-parameterized test.
        +  const internal::scoped_ptr<const ::std::string> value_param_;
        +  internal::CodeLocation location_;
        +  const internal::TypeId fixture_class_id_;   // ID of the test fixture class
        +  bool should_run_;                 // True iff this test should run
        +  bool is_disabled_;                // True iff this test is disabled
        +  bool matches_filter_;             // True if this test matches the
        +                                    // user-specified filter.
        +  internal::TestFactoryBase* const factory_;  // The factory that creates
        +                                              // the test object
        +
        +  // This field is mutable and needs to be reset before running the
        +  // test for the second time.
        +  TestResult result_;
        +
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(TestInfo);
        +};
        +
        +// A test case, which consists of a vector of TestInfos.
        +//
        +// TestCase is not copyable.
        +class GTEST_API_ TestCase {
        + public:
        +  // Creates a TestCase with the given name.
        +  //
        +  // TestCase does NOT have a default constructor.  Always use this
        +  // constructor to create a TestCase object.
        +  //
        +  // Arguments:
        +  //
        +  //   name:         name of the test case
        +  //   a_type_param: the name of the test's type parameter, or NULL if
        +  //                 this is not a type-parameterized test.
        +  //   set_up_tc:    pointer to the function that sets up the test case
        +  //   tear_down_tc: pointer to the function that tears down the test case
        +  TestCase(const char* name, const char* a_type_param,
        +           Test::SetUpTestCaseFunc set_up_tc,
        +           Test::TearDownTestCaseFunc tear_down_tc);
        +
        +  // Destructor of TestCase.
        +  virtual ~TestCase();
        +
        +  // Gets the name of the TestCase.
        +  const char* name() const { return name_.c_str(); }
        +
        +  // Returns the name of the parameter type, or NULL if this is not a
        +  // type-parameterized test case.
        +  const char* type_param() const {
        +    if (type_param_.get() != NULL)
        +      return type_param_->c_str();
        +    return NULL;
        +  }
        +
        +  // Returns true if any test in this test case should run.
        +  bool should_run() const { return should_run_; }
        +
        +  // Gets the number of successful tests in this test case.
        +  int successful_test_count() const;
        +
        +  // Gets the number of failed tests in this test case.
        +  int failed_test_count() const;
        +
        +  // Gets the number of disabled tests that will be reported in the XML report.
        +  int reportable_disabled_test_count() const;
        +
        +  // Gets the number of disabled tests in this test case.
        +  int disabled_test_count() const;
        +
        +  // Gets the number of tests to be printed in the XML report.
        +  int reportable_test_count() const;
        +
        +  // Get the number of tests in this test case that should run.
        +  int test_to_run_count() const;
        +
        +  // Gets the number of all tests in this test case.
        +  int total_test_count() const;
        +
        +  // Returns true iff the test case passed.
        +  bool Passed() const { return !Failed(); }
        +
        +  // Returns true iff the test case failed.
        +  bool Failed() const { return failed_test_count() > 0; }
        +
        +  // Returns the elapsed time, in milliseconds.
        +  TimeInMillis elapsed_time() const { return elapsed_time_; }
        +
        +  // Returns the i-th test among all the tests. i can range from 0 to
        +  // total_test_count() - 1. If i is not in that range, returns NULL.
        +  const TestInfo* GetTestInfo(int i) const;
        +
        +  // Returns the TestResult that holds test properties recorded during
        +  // execution of SetUpTestCase and TearDownTestCase.
        +  const TestResult& ad_hoc_test_result() const { return ad_hoc_test_result_; }
        +
        + private:
        +  friend class Test;
        +  friend class internal::UnitTestImpl;
        +
        +  // Gets the (mutable) vector of TestInfos in this TestCase.
        +  std::vector<TestInfo*>& test_info_list() { return test_info_list_; }
        +
        +  // Gets the (immutable) vector of TestInfos in this TestCase.
        +  const std::vector<TestInfo*>& test_info_list() const {
        +    return test_info_list_;
        +  }
        +
        +  // Returns the i-th test among all the tests. i can range from 0 to
        +  // total_test_count() - 1. If i is not in that range, returns NULL.
        +  TestInfo* GetMutableTestInfo(int i);
        +
        +  // Sets the should_run member.
        +  void set_should_run(bool should) { should_run_ = should; }
        +
        +  // Adds a TestInfo to this test case.  Will delete the TestInfo upon
        +  // destruction of the TestCase object.
        +  void AddTestInfo(TestInfo * test_info);
        +
        +  // Clears the results of all tests in this test case.
        +  void ClearResult();
        +
        +  // Clears the results of all tests in the given test case.
        +  static void ClearTestCaseResult(TestCase* test_case) {
        +    test_case->ClearResult();
        +  }
        +
        +  // Runs every test in this TestCase.
        +  void Run();
        +
        +  // Runs SetUpTestCase() for this TestCase.  This wrapper is needed
        +  // for catching exceptions thrown from SetUpTestCase().
        +  void RunSetUpTestCase() { (*set_up_tc_)(); }
        +
        +  // Runs TearDownTestCase() for this TestCase.  This wrapper is
        +  // needed for catching exceptions thrown from TearDownTestCase().
        +  void RunTearDownTestCase() { (*tear_down_tc_)(); }
        +
        +  // Returns true iff test passed.
        +  static bool TestPassed(const TestInfo* test_info) {
        +    return test_info->should_run() && test_info->result()->Passed();
        +  }
        +
        +  // Returns true iff test failed.
        +  static bool TestFailed(const TestInfo* test_info) {
        +    return test_info->should_run() && test_info->result()->Failed();
        +  }
        +
        +  // Returns true iff the test is disabled and will be reported in the XML
        +  // report.
        +  static bool TestReportableDisabled(const TestInfo* test_info) {
        +    return test_info->is_reportable() && test_info->is_disabled_;
        +  }
        +
        +  // Returns true iff test is disabled.
        +  static bool TestDisabled(const TestInfo* test_info) {
        +    return test_info->is_disabled_;
        +  }
        +
        +  // Returns true iff this test will appear in the XML report.
        +  static bool TestReportable(const TestInfo* test_info) {
        +    return test_info->is_reportable();
        +  }
        +
        +  // Returns true if the given test should run.
        +  static bool ShouldRunTest(const TestInfo* test_info) {
        +    return test_info->should_run();
        +  }
        +
        +  // Shuffles the tests in this test case.
        +  void ShuffleTests(internal::Random* random);
        +
        +  // Restores the test order to before the first shuffle.
        +  void UnshuffleTests();
        +
        +  // Name of the test case.
        +  std::string name_;
        +  // Name of the parameter type, or NULL if this is not a typed or a
        +  // type-parameterized test.
        +  const internal::scoped_ptr<const ::std::string> type_param_;
        +  // The vector of TestInfos in their original order.  It owns the
        +  // elements in the vector.
        +  std::vector<TestInfo*> test_info_list_;
        +  // Provides a level of indirection for the test list to allow easy
        +  // shuffling and restoring the test order.  The i-th element in this
        +  // vector is the index of the i-th test in the shuffled test list.
        +  std::vector<int> test_indices_;
        +  // Pointer to the function that sets up the test case.
        +  Test::SetUpTestCaseFunc set_up_tc_;
        +  // Pointer to the function that tears down the test case.
        +  Test::TearDownTestCaseFunc tear_down_tc_;
        +  // True iff any test in this test case should run.
        +  bool should_run_;
        +  // Elapsed time, in milliseconds.
        +  TimeInMillis elapsed_time_;
        +  // Holds test properties recorded during execution of SetUpTestCase and
        +  // TearDownTestCase.
        +  TestResult ad_hoc_test_result_;
        +
        +  // We disallow copying TestCases.
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(TestCase);
        +};
        +
        +// An Environment object is capable of setting up and tearing down an
        +// environment.  You should subclass this to define your own
        +// environment(s).
        +//
        +// An Environment object does the set-up and tear-down in virtual
        +// methods SetUp() and TearDown() instead of the constructor and the
        +// destructor, as:
        +//
        +//   1. You cannot safely throw from a destructor.  This is a problem
        +//      as in some cases Google Test is used where exceptions are enabled, and
        +//      we may want to implement ASSERT_* using exceptions where they are
        +//      available.
        +//   2. You cannot use ASSERT_* directly in a constructor or
        +//      destructor.
        +class Environment {
        + public:
        +  // The d'tor is virtual as we need to subclass Environment.
        +  virtual ~Environment() {}
        +
        +  // Override this to define how to set up the environment.
        +  virtual void SetUp() {}
        +
        +  // Override this to define how to tear down the environment.
        +  virtual void TearDown() {}
        + private:
        +  // If you see an error about overriding the following function or
        +  // about it being private, you have mis-spelled SetUp() as Setup().
        +  struct Setup_should_be_spelled_SetUp {};
        +  virtual Setup_should_be_spelled_SetUp* Setup() { return NULL; }
        +};
        +
        +// The interface for tracing execution of tests. The methods are organized in
        +// the order the corresponding events are fired.
        +class TestEventListener {
        + public:
        +  virtual ~TestEventListener() {}
        +
        +  // Fired before any test activity starts.
        +  virtual void OnTestProgramStart(const UnitTest& unit_test) = 0;
        +
        +  // Fired before each iteration of tests starts.  There may be more than
        +  // one iteration if GTEST_FLAG(repeat) is set. iteration is the iteration
        +  // index, starting from 0.
        +  virtual void OnTestIterationStart(const UnitTest& unit_test,
        +                                    int iteration) = 0;
        +
        +  // Fired before environment set-up for each iteration of tests starts.
        +  virtual void OnEnvironmentsSetUpStart(const UnitTest& unit_test) = 0;
        +
        +  // Fired after environment set-up for each iteration of tests ends.
        +  virtual void OnEnvironmentsSetUpEnd(const UnitTest& unit_test) = 0;
        +
        +  // Fired before the test case starts.
        +  virtual void OnTestCaseStart(const TestCase& test_case) = 0;
        +
        +  // Fired before the test starts.
        +  virtual void OnTestStart(const TestInfo& test_info) = 0;
        +
        +  // Fired after a failed assertion or a SUCCEED() invocation.
        +  virtual void OnTestPartResult(const TestPartResult& test_part_result) = 0;
        +
        +  // Fired after the test ends.
        +  virtual void OnTestEnd(const TestInfo& test_info) = 0;
        +
        +  // Fired after the test case ends.
        +  virtual void OnTestCaseEnd(const TestCase& test_case) = 0;
        +
        +  // Fired before environment tear-down for each iteration of tests starts.
        +  virtual void OnEnvironmentsTearDownStart(const UnitTest& unit_test) = 0;
        +
        +  // Fired after environment tear-down for each iteration of tests ends.
        +  virtual void OnEnvironmentsTearDownEnd(const UnitTest& unit_test) = 0;
        +
        +  // Fired after each iteration of tests finishes.
        +  virtual void OnTestIterationEnd(const UnitTest& unit_test,
        +                                  int iteration) = 0;
        +
        +  // Fired after all test activities have ended.
        +  virtual void OnTestProgramEnd(const UnitTest& unit_test) = 0;
        +};
        +
        +// The convenience class for users who need to override just one or two
        +// methods and are not concerned that a possible change to a signature of
        +// the methods they override will not be caught during the build.  For
        +// comments about each method please see the definition of TestEventListener
        +// above.
        +class EmptyTestEventListener : public TestEventListener {
        + public:
        +  virtual void OnTestProgramStart(const UnitTest& /*unit_test*/) {}
        +  virtual void OnTestIterationStart(const UnitTest& /*unit_test*/,
        +                                    int /*iteration*/) {}
        +  virtual void OnEnvironmentsSetUpStart(const UnitTest& /*unit_test*/) {}
        +  virtual void OnEnvironmentsSetUpEnd(const UnitTest& /*unit_test*/) {}
        +  virtual void OnTestCaseStart(const TestCase& /*test_case*/) {}
        +  virtual void OnTestStart(const TestInfo& /*test_info*/) {}
        +  virtual void OnTestPartResult(const TestPartResult& /*test_part_result*/) {}
        +  virtual void OnTestEnd(const TestInfo& /*test_info*/) {}
        +  virtual void OnTestCaseEnd(const TestCase& /*test_case*/) {}
        +  virtual void OnEnvironmentsTearDownStart(const UnitTest& /*unit_test*/) {}
        +  virtual void OnEnvironmentsTearDownEnd(const UnitTest& /*unit_test*/) {}
        +  virtual void OnTestIterationEnd(const UnitTest& /*unit_test*/,
        +                                  int /*iteration*/) {}
        +  virtual void OnTestProgramEnd(const UnitTest& /*unit_test*/) {}
        +};
        +
        +// TestEventListeners lets users add listeners to track events in Google Test.
        +class GTEST_API_ TestEventListeners {
        + public:
        +  TestEventListeners();
        +  ~TestEventListeners();
        +
        +  // Appends an event listener to the end of the list. Google Test assumes
        +  // the ownership of the listener (i.e. it will delete the listener when
        +  // the test program finishes).
        +  void Append(TestEventListener* listener);
        +
        +  // Removes the given event listener from the list and returns it.  It then
        +  // becomes the caller's responsibility to delete the listener. Returns
        +  // NULL if the listener is not found in the list.
        +  TestEventListener* Release(TestEventListener* listener);
        +
        +  // Returns the standard listener responsible for the default console
        +  // output.  Can be removed from the listeners list to shut down default
        +  // console output.  Note that removing this object from the listener list
        +  // with Release transfers its ownership to the caller and makes this
        +  // function return NULL the next time.
        +  TestEventListener* default_result_printer() const {
        +    return default_result_printer_;
        +  }
        +
        +  // Returns the standard listener responsible for the default XML output
        +  // controlled by the --gtest_output=xml flag.  Can be removed from the
        +  // listeners list by users who want to shut down the default XML output
        +  // controlled by this flag and substitute it with custom one.  Note that
        +  // removing this object from the listener list with Release transfers its
        +  // ownership to the caller and makes this function return NULL the next
        +  // time.
        +  TestEventListener* default_xml_generator() const {
        +    return default_xml_generator_;
        +  }
        +
        + private:
        +  friend class TestCase;
        +  friend class TestInfo;
        +  friend class internal::DefaultGlobalTestPartResultReporter;
        +  friend class internal::NoExecDeathTest;
        +  friend class internal::TestEventListenersAccessor;
        +  friend class internal::UnitTestImpl;
        +
        +  // Returns repeater that broadcasts the TestEventListener events to all
        +  // subscribers.
        +  TestEventListener* repeater();
        +
        +  // Sets the default_result_printer attribute to the provided listener.
        +  // The listener is also added to the listener list and previous
        +  // default_result_printer is removed from it and deleted. The listener can
        +  // also be NULL in which case it will not be added to the list. Does
        +  // nothing if the previous and the current listener objects are the same.
        +  void SetDefaultResultPrinter(TestEventListener* listener);
        +
        +  // Sets the default_xml_generator attribute to the provided listener.  The
        +  // listener is also added to the listener list and previous
        +  // default_xml_generator is removed from it and deleted. The listener can
        +  // also be NULL in which case it will not be added to the list. Does
        +  // nothing if the previous and the current listener objects are the same.
        +  void SetDefaultXmlGenerator(TestEventListener* listener);
        +
        +  // Controls whether events will be forwarded by the repeater to the
        +  // listeners in the list.
        +  bool EventForwardingEnabled() const;
        +  void SuppressEventForwarding();
        +
        +  // The actual list of listeners.
        +  internal::TestEventRepeater* repeater_;
        +  // Listener responsible for the standard result output.
        +  TestEventListener* default_result_printer_;
        +  // Listener responsible for the creation of the XML output file.
        +  TestEventListener* default_xml_generator_;
        +
        +  // We disallow copying TestEventListeners.
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(TestEventListeners);
        +};
        +
        +// A UnitTest consists of a vector of TestCases.
        +//
        +// This is a singleton class.  The only instance of UnitTest is
        +// created when UnitTest::GetInstance() is first called.  This
        +// instance is never deleted.
        +//
        +// UnitTest is not copyable.
        +//
        +// This class is thread-safe as long as the methods are called
        +// according to their specification.
        +class GTEST_API_ UnitTest {
        + public:
        +  // Gets the singleton UnitTest object.  The first time this method
        +  // is called, a UnitTest object is constructed and returned.
        +  // Consecutive calls will return the same object.
        +  static UnitTest* GetInstance();
        +
        +  // Runs all tests in this UnitTest object and prints the result.
        +  // Returns 0 if successful, or 1 otherwise.
        +  //
        +  // This method can only be called from the main thread.
        +  //
        +  // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
        +  int Run() GTEST_MUST_USE_RESULT_;
        +
        +  // Returns the working directory when the first TEST() or TEST_F()
        +  // was executed.  The UnitTest object owns the string.
        +  const char* original_working_dir() const;
        +
        +  // Returns the TestCase object for the test that's currently running,
        +  // or NULL if no test is running.
        +  const TestCase* current_test_case() const
        +      GTEST_LOCK_EXCLUDED_(mutex_);
        +
        +  // Returns the TestInfo object for the test that's currently running,
        +  // or NULL if no test is running.
        +  const TestInfo* current_test_info() const
        +      GTEST_LOCK_EXCLUDED_(mutex_);
        +
        +  // Returns the random seed used at the start of the current test run.
        +  int random_seed() const;
        +
        +#if GTEST_HAS_PARAM_TEST
        +  // Returns the ParameterizedTestCaseRegistry object used to keep track of
        +  // value-parameterized tests and instantiate and register them.
        +  //
        +  // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
        +  internal::ParameterizedTestCaseRegistry& parameterized_test_registry()
        +      GTEST_LOCK_EXCLUDED_(mutex_);
        +#endif  // GTEST_HAS_PARAM_TEST
        +
        +  // Gets the number of successful test cases.
        +  int successful_test_case_count() const;
        +
        +  // Gets the number of failed test cases.
        +  int failed_test_case_count() const;
        +
        +  // Gets the number of all test cases.
        +  int total_test_case_count() const;
        +
        +  // Gets the number of all test cases that contain at least one test
        +  // that should run.
        +  int test_case_to_run_count() const;
        +
        +  // Gets the number of successful tests.
        +  int successful_test_count() const;
        +
        +  // Gets the number of failed tests.
        +  int failed_test_count() const;
        +
        +  // Gets the number of disabled tests that will be reported in the XML report.
        +  int reportable_disabled_test_count() const;
        +
        +  // Gets the number of disabled tests.
        +  int disabled_test_count() const;
        +
        +  // Gets the number of tests to be printed in the XML report.
        +  int reportable_test_count() const;
        +
        +  // Gets the number of all tests.
        +  int total_test_count() const;
        +
        +  // Gets the number of tests that should run.
        +  int test_to_run_count() const;
        +
        +  // Gets the time of the test program start, in ms from the start of the
        +  // UNIX epoch.
        +  TimeInMillis start_timestamp() const;
        +
        +  // Gets the elapsed time, in milliseconds.
        +  TimeInMillis elapsed_time() const;
        +
        +  // Returns true iff the unit test passed (i.e. all test cases passed).
        +  bool Passed() const;
        +
        +  // Returns true iff the unit test failed (i.e. some test case failed
        +  // or something outside of all tests failed).
        +  bool Failed() const;
        +
        +  // Gets the i-th test case among all the test cases. i can range from 0 to
        +  // total_test_case_count() - 1. If i is not in that range, returns NULL.
        +  const TestCase* GetTestCase(int i) const;
        +
        +  // Returns the TestResult containing information on test failures and
        +  // properties logged outside of individual test cases.
        +  const TestResult& ad_hoc_test_result() const;
        +
        +  // Returns the list of event listeners that can be used to track events
        +  // inside Google Test.
        +  TestEventListeners& listeners();
        +
        + private:
        +  // Registers and returns a global test environment.  When a test
        +  // program is run, all global test environments will be set-up in
        +  // the order they were registered.  After all tests in the program
        +  // have finished, all global test environments will be torn-down in
        +  // the *reverse* order they were registered.
        +  //
        +  // The UnitTest object takes ownership of the given environment.
        +  //
        +  // This method can only be called from the main thread.
        +  Environment* AddEnvironment(Environment* env);
        +
        +  // Adds a TestPartResult to the current TestResult object.  All
        +  // Google Test assertion macros (e.g. ASSERT_TRUE, EXPECT_EQ, etc)
        +  // eventually call this to report their results.  The user code
        +  // should use the assertion macros instead of calling this directly.
        +  void AddTestPartResult(TestPartResult::Type result_type,
        +                         const char* file_name,
        +                         int line_number,
        +                         const std::string& message,
        +                         const std::string& os_stack_trace)
        +      GTEST_LOCK_EXCLUDED_(mutex_);
        +
        +  // Adds a TestProperty to the current TestResult object when invoked from
        +  // inside a test, to current TestCase's ad_hoc_test_result_ when invoked
        +  // from SetUpTestCase or TearDownTestCase, or to the global property set
        +  // when invoked elsewhere.  If the result already contains a property with
        +  // the same key, the value will be updated.
        +  void RecordProperty(const std::string& key, const std::string& value);
        +
        +  // Gets the i-th test case among all the test cases. i can range from 0 to
        +  // total_test_case_count() - 1. If i is not in that range, returns NULL.
        +  TestCase* GetMutableTestCase(int i);
        +
        +  // Accessors for the implementation object.
        +  internal::UnitTestImpl* impl() { return impl_; }
        +  const internal::UnitTestImpl* impl() const { return impl_; }
        +
        +  // These classes and funcions are friends as they need to access private
        +  // members of UnitTest.
        +  friend class Test;
        +  friend class internal::AssertHelper;
        +  friend class internal::ScopedTrace;
        +  friend class internal::StreamingListenerTest;
        +  friend class internal::UnitTestRecordPropertyTestHelper;
        +  friend Environment* AddGlobalTestEnvironment(Environment* env);
        +  friend internal::UnitTestImpl* internal::GetUnitTestImpl();
        +  friend void internal::ReportFailureInUnknownLocation(
        +      TestPartResult::Type result_type,
        +      const std::string& message);
        +
        +  // Creates an empty UnitTest.
        +  UnitTest();
        +
        +  // D'tor
        +  virtual ~UnitTest();
        +
        +  // Pushes a trace defined by SCOPED_TRACE() on to the per-thread
        +  // Google Test trace stack.
        +  void PushGTestTrace(const internal::TraceInfo& trace)
        +      GTEST_LOCK_EXCLUDED_(mutex_);
        +
        +  // Pops a trace from the per-thread Google Test trace stack.
        +  void PopGTestTrace()
        +      GTEST_LOCK_EXCLUDED_(mutex_);
        +
        +  // Protects mutable state in *impl_.  This is mutable as some const
        +  // methods need to lock it too.
        +  mutable internal::Mutex mutex_;
        +
        +  // Opaque implementation object.  This field is never changed once
        +  // the object is constructed.  We don't mark it as const here, as
        +  // doing so will cause a warning in the constructor of UnitTest.
        +  // Mutable state in *impl_ is protected by mutex_.
        +  internal::UnitTestImpl* impl_;
        +
        +  // We disallow copying UnitTest.
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(UnitTest);
        +};
        +
        +// A convenient wrapper for adding an environment for the test
        +// program.
        +//
        +// You should call this before RUN_ALL_TESTS() is called, probably in
        +// main().  If you use gtest_main, you need to call this before main()
        +// starts for it to take effect.  For example, you can define a global
        +// variable like this:
        +//
        +//   testing::Environment* const foo_env =
        +//       testing::AddGlobalTestEnvironment(new FooEnvironment);
        +//
        +// However, we strongly recommend you to write your own main() and
        +// call AddGlobalTestEnvironment() there, as relying on initialization
        +// of global variables makes the code harder to read and may cause
        +// problems when you register multiple environments from different
        +// translation units and the environments have dependencies among them
        +// (remember that the compiler doesn't guarantee the order in which
        +// global variables from different translation units are initialized).
        +inline Environment* AddGlobalTestEnvironment(Environment* env) {
        +  return UnitTest::GetInstance()->AddEnvironment(env);
        +}
        +
        +// Initializes Google Test.  This must be called before calling
        +// RUN_ALL_TESTS().  In particular, it parses a command line for the
        +// flags that Google Test recognizes.  Whenever a Google Test flag is
        +// seen, it is removed from argv, and *argc is decremented.
        +//
        +// No value is returned.  Instead, the Google Test flag variables are
        +// updated.
        +//
        +// Calling the function for the second time has no user-visible effect.
        +GTEST_API_ void InitGoogleTest(int* argc, char** argv);
        +
        +// This overloaded version can be used in Windows programs compiled in
        +// UNICODE mode.
        +GTEST_API_ void InitGoogleTest(int* argc, wchar_t** argv);
        +
        +namespace internal {
        +
        +// Separate the error generating code from the code path to reduce the stack
        +// frame size of CmpHelperEQ. This helps reduce the overhead of some sanitizers
        +// when calling EXPECT_* in a tight loop.
        +template <typename T1, typename T2>
        +AssertionResult CmpHelperEQFailure(const char* expected_expression,
        +                                   const char* actual_expression,
        +                                   const T1& expected, const T2& actual) {
        +  return EqFailure(expected_expression,
        +                   actual_expression,
        +                   FormatForComparisonFailureMessage(expected, actual),
        +                   FormatForComparisonFailureMessage(actual, expected),
        +                   false);
        +}
        +
        +// The helper function for {ASSERT|EXPECT}_EQ.
        +template <typename T1, typename T2>
        +AssertionResult CmpHelperEQ(const char* expected_expression,
        +                            const char* actual_expression,
        +                            const T1& expected,
        +                            const T2& actual) {
        +GTEST_DISABLE_MSC_WARNINGS_PUSH_(4389 /* signed/unsigned mismatch */)
        +  if (expected == actual) {
        +    return AssertionSuccess();
        +  }
        +GTEST_DISABLE_MSC_WARNINGS_POP_()
        +
        +  return CmpHelperEQFailure(expected_expression, actual_expression, expected,
        +                            actual);
        +}
        +
        +// With this overloaded version, we allow anonymous enums to be used
        +// in {ASSERT|EXPECT}_EQ when compiled with gcc 4, as anonymous enums
        +// can be implicitly cast to BiggestInt.
        +GTEST_API_ AssertionResult CmpHelperEQ(const char* expected_expression,
        +                                       const char* actual_expression,
        +                                       BiggestInt expected,
        +                                       BiggestInt actual);
        +
        +// The helper class for {ASSERT|EXPECT}_EQ.  The template argument
        +// lhs_is_null_literal is true iff the first argument to ASSERT_EQ()
        +// is a null pointer literal.  The following default implementation is
        +// for lhs_is_null_literal being false.
        +template <bool lhs_is_null_literal>
        +class EqHelper {
        + public:
        +  // This templatized version is for the general case.
        +  template <typename T1, typename T2>
        +  static AssertionResult Compare(const char* expected_expression,
        +                                 const char* actual_expression,
        +                                 const T1& expected,
        +                                 const T2& actual) {
        +    return CmpHelperEQ(expected_expression, actual_expression, expected,
        +                       actual);
        +  }
        +
        +  // With this overloaded version, we allow anonymous enums to be used
        +  // in {ASSERT|EXPECT}_EQ when compiled with gcc 4, as anonymous
        +  // enums can be implicitly cast to BiggestInt.
        +  //
        +  // Even though its body looks the same as the above version, we
        +  // cannot merge the two, as it will make anonymous enums unhappy.
        +  static AssertionResult Compare(const char* expected_expression,
        +                                 const char* actual_expression,
        +                                 BiggestInt expected,
        +                                 BiggestInt actual) {
        +    return CmpHelperEQ(expected_expression, actual_expression, expected,
        +                       actual);
        +  }
        +};
        +
        +// This specialization is used when the first argument to ASSERT_EQ()
        +// is a null pointer literal, like NULL, false, or 0.
        +template <>
        +class EqHelper<true> {
        + public:
        +  // We define two overloaded versions of Compare().  The first
        +  // version will be picked when the second argument to ASSERT_EQ() is
        +  // NOT a pointer, e.g. ASSERT_EQ(0, AnIntFunction()) or
        +  // EXPECT_EQ(false, a_bool).
        +  template <typename T1, typename T2>
        +  static AssertionResult Compare(
        +      const char* expected_expression,
        +      const char* actual_expression,
        +      const T1& expected,
        +      const T2& actual,
        +      // The following line prevents this overload from being considered if T2
        +      // is not a pointer type.  We need this because ASSERT_EQ(NULL, my_ptr)
        +      // expands to Compare("", "", NULL, my_ptr), which requires a conversion
        +      // to match the Secret* in the other overload, which would otherwise make
        +      // this template match better.
        +      typename EnableIf<!is_pointer<T2>::value>::type* = 0) {
        +    return CmpHelperEQ(expected_expression, actual_expression, expected,
        +                       actual);
        +  }
        +
        +  // This version will be picked when the second argument to ASSERT_EQ() is a
        +  // pointer, e.g. ASSERT_EQ(NULL, a_pointer).
        +  template <typename T>
        +  static AssertionResult Compare(
        +      const char* expected_expression,
        +      const char* actual_expression,
        +      // We used to have a second template parameter instead of Secret*.  That
        +      // template parameter would deduce to 'long', making this a better match
        +      // than the first overload even without the first overload's EnableIf.
        +      // Unfortunately, gcc with -Wconversion-null warns when "passing NULL to
        +      // non-pointer argument" (even a deduced integral argument), so the old
        +      // implementation caused warnings in user code.
        +      Secret* /* expected (NULL) */,
        +      T* actual) {
        +    // We already know that 'expected' is a null pointer.
        +    return CmpHelperEQ(expected_expression, actual_expression,
        +                       static_cast<T*>(NULL), actual);
        +  }
        +};
        +
        +// Separate the error generating code from the code path to reduce the stack
        +// frame size of CmpHelperOP. This helps reduce the overhead of some sanitizers
        +// when calling EXPECT_OP in a tight loop.
        +template <typename T1, typename T2>
        +AssertionResult CmpHelperOpFailure(const char* expr1, const char* expr2,
        +                                   const T1& val1, const T2& val2,
        +                                   const char* op) {
        +  return AssertionFailure()
        +         << "Expected: (" << expr1 << ") " << op << " (" << expr2
        +         << "), actual: " << FormatForComparisonFailureMessage(val1, val2)
        +         << " vs " << FormatForComparisonFailureMessage(val2, val1);
        +}
        +
        +// A macro for implementing the helper functions needed to implement
        +// ASSERT_?? and EXPECT_??.  It is here just to avoid copy-and-paste
        +// of similar code.
        +//
        +// For each templatized helper function, we also define an overloaded
        +// version for BiggestInt in order to reduce code bloat and allow
        +// anonymous enums to be used with {ASSERT|EXPECT}_?? when compiled
        +// with gcc 4.
        +//
        +// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
        +
        +#define GTEST_IMPL_CMP_HELPER_(op_name, op)\
        +template <typename T1, typename T2>\
        +AssertionResult CmpHelper##op_name(const char* expr1, const char* expr2, \
        +                                   const T1& val1, const T2& val2) {\
        +  if (val1 op val2) {\
        +    return AssertionSuccess();\
        +  } else {\
        +    return CmpHelperOpFailure(expr1, expr2, val1, val2, #op);\
        +  }\
        +}\
        +GTEST_API_ AssertionResult CmpHelper##op_name(\
        +    const char* expr1, const char* expr2, BiggestInt val1, BiggestInt val2)
        +
        +// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
        +
        +// Implements the helper function for {ASSERT|EXPECT}_NE
        +GTEST_IMPL_CMP_HELPER_(NE, !=);
        +// Implements the helper function for {ASSERT|EXPECT}_LE
        +GTEST_IMPL_CMP_HELPER_(LE, <=);
        +// Implements the helper function for {ASSERT|EXPECT}_LT
        +GTEST_IMPL_CMP_HELPER_(LT, <);
        +// Implements the helper function for {ASSERT|EXPECT}_GE
        +GTEST_IMPL_CMP_HELPER_(GE, >=);
        +// Implements the helper function for {ASSERT|EXPECT}_GT
        +GTEST_IMPL_CMP_HELPER_(GT, >);
        +
        +#undef GTEST_IMPL_CMP_HELPER_
        +
        +// The helper function for {ASSERT|EXPECT}_STREQ.
        +//
        +// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
        +GTEST_API_ AssertionResult CmpHelperSTREQ(const char* expected_expression,
        +                                          const char* actual_expression,
        +                                          const char* expected,
        +                                          const char* actual);
        +
        +// The helper function for {ASSERT|EXPECT}_STRCASEEQ.
        +//
        +// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
        +GTEST_API_ AssertionResult CmpHelperSTRCASEEQ(const char* expected_expression,
        +                                              const char* actual_expression,
        +                                              const char* expected,
        +                                              const char* actual);
        +
        +// The helper function for {ASSERT|EXPECT}_STRNE.
        +//
        +// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
        +GTEST_API_ AssertionResult CmpHelperSTRNE(const char* s1_expression,
        +                                          const char* s2_expression,
        +                                          const char* s1,
        +                                          const char* s2);
        +
        +// The helper function for {ASSERT|EXPECT}_STRCASENE.
        +//
        +// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
        +GTEST_API_ AssertionResult CmpHelperSTRCASENE(const char* s1_expression,
        +                                              const char* s2_expression,
        +                                              const char* s1,
        +                                              const char* s2);
        +
        +
        +// Helper function for *_STREQ on wide strings.
        +//
        +// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
        +GTEST_API_ AssertionResult CmpHelperSTREQ(const char* expected_expression,
        +                                          const char* actual_expression,
        +                                          const wchar_t* expected,
        +                                          const wchar_t* actual);
        +
        +// Helper function for *_STRNE on wide strings.
        +//
        +// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
        +GTEST_API_ AssertionResult CmpHelperSTRNE(const char* s1_expression,
        +                                          const char* s2_expression,
        +                                          const wchar_t* s1,
        +                                          const wchar_t* s2);
        +
        +}  // namespace internal
        +
        +// IsSubstring() and IsNotSubstring() are intended to be used as the
        +// first argument to {EXPECT,ASSERT}_PRED_FORMAT2(), not by
        +// themselves.  They check whether needle is a substring of haystack
        +// (NULL is considered a substring of itself only), and return an
        +// appropriate error message when they fail.
        +//
        +// The {needle,haystack}_expr arguments are the stringified
        +// expressions that generated the two real arguments.
        +GTEST_API_ AssertionResult IsSubstring(
        +    const char* needle_expr, const char* haystack_expr,
        +    const char* needle, const char* haystack);
        +GTEST_API_ AssertionResult IsSubstring(
        +    const char* needle_expr, const char* haystack_expr,
        +    const wchar_t* needle, const wchar_t* haystack);
        +GTEST_API_ AssertionResult IsNotSubstring(
        +    const char* needle_expr, const char* haystack_expr,
        +    const char* needle, const char* haystack);
        +GTEST_API_ AssertionResult IsNotSubstring(
        +    const char* needle_expr, const char* haystack_expr,
        +    const wchar_t* needle, const wchar_t* haystack);
        +GTEST_API_ AssertionResult IsSubstring(
        +    const char* needle_expr, const char* haystack_expr,
        +    const ::std::string& needle, const ::std::string& haystack);
        +GTEST_API_ AssertionResult IsNotSubstring(
        +    const char* needle_expr, const char* haystack_expr,
        +    const ::std::string& needle, const ::std::string& haystack);
        +
        +#if GTEST_HAS_STD_WSTRING
        +GTEST_API_ AssertionResult IsSubstring(
        +    const char* needle_expr, const char* haystack_expr,
        +    const ::std::wstring& needle, const ::std::wstring& haystack);
        +GTEST_API_ AssertionResult IsNotSubstring(
        +    const char* needle_expr, const char* haystack_expr,
        +    const ::std::wstring& needle, const ::std::wstring& haystack);
        +#endif  // GTEST_HAS_STD_WSTRING
        +
        +namespace internal {
        +
        +// Helper template function for comparing floating-points.
        +//
        +// Template parameter:
        +//
        +//   RawType: the raw floating-point type (either float or double)
        +//
        +// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
        +template <typename RawType>
        +AssertionResult CmpHelperFloatingPointEQ(const char* expected_expression,
        +                                         const char* actual_expression,
        +                                         RawType expected,
        +                                         RawType actual) {
        +  const FloatingPoint<RawType> lhs(expected), rhs(actual);
        +
        +  if (lhs.AlmostEquals(rhs)) {
        +    return AssertionSuccess();
        +  }
        +
        +  ::std::stringstream expected_ss;
        +  expected_ss << std::setprecision(std::numeric_limits<RawType>::digits10 + 2)
        +              << expected;
        +
        +  ::std::stringstream actual_ss;
        +  actual_ss << std::setprecision(std::numeric_limits<RawType>::digits10 + 2)
        +            << actual;
        +
        +  return EqFailure(expected_expression,
        +                   actual_expression,
        +                   StringStreamToString(&expected_ss),
        +                   StringStreamToString(&actual_ss),
        +                   false);
        +}
        +
        +// Helper function for implementing ASSERT_NEAR.
        +//
        +// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
        +GTEST_API_ AssertionResult DoubleNearPredFormat(const char* expr1,
        +                                                const char* expr2,
        +                                                const char* abs_error_expr,
        +                                                double val1,
        +                                                double val2,
        +                                                double abs_error);
        +
        +// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE.
        +// A class that enables one to stream messages to assertion macros
        +class GTEST_API_ AssertHelper {
        + public:
        +  // Constructor.
        +  AssertHelper(TestPartResult::Type type,
        +               const char* file,
        +               int line,
        +               const char* message);
        +  ~AssertHelper();
        +
        +  // Message assignment is a semantic trick to enable assertion
        +  // streaming; see the GTEST_MESSAGE_ macro below.
        +  void operator=(const Message& message) const;
        +
        + private:
        +  // We put our data in a struct so that the size of the AssertHelper class can
        +  // be as small as possible.  This is important because gcc is incapable of
        +  // re-using stack space even for temporary variables, so every EXPECT_EQ
        +  // reserves stack space for another AssertHelper.
        +  struct AssertHelperData {
        +    AssertHelperData(TestPartResult::Type t,
        +                     const char* srcfile,
        +                     int line_num,
        +                     const char* msg)
        +        : type(t), file(srcfile), line(line_num), message(msg) { }
        +
        +    TestPartResult::Type const type;
        +    const char* const file;
        +    int const line;
        +    std::string const message;
        +
        +   private:
        +    GTEST_DISALLOW_COPY_AND_ASSIGN_(AssertHelperData);
        +  };
        +
        +  AssertHelperData* const data_;
        +
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(AssertHelper);
        +};
        +
        +}  // namespace internal
        +
        +#if GTEST_HAS_PARAM_TEST
        +// The pure interface class that all value-parameterized tests inherit from.
        +// A value-parameterized class must inherit from both ::testing::Test and
        +// ::testing::WithParamInterface. In most cases that just means inheriting
        +// from ::testing::TestWithParam, but more complicated test hierarchies
        +// may need to inherit from Test and WithParamInterface at different levels.
        +//
        +// This interface has support for accessing the test parameter value via
        +// the GetParam() method.
        +//
        +// Use it with one of the parameter generator defining functions, like Range(),
        +// Values(), ValuesIn(), Bool(), and Combine().
        +//
        +// class FooTest : public ::testing::TestWithParam<int> {
        +//  protected:
        +//   FooTest() {
        +//     // Can use GetParam() here.
        +//   }
        +//   virtual ~FooTest() {
        +//     // Can use GetParam() here.
        +//   }
        +//   virtual void SetUp() {
        +//     // Can use GetParam() here.
        +//   }
        +//   virtual void TearDown {
        +//     // Can use GetParam() here.
        +//   }
        +// };
        +// TEST_P(FooTest, DoesBar) {
        +//   // Can use GetParam() method here.
        +//   Foo foo;
        +//   ASSERT_TRUE(foo.DoesBar(GetParam()));
        +// }
        +// INSTANTIATE_TEST_CASE_P(OneToTenRange, FooTest, ::testing::Range(1, 10));
        +
        +template <typename T>
        +class WithParamInterface {
        + public:
        +  typedef T ParamType;
        +  virtual ~WithParamInterface() {}
        +
        +  // The current parameter value. Is also available in the test fixture's
        +  // constructor. This member function is non-static, even though it only
        +  // references static data, to reduce the opportunity for incorrect uses
        +  // like writing 'WithParamInterface<bool>::GetParam()' for a test that
        +  // uses a fixture whose parameter type is int.
        +  const ParamType& GetParam() const {
        +    GTEST_CHECK_(parameter_ != NULL)
        +        << "GetParam() can only be called inside a value-parameterized test "
        +        << "-- did you intend to write TEST_P instead of TEST_F?";
        +    return *parameter_;
        +  }
        +
        + private:
        +  // Sets parameter value. The caller is responsible for making sure the value
        +  // remains alive and unchanged throughout the current test.
        +  static void SetParam(const ParamType* parameter) {
        +    parameter_ = parameter;
        +  }
        +
        +  // Static value used for accessing parameter during a test lifetime.
        +  static const ParamType* parameter_;
        +
        +  // TestClass must be a subclass of WithParamInterface<T> and Test.
        +  template <class TestClass> friend class internal::ParameterizedTestFactory;
        +};
        +
        +template <typename T>
        +const T* WithParamInterface<T>::parameter_ = NULL;
        +
        +// Most value-parameterized classes can ignore the existence of
        +// WithParamInterface, and can just inherit from ::testing::TestWithParam.
        +
        +template <typename T>
        +class TestWithParam : public Test, public WithParamInterface<T> {
        +};
        +
        +#endif  // GTEST_HAS_PARAM_TEST
        +
        +// Macros for indicating success/failure in test code.
        +
        +// ADD_FAILURE unconditionally adds a failure to the current test.
        +// SUCCEED generates a success - it doesn't automatically make the
        +// current test successful, as a test is only successful when it has
        +// no failure.
        +//
        +// EXPECT_* verifies that a certain condition is satisfied.  If not,
        +// it behaves like ADD_FAILURE.  In particular:
        +//
        +//   EXPECT_TRUE  verifies that a Boolean condition is true.
        +//   EXPECT_FALSE verifies that a Boolean condition is false.
        +//
        +// FAIL and ASSERT_* are similar to ADD_FAILURE and EXPECT_*, except
        +// that they will also abort the current function on failure.  People
        +// usually want the fail-fast behavior of FAIL and ASSERT_*, but those
        +// writing data-driven tests often find themselves using ADD_FAILURE
        +// and EXPECT_* more.
        +
        +// Generates a nonfatal failure with a generic message.
        +#define ADD_FAILURE() GTEST_NONFATAL_FAILURE_("Failed")
        +
        +// Generates a nonfatal failure at the given source file location with
        +// a generic message.
        +#define ADD_FAILURE_AT(file, line) \
        +  GTEST_MESSAGE_AT_(file, line, "Failed", \
        +                    ::testing::TestPartResult::kNonFatalFailure)
        +
        +// Generates a fatal failure with a generic message.
        +#define GTEST_FAIL() GTEST_FATAL_FAILURE_("Failed")
        +
        +// Define this macro to 1 to omit the definition of FAIL(), which is a
        +// generic name and clashes with some other libraries.
        +#if !GTEST_DONT_DEFINE_FAIL
        +# define FAIL() GTEST_FAIL()
        +#endif
        +
        +// Generates a success with a generic message.
        +#define GTEST_SUCCEED() GTEST_SUCCESS_("Succeeded")
        +
        +// Define this macro to 1 to omit the definition of SUCCEED(), which
        +// is a generic name and clashes with some other libraries.
        +#if !GTEST_DONT_DEFINE_SUCCEED
        +# define SUCCEED() GTEST_SUCCEED()
        +#endif
        +
        +// Macros for testing exceptions.
        +//
        +//    * {ASSERT|EXPECT}_THROW(statement, expected_exception):
        +//         Tests that the statement throws the expected exception.
        +//    * {ASSERT|EXPECT}_NO_THROW(statement):
        +//         Tests that the statement doesn't throw any exception.
        +//    * {ASSERT|EXPECT}_ANY_THROW(statement):
        +//         Tests that the statement throws an exception.
        +
        +#define EXPECT_THROW(statement, expected_exception) \
        +  GTEST_TEST_THROW_(statement, expected_exception, GTEST_NONFATAL_FAILURE_)
        +#define EXPECT_NO_THROW(statement) \
        +  GTEST_TEST_NO_THROW_(statement, GTEST_NONFATAL_FAILURE_)
        +#define EXPECT_ANY_THROW(statement) \
        +  GTEST_TEST_ANY_THROW_(statement, GTEST_NONFATAL_FAILURE_)
        +#define ASSERT_THROW(statement, expected_exception) \
        +  GTEST_TEST_THROW_(statement, expected_exception, GTEST_FATAL_FAILURE_)
        +#define ASSERT_NO_THROW(statement) \
        +  GTEST_TEST_NO_THROW_(statement, GTEST_FATAL_FAILURE_)
        +#define ASSERT_ANY_THROW(statement) \
        +  GTEST_TEST_ANY_THROW_(statement, GTEST_FATAL_FAILURE_)
        +
        +// Boolean assertions. Condition can be either a Boolean expression or an
        +// AssertionResult. For more information on how to use AssertionResult with
        +// these macros see comments on that class.
        +#define EXPECT_TRUE(condition) \
        +  GTEST_TEST_BOOLEAN_(condition, #condition, false, true, \
        +                      GTEST_NONFATAL_FAILURE_)
        +#define EXPECT_FALSE(condition) \
        +  GTEST_TEST_BOOLEAN_(!(condition), #condition, true, false, \
        +                      GTEST_NONFATAL_FAILURE_)
        +#define ASSERT_TRUE(condition) \
        +  GTEST_TEST_BOOLEAN_(condition, #condition, false, true, \
        +                      GTEST_FATAL_FAILURE_)
        +#define ASSERT_FALSE(condition) \
        +  GTEST_TEST_BOOLEAN_(!(condition), #condition, true, false, \
        +                      GTEST_FATAL_FAILURE_)
        +
        +// Includes the auto-generated header that implements a family of
        +// generic predicate assertion macros.
        +#include "gtest/gtest_pred_impl.h"
        +
        +// Macros for testing equalities and inequalities.
        +//
        +//    * {ASSERT|EXPECT}_EQ(expected, actual): Tests that expected == actual
        +//    * {ASSERT|EXPECT}_NE(v1, v2):           Tests that v1 != v2
        +//    * {ASSERT|EXPECT}_LT(v1, v2):           Tests that v1 < v2
        +//    * {ASSERT|EXPECT}_LE(v1, v2):           Tests that v1 <= v2
        +//    * {ASSERT|EXPECT}_GT(v1, v2):           Tests that v1 > v2
        +//    * {ASSERT|EXPECT}_GE(v1, v2):           Tests that v1 >= v2
        +//
        +// When they are not, Google Test prints both the tested expressions and
        +// their actual values.  The values must be compatible built-in types,
        +// or you will get a compiler error.  By "compatible" we mean that the
        +// values can be compared by the respective operator.
        +//
        +// Note:
        +//
        +//   1. It is possible to make a user-defined type work with
        +//   {ASSERT|EXPECT}_??(), but that requires overloading the
        +//   comparison operators and is thus discouraged by the Google C++
        +//   Usage Guide.  Therefore, you are advised to use the
        +//   {ASSERT|EXPECT}_TRUE() macro to assert that two objects are
        +//   equal.
        +//
        +//   2. The {ASSERT|EXPECT}_??() macros do pointer comparisons on
        +//   pointers (in particular, C strings).  Therefore, if you use it
        +//   with two C strings, you are testing how their locations in memory
        +//   are related, not how their content is related.  To compare two C
        +//   strings by content, use {ASSERT|EXPECT}_STR*().
        +//
        +//   3. {ASSERT|EXPECT}_EQ(expected, actual) is preferred to
        +//   {ASSERT|EXPECT}_TRUE(expected == actual), as the former tells you
        +//   what the actual value is when it fails, and similarly for the
        +//   other comparisons.
        +//
        +//   4. Do not depend on the order in which {ASSERT|EXPECT}_??()
        +//   evaluate their arguments, which is undefined.
        +//
        +//   5. These macros evaluate their arguments exactly once.
        +//
        +// Examples:
        +//
        +//   EXPECT_NE(5, Foo());
        +//   EXPECT_EQ(NULL, a_pointer);
        +//   ASSERT_LT(i, array_size);
        +//   ASSERT_GT(records.size(), 0) << "There is no record left.";
        +
        +#define EXPECT_EQ(expected, actual) \
        +  EXPECT_PRED_FORMAT2(::testing::internal:: \
        +                      EqHelper<GTEST_IS_NULL_LITERAL_(expected)>::Compare, \
        +                      expected, actual)
        +#define EXPECT_NE(expected, actual) \
        +  EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperNE, expected, actual)
        +#define EXPECT_LE(val1, val2) \
        +  EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperLE, val1, val2)
        +#define EXPECT_LT(val1, val2) \
        +  EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperLT, val1, val2)
        +#define EXPECT_GE(val1, val2) \
        +  EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperGE, val1, val2)
        +#define EXPECT_GT(val1, val2) \
        +  EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperGT, val1, val2)
        +
        +#define GTEST_ASSERT_EQ(expected, actual) \
        +  ASSERT_PRED_FORMAT2(::testing::internal:: \
        +                      EqHelper<GTEST_IS_NULL_LITERAL_(expected)>::Compare, \
        +                      expected, actual)
        +#define GTEST_ASSERT_NE(val1, val2) \
        +  ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperNE, val1, val2)
        +#define GTEST_ASSERT_LE(val1, val2) \
        +  ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperLE, val1, val2)
        +#define GTEST_ASSERT_LT(val1, val2) \
        +  ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperLT, val1, val2)
        +#define GTEST_ASSERT_GE(val1, val2) \
        +  ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperGE, val1, val2)
        +#define GTEST_ASSERT_GT(val1, val2) \
        +  ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperGT, val1, val2)
        +
        +// Define macro GTEST_DONT_DEFINE_ASSERT_XY to 1 to omit the definition of
        +// ASSERT_XY(), which clashes with some users' own code.
        +
        +#if !GTEST_DONT_DEFINE_ASSERT_EQ
        +# define ASSERT_EQ(val1, val2) GTEST_ASSERT_EQ(val1, val2)
        +#endif
        +
        +#if !GTEST_DONT_DEFINE_ASSERT_NE
        +# define ASSERT_NE(val1, val2) GTEST_ASSERT_NE(val1, val2)
        +#endif
        +
        +#if !GTEST_DONT_DEFINE_ASSERT_LE
        +# define ASSERT_LE(val1, val2) GTEST_ASSERT_LE(val1, val2)
        +#endif
        +
        +#if !GTEST_DONT_DEFINE_ASSERT_LT
        +# define ASSERT_LT(val1, val2) GTEST_ASSERT_LT(val1, val2)
        +#endif
        +
        +#if !GTEST_DONT_DEFINE_ASSERT_GE
        +# define ASSERT_GE(val1, val2) GTEST_ASSERT_GE(val1, val2)
        +#endif
        +
        +#if !GTEST_DONT_DEFINE_ASSERT_GT
        +# define ASSERT_GT(val1, val2) GTEST_ASSERT_GT(val1, val2)
        +#endif
        +
        +// C-string Comparisons.  All tests treat NULL and any non-NULL string
        +// as different.  Two NULLs are equal.
        +//
        +//    * {ASSERT|EXPECT}_STREQ(s1, s2):     Tests that s1 == s2
        +//    * {ASSERT|EXPECT}_STRNE(s1, s2):     Tests that s1 != s2
        +//    * {ASSERT|EXPECT}_STRCASEEQ(s1, s2): Tests that s1 == s2, ignoring case
        +//    * {ASSERT|EXPECT}_STRCASENE(s1, s2): Tests that s1 != s2, ignoring case
        +//
        +// For wide or narrow string objects, you can use the
        +// {ASSERT|EXPECT}_??() macros.
        +//
        +// Don't depend on the order in which the arguments are evaluated,
        +// which is undefined.
        +//
        +// These macros evaluate their arguments exactly once.
        +
        +#define EXPECT_STREQ(expected, actual) \
        +  EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTREQ, expected, actual)
        +#define EXPECT_STRNE(s1, s2) \
        +  EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTRNE, s1, s2)
        +#define EXPECT_STRCASEEQ(expected, actual) \
        +  EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASEEQ, expected, actual)
        +#define EXPECT_STRCASENE(s1, s2)\
        +  EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASENE, s1, s2)
        +
        +#define ASSERT_STREQ(expected, actual) \
        +  ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTREQ, expected, actual)
        +#define ASSERT_STRNE(s1, s2) \
        +  ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTRNE, s1, s2)
        +#define ASSERT_STRCASEEQ(expected, actual) \
        +  ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASEEQ, expected, actual)
        +#define ASSERT_STRCASENE(s1, s2)\
        +  ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASENE, s1, s2)
        +
        +// Macros for comparing floating-point numbers.
        +//
        +//    * {ASSERT|EXPECT}_FLOAT_EQ(expected, actual):
        +//         Tests that two float values are almost equal.
        +//    * {ASSERT|EXPECT}_DOUBLE_EQ(expected, actual):
        +//         Tests that two double values are almost equal.
        +//    * {ASSERT|EXPECT}_NEAR(v1, v2, abs_error):
        +//         Tests that v1 and v2 are within the given distance to each other.
        +//
        +// Google Test uses ULP-based comparison to automatically pick a default
        +// error bound that is appropriate for the operands.  See the
        +// FloatingPoint template class in gtest-internal.h if you are
        +// interested in the implementation details.
        +
        +#define EXPECT_FLOAT_EQ(expected, actual)\
        +  EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ<float>, \
        +                      expected, actual)
        +
        +#define EXPECT_DOUBLE_EQ(expected, actual)\
        +  EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ<double>, \
        +                      expected, actual)
        +
        +#define ASSERT_FLOAT_EQ(expected, actual)\
        +  ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ<float>, \
        +                      expected, actual)
        +
        +#define ASSERT_DOUBLE_EQ(expected, actual)\
        +  ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ<double>, \
        +                      expected, actual)
        +
        +#define EXPECT_NEAR(val1, val2, abs_error)\
        +  EXPECT_PRED_FORMAT3(::testing::internal::DoubleNearPredFormat, \
        +                      val1, val2, abs_error)
        +
        +#define ASSERT_NEAR(val1, val2, abs_error)\
        +  ASSERT_PRED_FORMAT3(::testing::internal::DoubleNearPredFormat, \
        +                      val1, val2, abs_error)
        +
        +// These predicate format functions work on floating-point values, and
        +// can be used in {ASSERT|EXPECT}_PRED_FORMAT2*(), e.g.
        +//
        +//   EXPECT_PRED_FORMAT2(testing::DoubleLE, Foo(), 5.0);
        +
        +// Asserts that val1 is less than, or almost equal to, val2.  Fails
        +// otherwise.  In particular, it fails if either val1 or val2 is NaN.
        +GTEST_API_ AssertionResult FloatLE(const char* expr1, const char* expr2,
        +                                   float val1, float val2);
        +GTEST_API_ AssertionResult DoubleLE(const char* expr1, const char* expr2,
        +                                    double val1, double val2);
        +
        +
        +#if GTEST_OS_WINDOWS
        +
        +// Macros that test for HRESULT failure and success, these are only useful
        +// on Windows, and rely on Windows SDK macros and APIs to compile.
        +//
        +//    * {ASSERT|EXPECT}_HRESULT_{SUCCEEDED|FAILED}(expr)
        +//
        +// When expr unexpectedly fails or succeeds, Google Test prints the
        +// expected result and the actual result with both a human-readable
        +// string representation of the error, if available, as well as the
        +// hex result code.
        +# define EXPECT_HRESULT_SUCCEEDED(expr) \
        +    EXPECT_PRED_FORMAT1(::testing::internal::IsHRESULTSuccess, (expr))
        +
        +# define ASSERT_HRESULT_SUCCEEDED(expr) \
        +    ASSERT_PRED_FORMAT1(::testing::internal::IsHRESULTSuccess, (expr))
        +
        +# define EXPECT_HRESULT_FAILED(expr) \
        +    EXPECT_PRED_FORMAT1(::testing::internal::IsHRESULTFailure, (expr))
        +
        +# define ASSERT_HRESULT_FAILED(expr) \
        +    ASSERT_PRED_FORMAT1(::testing::internal::IsHRESULTFailure, (expr))
        +
        +#endif  // GTEST_OS_WINDOWS
        +
        +// Macros that execute statement and check that it doesn't generate new fatal
        +// failures in the current thread.
        +//
        +//   * {ASSERT|EXPECT}_NO_FATAL_FAILURE(statement);
        +//
        +// Examples:
        +//
        +//   EXPECT_NO_FATAL_FAILURE(Process());
        +//   ASSERT_NO_FATAL_FAILURE(Process()) << "Process() failed";
        +//
        +#define ASSERT_NO_FATAL_FAILURE(statement) \
        +    GTEST_TEST_NO_FATAL_FAILURE_(statement, GTEST_FATAL_FAILURE_)
        +#define EXPECT_NO_FATAL_FAILURE(statement) \
        +    GTEST_TEST_NO_FATAL_FAILURE_(statement, GTEST_NONFATAL_FAILURE_)
        +
        +// Causes a trace (including the source file path, the current line
        +// number, and the given message) to be included in every test failure
        +// message generated by code in the current scope.  The effect is
        +// undone when the control leaves the current scope.
        +//
        +// The message argument can be anything streamable to std::ostream.
        +//
        +// In the implementation, we include the current line number as part
        +// of the dummy variable name, thus allowing multiple SCOPED_TRACE()s
        +// to appear in the same block - as long as they are on different
        +// lines.
        +#define SCOPED_TRACE(message) \
        +  ::testing::internal::ScopedTrace GTEST_CONCAT_TOKEN_(gtest_trace_, __LINE__)(\
        +    __FILE__, __LINE__, ::testing::Message() << (message))
        +
        +// Compile-time assertion for type equality.
        +// StaticAssertTypeEq<type1, type2>() compiles iff type1 and type2 are
        +// the same type.  The value it returns is not interesting.
        +//
        +// Instead of making StaticAssertTypeEq a class template, we make it a
        +// function template that invokes a helper class template.  This
        +// prevents a user from misusing StaticAssertTypeEq<T1, T2> by
        +// defining objects of that type.
        +//
        +// CAVEAT:
        +//
        +// When used inside a method of a class template,
        +// StaticAssertTypeEq<T1, T2>() is effective ONLY IF the method is
        +// instantiated.  For example, given:
        +//
        +//   template <typename T> class Foo {
        +//    public:
        +//     void Bar() { testing::StaticAssertTypeEq<int, T>(); }
        +//   };
        +//
        +// the code:
        +//
        +//   void Test1() { Foo<bool> foo; }
        +//
        +// will NOT generate a compiler error, as Foo<bool>::Bar() is never
        +// actually instantiated.  Instead, you need:
        +//
        +//   void Test2() { Foo<bool> foo; foo.Bar(); }
        +//
        +// to cause a compiler error.
        +template <typename T1, typename T2>
        +bool StaticAssertTypeEq() {
        +  (void)internal::StaticAssertTypeEqHelper<T1, T2>();
        +  return true;
        +}
        +
        +// Defines a test.
        +//
        +// The first parameter is the name of the test case, and the second
        +// parameter is the name of the test within the test case.
        +//
        +// The convention is to end the test case name with "Test".  For
        +// example, a test case for the Foo class can be named FooTest.
        +//
        +// Test code should appear between braces after an invocation of
        +// this macro.  Example:
        +//
        +//   TEST(FooTest, InitializesCorrectly) {
        +//     Foo foo;
        +//     EXPECT_TRUE(foo.StatusIsOK());
        +//   }
        +
        +// Note that we call GetTestTypeId() instead of GetTypeId<
        +// ::testing::Test>() here to get the type ID of testing::Test.  This
        +// is to work around a suspected linker bug when using Google Test as
        +// a framework on Mac OS X.  The bug causes GetTypeId<
        +// ::testing::Test>() to return different values depending on whether
        +// the call is from the Google Test framework itself or from user test
        +// code.  GetTestTypeId() is guaranteed to always return the same
        +// value, as it always calls GetTypeId<>() from the Google Test
        +// framework.
        +#define GTEST_TEST(test_case_name, test_name)\
        +  GTEST_TEST_(test_case_name, test_name, \
        +              ::testing::Test, ::testing::internal::GetTestTypeId())
        +
        +// Define this macro to 1 to omit the definition of TEST(), which
        +// is a generic name and clashes with some other libraries.
        +#if !GTEST_DONT_DEFINE_TEST
        +# define TEST(test_case_name, test_name) GTEST_TEST(test_case_name, test_name)
        +#endif
        +
        +// Defines a test that uses a test fixture.
        +//
        +// The first parameter is the name of the test fixture class, which
        +// also doubles as the test case name.  The second parameter is the
        +// name of the test within the test case.
        +//
        +// A test fixture class must be declared earlier.  The user should put
        +// his test code between braces after using this macro.  Example:
        +//
        +//   class FooTest : public testing::Test {
        +//    protected:
        +//     virtual void SetUp() { b_.AddElement(3); }
        +//
        +//     Foo a_;
        +//     Foo b_;
        +//   };
        +//
        +//   TEST_F(FooTest, InitializesCorrectly) {
        +//     EXPECT_TRUE(a_.StatusIsOK());
        +//   }
        +//
        +//   TEST_F(FooTest, ReturnsElementCountCorrectly) {
        +//     EXPECT_EQ(0, a_.size());
        +//     EXPECT_EQ(1, b_.size());
        +//   }
        +
        +#define TEST_F(test_fixture, test_name)\
        +  GTEST_TEST_(test_fixture, test_name, test_fixture, \
        +              ::testing::internal::GetTypeId<test_fixture>())
        +
        +}  // namespace testing
        +
        +// Use this function in main() to run all tests.  It returns 0 if all
        +// tests are successful, or 1 otherwise.
        +//
        +// RUN_ALL_TESTS() should be invoked after the command line has been
        +// parsed by InitGoogleTest().
        +//
        +// This function was formerly a macro; thus, it is in the global
        +// namespace and has an all-caps name.
        +int RUN_ALL_TESTS() GTEST_MUST_USE_RESULT_;
        +
        +inline int RUN_ALL_TESTS() {
        +  return ::testing::UnitTest::GetInstance()->Run();
        +}
        +
        +#endif  // GTEST_INCLUDE_GTEST_GTEST_H_
        diff --git a/lib/ann/fann/lib/googletest/include/gtest/gtest_pred_impl.h b/lib/ann/fann/lib/googletest/include/gtest/gtest_pred_impl.h
        new file mode 100644
        index 0000000..30ae712
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/include/gtest/gtest_pred_impl.h
        @@ -0,0 +1,358 @@
        +// Copyright 2006, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +// This file is AUTOMATICALLY GENERATED on 10/31/2011 by command
        +// 'gen_gtest_pred_impl.py 5'.  DO NOT EDIT BY HAND!
        +//
        +// Implements a family of generic predicate assertion macros.
        +
        +#ifndef GTEST_INCLUDE_GTEST_GTEST_PRED_IMPL_H_
        +#define GTEST_INCLUDE_GTEST_GTEST_PRED_IMPL_H_
        +
        +// Makes sure this header is not included before gtest.h.
        +#ifndef GTEST_INCLUDE_GTEST_GTEST_H_
        +# error Do not include gtest_pred_impl.h directly.  Include gtest.h instead.
        +#endif  // GTEST_INCLUDE_GTEST_GTEST_H_
        +
        +// This header implements a family of generic predicate assertion
        +// macros:
        +//
        +//   ASSERT_PRED_FORMAT1(pred_format, v1)
        +//   ASSERT_PRED_FORMAT2(pred_format, v1, v2)
        +//   ...
        +//
        +// where pred_format is a function or functor that takes n (in the
        +// case of ASSERT_PRED_FORMATn) values and their source expression
        +// text, and returns a testing::AssertionResult.  See the definition
        +// of ASSERT_EQ in gtest.h for an example.
        +//
        +// If you don't care about formatting, you can use the more
        +// restrictive version:
        +//
        +//   ASSERT_PRED1(pred, v1)
        +//   ASSERT_PRED2(pred, v1, v2)
        +//   ...
        +//
        +// where pred is an n-ary function or functor that returns bool,
        +// and the values v1, v2, ..., must support the << operator for
        +// streaming to std::ostream.
        +//
        +// We also define the EXPECT_* variations.
        +//
        +// For now we only support predicates whose arity is at most 5.
        +// Please email googletestframework@googlegroups.com if you need
        +// support for higher arities.
        +
        +// GTEST_ASSERT_ is the basic statement to which all of the assertions
        +// in this file reduce.  Don't use this in your code.
        +
        +#define GTEST_ASSERT_(expression, on_failure) \
        +  GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
        +  if (const ::testing::AssertionResult gtest_ar = (expression)) \
        +    ; \
        +  else \
        +    on_failure(gtest_ar.failure_message())
        +
        +
        +// Helper function for implementing {EXPECT|ASSERT}_PRED1.  Don't use
        +// this in your code.
        +template <typename Pred,
        +          typename T1>
        +AssertionResult AssertPred1Helper(const char* pred_text,
        +                                  const char* e1,
        +                                  Pred pred,
        +                                  const T1& v1) {
        +  if (pred(v1)) return AssertionSuccess();
        +
        +  return AssertionFailure() << pred_text << "("
        +                            << e1 << ") evaluates to false, where"
        +                            << "\n" << e1 << " evaluates to " << v1;
        +}
        +
        +// Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT1.
        +// Don't use this in your code.
        +#define GTEST_PRED_FORMAT1_(pred_format, v1, on_failure)\
        +  GTEST_ASSERT_(pred_format(#v1, v1), \
        +                on_failure)
        +
        +// Internal macro for implementing {EXPECT|ASSERT}_PRED1.  Don't use
        +// this in your code.
        +#define GTEST_PRED1_(pred, v1, on_failure)\
        +  GTEST_ASSERT_(::testing::AssertPred1Helper(#pred, \
        +                                             #v1, \
        +                                             pred, \
        +                                             v1), on_failure)
        +
        +// Unary predicate assertion macros.
        +#define EXPECT_PRED_FORMAT1(pred_format, v1) \
        +  GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_NONFATAL_FAILURE_)
        +#define EXPECT_PRED1(pred, v1) \
        +  GTEST_PRED1_(pred, v1, GTEST_NONFATAL_FAILURE_)
        +#define ASSERT_PRED_FORMAT1(pred_format, v1) \
        +  GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_FATAL_FAILURE_)
        +#define ASSERT_PRED1(pred, v1) \
        +  GTEST_PRED1_(pred, v1, GTEST_FATAL_FAILURE_)
        +
        +
        +
        +// Helper function for implementing {EXPECT|ASSERT}_PRED2.  Don't use
        +// this in your code.
        +template <typename Pred,
        +          typename T1,
        +          typename T2>
        +AssertionResult AssertPred2Helper(const char* pred_text,
        +                                  const char* e1,
        +                                  const char* e2,
        +                                  Pred pred,
        +                                  const T1& v1,
        +                                  const T2& v2) {
        +  if (pred(v1, v2)) return AssertionSuccess();
        +
        +  return AssertionFailure() << pred_text << "("
        +                            << e1 << ", "
        +                            << e2 << ") evaluates to false, where"
        +                            << "\n" << e1 << " evaluates to " << v1
        +                            << "\n" << e2 << " evaluates to " << v2;
        +}
        +
        +// Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT2.
        +// Don't use this in your code.
        +#define GTEST_PRED_FORMAT2_(pred_format, v1, v2, on_failure)\
        +  GTEST_ASSERT_(pred_format(#v1, #v2, v1, v2), \
        +                on_failure)
        +
        +// Internal macro for implementing {EXPECT|ASSERT}_PRED2.  Don't use
        +// this in your code.
        +#define GTEST_PRED2_(pred, v1, v2, on_failure)\
        +  GTEST_ASSERT_(::testing::AssertPred2Helper(#pred, \
        +                                             #v1, \
        +                                             #v2, \
        +                                             pred, \
        +                                             v1, \
        +                                             v2), on_failure)
        +
        +// Binary predicate assertion macros.
        +#define EXPECT_PRED_FORMAT2(pred_format, v1, v2) \
        +  GTEST_PRED_FORMAT2_(pred_format, v1, v2, GTEST_NONFATAL_FAILURE_)
        +#define EXPECT_PRED2(pred, v1, v2) \
        +  GTEST_PRED2_(pred, v1, v2, GTEST_NONFATAL_FAILURE_)
        +#define ASSERT_PRED_FORMAT2(pred_format, v1, v2) \
        +  GTEST_PRED_FORMAT2_(pred_format, v1, v2, GTEST_FATAL_FAILURE_)
        +#define ASSERT_PRED2(pred, v1, v2) \
        +  GTEST_PRED2_(pred, v1, v2, GTEST_FATAL_FAILURE_)
        +
        +
        +
        +// Helper function for implementing {EXPECT|ASSERT}_PRED3.  Don't use
        +// this in your code.
        +template <typename Pred,
        +          typename T1,
        +          typename T2,
        +          typename T3>
        +AssertionResult AssertPred3Helper(const char* pred_text,
        +                                  const char* e1,
        +                                  const char* e2,
        +                                  const char* e3,
        +                                  Pred pred,
        +                                  const T1& v1,
        +                                  const T2& v2,
        +                                  const T3& v3) {
        +  if (pred(v1, v2, v3)) return AssertionSuccess();
        +
        +  return AssertionFailure() << pred_text << "("
        +                            << e1 << ", "
        +                            << e2 << ", "
        +                            << e3 << ") evaluates to false, where"
        +                            << "\n" << e1 << " evaluates to " << v1
        +                            << "\n" << e2 << " evaluates to " << v2
        +                            << "\n" << e3 << " evaluates to " << v3;
        +}
        +
        +// Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT3.
        +// Don't use this in your code.
        +#define GTEST_PRED_FORMAT3_(pred_format, v1, v2, v3, on_failure)\
        +  GTEST_ASSERT_(pred_format(#v1, #v2, #v3, v1, v2, v3), \
        +                on_failure)
        +
        +// Internal macro for implementing {EXPECT|ASSERT}_PRED3.  Don't use
        +// this in your code.
        +#define GTEST_PRED3_(pred, v1, v2, v3, on_failure)\
        +  GTEST_ASSERT_(::testing::AssertPred3Helper(#pred, \
        +                                             #v1, \
        +                                             #v2, \
        +                                             #v3, \
        +                                             pred, \
        +                                             v1, \
        +                                             v2, \
        +                                             v3), on_failure)
        +
        +// Ternary predicate assertion macros.
        +#define EXPECT_PRED_FORMAT3(pred_format, v1, v2, v3) \
        +  GTEST_PRED_FORMAT3_(pred_format, v1, v2, v3, GTEST_NONFATAL_FAILURE_)
        +#define EXPECT_PRED3(pred, v1, v2, v3) \
        +  GTEST_PRED3_(pred, v1, v2, v3, GTEST_NONFATAL_FAILURE_)
        +#define ASSERT_PRED_FORMAT3(pred_format, v1, v2, v3) \
        +  GTEST_PRED_FORMAT3_(pred_format, v1, v2, v3, GTEST_FATAL_FAILURE_)
        +#define ASSERT_PRED3(pred, v1, v2, v3) \
        +  GTEST_PRED3_(pred, v1, v2, v3, GTEST_FATAL_FAILURE_)
        +
        +
        +
        +// Helper function for implementing {EXPECT|ASSERT}_PRED4.  Don't use
        +// this in your code.
        +template <typename Pred,
        +          typename T1,
        +          typename T2,
        +          typename T3,
        +          typename T4>
        +AssertionResult AssertPred4Helper(const char* pred_text,
        +                                  const char* e1,
        +                                  const char* e2,
        +                                  const char* e3,
        +                                  const char* e4,
        +                                  Pred pred,
        +                                  const T1& v1,
        +                                  const T2& v2,
        +                                  const T3& v3,
        +                                  const T4& v4) {
        +  if (pred(v1, v2, v3, v4)) return AssertionSuccess();
        +
        +  return AssertionFailure() << pred_text << "("
        +                            << e1 << ", "
        +                            << e2 << ", "
        +                            << e3 << ", "
        +                            << e4 << ") evaluates to false, where"
        +                            << "\n" << e1 << " evaluates to " << v1
        +                            << "\n" << e2 << " evaluates to " << v2
        +                            << "\n" << e3 << " evaluates to " << v3
        +                            << "\n" << e4 << " evaluates to " << v4;
        +}
        +
        +// Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT4.
        +// Don't use this in your code.
        +#define GTEST_PRED_FORMAT4_(pred_format, v1, v2, v3, v4, on_failure)\
        +  GTEST_ASSERT_(pred_format(#v1, #v2, #v3, #v4, v1, v2, v3, v4), \
        +                on_failure)
        +
        +// Internal macro for implementing {EXPECT|ASSERT}_PRED4.  Don't use
        +// this in your code.
        +#define GTEST_PRED4_(pred, v1, v2, v3, v4, on_failure)\
        +  GTEST_ASSERT_(::testing::AssertPred4Helper(#pred, \
        +                                             #v1, \
        +                                             #v2, \
        +                                             #v3, \
        +                                             #v4, \
        +                                             pred, \
        +                                             v1, \
        +                                             v2, \
        +                                             v3, \
        +                                             v4), on_failure)
        +
        +// 4-ary predicate assertion macros.
        +#define EXPECT_PRED_FORMAT4(pred_format, v1, v2, v3, v4) \
        +  GTEST_PRED_FORMAT4_(pred_format, v1, v2, v3, v4, GTEST_NONFATAL_FAILURE_)
        +#define EXPECT_PRED4(pred, v1, v2, v3, v4) \
        +  GTEST_PRED4_(pred, v1, v2, v3, v4, GTEST_NONFATAL_FAILURE_)
        +#define ASSERT_PRED_FORMAT4(pred_format, v1, v2, v3, v4) \
        +  GTEST_PRED_FORMAT4_(pred_format, v1, v2, v3, v4, GTEST_FATAL_FAILURE_)
        +#define ASSERT_PRED4(pred, v1, v2, v3, v4) \
        +  GTEST_PRED4_(pred, v1, v2, v3, v4, GTEST_FATAL_FAILURE_)
        +
        +
        +
        +// Helper function for implementing {EXPECT|ASSERT}_PRED5.  Don't use
        +// this in your code.
        +template <typename Pred,
        +          typename T1,
        +          typename T2,
        +          typename T3,
        +          typename T4,
        +          typename T5>
        +AssertionResult AssertPred5Helper(const char* pred_text,
        +                                  const char* e1,
        +                                  const char* e2,
        +                                  const char* e3,
        +                                  const char* e4,
        +                                  const char* e5,
        +                                  Pred pred,
        +                                  const T1& v1,
        +                                  const T2& v2,
        +                                  const T3& v3,
        +                                  const T4& v4,
        +                                  const T5& v5) {
        +  if (pred(v1, v2, v3, v4, v5)) return AssertionSuccess();
        +
        +  return AssertionFailure() << pred_text << "("
        +                            << e1 << ", "
        +                            << e2 << ", "
        +                            << e3 << ", "
        +                            << e4 << ", "
        +                            << e5 << ") evaluates to false, where"
        +                            << "\n" << e1 << " evaluates to " << v1
        +                            << "\n" << e2 << " evaluates to " << v2
        +                            << "\n" << e3 << " evaluates to " << v3
        +                            << "\n" << e4 << " evaluates to " << v4
        +                            << "\n" << e5 << " evaluates to " << v5;
        +}
        +
        +// Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT5.
        +// Don't use this in your code.
        +#define GTEST_PRED_FORMAT5_(pred_format, v1, v2, v3, v4, v5, on_failure)\
        +  GTEST_ASSERT_(pred_format(#v1, #v2, #v3, #v4, #v5, v1, v2, v3, v4, v5), \
        +                on_failure)
        +
        +// Internal macro for implementing {EXPECT|ASSERT}_PRED5.  Don't use
        +// this in your code.
        +#define GTEST_PRED5_(pred, v1, v2, v3, v4, v5, on_failure)\
        +  GTEST_ASSERT_(::testing::AssertPred5Helper(#pred, \
        +                                             #v1, \
        +                                             #v2, \
        +                                             #v3, \
        +                                             #v4, \
        +                                             #v5, \
        +                                             pred, \
        +                                             v1, \
        +                                             v2, \
        +                                             v3, \
        +                                             v4, \
        +                                             v5), on_failure)
        +
        +// 5-ary predicate assertion macros.
        +#define EXPECT_PRED_FORMAT5(pred_format, v1, v2, v3, v4, v5) \
        +  GTEST_PRED_FORMAT5_(pred_format, v1, v2, v3, v4, v5, GTEST_NONFATAL_FAILURE_)
        +#define EXPECT_PRED5(pred, v1, v2, v3, v4, v5) \
        +  GTEST_PRED5_(pred, v1, v2, v3, v4, v5, GTEST_NONFATAL_FAILURE_)
        +#define ASSERT_PRED_FORMAT5(pred_format, v1, v2, v3, v4, v5) \
        +  GTEST_PRED_FORMAT5_(pred_format, v1, v2, v3, v4, v5, GTEST_FATAL_FAILURE_)
        +#define ASSERT_PRED5(pred, v1, v2, v3, v4, v5) \
        +  GTEST_PRED5_(pred, v1, v2, v3, v4, v5, GTEST_FATAL_FAILURE_)
        +
        +
        +
        +#endif  // GTEST_INCLUDE_GTEST_GTEST_PRED_IMPL_H_
        diff --git a/lib/ann/fann/lib/googletest/include/gtest/gtest_prod.h b/lib/ann/fann/lib/googletest/include/gtest/gtest_prod.h
        new file mode 100644
        index 0000000..da80ddc
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/include/gtest/gtest_prod.h
        @@ -0,0 +1,58 @@
        +// Copyright 2006, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +//
        +// Google C++ Testing Framework definitions useful in production code.
        +
        +#ifndef GTEST_INCLUDE_GTEST_GTEST_PROD_H_
        +#define GTEST_INCLUDE_GTEST_GTEST_PROD_H_
        +
        +// When you need to test the private or protected members of a class,
        +// use the FRIEND_TEST macro to declare your tests as friends of the
        +// class.  For example:
        +//
        +// class MyClass {
        +//  private:
        +//   void MyMethod();
        +//   FRIEND_TEST(MyClassTest, MyMethod);
        +// };
        +//
        +// class MyClassTest : public testing::Test {
        +//   // ...
        +// };
        +//
        +// TEST_F(MyClassTest, MyMethod) {
        +//   // Can call MyClass::MyMethod() here.
        +// }
        +
        +#define FRIEND_TEST(test_case_name, test_name)\
        +friend class test_case_name##_##test_name##_Test
        +
        +#endif  // GTEST_INCLUDE_GTEST_GTEST_PROD_H_
        diff --git a/lib/ann/fann/lib/googletest/include/gtest/internal/custom/gtest-port.h b/lib/ann/fann/lib/googletest/include/gtest/internal/custom/gtest-port.h
        new file mode 100644
        index 0000000..7e744bd
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/include/gtest/internal/custom/gtest-port.h
        @@ -0,0 +1,69 @@
        +// Copyright 2015, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Injection point for custom user configurations.
        +// The following macros can be defined:
        +//
        +//   Flag related macros:
        +//     GTEST_FLAG(flag_name)
        +//     GTEST_USE_OWN_FLAGFILE_FLAG_  - Define to 0 when the system provides its
        +//                                     own flagfile flag parsing.
        +//     GTEST_DECLARE_bool_(name)
        +//     GTEST_DECLARE_int32_(name)
        +//     GTEST_DECLARE_string_(name)
        +//     GTEST_DEFINE_bool_(name, default_val, doc)
        +//     GTEST_DEFINE_int32_(name, default_val, doc)
        +//     GTEST_DEFINE_string_(name, default_val, doc)
        +//
        +//   Test filtering:
        +//     GTEST_TEST_FILTER_ENV_VAR_ - The name of an environment variable that
        +//                                  will be used if --GTEST_FLAG(test_filter)
        +//                                  is not provided.
        +//
        +//   Logging:
        +//     GTEST_LOG_(severity)
        +//     GTEST_CHECK_(condition)
        +//     Functions LogToStderr() and FlushInfoLog() have to be provided too.
        +//
        +//   Threading:
        +//     GTEST_HAS_NOTIFICATION_ - Enabled if Notification is already provided.
        +//     GTEST_HAS_MUTEX_AND_THREAD_LOCAL_ - Enabled if Mutex and ThreadLocal are
        +//                                         already provided.
        +//     Must also provide GTEST_DECLARE_STATIC_MUTEX_(mutex) and
        +//     GTEST_DEFINE_STATIC_MUTEX_(mutex)
        +//
        +//     GTEST_EXCLUSIVE_LOCK_REQUIRED_(locks)
        +//     GTEST_LOCK_EXCLUDED_(locks)
        +//
        +// ** Custom implementation starts here **
        +
        +#ifndef GTEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_PORT_H_
        +#define GTEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_PORT_H_
        +
        +#endif  // GTEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_PORT_H_
        diff --git a/lib/ann/fann/lib/googletest/include/gtest/internal/custom/gtest-printers.h b/lib/ann/fann/lib/googletest/include/gtest/internal/custom/gtest-printers.h
        new file mode 100644
        index 0000000..60c1ea0
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/include/gtest/internal/custom/gtest-printers.h
        @@ -0,0 +1,42 @@
        +// Copyright 2015, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// This file provides an injection point for custom printers in a local
        +// installation of gTest.
        +// It will be included from gtest-printers.h and the overrides in this file
        +// will be visible to everyone.
        +// See documentation at gtest/gtest-printers.h for details on how to define a
        +// custom printer.
        +//
        +// ** Custom implementation starts here **
        +
        +#ifndef GTEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_PRINTERS_H_
        +#define GTEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_PRINTERS_H_
        +
        +#endif  // GTEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_PRINTERS_H_
        diff --git a/lib/ann/fann/lib/googletest/include/gtest/internal/custom/gtest.h b/lib/ann/fann/lib/googletest/include/gtest/internal/custom/gtest.h
        new file mode 100644
        index 0000000..c27412a
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/include/gtest/internal/custom/gtest.h
        @@ -0,0 +1,41 @@
        +// Copyright 2015, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Injection point for custom user configurations.
        +// The following macros can be defined:
        +//
        +// GTEST_OS_STACK_TRACE_GETTER_  - The name of an implementation of
        +//                                 OsStackTraceGetterInterface.
        +//
        +// ** Custom implementation starts here **
        +
        +#ifndef GTEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_H_
        +#define GTEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_H_
        +
        +#endif  // GTEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_H_
        diff --git a/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-death-test-internal.h b/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-death-test-internal.h
        new file mode 100644
        index 0000000..2b3a78f
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-death-test-internal.h
        @@ -0,0 +1,319 @@
        +// Copyright 2005, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Authors: wan@google.com (Zhanyong Wan), eefacm@gmail.com (Sean Mcafee)
        +//
        +// The Google C++ Testing Framework (Google Test)
        +//
        +// This header file defines internal utilities needed for implementing
        +// death tests.  They are subject to change without notice.
        +
        +#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_DEATH_TEST_INTERNAL_H_
        +#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_DEATH_TEST_INTERNAL_H_
        +
        +#include "gtest/internal/gtest-internal.h"
        +
        +#include <stdio.h>
        +
        +namespace testing {
        +namespace internal {
        +
        +GTEST_DECLARE_string_(internal_run_death_test);
        +
        +// Names of the flags (needed for parsing Google Test flags).
        +const char kDeathTestStyleFlag[] = "death_test_style";
        +const char kDeathTestUseFork[] = "death_test_use_fork";
        +const char kInternalRunDeathTestFlag[] = "internal_run_death_test";
        +
        +#if GTEST_HAS_DEATH_TEST
        +
        +// DeathTest is a class that hides much of the complexity of the
        +// GTEST_DEATH_TEST_ macro.  It is abstract; its static Create method
        +// returns a concrete class that depends on the prevailing death test
        +// style, as defined by the --gtest_death_test_style and/or
        +// --gtest_internal_run_death_test flags.
        +
        +// In describing the results of death tests, these terms are used with
        +// the corresponding definitions:
        +//
        +// exit status:  The integer exit information in the format specified
        +//               by wait(2)
        +// exit code:    The integer code passed to exit(3), _exit(2), or
        +//               returned from main()
        +class GTEST_API_ DeathTest {
        + public:
        +  // Create returns false if there was an error determining the
        +  // appropriate action to take for the current death test; for example,
        +  // if the gtest_death_test_style flag is set to an invalid value.
        +  // The LastMessage method will return a more detailed message in that
        +  // case.  Otherwise, the DeathTest pointer pointed to by the "test"
        +  // argument is set.  If the death test should be skipped, the pointer
        +  // is set to NULL; otherwise, it is set to the address of a new concrete
        +  // DeathTest object that controls the execution of the current test.
        +  static bool Create(const char* statement, const RE* regex,
        +                     const char* file, int line, DeathTest** test);
        +  DeathTest();
        +  virtual ~DeathTest() { }
        +
        +  // A helper class that aborts a death test when it's deleted.
        +  class ReturnSentinel {
        +   public:
        +    explicit ReturnSentinel(DeathTest* test) : test_(test) { }
        +    ~ReturnSentinel() { test_->Abort(TEST_ENCOUNTERED_RETURN_STATEMENT); }
        +   private:
        +    DeathTest* const test_;
        +    GTEST_DISALLOW_COPY_AND_ASSIGN_(ReturnSentinel);
        +  } GTEST_ATTRIBUTE_UNUSED_;
        +
        +  // An enumeration of possible roles that may be taken when a death
        +  // test is encountered.  EXECUTE means that the death test logic should
        +  // be executed immediately.  OVERSEE means that the program should prepare
        +  // the appropriate environment for a child process to execute the death
        +  // test, then wait for it to complete.
        +  enum TestRole { OVERSEE_TEST, EXECUTE_TEST };
        +
        +  // An enumeration of the three reasons that a test might be aborted.
        +  enum AbortReason {
        +    TEST_ENCOUNTERED_RETURN_STATEMENT,
        +    TEST_THREW_EXCEPTION,
        +    TEST_DID_NOT_DIE
        +  };
        +
        +  // Assumes one of the above roles.
        +  virtual TestRole AssumeRole() = 0;
        +
        +  // Waits for the death test to finish and returns its status.
        +  virtual int Wait() = 0;
        +
        +  // Returns true if the death test passed; that is, the test process
        +  // exited during the test, its exit status matches a user-supplied
        +  // predicate, and its stderr output matches a user-supplied regular
        +  // expression.
        +  // The user-supplied predicate may be a macro expression rather
        +  // than a function pointer or functor, or else Wait and Passed could
        +  // be combined.
        +  virtual bool Passed(bool exit_status_ok) = 0;
        +
        +  // Signals that the death test did not die as expected.
        +  virtual void Abort(AbortReason reason) = 0;
        +
        +  // Returns a human-readable outcome message regarding the outcome of
        +  // the last death test.
        +  static const char* LastMessage();
        +
        +  static void set_last_death_test_message(const std::string& message);
        +
        + private:
        +  // A string containing a description of the outcome of the last death test.
        +  static std::string last_death_test_message_;
        +
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(DeathTest);
        +};
        +
        +// Factory interface for death tests.  May be mocked out for testing.
        +class DeathTestFactory {
        + public:
        +  virtual ~DeathTestFactory() { }
        +  virtual bool Create(const char* statement, const RE* regex,
        +                      const char* file, int line, DeathTest** test) = 0;
        +};
        +
        +// A concrete DeathTestFactory implementation for normal use.
        +class DefaultDeathTestFactory : public DeathTestFactory {
        + public:
        +  virtual bool Create(const char* statement, const RE* regex,
        +                      const char* file, int line, DeathTest** test);
        +};
        +
        +// Returns true if exit_status describes a process that was terminated
        +// by a signal, or exited normally with a nonzero exit code.
        +GTEST_API_ bool ExitedUnsuccessfully(int exit_status);
        +
        +// Traps C++ exceptions escaping statement and reports them as test
        +// failures. Note that trapping SEH exceptions is not implemented here.
        +# if GTEST_HAS_EXCEPTIONS
        +#  define GTEST_EXECUTE_DEATH_TEST_STATEMENT_(statement, death_test) \
        +  try { \
        +    GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \
        +  } catch (const ::std::exception& gtest_exception) { \
        +    fprintf(\
        +        stderr, \
        +        "\n%s: Caught std::exception-derived exception escaping the " \
        +        "death test statement. Exception message: %s\n", \
        +        ::testing::internal::FormatFileLocation(__FILE__, __LINE__).c_str(), \
        +        gtest_exception.what()); \
        +    fflush(stderr); \
        +    death_test->Abort(::testing::internal::DeathTest::TEST_THREW_EXCEPTION); \
        +  } catch (...) { \
        +    death_test->Abort(::testing::internal::DeathTest::TEST_THREW_EXCEPTION); \
        +  }
        +
        +# else
        +#  define GTEST_EXECUTE_DEATH_TEST_STATEMENT_(statement, death_test) \
        +  GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement)
        +
        +# endif
        +
        +// This macro is for implementing ASSERT_DEATH*, EXPECT_DEATH*,
        +// ASSERT_EXIT*, and EXPECT_EXIT*.
        +# define GTEST_DEATH_TEST_(statement, predicate, regex, fail) \
        +  GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
        +  if (::testing::internal::AlwaysTrue()) { \
        +    const ::testing::internal::RE& gtest_regex = (regex); \
        +    ::testing::internal::DeathTest* gtest_dt; \
        +    if (!::testing::internal::DeathTest::Create(#statement, &gtest_regex, \
        +        __FILE__, __LINE__, &gtest_dt)) { \
        +      goto GTEST_CONCAT_TOKEN_(gtest_label_, __LINE__); \
        +    } \
        +    if (gtest_dt != NULL) { \
        +      ::testing::internal::scoped_ptr< ::testing::internal::DeathTest> \
        +          gtest_dt_ptr(gtest_dt); \
        +      switch (gtest_dt->AssumeRole()) { \
        +        case ::testing::internal::DeathTest::OVERSEE_TEST: \
        +          if (!gtest_dt->Passed(predicate(gtest_dt->Wait()))) { \
        +            goto GTEST_CONCAT_TOKEN_(gtest_label_, __LINE__); \
        +          } \
        +          break; \
        +        case ::testing::internal::DeathTest::EXECUTE_TEST: { \
        +          ::testing::internal::DeathTest::ReturnSentinel \
        +              gtest_sentinel(gtest_dt); \
        +          GTEST_EXECUTE_DEATH_TEST_STATEMENT_(statement, gtest_dt); \
        +          gtest_dt->Abort(::testing::internal::DeathTest::TEST_DID_NOT_DIE); \
        +          break; \
        +        } \
        +        default: \
        +          break; \
        +      } \
        +    } \
        +  } else \
        +    GTEST_CONCAT_TOKEN_(gtest_label_, __LINE__): \
        +      fail(::testing::internal::DeathTest::LastMessage())
        +// The symbol "fail" here expands to something into which a message
        +// can be streamed.
        +
        +// This macro is for implementing ASSERT/EXPECT_DEBUG_DEATH when compiled in
        +// NDEBUG mode. In this case we need the statements to be executed, the regex is
        +// ignored, and the macro must accept a streamed message even though the message
        +// is never printed.
        +# define GTEST_EXECUTE_STATEMENT_(statement, regex) \
        +  GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
        +  if (::testing::internal::AlwaysTrue()) { \
        +     GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \
        +  } else \
        +    ::testing::Message()
        +
        +// A class representing the parsed contents of the
        +// --gtest_internal_run_death_test flag, as it existed when
        +// RUN_ALL_TESTS was called.
        +class InternalRunDeathTestFlag {
        + public:
        +  InternalRunDeathTestFlag(const std::string& a_file,
        +                           int a_line,
        +                           int an_index,
        +                           int a_write_fd)
        +      : file_(a_file), line_(a_line), index_(an_index),
        +        write_fd_(a_write_fd) {}
        +
        +  ~InternalRunDeathTestFlag() {
        +    if (write_fd_ >= 0)
        +      posix::Close(write_fd_);
        +  }
        +
        +  const std::string& file() const { return file_; }
        +  int line() const { return line_; }
        +  int index() const { return index_; }
        +  int write_fd() const { return write_fd_; }
        +
        + private:
        +  std::string file_;
        +  int line_;
        +  int index_;
        +  int write_fd_;
        +
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(InternalRunDeathTestFlag);
        +};
        +
        +// Returns a newly created InternalRunDeathTestFlag object with fields
        +// initialized from the GTEST_FLAG(internal_run_death_test) flag if
        +// the flag is specified; otherwise returns NULL.
        +InternalRunDeathTestFlag* ParseInternalRunDeathTestFlag();
        +
        +#else  // GTEST_HAS_DEATH_TEST
        +
        +// This macro is used for implementing macros such as
        +// EXPECT_DEATH_IF_SUPPORTED and ASSERT_DEATH_IF_SUPPORTED on systems where
        +// death tests are not supported. Those macros must compile on such systems
        +// iff EXPECT_DEATH and ASSERT_DEATH compile with the same parameters on
        +// systems that support death tests. This allows one to write such a macro
        +// on a system that does not support death tests and be sure that it will
        +// compile on a death-test supporting system.
        +//
        +// Parameters:
        +//   statement -  A statement that a macro such as EXPECT_DEATH would test
        +//                for program termination. This macro has to make sure this
        +//                statement is compiled but not executed, to ensure that
        +//                EXPECT_DEATH_IF_SUPPORTED compiles with a certain
        +//                parameter iff EXPECT_DEATH compiles with it.
        +//   regex     -  A regex that a macro such as EXPECT_DEATH would use to test
        +//                the output of statement.  This parameter has to be
        +//                compiled but not evaluated by this macro, to ensure that
        +//                this macro only accepts expressions that a macro such as
        +//                EXPECT_DEATH would accept.
        +//   terminator - Must be an empty statement for EXPECT_DEATH_IF_SUPPORTED
        +//                and a return statement for ASSERT_DEATH_IF_SUPPORTED.
        +//                This ensures that ASSERT_DEATH_IF_SUPPORTED will not
        +//                compile inside functions where ASSERT_DEATH doesn't
        +//                compile.
        +//
        +//  The branch that has an always false condition is used to ensure that
        +//  statement and regex are compiled (and thus syntactically correct) but
        +//  never executed. The unreachable code macro protects the terminator
        +//  statement from generating an 'unreachable code' warning in case
        +//  statement unconditionally returns or throws. The Message constructor at
        +//  the end allows the syntax of streaming additional messages into the
        +//  macro, for compilational compatibility with EXPECT_DEATH/ASSERT_DEATH.
        +# define GTEST_UNSUPPORTED_DEATH_TEST_(statement, regex, terminator) \
        +    GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
        +    if (::testing::internal::AlwaysTrue()) { \
        +      GTEST_LOG_(WARNING) \
        +          << "Death tests are not supported on this platform.\n" \
        +          << "Statement '" #statement "' cannot be verified."; \
        +    } else if (::testing::internal::AlwaysFalse()) { \
        +      ::testing::internal::RE::PartialMatch(".*", (regex)); \
        +      GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \
        +      terminator; \
        +    } else \
        +      ::testing::Message()
        +
        +#endif  // GTEST_HAS_DEATH_TEST
        +
        +}  // namespace internal
        +}  // namespace testing
        +
        +#endif  // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_DEATH_TEST_INTERNAL_H_
        diff --git a/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-filepath.h b/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-filepath.h
        new file mode 100644
        index 0000000..7a13b4b
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-filepath.h
        @@ -0,0 +1,206 @@
        +// Copyright 2008, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: keith.ray@gmail.com (Keith Ray)
        +//
        +// Google Test filepath utilities
        +//
        +// This header file declares classes and functions used internally by
        +// Google Test.  They are subject to change without notice.
        +//
        +// This file is #included in <gtest/internal/gtest-internal.h>.
        +// Do not include this header file separately!
        +
        +#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_FILEPATH_H_
        +#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_FILEPATH_H_
        +
        +#include "gtest/internal/gtest-string.h"
        +
        +namespace testing {
        +namespace internal {
        +
        +// FilePath - a class for file and directory pathname manipulation which
        +// handles platform-specific conventions (like the pathname separator).
        +// Used for helper functions for naming files in a directory for xml output.
        +// Except for Set methods, all methods are const or static, which provides an
        +// "immutable value object" -- useful for peace of mind.
        +// A FilePath with a value ending in a path separator ("like/this/") represents
        +// a directory, otherwise it is assumed to represent a file. In either case,
        +// it may or may not represent an actual file or directory in the file system.
        +// Names are NOT checked for syntax correctness -- no checking for illegal
        +// characters, malformed paths, etc.
        +
        +class GTEST_API_ FilePath {
        + public:
        +  FilePath() : pathname_("") { }
        +  FilePath(const FilePath& rhs) : pathname_(rhs.pathname_) { }
        +
        +  explicit FilePath(const std::string& pathname) : pathname_(pathname) {
        +    Normalize();
        +  }
        +
        +  FilePath& operator=(const FilePath& rhs) {
        +    Set(rhs);
        +    return *this;
        +  }
        +
        +  void Set(const FilePath& rhs) {
        +    pathname_ = rhs.pathname_;
        +  }
        +
        +  const std::string& string() const { return pathname_; }
        +  const char* c_str() const { return pathname_.c_str(); }
        +
        +  // Returns the current working directory, or "" if unsuccessful.
        +  static FilePath GetCurrentDir();
        +
        +  // Given directory = "dir", base_name = "test", number = 0,
        +  // extension = "xml", returns "dir/test.xml". If number is greater
        +  // than zero (e.g., 12), returns "dir/test_12.xml".
        +  // On Windows platform, uses \ as the separator rather than /.
        +  static FilePath MakeFileName(const FilePath& directory,
        +                               const FilePath& base_name,
        +                               int number,
        +                               const char* extension);
        +
        +  // Given directory = "dir", relative_path = "test.xml",
        +  // returns "dir/test.xml".
        +  // On Windows, uses \ as the separator rather than /.
        +  static FilePath ConcatPaths(const FilePath& directory,
        +                              const FilePath& relative_path);
        +
        +  // Returns a pathname for a file that does not currently exist. The pathname
        +  // will be directory/base_name.extension or
        +  // directory/base_name_<number>.extension if directory/base_name.extension
        +  // already exists. The number will be incremented until a pathname is found
        +  // that does not already exist.
        +  // Examples: 'dir/foo_test.xml' or 'dir/foo_test_1.xml'.
        +  // There could be a race condition if two or more processes are calling this
        +  // function at the same time -- they could both pick the same filename.
        +  static FilePath GenerateUniqueFileName(const FilePath& directory,
        +                                         const FilePath& base_name,
        +                                         const char* extension);
        +
        +  // Returns true iff the path is "".
        +  bool IsEmpty() const { return pathname_.empty(); }
        +
        +  // If input name has a trailing separator character, removes it and returns
        +  // the name, otherwise return the name string unmodified.
        +  // On Windows platform, uses \ as the separator, other platforms use /.
        +  FilePath RemoveTrailingPathSeparator() const;
        +
        +  // Returns a copy of the FilePath with the directory part removed.
        +  // Example: FilePath("path/to/file").RemoveDirectoryName() returns
        +  // FilePath("file"). If there is no directory part ("just_a_file"), it returns
        +  // the FilePath unmodified. If there is no file part ("just_a_dir/") it
        +  // returns an empty FilePath ("").
        +  // On Windows platform, '\' is the path separator, otherwise it is '/'.
        +  FilePath RemoveDirectoryName() const;
        +
        +  // RemoveFileName returns the directory path with the filename removed.
        +  // Example: FilePath("path/to/file").RemoveFileName() returns "path/to/".
        +  // If the FilePath is "a_file" or "/a_file", RemoveFileName returns
        +  // FilePath("./") or, on Windows, FilePath(".\\"). If the filepath does
        +  // not have a file, like "just/a/dir/", it returns the FilePath unmodified.
        +  // On Windows platform, '\' is the path separator, otherwise it is '/'.
        +  FilePath RemoveFileName() const;
        +
        +  // Returns a copy of the FilePath with the case-insensitive extension removed.
        +  // Example: FilePath("dir/file.exe").RemoveExtension("EXE") returns
        +  // FilePath("dir/file"). If a case-insensitive extension is not
        +  // found, returns a copy of the original FilePath.
        +  FilePath RemoveExtension(const char* extension) const;
        +
        +  // Creates directories so that path exists. Returns true if successful or if
        +  // the directories already exist; returns false if unable to create
        +  // directories for any reason. Will also return false if the FilePath does
        +  // not represent a directory (that is, it doesn't end with a path separator).
        +  bool CreateDirectoriesRecursively() const;
        +
        +  // Create the directory so that path exists. Returns true if successful or
        +  // if the directory already exists; returns false if unable to create the
        +  // directory for any reason, including if the parent directory does not
        +  // exist. Not named "CreateDirectory" because that's a macro on Windows.
        +  bool CreateFolder() const;
        +
        +  // Returns true if FilePath describes something in the file-system,
        +  // either a file, directory, or whatever, and that something exists.
        +  bool FileOrDirectoryExists() const;
        +
        +  // Returns true if pathname describes a directory in the file-system
        +  // that exists.
        +  bool DirectoryExists() const;
        +
        +  // Returns true if FilePath ends with a path separator, which indicates that
        +  // it is intended to represent a directory. Returns false otherwise.
        +  // This does NOT check that a directory (or file) actually exists.
        +  bool IsDirectory() const;
        +
        +  // Returns true if pathname describes a root directory. (Windows has one
        +  // root directory per disk drive.)
        +  bool IsRootDirectory() const;
        +
        +  // Returns true if pathname describes an absolute path.
        +  bool IsAbsolutePath() const;
        +
        + private:
        +  // Replaces multiple consecutive separators with a single separator.
        +  // For example, "bar///foo" becomes "bar/foo". Does not eliminate other
        +  // redundancies that might be in a pathname involving "." or "..".
        +  //
        +  // A pathname with multiple consecutive separators may occur either through
        +  // user error or as a result of some scripts or APIs that generate a pathname
        +  // with a trailing separator. On other platforms the same API or script
        +  // may NOT generate a pathname with a trailing "/". Then elsewhere that
        +  // pathname may have another "/" and pathname components added to it,
        +  // without checking for the separator already being there.
        +  // The script language and operating system may allow paths like "foo//bar"
        +  // but some of the functions in FilePath will not handle that correctly. In
        +  // particular, RemoveTrailingPathSeparator() only removes one separator, and
        +  // it is called in CreateDirectoriesRecursively() assuming that it will change
        +  // a pathname from directory syntax (trailing separator) to filename syntax.
        +  //
        +  // On Windows this method also replaces the alternate path separator '/' with
        +  // the primary path separator '\\', so that for example "bar\\/\\foo" becomes
        +  // "bar\\foo".
        +
        +  void Normalize();
        +
        +  // Returns a pointer to the last occurence of a valid path separator in
        +  // the FilePath. On Windows, for example, both '/' and '\' are valid path
        +  // separators. Returns NULL if no path separator was found.
        +  const char* FindLastPathSeparator() const;
        +
        +  std::string pathname_;
        +};  // class FilePath
        +
        +}  // namespace internal
        +}  // namespace testing
        +
        +#endif  // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_FILEPATH_H_
        diff --git a/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-internal.h b/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-internal.h
        new file mode 100644
        index 0000000..ebd1cf6
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-internal.h
        @@ -0,0 +1,1238 @@
        +// Copyright 2005, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Authors: wan@google.com (Zhanyong Wan), eefacm@gmail.com (Sean Mcafee)
        +//
        +// The Google C++ Testing Framework (Google Test)
        +//
        +// This header file declares functions and macros used internally by
        +// Google Test.  They are subject to change without notice.
        +
        +#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_INTERNAL_H_
        +#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_INTERNAL_H_
        +
        +#include "gtest/internal/gtest-port.h"
        +
        +#if GTEST_OS_LINUX
        +# include <stdlib.h>
        +# include <sys/types.h>
        +# include <sys/wait.h>
        +# include <unistd.h>
        +#endif  // GTEST_OS_LINUX
        +
        +#if GTEST_HAS_EXCEPTIONS
        +# include <stdexcept>
        +#endif
        +
        +#include <ctype.h>
        +#include <float.h>
        +#include <string.h>
        +#include <iomanip>
        +#include <limits>
        +#include <map>
        +#include <set>
        +#include <string>
        +#include <vector>
        +
        +#include "gtest/gtest-message.h"
        +#include "gtest/internal/gtest-string.h"
        +#include "gtest/internal/gtest-filepath.h"
        +#include "gtest/internal/gtest-type-util.h"
        +
        +// Due to C++ preprocessor weirdness, we need double indirection to
        +// concatenate two tokens when one of them is __LINE__.  Writing
        +//
        +//   foo ## __LINE__
        +//
        +// will result in the token foo__LINE__, instead of foo followed by
        +// the current line number.  For more details, see
        +// http://www.parashift.com/c++-faq-lite/misc-technical-issues.html#faq-39.6
        +#define GTEST_CONCAT_TOKEN_(foo, bar) GTEST_CONCAT_TOKEN_IMPL_(foo, bar)
        +#define GTEST_CONCAT_TOKEN_IMPL_(foo, bar) foo ## bar
        +
        +class ProtocolMessage;
        +namespace proto2 { class Message; }
        +
        +namespace testing {
        +
        +// Forward declarations.
        +
        +class AssertionResult;                 // Result of an assertion.
        +class Message;                         // Represents a failure message.
        +class Test;                            // Represents a test.
        +class TestInfo;                        // Information about a test.
        +class TestPartResult;                  // Result of a test part.
        +class UnitTest;                        // A collection of test cases.
        +
        +template <typename T>
        +::std::string PrintToString(const T& value);
        +
        +namespace internal {
        +
        +struct TraceInfo;                      // Information about a trace point.
        +class ScopedTrace;                     // Implements scoped trace.
        +class TestInfoImpl;                    // Opaque implementation of TestInfo
        +class UnitTestImpl;                    // Opaque implementation of UnitTest
        +
        +// The text used in failure messages to indicate the start of the
        +// stack trace.
        +GTEST_API_ extern const char kStackTraceMarker[];
        +
        +// Two overloaded helpers for checking at compile time whether an
        +// expression is a null pointer literal (i.e. NULL or any 0-valued
        +// compile-time integral constant).  Their return values have
        +// different sizes, so we can use sizeof() to test which version is
        +// picked by the compiler.  These helpers have no implementations, as
        +// we only need their signatures.
        +//
        +// Given IsNullLiteralHelper(x), the compiler will pick the first
        +// version if x can be implicitly converted to Secret*, and pick the
        +// second version otherwise.  Since Secret is a secret and incomplete
        +// type, the only expression a user can write that has type Secret* is
        +// a null pointer literal.  Therefore, we know that x is a null
        +// pointer literal if and only if the first version is picked by the
        +// compiler.
        +char IsNullLiteralHelper(Secret* p);
        +char (&IsNullLiteralHelper(...))[2];  // NOLINT
        +
        +// A compile-time bool constant that is true if and only if x is a
        +// null pointer literal (i.e. NULL or any 0-valued compile-time
        +// integral constant).
        +#ifdef GTEST_ELLIPSIS_NEEDS_POD_
        +// We lose support for NULL detection where the compiler doesn't like
        +// passing non-POD classes through ellipsis (...).
        +# define GTEST_IS_NULL_LITERAL_(x) false
        +#else
        +# define GTEST_IS_NULL_LITERAL_(x) \
        +    (sizeof(::testing::internal::IsNullLiteralHelper(x)) == 1)
        +#endif  // GTEST_ELLIPSIS_NEEDS_POD_
        +
        +// Appends the user-supplied message to the Google-Test-generated message.
        +GTEST_API_ std::string AppendUserMessage(
        +    const std::string& gtest_msg, const Message& user_msg);
        +
        +#if GTEST_HAS_EXCEPTIONS
        +
        +// This exception is thrown by (and only by) a failed Google Test
        +// assertion when GTEST_FLAG(throw_on_failure) is true (if exceptions
        +// are enabled).  We derive it from std::runtime_error, which is for
        +// errors presumably detectable only at run time.  Since
        +// std::runtime_error inherits from std::exception, many testing
        +// frameworks know how to extract and print the message inside it.
        +class GTEST_API_ GoogleTestFailureException : public ::std::runtime_error {
        + public:
        +  explicit GoogleTestFailureException(const TestPartResult& failure);
        +};
        +
        +#endif  // GTEST_HAS_EXCEPTIONS
        +
        +// A helper class for creating scoped traces in user programs.
        +class GTEST_API_ ScopedTrace {
        + public:
        +  // The c'tor pushes the given source file location and message onto
        +  // a trace stack maintained by Google Test.
        +  ScopedTrace(const char* file, int line, const Message& message);
        +
        +  // The d'tor pops the info pushed by the c'tor.
        +  //
        +  // Note that the d'tor is not virtual in order to be efficient.
        +  // Don't inherit from ScopedTrace!
        +  ~ScopedTrace();
        +
        + private:
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(ScopedTrace);
        +} GTEST_ATTRIBUTE_UNUSED_;  // A ScopedTrace object does its job in its
        +                            // c'tor and d'tor.  Therefore it doesn't
        +                            // need to be used otherwise.
        +
        +namespace edit_distance {
        +// Returns the optimal edits to go from 'left' to 'right'.
        +// All edits cost the same, with replace having lower priority than
        +// add/remove.
        +// Simple implementation of the Wagner–Fischer algorithm.
        +// See http://en.wikipedia.org/wiki/Wagner-Fischer_algorithm
        +enum EditType { kMatch, kAdd, kRemove, kReplace };
        +GTEST_API_ std::vector<EditType> CalculateOptimalEdits(
        +    const std::vector<size_t>& left, const std::vector<size_t>& right);
        +
        +// Same as above, but the input is represented as strings.
        +GTEST_API_ std::vector<EditType> CalculateOptimalEdits(
        +    const std::vector<std::string>& left,
        +    const std::vector<std::string>& right);
        +
        +// Create a diff of the input strings in Unified diff format.
        +GTEST_API_ std::string CreateUnifiedDiff(const std::vector<std::string>& left,
        +                                         const std::vector<std::string>& right,
        +                                         size_t context = 2);
        +
        +}  // namespace edit_distance
        +
        +// Calculate the diff between 'left' and 'right' and return it in unified diff
        +// format.
        +// If not null, stores in 'total_line_count' the total number of lines found
        +// in left + right.
        +GTEST_API_ std::string DiffStrings(const std::string& left,
        +                                   const std::string& right,
        +                                   size_t* total_line_count);
        +
        +// Constructs and returns the message for an equality assertion
        +// (e.g. ASSERT_EQ, EXPECT_STREQ, etc) failure.
        +//
        +// The first four parameters are the expressions used in the assertion
        +// and their values, as strings.  For example, for ASSERT_EQ(foo, bar)
        +// where foo is 5 and bar is 6, we have:
        +//
        +//   expected_expression: "foo"
        +//   actual_expression:   "bar"
        +//   expected_value:      "5"
        +//   actual_value:        "6"
        +//
        +// The ignoring_case parameter is true iff the assertion is a
        +// *_STRCASEEQ*.  When it's true, the string " (ignoring case)" will
        +// be inserted into the message.
        +GTEST_API_ AssertionResult EqFailure(const char* expected_expression,
        +                                     const char* actual_expression,
        +                                     const std::string& expected_value,
        +                                     const std::string& actual_value,
        +                                     bool ignoring_case);
        +
        +// Constructs a failure message for Boolean assertions such as EXPECT_TRUE.
        +GTEST_API_ std::string GetBoolAssertionFailureMessage(
        +    const AssertionResult& assertion_result,
        +    const char* expression_text,
        +    const char* actual_predicate_value,
        +    const char* expected_predicate_value);
        +
        +// This template class represents an IEEE floating-point number
        +// (either single-precision or double-precision, depending on the
        +// template parameters).
        +//
        +// The purpose of this class is to do more sophisticated number
        +// comparison.  (Due to round-off error, etc, it's very unlikely that
        +// two floating-points will be equal exactly.  Hence a naive
        +// comparison by the == operation often doesn't work.)
        +//
        +// Format of IEEE floating-point:
        +//
        +//   The most-significant bit being the leftmost, an IEEE
        +//   floating-point looks like
        +//
        +//     sign_bit exponent_bits fraction_bits
        +//
        +//   Here, sign_bit is a single bit that designates the sign of the
        +//   number.
        +//
        +//   For float, there are 8 exponent bits and 23 fraction bits.
        +//
        +//   For double, there are 11 exponent bits and 52 fraction bits.
        +//
        +//   More details can be found at
        +//   http://en.wikipedia.org/wiki/IEEE_floating-point_standard.
        +//
        +// Template parameter:
        +//
        +//   RawType: the raw floating-point type (either float or double)
        +template <typename RawType>
        +class FloatingPoint {
        + public:
        +  // Defines the unsigned integer type that has the same size as the
        +  // floating point number.
        +  typedef typename TypeWithSize<sizeof(RawType)>::UInt Bits;
        +
        +  // Constants.
        +
        +  // # of bits in a number.
        +  static const size_t kBitCount = 8*sizeof(RawType);
        +
        +  // # of fraction bits in a number.
        +  static const size_t kFractionBitCount =
        +    std::numeric_limits<RawType>::digits - 1;
        +
        +  // # of exponent bits in a number.
        +  static const size_t kExponentBitCount = kBitCount - 1 - kFractionBitCount;
        +
        +  // The mask for the sign bit.
        +  static const Bits kSignBitMask = static_cast<Bits>(1) << (kBitCount - 1);
        +
        +  // The mask for the fraction bits.
        +  static const Bits kFractionBitMask =
        +    ~static_cast<Bits>(0) >> (kExponentBitCount + 1);
        +
        +  // The mask for the exponent bits.
        +  static const Bits kExponentBitMask = ~(kSignBitMask | kFractionBitMask);
        +
        +  // How many ULP's (Units in the Last Place) we want to tolerate when
        +  // comparing two numbers.  The larger the value, the more error we
        +  // allow.  A 0 value means that two numbers must be exactly the same
        +  // to be considered equal.
        +  //
        +  // The maximum error of a single floating-point operation is 0.5
        +  // units in the last place.  On Intel CPU's, all floating-point
        +  // calculations are done with 80-bit precision, while double has 64
        +  // bits.  Therefore, 4 should be enough for ordinary use.
        +  //
        +  // See the following article for more details on ULP:
        +  // http://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/
        +  static const size_t kMaxUlps = 4;
        +
        +  // Constructs a FloatingPoint from a raw floating-point number.
        +  //
        +  // On an Intel CPU, passing a non-normalized NAN (Not a Number)
        +  // around may change its bits, although the new value is guaranteed
        +  // to be also a NAN.  Therefore, don't expect this constructor to
        +  // preserve the bits in x when x is a NAN.
        +  explicit FloatingPoint(const RawType& x) { u_.value_ = x; }
        +
        +  // Static methods
        +
        +  // Reinterprets a bit pattern as a floating-point number.
        +  //
        +  // This function is needed to test the AlmostEquals() method.
        +  static RawType ReinterpretBits(const Bits bits) {
        +    FloatingPoint fp(0);
        +    fp.u_.bits_ = bits;
        +    return fp.u_.value_;
        +  }
        +
        +  // Returns the floating-point number that represent positive infinity.
        +  static RawType Infinity() {
        +    return ReinterpretBits(kExponentBitMask);
        +  }
        +
        +  // Returns the maximum representable finite floating-point number.
        +  static RawType Max();
        +
        +  // Non-static methods
        +
        +  // Returns the bits that represents this number.
        +  const Bits &bits() const { return u_.bits_; }
        +
        +  // Returns the exponent bits of this number.
        +  Bits exponent_bits() const { return kExponentBitMask & u_.bits_; }
        +
        +  // Returns the fraction bits of this number.
        +  Bits fraction_bits() const { return kFractionBitMask & u_.bits_; }
        +
        +  // Returns the sign bit of this number.
        +  Bits sign_bit() const { return kSignBitMask & u_.bits_; }
        +
        +  // Returns true iff this is NAN (not a number).
        +  bool is_nan() const {
        +    // It's a NAN if the exponent bits are all ones and the fraction
        +    // bits are not entirely zeros.
        +    return (exponent_bits() == kExponentBitMask) && (fraction_bits() != 0);
        +  }
        +
        +  // Returns true iff this number is at most kMaxUlps ULP's away from
        +  // rhs.  In particular, this function:
        +  //
        +  //   - returns false if either number is (or both are) NAN.
        +  //   - treats really large numbers as almost equal to infinity.
        +  //   - thinks +0.0 and -0.0 are 0 DLP's apart.
        +  bool AlmostEquals(const FloatingPoint& rhs) const {
        +    // The IEEE standard says that any comparison operation involving
        +    // a NAN must return false.
        +    if (is_nan() || rhs.is_nan()) return false;
        +
        +    return DistanceBetweenSignAndMagnitudeNumbers(u_.bits_, rhs.u_.bits_)
        +        <= kMaxUlps;
        +  }
        +
        + private:
        +  // The data type used to store the actual floating-point number.
        +  union FloatingPointUnion {
        +    RawType value_;  // The raw floating-point number.
        +    Bits bits_;      // The bits that represent the number.
        +  };
        +
        +  // Converts an integer from the sign-and-magnitude representation to
        +  // the biased representation.  More precisely, let N be 2 to the
        +  // power of (kBitCount - 1), an integer x is represented by the
        +  // unsigned number x + N.
        +  //
        +  // For instance,
        +  //
        +  //   -N + 1 (the most negative number representable using
        +  //          sign-and-magnitude) is represented by 1;
        +  //   0      is represented by N; and
        +  //   N - 1  (the biggest number representable using
        +  //          sign-and-magnitude) is represented by 2N - 1.
        +  //
        +  // Read http://en.wikipedia.org/wiki/Signed_number_representations
        +  // for more details on signed number representations.
        +  static Bits SignAndMagnitudeToBiased(const Bits &sam) {
        +    if (kSignBitMask & sam) {
        +      // sam represents a negative number.
        +      return ~sam + 1;
        +    } else {
        +      // sam represents a positive number.
        +      return kSignBitMask | sam;
        +    }
        +  }
        +
        +  // Given two numbers in the sign-and-magnitude representation,
        +  // returns the distance between them as an unsigned number.
        +  static Bits DistanceBetweenSignAndMagnitudeNumbers(const Bits &sam1,
        +                                                     const Bits &sam2) {
        +    const Bits biased1 = SignAndMagnitudeToBiased(sam1);
        +    const Bits biased2 = SignAndMagnitudeToBiased(sam2);
        +    return (biased1 >= biased2) ? (biased1 - biased2) : (biased2 - biased1);
        +  }
        +
        +  FloatingPointUnion u_;
        +};
        +
        +// We cannot use std::numeric_limits<T>::max() as it clashes with the max()
        +// macro defined by <windows.h>.
        +template <>
        +inline float FloatingPoint<float>::Max() { return FLT_MAX; }
        +template <>
        +inline double FloatingPoint<double>::Max() { return DBL_MAX; }
        +
        +// Typedefs the instances of the FloatingPoint template class that we
        +// care to use.
        +typedef FloatingPoint<float> Float;
        +typedef FloatingPoint<double> Double;
        +
        +// In order to catch the mistake of putting tests that use different
        +// test fixture classes in the same test case, we need to assign
        +// unique IDs to fixture classes and compare them.  The TypeId type is
        +// used to hold such IDs.  The user should treat TypeId as an opaque
        +// type: the only operation allowed on TypeId values is to compare
        +// them for equality using the == operator.
        +typedef const void* TypeId;
        +
        +template <typename T>
        +class TypeIdHelper {
        + public:
        +  // dummy_ must not have a const type.  Otherwise an overly eager
        +  // compiler (e.g. MSVC 7.1 & 8.0) may try to merge
        +  // TypeIdHelper<T>::dummy_ for different Ts as an "optimization".
        +  static bool dummy_;
        +};
        +
        +template <typename T>
        +bool TypeIdHelper<T>::dummy_ = false;
        +
        +// GetTypeId<T>() returns the ID of type T.  Different values will be
        +// returned for different types.  Calling the function twice with the
        +// same type argument is guaranteed to return the same ID.
        +template <typename T>
        +TypeId GetTypeId() {
        +  // The compiler is required to allocate a different
        +  // TypeIdHelper<T>::dummy_ variable for each T used to instantiate
        +  // the template.  Therefore, the address of dummy_ is guaranteed to
        +  // be unique.
        +  return &(TypeIdHelper<T>::dummy_);
        +}
        +
        +// Returns the type ID of ::testing::Test.  Always call this instead
        +// of GetTypeId< ::testing::Test>() to get the type ID of
        +// ::testing::Test, as the latter may give the wrong result due to a
        +// suspected linker bug when compiling Google Test as a Mac OS X
        +// framework.
        +GTEST_API_ TypeId GetTestTypeId();
        +
        +// Defines the abstract factory interface that creates instances
        +// of a Test object.
        +class TestFactoryBase {
        + public:
        +  virtual ~TestFactoryBase() {}
        +
        +  // Creates a test instance to run. The instance is both created and destroyed
        +  // within TestInfoImpl::Run()
        +  virtual Test* CreateTest() = 0;
        +
        + protected:
        +  TestFactoryBase() {}
        +
        + private:
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(TestFactoryBase);
        +};
        +
        +// This class provides implementation of TeastFactoryBase interface.
        +// It is used in TEST and TEST_F macros.
        +template <class TestClass>
        +class TestFactoryImpl : public TestFactoryBase {
        + public:
        +  virtual Test* CreateTest() { return new TestClass; }
        +};
        +
        +#if GTEST_OS_WINDOWS
        +
        +// Predicate-formatters for implementing the HRESULT checking macros
        +// {ASSERT|EXPECT}_HRESULT_{SUCCEEDED|FAILED}
        +// We pass a long instead of HRESULT to avoid causing an
        +// include dependency for the HRESULT type.
        +GTEST_API_ AssertionResult IsHRESULTSuccess(const char* expr,
        +                                            long hr);  // NOLINT
        +GTEST_API_ AssertionResult IsHRESULTFailure(const char* expr,
        +                                            long hr);  // NOLINT
        +
        +#endif  // GTEST_OS_WINDOWS
        +
        +// Types of SetUpTestCase() and TearDownTestCase() functions.
        +typedef void (*SetUpTestCaseFunc)();
        +typedef void (*TearDownTestCaseFunc)();
        +
        +struct CodeLocation {
        +  CodeLocation(const string& a_file, int a_line) : file(a_file), line(a_line) {}
        +
        +  string file;
        +  int line;
        +};
        +
        +// Creates a new TestInfo object and registers it with Google Test;
        +// returns the created object.
        +//
        +// Arguments:
        +//
        +//   test_case_name:   name of the test case
        +//   name:             name of the test
        +//   type_param        the name of the test's type parameter, or NULL if
        +//                     this is not a typed or a type-parameterized test.
        +//   value_param       text representation of the test's value parameter,
        +//                     or NULL if this is not a type-parameterized test.
        +//   code_location:    code location where the test is defined
        +//   fixture_class_id: ID of the test fixture class
        +//   set_up_tc:        pointer to the function that sets up the test case
        +//   tear_down_tc:     pointer to the function that tears down the test case
        +//   factory:          pointer to the factory that creates a test object.
        +//                     The newly created TestInfo instance will assume
        +//                     ownership of the factory object.
        +GTEST_API_ TestInfo* MakeAndRegisterTestInfo(
        +    const char* test_case_name,
        +    const char* name,
        +    const char* type_param,
        +    const char* value_param,
        +    CodeLocation code_location,
        +    TypeId fixture_class_id,
        +    SetUpTestCaseFunc set_up_tc,
        +    TearDownTestCaseFunc tear_down_tc,
        +    TestFactoryBase* factory);
        +
        +// If *pstr starts with the given prefix, modifies *pstr to be right
        +// past the prefix and returns true; otherwise leaves *pstr unchanged
        +// and returns false.  None of pstr, *pstr, and prefix can be NULL.
        +GTEST_API_ bool SkipPrefix(const char* prefix, const char** pstr);
        +
        +#if GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P
        +
        +// State of the definition of a type-parameterized test case.
        +class GTEST_API_ TypedTestCasePState {
        + public:
        +  TypedTestCasePState() : registered_(false) {}
        +
        +  // Adds the given test name to defined_test_names_ and return true
        +  // if the test case hasn't been registered; otherwise aborts the
        +  // program.
        +  bool AddTestName(const char* file, int line, const char* case_name,
        +                   const char* test_name) {
        +    if (registered_) {
        +      fprintf(stderr, "%s Test %s must be defined before "
        +              "REGISTER_TYPED_TEST_CASE_P(%s, ...).\n",
        +              FormatFileLocation(file, line).c_str(), test_name, case_name);
        +      fflush(stderr);
        +      posix::Abort();
        +    }
        +    registered_tests_.insert(
        +        ::std::make_pair(test_name, CodeLocation(file, line)));
        +    return true;
        +  }
        +
        +  bool TestExists(const std::string& test_name) const {
        +    return registered_tests_.count(test_name) > 0;
        +  }
        +
        +  const CodeLocation& GetCodeLocation(const std::string& test_name) const {
        +    RegisteredTestsMap::const_iterator it = registered_tests_.find(test_name);
        +    GTEST_CHECK_(it != registered_tests_.end());
        +    return it->second;
        +  }
        +
        +  // Verifies that registered_tests match the test names in
        +  // defined_test_names_; returns registered_tests if successful, or
        +  // aborts the program otherwise.
        +  const char* VerifyRegisteredTestNames(
        +      const char* file, int line, const char* registered_tests);
        +
        + private:
        +  typedef ::std::map<std::string, CodeLocation> RegisteredTestsMap;
        +
        +  bool registered_;
        +  RegisteredTestsMap registered_tests_;
        +};
        +
        +// Skips to the first non-space char after the first comma in 'str';
        +// returns NULL if no comma is found in 'str'.
        +inline const char* SkipComma(const char* str) {
        +  const char* comma = strchr(str, ',');
        +  if (comma == NULL) {
        +    return NULL;
        +  }
        +  while (IsSpace(*(++comma))) {}
        +  return comma;
        +}
        +
        +// Returns the prefix of 'str' before the first comma in it; returns
        +// the entire string if it contains no comma.
        +inline std::string GetPrefixUntilComma(const char* str) {
        +  const char* comma = strchr(str, ',');
        +  return comma == NULL ? str : std::string(str, comma);
        +}
        +
        +// Splits a given string on a given delimiter, populating a given
        +// vector with the fields.
        +void SplitString(const ::std::string& str, char delimiter,
        +                 ::std::vector< ::std::string>* dest);
        +
        +// TypeParameterizedTest<Fixture, TestSel, Types>::Register()
        +// registers a list of type-parameterized tests with Google Test.  The
        +// return value is insignificant - we just need to return something
        +// such that we can call this function in a namespace scope.
        +//
        +// Implementation note: The GTEST_TEMPLATE_ macro declares a template
        +// template parameter.  It's defined in gtest-type-util.h.
        +template <GTEST_TEMPLATE_ Fixture, class TestSel, typename Types>
        +class TypeParameterizedTest {
        + public:
        +  // 'index' is the index of the test in the type list 'Types'
        +  // specified in INSTANTIATE_TYPED_TEST_CASE_P(Prefix, TestCase,
        +  // Types).  Valid values for 'index' are [0, N - 1] where N is the
        +  // length of Types.
        +  static bool Register(const char* prefix,
        +                       CodeLocation code_location,
        +                       const char* case_name, const char* test_names,
        +                       int index) {
        +    typedef typename Types::Head Type;
        +    typedef Fixture<Type> FixtureClass;
        +    typedef typename GTEST_BIND_(TestSel, Type) TestClass;
        +
        +    // First, registers the first type-parameterized test in the type
        +    // list.
        +    MakeAndRegisterTestInfo(
        +        (std::string(prefix) + (prefix[0] == '\0' ? "" : "/") + case_name + "/"
        +         + StreamableToString(index)).c_str(),
        +        StripTrailingSpaces(GetPrefixUntilComma(test_names)).c_str(),
        +        GetTypeName<Type>().c_str(),
        +        NULL,  // No value parameter.
        +        code_location,
        +        GetTypeId<FixtureClass>(),
        +        TestClass::SetUpTestCase,
        +        TestClass::TearDownTestCase,
        +        new TestFactoryImpl<TestClass>);
        +
        +    // Next, recurses (at compile time) with the tail of the type list.
        +    return TypeParameterizedTest<Fixture, TestSel, typename Types::Tail>
        +        ::Register(prefix, code_location, case_name, test_names, index + 1);
        +  }
        +};
        +
        +// The base case for the compile time recursion.
        +template <GTEST_TEMPLATE_ Fixture, class TestSel>
        +class TypeParameterizedTest<Fixture, TestSel, Types0> {
        + public:
        +  static bool Register(const char* /*prefix*/, CodeLocation,
        +                       const char* /*case_name*/, const char* /*test_names*/,
        +                       int /*index*/) {
        +    return true;
        +  }
        +};
        +
        +// TypeParameterizedTestCase<Fixture, Tests, Types>::Register()
        +// registers *all combinations* of 'Tests' and 'Types' with Google
        +// Test.  The return value is insignificant - we just need to return
        +// something such that we can call this function in a namespace scope.
        +template <GTEST_TEMPLATE_ Fixture, typename Tests, typename Types>
        +class TypeParameterizedTestCase {
        + public:
        +  static bool Register(const char* prefix, CodeLocation code_location,
        +                       const TypedTestCasePState* state,
        +                       const char* case_name, const char* test_names) {
        +    std::string test_name = StripTrailingSpaces(
        +        GetPrefixUntilComma(test_names));
        +    if (!state->TestExists(test_name)) {
        +      fprintf(stderr, "Failed to get code location for test %s.%s at %s.",
        +              case_name, test_name.c_str(),
        +              FormatFileLocation(code_location.file.c_str(),
        +                                 code_location.line).c_str());
        +      fflush(stderr);
        +      posix::Abort();
        +    }
        +    const CodeLocation& test_location = state->GetCodeLocation(test_name);
        +
        +    typedef typename Tests::Head Head;
        +
        +    // First, register the first test in 'Test' for each type in 'Types'.
        +    TypeParameterizedTest<Fixture, Head, Types>::Register(
        +        prefix, test_location, case_name, test_names, 0);
        +
        +    // Next, recurses (at compile time) with the tail of the test list.
        +    return TypeParameterizedTestCase<Fixture, typename Tests::Tail, Types>
        +        ::Register(prefix, code_location, state,
        +                   case_name, SkipComma(test_names));
        +  }
        +};
        +
        +// The base case for the compile time recursion.
        +template <GTEST_TEMPLATE_ Fixture, typename Types>
        +class TypeParameterizedTestCase<Fixture, Templates0, Types> {
        + public:
        +  static bool Register(const char* /*prefix*/, CodeLocation,
        +                       const TypedTestCasePState* /*state*/,
        +                       const char* /*case_name*/, const char* /*test_names*/) {
        +    return true;
        +  }
        +};
        +
        +#endif  // GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P
        +
        +// Returns the current OS stack trace as an std::string.
        +//
        +// The maximum number of stack frames to be included is specified by
        +// the gtest_stack_trace_depth flag.  The skip_count parameter
        +// specifies the number of top frames to be skipped, which doesn't
        +// count against the number of frames to be included.
        +//
        +// For example, if Foo() calls Bar(), which in turn calls
        +// GetCurrentOsStackTraceExceptTop(..., 1), Foo() will be included in
        +// the trace but Bar() and GetCurrentOsStackTraceExceptTop() won't.
        +GTEST_API_ std::string GetCurrentOsStackTraceExceptTop(
        +    UnitTest* unit_test, int skip_count);
        +
        +// Helpers for suppressing warnings on unreachable code or constant
        +// condition.
        +
        +// Always returns true.
        +GTEST_API_ bool AlwaysTrue();
        +
        +// Always returns false.
        +inline bool AlwaysFalse() { return !AlwaysTrue(); }
        +
        +// Helper for suppressing false warning from Clang on a const char*
        +// variable declared in a conditional expression always being NULL in
        +// the else branch.
        +struct GTEST_API_ ConstCharPtr {
        +  ConstCharPtr(const char* str) : value(str) {}
        +  operator bool() const { return true; }
        +  const char* value;
        +};
        +
        +// A simple Linear Congruential Generator for generating random
        +// numbers with a uniform distribution.  Unlike rand() and srand(), it
        +// doesn't use global state (and therefore can't interfere with user
        +// code).  Unlike rand_r(), it's portable.  An LCG isn't very random,
        +// but it's good enough for our purposes.
        +class GTEST_API_ Random {
        + public:
        +  static const UInt32 kMaxRange = 1u << 31;
        +
        +  explicit Random(UInt32 seed) : state_(seed) {}
        +
        +  void Reseed(UInt32 seed) { state_ = seed; }
        +
        +  // Generates a random number from [0, range).  Crashes if 'range' is
        +  // 0 or greater than kMaxRange.
        +  UInt32 Generate(UInt32 range);
        +
        + private:
        +  UInt32 state_;
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(Random);
        +};
        +
        +// Defining a variable of type CompileAssertTypesEqual<T1, T2> will cause a
        +// compiler error iff T1 and T2 are different types.
        +template <typename T1, typename T2>
        +struct CompileAssertTypesEqual;
        +
        +template <typename T>
        +struct CompileAssertTypesEqual<T, T> {
        +};
        +
        +// Removes the reference from a type if it is a reference type,
        +// otherwise leaves it unchanged.  This is the same as
        +// tr1::remove_reference, which is not widely available yet.
        +template <typename T>
        +struct RemoveReference { typedef T type; };  // NOLINT
        +template <typename T>
        +struct RemoveReference<T&> { typedef T type; };  // NOLINT
        +
        +// A handy wrapper around RemoveReference that works when the argument
        +// T depends on template parameters.
        +#define GTEST_REMOVE_REFERENCE_(T) \
        +    typename ::testing::internal::RemoveReference<T>::type
        +
        +// Removes const from a type if it is a const type, otherwise leaves
        +// it unchanged.  This is the same as tr1::remove_const, which is not
        +// widely available yet.
        +template <typename T>
        +struct RemoveConst { typedef T type; };  // NOLINT
        +template <typename T>
        +struct RemoveConst<const T> { typedef T type; };  // NOLINT
        +
        +// MSVC 8.0, Sun C++, and IBM XL C++ have a bug which causes the above
        +// definition to fail to remove the const in 'const int[3]' and 'const
        +// char[3][4]'.  The following specialization works around the bug.
        +template <typename T, size_t N>
        +struct RemoveConst<const T[N]> {
        +  typedef typename RemoveConst<T>::type type[N];
        +};
        +
        +#if defined(_MSC_VER) && _MSC_VER < 1400
        +// This is the only specialization that allows VC++ 7.1 to remove const in
        +// 'const int[3] and 'const int[3][4]'.  However, it causes trouble with GCC
        +// and thus needs to be conditionally compiled.
        +template <typename T, size_t N>
        +struct RemoveConst<T[N]> {
        +  typedef typename RemoveConst<T>::type type[N];
        +};
        +#endif
        +
        +// A handy wrapper around RemoveConst that works when the argument
        +// T depends on template parameters.
        +#define GTEST_REMOVE_CONST_(T) \
        +    typename ::testing::internal::RemoveConst<T>::type
        +
        +// Turns const U&, U&, const U, and U all into U.
        +#define GTEST_REMOVE_REFERENCE_AND_CONST_(T) \
        +    GTEST_REMOVE_CONST_(GTEST_REMOVE_REFERENCE_(T))
        +
        +// Adds reference to a type if it is not a reference type,
        +// otherwise leaves it unchanged.  This is the same as
        +// tr1::add_reference, which is not widely available yet.
        +template <typename T>
        +struct AddReference { typedef T& type; };  // NOLINT
        +template <typename T>
        +struct AddReference<T&> { typedef T& type; };  // NOLINT
        +
        +// A handy wrapper around AddReference that works when the argument T
        +// depends on template parameters.
        +#define GTEST_ADD_REFERENCE_(T) \
        +    typename ::testing::internal::AddReference<T>::type
        +
        +// Adds a reference to const on top of T as necessary.  For example,
        +// it transforms
        +//
        +//   char         ==> const char&
        +//   const char   ==> const char&
        +//   char&        ==> const char&
        +//   const char&  ==> const char&
        +//
        +// The argument T must depend on some template parameters.
        +#define GTEST_REFERENCE_TO_CONST_(T) \
        +    GTEST_ADD_REFERENCE_(const GTEST_REMOVE_REFERENCE_(T))
        +
        +// ImplicitlyConvertible<From, To>::value is a compile-time bool
        +// constant that's true iff type From can be implicitly converted to
        +// type To.
        +template <typename From, typename To>
        +class ImplicitlyConvertible {
        + private:
        +  // We need the following helper functions only for their types.
        +  // They have no implementations.
        +
        +  // MakeFrom() is an expression whose type is From.  We cannot simply
        +  // use From(), as the type From may not have a public default
        +  // constructor.
        +  static typename AddReference<From>::type MakeFrom();
        +
        +  // These two functions are overloaded.  Given an expression
        +  // Helper(x), the compiler will pick the first version if x can be
        +  // implicitly converted to type To; otherwise it will pick the
        +  // second version.
        +  //
        +  // The first version returns a value of size 1, and the second
        +  // version returns a value of size 2.  Therefore, by checking the
        +  // size of Helper(x), which can be done at compile time, we can tell
        +  // which version of Helper() is used, and hence whether x can be
        +  // implicitly converted to type To.
        +  static char Helper(To);
        +  static char (&Helper(...))[2];  // NOLINT
        +
        +  // We have to put the 'public' section after the 'private' section,
        +  // or MSVC refuses to compile the code.
        + public:
        +#if defined(__BORLANDC__)
        +  // C++Builder cannot use member overload resolution during template
        +  // instantiation.  The simplest workaround is to use its C++0x type traits
        +  // functions (C++Builder 2009 and above only).
        +  static const bool value = __is_convertible(From, To);
        +#else
        +  // MSVC warns about implicitly converting from double to int for
        +  // possible loss of data, so we need to temporarily disable the
        +  // warning.
        +  GTEST_DISABLE_MSC_WARNINGS_PUSH_(4244)
        +  static const bool value =
        +      sizeof(Helper(ImplicitlyConvertible::MakeFrom())) == 1;
        +  GTEST_DISABLE_MSC_WARNINGS_POP_()
        +#endif  // __BORLANDC__
        +};
        +template <typename From, typename To>
        +const bool ImplicitlyConvertible<From, To>::value;
        +
        +// IsAProtocolMessage<T>::value is a compile-time bool constant that's
        +// true iff T is type ProtocolMessage, proto2::Message, or a subclass
        +// of those.
        +template <typename T>
        +struct IsAProtocolMessage
        +    : public bool_constant<
        +  ImplicitlyConvertible<const T*, const ::ProtocolMessage*>::value ||
        +  ImplicitlyConvertible<const T*, const ::proto2::Message*>::value> {
        +};
        +
        +// When the compiler sees expression IsContainerTest<C>(0), if C is an
        +// STL-style container class, the first overload of IsContainerTest
        +// will be viable (since both C::iterator* and C::const_iterator* are
        +// valid types and NULL can be implicitly converted to them).  It will
        +// be picked over the second overload as 'int' is a perfect match for
        +// the type of argument 0.  If C::iterator or C::const_iterator is not
        +// a valid type, the first overload is not viable, and the second
        +// overload will be picked.  Therefore, we can determine whether C is
        +// a container class by checking the type of IsContainerTest<C>(0).
        +// The value of the expression is insignificant.
        +//
        +// Note that we look for both C::iterator and C::const_iterator.  The
        +// reason is that C++ injects the name of a class as a member of the
        +// class itself (e.g. you can refer to class iterator as either
        +// 'iterator' or 'iterator::iterator').  If we look for C::iterator
        +// only, for example, we would mistakenly think that a class named
        +// iterator is an STL container.
        +//
        +// Also note that the simpler approach of overloading
        +// IsContainerTest(typename C::const_iterator*) and
        +// IsContainerTest(...) doesn't work with Visual Age C++ and Sun C++.
        +typedef int IsContainer;
        +template <class C>
        +IsContainer IsContainerTest(int /* dummy */,
        +                            typename C::iterator* /* it */ = NULL,
        +                            typename C::const_iterator* /* const_it */ = NULL) {
        +  return 0;
        +}
        +
        +typedef char IsNotContainer;
        +template <class C>
        +IsNotContainer IsContainerTest(long /* dummy */) { return '\0'; }
        +
        +// EnableIf<condition>::type is void when 'Cond' is true, and
        +// undefined when 'Cond' is false.  To use SFINAE to make a function
        +// overload only apply when a particular expression is true, add
        +// "typename EnableIf<expression>::type* = 0" as the last parameter.
        +template<bool> struct EnableIf;
        +template<> struct EnableIf<true> { typedef void type; };  // NOLINT
        +
        +// Utilities for native arrays.
        +
        +// ArrayEq() compares two k-dimensional native arrays using the
        +// elements' operator==, where k can be any integer >= 0.  When k is
        +// 0, ArrayEq() degenerates into comparing a single pair of values.
        +
        +template <typename T, typename U>
        +bool ArrayEq(const T* lhs, size_t size, const U* rhs);
        +
        +// This generic version is used when k is 0.
        +template <typename T, typename U>
        +inline bool ArrayEq(const T& lhs, const U& rhs) { return lhs == rhs; }
        +
        +// This overload is used when k >= 1.
        +template <typename T, typename U, size_t N>
        +inline bool ArrayEq(const T(&lhs)[N], const U(&rhs)[N]) {
        +  return internal::ArrayEq(lhs, N, rhs);
        +}
        +
        +// This helper reduces code bloat.  If we instead put its logic inside
        +// the previous ArrayEq() function, arrays with different sizes would
        +// lead to different copies of the template code.
        +template <typename T, typename U>
        +bool ArrayEq(const T* lhs, size_t size, const U* rhs) {
        +  for (size_t i = 0; i != size; i++) {
        +    if (!internal::ArrayEq(lhs[i], rhs[i]))
        +      return false;
        +  }
        +  return true;
        +}
        +
        +// Finds the first element in the iterator range [begin, end) that
        +// equals elem.  Element may be a native array type itself.
        +template <typename Iter, typename Element>
        +Iter ArrayAwareFind(Iter begin, Iter end, const Element& elem) {
        +  for (Iter it = begin; it != end; ++it) {
        +    if (internal::ArrayEq(*it, elem))
        +      return it;
        +  }
        +  return end;
        +}
        +
        +// CopyArray() copies a k-dimensional native array using the elements'
        +// operator=, where k can be any integer >= 0.  When k is 0,
        +// CopyArray() degenerates into copying a single value.
        +
        +template <typename T, typename U>
        +void CopyArray(const T* from, size_t size, U* to);
        +
        +// This generic version is used when k is 0.
        +template <typename T, typename U>
        +inline void CopyArray(const T& from, U* to) { *to = from; }
        +
        +// This overload is used when k >= 1.
        +template <typename T, typename U, size_t N>
        +inline void CopyArray(const T(&from)[N], U(*to)[N]) {
        +  internal::CopyArray(from, N, *to);
        +}
        +
        +// This helper reduces code bloat.  If we instead put its logic inside
        +// the previous CopyArray() function, arrays with different sizes
        +// would lead to different copies of the template code.
        +template <typename T, typename U>
        +void CopyArray(const T* from, size_t size, U* to) {
        +  for (size_t i = 0; i != size; i++) {
        +    internal::CopyArray(from[i], to + i);
        +  }
        +}
        +
        +// The relation between an NativeArray object (see below) and the
        +// native array it represents.
        +// We use 2 different structs to allow non-copyable types to be used, as long
        +// as RelationToSourceReference() is passed.
        +struct RelationToSourceReference {};
        +struct RelationToSourceCopy {};
        +
        +// Adapts a native array to a read-only STL-style container.  Instead
        +// of the complete STL container concept, this adaptor only implements
        +// members useful for Google Mock's container matchers.  New members
        +// should be added as needed.  To simplify the implementation, we only
        +// support Element being a raw type (i.e. having no top-level const or
        +// reference modifier).  It's the client's responsibility to satisfy
        +// this requirement.  Element can be an array type itself (hence
        +// multi-dimensional arrays are supported).
        +template <typename Element>
        +class NativeArray {
        + public:
        +  // STL-style container typedefs.
        +  typedef Element value_type;
        +  typedef Element* iterator;
        +  typedef const Element* const_iterator;
        +
        +  // Constructs from a native array. References the source.
        +  NativeArray(const Element* array, size_t count, RelationToSourceReference) {
        +    InitRef(array, count);
        +  }
        +
        +  // Constructs from a native array. Copies the source.
        +  NativeArray(const Element* array, size_t count, RelationToSourceCopy) {
        +    InitCopy(array, count);
        +  }
        +
        +  // Copy constructor.
        +  NativeArray(const NativeArray& rhs) {
        +    (this->*rhs.clone_)(rhs.array_, rhs.size_);
        +  }
        +
        +  ~NativeArray() {
        +    if (clone_ != &NativeArray::InitRef)
        +      delete[] array_;
        +  }
        +
        +  // STL-style container methods.
        +  size_t size() const { return size_; }
        +  const_iterator begin() const { return array_; }
        +  const_iterator end() const { return array_ + size_; }
        +  bool operator==(const NativeArray& rhs) const {
        +    return size() == rhs.size() &&
        +        ArrayEq(begin(), size(), rhs.begin());
        +  }
        +
        + private:
        +  enum {
        +    kCheckTypeIsNotConstOrAReference = StaticAssertTypeEqHelper<
        +        Element, GTEST_REMOVE_REFERENCE_AND_CONST_(Element)>::value,
        +  };
        +
        +  // Initializes this object with a copy of the input.
        +  void InitCopy(const Element* array, size_t a_size) {
        +    Element* const copy = new Element[a_size];
        +    CopyArray(array, a_size, copy);
        +    array_ = copy;
        +    size_ = a_size;
        +    clone_ = &NativeArray::InitCopy;
        +  }
        +
        +  // Initializes this object with a reference of the input.
        +  void InitRef(const Element* array, size_t a_size) {
        +    array_ = array;
        +    size_ = a_size;
        +    clone_ = &NativeArray::InitRef;
        +  }
        +
        +  const Element* array_;
        +  size_t size_;
        +  void (NativeArray::*clone_)(const Element*, size_t);
        +
        +  GTEST_DISALLOW_ASSIGN_(NativeArray);
        +};
        +
        +}  // namespace internal
        +}  // namespace testing
        +
        +#define GTEST_MESSAGE_AT_(file, line, message, result_type) \
        +  ::testing::internal::AssertHelper(result_type, file, line, message) \
        +    = ::testing::Message()
        +
        +#define GTEST_MESSAGE_(message, result_type) \
        +  GTEST_MESSAGE_AT_(__FILE__, __LINE__, message, result_type)
        +
        +#define GTEST_FATAL_FAILURE_(message) \
        +  return GTEST_MESSAGE_(message, ::testing::TestPartResult::kFatalFailure)
        +
        +#define GTEST_NONFATAL_FAILURE_(message) \
        +  GTEST_MESSAGE_(message, ::testing::TestPartResult::kNonFatalFailure)
        +
        +#define GTEST_SUCCESS_(message) \
        +  GTEST_MESSAGE_(message, ::testing::TestPartResult::kSuccess)
        +
        +// Suppresses MSVC warnings 4072 (unreachable code) for the code following
        +// statement if it returns or throws (or doesn't return or throw in some
        +// situations).
        +#define GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement) \
        +  if (::testing::internal::AlwaysTrue()) { statement; }
        +
        +#define GTEST_TEST_THROW_(statement, expected_exception, fail) \
        +  GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
        +  if (::testing::internal::ConstCharPtr gtest_msg = "") { \
        +    bool gtest_caught_expected = false; \
        +    try { \
        +      GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \
        +    } \
        +    catch (expected_exception const&) { \
        +      gtest_caught_expected = true; \
        +    } \
        +    catch (...) { \
        +      gtest_msg.value = \
        +          "Expected: " #statement " throws an exception of type " \
        +          #expected_exception ".\n  Actual: it throws a different type."; \
        +      goto GTEST_CONCAT_TOKEN_(gtest_label_testthrow_, __LINE__); \
        +    } \
        +    if (!gtest_caught_expected) { \
        +      gtest_msg.value = \
        +          "Expected: " #statement " throws an exception of type " \
        +          #expected_exception ".\n  Actual: it throws nothing."; \
        +      goto GTEST_CONCAT_TOKEN_(gtest_label_testthrow_, __LINE__); \
        +    } \
        +  } else \
        +    GTEST_CONCAT_TOKEN_(gtest_label_testthrow_, __LINE__): \
        +      fail(gtest_msg.value)
        +
        +#define GTEST_TEST_NO_THROW_(statement, fail) \
        +  GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
        +  if (::testing::internal::AlwaysTrue()) { \
        +    try { \
        +      GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \
        +    } \
        +    catch (...) { \
        +      goto GTEST_CONCAT_TOKEN_(gtest_label_testnothrow_, __LINE__); \
        +    } \
        +  } else \
        +    GTEST_CONCAT_TOKEN_(gtest_label_testnothrow_, __LINE__): \
        +      fail("Expected: " #statement " doesn't throw an exception.\n" \
        +           "  Actual: it throws.")
        +
        +#define GTEST_TEST_ANY_THROW_(statement, fail) \
        +  GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
        +  if (::testing::internal::AlwaysTrue()) { \
        +    bool gtest_caught_any = false; \
        +    try { \
        +      GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \
        +    } \
        +    catch (...) { \
        +      gtest_caught_any = true; \
        +    } \
        +    if (!gtest_caught_any) { \
        +      goto GTEST_CONCAT_TOKEN_(gtest_label_testanythrow_, __LINE__); \
        +    } \
        +  } else \
        +    GTEST_CONCAT_TOKEN_(gtest_label_testanythrow_, __LINE__): \
        +      fail("Expected: " #statement " throws an exception.\n" \
        +           "  Actual: it doesn't.")
        +
        +
        +// Implements Boolean test assertions such as EXPECT_TRUE. expression can be
        +// either a boolean expression or an AssertionResult. text is a textual
        +// represenation of expression as it was passed into the EXPECT_TRUE.
        +#define GTEST_TEST_BOOLEAN_(expression, text, actual, expected, fail) \
        +  GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
        +  if (const ::testing::AssertionResult gtest_ar_ = \
        +      ::testing::AssertionResult(expression)) \
        +    ; \
        +  else \
        +    fail(::testing::internal::GetBoolAssertionFailureMessage(\
        +        gtest_ar_, text, #actual, #expected).c_str())
        +
        +#define GTEST_TEST_NO_FATAL_FAILURE_(statement, fail) \
        +  GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
        +  if (::testing::internal::AlwaysTrue()) { \
        +    ::testing::internal::HasNewFatalFailureHelper gtest_fatal_failure_checker; \
        +    GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \
        +    if (gtest_fatal_failure_checker.has_new_fatal_failure()) { \
        +      goto GTEST_CONCAT_TOKEN_(gtest_label_testnofatal_, __LINE__); \
        +    } \
        +  } else \
        +    GTEST_CONCAT_TOKEN_(gtest_label_testnofatal_, __LINE__): \
        +      fail("Expected: " #statement " doesn't generate new fatal " \
        +           "failures in the current thread.\n" \
        +           "  Actual: it does.")
        +
        +// Expands to the name of the class that implements the given test.
        +#define GTEST_TEST_CLASS_NAME_(test_case_name, test_name) \
        +  test_case_name##_##test_name##_Test
        +
        +// Helper macro for defining tests.
        +#define GTEST_TEST_(test_case_name, test_name, parent_class, parent_id)\
        +class GTEST_TEST_CLASS_NAME_(test_case_name, test_name) : public parent_class {\
        + public:\
        +  GTEST_TEST_CLASS_NAME_(test_case_name, test_name)() {}\
        + private:\
        +  virtual void TestBody();\
        +  static ::testing::TestInfo* const test_info_ GTEST_ATTRIBUTE_UNUSED_;\
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(\
        +      GTEST_TEST_CLASS_NAME_(test_case_name, test_name));\
        +};\
        +\
        +::testing::TestInfo* const GTEST_TEST_CLASS_NAME_(test_case_name, test_name)\
        +  ::test_info_ =\
        +    ::testing::internal::MakeAndRegisterTestInfo(\
        +        #test_case_name, #test_name, NULL, NULL, \
        +        ::testing::internal::CodeLocation(__FILE__, __LINE__), \
        +        (parent_id), \
        +        parent_class::SetUpTestCase, \
        +        parent_class::TearDownTestCase, \
        +        new ::testing::internal::TestFactoryImpl<\
        +            GTEST_TEST_CLASS_NAME_(test_case_name, test_name)>);\
        +void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::TestBody()
        +
        +#endif  // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_INTERNAL_H_
        +
        diff --git a/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-linked_ptr.h b/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-linked_ptr.h
        new file mode 100644
        index 0000000..3602942
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-linked_ptr.h
        @@ -0,0 +1,243 @@
        +// Copyright 2003 Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Authors: Dan Egnor (egnor@google.com)
        +//
        +// A "smart" pointer type with reference tracking.  Every pointer to a
        +// particular object is kept on a circular linked list.  When the last pointer
        +// to an object is destroyed or reassigned, the object is deleted.
        +//
        +// Used properly, this deletes the object when the last reference goes away.
        +// There are several caveats:
        +// - Like all reference counting schemes, cycles lead to leaks.
        +// - Each smart pointer is actually two pointers (8 bytes instead of 4).
        +// - Every time a pointer is assigned, the entire list of pointers to that
        +//   object is traversed.  This class is therefore NOT SUITABLE when there
        +//   will often be more than two or three pointers to a particular object.
        +// - References are only tracked as long as linked_ptr<> objects are copied.
        +//   If a linked_ptr<> is converted to a raw pointer and back, BAD THINGS
        +//   will happen (double deletion).
        +//
        +// A good use of this class is storing object references in STL containers.
        +// You can safely put linked_ptr<> in a vector<>.
        +// Other uses may not be as good.
        +//
        +// Note: If you use an incomplete type with linked_ptr<>, the class
        +// *containing* linked_ptr<> must have a constructor and destructor (even
        +// if they do nothing!).
        +//
        +// Bill Gibbons suggested we use something like this.
        +//
        +// Thread Safety:
        +//   Unlike other linked_ptr implementations, in this implementation
        +//   a linked_ptr object is thread-safe in the sense that:
        +//     - it's safe to copy linked_ptr objects concurrently,
        +//     - it's safe to copy *from* a linked_ptr and read its underlying
        +//       raw pointer (e.g. via get()) concurrently, and
        +//     - it's safe to write to two linked_ptrs that point to the same
        +//       shared object concurrently.
        +// TODO(wan@google.com): rename this to safe_linked_ptr to avoid
        +// confusion with normal linked_ptr.
        +
        +#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_LINKED_PTR_H_
        +#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_LINKED_PTR_H_
        +
        +#include <stdlib.h>
        +#include <assert.h>
        +
        +#include "gtest/internal/gtest-port.h"
        +
        +namespace testing {
        +namespace internal {
        +
        +// Protects copying of all linked_ptr objects.
        +GTEST_API_ GTEST_DECLARE_STATIC_MUTEX_(g_linked_ptr_mutex);
        +
        +// This is used internally by all instances of linked_ptr<>.  It needs to be
        +// a non-template class because different types of linked_ptr<> can refer to
        +// the same object (linked_ptr<Superclass>(obj) vs linked_ptr<Subclass>(obj)).
        +// So, it needs to be possible for different types of linked_ptr to participate
        +// in the same circular linked list, so we need a single class type here.
        +//
        +// DO NOT USE THIS CLASS DIRECTLY YOURSELF.  Use linked_ptr<T>.
        +class linked_ptr_internal {
        + public:
        +  // Create a new circle that includes only this instance.
        +  void join_new() {
        +    next_ = this;
        +  }
        +
        +  // Many linked_ptr operations may change p.link_ for some linked_ptr
        +  // variable p in the same circle as this object.  Therefore we need
        +  // to prevent two such operations from occurring concurrently.
        +  //
        +  // Note that different types of linked_ptr objects can coexist in a
        +  // circle (e.g. linked_ptr<Base>, linked_ptr<Derived1>, and
        +  // linked_ptr<Derived2>).  Therefore we must use a single mutex to
        +  // protect all linked_ptr objects.  This can create serious
        +  // contention in production code, but is acceptable in a testing
        +  // framework.
        +
        +  // Join an existing circle.
        +  void join(linked_ptr_internal const* ptr)
        +      GTEST_LOCK_EXCLUDED_(g_linked_ptr_mutex) {
        +    MutexLock lock(&g_linked_ptr_mutex);
        +
        +    linked_ptr_internal const* p = ptr;
        +    while (p->next_ != ptr) {
        +      assert(p->next_ != this &&
        +             "Trying to join() a linked ring we are already in. "
        +             "Is GMock thread safety enabled?");
        +      p = p->next_;
        +    }
        +    p->next_ = this;
        +    next_ = ptr;
        +  }
        +
        +  // Leave whatever circle we're part of.  Returns true if we were the
        +  // last member of the circle.  Once this is done, you can join() another.
        +  bool depart()
        +      GTEST_LOCK_EXCLUDED_(g_linked_ptr_mutex) {
        +    MutexLock lock(&g_linked_ptr_mutex);
        +
        +    if (next_ == this) return true;
        +    linked_ptr_internal const* p = next_;
        +    while (p->next_ != this) {
        +      assert(p->next_ != next_ &&
        +             "Trying to depart() a linked ring we are not in. "
        +             "Is GMock thread safety enabled?");
        +      p = p->next_;
        +    }
        +    p->next_ = next_;
        +    return false;
        +  }
        +
        + private:
        +  mutable linked_ptr_internal const* next_;
        +};
        +
        +template <typename T>
        +class linked_ptr {
        + public:
        +  typedef T element_type;
        +
        +  // Take over ownership of a raw pointer.  This should happen as soon as
        +  // possible after the object is created.
        +  explicit linked_ptr(T* ptr = NULL) { capture(ptr); }
        +  ~linked_ptr() { depart(); }
        +
        +  // Copy an existing linked_ptr<>, adding ourselves to the list of references.
        +  template <typename U> linked_ptr(linked_ptr<U> const& ptr) { copy(&ptr); }
        +  linked_ptr(linked_ptr const& ptr) {  // NOLINT
        +    assert(&ptr != this);
        +    copy(&ptr);
        +  }
        +
        +  // Assignment releases the old value and acquires the new.
        +  template <typename U> linked_ptr& operator=(linked_ptr<U> const& ptr) {
        +    depart();
        +    copy(&ptr);
        +    return *this;
        +  }
        +
        +  linked_ptr& operator=(linked_ptr const& ptr) {
        +    if (&ptr != this) {
        +      depart();
        +      copy(&ptr);
        +    }
        +    return *this;
        +  }
        +
        +  // Smart pointer members.
        +  void reset(T* ptr = NULL) {
        +    depart();
        +    capture(ptr);
        +  }
        +  T* get() const { return value_; }
        +  T* operator->() const { return value_; }
        +  T& operator*() const { return *value_; }
        +
        +  bool operator==(T* p) const { return value_ == p; }
        +  bool operator!=(T* p) const { return value_ != p; }
        +  template <typename U>
        +  bool operator==(linked_ptr<U> const& ptr) const {
        +    return value_ == ptr.get();
        +  }
        +  template <typename U>
        +  bool operator!=(linked_ptr<U> const& ptr) const {
        +    return value_ != ptr.get();
        +  }
        +
        + private:
        +  template <typename U>
        +  friend class linked_ptr;
        +
        +  T* value_;
        +  linked_ptr_internal link_;
        +
        +  void depart() {
        +    if (link_.depart()) delete value_;
        +  }
        +
        +  void capture(T* ptr) {
        +    value_ = ptr;
        +    link_.join_new();
        +  }
        +
        +  template <typename U> void copy(linked_ptr<U> const* ptr) {
        +    value_ = ptr->get();
        +    if (value_)
        +      link_.join(&ptr->link_);
        +    else
        +      link_.join_new();
        +  }
        +};
        +
        +template<typename T> inline
        +bool operator==(T* ptr, const linked_ptr<T>& x) {
        +  return ptr == x.get();
        +}
        +
        +template<typename T> inline
        +bool operator!=(T* ptr, const linked_ptr<T>& x) {
        +  return ptr != x.get();
        +}
        +
        +// A function to convert T* into linked_ptr<T>
        +// Doing e.g. make_linked_ptr(new FooBarBaz<type>(arg)) is a shorter notation
        +// for linked_ptr<FooBarBaz<type> >(new FooBarBaz<type>(arg))
        +template <typename T>
        +linked_ptr<T> make_linked_ptr(T* ptr) {
        +  return linked_ptr<T>(ptr);
        +}
        +
        +}  // namespace internal
        +}  // namespace testing
        +
        +#endif  // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_LINKED_PTR_H_
        diff --git a/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-param-util-generated.h b/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-param-util-generated.h
        new file mode 100644
        index 0000000..4d1d81d
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-param-util-generated.h
        @@ -0,0 +1,5146 @@
        +// This file was GENERATED by command:
        +//     pump.py gtest-param-util-generated.h.pump
        +// DO NOT EDIT BY HAND!!!
        +
        +// Copyright 2008 Google Inc.
        +// All Rights Reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: vladl@google.com (Vlad Losev)
        +
        +// Type and function utilities for implementing parameterized tests.
        +// This file is generated by a SCRIPT.  DO NOT EDIT BY HAND!
        +//
        +// Currently Google Test supports at most 50 arguments in Values,
        +// and at most 10 arguments in Combine. Please contact
        +// googletestframework@googlegroups.com if you need more.
        +// Please note that the number of arguments to Combine is limited
        +// by the maximum arity of the implementation of tuple which is
        +// currently set at 10.
        +
        +#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_
        +#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_
        +
        +// scripts/fuse_gtest.py depends on gtest's own header being #included
        +// *unconditionally*.  Therefore these #includes cannot be moved
        +// inside #if GTEST_HAS_PARAM_TEST.
        +#include "gtest/internal/gtest-param-util.h"
        +#include "gtest/internal/gtest-port.h"
        +
        +#if GTEST_HAS_PARAM_TEST
        +
        +namespace testing {
        +
        +// Forward declarations of ValuesIn(), which is implemented in
        +// include/gtest/gtest-param-test.h.
        +template <typename ForwardIterator>
        +internal::ParamGenerator<
        +  typename ::testing::internal::IteratorTraits<ForwardIterator>::value_type>
        +ValuesIn(ForwardIterator begin, ForwardIterator end);
        +
        +template <typename T, size_t N>
        +internal::ParamGenerator<T> ValuesIn(const T (&array)[N]);
        +
        +template <class Container>
        +internal::ParamGenerator<typename Container::value_type> ValuesIn(
        +    const Container& container);
        +
        +namespace internal {
        +
        +// Used in the Values() function to provide polymorphic capabilities.
        +template <typename T1>
        +class ValueArray1 {
        + public:
        +  explicit ValueArray1(T1 v1) : v1_(v1) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray1& other);
        +
        +  const T1 v1_;
        +};
        +
        +template <typename T1, typename T2>
        +class ValueArray2 {
        + public:
        +  ValueArray2(T1 v1, T2 v2) : v1_(v1), v2_(v2) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray2& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +};
        +
        +template <typename T1, typename T2, typename T3>
        +class ValueArray3 {
        + public:
        +  ValueArray3(T1 v1, T2 v2, T3 v3) : v1_(v1), v2_(v2), v3_(v3) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray3& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4>
        +class ValueArray4 {
        + public:
        +  ValueArray4(T1 v1, T2 v2, T3 v3, T4 v4) : v1_(v1), v2_(v2), v3_(v3),
        +      v4_(v4) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray4& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5>
        +class ValueArray5 {
        + public:
        +  ValueArray5(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5) : v1_(v1), v2_(v2), v3_(v3),
        +      v4_(v4), v5_(v5) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray5& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6>
        +class ValueArray6 {
        + public:
        +  ValueArray6(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6) : v1_(v1), v2_(v2),
        +      v3_(v3), v4_(v4), v5_(v5), v6_(v6) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray6& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7>
        +class ValueArray7 {
        + public:
        +  ValueArray7(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7) : v1_(v1),
        +      v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray7& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8>
        +class ValueArray8 {
        + public:
        +  ValueArray8(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
        +      T8 v8) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
        +      v8_(v8) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray8& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9>
        +class ValueArray9 {
        + public:
        +  ValueArray9(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8,
        +      T9 v9) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
        +      v8_(v8), v9_(v9) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray9& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10>
        +class ValueArray10 {
        + public:
        +  ValueArray10(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
        +      v8_(v8), v9_(v9), v10_(v10) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray10& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11>
        +class ValueArray11 {
        + public:
        +  ValueArray11(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6),
        +      v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray11& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12>
        +class ValueArray12 {
        + public:
        +  ValueArray12(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5),
        +      v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray12& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13>
        +class ValueArray13 {
        + public:
        +  ValueArray13(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12, T13 v13) : v1_(v1), v2_(v2), v3_(v3), v4_(v4),
        +      v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11),
        +      v12_(v12), v13_(v13) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_), static_cast<T>(v13_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray13& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +  const T13 v13_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14>
        +class ValueArray14 {
        + public:
        +  ValueArray14(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14) : v1_(v1), v2_(v2), v3_(v3),
        +      v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10),
        +      v11_(v11), v12_(v12), v13_(v13), v14_(v14) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray14& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +  const T13 v13_;
        +  const T14 v14_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15>
        +class ValueArray15 {
        + public:
        +  ValueArray15(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15) : v1_(v1), v2_(v2),
        +      v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10),
        +      v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_),
        +        static_cast<T>(v15_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray15& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +  const T13 v13_;
        +  const T14 v14_;
        +  const T15 v15_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16>
        +class ValueArray16 {
        + public:
        +  ValueArray16(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16) : v1_(v1),
        +      v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9),
        +      v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15),
        +      v16_(v16) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_),
        +        static_cast<T>(v15_), static_cast<T>(v16_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray16& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +  const T13 v13_;
        +  const T14 v14_;
        +  const T15 v15_;
        +  const T16 v16_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17>
        +class ValueArray17 {
        + public:
        +  ValueArray17(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16,
        +      T17 v17) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
        +      v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14),
        +      v15_(v15), v16_(v16), v17_(v17) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_),
        +        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray17& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +  const T13 v13_;
        +  const T14 v14_;
        +  const T15 v15_;
        +  const T16 v16_;
        +  const T17 v17_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18>
        +class ValueArray18 {
        + public:
        +  ValueArray18(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +      T18 v18) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
        +      v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14),
        +      v15_(v15), v16_(v16), v17_(v17), v18_(v18) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_),
        +        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_),
        +        static_cast<T>(v18_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray18& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +  const T13 v13_;
        +  const T14 v14_;
        +  const T15 v15_;
        +  const T16 v16_;
        +  const T17 v17_;
        +  const T18 v18_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19>
        +class ValueArray19 {
        + public:
        +  ValueArray19(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +      T18 v18, T19 v19) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6),
        +      v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13),
        +      v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_),
        +        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_),
        +        static_cast<T>(v18_), static_cast<T>(v19_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray19& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +  const T13 v13_;
        +  const T14 v14_;
        +  const T15 v15_;
        +  const T16 v16_;
        +  const T17 v17_;
        +  const T18 v18_;
        +  const T19 v19_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20>
        +class ValueArray20 {
        + public:
        +  ValueArray20(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +      T18 v18, T19 v19, T20 v20) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5),
        +      v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12),
        +      v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18),
        +      v19_(v19), v20_(v20) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_),
        +        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_),
        +        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray20& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +  const T13 v13_;
        +  const T14 v14_;
        +  const T15 v15_;
        +  const T16 v16_;
        +  const T17 v17_;
        +  const T18 v18_;
        +  const T19 v19_;
        +  const T20 v20_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21>
        +class ValueArray21 {
        + public:
        +  ValueArray21(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +      T18 v18, T19 v19, T20 v20, T21 v21) : v1_(v1), v2_(v2), v3_(v3), v4_(v4),
        +      v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11),
        +      v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17),
        +      v18_(v18), v19_(v19), v20_(v20), v21_(v21) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_),
        +        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_),
        +        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_),
        +        static_cast<T>(v21_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray21& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +  const T13 v13_;
        +  const T14 v14_;
        +  const T15 v15_;
        +  const T16 v16_;
        +  const T17 v17_;
        +  const T18 v18_;
        +  const T19 v19_;
        +  const T20 v20_;
        +  const T21 v21_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22>
        +class ValueArray22 {
        + public:
        +  ValueArray22(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22) : v1_(v1), v2_(v2), v3_(v3),
        +      v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10),
        +      v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16),
        +      v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_),
        +        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_),
        +        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_),
        +        static_cast<T>(v21_), static_cast<T>(v22_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray22& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +  const T13 v13_;
        +  const T14 v14_;
        +  const T15 v15_;
        +  const T16 v16_;
        +  const T17 v17_;
        +  const T18 v18_;
        +  const T19 v19_;
        +  const T20 v20_;
        +  const T21 v21_;
        +  const T22 v22_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23>
        +class ValueArray23 {
        + public:
        +  ValueArray23(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23) : v1_(v1), v2_(v2),
        +      v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10),
        +      v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16),
        +      v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22),
        +      v23_(v23) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_),
        +        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_),
        +        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_),
        +        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray23& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +  const T13 v13_;
        +  const T14 v14_;
        +  const T15 v15_;
        +  const T16 v16_;
        +  const T17 v17_;
        +  const T18 v18_;
        +  const T19 v19_;
        +  const T20 v20_;
        +  const T21 v21_;
        +  const T22 v22_;
        +  const T23 v23_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24>
        +class ValueArray24 {
        + public:
        +  ValueArray24(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24) : v1_(v1),
        +      v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9),
        +      v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15),
        +      v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21),
        +      v22_(v22), v23_(v23), v24_(v24) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_),
        +        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_),
        +        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_),
        +        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_),
        +        static_cast<T>(v24_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray24& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +  const T13 v13_;
        +  const T14 v14_;
        +  const T15 v15_;
        +  const T16 v16_;
        +  const T17 v17_;
        +  const T18 v18_;
        +  const T19 v19_;
        +  const T20 v20_;
        +  const T21 v21_;
        +  const T22 v22_;
        +  const T23 v23_;
        +  const T24 v24_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25>
        +class ValueArray25 {
        + public:
        +  ValueArray25(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24,
        +      T25 v25) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
        +      v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14),
        +      v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20),
        +      v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_),
        +        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_),
        +        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_),
        +        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_),
        +        static_cast<T>(v24_), static_cast<T>(v25_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray25& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +  const T13 v13_;
        +  const T14 v14_;
        +  const T15 v15_;
        +  const T16 v16_;
        +  const T17 v17_;
        +  const T18 v18_;
        +  const T19 v19_;
        +  const T20 v20_;
        +  const T21 v21_;
        +  const T22 v22_;
        +  const T23 v23_;
        +  const T24 v24_;
        +  const T25 v25_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26>
        +class ValueArray26 {
        + public:
        +  ValueArray26(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
        +      T26 v26) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
        +      v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14),
        +      v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20),
        +      v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_),
        +        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_),
        +        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_),
        +        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_),
        +        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray26& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +  const T13 v13_;
        +  const T14 v14_;
        +  const T15 v15_;
        +  const T16 v16_;
        +  const T17 v17_;
        +  const T18 v18_;
        +  const T19 v19_;
        +  const T20 v20_;
        +  const T21 v21_;
        +  const T22 v22_;
        +  const T23 v23_;
        +  const T24 v24_;
        +  const T25 v25_;
        +  const T26 v26_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27>
        +class ValueArray27 {
        + public:
        +  ValueArray27(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
        +      T26 v26, T27 v27) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6),
        +      v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13),
        +      v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19),
        +      v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25),
        +      v26_(v26), v27_(v27) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_),
        +        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_),
        +        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_),
        +        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_),
        +        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_),
        +        static_cast<T>(v27_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray27& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +  const T13 v13_;
        +  const T14 v14_;
        +  const T15 v15_;
        +  const T16 v16_;
        +  const T17 v17_;
        +  const T18 v18_;
        +  const T19 v19_;
        +  const T20 v20_;
        +  const T21 v21_;
        +  const T22 v22_;
        +  const T23 v23_;
        +  const T24 v24_;
        +  const T25 v25_;
        +  const T26 v26_;
        +  const T27 v27_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28>
        +class ValueArray28 {
        + public:
        +  ValueArray28(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
        +      T26 v26, T27 v27, T28 v28) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5),
        +      v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12),
        +      v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18),
        +      v19_(v19), v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24),
        +      v25_(v25), v26_(v26), v27_(v27), v28_(v28) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_),
        +        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_),
        +        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_),
        +        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_),
        +        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_),
        +        static_cast<T>(v27_), static_cast<T>(v28_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray28& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +  const T13 v13_;
        +  const T14 v14_;
        +  const T15 v15_;
        +  const T16 v16_;
        +  const T17 v17_;
        +  const T18 v18_;
        +  const T19 v19_;
        +  const T20 v20_;
        +  const T21 v21_;
        +  const T22 v22_;
        +  const T23 v23_;
        +  const T24 v24_;
        +  const T25 v25_;
        +  const T26 v26_;
        +  const T27 v27_;
        +  const T28 v28_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29>
        +class ValueArray29 {
        + public:
        +  ValueArray29(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
        +      T26 v26, T27 v27, T28 v28, T29 v29) : v1_(v1), v2_(v2), v3_(v3), v4_(v4),
        +      v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11),
        +      v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17),
        +      v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), v23_(v23),
        +      v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28), v29_(v29) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_),
        +        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_),
        +        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_),
        +        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_),
        +        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_),
        +        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray29& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +  const T13 v13_;
        +  const T14 v14_;
        +  const T15 v15_;
        +  const T16 v16_;
        +  const T17 v17_;
        +  const T18 v18_;
        +  const T19 v19_;
        +  const T20 v20_;
        +  const T21 v21_;
        +  const T22 v22_;
        +  const T23 v23_;
        +  const T24 v24_;
        +  const T25 v25_;
        +  const T26 v26_;
        +  const T27 v27_;
        +  const T28 v28_;
        +  const T29 v29_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30>
        +class ValueArray30 {
        + public:
        +  ValueArray30(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
        +      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30) : v1_(v1), v2_(v2), v3_(v3),
        +      v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10),
        +      v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16),
        +      v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22),
        +      v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28),
        +      v29_(v29), v30_(v30) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_),
        +        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_),
        +        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_),
        +        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_),
        +        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_),
        +        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_),
        +        static_cast<T>(v30_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray30& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +  const T13 v13_;
        +  const T14 v14_;
        +  const T15 v15_;
        +  const T16 v16_;
        +  const T17 v17_;
        +  const T18 v18_;
        +  const T19 v19_;
        +  const T20 v20_;
        +  const T21 v21_;
        +  const T22 v22_;
        +  const T23 v23_;
        +  const T24 v24_;
        +  const T25 v25_;
        +  const T26 v26_;
        +  const T27 v27_;
        +  const T28 v28_;
        +  const T29 v29_;
        +  const T30 v30_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31>
        +class ValueArray31 {
        + public:
        +  ValueArray31(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
        +      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31) : v1_(v1), v2_(v2),
        +      v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10),
        +      v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16),
        +      v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22),
        +      v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28),
        +      v29_(v29), v30_(v30), v31_(v31) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_),
        +        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_),
        +        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_),
        +        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_),
        +        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_),
        +        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_),
        +        static_cast<T>(v30_), static_cast<T>(v31_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray31& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +  const T13 v13_;
        +  const T14 v14_;
        +  const T15 v15_;
        +  const T16 v16_;
        +  const T17 v17_;
        +  const T18 v18_;
        +  const T19 v19_;
        +  const T20 v20_;
        +  const T21 v21_;
        +  const T22 v22_;
        +  const T23 v23_;
        +  const T24 v24_;
        +  const T25 v25_;
        +  const T26 v26_;
        +  const T27 v27_;
        +  const T28 v28_;
        +  const T29 v29_;
        +  const T30 v30_;
        +  const T31 v31_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32>
        +class ValueArray32 {
        + public:
        +  ValueArray32(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
        +      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32) : v1_(v1),
        +      v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9),
        +      v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15),
        +      v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21),
        +      v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27),
        +      v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_),
        +        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_),
        +        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_),
        +        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_),
        +        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_),
        +        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_),
        +        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray32& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +  const T13 v13_;
        +  const T14 v14_;
        +  const T15 v15_;
        +  const T16 v16_;
        +  const T17 v17_;
        +  const T18 v18_;
        +  const T19 v19_;
        +  const T20 v20_;
        +  const T21 v21_;
        +  const T22 v22_;
        +  const T23 v23_;
        +  const T24 v24_;
        +  const T25 v25_;
        +  const T26 v26_;
        +  const T27 v27_;
        +  const T28 v28_;
        +  const T29 v29_;
        +  const T30 v30_;
        +  const T31 v31_;
        +  const T32 v32_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33>
        +class ValueArray33 {
        + public:
        +  ValueArray33(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
        +      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32,
        +      T33 v33) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
        +      v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14),
        +      v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20),
        +      v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26),
        +      v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32),
        +      v33_(v33) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_),
        +        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_),
        +        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_),
        +        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_),
        +        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_),
        +        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_),
        +        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_),
        +        static_cast<T>(v33_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray33& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +  const T13 v13_;
        +  const T14 v14_;
        +  const T15 v15_;
        +  const T16 v16_;
        +  const T17 v17_;
        +  const T18 v18_;
        +  const T19 v19_;
        +  const T20 v20_;
        +  const T21 v21_;
        +  const T22 v22_;
        +  const T23 v23_;
        +  const T24 v24_;
        +  const T25 v25_;
        +  const T26 v26_;
        +  const T27 v27_;
        +  const T28 v28_;
        +  const T29 v29_;
        +  const T30 v30_;
        +  const T31 v31_;
        +  const T32 v32_;
        +  const T33 v33_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34>
        +class ValueArray34 {
        + public:
        +  ValueArray34(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
        +      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
        +      T34 v34) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
        +      v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14),
        +      v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20),
        +      v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26),
        +      v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32),
        +      v33_(v33), v34_(v34) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_),
        +        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_),
        +        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_),
        +        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_),
        +        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_),
        +        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_),
        +        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_),
        +        static_cast<T>(v33_), static_cast<T>(v34_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray34& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +  const T13 v13_;
        +  const T14 v14_;
        +  const T15 v15_;
        +  const T16 v16_;
        +  const T17 v17_;
        +  const T18 v18_;
        +  const T19 v19_;
        +  const T20 v20_;
        +  const T21 v21_;
        +  const T22 v22_;
        +  const T23 v23_;
        +  const T24 v24_;
        +  const T25 v25_;
        +  const T26 v26_;
        +  const T27 v27_;
        +  const T28 v28_;
        +  const T29 v29_;
        +  const T30 v30_;
        +  const T31 v31_;
        +  const T32 v32_;
        +  const T33 v33_;
        +  const T34 v34_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35>
        +class ValueArray35 {
        + public:
        +  ValueArray35(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
        +      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
        +      T34 v34, T35 v35) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6),
        +      v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13),
        +      v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19),
        +      v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25),
        +      v26_(v26), v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31),
        +      v32_(v32), v33_(v33), v34_(v34), v35_(v35) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_),
        +        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_),
        +        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_),
        +        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_),
        +        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_),
        +        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_),
        +        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_),
        +        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray35& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +  const T13 v13_;
        +  const T14 v14_;
        +  const T15 v15_;
        +  const T16 v16_;
        +  const T17 v17_;
        +  const T18 v18_;
        +  const T19 v19_;
        +  const T20 v20_;
        +  const T21 v21_;
        +  const T22 v22_;
        +  const T23 v23_;
        +  const T24 v24_;
        +  const T25 v25_;
        +  const T26 v26_;
        +  const T27 v27_;
        +  const T28 v28_;
        +  const T29 v29_;
        +  const T30 v30_;
        +  const T31 v31_;
        +  const T32 v32_;
        +  const T33 v33_;
        +  const T34 v34_;
        +  const T35 v35_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36>
        +class ValueArray36 {
        + public:
        +  ValueArray36(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
        +      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
        +      T34 v34, T35 v35, T36 v36) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5),
        +      v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12),
        +      v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18),
        +      v19_(v19), v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24),
        +      v25_(v25), v26_(v26), v27_(v27), v28_(v28), v29_(v29), v30_(v30),
        +      v31_(v31), v32_(v32), v33_(v33), v34_(v34), v35_(v35), v36_(v36) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_),
        +        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_),
        +        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_),
        +        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_),
        +        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_),
        +        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_),
        +        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_),
        +        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_),
        +        static_cast<T>(v36_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray36& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +  const T13 v13_;
        +  const T14 v14_;
        +  const T15 v15_;
        +  const T16 v16_;
        +  const T17 v17_;
        +  const T18 v18_;
        +  const T19 v19_;
        +  const T20 v20_;
        +  const T21 v21_;
        +  const T22 v22_;
        +  const T23 v23_;
        +  const T24 v24_;
        +  const T25 v25_;
        +  const T26 v26_;
        +  const T27 v27_;
        +  const T28 v28_;
        +  const T29 v29_;
        +  const T30 v30_;
        +  const T31 v31_;
        +  const T32 v32_;
        +  const T33 v33_;
        +  const T34 v34_;
        +  const T35 v35_;
        +  const T36 v36_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37>
        +class ValueArray37 {
        + public:
        +  ValueArray37(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
        +      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
        +      T34 v34, T35 v35, T36 v36, T37 v37) : v1_(v1), v2_(v2), v3_(v3), v4_(v4),
        +      v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11),
        +      v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17),
        +      v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), v23_(v23),
        +      v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28), v29_(v29),
        +      v30_(v30), v31_(v31), v32_(v32), v33_(v33), v34_(v34), v35_(v35),
        +      v36_(v36), v37_(v37) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_),
        +        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_),
        +        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_),
        +        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_),
        +        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_),
        +        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_),
        +        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_),
        +        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_),
        +        static_cast<T>(v36_), static_cast<T>(v37_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray37& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +  const T13 v13_;
        +  const T14 v14_;
        +  const T15 v15_;
        +  const T16 v16_;
        +  const T17 v17_;
        +  const T18 v18_;
        +  const T19 v19_;
        +  const T20 v20_;
        +  const T21 v21_;
        +  const T22 v22_;
        +  const T23 v23_;
        +  const T24 v24_;
        +  const T25 v25_;
        +  const T26 v26_;
        +  const T27 v27_;
        +  const T28 v28_;
        +  const T29 v29_;
        +  const T30 v30_;
        +  const T31 v31_;
        +  const T32 v32_;
        +  const T33 v33_;
        +  const T34 v34_;
        +  const T35 v35_;
        +  const T36 v36_;
        +  const T37 v37_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38>
        +class ValueArray38 {
        + public:
        +  ValueArray38(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
        +      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
        +      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38) : v1_(v1), v2_(v2), v3_(v3),
        +      v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10),
        +      v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16),
        +      v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22),
        +      v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28),
        +      v29_(v29), v30_(v30), v31_(v31), v32_(v32), v33_(v33), v34_(v34),
        +      v35_(v35), v36_(v36), v37_(v37), v38_(v38) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_),
        +        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_),
        +        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_),
        +        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_),
        +        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_),
        +        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_),
        +        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_),
        +        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_),
        +        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray38& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +  const T13 v13_;
        +  const T14 v14_;
        +  const T15 v15_;
        +  const T16 v16_;
        +  const T17 v17_;
        +  const T18 v18_;
        +  const T19 v19_;
        +  const T20 v20_;
        +  const T21 v21_;
        +  const T22 v22_;
        +  const T23 v23_;
        +  const T24 v24_;
        +  const T25 v25_;
        +  const T26 v26_;
        +  const T27 v27_;
        +  const T28 v28_;
        +  const T29 v29_;
        +  const T30 v30_;
        +  const T31 v31_;
        +  const T32 v32_;
        +  const T33 v33_;
        +  const T34 v34_;
        +  const T35 v35_;
        +  const T36 v36_;
        +  const T37 v37_;
        +  const T38 v38_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39>
        +class ValueArray39 {
        + public:
        +  ValueArray39(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
        +      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
        +      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39) : v1_(v1), v2_(v2),
        +      v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10),
        +      v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16),
        +      v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22),
        +      v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28),
        +      v29_(v29), v30_(v30), v31_(v31), v32_(v32), v33_(v33), v34_(v34),
        +      v35_(v35), v36_(v36), v37_(v37), v38_(v38), v39_(v39) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_),
        +        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_),
        +        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_),
        +        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_),
        +        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_),
        +        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_),
        +        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_),
        +        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_),
        +        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_),
        +        static_cast<T>(v39_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray39& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +  const T13 v13_;
        +  const T14 v14_;
        +  const T15 v15_;
        +  const T16 v16_;
        +  const T17 v17_;
        +  const T18 v18_;
        +  const T19 v19_;
        +  const T20 v20_;
        +  const T21 v21_;
        +  const T22 v22_;
        +  const T23 v23_;
        +  const T24 v24_;
        +  const T25 v25_;
        +  const T26 v26_;
        +  const T27 v27_;
        +  const T28 v28_;
        +  const T29 v29_;
        +  const T30 v30_;
        +  const T31 v31_;
        +  const T32 v32_;
        +  const T33 v33_;
        +  const T34 v34_;
        +  const T35 v35_;
        +  const T36 v36_;
        +  const T37 v37_;
        +  const T38 v38_;
        +  const T39 v39_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40>
        +class ValueArray40 {
        + public:
        +  ValueArray40(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
        +      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
        +      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40) : v1_(v1),
        +      v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9),
        +      v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15),
        +      v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21),
        +      v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27),
        +      v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32), v33_(v33),
        +      v34_(v34), v35_(v35), v36_(v36), v37_(v37), v38_(v38), v39_(v39),
        +      v40_(v40) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_),
        +        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_),
        +        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_),
        +        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_),
        +        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_),
        +        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_),
        +        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_),
        +        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_),
        +        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_),
        +        static_cast<T>(v39_), static_cast<T>(v40_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray40& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +  const T13 v13_;
        +  const T14 v14_;
        +  const T15 v15_;
        +  const T16 v16_;
        +  const T17 v17_;
        +  const T18 v18_;
        +  const T19 v19_;
        +  const T20 v20_;
        +  const T21 v21_;
        +  const T22 v22_;
        +  const T23 v23_;
        +  const T24 v24_;
        +  const T25 v25_;
        +  const T26 v26_;
        +  const T27 v27_;
        +  const T28 v28_;
        +  const T29 v29_;
        +  const T30 v30_;
        +  const T31 v31_;
        +  const T32 v32_;
        +  const T33 v33_;
        +  const T34 v34_;
        +  const T35 v35_;
        +  const T36 v36_;
        +  const T37 v37_;
        +  const T38 v38_;
        +  const T39 v39_;
        +  const T40 v40_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41>
        +class ValueArray41 {
        + public:
        +  ValueArray41(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
        +      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
        +      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40,
        +      T41 v41) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
        +      v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14),
        +      v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20),
        +      v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26),
        +      v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32),
        +      v33_(v33), v34_(v34), v35_(v35), v36_(v36), v37_(v37), v38_(v38),
        +      v39_(v39), v40_(v40), v41_(v41) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_),
        +        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_),
        +        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_),
        +        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_),
        +        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_),
        +        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_),
        +        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_),
        +        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_),
        +        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_),
        +        static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray41& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +  const T13 v13_;
        +  const T14 v14_;
        +  const T15 v15_;
        +  const T16 v16_;
        +  const T17 v17_;
        +  const T18 v18_;
        +  const T19 v19_;
        +  const T20 v20_;
        +  const T21 v21_;
        +  const T22 v22_;
        +  const T23 v23_;
        +  const T24 v24_;
        +  const T25 v25_;
        +  const T26 v26_;
        +  const T27 v27_;
        +  const T28 v28_;
        +  const T29 v29_;
        +  const T30 v30_;
        +  const T31 v31_;
        +  const T32 v32_;
        +  const T33 v33_;
        +  const T34 v34_;
        +  const T35 v35_;
        +  const T36 v36_;
        +  const T37 v37_;
        +  const T38 v38_;
        +  const T39 v39_;
        +  const T40 v40_;
        +  const T41 v41_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41, typename T42>
        +class ValueArray42 {
        + public:
        +  ValueArray42(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
        +      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
        +      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
        +      T42 v42) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
        +      v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14),
        +      v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20),
        +      v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26),
        +      v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32),
        +      v33_(v33), v34_(v34), v35_(v35), v36_(v36), v37_(v37), v38_(v38),
        +      v39_(v39), v40_(v40), v41_(v41), v42_(v42) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_),
        +        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_),
        +        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_),
        +        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_),
        +        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_),
        +        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_),
        +        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_),
        +        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_),
        +        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_),
        +        static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_),
        +        static_cast<T>(v42_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray42& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +  const T13 v13_;
        +  const T14 v14_;
        +  const T15 v15_;
        +  const T16 v16_;
        +  const T17 v17_;
        +  const T18 v18_;
        +  const T19 v19_;
        +  const T20 v20_;
        +  const T21 v21_;
        +  const T22 v22_;
        +  const T23 v23_;
        +  const T24 v24_;
        +  const T25 v25_;
        +  const T26 v26_;
        +  const T27 v27_;
        +  const T28 v28_;
        +  const T29 v29_;
        +  const T30 v30_;
        +  const T31 v31_;
        +  const T32 v32_;
        +  const T33 v33_;
        +  const T34 v34_;
        +  const T35 v35_;
        +  const T36 v36_;
        +  const T37 v37_;
        +  const T38 v38_;
        +  const T39 v39_;
        +  const T40 v40_;
        +  const T41 v41_;
        +  const T42 v42_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41, typename T42, typename T43>
        +class ValueArray43 {
        + public:
        +  ValueArray43(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
        +      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
        +      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
        +      T42 v42, T43 v43) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6),
        +      v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13),
        +      v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19),
        +      v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25),
        +      v26_(v26), v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31),
        +      v32_(v32), v33_(v33), v34_(v34), v35_(v35), v36_(v36), v37_(v37),
        +      v38_(v38), v39_(v39), v40_(v40), v41_(v41), v42_(v42), v43_(v43) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_),
        +        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_),
        +        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_),
        +        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_),
        +        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_),
        +        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_),
        +        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_),
        +        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_),
        +        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_),
        +        static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_),
        +        static_cast<T>(v42_), static_cast<T>(v43_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray43& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +  const T13 v13_;
        +  const T14 v14_;
        +  const T15 v15_;
        +  const T16 v16_;
        +  const T17 v17_;
        +  const T18 v18_;
        +  const T19 v19_;
        +  const T20 v20_;
        +  const T21 v21_;
        +  const T22 v22_;
        +  const T23 v23_;
        +  const T24 v24_;
        +  const T25 v25_;
        +  const T26 v26_;
        +  const T27 v27_;
        +  const T28 v28_;
        +  const T29 v29_;
        +  const T30 v30_;
        +  const T31 v31_;
        +  const T32 v32_;
        +  const T33 v33_;
        +  const T34 v34_;
        +  const T35 v35_;
        +  const T36 v36_;
        +  const T37 v37_;
        +  const T38 v38_;
        +  const T39 v39_;
        +  const T40 v40_;
        +  const T41 v41_;
        +  const T42 v42_;
        +  const T43 v43_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41, typename T42, typename T43, typename T44>
        +class ValueArray44 {
        + public:
        +  ValueArray44(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
        +      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
        +      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
        +      T42 v42, T43 v43, T44 v44) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5),
        +      v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12),
        +      v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18),
        +      v19_(v19), v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24),
        +      v25_(v25), v26_(v26), v27_(v27), v28_(v28), v29_(v29), v30_(v30),
        +      v31_(v31), v32_(v32), v33_(v33), v34_(v34), v35_(v35), v36_(v36),
        +      v37_(v37), v38_(v38), v39_(v39), v40_(v40), v41_(v41), v42_(v42),
        +      v43_(v43), v44_(v44) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_),
        +        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_),
        +        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_),
        +        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_),
        +        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_),
        +        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_),
        +        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_),
        +        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_),
        +        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_),
        +        static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_),
        +        static_cast<T>(v42_), static_cast<T>(v43_), static_cast<T>(v44_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray44& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +  const T13 v13_;
        +  const T14 v14_;
        +  const T15 v15_;
        +  const T16 v16_;
        +  const T17 v17_;
        +  const T18 v18_;
        +  const T19 v19_;
        +  const T20 v20_;
        +  const T21 v21_;
        +  const T22 v22_;
        +  const T23 v23_;
        +  const T24 v24_;
        +  const T25 v25_;
        +  const T26 v26_;
        +  const T27 v27_;
        +  const T28 v28_;
        +  const T29 v29_;
        +  const T30 v30_;
        +  const T31 v31_;
        +  const T32 v32_;
        +  const T33 v33_;
        +  const T34 v34_;
        +  const T35 v35_;
        +  const T36 v36_;
        +  const T37 v37_;
        +  const T38 v38_;
        +  const T39 v39_;
        +  const T40 v40_;
        +  const T41 v41_;
        +  const T42 v42_;
        +  const T43 v43_;
        +  const T44 v44_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41, typename T42, typename T43, typename T44, typename T45>
        +class ValueArray45 {
        + public:
        +  ValueArray45(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
        +      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
        +      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
        +      T42 v42, T43 v43, T44 v44, T45 v45) : v1_(v1), v2_(v2), v3_(v3), v4_(v4),
        +      v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11),
        +      v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17),
        +      v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), v23_(v23),
        +      v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28), v29_(v29),
        +      v30_(v30), v31_(v31), v32_(v32), v33_(v33), v34_(v34), v35_(v35),
        +      v36_(v36), v37_(v37), v38_(v38), v39_(v39), v40_(v40), v41_(v41),
        +      v42_(v42), v43_(v43), v44_(v44), v45_(v45) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_),
        +        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_),
        +        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_),
        +        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_),
        +        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_),
        +        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_),
        +        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_),
        +        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_),
        +        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_),
        +        static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_),
        +        static_cast<T>(v42_), static_cast<T>(v43_), static_cast<T>(v44_),
        +        static_cast<T>(v45_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray45& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +  const T13 v13_;
        +  const T14 v14_;
        +  const T15 v15_;
        +  const T16 v16_;
        +  const T17 v17_;
        +  const T18 v18_;
        +  const T19 v19_;
        +  const T20 v20_;
        +  const T21 v21_;
        +  const T22 v22_;
        +  const T23 v23_;
        +  const T24 v24_;
        +  const T25 v25_;
        +  const T26 v26_;
        +  const T27 v27_;
        +  const T28 v28_;
        +  const T29 v29_;
        +  const T30 v30_;
        +  const T31 v31_;
        +  const T32 v32_;
        +  const T33 v33_;
        +  const T34 v34_;
        +  const T35 v35_;
        +  const T36 v36_;
        +  const T37 v37_;
        +  const T38 v38_;
        +  const T39 v39_;
        +  const T40 v40_;
        +  const T41 v41_;
        +  const T42 v42_;
        +  const T43 v43_;
        +  const T44 v44_;
        +  const T45 v45_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41, typename T42, typename T43, typename T44, typename T45,
        +    typename T46>
        +class ValueArray46 {
        + public:
        +  ValueArray46(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
        +      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
        +      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
        +      T42 v42, T43 v43, T44 v44, T45 v45, T46 v46) : v1_(v1), v2_(v2), v3_(v3),
        +      v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10),
        +      v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16),
        +      v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22),
        +      v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28),
        +      v29_(v29), v30_(v30), v31_(v31), v32_(v32), v33_(v33), v34_(v34),
        +      v35_(v35), v36_(v36), v37_(v37), v38_(v38), v39_(v39), v40_(v40),
        +      v41_(v41), v42_(v42), v43_(v43), v44_(v44), v45_(v45), v46_(v46) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_),
        +        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_),
        +        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_),
        +        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_),
        +        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_),
        +        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_),
        +        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_),
        +        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_),
        +        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_),
        +        static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_),
        +        static_cast<T>(v42_), static_cast<T>(v43_), static_cast<T>(v44_),
        +        static_cast<T>(v45_), static_cast<T>(v46_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray46& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +  const T13 v13_;
        +  const T14 v14_;
        +  const T15 v15_;
        +  const T16 v16_;
        +  const T17 v17_;
        +  const T18 v18_;
        +  const T19 v19_;
        +  const T20 v20_;
        +  const T21 v21_;
        +  const T22 v22_;
        +  const T23 v23_;
        +  const T24 v24_;
        +  const T25 v25_;
        +  const T26 v26_;
        +  const T27 v27_;
        +  const T28 v28_;
        +  const T29 v29_;
        +  const T30 v30_;
        +  const T31 v31_;
        +  const T32 v32_;
        +  const T33 v33_;
        +  const T34 v34_;
        +  const T35 v35_;
        +  const T36 v36_;
        +  const T37 v37_;
        +  const T38 v38_;
        +  const T39 v39_;
        +  const T40 v40_;
        +  const T41 v41_;
        +  const T42 v42_;
        +  const T43 v43_;
        +  const T44 v44_;
        +  const T45 v45_;
        +  const T46 v46_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41, typename T42, typename T43, typename T44, typename T45,
        +    typename T46, typename T47>
        +class ValueArray47 {
        + public:
        +  ValueArray47(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
        +      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
        +      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
        +      T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47) : v1_(v1), v2_(v2),
        +      v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10),
        +      v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16),
        +      v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22),
        +      v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28),
        +      v29_(v29), v30_(v30), v31_(v31), v32_(v32), v33_(v33), v34_(v34),
        +      v35_(v35), v36_(v36), v37_(v37), v38_(v38), v39_(v39), v40_(v40),
        +      v41_(v41), v42_(v42), v43_(v43), v44_(v44), v45_(v45), v46_(v46),
        +      v47_(v47) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_),
        +        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_),
        +        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_),
        +        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_),
        +        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_),
        +        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_),
        +        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_),
        +        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_),
        +        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_),
        +        static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_),
        +        static_cast<T>(v42_), static_cast<T>(v43_), static_cast<T>(v44_),
        +        static_cast<T>(v45_), static_cast<T>(v46_), static_cast<T>(v47_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray47& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +  const T13 v13_;
        +  const T14 v14_;
        +  const T15 v15_;
        +  const T16 v16_;
        +  const T17 v17_;
        +  const T18 v18_;
        +  const T19 v19_;
        +  const T20 v20_;
        +  const T21 v21_;
        +  const T22 v22_;
        +  const T23 v23_;
        +  const T24 v24_;
        +  const T25 v25_;
        +  const T26 v26_;
        +  const T27 v27_;
        +  const T28 v28_;
        +  const T29 v29_;
        +  const T30 v30_;
        +  const T31 v31_;
        +  const T32 v32_;
        +  const T33 v33_;
        +  const T34 v34_;
        +  const T35 v35_;
        +  const T36 v36_;
        +  const T37 v37_;
        +  const T38 v38_;
        +  const T39 v39_;
        +  const T40 v40_;
        +  const T41 v41_;
        +  const T42 v42_;
        +  const T43 v43_;
        +  const T44 v44_;
        +  const T45 v45_;
        +  const T46 v46_;
        +  const T47 v47_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41, typename T42, typename T43, typename T44, typename T45,
        +    typename T46, typename T47, typename T48>
        +class ValueArray48 {
        + public:
        +  ValueArray48(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
        +      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
        +      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
        +      T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47, T48 v48) : v1_(v1),
        +      v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9),
        +      v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15),
        +      v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21),
        +      v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27),
        +      v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32), v33_(v33),
        +      v34_(v34), v35_(v35), v36_(v36), v37_(v37), v38_(v38), v39_(v39),
        +      v40_(v40), v41_(v41), v42_(v42), v43_(v43), v44_(v44), v45_(v45),
        +      v46_(v46), v47_(v47), v48_(v48) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_),
        +        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_),
        +        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_),
        +        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_),
        +        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_),
        +        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_),
        +        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_),
        +        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_),
        +        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_),
        +        static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_),
        +        static_cast<T>(v42_), static_cast<T>(v43_), static_cast<T>(v44_),
        +        static_cast<T>(v45_), static_cast<T>(v46_), static_cast<T>(v47_),
        +        static_cast<T>(v48_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray48& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +  const T13 v13_;
        +  const T14 v14_;
        +  const T15 v15_;
        +  const T16 v16_;
        +  const T17 v17_;
        +  const T18 v18_;
        +  const T19 v19_;
        +  const T20 v20_;
        +  const T21 v21_;
        +  const T22 v22_;
        +  const T23 v23_;
        +  const T24 v24_;
        +  const T25 v25_;
        +  const T26 v26_;
        +  const T27 v27_;
        +  const T28 v28_;
        +  const T29 v29_;
        +  const T30 v30_;
        +  const T31 v31_;
        +  const T32 v32_;
        +  const T33 v33_;
        +  const T34 v34_;
        +  const T35 v35_;
        +  const T36 v36_;
        +  const T37 v37_;
        +  const T38 v38_;
        +  const T39 v39_;
        +  const T40 v40_;
        +  const T41 v41_;
        +  const T42 v42_;
        +  const T43 v43_;
        +  const T44 v44_;
        +  const T45 v45_;
        +  const T46 v46_;
        +  const T47 v47_;
        +  const T48 v48_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41, typename T42, typename T43, typename T44, typename T45,
        +    typename T46, typename T47, typename T48, typename T49>
        +class ValueArray49 {
        + public:
        +  ValueArray49(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
        +      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
        +      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
        +      T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47, T48 v48,
        +      T49 v49) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
        +      v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14),
        +      v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20),
        +      v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26),
        +      v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32),
        +      v33_(v33), v34_(v34), v35_(v35), v36_(v36), v37_(v37), v38_(v38),
        +      v39_(v39), v40_(v40), v41_(v41), v42_(v42), v43_(v43), v44_(v44),
        +      v45_(v45), v46_(v46), v47_(v47), v48_(v48), v49_(v49) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_),
        +        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_),
        +        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_),
        +        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_),
        +        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_),
        +        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_),
        +        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_),
        +        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_),
        +        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_),
        +        static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_),
        +        static_cast<T>(v42_), static_cast<T>(v43_), static_cast<T>(v44_),
        +        static_cast<T>(v45_), static_cast<T>(v46_), static_cast<T>(v47_),
        +        static_cast<T>(v48_), static_cast<T>(v49_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray49& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +  const T13 v13_;
        +  const T14 v14_;
        +  const T15 v15_;
        +  const T16 v16_;
        +  const T17 v17_;
        +  const T18 v18_;
        +  const T19 v19_;
        +  const T20 v20_;
        +  const T21 v21_;
        +  const T22 v22_;
        +  const T23 v23_;
        +  const T24 v24_;
        +  const T25 v25_;
        +  const T26 v26_;
        +  const T27 v27_;
        +  const T28 v28_;
        +  const T29 v29_;
        +  const T30 v30_;
        +  const T31 v31_;
        +  const T32 v32_;
        +  const T33 v33_;
        +  const T34 v34_;
        +  const T35 v35_;
        +  const T36 v36_;
        +  const T37 v37_;
        +  const T38 v38_;
        +  const T39 v39_;
        +  const T40 v40_;
        +  const T41 v41_;
        +  const T42 v42_;
        +  const T43 v43_;
        +  const T44 v44_;
        +  const T45 v45_;
        +  const T46 v46_;
        +  const T47 v47_;
        +  const T48 v48_;
        +  const T49 v49_;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41, typename T42, typename T43, typename T44, typename T45,
        +    typename T46, typename T47, typename T48, typename T49, typename T50>
        +class ValueArray50 {
        + public:
        +  ValueArray50(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
        +      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
        +      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
        +      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
        +      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
        +      T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47, T48 v48, T49 v49,
        +      T50 v50) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
        +      v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14),
        +      v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20),
        +      v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26),
        +      v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32),
        +      v33_(v33), v34_(v34), v35_(v35), v36_(v36), v37_(v37), v38_(v38),
        +      v39_(v39), v40_(v40), v41_(v41), v42_(v42), v43_(v43), v44_(v44),
        +      v45_(v45), v46_(v46), v47_(v47), v48_(v48), v49_(v49), v50_(v50) {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_),
        +        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_),
        +        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_),
        +        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_),
        +        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_),
        +        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_),
        +        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_),
        +        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_),
        +        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_),
        +        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_),
        +        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_),
        +        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_),
        +        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_),
        +        static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_),
        +        static_cast<T>(v42_), static_cast<T>(v43_), static_cast<T>(v44_),
        +        static_cast<T>(v45_), static_cast<T>(v46_), static_cast<T>(v47_),
        +        static_cast<T>(v48_), static_cast<T>(v49_), static_cast<T>(v50_)};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray50& other);
        +
        +  const T1 v1_;
        +  const T2 v2_;
        +  const T3 v3_;
        +  const T4 v4_;
        +  const T5 v5_;
        +  const T6 v6_;
        +  const T7 v7_;
        +  const T8 v8_;
        +  const T9 v9_;
        +  const T10 v10_;
        +  const T11 v11_;
        +  const T12 v12_;
        +  const T13 v13_;
        +  const T14 v14_;
        +  const T15 v15_;
        +  const T16 v16_;
        +  const T17 v17_;
        +  const T18 v18_;
        +  const T19 v19_;
        +  const T20 v20_;
        +  const T21 v21_;
        +  const T22 v22_;
        +  const T23 v23_;
        +  const T24 v24_;
        +  const T25 v25_;
        +  const T26 v26_;
        +  const T27 v27_;
        +  const T28 v28_;
        +  const T29 v29_;
        +  const T30 v30_;
        +  const T31 v31_;
        +  const T32 v32_;
        +  const T33 v33_;
        +  const T34 v34_;
        +  const T35 v35_;
        +  const T36 v36_;
        +  const T37 v37_;
        +  const T38 v38_;
        +  const T39 v39_;
        +  const T40 v40_;
        +  const T41 v41_;
        +  const T42 v42_;
        +  const T43 v43_;
        +  const T44 v44_;
        +  const T45 v45_;
        +  const T46 v46_;
        +  const T47 v47_;
        +  const T48 v48_;
        +  const T49 v49_;
        +  const T50 v50_;
        +};
        +
        +# if GTEST_HAS_COMBINE
        +// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE.
        +//
        +// Generates values from the Cartesian product of values produced
        +// by the argument generators.
        +//
        +template <typename T1, typename T2>
        +class CartesianProductGenerator2
        +    : public ParamGeneratorInterface< ::testing::tuple<T1, T2> > {
        + public:
        +  typedef ::testing::tuple<T1, T2> ParamType;
        +
        +  CartesianProductGenerator2(const ParamGenerator<T1>& g1,
        +      const ParamGenerator<T2>& g2)
        +      : g1_(g1), g2_(g2) {}
        +  virtual ~CartesianProductGenerator2() {}
        +
        +  virtual ParamIteratorInterface<ParamType>* Begin() const {
        +    return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin());
        +  }
        +  virtual ParamIteratorInterface<ParamType>* End() const {
        +    return new Iterator(this, g1_, g1_.end(), g2_, g2_.end());
        +  }
        +
        + private:
        +  class Iterator : public ParamIteratorInterface<ParamType> {
        +   public:
        +    Iterator(const ParamGeneratorInterface<ParamType>* base,
        +      const ParamGenerator<T1>& g1,
        +      const typename ParamGenerator<T1>::iterator& current1,
        +      const ParamGenerator<T2>& g2,
        +      const typename ParamGenerator<T2>::iterator& current2)
        +        : base_(base),
        +          begin1_(g1.begin()), end1_(g1.end()), current1_(current1),
        +          begin2_(g2.begin()), end2_(g2.end()), current2_(current2)    {
        +      ComputeCurrentValue();
        +    }
        +    virtual ~Iterator() {}
        +
        +    virtual const ParamGeneratorInterface<ParamType>* BaseGenerator() const {
        +      return base_;
        +    }
        +    // Advance should not be called on beyond-of-range iterators
        +    // so no component iterators must be beyond end of range, either.
        +    virtual void Advance() {
        +      assert(!AtEnd());
        +      ++current2_;
        +      if (current2_ == end2_) {
        +        current2_ = begin2_;
        +        ++current1_;
        +      }
        +      ComputeCurrentValue();
        +    }
        +    virtual ParamIteratorInterface<ParamType>* Clone() const {
        +      return new Iterator(*this);
        +    }
        +    virtual const ParamType* Current() const { return &current_value_; }
        +    virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
        +      // Having the same base generator guarantees that the other
        +      // iterator is of the same type and we can downcast.
        +      GTEST_CHECK_(BaseGenerator() == other.BaseGenerator())
        +          << "The program attempted to compare iterators "
        +          << "from different generators." << std::endl;
        +      const Iterator* typed_other =
        +          CheckedDowncastToActualType<const Iterator>(&other);
        +      // We must report iterators equal if they both point beyond their
        +      // respective ranges. That can happen in a variety of fashions,
        +      // so we have to consult AtEnd().
        +      return (AtEnd() && typed_other->AtEnd()) ||
        +         (
        +          current1_ == typed_other->current1_ &&
        +          current2_ == typed_other->current2_);
        +    }
        +
        +   private:
        +    Iterator(const Iterator& other)
        +        : base_(other.base_),
        +        begin1_(other.begin1_),
        +        end1_(other.end1_),
        +        current1_(other.current1_),
        +        begin2_(other.begin2_),
        +        end2_(other.end2_),
        +        current2_(other.current2_) {
        +      ComputeCurrentValue();
        +    }
        +
        +    void ComputeCurrentValue() {
        +      if (!AtEnd())
        +        current_value_ = ParamType(*current1_, *current2_);
        +    }
        +    bool AtEnd() const {
        +      // We must report iterator past the end of the range when either of the
        +      // component iterators has reached the end of its range.
        +      return
        +          current1_ == end1_ ||
        +          current2_ == end2_;
        +    }
        +
        +    // No implementation - assignment is unsupported.
        +    void operator=(const Iterator& other);
        +
        +    const ParamGeneratorInterface<ParamType>* const base_;
        +    // begin[i]_ and end[i]_ define the i-th range that Iterator traverses.
        +    // current[i]_ is the actual traversing iterator.
        +    const typename ParamGenerator<T1>::iterator begin1_;
        +    const typename ParamGenerator<T1>::iterator end1_;
        +    typename ParamGenerator<T1>::iterator current1_;
        +    const typename ParamGenerator<T2>::iterator begin2_;
        +    const typename ParamGenerator<T2>::iterator end2_;
        +    typename ParamGenerator<T2>::iterator current2_;
        +    ParamType current_value_;
        +  };  // class CartesianProductGenerator2::Iterator
        +
        +  // No implementation - assignment is unsupported.
        +  void operator=(const CartesianProductGenerator2& other);
        +
        +  const ParamGenerator<T1> g1_;
        +  const ParamGenerator<T2> g2_;
        +};  // class CartesianProductGenerator2
        +
        +
        +template <typename T1, typename T2, typename T3>
        +class CartesianProductGenerator3
        +    : public ParamGeneratorInterface< ::testing::tuple<T1, T2, T3> > {
        + public:
        +  typedef ::testing::tuple<T1, T2, T3> ParamType;
        +
        +  CartesianProductGenerator3(const ParamGenerator<T1>& g1,
        +      const ParamGenerator<T2>& g2, const ParamGenerator<T3>& g3)
        +      : g1_(g1), g2_(g2), g3_(g3) {}
        +  virtual ~CartesianProductGenerator3() {}
        +
        +  virtual ParamIteratorInterface<ParamType>* Begin() const {
        +    return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
        +        g3_.begin());
        +  }
        +  virtual ParamIteratorInterface<ParamType>* End() const {
        +    return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end());
        +  }
        +
        + private:
        +  class Iterator : public ParamIteratorInterface<ParamType> {
        +   public:
        +    Iterator(const ParamGeneratorInterface<ParamType>* base,
        +      const ParamGenerator<T1>& g1,
        +      const typename ParamGenerator<T1>::iterator& current1,
        +      const ParamGenerator<T2>& g2,
        +      const typename ParamGenerator<T2>::iterator& current2,
        +      const ParamGenerator<T3>& g3,
        +      const typename ParamGenerator<T3>::iterator& current3)
        +        : base_(base),
        +          begin1_(g1.begin()), end1_(g1.end()), current1_(current1),
        +          begin2_(g2.begin()), end2_(g2.end()), current2_(current2),
        +          begin3_(g3.begin()), end3_(g3.end()), current3_(current3)    {
        +      ComputeCurrentValue();
        +    }
        +    virtual ~Iterator() {}
        +
        +    virtual const ParamGeneratorInterface<ParamType>* BaseGenerator() const {
        +      return base_;
        +    }
        +    // Advance should not be called on beyond-of-range iterators
        +    // so no component iterators must be beyond end of range, either.
        +    virtual void Advance() {
        +      assert(!AtEnd());
        +      ++current3_;
        +      if (current3_ == end3_) {
        +        current3_ = begin3_;
        +        ++current2_;
        +      }
        +      if (current2_ == end2_) {
        +        current2_ = begin2_;
        +        ++current1_;
        +      }
        +      ComputeCurrentValue();
        +    }
        +    virtual ParamIteratorInterface<ParamType>* Clone() const {
        +      return new Iterator(*this);
        +    }
        +    virtual const ParamType* Current() const { return &current_value_; }
        +    virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
        +      // Having the same base generator guarantees that the other
        +      // iterator is of the same type and we can downcast.
        +      GTEST_CHECK_(BaseGenerator() == other.BaseGenerator())
        +          << "The program attempted to compare iterators "
        +          << "from different generators." << std::endl;
        +      const Iterator* typed_other =
        +          CheckedDowncastToActualType<const Iterator>(&other);
        +      // We must report iterators equal if they both point beyond their
        +      // respective ranges. That can happen in a variety of fashions,
        +      // so we have to consult AtEnd().
        +      return (AtEnd() && typed_other->AtEnd()) ||
        +         (
        +          current1_ == typed_other->current1_ &&
        +          current2_ == typed_other->current2_ &&
        +          current3_ == typed_other->current3_);
        +    }
        +
        +   private:
        +    Iterator(const Iterator& other)
        +        : base_(other.base_),
        +        begin1_(other.begin1_),
        +        end1_(other.end1_),
        +        current1_(other.current1_),
        +        begin2_(other.begin2_),
        +        end2_(other.end2_),
        +        current2_(other.current2_),
        +        begin3_(other.begin3_),
        +        end3_(other.end3_),
        +        current3_(other.current3_) {
        +      ComputeCurrentValue();
        +    }
        +
        +    void ComputeCurrentValue() {
        +      if (!AtEnd())
        +        current_value_ = ParamType(*current1_, *current2_, *current3_);
        +    }
        +    bool AtEnd() const {
        +      // We must report iterator past the end of the range when either of the
        +      // component iterators has reached the end of its range.
        +      return
        +          current1_ == end1_ ||
        +          current2_ == end2_ ||
        +          current3_ == end3_;
        +    }
        +
        +    // No implementation - assignment is unsupported.
        +    void operator=(const Iterator& other);
        +
        +    const ParamGeneratorInterface<ParamType>* const base_;
        +    // begin[i]_ and end[i]_ define the i-th range that Iterator traverses.
        +    // current[i]_ is the actual traversing iterator.
        +    const typename ParamGenerator<T1>::iterator begin1_;
        +    const typename ParamGenerator<T1>::iterator end1_;
        +    typename ParamGenerator<T1>::iterator current1_;
        +    const typename ParamGenerator<T2>::iterator begin2_;
        +    const typename ParamGenerator<T2>::iterator end2_;
        +    typename ParamGenerator<T2>::iterator current2_;
        +    const typename ParamGenerator<T3>::iterator begin3_;
        +    const typename ParamGenerator<T3>::iterator end3_;
        +    typename ParamGenerator<T3>::iterator current3_;
        +    ParamType current_value_;
        +  };  // class CartesianProductGenerator3::Iterator
        +
        +  // No implementation - assignment is unsupported.
        +  void operator=(const CartesianProductGenerator3& other);
        +
        +  const ParamGenerator<T1> g1_;
        +  const ParamGenerator<T2> g2_;
        +  const ParamGenerator<T3> g3_;
        +};  // class CartesianProductGenerator3
        +
        +
        +template <typename T1, typename T2, typename T3, typename T4>
        +class CartesianProductGenerator4
        +    : public ParamGeneratorInterface< ::testing::tuple<T1, T2, T3, T4> > {
        + public:
        +  typedef ::testing::tuple<T1, T2, T3, T4> ParamType;
        +
        +  CartesianProductGenerator4(const ParamGenerator<T1>& g1,
        +      const ParamGenerator<T2>& g2, const ParamGenerator<T3>& g3,
        +      const ParamGenerator<T4>& g4)
        +      : g1_(g1), g2_(g2), g3_(g3), g4_(g4) {}
        +  virtual ~CartesianProductGenerator4() {}
        +
        +  virtual ParamIteratorInterface<ParamType>* Begin() const {
        +    return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
        +        g3_.begin(), g4_, g4_.begin());
        +  }
        +  virtual ParamIteratorInterface<ParamType>* End() const {
        +    return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
        +        g4_, g4_.end());
        +  }
        +
        + private:
        +  class Iterator : public ParamIteratorInterface<ParamType> {
        +   public:
        +    Iterator(const ParamGeneratorInterface<ParamType>* base,
        +      const ParamGenerator<T1>& g1,
        +      const typename ParamGenerator<T1>::iterator& current1,
        +      const ParamGenerator<T2>& g2,
        +      const typename ParamGenerator<T2>::iterator& current2,
        +      const ParamGenerator<T3>& g3,
        +      const typename ParamGenerator<T3>::iterator& current3,
        +      const ParamGenerator<T4>& g4,
        +      const typename ParamGenerator<T4>::iterator& current4)
        +        : base_(base),
        +          begin1_(g1.begin()), end1_(g1.end()), current1_(current1),
        +          begin2_(g2.begin()), end2_(g2.end()), current2_(current2),
        +          begin3_(g3.begin()), end3_(g3.end()), current3_(current3),
        +          begin4_(g4.begin()), end4_(g4.end()), current4_(current4)    {
        +      ComputeCurrentValue();
        +    }
        +    virtual ~Iterator() {}
        +
        +    virtual const ParamGeneratorInterface<ParamType>* BaseGenerator() const {
        +      return base_;
        +    }
        +    // Advance should not be called on beyond-of-range iterators
        +    // so no component iterators must be beyond end of range, either.
        +    virtual void Advance() {
        +      assert(!AtEnd());
        +      ++current4_;
        +      if (current4_ == end4_) {
        +        current4_ = begin4_;
        +        ++current3_;
        +      }
        +      if (current3_ == end3_) {
        +        current3_ = begin3_;
        +        ++current2_;
        +      }
        +      if (current2_ == end2_) {
        +        current2_ = begin2_;
        +        ++current1_;
        +      }
        +      ComputeCurrentValue();
        +    }
        +    virtual ParamIteratorInterface<ParamType>* Clone() const {
        +      return new Iterator(*this);
        +    }
        +    virtual const ParamType* Current() const { return &current_value_; }
        +    virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
        +      // Having the same base generator guarantees that the other
        +      // iterator is of the same type and we can downcast.
        +      GTEST_CHECK_(BaseGenerator() == other.BaseGenerator())
        +          << "The program attempted to compare iterators "
        +          << "from different generators." << std::endl;
        +      const Iterator* typed_other =
        +          CheckedDowncastToActualType<const Iterator>(&other);
        +      // We must report iterators equal if they both point beyond their
        +      // respective ranges. That can happen in a variety of fashions,
        +      // so we have to consult AtEnd().
        +      return (AtEnd() && typed_other->AtEnd()) ||
        +         (
        +          current1_ == typed_other->current1_ &&
        +          current2_ == typed_other->current2_ &&
        +          current3_ == typed_other->current3_ &&
        +          current4_ == typed_other->current4_);
        +    }
        +
        +   private:
        +    Iterator(const Iterator& other)
        +        : base_(other.base_),
        +        begin1_(other.begin1_),
        +        end1_(other.end1_),
        +        current1_(other.current1_),
        +        begin2_(other.begin2_),
        +        end2_(other.end2_),
        +        current2_(other.current2_),
        +        begin3_(other.begin3_),
        +        end3_(other.end3_),
        +        current3_(other.current3_),
        +        begin4_(other.begin4_),
        +        end4_(other.end4_),
        +        current4_(other.current4_) {
        +      ComputeCurrentValue();
        +    }
        +
        +    void ComputeCurrentValue() {
        +      if (!AtEnd())
        +        current_value_ = ParamType(*current1_, *current2_, *current3_,
        +            *current4_);
        +    }
        +    bool AtEnd() const {
        +      // We must report iterator past the end of the range when either of the
        +      // component iterators has reached the end of its range.
        +      return
        +          current1_ == end1_ ||
        +          current2_ == end2_ ||
        +          current3_ == end3_ ||
        +          current4_ == end4_;
        +    }
        +
        +    // No implementation - assignment is unsupported.
        +    void operator=(const Iterator& other);
        +
        +    const ParamGeneratorInterface<ParamType>* const base_;
        +    // begin[i]_ and end[i]_ define the i-th range that Iterator traverses.
        +    // current[i]_ is the actual traversing iterator.
        +    const typename ParamGenerator<T1>::iterator begin1_;
        +    const typename ParamGenerator<T1>::iterator end1_;
        +    typename ParamGenerator<T1>::iterator current1_;
        +    const typename ParamGenerator<T2>::iterator begin2_;
        +    const typename ParamGenerator<T2>::iterator end2_;
        +    typename ParamGenerator<T2>::iterator current2_;
        +    const typename ParamGenerator<T3>::iterator begin3_;
        +    const typename ParamGenerator<T3>::iterator end3_;
        +    typename ParamGenerator<T3>::iterator current3_;
        +    const typename ParamGenerator<T4>::iterator begin4_;
        +    const typename ParamGenerator<T4>::iterator end4_;
        +    typename ParamGenerator<T4>::iterator current4_;
        +    ParamType current_value_;
        +  };  // class CartesianProductGenerator4::Iterator
        +
        +  // No implementation - assignment is unsupported.
        +  void operator=(const CartesianProductGenerator4& other);
        +
        +  const ParamGenerator<T1> g1_;
        +  const ParamGenerator<T2> g2_;
        +  const ParamGenerator<T3> g3_;
        +  const ParamGenerator<T4> g4_;
        +};  // class CartesianProductGenerator4
        +
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5>
        +class CartesianProductGenerator5
        +    : public ParamGeneratorInterface< ::testing::tuple<T1, T2, T3, T4, T5> > {
        + public:
        +  typedef ::testing::tuple<T1, T2, T3, T4, T5> ParamType;
        +
        +  CartesianProductGenerator5(const ParamGenerator<T1>& g1,
        +      const ParamGenerator<T2>& g2, const ParamGenerator<T3>& g3,
        +      const ParamGenerator<T4>& g4, const ParamGenerator<T5>& g5)
        +      : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5) {}
        +  virtual ~CartesianProductGenerator5() {}
        +
        +  virtual ParamIteratorInterface<ParamType>* Begin() const {
        +    return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
        +        g3_.begin(), g4_, g4_.begin(), g5_, g5_.begin());
        +  }
        +  virtual ParamIteratorInterface<ParamType>* End() const {
        +    return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
        +        g4_, g4_.end(), g5_, g5_.end());
        +  }
        +
        + private:
        +  class Iterator : public ParamIteratorInterface<ParamType> {
        +   public:
        +    Iterator(const ParamGeneratorInterface<ParamType>* base,
        +      const ParamGenerator<T1>& g1,
        +      const typename ParamGenerator<T1>::iterator& current1,
        +      const ParamGenerator<T2>& g2,
        +      const typename ParamGenerator<T2>::iterator& current2,
        +      const ParamGenerator<T3>& g3,
        +      const typename ParamGenerator<T3>::iterator& current3,
        +      const ParamGenerator<T4>& g4,
        +      const typename ParamGenerator<T4>::iterator& current4,
        +      const ParamGenerator<T5>& g5,
        +      const typename ParamGenerator<T5>::iterator& current5)
        +        : base_(base),
        +          begin1_(g1.begin()), end1_(g1.end()), current1_(current1),
        +          begin2_(g2.begin()), end2_(g2.end()), current2_(current2),
        +          begin3_(g3.begin()), end3_(g3.end()), current3_(current3),
        +          begin4_(g4.begin()), end4_(g4.end()), current4_(current4),
        +          begin5_(g5.begin()), end5_(g5.end()), current5_(current5)    {
        +      ComputeCurrentValue();
        +    }
        +    virtual ~Iterator() {}
        +
        +    virtual const ParamGeneratorInterface<ParamType>* BaseGenerator() const {
        +      return base_;
        +    }
        +    // Advance should not be called on beyond-of-range iterators
        +    // so no component iterators must be beyond end of range, either.
        +    virtual void Advance() {
        +      assert(!AtEnd());
        +      ++current5_;
        +      if (current5_ == end5_) {
        +        current5_ = begin5_;
        +        ++current4_;
        +      }
        +      if (current4_ == end4_) {
        +        current4_ = begin4_;
        +        ++current3_;
        +      }
        +      if (current3_ == end3_) {
        +        current3_ = begin3_;
        +        ++current2_;
        +      }
        +      if (current2_ == end2_) {
        +        current2_ = begin2_;
        +        ++current1_;
        +      }
        +      ComputeCurrentValue();
        +    }
        +    virtual ParamIteratorInterface<ParamType>* Clone() const {
        +      return new Iterator(*this);
        +    }
        +    virtual const ParamType* Current() const { return &current_value_; }
        +    virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
        +      // Having the same base generator guarantees that the other
        +      // iterator is of the same type and we can downcast.
        +      GTEST_CHECK_(BaseGenerator() == other.BaseGenerator())
        +          << "The program attempted to compare iterators "
        +          << "from different generators." << std::endl;
        +      const Iterator* typed_other =
        +          CheckedDowncastToActualType<const Iterator>(&other);
        +      // We must report iterators equal if they both point beyond their
        +      // respective ranges. That can happen in a variety of fashions,
        +      // so we have to consult AtEnd().
        +      return (AtEnd() && typed_other->AtEnd()) ||
        +         (
        +          current1_ == typed_other->current1_ &&
        +          current2_ == typed_other->current2_ &&
        +          current3_ == typed_other->current3_ &&
        +          current4_ == typed_other->current4_ &&
        +          current5_ == typed_other->current5_);
        +    }
        +
        +   private:
        +    Iterator(const Iterator& other)
        +        : base_(other.base_),
        +        begin1_(other.begin1_),
        +        end1_(other.end1_),
        +        current1_(other.current1_),
        +        begin2_(other.begin2_),
        +        end2_(other.end2_),
        +        current2_(other.current2_),
        +        begin3_(other.begin3_),
        +        end3_(other.end3_),
        +        current3_(other.current3_),
        +        begin4_(other.begin4_),
        +        end4_(other.end4_),
        +        current4_(other.current4_),
        +        begin5_(other.begin5_),
        +        end5_(other.end5_),
        +        current5_(other.current5_) {
        +      ComputeCurrentValue();
        +    }
        +
        +    void ComputeCurrentValue() {
        +      if (!AtEnd())
        +        current_value_ = ParamType(*current1_, *current2_, *current3_,
        +            *current4_, *current5_);
        +    }
        +    bool AtEnd() const {
        +      // We must report iterator past the end of the range when either of the
        +      // component iterators has reached the end of its range.
        +      return
        +          current1_ == end1_ ||
        +          current2_ == end2_ ||
        +          current3_ == end3_ ||
        +          current4_ == end4_ ||
        +          current5_ == end5_;
        +    }
        +
        +    // No implementation - assignment is unsupported.
        +    void operator=(const Iterator& other);
        +
        +    const ParamGeneratorInterface<ParamType>* const base_;
        +    // begin[i]_ and end[i]_ define the i-th range that Iterator traverses.
        +    // current[i]_ is the actual traversing iterator.
        +    const typename ParamGenerator<T1>::iterator begin1_;
        +    const typename ParamGenerator<T1>::iterator end1_;
        +    typename ParamGenerator<T1>::iterator current1_;
        +    const typename ParamGenerator<T2>::iterator begin2_;
        +    const typename ParamGenerator<T2>::iterator end2_;
        +    typename ParamGenerator<T2>::iterator current2_;
        +    const typename ParamGenerator<T3>::iterator begin3_;
        +    const typename ParamGenerator<T3>::iterator end3_;
        +    typename ParamGenerator<T3>::iterator current3_;
        +    const typename ParamGenerator<T4>::iterator begin4_;
        +    const typename ParamGenerator<T4>::iterator end4_;
        +    typename ParamGenerator<T4>::iterator current4_;
        +    const typename ParamGenerator<T5>::iterator begin5_;
        +    const typename ParamGenerator<T5>::iterator end5_;
        +    typename ParamGenerator<T5>::iterator current5_;
        +    ParamType current_value_;
        +  };  // class CartesianProductGenerator5::Iterator
        +
        +  // No implementation - assignment is unsupported.
        +  void operator=(const CartesianProductGenerator5& other);
        +
        +  const ParamGenerator<T1> g1_;
        +  const ParamGenerator<T2> g2_;
        +  const ParamGenerator<T3> g3_;
        +  const ParamGenerator<T4> g4_;
        +  const ParamGenerator<T5> g5_;
        +};  // class CartesianProductGenerator5
        +
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6>
        +class CartesianProductGenerator6
        +    : public ParamGeneratorInterface< ::testing::tuple<T1, T2, T3, T4, T5,
        +        T6> > {
        + public:
        +  typedef ::testing::tuple<T1, T2, T3, T4, T5, T6> ParamType;
        +
        +  CartesianProductGenerator6(const ParamGenerator<T1>& g1,
        +      const ParamGenerator<T2>& g2, const ParamGenerator<T3>& g3,
        +      const ParamGenerator<T4>& g4, const ParamGenerator<T5>& g5,
        +      const ParamGenerator<T6>& g6)
        +      : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6) {}
        +  virtual ~CartesianProductGenerator6() {}
        +
        +  virtual ParamIteratorInterface<ParamType>* Begin() const {
        +    return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
        +        g3_.begin(), g4_, g4_.begin(), g5_, g5_.begin(), g6_, g6_.begin());
        +  }
        +  virtual ParamIteratorInterface<ParamType>* End() const {
        +    return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
        +        g4_, g4_.end(), g5_, g5_.end(), g6_, g6_.end());
        +  }
        +
        + private:
        +  class Iterator : public ParamIteratorInterface<ParamType> {
        +   public:
        +    Iterator(const ParamGeneratorInterface<ParamType>* base,
        +      const ParamGenerator<T1>& g1,
        +      const typename ParamGenerator<T1>::iterator& current1,
        +      const ParamGenerator<T2>& g2,
        +      const typename ParamGenerator<T2>::iterator& current2,
        +      const ParamGenerator<T3>& g3,
        +      const typename ParamGenerator<T3>::iterator& current3,
        +      const ParamGenerator<T4>& g4,
        +      const typename ParamGenerator<T4>::iterator& current4,
        +      const ParamGenerator<T5>& g5,
        +      const typename ParamGenerator<T5>::iterator& current5,
        +      const ParamGenerator<T6>& g6,
        +      const typename ParamGenerator<T6>::iterator& current6)
        +        : base_(base),
        +          begin1_(g1.begin()), end1_(g1.end()), current1_(current1),
        +          begin2_(g2.begin()), end2_(g2.end()), current2_(current2),
        +          begin3_(g3.begin()), end3_(g3.end()), current3_(current3),
        +          begin4_(g4.begin()), end4_(g4.end()), current4_(current4),
        +          begin5_(g5.begin()), end5_(g5.end()), current5_(current5),
        +          begin6_(g6.begin()), end6_(g6.end()), current6_(current6)    {
        +      ComputeCurrentValue();
        +    }
        +    virtual ~Iterator() {}
        +
        +    virtual const ParamGeneratorInterface<ParamType>* BaseGenerator() const {
        +      return base_;
        +    }
        +    // Advance should not be called on beyond-of-range iterators
        +    // so no component iterators must be beyond end of range, either.
        +    virtual void Advance() {
        +      assert(!AtEnd());
        +      ++current6_;
        +      if (current6_ == end6_) {
        +        current6_ = begin6_;
        +        ++current5_;
        +      }
        +      if (current5_ == end5_) {
        +        current5_ = begin5_;
        +        ++current4_;
        +      }
        +      if (current4_ == end4_) {
        +        current4_ = begin4_;
        +        ++current3_;
        +      }
        +      if (current3_ == end3_) {
        +        current3_ = begin3_;
        +        ++current2_;
        +      }
        +      if (current2_ == end2_) {
        +        current2_ = begin2_;
        +        ++current1_;
        +      }
        +      ComputeCurrentValue();
        +    }
        +    virtual ParamIteratorInterface<ParamType>* Clone() const {
        +      return new Iterator(*this);
        +    }
        +    virtual const ParamType* Current() const { return &current_value_; }
        +    virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
        +      // Having the same base generator guarantees that the other
        +      // iterator is of the same type and we can downcast.
        +      GTEST_CHECK_(BaseGenerator() == other.BaseGenerator())
        +          << "The program attempted to compare iterators "
        +          << "from different generators." << std::endl;
        +      const Iterator* typed_other =
        +          CheckedDowncastToActualType<const Iterator>(&other);
        +      // We must report iterators equal if they both point beyond their
        +      // respective ranges. That can happen in a variety of fashions,
        +      // so we have to consult AtEnd().
        +      return (AtEnd() && typed_other->AtEnd()) ||
        +         (
        +          current1_ == typed_other->current1_ &&
        +          current2_ == typed_other->current2_ &&
        +          current3_ == typed_other->current3_ &&
        +          current4_ == typed_other->current4_ &&
        +          current5_ == typed_other->current5_ &&
        +          current6_ == typed_other->current6_);
        +    }
        +
        +   private:
        +    Iterator(const Iterator& other)
        +        : base_(other.base_),
        +        begin1_(other.begin1_),
        +        end1_(other.end1_),
        +        current1_(other.current1_),
        +        begin2_(other.begin2_),
        +        end2_(other.end2_),
        +        current2_(other.current2_),
        +        begin3_(other.begin3_),
        +        end3_(other.end3_),
        +        current3_(other.current3_),
        +        begin4_(other.begin4_),
        +        end4_(other.end4_),
        +        current4_(other.current4_),
        +        begin5_(other.begin5_),
        +        end5_(other.end5_),
        +        current5_(other.current5_),
        +        begin6_(other.begin6_),
        +        end6_(other.end6_),
        +        current6_(other.current6_) {
        +      ComputeCurrentValue();
        +    }
        +
        +    void ComputeCurrentValue() {
        +      if (!AtEnd())
        +        current_value_ = ParamType(*current1_, *current2_, *current3_,
        +            *current4_, *current5_, *current6_);
        +    }
        +    bool AtEnd() const {
        +      // We must report iterator past the end of the range when either of the
        +      // component iterators has reached the end of its range.
        +      return
        +          current1_ == end1_ ||
        +          current2_ == end2_ ||
        +          current3_ == end3_ ||
        +          current4_ == end4_ ||
        +          current5_ == end5_ ||
        +          current6_ == end6_;
        +    }
        +
        +    // No implementation - assignment is unsupported.
        +    void operator=(const Iterator& other);
        +
        +    const ParamGeneratorInterface<ParamType>* const base_;
        +    // begin[i]_ and end[i]_ define the i-th range that Iterator traverses.
        +    // current[i]_ is the actual traversing iterator.
        +    const typename ParamGenerator<T1>::iterator begin1_;
        +    const typename ParamGenerator<T1>::iterator end1_;
        +    typename ParamGenerator<T1>::iterator current1_;
        +    const typename ParamGenerator<T2>::iterator begin2_;
        +    const typename ParamGenerator<T2>::iterator end2_;
        +    typename ParamGenerator<T2>::iterator current2_;
        +    const typename ParamGenerator<T3>::iterator begin3_;
        +    const typename ParamGenerator<T3>::iterator end3_;
        +    typename ParamGenerator<T3>::iterator current3_;
        +    const typename ParamGenerator<T4>::iterator begin4_;
        +    const typename ParamGenerator<T4>::iterator end4_;
        +    typename ParamGenerator<T4>::iterator current4_;
        +    const typename ParamGenerator<T5>::iterator begin5_;
        +    const typename ParamGenerator<T5>::iterator end5_;
        +    typename ParamGenerator<T5>::iterator current5_;
        +    const typename ParamGenerator<T6>::iterator begin6_;
        +    const typename ParamGenerator<T6>::iterator end6_;
        +    typename ParamGenerator<T6>::iterator current6_;
        +    ParamType current_value_;
        +  };  // class CartesianProductGenerator6::Iterator
        +
        +  // No implementation - assignment is unsupported.
        +  void operator=(const CartesianProductGenerator6& other);
        +
        +  const ParamGenerator<T1> g1_;
        +  const ParamGenerator<T2> g2_;
        +  const ParamGenerator<T3> g3_;
        +  const ParamGenerator<T4> g4_;
        +  const ParamGenerator<T5> g5_;
        +  const ParamGenerator<T6> g6_;
        +};  // class CartesianProductGenerator6
        +
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7>
        +class CartesianProductGenerator7
        +    : public ParamGeneratorInterface< ::testing::tuple<T1, T2, T3, T4, T5, T6,
        +        T7> > {
        + public:
        +  typedef ::testing::tuple<T1, T2, T3, T4, T5, T6, T7> ParamType;
        +
        +  CartesianProductGenerator7(const ParamGenerator<T1>& g1,
        +      const ParamGenerator<T2>& g2, const ParamGenerator<T3>& g3,
        +      const ParamGenerator<T4>& g4, const ParamGenerator<T5>& g5,
        +      const ParamGenerator<T6>& g6, const ParamGenerator<T7>& g7)
        +      : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7) {}
        +  virtual ~CartesianProductGenerator7() {}
        +
        +  virtual ParamIteratorInterface<ParamType>* Begin() const {
        +    return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
        +        g3_.begin(), g4_, g4_.begin(), g5_, g5_.begin(), g6_, g6_.begin(), g7_,
        +        g7_.begin());
        +  }
        +  virtual ParamIteratorInterface<ParamType>* End() const {
        +    return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
        +        g4_, g4_.end(), g5_, g5_.end(), g6_, g6_.end(), g7_, g7_.end());
        +  }
        +
        + private:
        +  class Iterator : public ParamIteratorInterface<ParamType> {
        +   public:
        +    Iterator(const ParamGeneratorInterface<ParamType>* base,
        +      const ParamGenerator<T1>& g1,
        +      const typename ParamGenerator<T1>::iterator& current1,
        +      const ParamGenerator<T2>& g2,
        +      const typename ParamGenerator<T2>::iterator& current2,
        +      const ParamGenerator<T3>& g3,
        +      const typename ParamGenerator<T3>::iterator& current3,
        +      const ParamGenerator<T4>& g4,
        +      const typename ParamGenerator<T4>::iterator& current4,
        +      const ParamGenerator<T5>& g5,
        +      const typename ParamGenerator<T5>::iterator& current5,
        +      const ParamGenerator<T6>& g6,
        +      const typename ParamGenerator<T6>::iterator& current6,
        +      const ParamGenerator<T7>& g7,
        +      const typename ParamGenerator<T7>::iterator& current7)
        +        : base_(base),
        +          begin1_(g1.begin()), end1_(g1.end()), current1_(current1),
        +          begin2_(g2.begin()), end2_(g2.end()), current2_(current2),
        +          begin3_(g3.begin()), end3_(g3.end()), current3_(current3),
        +          begin4_(g4.begin()), end4_(g4.end()), current4_(current4),
        +          begin5_(g5.begin()), end5_(g5.end()), current5_(current5),
        +          begin6_(g6.begin()), end6_(g6.end()), current6_(current6),
        +          begin7_(g7.begin()), end7_(g7.end()), current7_(current7)    {
        +      ComputeCurrentValue();
        +    }
        +    virtual ~Iterator() {}
        +
        +    virtual const ParamGeneratorInterface<ParamType>* BaseGenerator() const {
        +      return base_;
        +    }
        +    // Advance should not be called on beyond-of-range iterators
        +    // so no component iterators must be beyond end of range, either.
        +    virtual void Advance() {
        +      assert(!AtEnd());
        +      ++current7_;
        +      if (current7_ == end7_) {
        +        current7_ = begin7_;
        +        ++current6_;
        +      }
        +      if (current6_ == end6_) {
        +        current6_ = begin6_;
        +        ++current5_;
        +      }
        +      if (current5_ == end5_) {
        +        current5_ = begin5_;
        +        ++current4_;
        +      }
        +      if (current4_ == end4_) {
        +        current4_ = begin4_;
        +        ++current3_;
        +      }
        +      if (current3_ == end3_) {
        +        current3_ = begin3_;
        +        ++current2_;
        +      }
        +      if (current2_ == end2_) {
        +        current2_ = begin2_;
        +        ++current1_;
        +      }
        +      ComputeCurrentValue();
        +    }
        +    virtual ParamIteratorInterface<ParamType>* Clone() const {
        +      return new Iterator(*this);
        +    }
        +    virtual const ParamType* Current() const { return &current_value_; }
        +    virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
        +      // Having the same base generator guarantees that the other
        +      // iterator is of the same type and we can downcast.
        +      GTEST_CHECK_(BaseGenerator() == other.BaseGenerator())
        +          << "The program attempted to compare iterators "
        +          << "from different generators." << std::endl;
        +      const Iterator* typed_other =
        +          CheckedDowncastToActualType<const Iterator>(&other);
        +      // We must report iterators equal if they both point beyond their
        +      // respective ranges. That can happen in a variety of fashions,
        +      // so we have to consult AtEnd().
        +      return (AtEnd() && typed_other->AtEnd()) ||
        +         (
        +          current1_ == typed_other->current1_ &&
        +          current2_ == typed_other->current2_ &&
        +          current3_ == typed_other->current3_ &&
        +          current4_ == typed_other->current4_ &&
        +          current5_ == typed_other->current5_ &&
        +          current6_ == typed_other->current6_ &&
        +          current7_ == typed_other->current7_);
        +    }
        +
        +   private:
        +    Iterator(const Iterator& other)
        +        : base_(other.base_),
        +        begin1_(other.begin1_),
        +        end1_(other.end1_),
        +        current1_(other.current1_),
        +        begin2_(other.begin2_),
        +        end2_(other.end2_),
        +        current2_(other.current2_),
        +        begin3_(other.begin3_),
        +        end3_(other.end3_),
        +        current3_(other.current3_),
        +        begin4_(other.begin4_),
        +        end4_(other.end4_),
        +        current4_(other.current4_),
        +        begin5_(other.begin5_),
        +        end5_(other.end5_),
        +        current5_(other.current5_),
        +        begin6_(other.begin6_),
        +        end6_(other.end6_),
        +        current6_(other.current6_),
        +        begin7_(other.begin7_),
        +        end7_(other.end7_),
        +        current7_(other.current7_) {
        +      ComputeCurrentValue();
        +    }
        +
        +    void ComputeCurrentValue() {
        +      if (!AtEnd())
        +        current_value_ = ParamType(*current1_, *current2_, *current3_,
        +            *current4_, *current5_, *current6_, *current7_);
        +    }
        +    bool AtEnd() const {
        +      // We must report iterator past the end of the range when either of the
        +      // component iterators has reached the end of its range.
        +      return
        +          current1_ == end1_ ||
        +          current2_ == end2_ ||
        +          current3_ == end3_ ||
        +          current4_ == end4_ ||
        +          current5_ == end5_ ||
        +          current6_ == end6_ ||
        +          current7_ == end7_;
        +    }
        +
        +    // No implementation - assignment is unsupported.
        +    void operator=(const Iterator& other);
        +
        +    const ParamGeneratorInterface<ParamType>* const base_;
        +    // begin[i]_ and end[i]_ define the i-th range that Iterator traverses.
        +    // current[i]_ is the actual traversing iterator.
        +    const typename ParamGenerator<T1>::iterator begin1_;
        +    const typename ParamGenerator<T1>::iterator end1_;
        +    typename ParamGenerator<T1>::iterator current1_;
        +    const typename ParamGenerator<T2>::iterator begin2_;
        +    const typename ParamGenerator<T2>::iterator end2_;
        +    typename ParamGenerator<T2>::iterator current2_;
        +    const typename ParamGenerator<T3>::iterator begin3_;
        +    const typename ParamGenerator<T3>::iterator end3_;
        +    typename ParamGenerator<T3>::iterator current3_;
        +    const typename ParamGenerator<T4>::iterator begin4_;
        +    const typename ParamGenerator<T4>::iterator end4_;
        +    typename ParamGenerator<T4>::iterator current4_;
        +    const typename ParamGenerator<T5>::iterator begin5_;
        +    const typename ParamGenerator<T5>::iterator end5_;
        +    typename ParamGenerator<T5>::iterator current5_;
        +    const typename ParamGenerator<T6>::iterator begin6_;
        +    const typename ParamGenerator<T6>::iterator end6_;
        +    typename ParamGenerator<T6>::iterator current6_;
        +    const typename ParamGenerator<T7>::iterator begin7_;
        +    const typename ParamGenerator<T7>::iterator end7_;
        +    typename ParamGenerator<T7>::iterator current7_;
        +    ParamType current_value_;
        +  };  // class CartesianProductGenerator7::Iterator
        +
        +  // No implementation - assignment is unsupported.
        +  void operator=(const CartesianProductGenerator7& other);
        +
        +  const ParamGenerator<T1> g1_;
        +  const ParamGenerator<T2> g2_;
        +  const ParamGenerator<T3> g3_;
        +  const ParamGenerator<T4> g4_;
        +  const ParamGenerator<T5> g5_;
        +  const ParamGenerator<T6> g6_;
        +  const ParamGenerator<T7> g7_;
        +};  // class CartesianProductGenerator7
        +
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8>
        +class CartesianProductGenerator8
        +    : public ParamGeneratorInterface< ::testing::tuple<T1, T2, T3, T4, T5, T6,
        +        T7, T8> > {
        + public:
        +  typedef ::testing::tuple<T1, T2, T3, T4, T5, T6, T7, T8> ParamType;
        +
        +  CartesianProductGenerator8(const ParamGenerator<T1>& g1,
        +      const ParamGenerator<T2>& g2, const ParamGenerator<T3>& g3,
        +      const ParamGenerator<T4>& g4, const ParamGenerator<T5>& g5,
        +      const ParamGenerator<T6>& g6, const ParamGenerator<T7>& g7,
        +      const ParamGenerator<T8>& g8)
        +      : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7),
        +          g8_(g8) {}
        +  virtual ~CartesianProductGenerator8() {}
        +
        +  virtual ParamIteratorInterface<ParamType>* Begin() const {
        +    return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
        +        g3_.begin(), g4_, g4_.begin(), g5_, g5_.begin(), g6_, g6_.begin(), g7_,
        +        g7_.begin(), g8_, g8_.begin());
        +  }
        +  virtual ParamIteratorInterface<ParamType>* End() const {
        +    return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
        +        g4_, g4_.end(), g5_, g5_.end(), g6_, g6_.end(), g7_, g7_.end(), g8_,
        +        g8_.end());
        +  }
        +
        + private:
        +  class Iterator : public ParamIteratorInterface<ParamType> {
        +   public:
        +    Iterator(const ParamGeneratorInterface<ParamType>* base,
        +      const ParamGenerator<T1>& g1,
        +      const typename ParamGenerator<T1>::iterator& current1,
        +      const ParamGenerator<T2>& g2,
        +      const typename ParamGenerator<T2>::iterator& current2,
        +      const ParamGenerator<T3>& g3,
        +      const typename ParamGenerator<T3>::iterator& current3,
        +      const ParamGenerator<T4>& g4,
        +      const typename ParamGenerator<T4>::iterator& current4,
        +      const ParamGenerator<T5>& g5,
        +      const typename ParamGenerator<T5>::iterator& current5,
        +      const ParamGenerator<T6>& g6,
        +      const typename ParamGenerator<T6>::iterator& current6,
        +      const ParamGenerator<T7>& g7,
        +      const typename ParamGenerator<T7>::iterator& current7,
        +      const ParamGenerator<T8>& g8,
        +      const typename ParamGenerator<T8>::iterator& current8)
        +        : base_(base),
        +          begin1_(g1.begin()), end1_(g1.end()), current1_(current1),
        +          begin2_(g2.begin()), end2_(g2.end()), current2_(current2),
        +          begin3_(g3.begin()), end3_(g3.end()), current3_(current3),
        +          begin4_(g4.begin()), end4_(g4.end()), current4_(current4),
        +          begin5_(g5.begin()), end5_(g5.end()), current5_(current5),
        +          begin6_(g6.begin()), end6_(g6.end()), current6_(current6),
        +          begin7_(g7.begin()), end7_(g7.end()), current7_(current7),
        +          begin8_(g8.begin()), end8_(g8.end()), current8_(current8)    {
        +      ComputeCurrentValue();
        +    }
        +    virtual ~Iterator() {}
        +
        +    virtual const ParamGeneratorInterface<ParamType>* BaseGenerator() const {
        +      return base_;
        +    }
        +    // Advance should not be called on beyond-of-range iterators
        +    // so no component iterators must be beyond end of range, either.
        +    virtual void Advance() {
        +      assert(!AtEnd());
        +      ++current8_;
        +      if (current8_ == end8_) {
        +        current8_ = begin8_;
        +        ++current7_;
        +      }
        +      if (current7_ == end7_) {
        +        current7_ = begin7_;
        +        ++current6_;
        +      }
        +      if (current6_ == end6_) {
        +        current6_ = begin6_;
        +        ++current5_;
        +      }
        +      if (current5_ == end5_) {
        +        current5_ = begin5_;
        +        ++current4_;
        +      }
        +      if (current4_ == end4_) {
        +        current4_ = begin4_;
        +        ++current3_;
        +      }
        +      if (current3_ == end3_) {
        +        current3_ = begin3_;
        +        ++current2_;
        +      }
        +      if (current2_ == end2_) {
        +        current2_ = begin2_;
        +        ++current1_;
        +      }
        +      ComputeCurrentValue();
        +    }
        +    virtual ParamIteratorInterface<ParamType>* Clone() const {
        +      return new Iterator(*this);
        +    }
        +    virtual const ParamType* Current() const { return &current_value_; }
        +    virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
        +      // Having the same base generator guarantees that the other
        +      // iterator is of the same type and we can downcast.
        +      GTEST_CHECK_(BaseGenerator() == other.BaseGenerator())
        +          << "The program attempted to compare iterators "
        +          << "from different generators." << std::endl;
        +      const Iterator* typed_other =
        +          CheckedDowncastToActualType<const Iterator>(&other);
        +      // We must report iterators equal if they both point beyond their
        +      // respective ranges. That can happen in a variety of fashions,
        +      // so we have to consult AtEnd().
        +      return (AtEnd() && typed_other->AtEnd()) ||
        +         (
        +          current1_ == typed_other->current1_ &&
        +          current2_ == typed_other->current2_ &&
        +          current3_ == typed_other->current3_ &&
        +          current4_ == typed_other->current4_ &&
        +          current5_ == typed_other->current5_ &&
        +          current6_ == typed_other->current6_ &&
        +          current7_ == typed_other->current7_ &&
        +          current8_ == typed_other->current8_);
        +    }
        +
        +   private:
        +    Iterator(const Iterator& other)
        +        : base_(other.base_),
        +        begin1_(other.begin1_),
        +        end1_(other.end1_),
        +        current1_(other.current1_),
        +        begin2_(other.begin2_),
        +        end2_(other.end2_),
        +        current2_(other.current2_),
        +        begin3_(other.begin3_),
        +        end3_(other.end3_),
        +        current3_(other.current3_),
        +        begin4_(other.begin4_),
        +        end4_(other.end4_),
        +        current4_(other.current4_),
        +        begin5_(other.begin5_),
        +        end5_(other.end5_),
        +        current5_(other.current5_),
        +        begin6_(other.begin6_),
        +        end6_(other.end6_),
        +        current6_(other.current6_),
        +        begin7_(other.begin7_),
        +        end7_(other.end7_),
        +        current7_(other.current7_),
        +        begin8_(other.begin8_),
        +        end8_(other.end8_),
        +        current8_(other.current8_) {
        +      ComputeCurrentValue();
        +    }
        +
        +    void ComputeCurrentValue() {
        +      if (!AtEnd())
        +        current_value_ = ParamType(*current1_, *current2_, *current3_,
        +            *current4_, *current5_, *current6_, *current7_, *current8_);
        +    }
        +    bool AtEnd() const {
        +      // We must report iterator past the end of the range when either of the
        +      // component iterators has reached the end of its range.
        +      return
        +          current1_ == end1_ ||
        +          current2_ == end2_ ||
        +          current3_ == end3_ ||
        +          current4_ == end4_ ||
        +          current5_ == end5_ ||
        +          current6_ == end6_ ||
        +          current7_ == end7_ ||
        +          current8_ == end8_;
        +    }
        +
        +    // No implementation - assignment is unsupported.
        +    void operator=(const Iterator& other);
        +
        +    const ParamGeneratorInterface<ParamType>* const base_;
        +    // begin[i]_ and end[i]_ define the i-th range that Iterator traverses.
        +    // current[i]_ is the actual traversing iterator.
        +    const typename ParamGenerator<T1>::iterator begin1_;
        +    const typename ParamGenerator<T1>::iterator end1_;
        +    typename ParamGenerator<T1>::iterator current1_;
        +    const typename ParamGenerator<T2>::iterator begin2_;
        +    const typename ParamGenerator<T2>::iterator end2_;
        +    typename ParamGenerator<T2>::iterator current2_;
        +    const typename ParamGenerator<T3>::iterator begin3_;
        +    const typename ParamGenerator<T3>::iterator end3_;
        +    typename ParamGenerator<T3>::iterator current3_;
        +    const typename ParamGenerator<T4>::iterator begin4_;
        +    const typename ParamGenerator<T4>::iterator end4_;
        +    typename ParamGenerator<T4>::iterator current4_;
        +    const typename ParamGenerator<T5>::iterator begin5_;
        +    const typename ParamGenerator<T5>::iterator end5_;
        +    typename ParamGenerator<T5>::iterator current5_;
        +    const typename ParamGenerator<T6>::iterator begin6_;
        +    const typename ParamGenerator<T6>::iterator end6_;
        +    typename ParamGenerator<T6>::iterator current6_;
        +    const typename ParamGenerator<T7>::iterator begin7_;
        +    const typename ParamGenerator<T7>::iterator end7_;
        +    typename ParamGenerator<T7>::iterator current7_;
        +    const typename ParamGenerator<T8>::iterator begin8_;
        +    const typename ParamGenerator<T8>::iterator end8_;
        +    typename ParamGenerator<T8>::iterator current8_;
        +    ParamType current_value_;
        +  };  // class CartesianProductGenerator8::Iterator
        +
        +  // No implementation - assignment is unsupported.
        +  void operator=(const CartesianProductGenerator8& other);
        +
        +  const ParamGenerator<T1> g1_;
        +  const ParamGenerator<T2> g2_;
        +  const ParamGenerator<T3> g3_;
        +  const ParamGenerator<T4> g4_;
        +  const ParamGenerator<T5> g5_;
        +  const ParamGenerator<T6> g6_;
        +  const ParamGenerator<T7> g7_;
        +  const ParamGenerator<T8> g8_;
        +};  // class CartesianProductGenerator8
        +
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9>
        +class CartesianProductGenerator9
        +    : public ParamGeneratorInterface< ::testing::tuple<T1, T2, T3, T4, T5, T6,
        +        T7, T8, T9> > {
        + public:
        +  typedef ::testing::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9> ParamType;
        +
        +  CartesianProductGenerator9(const ParamGenerator<T1>& g1,
        +      const ParamGenerator<T2>& g2, const ParamGenerator<T3>& g3,
        +      const ParamGenerator<T4>& g4, const ParamGenerator<T5>& g5,
        +      const ParamGenerator<T6>& g6, const ParamGenerator<T7>& g7,
        +      const ParamGenerator<T8>& g8, const ParamGenerator<T9>& g9)
        +      : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7), g8_(g8),
        +          g9_(g9) {}
        +  virtual ~CartesianProductGenerator9() {}
        +
        +  virtual ParamIteratorInterface<ParamType>* Begin() const {
        +    return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
        +        g3_.begin(), g4_, g4_.begin(), g5_, g5_.begin(), g6_, g6_.begin(), g7_,
        +        g7_.begin(), g8_, g8_.begin(), g9_, g9_.begin());
        +  }
        +  virtual ParamIteratorInterface<ParamType>* End() const {
        +    return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
        +        g4_, g4_.end(), g5_, g5_.end(), g6_, g6_.end(), g7_, g7_.end(), g8_,
        +        g8_.end(), g9_, g9_.end());
        +  }
        +
        + private:
        +  class Iterator : public ParamIteratorInterface<ParamType> {
        +   public:
        +    Iterator(const ParamGeneratorInterface<ParamType>* base,
        +      const ParamGenerator<T1>& g1,
        +      const typename ParamGenerator<T1>::iterator& current1,
        +      const ParamGenerator<T2>& g2,
        +      const typename ParamGenerator<T2>::iterator& current2,
        +      const ParamGenerator<T3>& g3,
        +      const typename ParamGenerator<T3>::iterator& current3,
        +      const ParamGenerator<T4>& g4,
        +      const typename ParamGenerator<T4>::iterator& current4,
        +      const ParamGenerator<T5>& g5,
        +      const typename ParamGenerator<T5>::iterator& current5,
        +      const ParamGenerator<T6>& g6,
        +      const typename ParamGenerator<T6>::iterator& current6,
        +      const ParamGenerator<T7>& g7,
        +      const typename ParamGenerator<T7>::iterator& current7,
        +      const ParamGenerator<T8>& g8,
        +      const typename ParamGenerator<T8>::iterator& current8,
        +      const ParamGenerator<T9>& g9,
        +      const typename ParamGenerator<T9>::iterator& current9)
        +        : base_(base),
        +          begin1_(g1.begin()), end1_(g1.end()), current1_(current1),
        +          begin2_(g2.begin()), end2_(g2.end()), current2_(current2),
        +          begin3_(g3.begin()), end3_(g3.end()), current3_(current3),
        +          begin4_(g4.begin()), end4_(g4.end()), current4_(current4),
        +          begin5_(g5.begin()), end5_(g5.end()), current5_(current5),
        +          begin6_(g6.begin()), end6_(g6.end()), current6_(current6),
        +          begin7_(g7.begin()), end7_(g7.end()), current7_(current7),
        +          begin8_(g8.begin()), end8_(g8.end()), current8_(current8),
        +          begin9_(g9.begin()), end9_(g9.end()), current9_(current9)    {
        +      ComputeCurrentValue();
        +    }
        +    virtual ~Iterator() {}
        +
        +    virtual const ParamGeneratorInterface<ParamType>* BaseGenerator() const {
        +      return base_;
        +    }
        +    // Advance should not be called on beyond-of-range iterators
        +    // so no component iterators must be beyond end of range, either.
        +    virtual void Advance() {
        +      assert(!AtEnd());
        +      ++current9_;
        +      if (current9_ == end9_) {
        +        current9_ = begin9_;
        +        ++current8_;
        +      }
        +      if (current8_ == end8_) {
        +        current8_ = begin8_;
        +        ++current7_;
        +      }
        +      if (current7_ == end7_) {
        +        current7_ = begin7_;
        +        ++current6_;
        +      }
        +      if (current6_ == end6_) {
        +        current6_ = begin6_;
        +        ++current5_;
        +      }
        +      if (current5_ == end5_) {
        +        current5_ = begin5_;
        +        ++current4_;
        +      }
        +      if (current4_ == end4_) {
        +        current4_ = begin4_;
        +        ++current3_;
        +      }
        +      if (current3_ == end3_) {
        +        current3_ = begin3_;
        +        ++current2_;
        +      }
        +      if (current2_ == end2_) {
        +        current2_ = begin2_;
        +        ++current1_;
        +      }
        +      ComputeCurrentValue();
        +    }
        +    virtual ParamIteratorInterface<ParamType>* Clone() const {
        +      return new Iterator(*this);
        +    }
        +    virtual const ParamType* Current() const { return &current_value_; }
        +    virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
        +      // Having the same base generator guarantees that the other
        +      // iterator is of the same type and we can downcast.
        +      GTEST_CHECK_(BaseGenerator() == other.BaseGenerator())
        +          << "The program attempted to compare iterators "
        +          << "from different generators." << std::endl;
        +      const Iterator* typed_other =
        +          CheckedDowncastToActualType<const Iterator>(&other);
        +      // We must report iterators equal if they both point beyond their
        +      // respective ranges. That can happen in a variety of fashions,
        +      // so we have to consult AtEnd().
        +      return (AtEnd() && typed_other->AtEnd()) ||
        +         (
        +          current1_ == typed_other->current1_ &&
        +          current2_ == typed_other->current2_ &&
        +          current3_ == typed_other->current3_ &&
        +          current4_ == typed_other->current4_ &&
        +          current5_ == typed_other->current5_ &&
        +          current6_ == typed_other->current6_ &&
        +          current7_ == typed_other->current7_ &&
        +          current8_ == typed_other->current8_ &&
        +          current9_ == typed_other->current9_);
        +    }
        +
        +   private:
        +    Iterator(const Iterator& other)
        +        : base_(other.base_),
        +        begin1_(other.begin1_),
        +        end1_(other.end1_),
        +        current1_(other.current1_),
        +        begin2_(other.begin2_),
        +        end2_(other.end2_),
        +        current2_(other.current2_),
        +        begin3_(other.begin3_),
        +        end3_(other.end3_),
        +        current3_(other.current3_),
        +        begin4_(other.begin4_),
        +        end4_(other.end4_),
        +        current4_(other.current4_),
        +        begin5_(other.begin5_),
        +        end5_(other.end5_),
        +        current5_(other.current5_),
        +        begin6_(other.begin6_),
        +        end6_(other.end6_),
        +        current6_(other.current6_),
        +        begin7_(other.begin7_),
        +        end7_(other.end7_),
        +        current7_(other.current7_),
        +        begin8_(other.begin8_),
        +        end8_(other.end8_),
        +        current8_(other.current8_),
        +        begin9_(other.begin9_),
        +        end9_(other.end9_),
        +        current9_(other.current9_) {
        +      ComputeCurrentValue();
        +    }
        +
        +    void ComputeCurrentValue() {
        +      if (!AtEnd())
        +        current_value_ = ParamType(*current1_, *current2_, *current3_,
        +            *current4_, *current5_, *current6_, *current7_, *current8_,
        +            *current9_);
        +    }
        +    bool AtEnd() const {
        +      // We must report iterator past the end of the range when either of the
        +      // component iterators has reached the end of its range.
        +      return
        +          current1_ == end1_ ||
        +          current2_ == end2_ ||
        +          current3_ == end3_ ||
        +          current4_ == end4_ ||
        +          current5_ == end5_ ||
        +          current6_ == end6_ ||
        +          current7_ == end7_ ||
        +          current8_ == end8_ ||
        +          current9_ == end9_;
        +    }
        +
        +    // No implementation - assignment is unsupported.
        +    void operator=(const Iterator& other);
        +
        +    const ParamGeneratorInterface<ParamType>* const base_;
        +    // begin[i]_ and end[i]_ define the i-th range that Iterator traverses.
        +    // current[i]_ is the actual traversing iterator.
        +    const typename ParamGenerator<T1>::iterator begin1_;
        +    const typename ParamGenerator<T1>::iterator end1_;
        +    typename ParamGenerator<T1>::iterator current1_;
        +    const typename ParamGenerator<T2>::iterator begin2_;
        +    const typename ParamGenerator<T2>::iterator end2_;
        +    typename ParamGenerator<T2>::iterator current2_;
        +    const typename ParamGenerator<T3>::iterator begin3_;
        +    const typename ParamGenerator<T3>::iterator end3_;
        +    typename ParamGenerator<T3>::iterator current3_;
        +    const typename ParamGenerator<T4>::iterator begin4_;
        +    const typename ParamGenerator<T4>::iterator end4_;
        +    typename ParamGenerator<T4>::iterator current4_;
        +    const typename ParamGenerator<T5>::iterator begin5_;
        +    const typename ParamGenerator<T5>::iterator end5_;
        +    typename ParamGenerator<T5>::iterator current5_;
        +    const typename ParamGenerator<T6>::iterator begin6_;
        +    const typename ParamGenerator<T6>::iterator end6_;
        +    typename ParamGenerator<T6>::iterator current6_;
        +    const typename ParamGenerator<T7>::iterator begin7_;
        +    const typename ParamGenerator<T7>::iterator end7_;
        +    typename ParamGenerator<T7>::iterator current7_;
        +    const typename ParamGenerator<T8>::iterator begin8_;
        +    const typename ParamGenerator<T8>::iterator end8_;
        +    typename ParamGenerator<T8>::iterator current8_;
        +    const typename ParamGenerator<T9>::iterator begin9_;
        +    const typename ParamGenerator<T9>::iterator end9_;
        +    typename ParamGenerator<T9>::iterator current9_;
        +    ParamType current_value_;
        +  };  // class CartesianProductGenerator9::Iterator
        +
        +  // No implementation - assignment is unsupported.
        +  void operator=(const CartesianProductGenerator9& other);
        +
        +  const ParamGenerator<T1> g1_;
        +  const ParamGenerator<T2> g2_;
        +  const ParamGenerator<T3> g3_;
        +  const ParamGenerator<T4> g4_;
        +  const ParamGenerator<T5> g5_;
        +  const ParamGenerator<T6> g6_;
        +  const ParamGenerator<T7> g7_;
        +  const ParamGenerator<T8> g8_;
        +  const ParamGenerator<T9> g9_;
        +};  // class CartesianProductGenerator9
        +
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10>
        +class CartesianProductGenerator10
        +    : public ParamGeneratorInterface< ::testing::tuple<T1, T2, T3, T4, T5, T6,
        +        T7, T8, T9, T10> > {
        + public:
        +  typedef ::testing::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> ParamType;
        +
        +  CartesianProductGenerator10(const ParamGenerator<T1>& g1,
        +      const ParamGenerator<T2>& g2, const ParamGenerator<T3>& g3,
        +      const ParamGenerator<T4>& g4, const ParamGenerator<T5>& g5,
        +      const ParamGenerator<T6>& g6, const ParamGenerator<T7>& g7,
        +      const ParamGenerator<T8>& g8, const ParamGenerator<T9>& g9,
        +      const ParamGenerator<T10>& g10)
        +      : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7), g8_(g8),
        +          g9_(g9), g10_(g10) {}
        +  virtual ~CartesianProductGenerator10() {}
        +
        +  virtual ParamIteratorInterface<ParamType>* Begin() const {
        +    return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
        +        g3_.begin(), g4_, g4_.begin(), g5_, g5_.begin(), g6_, g6_.begin(), g7_,
        +        g7_.begin(), g8_, g8_.begin(), g9_, g9_.begin(), g10_, g10_.begin());
        +  }
        +  virtual ParamIteratorInterface<ParamType>* End() const {
        +    return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
        +        g4_, g4_.end(), g5_, g5_.end(), g6_, g6_.end(), g7_, g7_.end(), g8_,
        +        g8_.end(), g9_, g9_.end(), g10_, g10_.end());
        +  }
        +
        + private:
        +  class Iterator : public ParamIteratorInterface<ParamType> {
        +   public:
        +    Iterator(const ParamGeneratorInterface<ParamType>* base,
        +      const ParamGenerator<T1>& g1,
        +      const typename ParamGenerator<T1>::iterator& current1,
        +      const ParamGenerator<T2>& g2,
        +      const typename ParamGenerator<T2>::iterator& current2,
        +      const ParamGenerator<T3>& g3,
        +      const typename ParamGenerator<T3>::iterator& current3,
        +      const ParamGenerator<T4>& g4,
        +      const typename ParamGenerator<T4>::iterator& current4,
        +      const ParamGenerator<T5>& g5,
        +      const typename ParamGenerator<T5>::iterator& current5,
        +      const ParamGenerator<T6>& g6,
        +      const typename ParamGenerator<T6>::iterator& current6,
        +      const ParamGenerator<T7>& g7,
        +      const typename ParamGenerator<T7>::iterator& current7,
        +      const ParamGenerator<T8>& g8,
        +      const typename ParamGenerator<T8>::iterator& current8,
        +      const ParamGenerator<T9>& g9,
        +      const typename ParamGenerator<T9>::iterator& current9,
        +      const ParamGenerator<T10>& g10,
        +      const typename ParamGenerator<T10>::iterator& current10)
        +        : base_(base),
        +          begin1_(g1.begin()), end1_(g1.end()), current1_(current1),
        +          begin2_(g2.begin()), end2_(g2.end()), current2_(current2),
        +          begin3_(g3.begin()), end3_(g3.end()), current3_(current3),
        +          begin4_(g4.begin()), end4_(g4.end()), current4_(current4),
        +          begin5_(g5.begin()), end5_(g5.end()), current5_(current5),
        +          begin6_(g6.begin()), end6_(g6.end()), current6_(current6),
        +          begin7_(g7.begin()), end7_(g7.end()), current7_(current7),
        +          begin8_(g8.begin()), end8_(g8.end()), current8_(current8),
        +          begin9_(g9.begin()), end9_(g9.end()), current9_(current9),
        +          begin10_(g10.begin()), end10_(g10.end()), current10_(current10)    {
        +      ComputeCurrentValue();
        +    }
        +    virtual ~Iterator() {}
        +
        +    virtual const ParamGeneratorInterface<ParamType>* BaseGenerator() const {
        +      return base_;
        +    }
        +    // Advance should not be called on beyond-of-range iterators
        +    // so no component iterators must be beyond end of range, either.
        +    virtual void Advance() {
        +      assert(!AtEnd());
        +      ++current10_;
        +      if (current10_ == end10_) {
        +        current10_ = begin10_;
        +        ++current9_;
        +      }
        +      if (current9_ == end9_) {
        +        current9_ = begin9_;
        +        ++current8_;
        +      }
        +      if (current8_ == end8_) {
        +        current8_ = begin8_;
        +        ++current7_;
        +      }
        +      if (current7_ == end7_) {
        +        current7_ = begin7_;
        +        ++current6_;
        +      }
        +      if (current6_ == end6_) {
        +        current6_ = begin6_;
        +        ++current5_;
        +      }
        +      if (current5_ == end5_) {
        +        current5_ = begin5_;
        +        ++current4_;
        +      }
        +      if (current4_ == end4_) {
        +        current4_ = begin4_;
        +        ++current3_;
        +      }
        +      if (current3_ == end3_) {
        +        current3_ = begin3_;
        +        ++current2_;
        +      }
        +      if (current2_ == end2_) {
        +        current2_ = begin2_;
        +        ++current1_;
        +      }
        +      ComputeCurrentValue();
        +    }
        +    virtual ParamIteratorInterface<ParamType>* Clone() const {
        +      return new Iterator(*this);
        +    }
        +    virtual const ParamType* Current() const { return &current_value_; }
        +    virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
        +      // Having the same base generator guarantees that the other
        +      // iterator is of the same type and we can downcast.
        +      GTEST_CHECK_(BaseGenerator() == other.BaseGenerator())
        +          << "The program attempted to compare iterators "
        +          << "from different generators." << std::endl;
        +      const Iterator* typed_other =
        +          CheckedDowncastToActualType<const Iterator>(&other);
        +      // We must report iterators equal if they both point beyond their
        +      // respective ranges. That can happen in a variety of fashions,
        +      // so we have to consult AtEnd().
        +      return (AtEnd() && typed_other->AtEnd()) ||
        +         (
        +          current1_ == typed_other->current1_ &&
        +          current2_ == typed_other->current2_ &&
        +          current3_ == typed_other->current3_ &&
        +          current4_ == typed_other->current4_ &&
        +          current5_ == typed_other->current5_ &&
        +          current6_ == typed_other->current6_ &&
        +          current7_ == typed_other->current7_ &&
        +          current8_ == typed_other->current8_ &&
        +          current9_ == typed_other->current9_ &&
        +          current10_ == typed_other->current10_);
        +    }
        +
        +   private:
        +    Iterator(const Iterator& other)
        +        : base_(other.base_),
        +        begin1_(other.begin1_),
        +        end1_(other.end1_),
        +        current1_(other.current1_),
        +        begin2_(other.begin2_),
        +        end2_(other.end2_),
        +        current2_(other.current2_),
        +        begin3_(other.begin3_),
        +        end3_(other.end3_),
        +        current3_(other.current3_),
        +        begin4_(other.begin4_),
        +        end4_(other.end4_),
        +        current4_(other.current4_),
        +        begin5_(other.begin5_),
        +        end5_(other.end5_),
        +        current5_(other.current5_),
        +        begin6_(other.begin6_),
        +        end6_(other.end6_),
        +        current6_(other.current6_),
        +        begin7_(other.begin7_),
        +        end7_(other.end7_),
        +        current7_(other.current7_),
        +        begin8_(other.begin8_),
        +        end8_(other.end8_),
        +        current8_(other.current8_),
        +        begin9_(other.begin9_),
        +        end9_(other.end9_),
        +        current9_(other.current9_),
        +        begin10_(other.begin10_),
        +        end10_(other.end10_),
        +        current10_(other.current10_) {
        +      ComputeCurrentValue();
        +    }
        +
        +    void ComputeCurrentValue() {
        +      if (!AtEnd())
        +        current_value_ = ParamType(*current1_, *current2_, *current3_,
        +            *current4_, *current5_, *current6_, *current7_, *current8_,
        +            *current9_, *current10_);
        +    }
        +    bool AtEnd() const {
        +      // We must report iterator past the end of the range when either of the
        +      // component iterators has reached the end of its range.
        +      return
        +          current1_ == end1_ ||
        +          current2_ == end2_ ||
        +          current3_ == end3_ ||
        +          current4_ == end4_ ||
        +          current5_ == end5_ ||
        +          current6_ == end6_ ||
        +          current7_ == end7_ ||
        +          current8_ == end8_ ||
        +          current9_ == end9_ ||
        +          current10_ == end10_;
        +    }
        +
        +    // No implementation - assignment is unsupported.
        +    void operator=(const Iterator& other);
        +
        +    const ParamGeneratorInterface<ParamType>* const base_;
        +    // begin[i]_ and end[i]_ define the i-th range that Iterator traverses.
        +    // current[i]_ is the actual traversing iterator.
        +    const typename ParamGenerator<T1>::iterator begin1_;
        +    const typename ParamGenerator<T1>::iterator end1_;
        +    typename ParamGenerator<T1>::iterator current1_;
        +    const typename ParamGenerator<T2>::iterator begin2_;
        +    const typename ParamGenerator<T2>::iterator end2_;
        +    typename ParamGenerator<T2>::iterator current2_;
        +    const typename ParamGenerator<T3>::iterator begin3_;
        +    const typename ParamGenerator<T3>::iterator end3_;
        +    typename ParamGenerator<T3>::iterator current3_;
        +    const typename ParamGenerator<T4>::iterator begin4_;
        +    const typename ParamGenerator<T4>::iterator end4_;
        +    typename ParamGenerator<T4>::iterator current4_;
        +    const typename ParamGenerator<T5>::iterator begin5_;
        +    const typename ParamGenerator<T5>::iterator end5_;
        +    typename ParamGenerator<T5>::iterator current5_;
        +    const typename ParamGenerator<T6>::iterator begin6_;
        +    const typename ParamGenerator<T6>::iterator end6_;
        +    typename ParamGenerator<T6>::iterator current6_;
        +    const typename ParamGenerator<T7>::iterator begin7_;
        +    const typename ParamGenerator<T7>::iterator end7_;
        +    typename ParamGenerator<T7>::iterator current7_;
        +    const typename ParamGenerator<T8>::iterator begin8_;
        +    const typename ParamGenerator<T8>::iterator end8_;
        +    typename ParamGenerator<T8>::iterator current8_;
        +    const typename ParamGenerator<T9>::iterator begin9_;
        +    const typename ParamGenerator<T9>::iterator end9_;
        +    typename ParamGenerator<T9>::iterator current9_;
        +    const typename ParamGenerator<T10>::iterator begin10_;
        +    const typename ParamGenerator<T10>::iterator end10_;
        +    typename ParamGenerator<T10>::iterator current10_;
        +    ParamType current_value_;
        +  };  // class CartesianProductGenerator10::Iterator
        +
        +  // No implementation - assignment is unsupported.
        +  void operator=(const CartesianProductGenerator10& other);
        +
        +  const ParamGenerator<T1> g1_;
        +  const ParamGenerator<T2> g2_;
        +  const ParamGenerator<T3> g3_;
        +  const ParamGenerator<T4> g4_;
        +  const ParamGenerator<T5> g5_;
        +  const ParamGenerator<T6> g6_;
        +  const ParamGenerator<T7> g7_;
        +  const ParamGenerator<T8> g8_;
        +  const ParamGenerator<T9> g9_;
        +  const ParamGenerator<T10> g10_;
        +};  // class CartesianProductGenerator10
        +
        +
        +// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE.
        +//
        +// Helper classes providing Combine() with polymorphic features. They allow
        +// casting CartesianProductGeneratorN<T> to ParamGenerator<U> if T is
        +// convertible to U.
        +//
        +template <class Generator1, class Generator2>
        +class CartesianProductHolder2 {
        + public:
        +CartesianProductHolder2(const Generator1& g1, const Generator2& g2)
        +      : g1_(g1), g2_(g2) {}
        +  template <typename T1, typename T2>
        +  operator ParamGenerator< ::testing::tuple<T1, T2> >() const {
        +    return ParamGenerator< ::testing::tuple<T1, T2> >(
        +        new CartesianProductGenerator2<T1, T2>(
        +        static_cast<ParamGenerator<T1> >(g1_),
        +        static_cast<ParamGenerator<T2> >(g2_)));
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const CartesianProductHolder2& other);
        +
        +  const Generator1 g1_;
        +  const Generator2 g2_;
        +};  // class CartesianProductHolder2
        +
        +template <class Generator1, class Generator2, class Generator3>
        +class CartesianProductHolder3 {
        + public:
        +CartesianProductHolder3(const Generator1& g1, const Generator2& g2,
        +    const Generator3& g3)
        +      : g1_(g1), g2_(g2), g3_(g3) {}
        +  template <typename T1, typename T2, typename T3>
        +  operator ParamGenerator< ::testing::tuple<T1, T2, T3> >() const {
        +    return ParamGenerator< ::testing::tuple<T1, T2, T3> >(
        +        new CartesianProductGenerator3<T1, T2, T3>(
        +        static_cast<ParamGenerator<T1> >(g1_),
        +        static_cast<ParamGenerator<T2> >(g2_),
        +        static_cast<ParamGenerator<T3> >(g3_)));
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const CartesianProductHolder3& other);
        +
        +  const Generator1 g1_;
        +  const Generator2 g2_;
        +  const Generator3 g3_;
        +};  // class CartesianProductHolder3
        +
        +template <class Generator1, class Generator2, class Generator3,
        +    class Generator4>
        +class CartesianProductHolder4 {
        + public:
        +CartesianProductHolder4(const Generator1& g1, const Generator2& g2,
        +    const Generator3& g3, const Generator4& g4)
        +      : g1_(g1), g2_(g2), g3_(g3), g4_(g4) {}
        +  template <typename T1, typename T2, typename T3, typename T4>
        +  operator ParamGenerator< ::testing::tuple<T1, T2, T3, T4> >() const {
        +    return ParamGenerator< ::testing::tuple<T1, T2, T3, T4> >(
        +        new CartesianProductGenerator4<T1, T2, T3, T4>(
        +        static_cast<ParamGenerator<T1> >(g1_),
        +        static_cast<ParamGenerator<T2> >(g2_),
        +        static_cast<ParamGenerator<T3> >(g3_),
        +        static_cast<ParamGenerator<T4> >(g4_)));
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const CartesianProductHolder4& other);
        +
        +  const Generator1 g1_;
        +  const Generator2 g2_;
        +  const Generator3 g3_;
        +  const Generator4 g4_;
        +};  // class CartesianProductHolder4
        +
        +template <class Generator1, class Generator2, class Generator3,
        +    class Generator4, class Generator5>
        +class CartesianProductHolder5 {
        + public:
        +CartesianProductHolder5(const Generator1& g1, const Generator2& g2,
        +    const Generator3& g3, const Generator4& g4, const Generator5& g5)
        +      : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5) {}
        +  template <typename T1, typename T2, typename T3, typename T4, typename T5>
        +  operator ParamGenerator< ::testing::tuple<T1, T2, T3, T4, T5> >() const {
        +    return ParamGenerator< ::testing::tuple<T1, T2, T3, T4, T5> >(
        +        new CartesianProductGenerator5<T1, T2, T3, T4, T5>(
        +        static_cast<ParamGenerator<T1> >(g1_),
        +        static_cast<ParamGenerator<T2> >(g2_),
        +        static_cast<ParamGenerator<T3> >(g3_),
        +        static_cast<ParamGenerator<T4> >(g4_),
        +        static_cast<ParamGenerator<T5> >(g5_)));
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const CartesianProductHolder5& other);
        +
        +  const Generator1 g1_;
        +  const Generator2 g2_;
        +  const Generator3 g3_;
        +  const Generator4 g4_;
        +  const Generator5 g5_;
        +};  // class CartesianProductHolder5
        +
        +template <class Generator1, class Generator2, class Generator3,
        +    class Generator4, class Generator5, class Generator6>
        +class CartesianProductHolder6 {
        + public:
        +CartesianProductHolder6(const Generator1& g1, const Generator2& g2,
        +    const Generator3& g3, const Generator4& g4, const Generator5& g5,
        +    const Generator6& g6)
        +      : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6) {}
        +  template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +      typename T6>
        +  operator ParamGenerator< ::testing::tuple<T1, T2, T3, T4, T5, T6> >() const {
        +    return ParamGenerator< ::testing::tuple<T1, T2, T3, T4, T5, T6> >(
        +        new CartesianProductGenerator6<T1, T2, T3, T4, T5, T6>(
        +        static_cast<ParamGenerator<T1> >(g1_),
        +        static_cast<ParamGenerator<T2> >(g2_),
        +        static_cast<ParamGenerator<T3> >(g3_),
        +        static_cast<ParamGenerator<T4> >(g4_),
        +        static_cast<ParamGenerator<T5> >(g5_),
        +        static_cast<ParamGenerator<T6> >(g6_)));
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const CartesianProductHolder6& other);
        +
        +  const Generator1 g1_;
        +  const Generator2 g2_;
        +  const Generator3 g3_;
        +  const Generator4 g4_;
        +  const Generator5 g5_;
        +  const Generator6 g6_;
        +};  // class CartesianProductHolder6
        +
        +template <class Generator1, class Generator2, class Generator3,
        +    class Generator4, class Generator5, class Generator6, class Generator7>
        +class CartesianProductHolder7 {
        + public:
        +CartesianProductHolder7(const Generator1& g1, const Generator2& g2,
        +    const Generator3& g3, const Generator4& g4, const Generator5& g5,
        +    const Generator6& g6, const Generator7& g7)
        +      : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7) {}
        +  template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +      typename T6, typename T7>
        +  operator ParamGenerator< ::testing::tuple<T1, T2, T3, T4, T5, T6,
        +      T7> >() const {
        +    return ParamGenerator< ::testing::tuple<T1, T2, T3, T4, T5, T6, T7> >(
        +        new CartesianProductGenerator7<T1, T2, T3, T4, T5, T6, T7>(
        +        static_cast<ParamGenerator<T1> >(g1_),
        +        static_cast<ParamGenerator<T2> >(g2_),
        +        static_cast<ParamGenerator<T3> >(g3_),
        +        static_cast<ParamGenerator<T4> >(g4_),
        +        static_cast<ParamGenerator<T5> >(g5_),
        +        static_cast<ParamGenerator<T6> >(g6_),
        +        static_cast<ParamGenerator<T7> >(g7_)));
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const CartesianProductHolder7& other);
        +
        +  const Generator1 g1_;
        +  const Generator2 g2_;
        +  const Generator3 g3_;
        +  const Generator4 g4_;
        +  const Generator5 g5_;
        +  const Generator6 g6_;
        +  const Generator7 g7_;
        +};  // class CartesianProductHolder7
        +
        +template <class Generator1, class Generator2, class Generator3,
        +    class Generator4, class Generator5, class Generator6, class Generator7,
        +    class Generator8>
        +class CartesianProductHolder8 {
        + public:
        +CartesianProductHolder8(const Generator1& g1, const Generator2& g2,
        +    const Generator3& g3, const Generator4& g4, const Generator5& g5,
        +    const Generator6& g6, const Generator7& g7, const Generator8& g8)
        +      : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7),
        +          g8_(g8) {}
        +  template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +      typename T6, typename T7, typename T8>
        +  operator ParamGenerator< ::testing::tuple<T1, T2, T3, T4, T5, T6, T7,
        +      T8> >() const {
        +    return ParamGenerator< ::testing::tuple<T1, T2, T3, T4, T5, T6, T7, T8> >(
        +        new CartesianProductGenerator8<T1, T2, T3, T4, T5, T6, T7, T8>(
        +        static_cast<ParamGenerator<T1> >(g1_),
        +        static_cast<ParamGenerator<T2> >(g2_),
        +        static_cast<ParamGenerator<T3> >(g3_),
        +        static_cast<ParamGenerator<T4> >(g4_),
        +        static_cast<ParamGenerator<T5> >(g5_),
        +        static_cast<ParamGenerator<T6> >(g6_),
        +        static_cast<ParamGenerator<T7> >(g7_),
        +        static_cast<ParamGenerator<T8> >(g8_)));
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const CartesianProductHolder8& other);
        +
        +  const Generator1 g1_;
        +  const Generator2 g2_;
        +  const Generator3 g3_;
        +  const Generator4 g4_;
        +  const Generator5 g5_;
        +  const Generator6 g6_;
        +  const Generator7 g7_;
        +  const Generator8 g8_;
        +};  // class CartesianProductHolder8
        +
        +template <class Generator1, class Generator2, class Generator3,
        +    class Generator4, class Generator5, class Generator6, class Generator7,
        +    class Generator8, class Generator9>
        +class CartesianProductHolder9 {
        + public:
        +CartesianProductHolder9(const Generator1& g1, const Generator2& g2,
        +    const Generator3& g3, const Generator4& g4, const Generator5& g5,
        +    const Generator6& g6, const Generator7& g7, const Generator8& g8,
        +    const Generator9& g9)
        +      : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7), g8_(g8),
        +          g9_(g9) {}
        +  template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +      typename T6, typename T7, typename T8, typename T9>
        +  operator ParamGenerator< ::testing::tuple<T1, T2, T3, T4, T5, T6, T7, T8,
        +      T9> >() const {
        +    return ParamGenerator< ::testing::tuple<T1, T2, T3, T4, T5, T6, T7, T8,
        +        T9> >(
        +        new CartesianProductGenerator9<T1, T2, T3, T4, T5, T6, T7, T8, T9>(
        +        static_cast<ParamGenerator<T1> >(g1_),
        +        static_cast<ParamGenerator<T2> >(g2_),
        +        static_cast<ParamGenerator<T3> >(g3_),
        +        static_cast<ParamGenerator<T4> >(g4_),
        +        static_cast<ParamGenerator<T5> >(g5_),
        +        static_cast<ParamGenerator<T6> >(g6_),
        +        static_cast<ParamGenerator<T7> >(g7_),
        +        static_cast<ParamGenerator<T8> >(g8_),
        +        static_cast<ParamGenerator<T9> >(g9_)));
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const CartesianProductHolder9& other);
        +
        +  const Generator1 g1_;
        +  const Generator2 g2_;
        +  const Generator3 g3_;
        +  const Generator4 g4_;
        +  const Generator5 g5_;
        +  const Generator6 g6_;
        +  const Generator7 g7_;
        +  const Generator8 g8_;
        +  const Generator9 g9_;
        +};  // class CartesianProductHolder9
        +
        +template <class Generator1, class Generator2, class Generator3,
        +    class Generator4, class Generator5, class Generator6, class Generator7,
        +    class Generator8, class Generator9, class Generator10>
        +class CartesianProductHolder10 {
        + public:
        +CartesianProductHolder10(const Generator1& g1, const Generator2& g2,
        +    const Generator3& g3, const Generator4& g4, const Generator5& g5,
        +    const Generator6& g6, const Generator7& g7, const Generator8& g8,
        +    const Generator9& g9, const Generator10& g10)
        +      : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7), g8_(g8),
        +          g9_(g9), g10_(g10) {}
        +  template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +      typename T6, typename T7, typename T8, typename T9, typename T10>
        +  operator ParamGenerator< ::testing::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9,
        +      T10> >() const {
        +    return ParamGenerator< ::testing::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9,
        +        T10> >(
        +        new CartesianProductGenerator10<T1, T2, T3, T4, T5, T6, T7, T8, T9,
        +            T10>(
        +        static_cast<ParamGenerator<T1> >(g1_),
        +        static_cast<ParamGenerator<T2> >(g2_),
        +        static_cast<ParamGenerator<T3> >(g3_),
        +        static_cast<ParamGenerator<T4> >(g4_),
        +        static_cast<ParamGenerator<T5> >(g5_),
        +        static_cast<ParamGenerator<T6> >(g6_),
        +        static_cast<ParamGenerator<T7> >(g7_),
        +        static_cast<ParamGenerator<T8> >(g8_),
        +        static_cast<ParamGenerator<T9> >(g9_),
        +        static_cast<ParamGenerator<T10> >(g10_)));
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const CartesianProductHolder10& other);
        +
        +  const Generator1 g1_;
        +  const Generator2 g2_;
        +  const Generator3 g3_;
        +  const Generator4 g4_;
        +  const Generator5 g5_;
        +  const Generator6 g6_;
        +  const Generator7 g7_;
        +  const Generator8 g8_;
        +  const Generator9 g9_;
        +  const Generator10 g10_;
        +};  // class CartesianProductHolder10
        +
        +# endif  // GTEST_HAS_COMBINE
        +
        +}  // namespace internal
        +}  // namespace testing
        +
        +#endif  //  GTEST_HAS_PARAM_TEST
        +
        +#endif  // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_
        diff --git a/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-param-util-generated.h.pump b/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-param-util-generated.h.pump
        new file mode 100644
        index 0000000..5c7c47a
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-param-util-generated.h.pump
        @@ -0,0 +1,286 @@
        +$$ -*- mode: c++; -*-
        +$var n = 50  $$ Maximum length of Values arguments we want to support.
        +$var maxtuple = 10  $$ Maximum number of Combine arguments we want to support.
        +// Copyright 2008 Google Inc.
        +// All Rights Reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: vladl@google.com (Vlad Losev)
        +
        +// Type and function utilities for implementing parameterized tests.
        +// This file is generated by a SCRIPT.  DO NOT EDIT BY HAND!
        +//
        +// Currently Google Test supports at most $n arguments in Values,
        +// and at most $maxtuple arguments in Combine. Please contact
        +// googletestframework@googlegroups.com if you need more.
        +// Please note that the number of arguments to Combine is limited
        +// by the maximum arity of the implementation of tuple which is
        +// currently set at $maxtuple.
        +
        +#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_
        +#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_
        +
        +// scripts/fuse_gtest.py depends on gtest's own header being #included
        +// *unconditionally*.  Therefore these #includes cannot be moved
        +// inside #if GTEST_HAS_PARAM_TEST.
        +#include "gtest/internal/gtest-param-util.h"
        +#include "gtest/internal/gtest-port.h"
        +
        +#if GTEST_HAS_PARAM_TEST
        +
        +namespace testing {
        +
        +// Forward declarations of ValuesIn(), which is implemented in
        +// include/gtest/gtest-param-test.h.
        +template <typename ForwardIterator>
        +internal::ParamGenerator<
        +  typename ::testing::internal::IteratorTraits<ForwardIterator>::value_type>
        +ValuesIn(ForwardIterator begin, ForwardIterator end);
        +
        +template <typename T, size_t N>
        +internal::ParamGenerator<T> ValuesIn(const T (&array)[N]);
        +
        +template <class Container>
        +internal::ParamGenerator<typename Container::value_type> ValuesIn(
        +    const Container& container);
        +
        +namespace internal {
        +
        +// Used in the Values() function to provide polymorphic capabilities.
        +$range i 1..n
        +$for i [[
        +$range j 1..i
        +
        +template <$for j, [[typename T$j]]>
        +class ValueArray$i {
        + public:
        +  $if i==1 [[explicit ]]ValueArray$i($for j, [[T$j v$j]]) : $for j, [[v$(j)_(v$j)]] {}
        +
        +  template <typename T>
        +  operator ParamGenerator<T>() const {
        +    const T array[] = {$for j, [[static_cast<T>(v$(j)_)]]};
        +    return ValuesIn(array);
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValueArray$i& other);
        +
        +$for j [[
        +
        +  const T$j v$(j)_;
        +]]
        +
        +};
        +
        +]]
        +
        +# if GTEST_HAS_COMBINE
        +// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE.
        +//
        +// Generates values from the Cartesian product of values produced
        +// by the argument generators.
        +//
        +$range i 2..maxtuple
        +$for i [[
        +$range j 1..i
        +$range k 2..i
        +
        +template <$for j, [[typename T$j]]>
        +class CartesianProductGenerator$i
        +    : public ParamGeneratorInterface< ::testing::tuple<$for j, [[T$j]]> > {
        + public:
        +  typedef ::testing::tuple<$for j, [[T$j]]> ParamType;
        +
        +  CartesianProductGenerator$i($for j, [[const ParamGenerator<T$j>& g$j]])
        +      : $for j, [[g$(j)_(g$j)]] {}
        +  virtual ~CartesianProductGenerator$i() {}
        +
        +  virtual ParamIteratorInterface<ParamType>* Begin() const {
        +    return new Iterator(this, $for j, [[g$(j)_, g$(j)_.begin()]]);
        +  }
        +  virtual ParamIteratorInterface<ParamType>* End() const {
        +    return new Iterator(this, $for j, [[g$(j)_, g$(j)_.end()]]);
        +  }
        +
        + private:
        +  class Iterator : public ParamIteratorInterface<ParamType> {
        +   public:
        +    Iterator(const ParamGeneratorInterface<ParamType>* base, $for j, [[
        +
        +      const ParamGenerator<T$j>& g$j,
        +      const typename ParamGenerator<T$j>::iterator& current$(j)]])
        +        : base_(base),
        +$for j, [[
        +
        +          begin$(j)_(g$j.begin()), end$(j)_(g$j.end()), current$(j)_(current$j)
        +]]    {
        +      ComputeCurrentValue();
        +    }
        +    virtual ~Iterator() {}
        +
        +    virtual const ParamGeneratorInterface<ParamType>* BaseGenerator() const {
        +      return base_;
        +    }
        +    // Advance should not be called on beyond-of-range iterators
        +    // so no component iterators must be beyond end of range, either.
        +    virtual void Advance() {
        +      assert(!AtEnd());
        +      ++current$(i)_;
        +
        +$for k [[
        +      if (current$(i+2-k)_ == end$(i+2-k)_) {
        +        current$(i+2-k)_ = begin$(i+2-k)_;
        +        ++current$(i+2-k-1)_;
        +      }
        +
        +]]
        +      ComputeCurrentValue();
        +    }
        +    virtual ParamIteratorInterface<ParamType>* Clone() const {
        +      return new Iterator(*this);
        +    }
        +    virtual const ParamType* Current() const { return &current_value_; }
        +    virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
        +      // Having the same base generator guarantees that the other
        +      // iterator is of the same type and we can downcast.
        +      GTEST_CHECK_(BaseGenerator() == other.BaseGenerator())
        +          << "The program attempted to compare iterators "
        +          << "from different generators." << std::endl;
        +      const Iterator* typed_other =
        +          CheckedDowncastToActualType<const Iterator>(&other);
        +      // We must report iterators equal if they both point beyond their
        +      // respective ranges. That can happen in a variety of fashions,
        +      // so we have to consult AtEnd().
        +      return (AtEnd() && typed_other->AtEnd()) ||
        +         ($for j  && [[
        +
        +          current$(j)_ == typed_other->current$(j)_
        +]]);
        +    }
        +
        +   private:
        +    Iterator(const Iterator& other)
        +        : base_(other.base_), $for j, [[
        +
        +        begin$(j)_(other.begin$(j)_),
        +        end$(j)_(other.end$(j)_),
        +        current$(j)_(other.current$(j)_)
        +]] {
        +      ComputeCurrentValue();
        +    }
        +
        +    void ComputeCurrentValue() {
        +      if (!AtEnd())
        +        current_value_ = ParamType($for j, [[*current$(j)_]]);
        +    }
        +    bool AtEnd() const {
        +      // We must report iterator past the end of the range when either of the
        +      // component iterators has reached the end of its range.
        +      return
        +$for j  || [[
        +
        +          current$(j)_ == end$(j)_
        +]];
        +    }
        +
        +    // No implementation - assignment is unsupported.
        +    void operator=(const Iterator& other);
        +
        +    const ParamGeneratorInterface<ParamType>* const base_;
        +    // begin[i]_ and end[i]_ define the i-th range that Iterator traverses.
        +    // current[i]_ is the actual traversing iterator.
        +$for j [[
        +
        +    const typename ParamGenerator<T$j>::iterator begin$(j)_;
        +    const typename ParamGenerator<T$j>::iterator end$(j)_;
        +    typename ParamGenerator<T$j>::iterator current$(j)_;
        +]]
        +
        +    ParamType current_value_;
        +  };  // class CartesianProductGenerator$i::Iterator
        +
        +  // No implementation - assignment is unsupported.
        +  void operator=(const CartesianProductGenerator$i& other);
        +
        +
        +$for j [[
        +  const ParamGenerator<T$j> g$(j)_;
        +
        +]]
        +};  // class CartesianProductGenerator$i
        +
        +
        +]]
        +
        +// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE.
        +//
        +// Helper classes providing Combine() with polymorphic features. They allow
        +// casting CartesianProductGeneratorN<T> to ParamGenerator<U> if T is
        +// convertible to U.
        +//
        +$range i 2..maxtuple
        +$for i [[
        +$range j 1..i
        +
        +template <$for j, [[class Generator$j]]>
        +class CartesianProductHolder$i {
        + public:
        +CartesianProductHolder$i($for j, [[const Generator$j& g$j]])
        +      : $for j, [[g$(j)_(g$j)]] {}
        +  template <$for j, [[typename T$j]]>
        +  operator ParamGenerator< ::testing::tuple<$for j, [[T$j]]> >() const {
        +    return ParamGenerator< ::testing::tuple<$for j, [[T$j]]> >(
        +        new CartesianProductGenerator$i<$for j, [[T$j]]>(
        +$for j,[[
        +
        +        static_cast<ParamGenerator<T$j> >(g$(j)_)
        +]]));
        +  }
        +
        + private:
        +  // No implementation - assignment is unsupported.
        +  void operator=(const CartesianProductHolder$i& other);
        +
        +
        +$for j [[
        +  const Generator$j g$(j)_;
        +
        +]]
        +};  // class CartesianProductHolder$i
        +
        +]]
        +
        +# endif  // GTEST_HAS_COMBINE
        +
        +}  // namespace internal
        +}  // namespace testing
        +
        +#endif  //  GTEST_HAS_PARAM_TEST
        +
        +#endif  // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_
        diff --git a/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-param-util.h b/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-param-util.h
        new file mode 100644
        index 0000000..82cab9b
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-param-util.h
        @@ -0,0 +1,731 @@
        +// Copyright 2008 Google Inc.
        +// All Rights Reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: vladl@google.com (Vlad Losev)
        +
        +// Type and function utilities for implementing parameterized tests.
        +
        +#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_H_
        +#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_H_
        +
        +#include <ctype.h>
        +
        +#include <iterator>
        +#include <set>
        +#include <utility>
        +#include <vector>
        +
        +// scripts/fuse_gtest.py depends on gtest's own header being #included
        +// *unconditionally*.  Therefore these #includes cannot be moved
        +// inside #if GTEST_HAS_PARAM_TEST.
        +#include "gtest/internal/gtest-internal.h"
        +#include "gtest/internal/gtest-linked_ptr.h"
        +#include "gtest/internal/gtest-port.h"
        +#include "gtest/gtest-printers.h"
        +
        +#if GTEST_HAS_PARAM_TEST
        +
        +namespace testing {
        +
        +// Input to a parameterized test name generator, describing a test parameter.
        +// Consists of the parameter value and the integer parameter index.
        +template <class ParamType>
        +struct TestParamInfo {
        +  TestParamInfo(const ParamType& a_param, size_t an_index) :
        +    param(a_param),
        +    index(an_index) {}
        +  ParamType param;
        +  size_t index;
        +};
        +
        +// A builtin parameterized test name generator which returns the result of
        +// testing::PrintToString.
        +struct PrintToStringParamName {
        +  template <class ParamType>
        +  std::string operator()(const TestParamInfo<ParamType>& info) const {
        +    return PrintToString(info.param);
        +  }
        +};
        +
        +namespace internal {
        +
        +// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE.
        +//
        +// Outputs a message explaining invalid registration of different
        +// fixture class for the same test case. This may happen when
        +// TEST_P macro is used to define two tests with the same name
        +// but in different namespaces.
        +GTEST_API_ void ReportInvalidTestCaseType(const char* test_case_name,
        +                                          CodeLocation code_location);
        +
        +template <typename> class ParamGeneratorInterface;
        +template <typename> class ParamGenerator;
        +
        +// Interface for iterating over elements provided by an implementation
        +// of ParamGeneratorInterface<T>.
        +template <typename T>
        +class ParamIteratorInterface {
        + public:
        +  virtual ~ParamIteratorInterface() {}
        +  // A pointer to the base generator instance.
        +  // Used only for the purposes of iterator comparison
        +  // to make sure that two iterators belong to the same generator.
        +  virtual const ParamGeneratorInterface<T>* BaseGenerator() const = 0;
        +  // Advances iterator to point to the next element
        +  // provided by the generator. The caller is responsible
        +  // for not calling Advance() on an iterator equal to
        +  // BaseGenerator()->End().
        +  virtual void Advance() = 0;
        +  // Clones the iterator object. Used for implementing copy semantics
        +  // of ParamIterator<T>.
        +  virtual ParamIteratorInterface* Clone() const = 0;
        +  // Dereferences the current iterator and provides (read-only) access
        +  // to the pointed value. It is the caller's responsibility not to call
        +  // Current() on an iterator equal to BaseGenerator()->End().
        +  // Used for implementing ParamGenerator<T>::operator*().
        +  virtual const T* Current() const = 0;
        +  // Determines whether the given iterator and other point to the same
        +  // element in the sequence generated by the generator.
        +  // Used for implementing ParamGenerator<T>::operator==().
        +  virtual bool Equals(const ParamIteratorInterface& other) const = 0;
        +};
        +
        +// Class iterating over elements provided by an implementation of
        +// ParamGeneratorInterface<T>. It wraps ParamIteratorInterface<T>
        +// and implements the const forward iterator concept.
        +template <typename T>
        +class ParamIterator {
        + public:
        +  typedef T value_type;
        +  typedef const T& reference;
        +  typedef ptrdiff_t difference_type;
        +
        +  // ParamIterator assumes ownership of the impl_ pointer.
        +  ParamIterator(const ParamIterator& other) : impl_(other.impl_->Clone()) {}
        +  ParamIterator& operator=(const ParamIterator& other) {
        +    if (this != &other)
        +      impl_.reset(other.impl_->Clone());
        +    return *this;
        +  }
        +
        +  const T& operator*() const { return *impl_->Current(); }
        +  const T* operator->() const { return impl_->Current(); }
        +  // Prefix version of operator++.
        +  ParamIterator& operator++() {
        +    impl_->Advance();
        +    return *this;
        +  }
        +  // Postfix version of operator++.
        +  ParamIterator operator++(int /*unused*/) {
        +    ParamIteratorInterface<T>* clone = impl_->Clone();
        +    impl_->Advance();
        +    return ParamIterator(clone);
        +  }
        +  bool operator==(const ParamIterator& other) const {
        +    return impl_.get() == other.impl_.get() || impl_->Equals(*other.impl_);
        +  }
        +  bool operator!=(const ParamIterator& other) const {
        +    return !(*this == other);
        +  }
        +
        + private:
        +  friend class ParamGenerator<T>;
        +  explicit ParamIterator(ParamIteratorInterface<T>* impl) : impl_(impl) {}
        +  scoped_ptr<ParamIteratorInterface<T> > impl_;
        +};
        +
        +// ParamGeneratorInterface<T> is the binary interface to access generators
        +// defined in other translation units.
        +template <typename T>
        +class ParamGeneratorInterface {
        + public:
        +  typedef T ParamType;
        +
        +  virtual ~ParamGeneratorInterface() {}
        +
        +  // Generator interface definition
        +  virtual ParamIteratorInterface<T>* Begin() const = 0;
        +  virtual ParamIteratorInterface<T>* End() const = 0;
        +};
        +
        +// Wraps ParamGeneratorInterface<T> and provides general generator syntax
        +// compatible with the STL Container concept.
        +// This class implements copy initialization semantics and the contained
        +// ParamGeneratorInterface<T> instance is shared among all copies
        +// of the original object. This is possible because that instance is immutable.
        +template<typename T>
        +class ParamGenerator {
        + public:
        +  typedef ParamIterator<T> iterator;
        +
        +  explicit ParamGenerator(ParamGeneratorInterface<T>* impl) : impl_(impl) {}
        +  ParamGenerator(const ParamGenerator& other) : impl_(other.impl_) {}
        +
        +  ParamGenerator& operator=(const ParamGenerator& other) {
        +    impl_ = other.impl_;
        +    return *this;
        +  }
        +
        +  iterator begin() const { return iterator(impl_->Begin()); }
        +  iterator end() const { return iterator(impl_->End()); }
        +
        + private:
        +  linked_ptr<const ParamGeneratorInterface<T> > impl_;
        +};
        +
        +// Generates values from a range of two comparable values. Can be used to
        +// generate sequences of user-defined types that implement operator+() and
        +// operator<().
        +// This class is used in the Range() function.
        +template <typename T, typename IncrementT>
        +class RangeGenerator : public ParamGeneratorInterface<T> {
        + public:
        +  RangeGenerator(T begin, T end, IncrementT step)
        +      : begin_(begin), end_(end),
        +        step_(step), end_index_(CalculateEndIndex(begin, end, step)) {}
        +  virtual ~RangeGenerator() {}
        +
        +  virtual ParamIteratorInterface<T>* Begin() const {
        +    return new Iterator(this, begin_, 0, step_);
        +  }
        +  virtual ParamIteratorInterface<T>* End() const {
        +    return new Iterator(this, end_, end_index_, step_);
        +  }
        +
        + private:
        +  class Iterator : public ParamIteratorInterface<T> {
        +   public:
        +    Iterator(const ParamGeneratorInterface<T>* base, T value, int index,
        +             IncrementT step)
        +        : base_(base), value_(value), index_(index), step_(step) {}
        +    virtual ~Iterator() {}
        +
        +    virtual const ParamGeneratorInterface<T>* BaseGenerator() const {
        +      return base_;
        +    }
        +    virtual void Advance() {
        +      value_ = static_cast<T>(value_ + step_);
        +      index_++;
        +    }
        +    virtual ParamIteratorInterface<T>* Clone() const {
        +      return new Iterator(*this);
        +    }
        +    virtual const T* Current() const { return &value_; }
        +    virtual bool Equals(const ParamIteratorInterface<T>& other) const {
        +      // Having the same base generator guarantees that the other
        +      // iterator is of the same type and we can downcast.
        +      GTEST_CHECK_(BaseGenerator() == other.BaseGenerator())
        +          << "The program attempted to compare iterators "
        +          << "from different generators." << std::endl;
        +      const int other_index =
        +          CheckedDowncastToActualType<const Iterator>(&other)->index_;
        +      return index_ == other_index;
        +    }
        +
        +   private:
        +    Iterator(const Iterator& other)
        +        : ParamIteratorInterface<T>(),
        +          base_(other.base_), value_(other.value_), index_(other.index_),
        +          step_(other.step_) {}
        +
        +    // No implementation - assignment is unsupported.
        +    void operator=(const Iterator& other);
        +
        +    const ParamGeneratorInterface<T>* const base_;
        +    T value_;
        +    int index_;
        +    const IncrementT step_;
        +  };  // class RangeGenerator::Iterator
        +
        +  static int CalculateEndIndex(const T& begin,
        +                               const T& end,
        +                               const IncrementT& step) {
        +    int end_index = 0;
        +    for (T i = begin; i < end; i = static_cast<T>(i + step))
        +      end_index++;
        +    return end_index;
        +  }
        +
        +  // No implementation - assignment is unsupported.
        +  void operator=(const RangeGenerator& other);
        +
        +  const T begin_;
        +  const T end_;
        +  const IncrementT step_;
        +  // The index for the end() iterator. All the elements in the generated
        +  // sequence are indexed (0-based) to aid iterator comparison.
        +  const int end_index_;
        +};  // class RangeGenerator
        +
        +
        +// Generates values from a pair of STL-style iterators. Used in the
        +// ValuesIn() function. The elements are copied from the source range
        +// since the source can be located on the stack, and the generator
        +// is likely to persist beyond that stack frame.
        +template <typename T>
        +class ValuesInIteratorRangeGenerator : public ParamGeneratorInterface<T> {
        + public:
        +  template <typename ForwardIterator>
        +  ValuesInIteratorRangeGenerator(ForwardIterator begin, ForwardIterator end)
        +      : container_(begin, end) {}
        +  virtual ~ValuesInIteratorRangeGenerator() {}
        +
        +  virtual ParamIteratorInterface<T>* Begin() const {
        +    return new Iterator(this, container_.begin());
        +  }
        +  virtual ParamIteratorInterface<T>* End() const {
        +    return new Iterator(this, container_.end());
        +  }
        +
        + private:
        +  typedef typename ::std::vector<T> ContainerType;
        +
        +  class Iterator : public ParamIteratorInterface<T> {
        +   public:
        +    Iterator(const ParamGeneratorInterface<T>* base,
        +             typename ContainerType::const_iterator iterator)
        +        : base_(base), iterator_(iterator) {}
        +    virtual ~Iterator() {}
        +
        +    virtual const ParamGeneratorInterface<T>* BaseGenerator() const {
        +      return base_;
        +    }
        +    virtual void Advance() {
        +      ++iterator_;
        +      value_.reset();
        +    }
        +    virtual ParamIteratorInterface<T>* Clone() const {
        +      return new Iterator(*this);
        +    }
        +    // We need to use cached value referenced by iterator_ because *iterator_
        +    // can return a temporary object (and of type other then T), so just
        +    // having "return &*iterator_;" doesn't work.
        +    // value_ is updated here and not in Advance() because Advance()
        +    // can advance iterator_ beyond the end of the range, and we cannot
        +    // detect that fact. The client code, on the other hand, is
        +    // responsible for not calling Current() on an out-of-range iterator.
        +    virtual const T* Current() const {
        +      if (value_.get() == NULL)
        +        value_.reset(new T(*iterator_));
        +      return value_.get();
        +    }
        +    virtual bool Equals(const ParamIteratorInterface<T>& other) const {
        +      // Having the same base generator guarantees that the other
        +      // iterator is of the same type and we can downcast.
        +      GTEST_CHECK_(BaseGenerator() == other.BaseGenerator())
        +          << "The program attempted to compare iterators "
        +          << "from different generators." << std::endl;
        +      return iterator_ ==
        +          CheckedDowncastToActualType<const Iterator>(&other)->iterator_;
        +    }
        +
        +   private:
        +    Iterator(const Iterator& other)
        +          // The explicit constructor call suppresses a false warning
        +          // emitted by gcc when supplied with the -Wextra option.
        +        : ParamIteratorInterface<T>(),
        +          base_(other.base_),
        +          iterator_(other.iterator_) {}
        +
        +    const ParamGeneratorInterface<T>* const base_;
        +    typename ContainerType::const_iterator iterator_;
        +    // A cached value of *iterator_. We keep it here to allow access by
        +    // pointer in the wrapping iterator's operator->().
        +    // value_ needs to be mutable to be accessed in Current().
        +    // Use of scoped_ptr helps manage cached value's lifetime,
        +    // which is bound by the lifespan of the iterator itself.
        +    mutable scoped_ptr<const T> value_;
        +  };  // class ValuesInIteratorRangeGenerator::Iterator
        +
        +  // No implementation - assignment is unsupported.
        +  void operator=(const ValuesInIteratorRangeGenerator& other);
        +
        +  const ContainerType container_;
        +};  // class ValuesInIteratorRangeGenerator
        +
        +// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE.
        +//
        +// Default parameterized test name generator, returns a string containing the
        +// integer test parameter index.
        +template <class ParamType>
        +std::string DefaultParamName(const TestParamInfo<ParamType>& info) {
        +  Message name_stream;
        +  name_stream << info.index;
        +  return name_stream.GetString();
        +}
        +
        +// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE.
        +//
        +// Parameterized test name overload helpers, which help the
        +// INSTANTIATE_TEST_CASE_P macro choose between the default parameterized
        +// test name generator and user param name generator.
        +template <class ParamType, class ParamNameGenFunctor>
        +ParamNameGenFunctor GetParamNameGen(ParamNameGenFunctor func) {
        +  return func;
        +}
        +
        +template <class ParamType>
        +struct ParamNameGenFunc {
        +  typedef std::string Type(const TestParamInfo<ParamType>&);
        +};
        +
        +template <class ParamType>
        +typename ParamNameGenFunc<ParamType>::Type *GetParamNameGen() {
        +  return DefaultParamName;
        +}
        +
        +// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE.
        +//
        +// Stores a parameter value and later creates tests parameterized with that
        +// value.
        +template <class TestClass>
        +class ParameterizedTestFactory : public TestFactoryBase {
        + public:
        +  typedef typename TestClass::ParamType ParamType;
        +  explicit ParameterizedTestFactory(ParamType parameter) :
        +      parameter_(parameter) {}
        +  virtual Test* CreateTest() {
        +    TestClass::SetParam(&parameter_);
        +    return new TestClass();
        +  }
        +
        + private:
        +  const ParamType parameter_;
        +
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(ParameterizedTestFactory);
        +};
        +
        +// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE.
        +//
        +// TestMetaFactoryBase is a base class for meta-factories that create
        +// test factories for passing into MakeAndRegisterTestInfo function.
        +template <class ParamType>
        +class TestMetaFactoryBase {
        + public:
        +  virtual ~TestMetaFactoryBase() {}
        +
        +  virtual TestFactoryBase* CreateTestFactory(ParamType parameter) = 0;
        +};
        +
        +// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE.
        +//
        +// TestMetaFactory creates test factories for passing into
        +// MakeAndRegisterTestInfo function. Since MakeAndRegisterTestInfo receives
        +// ownership of test factory pointer, same factory object cannot be passed
        +// into that method twice. But ParameterizedTestCaseInfo is going to call
        +// it for each Test/Parameter value combination. Thus it needs meta factory
        +// creator class.
        +template <class TestCase>
        +class TestMetaFactory
        +    : public TestMetaFactoryBase<typename TestCase::ParamType> {
        + public:
        +  typedef typename TestCase::ParamType ParamType;
        +
        +  TestMetaFactory() {}
        +
        +  virtual TestFactoryBase* CreateTestFactory(ParamType parameter) {
        +    return new ParameterizedTestFactory<TestCase>(parameter);
        +  }
        +
        + private:
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(TestMetaFactory);
        +};
        +
        +// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE.
        +//
        +// ParameterizedTestCaseInfoBase is a generic interface
        +// to ParameterizedTestCaseInfo classes. ParameterizedTestCaseInfoBase
        +// accumulates test information provided by TEST_P macro invocations
        +// and generators provided by INSTANTIATE_TEST_CASE_P macro invocations
        +// and uses that information to register all resulting test instances
        +// in RegisterTests method. The ParameterizeTestCaseRegistry class holds
        +// a collection of pointers to the ParameterizedTestCaseInfo objects
        +// and calls RegisterTests() on each of them when asked.
        +class ParameterizedTestCaseInfoBase {
        + public:
        +  virtual ~ParameterizedTestCaseInfoBase() {}
        +
        +  // Base part of test case name for display purposes.
        +  virtual const string& GetTestCaseName() const = 0;
        +  // Test case id to verify identity.
        +  virtual TypeId GetTestCaseTypeId() const = 0;
        +  // UnitTest class invokes this method to register tests in this
        +  // test case right before running them in RUN_ALL_TESTS macro.
        +  // This method should not be called more then once on any single
        +  // instance of a ParameterizedTestCaseInfoBase derived class.
        +  virtual void RegisterTests() = 0;
        +
        + protected:
        +  ParameterizedTestCaseInfoBase() {}
        +
        + private:
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(ParameterizedTestCaseInfoBase);
        +};
        +
        +// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE.
        +//
        +// ParameterizedTestCaseInfo accumulates tests obtained from TEST_P
        +// macro invocations for a particular test case and generators
        +// obtained from INSTANTIATE_TEST_CASE_P macro invocations for that
        +// test case. It registers tests with all values generated by all
        +// generators when asked.
        +template <class TestCase>
        +class ParameterizedTestCaseInfo : public ParameterizedTestCaseInfoBase {
        + public:
        +  // ParamType and GeneratorCreationFunc are private types but are required
        +  // for declarations of public methods AddTestPattern() and
        +  // AddTestCaseInstantiation().
        +  typedef typename TestCase::ParamType ParamType;
        +  // A function that returns an instance of appropriate generator type.
        +  typedef ParamGenerator<ParamType>(GeneratorCreationFunc)();
        +  typedef typename ParamNameGenFunc<ParamType>::Type ParamNameGeneratorFunc;
        +
        +  explicit ParameterizedTestCaseInfo(
        +      const char* name, CodeLocation code_location)
        +      : test_case_name_(name), code_location_(code_location) {}
        +
        +  // Test case base name for display purposes.
        +  virtual const string& GetTestCaseName() const { return test_case_name_; }
        +  // Test case id to verify identity.
        +  virtual TypeId GetTestCaseTypeId() const { return GetTypeId<TestCase>(); }
        +  // TEST_P macro uses AddTestPattern() to record information
        +  // about a single test in a LocalTestInfo structure.
        +  // test_case_name is the base name of the test case (without invocation
        +  // prefix). test_base_name is the name of an individual test without
        +  // parameter index. For the test SequenceA/FooTest.DoBar/1 FooTest is
        +  // test case base name and DoBar is test base name.
        +  void AddTestPattern(const char* test_case_name,
        +                      const char* test_base_name,
        +                      TestMetaFactoryBase<ParamType>* meta_factory) {
        +    tests_.push_back(linked_ptr<TestInfo>(new TestInfo(test_case_name,
        +                                                       test_base_name,
        +                                                       meta_factory)));
        +  }
        +  // INSTANTIATE_TEST_CASE_P macro uses AddGenerator() to record information
        +  // about a generator.
        +  int AddTestCaseInstantiation(const string& instantiation_name,
        +                               GeneratorCreationFunc* func,
        +                               ParamNameGeneratorFunc* name_func,
        +                               const char* file,
        +                               int line) {
        +    instantiations_.push_back(
        +        InstantiationInfo(instantiation_name, func, name_func, file, line));
        +    return 0;  // Return value used only to run this method in namespace scope.
        +  }
        +  // UnitTest class invokes this method to register tests in this test case
        +  // test cases right before running tests in RUN_ALL_TESTS macro.
        +  // This method should not be called more then once on any single
        +  // instance of a ParameterizedTestCaseInfoBase derived class.
        +  // UnitTest has a guard to prevent from calling this method more then once.
        +  virtual void RegisterTests() {
        +    for (typename TestInfoContainer::iterator test_it = tests_.begin();
        +         test_it != tests_.end(); ++test_it) {
        +      linked_ptr<TestInfo> test_info = *test_it;
        +      for (typename InstantiationContainer::iterator gen_it =
        +               instantiations_.begin(); gen_it != instantiations_.end();
        +               ++gen_it) {
        +        const string& instantiation_name = gen_it->name;
        +        ParamGenerator<ParamType> generator((*gen_it->generator)());
        +        ParamNameGeneratorFunc* name_func = gen_it->name_func;
        +        const char* file = gen_it->file;
        +        int line = gen_it->line;
        +
        +        string test_case_name;
        +        if ( !instantiation_name.empty() )
        +          test_case_name = instantiation_name + "/";
        +        test_case_name += test_info->test_case_base_name;
        +
        +        size_t i = 0;
        +        std::set<std::string> test_param_names;
        +        for (typename ParamGenerator<ParamType>::iterator param_it =
        +                 generator.begin();
        +             param_it != generator.end(); ++param_it, ++i) {
        +          Message test_name_stream;
        +
        +          std::string param_name = name_func(
        +              TestParamInfo<ParamType>(*param_it, i));
        +
        +          GTEST_CHECK_(IsValidParamName(param_name))
        +              << "Parameterized test name '" << param_name
        +              << "' is invalid, in " << file
        +              << " line " << line << std::endl;
        +
        +          GTEST_CHECK_(test_param_names.count(param_name) == 0)
        +              << "Duplicate parameterized test name '" << param_name
        +              << "', in " << file << " line " << line << std::endl;
        +
        +          test_param_names.insert(param_name);
        +
        +          test_name_stream << test_info->test_base_name << "/" << param_name;
        +          MakeAndRegisterTestInfo(
        +              test_case_name.c_str(),
        +              test_name_stream.GetString().c_str(),
        +              NULL,  // No type parameter.
        +              PrintToString(*param_it).c_str(),
        +              code_location_,
        +              GetTestCaseTypeId(),
        +              TestCase::SetUpTestCase,
        +              TestCase::TearDownTestCase,
        +              test_info->test_meta_factory->CreateTestFactory(*param_it));
        +        }  // for param_it
        +      }  // for gen_it
        +    }  // for test_it
        +  }  // RegisterTests
        +
        + private:
        +  // LocalTestInfo structure keeps information about a single test registered
        +  // with TEST_P macro.
        +  struct TestInfo {
        +    TestInfo(const char* a_test_case_base_name,
        +             const char* a_test_base_name,
        +             TestMetaFactoryBase<ParamType>* a_test_meta_factory) :
        +        test_case_base_name(a_test_case_base_name),
        +        test_base_name(a_test_base_name),
        +        test_meta_factory(a_test_meta_factory) {}
        +
        +    const string test_case_base_name;
        +    const string test_base_name;
        +    const scoped_ptr<TestMetaFactoryBase<ParamType> > test_meta_factory;
        +  };
        +  typedef ::std::vector<linked_ptr<TestInfo> > TestInfoContainer;
        +  // Records data received from INSTANTIATE_TEST_CASE_P macros:
        +  //  <Instantiation name, Sequence generator creation function,
        +  //     Name generator function, Source file, Source line>
        +  struct InstantiationInfo {
        +      InstantiationInfo(const std::string &name_in,
        +                        GeneratorCreationFunc* generator_in,
        +                        ParamNameGeneratorFunc* name_func_in,
        +                        const char* file_in,
        +                        int line_in)
        +          : name(name_in),
        +            generator(generator_in),
        +            name_func(name_func_in),
        +            file(file_in),
        +            line(line_in) {}
        +
        +      std::string name;
        +      GeneratorCreationFunc* generator;
        +      ParamNameGeneratorFunc* name_func;
        +      const char* file;
        +      int line;
        +  };
        +  typedef ::std::vector<InstantiationInfo> InstantiationContainer;
        +
        +  static bool IsValidParamName(const std::string& name) {
        +    // Check for empty string
        +    if (name.empty())
        +      return false;
        +
        +    // Check for invalid characters
        +    for (std::string::size_type index = 0; index < name.size(); ++index) {
        +      if (!isalnum(name[index]) && name[index] != '_')
        +        return false;
        +    }
        +
        +    return true;
        +  }
        +
        +  const string test_case_name_;
        +  CodeLocation code_location_;
        +  TestInfoContainer tests_;
        +  InstantiationContainer instantiations_;
        +
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(ParameterizedTestCaseInfo);
        +};  // class ParameterizedTestCaseInfo
        +
        +// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE.
        +//
        +// ParameterizedTestCaseRegistry contains a map of ParameterizedTestCaseInfoBase
        +// classes accessed by test case names. TEST_P and INSTANTIATE_TEST_CASE_P
        +// macros use it to locate their corresponding ParameterizedTestCaseInfo
        +// descriptors.
        +class ParameterizedTestCaseRegistry {
        + public:
        +  ParameterizedTestCaseRegistry() {}
        +  ~ParameterizedTestCaseRegistry() {
        +    for (TestCaseInfoContainer::iterator it = test_case_infos_.begin();
        +         it != test_case_infos_.end(); ++it) {
        +      delete *it;
        +    }
        +  }
        +
        +  // Looks up or creates and returns a structure containing information about
        +  // tests and instantiations of a particular test case.
        +  template <class TestCase>
        +  ParameterizedTestCaseInfo<TestCase>* GetTestCasePatternHolder(
        +      const char* test_case_name,
        +      CodeLocation code_location) {
        +    ParameterizedTestCaseInfo<TestCase>* typed_test_info = NULL;
        +    for (TestCaseInfoContainer::iterator it = test_case_infos_.begin();
        +         it != test_case_infos_.end(); ++it) {
        +      if ((*it)->GetTestCaseName() == test_case_name) {
        +        if ((*it)->GetTestCaseTypeId() != GetTypeId<TestCase>()) {
        +          // Complain about incorrect usage of Google Test facilities
        +          // and terminate the program since we cannot guaranty correct
        +          // test case setup and tear-down in this case.
        +          ReportInvalidTestCaseType(test_case_name, code_location);
        +          posix::Abort();
        +        } else {
        +          // At this point we are sure that the object we found is of the same
        +          // type we are looking for, so we downcast it to that type
        +          // without further checks.
        +          typed_test_info = CheckedDowncastToActualType<
        +              ParameterizedTestCaseInfo<TestCase> >(*it);
        +        }
        +        break;
        +      }
        +    }
        +    if (typed_test_info == NULL) {
        +      typed_test_info = new ParameterizedTestCaseInfo<TestCase>(
        +          test_case_name, code_location);
        +      test_case_infos_.push_back(typed_test_info);
        +    }
        +    return typed_test_info;
        +  }
        +  void RegisterTests() {
        +    for (TestCaseInfoContainer::iterator it = test_case_infos_.begin();
        +         it != test_case_infos_.end(); ++it) {
        +      (*it)->RegisterTests();
        +    }
        +  }
        +
        + private:
        +  typedef ::std::vector<ParameterizedTestCaseInfoBase*> TestCaseInfoContainer;
        +
        +  TestCaseInfoContainer test_case_infos_;
        +
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(ParameterizedTestCaseRegistry);
        +};
        +
        +}  // namespace internal
        +}  // namespace testing
        +
        +#endif  //  GTEST_HAS_PARAM_TEST
        +
        +#endif  // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_H_
        diff --git a/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-port-arch.h b/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-port-arch.h
        new file mode 100644
        index 0000000..74ab949
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-port-arch.h
        @@ -0,0 +1,93 @@
        +// Copyright 2015, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// The Google C++ Testing Framework (Google Test)
        +//
        +// This header file defines the GTEST_OS_* macro.
        +// It is separate from gtest-port.h so that custom/gtest-port.h can include it.
        +
        +#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_ARCH_H_
        +#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_ARCH_H_
        +
        +// Determines the platform on which Google Test is compiled.
        +#ifdef __CYGWIN__
        +# define GTEST_OS_CYGWIN 1
        +#elif defined __SYMBIAN32__
        +# define GTEST_OS_SYMBIAN 1
        +#elif defined _WIN32
        +# define GTEST_OS_WINDOWS 1
        +# ifdef _WIN32_WCE
        +#  define GTEST_OS_WINDOWS_MOBILE 1
        +# elif defined(__MINGW__) || defined(__MINGW32__)
        +#  define GTEST_OS_WINDOWS_MINGW 1
        +# elif defined(WINAPI_FAMILY)
        +#  include <winapifamily.h>
        +#  if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
        +#   define GTEST_OS_WINDOWS_DESKTOP 1
        +#  elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_PHONE_APP)
        +#   define GTEST_OS_WINDOWS_PHONE 1
        +#  elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
        +#   define GTEST_OS_WINDOWS_RT 1
        +#  else
        +    // WINAPI_FAMILY defined but no known partition matched.
        +    // Default to desktop.
        +#   define GTEST_OS_WINDOWS_DESKTOP 1
        +#  endif
        +# else
        +#  define GTEST_OS_WINDOWS_DESKTOP 1
        +# endif  // _WIN32_WCE
        +#elif defined __APPLE__
        +# define GTEST_OS_MAC 1
        +# if TARGET_OS_IPHONE
        +#  define GTEST_OS_IOS 1
        +# endif
        +#elif defined __FreeBSD__
        +# define GTEST_OS_FREEBSD 1
        +#elif defined __linux__
        +# define GTEST_OS_LINUX 1
        +# if defined __ANDROID__
        +#  define GTEST_OS_LINUX_ANDROID 1
        +# endif
        +#elif defined __MVS__
        +# define GTEST_OS_ZOS 1
        +#elif defined(__sun) && defined(__SVR4)
        +# define GTEST_OS_SOLARIS 1
        +#elif defined(_AIX)
        +# define GTEST_OS_AIX 1
        +#elif defined(__hpux)
        +# define GTEST_OS_HPUX 1
        +#elif defined __native_client__
        +# define GTEST_OS_NACL 1
        +#elif defined __OpenBSD__
        +# define GTEST_OS_OPENBSD 1
        +#elif defined __QNX__
        +# define GTEST_OS_QNX 1
        +#endif  // __CYGWIN__
        +
        +#endif  // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_ARCH_H_
        diff --git a/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-port.h b/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-port.h
        new file mode 100644
        index 0000000..d768bd6
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-port.h
        @@ -0,0 +1,2559 @@
        +// Copyright 2005, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Authors: wan@google.com (Zhanyong Wan)
        +//
        +// Low-level types and utilities for porting Google Test to various
        +// platforms.  All macros ending with _ and symbols defined in an
        +// internal namespace are subject to change without notice.  Code
        +// outside Google Test MUST NOT USE THEM DIRECTLY.  Macros that don't
        +// end with _ are part of Google Test's public API and can be used by
        +// code outside Google Test.
        +//
        +// This file is fundamental to Google Test.  All other Google Test source
        +// files are expected to #include this.  Therefore, it cannot #include
        +// any other Google Test header.
        +
        +#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_H_
        +#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_H_
        +
        +// Environment-describing macros
        +// -----------------------------
        +//
        +// Google Test can be used in many different environments.  Macros in
        +// this section tell Google Test what kind of environment it is being
        +// used in, such that Google Test can provide environment-specific
        +// features and implementations.
        +//
        +// Google Test tries to automatically detect the properties of its
        +// environment, so users usually don't need to worry about these
        +// macros.  However, the automatic detection is not perfect.
        +// Sometimes it's necessary for a user to define some of the following
        +// macros in the build script to override Google Test's decisions.
        +//
        +// If the user doesn't define a macro in the list, Google Test will
        +// provide a default definition.  After this header is #included, all
        +// macros in this list will be defined to either 1 or 0.
        +//
        +// Notes to maintainers:
        +//   - Each macro here is a user-tweakable knob; do not grow the list
        +//     lightly.
        +//   - Use #if to key off these macros.  Don't use #ifdef or "#if
        +//     defined(...)", which will not work as these macros are ALWAYS
        +//     defined.
        +//
        +//   GTEST_HAS_CLONE          - Define it to 1/0 to indicate that clone(2)
        +//                              is/isn't available.
        +//   GTEST_HAS_EXCEPTIONS     - Define it to 1/0 to indicate that exceptions
        +//                              are enabled.
        +//   GTEST_HAS_GLOBAL_STRING  - Define it to 1/0 to indicate that ::string
        +//                              is/isn't available (some systems define
        +//                              ::string, which is different to std::string).
        +//   GTEST_HAS_GLOBAL_WSTRING - Define it to 1/0 to indicate that ::string
        +//                              is/isn't available (some systems define
        +//                              ::wstring, which is different to std::wstring).
        +//   GTEST_HAS_POSIX_RE       - Define it to 1/0 to indicate that POSIX regular
        +//                              expressions are/aren't available.
        +//   GTEST_HAS_PTHREAD        - Define it to 1/0 to indicate that <pthread.h>
        +//                              is/isn't available.
        +//   GTEST_HAS_RTTI           - Define it to 1/0 to indicate that RTTI is/isn't
        +//                              enabled.
        +//   GTEST_HAS_STD_WSTRING    - Define it to 1/0 to indicate that
        +//                              std::wstring does/doesn't work (Google Test can
        +//                              be used where std::wstring is unavailable).
        +//   GTEST_HAS_TR1_TUPLE      - Define it to 1/0 to indicate tr1::tuple
        +//                              is/isn't available.
        +//   GTEST_HAS_SEH            - Define it to 1/0 to indicate whether the
        +//                              compiler supports Microsoft's "Structured
        +//                              Exception Handling".
        +//   GTEST_HAS_STREAM_REDIRECTION
        +//                            - Define it to 1/0 to indicate whether the
        +//                              platform supports I/O stream redirection using
        +//                              dup() and dup2().
        +//   GTEST_USE_OWN_TR1_TUPLE  - Define it to 1/0 to indicate whether Google
        +//                              Test's own tr1 tuple implementation should be
        +//                              used.  Unused when the user sets
        +//                              GTEST_HAS_TR1_TUPLE to 0.
        +//   GTEST_LANG_CXX11         - Define it to 1/0 to indicate that Google Test
        +//                              is building in C++11/C++98 mode.
        +//   GTEST_LINKED_AS_SHARED_LIBRARY
        +//                            - Define to 1 when compiling tests that use
        +//                              Google Test as a shared library (known as
        +//                              DLL on Windows).
        +//   GTEST_CREATE_SHARED_LIBRARY
        +//                            - Define to 1 when compiling Google Test itself
        +//                              as a shared library.
        +
        +// Platform-indicating macros
        +// --------------------------
        +//
        +// Macros indicating the platform on which Google Test is being used
        +// (a macro is defined to 1 if compiled on the given platform;
        +// otherwise UNDEFINED -- it's never defined to 0.).  Google Test
        +// defines these macros automatically.  Code outside Google Test MUST
        +// NOT define them.
        +//
        +//   GTEST_OS_AIX      - IBM AIX
        +//   GTEST_OS_CYGWIN   - Cygwin
        +//   GTEST_OS_FREEBSD  - FreeBSD
        +//   GTEST_OS_HPUX     - HP-UX
        +//   GTEST_OS_LINUX    - Linux
        +//     GTEST_OS_LINUX_ANDROID - Google Android
        +//   GTEST_OS_MAC      - Mac OS X
        +//     GTEST_OS_IOS    - iOS
        +//   GTEST_OS_NACL     - Google Native Client (NaCl)
        +//   GTEST_OS_OPENBSD  - OpenBSD
        +//   GTEST_OS_QNX      - QNX
        +//   GTEST_OS_SOLARIS  - Sun Solaris
        +//   GTEST_OS_SYMBIAN  - Symbian
        +//   GTEST_OS_WINDOWS  - Windows (Desktop, MinGW, or Mobile)
        +//     GTEST_OS_WINDOWS_DESKTOP  - Windows Desktop
        +//     GTEST_OS_WINDOWS_MINGW    - MinGW
        +//     GTEST_OS_WINDOWS_MOBILE   - Windows Mobile
        +//     GTEST_OS_WINDOWS_PHONE    - Windows Phone
        +//     GTEST_OS_WINDOWS_RT       - Windows Store App/WinRT
        +//   GTEST_OS_ZOS      - z/OS
        +//
        +// Among the platforms, Cygwin, Linux, Max OS X, and Windows have the
        +// most stable support.  Since core members of the Google Test project
        +// don't have access to other platforms, support for them may be less
        +// stable.  If you notice any problems on your platform, please notify
        +// googletestframework@googlegroups.com (patches for fixing them are
        +// even more welcome!).
        +//
        +// It is possible that none of the GTEST_OS_* macros are defined.
        +
        +// Feature-indicating macros
        +// -------------------------
        +//
        +// Macros indicating which Google Test features are available (a macro
        +// is defined to 1 if the corresponding feature is supported;
        +// otherwise UNDEFINED -- it's never defined to 0.).  Google Test
        +// defines these macros automatically.  Code outside Google Test MUST
        +// NOT define them.
        +//
        +// These macros are public so that portable tests can be written.
        +// Such tests typically surround code using a feature with an #if
        +// which controls that code.  For example:
        +//
        +// #if GTEST_HAS_DEATH_TEST
        +//   EXPECT_DEATH(DoSomethingDeadly());
        +// #endif
        +//
        +//   GTEST_HAS_COMBINE      - the Combine() function (for value-parameterized
        +//                            tests)
        +//   GTEST_HAS_DEATH_TEST   - death tests
        +//   GTEST_HAS_PARAM_TEST   - value-parameterized tests
        +//   GTEST_HAS_TYPED_TEST   - typed tests
        +//   GTEST_HAS_TYPED_TEST_P - type-parameterized tests
        +//   GTEST_IS_THREADSAFE    - Google Test is thread-safe.
        +//   GTEST_USES_POSIX_RE    - enhanced POSIX regex is used. Do not confuse with
        +//                            GTEST_HAS_POSIX_RE (see above) which users can
        +//                            define themselves.
        +//   GTEST_USES_SIMPLE_RE   - our own simple regex is used;
        +//                            the above two are mutually exclusive.
        +//   GTEST_CAN_COMPARE_NULL - accepts untyped NULL in EXPECT_EQ().
        +
        +// Misc public macros
        +// ------------------
        +//
        +//   GTEST_FLAG(flag_name)  - references the variable corresponding to
        +//                            the given Google Test flag.
        +
        +// Internal utilities
        +// ------------------
        +//
        +// The following macros and utilities are for Google Test's INTERNAL
        +// use only.  Code outside Google Test MUST NOT USE THEM DIRECTLY.
        +//
        +// Macros for basic C++ coding:
        +//   GTEST_AMBIGUOUS_ELSE_BLOCKER_ - for disabling a gcc warning.
        +//   GTEST_ATTRIBUTE_UNUSED_  - declares that a class' instances or a
        +//                              variable don't have to be used.
        +//   GTEST_DISALLOW_ASSIGN_   - disables operator=.
        +//   GTEST_DISALLOW_COPY_AND_ASSIGN_ - disables copy ctor and operator=.
        +//   GTEST_MUST_USE_RESULT_   - declares that a function's result must be used.
        +//   GTEST_INTENTIONAL_CONST_COND_PUSH_ - start code section where MSVC C4127 is
        +//                                        suppressed (constant conditional).
        +//   GTEST_INTENTIONAL_CONST_COND_POP_  - finish code section where MSVC C4127
        +//                                        is suppressed.
        +//
        +// C++11 feature wrappers:
        +//
        +//   testing::internal::move  - portability wrapper for std::move.
        +//
        +// Synchronization:
        +//   Mutex, MutexLock, ThreadLocal, GetThreadCount()
        +//                            - synchronization primitives.
        +//
        +// Template meta programming:
        +//   is_pointer     - as in TR1; needed on Symbian and IBM XL C/C++ only.
        +//   IteratorTraits - partial implementation of std::iterator_traits, which
        +//                    is not available in libCstd when compiled with Sun C++.
        +//
        +// Smart pointers:
        +//   scoped_ptr     - as in TR2.
        +//
        +// Regular expressions:
        +//   RE             - a simple regular expression class using the POSIX
        +//                    Extended Regular Expression syntax on UNIX-like
        +//                    platforms, or a reduced regular exception syntax on
        +//                    other platforms, including Windows.
        +//
        +// Logging:
        +//   GTEST_LOG_()   - logs messages at the specified severity level.
        +//   LogToStderr()  - directs all log messages to stderr.
        +//   FlushInfoLog() - flushes informational log messages.
        +//
        +// Stdout and stderr capturing:
        +//   CaptureStdout()     - starts capturing stdout.
        +//   GetCapturedStdout() - stops capturing stdout and returns the captured
        +//                         string.
        +//   CaptureStderr()     - starts capturing stderr.
        +//   GetCapturedStderr() - stops capturing stderr and returns the captured
        +//                         string.
        +//
        +// Integer types:
        +//   TypeWithSize   - maps an integer to a int type.
        +//   Int32, UInt32, Int64, UInt64, TimeInMillis
        +//                  - integers of known sizes.
        +//   BiggestInt     - the biggest signed integer type.
        +//
        +// Command-line utilities:
        +//   GTEST_DECLARE_*()  - declares a flag.
        +//   GTEST_DEFINE_*()   - defines a flag.
        +//   GetInjectableArgvs() - returns the command line as a vector of strings.
        +//
        +// Environment variable utilities:
        +//   GetEnv()             - gets the value of an environment variable.
        +//   BoolFromGTestEnv()   - parses a bool environment variable.
        +//   Int32FromGTestEnv()  - parses an Int32 environment variable.
        +//   StringFromGTestEnv() - parses a string environment variable.
        +
        +#include <ctype.h>   // for isspace, etc
        +#include <stddef.h>  // for ptrdiff_t
        +#include <stdlib.h>
        +#include <stdio.h>
        +#include <string.h>
        +#ifndef _WIN32_WCE
        +# include <sys/types.h>
        +# include <sys/stat.h>
        +#endif  // !_WIN32_WCE
        +
        +#if defined __APPLE__
        +# include <AvailabilityMacros.h>
        +# include <TargetConditionals.h>
        +#endif
        +
        +#include <algorithm>  // NOLINT
        +#include <iostream>  // NOLINT
        +#include <sstream>  // NOLINT
        +#include <string>  // NOLINT
        +#include <utility>
        +#include <vector>  // NOLINT
        +
        +#include "gtest/internal/gtest-port-arch.h"
        +#include "gtest/internal/custom/gtest-port.h"
        +
        +#if !defined(GTEST_DEV_EMAIL_)
        +# define GTEST_DEV_EMAIL_ "googletestframework@@googlegroups.com"
        +# define GTEST_FLAG_PREFIX_ "gtest_"
        +# define GTEST_FLAG_PREFIX_DASH_ "gtest-"
        +# define GTEST_FLAG_PREFIX_UPPER_ "GTEST_"
        +# define GTEST_NAME_ "Google Test"
        +# define GTEST_PROJECT_URL_ "http://code.google.com/p/googletest/"
        +#endif  // !defined(GTEST_DEV_EMAIL_)
        +
        +#if !defined(GTEST_INIT_GOOGLE_TEST_NAME_)
        +# define GTEST_INIT_GOOGLE_TEST_NAME_ "testing::InitGoogleTest"
        +#endif  // !defined(GTEST_INIT_GOOGLE_TEST_NAME_)
        +
        +// Determines the version of gcc that is used to compile this.
        +#ifdef __GNUC__
        +// 40302 means version 4.3.2.
        +# define GTEST_GCC_VER_ \
        +    (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__)
        +#endif  // __GNUC__
        +
        +// Macros for disabling Microsoft Visual C++ warnings.
        +//
        +//   GTEST_DISABLE_MSC_WARNINGS_PUSH_(4800 4385)
        +//   /* code that triggers warnings C4800 and C4385 */
        +//   GTEST_DISABLE_MSC_WARNINGS_POP_()
        +#if _MSC_VER >= 1500
        +# define GTEST_DISABLE_MSC_WARNINGS_PUSH_(warnings) \
        +    __pragma(warning(push))                        \
        +    __pragma(warning(disable: warnings))
        +# define GTEST_DISABLE_MSC_WARNINGS_POP_()          \
        +    __pragma(warning(pop))
        +#else
        +// Older versions of MSVC don't have __pragma.
        +# define GTEST_DISABLE_MSC_WARNINGS_PUSH_(warnings)
        +# define GTEST_DISABLE_MSC_WARNINGS_POP_()
        +#endif
        +
        +#ifndef GTEST_LANG_CXX11
        +// gcc and clang define __GXX_EXPERIMENTAL_CXX0X__ when
        +// -std={c,gnu}++{0x,11} is passed.  The C++11 standard specifies a
        +// value for __cplusplus, and recent versions of clang, gcc, and
        +// probably other compilers set that too in C++11 mode.
        +# if __GXX_EXPERIMENTAL_CXX0X__ || __cplusplus >= 201103L
        +// Compiling in at least C++11 mode.
        +#  define GTEST_LANG_CXX11 1
        +# else
        +#  define GTEST_LANG_CXX11 0
        +# endif
        +#endif
        +
        +// Distinct from C++11 language support, some environments don't provide
        +// proper C++11 library support. Notably, it's possible to build in
        +// C++11 mode when targeting Mac OS X 10.6, which has an old libstdc++
        +// with no C++11 support.
        +//
        +// libstdc++ has sufficient C++11 support as of GCC 4.6.0, __GLIBCXX__
        +// 20110325, but maintenance releases in the 4.4 and 4.5 series followed
        +// this date, so check for those versions by their date stamps.
        +// https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html#abi.versioning
        +#if GTEST_LANG_CXX11 && \
        +    (!defined(__GLIBCXX__) || ( \
        +        __GLIBCXX__ >= 20110325ul &&  /* GCC >= 4.6.0 */ \
        +        /* Blacklist of patch releases of older branches: */ \
        +        __GLIBCXX__ != 20110416ul &&  /* GCC 4.4.6 */ \
        +        __GLIBCXX__ != 20120313ul &&  /* GCC 4.4.7 */ \
        +        __GLIBCXX__ != 20110428ul &&  /* GCC 4.5.3 */ \
        +        __GLIBCXX__ != 20120702ul))   /* GCC 4.5.4 */
        +# define GTEST_STDLIB_CXX11 1
        +#endif
        +
        +// Only use C++11 library features if the library provides them.
        +#if GTEST_STDLIB_CXX11
        +# define GTEST_HAS_STD_BEGIN_AND_END_ 1
        +# define GTEST_HAS_STD_FORWARD_LIST_ 1
        +# define GTEST_HAS_STD_FUNCTION_ 1
        +# define GTEST_HAS_STD_INITIALIZER_LIST_ 1
        +# define GTEST_HAS_STD_MOVE_ 1
        +# define GTEST_HAS_STD_UNIQUE_PTR_ 1
        +# define GTEST_HAS_STD_SHARED_PTR_ 1
        +#endif
        +
        +// C++11 specifies that <tuple> provides std::tuple.
        +// Some platforms still might not have it, however.
        +#if GTEST_LANG_CXX11
        +# define GTEST_HAS_STD_TUPLE_ 1
        +# if defined(__clang__)
        +// Inspired by http://clang.llvm.org/docs/LanguageExtensions.html#__has_include
        +#  if defined(__has_include) && !__has_include(<tuple>)
        +#   undef GTEST_HAS_STD_TUPLE_
        +#  endif
        +# elif defined(_MSC_VER)
        +// Inspired by boost/config/stdlib/dinkumware.hpp
        +#  if defined(_CPPLIB_VER) && _CPPLIB_VER < 520
        +#   undef GTEST_HAS_STD_TUPLE_
        +#  endif
        +# elif defined(__GLIBCXX__)
        +// Inspired by boost/config/stdlib/libstdcpp3.hpp,
        +// http://gcc.gnu.org/gcc-4.2/changes.html and
        +// http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt01ch01.html#manual.intro.status.standard.200x
        +#  if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 2)
        +#   undef GTEST_HAS_STD_TUPLE_
        +#  endif
        +# endif
        +#endif
        +
        +// Brings in definitions for functions used in the testing::internal::posix
        +// namespace (read, write, close, chdir, isatty, stat). We do not currently
        +// use them on Windows Mobile.
        +#if GTEST_OS_WINDOWS
        +# if !GTEST_OS_WINDOWS_MOBILE
        +#  include <direct.h>
        +#  include <io.h>
        +# endif
        +// In order to avoid having to include <windows.h>, use forward declaration
        +// assuming CRITICAL_SECTION is a typedef of _RTL_CRITICAL_SECTION.
        +// This assumption is verified by
        +// WindowsTypesTest.CRITICAL_SECTIONIs_RTL_CRITICAL_SECTION.
        +struct _RTL_CRITICAL_SECTION;
        +#else
        +// This assumes that non-Windows OSes provide unistd.h. For OSes where this
        +// is not the case, we need to include headers that provide the functions
        +// mentioned above.
        +# include <unistd.h>
        +# include <strings.h>
        +#endif  // GTEST_OS_WINDOWS
        +
        +#if GTEST_OS_LINUX_ANDROID
        +// Used to define __ANDROID_API__ matching the target NDK API level.
        +#  include <android/api-level.h>  // NOLINT
        +#endif
        +
        +// Defines this to true iff Google Test can use POSIX regular expressions.
        +#ifndef GTEST_HAS_POSIX_RE
        +# if GTEST_OS_LINUX_ANDROID
        +// On Android, <regex.h> is only available starting with Gingerbread.
        +#  define GTEST_HAS_POSIX_RE (__ANDROID_API__ >= 9)
        +# else
        +#  define GTEST_HAS_POSIX_RE (!GTEST_OS_WINDOWS)
        +# endif
        +#endif
        +
        +#if GTEST_USES_PCRE
        +// The appropriate headers have already been included.
        +
        +#elif GTEST_HAS_POSIX_RE
        +
        +// On some platforms, <regex.h> needs someone to define size_t, and
        +// won't compile otherwise.  We can #include it here as we already
        +// included <stdlib.h>, which is guaranteed to define size_t through
        +// <stddef.h>.
        +# include <regex.h>  // NOLINT
        +
        +# define GTEST_USES_POSIX_RE 1
        +
        +#elif GTEST_OS_WINDOWS
        +
        +// <regex.h> is not available on Windows.  Use our own simple regex
        +// implementation instead.
        +# define GTEST_USES_SIMPLE_RE 1
        +
        +#else
        +
        +// <regex.h> may not be available on this platform.  Use our own
        +// simple regex implementation instead.
        +# define GTEST_USES_SIMPLE_RE 1
        +
        +#endif  // GTEST_USES_PCRE
        +
        +#ifndef GTEST_HAS_EXCEPTIONS
        +// The user didn't tell us whether exceptions are enabled, so we need
        +// to figure it out.
        +# if defined(_MSC_VER) || defined(__BORLANDC__)
        +// MSVC's and C++Builder's implementations of the STL use the _HAS_EXCEPTIONS
        +// macro to enable exceptions, so we'll do the same.
        +// Assumes that exceptions are enabled by default.
        +#  ifndef _HAS_EXCEPTIONS
        +#   define _HAS_EXCEPTIONS 1
        +#  endif  // _HAS_EXCEPTIONS
        +#  define GTEST_HAS_EXCEPTIONS _HAS_EXCEPTIONS
        +# elif defined(__clang__)
        +// clang defines __EXCEPTIONS iff exceptions are enabled before clang 220714,
        +// but iff cleanups are enabled after that. In Obj-C++ files, there can be
        +// cleanups for ObjC exceptions which also need cleanups, even if C++ exceptions
        +// are disabled. clang has __has_feature(cxx_exceptions) which checks for C++
        +// exceptions starting at clang r206352, but which checked for cleanups prior to
        +// that. To reliably check for C++ exception availability with clang, check for
        +// __EXCEPTIONS && __has_feature(cxx_exceptions).
        +#  define GTEST_HAS_EXCEPTIONS (__EXCEPTIONS && __has_feature(cxx_exceptions))
        +# elif defined(__GNUC__) && __EXCEPTIONS
        +// gcc defines __EXCEPTIONS to 1 iff exceptions are enabled.
        +#  define GTEST_HAS_EXCEPTIONS 1
        +# elif defined(__SUNPRO_CC)
        +// Sun Pro CC supports exceptions.  However, there is no compile-time way of
        +// detecting whether they are enabled or not.  Therefore, we assume that
        +// they are enabled unless the user tells us otherwise.
        +#  define GTEST_HAS_EXCEPTIONS 1
        +# elif defined(__IBMCPP__) && __EXCEPTIONS
        +// xlC defines __EXCEPTIONS to 1 iff exceptions are enabled.
        +#  define GTEST_HAS_EXCEPTIONS 1
        +# elif defined(__HP_aCC)
        +// Exception handling is in effect by default in HP aCC compiler. It has to
        +// be turned of by +noeh compiler option if desired.
        +#  define GTEST_HAS_EXCEPTIONS 1
        +# else
        +// For other compilers, we assume exceptions are disabled to be
        +// conservative.
        +#  define GTEST_HAS_EXCEPTIONS 0
        +# endif  // defined(_MSC_VER) || defined(__BORLANDC__)
        +#endif  // GTEST_HAS_EXCEPTIONS
        +
        +#if !defined(GTEST_HAS_STD_STRING)
        +// Even though we don't use this macro any longer, we keep it in case
        +// some clients still depend on it.
        +# define GTEST_HAS_STD_STRING 1
        +#elif !GTEST_HAS_STD_STRING
        +// The user told us that ::std::string isn't available.
        +# error "Google Test cannot be used where ::std::string isn't available."
        +#endif  // !defined(GTEST_HAS_STD_STRING)
        +
        +#ifndef GTEST_HAS_GLOBAL_STRING
        +// The user didn't tell us whether ::string is available, so we need
        +// to figure it out.
        +
        +# define GTEST_HAS_GLOBAL_STRING 0
        +
        +#endif  // GTEST_HAS_GLOBAL_STRING
        +
        +#ifndef GTEST_HAS_STD_WSTRING
        +// The user didn't tell us whether ::std::wstring is available, so we need
        +// to figure it out.
        +// TODO(wan@google.com): uses autoconf to detect whether ::std::wstring
        +//   is available.
        +
        +// Cygwin 1.7 and below doesn't support ::std::wstring.
        +// Solaris' libc++ doesn't support it either.  Android has
        +// no support for it at least as recent as Froyo (2.2).
        +# define GTEST_HAS_STD_WSTRING \
        +    (!(GTEST_OS_LINUX_ANDROID || GTEST_OS_CYGWIN || GTEST_OS_SOLARIS))
        +
        +#endif  // GTEST_HAS_STD_WSTRING
        +
        +#ifndef GTEST_HAS_GLOBAL_WSTRING
        +// The user didn't tell us whether ::wstring is available, so we need
        +// to figure it out.
        +# define GTEST_HAS_GLOBAL_WSTRING \
        +    (GTEST_HAS_STD_WSTRING && GTEST_HAS_GLOBAL_STRING)
        +#endif  // GTEST_HAS_GLOBAL_WSTRING
        +
        +// Determines whether RTTI is available.
        +#ifndef GTEST_HAS_RTTI
        +// The user didn't tell us whether RTTI is enabled, so we need to
        +// figure it out.
        +
        +# ifdef _MSC_VER
        +
        +#  ifdef _CPPRTTI  // MSVC defines this macro iff RTTI is enabled.
        +#   define GTEST_HAS_RTTI 1
        +#  else
        +#   define GTEST_HAS_RTTI 0
        +#  endif
        +
        +// Starting with version 4.3.2, gcc defines __GXX_RTTI iff RTTI is enabled.
        +# elif defined(__GNUC__) && (GTEST_GCC_VER_ >= 40302)
        +
        +#  ifdef __GXX_RTTI
        +// When building against STLport with the Android NDK and with
        +// -frtti -fno-exceptions, the build fails at link time with undefined
        +// references to __cxa_bad_typeid. Note sure if STL or toolchain bug,
        +// so disable RTTI when detected.
        +#   if GTEST_OS_LINUX_ANDROID && defined(_STLPORT_MAJOR) && \
        +       !defined(__EXCEPTIONS)
        +#    define GTEST_HAS_RTTI 0
        +#   else
        +#    define GTEST_HAS_RTTI 1
        +#   endif  // GTEST_OS_LINUX_ANDROID && __STLPORT_MAJOR && !__EXCEPTIONS
        +#  else
        +#   define GTEST_HAS_RTTI 0
        +#  endif  // __GXX_RTTI
        +
        +// Clang defines __GXX_RTTI starting with version 3.0, but its manual recommends
        +// using has_feature instead. has_feature(cxx_rtti) is supported since 2.7, the
        +// first version with C++ support.
        +# elif defined(__clang__)
        +
        +#  define GTEST_HAS_RTTI __has_feature(cxx_rtti)
        +
        +// Starting with version 9.0 IBM Visual Age defines __RTTI_ALL__ to 1 if
        +// both the typeid and dynamic_cast features are present.
        +# elif defined(__IBMCPP__) && (__IBMCPP__ >= 900)
        +
        +#  ifdef __RTTI_ALL__
        +#   define GTEST_HAS_RTTI 1
        +#  else
        +#   define GTEST_HAS_RTTI 0
        +#  endif
        +
        +# else
        +
        +// For all other compilers, we assume RTTI is enabled.
        +#  define GTEST_HAS_RTTI 1
        +
        +# endif  // _MSC_VER
        +
        +#endif  // GTEST_HAS_RTTI
        +
        +// It's this header's responsibility to #include <typeinfo> when RTTI
        +// is enabled.
        +#if GTEST_HAS_RTTI
        +# include <typeinfo>
        +#endif
        +
        +// Determines whether Google Test can use the pthreads library.
        +#ifndef GTEST_HAS_PTHREAD
        +// The user didn't tell us explicitly, so we make reasonable assumptions about
        +// which platforms have pthreads support.
        +//
        +// To disable threading support in Google Test, add -DGTEST_HAS_PTHREAD=0
        +// to your compiler flags.
        +# define GTEST_HAS_PTHREAD (GTEST_OS_LINUX || GTEST_OS_MAC || GTEST_OS_HPUX \
        +    || GTEST_OS_QNX || GTEST_OS_FREEBSD || GTEST_OS_NACL)
        +#endif  // GTEST_HAS_PTHREAD
        +
        +#if GTEST_HAS_PTHREAD
        +// gtest-port.h guarantees to #include <pthread.h> when GTEST_HAS_PTHREAD is
        +// true.
        +# include <pthread.h>  // NOLINT
        +
        +// For timespec and nanosleep, used below.
        +# include <time.h>  // NOLINT
        +#endif
        +
        +// Determines if hash_map/hash_set are available.
        +// Only used for testing against those containers.
        +#if !defined(GTEST_HAS_HASH_MAP_)
        +# if _MSC_VER
        +#  define GTEST_HAS_HASH_MAP_ 1  // Indicates that hash_map is available.
        +#  define GTEST_HAS_HASH_SET_ 1  // Indicates that hash_set is available.
        +# endif  // _MSC_VER
        +#endif  // !defined(GTEST_HAS_HASH_MAP_)
        +
        +// Determines whether Google Test can use tr1/tuple.  You can define
        +// this macro to 0 to prevent Google Test from using tuple (any
        +// feature depending on tuple with be disabled in this mode).
        +#ifndef GTEST_HAS_TR1_TUPLE
        +# if GTEST_OS_LINUX_ANDROID && defined(_STLPORT_MAJOR)
        +// STLport, provided with the Android NDK, has neither <tr1/tuple> or <tuple>.
        +#  define GTEST_HAS_TR1_TUPLE 0
        +# else
        +// The user didn't tell us not to do it, so we assume it's OK.
        +#  define GTEST_HAS_TR1_TUPLE 1
        +# endif
        +#endif  // GTEST_HAS_TR1_TUPLE
        +
        +// Determines whether Google Test's own tr1 tuple implementation
        +// should be used.
        +#ifndef GTEST_USE_OWN_TR1_TUPLE
        +// The user didn't tell us, so we need to figure it out.
        +
        +// We use our own TR1 tuple if we aren't sure the user has an
        +// implementation of it already.  At this time, libstdc++ 4.0.0+ and
        +// MSVC 2010 are the only mainstream standard libraries that come
        +// with a TR1 tuple implementation.  NVIDIA's CUDA NVCC compiler
        +// pretends to be GCC by defining __GNUC__ and friends, but cannot
        +// compile GCC's tuple implementation.  MSVC 2008 (9.0) provides TR1
        +// tuple in a 323 MB Feature Pack download, which we cannot assume the
        +// user has.  QNX's QCC compiler is a modified GCC but it doesn't
        +// support TR1 tuple.  libc++ only provides std::tuple, in C++11 mode,
        +// and it can be used with some compilers that define __GNUC__.
        +# if (defined(__GNUC__) && !defined(__CUDACC__) && (GTEST_GCC_VER_ >= 40000) \
        +      && !GTEST_OS_QNX && !defined(_LIBCPP_VERSION)) || _MSC_VER >= 1600
        +#  define GTEST_ENV_HAS_TR1_TUPLE_ 1
        +# endif
        +
        +// C++11 specifies that <tuple> provides std::tuple. Use that if gtest is used
        +// in C++11 mode and libstdc++ isn't very old (binaries targeting OS X 10.6
        +// can build with clang but need to use gcc4.2's libstdc++).
        +# if GTEST_LANG_CXX11 && (!defined(__GLIBCXX__) || __GLIBCXX__ > 20110325)
        +#  define GTEST_ENV_HAS_STD_TUPLE_ 1
        +# endif
        +
        +# if GTEST_ENV_HAS_TR1_TUPLE_ || GTEST_ENV_HAS_STD_TUPLE_
        +#  define GTEST_USE_OWN_TR1_TUPLE 0
        +# else
        +#  define GTEST_USE_OWN_TR1_TUPLE 1
        +# endif
        +
        +#endif  // GTEST_USE_OWN_TR1_TUPLE
        +
        +// To avoid conditional compilation everywhere, we make it
        +// gtest-port.h's responsibility to #include the header implementing
        +// tuple.
        +#if GTEST_HAS_STD_TUPLE_
        +# include <tuple>  // IWYU pragma: export
        +# define GTEST_TUPLE_NAMESPACE_ ::std
        +#endif  // GTEST_HAS_STD_TUPLE_
        +
        +// We include tr1::tuple even if std::tuple is available to define printers for
        +// them.
        +#if GTEST_HAS_TR1_TUPLE
        +# ifndef GTEST_TUPLE_NAMESPACE_
        +#  define GTEST_TUPLE_NAMESPACE_ ::std::tr1
        +# endif  // GTEST_TUPLE_NAMESPACE_
        +
        +# if GTEST_USE_OWN_TR1_TUPLE
        +#  include "gtest/internal/gtest-tuple.h"  // IWYU pragma: export  // NOLINT
        +# elif GTEST_ENV_HAS_STD_TUPLE_
        +#  include <tuple>
        +// C++11 puts its tuple into the ::std namespace rather than
        +// ::std::tr1.  gtest expects tuple to live in ::std::tr1, so put it there.
        +// This causes undefined behavior, but supported compilers react in
        +// the way we intend.
        +namespace std {
        +namespace tr1 {
        +using ::std::get;
        +using ::std::make_tuple;
        +using ::std::tuple;
        +using ::std::tuple_element;
        +using ::std::tuple_size;
        +}
        +}
        +
        +# elif GTEST_OS_SYMBIAN
        +
        +// On Symbian, BOOST_HAS_TR1_TUPLE causes Boost's TR1 tuple library to
        +// use STLport's tuple implementation, which unfortunately doesn't
        +// work as the copy of STLport distributed with Symbian is incomplete.
        +// By making sure BOOST_HAS_TR1_TUPLE is undefined, we force Boost to
        +// use its own tuple implementation.
        +#  ifdef BOOST_HAS_TR1_TUPLE
        +#   undef BOOST_HAS_TR1_TUPLE
        +#  endif  // BOOST_HAS_TR1_TUPLE
        +
        +// This prevents <boost/tr1/detail/config.hpp>, which defines
        +// BOOST_HAS_TR1_TUPLE, from being #included by Boost's <tuple>.
        +#  define BOOST_TR1_DETAIL_CONFIG_HPP_INCLUDED
        +#  include <tuple>  // IWYU pragma: export  // NOLINT
        +
        +# elif defined(__GNUC__) && (GTEST_GCC_VER_ >= 40000)
        +// GCC 4.0+ implements tr1/tuple in the <tr1/tuple> header.  This does
        +// not conform to the TR1 spec, which requires the header to be <tuple>.
        +
        +#  if !GTEST_HAS_RTTI && GTEST_GCC_VER_ < 40302
        +// Until version 4.3.2, gcc has a bug that causes <tr1/functional>,
        +// which is #included by <tr1/tuple>, to not compile when RTTI is
        +// disabled.  _TR1_FUNCTIONAL is the header guard for
        +// <tr1/functional>.  Hence the following #define is a hack to prevent
        +// <tr1/functional> from being included.
        +#   define _TR1_FUNCTIONAL 1
        +#   include <tr1/tuple>
        +#   undef _TR1_FUNCTIONAL  // Allows the user to #include
        +                        // <tr1/functional> if he chooses to.
        +#  else
        +#   include <tr1/tuple>  // NOLINT
        +#  endif  // !GTEST_HAS_RTTI && GTEST_GCC_VER_ < 40302
        +
        +# else
        +// If the compiler is not GCC 4.0+, we assume the user is using a
        +// spec-conforming TR1 implementation.
        +#  include <tuple>  // IWYU pragma: export  // NOLINT
        +# endif  // GTEST_USE_OWN_TR1_TUPLE
        +
        +#endif  // GTEST_HAS_TR1_TUPLE
        +
        +// Determines whether clone(2) is supported.
        +// Usually it will only be available on Linux, excluding
        +// Linux on the Itanium architecture.
        +// Also see http://linux.die.net/man/2/clone.
        +#ifndef GTEST_HAS_CLONE
        +// The user didn't tell us, so we need to figure it out.
        +
        +# if GTEST_OS_LINUX && !defined(__ia64__)
        +#  if GTEST_OS_LINUX_ANDROID
        +// On Android, clone() is only available on ARM starting with Gingerbread.
        +#    if defined(__arm__) && __ANDROID_API__ >= 9
        +#     define GTEST_HAS_CLONE 1
        +#    else
        +#     define GTEST_HAS_CLONE 0
        +#    endif
        +#  else
        +#   define GTEST_HAS_CLONE 1
        +#  endif
        +# else
        +#  define GTEST_HAS_CLONE 0
        +# endif  // GTEST_OS_LINUX && !defined(__ia64__)
        +
        +#endif  // GTEST_HAS_CLONE
        +
        +// Determines whether to support stream redirection. This is used to test
        +// output correctness and to implement death tests.
        +#ifndef GTEST_HAS_STREAM_REDIRECTION
        +// By default, we assume that stream redirection is supported on all
        +// platforms except known mobile ones.
        +# if GTEST_OS_WINDOWS_MOBILE || GTEST_OS_SYMBIAN || \
        +    GTEST_OS_WINDOWS_PHONE || GTEST_OS_WINDOWS_RT
        +#  define GTEST_HAS_STREAM_REDIRECTION 0
        +# else
        +#  define GTEST_HAS_STREAM_REDIRECTION 1
        +# endif  // !GTEST_OS_WINDOWS_MOBILE && !GTEST_OS_SYMBIAN
        +#endif  // GTEST_HAS_STREAM_REDIRECTION
        +
        +// Determines whether to support death tests.
        +// Google Test does not support death tests for VC 7.1 and earlier as
        +// abort() in a VC 7.1 application compiled as GUI in debug config
        +// pops up a dialog window that cannot be suppressed programmatically.
        +#if (GTEST_OS_LINUX || GTEST_OS_CYGWIN || GTEST_OS_SOLARIS || \
        +     (GTEST_OS_MAC && !GTEST_OS_IOS) || \
        +     (GTEST_OS_WINDOWS_DESKTOP && _MSC_VER >= 1400) || \
        +     GTEST_OS_WINDOWS_MINGW || GTEST_OS_AIX || GTEST_OS_HPUX || \
        +     GTEST_OS_OPENBSD || GTEST_OS_QNX || GTEST_OS_FREEBSD)
        +# define GTEST_HAS_DEATH_TEST 1
        +#endif
        +
        +// We don't support MSVC 7.1 with exceptions disabled now.  Therefore
        +// all the compilers we care about are adequate for supporting
        +// value-parameterized tests.
        +#define GTEST_HAS_PARAM_TEST 1
        +
        +// Determines whether to support type-driven tests.
        +
        +// Typed tests need <typeinfo> and variadic macros, which GCC, VC++ 8.0,
        +// Sun Pro CC, IBM Visual Age, and HP aCC support.
        +#if defined(__GNUC__) || (_MSC_VER >= 1400) || defined(__SUNPRO_CC) || \
        +    defined(__IBMCPP__) || defined(__HP_aCC)
        +# define GTEST_HAS_TYPED_TEST 1
        +# define GTEST_HAS_TYPED_TEST_P 1
        +#endif
        +
        +// Determines whether to support Combine(). This only makes sense when
        +// value-parameterized tests are enabled.  The implementation doesn't
        +// work on Sun Studio since it doesn't understand templated conversion
        +// operators.
        +#if GTEST_HAS_PARAM_TEST && GTEST_HAS_TR1_TUPLE && !defined(__SUNPRO_CC)
        +# define GTEST_HAS_COMBINE 1
        +#endif
        +
        +// Determines whether the system compiler uses UTF-16 for encoding wide strings.
        +#define GTEST_WIDE_STRING_USES_UTF16_ \
        +    (GTEST_OS_WINDOWS || GTEST_OS_CYGWIN || GTEST_OS_SYMBIAN || GTEST_OS_AIX)
        +
        +// Determines whether test results can be streamed to a socket.
        +#if GTEST_OS_LINUX
        +# define GTEST_CAN_STREAM_RESULTS_ 1
        +#endif
        +
        +// Defines some utility macros.
        +
        +// The GNU compiler emits a warning if nested "if" statements are followed by
        +// an "else" statement and braces are not used to explicitly disambiguate the
        +// "else" binding.  This leads to problems with code like:
        +//
        +//   if (gate)
        +//     ASSERT_*(condition) << "Some message";
        +//
        +// The "switch (0) case 0:" idiom is used to suppress this.
        +#ifdef __INTEL_COMPILER
        +# define GTEST_AMBIGUOUS_ELSE_BLOCKER_
        +#else
        +# define GTEST_AMBIGUOUS_ELSE_BLOCKER_ switch (0) case 0: default:  // NOLINT
        +#endif
        +
        +// Use this annotation at the end of a struct/class definition to
        +// prevent the compiler from optimizing away instances that are never
        +// used.  This is useful when all interesting logic happens inside the
        +// c'tor and / or d'tor.  Example:
        +//
        +//   struct Foo {
        +//     Foo() { ... }
        +//   } GTEST_ATTRIBUTE_UNUSED_;
        +//
        +// Also use it after a variable or parameter declaration to tell the
        +// compiler the variable/parameter does not have to be used.
        +#if defined(__GNUC__) && !defined(COMPILER_ICC)
        +# define GTEST_ATTRIBUTE_UNUSED_ __attribute__ ((unused))
        +#elif defined(__clang__)
        +# if __has_attribute(unused)
        +#  define GTEST_ATTRIBUTE_UNUSED_ __attribute__ ((unused))
        +# endif
        +#endif
        +#ifndef GTEST_ATTRIBUTE_UNUSED_
        +# define GTEST_ATTRIBUTE_UNUSED_
        +#endif
        +
        +// A macro to disallow operator=
        +// This should be used in the private: declarations for a class.
        +#define GTEST_DISALLOW_ASSIGN_(type)\
        +  void operator=(type const &)
        +
        +// A macro to disallow copy constructor and operator=
        +// This should be used in the private: declarations for a class.
        +#define GTEST_DISALLOW_COPY_AND_ASSIGN_(type)\
        +  type(type const &);\
        +  GTEST_DISALLOW_ASSIGN_(type)
        +
        +// Tell the compiler to warn about unused return values for functions declared
        +// with this macro.  The macro should be used on function declarations
        +// following the argument list:
        +//
        +//   Sprocket* AllocateSprocket() GTEST_MUST_USE_RESULT_;
        +#if defined(__GNUC__) && (GTEST_GCC_VER_ >= 30400) && !defined(COMPILER_ICC)
        +# define GTEST_MUST_USE_RESULT_ __attribute__ ((warn_unused_result))
        +#else
        +# define GTEST_MUST_USE_RESULT_
        +#endif  // __GNUC__ && (GTEST_GCC_VER_ >= 30400) && !COMPILER_ICC
        +
        +// MS C++ compiler emits warning when a conditional expression is compile time
        +// constant. In some contexts this warning is false positive and needs to be
        +// suppressed. Use the following two macros in such cases:
        +//
        +// GTEST_INTENTIONAL_CONST_COND_PUSH_()
        +// while (true) {
        +// GTEST_INTENTIONAL_CONST_COND_POP_()
        +// }
        +# define GTEST_INTENTIONAL_CONST_COND_PUSH_() \
        +    GTEST_DISABLE_MSC_WARNINGS_PUSH_(4127)
        +# define GTEST_INTENTIONAL_CONST_COND_POP_() \
        +    GTEST_DISABLE_MSC_WARNINGS_POP_()
        +
        +// Determine whether the compiler supports Microsoft's Structured Exception
        +// Handling.  This is supported by several Windows compilers but generally
        +// does not exist on any other system.
        +#ifndef GTEST_HAS_SEH
        +// The user didn't tell us, so we need to figure it out.
        +
        +# if defined(_MSC_VER) || defined(__BORLANDC__)
        +// These two compilers are known to support SEH.
        +#  define GTEST_HAS_SEH 1
        +# else
        +// Assume no SEH.
        +#  define GTEST_HAS_SEH 0
        +# endif
        +
        +#define GTEST_IS_THREADSAFE \
        +    (GTEST_HAS_MUTEX_AND_THREAD_LOCAL_ \
        +     || (GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_PHONE && !GTEST_OS_WINDOWS_RT) \
        +     || GTEST_HAS_PTHREAD)
        +
        +#endif  // GTEST_HAS_SEH
        +
        +#ifdef _MSC_VER
        +# if GTEST_LINKED_AS_SHARED_LIBRARY
        +#  define GTEST_API_ __declspec(dllimport)
        +# elif GTEST_CREATE_SHARED_LIBRARY
        +#  define GTEST_API_ __declspec(dllexport)
        +# endif
        +#elif __GNUC__ >= 4 || defined(__clang__)
        +# define GTEST_API_ __attribute__((visibility ("default")))
        +#endif // _MSC_VER
        +
        +#ifndef GTEST_API_
        +# define GTEST_API_
        +#endif
        +
        +#ifdef __GNUC__
        +// Ask the compiler to never inline a given function.
        +# define GTEST_NO_INLINE_ __attribute__((noinline))
        +#else
        +# define GTEST_NO_INLINE_
        +#endif
        +
        +// _LIBCPP_VERSION is defined by the libc++ library from the LLVM project.
        +#if defined(__GLIBCXX__) || defined(_LIBCPP_VERSION)
        +# define GTEST_HAS_CXXABI_H_ 1
        +#else
        +# define GTEST_HAS_CXXABI_H_ 0
        +#endif
        +
        +// A function level attribute to disable checking for use of uninitialized
        +// memory when built with MemorySanitizer.
        +#if defined(__clang__)
        +# if __has_feature(memory_sanitizer)
        +#  define GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_ \
        +       __attribute__((no_sanitize_memory))
        +# else
        +#  define GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_
        +# endif  // __has_feature(memory_sanitizer)
        +#else
        +# define GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_
        +#endif  // __clang__
        +
        +// A function level attribute to disable AddressSanitizer instrumentation.
        +#if defined(__clang__)
        +# if __has_feature(address_sanitizer)
        +#  define GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_ \
        +       __attribute__((no_sanitize_address))
        +# else
        +#  define GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_
        +# endif  // __has_feature(address_sanitizer)
        +#else
        +# define GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_
        +#endif  // __clang__
        +
        +// A function level attribute to disable ThreadSanitizer instrumentation.
        +#if defined(__clang__)
        +# if __has_feature(thread_sanitizer)
        +#  define GTEST_ATTRIBUTE_NO_SANITIZE_THREAD_ \
        +       __attribute__((no_sanitize_thread))
        +# else
        +#  define GTEST_ATTRIBUTE_NO_SANITIZE_THREAD_
        +# endif  // __has_feature(thread_sanitizer)
        +#else
        +# define GTEST_ATTRIBUTE_NO_SANITIZE_THREAD_
        +#endif  // __clang__
        +
        +namespace testing {
        +
        +class Message;
        +
        +#if defined(GTEST_TUPLE_NAMESPACE_)
        +// Import tuple and friends into the ::testing namespace.
        +// It is part of our interface, having them in ::testing allows us to change
        +// their types as needed.
        +using GTEST_TUPLE_NAMESPACE_::get;
        +using GTEST_TUPLE_NAMESPACE_::make_tuple;
        +using GTEST_TUPLE_NAMESPACE_::tuple;
        +using GTEST_TUPLE_NAMESPACE_::tuple_size;
        +using GTEST_TUPLE_NAMESPACE_::tuple_element;
        +#endif  // defined(GTEST_TUPLE_NAMESPACE_)
        +
        +namespace internal {
        +
        +// A secret type that Google Test users don't know about.  It has no
        +// definition on purpose.  Therefore it's impossible to create a
        +// Secret object, which is what we want.
        +class Secret;
        +
        +// The GTEST_COMPILE_ASSERT_ macro can be used to verify that a compile time
        +// expression is true. For example, you could use it to verify the
        +// size of a static array:
        +//
        +//   GTEST_COMPILE_ASSERT_(GTEST_ARRAY_SIZE_(names) == NUM_NAMES,
        +//                         names_incorrect_size);
        +//
        +// or to make sure a struct is smaller than a certain size:
        +//
        +//   GTEST_COMPILE_ASSERT_(sizeof(foo) < 128, foo_too_large);
        +//
        +// The second argument to the macro is the name of the variable. If
        +// the expression is false, most compilers will issue a warning/error
        +// containing the name of the variable.
        +
        +#if GTEST_LANG_CXX11
        +# define GTEST_COMPILE_ASSERT_(expr, msg) static_assert(expr, #msg)
        +#else  // !GTEST_LANG_CXX11
        +template <bool>
        +  struct CompileAssert {
        +};
        +
        +# define GTEST_COMPILE_ASSERT_(expr, msg) \
        +  typedef ::testing::internal::CompileAssert<(static_cast<bool>(expr))> \
        +      msg[static_cast<bool>(expr) ? 1 : -1] GTEST_ATTRIBUTE_UNUSED_
        +#endif  // !GTEST_LANG_CXX11
        +
        +// Implementation details of GTEST_COMPILE_ASSERT_:
        +//
        +// (In C++11, we simply use static_assert instead of the following)
        +//
        +// - GTEST_COMPILE_ASSERT_ works by defining an array type that has -1
        +//   elements (and thus is invalid) when the expression is false.
        +//
        +// - The simpler definition
        +//
        +//    #define GTEST_COMPILE_ASSERT_(expr, msg) typedef char msg[(expr) ? 1 : -1]
        +//
        +//   does not work, as gcc supports variable-length arrays whose sizes
        +//   are determined at run-time (this is gcc's extension and not part
        +//   of the C++ standard).  As a result, gcc fails to reject the
        +//   following code with the simple definition:
        +//
        +//     int foo;
        +//     GTEST_COMPILE_ASSERT_(foo, msg); // not supposed to compile as foo is
        +//                                      // not a compile-time constant.
        +//
        +// - By using the type CompileAssert<(bool(expr))>, we ensures that
        +//   expr is a compile-time constant.  (Template arguments must be
        +//   determined at compile-time.)
        +//
        +// - The outter parentheses in CompileAssert<(bool(expr))> are necessary
        +//   to work around a bug in gcc 3.4.4 and 4.0.1.  If we had written
        +//
        +//     CompileAssert<bool(expr)>
        +//
        +//   instead, these compilers will refuse to compile
        +//
        +//     GTEST_COMPILE_ASSERT_(5 > 0, some_message);
        +//
        +//   (They seem to think the ">" in "5 > 0" marks the end of the
        +//   template argument list.)
        +//
        +// - The array size is (bool(expr) ? 1 : -1), instead of simply
        +//
        +//     ((expr) ? 1 : -1).
        +//
        +//   This is to avoid running into a bug in MS VC 7.1, which
        +//   causes ((0.0) ? 1 : -1) to incorrectly evaluate to 1.
        +
        +// StaticAssertTypeEqHelper is used by StaticAssertTypeEq defined in gtest.h.
        +//
        +// This template is declared, but intentionally undefined.
        +template <typename T1, typename T2>
        +struct StaticAssertTypeEqHelper;
        +
        +template <typename T>
        +struct StaticAssertTypeEqHelper<T, T> {
        +  enum { value = true };
        +};
        +
        +// Evaluates to the number of elements in 'array'.
        +#define GTEST_ARRAY_SIZE_(array) (sizeof(array) / sizeof(array[0]))
        +
        +#if GTEST_HAS_GLOBAL_STRING
        +typedef ::string string;
        +#else
        +typedef ::std::string string;
        +#endif  // GTEST_HAS_GLOBAL_STRING
        +
        +#if GTEST_HAS_GLOBAL_WSTRING
        +typedef ::wstring wstring;
        +#elif GTEST_HAS_STD_WSTRING
        +typedef ::std::wstring wstring;
        +#endif  // GTEST_HAS_GLOBAL_WSTRING
        +
        +// A helper for suppressing warnings on constant condition.  It just
        +// returns 'condition'.
        +GTEST_API_ bool IsTrue(bool condition);
        +
        +// Defines scoped_ptr.
        +
        +// This implementation of scoped_ptr is PARTIAL - it only contains
        +// enough stuff to satisfy Google Test's need.
        +template <typename T>
        +class scoped_ptr {
        + public:
        +  typedef T element_type;
        +
        +  explicit scoped_ptr(T* p = NULL) : ptr_(p) {}
        +  ~scoped_ptr() { reset(); }
        +
        +  T& operator*() const { return *ptr_; }
        +  T* operator->() const { return ptr_; }
        +  T* get() const { return ptr_; }
        +
        +  T* release() {
        +    T* const ptr = ptr_;
        +    ptr_ = NULL;
        +    return ptr;
        +  }
        +
        +  void reset(T* p = NULL) {
        +    if (p != ptr_) {
        +      if (IsTrue(sizeof(T) > 0)) {  // Makes sure T is a complete type.
        +        delete ptr_;
        +      }
        +      ptr_ = p;
        +    }
        +  }
        +
        +  friend void swap(scoped_ptr& a, scoped_ptr& b) {
        +    using std::swap;
        +    swap(a.ptr_, b.ptr_);
        +  }
        +
        + private:
        +  T* ptr_;
        +
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(scoped_ptr);
        +};
        +
        +// Defines RE.
        +
        +// A simple C++ wrapper for <regex.h>.  It uses the POSIX Extended
        +// Regular Expression syntax.
        +class GTEST_API_ RE {
        + public:
        +  // A copy constructor is required by the Standard to initialize object
        +  // references from r-values.
        +  RE(const RE& other) { Init(other.pattern()); }
        +
        +  // Constructs an RE from a string.
        +  RE(const ::std::string& regex) { Init(regex.c_str()); }  // NOLINT
        +
        +#if GTEST_HAS_GLOBAL_STRING
        +
        +  RE(const ::string& regex) { Init(regex.c_str()); }  // NOLINT
        +
        +#endif  // GTEST_HAS_GLOBAL_STRING
        +
        +  RE(const char* regex) { Init(regex); }  // NOLINT
        +  ~RE();
        +
        +  // Returns the string representation of the regex.
        +  const char* pattern() const { return pattern_; }
        +
        +  // FullMatch(str, re) returns true iff regular expression re matches
        +  // the entire str.
        +  // PartialMatch(str, re) returns true iff regular expression re
        +  // matches a substring of str (including str itself).
        +  //
        +  // TODO(wan@google.com): make FullMatch() and PartialMatch() work
        +  // when str contains NUL characters.
        +  static bool FullMatch(const ::std::string& str, const RE& re) {
        +    return FullMatch(str.c_str(), re);
        +  }
        +  static bool PartialMatch(const ::std::string& str, const RE& re) {
        +    return PartialMatch(str.c_str(), re);
        +  }
        +
        +#if GTEST_HAS_GLOBAL_STRING
        +
        +  static bool FullMatch(const ::string& str, const RE& re) {
        +    return FullMatch(str.c_str(), re);
        +  }
        +  static bool PartialMatch(const ::string& str, const RE& re) {
        +    return PartialMatch(str.c_str(), re);
        +  }
        +
        +#endif  // GTEST_HAS_GLOBAL_STRING
        +
        +  static bool FullMatch(const char* str, const RE& re);
        +  static bool PartialMatch(const char* str, const RE& re);
        +
        + private:
        +  void Init(const char* regex);
        +
        +  // We use a const char* instead of an std::string, as Google Test used to be
        +  // used where std::string is not available.  TODO(wan@google.com): change to
        +  // std::string.
        +  const char* pattern_;
        +  bool is_valid_;
        +
        +#if GTEST_USES_POSIX_RE
        +
        +  regex_t full_regex_;     // For FullMatch().
        +  regex_t partial_regex_;  // For PartialMatch().
        +
        +#else  // GTEST_USES_SIMPLE_RE
        +
        +  const char* full_pattern_;  // For FullMatch();
        +
        +#endif
        +
        +  GTEST_DISALLOW_ASSIGN_(RE);
        +};
        +
        +// Formats a source file path and a line number as they would appear
        +// in an error message from the compiler used to compile this code.
        +GTEST_API_ ::std::string FormatFileLocation(const char* file, int line);
        +
        +// Formats a file location for compiler-independent XML output.
        +// Although this function is not platform dependent, we put it next to
        +// FormatFileLocation in order to contrast the two functions.
        +GTEST_API_ ::std::string FormatCompilerIndependentFileLocation(const char* file,
        +                                                               int line);
        +
        +// Defines logging utilities:
        +//   GTEST_LOG_(severity) - logs messages at the specified severity level. The
        +//                          message itself is streamed into the macro.
        +//   LogToStderr()  - directs all log messages to stderr.
        +//   FlushInfoLog() - flushes informational log messages.
        +
        +enum GTestLogSeverity {
        +  GTEST_INFO,
        +  GTEST_WARNING,
        +  GTEST_ERROR,
        +  GTEST_FATAL
        +};
        +
        +// Formats log entry severity, provides a stream object for streaming the
        +// log message, and terminates the message with a newline when going out of
        +// scope.
        +class GTEST_API_ GTestLog {
        + public:
        +  GTestLog(GTestLogSeverity severity, const char* file, int line);
        +
        +  // Flushes the buffers and, if severity is GTEST_FATAL, aborts the program.
        +  ~GTestLog();
        +
        +  ::std::ostream& GetStream() { return ::std::cerr; }
        +
        + private:
        +  const GTestLogSeverity severity_;
        +
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(GTestLog);
        +};
        +
        +#if !defined(GTEST_LOG_)
        +
        +# define GTEST_LOG_(severity) \
        +    ::testing::internal::GTestLog(::testing::internal::GTEST_##severity, \
        +                                  __FILE__, __LINE__).GetStream()
        +
        +inline void LogToStderr() {}
        +inline void FlushInfoLog() { fflush(NULL); }
        +
        +#endif  // !defined(GTEST_LOG_)
        +
        +#if !defined(GTEST_CHECK_)
        +// INTERNAL IMPLEMENTATION - DO NOT USE.
        +//
        +// GTEST_CHECK_ is an all-mode assert. It aborts the program if the condition
        +// is not satisfied.
        +//  Synopsys:
        +//    GTEST_CHECK_(boolean_condition);
        +//     or
        +//    GTEST_CHECK_(boolean_condition) << "Additional message";
        +//
        +//    This checks the condition and if the condition is not satisfied
        +//    it prints message about the condition violation, including the
        +//    condition itself, plus additional message streamed into it, if any,
        +//    and then it aborts the program. It aborts the program irrespective of
        +//    whether it is built in the debug mode or not.
        +# define GTEST_CHECK_(condition) \
        +    GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
        +    if (::testing::internal::IsTrue(condition)) \
        +      ; \
        +    else \
        +      GTEST_LOG_(FATAL) << "Condition " #condition " failed. "
        +#endif  // !defined(GTEST_CHECK_)
        +
        +// An all-mode assert to verify that the given POSIX-style function
        +// call returns 0 (indicating success).  Known limitation: this
        +// doesn't expand to a balanced 'if' statement, so enclose the macro
        +// in {} if you need to use it as the only statement in an 'if'
        +// branch.
        +#define GTEST_CHECK_POSIX_SUCCESS_(posix_call) \
        +  if (const int gtest_error = (posix_call)) \
        +    GTEST_LOG_(FATAL) << #posix_call << "failed with error " \
        +                      << gtest_error
        +
        +#if GTEST_HAS_STD_MOVE_
        +using std::move;
        +#else  // GTEST_HAS_STD_MOVE_
        +template <typename T>
        +const T& move(const T& t) {
        +  return t;
        +}
        +#endif  // GTEST_HAS_STD_MOVE_
        +
        +// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE.
        +//
        +// Use ImplicitCast_ as a safe version of static_cast for upcasting in
        +// the type hierarchy (e.g. casting a Foo* to a SuperclassOfFoo* or a
        +// const Foo*).  When you use ImplicitCast_, the compiler checks that
        +// the cast is safe.  Such explicit ImplicitCast_s are necessary in
        +// surprisingly many situations where C++ demands an exact type match
        +// instead of an argument type convertable to a target type.
        +//
        +// The syntax for using ImplicitCast_ is the same as for static_cast:
        +//
        +//   ImplicitCast_<ToType>(expr)
        +//
        +// ImplicitCast_ would have been part of the C++ standard library,
        +// but the proposal was submitted too late.  It will probably make
        +// its way into the language in the future.
        +//
        +// This relatively ugly name is intentional. It prevents clashes with
        +// similar functions users may have (e.g., implicit_cast). The internal
        +// namespace alone is not enough because the function can be found by ADL.
        +template<typename To>
        +inline To ImplicitCast_(To x) { return x; }
        +
        +// When you upcast (that is, cast a pointer from type Foo to type
        +// SuperclassOfFoo), it's fine to use ImplicitCast_<>, since upcasts
        +// always succeed.  When you downcast (that is, cast a pointer from
        +// type Foo to type SubclassOfFoo), static_cast<> isn't safe, because
        +// how do you know the pointer is really of type SubclassOfFoo?  It
        +// could be a bare Foo, or of type DifferentSubclassOfFoo.  Thus,
        +// when you downcast, you should use this macro.  In debug mode, we
        +// use dynamic_cast<> to double-check the downcast is legal (we die
        +// if it's not).  In normal mode, we do the efficient static_cast<>
        +// instead.  Thus, it's important to test in debug mode to make sure
        +// the cast is legal!
        +//    This is the only place in the code we should use dynamic_cast<>.
        +// In particular, you SHOULDN'T be using dynamic_cast<> in order to
        +// do RTTI (eg code like this:
        +//    if (dynamic_cast<Subclass1>(foo)) HandleASubclass1Object(foo);
        +//    if (dynamic_cast<Subclass2>(foo)) HandleASubclass2Object(foo);
        +// You should design the code some other way not to need this.
        +//
        +// This relatively ugly name is intentional. It prevents clashes with
        +// similar functions users may have (e.g., down_cast). The internal
        +// namespace alone is not enough because the function can be found by ADL.
        +template<typename To, typename From>  // use like this: DownCast_<T*>(foo);
        +inline To DownCast_(From* f) {  // so we only accept pointers
        +  // Ensures that To is a sub-type of From *.  This test is here only
        +  // for compile-time type checking, and has no overhead in an
        +  // optimized build at run-time, as it will be optimized away
        +  // completely.
        +  GTEST_INTENTIONAL_CONST_COND_PUSH_()
        +  if (false) {
        +  GTEST_INTENTIONAL_CONST_COND_POP_()
        +    const To to = NULL;
        +    ::testing::internal::ImplicitCast_<From*>(to);
        +  }
        +
        +#if GTEST_HAS_RTTI
        +  // RTTI: debug mode only!
        +  GTEST_CHECK_(f == NULL || dynamic_cast<To>(f) != NULL);
        +#endif
        +  return static_cast<To>(f);
        +}
        +
        +// Downcasts the pointer of type Base to Derived.
        +// Derived must be a subclass of Base. The parameter MUST
        +// point to a class of type Derived, not any subclass of it.
        +// When RTTI is available, the function performs a runtime
        +// check to enforce this.
        +template <class Derived, class Base>
        +Derived* CheckedDowncastToActualType(Base* base) {
        +#if GTEST_HAS_RTTI
        +  GTEST_CHECK_(typeid(*base) == typeid(Derived));
        +#endif
        +
        +#if GTEST_HAS_DOWNCAST_
        +  return ::down_cast<Derived*>(base);
        +#elif GTEST_HAS_RTTI
        +  return dynamic_cast<Derived*>(base);  // NOLINT
        +#else
        +  return static_cast<Derived*>(base);  // Poor man's downcast.
        +#endif
        +}
        +
        +#if GTEST_HAS_STREAM_REDIRECTION
        +
        +// Defines the stderr capturer:
        +//   CaptureStdout     - starts capturing stdout.
        +//   GetCapturedStdout - stops capturing stdout and returns the captured string.
        +//   CaptureStderr     - starts capturing stderr.
        +//   GetCapturedStderr - stops capturing stderr and returns the captured string.
        +//
        +GTEST_API_ void CaptureStdout();
        +GTEST_API_ std::string GetCapturedStdout();
        +GTEST_API_ void CaptureStderr();
        +GTEST_API_ std::string GetCapturedStderr();
        +
        +#endif  // GTEST_HAS_STREAM_REDIRECTION
        +
        +// Returns a path to temporary directory.
        +GTEST_API_ std::string TempDir();
        +
        +// Returns the size (in bytes) of a file.
        +GTEST_API_ size_t GetFileSize(FILE* file);
        +
        +// Reads the entire content of a file as a string.
        +GTEST_API_ std::string ReadEntireFile(FILE* file);
        +
        +// All command line arguments.
        +GTEST_API_ const ::std::vector<testing::internal::string>& GetArgvs();
        +
        +#if GTEST_HAS_DEATH_TEST
        +
        +const ::std::vector<testing::internal::string>& GetInjectableArgvs();
        +void SetInjectableArgvs(const ::std::vector<testing::internal::string>*
        +                             new_argvs);
        +
        +
        +#endif  // GTEST_HAS_DEATH_TEST
        +
        +// Defines synchronization primitives.
        +#if GTEST_IS_THREADSAFE
        +# if GTEST_HAS_PTHREAD
        +// Sleeps for (roughly) n milliseconds.  This function is only for testing
        +// Google Test's own constructs.  Don't use it in user tests, either
        +// directly or indirectly.
        +inline void SleepMilliseconds(int n) {
        +  const timespec time = {
        +    0,                  // 0 seconds.
        +    n * 1000L * 1000L,  // And n ms.
        +  };
        +  nanosleep(&time, NULL);
        +}
        +# endif  // GTEST_HAS_PTHREAD
        +
        +# if GTEST_HAS_NOTIFICATION_
        +// Notification has already been imported into the namespace.
        +// Nothing to do here.
        +
        +# elif GTEST_HAS_PTHREAD
        +// Allows a controller thread to pause execution of newly created
        +// threads until notified.  Instances of this class must be created
        +// and destroyed in the controller thread.
        +//
        +// This class is only for testing Google Test's own constructs. Do not
        +// use it in user tests, either directly or indirectly.
        +class Notification {
        + public:
        +  Notification() : notified_(false) {
        +    GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_init(&mutex_, NULL));
        +  }
        +  ~Notification() {
        +    pthread_mutex_destroy(&mutex_);
        +  }
        +
        +  // Notifies all threads created with this notification to start. Must
        +  // be called from the controller thread.
        +  void Notify() {
        +    pthread_mutex_lock(&mutex_);
        +    notified_ = true;
        +    pthread_mutex_unlock(&mutex_);
        +  }
        +
        +  // Blocks until the controller thread notifies. Must be called from a test
        +  // thread.
        +  void WaitForNotification() {
        +    for (;;) {
        +      pthread_mutex_lock(&mutex_);
        +      const bool notified = notified_;
        +      pthread_mutex_unlock(&mutex_);
        +      if (notified)
        +        break;
        +      SleepMilliseconds(10);
        +    }
        +  }
        +
        + private:
        +  pthread_mutex_t mutex_;
        +  bool notified_;
        +
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(Notification);
        +};
        +
        +# elif GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_PHONE && !GTEST_OS_WINDOWS_RT
        +
        +GTEST_API_ void SleepMilliseconds(int n);
        +
        +// Provides leak-safe Windows kernel handle ownership.
        +// Used in death tests and in threading support.
        +class GTEST_API_ AutoHandle {
        + public:
        +  // Assume that Win32 HANDLE type is equivalent to void*. Doing so allows us to
        +  // avoid including <windows.h> in this header file. Including <windows.h> is
        +  // undesirable because it defines a lot of symbols and macros that tend to
        +  // conflict with client code. This assumption is verified by
        +  // WindowsTypesTest.HANDLEIsVoidStar.
        +  typedef void* Handle;
        +  AutoHandle();
        +  explicit AutoHandle(Handle handle);
        +
        +  ~AutoHandle();
        +
        +  Handle Get() const;
        +  void Reset();
        +  void Reset(Handle handle);
        +
        + private:
        +  // Returns true iff the handle is a valid handle object that can be closed.
        +  bool IsCloseable() const;
        +
        +  Handle handle_;
        +
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(AutoHandle);
        +};
        +
        +// Allows a controller thread to pause execution of newly created
        +// threads until notified.  Instances of this class must be created
        +// and destroyed in the controller thread.
        +//
        +// This class is only for testing Google Test's own constructs. Do not
        +// use it in user tests, either directly or indirectly.
        +class GTEST_API_ Notification {
        + public:
        +  Notification();
        +  void Notify();
        +  void WaitForNotification();
        +
        + private:
        +  AutoHandle event_;
        +
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(Notification);
        +};
        +# endif  // GTEST_HAS_NOTIFICATION_
        +
        +// On MinGW, we can have both GTEST_OS_WINDOWS and GTEST_HAS_PTHREAD
        +// defined, but we don't want to use MinGW's pthreads implementation, which
        +// has conformance problems with some versions of the POSIX standard.
        +# if GTEST_HAS_PTHREAD && !GTEST_OS_WINDOWS_MINGW
        +
        +// As a C-function, ThreadFuncWithCLinkage cannot be templated itself.
        +// Consequently, it cannot select a correct instantiation of ThreadWithParam
        +// in order to call its Run(). Introducing ThreadWithParamBase as a
        +// non-templated base class for ThreadWithParam allows us to bypass this
        +// problem.
        +class ThreadWithParamBase {
        + public:
        +  virtual ~ThreadWithParamBase() {}
        +  virtual void Run() = 0;
        +};
        +
        +// pthread_create() accepts a pointer to a function type with the C linkage.
        +// According to the Standard (7.5/1), function types with different linkages
        +// are different even if they are otherwise identical.  Some compilers (for
        +// example, SunStudio) treat them as different types.  Since class methods
        +// cannot be defined with C-linkage we need to define a free C-function to
        +// pass into pthread_create().
        +extern "C" inline void* ThreadFuncWithCLinkage(void* thread) {
        +  static_cast<ThreadWithParamBase*>(thread)->Run();
        +  return NULL;
        +}
        +
        +// Helper class for testing Google Test's multi-threading constructs.
        +// To use it, write:
        +//
        +//   void ThreadFunc(int param) { /* Do things with param */ }
        +//   Notification thread_can_start;
        +//   ...
        +//   // The thread_can_start parameter is optional; you can supply NULL.
        +//   ThreadWithParam<int> thread(&ThreadFunc, 5, &thread_can_start);
        +//   thread_can_start.Notify();
        +//
        +// These classes are only for testing Google Test's own constructs. Do
        +// not use them in user tests, either directly or indirectly.
        +template <typename T>
        +class ThreadWithParam : public ThreadWithParamBase {
        + public:
        +  typedef void UserThreadFunc(T);
        +
        +  ThreadWithParam(UserThreadFunc* func, T param, Notification* thread_can_start)
        +      : func_(func),
        +        param_(param),
        +        thread_can_start_(thread_can_start),
        +        finished_(false) {
        +    ThreadWithParamBase* const base = this;
        +    // The thread can be created only after all fields except thread_
        +    // have been initialized.
        +    GTEST_CHECK_POSIX_SUCCESS_(
        +        pthread_create(&thread_, 0, &ThreadFuncWithCLinkage, base));
        +  }
        +  ~ThreadWithParam() { Join(); }
        +
        +  void Join() {
        +    if (!finished_) {
        +      GTEST_CHECK_POSIX_SUCCESS_(pthread_join(thread_, 0));
        +      finished_ = true;
        +    }
        +  }
        +
        +  virtual void Run() {
        +    if (thread_can_start_ != NULL)
        +      thread_can_start_->WaitForNotification();
        +    func_(param_);
        +  }
        +
        + private:
        +  UserThreadFunc* const func_;  // User-supplied thread function.
        +  const T param_;  // User-supplied parameter to the thread function.
        +  // When non-NULL, used to block execution until the controller thread
        +  // notifies.
        +  Notification* const thread_can_start_;
        +  bool finished_;  // true iff we know that the thread function has finished.
        +  pthread_t thread_;  // The native thread object.
        +
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(ThreadWithParam);
        +};
        +# endif  // !GTEST_OS_WINDOWS && GTEST_HAS_PTHREAD ||
        +         // GTEST_HAS_MUTEX_AND_THREAD_LOCAL_
        +
        +# if GTEST_HAS_MUTEX_AND_THREAD_LOCAL_
        +// Mutex and ThreadLocal have already been imported into the namespace.
        +// Nothing to do here.
        +
        +# elif GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_PHONE && !GTEST_OS_WINDOWS_RT
        +
        +// Mutex implements mutex on Windows platforms.  It is used in conjunction
        +// with class MutexLock:
        +//
        +//   Mutex mutex;
        +//   ...
        +//   MutexLock lock(&mutex);  // Acquires the mutex and releases it at the
        +//                            // end of the current scope.
        +//
        +// A static Mutex *must* be defined or declared using one of the following
        +// macros:
        +//   GTEST_DEFINE_STATIC_MUTEX_(g_some_mutex);
        +//   GTEST_DECLARE_STATIC_MUTEX_(g_some_mutex);
        +//
        +// (A non-static Mutex is defined/declared in the usual way).
        +class GTEST_API_ Mutex {
        + public:
        +  enum MutexType { kStatic = 0, kDynamic = 1 };
        +  // We rely on kStaticMutex being 0 as it is to what the linker initializes
        +  // type_ in static mutexes.  critical_section_ will be initialized lazily
        +  // in ThreadSafeLazyInit().
        +  enum StaticConstructorSelector { kStaticMutex = 0 };
        +
        +  // This constructor intentionally does nothing.  It relies on type_ being
        +  // statically initialized to 0 (effectively setting it to kStatic) and on
        +  // ThreadSafeLazyInit() to lazily initialize the rest of the members.
        +  explicit Mutex(StaticConstructorSelector /*dummy*/) {}
        +
        +  Mutex();
        +  ~Mutex();
        +
        +  void Lock();
        +
        +  void Unlock();
        +
        +  // Does nothing if the current thread holds the mutex. Otherwise, crashes
        +  // with high probability.
        +  void AssertHeld();
        +
        + private:
        +  // Initializes owner_thread_id_ and critical_section_ in static mutexes.
        +  void ThreadSafeLazyInit();
        +
        +  // Per http://blogs.msdn.com/b/oldnewthing/archive/2004/02/23/78395.aspx,
        +  // we assume that 0 is an invalid value for thread IDs.
        +  unsigned int owner_thread_id_;
        +
        +  // For static mutexes, we rely on these members being initialized to zeros
        +  // by the linker.
        +  MutexType type_;
        +  long critical_section_init_phase_;  // NOLINT
        +  _RTL_CRITICAL_SECTION* critical_section_;
        +
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(Mutex);
        +};
        +
        +# define GTEST_DECLARE_STATIC_MUTEX_(mutex) \
        +    extern ::testing::internal::Mutex mutex
        +
        +# define GTEST_DEFINE_STATIC_MUTEX_(mutex) \
        +    ::testing::internal::Mutex mutex(::testing::internal::Mutex::kStaticMutex)
        +
        +// We cannot name this class MutexLock because the ctor declaration would
        +// conflict with a macro named MutexLock, which is defined on some
        +// platforms. That macro is used as a defensive measure to prevent against
        +// inadvertent misuses of MutexLock like "MutexLock(&mu)" rather than
        +// "MutexLock l(&mu)".  Hence the typedef trick below.
        +class GTestMutexLock {
        + public:
        +  explicit GTestMutexLock(Mutex* mutex)
        +      : mutex_(mutex) { mutex_->Lock(); }
        +
        +  ~GTestMutexLock() { mutex_->Unlock(); }
        +
        + private:
        +  Mutex* const mutex_;
        +
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(GTestMutexLock);
        +};
        +
        +typedef GTestMutexLock MutexLock;
        +
        +// Base class for ValueHolder<T>.  Allows a caller to hold and delete a value
        +// without knowing its type.
        +class ThreadLocalValueHolderBase {
        + public:
        +  virtual ~ThreadLocalValueHolderBase() {}
        +};
        +
        +// Provides a way for a thread to send notifications to a ThreadLocal
        +// regardless of its parameter type.
        +class ThreadLocalBase {
        + public:
        +  // Creates a new ValueHolder<T> object holding a default value passed to
        +  // this ThreadLocal<T>'s constructor and returns it.  It is the caller's
        +  // responsibility not to call this when the ThreadLocal<T> instance already
        +  // has a value on the current thread.
        +  virtual ThreadLocalValueHolderBase* NewValueForCurrentThread() const = 0;
        +
        + protected:
        +  ThreadLocalBase() {}
        +  virtual ~ThreadLocalBase() {}
        +
        + private:
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(ThreadLocalBase);
        +};
        +
        +// Maps a thread to a set of ThreadLocals that have values instantiated on that
        +// thread and notifies them when the thread exits.  A ThreadLocal instance is
        +// expected to persist until all threads it has values on have terminated.
        +class GTEST_API_ ThreadLocalRegistry {
        + public:
        +  // Registers thread_local_instance as having value on the current thread.
        +  // Returns a value that can be used to identify the thread from other threads.
        +  static ThreadLocalValueHolderBase* GetValueOnCurrentThread(
        +      const ThreadLocalBase* thread_local_instance);
        +
        +  // Invoked when a ThreadLocal instance is destroyed.
        +  static void OnThreadLocalDestroyed(
        +      const ThreadLocalBase* thread_local_instance);
        +};
        +
        +class GTEST_API_ ThreadWithParamBase {
        + public:
        +  void Join();
        +
        + protected:
        +  class Runnable {
        +   public:
        +    virtual ~Runnable() {}
        +    virtual void Run() = 0;
        +  };
        +
        +  ThreadWithParamBase(Runnable *runnable, Notification* thread_can_start);
        +  virtual ~ThreadWithParamBase();
        +
        + private:
        +  AutoHandle thread_;
        +};
        +
        +// Helper class for testing Google Test's multi-threading constructs.
        +template <typename T>
        +class ThreadWithParam : public ThreadWithParamBase {
        + public:
        +  typedef void UserThreadFunc(T);
        +
        +  ThreadWithParam(UserThreadFunc* func, T param, Notification* thread_can_start)
        +      : ThreadWithParamBase(new RunnableImpl(func, param), thread_can_start) {
        +  }
        +  virtual ~ThreadWithParam() {}
        +
        + private:
        +  class RunnableImpl : public Runnable {
        +   public:
        +    RunnableImpl(UserThreadFunc* func, T param)
        +        : func_(func),
        +          param_(param) {
        +    }
        +    virtual ~RunnableImpl() {}
        +    virtual void Run() {
        +      func_(param_);
        +    }
        +
        +   private:
        +    UserThreadFunc* const func_;
        +    const T param_;
        +
        +    GTEST_DISALLOW_COPY_AND_ASSIGN_(RunnableImpl);
        +  };
        +
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(ThreadWithParam);
        +};
        +
        +// Implements thread-local storage on Windows systems.
        +//
        +//   // Thread 1
        +//   ThreadLocal<int> tl(100);  // 100 is the default value for each thread.
        +//
        +//   // Thread 2
        +//   tl.set(150);  // Changes the value for thread 2 only.
        +//   EXPECT_EQ(150, tl.get());
        +//
        +//   // Thread 1
        +//   EXPECT_EQ(100, tl.get());  // In thread 1, tl has the original value.
        +//   tl.set(200);
        +//   EXPECT_EQ(200, tl.get());
        +//
        +// The template type argument T must have a public copy constructor.
        +// In addition, the default ThreadLocal constructor requires T to have
        +// a public default constructor.
        +//
        +// The users of a TheadLocal instance have to make sure that all but one
        +// threads (including the main one) using that instance have exited before
        +// destroying it. Otherwise, the per-thread objects managed for them by the
        +// ThreadLocal instance are not guaranteed to be destroyed on all platforms.
        +//
        +// Google Test only uses global ThreadLocal objects.  That means they
        +// will die after main() has returned.  Therefore, no per-thread
        +// object managed by Google Test will be leaked as long as all threads
        +// using Google Test have exited when main() returns.
        +template <typename T>
        +class ThreadLocal : public ThreadLocalBase {
        + public:
        +  ThreadLocal() : default_factory_(new DefaultValueHolderFactory()) {}
        +  explicit ThreadLocal(const T& value)
        +      : default_factory_(new InstanceValueHolderFactory(value)) {}
        +
        +  ~ThreadLocal() { ThreadLocalRegistry::OnThreadLocalDestroyed(this); }
        +
        +  T* pointer() { return GetOrCreateValue(); }
        +  const T* pointer() const { return GetOrCreateValue(); }
        +  const T& get() const { return *pointer(); }
        +  void set(const T& value) { *pointer() = value; }
        +
        + private:
        +  // Holds a value of T.  Can be deleted via its base class without the caller
        +  // knowing the type of T.
        +  class ValueHolder : public ThreadLocalValueHolderBase {
        +   public:
        +    ValueHolder() : value_() {}
        +    explicit ValueHolder(const T& value) : value_(value) {}
        +
        +    T* pointer() { return &value_; }
        +
        +   private:
        +    T value_;
        +    GTEST_DISALLOW_COPY_AND_ASSIGN_(ValueHolder);
        +  };
        +
        +
        +  T* GetOrCreateValue() const {
        +    return static_cast<ValueHolder*>(
        +        ThreadLocalRegistry::GetValueOnCurrentThread(this))->pointer();
        +  }
        +
        +  virtual ThreadLocalValueHolderBase* NewValueForCurrentThread() const {
        +    return default_factory_->MakeNewHolder();
        +  }
        +
        +  class ValueHolderFactory {
        +   public:
        +    ValueHolderFactory() {}
        +    virtual ~ValueHolderFactory() {}
        +    virtual ValueHolder* MakeNewHolder() const = 0;
        +
        +   private:
        +    GTEST_DISALLOW_COPY_AND_ASSIGN_(ValueHolderFactory);
        +  };
        +
        +  class DefaultValueHolderFactory : public ValueHolderFactory {
        +   public:
        +    DefaultValueHolderFactory() {}
        +    virtual ValueHolder* MakeNewHolder() const { return new ValueHolder(); }
        +
        +   private:
        +    GTEST_DISALLOW_COPY_AND_ASSIGN_(DefaultValueHolderFactory);
        +  };
        +
        +  class InstanceValueHolderFactory : public ValueHolderFactory {
        +   public:
        +    explicit InstanceValueHolderFactory(const T& value) : value_(value) {}
        +    virtual ValueHolder* MakeNewHolder() const {
        +      return new ValueHolder(value_);
        +    }
        +
        +   private:
        +    const T value_;  // The value for each thread.
        +
        +    GTEST_DISALLOW_COPY_AND_ASSIGN_(InstanceValueHolderFactory);
        +  };
        +
        +  scoped_ptr<ValueHolderFactory> default_factory_;
        +
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(ThreadLocal);
        +};
        +
        +# elif GTEST_HAS_PTHREAD
        +
        +// MutexBase and Mutex implement mutex on pthreads-based platforms.
        +class MutexBase {
        + public:
        +  // Acquires this mutex.
        +  void Lock() {
        +    GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_lock(&mutex_));
        +    owner_ = pthread_self();
        +    has_owner_ = true;
        +  }
        +
        +  // Releases this mutex.
        +  void Unlock() {
        +    // Since the lock is being released the owner_ field should no longer be
        +    // considered valid. We don't protect writing to has_owner_ here, as it's
        +    // the caller's responsibility to ensure that the current thread holds the
        +    // mutex when this is called.
        +    has_owner_ = false;
        +    GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_unlock(&mutex_));
        +  }
        +
        +  // Does nothing if the current thread holds the mutex. Otherwise, crashes
        +  // with high probability.
        +  void AssertHeld() const {
        +    GTEST_CHECK_(has_owner_ && pthread_equal(owner_, pthread_self()))
        +        << "The current thread is not holding the mutex @" << this;
        +  }
        +
        +  // A static mutex may be used before main() is entered.  It may even
        +  // be used before the dynamic initialization stage.  Therefore we
        +  // must be able to initialize a static mutex object at link time.
        +  // This means MutexBase has to be a POD and its member variables
        +  // have to be public.
        + public:
        +  pthread_mutex_t mutex_;  // The underlying pthread mutex.
        +  // has_owner_ indicates whether the owner_ field below contains a valid thread
        +  // ID and is therefore safe to inspect (e.g., to use in pthread_equal()). All
        +  // accesses to the owner_ field should be protected by a check of this field.
        +  // An alternative might be to memset() owner_ to all zeros, but there's no
        +  // guarantee that a zero'd pthread_t is necessarily invalid or even different
        +  // from pthread_self().
        +  bool has_owner_;
        +  pthread_t owner_;  // The thread holding the mutex.
        +};
        +
        +// Forward-declares a static mutex.
        +#  define GTEST_DECLARE_STATIC_MUTEX_(mutex) \
        +     extern ::testing::internal::MutexBase mutex
        +
        +// Defines and statically (i.e. at link time) initializes a static mutex.
        +// The initialization list here does not explicitly initialize each field,
        +// instead relying on default initialization for the unspecified fields. In
        +// particular, the owner_ field (a pthread_t) is not explicitly initialized.
        +// This allows initialization to work whether pthread_t is a scalar or struct.
        +// The flag -Wmissing-field-initializers must not be specified for this to work.
        +#  define GTEST_DEFINE_STATIC_MUTEX_(mutex) \
        +     ::testing::internal::MutexBase mutex = { PTHREAD_MUTEX_INITIALIZER, false }
        +
        +// The Mutex class can only be used for mutexes created at runtime. It
        +// shares its API with MutexBase otherwise.
        +class Mutex : public MutexBase {
        + public:
        +  Mutex() {
        +    GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_init(&mutex_, NULL));
        +    has_owner_ = false;
        +  }
        +  ~Mutex() {
        +    GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_destroy(&mutex_));
        +  }
        +
        + private:
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(Mutex);
        +};
        +
        +// We cannot name this class MutexLock because the ctor declaration would
        +// conflict with a macro named MutexLock, which is defined on some
        +// platforms. That macro is used as a defensive measure to prevent against
        +// inadvertent misuses of MutexLock like "MutexLock(&mu)" rather than
        +// "MutexLock l(&mu)".  Hence the typedef trick below.
        +class GTestMutexLock {
        + public:
        +  explicit GTestMutexLock(MutexBase* mutex)
        +      : mutex_(mutex) { mutex_->Lock(); }
        +
        +  ~GTestMutexLock() { mutex_->Unlock(); }
        +
        + private:
        +  MutexBase* const mutex_;
        +
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(GTestMutexLock);
        +};
        +
        +typedef GTestMutexLock MutexLock;
        +
        +// Helpers for ThreadLocal.
        +
        +// pthread_key_create() requires DeleteThreadLocalValue() to have
        +// C-linkage.  Therefore it cannot be templatized to access
        +// ThreadLocal<T>.  Hence the need for class
        +// ThreadLocalValueHolderBase.
        +class ThreadLocalValueHolderBase {
        + public:
        +  virtual ~ThreadLocalValueHolderBase() {}
        +};
        +
        +// Called by pthread to delete thread-local data stored by
        +// pthread_setspecific().
        +extern "C" inline void DeleteThreadLocalValue(void* value_holder) {
        +  delete static_cast<ThreadLocalValueHolderBase*>(value_holder);
        +}
        +
        +// Implements thread-local storage on pthreads-based systems.
        +template <typename T>
        +class ThreadLocal {
        + public:
        +  ThreadLocal()
        +      : key_(CreateKey()), default_factory_(new DefaultValueHolderFactory()) {}
        +  explicit ThreadLocal(const T& value)
        +      : key_(CreateKey()),
        +        default_factory_(new InstanceValueHolderFactory(value)) {}
        +
        +  ~ThreadLocal() {
        +    // Destroys the managed object for the current thread, if any.
        +    DeleteThreadLocalValue(pthread_getspecific(key_));
        +
        +    // Releases resources associated with the key.  This will *not*
        +    // delete managed objects for other threads.
        +    GTEST_CHECK_POSIX_SUCCESS_(pthread_key_delete(key_));
        +  }
        +
        +  T* pointer() { return GetOrCreateValue(); }
        +  const T* pointer() const { return GetOrCreateValue(); }
        +  const T& get() const { return *pointer(); }
        +  void set(const T& value) { *pointer() = value; }
        +
        + private:
        +  // Holds a value of type T.
        +  class ValueHolder : public ThreadLocalValueHolderBase {
        +   public:
        +    ValueHolder() : value_() {}
        +    explicit ValueHolder(const T& value) : value_(value) {}
        +
        +    T* pointer() { return &value_; }
        +
        +   private:
        +    T value_;
        +    GTEST_DISALLOW_COPY_AND_ASSIGN_(ValueHolder);
        +  };
        +
        +  static pthread_key_t CreateKey() {
        +    pthread_key_t key;
        +    // When a thread exits, DeleteThreadLocalValue() will be called on
        +    // the object managed for that thread.
        +    GTEST_CHECK_POSIX_SUCCESS_(
        +        pthread_key_create(&key, &DeleteThreadLocalValue));
        +    return key;
        +  }
        +
        +  T* GetOrCreateValue() const {
        +    ThreadLocalValueHolderBase* const holder =
        +        static_cast<ThreadLocalValueHolderBase*>(pthread_getspecific(key_));
        +    if (holder != NULL) {
        +      return CheckedDowncastToActualType<ValueHolder>(holder)->pointer();
        +    }
        +
        +    ValueHolder* const new_holder = default_factory_->MakeNewHolder();
        +    ThreadLocalValueHolderBase* const holder_base = new_holder;
        +    GTEST_CHECK_POSIX_SUCCESS_(pthread_setspecific(key_, holder_base));
        +    return new_holder->pointer();
        +  }
        +
        +  class ValueHolderFactory {
        +   public:
        +    ValueHolderFactory() {}
        +    virtual ~ValueHolderFactory() {}
        +    virtual ValueHolder* MakeNewHolder() const = 0;
        +
        +   private:
        +    GTEST_DISALLOW_COPY_AND_ASSIGN_(ValueHolderFactory);
        +  };
        +
        +  class DefaultValueHolderFactory : public ValueHolderFactory {
        +   public:
        +    DefaultValueHolderFactory() {}
        +    virtual ValueHolder* MakeNewHolder() const { return new ValueHolder(); }
        +
        +   private:
        +    GTEST_DISALLOW_COPY_AND_ASSIGN_(DefaultValueHolderFactory);
        +  };
        +
        +  class InstanceValueHolderFactory : public ValueHolderFactory {
        +   public:
        +    explicit InstanceValueHolderFactory(const T& value) : value_(value) {}
        +    virtual ValueHolder* MakeNewHolder() const {
        +      return new ValueHolder(value_);
        +    }
        +
        +   private:
        +    const T value_;  // The value for each thread.
        +
        +    GTEST_DISALLOW_COPY_AND_ASSIGN_(InstanceValueHolderFactory);
        +  };
        +
        +  // A key pthreads uses for looking up per-thread values.
        +  const pthread_key_t key_;
        +  scoped_ptr<ValueHolderFactory> default_factory_;
        +
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(ThreadLocal);
        +};
        +
        +# endif  // GTEST_HAS_MUTEX_AND_THREAD_LOCAL_
        +
        +#else  // GTEST_IS_THREADSAFE
        +
        +// A dummy implementation of synchronization primitives (mutex, lock,
        +// and thread-local variable).  Necessary for compiling Google Test where
        +// mutex is not supported - using Google Test in multiple threads is not
        +// supported on such platforms.
        +
        +class Mutex {
        + public:
        +  Mutex() {}
        +  void Lock() {}
        +  void Unlock() {}
        +  void AssertHeld() const {}
        +};
        +
        +# define GTEST_DECLARE_STATIC_MUTEX_(mutex) \
        +  extern ::testing::internal::Mutex mutex
        +
        +# define GTEST_DEFINE_STATIC_MUTEX_(mutex) ::testing::internal::Mutex mutex
        +
        +// We cannot name this class MutexLock because the ctor declaration would
        +// conflict with a macro named MutexLock, which is defined on some
        +// platforms. That macro is used as a defensive measure to prevent against
        +// inadvertent misuses of MutexLock like "MutexLock(&mu)" rather than
        +// "MutexLock l(&mu)".  Hence the typedef trick below.
        +class GTestMutexLock {
        + public:
        +  explicit GTestMutexLock(Mutex*) {}  // NOLINT
        +};
        +
        +typedef GTestMutexLock MutexLock;
        +
        +template <typename T>
        +class ThreadLocal {
        + public:
        +  ThreadLocal() : value_() {}
        +  explicit ThreadLocal(const T& value) : value_(value) {}
        +  T* pointer() { return &value_; }
        +  const T* pointer() const { return &value_; }
        +  const T& get() const { return value_; }
        +  void set(const T& value) { value_ = value; }
        + private:
        +  T value_;
        +};
        +
        +#endif  // GTEST_IS_THREADSAFE
        +
        +// Returns the number of threads running in the process, or 0 to indicate that
        +// we cannot detect it.
        +GTEST_API_ size_t GetThreadCount();
        +
        +// Passing non-POD classes through ellipsis (...) crashes the ARM
        +// compiler and generates a warning in Sun Studio.  The Nokia Symbian
        +// and the IBM XL C/C++ compiler try to instantiate a copy constructor
        +// for objects passed through ellipsis (...), failing for uncopyable
        +// objects.  We define this to ensure that only POD is passed through
        +// ellipsis on these systems.
        +#if defined(__SYMBIAN32__) || defined(__IBMCPP__) || defined(__SUNPRO_CC)
        +// We lose support for NULL detection where the compiler doesn't like
        +// passing non-POD classes through ellipsis (...).
        +# define GTEST_ELLIPSIS_NEEDS_POD_ 1
        +#else
        +# define GTEST_CAN_COMPARE_NULL 1
        +#endif
        +
        +// The Nokia Symbian and IBM XL C/C++ compilers cannot decide between
        +// const T& and const T* in a function template.  These compilers
        +// _can_ decide between class template specializations for T and T*,
        +// so a tr1::type_traits-like is_pointer works.
        +#if defined(__SYMBIAN32__) || defined(__IBMCPP__)
        +# define GTEST_NEEDS_IS_POINTER_ 1
        +#endif
        +
        +template <bool bool_value>
        +struct bool_constant {
        +  typedef bool_constant<bool_value> type;
        +  static const bool value = bool_value;
        +};
        +template <bool bool_value> const bool bool_constant<bool_value>::value;
        +
        +typedef bool_constant<false> false_type;
        +typedef bool_constant<true> true_type;
        +
        +template <typename T>
        +struct is_pointer : public false_type {};
        +
        +template <typename T>
        +struct is_pointer<T*> : public true_type {};
        +
        +template <typename Iterator>
        +struct IteratorTraits {
        +  typedef typename Iterator::value_type value_type;
        +};
        +
        +template <typename T>
        +struct IteratorTraits<T*> {
        +  typedef T value_type;
        +};
        +
        +template <typename T>
        +struct IteratorTraits<const T*> {
        +  typedef T value_type;
        +};
        +
        +#if GTEST_OS_WINDOWS
        +# define GTEST_PATH_SEP_ "\\"
        +# define GTEST_HAS_ALT_PATH_SEP_ 1
        +// The biggest signed integer type the compiler supports.
        +typedef __int64 BiggestInt;
        +#else
        +# define GTEST_PATH_SEP_ "/"
        +# define GTEST_HAS_ALT_PATH_SEP_ 0
        +typedef long long BiggestInt;  // NOLINT
        +#endif  // GTEST_OS_WINDOWS
        +
        +// Utilities for char.
        +
        +// isspace(int ch) and friends accept an unsigned char or EOF.  char
        +// may be signed, depending on the compiler (or compiler flags).
        +// Therefore we need to cast a char to unsigned char before calling
        +// isspace(), etc.
        +
        +inline bool IsAlpha(char ch) {
        +  return isalpha(static_cast<unsigned char>(ch)) != 0;
        +}
        +inline bool IsAlNum(char ch) {
        +  return isalnum(static_cast<unsigned char>(ch)) != 0;
        +}
        +inline bool IsDigit(char ch) {
        +  return isdigit(static_cast<unsigned char>(ch)) != 0;
        +}
        +inline bool IsLower(char ch) {
        +  return islower(static_cast<unsigned char>(ch)) != 0;
        +}
        +inline bool IsSpace(char ch) {
        +  return isspace(static_cast<unsigned char>(ch)) != 0;
        +}
        +inline bool IsUpper(char ch) {
        +  return isupper(static_cast<unsigned char>(ch)) != 0;
        +}
        +inline bool IsXDigit(char ch) {
        +  return isxdigit(static_cast<unsigned char>(ch)) != 0;
        +}
        +inline bool IsXDigit(wchar_t ch) {
        +  const unsigned char low_byte = static_cast<unsigned char>(ch);
        +  return ch == low_byte && isxdigit(low_byte) != 0;
        +}
        +
        +inline char ToLower(char ch) {
        +  return static_cast<char>(tolower(static_cast<unsigned char>(ch)));
        +}
        +inline char ToUpper(char ch) {
        +  return static_cast<char>(toupper(static_cast<unsigned char>(ch)));
        +}
        +
        +inline std::string StripTrailingSpaces(std::string str) {
        +  std::string::iterator it = str.end();
        +  while (it != str.begin() && IsSpace(*--it))
        +    it = str.erase(it);
        +  return str;
        +}
        +
        +// The testing::internal::posix namespace holds wrappers for common
        +// POSIX functions.  These wrappers hide the differences between
        +// Windows/MSVC and POSIX systems.  Since some compilers define these
        +// standard functions as macros, the wrapper cannot have the same name
        +// as the wrapped function.
        +
        +namespace posix {
        +
        +// Functions with a different name on Windows.
        +
        +#if GTEST_OS_WINDOWS
        +
        +typedef struct _stat StatStruct;
        +
        +# ifdef __BORLANDC__
        +inline int IsATTY(int fd) { return isatty(fd); }
        +inline int StrCaseCmp(const char* s1, const char* s2) {
        +  return stricmp(s1, s2);
        +}
        +inline char* StrDup(const char* src) { return strdup(src); }
        +# else  // !__BORLANDC__
        +#  if GTEST_OS_WINDOWS_MOBILE
        +inline int IsATTY(int /* fd */) { return 0; }
        +#  else
        +inline int IsATTY(int fd) { return _isatty(fd); }
        +#  endif  // GTEST_OS_WINDOWS_MOBILE
        +inline int StrCaseCmp(const char* s1, const char* s2) {
        +  return _stricmp(s1, s2);
        +}
        +inline char* StrDup(const char* src) { return _strdup(src); }
        +# endif  // __BORLANDC__
        +
        +# if GTEST_OS_WINDOWS_MOBILE
        +inline int FileNo(FILE* file) { return reinterpret_cast<int>(_fileno(file)); }
        +// Stat(), RmDir(), and IsDir() are not needed on Windows CE at this
        +// time and thus not defined there.
        +# else
        +inline int FileNo(FILE* file) { return _fileno(file); }
        +inline int Stat(const char* path, StatStruct* buf) { return _stat(path, buf); }
        +inline int RmDir(const char* dir) { return _rmdir(dir); }
        +inline bool IsDir(const StatStruct& st) {
        +  return (_S_IFDIR & st.st_mode) != 0;
        +}
        +# endif  // GTEST_OS_WINDOWS_MOBILE
        +
        +#else
        +
        +typedef struct stat StatStruct;
        +
        +inline int FileNo(FILE* file) { return fileno(file); }
        +inline int IsATTY(int fd) { return isatty(fd); }
        +inline int Stat(const char* path, StatStruct* buf) { return stat(path, buf); }
        +inline int StrCaseCmp(const char* s1, const char* s2) {
        +  return strcasecmp(s1, s2);
        +}
        +inline char* StrDup(const char* src) { return strdup(src); }
        +inline int RmDir(const char* dir) { return rmdir(dir); }
        +inline bool IsDir(const StatStruct& st) { return S_ISDIR(st.st_mode); }
        +
        +#endif  // GTEST_OS_WINDOWS
        +
        +// Functions deprecated by MSVC 8.0.
        +
        +GTEST_DISABLE_MSC_WARNINGS_PUSH_(4996 /* deprecated function */)
        +
        +inline const char* StrNCpy(char* dest, const char* src, size_t n) {
        +  return strncpy(dest, src, n);
        +}
        +
        +// ChDir(), FReopen(), FDOpen(), Read(), Write(), Close(), and
        +// StrError() aren't needed on Windows CE at this time and thus not
        +// defined there.
        +
        +#if !GTEST_OS_WINDOWS_MOBILE && !GTEST_OS_WINDOWS_PHONE && !GTEST_OS_WINDOWS_RT
        +inline int ChDir(const char* dir) { return chdir(dir); }
        +#endif
        +inline FILE* FOpen(const char* path, const char* mode) {
        +  return fopen(path, mode);
        +}
        +#if !GTEST_OS_WINDOWS_MOBILE
        +inline FILE *FReopen(const char* path, const char* mode, FILE* stream) {
        +  return freopen(path, mode, stream);
        +}
        +inline FILE* FDOpen(int fd, const char* mode) { return fdopen(fd, mode); }
        +#endif
        +inline int FClose(FILE* fp) { return fclose(fp); }
        +#if !GTEST_OS_WINDOWS_MOBILE
        +inline int Read(int fd, void* buf, unsigned int count) {
        +  return static_cast<int>(read(fd, buf, count));
        +}
        +inline int Write(int fd, const void* buf, unsigned int count) {
        +  return static_cast<int>(write(fd, buf, count));
        +}
        +inline int Close(int fd) { return close(fd); }
        +inline const char* StrError(int errnum) { return strerror(errnum); }
        +#endif
        +inline const char* GetEnv(const char* name) {
        +#if GTEST_OS_WINDOWS_MOBILE || GTEST_OS_WINDOWS_PHONE | GTEST_OS_WINDOWS_RT
        +  // We are on Windows CE, which has no environment variables.
        +  static_cast<void>(name);  // To prevent 'unused argument' warning.
        +  return NULL;
        +#elif defined(__BORLANDC__) || defined(__SunOS_5_8) || defined(__SunOS_5_9)
        +  // Environment variables which we programmatically clear will be set to the
        +  // empty string rather than unset (NULL).  Handle that case.
        +  const char* const env = getenv(name);
        +  return (env != NULL && env[0] != '\0') ? env : NULL;
        +#else
        +  return getenv(name);
        +#endif
        +}
        +
        +GTEST_DISABLE_MSC_WARNINGS_POP_()
        +
        +#if GTEST_OS_WINDOWS_MOBILE
        +// Windows CE has no C library. The abort() function is used in
        +// several places in Google Test. This implementation provides a reasonable
        +// imitation of standard behaviour.
        +void Abort();
        +#else
        +inline void Abort() { abort(); }
        +#endif  // GTEST_OS_WINDOWS_MOBILE
        +
        +}  // namespace posix
        +
        +// MSVC "deprecates" snprintf and issues warnings wherever it is used.  In
        +// order to avoid these warnings, we need to use _snprintf or _snprintf_s on
        +// MSVC-based platforms.  We map the GTEST_SNPRINTF_ macro to the appropriate
        +// function in order to achieve that.  We use macro definition here because
        +// snprintf is a variadic function.
        +#if _MSC_VER >= 1400 && !GTEST_OS_WINDOWS_MOBILE
        +// MSVC 2005 and above support variadic macros.
        +# define GTEST_SNPRINTF_(buffer, size, format, ...) \
        +     _snprintf_s(buffer, size, size, format, __VA_ARGS__)
        +#elif defined(_MSC_VER)
        +// Windows CE does not define _snprintf_s and MSVC prior to 2005 doesn't
        +// complain about _snprintf.
        +# define GTEST_SNPRINTF_ _snprintf
        +#else
        +# define GTEST_SNPRINTF_ snprintf
        +#endif
        +
        +// The maximum number a BiggestInt can represent.  This definition
        +// works no matter BiggestInt is represented in one's complement or
        +// two's complement.
        +//
        +// We cannot rely on numeric_limits in STL, as __int64 and long long
        +// are not part of standard C++ and numeric_limits doesn't need to be
        +// defined for them.
        +const BiggestInt kMaxBiggestInt =
        +    ~(static_cast<BiggestInt>(1) << (8*sizeof(BiggestInt) - 1));
        +
        +// This template class serves as a compile-time function from size to
        +// type.  It maps a size in bytes to a primitive type with that
        +// size. e.g.
        +//
        +//   TypeWithSize<4>::UInt
        +//
        +// is typedef-ed to be unsigned int (unsigned integer made up of 4
        +// bytes).
        +//
        +// Such functionality should belong to STL, but I cannot find it
        +// there.
        +//
        +// Google Test uses this class in the implementation of floating-point
        +// comparison.
        +//
        +// For now it only handles UInt (unsigned int) as that's all Google Test
        +// needs.  Other types can be easily added in the future if need
        +// arises.
        +template <size_t size>
        +class TypeWithSize {
        + public:
        +  // This prevents the user from using TypeWithSize<N> with incorrect
        +  // values of N.
        +  typedef void UInt;
        +};
        +
        +// The specialization for size 4.
        +template <>
        +class TypeWithSize<4> {
        + public:
        +  // unsigned int has size 4 in both gcc and MSVC.
        +  //
        +  // As base/basictypes.h doesn't compile on Windows, we cannot use
        +  // uint32, uint64, and etc here.
        +  typedef int Int;
        +  typedef unsigned int UInt;
        +};
        +
        +// The specialization for size 8.
        +template <>
        +class TypeWithSize<8> {
        + public:
        +#if GTEST_OS_WINDOWS
        +  typedef __int64 Int;
        +  typedef unsigned __int64 UInt;
        +#else
        +  typedef long long Int;  // NOLINT
        +  typedef unsigned long long UInt;  // NOLINT
        +#endif  // GTEST_OS_WINDOWS
        +};
        +
        +// Integer types of known sizes.
        +typedef TypeWithSize<4>::Int Int32;
        +typedef TypeWithSize<4>::UInt UInt32;
        +typedef TypeWithSize<8>::Int Int64;
        +typedef TypeWithSize<8>::UInt UInt64;
        +typedef TypeWithSize<8>::Int TimeInMillis;  // Represents time in milliseconds.
        +
        +// Utilities for command line flags and environment variables.
        +
        +// Macro for referencing flags.
        +#if !defined(GTEST_FLAG)
        +# define GTEST_FLAG(name) FLAGS_gtest_##name
        +#endif  // !defined(GTEST_FLAG)
        +
        +#if !defined(GTEST_USE_OWN_FLAGFILE_FLAG_)
        +# define GTEST_USE_OWN_FLAGFILE_FLAG_ 1
        +#endif  // !defined(GTEST_USE_OWN_FLAGFILE_FLAG_)
        +
        +#if !defined(GTEST_DECLARE_bool_)
        +# define GTEST_FLAG_SAVER_ ::testing::internal::GTestFlagSaver
        +
        +// Macros for declaring flags.
        +# define GTEST_DECLARE_bool_(name) GTEST_API_ extern bool GTEST_FLAG(name)
        +# define GTEST_DECLARE_int32_(name) \
        +    GTEST_API_ extern ::testing::internal::Int32 GTEST_FLAG(name)
        +#define GTEST_DECLARE_string_(name) \
        +    GTEST_API_ extern ::std::string GTEST_FLAG(name)
        +
        +// Macros for defining flags.
        +#define GTEST_DEFINE_bool_(name, default_val, doc) \
        +    GTEST_API_ bool GTEST_FLAG(name) = (default_val)
        +#define GTEST_DEFINE_int32_(name, default_val, doc) \
        +    GTEST_API_ ::testing::internal::Int32 GTEST_FLAG(name) = (default_val)
        +#define GTEST_DEFINE_string_(name, default_val, doc) \
        +    GTEST_API_ ::std::string GTEST_FLAG(name) = (default_val)
        +
        +#endif  // !defined(GTEST_DECLARE_bool_)
        +
        +// Thread annotations
        +#if !defined(GTEST_EXCLUSIVE_LOCK_REQUIRED_)
        +# define GTEST_EXCLUSIVE_LOCK_REQUIRED_(locks)
        +# define GTEST_LOCK_EXCLUDED_(locks)
        +#endif  // !defined(GTEST_EXCLUSIVE_LOCK_REQUIRED_)
        +
        +// Parses 'str' for a 32-bit signed integer.  If successful, writes the result
        +// to *value and returns true; otherwise leaves *value unchanged and returns
        +// false.
        +// TODO(chandlerc): Find a better way to refactor flag and environment parsing
        +// out of both gtest-port.cc and gtest.cc to avoid exporting this utility
        +// function.
        +bool ParseInt32(const Message& src_text, const char* str, Int32* value);
        +
        +// Parses a bool/Int32/string from the environment variable
        +// corresponding to the given Google Test flag.
        +bool BoolFromGTestEnv(const char* flag, bool default_val);
        +GTEST_API_ Int32 Int32FromGTestEnv(const char* flag, Int32 default_val);
        +const char* StringFromGTestEnv(const char* flag, const char* default_val);
        +
        +}  // namespace internal
        +}  // namespace testing
        +
        +#endif  // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_H_
        +
        diff --git a/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-string.h b/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-string.h
        new file mode 100644
        index 0000000..97f1a7f
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-string.h
        @@ -0,0 +1,167 @@
        +// Copyright 2005, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Authors: wan@google.com (Zhanyong Wan), eefacm@gmail.com (Sean Mcafee)
        +//
        +// The Google C++ Testing Framework (Google Test)
        +//
        +// This header file declares the String class and functions used internally by
        +// Google Test.  They are subject to change without notice. They should not used
        +// by code external to Google Test.
        +//
        +// This header file is #included by <gtest/internal/gtest-internal.h>.
        +// It should not be #included by other files.
        +
        +#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_
        +#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_
        +
        +#ifdef __BORLANDC__
        +// string.h is not guaranteed to provide strcpy on C++ Builder.
        +# include <mem.h>
        +#endif
        +
        +#include <string.h>
        +#include <string>
        +
        +#include "gtest/internal/gtest-port.h"
        +
        +namespace testing {
        +namespace internal {
        +
        +// String - an abstract class holding static string utilities.
        +class GTEST_API_ String {
        + public:
        +  // Static utility methods
        +
        +  // Clones a 0-terminated C string, allocating memory using new.  The
        +  // caller is responsible for deleting the return value using
        +  // delete[].  Returns the cloned string, or NULL if the input is
        +  // NULL.
        +  //
        +  // This is different from strdup() in string.h, which allocates
        +  // memory using malloc().
        +  static const char* CloneCString(const char* c_str);
        +
        +#if GTEST_OS_WINDOWS_MOBILE
        +  // Windows CE does not have the 'ANSI' versions of Win32 APIs. To be
        +  // able to pass strings to Win32 APIs on CE we need to convert them
        +  // to 'Unicode', UTF-16.
        +
        +  // Creates a UTF-16 wide string from the given ANSI string, allocating
        +  // memory using new. The caller is responsible for deleting the return
        +  // value using delete[]. Returns the wide string, or NULL if the
        +  // input is NULL.
        +  //
        +  // The wide string is created using the ANSI codepage (CP_ACP) to
        +  // match the behaviour of the ANSI versions of Win32 calls and the
        +  // C runtime.
        +  static LPCWSTR AnsiToUtf16(const char* c_str);
        +
        +  // Creates an ANSI string from the given wide string, allocating
        +  // memory using new. The caller is responsible for deleting the return
        +  // value using delete[]. Returns the ANSI string, or NULL if the
        +  // input is NULL.
        +  //
        +  // The returned string is created using the ANSI codepage (CP_ACP) to
        +  // match the behaviour of the ANSI versions of Win32 calls and the
        +  // C runtime.
        +  static const char* Utf16ToAnsi(LPCWSTR utf16_str);
        +#endif
        +
        +  // Compares two C strings.  Returns true iff they have the same content.
        +  //
        +  // Unlike strcmp(), this function can handle NULL argument(s).  A
        +  // NULL C string is considered different to any non-NULL C string,
        +  // including the empty string.
        +  static bool CStringEquals(const char* lhs, const char* rhs);
        +
        +  // Converts a wide C string to a String using the UTF-8 encoding.
        +  // NULL will be converted to "(null)".  If an error occurred during
        +  // the conversion, "(failed to convert from wide string)" is
        +  // returned.
        +  static std::string ShowWideCString(const wchar_t* wide_c_str);
        +
        +  // Compares two wide C strings.  Returns true iff they have the same
        +  // content.
        +  //
        +  // Unlike wcscmp(), this function can handle NULL argument(s).  A
        +  // NULL C string is considered different to any non-NULL C string,
        +  // including the empty string.
        +  static bool WideCStringEquals(const wchar_t* lhs, const wchar_t* rhs);
        +
        +  // Compares two C strings, ignoring case.  Returns true iff they
        +  // have the same content.
        +  //
        +  // Unlike strcasecmp(), this function can handle NULL argument(s).
        +  // A NULL C string is considered different to any non-NULL C string,
        +  // including the empty string.
        +  static bool CaseInsensitiveCStringEquals(const char* lhs,
        +                                           const char* rhs);
        +
        +  // Compares two wide C strings, ignoring case.  Returns true iff they
        +  // have the same content.
        +  //
        +  // Unlike wcscasecmp(), this function can handle NULL argument(s).
        +  // A NULL C string is considered different to any non-NULL wide C string,
        +  // including the empty string.
        +  // NB: The implementations on different platforms slightly differ.
        +  // On windows, this method uses _wcsicmp which compares according to LC_CTYPE
        +  // environment variable. On GNU platform this method uses wcscasecmp
        +  // which compares according to LC_CTYPE category of the current locale.
        +  // On MacOS X, it uses towlower, which also uses LC_CTYPE category of the
        +  // current locale.
        +  static bool CaseInsensitiveWideCStringEquals(const wchar_t* lhs,
        +                                               const wchar_t* rhs);
        +
        +  // Returns true iff the given string ends with the given suffix, ignoring
        +  // case. Any string is considered to end with an empty suffix.
        +  static bool EndsWithCaseInsensitive(
        +      const std::string& str, const std::string& suffix);
        +
        +  // Formats an int value as "%02d".
        +  static std::string FormatIntWidth2(int value);  // "%02d" for width == 2
        +
        +  // Formats an int value as "%X".
        +  static std::string FormatHexInt(int value);
        +
        +  // Formats a byte as "%02X".
        +  static std::string FormatByte(unsigned char value);
        +
        + private:
        +  String();  // Not meant to be instantiated.
        +};  // class String
        +
        +// Gets the content of the stringstream's buffer as an std::string.  Each '\0'
        +// character in the buffer is replaced with "\\0".
        +GTEST_API_ std::string StringStreamToString(::std::stringstream* stream);
        +
        +}  // namespace internal
        +}  // namespace testing
        +
        +#endif  // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_
        diff --git a/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-tuple.h b/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-tuple.h
        new file mode 100644
        index 0000000..e9b4053
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-tuple.h
        @@ -0,0 +1,1020 @@
        +// This file was GENERATED by command:
        +//     pump.py gtest-tuple.h.pump
        +// DO NOT EDIT BY HAND!!!
        +
        +// Copyright 2009 Google Inc.
        +// All Rights Reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +// Implements a subset of TR1 tuple needed by Google Test and Google Mock.
        +
        +#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TUPLE_H_
        +#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TUPLE_H_
        +
        +#include <utility>  // For ::std::pair.
        +
        +// The compiler used in Symbian has a bug that prevents us from declaring the
        +// tuple template as a friend (it complains that tuple is redefined).  This
        +// hack bypasses the bug by declaring the members that should otherwise be
        +// private as public.
        +// Sun Studio versions < 12 also have the above bug.
        +#if defined(__SYMBIAN32__) || (defined(__SUNPRO_CC) && __SUNPRO_CC < 0x590)
        +# define GTEST_DECLARE_TUPLE_AS_FRIEND_ public:
        +#else
        +# define GTEST_DECLARE_TUPLE_AS_FRIEND_ \
        +    template <GTEST_10_TYPENAMES_(U)> friend class tuple; \
        +   private:
        +#endif
        +
        +// Visual Studio 2010, 2012, and 2013 define symbols in std::tr1 that conflict
        +// with our own definitions. Therefore using our own tuple does not work on
        +// those compilers.
        +#if defined(_MSC_VER) && _MSC_VER >= 1600  /* 1600 is Visual Studio 2010 */
        +# error "gtest's tuple doesn't compile on Visual Studio 2010 or later. \
        +GTEST_USE_OWN_TR1_TUPLE must be set to 0 on those compilers."
        +#endif
        +
        +// GTEST_n_TUPLE_(T) is the type of an n-tuple.
        +#define GTEST_0_TUPLE_(T) tuple<>
        +#define GTEST_1_TUPLE_(T) tuple<T##0, void, void, void, void, void, void, \
        +    void, void, void>
        +#define GTEST_2_TUPLE_(T) tuple<T##0, T##1, void, void, void, void, void, \
        +    void, void, void>
        +#define GTEST_3_TUPLE_(T) tuple<T##0, T##1, T##2, void, void, void, void, \
        +    void, void, void>
        +#define GTEST_4_TUPLE_(T) tuple<T##0, T##1, T##2, T##3, void, void, void, \
        +    void, void, void>
        +#define GTEST_5_TUPLE_(T) tuple<T##0, T##1, T##2, T##3, T##4, void, void, \
        +    void, void, void>
        +#define GTEST_6_TUPLE_(T) tuple<T##0, T##1, T##2, T##3, T##4, T##5, void, \
        +    void, void, void>
        +#define GTEST_7_TUPLE_(T) tuple<T##0, T##1, T##2, T##3, T##4, T##5, T##6, \
        +    void, void, void>
        +#define GTEST_8_TUPLE_(T) tuple<T##0, T##1, T##2, T##3, T##4, T##5, T##6, \
        +    T##7, void, void>
        +#define GTEST_9_TUPLE_(T) tuple<T##0, T##1, T##2, T##3, T##4, T##5, T##6, \
        +    T##7, T##8, void>
        +#define GTEST_10_TUPLE_(T) tuple<T##0, T##1, T##2, T##3, T##4, T##5, T##6, \
        +    T##7, T##8, T##9>
        +
        +// GTEST_n_TYPENAMES_(T) declares a list of n typenames.
        +#define GTEST_0_TYPENAMES_(T)
        +#define GTEST_1_TYPENAMES_(T) typename T##0
        +#define GTEST_2_TYPENAMES_(T) typename T##0, typename T##1
        +#define GTEST_3_TYPENAMES_(T) typename T##0, typename T##1, typename T##2
        +#define GTEST_4_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \
        +    typename T##3
        +#define GTEST_5_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \
        +    typename T##3, typename T##4
        +#define GTEST_6_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \
        +    typename T##3, typename T##4, typename T##5
        +#define GTEST_7_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \
        +    typename T##3, typename T##4, typename T##5, typename T##6
        +#define GTEST_8_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \
        +    typename T##3, typename T##4, typename T##5, typename T##6, typename T##7
        +#define GTEST_9_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \
        +    typename T##3, typename T##4, typename T##5, typename T##6, \
        +    typename T##7, typename T##8
        +#define GTEST_10_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \
        +    typename T##3, typename T##4, typename T##5, typename T##6, \
        +    typename T##7, typename T##8, typename T##9
        +
        +// In theory, defining stuff in the ::std namespace is undefined
        +// behavior.  We can do this as we are playing the role of a standard
        +// library vendor.
        +namespace std {
        +namespace tr1 {
        +
        +template <typename T0 = void, typename T1 = void, typename T2 = void,
        +    typename T3 = void, typename T4 = void, typename T5 = void,
        +    typename T6 = void, typename T7 = void, typename T8 = void,
        +    typename T9 = void>
        +class tuple;
        +
        +// Anything in namespace gtest_internal is Google Test's INTERNAL
        +// IMPLEMENTATION DETAIL and MUST NOT BE USED DIRECTLY in user code.
        +namespace gtest_internal {
        +
        +// ByRef<T>::type is T if T is a reference; otherwise it's const T&.
        +template <typename T>
        +struct ByRef { typedef const T& type; };  // NOLINT
        +template <typename T>
        +struct ByRef<T&> { typedef T& type; };  // NOLINT
        +
        +// A handy wrapper for ByRef.
        +#define GTEST_BY_REF_(T) typename ::std::tr1::gtest_internal::ByRef<T>::type
        +
        +// AddRef<T>::type is T if T is a reference; otherwise it's T&.  This
        +// is the same as tr1::add_reference<T>::type.
        +template <typename T>
        +struct AddRef { typedef T& type; };  // NOLINT
        +template <typename T>
        +struct AddRef<T&> { typedef T& type; };  // NOLINT
        +
        +// A handy wrapper for AddRef.
        +#define GTEST_ADD_REF_(T) typename ::std::tr1::gtest_internal::AddRef<T>::type
        +
        +// A helper for implementing get<k>().
        +template <int k> class Get;
        +
        +// A helper for implementing tuple_element<k, T>.  kIndexValid is true
        +// iff k < the number of fields in tuple type T.
        +template <bool kIndexValid, int kIndex, class Tuple>
        +struct TupleElement;
        +
        +template <GTEST_10_TYPENAMES_(T)>
        +struct TupleElement<true, 0, GTEST_10_TUPLE_(T) > {
        +  typedef T0 type;
        +};
        +
        +template <GTEST_10_TYPENAMES_(T)>
        +struct TupleElement<true, 1, GTEST_10_TUPLE_(T) > {
        +  typedef T1 type;
        +};
        +
        +template <GTEST_10_TYPENAMES_(T)>
        +struct TupleElement<true, 2, GTEST_10_TUPLE_(T) > {
        +  typedef T2 type;
        +};
        +
        +template <GTEST_10_TYPENAMES_(T)>
        +struct TupleElement<true, 3, GTEST_10_TUPLE_(T) > {
        +  typedef T3 type;
        +};
        +
        +template <GTEST_10_TYPENAMES_(T)>
        +struct TupleElement<true, 4, GTEST_10_TUPLE_(T) > {
        +  typedef T4 type;
        +};
        +
        +template <GTEST_10_TYPENAMES_(T)>
        +struct TupleElement<true, 5, GTEST_10_TUPLE_(T) > {
        +  typedef T5 type;
        +};
        +
        +template <GTEST_10_TYPENAMES_(T)>
        +struct TupleElement<true, 6, GTEST_10_TUPLE_(T) > {
        +  typedef T6 type;
        +};
        +
        +template <GTEST_10_TYPENAMES_(T)>
        +struct TupleElement<true, 7, GTEST_10_TUPLE_(T) > {
        +  typedef T7 type;
        +};
        +
        +template <GTEST_10_TYPENAMES_(T)>
        +struct TupleElement<true, 8, GTEST_10_TUPLE_(T) > {
        +  typedef T8 type;
        +};
        +
        +template <GTEST_10_TYPENAMES_(T)>
        +struct TupleElement<true, 9, GTEST_10_TUPLE_(T) > {
        +  typedef T9 type;
        +};
        +
        +}  // namespace gtest_internal
        +
        +template <>
        +class tuple<> {
        + public:
        +  tuple() {}
        +  tuple(const tuple& /* t */)  {}
        +  tuple& operator=(const tuple& /* t */) { return *this; }
        +};
        +
        +template <GTEST_1_TYPENAMES_(T)>
        +class GTEST_1_TUPLE_(T) {
        + public:
        +  template <int k> friend class gtest_internal::Get;
        +
        +  tuple() : f0_() {}
        +
        +  explicit tuple(GTEST_BY_REF_(T0) f0) : f0_(f0) {}
        +
        +  tuple(const tuple& t) : f0_(t.f0_) {}
        +
        +  template <GTEST_1_TYPENAMES_(U)>
        +  tuple(const GTEST_1_TUPLE_(U)& t) : f0_(t.f0_) {}
        +
        +  tuple& operator=(const tuple& t) { return CopyFrom(t); }
        +
        +  template <GTEST_1_TYPENAMES_(U)>
        +  tuple& operator=(const GTEST_1_TUPLE_(U)& t) {
        +    return CopyFrom(t);
        +  }
        +
        +  GTEST_DECLARE_TUPLE_AS_FRIEND_
        +
        +  template <GTEST_1_TYPENAMES_(U)>
        +  tuple& CopyFrom(const GTEST_1_TUPLE_(U)& t) {
        +    f0_ = t.f0_;
        +    return *this;
        +  }
        +
        +  T0 f0_;
        +};
        +
        +template <GTEST_2_TYPENAMES_(T)>
        +class GTEST_2_TUPLE_(T) {
        + public:
        +  template <int k> friend class gtest_internal::Get;
        +
        +  tuple() : f0_(), f1_() {}
        +
        +  explicit tuple(GTEST_BY_REF_(T0) f0, GTEST_BY_REF_(T1) f1) : f0_(f0),
        +      f1_(f1) {}
        +
        +  tuple(const tuple& t) : f0_(t.f0_), f1_(t.f1_) {}
        +
        +  template <GTEST_2_TYPENAMES_(U)>
        +  tuple(const GTEST_2_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_) {}
        +  template <typename U0, typename U1>
        +  tuple(const ::std::pair<U0, U1>& p) : f0_(p.first), f1_(p.second) {}
        +
        +  tuple& operator=(const tuple& t) { return CopyFrom(t); }
        +
        +  template <GTEST_2_TYPENAMES_(U)>
        +  tuple& operator=(const GTEST_2_TUPLE_(U)& t) {
        +    return CopyFrom(t);
        +  }
        +  template <typename U0, typename U1>
        +  tuple& operator=(const ::std::pair<U0, U1>& p) {
        +    f0_ = p.first;
        +    f1_ = p.second;
        +    return *this;
        +  }
        +
        +  GTEST_DECLARE_TUPLE_AS_FRIEND_
        +
        +  template <GTEST_2_TYPENAMES_(U)>
        +  tuple& CopyFrom(const GTEST_2_TUPLE_(U)& t) {
        +    f0_ = t.f0_;
        +    f1_ = t.f1_;
        +    return *this;
        +  }
        +
        +  T0 f0_;
        +  T1 f1_;
        +};
        +
        +template <GTEST_3_TYPENAMES_(T)>
        +class GTEST_3_TUPLE_(T) {
        + public:
        +  template <int k> friend class gtest_internal::Get;
        +
        +  tuple() : f0_(), f1_(), f2_() {}
        +
        +  explicit tuple(GTEST_BY_REF_(T0) f0, GTEST_BY_REF_(T1) f1,
        +      GTEST_BY_REF_(T2) f2) : f0_(f0), f1_(f1), f2_(f2) {}
        +
        +  tuple(const tuple& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_) {}
        +
        +  template <GTEST_3_TYPENAMES_(U)>
        +  tuple(const GTEST_3_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_) {}
        +
        +  tuple& operator=(const tuple& t) { return CopyFrom(t); }
        +
        +  template <GTEST_3_TYPENAMES_(U)>
        +  tuple& operator=(const GTEST_3_TUPLE_(U)& t) {
        +    return CopyFrom(t);
        +  }
        +
        +  GTEST_DECLARE_TUPLE_AS_FRIEND_
        +
        +  template <GTEST_3_TYPENAMES_(U)>
        +  tuple& CopyFrom(const GTEST_3_TUPLE_(U)& t) {
        +    f0_ = t.f0_;
        +    f1_ = t.f1_;
        +    f2_ = t.f2_;
        +    return *this;
        +  }
        +
        +  T0 f0_;
        +  T1 f1_;
        +  T2 f2_;
        +};
        +
        +template <GTEST_4_TYPENAMES_(T)>
        +class GTEST_4_TUPLE_(T) {
        + public:
        +  template <int k> friend class gtest_internal::Get;
        +
        +  tuple() : f0_(), f1_(), f2_(), f3_() {}
        +
        +  explicit tuple(GTEST_BY_REF_(T0) f0, GTEST_BY_REF_(T1) f1,
        +      GTEST_BY_REF_(T2) f2, GTEST_BY_REF_(T3) f3) : f0_(f0), f1_(f1), f2_(f2),
        +      f3_(f3) {}
        +
        +  tuple(const tuple& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), f3_(t.f3_) {}
        +
        +  template <GTEST_4_TYPENAMES_(U)>
        +  tuple(const GTEST_4_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_),
        +      f3_(t.f3_) {}
        +
        +  tuple& operator=(const tuple& t) { return CopyFrom(t); }
        +
        +  template <GTEST_4_TYPENAMES_(U)>
        +  tuple& operator=(const GTEST_4_TUPLE_(U)& t) {
        +    return CopyFrom(t);
        +  }
        +
        +  GTEST_DECLARE_TUPLE_AS_FRIEND_
        +
        +  template <GTEST_4_TYPENAMES_(U)>
        +  tuple& CopyFrom(const GTEST_4_TUPLE_(U)& t) {
        +    f0_ = t.f0_;
        +    f1_ = t.f1_;
        +    f2_ = t.f2_;
        +    f3_ = t.f3_;
        +    return *this;
        +  }
        +
        +  T0 f0_;
        +  T1 f1_;
        +  T2 f2_;
        +  T3 f3_;
        +};
        +
        +template <GTEST_5_TYPENAMES_(T)>
        +class GTEST_5_TUPLE_(T) {
        + public:
        +  template <int k> friend class gtest_internal::Get;
        +
        +  tuple() : f0_(), f1_(), f2_(), f3_(), f4_() {}
        +
        +  explicit tuple(GTEST_BY_REF_(T0) f0, GTEST_BY_REF_(T1) f1,
        +      GTEST_BY_REF_(T2) f2, GTEST_BY_REF_(T3) f3,
        +      GTEST_BY_REF_(T4) f4) : f0_(f0), f1_(f1), f2_(f2), f3_(f3), f4_(f4) {}
        +
        +  tuple(const tuple& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), f3_(t.f3_),
        +      f4_(t.f4_) {}
        +
        +  template <GTEST_5_TYPENAMES_(U)>
        +  tuple(const GTEST_5_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_),
        +      f3_(t.f3_), f4_(t.f4_) {}
        +
        +  tuple& operator=(const tuple& t) { return CopyFrom(t); }
        +
        +  template <GTEST_5_TYPENAMES_(U)>
        +  tuple& operator=(const GTEST_5_TUPLE_(U)& t) {
        +    return CopyFrom(t);
        +  }
        +
        +  GTEST_DECLARE_TUPLE_AS_FRIEND_
        +
        +  template <GTEST_5_TYPENAMES_(U)>
        +  tuple& CopyFrom(const GTEST_5_TUPLE_(U)& t) {
        +    f0_ = t.f0_;
        +    f1_ = t.f1_;
        +    f2_ = t.f2_;
        +    f3_ = t.f3_;
        +    f4_ = t.f4_;
        +    return *this;
        +  }
        +
        +  T0 f0_;
        +  T1 f1_;
        +  T2 f2_;
        +  T3 f3_;
        +  T4 f4_;
        +};
        +
        +template <GTEST_6_TYPENAMES_(T)>
        +class GTEST_6_TUPLE_(T) {
        + public:
        +  template <int k> friend class gtest_internal::Get;
        +
        +  tuple() : f0_(), f1_(), f2_(), f3_(), f4_(), f5_() {}
        +
        +  explicit tuple(GTEST_BY_REF_(T0) f0, GTEST_BY_REF_(T1) f1,
        +      GTEST_BY_REF_(T2) f2, GTEST_BY_REF_(T3) f3, GTEST_BY_REF_(T4) f4,
        +      GTEST_BY_REF_(T5) f5) : f0_(f0), f1_(f1), f2_(f2), f3_(f3), f4_(f4),
        +      f5_(f5) {}
        +
        +  tuple(const tuple& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), f3_(t.f3_),
        +      f4_(t.f4_), f5_(t.f5_) {}
        +
        +  template <GTEST_6_TYPENAMES_(U)>
        +  tuple(const GTEST_6_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_),
        +      f3_(t.f3_), f4_(t.f4_), f5_(t.f5_) {}
        +
        +  tuple& operator=(const tuple& t) { return CopyFrom(t); }
        +
        +  template <GTEST_6_TYPENAMES_(U)>
        +  tuple& operator=(const GTEST_6_TUPLE_(U)& t) {
        +    return CopyFrom(t);
        +  }
        +
        +  GTEST_DECLARE_TUPLE_AS_FRIEND_
        +
        +  template <GTEST_6_TYPENAMES_(U)>
        +  tuple& CopyFrom(const GTEST_6_TUPLE_(U)& t) {
        +    f0_ = t.f0_;
        +    f1_ = t.f1_;
        +    f2_ = t.f2_;
        +    f3_ = t.f3_;
        +    f4_ = t.f4_;
        +    f5_ = t.f5_;
        +    return *this;
        +  }
        +
        +  T0 f0_;
        +  T1 f1_;
        +  T2 f2_;
        +  T3 f3_;
        +  T4 f4_;
        +  T5 f5_;
        +};
        +
        +template <GTEST_7_TYPENAMES_(T)>
        +class GTEST_7_TUPLE_(T) {
        + public:
        +  template <int k> friend class gtest_internal::Get;
        +
        +  tuple() : f0_(), f1_(), f2_(), f3_(), f4_(), f5_(), f6_() {}
        +
        +  explicit tuple(GTEST_BY_REF_(T0) f0, GTEST_BY_REF_(T1) f1,
        +      GTEST_BY_REF_(T2) f2, GTEST_BY_REF_(T3) f3, GTEST_BY_REF_(T4) f4,
        +      GTEST_BY_REF_(T5) f5, GTEST_BY_REF_(T6) f6) : f0_(f0), f1_(f1), f2_(f2),
        +      f3_(f3), f4_(f4), f5_(f5), f6_(f6) {}
        +
        +  tuple(const tuple& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), f3_(t.f3_),
        +      f4_(t.f4_), f5_(t.f5_), f6_(t.f6_) {}
        +
        +  template <GTEST_7_TYPENAMES_(U)>
        +  tuple(const GTEST_7_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_),
        +      f3_(t.f3_), f4_(t.f4_), f5_(t.f5_), f6_(t.f6_) {}
        +
        +  tuple& operator=(const tuple& t) { return CopyFrom(t); }
        +
        +  template <GTEST_7_TYPENAMES_(U)>
        +  tuple& operator=(const GTEST_7_TUPLE_(U)& t) {
        +    return CopyFrom(t);
        +  }
        +
        +  GTEST_DECLARE_TUPLE_AS_FRIEND_
        +
        +  template <GTEST_7_TYPENAMES_(U)>
        +  tuple& CopyFrom(const GTEST_7_TUPLE_(U)& t) {
        +    f0_ = t.f0_;
        +    f1_ = t.f1_;
        +    f2_ = t.f2_;
        +    f3_ = t.f3_;
        +    f4_ = t.f4_;
        +    f5_ = t.f5_;
        +    f6_ = t.f6_;
        +    return *this;
        +  }
        +
        +  T0 f0_;
        +  T1 f1_;
        +  T2 f2_;
        +  T3 f3_;
        +  T4 f4_;
        +  T5 f5_;
        +  T6 f6_;
        +};
        +
        +template <GTEST_8_TYPENAMES_(T)>
        +class GTEST_8_TUPLE_(T) {
        + public:
        +  template <int k> friend class gtest_internal::Get;
        +
        +  tuple() : f0_(), f1_(), f2_(), f3_(), f4_(), f5_(), f6_(), f7_() {}
        +
        +  explicit tuple(GTEST_BY_REF_(T0) f0, GTEST_BY_REF_(T1) f1,
        +      GTEST_BY_REF_(T2) f2, GTEST_BY_REF_(T3) f3, GTEST_BY_REF_(T4) f4,
        +      GTEST_BY_REF_(T5) f5, GTEST_BY_REF_(T6) f6,
        +      GTEST_BY_REF_(T7) f7) : f0_(f0), f1_(f1), f2_(f2), f3_(f3), f4_(f4),
        +      f5_(f5), f6_(f6), f7_(f7) {}
        +
        +  tuple(const tuple& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), f3_(t.f3_),
        +      f4_(t.f4_), f5_(t.f5_), f6_(t.f6_), f7_(t.f7_) {}
        +
        +  template <GTEST_8_TYPENAMES_(U)>
        +  tuple(const GTEST_8_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_),
        +      f3_(t.f3_), f4_(t.f4_), f5_(t.f5_), f6_(t.f6_), f7_(t.f7_) {}
        +
        +  tuple& operator=(const tuple& t) { return CopyFrom(t); }
        +
        +  template <GTEST_8_TYPENAMES_(U)>
        +  tuple& operator=(const GTEST_8_TUPLE_(U)& t) {
        +    return CopyFrom(t);
        +  }
        +
        +  GTEST_DECLARE_TUPLE_AS_FRIEND_
        +
        +  template <GTEST_8_TYPENAMES_(U)>
        +  tuple& CopyFrom(const GTEST_8_TUPLE_(U)& t) {
        +    f0_ = t.f0_;
        +    f1_ = t.f1_;
        +    f2_ = t.f2_;
        +    f3_ = t.f3_;
        +    f4_ = t.f4_;
        +    f5_ = t.f5_;
        +    f6_ = t.f6_;
        +    f7_ = t.f7_;
        +    return *this;
        +  }
        +
        +  T0 f0_;
        +  T1 f1_;
        +  T2 f2_;
        +  T3 f3_;
        +  T4 f4_;
        +  T5 f5_;
        +  T6 f6_;
        +  T7 f7_;
        +};
        +
        +template <GTEST_9_TYPENAMES_(T)>
        +class GTEST_9_TUPLE_(T) {
        + public:
        +  template <int k> friend class gtest_internal::Get;
        +
        +  tuple() : f0_(), f1_(), f2_(), f3_(), f4_(), f5_(), f6_(), f7_(), f8_() {}
        +
        +  explicit tuple(GTEST_BY_REF_(T0) f0, GTEST_BY_REF_(T1) f1,
        +      GTEST_BY_REF_(T2) f2, GTEST_BY_REF_(T3) f3, GTEST_BY_REF_(T4) f4,
        +      GTEST_BY_REF_(T5) f5, GTEST_BY_REF_(T6) f6, GTEST_BY_REF_(T7) f7,
        +      GTEST_BY_REF_(T8) f8) : f0_(f0), f1_(f1), f2_(f2), f3_(f3), f4_(f4),
        +      f5_(f5), f6_(f6), f7_(f7), f8_(f8) {}
        +
        +  tuple(const tuple& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), f3_(t.f3_),
        +      f4_(t.f4_), f5_(t.f5_), f6_(t.f6_), f7_(t.f7_), f8_(t.f8_) {}
        +
        +  template <GTEST_9_TYPENAMES_(U)>
        +  tuple(const GTEST_9_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_),
        +      f3_(t.f3_), f4_(t.f4_), f5_(t.f5_), f6_(t.f6_), f7_(t.f7_), f8_(t.f8_) {}
        +
        +  tuple& operator=(const tuple& t) { return CopyFrom(t); }
        +
        +  template <GTEST_9_TYPENAMES_(U)>
        +  tuple& operator=(const GTEST_9_TUPLE_(U)& t) {
        +    return CopyFrom(t);
        +  }
        +
        +  GTEST_DECLARE_TUPLE_AS_FRIEND_
        +
        +  template <GTEST_9_TYPENAMES_(U)>
        +  tuple& CopyFrom(const GTEST_9_TUPLE_(U)& t) {
        +    f0_ = t.f0_;
        +    f1_ = t.f1_;
        +    f2_ = t.f2_;
        +    f3_ = t.f3_;
        +    f4_ = t.f4_;
        +    f5_ = t.f5_;
        +    f6_ = t.f6_;
        +    f7_ = t.f7_;
        +    f8_ = t.f8_;
        +    return *this;
        +  }
        +
        +  T0 f0_;
        +  T1 f1_;
        +  T2 f2_;
        +  T3 f3_;
        +  T4 f4_;
        +  T5 f5_;
        +  T6 f6_;
        +  T7 f7_;
        +  T8 f8_;
        +};
        +
        +template <GTEST_10_TYPENAMES_(T)>
        +class tuple {
        + public:
        +  template <int k> friend class gtest_internal::Get;
        +
        +  tuple() : f0_(), f1_(), f2_(), f3_(), f4_(), f5_(), f6_(), f7_(), f8_(),
        +      f9_() {}
        +
        +  explicit tuple(GTEST_BY_REF_(T0) f0, GTEST_BY_REF_(T1) f1,
        +      GTEST_BY_REF_(T2) f2, GTEST_BY_REF_(T3) f3, GTEST_BY_REF_(T4) f4,
        +      GTEST_BY_REF_(T5) f5, GTEST_BY_REF_(T6) f6, GTEST_BY_REF_(T7) f7,
        +      GTEST_BY_REF_(T8) f8, GTEST_BY_REF_(T9) f9) : f0_(f0), f1_(f1), f2_(f2),
        +      f3_(f3), f4_(f4), f5_(f5), f6_(f6), f7_(f7), f8_(f8), f9_(f9) {}
        +
        +  tuple(const tuple& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), f3_(t.f3_),
        +      f4_(t.f4_), f5_(t.f5_), f6_(t.f6_), f7_(t.f7_), f8_(t.f8_), f9_(t.f9_) {}
        +
        +  template <GTEST_10_TYPENAMES_(U)>
        +  tuple(const GTEST_10_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_),
        +      f3_(t.f3_), f4_(t.f4_), f5_(t.f5_), f6_(t.f6_), f7_(t.f7_), f8_(t.f8_),
        +      f9_(t.f9_) {}
        +
        +  tuple& operator=(const tuple& t) { return CopyFrom(t); }
        +
        +  template <GTEST_10_TYPENAMES_(U)>
        +  tuple& operator=(const GTEST_10_TUPLE_(U)& t) {
        +    return CopyFrom(t);
        +  }
        +
        +  GTEST_DECLARE_TUPLE_AS_FRIEND_
        +
        +  template <GTEST_10_TYPENAMES_(U)>
        +  tuple& CopyFrom(const GTEST_10_TUPLE_(U)& t) {
        +    f0_ = t.f0_;
        +    f1_ = t.f1_;
        +    f2_ = t.f2_;
        +    f3_ = t.f3_;
        +    f4_ = t.f4_;
        +    f5_ = t.f5_;
        +    f6_ = t.f6_;
        +    f7_ = t.f7_;
        +    f8_ = t.f8_;
        +    f9_ = t.f9_;
        +    return *this;
        +  }
        +
        +  T0 f0_;
        +  T1 f1_;
        +  T2 f2_;
        +  T3 f3_;
        +  T4 f4_;
        +  T5 f5_;
        +  T6 f6_;
        +  T7 f7_;
        +  T8 f8_;
        +  T9 f9_;
        +};
        +
        +// 6.1.3.2 Tuple creation functions.
        +
        +// Known limitations: we don't support passing an
        +// std::tr1::reference_wrapper<T> to make_tuple().  And we don't
        +// implement tie().
        +
        +inline tuple<> make_tuple() { return tuple<>(); }
        +
        +template <GTEST_1_TYPENAMES_(T)>
        +inline GTEST_1_TUPLE_(T) make_tuple(const T0& f0) {
        +  return GTEST_1_TUPLE_(T)(f0);
        +}
        +
        +template <GTEST_2_TYPENAMES_(T)>
        +inline GTEST_2_TUPLE_(T) make_tuple(const T0& f0, const T1& f1) {
        +  return GTEST_2_TUPLE_(T)(f0, f1);
        +}
        +
        +template <GTEST_3_TYPENAMES_(T)>
        +inline GTEST_3_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2) {
        +  return GTEST_3_TUPLE_(T)(f0, f1, f2);
        +}
        +
        +template <GTEST_4_TYPENAMES_(T)>
        +inline GTEST_4_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2,
        +    const T3& f3) {
        +  return GTEST_4_TUPLE_(T)(f0, f1, f2, f3);
        +}
        +
        +template <GTEST_5_TYPENAMES_(T)>
        +inline GTEST_5_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2,
        +    const T3& f3, const T4& f4) {
        +  return GTEST_5_TUPLE_(T)(f0, f1, f2, f3, f4);
        +}
        +
        +template <GTEST_6_TYPENAMES_(T)>
        +inline GTEST_6_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2,
        +    const T3& f3, const T4& f4, const T5& f5) {
        +  return GTEST_6_TUPLE_(T)(f0, f1, f2, f3, f4, f5);
        +}
        +
        +template <GTEST_7_TYPENAMES_(T)>
        +inline GTEST_7_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2,
        +    const T3& f3, const T4& f4, const T5& f5, const T6& f6) {
        +  return GTEST_7_TUPLE_(T)(f0, f1, f2, f3, f4, f5, f6);
        +}
        +
        +template <GTEST_8_TYPENAMES_(T)>
        +inline GTEST_8_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2,
        +    const T3& f3, const T4& f4, const T5& f5, const T6& f6, const T7& f7) {
        +  return GTEST_8_TUPLE_(T)(f0, f1, f2, f3, f4, f5, f6, f7);
        +}
        +
        +template <GTEST_9_TYPENAMES_(T)>
        +inline GTEST_9_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2,
        +    const T3& f3, const T4& f4, const T5& f5, const T6& f6, const T7& f7,
        +    const T8& f8) {
        +  return GTEST_9_TUPLE_(T)(f0, f1, f2, f3, f4, f5, f6, f7, f8);
        +}
        +
        +template <GTEST_10_TYPENAMES_(T)>
        +inline GTEST_10_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2,
        +    const T3& f3, const T4& f4, const T5& f5, const T6& f6, const T7& f7,
        +    const T8& f8, const T9& f9) {
        +  return GTEST_10_TUPLE_(T)(f0, f1, f2, f3, f4, f5, f6, f7, f8, f9);
        +}
        +
        +// 6.1.3.3 Tuple helper classes.
        +
        +template <typename Tuple> struct tuple_size;
        +
        +template <GTEST_0_TYPENAMES_(T)>
        +struct tuple_size<GTEST_0_TUPLE_(T) > {
        +  static const int value = 0;
        +};
        +
        +template <GTEST_1_TYPENAMES_(T)>
        +struct tuple_size<GTEST_1_TUPLE_(T) > {
        +  static const int value = 1;
        +};
        +
        +template <GTEST_2_TYPENAMES_(T)>
        +struct tuple_size<GTEST_2_TUPLE_(T) > {
        +  static const int value = 2;
        +};
        +
        +template <GTEST_3_TYPENAMES_(T)>
        +struct tuple_size<GTEST_3_TUPLE_(T) > {
        +  static const int value = 3;
        +};
        +
        +template <GTEST_4_TYPENAMES_(T)>
        +struct tuple_size<GTEST_4_TUPLE_(T) > {
        +  static const int value = 4;
        +};
        +
        +template <GTEST_5_TYPENAMES_(T)>
        +struct tuple_size<GTEST_5_TUPLE_(T) > {
        +  static const int value = 5;
        +};
        +
        +template <GTEST_6_TYPENAMES_(T)>
        +struct tuple_size<GTEST_6_TUPLE_(T) > {
        +  static const int value = 6;
        +};
        +
        +template <GTEST_7_TYPENAMES_(T)>
        +struct tuple_size<GTEST_7_TUPLE_(T) > {
        +  static const int value = 7;
        +};
        +
        +template <GTEST_8_TYPENAMES_(T)>
        +struct tuple_size<GTEST_8_TUPLE_(T) > {
        +  static const int value = 8;
        +};
        +
        +template <GTEST_9_TYPENAMES_(T)>
        +struct tuple_size<GTEST_9_TUPLE_(T) > {
        +  static const int value = 9;
        +};
        +
        +template <GTEST_10_TYPENAMES_(T)>
        +struct tuple_size<GTEST_10_TUPLE_(T) > {
        +  static const int value = 10;
        +};
        +
        +template <int k, class Tuple>
        +struct tuple_element {
        +  typedef typename gtest_internal::TupleElement<
        +      k < (tuple_size<Tuple>::value), k, Tuple>::type type;
        +};
        +
        +#define GTEST_TUPLE_ELEMENT_(k, Tuple) typename tuple_element<k, Tuple >::type
        +
        +// 6.1.3.4 Element access.
        +
        +namespace gtest_internal {
        +
        +template <>
        +class Get<0> {
        + public:
        +  template <class Tuple>
        +  static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(0, Tuple))
        +  Field(Tuple& t) { return t.f0_; }  // NOLINT
        +
        +  template <class Tuple>
        +  static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(0, Tuple))
        +  ConstField(const Tuple& t) { return t.f0_; }
        +};
        +
        +template <>
        +class Get<1> {
        + public:
        +  template <class Tuple>
        +  static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(1, Tuple))
        +  Field(Tuple& t) { return t.f1_; }  // NOLINT
        +
        +  template <class Tuple>
        +  static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(1, Tuple))
        +  ConstField(const Tuple& t) { return t.f1_; }
        +};
        +
        +template <>
        +class Get<2> {
        + public:
        +  template <class Tuple>
        +  static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(2, Tuple))
        +  Field(Tuple& t) { return t.f2_; }  // NOLINT
        +
        +  template <class Tuple>
        +  static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(2, Tuple))
        +  ConstField(const Tuple& t) { return t.f2_; }
        +};
        +
        +template <>
        +class Get<3> {
        + public:
        +  template <class Tuple>
        +  static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(3, Tuple))
        +  Field(Tuple& t) { return t.f3_; }  // NOLINT
        +
        +  template <class Tuple>
        +  static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(3, Tuple))
        +  ConstField(const Tuple& t) { return t.f3_; }
        +};
        +
        +template <>
        +class Get<4> {
        + public:
        +  template <class Tuple>
        +  static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(4, Tuple))
        +  Field(Tuple& t) { return t.f4_; }  // NOLINT
        +
        +  template <class Tuple>
        +  static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(4, Tuple))
        +  ConstField(const Tuple& t) { return t.f4_; }
        +};
        +
        +template <>
        +class Get<5> {
        + public:
        +  template <class Tuple>
        +  static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(5, Tuple))
        +  Field(Tuple& t) { return t.f5_; }  // NOLINT
        +
        +  template <class Tuple>
        +  static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(5, Tuple))
        +  ConstField(const Tuple& t) { return t.f5_; }
        +};
        +
        +template <>
        +class Get<6> {
        + public:
        +  template <class Tuple>
        +  static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(6, Tuple))
        +  Field(Tuple& t) { return t.f6_; }  // NOLINT
        +
        +  template <class Tuple>
        +  static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(6, Tuple))
        +  ConstField(const Tuple& t) { return t.f6_; }
        +};
        +
        +template <>
        +class Get<7> {
        + public:
        +  template <class Tuple>
        +  static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(7, Tuple))
        +  Field(Tuple& t) { return t.f7_; }  // NOLINT
        +
        +  template <class Tuple>
        +  static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(7, Tuple))
        +  ConstField(const Tuple& t) { return t.f7_; }
        +};
        +
        +template <>
        +class Get<8> {
        + public:
        +  template <class Tuple>
        +  static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(8, Tuple))
        +  Field(Tuple& t) { return t.f8_; }  // NOLINT
        +
        +  template <class Tuple>
        +  static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(8, Tuple))
        +  ConstField(const Tuple& t) { return t.f8_; }
        +};
        +
        +template <>
        +class Get<9> {
        + public:
        +  template <class Tuple>
        +  static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(9, Tuple))
        +  Field(Tuple& t) { return t.f9_; }  // NOLINT
        +
        +  template <class Tuple>
        +  static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(9, Tuple))
        +  ConstField(const Tuple& t) { return t.f9_; }
        +};
        +
        +}  // namespace gtest_internal
        +
        +template <int k, GTEST_10_TYPENAMES_(T)>
        +GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(k, GTEST_10_TUPLE_(T)))
        +get(GTEST_10_TUPLE_(T)& t) {
        +  return gtest_internal::Get<k>::Field(t);
        +}
        +
        +template <int k, GTEST_10_TYPENAMES_(T)>
        +GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(k,  GTEST_10_TUPLE_(T)))
        +get(const GTEST_10_TUPLE_(T)& t) {
        +  return gtest_internal::Get<k>::ConstField(t);
        +}
        +
        +// 6.1.3.5 Relational operators
        +
        +// We only implement == and !=, as we don't have a need for the rest yet.
        +
        +namespace gtest_internal {
        +
        +// SameSizeTuplePrefixComparator<k, k>::Eq(t1, t2) returns true if the
        +// first k fields of t1 equals the first k fields of t2.
        +// SameSizeTuplePrefixComparator(k1, k2) would be a compiler error if
        +// k1 != k2.
        +template <int kSize1, int kSize2>
        +struct SameSizeTuplePrefixComparator;
        +
        +template <>
        +struct SameSizeTuplePrefixComparator<0, 0> {
        +  template <class Tuple1, class Tuple2>
        +  static bool Eq(const Tuple1& /* t1 */, const Tuple2& /* t2 */) {
        +    return true;
        +  }
        +};
        +
        +template <int k>
        +struct SameSizeTuplePrefixComparator<k, k> {
        +  template <class Tuple1, class Tuple2>
        +  static bool Eq(const Tuple1& t1, const Tuple2& t2) {
        +    return SameSizeTuplePrefixComparator<k - 1, k - 1>::Eq(t1, t2) &&
        +        ::std::tr1::get<k - 1>(t1) == ::std::tr1::get<k - 1>(t2);
        +  }
        +};
        +
        +}  // namespace gtest_internal
        +
        +template <GTEST_10_TYPENAMES_(T), GTEST_10_TYPENAMES_(U)>
        +inline bool operator==(const GTEST_10_TUPLE_(T)& t,
        +                       const GTEST_10_TUPLE_(U)& u) {
        +  return gtest_internal::SameSizeTuplePrefixComparator<
        +      tuple_size<GTEST_10_TUPLE_(T) >::value,
        +      tuple_size<GTEST_10_TUPLE_(U) >::value>::Eq(t, u);
        +}
        +
        +template <GTEST_10_TYPENAMES_(T), GTEST_10_TYPENAMES_(U)>
        +inline bool operator!=(const GTEST_10_TUPLE_(T)& t,
        +                       const GTEST_10_TUPLE_(U)& u) { return !(t == u); }
        +
        +// 6.1.4 Pairs.
        +// Unimplemented.
        +
        +}  // namespace tr1
        +}  // namespace std
        +
        +#undef GTEST_0_TUPLE_
        +#undef GTEST_1_TUPLE_
        +#undef GTEST_2_TUPLE_
        +#undef GTEST_3_TUPLE_
        +#undef GTEST_4_TUPLE_
        +#undef GTEST_5_TUPLE_
        +#undef GTEST_6_TUPLE_
        +#undef GTEST_7_TUPLE_
        +#undef GTEST_8_TUPLE_
        +#undef GTEST_9_TUPLE_
        +#undef GTEST_10_TUPLE_
        +
        +#undef GTEST_0_TYPENAMES_
        +#undef GTEST_1_TYPENAMES_
        +#undef GTEST_2_TYPENAMES_
        +#undef GTEST_3_TYPENAMES_
        +#undef GTEST_4_TYPENAMES_
        +#undef GTEST_5_TYPENAMES_
        +#undef GTEST_6_TYPENAMES_
        +#undef GTEST_7_TYPENAMES_
        +#undef GTEST_8_TYPENAMES_
        +#undef GTEST_9_TYPENAMES_
        +#undef GTEST_10_TYPENAMES_
        +
        +#undef GTEST_DECLARE_TUPLE_AS_FRIEND_
        +#undef GTEST_BY_REF_
        +#undef GTEST_ADD_REF_
        +#undef GTEST_TUPLE_ELEMENT_
        +
        +#endif  // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TUPLE_H_
        diff --git a/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-tuple.h.pump b/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-tuple.h.pump
        new file mode 100644
        index 0000000..429ddfe
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-tuple.h.pump
        @@ -0,0 +1,347 @@
        +$$ -*- mode: c++; -*-
        +$var n = 10  $$ Maximum number of tuple fields we want to support.
        +$$ This meta comment fixes auto-indentation in Emacs. }}
        +// Copyright 2009 Google Inc.
        +// All Rights Reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +// Implements a subset of TR1 tuple needed by Google Test and Google Mock.
        +
        +#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TUPLE_H_
        +#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TUPLE_H_
        +
        +#include <utility>  // For ::std::pair.
        +
        +// The compiler used in Symbian has a bug that prevents us from declaring the
        +// tuple template as a friend (it complains that tuple is redefined).  This
        +// hack bypasses the bug by declaring the members that should otherwise be
        +// private as public.
        +// Sun Studio versions < 12 also have the above bug.
        +#if defined(__SYMBIAN32__) || (defined(__SUNPRO_CC) && __SUNPRO_CC < 0x590)
        +# define GTEST_DECLARE_TUPLE_AS_FRIEND_ public:
        +#else
        +# define GTEST_DECLARE_TUPLE_AS_FRIEND_ \
        +    template <GTEST_$(n)_TYPENAMES_(U)> friend class tuple; \
        +   private:
        +#endif
        +
        +// Visual Studio 2010, 2012, and 2013 define symbols in std::tr1 that conflict
        +// with our own definitions. Therefore using our own tuple does not work on
        +// those compilers.
        +#if defined(_MSC_VER) && _MSC_VER >= 1600  /* 1600 is Visual Studio 2010 */
        +# error "gtest's tuple doesn't compile on Visual Studio 2010 or later. \
        +GTEST_USE_OWN_TR1_TUPLE must be set to 0 on those compilers."
        +#endif
        +
        +
        +$range i 0..n-1
        +$range j 0..n
        +$range k 1..n
        +// GTEST_n_TUPLE_(T) is the type of an n-tuple.
        +#define GTEST_0_TUPLE_(T) tuple<>
        +
        +$for k [[
        +$range m 0..k-1
        +$range m2 k..n-1
        +#define GTEST_$(k)_TUPLE_(T) tuple<$for m, [[T##$m]]$for m2 [[, void]]>
        +
        +]]
        +
        +// GTEST_n_TYPENAMES_(T) declares a list of n typenames.
        +
        +$for j [[
        +$range m 0..j-1
        +#define GTEST_$(j)_TYPENAMES_(T) $for m, [[typename T##$m]]
        +
        +
        +]]
        +
        +// In theory, defining stuff in the ::std namespace is undefined
        +// behavior.  We can do this as we are playing the role of a standard
        +// library vendor.
        +namespace std {
        +namespace tr1 {
        +
        +template <$for i, [[typename T$i = void]]>
        +class tuple;
        +
        +// Anything in namespace gtest_internal is Google Test's INTERNAL
        +// IMPLEMENTATION DETAIL and MUST NOT BE USED DIRECTLY in user code.
        +namespace gtest_internal {
        +
        +// ByRef<T>::type is T if T is a reference; otherwise it's const T&.
        +template <typename T>
        +struct ByRef { typedef const T& type; };  // NOLINT
        +template <typename T>
        +struct ByRef<T&> { typedef T& type; };  // NOLINT
        +
        +// A handy wrapper for ByRef.
        +#define GTEST_BY_REF_(T) typename ::std::tr1::gtest_internal::ByRef<T>::type
        +
        +// AddRef<T>::type is T if T is a reference; otherwise it's T&.  This
        +// is the same as tr1::add_reference<T>::type.
        +template <typename T>
        +struct AddRef { typedef T& type; };  // NOLINT
        +template <typename T>
        +struct AddRef<T&> { typedef T& type; };  // NOLINT
        +
        +// A handy wrapper for AddRef.
        +#define GTEST_ADD_REF_(T) typename ::std::tr1::gtest_internal::AddRef<T>::type
        +
        +// A helper for implementing get<k>().
        +template <int k> class Get;
        +
        +// A helper for implementing tuple_element<k, T>.  kIndexValid is true
        +// iff k < the number of fields in tuple type T.
        +template <bool kIndexValid, int kIndex, class Tuple>
        +struct TupleElement;
        +
        +
        +$for i [[
        +template <GTEST_$(n)_TYPENAMES_(T)>
        +struct TupleElement<true, $i, GTEST_$(n)_TUPLE_(T) > {
        +  typedef T$i type;
        +};
        +
        +
        +]]
        +}  // namespace gtest_internal
        +
        +template <>
        +class tuple<> {
        + public:
        +  tuple() {}
        +  tuple(const tuple& /* t */)  {}
        +  tuple& operator=(const tuple& /* t */) { return *this; }
        +};
        +
        +
        +$for k [[
        +$range m 0..k-1
        +template <GTEST_$(k)_TYPENAMES_(T)>
        +class $if k < n [[GTEST_$(k)_TUPLE_(T)]] $else [[tuple]] {
        + public:
        +  template <int k> friend class gtest_internal::Get;
        +
        +  tuple() : $for m, [[f$(m)_()]] {}
        +
        +  explicit tuple($for m, [[GTEST_BY_REF_(T$m) f$m]]) : [[]]
        +$for m, [[f$(m)_(f$m)]] {}
        +
        +  tuple(const tuple& t) : $for m, [[f$(m)_(t.f$(m)_)]] {}
        +
        +  template <GTEST_$(k)_TYPENAMES_(U)>
        +  tuple(const GTEST_$(k)_TUPLE_(U)& t) : $for m, [[f$(m)_(t.f$(m)_)]] {}
        +
        +$if k == 2 [[
        +  template <typename U0, typename U1>
        +  tuple(const ::std::pair<U0, U1>& p) : f0_(p.first), f1_(p.second) {}
        +
        +]]
        +
        +  tuple& operator=(const tuple& t) { return CopyFrom(t); }
        +
        +  template <GTEST_$(k)_TYPENAMES_(U)>
        +  tuple& operator=(const GTEST_$(k)_TUPLE_(U)& t) {
        +    return CopyFrom(t);
        +  }
        +
        +$if k == 2 [[
        +  template <typename U0, typename U1>
        +  tuple& operator=(const ::std::pair<U0, U1>& p) {
        +    f0_ = p.first;
        +    f1_ = p.second;
        +    return *this;
        +  }
        +
        +]]
        +
        +  GTEST_DECLARE_TUPLE_AS_FRIEND_
        +
        +  template <GTEST_$(k)_TYPENAMES_(U)>
        +  tuple& CopyFrom(const GTEST_$(k)_TUPLE_(U)& t) {
        +
        +$for m [[
        +    f$(m)_ = t.f$(m)_;
        +
        +]]
        +    return *this;
        +  }
        +
        +
        +$for m [[
        +  T$m f$(m)_;
        +
        +]]
        +};
        +
        +
        +]]
        +// 6.1.3.2 Tuple creation functions.
        +
        +// Known limitations: we don't support passing an
        +// std::tr1::reference_wrapper<T> to make_tuple().  And we don't
        +// implement tie().
        +
        +inline tuple<> make_tuple() { return tuple<>(); }
        +
        +$for k [[
        +$range m 0..k-1
        +
        +template <GTEST_$(k)_TYPENAMES_(T)>
        +inline GTEST_$(k)_TUPLE_(T) make_tuple($for m, [[const T$m& f$m]]) {
        +  return GTEST_$(k)_TUPLE_(T)($for m, [[f$m]]);
        +}
        +
        +]]
        +
        +// 6.1.3.3 Tuple helper classes.
        +
        +template <typename Tuple> struct tuple_size;
        +
        +
        +$for j [[
        +template <GTEST_$(j)_TYPENAMES_(T)>
        +struct tuple_size<GTEST_$(j)_TUPLE_(T) > {
        +  static const int value = $j;
        +};
        +
        +
        +]]
        +template <int k, class Tuple>
        +struct tuple_element {
        +  typedef typename gtest_internal::TupleElement<
        +      k < (tuple_size<Tuple>::value), k, Tuple>::type type;
        +};
        +
        +#define GTEST_TUPLE_ELEMENT_(k, Tuple) typename tuple_element<k, Tuple >::type
        +
        +// 6.1.3.4 Element access.
        +
        +namespace gtest_internal {
        +
        +
        +$for i [[
        +template <>
        +class Get<$i> {
        + public:
        +  template <class Tuple>
        +  static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_($i, Tuple))
        +  Field(Tuple& t) { return t.f$(i)_; }  // NOLINT
        +
        +  template <class Tuple>
        +  static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_($i, Tuple))
        +  ConstField(const Tuple& t) { return t.f$(i)_; }
        +};
        +
        +
        +]]
        +}  // namespace gtest_internal
        +
        +template <int k, GTEST_$(n)_TYPENAMES_(T)>
        +GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(k, GTEST_$(n)_TUPLE_(T)))
        +get(GTEST_$(n)_TUPLE_(T)& t) {
        +  return gtest_internal::Get<k>::Field(t);
        +}
        +
        +template <int k, GTEST_$(n)_TYPENAMES_(T)>
        +GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(k,  GTEST_$(n)_TUPLE_(T)))
        +get(const GTEST_$(n)_TUPLE_(T)& t) {
        +  return gtest_internal::Get<k>::ConstField(t);
        +}
        +
        +// 6.1.3.5 Relational operators
        +
        +// We only implement == and !=, as we don't have a need for the rest yet.
        +
        +namespace gtest_internal {
        +
        +// SameSizeTuplePrefixComparator<k, k>::Eq(t1, t2) returns true if the
        +// first k fields of t1 equals the first k fields of t2.
        +// SameSizeTuplePrefixComparator(k1, k2) would be a compiler error if
        +// k1 != k2.
        +template <int kSize1, int kSize2>
        +struct SameSizeTuplePrefixComparator;
        +
        +template <>
        +struct SameSizeTuplePrefixComparator<0, 0> {
        +  template <class Tuple1, class Tuple2>
        +  static bool Eq(const Tuple1& /* t1 */, const Tuple2& /* t2 */) {
        +    return true;
        +  }
        +};
        +
        +template <int k>
        +struct SameSizeTuplePrefixComparator<k, k> {
        +  template <class Tuple1, class Tuple2>
        +  static bool Eq(const Tuple1& t1, const Tuple2& t2) {
        +    return SameSizeTuplePrefixComparator<k - 1, k - 1>::Eq(t1, t2) &&
        +        ::std::tr1::get<k - 1>(t1) == ::std::tr1::get<k - 1>(t2);
        +  }
        +};
        +
        +}  // namespace gtest_internal
        +
        +template <GTEST_$(n)_TYPENAMES_(T), GTEST_$(n)_TYPENAMES_(U)>
        +inline bool operator==(const GTEST_$(n)_TUPLE_(T)& t,
        +                       const GTEST_$(n)_TUPLE_(U)& u) {
        +  return gtest_internal::SameSizeTuplePrefixComparator<
        +      tuple_size<GTEST_$(n)_TUPLE_(T) >::value,
        +      tuple_size<GTEST_$(n)_TUPLE_(U) >::value>::Eq(t, u);
        +}
        +
        +template <GTEST_$(n)_TYPENAMES_(T), GTEST_$(n)_TYPENAMES_(U)>
        +inline bool operator!=(const GTEST_$(n)_TUPLE_(T)& t,
        +                       const GTEST_$(n)_TUPLE_(U)& u) { return !(t == u); }
        +
        +// 6.1.4 Pairs.
        +// Unimplemented.
        +
        +}  // namespace tr1
        +}  // namespace std
        +
        +
        +$for j [[
        +#undef GTEST_$(j)_TUPLE_
        +
        +]]
        +
        +
        +$for j [[
        +#undef GTEST_$(j)_TYPENAMES_
        +
        +]]
        +
        +#undef GTEST_DECLARE_TUPLE_AS_FRIEND_
        +#undef GTEST_BY_REF_
        +#undef GTEST_ADD_REF_
        +#undef GTEST_TUPLE_ELEMENT_
        +
        +#endif  // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TUPLE_H_
        diff --git a/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-type-util.h b/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-type-util.h
        new file mode 100644
        index 0000000..e46f7cf
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-type-util.h
        @@ -0,0 +1,3331 @@
        +// This file was GENERATED by command:
        +//     pump.py gtest-type-util.h.pump
        +// DO NOT EDIT BY HAND!!!
        +
        +// Copyright 2008 Google Inc.
        +// All Rights Reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +// Type utilities needed for implementing typed and type-parameterized
        +// tests.  This file is generated by a SCRIPT.  DO NOT EDIT BY HAND!
        +//
        +// Currently we support at most 50 types in a list, and at most 50
        +// type-parameterized tests in one type-parameterized test case.
        +// Please contact googletestframework@googlegroups.com if you need
        +// more.
        +
        +#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_
        +#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_
        +
        +#include "gtest/internal/gtest-port.h"
        +
        +// #ifdef __GNUC__ is too general here.  It is possible to use gcc without using
        +// libstdc++ (which is where cxxabi.h comes from).
        +# if GTEST_HAS_CXXABI_H_
        +#  include <cxxabi.h>
        +# elif defined(__HP_aCC)
        +#  include <acxx_demangle.h>
        +# endif  // GTEST_HASH_CXXABI_H_
        +
        +namespace testing {
        +namespace internal {
        +
        +// GetTypeName<T>() returns a human-readable name of type T.
        +// NB: This function is also used in Google Mock, so don't move it inside of
        +// the typed-test-only section below.
        +template <typename T>
        +std::string GetTypeName() {
        +# if GTEST_HAS_RTTI
        +
        +  const char* const name = typeid(T).name();
        +#  if GTEST_HAS_CXXABI_H_ || defined(__HP_aCC)
        +  int status = 0;
        +  // gcc's implementation of typeid(T).name() mangles the type name,
        +  // so we have to demangle it.
        +#   if GTEST_HAS_CXXABI_H_
        +  using abi::__cxa_demangle;
        +#   endif  // GTEST_HAS_CXXABI_H_
        +  char* const readable_name = __cxa_demangle(name, 0, 0, &status);
        +  const std::string name_str(status == 0 ? readable_name : name);
        +  free(readable_name);
        +  return name_str;
        +#  else
        +  return name;
        +#  endif  // GTEST_HAS_CXXABI_H_ || __HP_aCC
        +
        +# else
        +
        +  return "<type>";
        +
        +# endif  // GTEST_HAS_RTTI
        +}
        +
        +#if GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P
        +
        +// AssertyTypeEq<T1, T2>::type is defined iff T1 and T2 are the same
        +// type.  This can be used as a compile-time assertion to ensure that
        +// two types are equal.
        +
        +template <typename T1, typename T2>
        +struct AssertTypeEq;
        +
        +template <typename T>
        +struct AssertTypeEq<T, T> {
        +  typedef bool type;
        +};
        +
        +// A unique type used as the default value for the arguments of class
        +// template Types.  This allows us to simulate variadic templates
        +// (e.g. Types<int>, Type<int, double>, and etc), which C++ doesn't
        +// support directly.
        +struct None {};
        +
        +// The following family of struct and struct templates are used to
        +// represent type lists.  In particular, TypesN<T1, T2, ..., TN>
        +// represents a type list with N types (T1, T2, ..., and TN) in it.
        +// Except for Types0, every struct in the family has two member types:
        +// Head for the first type in the list, and Tail for the rest of the
        +// list.
        +
        +// The empty type list.
        +struct Types0 {};
        +
        +// Type lists of length 1, 2, 3, and so on.
        +
        +template <typename T1>
        +struct Types1 {
        +  typedef T1 Head;
        +  typedef Types0 Tail;
        +};
        +template <typename T1, typename T2>
        +struct Types2 {
        +  typedef T1 Head;
        +  typedef Types1<T2> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3>
        +struct Types3 {
        +  typedef T1 Head;
        +  typedef Types2<T2, T3> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4>
        +struct Types4 {
        +  typedef T1 Head;
        +  typedef Types3<T2, T3, T4> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5>
        +struct Types5 {
        +  typedef T1 Head;
        +  typedef Types4<T2, T3, T4, T5> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6>
        +struct Types6 {
        +  typedef T1 Head;
        +  typedef Types5<T2, T3, T4, T5, T6> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7>
        +struct Types7 {
        +  typedef T1 Head;
        +  typedef Types6<T2, T3, T4, T5, T6, T7> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8>
        +struct Types8 {
        +  typedef T1 Head;
        +  typedef Types7<T2, T3, T4, T5, T6, T7, T8> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9>
        +struct Types9 {
        +  typedef T1 Head;
        +  typedef Types8<T2, T3, T4, T5, T6, T7, T8, T9> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10>
        +struct Types10 {
        +  typedef T1 Head;
        +  typedef Types9<T2, T3, T4, T5, T6, T7, T8, T9, T10> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11>
        +struct Types11 {
        +  typedef T1 Head;
        +  typedef Types10<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12>
        +struct Types12 {
        +  typedef T1 Head;
        +  typedef Types11<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13>
        +struct Types13 {
        +  typedef T1 Head;
        +  typedef Types12<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14>
        +struct Types14 {
        +  typedef T1 Head;
        +  typedef Types13<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15>
        +struct Types15 {
        +  typedef T1 Head;
        +  typedef Types14<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +      T15> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16>
        +struct Types16 {
        +  typedef T1 Head;
        +  typedef Types15<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +      T16> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17>
        +struct Types17 {
        +  typedef T1 Head;
        +  typedef Types16<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +      T16, T17> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18>
        +struct Types18 {
        +  typedef T1 Head;
        +  typedef Types17<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +      T16, T17, T18> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19>
        +struct Types19 {
        +  typedef T1 Head;
        +  typedef Types18<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +      T16, T17, T18, T19> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20>
        +struct Types20 {
        +  typedef T1 Head;
        +  typedef Types19<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +      T16, T17, T18, T19, T20> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21>
        +struct Types21 {
        +  typedef T1 Head;
        +  typedef Types20<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +      T16, T17, T18, T19, T20, T21> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22>
        +struct Types22 {
        +  typedef T1 Head;
        +  typedef Types21<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +      T16, T17, T18, T19, T20, T21, T22> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23>
        +struct Types23 {
        +  typedef T1 Head;
        +  typedef Types22<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +      T16, T17, T18, T19, T20, T21, T22, T23> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24>
        +struct Types24 {
        +  typedef T1 Head;
        +  typedef Types23<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +      T16, T17, T18, T19, T20, T21, T22, T23, T24> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25>
        +struct Types25 {
        +  typedef T1 Head;
        +  typedef Types24<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +      T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26>
        +struct Types26 {
        +  typedef T1 Head;
        +  typedef Types25<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +      T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27>
        +struct Types27 {
        +  typedef T1 Head;
        +  typedef Types26<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +      T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28>
        +struct Types28 {
        +  typedef T1 Head;
        +  typedef Types27<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +      T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29>
        +struct Types29 {
        +  typedef T1 Head;
        +  typedef Types28<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +      T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +      T29> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30>
        +struct Types30 {
        +  typedef T1 Head;
        +  typedef Types29<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +      T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +      T30> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31>
        +struct Types31 {
        +  typedef T1 Head;
        +  typedef Types30<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +      T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +      T30, T31> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32>
        +struct Types32 {
        +  typedef T1 Head;
        +  typedef Types31<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +      T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +      T30, T31, T32> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33>
        +struct Types33 {
        +  typedef T1 Head;
        +  typedef Types32<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +      T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +      T30, T31, T32, T33> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34>
        +struct Types34 {
        +  typedef T1 Head;
        +  typedef Types33<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +      T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +      T30, T31, T32, T33, T34> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35>
        +struct Types35 {
        +  typedef T1 Head;
        +  typedef Types34<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +      T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +      T30, T31, T32, T33, T34, T35> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36>
        +struct Types36 {
        +  typedef T1 Head;
        +  typedef Types35<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +      T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +      T30, T31, T32, T33, T34, T35, T36> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37>
        +struct Types37 {
        +  typedef T1 Head;
        +  typedef Types36<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +      T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +      T30, T31, T32, T33, T34, T35, T36, T37> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38>
        +struct Types38 {
        +  typedef T1 Head;
        +  typedef Types37<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +      T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +      T30, T31, T32, T33, T34, T35, T36, T37, T38> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39>
        +struct Types39 {
        +  typedef T1 Head;
        +  typedef Types38<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +      T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +      T30, T31, T32, T33, T34, T35, T36, T37, T38, T39> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40>
        +struct Types40 {
        +  typedef T1 Head;
        +  typedef Types39<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +      T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +      T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41>
        +struct Types41 {
        +  typedef T1 Head;
        +  typedef Types40<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +      T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +      T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41, typename T42>
        +struct Types42 {
        +  typedef T1 Head;
        +  typedef Types41<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +      T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +      T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41, typename T42, typename T43>
        +struct Types43 {
        +  typedef T1 Head;
        +  typedef Types42<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +      T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +      T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
        +      T43> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41, typename T42, typename T43, typename T44>
        +struct Types44 {
        +  typedef T1 Head;
        +  typedef Types43<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +      T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +      T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
        +      T44> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41, typename T42, typename T43, typename T44, typename T45>
        +struct Types45 {
        +  typedef T1 Head;
        +  typedef Types44<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +      T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +      T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
        +      T44, T45> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41, typename T42, typename T43, typename T44, typename T45,
        +    typename T46>
        +struct Types46 {
        +  typedef T1 Head;
        +  typedef Types45<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +      T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +      T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
        +      T44, T45, T46> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41, typename T42, typename T43, typename T44, typename T45,
        +    typename T46, typename T47>
        +struct Types47 {
        +  typedef T1 Head;
        +  typedef Types46<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +      T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +      T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
        +      T44, T45, T46, T47> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41, typename T42, typename T43, typename T44, typename T45,
        +    typename T46, typename T47, typename T48>
        +struct Types48 {
        +  typedef T1 Head;
        +  typedef Types47<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +      T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +      T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
        +      T44, T45, T46, T47, T48> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41, typename T42, typename T43, typename T44, typename T45,
        +    typename T46, typename T47, typename T48, typename T49>
        +struct Types49 {
        +  typedef T1 Head;
        +  typedef Types48<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +      T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +      T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
        +      T44, T45, T46, T47, T48, T49> Tail;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41, typename T42, typename T43, typename T44, typename T45,
        +    typename T46, typename T47, typename T48, typename T49, typename T50>
        +struct Types50 {
        +  typedef T1 Head;
        +  typedef Types49<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +      T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +      T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
        +      T44, T45, T46, T47, T48, T49, T50> Tail;
        +};
        +
        +
        +}  // namespace internal
        +
        +// We don't want to require the users to write TypesN<...> directly,
        +// as that would require them to count the length.  Types<...> is much
        +// easier to write, but generates horrible messages when there is a
        +// compiler error, as gcc insists on printing out each template
        +// argument, even if it has the default value (this means Types<int>
        +// will appear as Types<int, None, None, ..., None> in the compiler
        +// errors).
        +//
        +// Our solution is to combine the best part of the two approaches: a
        +// user would write Types<T1, ..., TN>, and Google Test will translate
        +// that to TypesN<T1, ..., TN> internally to make error messages
        +// readable.  The translation is done by the 'type' member of the
        +// Types template.
        +template <typename T1 = internal::None, typename T2 = internal::None,
        +    typename T3 = internal::None, typename T4 = internal::None,
        +    typename T5 = internal::None, typename T6 = internal::None,
        +    typename T7 = internal::None, typename T8 = internal::None,
        +    typename T9 = internal::None, typename T10 = internal::None,
        +    typename T11 = internal::None, typename T12 = internal::None,
        +    typename T13 = internal::None, typename T14 = internal::None,
        +    typename T15 = internal::None, typename T16 = internal::None,
        +    typename T17 = internal::None, typename T18 = internal::None,
        +    typename T19 = internal::None, typename T20 = internal::None,
        +    typename T21 = internal::None, typename T22 = internal::None,
        +    typename T23 = internal::None, typename T24 = internal::None,
        +    typename T25 = internal::None, typename T26 = internal::None,
        +    typename T27 = internal::None, typename T28 = internal::None,
        +    typename T29 = internal::None, typename T30 = internal::None,
        +    typename T31 = internal::None, typename T32 = internal::None,
        +    typename T33 = internal::None, typename T34 = internal::None,
        +    typename T35 = internal::None, typename T36 = internal::None,
        +    typename T37 = internal::None, typename T38 = internal::None,
        +    typename T39 = internal::None, typename T40 = internal::None,
        +    typename T41 = internal::None, typename T42 = internal::None,
        +    typename T43 = internal::None, typename T44 = internal::None,
        +    typename T45 = internal::None, typename T46 = internal::None,
        +    typename T47 = internal::None, typename T48 = internal::None,
        +    typename T49 = internal::None, typename T50 = internal::None>
        +struct Types {
        +  typedef internal::Types50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
        +      T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
        +      T41, T42, T43, T44, T45, T46, T47, T48, T49, T50> type;
        +};
        +
        +template <>
        +struct Types<internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None> {
        +  typedef internal::Types0 type;
        +};
        +template <typename T1>
        +struct Types<T1, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None> {
        +  typedef internal::Types1<T1> type;
        +};
        +template <typename T1, typename T2>
        +struct Types<T1, T2, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None> {
        +  typedef internal::Types2<T1, T2> type;
        +};
        +template <typename T1, typename T2, typename T3>
        +struct Types<T1, T2, T3, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None> {
        +  typedef internal::Types3<T1, T2, T3> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4>
        +struct Types<T1, T2, T3, T4, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None> {
        +  typedef internal::Types4<T1, T2, T3, T4> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5>
        +struct Types<T1, T2, T3, T4, T5, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None> {
        +  typedef internal::Types5<T1, T2, T3, T4, T5> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6>
        +struct Types<T1, T2, T3, T4, T5, T6, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None> {
        +  typedef internal::Types6<T1, T2, T3, T4, T5, T6> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None> {
        +  typedef internal::Types7<T1, T2, T3, T4, T5, T6, T7> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None> {
        +  typedef internal::Types8<T1, T2, T3, T4, T5, T6, T7, T8> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None> {
        +  typedef internal::Types9<T1, T2, T3, T4, T5, T6, T7, T8, T9> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None> {
        +  typedef internal::Types10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None> {
        +  typedef internal::Types11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None> {
        +  typedef internal::Types12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
        +      T12> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None> {
        +  typedef internal::Types13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None> {
        +  typedef internal::Types14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13, T14> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None> {
        +  typedef internal::Types15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13, T14, T15> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +    T16, internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None> {
        +  typedef internal::Types16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13, T14, T15, T16> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +    T16, T17, internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None> {
        +  typedef internal::Types17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13, T14, T15, T16, T17> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +    T16, T17, T18, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None> {
        +  typedef internal::Types18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13, T14, T15, T16, T17, T18> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +    T16, T17, T18, T19, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None> {
        +  typedef internal::Types19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13, T14, T15, T16, T17, T18, T19> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +    T16, T17, T18, T19, T20, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None> {
        +  typedef internal::Types20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13, T14, T15, T16, T17, T18, T19, T20> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +    T16, T17, T18, T19, T20, T21, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None> {
        +  typedef internal::Types21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13, T14, T15, T16, T17, T18, T19, T20, T21> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +    T16, T17, T18, T19, T20, T21, T22, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None> {
        +  typedef internal::Types22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13, T14, T15, T16, T17, T18, T19, T20, T21, T22> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +    T16, T17, T18, T19, T20, T21, T22, T23, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None> {
        +  typedef internal::Types23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +    T16, T17, T18, T19, T20, T21, T22, T23, T24, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None> {
        +  typedef internal::Types24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +    T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None> {
        +  typedef internal::Types25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +    T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None> {
        +  typedef internal::Types26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
        +      T26> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +    T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None> {
        +  typedef internal::Types27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
        +      T27> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +    T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None> {
        +  typedef internal::Types28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
        +      T27, T28> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +    T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None> {
        +  typedef internal::Types29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
        +      T27, T28, T29> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +    T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None> {
        +  typedef internal::Types30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
        +      T27, T28, T29, T30> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +    T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
        +    T31, internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None> {
        +  typedef internal::Types31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
        +      T27, T28, T29, T30, T31> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +    T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
        +    T31, T32, internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None> {
        +  typedef internal::Types32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
        +      T27, T28, T29, T30, T31, T32> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +    T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
        +    T31, T32, T33, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None> {
        +  typedef internal::Types33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
        +      T27, T28, T29, T30, T31, T32, T33> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +    T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
        +    T31, T32, T33, T34, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None> {
        +  typedef internal::Types34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
        +      T27, T28, T29, T30, T31, T32, T33, T34> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +    T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
        +    T31, T32, T33, T34, T35, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None> {
        +  typedef internal::Types35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
        +      T27, T28, T29, T30, T31, T32, T33, T34, T35> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +    T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
        +    T31, T32, T33, T34, T35, T36, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None> {
        +  typedef internal::Types36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
        +      T27, T28, T29, T30, T31, T32, T33, T34, T35, T36> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +    T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
        +    T31, T32, T33, T34, T35, T36, T37, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None> {
        +  typedef internal::Types37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
        +      T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +    T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
        +    T31, T32, T33, T34, T35, T36, T37, T38, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None> {
        +  typedef internal::Types38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
        +      T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +    T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
        +    T31, T32, T33, T34, T35, T36, T37, T38, T39, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None> {
        +  typedef internal::Types39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
        +      T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +    T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
        +    T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None> {
        +  typedef internal::Types40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
        +      T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
        +      T40> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +    T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
        +    T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None, internal::None> {
        +  typedef internal::Types41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
        +      T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
        +      T41> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41, typename T42>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +    T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
        +    T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, internal::None,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None> {
        +  typedef internal::Types42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
        +      T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
        +      T41, T42> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41, typename T42, typename T43>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +    T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
        +    T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None, internal::None> {
        +  typedef internal::Types43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
        +      T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
        +      T41, T42, T43> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41, typename T42, typename T43, typename T44>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +    T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
        +    T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None, internal::None> {
        +  typedef internal::Types44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
        +      T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
        +      T41, T42, T43, T44> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41, typename T42, typename T43, typename T44, typename T45>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +    T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
        +    T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45,
        +    internal::None, internal::None, internal::None, internal::None,
        +    internal::None> {
        +  typedef internal::Types45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
        +      T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
        +      T41, T42, T43, T44, T45> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41, typename T42, typename T43, typename T44, typename T45,
        +    typename T46>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +    T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
        +    T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45,
        +    T46, internal::None, internal::None, internal::None, internal::None> {
        +  typedef internal::Types46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
        +      T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
        +      T41, T42, T43, T44, T45, T46> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41, typename T42, typename T43, typename T44, typename T45,
        +    typename T46, typename T47>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +    T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
        +    T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45,
        +    T46, T47, internal::None, internal::None, internal::None> {
        +  typedef internal::Types47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
        +      T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
        +      T41, T42, T43, T44, T45, T46, T47> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41, typename T42, typename T43, typename T44, typename T45,
        +    typename T46, typename T47, typename T48>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +    T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
        +    T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45,
        +    T46, T47, T48, internal::None, internal::None> {
        +  typedef internal::Types48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
        +      T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
        +      T41, T42, T43, T44, T45, T46, T47, T48> type;
        +};
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41, typename T42, typename T43, typename T44, typename T45,
        +    typename T46, typename T47, typename T48, typename T49>
        +struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
        +    T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
        +    T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45,
        +    T46, T47, T48, T49, internal::None> {
        +  typedef internal::Types49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
        +      T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
        +      T41, T42, T43, T44, T45, T46, T47, T48, T49> type;
        +};
        +
        +namespace internal {
        +
        +# define GTEST_TEMPLATE_ template <typename T> class
        +
        +// The template "selector" struct TemplateSel<Tmpl> is used to
        +// represent Tmpl, which must be a class template with one type
        +// parameter, as a type.  TemplateSel<Tmpl>::Bind<T>::type is defined
        +// as the type Tmpl<T>.  This allows us to actually instantiate the
        +// template "selected" by TemplateSel<Tmpl>.
        +//
        +// This trick is necessary for simulating typedef for class templates,
        +// which C++ doesn't support directly.
        +template <GTEST_TEMPLATE_ Tmpl>
        +struct TemplateSel {
        +  template <typename T>
        +  struct Bind {
        +    typedef Tmpl<T> type;
        +  };
        +};
        +
        +# define GTEST_BIND_(TmplSel, T) \
        +  TmplSel::template Bind<T>::type
        +
        +// A unique struct template used as the default value for the
        +// arguments of class template Templates.  This allows us to simulate
        +// variadic templates (e.g. Templates<int>, Templates<int, double>,
        +// and etc), which C++ doesn't support directly.
        +template <typename T>
        +struct NoneT {};
        +
        +// The following family of struct and struct templates are used to
        +// represent template lists.  In particular, TemplatesN<T1, T2, ...,
        +// TN> represents a list of N templates (T1, T2, ..., and TN).  Except
        +// for Templates0, every struct in the family has two member types:
        +// Head for the selector of the first template in the list, and Tail
        +// for the rest of the list.
        +
        +// The empty template list.
        +struct Templates0 {};
        +
        +// Template lists of length 1, 2, 3, and so on.
        +
        +template <GTEST_TEMPLATE_ T1>
        +struct Templates1 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates0 Tail;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2>
        +struct Templates2 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates1<T2> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3>
        +struct Templates3 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates2<T2, T3> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4>
        +struct Templates4 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates3<T2, T3, T4> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5>
        +struct Templates5 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates4<T2, T3, T4, T5> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6>
        +struct Templates6 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates5<T2, T3, T4, T5, T6> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7>
        +struct Templates7 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates6<T2, T3, T4, T5, T6, T7> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8>
        +struct Templates8 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates7<T2, T3, T4, T5, T6, T7, T8> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9>
        +struct Templates9 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates8<T2, T3, T4, T5, T6, T7, T8, T9> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10>
        +struct Templates10 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates9<T2, T3, T4, T5, T6, T7, T8, T9, T10> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11>
        +struct Templates11 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates10<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12>
        +struct Templates12 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates11<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13>
        +struct Templates13 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates12<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14>
        +struct Templates14 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates13<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +      T14> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15>
        +struct Templates15 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates14<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +      T15> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16>
        +struct Templates16 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates15<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +      T15, T16> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17>
        +struct Templates17 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates16<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +      T15, T16, T17> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18>
        +struct Templates18 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates17<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +      T15, T16, T17, T18> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19>
        +struct Templates19 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates18<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +      T15, T16, T17, T18, T19> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20>
        +struct Templates20 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates19<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +      T15, T16, T17, T18, T19, T20> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21>
        +struct Templates21 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates20<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +      T15, T16, T17, T18, T19, T20, T21> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22>
        +struct Templates22 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates21<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +      T15, T16, T17, T18, T19, T20, T21, T22> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23>
        +struct Templates23 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates22<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +      T15, T16, T17, T18, T19, T20, T21, T22, T23> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24>
        +struct Templates24 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates23<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +      T15, T16, T17, T18, T19, T20, T21, T22, T23, T24> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25>
        +struct Templates25 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates24<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +      T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26>
        +struct Templates26 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates25<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +      T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27>
        +struct Templates27 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates26<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +      T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28>
        +struct Templates28 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates27<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +      T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
        +      T28> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29>
        +struct Templates29 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates28<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +      T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +      T29> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30>
        +struct Templates30 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates29<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +      T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +      T29, T30> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31>
        +struct Templates31 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates30<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +      T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +      T29, T30, T31> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32>
        +struct Templates32 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates31<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +      T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +      T29, T30, T31, T32> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33>
        +struct Templates33 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates32<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +      T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +      T29, T30, T31, T32, T33> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
        +    GTEST_TEMPLATE_ T34>
        +struct Templates34 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates33<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +      T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +      T29, T30, T31, T32, T33, T34> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
        +    GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35>
        +struct Templates35 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates34<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +      T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +      T29, T30, T31, T32, T33, T34, T35> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
        +    GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36>
        +struct Templates36 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates35<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +      T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +      T29, T30, T31, T32, T33, T34, T35, T36> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
        +    GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
        +    GTEST_TEMPLATE_ T37>
        +struct Templates37 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates36<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +      T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +      T29, T30, T31, T32, T33, T34, T35, T36, T37> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
        +    GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
        +    GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38>
        +struct Templates38 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates37<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +      T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +      T29, T30, T31, T32, T33, T34, T35, T36, T37, T38> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
        +    GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
        +    GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39>
        +struct Templates39 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates38<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +      T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +      T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
        +    GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
        +    GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
        +    GTEST_TEMPLATE_ T40>
        +struct Templates40 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates39<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +      T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +      T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
        +    GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
        +    GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
        +    GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41>
        +struct Templates41 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates40<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +      T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +      T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
        +    GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
        +    GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
        +    GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42>
        +struct Templates42 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates41<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +      T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +      T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
        +      T42> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
        +    GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
        +    GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
        +    GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
        +    GTEST_TEMPLATE_ T43>
        +struct Templates43 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates42<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +      T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +      T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
        +      T43> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
        +    GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
        +    GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
        +    GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
        +    GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44>
        +struct Templates44 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates43<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +      T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +      T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
        +      T43, T44> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
        +    GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
        +    GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
        +    GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
        +    GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45>
        +struct Templates45 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates44<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +      T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +      T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
        +      T43, T44, T45> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
        +    GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
        +    GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
        +    GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
        +    GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
        +    GTEST_TEMPLATE_ T46>
        +struct Templates46 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates45<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +      T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +      T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
        +      T43, T44, T45, T46> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
        +    GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
        +    GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
        +    GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
        +    GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
        +    GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47>
        +struct Templates47 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates46<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +      T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +      T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
        +      T43, T44, T45, T46, T47> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
        +    GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
        +    GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
        +    GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
        +    GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
        +    GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48>
        +struct Templates48 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates47<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +      T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +      T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
        +      T43, T44, T45, T46, T47, T48> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
        +    GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
        +    GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
        +    GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
        +    GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
        +    GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48,
        +    GTEST_TEMPLATE_ T49>
        +struct Templates49 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates48<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +      T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +      T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
        +      T43, T44, T45, T46, T47, T48, T49> Tail;
        +};
        +
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
        +    GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
        +    GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
        +    GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
        +    GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
        +    GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48,
        +    GTEST_TEMPLATE_ T49, GTEST_TEMPLATE_ T50>
        +struct Templates50 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates49<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +      T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +      T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
        +      T43, T44, T45, T46, T47, T48, T49, T50> Tail;
        +};
        +
        +
        +// We don't want to require the users to write TemplatesN<...> directly,
        +// as that would require them to count the length.  Templates<...> is much
        +// easier to write, but generates horrible messages when there is a
        +// compiler error, as gcc insists on printing out each template
        +// argument, even if it has the default value (this means Templates<list>
        +// will appear as Templates<list, NoneT, NoneT, ..., NoneT> in the compiler
        +// errors).
        +//
        +// Our solution is to combine the best part of the two approaches: a
        +// user would write Templates<T1, ..., TN>, and Google Test will translate
        +// that to TemplatesN<T1, ..., TN> internally to make error messages
        +// readable.  The translation is done by the 'type' member of the
        +// Templates template.
        +template <GTEST_TEMPLATE_ T1 = NoneT, GTEST_TEMPLATE_ T2 = NoneT,
        +    GTEST_TEMPLATE_ T3 = NoneT, GTEST_TEMPLATE_ T4 = NoneT,
        +    GTEST_TEMPLATE_ T5 = NoneT, GTEST_TEMPLATE_ T6 = NoneT,
        +    GTEST_TEMPLATE_ T7 = NoneT, GTEST_TEMPLATE_ T8 = NoneT,
        +    GTEST_TEMPLATE_ T9 = NoneT, GTEST_TEMPLATE_ T10 = NoneT,
        +    GTEST_TEMPLATE_ T11 = NoneT, GTEST_TEMPLATE_ T12 = NoneT,
        +    GTEST_TEMPLATE_ T13 = NoneT, GTEST_TEMPLATE_ T14 = NoneT,
        +    GTEST_TEMPLATE_ T15 = NoneT, GTEST_TEMPLATE_ T16 = NoneT,
        +    GTEST_TEMPLATE_ T17 = NoneT, GTEST_TEMPLATE_ T18 = NoneT,
        +    GTEST_TEMPLATE_ T19 = NoneT, GTEST_TEMPLATE_ T20 = NoneT,
        +    GTEST_TEMPLATE_ T21 = NoneT, GTEST_TEMPLATE_ T22 = NoneT,
        +    GTEST_TEMPLATE_ T23 = NoneT, GTEST_TEMPLATE_ T24 = NoneT,
        +    GTEST_TEMPLATE_ T25 = NoneT, GTEST_TEMPLATE_ T26 = NoneT,
        +    GTEST_TEMPLATE_ T27 = NoneT, GTEST_TEMPLATE_ T28 = NoneT,
        +    GTEST_TEMPLATE_ T29 = NoneT, GTEST_TEMPLATE_ T30 = NoneT,
        +    GTEST_TEMPLATE_ T31 = NoneT, GTEST_TEMPLATE_ T32 = NoneT,
        +    GTEST_TEMPLATE_ T33 = NoneT, GTEST_TEMPLATE_ T34 = NoneT,
        +    GTEST_TEMPLATE_ T35 = NoneT, GTEST_TEMPLATE_ T36 = NoneT,
        +    GTEST_TEMPLATE_ T37 = NoneT, GTEST_TEMPLATE_ T38 = NoneT,
        +    GTEST_TEMPLATE_ T39 = NoneT, GTEST_TEMPLATE_ T40 = NoneT,
        +    GTEST_TEMPLATE_ T41 = NoneT, GTEST_TEMPLATE_ T42 = NoneT,
        +    GTEST_TEMPLATE_ T43 = NoneT, GTEST_TEMPLATE_ T44 = NoneT,
        +    GTEST_TEMPLATE_ T45 = NoneT, GTEST_TEMPLATE_ T46 = NoneT,
        +    GTEST_TEMPLATE_ T47 = NoneT, GTEST_TEMPLATE_ T48 = NoneT,
        +    GTEST_TEMPLATE_ T49 = NoneT, GTEST_TEMPLATE_ T50 = NoneT>
        +struct Templates {
        +  typedef Templates50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +      T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
        +      T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
        +      T42, T43, T44, T45, T46, T47, T48, T49, T50> type;
        +};
        +
        +template <>
        +struct Templates<NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT> {
        +  typedef Templates0 type;
        +};
        +template <GTEST_TEMPLATE_ T1>
        +struct Templates<T1, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT> {
        +  typedef Templates1<T1> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2>
        +struct Templates<T1, T2, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT> {
        +  typedef Templates2<T1, T2> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3>
        +struct Templates<T1, T2, T3, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
        +  typedef Templates3<T1, T2, T3> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4>
        +struct Templates<T1, T2, T3, T4, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
        +  typedef Templates4<T1, T2, T3, T4> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5>
        +struct Templates<T1, T2, T3, T4, T5, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
        +  typedef Templates5<T1, T2, T3, T4, T5> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6>
        +struct Templates<T1, T2, T3, T4, T5, T6, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
        +  typedef Templates6<T1, T2, T3, T4, T5, T6> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
        +  typedef Templates7<T1, T2, T3, T4, T5, T6, T7> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
        +  typedef Templates8<T1, T2, T3, T4, T5, T6, T7, T8> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
        +  typedef Templates9<T1, T2, T3, T4, T5, T6, T7, T8, T9> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
        +  typedef Templates10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
        +  typedef Templates11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
        +  typedef Templates12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
        +  typedef Templates13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
        +  typedef Templates14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +      T14> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +    T15, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT> {
        +  typedef Templates15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +      T14, T15> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +    T15, T16, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT> {
        +  typedef Templates16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +      T14, T15, T16> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +    T15, T16, T17, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT> {
        +  typedef Templates17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +      T14, T15, T16, T17> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +    T15, T16, T17, T18, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT> {
        +  typedef Templates18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +      T14, T15, T16, T17, T18> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +    T15, T16, T17, T18, T19, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT> {
        +  typedef Templates19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +      T14, T15, T16, T17, T18, T19> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +    T15, T16, T17, T18, T19, T20, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT> {
        +  typedef Templates20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +      T14, T15, T16, T17, T18, T19, T20> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +    T15, T16, T17, T18, T19, T20, T21, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT> {
        +  typedef Templates21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +      T14, T15, T16, T17, T18, T19, T20, T21> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +    T15, T16, T17, T18, T19, T20, T21, T22, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT> {
        +  typedef Templates22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +      T14, T15, T16, T17, T18, T19, T20, T21, T22> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +    T15, T16, T17, T18, T19, T20, T21, T22, T23, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT> {
        +  typedef Templates23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +      T14, T15, T16, T17, T18, T19, T20, T21, T22, T23> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +    T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT> {
        +  typedef Templates24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +      T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +    T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT> {
        +  typedef Templates25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +      T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +    T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT> {
        +  typedef Templates26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +      T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +    T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT> {
        +  typedef Templates27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +      T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
        +      T27> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +    T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT> {
        +  typedef Templates28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +      T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
        +      T28> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +    T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT> {
        +  typedef Templates29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +      T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
        +      T28, T29> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +    T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +    T30, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
        +  typedef Templates30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +      T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
        +      T28, T29, T30> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +    T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +    T30, T31, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
        +  typedef Templates31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +      T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
        +      T28, T29, T30, T31> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +    T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +    T30, T31, T32, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
        +  typedef Templates32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +      T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
        +      T28, T29, T30, T31, T32> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +    T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +    T30, T31, T32, T33, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
        +  typedef Templates33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +      T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
        +      T28, T29, T30, T31, T32, T33> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
        +    GTEST_TEMPLATE_ T34>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +    T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +    T30, T31, T32, T33, T34, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
        +  typedef Templates34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +      T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
        +      T28, T29, T30, T31, T32, T33, T34> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
        +    GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +    T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +    T30, T31, T32, T33, T34, T35, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
        +  typedef Templates35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +      T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
        +      T28, T29, T30, T31, T32, T33, T34, T35> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
        +    GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +    T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +    T30, T31, T32, T33, T34, T35, T36, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
        +  typedef Templates36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +      T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
        +      T28, T29, T30, T31, T32, T33, T34, T35, T36> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
        +    GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
        +    GTEST_TEMPLATE_ T37>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +    T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +    T30, T31, T32, T33, T34, T35, T36, T37, NoneT, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
        +  typedef Templates37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +      T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
        +      T28, T29, T30, T31, T32, T33, T34, T35, T36, T37> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
        +    GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
        +    GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +    T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +    T30, T31, T32, T33, T34, T35, T36, T37, T38, NoneT, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
        +  typedef Templates38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +      T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
        +      T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
        +    GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
        +    GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +    T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +    T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
        +  typedef Templates39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +      T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
        +      T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
        +    GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
        +    GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
        +    GTEST_TEMPLATE_ T40>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +    T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +    T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, NoneT, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
        +  typedef Templates40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +      T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
        +      T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
        +    GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
        +    GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
        +    GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +    T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +    T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, NoneT, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
        +  typedef Templates41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +      T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
        +      T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
        +      T41> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
        +    GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
        +    GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
        +    GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +    T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +    T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, NoneT,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
        +  typedef Templates42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +      T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
        +      T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
        +      T42> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
        +    GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
        +    GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
        +    GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
        +    GTEST_TEMPLATE_ T43>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +    T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +    T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
        +  typedef Templates43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +      T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
        +      T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
        +      T42, T43> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
        +    GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
        +    GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
        +    GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
        +    GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +    T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +    T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
        +    NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
        +  typedef Templates44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +      T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
        +      T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
        +      T42, T43, T44> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
        +    GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
        +    GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
        +    GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
        +    GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +    T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +    T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
        +    T45, NoneT, NoneT, NoneT, NoneT, NoneT> {
        +  typedef Templates45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +      T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
        +      T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
        +      T42, T43, T44, T45> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
        +    GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
        +    GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
        +    GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
        +    GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
        +    GTEST_TEMPLATE_ T46>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +    T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +    T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
        +    T45, T46, NoneT, NoneT, NoneT, NoneT> {
        +  typedef Templates46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +      T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
        +      T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
        +      T42, T43, T44, T45, T46> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
        +    GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
        +    GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
        +    GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
        +    GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
        +    GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +    T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +    T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
        +    T45, T46, T47, NoneT, NoneT, NoneT> {
        +  typedef Templates47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +      T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
        +      T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
        +      T42, T43, T44, T45, T46, T47> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
        +    GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
        +    GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
        +    GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
        +    GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
        +    GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +    T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +    T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
        +    T45, T46, T47, T48, NoneT, NoneT> {
        +  typedef Templates48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +      T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
        +      T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
        +      T42, T43, T44, T45, T46, T47, T48> type;
        +};
        +template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
        +    GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
        +    GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
        +    GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
        +    GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
        +    GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
        +    GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
        +    GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
        +    GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
        +    GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
        +    GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
        +    GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
        +    GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
        +    GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
        +    GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
        +    GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48,
        +    GTEST_TEMPLATE_ T49>
        +struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
        +    T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
        +    T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
        +    T45, T46, T47, T48, T49, NoneT> {
        +  typedef Templates49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +      T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
        +      T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
        +      T42, T43, T44, T45, T46, T47, T48, T49> type;
        +};
        +
        +// The TypeList template makes it possible to use either a single type
        +// or a Types<...> list in TYPED_TEST_CASE() and
        +// INSTANTIATE_TYPED_TEST_CASE_P().
        +
        +template <typename T>
        +struct TypeList {
        +  typedef Types1<T> type;
        +};
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +    typename T6, typename T7, typename T8, typename T9, typename T10,
        +    typename T11, typename T12, typename T13, typename T14, typename T15,
        +    typename T16, typename T17, typename T18, typename T19, typename T20,
        +    typename T21, typename T22, typename T23, typename T24, typename T25,
        +    typename T26, typename T27, typename T28, typename T29, typename T30,
        +    typename T31, typename T32, typename T33, typename T34, typename T35,
        +    typename T36, typename T37, typename T38, typename T39, typename T40,
        +    typename T41, typename T42, typename T43, typename T44, typename T45,
        +    typename T46, typename T47, typename T48, typename T49, typename T50>
        +struct TypeList<Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
        +    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
        +    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
        +    T44, T45, T46, T47, T48, T49, T50> > {
        +  typedef typename Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
        +      T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
        +      T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
        +      T41, T42, T43, T44, T45, T46, T47, T48, T49, T50>::type type;
        +};
        +
        +#endif  // GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P
        +
        +}  // namespace internal
        +}  // namespace testing
        +
        +#endif  // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_
        diff --git a/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-type-util.h.pump b/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-type-util.h.pump
        new file mode 100644
        index 0000000..251fdf0
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/include/gtest/internal/gtest-type-util.h.pump
        @@ -0,0 +1,297 @@
        +$$ -*- mode: c++; -*-
        +$var n = 50  $$ Maximum length of type lists we want to support.
        +// Copyright 2008 Google Inc.
        +// All Rights Reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +// Type utilities needed for implementing typed and type-parameterized
        +// tests.  This file is generated by a SCRIPT.  DO NOT EDIT BY HAND!
        +//
        +// Currently we support at most $n types in a list, and at most $n
        +// type-parameterized tests in one type-parameterized test case.
        +// Please contact googletestframework@googlegroups.com if you need
        +// more.
        +
        +#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_
        +#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_
        +
        +#include "gtest/internal/gtest-port.h"
        +
        +// #ifdef __GNUC__ is too general here.  It is possible to use gcc without using
        +// libstdc++ (which is where cxxabi.h comes from).
        +# if GTEST_HAS_CXXABI_H_
        +#  include <cxxabi.h>
        +# elif defined(__HP_aCC)
        +#  include <acxx_demangle.h>
        +# endif  // GTEST_HASH_CXXABI_H_
        +
        +namespace testing {
        +namespace internal {
        +
        +// GetTypeName<T>() returns a human-readable name of type T.
        +// NB: This function is also used in Google Mock, so don't move it inside of
        +// the typed-test-only section below.
        +template <typename T>
        +std::string GetTypeName() {
        +# if GTEST_HAS_RTTI
        +
        +  const char* const name = typeid(T).name();
        +#  if GTEST_HAS_CXXABI_H_ || defined(__HP_aCC)
        +  int status = 0;
        +  // gcc's implementation of typeid(T).name() mangles the type name,
        +  // so we have to demangle it.
        +#   if GTEST_HAS_CXXABI_H_
        +  using abi::__cxa_demangle;
        +#   endif  // GTEST_HAS_CXXABI_H_
        +  char* const readable_name = __cxa_demangle(name, 0, 0, &status);
        +  const std::string name_str(status == 0 ? readable_name : name);
        +  free(readable_name);
        +  return name_str;
        +#  else
        +  return name;
        +#  endif  // GTEST_HAS_CXXABI_H_ || __HP_aCC
        +
        +# else
        +
        +  return "<type>";
        +
        +# endif  // GTEST_HAS_RTTI
        +}
        +
        +#if GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P
        +
        +// AssertyTypeEq<T1, T2>::type is defined iff T1 and T2 are the same
        +// type.  This can be used as a compile-time assertion to ensure that
        +// two types are equal.
        +
        +template <typename T1, typename T2>
        +struct AssertTypeEq;
        +
        +template <typename T>
        +struct AssertTypeEq<T, T> {
        +  typedef bool type;
        +};
        +
        +// A unique type used as the default value for the arguments of class
        +// template Types.  This allows us to simulate variadic templates
        +// (e.g. Types<int>, Type<int, double>, and etc), which C++ doesn't
        +// support directly.
        +struct None {};
        +
        +// The following family of struct and struct templates are used to
        +// represent type lists.  In particular, TypesN<T1, T2, ..., TN>
        +// represents a type list with N types (T1, T2, ..., and TN) in it.
        +// Except for Types0, every struct in the family has two member types:
        +// Head for the first type in the list, and Tail for the rest of the
        +// list.
        +
        +// The empty type list.
        +struct Types0 {};
        +
        +// Type lists of length 1, 2, 3, and so on.
        +
        +template <typename T1>
        +struct Types1 {
        +  typedef T1 Head;
        +  typedef Types0 Tail;
        +};
        +
        +$range i 2..n
        +
        +$for i [[
        +$range j 1..i
        +$range k 2..i
        +template <$for j, [[typename T$j]]>
        +struct Types$i {
        +  typedef T1 Head;
        +  typedef Types$(i-1)<$for k, [[T$k]]> Tail;
        +};
        +
        +
        +]]
        +
        +}  // namespace internal
        +
        +// We don't want to require the users to write TypesN<...> directly,
        +// as that would require them to count the length.  Types<...> is much
        +// easier to write, but generates horrible messages when there is a
        +// compiler error, as gcc insists on printing out each template
        +// argument, even if it has the default value (this means Types<int>
        +// will appear as Types<int, None, None, ..., None> in the compiler
        +// errors).
        +//
        +// Our solution is to combine the best part of the two approaches: a
        +// user would write Types<T1, ..., TN>, and Google Test will translate
        +// that to TypesN<T1, ..., TN> internally to make error messages
        +// readable.  The translation is done by the 'type' member of the
        +// Types template.
        +
        +$range i 1..n
        +template <$for i, [[typename T$i = internal::None]]>
        +struct Types {
        +  typedef internal::Types$n<$for i, [[T$i]]> type;
        +};
        +
        +template <>
        +struct Types<$for i, [[internal::None]]> {
        +  typedef internal::Types0 type;
        +};
        +
        +$range i 1..n-1
        +$for i [[
        +$range j 1..i
        +$range k i+1..n
        +template <$for j, [[typename T$j]]>
        +struct Types<$for j, [[T$j]]$for k[[, internal::None]]> {
        +  typedef internal::Types$i<$for j, [[T$j]]> type;
        +};
        +
        +]]
        +
        +namespace internal {
        +
        +# define GTEST_TEMPLATE_ template <typename T> class
        +
        +// The template "selector" struct TemplateSel<Tmpl> is used to
        +// represent Tmpl, which must be a class template with one type
        +// parameter, as a type.  TemplateSel<Tmpl>::Bind<T>::type is defined
        +// as the type Tmpl<T>.  This allows us to actually instantiate the
        +// template "selected" by TemplateSel<Tmpl>.
        +//
        +// This trick is necessary for simulating typedef for class templates,
        +// which C++ doesn't support directly.
        +template <GTEST_TEMPLATE_ Tmpl>
        +struct TemplateSel {
        +  template <typename T>
        +  struct Bind {
        +    typedef Tmpl<T> type;
        +  };
        +};
        +
        +# define GTEST_BIND_(TmplSel, T) \
        +  TmplSel::template Bind<T>::type
        +
        +// A unique struct template used as the default value for the
        +// arguments of class template Templates.  This allows us to simulate
        +// variadic templates (e.g. Templates<int>, Templates<int, double>,
        +// and etc), which C++ doesn't support directly.
        +template <typename T>
        +struct NoneT {};
        +
        +// The following family of struct and struct templates are used to
        +// represent template lists.  In particular, TemplatesN<T1, T2, ...,
        +// TN> represents a list of N templates (T1, T2, ..., and TN).  Except
        +// for Templates0, every struct in the family has two member types:
        +// Head for the selector of the first template in the list, and Tail
        +// for the rest of the list.
        +
        +// The empty template list.
        +struct Templates0 {};
        +
        +// Template lists of length 1, 2, 3, and so on.
        +
        +template <GTEST_TEMPLATE_ T1>
        +struct Templates1 {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates0 Tail;
        +};
        +
        +$range i 2..n
        +
        +$for i [[
        +$range j 1..i
        +$range k 2..i
        +template <$for j, [[GTEST_TEMPLATE_ T$j]]>
        +struct Templates$i {
        +  typedef TemplateSel<T1> Head;
        +  typedef Templates$(i-1)<$for k, [[T$k]]> Tail;
        +};
        +
        +
        +]]
        +
        +// We don't want to require the users to write TemplatesN<...> directly,
        +// as that would require them to count the length.  Templates<...> is much
        +// easier to write, but generates horrible messages when there is a
        +// compiler error, as gcc insists on printing out each template
        +// argument, even if it has the default value (this means Templates<list>
        +// will appear as Templates<list, NoneT, NoneT, ..., NoneT> in the compiler
        +// errors).
        +//
        +// Our solution is to combine the best part of the two approaches: a
        +// user would write Templates<T1, ..., TN>, and Google Test will translate
        +// that to TemplatesN<T1, ..., TN> internally to make error messages
        +// readable.  The translation is done by the 'type' member of the
        +// Templates template.
        +
        +$range i 1..n
        +template <$for i, [[GTEST_TEMPLATE_ T$i = NoneT]]>
        +struct Templates {
        +  typedef Templates$n<$for i, [[T$i]]> type;
        +};
        +
        +template <>
        +struct Templates<$for i, [[NoneT]]> {
        +  typedef Templates0 type;
        +};
        +
        +$range i 1..n-1
        +$for i [[
        +$range j 1..i
        +$range k i+1..n
        +template <$for j, [[GTEST_TEMPLATE_ T$j]]>
        +struct Templates<$for j, [[T$j]]$for k[[, NoneT]]> {
        +  typedef Templates$i<$for j, [[T$j]]> type;
        +};
        +
        +]]
        +
        +// The TypeList template makes it possible to use either a single type
        +// or a Types<...> list in TYPED_TEST_CASE() and
        +// INSTANTIATE_TYPED_TEST_CASE_P().
        +
        +template <typename T>
        +struct TypeList {
        +  typedef Types1<T> type;
        +};
        +
        +
        +$range i 1..n
        +template <$for i, [[typename T$i]]>
        +struct TypeList<Types<$for i, [[T$i]]> > {
        +  typedef typename Types<$for i, [[T$i]]>::type type;
        +};
        +
        +#endif  // GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P
        +
        +}  // namespace internal
        +}  // namespace testing
        +
        +#endif  // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_
        diff --git a/lib/ann/fann/lib/googletest/m4/acx_pthread.m4 b/lib/ann/fann/lib/googletest/m4/acx_pthread.m4
        new file mode 100644
        index 0000000..2cf20de
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/m4/acx_pthread.m4
        @@ -0,0 +1,363 @@
        +# This was retrieved from
        +#    http://svn.0pointer.de/viewvc/trunk/common/acx_pthread.m4?revision=1277&root=avahi
        +# See also (perhaps for new versions?)
        +#    http://svn.0pointer.de/viewvc/trunk/common/acx_pthread.m4?root=avahi
        +#
        +# We've rewritten the inconsistency check code (from avahi), to work
        +# more broadly.  In particular, it no longer assumes ld accepts -zdefs.
        +# This caused a restructing of the code, but the functionality has only
        +# changed a little.
        +
        +dnl @synopsis ACX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
        +dnl
        +dnl @summary figure out how to build C programs using POSIX threads
        +dnl
        +dnl This macro figures out how to build C programs using POSIX threads.
        +dnl It sets the PTHREAD_LIBS output variable to the threads library and
        +dnl linker flags, and the PTHREAD_CFLAGS output variable to any special
        +dnl C compiler flags that are needed. (The user can also force certain
        +dnl compiler flags/libs to be tested by setting these environment
        +dnl variables.)
        +dnl
        +dnl Also sets PTHREAD_CC to any special C compiler that is needed for
        +dnl multi-threaded programs (defaults to the value of CC otherwise).
        +dnl (This is necessary on AIX to use the special cc_r compiler alias.)
        +dnl
        +dnl NOTE: You are assumed to not only compile your program with these
        +dnl flags, but also link it with them as well. e.g. you should link
        +dnl with $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS
        +dnl $LIBS
        +dnl
        +dnl If you are only building threads programs, you may wish to use
        +dnl these variables in your default LIBS, CFLAGS, and CC:
        +dnl
        +dnl        LIBS="$PTHREAD_LIBS $LIBS"
        +dnl        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
        +dnl        CC="$PTHREAD_CC"
        +dnl
        +dnl In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute
        +dnl constant has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to
        +dnl that name (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
        +dnl
        +dnl ACTION-IF-FOUND is a list of shell commands to run if a threads
        +dnl library is found, and ACTION-IF-NOT-FOUND is a list of commands to
        +dnl run it if it is not found. If ACTION-IF-FOUND is not specified, the
        +dnl default action will define HAVE_PTHREAD.
        +dnl
        +dnl Please let the authors know if this macro fails on any platform, or
        +dnl if you have any other suggestions or comments. This macro was based
        +dnl on work by SGJ on autoconf scripts for FFTW (www.fftw.org) (with
        +dnl help from M. Frigo), as well as ac_pthread and hb_pthread macros
        +dnl posted by Alejandro Forero Cuervo to the autoconf macro repository.
        +dnl We are also grateful for the helpful feedback of numerous users.
        +dnl
        +dnl @category InstalledPackages
        +dnl @author Steven G. Johnson <stevenj@alum.mit.edu>
        +dnl @version 2006-05-29
        +dnl @license GPLWithACException
        +dnl 
        +dnl Checks for GCC shared/pthread inconsistency based on work by
        +dnl Marcin Owsiany <marcin@owsiany.pl>
        +
        +
        +AC_DEFUN([ACX_PTHREAD], [
        +AC_REQUIRE([AC_CANONICAL_HOST])
        +AC_LANG_SAVE
        +AC_LANG_C
        +acx_pthread_ok=no
        +
        +# We used to check for pthread.h first, but this fails if pthread.h
        +# requires special compiler flags (e.g. on True64 or Sequent).
        +# It gets checked for in the link test anyway.
        +
        +# First of all, check if the user has set any of the PTHREAD_LIBS,
        +# etcetera environment variables, and if threads linking works using
        +# them:
        +if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
        +        save_CFLAGS="$CFLAGS"
        +        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
        +        save_LIBS="$LIBS"
        +        LIBS="$PTHREAD_LIBS $LIBS"
        +        AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS])
        +        AC_TRY_LINK_FUNC(pthread_join, acx_pthread_ok=yes)
        +        AC_MSG_RESULT($acx_pthread_ok)
        +        if test x"$acx_pthread_ok" = xno; then
        +                PTHREAD_LIBS=""
        +                PTHREAD_CFLAGS=""
        +        fi
        +        LIBS="$save_LIBS"
        +        CFLAGS="$save_CFLAGS"
        +fi
        +
        +# We must check for the threads library under a number of different
        +# names; the ordering is very important because some systems
        +# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
        +# libraries is broken (non-POSIX).
        +
        +# Create a list of thread flags to try.  Items starting with a "-" are
        +# C compiler flags, and other items are library names, except for "none"
        +# which indicates that we try without any flags at all, and "pthread-config"
        +# which is a program returning the flags for the Pth emulation library.
        +
        +acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
        +
        +# The ordering *is* (sometimes) important.  Some notes on the
        +# individual items follow:
        +
        +# pthreads: AIX (must check this before -lpthread)
        +# none: in case threads are in libc; should be tried before -Kthread and
        +#       other compiler flags to prevent continual compiler warnings
        +# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
        +# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
        +# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
        +# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)
        +# -pthreads: Solaris/gcc
        +# -mthreads: Mingw32/gcc, Lynx/gcc
        +# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
        +#      doesn't hurt to check since this sometimes defines pthreads too;
        +#      also defines -D_REENTRANT)
        +#      ... -mt is also the pthreads flag for HP/aCC
        +# pthread: Linux, etcetera
        +# --thread-safe: KAI C++
        +# pthread-config: use pthread-config program (for GNU Pth library)
        +
        +case "${host_cpu}-${host_os}" in
        +        *solaris*)
        +
        +        # On Solaris (at least, for some versions), libc contains stubbed
        +        # (non-functional) versions of the pthreads routines, so link-based
        +        # tests will erroneously succeed.  (We need to link with -pthreads/-mt/
        +        # -lpthread.)  (The stubs are missing pthread_cleanup_push, or rather
        +        # a function called by this macro, so we could check for that, but
        +        # who knows whether they'll stub that too in a future libc.)  So,
        +        # we'll just look for -pthreads and -lpthread first:
        +
        +        acx_pthread_flags="-pthreads pthread -mt -pthread $acx_pthread_flags"
        +        ;;
        +esac
        +
        +if test x"$acx_pthread_ok" = xno; then
        +for flag in $acx_pthread_flags; do
        +
        +        case $flag in
        +                none)
        +                AC_MSG_CHECKING([whether pthreads work without any flags])
        +                ;;
        +
        +                -*)
        +                AC_MSG_CHECKING([whether pthreads work with $flag])
        +                PTHREAD_CFLAGS="$flag"
        +                ;;
        +
        +		pthread-config)
        +		AC_CHECK_PROG(acx_pthread_config, pthread-config, yes, no)
        +		if test x"$acx_pthread_config" = xno; then continue; fi
        +		PTHREAD_CFLAGS="`pthread-config --cflags`"
        +		PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
        +		;;
        +
        +                *)
        +                AC_MSG_CHECKING([for the pthreads library -l$flag])
        +                PTHREAD_LIBS="-l$flag"
        +                ;;
        +        esac
        +
        +        save_LIBS="$LIBS"
        +        save_CFLAGS="$CFLAGS"
        +        LIBS="$PTHREAD_LIBS $LIBS"
        +        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
        +
        +        # Check for various functions.  We must include pthread.h,
        +        # since some functions may be macros.  (On the Sequent, we
        +        # need a special flag -Kthread to make this header compile.)
        +        # We check for pthread_join because it is in -lpthread on IRIX
        +        # while pthread_create is in libc.  We check for pthread_attr_init
        +        # due to DEC craziness with -lpthreads.  We check for
        +        # pthread_cleanup_push because it is one of the few pthread
        +        # functions on Solaris that doesn't have a non-functional libc stub.
        +        # We try pthread_create on general principles.
        +        AC_TRY_LINK([#include <pthread.h>],
        +                    [pthread_t th; pthread_join(th, 0);
        +                     pthread_attr_init(0); pthread_cleanup_push(0, 0);
        +                     pthread_create(0,0,0,0); pthread_cleanup_pop(0); ],
        +                    [acx_pthread_ok=yes])
        +
        +        LIBS="$save_LIBS"
        +        CFLAGS="$save_CFLAGS"
        +
        +        AC_MSG_RESULT($acx_pthread_ok)
        +        if test "x$acx_pthread_ok" = xyes; then
        +                break;
        +        fi
        +
        +        PTHREAD_LIBS=""
        +        PTHREAD_CFLAGS=""
        +done
        +fi
        +
        +# Various other checks:
        +if test "x$acx_pthread_ok" = xyes; then
        +        save_LIBS="$LIBS"
        +        LIBS="$PTHREAD_LIBS $LIBS"
        +        save_CFLAGS="$CFLAGS"
        +        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
        +
        +        # Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
        +	AC_MSG_CHECKING([for joinable pthread attribute])
        +	attr_name=unknown
        +	for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
        +	    AC_TRY_LINK([#include <pthread.h>], [int attr=$attr; return attr;],
        +                        [attr_name=$attr; break])
        +	done
        +        AC_MSG_RESULT($attr_name)
        +        if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then
        +            AC_DEFINE_UNQUOTED(PTHREAD_CREATE_JOINABLE, $attr_name,
        +                               [Define to necessary symbol if this constant
        +                                uses a non-standard name on your system.])
        +        fi
        +
        +        AC_MSG_CHECKING([if more special flags are required for pthreads])
        +        flag=no
        +        case "${host_cpu}-${host_os}" in
        +            *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";;
        +            *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";;
        +        esac
        +        AC_MSG_RESULT(${flag})
        +        if test "x$flag" != xno; then
        +            PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
        +        fi
        +
        +        LIBS="$save_LIBS"
        +        CFLAGS="$save_CFLAGS"
        +        # More AIX lossage: must compile with xlc_r or cc_r
        +	if test x"$GCC" != xyes; then
        +          AC_CHECK_PROGS(PTHREAD_CC, xlc_r cc_r, ${CC})
        +        else
        +          PTHREAD_CC=$CC
        +	fi
        +
        +	# The next part tries to detect GCC inconsistency with -shared on some
        +	# architectures and systems. The problem is that in certain
        +	# configurations, when -shared is specified, GCC "forgets" to
        +	# internally use various flags which are still necessary.
        +	
        +	#
        +	# Prepare the flags
        +	#
        +	save_CFLAGS="$CFLAGS"
        +	save_LIBS="$LIBS"
        +	save_CC="$CC"
        +	
        +	# Try with the flags determined by the earlier checks.
        +	#
        +	# -Wl,-z,defs forces link-time symbol resolution, so that the
        +	# linking checks with -shared actually have any value
        +	#
        +	# FIXME: -fPIC is required for -shared on many architectures,
        +	# so we specify it here, but the right way would probably be to
        +	# properly detect whether it is actually required.
        +	CFLAGS="-shared -fPIC -Wl,-z,defs $CFLAGS $PTHREAD_CFLAGS"
        +	LIBS="$PTHREAD_LIBS $LIBS"
        +	CC="$PTHREAD_CC"
        +	
        +	# In order not to create several levels of indentation, we test
        +	# the value of "$done" until we find the cure or run out of ideas.
        +	done="no"
        +	
        +	# First, make sure the CFLAGS we added are actually accepted by our
        +	# compiler.  If not (and OS X's ld, for instance, does not accept -z),
        +	# then we can't do this test.
        +	if test x"$done" = xno; then
        +	   AC_MSG_CHECKING([whether to check for GCC pthread/shared inconsistencies])
        +	   AC_TRY_LINK(,, , [done=yes])
        +	
        +	   if test "x$done" = xyes ; then
        +	      AC_MSG_RESULT([no])
        +	   else
        +	      AC_MSG_RESULT([yes])
        +	   fi
        +	fi
        +	
        +	if test x"$done" = xno; then
        +	   AC_MSG_CHECKING([whether -pthread is sufficient with -shared])
        +	   AC_TRY_LINK([#include <pthread.h>],
        +	      [pthread_t th; pthread_join(th, 0);
        +	      pthread_attr_init(0); pthread_cleanup_push(0, 0);
        +	      pthread_create(0,0,0,0); pthread_cleanup_pop(0); ],
        +	      [done=yes])
        +	   
        +	   if test "x$done" = xyes; then
        +	      AC_MSG_RESULT([yes])
        +	   else
        +	      AC_MSG_RESULT([no])
        +	   fi
        +	fi
        +	
        +	#
        +	# Linux gcc on some architectures such as mips/mipsel forgets
        +	# about -lpthread
        +	#
        +	if test x"$done" = xno; then
        +	   AC_MSG_CHECKING([whether -lpthread fixes that])
        +	   LIBS="-lpthread $PTHREAD_LIBS $save_LIBS"
        +	   AC_TRY_LINK([#include <pthread.h>],
        +	      [pthread_t th; pthread_join(th, 0);
        +	      pthread_attr_init(0); pthread_cleanup_push(0, 0);
        +	      pthread_create(0,0,0,0); pthread_cleanup_pop(0); ],
        +	      [done=yes])
        +	
        +	   if test "x$done" = xyes; then
        +	      AC_MSG_RESULT([yes])
        +	      PTHREAD_LIBS="-lpthread $PTHREAD_LIBS"
        +	   else
        +	      AC_MSG_RESULT([no])
        +	   fi
        +	fi
        +	#
        +	# FreeBSD 4.10 gcc forgets to use -lc_r instead of -lc
        +	#
        +	if test x"$done" = xno; then
        +	   AC_MSG_CHECKING([whether -lc_r fixes that])
        +	   LIBS="-lc_r $PTHREAD_LIBS $save_LIBS"
        +	   AC_TRY_LINK([#include <pthread.h>],
        +	       [pthread_t th; pthread_join(th, 0);
        +	        pthread_attr_init(0); pthread_cleanup_push(0, 0);
        +	        pthread_create(0,0,0,0); pthread_cleanup_pop(0); ],
        +	       [done=yes])
        +	
        +	   if test "x$done" = xyes; then
        +	      AC_MSG_RESULT([yes])
        +	      PTHREAD_LIBS="-lc_r $PTHREAD_LIBS"
        +	   else
        +	      AC_MSG_RESULT([no])
        +	   fi
        +	fi
        +	if test x"$done" = xno; then
        +	   # OK, we have run out of ideas
        +	   AC_MSG_WARN([Impossible to determine how to use pthreads with shared libraries])
        +	
        +	   # so it's not safe to assume that we may use pthreads
        +	   acx_pthread_ok=no
        +	fi
        +	
        +	CFLAGS="$save_CFLAGS"
        +	LIBS="$save_LIBS"
        +	CC="$save_CC"
        +else
        +        PTHREAD_CC="$CC"
        +fi
        +
        +AC_SUBST(PTHREAD_LIBS)
        +AC_SUBST(PTHREAD_CFLAGS)
        +AC_SUBST(PTHREAD_CC)
        +
        +# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
        +if test x"$acx_pthread_ok" = xyes; then
        +        ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1])
        +        :
        +else
        +        acx_pthread_ok=no
        +        $2
        +fi
        +AC_LANG_RESTORE
        +])dnl ACX_PTHREAD
        diff --git a/lib/ann/fann/lib/googletest/m4/gtest.m4 b/lib/ann/fann/lib/googletest/m4/gtest.m4
        new file mode 100644
        index 0000000..6598ba7
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/m4/gtest.m4
        @@ -0,0 +1,74 @@
        +dnl GTEST_LIB_CHECK([minimum version [,
        +dnl                  action if found [,action if not found]]])
        +dnl
        +dnl Check for the presence of the Google Test library, optionally at a minimum
        +dnl version, and indicate a viable version with the HAVE_GTEST flag. It defines
        +dnl standard variables for substitution including GTEST_CPPFLAGS,
        +dnl GTEST_CXXFLAGS, GTEST_LDFLAGS, and GTEST_LIBS. It also defines
        +dnl GTEST_VERSION as the version of Google Test found. Finally, it provides
        +dnl optional custom action slots in the event GTEST is found or not.
        +AC_DEFUN([GTEST_LIB_CHECK],
        +[
        +dnl Provide a flag to enable or disable Google Test usage.
        +AC_ARG_ENABLE([gtest],
        +  [AS_HELP_STRING([--enable-gtest],
        +                  [Enable tests using the Google C++ Testing Framework.
        +                  (Default is enabled.)])],
        +  [],
        +  [enable_gtest=])
        +AC_ARG_VAR([GTEST_CONFIG],
        +           [The exact path of Google Test's 'gtest-config' script.])
        +AC_ARG_VAR([GTEST_CPPFLAGS],
        +           [C-like preprocessor flags for Google Test.])
        +AC_ARG_VAR([GTEST_CXXFLAGS],
        +           [C++ compile flags for Google Test.])
        +AC_ARG_VAR([GTEST_LDFLAGS],
        +           [Linker path and option flags for Google Test.])
        +AC_ARG_VAR([GTEST_LIBS],
        +           [Library linking flags for Google Test.])
        +AC_ARG_VAR([GTEST_VERSION],
        +           [The version of Google Test available.])
        +HAVE_GTEST="no"
        +AS_IF([test "x${enable_gtest}" != "xno"],
        +  [AC_MSG_CHECKING([for 'gtest-config'])
        +   AS_IF([test "x${enable_gtest}" != "xyes"],
        +     [AS_IF([test -x "${enable_gtest}/scripts/gtest-config"],
        +        [GTEST_CONFIG="${enable_gtest}/scripts/gtest-config"],
        +        [GTEST_CONFIG="${enable_gtest}/bin/gtest-config"])
        +      AS_IF([test -x "${GTEST_CONFIG}"], [],
        +        [AC_MSG_RESULT([no])
        +         AC_MSG_ERROR([dnl
        +Unable to locate either a built or installed Google Test.
        +The specific location '${enable_gtest}' was provided for a built or installed
        +Google Test, but no 'gtest-config' script could be found at this location.])
        +         ])],
        +     [AC_PATH_PROG([GTEST_CONFIG], [gtest-config])])
        +   AS_IF([test -x "${GTEST_CONFIG}"],
        +     [AC_MSG_RESULT([${GTEST_CONFIG}])
        +      m4_ifval([$1],
        +        [_gtest_min_version="--min-version=$1"
        +         AC_MSG_CHECKING([for Google Test at least version >= $1])],
        +        [_gtest_min_version="--min-version=0"
        +         AC_MSG_CHECKING([for Google Test])])
        +      AS_IF([${GTEST_CONFIG} ${_gtest_min_version}],
        +        [AC_MSG_RESULT([yes])
        +         HAVE_GTEST='yes'],
        +        [AC_MSG_RESULT([no])])],
        +     [AC_MSG_RESULT([no])])
        +   AS_IF([test "x${HAVE_GTEST}" = "xyes"],
        +     [GTEST_CPPFLAGS=`${GTEST_CONFIG} --cppflags`
        +      GTEST_CXXFLAGS=`${GTEST_CONFIG} --cxxflags`
        +      GTEST_LDFLAGS=`${GTEST_CONFIG} --ldflags`
        +      GTEST_LIBS=`${GTEST_CONFIG} --libs`
        +      GTEST_VERSION=`${GTEST_CONFIG} --version`
        +      AC_DEFINE([HAVE_GTEST],[1],[Defined when Google Test is available.])],
        +     [AS_IF([test "x${enable_gtest}" = "xyes"],
        +        [AC_MSG_ERROR([dnl
        +Google Test was enabled, but no viable version could be found.])
        +         ])])])
        +AC_SUBST([HAVE_GTEST])
        +AM_CONDITIONAL([HAVE_GTEST],[test "x$HAVE_GTEST" = "xyes"])
        +AS_IF([test "x$HAVE_GTEST" = "xyes"],
        +  [m4_ifval([$2], [$2])],
        +  [m4_ifval([$3], [$3])])
        +])
        diff --git a/lib/ann/fann/lib/googletest/msvc/gtest-md.vcproj b/lib/ann/fann/lib/googletest/msvc/gtest-md.vcproj
        new file mode 100644
        index 0000000..1c35c3a
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/msvc/gtest-md.vcproj
        @@ -0,0 +1,126 @@
        +<?xml version="1.0" encoding="Windows-1252"?>
        +<VisualStudioProject
        +	ProjectType="Visual C++"
        +	Version="7.10"
        +	Name="gtest-md"
        +	ProjectGUID="{C8F6C172-56F2-4E76-B5FA-C3B423B31BE8}"
        +	Keyword="Win32Proj">
        +	<Platforms>
        +		<Platform
        +			Name="Win32"/>
        +	</Platforms>
        +	<Configurations>
        +		<Configuration
        +			Name="Debug|Win32"
        +			OutputDirectory="$(SolutionName)/$(ConfigurationName)"
        +			IntermediateDirectory="$(OutDir)/$(ProjectName)"
        +			ConfigurationType="4"
        +			CharacterSet="2"
        +			ReferencesPath="">
        +			<Tool
        +				Name="VCCLCompilerTool"
        +				Optimization="0"
        +				PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
        +				MinimalRebuild="TRUE"
        +				BasicRuntimeChecks="3"
        +				RuntimeLibrary="3"
        +				UsePrecompiledHeader="0"
        +				WarningLevel="3"
        +				Detect64BitPortabilityProblems="FALSE"
        +				DebugInformationFormat="4"/>
        +			<Tool
        +				Name="VCCustomBuildTool"/>
        +			<Tool
        +				Name="VCLibrarianTool"
        +				OutputFile="$(OutDir)/gtestd.lib"/>
        +			<Tool
        +				Name="VCMIDLTool"/>
        +			<Tool
        +				Name="VCPostBuildEventTool"/>
        +			<Tool
        +				Name="VCPreBuildEventTool"/>
        +			<Tool
        +				Name="VCPreLinkEventTool"/>
        +			<Tool
        +				Name="VCResourceCompilerTool"/>
        +			<Tool
        +				Name="VCWebServiceProxyGeneratorTool"/>
        +			<Tool
        +				Name="VCXMLDataGeneratorTool"/>
        +			<Tool
        +				Name="VCManagedWrapperGeneratorTool"/>
        +			<Tool
        +				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
        +		</Configuration>
        +		<Configuration
        +			Name="Release|Win32"
        +			OutputDirectory="$(SolutionName)/$(ConfigurationName)"
        +			IntermediateDirectory="$(OutDir)/$(ProjectName)"
        +			ConfigurationType="4"
        +			CharacterSet="2"
        +			ReferencesPath="&quot;..\include&quot;;&quot;..&quot;">
        +			<Tool
        +				Name="VCCLCompilerTool"
        +				PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
        +				RuntimeLibrary="2"
        +				UsePrecompiledHeader="0"
        +				WarningLevel="3"
        +				Detect64BitPortabilityProblems="FALSE"
        +				DebugInformationFormat="3"/>
        +			<Tool
        +				Name="VCCustomBuildTool"/>
        +			<Tool
        +				Name="VCLibrarianTool"
        +				OutputFile="$(OutDir)/gtest.lib"/>
        +			<Tool
        +				Name="VCMIDLTool"/>
        +			<Tool
        +				Name="VCPostBuildEventTool"/>
        +			<Tool
        +				Name="VCPreBuildEventTool"/>
        +			<Tool
        +				Name="VCPreLinkEventTool"/>
        +			<Tool
        +				Name="VCResourceCompilerTool"/>
        +			<Tool
        +				Name="VCWebServiceProxyGeneratorTool"/>
        +			<Tool
        +				Name="VCXMLDataGeneratorTool"/>
        +			<Tool
        +				Name="VCManagedWrapperGeneratorTool"/>
        +			<Tool
        +				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
        +		</Configuration>
        +	</Configurations>
        +	<References>
        +	</References>
        +	<Files>
        +		<Filter
        +			Name="Source Files"
        +			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
        +			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
        +			<File
        +				RelativePath="..\src\gtest-all.cc">
        +				<FileConfiguration
        +					Name="Debug|Win32">
        +					<Tool
        +						Name="VCCLCompilerTool"
        +						AdditionalIncludeDirectories="&quot;..&quot;;&quot;..\include&quot;"/>
        +				</FileConfiguration>
        +				<FileConfiguration
        +					Name="Release|Win32">
        +					<Tool
        +						Name="VCCLCompilerTool"
        +						AdditionalIncludeDirectories="&quot;..&quot;;&quot;..\include&quot;"/>
        +				</FileConfiguration>
        +			</File>
        +		</Filter>
        +		<Filter
        +			Name="Header Files"
        +			Filter="h;hpp;hxx;hm;inl;inc;xsd"
        +			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
        +		</Filter>
        +	</Files>
        +	<Globals>
        +	</Globals>
        +</VisualStudioProject>
        diff --git a/lib/ann/fann/lib/googletest/msvc/gtest.vcproj b/lib/ann/fann/lib/googletest/msvc/gtest.vcproj
        new file mode 100644
        index 0000000..a8373ce
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/msvc/gtest.vcproj
        @@ -0,0 +1,126 @@
        +<?xml version="1.0" encoding="Windows-1252"?>
        +<VisualStudioProject
        +	ProjectType="Visual C++"
        +	Version="7.10"
        +	Name="gtest"
        +	ProjectGUID="{C8F6C172-56F2-4E76-B5FA-C3B423B31BE7}"
        +	Keyword="Win32Proj">
        +	<Platforms>
        +		<Platform
        +			Name="Win32"/>
        +	</Platforms>
        +	<Configurations>
        +		<Configuration
        +			Name="Debug|Win32"
        +			OutputDirectory="$(SolutionName)/$(ConfigurationName)"
        +			IntermediateDirectory="$(OutDir)/$(ProjectName)"
        +			ConfigurationType="4"
        +			CharacterSet="2"
        +			ReferencesPath="">
        +			<Tool
        +				Name="VCCLCompilerTool"
        +				Optimization="0"
        +				PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
        +				MinimalRebuild="TRUE"
        +				BasicRuntimeChecks="3"
        +				RuntimeLibrary="5"
        +				UsePrecompiledHeader="0"
        +				WarningLevel="3"
        +				Detect64BitPortabilityProblems="FALSE"
        +				DebugInformationFormat="4"/>
        +			<Tool
        +				Name="VCCustomBuildTool"/>
        +			<Tool
        +				Name="VCLibrarianTool"
        +				OutputFile="$(OutDir)/gtestd.lib"/>
        +			<Tool
        +				Name="VCMIDLTool"/>
        +			<Tool
        +				Name="VCPostBuildEventTool"/>
        +			<Tool
        +				Name="VCPreBuildEventTool"/>
        +			<Tool
        +				Name="VCPreLinkEventTool"/>
        +			<Tool
        +				Name="VCResourceCompilerTool"/>
        +			<Tool
        +				Name="VCWebServiceProxyGeneratorTool"/>
        +			<Tool
        +				Name="VCXMLDataGeneratorTool"/>
        +			<Tool
        +				Name="VCManagedWrapperGeneratorTool"/>
        +			<Tool
        +				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
        +		</Configuration>
        +		<Configuration
        +			Name="Release|Win32"
        +			OutputDirectory="$(SolutionName)/$(ConfigurationName)"
        +			IntermediateDirectory="$(OutDir)/$(ProjectName)"
        +			ConfigurationType="4"
        +			CharacterSet="2"
        +			ReferencesPath="&quot;..\include&quot;;&quot;..&quot;">
        +			<Tool
        +				Name="VCCLCompilerTool"
        +				PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
        +				RuntimeLibrary="4"
        +				UsePrecompiledHeader="0"
        +				WarningLevel="3"
        +				Detect64BitPortabilityProblems="FALSE"
        +				DebugInformationFormat="3"/>
        +			<Tool
        +				Name="VCCustomBuildTool"/>
        +			<Tool
        +				Name="VCLibrarianTool"
        +				OutputFile="$(OutDir)/gtest.lib"/>
        +			<Tool
        +				Name="VCMIDLTool"/>
        +			<Tool
        +				Name="VCPostBuildEventTool"/>
        +			<Tool
        +				Name="VCPreBuildEventTool"/>
        +			<Tool
        +				Name="VCPreLinkEventTool"/>
        +			<Tool
        +				Name="VCResourceCompilerTool"/>
        +			<Tool
        +				Name="VCWebServiceProxyGeneratorTool"/>
        +			<Tool
        +				Name="VCXMLDataGeneratorTool"/>
        +			<Tool
        +				Name="VCManagedWrapperGeneratorTool"/>
        +			<Tool
        +				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
        +		</Configuration>
        +	</Configurations>
        +	<References>
        +	</References>
        +	<Files>
        +		<Filter
        +			Name="Source Files"
        +			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
        +			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
        +			<File
        +				RelativePath="..\src\gtest-all.cc">
        +				<FileConfiguration
        +					Name="Debug|Win32">
        +					<Tool
        +						Name="VCCLCompilerTool"
        +						AdditionalIncludeDirectories="&quot;..&quot;;&quot;..\include&quot;"/>
        +				</FileConfiguration>
        +				<FileConfiguration
        +					Name="Release|Win32">
        +					<Tool
        +						Name="VCCLCompilerTool"
        +						AdditionalIncludeDirectories="&quot;..&quot;;&quot;..\include&quot;"/>
        +				</FileConfiguration>
        +			</File>
        +		</Filter>
        +		<Filter
        +			Name="Header Files"
        +			Filter="h;hpp;hxx;hm;inl;inc;xsd"
        +			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
        +		</Filter>
        +	</Files>
        +	<Globals>
        +	</Globals>
        +</VisualStudioProject>
        diff --git a/lib/ann/fann/lib/googletest/msvc/gtest_main-md.vcproj b/lib/ann/fann/lib/googletest/msvc/gtest_main-md.vcproj
        new file mode 100644
        index 0000000..b5379fe
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/msvc/gtest_main-md.vcproj
        @@ -0,0 +1,129 @@
        +<?xml version="1.0" encoding="Windows-1252"?>
        +<VisualStudioProject
        +	ProjectType="Visual C++"
        +	Version="7.10"
        +	Name="gtest_main-md"
        +	ProjectGUID="{3AF54C8A-10BF-4332-9147-F68ED9862033}"
        +	Keyword="Win32Proj">
        +	<Platforms>
        +		<Platform
        +			Name="Win32"/>
        +	</Platforms>
        +	<Configurations>
        +		<Configuration
        +			Name="Debug|Win32"
        +			OutputDirectory="$(SolutionName)/$(ConfigurationName)"
        +			IntermediateDirectory="$(OutDir)/$(ProjectName)"
        +			ConfigurationType="4"
        +			CharacterSet="2"
        +			ReferencesPath="">
        +			<Tool
        +				Name="VCCLCompilerTool"
        +				Optimization="0"
        +				PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
        +				MinimalRebuild="TRUE"
        +				BasicRuntimeChecks="3"
        +				RuntimeLibrary="3"
        +				UsePrecompiledHeader="0"
        +				WarningLevel="3"
        +				Detect64BitPortabilityProblems="FALSE"
        +				DebugInformationFormat="4"/>
        +			<Tool
        +				Name="VCCustomBuildTool"/>
        +			<Tool
        +				Name="VCLibrarianTool"
        +				OutputFile="$(OutDir)/$(ProjectName)d.lib"/>
        +			<Tool
        +				Name="VCMIDLTool"/>
        +			<Tool
        +				Name="VCPostBuildEventTool"/>
        +			<Tool
        +				Name="VCPreBuildEventTool"/>
        +			<Tool
        +				Name="VCPreLinkEventTool"/>
        +			<Tool
        +				Name="VCResourceCompilerTool"/>
        +			<Tool
        +				Name="VCWebServiceProxyGeneratorTool"/>
        +			<Tool
        +				Name="VCXMLDataGeneratorTool"/>
        +			<Tool
        +				Name="VCManagedWrapperGeneratorTool"/>
        +			<Tool
        +				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
        +		</Configuration>
        +		<Configuration
        +			Name="Release|Win32"
        +			OutputDirectory="$(SolutionName)/$(ConfigurationName)"
        +			IntermediateDirectory="$(OutDir)/$(ProjectName)"
        +			ConfigurationType="4"
        +			CharacterSet="2"
        +			ReferencesPath="&quot;..\include&quot;;&quot;..&quot;">
        +			<Tool
        +				Name="VCCLCompilerTool"
        +				PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
        +				RuntimeLibrary="2"
        +				UsePrecompiledHeader="0"
        +				WarningLevel="3"
        +				Detect64BitPortabilityProblems="FALSE"
        +				DebugInformationFormat="3"/>
        +			<Tool
        +				Name="VCCustomBuildTool"/>
        +			<Tool
        +				Name="VCLibrarianTool"
        +				OutputFile="$(OutDir)/$(ProjectName).lib"/>
        +			<Tool
        +				Name="VCMIDLTool"/>
        +			<Tool
        +				Name="VCPostBuildEventTool"/>
        +			<Tool
        +				Name="VCPreBuildEventTool"/>
        +			<Tool
        +				Name="VCPreLinkEventTool"/>
        +			<Tool
        +				Name="VCResourceCompilerTool"/>
        +			<Tool
        +				Name="VCWebServiceProxyGeneratorTool"/>
        +			<Tool
        +				Name="VCXMLDataGeneratorTool"/>
        +			<Tool
        +				Name="VCManagedWrapperGeneratorTool"/>
        +			<Tool
        +				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
        +		</Configuration>
        +	</Configurations>
        +	<References>
        +		<ProjectReference
        +			ReferencedProjectIdentifier="{C8F6C172-56F2-4E76-B5FA-C3B423B31BE8}"
        +			Name="gtest-md"/>
        +	</References>
        +	<Files>
        +		<Filter
        +			Name="Source Files"
        +			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
        +			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
        +			<File
        +				RelativePath="..\src\gtest_main.cc">
        +				<FileConfiguration
        +					Name="Debug|Win32">
        +					<Tool
        +						Name="VCCLCompilerTool"
        +						AdditionalIncludeDirectories="&quot;..&quot;;&quot;..\include&quot;"/>
        +				</FileConfiguration>
        +				<FileConfiguration
        +					Name="Release|Win32">
        +					<Tool
        +						Name="VCCLCompilerTool"
        +						AdditionalIncludeDirectories="&quot;..&quot;;&quot;..\include&quot;"/>
        +				</FileConfiguration>
        +			</File>
        +		</Filter>
        +		<Filter
        +			Name="Header Files"
        +			Filter="h;hpp;hxx;hm;inl;inc;xsd"
        +			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
        +		</Filter>
        +	</Files>
        +	<Globals>
        +	</Globals>
        +</VisualStudioProject>
        diff --git a/lib/ann/fann/lib/googletest/msvc/gtest_main.vcproj b/lib/ann/fann/lib/googletest/msvc/gtest_main.vcproj
        new file mode 100644
        index 0000000..e8b763c
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/msvc/gtest_main.vcproj
        @@ -0,0 +1,129 @@
        +<?xml version="1.0" encoding="Windows-1252"?>
        +<VisualStudioProject
        +	ProjectType="Visual C++"
        +	Version="7.10"
        +	Name="gtest_main"
        +	ProjectGUID="{3AF54C8A-10BF-4332-9147-F68ED9862032}"
        +	Keyword="Win32Proj">
        +	<Platforms>
        +		<Platform
        +			Name="Win32"/>
        +	</Platforms>
        +	<Configurations>
        +		<Configuration
        +			Name="Debug|Win32"
        +			OutputDirectory="$(SolutionName)/$(ConfigurationName)"
        +			IntermediateDirectory="$(OutDir)/$(ProjectName)"
        +			ConfigurationType="4"
        +			CharacterSet="2"
        +			ReferencesPath="">
        +			<Tool
        +				Name="VCCLCompilerTool"
        +				Optimization="0"
        +				PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
        +				MinimalRebuild="TRUE"
        +				BasicRuntimeChecks="3"
        +				RuntimeLibrary="5"
        +				UsePrecompiledHeader="0"
        +				WarningLevel="3"
        +				Detect64BitPortabilityProblems="FALSE"
        +				DebugInformationFormat="4"/>
        +			<Tool
        +				Name="VCCustomBuildTool"/>
        +			<Tool
        +				Name="VCLibrarianTool"
        +				OutputFile="$(OutDir)/$(ProjectName)d.lib"/>
        +			<Tool
        +				Name="VCMIDLTool"/>
        +			<Tool
        +				Name="VCPostBuildEventTool"/>
        +			<Tool
        +				Name="VCPreBuildEventTool"/>
        +			<Tool
        +				Name="VCPreLinkEventTool"/>
        +			<Tool
        +				Name="VCResourceCompilerTool"/>
        +			<Tool
        +				Name="VCWebServiceProxyGeneratorTool"/>
        +			<Tool
        +				Name="VCXMLDataGeneratorTool"/>
        +			<Tool
        +				Name="VCManagedWrapperGeneratorTool"/>
        +			<Tool
        +				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
        +		</Configuration>
        +		<Configuration
        +			Name="Release|Win32"
        +			OutputDirectory="$(SolutionName)/$(ConfigurationName)"
        +			IntermediateDirectory="$(OutDir)/$(ProjectName)"
        +			ConfigurationType="4"
        +			CharacterSet="2"
        +			ReferencesPath="&quot;..\include&quot;;&quot;..&quot;">
        +			<Tool
        +				Name="VCCLCompilerTool"
        +				PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
        +				RuntimeLibrary="4"
        +				UsePrecompiledHeader="0"
        +				WarningLevel="3"
        +				Detect64BitPortabilityProblems="FALSE"
        +				DebugInformationFormat="3"/>
        +			<Tool
        +				Name="VCCustomBuildTool"/>
        +			<Tool
        +				Name="VCLibrarianTool"
        +				OutputFile="$(OutDir)/$(ProjectName).lib"/>
        +			<Tool
        +				Name="VCMIDLTool"/>
        +			<Tool
        +				Name="VCPostBuildEventTool"/>
        +			<Tool
        +				Name="VCPreBuildEventTool"/>
        +			<Tool
        +				Name="VCPreLinkEventTool"/>
        +			<Tool
        +				Name="VCResourceCompilerTool"/>
        +			<Tool
        +				Name="VCWebServiceProxyGeneratorTool"/>
        +			<Tool
        +				Name="VCXMLDataGeneratorTool"/>
        +			<Tool
        +				Name="VCManagedWrapperGeneratorTool"/>
        +			<Tool
        +				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
        +		</Configuration>
        +	</Configurations>
        +	<References>
        +		<ProjectReference
        +			ReferencedProjectIdentifier="{C8F6C172-56F2-4E76-B5FA-C3B423B31BE7}"
        +			Name="gtest"/>
        +	</References>
        +	<Files>
        +		<Filter
        +			Name="Source Files"
        +			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
        +			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
        +			<File
        +				RelativePath="..\src\gtest_main.cc">
        +				<FileConfiguration
        +					Name="Debug|Win32">
        +					<Tool
        +						Name="VCCLCompilerTool"
        +						AdditionalIncludeDirectories="&quot;..&quot;;&quot;..\include&quot;"/>
        +				</FileConfiguration>
        +				<FileConfiguration
        +					Name="Release|Win32">
        +					<Tool
        +						Name="VCCLCompilerTool"
        +						AdditionalIncludeDirectories="&quot;..&quot;;&quot;..\include&quot;"/>
        +				</FileConfiguration>
        +			</File>
        +		</Filter>
        +		<Filter
        +			Name="Header Files"
        +			Filter="h;hpp;hxx;hm;inl;inc;xsd"
        +			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
        +		</Filter>
        +	</Files>
        +	<Globals>
        +	</Globals>
        +</VisualStudioProject>
        diff --git a/lib/ann/fann/lib/googletest/msvc/gtest_prod_test-md.vcproj b/lib/ann/fann/lib/googletest/msvc/gtest_prod_test-md.vcproj
        new file mode 100644
        index 0000000..05b05d9
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/msvc/gtest_prod_test-md.vcproj
        @@ -0,0 +1,164 @@
        +<?xml version="1.0" encoding="Windows-1252"?>
        +<VisualStudioProject
        +	ProjectType="Visual C++"
        +	Version="7.10"
        +	Name="gtest_prod_test-md"
        +	ProjectGUID="{24848551-EF4F-47E8-9A9D-EA4D49BC3ECB}"
        +	Keyword="Win32Proj">
        +	<Platforms>
        +		<Platform
        +			Name="Win32"/>
        +	</Platforms>
        +	<Configurations>
        +		<Configuration
        +			Name="Debug|Win32"
        +			OutputDirectory="$(SolutionName)/$(ConfigurationName)"
        +			IntermediateDirectory="$(OutDir)/$(ProjectName)"
        +			ConfigurationType="1"
        +			CharacterSet="2">
        +			<Tool
        +				Name="VCCLCompilerTool"
        +				Optimization="0"
        +				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
        +				MinimalRebuild="TRUE"
        +				BasicRuntimeChecks="3"
        +				RuntimeLibrary="3"
        +				UsePrecompiledHeader="3"
        +				WarningLevel="3"
        +				Detect64BitPortabilityProblems="FALSE"
        +				DebugInformationFormat="4"/>
        +			<Tool
        +				Name="VCCustomBuildTool"/>
        +			<Tool
        +				Name="VCLinkerTool"
        +				OutputFile="$(OutDir)/gtest_prod_test.exe"
        +				LinkIncremental="2"
        +				GenerateDebugInformation="TRUE"
        +				ProgramDatabaseFile="$(OutDir)/gtest_prod_test.pdb"
        +				SubSystem="1"
        +				TargetMachine="1"/>
        +			<Tool
        +				Name="VCMIDLTool"/>
        +			<Tool
        +				Name="VCPostBuildEventTool"/>
        +			<Tool
        +				Name="VCPreBuildEventTool"/>
        +			<Tool
        +				Name="VCPreLinkEventTool"/>
        +			<Tool
        +				Name="VCResourceCompilerTool"/>
        +			<Tool
        +				Name="VCWebServiceProxyGeneratorTool"/>
        +			<Tool
        +				Name="VCXMLDataGeneratorTool"/>
        +			<Tool
        +				Name="VCWebDeploymentTool"/>
        +			<Tool
        +				Name="VCManagedWrapperGeneratorTool"/>
        +			<Tool
        +				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
        +		</Configuration>
        +		<Configuration
        +			Name="Release|Win32"
        +			OutputDirectory="$(SolutionName)/$(ConfigurationName)"
        +			IntermediateDirectory="$(OutDir)/$(ProjectName)"
        +			ConfigurationType="1"
        +			CharacterSet="2">
        +			<Tool
        +				Name="VCCLCompilerTool"
        +				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
        +				RuntimeLibrary="2"
        +				UsePrecompiledHeader="3"
        +				WarningLevel="3"
        +				Detect64BitPortabilityProblems="FALSE"
        +				DebugInformationFormat="3"/>
        +			<Tool
        +				Name="VCCustomBuildTool"/>
        +			<Tool
        +				Name="VCLinkerTool"
        +				OutputFile="$(OutDir)/gtest_prod_test.exe"
        +				LinkIncremental="1"
        +				GenerateDebugInformation="TRUE"
        +				SubSystem="1"
        +				OptimizeReferences="2"
        +				EnableCOMDATFolding="2"
        +				TargetMachine="1"/>
        +			<Tool
        +				Name="VCMIDLTool"/>
        +			<Tool
        +				Name="VCPostBuildEventTool"/>
        +			<Tool
        +				Name="VCPreBuildEventTool"/>
        +			<Tool
        +				Name="VCPreLinkEventTool"/>
        +			<Tool
        +				Name="VCResourceCompilerTool"/>
        +			<Tool
        +				Name="VCWebServiceProxyGeneratorTool"/>
        +			<Tool
        +				Name="VCXMLDataGeneratorTool"/>
        +			<Tool
        +				Name="VCWebDeploymentTool"/>
        +			<Tool
        +				Name="VCManagedWrapperGeneratorTool"/>
        +			<Tool
        +				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
        +		</Configuration>
        +	</Configurations>
        +	<References>
        +		<ProjectReference
        +			ReferencedProjectIdentifier="{3AF54C8A-10BF-4332-9147-F68ED9862033}"
        +			Name="gtest_main-md"/>
        +	</References>
        +	<Files>
        +		<Filter
        +			Name="Source Files"
        +			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
        +			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
        +			<File
        +				RelativePath="..\test\gtest_prod_test.cc">
        +				<FileConfiguration
        +					Name="Debug|Win32">
        +					<Tool
        +						Name="VCCLCompilerTool"
        +						AdditionalIncludeDirectories="&quot;..&quot;;&quot;..\include&quot;"
        +						UsePrecompiledHeader="0"/>
        +				</FileConfiguration>
        +				<FileConfiguration
        +					Name="Release|Win32">
        +					<Tool
        +						Name="VCCLCompilerTool"
        +						AdditionalIncludeDirectories="&quot;..&quot;;&quot;..\include&quot;"
        +						UsePrecompiledHeader="0"/>
        +				</FileConfiguration>
        +			</File>
        +			<File
        +				RelativePath="..\test\production.cc">
        +				<FileConfiguration
        +					Name="Debug|Win32">
        +					<Tool
        +						Name="VCCLCompilerTool"
        +						AdditionalIncludeDirectories="&quot;..&quot;;&quot;..\include&quot;"
        +						UsePrecompiledHeader="0"/>
        +				</FileConfiguration>
        +				<FileConfiguration
        +					Name="Release|Win32">
        +					<Tool
        +						Name="VCCLCompilerTool"
        +						AdditionalIncludeDirectories="&quot;..&quot;;&quot;..\include&quot;"
        +						UsePrecompiledHeader="0"/>
        +				</FileConfiguration>
        +			</File>
        +		</Filter>
        +		<Filter
        +			Name="Header Files"
        +			Filter="h;hpp;hxx;hm;inl;inc;xsd"
        +			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
        +			<File
        +				RelativePath="..\test\production.h">
        +			</File>
        +		</Filter>
        +	</Files>
        +	<Globals>
        +	</Globals>
        +</VisualStudioProject>
        diff --git a/lib/ann/fann/lib/googletest/msvc/gtest_prod_test.vcproj b/lib/ann/fann/lib/googletest/msvc/gtest_prod_test.vcproj
        new file mode 100644
        index 0000000..6d7a2f0
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/msvc/gtest_prod_test.vcproj
        @@ -0,0 +1,164 @@
        +<?xml version="1.0" encoding="Windows-1252"?>
        +<VisualStudioProject
        +	ProjectType="Visual C++"
        +	Version="7.10"
        +	Name="gtest_prod_test"
        +	ProjectGUID="{24848551-EF4F-47E8-9A9D-EA4D49BC3ECA}"
        +	Keyword="Win32Proj">
        +	<Platforms>
        +		<Platform
        +			Name="Win32"/>
        +	</Platforms>
        +	<Configurations>
        +		<Configuration
        +			Name="Debug|Win32"
        +			OutputDirectory="$(SolutionName)/$(ConfigurationName)"
        +			IntermediateDirectory="$(OutDir)/$(ProjectName)"
        +			ConfigurationType="1"
        +			CharacterSet="2">
        +			<Tool
        +				Name="VCCLCompilerTool"
        +				Optimization="0"
        +				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
        +				MinimalRebuild="TRUE"
        +				BasicRuntimeChecks="3"
        +				RuntimeLibrary="5"
        +				UsePrecompiledHeader="3"
        +				WarningLevel="3"
        +				Detect64BitPortabilityProblems="FALSE"
        +				DebugInformationFormat="4"/>
        +			<Tool
        +				Name="VCCustomBuildTool"/>
        +			<Tool
        +				Name="VCLinkerTool"
        +				OutputFile="$(OutDir)/gtest_prod_test.exe"
        +				LinkIncremental="2"
        +				GenerateDebugInformation="TRUE"
        +				ProgramDatabaseFile="$(OutDir)/gtest_prod_test.pdb"
        +				SubSystem="1"
        +				TargetMachine="1"/>
        +			<Tool
        +				Name="VCMIDLTool"/>
        +			<Tool
        +				Name="VCPostBuildEventTool"/>
        +			<Tool
        +				Name="VCPreBuildEventTool"/>
        +			<Tool
        +				Name="VCPreLinkEventTool"/>
        +			<Tool
        +				Name="VCResourceCompilerTool"/>
        +			<Tool
        +				Name="VCWebServiceProxyGeneratorTool"/>
        +			<Tool
        +				Name="VCXMLDataGeneratorTool"/>
        +			<Tool
        +				Name="VCWebDeploymentTool"/>
        +			<Tool
        +				Name="VCManagedWrapperGeneratorTool"/>
        +			<Tool
        +				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
        +		</Configuration>
        +		<Configuration
        +			Name="Release|Win32"
        +			OutputDirectory="$(SolutionName)/$(ConfigurationName)"
        +			IntermediateDirectory="$(OutDir)/$(ProjectName)"
        +			ConfigurationType="1"
        +			CharacterSet="2">
        +			<Tool
        +				Name="VCCLCompilerTool"
        +				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
        +				RuntimeLibrary="4"
        +				UsePrecompiledHeader="3"
        +				WarningLevel="3"
        +				Detect64BitPortabilityProblems="FALSE"
        +				DebugInformationFormat="3"/>
        +			<Tool
        +				Name="VCCustomBuildTool"/>
        +			<Tool
        +				Name="VCLinkerTool"
        +				OutputFile="$(OutDir)/gtest_prod_test.exe"
        +				LinkIncremental="1"
        +				GenerateDebugInformation="TRUE"
        +				SubSystem="1"
        +				OptimizeReferences="2"
        +				EnableCOMDATFolding="2"
        +				TargetMachine="1"/>
        +			<Tool
        +				Name="VCMIDLTool"/>
        +			<Tool
        +				Name="VCPostBuildEventTool"/>
        +			<Tool
        +				Name="VCPreBuildEventTool"/>
        +			<Tool
        +				Name="VCPreLinkEventTool"/>
        +			<Tool
        +				Name="VCResourceCompilerTool"/>
        +			<Tool
        +				Name="VCWebServiceProxyGeneratorTool"/>
        +			<Tool
        +				Name="VCXMLDataGeneratorTool"/>
        +			<Tool
        +				Name="VCWebDeploymentTool"/>
        +			<Tool
        +				Name="VCManagedWrapperGeneratorTool"/>
        +			<Tool
        +				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
        +		</Configuration>
        +	</Configurations>
        +	<References>
        +		<ProjectReference
        +			ReferencedProjectIdentifier="{3AF54C8A-10BF-4332-9147-F68ED9862032}"
        +			Name="gtest_main"/>
        +	</References>
        +	<Files>
        +		<Filter
        +			Name="Source Files"
        +			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
        +			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
        +			<File
        +				RelativePath="..\test\gtest_prod_test.cc">
        +				<FileConfiguration
        +					Name="Debug|Win32">
        +					<Tool
        +						Name="VCCLCompilerTool"
        +						AdditionalIncludeDirectories="&quot;..&quot;;&quot;..\include&quot;"
        +						UsePrecompiledHeader="0"/>
        +				</FileConfiguration>
        +				<FileConfiguration
        +					Name="Release|Win32">
        +					<Tool
        +						Name="VCCLCompilerTool"
        +						AdditionalIncludeDirectories="&quot;..&quot;;&quot;..\include&quot;"
        +						UsePrecompiledHeader="0"/>
        +				</FileConfiguration>
        +			</File>
        +			<File
        +				RelativePath="..\test\production.cc">
        +				<FileConfiguration
        +					Name="Debug|Win32">
        +					<Tool
        +						Name="VCCLCompilerTool"
        +						AdditionalIncludeDirectories="&quot;..&quot;;&quot;..\include&quot;"
        +						UsePrecompiledHeader="0"/>
        +				</FileConfiguration>
        +				<FileConfiguration
        +					Name="Release|Win32">
        +					<Tool
        +						Name="VCCLCompilerTool"
        +						AdditionalIncludeDirectories="&quot;..&quot;;&quot;..\include&quot;"
        +						UsePrecompiledHeader="0"/>
        +				</FileConfiguration>
        +			</File>
        +		</Filter>
        +		<Filter
        +			Name="Header Files"
        +			Filter="h;hpp;hxx;hm;inl;inc;xsd"
        +			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
        +			<File
        +				RelativePath="..\test\production.h">
        +			</File>
        +		</Filter>
        +	</Files>
        +	<Globals>
        +	</Globals>
        +</VisualStudioProject>
        diff --git a/lib/ann/fann/lib/googletest/msvc/gtest_unittest-md.vcproj b/lib/ann/fann/lib/googletest/msvc/gtest_unittest-md.vcproj
        new file mode 100644
        index 0000000..38a5e56
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/msvc/gtest_unittest-md.vcproj
        @@ -0,0 +1,147 @@
        +<?xml version="1.0" encoding="Windows-1252"?>
        +<VisualStudioProject
        +	ProjectType="Visual C++"
        +	Version="7.10"
        +	Name="gtest_unittest-md"
        +	ProjectGUID="{4D9FDFB5-986A-4139-823C-F4EE0ED481A2}"
        +	Keyword="Win32Proj">
        +	<Platforms>
        +		<Platform
        +			Name="Win32"/>
        +	</Platforms>
        +	<Configurations>
        +		<Configuration
        +			Name="Debug|Win32"
        +			OutputDirectory="$(SolutionName)/$(ConfigurationName)"
        +			IntermediateDirectory="$(OutDir)/$(ProjectName)"
        +			ConfigurationType="1"
        +			CharacterSet="2">
        +			<Tool
        +				Name="VCCLCompilerTool"
        +				Optimization="0"
        +				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
        +				MinimalRebuild="TRUE"
        +				BasicRuntimeChecks="3"
        +				RuntimeLibrary="3"
        +				UsePrecompiledHeader="3"
        +				WarningLevel="3"
        +				Detect64BitPortabilityProblems="FALSE"
        +				DebugInformationFormat="4"/>
        +			<Tool
        +				Name="VCCustomBuildTool"/>
        +			<Tool
        +				Name="VCLinkerTool"
        +				OutputFile="$(OutDir)/gtest_unittest.exe"
        +				LinkIncremental="2"
        +				GenerateDebugInformation="TRUE"
        +				ProgramDatabaseFile="$(OutDir)/gtest_unittest.pdb"
        +				SubSystem="1"
        +				TargetMachine="1"/>
        +			<Tool
        +				Name="VCMIDLTool"/>
        +			<Tool
        +				Name="VCPostBuildEventTool"/>
        +			<Tool
        +				Name="VCPreBuildEventTool"/>
        +			<Tool
        +				Name="VCPreLinkEventTool"/>
        +			<Tool
        +				Name="VCResourceCompilerTool"/>
        +			<Tool
        +				Name="VCWebServiceProxyGeneratorTool"/>
        +			<Tool
        +				Name="VCXMLDataGeneratorTool"/>
        +			<Tool
        +				Name="VCWebDeploymentTool"/>
        +			<Tool
        +				Name="VCManagedWrapperGeneratorTool"/>
        +			<Tool
        +				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
        +		</Configuration>
        +		<Configuration
        +			Name="Release|Win32"
        +			OutputDirectory="$(SolutionName)/$(ConfigurationName)"
        +			IntermediateDirectory="$(OutDir)/$(ProjectName)"
        +			ConfigurationType="1"
        +			CharacterSet="2">
        +			<Tool
        +				Name="VCCLCompilerTool"
        +				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
        +				RuntimeLibrary="2"
        +				UsePrecompiledHeader="3"
        +				WarningLevel="3"
        +				Detect64BitPortabilityProblems="FALSE"
        +				DebugInformationFormat="3"/>
        +			<Tool
        +				Name="VCCustomBuildTool"/>
        +			<Tool
        +				Name="VCLinkerTool"
        +				OutputFile="$(OutDir)/gtest_unittest.exe"
        +				LinkIncremental="1"
        +				GenerateDebugInformation="TRUE"
        +				SubSystem="1"
        +				OptimizeReferences="2"
        +				EnableCOMDATFolding="2"
        +				TargetMachine="1"/>
        +			<Tool
        +				Name="VCMIDLTool"/>
        +			<Tool
        +				Name="VCPostBuildEventTool"/>
        +			<Tool
        +				Name="VCPreBuildEventTool"/>
        +			<Tool
        +				Name="VCPreLinkEventTool"/>
        +			<Tool
        +				Name="VCResourceCompilerTool"/>
        +			<Tool
        +				Name="VCWebServiceProxyGeneratorTool"/>
        +			<Tool
        +				Name="VCXMLDataGeneratorTool"/>
        +			<Tool
        +				Name="VCWebDeploymentTool"/>
        +			<Tool
        +				Name="VCManagedWrapperGeneratorTool"/>
        +			<Tool
        +				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
        +		</Configuration>
        +	</Configurations>
        +	<References>
        +		<ProjectReference
        +			ReferencedProjectIdentifier="{3AF54C8A-10BF-4332-9147-F68ED9862033}"
        +			Name="gtest_main-md"/>
        +	</References>
        +	<Files>
        +		<Filter
        +			Name="Source Files"
        +			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
        +			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
        +			<File
        +				RelativePath="..\test\gtest_unittest.cc">
        +				<FileConfiguration
        +					Name="Debug|Win32">
        +					<Tool
        +						Name="VCCLCompilerTool"
        +						Optimization="1"
        +						AdditionalIncludeDirectories="&quot;..&quot;;&quot;..\include&quot;"
        +						BasicRuntimeChecks="0"
        +						UsePrecompiledHeader="0"
        +						DebugInformationFormat="3"/>
        +				</FileConfiguration>
        +				<FileConfiguration
        +					Name="Release|Win32">
        +					<Tool
        +						Name="VCCLCompilerTool"
        +						AdditionalIncludeDirectories="&quot;..&quot;;&quot;..\include&quot;"
        +						UsePrecompiledHeader="0"/>
        +				</FileConfiguration>
        +			</File>
        +		</Filter>
        +		<Filter
        +			Name="Header Files"
        +			Filter="h;hpp;hxx;hm;inl;inc;xsd"
        +			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
        +		</Filter>
        +	</Files>
        +	<Globals>
        +	</Globals>
        +</VisualStudioProject>
        diff --git a/lib/ann/fann/lib/googletest/msvc/gtest_unittest.vcproj b/lib/ann/fann/lib/googletest/msvc/gtest_unittest.vcproj
        new file mode 100644
        index 0000000..cb1f52b
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/msvc/gtest_unittest.vcproj
        @@ -0,0 +1,147 @@
        +<?xml version="1.0" encoding="Windows-1252"?>
        +<VisualStudioProject
        +	ProjectType="Visual C++"
        +	Version="7.10"
        +	Name="gtest_unittest"
        +	ProjectGUID="{4D9FDFB5-986A-4139-823C-F4EE0ED481A1}"
        +	Keyword="Win32Proj">
        +	<Platforms>
        +		<Platform
        +			Name="Win32"/>
        +	</Platforms>
        +	<Configurations>
        +		<Configuration
        +			Name="Debug|Win32"
        +			OutputDirectory="$(SolutionName)/$(ConfigurationName)"
        +			IntermediateDirectory="$(OutDir)/$(ProjectName)"
        +			ConfigurationType="1"
        +			CharacterSet="2">
        +			<Tool
        +				Name="VCCLCompilerTool"
        +				Optimization="0"
        +				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
        +				MinimalRebuild="TRUE"
        +				BasicRuntimeChecks="3"
        +				RuntimeLibrary="5"
        +				UsePrecompiledHeader="3"
        +				WarningLevel="3"
        +				Detect64BitPortabilityProblems="FALSE"
        +				DebugInformationFormat="4"/>
        +			<Tool
        +				Name="VCCustomBuildTool"/>
        +			<Tool
        +				Name="VCLinkerTool"
        +				OutputFile="$(OutDir)/gtest_unittest.exe"
        +				LinkIncremental="2"
        +				GenerateDebugInformation="TRUE"
        +				ProgramDatabaseFile="$(OutDir)/gtest_unittest.pdb"
        +				SubSystem="1"
        +				TargetMachine="1"/>
        +			<Tool
        +				Name="VCMIDLTool"/>
        +			<Tool
        +				Name="VCPostBuildEventTool"/>
        +			<Tool
        +				Name="VCPreBuildEventTool"/>
        +			<Tool
        +				Name="VCPreLinkEventTool"/>
        +			<Tool
        +				Name="VCResourceCompilerTool"/>
        +			<Tool
        +				Name="VCWebServiceProxyGeneratorTool"/>
        +			<Tool
        +				Name="VCXMLDataGeneratorTool"/>
        +			<Tool
        +				Name="VCWebDeploymentTool"/>
        +			<Tool
        +				Name="VCManagedWrapperGeneratorTool"/>
        +			<Tool
        +				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
        +		</Configuration>
        +		<Configuration
        +			Name="Release|Win32"
        +			OutputDirectory="$(SolutionName)/$(ConfigurationName)"
        +			IntermediateDirectory="$(OutDir)/$(ProjectName)"
        +			ConfigurationType="1"
        +			CharacterSet="2">
        +			<Tool
        +				Name="VCCLCompilerTool"
        +				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
        +				RuntimeLibrary="4"
        +				UsePrecompiledHeader="3"
        +				WarningLevel="3"
        +				Detect64BitPortabilityProblems="FALSE"
        +				DebugInformationFormat="3"/>
        +			<Tool
        +				Name="VCCustomBuildTool"/>
        +			<Tool
        +				Name="VCLinkerTool"
        +				OutputFile="$(OutDir)/gtest_unittest.exe"
        +				LinkIncremental="1"
        +				GenerateDebugInformation="TRUE"
        +				SubSystem="1"
        +				OptimizeReferences="2"
        +				EnableCOMDATFolding="2"
        +				TargetMachine="1"/>
        +			<Tool
        +				Name="VCMIDLTool"/>
        +			<Tool
        +				Name="VCPostBuildEventTool"/>
        +			<Tool
        +				Name="VCPreBuildEventTool"/>
        +			<Tool
        +				Name="VCPreLinkEventTool"/>
        +			<Tool
        +				Name="VCResourceCompilerTool"/>
        +			<Tool
        +				Name="VCWebServiceProxyGeneratorTool"/>
        +			<Tool
        +				Name="VCXMLDataGeneratorTool"/>
        +			<Tool
        +				Name="VCWebDeploymentTool"/>
        +			<Tool
        +				Name="VCManagedWrapperGeneratorTool"/>
        +			<Tool
        +				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
        +		</Configuration>
        +	</Configurations>
        +	<References>
        +		<ProjectReference
        +			ReferencedProjectIdentifier="{3AF54C8A-10BF-4332-9147-F68ED9862032}"
        +			Name="gtest_main"/>
        +	</References>
        +	<Files>
        +		<Filter
        +			Name="Source Files"
        +			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
        +			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
        +			<File
        +				RelativePath="..\test\gtest_unittest.cc">
        +				<FileConfiguration
        +					Name="Debug|Win32">
        +					<Tool
        +						Name="VCCLCompilerTool"
        +						Optimization="1"
        +						AdditionalIncludeDirectories="&quot;..&quot;;&quot;..\include&quot;"
        +						BasicRuntimeChecks="0"
        +						UsePrecompiledHeader="0"
        +						DebugInformationFormat="3"/>
        +				</FileConfiguration>
        +				<FileConfiguration
        +					Name="Release|Win32">
        +					<Tool
        +						Name="VCCLCompilerTool"
        +						AdditionalIncludeDirectories="&quot;..&quot;;&quot;..\include&quot;"
        +						UsePrecompiledHeader="0"/>
        +				</FileConfiguration>
        +			</File>
        +		</Filter>
        +		<Filter
        +			Name="Header Files"
        +			Filter="h;hpp;hxx;hm;inl;inc;xsd"
        +			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
        +		</Filter>
        +	</Files>
        +	<Globals>
        +	</Globals>
        +</VisualStudioProject>
        diff --git a/lib/ann/fann/lib/googletest/samples/prime_tables.h b/lib/ann/fann/lib/googletest/samples/prime_tables.h
        new file mode 100644
        index 0000000..92ce16a
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/samples/prime_tables.h
        @@ -0,0 +1,123 @@
        +// Copyright 2008 Google Inc.
        +// All Rights Reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +// Author: vladl@google.com (Vlad Losev)
        +
        +// This provides interface PrimeTable that determines whether a number is a
        +// prime and determines a next prime number. This interface is used
        +// in Google Test samples demonstrating use of parameterized tests.
        +
        +#ifndef GTEST_SAMPLES_PRIME_TABLES_H_
        +#define GTEST_SAMPLES_PRIME_TABLES_H_
        +
        +#include <algorithm>
        +
        +// The prime table interface.
        +class PrimeTable {
        + public:
        +  virtual ~PrimeTable() {}
        +
        +  // Returns true iff n is a prime number.
        +  virtual bool IsPrime(int n) const = 0;
        +
        +  // Returns the smallest prime number greater than p; or returns -1
        +  // if the next prime is beyond the capacity of the table.
        +  virtual int GetNextPrime(int p) const = 0;
        +};
        +
        +// Implementation #1 calculates the primes on-the-fly.
        +class OnTheFlyPrimeTable : public PrimeTable {
        + public:
        +  virtual bool IsPrime(int n) const {
        +    if (n <= 1) return false;
        +
        +    for (int i = 2; i*i <= n; i++) {
        +      // n is divisible by an integer other than 1 and itself.
        +      if ((n % i) == 0) return false;
        +    }
        +
        +    return true;
        +  }
        +
        +  virtual int GetNextPrime(int p) const {
        +    for (int n = p + 1; n > 0; n++) {
        +      if (IsPrime(n)) return n;
        +    }
        +
        +    return -1;
        +  }
        +};
        +
        +// Implementation #2 pre-calculates the primes and stores the result
        +// in an array.
        +class PreCalculatedPrimeTable : public PrimeTable {
        + public:
        +  // 'max' specifies the maximum number the prime table holds.
        +  explicit PreCalculatedPrimeTable(int max)
        +      : is_prime_size_(max + 1), is_prime_(new bool[max + 1]) {
        +    CalculatePrimesUpTo(max);
        +  }
        +  virtual ~PreCalculatedPrimeTable() { delete[] is_prime_; }
        +
        +  virtual bool IsPrime(int n) const {
        +    return 0 <= n && n < is_prime_size_ && is_prime_[n];
        +  }
        +
        +  virtual int GetNextPrime(int p) const {
        +    for (int n = p + 1; n < is_prime_size_; n++) {
        +      if (is_prime_[n]) return n;
        +    }
        +
        +    return -1;
        +  }
        +
        + private:
        +  void CalculatePrimesUpTo(int max) {
        +    ::std::fill(is_prime_, is_prime_ + is_prime_size_, true);
        +    is_prime_[0] = is_prime_[1] = false;
        +
        +    for (int i = 2; i <= max; i++) {
        +      if (!is_prime_[i]) continue;
        +
        +      // Marks all multiples of i (except i itself) as non-prime.
        +      for (int j = 2*i; j <= max; j += i) {
        +        is_prime_[j] = false;
        +      }
        +    }
        +  }
        +
        +  const int is_prime_size_;
        +  bool* const is_prime_;
        +
        +  // Disables compiler warning "assignment operator could not be generated."
        +  void operator=(const PreCalculatedPrimeTable& rhs);
        +};
        +
        +#endif  // GTEST_SAMPLES_PRIME_TABLES_H_
        diff --git a/lib/ann/fann/lib/googletest/samples/sample1.cc b/lib/ann/fann/lib/googletest/samples/sample1.cc
        new file mode 100644
        index 0000000..f171e26
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/samples/sample1.cc
        @@ -0,0 +1,68 @@
        +// Copyright 2005, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +// A sample program demonstrating using Google C++ testing framework.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +#include "sample1.h"
        +
        +// Returns n! (the factorial of n).  For negative n, n! is defined to be 1.
        +int Factorial(int n) {
        +  int result = 1;
        +  for (int i = 1; i <= n; i++) {
        +    result *= i;
        +  }
        +
        +  return result;
        +}
        +
        +// Returns true iff n is a prime number.
        +bool IsPrime(int n) {
        +  // Trivial case 1: small numbers
        +  if (n <= 1) return false;
        +
        +  // Trivial case 2: even numbers
        +  if (n % 2 == 0) return n == 2;
        +
        +  // Now, we have that n is odd and n >= 3.
        +
        +  // Try to divide n by every odd number i, starting from 3
        +  for (int i = 3; ; i += 2) {
        +    // We only have to try i up to the squre root of n
        +    if (i > n/i) break;
        +
        +    // Now, we have i <= n/i < n.
        +    // If n is divisible by i, n is not prime.
        +    if (n % i == 0) return false;
        +  }
        +
        +  // n has no integer factor in the range (1, n), and thus is prime.
        +  return true;
        +}
        diff --git a/lib/ann/fann/lib/googletest/samples/sample1.h b/lib/ann/fann/lib/googletest/samples/sample1.h
        new file mode 100644
        index 0000000..3dfeb98
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/samples/sample1.h
        @@ -0,0 +1,43 @@
        +// Copyright 2005, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +// A sample program demonstrating using Google C++ testing framework.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +#ifndef GTEST_SAMPLES_SAMPLE1_H_
        +#define GTEST_SAMPLES_SAMPLE1_H_
        +
        +// Returns n! (the factorial of n).  For negative n, n! is defined to be 1.
        +int Factorial(int n);
        +
        +// Returns true iff n is a prime number.
        +bool IsPrime(int n);
        +
        +#endif  // GTEST_SAMPLES_SAMPLE1_H_
        diff --git a/lib/ann/fann/lib/googletest/samples/sample10_unittest.cc b/lib/ann/fann/lib/googletest/samples/sample10_unittest.cc
        new file mode 100644
        index 0000000..0051cd5
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/samples/sample10_unittest.cc
        @@ -0,0 +1,144 @@
        +// Copyright 2009 Google Inc. All Rights Reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: vladl@google.com (Vlad Losev)
        +
        +// This sample shows how to use Google Test listener API to implement
        +// a primitive leak checker.
        +
        +#include <stdio.h>
        +#include <stdlib.h>
        +
        +#include "gtest/gtest.h"
        +
        +using ::testing::EmptyTestEventListener;
        +using ::testing::InitGoogleTest;
        +using ::testing::Test;
        +using ::testing::TestCase;
        +using ::testing::TestEventListeners;
        +using ::testing::TestInfo;
        +using ::testing::TestPartResult;
        +using ::testing::UnitTest;
        +
        +namespace {
        +
        +// We will track memory used by this class.
        +class Water {
        + public:
        +  // Normal Water declarations go here.
        +
        +  // operator new and operator delete help us control water allocation.
        +  void* operator new(size_t allocation_size) {
        +    allocated_++;
        +    return malloc(allocation_size);
        +  }
        +
        +  void operator delete(void* block, size_t /* allocation_size */) {
        +    allocated_--;
        +    free(block);
        +  }
        +
        +  static int allocated() { return allocated_; }
        +
        + private:
        +  static int allocated_;
        +};
        +
        +int Water::allocated_ = 0;
        +
        +// This event listener monitors how many Water objects are created and
        +// destroyed by each test, and reports a failure if a test leaks some Water
        +// objects. It does this by comparing the number of live Water objects at
        +// the beginning of a test and at the end of a test.
        +class LeakChecker : public EmptyTestEventListener {
        + private:
        +  // Called before a test starts.
        +  virtual void OnTestStart(const TestInfo& /* test_info */) {
        +    initially_allocated_ = Water::allocated();
        +  }
        +
        +  // Called after a test ends.
        +  virtual void OnTestEnd(const TestInfo& /* test_info */) {
        +    int difference = Water::allocated() - initially_allocated_;
        +
        +    // You can generate a failure in any event handler except
        +    // OnTestPartResult. Just use an appropriate Google Test assertion to do
        +    // it.
        +    EXPECT_LE(difference, 0) << "Leaked " << difference << " unit(s) of Water!";
        +  }
        +
        +  int initially_allocated_;
        +};
        +
        +TEST(ListenersTest, DoesNotLeak) {
        +  Water* water = new Water;
        +  delete water;
        +}
        +
        +// This should fail when the --check_for_leaks command line flag is
        +// specified.
        +TEST(ListenersTest, LeaksWater) {
        +  Water* water = new Water;
        +  EXPECT_TRUE(water != NULL);
        +}
        +
        +}  // namespace
        +
        +int main(int argc, char **argv) {
        +  InitGoogleTest(&argc, argv);
        +
        +  bool check_for_leaks = false;
        +  if (argc > 1 && strcmp(argv[1], "--check_for_leaks") == 0 )
        +    check_for_leaks = true;
        +  else
        +    printf("%s\n", "Run this program with --check_for_leaks to enable "
        +           "custom leak checking in the tests.");
        +
        +  // If we are given the --check_for_leaks command line flag, installs the
        +  // leak checker.
        +  if (check_for_leaks) {
        +    TestEventListeners& listeners = UnitTest::GetInstance()->listeners();
        +
        +    // Adds the leak checker to the end of the test event listener list,
        +    // after the default text output printer and the default XML report
        +    // generator.
        +    //
        +    // The order is important - it ensures that failures generated in the
        +    // leak checker's OnTestEnd() method are processed by the text and XML
        +    // printers *before* their OnTestEnd() methods are called, such that
        +    // they are attributed to the right test. Remember that a listener
        +    // receives an OnXyzStart event *after* listeners preceding it in the
        +    // list received that event, and receives an OnXyzEnd event *before*
        +    // listeners preceding it.
        +    //
        +    // We don't need to worry about deleting the new listener later, as
        +    // Google Test will do it.
        +    listeners.Append(new LeakChecker);
        +  }
        +  return RUN_ALL_TESTS();
        +}
        diff --git a/lib/ann/fann/lib/googletest/samples/sample1_unittest.cc b/lib/ann/fann/lib/googletest/samples/sample1_unittest.cc
        new file mode 100644
        index 0000000..aefc4f1
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/samples/sample1_unittest.cc
        @@ -0,0 +1,153 @@
        +// Copyright 2005, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +// A sample program demonstrating using Google C++ testing framework.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +
        +// This sample shows how to write a simple unit test for a function,
        +// using Google C++ testing framework.
        +//
        +// Writing a unit test using Google C++ testing framework is easy as 1-2-3:
        +
        +
        +// Step 1. Include necessary header files such that the stuff your
        +// test logic needs is declared.
        +//
        +// Don't forget gtest.h, which declares the testing framework.
        +
        +#include <limits.h>
        +#include "sample1.h"
        +#include "gtest/gtest.h"
        +
        +
        +// Step 2. Use the TEST macro to define your tests.
        +//
        +// TEST has two parameters: the test case name and the test name.
        +// After using the macro, you should define your test logic between a
        +// pair of braces.  You can use a bunch of macros to indicate the
        +// success or failure of a test.  EXPECT_TRUE and EXPECT_EQ are
        +// examples of such macros.  For a complete list, see gtest.h.
        +//
        +// <TechnicalDetails>
        +//
        +// In Google Test, tests are grouped into test cases.  This is how we
        +// keep test code organized.  You should put logically related tests
        +// into the same test case.
        +//
        +// The test case name and the test name should both be valid C++
        +// identifiers.  And you should not use underscore (_) in the names.
        +//
        +// Google Test guarantees that each test you define is run exactly
        +// once, but it makes no guarantee on the order the tests are
        +// executed.  Therefore, you should write your tests in such a way
        +// that their results don't depend on their order.
        +//
        +// </TechnicalDetails>
        +
        +
        +// Tests Factorial().
        +
        +// Tests factorial of negative numbers.
        +TEST(FactorialTest, Negative) {
        +  // This test is named "Negative", and belongs to the "FactorialTest"
        +  // test case.
        +  EXPECT_EQ(1, Factorial(-5));
        +  EXPECT_EQ(1, Factorial(-1));
        +  EXPECT_GT(Factorial(-10), 0);
        +
        +  // <TechnicalDetails>
        +  //
        +  // EXPECT_EQ(expected, actual) is the same as
        +  //
        +  //   EXPECT_TRUE((expected) == (actual))
        +  //
        +  // except that it will print both the expected value and the actual
        +  // value when the assertion fails.  This is very helpful for
        +  // debugging.  Therefore in this case EXPECT_EQ is preferred.
        +  //
        +  // On the other hand, EXPECT_TRUE accepts any Boolean expression,
        +  // and is thus more general.
        +  //
        +  // </TechnicalDetails>
        +}
        +
        +// Tests factorial of 0.
        +TEST(FactorialTest, Zero) {
        +  EXPECT_EQ(1, Factorial(0));
        +}
        +
        +// Tests factorial of positive numbers.
        +TEST(FactorialTest, Positive) {
        +  EXPECT_EQ(1, Factorial(1));
        +  EXPECT_EQ(2, Factorial(2));
        +  EXPECT_EQ(6, Factorial(3));
        +  EXPECT_EQ(40320, Factorial(8));
        +}
        +
        +
        +// Tests IsPrime()
        +
        +// Tests negative input.
        +TEST(IsPrimeTest, Negative) {
        +  // This test belongs to the IsPrimeTest test case.
        +
        +  EXPECT_FALSE(IsPrime(-1));
        +  EXPECT_FALSE(IsPrime(-2));
        +  EXPECT_FALSE(IsPrime(INT_MIN));
        +}
        +
        +// Tests some trivial cases.
        +TEST(IsPrimeTest, Trivial) {
        +  EXPECT_FALSE(IsPrime(0));
        +  EXPECT_FALSE(IsPrime(1));
        +  EXPECT_TRUE(IsPrime(2));
        +  EXPECT_TRUE(IsPrime(3));
        +}
        +
        +// Tests positive input.
        +TEST(IsPrimeTest, Positive) {
        +  EXPECT_FALSE(IsPrime(4));
        +  EXPECT_TRUE(IsPrime(5));
        +  EXPECT_FALSE(IsPrime(6));
        +  EXPECT_TRUE(IsPrime(23));
        +}
        +
        +// Step 3. Call RUN_ALL_TESTS() in main().
        +//
        +// We do this by linking in src/gtest_main.cc file, which consists of
        +// a main() function which calls RUN_ALL_TESTS() for us.
        +//
        +// This runs all the tests you've defined, prints the result, and
        +// returns 0 if successful, or 1 otherwise.
        +//
        +// Did you notice that we didn't register the tests?  The
        +// RUN_ALL_TESTS() macro magically knows about all the tests we
        +// defined.  Isn't this convenient?
        diff --git a/lib/ann/fann/lib/googletest/samples/sample2.cc b/lib/ann/fann/lib/googletest/samples/sample2.cc
        new file mode 100644
        index 0000000..5f763b9
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/samples/sample2.cc
        @@ -0,0 +1,56 @@
        +// Copyright 2005, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +// A sample program demonstrating using Google C++ testing framework.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +#include "sample2.h"
        +
        +#include <string.h>
        +
        +// Clones a 0-terminated C string, allocating memory using new.
        +const char* MyString::CloneCString(const char* a_c_string) {
        +  if (a_c_string == NULL) return NULL;
        +
        +  const size_t len = strlen(a_c_string);
        +  char* const clone = new char[ len + 1 ];
        +  memcpy(clone, a_c_string, len + 1);
        +
        +  return clone;
        +}
        +
        +// Sets the 0-terminated C string this MyString object
        +// represents.
        +void MyString::Set(const char* a_c_string) {
        +  // Makes sure this works when c_string == c_string_
        +  const char* const temp = MyString::CloneCString(a_c_string);
        +  delete[] c_string_;
        +  c_string_ = temp;
        +}
        diff --git a/lib/ann/fann/lib/googletest/samples/sample2.h b/lib/ann/fann/lib/googletest/samples/sample2.h
        new file mode 100644
        index 0000000..cb485c7
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/samples/sample2.h
        @@ -0,0 +1,85 @@
        +// Copyright 2005, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +// A sample program demonstrating using Google C++ testing framework.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +#ifndef GTEST_SAMPLES_SAMPLE2_H_
        +#define GTEST_SAMPLES_SAMPLE2_H_
        +
        +#include <string.h>
        +
        +
        +// A simple string class.
        +class MyString {
        + private:
        +  const char* c_string_;
        +  const MyString& operator=(const MyString& rhs);
        +
        + public:
        +  // Clones a 0-terminated C string, allocating memory using new.
        +  static const char* CloneCString(const char* a_c_string);
        +
        +  ////////////////////////////////////////////////////////////
        +  //
        +  // C'tors
        +
        +  // The default c'tor constructs a NULL string.
        +  MyString() : c_string_(NULL) {}
        +
        +  // Constructs a MyString by cloning a 0-terminated C string.
        +  explicit MyString(const char* a_c_string) : c_string_(NULL) {
        +    Set(a_c_string);
        +  }
        +
        +  // Copy c'tor
        +  MyString(const MyString& string) : c_string_(NULL) {
        +    Set(string.c_string_);
        +  }
        +
        +  ////////////////////////////////////////////////////////////
        +  //
        +  // D'tor.  MyString is intended to be a final class, so the d'tor
        +  // doesn't need to be virtual.
        +  ~MyString() { delete[] c_string_; }
        +
        +  // Gets the 0-terminated C string this MyString object represents.
        +  const char* c_string() const { return c_string_; }
        +
        +  size_t Length() const {
        +    return c_string_ == NULL ? 0 : strlen(c_string_);
        +  }
        +
        +  // Sets the 0-terminated C string this MyString object represents.
        +  void Set(const char* c_string);
        +};
        +
        +
        +#endif  // GTEST_SAMPLES_SAMPLE2_H_
        diff --git a/lib/ann/fann/lib/googletest/samples/sample2_unittest.cc b/lib/ann/fann/lib/googletest/samples/sample2_unittest.cc
        new file mode 100644
        index 0000000..4fa19b7
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/samples/sample2_unittest.cc
        @@ -0,0 +1,109 @@
        +// Copyright 2005, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +// A sample program demonstrating using Google C++ testing framework.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +
        +// This sample shows how to write a more complex unit test for a class
        +// that has multiple member functions.
        +//
        +// Usually, it's a good idea to have one test for each method in your
        +// class.  You don't have to do that exactly, but it helps to keep
        +// your tests organized.  You may also throw in additional tests as
        +// needed.
        +
        +#include "sample2.h"
        +#include "gtest/gtest.h"
        +
        +// In this example, we test the MyString class (a simple string).
        +
        +// Tests the default c'tor.
        +TEST(MyString, DefaultConstructor) {
        +  const MyString s;
        +
        +  // Asserts that s.c_string() returns NULL.
        +  //
        +  // <TechnicalDetails>
        +  //
        +  // If we write NULL instead of
        +  //
        +  //   static_cast<const char *>(NULL)
        +  //
        +  // in this assertion, it will generate a warning on gcc 3.4.  The
        +  // reason is that EXPECT_EQ needs to know the types of its
        +  // arguments in order to print them when it fails.  Since NULL is
        +  // #defined as 0, the compiler will use the formatter function for
        +  // int to print it.  However, gcc thinks that NULL should be used as
        +  // a pointer, not an int, and therefore complains.
        +  //
        +  // The root of the problem is C++'s lack of distinction between the
        +  // integer number 0 and the null pointer constant.  Unfortunately,
        +  // we have to live with this fact.
        +  //
        +  // </TechnicalDetails>
        +  EXPECT_STREQ(NULL, s.c_string());
        +
        +  EXPECT_EQ(0u, s.Length());
        +}
        +
        +const char kHelloString[] = "Hello, world!";
        +
        +// Tests the c'tor that accepts a C string.
        +TEST(MyString, ConstructorFromCString) {
        +  const MyString s(kHelloString);
        +  EXPECT_EQ(0, strcmp(s.c_string(), kHelloString));
        +  EXPECT_EQ(sizeof(kHelloString)/sizeof(kHelloString[0]) - 1,
        +            s.Length());
        +}
        +
        +// Tests the copy c'tor.
        +TEST(MyString, CopyConstructor) {
        +  const MyString s1(kHelloString);
        +  const MyString s2 = s1;
        +  EXPECT_EQ(0, strcmp(s2.c_string(), kHelloString));
        +}
        +
        +// Tests the Set method.
        +TEST(MyString, Set) {
        +  MyString s;
        +
        +  s.Set(kHelloString);
        +  EXPECT_EQ(0, strcmp(s.c_string(), kHelloString));
        +
        +  // Set should work when the input pointer is the same as the one
        +  // already in the MyString object.
        +  s.Set(s.c_string());
        +  EXPECT_EQ(0, strcmp(s.c_string(), kHelloString));
        +
        +  // Can we set the MyString to NULL?
        +  s.Set(NULL);
        +  EXPECT_STREQ(NULL, s.c_string());
        +}
        diff --git a/lib/ann/fann/lib/googletest/samples/sample3-inl.h b/lib/ann/fann/lib/googletest/samples/sample3-inl.h
        new file mode 100644
        index 0000000..7e3084d
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/samples/sample3-inl.h
        @@ -0,0 +1,172 @@
        +// Copyright 2005, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +// A sample program demonstrating using Google C++ testing framework.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +#ifndef GTEST_SAMPLES_SAMPLE3_INL_H_
        +#define GTEST_SAMPLES_SAMPLE3_INL_H_
        +
        +#include <stddef.h>
        +
        +
        +// Queue is a simple queue implemented as a singled-linked list.
        +//
        +// The element type must support copy constructor.
        +template <typename E>  // E is the element type
        +class Queue;
        +
        +// QueueNode is a node in a Queue, which consists of an element of
        +// type E and a pointer to the next node.
        +template <typename E>  // E is the element type
        +class QueueNode {
        +  friend class Queue<E>;
        +
        + public:
        +  // Gets the element in this node.
        +  const E& element() const { return element_; }
        +
        +  // Gets the next node in the queue.
        +  QueueNode* next() { return next_; }
        +  const QueueNode* next() const { return next_; }
        +
        + private:
        +  // Creates a node with a given element value.  The next pointer is
        +  // set to NULL.
        +  explicit QueueNode(const E& an_element) : element_(an_element), next_(NULL) {}
        +
        +  // We disable the default assignment operator and copy c'tor.
        +  const QueueNode& operator = (const QueueNode&);
        +  QueueNode(const QueueNode&);
        +
        +  E element_;
        +  QueueNode* next_;
        +};
        +
        +template <typename E>  // E is the element type.
        +class Queue {
        + public:
        +  // Creates an empty queue.
        +  Queue() : head_(NULL), last_(NULL), size_(0) {}
        +
        +  // D'tor.  Clears the queue.
        +  ~Queue() { Clear(); }
        +
        +  // Clears the queue.
        +  void Clear() {
        +    if (size_ > 0) {
        +      // 1. Deletes every node.
        +      QueueNode<E>* node = head_;
        +      QueueNode<E>* next = node->next();
        +      for (; ;) {
        +        delete node;
        +        node = next;
        +        if (node == NULL) break;
        +        next = node->next();
        +      }
        +
        +      // 2. Resets the member variables.
        +      head_ = last_ = NULL;
        +      size_ = 0;
        +    }
        +  }
        +
        +  // Gets the number of elements.
        +  size_t Size() const { return size_; }
        +
        +  // Gets the first element of the queue, or NULL if the queue is empty.
        +  QueueNode<E>* Head() { return head_; }
        +  const QueueNode<E>* Head() const { return head_; }
        +
        +  // Gets the last element of the queue, or NULL if the queue is empty.
        +  QueueNode<E>* Last() { return last_; }
        +  const QueueNode<E>* Last() const { return last_; }
        +
        +  // Adds an element to the end of the queue.  A copy of the element is
        +  // created using the copy constructor, and then stored in the queue.
        +  // Changes made to the element in the queue doesn't affect the source
        +  // object, and vice versa.
        +  void Enqueue(const E& element) {
        +    QueueNode<E>* new_node = new QueueNode<E>(element);
        +
        +    if (size_ == 0) {
        +      head_ = last_ = new_node;
        +      size_ = 1;
        +    } else {
        +      last_->next_ = new_node;
        +      last_ = new_node;
        +      size_++;
        +    }
        +  }
        +
        +  // Removes the head of the queue and returns it.  Returns NULL if
        +  // the queue is empty.
        +  E* Dequeue() {
        +    if (size_ == 0) {
        +      return NULL;
        +    }
        +
        +    const QueueNode<E>* const old_head = head_;
        +    head_ = head_->next_;
        +    size_--;
        +    if (size_ == 0) {
        +      last_ = NULL;
        +    }
        +
        +    E* element = new E(old_head->element());
        +    delete old_head;
        +
        +    return element;
        +  }
        +
        +  // Applies a function/functor on each element of the queue, and
        +  // returns the result in a new queue.  The original queue is not
        +  // affected.
        +  template <typename F>
        +  Queue* Map(F function) const {
        +    Queue* new_queue = new Queue();
        +    for (const QueueNode<E>* node = head_; node != NULL; node = node->next_) {
        +      new_queue->Enqueue(function(node->element()));
        +    }
        +
        +    return new_queue;
        +  }
        +
        + private:
        +  QueueNode<E>* head_;  // The first node of the queue.
        +  QueueNode<E>* last_;  // The last node of the queue.
        +  size_t size_;  // The number of elements in the queue.
        +
        +  // We disallow copying a queue.
        +  Queue(const Queue&);
        +  const Queue& operator = (const Queue&);
        +};
        +
        +#endif  // GTEST_SAMPLES_SAMPLE3_INL_H_
        diff --git a/lib/ann/fann/lib/googletest/samples/sample3_unittest.cc b/lib/ann/fann/lib/googletest/samples/sample3_unittest.cc
        new file mode 100644
        index 0000000..bf3877d
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/samples/sample3_unittest.cc
        @@ -0,0 +1,151 @@
        +// Copyright 2005, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +// A sample program demonstrating using Google C++ testing framework.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +
        +// In this example, we use a more advanced feature of Google Test called
        +// test fixture.
        +//
        +// A test fixture is a place to hold objects and functions shared by
        +// all tests in a test case.  Using a test fixture avoids duplicating
        +// the test code necessary to initialize and cleanup those common
        +// objects for each test.  It is also useful for defining sub-routines
        +// that your tests need to invoke a lot.
        +//
        +// <TechnicalDetails>
        +//
        +// The tests share the test fixture in the sense of code sharing, not
        +// data sharing.  Each test is given its own fresh copy of the
        +// fixture.  You cannot expect the data modified by one test to be
        +// passed on to another test, which is a bad idea.
        +//
        +// The reason for this design is that tests should be independent and
        +// repeatable.  In particular, a test should not fail as the result of
        +// another test's failure.  If one test depends on info produced by
        +// another test, then the two tests should really be one big test.
        +//
        +// The macros for indicating the success/failure of a test
        +// (EXPECT_TRUE, FAIL, etc) need to know what the current test is
        +// (when Google Test prints the test result, it tells you which test
        +// each failure belongs to).  Technically, these macros invoke a
        +// member function of the Test class.  Therefore, you cannot use them
        +// in a global function.  That's why you should put test sub-routines
        +// in a test fixture.
        +//
        +// </TechnicalDetails>
        +
        +#include "sample3-inl.h"
        +#include "gtest/gtest.h"
        +
        +// To use a test fixture, derive a class from testing::Test.
        +class QueueTest : public testing::Test {
        + protected:  // You should make the members protected s.t. they can be
        +             // accessed from sub-classes.
        +
        +  // virtual void SetUp() will be called before each test is run.  You
        +  // should define it if you need to initialize the varaibles.
        +  // Otherwise, this can be skipped.
        +  virtual void SetUp() {
        +    q1_.Enqueue(1);
        +    q2_.Enqueue(2);
        +    q2_.Enqueue(3);
        +  }
        +
        +  // virtual void TearDown() will be called after each test is run.
        +  // You should define it if there is cleanup work to do.  Otherwise,
        +  // you don't have to provide it.
        +  //
        +  // virtual void TearDown() {
        +  // }
        +
        +  // A helper function that some test uses.
        +  static int Double(int n) {
        +    return 2*n;
        +  }
        +
        +  // A helper function for testing Queue::Map().
        +  void MapTester(const Queue<int> * q) {
        +    // Creates a new queue, where each element is twice as big as the
        +    // corresponding one in q.
        +    const Queue<int> * const new_q = q->Map(Double);
        +
        +    // Verifies that the new queue has the same size as q.
        +    ASSERT_EQ(q->Size(), new_q->Size());
        +
        +    // Verifies the relationship between the elements of the two queues.
        +    for ( const QueueNode<int> * n1 = q->Head(), * n2 = new_q->Head();
        +          n1 != NULL; n1 = n1->next(), n2 = n2->next() ) {
        +      EXPECT_EQ(2 * n1->element(), n2->element());
        +    }
        +
        +    delete new_q;
        +  }
        +
        +  // Declares the variables your tests want to use.
        +  Queue<int> q0_;
        +  Queue<int> q1_;
        +  Queue<int> q2_;
        +};
        +
        +// When you have a test fixture, you define a test using TEST_F
        +// instead of TEST.
        +
        +// Tests the default c'tor.
        +TEST_F(QueueTest, DefaultConstructor) {
        +  // You can access data in the test fixture here.
        +  EXPECT_EQ(0u, q0_.Size());
        +}
        +
        +// Tests Dequeue().
        +TEST_F(QueueTest, Dequeue) {
        +  int * n = q0_.Dequeue();
        +  EXPECT_TRUE(n == NULL);
        +
        +  n = q1_.Dequeue();
        +  ASSERT_TRUE(n != NULL);
        +  EXPECT_EQ(1, *n);
        +  EXPECT_EQ(0u, q1_.Size());
        +  delete n;
        +
        +  n = q2_.Dequeue();
        +  ASSERT_TRUE(n != NULL);
        +  EXPECT_EQ(2, *n);
        +  EXPECT_EQ(1u, q2_.Size());
        +  delete n;
        +}
        +
        +// Tests the Queue::Map() function.
        +TEST_F(QueueTest, Map) {
        +  MapTester(&q0_);
        +  MapTester(&q1_);
        +  MapTester(&q2_);
        +}
        diff --git a/lib/ann/fann/lib/googletest/samples/sample4.cc b/lib/ann/fann/lib/googletest/samples/sample4.cc
        new file mode 100644
        index 0000000..ae44bda
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/samples/sample4.cc
        @@ -0,0 +1,46 @@
        +// Copyright 2005, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +// A sample program demonstrating using Google C++ testing framework.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +#include <stdio.h>
        +
        +#include "sample4.h"
        +
        +// Returns the current counter value, and increments it.
        +int Counter::Increment() {
        +  return counter_++;
        +}
        +
        +// Prints the current counter value to STDOUT.
        +void Counter::Print() const {
        +  printf("%d", counter_);
        +}
        diff --git a/lib/ann/fann/lib/googletest/samples/sample4.h b/lib/ann/fann/lib/googletest/samples/sample4.h
        new file mode 100644
        index 0000000..cd60f0d
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/samples/sample4.h
        @@ -0,0 +1,53 @@
        +// Copyright 2005, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +// A sample program demonstrating using Google C++ testing framework.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +#ifndef GTEST_SAMPLES_SAMPLE4_H_
        +#define GTEST_SAMPLES_SAMPLE4_H_
        +
        +// A simple monotonic counter.
        +class Counter {
        + private:
        +  int counter_;
        +
        + public:
        +  // Creates a counter that starts at 0.
        +  Counter() : counter_(0) {}
        +
        +  // Returns the current counter value, and increments it.
        +  int Increment();
        +
        +  // Prints the current counter value to STDOUT.
        +  void Print() const;
        +};
        +
        +#endif  // GTEST_SAMPLES_SAMPLE4_H_
        diff --git a/lib/ann/fann/lib/googletest/samples/sample4_unittest.cc b/lib/ann/fann/lib/googletest/samples/sample4_unittest.cc
        new file mode 100644
        index 0000000..fa5afc7
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/samples/sample4_unittest.cc
        @@ -0,0 +1,45 @@
        +// Copyright 2005, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +#include "gtest/gtest.h"
        +#include "sample4.h"
        +
        +// Tests the Increment() method.
        +TEST(Counter, Increment) {
        +  Counter c;
        +
        +  // EXPECT_EQ() evaluates its arguments exactly once, so they
        +  // can have side effects.
        +
        +  EXPECT_EQ(0, c.Increment());
        +  EXPECT_EQ(1, c.Increment());
        +  EXPECT_EQ(2, c.Increment());
        +}
        diff --git a/lib/ann/fann/lib/googletest/samples/sample5_unittest.cc b/lib/ann/fann/lib/googletest/samples/sample5_unittest.cc
        new file mode 100644
        index 0000000..43d8e57
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/samples/sample5_unittest.cc
        @@ -0,0 +1,199 @@
        +// Copyright 2005, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +// This sample teaches how to reuse a test fixture in multiple test
        +// cases by deriving sub-fixtures from it.
        +//
        +// When you define a test fixture, you specify the name of the test
        +// case that will use this fixture.  Therefore, a test fixture can
        +// be used by only one test case.
        +//
        +// Sometimes, more than one test cases may want to use the same or
        +// slightly different test fixtures.  For example, you may want to
        +// make sure that all tests for a GUI library don't leak important
        +// system resources like fonts and brushes.  In Google Test, you do
        +// this by putting the shared logic in a super (as in "super class")
        +// test fixture, and then have each test case use a fixture derived
        +// from this super fixture.
        +
        +#include <limits.h>
        +#include <time.h>
        +#include "sample3-inl.h"
        +#include "gtest/gtest.h"
        +#include "sample1.h"
        +
        +// In this sample, we want to ensure that every test finishes within
        +// ~5 seconds.  If a test takes longer to run, we consider it a
        +// failure.
        +//
        +// We put the code for timing a test in a test fixture called
        +// "QuickTest".  QuickTest is intended to be the super fixture that
        +// other fixtures derive from, therefore there is no test case with
        +// the name "QuickTest".  This is OK.
        +//
        +// Later, we will derive multiple test fixtures from QuickTest.
        +class QuickTest : public testing::Test {
        + protected:
        +  // Remember that SetUp() is run immediately before a test starts.
        +  // This is a good place to record the start time.
        +  virtual void SetUp() {
        +    start_time_ = time(NULL);
        +  }
        +
        +  // TearDown() is invoked immediately after a test finishes.  Here we
        +  // check if the test was too slow.
        +  virtual void TearDown() {
        +    // Gets the time when the test finishes
        +    const time_t end_time = time(NULL);
        +
        +    // Asserts that the test took no more than ~5 seconds.  Did you
        +    // know that you can use assertions in SetUp() and TearDown() as
        +    // well?
        +    EXPECT_TRUE(end_time - start_time_ <= 5) << "The test took too long.";
        +  }
        +
        +  // The UTC time (in seconds) when the test starts
        +  time_t start_time_;
        +};
        +
        +
        +// We derive a fixture named IntegerFunctionTest from the QuickTest
        +// fixture.  All tests using this fixture will be automatically
        +// required to be quick.
        +class IntegerFunctionTest : public QuickTest {
        +  // We don't need any more logic than already in the QuickTest fixture.
        +  // Therefore the body is empty.
        +};
        +
        +
        +// Now we can write tests in the IntegerFunctionTest test case.
        +
        +// Tests Factorial()
        +TEST_F(IntegerFunctionTest, Factorial) {
        +  // Tests factorial of negative numbers.
        +  EXPECT_EQ(1, Factorial(-5));
        +  EXPECT_EQ(1, Factorial(-1));
        +  EXPECT_GT(Factorial(-10), 0);
        +
        +  // Tests factorial of 0.
        +  EXPECT_EQ(1, Factorial(0));
        +
        +  // Tests factorial of positive numbers.
        +  EXPECT_EQ(1, Factorial(1));
        +  EXPECT_EQ(2, Factorial(2));
        +  EXPECT_EQ(6, Factorial(3));
        +  EXPECT_EQ(40320, Factorial(8));
        +}
        +
        +
        +// Tests IsPrime()
        +TEST_F(IntegerFunctionTest, IsPrime) {
        +  // Tests negative input.
        +  EXPECT_FALSE(IsPrime(-1));
        +  EXPECT_FALSE(IsPrime(-2));
        +  EXPECT_FALSE(IsPrime(INT_MIN));
        +
        +  // Tests some trivial cases.
        +  EXPECT_FALSE(IsPrime(0));
        +  EXPECT_FALSE(IsPrime(1));
        +  EXPECT_TRUE(IsPrime(2));
        +  EXPECT_TRUE(IsPrime(3));
        +
        +  // Tests positive input.
        +  EXPECT_FALSE(IsPrime(4));
        +  EXPECT_TRUE(IsPrime(5));
        +  EXPECT_FALSE(IsPrime(6));
        +  EXPECT_TRUE(IsPrime(23));
        +}
        +
        +
        +// The next test case (named "QueueTest") also needs to be quick, so
        +// we derive another fixture from QuickTest.
        +//
        +// The QueueTest test fixture has some logic and shared objects in
        +// addition to what's in QuickTest already.  We define the additional
        +// stuff inside the body of the test fixture, as usual.
        +class QueueTest : public QuickTest {
        + protected:
        +  virtual void SetUp() {
        +    // First, we need to set up the super fixture (QuickTest).
        +    QuickTest::SetUp();
        +
        +    // Second, some additional setup for this fixture.
        +    q1_.Enqueue(1);
        +    q2_.Enqueue(2);
        +    q2_.Enqueue(3);
        +  }
        +
        +  // By default, TearDown() inherits the behavior of
        +  // QuickTest::TearDown().  As we have no additional cleaning work
        +  // for QueueTest, we omit it here.
        +  //
        +  // virtual void TearDown() {
        +  //   QuickTest::TearDown();
        +  // }
        +
        +  Queue<int> q0_;
        +  Queue<int> q1_;
        +  Queue<int> q2_;
        +};
        +
        +
        +// Now, let's write tests using the QueueTest fixture.
        +
        +// Tests the default constructor.
        +TEST_F(QueueTest, DefaultConstructor) {
        +  EXPECT_EQ(0u, q0_.Size());
        +}
        +
        +// Tests Dequeue().
        +TEST_F(QueueTest, Dequeue) {
        +  int* n = q0_.Dequeue();
        +  EXPECT_TRUE(n == NULL);
        +
        +  n = q1_.Dequeue();
        +  EXPECT_TRUE(n != NULL);
        +  EXPECT_EQ(1, *n);
        +  EXPECT_EQ(0u, q1_.Size());
        +  delete n;
        +
        +  n = q2_.Dequeue();
        +  EXPECT_TRUE(n != NULL);
        +  EXPECT_EQ(2, *n);
        +  EXPECT_EQ(1u, q2_.Size());
        +  delete n;
        +}
        +
        +// If necessary, you can derive further test fixtures from a derived
        +// fixture itself.  For example, you can derive another fixture from
        +// QueueTest.  Google Test imposes no limit on how deep the hierarchy
        +// can be.  In practice, however, you probably don't want it to be too
        +// deep as to be confusing.
        diff --git a/lib/ann/fann/lib/googletest/samples/sample6_unittest.cc b/lib/ann/fann/lib/googletest/samples/sample6_unittest.cc
        new file mode 100644
        index 0000000..8f2036a
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/samples/sample6_unittest.cc
        @@ -0,0 +1,224 @@
        +// Copyright 2008 Google Inc.
        +// All Rights Reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +// This sample shows how to test common properties of multiple
        +// implementations of the same interface (aka interface tests).
        +
        +// The interface and its implementations are in this header.
        +#include "prime_tables.h"
        +
        +#include "gtest/gtest.h"
        +
        +// First, we define some factory functions for creating instances of
        +// the implementations.  You may be able to skip this step if all your
        +// implementations can be constructed the same way.
        +
        +template <class T>
        +PrimeTable* CreatePrimeTable();
        +
        +template <>
        +PrimeTable* CreatePrimeTable<OnTheFlyPrimeTable>() {
        +  return new OnTheFlyPrimeTable;
        +}
        +
        +template <>
        +PrimeTable* CreatePrimeTable<PreCalculatedPrimeTable>() {
        +  return new PreCalculatedPrimeTable(10000);
        +}
        +
        +// Then we define a test fixture class template.
        +template <class T>
        +class PrimeTableTest : public testing::Test {
        + protected:
        +  // The ctor calls the factory function to create a prime table
        +  // implemented by T.
        +  PrimeTableTest() : table_(CreatePrimeTable<T>()) {}
        +
        +  virtual ~PrimeTableTest() { delete table_; }
        +
        +  // Note that we test an implementation via the base interface
        +  // instead of the actual implementation class.  This is important
        +  // for keeping the tests close to the real world scenario, where the
        +  // implementation is invoked via the base interface.  It avoids
        +  // got-yas where the implementation class has a method that shadows
        +  // a method with the same name (but slightly different argument
        +  // types) in the base interface, for example.
        +  PrimeTable* const table_;
        +};
        +
        +#if GTEST_HAS_TYPED_TEST
        +
        +using testing::Types;
        +
        +// Google Test offers two ways for reusing tests for different types.
        +// The first is called "typed tests".  You should use it if you
        +// already know *all* the types you are gonna exercise when you write
        +// the tests.
        +
        +// To write a typed test case, first use
        +//
        +//   TYPED_TEST_CASE(TestCaseName, TypeList);
        +//
        +// to declare it and specify the type parameters.  As with TEST_F,
        +// TestCaseName must match the test fixture name.
        +
        +// The list of types we want to test.
        +typedef Types<OnTheFlyPrimeTable, PreCalculatedPrimeTable> Implementations;
        +
        +TYPED_TEST_CASE(PrimeTableTest, Implementations);
        +
        +// Then use TYPED_TEST(TestCaseName, TestName) to define a typed test,
        +// similar to TEST_F.
        +TYPED_TEST(PrimeTableTest, ReturnsFalseForNonPrimes) {
        +  // Inside the test body, you can refer to the type parameter by
        +  // TypeParam, and refer to the fixture class by TestFixture.  We
        +  // don't need them in this example.
        +
        +  // Since we are in the template world, C++ requires explicitly
        +  // writing 'this->' when referring to members of the fixture class.
        +  // This is something you have to learn to live with.
        +  EXPECT_FALSE(this->table_->IsPrime(-5));
        +  EXPECT_FALSE(this->table_->IsPrime(0));
        +  EXPECT_FALSE(this->table_->IsPrime(1));
        +  EXPECT_FALSE(this->table_->IsPrime(4));
        +  EXPECT_FALSE(this->table_->IsPrime(6));
        +  EXPECT_FALSE(this->table_->IsPrime(100));
        +}
        +
        +TYPED_TEST(PrimeTableTest, ReturnsTrueForPrimes) {
        +  EXPECT_TRUE(this->table_->IsPrime(2));
        +  EXPECT_TRUE(this->table_->IsPrime(3));
        +  EXPECT_TRUE(this->table_->IsPrime(5));
        +  EXPECT_TRUE(this->table_->IsPrime(7));
        +  EXPECT_TRUE(this->table_->IsPrime(11));
        +  EXPECT_TRUE(this->table_->IsPrime(131));
        +}
        +
        +TYPED_TEST(PrimeTableTest, CanGetNextPrime) {
        +  EXPECT_EQ(2, this->table_->GetNextPrime(0));
        +  EXPECT_EQ(3, this->table_->GetNextPrime(2));
        +  EXPECT_EQ(5, this->table_->GetNextPrime(3));
        +  EXPECT_EQ(7, this->table_->GetNextPrime(5));
        +  EXPECT_EQ(11, this->table_->GetNextPrime(7));
        +  EXPECT_EQ(131, this->table_->GetNextPrime(128));
        +}
        +
        +// That's it!  Google Test will repeat each TYPED_TEST for each type
        +// in the type list specified in TYPED_TEST_CASE.  Sit back and be
        +// happy that you don't have to define them multiple times.
        +
        +#endif  // GTEST_HAS_TYPED_TEST
        +
        +#if GTEST_HAS_TYPED_TEST_P
        +
        +using testing::Types;
        +
        +// Sometimes, however, you don't yet know all the types that you want
        +// to test when you write the tests.  For example, if you are the
        +// author of an interface and expect other people to implement it, you
        +// might want to write a set of tests to make sure each implementation
        +// conforms to some basic requirements, but you don't know what
        +// implementations will be written in the future.
        +//
        +// How can you write the tests without committing to the type
        +// parameters?  That's what "type-parameterized tests" can do for you.
        +// It is a bit more involved than typed tests, but in return you get a
        +// test pattern that can be reused in many contexts, which is a big
        +// win.  Here's how you do it:
        +
        +// First, define a test fixture class template.  Here we just reuse
        +// the PrimeTableTest fixture defined earlier:
        +
        +template <class T>
        +class PrimeTableTest2 : public PrimeTableTest<T> {
        +};
        +
        +// Then, declare the test case.  The argument is the name of the test
        +// fixture, and also the name of the test case (as usual).  The _P
        +// suffix is for "parameterized" or "pattern".
        +TYPED_TEST_CASE_P(PrimeTableTest2);
        +
        +// Next, use TYPED_TEST_P(TestCaseName, TestName) to define a test,
        +// similar to what you do with TEST_F.
        +TYPED_TEST_P(PrimeTableTest2, ReturnsFalseForNonPrimes) {
        +  EXPECT_FALSE(this->table_->IsPrime(-5));
        +  EXPECT_FALSE(this->table_->IsPrime(0));
        +  EXPECT_FALSE(this->table_->IsPrime(1));
        +  EXPECT_FALSE(this->table_->IsPrime(4));
        +  EXPECT_FALSE(this->table_->IsPrime(6));
        +  EXPECT_FALSE(this->table_->IsPrime(100));
        +}
        +
        +TYPED_TEST_P(PrimeTableTest2, ReturnsTrueForPrimes) {
        +  EXPECT_TRUE(this->table_->IsPrime(2));
        +  EXPECT_TRUE(this->table_->IsPrime(3));
        +  EXPECT_TRUE(this->table_->IsPrime(5));
        +  EXPECT_TRUE(this->table_->IsPrime(7));
        +  EXPECT_TRUE(this->table_->IsPrime(11));
        +  EXPECT_TRUE(this->table_->IsPrime(131));
        +}
        +
        +TYPED_TEST_P(PrimeTableTest2, CanGetNextPrime) {
        +  EXPECT_EQ(2, this->table_->GetNextPrime(0));
        +  EXPECT_EQ(3, this->table_->GetNextPrime(2));
        +  EXPECT_EQ(5, this->table_->GetNextPrime(3));
        +  EXPECT_EQ(7, this->table_->GetNextPrime(5));
        +  EXPECT_EQ(11, this->table_->GetNextPrime(7));
        +  EXPECT_EQ(131, this->table_->GetNextPrime(128));
        +}
        +
        +// Type-parameterized tests involve one extra step: you have to
        +// enumerate the tests you defined:
        +REGISTER_TYPED_TEST_CASE_P(
        +    PrimeTableTest2,  // The first argument is the test case name.
        +    // The rest of the arguments are the test names.
        +    ReturnsFalseForNonPrimes, ReturnsTrueForPrimes, CanGetNextPrime);
        +
        +// At this point the test pattern is done.  However, you don't have
        +// any real test yet as you haven't said which types you want to run
        +// the tests with.
        +
        +// To turn the abstract test pattern into real tests, you instantiate
        +// it with a list of types.  Usually the test pattern will be defined
        +// in a .h file, and anyone can #include and instantiate it.  You can
        +// even instantiate it more than once in the same program.  To tell
        +// different instances apart, you give each of them a name, which will
        +// become part of the test case name and can be used in test filters.
        +
        +// The list of types we want to test.  Note that it doesn't have to be
        +// defined at the time we write the TYPED_TEST_P()s.
        +typedef Types<OnTheFlyPrimeTable, PreCalculatedPrimeTable>
        +    PrimeTableImplementations;
        +INSTANTIATE_TYPED_TEST_CASE_P(OnTheFlyAndPreCalculated,    // Instance name
        +                              PrimeTableTest2,             // Test case name
        +                              PrimeTableImplementations);  // Type list
        +
        +#endif  // GTEST_HAS_TYPED_TEST_P
        diff --git a/lib/ann/fann/lib/googletest/samples/sample7_unittest.cc b/lib/ann/fann/lib/googletest/samples/sample7_unittest.cc
        new file mode 100644
        index 0000000..1b651a2
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/samples/sample7_unittest.cc
        @@ -0,0 +1,130 @@
        +// Copyright 2008 Google Inc.
        +// All Rights Reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: vladl@google.com (Vlad Losev)
        +
        +// This sample shows how to test common properties of multiple
        +// implementations of an interface (aka interface tests) using
        +// value-parameterized tests. Each test in the test case has
        +// a parameter that is an interface pointer to an implementation
        +// tested.
        +
        +// The interface and its implementations are in this header.
        +#include "prime_tables.h"
        +
        +#include "gtest/gtest.h"
        +
        +#if GTEST_HAS_PARAM_TEST
        +
        +using ::testing::TestWithParam;
        +using ::testing::Values;
        +
        +// As a general rule, to prevent a test from affecting the tests that come
        +// after it, you should create and destroy the tested objects for each test
        +// instead of reusing them.  In this sample we will define a simple factory
        +// function for PrimeTable objects.  We will instantiate objects in test's
        +// SetUp() method and delete them in TearDown() method.
        +typedef PrimeTable* CreatePrimeTableFunc();
        +
        +PrimeTable* CreateOnTheFlyPrimeTable() {
        +  return new OnTheFlyPrimeTable();
        +}
        +
        +template <size_t max_precalculated>
        +PrimeTable* CreatePreCalculatedPrimeTable() {
        +  return new PreCalculatedPrimeTable(max_precalculated);
        +}
        +
        +// Inside the test body, fixture constructor, SetUp(), and TearDown() you
        +// can refer to the test parameter by GetParam().  In this case, the test
        +// parameter is a factory function which we call in fixture's SetUp() to
        +// create and store an instance of PrimeTable.
        +class PrimeTableTest : public TestWithParam<CreatePrimeTableFunc*> {
        + public:
        +  virtual ~PrimeTableTest() { delete table_; }
        +  virtual void SetUp() { table_ = (*GetParam())(); }
        +  virtual void TearDown() {
        +    delete table_;
        +    table_ = NULL;
        +  }
        +
        + protected:
        +  PrimeTable* table_;
        +};
        +
        +TEST_P(PrimeTableTest, ReturnsFalseForNonPrimes) {
        +  EXPECT_FALSE(table_->IsPrime(-5));
        +  EXPECT_FALSE(table_->IsPrime(0));
        +  EXPECT_FALSE(table_->IsPrime(1));
        +  EXPECT_FALSE(table_->IsPrime(4));
        +  EXPECT_FALSE(table_->IsPrime(6));
        +  EXPECT_FALSE(table_->IsPrime(100));
        +}
        +
        +TEST_P(PrimeTableTest, ReturnsTrueForPrimes) {
        +  EXPECT_TRUE(table_->IsPrime(2));
        +  EXPECT_TRUE(table_->IsPrime(3));
        +  EXPECT_TRUE(table_->IsPrime(5));
        +  EXPECT_TRUE(table_->IsPrime(7));
        +  EXPECT_TRUE(table_->IsPrime(11));
        +  EXPECT_TRUE(table_->IsPrime(131));
        +}
        +
        +TEST_P(PrimeTableTest, CanGetNextPrime) {
        +  EXPECT_EQ(2, table_->GetNextPrime(0));
        +  EXPECT_EQ(3, table_->GetNextPrime(2));
        +  EXPECT_EQ(5, table_->GetNextPrime(3));
        +  EXPECT_EQ(7, table_->GetNextPrime(5));
        +  EXPECT_EQ(11, table_->GetNextPrime(7));
        +  EXPECT_EQ(131, table_->GetNextPrime(128));
        +}
        +
        +// In order to run value-parameterized tests, you need to instantiate them,
        +// or bind them to a list of values which will be used as test parameters.
        +// You can instantiate them in a different translation module, or even
        +// instantiate them several times.
        +//
        +// Here, we instantiate our tests with a list of two PrimeTable object
        +// factory functions:
        +INSTANTIATE_TEST_CASE_P(
        +    OnTheFlyAndPreCalculated,
        +    PrimeTableTest,
        +    Values(&CreateOnTheFlyPrimeTable, &CreatePreCalculatedPrimeTable<1000>));
        +
        +#else
        +
        +// Google Test may not support value-parameterized tests with some
        +// compilers. If we use conditional compilation to compile out all
        +// code referring to the gtest_main library, MSVC linker will not link
        +// that library at all and consequently complain about missing entry
        +// point defined in that library (fatal error LNK1561: entry point
        +// must be defined). This dummy test keeps gtest_main linked in.
        +TEST(DummyTest, ValueParameterizedTestsAreNotSupportedOnThisPlatform) {}
        +
        +#endif  // GTEST_HAS_PARAM_TEST
        diff --git a/lib/ann/fann/lib/googletest/samples/sample8_unittest.cc b/lib/ann/fann/lib/googletest/samples/sample8_unittest.cc
        new file mode 100644
        index 0000000..7274334
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/samples/sample8_unittest.cc
        @@ -0,0 +1,173 @@
        +// Copyright 2008 Google Inc.
        +// All Rights Reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: vladl@google.com (Vlad Losev)
        +
        +// This sample shows how to test code relying on some global flag variables.
        +// Combine() helps with generating all possible combinations of such flags,
        +// and each test is given one combination as a parameter.
        +
        +// Use class definitions to test from this header.
        +#include "prime_tables.h"
        +
        +#include "gtest/gtest.h"
        +
        +#if GTEST_HAS_COMBINE
        +
        +// Suppose we want to introduce a new, improved implementation of PrimeTable
        +// which combines speed of PrecalcPrimeTable and versatility of
        +// OnTheFlyPrimeTable (see prime_tables.h). Inside it instantiates both
        +// PrecalcPrimeTable and OnTheFlyPrimeTable and uses the one that is more
        +// appropriate under the circumstances. But in low memory conditions, it can be
        +// told to instantiate without PrecalcPrimeTable instance at all and use only
        +// OnTheFlyPrimeTable.
        +class HybridPrimeTable : public PrimeTable {
        + public:
        +  HybridPrimeTable(bool force_on_the_fly, int max_precalculated)
        +      : on_the_fly_impl_(new OnTheFlyPrimeTable),
        +        precalc_impl_(force_on_the_fly ? NULL :
        +                          new PreCalculatedPrimeTable(max_precalculated)),
        +        max_precalculated_(max_precalculated) {}
        +  virtual ~HybridPrimeTable() {
        +    delete on_the_fly_impl_;
        +    delete precalc_impl_;
        +  }
        +
        +  virtual bool IsPrime(int n) const {
        +    if (precalc_impl_ != NULL && n < max_precalculated_)
        +      return precalc_impl_->IsPrime(n);
        +    else
        +      return on_the_fly_impl_->IsPrime(n);
        +  }
        +
        +  virtual int GetNextPrime(int p) const {
        +    int next_prime = -1;
        +    if (precalc_impl_ != NULL && p < max_precalculated_)
        +      next_prime = precalc_impl_->GetNextPrime(p);
        +
        +    return next_prime != -1 ? next_prime : on_the_fly_impl_->GetNextPrime(p);
        +  }
        +
        + private:
        +  OnTheFlyPrimeTable* on_the_fly_impl_;
        +  PreCalculatedPrimeTable* precalc_impl_;
        +  int max_precalculated_;
        +};
        +
        +using ::testing::TestWithParam;
        +using ::testing::Bool;
        +using ::testing::Values;
        +using ::testing::Combine;
        +
        +// To test all code paths for HybridPrimeTable we must test it with numbers
        +// both within and outside PreCalculatedPrimeTable's capacity and also with
        +// PreCalculatedPrimeTable disabled. We do this by defining fixture which will
        +// accept different combinations of parameters for instantiating a
        +// HybridPrimeTable instance.
        +class PrimeTableTest : public TestWithParam< ::testing::tuple<bool, int> > {
        + protected:
        +  virtual void SetUp() {
        +    // This can be written as
        +    //
        +    // bool force_on_the_fly;
        +    // int max_precalculated;
        +    // tie(force_on_the_fly, max_precalculated) = GetParam();
        +    //
        +    // once the Google C++ Style Guide allows use of ::std::tr1::tie.
        +    //
        +    bool force_on_the_fly = ::testing::get<0>(GetParam());
        +    int max_precalculated = ::testing::get<1>(GetParam());
        +    table_ = new HybridPrimeTable(force_on_the_fly, max_precalculated);
        +  }
        +  virtual void TearDown() {
        +    delete table_;
        +    table_ = NULL;
        +  }
        +  HybridPrimeTable* table_;
        +};
        +
        +TEST_P(PrimeTableTest, ReturnsFalseForNonPrimes) {
        +  // Inside the test body, you can refer to the test parameter by GetParam().
        +  // In this case, the test parameter is a PrimeTable interface pointer which
        +  // we can use directly.
        +  // Please note that you can also save it in the fixture's SetUp() method
        +  // or constructor and use saved copy in the tests.
        +
        +  EXPECT_FALSE(table_->IsPrime(-5));
        +  EXPECT_FALSE(table_->IsPrime(0));
        +  EXPECT_FALSE(table_->IsPrime(1));
        +  EXPECT_FALSE(table_->IsPrime(4));
        +  EXPECT_FALSE(table_->IsPrime(6));
        +  EXPECT_FALSE(table_->IsPrime(100));
        +}
        +
        +TEST_P(PrimeTableTest, ReturnsTrueForPrimes) {
        +  EXPECT_TRUE(table_->IsPrime(2));
        +  EXPECT_TRUE(table_->IsPrime(3));
        +  EXPECT_TRUE(table_->IsPrime(5));
        +  EXPECT_TRUE(table_->IsPrime(7));
        +  EXPECT_TRUE(table_->IsPrime(11));
        +  EXPECT_TRUE(table_->IsPrime(131));
        +}
        +
        +TEST_P(PrimeTableTest, CanGetNextPrime) {
        +  EXPECT_EQ(2, table_->GetNextPrime(0));
        +  EXPECT_EQ(3, table_->GetNextPrime(2));
        +  EXPECT_EQ(5, table_->GetNextPrime(3));
        +  EXPECT_EQ(7, table_->GetNextPrime(5));
        +  EXPECT_EQ(11, table_->GetNextPrime(7));
        +  EXPECT_EQ(131, table_->GetNextPrime(128));
        +}
        +
        +// In order to run value-parameterized tests, you need to instantiate them,
        +// or bind them to a list of values which will be used as test parameters.
        +// You can instantiate them in a different translation module, or even
        +// instantiate them several times.
        +//
        +// Here, we instantiate our tests with a list of parameters. We must combine
        +// all variations of the boolean flag suppressing PrecalcPrimeTable and some
        +// meaningful values for tests. We choose a small value (1), and a value that
        +// will put some of the tested numbers beyond the capability of the
        +// PrecalcPrimeTable instance and some inside it (10). Combine will produce all
        +// possible combinations.
        +INSTANTIATE_TEST_CASE_P(MeaningfulTestParameters,
        +                        PrimeTableTest,
        +                        Combine(Bool(), Values(1, 10)));
        +
        +#else
        +
        +// Google Test may not support Combine() with some compilers. If we
        +// use conditional compilation to compile out all code referring to
        +// the gtest_main library, MSVC linker will not link that library at
        +// all and consequently complain about missing entry point defined in
        +// that library (fatal error LNK1561: entry point must be
        +// defined). This dummy test keeps gtest_main linked in.
        +TEST(DummyTest, CombineIsNotSupportedOnThisPlatform) {}
        +
        +#endif  // GTEST_HAS_COMBINE
        diff --git a/lib/ann/fann/lib/googletest/samples/sample9_unittest.cc b/lib/ann/fann/lib/googletest/samples/sample9_unittest.cc
        new file mode 100644
        index 0000000..b2e2079
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/samples/sample9_unittest.cc
        @@ -0,0 +1,160 @@
        +// Copyright 2009 Google Inc. All Rights Reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: vladl@google.com (Vlad Losev)
        +
        +// This sample shows how to use Google Test listener API to implement
        +// an alternative console output and how to use the UnitTest reflection API
        +// to enumerate test cases and tests and to inspect their results.
        +
        +#include <stdio.h>
        +
        +#include "gtest/gtest.h"
        +
        +using ::testing::EmptyTestEventListener;
        +using ::testing::InitGoogleTest;
        +using ::testing::Test;
        +using ::testing::TestCase;
        +using ::testing::TestEventListeners;
        +using ::testing::TestInfo;
        +using ::testing::TestPartResult;
        +using ::testing::UnitTest;
        +
        +namespace {
        +
        +// Provides alternative output mode which produces minimal amount of
        +// information about tests.
        +class TersePrinter : public EmptyTestEventListener {
        + private:
        +  // Called before any test activity starts.
        +  virtual void OnTestProgramStart(const UnitTest& /* unit_test */) {}
        +
        +  // Called after all test activities have ended.
        +  virtual void OnTestProgramEnd(const UnitTest& unit_test) {
        +    fprintf(stdout, "TEST %s\n", unit_test.Passed() ? "PASSED" : "FAILED");
        +    fflush(stdout);
        +  }
        +
        +  // Called before a test starts.
        +  virtual void OnTestStart(const TestInfo& test_info) {
        +    fprintf(stdout,
        +            "*** Test %s.%s starting.\n",
        +            test_info.test_case_name(),
        +            test_info.name());
        +    fflush(stdout);
        +  }
        +
        +  // Called after a failed assertion or a SUCCEED() invocation.
        +  virtual void OnTestPartResult(const TestPartResult& test_part_result) {
        +    fprintf(stdout,
        +            "%s in %s:%d\n%s\n",
        +            test_part_result.failed() ? "*** Failure" : "Success",
        +            test_part_result.file_name(),
        +            test_part_result.line_number(),
        +            test_part_result.summary());
        +    fflush(stdout);
        +  }
        +
        +  // Called after a test ends.
        +  virtual void OnTestEnd(const TestInfo& test_info) {
        +    fprintf(stdout,
        +            "*** Test %s.%s ending.\n",
        +            test_info.test_case_name(),
        +            test_info.name());
        +    fflush(stdout);
        +  }
        +};  // class TersePrinter
        +
        +TEST(CustomOutputTest, PrintsMessage) {
        +  printf("Printing something from the test body...\n");
        +}
        +
        +TEST(CustomOutputTest, Succeeds) {
        +  SUCCEED() << "SUCCEED() has been invoked from here";
        +}
        +
        +TEST(CustomOutputTest, Fails) {
        +  EXPECT_EQ(1, 2)
        +      << "This test fails in order to demonstrate alternative failure messages";
        +}
        +
        +}  // namespace
        +
        +int main(int argc, char **argv) {
        +  InitGoogleTest(&argc, argv);
        +
        +  bool terse_output = false;
        +  if (argc > 1 && strcmp(argv[1], "--terse_output") == 0 )
        +    terse_output = true;
        +  else
        +    printf("%s\n", "Run this program with --terse_output to change the way "
        +           "it prints its output.");
        +
        +  UnitTest& unit_test = *UnitTest::GetInstance();
        +
        +  // If we are given the --terse_output command line flag, suppresses the
        +  // standard output and attaches own result printer.
        +  if (terse_output) {
        +    TestEventListeners& listeners = unit_test.listeners();
        +
        +    // Removes the default console output listener from the list so it will
        +    // not receive events from Google Test and won't print any output. Since
        +    // this operation transfers ownership of the listener to the caller we
        +    // have to delete it as well.
        +    delete listeners.Release(listeners.default_result_printer());
        +
        +    // Adds the custom output listener to the list. It will now receive
        +    // events from Google Test and print the alternative output. We don't
        +    // have to worry about deleting it since Google Test assumes ownership
        +    // over it after adding it to the list.
        +    listeners.Append(new TersePrinter);
        +  }
        +  int ret_val = RUN_ALL_TESTS();
        +
        +  // This is an example of using the UnitTest reflection API to inspect test
        +  // results. Here we discount failures from the tests we expected to fail.
        +  int unexpectedly_failed_tests = 0;
        +  for (int i = 0; i < unit_test.total_test_case_count(); ++i) {
        +    const TestCase& test_case = *unit_test.GetTestCase(i);
        +    for (int j = 0; j < test_case.total_test_count(); ++j) {
        +      const TestInfo& test_info = *test_case.GetTestInfo(j);
        +      // Counts failed tests that were not meant to fail (those without
        +      // 'Fails' in the name).
        +      if (test_info.result()->Failed() &&
        +          strcmp(test_info.name(), "Fails") != 0) {
        +        unexpectedly_failed_tests++;
        +      }
        +    }
        +  }
        +
        +  // Test that were meant to fail should not affect the test program outcome.
        +  if (unexpectedly_failed_tests == 0)
        +    ret_val = 0;
        +
        +  return ret_val;
        +}
        diff --git a/lib/ann/fann/lib/googletest/scripts/common.py b/lib/ann/fann/lib/googletest/scripts/common.py
        new file mode 100644
        index 0000000..3c0347a
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/scripts/common.py
        @@ -0,0 +1,83 @@
        +# Copyright 2013 Google Inc. All Rights Reserved.
        +#
        +# Redistribution and use in source and binary forms, with or without
        +# modification, are permitted provided that the following conditions are
        +# met:
        +#
        +#     * Redistributions of source code must retain the above copyright
        +# notice, this list of conditions and the following disclaimer.
        +#     * Redistributions in binary form must reproduce the above
        +# copyright notice, this list of conditions and the following disclaimer
        +# in the documentation and/or other materials provided with the
        +# distribution.
        +#     * Neither the name of Google Inc. nor the names of its
        +# contributors may be used to endorse or promote products derived from
        +# this software without specific prior written permission.
        +#
        +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +"""Shared utilities for writing scripts for Google Test/Mock."""
        +
        +__author__ = 'wan@google.com (Zhanyong Wan)'
        +
        +
        +import os
        +import re
        +
        +
        +# Matches the line from 'svn info .' output that describes what SVN
        +# path the current local directory corresponds to.  For example, in
        +# a googletest SVN workspace's trunk/test directory, the output will be:
        +#
        +# URL: https://googletest.googlecode.com/svn/trunk/test
        +_SVN_INFO_URL_RE = re.compile(r'^URL: https://(\w+)\.googlecode\.com/svn(.*)')
        +
        +
        +def GetCommandOutput(command):
        +  """Runs the shell command and returns its stdout as a list of lines."""
        +
        +  f = os.popen(command, 'r')
        +  lines = [line.strip() for line in f.readlines()]
        +  f.close()
        +  return lines
        +
        +
        +def GetSvnInfo():
        +  """Returns the project name and the current SVN workspace's root path."""
        +
        +  for line in GetCommandOutput('svn info .'):
        +    m = _SVN_INFO_URL_RE.match(line)
        +    if m:
        +      project = m.group(1)  # googletest or googlemock
        +      rel_path = m.group(2)
        +      root = os.path.realpath(rel_path.count('/') * '../')
        +      return project, root
        +
        +  return None, None
        +
        +
        +def GetSvnTrunk():
        +  """Returns the current SVN workspace's trunk root path."""
        +
        +  _, root = GetSvnInfo()
        +  return root + '/trunk' if root else None
        +
        +
        +def IsInGTestSvn():
        +  project, _ = GetSvnInfo()
        +  return project == 'googletest'
        +
        +
        +def IsInGMockSvn():
        +  project, _ = GetSvnInfo()
        +  return project == 'googlemock'
        diff --git a/lib/ann/fann/lib/googletest/scripts/fuse_gtest_files.py b/lib/ann/fann/lib/googletest/scripts/fuse_gtest_files.py
        new file mode 100755
        index 0000000..57ef72f
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/scripts/fuse_gtest_files.py
        @@ -0,0 +1,250 @@
        +#!/usr/bin/env python
        +#
        +# Copyright 2009, Google Inc.
        +# All rights reserved.
        +#
        +# Redistribution and use in source and binary forms, with or without
        +# modification, are permitted provided that the following conditions are
        +# met:
        +#
        +#     * Redistributions of source code must retain the above copyright
        +# notice, this list of conditions and the following disclaimer.
        +#     * Redistributions in binary form must reproduce the above
        +# copyright notice, this list of conditions and the following disclaimer
        +# in the documentation and/or other materials provided with the
        +# distribution.
        +#     * Neither the name of Google Inc. nor the names of its
        +# contributors may be used to endorse or promote products derived from
        +# this software without specific prior written permission.
        +#
        +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +"""fuse_gtest_files.py v0.2.0
        +Fuses Google Test source code into a .h file and a .cc file.
        +
        +SYNOPSIS
        +       fuse_gtest_files.py [GTEST_ROOT_DIR] OUTPUT_DIR
        +
        +       Scans GTEST_ROOT_DIR for Google Test source code, and generates
        +       two files: OUTPUT_DIR/gtest/gtest.h and OUTPUT_DIR/gtest/gtest-all.cc.
        +       Then you can build your tests by adding OUTPUT_DIR to the include
        +       search path and linking with OUTPUT_DIR/gtest/gtest-all.cc.  These
        +       two files contain everything you need to use Google Test.  Hence
        +       you can "install" Google Test by copying them to wherever you want.
        +
        +       GTEST_ROOT_DIR can be omitted and defaults to the parent
        +       directory of the directory holding this script.
        +
        +EXAMPLES
        +       ./fuse_gtest_files.py fused_gtest
        +       ./fuse_gtest_files.py path/to/unpacked/gtest fused_gtest
        +
        +This tool is experimental.  In particular, it assumes that there is no
        +conditional inclusion of Google Test headers.  Please report any
        +problems to googletestframework@googlegroups.com.  You can read
        +http://code.google.com/p/googletest/wiki/GoogleTestAdvancedGuide for
        +more information.
        +"""
        +
        +__author__ = 'wan@google.com (Zhanyong Wan)'
        +
        +import os
        +import re
        +import sets
        +import sys
        +
        +# We assume that this file is in the scripts/ directory in the Google
        +# Test root directory.
        +DEFAULT_GTEST_ROOT_DIR = os.path.join(os.path.dirname(__file__), '..')
        +
        +# Regex for matching '#include "gtest/..."'.
        +INCLUDE_GTEST_FILE_REGEX = re.compile(r'^\s*#\s*include\s*"(gtest/.+)"')
        +
        +# Regex for matching '#include "src/..."'.
        +INCLUDE_SRC_FILE_REGEX = re.compile(r'^\s*#\s*include\s*"(src/.+)"')
        +
        +# Where to find the source seed files.
        +GTEST_H_SEED = 'include/gtest/gtest.h'
        +GTEST_SPI_H_SEED = 'include/gtest/gtest-spi.h'
        +GTEST_ALL_CC_SEED = 'src/gtest-all.cc'
        +
        +# Where to put the generated files.
        +GTEST_H_OUTPUT = 'gtest/gtest.h'
        +GTEST_ALL_CC_OUTPUT = 'gtest/gtest-all.cc'
        +
        +
        +def VerifyFileExists(directory, relative_path):
        +  """Verifies that the given file exists; aborts on failure.
        +
        +  relative_path is the file path relative to the given directory.
        +  """
        +
        +  if not os.path.isfile(os.path.join(directory, relative_path)):
        +    print 'ERROR: Cannot find %s in directory %s.' % (relative_path,
        +                                                      directory)
        +    print ('Please either specify a valid project root directory '
        +           'or omit it on the command line.')
        +    sys.exit(1)
        +
        +
        +def ValidateGTestRootDir(gtest_root):
        +  """Makes sure gtest_root points to a valid gtest root directory.
        +
        +  The function aborts the program on failure.
        +  """
        +
        +  VerifyFileExists(gtest_root, GTEST_H_SEED)
        +  VerifyFileExists(gtest_root, GTEST_ALL_CC_SEED)
        +
        +
        +def VerifyOutputFile(output_dir, relative_path):
        +  """Verifies that the given output file path is valid.
        +
        +  relative_path is relative to the output_dir directory.
        +  """
        +
        +  # Makes sure the output file either doesn't exist or can be overwritten.
        +  output_file = os.path.join(output_dir, relative_path)
        +  if os.path.exists(output_file):
        +    # TODO(wan@google.com): The following user-interaction doesn't
        +    # work with automated processes.  We should provide a way for the
        +    # Makefile to force overwriting the files.
        +    print ('%s already exists in directory %s - overwrite it? (y/N) ' %
        +           (relative_path, output_dir))
        +    answer = sys.stdin.readline().strip()
        +    if answer not in ['y', 'Y']:
        +      print 'ABORTED.'
        +      sys.exit(1)
        +
        +  # Makes sure the directory holding the output file exists; creates
        +  # it and all its ancestors if necessary.
        +  parent_directory = os.path.dirname(output_file)
        +  if not os.path.isdir(parent_directory):
        +    os.makedirs(parent_directory)
        +
        +
        +def ValidateOutputDir(output_dir):
        +  """Makes sure output_dir points to a valid output directory.
        +
        +  The function aborts the program on failure.
        +  """
        +
        +  VerifyOutputFile(output_dir, GTEST_H_OUTPUT)
        +  VerifyOutputFile(output_dir, GTEST_ALL_CC_OUTPUT)
        +
        +
        +def FuseGTestH(gtest_root, output_dir):
        +  """Scans folder gtest_root to generate gtest/gtest.h in output_dir."""
        +
        +  output_file = file(os.path.join(output_dir, GTEST_H_OUTPUT), 'w')
        +  processed_files = sets.Set()  # Holds all gtest headers we've processed.
        +
        +  def ProcessFile(gtest_header_path):
        +    """Processes the given gtest header file."""
        +
        +    # We don't process the same header twice.
        +    if gtest_header_path in processed_files:
        +      return
        +
        +    processed_files.add(gtest_header_path)
        +
        +    # Reads each line in the given gtest header.
        +    for line in file(os.path.join(gtest_root, gtest_header_path), 'r'):
        +      m = INCLUDE_GTEST_FILE_REGEX.match(line)
        +      if m:
        +        # It's '#include "gtest/..."' - let's process it recursively.
        +        ProcessFile('include/' + m.group(1))
        +      else:
        +        # Otherwise we copy the line unchanged to the output file.
        +        output_file.write(line)
        +
        +  ProcessFile(GTEST_H_SEED)
        +  output_file.close()
        +
        +
        +def FuseGTestAllCcToFile(gtest_root, output_file):
        +  """Scans folder gtest_root to generate gtest/gtest-all.cc in output_file."""
        +
        +  processed_files = sets.Set()
        +
        +  def ProcessFile(gtest_source_file):
        +    """Processes the given gtest source file."""
        +
        +    # We don't process the same #included file twice.
        +    if gtest_source_file in processed_files:
        +      return
        +
        +    processed_files.add(gtest_source_file)
        +
        +    # Reads each line in the given gtest source file.
        +    for line in file(os.path.join(gtest_root, gtest_source_file), 'r'):
        +      m = INCLUDE_GTEST_FILE_REGEX.match(line)
        +      if m:
        +        if 'include/' + m.group(1) == GTEST_SPI_H_SEED:
        +          # It's '#include "gtest/gtest-spi.h"'.  This file is not
        +          # #included by "gtest/gtest.h", so we need to process it.
        +          ProcessFile(GTEST_SPI_H_SEED)
        +        else:
        +          # It's '#include "gtest/foo.h"' where foo is not gtest-spi.
        +          # We treat it as '#include "gtest/gtest.h"', as all other
        +          # gtest headers are being fused into gtest.h and cannot be
        +          # #included directly.
        +
        +          # There is no need to #include "gtest/gtest.h" more than once.
        +          if not GTEST_H_SEED in processed_files:
        +            processed_files.add(GTEST_H_SEED)
        +            output_file.write('#include "%s"\n' % (GTEST_H_OUTPUT,))
        +      else:
        +        m = INCLUDE_SRC_FILE_REGEX.match(line)
        +        if m:
        +          # It's '#include "src/foo"' - let's process it recursively.
        +          ProcessFile(m.group(1))
        +        else:
        +          output_file.write(line)
        +
        +  ProcessFile(GTEST_ALL_CC_SEED)
        +
        +
        +def FuseGTestAllCc(gtest_root, output_dir):
        +  """Scans folder gtest_root to generate gtest/gtest-all.cc in output_dir."""
        +
        +  output_file = file(os.path.join(output_dir, GTEST_ALL_CC_OUTPUT), 'w')
        +  FuseGTestAllCcToFile(gtest_root, output_file)
        +  output_file.close()
        +
        +
        +def FuseGTest(gtest_root, output_dir):
        +  """Fuses gtest.h and gtest-all.cc."""
        +
        +  ValidateGTestRootDir(gtest_root)
        +  ValidateOutputDir(output_dir)
        +
        +  FuseGTestH(gtest_root, output_dir)
        +  FuseGTestAllCc(gtest_root, output_dir)
        +
        +
        +def main():
        +  argc = len(sys.argv)
        +  if argc == 2:
        +    # fuse_gtest_files.py OUTPUT_DIR
        +    FuseGTest(DEFAULT_GTEST_ROOT_DIR, sys.argv[1])
        +  elif argc == 3:
        +    # fuse_gtest_files.py GTEST_ROOT_DIR OUTPUT_DIR
        +    FuseGTest(sys.argv[1], sys.argv[2])
        +  else:
        +    print __doc__
        +    sys.exit(1)
        +
        +
        +if __name__ == '__main__':
        +  main()
        diff --git a/lib/ann/fann/lib/googletest/scripts/gen_gtest_pred_impl.py b/lib/ann/fann/lib/googletest/scripts/gen_gtest_pred_impl.py
        new file mode 100755
        index 0000000..3e7ab04
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/scripts/gen_gtest_pred_impl.py
        @@ -0,0 +1,730 @@
        +#!/usr/bin/env python
        +#
        +# Copyright 2006, Google Inc.
        +# All rights reserved.
        +#
        +# Redistribution and use in source and binary forms, with or without
        +# modification, are permitted provided that the following conditions are
        +# met:
        +#
        +#     * Redistributions of source code must retain the above copyright
        +# notice, this list of conditions and the following disclaimer.
        +#     * Redistributions in binary form must reproduce the above
        +# copyright notice, this list of conditions and the following disclaimer
        +# in the documentation and/or other materials provided with the
        +# distribution.
        +#     * Neither the name of Google Inc. nor the names of its
        +# contributors may be used to endorse or promote products derived from
        +# this software without specific prior written permission.
        +#
        +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +"""gen_gtest_pred_impl.py v0.1
        +
        +Generates the implementation of Google Test predicate assertions and
        +accompanying tests.
        +
        +Usage:
        +
        +  gen_gtest_pred_impl.py MAX_ARITY
        +
        +where MAX_ARITY is a positive integer.
        +
        +The command generates the implementation of up-to MAX_ARITY-ary
        +predicate assertions, and writes it to file gtest_pred_impl.h in the
        +directory where the script is.  It also generates the accompanying
        +unit test in file gtest_pred_impl_unittest.cc.
        +"""
        +
        +__author__ = 'wan@google.com (Zhanyong Wan)'
        +
        +import os
        +import sys
        +import time
        +
        +# Where this script is.
        +SCRIPT_DIR = os.path.dirname(sys.argv[0])
        +
        +# Where to store the generated header.
        +HEADER = os.path.join(SCRIPT_DIR, '../include/gtest/gtest_pred_impl.h')
        +
        +# Where to store the generated unit test.
        +UNIT_TEST = os.path.join(SCRIPT_DIR, '../test/gtest_pred_impl_unittest.cc')
        +
        +
        +def HeaderPreamble(n):
        +  """Returns the preamble for the header file.
        +
        +  Args:
        +    n:  the maximum arity of the predicate macros to be generated.
        +  """
        +
        +  # A map that defines the values used in the preamble template.
        +  DEFS = {
        +    'today' : time.strftime('%m/%d/%Y'),
        +    'year' : time.strftime('%Y'),
        +    'command' : '%s %s' % (os.path.basename(sys.argv[0]), n),
        +    'n' : n
        +    }
        +
        +  return (
        +"""// Copyright 2006, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +// This file is AUTOMATICALLY GENERATED on %(today)s by command
        +// '%(command)s'.  DO NOT EDIT BY HAND!
        +//
        +// Implements a family of generic predicate assertion macros.
        +
        +#ifndef GTEST_INCLUDE_GTEST_GTEST_PRED_IMPL_H_
        +#define GTEST_INCLUDE_GTEST_GTEST_PRED_IMPL_H_
        +
        +// Makes sure this header is not included before gtest.h.
        +#ifndef GTEST_INCLUDE_GTEST_GTEST_H_
        +# error Do not include gtest_pred_impl.h directly.  Include gtest.h instead.
        +#endif  // GTEST_INCLUDE_GTEST_GTEST_H_
        +
        +// This header implements a family of generic predicate assertion
        +// macros:
        +//
        +//   ASSERT_PRED_FORMAT1(pred_format, v1)
        +//   ASSERT_PRED_FORMAT2(pred_format, v1, v2)
        +//   ...
        +//
        +// where pred_format is a function or functor that takes n (in the
        +// case of ASSERT_PRED_FORMATn) values and their source expression
        +// text, and returns a testing::AssertionResult.  See the definition
        +// of ASSERT_EQ in gtest.h for an example.
        +//
        +// If you don't care about formatting, you can use the more
        +// restrictive version:
        +//
        +//   ASSERT_PRED1(pred, v1)
        +//   ASSERT_PRED2(pred, v1, v2)
        +//   ...
        +//
        +// where pred is an n-ary function or functor that returns bool,
        +// and the values v1, v2, ..., must support the << operator for
        +// streaming to std::ostream.
        +//
        +// We also define the EXPECT_* variations.
        +//
        +// For now we only support predicates whose arity is at most %(n)s.
        +// Please email googletestframework@googlegroups.com if you need
        +// support for higher arities.
        +
        +// GTEST_ASSERT_ is the basic statement to which all of the assertions
        +// in this file reduce.  Don't use this in your code.
        +
        +#define GTEST_ASSERT_(expression, on_failure) \\
        +  GTEST_AMBIGUOUS_ELSE_BLOCKER_ \\
        +  if (const ::testing::AssertionResult gtest_ar = (expression)) \\
        +    ; \\
        +  else \\
        +    on_failure(gtest_ar.failure_message())
        +""" % DEFS)
        +
        +
        +def Arity(n):
        +  """Returns the English name of the given arity."""
        +
        +  if n < 0:
        +    return None
        +  elif n <= 3:
        +    return ['nullary', 'unary', 'binary', 'ternary'][n]
        +  else:
        +    return '%s-ary' % n
        +
        +
        +def Title(word):
        +  """Returns the given word in title case.  The difference between
        +  this and string's title() method is that Title('4-ary') is '4-ary'
        +  while '4-ary'.title() is '4-Ary'."""
        +
        +  return word[0].upper() + word[1:]
        +
        +
        +def OneTo(n):
        +  """Returns the list [1, 2, 3, ..., n]."""
        +
        +  return range(1, n + 1)
        +
        +
        +def Iter(n, format, sep=''):
        +  """Given a positive integer n, a format string that contains 0 or
        +  more '%s' format specs, and optionally a separator string, returns
        +  the join of n strings, each formatted with the format string on an
        +  iterator ranged from 1 to n.
        +
        +  Example:
        +
        +  Iter(3, 'v%s', sep=', ') returns 'v1, v2, v3'.
        +  """
        +
        +  # How many '%s' specs are in format?
        +  spec_count = len(format.split('%s')) - 1
        +  return sep.join([format % (spec_count * (i,)) for i in OneTo(n)])
        +
        +
        +def ImplementationForArity(n):
        +  """Returns the implementation of n-ary predicate assertions."""
        +
        +  # A map the defines the values used in the implementation template.
        +  DEFS = {
        +    'n' : str(n),
        +    'vs' : Iter(n, 'v%s', sep=', '),
        +    'vts' : Iter(n, '#v%s', sep=', '),
        +    'arity' : Arity(n),
        +    'Arity' : Title(Arity(n))
        +    }
        +
        +  impl = """
        +
        +// Helper function for implementing {EXPECT|ASSERT}_PRED%(n)s.  Don't use
        +// this in your code.
        +template <typename Pred""" % DEFS
        +
        +  impl += Iter(n, """,
        +          typename T%s""")
        +
        +  impl += """>
        +AssertionResult AssertPred%(n)sHelper(const char* pred_text""" % DEFS
        +
        +  impl += Iter(n, """,
        +                                  const char* e%s""")
        +
        +  impl += """,
        +                                  Pred pred"""
        +
        +  impl += Iter(n, """,
        +                                  const T%s& v%s""")
        +
        +  impl += """) {
        +  if (pred(%(vs)s)) return AssertionSuccess();
        +
        +""" % DEFS
        +
        +  impl += '  return AssertionFailure() << pred_text << "("'
        +
        +  impl += Iter(n, """
        +                            << e%s""", sep=' << ", "')
        +
        +  impl += ' << ") evaluates to false, where"'
        +
        +  impl += Iter(n, """
        +                            << "\\n" << e%s << " evaluates to " << v%s""")
        +
        +  impl += """;
        +}
        +
        +// Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT%(n)s.
        +// Don't use this in your code.
        +#define GTEST_PRED_FORMAT%(n)s_(pred_format, %(vs)s, on_failure)\\
        +  GTEST_ASSERT_(pred_format(%(vts)s, %(vs)s), \\
        +                on_failure)
        +
        +// Internal macro for implementing {EXPECT|ASSERT}_PRED%(n)s.  Don't use
        +// this in your code.
        +#define GTEST_PRED%(n)s_(pred, %(vs)s, on_failure)\\
        +  GTEST_ASSERT_(::testing::AssertPred%(n)sHelper(#pred""" % DEFS
        +
        +  impl += Iter(n, """, \\
        +                                             #v%s""")
        +
        +  impl += """, \\
        +                                             pred"""
        +
        +  impl += Iter(n, """, \\
        +                                             v%s""")
        +
        +  impl += """), on_failure)
        +
        +// %(Arity)s predicate assertion macros.
        +#define EXPECT_PRED_FORMAT%(n)s(pred_format, %(vs)s) \\
        +  GTEST_PRED_FORMAT%(n)s_(pred_format, %(vs)s, GTEST_NONFATAL_FAILURE_)
        +#define EXPECT_PRED%(n)s(pred, %(vs)s) \\
        +  GTEST_PRED%(n)s_(pred, %(vs)s, GTEST_NONFATAL_FAILURE_)
        +#define ASSERT_PRED_FORMAT%(n)s(pred_format, %(vs)s) \\
        +  GTEST_PRED_FORMAT%(n)s_(pred_format, %(vs)s, GTEST_FATAL_FAILURE_)
        +#define ASSERT_PRED%(n)s(pred, %(vs)s) \\
        +  GTEST_PRED%(n)s_(pred, %(vs)s, GTEST_FATAL_FAILURE_)
        +
        +""" % DEFS
        +
        +  return impl
        +
        +
        +def HeaderPostamble():
        +  """Returns the postamble for the header file."""
        +
        +  return """
        +
        +#endif  // GTEST_INCLUDE_GTEST_GTEST_PRED_IMPL_H_
        +"""
        +
        +
        +def GenerateFile(path, content):
        +  """Given a file path and a content string, overwrites it with the
        +  given content."""
        +
        +  print 'Updating file %s . . .' % path
        +
        +  f = file(path, 'w+')
        +  print >>f, content,
        +  f.close()
        +
        +  print 'File %s has been updated.' % path
        +
        +
        +def GenerateHeader(n):
        +  """Given the maximum arity n, updates the header file that implements
        +  the predicate assertions."""
        +
        +  GenerateFile(HEADER,
        +               HeaderPreamble(n)
        +               + ''.join([ImplementationForArity(i) for i in OneTo(n)])
        +               + HeaderPostamble())
        +
        +
        +def UnitTestPreamble():
        +  """Returns the preamble for the unit test file."""
        +
        +  # A map that defines the values used in the preamble template.
        +  DEFS = {
        +    'today' : time.strftime('%m/%d/%Y'),
        +    'year' : time.strftime('%Y'),
        +    'command' : '%s %s' % (os.path.basename(sys.argv[0]), sys.argv[1]),
        +    }
        +
        +  return (
        +"""// Copyright 2006, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +// This file is AUTOMATICALLY GENERATED on %(today)s by command
        +// '%(command)s'.  DO NOT EDIT BY HAND!
        +
        +// Regression test for gtest_pred_impl.h
        +//
        +// This file is generated by a script and quite long.  If you intend to
        +// learn how Google Test works by reading its unit tests, read
        +// gtest_unittest.cc instead.
        +//
        +// This is intended as a regression test for the Google Test predicate
        +// assertions.  We compile it as part of the gtest_unittest target
        +// only to keep the implementation tidy and compact, as it is quite
        +// involved to set up the stage for testing Google Test using Google
        +// Test itself.
        +//
        +// Currently, gtest_unittest takes ~11 seconds to run in the testing
        +// daemon.  In the future, if it grows too large and needs much more
        +// time to finish, we should consider separating this file into a
        +// stand-alone regression test.
        +
        +#include <iostream>
        +
        +#include "gtest/gtest.h"
        +#include "gtest/gtest-spi.h"
        +
        +// A user-defined data type.
        +struct Bool {
        +  explicit Bool(int val) : value(val != 0) {}
        +
        +  bool operator>(int n) const { return value > Bool(n).value; }
        +
        +  Bool operator+(const Bool& rhs) const { return Bool(value + rhs.value); }
        +
        +  bool operator==(const Bool& rhs) const { return value == rhs.value; }
        +
        +  bool value;
        +};
        +
        +// Enables Bool to be used in assertions.
        +std::ostream& operator<<(std::ostream& os, const Bool& x) {
        +  return os << (x.value ? "true" : "false");
        +}
        +
        +""" % DEFS)
        +
        +
        +def TestsForArity(n):
        +  """Returns the tests for n-ary predicate assertions."""
        +
        +  # A map that defines the values used in the template for the tests.
        +  DEFS = {
        +    'n' : n,
        +    'es' : Iter(n, 'e%s', sep=', '),
        +    'vs' : Iter(n, 'v%s', sep=', '),
        +    'vts' : Iter(n, '#v%s', sep=', '),
        +    'tvs' : Iter(n, 'T%s v%s', sep=', '),
        +    'int_vs' : Iter(n, 'int v%s', sep=', '),
        +    'Bool_vs' : Iter(n, 'Bool v%s', sep=', '),
        +    'types' : Iter(n, 'typename T%s', sep=', '),
        +    'v_sum' : Iter(n, 'v%s', sep=' + '),
        +    'arity' : Arity(n),
        +    'Arity' : Title(Arity(n)),
        +    }
        +
        +  tests = (
        +"""// Sample functions/functors for testing %(arity)s predicate assertions.
        +
        +// A %(arity)s predicate function.
        +template <%(types)s>
        +bool PredFunction%(n)s(%(tvs)s) {
        +  return %(v_sum)s > 0;
        +}
        +
        +// The following two functions are needed to circumvent a bug in
        +// gcc 2.95.3, which sometimes has problem with the above template
        +// function.
        +bool PredFunction%(n)sInt(%(int_vs)s) {
        +  return %(v_sum)s > 0;
        +}
        +bool PredFunction%(n)sBool(%(Bool_vs)s) {
        +  return %(v_sum)s > 0;
        +}
        +""" % DEFS)
        +
        +  tests += """
        +// A %(arity)s predicate functor.
        +struct PredFunctor%(n)s {
        +  template <%(types)s>
        +  bool operator()(""" % DEFS
        +
        +  tests += Iter(n, 'const T%s& v%s', sep=""",
        +                  """)
        +
        +  tests += """) {
        +    return %(v_sum)s > 0;
        +  }
        +};
        +""" % DEFS
        +
        +  tests += """
        +// A %(arity)s predicate-formatter function.
        +template <%(types)s>
        +testing::AssertionResult PredFormatFunction%(n)s(""" % DEFS
        +
        +  tests += Iter(n, 'const char* e%s', sep=""",
        +                                             """)
        +
        +  tests += Iter(n, """,
        +                                             const T%s& v%s""")
        +
        +  tests += """) {
        +  if (PredFunction%(n)s(%(vs)s))
        +    return testing::AssertionSuccess();
        +
        +  return testing::AssertionFailure()
        +      << """ % DEFS
        +
        +  tests += Iter(n, 'e%s', sep=' << " + " << ')
        +
        +  tests += """
        +      << " is expected to be positive, but evaluates to "
        +      << %(v_sum)s << ".";
        +}
        +""" % DEFS
        +
        +  tests += """
        +// A %(arity)s predicate-formatter functor.
        +struct PredFormatFunctor%(n)s {
        +  template <%(types)s>
        +  testing::AssertionResult operator()(""" % DEFS
        +
        +  tests += Iter(n, 'const char* e%s', sep=""",
        +                                      """)
        +
        +  tests += Iter(n, """,
        +                                      const T%s& v%s""")
        +
        +  tests += """) const {
        +    return PredFormatFunction%(n)s(%(es)s, %(vs)s);
        +  }
        +};
        +""" % DEFS
        +
        +  tests += """
        +// Tests for {EXPECT|ASSERT}_PRED_FORMAT%(n)s.
        +
        +class Predicate%(n)sTest : public testing::Test {
        + protected:
        +  virtual void SetUp() {
        +    expected_to_finish_ = true;
        +    finished_ = false;""" % DEFS
        +
        +  tests += """
        +    """ + Iter(n, 'n%s_ = ') + """0;
        +  }
        +"""
        +
        +  tests += """
        +  virtual void TearDown() {
        +    // Verifies that each of the predicate's arguments was evaluated
        +    // exactly once."""
        +
        +  tests += ''.join(["""
        +    EXPECT_EQ(1, n%s_) <<
        +        "The predicate assertion didn't evaluate argument %s "
        +        "exactly once.";""" % (i, i + 1) for i in OneTo(n)])
        +
        +  tests += """
        +
        +    // Verifies that the control flow in the test function is expected.
        +    if (expected_to_finish_ && !finished_) {
        +      FAIL() << "The predicate assertion unexpactedly aborted the test.";
        +    } else if (!expected_to_finish_ && finished_) {
        +      FAIL() << "The failed predicate assertion didn't abort the test "
        +                "as expected.";
        +    }
        +  }
        +
        +  // true iff the test function is expected to run to finish.
        +  static bool expected_to_finish_;
        +
        +  // true iff the test function did run to finish.
        +  static bool finished_;
        +""" % DEFS
        +
        +  tests += Iter(n, """
        +  static int n%s_;""")
        +
        +  tests += """
        +};
        +
        +bool Predicate%(n)sTest::expected_to_finish_;
        +bool Predicate%(n)sTest::finished_;
        +""" % DEFS
        +
        +  tests += Iter(n, """int Predicate%%(n)sTest::n%s_;
        +""") % DEFS
        +
        +  tests += """
        +typedef Predicate%(n)sTest EXPECT_PRED_FORMAT%(n)sTest;
        +typedef Predicate%(n)sTest ASSERT_PRED_FORMAT%(n)sTest;
        +typedef Predicate%(n)sTest EXPECT_PRED%(n)sTest;
        +typedef Predicate%(n)sTest ASSERT_PRED%(n)sTest;
        +""" % DEFS
        +
        +  def GenTest(use_format, use_assert, expect_failure,
        +              use_functor, use_user_type):
        +    """Returns the test for a predicate assertion macro.
        +
        +    Args:
        +      use_format:     true iff the assertion is a *_PRED_FORMAT*.
        +      use_assert:     true iff the assertion is a ASSERT_*.
        +      expect_failure: true iff the assertion is expected to fail.
        +      use_functor:    true iff the first argument of the assertion is
        +                      a functor (as opposed to a function)
        +      use_user_type:  true iff the predicate functor/function takes
        +                      argument(s) of a user-defined type.
        +
        +    Example:
        +
        +      GenTest(1, 0, 0, 1, 0) returns a test that tests the behavior
        +      of a successful EXPECT_PRED_FORMATn() that takes a functor
        +      whose arguments have built-in types."""
        +
        +    if use_assert:
        +      assrt = 'ASSERT'  # 'assert' is reserved, so we cannot use
        +                        # that identifier here.
        +    else:
        +      assrt = 'EXPECT'
        +
        +    assertion = assrt + '_PRED'
        +
        +    if use_format:
        +      pred_format = 'PredFormat'
        +      assertion += '_FORMAT'
        +    else:
        +      pred_format = 'Pred'
        +
        +    assertion += '%(n)s' % DEFS
        +
        +    if use_functor:
        +      pred_format_type = 'functor'
        +      pred_format += 'Functor%(n)s()'
        +    else:
        +      pred_format_type = 'function'
        +      pred_format += 'Function%(n)s'
        +      if not use_format:
        +        if use_user_type:
        +          pred_format += 'Bool'
        +        else:
        +          pred_format += 'Int'
        +
        +    test_name = pred_format_type.title()
        +
        +    if use_user_type:
        +      arg_type = 'user-defined type (Bool)'
        +      test_name += 'OnUserType'
        +      if expect_failure:
        +        arg = 'Bool(n%s_++)'
        +      else:
        +        arg = 'Bool(++n%s_)'
        +    else:
        +      arg_type = 'built-in type (int)'
        +      test_name += 'OnBuiltInType'
        +      if expect_failure:
        +        arg = 'n%s_++'
        +      else:
        +        arg = '++n%s_'
        +
        +    if expect_failure:
        +      successful_or_failed = 'failed'
        +      expected_or_not = 'expected.'
        +      test_name +=  'Failure'
        +    else:
        +      successful_or_failed = 'successful'
        +      expected_or_not = 'UNEXPECTED!'
        +      test_name +=  'Success'
        +
        +    # A map that defines the values used in the test template.
        +    defs = DEFS.copy()
        +    defs.update({
        +      'assert' : assrt,
        +      'assertion' : assertion,
        +      'test_name' : test_name,
        +      'pf_type' : pred_format_type,
        +      'pf' : pred_format,
        +      'arg_type' : arg_type,
        +      'arg' : arg,
        +      'successful' : successful_or_failed,
        +      'expected' : expected_or_not,
        +      })
        +
        +    test = """
        +// Tests a %(successful)s %(assertion)s where the
        +// predicate-formatter is a %(pf_type)s on a %(arg_type)s.
        +TEST_F(%(assertion)sTest, %(test_name)s) {""" % defs
        +
        +    indent = (len(assertion) + 3)*' '
        +    extra_indent = ''
        +
        +    if expect_failure:
        +      extra_indent = '  '
        +      if use_assert:
        +        test += """
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT"""
        +      else:
        +        test += """
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT"""
        +
        +    test += '\n' + extra_indent + """  %(assertion)s(%(pf)s""" % defs
        +
        +    test = test % defs
        +    test += Iter(n, ',\n' + indent + extra_indent + '%(arg)s' % defs)
        +    test += ');\n' + extra_indent + '  finished_ = true;\n'
        +
        +    if expect_failure:
        +      test += '  }, "");\n'
        +
        +    test += '}\n'
        +    return test
        +
        +  # Generates tests for all 2**6 = 64 combinations.
        +  tests += ''.join([GenTest(use_format, use_assert, expect_failure,
        +                            use_functor, use_user_type)
        +                    for use_format in [0, 1]
        +                    for use_assert in [0, 1]
        +                    for expect_failure in [0, 1]
        +                    for use_functor in [0, 1]
        +                    for use_user_type in [0, 1]
        +                    ])
        +
        +  return tests
        +
        +
        +def UnitTestPostamble():
        +  """Returns the postamble for the tests."""
        +
        +  return ''
        +
        +
        +def GenerateUnitTest(n):
        +  """Returns the tests for up-to n-ary predicate assertions."""
        +
        +  GenerateFile(UNIT_TEST,
        +               UnitTestPreamble()
        +               + ''.join([TestsForArity(i) for i in OneTo(n)])
        +               + UnitTestPostamble())
        +
        +
        +def _Main():
        +  """The entry point of the script.  Generates the header file and its
        +  unit test."""
        +
        +  if len(sys.argv) != 2:
        +    print __doc__
        +    print 'Author: ' + __author__
        +    sys.exit(1)
        +
        +  n = int(sys.argv[1])
        +  GenerateHeader(n)
        +  GenerateUnitTest(n)
        +
        +
        +if __name__ == '__main__':
        +  _Main()
        diff --git a/lib/ann/fann/lib/googletest/scripts/gtest-config.in b/lib/ann/fann/lib/googletest/scripts/gtest-config.in
        new file mode 100755
        index 0000000..780f843
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/scripts/gtest-config.in
        @@ -0,0 +1,274 @@
        +#!/bin/sh
        +
        +# These variables are automatically filled in by the configure script.
        +name="@PACKAGE_TARNAME@"
        +version="@PACKAGE_VERSION@"
        +
        +show_usage()
        +{
        +  echo "Usage: gtest-config [OPTIONS...]"
        +}
        +
        +show_help()
        +{
        +  show_usage
        +  cat <<\EOF
        +
        +The `gtest-config' script provides access to the necessary compile and linking
        +flags to connect with Google C++ Testing Framework, both in a build prior to
        +installation, and on the system proper after installation. The installation
        +overrides may be issued in combination with any other queries, but will only
        +affect installation queries if called on a built but not installed gtest. The
        +installation queries may not be issued with any other types of queries, and
        +only one installation query may be made at a time. The version queries and
        +compiler flag queries may be combined as desired but not mixed. Different
        +version queries are always combined with logical "and" semantics, and only the
        +last of any particular query is used while all previous ones ignored. All
        +versions must be specified as a sequence of numbers separated by periods.
        +Compiler flag queries output the union of the sets of flags when combined.
        +
        + Examples:
        +  gtest-config --min-version=1.0 || echo "Insufficient Google Test version."
        +
        +  g++ $(gtest-config --cppflags --cxxflags) -o foo.o -c foo.cpp
        +  g++ $(gtest-config --ldflags --libs) -o foo foo.o
        +
        +  # When using a built but not installed Google Test:
        +  g++ $(../../my_gtest_build/scripts/gtest-config ...) ...
        +
        +  # When using an installed Google Test, but with installation overrides:
        +  export GTEST_PREFIX="/opt"
        +  g++ $(gtest-config --libdir="/opt/lib64" ...) ...
        +
        + Help:
        +  --usage                    brief usage information
        +  --help                     display this help message
        +
        + Installation Overrides:
        +  --prefix=<dir>             overrides the installation prefix
        +  --exec-prefix=<dir>        overrides the executable installation prefix
        +  --libdir=<dir>             overrides the library installation prefix
        +  --includedir=<dir>         overrides the header file installation prefix
        +
        + Installation Queries:
        +  --prefix                   installation prefix
        +  --exec-prefix              executable installation prefix
        +  --libdir                   library installation directory
        +  --includedir               header file installation directory
        +  --version                  the version of the Google Test installation
        +
        + Version Queries:
        +  --min-version=VERSION      return 0 if the version is at least VERSION
        +  --exact-version=VERSION    return 0 if the version is exactly VERSION
        +  --max-version=VERSION      return 0 if the version is at most VERSION
        +
        + Compilation Flag Queries:
        +  --cppflags                 compile flags specific to the C-like preprocessors
        +  --cxxflags                 compile flags appropriate for C++ programs
        +  --ldflags                  linker flags
        +  --libs                     libraries for linking
        +
        +EOF
        +}
        +
        +# This function bounds our version with a min and a max. It uses some clever
        +# POSIX-compliant variable expansion to portably do all the work in the shell
        +# and avoid any dependency on a particular "sed" or "awk" implementation.
        +# Notable is that it will only ever compare the first 3 components of versions.
        +# Further components will be cleanly stripped off. All versions must be
        +# unadorned, so "v1.0" will *not* work. The minimum version must be in $1, and
        +# the max in $2. TODO(chandlerc@google.com): If this ever breaks, we should
        +# investigate expanding this via autom4te from AS_VERSION_COMPARE rather than
        +# continuing to maintain our own shell version.
        +check_versions()
        +{
        +  major_version=${version%%.*}
        +  minor_version="0"
        +  point_version="0"
        +  if test "${version#*.}" != "${version}"; then
        +    minor_version=${version#*.}
        +    minor_version=${minor_version%%.*}
        +  fi
        +  if test "${version#*.*.}" != "${version}"; then
        +    point_version=${version#*.*.}
        +    point_version=${point_version%%.*}
        +  fi
        +
        +  min_version="$1"
        +  min_major_version=${min_version%%.*}
        +  min_minor_version="0"
        +  min_point_version="0"
        +  if test "${min_version#*.}" != "${min_version}"; then
        +    min_minor_version=${min_version#*.}
        +    min_minor_version=${min_minor_version%%.*}
        +  fi
        +  if test "${min_version#*.*.}" != "${min_version}"; then
        +    min_point_version=${min_version#*.*.}
        +    min_point_version=${min_point_version%%.*}
        +  fi
        +
        +  max_version="$2"
        +  max_major_version=${max_version%%.*}
        +  max_minor_version="0"
        +  max_point_version="0"
        +  if test "${max_version#*.}" != "${max_version}"; then
        +    max_minor_version=${max_version#*.}
        +    max_minor_version=${max_minor_version%%.*}
        +  fi
        +  if test "${max_version#*.*.}" != "${max_version}"; then
        +    max_point_version=${max_version#*.*.}
        +    max_point_version=${max_point_version%%.*}
        +  fi
        +
        +  test $(($major_version)) -lt $(($min_major_version)) && exit 1
        +  if test $(($major_version)) -eq $(($min_major_version)); then
        +    test $(($minor_version)) -lt $(($min_minor_version)) && exit 1
        +    if test $(($minor_version)) -eq $(($min_minor_version)); then
        +      test $(($point_version)) -lt $(($min_point_version)) && exit 1
        +    fi
        +  fi
        +
        +  test $(($major_version)) -gt $(($max_major_version)) && exit 1
        +  if test $(($major_version)) -eq $(($max_major_version)); then
        +    test $(($minor_version)) -gt $(($max_minor_version)) && exit 1
        +    if test $(($minor_version)) -eq $(($max_minor_version)); then
        +      test $(($point_version)) -gt $(($max_point_version)) && exit 1
        +    fi
        +  fi
        +
        +  exit 0
        +}
        +
        +# Show the usage line when no arguments are specified.
        +if test $# -eq 0; then
        +  show_usage
        +  exit 1
        +fi
        +
        +while test $# -gt 0; do
        +  case $1 in
        +    --usage)          show_usage;         exit 0;;
        +    --help)           show_help;          exit 0;;
        +
        +    # Installation overrides
        +    --prefix=*)       GTEST_PREFIX=${1#--prefix=};;
        +    --exec-prefix=*)  GTEST_EXEC_PREFIX=${1#--exec-prefix=};;
        +    --libdir=*)       GTEST_LIBDIR=${1#--libdir=};;
        +    --includedir=*)   GTEST_INCLUDEDIR=${1#--includedir=};;
        +
        +    # Installation queries
        +    --prefix|--exec-prefix|--libdir|--includedir|--version)
        +      if test -n "${do_query}"; then
        +        show_usage
        +        exit 1
        +      fi
        +      do_query=${1#--}
        +      ;;
        +
        +    # Version checking
        +    --min-version=*)
        +      do_check_versions=yes
        +      min_version=${1#--min-version=}
        +      ;;
        +    --max-version=*)
        +      do_check_versions=yes
        +      max_version=${1#--max-version=}
        +      ;;
        +    --exact-version=*)
        +      do_check_versions=yes
        +      exact_version=${1#--exact-version=}
        +      ;;
        +
        +    # Compiler flag output
        +    --cppflags)       echo_cppflags=yes;;
        +    --cxxflags)       echo_cxxflags=yes;;
        +    --ldflags)        echo_ldflags=yes;;
        +    --libs)           echo_libs=yes;;
        +
        +    # Everything else is an error
        +    *)                show_usage;         exit 1;;
        +  esac
        +  shift
        +done
        +
        +# These have defaults filled in by the configure script but can also be
        +# overridden by environment variables or command line parameters.
        +prefix="${GTEST_PREFIX:-@prefix@}"
        +exec_prefix="${GTEST_EXEC_PREFIX:-@exec_prefix@}"
        +libdir="${GTEST_LIBDIR:-@libdir@}"
        +includedir="${GTEST_INCLUDEDIR:-@includedir@}"
        +
        +# We try and detect if our binary is not located at its installed location. If
        +# it's not, we provide variables pointing to the source and build tree rather
        +# than to the install tree. This allows building against a just-built gtest
        +# rather than an installed gtest.
        +bindir="@bindir@"
        +this_relative_bindir=`dirname $0`
        +this_bindir=`cd ${this_relative_bindir}; pwd -P`
        +if test "${this_bindir}" = "${this_bindir%${bindir}}"; then
        +  # The path to the script doesn't end in the bindir sequence from Autoconf,
        +  # assume that we are in a build tree.
        +  build_dir=`dirname ${this_bindir}`
        +  src_dir=`cd ${this_bindir}; cd @top_srcdir@; pwd -P`
        +
        +  # TODO(chandlerc@google.com): This is a dangerous dependency on libtool, we
        +  # should work to remove it, and/or remove libtool altogether, replacing it
        +  # with direct references to the library and a link path.
        +  gtest_libs="${build_dir}/lib/libgtest.la @PTHREAD_CFLAGS@ @PTHREAD_LIBS@"
        +  gtest_ldflags=""
        +
        +  # We provide hooks to include from either the source or build dir, where the
        +  # build dir is always preferred. This will potentially allow us to write
        +  # build rules for generated headers and have them automatically be preferred
        +  # over provided versions.
        +  gtest_cppflags="-I${build_dir}/include -I${src_dir}/include"
        +  gtest_cxxflags="@PTHREAD_CFLAGS@"
        +else
        +  # We're using an installed gtest, although it may be staged under some
        +  # prefix. Assume (as our own libraries do) that we can resolve the prefix,
        +  # and are present in the dynamic link paths.
        +  gtest_ldflags="-L${libdir}"
        +  gtest_libs="-l${name} @PTHREAD_CFLAGS@ @PTHREAD_LIBS@"
        +  gtest_cppflags="-I${includedir}"
        +  gtest_cxxflags="@PTHREAD_CFLAGS@"
        +fi
        +
        +# Do an installation query if requested.
        +if test -n "$do_query"; then
        +  case $do_query in
        +    prefix)           echo $prefix;       exit 0;;
        +    exec-prefix)      echo $exec_prefix;  exit 0;;
        +    libdir)           echo $libdir;       exit 0;;
        +    includedir)       echo $includedir;   exit 0;;
        +    version)          echo $version;      exit 0;;
        +    *)                show_usage;         exit 1;;
        +  esac
        +fi
        +
        +# Do a version check if requested.
        +if test "$do_check_versions" = "yes"; then
        +  # Make sure we didn't receive a bad combination of parameters.
        +  test "$echo_cppflags" = "yes" && show_usage && exit 1
        +  test "$echo_cxxflags" = "yes" && show_usage && exit 1
        +  test "$echo_ldflags" = "yes"  && show_usage && exit 1
        +  test "$echo_libs" = "yes"     && show_usage && exit 1
        +
        +  if test "$exact_version" != ""; then
        +    check_versions $exact_version $exact_version
        +    # unreachable
        +  else
        +    check_versions ${min_version:-0.0.0} ${max_version:-9999.9999.9999}
        +    # unreachable
        +  fi
        +fi
        +
        +# Do the output in the correct order so that these can be used in-line of
        +# a compiler invocation.
        +output=""
        +test "$echo_cppflags" = "yes" && output="$output $gtest_cppflags"
        +test "$echo_cxxflags" = "yes" && output="$output $gtest_cxxflags"
        +test "$echo_ldflags" = "yes"  && output="$output $gtest_ldflags"
        +test "$echo_libs" = "yes"     && output="$output $gtest_libs"
        +echo $output
        +
        +exit 0
        diff --git a/lib/ann/fann/lib/googletest/scripts/pump.py b/lib/ann/fann/lib/googletest/scripts/pump.py
        new file mode 100755
        index 0000000..5efb653
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/scripts/pump.py
        @@ -0,0 +1,855 @@
        +#!/usr/bin/env python
        +#
        +# Copyright 2008, Google Inc.
        +# All rights reserved.
        +#
        +# Redistribution and use in source and binary forms, with or without
        +# modification, are permitted provided that the following conditions are
        +# met:
        +#
        +#     * Redistributions of source code must retain the above copyright
        +# notice, this list of conditions and the following disclaimer.
        +#     * Redistributions in binary form must reproduce the above
        +# copyright notice, this list of conditions and the following disclaimer
        +# in the documentation and/or other materials provided with the
        +# distribution.
        +#     * Neither the name of Google Inc. nor the names of its
        +# contributors may be used to endorse or promote products derived from
        +# this software without specific prior written permission.
        +#
        +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +"""pump v0.2.0 - Pretty Useful for Meta Programming.
        +
        +A tool for preprocessor meta programming.  Useful for generating
        +repetitive boilerplate code.  Especially useful for writing C++
        +classes, functions, macros, and templates that need to work with
        +various number of arguments.
        +
        +USAGE:
        +       pump.py SOURCE_FILE
        +
        +EXAMPLES:
        +       pump.py foo.cc.pump
        +         Converts foo.cc.pump to foo.cc.
        +
        +GRAMMAR:
        +       CODE ::= ATOMIC_CODE*
        +       ATOMIC_CODE ::= $var ID = EXPRESSION
        +           | $var ID = [[ CODE ]]
        +           | $range ID EXPRESSION..EXPRESSION
        +           | $for ID SEPARATOR [[ CODE ]]
        +           | $($)
        +           | $ID
        +           | $(EXPRESSION)
        +           | $if EXPRESSION [[ CODE ]] ELSE_BRANCH
        +           | [[ CODE ]]
        +           | RAW_CODE
        +       SEPARATOR ::= RAW_CODE | EMPTY
        +       ELSE_BRANCH ::= $else [[ CODE ]]
        +           | $elif EXPRESSION [[ CODE ]] ELSE_BRANCH
        +           | EMPTY
        +       EXPRESSION has Python syntax.
        +"""
        +
        +__author__ = 'wan@google.com (Zhanyong Wan)'
        +
        +import os
        +import re
        +import sys
        +
        +
        +TOKEN_TABLE = [
        +    (re.compile(r'\$var\s+'), '$var'),
        +    (re.compile(r'\$elif\s+'), '$elif'),
        +    (re.compile(r'\$else\s+'), '$else'),
        +    (re.compile(r'\$for\s+'), '$for'),
        +    (re.compile(r'\$if\s+'), '$if'),
        +    (re.compile(r'\$range\s+'), '$range'),
        +    (re.compile(r'\$[_A-Za-z]\w*'), '$id'),
        +    (re.compile(r'\$\(\$\)'), '$($)'),
        +    (re.compile(r'\$'), '$'),
        +    (re.compile(r'\[\[\n?'), '[['),
        +    (re.compile(r'\]\]\n?'), ']]'),
        +    ]
        +
        +
        +class Cursor:
        +  """Represents a position (line and column) in a text file."""
        +
        +  def __init__(self, line=-1, column=-1):
        +    self.line = line
        +    self.column = column
        +
        +  def __eq__(self, rhs):
        +    return self.line == rhs.line and self.column == rhs.column
        +
        +  def __ne__(self, rhs):
        +    return not self == rhs
        +
        +  def __lt__(self, rhs):
        +    return self.line < rhs.line or (
        +        self.line == rhs.line and self.column < rhs.column)
        +
        +  def __le__(self, rhs):
        +    return self < rhs or self == rhs
        +
        +  def __gt__(self, rhs):
        +    return rhs < self
        +
        +  def __ge__(self, rhs):
        +    return rhs <= self
        +
        +  def __str__(self):
        +    if self == Eof():
        +      return 'EOF'
        +    else:
        +      return '%s(%s)' % (self.line + 1, self.column)
        +
        +  def __add__(self, offset):
        +    return Cursor(self.line, self.column + offset)
        +
        +  def __sub__(self, offset):
        +    return Cursor(self.line, self.column - offset)
        +
        +  def Clone(self):
        +    """Returns a copy of self."""
        +
        +    return Cursor(self.line, self.column)
        +
        +
        +# Special cursor to indicate the end-of-file.
        +def Eof():
        +  """Returns the special cursor to denote the end-of-file."""
        +  return Cursor(-1, -1)
        +
        +
        +class Token:
        +  """Represents a token in a Pump source file."""
        +
        +  def __init__(self, start=None, end=None, value=None, token_type=None):
        +    if start is None:
        +      self.start = Eof()
        +    else:
        +      self.start = start
        +    if end is None:
        +      self.end = Eof()
        +    else:
        +      self.end = end
        +    self.value = value
        +    self.token_type = token_type
        +
        +  def __str__(self):
        +    return 'Token @%s: \'%s\' type=%s' % (
        +        self.start, self.value, self.token_type)
        +
        +  def Clone(self):
        +    """Returns a copy of self."""
        +
        +    return Token(self.start.Clone(), self.end.Clone(), self.value,
        +                 self.token_type)
        +
        +
        +def StartsWith(lines, pos, string):
        +  """Returns True iff the given position in lines starts with 'string'."""
        +
        +  return lines[pos.line][pos.column:].startswith(string)
        +
        +
        +def FindFirstInLine(line, token_table):
        +  best_match_start = -1
        +  for (regex, token_type) in token_table:
        +    m = regex.search(line)
        +    if m:
        +      # We found regex in lines
        +      if best_match_start < 0 or m.start() < best_match_start:
        +        best_match_start = m.start()
        +        best_match_length = m.end() - m.start()
        +        best_match_token_type = token_type
        +
        +  if best_match_start < 0:
        +    return None
        +
        +  return (best_match_start, best_match_length, best_match_token_type)
        +
        +
        +def FindFirst(lines, token_table, cursor):
        +  """Finds the first occurrence of any string in strings in lines."""
        +
        +  start = cursor.Clone()
        +  cur_line_number = cursor.line
        +  for line in lines[start.line:]:
        +    if cur_line_number == start.line:
        +      line = line[start.column:]
        +    m = FindFirstInLine(line, token_table)
        +    if m:
        +      # We found a regex in line.
        +      (start_column, length, token_type) = m
        +      if cur_line_number == start.line:
        +        start_column += start.column
        +      found_start = Cursor(cur_line_number, start_column)
        +      found_end = found_start + length
        +      return MakeToken(lines, found_start, found_end, token_type)
        +    cur_line_number += 1
        +  # We failed to find str in lines
        +  return None
        +
        +
        +def SubString(lines, start, end):
        +  """Returns a substring in lines."""
        +
        +  if end == Eof():
        +    end = Cursor(len(lines) - 1, len(lines[-1]))
        +
        +  if start >= end:
        +    return ''
        +
        +  if start.line == end.line:
        +    return lines[start.line][start.column:end.column]
        +
        +  result_lines = ([lines[start.line][start.column:]] +
        +                  lines[start.line + 1:end.line] +
        +                  [lines[end.line][:end.column]])
        +  return ''.join(result_lines)
        +
        +
        +def StripMetaComments(str):
        +  """Strip meta comments from each line in the given string."""
        +
        +  # First, completely remove lines containing nothing but a meta
        +  # comment, including the trailing \n.
        +  str = re.sub(r'^\s*\$\$.*\n', '', str)
        +
        +  # Then, remove meta comments from contentful lines.
        +  return re.sub(r'\s*\$\$.*', '', str)
        +
        +
        +def MakeToken(lines, start, end, token_type):
        +  """Creates a new instance of Token."""
        +
        +  return Token(start, end, SubString(lines, start, end), token_type)
        +
        +
        +def ParseToken(lines, pos, regex, token_type):
        +  line = lines[pos.line][pos.column:]
        +  m = regex.search(line)
        +  if m and not m.start():
        +    return MakeToken(lines, pos, pos + m.end(), token_type)
        +  else:
        +    print 'ERROR: %s expected at %s.' % (token_type, pos)
        +    sys.exit(1)
        +
        +
        +ID_REGEX = re.compile(r'[_A-Za-z]\w*')
        +EQ_REGEX = re.compile(r'=')
        +REST_OF_LINE_REGEX = re.compile(r'.*?(?=$|\$\$)')
        +OPTIONAL_WHITE_SPACES_REGEX = re.compile(r'\s*')
        +WHITE_SPACE_REGEX = re.compile(r'\s')
        +DOT_DOT_REGEX = re.compile(r'\.\.')
        +
        +
        +def Skip(lines, pos, regex):
        +  line = lines[pos.line][pos.column:]
        +  m = re.search(regex, line)
        +  if m and not m.start():
        +    return pos + m.end()
        +  else:
        +    return pos
        +
        +
        +def SkipUntil(lines, pos, regex, token_type):
        +  line = lines[pos.line][pos.column:]
        +  m = re.search(regex, line)
        +  if m:
        +    return pos + m.start()
        +  else:
        +    print ('ERROR: %s expected on line %s after column %s.' %
        +           (token_type, pos.line + 1, pos.column))
        +    sys.exit(1)
        +
        +
        +def ParseExpTokenInParens(lines, pos):
        +  def ParseInParens(pos):
        +    pos = Skip(lines, pos, OPTIONAL_WHITE_SPACES_REGEX)
        +    pos = Skip(lines, pos, r'\(')
        +    pos = Parse(pos)
        +    pos = Skip(lines, pos, r'\)')
        +    return pos
        +
        +  def Parse(pos):
        +    pos = SkipUntil(lines, pos, r'\(|\)', ')')
        +    if SubString(lines, pos, pos + 1) == '(':
        +      pos = Parse(pos + 1)
        +      pos = Skip(lines, pos, r'\)')
        +      return Parse(pos)
        +    else:
        +      return pos
        +
        +  start = pos.Clone()
        +  pos = ParseInParens(pos)
        +  return MakeToken(lines, start, pos, 'exp')
        +
        +
        +def RStripNewLineFromToken(token):
        +  if token.value.endswith('\n'):
        +    return Token(token.start, token.end, token.value[:-1], token.token_type)
        +  else:
        +    return token
        +
        +
        +def TokenizeLines(lines, pos):
        +  while True:
        +    found = FindFirst(lines, TOKEN_TABLE, pos)
        +    if not found:
        +      yield MakeToken(lines, pos, Eof(), 'code')
        +      return
        +
        +    if found.start == pos:
        +      prev_token = None
        +      prev_token_rstripped = None
        +    else:
        +      prev_token = MakeToken(lines, pos, found.start, 'code')
        +      prev_token_rstripped = RStripNewLineFromToken(prev_token)
        +
        +    if found.token_type == '$var':
        +      if prev_token_rstripped:
        +        yield prev_token_rstripped
        +      yield found
        +      id_token = ParseToken(lines, found.end, ID_REGEX, 'id')
        +      yield id_token
        +      pos = Skip(lines, id_token.end, OPTIONAL_WHITE_SPACES_REGEX)
        +
        +      eq_token = ParseToken(lines, pos, EQ_REGEX, '=')
        +      yield eq_token
        +      pos = Skip(lines, eq_token.end, r'\s*')
        +
        +      if SubString(lines, pos, pos + 2) != '[[':
        +        exp_token = ParseToken(lines, pos, REST_OF_LINE_REGEX, 'exp')
        +        yield exp_token
        +        pos = Cursor(exp_token.end.line + 1, 0)
        +    elif found.token_type == '$for':
        +      if prev_token_rstripped:
        +        yield prev_token_rstripped
        +      yield found
        +      id_token = ParseToken(lines, found.end, ID_REGEX, 'id')
        +      yield id_token
        +      pos = Skip(lines, id_token.end, WHITE_SPACE_REGEX)
        +    elif found.token_type == '$range':
        +      if prev_token_rstripped:
        +        yield prev_token_rstripped
        +      yield found
        +      id_token = ParseToken(lines, found.end, ID_REGEX, 'id')
        +      yield id_token
        +      pos = Skip(lines, id_token.end, OPTIONAL_WHITE_SPACES_REGEX)
        +
        +      dots_pos = SkipUntil(lines, pos, DOT_DOT_REGEX, '..')
        +      yield MakeToken(lines, pos, dots_pos, 'exp')
        +      yield MakeToken(lines, dots_pos, dots_pos + 2, '..')
        +      pos = dots_pos + 2
        +      new_pos = Cursor(pos.line + 1, 0)
        +      yield MakeToken(lines, pos, new_pos, 'exp')
        +      pos = new_pos
        +    elif found.token_type == '$':
        +      if prev_token:
        +        yield prev_token
        +      yield found
        +      exp_token = ParseExpTokenInParens(lines, found.end)
        +      yield exp_token
        +      pos = exp_token.end
        +    elif (found.token_type == ']]' or found.token_type == '$if' or
        +          found.token_type == '$elif' or found.token_type == '$else'):
        +      if prev_token_rstripped:
        +        yield prev_token_rstripped
        +      yield found
        +      pos = found.end
        +    else:
        +      if prev_token:
        +        yield prev_token
        +      yield found
        +      pos = found.end
        +
        +
        +def Tokenize(s):
        +  """A generator that yields the tokens in the given string."""
        +  if s != '':
        +    lines = s.splitlines(True)
        +    for token in TokenizeLines(lines, Cursor(0, 0)):
        +      yield token
        +
        +
        +class CodeNode:
        +  def __init__(self, atomic_code_list=None):
        +    self.atomic_code = atomic_code_list
        +
        +
        +class VarNode:
        +  def __init__(self, identifier=None, atomic_code=None):
        +    self.identifier = identifier
        +    self.atomic_code = atomic_code
        +
        +
        +class RangeNode:
        +  def __init__(self, identifier=None, exp1=None, exp2=None):
        +    self.identifier = identifier
        +    self.exp1 = exp1
        +    self.exp2 = exp2
        +
        +
        +class ForNode:
        +  def __init__(self, identifier=None, sep=None, code=None):
        +    self.identifier = identifier
        +    self.sep = sep
        +    self.code = code
        +
        +
        +class ElseNode:
        +  def __init__(self, else_branch=None):
        +    self.else_branch = else_branch
        +
        +
        +class IfNode:
        +  def __init__(self, exp=None, then_branch=None, else_branch=None):
        +    self.exp = exp
        +    self.then_branch = then_branch
        +    self.else_branch = else_branch
        +
        +
        +class RawCodeNode:
        +  def __init__(self, token=None):
        +    self.raw_code = token
        +
        +
        +class LiteralDollarNode:
        +  def __init__(self, token):
        +    self.token = token
        +
        +
        +class ExpNode:
        +  def __init__(self, token, python_exp):
        +    self.token = token
        +    self.python_exp = python_exp
        +
        +
        +def PopFront(a_list):
        +  head = a_list[0]
        +  a_list[:1] = []
        +  return head
        +
        +
        +def PushFront(a_list, elem):
        +  a_list[:0] = [elem]
        +
        +
        +def PopToken(a_list, token_type=None):
        +  token = PopFront(a_list)
        +  if token_type is not None and token.token_type != token_type:
        +    print 'ERROR: %s expected at %s' % (token_type, token.start)
        +    print 'ERROR: %s found instead' % (token,)
        +    sys.exit(1)
        +
        +  return token
        +
        +
        +def PeekToken(a_list):
        +  if not a_list:
        +    return None
        +
        +  return a_list[0]
        +
        +
        +def ParseExpNode(token):
        +  python_exp = re.sub(r'([_A-Za-z]\w*)', r'self.GetValue("\1")', token.value)
        +  return ExpNode(token, python_exp)
        +
        +
        +def ParseElseNode(tokens):
        +  def Pop(token_type=None):
        +    return PopToken(tokens, token_type)
        +
        +  next = PeekToken(tokens)
        +  if not next:
        +    return None
        +  if next.token_type == '$else':
        +    Pop('$else')
        +    Pop('[[')
        +    code_node = ParseCodeNode(tokens)
        +    Pop(']]')
        +    return code_node
        +  elif next.token_type == '$elif':
        +    Pop('$elif')
        +    exp = Pop('code')
        +    Pop('[[')
        +    code_node = ParseCodeNode(tokens)
        +    Pop(']]')
        +    inner_else_node = ParseElseNode(tokens)
        +    return CodeNode([IfNode(ParseExpNode(exp), code_node, inner_else_node)])
        +  elif not next.value.strip():
        +    Pop('code')
        +    return ParseElseNode(tokens)
        +  else:
        +    return None
        +
        +
        +def ParseAtomicCodeNode(tokens):
        +  def Pop(token_type=None):
        +    return PopToken(tokens, token_type)
        +
        +  head = PopFront(tokens)
        +  t = head.token_type
        +  if t == 'code':
        +    return RawCodeNode(head)
        +  elif t == '$var':
        +    id_token = Pop('id')
        +    Pop('=')
        +    next = PeekToken(tokens)
        +    if next.token_type == 'exp':
        +      exp_token = Pop()
        +      return VarNode(id_token, ParseExpNode(exp_token))
        +    Pop('[[')
        +    code_node = ParseCodeNode(tokens)
        +    Pop(']]')
        +    return VarNode(id_token, code_node)
        +  elif t == '$for':
        +    id_token = Pop('id')
        +    next_token = PeekToken(tokens)
        +    if next_token.token_type == 'code':
        +      sep_token = next_token
        +      Pop('code')
        +    else:
        +      sep_token = None
        +    Pop('[[')
        +    code_node = ParseCodeNode(tokens)
        +    Pop(']]')
        +    return ForNode(id_token, sep_token, code_node)
        +  elif t == '$if':
        +    exp_token = Pop('code')
        +    Pop('[[')
        +    code_node = ParseCodeNode(tokens)
        +    Pop(']]')
        +    else_node = ParseElseNode(tokens)
        +    return IfNode(ParseExpNode(exp_token), code_node, else_node)
        +  elif t == '$range':
        +    id_token = Pop('id')
        +    exp1_token = Pop('exp')
        +    Pop('..')
        +    exp2_token = Pop('exp')
        +    return RangeNode(id_token, ParseExpNode(exp1_token),
        +                     ParseExpNode(exp2_token))
        +  elif t == '$id':
        +    return ParseExpNode(Token(head.start + 1, head.end, head.value[1:], 'id'))
        +  elif t == '$($)':
        +    return LiteralDollarNode(head)
        +  elif t == '$':
        +    exp_token = Pop('exp')
        +    return ParseExpNode(exp_token)
        +  elif t == '[[':
        +    code_node = ParseCodeNode(tokens)
        +    Pop(']]')
        +    return code_node
        +  else:
        +    PushFront(tokens, head)
        +    return None
        +
        +
        +def ParseCodeNode(tokens):
        +  atomic_code_list = []
        +  while True:
        +    if not tokens:
        +      break
        +    atomic_code_node = ParseAtomicCodeNode(tokens)
        +    if atomic_code_node:
        +      atomic_code_list.append(atomic_code_node)
        +    else:
        +      break
        +  return CodeNode(atomic_code_list)
        +
        +
        +def ParseToAST(pump_src_text):
        +  """Convert the given Pump source text into an AST."""
        +  tokens = list(Tokenize(pump_src_text))
        +  code_node = ParseCodeNode(tokens)
        +  return code_node
        +
        +
        +class Env:
        +  def __init__(self):
        +    self.variables = []
        +    self.ranges = []
        +
        +  def Clone(self):
        +    clone = Env()
        +    clone.variables = self.variables[:]
        +    clone.ranges = self.ranges[:]
        +    return clone
        +
        +  def PushVariable(self, var, value):
        +    # If value looks like an int, store it as an int.
        +    try:
        +      int_value = int(value)
        +      if ('%s' % int_value) == value:
        +        value = int_value
        +    except Exception:
        +      pass
        +    self.variables[:0] = [(var, value)]
        +
        +  def PopVariable(self):
        +    self.variables[:1] = []
        +
        +  def PushRange(self, var, lower, upper):
        +    self.ranges[:0] = [(var, lower, upper)]
        +
        +  def PopRange(self):
        +    self.ranges[:1] = []
        +
        +  def GetValue(self, identifier):
        +    for (var, value) in self.variables:
        +      if identifier == var:
        +        return value
        +
        +    print 'ERROR: meta variable %s is undefined.' % (identifier,)
        +    sys.exit(1)
        +
        +  def EvalExp(self, exp):
        +    try:
        +      result = eval(exp.python_exp)
        +    except Exception, e:
        +      print 'ERROR: caught exception %s: %s' % (e.__class__.__name__, e)
        +      print ('ERROR: failed to evaluate meta expression %s at %s' %
        +             (exp.python_exp, exp.token.start))
        +      sys.exit(1)
        +    return result
        +
        +  def GetRange(self, identifier):
        +    for (var, lower, upper) in self.ranges:
        +      if identifier == var:
        +        return (lower, upper)
        +
        +    print 'ERROR: range %s is undefined.' % (identifier,)
        +    sys.exit(1)
        +
        +
        +class Output:
        +  def __init__(self):
        +    self.string = ''
        +
        +  def GetLastLine(self):
        +    index = self.string.rfind('\n')
        +    if index < 0:
        +      return ''
        +
        +    return self.string[index + 1:]
        +
        +  def Append(self, s):
        +    self.string += s
        +
        +
        +def RunAtomicCode(env, node, output):
        +  if isinstance(node, VarNode):
        +    identifier = node.identifier.value.strip()
        +    result = Output()
        +    RunAtomicCode(env.Clone(), node.atomic_code, result)
        +    value = result.string
        +    env.PushVariable(identifier, value)
        +  elif isinstance(node, RangeNode):
        +    identifier = node.identifier.value.strip()
        +    lower = int(env.EvalExp(node.exp1))
        +    upper = int(env.EvalExp(node.exp2))
        +    env.PushRange(identifier, lower, upper)
        +  elif isinstance(node, ForNode):
        +    identifier = node.identifier.value.strip()
        +    if node.sep is None:
        +      sep = ''
        +    else:
        +      sep = node.sep.value
        +    (lower, upper) = env.GetRange(identifier)
        +    for i in range(lower, upper + 1):
        +      new_env = env.Clone()
        +      new_env.PushVariable(identifier, i)
        +      RunCode(new_env, node.code, output)
        +      if i != upper:
        +        output.Append(sep)
        +  elif isinstance(node, RawCodeNode):
        +    output.Append(node.raw_code.value)
        +  elif isinstance(node, IfNode):
        +    cond = env.EvalExp(node.exp)
        +    if cond:
        +      RunCode(env.Clone(), node.then_branch, output)
        +    elif node.else_branch is not None:
        +      RunCode(env.Clone(), node.else_branch, output)
        +  elif isinstance(node, ExpNode):
        +    value = env.EvalExp(node)
        +    output.Append('%s' % (value,))
        +  elif isinstance(node, LiteralDollarNode):
        +    output.Append('$')
        +  elif isinstance(node, CodeNode):
        +    RunCode(env.Clone(), node, output)
        +  else:
        +    print 'BAD'
        +    print node
        +    sys.exit(1)
        +
        +
        +def RunCode(env, code_node, output):
        +  for atomic_code in code_node.atomic_code:
        +    RunAtomicCode(env, atomic_code, output)
        +
        +
        +def IsSingleLineComment(cur_line):
        +  return '//' in cur_line
        +
        +
        +def IsInPreprocessorDirective(prev_lines, cur_line):
        +  if cur_line.lstrip().startswith('#'):
        +    return True
        +  return prev_lines and prev_lines[-1].endswith('\\')
        +
        +
        +def WrapComment(line, output):
        +  loc = line.find('//')
        +  before_comment = line[:loc].rstrip()
        +  if before_comment == '':
        +    indent = loc
        +  else:
        +    output.append(before_comment)
        +    indent = len(before_comment) - len(before_comment.lstrip())
        +  prefix = indent*' ' + '// '
        +  max_len = 80 - len(prefix)
        +  comment = line[loc + 2:].strip()
        +  segs = [seg for seg in re.split(r'(\w+\W*)', comment) if seg != '']
        +  cur_line = ''
        +  for seg in segs:
        +    if len((cur_line + seg).rstrip()) < max_len:
        +      cur_line += seg
        +    else:
        +      if cur_line.strip() != '':
        +        output.append(prefix + cur_line.rstrip())
        +      cur_line = seg.lstrip()
        +  if cur_line.strip() != '':
        +    output.append(prefix + cur_line.strip())
        +
        +
        +def WrapCode(line, line_concat, output):
        +  indent = len(line) - len(line.lstrip())
        +  prefix = indent*' '  # Prefix of the current line
        +  max_len = 80 - indent - len(line_concat)  # Maximum length of the current line
        +  new_prefix = prefix + 4*' '  # Prefix of a continuation line
        +  new_max_len = max_len - 4  # Maximum length of a continuation line
        +  # Prefers to wrap a line after a ',' or ';'.
        +  segs = [seg for seg in re.split(r'([^,;]+[,;]?)', line.strip()) if seg != '']
        +  cur_line = ''  # The current line without leading spaces.
        +  for seg in segs:
        +    # If the line is still too long, wrap at a space.
        +    while cur_line == '' and len(seg.strip()) > max_len:
        +      seg = seg.lstrip()
        +      split_at = seg.rfind(' ', 0, max_len)
        +      output.append(prefix + seg[:split_at].strip() + line_concat)
        +      seg = seg[split_at + 1:]
        +      prefix = new_prefix
        +      max_len = new_max_len
        +
        +    if len((cur_line + seg).rstrip()) < max_len:
        +      cur_line = (cur_line + seg).lstrip()
        +    else:
        +      output.append(prefix + cur_line.rstrip() + line_concat)
        +      prefix = new_prefix
        +      max_len = new_max_len
        +      cur_line = seg.lstrip()
        +  if cur_line.strip() != '':
        +    output.append(prefix + cur_line.strip())
        +
        +
        +def WrapPreprocessorDirective(line, output):
        +  WrapCode(line, ' \\', output)
        +
        +
        +def WrapPlainCode(line, output):
        +  WrapCode(line, '', output)
        +
        +
        +def IsMultiLineIWYUPragma(line):
        +  return re.search(r'/\* IWYU pragma: ', line)
        +
        +
        +def IsHeaderGuardIncludeOrOneLineIWYUPragma(line):
        +  return (re.match(r'^#(ifndef|define|endif\s*//)\s*[\w_]+\s*$', line) or
        +          re.match(r'^#include\s', line) or
        +          # Don't break IWYU pragmas, either; that causes iwyu.py problems.
        +          re.search(r'// IWYU pragma: ', line))
        +
        +
        +def WrapLongLine(line, output):
        +  line = line.rstrip()
        +  if len(line) <= 80:
        +    output.append(line)
        +  elif IsSingleLineComment(line):
        +    if IsHeaderGuardIncludeOrOneLineIWYUPragma(line):
        +      # The style guide made an exception to allow long header guard lines,
        +      # includes and IWYU pragmas.
        +      output.append(line)
        +    else:
        +      WrapComment(line, output)
        +  elif IsInPreprocessorDirective(output, line):
        +    if IsHeaderGuardIncludeOrOneLineIWYUPragma(line):
        +      # The style guide made an exception to allow long header guard lines,
        +      # includes and IWYU pragmas.
        +      output.append(line)
        +    else:
        +      WrapPreprocessorDirective(line, output)
        +  elif IsMultiLineIWYUPragma(line):
        +    output.append(line)
        +  else:
        +    WrapPlainCode(line, output)
        +
        +
        +def BeautifyCode(string):
        +  lines = string.splitlines()
        +  output = []
        +  for line in lines:
        +    WrapLongLine(line, output)
        +  output2 = [line.rstrip() for line in output]
        +  return '\n'.join(output2) + '\n'
        +
        +
        +def ConvertFromPumpSource(src_text):
        +  """Return the text generated from the given Pump source text."""
        +  ast = ParseToAST(StripMetaComments(src_text))
        +  output = Output()
        +  RunCode(Env(), ast, output)
        +  return BeautifyCode(output.string)
        +
        +
        +def main(argv):
        +  if len(argv) == 1:
        +    print __doc__
        +    sys.exit(1)
        +
        +  file_path = argv[-1]
        +  output_str = ConvertFromPumpSource(file(file_path, 'r').read())
        +  if file_path.endswith('.pump'):
        +    output_file_path = file_path[:-5]
        +  else:
        +    output_file_path = '-'
        +  if output_file_path == '-':
        +    print output_str,
        +  else:
        +    output_file = file(output_file_path, 'w')
        +    output_file.write('// This file was GENERATED by command:\n')
        +    output_file.write('//     %s %s\n' %
        +                      (os.path.basename(__file__), os.path.basename(file_path)))
        +    output_file.write('// DO NOT EDIT BY HAND!!!\n\n')
        +    output_file.write(output_str)
        +    output_file.close()
        +
        +
        +if __name__ == '__main__':
        +  main(sys.argv)
        diff --git a/lib/ann/fann/lib/googletest/scripts/release_docs.py b/lib/ann/fann/lib/googletest/scripts/release_docs.py
        new file mode 100755
        index 0000000..1291347
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/scripts/release_docs.py
        @@ -0,0 +1,158 @@
        +#!/usr/bin/env python
        +#
        +# Copyright 2013 Google Inc. All Rights Reserved.
        +#
        +# Redistribution and use in source and binary forms, with or without
        +# modification, are permitted provided that the following conditions are
        +# met:
        +#
        +#     * Redistributions of source code must retain the above copyright
        +# notice, this list of conditions and the following disclaimer.
        +#     * Redistributions in binary form must reproduce the above
        +# copyright notice, this list of conditions and the following disclaimer
        +# in the documentation and/or other materials provided with the
        +# distribution.
        +#     * Neither the name of Google Inc. nor the names of its
        +# contributors may be used to endorse or promote products derived from
        +# this software without specific prior written permission.
        +#
        +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +"""Script for branching Google Test/Mock wiki pages for a new version.
        +
        +SYNOPSIS
        +       release_docs.py NEW_RELEASE_VERSION
        +
        +       Google Test and Google Mock's external user documentation is in
        +       interlinked wiki files.  When we release a new version of
        +       Google Test or Google Mock, we need to branch the wiki files
        +       such that users of a specific version of Google Test/Mock can
        +       look up documenation relevant for that version.  This script
        +       automates that process by:
        +
        +         - branching the current wiki pages (which document the
        +           behavior of the SVN trunk head) to pages for the specified
        +           version (e.g. branching FAQ.wiki to V2_6_FAQ.wiki when
        +           NEW_RELEASE_VERSION is 2.6);
        +         - updating the links in the branched files to point to the branched
        +           version (e.g. a link in V2_6_FAQ.wiki that pointed to
        +           Primer.wiki#Anchor will now point to V2_6_Primer.wiki#Anchor).
        +
        +       NOTE: NEW_RELEASE_VERSION must be a NEW version number for
        +       which the wiki pages don't yet exist; otherwise you'll get SVN
        +       errors like "svn: Path 'V1_7_PumpManual.wiki' is not a
        +       directory" when running the script.
        +
        +EXAMPLE
        +       $ cd PATH/TO/GTEST_SVN_WORKSPACE/trunk
        +       $ scripts/release_docs.py 2.6  # create wiki pages for v2.6
        +       $ svn status                   # verify the file list
        +       $ svn diff                     # verify the file contents
        +       $ svn commit -m "release wiki pages for v2.6"
        +"""
        +
        +__author__ = 'wan@google.com (Zhanyong Wan)'
        +
        +import os
        +import re
        +import sys
        +
        +import common
        +
        +
        +# Wiki pages that shouldn't be branched for every gtest/gmock release.
        +GTEST_UNVERSIONED_WIKIS = ['DevGuide.wiki']
        +GMOCK_UNVERSIONED_WIKIS = [
        +    'DesignDoc.wiki',
        +    'DevGuide.wiki',
        +    'KnownIssues.wiki'
        +    ]
        +
        +
        +def DropWikiSuffix(wiki_filename):
        +  """Removes the .wiki suffix (if any) from the given filename."""
        +
        +  return (wiki_filename[:-len('.wiki')] if wiki_filename.endswith('.wiki')
        +          else wiki_filename)
        +
        +
        +class WikiBrancher(object):
        +  """Branches ..."""
        +
        +  def __init__(self, dot_version):
        +    self.project, svn_root_path = common.GetSvnInfo()
        +    if self.project not in ('googletest', 'googlemock'):
        +      sys.exit('This script must be run in a gtest or gmock SVN workspace.')
        +    self.wiki_dir = svn_root_path + '/wiki'
        +    # Turn '2.6' to 'V2_6_'.
        +    self.version_prefix = 'V' + dot_version.replace('.', '_') + '_'
        +    self.files_to_branch = self.GetFilesToBranch()
        +    page_names = [DropWikiSuffix(f) for f in self.files_to_branch]
        +    # A link to Foo.wiki is in one of the following forms:
        +    #   [Foo words]
        +    #   [Foo#Anchor words]
        +    #   [http://code.google.com/.../wiki/Foo words]
        +    #   [http://code.google.com/.../wiki/Foo#Anchor words]
        +    # We want to replace 'Foo' with 'V2_6_Foo' in the above cases.
        +    self.search_for_re = re.compile(
        +        # This regex matches either
        +        #   [Foo
        +        # or
        +        #   /wiki/Foo
        +        # followed by a space or a #, where Foo is the name of an
        +        # unversioned wiki page.
        +        r'(\[|/wiki/)(%s)([ #])' % '|'.join(page_names))
        +    self.replace_with = r'\1%s\2\3' % (self.version_prefix,)
        +
        +  def GetFilesToBranch(self):
        +    """Returns a list of .wiki file names that need to be branched."""
        +
        +    unversioned_wikis = (GTEST_UNVERSIONED_WIKIS if self.project == 'googletest'
        +                         else GMOCK_UNVERSIONED_WIKIS)
        +    return [f for f in os.listdir(self.wiki_dir)
        +            if (f.endswith('.wiki') and
        +                not re.match(r'^V\d', f) and  # Excluded versioned .wiki files.
        +                f not in unversioned_wikis)]
        +
        +  def BranchFiles(self):
        +    """Branches the .wiki files needed to be branched."""
        +
        +    print 'Branching %d .wiki files:' % (len(self.files_to_branch),)
        +    os.chdir(self.wiki_dir)
        +    for f in self.files_to_branch:
        +      command = 'svn cp %s %s%s' % (f, self.version_prefix, f)
        +      print command
        +      os.system(command)
        +
        +  def UpdateLinksInBranchedFiles(self):
        +
        +    for f in self.files_to_branch:
        +      source_file = os.path.join(self.wiki_dir, f)
        +      versioned_file = os.path.join(self.wiki_dir, self.version_prefix + f)
        +      print 'Updating links in %s.' % (versioned_file,)
        +      text = file(source_file, 'r').read()
        +      new_text = self.search_for_re.sub(self.replace_with, text)
        +      file(versioned_file, 'w').write(new_text)
        +
        +
        +def main():
        +  if len(sys.argv) != 2:
        +    sys.exit(__doc__)
        +
        +  brancher = WikiBrancher(sys.argv[1])
        +  brancher.BranchFiles()
        +  brancher.UpdateLinksInBranchedFiles()
        +
        +
        +if __name__ == '__main__':
        +  main()
        diff --git a/lib/ann/fann/lib/googletest/scripts/upload.py b/lib/ann/fann/lib/googletest/scripts/upload.py
        new file mode 100755
        index 0000000..6e6f9a1
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/scripts/upload.py
        @@ -0,0 +1,1387 @@
        +#!/usr/bin/env python
        +#
        +# Copyright 2007 Google Inc.
        +#
        +# Licensed under the Apache License, Version 2.0 (the "License");
        +# you may not use this file except in compliance with the License.
        +# You may obtain a copy of the License at
        +#
        +#     http://www.apache.org/licenses/LICENSE-2.0
        +#
        +# Unless required by applicable law or agreed to in writing, software
        +# distributed under the License is distributed on an "AS IS" BASIS,
        +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
        +# See the License for the specific language governing permissions and
        +# limitations under the License.
        +
        +"""Tool for uploading diffs from a version control system to the codereview app.
        +
        +Usage summary: upload.py [options] [-- diff_options]
        +
        +Diff options are passed to the diff command of the underlying system.
        +
        +Supported version control systems:
        +  Git
        +  Mercurial
        +  Subversion
        +
        +It is important for Git/Mercurial users to specify a tree/node/branch to diff
        +against by using the '--rev' option.
        +"""
        +# This code is derived from appcfg.py in the App Engine SDK (open source),
        +# and from ASPN recipe #146306.
        +
        +import cookielib
        +import getpass
        +import logging
        +import md5
        +import mimetypes
        +import optparse
        +import os
        +import re
        +import socket
        +import subprocess
        +import sys
        +import urllib
        +import urllib2
        +import urlparse
        +
        +try:
        +  import readline
        +except ImportError:
        +  pass
        +
        +# The logging verbosity:
        +#  0: Errors only.
        +#  1: Status messages.
        +#  2: Info logs.
        +#  3: Debug logs.
        +verbosity = 1
        +
        +# Max size of patch or base file.
        +MAX_UPLOAD_SIZE = 900 * 1024
        +
        +
        +def GetEmail(prompt):
        +  """Prompts the user for their email address and returns it.
        +
        +  The last used email address is saved to a file and offered up as a suggestion
        +  to the user. If the user presses enter without typing in anything the last
        +  used email address is used. If the user enters a new address, it is saved
        +  for next time we prompt.
        +
        +  """
        +  last_email_file_name = os.path.expanduser("~/.last_codereview_email_address")
        +  last_email = ""
        +  if os.path.exists(last_email_file_name):
        +    try:
        +      last_email_file = open(last_email_file_name, "r")
        +      last_email = last_email_file.readline().strip("\n")
        +      last_email_file.close()
        +      prompt += " [%s]" % last_email
        +    except IOError, e:
        +      pass
        +  email = raw_input(prompt + ": ").strip()
        +  if email:
        +    try:
        +      last_email_file = open(last_email_file_name, "w")
        +      last_email_file.write(email)
        +      last_email_file.close()
        +    except IOError, e:
        +      pass
        +  else:
        +    email = last_email
        +  return email
        +
        +
        +def StatusUpdate(msg):
        +  """Print a status message to stdout.
        +
        +  If 'verbosity' is greater than 0, print the message.
        +
        +  Args:
        +    msg: The string to print.
        +  """
        +  if verbosity > 0:
        +    print msg
        +
        +
        +def ErrorExit(msg):
        +  """Print an error message to stderr and exit."""
        +  print >>sys.stderr, msg
        +  sys.exit(1)
        +
        +
        +class ClientLoginError(urllib2.HTTPError):
        +  """Raised to indicate there was an error authenticating with ClientLogin."""
        +
        +  def __init__(self, url, code, msg, headers, args):
        +    urllib2.HTTPError.__init__(self, url, code, msg, headers, None)
        +    self.args = args
        +    self.reason = args["Error"]
        +
        +
        +class AbstractRpcServer(object):
        +  """Provides a common interface for a simple RPC server."""
        +
        +  def __init__(self, host, auth_function, host_override=None, extra_headers={},
        +               save_cookies=False):
        +    """Creates a new HttpRpcServer.
        +
        +    Args:
        +      host: The host to send requests to.
        +      auth_function: A function that takes no arguments and returns an
        +        (email, password) tuple when called. Will be called if authentication
        +        is required.
        +      host_override: The host header to send to the server (defaults to host).
        +      extra_headers: A dict of extra headers to append to every request.
        +      save_cookies: If True, save the authentication cookies to local disk.
        +        If False, use an in-memory cookiejar instead.  Subclasses must
        +        implement this functionality.  Defaults to False.
        +    """
        +    self.host = host
        +    self.host_override = host_override
        +    self.auth_function = auth_function
        +    self.authenticated = False
        +    self.extra_headers = extra_headers
        +    self.save_cookies = save_cookies
        +    self.opener = self._GetOpener()
        +    if self.host_override:
        +      logging.info("Server: %s; Host: %s", self.host, self.host_override)
        +    else:
        +      logging.info("Server: %s", self.host)
        +
        +  def _GetOpener(self):
        +    """Returns an OpenerDirector for making HTTP requests.
        +
        +    Returns:
        +      A urllib2.OpenerDirector object.
        +    """
        +    raise NotImplementedError()
        +
        +  def _CreateRequest(self, url, data=None):
        +    """Creates a new urllib request."""
        +    logging.debug("Creating request for: '%s' with payload:\n%s", url, data)
        +    req = urllib2.Request(url, data=data)
        +    if self.host_override:
        +      req.add_header("Host", self.host_override)
        +    for key, value in self.extra_headers.iteritems():
        +      req.add_header(key, value)
        +    return req
        +
        +  def _GetAuthToken(self, email, password):
        +    """Uses ClientLogin to authenticate the user, returning an auth token.
        +
        +    Args:
        +      email:    The user's email address
        +      password: The user's password
        +
        +    Raises:
        +      ClientLoginError: If there was an error authenticating with ClientLogin.
        +      HTTPError: If there was some other form of HTTP error.
        +
        +    Returns:
        +      The authentication token returned by ClientLogin.
        +    """
        +    account_type = "GOOGLE"
        +    if self.host.endswith(".google.com"):
        +      # Needed for use inside Google.
        +      account_type = "HOSTED"
        +    req = self._CreateRequest(
        +        url="https://www.google.com/accounts/ClientLogin",
        +        data=urllib.urlencode({
        +            "Email": email,
        +            "Passwd": password,
        +            "service": "ah",
        +            "source": "rietveld-codereview-upload",
        +            "accountType": account_type,
        +        }),
        +    )
        +    try:
        +      response = self.opener.open(req)
        +      response_body = response.read()
        +      response_dict = dict(x.split("=")
        +                           for x in response_body.split("\n") if x)
        +      return response_dict["Auth"]
        +    except urllib2.HTTPError, e:
        +      if e.code == 403:
        +        body = e.read()
        +        response_dict = dict(x.split("=", 1) for x in body.split("\n") if x)
        +        raise ClientLoginError(req.get_full_url(), e.code, e.msg,
        +                               e.headers, response_dict)
        +      else:
        +        raise
        +
        +  def _GetAuthCookie(self, auth_token):
        +    """Fetches authentication cookies for an authentication token.
        +
        +    Args:
        +      auth_token: The authentication token returned by ClientLogin.
        +
        +    Raises:
        +      HTTPError: If there was an error fetching the authentication cookies.
        +    """
        +    # This is a dummy value to allow us to identify when we're successful.
        +    continue_location = "http://localhost/"
        +    args = {"continue": continue_location, "auth": auth_token}
        +    req = self._CreateRequest("http://%s/_ah/login?%s" %
        +                              (self.host, urllib.urlencode(args)))
        +    try:
        +      response = self.opener.open(req)
        +    except urllib2.HTTPError, e:
        +      response = e
        +    if (response.code != 302 or
        +        response.info()["location"] != continue_location):
        +      raise urllib2.HTTPError(req.get_full_url(), response.code, response.msg,
        +                              response.headers, response.fp)
        +    self.authenticated = True
        +
        +  def _Authenticate(self):
        +    """Authenticates the user.
        +
        +    The authentication process works as follows:
        +     1) We get a username and password from the user
        +     2) We use ClientLogin to obtain an AUTH token for the user
        +        (see http://code.google.com/apis/accounts/AuthForInstalledApps.html).
        +     3) We pass the auth token to /_ah/login on the server to obtain an
        +        authentication cookie. If login was successful, it tries to redirect
        +        us to the URL we provided.
        +
        +    If we attempt to access the upload API without first obtaining an
        +    authentication cookie, it returns a 401 response and directs us to
        +    authenticate ourselves with ClientLogin.
        +    """
        +    for i in range(3):
        +      credentials = self.auth_function()
        +      try:
        +        auth_token = self._GetAuthToken(credentials[0], credentials[1])
        +      except ClientLoginError, e:
        +        if e.reason == "BadAuthentication":
        +          print >>sys.stderr, "Invalid username or password."
        +          continue
        +        if e.reason == "CaptchaRequired":
        +          print >>sys.stderr, (
        +              "Please go to\n"
        +              "https://www.google.com/accounts/DisplayUnlockCaptcha\n"
        +              "and verify you are a human.  Then try again.")
        +          break
        +        if e.reason == "NotVerified":
        +          print >>sys.stderr, "Account not verified."
        +          break
        +        if e.reason == "TermsNotAgreed":
        +          print >>sys.stderr, "User has not agreed to TOS."
        +          break
        +        if e.reason == "AccountDeleted":
        +          print >>sys.stderr, "The user account has been deleted."
        +          break
        +        if e.reason == "AccountDisabled":
        +          print >>sys.stderr, "The user account has been disabled."
        +          break
        +        if e.reason == "ServiceDisabled":
        +          print >>sys.stderr, ("The user's access to the service has been "
        +                               "disabled.")
        +          break
        +        if e.reason == "ServiceUnavailable":
        +          print >>sys.stderr, "The service is not available; try again later."
        +          break
        +        raise
        +      self._GetAuthCookie(auth_token)
        +      return
        +
        +  def Send(self, request_path, payload=None,
        +           content_type="application/octet-stream",
        +           timeout=None,
        +           **kwargs):
        +    """Sends an RPC and returns the response.
        +
        +    Args:
        +      request_path: The path to send the request to, eg /api/appversion/create.
        +      payload: The body of the request, or None to send an empty request.
        +      content_type: The Content-Type header to use.
        +      timeout: timeout in seconds; default None i.e. no timeout.
        +        (Note: for large requests on OS X, the timeout doesn't work right.)
        +      kwargs: Any keyword arguments are converted into query string parameters.
        +
        +    Returns:
        +      The response body, as a string.
        +    """
        +    # TODO: Don't require authentication.  Let the server say
        +    # whether it is necessary.
        +    if not self.authenticated:
        +      self._Authenticate()
        +
        +    old_timeout = socket.getdefaulttimeout()
        +    socket.setdefaulttimeout(timeout)
        +    try:
        +      tries = 0
        +      while True:
        +        tries += 1
        +        args = dict(kwargs)
        +        url = "http://%s%s" % (self.host, request_path)
        +        if args:
        +          url += "?" + urllib.urlencode(args)
        +        req = self._CreateRequest(url=url, data=payload)
        +        req.add_header("Content-Type", content_type)
        +        try:
        +          f = self.opener.open(req)
        +          response = f.read()
        +          f.close()
        +          return response
        +        except urllib2.HTTPError, e:
        +          if tries > 3:
        +            raise
        +          elif e.code == 401:
        +            self._Authenticate()
        +##           elif e.code >= 500 and e.code < 600:
        +##             # Server Error - try again.
        +##             continue
        +          else:
        +            raise
        +    finally:
        +      socket.setdefaulttimeout(old_timeout)
        +
        +
        +class HttpRpcServer(AbstractRpcServer):
        +  """Provides a simplified RPC-style interface for HTTP requests."""
        +
        +  def _Authenticate(self):
        +    """Save the cookie jar after authentication."""
        +    super(HttpRpcServer, self)._Authenticate()
        +    if self.save_cookies:
        +      StatusUpdate("Saving authentication cookies to %s" % self.cookie_file)
        +      self.cookie_jar.save()
        +
        +  def _GetOpener(self):
        +    """Returns an OpenerDirector that supports cookies and ignores redirects.
        +
        +    Returns:
        +      A urllib2.OpenerDirector object.
        +    """
        +    opener = urllib2.OpenerDirector()
        +    opener.add_handler(urllib2.ProxyHandler())
        +    opener.add_handler(urllib2.UnknownHandler())
        +    opener.add_handler(urllib2.HTTPHandler())
        +    opener.add_handler(urllib2.HTTPDefaultErrorHandler())
        +    opener.add_handler(urllib2.HTTPSHandler())
        +    opener.add_handler(urllib2.HTTPErrorProcessor())
        +    if self.save_cookies:
        +      self.cookie_file = os.path.expanduser("~/.codereview_upload_cookies")
        +      self.cookie_jar = cookielib.MozillaCookieJar(self.cookie_file)
        +      if os.path.exists(self.cookie_file):
        +        try:
        +          self.cookie_jar.load()
        +          self.authenticated = True
        +          StatusUpdate("Loaded authentication cookies from %s" %
        +                       self.cookie_file)
        +        except (cookielib.LoadError, IOError):
        +          # Failed to load cookies - just ignore them.
        +          pass
        +      else:
        +        # Create an empty cookie file with mode 600
        +        fd = os.open(self.cookie_file, os.O_CREAT, 0600)
        +        os.close(fd)
        +      # Always chmod the cookie file
        +      os.chmod(self.cookie_file, 0600)
        +    else:
        +      # Don't save cookies across runs of update.py.
        +      self.cookie_jar = cookielib.CookieJar()
        +    opener.add_handler(urllib2.HTTPCookieProcessor(self.cookie_jar))
        +    return opener
        +
        +
        +parser = optparse.OptionParser(usage="%prog [options] [-- diff_options]")
        +parser.add_option("-y", "--assume_yes", action="store_true",
        +                  dest="assume_yes", default=False,
        +                  help="Assume that the answer to yes/no questions is 'yes'.")
        +# Logging
        +group = parser.add_option_group("Logging options")
        +group.add_option("-q", "--quiet", action="store_const", const=0,
        +                 dest="verbose", help="Print errors only.")
        +group.add_option("-v", "--verbose", action="store_const", const=2,
        +                 dest="verbose", default=1,
        +                 help="Print info level logs (default).")
        +group.add_option("--noisy", action="store_const", const=3,
        +                 dest="verbose", help="Print all logs.")
        +# Review server
        +group = parser.add_option_group("Review server options")
        +group.add_option("-s", "--server", action="store", dest="server",
        +                 default="codereview.appspot.com",
        +                 metavar="SERVER",
        +                 help=("The server to upload to. The format is host[:port]. "
        +                       "Defaults to 'codereview.appspot.com'."))
        +group.add_option("-e", "--email", action="store", dest="email",
        +                 metavar="EMAIL", default=None,
        +                 help="The username to use. Will prompt if omitted.")
        +group.add_option("-H", "--host", action="store", dest="host",
        +                 metavar="HOST", default=None,
        +                 help="Overrides the Host header sent with all RPCs.")
        +group.add_option("--no_cookies", action="store_false",
        +                 dest="save_cookies", default=True,
        +                 help="Do not save authentication cookies to local disk.")
        +# Issue
        +group = parser.add_option_group("Issue options")
        +group.add_option("-d", "--description", action="store", dest="description",
        +                 metavar="DESCRIPTION", default=None,
        +                 help="Optional description when creating an issue.")
        +group.add_option("-f", "--description_file", action="store",
        +                 dest="description_file", metavar="DESCRIPTION_FILE",
        +                 default=None,
        +                 help="Optional path of a file that contains "
        +                      "the description when creating an issue.")
        +group.add_option("-r", "--reviewers", action="store", dest="reviewers",
        +                 metavar="REVIEWERS", default=None,
        +                 help="Add reviewers (comma separated email addresses).")
        +group.add_option("--cc", action="store", dest="cc",
        +                 metavar="CC", default=None,
        +                 help="Add CC (comma separated email addresses).")
        +# Upload options
        +group = parser.add_option_group("Patch options")
        +group.add_option("-m", "--message", action="store", dest="message",
        +                 metavar="MESSAGE", default=None,
        +                 help="A message to identify the patch. "
        +                      "Will prompt if omitted.")
        +group.add_option("-i", "--issue", type="int", action="store",
        +                 metavar="ISSUE", default=None,
        +                 help="Issue number to which to add. Defaults to new issue.")
        +group.add_option("--download_base", action="store_true",
        +                 dest="download_base", default=False,
        +                 help="Base files will be downloaded by the server "
        +                 "(side-by-side diffs may not work on files with CRs).")
        +group.add_option("--rev", action="store", dest="revision",
        +                 metavar="REV", default=None,
        +                 help="Branch/tree/revision to diff against (used by DVCS).")
        +group.add_option("--send_mail", action="store_true",
        +                 dest="send_mail", default=False,
        +                 help="Send notification email to reviewers.")
        +
        +
        +def GetRpcServer(options):
        +  """Returns an instance of an AbstractRpcServer.
        +
        +  Returns:
        +    A new AbstractRpcServer, on which RPC calls can be made.
        +  """
        +
        +  rpc_server_class = HttpRpcServer
        +
        +  def GetUserCredentials():
        +    """Prompts the user for a username and password."""
        +    email = options.email
        +    if email is None:
        +      email = GetEmail("Email (login for uploading to %s)" % options.server)
        +    password = getpass.getpass("Password for %s: " % email)
        +    return (email, password)
        +
        +  # If this is the dev_appserver, use fake authentication.
        +  host = (options.host or options.server).lower()
        +  if host == "localhost" or host.startswith("localhost:"):
        +    email = options.email
        +    if email is None:
        +      email = "test@example.com"
        +      logging.info("Using debug user %s.  Override with --email" % email)
        +    server = rpc_server_class(
        +        options.server,
        +        lambda: (email, "password"),
        +        host_override=options.host,
        +        extra_headers={"Cookie":
        +                       'dev_appserver_login="%s:False"' % email},
        +        save_cookies=options.save_cookies)
        +    # Don't try to talk to ClientLogin.
        +    server.authenticated = True
        +    return server
        +
        +  return rpc_server_class(options.server, GetUserCredentials,
        +                          host_override=options.host,
        +                          save_cookies=options.save_cookies)
        +
        +
        +def EncodeMultipartFormData(fields, files):
        +  """Encode form fields for multipart/form-data.
        +
        +  Args:
        +    fields: A sequence of (name, value) elements for regular form fields.
        +    files: A sequence of (name, filename, value) elements for data to be
        +           uploaded as files.
        +  Returns:
        +    (content_type, body) ready for httplib.HTTP instance.
        +
        +  Source:
        +    http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/146306
        +  """
        +  BOUNDARY = '-M-A-G-I-C---B-O-U-N-D-A-R-Y-'
        +  CRLF = '\r\n'
        +  lines = []
        +  for (key, value) in fields:
        +    lines.append('--' + BOUNDARY)
        +    lines.append('Content-Disposition: form-data; name="%s"' % key)
        +    lines.append('')
        +    lines.append(value)
        +  for (key, filename, value) in files:
        +    lines.append('--' + BOUNDARY)
        +    lines.append('Content-Disposition: form-data; name="%s"; filename="%s"' %
        +             (key, filename))
        +    lines.append('Content-Type: %s' % GetContentType(filename))
        +    lines.append('')
        +    lines.append(value)
        +  lines.append('--' + BOUNDARY + '--')
        +  lines.append('')
        +  body = CRLF.join(lines)
        +  content_type = 'multipart/form-data; boundary=%s' % BOUNDARY
        +  return content_type, body
        +
        +
        +def GetContentType(filename):
        +  """Helper to guess the content-type from the filename."""
        +  return mimetypes.guess_type(filename)[0] or 'application/octet-stream'
        +
        +
        +# Use a shell for subcommands on Windows to get a PATH search.
        +use_shell = sys.platform.startswith("win")
        +
        +def RunShellWithReturnCode(command, print_output=False,
        +                           universal_newlines=True):
        +  """Executes a command and returns the output from stdout and the return code.
        +
        +  Args:
        +    command: Command to execute.
        +    print_output: If True, the output is printed to stdout.
        +                  If False, both stdout and stderr are ignored.
        +    universal_newlines: Use universal_newlines flag (default: True).
        +
        +  Returns:
        +    Tuple (output, return code)
        +  """
        +  logging.info("Running %s", command)
        +  p = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE,
        +                       shell=use_shell, universal_newlines=universal_newlines)
        +  if print_output:
        +    output_array = []
        +    while True:
        +      line = p.stdout.readline()
        +      if not line:
        +        break
        +      print line.strip("\n")
        +      output_array.append(line)
        +    output = "".join(output_array)
        +  else:
        +    output = p.stdout.read()
        +  p.wait()
        +  errout = p.stderr.read()
        +  if print_output and errout:
        +    print >>sys.stderr, errout
        +  p.stdout.close()
        +  p.stderr.close()
        +  return output, p.returncode
        +
        +
        +def RunShell(command, silent_ok=False, universal_newlines=True,
        +             print_output=False):
        +  data, retcode = RunShellWithReturnCode(command, print_output,
        +                                         universal_newlines)
        +  if retcode:
        +    ErrorExit("Got error status from %s:\n%s" % (command, data))
        +  if not silent_ok and not data:
        +    ErrorExit("No output from %s" % command)
        +  return data
        +
        +
        +class VersionControlSystem(object):
        +  """Abstract base class providing an interface to the VCS."""
        +
        +  def __init__(self, options):
        +    """Constructor.
        +
        +    Args:
        +      options: Command line options.
        +    """
        +    self.options = options
        +
        +  def GenerateDiff(self, args):
        +    """Return the current diff as a string.
        +
        +    Args:
        +      args: Extra arguments to pass to the diff command.
        +    """
        +    raise NotImplementedError(
        +        "abstract method -- subclass %s must override" % self.__class__)
        +
        +  def GetUnknownFiles(self):
        +    """Return a list of files unknown to the VCS."""
        +    raise NotImplementedError(
        +        "abstract method -- subclass %s must override" % self.__class__)
        +
        +  def CheckForUnknownFiles(self):
        +    """Show an "are you sure?" prompt if there are unknown files."""
        +    unknown_files = self.GetUnknownFiles()
        +    if unknown_files:
        +      print "The following files are not added to version control:"
        +      for line in unknown_files:
        +        print line
        +      prompt = "Are you sure to continue?(y/N) "
        +      answer = raw_input(prompt).strip()
        +      if answer != "y":
        +        ErrorExit("User aborted")
        +
        +  def GetBaseFile(self, filename):
        +    """Get the content of the upstream version of a file.
        +
        +    Returns:
        +      A tuple (base_content, new_content, is_binary, status)
        +        base_content: The contents of the base file.
        +        new_content: For text files, this is empty.  For binary files, this is
        +          the contents of the new file, since the diff output won't contain
        +          information to reconstruct the current file.
        +        is_binary: True iff the file is binary.
        +        status: The status of the file.
        +    """
        +
        +    raise NotImplementedError(
        +        "abstract method -- subclass %s must override" % self.__class__)
        +
        +
        +  def GetBaseFiles(self, diff):
        +    """Helper that calls GetBase file for each file in the patch.
        +
        +    Returns:
        +      A dictionary that maps from filename to GetBaseFile's tuple.  Filenames
        +      are retrieved based on lines that start with "Index:" or
        +      "Property changes on:".
        +    """
        +    files = {}
        +    for line in diff.splitlines(True):
        +      if line.startswith('Index:') or line.startswith('Property changes on:'):
        +        unused, filename = line.split(':', 1)
        +        # On Windows if a file has property changes its filename uses '\'
        +        # instead of '/'.
        +        filename = filename.strip().replace('\\', '/')
        +        files[filename] = self.GetBaseFile(filename)
        +    return files
        +
        +
        +  def UploadBaseFiles(self, issue, rpc_server, patch_list, patchset, options,
        +                      files):
        +    """Uploads the base files (and if necessary, the current ones as well)."""
        +
        +    def UploadFile(filename, file_id, content, is_binary, status, is_base):
        +      """Uploads a file to the server."""
        +      file_too_large = False
        +      if is_base:
        +        type = "base"
        +      else:
        +        type = "current"
        +      if len(content) > MAX_UPLOAD_SIZE:
        +        print ("Not uploading the %s file for %s because it's too large." %
        +               (type, filename))
        +        file_too_large = True
        +        content = ""
        +      checksum = md5.new(content).hexdigest()
        +      if options.verbose > 0 and not file_too_large:
        +        print "Uploading %s file for %s" % (type, filename)
        +      url = "/%d/upload_content/%d/%d" % (int(issue), int(patchset), file_id)
        +      form_fields = [("filename", filename),
        +                     ("status", status),
        +                     ("checksum", checksum),
        +                     ("is_binary", str(is_binary)),
        +                     ("is_current", str(not is_base)),
        +                    ]
        +      if file_too_large:
        +        form_fields.append(("file_too_large", "1"))
        +      if options.email:
        +        form_fields.append(("user", options.email))
        +      ctype, body = EncodeMultipartFormData(form_fields,
        +                                            [("data", filename, content)])
        +      response_body = rpc_server.Send(url, body,
        +                                      content_type=ctype)
        +      if not response_body.startswith("OK"):
        +        StatusUpdate("  --> %s" % response_body)
        +        sys.exit(1)
        +
        +    patches = dict()
        +    [patches.setdefault(v, k) for k, v in patch_list]
        +    for filename in patches.keys():
        +      base_content, new_content, is_binary, status = files[filename]
        +      file_id_str = patches.get(filename)
        +      if file_id_str.find("nobase") != -1:
        +        base_content = None
        +        file_id_str = file_id_str[file_id_str.rfind("_") + 1:]
        +      file_id = int(file_id_str)
        +      if base_content != None:
        +        UploadFile(filename, file_id, base_content, is_binary, status, True)
        +      if new_content != None:
        +        UploadFile(filename, file_id, new_content, is_binary, status, False)
        +
        +  def IsImage(self, filename):
        +    """Returns true if the filename has an image extension."""
        +    mimetype =  mimetypes.guess_type(filename)[0]
        +    if not mimetype:
        +      return False
        +    return mimetype.startswith("image/")
        +
        +
        +class SubversionVCS(VersionControlSystem):
        +  """Implementation of the VersionControlSystem interface for Subversion."""
        +
        +  def __init__(self, options):
        +    super(SubversionVCS, self).__init__(options)
        +    if self.options.revision:
        +      match = re.match(r"(\d+)(:(\d+))?", self.options.revision)
        +      if not match:
        +        ErrorExit("Invalid Subversion revision %s." % self.options.revision)
        +      self.rev_start = match.group(1)
        +      self.rev_end = match.group(3)
        +    else:
        +      self.rev_start = self.rev_end = None
        +    # Cache output from "svn list -r REVNO dirname".
        +    # Keys: dirname, Values: 2-tuple (ouput for start rev and end rev).
        +    self.svnls_cache = {}
        +    # SVN base URL is required to fetch files deleted in an older revision.
        +    # Result is cached to not guess it over and over again in GetBaseFile().
        +    required = self.options.download_base or self.options.revision is not None
        +    self.svn_base = self._GuessBase(required)
        +
        +  def GuessBase(self, required):
        +    """Wrapper for _GuessBase."""
        +    return self.svn_base
        +
        +  def _GuessBase(self, required):
        +    """Returns the SVN base URL.
        +
        +    Args:
        +      required: If true, exits if the url can't be guessed, otherwise None is
        +        returned.
        +    """
        +    info = RunShell(["svn", "info"])
        +    for line in info.splitlines():
        +      words = line.split()
        +      if len(words) == 2 and words[0] == "URL:":
        +        url = words[1]
        +        scheme, netloc, path, params, query, fragment = urlparse.urlparse(url)
        +        username, netloc = urllib.splituser(netloc)
        +        if username:
        +          logging.info("Removed username from base URL")
        +        if netloc.endswith("svn.python.org"):
        +          if netloc == "svn.python.org":
        +            if path.startswith("/projects/"):
        +              path = path[9:]
        +          elif netloc != "pythondev@svn.python.org":
        +            ErrorExit("Unrecognized Python URL: %s" % url)
        +          base = "http://svn.python.org/view/*checkout*%s/" % path
        +          logging.info("Guessed Python base = %s", base)
        +        elif netloc.endswith("svn.collab.net"):
        +          if path.startswith("/repos/"):
        +            path = path[6:]
        +          base = "http://svn.collab.net/viewvc/*checkout*%s/" % path
        +          logging.info("Guessed CollabNet base = %s", base)
        +        elif netloc.endswith(".googlecode.com"):
        +          path = path + "/"
        +          base = urlparse.urlunparse(("http", netloc, path, params,
        +                                      query, fragment))
        +          logging.info("Guessed Google Code base = %s", base)
        +        else:
        +          path = path + "/"
        +          base = urlparse.urlunparse((scheme, netloc, path, params,
        +                                      query, fragment))
        +          logging.info("Guessed base = %s", base)
        +        return base
        +    if required:
        +      ErrorExit("Can't find URL in output from svn info")
        +    return None
        +
        +  def GenerateDiff(self, args):
        +    cmd = ["svn", "diff"]
        +    if self.options.revision:
        +      cmd += ["-r", self.options.revision]
        +    cmd.extend(args)
        +    data = RunShell(cmd)
        +    count = 0
        +    for line in data.splitlines():
        +      if line.startswith("Index:") or line.startswith("Property changes on:"):
        +        count += 1
        +        logging.info(line)
        +    if not count:
        +      ErrorExit("No valid patches found in output from svn diff")
        +    return data
        +
        +  def _CollapseKeywords(self, content, keyword_str):
        +    """Collapses SVN keywords."""
        +    # svn cat translates keywords but svn diff doesn't. As a result of this
        +    # behavior patching.PatchChunks() fails with a chunk mismatch error.
        +    # This part was originally written by the Review Board development team
        +    # who had the same problem (http://reviews.review-board.org/r/276/).
        +    # Mapping of keywords to known aliases
        +    svn_keywords = {
        +      # Standard keywords
        +      'Date':                ['Date', 'LastChangedDate'],
        +      'Revision':            ['Revision', 'LastChangedRevision', 'Rev'],
        +      'Author':              ['Author', 'LastChangedBy'],
        +      'HeadURL':             ['HeadURL', 'URL'],
        +      'Id':                  ['Id'],
        +
        +      # Aliases
        +      'LastChangedDate':     ['LastChangedDate', 'Date'],
        +      'LastChangedRevision': ['LastChangedRevision', 'Rev', 'Revision'],
        +      'LastChangedBy':       ['LastChangedBy', 'Author'],
        +      'URL':                 ['URL', 'HeadURL'],
        +    }
        +
        +    def repl(m):
        +       if m.group(2):
        +         return "$%s::%s$" % (m.group(1), " " * len(m.group(3)))
        +       return "$%s$" % m.group(1)
        +    keywords = [keyword
        +                for name in keyword_str.split(" ")
        +                for keyword in svn_keywords.get(name, [])]
        +    return re.sub(r"\$(%s):(:?)([^\$]+)\$" % '|'.join(keywords), repl, content)
        +
        +  def GetUnknownFiles(self):
        +    status = RunShell(["svn", "status", "--ignore-externals"], silent_ok=True)
        +    unknown_files = []
        +    for line in status.split("\n"):
        +      if line and line[0] == "?":
        +        unknown_files.append(line)
        +    return unknown_files
        +
        +  def ReadFile(self, filename):
        +    """Returns the contents of a file."""
        +    file = open(filename, 'rb')
        +    result = ""
        +    try:
        +      result = file.read()
        +    finally:
        +      file.close()
        +    return result
        +
        +  def GetStatus(self, filename):
        +    """Returns the status of a file."""
        +    if not self.options.revision:
        +      status = RunShell(["svn", "status", "--ignore-externals", filename])
        +      if not status:
        +        ErrorExit("svn status returned no output for %s" % filename)
        +      status_lines = status.splitlines()
        +      # If file is in a cl, the output will begin with
        +      # "\n--- Changelist 'cl_name':\n".  See
        +      # http://svn.collab.net/repos/svn/trunk/notes/changelist-design.txt
        +      if (len(status_lines) == 3 and
        +          not status_lines[0] and
        +          status_lines[1].startswith("--- Changelist")):
        +        status = status_lines[2]
        +      else:
        +        status = status_lines[0]
        +    # If we have a revision to diff against we need to run "svn list"
        +    # for the old and the new revision and compare the results to get
        +    # the correct status for a file.
        +    else:
        +      dirname, relfilename = os.path.split(filename)
        +      if dirname not in self.svnls_cache:
        +        cmd = ["svn", "list", "-r", self.rev_start, dirname or "."]
        +        out, returncode = RunShellWithReturnCode(cmd)
        +        if returncode:
        +          ErrorExit("Failed to get status for %s." % filename)
        +        old_files = out.splitlines()
        +        args = ["svn", "list"]
        +        if self.rev_end:
        +          args += ["-r", self.rev_end]
        +        cmd = args + [dirname or "."]
        +        out, returncode = RunShellWithReturnCode(cmd)
        +        if returncode:
        +          ErrorExit("Failed to run command %s" % cmd)
        +        self.svnls_cache[dirname] = (old_files, out.splitlines())
        +      old_files, new_files = self.svnls_cache[dirname]
        +      if relfilename in old_files and relfilename not in new_files:
        +        status = "D   "
        +      elif relfilename in old_files and relfilename in new_files:
        +        status = "M   "
        +      else:
        +        status = "A   "
        +    return status
        +
        +  def GetBaseFile(self, filename):
        +    status = self.GetStatus(filename)
        +    base_content = None
        +    new_content = None
        +
        +    # If a file is copied its status will be "A  +", which signifies
        +    # "addition-with-history".  See "svn st" for more information.  We need to
        +    # upload the original file or else diff parsing will fail if the file was
        +    # edited.
        +    if status[0] == "A" and status[3] != "+":
        +      # We'll need to upload the new content if we're adding a binary file
        +      # since diff's output won't contain it.
        +      mimetype = RunShell(["svn", "propget", "svn:mime-type", filename],
        +                          silent_ok=True)
        +      base_content = ""
        +      is_binary = mimetype and not mimetype.startswith("text/")
        +      if is_binary and self.IsImage(filename):
        +        new_content = self.ReadFile(filename)
        +    elif (status[0] in ("M", "D", "R") or
        +          (status[0] == "A" and status[3] == "+") or  # Copied file.
        +          (status[0] == " " and status[1] == "M")):  # Property change.
        +      args = []
        +      if self.options.revision:
        +        url = "%s/%s@%s" % (self.svn_base, filename, self.rev_start)
        +      else:
        +        # Don't change filename, it's needed later.
        +        url = filename
        +        args += ["-r", "BASE"]
        +      cmd = ["svn"] + args + ["propget", "svn:mime-type", url]
        +      mimetype, returncode = RunShellWithReturnCode(cmd)
        +      if returncode:
        +        # File does not exist in the requested revision.
        +        # Reset mimetype, it contains an error message.
        +        mimetype = ""
        +      get_base = False
        +      is_binary = mimetype and not mimetype.startswith("text/")
        +      if status[0] == " ":
        +        # Empty base content just to force an upload.
        +        base_content = ""
        +      elif is_binary:
        +        if self.IsImage(filename):
        +          get_base = True
        +          if status[0] == "M":
        +            if not self.rev_end:
        +              new_content = self.ReadFile(filename)
        +            else:
        +              url = "%s/%s@%s" % (self.svn_base, filename, self.rev_end)
        +              new_content = RunShell(["svn", "cat", url],
        +                                     universal_newlines=True, silent_ok=True)
        +        else:
        +          base_content = ""
        +      else:
        +        get_base = True
        +
        +      if get_base:
        +        if is_binary:
        +          universal_newlines = False
        +        else:
        +          universal_newlines = True
        +        if self.rev_start:
        +          # "svn cat -r REV delete_file.txt" doesn't work. cat requires
        +          # the full URL with "@REV" appended instead of using "-r" option.
        +          url = "%s/%s@%s" % (self.svn_base, filename, self.rev_start)
        +          base_content = RunShell(["svn", "cat", url],
        +                                  universal_newlines=universal_newlines,
        +                                  silent_ok=True)
        +        else:
        +          base_content = RunShell(["svn", "cat", filename],
        +                                  universal_newlines=universal_newlines,
        +                                  silent_ok=True)
        +        if not is_binary:
        +          args = []
        +          if self.rev_start:
        +            url = "%s/%s@%s" % (self.svn_base, filename, self.rev_start)
        +          else:
        +            url = filename
        +            args += ["-r", "BASE"]
        +          cmd = ["svn"] + args + ["propget", "svn:keywords", url]
        +          keywords, returncode = RunShellWithReturnCode(cmd)
        +          if keywords and not returncode:
        +            base_content = self._CollapseKeywords(base_content, keywords)
        +    else:
        +      StatusUpdate("svn status returned unexpected output: %s" % status)
        +      sys.exit(1)
        +    return base_content, new_content, is_binary, status[0:5]
        +
        +
        +class GitVCS(VersionControlSystem):
        +  """Implementation of the VersionControlSystem interface for Git."""
        +
        +  def __init__(self, options):
        +    super(GitVCS, self).__init__(options)
        +    # Map of filename -> hash of base file.
        +    self.base_hashes = {}
        +
        +  def GenerateDiff(self, extra_args):
        +    # This is more complicated than svn's GenerateDiff because we must convert
        +    # the diff output to include an svn-style "Index:" line as well as record
        +    # the hashes of the base files, so we can upload them along with our diff.
        +    if self.options.revision:
        +      extra_args = [self.options.revision] + extra_args
        +    gitdiff = RunShell(["git", "diff", "--full-index"] + extra_args)
        +    svndiff = []
        +    filecount = 0
        +    filename = None
        +    for line in gitdiff.splitlines():
        +      match = re.match(r"diff --git a/(.*) b/.*$", line)
        +      if match:
        +        filecount += 1
        +        filename = match.group(1)
        +        svndiff.append("Index: %s\n" % filename)
        +      else:
        +        # The "index" line in a git diff looks like this (long hashes elided):
        +        #   index 82c0d44..b2cee3f 100755
        +        # We want to save the left hash, as that identifies the base file.
        +        match = re.match(r"index (\w+)\.\.", line)
        +        if match:
        +          self.base_hashes[filename] = match.group(1)
        +      svndiff.append(line + "\n")
        +    if not filecount:
        +      ErrorExit("No valid patches found in output from git diff")
        +    return "".join(svndiff)
        +
        +  def GetUnknownFiles(self):
        +    status = RunShell(["git", "ls-files", "--exclude-standard", "--others"],
        +                      silent_ok=True)
        +    return status.splitlines()
        +
        +  def GetBaseFile(self, filename):
        +    hash = self.base_hashes[filename]
        +    base_content = None
        +    new_content = None
        +    is_binary = False
        +    if hash == "0" * 40:  # All-zero hash indicates no base file.
        +      status = "A"
        +      base_content = ""
        +    else:
        +      status = "M"
        +      base_content, returncode = RunShellWithReturnCode(["git", "show", hash])
        +      if returncode:
        +        ErrorExit("Got error status from 'git show %s'" % hash)
        +    return (base_content, new_content, is_binary, status)
        +
        +
        +class MercurialVCS(VersionControlSystem):
        +  """Implementation of the VersionControlSystem interface for Mercurial."""
        +
        +  def __init__(self, options, repo_dir):
        +    super(MercurialVCS, self).__init__(options)
        +    # Absolute path to repository (we can be in a subdir)
        +    self.repo_dir = os.path.normpath(repo_dir)
        +    # Compute the subdir
        +    cwd = os.path.normpath(os.getcwd())
        +    assert cwd.startswith(self.repo_dir)
        +    self.subdir = cwd[len(self.repo_dir):].lstrip(r"\/")
        +    if self.options.revision:
        +      self.base_rev = self.options.revision
        +    else:
        +      self.base_rev = RunShell(["hg", "parent", "-q"]).split(':')[1].strip()
        +
        +  def _GetRelPath(self, filename):
        +    """Get relative path of a file according to the current directory,
        +    given its logical path in the repo."""
        +    assert filename.startswith(self.subdir), filename
        +    return filename[len(self.subdir):].lstrip(r"\/")
        +
        +  def GenerateDiff(self, extra_args):
        +    # If no file specified, restrict to the current subdir
        +    extra_args = extra_args or ["."]
        +    cmd = ["hg", "diff", "--git", "-r", self.base_rev] + extra_args
        +    data = RunShell(cmd, silent_ok=True)
        +    svndiff = []
        +    filecount = 0
        +    for line in data.splitlines():
        +      m = re.match("diff --git a/(\S+) b/(\S+)", line)
        +      if m:
        +        # Modify line to make it look like as it comes from svn diff.
        +        # With this modification no changes on the server side are required
        +        # to make upload.py work with Mercurial repos.
        +        # NOTE: for proper handling of moved/copied files, we have to use
        +        # the second filename.
        +        filename = m.group(2)
        +        svndiff.append("Index: %s" % filename)
        +        svndiff.append("=" * 67)
        +        filecount += 1
        +        logging.info(line)
        +      else:
        +        svndiff.append(line)
        +    if not filecount:
        +      ErrorExit("No valid patches found in output from hg diff")
        +    return "\n".join(svndiff) + "\n"
        +
        +  def GetUnknownFiles(self):
        +    """Return a list of files unknown to the VCS."""
        +    args = []
        +    status = RunShell(["hg", "status", "--rev", self.base_rev, "-u", "."],
        +        silent_ok=True)
        +    unknown_files = []
        +    for line in status.splitlines():
        +      st, fn = line.split(" ", 1)
        +      if st == "?":
        +        unknown_files.append(fn)
        +    return unknown_files
        +
        +  def GetBaseFile(self, filename):
        +    # "hg status" and "hg cat" both take a path relative to the current subdir
        +    # rather than to the repo root, but "hg diff" has given us the full path
        +    # to the repo root.
        +    base_content = ""
        +    new_content = None
        +    is_binary = False
        +    oldrelpath = relpath = self._GetRelPath(filename)
        +    # "hg status -C" returns two lines for moved/copied files, one otherwise
        +    out = RunShell(["hg", "status", "-C", "--rev", self.base_rev, relpath])
        +    out = out.splitlines()
        +    # HACK: strip error message about missing file/directory if it isn't in
        +    # the working copy
        +    if out[0].startswith('%s: ' % relpath):
        +      out = out[1:]
        +    if len(out) > 1:
        +      # Moved/copied => considered as modified, use old filename to
        +      # retrieve base contents
        +      oldrelpath = out[1].strip()
        +      status = "M"
        +    else:
        +      status, _ = out[0].split(' ', 1)
        +    if status != "A":
        +      base_content = RunShell(["hg", "cat", "-r", self.base_rev, oldrelpath],
        +        silent_ok=True)
        +      is_binary = "\0" in base_content  # Mercurial's heuristic
        +    if status != "R":
        +      new_content = open(relpath, "rb").read()
        +      is_binary = is_binary or "\0" in new_content
        +    if is_binary and base_content:
        +      # Fetch again without converting newlines
        +      base_content = RunShell(["hg", "cat", "-r", self.base_rev, oldrelpath],
        +        silent_ok=True, universal_newlines=False)
        +    if not is_binary or not self.IsImage(relpath):
        +      new_content = None
        +    return base_content, new_content, is_binary, status
        +
        +
        +# NOTE: The SplitPatch function is duplicated in engine.py, keep them in sync.
        +def SplitPatch(data):
        +  """Splits a patch into separate pieces for each file.
        +
        +  Args:
        +    data: A string containing the output of svn diff.
        +
        +  Returns:
        +    A list of 2-tuple (filename, text) where text is the svn diff output
        +      pertaining to filename.
        +  """
        +  patches = []
        +  filename = None
        +  diff = []
        +  for line in data.splitlines(True):
        +    new_filename = None
        +    if line.startswith('Index:'):
        +      unused, new_filename = line.split(':', 1)
        +      new_filename = new_filename.strip()
        +    elif line.startswith('Property changes on:'):
        +      unused, temp_filename = line.split(':', 1)
        +      # When a file is modified, paths use '/' between directories, however
        +      # when a property is modified '\' is used on Windows.  Make them the same
        +      # otherwise the file shows up twice.
        +      temp_filename = temp_filename.strip().replace('\\', '/')
        +      if temp_filename != filename:
        +        # File has property changes but no modifications, create a new diff.
        +        new_filename = temp_filename
        +    if new_filename:
        +      if filename and diff:
        +        patches.append((filename, ''.join(diff)))
        +      filename = new_filename
        +      diff = [line]
        +      continue
        +    if diff is not None:
        +      diff.append(line)
        +  if filename and diff:
        +    patches.append((filename, ''.join(diff)))
        +  return patches
        +
        +
        +def UploadSeparatePatches(issue, rpc_server, patchset, data, options):
        +  """Uploads a separate patch for each file in the diff output.
        +
        +  Returns a list of [patch_key, filename] for each file.
        +  """
        +  patches = SplitPatch(data)
        +  rv = []
        +  for patch in patches:
        +    if len(patch[1]) > MAX_UPLOAD_SIZE:
        +      print ("Not uploading the patch for " + patch[0] +
        +             " because the file is too large.")
        +      continue
        +    form_fields = [("filename", patch[0])]
        +    if not options.download_base:
        +      form_fields.append(("content_upload", "1"))
        +    files = [("data", "data.diff", patch[1])]
        +    ctype, body = EncodeMultipartFormData(form_fields, files)
        +    url = "/%d/upload_patch/%d" % (int(issue), int(patchset))
        +    print "Uploading patch for " + patch[0]
        +    response_body = rpc_server.Send(url, body, content_type=ctype)
        +    lines = response_body.splitlines()
        +    if not lines or lines[0] != "OK":
        +      StatusUpdate("  --> %s" % response_body)
        +      sys.exit(1)
        +    rv.append([lines[1], patch[0]])
        +  return rv
        +
        +
        +def GuessVCS(options):
        +  """Helper to guess the version control system.
        +
        +  This examines the current directory, guesses which VersionControlSystem
        +  we're using, and returns an instance of the appropriate class.  Exit with an
        +  error if we can't figure it out.
        +
        +  Returns:
        +    A VersionControlSystem instance. Exits if the VCS can't be guessed.
        +  """
        +  # Mercurial has a command to get the base directory of a repository
        +  # Try running it, but don't die if we don't have hg installed.
        +  # NOTE: we try Mercurial first as it can sit on top of an SVN working copy.
        +  try:
        +    out, returncode = RunShellWithReturnCode(["hg", "root"])
        +    if returncode == 0:
        +      return MercurialVCS(options, out.strip())
        +  except OSError, (errno, message):
        +    if errno != 2:  # ENOENT -- they don't have hg installed.
        +      raise
        +
        +  # Subversion has a .svn in all working directories.
        +  if os.path.isdir('.svn'):
        +    logging.info("Guessed VCS = Subversion")
        +    return SubversionVCS(options)
        +
        +  # Git has a command to test if you're in a git tree.
        +  # Try running it, but don't die if we don't have git installed.
        +  try:
        +    out, returncode = RunShellWithReturnCode(["git", "rev-parse",
        +                                              "--is-inside-work-tree"])
        +    if returncode == 0:
        +      return GitVCS(options)
        +  except OSError, (errno, message):
        +    if errno != 2:  # ENOENT -- they don't have git installed.
        +      raise
        +
        +  ErrorExit(("Could not guess version control system. "
        +             "Are you in a working copy directory?"))
        +
        +
        +def RealMain(argv, data=None):
        +  """The real main function.
        +
        +  Args:
        +    argv: Command line arguments.
        +    data: Diff contents. If None (default) the diff is generated by
        +      the VersionControlSystem implementation returned by GuessVCS().
        +
        +  Returns:
        +    A 2-tuple (issue id, patchset id).
        +    The patchset id is None if the base files are not uploaded by this
        +    script (applies only to SVN checkouts).
        +  """
        +  logging.basicConfig(format=("%(asctime).19s %(levelname)s %(filename)s:"
        +                              "%(lineno)s %(message)s "))
        +  os.environ['LC_ALL'] = 'C'
        +  options, args = parser.parse_args(argv[1:])
        +  global verbosity
        +  verbosity = options.verbose
        +  if verbosity >= 3:
        +    logging.getLogger().setLevel(logging.DEBUG)
        +  elif verbosity >= 2:
        +    logging.getLogger().setLevel(logging.INFO)
        +  vcs = GuessVCS(options)
        +  if isinstance(vcs, SubversionVCS):
        +    # base field is only allowed for Subversion.
        +    # Note: Fetching base files may become deprecated in future releases.
        +    base = vcs.GuessBase(options.download_base)
        +  else:
        +    base = None
        +  if not base and options.download_base:
        +    options.download_base = True
        +    logging.info("Enabled upload of base file")
        +  if not options.assume_yes:
        +    vcs.CheckForUnknownFiles()
        +  if data is None:
        +    data = vcs.GenerateDiff(args)
        +  files = vcs.GetBaseFiles(data)
        +  if verbosity >= 1:
        +    print "Upload server:", options.server, "(change with -s/--server)"
        +  if options.issue:
        +    prompt = "Message describing this patch set: "
        +  else:
        +    prompt = "New issue subject: "
        +  message = options.message or raw_input(prompt).strip()
        +  if not message:
        +    ErrorExit("A non-empty message is required")
        +  rpc_server = GetRpcServer(options)
        +  form_fields = [("subject", message)]
        +  if base:
        +    form_fields.append(("base", base))
        +  if options.issue:
        +    form_fields.append(("issue", str(options.issue)))
        +  if options.email:
        +    form_fields.append(("user", options.email))
        +  if options.reviewers:
        +    for reviewer in options.reviewers.split(','):
        +      if "@" in reviewer and not reviewer.split("@")[1].count(".") == 1:
        +        ErrorExit("Invalid email address: %s" % reviewer)
        +    form_fields.append(("reviewers", options.reviewers))
        +  if options.cc:
        +    for cc in options.cc.split(','):
        +      if "@" in cc and not cc.split("@")[1].count(".") == 1:
        +        ErrorExit("Invalid email address: %s" % cc)
        +    form_fields.append(("cc", options.cc))
        +  description = options.description
        +  if options.description_file:
        +    if options.description:
        +      ErrorExit("Can't specify description and description_file")
        +    file = open(options.description_file, 'r')
        +    description = file.read()
        +    file.close()
        +  if description:
        +    form_fields.append(("description", description))
        +  # Send a hash of all the base file so the server can determine if a copy
        +  # already exists in an earlier patchset.
        +  base_hashes = ""
        +  for file, info in files.iteritems():
        +    if not info[0] is None:
        +      checksum = md5.new(info[0]).hexdigest()
        +      if base_hashes:
        +        base_hashes += "|"
        +      base_hashes += checksum + ":" + file
        +  form_fields.append(("base_hashes", base_hashes))
        +  # If we're uploading base files, don't send the email before the uploads, so
        +  # that it contains the file status.
        +  if options.send_mail and options.download_base:
        +    form_fields.append(("send_mail", "1"))
        +  if not options.download_base:
        +    form_fields.append(("content_upload", "1"))
        +  if len(data) > MAX_UPLOAD_SIZE:
        +    print "Patch is large, so uploading file patches separately."
        +    uploaded_diff_file = []
        +    form_fields.append(("separate_patches", "1"))
        +  else:
        +    uploaded_diff_file = [("data", "data.diff", data)]
        +  ctype, body = EncodeMultipartFormData(form_fields, uploaded_diff_file)
        +  response_body = rpc_server.Send("/upload", body, content_type=ctype)
        +  patchset = None
        +  if not options.download_base or not uploaded_diff_file:
        +    lines = response_body.splitlines()
        +    if len(lines) >= 2:
        +      msg = lines[0]
        +      patchset = lines[1].strip()
        +      patches = [x.split(" ", 1) for x in lines[2:]]
        +    else:
        +      msg = response_body
        +  else:
        +    msg = response_body
        +  StatusUpdate(msg)
        +  if not response_body.startswith("Issue created.") and \
        +  not response_body.startswith("Issue updated."):
        +    sys.exit(0)
        +  issue = msg[msg.rfind("/")+1:]
        +
        +  if not uploaded_diff_file:
        +    result = UploadSeparatePatches(issue, rpc_server, patchset, data, options)
        +    if not options.download_base:
        +      patches = result
        +
        +  if not options.download_base:
        +    vcs.UploadBaseFiles(issue, rpc_server, patches, patchset, options, files)
        +    if options.send_mail:
        +      rpc_server.Send("/" + issue + "/mail", payload="")
        +  return issue, patchset
        +
        +
        +def main():
        +  try:
        +    RealMain(sys.argv)
        +  except KeyboardInterrupt:
        +    print
        +    StatusUpdate("Interrupted.")
        +    sys.exit(1)
        +
        +
        +if __name__ == "__main__":
        +  main()
        diff --git a/lib/ann/fann/lib/googletest/scripts/upload_gtest.py b/lib/ann/fann/lib/googletest/scripts/upload_gtest.py
        new file mode 100755
        index 0000000..be19ae8
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/scripts/upload_gtest.py
        @@ -0,0 +1,78 @@
        +#!/usr/bin/env python
        +#
        +# Copyright 2009, Google Inc.
        +# All rights reserved.
        +#
        +# Redistribution and use in source and binary forms, with or without
        +# modification, are permitted provided that the following conditions are
        +# met:
        +#
        +#     * Redistributions of source code must retain the above copyright
        +# notice, this list of conditions and the following disclaimer.
        +#     * Redistributions in binary form must reproduce the above
        +# copyright notice, this list of conditions and the following disclaimer
        +# in the documentation and/or other materials provided with the
        +# distribution.
        +#     * Neither the name of Google Inc. nor the names of its
        +# contributors may be used to endorse or promote products derived from
        +# this software without specific prior written permission.
        +#
        +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +"""upload_gtest.py v0.1.0 -- uploads a Google Test patch for review.
        +
        +This simple wrapper passes all command line flags and
        +--cc=googletestframework@googlegroups.com to upload.py.
        +
        +USAGE: upload_gtest.py [options for upload.py]
        +"""
        +
        +__author__ = 'wan@google.com (Zhanyong Wan)'
        +
        +import os
        +import sys
        +
        +CC_FLAG = '--cc='
        +GTEST_GROUP = 'googletestframework@googlegroups.com'
        +
        +
        +def main():
        +  # Finds the path to upload.py, assuming it is in the same directory
        +  # as this file.
        +  my_dir = os.path.dirname(os.path.abspath(__file__))
        +  upload_py_path = os.path.join(my_dir, 'upload.py')
        +
        +  # Adds Google Test discussion group to the cc line if it's not there
        +  # already.
        +  upload_py_argv = [upload_py_path]
        +  found_cc_flag = False
        +  for arg in sys.argv[1:]:
        +    if arg.startswith(CC_FLAG):
        +      found_cc_flag = True
        +      cc_line = arg[len(CC_FLAG):]
        +      cc_list = [addr for addr in cc_line.split(',') if addr]
        +      if GTEST_GROUP not in cc_list:
        +        cc_list.append(GTEST_GROUP)
        +      upload_py_argv.append(CC_FLAG + ','.join(cc_list))
        +    else:
        +      upload_py_argv.append(arg)
        +
        +  if not found_cc_flag:
        +    upload_py_argv.append(CC_FLAG + GTEST_GROUP)
        +
        +  # Invokes upload.py with the modified command line flags.
        +  os.execv(upload_py_path, upload_py_argv)
        +
        +
        +if __name__ == '__main__':
        +  main()
        diff --git a/lib/ann/fann/lib/googletest/src/gtest-all.cc b/lib/ann/fann/lib/googletest/src/gtest-all.cc
        new file mode 100644
        index 0000000..0a9cee5
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/src/gtest-all.cc
        @@ -0,0 +1,48 @@
        +// Copyright 2008, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: mheule@google.com (Markus Heule)
        +//
        +// Google C++ Testing Framework (Google Test)
        +//
        +// Sometimes it's desirable to build Google Test by compiling a single file.
        +// This file serves this purpose.
        +
        +// This line ensures that gtest.h can be compiled on its own, even
        +// when it's fused.
        +#include "gtest/gtest.h"
        +
        +// The following lines pull in the real gtest *.cc files.
        +#include "src/gtest.cc"
        +#include "src/gtest-death-test.cc"
        +#include "src/gtest-filepath.cc"
        +#include "src/gtest-port.cc"
        +#include "src/gtest-printers.cc"
        +#include "src/gtest-test-part.cc"
        +#include "src/gtest-typed-test.cc"
        diff --git a/lib/ann/fann/lib/googletest/src/gtest-death-test.cc b/lib/ann/fann/lib/googletest/src/gtest-death-test.cc
        new file mode 100644
        index 0000000..a01a369
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/src/gtest-death-test.cc
        @@ -0,0 +1,1342 @@
        +// Copyright 2005, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan), vladl@google.com (Vlad Losev)
        +//
        +// This file implements death tests.
        +
        +#include "gtest/gtest-death-test.h"
        +#include "gtest/internal/gtest-port.h"
        +#include "gtest/internal/custom/gtest.h"
        +
        +#if GTEST_HAS_DEATH_TEST
        +
        +# if GTEST_OS_MAC
        +#  include <crt_externs.h>
        +# endif  // GTEST_OS_MAC
        +
        +# include <errno.h>
        +# include <fcntl.h>
        +# include <limits.h>
        +
        +# if GTEST_OS_LINUX
        +#  include <signal.h>
        +# endif  // GTEST_OS_LINUX
        +
        +# include <stdarg.h>
        +
        +# if GTEST_OS_WINDOWS
        +#  include <windows.h>
        +# else
        +#  include <sys/mman.h>
        +#  include <sys/wait.h>
        +# endif  // GTEST_OS_WINDOWS
        +
        +# if GTEST_OS_QNX
        +#  include <spawn.h>
        +# endif  // GTEST_OS_QNX
        +
        +#endif  // GTEST_HAS_DEATH_TEST
        +
        +#include "gtest/gtest-message.h"
        +#include "gtest/internal/gtest-string.h"
        +
        +// Indicates that this translation unit is part of Google Test's
        +// implementation.  It must come before gtest-internal-inl.h is
        +// included, or there will be a compiler error.  This trick exists to
        +// prevent the accidental inclusion of gtest-internal-inl.h in the
        +// user's code.
        +#define GTEST_IMPLEMENTATION_ 1
        +#include "src/gtest-internal-inl.h"
        +#undef GTEST_IMPLEMENTATION_
        +
        +namespace testing {
        +
        +// Constants.
        +
        +// The default death test style.
        +static const char kDefaultDeathTestStyle[] = "fast";
        +
        +GTEST_DEFINE_string_(
        +    death_test_style,
        +    internal::StringFromGTestEnv("death_test_style", kDefaultDeathTestStyle),
        +    "Indicates how to run a death test in a forked child process: "
        +    "\"threadsafe\" (child process re-executes the test binary "
        +    "from the beginning, running only the specific death test) or "
        +    "\"fast\" (child process runs the death test immediately "
        +    "after forking).");
        +
        +GTEST_DEFINE_bool_(
        +    death_test_use_fork,
        +    internal::BoolFromGTestEnv("death_test_use_fork", false),
        +    "Instructs to use fork()/_exit() instead of clone() in death tests. "
        +    "Ignored and always uses fork() on POSIX systems where clone() is not "
        +    "implemented. Useful when running under valgrind or similar tools if "
        +    "those do not support clone(). Valgrind 3.3.1 will just fail if "
        +    "it sees an unsupported combination of clone() flags. "
        +    "It is not recommended to use this flag w/o valgrind though it will "
        +    "work in 99% of the cases. Once valgrind is fixed, this flag will "
        +    "most likely be removed.");
        +
        +namespace internal {
        +GTEST_DEFINE_string_(
        +    internal_run_death_test, "",
        +    "Indicates the file, line number, temporal index of "
        +    "the single death test to run, and a file descriptor to "
        +    "which a success code may be sent, all separated by "
        +    "the '|' characters.  This flag is specified if and only if the current "
        +    "process is a sub-process launched for running a thread-safe "
        +    "death test.  FOR INTERNAL USE ONLY.");
        +}  // namespace internal
        +
        +#if GTEST_HAS_DEATH_TEST
        +
        +namespace internal {
        +
        +// Valid only for fast death tests. Indicates the code is running in the
        +// child process of a fast style death test.
        +# if !GTEST_OS_WINDOWS
        +static bool g_in_fast_death_test_child = false;
        +# endif
        +
        +// Returns a Boolean value indicating whether the caller is currently
        +// executing in the context of the death test child process.  Tools such as
        +// Valgrind heap checkers may need this to modify their behavior in death
        +// tests.  IMPORTANT: This is an internal utility.  Using it may break the
        +// implementation of death tests.  User code MUST NOT use it.
        +bool InDeathTestChild() {
        +# if GTEST_OS_WINDOWS
        +
        +  // On Windows, death tests are thread-safe regardless of the value of the
        +  // death_test_style flag.
        +  return !GTEST_FLAG(internal_run_death_test).empty();
        +
        +# else
        +
        +  if (GTEST_FLAG(death_test_style) == "threadsafe")
        +    return !GTEST_FLAG(internal_run_death_test).empty();
        +  else
        +    return g_in_fast_death_test_child;
        +#endif
        +}
        +
        +}  // namespace internal
        +
        +// ExitedWithCode constructor.
        +ExitedWithCode::ExitedWithCode(int exit_code) : exit_code_(exit_code) {
        +}
        +
        +// ExitedWithCode function-call operator.
        +bool ExitedWithCode::operator()(int exit_status) const {
        +# if GTEST_OS_WINDOWS
        +
        +  return exit_status == exit_code_;
        +
        +# else
        +
        +  return WIFEXITED(exit_status) && WEXITSTATUS(exit_status) == exit_code_;
        +
        +# endif  // GTEST_OS_WINDOWS
        +}
        +
        +# if !GTEST_OS_WINDOWS
        +// KilledBySignal constructor.
        +KilledBySignal::KilledBySignal(int signum) : signum_(signum) {
        +}
        +
        +// KilledBySignal function-call operator.
        +bool KilledBySignal::operator()(int exit_status) const {
        +#  if defined(GTEST_KILLED_BY_SIGNAL_OVERRIDE_)
        +  {
        +    bool result;
        +    if (GTEST_KILLED_BY_SIGNAL_OVERRIDE_(signum_, exit_status, &result)) {
        +      return result;
        +    }
        +  }
        +#  endif  // defined(GTEST_KILLED_BY_SIGNAL_OVERRIDE_)
        +  return WIFSIGNALED(exit_status) && WTERMSIG(exit_status) == signum_;
        +}
        +# endif  // !GTEST_OS_WINDOWS
        +
        +namespace internal {
        +
        +// Utilities needed for death tests.
        +
        +// Generates a textual description of a given exit code, in the format
        +// specified by wait(2).
        +static std::string ExitSummary(int exit_code) {
        +  Message m;
        +
        +# if GTEST_OS_WINDOWS
        +
        +  m << "Exited with exit status " << exit_code;
        +
        +# else
        +
        +  if (WIFEXITED(exit_code)) {
        +    m << "Exited with exit status " << WEXITSTATUS(exit_code);
        +  } else if (WIFSIGNALED(exit_code)) {
        +    m << "Terminated by signal " << WTERMSIG(exit_code);
        +  }
        +#  ifdef WCOREDUMP
        +  if (WCOREDUMP(exit_code)) {
        +    m << " (core dumped)";
        +  }
        +#  endif
        +# endif  // GTEST_OS_WINDOWS
        +
        +  return m.GetString();
        +}
        +
        +// Returns true if exit_status describes a process that was terminated
        +// by a signal, or exited normally with a nonzero exit code.
        +bool ExitedUnsuccessfully(int exit_status) {
        +  return !ExitedWithCode(0)(exit_status);
        +}
        +
        +# if !GTEST_OS_WINDOWS
        +// Generates a textual failure message when a death test finds more than
        +// one thread running, or cannot determine the number of threads, prior
        +// to executing the given statement.  It is the responsibility of the
        +// caller not to pass a thread_count of 1.
        +static std::string DeathTestThreadWarning(size_t thread_count) {
        +  Message msg;
        +  msg << "Death tests use fork(), which is unsafe particularly"
        +      << " in a threaded context. For this test, " << GTEST_NAME_ << " ";
        +  if (thread_count == 0)
        +    msg << "couldn't detect the number of threads.";
        +  else
        +    msg << "detected " << thread_count << " threads.";
        +  return msg.GetString();
        +}
        +# endif  // !GTEST_OS_WINDOWS
        +
        +// Flag characters for reporting a death test that did not die.
        +static const char kDeathTestLived = 'L';
        +static const char kDeathTestReturned = 'R';
        +static const char kDeathTestThrew = 'T';
        +static const char kDeathTestInternalError = 'I';
        +
        +// An enumeration describing all of the possible ways that a death test can
        +// conclude.  DIED means that the process died while executing the test
        +// code; LIVED means that process lived beyond the end of the test code;
        +// RETURNED means that the test statement attempted to execute a return
        +// statement, which is not allowed; THREW means that the test statement
        +// returned control by throwing an exception.  IN_PROGRESS means the test
        +// has not yet concluded.
        +// TODO(vladl@google.com): Unify names and possibly values for
        +// AbortReason, DeathTestOutcome, and flag characters above.
        +enum DeathTestOutcome { IN_PROGRESS, DIED, LIVED, RETURNED, THREW };
        +
        +// Routine for aborting the program which is safe to call from an
        +// exec-style death test child process, in which case the error
        +// message is propagated back to the parent process.  Otherwise, the
        +// message is simply printed to stderr.  In either case, the program
        +// then exits with status 1.
        +void DeathTestAbort(const std::string& message) {
        +  // On a POSIX system, this function may be called from a threadsafe-style
        +  // death test child process, which operates on a very small stack.  Use
        +  // the heap for any additional non-minuscule memory requirements.
        +  const InternalRunDeathTestFlag* const flag =
        +      GetUnitTestImpl()->internal_run_death_test_flag();
        +  if (flag != NULL) {
        +    FILE* parent = posix::FDOpen(flag->write_fd(), "w");
        +    fputc(kDeathTestInternalError, parent);
        +    fprintf(parent, "%s", message.c_str());
        +    fflush(parent);
        +    _exit(1);
        +  } else {
        +    fprintf(stderr, "%s", message.c_str());
        +    fflush(stderr);
        +    posix::Abort();
        +  }
        +}
        +
        +// A replacement for CHECK that calls DeathTestAbort if the assertion
        +// fails.
        +# define GTEST_DEATH_TEST_CHECK_(expression) \
        +  do { \
        +    if (!::testing::internal::IsTrue(expression)) { \
        +      DeathTestAbort( \
        +          ::std::string("CHECK failed: File ") + __FILE__ +  ", line " \
        +          + ::testing::internal::StreamableToString(__LINE__) + ": " \
        +          + #expression); \
        +    } \
        +  } while (::testing::internal::AlwaysFalse())
        +
        +// This macro is similar to GTEST_DEATH_TEST_CHECK_, but it is meant for
        +// evaluating any system call that fulfills two conditions: it must return
        +// -1 on failure, and set errno to EINTR when it is interrupted and
        +// should be tried again.  The macro expands to a loop that repeatedly
        +// evaluates the expression as long as it evaluates to -1 and sets
        +// errno to EINTR.  If the expression evaluates to -1 but errno is
        +// something other than EINTR, DeathTestAbort is called.
        +# define GTEST_DEATH_TEST_CHECK_SYSCALL_(expression) \
        +  do { \
        +    int gtest_retval; \
        +    do { \
        +      gtest_retval = (expression); \
        +    } while (gtest_retval == -1 && errno == EINTR); \
        +    if (gtest_retval == -1) { \
        +      DeathTestAbort( \
        +          ::std::string("CHECK failed: File ") + __FILE__ + ", line " \
        +          + ::testing::internal::StreamableToString(__LINE__) + ": " \
        +          + #expression + " != -1"); \
        +    } \
        +  } while (::testing::internal::AlwaysFalse())
        +
        +// Returns the message describing the last system error in errno.
        +std::string GetLastErrnoDescription() {
        +    return errno == 0 ? "" : posix::StrError(errno);
        +}
        +
        +// This is called from a death test parent process to read a failure
        +// message from the death test child process and log it with the FATAL
        +// severity. On Windows, the message is read from a pipe handle. On other
        +// platforms, it is read from a file descriptor.
        +static void FailFromInternalError(int fd) {
        +  Message error;
        +  char buffer[256];
        +  int num_read;
        +
        +  do {
        +    while ((num_read = posix::Read(fd, buffer, 255)) > 0) {
        +      buffer[num_read] = '\0';
        +      error << buffer;
        +    }
        +  } while (num_read == -1 && errno == EINTR);
        +
        +  if (num_read == 0) {
        +    GTEST_LOG_(FATAL) << error.GetString();
        +  } else {
        +    const int last_error = errno;
        +    GTEST_LOG_(FATAL) << "Error while reading death test internal: "
        +                      << GetLastErrnoDescription() << " [" << last_error << "]";
        +  }
        +}
        +
        +// Death test constructor.  Increments the running death test count
        +// for the current test.
        +DeathTest::DeathTest() {
        +  TestInfo* const info = GetUnitTestImpl()->current_test_info();
        +  if (info == NULL) {
        +    DeathTestAbort("Cannot run a death test outside of a TEST or "
        +                   "TEST_F construct");
        +  }
        +}
        +
        +// Creates and returns a death test by dispatching to the current
        +// death test factory.
        +bool DeathTest::Create(const char* statement, const RE* regex,
        +                       const char* file, int line, DeathTest** test) {
        +  return GetUnitTestImpl()->death_test_factory()->Create(
        +      statement, regex, file, line, test);
        +}
        +
        +const char* DeathTest::LastMessage() {
        +  return last_death_test_message_.c_str();
        +}
        +
        +void DeathTest::set_last_death_test_message(const std::string& message) {
        +  last_death_test_message_ = message;
        +}
        +
        +std::string DeathTest::last_death_test_message_;
        +
        +// Provides cross platform implementation for some death functionality.
        +class DeathTestImpl : public DeathTest {
        + protected:
        +  DeathTestImpl(const char* a_statement, const RE* a_regex)
        +      : statement_(a_statement),
        +        regex_(a_regex),
        +        spawned_(false),
        +        status_(-1),
        +        outcome_(IN_PROGRESS),
        +        read_fd_(-1),
        +        write_fd_(-1) {}
        +
        +  // read_fd_ is expected to be closed and cleared by a derived class.
        +  ~DeathTestImpl() { GTEST_DEATH_TEST_CHECK_(read_fd_ == -1); }
        +
        +  void Abort(AbortReason reason);
        +  virtual bool Passed(bool status_ok);
        +
        +  const char* statement() const { return statement_; }
        +  const RE* regex() const { return regex_; }
        +  bool spawned() const { return spawned_; }
        +  void set_spawned(bool is_spawned) { spawned_ = is_spawned; }
        +  int status() const { return status_; }
        +  void set_status(int a_status) { status_ = a_status; }
        +  DeathTestOutcome outcome() const { return outcome_; }
        +  void set_outcome(DeathTestOutcome an_outcome) { outcome_ = an_outcome; }
        +  int read_fd() const { return read_fd_; }
        +  void set_read_fd(int fd) { read_fd_ = fd; }
        +  int write_fd() const { return write_fd_; }
        +  void set_write_fd(int fd) { write_fd_ = fd; }
        +
        +  // Called in the parent process only. Reads the result code of the death
        +  // test child process via a pipe, interprets it to set the outcome_
        +  // member, and closes read_fd_.  Outputs diagnostics and terminates in
        +  // case of unexpected codes.
        +  void ReadAndInterpretStatusByte();
        +
        + private:
        +  // The textual content of the code this object is testing.  This class
        +  // doesn't own this string and should not attempt to delete it.
        +  const char* const statement_;
        +  // The regular expression which test output must match.  DeathTestImpl
        +  // doesn't own this object and should not attempt to delete it.
        +  const RE* const regex_;
        +  // True if the death test child process has been successfully spawned.
        +  bool spawned_;
        +  // The exit status of the child process.
        +  int status_;
        +  // How the death test concluded.
        +  DeathTestOutcome outcome_;
        +  // Descriptor to the read end of the pipe to the child process.  It is
        +  // always -1 in the child process.  The child keeps its write end of the
        +  // pipe in write_fd_.
        +  int read_fd_;
        +  // Descriptor to the child's write end of the pipe to the parent process.
        +  // It is always -1 in the parent process.  The parent keeps its end of the
        +  // pipe in read_fd_.
        +  int write_fd_;
        +};
        +
        +// Called in the parent process only. Reads the result code of the death
        +// test child process via a pipe, interprets it to set the outcome_
        +// member, and closes read_fd_.  Outputs diagnostics and terminates in
        +// case of unexpected codes.
        +void DeathTestImpl::ReadAndInterpretStatusByte() {
        +  char flag;
        +  int bytes_read;
        +
        +  // The read() here blocks until data is available (signifying the
        +  // failure of the death test) or until the pipe is closed (signifying
        +  // its success), so it's okay to call this in the parent before
        +  // the child process has exited.
        +  do {
        +    bytes_read = posix::Read(read_fd(), &flag, 1);
        +  } while (bytes_read == -1 && errno == EINTR);
        +
        +  if (bytes_read == 0) {
        +    set_outcome(DIED);
        +  } else if (bytes_read == 1) {
        +    switch (flag) {
        +      case kDeathTestReturned:
        +        set_outcome(RETURNED);
        +        break;
        +      case kDeathTestThrew:
        +        set_outcome(THREW);
        +        break;
        +      case kDeathTestLived:
        +        set_outcome(LIVED);
        +        break;
        +      case kDeathTestInternalError:
        +        FailFromInternalError(read_fd());  // Does not return.
        +        break;
        +      default:
        +        GTEST_LOG_(FATAL) << "Death test child process reported "
        +                          << "unexpected status byte ("
        +                          << static_cast<unsigned int>(flag) << ")";
        +    }
        +  } else {
        +    GTEST_LOG_(FATAL) << "Read from death test child process failed: "
        +                      << GetLastErrnoDescription();
        +  }
        +  GTEST_DEATH_TEST_CHECK_SYSCALL_(posix::Close(read_fd()));
        +  set_read_fd(-1);
        +}
        +
        +// Signals that the death test code which should have exited, didn't.
        +// Should be called only in a death test child process.
        +// Writes a status byte to the child's status file descriptor, then
        +// calls _exit(1).
        +void DeathTestImpl::Abort(AbortReason reason) {
        +  // The parent process considers the death test to be a failure if
        +  // it finds any data in our pipe.  So, here we write a single flag byte
        +  // to the pipe, then exit.
        +  const char status_ch =
        +      reason == TEST_DID_NOT_DIE ? kDeathTestLived :
        +      reason == TEST_THREW_EXCEPTION ? kDeathTestThrew : kDeathTestReturned;
        +
        +  GTEST_DEATH_TEST_CHECK_SYSCALL_(posix::Write(write_fd(), &status_ch, 1));
        +  // We are leaking the descriptor here because on some platforms (i.e.,
        +  // when built as Windows DLL), destructors of global objects will still
        +  // run after calling _exit(). On such systems, write_fd_ will be
        +  // indirectly closed from the destructor of UnitTestImpl, causing double
        +  // close if it is also closed here. On debug configurations, double close
        +  // may assert. As there are no in-process buffers to flush here, we are
        +  // relying on the OS to close the descriptor after the process terminates
        +  // when the destructors are not run.
        +  _exit(1);  // Exits w/o any normal exit hooks (we were supposed to crash)
        +}
        +
        +// Returns an indented copy of stderr output for a death test.
        +// This makes distinguishing death test output lines from regular log lines
        +// much easier.
        +static ::std::string FormatDeathTestOutput(const ::std::string& output) {
        +  ::std::string ret;
        +  for (size_t at = 0; ; ) {
        +    const size_t line_end = output.find('\n', at);
        +    ret += "[  DEATH   ] ";
        +    if (line_end == ::std::string::npos) {
        +      ret += output.substr(at);
        +      break;
        +    }
        +    ret += output.substr(at, line_end + 1 - at);
        +    at = line_end + 1;
        +  }
        +  return ret;
        +}
        +
        +// Assesses the success or failure of a death test, using both private
        +// members which have previously been set, and one argument:
        +//
        +// Private data members:
        +//   outcome:  An enumeration describing how the death test
        +//             concluded: DIED, LIVED, THREW, or RETURNED.  The death test
        +//             fails in the latter three cases.
        +//   status:   The exit status of the child process. On *nix, it is in the
        +//             in the format specified by wait(2). On Windows, this is the
        +//             value supplied to the ExitProcess() API or a numeric code
        +//             of the exception that terminated the program.
        +//   regex:    A regular expression object to be applied to
        +//             the test's captured standard error output; the death test
        +//             fails if it does not match.
        +//
        +// Argument:
        +//   status_ok: true if exit_status is acceptable in the context of
        +//              this particular death test, which fails if it is false
        +//
        +// Returns true iff all of the above conditions are met.  Otherwise, the
        +// first failing condition, in the order given above, is the one that is
        +// reported. Also sets the last death test message string.
        +bool DeathTestImpl::Passed(bool status_ok) {
        +  if (!spawned())
        +    return false;
        +
        +  const std::string error_message = GetCapturedStderr();
        +
        +  bool success = false;
        +  Message buffer;
        +
        +  buffer << "Death test: " << statement() << "\n";
        +  switch (outcome()) {
        +    case LIVED:
        +      buffer << "    Result: failed to die.\n"
        +             << " Error msg:\n" << FormatDeathTestOutput(error_message);
        +      break;
        +    case THREW:
        +      buffer << "    Result: threw an exception.\n"
        +             << " Error msg:\n" << FormatDeathTestOutput(error_message);
        +      break;
        +    case RETURNED:
        +      buffer << "    Result: illegal return in test statement.\n"
        +             << " Error msg:\n" << FormatDeathTestOutput(error_message);
        +      break;
        +    case DIED:
        +      if (status_ok) {
        +        const bool matched = RE::PartialMatch(error_message.c_str(), *regex());
        +        if (matched) {
        +          success = true;
        +        } else {
        +          buffer << "    Result: died but not with expected error.\n"
        +                 << "  Expected: " << regex()->pattern() << "\n"
        +                 << "Actual msg:\n" << FormatDeathTestOutput(error_message);
        +        }
        +      } else {
        +        buffer << "    Result: died but not with expected exit code:\n"
        +               << "            " << ExitSummary(status()) << "\n"
        +               << "Actual msg:\n" << FormatDeathTestOutput(error_message);
        +      }
        +      break;
        +    case IN_PROGRESS:
        +    default:
        +      GTEST_LOG_(FATAL)
        +          << "DeathTest::Passed somehow called before conclusion of test";
        +  }
        +
        +  DeathTest::set_last_death_test_message(buffer.GetString());
        +  return success;
        +}
        +
        +# if GTEST_OS_WINDOWS
        +// WindowsDeathTest implements death tests on Windows. Due to the
        +// specifics of starting new processes on Windows, death tests there are
        +// always threadsafe, and Google Test considers the
        +// --gtest_death_test_style=fast setting to be equivalent to
        +// --gtest_death_test_style=threadsafe there.
        +//
        +// A few implementation notes:  Like the Linux version, the Windows
        +// implementation uses pipes for child-to-parent communication. But due to
        +// the specifics of pipes on Windows, some extra steps are required:
        +//
        +// 1. The parent creates a communication pipe and stores handles to both
        +//    ends of it.
        +// 2. The parent starts the child and provides it with the information
        +//    necessary to acquire the handle to the write end of the pipe.
        +// 3. The child acquires the write end of the pipe and signals the parent
        +//    using a Windows event.
        +// 4. Now the parent can release the write end of the pipe on its side. If
        +//    this is done before step 3, the object's reference count goes down to
        +//    0 and it is destroyed, preventing the child from acquiring it. The
        +//    parent now has to release it, or read operations on the read end of
        +//    the pipe will not return when the child terminates.
        +// 5. The parent reads child's output through the pipe (outcome code and
        +//    any possible error messages) from the pipe, and its stderr and then
        +//    determines whether to fail the test.
        +//
        +// Note: to distinguish Win32 API calls from the local method and function
        +// calls, the former are explicitly resolved in the global namespace.
        +//
        +class WindowsDeathTest : public DeathTestImpl {
        + public:
        +  WindowsDeathTest(const char* a_statement,
        +                   const RE* a_regex,
        +                   const char* file,
        +                   int line)
        +      : DeathTestImpl(a_statement, a_regex), file_(file), line_(line) {}
        +
        +  // All of these virtual functions are inherited from DeathTest.
        +  virtual int Wait();
        +  virtual TestRole AssumeRole();
        +
        + private:
        +  // The name of the file in which the death test is located.
        +  const char* const file_;
        +  // The line number on which the death test is located.
        +  const int line_;
        +  // Handle to the write end of the pipe to the child process.
        +  AutoHandle write_handle_;
        +  // Child process handle.
        +  AutoHandle child_handle_;
        +  // Event the child process uses to signal the parent that it has
        +  // acquired the handle to the write end of the pipe. After seeing this
        +  // event the parent can release its own handles to make sure its
        +  // ReadFile() calls return when the child terminates.
        +  AutoHandle event_handle_;
        +};
        +
        +// Waits for the child in a death test to exit, returning its exit
        +// status, or 0 if no child process exists.  As a side effect, sets the
        +// outcome data member.
        +int WindowsDeathTest::Wait() {
        +  if (!spawned())
        +    return 0;
        +
        +  // Wait until the child either signals that it has acquired the write end
        +  // of the pipe or it dies.
        +  const HANDLE wait_handles[2] = { child_handle_.Get(), event_handle_.Get() };
        +  switch (::WaitForMultipleObjects(2,
        +                                   wait_handles,
        +                                   FALSE,  // Waits for any of the handles.
        +                                   INFINITE)) {
        +    case WAIT_OBJECT_0:
        +    case WAIT_OBJECT_0 + 1:
        +      break;
        +    default:
        +      GTEST_DEATH_TEST_CHECK_(false);  // Should not get here.
        +  }
        +
        +  // The child has acquired the write end of the pipe or exited.
        +  // We release the handle on our side and continue.
        +  write_handle_.Reset();
        +  event_handle_.Reset();
        +
        +  ReadAndInterpretStatusByte();
        +
        +  // Waits for the child process to exit if it haven't already. This
        +  // returns immediately if the child has already exited, regardless of
        +  // whether previous calls to WaitForMultipleObjects synchronized on this
        +  // handle or not.
        +  GTEST_DEATH_TEST_CHECK_(
        +      WAIT_OBJECT_0 == ::WaitForSingleObject(child_handle_.Get(),
        +                                             INFINITE));
        +  DWORD status_code;
        +  GTEST_DEATH_TEST_CHECK_(
        +      ::GetExitCodeProcess(child_handle_.Get(), &status_code) != FALSE);
        +  child_handle_.Reset();
        +  set_status(static_cast<int>(status_code));
        +  return status();
        +}
        +
        +// The AssumeRole process for a Windows death test.  It creates a child
        +// process with the same executable as the current process to run the
        +// death test.  The child process is given the --gtest_filter and
        +// --gtest_internal_run_death_test flags such that it knows to run the
        +// current death test only.
        +DeathTest::TestRole WindowsDeathTest::AssumeRole() {
        +  const UnitTestImpl* const impl = GetUnitTestImpl();
        +  const InternalRunDeathTestFlag* const flag =
        +      impl->internal_run_death_test_flag();
        +  const TestInfo* const info = impl->current_test_info();
        +  const int death_test_index = info->result()->death_test_count();
        +
        +  if (flag != NULL) {
        +    // ParseInternalRunDeathTestFlag() has performed all the necessary
        +    // processing.
        +    set_write_fd(flag->write_fd());
        +    return EXECUTE_TEST;
        +  }
        +
        +  // WindowsDeathTest uses an anonymous pipe to communicate results of
        +  // a death test.
        +  SECURITY_ATTRIBUTES handles_are_inheritable = {
        +    sizeof(SECURITY_ATTRIBUTES), NULL, TRUE };
        +  HANDLE read_handle, write_handle;
        +  GTEST_DEATH_TEST_CHECK_(
        +      ::CreatePipe(&read_handle, &write_handle, &handles_are_inheritable,
        +                   0)  // Default buffer size.
        +      != FALSE);
        +  set_read_fd(::_open_osfhandle(reinterpret_cast<intptr_t>(read_handle),
        +                                O_RDONLY));
        +  write_handle_.Reset(write_handle);
        +  event_handle_.Reset(::CreateEvent(
        +      &handles_are_inheritable,
        +      TRUE,    // The event will automatically reset to non-signaled state.
        +      FALSE,   // The initial state is non-signalled.
        +      NULL));  // The even is unnamed.
        +  GTEST_DEATH_TEST_CHECK_(event_handle_.Get() != NULL);
        +  const std::string filter_flag =
        +      std::string("--") + GTEST_FLAG_PREFIX_ + kFilterFlag + "=" +
        +      info->test_case_name() + "." + info->name();
        +  const std::string internal_flag =
        +      std::string("--") + GTEST_FLAG_PREFIX_ + kInternalRunDeathTestFlag +
        +      "=" + file_ + "|" + StreamableToString(line_) + "|" +
        +      StreamableToString(death_test_index) + "|" +
        +      StreamableToString(static_cast<unsigned int>(::GetCurrentProcessId())) +
        +      // size_t has the same width as pointers on both 32-bit and 64-bit
        +      // Windows platforms.
        +      // See http://msdn.microsoft.com/en-us/library/tcxf1dw6.aspx.
        +      "|" + StreamableToString(reinterpret_cast<size_t>(write_handle)) +
        +      "|" + StreamableToString(reinterpret_cast<size_t>(event_handle_.Get()));
        +
        +  char executable_path[_MAX_PATH + 1];  // NOLINT
        +  GTEST_DEATH_TEST_CHECK_(
        +      _MAX_PATH + 1 != ::GetModuleFileNameA(NULL,
        +                                            executable_path,
        +                                            _MAX_PATH));
        +
        +  std::string command_line =
        +      std::string(::GetCommandLineA()) + " " + filter_flag + " \"" +
        +      internal_flag + "\"";
        +
        +  DeathTest::set_last_death_test_message("");
        +
        +  CaptureStderr();
        +  // Flush the log buffers since the log streams are shared with the child.
        +  FlushInfoLog();
        +
        +  // The child process will share the standard handles with the parent.
        +  STARTUPINFOA startup_info;
        +  memset(&startup_info, 0, sizeof(STARTUPINFO));
        +  startup_info.dwFlags = STARTF_USESTDHANDLES;
        +  startup_info.hStdInput = ::GetStdHandle(STD_INPUT_HANDLE);
        +  startup_info.hStdOutput = ::GetStdHandle(STD_OUTPUT_HANDLE);
        +  startup_info.hStdError = ::GetStdHandle(STD_ERROR_HANDLE);
        +
        +  PROCESS_INFORMATION process_info;
        +  GTEST_DEATH_TEST_CHECK_(::CreateProcessA(
        +      executable_path,
        +      const_cast<char*>(command_line.c_str()),
        +      NULL,   // Retuned process handle is not inheritable.
        +      NULL,   // Retuned thread handle is not inheritable.
        +      TRUE,   // Child inherits all inheritable handles (for write_handle_).
        +      0x0,    // Default creation flags.
        +      NULL,   // Inherit the parent's environment.
        +      UnitTest::GetInstance()->original_working_dir(),
        +      &startup_info,
        +      &process_info) != FALSE);
        +  child_handle_.Reset(process_info.hProcess);
        +  ::CloseHandle(process_info.hThread);
        +  set_spawned(true);
        +  return OVERSEE_TEST;
        +}
        +# else  // We are not on Windows.
        +
        +// ForkingDeathTest provides implementations for most of the abstract
        +// methods of the DeathTest interface.  Only the AssumeRole method is
        +// left undefined.
        +class ForkingDeathTest : public DeathTestImpl {
        + public:
        +  ForkingDeathTest(const char* statement, const RE* regex);
        +
        +  // All of these virtual functions are inherited from DeathTest.
        +  virtual int Wait();
        +
        + protected:
        +  void set_child_pid(pid_t child_pid) { child_pid_ = child_pid; }
        +
        + private:
        +  // PID of child process during death test; 0 in the child process itself.
        +  pid_t child_pid_;
        +};
        +
        +// Constructs a ForkingDeathTest.
        +ForkingDeathTest::ForkingDeathTest(const char* a_statement, const RE* a_regex)
        +    : DeathTestImpl(a_statement, a_regex),
        +      child_pid_(-1) {}
        +
        +// Waits for the child in a death test to exit, returning its exit
        +// status, or 0 if no child process exists.  As a side effect, sets the
        +// outcome data member.
        +int ForkingDeathTest::Wait() {
        +  if (!spawned())
        +    return 0;
        +
        +  ReadAndInterpretStatusByte();
        +
        +  int status_value;
        +  GTEST_DEATH_TEST_CHECK_SYSCALL_(waitpid(child_pid_, &status_value, 0));
        +  set_status(status_value);
        +  return status_value;
        +}
        +
        +// A concrete death test class that forks, then immediately runs the test
        +// in the child process.
        +class NoExecDeathTest : public ForkingDeathTest {
        + public:
        +  NoExecDeathTest(const char* a_statement, const RE* a_regex) :
        +      ForkingDeathTest(a_statement, a_regex) { }
        +  virtual TestRole AssumeRole();
        +};
        +
        +// The AssumeRole process for a fork-and-run death test.  It implements a
        +// straightforward fork, with a simple pipe to transmit the status byte.
        +DeathTest::TestRole NoExecDeathTest::AssumeRole() {
        +  const size_t thread_count = GetThreadCount();
        +  if (thread_count != 1) {
        +    GTEST_LOG_(WARNING) << DeathTestThreadWarning(thread_count);
        +  }
        +
        +  int pipe_fd[2];
        +  GTEST_DEATH_TEST_CHECK_(pipe(pipe_fd) != -1);
        +
        +  DeathTest::set_last_death_test_message("");
        +  CaptureStderr();
        +  // When we fork the process below, the log file buffers are copied, but the
        +  // file descriptors are shared.  We flush all log files here so that closing
        +  // the file descriptors in the child process doesn't throw off the
        +  // synchronization between descriptors and buffers in the parent process.
        +  // This is as close to the fork as possible to avoid a race condition in case
        +  // there are multiple threads running before the death test, and another
        +  // thread writes to the log file.
        +  FlushInfoLog();
        +
        +  const pid_t child_pid = fork();
        +  GTEST_DEATH_TEST_CHECK_(child_pid != -1);
        +  set_child_pid(child_pid);
        +  if (child_pid == 0) {
        +    GTEST_DEATH_TEST_CHECK_SYSCALL_(close(pipe_fd[0]));
        +    set_write_fd(pipe_fd[1]);
        +    // Redirects all logging to stderr in the child process to prevent
        +    // concurrent writes to the log files.  We capture stderr in the parent
        +    // process and append the child process' output to a log.
        +    LogToStderr();
        +    // Event forwarding to the listeners of event listener API mush be shut
        +    // down in death test subprocesses.
        +    GetUnitTestImpl()->listeners()->SuppressEventForwarding();
        +    g_in_fast_death_test_child = true;
        +    return EXECUTE_TEST;
        +  } else {
        +    GTEST_DEATH_TEST_CHECK_SYSCALL_(close(pipe_fd[1]));
        +    set_read_fd(pipe_fd[0]);
        +    set_spawned(true);
        +    return OVERSEE_TEST;
        +  }
        +}
        +
        +// A concrete death test class that forks and re-executes the main
        +// program from the beginning, with command-line flags set that cause
        +// only this specific death test to be run.
        +class ExecDeathTest : public ForkingDeathTest {
        + public:
        +  ExecDeathTest(const char* a_statement, const RE* a_regex,
        +                const char* file, int line) :
        +      ForkingDeathTest(a_statement, a_regex), file_(file), line_(line) { }
        +  virtual TestRole AssumeRole();
        + private:
        +  static ::std::vector<testing::internal::string>
        +  GetArgvsForDeathTestChildProcess() {
        +    ::std::vector<testing::internal::string> args = GetInjectableArgvs();
        +#  if defined(GTEST_EXTRA_DEATH_TEST_COMMAND_LINE_ARGS_)
        +    ::std::vector<testing::internal::string> extra_args =
        +        GTEST_EXTRA_DEATH_TEST_COMMAND_LINE_ARGS_();
        +    args.insert(args.end(), extra_args.begin(), extra_args.end());
        +#  endif  // defined(GTEST_EXTRA_DEATH_TEST_COMMAND_LINE_ARGS_)
        +    return args;
        +  }
        +  // The name of the file in which the death test is located.
        +  const char* const file_;
        +  // The line number on which the death test is located.
        +  const int line_;
        +};
        +
        +// Utility class for accumulating command-line arguments.
        +class Arguments {
        + public:
        +  Arguments() {
        +    args_.push_back(NULL);
        +  }
        +
        +  ~Arguments() {
        +    for (std::vector<char*>::iterator i = args_.begin(); i != args_.end();
        +         ++i) {
        +      free(*i);
        +    }
        +  }
        +  void AddArgument(const char* argument) {
        +    args_.insert(args_.end() - 1, posix::StrDup(argument));
        +  }
        +
        +  template <typename Str>
        +  void AddArguments(const ::std::vector<Str>& arguments) {
        +    for (typename ::std::vector<Str>::const_iterator i = arguments.begin();
        +         i != arguments.end();
        +         ++i) {
        +      args_.insert(args_.end() - 1, posix::StrDup(i->c_str()));
        +    }
        +  }
        +  char* const* Argv() {
        +    return &args_[0];
        +  }
        +
        + private:
        +  std::vector<char*> args_;
        +};
        +
        +// A struct that encompasses the arguments to the child process of a
        +// threadsafe-style death test process.
        +struct ExecDeathTestArgs {
        +  char* const* argv;  // Command-line arguments for the child's call to exec
        +  int close_fd;       // File descriptor to close; the read end of a pipe
        +};
        +
        +#  if GTEST_OS_MAC
        +inline char** GetEnviron() {
        +  // When Google Test is built as a framework on MacOS X, the environ variable
        +  // is unavailable. Apple's documentation (man environ) recommends using
        +  // _NSGetEnviron() instead.
        +  return *_NSGetEnviron();
        +}
        +#  else
        +// Some POSIX platforms expect you to declare environ. extern "C" makes
        +// it reside in the global namespace.
        +extern "C" char** environ;
        +inline char** GetEnviron() { return environ; }
        +#  endif  // GTEST_OS_MAC
        +
        +#  if !GTEST_OS_QNX
        +// The main function for a threadsafe-style death test child process.
        +// This function is called in a clone()-ed process and thus must avoid
        +// any potentially unsafe operations like malloc or libc functions.
        +static int ExecDeathTestChildMain(void* child_arg) {
        +  ExecDeathTestArgs* const args = static_cast<ExecDeathTestArgs*>(child_arg);
        +  GTEST_DEATH_TEST_CHECK_SYSCALL_(close(args->close_fd));
        +
        +  // We need to execute the test program in the same environment where
        +  // it was originally invoked.  Therefore we change to the original
        +  // working directory first.
        +  const char* const original_dir =
        +      UnitTest::GetInstance()->original_working_dir();
        +  // We can safely call chdir() as it's a direct system call.
        +  if (chdir(original_dir) != 0) {
        +    DeathTestAbort(std::string("chdir(\"") + original_dir + "\") failed: " +
        +                   GetLastErrnoDescription());
        +    return EXIT_FAILURE;
        +  }
        +
        +  // We can safely call execve() as it's a direct system call.  We
        +  // cannot use execvp() as it's a libc function and thus potentially
        +  // unsafe.  Since execve() doesn't search the PATH, the user must
        +  // invoke the test program via a valid path that contains at least
        +  // one path separator.
        +  execve(args->argv[0], args->argv, GetEnviron());
        +  DeathTestAbort(std::string("execve(") + args->argv[0] + ", ...) in " +
        +                 original_dir + " failed: " +
        +                 GetLastErrnoDescription());
        +  return EXIT_FAILURE;
        +}
        +#  endif  // !GTEST_OS_QNX
        +
        +// Two utility routines that together determine the direction the stack
        +// grows.
        +// This could be accomplished more elegantly by a single recursive
        +// function, but we want to guard against the unlikely possibility of
        +// a smart compiler optimizing the recursion away.
        +//
        +// GTEST_NO_INLINE_ is required to prevent GCC 4.6 from inlining
        +// StackLowerThanAddress into StackGrowsDown, which then doesn't give
        +// correct answer.
        +void StackLowerThanAddress(const void* ptr, bool* result) GTEST_NO_INLINE_;
        +void StackLowerThanAddress(const void* ptr, bool* result) {
        +  int dummy;
        +  *result = (&dummy < ptr);
        +}
        +
        +// Make sure AddressSanitizer does not tamper with the stack here.
        +GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_
        +bool StackGrowsDown() {
        +  int dummy;
        +  bool result;
        +  StackLowerThanAddress(&dummy, &result);
        +  return result;
        +}
        +
        +// Spawns a child process with the same executable as the current process in
        +// a thread-safe manner and instructs it to run the death test.  The
        +// implementation uses fork(2) + exec.  On systems where clone(2) is
        +// available, it is used instead, being slightly more thread-safe.  On QNX,
        +// fork supports only single-threaded environments, so this function uses
        +// spawn(2) there instead.  The function dies with an error message if
        +// anything goes wrong.
        +static pid_t ExecDeathTestSpawnChild(char* const* argv, int close_fd) {
        +  ExecDeathTestArgs args = { argv, close_fd };
        +  pid_t child_pid = -1;
        +
        +#  if GTEST_OS_QNX
        +  // Obtains the current directory and sets it to be closed in the child
        +  // process.
        +  const int cwd_fd = open(".", O_RDONLY);
        +  GTEST_DEATH_TEST_CHECK_(cwd_fd != -1);
        +  GTEST_DEATH_TEST_CHECK_SYSCALL_(fcntl(cwd_fd, F_SETFD, FD_CLOEXEC));
        +  // We need to execute the test program in the same environment where
        +  // it was originally invoked.  Therefore we change to the original
        +  // working directory first.
        +  const char* const original_dir =
        +      UnitTest::GetInstance()->original_working_dir();
        +  // We can safely call chdir() as it's a direct system call.
        +  if (chdir(original_dir) != 0) {
        +    DeathTestAbort(std::string("chdir(\"") + original_dir + "\") failed: " +
        +                   GetLastErrnoDescription());
        +    return EXIT_FAILURE;
        +  }
        +
        +  int fd_flags;
        +  // Set close_fd to be closed after spawn.
        +  GTEST_DEATH_TEST_CHECK_SYSCALL_(fd_flags = fcntl(close_fd, F_GETFD));
        +  GTEST_DEATH_TEST_CHECK_SYSCALL_(fcntl(close_fd, F_SETFD,
        +                                        fd_flags | FD_CLOEXEC));
        +  struct inheritance inherit = {0};
        +  // spawn is a system call.
        +  child_pid = spawn(args.argv[0], 0, NULL, &inherit, args.argv, GetEnviron());
        +  // Restores the current working directory.
        +  GTEST_DEATH_TEST_CHECK_(fchdir(cwd_fd) != -1);
        +  GTEST_DEATH_TEST_CHECK_SYSCALL_(close(cwd_fd));
        +
        +#  else   // GTEST_OS_QNX
        +#   if GTEST_OS_LINUX
        +  // When a SIGPROF signal is received while fork() or clone() are executing,
        +  // the process may hang. To avoid this, we ignore SIGPROF here and re-enable
        +  // it after the call to fork()/clone() is complete.
        +  struct sigaction saved_sigprof_action;
        +  struct sigaction ignore_sigprof_action;
        +  memset(&ignore_sigprof_action, 0, sizeof(ignore_sigprof_action));
        +  sigemptyset(&ignore_sigprof_action.sa_mask);
        +  ignore_sigprof_action.sa_handler = SIG_IGN;
        +  GTEST_DEATH_TEST_CHECK_SYSCALL_(sigaction(
        +      SIGPROF, &ignore_sigprof_action, &saved_sigprof_action));
        +#   endif  // GTEST_OS_LINUX
        +
        +#   if GTEST_HAS_CLONE
        +  const bool use_fork = GTEST_FLAG(death_test_use_fork);
        +
        +  if (!use_fork) {
        +    static const bool stack_grows_down = StackGrowsDown();
        +    const size_t stack_size = getpagesize();
        +    // MMAP_ANONYMOUS is not defined on Mac, so we use MAP_ANON instead.
        +    void* const stack = mmap(NULL, stack_size, PROT_READ | PROT_WRITE,
        +                             MAP_ANON | MAP_PRIVATE, -1, 0);
        +    GTEST_DEATH_TEST_CHECK_(stack != MAP_FAILED);
        +
        +    // Maximum stack alignment in bytes:  For a downward-growing stack, this
        +    // amount is subtracted from size of the stack space to get an address
        +    // that is within the stack space and is aligned on all systems we care
        +    // about.  As far as I know there is no ABI with stack alignment greater
        +    // than 64.  We assume stack and stack_size already have alignment of
        +    // kMaxStackAlignment.
        +    const size_t kMaxStackAlignment = 64;
        +    void* const stack_top =
        +        static_cast<char*>(stack) +
        +            (stack_grows_down ? stack_size - kMaxStackAlignment : 0);
        +    GTEST_DEATH_TEST_CHECK_(stack_size > kMaxStackAlignment &&
        +        reinterpret_cast<intptr_t>(stack_top) % kMaxStackAlignment == 0);
        +
        +    child_pid = clone(&ExecDeathTestChildMain, stack_top, SIGCHLD, &args);
        +
        +    GTEST_DEATH_TEST_CHECK_(munmap(stack, stack_size) != -1);
        +  }
        +#   else
        +  const bool use_fork = true;
        +#   endif  // GTEST_HAS_CLONE
        +
        +  if (use_fork && (child_pid = fork()) == 0) {
        +      ExecDeathTestChildMain(&args);
        +      _exit(0);
        +  }
        +#  endif  // GTEST_OS_QNX
        +#  if GTEST_OS_LINUX
        +  GTEST_DEATH_TEST_CHECK_SYSCALL_(
        +      sigaction(SIGPROF, &saved_sigprof_action, NULL));
        +#  endif  // GTEST_OS_LINUX
        +
        +  GTEST_DEATH_TEST_CHECK_(child_pid != -1);
        +  return child_pid;
        +}
        +
        +// The AssumeRole process for a fork-and-exec death test.  It re-executes the
        +// main program from the beginning, setting the --gtest_filter
        +// and --gtest_internal_run_death_test flags to cause only the current
        +// death test to be re-run.
        +DeathTest::TestRole ExecDeathTest::AssumeRole() {
        +  const UnitTestImpl* const impl = GetUnitTestImpl();
        +  const InternalRunDeathTestFlag* const flag =
        +      impl->internal_run_death_test_flag();
        +  const TestInfo* const info = impl->current_test_info();
        +  const int death_test_index = info->result()->death_test_count();
        +
        +  if (flag != NULL) {
        +    set_write_fd(flag->write_fd());
        +    return EXECUTE_TEST;
        +  }
        +
        +  int pipe_fd[2];
        +  GTEST_DEATH_TEST_CHECK_(pipe(pipe_fd) != -1);
        +  // Clear the close-on-exec flag on the write end of the pipe, lest
        +  // it be closed when the child process does an exec:
        +  GTEST_DEATH_TEST_CHECK_(fcntl(pipe_fd[1], F_SETFD, 0) != -1);
        +
        +  const std::string filter_flag =
        +      std::string("--") + GTEST_FLAG_PREFIX_ + kFilterFlag + "="
        +      + info->test_case_name() + "." + info->name();
        +  const std::string internal_flag =
        +      std::string("--") + GTEST_FLAG_PREFIX_ + kInternalRunDeathTestFlag + "="
        +      + file_ + "|" + StreamableToString(line_) + "|"
        +      + StreamableToString(death_test_index) + "|"
        +      + StreamableToString(pipe_fd[1]);
        +  Arguments args;
        +  args.AddArguments(GetArgvsForDeathTestChildProcess());
        +  args.AddArgument(filter_flag.c_str());
        +  args.AddArgument(internal_flag.c_str());
        +
        +  DeathTest::set_last_death_test_message("");
        +
        +  CaptureStderr();
        +  // See the comment in NoExecDeathTest::AssumeRole for why the next line
        +  // is necessary.
        +  FlushInfoLog();
        +
        +  const pid_t child_pid = ExecDeathTestSpawnChild(args.Argv(), pipe_fd[0]);
        +  GTEST_DEATH_TEST_CHECK_SYSCALL_(close(pipe_fd[1]));
        +  set_child_pid(child_pid);
        +  set_read_fd(pipe_fd[0]);
        +  set_spawned(true);
        +  return OVERSEE_TEST;
        +}
        +
        +# endif  // !GTEST_OS_WINDOWS
        +
        +// Creates a concrete DeathTest-derived class that depends on the
        +// --gtest_death_test_style flag, and sets the pointer pointed to
        +// by the "test" argument to its address.  If the test should be
        +// skipped, sets that pointer to NULL.  Returns true, unless the
        +// flag is set to an invalid value.
        +bool DefaultDeathTestFactory::Create(const char* statement, const RE* regex,
        +                                     const char* file, int line,
        +                                     DeathTest** test) {
        +  UnitTestImpl* const impl = GetUnitTestImpl();
        +  const InternalRunDeathTestFlag* const flag =
        +      impl->internal_run_death_test_flag();
        +  const int death_test_index = impl->current_test_info()
        +      ->increment_death_test_count();
        +
        +  if (flag != NULL) {
        +    if (death_test_index > flag->index()) {
        +      DeathTest::set_last_death_test_message(
        +          "Death test count (" + StreamableToString(death_test_index)
        +          + ") somehow exceeded expected maximum ("
        +          + StreamableToString(flag->index()) + ")");
        +      return false;
        +    }
        +
        +    if (!(flag->file() == file && flag->line() == line &&
        +          flag->index() == death_test_index)) {
        +      *test = NULL;
        +      return true;
        +    }
        +  }
        +
        +# if GTEST_OS_WINDOWS
        +
        +  if (GTEST_FLAG(death_test_style) == "threadsafe" ||
        +      GTEST_FLAG(death_test_style) == "fast") {
        +    *test = new WindowsDeathTest(statement, regex, file, line);
        +  }
        +
        +# else
        +
        +  if (GTEST_FLAG(death_test_style) == "threadsafe") {
        +    *test = new ExecDeathTest(statement, regex, file, line);
        +  } else if (GTEST_FLAG(death_test_style) == "fast") {
        +    *test = new NoExecDeathTest(statement, regex);
        +  }
        +
        +# endif  // GTEST_OS_WINDOWS
        +
        +  else {  // NOLINT - this is more readable than unbalanced brackets inside #if.
        +    DeathTest::set_last_death_test_message(
        +        "Unknown death test style \"" + GTEST_FLAG(death_test_style)
        +        + "\" encountered");
        +    return false;
        +  }
        +
        +  return true;
        +}
        +
        +# if GTEST_OS_WINDOWS
        +// Recreates the pipe and event handles from the provided parameters,
        +// signals the event, and returns a file descriptor wrapped around the pipe
        +// handle. This function is called in the child process only.
        +int GetStatusFileDescriptor(unsigned int parent_process_id,
        +                            size_t write_handle_as_size_t,
        +                            size_t event_handle_as_size_t) {
        +  AutoHandle parent_process_handle(::OpenProcess(PROCESS_DUP_HANDLE,
        +                                                   FALSE,  // Non-inheritable.
        +                                                   parent_process_id));
        +  if (parent_process_handle.Get() == INVALID_HANDLE_VALUE) {
        +    DeathTestAbort("Unable to open parent process " +
        +                   StreamableToString(parent_process_id));
        +  }
        +
        +  // TODO(vladl@google.com): Replace the following check with a
        +  // compile-time assertion when available.
        +  GTEST_CHECK_(sizeof(HANDLE) <= sizeof(size_t));
        +
        +  const HANDLE write_handle =
        +      reinterpret_cast<HANDLE>(write_handle_as_size_t);
        +  HANDLE dup_write_handle;
        +
        +  // The newly initialized handle is accessible only in in the parent
        +  // process. To obtain one accessible within the child, we need to use
        +  // DuplicateHandle.
        +  if (!::DuplicateHandle(parent_process_handle.Get(), write_handle,
        +                         ::GetCurrentProcess(), &dup_write_handle,
        +                         0x0,    // Requested privileges ignored since
        +                                 // DUPLICATE_SAME_ACCESS is used.
        +                         FALSE,  // Request non-inheritable handler.
        +                         DUPLICATE_SAME_ACCESS)) {
        +    DeathTestAbort("Unable to duplicate the pipe handle " +
        +                   StreamableToString(write_handle_as_size_t) +
        +                   " from the parent process " +
        +                   StreamableToString(parent_process_id));
        +  }
        +
        +  const HANDLE event_handle = reinterpret_cast<HANDLE>(event_handle_as_size_t);
        +  HANDLE dup_event_handle;
        +
        +  if (!::DuplicateHandle(parent_process_handle.Get(), event_handle,
        +                         ::GetCurrentProcess(), &dup_event_handle,
        +                         0x0,
        +                         FALSE,
        +                         DUPLICATE_SAME_ACCESS)) {
        +    DeathTestAbort("Unable to duplicate the event handle " +
        +                   StreamableToString(event_handle_as_size_t) +
        +                   " from the parent process " +
        +                   StreamableToString(parent_process_id));
        +  }
        +
        +  const int write_fd =
        +      ::_open_osfhandle(reinterpret_cast<intptr_t>(dup_write_handle), O_APPEND);
        +  if (write_fd == -1) {
        +    DeathTestAbort("Unable to convert pipe handle " +
        +                   StreamableToString(write_handle_as_size_t) +
        +                   " to a file descriptor");
        +  }
        +
        +  // Signals the parent that the write end of the pipe has been acquired
        +  // so the parent can release its own write end.
        +  ::SetEvent(dup_event_handle);
        +
        +  return write_fd;
        +}
        +# endif  // GTEST_OS_WINDOWS
        +
        +// Returns a newly created InternalRunDeathTestFlag object with fields
        +// initialized from the GTEST_FLAG(internal_run_death_test) flag if
        +// the flag is specified; otherwise returns NULL.
        +InternalRunDeathTestFlag* ParseInternalRunDeathTestFlag() {
        +  if (GTEST_FLAG(internal_run_death_test) == "") return NULL;
        +
        +  // GTEST_HAS_DEATH_TEST implies that we have ::std::string, so we
        +  // can use it here.
        +  int line = -1;
        +  int index = -1;
        +  ::std::vector< ::std::string> fields;
        +  SplitString(GTEST_FLAG(internal_run_death_test).c_str(), '|', &fields);
        +  int write_fd = -1;
        +
        +# if GTEST_OS_WINDOWS
        +
        +  unsigned int parent_process_id = 0;
        +  size_t write_handle_as_size_t = 0;
        +  size_t event_handle_as_size_t = 0;
        +
        +  if (fields.size() != 6
        +      || !ParseNaturalNumber(fields[1], &line)
        +      || !ParseNaturalNumber(fields[2], &index)
        +      || !ParseNaturalNumber(fields[3], &parent_process_id)
        +      || !ParseNaturalNumber(fields[4], &write_handle_as_size_t)
        +      || !ParseNaturalNumber(fields[5], &event_handle_as_size_t)) {
        +    DeathTestAbort("Bad --gtest_internal_run_death_test flag: " +
        +                   GTEST_FLAG(internal_run_death_test));
        +  }
        +  write_fd = GetStatusFileDescriptor(parent_process_id,
        +                                     write_handle_as_size_t,
        +                                     event_handle_as_size_t);
        +# else
        +
        +  if (fields.size() != 4
        +      || !ParseNaturalNumber(fields[1], &line)
        +      || !ParseNaturalNumber(fields[2], &index)
        +      || !ParseNaturalNumber(fields[3], &write_fd)) {
        +    DeathTestAbort("Bad --gtest_internal_run_death_test flag: "
        +        + GTEST_FLAG(internal_run_death_test));
        +  }
        +
        +# endif  // GTEST_OS_WINDOWS
        +
        +  return new InternalRunDeathTestFlag(fields[0], line, index, write_fd);
        +}
        +
        +}  // namespace internal
        +
        +#endif  // GTEST_HAS_DEATH_TEST
        +
        +}  // namespace testing
        diff --git a/lib/ann/fann/lib/googletest/src/gtest-filepath.cc b/lib/ann/fann/lib/googletest/src/gtest-filepath.cc
        new file mode 100644
        index 0000000..0292dc1
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/src/gtest-filepath.cc
        @@ -0,0 +1,387 @@
        +// Copyright 2008, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Authors: keith.ray@gmail.com (Keith Ray)
        +
        +#include "gtest/gtest-message.h"
        +#include "gtest/internal/gtest-filepath.h"
        +#include "gtest/internal/gtest-port.h"
        +
        +#include <stdlib.h>
        +
        +#if GTEST_OS_WINDOWS_MOBILE
        +# include <windows.h>
        +#elif GTEST_OS_WINDOWS
        +# include <direct.h>
        +# include <io.h>
        +#elif GTEST_OS_SYMBIAN
        +// Symbian OpenC has PATH_MAX in sys/syslimits.h
        +# include <sys/syslimits.h>
        +#else
        +# include <limits.h>
        +# include <climits>  // Some Linux distributions define PATH_MAX here.
        +#endif  // GTEST_OS_WINDOWS_MOBILE
        +
        +#if GTEST_OS_WINDOWS
        +# define GTEST_PATH_MAX_ _MAX_PATH
        +#elif defined(PATH_MAX)
        +# define GTEST_PATH_MAX_ PATH_MAX
        +#elif defined(_XOPEN_PATH_MAX)
        +# define GTEST_PATH_MAX_ _XOPEN_PATH_MAX
        +#else
        +# define GTEST_PATH_MAX_ _POSIX_PATH_MAX
        +#endif  // GTEST_OS_WINDOWS
        +
        +#include "gtest/internal/gtest-string.h"
        +
        +namespace testing {
        +namespace internal {
        +
        +#if GTEST_OS_WINDOWS
        +// On Windows, '\\' is the standard path separator, but many tools and the
        +// Windows API also accept '/' as an alternate path separator. Unless otherwise
        +// noted, a file path can contain either kind of path separators, or a mixture
        +// of them.
        +const char kPathSeparator = '\\';
        +const char kAlternatePathSeparator = '/';
        +const char kAlternatePathSeparatorString[] = "/";
        +# if GTEST_OS_WINDOWS_MOBILE
        +// Windows CE doesn't have a current directory. You should not use
        +// the current directory in tests on Windows CE, but this at least
        +// provides a reasonable fallback.
        +const char kCurrentDirectoryString[] = "\\";
        +// Windows CE doesn't define INVALID_FILE_ATTRIBUTES
        +const DWORD kInvalidFileAttributes = 0xffffffff;
        +# else
        +const char kCurrentDirectoryString[] = ".\\";
        +# endif  // GTEST_OS_WINDOWS_MOBILE
        +#else
        +const char kPathSeparator = '/';
        +const char kCurrentDirectoryString[] = "./";
        +#endif  // GTEST_OS_WINDOWS
        +
        +// Returns whether the given character is a valid path separator.
        +static bool IsPathSeparator(char c) {
        +#if GTEST_HAS_ALT_PATH_SEP_
        +  return (c == kPathSeparator) || (c == kAlternatePathSeparator);
        +#else
        +  return c == kPathSeparator;
        +#endif
        +}
        +
        +// Returns the current working directory, or "" if unsuccessful.
        +FilePath FilePath::GetCurrentDir() {
        +#if GTEST_OS_WINDOWS_MOBILE || GTEST_OS_WINDOWS_PHONE || GTEST_OS_WINDOWS_RT
        +  // Windows CE doesn't have a current directory, so we just return
        +  // something reasonable.
        +  return FilePath(kCurrentDirectoryString);
        +#elif GTEST_OS_WINDOWS
        +  char cwd[GTEST_PATH_MAX_ + 1] = { '\0' };
        +  return FilePath(_getcwd(cwd, sizeof(cwd)) == NULL ? "" : cwd);
        +#else
        +  char cwd[GTEST_PATH_MAX_ + 1] = { '\0' };
        +  char* result = getcwd(cwd, sizeof(cwd));
        +# if GTEST_OS_NACL
        +  // getcwd will likely fail in NaCl due to the sandbox, so return something
        +  // reasonable. The user may have provided a shim implementation for getcwd,
        +  // however, so fallback only when failure is detected.
        +  return FilePath(result == NULL ? kCurrentDirectoryString : cwd);
        +# endif  // GTEST_OS_NACL
        +  return FilePath(result == NULL ? "" : cwd);
        +#endif  // GTEST_OS_WINDOWS_MOBILE
        +}
        +
        +// Returns a copy of the FilePath with the case-insensitive extension removed.
        +// Example: FilePath("dir/file.exe").RemoveExtension("EXE") returns
        +// FilePath("dir/file"). If a case-insensitive extension is not
        +// found, returns a copy of the original FilePath.
        +FilePath FilePath::RemoveExtension(const char* extension) const {
        +  const std::string dot_extension = std::string(".") + extension;
        +  if (String::EndsWithCaseInsensitive(pathname_, dot_extension)) {
        +    return FilePath(pathname_.substr(
        +        0, pathname_.length() - dot_extension.length()));
        +  }
        +  return *this;
        +}
        +
        +// Returns a pointer to the last occurence of a valid path separator in
        +// the FilePath. On Windows, for example, both '/' and '\' are valid path
        +// separators. Returns NULL if no path separator was found.
        +const char* FilePath::FindLastPathSeparator() const {
        +  const char* const last_sep = strrchr(c_str(), kPathSeparator);
        +#if GTEST_HAS_ALT_PATH_SEP_
        +  const char* const last_alt_sep = strrchr(c_str(), kAlternatePathSeparator);
        +  // Comparing two pointers of which only one is NULL is undefined.
        +  if (last_alt_sep != NULL &&
        +      (last_sep == NULL || last_alt_sep > last_sep)) {
        +    return last_alt_sep;
        +  }
        +#endif
        +  return last_sep;
        +}
        +
        +// Returns a copy of the FilePath with the directory part removed.
        +// Example: FilePath("path/to/file").RemoveDirectoryName() returns
        +// FilePath("file"). If there is no directory part ("just_a_file"), it returns
        +// the FilePath unmodified. If there is no file part ("just_a_dir/") it
        +// returns an empty FilePath ("").
        +// On Windows platform, '\' is the path separator, otherwise it is '/'.
        +FilePath FilePath::RemoveDirectoryName() const {
        +  const char* const last_sep = FindLastPathSeparator();
        +  return last_sep ? FilePath(last_sep + 1) : *this;
        +}
        +
        +// RemoveFileName returns the directory path with the filename removed.
        +// Example: FilePath("path/to/file").RemoveFileName() returns "path/to/".
        +// If the FilePath is "a_file" or "/a_file", RemoveFileName returns
        +// FilePath("./") or, on Windows, FilePath(".\\"). If the filepath does
        +// not have a file, like "just/a/dir/", it returns the FilePath unmodified.
        +// On Windows platform, '\' is the path separator, otherwise it is '/'.
        +FilePath FilePath::RemoveFileName() const {
        +  const char* const last_sep = FindLastPathSeparator();
        +  std::string dir;
        +  if (last_sep) {
        +    dir = std::string(c_str(), last_sep + 1 - c_str());
        +  } else {
        +    dir = kCurrentDirectoryString;
        +  }
        +  return FilePath(dir);
        +}
        +
        +// Helper functions for naming files in a directory for xml output.
        +
        +// Given directory = "dir", base_name = "test", number = 0,
        +// extension = "xml", returns "dir/test.xml". If number is greater
        +// than zero (e.g., 12), returns "dir/test_12.xml".
        +// On Windows platform, uses \ as the separator rather than /.
        +FilePath FilePath::MakeFileName(const FilePath& directory,
        +                                const FilePath& base_name,
        +                                int number,
        +                                const char* extension) {
        +  std::string file;
        +  if (number == 0) {
        +    file = base_name.string() + "." + extension;
        +  } else {
        +    file = base_name.string() + "_" + StreamableToString(number)
        +        + "." + extension;
        +  }
        +  return ConcatPaths(directory, FilePath(file));
        +}
        +
        +// Given directory = "dir", relative_path = "test.xml", returns "dir/test.xml".
        +// On Windows, uses \ as the separator rather than /.
        +FilePath FilePath::ConcatPaths(const FilePath& directory,
        +                               const FilePath& relative_path) {
        +  if (directory.IsEmpty())
        +    return relative_path;
        +  const FilePath dir(directory.RemoveTrailingPathSeparator());
        +  return FilePath(dir.string() + kPathSeparator + relative_path.string());
        +}
        +
        +// Returns true if pathname describes something findable in the file-system,
        +// either a file, directory, or whatever.
        +bool FilePath::FileOrDirectoryExists() const {
        +#if GTEST_OS_WINDOWS_MOBILE
        +  LPCWSTR unicode = String::AnsiToUtf16(pathname_.c_str());
        +  const DWORD attributes = GetFileAttributes(unicode);
        +  delete [] unicode;
        +  return attributes != kInvalidFileAttributes;
        +#else
        +  posix::StatStruct file_stat;
        +  return posix::Stat(pathname_.c_str(), &file_stat) == 0;
        +#endif  // GTEST_OS_WINDOWS_MOBILE
        +}
        +
        +// Returns true if pathname describes a directory in the file-system
        +// that exists.
        +bool FilePath::DirectoryExists() const {
        +  bool result = false;
        +#if GTEST_OS_WINDOWS
        +  // Don't strip off trailing separator if path is a root directory on
        +  // Windows (like "C:\\").
        +  const FilePath& path(IsRootDirectory() ? *this :
        +                                           RemoveTrailingPathSeparator());
        +#else
        +  const FilePath& path(*this);
        +#endif
        +
        +#if GTEST_OS_WINDOWS_MOBILE
        +  LPCWSTR unicode = String::AnsiToUtf16(path.c_str());
        +  const DWORD attributes = GetFileAttributes(unicode);
        +  delete [] unicode;
        +  if ((attributes != kInvalidFileAttributes) &&
        +      (attributes & FILE_ATTRIBUTE_DIRECTORY)) {
        +    result = true;
        +  }
        +#else
        +  posix::StatStruct file_stat;
        +  result = posix::Stat(path.c_str(), &file_stat) == 0 &&
        +      posix::IsDir(file_stat);
        +#endif  // GTEST_OS_WINDOWS_MOBILE
        +
        +  return result;
        +}
        +
        +// Returns true if pathname describes a root directory. (Windows has one
        +// root directory per disk drive.)
        +bool FilePath::IsRootDirectory() const {
        +#if GTEST_OS_WINDOWS
        +  // TODO(wan@google.com): on Windows a network share like
        +  // \\server\share can be a root directory, although it cannot be the
        +  // current directory.  Handle this properly.
        +  return pathname_.length() == 3 && IsAbsolutePath();
        +#else
        +  return pathname_.length() == 1 && IsPathSeparator(pathname_.c_str()[0]);
        +#endif
        +}
        +
        +// Returns true if pathname describes an absolute path.
        +bool FilePath::IsAbsolutePath() const {
        +  const char* const name = pathname_.c_str();
        +#if GTEST_OS_WINDOWS
        +  return pathname_.length() >= 3 &&
        +     ((name[0] >= 'a' && name[0] <= 'z') ||
        +      (name[0] >= 'A' && name[0] <= 'Z')) &&
        +     name[1] == ':' &&
        +     IsPathSeparator(name[2]);
        +#else
        +  return IsPathSeparator(name[0]);
        +#endif
        +}
        +
        +// Returns a pathname for a file that does not currently exist. The pathname
        +// will be directory/base_name.extension or
        +// directory/base_name_<number>.extension if directory/base_name.extension
        +// already exists. The number will be incremented until a pathname is found
        +// that does not already exist.
        +// Examples: 'dir/foo_test.xml' or 'dir/foo_test_1.xml'.
        +// There could be a race condition if two or more processes are calling this
        +// function at the same time -- they could both pick the same filename.
        +FilePath FilePath::GenerateUniqueFileName(const FilePath& directory,
        +                                          const FilePath& base_name,
        +                                          const char* extension) {
        +  FilePath full_pathname;
        +  int number = 0;
        +  do {
        +    full_pathname.Set(MakeFileName(directory, base_name, number++, extension));
        +  } while (full_pathname.FileOrDirectoryExists());
        +  return full_pathname;
        +}
        +
        +// Returns true if FilePath ends with a path separator, which indicates that
        +// it is intended to represent a directory. Returns false otherwise.
        +// This does NOT check that a directory (or file) actually exists.
        +bool FilePath::IsDirectory() const {
        +  return !pathname_.empty() &&
        +         IsPathSeparator(pathname_.c_str()[pathname_.length() - 1]);
        +}
        +
        +// Create directories so that path exists. Returns true if successful or if
        +// the directories already exist; returns false if unable to create directories
        +// for any reason.
        +bool FilePath::CreateDirectoriesRecursively() const {
        +  if (!this->IsDirectory()) {
        +    return false;
        +  }
        +
        +  if (pathname_.length() == 0 || this->DirectoryExists()) {
        +    return true;
        +  }
        +
        +  const FilePath parent(this->RemoveTrailingPathSeparator().RemoveFileName());
        +  return parent.CreateDirectoriesRecursively() && this->CreateFolder();
        +}
        +
        +// Create the directory so that path exists. Returns true if successful or
        +// if the directory already exists; returns false if unable to create the
        +// directory for any reason, including if the parent directory does not
        +// exist. Not named "CreateDirectory" because that's a macro on Windows.
        +bool FilePath::CreateFolder() const {
        +#if GTEST_OS_WINDOWS_MOBILE
        +  FilePath removed_sep(this->RemoveTrailingPathSeparator());
        +  LPCWSTR unicode = String::AnsiToUtf16(removed_sep.c_str());
        +  int result = CreateDirectory(unicode, NULL) ? 0 : -1;
        +  delete [] unicode;
        +#elif GTEST_OS_WINDOWS
        +  int result = _mkdir(pathname_.c_str());
        +#else
        +  int result = mkdir(pathname_.c_str(), 0777);
        +#endif  // GTEST_OS_WINDOWS_MOBILE
        +
        +  if (result == -1) {
        +    return this->DirectoryExists();  // An error is OK if the directory exists.
        +  }
        +  return true;  // No error.
        +}
        +
        +// If input name has a trailing separator character, remove it and return the
        +// name, otherwise return the name string unmodified.
        +// On Windows platform, uses \ as the separator, other platforms use /.
        +FilePath FilePath::RemoveTrailingPathSeparator() const {
        +  return IsDirectory()
        +      ? FilePath(pathname_.substr(0, pathname_.length() - 1))
        +      : *this;
        +}
        +
        +// Removes any redundant separators that might be in the pathname.
        +// For example, "bar///foo" becomes "bar/foo". Does not eliminate other
        +// redundancies that might be in a pathname involving "." or "..".
        +// TODO(wan@google.com): handle Windows network shares (e.g. \\server\share).
        +void FilePath::Normalize() {
        +  if (pathname_.c_str() == NULL) {
        +    pathname_ = "";
        +    return;
        +  }
        +  const char* src = pathname_.c_str();
        +  char* const dest = new char[pathname_.length() + 1];
        +  char* dest_ptr = dest;
        +  memset(dest_ptr, 0, pathname_.length() + 1);
        +
        +  while (*src != '\0') {
        +    *dest_ptr = *src;
        +    if (!IsPathSeparator(*src)) {
        +      src++;
        +    } else {
        +#if GTEST_HAS_ALT_PATH_SEP_
        +      if (*dest_ptr == kAlternatePathSeparator) {
        +        *dest_ptr = kPathSeparator;
        +      }
        +#endif
        +      while (IsPathSeparator(*src))
        +        src++;
        +    }
        +    dest_ptr++;
        +  }
        +  *dest_ptr = '\0';
        +  pathname_ = dest;
        +  delete[] dest;
        +}
        +
        +}  // namespace internal
        +}  // namespace testing
        diff --git a/lib/ann/fann/lib/googletest/src/gtest-internal-inl.h b/lib/ann/fann/lib/googletest/src/gtest-internal-inl.h
        new file mode 100644
        index 0000000..ed8a682
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/src/gtest-internal-inl.h
        @@ -0,0 +1,1183 @@
        +// Copyright 2005, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +// Utility functions and classes used by the Google C++ testing framework.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +//
        +// This file contains purely Google Test's internal implementation.  Please
        +// DO NOT #INCLUDE IT IN A USER PROGRAM.
        +
        +#ifndef GTEST_SRC_GTEST_INTERNAL_INL_H_
        +#define GTEST_SRC_GTEST_INTERNAL_INL_H_
        +
        +// GTEST_IMPLEMENTATION_ is defined to 1 iff the current translation unit is
        +// part of Google Test's implementation; otherwise it's undefined.
        +#if !GTEST_IMPLEMENTATION_
        +// If this file is included from the user's code, just say no.
        +# error "gtest-internal-inl.h is part of Google Test's internal implementation."
        +# error "It must not be included except by Google Test itself."
        +#endif  // GTEST_IMPLEMENTATION_
        +
        +#ifndef _WIN32_WCE
        +# include <errno.h>
        +#endif  // !_WIN32_WCE
        +#include <stddef.h>
        +#include <stdlib.h>  // For strtoll/_strtoul64/malloc/free.
        +#include <string.h>  // For memmove.
        +
        +#include <algorithm>
        +#include <string>
        +#include <vector>
        +
        +#include "gtest/internal/gtest-port.h"
        +
        +#if GTEST_CAN_STREAM_RESULTS_
        +# include <arpa/inet.h>  // NOLINT
        +# include <netdb.h>  // NOLINT
        +#endif
        +
        +#if GTEST_OS_WINDOWS
        +# include <windows.h>  // NOLINT
        +#endif  // GTEST_OS_WINDOWS
        +
        +#include "gtest/gtest.h"  // NOLINT
        +#include "gtest/gtest-spi.h"
        +
        +namespace testing {
        +
        +// Declares the flags.
        +//
        +// We don't want the users to modify this flag in the code, but want
        +// Google Test's own unit tests to be able to access it. Therefore we
        +// declare it here as opposed to in gtest.h.
        +GTEST_DECLARE_bool_(death_test_use_fork);
        +
        +namespace internal {
        +
        +// The value of GetTestTypeId() as seen from within the Google Test
        +// library.  This is solely for testing GetTestTypeId().
        +GTEST_API_ extern const TypeId kTestTypeIdInGoogleTest;
        +
        +// Names of the flags (needed for parsing Google Test flags).
        +const char kAlsoRunDisabledTestsFlag[] = "also_run_disabled_tests";
        +const char kBreakOnFailureFlag[] = "break_on_failure";
        +const char kCatchExceptionsFlag[] = "catch_exceptions";
        +const char kColorFlag[] = "color";
        +const char kFilterFlag[] = "filter";
        +const char kListTestsFlag[] = "list_tests";
        +const char kOutputFlag[] = "output";
        +const char kPrintTimeFlag[] = "print_time";
        +const char kRandomSeedFlag[] = "random_seed";
        +const char kRepeatFlag[] = "repeat";
        +const char kShuffleFlag[] = "shuffle";
        +const char kStackTraceDepthFlag[] = "stack_trace_depth";
        +const char kStreamResultToFlag[] = "stream_result_to";
        +const char kThrowOnFailureFlag[] = "throw_on_failure";
        +const char kFlagfileFlag[] = "flagfile";
        +
        +// A valid random seed must be in [1, kMaxRandomSeed].
        +const int kMaxRandomSeed = 99999;
        +
        +// g_help_flag is true iff the --help flag or an equivalent form is
        +// specified on the command line.
        +GTEST_API_ extern bool g_help_flag;
        +
        +// Returns the current time in milliseconds.
        +GTEST_API_ TimeInMillis GetTimeInMillis();
        +
        +// Returns true iff Google Test should use colors in the output.
        +GTEST_API_ bool ShouldUseColor(bool stdout_is_tty);
        +
        +// Formats the given time in milliseconds as seconds.
        +GTEST_API_ std::string FormatTimeInMillisAsSeconds(TimeInMillis ms);
        +
        +// Converts the given time in milliseconds to a date string in the ISO 8601
        +// format, without the timezone information.  N.B.: due to the use the
        +// non-reentrant localtime() function, this function is not thread safe.  Do
        +// not use it in any code that can be called from multiple threads.
        +GTEST_API_ std::string FormatEpochTimeInMillisAsIso8601(TimeInMillis ms);
        +
        +// Parses a string for an Int32 flag, in the form of "--flag=value".
        +//
        +// On success, stores the value of the flag in *value, and returns
        +// true.  On failure, returns false without changing *value.
        +GTEST_API_ bool ParseInt32Flag(
        +    const char* str, const char* flag, Int32* value);
        +
        +// Returns a random seed in range [1, kMaxRandomSeed] based on the
        +// given --gtest_random_seed flag value.
        +inline int GetRandomSeedFromFlag(Int32 random_seed_flag) {
        +  const unsigned int raw_seed = (random_seed_flag == 0) ?
        +      static_cast<unsigned int>(GetTimeInMillis()) :
        +      static_cast<unsigned int>(random_seed_flag);
        +
        +  // Normalizes the actual seed to range [1, kMaxRandomSeed] such that
        +  // it's easy to type.
        +  const int normalized_seed =
        +      static_cast<int>((raw_seed - 1U) %
        +                       static_cast<unsigned int>(kMaxRandomSeed)) + 1;
        +  return normalized_seed;
        +}
        +
        +// Returns the first valid random seed after 'seed'.  The behavior is
        +// undefined if 'seed' is invalid.  The seed after kMaxRandomSeed is
        +// considered to be 1.
        +inline int GetNextRandomSeed(int seed) {
        +  GTEST_CHECK_(1 <= seed && seed <= kMaxRandomSeed)
        +      << "Invalid random seed " << seed << " - must be in [1, "
        +      << kMaxRandomSeed << "].";
        +  const int next_seed = seed + 1;
        +  return (next_seed > kMaxRandomSeed) ? 1 : next_seed;
        +}
        +
        +// This class saves the values of all Google Test flags in its c'tor, and
        +// restores them in its d'tor.
        +class GTestFlagSaver {
        + public:
        +  // The c'tor.
        +  GTestFlagSaver() {
        +    also_run_disabled_tests_ = GTEST_FLAG(also_run_disabled_tests);
        +    break_on_failure_ = GTEST_FLAG(break_on_failure);
        +    catch_exceptions_ = GTEST_FLAG(catch_exceptions);
        +    color_ = GTEST_FLAG(color);
        +    death_test_style_ = GTEST_FLAG(death_test_style);
        +    death_test_use_fork_ = GTEST_FLAG(death_test_use_fork);
        +    filter_ = GTEST_FLAG(filter);
        +    internal_run_death_test_ = GTEST_FLAG(internal_run_death_test);
        +    list_tests_ = GTEST_FLAG(list_tests);
        +    output_ = GTEST_FLAG(output);
        +    print_time_ = GTEST_FLAG(print_time);
        +    random_seed_ = GTEST_FLAG(random_seed);
        +    repeat_ = GTEST_FLAG(repeat);
        +    shuffle_ = GTEST_FLAG(shuffle);
        +    stack_trace_depth_ = GTEST_FLAG(stack_trace_depth);
        +    stream_result_to_ = GTEST_FLAG(stream_result_to);
        +    throw_on_failure_ = GTEST_FLAG(throw_on_failure);
        +  }
        +
        +  // The d'tor is not virtual.  DO NOT INHERIT FROM THIS CLASS.
        +  ~GTestFlagSaver() {
        +    GTEST_FLAG(also_run_disabled_tests) = also_run_disabled_tests_;
        +    GTEST_FLAG(break_on_failure) = break_on_failure_;
        +    GTEST_FLAG(catch_exceptions) = catch_exceptions_;
        +    GTEST_FLAG(color) = color_;
        +    GTEST_FLAG(death_test_style) = death_test_style_;
        +    GTEST_FLAG(death_test_use_fork) = death_test_use_fork_;
        +    GTEST_FLAG(filter) = filter_;
        +    GTEST_FLAG(internal_run_death_test) = internal_run_death_test_;
        +    GTEST_FLAG(list_tests) = list_tests_;
        +    GTEST_FLAG(output) = output_;
        +    GTEST_FLAG(print_time) = print_time_;
        +    GTEST_FLAG(random_seed) = random_seed_;
        +    GTEST_FLAG(repeat) = repeat_;
        +    GTEST_FLAG(shuffle) = shuffle_;
        +    GTEST_FLAG(stack_trace_depth) = stack_trace_depth_;
        +    GTEST_FLAG(stream_result_to) = stream_result_to_;
        +    GTEST_FLAG(throw_on_failure) = throw_on_failure_;
        +  }
        +
        + private:
        +  // Fields for saving the original values of flags.
        +  bool also_run_disabled_tests_;
        +  bool break_on_failure_;
        +  bool catch_exceptions_;
        +  std::string color_;
        +  std::string death_test_style_;
        +  bool death_test_use_fork_;
        +  std::string filter_;
        +  std::string internal_run_death_test_;
        +  bool list_tests_;
        +  std::string output_;
        +  bool print_time_;
        +  internal::Int32 random_seed_;
        +  internal::Int32 repeat_;
        +  bool shuffle_;
        +  internal::Int32 stack_trace_depth_;
        +  std::string stream_result_to_;
        +  bool throw_on_failure_;
        +} GTEST_ATTRIBUTE_UNUSED_;
        +
        +// Converts a Unicode code point to a narrow string in UTF-8 encoding.
        +// code_point parameter is of type UInt32 because wchar_t may not be
        +// wide enough to contain a code point.
        +// If the code_point is not a valid Unicode code point
        +// (i.e. outside of Unicode range U+0 to U+10FFFF) it will be converted
        +// to "(Invalid Unicode 0xXXXXXXXX)".
        +GTEST_API_ std::string CodePointToUtf8(UInt32 code_point);
        +
        +// Converts a wide string to a narrow string in UTF-8 encoding.
        +// The wide string is assumed to have the following encoding:
        +//   UTF-16 if sizeof(wchar_t) == 2 (on Windows, Cygwin, Symbian OS)
        +//   UTF-32 if sizeof(wchar_t) == 4 (on Linux)
        +// Parameter str points to a null-terminated wide string.
        +// Parameter num_chars may additionally limit the number
        +// of wchar_t characters processed. -1 is used when the entire string
        +// should be processed.
        +// If the string contains code points that are not valid Unicode code points
        +// (i.e. outside of Unicode range U+0 to U+10FFFF) they will be output
        +// as '(Invalid Unicode 0xXXXXXXXX)'. If the string is in UTF16 encoding
        +// and contains invalid UTF-16 surrogate pairs, values in those pairs
        +// will be encoded as individual Unicode characters from Basic Normal Plane.
        +GTEST_API_ std::string WideStringToUtf8(const wchar_t* str, int num_chars);
        +
        +// Reads the GTEST_SHARD_STATUS_FILE environment variable, and creates the file
        +// if the variable is present. If a file already exists at this location, this
        +// function will write over it. If the variable is present, but the file cannot
        +// be created, prints an error and exits.
        +void WriteToShardStatusFileIfNeeded();
        +
        +// Checks whether sharding is enabled by examining the relevant
        +// environment variable values. If the variables are present,
        +// but inconsistent (e.g., shard_index >= total_shards), prints
        +// an error and exits. If in_subprocess_for_death_test, sharding is
        +// disabled because it must only be applied to the original test
        +// process. Otherwise, we could filter out death tests we intended to execute.
        +GTEST_API_ bool ShouldShard(const char* total_shards_str,
        +                            const char* shard_index_str,
        +                            bool in_subprocess_for_death_test);
        +
        +// Parses the environment variable var as an Int32. If it is unset,
        +// returns default_val. If it is not an Int32, prints an error and
        +// and aborts.
        +GTEST_API_ Int32 Int32FromEnvOrDie(const char* env_var, Int32 default_val);
        +
        +// Given the total number of shards, the shard index, and the test id,
        +// returns true iff the test should be run on this shard. The test id is
        +// some arbitrary but unique non-negative integer assigned to each test
        +// method. Assumes that 0 <= shard_index < total_shards.
        +GTEST_API_ bool ShouldRunTestOnShard(
        +    int total_shards, int shard_index, int test_id);
        +
        +// STL container utilities.
        +
        +// Returns the number of elements in the given container that satisfy
        +// the given predicate.
        +template <class Container, typename Predicate>
        +inline int CountIf(const Container& c, Predicate predicate) {
        +  // Implemented as an explicit loop since std::count_if() in libCstd on
        +  // Solaris has a non-standard signature.
        +  int count = 0;
        +  for (typename Container::const_iterator it = c.begin(); it != c.end(); ++it) {
        +    if (predicate(*it))
        +      ++count;
        +  }
        +  return count;
        +}
        +
        +// Applies a function/functor to each element in the container.
        +template <class Container, typename Functor>
        +void ForEach(const Container& c, Functor functor) {
        +  std::for_each(c.begin(), c.end(), functor);
        +}
        +
        +// Returns the i-th element of the vector, or default_value if i is not
        +// in range [0, v.size()).
        +template <typename E>
        +inline E GetElementOr(const std::vector<E>& v, int i, E default_value) {
        +  return (i < 0 || i >= static_cast<int>(v.size())) ? default_value : v[i];
        +}
        +
        +// Performs an in-place shuffle of a range of the vector's elements.
        +// 'begin' and 'end' are element indices as an STL-style range;
        +// i.e. [begin, end) are shuffled, where 'end' == size() means to
        +// shuffle to the end of the vector.
        +template <typename E>
        +void ShuffleRange(internal::Random* random, int begin, int end,
        +                  std::vector<E>* v) {
        +  const int size = static_cast<int>(v->size());
        +  GTEST_CHECK_(0 <= begin && begin <= size)
        +      << "Invalid shuffle range start " << begin << ": must be in range [0, "
        +      << size << "].";
        +  GTEST_CHECK_(begin <= end && end <= size)
        +      << "Invalid shuffle range finish " << end << ": must be in range ["
        +      << begin << ", " << size << "].";
        +
        +  // Fisher-Yates shuffle, from
        +  // http://en.wikipedia.org/wiki/Fisher-Yates_shuffle
        +  for (int range_width = end - begin; range_width >= 2; range_width--) {
        +    const int last_in_range = begin + range_width - 1;
        +    const int selected = begin + random->Generate(range_width);
        +    std::swap((*v)[selected], (*v)[last_in_range]);
        +  }
        +}
        +
        +// Performs an in-place shuffle of the vector's elements.
        +template <typename E>
        +inline void Shuffle(internal::Random* random, std::vector<E>* v) {
        +  ShuffleRange(random, 0, static_cast<int>(v->size()), v);
        +}
        +
        +// A function for deleting an object.  Handy for being used as a
        +// functor.
        +template <typename T>
        +static void Delete(T* x) {
        +  delete x;
        +}
        +
        +// A predicate that checks the key of a TestProperty against a known key.
        +//
        +// TestPropertyKeyIs is copyable.
        +class TestPropertyKeyIs {
        + public:
        +  // Constructor.
        +  //
        +  // TestPropertyKeyIs has NO default constructor.
        +  explicit TestPropertyKeyIs(const std::string& key) : key_(key) {}
        +
        +  // Returns true iff the test name of test property matches on key_.
        +  bool operator()(const TestProperty& test_property) const {
        +    return test_property.key() == key_;
        +  }
        +
        + private:
        +  std::string key_;
        +};
        +
        +// Class UnitTestOptions.
        +//
        +// This class contains functions for processing options the user
        +// specifies when running the tests.  It has only static members.
        +//
        +// In most cases, the user can specify an option using either an
        +// environment variable or a command line flag.  E.g. you can set the
        +// test filter using either GTEST_FILTER or --gtest_filter.  If both
        +// the variable and the flag are present, the latter overrides the
        +// former.
        +class GTEST_API_ UnitTestOptions {
        + public:
        +  // Functions for processing the gtest_output flag.
        +
        +  // Returns the output format, or "" for normal printed output.
        +  static std::string GetOutputFormat();
        +
        +  // Returns the absolute path of the requested output file, or the
        +  // default (test_detail.xml in the original working directory) if
        +  // none was explicitly specified.
        +  static std::string GetAbsolutePathToOutputFile();
        +
        +  // Functions for processing the gtest_filter flag.
        +
        +  // Returns true iff the wildcard pattern matches the string.  The
        +  // first ':' or '\0' character in pattern marks the end of it.
        +  //
        +  // This recursive algorithm isn't very efficient, but is clear and
        +  // works well enough for matching test names, which are short.
        +  static bool PatternMatchesString(const char *pattern, const char *str);
        +
        +  // Returns true iff the user-specified filter matches the test case
        +  // name and the test name.
        +  static bool FilterMatchesTest(const std::string &test_case_name,
        +                                const std::string &test_name);
        +
        +#if GTEST_OS_WINDOWS
        +  // Function for supporting the gtest_catch_exception flag.
        +
        +  // Returns EXCEPTION_EXECUTE_HANDLER if Google Test should handle the
        +  // given SEH exception, or EXCEPTION_CONTINUE_SEARCH otherwise.
        +  // This function is useful as an __except condition.
        +  static int GTestShouldProcessSEH(DWORD exception_code);
        +#endif  // GTEST_OS_WINDOWS
        +
        +  // Returns true if "name" matches the ':' separated list of glob-style
        +  // filters in "filter".
        +  static bool MatchesFilter(const std::string& name, const char* filter);
        +};
        +
        +// Returns the current application's name, removing directory path if that
        +// is present.  Used by UnitTestOptions::GetOutputFile.
        +GTEST_API_ FilePath GetCurrentExecutableName();
        +
        +// The role interface for getting the OS stack trace as a string.
        +class OsStackTraceGetterInterface {
        + public:
        +  OsStackTraceGetterInterface() {}
        +  virtual ~OsStackTraceGetterInterface() {}
        +
        +  // Returns the current OS stack trace as an std::string.  Parameters:
        +  //
        +  //   max_depth  - the maximum number of stack frames to be included
        +  //                in the trace.
        +  //   skip_count - the number of top frames to be skipped; doesn't count
        +  //                against max_depth.
        +  virtual string CurrentStackTrace(int max_depth, int skip_count) = 0;
        +
        +  // UponLeavingGTest() should be called immediately before Google Test calls
        +  // user code. It saves some information about the current stack that
        +  // CurrentStackTrace() will use to find and hide Google Test stack frames.
        +  virtual void UponLeavingGTest() = 0;
        +
        +  // This string is inserted in place of stack frames that are part of
        +  // Google Test's implementation.
        +  static const char* const kElidedFramesMarker;
        +
        + private:
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(OsStackTraceGetterInterface);
        +};
        +
        +// A working implementation of the OsStackTraceGetterInterface interface.
        +class OsStackTraceGetter : public OsStackTraceGetterInterface {
        + public:
        +  OsStackTraceGetter() {}
        +
        +  virtual string CurrentStackTrace(int max_depth, int skip_count);
        +  virtual void UponLeavingGTest();
        +
        + private:
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(OsStackTraceGetter);
        +};
        +
        +// Information about a Google Test trace point.
        +struct TraceInfo {
        +  const char* file;
        +  int line;
        +  std::string message;
        +};
        +
        +// This is the default global test part result reporter used in UnitTestImpl.
        +// This class should only be used by UnitTestImpl.
        +class DefaultGlobalTestPartResultReporter
        +  : public TestPartResultReporterInterface {
        + public:
        +  explicit DefaultGlobalTestPartResultReporter(UnitTestImpl* unit_test);
        +  // Implements the TestPartResultReporterInterface. Reports the test part
        +  // result in the current test.
        +  virtual void ReportTestPartResult(const TestPartResult& result);
        +
        + private:
        +  UnitTestImpl* const unit_test_;
        +
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(DefaultGlobalTestPartResultReporter);
        +};
        +
        +// This is the default per thread test part result reporter used in
        +// UnitTestImpl. This class should only be used by UnitTestImpl.
        +class DefaultPerThreadTestPartResultReporter
        +    : public TestPartResultReporterInterface {
        + public:
        +  explicit DefaultPerThreadTestPartResultReporter(UnitTestImpl* unit_test);
        +  // Implements the TestPartResultReporterInterface. The implementation just
        +  // delegates to the current global test part result reporter of *unit_test_.
        +  virtual void ReportTestPartResult(const TestPartResult& result);
        +
        + private:
        +  UnitTestImpl* const unit_test_;
        +
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(DefaultPerThreadTestPartResultReporter);
        +};
        +
        +// The private implementation of the UnitTest class.  We don't protect
        +// the methods under a mutex, as this class is not accessible by a
        +// user and the UnitTest class that delegates work to this class does
        +// proper locking.
        +class GTEST_API_ UnitTestImpl {
        + public:
        +  explicit UnitTestImpl(UnitTest* parent);
        +  virtual ~UnitTestImpl();
        +
        +  // There are two different ways to register your own TestPartResultReporter.
        +  // You can register your own repoter to listen either only for test results
        +  // from the current thread or for results from all threads.
        +  // By default, each per-thread test result repoter just passes a new
        +  // TestPartResult to the global test result reporter, which registers the
        +  // test part result for the currently running test.
        +
        +  // Returns the global test part result reporter.
        +  TestPartResultReporterInterface* GetGlobalTestPartResultReporter();
        +
        +  // Sets the global test part result reporter.
        +  void SetGlobalTestPartResultReporter(
        +      TestPartResultReporterInterface* reporter);
        +
        +  // Returns the test part result reporter for the current thread.
        +  TestPartResultReporterInterface* GetTestPartResultReporterForCurrentThread();
        +
        +  // Sets the test part result reporter for the current thread.
        +  void SetTestPartResultReporterForCurrentThread(
        +      TestPartResultReporterInterface* reporter);
        +
        +  // Gets the number of successful test cases.
        +  int successful_test_case_count() const;
        +
        +  // Gets the number of failed test cases.
        +  int failed_test_case_count() const;
        +
        +  // Gets the number of all test cases.
        +  int total_test_case_count() const;
        +
        +  // Gets the number of all test cases that contain at least one test
        +  // that should run.
        +  int test_case_to_run_count() const;
        +
        +  // Gets the number of successful tests.
        +  int successful_test_count() const;
        +
        +  // Gets the number of failed tests.
        +  int failed_test_count() const;
        +
        +  // Gets the number of disabled tests that will be reported in the XML report.
        +  int reportable_disabled_test_count() const;
        +
        +  // Gets the number of disabled tests.
        +  int disabled_test_count() const;
        +
        +  // Gets the number of tests to be printed in the XML report.
        +  int reportable_test_count() const;
        +
        +  // Gets the number of all tests.
        +  int total_test_count() const;
        +
        +  // Gets the number of tests that should run.
        +  int test_to_run_count() const;
        +
        +  // Gets the time of the test program start, in ms from the start of the
        +  // UNIX epoch.
        +  TimeInMillis start_timestamp() const { return start_timestamp_; }
        +
        +  // Gets the elapsed time, in milliseconds.
        +  TimeInMillis elapsed_time() const { return elapsed_time_; }
        +
        +  // Returns true iff the unit test passed (i.e. all test cases passed).
        +  bool Passed() const { return !Failed(); }
        +
        +  // Returns true iff the unit test failed (i.e. some test case failed
        +  // or something outside of all tests failed).
        +  bool Failed() const {
        +    return failed_test_case_count() > 0 || ad_hoc_test_result()->Failed();
        +  }
        +
        +  // Gets the i-th test case among all the test cases. i can range from 0 to
        +  // total_test_case_count() - 1. If i is not in that range, returns NULL.
        +  const TestCase* GetTestCase(int i) const {
        +    const int index = GetElementOr(test_case_indices_, i, -1);
        +    return index < 0 ? NULL : test_cases_[i];
        +  }
        +
        +  // Gets the i-th test case among all the test cases. i can range from 0 to
        +  // total_test_case_count() - 1. If i is not in that range, returns NULL.
        +  TestCase* GetMutableTestCase(int i) {
        +    const int index = GetElementOr(test_case_indices_, i, -1);
        +    return index < 0 ? NULL : test_cases_[index];
        +  }
        +
        +  // Provides access to the event listener list.
        +  TestEventListeners* listeners() { return &listeners_; }
        +
        +  // Returns the TestResult for the test that's currently running, or
        +  // the TestResult for the ad hoc test if no test is running.
        +  TestResult* current_test_result();
        +
        +  // Returns the TestResult for the ad hoc test.
        +  const TestResult* ad_hoc_test_result() const { return &ad_hoc_test_result_; }
        +
        +  // Sets the OS stack trace getter.
        +  //
        +  // Does nothing if the input and the current OS stack trace getter
        +  // are the same; otherwise, deletes the old getter and makes the
        +  // input the current getter.
        +  void set_os_stack_trace_getter(OsStackTraceGetterInterface* getter);
        +
        +  // Returns the current OS stack trace getter if it is not NULL;
        +  // otherwise, creates an OsStackTraceGetter, makes it the current
        +  // getter, and returns it.
        +  OsStackTraceGetterInterface* os_stack_trace_getter();
        +
        +  // Returns the current OS stack trace as an std::string.
        +  //
        +  // The maximum number of stack frames to be included is specified by
        +  // the gtest_stack_trace_depth flag.  The skip_count parameter
        +  // specifies the number of top frames to be skipped, which doesn't
        +  // count against the number of frames to be included.
        +  //
        +  // For example, if Foo() calls Bar(), which in turn calls
        +  // CurrentOsStackTraceExceptTop(1), Foo() will be included in the
        +  // trace but Bar() and CurrentOsStackTraceExceptTop() won't.
        +  std::string CurrentOsStackTraceExceptTop(int skip_count) GTEST_NO_INLINE_;
        +
        +  // Finds and returns a TestCase with the given name.  If one doesn't
        +  // exist, creates one and returns it.
        +  //
        +  // Arguments:
        +  //
        +  //   test_case_name: name of the test case
        +  //   type_param:     the name of the test's type parameter, or NULL if
        +  //                   this is not a typed or a type-parameterized test.
        +  //   set_up_tc:      pointer to the function that sets up the test case
        +  //   tear_down_tc:   pointer to the function that tears down the test case
        +  TestCase* GetTestCase(const char* test_case_name,
        +                        const char* type_param,
        +                        Test::SetUpTestCaseFunc set_up_tc,
        +                        Test::TearDownTestCaseFunc tear_down_tc);
        +
        +  // Adds a TestInfo to the unit test.
        +  //
        +  // Arguments:
        +  //
        +  //   set_up_tc:    pointer to the function that sets up the test case
        +  //   tear_down_tc: pointer to the function that tears down the test case
        +  //   test_info:    the TestInfo object
        +  void AddTestInfo(Test::SetUpTestCaseFunc set_up_tc,
        +                   Test::TearDownTestCaseFunc tear_down_tc,
        +                   TestInfo* test_info) {
        +    // In order to support thread-safe death tests, we need to
        +    // remember the original working directory when the test program
        +    // was first invoked.  We cannot do this in RUN_ALL_TESTS(), as
        +    // the user may have changed the current directory before calling
        +    // RUN_ALL_TESTS().  Therefore we capture the current directory in
        +    // AddTestInfo(), which is called to register a TEST or TEST_F
        +    // before main() is reached.
        +    if (original_working_dir_.IsEmpty()) {
        +      original_working_dir_.Set(FilePath::GetCurrentDir());
        +      GTEST_CHECK_(!original_working_dir_.IsEmpty())
        +          << "Failed to get the current working directory.";
        +    }
        +
        +    GetTestCase(test_info->test_case_name(),
        +                test_info->type_param(),
        +                set_up_tc,
        +                tear_down_tc)->AddTestInfo(test_info);
        +  }
        +
        +#if GTEST_HAS_PARAM_TEST
        +  // Returns ParameterizedTestCaseRegistry object used to keep track of
        +  // value-parameterized tests and instantiate and register them.
        +  internal::ParameterizedTestCaseRegistry& parameterized_test_registry() {
        +    return parameterized_test_registry_;
        +  }
        +#endif  // GTEST_HAS_PARAM_TEST
        +
        +  // Sets the TestCase object for the test that's currently running.
        +  void set_current_test_case(TestCase* a_current_test_case) {
        +    current_test_case_ = a_current_test_case;
        +  }
        +
        +  // Sets the TestInfo object for the test that's currently running.  If
        +  // current_test_info is NULL, the assertion results will be stored in
        +  // ad_hoc_test_result_.
        +  void set_current_test_info(TestInfo* a_current_test_info) {
        +    current_test_info_ = a_current_test_info;
        +  }
        +
        +  // Registers all parameterized tests defined using TEST_P and
        +  // INSTANTIATE_TEST_CASE_P, creating regular tests for each test/parameter
        +  // combination. This method can be called more then once; it has guards
        +  // protecting from registering the tests more then once.  If
        +  // value-parameterized tests are disabled, RegisterParameterizedTests is
        +  // present but does nothing.
        +  void RegisterParameterizedTests();
        +
        +  // Runs all tests in this UnitTest object, prints the result, and
        +  // returns true if all tests are successful.  If any exception is
        +  // thrown during a test, this test is considered to be failed, but
        +  // the rest of the tests will still be run.
        +  bool RunAllTests();
        +
        +  // Clears the results of all tests, except the ad hoc tests.
        +  void ClearNonAdHocTestResult() {
        +    ForEach(test_cases_, TestCase::ClearTestCaseResult);
        +  }
        +
        +  // Clears the results of ad-hoc test assertions.
        +  void ClearAdHocTestResult() {
        +    ad_hoc_test_result_.Clear();
        +  }
        +
        +  // Adds a TestProperty to the current TestResult object when invoked in a
        +  // context of a test or a test case, or to the global property set. If the
        +  // result already contains a property with the same key, the value will be
        +  // updated.
        +  void RecordProperty(const TestProperty& test_property);
        +
        +  enum ReactionToSharding {
        +    HONOR_SHARDING_PROTOCOL,
        +    IGNORE_SHARDING_PROTOCOL
        +  };
        +
        +  // Matches the full name of each test against the user-specified
        +  // filter to decide whether the test should run, then records the
        +  // result in each TestCase and TestInfo object.
        +  // If shard_tests == HONOR_SHARDING_PROTOCOL, further filters tests
        +  // based on sharding variables in the environment.
        +  // Returns the number of tests that should run.
        +  int FilterTests(ReactionToSharding shard_tests);
        +
        +  // Prints the names of the tests matching the user-specified filter flag.
        +  void ListTestsMatchingFilter();
        +
        +  const TestCase* current_test_case() const { return current_test_case_; }
        +  TestInfo* current_test_info() { return current_test_info_; }
        +  const TestInfo* current_test_info() const { return current_test_info_; }
        +
        +  // Returns the vector of environments that need to be set-up/torn-down
        +  // before/after the tests are run.
        +  std::vector<Environment*>& environments() { return environments_; }
        +
        +  // Getters for the per-thread Google Test trace stack.
        +  std::vector<TraceInfo>& gtest_trace_stack() {
        +    return *(gtest_trace_stack_.pointer());
        +  }
        +  const std::vector<TraceInfo>& gtest_trace_stack() const {
        +    return gtest_trace_stack_.get();
        +  }
        +
        +#if GTEST_HAS_DEATH_TEST
        +  void InitDeathTestSubprocessControlInfo() {
        +    internal_run_death_test_flag_.reset(ParseInternalRunDeathTestFlag());
        +  }
        +  // Returns a pointer to the parsed --gtest_internal_run_death_test
        +  // flag, or NULL if that flag was not specified.
        +  // This information is useful only in a death test child process.
        +  // Must not be called before a call to InitGoogleTest.
        +  const InternalRunDeathTestFlag* internal_run_death_test_flag() const {
        +    return internal_run_death_test_flag_.get();
        +  }
        +
        +  // Returns a pointer to the current death test factory.
        +  internal::DeathTestFactory* death_test_factory() {
        +    return death_test_factory_.get();
        +  }
        +
        +  void SuppressTestEventsIfInSubprocess();
        +
        +  friend class ReplaceDeathTestFactory;
        +#endif  // GTEST_HAS_DEATH_TEST
        +
        +  // Initializes the event listener performing XML output as specified by
        +  // UnitTestOptions. Must not be called before InitGoogleTest.
        +  void ConfigureXmlOutput();
        +
        +#if GTEST_CAN_STREAM_RESULTS_
        +  // Initializes the event listener for streaming test results to a socket.
        +  // Must not be called before InitGoogleTest.
        +  void ConfigureStreamingOutput();
        +#endif
        +
        +  // Performs initialization dependent upon flag values obtained in
        +  // ParseGoogleTestFlagsOnly.  Is called from InitGoogleTest after the call to
        +  // ParseGoogleTestFlagsOnly.  In case a user neglects to call InitGoogleTest
        +  // this function is also called from RunAllTests.  Since this function can be
        +  // called more than once, it has to be idempotent.
        +  void PostFlagParsingInit();
        +
        +  // Gets the random seed used at the start of the current test iteration.
        +  int random_seed() const { return random_seed_; }
        +
        +  // Gets the random number generator.
        +  internal::Random* random() { return &random_; }
        +
        +  // Shuffles all test cases, and the tests within each test case,
        +  // making sure that death tests are still run first.
        +  void ShuffleTests();
        +
        +  // Restores the test cases and tests to their order before the first shuffle.
        +  void UnshuffleTests();
        +
        +  // Returns the value of GTEST_FLAG(catch_exceptions) at the moment
        +  // UnitTest::Run() starts.
        +  bool catch_exceptions() const { return catch_exceptions_; }
        +
        + private:
        +  friend class ::testing::UnitTest;
        +
        +  // Used by UnitTest::Run() to capture the state of
        +  // GTEST_FLAG(catch_exceptions) at the moment it starts.
        +  void set_catch_exceptions(bool value) { catch_exceptions_ = value; }
        +
        +  // The UnitTest object that owns this implementation object.
        +  UnitTest* const parent_;
        +
        +  // The working directory when the first TEST() or TEST_F() was
        +  // executed.
        +  internal::FilePath original_working_dir_;
        +
        +  // The default test part result reporters.
        +  DefaultGlobalTestPartResultReporter default_global_test_part_result_reporter_;
        +  DefaultPerThreadTestPartResultReporter
        +      default_per_thread_test_part_result_reporter_;
        +
        +  // Points to (but doesn't own) the global test part result reporter.
        +  TestPartResultReporterInterface* global_test_part_result_repoter_;
        +
        +  // Protects read and write access to global_test_part_result_reporter_.
        +  internal::Mutex global_test_part_result_reporter_mutex_;
        +
        +  // Points to (but doesn't own) the per-thread test part result reporter.
        +  internal::ThreadLocal<TestPartResultReporterInterface*>
        +      per_thread_test_part_result_reporter_;
        +
        +  // The vector of environments that need to be set-up/torn-down
        +  // before/after the tests are run.
        +  std::vector<Environment*> environments_;
        +
        +  // The vector of TestCases in their original order.  It owns the
        +  // elements in the vector.
        +  std::vector<TestCase*> test_cases_;
        +
        +  // Provides a level of indirection for the test case list to allow
        +  // easy shuffling and restoring the test case order.  The i-th
        +  // element of this vector is the index of the i-th test case in the
        +  // shuffled order.
        +  std::vector<int> test_case_indices_;
        +
        +#if GTEST_HAS_PARAM_TEST
        +  // ParameterizedTestRegistry object used to register value-parameterized
        +  // tests.
        +  internal::ParameterizedTestCaseRegistry parameterized_test_registry_;
        +
        +  // Indicates whether RegisterParameterizedTests() has been called already.
        +  bool parameterized_tests_registered_;
        +#endif  // GTEST_HAS_PARAM_TEST
        +
        +  // Index of the last death test case registered.  Initially -1.
        +  int last_death_test_case_;
        +
        +  // This points to the TestCase for the currently running test.  It
        +  // changes as Google Test goes through one test case after another.
        +  // When no test is running, this is set to NULL and Google Test
        +  // stores assertion results in ad_hoc_test_result_.  Initially NULL.
        +  TestCase* current_test_case_;
        +
        +  // This points to the TestInfo for the currently running test.  It
        +  // changes as Google Test goes through one test after another.  When
        +  // no test is running, this is set to NULL and Google Test stores
        +  // assertion results in ad_hoc_test_result_.  Initially NULL.
        +  TestInfo* current_test_info_;
        +
        +  // Normally, a user only writes assertions inside a TEST or TEST_F,
        +  // or inside a function called by a TEST or TEST_F.  Since Google
        +  // Test keeps track of which test is current running, it can
        +  // associate such an assertion with the test it belongs to.
        +  //
        +  // If an assertion is encountered when no TEST or TEST_F is running,
        +  // Google Test attributes the assertion result to an imaginary "ad hoc"
        +  // test, and records the result in ad_hoc_test_result_.
        +  TestResult ad_hoc_test_result_;
        +
        +  // The list of event listeners that can be used to track events inside
        +  // Google Test.
        +  TestEventListeners listeners_;
        +
        +  // The OS stack trace getter.  Will be deleted when the UnitTest
        +  // object is destructed.  By default, an OsStackTraceGetter is used,
        +  // but the user can set this field to use a custom getter if that is
        +  // desired.
        +  OsStackTraceGetterInterface* os_stack_trace_getter_;
        +
        +  // True iff PostFlagParsingInit() has been called.
        +  bool post_flag_parse_init_performed_;
        +
        +  // The random number seed used at the beginning of the test run.
        +  int random_seed_;
        +
        +  // Our random number generator.
        +  internal::Random random_;
        +
        +  // The time of the test program start, in ms from the start of the
        +  // UNIX epoch.
        +  TimeInMillis start_timestamp_;
        +
        +  // How long the test took to run, in milliseconds.
        +  TimeInMillis elapsed_time_;
        +
        +#if GTEST_HAS_DEATH_TEST
        +  // The decomposed components of the gtest_internal_run_death_test flag,
        +  // parsed when RUN_ALL_TESTS is called.
        +  internal::scoped_ptr<InternalRunDeathTestFlag> internal_run_death_test_flag_;
        +  internal::scoped_ptr<internal::DeathTestFactory> death_test_factory_;
        +#endif  // GTEST_HAS_DEATH_TEST
        +
        +  // A per-thread stack of traces created by the SCOPED_TRACE() macro.
        +  internal::ThreadLocal<std::vector<TraceInfo> > gtest_trace_stack_;
        +
        +  // The value of GTEST_FLAG(catch_exceptions) at the moment RunAllTests()
        +  // starts.
        +  bool catch_exceptions_;
        +
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(UnitTestImpl);
        +};  // class UnitTestImpl
        +
        +// Convenience function for accessing the global UnitTest
        +// implementation object.
        +inline UnitTestImpl* GetUnitTestImpl() {
        +  return UnitTest::GetInstance()->impl();
        +}
        +
        +#if GTEST_USES_SIMPLE_RE
        +
        +// Internal helper functions for implementing the simple regular
        +// expression matcher.
        +GTEST_API_ bool IsInSet(char ch, const char* str);
        +GTEST_API_ bool IsAsciiDigit(char ch);
        +GTEST_API_ bool IsAsciiPunct(char ch);
        +GTEST_API_ bool IsRepeat(char ch);
        +GTEST_API_ bool IsAsciiWhiteSpace(char ch);
        +GTEST_API_ bool IsAsciiWordChar(char ch);
        +GTEST_API_ bool IsValidEscape(char ch);
        +GTEST_API_ bool AtomMatchesChar(bool escaped, char pattern, char ch);
        +GTEST_API_ bool ValidateRegex(const char* regex);
        +GTEST_API_ bool MatchRegexAtHead(const char* regex, const char* str);
        +GTEST_API_ bool MatchRepetitionAndRegexAtHead(
        +    bool escaped, char ch, char repeat, const char* regex, const char* str);
        +GTEST_API_ bool MatchRegexAnywhere(const char* regex, const char* str);
        +
        +#endif  // GTEST_USES_SIMPLE_RE
        +
        +// Parses the command line for Google Test flags, without initializing
        +// other parts of Google Test.
        +GTEST_API_ void ParseGoogleTestFlagsOnly(int* argc, char** argv);
        +GTEST_API_ void ParseGoogleTestFlagsOnly(int* argc, wchar_t** argv);
        +
        +#if GTEST_HAS_DEATH_TEST
        +
        +// Returns the message describing the last system error, regardless of the
        +// platform.
        +GTEST_API_ std::string GetLastErrnoDescription();
        +
        +// Attempts to parse a string into a positive integer pointed to by the
        +// number parameter.  Returns true if that is possible.
        +// GTEST_HAS_DEATH_TEST implies that we have ::std::string, so we can use
        +// it here.
        +template <typename Integer>
        +bool ParseNaturalNumber(const ::std::string& str, Integer* number) {
        +  // Fail fast if the given string does not begin with a digit;
        +  // this bypasses strtoXXX's "optional leading whitespace and plus
        +  // or minus sign" semantics, which are undesirable here.
        +  if (str.empty() || !IsDigit(str[0])) {
        +    return false;
        +  }
        +  errno = 0;
        +
        +  char* end;
        +  // BiggestConvertible is the largest integer type that system-provided
        +  // string-to-number conversion routines can return.
        +
        +# if GTEST_OS_WINDOWS && !defined(__GNUC__)
        +
        +  // MSVC and C++ Builder define __int64 instead of the standard long long.
        +  typedef unsigned __int64 BiggestConvertible;
        +  const BiggestConvertible parsed = _strtoui64(str.c_str(), &end, 10);
        +
        +# else
        +
        +  typedef unsigned long long BiggestConvertible;  // NOLINT
        +  const BiggestConvertible parsed = strtoull(str.c_str(), &end, 10);
        +
        +# endif  // GTEST_OS_WINDOWS && !defined(__GNUC__)
        +
        +  const bool parse_success = *end == '\0' && errno == 0;
        +
        +  // TODO(vladl@google.com): Convert this to compile time assertion when it is
        +  // available.
        +  GTEST_CHECK_(sizeof(Integer) <= sizeof(parsed));
        +
        +  const Integer result = static_cast<Integer>(parsed);
        +  if (parse_success && static_cast<BiggestConvertible>(result) == parsed) {
        +    *number = result;
        +    return true;
        +  }
        +  return false;
        +}
        +#endif  // GTEST_HAS_DEATH_TEST
        +
        +// TestResult contains some private methods that should be hidden from
        +// Google Test user but are required for testing. This class allow our tests
        +// to access them.
        +//
        +// This class is supplied only for the purpose of testing Google Test's own
        +// constructs. Do not use it in user tests, either directly or indirectly.
        +class TestResultAccessor {
        + public:
        +  static void RecordProperty(TestResult* test_result,
        +                             const std::string& xml_element,
        +                             const TestProperty& property) {
        +    test_result->RecordProperty(xml_element, property);
        +  }
        +
        +  static void ClearTestPartResults(TestResult* test_result) {
        +    test_result->ClearTestPartResults();
        +  }
        +
        +  static const std::vector<testing::TestPartResult>& test_part_results(
        +      const TestResult& test_result) {
        +    return test_result.test_part_results();
        +  }
        +};
        +
        +#if GTEST_CAN_STREAM_RESULTS_
        +
        +// Streams test results to the given port on the given host machine.
        +class GTEST_API_ StreamingListener : public EmptyTestEventListener {
        + public:
        +  // Abstract base class for writing strings to a socket.
        +  class AbstractSocketWriter {
        +   public:
        +    virtual ~AbstractSocketWriter() {}
        +
        +    // Sends a string to the socket.
        +    virtual void Send(const string& message) = 0;
        +
        +    // Closes the socket.
        +    virtual void CloseConnection() {}
        +
        +    // Sends a string and a newline to the socket.
        +    void SendLn(const string& message) {
        +      Send(message + "\n");
        +    }
        +  };
        +
        +  // Concrete class for actually writing strings to a socket.
        +  class SocketWriter : public AbstractSocketWriter {
        +   public:
        +    SocketWriter(const string& host, const string& port)
        +        : sockfd_(-1), host_name_(host), port_num_(port) {
        +      MakeConnection();
        +    }
        +
        +    virtual ~SocketWriter() {
        +      if (sockfd_ != -1)
        +        CloseConnection();
        +    }
        +
        +    // Sends a string to the socket.
        +    virtual void Send(const string& message) {
        +      GTEST_CHECK_(sockfd_ != -1)
        +          << "Send() can be called only when there is a connection.";
        +
        +      const int len = static_cast<int>(message.length());
        +      if (write(sockfd_, message.c_str(), len) != len) {
        +        GTEST_LOG_(WARNING)
        +            << "stream_result_to: failed to stream to "
        +            << host_name_ << ":" << port_num_;
        +      }
        +    }
        +
        +   private:
        +    // Creates a client socket and connects to the server.
        +    void MakeConnection();
        +
        +    // Closes the socket.
        +    void CloseConnection() {
        +      GTEST_CHECK_(sockfd_ != -1)
        +          << "CloseConnection() can be called only when there is a connection.";
        +
        +      close(sockfd_);
        +      sockfd_ = -1;
        +    }
        +
        +    int sockfd_;  // socket file descriptor
        +    const string host_name_;
        +    const string port_num_;
        +
        +    GTEST_DISALLOW_COPY_AND_ASSIGN_(SocketWriter);
        +  };  // class SocketWriter
        +
        +  // Escapes '=', '&', '%', and '\n' characters in str as "%xx".
        +  static string UrlEncode(const char* str);
        +
        +  StreamingListener(const string& host, const string& port)
        +      : socket_writer_(new SocketWriter(host, port)) { Start(); }
        +
        +  explicit StreamingListener(AbstractSocketWriter* socket_writer)
        +      : socket_writer_(socket_writer) { Start(); }
        +
        +  void OnTestProgramStart(const UnitTest& /* unit_test */) {
        +    SendLn("event=TestProgramStart");
        +  }
        +
        +  void OnTestProgramEnd(const UnitTest& unit_test) {
        +    // Note that Google Test current only report elapsed time for each
        +    // test iteration, not for the entire test program.
        +    SendLn("event=TestProgramEnd&passed=" + FormatBool(unit_test.Passed()));
        +
        +    // Notify the streaming server to stop.
        +    socket_writer_->CloseConnection();
        +  }
        +
        +  void OnTestIterationStart(const UnitTest& /* unit_test */, int iteration) {
        +    SendLn("event=TestIterationStart&iteration=" +
        +           StreamableToString(iteration));
        +  }
        +
        +  void OnTestIterationEnd(const UnitTest& unit_test, int /* iteration */) {
        +    SendLn("event=TestIterationEnd&passed=" +
        +           FormatBool(unit_test.Passed()) + "&elapsed_time=" +
        +           StreamableToString(unit_test.elapsed_time()) + "ms");
        +  }
        +
        +  void OnTestCaseStart(const TestCase& test_case) {
        +    SendLn(std::string("event=TestCaseStart&name=") + test_case.name());
        +  }
        +
        +  void OnTestCaseEnd(const TestCase& test_case) {
        +    SendLn("event=TestCaseEnd&passed=" + FormatBool(test_case.Passed())
        +           + "&elapsed_time=" + StreamableToString(test_case.elapsed_time())
        +           + "ms");
        +  }
        +
        +  void OnTestStart(const TestInfo& test_info) {
        +    SendLn(std::string("event=TestStart&name=") + test_info.name());
        +  }
        +
        +  void OnTestEnd(const TestInfo& test_info) {
        +    SendLn("event=TestEnd&passed=" +
        +           FormatBool((test_info.result())->Passed()) +
        +           "&elapsed_time=" +
        +           StreamableToString((test_info.result())->elapsed_time()) + "ms");
        +  }
        +
        +  void OnTestPartResult(const TestPartResult& test_part_result) {
        +    const char* file_name = test_part_result.file_name();
        +    if (file_name == NULL)
        +      file_name = "";
        +    SendLn("event=TestPartResult&file=" + UrlEncode(file_name) +
        +           "&line=" + StreamableToString(test_part_result.line_number()) +
        +           "&message=" + UrlEncode(test_part_result.message()));
        +  }
        +
        + private:
        +  // Sends the given message and a newline to the socket.
        +  void SendLn(const string& message) { socket_writer_->SendLn(message); }
        +
        +  // Called at the start of streaming to notify the receiver what
        +  // protocol we are using.
        +  void Start() { SendLn("gtest_streaming_protocol_version=1.0"); }
        +
        +  string FormatBool(bool value) { return value ? "1" : "0"; }
        +
        +  const scoped_ptr<AbstractSocketWriter> socket_writer_;
        +
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(StreamingListener);
        +};  // class StreamingListener
        +
        +#endif  // GTEST_CAN_STREAM_RESULTS_
        +
        +}  // namespace internal
        +}  // namespace testing
        +
        +#endif  // GTEST_SRC_GTEST_INTERNAL_INL_H_
        diff --git a/lib/ann/fann/lib/googletest/src/gtest-port.cc b/lib/ann/fann/lib/googletest/src/gtest-port.cc
        new file mode 100644
        index 0000000..3842c41
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/src/gtest-port.cc
        @@ -0,0 +1,1221 @@
        +// Copyright 2008, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +#include "gtest/internal/gtest-port.h"
        +
        +#include <limits.h>
        +#include <stdlib.h>
        +#include <stdio.h>
        +#include <string.h>
        +#include <fstream>
        +
        +#if GTEST_OS_WINDOWS
        +# include <windows.h>
        +# include <io.h>
        +# include <sys/stat.h>
        +# include <map>  // Used in ThreadLocal.
        +#else
        +# include <unistd.h>
        +#endif  // GTEST_OS_WINDOWS
        +
        +#if GTEST_OS_MAC
        +# include <mach/mach_init.h>
        +# include <mach/task.h>
        +# include <mach/vm_map.h>
        +#endif  // GTEST_OS_MAC
        +
        +#if GTEST_OS_QNX
        +# include <devctl.h>
        +# include <fcntl.h>
        +# include <sys/procfs.h>
        +#endif  // GTEST_OS_QNX
        +
        +#include "gtest/gtest-spi.h"
        +#include "gtest/gtest-message.h"
        +#include "gtest/internal/gtest-internal.h"
        +#include "gtest/internal/gtest-string.h"
        +
        +// Indicates that this translation unit is part of Google Test's
        +// implementation.  It must come before gtest-internal-inl.h is
        +// included, or there will be a compiler error.  This trick exists to
        +// prevent the accidental inclusion of gtest-internal-inl.h in the
        +// user's code.
        +#define GTEST_IMPLEMENTATION_ 1
        +#include "src/gtest-internal-inl.h"
        +#undef GTEST_IMPLEMENTATION_
        +
        +namespace testing {
        +namespace internal {
        +
        +#if defined(_MSC_VER) || defined(__BORLANDC__)
        +// MSVC and C++Builder do not provide a definition of STDERR_FILENO.
        +const int kStdOutFileno = 1;
        +const int kStdErrFileno = 2;
        +#else
        +const int kStdOutFileno = STDOUT_FILENO;
        +const int kStdErrFileno = STDERR_FILENO;
        +#endif  // _MSC_VER
        +
        +#if GTEST_OS_LINUX
        +
        +namespace {
        +template <typename T>
        +T ReadProcFileField(const string& filename, int field) {
        +  std::string dummy;
        +  std::ifstream file(filename.c_str());
        +  while (field-- > 0) {
        +    file >> dummy;
        +  }
        +  T output = 0;
        +  file >> output;
        +  return output;
        +}
        +}  // namespace
        +
        +// Returns the number of active threads, or 0 when there is an error.
        +size_t GetThreadCount() {
        +  const string filename =
        +      (Message() << "/proc/" << getpid() << "/stat").GetString();
        +  return ReadProcFileField<int>(filename, 19);
        +}
        +
        +#elif GTEST_OS_MAC
        +
        +size_t GetThreadCount() {
        +  const task_t task = mach_task_self();
        +  mach_msg_type_number_t thread_count;
        +  thread_act_array_t thread_list;
        +  const kern_return_t status = task_threads(task, &thread_list, &thread_count);
        +  if (status == KERN_SUCCESS) {
        +    // task_threads allocates resources in thread_list and we need to free them
        +    // to avoid leaks.
        +    vm_deallocate(task,
        +                  reinterpret_cast<vm_address_t>(thread_list),
        +                  sizeof(thread_t) * thread_count);
        +    return static_cast<size_t>(thread_count);
        +  } else {
        +    return 0;
        +  }
        +}
        +
        +#elif GTEST_OS_QNX
        +
        +// Returns the number of threads running in the process, or 0 to indicate that
        +// we cannot detect it.
        +size_t GetThreadCount() {
        +  const int fd = open("/proc/self/as", O_RDONLY);
        +  if (fd < 0) {
        +    return 0;
        +  }
        +  procfs_info process_info;
        +  const int status =
        +      devctl(fd, DCMD_PROC_INFO, &process_info, sizeof(process_info), NULL);
        +  close(fd);
        +  if (status == EOK) {
        +    return static_cast<size_t>(process_info.num_threads);
        +  } else {
        +    return 0;
        +  }
        +}
        +
        +#else
        +
        +size_t GetThreadCount() {
        +  // There's no portable way to detect the number of threads, so we just
        +  // return 0 to indicate that we cannot detect it.
        +  return 0;
        +}
        +
        +#endif  // GTEST_OS_LINUX
        +
        +#if GTEST_IS_THREADSAFE && GTEST_OS_WINDOWS
        +
        +void SleepMilliseconds(int n) {
        +  ::Sleep(n);
        +}
        +
        +AutoHandle::AutoHandle()
        +    : handle_(INVALID_HANDLE_VALUE) {}
        +
        +AutoHandle::AutoHandle(Handle handle)
        +    : handle_(handle) {}
        +
        +AutoHandle::~AutoHandle() {
        +  Reset();
        +}
        +
        +AutoHandle::Handle AutoHandle::Get() const {
        +  return handle_;
        +}
        +
        +void AutoHandle::Reset() {
        +  Reset(INVALID_HANDLE_VALUE);
        +}
        +
        +void AutoHandle::Reset(HANDLE handle) {
        +  // Resetting with the same handle we already own is invalid.
        +  if (handle_ != handle) {
        +    if (IsCloseable()) {
        +      ::CloseHandle(handle_);
        +    }
        +    handle_ = handle;
        +  } else {
        +    GTEST_CHECK_(!IsCloseable())
        +        << "Resetting a valid handle to itself is likely a programmer error "
        +            "and thus not allowed.";
        +  }
        +}
        +
        +bool AutoHandle::IsCloseable() const {
        +  // Different Windows APIs may use either of these values to represent an
        +  // invalid handle.
        +  return handle_ != NULL && handle_ != INVALID_HANDLE_VALUE;
        +}
        +
        +Notification::Notification()
        +    : event_(::CreateEvent(NULL,   // Default security attributes.
        +                           TRUE,   // Do not reset automatically.
        +                           FALSE,  // Initially unset.
        +                           NULL)) {  // Anonymous event.
        +  GTEST_CHECK_(event_.Get() != NULL);
        +}
        +
        +void Notification::Notify() {
        +  GTEST_CHECK_(::SetEvent(event_.Get()) != FALSE);
        +}
        +
        +void Notification::WaitForNotification() {
        +  GTEST_CHECK_(
        +      ::WaitForSingleObject(event_.Get(), INFINITE) == WAIT_OBJECT_0);
        +}
        +
        +Mutex::Mutex()
        +    : owner_thread_id_(0),
        +      type_(kDynamic),
        +      critical_section_init_phase_(0),
        +      critical_section_(new CRITICAL_SECTION) {
        +  ::InitializeCriticalSection(critical_section_);
        +}
        +
        +Mutex::~Mutex() {
        +  // Static mutexes are leaked intentionally. It is not thread-safe to try
        +  // to clean them up.
        +  // TODO(yukawa): Switch to Slim Reader/Writer (SRW) Locks, which requires
        +  // nothing to clean it up but is available only on Vista and later.
        +  // http://msdn.microsoft.com/en-us/library/windows/desktop/aa904937.aspx
        +  if (type_ == kDynamic) {
        +    ::DeleteCriticalSection(critical_section_);
        +    delete critical_section_;
        +    critical_section_ = NULL;
        +  }
        +}
        +
        +void Mutex::Lock() {
        +  ThreadSafeLazyInit();
        +  ::EnterCriticalSection(critical_section_);
        +  owner_thread_id_ = ::GetCurrentThreadId();
        +}
        +
        +void Mutex::Unlock() {
        +  ThreadSafeLazyInit();
        +  // We don't protect writing to owner_thread_id_ here, as it's the
        +  // caller's responsibility to ensure that the current thread holds the
        +  // mutex when this is called.
        +  owner_thread_id_ = 0;
        +  ::LeaveCriticalSection(critical_section_);
        +}
        +
        +// Does nothing if the current thread holds the mutex. Otherwise, crashes
        +// with high probability.
        +void Mutex::AssertHeld() {
        +  ThreadSafeLazyInit();
        +  GTEST_CHECK_(owner_thread_id_ == ::GetCurrentThreadId())
        +      << "The current thread is not holding the mutex @" << this;
        +}
        +
        +// Initializes owner_thread_id_ and critical_section_ in static mutexes.
        +void Mutex::ThreadSafeLazyInit() {
        +  // Dynamic mutexes are initialized in the constructor.
        +  if (type_ == kStatic) {
        +    switch (
        +        ::InterlockedCompareExchange(&critical_section_init_phase_, 1L, 0L)) {
        +      case 0:
        +        // If critical_section_init_phase_ was 0 before the exchange, we
        +        // are the first to test it and need to perform the initialization.
        +        owner_thread_id_ = 0;
        +        critical_section_ = new CRITICAL_SECTION;
        +        ::InitializeCriticalSection(critical_section_);
        +        // Updates the critical_section_init_phase_ to 2 to signal
        +        // initialization complete.
        +        GTEST_CHECK_(::InterlockedCompareExchange(
        +                          &critical_section_init_phase_, 2L, 1L) ==
        +                      1L);
        +        break;
        +      case 1:
        +        // Somebody else is already initializing the mutex; spin until they
        +        // are done.
        +        while (::InterlockedCompareExchange(&critical_section_init_phase_,
        +                                            2L,
        +                                            2L) != 2L) {
        +          // Possibly yields the rest of the thread's time slice to other
        +          // threads.
        +          ::Sleep(0);
        +        }
        +        break;
        +
        +      case 2:
        +        break;  // The mutex is already initialized and ready for use.
        +
        +      default:
        +        GTEST_CHECK_(false)
        +            << "Unexpected value of critical_section_init_phase_ "
        +            << "while initializing a static mutex.";
        +    }
        +  }
        +}
        +
        +namespace {
        +
        +class ThreadWithParamSupport : public ThreadWithParamBase {
        + public:
        +  static HANDLE CreateThread(Runnable* runnable,
        +                             Notification* thread_can_start) {
        +    ThreadMainParam* param = new ThreadMainParam(runnable, thread_can_start);
        +    DWORD thread_id;
        +    // TODO(yukawa): Consider to use _beginthreadex instead.
        +    HANDLE thread_handle = ::CreateThread(
        +        NULL,    // Default security.
        +        0,       // Default stack size.
        +        &ThreadWithParamSupport::ThreadMain,
        +        param,   // Parameter to ThreadMainStatic
        +        0x0,     // Default creation flags.
        +        &thread_id);  // Need a valid pointer for the call to work under Win98.
        +    GTEST_CHECK_(thread_handle != NULL) << "CreateThread failed with error "
        +                                        << ::GetLastError() << ".";
        +    if (thread_handle == NULL) {
        +      delete param;
        +    }
        +    return thread_handle;
        +  }
        +
        + private:
        +  struct ThreadMainParam {
        +    ThreadMainParam(Runnable* runnable, Notification* thread_can_start)
        +        : runnable_(runnable),
        +          thread_can_start_(thread_can_start) {
        +    }
        +    scoped_ptr<Runnable> runnable_;
        +    // Does not own.
        +    Notification* thread_can_start_;
        +  };
        +
        +  static DWORD WINAPI ThreadMain(void* ptr) {
        +    // Transfers ownership.
        +    scoped_ptr<ThreadMainParam> param(static_cast<ThreadMainParam*>(ptr));
        +    if (param->thread_can_start_ != NULL)
        +      param->thread_can_start_->WaitForNotification();
        +    param->runnable_->Run();
        +    return 0;
        +  }
        +
        +  // Prohibit instantiation.
        +  ThreadWithParamSupport();
        +
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(ThreadWithParamSupport);
        +};
        +
        +}  // namespace
        +
        +ThreadWithParamBase::ThreadWithParamBase(Runnable *runnable,
        +                                         Notification* thread_can_start)
        +      : thread_(ThreadWithParamSupport::CreateThread(runnable,
        +                                                     thread_can_start)) {
        +}
        +
        +ThreadWithParamBase::~ThreadWithParamBase() {
        +  Join();
        +}
        +
        +void ThreadWithParamBase::Join() {
        +  GTEST_CHECK_(::WaitForSingleObject(thread_.Get(), INFINITE) == WAIT_OBJECT_0)
        +      << "Failed to join the thread with error " << ::GetLastError() << ".";
        +}
        +
        +// Maps a thread to a set of ThreadIdToThreadLocals that have values
        +// instantiated on that thread and notifies them when the thread exits.  A
        +// ThreadLocal instance is expected to persist until all threads it has
        +// values on have terminated.
        +class ThreadLocalRegistryImpl {
        + public:
        +  // Registers thread_local_instance as having value on the current thread.
        +  // Returns a value that can be used to identify the thread from other threads.
        +  static ThreadLocalValueHolderBase* GetValueOnCurrentThread(
        +      const ThreadLocalBase* thread_local_instance) {
        +    DWORD current_thread = ::GetCurrentThreadId();
        +    MutexLock lock(&mutex_);
        +    ThreadIdToThreadLocals* const thread_to_thread_locals =
        +        GetThreadLocalsMapLocked();
        +    ThreadIdToThreadLocals::iterator thread_local_pos =
        +        thread_to_thread_locals->find(current_thread);
        +    if (thread_local_pos == thread_to_thread_locals->end()) {
        +      thread_local_pos = thread_to_thread_locals->insert(
        +          std::make_pair(current_thread, ThreadLocalValues())).first;
        +      StartWatcherThreadFor(current_thread);
        +    }
        +    ThreadLocalValues& thread_local_values = thread_local_pos->second;
        +    ThreadLocalValues::iterator value_pos =
        +        thread_local_values.find(thread_local_instance);
        +    if (value_pos == thread_local_values.end()) {
        +      value_pos =
        +          thread_local_values
        +              .insert(std::make_pair(
        +                  thread_local_instance,
        +                  linked_ptr<ThreadLocalValueHolderBase>(
        +                      thread_local_instance->NewValueForCurrentThread())))
        +              .first;
        +    }
        +    return value_pos->second.get();
        +  }
        +
        +  static void OnThreadLocalDestroyed(
        +      const ThreadLocalBase* thread_local_instance) {
        +    std::vector<linked_ptr<ThreadLocalValueHolderBase> > value_holders;
        +    // Clean up the ThreadLocalValues data structure while holding the lock, but
        +    // defer the destruction of the ThreadLocalValueHolderBases.
        +    {
        +      MutexLock lock(&mutex_);
        +      ThreadIdToThreadLocals* const thread_to_thread_locals =
        +          GetThreadLocalsMapLocked();
        +      for (ThreadIdToThreadLocals::iterator it =
        +          thread_to_thread_locals->begin();
        +          it != thread_to_thread_locals->end();
        +          ++it) {
        +        ThreadLocalValues& thread_local_values = it->second;
        +        ThreadLocalValues::iterator value_pos =
        +            thread_local_values.find(thread_local_instance);
        +        if (value_pos != thread_local_values.end()) {
        +          value_holders.push_back(value_pos->second);
        +          thread_local_values.erase(value_pos);
        +          // This 'if' can only be successful at most once, so theoretically we
        +          // could break out of the loop here, but we don't bother doing so.
        +        }
        +      }
        +    }
        +    // Outside the lock, let the destructor for 'value_holders' deallocate the
        +    // ThreadLocalValueHolderBases.
        +  }
        +
        +  static void OnThreadExit(DWORD thread_id) {
        +    GTEST_CHECK_(thread_id != 0) << ::GetLastError();
        +    std::vector<linked_ptr<ThreadLocalValueHolderBase> > value_holders;
        +    // Clean up the ThreadIdToThreadLocals data structure while holding the
        +    // lock, but defer the destruction of the ThreadLocalValueHolderBases.
        +    {
        +      MutexLock lock(&mutex_);
        +      ThreadIdToThreadLocals* const thread_to_thread_locals =
        +          GetThreadLocalsMapLocked();
        +      ThreadIdToThreadLocals::iterator thread_local_pos =
        +          thread_to_thread_locals->find(thread_id);
        +      if (thread_local_pos != thread_to_thread_locals->end()) {
        +        ThreadLocalValues& thread_local_values = thread_local_pos->second;
        +        for (ThreadLocalValues::iterator value_pos =
        +            thread_local_values.begin();
        +            value_pos != thread_local_values.end();
        +            ++value_pos) {
        +          value_holders.push_back(value_pos->second);
        +        }
        +        thread_to_thread_locals->erase(thread_local_pos);
        +      }
        +    }
        +    // Outside the lock, let the destructor for 'value_holders' deallocate the
        +    // ThreadLocalValueHolderBases.
        +  }
        +
        + private:
        +  // In a particular thread, maps a ThreadLocal object to its value.
        +  typedef std::map<const ThreadLocalBase*,
        +                   linked_ptr<ThreadLocalValueHolderBase> > ThreadLocalValues;
        +  // Stores all ThreadIdToThreadLocals having values in a thread, indexed by
        +  // thread's ID.
        +  typedef std::map<DWORD, ThreadLocalValues> ThreadIdToThreadLocals;
        +
        +  // Holds the thread id and thread handle that we pass from
        +  // StartWatcherThreadFor to WatcherThreadFunc.
        +  typedef std::pair<DWORD, HANDLE> ThreadIdAndHandle;
        +
        +  static void StartWatcherThreadFor(DWORD thread_id) {
        +    // The returned handle will be kept in thread_map and closed by
        +    // watcher_thread in WatcherThreadFunc.
        +    HANDLE thread = ::OpenThread(SYNCHRONIZE | THREAD_QUERY_INFORMATION,
        +                                 FALSE,
        +                                 thread_id);
        +    GTEST_CHECK_(thread != NULL);
        +    // We need to to pass a valid thread ID pointer into CreateThread for it
        +    // to work correctly under Win98.
        +    DWORD watcher_thread_id;
        +    HANDLE watcher_thread = ::CreateThread(
        +        NULL,   // Default security.
        +        0,      // Default stack size
        +        &ThreadLocalRegistryImpl::WatcherThreadFunc,
        +        reinterpret_cast<LPVOID>(new ThreadIdAndHandle(thread_id, thread)),
        +        CREATE_SUSPENDED,
        +        &watcher_thread_id);
        +    GTEST_CHECK_(watcher_thread != NULL);
        +    // Give the watcher thread the same priority as ours to avoid being
        +    // blocked by it.
        +    ::SetThreadPriority(watcher_thread,
        +                        ::GetThreadPriority(::GetCurrentThread()));
        +    ::ResumeThread(watcher_thread);
        +    ::CloseHandle(watcher_thread);
        +  }
        +
        +  // Monitors exit from a given thread and notifies those
        +  // ThreadIdToThreadLocals about thread termination.
        +  static DWORD WINAPI WatcherThreadFunc(LPVOID param) {
        +    const ThreadIdAndHandle* tah =
        +        reinterpret_cast<const ThreadIdAndHandle*>(param);
        +    GTEST_CHECK_(
        +        ::WaitForSingleObject(tah->second, INFINITE) == WAIT_OBJECT_0);
        +    OnThreadExit(tah->first);
        +    ::CloseHandle(tah->second);
        +    delete tah;
        +    return 0;
        +  }
        +
        +  // Returns map of thread local instances.
        +  static ThreadIdToThreadLocals* GetThreadLocalsMapLocked() {
        +    mutex_.AssertHeld();
        +    static ThreadIdToThreadLocals* map = new ThreadIdToThreadLocals;
        +    return map;
        +  }
        +
        +  // Protects access to GetThreadLocalsMapLocked() and its return value.
        +  static Mutex mutex_;
        +  // Protects access to GetThreadMapLocked() and its return value.
        +  static Mutex thread_map_mutex_;
        +};
        +
        +Mutex ThreadLocalRegistryImpl::mutex_(Mutex::kStaticMutex);
        +Mutex ThreadLocalRegistryImpl::thread_map_mutex_(Mutex::kStaticMutex);
        +
        +ThreadLocalValueHolderBase* ThreadLocalRegistry::GetValueOnCurrentThread(
        +      const ThreadLocalBase* thread_local_instance) {
        +  return ThreadLocalRegistryImpl::GetValueOnCurrentThread(
        +      thread_local_instance);
        +}
        +
        +void ThreadLocalRegistry::OnThreadLocalDestroyed(
        +      const ThreadLocalBase* thread_local_instance) {
        +  ThreadLocalRegistryImpl::OnThreadLocalDestroyed(thread_local_instance);
        +}
        +
        +#endif  // GTEST_IS_THREADSAFE && GTEST_OS_WINDOWS
        +
        +#if GTEST_USES_POSIX_RE
        +
        +// Implements RE.  Currently only needed for death tests.
        +
        +RE::~RE() {
        +  if (is_valid_) {
        +    // regfree'ing an invalid regex might crash because the content
        +    // of the regex is undefined. Since the regex's are essentially
        +    // the same, one cannot be valid (or invalid) without the other
        +    // being so too.
        +    regfree(&partial_regex_);
        +    regfree(&full_regex_);
        +  }
        +  free(const_cast<char*>(pattern_));
        +}
        +
        +// Returns true iff regular expression re matches the entire str.
        +bool RE::FullMatch(const char* str, const RE& re) {
        +  if (!re.is_valid_) return false;
        +
        +  regmatch_t match;
        +  return regexec(&re.full_regex_, str, 1, &match, 0) == 0;
        +}
        +
        +// Returns true iff regular expression re matches a substring of str
        +// (including str itself).
        +bool RE::PartialMatch(const char* str, const RE& re) {
        +  if (!re.is_valid_) return false;
        +
        +  regmatch_t match;
        +  return regexec(&re.partial_regex_, str, 1, &match, 0) == 0;
        +}
        +
        +// Initializes an RE from its string representation.
        +void RE::Init(const char* regex) {
        +  pattern_ = posix::StrDup(regex);
        +
        +  // Reserves enough bytes to hold the regular expression used for a
        +  // full match.
        +  const size_t full_regex_len = strlen(regex) + 10;
        +  char* const full_pattern = new char[full_regex_len];
        +
        +  snprintf(full_pattern, full_regex_len, "^(%s)$", regex);
        +  is_valid_ = regcomp(&full_regex_, full_pattern, REG_EXTENDED) == 0;
        +  // We want to call regcomp(&partial_regex_, ...) even if the
        +  // previous expression returns false.  Otherwise partial_regex_ may
        +  // not be properly initialized can may cause trouble when it's
        +  // freed.
        +  //
        +  // Some implementation of POSIX regex (e.g. on at least some
        +  // versions of Cygwin) doesn't accept the empty string as a valid
        +  // regex.  We change it to an equivalent form "()" to be safe.
        +  if (is_valid_) {
        +    const char* const partial_regex = (*regex == '\0') ? "()" : regex;
        +    is_valid_ = regcomp(&partial_regex_, partial_regex, REG_EXTENDED) == 0;
        +  }
        +  EXPECT_TRUE(is_valid_)
        +      << "Regular expression \"" << regex
        +      << "\" is not a valid POSIX Extended regular expression.";
        +
        +  delete[] full_pattern;
        +}
        +
        +#elif GTEST_USES_SIMPLE_RE
        +
        +// Returns true iff ch appears anywhere in str (excluding the
        +// terminating '\0' character).
        +bool IsInSet(char ch, const char* str) {
        +  return ch != '\0' && strchr(str, ch) != NULL;
        +}
        +
        +// Returns true iff ch belongs to the given classification.  Unlike
        +// similar functions in <ctype.h>, these aren't affected by the
        +// current locale.
        +bool IsAsciiDigit(char ch) { return '0' <= ch && ch <= '9'; }
        +bool IsAsciiPunct(char ch) {
        +  return IsInSet(ch, "^-!\"#$%&'()*+,./:;<=>?@[\\]_`{|}~");
        +}
        +bool IsRepeat(char ch) { return IsInSet(ch, "?*+"); }
        +bool IsAsciiWhiteSpace(char ch) { return IsInSet(ch, " \f\n\r\t\v"); }
        +bool IsAsciiWordChar(char ch) {
        +  return ('a' <= ch && ch <= 'z') || ('A' <= ch && ch <= 'Z') ||
        +      ('0' <= ch && ch <= '9') || ch == '_';
        +}
        +
        +// Returns true iff "\\c" is a supported escape sequence.
        +bool IsValidEscape(char c) {
        +  return (IsAsciiPunct(c) || IsInSet(c, "dDfnrsStvwW"));
        +}
        +
        +// Returns true iff the given atom (specified by escaped and pattern)
        +// matches ch.  The result is undefined if the atom is invalid.
        +bool AtomMatchesChar(bool escaped, char pattern_char, char ch) {
        +  if (escaped) {  // "\\p" where p is pattern_char.
        +    switch (pattern_char) {
        +      case 'd': return IsAsciiDigit(ch);
        +      case 'D': return !IsAsciiDigit(ch);
        +      case 'f': return ch == '\f';
        +      case 'n': return ch == '\n';
        +      case 'r': return ch == '\r';
        +      case 's': return IsAsciiWhiteSpace(ch);
        +      case 'S': return !IsAsciiWhiteSpace(ch);
        +      case 't': return ch == '\t';
        +      case 'v': return ch == '\v';
        +      case 'w': return IsAsciiWordChar(ch);
        +      case 'W': return !IsAsciiWordChar(ch);
        +    }
        +    return IsAsciiPunct(pattern_char) && pattern_char == ch;
        +  }
        +
        +  return (pattern_char == '.' && ch != '\n') || pattern_char == ch;
        +}
        +
        +// Helper function used by ValidateRegex() to format error messages.
        +std::string FormatRegexSyntaxError(const char* regex, int index) {
        +  return (Message() << "Syntax error at index " << index
        +          << " in simple regular expression \"" << regex << "\": ").GetString();
        +}
        +
        +// Generates non-fatal failures and returns false if regex is invalid;
        +// otherwise returns true.
        +bool ValidateRegex(const char* regex) {
        +  if (regex == NULL) {
        +    // TODO(wan@google.com): fix the source file location in the
        +    // assertion failures to match where the regex is used in user
        +    // code.
        +    ADD_FAILURE() << "NULL is not a valid simple regular expression.";
        +    return false;
        +  }
        +
        +  bool is_valid = true;
        +
        +  // True iff ?, *, or + can follow the previous atom.
        +  bool prev_repeatable = false;
        +  for (int i = 0; regex[i]; i++) {
        +    if (regex[i] == '\\') {  // An escape sequence
        +      i++;
        +      if (regex[i] == '\0') {
        +        ADD_FAILURE() << FormatRegexSyntaxError(regex, i - 1)
        +                      << "'\\' cannot appear at the end.";
        +        return false;
        +      }
        +
        +      if (!IsValidEscape(regex[i])) {
        +        ADD_FAILURE() << FormatRegexSyntaxError(regex, i - 1)
        +                      << "invalid escape sequence \"\\" << regex[i] << "\".";
        +        is_valid = false;
        +      }
        +      prev_repeatable = true;
        +    } else {  // Not an escape sequence.
        +      const char ch = regex[i];
        +
        +      if (ch == '^' && i > 0) {
        +        ADD_FAILURE() << FormatRegexSyntaxError(regex, i)
        +                      << "'^' can only appear at the beginning.";
        +        is_valid = false;
        +      } else if (ch == '$' && regex[i + 1] != '\0') {
        +        ADD_FAILURE() << FormatRegexSyntaxError(regex, i)
        +                      << "'$' can only appear at the end.";
        +        is_valid = false;
        +      } else if (IsInSet(ch, "()[]{}|")) {
        +        ADD_FAILURE() << FormatRegexSyntaxError(regex, i)
        +                      << "'" << ch << "' is unsupported.";
        +        is_valid = false;
        +      } else if (IsRepeat(ch) && !prev_repeatable) {
        +        ADD_FAILURE() << FormatRegexSyntaxError(regex, i)
        +                      << "'" << ch << "' can only follow a repeatable token.";
        +        is_valid = false;
        +      }
        +
        +      prev_repeatable = !IsInSet(ch, "^$?*+");
        +    }
        +  }
        +
        +  return is_valid;
        +}
        +
        +// Matches a repeated regex atom followed by a valid simple regular
        +// expression.  The regex atom is defined as c if escaped is false,
        +// or \c otherwise.  repeat is the repetition meta character (?, *,
        +// or +).  The behavior is undefined if str contains too many
        +// characters to be indexable by size_t, in which case the test will
        +// probably time out anyway.  We are fine with this limitation as
        +// std::string has it too.
        +bool MatchRepetitionAndRegexAtHead(
        +    bool escaped, char c, char repeat, const char* regex,
        +    const char* str) {
        +  const size_t min_count = (repeat == '+') ? 1 : 0;
        +  const size_t max_count = (repeat == '?') ? 1 :
        +      static_cast<size_t>(-1) - 1;
        +  // We cannot call numeric_limits::max() as it conflicts with the
        +  // max() macro on Windows.
        +
        +  for (size_t i = 0; i <= max_count; ++i) {
        +    // We know that the atom matches each of the first i characters in str.
        +    if (i >= min_count && MatchRegexAtHead(regex, str + i)) {
        +      // We have enough matches at the head, and the tail matches too.
        +      // Since we only care about *whether* the pattern matches str
        +      // (as opposed to *how* it matches), there is no need to find a
        +      // greedy match.
        +      return true;
        +    }
        +    if (str[i] == '\0' || !AtomMatchesChar(escaped, c, str[i]))
        +      return false;
        +  }
        +  return false;
        +}
        +
        +// Returns true iff regex matches a prefix of str.  regex must be a
        +// valid simple regular expression and not start with "^", or the
        +// result is undefined.
        +bool MatchRegexAtHead(const char* regex, const char* str) {
        +  if (*regex == '\0')  // An empty regex matches a prefix of anything.
        +    return true;
        +
        +  // "$" only matches the end of a string.  Note that regex being
        +  // valid guarantees that there's nothing after "$" in it.
        +  if (*regex == '$')
        +    return *str == '\0';
        +
        +  // Is the first thing in regex an escape sequence?
        +  const bool escaped = *regex == '\\';
        +  if (escaped)
        +    ++regex;
        +  if (IsRepeat(regex[1])) {
        +    // MatchRepetitionAndRegexAtHead() calls MatchRegexAtHead(), so
        +    // here's an indirect recursion.  It terminates as the regex gets
        +    // shorter in each recursion.
        +    return MatchRepetitionAndRegexAtHead(
        +        escaped, regex[0], regex[1], regex + 2, str);
        +  } else {
        +    // regex isn't empty, isn't "$", and doesn't start with a
        +    // repetition.  We match the first atom of regex with the first
        +    // character of str and recurse.
        +    return (*str != '\0') && AtomMatchesChar(escaped, *regex, *str) &&
        +        MatchRegexAtHead(regex + 1, str + 1);
        +  }
        +}
        +
        +// Returns true iff regex matches any substring of str.  regex must be
        +// a valid simple regular expression, or the result is undefined.
        +//
        +// The algorithm is recursive, but the recursion depth doesn't exceed
        +// the regex length, so we won't need to worry about running out of
        +// stack space normally.  In rare cases the time complexity can be
        +// exponential with respect to the regex length + the string length,
        +// but usually it's must faster (often close to linear).
        +bool MatchRegexAnywhere(const char* regex, const char* str) {
        +  if (regex == NULL || str == NULL)
        +    return false;
        +
        +  if (*regex == '^')
        +    return MatchRegexAtHead(regex + 1, str);
        +
        +  // A successful match can be anywhere in str.
        +  do {
        +    if (MatchRegexAtHead(regex, str))
        +      return true;
        +  } while (*str++ != '\0');
        +  return false;
        +}
        +
        +// Implements the RE class.
        +
        +RE::~RE() {
        +  free(const_cast<char*>(pattern_));
        +  free(const_cast<char*>(full_pattern_));
        +}
        +
        +// Returns true iff regular expression re matches the entire str.
        +bool RE::FullMatch(const char* str, const RE& re) {
        +  return re.is_valid_ && MatchRegexAnywhere(re.full_pattern_, str);
        +}
        +
        +// Returns true iff regular expression re matches a substring of str
        +// (including str itself).
        +bool RE::PartialMatch(const char* str, const RE& re) {
        +  return re.is_valid_ && MatchRegexAnywhere(re.pattern_, str);
        +}
        +
        +// Initializes an RE from its string representation.
        +void RE::Init(const char* regex) {
        +  pattern_ = full_pattern_ = NULL;
        +  if (regex != NULL) {
        +    pattern_ = posix::StrDup(regex);
        +  }
        +
        +  is_valid_ = ValidateRegex(regex);
        +  if (!is_valid_) {
        +    // No need to calculate the full pattern when the regex is invalid.
        +    return;
        +  }
        +
        +  const size_t len = strlen(regex);
        +  // Reserves enough bytes to hold the regular expression used for a
        +  // full match: we need space to prepend a '^', append a '$', and
        +  // terminate the string with '\0'.
        +  char* buffer = static_cast<char*>(malloc(len + 3));
        +  full_pattern_ = buffer;
        +
        +  if (*regex != '^')
        +    *buffer++ = '^';  // Makes sure full_pattern_ starts with '^'.
        +
        +  // We don't use snprintf or strncpy, as they trigger a warning when
        +  // compiled with VC++ 8.0.
        +  memcpy(buffer, regex, len);
        +  buffer += len;
        +
        +  if (len == 0 || regex[len - 1] != '$')
        +    *buffer++ = '$';  // Makes sure full_pattern_ ends with '$'.
        +
        +  *buffer = '\0';
        +}
        +
        +#endif  // GTEST_USES_POSIX_RE
        +
        +const char kUnknownFile[] = "unknown file";
        +
        +// Formats a source file path and a line number as they would appear
        +// in an error message from the compiler used to compile this code.
        +GTEST_API_ ::std::string FormatFileLocation(const char* file, int line) {
        +  const std::string file_name(file == NULL ? kUnknownFile : file);
        +
        +  if (line < 0) {
        +    return file_name + ":";
        +  }
        +#ifdef _MSC_VER
        +  return file_name + "(" + StreamableToString(line) + "):";
        +#else
        +  return file_name + ":" + StreamableToString(line) + ":";
        +#endif  // _MSC_VER
        +}
        +
        +// Formats a file location for compiler-independent XML output.
        +// Although this function is not platform dependent, we put it next to
        +// FormatFileLocation in order to contrast the two functions.
        +// Note that FormatCompilerIndependentFileLocation() does NOT append colon
        +// to the file location it produces, unlike FormatFileLocation().
        +GTEST_API_ ::std::string FormatCompilerIndependentFileLocation(
        +    const char* file, int line) {
        +  const std::string file_name(file == NULL ? kUnknownFile : file);
        +
        +  if (line < 0)
        +    return file_name;
        +  else
        +    return file_name + ":" + StreamableToString(line);
        +}
        +
        +GTestLog::GTestLog(GTestLogSeverity severity, const char* file, int line)
        +    : severity_(severity) {
        +  const char* const marker =
        +      severity == GTEST_INFO ?    "[  INFO ]" :
        +      severity == GTEST_WARNING ? "[WARNING]" :
        +      severity == GTEST_ERROR ?   "[ ERROR ]" : "[ FATAL ]";
        +  GetStream() << ::std::endl << marker << " "
        +              << FormatFileLocation(file, line).c_str() << ": ";
        +}
        +
        +// Flushes the buffers and, if severity is GTEST_FATAL, aborts the program.
        +GTestLog::~GTestLog() {
        +  GetStream() << ::std::endl;
        +  if (severity_ == GTEST_FATAL) {
        +    fflush(stderr);
        +    posix::Abort();
        +  }
        +}
        +// Disable Microsoft deprecation warnings for POSIX functions called from
        +// this class (creat, dup, dup2, and close)
        +GTEST_DISABLE_MSC_WARNINGS_PUSH_(4996)
        +
        +#if GTEST_HAS_STREAM_REDIRECTION
        +
        +// Object that captures an output stream (stdout/stderr).
        +class CapturedStream {
        + public:
        +  // The ctor redirects the stream to a temporary file.
        +  explicit CapturedStream(int fd) : fd_(fd), uncaptured_fd_(dup(fd)) {
        +# if GTEST_OS_WINDOWS
        +    char temp_dir_path[MAX_PATH + 1] = { '\0' };  // NOLINT
        +    char temp_file_path[MAX_PATH + 1] = { '\0' };  // NOLINT
        +
        +    ::GetTempPathA(sizeof(temp_dir_path), temp_dir_path);
        +    const UINT success = ::GetTempFileNameA(temp_dir_path,
        +                                            "gtest_redir",
        +                                            0,  // Generate unique file name.
        +                                            temp_file_path);
        +    GTEST_CHECK_(success != 0)
        +        << "Unable to create a temporary file in " << temp_dir_path;
        +    const int captured_fd = creat(temp_file_path, _S_IREAD | _S_IWRITE);
        +    GTEST_CHECK_(captured_fd != -1) << "Unable to open temporary file "
        +                                    << temp_file_path;
        +    filename_ = temp_file_path;
        +# else
        +    // There's no guarantee that a test has write access to the current
        +    // directory, so we create the temporary file in the /tmp directory
        +    // instead. We use /tmp on most systems, and /sdcard on Android.
        +    // That's because Android doesn't have /tmp.
        +#  if GTEST_OS_LINUX_ANDROID
        +    // Note: Android applications are expected to call the framework's
        +    // Context.getExternalStorageDirectory() method through JNI to get
        +    // the location of the world-writable SD Card directory. However,
        +    // this requires a Context handle, which cannot be retrieved
        +    // globally from native code. Doing so also precludes running the
        +    // code as part of a regular standalone executable, which doesn't
        +    // run in a Dalvik process (e.g. when running it through 'adb shell').
        +    //
        +    // The location /sdcard is directly accessible from native code
        +    // and is the only location (unofficially) supported by the Android
        +    // team. It's generally a symlink to the real SD Card mount point
        +    // which can be /mnt/sdcard, /mnt/sdcard0, /system/media/sdcard, or
        +    // other OEM-customized locations. Never rely on these, and always
        +    // use /sdcard.
        +    char name_template[] = "/sdcard/gtest_captured_stream.XXXXXX";
        +#  else
        +    char name_template[] = "/tmp/captured_stream.XXXXXX";
        +#  endif  // GTEST_OS_LINUX_ANDROID
        +    const int captured_fd = mkstemp(name_template);
        +    filename_ = name_template;
        +# endif  // GTEST_OS_WINDOWS
        +    fflush(NULL);
        +    dup2(captured_fd, fd_);
        +    close(captured_fd);
        +  }
        +
        +  ~CapturedStream() {
        +    remove(filename_.c_str());
        +  }
        +
        +  std::string GetCapturedString() {
        +    if (uncaptured_fd_ != -1) {
        +      // Restores the original stream.
        +      fflush(NULL);
        +      dup2(uncaptured_fd_, fd_);
        +      close(uncaptured_fd_);
        +      uncaptured_fd_ = -1;
        +    }
        +
        +    FILE* const file = posix::FOpen(filename_.c_str(), "r");
        +    const std::string content = ReadEntireFile(file);
        +    posix::FClose(file);
        +    return content;
        +  }
        +
        + private:
        +  const int fd_;  // A stream to capture.
        +  int uncaptured_fd_;
        +  // Name of the temporary file holding the stderr output.
        +  ::std::string filename_;
        +
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(CapturedStream);
        +};
        +
        +GTEST_DISABLE_MSC_WARNINGS_POP_()
        +
        +static CapturedStream* g_captured_stderr = NULL;
        +static CapturedStream* g_captured_stdout = NULL;
        +
        +// Starts capturing an output stream (stdout/stderr).
        +void CaptureStream(int fd, const char* stream_name, CapturedStream** stream) {
        +  if (*stream != NULL) {
        +    GTEST_LOG_(FATAL) << "Only one " << stream_name
        +                      << " capturer can exist at a time.";
        +  }
        +  *stream = new CapturedStream(fd);
        +}
        +
        +// Stops capturing the output stream and returns the captured string.
        +std::string GetCapturedStream(CapturedStream** captured_stream) {
        +  const std::string content = (*captured_stream)->GetCapturedString();
        +
        +  delete *captured_stream;
        +  *captured_stream = NULL;
        +
        +  return content;
        +}
        +
        +// Starts capturing stdout.
        +void CaptureStdout() {
        +  CaptureStream(kStdOutFileno, "stdout", &g_captured_stdout);
        +}
        +
        +// Starts capturing stderr.
        +void CaptureStderr() {
        +  CaptureStream(kStdErrFileno, "stderr", &g_captured_stderr);
        +}
        +
        +// Stops capturing stdout and returns the captured string.
        +std::string GetCapturedStdout() {
        +  return GetCapturedStream(&g_captured_stdout);
        +}
        +
        +// Stops capturing stderr and returns the captured string.
        +std::string GetCapturedStderr() {
        +  return GetCapturedStream(&g_captured_stderr);
        +}
        +
        +#endif  // GTEST_HAS_STREAM_REDIRECTION
        +
        +std::string TempDir() {
        +#if GTEST_OS_WINDOWS_MOBILE
        +  return "\\temp\\";
        +#elif GTEST_OS_WINDOWS
        +  const char* temp_dir = posix::GetEnv("TEMP");
        +  if (temp_dir == NULL || temp_dir[0] == '\0')
        +    return "\\temp\\";
        +  else if (temp_dir[strlen(temp_dir) - 1] == '\\')
        +    return temp_dir;
        +  else
        +    return std::string(temp_dir) + "\\";
        +#elif GTEST_OS_LINUX_ANDROID
        +  return "/sdcard/";
        +#else
        +  return "/tmp/";
        +#endif  // GTEST_OS_WINDOWS_MOBILE
        +}
        +
        +size_t GetFileSize(FILE* file) {
        +  fseek(file, 0, SEEK_END);
        +  return static_cast<size_t>(ftell(file));
        +}
        +
        +std::string ReadEntireFile(FILE* file) {
        +  const size_t file_size = GetFileSize(file);
        +  char* const buffer = new char[file_size];
        +
        +  size_t bytes_last_read = 0;  // # of bytes read in the last fread()
        +  size_t bytes_read = 0;       // # of bytes read so far
        +
        +  fseek(file, 0, SEEK_SET);
        +
        +  // Keeps reading the file until we cannot read further or the
        +  // pre-determined file size is reached.
        +  do {
        +    bytes_last_read = fread(buffer+bytes_read, 1, file_size-bytes_read, file);
        +    bytes_read += bytes_last_read;
        +  } while (bytes_last_read > 0 && bytes_read < file_size);
        +
        +  const std::string content(buffer, bytes_read);
        +  delete[] buffer;
        +
        +  return content;
        +}
        +
        +#if GTEST_HAS_DEATH_TEST
        +
        +static const ::std::vector<testing::internal::string>* g_injected_test_argvs =
        +                                        NULL;  // Owned.
        +
        +void SetInjectableArgvs(const ::std::vector<testing::internal::string>* argvs) {
        +  if (g_injected_test_argvs != argvs)
        +    delete g_injected_test_argvs;
        +  g_injected_test_argvs = argvs;
        +}
        +
        +const ::std::vector<testing::internal::string>& GetInjectableArgvs() {
        +  if (g_injected_test_argvs != NULL) {
        +    return *g_injected_test_argvs;
        +  }
        +  return GetArgvs();
        +}
        +#endif  // GTEST_HAS_DEATH_TEST
        +
        +#if GTEST_OS_WINDOWS_MOBILE
        +namespace posix {
        +void Abort() {
        +  DebugBreak();
        +  TerminateProcess(GetCurrentProcess(), 1);
        +}
        +}  // namespace posix
        +#endif  // GTEST_OS_WINDOWS_MOBILE
        +
        +// Returns the name of the environment variable corresponding to the
        +// given flag.  For example, FlagToEnvVar("foo") will return
        +// "GTEST_FOO" in the open-source version.
        +static std::string FlagToEnvVar(const char* flag) {
        +  const std::string full_flag =
        +      (Message() << GTEST_FLAG_PREFIX_ << flag).GetString();
        +
        +  Message env_var;
        +  for (size_t i = 0; i != full_flag.length(); i++) {
        +    env_var << ToUpper(full_flag.c_str()[i]);
        +  }
        +
        +  return env_var.GetString();
        +}
        +
        +// Parses 'str' for a 32-bit signed integer.  If successful, writes
        +// the result to *value and returns true; otherwise leaves *value
        +// unchanged and returns false.
        +bool ParseInt32(const Message& src_text, const char* str, Int32* value) {
        +  // Parses the environment variable as a decimal integer.
        +  char* end = NULL;
        +  const long long_value = strtol(str, &end, 10);  // NOLINT
        +
        +  // Has strtol() consumed all characters in the string?
        +  if (*end != '\0') {
        +    // No - an invalid character was encountered.
        +    Message msg;
        +    msg << "WARNING: " << src_text
        +        << " is expected to be a 32-bit integer, but actually"
        +        << " has value \"" << str << "\".\n";
        +    printf("%s", msg.GetString().c_str());
        +    fflush(stdout);
        +    return false;
        +  }
        +
        +  // Is the parsed value in the range of an Int32?
        +  const Int32 result = static_cast<Int32>(long_value);
        +  if (long_value == LONG_MAX || long_value == LONG_MIN ||
        +      // The parsed value overflows as a long.  (strtol() returns
        +      // LONG_MAX or LONG_MIN when the input overflows.)
        +      result != long_value
        +      // The parsed value overflows as an Int32.
        +      ) {
        +    Message msg;
        +    msg << "WARNING: " << src_text
        +        << " is expected to be a 32-bit integer, but actually"
        +        << " has value " << str << ", which overflows.\n";
        +    printf("%s", msg.GetString().c_str());
        +    fflush(stdout);
        +    return false;
        +  }
        +
        +  *value = result;
        +  return true;
        +}
        +
        +// Reads and returns the Boolean environment variable corresponding to
        +// the given flag; if it's not set, returns default_value.
        +//
        +// The value is considered true iff it's not "0".
        +bool BoolFromGTestEnv(const char* flag, bool default_value) {
        +#if defined(GTEST_GET_BOOL_FROM_ENV_)
        +  return GTEST_GET_BOOL_FROM_ENV_(flag, default_value);
        +#endif  // defined(GTEST_GET_BOOL_FROM_ENV_)
        +  const std::string env_var = FlagToEnvVar(flag);
        +  const char* const string_value = posix::GetEnv(env_var.c_str());
        +  return string_value == NULL ?
        +      default_value : strcmp(string_value, "0") != 0;
        +}
        +
        +// Reads and returns a 32-bit integer stored in the environment
        +// variable corresponding to the given flag; if it isn't set or
        +// doesn't represent a valid 32-bit integer, returns default_value.
        +Int32 Int32FromGTestEnv(const char* flag, Int32 default_value) {
        +#if defined(GTEST_GET_INT32_FROM_ENV_)
        +  return GTEST_GET_INT32_FROM_ENV_(flag, default_value);
        +#endif  // defined(GTEST_GET_INT32_FROM_ENV_)
        +  const std::string env_var = FlagToEnvVar(flag);
        +  const char* const string_value = posix::GetEnv(env_var.c_str());
        +  if (string_value == NULL) {
        +    // The environment variable is not set.
        +    return default_value;
        +  }
        +
        +  Int32 result = default_value;
        +  if (!ParseInt32(Message() << "Environment variable " << env_var,
        +                  string_value, &result)) {
        +    printf("The default value %s is used.\n",
        +           (Message() << default_value).GetString().c_str());
        +    fflush(stdout);
        +    return default_value;
        +  }
        +
        +  return result;
        +}
        +
        +// Reads and returns the string environment variable corresponding to
        +// the given flag; if it's not set, returns default_value.
        +const char* StringFromGTestEnv(const char* flag, const char* default_value) {
        +#if defined(GTEST_GET_STRING_FROM_ENV_)
        +  return GTEST_GET_STRING_FROM_ENV_(flag, default_value);
        +#endif  // defined(GTEST_GET_STRING_FROM_ENV_)
        +  const std::string env_var = FlagToEnvVar(flag);
        +  const char* const value = posix::GetEnv(env_var.c_str());
        +  return value == NULL ? default_value : value;
        +}
        +
        +}  // namespace internal
        +}  // namespace testing
        diff --git a/lib/ann/fann/lib/googletest/src/gtest-printers.cc b/lib/ann/fann/lib/googletest/src/gtest-printers.cc
        new file mode 100644
        index 0000000..a2df412
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/src/gtest-printers.cc
        @@ -0,0 +1,373 @@
        +// Copyright 2007, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +// Google Test - The Google C++ Testing Framework
        +//
        +// This file implements a universal value printer that can print a
        +// value of any type T:
        +//
        +//   void ::testing::internal::UniversalPrinter<T>::Print(value, ostream_ptr);
        +//
        +// It uses the << operator when possible, and prints the bytes in the
        +// object otherwise.  A user can override its behavior for a class
        +// type Foo by defining either operator<<(::std::ostream&, const Foo&)
        +// or void PrintTo(const Foo&, ::std::ostream*) in the namespace that
        +// defines Foo.
        +
        +#include "gtest/gtest-printers.h"
        +#include <ctype.h>
        +#include <stdio.h>
        +#include <cwchar>
        +#include <ostream>  // NOLINT
        +#include <string>
        +#include "gtest/internal/gtest-port.h"
        +
        +namespace testing {
        +
        +namespace {
        +
        +using ::std::ostream;
        +
        +// Prints a segment of bytes in the given object.
        +GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_
        +GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_
        +GTEST_ATTRIBUTE_NO_SANITIZE_THREAD_
        +void PrintByteSegmentInObjectTo(const unsigned char* obj_bytes, size_t start,
        +                                size_t count, ostream* os) {
        +  char text[5] = "";
        +  for (size_t i = 0; i != count; i++) {
        +    const size_t j = start + i;
        +    if (i != 0) {
        +      // Organizes the bytes into groups of 2 for easy parsing by
        +      // human.
        +      if ((j % 2) == 0)
        +        *os << ' ';
        +      else
        +        *os << '-';
        +    }
        +    GTEST_SNPRINTF_(text, sizeof(text), "%02X", obj_bytes[j]);
        +    *os << text;
        +  }
        +}
        +
        +// Prints the bytes in the given value to the given ostream.
        +void PrintBytesInObjectToImpl(const unsigned char* obj_bytes, size_t count,
        +                              ostream* os) {
        +  // Tells the user how big the object is.
        +  *os << count << "-byte object <";
        +
        +  const size_t kThreshold = 132;
        +  const size_t kChunkSize = 64;
        +  // If the object size is bigger than kThreshold, we'll have to omit
        +  // some details by printing only the first and the last kChunkSize
        +  // bytes.
        +  // TODO(wan): let the user control the threshold using a flag.
        +  if (count < kThreshold) {
        +    PrintByteSegmentInObjectTo(obj_bytes, 0, count, os);
        +  } else {
        +    PrintByteSegmentInObjectTo(obj_bytes, 0, kChunkSize, os);
        +    *os << " ... ";
        +    // Rounds up to 2-byte boundary.
        +    const size_t resume_pos = (count - kChunkSize + 1)/2*2;
        +    PrintByteSegmentInObjectTo(obj_bytes, resume_pos, count - resume_pos, os);
        +  }
        +  *os << ">";
        +}
        +
        +}  // namespace
        +
        +namespace internal2 {
        +
        +// Delegates to PrintBytesInObjectToImpl() to print the bytes in the
        +// given object.  The delegation simplifies the implementation, which
        +// uses the << operator and thus is easier done outside of the
        +// ::testing::internal namespace, which contains a << operator that
        +// sometimes conflicts with the one in STL.
        +void PrintBytesInObjectTo(const unsigned char* obj_bytes, size_t count,
        +                          ostream* os) {
        +  PrintBytesInObjectToImpl(obj_bytes, count, os);
        +}
        +
        +}  // namespace internal2
        +
        +namespace internal {
        +
        +// Depending on the value of a char (or wchar_t), we print it in one
        +// of three formats:
        +//   - as is if it's a printable ASCII (e.g. 'a', '2', ' '),
        +//   - as a hexidecimal escape sequence (e.g. '\x7F'), or
        +//   - as a special escape sequence (e.g. '\r', '\n').
        +enum CharFormat {
        +  kAsIs,
        +  kHexEscape,
        +  kSpecialEscape
        +};
        +
        +// Returns true if c is a printable ASCII character.  We test the
        +// value of c directly instead of calling isprint(), which is buggy on
        +// Windows Mobile.
        +inline bool IsPrintableAscii(wchar_t c) {
        +  return 0x20 <= c && c <= 0x7E;
        +}
        +
        +// Prints a wide or narrow char c as a character literal without the
        +// quotes, escaping it when necessary; returns how c was formatted.
        +// The template argument UnsignedChar is the unsigned version of Char,
        +// which is the type of c.
        +template <typename UnsignedChar, typename Char>
        +static CharFormat PrintAsCharLiteralTo(Char c, ostream* os) {
        +  switch (static_cast<wchar_t>(c)) {
        +    case L'\0':
        +      *os << "\\0";
        +      break;
        +    case L'\'':
        +      *os << "\\'";
        +      break;
        +    case L'\\':
        +      *os << "\\\\";
        +      break;
        +    case L'\a':
        +      *os << "\\a";
        +      break;
        +    case L'\b':
        +      *os << "\\b";
        +      break;
        +    case L'\f':
        +      *os << "\\f";
        +      break;
        +    case L'\n':
        +      *os << "\\n";
        +      break;
        +    case L'\r':
        +      *os << "\\r";
        +      break;
        +    case L'\t':
        +      *os << "\\t";
        +      break;
        +    case L'\v':
        +      *os << "\\v";
        +      break;
        +    default:
        +      if (IsPrintableAscii(c)) {
        +        *os << static_cast<char>(c);
        +        return kAsIs;
        +      } else {
        +        *os << "\\x" + String::FormatHexInt(static_cast<UnsignedChar>(c));
        +        return kHexEscape;
        +      }
        +  }
        +  return kSpecialEscape;
        +}
        +
        +// Prints a wchar_t c as if it's part of a string literal, escaping it when
        +// necessary; returns how c was formatted.
        +static CharFormat PrintAsStringLiteralTo(wchar_t c, ostream* os) {
        +  switch (c) {
        +    case L'\'':
        +      *os << "'";
        +      return kAsIs;
        +    case L'"':
        +      *os << "\\\"";
        +      return kSpecialEscape;
        +    default:
        +      return PrintAsCharLiteralTo<wchar_t>(c, os);
        +  }
        +}
        +
        +// Prints a char c as if it's part of a string literal, escaping it when
        +// necessary; returns how c was formatted.
        +static CharFormat PrintAsStringLiteralTo(char c, ostream* os) {
        +  return PrintAsStringLiteralTo(
        +      static_cast<wchar_t>(static_cast<unsigned char>(c)), os);
        +}
        +
        +// Prints a wide or narrow character c and its code.  '\0' is printed
        +// as "'\\0'", other unprintable characters are also properly escaped
        +// using the standard C++ escape sequence.  The template argument
        +// UnsignedChar is the unsigned version of Char, which is the type of c.
        +template <typename UnsignedChar, typename Char>
        +void PrintCharAndCodeTo(Char c, ostream* os) {
        +  // First, print c as a literal in the most readable form we can find.
        +  *os << ((sizeof(c) > 1) ? "L'" : "'");
        +  const CharFormat format = PrintAsCharLiteralTo<UnsignedChar>(c, os);
        +  *os << "'";
        +
        +  // To aid user debugging, we also print c's code in decimal, unless
        +  // it's 0 (in which case c was printed as '\\0', making the code
        +  // obvious).
        +  if (c == 0)
        +    return;
        +  *os << " (" << static_cast<int>(c);
        +
        +  // For more convenience, we print c's code again in hexidecimal,
        +  // unless c was already printed in the form '\x##' or the code is in
        +  // [1, 9].
        +  if (format == kHexEscape || (1 <= c && c <= 9)) {
        +    // Do nothing.
        +  } else {
        +    *os << ", 0x" << String::FormatHexInt(static_cast<UnsignedChar>(c));
        +  }
        +  *os << ")";
        +}
        +
        +void PrintTo(unsigned char c, ::std::ostream* os) {
        +  PrintCharAndCodeTo<unsigned char>(c, os);
        +}
        +void PrintTo(signed char c, ::std::ostream* os) {
        +  PrintCharAndCodeTo<unsigned char>(c, os);
        +}
        +
        +// Prints a wchar_t as a symbol if it is printable or as its internal
        +// code otherwise and also as its code.  L'\0' is printed as "L'\\0'".
        +void PrintTo(wchar_t wc, ostream* os) {
        +  PrintCharAndCodeTo<wchar_t>(wc, os);
        +}
        +
        +// Prints the given array of characters to the ostream.  CharType must be either
        +// char or wchar_t.
        +// The array starts at begin, the length is len, it may include '\0' characters
        +// and may not be NUL-terminated.
        +template <typename CharType>
        +GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_
        +GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_
        +GTEST_ATTRIBUTE_NO_SANITIZE_THREAD_
        +static void PrintCharsAsStringTo(
        +    const CharType* begin, size_t len, ostream* os) {
        +  const char* const kQuoteBegin = sizeof(CharType) == 1 ? "\"" : "L\"";
        +  *os << kQuoteBegin;
        +  bool is_previous_hex = false;
        +  for (size_t index = 0; index < len; ++index) {
        +    const CharType cur = begin[index];
        +    if (is_previous_hex && IsXDigit(cur)) {
        +      // Previous character is of '\x..' form and this character can be
        +      // interpreted as another hexadecimal digit in its number. Break string to
        +      // disambiguate.
        +      *os << "\" " << kQuoteBegin;
        +    }
        +    is_previous_hex = PrintAsStringLiteralTo(cur, os) == kHexEscape;
        +  }
        +  *os << "\"";
        +}
        +
        +// Prints a (const) char/wchar_t array of 'len' elements, starting at address
        +// 'begin'.  CharType must be either char or wchar_t.
        +template <typename CharType>
        +GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_
        +GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_
        +GTEST_ATTRIBUTE_NO_SANITIZE_THREAD_
        +static void UniversalPrintCharArray(
        +    const CharType* begin, size_t len, ostream* os) {
        +  // The code
        +  //   const char kFoo[] = "foo";
        +  // generates an array of 4, not 3, elements, with the last one being '\0'.
        +  //
        +  // Therefore when printing a char array, we don't print the last element if
        +  // it's '\0', such that the output matches the string literal as it's
        +  // written in the source code.
        +  if (len > 0 && begin[len - 1] == '\0') {
        +    PrintCharsAsStringTo(begin, len - 1, os);
        +    return;
        +  }
        +
        +  // If, however, the last element in the array is not '\0', e.g.
        +  //    const char kFoo[] = { 'f', 'o', 'o' };
        +  // we must print the entire array.  We also print a message to indicate
        +  // that the array is not NUL-terminated.
        +  PrintCharsAsStringTo(begin, len, os);
        +  *os << " (no terminating NUL)";
        +}
        +
        +// Prints a (const) char array of 'len' elements, starting at address 'begin'.
        +void UniversalPrintArray(const char* begin, size_t len, ostream* os) {
        +  UniversalPrintCharArray(begin, len, os);
        +}
        +
        +// Prints a (const) wchar_t array of 'len' elements, starting at address
        +// 'begin'.
        +void UniversalPrintArray(const wchar_t* begin, size_t len, ostream* os) {
        +  UniversalPrintCharArray(begin, len, os);
        +}
        +
        +// Prints the given C string to the ostream.
        +void PrintTo(const char* s, ostream* os) {
        +  if (s == NULL) {
        +    *os << "NULL";
        +  } else {
        +    *os << ImplicitCast_<const void*>(s) << " pointing to ";
        +    PrintCharsAsStringTo(s, strlen(s), os);
        +  }
        +}
        +
        +// MSVC compiler can be configured to define whar_t as a typedef
        +// of unsigned short. Defining an overload for const wchar_t* in that case
        +// would cause pointers to unsigned shorts be printed as wide strings,
        +// possibly accessing more memory than intended and causing invalid
        +// memory accesses. MSVC defines _NATIVE_WCHAR_T_DEFINED symbol when
        +// wchar_t is implemented as a native type.
        +#if !defined(_MSC_VER) || defined(_NATIVE_WCHAR_T_DEFINED)
        +// Prints the given wide C string to the ostream.
        +void PrintTo(const wchar_t* s, ostream* os) {
        +  if (s == NULL) {
        +    *os << "NULL";
        +  } else {
        +    *os << ImplicitCast_<const void*>(s) << " pointing to ";
        +    PrintCharsAsStringTo(s, std::wcslen(s), os);
        +  }
        +}
        +#endif  // wchar_t is native
        +
        +// Prints a ::string object.
        +#if GTEST_HAS_GLOBAL_STRING
        +void PrintStringTo(const ::string& s, ostream* os) {
        +  PrintCharsAsStringTo(s.data(), s.size(), os);
        +}
        +#endif  // GTEST_HAS_GLOBAL_STRING
        +
        +void PrintStringTo(const ::std::string& s, ostream* os) {
        +  PrintCharsAsStringTo(s.data(), s.size(), os);
        +}
        +
        +// Prints a ::wstring object.
        +#if GTEST_HAS_GLOBAL_WSTRING
        +void PrintWideStringTo(const ::wstring& s, ostream* os) {
        +  PrintCharsAsStringTo(s.data(), s.size(), os);
        +}
        +#endif  // GTEST_HAS_GLOBAL_WSTRING
        +
        +#if GTEST_HAS_STD_WSTRING
        +void PrintWideStringTo(const ::std::wstring& s, ostream* os) {
        +  PrintCharsAsStringTo(s.data(), s.size(), os);
        +}
        +#endif  // GTEST_HAS_STD_WSTRING
        +
        +}  // namespace internal
        +
        +}  // namespace testing
        diff --git a/lib/ann/fann/lib/googletest/src/gtest-test-part.cc b/lib/ann/fann/lib/googletest/src/gtest-test-part.cc
        new file mode 100644
        index 0000000..fb0e354
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/src/gtest-test-part.cc
        @@ -0,0 +1,110 @@
        +// Copyright 2008, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: mheule@google.com (Markus Heule)
        +//
        +// The Google C++ Testing Framework (Google Test)
        +
        +#include "gtest/gtest-test-part.h"
        +
        +// Indicates that this translation unit is part of Google Test's
        +// implementation.  It must come before gtest-internal-inl.h is
        +// included, or there will be a compiler error.  This trick exists to
        +// prevent the accidental inclusion of gtest-internal-inl.h in the
        +// user's code.
        +#define GTEST_IMPLEMENTATION_ 1
        +#include "src/gtest-internal-inl.h"
        +#undef GTEST_IMPLEMENTATION_
        +
        +namespace testing {
        +
        +using internal::GetUnitTestImpl;
        +
        +// Gets the summary of the failure message by omitting the stack trace
        +// in it.
        +std::string TestPartResult::ExtractSummary(const char* message) {
        +  const char* const stack_trace = strstr(message, internal::kStackTraceMarker);
        +  return stack_trace == NULL ? message :
        +      std::string(message, stack_trace);
        +}
        +
        +// Prints a TestPartResult object.
        +std::ostream& operator<<(std::ostream& os, const TestPartResult& result) {
        +  return os
        +      << result.file_name() << ":" << result.line_number() << ": "
        +      << (result.type() == TestPartResult::kSuccess ? "Success" :
        +          result.type() == TestPartResult::kFatalFailure ? "Fatal failure" :
        +          "Non-fatal failure") << ":\n"
        +      << result.message() << std::endl;
        +}
        +
        +// Appends a TestPartResult to the array.
        +void TestPartResultArray::Append(const TestPartResult& result) {
        +  array_.push_back(result);
        +}
        +
        +// Returns the TestPartResult at the given index (0-based).
        +const TestPartResult& TestPartResultArray::GetTestPartResult(int index) const {
        +  if (index < 0 || index >= size()) {
        +    printf("\nInvalid index (%d) into TestPartResultArray.\n", index);
        +    internal::posix::Abort();
        +  }
        +
        +  return array_[index];
        +}
        +
        +// Returns the number of TestPartResult objects in the array.
        +int TestPartResultArray::size() const {
        +  return static_cast<int>(array_.size());
        +}
        +
        +namespace internal {
        +
        +HasNewFatalFailureHelper::HasNewFatalFailureHelper()
        +    : has_new_fatal_failure_(false),
        +      original_reporter_(GetUnitTestImpl()->
        +                         GetTestPartResultReporterForCurrentThread()) {
        +  GetUnitTestImpl()->SetTestPartResultReporterForCurrentThread(this);
        +}
        +
        +HasNewFatalFailureHelper::~HasNewFatalFailureHelper() {
        +  GetUnitTestImpl()->SetTestPartResultReporterForCurrentThread(
        +      original_reporter_);
        +}
        +
        +void HasNewFatalFailureHelper::ReportTestPartResult(
        +    const TestPartResult& result) {
        +  if (result.fatally_failed())
        +    has_new_fatal_failure_ = true;
        +  original_reporter_->ReportTestPartResult(result);
        +}
        +
        +}  // namespace internal
        +
        +}  // namespace testing
        diff --git a/lib/ann/fann/lib/googletest/src/gtest-typed-test.cc b/lib/ann/fann/lib/googletest/src/gtest-typed-test.cc
        new file mode 100644
        index 0000000..df1eef4
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/src/gtest-typed-test.cc
        @@ -0,0 +1,118 @@
        +// Copyright 2008 Google Inc.
        +// All Rights Reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +#include "gtest/gtest-typed-test.h"
        +#include "gtest/gtest.h"
        +
        +namespace testing {
        +namespace internal {
        +
        +#if GTEST_HAS_TYPED_TEST_P
        +
        +// Skips to the first non-space char in str. Returns an empty string if str
        +// contains only whitespace characters.
        +static const char* SkipSpaces(const char* str) {
        +  while (IsSpace(*str))
        +    str++;
        +  return str;
        +}
        +
        +static std::vector<std::string> SplitIntoTestNames(const char* src) {
        +  std::vector<std::string> name_vec;
        +  src = SkipSpaces(src);
        +  for (; src != NULL; src = SkipComma(src)) {
        +    name_vec.push_back(StripTrailingSpaces(GetPrefixUntilComma(src)));
        +  }
        +  return name_vec;
        +}
        +
        +// Verifies that registered_tests match the test names in
        +// registered_tests_; returns registered_tests if successful, or
        +// aborts the program otherwise.
        +const char* TypedTestCasePState::VerifyRegisteredTestNames(
        +    const char* file, int line, const char* registered_tests) {
        +  typedef RegisteredTestsMap::const_iterator RegisteredTestIter;
        +  registered_ = true;
        +
        +  std::vector<std::string> name_vec = SplitIntoTestNames(registered_tests);
        +
        +  Message errors;
        +
        +  std::set<std::string> tests;
        +  for (std::vector<std::string>::const_iterator name_it = name_vec.begin();
        +       name_it != name_vec.end(); ++name_it) {
        +    const std::string& name = *name_it;
        +    if (tests.count(name) != 0) {
        +      errors << "Test " << name << " is listed more than once.\n";
        +      continue;
        +    }
        +
        +    bool found = false;
        +    for (RegisteredTestIter it = registered_tests_.begin();
        +         it != registered_tests_.end();
        +         ++it) {
        +      if (name == it->first) {
        +        found = true;
        +        break;
        +      }
        +    }
        +
        +    if (found) {
        +      tests.insert(name);
        +    } else {
        +      errors << "No test named " << name
        +             << " can be found in this test case.\n";
        +    }
        +  }
        +
        +  for (RegisteredTestIter it = registered_tests_.begin();
        +       it != registered_tests_.end();
        +       ++it) {
        +    if (tests.count(it->first) == 0) {
        +      errors << "You forgot to list test " << it->first << ".\n";
        +    }
        +  }
        +
        +  const std::string& errors_str = errors.GetString();
        +  if (errors_str != "") {
        +    fprintf(stderr, "%s %s", FormatFileLocation(file, line).c_str(),
        +            errors_str.c_str());
        +    fflush(stderr);
        +    posix::Abort();
        +  }
        +
        +  return registered_tests;
        +}
        +
        +#endif  // GTEST_HAS_TYPED_TEST_P
        +
        +}  // namespace internal
        +}  // namespace testing
        diff --git a/lib/ann/fann/lib/googletest/src/gtest.cc b/lib/ann/fann/lib/googletest/src/gtest.cc
        new file mode 100644
        index 0000000..4170e5c
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/src/gtest.cc
        @@ -0,0 +1,5386 @@
        +// Copyright 2005, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +//
        +// The Google C++ Testing Framework (Google Test)
        +
        +#include "gtest/gtest.h"
        +#include "gtest/internal/custom/gtest.h"
        +#include "gtest/gtest-spi.h"
        +
        +#include <ctype.h>
        +#include <math.h>
        +#include <stdarg.h>
        +#include <stdio.h>
        +#include <stdlib.h>
        +#include <time.h>
        +#include <wchar.h>
        +#include <wctype.h>
        +
        +#include <algorithm>
        +#include <iomanip>
        +#include <limits>
        +#include <list>
        +#include <map>
        +#include <ostream>  // NOLINT
        +#include <sstream>
        +#include <vector>
        +
        +#if GTEST_OS_LINUX
        +
        +// TODO(kenton@google.com): Use autoconf to detect availability of
        +// gettimeofday().
        +# define GTEST_HAS_GETTIMEOFDAY_ 1
        +
        +# include <fcntl.h>  // NOLINT
        +# include <limits.h>  // NOLINT
        +# include <sched.h>  // NOLINT
        +// Declares vsnprintf().  This header is not available on Windows.
        +# include <strings.h>  // NOLINT
        +# include <sys/mman.h>  // NOLINT
        +# include <sys/time.h>  // NOLINT
        +# include <unistd.h>  // NOLINT
        +# include <string>
        +
        +#elif GTEST_OS_SYMBIAN
        +# define GTEST_HAS_GETTIMEOFDAY_ 1
        +# include <sys/time.h>  // NOLINT
        +
        +#elif GTEST_OS_ZOS
        +# define GTEST_HAS_GETTIMEOFDAY_ 1
        +# include <sys/time.h>  // NOLINT
        +
        +// On z/OS we additionally need strings.h for strcasecmp.
        +# include <strings.h>  // NOLINT
        +
        +#elif GTEST_OS_WINDOWS_MOBILE  // We are on Windows CE.
        +
        +# include <windows.h>  // NOLINT
        +# undef min
        +
        +#elif GTEST_OS_WINDOWS  // We are on Windows proper.
        +
        +# include <io.h>  // NOLINT
        +# include <sys/timeb.h>  // NOLINT
        +# include <sys/types.h>  // NOLINT
        +# include <sys/stat.h>  // NOLINT
        +
        +# if GTEST_OS_WINDOWS_MINGW
        +// MinGW has gettimeofday() but not _ftime64().
        +// TODO(kenton@google.com): Use autoconf to detect availability of
        +//   gettimeofday().
        +// TODO(kenton@google.com): There are other ways to get the time on
        +//   Windows, like GetTickCount() or GetSystemTimeAsFileTime().  MinGW
        +//   supports these.  consider using them instead.
        +#  define GTEST_HAS_GETTIMEOFDAY_ 1
        +#  include <sys/time.h>  // NOLINT
        +# endif  // GTEST_OS_WINDOWS_MINGW
        +
        +// cpplint thinks that the header is already included, so we want to
        +// silence it.
        +# include <windows.h>  // NOLINT
        +# undef min
        +
        +#else
        +
        +// Assume other platforms have gettimeofday().
        +// TODO(kenton@google.com): Use autoconf to detect availability of
        +//   gettimeofday().
        +# define GTEST_HAS_GETTIMEOFDAY_ 1
        +
        +// cpplint thinks that the header is already included, so we want to
        +// silence it.
        +# include <sys/time.h>  // NOLINT
        +# include <unistd.h>  // NOLINT
        +
        +#endif  // GTEST_OS_LINUX
        +
        +#if GTEST_HAS_EXCEPTIONS
        +# include <stdexcept>
        +#endif
        +
        +#if GTEST_CAN_STREAM_RESULTS_
        +# include <arpa/inet.h>  // NOLINT
        +# include <netdb.h>  // NOLINT
        +# include <sys/socket.h>  // NOLINT
        +# include <sys/types.h>  // NOLINT
        +#endif
        +
        +// Indicates that this translation unit is part of Google Test's
        +// implementation.  It must come before gtest-internal-inl.h is
        +// included, or there will be a compiler error.  This trick is to
        +// prevent a user from accidentally including gtest-internal-inl.h in
        +// his code.
        +#define GTEST_IMPLEMENTATION_ 1
        +#include "src/gtest-internal-inl.h"
        +#undef GTEST_IMPLEMENTATION_
        +
        +#if GTEST_OS_WINDOWS
        +# define vsnprintf _vsnprintf
        +#endif  // GTEST_OS_WINDOWS
        +
        +namespace testing {
        +
        +using internal::CountIf;
        +using internal::ForEach;
        +using internal::GetElementOr;
        +using internal::Shuffle;
        +
        +// Constants.
        +
        +// A test whose test case name or test name matches this filter is
        +// disabled and not run.
        +static const char kDisableTestFilter[] = "DISABLED_*:*/DISABLED_*";
        +
        +// A test case whose name matches this filter is considered a death
        +// test case and will be run before test cases whose name doesn't
        +// match this filter.
        +static const char kDeathTestCaseFilter[] = "*DeathTest:*DeathTest/*";
        +
        +// A test filter that matches everything.
        +static const char kUniversalFilter[] = "*";
        +
        +// The default output file for XML output.
        +static const char kDefaultOutputFile[] = "test_detail.xml";
        +
        +// The environment variable name for the test shard index.
        +static const char kTestShardIndex[] = "GTEST_SHARD_INDEX";
        +// The environment variable name for the total number of test shards.
        +static const char kTestTotalShards[] = "GTEST_TOTAL_SHARDS";
        +// The environment variable name for the test shard status file.
        +static const char kTestShardStatusFile[] = "GTEST_SHARD_STATUS_FILE";
        +
        +namespace internal {
        +
        +// The text used in failure messages to indicate the start of the
        +// stack trace.
        +const char kStackTraceMarker[] = "\nStack trace:\n";
        +
        +// g_help_flag is true iff the --help flag or an equivalent form is
        +// specified on the command line.
        +bool g_help_flag = false;
        +
        +}  // namespace internal
        +
        +static const char* GetDefaultFilter() {
        +#ifdef GTEST_TEST_FILTER_ENV_VAR_
        +  const char* const testbridge_test_only = getenv(GTEST_TEST_FILTER_ENV_VAR_);
        +  if (testbridge_test_only != NULL) {
        +    return testbridge_test_only;
        +  }
        +#endif  // GTEST_TEST_FILTER_ENV_VAR_
        +  return kUniversalFilter;
        +}
        +
        +GTEST_DEFINE_bool_(
        +    also_run_disabled_tests,
        +    internal::BoolFromGTestEnv("also_run_disabled_tests", false),
        +    "Run disabled tests too, in addition to the tests normally being run.");
        +
        +GTEST_DEFINE_bool_(
        +    break_on_failure,
        +    internal::BoolFromGTestEnv("break_on_failure", false),
        +    "True iff a failed assertion should be a debugger break-point.");
        +
        +GTEST_DEFINE_bool_(
        +    catch_exceptions,
        +    internal::BoolFromGTestEnv("catch_exceptions", true),
        +    "True iff " GTEST_NAME_
        +    " should catch exceptions and treat them as test failures.");
        +
        +GTEST_DEFINE_string_(
        +    color,
        +    internal::StringFromGTestEnv("color", "auto"),
        +    "Whether to use colors in the output.  Valid values: yes, no, "
        +    "and auto.  'auto' means to use colors if the output is "
        +    "being sent to a terminal and the TERM environment variable "
        +    "is set to a terminal type that supports colors.");
        +
        +GTEST_DEFINE_string_(
        +    filter,
        +    internal::StringFromGTestEnv("filter", GetDefaultFilter()),
        +    "A colon-separated list of glob (not regex) patterns "
        +    "for filtering the tests to run, optionally followed by a "
        +    "'-' and a : separated list of negative patterns (tests to "
        +    "exclude).  A test is run if it matches one of the positive "
        +    "patterns and does not match any of the negative patterns.");
        +
        +GTEST_DEFINE_bool_(list_tests, false,
        +                   "List all tests without running them.");
        +
        +GTEST_DEFINE_string_(
        +    output,
        +    internal::StringFromGTestEnv("output", ""),
        +    "A format (currently must be \"xml\"), optionally followed "
        +    "by a colon and an output file name or directory. A directory "
        +    "is indicated by a trailing pathname separator. "
        +    "Examples: \"xml:filename.xml\", \"xml::directoryname/\". "
        +    "If a directory is specified, output files will be created "
        +    "within that directory, with file-names based on the test "
        +    "executable's name and, if necessary, made unique by adding "
        +    "digits.");
        +
        +GTEST_DEFINE_bool_(
        +    print_time,
        +    internal::BoolFromGTestEnv("print_time", true),
        +    "True iff " GTEST_NAME_
        +    " should display elapsed time in text output.");
        +
        +GTEST_DEFINE_int32_(
        +    random_seed,
        +    internal::Int32FromGTestEnv("random_seed", 0),
        +    "Random number seed to use when shuffling test orders.  Must be in range "
        +    "[1, 99999], or 0 to use a seed based on the current time.");
        +
        +GTEST_DEFINE_int32_(
        +    repeat,
        +    internal::Int32FromGTestEnv("repeat", 1),
        +    "How many times to repeat each test.  Specify a negative number "
        +    "for repeating forever.  Useful for shaking out flaky tests.");
        +
        +GTEST_DEFINE_bool_(
        +    show_internal_stack_frames, false,
        +    "True iff " GTEST_NAME_ " should include internal stack frames when "
        +    "printing test failure stack traces.");
        +
        +GTEST_DEFINE_bool_(
        +    shuffle,
        +    internal::BoolFromGTestEnv("shuffle", false),
        +    "True iff " GTEST_NAME_
        +    " should randomize tests' order on every run.");
        +
        +GTEST_DEFINE_int32_(
        +    stack_trace_depth,
        +    internal::Int32FromGTestEnv("stack_trace_depth", kMaxStackTraceDepth),
        +    "The maximum number of stack frames to print when an "
        +    "assertion fails.  The valid range is 0 through 100, inclusive.");
        +
        +GTEST_DEFINE_string_(
        +    stream_result_to,
        +    internal::StringFromGTestEnv("stream_result_to", ""),
        +    "This flag specifies the host name and the port number on which to stream "
        +    "test results. Example: \"localhost:555\". The flag is effective only on "
        +    "Linux.");
        +
        +GTEST_DEFINE_bool_(
        +    throw_on_failure,
        +    internal::BoolFromGTestEnv("throw_on_failure", false),
        +    "When this flag is specified, a failed assertion will throw an exception "
        +    "if exceptions are enabled or exit the program with a non-zero code "
        +    "otherwise.");
        +
        +#if GTEST_USE_OWN_FLAGFILE_FLAG_
        +GTEST_DEFINE_string_(
        +    flagfile,
        +    internal::StringFromGTestEnv("flagfile", ""),
        +    "This flag specifies the flagfile to read command-line flags from.");
        +#endif  // GTEST_USE_OWN_FLAGFILE_FLAG_
        +
        +namespace internal {
        +
        +// Generates a random number from [0, range), using a Linear
        +// Congruential Generator (LCG).  Crashes if 'range' is 0 or greater
        +// than kMaxRange.
        +UInt32 Random::Generate(UInt32 range) {
        +  // These constants are the same as are used in glibc's rand(3).
        +  state_ = (1103515245U*state_ + 12345U) % kMaxRange;
        +
        +  GTEST_CHECK_(range > 0)
        +      << "Cannot generate a number in the range [0, 0).";
        +  GTEST_CHECK_(range <= kMaxRange)
        +      << "Generation of a number in [0, " << range << ") was requested, "
        +      << "but this can only generate numbers in [0, " << kMaxRange << ").";
        +
        +  // Converting via modulus introduces a bit of downward bias, but
        +  // it's simple, and a linear congruential generator isn't too good
        +  // to begin with.
        +  return state_ % range;
        +}
        +
        +// GTestIsInitialized() returns true iff the user has initialized
        +// Google Test.  Useful for catching the user mistake of not initializing
        +// Google Test before calling RUN_ALL_TESTS().
        +static bool GTestIsInitialized() { return GetArgvs().size() > 0; }
        +
        +// Iterates over a vector of TestCases, keeping a running sum of the
        +// results of calling a given int-returning method on each.
        +// Returns the sum.
        +static int SumOverTestCaseList(const std::vector<TestCase*>& case_list,
        +                               int (TestCase::*method)() const) {
        +  int sum = 0;
        +  for (size_t i = 0; i < case_list.size(); i++) {
        +    sum += (case_list[i]->*method)();
        +  }
        +  return sum;
        +}
        +
        +// Returns true iff the test case passed.
        +static bool TestCasePassed(const TestCase* test_case) {
        +  return test_case->should_run() && test_case->Passed();
        +}
        +
        +// Returns true iff the test case failed.
        +static bool TestCaseFailed(const TestCase* test_case) {
        +  return test_case->should_run() && test_case->Failed();
        +}
        +
        +// Returns true iff test_case contains at least one test that should
        +// run.
        +static bool ShouldRunTestCase(const TestCase* test_case) {
        +  return test_case->should_run();
        +}
        +
        +// AssertHelper constructor.
        +AssertHelper::AssertHelper(TestPartResult::Type type,
        +                           const char* file,
        +                           int line,
        +                           const char* message)
        +    : data_(new AssertHelperData(type, file, line, message)) {
        +}
        +
        +AssertHelper::~AssertHelper() {
        +  delete data_;
        +}
        +
        +// Message assignment, for assertion streaming support.
        +void AssertHelper::operator=(const Message& message) const {
        +  UnitTest::GetInstance()->
        +    AddTestPartResult(data_->type, data_->file, data_->line,
        +                      AppendUserMessage(data_->message, message),
        +                      UnitTest::GetInstance()->impl()
        +                      ->CurrentOsStackTraceExceptTop(1)
        +                      // Skips the stack frame for this function itself.
        +                      );  // NOLINT
        +}
        +
        +// Mutex for linked pointers.
        +GTEST_API_ GTEST_DEFINE_STATIC_MUTEX_(g_linked_ptr_mutex);
        +
        +// A copy of all command line arguments.  Set by InitGoogleTest().
        +::std::vector<testing::internal::string> g_argvs;
        +
        +const ::std::vector<testing::internal::string>& GetArgvs() {
        +#if defined(GTEST_CUSTOM_GET_ARGVS_)
        +  return GTEST_CUSTOM_GET_ARGVS_();
        +#else  // defined(GTEST_CUSTOM_GET_ARGVS_)
        +  return g_argvs;
        +#endif  // defined(GTEST_CUSTOM_GET_ARGVS_)
        +}
        +
        +// Returns the current application's name, removing directory path if that
        +// is present.
        +FilePath GetCurrentExecutableName() {
        +  FilePath result;
        +
        +#if GTEST_OS_WINDOWS
        +  result.Set(FilePath(GetArgvs()[0]).RemoveExtension("exe"));
        +#else
        +  result.Set(FilePath(GetArgvs()[0]));
        +#endif  // GTEST_OS_WINDOWS
        +
        +  return result.RemoveDirectoryName();
        +}
        +
        +// Functions for processing the gtest_output flag.
        +
        +// Returns the output format, or "" for normal printed output.
        +std::string UnitTestOptions::GetOutputFormat() {
        +  const char* const gtest_output_flag = GTEST_FLAG(output).c_str();
        +  if (gtest_output_flag == NULL) return std::string("");
        +
        +  const char* const colon = strchr(gtest_output_flag, ':');
        +  return (colon == NULL) ?
        +      std::string(gtest_output_flag) :
        +      std::string(gtest_output_flag, colon - gtest_output_flag);
        +}
        +
        +// Returns the name of the requested output file, or the default if none
        +// was explicitly specified.
        +std::string UnitTestOptions::GetAbsolutePathToOutputFile() {
        +  const char* const gtest_output_flag = GTEST_FLAG(output).c_str();
        +  if (gtest_output_flag == NULL)
        +    return "";
        +
        +  const char* const colon = strchr(gtest_output_flag, ':');
        +  if (colon == NULL)
        +    return internal::FilePath::ConcatPaths(
        +        internal::FilePath(
        +            UnitTest::GetInstance()->original_working_dir()),
        +        internal::FilePath(kDefaultOutputFile)).string();
        +
        +  internal::FilePath output_name(colon + 1);
        +  if (!output_name.IsAbsolutePath())
        +    // TODO(wan@google.com): on Windows \some\path is not an absolute
        +    // path (as its meaning depends on the current drive), yet the
        +    // following logic for turning it into an absolute path is wrong.
        +    // Fix it.
        +    output_name = internal::FilePath::ConcatPaths(
        +        internal::FilePath(UnitTest::GetInstance()->original_working_dir()),
        +        internal::FilePath(colon + 1));
        +
        +  if (!output_name.IsDirectory())
        +    return output_name.string();
        +
        +  internal::FilePath result(internal::FilePath::GenerateUniqueFileName(
        +      output_name, internal::GetCurrentExecutableName(),
        +      GetOutputFormat().c_str()));
        +  return result.string();
        +}
        +
        +// Returns true iff the wildcard pattern matches the string.  The
        +// first ':' or '\0' character in pattern marks the end of it.
        +//
        +// This recursive algorithm isn't very efficient, but is clear and
        +// works well enough for matching test names, which are short.
        +bool UnitTestOptions::PatternMatchesString(const char *pattern,
        +                                           const char *str) {
        +  switch (*pattern) {
        +    case '\0':
        +    case ':':  // Either ':' or '\0' marks the end of the pattern.
        +      return *str == '\0';
        +    case '?':  // Matches any single character.
        +      return *str != '\0' && PatternMatchesString(pattern + 1, str + 1);
        +    case '*':  // Matches any string (possibly empty) of characters.
        +      return (*str != '\0' && PatternMatchesString(pattern, str + 1)) ||
        +          PatternMatchesString(pattern + 1, str);
        +    default:  // Non-special character.  Matches itself.
        +      return *pattern == *str &&
        +          PatternMatchesString(pattern + 1, str + 1);
        +  }
        +}
        +
        +bool UnitTestOptions::MatchesFilter(
        +    const std::string& name, const char* filter) {
        +  const char *cur_pattern = filter;
        +  for (;;) {
        +    if (PatternMatchesString(cur_pattern, name.c_str())) {
        +      return true;
        +    }
        +
        +    // Finds the next pattern in the filter.
        +    cur_pattern = strchr(cur_pattern, ':');
        +
        +    // Returns if no more pattern can be found.
        +    if (cur_pattern == NULL) {
        +      return false;
        +    }
        +
        +    // Skips the pattern separater (the ':' character).
        +    cur_pattern++;
        +  }
        +}
        +
        +// Returns true iff the user-specified filter matches the test case
        +// name and the test name.
        +bool UnitTestOptions::FilterMatchesTest(const std::string &test_case_name,
        +                                        const std::string &test_name) {
        +  const std::string& full_name = test_case_name + "." + test_name.c_str();
        +
        +  // Split --gtest_filter at '-', if there is one, to separate into
        +  // positive filter and negative filter portions
        +  const char* const p = GTEST_FLAG(filter).c_str();
        +  const char* const dash = strchr(p, '-');
        +  std::string positive;
        +  std::string negative;
        +  if (dash == NULL) {
        +    positive = GTEST_FLAG(filter).c_str();  // Whole string is a positive filter
        +    negative = "";
        +  } else {
        +    positive = std::string(p, dash);   // Everything up to the dash
        +    negative = std::string(dash + 1);  // Everything after the dash
        +    if (positive.empty()) {
        +      // Treat '-test1' as the same as '*-test1'
        +      positive = kUniversalFilter;
        +    }
        +  }
        +
        +  // A filter is a colon-separated list of patterns.  It matches a
        +  // test if any pattern in it matches the test.
        +  return (MatchesFilter(full_name, positive.c_str()) &&
        +          !MatchesFilter(full_name, negative.c_str()));
        +}
        +
        +#if GTEST_HAS_SEH
        +// Returns EXCEPTION_EXECUTE_HANDLER if Google Test should handle the
        +// given SEH exception, or EXCEPTION_CONTINUE_SEARCH otherwise.
        +// This function is useful as an __except condition.
        +int UnitTestOptions::GTestShouldProcessSEH(DWORD exception_code) {
        +  // Google Test should handle a SEH exception if:
        +  //   1. the user wants it to, AND
        +  //   2. this is not a breakpoint exception, AND
        +  //   3. this is not a C++ exception (VC++ implements them via SEH,
        +  //      apparently).
        +  //
        +  // SEH exception code for C++ exceptions.
        +  // (see http://support.microsoft.com/kb/185294 for more information).
        +  const DWORD kCxxExceptionCode = 0xe06d7363;
        +
        +  bool should_handle = true;
        +
        +  if (!GTEST_FLAG(catch_exceptions))
        +    should_handle = false;
        +  else if (exception_code == EXCEPTION_BREAKPOINT)
        +    should_handle = false;
        +  else if (exception_code == kCxxExceptionCode)
        +    should_handle = false;
        +
        +  return should_handle ? EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH;
        +}
        +#endif  // GTEST_HAS_SEH
        +
        +}  // namespace internal
        +
        +// The c'tor sets this object as the test part result reporter used by
        +// Google Test.  The 'result' parameter specifies where to report the
        +// results. Intercepts only failures from the current thread.
        +ScopedFakeTestPartResultReporter::ScopedFakeTestPartResultReporter(
        +    TestPartResultArray* result)
        +    : intercept_mode_(INTERCEPT_ONLY_CURRENT_THREAD),
        +      result_(result) {
        +  Init();
        +}
        +
        +// The c'tor sets this object as the test part result reporter used by
        +// Google Test.  The 'result' parameter specifies where to report the
        +// results.
        +ScopedFakeTestPartResultReporter::ScopedFakeTestPartResultReporter(
        +    InterceptMode intercept_mode, TestPartResultArray* result)
        +    : intercept_mode_(intercept_mode),
        +      result_(result) {
        +  Init();
        +}
        +
        +void ScopedFakeTestPartResultReporter::Init() {
        +  internal::UnitTestImpl* const impl = internal::GetUnitTestImpl();
        +  if (intercept_mode_ == INTERCEPT_ALL_THREADS) {
        +    old_reporter_ = impl->GetGlobalTestPartResultReporter();
        +    impl->SetGlobalTestPartResultReporter(this);
        +  } else {
        +    old_reporter_ = impl->GetTestPartResultReporterForCurrentThread();
        +    impl->SetTestPartResultReporterForCurrentThread(this);
        +  }
        +}
        +
        +// The d'tor restores the test part result reporter used by Google Test
        +// before.
        +ScopedFakeTestPartResultReporter::~ScopedFakeTestPartResultReporter() {
        +  internal::UnitTestImpl* const impl = internal::GetUnitTestImpl();
        +  if (intercept_mode_ == INTERCEPT_ALL_THREADS) {
        +    impl->SetGlobalTestPartResultReporter(old_reporter_);
        +  } else {
        +    impl->SetTestPartResultReporterForCurrentThread(old_reporter_);
        +  }
        +}
        +
        +// Increments the test part result count and remembers the result.
        +// This method is from the TestPartResultReporterInterface interface.
        +void ScopedFakeTestPartResultReporter::ReportTestPartResult(
        +    const TestPartResult& result) {
        +  result_->Append(result);
        +}
        +
        +namespace internal {
        +
        +// Returns the type ID of ::testing::Test.  We should always call this
        +// instead of GetTypeId< ::testing::Test>() to get the type ID of
        +// testing::Test.  This is to work around a suspected linker bug when
        +// using Google Test as a framework on Mac OS X.  The bug causes
        +// GetTypeId< ::testing::Test>() to return different values depending
        +// on whether the call is from the Google Test framework itself or
        +// from user test code.  GetTestTypeId() is guaranteed to always
        +// return the same value, as it always calls GetTypeId<>() from the
        +// gtest.cc, which is within the Google Test framework.
        +TypeId GetTestTypeId() {
        +  return GetTypeId<Test>();
        +}
        +
        +// The value of GetTestTypeId() as seen from within the Google Test
        +// library.  This is solely for testing GetTestTypeId().
        +extern const TypeId kTestTypeIdInGoogleTest = GetTestTypeId();
        +
        +// This predicate-formatter checks that 'results' contains a test part
        +// failure of the given type and that the failure message contains the
        +// given substring.
        +AssertionResult HasOneFailure(const char* /* results_expr */,
        +                              const char* /* type_expr */,
        +                              const char* /* substr_expr */,
        +                              const TestPartResultArray& results,
        +                              TestPartResult::Type type,
        +                              const string& substr) {
        +  const std::string expected(type == TestPartResult::kFatalFailure ?
        +                        "1 fatal failure" :
        +                        "1 non-fatal failure");
        +  Message msg;
        +  if (results.size() != 1) {
        +    msg << "Expected: " << expected << "\n"
        +        << "  Actual: " << results.size() << " failures";
        +    for (int i = 0; i < results.size(); i++) {
        +      msg << "\n" << results.GetTestPartResult(i);
        +    }
        +    return AssertionFailure() << msg;
        +  }
        +
        +  const TestPartResult& r = results.GetTestPartResult(0);
        +  if (r.type() != type) {
        +    return AssertionFailure() << "Expected: " << expected << "\n"
        +                              << "  Actual:\n"
        +                              << r;
        +  }
        +
        +  if (strstr(r.message(), substr.c_str()) == NULL) {
        +    return AssertionFailure() << "Expected: " << expected << " containing \""
        +                              << substr << "\"\n"
        +                              << "  Actual:\n"
        +                              << r;
        +  }
        +
        +  return AssertionSuccess();
        +}
        +
        +// The constructor of SingleFailureChecker remembers where to look up
        +// test part results, what type of failure we expect, and what
        +// substring the failure message should contain.
        +SingleFailureChecker:: SingleFailureChecker(
        +    const TestPartResultArray* results,
        +    TestPartResult::Type type,
        +    const string& substr)
        +    : results_(results),
        +      type_(type),
        +      substr_(substr) {}
        +
        +// The destructor of SingleFailureChecker verifies that the given
        +// TestPartResultArray contains exactly one failure that has the given
        +// type and contains the given substring.  If that's not the case, a
        +// non-fatal failure will be generated.
        +SingleFailureChecker::~SingleFailureChecker() {
        +  EXPECT_PRED_FORMAT3(HasOneFailure, *results_, type_, substr_);
        +}
        +
        +DefaultGlobalTestPartResultReporter::DefaultGlobalTestPartResultReporter(
        +    UnitTestImpl* unit_test) : unit_test_(unit_test) {}
        +
        +void DefaultGlobalTestPartResultReporter::ReportTestPartResult(
        +    const TestPartResult& result) {
        +  unit_test_->current_test_result()->AddTestPartResult(result);
        +  unit_test_->listeners()->repeater()->OnTestPartResult(result);
        +}
        +
        +DefaultPerThreadTestPartResultReporter::DefaultPerThreadTestPartResultReporter(
        +    UnitTestImpl* unit_test) : unit_test_(unit_test) {}
        +
        +void DefaultPerThreadTestPartResultReporter::ReportTestPartResult(
        +    const TestPartResult& result) {
        +  unit_test_->GetGlobalTestPartResultReporter()->ReportTestPartResult(result);
        +}
        +
        +// Returns the global test part result reporter.
        +TestPartResultReporterInterface*
        +UnitTestImpl::GetGlobalTestPartResultReporter() {
        +  internal::MutexLock lock(&global_test_part_result_reporter_mutex_);
        +  return global_test_part_result_repoter_;
        +}
        +
        +// Sets the global test part result reporter.
        +void UnitTestImpl::SetGlobalTestPartResultReporter(
        +    TestPartResultReporterInterface* reporter) {
        +  internal::MutexLock lock(&global_test_part_result_reporter_mutex_);
        +  global_test_part_result_repoter_ = reporter;
        +}
        +
        +// Returns the test part result reporter for the current thread.
        +TestPartResultReporterInterface*
        +UnitTestImpl::GetTestPartResultReporterForCurrentThread() {
        +  return per_thread_test_part_result_reporter_.get();
        +}
        +
        +// Sets the test part result reporter for the current thread.
        +void UnitTestImpl::SetTestPartResultReporterForCurrentThread(
        +    TestPartResultReporterInterface* reporter) {
        +  per_thread_test_part_result_reporter_.set(reporter);
        +}
        +
        +// Gets the number of successful test cases.
        +int UnitTestImpl::successful_test_case_count() const {
        +  return CountIf(test_cases_, TestCasePassed);
        +}
        +
        +// Gets the number of failed test cases.
        +int UnitTestImpl::failed_test_case_count() const {
        +  return CountIf(test_cases_, TestCaseFailed);
        +}
        +
        +// Gets the number of all test cases.
        +int UnitTestImpl::total_test_case_count() const {
        +  return static_cast<int>(test_cases_.size());
        +}
        +
        +// Gets the number of all test cases that contain at least one test
        +// that should run.
        +int UnitTestImpl::test_case_to_run_count() const {
        +  return CountIf(test_cases_, ShouldRunTestCase);
        +}
        +
        +// Gets the number of successful tests.
        +int UnitTestImpl::successful_test_count() const {
        +  return SumOverTestCaseList(test_cases_, &TestCase::successful_test_count);
        +}
        +
        +// Gets the number of failed tests.
        +int UnitTestImpl::failed_test_count() const {
        +  return SumOverTestCaseList(test_cases_, &TestCase::failed_test_count);
        +}
        +
        +// Gets the number of disabled tests that will be reported in the XML report.
        +int UnitTestImpl::reportable_disabled_test_count() const {
        +  return SumOverTestCaseList(test_cases_,
        +                             &TestCase::reportable_disabled_test_count);
        +}
        +
        +// Gets the number of disabled tests.
        +int UnitTestImpl::disabled_test_count() const {
        +  return SumOverTestCaseList(test_cases_, &TestCase::disabled_test_count);
        +}
        +
        +// Gets the number of tests to be printed in the XML report.
        +int UnitTestImpl::reportable_test_count() const {
        +  return SumOverTestCaseList(test_cases_, &TestCase::reportable_test_count);
        +}
        +
        +// Gets the number of all tests.
        +int UnitTestImpl::total_test_count() const {
        +  return SumOverTestCaseList(test_cases_, &TestCase::total_test_count);
        +}
        +
        +// Gets the number of tests that should run.
        +int UnitTestImpl::test_to_run_count() const {
        +  return SumOverTestCaseList(test_cases_, &TestCase::test_to_run_count);
        +}
        +
        +// Returns the current OS stack trace as an std::string.
        +//
        +// The maximum number of stack frames to be included is specified by
        +// the gtest_stack_trace_depth flag.  The skip_count parameter
        +// specifies the number of top frames to be skipped, which doesn't
        +// count against the number of frames to be included.
        +//
        +// For example, if Foo() calls Bar(), which in turn calls
        +// CurrentOsStackTraceExceptTop(1), Foo() will be included in the
        +// trace but Bar() and CurrentOsStackTraceExceptTop() won't.
        +std::string UnitTestImpl::CurrentOsStackTraceExceptTop(int skip_count) {
        +  return os_stack_trace_getter()->CurrentStackTrace(
        +      static_cast<int>(GTEST_FLAG(stack_trace_depth)),
        +      skip_count + 1
        +      // Skips the user-specified number of frames plus this function
        +      // itself.
        +      );  // NOLINT
        +}
        +
        +// Returns the current time in milliseconds.
        +TimeInMillis GetTimeInMillis() {
        +#if GTEST_OS_WINDOWS_MOBILE || defined(__BORLANDC__)
        +  // Difference between 1970-01-01 and 1601-01-01 in milliseconds.
        +  // http://analogous.blogspot.com/2005/04/epoch.html
        +  const TimeInMillis kJavaEpochToWinFileTimeDelta =
        +    static_cast<TimeInMillis>(116444736UL) * 100000UL;
        +  const DWORD kTenthMicrosInMilliSecond = 10000;
        +
        +  SYSTEMTIME now_systime;
        +  FILETIME now_filetime;
        +  ULARGE_INTEGER now_int64;
        +  // TODO(kenton@google.com): Shouldn't this just use
        +  //   GetSystemTimeAsFileTime()?
        +  GetSystemTime(&now_systime);
        +  if (SystemTimeToFileTime(&now_systime, &now_filetime)) {
        +    now_int64.LowPart = now_filetime.dwLowDateTime;
        +    now_int64.HighPart = now_filetime.dwHighDateTime;
        +    now_int64.QuadPart = (now_int64.QuadPart / kTenthMicrosInMilliSecond) -
        +      kJavaEpochToWinFileTimeDelta;
        +    return now_int64.QuadPart;
        +  }
        +  return 0;
        +#elif GTEST_OS_WINDOWS && !GTEST_HAS_GETTIMEOFDAY_
        +  __timeb64 now;
        +
        +  // MSVC 8 deprecates _ftime64(), so we want to suppress warning 4996
        +  // (deprecated function) there.
        +  // TODO(kenton@google.com): Use GetTickCount()?  Or use
        +  //   SystemTimeToFileTime()
        +  GTEST_DISABLE_MSC_WARNINGS_PUSH_(4996)
        +  _ftime64(&now);
        +  GTEST_DISABLE_MSC_WARNINGS_POP_()
        +
        +  return static_cast<TimeInMillis>(now.time) * 1000 + now.millitm;
        +#elif GTEST_HAS_GETTIMEOFDAY_
        +  struct timeval now;
        +  gettimeofday(&now, NULL);
        +  return static_cast<TimeInMillis>(now.tv_sec) * 1000 + now.tv_usec / 1000;
        +#else
        +# error "Don't know how to get the current time on your system."
        +#endif
        +}
        +
        +// Utilities
        +
        +// class String.
        +
        +#if GTEST_OS_WINDOWS_MOBILE
        +// Creates a UTF-16 wide string from the given ANSI string, allocating
        +// memory using new. The caller is responsible for deleting the return
        +// value using delete[]. Returns the wide string, or NULL if the
        +// input is NULL.
        +LPCWSTR String::AnsiToUtf16(const char* ansi) {
        +  if (!ansi) return NULL;
        +  const int length = strlen(ansi);
        +  const int unicode_length =
        +      MultiByteToWideChar(CP_ACP, 0, ansi, length,
        +                          NULL, 0);
        +  WCHAR* unicode = new WCHAR[unicode_length + 1];
        +  MultiByteToWideChar(CP_ACP, 0, ansi, length,
        +                      unicode, unicode_length);
        +  unicode[unicode_length] = 0;
        +  return unicode;
        +}
        +
        +// Creates an ANSI string from the given wide string, allocating
        +// memory using new. The caller is responsible for deleting the return
        +// value using delete[]. Returns the ANSI string, or NULL if the
        +// input is NULL.
        +const char* String::Utf16ToAnsi(LPCWSTR utf16_str)  {
        +  if (!utf16_str) return NULL;
        +  const int ansi_length =
        +      WideCharToMultiByte(CP_ACP, 0, utf16_str, -1,
        +                          NULL, 0, NULL, NULL);
        +  char* ansi = new char[ansi_length + 1];
        +  WideCharToMultiByte(CP_ACP, 0, utf16_str, -1,
        +                      ansi, ansi_length, NULL, NULL);
        +  ansi[ansi_length] = 0;
        +  return ansi;
        +}
        +
        +#endif  // GTEST_OS_WINDOWS_MOBILE
        +
        +// Compares two C strings.  Returns true iff they have the same content.
        +//
        +// Unlike strcmp(), this function can handle NULL argument(s).  A NULL
        +// C string is considered different to any non-NULL C string,
        +// including the empty string.
        +bool String::CStringEquals(const char * lhs, const char * rhs) {
        +  if ( lhs == NULL ) return rhs == NULL;
        +
        +  if ( rhs == NULL ) return false;
        +
        +  return strcmp(lhs, rhs) == 0;
        +}
        +
        +#if GTEST_HAS_STD_WSTRING || GTEST_HAS_GLOBAL_WSTRING
        +
        +// Converts an array of wide chars to a narrow string using the UTF-8
        +// encoding, and streams the result to the given Message object.
        +static void StreamWideCharsToMessage(const wchar_t* wstr, size_t length,
        +                                     Message* msg) {
        +  for (size_t i = 0; i != length; ) {  // NOLINT
        +    if (wstr[i] != L'\0') {
        +      *msg << WideStringToUtf8(wstr + i, static_cast<int>(length - i));
        +      while (i != length && wstr[i] != L'\0')
        +        i++;
        +    } else {
        +      *msg << '\0';
        +      i++;
        +    }
        +  }
        +}
        +
        +#endif  // GTEST_HAS_STD_WSTRING || GTEST_HAS_GLOBAL_WSTRING
        +
        +void SplitString(const ::std::string& str, char delimiter,
        +                 ::std::vector< ::std::string>* dest) {
        +  ::std::vector< ::std::string> parsed;
        +  ::std::string::size_type pos = 0;
        +  while (::testing::internal::AlwaysTrue()) {
        +    const ::std::string::size_type colon = str.find(delimiter, pos);
        +    if (colon == ::std::string::npos) {
        +      parsed.push_back(str.substr(pos));
        +      break;
        +    } else {
        +      parsed.push_back(str.substr(pos, colon - pos));
        +      pos = colon + 1;
        +    }
        +  }
        +  dest->swap(parsed);
        +}
        +
        +}  // namespace internal
        +
        +// Constructs an empty Message.
        +// We allocate the stringstream separately because otherwise each use of
        +// ASSERT/EXPECT in a procedure adds over 200 bytes to the procedure's
        +// stack frame leading to huge stack frames in some cases; gcc does not reuse
        +// the stack space.
        +Message::Message() : ss_(new ::std::stringstream) {
        +  // By default, we want there to be enough precision when printing
        +  // a double to a Message.
        +  *ss_ << std::setprecision(std::numeric_limits<double>::digits10 + 2);
        +}
        +
        +// These two overloads allow streaming a wide C string to a Message
        +// using the UTF-8 encoding.
        +Message& Message::operator <<(const wchar_t* wide_c_str) {
        +  return *this << internal::String::ShowWideCString(wide_c_str);
        +}
        +Message& Message::operator <<(wchar_t* wide_c_str) {
        +  return *this << internal::String::ShowWideCString(wide_c_str);
        +}
        +
        +#if GTEST_HAS_STD_WSTRING
        +// Converts the given wide string to a narrow string using the UTF-8
        +// encoding, and streams the result to this Message object.
        +Message& Message::operator <<(const ::std::wstring& wstr) {
        +  internal::StreamWideCharsToMessage(wstr.c_str(), wstr.length(), this);
        +  return *this;
        +}
        +#endif  // GTEST_HAS_STD_WSTRING
        +
        +#if GTEST_HAS_GLOBAL_WSTRING
        +// Converts the given wide string to a narrow string using the UTF-8
        +// encoding, and streams the result to this Message object.
        +Message& Message::operator <<(const ::wstring& wstr) {
        +  internal::StreamWideCharsToMessage(wstr.c_str(), wstr.length(), this);
        +  return *this;
        +}
        +#endif  // GTEST_HAS_GLOBAL_WSTRING
        +
        +// Gets the text streamed to this object so far as an std::string.
        +// Each '\0' character in the buffer is replaced with "\\0".
        +std::string Message::GetString() const {
        +  return internal::StringStreamToString(ss_.get());
        +}
        +
        +// AssertionResult constructors.
        +// Used in EXPECT_TRUE/FALSE(assertion_result).
        +AssertionResult::AssertionResult(const AssertionResult& other)
        +    : success_(other.success_),
        +      message_(other.message_.get() != NULL ?
        +               new ::std::string(*other.message_) :
        +               static_cast< ::std::string*>(NULL)) {
        +}
        +
        +// Swaps two AssertionResults.
        +void AssertionResult::swap(AssertionResult& other) {
        +  using std::swap;
        +  swap(success_, other.success_);
        +  swap(message_, other.message_);
        +}
        +
        +// Returns the assertion's negation. Used with EXPECT/ASSERT_FALSE.
        +AssertionResult AssertionResult::operator!() const {
        +  AssertionResult negation(!success_);
        +  if (message_.get() != NULL)
        +    negation << *message_;
        +  return negation;
        +}
        +
        +// Makes a successful assertion result.
        +AssertionResult AssertionSuccess() {
        +  return AssertionResult(true);
        +}
        +
        +// Makes a failed assertion result.
        +AssertionResult AssertionFailure() {
        +  return AssertionResult(false);
        +}
        +
        +// Makes a failed assertion result with the given failure message.
        +// Deprecated; use AssertionFailure() << message.
        +AssertionResult AssertionFailure(const Message& message) {
        +  return AssertionFailure() << message;
        +}
        +
        +namespace internal {
        +
        +namespace edit_distance {
        +std::vector<EditType> CalculateOptimalEdits(const std::vector<size_t>& left,
        +                                            const std::vector<size_t>& right) {
        +  std::vector<std::vector<double> > costs(
        +      left.size() + 1, std::vector<double>(right.size() + 1));
        +  std::vector<std::vector<EditType> > best_move(
        +      left.size() + 1, std::vector<EditType>(right.size() + 1));
        +
        +  // Populate for empty right.
        +  for (size_t l_i = 0; l_i < costs.size(); ++l_i) {
        +    costs[l_i][0] = static_cast<double>(l_i);
        +    best_move[l_i][0] = kRemove;
        +  }
        +  // Populate for empty left.
        +  for (size_t r_i = 1; r_i < costs[0].size(); ++r_i) {
        +    costs[0][r_i] = static_cast<double>(r_i);
        +    best_move[0][r_i] = kAdd;
        +  }
        +
        +  for (size_t l_i = 0; l_i < left.size(); ++l_i) {
        +    for (size_t r_i = 0; r_i < right.size(); ++r_i) {
        +      if (left[l_i] == right[r_i]) {
        +        // Found a match. Consume it.
        +        costs[l_i + 1][r_i + 1] = costs[l_i][r_i];
        +        best_move[l_i + 1][r_i + 1] = kMatch;
        +        continue;
        +      }
        +
        +      const double add = costs[l_i + 1][r_i];
        +      const double remove = costs[l_i][r_i + 1];
        +      const double replace = costs[l_i][r_i];
        +      if (add < remove && add < replace) {
        +        costs[l_i + 1][r_i + 1] = add + 1;
        +        best_move[l_i + 1][r_i + 1] = kAdd;
        +      } else if (remove < add && remove < replace) {
        +        costs[l_i + 1][r_i + 1] = remove + 1;
        +        best_move[l_i + 1][r_i + 1] = kRemove;
        +      } else {
        +        // We make replace a little more expensive than add/remove to lower
        +        // their priority.
        +        costs[l_i + 1][r_i + 1] = replace + 1.00001;
        +        best_move[l_i + 1][r_i + 1] = kReplace;
        +      }
        +    }
        +  }
        +
        +  // Reconstruct the best path. We do it in reverse order.
        +  std::vector<EditType> best_path;
        +  for (size_t l_i = left.size(), r_i = right.size(); l_i > 0 || r_i > 0;) {
        +    EditType move = best_move[l_i][r_i];
        +    best_path.push_back(move);
        +    l_i -= move != kAdd;
        +    r_i -= move != kRemove;
        +  }
        +  std::reverse(best_path.begin(), best_path.end());
        +  return best_path;
        +}
        +
        +namespace {
        +
        +// Helper class to convert string into ids with deduplication.
        +class InternalStrings {
        + public:
        +  size_t GetId(const std::string& str) {
        +    IdMap::iterator it = ids_.find(str);
        +    if (it != ids_.end()) return it->second;
        +    size_t id = ids_.size();
        +    return ids_[str] = id;
        +  }
        +
        + private:
        +  typedef std::map<std::string, size_t> IdMap;
        +  IdMap ids_;
        +};
        +
        +}  // namespace
        +
        +std::vector<EditType> CalculateOptimalEdits(
        +    const std::vector<std::string>& left,
        +    const std::vector<std::string>& right) {
        +  std::vector<size_t> left_ids, right_ids;
        +  {
        +    InternalStrings intern_table;
        +    for (size_t i = 0; i < left.size(); ++i) {
        +      left_ids.push_back(intern_table.GetId(left[i]));
        +    }
        +    for (size_t i = 0; i < right.size(); ++i) {
        +      right_ids.push_back(intern_table.GetId(right[i]));
        +    }
        +  }
        +  return CalculateOptimalEdits(left_ids, right_ids);
        +}
        +
        +namespace {
        +
        +// Helper class that holds the state for one hunk and prints it out to the
        +// stream.
        +// It reorders adds/removes when possible to group all removes before all
        +// adds. It also adds the hunk header before printint into the stream.
        +class Hunk {
        + public:
        +  Hunk(size_t left_start, size_t right_start)
        +      : left_start_(left_start),
        +        right_start_(right_start),
        +        adds_(),
        +        removes_(),
        +        common_() {}
        +
        +  void PushLine(char edit, const char* line) {
        +    switch (edit) {
        +      case ' ':
        +        ++common_;
        +        FlushEdits();
        +        hunk_.push_back(std::make_pair(' ', line));
        +        break;
        +      case '-':
        +        ++removes_;
        +        hunk_removes_.push_back(std::make_pair('-', line));
        +        break;
        +      case '+':
        +        ++adds_;
        +        hunk_adds_.push_back(std::make_pair('+', line));
        +        break;
        +    }
        +  }
        +
        +  void PrintTo(std::ostream* os) {
        +    PrintHeader(os);
        +    FlushEdits();
        +    for (std::list<std::pair<char, const char*> >::const_iterator it =
        +             hunk_.begin();
        +         it != hunk_.end(); ++it) {
        +      *os << it->first << it->second << "\n";
        +    }
        +  }
        +
        +  bool has_edits() const { return adds_ || removes_; }
        +
        + private:
        +  void FlushEdits() {
        +    hunk_.splice(hunk_.end(), hunk_removes_);
        +    hunk_.splice(hunk_.end(), hunk_adds_);
        +  }
        +
        +  // Print a unified diff header for one hunk.
        +  // The format is
        +  //   "@@ -<left_start>,<left_length> +<right_start>,<right_length> @@"
        +  // where the left/right parts are ommitted if unnecessary.
        +  void PrintHeader(std::ostream* ss) const {
        +    *ss << "@@ ";
        +    if (removes_) {
        +      *ss << "-" << left_start_ << "," << (removes_ + common_);
        +    }
        +    if (removes_ && adds_) {
        +      *ss << " ";
        +    }
        +    if (adds_) {
        +      *ss << "+" << right_start_ << "," << (adds_ + common_);
        +    }
        +    *ss << " @@\n";
        +  }
        +
        +  size_t left_start_, right_start_;
        +  size_t adds_, removes_, common_;
        +  std::list<std::pair<char, const char*> > hunk_, hunk_adds_, hunk_removes_;
        +};
        +
        +}  // namespace
        +
        +// Create a list of diff hunks in Unified diff format.
        +// Each hunk has a header generated by PrintHeader above plus a body with
        +// lines prefixed with ' ' for no change, '-' for deletion and '+' for
        +// addition.
        +// 'context' represents the desired unchanged prefix/suffix around the diff.
        +// If two hunks are close enough that their contexts overlap, then they are
        +// joined into one hunk.
        +std::string CreateUnifiedDiff(const std::vector<std::string>& left,
        +                              const std::vector<std::string>& right,
        +                              size_t context) {
        +  const std::vector<EditType> edits = CalculateOptimalEdits(left, right);
        +
        +  size_t l_i = 0, r_i = 0, edit_i = 0;
        +  std::stringstream ss;
        +  while (edit_i < edits.size()) {
        +    // Find first edit.
        +    while (edit_i < edits.size() && edits[edit_i] == kMatch) {
        +      ++l_i;
        +      ++r_i;
        +      ++edit_i;
        +    }
        +
        +    // Find the first line to include in the hunk.
        +    const size_t prefix_context = std::min(l_i, context);
        +    Hunk hunk(l_i - prefix_context + 1, r_i - prefix_context + 1);
        +    for (size_t i = prefix_context; i > 0; --i) {
        +      hunk.PushLine(' ', left[l_i - i].c_str());
        +    }
        +
        +    // Iterate the edits until we found enough suffix for the hunk or the input
        +    // is over.
        +    size_t n_suffix = 0;
        +    for (; edit_i < edits.size(); ++edit_i) {
        +      if (n_suffix >= context) {
        +        // Continue only if the next hunk is very close.
        +        std::vector<EditType>::const_iterator it = edits.begin() + edit_i;
        +        while (it != edits.end() && *it == kMatch) ++it;
        +        if (it == edits.end() || (it - edits.begin()) - edit_i >= context) {
        +          // There is no next edit or it is too far away.
        +          break;
        +        }
        +      }
        +
        +      EditType edit = edits[edit_i];
        +      // Reset count when a non match is found.
        +      n_suffix = edit == kMatch ? n_suffix + 1 : 0;
        +
        +      if (edit == kMatch || edit == kRemove || edit == kReplace) {
        +        hunk.PushLine(edit == kMatch ? ' ' : '-', left[l_i].c_str());
        +      }
        +      if (edit == kAdd || edit == kReplace) {
        +        hunk.PushLine('+', right[r_i].c_str());
        +      }
        +
        +      // Advance indices, depending on edit type.
        +      l_i += edit != kAdd;
        +      r_i += edit != kRemove;
        +    }
        +
        +    if (!hunk.has_edits()) {
        +      // We are done. We don't want this hunk.
        +      break;
        +    }
        +
        +    hunk.PrintTo(&ss);
        +  }
        +  return ss.str();
        +}
        +
        +}  // namespace edit_distance
        +
        +namespace {
        +
        +// The string representation of the values received in EqFailure() are already
        +// escaped. Split them on escaped '\n' boundaries. Leave all other escaped
        +// characters the same.
        +std::vector<std::string> SplitEscapedString(const std::string& str) {
        +  std::vector<std::string> lines;
        +  size_t start = 0, end = str.size();
        +  if (end > 2 && str[0] == '"' && str[end - 1] == '"') {
        +    ++start;
        +    --end;
        +  }
        +  bool escaped = false;
        +  for (size_t i = start; i + 1 < end; ++i) {
        +    if (escaped) {
        +      escaped = false;
        +      if (str[i] == 'n') {
        +        lines.push_back(str.substr(start, i - start - 1));
        +        start = i + 1;
        +      }
        +    } else {
        +      escaped = str[i] == '\\';
        +    }
        +  }
        +  lines.push_back(str.substr(start, end - start));
        +  return lines;
        +}
        +
        +}  // namespace
        +
        +// Constructs and returns the message for an equality assertion
        +// (e.g. ASSERT_EQ, EXPECT_STREQ, etc) failure.
        +//
        +// The first four parameters are the expressions used in the assertion
        +// and their values, as strings.  For example, for ASSERT_EQ(foo, bar)
        +// where foo is 5 and bar is 6, we have:
        +//
        +//   expected_expression: "foo"
        +//   actual_expression:   "bar"
        +//   expected_value:      "5"
        +//   actual_value:        "6"
        +//
        +// The ignoring_case parameter is true iff the assertion is a
        +// *_STRCASEEQ*.  When it's true, the string " (ignoring case)" will
        +// be inserted into the message.
        +AssertionResult EqFailure(const char* expected_expression,
        +                          const char* actual_expression,
        +                          const std::string& expected_value,
        +                          const std::string& actual_value,
        +                          bool ignoring_case) {
        +  Message msg;
        +  msg << "Value of: " << actual_expression;
        +  if (actual_value != actual_expression) {
        +    msg << "\n  Actual: " << actual_value;
        +  }
        +
        +  msg << "\nExpected: " << expected_expression;
        +  if (ignoring_case) {
        +    msg << " (ignoring case)";
        +  }
        +  if (expected_value != expected_expression) {
        +    msg << "\nWhich is: " << expected_value;
        +  }
        +
        +  if (!expected_value.empty() && !actual_value.empty()) {
        +    const std::vector<std::string> expected_lines =
        +        SplitEscapedString(expected_value);
        +    const std::vector<std::string> actual_lines =
        +        SplitEscapedString(actual_value);
        +    if (expected_lines.size() > 1 || actual_lines.size() > 1) {
        +      msg << "\nWith diff:\n"
        +          << edit_distance::CreateUnifiedDiff(expected_lines, actual_lines);
        +    }
        +  }
        +
        +  return AssertionFailure() << msg;
        +}
        +
        +// Constructs a failure message for Boolean assertions such as EXPECT_TRUE.
        +std::string GetBoolAssertionFailureMessage(
        +    const AssertionResult& assertion_result,
        +    const char* expression_text,
        +    const char* actual_predicate_value,
        +    const char* expected_predicate_value) {
        +  const char* actual_message = assertion_result.message();
        +  Message msg;
        +  msg << "Value of: " << expression_text
        +      << "\n  Actual: " << actual_predicate_value;
        +  if (actual_message[0] != '\0')
        +    msg << " (" << actual_message << ")";
        +  msg << "\nExpected: " << expected_predicate_value;
        +  return msg.GetString();
        +}
        +
        +// Helper function for implementing ASSERT_NEAR.
        +AssertionResult DoubleNearPredFormat(const char* expr1,
        +                                     const char* expr2,
        +                                     const char* abs_error_expr,
        +                                     double val1,
        +                                     double val2,
        +                                     double abs_error) {
        +  const double diff = fabs(val1 - val2);
        +  if (diff <= abs_error) return AssertionSuccess();
        +
        +  // TODO(wan): do not print the value of an expression if it's
        +  // already a literal.
        +  return AssertionFailure()
        +      << "The difference between " << expr1 << " and " << expr2
        +      << " is " << diff << ", which exceeds " << abs_error_expr << ", where\n"
        +      << expr1 << " evaluates to " << val1 << ",\n"
        +      << expr2 << " evaluates to " << val2 << ", and\n"
        +      << abs_error_expr << " evaluates to " << abs_error << ".";
        +}
        +
        +
        +// Helper template for implementing FloatLE() and DoubleLE().
        +template <typename RawType>
        +AssertionResult FloatingPointLE(const char* expr1,
        +                                const char* expr2,
        +                                RawType val1,
        +                                RawType val2) {
        +  // Returns success if val1 is less than val2,
        +  if (val1 < val2) {
        +    return AssertionSuccess();
        +  }
        +
        +  // or if val1 is almost equal to val2.
        +  const FloatingPoint<RawType> lhs(val1), rhs(val2);
        +  if (lhs.AlmostEquals(rhs)) {
        +    return AssertionSuccess();
        +  }
        +
        +  // Note that the above two checks will both fail if either val1 or
        +  // val2 is NaN, as the IEEE floating-point standard requires that
        +  // any predicate involving a NaN must return false.
        +
        +  ::std::stringstream val1_ss;
        +  val1_ss << std::setprecision(std::numeric_limits<RawType>::digits10 + 2)
        +          << val1;
        +
        +  ::std::stringstream val2_ss;
        +  val2_ss << std::setprecision(std::numeric_limits<RawType>::digits10 + 2)
        +          << val2;
        +
        +  return AssertionFailure()
        +      << "Expected: (" << expr1 << ") <= (" << expr2 << ")\n"
        +      << "  Actual: " << StringStreamToString(&val1_ss) << " vs "
        +      << StringStreamToString(&val2_ss);
        +}
        +
        +}  // namespace internal
        +
        +// Asserts that val1 is less than, or almost equal to, val2.  Fails
        +// otherwise.  In particular, it fails if either val1 or val2 is NaN.
        +AssertionResult FloatLE(const char* expr1, const char* expr2,
        +                        float val1, float val2) {
        +  return internal::FloatingPointLE<float>(expr1, expr2, val1, val2);
        +}
        +
        +// Asserts that val1 is less than, or almost equal to, val2.  Fails
        +// otherwise.  In particular, it fails if either val1 or val2 is NaN.
        +AssertionResult DoubleLE(const char* expr1, const char* expr2,
        +                         double val1, double val2) {
        +  return internal::FloatingPointLE<double>(expr1, expr2, val1, val2);
        +}
        +
        +namespace internal {
        +
        +// The helper function for {ASSERT|EXPECT}_EQ with int or enum
        +// arguments.
        +AssertionResult CmpHelperEQ(const char* expected_expression,
        +                            const char* actual_expression,
        +                            BiggestInt expected,
        +                            BiggestInt actual) {
        +  if (expected == actual) {
        +    return AssertionSuccess();
        +  }
        +
        +  return EqFailure(expected_expression,
        +                   actual_expression,
        +                   FormatForComparisonFailureMessage(expected, actual),
        +                   FormatForComparisonFailureMessage(actual, expected),
        +                   false);
        +}
        +
        +// A macro for implementing the helper functions needed to implement
        +// ASSERT_?? and EXPECT_?? with integer or enum arguments.  It is here
        +// just to avoid copy-and-paste of similar code.
        +#define GTEST_IMPL_CMP_HELPER_(op_name, op)\
        +AssertionResult CmpHelper##op_name(const char* expr1, const char* expr2, \
        +                                   BiggestInt val1, BiggestInt val2) {\
        +  if (val1 op val2) {\
        +    return AssertionSuccess();\
        +  } else {\
        +    return AssertionFailure() \
        +        << "Expected: (" << expr1 << ") " #op " (" << expr2\
        +        << "), actual: " << FormatForComparisonFailureMessage(val1, val2)\
        +        << " vs " << FormatForComparisonFailureMessage(val2, val1);\
        +  }\
        +}
        +
        +// Implements the helper function for {ASSERT|EXPECT}_NE with int or
        +// enum arguments.
        +GTEST_IMPL_CMP_HELPER_(NE, !=)
        +// Implements the helper function for {ASSERT|EXPECT}_LE with int or
        +// enum arguments.
        +GTEST_IMPL_CMP_HELPER_(LE, <=)
        +// Implements the helper function for {ASSERT|EXPECT}_LT with int or
        +// enum arguments.
        +GTEST_IMPL_CMP_HELPER_(LT, < )
        +// Implements the helper function for {ASSERT|EXPECT}_GE with int or
        +// enum arguments.
        +GTEST_IMPL_CMP_HELPER_(GE, >=)
        +// Implements the helper function for {ASSERT|EXPECT}_GT with int or
        +// enum arguments.
        +GTEST_IMPL_CMP_HELPER_(GT, > )
        +
        +#undef GTEST_IMPL_CMP_HELPER_
        +
        +// The helper function for {ASSERT|EXPECT}_STREQ.
        +AssertionResult CmpHelperSTREQ(const char* expected_expression,
        +                               const char* actual_expression,
        +                               const char* expected,
        +                               const char* actual) {
        +  if (String::CStringEquals(expected, actual)) {
        +    return AssertionSuccess();
        +  }
        +
        +  return EqFailure(expected_expression,
        +                   actual_expression,
        +                   PrintToString(expected),
        +                   PrintToString(actual),
        +                   false);
        +}
        +
        +// The helper function for {ASSERT|EXPECT}_STRCASEEQ.
        +AssertionResult CmpHelperSTRCASEEQ(const char* expected_expression,
        +                                   const char* actual_expression,
        +                                   const char* expected,
        +                                   const char* actual) {
        +  if (String::CaseInsensitiveCStringEquals(expected, actual)) {
        +    return AssertionSuccess();
        +  }
        +
        +  return EqFailure(expected_expression,
        +                   actual_expression,
        +                   PrintToString(expected),
        +                   PrintToString(actual),
        +                   true);
        +}
        +
        +// The helper function for {ASSERT|EXPECT}_STRNE.
        +AssertionResult CmpHelperSTRNE(const char* s1_expression,
        +                               const char* s2_expression,
        +                               const char* s1,
        +                               const char* s2) {
        +  if (!String::CStringEquals(s1, s2)) {
        +    return AssertionSuccess();
        +  } else {
        +    return AssertionFailure() << "Expected: (" << s1_expression << ") != ("
        +                              << s2_expression << "), actual: \""
        +                              << s1 << "\" vs \"" << s2 << "\"";
        +  }
        +}
        +
        +// The helper function for {ASSERT|EXPECT}_STRCASENE.
        +AssertionResult CmpHelperSTRCASENE(const char* s1_expression,
        +                                   const char* s2_expression,
        +                                   const char* s1,
        +                                   const char* s2) {
        +  if (!String::CaseInsensitiveCStringEquals(s1, s2)) {
        +    return AssertionSuccess();
        +  } else {
        +    return AssertionFailure()
        +        << "Expected: (" << s1_expression << ") != ("
        +        << s2_expression << ") (ignoring case), actual: \""
        +        << s1 << "\" vs \"" << s2 << "\"";
        +  }
        +}
        +
        +}  // namespace internal
        +
        +namespace {
        +
        +// Helper functions for implementing IsSubString() and IsNotSubstring().
        +
        +// This group of overloaded functions return true iff needle is a
        +// substring of haystack.  NULL is considered a substring of itself
        +// only.
        +
        +bool IsSubstringPred(const char* needle, const char* haystack) {
        +  if (needle == NULL || haystack == NULL)
        +    return needle == haystack;
        +
        +  return strstr(haystack, needle) != NULL;
        +}
        +
        +bool IsSubstringPred(const wchar_t* needle, const wchar_t* haystack) {
        +  if (needle == NULL || haystack == NULL)
        +    return needle == haystack;
        +
        +  return wcsstr(haystack, needle) != NULL;
        +}
        +
        +// StringType here can be either ::std::string or ::std::wstring.
        +template <typename StringType>
        +bool IsSubstringPred(const StringType& needle,
        +                     const StringType& haystack) {
        +  return haystack.find(needle) != StringType::npos;
        +}
        +
        +// This function implements either IsSubstring() or IsNotSubstring(),
        +// depending on the value of the expected_to_be_substring parameter.
        +// StringType here can be const char*, const wchar_t*, ::std::string,
        +// or ::std::wstring.
        +template <typename StringType>
        +AssertionResult IsSubstringImpl(
        +    bool expected_to_be_substring,
        +    const char* needle_expr, const char* haystack_expr,
        +    const StringType& needle, const StringType& haystack) {
        +  if (IsSubstringPred(needle, haystack) == expected_to_be_substring)
        +    return AssertionSuccess();
        +
        +  const bool is_wide_string = sizeof(needle[0]) > 1;
        +  const char* const begin_string_quote = is_wide_string ? "L\"" : "\"";
        +  return AssertionFailure()
        +      << "Value of: " << needle_expr << "\n"
        +      << "  Actual: " << begin_string_quote << needle << "\"\n"
        +      << "Expected: " << (expected_to_be_substring ? "" : "not ")
        +      << "a substring of " << haystack_expr << "\n"
        +      << "Which is: " << begin_string_quote << haystack << "\"";
        +}
        +
        +}  // namespace
        +
        +// IsSubstring() and IsNotSubstring() check whether needle is a
        +// substring of haystack (NULL is considered a substring of itself
        +// only), and return an appropriate error message when they fail.
        +
        +AssertionResult IsSubstring(
        +    const char* needle_expr, const char* haystack_expr,
        +    const char* needle, const char* haystack) {
        +  return IsSubstringImpl(true, needle_expr, haystack_expr, needle, haystack);
        +}
        +
        +AssertionResult IsSubstring(
        +    const char* needle_expr, const char* haystack_expr,
        +    const wchar_t* needle, const wchar_t* haystack) {
        +  return IsSubstringImpl(true, needle_expr, haystack_expr, needle, haystack);
        +}
        +
        +AssertionResult IsNotSubstring(
        +    const char* needle_expr, const char* haystack_expr,
        +    const char* needle, const char* haystack) {
        +  return IsSubstringImpl(false, needle_expr, haystack_expr, needle, haystack);
        +}
        +
        +AssertionResult IsNotSubstring(
        +    const char* needle_expr, const char* haystack_expr,
        +    const wchar_t* needle, const wchar_t* haystack) {
        +  return IsSubstringImpl(false, needle_expr, haystack_expr, needle, haystack);
        +}
        +
        +AssertionResult IsSubstring(
        +    const char* needle_expr, const char* haystack_expr,
        +    const ::std::string& needle, const ::std::string& haystack) {
        +  return IsSubstringImpl(true, needle_expr, haystack_expr, needle, haystack);
        +}
        +
        +AssertionResult IsNotSubstring(
        +    const char* needle_expr, const char* haystack_expr,
        +    const ::std::string& needle, const ::std::string& haystack) {
        +  return IsSubstringImpl(false, needle_expr, haystack_expr, needle, haystack);
        +}
        +
        +#if GTEST_HAS_STD_WSTRING
        +AssertionResult IsSubstring(
        +    const char* needle_expr, const char* haystack_expr,
        +    const ::std::wstring& needle, const ::std::wstring& haystack) {
        +  return IsSubstringImpl(true, needle_expr, haystack_expr, needle, haystack);
        +}
        +
        +AssertionResult IsNotSubstring(
        +    const char* needle_expr, const char* haystack_expr,
        +    const ::std::wstring& needle, const ::std::wstring& haystack) {
        +  return IsSubstringImpl(false, needle_expr, haystack_expr, needle, haystack);
        +}
        +#endif  // GTEST_HAS_STD_WSTRING
        +
        +namespace internal {
        +
        +#if GTEST_OS_WINDOWS
        +
        +namespace {
        +
        +// Helper function for IsHRESULT{SuccessFailure} predicates
        +AssertionResult HRESULTFailureHelper(const char* expr,
        +                                     const char* expected,
        +                                     long hr) {  // NOLINT
        +# if GTEST_OS_WINDOWS_MOBILE
        +
        +  // Windows CE doesn't support FormatMessage.
        +  const char error_text[] = "";
        +
        +# else
        +
        +  // Looks up the human-readable system message for the HRESULT code
        +  // and since we're not passing any params to FormatMessage, we don't
        +  // want inserts expanded.
        +  const DWORD kFlags = FORMAT_MESSAGE_FROM_SYSTEM |
        +                       FORMAT_MESSAGE_IGNORE_INSERTS;
        +  const DWORD kBufSize = 4096;
        +  // Gets the system's human readable message string for this HRESULT.
        +  char error_text[kBufSize] = { '\0' };
        +  DWORD message_length = ::FormatMessageA(kFlags,
        +                                          0,  // no source, we're asking system
        +                                          hr,  // the error
        +                                          0,  // no line width restrictions
        +                                          error_text,  // output buffer
        +                                          kBufSize,  // buf size
        +                                          NULL);  // no arguments for inserts
        +  // Trims tailing white space (FormatMessage leaves a trailing CR-LF)
        +  for (; message_length && IsSpace(error_text[message_length - 1]);
        +          --message_length) {
        +    error_text[message_length - 1] = '\0';
        +  }
        +
        +# endif  // GTEST_OS_WINDOWS_MOBILE
        +
        +  const std::string error_hex("0x" + String::FormatHexInt(hr));
        +  return ::testing::AssertionFailure()
        +      << "Expected: " << expr << " " << expected << ".\n"
        +      << "  Actual: " << error_hex << " " << error_text << "\n";
        +}
        +
        +}  // namespace
        +
        +AssertionResult IsHRESULTSuccess(const char* expr, long hr) {  // NOLINT
        +  if (SUCCEEDED(hr)) {
        +    return AssertionSuccess();
        +  }
        +  return HRESULTFailureHelper(expr, "succeeds", hr);
        +}
        +
        +AssertionResult IsHRESULTFailure(const char* expr, long hr) {  // NOLINT
        +  if (FAILED(hr)) {
        +    return AssertionSuccess();
        +  }
        +  return HRESULTFailureHelper(expr, "fails", hr);
        +}
        +
        +#endif  // GTEST_OS_WINDOWS
        +
        +// Utility functions for encoding Unicode text (wide strings) in
        +// UTF-8.
        +
        +// A Unicode code-point can have upto 21 bits, and is encoded in UTF-8
        +// like this:
        +//
        +// Code-point length   Encoding
        +//   0 -  7 bits       0xxxxxxx
        +//   8 - 11 bits       110xxxxx 10xxxxxx
        +//  12 - 16 bits       1110xxxx 10xxxxxx 10xxxxxx
        +//  17 - 21 bits       11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
        +
        +// The maximum code-point a one-byte UTF-8 sequence can represent.
        +const UInt32 kMaxCodePoint1 = (static_cast<UInt32>(1) <<  7) - 1;
        +
        +// The maximum code-point a two-byte UTF-8 sequence can represent.
        +const UInt32 kMaxCodePoint2 = (static_cast<UInt32>(1) << (5 + 6)) - 1;
        +
        +// The maximum code-point a three-byte UTF-8 sequence can represent.
        +const UInt32 kMaxCodePoint3 = (static_cast<UInt32>(1) << (4 + 2*6)) - 1;
        +
        +// The maximum code-point a four-byte UTF-8 sequence can represent.
        +const UInt32 kMaxCodePoint4 = (static_cast<UInt32>(1) << (3 + 3*6)) - 1;
        +
        +// Chops off the n lowest bits from a bit pattern.  Returns the n
        +// lowest bits.  As a side effect, the original bit pattern will be
        +// shifted to the right by n bits.
        +inline UInt32 ChopLowBits(UInt32* bits, int n) {
        +  const UInt32 low_bits = *bits & ((static_cast<UInt32>(1) << n) - 1);
        +  *bits >>= n;
        +  return low_bits;
        +}
        +
        +// Converts a Unicode code point to a narrow string in UTF-8 encoding.
        +// code_point parameter is of type UInt32 because wchar_t may not be
        +// wide enough to contain a code point.
        +// If the code_point is not a valid Unicode code point
        +// (i.e. outside of Unicode range U+0 to U+10FFFF) it will be converted
        +// to "(Invalid Unicode 0xXXXXXXXX)".
        +std::string CodePointToUtf8(UInt32 code_point) {
        +  if (code_point > kMaxCodePoint4) {
        +    return "(Invalid Unicode 0x" + String::FormatHexInt(code_point) + ")";
        +  }
        +
        +  char str[5];  // Big enough for the largest valid code point.
        +  if (code_point <= kMaxCodePoint1) {
        +    str[1] = '\0';
        +    str[0] = static_cast<char>(code_point);                          // 0xxxxxxx
        +  } else if (code_point <= kMaxCodePoint2) {
        +    str[2] = '\0';
        +    str[1] = static_cast<char>(0x80 | ChopLowBits(&code_point, 6));  // 10xxxxxx
        +    str[0] = static_cast<char>(0xC0 | code_point);                   // 110xxxxx
        +  } else if (code_point <= kMaxCodePoint3) {
        +    str[3] = '\0';
        +    str[2] = static_cast<char>(0x80 | ChopLowBits(&code_point, 6));  // 10xxxxxx
        +    str[1] = static_cast<char>(0x80 | ChopLowBits(&code_point, 6));  // 10xxxxxx
        +    str[0] = static_cast<char>(0xE0 | code_point);                   // 1110xxxx
        +  } else {  // code_point <= kMaxCodePoint4
        +    str[4] = '\0';
        +    str[3] = static_cast<char>(0x80 | ChopLowBits(&code_point, 6));  // 10xxxxxx
        +    str[2] = static_cast<char>(0x80 | ChopLowBits(&code_point, 6));  // 10xxxxxx
        +    str[1] = static_cast<char>(0x80 | ChopLowBits(&code_point, 6));  // 10xxxxxx
        +    str[0] = static_cast<char>(0xF0 | code_point);                   // 11110xxx
        +  }
        +  return str;
        +}
        +
        +// The following two functions only make sense if the the system
        +// uses UTF-16 for wide string encoding. All supported systems
        +// with 16 bit wchar_t (Windows, Cygwin, Symbian OS) do use UTF-16.
        +
        +// Determines if the arguments constitute UTF-16 surrogate pair
        +// and thus should be combined into a single Unicode code point
        +// using CreateCodePointFromUtf16SurrogatePair.
        +inline bool IsUtf16SurrogatePair(wchar_t first, wchar_t second) {
        +  return sizeof(wchar_t) == 2 &&
        +      (first & 0xFC00) == 0xD800 && (second & 0xFC00) == 0xDC00;
        +}
        +
        +// Creates a Unicode code point from UTF16 surrogate pair.
        +inline UInt32 CreateCodePointFromUtf16SurrogatePair(wchar_t first,
        +                                                    wchar_t second) {
        +  const UInt32 mask = (1 << 10) - 1;
        +  return (sizeof(wchar_t) == 2) ?
        +      (((first & mask) << 10) | (second & mask)) + 0x10000 :
        +      // This function should not be called when the condition is
        +      // false, but we provide a sensible default in case it is.
        +      static_cast<UInt32>(first);
        +}
        +
        +// Converts a wide string to a narrow string in UTF-8 encoding.
        +// The wide string is assumed to have the following encoding:
        +//   UTF-16 if sizeof(wchar_t) == 2 (on Windows, Cygwin, Symbian OS)
        +//   UTF-32 if sizeof(wchar_t) == 4 (on Linux)
        +// Parameter str points to a null-terminated wide string.
        +// Parameter num_chars may additionally limit the number
        +// of wchar_t characters processed. -1 is used when the entire string
        +// should be processed.
        +// If the string contains code points that are not valid Unicode code points
        +// (i.e. outside of Unicode range U+0 to U+10FFFF) they will be output
        +// as '(Invalid Unicode 0xXXXXXXXX)'. If the string is in UTF16 encoding
        +// and contains invalid UTF-16 surrogate pairs, values in those pairs
        +// will be encoded as individual Unicode characters from Basic Normal Plane.
        +std::string WideStringToUtf8(const wchar_t* str, int num_chars) {
        +  if (num_chars == -1)
        +    num_chars = static_cast<int>(wcslen(str));
        +
        +  ::std::stringstream stream;
        +  for (int i = 0; i < num_chars; ++i) {
        +    UInt32 unicode_code_point;
        +
        +    if (str[i] == L'\0') {
        +      break;
        +    } else if (i + 1 < num_chars && IsUtf16SurrogatePair(str[i], str[i + 1])) {
        +      unicode_code_point = CreateCodePointFromUtf16SurrogatePair(str[i],
        +                                                                 str[i + 1]);
        +      i++;
        +    } else {
        +      unicode_code_point = static_cast<UInt32>(str[i]);
        +    }
        +
        +    stream << CodePointToUtf8(unicode_code_point);
        +  }
        +  return StringStreamToString(&stream);
        +}
        +
        +// Converts a wide C string to an std::string using the UTF-8 encoding.
        +// NULL will be converted to "(null)".
        +std::string String::ShowWideCString(const wchar_t * wide_c_str) {
        +  if (wide_c_str == NULL)  return "(null)";
        +
        +  return internal::WideStringToUtf8(wide_c_str, -1);
        +}
        +
        +// Compares two wide C strings.  Returns true iff they have the same
        +// content.
        +//
        +// Unlike wcscmp(), this function can handle NULL argument(s).  A NULL
        +// C string is considered different to any non-NULL C string,
        +// including the empty string.
        +bool String::WideCStringEquals(const wchar_t * lhs, const wchar_t * rhs) {
        +  if (lhs == NULL) return rhs == NULL;
        +
        +  if (rhs == NULL) return false;
        +
        +  return wcscmp(lhs, rhs) == 0;
        +}
        +
        +// Helper function for *_STREQ on wide strings.
        +AssertionResult CmpHelperSTREQ(const char* expected_expression,
        +                               const char* actual_expression,
        +                               const wchar_t* expected,
        +                               const wchar_t* actual) {
        +  if (String::WideCStringEquals(expected, actual)) {
        +    return AssertionSuccess();
        +  }
        +
        +  return EqFailure(expected_expression,
        +                   actual_expression,
        +                   PrintToString(expected),
        +                   PrintToString(actual),
        +                   false);
        +}
        +
        +// Helper function for *_STRNE on wide strings.
        +AssertionResult CmpHelperSTRNE(const char* s1_expression,
        +                               const char* s2_expression,
        +                               const wchar_t* s1,
        +                               const wchar_t* s2) {
        +  if (!String::WideCStringEquals(s1, s2)) {
        +    return AssertionSuccess();
        +  }
        +
        +  return AssertionFailure() << "Expected: (" << s1_expression << ") != ("
        +                            << s2_expression << "), actual: "
        +                            << PrintToString(s1)
        +                            << " vs " << PrintToString(s2);
        +}
        +
        +// Compares two C strings, ignoring case.  Returns true iff they have
        +// the same content.
        +//
        +// Unlike strcasecmp(), this function can handle NULL argument(s).  A
        +// NULL C string is considered different to any non-NULL C string,
        +// including the empty string.
        +bool String::CaseInsensitiveCStringEquals(const char * lhs, const char * rhs) {
        +  if (lhs == NULL)
        +    return rhs == NULL;
        +  if (rhs == NULL)
        +    return false;
        +  return posix::StrCaseCmp(lhs, rhs) == 0;
        +}
        +
        +  // Compares two wide C strings, ignoring case.  Returns true iff they
        +  // have the same content.
        +  //
        +  // Unlike wcscasecmp(), this function can handle NULL argument(s).
        +  // A NULL C string is considered different to any non-NULL wide C string,
        +  // including the empty string.
        +  // NB: The implementations on different platforms slightly differ.
        +  // On windows, this method uses _wcsicmp which compares according to LC_CTYPE
        +  // environment variable. On GNU platform this method uses wcscasecmp
        +  // which compares according to LC_CTYPE category of the current locale.
        +  // On MacOS X, it uses towlower, which also uses LC_CTYPE category of the
        +  // current locale.
        +bool String::CaseInsensitiveWideCStringEquals(const wchar_t* lhs,
        +                                              const wchar_t* rhs) {
        +  if (lhs == NULL) return rhs == NULL;
        +
        +  if (rhs == NULL) return false;
        +
        +#if GTEST_OS_WINDOWS
        +  return _wcsicmp(lhs, rhs) == 0;
        +#elif GTEST_OS_LINUX && !GTEST_OS_LINUX_ANDROID
        +  return wcscasecmp(lhs, rhs) == 0;
        +#else
        +  // Android, Mac OS X and Cygwin don't define wcscasecmp.
        +  // Other unknown OSes may not define it either.
        +  wint_t left, right;
        +  do {
        +    left = towlower(*lhs++);
        +    right = towlower(*rhs++);
        +  } while (left && left == right);
        +  return left == right;
        +#endif  // OS selector
        +}
        +
        +// Returns true iff str ends with the given suffix, ignoring case.
        +// Any string is considered to end with an empty suffix.
        +bool String::EndsWithCaseInsensitive(
        +    const std::string& str, const std::string& suffix) {
        +  const size_t str_len = str.length();
        +  const size_t suffix_len = suffix.length();
        +  return (str_len >= suffix_len) &&
        +         CaseInsensitiveCStringEquals(str.c_str() + str_len - suffix_len,
        +                                      suffix.c_str());
        +}
        +
        +// Formats an int value as "%02d".
        +std::string String::FormatIntWidth2(int value) {
        +  std::stringstream ss;
        +  ss << std::setfill('0') << std::setw(2) << value;
        +  return ss.str();
        +}
        +
        +// Formats an int value as "%X".
        +std::string String::FormatHexInt(int value) {
        +  std::stringstream ss;
        +  ss << std::hex << std::uppercase << value;
        +  return ss.str();
        +}
        +
        +// Formats a byte as "%02X".
        +std::string String::FormatByte(unsigned char value) {
        +  std::stringstream ss;
        +  ss << std::setfill('0') << std::setw(2) << std::hex << std::uppercase
        +     << static_cast<unsigned int>(value);
        +  return ss.str();
        +}
        +
        +// Converts the buffer in a stringstream to an std::string, converting NUL
        +// bytes to "\\0" along the way.
        +std::string StringStreamToString(::std::stringstream* ss) {
        +  const ::std::string& str = ss->str();
        +  const char* const start = str.c_str();
        +  const char* const end = start + str.length();
        +
        +  std::string result;
        +  result.reserve(2 * (end - start));
        +  for (const char* ch = start; ch != end; ++ch) {
        +    if (*ch == '\0') {
        +      result += "\\0";  // Replaces NUL with "\\0";
        +    } else {
        +      result += *ch;
        +    }
        +  }
        +
        +  return result;
        +}
        +
        +// Appends the user-supplied message to the Google-Test-generated message.
        +std::string AppendUserMessage(const std::string& gtest_msg,
        +                              const Message& user_msg) {
        +  // Appends the user message if it's non-empty.
        +  const std::string user_msg_string = user_msg.GetString();
        +  if (user_msg_string.empty()) {
        +    return gtest_msg;
        +  }
        +
        +  return gtest_msg + "\n" + user_msg_string;
        +}
        +
        +}  // namespace internal
        +
        +// class TestResult
        +
        +// Creates an empty TestResult.
        +TestResult::TestResult()
        +    : death_test_count_(0),
        +      elapsed_time_(0) {
        +}
        +
        +// D'tor.
        +TestResult::~TestResult() {
        +}
        +
        +// Returns the i-th test part result among all the results. i can
        +// range from 0 to total_part_count() - 1. If i is not in that range,
        +// aborts the program.
        +const TestPartResult& TestResult::GetTestPartResult(int i) const {
        +  if (i < 0 || i >= total_part_count())
        +    internal::posix::Abort();
        +  return test_part_results_.at(i);
        +}
        +
        +// Returns the i-th test property. i can range from 0 to
        +// test_property_count() - 1. If i is not in that range, aborts the
        +// program.
        +const TestProperty& TestResult::GetTestProperty(int i) const {
        +  if (i < 0 || i >= test_property_count())
        +    internal::posix::Abort();
        +  return test_properties_.at(i);
        +}
        +
        +// Clears the test part results.
        +void TestResult::ClearTestPartResults() {
        +  test_part_results_.clear();
        +}
        +
        +// Adds a test part result to the list.
        +void TestResult::AddTestPartResult(const TestPartResult& test_part_result) {
        +  test_part_results_.push_back(test_part_result);
        +}
        +
        +// Adds a test property to the list. If a property with the same key as the
        +// supplied property is already represented, the value of this test_property
        +// replaces the old value for that key.
        +void TestResult::RecordProperty(const std::string& xml_element,
        +                                const TestProperty& test_property) {
        +  if (!ValidateTestProperty(xml_element, test_property)) {
        +    return;
        +  }
        +  internal::MutexLock lock(&test_properites_mutex_);
        +  const std::vector<TestProperty>::iterator property_with_matching_key =
        +      std::find_if(test_properties_.begin(), test_properties_.end(),
        +                   internal::TestPropertyKeyIs(test_property.key()));
        +  if (property_with_matching_key == test_properties_.end()) {
        +    test_properties_.push_back(test_property);
        +    return;
        +  }
        +  property_with_matching_key->SetValue(test_property.value());
        +}
        +
        +// The list of reserved attributes used in the <testsuites> element of XML
        +// output.
        +static const char* const kReservedTestSuitesAttributes[] = {
        +  "disabled",
        +  "errors",
        +  "failures",
        +  "name",
        +  "random_seed",
        +  "tests",
        +  "time",
        +  "timestamp"
        +};
        +
        +// The list of reserved attributes used in the <testsuite> element of XML
        +// output.
        +static const char* const kReservedTestSuiteAttributes[] = {
        +  "disabled",
        +  "errors",
        +  "failures",
        +  "name",
        +  "tests",
        +  "time"
        +};
        +
        +// The list of reserved attributes used in the <testcase> element of XML output.
        +static const char* const kReservedTestCaseAttributes[] = {
        +  "classname",
        +  "name",
        +  "status",
        +  "time",
        +  "type_param",
        +  "value_param"
        +};
        +
        +template <int kSize>
        +std::vector<std::string> ArrayAsVector(const char* const (&array)[kSize]) {
        +  return std::vector<std::string>(array, array + kSize);
        +}
        +
        +static std::vector<std::string> GetReservedAttributesForElement(
        +    const std::string& xml_element) {
        +  if (xml_element == "testsuites") {
        +    return ArrayAsVector(kReservedTestSuitesAttributes);
        +  } else if (xml_element == "testsuite") {
        +    return ArrayAsVector(kReservedTestSuiteAttributes);
        +  } else if (xml_element == "testcase") {
        +    return ArrayAsVector(kReservedTestCaseAttributes);
        +  } else {
        +    GTEST_CHECK_(false) << "Unrecognized xml_element provided: " << xml_element;
        +  }
        +  // This code is unreachable but some compilers may not realizes that.
        +  return std::vector<std::string>();
        +}
        +
        +static std::string FormatWordList(const std::vector<std::string>& words) {
        +  Message word_list;
        +  for (size_t i = 0; i < words.size(); ++i) {
        +    if (i > 0 && words.size() > 2) {
        +      word_list << ", ";
        +    }
        +    if (i == words.size() - 1) {
        +      word_list << "and ";
        +    }
        +    word_list << "'" << words[i] << "'";
        +  }
        +  return word_list.GetString();
        +}
        +
        +bool ValidateTestPropertyName(const std::string& property_name,
        +                              const std::vector<std::string>& reserved_names) {
        +  if (std::find(reserved_names.begin(), reserved_names.end(), property_name) !=
        +          reserved_names.end()) {
        +    ADD_FAILURE() << "Reserved key used in RecordProperty(): " << property_name
        +                  << " (" << FormatWordList(reserved_names)
        +                  << " are reserved by " << GTEST_NAME_ << ")";
        +    return false;
        +  }
        +  return true;
        +}
        +
        +// Adds a failure if the key is a reserved attribute of the element named
        +// xml_element.  Returns true if the property is valid.
        +bool TestResult::ValidateTestProperty(const std::string& xml_element,
        +                                      const TestProperty& test_property) {
        +  return ValidateTestPropertyName(test_property.key(),
        +                                  GetReservedAttributesForElement(xml_element));
        +}
        +
        +// Clears the object.
        +void TestResult::Clear() {
        +  test_part_results_.clear();
        +  test_properties_.clear();
        +  death_test_count_ = 0;
        +  elapsed_time_ = 0;
        +}
        +
        +// Returns true iff the test failed.
        +bool TestResult::Failed() const {
        +  for (int i = 0; i < total_part_count(); ++i) {
        +    if (GetTestPartResult(i).failed())
        +      return true;
        +  }
        +  return false;
        +}
        +
        +// Returns true iff the test part fatally failed.
        +static bool TestPartFatallyFailed(const TestPartResult& result) {
        +  return result.fatally_failed();
        +}
        +
        +// Returns true iff the test fatally failed.
        +bool TestResult::HasFatalFailure() const {
        +  return CountIf(test_part_results_, TestPartFatallyFailed) > 0;
        +}
        +
        +// Returns true iff the test part non-fatally failed.
        +static bool TestPartNonfatallyFailed(const TestPartResult& result) {
        +  return result.nonfatally_failed();
        +}
        +
        +// Returns true iff the test has a non-fatal failure.
        +bool TestResult::HasNonfatalFailure() const {
        +  return CountIf(test_part_results_, TestPartNonfatallyFailed) > 0;
        +}
        +
        +// Gets the number of all test parts.  This is the sum of the number
        +// of successful test parts and the number of failed test parts.
        +int TestResult::total_part_count() const {
        +  return static_cast<int>(test_part_results_.size());
        +}
        +
        +// Returns the number of the test properties.
        +int TestResult::test_property_count() const {
        +  return static_cast<int>(test_properties_.size());
        +}
        +
        +// class Test
        +
        +// Creates a Test object.
        +
        +// The c'tor saves the states of all flags.
        +Test::Test()
        +    : gtest_flag_saver_(new GTEST_FLAG_SAVER_) {
        +}
        +
        +// The d'tor restores the states of all flags.  The actual work is
        +// done by the d'tor of the gtest_flag_saver_ field, and thus not
        +// visible here.
        +Test::~Test() {
        +}
        +
        +// Sets up the test fixture.
        +//
        +// A sub-class may override this.
        +void Test::SetUp() {
        +}
        +
        +// Tears down the test fixture.
        +//
        +// A sub-class may override this.
        +void Test::TearDown() {
        +}
        +
        +// Allows user supplied key value pairs to be recorded for later output.
        +void Test::RecordProperty(const std::string& key, const std::string& value) {
        +  UnitTest::GetInstance()->RecordProperty(key, value);
        +}
        +
        +// Allows user supplied key value pairs to be recorded for later output.
        +void Test::RecordProperty(const std::string& key, int value) {
        +  Message value_message;
        +  value_message << value;
        +  RecordProperty(key, value_message.GetString().c_str());
        +}
        +
        +namespace internal {
        +
        +void ReportFailureInUnknownLocation(TestPartResult::Type result_type,
        +                                    const std::string& message) {
        +  // This function is a friend of UnitTest and as such has access to
        +  // AddTestPartResult.
        +  UnitTest::GetInstance()->AddTestPartResult(
        +      result_type,
        +      NULL,  // No info about the source file where the exception occurred.
        +      -1,    // We have no info on which line caused the exception.
        +      message,
        +      "");   // No stack trace, either.
        +}
        +
        +}  // namespace internal
        +
        +// Google Test requires all tests in the same test case to use the same test
        +// fixture class.  This function checks if the current test has the
        +// same fixture class as the first test in the current test case.  If
        +// yes, it returns true; otherwise it generates a Google Test failure and
        +// returns false.
        +bool Test::HasSameFixtureClass() {
        +  internal::UnitTestImpl* const impl = internal::GetUnitTestImpl();
        +  const TestCase* const test_case = impl->current_test_case();
        +
        +  // Info about the first test in the current test case.
        +  const TestInfo* const first_test_info = test_case->test_info_list()[0];
        +  const internal::TypeId first_fixture_id = first_test_info->fixture_class_id_;
        +  const char* const first_test_name = first_test_info->name();
        +
        +  // Info about the current test.
        +  const TestInfo* const this_test_info = impl->current_test_info();
        +  const internal::TypeId this_fixture_id = this_test_info->fixture_class_id_;
        +  const char* const this_test_name = this_test_info->name();
        +
        +  if (this_fixture_id != first_fixture_id) {
        +    // Is the first test defined using TEST?
        +    const bool first_is_TEST = first_fixture_id == internal::GetTestTypeId();
        +    // Is this test defined using TEST?
        +    const bool this_is_TEST = this_fixture_id == internal::GetTestTypeId();
        +
        +    if (first_is_TEST || this_is_TEST) {
        +      // Both TEST and TEST_F appear in same test case, which is incorrect.
        +      // Tell the user how to fix this.
        +
        +      // Gets the name of the TEST and the name of the TEST_F.  Note
        +      // that first_is_TEST and this_is_TEST cannot both be true, as
        +      // the fixture IDs are different for the two tests.
        +      const char* const TEST_name =
        +          first_is_TEST ? first_test_name : this_test_name;
        +      const char* const TEST_F_name =
        +          first_is_TEST ? this_test_name : first_test_name;
        +
        +      ADD_FAILURE()
        +          << "All tests in the same test case must use the same test fixture\n"
        +          << "class, so mixing TEST_F and TEST in the same test case is\n"
        +          << "illegal.  In test case " << this_test_info->test_case_name()
        +          << ",\n"
        +          << "test " << TEST_F_name << " is defined using TEST_F but\n"
        +          << "test " << TEST_name << " is defined using TEST.  You probably\n"
        +          << "want to change the TEST to TEST_F or move it to another test\n"
        +          << "case.";
        +    } else {
        +      // Two fixture classes with the same name appear in two different
        +      // namespaces, which is not allowed. Tell the user how to fix this.
        +      ADD_FAILURE()
        +          << "All tests in the same test case must use the same test fixture\n"
        +          << "class.  However, in test case "
        +          << this_test_info->test_case_name() << ",\n"
        +          << "you defined test " << first_test_name
        +          << " and test " << this_test_name << "\n"
        +          << "using two different test fixture classes.  This can happen if\n"
        +          << "the two classes are from different namespaces or translation\n"
        +          << "units and have the same name.  You should probably rename one\n"
        +          << "of the classes to put the tests into different test cases.";
        +    }
        +    return false;
        +  }
        +
        +  return true;
        +}
        +
        +#if GTEST_HAS_SEH
        +
        +// Adds an "exception thrown" fatal failure to the current test.  This
        +// function returns its result via an output parameter pointer because VC++
        +// prohibits creation of objects with destructors on stack in functions
        +// using __try (see error C2712).
        +static std::string* FormatSehExceptionMessage(DWORD exception_code,
        +                                              const char* location) {
        +  Message message;
        +  message << "SEH exception with code 0x" << std::setbase(16) <<
        +    exception_code << std::setbase(10) << " thrown in " << location << ".";
        +
        +  return new std::string(message.GetString());
        +}
        +
        +#endif  // GTEST_HAS_SEH
        +
        +namespace internal {
        +
        +#if GTEST_HAS_EXCEPTIONS
        +
        +// Adds an "exception thrown" fatal failure to the current test.
        +static std::string FormatCxxExceptionMessage(const char* description,
        +                                             const char* location) {
        +  Message message;
        +  if (description != NULL) {
        +    message << "C++ exception with description \"" << description << "\"";
        +  } else {
        +    message << "Unknown C++ exception";
        +  }
        +  message << " thrown in " << location << ".";
        +
        +  return message.GetString();
        +}
        +
        +static std::string PrintTestPartResultToString(
        +    const TestPartResult& test_part_result);
        +
        +GoogleTestFailureException::GoogleTestFailureException(
        +    const TestPartResult& failure)
        +    : ::std::runtime_error(PrintTestPartResultToString(failure).c_str()) {}
        +
        +#endif  // GTEST_HAS_EXCEPTIONS
        +
        +// We put these helper functions in the internal namespace as IBM's xlC
        +// compiler rejects the code if they were declared static.
        +
        +// Runs the given method and handles SEH exceptions it throws, when
        +// SEH is supported; returns the 0-value for type Result in case of an
        +// SEH exception.  (Microsoft compilers cannot handle SEH and C++
        +// exceptions in the same function.  Therefore, we provide a separate
        +// wrapper function for handling SEH exceptions.)
        +template <class T, typename Result>
        +Result HandleSehExceptionsInMethodIfSupported(
        +    T* object, Result (T::*method)(), const char* location) {
        +#if GTEST_HAS_SEH
        +  __try {
        +    return (object->*method)();
        +  } __except (internal::UnitTestOptions::GTestShouldProcessSEH(  // NOLINT
        +      GetExceptionCode())) {
        +    // We create the exception message on the heap because VC++ prohibits
        +    // creation of objects with destructors on stack in functions using __try
        +    // (see error C2712).
        +    std::string* exception_message = FormatSehExceptionMessage(
        +        GetExceptionCode(), location);
        +    internal::ReportFailureInUnknownLocation(TestPartResult::kFatalFailure,
        +                                             *exception_message);
        +    delete exception_message;
        +    return static_cast<Result>(0);
        +  }
        +#else
        +  (void)location;
        +  return (object->*method)();
        +#endif  // GTEST_HAS_SEH
        +}
        +
        +// Runs the given method and catches and reports C++ and/or SEH-style
        +// exceptions, if they are supported; returns the 0-value for type
        +// Result in case of an SEH exception.
        +template <class T, typename Result>
        +Result HandleExceptionsInMethodIfSupported(
        +    T* object, Result (T::*method)(), const char* location) {
        +  // NOTE: The user code can affect the way in which Google Test handles
        +  // exceptions by setting GTEST_FLAG(catch_exceptions), but only before
        +  // RUN_ALL_TESTS() starts. It is technically possible to check the flag
        +  // after the exception is caught and either report or re-throw the
        +  // exception based on the flag's value:
        +  //
        +  // try {
        +  //   // Perform the test method.
        +  // } catch (...) {
        +  //   if (GTEST_FLAG(catch_exceptions))
        +  //     // Report the exception as failure.
        +  //   else
        +  //     throw;  // Re-throws the original exception.
        +  // }
        +  //
        +  // However, the purpose of this flag is to allow the program to drop into
        +  // the debugger when the exception is thrown. On most platforms, once the
        +  // control enters the catch block, the exception origin information is
        +  // lost and the debugger will stop the program at the point of the
        +  // re-throw in this function -- instead of at the point of the original
        +  // throw statement in the code under test.  For this reason, we perform
        +  // the check early, sacrificing the ability to affect Google Test's
        +  // exception handling in the method where the exception is thrown.
        +  if (internal::GetUnitTestImpl()->catch_exceptions()) {
        +#if GTEST_HAS_EXCEPTIONS
        +    try {
        +      return HandleSehExceptionsInMethodIfSupported(object, method, location);
        +    } catch (const internal::GoogleTestFailureException&) {  // NOLINT
        +      // This exception type can only be thrown by a failed Google
        +      // Test assertion with the intention of letting another testing
        +      // framework catch it.  Therefore we just re-throw it.
        +      throw;
        +    } catch (const std::exception& e) {  // NOLINT
        +      internal::ReportFailureInUnknownLocation(
        +          TestPartResult::kFatalFailure,
        +          FormatCxxExceptionMessage(e.what(), location));
        +    } catch (...) {  // NOLINT
        +      internal::ReportFailureInUnknownLocation(
        +          TestPartResult::kFatalFailure,
        +          FormatCxxExceptionMessage(NULL, location));
        +    }
        +    return static_cast<Result>(0);
        +#else
        +    return HandleSehExceptionsInMethodIfSupported(object, method, location);
        +#endif  // GTEST_HAS_EXCEPTIONS
        +  } else {
        +    return (object->*method)();
        +  }
        +}
        +
        +}  // namespace internal
        +
        +// Runs the test and updates the test result.
        +void Test::Run() {
        +  if (!HasSameFixtureClass()) return;
        +
        +  internal::UnitTestImpl* const impl = internal::GetUnitTestImpl();
        +  impl->os_stack_trace_getter()->UponLeavingGTest();
        +  internal::HandleExceptionsInMethodIfSupported(this, &Test::SetUp, "SetUp()");
        +  // We will run the test only if SetUp() was successful.
        +  if (!HasFatalFailure()) {
        +    impl->os_stack_trace_getter()->UponLeavingGTest();
        +    internal::HandleExceptionsInMethodIfSupported(
        +        this, &Test::TestBody, "the test body");
        +  }
        +
        +  // However, we want to clean up as much as possible.  Hence we will
        +  // always call TearDown(), even if SetUp() or the test body has
        +  // failed.
        +  impl->os_stack_trace_getter()->UponLeavingGTest();
        +  internal::HandleExceptionsInMethodIfSupported(
        +      this, &Test::TearDown, "TearDown()");
        +}
        +
        +// Returns true iff the current test has a fatal failure.
        +bool Test::HasFatalFailure() {
        +  return internal::GetUnitTestImpl()->current_test_result()->HasFatalFailure();
        +}
        +
        +// Returns true iff the current test has a non-fatal failure.
        +bool Test::HasNonfatalFailure() {
        +  return internal::GetUnitTestImpl()->current_test_result()->
        +      HasNonfatalFailure();
        +}
        +
        +// class TestInfo
        +
        +// Constructs a TestInfo object. It assumes ownership of the test factory
        +// object.
        +TestInfo::TestInfo(const std::string& a_test_case_name,
        +                   const std::string& a_name,
        +                   const char* a_type_param,
        +                   const char* a_value_param,
        +                   internal::CodeLocation a_code_location,
        +                   internal::TypeId fixture_class_id,
        +                   internal::TestFactoryBase* factory)
        +    : test_case_name_(a_test_case_name),
        +      name_(a_name),
        +      type_param_(a_type_param ? new std::string(a_type_param) : NULL),
        +      value_param_(a_value_param ? new std::string(a_value_param) : NULL),
        +      location_(a_code_location),
        +      fixture_class_id_(fixture_class_id),
        +      should_run_(false),
        +      is_disabled_(false),
        +      matches_filter_(false),
        +      factory_(factory),
        +      result_() {}
        +
        +// Destructs a TestInfo object.
        +TestInfo::~TestInfo() { delete factory_; }
        +
        +namespace internal {
        +
        +// Creates a new TestInfo object and registers it with Google Test;
        +// returns the created object.
        +//
        +// Arguments:
        +//
        +//   test_case_name:   name of the test case
        +//   name:             name of the test
        +//   type_param:       the name of the test's type parameter, or NULL if
        +//                     this is not a typed or a type-parameterized test.
        +//   value_param:      text representation of the test's value parameter,
        +//                     or NULL if this is not a value-parameterized test.
        +//   code_location:    code location where the test is defined
        +//   fixture_class_id: ID of the test fixture class
        +//   set_up_tc:        pointer to the function that sets up the test case
        +//   tear_down_tc:     pointer to the function that tears down the test case
        +//   factory:          pointer to the factory that creates a test object.
        +//                     The newly created TestInfo instance will assume
        +//                     ownership of the factory object.
        +TestInfo* MakeAndRegisterTestInfo(
        +    const char* test_case_name,
        +    const char* name,
        +    const char* type_param,
        +    const char* value_param,
        +    CodeLocation code_location,
        +    TypeId fixture_class_id,
        +    SetUpTestCaseFunc set_up_tc,
        +    TearDownTestCaseFunc tear_down_tc,
        +    TestFactoryBase* factory) {
        +  TestInfo* const test_info =
        +      new TestInfo(test_case_name, name, type_param, value_param,
        +                   code_location, fixture_class_id, factory);
        +  GetUnitTestImpl()->AddTestInfo(set_up_tc, tear_down_tc, test_info);
        +  return test_info;
        +}
        +
        +#if GTEST_HAS_PARAM_TEST
        +void ReportInvalidTestCaseType(const char* test_case_name,
        +                               CodeLocation code_location) {
        +  Message errors;
        +  errors
        +      << "Attempted redefinition of test case " << test_case_name << ".\n"
        +      << "All tests in the same test case must use the same test fixture\n"
        +      << "class.  However, in test case " << test_case_name << ", you tried\n"
        +      << "to define a test using a fixture class different from the one\n"
        +      << "used earlier. This can happen if the two fixture classes are\n"
        +      << "from different namespaces and have the same name. You should\n"
        +      << "probably rename one of the classes to put the tests into different\n"
        +      << "test cases.";
        +
        +  fprintf(stderr, "%s %s",
        +          FormatFileLocation(code_location.file.c_str(),
        +                             code_location.line).c_str(),
        +          errors.GetString().c_str());
        +}
        +#endif  // GTEST_HAS_PARAM_TEST
        +
        +}  // namespace internal
        +
        +namespace {
        +
        +// A predicate that checks the test name of a TestInfo against a known
        +// value.
        +//
        +// This is used for implementation of the TestCase class only.  We put
        +// it in the anonymous namespace to prevent polluting the outer
        +// namespace.
        +//
        +// TestNameIs is copyable.
        +class TestNameIs {
        + public:
        +  // Constructor.
        +  //
        +  // TestNameIs has NO default constructor.
        +  explicit TestNameIs(const char* name)
        +      : name_(name) {}
        +
        +  // Returns true iff the test name of test_info matches name_.
        +  bool operator()(const TestInfo * test_info) const {
        +    return test_info && test_info->name() == name_;
        +  }
        +
        + private:
        +  std::string name_;
        +};
        +
        +}  // namespace
        +
        +namespace internal {
        +
        +// This method expands all parameterized tests registered with macros TEST_P
        +// and INSTANTIATE_TEST_CASE_P into regular tests and registers those.
        +// This will be done just once during the program runtime.
        +void UnitTestImpl::RegisterParameterizedTests() {
        +#if GTEST_HAS_PARAM_TEST
        +  if (!parameterized_tests_registered_) {
        +    parameterized_test_registry_.RegisterTests();
        +    parameterized_tests_registered_ = true;
        +  }
        +#endif
        +}
        +
        +}  // namespace internal
        +
        +// Creates the test object, runs it, records its result, and then
        +// deletes it.
        +void TestInfo::Run() {
        +  if (!should_run_) return;
        +
        +  // Tells UnitTest where to store test result.
        +  internal::UnitTestImpl* const impl = internal::GetUnitTestImpl();
        +  impl->set_current_test_info(this);
        +
        +  TestEventListener* repeater = UnitTest::GetInstance()->listeners().repeater();
        +
        +  // Notifies the unit test event listeners that a test is about to start.
        +  repeater->OnTestStart(*this);
        +
        +  const TimeInMillis start = internal::GetTimeInMillis();
        +
        +  impl->os_stack_trace_getter()->UponLeavingGTest();
        +
        +  // Creates the test object.
        +  Test* const test = internal::HandleExceptionsInMethodIfSupported(
        +      factory_, &internal::TestFactoryBase::CreateTest,
        +      "the test fixture's constructor");
        +
        +  // Runs the test only if the test object was created and its
        +  // constructor didn't generate a fatal failure.
        +  if ((test != NULL) && !Test::HasFatalFailure()) {
        +    // This doesn't throw as all user code that can throw are wrapped into
        +    // exception handling code.
        +    test->Run();
        +  }
        +
        +  // Deletes the test object.
        +  impl->os_stack_trace_getter()->UponLeavingGTest();
        +  internal::HandleExceptionsInMethodIfSupported(
        +      test, &Test::DeleteSelf_, "the test fixture's destructor");
        +
        +  result_.set_elapsed_time(internal::GetTimeInMillis() - start);
        +
        +  // Notifies the unit test event listener that a test has just finished.
        +  repeater->OnTestEnd(*this);
        +
        +  // Tells UnitTest to stop associating assertion results to this
        +  // test.
        +  impl->set_current_test_info(NULL);
        +}
        +
        +// class TestCase
        +
        +// Gets the number of successful tests in this test case.
        +int TestCase::successful_test_count() const {
        +  return CountIf(test_info_list_, TestPassed);
        +}
        +
        +// Gets the number of failed tests in this test case.
        +int TestCase::failed_test_count() const {
        +  return CountIf(test_info_list_, TestFailed);
        +}
        +
        +// Gets the number of disabled tests that will be reported in the XML report.
        +int TestCase::reportable_disabled_test_count() const {
        +  return CountIf(test_info_list_, TestReportableDisabled);
        +}
        +
        +// Gets the number of disabled tests in this test case.
        +int TestCase::disabled_test_count() const {
        +  return CountIf(test_info_list_, TestDisabled);
        +}
        +
        +// Gets the number of tests to be printed in the XML report.
        +int TestCase::reportable_test_count() const {
        +  return CountIf(test_info_list_, TestReportable);
        +}
        +
        +// Get the number of tests in this test case that should run.
        +int TestCase::test_to_run_count() const {
        +  return CountIf(test_info_list_, ShouldRunTest);
        +}
        +
        +// Gets the number of all tests.
        +int TestCase::total_test_count() const {
        +  return static_cast<int>(test_info_list_.size());
        +}
        +
        +// Creates a TestCase with the given name.
        +//
        +// Arguments:
        +//
        +//   name:         name of the test case
        +//   a_type_param: the name of the test case's type parameter, or NULL if
        +//                 this is not a typed or a type-parameterized test case.
        +//   set_up_tc:    pointer to the function that sets up the test case
        +//   tear_down_tc: pointer to the function that tears down the test case
        +TestCase::TestCase(const char* a_name, const char* a_type_param,
        +                   Test::SetUpTestCaseFunc set_up_tc,
        +                   Test::TearDownTestCaseFunc tear_down_tc)
        +    : name_(a_name),
        +      type_param_(a_type_param ? new std::string(a_type_param) : NULL),
        +      set_up_tc_(set_up_tc),
        +      tear_down_tc_(tear_down_tc),
        +      should_run_(false),
        +      elapsed_time_(0) {
        +}
        +
        +// Destructor of TestCase.
        +TestCase::~TestCase() {
        +  // Deletes every Test in the collection.
        +  ForEach(test_info_list_, internal::Delete<TestInfo>);
        +}
        +
        +// Returns the i-th test among all the tests. i can range from 0 to
        +// total_test_count() - 1. If i is not in that range, returns NULL.
        +const TestInfo* TestCase::GetTestInfo(int i) const {
        +  const int index = GetElementOr(test_indices_, i, -1);
        +  return index < 0 ? NULL : test_info_list_[index];
        +}
        +
        +// Returns the i-th test among all the tests. i can range from 0 to
        +// total_test_count() - 1. If i is not in that range, returns NULL.
        +TestInfo* TestCase::GetMutableTestInfo(int i) {
        +  const int index = GetElementOr(test_indices_, i, -1);
        +  return index < 0 ? NULL : test_info_list_[index];
        +}
        +
        +// Adds a test to this test case.  Will delete the test upon
        +// destruction of the TestCase object.
        +void TestCase::AddTestInfo(TestInfo * test_info) {
        +  test_info_list_.push_back(test_info);
        +  test_indices_.push_back(static_cast<int>(test_indices_.size()));
        +}
        +
        +// Runs every test in this TestCase.
        +void TestCase::Run() {
        +  if (!should_run_) return;
        +
        +  internal::UnitTestImpl* const impl = internal::GetUnitTestImpl();
        +  impl->set_current_test_case(this);
        +
        +  TestEventListener* repeater = UnitTest::GetInstance()->listeners().repeater();
        +
        +  repeater->OnTestCaseStart(*this);
        +  impl->os_stack_trace_getter()->UponLeavingGTest();
        +  internal::HandleExceptionsInMethodIfSupported(
        +      this, &TestCase::RunSetUpTestCase, "SetUpTestCase()");
        +
        +  const internal::TimeInMillis start = internal::GetTimeInMillis();
        +  for (int i = 0; i < total_test_count(); i++) {
        +    GetMutableTestInfo(i)->Run();
        +  }
        +  elapsed_time_ = internal::GetTimeInMillis() - start;
        +
        +  impl->os_stack_trace_getter()->UponLeavingGTest();
        +  internal::HandleExceptionsInMethodIfSupported(
        +      this, &TestCase::RunTearDownTestCase, "TearDownTestCase()");
        +
        +  repeater->OnTestCaseEnd(*this);
        +  impl->set_current_test_case(NULL);
        +}
        +
        +// Clears the results of all tests in this test case.
        +void TestCase::ClearResult() {
        +  ad_hoc_test_result_.Clear();
        +  ForEach(test_info_list_, TestInfo::ClearTestResult);
        +}
        +
        +// Shuffles the tests in this test case.
        +void TestCase::ShuffleTests(internal::Random* random) {
        +  Shuffle(random, &test_indices_);
        +}
        +
        +// Restores the test order to before the first shuffle.
        +void TestCase::UnshuffleTests() {
        +  for (size_t i = 0; i < test_indices_.size(); i++) {
        +    test_indices_[i] = static_cast<int>(i);
        +  }
        +}
        +
        +// Formats a countable noun.  Depending on its quantity, either the
        +// singular form or the plural form is used. e.g.
        +//
        +// FormatCountableNoun(1, "formula", "formuli") returns "1 formula".
        +// FormatCountableNoun(5, "book", "books") returns "5 books".
        +static std::string FormatCountableNoun(int count,
        +                                       const char * singular_form,
        +                                       const char * plural_form) {
        +  return internal::StreamableToString(count) + " " +
        +      (count == 1 ? singular_form : plural_form);
        +}
        +
        +// Formats the count of tests.
        +static std::string FormatTestCount(int test_count) {
        +  return FormatCountableNoun(test_count, "test", "tests");
        +}
        +
        +// Formats the count of test cases.
        +static std::string FormatTestCaseCount(int test_case_count) {
        +  return FormatCountableNoun(test_case_count, "test case", "test cases");
        +}
        +
        +// Converts a TestPartResult::Type enum to human-friendly string
        +// representation.  Both kNonFatalFailure and kFatalFailure are translated
        +// to "Failure", as the user usually doesn't care about the difference
        +// between the two when viewing the test result.
        +static const char * TestPartResultTypeToString(TestPartResult::Type type) {
        +  switch (type) {
        +    case TestPartResult::kSuccess:
        +      return "Success";
        +
        +    case TestPartResult::kNonFatalFailure:
        +    case TestPartResult::kFatalFailure:
        +#ifdef _MSC_VER
        +      return "error: ";
        +#else
        +      return "Failure\n";
        +#endif
        +    default:
        +      return "Unknown result type";
        +  }
        +}
        +
        +namespace internal {
        +
        +// Prints a TestPartResult to an std::string.
        +static std::string PrintTestPartResultToString(
        +    const TestPartResult& test_part_result) {
        +  return (Message()
        +          << internal::FormatFileLocation(test_part_result.file_name(),
        +                                          test_part_result.line_number())
        +          << " " << TestPartResultTypeToString(test_part_result.type())
        +          << test_part_result.message()).GetString();
        +}
        +
        +// Prints a TestPartResult.
        +static void PrintTestPartResult(const TestPartResult& test_part_result) {
        +  const std::string& result =
        +      PrintTestPartResultToString(test_part_result);
        +  printf("%s\n", result.c_str());
        +  fflush(stdout);
        +  // If the test program runs in Visual Studio or a debugger, the
        +  // following statements add the test part result message to the Output
        +  // window such that the user can double-click on it to jump to the
        +  // corresponding source code location; otherwise they do nothing.
        +#if GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_MOBILE
        +  // We don't call OutputDebugString*() on Windows Mobile, as printing
        +  // to stdout is done by OutputDebugString() there already - we don't
        +  // want the same message printed twice.
        +  ::OutputDebugStringA(result.c_str());
        +  ::OutputDebugStringA("\n");
        +#endif
        +}
        +
        +// class PrettyUnitTestResultPrinter
        +
        +enum GTestColor {
        +  COLOR_DEFAULT,
        +  COLOR_RED,
        +  COLOR_GREEN,
        +  COLOR_YELLOW
        +};
        +
        +#if GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_MOBILE && \
        +    !GTEST_OS_WINDOWS_PHONE && !GTEST_OS_WINDOWS_RT
        +
        +// Returns the character attribute for the given color.
        +WORD GetColorAttribute(GTestColor color) {
        +  switch (color) {
        +    case COLOR_RED:    return FOREGROUND_RED;
        +    case COLOR_GREEN:  return FOREGROUND_GREEN;
        +    case COLOR_YELLOW: return FOREGROUND_RED | FOREGROUND_GREEN;
        +    default:           return 0;
        +  }
        +}
        +
        +#else
        +
        +// Returns the ANSI color code for the given color.  COLOR_DEFAULT is
        +// an invalid input.
        +const char* GetAnsiColorCode(GTestColor color) {
        +  switch (color) {
        +    case COLOR_RED:     return "1";
        +    case COLOR_GREEN:   return "2";
        +    case COLOR_YELLOW:  return "3";
        +    default:            return NULL;
        +  };
        +}
        +
        +#endif  // GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_MOBILE
        +
        +// Returns true iff Google Test should use colors in the output.
        +bool ShouldUseColor(bool stdout_is_tty) {
        +  const char* const gtest_color = GTEST_FLAG(color).c_str();
        +
        +  if (String::CaseInsensitiveCStringEquals(gtest_color, "auto")) {
        +#if GTEST_OS_WINDOWS
        +    // On Windows the TERM variable is usually not set, but the
        +    // console there does support colors.
        +    return stdout_is_tty;
        +#else
        +    // On non-Windows platforms, we rely on the TERM variable.
        +    const char* const term = posix::GetEnv("TERM");
        +    const bool term_supports_color =
        +        String::CStringEquals(term, "xterm") ||
        +        String::CStringEquals(term, "xterm-color") ||
        +        String::CStringEquals(term, "xterm-256color") ||
        +        String::CStringEquals(term, "screen") ||
        +        String::CStringEquals(term, "screen-256color") ||
        +        String::CStringEquals(term, "rxvt-unicode") ||
        +        String::CStringEquals(term, "rxvt-unicode-256color") ||
        +        String::CStringEquals(term, "linux") ||
        +        String::CStringEquals(term, "cygwin");
        +    return stdout_is_tty && term_supports_color;
        +#endif  // GTEST_OS_WINDOWS
        +  }
        +
        +  return String::CaseInsensitiveCStringEquals(gtest_color, "yes") ||
        +      String::CaseInsensitiveCStringEquals(gtest_color, "true") ||
        +      String::CaseInsensitiveCStringEquals(gtest_color, "t") ||
        +      String::CStringEquals(gtest_color, "1");
        +  // We take "yes", "true", "t", and "1" as meaning "yes".  If the
        +  // value is neither one of these nor "auto", we treat it as "no" to
        +  // be conservative.
        +}
        +
        +// Helpers for printing colored strings to stdout. Note that on Windows, we
        +// cannot simply emit special characters and have the terminal change colors.
        +// This routine must actually emit the characters rather than return a string
        +// that would be colored when printed, as can be done on Linux.
        +void ColoredPrintf(GTestColor color, const char* fmt, ...) {
        +  va_list args;
        +  va_start(args, fmt);
        +
        +#if GTEST_OS_WINDOWS_MOBILE || GTEST_OS_SYMBIAN || GTEST_OS_ZOS || \
        +    GTEST_OS_IOS || GTEST_OS_WINDOWS_PHONE || GTEST_OS_WINDOWS_RT
        +  const bool use_color = AlwaysFalse();
        +#else
        +  static const bool in_color_mode =
        +      ShouldUseColor(posix::IsATTY(posix::FileNo(stdout)) != 0);
        +  const bool use_color = in_color_mode && (color != COLOR_DEFAULT);
        +#endif  // GTEST_OS_WINDOWS_MOBILE || GTEST_OS_SYMBIAN || GTEST_OS_ZOS
        +  // The '!= 0' comparison is necessary to satisfy MSVC 7.1.
        +
        +  if (!use_color) {
        +    vprintf(fmt, args);
        +    va_end(args);
        +    return;
        +  }
        +
        +#if GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_MOBILE && \
        +    !GTEST_OS_WINDOWS_PHONE && !GTEST_OS_WINDOWS_RT
        +  const HANDLE stdout_handle = GetStdHandle(STD_OUTPUT_HANDLE);
        +
        +  // Gets the current text color.
        +  CONSOLE_SCREEN_BUFFER_INFO buffer_info;
        +  GetConsoleScreenBufferInfo(stdout_handle, &buffer_info);
        +  const WORD old_color_attrs = buffer_info.wAttributes;
        +
        +  // We need to flush the stream buffers into the console before each
        +  // SetConsoleTextAttribute call lest it affect the text that is already
        +  // printed but has not yet reached the console.
        +  fflush(stdout);
        +  SetConsoleTextAttribute(stdout_handle,
        +                          GetColorAttribute(color) | FOREGROUND_INTENSITY);
        +  vprintf(fmt, args);
        +
        +  fflush(stdout);
        +  // Restores the text color.
        +  SetConsoleTextAttribute(stdout_handle, old_color_attrs);
        +#else
        +  printf("\033[0;3%sm", GetAnsiColorCode(color));
        +  vprintf(fmt, args);
        +  printf("\033[m");  // Resets the terminal to default.
        +#endif  // GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_MOBILE
        +  va_end(args);
        +}
        +
        +// Text printed in Google Test's text output and --gunit_list_tests
        +// output to label the type parameter and value parameter for a test.
        +static const char kTypeParamLabel[] = "TypeParam";
        +static const char kValueParamLabel[] = "GetParam()";
        +
        +void PrintFullTestCommentIfPresent(const TestInfo& test_info) {
        +  const char* const type_param = test_info.type_param();
        +  const char* const value_param = test_info.value_param();
        +
        +  if (type_param != NULL || value_param != NULL) {
        +    printf(", where ");
        +    if (type_param != NULL) {
        +      printf("%s = %s", kTypeParamLabel, type_param);
        +      if (value_param != NULL)
        +        printf(" and ");
        +    }
        +    if (value_param != NULL) {
        +      printf("%s = %s", kValueParamLabel, value_param);
        +    }
        +  }
        +}
        +
        +// This class implements the TestEventListener interface.
        +//
        +// Class PrettyUnitTestResultPrinter is copyable.
        +class PrettyUnitTestResultPrinter : public TestEventListener {
        + public:
        +  PrettyUnitTestResultPrinter() {}
        +  static void PrintTestName(const char * test_case, const char * test) {
        +    printf("%s.%s", test_case, test);
        +  }
        +
        +  // The following methods override what's in the TestEventListener class.
        +  virtual void OnTestProgramStart(const UnitTest& /*unit_test*/) {}
        +  virtual void OnTestIterationStart(const UnitTest& unit_test, int iteration);
        +  virtual void OnEnvironmentsSetUpStart(const UnitTest& unit_test);
        +  virtual void OnEnvironmentsSetUpEnd(const UnitTest& /*unit_test*/) {}
        +  virtual void OnTestCaseStart(const TestCase& test_case);
        +  virtual void OnTestStart(const TestInfo& test_info);
        +  virtual void OnTestPartResult(const TestPartResult& result);
        +  virtual void OnTestEnd(const TestInfo& test_info);
        +  virtual void OnTestCaseEnd(const TestCase& test_case);
        +  virtual void OnEnvironmentsTearDownStart(const UnitTest& unit_test);
        +  virtual void OnEnvironmentsTearDownEnd(const UnitTest& /*unit_test*/) {}
        +  virtual void OnTestIterationEnd(const UnitTest& unit_test, int iteration);
        +  virtual void OnTestProgramEnd(const UnitTest& /*unit_test*/) {}
        +
        + private:
        +  static void PrintFailedTests(const UnitTest& unit_test);
        +};
        +
        +  // Fired before each iteration of tests starts.
        +void PrettyUnitTestResultPrinter::OnTestIterationStart(
        +    const UnitTest& unit_test, int iteration) {
        +  if (GTEST_FLAG(repeat) != 1)
        +    printf("\nRepeating all tests (iteration %d) . . .\n\n", iteration + 1);
        +
        +  const char* const filter = GTEST_FLAG(filter).c_str();
        +
        +  // Prints the filter if it's not *.  This reminds the user that some
        +  // tests may be skipped.
        +  if (!String::CStringEquals(filter, kUniversalFilter)) {
        +    ColoredPrintf(COLOR_YELLOW,
        +                  "Note: %s filter = %s\n", GTEST_NAME_, filter);
        +  }
        +
        +  if (internal::ShouldShard(kTestTotalShards, kTestShardIndex, false)) {
        +    const Int32 shard_index = Int32FromEnvOrDie(kTestShardIndex, -1);
        +    ColoredPrintf(COLOR_YELLOW,
        +                  "Note: This is test shard %d of %s.\n",
        +                  static_cast<int>(shard_index) + 1,
        +                  internal::posix::GetEnv(kTestTotalShards));
        +  }
        +
        +  if (GTEST_FLAG(shuffle)) {
        +    ColoredPrintf(COLOR_YELLOW,
        +                  "Note: Randomizing tests' orders with a seed of %d .\n",
        +                  unit_test.random_seed());
        +  }
        +
        +  ColoredPrintf(COLOR_GREEN,  "[==========] ");
        +  printf("Running %s from %s.\n",
        +         FormatTestCount(unit_test.test_to_run_count()).c_str(),
        +         FormatTestCaseCount(unit_test.test_case_to_run_count()).c_str());
        +  fflush(stdout);
        +}
        +
        +void PrettyUnitTestResultPrinter::OnEnvironmentsSetUpStart(
        +    const UnitTest& /*unit_test*/) {
        +  ColoredPrintf(COLOR_GREEN,  "[----------] ");
        +  printf("Global test environment set-up.\n");
        +  fflush(stdout);
        +}
        +
        +void PrettyUnitTestResultPrinter::OnTestCaseStart(const TestCase& test_case) {
        +  const std::string counts =
        +      FormatCountableNoun(test_case.test_to_run_count(), "test", "tests");
        +  ColoredPrintf(COLOR_GREEN, "[----------] ");
        +  printf("%s from %s", counts.c_str(), test_case.name());
        +  if (test_case.type_param() == NULL) {
        +    printf("\n");
        +  } else {
        +    printf(", where %s = %s\n", kTypeParamLabel, test_case.type_param());
        +  }
        +  fflush(stdout);
        +}
        +
        +void PrettyUnitTestResultPrinter::OnTestStart(const TestInfo& test_info) {
        +  ColoredPrintf(COLOR_GREEN,  "[ RUN      ] ");
        +  PrintTestName(test_info.test_case_name(), test_info.name());
        +  printf("\n");
        +  fflush(stdout);
        +}
        +
        +// Called after an assertion failure.
        +void PrettyUnitTestResultPrinter::OnTestPartResult(
        +    const TestPartResult& result) {
        +  // If the test part succeeded, we don't need to do anything.
        +  if (result.type() == TestPartResult::kSuccess)
        +    return;
        +
        +  // Print failure message from the assertion (e.g. expected this and got that).
        +  PrintTestPartResult(result);
        +  fflush(stdout);
        +}
        +
        +void PrettyUnitTestResultPrinter::OnTestEnd(const TestInfo& test_info) {
        +  if (test_info.result()->Passed()) {
        +    ColoredPrintf(COLOR_GREEN, "[       OK ] ");
        +  } else {
        +    ColoredPrintf(COLOR_RED, "[  FAILED  ] ");
        +  }
        +  PrintTestName(test_info.test_case_name(), test_info.name());
        +  if (test_info.result()->Failed())
        +    PrintFullTestCommentIfPresent(test_info);
        +
        +  if (GTEST_FLAG(print_time)) {
        +    printf(" (%s ms)\n", internal::StreamableToString(
        +           test_info.result()->elapsed_time()).c_str());
        +  } else {
        +    printf("\n");
        +  }
        +  fflush(stdout);
        +}
        +
        +void PrettyUnitTestResultPrinter::OnTestCaseEnd(const TestCase& test_case) {
        +  if (!GTEST_FLAG(print_time)) return;
        +
        +  const std::string counts =
        +      FormatCountableNoun(test_case.test_to_run_count(), "test", "tests");
        +  ColoredPrintf(COLOR_GREEN, "[----------] ");
        +  printf("%s from %s (%s ms total)\n\n",
        +         counts.c_str(), test_case.name(),
        +         internal::StreamableToString(test_case.elapsed_time()).c_str());
        +  fflush(stdout);
        +}
        +
        +void PrettyUnitTestResultPrinter::OnEnvironmentsTearDownStart(
        +    const UnitTest& /*unit_test*/) {
        +  ColoredPrintf(COLOR_GREEN,  "[----------] ");
        +  printf("Global test environment tear-down\n");
        +  fflush(stdout);
        +}
        +
        +// Internal helper for printing the list of failed tests.
        +void PrettyUnitTestResultPrinter::PrintFailedTests(const UnitTest& unit_test) {
        +  const int failed_test_count = unit_test.failed_test_count();
        +  if (failed_test_count == 0) {
        +    return;
        +  }
        +
        +  for (int i = 0; i < unit_test.total_test_case_count(); ++i) {
        +    const TestCase& test_case = *unit_test.GetTestCase(i);
        +    if (!test_case.should_run() || (test_case.failed_test_count() == 0)) {
        +      continue;
        +    }
        +    for (int j = 0; j < test_case.total_test_count(); ++j) {
        +      const TestInfo& test_info = *test_case.GetTestInfo(j);
        +      if (!test_info.should_run() || test_info.result()->Passed()) {
        +        continue;
        +      }
        +      ColoredPrintf(COLOR_RED, "[  FAILED  ] ");
        +      printf("%s.%s", test_case.name(), test_info.name());
        +      PrintFullTestCommentIfPresent(test_info);
        +      printf("\n");
        +    }
        +  }
        +}
        +
        +void PrettyUnitTestResultPrinter::OnTestIterationEnd(const UnitTest& unit_test,
        +                                                     int /*iteration*/) {
        +  ColoredPrintf(COLOR_GREEN,  "[==========] ");
        +  printf("%s from %s ran.",
        +         FormatTestCount(unit_test.test_to_run_count()).c_str(),
        +         FormatTestCaseCount(unit_test.test_case_to_run_count()).c_str());
        +  if (GTEST_FLAG(print_time)) {
        +    printf(" (%s ms total)",
        +           internal::StreamableToString(unit_test.elapsed_time()).c_str());
        +  }
        +  printf("\n");
        +  ColoredPrintf(COLOR_GREEN,  "[  PASSED  ] ");
        +  printf("%s.\n", FormatTestCount(unit_test.successful_test_count()).c_str());
        +
        +  int num_failures = unit_test.failed_test_count();
        +  if (!unit_test.Passed()) {
        +    const int failed_test_count = unit_test.failed_test_count();
        +    ColoredPrintf(COLOR_RED,  "[  FAILED  ] ");
        +    printf("%s, listed below:\n", FormatTestCount(failed_test_count).c_str());
        +    PrintFailedTests(unit_test);
        +    printf("\n%2d FAILED %s\n", num_failures,
        +                        num_failures == 1 ? "TEST" : "TESTS");
        +  }
        +
        +  int num_disabled = unit_test.reportable_disabled_test_count();
        +  if (num_disabled && !GTEST_FLAG(also_run_disabled_tests)) {
        +    if (!num_failures) {
        +      printf("\n");  // Add a spacer if no FAILURE banner is displayed.
        +    }
        +    ColoredPrintf(COLOR_YELLOW,
        +                  "  YOU HAVE %d DISABLED %s\n\n",
        +                  num_disabled,
        +                  num_disabled == 1 ? "TEST" : "TESTS");
        +  }
        +  // Ensure that Google Test output is printed before, e.g., heapchecker output.
        +  fflush(stdout);
        +}
        +
        +// End PrettyUnitTestResultPrinter
        +
        +// class TestEventRepeater
        +//
        +// This class forwards events to other event listeners.
        +class TestEventRepeater : public TestEventListener {
        + public:
        +  TestEventRepeater() : forwarding_enabled_(true) {}
        +  virtual ~TestEventRepeater();
        +  void Append(TestEventListener *listener);
        +  TestEventListener* Release(TestEventListener* listener);
        +
        +  // Controls whether events will be forwarded to listeners_. Set to false
        +  // in death test child processes.
        +  bool forwarding_enabled() const { return forwarding_enabled_; }
        +  void set_forwarding_enabled(bool enable) { forwarding_enabled_ = enable; }
        +
        +  virtual void OnTestProgramStart(const UnitTest& unit_test);
        +  virtual void OnTestIterationStart(const UnitTest& unit_test, int iteration);
        +  virtual void OnEnvironmentsSetUpStart(const UnitTest& unit_test);
        +  virtual void OnEnvironmentsSetUpEnd(const UnitTest& unit_test);
        +  virtual void OnTestCaseStart(const TestCase& test_case);
        +  virtual void OnTestStart(const TestInfo& test_info);
        +  virtual void OnTestPartResult(const TestPartResult& result);
        +  virtual void OnTestEnd(const TestInfo& test_info);
        +  virtual void OnTestCaseEnd(const TestCase& test_case);
        +  virtual void OnEnvironmentsTearDownStart(const UnitTest& unit_test);
        +  virtual void OnEnvironmentsTearDownEnd(const UnitTest& unit_test);
        +  virtual void OnTestIterationEnd(const UnitTest& unit_test, int iteration);
        +  virtual void OnTestProgramEnd(const UnitTest& unit_test);
        +
        + private:
        +  // Controls whether events will be forwarded to listeners_. Set to false
        +  // in death test child processes.
        +  bool forwarding_enabled_;
        +  // The list of listeners that receive events.
        +  std::vector<TestEventListener*> listeners_;
        +
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(TestEventRepeater);
        +};
        +
        +TestEventRepeater::~TestEventRepeater() {
        +  ForEach(listeners_, Delete<TestEventListener>);
        +}
        +
        +void TestEventRepeater::Append(TestEventListener *listener) {
        +  listeners_.push_back(listener);
        +}
        +
        +// TODO(vladl@google.com): Factor the search functionality into Vector::Find.
        +TestEventListener* TestEventRepeater::Release(TestEventListener *listener) {
        +  for (size_t i = 0; i < listeners_.size(); ++i) {
        +    if (listeners_[i] == listener) {
        +      listeners_.erase(listeners_.begin() + i);
        +      return listener;
        +    }
        +  }
        +
        +  return NULL;
        +}
        +
        +// Since most methods are very similar, use macros to reduce boilerplate.
        +// This defines a member that forwards the call to all listeners.
        +#define GTEST_REPEATER_METHOD_(Name, Type) \
        +void TestEventRepeater::Name(const Type& parameter) { \
        +  if (forwarding_enabled_) { \
        +    for (size_t i = 0; i < listeners_.size(); i++) { \
        +      listeners_[i]->Name(parameter); \
        +    } \
        +  } \
        +}
        +// This defines a member that forwards the call to all listeners in reverse
        +// order.
        +#define GTEST_REVERSE_REPEATER_METHOD_(Name, Type) \
        +void TestEventRepeater::Name(const Type& parameter) { \
        +  if (forwarding_enabled_) { \
        +    for (int i = static_cast<int>(listeners_.size()) - 1; i >= 0; i--) { \
        +      listeners_[i]->Name(parameter); \
        +    } \
        +  } \
        +}
        +
        +GTEST_REPEATER_METHOD_(OnTestProgramStart, UnitTest)
        +GTEST_REPEATER_METHOD_(OnEnvironmentsSetUpStart, UnitTest)
        +GTEST_REPEATER_METHOD_(OnTestCaseStart, TestCase)
        +GTEST_REPEATER_METHOD_(OnTestStart, TestInfo)
        +GTEST_REPEATER_METHOD_(OnTestPartResult, TestPartResult)
        +GTEST_REPEATER_METHOD_(OnEnvironmentsTearDownStart, UnitTest)
        +GTEST_REVERSE_REPEATER_METHOD_(OnEnvironmentsSetUpEnd, UnitTest)
        +GTEST_REVERSE_REPEATER_METHOD_(OnEnvironmentsTearDownEnd, UnitTest)
        +GTEST_REVERSE_REPEATER_METHOD_(OnTestEnd, TestInfo)
        +GTEST_REVERSE_REPEATER_METHOD_(OnTestCaseEnd, TestCase)
        +GTEST_REVERSE_REPEATER_METHOD_(OnTestProgramEnd, UnitTest)
        +
        +#undef GTEST_REPEATER_METHOD_
        +#undef GTEST_REVERSE_REPEATER_METHOD_
        +
        +void TestEventRepeater::OnTestIterationStart(const UnitTest& unit_test,
        +                                             int iteration) {
        +  if (forwarding_enabled_) {
        +    for (size_t i = 0; i < listeners_.size(); i++) {
        +      listeners_[i]->OnTestIterationStart(unit_test, iteration);
        +    }
        +  }
        +}
        +
        +void TestEventRepeater::OnTestIterationEnd(const UnitTest& unit_test,
        +                                           int iteration) {
        +  if (forwarding_enabled_) {
        +    for (int i = static_cast<int>(listeners_.size()) - 1; i >= 0; i--) {
        +      listeners_[i]->OnTestIterationEnd(unit_test, iteration);
        +    }
        +  }
        +}
        +
        +// End TestEventRepeater
        +
        +// This class generates an XML output file.
        +class XmlUnitTestResultPrinter : public EmptyTestEventListener {
        + public:
        +  explicit XmlUnitTestResultPrinter(const char* output_file);
        +
        +  virtual void OnTestIterationEnd(const UnitTest& unit_test, int iteration);
        +
        + private:
        +  // Is c a whitespace character that is normalized to a space character
        +  // when it appears in an XML attribute value?
        +  static bool IsNormalizableWhitespace(char c) {
        +    return c == 0x9 || c == 0xA || c == 0xD;
        +  }
        +
        +  // May c appear in a well-formed XML document?
        +  static bool IsValidXmlCharacter(char c) {
        +    return IsNormalizableWhitespace(c) || c >= 0x20;
        +  }
        +
        +  // Returns an XML-escaped copy of the input string str.  If
        +  // is_attribute is true, the text is meant to appear as an attribute
        +  // value, and normalizable whitespace is preserved by replacing it
        +  // with character references.
        +  static std::string EscapeXml(const std::string& str, bool is_attribute);
        +
        +  // Returns the given string with all characters invalid in XML removed.
        +  static std::string RemoveInvalidXmlCharacters(const std::string& str);
        +
        +  // Convenience wrapper around EscapeXml when str is an attribute value.
        +  static std::string EscapeXmlAttribute(const std::string& str) {
        +    return EscapeXml(str, true);
        +  }
        +
        +  // Convenience wrapper around EscapeXml when str is not an attribute value.
        +  static std::string EscapeXmlText(const char* str) {
        +    return EscapeXml(str, false);
        +  }
        +
        +  // Verifies that the given attribute belongs to the given element and
        +  // streams the attribute as XML.
        +  static void OutputXmlAttribute(std::ostream* stream,
        +                                 const std::string& element_name,
        +                                 const std::string& name,
        +                                 const std::string& value);
        +
        +  // Streams an XML CDATA section, escaping invalid CDATA sequences as needed.
        +  static void OutputXmlCDataSection(::std::ostream* stream, const char* data);
        +
        +  // Streams an XML representation of a TestInfo object.
        +  static void OutputXmlTestInfo(::std::ostream* stream,
        +                                const char* test_case_name,
        +                                const TestInfo& test_info);
        +
        +  // Prints an XML representation of a TestCase object
        +  static void PrintXmlTestCase(::std::ostream* stream,
        +                               const TestCase& test_case);
        +
        +  // Prints an XML summary of unit_test to output stream out.
        +  static void PrintXmlUnitTest(::std::ostream* stream,
        +                               const UnitTest& unit_test);
        +
        +  // Produces a string representing the test properties in a result as space
        +  // delimited XML attributes based on the property key="value" pairs.
        +  // When the std::string is not empty, it includes a space at the beginning,
        +  // to delimit this attribute from prior attributes.
        +  static std::string TestPropertiesAsXmlAttributes(const TestResult& result);
        +
        +  // The output file.
        +  const std::string output_file_;
        +
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(XmlUnitTestResultPrinter);
        +};
        +
        +// Creates a new XmlUnitTestResultPrinter.
        +XmlUnitTestResultPrinter::XmlUnitTestResultPrinter(const char* output_file)
        +    : output_file_(output_file) {
        +  if (output_file_.c_str() == NULL || output_file_.empty()) {
        +    fprintf(stderr, "XML output file may not be null\n");
        +    fflush(stderr);
        +    exit(EXIT_FAILURE);
        +  }
        +}
        +
        +// Called after the unit test ends.
        +void XmlUnitTestResultPrinter::OnTestIterationEnd(const UnitTest& unit_test,
        +                                                  int /*iteration*/) {
        +  FILE* xmlout = NULL;
        +  FilePath output_file(output_file_);
        +  FilePath output_dir(output_file.RemoveFileName());
        +
        +  if (output_dir.CreateDirectoriesRecursively()) {
        +    xmlout = posix::FOpen(output_file_.c_str(), "w");
        +  }
        +  if (xmlout == NULL) {
        +    // TODO(wan): report the reason of the failure.
        +    //
        +    // We don't do it for now as:
        +    //
        +    //   1. There is no urgent need for it.
        +    //   2. It's a bit involved to make the errno variable thread-safe on
        +    //      all three operating systems (Linux, Windows, and Mac OS).
        +    //   3. To interpret the meaning of errno in a thread-safe way,
        +    //      we need the strerror_r() function, which is not available on
        +    //      Windows.
        +    fprintf(stderr,
        +            "Unable to open file \"%s\"\n",
        +            output_file_.c_str());
        +    fflush(stderr);
        +    exit(EXIT_FAILURE);
        +  }
        +  std::stringstream stream;
        +  PrintXmlUnitTest(&stream, unit_test);
        +  fprintf(xmlout, "%s", StringStreamToString(&stream).c_str());
        +  fclose(xmlout);
        +}
        +
        +// Returns an XML-escaped copy of the input string str.  If is_attribute
        +// is true, the text is meant to appear as an attribute value, and
        +// normalizable whitespace is preserved by replacing it with character
        +// references.
        +//
        +// Invalid XML characters in str, if any, are stripped from the output.
        +// It is expected that most, if not all, of the text processed by this
        +// module will consist of ordinary English text.
        +// If this module is ever modified to produce version 1.1 XML output,
        +// most invalid characters can be retained using character references.
        +// TODO(wan): It might be nice to have a minimally invasive, human-readable
        +// escaping scheme for invalid characters, rather than dropping them.
        +std::string XmlUnitTestResultPrinter::EscapeXml(
        +    const std::string& str, bool is_attribute) {
        +  Message m;
        +
        +  for (size_t i = 0; i < str.size(); ++i) {
        +    const char ch = str[i];
        +    switch (ch) {
        +      case '<':
        +        m << "&lt;";
        +        break;
        +      case '>':
        +        m << "&gt;";
        +        break;
        +      case '&':
        +        m << "&amp;";
        +        break;
        +      case '\'':
        +        if (is_attribute)
        +          m << "&apos;";
        +        else
        +          m << '\'';
        +        break;
        +      case '"':
        +        if (is_attribute)
        +          m << "&quot;";
        +        else
        +          m << '"';
        +        break;
        +      default:
        +        if (IsValidXmlCharacter(ch)) {
        +          if (is_attribute && IsNormalizableWhitespace(ch))
        +            m << "&#x" << String::FormatByte(static_cast<unsigned char>(ch))
        +              << ";";
        +          else
        +            m << ch;
        +        }
        +        break;
        +    }
        +  }
        +
        +  return m.GetString();
        +}
        +
        +// Returns the given string with all characters invalid in XML removed.
        +// Currently invalid characters are dropped from the string. An
        +// alternative is to replace them with certain characters such as . or ?.
        +std::string XmlUnitTestResultPrinter::RemoveInvalidXmlCharacters(
        +    const std::string& str) {
        +  std::string output;
        +  output.reserve(str.size());
        +  for (std::string::const_iterator it = str.begin(); it != str.end(); ++it)
        +    if (IsValidXmlCharacter(*it))
        +      output.push_back(*it);
        +
        +  return output;
        +}
        +
        +// The following routines generate an XML representation of a UnitTest
        +// object.
        +//
        +// This is how Google Test concepts map to the DTD:
        +//
        +// <testsuites name="AllTests">        <-- corresponds to a UnitTest object
        +//   <testsuite name="testcase-name">  <-- corresponds to a TestCase object
        +//     <testcase name="test-name">     <-- corresponds to a TestInfo object
        +//       <failure message="...">...</failure>
        +//       <failure message="...">...</failure>
        +//       <failure message="...">...</failure>
        +//                                     <-- individual assertion failures
        +//     </testcase>
        +//   </testsuite>
        +// </testsuites>
        +
        +// Formats the given time in milliseconds as seconds.
        +std::string FormatTimeInMillisAsSeconds(TimeInMillis ms) {
        +  ::std::stringstream ss;
        +  ss << (static_cast<double>(ms) * 1e-3);
        +  return ss.str();
        +}
        +
        +static bool PortableLocaltime(time_t seconds, struct tm* out) {
        +#if defined(_MSC_VER)
        +  return localtime_s(out, &seconds) == 0;
        +#elif defined(__MINGW32__) || defined(__MINGW64__)
        +  // MINGW <time.h> provides neither localtime_r nor localtime_s, but uses
        +  // Windows' localtime(), which has a thread-local tm buffer.
        +  struct tm* tm_ptr = localtime(&seconds);  // NOLINT
        +  if (tm_ptr == NULL)
        +    return false;
        +  *out = *tm_ptr;
        +  return true;
        +#else
        +  return localtime_r(&seconds, out) != NULL;
        +#endif
        +}
        +
        +// Converts the given epoch time in milliseconds to a date string in the ISO
        +// 8601 format, without the timezone information.
        +std::string FormatEpochTimeInMillisAsIso8601(TimeInMillis ms) {
        +  struct tm time_struct;
        +  if (!PortableLocaltime(static_cast<time_t>(ms / 1000), &time_struct))
        +    return "";
        +  // YYYY-MM-DDThh:mm:ss
        +  return StreamableToString(time_struct.tm_year + 1900) + "-" +
        +      String::FormatIntWidth2(time_struct.tm_mon + 1) + "-" +
        +      String::FormatIntWidth2(time_struct.tm_mday) + "T" +
        +      String::FormatIntWidth2(time_struct.tm_hour) + ":" +
        +      String::FormatIntWidth2(time_struct.tm_min) + ":" +
        +      String::FormatIntWidth2(time_struct.tm_sec);
        +}
        +
        +// Streams an XML CDATA section, escaping invalid CDATA sequences as needed.
        +void XmlUnitTestResultPrinter::OutputXmlCDataSection(::std::ostream* stream,
        +                                                     const char* data) {
        +  const char* segment = data;
        +  *stream << "<![CDATA[";
        +  for (;;) {
        +    const char* const next_segment = strstr(segment, "]]>");
        +    if (next_segment != NULL) {
        +      stream->write(
        +          segment, static_cast<std::streamsize>(next_segment - segment));
        +      *stream << "]]>]]&gt;<![CDATA[";
        +      segment = next_segment + strlen("]]>");
        +    } else {
        +      *stream << segment;
        +      break;
        +    }
        +  }
        +  *stream << "]]>";
        +}
        +
        +void XmlUnitTestResultPrinter::OutputXmlAttribute(
        +    std::ostream* stream,
        +    const std::string& element_name,
        +    const std::string& name,
        +    const std::string& value) {
        +  const std::vector<std::string>& allowed_names =
        +      GetReservedAttributesForElement(element_name);
        +
        +  GTEST_CHECK_(std::find(allowed_names.begin(), allowed_names.end(), name) !=
        +                   allowed_names.end())
        +      << "Attribute " << name << " is not allowed for element <" << element_name
        +      << ">.";
        +
        +  *stream << " " << name << "=\"" << EscapeXmlAttribute(value) << "\"";
        +}
        +
        +// Prints an XML representation of a TestInfo object.
        +// TODO(wan): There is also value in printing properties with the plain printer.
        +void XmlUnitTestResultPrinter::OutputXmlTestInfo(::std::ostream* stream,
        +                                                 const char* test_case_name,
        +                                                 const TestInfo& test_info) {
        +  const TestResult& result = *test_info.result();
        +  const std::string kTestcase = "testcase";
        +
        +  *stream << "    <testcase";
        +  OutputXmlAttribute(stream, kTestcase, "name", test_info.name());
        +
        +  if (test_info.value_param() != NULL) {
        +    OutputXmlAttribute(stream, kTestcase, "value_param",
        +                       test_info.value_param());
        +  }
        +  if (test_info.type_param() != NULL) {
        +    OutputXmlAttribute(stream, kTestcase, "type_param", test_info.type_param());
        +  }
        +
        +  OutputXmlAttribute(stream, kTestcase, "status",
        +                     test_info.should_run() ? "run" : "notrun");
        +  OutputXmlAttribute(stream, kTestcase, "time",
        +                     FormatTimeInMillisAsSeconds(result.elapsed_time()));
        +  OutputXmlAttribute(stream, kTestcase, "classname", test_case_name);
        +  *stream << TestPropertiesAsXmlAttributes(result);
        +
        +  int failures = 0;
        +  for (int i = 0; i < result.total_part_count(); ++i) {
        +    const TestPartResult& part = result.GetTestPartResult(i);
        +    if (part.failed()) {
        +      if (++failures == 1) {
        +        *stream << ">\n";
        +      }
        +      const string location = internal::FormatCompilerIndependentFileLocation(
        +          part.file_name(), part.line_number());
        +      const string summary = location + "\n" + part.summary();
        +      *stream << "      <failure message=\""
        +              << EscapeXmlAttribute(summary.c_str())
        +              << "\" type=\"\">";
        +      const string detail = location + "\n" + part.message();
        +      OutputXmlCDataSection(stream, RemoveInvalidXmlCharacters(detail).c_str());
        +      *stream << "</failure>\n";
        +    }
        +  }
        +
        +  if (failures == 0)
        +    *stream << " />\n";
        +  else
        +    *stream << "    </testcase>\n";
        +}
        +
        +// Prints an XML representation of a TestCase object
        +void XmlUnitTestResultPrinter::PrintXmlTestCase(std::ostream* stream,
        +                                                const TestCase& test_case) {
        +  const std::string kTestsuite = "testsuite";
        +  *stream << "  <" << kTestsuite;
        +  OutputXmlAttribute(stream, kTestsuite, "name", test_case.name());
        +  OutputXmlAttribute(stream, kTestsuite, "tests",
        +                     StreamableToString(test_case.reportable_test_count()));
        +  OutputXmlAttribute(stream, kTestsuite, "failures",
        +                     StreamableToString(test_case.failed_test_count()));
        +  OutputXmlAttribute(
        +      stream, kTestsuite, "disabled",
        +      StreamableToString(test_case.reportable_disabled_test_count()));
        +  OutputXmlAttribute(stream, kTestsuite, "errors", "0");
        +  OutputXmlAttribute(stream, kTestsuite, "time",
        +                     FormatTimeInMillisAsSeconds(test_case.elapsed_time()));
        +  *stream << TestPropertiesAsXmlAttributes(test_case.ad_hoc_test_result())
        +          << ">\n";
        +
        +  for (int i = 0; i < test_case.total_test_count(); ++i) {
        +    if (test_case.GetTestInfo(i)->is_reportable())
        +      OutputXmlTestInfo(stream, test_case.name(), *test_case.GetTestInfo(i));
        +  }
        +  *stream << "  </" << kTestsuite << ">\n";
        +}
        +
        +// Prints an XML summary of unit_test to output stream out.
        +void XmlUnitTestResultPrinter::PrintXmlUnitTest(std::ostream* stream,
        +                                                const UnitTest& unit_test) {
        +  const std::string kTestsuites = "testsuites";
        +
        +  *stream << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
        +  *stream << "<" << kTestsuites;
        +
        +  OutputXmlAttribute(stream, kTestsuites, "tests",
        +                     StreamableToString(unit_test.reportable_test_count()));
        +  OutputXmlAttribute(stream, kTestsuites, "failures",
        +                     StreamableToString(unit_test.failed_test_count()));
        +  OutputXmlAttribute(
        +      stream, kTestsuites, "disabled",
        +      StreamableToString(unit_test.reportable_disabled_test_count()));
        +  OutputXmlAttribute(stream, kTestsuites, "errors", "0");
        +  OutputXmlAttribute(
        +      stream, kTestsuites, "timestamp",
        +      FormatEpochTimeInMillisAsIso8601(unit_test.start_timestamp()));
        +  OutputXmlAttribute(stream, kTestsuites, "time",
        +                     FormatTimeInMillisAsSeconds(unit_test.elapsed_time()));
        +
        +  if (GTEST_FLAG(shuffle)) {
        +    OutputXmlAttribute(stream, kTestsuites, "random_seed",
        +                       StreamableToString(unit_test.random_seed()));
        +  }
        +
        +  *stream << TestPropertiesAsXmlAttributes(unit_test.ad_hoc_test_result());
        +
        +  OutputXmlAttribute(stream, kTestsuites, "name", "AllTests");
        +  *stream << ">\n";
        +
        +  for (int i = 0; i < unit_test.total_test_case_count(); ++i) {
        +    if (unit_test.GetTestCase(i)->reportable_test_count() > 0)
        +      PrintXmlTestCase(stream, *unit_test.GetTestCase(i));
        +  }
        +  *stream << "</" << kTestsuites << ">\n";
        +}
        +
        +// Produces a string representing the test properties in a result as space
        +// delimited XML attributes based on the property key="value" pairs.
        +std::string XmlUnitTestResultPrinter::TestPropertiesAsXmlAttributes(
        +    const TestResult& result) {
        +  Message attributes;
        +  for (int i = 0; i < result.test_property_count(); ++i) {
        +    const TestProperty& property = result.GetTestProperty(i);
        +    attributes << " " << property.key() << "="
        +        << "\"" << EscapeXmlAttribute(property.value()) << "\"";
        +  }
        +  return attributes.GetString();
        +}
        +
        +// End XmlUnitTestResultPrinter
        +
        +#if GTEST_CAN_STREAM_RESULTS_
        +
        +// Checks if str contains '=', '&', '%' or '\n' characters. If yes,
        +// replaces them by "%xx" where xx is their hexadecimal value. For
        +// example, replaces "=" with "%3D".  This algorithm is O(strlen(str))
        +// in both time and space -- important as the input str may contain an
        +// arbitrarily long test failure message and stack trace.
        +string StreamingListener::UrlEncode(const char* str) {
        +  string result;
        +  result.reserve(strlen(str) + 1);
        +  for (char ch = *str; ch != '\0'; ch = *++str) {
        +    switch (ch) {
        +      case '%':
        +      case '=':
        +      case '&':
        +      case '\n':
        +        result.append("%" + String::FormatByte(static_cast<unsigned char>(ch)));
        +        break;
        +      default:
        +        result.push_back(ch);
        +        break;
        +    }
        +  }
        +  return result;
        +}
        +
        +void StreamingListener::SocketWriter::MakeConnection() {
        +  GTEST_CHECK_(sockfd_ == -1)
        +      << "MakeConnection() can't be called when there is already a connection.";
        +
        +  addrinfo hints;
        +  memset(&hints, 0, sizeof(hints));
        +  hints.ai_family = AF_UNSPEC;    // To allow both IPv4 and IPv6 addresses.
        +  hints.ai_socktype = SOCK_STREAM;
        +  addrinfo* servinfo = NULL;
        +
        +  // Use the getaddrinfo() to get a linked list of IP addresses for
        +  // the given host name.
        +  const int error_num = getaddrinfo(
        +      host_name_.c_str(), port_num_.c_str(), &hints, &servinfo);
        +  if (error_num != 0) {
        +    GTEST_LOG_(WARNING) << "stream_result_to: getaddrinfo() failed: "
        +                        << gai_strerror(error_num);
        +  }
        +
        +  // Loop through all the results and connect to the first we can.
        +  for (addrinfo* cur_addr = servinfo; sockfd_ == -1 && cur_addr != NULL;
        +       cur_addr = cur_addr->ai_next) {
        +    sockfd_ = socket(
        +        cur_addr->ai_family, cur_addr->ai_socktype, cur_addr->ai_protocol);
        +    if (sockfd_ != -1) {
        +      // Connect the client socket to the server socket.
        +      if (connect(sockfd_, cur_addr->ai_addr, cur_addr->ai_addrlen) == -1) {
        +        close(sockfd_);
        +        sockfd_ = -1;
        +      }
        +    }
        +  }
        +
        +  freeaddrinfo(servinfo);  // all done with this structure
        +
        +  if (sockfd_ == -1) {
        +    GTEST_LOG_(WARNING) << "stream_result_to: failed to connect to "
        +                        << host_name_ << ":" << port_num_;
        +  }
        +}
        +
        +// End of class Streaming Listener
        +#endif  // GTEST_CAN_STREAM_RESULTS__
        +
        +// Class ScopedTrace
        +
        +// Pushes the given source file location and message onto a per-thread
        +// trace stack maintained by Google Test.
        +ScopedTrace::ScopedTrace(const char* file, int line, const Message& message)
        +    GTEST_LOCK_EXCLUDED_(&UnitTest::mutex_) {
        +  TraceInfo trace;
        +  trace.file = file;
        +  trace.line = line;
        +  trace.message = message.GetString();
        +
        +  UnitTest::GetInstance()->PushGTestTrace(trace);
        +}
        +
        +// Pops the info pushed by the c'tor.
        +ScopedTrace::~ScopedTrace()
        +    GTEST_LOCK_EXCLUDED_(&UnitTest::mutex_) {
        +  UnitTest::GetInstance()->PopGTestTrace();
        +}
        +
        +
        +// class OsStackTraceGetter
        +
        +const char* const OsStackTraceGetterInterface::kElidedFramesMarker =
        +    "... " GTEST_NAME_ " internal frames ...";
        +
        +string OsStackTraceGetter::CurrentStackTrace(int /*max_depth*/,
        +                                             int /*skip_count*/) {
        +  return "";
        +}
        +
        +void OsStackTraceGetter::UponLeavingGTest() {}
        +
        +// A helper class that creates the premature-exit file in its
        +// constructor and deletes the file in its destructor.
        +class ScopedPrematureExitFile {
        + public:
        +  explicit ScopedPrematureExitFile(const char* premature_exit_filepath)
        +      : premature_exit_filepath_(premature_exit_filepath) {
        +    // If a path to the premature-exit file is specified...
        +    if (premature_exit_filepath != NULL && *premature_exit_filepath != '\0') {
        +      // create the file with a single "0" character in it.  I/O
        +      // errors are ignored as there's nothing better we can do and we
        +      // don't want to fail the test because of this.
        +      FILE* pfile = posix::FOpen(premature_exit_filepath, "w");
        +      fwrite("0", 1, 1, pfile);
        +      fclose(pfile);
        +    }
        +  }
        +
        +  ~ScopedPrematureExitFile() {
        +    if (premature_exit_filepath_ != NULL && *premature_exit_filepath_ != '\0') {
        +      remove(premature_exit_filepath_);
        +    }
        +  }
        +
        + private:
        +  const char* const premature_exit_filepath_;
        +
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(ScopedPrematureExitFile);
        +};
        +
        +}  // namespace internal
        +
        +// class TestEventListeners
        +
        +TestEventListeners::TestEventListeners()
        +    : repeater_(new internal::TestEventRepeater()),
        +      default_result_printer_(NULL),
        +      default_xml_generator_(NULL) {
        +}
        +
        +TestEventListeners::~TestEventListeners() { delete repeater_; }
        +
        +// Returns the standard listener responsible for the default console
        +// output.  Can be removed from the listeners list to shut down default
        +// console output.  Note that removing this object from the listener list
        +// with Release transfers its ownership to the user.
        +void TestEventListeners::Append(TestEventListener* listener) {
        +  repeater_->Append(listener);
        +}
        +
        +// Removes the given event listener from the list and returns it.  It then
        +// becomes the caller's responsibility to delete the listener. Returns
        +// NULL if the listener is not found in the list.
        +TestEventListener* TestEventListeners::Release(TestEventListener* listener) {
        +  if (listener == default_result_printer_)
        +    default_result_printer_ = NULL;
        +  else if (listener == default_xml_generator_)
        +    default_xml_generator_ = NULL;
        +  return repeater_->Release(listener);
        +}
        +
        +// Returns repeater that broadcasts the TestEventListener events to all
        +// subscribers.
        +TestEventListener* TestEventListeners::repeater() { return repeater_; }
        +
        +// Sets the default_result_printer attribute to the provided listener.
        +// The listener is also added to the listener list and previous
        +// default_result_printer is removed from it and deleted. The listener can
        +// also be NULL in which case it will not be added to the list. Does
        +// nothing if the previous and the current listener objects are the same.
        +void TestEventListeners::SetDefaultResultPrinter(TestEventListener* listener) {
        +  if (default_result_printer_ != listener) {
        +    // It is an error to pass this method a listener that is already in the
        +    // list.
        +    delete Release(default_result_printer_);
        +    default_result_printer_ = listener;
        +    if (listener != NULL)
        +      Append(listener);
        +  }
        +}
        +
        +// Sets the default_xml_generator attribute to the provided listener.  The
        +// listener is also added to the listener list and previous
        +// default_xml_generator is removed from it and deleted. The listener can
        +// also be NULL in which case it will not be added to the list. Does
        +// nothing if the previous and the current listener objects are the same.
        +void TestEventListeners::SetDefaultXmlGenerator(TestEventListener* listener) {
        +  if (default_xml_generator_ != listener) {
        +    // It is an error to pass this method a listener that is already in the
        +    // list.
        +    delete Release(default_xml_generator_);
        +    default_xml_generator_ = listener;
        +    if (listener != NULL)
        +      Append(listener);
        +  }
        +}
        +
        +// Controls whether events will be forwarded by the repeater to the
        +// listeners in the list.
        +bool TestEventListeners::EventForwardingEnabled() const {
        +  return repeater_->forwarding_enabled();
        +}
        +
        +void TestEventListeners::SuppressEventForwarding() {
        +  repeater_->set_forwarding_enabled(false);
        +}
        +
        +// class UnitTest
        +
        +// Gets the singleton UnitTest object.  The first time this method is
        +// called, a UnitTest object is constructed and returned.  Consecutive
        +// calls will return the same object.
        +//
        +// We don't protect this under mutex_ as a user is not supposed to
        +// call this before main() starts, from which point on the return
        +// value will never change.
        +UnitTest* UnitTest::GetInstance() {
        +  // When compiled with MSVC 7.1 in optimized mode, destroying the
        +  // UnitTest object upon exiting the program messes up the exit code,
        +  // causing successful tests to appear failed.  We have to use a
        +  // different implementation in this case to bypass the compiler bug.
        +  // This implementation makes the compiler happy, at the cost of
        +  // leaking the UnitTest object.
        +
        +  // CodeGear C++Builder insists on a public destructor for the
        +  // default implementation.  Use this implementation to keep good OO
        +  // design with private destructor.
        +
        +#if (_MSC_VER == 1310 && !defined(_DEBUG)) || defined(__BORLANDC__)
        +  static UnitTest* const instance = new UnitTest;
        +  return instance;
        +#else
        +  static UnitTest instance;
        +  return &instance;
        +#endif  // (_MSC_VER == 1310 && !defined(_DEBUG)) || defined(__BORLANDC__)
        +}
        +
        +// Gets the number of successful test cases.
        +int UnitTest::successful_test_case_count() const {
        +  return impl()->successful_test_case_count();
        +}
        +
        +// Gets the number of failed test cases.
        +int UnitTest::failed_test_case_count() const {
        +  return impl()->failed_test_case_count();
        +}
        +
        +// Gets the number of all test cases.
        +int UnitTest::total_test_case_count() const {
        +  return impl()->total_test_case_count();
        +}
        +
        +// Gets the number of all test cases that contain at least one test
        +// that should run.
        +int UnitTest::test_case_to_run_count() const {
        +  return impl()->test_case_to_run_count();
        +}
        +
        +// Gets the number of successful tests.
        +int UnitTest::successful_test_count() const {
        +  return impl()->successful_test_count();
        +}
        +
        +// Gets the number of failed tests.
        +int UnitTest::failed_test_count() const { return impl()->failed_test_count(); }
        +
        +// Gets the number of disabled tests that will be reported in the XML report.
        +int UnitTest::reportable_disabled_test_count() const {
        +  return impl()->reportable_disabled_test_count();
        +}
        +
        +// Gets the number of disabled tests.
        +int UnitTest::disabled_test_count() const {
        +  return impl()->disabled_test_count();
        +}
        +
        +// Gets the number of tests to be printed in the XML report.
        +int UnitTest::reportable_test_count() const {
        +  return impl()->reportable_test_count();
        +}
        +
        +// Gets the number of all tests.
        +int UnitTest::total_test_count() const { return impl()->total_test_count(); }
        +
        +// Gets the number of tests that should run.
        +int UnitTest::test_to_run_count() const { return impl()->test_to_run_count(); }
        +
        +// Gets the time of the test program start, in ms from the start of the
        +// UNIX epoch.
        +internal::TimeInMillis UnitTest::start_timestamp() const {
        +    return impl()->start_timestamp();
        +}
        +
        +// Gets the elapsed time, in milliseconds.
        +internal::TimeInMillis UnitTest::elapsed_time() const {
        +  return impl()->elapsed_time();
        +}
        +
        +// Returns true iff the unit test passed (i.e. all test cases passed).
        +bool UnitTest::Passed() const { return impl()->Passed(); }
        +
        +// Returns true iff the unit test failed (i.e. some test case failed
        +// or something outside of all tests failed).
        +bool UnitTest::Failed() const { return impl()->Failed(); }
        +
        +// Gets the i-th test case among all the test cases. i can range from 0 to
        +// total_test_case_count() - 1. If i is not in that range, returns NULL.
        +const TestCase* UnitTest::GetTestCase(int i) const {
        +  return impl()->GetTestCase(i);
        +}
        +
        +// Returns the TestResult containing information on test failures and
        +// properties logged outside of individual test cases.
        +const TestResult& UnitTest::ad_hoc_test_result() const {
        +  return *impl()->ad_hoc_test_result();
        +}
        +
        +// Gets the i-th test case among all the test cases. i can range from 0 to
        +// total_test_case_count() - 1. If i is not in that range, returns NULL.
        +TestCase* UnitTest::GetMutableTestCase(int i) {
        +  return impl()->GetMutableTestCase(i);
        +}
        +
        +// Returns the list of event listeners that can be used to track events
        +// inside Google Test.
        +TestEventListeners& UnitTest::listeners() {
        +  return *impl()->listeners();
        +}
        +
        +// Registers and returns a global test environment.  When a test
        +// program is run, all global test environments will be set-up in the
        +// order they were registered.  After all tests in the program have
        +// finished, all global test environments will be torn-down in the
        +// *reverse* order they were registered.
        +//
        +// The UnitTest object takes ownership of the given environment.
        +//
        +// We don't protect this under mutex_, as we only support calling it
        +// from the main thread.
        +Environment* UnitTest::AddEnvironment(Environment* env) {
        +  if (env == NULL) {
        +    return NULL;
        +  }
        +
        +  impl_->environments().push_back(env);
        +  return env;
        +}
        +
        +// Adds a TestPartResult to the current TestResult object.  All Google Test
        +// assertion macros (e.g. ASSERT_TRUE, EXPECT_EQ, etc) eventually call
        +// this to report their results.  The user code should use the
        +// assertion macros instead of calling this directly.
        +void UnitTest::AddTestPartResult(
        +    TestPartResult::Type result_type,
        +    const char* file_name,
        +    int line_number,
        +    const std::string& message,
        +    const std::string& os_stack_trace) GTEST_LOCK_EXCLUDED_(mutex_) {
        +  Message msg;
        +  msg << message;
        +
        +  internal::MutexLock lock(&mutex_);
        +  if (impl_->gtest_trace_stack().size() > 0) {
        +    msg << "\n" << GTEST_NAME_ << " trace:";
        +
        +    for (int i = static_cast<int>(impl_->gtest_trace_stack().size());
        +         i > 0; --i) {
        +      const internal::TraceInfo& trace = impl_->gtest_trace_stack()[i - 1];
        +      msg << "\n" << internal::FormatFileLocation(trace.file, trace.line)
        +          << " " << trace.message;
        +    }
        +  }
        +
        +  if (os_stack_trace.c_str() != NULL && !os_stack_trace.empty()) {
        +    msg << internal::kStackTraceMarker << os_stack_trace;
        +  }
        +
        +  const TestPartResult result =
        +    TestPartResult(result_type, file_name, line_number,
        +                   msg.GetString().c_str());
        +  impl_->GetTestPartResultReporterForCurrentThread()->
        +      ReportTestPartResult(result);
        +
        +  if (result_type != TestPartResult::kSuccess) {
        +    // gtest_break_on_failure takes precedence over
        +    // gtest_throw_on_failure.  This allows a user to set the latter
        +    // in the code (perhaps in order to use Google Test assertions
        +    // with another testing framework) and specify the former on the
        +    // command line for debugging.
        +    if (GTEST_FLAG(break_on_failure)) {
        +#if GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_PHONE && !GTEST_OS_WINDOWS_RT
        +      // Using DebugBreak on Windows allows gtest to still break into a debugger
        +      // when a failure happens and both the --gtest_break_on_failure and
        +      // the --gtest_catch_exceptions flags are specified.
        +      DebugBreak();
        +#else
        +      // Dereference NULL through a volatile pointer to prevent the compiler
        +      // from removing. We use this rather than abort() or __builtin_trap() for
        +      // portability: Symbian doesn't implement abort() well, and some debuggers
        +      // don't correctly trap abort().
        +      *static_cast<volatile int*>(NULL) = 1;
        +#endif  // GTEST_OS_WINDOWS
        +    } else if (GTEST_FLAG(throw_on_failure)) {
        +#if GTEST_HAS_EXCEPTIONS
        +      throw internal::GoogleTestFailureException(result);
        +#else
        +      // We cannot call abort() as it generates a pop-up in debug mode
        +      // that cannot be suppressed in VC 7.1 or below.
        +      exit(1);
        +#endif
        +    }
        +  }
        +}
        +
        +// Adds a TestProperty to the current TestResult object when invoked from
        +// inside a test, to current TestCase's ad_hoc_test_result_ when invoked
        +// from SetUpTestCase or TearDownTestCase, or to the global property set
        +// when invoked elsewhere.  If the result already contains a property with
        +// the same key, the value will be updated.
        +void UnitTest::RecordProperty(const std::string& key,
        +                              const std::string& value) {
        +  impl_->RecordProperty(TestProperty(key, value));
        +}
        +
        +// Runs all tests in this UnitTest object and prints the result.
        +// Returns 0 if successful, or 1 otherwise.
        +//
        +// We don't protect this under mutex_, as we only support calling it
        +// from the main thread.
        +int UnitTest::Run() {
        +  const bool in_death_test_child_process =
        +      internal::GTEST_FLAG(internal_run_death_test).length() > 0;
        +
        +  // Google Test implements this protocol for catching that a test
        +  // program exits before returning control to Google Test:
        +  //
        +  //   1. Upon start, Google Test creates a file whose absolute path
        +  //      is specified by the environment variable
        +  //      TEST_PREMATURE_EXIT_FILE.
        +  //   2. When Google Test has finished its work, it deletes the file.
        +  //
        +  // This allows a test runner to set TEST_PREMATURE_EXIT_FILE before
        +  // running a Google-Test-based test program and check the existence
        +  // of the file at the end of the test execution to see if it has
        +  // exited prematurely.
        +
        +  // If we are in the child process of a death test, don't
        +  // create/delete the premature exit file, as doing so is unnecessary
        +  // and will confuse the parent process.  Otherwise, create/delete
        +  // the file upon entering/leaving this function.  If the program
        +  // somehow exits before this function has a chance to return, the
        +  // premature-exit file will be left undeleted, causing a test runner
        +  // that understands the premature-exit-file protocol to report the
        +  // test as having failed.
        +  const internal::ScopedPrematureExitFile premature_exit_file(
        +      in_death_test_child_process ?
        +      NULL : internal::posix::GetEnv("TEST_PREMATURE_EXIT_FILE"));
        +
        +  // Captures the value of GTEST_FLAG(catch_exceptions).  This value will be
        +  // used for the duration of the program.
        +  impl()->set_catch_exceptions(GTEST_FLAG(catch_exceptions));
        +
        +#if GTEST_HAS_SEH
        +  // Either the user wants Google Test to catch exceptions thrown by the
        +  // tests or this is executing in the context of death test child
        +  // process. In either case the user does not want to see pop-up dialogs
        +  // about crashes - they are expected.
        +  if (impl()->catch_exceptions() || in_death_test_child_process) {
        +# if !GTEST_OS_WINDOWS_MOBILE && !GTEST_OS_WINDOWS_PHONE && !GTEST_OS_WINDOWS_RT
        +    // SetErrorMode doesn't exist on CE.
        +    SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOALIGNMENTFAULTEXCEPT |
        +                 SEM_NOGPFAULTERRORBOX | SEM_NOOPENFILEERRORBOX);
        +# endif  // !GTEST_OS_WINDOWS_MOBILE
        +
        +# if (defined(_MSC_VER) || GTEST_OS_WINDOWS_MINGW) && !GTEST_OS_WINDOWS_MOBILE
        +    // Death test children can be terminated with _abort().  On Windows,
        +    // _abort() can show a dialog with a warning message.  This forces the
        +    // abort message to go to stderr instead.
        +    _set_error_mode(_OUT_TO_STDERR);
        +# endif
        +
        +# if _MSC_VER >= 1400 && !GTEST_OS_WINDOWS_MOBILE
        +    // In the debug version, Visual Studio pops up a separate dialog
        +    // offering a choice to debug the aborted program. We need to suppress
        +    // this dialog or it will pop up for every EXPECT/ASSERT_DEATH statement
        +    // executed. Google Test will notify the user of any unexpected
        +    // failure via stderr.
        +    //
        +    // VC++ doesn't define _set_abort_behavior() prior to the version 8.0.
        +    // Users of prior VC versions shall suffer the agony and pain of
        +    // clicking through the countless debug dialogs.
        +    // TODO(vladl@google.com): find a way to suppress the abort dialog() in the
        +    // debug mode when compiled with VC 7.1 or lower.
        +    if (!GTEST_FLAG(break_on_failure))
        +      _set_abort_behavior(
        +          0x0,                                    // Clear the following flags:
        +          _WRITE_ABORT_MSG | _CALL_REPORTFAULT);  // pop-up window, core dump.
        +# endif
        +  }
        +#endif  // GTEST_HAS_SEH
        +
        +  return internal::HandleExceptionsInMethodIfSupported(
        +      impl(),
        +      &internal::UnitTestImpl::RunAllTests,
        +      "auxiliary test code (environments or event listeners)") ? 0 : 1;
        +}
        +
        +// Returns the working directory when the first TEST() or TEST_F() was
        +// executed.
        +const char* UnitTest::original_working_dir() const {
        +  return impl_->original_working_dir_.c_str();
        +}
        +
        +// Returns the TestCase object for the test that's currently running,
        +// or NULL if no test is running.
        +const TestCase* UnitTest::current_test_case() const
        +    GTEST_LOCK_EXCLUDED_(mutex_) {
        +  internal::MutexLock lock(&mutex_);
        +  return impl_->current_test_case();
        +}
        +
        +// Returns the TestInfo object for the test that's currently running,
        +// or NULL if no test is running.
        +const TestInfo* UnitTest::current_test_info() const
        +    GTEST_LOCK_EXCLUDED_(mutex_) {
        +  internal::MutexLock lock(&mutex_);
        +  return impl_->current_test_info();
        +}
        +
        +// Returns the random seed used at the start of the current test run.
        +int UnitTest::random_seed() const { return impl_->random_seed(); }
        +
        +#if GTEST_HAS_PARAM_TEST
        +// Returns ParameterizedTestCaseRegistry object used to keep track of
        +// value-parameterized tests and instantiate and register them.
        +internal::ParameterizedTestCaseRegistry&
        +    UnitTest::parameterized_test_registry()
        +        GTEST_LOCK_EXCLUDED_(mutex_) {
        +  return impl_->parameterized_test_registry();
        +}
        +#endif  // GTEST_HAS_PARAM_TEST
        +
        +// Creates an empty UnitTest.
        +UnitTest::UnitTest() {
        +  impl_ = new internal::UnitTestImpl(this);
        +}
        +
        +// Destructor of UnitTest.
        +UnitTest::~UnitTest() {
        +  delete impl_;
        +}
        +
        +// Pushes a trace defined by SCOPED_TRACE() on to the per-thread
        +// Google Test trace stack.
        +void UnitTest::PushGTestTrace(const internal::TraceInfo& trace)
        +    GTEST_LOCK_EXCLUDED_(mutex_) {
        +  internal::MutexLock lock(&mutex_);
        +  impl_->gtest_trace_stack().push_back(trace);
        +}
        +
        +// Pops a trace from the per-thread Google Test trace stack.
        +void UnitTest::PopGTestTrace()
        +    GTEST_LOCK_EXCLUDED_(mutex_) {
        +  internal::MutexLock lock(&mutex_);
        +  impl_->gtest_trace_stack().pop_back();
        +}
        +
        +namespace internal {
        +
        +UnitTestImpl::UnitTestImpl(UnitTest* parent)
        +    : parent_(parent),
        +      GTEST_DISABLE_MSC_WARNINGS_PUSH_(4355 /* using this in initializer */)
        +      default_global_test_part_result_reporter_(this),
        +      default_per_thread_test_part_result_reporter_(this),
        +      GTEST_DISABLE_MSC_WARNINGS_POP_()
        +      global_test_part_result_repoter_(
        +          &default_global_test_part_result_reporter_),
        +      per_thread_test_part_result_reporter_(
        +          &default_per_thread_test_part_result_reporter_),
        +#if GTEST_HAS_PARAM_TEST
        +      parameterized_test_registry_(),
        +      parameterized_tests_registered_(false),
        +#endif  // GTEST_HAS_PARAM_TEST
        +      last_death_test_case_(-1),
        +      current_test_case_(NULL),
        +      current_test_info_(NULL),
        +      ad_hoc_test_result_(),
        +      os_stack_trace_getter_(NULL),
        +      post_flag_parse_init_performed_(false),
        +      random_seed_(0),  // Will be overridden by the flag before first use.
        +      random_(0),  // Will be reseeded before first use.
        +      start_timestamp_(0),
        +      elapsed_time_(0),
        +#if GTEST_HAS_DEATH_TEST
        +      death_test_factory_(new DefaultDeathTestFactory),
        +#endif
        +      // Will be overridden by the flag before first use.
        +      catch_exceptions_(false) {
        +  listeners()->SetDefaultResultPrinter(new PrettyUnitTestResultPrinter);
        +}
        +
        +UnitTestImpl::~UnitTestImpl() {
        +  // Deletes every TestCase.
        +  ForEach(test_cases_, internal::Delete<TestCase>);
        +
        +  // Deletes every Environment.
        +  ForEach(environments_, internal::Delete<Environment>);
        +
        +  delete os_stack_trace_getter_;
        +}
        +
        +// Adds a TestProperty to the current TestResult object when invoked in a
        +// context of a test, to current test case's ad_hoc_test_result when invoke
        +// from SetUpTestCase/TearDownTestCase, or to the global property set
        +// otherwise.  If the result already contains a property with the same key,
        +// the value will be updated.
        +void UnitTestImpl::RecordProperty(const TestProperty& test_property) {
        +  std::string xml_element;
        +  TestResult* test_result;  // TestResult appropriate for property recording.
        +
        +  if (current_test_info_ != NULL) {
        +    xml_element = "testcase";
        +    test_result = &(current_test_info_->result_);
        +  } else if (current_test_case_ != NULL) {
        +    xml_element = "testsuite";
        +    test_result = &(current_test_case_->ad_hoc_test_result_);
        +  } else {
        +    xml_element = "testsuites";
        +    test_result = &ad_hoc_test_result_;
        +  }
        +  test_result->RecordProperty(xml_element, test_property);
        +}
        +
        +#if GTEST_HAS_DEATH_TEST
        +// Disables event forwarding if the control is currently in a death test
        +// subprocess. Must not be called before InitGoogleTest.
        +void UnitTestImpl::SuppressTestEventsIfInSubprocess() {
        +  if (internal_run_death_test_flag_.get() != NULL)
        +    listeners()->SuppressEventForwarding();
        +}
        +#endif  // GTEST_HAS_DEATH_TEST
        +
        +// Initializes event listeners performing XML output as specified by
        +// UnitTestOptions. Must not be called before InitGoogleTest.
        +void UnitTestImpl::ConfigureXmlOutput() {
        +  const std::string& output_format = UnitTestOptions::GetOutputFormat();
        +  if (output_format == "xml") {
        +    listeners()->SetDefaultXmlGenerator(new XmlUnitTestResultPrinter(
        +        UnitTestOptions::GetAbsolutePathToOutputFile().c_str()));
        +  } else if (output_format != "") {
        +    printf("WARNING: unrecognized output format \"%s\" ignored.\n",
        +           output_format.c_str());
        +    fflush(stdout);
        +  }
        +}
        +
        +#if GTEST_CAN_STREAM_RESULTS_
        +// Initializes event listeners for streaming test results in string form.
        +// Must not be called before InitGoogleTest.
        +void UnitTestImpl::ConfigureStreamingOutput() {
        +  const std::string& target = GTEST_FLAG(stream_result_to);
        +  if (!target.empty()) {
        +    const size_t pos = target.find(':');
        +    if (pos != std::string::npos) {
        +      listeners()->Append(new StreamingListener(target.substr(0, pos),
        +                                                target.substr(pos+1)));
        +    } else {
        +      printf("WARNING: unrecognized streaming target \"%s\" ignored.\n",
        +             target.c_str());
        +      fflush(stdout);
        +    }
        +  }
        +}
        +#endif  // GTEST_CAN_STREAM_RESULTS_
        +
        +// Performs initialization dependent upon flag values obtained in
        +// ParseGoogleTestFlagsOnly.  Is called from InitGoogleTest after the call to
        +// ParseGoogleTestFlagsOnly.  In case a user neglects to call InitGoogleTest
        +// this function is also called from RunAllTests.  Since this function can be
        +// called more than once, it has to be idempotent.
        +void UnitTestImpl::PostFlagParsingInit() {
        +  // Ensures that this function does not execute more than once.
        +  if (!post_flag_parse_init_performed_) {
        +    post_flag_parse_init_performed_ = true;
        +
        +#if defined(GTEST_CUSTOM_TEST_EVENT_LISTENER_)
        +    // Register to send notifications about key process state changes.
        +    listeners()->Append(new GTEST_CUSTOM_TEST_EVENT_LISTENER_());
        +#endif  // defined(GTEST_CUSTOM_TEST_EVENT_LISTENER_)
        +
        +#if GTEST_HAS_DEATH_TEST
        +    InitDeathTestSubprocessControlInfo();
        +    SuppressTestEventsIfInSubprocess();
        +#endif  // GTEST_HAS_DEATH_TEST
        +
        +    // Registers parameterized tests. This makes parameterized tests
        +    // available to the UnitTest reflection API without running
        +    // RUN_ALL_TESTS.
        +    RegisterParameterizedTests();
        +
        +    // Configures listeners for XML output. This makes it possible for users
        +    // to shut down the default XML output before invoking RUN_ALL_TESTS.
        +    ConfigureXmlOutput();
        +
        +#if GTEST_CAN_STREAM_RESULTS_
        +    // Configures listeners for streaming test results to the specified server.
        +    ConfigureStreamingOutput();
        +#endif  // GTEST_CAN_STREAM_RESULTS_
        +  }
        +}
        +
        +// A predicate that checks the name of a TestCase against a known
        +// value.
        +//
        +// This is used for implementation of the UnitTest class only.  We put
        +// it in the anonymous namespace to prevent polluting the outer
        +// namespace.
        +//
        +// TestCaseNameIs is copyable.
        +class TestCaseNameIs {
        + public:
        +  // Constructor.
        +  explicit TestCaseNameIs(const std::string& name)
        +      : name_(name) {}
        +
        +  // Returns true iff the name of test_case matches name_.
        +  bool operator()(const TestCase* test_case) const {
        +    return test_case != NULL && strcmp(test_case->name(), name_.c_str()) == 0;
        +  }
        +
        + private:
        +  std::string name_;
        +};
        +
        +// Finds and returns a TestCase with the given name.  If one doesn't
        +// exist, creates one and returns it.  It's the CALLER'S
        +// RESPONSIBILITY to ensure that this function is only called WHEN THE
        +// TESTS ARE NOT SHUFFLED.
        +//
        +// Arguments:
        +//
        +//   test_case_name: name of the test case
        +//   type_param:     the name of the test case's type parameter, or NULL if
        +//                   this is not a typed or a type-parameterized test case.
        +//   set_up_tc:      pointer to the function that sets up the test case
        +//   tear_down_tc:   pointer to the function that tears down the test case
        +TestCase* UnitTestImpl::GetTestCase(const char* test_case_name,
        +                                    const char* type_param,
        +                                    Test::SetUpTestCaseFunc set_up_tc,
        +                                    Test::TearDownTestCaseFunc tear_down_tc) {
        +  // Can we find a TestCase with the given name?
        +  const std::vector<TestCase*>::const_iterator test_case =
        +      std::find_if(test_cases_.begin(), test_cases_.end(),
        +                   TestCaseNameIs(test_case_name));
        +
        +  if (test_case != test_cases_.end())
        +    return *test_case;
        +
        +  // No.  Let's create one.
        +  TestCase* const new_test_case =
        +      new TestCase(test_case_name, type_param, set_up_tc, tear_down_tc);
        +
        +  // Is this a death test case?
        +  if (internal::UnitTestOptions::MatchesFilter(test_case_name,
        +                                               kDeathTestCaseFilter)) {
        +    // Yes.  Inserts the test case after the last death test case
        +    // defined so far.  This only works when the test cases haven't
        +    // been shuffled.  Otherwise we may end up running a death test
        +    // after a non-death test.
        +    ++last_death_test_case_;
        +    test_cases_.insert(test_cases_.begin() + last_death_test_case_,
        +                       new_test_case);
        +  } else {
        +    // No.  Appends to the end of the list.
        +    test_cases_.push_back(new_test_case);
        +  }
        +
        +  test_case_indices_.push_back(static_cast<int>(test_case_indices_.size()));
        +  return new_test_case;
        +}
        +
        +// Helpers for setting up / tearing down the given environment.  They
        +// are for use in the ForEach() function.
        +static void SetUpEnvironment(Environment* env) { env->SetUp(); }
        +static void TearDownEnvironment(Environment* env) { env->TearDown(); }
        +
        +// Runs all tests in this UnitTest object, prints the result, and
        +// returns true if all tests are successful.  If any exception is
        +// thrown during a test, the test is considered to be failed, but the
        +// rest of the tests will still be run.
        +//
        +// When parameterized tests are enabled, it expands and registers
        +// parameterized tests first in RegisterParameterizedTests().
        +// All other functions called from RunAllTests() may safely assume that
        +// parameterized tests are ready to be counted and run.
        +bool UnitTestImpl::RunAllTests() {
        +  // Makes sure InitGoogleTest() was called.
        +  if (!GTestIsInitialized()) {
        +    printf("%s",
        +           "\nThis test program did NOT call ::testing::InitGoogleTest "
        +           "before calling RUN_ALL_TESTS().  Please fix it.\n");
        +    return false;
        +  }
        +
        +  // Do not run any test if the --help flag was specified.
        +  if (g_help_flag)
        +    return true;
        +
        +  // Repeats the call to the post-flag parsing initialization in case the
        +  // user didn't call InitGoogleTest.
        +  PostFlagParsingInit();
        +
        +  // Even if sharding is not on, test runners may want to use the
        +  // GTEST_SHARD_STATUS_FILE to query whether the test supports the sharding
        +  // protocol.
        +  internal::WriteToShardStatusFileIfNeeded();
        +
        +  // True iff we are in a subprocess for running a thread-safe-style
        +  // death test.
        +  bool in_subprocess_for_death_test = false;
        +
        +#if GTEST_HAS_DEATH_TEST
        +  in_subprocess_for_death_test = (internal_run_death_test_flag_.get() != NULL);
        +# if defined(GTEST_EXTRA_DEATH_TEST_CHILD_SETUP_)
        +  if (in_subprocess_for_death_test) {
        +    GTEST_EXTRA_DEATH_TEST_CHILD_SETUP_();
        +  }
        +# endif  // defined(GTEST_EXTRA_DEATH_TEST_CHILD_SETUP_)
        +#endif  // GTEST_HAS_DEATH_TEST
        +
        +  const bool should_shard = ShouldShard(kTestTotalShards, kTestShardIndex,
        +                                        in_subprocess_for_death_test);
        +
        +  // Compares the full test names with the filter to decide which
        +  // tests to run.
        +  const bool has_tests_to_run = FilterTests(should_shard
        +                                              ? HONOR_SHARDING_PROTOCOL
        +                                              : IGNORE_SHARDING_PROTOCOL) > 0;
        +
        +  // Lists the tests and exits if the --gtest_list_tests flag was specified.
        +  if (GTEST_FLAG(list_tests)) {
        +    // This must be called *after* FilterTests() has been called.
        +    ListTestsMatchingFilter();
        +    return true;
        +  }
        +
        +  random_seed_ = GTEST_FLAG(shuffle) ?
        +      GetRandomSeedFromFlag(GTEST_FLAG(random_seed)) : 0;
        +
        +  // True iff at least one test has failed.
        +  bool failed = false;
        +
        +  TestEventListener* repeater = listeners()->repeater();
        +
        +  start_timestamp_ = GetTimeInMillis();
        +  repeater->OnTestProgramStart(*parent_);
        +
        +  // How many times to repeat the tests?  We don't want to repeat them
        +  // when we are inside the subprocess of a death test.
        +  const int repeat = in_subprocess_for_death_test ? 1 : GTEST_FLAG(repeat);
        +  // Repeats forever if the repeat count is negative.
        +  const bool forever = repeat < 0;
        +  for (int i = 0; forever || i != repeat; i++) {
        +    // We want to preserve failures generated by ad-hoc test
        +    // assertions executed before RUN_ALL_TESTS().
        +    ClearNonAdHocTestResult();
        +
        +    const TimeInMillis start = GetTimeInMillis();
        +
        +    // Shuffles test cases and tests if requested.
        +    if (has_tests_to_run && GTEST_FLAG(shuffle)) {
        +      random()->Reseed(random_seed_);
        +      // This should be done before calling OnTestIterationStart(),
        +      // such that a test event listener can see the actual test order
        +      // in the event.
        +      ShuffleTests();
        +    }
        +
        +    // Tells the unit test event listeners that the tests are about to start.
        +    repeater->OnTestIterationStart(*parent_, i);
        +
        +    // Runs each test case if there is at least one test to run.
        +    if (has_tests_to_run) {
        +      // Sets up all environments beforehand.
        +      repeater->OnEnvironmentsSetUpStart(*parent_);
        +      ForEach(environments_, SetUpEnvironment);
        +      repeater->OnEnvironmentsSetUpEnd(*parent_);
        +
        +      // Runs the tests only if there was no fatal failure during global
        +      // set-up.
        +      if (!Test::HasFatalFailure()) {
        +        for (int test_index = 0; test_index < total_test_case_count();
        +             test_index++) {
        +          GetMutableTestCase(test_index)->Run();
        +        }
        +      }
        +
        +      // Tears down all environments in reverse order afterwards.
        +      repeater->OnEnvironmentsTearDownStart(*parent_);
        +      std::for_each(environments_.rbegin(), environments_.rend(),
        +                    TearDownEnvironment);
        +      repeater->OnEnvironmentsTearDownEnd(*parent_);
        +    }
        +
        +    elapsed_time_ = GetTimeInMillis() - start;
        +
        +    // Tells the unit test event listener that the tests have just finished.
        +    repeater->OnTestIterationEnd(*parent_, i);
        +
        +    // Gets the result and clears it.
        +    if (!Passed()) {
        +      failed = true;
        +    }
        +
        +    // Restores the original test order after the iteration.  This
        +    // allows the user to quickly repro a failure that happens in the
        +    // N-th iteration without repeating the first (N - 1) iterations.
        +    // This is not enclosed in "if (GTEST_FLAG(shuffle)) { ... }", in
        +    // case the user somehow changes the value of the flag somewhere
        +    // (it's always safe to unshuffle the tests).
        +    UnshuffleTests();
        +
        +    if (GTEST_FLAG(shuffle)) {
        +      // Picks a new random seed for each iteration.
        +      random_seed_ = GetNextRandomSeed(random_seed_);
        +    }
        +  }
        +
        +  repeater->OnTestProgramEnd(*parent_);
        +
        +  return !failed;
        +}
        +
        +// Reads the GTEST_SHARD_STATUS_FILE environment variable, and creates the file
        +// if the variable is present. If a file already exists at this location, this
        +// function will write over it. If the variable is present, but the file cannot
        +// be created, prints an error and exits.
        +void WriteToShardStatusFileIfNeeded() {
        +  const char* const test_shard_file = posix::GetEnv(kTestShardStatusFile);
        +  if (test_shard_file != NULL) {
        +    FILE* const file = posix::FOpen(test_shard_file, "w");
        +    if (file == NULL) {
        +      ColoredPrintf(COLOR_RED,
        +                    "Could not write to the test shard status file \"%s\" "
        +                    "specified by the %s environment variable.\n",
        +                    test_shard_file, kTestShardStatusFile);
        +      fflush(stdout);
        +      exit(EXIT_FAILURE);
        +    }
        +    fclose(file);
        +  }
        +}
        +
        +// Checks whether sharding is enabled by examining the relevant
        +// environment variable values. If the variables are present,
        +// but inconsistent (i.e., shard_index >= total_shards), prints
        +// an error and exits. If in_subprocess_for_death_test, sharding is
        +// disabled because it must only be applied to the original test
        +// process. Otherwise, we could filter out death tests we intended to execute.
        +bool ShouldShard(const char* total_shards_env,
        +                 const char* shard_index_env,
        +                 bool in_subprocess_for_death_test) {
        +  if (in_subprocess_for_death_test) {
        +    return false;
        +  }
        +
        +  const Int32 total_shards = Int32FromEnvOrDie(total_shards_env, -1);
        +  const Int32 shard_index = Int32FromEnvOrDie(shard_index_env, -1);
        +
        +  if (total_shards == -1 && shard_index == -1) {
        +    return false;
        +  } else if (total_shards == -1 && shard_index != -1) {
        +    const Message msg = Message()
        +      << "Invalid environment variables: you have "
        +      << kTestShardIndex << " = " << shard_index
        +      << ", but have left " << kTestTotalShards << " unset.\n";
        +    ColoredPrintf(COLOR_RED, msg.GetString().c_str());
        +    fflush(stdout);
        +    exit(EXIT_FAILURE);
        +  } else if (total_shards != -1 && shard_index == -1) {
        +    const Message msg = Message()
        +      << "Invalid environment variables: you have "
        +      << kTestTotalShards << " = " << total_shards
        +      << ", but have left " << kTestShardIndex << " unset.\n";
        +    ColoredPrintf(COLOR_RED, msg.GetString().c_str());
        +    fflush(stdout);
        +    exit(EXIT_FAILURE);
        +  } else if (shard_index < 0 || shard_index >= total_shards) {
        +    const Message msg = Message()
        +      << "Invalid environment variables: we require 0 <= "
        +      << kTestShardIndex << " < " << kTestTotalShards
        +      << ", but you have " << kTestShardIndex << "=" << shard_index
        +      << ", " << kTestTotalShards << "=" << total_shards << ".\n";
        +    ColoredPrintf(COLOR_RED, msg.GetString().c_str());
        +    fflush(stdout);
        +    exit(EXIT_FAILURE);
        +  }
        +
        +  return total_shards > 1;
        +}
        +
        +// Parses the environment variable var as an Int32. If it is unset,
        +// returns default_val. If it is not an Int32, prints an error
        +// and aborts.
        +Int32 Int32FromEnvOrDie(const char* var, Int32 default_val) {
        +  const char* str_val = posix::GetEnv(var);
        +  if (str_val == NULL) {
        +    return default_val;
        +  }
        +
        +  Int32 result;
        +  if (!ParseInt32(Message() << "The value of environment variable " << var,
        +                  str_val, &result)) {
        +    exit(EXIT_FAILURE);
        +  }
        +  return result;
        +}
        +
        +// Given the total number of shards, the shard index, and the test id,
        +// returns true iff the test should be run on this shard. The test id is
        +// some arbitrary but unique non-negative integer assigned to each test
        +// method. Assumes that 0 <= shard_index < total_shards.
        +bool ShouldRunTestOnShard(int total_shards, int shard_index, int test_id) {
        +  return (test_id % total_shards) == shard_index;
        +}
        +
        +// Compares the name of each test with the user-specified filter to
        +// decide whether the test should be run, then records the result in
        +// each TestCase and TestInfo object.
        +// If shard_tests == true, further filters tests based on sharding
        +// variables in the environment - see
        +// http://code.google.com/p/googletest/wiki/GoogleTestAdvancedGuide.
        +// Returns the number of tests that should run.
        +int UnitTestImpl::FilterTests(ReactionToSharding shard_tests) {
        +  const Int32 total_shards = shard_tests == HONOR_SHARDING_PROTOCOL ?
        +      Int32FromEnvOrDie(kTestTotalShards, -1) : -1;
        +  const Int32 shard_index = shard_tests == HONOR_SHARDING_PROTOCOL ?
        +      Int32FromEnvOrDie(kTestShardIndex, -1) : -1;
        +
        +  // num_runnable_tests are the number of tests that will
        +  // run across all shards (i.e., match filter and are not disabled).
        +  // num_selected_tests are the number of tests to be run on
        +  // this shard.
        +  int num_runnable_tests = 0;
        +  int num_selected_tests = 0;
        +  for (size_t i = 0; i < test_cases_.size(); i++) {
        +    TestCase* const test_case = test_cases_[i];
        +    const std::string &test_case_name = test_case->name();
        +    test_case->set_should_run(false);
        +
        +    for (size_t j = 0; j < test_case->test_info_list().size(); j++) {
        +      TestInfo* const test_info = test_case->test_info_list()[j];
        +      const std::string test_name(test_info->name());
        +      // A test is disabled if test case name or test name matches
        +      // kDisableTestFilter.
        +      const bool is_disabled =
        +          internal::UnitTestOptions::MatchesFilter(test_case_name,
        +                                                   kDisableTestFilter) ||
        +          internal::UnitTestOptions::MatchesFilter(test_name,
        +                                                   kDisableTestFilter);
        +      test_info->is_disabled_ = is_disabled;
        +
        +      const bool matches_filter =
        +          internal::UnitTestOptions::FilterMatchesTest(test_case_name,
        +                                                       test_name);
        +      test_info->matches_filter_ = matches_filter;
        +
        +      const bool is_runnable =
        +          (GTEST_FLAG(also_run_disabled_tests) || !is_disabled) &&
        +          matches_filter;
        +
        +      const bool is_selected = is_runnable &&
        +          (shard_tests == IGNORE_SHARDING_PROTOCOL ||
        +           ShouldRunTestOnShard(total_shards, shard_index,
        +                                num_runnable_tests));
        +
        +      num_runnable_tests += is_runnable;
        +      num_selected_tests += is_selected;
        +
        +      test_info->should_run_ = is_selected;
        +      test_case->set_should_run(test_case->should_run() || is_selected);
        +    }
        +  }
        +  return num_selected_tests;
        +}
        +
        +// Prints the given C-string on a single line by replacing all '\n'
        +// characters with string "\\n".  If the output takes more than
        +// max_length characters, only prints the first max_length characters
        +// and "...".
        +static void PrintOnOneLine(const char* str, int max_length) {
        +  if (str != NULL) {
        +    for (int i = 0; *str != '\0'; ++str) {
        +      if (i >= max_length) {
        +        printf("...");
        +        break;
        +      }
        +      if (*str == '\n') {
        +        printf("\\n");
        +        i += 2;
        +      } else {
        +        printf("%c", *str);
        +        ++i;
        +      }
        +    }
        +  }
        +}
        +
        +// Prints the names of the tests matching the user-specified filter flag.
        +void UnitTestImpl::ListTestsMatchingFilter() {
        +  // Print at most this many characters for each type/value parameter.
        +  const int kMaxParamLength = 250;
        +
        +  for (size_t i = 0; i < test_cases_.size(); i++) {
        +    const TestCase* const test_case = test_cases_[i];
        +    bool printed_test_case_name = false;
        +
        +    for (size_t j = 0; j < test_case->test_info_list().size(); j++) {
        +      const TestInfo* const test_info =
        +          test_case->test_info_list()[j];
        +      if (test_info->matches_filter_) {
        +        if (!printed_test_case_name) {
        +          printed_test_case_name = true;
        +          printf("%s.", test_case->name());
        +          if (test_case->type_param() != NULL) {
        +            printf("  # %s = ", kTypeParamLabel);
        +            // We print the type parameter on a single line to make
        +            // the output easy to parse by a program.
        +            PrintOnOneLine(test_case->type_param(), kMaxParamLength);
        +          }
        +          printf("\n");
        +        }
        +        printf("  %s", test_info->name());
        +        if (test_info->value_param() != NULL) {
        +          printf("  # %s = ", kValueParamLabel);
        +          // We print the value parameter on a single line to make the
        +          // output easy to parse by a program.
        +          PrintOnOneLine(test_info->value_param(), kMaxParamLength);
        +        }
        +        printf("\n");
        +      }
        +    }
        +  }
        +  fflush(stdout);
        +}
        +
        +// Sets the OS stack trace getter.
        +//
        +// Does nothing if the input and the current OS stack trace getter are
        +// the same; otherwise, deletes the old getter and makes the input the
        +// current getter.
        +void UnitTestImpl::set_os_stack_trace_getter(
        +    OsStackTraceGetterInterface* getter) {
        +  if (os_stack_trace_getter_ != getter) {
        +    delete os_stack_trace_getter_;
        +    os_stack_trace_getter_ = getter;
        +  }
        +}
        +
        +// Returns the current OS stack trace getter if it is not NULL;
        +// otherwise, creates an OsStackTraceGetter, makes it the current
        +// getter, and returns it.
        +OsStackTraceGetterInterface* UnitTestImpl::os_stack_trace_getter() {
        +  if (os_stack_trace_getter_ == NULL) {
        +#ifdef GTEST_OS_STACK_TRACE_GETTER_
        +    os_stack_trace_getter_ = new GTEST_OS_STACK_TRACE_GETTER_;
        +#else
        +    os_stack_trace_getter_ = new OsStackTraceGetter;
        +#endif  // GTEST_OS_STACK_TRACE_GETTER_
        +  }
        +
        +  return os_stack_trace_getter_;
        +}
        +
        +// Returns the TestResult for the test that's currently running, or
        +// the TestResult for the ad hoc test if no test is running.
        +TestResult* UnitTestImpl::current_test_result() {
        +  return current_test_info_ ?
        +      &(current_test_info_->result_) : &ad_hoc_test_result_;
        +}
        +
        +// Shuffles all test cases, and the tests within each test case,
        +// making sure that death tests are still run first.
        +void UnitTestImpl::ShuffleTests() {
        +  // Shuffles the death test cases.
        +  ShuffleRange(random(), 0, last_death_test_case_ + 1, &test_case_indices_);
        +
        +  // Shuffles the non-death test cases.
        +  ShuffleRange(random(), last_death_test_case_ + 1,
        +               static_cast<int>(test_cases_.size()), &test_case_indices_);
        +
        +  // Shuffles the tests inside each test case.
        +  for (size_t i = 0; i < test_cases_.size(); i++) {
        +    test_cases_[i]->ShuffleTests(random());
        +  }
        +}
        +
        +// Restores the test cases and tests to their order before the first shuffle.
        +void UnitTestImpl::UnshuffleTests() {
        +  for (size_t i = 0; i < test_cases_.size(); i++) {
        +    // Unshuffles the tests in each test case.
        +    test_cases_[i]->UnshuffleTests();
        +    // Resets the index of each test case.
        +    test_case_indices_[i] = static_cast<int>(i);
        +  }
        +}
        +
        +// Returns the current OS stack trace as an std::string.
        +//
        +// The maximum number of stack frames to be included is specified by
        +// the gtest_stack_trace_depth flag.  The skip_count parameter
        +// specifies the number of top frames to be skipped, which doesn't
        +// count against the number of frames to be included.
        +//
        +// For example, if Foo() calls Bar(), which in turn calls
        +// GetCurrentOsStackTraceExceptTop(..., 1), Foo() will be included in
        +// the trace but Bar() and GetCurrentOsStackTraceExceptTop() won't.
        +std::string GetCurrentOsStackTraceExceptTop(UnitTest* /*unit_test*/,
        +                                            int skip_count) {
        +  // We pass skip_count + 1 to skip this wrapper function in addition
        +  // to what the user really wants to skip.
        +  return GetUnitTestImpl()->CurrentOsStackTraceExceptTop(skip_count + 1);
        +}
        +
        +// Used by the GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_ macro to
        +// suppress unreachable code warnings.
        +namespace {
        +class ClassUniqueToAlwaysTrue {};
        +}
        +
        +bool IsTrue(bool condition) { return condition; }
        +
        +bool AlwaysTrue() {
        +#if GTEST_HAS_EXCEPTIONS
        +  // This condition is always false so AlwaysTrue() never actually throws,
        +  // but it makes the compiler think that it may throw.
        +  if (IsTrue(false))
        +    throw ClassUniqueToAlwaysTrue();
        +#endif  // GTEST_HAS_EXCEPTIONS
        +  return true;
        +}
        +
        +// If *pstr starts with the given prefix, modifies *pstr to be right
        +// past the prefix and returns true; otherwise leaves *pstr unchanged
        +// and returns false.  None of pstr, *pstr, and prefix can be NULL.
        +bool SkipPrefix(const char* prefix, const char** pstr) {
        +  const size_t prefix_len = strlen(prefix);
        +  if (strncmp(*pstr, prefix, prefix_len) == 0) {
        +    *pstr += prefix_len;
        +    return true;
        +  }
        +  return false;
        +}
        +
        +// Parses a string as a command line flag.  The string should have
        +// the format "--flag=value".  When def_optional is true, the "=value"
        +// part can be omitted.
        +//
        +// Returns the value of the flag, or NULL if the parsing failed.
        +const char* ParseFlagValue(const char* str,
        +                           const char* flag,
        +                           bool def_optional) {
        +  // str and flag must not be NULL.
        +  if (str == NULL || flag == NULL) return NULL;
        +
        +  // The flag must start with "--" followed by GTEST_FLAG_PREFIX_.
        +  const std::string flag_str = std::string("--") + GTEST_FLAG_PREFIX_ + flag;
        +  const size_t flag_len = flag_str.length();
        +  if (strncmp(str, flag_str.c_str(), flag_len) != 0) return NULL;
        +
        +  // Skips the flag name.
        +  const char* flag_end = str + flag_len;
        +
        +  // When def_optional is true, it's OK to not have a "=value" part.
        +  if (def_optional && (flag_end[0] == '\0')) {
        +    return flag_end;
        +  }
        +
        +  // If def_optional is true and there are more characters after the
        +  // flag name, or if def_optional is false, there must be a '=' after
        +  // the flag name.
        +  if (flag_end[0] != '=') return NULL;
        +
        +  // Returns the string after "=".
        +  return flag_end + 1;
        +}
        +
        +// Parses a string for a bool flag, in the form of either
        +// "--flag=value" or "--flag".
        +//
        +// In the former case, the value is taken as true as long as it does
        +// not start with '0', 'f', or 'F'.
        +//
        +// In the latter case, the value is taken as true.
        +//
        +// On success, stores the value of the flag in *value, and returns
        +// true.  On failure, returns false without changing *value.
        +bool ParseBoolFlag(const char* str, const char* flag, bool* value) {
        +  // Gets the value of the flag as a string.
        +  const char* const value_str = ParseFlagValue(str, flag, true);
        +
        +  // Aborts if the parsing failed.
        +  if (value_str == NULL) return false;
        +
        +  // Converts the string value to a bool.
        +  *value = !(*value_str == '0' || *value_str == 'f' || *value_str == 'F');
        +  return true;
        +}
        +
        +// Parses a string for an Int32 flag, in the form of
        +// "--flag=value".
        +//
        +// On success, stores the value of the flag in *value, and returns
        +// true.  On failure, returns false without changing *value.
        +bool ParseInt32Flag(const char* str, const char* flag, Int32* value) {
        +  // Gets the value of the flag as a string.
        +  const char* const value_str = ParseFlagValue(str, flag, false);
        +
        +  // Aborts if the parsing failed.
        +  if (value_str == NULL) return false;
        +
        +  // Sets *value to the value of the flag.
        +  return ParseInt32(Message() << "The value of flag --" << flag,
        +                    value_str, value);
        +}
        +
        +// Parses a string for a string flag, in the form of
        +// "--flag=value".
        +//
        +// On success, stores the value of the flag in *value, and returns
        +// true.  On failure, returns false without changing *value.
        +bool ParseStringFlag(const char* str, const char* flag, std::string* value) {
        +  // Gets the value of the flag as a string.
        +  const char* const value_str = ParseFlagValue(str, flag, false);
        +
        +  // Aborts if the parsing failed.
        +  if (value_str == NULL) return false;
        +
        +  // Sets *value to the value of the flag.
        +  *value = value_str;
        +  return true;
        +}
        +
        +// Determines whether a string has a prefix that Google Test uses for its
        +// flags, i.e., starts with GTEST_FLAG_PREFIX_ or GTEST_FLAG_PREFIX_DASH_.
        +// If Google Test detects that a command line flag has its prefix but is not
        +// recognized, it will print its help message. Flags starting with
        +// GTEST_INTERNAL_PREFIX_ followed by "internal_" are considered Google Test
        +// internal flags and do not trigger the help message.
        +static bool HasGoogleTestFlagPrefix(const char* str) {
        +  return (SkipPrefix("--", &str) ||
        +          SkipPrefix("-", &str) ||
        +          SkipPrefix("/", &str)) &&
        +         !SkipPrefix(GTEST_FLAG_PREFIX_ "internal_", &str) &&
        +         (SkipPrefix(GTEST_FLAG_PREFIX_, &str) ||
        +          SkipPrefix(GTEST_FLAG_PREFIX_DASH_, &str));
        +}
        +
        +// Prints a string containing code-encoded text.  The following escape
        +// sequences can be used in the string to control the text color:
        +//
        +//   @@    prints a single '@' character.
        +//   @R    changes the color to red.
        +//   @G    changes the color to green.
        +//   @Y    changes the color to yellow.
        +//   @D    changes to the default terminal text color.
        +//
        +// TODO(wan@google.com): Write tests for this once we add stdout
        +// capturing to Google Test.
        +static void PrintColorEncoded(const char* str) {
        +  GTestColor color = COLOR_DEFAULT;  // The current color.
        +
        +  // Conceptually, we split the string into segments divided by escape
        +  // sequences.  Then we print one segment at a time.  At the end of
        +  // each iteration, the str pointer advances to the beginning of the
        +  // next segment.
        +  for (;;) {
        +    const char* p = strchr(str, '@');
        +    if (p == NULL) {
        +      ColoredPrintf(color, "%s", str);
        +      return;
        +    }
        +
        +    ColoredPrintf(color, "%s", std::string(str, p).c_str());
        +
        +    const char ch = p[1];
        +    str = p + 2;
        +    if (ch == '@') {
        +      ColoredPrintf(color, "@");
        +    } else if (ch == 'D') {
        +      color = COLOR_DEFAULT;
        +    } else if (ch == 'R') {
        +      color = COLOR_RED;
        +    } else if (ch == 'G') {
        +      color = COLOR_GREEN;
        +    } else if (ch == 'Y') {
        +      color = COLOR_YELLOW;
        +    } else {
        +      --str;
        +    }
        +  }
        +}
        +
        +static const char kColorEncodedHelpMessage[] =
        +"This program contains tests written using " GTEST_NAME_ ". You can use the\n"
        +"following command line flags to control its behavior:\n"
        +"\n"
        +"Test Selection:\n"
        +"  @G--" GTEST_FLAG_PREFIX_ "list_tests@D\n"
        +"      List the names of all tests instead of running them. The name of\n"
        +"      TEST(Foo, Bar) is \"Foo.Bar\".\n"
        +"  @G--" GTEST_FLAG_PREFIX_ "filter=@YPOSTIVE_PATTERNS"
        +    "[@G-@YNEGATIVE_PATTERNS]@D\n"
        +"      Run only the tests whose name matches one of the positive patterns but\n"
        +"      none of the negative patterns. '?' matches any single character; '*'\n"
        +"      matches any substring; ':' separates two patterns.\n"
        +"  @G--" GTEST_FLAG_PREFIX_ "also_run_disabled_tests@D\n"
        +"      Run all disabled tests too.\n"
        +"\n"
        +"Test Execution:\n"
        +"  @G--" GTEST_FLAG_PREFIX_ "repeat=@Y[COUNT]@D\n"
        +"      Run the tests repeatedly; use a negative count to repeat forever.\n"
        +"  @G--" GTEST_FLAG_PREFIX_ "shuffle@D\n"
        +"      Randomize tests' orders on every iteration.\n"
        +"  @G--" GTEST_FLAG_PREFIX_ "random_seed=@Y[NUMBER]@D\n"
        +"      Random number seed to use for shuffling test orders (between 1 and\n"
        +"      99999, or 0 to use a seed based on the current time).\n"
        +"\n"
        +"Test Output:\n"
        +"  @G--" GTEST_FLAG_PREFIX_ "color=@Y(@Gyes@Y|@Gno@Y|@Gauto@Y)@D\n"
        +"      Enable/disable colored output. The default is @Gauto@D.\n"
        +"  -@G-" GTEST_FLAG_PREFIX_ "print_time=0@D\n"
        +"      Don't print the elapsed time of each test.\n"
        +"  @G--" GTEST_FLAG_PREFIX_ "output=xml@Y[@G:@YDIRECTORY_PATH@G"
        +    GTEST_PATH_SEP_ "@Y|@G:@YFILE_PATH]@D\n"
        +"      Generate an XML report in the given directory or with the given file\n"
        +"      name. @YFILE_PATH@D defaults to @Gtest_details.xml@D.\n"
        +#if GTEST_CAN_STREAM_RESULTS_
        +"  @G--" GTEST_FLAG_PREFIX_ "stream_result_to=@YHOST@G:@YPORT@D\n"
        +"      Stream test results to the given server.\n"
        +#endif  // GTEST_CAN_STREAM_RESULTS_
        +"\n"
        +"Assertion Behavior:\n"
        +#if GTEST_HAS_DEATH_TEST && !GTEST_OS_WINDOWS
        +"  @G--" GTEST_FLAG_PREFIX_ "death_test_style=@Y(@Gfast@Y|@Gthreadsafe@Y)@D\n"
        +"      Set the default death test style.\n"
        +#endif  // GTEST_HAS_DEATH_TEST && !GTEST_OS_WINDOWS
        +"  @G--" GTEST_FLAG_PREFIX_ "break_on_failure@D\n"
        +"      Turn assertion failures into debugger break-points.\n"
        +"  @G--" GTEST_FLAG_PREFIX_ "throw_on_failure@D\n"
        +"      Turn assertion failures into C++ exceptions.\n"
        +"  @G--" GTEST_FLAG_PREFIX_ "catch_exceptions=0@D\n"
        +"      Do not report exceptions as test failures. Instead, allow them\n"
        +"      to crash the program or throw a pop-up (on Windows).\n"
        +"\n"
        +"Except for @G--" GTEST_FLAG_PREFIX_ "list_tests@D, you can alternatively set "
        +    "the corresponding\n"
        +"environment variable of a flag (all letters in upper-case). For example, to\n"
        +"disable colored text output, you can either specify @G--" GTEST_FLAG_PREFIX_
        +    "color=no@D or set\n"
        +"the @G" GTEST_FLAG_PREFIX_UPPER_ "COLOR@D environment variable to @Gno@D.\n"
        +"\n"
        +"For more information, please read the " GTEST_NAME_ " documentation at\n"
        +"@G" GTEST_PROJECT_URL_ "@D. If you find a bug in " GTEST_NAME_ "\n"
        +"(not one in your own code or tests), please report it to\n"
        +"@G<" GTEST_DEV_EMAIL_ ">@D.\n";
        +
        +bool ParseGoogleTestFlag(const char* const arg) {
        +  return ParseBoolFlag(arg, kAlsoRunDisabledTestsFlag,
        +                       &GTEST_FLAG(also_run_disabled_tests)) ||
        +      ParseBoolFlag(arg, kBreakOnFailureFlag,
        +                    &GTEST_FLAG(break_on_failure)) ||
        +      ParseBoolFlag(arg, kCatchExceptionsFlag,
        +                    &GTEST_FLAG(catch_exceptions)) ||
        +      ParseStringFlag(arg, kColorFlag, &GTEST_FLAG(color)) ||
        +      ParseStringFlag(arg, kDeathTestStyleFlag,
        +                      &GTEST_FLAG(death_test_style)) ||
        +      ParseBoolFlag(arg, kDeathTestUseFork,
        +                    &GTEST_FLAG(death_test_use_fork)) ||
        +      ParseStringFlag(arg, kFilterFlag, &GTEST_FLAG(filter)) ||
        +      ParseStringFlag(arg, kInternalRunDeathTestFlag,
        +                      &GTEST_FLAG(internal_run_death_test)) ||
        +      ParseBoolFlag(arg, kListTestsFlag, &GTEST_FLAG(list_tests)) ||
        +      ParseStringFlag(arg, kOutputFlag, &GTEST_FLAG(output)) ||
        +      ParseBoolFlag(arg, kPrintTimeFlag, &GTEST_FLAG(print_time)) ||
        +      ParseInt32Flag(arg, kRandomSeedFlag, &GTEST_FLAG(random_seed)) ||
        +      ParseInt32Flag(arg, kRepeatFlag, &GTEST_FLAG(repeat)) ||
        +      ParseBoolFlag(arg, kShuffleFlag, &GTEST_FLAG(shuffle)) ||
        +      ParseInt32Flag(arg, kStackTraceDepthFlag,
        +                     &GTEST_FLAG(stack_trace_depth)) ||
        +      ParseStringFlag(arg, kStreamResultToFlag,
        +                      &GTEST_FLAG(stream_result_to)) ||
        +      ParseBoolFlag(arg, kThrowOnFailureFlag,
        +                    &GTEST_FLAG(throw_on_failure));
        +}
        +
        +#if GTEST_USE_OWN_FLAGFILE_FLAG_
        +void LoadFlagsFromFile(const std::string& path) {
        +  FILE* flagfile = posix::FOpen(path.c_str(), "r");
        +  if (!flagfile) {
        +    fprintf(stderr,
        +            "Unable to open file \"%s\"\n",
        +            GTEST_FLAG(flagfile).c_str());
        +    fflush(stderr);
        +    exit(EXIT_FAILURE);
        +  }
        +  std::string contents(ReadEntireFile(flagfile));
        +  posix::FClose(flagfile);
        +  std::vector<std::string> lines;
        +  SplitString(contents, '\n', &lines);
        +  for (size_t i = 0; i < lines.size(); ++i) {
        +    if (lines[i].empty())
        +      continue;
        +    if (!ParseGoogleTestFlag(lines[i].c_str()))
        +      g_help_flag = true;
        +  }
        +}
        +#endif  // GTEST_USE_OWN_FLAGFILE_FLAG_
        +
        +// Parses the command line for Google Test flags, without initializing
        +// other parts of Google Test.  The type parameter CharType can be
        +// instantiated to either char or wchar_t.
        +template <typename CharType>
        +void ParseGoogleTestFlagsOnlyImpl(int* argc, CharType** argv) {
        +  for (int i = 1; i < *argc; i++) {
        +    const std::string arg_string = StreamableToString(argv[i]);
        +    const char* const arg = arg_string.c_str();
        +
        +    using internal::ParseBoolFlag;
        +    using internal::ParseInt32Flag;
        +    using internal::ParseStringFlag;
        +
        +    bool remove_flag = false;
        +    if (ParseGoogleTestFlag(arg)) {
        +      remove_flag = true;
        +#if GTEST_USE_OWN_FLAGFILE_FLAG_
        +    } else if (ParseStringFlag(arg, kFlagfileFlag, &GTEST_FLAG(flagfile))) {
        +      LoadFlagsFromFile(GTEST_FLAG(flagfile));
        +      remove_flag = true;
        +#endif  // GTEST_USE_OWN_FLAGFILE_FLAG_
        +    } else if (arg_string == "--help" || arg_string == "-h" ||
        +               arg_string == "-?" || arg_string == "/?" ||
        +               HasGoogleTestFlagPrefix(arg)) {
        +      // Both help flag and unrecognized Google Test flags (excluding
        +      // internal ones) trigger help display.
        +      g_help_flag = true;
        +    }
        +
        +    if (remove_flag) {
        +      // Shift the remainder of the argv list left by one.  Note
        +      // that argv has (*argc + 1) elements, the last one always being
        +      // NULL.  The following loop moves the trailing NULL element as
        +      // well.
        +      for (int j = i; j != *argc; j++) {
        +        argv[j] = argv[j + 1];
        +      }
        +
        +      // Decrements the argument count.
        +      (*argc)--;
        +
        +      // We also need to decrement the iterator as we just removed
        +      // an element.
        +      i--;
        +    }
        +  }
        +
        +  if (g_help_flag) {
        +    // We print the help here instead of in RUN_ALL_TESTS(), as the
        +    // latter may not be called at all if the user is using Google
        +    // Test with another testing framework.
        +    PrintColorEncoded(kColorEncodedHelpMessage);
        +  }
        +}
        +
        +// Parses the command line for Google Test flags, without initializing
        +// other parts of Google Test.
        +void ParseGoogleTestFlagsOnly(int* argc, char** argv) {
        +  ParseGoogleTestFlagsOnlyImpl(argc, argv);
        +}
        +void ParseGoogleTestFlagsOnly(int* argc, wchar_t** argv) {
        +  ParseGoogleTestFlagsOnlyImpl(argc, argv);
        +}
        +
        +// The internal implementation of InitGoogleTest().
        +//
        +// The type parameter CharType can be instantiated to either char or
        +// wchar_t.
        +template <typename CharType>
        +void InitGoogleTestImpl(int* argc, CharType** argv) {
        +  // We don't want to run the initialization code twice.
        +  if (GTestIsInitialized()) return;
        +
        +  if (*argc <= 0) return;
        +
        +  g_argvs.clear();
        +  for (int i = 0; i != *argc; i++) {
        +    g_argvs.push_back(StreamableToString(argv[i]));
        +  }
        +
        +  ParseGoogleTestFlagsOnly(argc, argv);
        +  GetUnitTestImpl()->PostFlagParsingInit();
        +}
        +
        +}  // namespace internal
        +
        +// Initializes Google Test.  This must be called before calling
        +// RUN_ALL_TESTS().  In particular, it parses a command line for the
        +// flags that Google Test recognizes.  Whenever a Google Test flag is
        +// seen, it is removed from argv, and *argc is decremented.
        +//
        +// No value is returned.  Instead, the Google Test flag variables are
        +// updated.
        +//
        +// Calling the function for the second time has no user-visible effect.
        +void InitGoogleTest(int* argc, char** argv) {
        +#if defined(GTEST_CUSTOM_INIT_GOOGLE_TEST_FUNCTION_)
        +  GTEST_CUSTOM_INIT_GOOGLE_TEST_FUNCTION_(argc, argv);
        +#else  // defined(GTEST_CUSTOM_INIT_GOOGLE_TEST_FUNCTION_)
        +  internal::InitGoogleTestImpl(argc, argv);
        +#endif  // defined(GTEST_CUSTOM_INIT_GOOGLE_TEST_FUNCTION_)
        +}
        +
        +// This overloaded version can be used in Windows programs compiled in
        +// UNICODE mode.
        +void InitGoogleTest(int* argc, wchar_t** argv) {
        +#if defined(GTEST_CUSTOM_INIT_GOOGLE_TEST_FUNCTION_)
        +  GTEST_CUSTOM_INIT_GOOGLE_TEST_FUNCTION_(argc, argv);
        +#else  // defined(GTEST_CUSTOM_INIT_GOOGLE_TEST_FUNCTION_)
        +  internal::InitGoogleTestImpl(argc, argv);
        +#endif  // defined(GTEST_CUSTOM_INIT_GOOGLE_TEST_FUNCTION_)
        +}
        +
        +}  // namespace testing
        diff --git a/lib/ann/fann/lib/googletest/src/gtest_main.cc b/lib/ann/fann/lib/googletest/src/gtest_main.cc
        new file mode 100644
        index 0000000..f302822
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/src/gtest_main.cc
        @@ -0,0 +1,38 @@
        +// Copyright 2006, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +#include <stdio.h>
        +
        +#include "gtest/gtest.h"
        +
        +GTEST_API_ int main(int argc, char **argv) {
        +  printf("Running main() from gtest_main.cc\n");
        +  testing::InitGoogleTest(&argc, argv);
        +  return RUN_ALL_TESTS();
        +}
        diff --git a/lib/ann/fann/lib/googletest/test/gtest-death-test_ex_test.cc b/lib/ann/fann/lib/googletest/test/gtest-death-test_ex_test.cc
        new file mode 100644
        index 0000000..b50a13d
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest-death-test_ex_test.cc
        @@ -0,0 +1,93 @@
        +// Copyright 2010, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: vladl@google.com (Vlad Losev)
        +//
        +// Tests that verify interaction of exceptions and death tests.
        +
        +#include "gtest/gtest-death-test.h"
        +#include "gtest/gtest.h"
        +
        +#if GTEST_HAS_DEATH_TEST
        +
        +# if GTEST_HAS_SEH
        +#  include <windows.h>          // For RaiseException().
        +# endif
        +
        +# include "gtest/gtest-spi.h"
        +
        +# if GTEST_HAS_EXCEPTIONS
        +
        +#  include <exception>  // For std::exception.
        +
        +// Tests that death tests report thrown exceptions as failures and that the
        +// exceptions do not escape death test macros.
        +TEST(CxxExceptionDeathTest, ExceptionIsFailure) {
        +  try {
        +    EXPECT_NONFATAL_FAILURE(EXPECT_DEATH(throw 1, ""), "threw an exception");
        +  } catch (...) {  // NOLINT
        +    FAIL() << "An exception escaped a death test macro invocation "
        +           << "with catch_exceptions "
        +           << (testing::GTEST_FLAG(catch_exceptions) ? "enabled" : "disabled");
        +  }
        +}
        +
        +class TestException : public std::exception {
        + public:
        +  virtual const char* what() const throw() { return "exceptional message"; }
        +};
        +
        +TEST(CxxExceptionDeathTest, PrintsMessageForStdExceptions) {
        +  // Verifies that the exception message is quoted in the failure text.
        +  EXPECT_NONFATAL_FAILURE(EXPECT_DEATH(throw TestException(), ""),
        +                          "exceptional message");
        +  // Verifies that the location is mentioned in the failure text.
        +  EXPECT_NONFATAL_FAILURE(EXPECT_DEATH(throw TestException(), ""),
        +                          "gtest-death-test_ex_test.cc");
        +}
        +# endif  // GTEST_HAS_EXCEPTIONS
        +
        +# if GTEST_HAS_SEH
        +// Tests that enabling interception of SEH exceptions with the
        +// catch_exceptions flag does not interfere with SEH exceptions being
        +// treated as death by death tests.
        +TEST(SehExceptionDeasTest, CatchExceptionsDoesNotInterfere) {
        +  EXPECT_DEATH(RaiseException(42, 0x0, 0, NULL), "")
        +      << "with catch_exceptions "
        +      << (testing::GTEST_FLAG(catch_exceptions) ? "enabled" : "disabled");
        +}
        +# endif
        +
        +#endif  // GTEST_HAS_DEATH_TEST
        +
        +int main(int argc, char** argv) {
        +  testing::InitGoogleTest(&argc, argv);
        +  testing::GTEST_FLAG(catch_exceptions) = GTEST_ENABLE_CATCH_EXCEPTIONS_ != 0;
        +  return RUN_ALL_TESTS();
        +}
        diff --git a/lib/ann/fann/lib/googletest/test/gtest-death-test_test.cc b/lib/ann/fann/lib/googletest/test/gtest-death-test_test.cc
        new file mode 100644
        index 0000000..bb4a3d1
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest-death-test_test.cc
        @@ -0,0 +1,1427 @@
        +// Copyright 2005, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +//
        +// Tests for death tests.
        +
        +#include "gtest/gtest-death-test.h"
        +#include "gtest/gtest.h"
        +#include "gtest/internal/gtest-filepath.h"
        +
        +using testing::internal::AlwaysFalse;
        +using testing::internal::AlwaysTrue;
        +
        +#if GTEST_HAS_DEATH_TEST
        +
        +# if GTEST_OS_WINDOWS
        +#  include <direct.h>          // For chdir().
        +# else
        +#  include <unistd.h>
        +#  include <sys/wait.h>        // For waitpid.
        +# endif  // GTEST_OS_WINDOWS
        +
        +# include <limits.h>
        +# include <signal.h>
        +# include <stdio.h>
        +
        +# if GTEST_OS_LINUX
        +#  include <sys/time.h>
        +# endif  // GTEST_OS_LINUX
        +
        +# include "gtest/gtest-spi.h"
        +
        +// Indicates that this translation unit is part of Google Test's
        +// implementation.  It must come before gtest-internal-inl.h is
        +// included, or there will be a compiler error.  This trick is to
        +// prevent a user from accidentally including gtest-internal-inl.h in
        +// his code.
        +# define GTEST_IMPLEMENTATION_ 1
        +# include "src/gtest-internal-inl.h"
        +# undef GTEST_IMPLEMENTATION_
        +
        +namespace posix = ::testing::internal::posix;
        +
        +using testing::Message;
        +using testing::internal::DeathTest;
        +using testing::internal::DeathTestFactory;
        +using testing::internal::FilePath;
        +using testing::internal::GetLastErrnoDescription;
        +using testing::internal::GetUnitTestImpl;
        +using testing::internal::InDeathTestChild;
        +using testing::internal::ParseNaturalNumber;
        +
        +namespace testing {
        +namespace internal {
        +
        +// A helper class whose objects replace the death test factory for a
        +// single UnitTest object during their lifetimes.
        +class ReplaceDeathTestFactory {
        + public:
        +  explicit ReplaceDeathTestFactory(DeathTestFactory* new_factory)
        +      : unit_test_impl_(GetUnitTestImpl()) {
        +    old_factory_ = unit_test_impl_->death_test_factory_.release();
        +    unit_test_impl_->death_test_factory_.reset(new_factory);
        +  }
        +
        +  ~ReplaceDeathTestFactory() {
        +    unit_test_impl_->death_test_factory_.release();
        +    unit_test_impl_->death_test_factory_.reset(old_factory_);
        +  }
        + private:
        +  // Prevents copying ReplaceDeathTestFactory objects.
        +  ReplaceDeathTestFactory(const ReplaceDeathTestFactory&);
        +  void operator=(const ReplaceDeathTestFactory&);
        +
        +  UnitTestImpl* unit_test_impl_;
        +  DeathTestFactory* old_factory_;
        +};
        +
        +}  // namespace internal
        +}  // namespace testing
        +
        +void DieWithMessage(const ::std::string& message) {
        +  fprintf(stderr, "%s", message.c_str());
        +  fflush(stderr);  // Make sure the text is printed before the process exits.
        +
        +  // We call _exit() instead of exit(), as the former is a direct
        +  // system call and thus safer in the presence of threads.  exit()
        +  // will invoke user-defined exit-hooks, which may do dangerous
        +  // things that conflict with death tests.
        +  //
        +  // Some compilers can recognize that _exit() never returns and issue the
        +  // 'unreachable code' warning for code following this function, unless
        +  // fooled by a fake condition.
        +  if (AlwaysTrue())
        +    _exit(1);
        +}
        +
        +void DieInside(const ::std::string& function) {
        +  DieWithMessage("death inside " + function + "().");
        +}
        +
        +// Tests that death tests work.
        +
        +class TestForDeathTest : public testing::Test {
        + protected:
        +  TestForDeathTest() : original_dir_(FilePath::GetCurrentDir()) {}
        +
        +  virtual ~TestForDeathTest() {
        +    posix::ChDir(original_dir_.c_str());
        +  }
        +
        +  // A static member function that's expected to die.
        +  static void StaticMemberFunction() { DieInside("StaticMemberFunction"); }
        +
        +  // A method of the test fixture that may die.
        +  void MemberFunction() {
        +    if (should_die_)
        +      DieInside("MemberFunction");
        +  }
        +
        +  // True iff MemberFunction() should die.
        +  bool should_die_;
        +  const FilePath original_dir_;
        +};
        +
        +// A class with a member function that may die.
        +class MayDie {
        + public:
        +  explicit MayDie(bool should_die) : should_die_(should_die) {}
        +
        +  // A member function that may die.
        +  void MemberFunction() const {
        +    if (should_die_)
        +      DieInside("MayDie::MemberFunction");
        +  }
        +
        + private:
        +  // True iff MemberFunction() should die.
        +  bool should_die_;
        +};
        +
        +// A global function that's expected to die.
        +void GlobalFunction() { DieInside("GlobalFunction"); }
        +
        +// A non-void function that's expected to die.
        +int NonVoidFunction() {
        +  DieInside("NonVoidFunction");
        +  return 1;
        +}
        +
        +// A unary function that may die.
        +void DieIf(bool should_die) {
        +  if (should_die)
        +    DieInside("DieIf");
        +}
        +
        +// A binary function that may die.
        +bool DieIfLessThan(int x, int y) {
        +  if (x < y) {
        +    DieInside("DieIfLessThan");
        +  }
        +  return true;
        +}
        +
        +// Tests that ASSERT_DEATH can be used outside a TEST, TEST_F, or test fixture.
        +void DeathTestSubroutine() {
        +  EXPECT_DEATH(GlobalFunction(), "death.*GlobalFunction");
        +  ASSERT_DEATH(GlobalFunction(), "death.*GlobalFunction");
        +}
        +
        +// Death in dbg, not opt.
        +int DieInDebugElse12(int* sideeffect) {
        +  if (sideeffect) *sideeffect = 12;
        +
        +# ifndef NDEBUG
        +
        +  DieInside("DieInDebugElse12");
        +
        +# endif  // NDEBUG
        +
        +  return 12;
        +}
        +
        +# if GTEST_OS_WINDOWS
        +
        +// Tests the ExitedWithCode predicate.
        +TEST(ExitStatusPredicateTest, ExitedWithCode) {
        +  // On Windows, the process's exit code is the same as its exit status,
        +  // so the predicate just compares the its input with its parameter.
        +  EXPECT_TRUE(testing::ExitedWithCode(0)(0));
        +  EXPECT_TRUE(testing::ExitedWithCode(1)(1));
        +  EXPECT_TRUE(testing::ExitedWithCode(42)(42));
        +  EXPECT_FALSE(testing::ExitedWithCode(0)(1));
        +  EXPECT_FALSE(testing::ExitedWithCode(1)(0));
        +}
        +
        +# else
        +
        +// Returns the exit status of a process that calls _exit(2) with a
        +// given exit code.  This is a helper function for the
        +// ExitStatusPredicateTest test suite.
        +static int NormalExitStatus(int exit_code) {
        +  pid_t child_pid = fork();
        +  if (child_pid == 0) {
        +    _exit(exit_code);
        +  }
        +  int status;
        +  waitpid(child_pid, &status, 0);
        +  return status;
        +}
        +
        +// Returns the exit status of a process that raises a given signal.
        +// If the signal does not cause the process to die, then it returns
        +// instead the exit status of a process that exits normally with exit
        +// code 1.  This is a helper function for the ExitStatusPredicateTest
        +// test suite.
        +static int KilledExitStatus(int signum) {
        +  pid_t child_pid = fork();
        +  if (child_pid == 0) {
        +    raise(signum);
        +    _exit(1);
        +  }
        +  int status;
        +  waitpid(child_pid, &status, 0);
        +  return status;
        +}
        +
        +// Tests the ExitedWithCode predicate.
        +TEST(ExitStatusPredicateTest, ExitedWithCode) {
        +  const int status0  = NormalExitStatus(0);
        +  const int status1  = NormalExitStatus(1);
        +  const int status42 = NormalExitStatus(42);
        +  const testing::ExitedWithCode pred0(0);
        +  const testing::ExitedWithCode pred1(1);
        +  const testing::ExitedWithCode pred42(42);
        +  EXPECT_PRED1(pred0,  status0);
        +  EXPECT_PRED1(pred1,  status1);
        +  EXPECT_PRED1(pred42, status42);
        +  EXPECT_FALSE(pred0(status1));
        +  EXPECT_FALSE(pred42(status0));
        +  EXPECT_FALSE(pred1(status42));
        +}
        +
        +// Tests the KilledBySignal predicate.
        +TEST(ExitStatusPredicateTest, KilledBySignal) {
        +  const int status_segv = KilledExitStatus(SIGSEGV);
        +  const int status_kill = KilledExitStatus(SIGKILL);
        +  const testing::KilledBySignal pred_segv(SIGSEGV);
        +  const testing::KilledBySignal pred_kill(SIGKILL);
        +  EXPECT_PRED1(pred_segv, status_segv);
        +  EXPECT_PRED1(pred_kill, status_kill);
        +  EXPECT_FALSE(pred_segv(status_kill));
        +  EXPECT_FALSE(pred_kill(status_segv));
        +}
        +
        +# endif  // GTEST_OS_WINDOWS
        +
        +// Tests that the death test macros expand to code which may or may not
        +// be followed by operator<<, and that in either case the complete text
        +// comprises only a single C++ statement.
        +TEST_F(TestForDeathTest, SingleStatement) {
        +  if (AlwaysFalse())
        +    // This would fail if executed; this is a compilation test only
        +    ASSERT_DEATH(return, "");
        +
        +  if (AlwaysTrue())
        +    EXPECT_DEATH(_exit(1), "");
        +  else
        +    // This empty "else" branch is meant to ensure that EXPECT_DEATH
        +    // doesn't expand into an "if" statement without an "else"
        +    ;
        +
        +  if (AlwaysFalse())
        +    ASSERT_DEATH(return, "") << "did not die";
        +
        +  if (AlwaysFalse())
        +    ;
        +  else
        +    EXPECT_DEATH(_exit(1), "") << 1 << 2 << 3;
        +}
        +
        +void DieWithEmbeddedNul() {
        +  fprintf(stderr, "Hello%cmy null world.\n", '\0');
        +  fflush(stderr);
        +  _exit(1);
        +}
        +
        +# if GTEST_USES_PCRE
        +// Tests that EXPECT_DEATH and ASSERT_DEATH work when the error
        +// message has a NUL character in it.
        +TEST_F(TestForDeathTest, EmbeddedNulInMessage) {
        +  // TODO(wan@google.com): <regex.h> doesn't support matching strings
        +  // with embedded NUL characters - find a way to workaround it.
        +  EXPECT_DEATH(DieWithEmbeddedNul(), "my null world");
        +  ASSERT_DEATH(DieWithEmbeddedNul(), "my null world");
        +}
        +# endif  // GTEST_USES_PCRE
        +
        +// Tests that death test macros expand to code which interacts well with switch
        +// statements.
        +TEST_F(TestForDeathTest, SwitchStatement) {
        +  // Microsoft compiler usually complains about switch statements without
        +  // case labels. We suppress that warning for this test.
        +  GTEST_DISABLE_MSC_WARNINGS_PUSH_(4065)
        +
        +  switch (0)
        +    default:
        +      ASSERT_DEATH(_exit(1), "") << "exit in default switch handler";
        +
        +  switch (0)
        +    case 0:
        +      EXPECT_DEATH(_exit(1), "") << "exit in switch case";
        +
        +  GTEST_DISABLE_MSC_WARNINGS_POP_()
        +}
        +
        +// Tests that a static member function can be used in a "fast" style
        +// death test.
        +TEST_F(TestForDeathTest, StaticMemberFunctionFastStyle) {
        +  testing::GTEST_FLAG(death_test_style) = "fast";
        +  ASSERT_DEATH(StaticMemberFunction(), "death.*StaticMember");
        +}
        +
        +// Tests that a method of the test fixture can be used in a "fast"
        +// style death test.
        +TEST_F(TestForDeathTest, MemberFunctionFastStyle) {
        +  testing::GTEST_FLAG(death_test_style) = "fast";
        +  should_die_ = true;
        +  EXPECT_DEATH(MemberFunction(), "inside.*MemberFunction");
        +}
        +
        +void ChangeToRootDir() { posix::ChDir(GTEST_PATH_SEP_); }
        +
        +// Tests that death tests work even if the current directory has been
        +// changed.
        +TEST_F(TestForDeathTest, FastDeathTestInChangedDir) {
        +  testing::GTEST_FLAG(death_test_style) = "fast";
        +
        +  ChangeToRootDir();
        +  EXPECT_EXIT(_exit(1), testing::ExitedWithCode(1), "");
        +
        +  ChangeToRootDir();
        +  ASSERT_DEATH(_exit(1), "");
        +}
        +
        +# if GTEST_OS_LINUX
        +void SigprofAction(int, siginfo_t*, void*) { /* no op */ }
        +
        +// Sets SIGPROF action and ITIMER_PROF timer (interval: 1ms).
        +void SetSigprofActionAndTimer() {
        +  struct itimerval timer;
        +  timer.it_interval.tv_sec = 0;
        +  timer.it_interval.tv_usec = 1;
        +  timer.it_value = timer.it_interval;
        +  ASSERT_EQ(0, setitimer(ITIMER_PROF, &timer, NULL));
        +  struct sigaction signal_action;
        +  memset(&signal_action, 0, sizeof(signal_action));
        +  sigemptyset(&signal_action.sa_mask);
        +  signal_action.sa_sigaction = SigprofAction;
        +  signal_action.sa_flags = SA_RESTART | SA_SIGINFO;
        +  ASSERT_EQ(0, sigaction(SIGPROF, &signal_action, NULL));
        +}
        +
        +// Disables ITIMER_PROF timer and ignores SIGPROF signal.
        +void DisableSigprofActionAndTimer(struct sigaction* old_signal_action) {
        +  struct itimerval timer;
        +  timer.it_interval.tv_sec = 0;
        +  timer.it_interval.tv_usec = 0;
        +  timer.it_value = timer.it_interval;
        +  ASSERT_EQ(0, setitimer(ITIMER_PROF, &timer, NULL));
        +  struct sigaction signal_action;
        +  memset(&signal_action, 0, sizeof(signal_action));
        +  sigemptyset(&signal_action.sa_mask);
        +  signal_action.sa_handler = SIG_IGN;
        +  ASSERT_EQ(0, sigaction(SIGPROF, &signal_action, old_signal_action));
        +}
        +
        +// Tests that death tests work when SIGPROF handler and timer are set.
        +TEST_F(TestForDeathTest, FastSigprofActionSet) {
        +  testing::GTEST_FLAG(death_test_style) = "fast";
        +  SetSigprofActionAndTimer();
        +  EXPECT_DEATH(_exit(1), "");
        +  struct sigaction old_signal_action;
        +  DisableSigprofActionAndTimer(&old_signal_action);
        +  EXPECT_TRUE(old_signal_action.sa_sigaction == SigprofAction);
        +}
        +
        +TEST_F(TestForDeathTest, ThreadSafeSigprofActionSet) {
        +  testing::GTEST_FLAG(death_test_style) = "threadsafe";
        +  SetSigprofActionAndTimer();
        +  EXPECT_DEATH(_exit(1), "");
        +  struct sigaction old_signal_action;
        +  DisableSigprofActionAndTimer(&old_signal_action);
        +  EXPECT_TRUE(old_signal_action.sa_sigaction == SigprofAction);
        +}
        +# endif  // GTEST_OS_LINUX
        +
        +// Repeats a representative sample of death tests in the "threadsafe" style:
        +
        +TEST_F(TestForDeathTest, StaticMemberFunctionThreadsafeStyle) {
        +  testing::GTEST_FLAG(death_test_style) = "threadsafe";
        +  ASSERT_DEATH(StaticMemberFunction(), "death.*StaticMember");
        +}
        +
        +TEST_F(TestForDeathTest, MemberFunctionThreadsafeStyle) {
        +  testing::GTEST_FLAG(death_test_style) = "threadsafe";
        +  should_die_ = true;
        +  EXPECT_DEATH(MemberFunction(), "inside.*MemberFunction");
        +}
        +
        +TEST_F(TestForDeathTest, ThreadsafeDeathTestInLoop) {
        +  testing::GTEST_FLAG(death_test_style) = "threadsafe";
        +
        +  for (int i = 0; i < 3; ++i)
        +    EXPECT_EXIT(_exit(i), testing::ExitedWithCode(i), "") << ": i = " << i;
        +}
        +
        +TEST_F(TestForDeathTest, ThreadsafeDeathTestInChangedDir) {
        +  testing::GTEST_FLAG(death_test_style) = "threadsafe";
        +
        +  ChangeToRootDir();
        +  EXPECT_EXIT(_exit(1), testing::ExitedWithCode(1), "");
        +
        +  ChangeToRootDir();
        +  ASSERT_DEATH(_exit(1), "");
        +}
        +
        +TEST_F(TestForDeathTest, MixedStyles) {
        +  testing::GTEST_FLAG(death_test_style) = "threadsafe";
        +  EXPECT_DEATH(_exit(1), "");
        +  testing::GTEST_FLAG(death_test_style) = "fast";
        +  EXPECT_DEATH(_exit(1), "");
        +}
        +
        +# if GTEST_HAS_CLONE && GTEST_HAS_PTHREAD
        +
        +namespace {
        +
        +bool pthread_flag;
        +
        +void SetPthreadFlag() {
        +  pthread_flag = true;
        +}
        +
        +}  // namespace
        +
        +TEST_F(TestForDeathTest, DoesNotExecuteAtforkHooks) {
        +  if (!testing::GTEST_FLAG(death_test_use_fork)) {
        +    testing::GTEST_FLAG(death_test_style) = "threadsafe";
        +    pthread_flag = false;
        +    ASSERT_EQ(0, pthread_atfork(&SetPthreadFlag, NULL, NULL));
        +    ASSERT_DEATH(_exit(1), "");
        +    ASSERT_FALSE(pthread_flag);
        +  }
        +}
        +
        +# endif  // GTEST_HAS_CLONE && GTEST_HAS_PTHREAD
        +
        +// Tests that a method of another class can be used in a death test.
        +TEST_F(TestForDeathTest, MethodOfAnotherClass) {
        +  const MayDie x(true);
        +  ASSERT_DEATH(x.MemberFunction(), "MayDie\\:\\:MemberFunction");
        +}
        +
        +// Tests that a global function can be used in a death test.
        +TEST_F(TestForDeathTest, GlobalFunction) {
        +  EXPECT_DEATH(GlobalFunction(), "GlobalFunction");
        +}
        +
        +// Tests that any value convertible to an RE works as a second
        +// argument to EXPECT_DEATH.
        +TEST_F(TestForDeathTest, AcceptsAnythingConvertibleToRE) {
        +  static const char regex_c_str[] = "GlobalFunction";
        +  EXPECT_DEATH(GlobalFunction(), regex_c_str);
        +
        +  const testing::internal::RE regex(regex_c_str);
        +  EXPECT_DEATH(GlobalFunction(), regex);
        +
        +# if GTEST_HAS_GLOBAL_STRING
        +
        +  const string regex_str(regex_c_str);
        +  EXPECT_DEATH(GlobalFunction(), regex_str);
        +
        +# endif  // GTEST_HAS_GLOBAL_STRING
        +
        +# if !GTEST_USES_PCRE
        +
        +  const ::std::string regex_std_str(regex_c_str);
        +  EXPECT_DEATH(GlobalFunction(), regex_std_str);
        +
        +# endif  // !GTEST_USES_PCRE
        +}
        +
        +// Tests that a non-void function can be used in a death test.
        +TEST_F(TestForDeathTest, NonVoidFunction) {
        +  ASSERT_DEATH(NonVoidFunction(), "NonVoidFunction");
        +}
        +
        +// Tests that functions that take parameter(s) can be used in a death test.
        +TEST_F(TestForDeathTest, FunctionWithParameter) {
        +  EXPECT_DEATH(DieIf(true), "DieIf\\(\\)");
        +  EXPECT_DEATH(DieIfLessThan(2, 3), "DieIfLessThan");
        +}
        +
        +// Tests that ASSERT_DEATH can be used outside a TEST, TEST_F, or test fixture.
        +TEST_F(TestForDeathTest, OutsideFixture) {
        +  DeathTestSubroutine();
        +}
        +
        +// Tests that death tests can be done inside a loop.
        +TEST_F(TestForDeathTest, InsideLoop) {
        +  for (int i = 0; i < 5; i++) {
        +    EXPECT_DEATH(DieIfLessThan(-1, i), "DieIfLessThan") << "where i == " << i;
        +  }
        +}
        +
        +// Tests that a compound statement can be used in a death test.
        +TEST_F(TestForDeathTest, CompoundStatement) {
        +  EXPECT_DEATH({  // NOLINT
        +    const int x = 2;
        +    const int y = x + 1;
        +    DieIfLessThan(x, y);
        +  },
        +  "DieIfLessThan");
        +}
        +
        +// Tests that code that doesn't die causes a death test to fail.
        +TEST_F(TestForDeathTest, DoesNotDie) {
        +  EXPECT_NONFATAL_FAILURE(EXPECT_DEATH(DieIf(false), "DieIf"),
        +                          "failed to die");
        +}
        +
        +// Tests that a death test fails when the error message isn't expected.
        +TEST_F(TestForDeathTest, ErrorMessageMismatch) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_DEATH(DieIf(true), "DieIfLessThan") << "End of death test message.";
        +  }, "died but not with expected error");
        +}
        +
        +// On exit, *aborted will be true iff the EXPECT_DEATH() statement
        +// aborted the function.
        +void ExpectDeathTestHelper(bool* aborted) {
        +  *aborted = true;
        +  EXPECT_DEATH(DieIf(false), "DieIf");  // This assertion should fail.
        +  *aborted = false;
        +}
        +
        +// Tests that EXPECT_DEATH doesn't abort the test on failure.
        +TEST_F(TestForDeathTest, EXPECT_DEATH) {
        +  bool aborted = true;
        +  EXPECT_NONFATAL_FAILURE(ExpectDeathTestHelper(&aborted),
        +                          "failed to die");
        +  EXPECT_FALSE(aborted);
        +}
        +
        +// Tests that ASSERT_DEATH does abort the test on failure.
        +TEST_F(TestForDeathTest, ASSERT_DEATH) {
        +  static bool aborted;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    aborted = true;
        +    ASSERT_DEATH(DieIf(false), "DieIf");  // This assertion should fail.
        +    aborted = false;
        +  }, "failed to die");
        +  EXPECT_TRUE(aborted);
        +}
        +
        +// Tests that EXPECT_DEATH evaluates the arguments exactly once.
        +TEST_F(TestForDeathTest, SingleEvaluation) {
        +  int x = 3;
        +  EXPECT_DEATH(DieIf((++x) == 4), "DieIf");
        +
        +  const char* regex = "DieIf";
        +  const char* regex_save = regex;
        +  EXPECT_DEATH(DieIfLessThan(3, 4), regex++);
        +  EXPECT_EQ(regex_save + 1, regex);
        +}
        +
        +// Tests that run-away death tests are reported as failures.
        +TEST_F(TestForDeathTest, RunawayIsFailure) {
        +  EXPECT_NONFATAL_FAILURE(EXPECT_DEATH(static_cast<void>(0), "Foo"),
        +                          "failed to die.");
        +}
        +
        +// Tests that death tests report executing 'return' in the statement as
        +// failure.
        +TEST_F(TestForDeathTest, ReturnIsFailure) {
        +  EXPECT_FATAL_FAILURE(ASSERT_DEATH(return, "Bar"),
        +                       "illegal return in test statement.");
        +}
        +
        +// Tests that EXPECT_DEBUG_DEATH works as expected, that is, you can stream a
        +// message to it, and in debug mode it:
        +// 1. Asserts on death.
        +// 2. Has no side effect.
        +//
        +// And in opt mode, it:
        +// 1.  Has side effects but does not assert.
        +TEST_F(TestForDeathTest, TestExpectDebugDeath) {
        +  int sideeffect = 0;
        +
        +  EXPECT_DEBUG_DEATH(DieInDebugElse12(&sideeffect), "death.*DieInDebugElse12")
        +      << "Must accept a streamed message";
        +
        +# ifdef NDEBUG
        +
        +  // Checks that the assignment occurs in opt mode (sideeffect).
        +  EXPECT_EQ(12, sideeffect);
        +
        +# else
        +
        +  // Checks that the assignment does not occur in dbg mode (no sideeffect).
        +  EXPECT_EQ(0, sideeffect);
        +
        +# endif
        +}
        +
        +// Tests that ASSERT_DEBUG_DEATH works as expected, that is, you can stream a
        +// message to it, and in debug mode it:
        +// 1. Asserts on death.
        +// 2. Has no side effect.
        +//
        +// And in opt mode, it:
        +// 1.  Has side effects but does not assert.
        +TEST_F(TestForDeathTest, TestAssertDebugDeath) {
        +  int sideeffect = 0;
        +
        +  ASSERT_DEBUG_DEATH(DieInDebugElse12(&sideeffect), "death.*DieInDebugElse12")
        +      << "Must accept a streamed message";
        +
        +# ifdef NDEBUG
        +
        +  // Checks that the assignment occurs in opt mode (sideeffect).
        +  EXPECT_EQ(12, sideeffect);
        +
        +# else
        +
        +  // Checks that the assignment does not occur in dbg mode (no sideeffect).
        +  EXPECT_EQ(0, sideeffect);
        +
        +# endif
        +}
        +
        +# ifndef NDEBUG
        +
        +void ExpectDebugDeathHelper(bool* aborted) {
        +  *aborted = true;
        +  EXPECT_DEBUG_DEATH(return, "") << "This is expected to fail.";
        +  *aborted = false;
        +}
        +
        +#  if GTEST_OS_WINDOWS
        +TEST(PopUpDeathTest, DoesNotShowPopUpOnAbort) {
        +  printf("This test should be considered failing if it shows "
        +         "any pop-up dialogs.\n");
        +  fflush(stdout);
        +
        +  EXPECT_DEATH({
        +    testing::GTEST_FLAG(catch_exceptions) = false;
        +    abort();
        +  }, "");
        +}
        +#  endif  // GTEST_OS_WINDOWS
        +
        +// Tests that EXPECT_DEBUG_DEATH in debug mode does not abort
        +// the function.
        +TEST_F(TestForDeathTest, ExpectDebugDeathDoesNotAbort) {
        +  bool aborted = true;
        +  EXPECT_NONFATAL_FAILURE(ExpectDebugDeathHelper(&aborted), "");
        +  EXPECT_FALSE(aborted);
        +}
        +
        +void AssertDebugDeathHelper(bool* aborted) {
        +  *aborted = true;
        +  GTEST_LOG_(INFO) << "Before ASSERT_DEBUG_DEATH";
        +  ASSERT_DEBUG_DEATH(GTEST_LOG_(INFO) << "In ASSERT_DEBUG_DEATH"; return, "")
        +      << "This is expected to fail.";
        +  GTEST_LOG_(INFO) << "After ASSERT_DEBUG_DEATH";
        +  *aborted = false;
        +}
        +
        +// Tests that ASSERT_DEBUG_DEATH in debug mode aborts the function on
        +// failure.
        +TEST_F(TestForDeathTest, AssertDebugDeathAborts) {
        +  static bool aborted;
        +  aborted = false;
        +  EXPECT_FATAL_FAILURE(AssertDebugDeathHelper(&aborted), "");
        +  EXPECT_TRUE(aborted);
        +}
        +
        +TEST_F(TestForDeathTest, AssertDebugDeathAborts2) {
        +  static bool aborted;
        +  aborted = false;
        +  EXPECT_FATAL_FAILURE(AssertDebugDeathHelper(&aborted), "");
        +  EXPECT_TRUE(aborted);
        +}
        +
        +TEST_F(TestForDeathTest, AssertDebugDeathAborts3) {
        +  static bool aborted;
        +  aborted = false;
        +  EXPECT_FATAL_FAILURE(AssertDebugDeathHelper(&aborted), "");
        +  EXPECT_TRUE(aborted);
        +}
        +
        +TEST_F(TestForDeathTest, AssertDebugDeathAborts4) {
        +  static bool aborted;
        +  aborted = false;
        +  EXPECT_FATAL_FAILURE(AssertDebugDeathHelper(&aborted), "");
        +  EXPECT_TRUE(aborted);
        +}
        +
        +TEST_F(TestForDeathTest, AssertDebugDeathAborts5) {
        +  static bool aborted;
        +  aborted = false;
        +  EXPECT_FATAL_FAILURE(AssertDebugDeathHelper(&aborted), "");
        +  EXPECT_TRUE(aborted);
        +}
        +
        +TEST_F(TestForDeathTest, AssertDebugDeathAborts6) {
        +  static bool aborted;
        +  aborted = false;
        +  EXPECT_FATAL_FAILURE(AssertDebugDeathHelper(&aborted), "");
        +  EXPECT_TRUE(aborted);
        +}
        +
        +TEST_F(TestForDeathTest, AssertDebugDeathAborts7) {
        +  static bool aborted;
        +  aborted = false;
        +  EXPECT_FATAL_FAILURE(AssertDebugDeathHelper(&aborted), "");
        +  EXPECT_TRUE(aborted);
        +}
        +
        +TEST_F(TestForDeathTest, AssertDebugDeathAborts8) {
        +  static bool aborted;
        +  aborted = false;
        +  EXPECT_FATAL_FAILURE(AssertDebugDeathHelper(&aborted), "");
        +  EXPECT_TRUE(aborted);
        +}
        +
        +TEST_F(TestForDeathTest, AssertDebugDeathAborts9) {
        +  static bool aborted;
        +  aborted = false;
        +  EXPECT_FATAL_FAILURE(AssertDebugDeathHelper(&aborted), "");
        +  EXPECT_TRUE(aborted);
        +}
        +
        +TEST_F(TestForDeathTest, AssertDebugDeathAborts10) {
        +  static bool aborted;
        +  aborted = false;
        +  EXPECT_FATAL_FAILURE(AssertDebugDeathHelper(&aborted), "");
        +  EXPECT_TRUE(aborted);
        +}
        +
        +# endif  // _NDEBUG
        +
        +// Tests the *_EXIT family of macros, using a variety of predicates.
        +static void TestExitMacros() {
        +  EXPECT_EXIT(_exit(1),  testing::ExitedWithCode(1),  "");
        +  ASSERT_EXIT(_exit(42), testing::ExitedWithCode(42), "");
        +
        +# if GTEST_OS_WINDOWS
        +
        +  // Of all signals effects on the process exit code, only those of SIGABRT
        +  // are documented on Windows.
        +  // See http://msdn.microsoft.com/en-us/library/dwwzkt4c(VS.71).aspx.
        +  EXPECT_EXIT(raise(SIGABRT), testing::ExitedWithCode(3), "") << "b_ar";
        +
        +# else
        +
        +  EXPECT_EXIT(raise(SIGKILL), testing::KilledBySignal(SIGKILL), "") << "foo";
        +  ASSERT_EXIT(raise(SIGUSR2), testing::KilledBySignal(SIGUSR2), "") << "bar";
        +
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_EXIT(_exit(0), testing::KilledBySignal(SIGSEGV), "")
        +      << "This failure is expected, too.";
        +  }, "This failure is expected, too.");
        +
        +# endif  // GTEST_OS_WINDOWS
        +
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_EXIT(raise(SIGSEGV), testing::ExitedWithCode(0), "")
        +      << "This failure is expected.";
        +  }, "This failure is expected.");
        +}
        +
        +TEST_F(TestForDeathTest, ExitMacros) {
        +  TestExitMacros();
        +}
        +
        +TEST_F(TestForDeathTest, ExitMacrosUsingFork) {
        +  testing::GTEST_FLAG(death_test_use_fork) = true;
        +  TestExitMacros();
        +}
        +
        +TEST_F(TestForDeathTest, InvalidStyle) {
        +  testing::GTEST_FLAG(death_test_style) = "rococo";
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_DEATH(_exit(0), "") << "This failure is expected.";
        +  }, "This failure is expected.");
        +}
        +
        +TEST_F(TestForDeathTest, DeathTestFailedOutput) {
        +  testing::GTEST_FLAG(death_test_style) = "fast";
        +  EXPECT_NONFATAL_FAILURE(
        +      EXPECT_DEATH(DieWithMessage("death\n"),
        +                   "expected message"),
        +      "Actual msg:\n"
        +      "[  DEATH   ] death\n");
        +}
        +
        +TEST_F(TestForDeathTest, DeathTestUnexpectedReturnOutput) {
        +  testing::GTEST_FLAG(death_test_style) = "fast";
        +  EXPECT_NONFATAL_FAILURE(
        +      EXPECT_DEATH({
        +          fprintf(stderr, "returning\n");
        +          fflush(stderr);
        +          return;
        +        }, ""),
        +      "    Result: illegal return in test statement.\n"
        +      " Error msg:\n"
        +      "[  DEATH   ] returning\n");
        +}
        +
        +TEST_F(TestForDeathTest, DeathTestBadExitCodeOutput) {
        +  testing::GTEST_FLAG(death_test_style) = "fast";
        +  EXPECT_NONFATAL_FAILURE(
        +      EXPECT_EXIT(DieWithMessage("exiting with rc 1\n"),
        +                  testing::ExitedWithCode(3),
        +                  "expected message"),
        +      "    Result: died but not with expected exit code:\n"
        +      "            Exited with exit status 1\n"
        +      "Actual msg:\n"
        +      "[  DEATH   ] exiting with rc 1\n");
        +}
        +
        +TEST_F(TestForDeathTest, DeathTestMultiLineMatchFail) {
        +  testing::GTEST_FLAG(death_test_style) = "fast";
        +  EXPECT_NONFATAL_FAILURE(
        +      EXPECT_DEATH(DieWithMessage("line 1\nline 2\nline 3\n"),
        +                   "line 1\nxyz\nline 3\n"),
        +      "Actual msg:\n"
        +      "[  DEATH   ] line 1\n"
        +      "[  DEATH   ] line 2\n"
        +      "[  DEATH   ] line 3\n");
        +}
        +
        +TEST_F(TestForDeathTest, DeathTestMultiLineMatchPass) {
        +  testing::GTEST_FLAG(death_test_style) = "fast";
        +  EXPECT_DEATH(DieWithMessage("line 1\nline 2\nline 3\n"),
        +               "line 1\nline 2\nline 3\n");
        +}
        +
        +// A DeathTestFactory that returns MockDeathTests.
        +class MockDeathTestFactory : public DeathTestFactory {
        + public:
        +  MockDeathTestFactory();
        +  virtual bool Create(const char* statement,
        +                      const ::testing::internal::RE* regex,
        +                      const char* file, int line, DeathTest** test);
        +
        +  // Sets the parameters for subsequent calls to Create.
        +  void SetParameters(bool create, DeathTest::TestRole role,
        +                     int status, bool passed);
        +
        +  // Accessors.
        +  int AssumeRoleCalls() const { return assume_role_calls_; }
        +  int WaitCalls() const { return wait_calls_; }
        +  size_t PassedCalls() const { return passed_args_.size(); }
        +  bool PassedArgument(int n) const { return passed_args_[n]; }
        +  size_t AbortCalls() const { return abort_args_.size(); }
        +  DeathTest::AbortReason AbortArgument(int n) const {
        +    return abort_args_[n];
        +  }
        +  bool TestDeleted() const { return test_deleted_; }
        +
        + private:
        +  friend class MockDeathTest;
        +  // If true, Create will return a MockDeathTest; otherwise it returns
        +  // NULL.
        +  bool create_;
        +  // The value a MockDeathTest will return from its AssumeRole method.
        +  DeathTest::TestRole role_;
        +  // The value a MockDeathTest will return from its Wait method.
        +  int status_;
        +  // The value a MockDeathTest will return from its Passed method.
        +  bool passed_;
        +
        +  // Number of times AssumeRole was called.
        +  int assume_role_calls_;
        +  // Number of times Wait was called.
        +  int wait_calls_;
        +  // The arguments to the calls to Passed since the last call to
        +  // SetParameters.
        +  std::vector<bool> passed_args_;
        +  // The arguments to the calls to Abort since the last call to
        +  // SetParameters.
        +  std::vector<DeathTest::AbortReason> abort_args_;
        +  // True if the last MockDeathTest returned by Create has been
        +  // deleted.
        +  bool test_deleted_;
        +};
        +
        +
        +// A DeathTest implementation useful in testing.  It returns values set
        +// at its creation from its various inherited DeathTest methods, and
        +// reports calls to those methods to its parent MockDeathTestFactory
        +// object.
        +class MockDeathTest : public DeathTest {
        + public:
        +  MockDeathTest(MockDeathTestFactory *parent,
        +                TestRole role, int status, bool passed) :
        +      parent_(parent), role_(role), status_(status), passed_(passed) {
        +  }
        +  virtual ~MockDeathTest() {
        +    parent_->test_deleted_ = true;
        +  }
        +  virtual TestRole AssumeRole() {
        +    ++parent_->assume_role_calls_;
        +    return role_;
        +  }
        +  virtual int Wait() {
        +    ++parent_->wait_calls_;
        +    return status_;
        +  }
        +  virtual bool Passed(bool exit_status_ok) {
        +    parent_->passed_args_.push_back(exit_status_ok);
        +    return passed_;
        +  }
        +  virtual void Abort(AbortReason reason) {
        +    parent_->abort_args_.push_back(reason);
        +  }
        +
        + private:
        +  MockDeathTestFactory* const parent_;
        +  const TestRole role_;
        +  const int status_;
        +  const bool passed_;
        +};
        +
        +
        +// MockDeathTestFactory constructor.
        +MockDeathTestFactory::MockDeathTestFactory()
        +    : create_(true),
        +      role_(DeathTest::OVERSEE_TEST),
        +      status_(0),
        +      passed_(true),
        +      assume_role_calls_(0),
        +      wait_calls_(0),
        +      passed_args_(),
        +      abort_args_() {
        +}
        +
        +
        +// Sets the parameters for subsequent calls to Create.
        +void MockDeathTestFactory::SetParameters(bool create,
        +                                         DeathTest::TestRole role,
        +                                         int status, bool passed) {
        +  create_ = create;
        +  role_ = role;
        +  status_ = status;
        +  passed_ = passed;
        +
        +  assume_role_calls_ = 0;
        +  wait_calls_ = 0;
        +  passed_args_.clear();
        +  abort_args_.clear();
        +}
        +
        +
        +// Sets test to NULL (if create_ is false) or to the address of a new
        +// MockDeathTest object with parameters taken from the last call
        +// to SetParameters (if create_ is true).  Always returns true.
        +bool MockDeathTestFactory::Create(const char* /*statement*/,
        +                                  const ::testing::internal::RE* /*regex*/,
        +                                  const char* /*file*/,
        +                                  int /*line*/,
        +                                  DeathTest** test) {
        +  test_deleted_ = false;
        +  if (create_) {
        +    *test = new MockDeathTest(this, role_, status_, passed_);
        +  } else {
        +    *test = NULL;
        +  }
        +  return true;
        +}
        +
        +// A test fixture for testing the logic of the GTEST_DEATH_TEST_ macro.
        +// It installs a MockDeathTestFactory that is used for the duration
        +// of the test case.
        +class MacroLogicDeathTest : public testing::Test {
        + protected:
        +  static testing::internal::ReplaceDeathTestFactory* replacer_;
        +  static MockDeathTestFactory* factory_;
        +
        +  static void SetUpTestCase() {
        +    factory_ = new MockDeathTestFactory;
        +    replacer_ = new testing::internal::ReplaceDeathTestFactory(factory_);
        +  }
        +
        +  static void TearDownTestCase() {
        +    delete replacer_;
        +    replacer_ = NULL;
        +    delete factory_;
        +    factory_ = NULL;
        +  }
        +
        +  // Runs a death test that breaks the rules by returning.  Such a death
        +  // test cannot be run directly from a test routine that uses a
        +  // MockDeathTest, or the remainder of the routine will not be executed.
        +  static void RunReturningDeathTest(bool* flag) {
        +    ASSERT_DEATH({  // NOLINT
        +      *flag = true;
        +      return;
        +    }, "");
        +  }
        +};
        +
        +testing::internal::ReplaceDeathTestFactory* MacroLogicDeathTest::replacer_
        +    = NULL;
        +MockDeathTestFactory* MacroLogicDeathTest::factory_ = NULL;
        +
        +
        +// Test that nothing happens when the factory doesn't return a DeathTest:
        +TEST_F(MacroLogicDeathTest, NothingHappens) {
        +  bool flag = false;
        +  factory_->SetParameters(false, DeathTest::OVERSEE_TEST, 0, true);
        +  EXPECT_DEATH(flag = true, "");
        +  EXPECT_FALSE(flag);
        +  EXPECT_EQ(0, factory_->AssumeRoleCalls());
        +  EXPECT_EQ(0, factory_->WaitCalls());
        +  EXPECT_EQ(0U, factory_->PassedCalls());
        +  EXPECT_EQ(0U, factory_->AbortCalls());
        +  EXPECT_FALSE(factory_->TestDeleted());
        +}
        +
        +// Test that the parent process doesn't run the death test code,
        +// and that the Passed method returns false when the (simulated)
        +// child process exits with status 0:
        +TEST_F(MacroLogicDeathTest, ChildExitsSuccessfully) {
        +  bool flag = false;
        +  factory_->SetParameters(true, DeathTest::OVERSEE_TEST, 0, true);
        +  EXPECT_DEATH(flag = true, "");
        +  EXPECT_FALSE(flag);
        +  EXPECT_EQ(1, factory_->AssumeRoleCalls());
        +  EXPECT_EQ(1, factory_->WaitCalls());
        +  ASSERT_EQ(1U, factory_->PassedCalls());
        +  EXPECT_FALSE(factory_->PassedArgument(0));
        +  EXPECT_EQ(0U, factory_->AbortCalls());
        +  EXPECT_TRUE(factory_->TestDeleted());
        +}
        +
        +// Tests that the Passed method was given the argument "true" when
        +// the (simulated) child process exits with status 1:
        +TEST_F(MacroLogicDeathTest, ChildExitsUnsuccessfully) {
        +  bool flag = false;
        +  factory_->SetParameters(true, DeathTest::OVERSEE_TEST, 1, true);
        +  EXPECT_DEATH(flag = true, "");
        +  EXPECT_FALSE(flag);
        +  EXPECT_EQ(1, factory_->AssumeRoleCalls());
        +  EXPECT_EQ(1, factory_->WaitCalls());
        +  ASSERT_EQ(1U, factory_->PassedCalls());
        +  EXPECT_TRUE(factory_->PassedArgument(0));
        +  EXPECT_EQ(0U, factory_->AbortCalls());
        +  EXPECT_TRUE(factory_->TestDeleted());
        +}
        +
        +// Tests that the (simulated) child process executes the death test
        +// code, and is aborted with the correct AbortReason if it
        +// executes a return statement.
        +TEST_F(MacroLogicDeathTest, ChildPerformsReturn) {
        +  bool flag = false;
        +  factory_->SetParameters(true, DeathTest::EXECUTE_TEST, 0, true);
        +  RunReturningDeathTest(&flag);
        +  EXPECT_TRUE(flag);
        +  EXPECT_EQ(1, factory_->AssumeRoleCalls());
        +  EXPECT_EQ(0, factory_->WaitCalls());
        +  EXPECT_EQ(0U, factory_->PassedCalls());
        +  EXPECT_EQ(1U, factory_->AbortCalls());
        +  EXPECT_EQ(DeathTest::TEST_ENCOUNTERED_RETURN_STATEMENT,
        +            factory_->AbortArgument(0));
        +  EXPECT_TRUE(factory_->TestDeleted());
        +}
        +
        +// Tests that the (simulated) child process is aborted with the
        +// correct AbortReason if it does not die.
        +TEST_F(MacroLogicDeathTest, ChildDoesNotDie) {
        +  bool flag = false;
        +  factory_->SetParameters(true, DeathTest::EXECUTE_TEST, 0, true);
        +  EXPECT_DEATH(flag = true, "");
        +  EXPECT_TRUE(flag);
        +  EXPECT_EQ(1, factory_->AssumeRoleCalls());
        +  EXPECT_EQ(0, factory_->WaitCalls());
        +  EXPECT_EQ(0U, factory_->PassedCalls());
        +  // This time there are two calls to Abort: one since the test didn't
        +  // die, and another from the ReturnSentinel when it's destroyed.  The
        +  // sentinel normally isn't destroyed if a test doesn't die, since
        +  // _exit(2) is called in that case by ForkingDeathTest, but not by
        +  // our MockDeathTest.
        +  ASSERT_EQ(2U, factory_->AbortCalls());
        +  EXPECT_EQ(DeathTest::TEST_DID_NOT_DIE,
        +            factory_->AbortArgument(0));
        +  EXPECT_EQ(DeathTest::TEST_ENCOUNTERED_RETURN_STATEMENT,
        +            factory_->AbortArgument(1));
        +  EXPECT_TRUE(factory_->TestDeleted());
        +}
        +
        +// Tests that a successful death test does not register a successful
        +// test part.
        +TEST(SuccessRegistrationDeathTest, NoSuccessPart) {
        +  EXPECT_DEATH(_exit(1), "");
        +  EXPECT_EQ(0, GetUnitTestImpl()->current_test_result()->total_part_count());
        +}
        +
        +TEST(StreamingAssertionsDeathTest, DeathTest) {
        +  EXPECT_DEATH(_exit(1), "") << "unexpected failure";
        +  ASSERT_DEATH(_exit(1), "") << "unexpected failure";
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_DEATH(_exit(0), "") << "expected failure";
        +  }, "expected failure");
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_DEATH(_exit(0), "") << "expected failure";
        +  }, "expected failure");
        +}
        +
        +// Tests that GetLastErrnoDescription returns an empty string when the
        +// last error is 0 and non-empty string when it is non-zero.
        +TEST(GetLastErrnoDescription, GetLastErrnoDescriptionWorks) {
        +  errno = ENOENT;
        +  EXPECT_STRNE("", GetLastErrnoDescription().c_str());
        +  errno = 0;
        +  EXPECT_STREQ("", GetLastErrnoDescription().c_str());
        +}
        +
        +# if GTEST_OS_WINDOWS
        +TEST(AutoHandleTest, AutoHandleWorks) {
        +  HANDLE handle = ::CreateEvent(NULL, FALSE, FALSE, NULL);
        +  ASSERT_NE(INVALID_HANDLE_VALUE, handle);
        +
        +  // Tests that the AutoHandle is correctly initialized with a handle.
        +  testing::internal::AutoHandle auto_handle(handle);
        +  EXPECT_EQ(handle, auto_handle.Get());
        +
        +  // Tests that Reset assigns INVALID_HANDLE_VALUE.
        +  // Note that this cannot verify whether the original handle is closed.
        +  auto_handle.Reset();
        +  EXPECT_EQ(INVALID_HANDLE_VALUE, auto_handle.Get());
        +
        +  // Tests that Reset assigns the new handle.
        +  // Note that this cannot verify whether the original handle is closed.
        +  handle = ::CreateEvent(NULL, FALSE, FALSE, NULL);
        +  ASSERT_NE(INVALID_HANDLE_VALUE, handle);
        +  auto_handle.Reset(handle);
        +  EXPECT_EQ(handle, auto_handle.Get());
        +
        +  // Tests that AutoHandle contains INVALID_HANDLE_VALUE by default.
        +  testing::internal::AutoHandle auto_handle2;
        +  EXPECT_EQ(INVALID_HANDLE_VALUE, auto_handle2.Get());
        +}
        +# endif  // GTEST_OS_WINDOWS
        +
        +# if GTEST_OS_WINDOWS
        +typedef unsigned __int64 BiggestParsable;
        +typedef signed __int64 BiggestSignedParsable;
        +# else
        +typedef unsigned long long BiggestParsable;
        +typedef signed long long BiggestSignedParsable;
        +# endif  // GTEST_OS_WINDOWS
        +
        +// We cannot use std::numeric_limits<T>::max() as it clashes with the
        +// max() macro defined by <windows.h>.
        +const BiggestParsable kBiggestParsableMax = ULLONG_MAX;
        +const BiggestSignedParsable kBiggestSignedParsableMax = LLONG_MAX;
        +
        +TEST(ParseNaturalNumberTest, RejectsInvalidFormat) {
        +  BiggestParsable result = 0;
        +
        +  // Rejects non-numbers.
        +  EXPECT_FALSE(ParseNaturalNumber("non-number string", &result));
        +
        +  // Rejects numbers with whitespace prefix.
        +  EXPECT_FALSE(ParseNaturalNumber(" 123", &result));
        +
        +  // Rejects negative numbers.
        +  EXPECT_FALSE(ParseNaturalNumber("-123", &result));
        +
        +  // Rejects numbers starting with a plus sign.
        +  EXPECT_FALSE(ParseNaturalNumber("+123", &result));
        +  errno = 0;
        +}
        +
        +TEST(ParseNaturalNumberTest, RejectsOverflownNumbers) {
        +  BiggestParsable result = 0;
        +
        +  EXPECT_FALSE(ParseNaturalNumber("99999999999999999999999", &result));
        +
        +  signed char char_result = 0;
        +  EXPECT_FALSE(ParseNaturalNumber("200", &char_result));
        +  errno = 0;
        +}
        +
        +TEST(ParseNaturalNumberTest, AcceptsValidNumbers) {
        +  BiggestParsable result = 0;
        +
        +  result = 0;
        +  ASSERT_TRUE(ParseNaturalNumber("123", &result));
        +  EXPECT_EQ(123U, result);
        +
        +  // Check 0 as an edge case.
        +  result = 1;
        +  ASSERT_TRUE(ParseNaturalNumber("0", &result));
        +  EXPECT_EQ(0U, result);
        +
        +  result = 1;
        +  ASSERT_TRUE(ParseNaturalNumber("00000", &result));
        +  EXPECT_EQ(0U, result);
        +}
        +
        +TEST(ParseNaturalNumberTest, AcceptsTypeLimits) {
        +  Message msg;
        +  msg << kBiggestParsableMax;
        +
        +  BiggestParsable result = 0;
        +  EXPECT_TRUE(ParseNaturalNumber(msg.GetString(), &result));
        +  EXPECT_EQ(kBiggestParsableMax, result);
        +
        +  Message msg2;
        +  msg2 << kBiggestSignedParsableMax;
        +
        +  BiggestSignedParsable signed_result = 0;
        +  EXPECT_TRUE(ParseNaturalNumber(msg2.GetString(), &signed_result));
        +  EXPECT_EQ(kBiggestSignedParsableMax, signed_result);
        +
        +  Message msg3;
        +  msg3 << INT_MAX;
        +
        +  int int_result = 0;
        +  EXPECT_TRUE(ParseNaturalNumber(msg3.GetString(), &int_result));
        +  EXPECT_EQ(INT_MAX, int_result);
        +
        +  Message msg4;
        +  msg4 << UINT_MAX;
        +
        +  unsigned int uint_result = 0;
        +  EXPECT_TRUE(ParseNaturalNumber(msg4.GetString(), &uint_result));
        +  EXPECT_EQ(UINT_MAX, uint_result);
        +}
        +
        +TEST(ParseNaturalNumberTest, WorksForShorterIntegers) {
        +  short short_result = 0;
        +  ASSERT_TRUE(ParseNaturalNumber("123", &short_result));
        +  EXPECT_EQ(123, short_result);
        +
        +  signed char char_result = 0;
        +  ASSERT_TRUE(ParseNaturalNumber("123", &char_result));
        +  EXPECT_EQ(123, char_result);
        +}
        +
        +# if GTEST_OS_WINDOWS
        +TEST(EnvironmentTest, HandleFitsIntoSizeT) {
        +  // TODO(vladl@google.com): Remove this test after this condition is verified
        +  // in a static assertion in gtest-death-test.cc in the function
        +  // GetStatusFileDescriptor.
        +  ASSERT_TRUE(sizeof(HANDLE) <= sizeof(size_t));
        +}
        +# endif  // GTEST_OS_WINDOWS
        +
        +// Tests that EXPECT_DEATH_IF_SUPPORTED/ASSERT_DEATH_IF_SUPPORTED trigger
        +// failures when death tests are available on the system.
        +TEST(ConditionalDeathMacrosDeathTest, ExpectsDeathWhenDeathTestsAvailable) {
        +  EXPECT_DEATH_IF_SUPPORTED(DieInside("CondDeathTestExpectMacro"),
        +                            "death inside CondDeathTestExpectMacro");
        +  ASSERT_DEATH_IF_SUPPORTED(DieInside("CondDeathTestAssertMacro"),
        +                            "death inside CondDeathTestAssertMacro");
        +
        +  // Empty statement will not crash, which must trigger a failure.
        +  EXPECT_NONFATAL_FAILURE(EXPECT_DEATH_IF_SUPPORTED(;, ""), "");
        +  EXPECT_FATAL_FAILURE(ASSERT_DEATH_IF_SUPPORTED(;, ""), "");
        +}
        +
        +TEST(InDeathTestChildDeathTest, ReportsDeathTestCorrectlyInFastStyle) {
        +  testing::GTEST_FLAG(death_test_style) = "fast";
        +  EXPECT_FALSE(InDeathTestChild());
        +  EXPECT_DEATH({
        +    fprintf(stderr, InDeathTestChild() ? "Inside" : "Outside");
        +    fflush(stderr);
        +    _exit(1);
        +  }, "Inside");
        +}
        +
        +TEST(InDeathTestChildDeathTest, ReportsDeathTestCorrectlyInThreadSafeStyle) {
        +  testing::GTEST_FLAG(death_test_style) = "threadsafe";
        +  EXPECT_FALSE(InDeathTestChild());
        +  EXPECT_DEATH({
        +    fprintf(stderr, InDeathTestChild() ? "Inside" : "Outside");
        +    fflush(stderr);
        +    _exit(1);
        +  }, "Inside");
        +}
        +
        +#else  // !GTEST_HAS_DEATH_TEST follows
        +
        +using testing::internal::CaptureStderr;
        +using testing::internal::GetCapturedStderr;
        +
        +// Tests that EXPECT_DEATH_IF_SUPPORTED/ASSERT_DEATH_IF_SUPPORTED are still
        +// defined but do not trigger failures when death tests are not available on
        +// the system.
        +TEST(ConditionalDeathMacrosTest, WarnsWhenDeathTestsNotAvailable) {
        +  // Empty statement will not crash, but that should not trigger a failure
        +  // when death tests are not supported.
        +  CaptureStderr();
        +  EXPECT_DEATH_IF_SUPPORTED(;, "");
        +  std::string output = GetCapturedStderr();
        +  ASSERT_TRUE(NULL != strstr(output.c_str(),
        +                             "Death tests are not supported on this platform"));
        +  ASSERT_TRUE(NULL != strstr(output.c_str(), ";"));
        +
        +  // The streamed message should not be printed as there is no test failure.
        +  CaptureStderr();
        +  EXPECT_DEATH_IF_SUPPORTED(;, "") << "streamed message";
        +  output = GetCapturedStderr();
        +  ASSERT_TRUE(NULL == strstr(output.c_str(), "streamed message"));
        +
        +  CaptureStderr();
        +  ASSERT_DEATH_IF_SUPPORTED(;, "");  // NOLINT
        +  output = GetCapturedStderr();
        +  ASSERT_TRUE(NULL != strstr(output.c_str(),
        +                             "Death tests are not supported on this platform"));
        +  ASSERT_TRUE(NULL != strstr(output.c_str(), ";"));
        +
        +  CaptureStderr();
        +  ASSERT_DEATH_IF_SUPPORTED(;, "") << "streamed message";  // NOLINT
        +  output = GetCapturedStderr();
        +  ASSERT_TRUE(NULL == strstr(output.c_str(), "streamed message"));
        +}
        +
        +void FuncWithAssert(int* n) {
        +  ASSERT_DEATH_IF_SUPPORTED(return;, "");
        +  (*n)++;
        +}
        +
        +// Tests that ASSERT_DEATH_IF_SUPPORTED does not return from the current
        +// function (as ASSERT_DEATH does) if death tests are not supported.
        +TEST(ConditionalDeathMacrosTest, AssertDeatDoesNotReturnhIfUnsupported) {
        +  int n = 0;
        +  FuncWithAssert(&n);
        +  EXPECT_EQ(1, n);
        +}
        +
        +#endif  // !GTEST_HAS_DEATH_TEST
        +
        +// Tests that the death test macros expand to code which may or may not
        +// be followed by operator<<, and that in either case the complete text
        +// comprises only a single C++ statement.
        +//
        +// The syntax should work whether death tests are available or not.
        +TEST(ConditionalDeathMacrosSyntaxDeathTest, SingleStatement) {
        +  if (AlwaysFalse())
        +    // This would fail if executed; this is a compilation test only
        +    ASSERT_DEATH_IF_SUPPORTED(return, "");
        +
        +  if (AlwaysTrue())
        +    EXPECT_DEATH_IF_SUPPORTED(_exit(1), "");
        +  else
        +    // This empty "else" branch is meant to ensure that EXPECT_DEATH
        +    // doesn't expand into an "if" statement without an "else"
        +    ;  // NOLINT
        +
        +  if (AlwaysFalse())
        +    ASSERT_DEATH_IF_SUPPORTED(return, "") << "did not die";
        +
        +  if (AlwaysFalse())
        +    ;  // NOLINT
        +  else
        +    EXPECT_DEATH_IF_SUPPORTED(_exit(1), "") << 1 << 2 << 3;
        +}
        +
        +// Tests that conditional death test macros expand to code which interacts
        +// well with switch statements.
        +TEST(ConditionalDeathMacrosSyntaxDeathTest, SwitchStatement) {
        +  // Microsoft compiler usually complains about switch statements without
        +  // case labels. We suppress that warning for this test.
        +  GTEST_DISABLE_MSC_WARNINGS_PUSH_(4065)
        +
        +  switch (0)
        +    default:
        +      ASSERT_DEATH_IF_SUPPORTED(_exit(1), "")
        +          << "exit in default switch handler";
        +
        +  switch (0)
        +    case 0:
        +      EXPECT_DEATH_IF_SUPPORTED(_exit(1), "") << "exit in switch case";
        +
        +  GTEST_DISABLE_MSC_WARNINGS_POP_()
        +}
        +
        +// Tests that a test case whose name ends with "DeathTest" works fine
        +// on Windows.
        +TEST(NotADeathTest, Test) {
        +  SUCCEED();
        +}
        diff --git a/lib/ann/fann/lib/googletest/test/gtest-filepath_test.cc b/lib/ann/fann/lib/googletest/test/gtest-filepath_test.cc
        new file mode 100644
        index 0000000..da72986
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest-filepath_test.cc
        @@ -0,0 +1,662 @@
        +// Copyright 2008, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Authors: keith.ray@gmail.com (Keith Ray)
        +//
        +// Google Test filepath utilities
        +//
        +// This file tests classes and functions used internally by
        +// Google Test.  They are subject to change without notice.
        +//
        +// This file is #included from gtest_unittest.cc, to avoid changing
        +// build or make-files for some existing Google Test clients. Do not
        +// #include this file anywhere else!
        +
        +#include "gtest/internal/gtest-filepath.h"
        +#include "gtest/gtest.h"
        +
        +// Indicates that this translation unit is part of Google Test's
        +// implementation.  It must come before gtest-internal-inl.h is
        +// included, or there will be a compiler error.  This trick is to
        +// prevent a user from accidentally including gtest-internal-inl.h in
        +// his code.
        +#define GTEST_IMPLEMENTATION_ 1
        +#include "src/gtest-internal-inl.h"
        +#undef GTEST_IMPLEMENTATION_
        +
        +#if GTEST_OS_WINDOWS_MOBILE
        +# include <windows.h>  // NOLINT
        +#elif GTEST_OS_WINDOWS
        +# include <direct.h>  // NOLINT
        +#endif  // GTEST_OS_WINDOWS_MOBILE
        +
        +namespace testing {
        +namespace internal {
        +namespace {
        +
        +#if GTEST_OS_WINDOWS_MOBILE
        +// TODO(wan@google.com): Move these to the POSIX adapter section in
        +// gtest-port.h.
        +
        +// Windows CE doesn't have the remove C function.
        +int remove(const char* path) {
        +  LPCWSTR wpath = String::AnsiToUtf16(path);
        +  int ret = DeleteFile(wpath) ? 0 : -1;
        +  delete [] wpath;
        +  return ret;
        +}
        +// Windows CE doesn't have the _rmdir C function.
        +int _rmdir(const char* path) {
        +  FilePath filepath(path);
        +  LPCWSTR wpath = String::AnsiToUtf16(
        +      filepath.RemoveTrailingPathSeparator().c_str());
        +  int ret = RemoveDirectory(wpath) ? 0 : -1;
        +  delete [] wpath;
        +  return ret;
        +}
        +
        +#else
        +
        +TEST(GetCurrentDirTest, ReturnsCurrentDir) {
        +  const FilePath original_dir = FilePath::GetCurrentDir();
        +  EXPECT_FALSE(original_dir.IsEmpty());
        +
        +  posix::ChDir(GTEST_PATH_SEP_);
        +  const FilePath cwd = FilePath::GetCurrentDir();
        +  posix::ChDir(original_dir.c_str());
        +
        +# if GTEST_OS_WINDOWS
        +
        +  // Skips the ":".
        +  const char* const cwd_without_drive = strchr(cwd.c_str(), ':');
        +  ASSERT_TRUE(cwd_without_drive != NULL);
        +  EXPECT_STREQ(GTEST_PATH_SEP_, cwd_without_drive + 1);
        +
        +# else
        +
        +  EXPECT_EQ(GTEST_PATH_SEP_, cwd.string());
        +
        +# endif
        +}
        +
        +#endif  // GTEST_OS_WINDOWS_MOBILE
        +
        +TEST(IsEmptyTest, ReturnsTrueForEmptyPath) {
        +  EXPECT_TRUE(FilePath("").IsEmpty());
        +}
        +
        +TEST(IsEmptyTest, ReturnsFalseForNonEmptyPath) {
        +  EXPECT_FALSE(FilePath("a").IsEmpty());
        +  EXPECT_FALSE(FilePath(".").IsEmpty());
        +  EXPECT_FALSE(FilePath("a/b").IsEmpty());
        +  EXPECT_FALSE(FilePath("a\\b\\").IsEmpty());
        +}
        +
        +// RemoveDirectoryName "" -> ""
        +TEST(RemoveDirectoryNameTest, WhenEmptyName) {
        +  EXPECT_EQ("", FilePath("").RemoveDirectoryName().string());
        +}
        +
        +// RemoveDirectoryName "afile" -> "afile"
        +TEST(RemoveDirectoryNameTest, ButNoDirectory) {
        +  EXPECT_EQ("afile",
        +      FilePath("afile").RemoveDirectoryName().string());
        +}
        +
        +// RemoveDirectoryName "/afile" -> "afile"
        +TEST(RemoveDirectoryNameTest, RootFileShouldGiveFileName) {
        +  EXPECT_EQ("afile",
        +      FilePath(GTEST_PATH_SEP_ "afile").RemoveDirectoryName().string());
        +}
        +
        +// RemoveDirectoryName "adir/" -> ""
        +TEST(RemoveDirectoryNameTest, WhereThereIsNoFileName) {
        +  EXPECT_EQ("",
        +      FilePath("adir" GTEST_PATH_SEP_).RemoveDirectoryName().string());
        +}
        +
        +// RemoveDirectoryName "adir/afile" -> "afile"
        +TEST(RemoveDirectoryNameTest, ShouldGiveFileName) {
        +  EXPECT_EQ("afile",
        +      FilePath("adir" GTEST_PATH_SEP_ "afile").RemoveDirectoryName().string());
        +}
        +
        +// RemoveDirectoryName "adir/subdir/afile" -> "afile"
        +TEST(RemoveDirectoryNameTest, ShouldAlsoGiveFileName) {
        +  EXPECT_EQ("afile",
        +      FilePath("adir" GTEST_PATH_SEP_ "subdir" GTEST_PATH_SEP_ "afile")
        +      .RemoveDirectoryName().string());
        +}
        +
        +#if GTEST_HAS_ALT_PATH_SEP_
        +
        +// Tests that RemoveDirectoryName() works with the alternate separator
        +// on Windows.
        +
        +// RemoveDirectoryName("/afile") -> "afile"
        +TEST(RemoveDirectoryNameTest, RootFileShouldGiveFileNameForAlternateSeparator) {
        +  EXPECT_EQ("afile", FilePath("/afile").RemoveDirectoryName().string());
        +}
        +
        +// RemoveDirectoryName("adir/") -> ""
        +TEST(RemoveDirectoryNameTest, WhereThereIsNoFileNameForAlternateSeparator) {
        +  EXPECT_EQ("", FilePath("adir/").RemoveDirectoryName().string());
        +}
        +
        +// RemoveDirectoryName("adir/afile") -> "afile"
        +TEST(RemoveDirectoryNameTest, ShouldGiveFileNameForAlternateSeparator) {
        +  EXPECT_EQ("afile", FilePath("adir/afile").RemoveDirectoryName().string());
        +}
        +
        +// RemoveDirectoryName("adir/subdir/afile") -> "afile"
        +TEST(RemoveDirectoryNameTest, ShouldAlsoGiveFileNameForAlternateSeparator) {
        +  EXPECT_EQ("afile",
        +            FilePath("adir/subdir/afile").RemoveDirectoryName().string());
        +}
        +
        +#endif
        +
        +// RemoveFileName "" -> "./"
        +TEST(RemoveFileNameTest, EmptyName) {
        +#if GTEST_OS_WINDOWS_MOBILE
        +  // On Windows CE, we use the root as the current directory.
        +  EXPECT_EQ(GTEST_PATH_SEP_, FilePath("").RemoveFileName().string());
        +#else
        +  EXPECT_EQ("." GTEST_PATH_SEP_, FilePath("").RemoveFileName().string());
        +#endif
        +}
        +
        +// RemoveFileName "adir/" -> "adir/"
        +TEST(RemoveFileNameTest, ButNoFile) {
        +  EXPECT_EQ("adir" GTEST_PATH_SEP_,
        +      FilePath("adir" GTEST_PATH_SEP_).RemoveFileName().string());
        +}
        +
        +// RemoveFileName "adir/afile" -> "adir/"
        +TEST(RemoveFileNameTest, GivesDirName) {
        +  EXPECT_EQ("adir" GTEST_PATH_SEP_,
        +            FilePath("adir" GTEST_PATH_SEP_ "afile").RemoveFileName().string());
        +}
        +
        +// RemoveFileName "adir/subdir/afile" -> "adir/subdir/"
        +TEST(RemoveFileNameTest, GivesDirAndSubDirName) {
        +  EXPECT_EQ("adir" GTEST_PATH_SEP_ "subdir" GTEST_PATH_SEP_,
        +      FilePath("adir" GTEST_PATH_SEP_ "subdir" GTEST_PATH_SEP_ "afile")
        +      .RemoveFileName().string());
        +}
        +
        +// RemoveFileName "/afile" -> "/"
        +TEST(RemoveFileNameTest, GivesRootDir) {
        +  EXPECT_EQ(GTEST_PATH_SEP_,
        +      FilePath(GTEST_PATH_SEP_ "afile").RemoveFileName().string());
        +}
        +
        +#if GTEST_HAS_ALT_PATH_SEP_
        +
        +// Tests that RemoveFileName() works with the alternate separator on
        +// Windows.
        +
        +// RemoveFileName("adir/") -> "adir/"
        +TEST(RemoveFileNameTest, ButNoFileForAlternateSeparator) {
        +  EXPECT_EQ("adir" GTEST_PATH_SEP_,
        +            FilePath("adir/").RemoveFileName().string());
        +}
        +
        +// RemoveFileName("adir/afile") -> "adir/"
        +TEST(RemoveFileNameTest, GivesDirNameForAlternateSeparator) {
        +  EXPECT_EQ("adir" GTEST_PATH_SEP_,
        +            FilePath("adir/afile").RemoveFileName().string());
        +}
        +
        +// RemoveFileName("adir/subdir/afile") -> "adir/subdir/"
        +TEST(RemoveFileNameTest, GivesDirAndSubDirNameForAlternateSeparator) {
        +  EXPECT_EQ("adir" GTEST_PATH_SEP_ "subdir" GTEST_PATH_SEP_,
        +            FilePath("adir/subdir/afile").RemoveFileName().string());
        +}
        +
        +// RemoveFileName("/afile") -> "\"
        +TEST(RemoveFileNameTest, GivesRootDirForAlternateSeparator) {
        +  EXPECT_EQ(GTEST_PATH_SEP_, FilePath("/afile").RemoveFileName().string());
        +}
        +
        +#endif
        +
        +TEST(MakeFileNameTest, GenerateWhenNumberIsZero) {
        +  FilePath actual = FilePath::MakeFileName(FilePath("foo"), FilePath("bar"),
        +      0, "xml");
        +  EXPECT_EQ("foo" GTEST_PATH_SEP_ "bar.xml", actual.string());
        +}
        +
        +TEST(MakeFileNameTest, GenerateFileNameNumberGtZero) {
        +  FilePath actual = FilePath::MakeFileName(FilePath("foo"), FilePath("bar"),
        +      12, "xml");
        +  EXPECT_EQ("foo" GTEST_PATH_SEP_ "bar_12.xml", actual.string());
        +}
        +
        +TEST(MakeFileNameTest, GenerateFileNameWithSlashNumberIsZero) {
        +  FilePath actual = FilePath::MakeFileName(FilePath("foo" GTEST_PATH_SEP_),
        +      FilePath("bar"), 0, "xml");
        +  EXPECT_EQ("foo" GTEST_PATH_SEP_ "bar.xml", actual.string());
        +}
        +
        +TEST(MakeFileNameTest, GenerateFileNameWithSlashNumberGtZero) {
        +  FilePath actual = FilePath::MakeFileName(FilePath("foo" GTEST_PATH_SEP_),
        +      FilePath("bar"), 12, "xml");
        +  EXPECT_EQ("foo" GTEST_PATH_SEP_ "bar_12.xml", actual.string());
        +}
        +
        +TEST(MakeFileNameTest, GenerateWhenNumberIsZeroAndDirIsEmpty) {
        +  FilePath actual = FilePath::MakeFileName(FilePath(""), FilePath("bar"),
        +      0, "xml");
        +  EXPECT_EQ("bar.xml", actual.string());
        +}
        +
        +TEST(MakeFileNameTest, GenerateWhenNumberIsNotZeroAndDirIsEmpty) {
        +  FilePath actual = FilePath::MakeFileName(FilePath(""), FilePath("bar"),
        +      14, "xml");
        +  EXPECT_EQ("bar_14.xml", actual.string());
        +}
        +
        +TEST(ConcatPathsTest, WorksWhenDirDoesNotEndWithPathSep) {
        +  FilePath actual = FilePath::ConcatPaths(FilePath("foo"),
        +                                          FilePath("bar.xml"));
        +  EXPECT_EQ("foo" GTEST_PATH_SEP_ "bar.xml", actual.string());
        +}
        +
        +TEST(ConcatPathsTest, WorksWhenPath1EndsWithPathSep) {
        +  FilePath actual = FilePath::ConcatPaths(FilePath("foo" GTEST_PATH_SEP_),
        +                                          FilePath("bar.xml"));
        +  EXPECT_EQ("foo" GTEST_PATH_SEP_ "bar.xml", actual.string());
        +}
        +
        +TEST(ConcatPathsTest, Path1BeingEmpty) {
        +  FilePath actual = FilePath::ConcatPaths(FilePath(""),
        +                                          FilePath("bar.xml"));
        +  EXPECT_EQ("bar.xml", actual.string());
        +}
        +
        +TEST(ConcatPathsTest, Path2BeingEmpty) {
        +  FilePath actual = FilePath::ConcatPaths(FilePath("foo"), FilePath(""));
        +  EXPECT_EQ("foo" GTEST_PATH_SEP_, actual.string());
        +}
        +
        +TEST(ConcatPathsTest, BothPathBeingEmpty) {
        +  FilePath actual = FilePath::ConcatPaths(FilePath(""),
        +                                          FilePath(""));
        +  EXPECT_EQ("", actual.string());
        +}
        +
        +TEST(ConcatPathsTest, Path1ContainsPathSep) {
        +  FilePath actual = FilePath::ConcatPaths(FilePath("foo" GTEST_PATH_SEP_ "bar"),
        +                                          FilePath("foobar.xml"));
        +  EXPECT_EQ("foo" GTEST_PATH_SEP_ "bar" GTEST_PATH_SEP_ "foobar.xml",
        +            actual.string());
        +}
        +
        +TEST(ConcatPathsTest, Path2ContainsPathSep) {
        +  FilePath actual = FilePath::ConcatPaths(
        +      FilePath("foo" GTEST_PATH_SEP_),
        +      FilePath("bar" GTEST_PATH_SEP_ "bar.xml"));
        +  EXPECT_EQ("foo" GTEST_PATH_SEP_ "bar" GTEST_PATH_SEP_ "bar.xml",
        +            actual.string());
        +}
        +
        +TEST(ConcatPathsTest, Path2EndsWithPathSep) {
        +  FilePath actual = FilePath::ConcatPaths(FilePath("foo"),
        +                                          FilePath("bar" GTEST_PATH_SEP_));
        +  EXPECT_EQ("foo" GTEST_PATH_SEP_ "bar" GTEST_PATH_SEP_, actual.string());
        +}
        +
        +// RemoveTrailingPathSeparator "" -> ""
        +TEST(RemoveTrailingPathSeparatorTest, EmptyString) {
        +  EXPECT_EQ("", FilePath("").RemoveTrailingPathSeparator().string());
        +}
        +
        +// RemoveTrailingPathSeparator "foo" -> "foo"
        +TEST(RemoveTrailingPathSeparatorTest, FileNoSlashString) {
        +  EXPECT_EQ("foo", FilePath("foo").RemoveTrailingPathSeparator().string());
        +}
        +
        +// RemoveTrailingPathSeparator "foo/" -> "foo"
        +TEST(RemoveTrailingPathSeparatorTest, ShouldRemoveTrailingSeparator) {
        +  EXPECT_EQ("foo",
        +      FilePath("foo" GTEST_PATH_SEP_).RemoveTrailingPathSeparator().string());
        +#if GTEST_HAS_ALT_PATH_SEP_
        +  EXPECT_EQ("foo", FilePath("foo/").RemoveTrailingPathSeparator().string());
        +#endif
        +}
        +
        +// RemoveTrailingPathSeparator "foo/bar/" -> "foo/bar/"
        +TEST(RemoveTrailingPathSeparatorTest, ShouldRemoveLastSeparator) {
        +  EXPECT_EQ("foo" GTEST_PATH_SEP_ "bar",
        +            FilePath("foo" GTEST_PATH_SEP_ "bar" GTEST_PATH_SEP_)
        +                .RemoveTrailingPathSeparator().string());
        +}
        +
        +// RemoveTrailingPathSeparator "foo/bar" -> "foo/bar"
        +TEST(RemoveTrailingPathSeparatorTest, ShouldReturnUnmodified) {
        +  EXPECT_EQ("foo" GTEST_PATH_SEP_ "bar",
        +            FilePath("foo" GTEST_PATH_SEP_ "bar")
        +                .RemoveTrailingPathSeparator().string());
        +}
        +
        +TEST(DirectoryTest, RootDirectoryExists) {
        +#if GTEST_OS_WINDOWS  // We are on Windows.
        +  char current_drive[_MAX_PATH];  // NOLINT
        +  current_drive[0] = static_cast<char>(_getdrive() + 'A' - 1);
        +  current_drive[1] = ':';
        +  current_drive[2] = '\\';
        +  current_drive[3] = '\0';
        +  EXPECT_TRUE(FilePath(current_drive).DirectoryExists());
        +#else
        +  EXPECT_TRUE(FilePath("/").DirectoryExists());
        +#endif  // GTEST_OS_WINDOWS
        +}
        +
        +#if GTEST_OS_WINDOWS
        +TEST(DirectoryTest, RootOfWrongDriveDoesNotExists) {
        +  const int saved_drive_ = _getdrive();
        +  // Find a drive that doesn't exist. Start with 'Z' to avoid common ones.
        +  for (char drive = 'Z'; drive >= 'A'; drive--)
        +    if (_chdrive(drive - 'A' + 1) == -1) {
        +      char non_drive[_MAX_PATH];  // NOLINT
        +      non_drive[0] = drive;
        +      non_drive[1] = ':';
        +      non_drive[2] = '\\';
        +      non_drive[3] = '\0';
        +      EXPECT_FALSE(FilePath(non_drive).DirectoryExists());
        +      break;
        +    }
        +  _chdrive(saved_drive_);
        +}
        +#endif  // GTEST_OS_WINDOWS
        +
        +#if !GTEST_OS_WINDOWS_MOBILE
        +// Windows CE _does_ consider an empty directory to exist.
        +TEST(DirectoryTest, EmptyPathDirectoryDoesNotExist) {
        +  EXPECT_FALSE(FilePath("").DirectoryExists());
        +}
        +#endif  // !GTEST_OS_WINDOWS_MOBILE
        +
        +TEST(DirectoryTest, CurrentDirectoryExists) {
        +#if GTEST_OS_WINDOWS  // We are on Windows.
        +# ifndef _WIN32_CE  // Windows CE doesn't have a current directory.
        +
        +  EXPECT_TRUE(FilePath(".").DirectoryExists());
        +  EXPECT_TRUE(FilePath(".\\").DirectoryExists());
        +
        +# endif  // _WIN32_CE
        +#else
        +  EXPECT_TRUE(FilePath(".").DirectoryExists());
        +  EXPECT_TRUE(FilePath("./").DirectoryExists());
        +#endif  // GTEST_OS_WINDOWS
        +}
        +
        +// "foo/bar" == foo//bar" == "foo///bar"
        +TEST(NormalizeTest, MultipleConsecutiveSepaparatorsInMidstring) {
        +  EXPECT_EQ("foo" GTEST_PATH_SEP_ "bar",
        +            FilePath("foo" GTEST_PATH_SEP_ "bar").string());
        +  EXPECT_EQ("foo" GTEST_PATH_SEP_ "bar",
        +            FilePath("foo" GTEST_PATH_SEP_ GTEST_PATH_SEP_ "bar").string());
        +  EXPECT_EQ("foo" GTEST_PATH_SEP_ "bar",
        +            FilePath("foo" GTEST_PATH_SEP_ GTEST_PATH_SEP_
        +                     GTEST_PATH_SEP_ "bar").string());
        +}
        +
        +// "/bar" == //bar" == "///bar"
        +TEST(NormalizeTest, MultipleConsecutiveSepaparatorsAtStringStart) {
        +  EXPECT_EQ(GTEST_PATH_SEP_ "bar",
        +    FilePath(GTEST_PATH_SEP_ "bar").string());
        +  EXPECT_EQ(GTEST_PATH_SEP_ "bar",
        +    FilePath(GTEST_PATH_SEP_ GTEST_PATH_SEP_ "bar").string());
        +  EXPECT_EQ(GTEST_PATH_SEP_ "bar",
        +    FilePath(GTEST_PATH_SEP_ GTEST_PATH_SEP_ GTEST_PATH_SEP_ "bar").string());
        +}
        +
        +// "foo/" == foo//" == "foo///"
        +TEST(NormalizeTest, MultipleConsecutiveSepaparatorsAtStringEnd) {
        +  EXPECT_EQ("foo" GTEST_PATH_SEP_,
        +    FilePath("foo" GTEST_PATH_SEP_).string());
        +  EXPECT_EQ("foo" GTEST_PATH_SEP_,
        +    FilePath("foo" GTEST_PATH_SEP_ GTEST_PATH_SEP_).string());
        +  EXPECT_EQ("foo" GTEST_PATH_SEP_,
        +    FilePath("foo" GTEST_PATH_SEP_ GTEST_PATH_SEP_ GTEST_PATH_SEP_).string());
        +}
        +
        +#if GTEST_HAS_ALT_PATH_SEP_
        +
        +// Tests that separators at the end of the string are normalized
        +// regardless of their combination (e.g. "foo\" =="foo/\" ==
        +// "foo\\/").
        +TEST(NormalizeTest, MixAlternateSeparatorAtStringEnd) {
        +  EXPECT_EQ("foo" GTEST_PATH_SEP_,
        +            FilePath("foo/").string());
        +  EXPECT_EQ("foo" GTEST_PATH_SEP_,
        +            FilePath("foo" GTEST_PATH_SEP_ "/").string());
        +  EXPECT_EQ("foo" GTEST_PATH_SEP_,
        +            FilePath("foo//" GTEST_PATH_SEP_).string());
        +}
        +
        +#endif
        +
        +TEST(AssignmentOperatorTest, DefaultAssignedToNonDefault) {
        +  FilePath default_path;
        +  FilePath non_default_path("path");
        +  non_default_path = default_path;
        +  EXPECT_EQ("", non_default_path.string());
        +  EXPECT_EQ("", default_path.string());  // RHS var is unchanged.
        +}
        +
        +TEST(AssignmentOperatorTest, NonDefaultAssignedToDefault) {
        +  FilePath non_default_path("path");
        +  FilePath default_path;
        +  default_path = non_default_path;
        +  EXPECT_EQ("path", default_path.string());
        +  EXPECT_EQ("path", non_default_path.string());  // RHS var is unchanged.
        +}
        +
        +TEST(AssignmentOperatorTest, ConstAssignedToNonConst) {
        +  const FilePath const_default_path("const_path");
        +  FilePath non_default_path("path");
        +  non_default_path = const_default_path;
        +  EXPECT_EQ("const_path", non_default_path.string());
        +}
        +
        +class DirectoryCreationTest : public Test {
        + protected:
        +  virtual void SetUp() {
        +    testdata_path_.Set(FilePath(
        +        TempDir() + GetCurrentExecutableName().string() +
        +        "_directory_creation" GTEST_PATH_SEP_ "test" GTEST_PATH_SEP_));
        +    testdata_file_.Set(testdata_path_.RemoveTrailingPathSeparator());
        +
        +    unique_file0_.Set(FilePath::MakeFileName(testdata_path_, FilePath("unique"),
        +        0, "txt"));
        +    unique_file1_.Set(FilePath::MakeFileName(testdata_path_, FilePath("unique"),
        +        1, "txt"));
        +
        +    remove(testdata_file_.c_str());
        +    remove(unique_file0_.c_str());
        +    remove(unique_file1_.c_str());
        +    posix::RmDir(testdata_path_.c_str());
        +  }
        +
        +  virtual void TearDown() {
        +    remove(testdata_file_.c_str());
        +    remove(unique_file0_.c_str());
        +    remove(unique_file1_.c_str());
        +    posix::RmDir(testdata_path_.c_str());
        +  }
        +
        +  void CreateTextFile(const char* filename) {
        +    FILE* f = posix::FOpen(filename, "w");
        +    fprintf(f, "text\n");
        +    fclose(f);
        +  }
        +
        +  // Strings representing a directory and a file, with identical paths
        +  // except for the trailing separator character that distinquishes
        +  // a directory named 'test' from a file named 'test'. Example names:
        +  FilePath testdata_path_;  // "/tmp/directory_creation/test/"
        +  FilePath testdata_file_;  // "/tmp/directory_creation/test"
        +  FilePath unique_file0_;  // "/tmp/directory_creation/test/unique.txt"
        +  FilePath unique_file1_;  // "/tmp/directory_creation/test/unique_1.txt"
        +};
        +
        +TEST_F(DirectoryCreationTest, CreateDirectoriesRecursively) {
        +  EXPECT_FALSE(testdata_path_.DirectoryExists()) << testdata_path_.string();
        +  EXPECT_TRUE(testdata_path_.CreateDirectoriesRecursively());
        +  EXPECT_TRUE(testdata_path_.DirectoryExists());
        +}
        +
        +TEST_F(DirectoryCreationTest, CreateDirectoriesForAlreadyExistingPath) {
        +  EXPECT_FALSE(testdata_path_.DirectoryExists()) << testdata_path_.string();
        +  EXPECT_TRUE(testdata_path_.CreateDirectoriesRecursively());
        +  // Call 'create' again... should still succeed.
        +  EXPECT_TRUE(testdata_path_.CreateDirectoriesRecursively());
        +}
        +
        +TEST_F(DirectoryCreationTest, CreateDirectoriesAndUniqueFilename) {
        +  FilePath file_path(FilePath::GenerateUniqueFileName(testdata_path_,
        +      FilePath("unique"), "txt"));
        +  EXPECT_EQ(unique_file0_.string(), file_path.string());
        +  EXPECT_FALSE(file_path.FileOrDirectoryExists());  // file not there
        +
        +  testdata_path_.CreateDirectoriesRecursively();
        +  EXPECT_FALSE(file_path.FileOrDirectoryExists());  // file still not there
        +  CreateTextFile(file_path.c_str());
        +  EXPECT_TRUE(file_path.FileOrDirectoryExists());
        +
        +  FilePath file_path2(FilePath::GenerateUniqueFileName(testdata_path_,
        +      FilePath("unique"), "txt"));
        +  EXPECT_EQ(unique_file1_.string(), file_path2.string());
        +  EXPECT_FALSE(file_path2.FileOrDirectoryExists());  // file not there
        +  CreateTextFile(file_path2.c_str());
        +  EXPECT_TRUE(file_path2.FileOrDirectoryExists());
        +}
        +
        +TEST_F(DirectoryCreationTest, CreateDirectoriesFail) {
        +  // force a failure by putting a file where we will try to create a directory.
        +  CreateTextFile(testdata_file_.c_str());
        +  EXPECT_TRUE(testdata_file_.FileOrDirectoryExists());
        +  EXPECT_FALSE(testdata_file_.DirectoryExists());
        +  EXPECT_FALSE(testdata_file_.CreateDirectoriesRecursively());
        +}
        +
        +TEST(NoDirectoryCreationTest, CreateNoDirectoriesForDefaultXmlFile) {
        +  const FilePath test_detail_xml("test_detail.xml");
        +  EXPECT_FALSE(test_detail_xml.CreateDirectoriesRecursively());
        +}
        +
        +TEST(FilePathTest, DefaultConstructor) {
        +  FilePath fp;
        +  EXPECT_EQ("", fp.string());
        +}
        +
        +TEST(FilePathTest, CharAndCopyConstructors) {
        +  const FilePath fp("spicy");
        +  EXPECT_EQ("spicy", fp.string());
        +
        +  const FilePath fp_copy(fp);
        +  EXPECT_EQ("spicy", fp_copy.string());
        +}
        +
        +TEST(FilePathTest, StringConstructor) {
        +  const FilePath fp(std::string("cider"));
        +  EXPECT_EQ("cider", fp.string());
        +}
        +
        +TEST(FilePathTest, Set) {
        +  const FilePath apple("apple");
        +  FilePath mac("mac");
        +  mac.Set(apple);  // Implement Set() since overloading operator= is forbidden.
        +  EXPECT_EQ("apple", mac.string());
        +  EXPECT_EQ("apple", apple.string());
        +}
        +
        +TEST(FilePathTest, ToString) {
        +  const FilePath file("drink");
        +  EXPECT_EQ("drink", file.string());
        +}
        +
        +TEST(FilePathTest, RemoveExtension) {
        +  EXPECT_EQ("app", FilePath("app.cc").RemoveExtension("cc").string());
        +  EXPECT_EQ("app", FilePath("app.exe").RemoveExtension("exe").string());
        +  EXPECT_EQ("APP", FilePath("APP.EXE").RemoveExtension("exe").string());
        +}
        +
        +TEST(FilePathTest, RemoveExtensionWhenThereIsNoExtension) {
        +  EXPECT_EQ("app", FilePath("app").RemoveExtension("exe").string());
        +}
        +
        +TEST(FilePathTest, IsDirectory) {
        +  EXPECT_FALSE(FilePath("cola").IsDirectory());
        +  EXPECT_TRUE(FilePath("koala" GTEST_PATH_SEP_).IsDirectory());
        +#if GTEST_HAS_ALT_PATH_SEP_
        +  EXPECT_TRUE(FilePath("koala/").IsDirectory());
        +#endif
        +}
        +
        +TEST(FilePathTest, IsAbsolutePath) {
        +  EXPECT_FALSE(FilePath("is" GTEST_PATH_SEP_ "relative").IsAbsolutePath());
        +  EXPECT_FALSE(FilePath("").IsAbsolutePath());
        +#if GTEST_OS_WINDOWS
        +  EXPECT_TRUE(FilePath("c:\\" GTEST_PATH_SEP_ "is_not"
        +                       GTEST_PATH_SEP_ "relative").IsAbsolutePath());
        +  EXPECT_FALSE(FilePath("c:foo" GTEST_PATH_SEP_ "bar").IsAbsolutePath());
        +  EXPECT_TRUE(FilePath("c:/" GTEST_PATH_SEP_ "is_not"
        +                       GTEST_PATH_SEP_ "relative").IsAbsolutePath());
        +#else
        +  EXPECT_TRUE(FilePath(GTEST_PATH_SEP_ "is_not" GTEST_PATH_SEP_ "relative")
        +              .IsAbsolutePath());
        +#endif  // GTEST_OS_WINDOWS
        +}
        +
        +TEST(FilePathTest, IsRootDirectory) {
        +#if GTEST_OS_WINDOWS
        +  EXPECT_TRUE(FilePath("a:\\").IsRootDirectory());
        +  EXPECT_TRUE(FilePath("Z:/").IsRootDirectory());
        +  EXPECT_TRUE(FilePath("e://").IsRootDirectory());
        +  EXPECT_FALSE(FilePath("").IsRootDirectory());
        +  EXPECT_FALSE(FilePath("b:").IsRootDirectory());
        +  EXPECT_FALSE(FilePath("b:a").IsRootDirectory());
        +  EXPECT_FALSE(FilePath("8:/").IsRootDirectory());
        +  EXPECT_FALSE(FilePath("c|/").IsRootDirectory());
        +#else
        +  EXPECT_TRUE(FilePath("/").IsRootDirectory());
        +  EXPECT_TRUE(FilePath("//").IsRootDirectory());
        +  EXPECT_FALSE(FilePath("").IsRootDirectory());
        +  EXPECT_FALSE(FilePath("\\").IsRootDirectory());
        +  EXPECT_FALSE(FilePath("/x").IsRootDirectory());
        +#endif
        +}
        +
        +}  // namespace
        +}  // namespace internal
        +}  // namespace testing
        diff --git a/lib/ann/fann/lib/googletest/test/gtest-linked_ptr_test.cc b/lib/ann/fann/lib/googletest/test/gtest-linked_ptr_test.cc
        new file mode 100644
        index 0000000..6fcf512
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest-linked_ptr_test.cc
        @@ -0,0 +1,154 @@
        +// Copyright 2003, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Authors: Dan Egnor (egnor@google.com)
        +// Ported to Windows: Vadim Berman (vadimb@google.com)
        +
        +#include "gtest/internal/gtest-linked_ptr.h"
        +
        +#include <stdlib.h>
        +#include "gtest/gtest.h"
        +
        +namespace {
        +
        +using testing::Message;
        +using testing::internal::linked_ptr;
        +
        +int num;
        +Message* history = NULL;
        +
        +// Class which tracks allocation/deallocation
        +class A {
        + public:
        +  A(): mynum(num++) { *history << "A" << mynum << " ctor\n"; }
        +  virtual ~A() { *history << "A" << mynum << " dtor\n"; }
        +  virtual void Use() { *history << "A" << mynum << " use\n"; }
        + protected:
        +  int mynum;
        +};
        +
        +// Subclass
        +class B : public A {
        + public:
        +  B() { *history << "B" << mynum << " ctor\n"; }
        +  ~B() { *history << "B" << mynum << " dtor\n"; }
        +  virtual void Use() { *history << "B" << mynum << " use\n"; }
        +};
        +
        +class LinkedPtrTest : public testing::Test {
        + public:
        +  LinkedPtrTest() {
        +    num = 0;
        +    history = new Message;
        +  }
        +
        +  virtual ~LinkedPtrTest() {
        +    delete history;
        +    history = NULL;
        +  }
        +};
        +
        +TEST_F(LinkedPtrTest, GeneralTest) {
        +  {
        +    linked_ptr<A> a0, a1, a2;
        +    // Use explicit function call notation here to suppress self-assign warning.
        +    a0.operator=(a0);
        +    a1 = a2;
        +    ASSERT_EQ(a0.get(), static_cast<A*>(NULL));
        +    ASSERT_EQ(a1.get(), static_cast<A*>(NULL));
        +    ASSERT_EQ(a2.get(), static_cast<A*>(NULL));
        +    ASSERT_TRUE(a0 == NULL);
        +    ASSERT_TRUE(a1 == NULL);
        +    ASSERT_TRUE(a2 == NULL);
        +
        +    {
        +      linked_ptr<A> a3(new A);
        +      a0 = a3;
        +      ASSERT_TRUE(a0 == a3);
        +      ASSERT_TRUE(a0 != NULL);
        +      ASSERT_TRUE(a0.get() == a3);
        +      ASSERT_TRUE(a0 == a3.get());
        +      linked_ptr<A> a4(a0);
        +      a1 = a4;
        +      linked_ptr<A> a5(new A);
        +      ASSERT_TRUE(a5.get() != a3);
        +      ASSERT_TRUE(a5 != a3.get());
        +      a2 = a5;
        +      linked_ptr<B> b0(new B);
        +      linked_ptr<A> a6(b0);
        +      ASSERT_TRUE(b0 == a6);
        +      ASSERT_TRUE(a6 == b0);
        +      ASSERT_TRUE(b0 != NULL);
        +      a5 = b0;
        +      a5 = b0;
        +      a3->Use();
        +      a4->Use();
        +      a5->Use();
        +      a6->Use();
        +      b0->Use();
        +      (*b0).Use();
        +      b0.get()->Use();
        +    }
        +
        +    a0->Use();
        +    a1->Use();
        +    a2->Use();
        +
        +    a1 = a2;
        +    a2.reset(new A);
        +    a0.reset();
        +
        +    linked_ptr<A> a7;
        +  }
        +
        +  ASSERT_STREQ(
        +    "A0 ctor\n"
        +    "A1 ctor\n"
        +    "A2 ctor\n"
        +    "B2 ctor\n"
        +    "A0 use\n"
        +    "A0 use\n"
        +    "B2 use\n"
        +    "B2 use\n"
        +    "B2 use\n"
        +    "B2 use\n"
        +    "B2 use\n"
        +    "B2 dtor\n"
        +    "A2 dtor\n"
        +    "A0 use\n"
        +    "A0 use\n"
        +    "A1 use\n"
        +    "A3 ctor\n"
        +    "A0 dtor\n"
        +    "A3 dtor\n"
        +    "A1 dtor\n",
        +    history->GetString().c_str());
        +}
        +
        +}  // Unnamed namespace
        diff --git a/lib/ann/fann/lib/googletest/test/gtest-listener_test.cc b/lib/ann/fann/lib/googletest/test/gtest-listener_test.cc
        new file mode 100644
        index 0000000..9074768
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest-listener_test.cc
        @@ -0,0 +1,311 @@
        +// Copyright 2009 Google Inc. All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: vladl@google.com (Vlad Losev)
        +//
        +// The Google C++ Testing Framework (Google Test)
        +//
        +// This file verifies Google Test event listeners receive events at the
        +// right times.
        +
        +#include "gtest/gtest.h"
        +#include <vector>
        +
        +using ::testing::AddGlobalTestEnvironment;
        +using ::testing::Environment;
        +using ::testing::InitGoogleTest;
        +using ::testing::Test;
        +using ::testing::TestCase;
        +using ::testing::TestEventListener;
        +using ::testing::TestInfo;
        +using ::testing::TestPartResult;
        +using ::testing::UnitTest;
        +
        +// Used by tests to register their events.
        +std::vector<std::string>* g_events = NULL;
        +
        +namespace testing {
        +namespace internal {
        +
        +class EventRecordingListener : public TestEventListener {
        + public:
        +  explicit EventRecordingListener(const char* name) : name_(name) {}
        +
        + protected:
        +  virtual void OnTestProgramStart(const UnitTest& /*unit_test*/) {
        +    g_events->push_back(GetFullMethodName("OnTestProgramStart"));
        +  }
        +
        +  virtual void OnTestIterationStart(const UnitTest& /*unit_test*/,
        +                                    int iteration) {
        +    Message message;
        +    message << GetFullMethodName("OnTestIterationStart")
        +            << "(" << iteration << ")";
        +    g_events->push_back(message.GetString());
        +  }
        +
        +  virtual void OnEnvironmentsSetUpStart(const UnitTest& /*unit_test*/) {
        +    g_events->push_back(GetFullMethodName("OnEnvironmentsSetUpStart"));
        +  }
        +
        +  virtual void OnEnvironmentsSetUpEnd(const UnitTest& /*unit_test*/) {
        +    g_events->push_back(GetFullMethodName("OnEnvironmentsSetUpEnd"));
        +  }
        +
        +  virtual void OnTestCaseStart(const TestCase& /*test_case*/) {
        +    g_events->push_back(GetFullMethodName("OnTestCaseStart"));
        +  }
        +
        +  virtual void OnTestStart(const TestInfo& /*test_info*/) {
        +    g_events->push_back(GetFullMethodName("OnTestStart"));
        +  }
        +
        +  virtual void OnTestPartResult(const TestPartResult& /*test_part_result*/) {
        +    g_events->push_back(GetFullMethodName("OnTestPartResult"));
        +  }
        +
        +  virtual void OnTestEnd(const TestInfo& /*test_info*/) {
        +    g_events->push_back(GetFullMethodName("OnTestEnd"));
        +  }
        +
        +  virtual void OnTestCaseEnd(const TestCase& /*test_case*/) {
        +    g_events->push_back(GetFullMethodName("OnTestCaseEnd"));
        +  }
        +
        +  virtual void OnEnvironmentsTearDownStart(const UnitTest& /*unit_test*/) {
        +    g_events->push_back(GetFullMethodName("OnEnvironmentsTearDownStart"));
        +  }
        +
        +  virtual void OnEnvironmentsTearDownEnd(const UnitTest& /*unit_test*/) {
        +    g_events->push_back(GetFullMethodName("OnEnvironmentsTearDownEnd"));
        +  }
        +
        +  virtual void OnTestIterationEnd(const UnitTest& /*unit_test*/,
        +                                  int iteration) {
        +    Message message;
        +    message << GetFullMethodName("OnTestIterationEnd")
        +            << "("  << iteration << ")";
        +    g_events->push_back(message.GetString());
        +  }
        +
        +  virtual void OnTestProgramEnd(const UnitTest& /*unit_test*/) {
        +    g_events->push_back(GetFullMethodName("OnTestProgramEnd"));
        +  }
        +
        + private:
        +  std::string GetFullMethodName(const char* name) {
        +    return name_ + "." + name;
        +  }
        +
        +  std::string name_;
        +};
        +
        +class EnvironmentInvocationCatcher : public Environment {
        + protected:
        +  virtual void SetUp() {
        +    g_events->push_back("Environment::SetUp");
        +  }
        +
        +  virtual void TearDown() {
        +    g_events->push_back("Environment::TearDown");
        +  }
        +};
        +
        +class ListenerTest : public Test {
        + protected:
        +  static void SetUpTestCase() {
        +    g_events->push_back("ListenerTest::SetUpTestCase");
        +  }
        +
        +  static void TearDownTestCase() {
        +    g_events->push_back("ListenerTest::TearDownTestCase");
        +  }
        +
        +  virtual void SetUp() {
        +    g_events->push_back("ListenerTest::SetUp");
        +  }
        +
        +  virtual void TearDown() {
        +    g_events->push_back("ListenerTest::TearDown");
        +  }
        +};
        +
        +TEST_F(ListenerTest, DoesFoo) {
        +  // Test execution order within a test case is not guaranteed so we are not
        +  // recording the test name.
        +  g_events->push_back("ListenerTest::* Test Body");
        +  SUCCEED();  // Triggers OnTestPartResult.
        +}
        +
        +TEST_F(ListenerTest, DoesBar) {
        +  g_events->push_back("ListenerTest::* Test Body");
        +  SUCCEED();  // Triggers OnTestPartResult.
        +}
        +
        +}  // namespace internal
        +
        +}  // namespace testing
        +
        +using ::testing::internal::EnvironmentInvocationCatcher;
        +using ::testing::internal::EventRecordingListener;
        +
        +void VerifyResults(const std::vector<std::string>& data,
        +                   const char* const* expected_data,
        +                   size_t expected_data_size) {
        +  const size_t actual_size = data.size();
        +  // If the following assertion fails, a new entry will be appended to
        +  // data.  Hence we save data.size() first.
        +  EXPECT_EQ(expected_data_size, actual_size);
        +
        +  // Compares the common prefix.
        +  const size_t shorter_size = expected_data_size <= actual_size ?
        +      expected_data_size : actual_size;
        +  size_t i = 0;
        +  for (; i < shorter_size; ++i) {
        +    ASSERT_STREQ(expected_data[i], data[i].c_str())
        +        << "at position " << i;
        +  }
        +
        +  // Prints extra elements in the actual data.
        +  for (; i < actual_size; ++i) {
        +    printf("  Actual event #%lu: %s\n",
        +        static_cast<unsigned long>(i), data[i].c_str());
        +  }
        +}
        +
        +int main(int argc, char **argv) {
        +  std::vector<std::string> events;
        +  g_events = &events;
        +  InitGoogleTest(&argc, argv);
        +
        +  UnitTest::GetInstance()->listeners().Append(
        +      new EventRecordingListener("1st"));
        +  UnitTest::GetInstance()->listeners().Append(
        +      new EventRecordingListener("2nd"));
        +
        +  AddGlobalTestEnvironment(new EnvironmentInvocationCatcher);
        +
        +  GTEST_CHECK_(events.size() == 0)
        +      << "AddGlobalTestEnvironment should not generate any events itself.";
        +
        +  ::testing::GTEST_FLAG(repeat) = 2;
        +  int ret_val = RUN_ALL_TESTS();
        +
        +  const char* const expected_events[] = {
        +    "1st.OnTestProgramStart",
        +    "2nd.OnTestProgramStart",
        +    "1st.OnTestIterationStart(0)",
        +    "2nd.OnTestIterationStart(0)",
        +    "1st.OnEnvironmentsSetUpStart",
        +    "2nd.OnEnvironmentsSetUpStart",
        +    "Environment::SetUp",
        +    "2nd.OnEnvironmentsSetUpEnd",
        +    "1st.OnEnvironmentsSetUpEnd",
        +    "1st.OnTestCaseStart",
        +    "2nd.OnTestCaseStart",
        +    "ListenerTest::SetUpTestCase",
        +    "1st.OnTestStart",
        +    "2nd.OnTestStart",
        +    "ListenerTest::SetUp",
        +    "ListenerTest::* Test Body",
        +    "1st.OnTestPartResult",
        +    "2nd.OnTestPartResult",
        +    "ListenerTest::TearDown",
        +    "2nd.OnTestEnd",
        +    "1st.OnTestEnd",
        +    "1st.OnTestStart",
        +    "2nd.OnTestStart",
        +    "ListenerTest::SetUp",
        +    "ListenerTest::* Test Body",
        +    "1st.OnTestPartResult",
        +    "2nd.OnTestPartResult",
        +    "ListenerTest::TearDown",
        +    "2nd.OnTestEnd",
        +    "1st.OnTestEnd",
        +    "ListenerTest::TearDownTestCase",
        +    "2nd.OnTestCaseEnd",
        +    "1st.OnTestCaseEnd",
        +    "1st.OnEnvironmentsTearDownStart",
        +    "2nd.OnEnvironmentsTearDownStart",
        +    "Environment::TearDown",
        +    "2nd.OnEnvironmentsTearDownEnd",
        +    "1st.OnEnvironmentsTearDownEnd",
        +    "2nd.OnTestIterationEnd(0)",
        +    "1st.OnTestIterationEnd(0)",
        +    "1st.OnTestIterationStart(1)",
        +    "2nd.OnTestIterationStart(1)",
        +    "1st.OnEnvironmentsSetUpStart",
        +    "2nd.OnEnvironmentsSetUpStart",
        +    "Environment::SetUp",
        +    "2nd.OnEnvironmentsSetUpEnd",
        +    "1st.OnEnvironmentsSetUpEnd",
        +    "1st.OnTestCaseStart",
        +    "2nd.OnTestCaseStart",
        +    "ListenerTest::SetUpTestCase",
        +    "1st.OnTestStart",
        +    "2nd.OnTestStart",
        +    "ListenerTest::SetUp",
        +    "ListenerTest::* Test Body",
        +    "1st.OnTestPartResult",
        +    "2nd.OnTestPartResult",
        +    "ListenerTest::TearDown",
        +    "2nd.OnTestEnd",
        +    "1st.OnTestEnd",
        +    "1st.OnTestStart",
        +    "2nd.OnTestStart",
        +    "ListenerTest::SetUp",
        +    "ListenerTest::* Test Body",
        +    "1st.OnTestPartResult",
        +    "2nd.OnTestPartResult",
        +    "ListenerTest::TearDown",
        +    "2nd.OnTestEnd",
        +    "1st.OnTestEnd",
        +    "ListenerTest::TearDownTestCase",
        +    "2nd.OnTestCaseEnd",
        +    "1st.OnTestCaseEnd",
        +    "1st.OnEnvironmentsTearDownStart",
        +    "2nd.OnEnvironmentsTearDownStart",
        +    "Environment::TearDown",
        +    "2nd.OnEnvironmentsTearDownEnd",
        +    "1st.OnEnvironmentsTearDownEnd",
        +    "2nd.OnTestIterationEnd(1)",
        +    "1st.OnTestIterationEnd(1)",
        +    "2nd.OnTestProgramEnd",
        +    "1st.OnTestProgramEnd"
        +  };
        +  VerifyResults(events,
        +                expected_events,
        +                sizeof(expected_events)/sizeof(expected_events[0]));
        +
        +  // We need to check manually for ad hoc test failures that happen after
        +  // RUN_ALL_TESTS finishes.
        +  if (UnitTest::GetInstance()->Failed())
        +    ret_val = 1;
        +
        +  return ret_val;
        +}
        diff --git a/lib/ann/fann/lib/googletest/test/gtest-message_test.cc b/lib/ann/fann/lib/googletest/test/gtest-message_test.cc
        new file mode 100644
        index 0000000..175238e
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest-message_test.cc
        @@ -0,0 +1,159 @@
        +// Copyright 2005, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +//
        +// Tests for the Message class.
        +
        +#include "gtest/gtest-message.h"
        +
        +#include "gtest/gtest.h"
        +
        +namespace {
        +
        +using ::testing::Message;
        +
        +// Tests the testing::Message class
        +
        +// Tests the default constructor.
        +TEST(MessageTest, DefaultConstructor) {
        +  const Message msg;
        +  EXPECT_EQ("", msg.GetString());
        +}
        +
        +// Tests the copy constructor.
        +TEST(MessageTest, CopyConstructor) {
        +  const Message msg1("Hello");
        +  const Message msg2(msg1);
        +  EXPECT_EQ("Hello", msg2.GetString());
        +}
        +
        +// Tests constructing a Message from a C-string.
        +TEST(MessageTest, ConstructsFromCString) {
        +  Message msg("Hello");
        +  EXPECT_EQ("Hello", msg.GetString());
        +}
        +
        +// Tests streaming a float.
        +TEST(MessageTest, StreamsFloat) {
        +  const std::string s = (Message() << 1.23456F << " " << 2.34567F).GetString();
        +  // Both numbers should be printed with enough precision.
        +  EXPECT_PRED_FORMAT2(testing::IsSubstring, "1.234560", s.c_str());
        +  EXPECT_PRED_FORMAT2(testing::IsSubstring, " 2.345669", s.c_str());
        +}
        +
        +// Tests streaming a double.
        +TEST(MessageTest, StreamsDouble) {
        +  const std::string s = (Message() << 1260570880.4555497 << " "
        +                                  << 1260572265.1954534).GetString();
        +  // Both numbers should be printed with enough precision.
        +  EXPECT_PRED_FORMAT2(testing::IsSubstring, "1260570880.45", s.c_str());
        +  EXPECT_PRED_FORMAT2(testing::IsSubstring, " 1260572265.19", s.c_str());
        +}
        +
        +// Tests streaming a non-char pointer.
        +TEST(MessageTest, StreamsPointer) {
        +  int n = 0;
        +  int* p = &n;
        +  EXPECT_NE("(null)", (Message() << p).GetString());
        +}
        +
        +// Tests streaming a NULL non-char pointer.
        +TEST(MessageTest, StreamsNullPointer) {
        +  int* p = NULL;
        +  EXPECT_EQ("(null)", (Message() << p).GetString());
        +}
        +
        +// Tests streaming a C string.
        +TEST(MessageTest, StreamsCString) {
        +  EXPECT_EQ("Foo", (Message() << "Foo").GetString());
        +}
        +
        +// Tests streaming a NULL C string.
        +TEST(MessageTest, StreamsNullCString) {
        +  char* p = NULL;
        +  EXPECT_EQ("(null)", (Message() << p).GetString());
        +}
        +
        +// Tests streaming std::string.
        +TEST(MessageTest, StreamsString) {
        +  const ::std::string str("Hello");
        +  EXPECT_EQ("Hello", (Message() << str).GetString());
        +}
        +
        +// Tests that we can output strings containing embedded NULs.
        +TEST(MessageTest, StreamsStringWithEmbeddedNUL) {
        +  const char char_array_with_nul[] =
        +      "Here's a NUL\0 and some more string";
        +  const ::std::string string_with_nul(char_array_with_nul,
        +                                      sizeof(char_array_with_nul) - 1);
        +  EXPECT_EQ("Here's a NUL\\0 and some more string",
        +            (Message() << string_with_nul).GetString());
        +}
        +
        +// Tests streaming a NUL char.
        +TEST(MessageTest, StreamsNULChar) {
        +  EXPECT_EQ("\\0", (Message() << '\0').GetString());
        +}
        +
        +// Tests streaming int.
        +TEST(MessageTest, StreamsInt) {
        +  EXPECT_EQ("123", (Message() << 123).GetString());
        +}
        +
        +// Tests that basic IO manipulators (endl, ends, and flush) can be
        +// streamed to Message.
        +TEST(MessageTest, StreamsBasicIoManip) {
        +  EXPECT_EQ("Line 1.\nA NUL char \\0 in line 2.",
        +               (Message() << "Line 1." << std::endl
        +                         << "A NUL char " << std::ends << std::flush
        +                         << " in line 2.").GetString());
        +}
        +
        +// Tests Message::GetString()
        +TEST(MessageTest, GetString) {
        +  Message msg;
        +  msg << 1 << " lamb";
        +  EXPECT_EQ("1 lamb", msg.GetString());
        +}
        +
        +// Tests streaming a Message object to an ostream.
        +TEST(MessageTest, StreamsToOStream) {
        +  Message msg("Hello");
        +  ::std::stringstream ss;
        +  ss << msg;
        +  EXPECT_EQ("Hello", testing::internal::StringStreamToString(&ss));
        +}
        +
        +// Tests that a Message object doesn't take up too much stack space.
        +TEST(MessageTest, DoesNotTakeUpMuchStackSpace) {
        +  EXPECT_LE(sizeof(Message), 16U);
        +}
        +
        +}  // namespace
        diff --git a/lib/ann/fann/lib/googletest/test/gtest-options_test.cc b/lib/ann/fann/lib/googletest/test/gtest-options_test.cc
        new file mode 100644
        index 0000000..5586dc3
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest-options_test.cc
        @@ -0,0 +1,215 @@
        +// Copyright 2008, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Authors: keith.ray@gmail.com (Keith Ray)
        +//
        +// Google Test UnitTestOptions tests
        +//
        +// This file tests classes and functions used internally by
        +// Google Test.  They are subject to change without notice.
        +//
        +// This file is #included from gtest.cc, to avoid changing build or
        +// make-files on Windows and other platforms. Do not #include this file
        +// anywhere else!
        +
        +#include "gtest/gtest.h"
        +
        +#if GTEST_OS_WINDOWS_MOBILE
        +# include <windows.h>
        +#elif GTEST_OS_WINDOWS
        +# include <direct.h>
        +#endif  // GTEST_OS_WINDOWS_MOBILE
        +
        +// Indicates that this translation unit is part of Google Test's
        +// implementation.  It must come before gtest-internal-inl.h is
        +// included, or there will be a compiler error.  This trick is to
        +// prevent a user from accidentally including gtest-internal-inl.h in
        +// his code.
        +#define GTEST_IMPLEMENTATION_ 1
        +#include "src/gtest-internal-inl.h"
        +#undef GTEST_IMPLEMENTATION_
        +
        +namespace testing {
        +namespace internal {
        +namespace {
        +
        +// Turns the given relative path into an absolute path.
        +FilePath GetAbsolutePathOf(const FilePath& relative_path) {
        +  return FilePath::ConcatPaths(FilePath::GetCurrentDir(), relative_path);
        +}
        +
        +// Testing UnitTestOptions::GetOutputFormat/GetOutputFile.
        +
        +TEST(XmlOutputTest, GetOutputFormatDefault) {
        +  GTEST_FLAG(output) = "";
        +  EXPECT_STREQ("", UnitTestOptions::GetOutputFormat().c_str());
        +}
        +
        +TEST(XmlOutputTest, GetOutputFormat) {
        +  GTEST_FLAG(output) = "xml:filename";
        +  EXPECT_STREQ("xml", UnitTestOptions::GetOutputFormat().c_str());
        +}
        +
        +TEST(XmlOutputTest, GetOutputFileDefault) {
        +  GTEST_FLAG(output) = "";
        +  EXPECT_EQ(GetAbsolutePathOf(FilePath("test_detail.xml")).string(),
        +            UnitTestOptions::GetAbsolutePathToOutputFile());
        +}
        +
        +TEST(XmlOutputTest, GetOutputFileSingleFile) {
        +  GTEST_FLAG(output) = "xml:filename.abc";
        +  EXPECT_EQ(GetAbsolutePathOf(FilePath("filename.abc")).string(),
        +            UnitTestOptions::GetAbsolutePathToOutputFile());
        +}
        +
        +TEST(XmlOutputTest, GetOutputFileFromDirectoryPath) {
        +  GTEST_FLAG(output) = "xml:path" GTEST_PATH_SEP_;
        +  const std::string expected_output_file =
        +      GetAbsolutePathOf(
        +          FilePath(std::string("path") + GTEST_PATH_SEP_ +
        +                   GetCurrentExecutableName().string() + ".xml")).string();
        +  const std::string& output_file =
        +      UnitTestOptions::GetAbsolutePathToOutputFile();
        +#if GTEST_OS_WINDOWS
        +  EXPECT_STRCASEEQ(expected_output_file.c_str(), output_file.c_str());
        +#else
        +  EXPECT_EQ(expected_output_file, output_file.c_str());
        +#endif
        +}
        +
        +TEST(OutputFileHelpersTest, GetCurrentExecutableName) {
        +  const std::string exe_str = GetCurrentExecutableName().string();
        +#if GTEST_OS_WINDOWS
        +  const bool success =
        +      _strcmpi("gtest-options_test", exe_str.c_str()) == 0 ||
        +      _strcmpi("gtest-options-ex_test", exe_str.c_str()) == 0 ||
        +      _strcmpi("gtest_all_test", exe_str.c_str()) == 0 ||
        +      _strcmpi("gtest_dll_test", exe_str.c_str()) == 0;
        +#else
        +  // TODO(wan@google.com): remove the hard-coded "lt-" prefix when
        +  //   Chandler Carruth's libtool replacement is ready.
        +  const bool success =
        +      exe_str == "gtest-options_test" ||
        +      exe_str == "gtest_all_test" ||
        +      exe_str == "lt-gtest_all_test" ||
        +      exe_str == "gtest_dll_test";
        +#endif  // GTEST_OS_WINDOWS
        +  if (!success)
        +    FAIL() << "GetCurrentExecutableName() returns " << exe_str;
        +}
        +
        +class XmlOutputChangeDirTest : public Test {
        + protected:
        +  virtual void SetUp() {
        +    original_working_dir_ = FilePath::GetCurrentDir();
        +    posix::ChDir("..");
        +    // This will make the test fail if run from the root directory.
        +    EXPECT_NE(original_working_dir_.string(),
        +              FilePath::GetCurrentDir().string());
        +  }
        +
        +  virtual void TearDown() {
        +    posix::ChDir(original_working_dir_.string().c_str());
        +  }
        +
        +  FilePath original_working_dir_;
        +};
        +
        +TEST_F(XmlOutputChangeDirTest, PreserveOriginalWorkingDirWithDefault) {
        +  GTEST_FLAG(output) = "";
        +  EXPECT_EQ(FilePath::ConcatPaths(original_working_dir_,
        +                                  FilePath("test_detail.xml")).string(),
        +            UnitTestOptions::GetAbsolutePathToOutputFile());
        +}
        +
        +TEST_F(XmlOutputChangeDirTest, PreserveOriginalWorkingDirWithDefaultXML) {
        +  GTEST_FLAG(output) = "xml";
        +  EXPECT_EQ(FilePath::ConcatPaths(original_working_dir_,
        +                                  FilePath("test_detail.xml")).string(),
        +            UnitTestOptions::GetAbsolutePathToOutputFile());
        +}
        +
        +TEST_F(XmlOutputChangeDirTest, PreserveOriginalWorkingDirWithRelativeFile) {
        +  GTEST_FLAG(output) = "xml:filename.abc";
        +  EXPECT_EQ(FilePath::ConcatPaths(original_working_dir_,
        +                                  FilePath("filename.abc")).string(),
        +            UnitTestOptions::GetAbsolutePathToOutputFile());
        +}
        +
        +TEST_F(XmlOutputChangeDirTest, PreserveOriginalWorkingDirWithRelativePath) {
        +  GTEST_FLAG(output) = "xml:path" GTEST_PATH_SEP_;
        +  const std::string expected_output_file =
        +      FilePath::ConcatPaths(
        +          original_working_dir_,
        +          FilePath(std::string("path") + GTEST_PATH_SEP_ +
        +                   GetCurrentExecutableName().string() + ".xml")).string();
        +  const std::string& output_file =
        +      UnitTestOptions::GetAbsolutePathToOutputFile();
        +#if GTEST_OS_WINDOWS
        +  EXPECT_STRCASEEQ(expected_output_file.c_str(), output_file.c_str());
        +#else
        +  EXPECT_EQ(expected_output_file, output_file.c_str());
        +#endif
        +}
        +
        +TEST_F(XmlOutputChangeDirTest, PreserveOriginalWorkingDirWithAbsoluteFile) {
        +#if GTEST_OS_WINDOWS
        +  GTEST_FLAG(output) = "xml:c:\\tmp\\filename.abc";
        +  EXPECT_EQ(FilePath("c:\\tmp\\filename.abc").string(),
        +            UnitTestOptions::GetAbsolutePathToOutputFile());
        +#else
        +  GTEST_FLAG(output) ="xml:/tmp/filename.abc";
        +  EXPECT_EQ(FilePath("/tmp/filename.abc").string(),
        +            UnitTestOptions::GetAbsolutePathToOutputFile());
        +#endif
        +}
        +
        +TEST_F(XmlOutputChangeDirTest, PreserveOriginalWorkingDirWithAbsolutePath) {
        +#if GTEST_OS_WINDOWS
        +  const std::string path = "c:\\tmp\\";
        +#else
        +  const std::string path = "/tmp/";
        +#endif
        +
        +  GTEST_FLAG(output) = "xml:" + path;
        +  const std::string expected_output_file =
        +      path + GetCurrentExecutableName().string() + ".xml";
        +  const std::string& output_file =
        +      UnitTestOptions::GetAbsolutePathToOutputFile();
        +
        +#if GTEST_OS_WINDOWS
        +  EXPECT_STRCASEEQ(expected_output_file.c_str(), output_file.c_str());
        +#else
        +  EXPECT_EQ(expected_output_file, output_file.c_str());
        +#endif
        +}
        +
        +}  // namespace
        +}  // namespace internal
        +}  // namespace testing
        diff --git a/lib/ann/fann/lib/googletest/test/gtest-param-test2_test.cc b/lib/ann/fann/lib/googletest/test/gtest-param-test2_test.cc
        new file mode 100644
        index 0000000..4a782fe
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest-param-test2_test.cc
        @@ -0,0 +1,65 @@
        +// Copyright 2008, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: vladl@google.com (Vlad Losev)
        +//
        +// Tests for Google Test itself.  This verifies that the basic constructs of
        +// Google Test work.
        +
        +#include "gtest/gtest.h"
        +
        +#include "test/gtest-param-test_test.h"
        +
        +#if GTEST_HAS_PARAM_TEST
        +
        +using ::testing::Values;
        +using ::testing::internal::ParamGenerator;
        +
        +// Tests that generators defined in a different translation unit
        +// are functional. The test using extern_gen is defined
        +// in gtest-param-test_test.cc.
        +ParamGenerator<int> extern_gen = Values(33);
        +
        +// Tests that a parameterized test case can be defined in one translation unit
        +// and instantiated in another. The test is defined in gtest-param-test_test.cc
        +// and ExternalInstantiationTest fixture class is defined in
        +// gtest-param-test_test.h.
        +INSTANTIATE_TEST_CASE_P(MultiplesOf33,
        +                        ExternalInstantiationTest,
        +                        Values(33, 66));
        +
        +// Tests that a parameterized test case can be instantiated
        +// in multiple translation units. Another instantiation is defined
        +// in gtest-param-test_test.cc and InstantiationInMultipleTranslaionUnitsTest
        +// fixture is defined in gtest-param-test_test.h
        +INSTANTIATE_TEST_CASE_P(Sequence2,
        +                        InstantiationInMultipleTranslaionUnitsTest,
        +                        Values(42*3, 42*4, 42*5));
        +
        +#endif  // GTEST_HAS_PARAM_TEST
        diff --git a/lib/ann/fann/lib/googletest/test/gtest-param-test_test.cc b/lib/ann/fann/lib/googletest/test/gtest-param-test_test.cc
        new file mode 100644
        index 0000000..8b278bb
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest-param-test_test.cc
        @@ -0,0 +1,1055 @@
        +// Copyright 2008, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: vladl@google.com (Vlad Losev)
        +//
        +// Tests for Google Test itself. This file verifies that the parameter
        +// generators objects produce correct parameter sequences and that
        +// Google Test runtime instantiates correct tests from those sequences.
        +
        +#include "gtest/gtest.h"
        +
        +#if GTEST_HAS_PARAM_TEST
        +
        +# include <algorithm>
        +# include <iostream>
        +# include <list>
        +# include <sstream>
        +# include <string>
        +# include <vector>
        +
        +// To include gtest-internal-inl.h.
        +# define GTEST_IMPLEMENTATION_ 1
        +# include "src/gtest-internal-inl.h"  // for UnitTestOptions
        +# undef GTEST_IMPLEMENTATION_
        +
        +# include "test/gtest-param-test_test.h"
        +
        +using ::std::vector;
        +using ::std::sort;
        +
        +using ::testing::AddGlobalTestEnvironment;
        +using ::testing::Bool;
        +using ::testing::Message;
        +using ::testing::Range;
        +using ::testing::TestWithParam;
        +using ::testing::Values;
        +using ::testing::ValuesIn;
        +
        +# if GTEST_HAS_COMBINE
        +using ::testing::Combine;
        +using ::testing::get;
        +using ::testing::make_tuple;
        +using ::testing::tuple;
        +# endif  // GTEST_HAS_COMBINE
        +
        +using ::testing::internal::ParamGenerator;
        +using ::testing::internal::UnitTestOptions;
        +
        +// Prints a value to a string.
        +//
        +// TODO(wan@google.com): remove PrintValue() when we move matchers and
        +// EXPECT_THAT() from Google Mock to Google Test.  At that time, we
        +// can write EXPECT_THAT(x, Eq(y)) to compare two tuples x and y, as
        +// EXPECT_THAT() and the matchers know how to print tuples.
        +template <typename T>
        +::std::string PrintValue(const T& value) {
        +  ::std::stringstream stream;
        +  stream << value;
        +  return stream.str();
        +}
        +
        +# if GTEST_HAS_COMBINE
        +
        +// These overloads allow printing tuples in our tests.  We cannot
        +// define an operator<< for tuples, as that definition needs to be in
        +// the std namespace in order to be picked up by Google Test via
        +// Argument-Dependent Lookup, yet defining anything in the std
        +// namespace in non-STL code is undefined behavior.
        +
        +template <typename T1, typename T2>
        +::std::string PrintValue(const tuple<T1, T2>& value) {
        +  ::std::stringstream stream;
        +  stream << "(" << get<0>(value) << ", " << get<1>(value) << ")";
        +  return stream.str();
        +}
        +
        +template <typename T1, typename T2, typename T3>
        +::std::string PrintValue(const tuple<T1, T2, T3>& value) {
        +  ::std::stringstream stream;
        +  stream << "(" << get<0>(value) << ", " << get<1>(value)
        +         << ", "<< get<2>(value) << ")";
        +  return stream.str();
        +}
        +
        +template <typename T1, typename T2, typename T3, typename T4, typename T5,
        +          typename T6, typename T7, typename T8, typename T9, typename T10>
        +::std::string PrintValue(
        +    const tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>& value) {
        +  ::std::stringstream stream;
        +  stream << "(" << get<0>(value) << ", " << get<1>(value)
        +         << ", "<< get<2>(value) << ", " << get<3>(value)
        +         << ", "<< get<4>(value) << ", " << get<5>(value)
        +         << ", "<< get<6>(value) << ", " << get<7>(value)
        +         << ", "<< get<8>(value) << ", " << get<9>(value) << ")";
        +  return stream.str();
        +}
        +
        +# endif  // GTEST_HAS_COMBINE
        +
        +// Verifies that a sequence generated by the generator and accessed
        +// via the iterator object matches the expected one using Google Test
        +// assertions.
        +template <typename T, size_t N>
        +void VerifyGenerator(const ParamGenerator<T>& generator,
        +                     const T (&expected_values)[N]) {
        +  typename ParamGenerator<T>::iterator it = generator.begin();
        +  for (size_t i = 0; i < N; ++i) {
        +    ASSERT_FALSE(it == generator.end())
        +        << "At element " << i << " when accessing via an iterator "
        +        << "created with the copy constructor.\n";
        +    // We cannot use EXPECT_EQ() here as the values may be tuples,
        +    // which don't support <<.
        +    EXPECT_TRUE(expected_values[i] == *it)
        +        << "where i is " << i
        +        << ", expected_values[i] is " << PrintValue(expected_values[i])
        +        << ", *it is " << PrintValue(*it)
        +        << ", and 'it' is an iterator created with the copy constructor.\n";
        +    it++;
        +  }
        +  EXPECT_TRUE(it == generator.end())
        +        << "At the presumed end of sequence when accessing via an iterator "
        +        << "created with the copy constructor.\n";
        +
        +  // Test the iterator assignment. The following lines verify that
        +  // the sequence accessed via an iterator initialized via the
        +  // assignment operator (as opposed to a copy constructor) matches
        +  // just the same.
        +  it = generator.begin();
        +  for (size_t i = 0; i < N; ++i) {
        +    ASSERT_FALSE(it == generator.end())
        +        << "At element " << i << " when accessing via an iterator "
        +        << "created with the assignment operator.\n";
        +    EXPECT_TRUE(expected_values[i] == *it)
        +        << "where i is " << i
        +        << ", expected_values[i] is " << PrintValue(expected_values[i])
        +        << ", *it is " << PrintValue(*it)
        +        << ", and 'it' is an iterator created with the copy constructor.\n";
        +    it++;
        +  }
        +  EXPECT_TRUE(it == generator.end())
        +        << "At the presumed end of sequence when accessing via an iterator "
        +        << "created with the assignment operator.\n";
        +}
        +
        +template <typename T>
        +void VerifyGeneratorIsEmpty(const ParamGenerator<T>& generator) {
        +  typename ParamGenerator<T>::iterator it = generator.begin();
        +  EXPECT_TRUE(it == generator.end());
        +
        +  it = generator.begin();
        +  EXPECT_TRUE(it == generator.end());
        +}
        +
        +// Generator tests. They test that each of the provided generator functions
        +// generates an expected sequence of values. The general test pattern
        +// instantiates a generator using one of the generator functions,
        +// checks the sequence produced by the generator using its iterator API,
        +// and then resets the iterator back to the beginning of the sequence
        +// and checks the sequence again.
        +
        +// Tests that iterators produced by generator functions conform to the
        +// ForwardIterator concept.
        +TEST(IteratorTest, ParamIteratorConformsToForwardIteratorConcept) {
        +  const ParamGenerator<int> gen = Range(0, 10);
        +  ParamGenerator<int>::iterator it = gen.begin();
        +
        +  // Verifies that iterator initialization works as expected.
        +  ParamGenerator<int>::iterator it2 = it;
        +  EXPECT_TRUE(*it == *it2) << "Initialized iterators must point to the "
        +                           << "element same as its source points to";
        +
        +  // Verifies that iterator assignment works as expected.
        +  it++;
        +  EXPECT_FALSE(*it == *it2);
        +  it2 = it;
        +  EXPECT_TRUE(*it == *it2) << "Assigned iterators must point to the "
        +                           << "element same as its source points to";
        +
        +  // Verifies that prefix operator++() returns *this.
        +  EXPECT_EQ(&it, &(++it)) << "Result of the prefix operator++ must be "
        +                          << "refer to the original object";
        +
        +  // Verifies that the result of the postfix operator++ points to the value
        +  // pointed to by the original iterator.
        +  int original_value = *it;  // Have to compute it outside of macro call to be
        +                             // unaffected by the parameter evaluation order.
        +  EXPECT_EQ(original_value, *(it++));
        +
        +  // Verifies that prefix and postfix operator++() advance an iterator
        +  // all the same.
        +  it2 = it;
        +  it++;
        +  ++it2;
        +  EXPECT_TRUE(*it == *it2);
        +}
        +
        +// Tests that Range() generates the expected sequence.
        +TEST(RangeTest, IntRangeWithDefaultStep) {
        +  const ParamGenerator<int> gen = Range(0, 3);
        +  const int expected_values[] = {0, 1, 2};
        +  VerifyGenerator(gen, expected_values);
        +}
        +
        +// Edge case. Tests that Range() generates the single element sequence
        +// as expected when provided with range limits that are equal.
        +TEST(RangeTest, IntRangeSingleValue) {
        +  const ParamGenerator<int> gen = Range(0, 1);
        +  const int expected_values[] = {0};
        +  VerifyGenerator(gen, expected_values);
        +}
        +
        +// Edge case. Tests that Range() with generates empty sequence when
        +// supplied with an empty range.
        +TEST(RangeTest, IntRangeEmpty) {
        +  const ParamGenerator<int> gen = Range(0, 0);
        +  VerifyGeneratorIsEmpty(gen);
        +}
        +
        +// Tests that Range() with custom step (greater then one) generates
        +// the expected sequence.
        +TEST(RangeTest, IntRangeWithCustomStep) {
        +  const ParamGenerator<int> gen = Range(0, 9, 3);
        +  const int expected_values[] = {0, 3, 6};
        +  VerifyGenerator(gen, expected_values);
        +}
        +
        +// Tests that Range() with custom step (greater then one) generates
        +// the expected sequence when the last element does not fall on the
        +// upper range limit. Sequences generated by Range() must not have
        +// elements beyond the range limits.
        +TEST(RangeTest, IntRangeWithCustomStepOverUpperBound) {
        +  const ParamGenerator<int> gen = Range(0, 4, 3);
        +  const int expected_values[] = {0, 3};
        +  VerifyGenerator(gen, expected_values);
        +}
        +
        +// Verifies that Range works with user-defined types that define
        +// copy constructor, operator=(), operator+(), and operator<().
        +class DogAdder {
        + public:
        +  explicit DogAdder(const char* a_value) : value_(a_value) {}
        +  DogAdder(const DogAdder& other) : value_(other.value_.c_str()) {}
        +
        +  DogAdder operator=(const DogAdder& other) {
        +    if (this != &other)
        +      value_ = other.value_;
        +    return *this;
        +  }
        +  DogAdder operator+(const DogAdder& other) const {
        +    Message msg;
        +    msg << value_.c_str() << other.value_.c_str();
        +    return DogAdder(msg.GetString().c_str());
        +  }
        +  bool operator<(const DogAdder& other) const {
        +    return value_ < other.value_;
        +  }
        +  const std::string& value() const { return value_; }
        +
        + private:
        +  std::string value_;
        +};
        +
        +TEST(RangeTest, WorksWithACustomType) {
        +  const ParamGenerator<DogAdder> gen =
        +      Range(DogAdder("cat"), DogAdder("catdogdog"), DogAdder("dog"));
        +  ParamGenerator<DogAdder>::iterator it = gen.begin();
        +
        +  ASSERT_FALSE(it == gen.end());
        +  EXPECT_STREQ("cat", it->value().c_str());
        +
        +  ASSERT_FALSE(++it == gen.end());
        +  EXPECT_STREQ("catdog", it->value().c_str());
        +
        +  EXPECT_TRUE(++it == gen.end());
        +}
        +
        +class IntWrapper {
        + public:
        +  explicit IntWrapper(int a_value) : value_(a_value) {}
        +  IntWrapper(const IntWrapper& other) : value_(other.value_) {}
        +
        +  IntWrapper operator=(const IntWrapper& other) {
        +    value_ = other.value_;
        +    return *this;
        +  }
        +  // operator+() adds a different type.
        +  IntWrapper operator+(int other) const { return IntWrapper(value_ + other); }
        +  bool operator<(const IntWrapper& other) const {
        +    return value_ < other.value_;
        +  }
        +  int value() const { return value_; }
        +
        + private:
        +  int value_;
        +};
        +
        +TEST(RangeTest, WorksWithACustomTypeWithDifferentIncrementType) {
        +  const ParamGenerator<IntWrapper> gen = Range(IntWrapper(0), IntWrapper(2));
        +  ParamGenerator<IntWrapper>::iterator it = gen.begin();
        +
        +  ASSERT_FALSE(it == gen.end());
        +  EXPECT_EQ(0, it->value());
        +
        +  ASSERT_FALSE(++it == gen.end());
        +  EXPECT_EQ(1, it->value());
        +
        +  EXPECT_TRUE(++it == gen.end());
        +}
        +
        +// Tests that ValuesIn() with an array parameter generates
        +// the expected sequence.
        +TEST(ValuesInTest, ValuesInArray) {
        +  int array[] = {3, 5, 8};
        +  const ParamGenerator<int> gen = ValuesIn(array);
        +  VerifyGenerator(gen, array);
        +}
        +
        +// Tests that ValuesIn() with a const array parameter generates
        +// the expected sequence.
        +TEST(ValuesInTest, ValuesInConstArray) {
        +  const int array[] = {3, 5, 8};
        +  const ParamGenerator<int> gen = ValuesIn(array);
        +  VerifyGenerator(gen, array);
        +}
        +
        +// Edge case. Tests that ValuesIn() with an array parameter containing a
        +// single element generates the single element sequence.
        +TEST(ValuesInTest, ValuesInSingleElementArray) {
        +  int array[] = {42};
        +  const ParamGenerator<int> gen = ValuesIn(array);
        +  VerifyGenerator(gen, array);
        +}
        +
        +// Tests that ValuesIn() generates the expected sequence for an STL
        +// container (vector).
        +TEST(ValuesInTest, ValuesInVector) {
        +  typedef ::std::vector<int> ContainerType;
        +  ContainerType values;
        +  values.push_back(3);
        +  values.push_back(5);
        +  values.push_back(8);
        +  const ParamGenerator<int> gen = ValuesIn(values);
        +
        +  const int expected_values[] = {3, 5, 8};
        +  VerifyGenerator(gen, expected_values);
        +}
        +
        +// Tests that ValuesIn() generates the expected sequence.
        +TEST(ValuesInTest, ValuesInIteratorRange) {
        +  typedef ::std::vector<int> ContainerType;
        +  ContainerType values;
        +  values.push_back(3);
        +  values.push_back(5);
        +  values.push_back(8);
        +  const ParamGenerator<int> gen = ValuesIn(values.begin(), values.end());
        +
        +  const int expected_values[] = {3, 5, 8};
        +  VerifyGenerator(gen, expected_values);
        +}
        +
        +// Edge case. Tests that ValuesIn() provided with an iterator range specifying a
        +// single value generates a single-element sequence.
        +TEST(ValuesInTest, ValuesInSingleElementIteratorRange) {
        +  typedef ::std::vector<int> ContainerType;
        +  ContainerType values;
        +  values.push_back(42);
        +  const ParamGenerator<int> gen = ValuesIn(values.begin(), values.end());
        +
        +  const int expected_values[] = {42};
        +  VerifyGenerator(gen, expected_values);
        +}
        +
        +// Edge case. Tests that ValuesIn() provided with an empty iterator range
        +// generates an empty sequence.
        +TEST(ValuesInTest, ValuesInEmptyIteratorRange) {
        +  typedef ::std::vector<int> ContainerType;
        +  ContainerType values;
        +  const ParamGenerator<int> gen = ValuesIn(values.begin(), values.end());
        +
        +  VerifyGeneratorIsEmpty(gen);
        +}
        +
        +// Tests that the Values() generates the expected sequence.
        +TEST(ValuesTest, ValuesWorks) {
        +  const ParamGenerator<int> gen = Values(3, 5, 8);
        +
        +  const int expected_values[] = {3, 5, 8};
        +  VerifyGenerator(gen, expected_values);
        +}
        +
        +// Tests that Values() generates the expected sequences from elements of
        +// different types convertible to ParamGenerator's parameter type.
        +TEST(ValuesTest, ValuesWorksForValuesOfCompatibleTypes) {
        +  const ParamGenerator<double> gen = Values(3, 5.0f, 8.0);
        +
        +  const double expected_values[] = {3.0, 5.0, 8.0};
        +  VerifyGenerator(gen, expected_values);
        +}
        +
        +TEST(ValuesTest, ValuesWorksForMaxLengthList) {
        +  const ParamGenerator<int> gen = Values(
        +      10, 20, 30, 40, 50, 60, 70, 80, 90, 100,
        +      110, 120, 130, 140, 150, 160, 170, 180, 190, 200,
        +      210, 220, 230, 240, 250, 260, 270, 280, 290, 300,
        +      310, 320, 330, 340, 350, 360, 370, 380, 390, 400,
        +      410, 420, 430, 440, 450, 460, 470, 480, 490, 500);
        +
        +  const int expected_values[] = {
        +      10, 20, 30, 40, 50, 60, 70, 80, 90, 100,
        +      110, 120, 130, 140, 150, 160, 170, 180, 190, 200,
        +      210, 220, 230, 240, 250, 260, 270, 280, 290, 300,
        +      310, 320, 330, 340, 350, 360, 370, 380, 390, 400,
        +      410, 420, 430, 440, 450, 460, 470, 480, 490, 500};
        +  VerifyGenerator(gen, expected_values);
        +}
        +
        +// Edge case test. Tests that single-parameter Values() generates the sequence
        +// with the single value.
        +TEST(ValuesTest, ValuesWithSingleParameter) {
        +  const ParamGenerator<int> gen = Values(42);
        +
        +  const int expected_values[] = {42};
        +  VerifyGenerator(gen, expected_values);
        +}
        +
        +// Tests that Bool() generates sequence (false, true).
        +TEST(BoolTest, BoolWorks) {
        +  const ParamGenerator<bool> gen = Bool();
        +
        +  const bool expected_values[] = {false, true};
        +  VerifyGenerator(gen, expected_values);
        +}
        +
        +# if GTEST_HAS_COMBINE
        +
        +// Tests that Combine() with two parameters generates the expected sequence.
        +TEST(CombineTest, CombineWithTwoParameters) {
        +  const char* foo = "foo";
        +  const char* bar = "bar";
        +  const ParamGenerator<tuple<const char*, int> > gen =
        +      Combine(Values(foo, bar), Values(3, 4));
        +
        +  tuple<const char*, int> expected_values[] = {
        +    make_tuple(foo, 3), make_tuple(foo, 4),
        +    make_tuple(bar, 3), make_tuple(bar, 4)};
        +  VerifyGenerator(gen, expected_values);
        +}
        +
        +// Tests that Combine() with three parameters generates the expected sequence.
        +TEST(CombineTest, CombineWithThreeParameters) {
        +  const ParamGenerator<tuple<int, int, int> > gen = Combine(Values(0, 1),
        +                                                            Values(3, 4),
        +                                                            Values(5, 6));
        +  tuple<int, int, int> expected_values[] = {
        +    make_tuple(0, 3, 5), make_tuple(0, 3, 6),
        +    make_tuple(0, 4, 5), make_tuple(0, 4, 6),
        +    make_tuple(1, 3, 5), make_tuple(1, 3, 6),
        +    make_tuple(1, 4, 5), make_tuple(1, 4, 6)};
        +  VerifyGenerator(gen, expected_values);
        +}
        +
        +// Tests that the Combine() with the first parameter generating a single value
        +// sequence generates a sequence with the number of elements equal to the
        +// number of elements in the sequence generated by the second parameter.
        +TEST(CombineTest, CombineWithFirstParameterSingleValue) {
        +  const ParamGenerator<tuple<int, int> > gen = Combine(Values(42),
        +                                                       Values(0, 1));
        +
        +  tuple<int, int> expected_values[] = {make_tuple(42, 0), make_tuple(42, 1)};
        +  VerifyGenerator(gen, expected_values);
        +}
        +
        +// Tests that the Combine() with the second parameter generating a single value
        +// sequence generates a sequence with the number of elements equal to the
        +// number of elements in the sequence generated by the first parameter.
        +TEST(CombineTest, CombineWithSecondParameterSingleValue) {
        +  const ParamGenerator<tuple<int, int> > gen = Combine(Values(0, 1),
        +                                                       Values(42));
        +
        +  tuple<int, int> expected_values[] = {make_tuple(0, 42), make_tuple(1, 42)};
        +  VerifyGenerator(gen, expected_values);
        +}
        +
        +// Tests that when the first parameter produces an empty sequence,
        +// Combine() produces an empty sequence, too.
        +TEST(CombineTest, CombineWithFirstParameterEmptyRange) {
        +  const ParamGenerator<tuple<int, int> > gen = Combine(Range(0, 0),
        +                                                       Values(0, 1));
        +  VerifyGeneratorIsEmpty(gen);
        +}
        +
        +// Tests that when the second parameter produces an empty sequence,
        +// Combine() produces an empty sequence, too.
        +TEST(CombineTest, CombineWithSecondParameterEmptyRange) {
        +  const ParamGenerator<tuple<int, int> > gen = Combine(Values(0, 1),
        +                                                       Range(1, 1));
        +  VerifyGeneratorIsEmpty(gen);
        +}
        +
        +// Edge case. Tests that combine works with the maximum number
        +// of parameters supported by Google Test (currently 10).
        +TEST(CombineTest, CombineWithMaxNumberOfParameters) {
        +  const char* foo = "foo";
        +  const char* bar = "bar";
        +  const ParamGenerator<tuple<const char*, int, int, int, int, int, int, int,
        +                             int, int> > gen = Combine(Values(foo, bar),
        +                                                       Values(1), Values(2),
        +                                                       Values(3), Values(4),
        +                                                       Values(5), Values(6),
        +                                                       Values(7), Values(8),
        +                                                       Values(9));
        +
        +  tuple<const char*, int, int, int, int, int, int, int, int, int>
        +      expected_values[] = {make_tuple(foo, 1, 2, 3, 4, 5, 6, 7, 8, 9),
        +                           make_tuple(bar, 1, 2, 3, 4, 5, 6, 7, 8, 9)};
        +  VerifyGenerator(gen, expected_values);
        +}
        +
        +# endif  // GTEST_HAS_COMBINE
        +
        +// Tests that an generator produces correct sequence after being
        +// assigned from another generator.
        +TEST(ParamGeneratorTest, AssignmentWorks) {
        +  ParamGenerator<int> gen = Values(1, 2);
        +  const ParamGenerator<int> gen2 = Values(3, 4);
        +  gen = gen2;
        +
        +  const int expected_values[] = {3, 4};
        +  VerifyGenerator(gen, expected_values);
        +}
        +
        +// This test verifies that the tests are expanded and run as specified:
        +// one test per element from the sequence produced by the generator
        +// specified in INSTANTIATE_TEST_CASE_P. It also verifies that the test's
        +// fixture constructor, SetUp(), and TearDown() have run and have been
        +// supplied with the correct parameters.
        +
        +// The use of environment object allows detection of the case where no test
        +// case functionality is run at all. In this case TestCaseTearDown will not
        +// be able to detect missing tests, naturally.
        +template <int kExpectedCalls>
        +class TestGenerationEnvironment : public ::testing::Environment {
        + public:
        +  static TestGenerationEnvironment* Instance() {
        +    static TestGenerationEnvironment* instance = new TestGenerationEnvironment;
        +    return instance;
        +  }
        +
        +  void FixtureConstructorExecuted() { fixture_constructor_count_++; }
        +  void SetUpExecuted() { set_up_count_++; }
        +  void TearDownExecuted() { tear_down_count_++; }
        +  void TestBodyExecuted() { test_body_count_++; }
        +
        +  virtual void TearDown() {
        +    // If all MultipleTestGenerationTest tests have been de-selected
        +    // by the filter flag, the following checks make no sense.
        +    bool perform_check = false;
        +
        +    for (int i = 0; i < kExpectedCalls; ++i) {
        +      Message msg;
        +      msg << "TestsExpandedAndRun/" << i;
        +      if (UnitTestOptions::FilterMatchesTest(
        +             "TestExpansionModule/MultipleTestGenerationTest",
        +              msg.GetString().c_str())) {
        +        perform_check = true;
        +      }
        +    }
        +    if (perform_check) {
        +      EXPECT_EQ(kExpectedCalls, fixture_constructor_count_)
        +          << "Fixture constructor of ParamTestGenerationTest test case "
        +          << "has not been run as expected.";
        +      EXPECT_EQ(kExpectedCalls, set_up_count_)
        +          << "Fixture SetUp method of ParamTestGenerationTest test case "
        +          << "has not been run as expected.";
        +      EXPECT_EQ(kExpectedCalls, tear_down_count_)
        +          << "Fixture TearDown method of ParamTestGenerationTest test case "
        +          << "has not been run as expected.";
        +      EXPECT_EQ(kExpectedCalls, test_body_count_)
        +          << "Test in ParamTestGenerationTest test case "
        +          << "has not been run as expected.";
        +    }
        +  }
        +
        + private:
        +  TestGenerationEnvironment() : fixture_constructor_count_(0), set_up_count_(0),
        +                                tear_down_count_(0), test_body_count_(0) {}
        +
        +  int fixture_constructor_count_;
        +  int set_up_count_;
        +  int tear_down_count_;
        +  int test_body_count_;
        +
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(TestGenerationEnvironment);
        +};
        +
        +const int test_generation_params[] = {36, 42, 72};
        +
        +class TestGenerationTest : public TestWithParam<int> {
        + public:
        +  enum {
        +    PARAMETER_COUNT =
        +        sizeof(test_generation_params)/sizeof(test_generation_params[0])
        +  };
        +
        +  typedef TestGenerationEnvironment<PARAMETER_COUNT> Environment;
        +
        +  TestGenerationTest() {
        +    Environment::Instance()->FixtureConstructorExecuted();
        +    current_parameter_ = GetParam();
        +  }
        +  virtual void SetUp() {
        +    Environment::Instance()->SetUpExecuted();
        +    EXPECT_EQ(current_parameter_, GetParam());
        +  }
        +  virtual void TearDown() {
        +    Environment::Instance()->TearDownExecuted();
        +    EXPECT_EQ(current_parameter_, GetParam());
        +  }
        +
        +  static void SetUpTestCase() {
        +    bool all_tests_in_test_case_selected = true;
        +
        +    for (int i = 0; i < PARAMETER_COUNT; ++i) {
        +      Message test_name;
        +      test_name << "TestsExpandedAndRun/" << i;
        +      if ( !UnitTestOptions::FilterMatchesTest(
        +                "TestExpansionModule/MultipleTestGenerationTest",
        +                test_name.GetString())) {
        +        all_tests_in_test_case_selected = false;
        +      }
        +    }
        +    EXPECT_TRUE(all_tests_in_test_case_selected)
        +        << "When running the TestGenerationTest test case all of its tests\n"
        +        << "must be selected by the filter flag for the test case to pass.\n"
        +        << "If not all of them are enabled, we can't reliably conclude\n"
        +        << "that the correct number of tests have been generated.";
        +
        +    collected_parameters_.clear();
        +  }
        +
        +  static void TearDownTestCase() {
        +    vector<int> expected_values(test_generation_params,
        +                                test_generation_params + PARAMETER_COUNT);
        +    // Test execution order is not guaranteed by Google Test,
        +    // so the order of values in collected_parameters_ can be
        +    // different and we have to sort to compare.
        +    sort(expected_values.begin(), expected_values.end());
        +    sort(collected_parameters_.begin(), collected_parameters_.end());
        +
        +    EXPECT_TRUE(collected_parameters_ == expected_values);
        +  }
        +
        + protected:
        +  int current_parameter_;
        +  static vector<int> collected_parameters_;
        +
        + private:
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(TestGenerationTest);
        +};
        +vector<int> TestGenerationTest::collected_parameters_;
        +
        +TEST_P(TestGenerationTest, TestsExpandedAndRun) {
        +  Environment::Instance()->TestBodyExecuted();
        +  EXPECT_EQ(current_parameter_, GetParam());
        +  collected_parameters_.push_back(GetParam());
        +}
        +INSTANTIATE_TEST_CASE_P(TestExpansionModule, TestGenerationTest,
        +                        ValuesIn(test_generation_params));
        +
        +// This test verifies that the element sequence (third parameter of
        +// INSTANTIATE_TEST_CASE_P) is evaluated in InitGoogleTest() and neither at
        +// the call site of INSTANTIATE_TEST_CASE_P nor in RUN_ALL_TESTS().  For
        +// that, we declare param_value_ to be a static member of
        +// GeneratorEvaluationTest and initialize it to 0.  We set it to 1 in
        +// main(), just before invocation of InitGoogleTest().  After calling
        +// InitGoogleTest(), we set the value to 2.  If the sequence is evaluated
        +// before or after InitGoogleTest, INSTANTIATE_TEST_CASE_P will create a
        +// test with parameter other than 1, and the test body will fail the
        +// assertion.
        +class GeneratorEvaluationTest : public TestWithParam<int> {
        + public:
        +  static int param_value() { return param_value_; }
        +  static void set_param_value(int param_value) { param_value_ = param_value; }
        +
        + private:
        +  static int param_value_;
        +};
        +int GeneratorEvaluationTest::param_value_ = 0;
        +
        +TEST_P(GeneratorEvaluationTest, GeneratorsEvaluatedInMain) {
        +  EXPECT_EQ(1, GetParam());
        +}
        +INSTANTIATE_TEST_CASE_P(GenEvalModule,
        +                        GeneratorEvaluationTest,
        +                        Values(GeneratorEvaluationTest::param_value()));
        +
        +// Tests that generators defined in a different translation unit are
        +// functional. Generator extern_gen is defined in gtest-param-test_test2.cc.
        +extern ParamGenerator<int> extern_gen;
        +class ExternalGeneratorTest : public TestWithParam<int> {};
        +TEST_P(ExternalGeneratorTest, ExternalGenerator) {
        +  // Sequence produced by extern_gen contains only a single value
        +  // which we verify here.
        +  EXPECT_EQ(GetParam(), 33);
        +}
        +INSTANTIATE_TEST_CASE_P(ExternalGeneratorModule,
        +                        ExternalGeneratorTest,
        +                        extern_gen);
        +
        +// Tests that a parameterized test case can be defined in one translation
        +// unit and instantiated in another. This test will be instantiated in
        +// gtest-param-test_test2.cc. ExternalInstantiationTest fixture class is
        +// defined in gtest-param-test_test.h.
        +TEST_P(ExternalInstantiationTest, IsMultipleOf33) {
        +  EXPECT_EQ(0, GetParam() % 33);
        +}
        +
        +// Tests that a parameterized test case can be instantiated with multiple
        +// generators.
        +class MultipleInstantiationTest : public TestWithParam<int> {};
        +TEST_P(MultipleInstantiationTest, AllowsMultipleInstances) {
        +}
        +INSTANTIATE_TEST_CASE_P(Sequence1, MultipleInstantiationTest, Values(1, 2));
        +INSTANTIATE_TEST_CASE_P(Sequence2, MultipleInstantiationTest, Range(3, 5));
        +
        +// Tests that a parameterized test case can be instantiated
        +// in multiple translation units. This test will be instantiated
        +// here and in gtest-param-test_test2.cc.
        +// InstantiationInMultipleTranslationUnitsTest fixture class
        +// is defined in gtest-param-test_test.h.
        +TEST_P(InstantiationInMultipleTranslaionUnitsTest, IsMultipleOf42) {
        +  EXPECT_EQ(0, GetParam() % 42);
        +}
        +INSTANTIATE_TEST_CASE_P(Sequence1,
        +                        InstantiationInMultipleTranslaionUnitsTest,
        +                        Values(42, 42*2));
        +
        +// Tests that each iteration of parameterized test runs in a separate test
        +// object.
        +class SeparateInstanceTest : public TestWithParam<int> {
        + public:
        +  SeparateInstanceTest() : count_(0) {}
        +
        +  static void TearDownTestCase() {
        +    EXPECT_GE(global_count_, 2)
        +        << "If some (but not all) SeparateInstanceTest tests have been "
        +        << "filtered out this test will fail. Make sure that all "
        +        << "GeneratorEvaluationTest are selected or de-selected together "
        +        << "by the test filter.";
        +  }
        +
        + protected:
        +  int count_;
        +  static int global_count_;
        +};
        +int SeparateInstanceTest::global_count_ = 0;
        +
        +TEST_P(SeparateInstanceTest, TestsRunInSeparateInstances) {
        +  EXPECT_EQ(0, count_++);
        +  global_count_++;
        +}
        +INSTANTIATE_TEST_CASE_P(FourElemSequence, SeparateInstanceTest, Range(1, 4));
        +
        +// Tests that all instantiations of a test have named appropriately. Test
        +// defined with TEST_P(TestCaseName, TestName) and instantiated with
        +// INSTANTIATE_TEST_CASE_P(SequenceName, TestCaseName, generator) must be named
        +// SequenceName/TestCaseName.TestName/i, where i is the 0-based index of the
        +// sequence element used to instantiate the test.
        +class NamingTest : public TestWithParam<int> {};
        +
        +TEST_P(NamingTest, TestsReportCorrectNamesAndParameters) {
        +  const ::testing::TestInfo* const test_info =
        +     ::testing::UnitTest::GetInstance()->current_test_info();
        +
        +  EXPECT_STREQ("ZeroToFiveSequence/NamingTest", test_info->test_case_name());
        +
        +  Message index_stream;
        +  index_stream << "TestsReportCorrectNamesAndParameters/" << GetParam();
        +  EXPECT_STREQ(index_stream.GetString().c_str(), test_info->name());
        +
        +  EXPECT_EQ(::testing::PrintToString(GetParam()), test_info->value_param());
        +}
        +
        +INSTANTIATE_TEST_CASE_P(ZeroToFiveSequence, NamingTest, Range(0, 5));
        +
        +// Tests that user supplied custom parameter names are working correctly.
        +// Runs the test with a builtin helper method which uses PrintToString,
        +// as well as a custom function and custom functor to ensure all possible
        +// uses work correctly.
        +class CustomFunctorNamingTest : public TestWithParam<std::string> {};
        +TEST_P(CustomFunctorNamingTest, CustomTestNames) {}
        +
        +struct CustomParamNameFunctor {
        +  std::string operator()(const ::testing::TestParamInfo<std::string>& info) {
        +    return info.param;
        +  }
        +};
        +
        +INSTANTIATE_TEST_CASE_P(CustomParamNameFunctor,
        +                        CustomFunctorNamingTest,
        +                        Values(std::string("FunctorName")),
        +                        CustomParamNameFunctor());
        +
        +INSTANTIATE_TEST_CASE_P(AllAllowedCharacters,
        +                        CustomFunctorNamingTest,
        +                        Values("abcdefghijklmnopqrstuvwxyz",
        +                               "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
        +                               "01234567890_"),
        +                        CustomParamNameFunctor());
        +
        +inline std::string CustomParamNameFunction(
        +    const ::testing::TestParamInfo<std::string>& info) {
        +  return info.param;
        +}
        +
        +class CustomFunctionNamingTest : public TestWithParam<std::string> {};
        +TEST_P(CustomFunctionNamingTest, CustomTestNames) {}
        +
        +INSTANTIATE_TEST_CASE_P(CustomParamNameFunction,
        +                        CustomFunctionNamingTest,
        +                        Values(std::string("FunctionName")),
        +                        CustomParamNameFunction);
        +
        +#if GTEST_LANG_CXX11
        +
        +// Test custom naming with a lambda
        +
        +class CustomLambdaNamingTest : public TestWithParam<std::string> {};
        +TEST_P(CustomLambdaNamingTest, CustomTestNames) {}
        +
        +INSTANTIATE_TEST_CASE_P(CustomParamNameLambda,
        +                        CustomLambdaNamingTest,
        +                        Values(std::string("LambdaName")),
        +                        [](const ::testing::TestParamInfo<std::string>& info) {
        +                          return info.param;
        +                        });
        +
        +#endif  // GTEST_LANG_CXX11
        +
        +TEST(CustomNamingTest, CheckNameRegistry) {
        +  ::testing::UnitTest* unit_test = ::testing::UnitTest::GetInstance();
        +  std::set<std::string> test_names;
        +  for (int case_num = 0;
        +       case_num < unit_test->total_test_case_count();
        +       ++case_num) {
        +    const ::testing::TestCase* test_case = unit_test->GetTestCase(case_num);
        +    for (int test_num = 0;
        +         test_num < test_case->total_test_count();
        +         ++test_num) {
        +      const ::testing::TestInfo* test_info = test_case->GetTestInfo(test_num);
        +      test_names.insert(std::string(test_info->name()));
        +    }
        +  }
        +  EXPECT_EQ(1u, test_names.count("CustomTestNames/FunctorName"));
        +  EXPECT_EQ(1u, test_names.count("CustomTestNames/FunctionName"));
        +#if GTEST_LANG_CXX11
        +  EXPECT_EQ(1u, test_names.count("CustomTestNames/LambdaName"));
        +#endif  // GTEST_LANG_CXX11
        +}
        +
        +// Test a numeric name to ensure PrintToStringParamName works correctly.
        +
        +class CustomIntegerNamingTest : public TestWithParam<int> {};
        +
        +TEST_P(CustomIntegerNamingTest, TestsReportCorrectNames) {
        +  const ::testing::TestInfo* const test_info =
        +     ::testing::UnitTest::GetInstance()->current_test_info();
        +  Message test_name_stream;
        +  test_name_stream << "TestsReportCorrectNames/" << GetParam();
        +  EXPECT_STREQ(test_name_stream.GetString().c_str(), test_info->name());
        +}
        +
        +INSTANTIATE_TEST_CASE_P(PrintToString,
        +                        CustomIntegerNamingTest,
        +                        Range(0, 5),
        +                        ::testing::PrintToStringParamName());
        +
        +// Test a custom struct with PrintToString.
        +
        +struct CustomStruct {
        +  explicit CustomStruct(int value) : x(value) {}
        +  int x;
        +};
        +
        +std::ostream& operator<<(std::ostream& stream, const CustomStruct& val) {
        +  stream << val.x;
        +  return stream;
        +}
        +
        +class CustomStructNamingTest : public TestWithParam<CustomStruct> {};
        +
        +TEST_P(CustomStructNamingTest, TestsReportCorrectNames) {
        +  const ::testing::TestInfo* const test_info =
        +     ::testing::UnitTest::GetInstance()->current_test_info();
        +  Message test_name_stream;
        +  test_name_stream << "TestsReportCorrectNames/" << GetParam();
        +  EXPECT_STREQ(test_name_stream.GetString().c_str(), test_info->name());
        +}
        +
        +INSTANTIATE_TEST_CASE_P(PrintToString,
        +                        CustomStructNamingTest,
        +                        Values(CustomStruct(0), CustomStruct(1)),
        +                        ::testing::PrintToStringParamName());
        +
        +// Test that using a stateful parameter naming function works as expected.
        +
        +struct StatefulNamingFunctor {
        +  StatefulNamingFunctor() : sum(0) {}
        +  std::string operator()(const ::testing::TestParamInfo<int>& info) {
        +    int value = info.param + sum;
        +    sum += info.param;
        +    return ::testing::PrintToString(value);
        +  }
        +  int sum;
        +};
        +
        +class StatefulNamingTest : public ::testing::TestWithParam<int> {
        + protected:
        +  StatefulNamingTest() : sum_(0) {}
        +  int sum_;
        +};
        +
        +TEST_P(StatefulNamingTest, TestsReportCorrectNames) {
        +  const ::testing::TestInfo* const test_info =
        +     ::testing::UnitTest::GetInstance()->current_test_info();
        +  sum_ += GetParam();
        +  Message test_name_stream;
        +  test_name_stream << "TestsReportCorrectNames/" << sum_;
        +  EXPECT_STREQ(test_name_stream.GetString().c_str(), test_info->name());
        +}
        +
        +INSTANTIATE_TEST_CASE_P(StatefulNamingFunctor,
        +                        StatefulNamingTest,
        +                        Range(0, 5),
        +                        StatefulNamingFunctor());
        +
        +// Class that cannot be streamed into an ostream.  It needs to be copyable
        +// (and, in case of MSVC, also assignable) in order to be a test parameter
        +// type.  Its default copy constructor and assignment operator do exactly
        +// what we need.
        +class Unstreamable {
        + public:
        +  explicit Unstreamable(int value) : value_(value) {}
        +
        + private:
        +  int value_;
        +};
        +
        +class CommentTest : public TestWithParam<Unstreamable> {};
        +
        +TEST_P(CommentTest, TestsCorrectlyReportUnstreamableParams) {
        +  const ::testing::TestInfo* const test_info =
        +     ::testing::UnitTest::GetInstance()->current_test_info();
        +
        +  EXPECT_EQ(::testing::PrintToString(GetParam()), test_info->value_param());
        +}
        +
        +INSTANTIATE_TEST_CASE_P(InstantiationWithComments,
        +                        CommentTest,
        +                        Values(Unstreamable(1)));
        +
        +// Verify that we can create a hierarchy of test fixtures, where the base
        +// class fixture is not parameterized and the derived class is. In this case
        +// ParameterizedDerivedTest inherits from NonParameterizedBaseTest.  We
        +// perform simple tests on both.
        +class NonParameterizedBaseTest : public ::testing::Test {
        + public:
        +  NonParameterizedBaseTest() : n_(17) { }
        + protected:
        +  int n_;
        +};
        +
        +class ParameterizedDerivedTest : public NonParameterizedBaseTest,
        +                                 public ::testing::WithParamInterface<int> {
        + protected:
        +  ParameterizedDerivedTest() : count_(0) { }
        +  int count_;
        +  static int global_count_;
        +};
        +
        +int ParameterizedDerivedTest::global_count_ = 0;
        +
        +TEST_F(NonParameterizedBaseTest, FixtureIsInitialized) {
        +  EXPECT_EQ(17, n_);
        +}
        +
        +TEST_P(ParameterizedDerivedTest, SeesSequence) {
        +  EXPECT_EQ(17, n_);
        +  EXPECT_EQ(0, count_++);
        +  EXPECT_EQ(GetParam(), global_count_++);
        +}
        +
        +class ParameterizedDeathTest : public ::testing::TestWithParam<int> { };
        +
        +TEST_F(ParameterizedDeathTest, GetParamDiesFromTestF) {
        +  EXPECT_DEATH_IF_SUPPORTED(GetParam(),
        +                            ".* value-parameterized test .*");
        +}
        +
        +INSTANTIATE_TEST_CASE_P(RangeZeroToFive, ParameterizedDerivedTest, Range(0, 5));
        +
        +#endif  // GTEST_HAS_PARAM_TEST
        +
        +TEST(CompileTest, CombineIsDefinedOnlyWhenGtestHasParamTestIsDefined) {
        +#if GTEST_HAS_COMBINE && !GTEST_HAS_PARAM_TEST
        +  FAIL() << "GTEST_HAS_COMBINE is defined while GTEST_HAS_PARAM_TEST is not\n"
        +#endif
        +}
        +
        +int main(int argc, char **argv) {
        +#if GTEST_HAS_PARAM_TEST
        +  // Used in TestGenerationTest test case.
        +  AddGlobalTestEnvironment(TestGenerationTest::Environment::Instance());
        +  // Used in GeneratorEvaluationTest test case. Tests that the updated value
        +  // will be picked up for instantiating tests in GeneratorEvaluationTest.
        +  GeneratorEvaluationTest::set_param_value(1);
        +#endif  // GTEST_HAS_PARAM_TEST
        +
        +  ::testing::InitGoogleTest(&argc, argv);
        +
        +#if GTEST_HAS_PARAM_TEST
        +  // Used in GeneratorEvaluationTest test case. Tests that value updated
        +  // here will NOT be used for instantiating tests in
        +  // GeneratorEvaluationTest.
        +  GeneratorEvaluationTest::set_param_value(2);
        +#endif  // GTEST_HAS_PARAM_TEST
        +
        +  return RUN_ALL_TESTS();
        +}
        diff --git a/lib/ann/fann/lib/googletest/test/gtest-param-test_test.h b/lib/ann/fann/lib/googletest/test/gtest-param-test_test.h
        new file mode 100644
        index 0000000..26ea122
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest-param-test_test.h
        @@ -0,0 +1,57 @@
        +// Copyright 2008, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Authors: vladl@google.com (Vlad Losev)
        +//
        +// The Google C++ Testing Framework (Google Test)
        +//
        +// This header file provides classes and functions used internally
        +// for testing Google Test itself.
        +
        +#ifndef GTEST_TEST_GTEST_PARAM_TEST_TEST_H_
        +#define GTEST_TEST_GTEST_PARAM_TEST_TEST_H_
        +
        +#include "gtest/gtest.h"
        +
        +#if GTEST_HAS_PARAM_TEST
        +
        +// Test fixture for testing definition and instantiation of a test
        +// in separate translation units.
        +class ExternalInstantiationTest : public ::testing::TestWithParam<int> {
        +};
        +
        +// Test fixture for testing instantiation of a test in multiple
        +// translation units.
        +class InstantiationInMultipleTranslaionUnitsTest
        +    : public ::testing::TestWithParam<int> {
        +};
        +
        +#endif  // GTEST_HAS_PARAM_TEST
        +
        +#endif  // GTEST_TEST_GTEST_PARAM_TEST_TEST_H_
        diff --git a/lib/ann/fann/lib/googletest/test/gtest-port_test.cc b/lib/ann/fann/lib/googletest/test/gtest-port_test.cc
        new file mode 100644
        index 0000000..d17bad0
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest-port_test.cc
        @@ -0,0 +1,1304 @@
        +// Copyright 2008, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Authors: vladl@google.com (Vlad Losev), wan@google.com (Zhanyong Wan)
        +//
        +// This file tests the internal cross-platform support utilities.
        +
        +#include "gtest/internal/gtest-port.h"
        +
        +#include <stdio.h>
        +
        +#if GTEST_OS_MAC
        +# include <time.h>
        +#endif  // GTEST_OS_MAC
        +
        +#include <list>
        +#include <utility>  // For std::pair and std::make_pair.
        +#include <vector>
        +
        +#include "gtest/gtest.h"
        +#include "gtest/gtest-spi.h"
        +
        +// Indicates that this translation unit is part of Google Test's
        +// implementation.  It must come before gtest-internal-inl.h is
        +// included, or there will be a compiler error.  This trick is to
        +// prevent a user from accidentally including gtest-internal-inl.h in
        +// his code.
        +#define GTEST_IMPLEMENTATION_ 1
        +#include "src/gtest-internal-inl.h"
        +#undef GTEST_IMPLEMENTATION_
        +
        +using std::make_pair;
        +using std::pair;
        +
        +namespace testing {
        +namespace internal {
        +
        +TEST(IsXDigitTest, WorksForNarrowAscii) {
        +  EXPECT_TRUE(IsXDigit('0'));
        +  EXPECT_TRUE(IsXDigit('9'));
        +  EXPECT_TRUE(IsXDigit('A'));
        +  EXPECT_TRUE(IsXDigit('F'));
        +  EXPECT_TRUE(IsXDigit('a'));
        +  EXPECT_TRUE(IsXDigit('f'));
        +
        +  EXPECT_FALSE(IsXDigit('-'));
        +  EXPECT_FALSE(IsXDigit('g'));
        +  EXPECT_FALSE(IsXDigit('G'));
        +}
        +
        +TEST(IsXDigitTest, ReturnsFalseForNarrowNonAscii) {
        +  EXPECT_FALSE(IsXDigit(static_cast<char>(0x80)));
        +  EXPECT_FALSE(IsXDigit(static_cast<char>('0' | 0x80)));
        +}
        +
        +TEST(IsXDigitTest, WorksForWideAscii) {
        +  EXPECT_TRUE(IsXDigit(L'0'));
        +  EXPECT_TRUE(IsXDigit(L'9'));
        +  EXPECT_TRUE(IsXDigit(L'A'));
        +  EXPECT_TRUE(IsXDigit(L'F'));
        +  EXPECT_TRUE(IsXDigit(L'a'));
        +  EXPECT_TRUE(IsXDigit(L'f'));
        +
        +  EXPECT_FALSE(IsXDigit(L'-'));
        +  EXPECT_FALSE(IsXDigit(L'g'));
        +  EXPECT_FALSE(IsXDigit(L'G'));
        +}
        +
        +TEST(IsXDigitTest, ReturnsFalseForWideNonAscii) {
        +  EXPECT_FALSE(IsXDigit(static_cast<wchar_t>(0x80)));
        +  EXPECT_FALSE(IsXDigit(static_cast<wchar_t>(L'0' | 0x80)));
        +  EXPECT_FALSE(IsXDigit(static_cast<wchar_t>(L'0' | 0x100)));
        +}
        +
        +class Base {
        + public:
        +  // Copy constructor and assignment operator do exactly what we need, so we
        +  // use them.
        +  Base() : member_(0) {}
        +  explicit Base(int n) : member_(n) {}
        +  virtual ~Base() {}
        +  int member() { return member_; }
        +
        + private:
        +  int member_;
        +};
        +
        +class Derived : public Base {
        + public:
        +  explicit Derived(int n) : Base(n) {}
        +};
        +
        +TEST(ImplicitCastTest, ConvertsPointers) {
        +  Derived derived(0);
        +  EXPECT_TRUE(&derived == ::testing::internal::ImplicitCast_<Base*>(&derived));
        +}
        +
        +TEST(ImplicitCastTest, CanUseInheritance) {
        +  Derived derived(1);
        +  Base base = ::testing::internal::ImplicitCast_<Base>(derived);
        +  EXPECT_EQ(derived.member(), base.member());
        +}
        +
        +class Castable {
        + public:
        +  explicit Castable(bool* converted) : converted_(converted) {}
        +  operator Base() {
        +    *converted_ = true;
        +    return Base();
        +  }
        +
        + private:
        +  bool* converted_;
        +};
        +
        +TEST(ImplicitCastTest, CanUseNonConstCastOperator) {
        +  bool converted = false;
        +  Castable castable(&converted);
        +  Base base = ::testing::internal::ImplicitCast_<Base>(castable);
        +  EXPECT_TRUE(converted);
        +}
        +
        +class ConstCastable {
        + public:
        +  explicit ConstCastable(bool* converted) : converted_(converted) {}
        +  operator Base() const {
        +    *converted_ = true;
        +    return Base();
        +  }
        +
        + private:
        +  bool* converted_;
        +};
        +
        +TEST(ImplicitCastTest, CanUseConstCastOperatorOnConstValues) {
        +  bool converted = false;
        +  const ConstCastable const_castable(&converted);
        +  Base base = ::testing::internal::ImplicitCast_<Base>(const_castable);
        +  EXPECT_TRUE(converted);
        +}
        +
        +class ConstAndNonConstCastable {
        + public:
        +  ConstAndNonConstCastable(bool* converted, bool* const_converted)
        +      : converted_(converted), const_converted_(const_converted) {}
        +  operator Base() {
        +    *converted_ = true;
        +    return Base();
        +  }
        +  operator Base() const {
        +    *const_converted_ = true;
        +    return Base();
        +  }
        +
        + private:
        +  bool* converted_;
        +  bool* const_converted_;
        +};
        +
        +TEST(ImplicitCastTest, CanSelectBetweenConstAndNonConstCasrAppropriately) {
        +  bool converted = false;
        +  bool const_converted = false;
        +  ConstAndNonConstCastable castable(&converted, &const_converted);
        +  Base base = ::testing::internal::ImplicitCast_<Base>(castable);
        +  EXPECT_TRUE(converted);
        +  EXPECT_FALSE(const_converted);
        +
        +  converted = false;
        +  const_converted = false;
        +  const ConstAndNonConstCastable const_castable(&converted, &const_converted);
        +  base = ::testing::internal::ImplicitCast_<Base>(const_castable);
        +  EXPECT_FALSE(converted);
        +  EXPECT_TRUE(const_converted);
        +}
        +
        +class To {
        + public:
        +  To(bool* converted) { *converted = true; }  // NOLINT
        +};
        +
        +TEST(ImplicitCastTest, CanUseImplicitConstructor) {
        +  bool converted = false;
        +  To to = ::testing::internal::ImplicitCast_<To>(&converted);
        +  (void)to;
        +  EXPECT_TRUE(converted);
        +}
        +
        +TEST(IteratorTraitsTest, WorksForSTLContainerIterators) {
        +  StaticAssertTypeEq<int,
        +      IteratorTraits< ::std::vector<int>::const_iterator>::value_type>();
        +  StaticAssertTypeEq<bool,
        +      IteratorTraits< ::std::list<bool>::iterator>::value_type>();
        +}
        +
        +TEST(IteratorTraitsTest, WorksForPointerToNonConst) {
        +  StaticAssertTypeEq<char, IteratorTraits<char*>::value_type>();
        +  StaticAssertTypeEq<const void*, IteratorTraits<const void**>::value_type>();
        +}
        +
        +TEST(IteratorTraitsTest, WorksForPointerToConst) {
        +  StaticAssertTypeEq<char, IteratorTraits<const char*>::value_type>();
        +  StaticAssertTypeEq<const void*,
        +      IteratorTraits<const void* const*>::value_type>();
        +}
        +
        +// Tests that the element_type typedef is available in scoped_ptr and refers
        +// to the parameter type.
        +TEST(ScopedPtrTest, DefinesElementType) {
        +  StaticAssertTypeEq<int, ::testing::internal::scoped_ptr<int>::element_type>();
        +}
        +
        +// TODO(vladl@google.com): Implement THE REST of scoped_ptr tests.
        +
        +TEST(GtestCheckSyntaxTest, BehavesLikeASingleStatement) {
        +  if (AlwaysFalse())
        +    GTEST_CHECK_(false) << "This should never be executed; "
        +                           "It's a compilation test only.";
        +
        +  if (AlwaysTrue())
        +    GTEST_CHECK_(true);
        +  else
        +    ;  // NOLINT
        +
        +  if (AlwaysFalse())
        +    ;  // NOLINT
        +  else
        +    GTEST_CHECK_(true) << "";
        +}
        +
        +TEST(GtestCheckSyntaxTest, WorksWithSwitch) {
        +  switch (0) {
        +    case 1:
        +      break;
        +    default:
        +      GTEST_CHECK_(true);
        +  }
        +
        +  switch (0)
        +    case 0:
        +      GTEST_CHECK_(true) << "Check failed in switch case";
        +}
        +
        +// Verifies behavior of FormatFileLocation.
        +TEST(FormatFileLocationTest, FormatsFileLocation) {
        +  EXPECT_PRED_FORMAT2(IsSubstring, "foo.cc", FormatFileLocation("foo.cc", 42));
        +  EXPECT_PRED_FORMAT2(IsSubstring, "42", FormatFileLocation("foo.cc", 42));
        +}
        +
        +TEST(FormatFileLocationTest, FormatsUnknownFile) {
        +  EXPECT_PRED_FORMAT2(
        +      IsSubstring, "unknown file", FormatFileLocation(NULL, 42));
        +  EXPECT_PRED_FORMAT2(IsSubstring, "42", FormatFileLocation(NULL, 42));
        +}
        +
        +TEST(FormatFileLocationTest, FormatsUknownLine) {
        +  EXPECT_EQ("foo.cc:", FormatFileLocation("foo.cc", -1));
        +}
        +
        +TEST(FormatFileLocationTest, FormatsUknownFileAndLine) {
        +  EXPECT_EQ("unknown file:", FormatFileLocation(NULL, -1));
        +}
        +
        +// Verifies behavior of FormatCompilerIndependentFileLocation.
        +TEST(FormatCompilerIndependentFileLocationTest, FormatsFileLocation) {
        +  EXPECT_EQ("foo.cc:42", FormatCompilerIndependentFileLocation("foo.cc", 42));
        +}
        +
        +TEST(FormatCompilerIndependentFileLocationTest, FormatsUknownFile) {
        +  EXPECT_EQ("unknown file:42",
        +            FormatCompilerIndependentFileLocation(NULL, 42));
        +}
        +
        +TEST(FormatCompilerIndependentFileLocationTest, FormatsUknownLine) {
        +  EXPECT_EQ("foo.cc", FormatCompilerIndependentFileLocation("foo.cc", -1));
        +}
        +
        +TEST(FormatCompilerIndependentFileLocationTest, FormatsUknownFileAndLine) {
        +  EXPECT_EQ("unknown file", FormatCompilerIndependentFileLocation(NULL, -1));
        +}
        +
        +#if GTEST_OS_LINUX || GTEST_OS_MAC || GTEST_OS_QNX
        +void* ThreadFunc(void* data) {
        +  internal::Mutex* mutex = static_cast<internal::Mutex*>(data);
        +  mutex->Lock();
        +  mutex->Unlock();
        +  return NULL;
        +}
        +
        +TEST(GetThreadCountTest, ReturnsCorrectValue) {
        +  const size_t starting_count = GetThreadCount();
        +  pthread_t       thread_id;
        +
        +  internal::Mutex mutex;
        +  {
        +    internal::MutexLock lock(&mutex);
        +    pthread_attr_t  attr;
        +    ASSERT_EQ(0, pthread_attr_init(&attr));
        +    ASSERT_EQ(0, pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE));
        +
        +    const int status = pthread_create(&thread_id, &attr, &ThreadFunc, &mutex);
        +    ASSERT_EQ(0, pthread_attr_destroy(&attr));
        +    ASSERT_EQ(0, status);
        +    EXPECT_EQ(starting_count + 1, GetThreadCount());
        +  }
        +
        +  void* dummy;
        +  ASSERT_EQ(0, pthread_join(thread_id, &dummy));
        +
        +  // The OS may not immediately report the updated thread count after
        +  // joining a thread, causing flakiness in this test. To counter that, we
        +  // wait for up to .5 seconds for the OS to report the correct value.
        +  for (int i = 0; i < 5; ++i) {
        +    if (GetThreadCount() == starting_count)
        +      break;
        +
        +    SleepMilliseconds(100);
        +  }
        +
        +  EXPECT_EQ(starting_count, GetThreadCount());
        +}
        +#else
        +TEST(GetThreadCountTest, ReturnsZeroWhenUnableToCountThreads) {
        +  EXPECT_EQ(0U, GetThreadCount());
        +}
        +#endif  // GTEST_OS_LINUX || GTEST_OS_MAC || GTEST_OS_QNX
        +
        +TEST(GtestCheckDeathTest, DiesWithCorrectOutputOnFailure) {
        +  const bool a_false_condition = false;
        +  const char regex[] =
        +#ifdef _MSC_VER
        +     "gtest-port_test\\.cc\\(\\d+\\):"
        +#elif GTEST_USES_POSIX_RE
        +     "gtest-port_test\\.cc:[0-9]+"
        +#else
        +     "gtest-port_test\\.cc:\\d+"
        +#endif  // _MSC_VER
        +     ".*a_false_condition.*Extra info.*";
        +
        +  EXPECT_DEATH_IF_SUPPORTED(GTEST_CHECK_(a_false_condition) << "Extra info",
        +                            regex);
        +}
        +
        +#if GTEST_HAS_DEATH_TEST
        +
        +TEST(GtestCheckDeathTest, LivesSilentlyOnSuccess) {
        +  EXPECT_EXIT({
        +      GTEST_CHECK_(true) << "Extra info";
        +      ::std::cerr << "Success\n";
        +      exit(0); },
        +      ::testing::ExitedWithCode(0), "Success");
        +}
        +
        +#endif  // GTEST_HAS_DEATH_TEST
        +
        +// Verifies that Google Test choose regular expression engine appropriate to
        +// the platform. The test will produce compiler errors in case of failure.
        +// For simplicity, we only cover the most important platforms here.
        +TEST(RegexEngineSelectionTest, SelectsCorrectRegexEngine) {
        +#if !GTEST_USES_PCRE
        +# if GTEST_HAS_POSIX_RE
        +
        +  EXPECT_TRUE(GTEST_USES_POSIX_RE);
        +
        +# else
        +
        +  EXPECT_TRUE(GTEST_USES_SIMPLE_RE);
        +
        +# endif
        +#endif  // !GTEST_USES_PCRE
        +}
        +
        +#if GTEST_USES_POSIX_RE
        +
        +# if GTEST_HAS_TYPED_TEST
        +
        +template <typename Str>
        +class RETest : public ::testing::Test {};
        +
        +// Defines StringTypes as the list of all string types that class RE
        +// supports.
        +typedef testing::Types<
        +    ::std::string,
        +#  if GTEST_HAS_GLOBAL_STRING
        +    ::string,
        +#  endif  // GTEST_HAS_GLOBAL_STRING
        +    const char*> StringTypes;
        +
        +TYPED_TEST_CASE(RETest, StringTypes);
        +
        +// Tests RE's implicit constructors.
        +TYPED_TEST(RETest, ImplicitConstructorWorks) {
        +  const RE empty(TypeParam(""));
        +  EXPECT_STREQ("", empty.pattern());
        +
        +  const RE simple(TypeParam("hello"));
        +  EXPECT_STREQ("hello", simple.pattern());
        +
        +  const RE normal(TypeParam(".*(\\w+)"));
        +  EXPECT_STREQ(".*(\\w+)", normal.pattern());
        +}
        +
        +// Tests that RE's constructors reject invalid regular expressions.
        +TYPED_TEST(RETest, RejectsInvalidRegex) {
        +  EXPECT_NONFATAL_FAILURE({
        +    const RE invalid(TypeParam("?"));
        +  }, "\"?\" is not a valid POSIX Extended regular expression.");
        +}
        +
        +// Tests RE::FullMatch().
        +TYPED_TEST(RETest, FullMatchWorks) {
        +  const RE empty(TypeParam(""));
        +  EXPECT_TRUE(RE::FullMatch(TypeParam(""), empty));
        +  EXPECT_FALSE(RE::FullMatch(TypeParam("a"), empty));
        +
        +  const RE re(TypeParam("a.*z"));
        +  EXPECT_TRUE(RE::FullMatch(TypeParam("az"), re));
        +  EXPECT_TRUE(RE::FullMatch(TypeParam("axyz"), re));
        +  EXPECT_FALSE(RE::FullMatch(TypeParam("baz"), re));
        +  EXPECT_FALSE(RE::FullMatch(TypeParam("azy"), re));
        +}
        +
        +// Tests RE::PartialMatch().
        +TYPED_TEST(RETest, PartialMatchWorks) {
        +  const RE empty(TypeParam(""));
        +  EXPECT_TRUE(RE::PartialMatch(TypeParam(""), empty));
        +  EXPECT_TRUE(RE::PartialMatch(TypeParam("a"), empty));
        +
        +  const RE re(TypeParam("a.*z"));
        +  EXPECT_TRUE(RE::PartialMatch(TypeParam("az"), re));
        +  EXPECT_TRUE(RE::PartialMatch(TypeParam("axyz"), re));
        +  EXPECT_TRUE(RE::PartialMatch(TypeParam("baz"), re));
        +  EXPECT_TRUE(RE::PartialMatch(TypeParam("azy"), re));
        +  EXPECT_FALSE(RE::PartialMatch(TypeParam("zza"), re));
        +}
        +
        +# endif  // GTEST_HAS_TYPED_TEST
        +
        +#elif GTEST_USES_SIMPLE_RE
        +
        +TEST(IsInSetTest, NulCharIsNotInAnySet) {
        +  EXPECT_FALSE(IsInSet('\0', ""));
        +  EXPECT_FALSE(IsInSet('\0', "\0"));
        +  EXPECT_FALSE(IsInSet('\0', "a"));
        +}
        +
        +TEST(IsInSetTest, WorksForNonNulChars) {
        +  EXPECT_FALSE(IsInSet('a', "Ab"));
        +  EXPECT_FALSE(IsInSet('c', ""));
        +
        +  EXPECT_TRUE(IsInSet('b', "bcd"));
        +  EXPECT_TRUE(IsInSet('b', "ab"));
        +}
        +
        +TEST(IsAsciiDigitTest, IsFalseForNonDigit) {
        +  EXPECT_FALSE(IsAsciiDigit('\0'));
        +  EXPECT_FALSE(IsAsciiDigit(' '));
        +  EXPECT_FALSE(IsAsciiDigit('+'));
        +  EXPECT_FALSE(IsAsciiDigit('-'));
        +  EXPECT_FALSE(IsAsciiDigit('.'));
        +  EXPECT_FALSE(IsAsciiDigit('a'));
        +}
        +
        +TEST(IsAsciiDigitTest, IsTrueForDigit) {
        +  EXPECT_TRUE(IsAsciiDigit('0'));
        +  EXPECT_TRUE(IsAsciiDigit('1'));
        +  EXPECT_TRUE(IsAsciiDigit('5'));
        +  EXPECT_TRUE(IsAsciiDigit('9'));
        +}
        +
        +TEST(IsAsciiPunctTest, IsFalseForNonPunct) {
        +  EXPECT_FALSE(IsAsciiPunct('\0'));
        +  EXPECT_FALSE(IsAsciiPunct(' '));
        +  EXPECT_FALSE(IsAsciiPunct('\n'));
        +  EXPECT_FALSE(IsAsciiPunct('a'));
        +  EXPECT_FALSE(IsAsciiPunct('0'));
        +}
        +
        +TEST(IsAsciiPunctTest, IsTrueForPunct) {
        +  for (const char* p = "^-!\"#$%&'()*+,./:;<=>?@[\\]_`{|}~"; *p; p++) {
        +    EXPECT_PRED1(IsAsciiPunct, *p);
        +  }
        +}
        +
        +TEST(IsRepeatTest, IsFalseForNonRepeatChar) {
        +  EXPECT_FALSE(IsRepeat('\0'));
        +  EXPECT_FALSE(IsRepeat(' '));
        +  EXPECT_FALSE(IsRepeat('a'));
        +  EXPECT_FALSE(IsRepeat('1'));
        +  EXPECT_FALSE(IsRepeat('-'));
        +}
        +
        +TEST(IsRepeatTest, IsTrueForRepeatChar) {
        +  EXPECT_TRUE(IsRepeat('?'));
        +  EXPECT_TRUE(IsRepeat('*'));
        +  EXPECT_TRUE(IsRepeat('+'));
        +}
        +
        +TEST(IsAsciiWhiteSpaceTest, IsFalseForNonWhiteSpace) {
        +  EXPECT_FALSE(IsAsciiWhiteSpace('\0'));
        +  EXPECT_FALSE(IsAsciiWhiteSpace('a'));
        +  EXPECT_FALSE(IsAsciiWhiteSpace('1'));
        +  EXPECT_FALSE(IsAsciiWhiteSpace('+'));
        +  EXPECT_FALSE(IsAsciiWhiteSpace('_'));
        +}
        +
        +TEST(IsAsciiWhiteSpaceTest, IsTrueForWhiteSpace) {
        +  EXPECT_TRUE(IsAsciiWhiteSpace(' '));
        +  EXPECT_TRUE(IsAsciiWhiteSpace('\n'));
        +  EXPECT_TRUE(IsAsciiWhiteSpace('\r'));
        +  EXPECT_TRUE(IsAsciiWhiteSpace('\t'));
        +  EXPECT_TRUE(IsAsciiWhiteSpace('\v'));
        +  EXPECT_TRUE(IsAsciiWhiteSpace('\f'));
        +}
        +
        +TEST(IsAsciiWordCharTest, IsFalseForNonWordChar) {
        +  EXPECT_FALSE(IsAsciiWordChar('\0'));
        +  EXPECT_FALSE(IsAsciiWordChar('+'));
        +  EXPECT_FALSE(IsAsciiWordChar('.'));
        +  EXPECT_FALSE(IsAsciiWordChar(' '));
        +  EXPECT_FALSE(IsAsciiWordChar('\n'));
        +}
        +
        +TEST(IsAsciiWordCharTest, IsTrueForLetter) {
        +  EXPECT_TRUE(IsAsciiWordChar('a'));
        +  EXPECT_TRUE(IsAsciiWordChar('b'));
        +  EXPECT_TRUE(IsAsciiWordChar('A'));
        +  EXPECT_TRUE(IsAsciiWordChar('Z'));
        +}
        +
        +TEST(IsAsciiWordCharTest, IsTrueForDigit) {
        +  EXPECT_TRUE(IsAsciiWordChar('0'));
        +  EXPECT_TRUE(IsAsciiWordChar('1'));
        +  EXPECT_TRUE(IsAsciiWordChar('7'));
        +  EXPECT_TRUE(IsAsciiWordChar('9'));
        +}
        +
        +TEST(IsAsciiWordCharTest, IsTrueForUnderscore) {
        +  EXPECT_TRUE(IsAsciiWordChar('_'));
        +}
        +
        +TEST(IsValidEscapeTest, IsFalseForNonPrintable) {
        +  EXPECT_FALSE(IsValidEscape('\0'));
        +  EXPECT_FALSE(IsValidEscape('\007'));
        +}
        +
        +TEST(IsValidEscapeTest, IsFalseForDigit) {
        +  EXPECT_FALSE(IsValidEscape('0'));
        +  EXPECT_FALSE(IsValidEscape('9'));
        +}
        +
        +TEST(IsValidEscapeTest, IsFalseForWhiteSpace) {
        +  EXPECT_FALSE(IsValidEscape(' '));
        +  EXPECT_FALSE(IsValidEscape('\n'));
        +}
        +
        +TEST(IsValidEscapeTest, IsFalseForSomeLetter) {
        +  EXPECT_FALSE(IsValidEscape('a'));
        +  EXPECT_FALSE(IsValidEscape('Z'));
        +}
        +
        +TEST(IsValidEscapeTest, IsTrueForPunct) {
        +  EXPECT_TRUE(IsValidEscape('.'));
        +  EXPECT_TRUE(IsValidEscape('-'));
        +  EXPECT_TRUE(IsValidEscape('^'));
        +  EXPECT_TRUE(IsValidEscape('$'));
        +  EXPECT_TRUE(IsValidEscape('('));
        +  EXPECT_TRUE(IsValidEscape(']'));
        +  EXPECT_TRUE(IsValidEscape('{'));
        +  EXPECT_TRUE(IsValidEscape('|'));
        +}
        +
        +TEST(IsValidEscapeTest, IsTrueForSomeLetter) {
        +  EXPECT_TRUE(IsValidEscape('d'));
        +  EXPECT_TRUE(IsValidEscape('D'));
        +  EXPECT_TRUE(IsValidEscape('s'));
        +  EXPECT_TRUE(IsValidEscape('S'));
        +  EXPECT_TRUE(IsValidEscape('w'));
        +  EXPECT_TRUE(IsValidEscape('W'));
        +}
        +
        +TEST(AtomMatchesCharTest, EscapedPunct) {
        +  EXPECT_FALSE(AtomMatchesChar(true, '\\', '\0'));
        +  EXPECT_FALSE(AtomMatchesChar(true, '\\', ' '));
        +  EXPECT_FALSE(AtomMatchesChar(true, '_', '.'));
        +  EXPECT_FALSE(AtomMatchesChar(true, '.', 'a'));
        +
        +  EXPECT_TRUE(AtomMatchesChar(true, '\\', '\\'));
        +  EXPECT_TRUE(AtomMatchesChar(true, '_', '_'));
        +  EXPECT_TRUE(AtomMatchesChar(true, '+', '+'));
        +  EXPECT_TRUE(AtomMatchesChar(true, '.', '.'));
        +}
        +
        +TEST(AtomMatchesCharTest, Escaped_d) {
        +  EXPECT_FALSE(AtomMatchesChar(true, 'd', '\0'));
        +  EXPECT_FALSE(AtomMatchesChar(true, 'd', 'a'));
        +  EXPECT_FALSE(AtomMatchesChar(true, 'd', '.'));
        +
        +  EXPECT_TRUE(AtomMatchesChar(true, 'd', '0'));
        +  EXPECT_TRUE(AtomMatchesChar(true, 'd', '9'));
        +}
        +
        +TEST(AtomMatchesCharTest, Escaped_D) {
        +  EXPECT_FALSE(AtomMatchesChar(true, 'D', '0'));
        +  EXPECT_FALSE(AtomMatchesChar(true, 'D', '9'));
        +
        +  EXPECT_TRUE(AtomMatchesChar(true, 'D', '\0'));
        +  EXPECT_TRUE(AtomMatchesChar(true, 'D', 'a'));
        +  EXPECT_TRUE(AtomMatchesChar(true, 'D', '-'));
        +}
        +
        +TEST(AtomMatchesCharTest, Escaped_s) {
        +  EXPECT_FALSE(AtomMatchesChar(true, 's', '\0'));
        +  EXPECT_FALSE(AtomMatchesChar(true, 's', 'a'));
        +  EXPECT_FALSE(AtomMatchesChar(true, 's', '.'));
        +  EXPECT_FALSE(AtomMatchesChar(true, 's', '9'));
        +
        +  EXPECT_TRUE(AtomMatchesChar(true, 's', ' '));
        +  EXPECT_TRUE(AtomMatchesChar(true, 's', '\n'));
        +  EXPECT_TRUE(AtomMatchesChar(true, 's', '\t'));
        +}
        +
        +TEST(AtomMatchesCharTest, Escaped_S) {
        +  EXPECT_FALSE(AtomMatchesChar(true, 'S', ' '));
        +  EXPECT_FALSE(AtomMatchesChar(true, 'S', '\r'));
        +
        +  EXPECT_TRUE(AtomMatchesChar(true, 'S', '\0'));
        +  EXPECT_TRUE(AtomMatchesChar(true, 'S', 'a'));
        +  EXPECT_TRUE(AtomMatchesChar(true, 'S', '9'));
        +}
        +
        +TEST(AtomMatchesCharTest, Escaped_w) {
        +  EXPECT_FALSE(AtomMatchesChar(true, 'w', '\0'));
        +  EXPECT_FALSE(AtomMatchesChar(true, 'w', '+'));
        +  EXPECT_FALSE(AtomMatchesChar(true, 'w', ' '));
        +  EXPECT_FALSE(AtomMatchesChar(true, 'w', '\n'));
        +
        +  EXPECT_TRUE(AtomMatchesChar(true, 'w', '0'));
        +  EXPECT_TRUE(AtomMatchesChar(true, 'w', 'b'));
        +  EXPECT_TRUE(AtomMatchesChar(true, 'w', 'C'));
        +  EXPECT_TRUE(AtomMatchesChar(true, 'w', '_'));
        +}
        +
        +TEST(AtomMatchesCharTest, Escaped_W) {
        +  EXPECT_FALSE(AtomMatchesChar(true, 'W', 'A'));
        +  EXPECT_FALSE(AtomMatchesChar(true, 'W', 'b'));
        +  EXPECT_FALSE(AtomMatchesChar(true, 'W', '9'));
        +  EXPECT_FALSE(AtomMatchesChar(true, 'W', '_'));
        +
        +  EXPECT_TRUE(AtomMatchesChar(true, 'W', '\0'));
        +  EXPECT_TRUE(AtomMatchesChar(true, 'W', '*'));
        +  EXPECT_TRUE(AtomMatchesChar(true, 'W', '\n'));
        +}
        +
        +TEST(AtomMatchesCharTest, EscapedWhiteSpace) {
        +  EXPECT_FALSE(AtomMatchesChar(true, 'f', '\0'));
        +  EXPECT_FALSE(AtomMatchesChar(true, 'f', '\n'));
        +  EXPECT_FALSE(AtomMatchesChar(true, 'n', '\0'));
        +  EXPECT_FALSE(AtomMatchesChar(true, 'n', '\r'));
        +  EXPECT_FALSE(AtomMatchesChar(true, 'r', '\0'));
        +  EXPECT_FALSE(AtomMatchesChar(true, 'r', 'a'));
        +  EXPECT_FALSE(AtomMatchesChar(true, 't', '\0'));
        +  EXPECT_FALSE(AtomMatchesChar(true, 't', 't'));
        +  EXPECT_FALSE(AtomMatchesChar(true, 'v', '\0'));
        +  EXPECT_FALSE(AtomMatchesChar(true, 'v', '\f'));
        +
        +  EXPECT_TRUE(AtomMatchesChar(true, 'f', '\f'));
        +  EXPECT_TRUE(AtomMatchesChar(true, 'n', '\n'));
        +  EXPECT_TRUE(AtomMatchesChar(true, 'r', '\r'));
        +  EXPECT_TRUE(AtomMatchesChar(true, 't', '\t'));
        +  EXPECT_TRUE(AtomMatchesChar(true, 'v', '\v'));
        +}
        +
        +TEST(AtomMatchesCharTest, UnescapedDot) {
        +  EXPECT_FALSE(AtomMatchesChar(false, '.', '\n'));
        +
        +  EXPECT_TRUE(AtomMatchesChar(false, '.', '\0'));
        +  EXPECT_TRUE(AtomMatchesChar(false, '.', '.'));
        +  EXPECT_TRUE(AtomMatchesChar(false, '.', 'a'));
        +  EXPECT_TRUE(AtomMatchesChar(false, '.', ' '));
        +}
        +
        +TEST(AtomMatchesCharTest, UnescapedChar) {
        +  EXPECT_FALSE(AtomMatchesChar(false, 'a', '\0'));
        +  EXPECT_FALSE(AtomMatchesChar(false, 'a', 'b'));
        +  EXPECT_FALSE(AtomMatchesChar(false, '$', 'a'));
        +
        +  EXPECT_TRUE(AtomMatchesChar(false, '$', '$'));
        +  EXPECT_TRUE(AtomMatchesChar(false, '5', '5'));
        +  EXPECT_TRUE(AtomMatchesChar(false, 'Z', 'Z'));
        +}
        +
        +TEST(ValidateRegexTest, GeneratesFailureAndReturnsFalseForInvalid) {
        +  EXPECT_NONFATAL_FAILURE(ASSERT_FALSE(ValidateRegex(NULL)),
        +                          "NULL is not a valid simple regular expression");
        +  EXPECT_NONFATAL_FAILURE(
        +      ASSERT_FALSE(ValidateRegex("a\\")),
        +      "Syntax error at index 1 in simple regular expression \"a\\\": ");
        +  EXPECT_NONFATAL_FAILURE(ASSERT_FALSE(ValidateRegex("a\\")),
        +                          "'\\' cannot appear at the end");
        +  EXPECT_NONFATAL_FAILURE(ASSERT_FALSE(ValidateRegex("\\n\\")),
        +                          "'\\' cannot appear at the end");
        +  EXPECT_NONFATAL_FAILURE(ASSERT_FALSE(ValidateRegex("\\s\\hb")),
        +                          "invalid escape sequence \"\\h\"");
        +  EXPECT_NONFATAL_FAILURE(ASSERT_FALSE(ValidateRegex("^^")),
        +                          "'^' can only appear at the beginning");
        +  EXPECT_NONFATAL_FAILURE(ASSERT_FALSE(ValidateRegex(".*^b")),
        +                          "'^' can only appear at the beginning");
        +  EXPECT_NONFATAL_FAILURE(ASSERT_FALSE(ValidateRegex("$$")),
        +                          "'$' can only appear at the end");
        +  EXPECT_NONFATAL_FAILURE(ASSERT_FALSE(ValidateRegex("^$a")),
        +                          "'$' can only appear at the end");
        +  EXPECT_NONFATAL_FAILURE(ASSERT_FALSE(ValidateRegex("a(b")),
        +                          "'(' is unsupported");
        +  EXPECT_NONFATAL_FAILURE(ASSERT_FALSE(ValidateRegex("ab)")),
        +                          "')' is unsupported");
        +  EXPECT_NONFATAL_FAILURE(ASSERT_FALSE(ValidateRegex("[ab")),
        +                          "'[' is unsupported");
        +  EXPECT_NONFATAL_FAILURE(ASSERT_FALSE(ValidateRegex("a{2")),
        +                          "'{' is unsupported");
        +  EXPECT_NONFATAL_FAILURE(ASSERT_FALSE(ValidateRegex("?")),
        +                          "'?' can only follow a repeatable token");
        +  EXPECT_NONFATAL_FAILURE(ASSERT_FALSE(ValidateRegex("^*")),
        +                          "'*' can only follow a repeatable token");
        +  EXPECT_NONFATAL_FAILURE(ASSERT_FALSE(ValidateRegex("5*+")),
        +                          "'+' can only follow a repeatable token");
        +}
        +
        +TEST(ValidateRegexTest, ReturnsTrueForValid) {
        +  EXPECT_TRUE(ValidateRegex(""));
        +  EXPECT_TRUE(ValidateRegex("a"));
        +  EXPECT_TRUE(ValidateRegex(".*"));
        +  EXPECT_TRUE(ValidateRegex("^a_+"));
        +  EXPECT_TRUE(ValidateRegex("^a\\t\\&?"));
        +  EXPECT_TRUE(ValidateRegex("09*$"));
        +  EXPECT_TRUE(ValidateRegex("^Z$"));
        +  EXPECT_TRUE(ValidateRegex("a\\^Z\\$\\(\\)\\|\\[\\]\\{\\}"));
        +}
        +
        +TEST(MatchRepetitionAndRegexAtHeadTest, WorksForZeroOrOne) {
        +  EXPECT_FALSE(MatchRepetitionAndRegexAtHead(false, 'a', '?', "a", "ba"));
        +  // Repeating more than once.
        +  EXPECT_FALSE(MatchRepetitionAndRegexAtHead(false, 'a', '?', "b", "aab"));
        +
        +  // Repeating zero times.
        +  EXPECT_TRUE(MatchRepetitionAndRegexAtHead(false, 'a', '?', "b", "ba"));
        +  // Repeating once.
        +  EXPECT_TRUE(MatchRepetitionAndRegexAtHead(false, 'a', '?', "b", "ab"));
        +  EXPECT_TRUE(MatchRepetitionAndRegexAtHead(false, '#', '?', ".", "##"));
        +}
        +
        +TEST(MatchRepetitionAndRegexAtHeadTest, WorksForZeroOrMany) {
        +  EXPECT_FALSE(MatchRepetitionAndRegexAtHead(false, '.', '*', "a$", "baab"));
        +
        +  // Repeating zero times.
        +  EXPECT_TRUE(MatchRepetitionAndRegexAtHead(false, '.', '*', "b", "bc"));
        +  // Repeating once.
        +  EXPECT_TRUE(MatchRepetitionAndRegexAtHead(false, '.', '*', "b", "abc"));
        +  // Repeating more than once.
        +  EXPECT_TRUE(MatchRepetitionAndRegexAtHead(true, 'w', '*', "-", "ab_1-g"));
        +}
        +
        +TEST(MatchRepetitionAndRegexAtHeadTest, WorksForOneOrMany) {
        +  EXPECT_FALSE(MatchRepetitionAndRegexAtHead(false, '.', '+', "a$", "baab"));
        +  // Repeating zero times.
        +  EXPECT_FALSE(MatchRepetitionAndRegexAtHead(false, '.', '+', "b", "bc"));
        +
        +  // Repeating once.
        +  EXPECT_TRUE(MatchRepetitionAndRegexAtHead(false, '.', '+', "b", "abc"));
        +  // Repeating more than once.
        +  EXPECT_TRUE(MatchRepetitionAndRegexAtHead(true, 'w', '+', "-", "ab_1-g"));
        +}
        +
        +TEST(MatchRegexAtHeadTest, ReturnsTrueForEmptyRegex) {
        +  EXPECT_TRUE(MatchRegexAtHead("", ""));
        +  EXPECT_TRUE(MatchRegexAtHead("", "ab"));
        +}
        +
        +TEST(MatchRegexAtHeadTest, WorksWhenDollarIsInRegex) {
        +  EXPECT_FALSE(MatchRegexAtHead("$", "a"));
        +
        +  EXPECT_TRUE(MatchRegexAtHead("$", ""));
        +  EXPECT_TRUE(MatchRegexAtHead("a$", "a"));
        +}
        +
        +TEST(MatchRegexAtHeadTest, WorksWhenRegexStartsWithEscapeSequence) {
        +  EXPECT_FALSE(MatchRegexAtHead("\\w", "+"));
        +  EXPECT_FALSE(MatchRegexAtHead("\\W", "ab"));
        +
        +  EXPECT_TRUE(MatchRegexAtHead("\\sa", "\nab"));
        +  EXPECT_TRUE(MatchRegexAtHead("\\d", "1a"));
        +}
        +
        +TEST(MatchRegexAtHeadTest, WorksWhenRegexStartsWithRepetition) {
        +  EXPECT_FALSE(MatchRegexAtHead(".+a", "abc"));
        +  EXPECT_FALSE(MatchRegexAtHead("a?b", "aab"));
        +
        +  EXPECT_TRUE(MatchRegexAtHead(".*a", "bc12-ab"));
        +  EXPECT_TRUE(MatchRegexAtHead("a?b", "b"));
        +  EXPECT_TRUE(MatchRegexAtHead("a?b", "ab"));
        +}
        +
        +TEST(MatchRegexAtHeadTest,
        +     WorksWhenRegexStartsWithRepetionOfEscapeSequence) {
        +  EXPECT_FALSE(MatchRegexAtHead("\\.+a", "abc"));
        +  EXPECT_FALSE(MatchRegexAtHead("\\s?b", "  b"));
        +
        +  EXPECT_TRUE(MatchRegexAtHead("\\(*a", "((((ab"));
        +  EXPECT_TRUE(MatchRegexAtHead("\\^?b", "^b"));
        +  EXPECT_TRUE(MatchRegexAtHead("\\\\?b", "b"));
        +  EXPECT_TRUE(MatchRegexAtHead("\\\\?b", "\\b"));
        +}
        +
        +TEST(MatchRegexAtHeadTest, MatchesSequentially) {
        +  EXPECT_FALSE(MatchRegexAtHead("ab.*c", "acabc"));
        +
        +  EXPECT_TRUE(MatchRegexAtHead("ab.*c", "ab-fsc"));
        +}
        +
        +TEST(MatchRegexAnywhereTest, ReturnsFalseWhenStringIsNull) {
        +  EXPECT_FALSE(MatchRegexAnywhere("", NULL));
        +}
        +
        +TEST(MatchRegexAnywhereTest, WorksWhenRegexStartsWithCaret) {
        +  EXPECT_FALSE(MatchRegexAnywhere("^a", "ba"));
        +  EXPECT_FALSE(MatchRegexAnywhere("^$", "a"));
        +
        +  EXPECT_TRUE(MatchRegexAnywhere("^a", "ab"));
        +  EXPECT_TRUE(MatchRegexAnywhere("^", "ab"));
        +  EXPECT_TRUE(MatchRegexAnywhere("^$", ""));
        +}
        +
        +TEST(MatchRegexAnywhereTest, ReturnsFalseWhenNoMatch) {
        +  EXPECT_FALSE(MatchRegexAnywhere("a", "bcde123"));
        +  EXPECT_FALSE(MatchRegexAnywhere("a.+a", "--aa88888888"));
        +}
        +
        +TEST(MatchRegexAnywhereTest, ReturnsTrueWhenMatchingPrefix) {
        +  EXPECT_TRUE(MatchRegexAnywhere("\\w+", "ab1_ - 5"));
        +  EXPECT_TRUE(MatchRegexAnywhere(".*=", "="));
        +  EXPECT_TRUE(MatchRegexAnywhere("x.*ab?.*bc", "xaaabc"));
        +}
        +
        +TEST(MatchRegexAnywhereTest, ReturnsTrueWhenMatchingNonPrefix) {
        +  EXPECT_TRUE(MatchRegexAnywhere("\\w+", "$$$ ab1_ - 5"));
        +  EXPECT_TRUE(MatchRegexAnywhere("\\.+=", "=  ...="));
        +}
        +
        +// Tests RE's implicit constructors.
        +TEST(RETest, ImplicitConstructorWorks) {
        +  const RE empty("");
        +  EXPECT_STREQ("", empty.pattern());
        +
        +  const RE simple("hello");
        +  EXPECT_STREQ("hello", simple.pattern());
        +}
        +
        +// Tests that RE's constructors reject invalid regular expressions.
        +TEST(RETest, RejectsInvalidRegex) {
        +  EXPECT_NONFATAL_FAILURE({
        +    const RE normal(NULL);
        +  }, "NULL is not a valid simple regular expression");
        +
        +  EXPECT_NONFATAL_FAILURE({
        +    const RE normal(".*(\\w+");
        +  }, "'(' is unsupported");
        +
        +  EXPECT_NONFATAL_FAILURE({
        +    const RE invalid("^?");
        +  }, "'?' can only follow a repeatable token");
        +}
        +
        +// Tests RE::FullMatch().
        +TEST(RETest, FullMatchWorks) {
        +  const RE empty("");
        +  EXPECT_TRUE(RE::FullMatch("", empty));
        +  EXPECT_FALSE(RE::FullMatch("a", empty));
        +
        +  const RE re1("a");
        +  EXPECT_TRUE(RE::FullMatch("a", re1));
        +
        +  const RE re("a.*z");
        +  EXPECT_TRUE(RE::FullMatch("az", re));
        +  EXPECT_TRUE(RE::FullMatch("axyz", re));
        +  EXPECT_FALSE(RE::FullMatch("baz", re));
        +  EXPECT_FALSE(RE::FullMatch("azy", re));
        +}
        +
        +// Tests RE::PartialMatch().
        +TEST(RETest, PartialMatchWorks) {
        +  const RE empty("");
        +  EXPECT_TRUE(RE::PartialMatch("", empty));
        +  EXPECT_TRUE(RE::PartialMatch("a", empty));
        +
        +  const RE re("a.*z");
        +  EXPECT_TRUE(RE::PartialMatch("az", re));
        +  EXPECT_TRUE(RE::PartialMatch("axyz", re));
        +  EXPECT_TRUE(RE::PartialMatch("baz", re));
        +  EXPECT_TRUE(RE::PartialMatch("azy", re));
        +  EXPECT_FALSE(RE::PartialMatch("zza", re));
        +}
        +
        +#endif  // GTEST_USES_POSIX_RE
        +
        +#if !GTEST_OS_WINDOWS_MOBILE
        +
        +TEST(CaptureTest, CapturesStdout) {
        +  CaptureStdout();
        +  fprintf(stdout, "abc");
        +  EXPECT_STREQ("abc", GetCapturedStdout().c_str());
        +
        +  CaptureStdout();
        +  fprintf(stdout, "def%cghi", '\0');
        +  EXPECT_EQ(::std::string("def\0ghi", 7), ::std::string(GetCapturedStdout()));
        +}
        +
        +TEST(CaptureTest, CapturesStderr) {
        +  CaptureStderr();
        +  fprintf(stderr, "jkl");
        +  EXPECT_STREQ("jkl", GetCapturedStderr().c_str());
        +
        +  CaptureStderr();
        +  fprintf(stderr, "jkl%cmno", '\0');
        +  EXPECT_EQ(::std::string("jkl\0mno", 7), ::std::string(GetCapturedStderr()));
        +}
        +
        +// Tests that stdout and stderr capture don't interfere with each other.
        +TEST(CaptureTest, CapturesStdoutAndStderr) {
        +  CaptureStdout();
        +  CaptureStderr();
        +  fprintf(stdout, "pqr");
        +  fprintf(stderr, "stu");
        +  EXPECT_STREQ("pqr", GetCapturedStdout().c_str());
        +  EXPECT_STREQ("stu", GetCapturedStderr().c_str());
        +}
        +
        +TEST(CaptureDeathTest, CannotReenterStdoutCapture) {
        +  CaptureStdout();
        +  EXPECT_DEATH_IF_SUPPORTED(CaptureStdout(),
        +                            "Only one stdout capturer can exist at a time");
        +  GetCapturedStdout();
        +
        +  // We cannot test stderr capturing using death tests as they use it
        +  // themselves.
        +}
        +
        +#endif  // !GTEST_OS_WINDOWS_MOBILE
        +
        +TEST(ThreadLocalTest, DefaultConstructorInitializesToDefaultValues) {
        +  ThreadLocal<int> t1;
        +  EXPECT_EQ(0, t1.get());
        +
        +  ThreadLocal<void*> t2;
        +  EXPECT_TRUE(t2.get() == NULL);
        +}
        +
        +TEST(ThreadLocalTest, SingleParamConstructorInitializesToParam) {
        +  ThreadLocal<int> t1(123);
        +  EXPECT_EQ(123, t1.get());
        +
        +  int i = 0;
        +  ThreadLocal<int*> t2(&i);
        +  EXPECT_EQ(&i, t2.get());
        +}
        +
        +class NoDefaultContructor {
        + public:
        +  explicit NoDefaultContructor(const char*) {}
        +  NoDefaultContructor(const NoDefaultContructor&) {}
        +};
        +
        +TEST(ThreadLocalTest, ValueDefaultContructorIsNotRequiredForParamVersion) {
        +  ThreadLocal<NoDefaultContructor> bar(NoDefaultContructor("foo"));
        +  bar.pointer();
        +}
        +
        +TEST(ThreadLocalTest, GetAndPointerReturnSameValue) {
        +  ThreadLocal<std::string> thread_local_string;
        +
        +  EXPECT_EQ(thread_local_string.pointer(), &(thread_local_string.get()));
        +
        +  // Verifies the condition still holds after calling set.
        +  thread_local_string.set("foo");
        +  EXPECT_EQ(thread_local_string.pointer(), &(thread_local_string.get()));
        +}
        +
        +TEST(ThreadLocalTest, PointerAndConstPointerReturnSameValue) {
        +  ThreadLocal<std::string> thread_local_string;
        +  const ThreadLocal<std::string>& const_thread_local_string =
        +      thread_local_string;
        +
        +  EXPECT_EQ(thread_local_string.pointer(), const_thread_local_string.pointer());
        +
        +  thread_local_string.set("foo");
        +  EXPECT_EQ(thread_local_string.pointer(), const_thread_local_string.pointer());
        +}
        +
        +#if GTEST_IS_THREADSAFE
        +
        +void AddTwo(int* param) { *param += 2; }
        +
        +TEST(ThreadWithParamTest, ConstructorExecutesThreadFunc) {
        +  int i = 40;
        +  ThreadWithParam<int*> thread(&AddTwo, &i, NULL);
        +  thread.Join();
        +  EXPECT_EQ(42, i);
        +}
        +
        +TEST(MutexDeathTest, AssertHeldShouldAssertWhenNotLocked) {
        +  // AssertHeld() is flaky only in the presence of multiple threads accessing
        +  // the lock. In this case, the test is robust.
        +  EXPECT_DEATH_IF_SUPPORTED({
        +    Mutex m;
        +    { MutexLock lock(&m); }
        +    m.AssertHeld();
        +  },
        +  "thread .*hold");
        +}
        +
        +TEST(MutexTest, AssertHeldShouldNotAssertWhenLocked) {
        +  Mutex m;
        +  MutexLock lock(&m);
        +  m.AssertHeld();
        +}
        +
        +class AtomicCounterWithMutex {
        + public:
        +  explicit AtomicCounterWithMutex(Mutex* mutex) :
        +    value_(0), mutex_(mutex), random_(42) {}
        +
        +  void Increment() {
        +    MutexLock lock(mutex_);
        +    int temp = value_;
        +    {
        +      // We need to put up a memory barrier to prevent reads and writes to
        +      // value_ rearranged with the call to SleepMilliseconds when observed
        +      // from other threads.
        +#if GTEST_HAS_PTHREAD
        +      // On POSIX, locking a mutex puts up a memory barrier.  We cannot use
        +      // Mutex and MutexLock here or rely on their memory barrier
        +      // functionality as we are testing them here.
        +      pthread_mutex_t memory_barrier_mutex;
        +      GTEST_CHECK_POSIX_SUCCESS_(
        +          pthread_mutex_init(&memory_barrier_mutex, NULL));
        +      GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_lock(&memory_barrier_mutex));
        +
        +      SleepMilliseconds(random_.Generate(30));
        +
        +      GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_unlock(&memory_barrier_mutex));
        +      GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_destroy(&memory_barrier_mutex));
        +#elif GTEST_OS_WINDOWS
        +      // On Windows, performing an interlocked access puts up a memory barrier.
        +      volatile LONG dummy = 0;
        +      ::InterlockedIncrement(&dummy);
        +      SleepMilliseconds(random_.Generate(30));
        +      ::InterlockedIncrement(&dummy);
        +#else
        +# error "Memory barrier not implemented on this platform."
        +#endif  // GTEST_HAS_PTHREAD
        +    }
        +    value_ = temp + 1;
        +  }
        +  int value() const { return value_; }
        +
        + private:
        +  volatile int value_;
        +  Mutex* const mutex_;  // Protects value_.
        +  Random       random_;
        +};
        +
        +void CountingThreadFunc(pair<AtomicCounterWithMutex*, int> param) {
        +  for (int i = 0; i < param.second; ++i)
        +      param.first->Increment();
        +}
        +
        +// Tests that the mutex only lets one thread at a time to lock it.
        +TEST(MutexTest, OnlyOneThreadCanLockAtATime) {
        +  Mutex mutex;
        +  AtomicCounterWithMutex locked_counter(&mutex);
        +
        +  typedef ThreadWithParam<pair<AtomicCounterWithMutex*, int> > ThreadType;
        +  const int kCycleCount = 20;
        +  const int kThreadCount = 7;
        +  scoped_ptr<ThreadType> counting_threads[kThreadCount];
        +  Notification threads_can_start;
        +  // Creates and runs kThreadCount threads that increment locked_counter
        +  // kCycleCount times each.
        +  for (int i = 0; i < kThreadCount; ++i) {
        +    counting_threads[i].reset(new ThreadType(&CountingThreadFunc,
        +                                             make_pair(&locked_counter,
        +                                                       kCycleCount),
        +                                             &threads_can_start));
        +  }
        +  threads_can_start.Notify();
        +  for (int i = 0; i < kThreadCount; ++i)
        +    counting_threads[i]->Join();
        +
        +  // If the mutex lets more than one thread to increment the counter at a
        +  // time, they are likely to encounter a race condition and have some
        +  // increments overwritten, resulting in the lower then expected counter
        +  // value.
        +  EXPECT_EQ(kCycleCount * kThreadCount, locked_counter.value());
        +}
        +
        +template <typename T>
        +void RunFromThread(void (func)(T), T param) {
        +  ThreadWithParam<T> thread(func, param, NULL);
        +  thread.Join();
        +}
        +
        +void RetrieveThreadLocalValue(
        +    pair<ThreadLocal<std::string>*, std::string*> param) {
        +  *param.second = param.first->get();
        +}
        +
        +TEST(ThreadLocalTest, ParameterizedConstructorSetsDefault) {
        +  ThreadLocal<std::string> thread_local_string("foo");
        +  EXPECT_STREQ("foo", thread_local_string.get().c_str());
        +
        +  thread_local_string.set("bar");
        +  EXPECT_STREQ("bar", thread_local_string.get().c_str());
        +
        +  std::string result;
        +  RunFromThread(&RetrieveThreadLocalValue,
        +                make_pair(&thread_local_string, &result));
        +  EXPECT_STREQ("foo", result.c_str());
        +}
        +
        +// Keeps track of whether of destructors being called on instances of
        +// DestructorTracker.  On Windows, waits for the destructor call reports.
        +class DestructorCall {
        + public:
        +  DestructorCall() {
        +    invoked_ = false;
        +#if GTEST_OS_WINDOWS
        +    wait_event_.Reset(::CreateEvent(NULL, TRUE, FALSE, NULL));
        +    GTEST_CHECK_(wait_event_.Get() != NULL);
        +#endif
        +  }
        +
        +  bool CheckDestroyed() const {
        +#if GTEST_OS_WINDOWS
        +    if (::WaitForSingleObject(wait_event_.Get(), 1000) != WAIT_OBJECT_0)
        +      return false;
        +#endif
        +    return invoked_;
        +  }
        +
        +  void ReportDestroyed() {
        +    invoked_ = true;
        +#if GTEST_OS_WINDOWS
        +    ::SetEvent(wait_event_.Get());
        +#endif
        +  }
        +
        +  static std::vector<DestructorCall*>& List() { return *list_; }
        +
        +  static void ResetList() {
        +    for (size_t i = 0; i < list_->size(); ++i) {
        +      delete list_->at(i);
        +    }
        +    list_->clear();
        +  }
        +
        + private:
        +  bool invoked_;
        +#if GTEST_OS_WINDOWS
        +  AutoHandle wait_event_;
        +#endif
        +  static std::vector<DestructorCall*>* const list_;
        +
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(DestructorCall);
        +};
        +
        +std::vector<DestructorCall*>* const DestructorCall::list_ =
        +    new std::vector<DestructorCall*>;
        +
        +// DestructorTracker keeps track of whether its instances have been
        +// destroyed.
        +class DestructorTracker {
        + public:
        +  DestructorTracker() : index_(GetNewIndex()) {}
        +  DestructorTracker(const DestructorTracker& /* rhs */)
        +      : index_(GetNewIndex()) {}
        +  ~DestructorTracker() {
        +    // We never access DestructorCall::List() concurrently, so we don't need
        +    // to protect this acccess with a mutex.
        +    DestructorCall::List()[index_]->ReportDestroyed();
        +  }
        +
        + private:
        +  static size_t GetNewIndex() {
        +    DestructorCall::List().push_back(new DestructorCall);
        +    return DestructorCall::List().size() - 1;
        +  }
        +  const size_t index_;
        +
        +  GTEST_DISALLOW_ASSIGN_(DestructorTracker);
        +};
        +
        +typedef ThreadLocal<DestructorTracker>* ThreadParam;
        +
        +void CallThreadLocalGet(ThreadParam thread_local_param) {
        +  thread_local_param->get();
        +}
        +
        +// Tests that when a ThreadLocal object dies in a thread, it destroys
        +// the managed object for that thread.
        +TEST(ThreadLocalTest, DestroysManagedObjectForOwnThreadWhenDying) {
        +  DestructorCall::ResetList();
        +
        +  {
        +    ThreadLocal<DestructorTracker> thread_local_tracker;
        +    ASSERT_EQ(0U, DestructorCall::List().size());
        +
        +    // This creates another DestructorTracker object for the main thread.
        +    thread_local_tracker.get();
        +    ASSERT_EQ(1U, DestructorCall::List().size());
        +    ASSERT_FALSE(DestructorCall::List()[0]->CheckDestroyed());
        +  }
        +
        +  // Now thread_local_tracker has died.
        +  ASSERT_EQ(1U, DestructorCall::List().size());
        +  EXPECT_TRUE(DestructorCall::List()[0]->CheckDestroyed());
        +
        +  DestructorCall::ResetList();
        +}
        +
        +// Tests that when a thread exits, the thread-local object for that
        +// thread is destroyed.
        +TEST(ThreadLocalTest, DestroysManagedObjectAtThreadExit) {
        +  DestructorCall::ResetList();
        +
        +  {
        +    ThreadLocal<DestructorTracker> thread_local_tracker;
        +    ASSERT_EQ(0U, DestructorCall::List().size());
        +
        +    // This creates another DestructorTracker object in the new thread.
        +    ThreadWithParam<ThreadParam> thread(
        +        &CallThreadLocalGet, &thread_local_tracker, NULL);
        +    thread.Join();
        +
        +    // The thread has exited, and we should have a DestroyedTracker
        +    // instance created for it. But it may not have been destroyed yet.
        +    ASSERT_EQ(1U, DestructorCall::List().size());
        +  }
        +
        +  // The thread has exited and thread_local_tracker has died.
        +  ASSERT_EQ(1U, DestructorCall::List().size());
        +  EXPECT_TRUE(DestructorCall::List()[0]->CheckDestroyed());
        +
        +  DestructorCall::ResetList();
        +}
        +
        +TEST(ThreadLocalTest, ThreadLocalMutationsAffectOnlyCurrentThread) {
        +  ThreadLocal<std::string> thread_local_string;
        +  thread_local_string.set("Foo");
        +  EXPECT_STREQ("Foo", thread_local_string.get().c_str());
        +
        +  std::string result;
        +  RunFromThread(&RetrieveThreadLocalValue,
        +                make_pair(&thread_local_string, &result));
        +  EXPECT_TRUE(result.empty());
        +}
        +
        +#endif  // GTEST_IS_THREADSAFE
        +
        +#if GTEST_OS_WINDOWS
        +TEST(WindowsTypesTest, HANDLEIsVoidStar) {
        +  StaticAssertTypeEq<HANDLE, void*>();
        +}
        +
        +TEST(WindowsTypesTest, CRITICAL_SECTIONIs_RTL_CRITICAL_SECTION) {
        +  StaticAssertTypeEq<CRITICAL_SECTION, _RTL_CRITICAL_SECTION>();
        +}
        +#endif  // GTEST_OS_WINDOWS
        +
        +}  // namespace internal
        +}  // namespace testing
        diff --git a/lib/ann/fann/lib/googletest/test/gtest-printers_test.cc b/lib/ann/fann/lib/googletest/test/gtest-printers_test.cc
        new file mode 100644
        index 0000000..3e97cc2
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest-printers_test.cc
        @@ -0,0 +1,1635 @@
        +// Copyright 2007, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +// Google Test - The Google C++ Testing Framework
        +//
        +// This file tests the universal value printer.
        +
        +#include "gtest/gtest-printers.h"
        +
        +#include <ctype.h>
        +#include <limits.h>
        +#include <string.h>
        +#include <algorithm>
        +#include <deque>
        +#include <list>
        +#include <map>
        +#include <set>
        +#include <sstream>
        +#include <string>
        +#include <utility>
        +#include <vector>
        +
        +#include "gtest/gtest.h"
        +
        +// hash_map and hash_set are available under Visual C++, or on Linux.
        +#if GTEST_HAS_HASH_MAP_
        +# include <hash_map>            // NOLINT
        +#endif  // GTEST_HAS_HASH_MAP_
        +#if GTEST_HAS_HASH_SET_
        +# include <hash_set>            // NOLINT
        +#endif  // GTEST_HAS_HASH_SET_
        +
        +#if GTEST_HAS_STD_FORWARD_LIST_
        +# include <forward_list> // NOLINT
        +#endif  // GTEST_HAS_STD_FORWARD_LIST_
        +
        +// Some user-defined types for testing the universal value printer.
        +
        +// An anonymous enum type.
        +enum AnonymousEnum {
        +  kAE1 = -1,
        +  kAE2 = 1
        +};
        +
        +// An enum without a user-defined printer.
        +enum EnumWithoutPrinter {
        +  kEWP1 = -2,
        +  kEWP2 = 42
        +};
        +
        +// An enum with a << operator.
        +enum EnumWithStreaming {
        +  kEWS1 = 10
        +};
        +
        +std::ostream& operator<<(std::ostream& os, EnumWithStreaming e) {
        +  return os << (e == kEWS1 ? "kEWS1" : "invalid");
        +}
        +
        +// An enum with a PrintTo() function.
        +enum EnumWithPrintTo {
        +  kEWPT1 = 1
        +};
        +
        +void PrintTo(EnumWithPrintTo e, std::ostream* os) {
        +  *os << (e == kEWPT1 ? "kEWPT1" : "invalid");
        +}
        +
        +// A class implicitly convertible to BiggestInt.
        +class BiggestIntConvertible {
        + public:
        +  operator ::testing::internal::BiggestInt() const { return 42; }
        +};
        +
        +// A user-defined unprintable class template in the global namespace.
        +template <typename T>
        +class UnprintableTemplateInGlobal {
        + public:
        +  UnprintableTemplateInGlobal() : value_() {}
        + private:
        +  T value_;
        +};
        +
        +// A user-defined streamable type in the global namespace.
        +class StreamableInGlobal {
        + public:
        +  virtual ~StreamableInGlobal() {}
        +};
        +
        +inline void operator<<(::std::ostream& os, const StreamableInGlobal& /* x */) {
        +  os << "StreamableInGlobal";
        +}
        +
        +void operator<<(::std::ostream& os, const StreamableInGlobal* /* x */) {
        +  os << "StreamableInGlobal*";
        +}
        +
        +namespace foo {
        +
        +// A user-defined unprintable type in a user namespace.
        +class UnprintableInFoo {
        + public:
        +  UnprintableInFoo() : z_(0) { memcpy(xy_, "\xEF\x12\x0\x0\x34\xAB\x0\x0", 8); }
        +  double z() const { return z_; }
        + private:
        +  char xy_[8];
        +  double z_;
        +};
        +
        +// A user-defined printable type in a user-chosen namespace.
        +struct PrintableViaPrintTo {
        +  PrintableViaPrintTo() : value() {}
        +  int value;
        +};
        +
        +void PrintTo(const PrintableViaPrintTo& x, ::std::ostream* os) {
        +  *os << "PrintableViaPrintTo: " << x.value;
        +}
        +
        +// A type with a user-defined << for printing its pointer.
        +struct PointerPrintable {
        +};
        +
        +::std::ostream& operator<<(::std::ostream& os,
        +                           const PointerPrintable* /* x */) {
        +  return os << "PointerPrintable*";
        +}
        +
        +// A user-defined printable class template in a user-chosen namespace.
        +template <typename T>
        +class PrintableViaPrintToTemplate {
        + public:
        +  explicit PrintableViaPrintToTemplate(const T& a_value) : value_(a_value) {}
        +
        +  const T& value() const { return value_; }
        + private:
        +  T value_;
        +};
        +
        +template <typename T>
        +void PrintTo(const PrintableViaPrintToTemplate<T>& x, ::std::ostream* os) {
        +  *os << "PrintableViaPrintToTemplate: " << x.value();
        +}
        +
        +// A user-defined streamable class template in a user namespace.
        +template <typename T>
        +class StreamableTemplateInFoo {
        + public:
        +  StreamableTemplateInFoo() : value_() {}
        +
        +  const T& value() const { return value_; }
        + private:
        +  T value_;
        +};
        +
        +template <typename T>
        +inline ::std::ostream& operator<<(::std::ostream& os,
        +                                  const StreamableTemplateInFoo<T>& x) {
        +  return os << "StreamableTemplateInFoo: " << x.value();
        +}
        +
        +}  // namespace foo
        +
        +namespace testing {
        +namespace gtest_printers_test {
        +
        +using ::std::deque;
        +using ::std::list;
        +using ::std::make_pair;
        +using ::std::map;
        +using ::std::multimap;
        +using ::std::multiset;
        +using ::std::pair;
        +using ::std::set;
        +using ::std::vector;
        +using ::testing::PrintToString;
        +using ::testing::internal::FormatForComparisonFailureMessage;
        +using ::testing::internal::ImplicitCast_;
        +using ::testing::internal::NativeArray;
        +using ::testing::internal::RE;
        +using ::testing::internal::RelationToSourceReference;
        +using ::testing::internal::Strings;
        +using ::testing::internal::UniversalPrint;
        +using ::testing::internal::UniversalPrinter;
        +using ::testing::internal::UniversalTersePrint;
        +using ::testing::internal::UniversalTersePrintTupleFieldsToStrings;
        +using ::testing::internal::string;
        +
        +// The hash_* classes are not part of the C++ standard.  STLport
        +// defines them in namespace std.  MSVC defines them in ::stdext.  GCC
        +// defines them in ::.
        +#ifdef _STLP_HASH_MAP  // We got <hash_map> from STLport.
        +using ::std::hash_map;
        +using ::std::hash_set;
        +using ::std::hash_multimap;
        +using ::std::hash_multiset;
        +#elif _MSC_VER
        +using ::stdext::hash_map;
        +using ::stdext::hash_set;
        +using ::stdext::hash_multimap;
        +using ::stdext::hash_multiset;
        +#endif
        +
        +// Prints a value to a string using the universal value printer.  This
        +// is a helper for testing UniversalPrinter<T>::Print() for various types.
        +template <typename T>
        +string Print(const T& value) {
        +  ::std::stringstream ss;
        +  UniversalPrinter<T>::Print(value, &ss);
        +  return ss.str();
        +}
        +
        +// Prints a value passed by reference to a string, using the universal
        +// value printer.  This is a helper for testing
        +// UniversalPrinter<T&>::Print() for various types.
        +template <typename T>
        +string PrintByRef(const T& value) {
        +  ::std::stringstream ss;
        +  UniversalPrinter<T&>::Print(value, &ss);
        +  return ss.str();
        +}
        +
        +// Tests printing various enum types.
        +
        +TEST(PrintEnumTest, AnonymousEnum) {
        +  EXPECT_EQ("-1", Print(kAE1));
        +  EXPECT_EQ("1", Print(kAE2));
        +}
        +
        +TEST(PrintEnumTest, EnumWithoutPrinter) {
        +  EXPECT_EQ("-2", Print(kEWP1));
        +  EXPECT_EQ("42", Print(kEWP2));
        +}
        +
        +TEST(PrintEnumTest, EnumWithStreaming) {
        +  EXPECT_EQ("kEWS1", Print(kEWS1));
        +  EXPECT_EQ("invalid", Print(static_cast<EnumWithStreaming>(0)));
        +}
        +
        +TEST(PrintEnumTest, EnumWithPrintTo) {
        +  EXPECT_EQ("kEWPT1", Print(kEWPT1));
        +  EXPECT_EQ("invalid", Print(static_cast<EnumWithPrintTo>(0)));
        +}
        +
        +// Tests printing a class implicitly convertible to BiggestInt.
        +
        +TEST(PrintClassTest, BiggestIntConvertible) {
        +  EXPECT_EQ("42", Print(BiggestIntConvertible()));
        +}
        +
        +// Tests printing various char types.
        +
        +// char.
        +TEST(PrintCharTest, PlainChar) {
        +  EXPECT_EQ("'\\0'", Print('\0'));
        +  EXPECT_EQ("'\\'' (39, 0x27)", Print('\''));
        +  EXPECT_EQ("'\"' (34, 0x22)", Print('"'));
        +  EXPECT_EQ("'?' (63, 0x3F)", Print('?'));
        +  EXPECT_EQ("'\\\\' (92, 0x5C)", Print('\\'));
        +  EXPECT_EQ("'\\a' (7)", Print('\a'));
        +  EXPECT_EQ("'\\b' (8)", Print('\b'));
        +  EXPECT_EQ("'\\f' (12, 0xC)", Print('\f'));
        +  EXPECT_EQ("'\\n' (10, 0xA)", Print('\n'));
        +  EXPECT_EQ("'\\r' (13, 0xD)", Print('\r'));
        +  EXPECT_EQ("'\\t' (9)", Print('\t'));
        +  EXPECT_EQ("'\\v' (11, 0xB)", Print('\v'));
        +  EXPECT_EQ("'\\x7F' (127)", Print('\x7F'));
        +  EXPECT_EQ("'\\xFF' (255)", Print('\xFF'));
        +  EXPECT_EQ("' ' (32, 0x20)", Print(' '));
        +  EXPECT_EQ("'a' (97, 0x61)", Print('a'));
        +}
        +
        +// signed char.
        +TEST(PrintCharTest, SignedChar) {
        +  EXPECT_EQ("'\\0'", Print(static_cast<signed char>('\0')));
        +  EXPECT_EQ("'\\xCE' (-50)",
        +            Print(static_cast<signed char>(-50)));
        +}
        +
        +// unsigned char.
        +TEST(PrintCharTest, UnsignedChar) {
        +  EXPECT_EQ("'\\0'", Print(static_cast<unsigned char>('\0')));
        +  EXPECT_EQ("'b' (98, 0x62)",
        +            Print(static_cast<unsigned char>('b')));
        +}
        +
        +// Tests printing other simple, built-in types.
        +
        +// bool.
        +TEST(PrintBuiltInTypeTest, Bool) {
        +  EXPECT_EQ("false", Print(false));
        +  EXPECT_EQ("true", Print(true));
        +}
        +
        +// wchar_t.
        +TEST(PrintBuiltInTypeTest, Wchar_t) {
        +  EXPECT_EQ("L'\\0'", Print(L'\0'));
        +  EXPECT_EQ("L'\\'' (39, 0x27)", Print(L'\''));
        +  EXPECT_EQ("L'\"' (34, 0x22)", Print(L'"'));
        +  EXPECT_EQ("L'?' (63, 0x3F)", Print(L'?'));
        +  EXPECT_EQ("L'\\\\' (92, 0x5C)", Print(L'\\'));
        +  EXPECT_EQ("L'\\a' (7)", Print(L'\a'));
        +  EXPECT_EQ("L'\\b' (8)", Print(L'\b'));
        +  EXPECT_EQ("L'\\f' (12, 0xC)", Print(L'\f'));
        +  EXPECT_EQ("L'\\n' (10, 0xA)", Print(L'\n'));
        +  EXPECT_EQ("L'\\r' (13, 0xD)", Print(L'\r'));
        +  EXPECT_EQ("L'\\t' (9)", Print(L'\t'));
        +  EXPECT_EQ("L'\\v' (11, 0xB)", Print(L'\v'));
        +  EXPECT_EQ("L'\\x7F' (127)", Print(L'\x7F'));
        +  EXPECT_EQ("L'\\xFF' (255)", Print(L'\xFF'));
        +  EXPECT_EQ("L' ' (32, 0x20)", Print(L' '));
        +  EXPECT_EQ("L'a' (97, 0x61)", Print(L'a'));
        +  EXPECT_EQ("L'\\x576' (1398)", Print(static_cast<wchar_t>(0x576)));
        +  EXPECT_EQ("L'\\xC74D' (51021)", Print(static_cast<wchar_t>(0xC74D)));
        +}
        +
        +// Test that Int64 provides more storage than wchar_t.
        +TEST(PrintTypeSizeTest, Wchar_t) {
        +  EXPECT_LT(sizeof(wchar_t), sizeof(testing::internal::Int64));
        +}
        +
        +// Various integer types.
        +TEST(PrintBuiltInTypeTest, Integer) {
        +  EXPECT_EQ("'\\xFF' (255)", Print(static_cast<unsigned char>(255)));  // uint8
        +  EXPECT_EQ("'\\x80' (-128)", Print(static_cast<signed char>(-128)));  // int8
        +  EXPECT_EQ("65535", Print(USHRT_MAX));  // uint16
        +  EXPECT_EQ("-32768", Print(SHRT_MIN));  // int16
        +  EXPECT_EQ("4294967295", Print(UINT_MAX));  // uint32
        +  EXPECT_EQ("-2147483648", Print(INT_MIN));  // int32
        +  EXPECT_EQ("18446744073709551615",
        +            Print(static_cast<testing::internal::UInt64>(-1)));  // uint64
        +  EXPECT_EQ("-9223372036854775808",
        +            Print(static_cast<testing::internal::Int64>(1) << 63));  // int64
        +}
        +
        +// Size types.
        +TEST(PrintBuiltInTypeTest, Size_t) {
        +  EXPECT_EQ("1", Print(sizeof('a')));  // size_t.
        +#if !GTEST_OS_WINDOWS
        +  // Windows has no ssize_t type.
        +  EXPECT_EQ("-2", Print(static_cast<ssize_t>(-2)));  // ssize_t.
        +#endif  // !GTEST_OS_WINDOWS
        +}
        +
        +// Floating-points.
        +TEST(PrintBuiltInTypeTest, FloatingPoints) {
        +  EXPECT_EQ("1.5", Print(1.5f));   // float
        +  EXPECT_EQ("-2.5", Print(-2.5));  // double
        +}
        +
        +// Since ::std::stringstream::operator<<(const void *) formats the pointer
        +// output differently with different compilers, we have to create the expected
        +// output first and use it as our expectation.
        +static string PrintPointer(const void *p) {
        +  ::std::stringstream expected_result_stream;
        +  expected_result_stream << p;
        +  return expected_result_stream.str();
        +}
        +
        +// Tests printing C strings.
        +
        +// const char*.
        +TEST(PrintCStringTest, Const) {
        +  const char* p = "World";
        +  EXPECT_EQ(PrintPointer(p) + " pointing to \"World\"", Print(p));
        +}
        +
        +// char*.
        +TEST(PrintCStringTest, NonConst) {
        +  char p[] = "Hi";
        +  EXPECT_EQ(PrintPointer(p) + " pointing to \"Hi\"",
        +            Print(static_cast<char*>(p)));
        +}
        +
        +// NULL C string.
        +TEST(PrintCStringTest, Null) {
        +  const char* p = NULL;
        +  EXPECT_EQ("NULL", Print(p));
        +}
        +
        +// Tests that C strings are escaped properly.
        +TEST(PrintCStringTest, EscapesProperly) {
        +  const char* p = "'\"?\\\a\b\f\n\r\t\v\x7F\xFF a";
        +  EXPECT_EQ(PrintPointer(p) + " pointing to \"'\\\"?\\\\\\a\\b\\f"
        +            "\\n\\r\\t\\v\\x7F\\xFF a\"",
        +            Print(p));
        +}
        +
        +// MSVC compiler can be configured to define whar_t as a typedef
        +// of unsigned short. Defining an overload for const wchar_t* in that case
        +// would cause pointers to unsigned shorts be printed as wide strings,
        +// possibly accessing more memory than intended and causing invalid
        +// memory accesses. MSVC defines _NATIVE_WCHAR_T_DEFINED symbol when
        +// wchar_t is implemented as a native type.
        +#if !defined(_MSC_VER) || defined(_NATIVE_WCHAR_T_DEFINED)
        +
        +// const wchar_t*.
        +TEST(PrintWideCStringTest, Const) {
        +  const wchar_t* p = L"World";
        +  EXPECT_EQ(PrintPointer(p) + " pointing to L\"World\"", Print(p));
        +}
        +
        +// wchar_t*.
        +TEST(PrintWideCStringTest, NonConst) {
        +  wchar_t p[] = L"Hi";
        +  EXPECT_EQ(PrintPointer(p) + " pointing to L\"Hi\"",
        +            Print(static_cast<wchar_t*>(p)));
        +}
        +
        +// NULL wide C string.
        +TEST(PrintWideCStringTest, Null) {
        +  const wchar_t* p = NULL;
        +  EXPECT_EQ("NULL", Print(p));
        +}
        +
        +// Tests that wide C strings are escaped properly.
        +TEST(PrintWideCStringTest, EscapesProperly) {
        +  const wchar_t s[] = {'\'', '"', '?', '\\', '\a', '\b', '\f', '\n', '\r',
        +                       '\t', '\v', 0xD3, 0x576, 0x8D3, 0xC74D, ' ', 'a', '\0'};
        +  EXPECT_EQ(PrintPointer(s) + " pointing to L\"'\\\"?\\\\\\a\\b\\f"
        +            "\\n\\r\\t\\v\\xD3\\x576\\x8D3\\xC74D a\"",
        +            Print(static_cast<const wchar_t*>(s)));
        +}
        +#endif  // native wchar_t
        +
        +// Tests printing pointers to other char types.
        +
        +// signed char*.
        +TEST(PrintCharPointerTest, SignedChar) {
        +  signed char* p = reinterpret_cast<signed char*>(0x1234);
        +  EXPECT_EQ(PrintPointer(p), Print(p));
        +  p = NULL;
        +  EXPECT_EQ("NULL", Print(p));
        +}
        +
        +// const signed char*.
        +TEST(PrintCharPointerTest, ConstSignedChar) {
        +  signed char* p = reinterpret_cast<signed char*>(0x1234);
        +  EXPECT_EQ(PrintPointer(p), Print(p));
        +  p = NULL;
        +  EXPECT_EQ("NULL", Print(p));
        +}
        +
        +// unsigned char*.
        +TEST(PrintCharPointerTest, UnsignedChar) {
        +  unsigned char* p = reinterpret_cast<unsigned char*>(0x1234);
        +  EXPECT_EQ(PrintPointer(p), Print(p));
        +  p = NULL;
        +  EXPECT_EQ("NULL", Print(p));
        +}
        +
        +// const unsigned char*.
        +TEST(PrintCharPointerTest, ConstUnsignedChar) {
        +  const unsigned char* p = reinterpret_cast<const unsigned char*>(0x1234);
        +  EXPECT_EQ(PrintPointer(p), Print(p));
        +  p = NULL;
        +  EXPECT_EQ("NULL", Print(p));
        +}
        +
        +// Tests printing pointers to simple, built-in types.
        +
        +// bool*.
        +TEST(PrintPointerToBuiltInTypeTest, Bool) {
        +  bool* p = reinterpret_cast<bool*>(0xABCD);
        +  EXPECT_EQ(PrintPointer(p), Print(p));
        +  p = NULL;
        +  EXPECT_EQ("NULL", Print(p));
        +}
        +
        +// void*.
        +TEST(PrintPointerToBuiltInTypeTest, Void) {
        +  void* p = reinterpret_cast<void*>(0xABCD);
        +  EXPECT_EQ(PrintPointer(p), Print(p));
        +  p = NULL;
        +  EXPECT_EQ("NULL", Print(p));
        +}
        +
        +// const void*.
        +TEST(PrintPointerToBuiltInTypeTest, ConstVoid) {
        +  const void* p = reinterpret_cast<const void*>(0xABCD);
        +  EXPECT_EQ(PrintPointer(p), Print(p));
        +  p = NULL;
        +  EXPECT_EQ("NULL", Print(p));
        +}
        +
        +// Tests printing pointers to pointers.
        +TEST(PrintPointerToPointerTest, IntPointerPointer) {
        +  int** p = reinterpret_cast<int**>(0xABCD);
        +  EXPECT_EQ(PrintPointer(p), Print(p));
        +  p = NULL;
        +  EXPECT_EQ("NULL", Print(p));
        +}
        +
        +// Tests printing (non-member) function pointers.
        +
        +void MyFunction(int /* n */) {}
        +
        +TEST(PrintPointerTest, NonMemberFunctionPointer) {
        +  // We cannot directly cast &MyFunction to const void* because the
        +  // standard disallows casting between pointers to functions and
        +  // pointers to objects, and some compilers (e.g. GCC 3.4) enforce
        +  // this limitation.
        +  EXPECT_EQ(
        +      PrintPointer(reinterpret_cast<const void*>(
        +          reinterpret_cast<internal::BiggestInt>(&MyFunction))),
        +      Print(&MyFunction));
        +  int (*p)(bool) = NULL;  // NOLINT
        +  EXPECT_EQ("NULL", Print(p));
        +}
        +
        +// An assertion predicate determining whether a one string is a prefix for
        +// another.
        +template <typename StringType>
        +AssertionResult HasPrefix(const StringType& str, const StringType& prefix) {
        +  if (str.find(prefix, 0) == 0)
        +    return AssertionSuccess();
        +
        +  const bool is_wide_string = sizeof(prefix[0]) > 1;
        +  const char* const begin_string_quote = is_wide_string ? "L\"" : "\"";
        +  return AssertionFailure()
        +      << begin_string_quote << prefix << "\" is not a prefix of "
        +      << begin_string_quote << str << "\"\n";
        +}
        +
        +// Tests printing member variable pointers.  Although they are called
        +// pointers, they don't point to a location in the address space.
        +// Their representation is implementation-defined.  Thus they will be
        +// printed as raw bytes.
        +
        +struct Foo {
        + public:
        +  virtual ~Foo() {}
        +  int MyMethod(char x) { return x + 1; }
        +  virtual char MyVirtualMethod(int /* n */) { return 'a'; }
        +
        +  int value;
        +};
        +
        +TEST(PrintPointerTest, MemberVariablePointer) {
        +  EXPECT_TRUE(HasPrefix(Print(&Foo::value),
        +                        Print(sizeof(&Foo::value)) + "-byte object "));
        +  int (Foo::*p) = NULL;  // NOLINT
        +  EXPECT_TRUE(HasPrefix(Print(p),
        +                        Print(sizeof(p)) + "-byte object "));
        +}
        +
        +// Tests printing member function pointers.  Although they are called
        +// pointers, they don't point to a location in the address space.
        +// Their representation is implementation-defined.  Thus they will be
        +// printed as raw bytes.
        +TEST(PrintPointerTest, MemberFunctionPointer) {
        +  EXPECT_TRUE(HasPrefix(Print(&Foo::MyMethod),
        +                        Print(sizeof(&Foo::MyMethod)) + "-byte object "));
        +  EXPECT_TRUE(
        +      HasPrefix(Print(&Foo::MyVirtualMethod),
        +                Print(sizeof((&Foo::MyVirtualMethod))) + "-byte object "));
        +  int (Foo::*p)(char) = NULL;  // NOLINT
        +  EXPECT_TRUE(HasPrefix(Print(p),
        +                        Print(sizeof(p)) + "-byte object "));
        +}
        +
        +// Tests printing C arrays.
        +
        +// The difference between this and Print() is that it ensures that the
        +// argument is a reference to an array.
        +template <typename T, size_t N>
        +string PrintArrayHelper(T (&a)[N]) {
        +  return Print(a);
        +}
        +
        +// One-dimensional array.
        +TEST(PrintArrayTest, OneDimensionalArray) {
        +  int a[5] = { 1, 2, 3, 4, 5 };
        +  EXPECT_EQ("{ 1, 2, 3, 4, 5 }", PrintArrayHelper(a));
        +}
        +
        +// Two-dimensional array.
        +TEST(PrintArrayTest, TwoDimensionalArray) {
        +  int a[2][5] = {
        +    { 1, 2, 3, 4, 5 },
        +    { 6, 7, 8, 9, 0 }
        +  };
        +  EXPECT_EQ("{ { 1, 2, 3, 4, 5 }, { 6, 7, 8, 9, 0 } }", PrintArrayHelper(a));
        +}
        +
        +// Array of const elements.
        +TEST(PrintArrayTest, ConstArray) {
        +  const bool a[1] = { false };
        +  EXPECT_EQ("{ false }", PrintArrayHelper(a));
        +}
        +
        +// char array without terminating NUL.
        +TEST(PrintArrayTest, CharArrayWithNoTerminatingNul) {
        +  // Array a contains '\0' in the middle and doesn't end with '\0'.
        +  char a[] = { 'H', '\0', 'i' };
        +  EXPECT_EQ("\"H\\0i\" (no terminating NUL)", PrintArrayHelper(a));
        +}
        +
        +// const char array with terminating NUL.
        +TEST(PrintArrayTest, ConstCharArrayWithTerminatingNul) {
        +  const char a[] = "\0Hi";
        +  EXPECT_EQ("\"\\0Hi\"", PrintArrayHelper(a));
        +}
        +
        +// const wchar_t array without terminating NUL.
        +TEST(PrintArrayTest, WCharArrayWithNoTerminatingNul) {
        +  // Array a contains '\0' in the middle and doesn't end with '\0'.
        +  const wchar_t a[] = { L'H', L'\0', L'i' };
        +  EXPECT_EQ("L\"H\\0i\" (no terminating NUL)", PrintArrayHelper(a));
        +}
        +
        +// wchar_t array with terminating NUL.
        +TEST(PrintArrayTest, WConstCharArrayWithTerminatingNul) {
        +  const wchar_t a[] = L"\0Hi";
        +  EXPECT_EQ("L\"\\0Hi\"", PrintArrayHelper(a));
        +}
        +
        +// Array of objects.
        +TEST(PrintArrayTest, ObjectArray) {
        +  string a[3] = { "Hi", "Hello", "Ni hao" };
        +  EXPECT_EQ("{ \"Hi\", \"Hello\", \"Ni hao\" }", PrintArrayHelper(a));
        +}
        +
        +// Array with many elements.
        +TEST(PrintArrayTest, BigArray) {
        +  int a[100] = { 1, 2, 3 };
        +  EXPECT_EQ("{ 1, 2, 3, 0, 0, 0, 0, 0, ..., 0, 0, 0, 0, 0, 0, 0, 0 }",
        +            PrintArrayHelper(a));
        +}
        +
        +// Tests printing ::string and ::std::string.
        +
        +#if GTEST_HAS_GLOBAL_STRING
        +// ::string.
        +TEST(PrintStringTest, StringInGlobalNamespace) {
        +  const char s[] = "'\"?\\\a\b\f\n\0\r\t\v\x7F\xFF a";
        +  const ::string str(s, sizeof(s));
        +  EXPECT_EQ("\"'\\\"?\\\\\\a\\b\\f\\n\\0\\r\\t\\v\\x7F\\xFF a\\0\"",
        +            Print(str));
        +}
        +#endif  // GTEST_HAS_GLOBAL_STRING
        +
        +// ::std::string.
        +TEST(PrintStringTest, StringInStdNamespace) {
        +  const char s[] = "'\"?\\\a\b\f\n\0\r\t\v\x7F\xFF a";
        +  const ::std::string str(s, sizeof(s));
        +  EXPECT_EQ("\"'\\\"?\\\\\\a\\b\\f\\n\\0\\r\\t\\v\\x7F\\xFF a\\0\"",
        +            Print(str));
        +}
        +
        +TEST(PrintStringTest, StringAmbiguousHex) {
        +  // "\x6BANANA" is ambiguous, it can be interpreted as starting with either of:
        +  // '\x6', '\x6B', or '\x6BA'.
        +
        +  // a hex escaping sequence following by a decimal digit
        +  EXPECT_EQ("\"0\\x12\" \"3\"", Print(::std::string("0\x12" "3")));
        +  // a hex escaping sequence following by a hex digit (lower-case)
        +  EXPECT_EQ("\"mm\\x6\" \"bananas\"", Print(::std::string("mm\x6" "bananas")));
        +  // a hex escaping sequence following by a hex digit (upper-case)
        +  EXPECT_EQ("\"NOM\\x6\" \"BANANA\"", Print(::std::string("NOM\x6" "BANANA")));
        +  // a hex escaping sequence following by a non-xdigit
        +  EXPECT_EQ("\"!\\x5-!\"", Print(::std::string("!\x5-!")));
        +}
        +
        +// Tests printing ::wstring and ::std::wstring.
        +
        +#if GTEST_HAS_GLOBAL_WSTRING
        +// ::wstring.
        +TEST(PrintWideStringTest, StringInGlobalNamespace) {
        +  const wchar_t s[] = L"'\"?\\\a\b\f\n\0\r\t\v\xD3\x576\x8D3\xC74D a";
        +  const ::wstring str(s, sizeof(s)/sizeof(wchar_t));
        +  EXPECT_EQ("L\"'\\\"?\\\\\\a\\b\\f\\n\\0\\r\\t\\v"
        +            "\\xD3\\x576\\x8D3\\xC74D a\\0\"",
        +            Print(str));
        +}
        +#endif  // GTEST_HAS_GLOBAL_WSTRING
        +
        +#if GTEST_HAS_STD_WSTRING
        +// ::std::wstring.
        +TEST(PrintWideStringTest, StringInStdNamespace) {
        +  const wchar_t s[] = L"'\"?\\\a\b\f\n\0\r\t\v\xD3\x576\x8D3\xC74D a";
        +  const ::std::wstring str(s, sizeof(s)/sizeof(wchar_t));
        +  EXPECT_EQ("L\"'\\\"?\\\\\\a\\b\\f\\n\\0\\r\\t\\v"
        +            "\\xD3\\x576\\x8D3\\xC74D a\\0\"",
        +            Print(str));
        +}
        +
        +TEST(PrintWideStringTest, StringAmbiguousHex) {
        +  // same for wide strings.
        +  EXPECT_EQ("L\"0\\x12\" L\"3\"", Print(::std::wstring(L"0\x12" L"3")));
        +  EXPECT_EQ("L\"mm\\x6\" L\"bananas\"",
        +            Print(::std::wstring(L"mm\x6" L"bananas")));
        +  EXPECT_EQ("L\"NOM\\x6\" L\"BANANA\"",
        +            Print(::std::wstring(L"NOM\x6" L"BANANA")));
        +  EXPECT_EQ("L\"!\\x5-!\"", Print(::std::wstring(L"!\x5-!")));
        +}
        +#endif  // GTEST_HAS_STD_WSTRING
        +
        +// Tests printing types that support generic streaming (i.e. streaming
        +// to std::basic_ostream<Char, CharTraits> for any valid Char and
        +// CharTraits types).
        +
        +// Tests printing a non-template type that supports generic streaming.
        +
        +class AllowsGenericStreaming {};
        +
        +template <typename Char, typename CharTraits>
        +std::basic_ostream<Char, CharTraits>& operator<<(
        +    std::basic_ostream<Char, CharTraits>& os,
        +    const AllowsGenericStreaming& /* a */) {
        +  return os << "AllowsGenericStreaming";
        +}
        +
        +TEST(PrintTypeWithGenericStreamingTest, NonTemplateType) {
        +  AllowsGenericStreaming a;
        +  EXPECT_EQ("AllowsGenericStreaming", Print(a));
        +}
        +
        +// Tests printing a template type that supports generic streaming.
        +
        +template <typename T>
        +class AllowsGenericStreamingTemplate {};
        +
        +template <typename Char, typename CharTraits, typename T>
        +std::basic_ostream<Char, CharTraits>& operator<<(
        +    std::basic_ostream<Char, CharTraits>& os,
        +    const AllowsGenericStreamingTemplate<T>& /* a */) {
        +  return os << "AllowsGenericStreamingTemplate";
        +}
        +
        +TEST(PrintTypeWithGenericStreamingTest, TemplateType) {
        +  AllowsGenericStreamingTemplate<int> a;
        +  EXPECT_EQ("AllowsGenericStreamingTemplate", Print(a));
        +}
        +
        +// Tests printing a type that supports generic streaming and can be
        +// implicitly converted to another printable type.
        +
        +template <typename T>
        +class AllowsGenericStreamingAndImplicitConversionTemplate {
        + public:
        +  operator bool() const { return false; }
        +};
        +
        +template <typename Char, typename CharTraits, typename T>
        +std::basic_ostream<Char, CharTraits>& operator<<(
        +    std::basic_ostream<Char, CharTraits>& os,
        +    const AllowsGenericStreamingAndImplicitConversionTemplate<T>& /* a */) {
        +  return os << "AllowsGenericStreamingAndImplicitConversionTemplate";
        +}
        +
        +TEST(PrintTypeWithGenericStreamingTest, TypeImplicitlyConvertible) {
        +  AllowsGenericStreamingAndImplicitConversionTemplate<int> a;
        +  EXPECT_EQ("AllowsGenericStreamingAndImplicitConversionTemplate", Print(a));
        +}
        +
        +#if GTEST_HAS_STRING_PIECE_
        +
        +// Tests printing StringPiece.
        +
        +TEST(PrintStringPieceTest, SimpleStringPiece) {
        +  const StringPiece sp = "Hello";
        +  EXPECT_EQ("\"Hello\"", Print(sp));
        +}
        +
        +TEST(PrintStringPieceTest, UnprintableCharacters) {
        +  const char str[] = "NUL (\0) and \r\t";
        +  const StringPiece sp(str, sizeof(str) - 1);
        +  EXPECT_EQ("\"NUL (\\0) and \\r\\t\"", Print(sp));
        +}
        +
        +#endif  // GTEST_HAS_STRING_PIECE_
        +
        +// Tests printing STL containers.
        +
        +TEST(PrintStlContainerTest, EmptyDeque) {
        +  deque<char> empty;
        +  EXPECT_EQ("{}", Print(empty));
        +}
        +
        +TEST(PrintStlContainerTest, NonEmptyDeque) {
        +  deque<int> non_empty;
        +  non_empty.push_back(1);
        +  non_empty.push_back(3);
        +  EXPECT_EQ("{ 1, 3 }", Print(non_empty));
        +}
        +
        +#if GTEST_HAS_HASH_MAP_
        +
        +TEST(PrintStlContainerTest, OneElementHashMap) {
        +  hash_map<int, char> map1;
        +  map1[1] = 'a';
        +  EXPECT_EQ("{ (1, 'a' (97, 0x61)) }", Print(map1));
        +}
        +
        +TEST(PrintStlContainerTest, HashMultiMap) {
        +  hash_multimap<int, bool> map1;
        +  map1.insert(make_pair(5, true));
        +  map1.insert(make_pair(5, false));
        +
        +  // Elements of hash_multimap can be printed in any order.
        +  const string result = Print(map1);
        +  EXPECT_TRUE(result == "{ (5, true), (5, false) }" ||
        +              result == "{ (5, false), (5, true) }")
        +                  << " where Print(map1) returns \"" << result << "\".";
        +}
        +
        +#endif  // GTEST_HAS_HASH_MAP_
        +
        +#if GTEST_HAS_HASH_SET_
        +
        +TEST(PrintStlContainerTest, HashSet) {
        +  hash_set<string> set1;
        +  set1.insert("hello");
        +  EXPECT_EQ("{ \"hello\" }", Print(set1));
        +}
        +
        +TEST(PrintStlContainerTest, HashMultiSet) {
        +  const int kSize = 5;
        +  int a[kSize] = { 1, 1, 2, 5, 1 };
        +  hash_multiset<int> set1(a, a + kSize);
        +
        +  // Elements of hash_multiset can be printed in any order.
        +  const string result = Print(set1);
        +  const string expected_pattern = "{ d, d, d, d, d }";  // d means a digit.
        +
        +  // Verifies the result matches the expected pattern; also extracts
        +  // the numbers in the result.
        +  ASSERT_EQ(expected_pattern.length(), result.length());
        +  std::vector<int> numbers;
        +  for (size_t i = 0; i != result.length(); i++) {
        +    if (expected_pattern[i] == 'd') {
        +      ASSERT_NE(isdigit(static_cast<unsigned char>(result[i])), 0);
        +      numbers.push_back(result[i] - '0');
        +    } else {
        +      EXPECT_EQ(expected_pattern[i], result[i]) << " where result is "
        +                                                << result;
        +    }
        +  }
        +
        +  // Makes sure the result contains the right numbers.
        +  std::sort(numbers.begin(), numbers.end());
        +  std::sort(a, a + kSize);
        +  EXPECT_TRUE(std::equal(a, a + kSize, numbers.begin()));
        +}
        +
        +#endif  // GTEST_HAS_HASH_SET_
        +
        +TEST(PrintStlContainerTest, List) {
        +  const string a[] = {
        +    "hello",
        +    "world"
        +  };
        +  const list<string> strings(a, a + 2);
        +  EXPECT_EQ("{ \"hello\", \"world\" }", Print(strings));
        +}
        +
        +TEST(PrintStlContainerTest, Map) {
        +  map<int, bool> map1;
        +  map1[1] = true;
        +  map1[5] = false;
        +  map1[3] = true;
        +  EXPECT_EQ("{ (1, true), (3, true), (5, false) }", Print(map1));
        +}
        +
        +TEST(PrintStlContainerTest, MultiMap) {
        +  multimap<bool, int> map1;
        +  // The make_pair template function would deduce the type as
        +  // pair<bool, int> here, and since the key part in a multimap has to
        +  // be constant, without a templated ctor in the pair class (as in
        +  // libCstd on Solaris), make_pair call would fail to compile as no
        +  // implicit conversion is found.  Thus explicit typename is used
        +  // here instead.
        +  map1.insert(pair<const bool, int>(true, 0));
        +  map1.insert(pair<const bool, int>(true, 1));
        +  map1.insert(pair<const bool, int>(false, 2));
        +  EXPECT_EQ("{ (false, 2), (true, 0), (true, 1) }", Print(map1));
        +}
        +
        +TEST(PrintStlContainerTest, Set) {
        +  const unsigned int a[] = { 3, 0, 5 };
        +  set<unsigned int> set1(a, a + 3);
        +  EXPECT_EQ("{ 0, 3, 5 }", Print(set1));
        +}
        +
        +TEST(PrintStlContainerTest, MultiSet) {
        +  const int a[] = { 1, 1, 2, 5, 1 };
        +  multiset<int> set1(a, a + 5);
        +  EXPECT_EQ("{ 1, 1, 1, 2, 5 }", Print(set1));
        +}
        +
        +#if GTEST_HAS_STD_FORWARD_LIST_
        +// <slist> is available on Linux in the google3 mode, but not on
        +// Windows or Mac OS X.
        +
        +TEST(PrintStlContainerTest, SinglyLinkedList) {
        +  int a[] = { 9, 2, 8 };
        +  const std::forward_list<int> ints(a, a + 3);
        +  EXPECT_EQ("{ 9, 2, 8 }", Print(ints));
        +}
        +#endif  // GTEST_HAS_STD_FORWARD_LIST_
        +
        +TEST(PrintStlContainerTest, Pair) {
        +  pair<const bool, int> p(true, 5);
        +  EXPECT_EQ("(true, 5)", Print(p));
        +}
        +
        +TEST(PrintStlContainerTest, Vector) {
        +  vector<int> v;
        +  v.push_back(1);
        +  v.push_back(2);
        +  EXPECT_EQ("{ 1, 2 }", Print(v));
        +}
        +
        +TEST(PrintStlContainerTest, LongSequence) {
        +  const int a[100] = { 1, 2, 3 };
        +  const vector<int> v(a, a + 100);
        +  EXPECT_EQ("{ 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "
        +            "0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... }", Print(v));
        +}
        +
        +TEST(PrintStlContainerTest, NestedContainer) {
        +  const int a1[] = { 1, 2 };
        +  const int a2[] = { 3, 4, 5 };
        +  const list<int> l1(a1, a1 + 2);
        +  const list<int> l2(a2, a2 + 3);
        +
        +  vector<list<int> > v;
        +  v.push_back(l1);
        +  v.push_back(l2);
        +  EXPECT_EQ("{ { 1, 2 }, { 3, 4, 5 } }", Print(v));
        +}
        +
        +TEST(PrintStlContainerTest, OneDimensionalNativeArray) {
        +  const int a[3] = { 1, 2, 3 };
        +  NativeArray<int> b(a, 3, RelationToSourceReference());
        +  EXPECT_EQ("{ 1, 2, 3 }", Print(b));
        +}
        +
        +TEST(PrintStlContainerTest, TwoDimensionalNativeArray) {
        +  const int a[2][3] = { { 1, 2, 3 }, { 4, 5, 6 } };
        +  NativeArray<int[3]> b(a, 2, RelationToSourceReference());
        +  EXPECT_EQ("{ { 1, 2, 3 }, { 4, 5, 6 } }", Print(b));
        +}
        +
        +// Tests that a class named iterator isn't treated as a container.
        +
        +struct iterator {
        +  char x;
        +};
        +
        +TEST(PrintStlContainerTest, Iterator) {
        +  iterator it = {};
        +  EXPECT_EQ("1-byte object <00>", Print(it));
        +}
        +
        +// Tests that a class named const_iterator isn't treated as a container.
        +
        +struct const_iterator {
        +  char x;
        +};
        +
        +TEST(PrintStlContainerTest, ConstIterator) {
        +  const_iterator it = {};
        +  EXPECT_EQ("1-byte object <00>", Print(it));
        +}
        +
        +#if GTEST_HAS_TR1_TUPLE
        +// Tests printing ::std::tr1::tuples.
        +
        +// Tuples of various arities.
        +TEST(PrintTr1TupleTest, VariousSizes) {
        +  ::std::tr1::tuple<> t0;
        +  EXPECT_EQ("()", Print(t0));
        +
        +  ::std::tr1::tuple<int> t1(5);
        +  EXPECT_EQ("(5)", Print(t1));
        +
        +  ::std::tr1::tuple<char, bool> t2('a', true);
        +  EXPECT_EQ("('a' (97, 0x61), true)", Print(t2));
        +
        +  ::std::tr1::tuple<bool, int, int> t3(false, 2, 3);
        +  EXPECT_EQ("(false, 2, 3)", Print(t3));
        +
        +  ::std::tr1::tuple<bool, int, int, int> t4(false, 2, 3, 4);
        +  EXPECT_EQ("(false, 2, 3, 4)", Print(t4));
        +
        +  ::std::tr1::tuple<bool, int, int, int, bool> t5(false, 2, 3, 4, true);
        +  EXPECT_EQ("(false, 2, 3, 4, true)", Print(t5));
        +
        +  ::std::tr1::tuple<bool, int, int, int, bool, int> t6(false, 2, 3, 4, true, 6);
        +  EXPECT_EQ("(false, 2, 3, 4, true, 6)", Print(t6));
        +
        +  ::std::tr1::tuple<bool, int, int, int, bool, int, int> t7(
        +      false, 2, 3, 4, true, 6, 7);
        +  EXPECT_EQ("(false, 2, 3, 4, true, 6, 7)", Print(t7));
        +
        +  ::std::tr1::tuple<bool, int, int, int, bool, int, int, bool> t8(
        +      false, 2, 3, 4, true, 6, 7, true);
        +  EXPECT_EQ("(false, 2, 3, 4, true, 6, 7, true)", Print(t8));
        +
        +  ::std::tr1::tuple<bool, int, int, int, bool, int, int, bool, int> t9(
        +      false, 2, 3, 4, true, 6, 7, true, 9);
        +  EXPECT_EQ("(false, 2, 3, 4, true, 6, 7, true, 9)", Print(t9));
        +
        +  const char* const str = "8";
        +  // VC++ 2010's implementation of tuple of C++0x is deficient, requiring
        +  // an explicit type cast of NULL to be used.
        +  ::std::tr1::tuple<bool, char, short, testing::internal::Int32,  // NOLINT
        +      testing::internal::Int64, float, double, const char*, void*, string>
        +      t10(false, 'a', 3, 4, 5, 1.5F, -2.5, str,
        +          ImplicitCast_<void*>(NULL), "10");
        +  EXPECT_EQ("(false, 'a' (97, 0x61), 3, 4, 5, 1.5, -2.5, " + PrintPointer(str) +
        +            " pointing to \"8\", NULL, \"10\")",
        +            Print(t10));
        +}
        +
        +// Nested tuples.
        +TEST(PrintTr1TupleTest, NestedTuple) {
        +  ::std::tr1::tuple< ::std::tr1::tuple<int, bool>, char> nested(
        +      ::std::tr1::make_tuple(5, true), 'a');
        +  EXPECT_EQ("((5, true), 'a' (97, 0x61))", Print(nested));
        +}
        +
        +#endif  // GTEST_HAS_TR1_TUPLE
        +
        +#if GTEST_HAS_STD_TUPLE_
        +// Tests printing ::std::tuples.
        +
        +// Tuples of various arities.
        +TEST(PrintStdTupleTest, VariousSizes) {
        +  ::std::tuple<> t0;
        +  EXPECT_EQ("()", Print(t0));
        +
        +  ::std::tuple<int> t1(5);
        +  EXPECT_EQ("(5)", Print(t1));
        +
        +  ::std::tuple<char, bool> t2('a', true);
        +  EXPECT_EQ("('a' (97, 0x61), true)", Print(t2));
        +
        +  ::std::tuple<bool, int, int> t3(false, 2, 3);
        +  EXPECT_EQ("(false, 2, 3)", Print(t3));
        +
        +  ::std::tuple<bool, int, int, int> t4(false, 2, 3, 4);
        +  EXPECT_EQ("(false, 2, 3, 4)", Print(t4));
        +
        +  ::std::tuple<bool, int, int, int, bool> t5(false, 2, 3, 4, true);
        +  EXPECT_EQ("(false, 2, 3, 4, true)", Print(t5));
        +
        +  ::std::tuple<bool, int, int, int, bool, int> t6(false, 2, 3, 4, true, 6);
        +  EXPECT_EQ("(false, 2, 3, 4, true, 6)", Print(t6));
        +
        +  ::std::tuple<bool, int, int, int, bool, int, int> t7(
        +      false, 2, 3, 4, true, 6, 7);
        +  EXPECT_EQ("(false, 2, 3, 4, true, 6, 7)", Print(t7));
        +
        +  ::std::tuple<bool, int, int, int, bool, int, int, bool> t8(
        +      false, 2, 3, 4, true, 6, 7, true);
        +  EXPECT_EQ("(false, 2, 3, 4, true, 6, 7, true)", Print(t8));
        +
        +  ::std::tuple<bool, int, int, int, bool, int, int, bool, int> t9(
        +      false, 2, 3, 4, true, 6, 7, true, 9);
        +  EXPECT_EQ("(false, 2, 3, 4, true, 6, 7, true, 9)", Print(t9));
        +
        +  const char* const str = "8";
        +  // VC++ 2010's implementation of tuple of C++0x is deficient, requiring
        +  // an explicit type cast of NULL to be used.
        +  ::std::tuple<bool, char, short, testing::internal::Int32,  // NOLINT
        +      testing::internal::Int64, float, double, const char*, void*, string>
        +      t10(false, 'a', 3, 4, 5, 1.5F, -2.5, str,
        +          ImplicitCast_<void*>(NULL), "10");
        +  EXPECT_EQ("(false, 'a' (97, 0x61), 3, 4, 5, 1.5, -2.5, " + PrintPointer(str) +
        +            " pointing to \"8\", NULL, \"10\")",
        +            Print(t10));
        +}
        +
        +// Nested tuples.
        +TEST(PrintStdTupleTest, NestedTuple) {
        +  ::std::tuple< ::std::tuple<int, bool>, char> nested(
        +      ::std::make_tuple(5, true), 'a');
        +  EXPECT_EQ("((5, true), 'a' (97, 0x61))", Print(nested));
        +}
        +
        +#endif  // GTEST_LANG_CXX11
        +
        +// Tests printing user-defined unprintable types.
        +
        +// Unprintable types in the global namespace.
        +TEST(PrintUnprintableTypeTest, InGlobalNamespace) {
        +  EXPECT_EQ("1-byte object <00>",
        +            Print(UnprintableTemplateInGlobal<char>()));
        +}
        +
        +// Unprintable types in a user namespace.
        +TEST(PrintUnprintableTypeTest, InUserNamespace) {
        +  EXPECT_EQ("16-byte object <EF-12 00-00 34-AB 00-00 00-00 00-00 00-00 00-00>",
        +            Print(::foo::UnprintableInFoo()));
        +}
        +
        +// Unprintable types are that too big to be printed completely.
        +
        +struct Big {
        +  Big() { memset(array, 0, sizeof(array)); }
        +  char array[257];
        +};
        +
        +TEST(PrintUnpritableTypeTest, BigObject) {
        +  EXPECT_EQ("257-byte object <00-00 00-00 00-00 00-00 00-00 00-00 "
        +            "00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 "
        +            "00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 "
        +            "00-00 00-00 00-00 00-00 00-00 00-00 ... 00-00 00-00 00-00 "
        +            "00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 "
        +            "00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 "
        +            "00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00>",
        +            Print(Big()));
        +}
        +
        +// Tests printing user-defined streamable types.
        +
        +// Streamable types in the global namespace.
        +TEST(PrintStreamableTypeTest, InGlobalNamespace) {
        +  StreamableInGlobal x;
        +  EXPECT_EQ("StreamableInGlobal", Print(x));
        +  EXPECT_EQ("StreamableInGlobal*", Print(&x));
        +}
        +
        +// Printable template types in a user namespace.
        +TEST(PrintStreamableTypeTest, TemplateTypeInUserNamespace) {
        +  EXPECT_EQ("StreamableTemplateInFoo: 0",
        +            Print(::foo::StreamableTemplateInFoo<int>()));
        +}
        +
        +// Tests printing user-defined types that have a PrintTo() function.
        +TEST(PrintPrintableTypeTest, InUserNamespace) {
        +  EXPECT_EQ("PrintableViaPrintTo: 0",
        +            Print(::foo::PrintableViaPrintTo()));
        +}
        +
        +// Tests printing a pointer to a user-defined type that has a <<
        +// operator for its pointer.
        +TEST(PrintPrintableTypeTest, PointerInUserNamespace) {
        +  ::foo::PointerPrintable x;
        +  EXPECT_EQ("PointerPrintable*", Print(&x));
        +}
        +
        +// Tests printing user-defined class template that have a PrintTo() function.
        +TEST(PrintPrintableTypeTest, TemplateInUserNamespace) {
        +  EXPECT_EQ("PrintableViaPrintToTemplate: 5",
        +            Print(::foo::PrintableViaPrintToTemplate<int>(5)));
        +}
        +
        +// Tests that the universal printer prints both the address and the
        +// value of a reference.
        +TEST(PrintReferenceTest, PrintsAddressAndValue) {
        +  int n = 5;
        +  EXPECT_EQ("@" + PrintPointer(&n) + " 5", PrintByRef(n));
        +
        +  int a[2][3] = {
        +    { 0, 1, 2 },
        +    { 3, 4, 5 }
        +  };
        +  EXPECT_EQ("@" + PrintPointer(a) + " { { 0, 1, 2 }, { 3, 4, 5 } }",
        +            PrintByRef(a));
        +
        +  const ::foo::UnprintableInFoo x;
        +  EXPECT_EQ("@" + PrintPointer(&x) + " 16-byte object "
        +            "<EF-12 00-00 34-AB 00-00 00-00 00-00 00-00 00-00>",
        +            PrintByRef(x));
        +}
        +
        +// Tests that the universal printer prints a function pointer passed by
        +// reference.
        +TEST(PrintReferenceTest, HandlesFunctionPointer) {
        +  void (*fp)(int n) = &MyFunction;
        +  const string fp_pointer_string =
        +      PrintPointer(reinterpret_cast<const void*>(&fp));
        +  // We cannot directly cast &MyFunction to const void* because the
        +  // standard disallows casting between pointers to functions and
        +  // pointers to objects, and some compilers (e.g. GCC 3.4) enforce
        +  // this limitation.
        +  const string fp_string = PrintPointer(reinterpret_cast<const void*>(
        +      reinterpret_cast<internal::BiggestInt>(fp)));
        +  EXPECT_EQ("@" + fp_pointer_string + " " + fp_string,
        +            PrintByRef(fp));
        +}
        +
        +// Tests that the universal printer prints a member function pointer
        +// passed by reference.
        +TEST(PrintReferenceTest, HandlesMemberFunctionPointer) {
        +  int (Foo::*p)(char ch) = &Foo::MyMethod;
        +  EXPECT_TRUE(HasPrefix(
        +      PrintByRef(p),
        +      "@" + PrintPointer(reinterpret_cast<const void*>(&p)) + " " +
        +          Print(sizeof(p)) + "-byte object "));
        +
        +  char (Foo::*p2)(int n) = &Foo::MyVirtualMethod;
        +  EXPECT_TRUE(HasPrefix(
        +      PrintByRef(p2),
        +      "@" + PrintPointer(reinterpret_cast<const void*>(&p2)) + " " +
        +          Print(sizeof(p2)) + "-byte object "));
        +}
        +
        +// Tests that the universal printer prints a member variable pointer
        +// passed by reference.
        +TEST(PrintReferenceTest, HandlesMemberVariablePointer) {
        +  int (Foo::*p) = &Foo::value;  // NOLINT
        +  EXPECT_TRUE(HasPrefix(
        +      PrintByRef(p),
        +      "@" + PrintPointer(&p) + " " + Print(sizeof(p)) + "-byte object "));
        +}
        +
        +// Tests that FormatForComparisonFailureMessage(), which is used to print
        +// an operand in a comparison assertion (e.g. ASSERT_EQ) when the assertion
        +// fails, formats the operand in the desired way.
        +
        +// scalar
        +TEST(FormatForComparisonFailureMessageTest, WorksForScalar) {
        +  EXPECT_STREQ("123",
        +               FormatForComparisonFailureMessage(123, 124).c_str());
        +}
        +
        +// non-char pointer
        +TEST(FormatForComparisonFailureMessageTest, WorksForNonCharPointer) {
        +  int n = 0;
        +  EXPECT_EQ(PrintPointer(&n),
        +            FormatForComparisonFailureMessage(&n, &n).c_str());
        +}
        +
        +// non-char array
        +TEST(FormatForComparisonFailureMessageTest, FormatsNonCharArrayAsPointer) {
        +  // In expression 'array == x', 'array' is compared by pointer.
        +  // Therefore we want to print an array operand as a pointer.
        +  int n[] = { 1, 2, 3 };
        +  EXPECT_EQ(PrintPointer(n),
        +            FormatForComparisonFailureMessage(n, n).c_str());
        +}
        +
        +// Tests formatting a char pointer when it's compared with another pointer.
        +// In this case we want to print it as a raw pointer, as the comparision is by
        +// pointer.
        +
        +// char pointer vs pointer
        +TEST(FormatForComparisonFailureMessageTest, WorksForCharPointerVsPointer) {
        +  // In expression 'p == x', where 'p' and 'x' are (const or not) char
        +  // pointers, the operands are compared by pointer.  Therefore we
        +  // want to print 'p' as a pointer instead of a C string (we don't
        +  // even know if it's supposed to point to a valid C string).
        +
        +  // const char*
        +  const char* s = "hello";
        +  EXPECT_EQ(PrintPointer(s),
        +            FormatForComparisonFailureMessage(s, s).c_str());
        +
        +  // char*
        +  char ch = 'a';
        +  EXPECT_EQ(PrintPointer(&ch),
        +            FormatForComparisonFailureMessage(&ch, &ch).c_str());
        +}
        +
        +// wchar_t pointer vs pointer
        +TEST(FormatForComparisonFailureMessageTest, WorksForWCharPointerVsPointer) {
        +  // In expression 'p == x', where 'p' and 'x' are (const or not) char
        +  // pointers, the operands are compared by pointer.  Therefore we
        +  // want to print 'p' as a pointer instead of a wide C string (we don't
        +  // even know if it's supposed to point to a valid wide C string).
        +
        +  // const wchar_t*
        +  const wchar_t* s = L"hello";
        +  EXPECT_EQ(PrintPointer(s),
        +            FormatForComparisonFailureMessage(s, s).c_str());
        +
        +  // wchar_t*
        +  wchar_t ch = L'a';
        +  EXPECT_EQ(PrintPointer(&ch),
        +            FormatForComparisonFailureMessage(&ch, &ch).c_str());
        +}
        +
        +// Tests formatting a char pointer when it's compared to a string object.
        +// In this case we want to print the char pointer as a C string.
        +
        +#if GTEST_HAS_GLOBAL_STRING
        +// char pointer vs ::string
        +TEST(FormatForComparisonFailureMessageTest, WorksForCharPointerVsString) {
        +  const char* s = "hello \"world";
        +  EXPECT_STREQ("\"hello \\\"world\"",  // The string content should be escaped.
        +               FormatForComparisonFailureMessage(s, ::string()).c_str());
        +
        +  // char*
        +  char str[] = "hi\1";
        +  char* p = str;
        +  EXPECT_STREQ("\"hi\\x1\"",  // The string content should be escaped.
        +               FormatForComparisonFailureMessage(p, ::string()).c_str());
        +}
        +#endif
        +
        +// char pointer vs std::string
        +TEST(FormatForComparisonFailureMessageTest, WorksForCharPointerVsStdString) {
        +  const char* s = "hello \"world";
        +  EXPECT_STREQ("\"hello \\\"world\"",  // The string content should be escaped.
        +               FormatForComparisonFailureMessage(s, ::std::string()).c_str());
        +
        +  // char*
        +  char str[] = "hi\1";
        +  char* p = str;
        +  EXPECT_STREQ("\"hi\\x1\"",  // The string content should be escaped.
        +               FormatForComparisonFailureMessage(p, ::std::string()).c_str());
        +}
        +
        +#if GTEST_HAS_GLOBAL_WSTRING
        +// wchar_t pointer vs ::wstring
        +TEST(FormatForComparisonFailureMessageTest, WorksForWCharPointerVsWString) {
        +  const wchar_t* s = L"hi \"world";
        +  EXPECT_STREQ("L\"hi \\\"world\"",  // The string content should be escaped.
        +               FormatForComparisonFailureMessage(s, ::wstring()).c_str());
        +
        +  // wchar_t*
        +  wchar_t str[] = L"hi\1";
        +  wchar_t* p = str;
        +  EXPECT_STREQ("L\"hi\\x1\"",  // The string content should be escaped.
        +               FormatForComparisonFailureMessage(p, ::wstring()).c_str());
        +}
        +#endif
        +
        +#if GTEST_HAS_STD_WSTRING
        +// wchar_t pointer vs std::wstring
        +TEST(FormatForComparisonFailureMessageTest, WorksForWCharPointerVsStdWString) {
        +  const wchar_t* s = L"hi \"world";
        +  EXPECT_STREQ("L\"hi \\\"world\"",  // The string content should be escaped.
        +               FormatForComparisonFailureMessage(s, ::std::wstring()).c_str());
        +
        +  // wchar_t*
        +  wchar_t str[] = L"hi\1";
        +  wchar_t* p = str;
        +  EXPECT_STREQ("L\"hi\\x1\"",  // The string content should be escaped.
        +               FormatForComparisonFailureMessage(p, ::std::wstring()).c_str());
        +}
        +#endif
        +
        +// Tests formatting a char array when it's compared with a pointer or array.
        +// In this case we want to print the array as a row pointer, as the comparison
        +// is by pointer.
        +
        +// char array vs pointer
        +TEST(FormatForComparisonFailureMessageTest, WorksForCharArrayVsPointer) {
        +  char str[] = "hi \"world\"";
        +  char* p = NULL;
        +  EXPECT_EQ(PrintPointer(str),
        +            FormatForComparisonFailureMessage(str, p).c_str());
        +}
        +
        +// char array vs char array
        +TEST(FormatForComparisonFailureMessageTest, WorksForCharArrayVsCharArray) {
        +  const char str[] = "hi \"world\"";
        +  EXPECT_EQ(PrintPointer(str),
        +            FormatForComparisonFailureMessage(str, str).c_str());
        +}
        +
        +// wchar_t array vs pointer
        +TEST(FormatForComparisonFailureMessageTest, WorksForWCharArrayVsPointer) {
        +  wchar_t str[] = L"hi \"world\"";
        +  wchar_t* p = NULL;
        +  EXPECT_EQ(PrintPointer(str),
        +            FormatForComparisonFailureMessage(str, p).c_str());
        +}
        +
        +// wchar_t array vs wchar_t array
        +TEST(FormatForComparisonFailureMessageTest, WorksForWCharArrayVsWCharArray) {
        +  const wchar_t str[] = L"hi \"world\"";
        +  EXPECT_EQ(PrintPointer(str),
        +            FormatForComparisonFailureMessage(str, str).c_str());
        +}
        +
        +// Tests formatting a char array when it's compared with a string object.
        +// In this case we want to print the array as a C string.
        +
        +#if GTEST_HAS_GLOBAL_STRING
        +// char array vs string
        +TEST(FormatForComparisonFailureMessageTest, WorksForCharArrayVsString) {
        +  const char str[] = "hi \"w\0rld\"";
        +  EXPECT_STREQ("\"hi \\\"w\"",  // The content should be escaped.
        +                                // Embedded NUL terminates the string.
        +               FormatForComparisonFailureMessage(str, ::string()).c_str());
        +}
        +#endif
        +
        +// char array vs std::string
        +TEST(FormatForComparisonFailureMessageTest, WorksForCharArrayVsStdString) {
        +  const char str[] = "hi \"world\"";
        +  EXPECT_STREQ("\"hi \\\"world\\\"\"",  // The content should be escaped.
        +               FormatForComparisonFailureMessage(str, ::std::string()).c_str());
        +}
        +
        +#if GTEST_HAS_GLOBAL_WSTRING
        +// wchar_t array vs wstring
        +TEST(FormatForComparisonFailureMessageTest, WorksForWCharArrayVsWString) {
        +  const wchar_t str[] = L"hi \"world\"";
        +  EXPECT_STREQ("L\"hi \\\"world\\\"\"",  // The content should be escaped.
        +               FormatForComparisonFailureMessage(str, ::wstring()).c_str());
        +}
        +#endif
        +
        +#if GTEST_HAS_STD_WSTRING
        +// wchar_t array vs std::wstring
        +TEST(FormatForComparisonFailureMessageTest, WorksForWCharArrayVsStdWString) {
        +  const wchar_t str[] = L"hi \"w\0rld\"";
        +  EXPECT_STREQ(
        +      "L\"hi \\\"w\"",  // The content should be escaped.
        +                        // Embedded NUL terminates the string.
        +      FormatForComparisonFailureMessage(str, ::std::wstring()).c_str());
        +}
        +#endif
        +
        +// Useful for testing PrintToString().  We cannot use EXPECT_EQ()
        +// there as its implementation uses PrintToString().  The caller must
        +// ensure that 'value' has no side effect.
        +#define EXPECT_PRINT_TO_STRING_(value, expected_string)         \
        +  EXPECT_TRUE(PrintToString(value) == (expected_string))        \
        +      << " where " #value " prints as " << (PrintToString(value))
        +
        +TEST(PrintToStringTest, WorksForScalar) {
        +  EXPECT_PRINT_TO_STRING_(123, "123");
        +}
        +
        +TEST(PrintToStringTest, WorksForPointerToConstChar) {
        +  const char* p = "hello";
        +  EXPECT_PRINT_TO_STRING_(p, "\"hello\"");
        +}
        +
        +TEST(PrintToStringTest, WorksForPointerToNonConstChar) {
        +  char s[] = "hello";
        +  char* p = s;
        +  EXPECT_PRINT_TO_STRING_(p, "\"hello\"");
        +}
        +
        +TEST(PrintToStringTest, EscapesForPointerToConstChar) {
        +  const char* p = "hello\n";
        +  EXPECT_PRINT_TO_STRING_(p, "\"hello\\n\"");
        +}
        +
        +TEST(PrintToStringTest, EscapesForPointerToNonConstChar) {
        +  char s[] = "hello\1";
        +  char* p = s;
        +  EXPECT_PRINT_TO_STRING_(p, "\"hello\\x1\"");
        +}
        +
        +TEST(PrintToStringTest, WorksForArray) {
        +  int n[3] = { 1, 2, 3 };
        +  EXPECT_PRINT_TO_STRING_(n, "{ 1, 2, 3 }");
        +}
        +
        +TEST(PrintToStringTest, WorksForCharArray) {
        +  char s[] = "hello";
        +  EXPECT_PRINT_TO_STRING_(s, "\"hello\"");
        +}
        +
        +TEST(PrintToStringTest, WorksForCharArrayWithEmbeddedNul) {
        +  const char str_with_nul[] = "hello\0 world";
        +  EXPECT_PRINT_TO_STRING_(str_with_nul, "\"hello\\0 world\"");
        +
        +  char mutable_str_with_nul[] = "hello\0 world";
        +  EXPECT_PRINT_TO_STRING_(mutable_str_with_nul, "\"hello\\0 world\"");
        +}
        +
        +#undef EXPECT_PRINT_TO_STRING_
        +
        +TEST(UniversalTersePrintTest, WorksForNonReference) {
        +  ::std::stringstream ss;
        +  UniversalTersePrint(123, &ss);
        +  EXPECT_EQ("123", ss.str());
        +}
        +
        +TEST(UniversalTersePrintTest, WorksForReference) {
        +  const int& n = 123;
        +  ::std::stringstream ss;
        +  UniversalTersePrint(n, &ss);
        +  EXPECT_EQ("123", ss.str());
        +}
        +
        +TEST(UniversalTersePrintTest, WorksForCString) {
        +  const char* s1 = "abc";
        +  ::std::stringstream ss1;
        +  UniversalTersePrint(s1, &ss1);
        +  EXPECT_EQ("\"abc\"", ss1.str());
        +
        +  char* s2 = const_cast<char*>(s1);
        +  ::std::stringstream ss2;
        +  UniversalTersePrint(s2, &ss2);
        +  EXPECT_EQ("\"abc\"", ss2.str());
        +
        +  const char* s3 = NULL;
        +  ::std::stringstream ss3;
        +  UniversalTersePrint(s3, &ss3);
        +  EXPECT_EQ("NULL", ss3.str());
        +}
        +
        +TEST(UniversalPrintTest, WorksForNonReference) {
        +  ::std::stringstream ss;
        +  UniversalPrint(123, &ss);
        +  EXPECT_EQ("123", ss.str());
        +}
        +
        +TEST(UniversalPrintTest, WorksForReference) {
        +  const int& n = 123;
        +  ::std::stringstream ss;
        +  UniversalPrint(n, &ss);
        +  EXPECT_EQ("123", ss.str());
        +}
        +
        +TEST(UniversalPrintTest, WorksForCString) {
        +  const char* s1 = "abc";
        +  ::std::stringstream ss1;
        +  UniversalPrint(s1, &ss1);
        +  EXPECT_EQ(PrintPointer(s1) + " pointing to \"abc\"", string(ss1.str()));
        +
        +  char* s2 = const_cast<char*>(s1);
        +  ::std::stringstream ss2;
        +  UniversalPrint(s2, &ss2);
        +  EXPECT_EQ(PrintPointer(s2) + " pointing to \"abc\"", string(ss2.str()));
        +
        +  const char* s3 = NULL;
        +  ::std::stringstream ss3;
        +  UniversalPrint(s3, &ss3);
        +  EXPECT_EQ("NULL", ss3.str());
        +}
        +
        +TEST(UniversalPrintTest, WorksForCharArray) {
        +  const char str[] = "\"Line\0 1\"\nLine 2";
        +  ::std::stringstream ss1;
        +  UniversalPrint(str, &ss1);
        +  EXPECT_EQ("\"\\\"Line\\0 1\\\"\\nLine 2\"", ss1.str());
        +
        +  const char mutable_str[] = "\"Line\0 1\"\nLine 2";
        +  ::std::stringstream ss2;
        +  UniversalPrint(mutable_str, &ss2);
        +  EXPECT_EQ("\"\\\"Line\\0 1\\\"\\nLine 2\"", ss2.str());
        +}
        +
        +#if GTEST_HAS_TR1_TUPLE
        +
        +TEST(UniversalTersePrintTupleFieldsToStringsTestWithTr1, PrintsEmptyTuple) {
        +  Strings result = UniversalTersePrintTupleFieldsToStrings(
        +      ::std::tr1::make_tuple());
        +  EXPECT_EQ(0u, result.size());
        +}
        +
        +TEST(UniversalTersePrintTupleFieldsToStringsTestWithTr1, PrintsOneTuple) {
        +  Strings result = UniversalTersePrintTupleFieldsToStrings(
        +      ::std::tr1::make_tuple(1));
        +  ASSERT_EQ(1u, result.size());
        +  EXPECT_EQ("1", result[0]);
        +}
        +
        +TEST(UniversalTersePrintTupleFieldsToStringsTestWithTr1, PrintsTwoTuple) {
        +  Strings result = UniversalTersePrintTupleFieldsToStrings(
        +      ::std::tr1::make_tuple(1, 'a'));
        +  ASSERT_EQ(2u, result.size());
        +  EXPECT_EQ("1", result[0]);
        +  EXPECT_EQ("'a' (97, 0x61)", result[1]);
        +}
        +
        +TEST(UniversalTersePrintTupleFieldsToStringsTestWithTr1, PrintsTersely) {
        +  const int n = 1;
        +  Strings result = UniversalTersePrintTupleFieldsToStrings(
        +      ::std::tr1::tuple<const int&, const char*>(n, "a"));
        +  ASSERT_EQ(2u, result.size());
        +  EXPECT_EQ("1", result[0]);
        +  EXPECT_EQ("\"a\"", result[1]);
        +}
        +
        +#endif  // GTEST_HAS_TR1_TUPLE
        +
        +#if GTEST_HAS_STD_TUPLE_
        +
        +TEST(UniversalTersePrintTupleFieldsToStringsTestWithStd, PrintsEmptyTuple) {
        +  Strings result = UniversalTersePrintTupleFieldsToStrings(::std::make_tuple());
        +  EXPECT_EQ(0u, result.size());
        +}
        +
        +TEST(UniversalTersePrintTupleFieldsToStringsTestWithStd, PrintsOneTuple) {
        +  Strings result = UniversalTersePrintTupleFieldsToStrings(
        +      ::std::make_tuple(1));
        +  ASSERT_EQ(1u, result.size());
        +  EXPECT_EQ("1", result[0]);
        +}
        +
        +TEST(UniversalTersePrintTupleFieldsToStringsTestWithStd, PrintsTwoTuple) {
        +  Strings result = UniversalTersePrintTupleFieldsToStrings(
        +      ::std::make_tuple(1, 'a'));
        +  ASSERT_EQ(2u, result.size());
        +  EXPECT_EQ("1", result[0]);
        +  EXPECT_EQ("'a' (97, 0x61)", result[1]);
        +}
        +
        +TEST(UniversalTersePrintTupleFieldsToStringsTestWithStd, PrintsTersely) {
        +  const int n = 1;
        +  Strings result = UniversalTersePrintTupleFieldsToStrings(
        +      ::std::tuple<const int&, const char*>(n, "a"));
        +  ASSERT_EQ(2u, result.size());
        +  EXPECT_EQ("1", result[0]);
        +  EXPECT_EQ("\"a\"", result[1]);
        +}
        +
        +#endif  // GTEST_HAS_STD_TUPLE_
        +
        +}  // namespace gtest_printers_test
        +}  // namespace testing
        +
        diff --git a/lib/ann/fann/lib/googletest/test/gtest-test-part_test.cc b/lib/ann/fann/lib/googletest/test/gtest-test-part_test.cc
        new file mode 100644
        index 0000000..ca8ba93
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest-test-part_test.cc
        @@ -0,0 +1,208 @@
        +// Copyright 2008 Google Inc.
        +// All Rights Reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: mheule@google.com (Markus Heule)
        +//
        +
        +#include "gtest/gtest-test-part.h"
        +
        +#include "gtest/gtest.h"
        +
        +using testing::Message;
        +using testing::Test;
        +using testing::TestPartResult;
        +using testing::TestPartResultArray;
        +
        +namespace {
        +
        +// Tests the TestPartResult class.
        +
        +// The test fixture for testing TestPartResult.
        +class TestPartResultTest : public Test {
        + protected:
        +  TestPartResultTest()
        +      : r1_(TestPartResult::kSuccess, "foo/bar.cc", 10, "Success!"),
        +        r2_(TestPartResult::kNonFatalFailure, "foo/bar.cc", -1, "Failure!"),
        +        r3_(TestPartResult::kFatalFailure, NULL, -1, "Failure!") {}
        +
        +  TestPartResult r1_, r2_, r3_;
        +};
        +
        +
        +TEST_F(TestPartResultTest, ConstructorWorks) {
        +  Message message;
        +  message << "something is terribly wrong";
        +  message << static_cast<const char*>(testing::internal::kStackTraceMarker);
        +  message << "some unimportant stack trace";
        +
        +  const TestPartResult result(TestPartResult::kNonFatalFailure,
        +                              "some_file.cc",
        +                              42,
        +                              message.GetString().c_str());
        +
        +  EXPECT_EQ(TestPartResult::kNonFatalFailure, result.type());
        +  EXPECT_STREQ("some_file.cc", result.file_name());
        +  EXPECT_EQ(42, result.line_number());
        +  EXPECT_STREQ(message.GetString().c_str(), result.message());
        +  EXPECT_STREQ("something is terribly wrong", result.summary());
        +}
        +
        +TEST_F(TestPartResultTest, ResultAccessorsWork) {
        +  const TestPartResult success(TestPartResult::kSuccess,
        +                               "file.cc",
        +                               42,
        +                               "message");
        +  EXPECT_TRUE(success.passed());
        +  EXPECT_FALSE(success.failed());
        +  EXPECT_FALSE(success.nonfatally_failed());
        +  EXPECT_FALSE(success.fatally_failed());
        +
        +  const TestPartResult nonfatal_failure(TestPartResult::kNonFatalFailure,
        +                                        "file.cc",
        +                                        42,
        +                                        "message");
        +  EXPECT_FALSE(nonfatal_failure.passed());
        +  EXPECT_TRUE(nonfatal_failure.failed());
        +  EXPECT_TRUE(nonfatal_failure.nonfatally_failed());
        +  EXPECT_FALSE(nonfatal_failure.fatally_failed());
        +
        +  const TestPartResult fatal_failure(TestPartResult::kFatalFailure,
        +                                     "file.cc",
        +                                     42,
        +                                     "message");
        +  EXPECT_FALSE(fatal_failure.passed());
        +  EXPECT_TRUE(fatal_failure.failed());
        +  EXPECT_FALSE(fatal_failure.nonfatally_failed());
        +  EXPECT_TRUE(fatal_failure.fatally_failed());
        +}
        +
        +// Tests TestPartResult::type().
        +TEST_F(TestPartResultTest, type) {
        +  EXPECT_EQ(TestPartResult::kSuccess, r1_.type());
        +  EXPECT_EQ(TestPartResult::kNonFatalFailure, r2_.type());
        +  EXPECT_EQ(TestPartResult::kFatalFailure, r3_.type());
        +}
        +
        +// Tests TestPartResult::file_name().
        +TEST_F(TestPartResultTest, file_name) {
        +  EXPECT_STREQ("foo/bar.cc", r1_.file_name());
        +  EXPECT_STREQ(NULL, r3_.file_name());
        +}
        +
        +// Tests TestPartResult::line_number().
        +TEST_F(TestPartResultTest, line_number) {
        +  EXPECT_EQ(10, r1_.line_number());
        +  EXPECT_EQ(-1, r2_.line_number());
        +}
        +
        +// Tests TestPartResult::message().
        +TEST_F(TestPartResultTest, message) {
        +  EXPECT_STREQ("Success!", r1_.message());
        +}
        +
        +// Tests TestPartResult::passed().
        +TEST_F(TestPartResultTest, Passed) {
        +  EXPECT_TRUE(r1_.passed());
        +  EXPECT_FALSE(r2_.passed());
        +  EXPECT_FALSE(r3_.passed());
        +}
        +
        +// Tests TestPartResult::failed().
        +TEST_F(TestPartResultTest, Failed) {
        +  EXPECT_FALSE(r1_.failed());
        +  EXPECT_TRUE(r2_.failed());
        +  EXPECT_TRUE(r3_.failed());
        +}
        +
        +// Tests TestPartResult::fatally_failed().
        +TEST_F(TestPartResultTest, FatallyFailed) {
        +  EXPECT_FALSE(r1_.fatally_failed());
        +  EXPECT_FALSE(r2_.fatally_failed());
        +  EXPECT_TRUE(r3_.fatally_failed());
        +}
        +
        +// Tests TestPartResult::nonfatally_failed().
        +TEST_F(TestPartResultTest, NonfatallyFailed) {
        +  EXPECT_FALSE(r1_.nonfatally_failed());
        +  EXPECT_TRUE(r2_.nonfatally_failed());
        +  EXPECT_FALSE(r3_.nonfatally_failed());
        +}
        +
        +// Tests the TestPartResultArray class.
        +
        +class TestPartResultArrayTest : public Test {
        + protected:
        +  TestPartResultArrayTest()
        +      : r1_(TestPartResult::kNonFatalFailure, "foo/bar.cc", -1, "Failure 1"),
        +        r2_(TestPartResult::kFatalFailure, "foo/bar.cc", -1, "Failure 2") {}
        +
        +  const TestPartResult r1_, r2_;
        +};
        +
        +// Tests that TestPartResultArray initially has size 0.
        +TEST_F(TestPartResultArrayTest, InitialSizeIsZero) {
        +  TestPartResultArray results;
        +  EXPECT_EQ(0, results.size());
        +}
        +
        +// Tests that TestPartResultArray contains the given TestPartResult
        +// after one Append() operation.
        +TEST_F(TestPartResultArrayTest, ContainsGivenResultAfterAppend) {
        +  TestPartResultArray results;
        +  results.Append(r1_);
        +  EXPECT_EQ(1, results.size());
        +  EXPECT_STREQ("Failure 1", results.GetTestPartResult(0).message());
        +}
        +
        +// Tests that TestPartResultArray contains the given TestPartResults
        +// after two Append() operations.
        +TEST_F(TestPartResultArrayTest, ContainsGivenResultsAfterTwoAppends) {
        +  TestPartResultArray results;
        +  results.Append(r1_);
        +  results.Append(r2_);
        +  EXPECT_EQ(2, results.size());
        +  EXPECT_STREQ("Failure 1", results.GetTestPartResult(0).message());
        +  EXPECT_STREQ("Failure 2", results.GetTestPartResult(1).message());
        +}
        +
        +typedef TestPartResultArrayTest TestPartResultArrayDeathTest;
        +
        +// Tests that the program dies when GetTestPartResult() is called with
        +// an invalid index.
        +TEST_F(TestPartResultArrayDeathTest, DiesWhenIndexIsOutOfBound) {
        +  TestPartResultArray results;
        +  results.Append(r1_);
        +
        +  EXPECT_DEATH_IF_SUPPORTED(results.GetTestPartResult(-1), "");
        +  EXPECT_DEATH_IF_SUPPORTED(results.GetTestPartResult(1), "");
        +}
        +
        +// TODO(mheule@google.com): Add a test for the class HasNewFatalFailureHelper.
        +
        +}  // namespace
        diff --git a/lib/ann/fann/lib/googletest/test/gtest-tuple_test.cc b/lib/ann/fann/lib/googletest/test/gtest-tuple_test.cc
        new file mode 100644
        index 0000000..bfaa3e0
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest-tuple_test.cc
        @@ -0,0 +1,320 @@
        +// Copyright 2007, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +#include "gtest/internal/gtest-tuple.h"
        +#include <utility>
        +#include "gtest/gtest.h"
        +
        +namespace {
        +
        +using ::std::tr1::get;
        +using ::std::tr1::make_tuple;
        +using ::std::tr1::tuple;
        +using ::std::tr1::tuple_element;
        +using ::std::tr1::tuple_size;
        +using ::testing::StaticAssertTypeEq;
        +
        +// Tests that tuple_element<K, tuple<T0, T1, ..., TN> >::type returns TK.
        +TEST(tuple_element_Test, ReturnsElementType) {
        +  StaticAssertTypeEq<int, tuple_element<0, tuple<int, char> >::type>();
        +  StaticAssertTypeEq<int&, tuple_element<1, tuple<double, int&> >::type>();
        +  StaticAssertTypeEq<bool, tuple_element<2, tuple<double, int, bool> >::type>();
        +}
        +
        +// Tests that tuple_size<T>::value gives the number of fields in tuple
        +// type T.
        +TEST(tuple_size_Test, ReturnsNumberOfFields) {
        +  EXPECT_EQ(0, +tuple_size<tuple<> >::value);
        +  EXPECT_EQ(1, +tuple_size<tuple<void*> >::value);
        +  EXPECT_EQ(1, +tuple_size<tuple<char> >::value);
        +  EXPECT_EQ(1, +(tuple_size<tuple<tuple<int, double> > >::value));
        +  EXPECT_EQ(2, +(tuple_size<tuple<int&, const char> >::value));
        +  EXPECT_EQ(3, +(tuple_size<tuple<char*, void, const bool&> >::value));
        +}
        +
        +// Tests comparing a tuple with itself.
        +TEST(ComparisonTest, ComparesWithSelf) {
        +  const tuple<int, char, bool> a(5, 'a', false);
        +
        +  EXPECT_TRUE(a == a);
        +  EXPECT_FALSE(a != a);
        +}
        +
        +// Tests comparing two tuples with the same value.
        +TEST(ComparisonTest, ComparesEqualTuples) {
        +  const tuple<int, bool> a(5, true), b(5, true);
        +
        +  EXPECT_TRUE(a == b);
        +  EXPECT_FALSE(a != b);
        +}
        +
        +// Tests comparing two different tuples that have no reference fields.
        +TEST(ComparisonTest, ComparesUnequalTuplesWithoutReferenceFields) {
        +  typedef tuple<const int, char> FooTuple;
        +
        +  const FooTuple a(0, 'x');
        +  const FooTuple b(1, 'a');
        +
        +  EXPECT_TRUE(a != b);
        +  EXPECT_FALSE(a == b);
        +
        +  const FooTuple c(1, 'b');
        +
        +  EXPECT_TRUE(b != c);
        +  EXPECT_FALSE(b == c);
        +}
        +
        +// Tests comparing two different tuples that have reference fields.
        +TEST(ComparisonTest, ComparesUnequalTuplesWithReferenceFields) {
        +  typedef tuple<int&, const char&> FooTuple;
        +
        +  int i = 5;
        +  const char ch = 'a';
        +  const FooTuple a(i, ch);
        +
        +  int j = 6;
        +  const FooTuple b(j, ch);
        +
        +  EXPECT_TRUE(a != b);
        +  EXPECT_FALSE(a == b);
        +
        +  j = 5;
        +  const char ch2 = 'b';
        +  const FooTuple c(j, ch2);
        +
        +  EXPECT_TRUE(b != c);
        +  EXPECT_FALSE(b == c);
        +}
        +
        +// Tests that a tuple field with a reference type is an alias of the
        +// variable it's supposed to reference.
        +TEST(ReferenceFieldTest, IsAliasOfReferencedVariable) {
        +  int n = 0;
        +  tuple<bool, int&> t(true, n);
        +
        +  n = 1;
        +  EXPECT_EQ(n, get<1>(t))
        +      << "Changing a underlying variable should update the reference field.";
        +
        +  // Makes sure that the implementation doesn't do anything funny with
        +  // the & operator for the return type of get<>().
        +  EXPECT_EQ(&n, &(get<1>(t)))
        +      << "The address of a reference field should equal the address of "
        +      << "the underlying variable.";
        +
        +  get<1>(t) = 2;
        +  EXPECT_EQ(2, n)
        +      << "Changing a reference field should update the underlying variable.";
        +}
        +
        +// Tests that tuple's default constructor default initializes each field.
        +// This test needs to compile without generating warnings.
        +TEST(TupleConstructorTest, DefaultConstructorDefaultInitializesEachField) {
        +  // The TR1 report requires that tuple's default constructor default
        +  // initializes each field, even if it's a primitive type.  If the
        +  // implementation forgets to do this, this test will catch it by
        +  // generating warnings about using uninitialized variables (assuming
        +  // a decent compiler).
        +
        +  tuple<> empty;
        +
        +  tuple<int> a1, b1;
        +  b1 = a1;
        +  EXPECT_EQ(0, get<0>(b1));
        +
        +  tuple<int, double> a2, b2;
        +  b2 = a2;
        +  EXPECT_EQ(0, get<0>(b2));
        +  EXPECT_EQ(0.0, get<1>(b2));
        +
        +  tuple<double, char, bool*> a3, b3;
        +  b3 = a3;
        +  EXPECT_EQ(0.0, get<0>(b3));
        +  EXPECT_EQ('\0', get<1>(b3));
        +  EXPECT_TRUE(get<2>(b3) == NULL);
        +
        +  tuple<int, int, int, int, int, int, int, int, int, int> a10, b10;
        +  b10 = a10;
        +  EXPECT_EQ(0, get<0>(b10));
        +  EXPECT_EQ(0, get<1>(b10));
        +  EXPECT_EQ(0, get<2>(b10));
        +  EXPECT_EQ(0, get<3>(b10));
        +  EXPECT_EQ(0, get<4>(b10));
        +  EXPECT_EQ(0, get<5>(b10));
        +  EXPECT_EQ(0, get<6>(b10));
        +  EXPECT_EQ(0, get<7>(b10));
        +  EXPECT_EQ(0, get<8>(b10));
        +  EXPECT_EQ(0, get<9>(b10));
        +}
        +
        +// Tests constructing a tuple from its fields.
        +TEST(TupleConstructorTest, ConstructsFromFields) {
        +  int n = 1;
        +  // Reference field.
        +  tuple<int&> a(n);
        +  EXPECT_EQ(&n, &(get<0>(a)));
        +
        +  // Non-reference fields.
        +  tuple<int, char> b(5, 'a');
        +  EXPECT_EQ(5, get<0>(b));
        +  EXPECT_EQ('a', get<1>(b));
        +
        +  // Const reference field.
        +  const int m = 2;
        +  tuple<bool, const int&> c(true, m);
        +  EXPECT_TRUE(get<0>(c));
        +  EXPECT_EQ(&m, &(get<1>(c)));
        +}
        +
        +// Tests tuple's copy constructor.
        +TEST(TupleConstructorTest, CopyConstructor) {
        +  tuple<double, bool> a(0.0, true);
        +  tuple<double, bool> b(a);
        +
        +  EXPECT_DOUBLE_EQ(0.0, get<0>(b));
        +  EXPECT_TRUE(get<1>(b));
        +}
        +
        +// Tests constructing a tuple from another tuple that has a compatible
        +// but different type.
        +TEST(TupleConstructorTest, ConstructsFromDifferentTupleType) {
        +  tuple<int, int, char> a(0, 1, 'a');
        +  tuple<double, long, int> b(a);
        +
        +  EXPECT_DOUBLE_EQ(0.0, get<0>(b));
        +  EXPECT_EQ(1, get<1>(b));
        +  EXPECT_EQ('a', get<2>(b));
        +}
        +
        +// Tests constructing a 2-tuple from an std::pair.
        +TEST(TupleConstructorTest, ConstructsFromPair) {
        +  ::std::pair<int, char> a(1, 'a');
        +  tuple<int, char> b(a);
        +  tuple<int, const char&> c(a);
        +}
        +
        +// Tests assigning a tuple to another tuple with the same type.
        +TEST(TupleAssignmentTest, AssignsToSameTupleType) {
        +  const tuple<int, long> a(5, 7L);
        +  tuple<int, long> b;
        +  b = a;
        +  EXPECT_EQ(5, get<0>(b));
        +  EXPECT_EQ(7L, get<1>(b));
        +}
        +
        +// Tests assigning a tuple to another tuple with a different but
        +// compatible type.
        +TEST(TupleAssignmentTest, AssignsToDifferentTupleType) {
        +  const tuple<int, long, bool> a(1, 7L, true);
        +  tuple<long, int, bool> b;
        +  b = a;
        +  EXPECT_EQ(1L, get<0>(b));
        +  EXPECT_EQ(7, get<1>(b));
        +  EXPECT_TRUE(get<2>(b));
        +}
        +
        +// Tests assigning an std::pair to a 2-tuple.
        +TEST(TupleAssignmentTest, AssignsFromPair) {
        +  const ::std::pair<int, bool> a(5, true);
        +  tuple<int, bool> b;
        +  b = a;
        +  EXPECT_EQ(5, get<0>(b));
        +  EXPECT_TRUE(get<1>(b));
        +
        +  tuple<long, bool> c;
        +  c = a;
        +  EXPECT_EQ(5L, get<0>(c));
        +  EXPECT_TRUE(get<1>(c));
        +}
        +
        +// A fixture for testing big tuples.
        +class BigTupleTest : public testing::Test {
        + protected:
        +  typedef tuple<int, int, int, int, int, int, int, int, int, int> BigTuple;
        +
        +  BigTupleTest() :
        +      a_(1, 0, 0, 0, 0, 0, 0, 0, 0, 2),
        +      b_(1, 0, 0, 0, 0, 0, 0, 0, 0, 3) {}
        +
        +  BigTuple a_, b_;
        +};
        +
        +// Tests constructing big tuples.
        +TEST_F(BigTupleTest, Construction) {
        +  BigTuple a;
        +  BigTuple b(b_);
        +}
        +
        +// Tests that get<N>(t) returns the N-th (0-based) field of tuple t.
        +TEST_F(BigTupleTest, get) {
        +  EXPECT_EQ(1, get<0>(a_));
        +  EXPECT_EQ(2, get<9>(a_));
        +
        +  // Tests that get() works on a const tuple too.
        +  const BigTuple a(a_);
        +  EXPECT_EQ(1, get<0>(a));
        +  EXPECT_EQ(2, get<9>(a));
        +}
        +
        +// Tests comparing big tuples.
        +TEST_F(BigTupleTest, Comparisons) {
        +  EXPECT_TRUE(a_ == a_);
        +  EXPECT_FALSE(a_ != a_);
        +
        +  EXPECT_TRUE(a_ != b_);
        +  EXPECT_FALSE(a_ == b_);
        +}
        +
        +TEST(MakeTupleTest, WorksForScalarTypes) {
        +  tuple<bool, int> a;
        +  a = make_tuple(true, 5);
        +  EXPECT_TRUE(get<0>(a));
        +  EXPECT_EQ(5, get<1>(a));
        +
        +  tuple<char, int, long> b;
        +  b = make_tuple('a', 'b', 5);
        +  EXPECT_EQ('a', get<0>(b));
        +  EXPECT_EQ('b', get<1>(b));
        +  EXPECT_EQ(5, get<2>(b));
        +}
        +
        +TEST(MakeTupleTest, WorksForPointers) {
        +  int a[] = { 1, 2, 3, 4 };
        +  const char* const str = "hi";
        +  int* const p = a;
        +
        +  tuple<const char*, int*> t;
        +  t = make_tuple(str, p);
        +  EXPECT_EQ(str, get<0>(t));
        +  EXPECT_EQ(p, get<1>(t));
        +}
        +
        +}  // namespace
        diff --git a/lib/ann/fann/lib/googletest/test/gtest-typed-test2_test.cc b/lib/ann/fann/lib/googletest/test/gtest-typed-test2_test.cc
        new file mode 100644
        index 0000000..c284700
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest-typed-test2_test.cc
        @@ -0,0 +1,45 @@
        +// Copyright 2008 Google Inc.
        +// All Rights Reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +#include <vector>
        +
        +#include "test/gtest-typed-test_test.h"
        +#include "gtest/gtest.h"
        +
        +#if GTEST_HAS_TYPED_TEST_P
        +
        +// Tests that the same type-parameterized test case can be
        +// instantiated in different translation units linked together.
        +// (ContainerTest is also instantiated in gtest-typed-test_test.cc.)
        +INSTANTIATE_TYPED_TEST_CASE_P(Vector, ContainerTest,
        +                              testing::Types<std::vector<int> >);
        +
        +#endif  // GTEST_HAS_TYPED_TEST_P
        diff --git a/lib/ann/fann/lib/googletest/test/gtest-typed-test_test.cc b/lib/ann/fann/lib/googletest/test/gtest-typed-test_test.cc
        new file mode 100644
        index 0000000..93628ba
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest-typed-test_test.cc
        @@ -0,0 +1,380 @@
        +// Copyright 2008 Google Inc.
        +// All Rights Reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +#include "test/gtest-typed-test_test.h"
        +
        +#include <set>
        +#include <vector>
        +
        +#include "gtest/gtest.h"
        +
        +using testing::Test;
        +
        +// Used for testing that SetUpTestCase()/TearDownTestCase(), fixture
        +// ctor/dtor, and SetUp()/TearDown() work correctly in typed tests and
        +// type-parameterized test.
        +template <typename T>
        +class CommonTest : public Test {
        +  // For some technical reason, SetUpTestCase() and TearDownTestCase()
        +  // must be public.
        + public:
        +  static void SetUpTestCase() {
        +    shared_ = new T(5);
        +  }
        +
        +  static void TearDownTestCase() {
        +    delete shared_;
        +    shared_ = NULL;
        +  }
        +
        +  // This 'protected:' is optional.  There's no harm in making all
        +  // members of this fixture class template public.
        + protected:
        +  // We used to use std::list here, but switched to std::vector since
        +  // MSVC's <list> doesn't compile cleanly with /W4.
        +  typedef std::vector<T> Vector;
        +  typedef std::set<int> IntSet;
        +
        +  CommonTest() : value_(1) {}
        +
        +  virtual ~CommonTest() { EXPECT_EQ(3, value_); }
        +
        +  virtual void SetUp() {
        +    EXPECT_EQ(1, value_);
        +    value_++;
        +  }
        +
        +  virtual void TearDown() {
        +    EXPECT_EQ(2, value_);
        +    value_++;
        +  }
        +
        +  T value_;
        +  static T* shared_;
        +};
        +
        +template <typename T>
        +T* CommonTest<T>::shared_ = NULL;
        +
        +// This #ifdef block tests typed tests.
        +#if GTEST_HAS_TYPED_TEST
        +
        +using testing::Types;
        +
        +// Tests that SetUpTestCase()/TearDownTestCase(), fixture ctor/dtor,
        +// and SetUp()/TearDown() work correctly in typed tests
        +
        +typedef Types<char, int> TwoTypes;
        +TYPED_TEST_CASE(CommonTest, TwoTypes);
        +
        +TYPED_TEST(CommonTest, ValuesAreCorrect) {
        +  // Static members of the fixture class template can be visited via
        +  // the TestFixture:: prefix.
        +  EXPECT_EQ(5, *TestFixture::shared_);
        +
        +  // Typedefs in the fixture class template can be visited via the
        +  // "typename TestFixture::" prefix.
        +  typename TestFixture::Vector empty;
        +  EXPECT_EQ(0U, empty.size());
        +
        +  typename TestFixture::IntSet empty2;
        +  EXPECT_EQ(0U, empty2.size());
        +
        +  // Non-static members of the fixture class must be visited via
        +  // 'this', as required by C++ for class templates.
        +  EXPECT_EQ(2, this->value_);
        +}
        +
        +// The second test makes sure shared_ is not deleted after the first
        +// test.
        +TYPED_TEST(CommonTest, ValuesAreStillCorrect) {
        +  // Static members of the fixture class template can also be visited
        +  // via 'this'.
        +  ASSERT_TRUE(this->shared_ != NULL);
        +  EXPECT_EQ(5, *this->shared_);
        +
        +  // TypeParam can be used to refer to the type parameter.
        +  EXPECT_EQ(static_cast<TypeParam>(2), this->value_);
        +}
        +
        +// Tests that multiple TYPED_TEST_CASE's can be defined in the same
        +// translation unit.
        +
        +template <typename T>
        +class TypedTest1 : public Test {
        +};
        +
        +// Verifies that the second argument of TYPED_TEST_CASE can be a
        +// single type.
        +TYPED_TEST_CASE(TypedTest1, int);
        +TYPED_TEST(TypedTest1, A) {}
        +
        +template <typename T>
        +class TypedTest2 : public Test {
        +};
        +
        +// Verifies that the second argument of TYPED_TEST_CASE can be a
        +// Types<...> type list.
        +TYPED_TEST_CASE(TypedTest2, Types<int>);
        +
        +// This also verifies that tests from different typed test cases can
        +// share the same name.
        +TYPED_TEST(TypedTest2, A) {}
        +
        +// Tests that a typed test case can be defined in a namespace.
        +
        +namespace library1 {
        +
        +template <typename T>
        +class NumericTest : public Test {
        +};
        +
        +typedef Types<int, long> NumericTypes;
        +TYPED_TEST_CASE(NumericTest, NumericTypes);
        +
        +TYPED_TEST(NumericTest, DefaultIsZero) {
        +  EXPECT_EQ(0, TypeParam());
        +}
        +
        +}  // namespace library1
        +
        +#endif  // GTEST_HAS_TYPED_TEST
        +
        +// This #ifdef block tests type-parameterized tests.
        +#if GTEST_HAS_TYPED_TEST_P
        +
        +using testing::Types;
        +using testing::internal::TypedTestCasePState;
        +
        +// Tests TypedTestCasePState.
        +
        +class TypedTestCasePStateTest : public Test {
        + protected:
        +  virtual void SetUp() {
        +    state_.AddTestName("foo.cc", 0, "FooTest", "A");
        +    state_.AddTestName("foo.cc", 0, "FooTest", "B");
        +    state_.AddTestName("foo.cc", 0, "FooTest", "C");
        +  }
        +
        +  TypedTestCasePState state_;
        +};
        +
        +TEST_F(TypedTestCasePStateTest, SucceedsForMatchingList) {
        +  const char* tests = "A, B, C";
        +  EXPECT_EQ(tests,
        +            state_.VerifyRegisteredTestNames("foo.cc", 1, tests));
        +}
        +
        +// Makes sure that the order of the tests and spaces around the names
        +// don't matter.
        +TEST_F(TypedTestCasePStateTest, IgnoresOrderAndSpaces) {
        +  const char* tests = "A,C,   B";
        +  EXPECT_EQ(tests,
        +            state_.VerifyRegisteredTestNames("foo.cc", 1, tests));
        +}
        +
        +typedef TypedTestCasePStateTest TypedTestCasePStateDeathTest;
        +
        +TEST_F(TypedTestCasePStateDeathTest, DetectsDuplicates) {
        +  EXPECT_DEATH_IF_SUPPORTED(
        +      state_.VerifyRegisteredTestNames("foo.cc", 1, "A, B, A, C"),
        +      "foo\\.cc.1.?: Test A is listed more than once\\.");
        +}
        +
        +TEST_F(TypedTestCasePStateDeathTest, DetectsExtraTest) {
        +  EXPECT_DEATH_IF_SUPPORTED(
        +      state_.VerifyRegisteredTestNames("foo.cc", 1, "A, B, C, D"),
        +      "foo\\.cc.1.?: No test named D can be found in this test case\\.");
        +}
        +
        +TEST_F(TypedTestCasePStateDeathTest, DetectsMissedTest) {
        +  EXPECT_DEATH_IF_SUPPORTED(
        +      state_.VerifyRegisteredTestNames("foo.cc", 1, "A, C"),
        +      "foo\\.cc.1.?: You forgot to list test B\\.");
        +}
        +
        +// Tests that defining a test for a parameterized test case generates
        +// a run-time error if the test case has been registered.
        +TEST_F(TypedTestCasePStateDeathTest, DetectsTestAfterRegistration) {
        +  state_.VerifyRegisteredTestNames("foo.cc", 1, "A, B, C");
        +  EXPECT_DEATH_IF_SUPPORTED(
        +      state_.AddTestName("foo.cc", 2, "FooTest", "D"),
        +      "foo\\.cc.2.?: Test D must be defined before REGISTER_TYPED_TEST_CASE_P"
        +      "\\(FooTest, \\.\\.\\.\\)\\.");
        +}
        +
        +// Tests that SetUpTestCase()/TearDownTestCase(), fixture ctor/dtor,
        +// and SetUp()/TearDown() work correctly in type-parameterized tests.
        +
        +template <typename T>
        +class DerivedTest : public CommonTest<T> {
        +};
        +
        +TYPED_TEST_CASE_P(DerivedTest);
        +
        +TYPED_TEST_P(DerivedTest, ValuesAreCorrect) {
        +  // Static members of the fixture class template can be visited via
        +  // the TestFixture:: prefix.
        +  EXPECT_EQ(5, *TestFixture::shared_);
        +
        +  // Non-static members of the fixture class must be visited via
        +  // 'this', as required by C++ for class templates.
        +  EXPECT_EQ(2, this->value_);
        +}
        +
        +// The second test makes sure shared_ is not deleted after the first
        +// test.
        +TYPED_TEST_P(DerivedTest, ValuesAreStillCorrect) {
        +  // Static members of the fixture class template can also be visited
        +  // via 'this'.
        +  ASSERT_TRUE(this->shared_ != NULL);
        +  EXPECT_EQ(5, *this->shared_);
        +  EXPECT_EQ(2, this->value_);
        +}
        +
        +REGISTER_TYPED_TEST_CASE_P(DerivedTest,
        +                           ValuesAreCorrect, ValuesAreStillCorrect);
        +
        +typedef Types<short, long> MyTwoTypes;
        +INSTANTIATE_TYPED_TEST_CASE_P(My, DerivedTest, MyTwoTypes);
        +
        +// Tests that multiple TYPED_TEST_CASE_P's can be defined in the same
        +// translation unit.
        +
        +template <typename T>
        +class TypedTestP1 : public Test {
        +};
        +
        +TYPED_TEST_CASE_P(TypedTestP1);
        +
        +// For testing that the code between TYPED_TEST_CASE_P() and
        +// TYPED_TEST_P() is not enclosed in a namespace.
        +typedef int IntAfterTypedTestCaseP;
        +
        +TYPED_TEST_P(TypedTestP1, A) {}
        +TYPED_TEST_P(TypedTestP1, B) {}
        +
        +// For testing that the code between TYPED_TEST_P() and
        +// REGISTER_TYPED_TEST_CASE_P() is not enclosed in a namespace.
        +typedef int IntBeforeRegisterTypedTestCaseP;
        +
        +REGISTER_TYPED_TEST_CASE_P(TypedTestP1, A, B);
        +
        +template <typename T>
        +class TypedTestP2 : public Test {
        +};
        +
        +TYPED_TEST_CASE_P(TypedTestP2);
        +
        +// This also verifies that tests from different type-parameterized
        +// test cases can share the same name.
        +TYPED_TEST_P(TypedTestP2, A) {}
        +
        +REGISTER_TYPED_TEST_CASE_P(TypedTestP2, A);
        +
        +// Verifies that the code between TYPED_TEST_CASE_P() and
        +// REGISTER_TYPED_TEST_CASE_P() is not enclosed in a namespace.
        +IntAfterTypedTestCaseP after = 0;
        +IntBeforeRegisterTypedTestCaseP before = 0;
        +
        +// Verifies that the last argument of INSTANTIATE_TYPED_TEST_CASE_P()
        +// can be either a single type or a Types<...> type list.
        +INSTANTIATE_TYPED_TEST_CASE_P(Int, TypedTestP1, int);
        +INSTANTIATE_TYPED_TEST_CASE_P(Int, TypedTestP2, Types<int>);
        +
        +// Tests that the same type-parameterized test case can be
        +// instantiated more than once in the same translation unit.
        +INSTANTIATE_TYPED_TEST_CASE_P(Double, TypedTestP2, Types<double>);
        +
        +// Tests that the same type-parameterized test case can be
        +// instantiated in different translation units linked together.
        +// (ContainerTest is also instantiated in gtest-typed-test_test.cc.)
        +typedef Types<std::vector<double>, std::set<char> > MyContainers;
        +INSTANTIATE_TYPED_TEST_CASE_P(My, ContainerTest, MyContainers);
        +
        +// Tests that a type-parameterized test case can be defined and
        +// instantiated in a namespace.
        +
        +namespace library2 {
        +
        +template <typename T>
        +class NumericTest : public Test {
        +};
        +
        +TYPED_TEST_CASE_P(NumericTest);
        +
        +TYPED_TEST_P(NumericTest, DefaultIsZero) {
        +  EXPECT_EQ(0, TypeParam());
        +}
        +
        +TYPED_TEST_P(NumericTest, ZeroIsLessThanOne) {
        +  EXPECT_LT(TypeParam(0), TypeParam(1));
        +}
        +
        +REGISTER_TYPED_TEST_CASE_P(NumericTest,
        +                           DefaultIsZero, ZeroIsLessThanOne);
        +typedef Types<int, double> NumericTypes;
        +INSTANTIATE_TYPED_TEST_CASE_P(My, NumericTest, NumericTypes);
        +
        +static const char* GetTestName() {
        +  return testing::UnitTest::GetInstance()->current_test_info()->name();
        +}
        +// Test the stripping of space from test names
        +template <typename T> class TrimmedTest : public Test { };
        +TYPED_TEST_CASE_P(TrimmedTest);
        +TYPED_TEST_P(TrimmedTest, Test1) { EXPECT_STREQ("Test1", GetTestName()); }
        +TYPED_TEST_P(TrimmedTest, Test2) { EXPECT_STREQ("Test2", GetTestName()); }
        +TYPED_TEST_P(TrimmedTest, Test3) { EXPECT_STREQ("Test3", GetTestName()); }
        +TYPED_TEST_P(TrimmedTest, Test4) { EXPECT_STREQ("Test4", GetTestName()); }
        +TYPED_TEST_P(TrimmedTest, Test5) { EXPECT_STREQ("Test5", GetTestName()); }
        +REGISTER_TYPED_TEST_CASE_P(
        +    TrimmedTest,
        +    Test1, Test2,Test3 , Test4 ,Test5 );  // NOLINT
        +template <typename T1, typename T2> struct MyPair {};
        +// Be sure to try a type with a comma in its name just in case it matters.
        +typedef Types<int, double, MyPair<int, int> > TrimTypes;
        +INSTANTIATE_TYPED_TEST_CASE_P(My, TrimmedTest, TrimTypes);
        +
        +}  // namespace library2
        +
        +#endif  // GTEST_HAS_TYPED_TEST_P
        +
        +#if !defined(GTEST_HAS_TYPED_TEST) && !defined(GTEST_HAS_TYPED_TEST_P)
        +
        +// Google Test may not support type-parameterized tests with some
        +// compilers. If we use conditional compilation to compile out all
        +// code referring to the gtest_main library, MSVC linker will not link
        +// that library at all and consequently complain about missing entry
        +// point defined in that library (fatal error LNK1561: entry point
        +// must be defined). This dummy test keeps gtest_main linked in.
        +TEST(DummyTest, TypedTestsAreNotSupportedOnThisPlatform) {}
        +
        +#endif  // #if !defined(GTEST_HAS_TYPED_TEST) && !defined(GTEST_HAS_TYPED_TEST_P)
        diff --git a/lib/ann/fann/lib/googletest/test/gtest-typed-test_test.h b/lib/ann/fann/lib/googletest/test/gtest-typed-test_test.h
        new file mode 100644
        index 0000000..41d7570
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest-typed-test_test.h
        @@ -0,0 +1,66 @@
        +// Copyright 2008 Google Inc.
        +// All Rights Reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +#ifndef GTEST_TEST_GTEST_TYPED_TEST_TEST_H_
        +#define GTEST_TEST_GTEST_TYPED_TEST_TEST_H_
        +
        +#include "gtest/gtest.h"
        +
        +#if GTEST_HAS_TYPED_TEST_P
        +
        +using testing::Test;
        +
        +// For testing that the same type-parameterized test case can be
        +// instantiated in different translation units linked together.
        +// ContainerTest will be instantiated in both gtest-typed-test_test.cc
        +// and gtest-typed-test2_test.cc.
        +
        +template <typename T>
        +class ContainerTest : public Test {
        +};
        +
        +TYPED_TEST_CASE_P(ContainerTest);
        +
        +TYPED_TEST_P(ContainerTest, CanBeDefaultConstructed) {
        +  TypeParam container;
        +}
        +
        +TYPED_TEST_P(ContainerTest, InitialSizeIsZero) {
        +  TypeParam container;
        +  EXPECT_EQ(0U, container.size());
        +}
        +
        +REGISTER_TYPED_TEST_CASE_P(ContainerTest,
        +                           CanBeDefaultConstructed, InitialSizeIsZero);
        +
        +#endif  // GTEST_HAS_TYPED_TEST_P
        +
        +#endif  // GTEST_TEST_GTEST_TYPED_TEST_TEST_H_
        diff --git a/lib/ann/fann/lib/googletest/test/gtest-unittest-api_test.cc b/lib/ann/fann/lib/googletest/test/gtest-unittest-api_test.cc
        new file mode 100644
        index 0000000..b1f5168
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest-unittest-api_test.cc
        @@ -0,0 +1,341 @@
        +// Copyright 2009 Google Inc.  All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: vladl@google.com (Vlad Losev)
        +//
        +// The Google C++ Testing Framework (Google Test)
        +//
        +// This file contains tests verifying correctness of data provided via
        +// UnitTest's public methods.
        +
        +#include "gtest/gtest.h"
        +
        +#include <string.h>  // For strcmp.
        +#include <algorithm>
        +
        +using ::testing::InitGoogleTest;
        +
        +namespace testing {
        +namespace internal {
        +
        +template <typename T>
        +struct LessByName {
        +  bool operator()(const T* a, const T* b) {
        +    return strcmp(a->name(), b->name()) < 0;
        +  }
        +};
        +
        +class UnitTestHelper {
        + public:
        +  // Returns the array of pointers to all test cases sorted by the test case
        +  // name.  The caller is responsible for deleting the array.
        +  static TestCase const** GetSortedTestCases() {
        +    UnitTest& unit_test = *UnitTest::GetInstance();
        +    TestCase const** const test_cases =
        +        new const TestCase*[unit_test.total_test_case_count()];
        +
        +    for (int i = 0; i < unit_test.total_test_case_count(); ++i)
        +      test_cases[i] = unit_test.GetTestCase(i);
        +
        +    std::sort(test_cases,
        +              test_cases + unit_test.total_test_case_count(),
        +              LessByName<TestCase>());
        +    return test_cases;
        +  }
        +
        +  // Returns the test case by its name.  The caller doesn't own the returned
        +  // pointer.
        +  static const TestCase* FindTestCase(const char* name) {
        +    UnitTest& unit_test = *UnitTest::GetInstance();
        +    for (int i = 0; i < unit_test.total_test_case_count(); ++i) {
        +      const TestCase* test_case = unit_test.GetTestCase(i);
        +      if (0 == strcmp(test_case->name(), name))
        +        return test_case;
        +    }
        +    return NULL;
        +  }
        +
        +  // Returns the array of pointers to all tests in a particular test case
        +  // sorted by the test name.  The caller is responsible for deleting the
        +  // array.
        +  static TestInfo const** GetSortedTests(const TestCase* test_case) {
        +    TestInfo const** const tests =
        +        new const TestInfo*[test_case->total_test_count()];
        +
        +    for (int i = 0; i < test_case->total_test_count(); ++i)
        +      tests[i] = test_case->GetTestInfo(i);
        +
        +    std::sort(tests, tests + test_case->total_test_count(),
        +              LessByName<TestInfo>());
        +    return tests;
        +  }
        +};
        +
        +#if GTEST_HAS_TYPED_TEST
        +template <typename T> class TestCaseWithCommentTest : public Test {};
        +TYPED_TEST_CASE(TestCaseWithCommentTest, Types<int>);
        +TYPED_TEST(TestCaseWithCommentTest, Dummy) {}
        +
        +const int kTypedTestCases = 1;
        +const int kTypedTests = 1;
        +#else
        +const int kTypedTestCases = 0;
        +const int kTypedTests = 0;
        +#endif  // GTEST_HAS_TYPED_TEST
        +
        +// We can only test the accessors that do not change value while tests run.
        +// Since tests can be run in any order, the values the accessors that track
        +// test execution (such as failed_test_count) can not be predicted.
        +TEST(ApiTest, UnitTestImmutableAccessorsWork) {
        +  UnitTest* unit_test = UnitTest::GetInstance();
        +
        +  ASSERT_EQ(2 + kTypedTestCases, unit_test->total_test_case_count());
        +  EXPECT_EQ(1 + kTypedTestCases, unit_test->test_case_to_run_count());
        +  EXPECT_EQ(2, unit_test->disabled_test_count());
        +  EXPECT_EQ(5 + kTypedTests, unit_test->total_test_count());
        +  EXPECT_EQ(3 + kTypedTests, unit_test->test_to_run_count());
        +
        +  const TestCase** const test_cases = UnitTestHelper::GetSortedTestCases();
        +
        +  EXPECT_STREQ("ApiTest", test_cases[0]->name());
        +  EXPECT_STREQ("DISABLED_Test", test_cases[1]->name());
        +#if GTEST_HAS_TYPED_TEST
        +  EXPECT_STREQ("TestCaseWithCommentTest/0", test_cases[2]->name());
        +#endif  // GTEST_HAS_TYPED_TEST
        +
        +  delete[] test_cases;
        +
        +  // The following lines initiate actions to verify certain methods in
        +  // FinalSuccessChecker::TearDown.
        +
        +  // Records a test property to verify TestResult::GetTestProperty().
        +  RecordProperty("key", "value");
        +}
        +
        +AssertionResult IsNull(const char* str) {
        +  if (str != NULL) {
        +    return testing::AssertionFailure() << "argument is " << str;
        +  }
        +  return AssertionSuccess();
        +}
        +
        +TEST(ApiTest, TestCaseImmutableAccessorsWork) {
        +  const TestCase* test_case = UnitTestHelper::FindTestCase("ApiTest");
        +  ASSERT_TRUE(test_case != NULL);
        +
        +  EXPECT_STREQ("ApiTest", test_case->name());
        +  EXPECT_TRUE(IsNull(test_case->type_param()));
        +  EXPECT_TRUE(test_case->should_run());
        +  EXPECT_EQ(1, test_case->disabled_test_count());
        +  EXPECT_EQ(3, test_case->test_to_run_count());
        +  ASSERT_EQ(4, test_case->total_test_count());
        +
        +  const TestInfo** tests = UnitTestHelper::GetSortedTests(test_case);
        +
        +  EXPECT_STREQ("DISABLED_Dummy1", tests[0]->name());
        +  EXPECT_STREQ("ApiTest", tests[0]->test_case_name());
        +  EXPECT_TRUE(IsNull(tests[0]->value_param()));
        +  EXPECT_TRUE(IsNull(tests[0]->type_param()));
        +  EXPECT_FALSE(tests[0]->should_run());
        +
        +  EXPECT_STREQ("TestCaseDisabledAccessorsWork", tests[1]->name());
        +  EXPECT_STREQ("ApiTest", tests[1]->test_case_name());
        +  EXPECT_TRUE(IsNull(tests[1]->value_param()));
        +  EXPECT_TRUE(IsNull(tests[1]->type_param()));
        +  EXPECT_TRUE(tests[1]->should_run());
        +
        +  EXPECT_STREQ("TestCaseImmutableAccessorsWork", tests[2]->name());
        +  EXPECT_STREQ("ApiTest", tests[2]->test_case_name());
        +  EXPECT_TRUE(IsNull(tests[2]->value_param()));
        +  EXPECT_TRUE(IsNull(tests[2]->type_param()));
        +  EXPECT_TRUE(tests[2]->should_run());
        +
        +  EXPECT_STREQ("UnitTestImmutableAccessorsWork", tests[3]->name());
        +  EXPECT_STREQ("ApiTest", tests[3]->test_case_name());
        +  EXPECT_TRUE(IsNull(tests[3]->value_param()));
        +  EXPECT_TRUE(IsNull(tests[3]->type_param()));
        +  EXPECT_TRUE(tests[3]->should_run());
        +
        +  delete[] tests;
        +  tests = NULL;
        +
        +#if GTEST_HAS_TYPED_TEST
        +  test_case = UnitTestHelper::FindTestCase("TestCaseWithCommentTest/0");
        +  ASSERT_TRUE(test_case != NULL);
        +
        +  EXPECT_STREQ("TestCaseWithCommentTest/0", test_case->name());
        +  EXPECT_STREQ(GetTypeName<int>().c_str(), test_case->type_param());
        +  EXPECT_TRUE(test_case->should_run());
        +  EXPECT_EQ(0, test_case->disabled_test_count());
        +  EXPECT_EQ(1, test_case->test_to_run_count());
        +  ASSERT_EQ(1, test_case->total_test_count());
        +
        +  tests = UnitTestHelper::GetSortedTests(test_case);
        +
        +  EXPECT_STREQ("Dummy", tests[0]->name());
        +  EXPECT_STREQ("TestCaseWithCommentTest/0", tests[0]->test_case_name());
        +  EXPECT_TRUE(IsNull(tests[0]->value_param()));
        +  EXPECT_STREQ(GetTypeName<int>().c_str(), tests[0]->type_param());
        +  EXPECT_TRUE(tests[0]->should_run());
        +
        +  delete[] tests;
        +#endif  // GTEST_HAS_TYPED_TEST
        +}
        +
        +TEST(ApiTest, TestCaseDisabledAccessorsWork) {
        +  const TestCase* test_case = UnitTestHelper::FindTestCase("DISABLED_Test");
        +  ASSERT_TRUE(test_case != NULL);
        +
        +  EXPECT_STREQ("DISABLED_Test", test_case->name());
        +  EXPECT_TRUE(IsNull(test_case->type_param()));
        +  EXPECT_FALSE(test_case->should_run());
        +  EXPECT_EQ(1, test_case->disabled_test_count());
        +  EXPECT_EQ(0, test_case->test_to_run_count());
        +  ASSERT_EQ(1, test_case->total_test_count());
        +
        +  const TestInfo* const test_info = test_case->GetTestInfo(0);
        +  EXPECT_STREQ("Dummy2", test_info->name());
        +  EXPECT_STREQ("DISABLED_Test", test_info->test_case_name());
        +  EXPECT_TRUE(IsNull(test_info->value_param()));
        +  EXPECT_TRUE(IsNull(test_info->type_param()));
        +  EXPECT_FALSE(test_info->should_run());
        +}
        +
        +// These two tests are here to provide support for testing
        +// test_case_to_run_count, disabled_test_count, and test_to_run_count.
        +TEST(ApiTest, DISABLED_Dummy1) {}
        +TEST(DISABLED_Test, Dummy2) {}
        +
        +class FinalSuccessChecker : public Environment {
        + protected:
        +  virtual void TearDown() {
        +    UnitTest* unit_test = UnitTest::GetInstance();
        +
        +    EXPECT_EQ(1 + kTypedTestCases, unit_test->successful_test_case_count());
        +    EXPECT_EQ(3 + kTypedTests, unit_test->successful_test_count());
        +    EXPECT_EQ(0, unit_test->failed_test_case_count());
        +    EXPECT_EQ(0, unit_test->failed_test_count());
        +    EXPECT_TRUE(unit_test->Passed());
        +    EXPECT_FALSE(unit_test->Failed());
        +    ASSERT_EQ(2 + kTypedTestCases, unit_test->total_test_case_count());
        +
        +    const TestCase** const test_cases = UnitTestHelper::GetSortedTestCases();
        +
        +    EXPECT_STREQ("ApiTest", test_cases[0]->name());
        +    EXPECT_TRUE(IsNull(test_cases[0]->type_param()));
        +    EXPECT_TRUE(test_cases[0]->should_run());
        +    EXPECT_EQ(1, test_cases[0]->disabled_test_count());
        +    ASSERT_EQ(4, test_cases[0]->total_test_count());
        +    EXPECT_EQ(3, test_cases[0]->successful_test_count());
        +    EXPECT_EQ(0, test_cases[0]->failed_test_count());
        +    EXPECT_TRUE(test_cases[0]->Passed());
        +    EXPECT_FALSE(test_cases[0]->Failed());
        +
        +    EXPECT_STREQ("DISABLED_Test", test_cases[1]->name());
        +    EXPECT_TRUE(IsNull(test_cases[1]->type_param()));
        +    EXPECT_FALSE(test_cases[1]->should_run());
        +    EXPECT_EQ(1, test_cases[1]->disabled_test_count());
        +    ASSERT_EQ(1, test_cases[1]->total_test_count());
        +    EXPECT_EQ(0, test_cases[1]->successful_test_count());
        +    EXPECT_EQ(0, test_cases[1]->failed_test_count());
        +
        +#if GTEST_HAS_TYPED_TEST
        +    EXPECT_STREQ("TestCaseWithCommentTest/0", test_cases[2]->name());
        +    EXPECT_STREQ(GetTypeName<int>().c_str(), test_cases[2]->type_param());
        +    EXPECT_TRUE(test_cases[2]->should_run());
        +    EXPECT_EQ(0, test_cases[2]->disabled_test_count());
        +    ASSERT_EQ(1, test_cases[2]->total_test_count());
        +    EXPECT_EQ(1, test_cases[2]->successful_test_count());
        +    EXPECT_EQ(0, test_cases[2]->failed_test_count());
        +    EXPECT_TRUE(test_cases[2]->Passed());
        +    EXPECT_FALSE(test_cases[2]->Failed());
        +#endif  // GTEST_HAS_TYPED_TEST
        +
        +    const TestCase* test_case = UnitTestHelper::FindTestCase("ApiTest");
        +    const TestInfo** tests = UnitTestHelper::GetSortedTests(test_case);
        +    EXPECT_STREQ("DISABLED_Dummy1", tests[0]->name());
        +    EXPECT_STREQ("ApiTest", tests[0]->test_case_name());
        +    EXPECT_FALSE(tests[0]->should_run());
        +
        +    EXPECT_STREQ("TestCaseDisabledAccessorsWork", tests[1]->name());
        +    EXPECT_STREQ("ApiTest", tests[1]->test_case_name());
        +    EXPECT_TRUE(IsNull(tests[1]->value_param()));
        +    EXPECT_TRUE(IsNull(tests[1]->type_param()));
        +    EXPECT_TRUE(tests[1]->should_run());
        +    EXPECT_TRUE(tests[1]->result()->Passed());
        +    EXPECT_EQ(0, tests[1]->result()->test_property_count());
        +
        +    EXPECT_STREQ("TestCaseImmutableAccessorsWork", tests[2]->name());
        +    EXPECT_STREQ("ApiTest", tests[2]->test_case_name());
        +    EXPECT_TRUE(IsNull(tests[2]->value_param()));
        +    EXPECT_TRUE(IsNull(tests[2]->type_param()));
        +    EXPECT_TRUE(tests[2]->should_run());
        +    EXPECT_TRUE(tests[2]->result()->Passed());
        +    EXPECT_EQ(0, tests[2]->result()->test_property_count());
        +
        +    EXPECT_STREQ("UnitTestImmutableAccessorsWork", tests[3]->name());
        +    EXPECT_STREQ("ApiTest", tests[3]->test_case_name());
        +    EXPECT_TRUE(IsNull(tests[3]->value_param()));
        +    EXPECT_TRUE(IsNull(tests[3]->type_param()));
        +    EXPECT_TRUE(tests[3]->should_run());
        +    EXPECT_TRUE(tests[3]->result()->Passed());
        +    EXPECT_EQ(1, tests[3]->result()->test_property_count());
        +    const TestProperty& property = tests[3]->result()->GetTestProperty(0);
        +    EXPECT_STREQ("key", property.key());
        +    EXPECT_STREQ("value", property.value());
        +
        +    delete[] tests;
        +
        +#if GTEST_HAS_TYPED_TEST
        +    test_case = UnitTestHelper::FindTestCase("TestCaseWithCommentTest/0");
        +    tests = UnitTestHelper::GetSortedTests(test_case);
        +
        +    EXPECT_STREQ("Dummy", tests[0]->name());
        +    EXPECT_STREQ("TestCaseWithCommentTest/0", tests[0]->test_case_name());
        +    EXPECT_TRUE(IsNull(tests[0]->value_param()));
        +    EXPECT_STREQ(GetTypeName<int>().c_str(), tests[0]->type_param());
        +    EXPECT_TRUE(tests[0]->should_run());
        +    EXPECT_TRUE(tests[0]->result()->Passed());
        +    EXPECT_EQ(0, tests[0]->result()->test_property_count());
        +
        +    delete[] tests;
        +#endif  // GTEST_HAS_TYPED_TEST
        +    delete[] test_cases;
        +  }
        +};
        +
        +}  // namespace internal
        +}  // namespace testing
        +
        +int main(int argc, char **argv) {
        +  InitGoogleTest(&argc, argv);
        +
        +  AddGlobalTestEnvironment(new testing::internal::FinalSuccessChecker());
        +
        +  return RUN_ALL_TESTS();
        +}
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_all_test.cc b/lib/ann/fann/lib/googletest/test/gtest_all_test.cc
        new file mode 100644
        index 0000000..955aa62
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_all_test.cc
        @@ -0,0 +1,47 @@
        +// Copyright 2009, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +//
        +// Tests for Google C++ Testing Framework (Google Test)
        +//
        +// Sometimes it's desirable to build most of Google Test's own tests
        +// by compiling a single file.  This file serves this purpose.
        +#include "test/gtest-filepath_test.cc"
        +#include "test/gtest-linked_ptr_test.cc"
        +#include "test/gtest-message_test.cc"
        +#include "test/gtest-options_test.cc"
        +#include "test/gtest-port_test.cc"
        +#include "test/gtest_pred_impl_unittest.cc"
        +#include "test/gtest_prod_test.cc"
        +#include "test/gtest-test-part_test.cc"
        +#include "test/gtest-typed-test_test.cc"
        +#include "test/gtest-typed-test2_test.cc"
        +#include "test/gtest_unittest.cc"
        +#include "test/production.cc"
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_break_on_failure_unittest.py b/lib/ann/fann/lib/googletest/test/gtest_break_on_failure_unittest.py
        new file mode 100755
        index 0000000..78f3e0f
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_break_on_failure_unittest.py
        @@ -0,0 +1,212 @@
        +#!/usr/bin/env python
        +#
        +# Copyright 2006, Google Inc.
        +# All rights reserved.
        +#
        +# Redistribution and use in source and binary forms, with or without
        +# modification, are permitted provided that the following conditions are
        +# met:
        +#
        +#     * Redistributions of source code must retain the above copyright
        +# notice, this list of conditions and the following disclaimer.
        +#     * Redistributions in binary form must reproduce the above
        +# copyright notice, this list of conditions and the following disclaimer
        +# in the documentation and/or other materials provided with the
        +# distribution.
        +#     * Neither the name of Google Inc. nor the names of its
        +# contributors may be used to endorse or promote products derived from
        +# this software without specific prior written permission.
        +#
        +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +"""Unit test for Google Test's break-on-failure mode.
        +
        +A user can ask Google Test to seg-fault when an assertion fails, using
        +either the GTEST_BREAK_ON_FAILURE environment variable or the
        +--gtest_break_on_failure flag.  This script tests such functionality
        +by invoking gtest_break_on_failure_unittest_ (a program written with
        +Google Test) with different environments and command line flags.
        +"""
        +
        +__author__ = 'wan@google.com (Zhanyong Wan)'
        +
        +import gtest_test_utils
        +import os
        +import sys
        +
        +
        +# Constants.
        +
        +IS_WINDOWS = os.name == 'nt'
        +
        +# The environment variable for enabling/disabling the break-on-failure mode.
        +BREAK_ON_FAILURE_ENV_VAR = 'GTEST_BREAK_ON_FAILURE'
        +
        +# The command line flag for enabling/disabling the break-on-failure mode.
        +BREAK_ON_FAILURE_FLAG = 'gtest_break_on_failure'
        +
        +# The environment variable for enabling/disabling the throw-on-failure mode.
        +THROW_ON_FAILURE_ENV_VAR = 'GTEST_THROW_ON_FAILURE'
        +
        +# The environment variable for enabling/disabling the catch-exceptions mode.
        +CATCH_EXCEPTIONS_ENV_VAR = 'GTEST_CATCH_EXCEPTIONS'
        +
        +# Path to the gtest_break_on_failure_unittest_ program.
        +EXE_PATH = gtest_test_utils.GetTestExecutablePath(
        +    'gtest_break_on_failure_unittest_')
        +
        +
        +environ = gtest_test_utils.environ
        +SetEnvVar = gtest_test_utils.SetEnvVar
        +
        +# Tests in this file run a Google-Test-based test program and expect it
        +# to terminate prematurely.  Therefore they are incompatible with
        +# the premature-exit-file protocol by design.  Unset the
        +# premature-exit filepath to prevent Google Test from creating
        +# the file.
        +SetEnvVar(gtest_test_utils.PREMATURE_EXIT_FILE_ENV_VAR, None)
        +
        +
        +def Run(command):
        +  """Runs a command; returns 1 if it was killed by a signal, or 0 otherwise."""
        +
        +  p = gtest_test_utils.Subprocess(command, env=environ)
        +  if p.terminated_by_signal:
        +    return 1
        +  else:
        +    return 0
        +
        +
        +# The tests.
        +
        +
        +class GTestBreakOnFailureUnitTest(gtest_test_utils.TestCase):
        +  """Tests using the GTEST_BREAK_ON_FAILURE environment variable or
        +  the --gtest_break_on_failure flag to turn assertion failures into
        +  segmentation faults.
        +  """
        +
        +  def RunAndVerify(self, env_var_value, flag_value, expect_seg_fault):
        +    """Runs gtest_break_on_failure_unittest_ and verifies that it does
        +    (or does not) have a seg-fault.
        +
        +    Args:
        +      env_var_value:    value of the GTEST_BREAK_ON_FAILURE environment
        +                        variable; None if the variable should be unset.
        +      flag_value:       value of the --gtest_break_on_failure flag;
        +                        None if the flag should not be present.
        +      expect_seg_fault: 1 if the program is expected to generate a seg-fault;
        +                        0 otherwise.
        +    """
        +
        +    SetEnvVar(BREAK_ON_FAILURE_ENV_VAR, env_var_value)
        +
        +    if env_var_value is None:
        +      env_var_value_msg = ' is not set'
        +    else:
        +      env_var_value_msg = '=' + env_var_value
        +
        +    if flag_value is None:
        +      flag = ''
        +    elif flag_value == '0':
        +      flag = '--%s=0' % BREAK_ON_FAILURE_FLAG
        +    else:
        +      flag = '--%s' % BREAK_ON_FAILURE_FLAG
        +
        +    command = [EXE_PATH]
        +    if flag:
        +      command.append(flag)
        +
        +    if expect_seg_fault:
        +      should_or_not = 'should'
        +    else:
        +      should_or_not = 'should not'
        +
        +    has_seg_fault = Run(command)
        +
        +    SetEnvVar(BREAK_ON_FAILURE_ENV_VAR, None)
        +
        +    msg = ('when %s%s, an assertion failure in "%s" %s cause a seg-fault.' %
        +           (BREAK_ON_FAILURE_ENV_VAR, env_var_value_msg, ' '.join(command),
        +            should_or_not))
        +    self.assert_(has_seg_fault == expect_seg_fault, msg)
        +
        +  def testDefaultBehavior(self):
        +    """Tests the behavior of the default mode."""
        +
        +    self.RunAndVerify(env_var_value=None,
        +                      flag_value=None,
        +                      expect_seg_fault=0)
        +
        +  def testEnvVar(self):
        +    """Tests using the GTEST_BREAK_ON_FAILURE environment variable."""
        +
        +    self.RunAndVerify(env_var_value='0',
        +                      flag_value=None,
        +                      expect_seg_fault=0)
        +    self.RunAndVerify(env_var_value='1',
        +                      flag_value=None,
        +                      expect_seg_fault=1)
        +
        +  def testFlag(self):
        +    """Tests using the --gtest_break_on_failure flag."""
        +
        +    self.RunAndVerify(env_var_value=None,
        +                      flag_value='0',
        +                      expect_seg_fault=0)
        +    self.RunAndVerify(env_var_value=None,
        +                      flag_value='1',
        +                      expect_seg_fault=1)
        +
        +  def testFlagOverridesEnvVar(self):
        +    """Tests that the flag overrides the environment variable."""
        +
        +    self.RunAndVerify(env_var_value='0',
        +                      flag_value='0',
        +                      expect_seg_fault=0)
        +    self.RunAndVerify(env_var_value='0',
        +                      flag_value='1',
        +                      expect_seg_fault=1)
        +    self.RunAndVerify(env_var_value='1',
        +                      flag_value='0',
        +                      expect_seg_fault=0)
        +    self.RunAndVerify(env_var_value='1',
        +                      flag_value='1',
        +                      expect_seg_fault=1)
        +
        +  def testBreakOnFailureOverridesThrowOnFailure(self):
        +    """Tests that gtest_break_on_failure overrides gtest_throw_on_failure."""
        +
        +    SetEnvVar(THROW_ON_FAILURE_ENV_VAR, '1')
        +    try:
        +      self.RunAndVerify(env_var_value=None,
        +                        flag_value='1',
        +                        expect_seg_fault=1)
        +    finally:
        +      SetEnvVar(THROW_ON_FAILURE_ENV_VAR, None)
        +
        +  if IS_WINDOWS:
        +    def testCatchExceptionsDoesNotInterfere(self):
        +      """Tests that gtest_catch_exceptions doesn't interfere."""
        +
        +      SetEnvVar(CATCH_EXCEPTIONS_ENV_VAR, '1')
        +      try:
        +        self.RunAndVerify(env_var_value='1',
        +                          flag_value='1',
        +                          expect_seg_fault=1)
        +      finally:
        +        SetEnvVar(CATCH_EXCEPTIONS_ENV_VAR, None)
        +
        +
        +if __name__ == '__main__':
        +  gtest_test_utils.Main()
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_break_on_failure_unittest_.cc b/lib/ann/fann/lib/googletest/test/gtest_break_on_failure_unittest_.cc
        new file mode 100644
        index 0000000..dd07478
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_break_on_failure_unittest_.cc
        @@ -0,0 +1,88 @@
        +// Copyright 2006, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +// Unit test for Google Test's break-on-failure mode.
        +//
        +// A user can ask Google Test to seg-fault when an assertion fails, using
        +// either the GTEST_BREAK_ON_FAILURE environment variable or the
        +// --gtest_break_on_failure flag.  This file is used for testing such
        +// functionality.
        +//
        +// This program will be invoked from a Python unit test.  It is
        +// expected to fail.  Don't run it directly.
        +
        +#include "gtest/gtest.h"
        +
        +#if GTEST_OS_WINDOWS
        +# include <windows.h>
        +# include <stdlib.h>
        +#endif
        +
        +namespace {
        +
        +// A test that's expected to fail.
        +TEST(Foo, Bar) {
        +  EXPECT_EQ(2, 3);
        +}
        +
        +#if GTEST_HAS_SEH && !GTEST_OS_WINDOWS_MOBILE
        +// On Windows Mobile global exception handlers are not supported.
        +LONG WINAPI ExitWithExceptionCode(
        +    struct _EXCEPTION_POINTERS* exception_pointers) {
        +  exit(exception_pointers->ExceptionRecord->ExceptionCode);
        +}
        +#endif
        +
        +}  // namespace
        +
        +int main(int argc, char **argv) {
        +#if GTEST_OS_WINDOWS
        +  // Suppresses display of the Windows error dialog upon encountering
        +  // a general protection fault (segment violation).
        +  SetErrorMode(SEM_NOGPFAULTERRORBOX | SEM_FAILCRITICALERRORS);
        +
        +# if GTEST_HAS_SEH && !GTEST_OS_WINDOWS_MOBILE
        +
        +  // The default unhandled exception filter does not always exit
        +  // with the exception code as exit code - for example it exits with
        +  // 0 for EXCEPTION_ACCESS_VIOLATION and 1 for EXCEPTION_BREAKPOINT
        +  // if the application is compiled in debug mode. Thus we use our own
        +  // filter which always exits with the exception code for unhandled
        +  // exceptions.
        +  SetUnhandledExceptionFilter(ExitWithExceptionCode);
        +
        +# endif
        +#endif
        +
        +  testing::InitGoogleTest(&argc, argv);
        +
        +  return RUN_ALL_TESTS();
        +}
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_catch_exceptions_test.py b/lib/ann/fann/lib/googletest/test/gtest_catch_exceptions_test.py
        new file mode 100755
        index 0000000..e6fc22f
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_catch_exceptions_test.py
        @@ -0,0 +1,237 @@
        +#!/usr/bin/env python
        +#
        +# Copyright 2010 Google Inc.  All Rights Reserved.
        +#
        +# Redistribution and use in source and binary forms, with or without
        +# modification, are permitted provided that the following conditions are
        +# met:
        +#
        +#     * Redistributions of source code must retain the above copyright
        +# notice, this list of conditions and the following disclaimer.
        +#     * Redistributions in binary form must reproduce the above
        +# copyright notice, this list of conditions and the following disclaimer
        +# in the documentation and/or other materials provided with the
        +# distribution.
        +#     * Neither the name of Google Inc. nor the names of its
        +# contributors may be used to endorse or promote products derived from
        +# this software without specific prior written permission.
        +#
        +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +"""Tests Google Test's exception catching behavior.
        +
        +This script invokes gtest_catch_exceptions_test_ and
        +gtest_catch_exceptions_ex_test_ (programs written with
        +Google Test) and verifies their output.
        +"""
        +
        +__author__ = 'vladl@google.com (Vlad Losev)'
        +
        +import os
        +
        +import gtest_test_utils
        +
        +# Constants.
        +FLAG_PREFIX = '--gtest_'
        +LIST_TESTS_FLAG = FLAG_PREFIX + 'list_tests'
        +NO_CATCH_EXCEPTIONS_FLAG = FLAG_PREFIX + 'catch_exceptions=0'
        +FILTER_FLAG = FLAG_PREFIX + 'filter'
        +
        +# Path to the gtest_catch_exceptions_ex_test_ binary, compiled with
        +# exceptions enabled.
        +EX_EXE_PATH = gtest_test_utils.GetTestExecutablePath(
        +    'gtest_catch_exceptions_ex_test_')
        +
        +# Path to the gtest_catch_exceptions_test_ binary, compiled with
        +# exceptions disabled.
        +EXE_PATH = gtest_test_utils.GetTestExecutablePath(
        +    'gtest_catch_exceptions_no_ex_test_')
        +
        +environ = gtest_test_utils.environ
        +SetEnvVar = gtest_test_utils.SetEnvVar
        +
        +# Tests in this file run a Google-Test-based test program and expect it
        +# to terminate prematurely.  Therefore they are incompatible with
        +# the premature-exit-file protocol by design.  Unset the
        +# premature-exit filepath to prevent Google Test from creating
        +# the file.
        +SetEnvVar(gtest_test_utils.PREMATURE_EXIT_FILE_ENV_VAR, None)
        +
        +TEST_LIST = gtest_test_utils.Subprocess(
        +    [EXE_PATH, LIST_TESTS_FLAG], env=environ).output
        +
        +SUPPORTS_SEH_EXCEPTIONS = 'ThrowsSehException' in TEST_LIST
        +
        +if SUPPORTS_SEH_EXCEPTIONS:
        +  BINARY_OUTPUT = gtest_test_utils.Subprocess([EXE_PATH], env=environ).output
        +
        +EX_BINARY_OUTPUT = gtest_test_utils.Subprocess(
        +    [EX_EXE_PATH], env=environ).output
        +
        +
        +# The tests.
        +if SUPPORTS_SEH_EXCEPTIONS:
        +  # pylint:disable-msg=C6302
        +  class CatchSehExceptionsTest(gtest_test_utils.TestCase):
        +    """Tests exception-catching behavior."""
        +
        +
        +    def TestSehExceptions(self, test_output):
        +      self.assert_('SEH exception with code 0x2a thrown '
        +                   'in the test fixture\'s constructor'
        +                   in test_output)
        +      self.assert_('SEH exception with code 0x2a thrown '
        +                   'in the test fixture\'s destructor'
        +                   in test_output)
        +      self.assert_('SEH exception with code 0x2a thrown in SetUpTestCase()'
        +                   in test_output)
        +      self.assert_('SEH exception with code 0x2a thrown in TearDownTestCase()'
        +                   in test_output)
        +      self.assert_('SEH exception with code 0x2a thrown in SetUp()'
        +                   in test_output)
        +      self.assert_('SEH exception with code 0x2a thrown in TearDown()'
        +                   in test_output)
        +      self.assert_('SEH exception with code 0x2a thrown in the test body'
        +                   in test_output)
        +
        +    def testCatchesSehExceptionsWithCxxExceptionsEnabled(self):
        +      self.TestSehExceptions(EX_BINARY_OUTPUT)
        +
        +    def testCatchesSehExceptionsWithCxxExceptionsDisabled(self):
        +      self.TestSehExceptions(BINARY_OUTPUT)
        +
        +
        +class CatchCxxExceptionsTest(gtest_test_utils.TestCase):
        +  """Tests C++ exception-catching behavior.
        +
        +     Tests in this test case verify that:
        +     * C++ exceptions are caught and logged as C++ (not SEH) exceptions
        +     * Exception thrown affect the remainder of the test work flow in the
        +       expected manner.
        +  """
        +
        +  def testCatchesCxxExceptionsInFixtureConstructor(self):
        +    self.assert_('C++ exception with description '
        +                 '"Standard C++ exception" thrown '
        +                 'in the test fixture\'s constructor'
        +                 in EX_BINARY_OUTPUT)
        +    self.assert_('unexpected' not in EX_BINARY_OUTPUT,
        +                 'This failure belongs in this test only if '
        +                 '"CxxExceptionInConstructorTest" (no quotes) '
        +                 'appears on the same line as words "called unexpectedly"')
        +
        +  if ('CxxExceptionInDestructorTest.ThrowsExceptionInDestructor' in
        +      EX_BINARY_OUTPUT):
        +
        +    def testCatchesCxxExceptionsInFixtureDestructor(self):
        +      self.assert_('C++ exception with description '
        +                   '"Standard C++ exception" thrown '
        +                   'in the test fixture\'s destructor'
        +                   in EX_BINARY_OUTPUT)
        +      self.assert_('CxxExceptionInDestructorTest::TearDownTestCase() '
        +                   'called as expected.'
        +                   in EX_BINARY_OUTPUT)
        +
        +  def testCatchesCxxExceptionsInSetUpTestCase(self):
        +    self.assert_('C++ exception with description "Standard C++ exception"'
        +                 ' thrown in SetUpTestCase()'
        +                 in EX_BINARY_OUTPUT)
        +    self.assert_('CxxExceptionInConstructorTest::TearDownTestCase() '
        +                 'called as expected.'
        +                 in EX_BINARY_OUTPUT)
        +    self.assert_('CxxExceptionInSetUpTestCaseTest constructor '
        +                 'called as expected.'
        +                 in EX_BINARY_OUTPUT)
        +    self.assert_('CxxExceptionInSetUpTestCaseTest destructor '
        +                 'called as expected.'
        +                 in EX_BINARY_OUTPUT)
        +    self.assert_('CxxExceptionInSetUpTestCaseTest::SetUp() '
        +                 'called as expected.'
        +                 in EX_BINARY_OUTPUT)
        +    self.assert_('CxxExceptionInSetUpTestCaseTest::TearDown() '
        +                 'called as expected.'
        +                 in EX_BINARY_OUTPUT)
        +    self.assert_('CxxExceptionInSetUpTestCaseTest test body '
        +                 'called as expected.'
        +                 in EX_BINARY_OUTPUT)
        +
        +  def testCatchesCxxExceptionsInTearDownTestCase(self):
        +    self.assert_('C++ exception with description "Standard C++ exception"'
        +                 ' thrown in TearDownTestCase()'
        +                 in EX_BINARY_OUTPUT)
        +
        +  def testCatchesCxxExceptionsInSetUp(self):
        +    self.assert_('C++ exception with description "Standard C++ exception"'
        +                 ' thrown in SetUp()'
        +                 in EX_BINARY_OUTPUT)
        +    self.assert_('CxxExceptionInSetUpTest::TearDownTestCase() '
        +                 'called as expected.'
        +                 in EX_BINARY_OUTPUT)
        +    self.assert_('CxxExceptionInSetUpTest destructor '
        +                 'called as expected.'
        +                 in EX_BINARY_OUTPUT)
        +    self.assert_('CxxExceptionInSetUpTest::TearDown() '
        +                 'called as expected.'
        +                 in EX_BINARY_OUTPUT)
        +    self.assert_('unexpected' not in EX_BINARY_OUTPUT,
        +                 'This failure belongs in this test only if '
        +                 '"CxxExceptionInSetUpTest" (no quotes) '
        +                 'appears on the same line as words "called unexpectedly"')
        +
        +  def testCatchesCxxExceptionsInTearDown(self):
        +    self.assert_('C++ exception with description "Standard C++ exception"'
        +                 ' thrown in TearDown()'
        +                 in EX_BINARY_OUTPUT)
        +    self.assert_('CxxExceptionInTearDownTest::TearDownTestCase() '
        +                 'called as expected.'
        +                 in EX_BINARY_OUTPUT)
        +    self.assert_('CxxExceptionInTearDownTest destructor '
        +                 'called as expected.'
        +                 in EX_BINARY_OUTPUT)
        +
        +  def testCatchesCxxExceptionsInTestBody(self):
        +    self.assert_('C++ exception with description "Standard C++ exception"'
        +                 ' thrown in the test body'
        +                 in EX_BINARY_OUTPUT)
        +    self.assert_('CxxExceptionInTestBodyTest::TearDownTestCase() '
        +                 'called as expected.'
        +                 in EX_BINARY_OUTPUT)
        +    self.assert_('CxxExceptionInTestBodyTest destructor '
        +                 'called as expected.'
        +                 in EX_BINARY_OUTPUT)
        +    self.assert_('CxxExceptionInTestBodyTest::TearDown() '
        +                 'called as expected.'
        +                 in EX_BINARY_OUTPUT)
        +
        +  def testCatchesNonStdCxxExceptions(self):
        +    self.assert_('Unknown C++ exception thrown in the test body'
        +                 in EX_BINARY_OUTPUT)
        +
        +  def testUnhandledCxxExceptionsAbortTheProgram(self):
        +    # Filters out SEH exception tests on Windows. Unhandled SEH exceptions
        +    # cause tests to show pop-up windows there.
        +    FITLER_OUT_SEH_TESTS_FLAG = FILTER_FLAG + '=-*Seh*'
        +    # By default, Google Test doesn't catch the exceptions.
        +    uncaught_exceptions_ex_binary_output = gtest_test_utils.Subprocess(
        +        [EX_EXE_PATH,
        +         NO_CATCH_EXCEPTIONS_FLAG,
        +         FITLER_OUT_SEH_TESTS_FLAG],
        +        env=environ).output
        +
        +    self.assert_('Unhandled C++ exception terminating the program'
        +                 in uncaught_exceptions_ex_binary_output)
        +    self.assert_('unexpected' not in uncaught_exceptions_ex_binary_output)
        +
        +
        +if __name__ == '__main__':
        +  gtest_test_utils.Main()
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_catch_exceptions_test_.cc b/lib/ann/fann/lib/googletest/test/gtest_catch_exceptions_test_.cc
        new file mode 100644
        index 0000000..d0fc82c
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_catch_exceptions_test_.cc
        @@ -0,0 +1,311 @@
        +// Copyright 2010, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: vladl@google.com (Vlad Losev)
        +//
        +// Tests for Google Test itself. Tests in this file throw C++ or SEH
        +// exceptions, and the output is verified by gtest_catch_exceptions_test.py.
        +
        +#include "gtest/gtest.h"
        +
        +#include <stdio.h>  // NOLINT
        +#include <stdlib.h>  // For exit().
        +
        +#if GTEST_HAS_SEH
        +# include <windows.h>
        +#endif
        +
        +#if GTEST_HAS_EXCEPTIONS
        +# include <exception>  // For set_terminate().
        +# include <stdexcept>
        +#endif
        +
        +using testing::Test;
        +
        +#if GTEST_HAS_SEH
        +
        +class SehExceptionInConstructorTest : public Test {
        + public:
        +  SehExceptionInConstructorTest() { RaiseException(42, 0, 0, NULL); }
        +};
        +
        +TEST_F(SehExceptionInConstructorTest, ThrowsExceptionInConstructor) {}
        +
        +class SehExceptionInDestructorTest : public Test {
        + public:
        +  ~SehExceptionInDestructorTest() { RaiseException(42, 0, 0, NULL); }
        +};
        +
        +TEST_F(SehExceptionInDestructorTest, ThrowsExceptionInDestructor) {}
        +
        +class SehExceptionInSetUpTestCaseTest : public Test {
        + public:
        +  static void SetUpTestCase() { RaiseException(42, 0, 0, NULL); }
        +};
        +
        +TEST_F(SehExceptionInSetUpTestCaseTest, ThrowsExceptionInSetUpTestCase) {}
        +
        +class SehExceptionInTearDownTestCaseTest : public Test {
        + public:
        +  static void TearDownTestCase() { RaiseException(42, 0, 0, NULL); }
        +};
        +
        +TEST_F(SehExceptionInTearDownTestCaseTest, ThrowsExceptionInTearDownTestCase) {}
        +
        +class SehExceptionInSetUpTest : public Test {
        + protected:
        +  virtual void SetUp() { RaiseException(42, 0, 0, NULL); }
        +};
        +
        +TEST_F(SehExceptionInSetUpTest, ThrowsExceptionInSetUp) {}
        +
        +class SehExceptionInTearDownTest : public Test {
        + protected:
        +  virtual void TearDown() { RaiseException(42, 0, 0, NULL); }
        +};
        +
        +TEST_F(SehExceptionInTearDownTest, ThrowsExceptionInTearDown) {}
        +
        +TEST(SehExceptionTest, ThrowsSehException) {
        +  RaiseException(42, 0, 0, NULL);
        +}
        +
        +#endif  // GTEST_HAS_SEH
        +
        +#if GTEST_HAS_EXCEPTIONS
        +
        +class CxxExceptionInConstructorTest : public Test {
        + public:
        +  CxxExceptionInConstructorTest() {
        +    // Without this macro VC++ complains about unreachable code at the end of
        +    // the constructor.
        +    GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(
        +        throw std::runtime_error("Standard C++ exception"));
        +  }
        +
        +  static void TearDownTestCase() {
        +    printf("%s",
        +           "CxxExceptionInConstructorTest::TearDownTestCase() "
        +           "called as expected.\n");
        +  }
        +
        + protected:
        +  ~CxxExceptionInConstructorTest() {
        +    ADD_FAILURE() << "CxxExceptionInConstructorTest destructor "
        +                  << "called unexpectedly.";
        +  }
        +
        +  virtual void SetUp() {
        +    ADD_FAILURE() << "CxxExceptionInConstructorTest::SetUp() "
        +                  << "called unexpectedly.";
        +  }
        +
        +  virtual void TearDown() {
        +    ADD_FAILURE() << "CxxExceptionInConstructorTest::TearDown() "
        +                  << "called unexpectedly.";
        +  }
        +};
        +
        +TEST_F(CxxExceptionInConstructorTest, ThrowsExceptionInConstructor) {
        +  ADD_FAILURE() << "CxxExceptionInConstructorTest test body "
        +                << "called unexpectedly.";
        +}
        +
        +// Exceptions in destructors are not supported in C++11.
        +#if !defined(__GXX_EXPERIMENTAL_CXX0X__) &&  __cplusplus < 201103L
        +class CxxExceptionInDestructorTest : public Test {
        + public:
        +  static void TearDownTestCase() {
        +    printf("%s",
        +           "CxxExceptionInDestructorTest::TearDownTestCase() "
        +           "called as expected.\n");
        +  }
        +
        + protected:
        +  ~CxxExceptionInDestructorTest() {
        +    GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(
        +        throw std::runtime_error("Standard C++ exception"));
        +  }
        +};
        +
        +TEST_F(CxxExceptionInDestructorTest, ThrowsExceptionInDestructor) {}
        +#endif  // C++11 mode
        +
        +class CxxExceptionInSetUpTestCaseTest : public Test {
        + public:
        +  CxxExceptionInSetUpTestCaseTest() {
        +    printf("%s",
        +           "CxxExceptionInSetUpTestCaseTest constructor "
        +           "called as expected.\n");
        +  }
        +
        +  static void SetUpTestCase() {
        +    throw std::runtime_error("Standard C++ exception");
        +  }
        +
        +  static void TearDownTestCase() {
        +    printf("%s",
        +           "CxxExceptionInSetUpTestCaseTest::TearDownTestCase() "
        +           "called as expected.\n");
        +  }
        +
        + protected:
        +  ~CxxExceptionInSetUpTestCaseTest() {
        +    printf("%s",
        +           "CxxExceptionInSetUpTestCaseTest destructor "
        +           "called as expected.\n");
        +  }
        +
        +  virtual void SetUp() {
        +    printf("%s",
        +           "CxxExceptionInSetUpTestCaseTest::SetUp() "
        +           "called as expected.\n");
        +  }
        +
        +  virtual void TearDown() {
        +    printf("%s",
        +           "CxxExceptionInSetUpTestCaseTest::TearDown() "
        +           "called as expected.\n");
        +  }
        +};
        +
        +TEST_F(CxxExceptionInSetUpTestCaseTest, ThrowsExceptionInSetUpTestCase) {
        +  printf("%s",
        +         "CxxExceptionInSetUpTestCaseTest test body "
        +         "called as expected.\n");
        +}
        +
        +class CxxExceptionInTearDownTestCaseTest : public Test {
        + public:
        +  static void TearDownTestCase() {
        +    throw std::runtime_error("Standard C++ exception");
        +  }
        +};
        +
        +TEST_F(CxxExceptionInTearDownTestCaseTest, ThrowsExceptionInTearDownTestCase) {}
        +
        +class CxxExceptionInSetUpTest : public Test {
        + public:
        +  static void TearDownTestCase() {
        +    printf("%s",
        +           "CxxExceptionInSetUpTest::TearDownTestCase() "
        +           "called as expected.\n");
        +  }
        +
        + protected:
        +  ~CxxExceptionInSetUpTest() {
        +    printf("%s",
        +           "CxxExceptionInSetUpTest destructor "
        +           "called as expected.\n");
        +  }
        +
        +  virtual void SetUp() { throw std::runtime_error("Standard C++ exception"); }
        +
        +  virtual void TearDown() {
        +    printf("%s",
        +           "CxxExceptionInSetUpTest::TearDown() "
        +           "called as expected.\n");
        +  }
        +};
        +
        +TEST_F(CxxExceptionInSetUpTest, ThrowsExceptionInSetUp) {
        +  ADD_FAILURE() << "CxxExceptionInSetUpTest test body "
        +                << "called unexpectedly.";
        +}
        +
        +class CxxExceptionInTearDownTest : public Test {
        + public:
        +  static void TearDownTestCase() {
        +    printf("%s",
        +           "CxxExceptionInTearDownTest::TearDownTestCase() "
        +           "called as expected.\n");
        +  }
        +
        + protected:
        +  ~CxxExceptionInTearDownTest() {
        +    printf("%s",
        +           "CxxExceptionInTearDownTest destructor "
        +           "called as expected.\n");
        +  }
        +
        +  virtual void TearDown() {
        +    throw std::runtime_error("Standard C++ exception");
        +  }
        +};
        +
        +TEST_F(CxxExceptionInTearDownTest, ThrowsExceptionInTearDown) {}
        +
        +class CxxExceptionInTestBodyTest : public Test {
        + public:
        +  static void TearDownTestCase() {
        +    printf("%s",
        +           "CxxExceptionInTestBodyTest::TearDownTestCase() "
        +           "called as expected.\n");
        +  }
        +
        + protected:
        +  ~CxxExceptionInTestBodyTest() {
        +    printf("%s",
        +           "CxxExceptionInTestBodyTest destructor "
        +           "called as expected.\n");
        +  }
        +
        +  virtual void TearDown() {
        +    printf("%s",
        +           "CxxExceptionInTestBodyTest::TearDown() "
        +           "called as expected.\n");
        +  }
        +};
        +
        +TEST_F(CxxExceptionInTestBodyTest, ThrowsStdCxxException) {
        +  throw std::runtime_error("Standard C++ exception");
        +}
        +
        +TEST(CxxExceptionTest, ThrowsNonStdCxxException) {
        +  throw "C-string";
        +}
        +
        +// This terminate handler aborts the program using exit() rather than abort().
        +// This avoids showing pop-ups on Windows systems and core dumps on Unix-like
        +// ones.
        +void TerminateHandler() {
        +  fprintf(stderr, "%s\n", "Unhandled C++ exception terminating the program.");
        +  fflush(NULL);
        +  exit(3);
        +}
        +
        +#endif  // GTEST_HAS_EXCEPTIONS
        +
        +int main(int argc, char** argv) {
        +#if GTEST_HAS_EXCEPTIONS
        +  std::set_terminate(&TerminateHandler);
        +#endif
        +  testing::InitGoogleTest(&argc, argv);
        +  return RUN_ALL_TESTS();
        +}
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_color_test.py b/lib/ann/fann/lib/googletest/test/gtest_color_test.py
        new file mode 100755
        index 0000000..d02a53e
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_color_test.py
        @@ -0,0 +1,130 @@
        +#!/usr/bin/env python
        +#
        +# Copyright 2008, Google Inc.
        +# All rights reserved.
        +#
        +# Redistribution and use in source and binary forms, with or without
        +# modification, are permitted provided that the following conditions are
        +# met:
        +#
        +#     * Redistributions of source code must retain the above copyright
        +# notice, this list of conditions and the following disclaimer.
        +#     * Redistributions in binary form must reproduce the above
        +# copyright notice, this list of conditions and the following disclaimer
        +# in the documentation and/or other materials provided with the
        +# distribution.
        +#     * Neither the name of Google Inc. nor the names of its
        +# contributors may be used to endorse or promote products derived from
        +# this software without specific prior written permission.
        +#
        +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +"""Verifies that Google Test correctly determines whether to use colors."""
        +
        +__author__ = 'wan@google.com (Zhanyong Wan)'
        +
        +import os
        +import gtest_test_utils
        +
        +
        +IS_WINDOWS = os.name = 'nt'
        +
        +COLOR_ENV_VAR = 'GTEST_COLOR'
        +COLOR_FLAG = 'gtest_color'
        +COMMAND = gtest_test_utils.GetTestExecutablePath('gtest_color_test_')
        +
        +
        +def SetEnvVar(env_var, value):
        +  """Sets the env variable to 'value'; unsets it when 'value' is None."""
        +
        +  if value is not None:
        +    os.environ[env_var] = value
        +  elif env_var in os.environ:
        +    del os.environ[env_var]
        +
        +
        +def UsesColor(term, color_env_var, color_flag):
        +  """Runs gtest_color_test_ and returns its exit code."""
        +
        +  SetEnvVar('TERM', term)
        +  SetEnvVar(COLOR_ENV_VAR, color_env_var)
        +
        +  if color_flag is None:
        +    args = []
        +  else:
        +    args = ['--%s=%s' % (COLOR_FLAG, color_flag)]
        +  p = gtest_test_utils.Subprocess([COMMAND] + args)
        +  return not p.exited or p.exit_code
        +
        +
        +class GTestColorTest(gtest_test_utils.TestCase):
        +  def testNoEnvVarNoFlag(self):
        +    """Tests the case when there's neither GTEST_COLOR nor --gtest_color."""
        +
        +    if not IS_WINDOWS:
        +      self.assert_(not UsesColor('dumb', None, None))
        +      self.assert_(not UsesColor('emacs', None, None))
        +      self.assert_(not UsesColor('xterm-mono', None, None))
        +      self.assert_(not UsesColor('unknown', None, None))
        +      self.assert_(not UsesColor(None, None, None))
        +    self.assert_(UsesColor('linux', None, None))
        +    self.assert_(UsesColor('cygwin', None, None))
        +    self.assert_(UsesColor('xterm', None, None))
        +    self.assert_(UsesColor('xterm-color', None, None))
        +    self.assert_(UsesColor('xterm-256color', None, None))
        +
        +  def testFlagOnly(self):
        +    """Tests the case when there's --gtest_color but not GTEST_COLOR."""
        +
        +    self.assert_(not UsesColor('dumb', None, 'no'))
        +    self.assert_(not UsesColor('xterm-color', None, 'no'))
        +    if not IS_WINDOWS:
        +      self.assert_(not UsesColor('emacs', None, 'auto'))
        +    self.assert_(UsesColor('xterm', None, 'auto'))
        +    self.assert_(UsesColor('dumb', None, 'yes'))
        +    self.assert_(UsesColor('xterm', None, 'yes'))
        +
        +  def testEnvVarOnly(self):
        +    """Tests the case when there's GTEST_COLOR but not --gtest_color."""
        +
        +    self.assert_(not UsesColor('dumb', 'no', None))
        +    self.assert_(not UsesColor('xterm-color', 'no', None))
        +    if not IS_WINDOWS:
        +      self.assert_(not UsesColor('dumb', 'auto', None))
        +    self.assert_(UsesColor('xterm-color', 'auto', None))
        +    self.assert_(UsesColor('dumb', 'yes', None))
        +    self.assert_(UsesColor('xterm-color', 'yes', None))
        +
        +  def testEnvVarAndFlag(self):
        +    """Tests the case when there are both GTEST_COLOR and --gtest_color."""
        +
        +    self.assert_(not UsesColor('xterm-color', 'no', 'no'))
        +    self.assert_(UsesColor('dumb', 'no', 'yes'))
        +    self.assert_(UsesColor('xterm-color', 'no', 'auto'))
        +
        +  def testAliasesOfYesAndNo(self):
        +    """Tests using aliases in specifying --gtest_color."""
        +
        +    self.assert_(UsesColor('dumb', None, 'true'))
        +    self.assert_(UsesColor('dumb', None, 'YES'))
        +    self.assert_(UsesColor('dumb', None, 'T'))
        +    self.assert_(UsesColor('dumb', None, '1'))
        +
        +    self.assert_(not UsesColor('xterm', None, 'f'))
        +    self.assert_(not UsesColor('xterm', None, 'false'))
        +    self.assert_(not UsesColor('xterm', None, '0'))
        +    self.assert_(not UsesColor('xterm', None, 'unknown'))
        +
        +
        +if __name__ == '__main__':
        +  gtest_test_utils.Main()
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_color_test_.cc b/lib/ann/fann/lib/googletest/test/gtest_color_test_.cc
        new file mode 100644
        index 0000000..f61ebb8
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_color_test_.cc
        @@ -0,0 +1,71 @@
        +// Copyright 2008, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +// A helper program for testing how Google Test determines whether to use
        +// colors in the output.  It prints "YES" and returns 1 if Google Test
        +// decides to use colors, and prints "NO" and returns 0 otherwise.
        +
        +#include <stdio.h>
        +
        +#include "gtest/gtest.h"
        +
        +// Indicates that this translation unit is part of Google Test's
        +// implementation.  It must come before gtest-internal-inl.h is
        +// included, or there will be a compiler error.  This trick is to
        +// prevent a user from accidentally including gtest-internal-inl.h in
        +// his code.
        +#define GTEST_IMPLEMENTATION_ 1
        +#include "src/gtest-internal-inl.h"
        +#undef GTEST_IMPLEMENTATION_
        +
        +using testing::internal::ShouldUseColor;
        +
        +// The purpose of this is to ensure that the UnitTest singleton is
        +// created before main() is entered, and thus that ShouldUseColor()
        +// works the same way as in a real Google-Test-based test.  We don't actual
        +// run the TEST itself.
        +TEST(GTestColorTest, Dummy) {
        +}
        +
        +int main(int argc, char** argv) {
        +  testing::InitGoogleTest(&argc, argv);
        +
        +  if (ShouldUseColor(true)) {
        +    // Google Test decides to use colors in the output (assuming it
        +    // goes to a TTY).
        +    printf("YES\n");
        +    return 1;
        +  } else {
        +    // Google Test decides not to use colors in the output.
        +    printf("NO\n");
        +    return 0;
        +  }
        +}
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_env_var_test.py b/lib/ann/fann/lib/googletest/test/gtest_env_var_test.py
        new file mode 100755
        index 0000000..ac24337
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_env_var_test.py
        @@ -0,0 +1,103 @@
        +#!/usr/bin/env python
        +#
        +# Copyright 2008, Google Inc.
        +# All rights reserved.
        +#
        +# Redistribution and use in source and binary forms, with or without
        +# modification, are permitted provided that the following conditions are
        +# met:
        +#
        +#     * Redistributions of source code must retain the above copyright
        +# notice, this list of conditions and the following disclaimer.
        +#     * Redistributions in binary form must reproduce the above
        +# copyright notice, this list of conditions and the following disclaimer
        +# in the documentation and/or other materials provided with the
        +# distribution.
        +#     * Neither the name of Google Inc. nor the names of its
        +# contributors may be used to endorse or promote products derived from
        +# this software without specific prior written permission.
        +#
        +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +"""Verifies that Google Test correctly parses environment variables."""
        +
        +__author__ = 'wan@google.com (Zhanyong Wan)'
        +
        +import os
        +import gtest_test_utils
        +
        +
        +IS_WINDOWS = os.name == 'nt'
        +IS_LINUX = os.name == 'posix' and os.uname()[0] == 'Linux'
        +
        +COMMAND = gtest_test_utils.GetTestExecutablePath('gtest_env_var_test_')
        +
        +environ = os.environ.copy()
        +
        +
        +def AssertEq(expected, actual):
        +  if expected != actual:
        +    print 'Expected: %s' % (expected,)
        +    print '  Actual: %s' % (actual,)
        +    raise AssertionError
        +
        +
        +def SetEnvVar(env_var, value):
        +  """Sets the env variable to 'value'; unsets it when 'value' is None."""
        +
        +  if value is not None:
        +    environ[env_var] = value
        +  elif env_var in environ:
        +    del environ[env_var]
        +
        +
        +def GetFlag(flag):
        +  """Runs gtest_env_var_test_ and returns its output."""
        +
        +  args = [COMMAND]
        +  if flag is not None:
        +    args += [flag]
        +  return gtest_test_utils.Subprocess(args, env=environ).output
        +
        +
        +def TestFlag(flag, test_val, default_val):
        +  """Verifies that the given flag is affected by the corresponding env var."""
        +
        +  env_var = 'GTEST_' + flag.upper()
        +  SetEnvVar(env_var, test_val)
        +  AssertEq(test_val, GetFlag(flag))
        +  SetEnvVar(env_var, None)
        +  AssertEq(default_val, GetFlag(flag))
        +
        +
        +class GTestEnvVarTest(gtest_test_utils.TestCase):
        +  def testEnvVarAffectsFlag(self):
        +    """Tests that environment variable should affect the corresponding flag."""
        +
        +    TestFlag('break_on_failure', '1', '0')
        +    TestFlag('color', 'yes', 'auto')
        +    TestFlag('filter', 'FooTest.Bar', '*')
        +    TestFlag('output', 'xml:tmp/foo.xml', '')
        +    TestFlag('print_time', '0', '1')
        +    TestFlag('repeat', '999', '1')
        +    TestFlag('throw_on_failure', '1', '0')
        +    TestFlag('death_test_style', 'threadsafe', 'fast')
        +    TestFlag('catch_exceptions', '0', '1')
        +
        +    if IS_LINUX:
        +      TestFlag('death_test_use_fork', '1', '0')
        +      TestFlag('stack_trace_depth', '0', '100')
        +
        +
        +if __name__ == '__main__':
        +  gtest_test_utils.Main()
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_env_var_test_.cc b/lib/ann/fann/lib/googletest/test/gtest_env_var_test_.cc
        new file mode 100644
        index 0000000..539afc9
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_env_var_test_.cc
        @@ -0,0 +1,126 @@
        +// Copyright 2008, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +// A helper program for testing that Google Test parses the environment
        +// variables correctly.
        +
        +#include "gtest/gtest.h"
        +
        +#include <iostream>
        +
        +#define GTEST_IMPLEMENTATION_ 1
        +#include "src/gtest-internal-inl.h"
        +#undef GTEST_IMPLEMENTATION_
        +
        +using ::std::cout;
        +
        +namespace testing {
        +
        +// The purpose of this is to make the test more realistic by ensuring
        +// that the UnitTest singleton is created before main() is entered.
        +// We don't actual run the TEST itself.
        +TEST(GTestEnvVarTest, Dummy) {
        +}
        +
        +void PrintFlag(const char* flag) {
        +  if (strcmp(flag, "break_on_failure") == 0) {
        +    cout << GTEST_FLAG(break_on_failure);
        +    return;
        +  }
        +
        +  if (strcmp(flag, "catch_exceptions") == 0) {
        +    cout << GTEST_FLAG(catch_exceptions);
        +    return;
        +  }
        +
        +  if (strcmp(flag, "color") == 0) {
        +    cout << GTEST_FLAG(color);
        +    return;
        +  }
        +
        +  if (strcmp(flag, "death_test_style") == 0) {
        +    cout << GTEST_FLAG(death_test_style);
        +    return;
        +  }
        +
        +  if (strcmp(flag, "death_test_use_fork") == 0) {
        +    cout << GTEST_FLAG(death_test_use_fork);
        +    return;
        +  }
        +
        +  if (strcmp(flag, "filter") == 0) {
        +    cout << GTEST_FLAG(filter);
        +    return;
        +  }
        +
        +  if (strcmp(flag, "output") == 0) {
        +    cout << GTEST_FLAG(output);
        +    return;
        +  }
        +
        +  if (strcmp(flag, "print_time") == 0) {
        +    cout << GTEST_FLAG(print_time);
        +    return;
        +  }
        +
        +  if (strcmp(flag, "repeat") == 0) {
        +    cout << GTEST_FLAG(repeat);
        +    return;
        +  }
        +
        +  if (strcmp(flag, "stack_trace_depth") == 0) {
        +    cout << GTEST_FLAG(stack_trace_depth);
        +    return;
        +  }
        +
        +  if (strcmp(flag, "throw_on_failure") == 0) {
        +    cout << GTEST_FLAG(throw_on_failure);
        +    return;
        +  }
        +
        +  cout << "Invalid flag name " << flag
        +       << ".  Valid names are break_on_failure, color, filter, etc.\n";
        +  exit(1);
        +}
        +
        +}  // namespace testing
        +
        +int main(int argc, char** argv) {
        +  testing::InitGoogleTest(&argc, argv);
        +
        +  if (argc != 2) {
        +    cout << "Usage: gtest_env_var_test_ NAME_OF_FLAG\n";
        +    return 1;
        +  }
        +
        +  testing::PrintFlag(argv[1]);
        +  return 0;
        +}
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_environment_test.cc b/lib/ann/fann/lib/googletest/test/gtest_environment_test.cc
        new file mode 100644
        index 0000000..3cff19e
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_environment_test.cc
        @@ -0,0 +1,192 @@
        +// Copyright 2007, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +//
        +// Tests using global test environments.
        +
        +#include <stdlib.h>
        +#include <stdio.h>
        +#include "gtest/gtest.h"
        +
        +#define GTEST_IMPLEMENTATION_ 1  // Required for the next #include.
        +#include "src/gtest-internal-inl.h"
        +#undef GTEST_IMPLEMENTATION_
        +
        +namespace testing {
        +GTEST_DECLARE_string_(filter);
        +}
        +
        +namespace {
        +
        +enum FailureType {
        +  NO_FAILURE, NON_FATAL_FAILURE, FATAL_FAILURE
        +};
        +
        +// For testing using global test environments.
        +class MyEnvironment : public testing::Environment {
        + public:
        +  MyEnvironment() { Reset(); }
        +
        +  // Depending on the value of failure_in_set_up_, SetUp() will
        +  // generate a non-fatal failure, generate a fatal failure, or
        +  // succeed.
        +  virtual void SetUp() {
        +    set_up_was_run_ = true;
        +
        +    switch (failure_in_set_up_) {
        +      case NON_FATAL_FAILURE:
        +        ADD_FAILURE() << "Expected non-fatal failure in global set-up.";
        +        break;
        +      case FATAL_FAILURE:
        +        FAIL() << "Expected fatal failure in global set-up.";
        +        break;
        +      default:
        +        break;
        +    }
        +  }
        +
        +  // Generates a non-fatal failure.
        +  virtual void TearDown() {
        +    tear_down_was_run_ = true;
        +    ADD_FAILURE() << "Expected non-fatal failure in global tear-down.";
        +  }
        +
        +  // Resets the state of the environment s.t. it can be reused.
        +  void Reset() {
        +    failure_in_set_up_ = NO_FAILURE;
        +    set_up_was_run_ = false;
        +    tear_down_was_run_ = false;
        +  }
        +
        +  // We call this function to set the type of failure SetUp() should
        +  // generate.
        +  void set_failure_in_set_up(FailureType type) {
        +    failure_in_set_up_ = type;
        +  }
        +
        +  // Was SetUp() run?
        +  bool set_up_was_run() const { return set_up_was_run_; }
        +
        +  // Was TearDown() run?
        +  bool tear_down_was_run() const { return tear_down_was_run_; }
        +
        + private:
        +  FailureType failure_in_set_up_;
        +  bool set_up_was_run_;
        +  bool tear_down_was_run_;
        +};
        +
        +// Was the TEST run?
        +bool test_was_run;
        +
        +// The sole purpose of this TEST is to enable us to check whether it
        +// was run.
        +TEST(FooTest, Bar) {
        +  test_was_run = true;
        +}
        +
        +// Prints the message and aborts the program if condition is false.
        +void Check(bool condition, const char* msg) {
        +  if (!condition) {
        +    printf("FAILED: %s\n", msg);
        +    testing::internal::posix::Abort();
        +  }
        +}
        +
        +// Runs the tests.  Return true iff successful.
        +//
        +// The 'failure' parameter specifies the type of failure that should
        +// be generated by the global set-up.
        +int RunAllTests(MyEnvironment* env, FailureType failure) {
        +  env->Reset();
        +  env->set_failure_in_set_up(failure);
        +  test_was_run = false;
        +  testing::internal::GetUnitTestImpl()->ClearAdHocTestResult();
        +  return RUN_ALL_TESTS();
        +}
        +
        +}  // namespace
        +
        +int main(int argc, char **argv) {
        +  testing::InitGoogleTest(&argc, argv);
        +
        +  // Registers a global test environment, and verifies that the
        +  // registration function returns its argument.
        +  MyEnvironment* const env = new MyEnvironment;
        +  Check(testing::AddGlobalTestEnvironment(env) == env,
        +        "AddGlobalTestEnvironment() should return its argument.");
        +
        +  // Verifies that RUN_ALL_TESTS() runs the tests when the global
        +  // set-up is successful.
        +  Check(RunAllTests(env, NO_FAILURE) != 0,
        +        "RUN_ALL_TESTS() should return non-zero, as the global tear-down "
        +        "should generate a failure.");
        +  Check(test_was_run,
        +        "The tests should run, as the global set-up should generate no "
        +        "failure");
        +  Check(env->tear_down_was_run(),
        +        "The global tear-down should run, as the global set-up was run.");
        +
        +  // Verifies that RUN_ALL_TESTS() runs the tests when the global
        +  // set-up generates no fatal failure.
        +  Check(RunAllTests(env, NON_FATAL_FAILURE) != 0,
        +        "RUN_ALL_TESTS() should return non-zero, as both the global set-up "
        +        "and the global tear-down should generate a non-fatal failure.");
        +  Check(test_was_run,
        +        "The tests should run, as the global set-up should generate no "
        +        "fatal failure.");
        +  Check(env->tear_down_was_run(),
        +        "The global tear-down should run, as the global set-up was run.");
        +
        +  // Verifies that RUN_ALL_TESTS() runs no test when the global set-up
        +  // generates a fatal failure.
        +  Check(RunAllTests(env, FATAL_FAILURE) != 0,
        +        "RUN_ALL_TESTS() should return non-zero, as the global set-up "
        +        "should generate a fatal failure.");
        +  Check(!test_was_run,
        +        "The tests should not run, as the global set-up should generate "
        +        "a fatal failure.");
        +  Check(env->tear_down_was_run(),
        +        "The global tear-down should run, as the global set-up was run.");
        +
        +  // Verifies that RUN_ALL_TESTS() doesn't do global set-up or
        +  // tear-down when there is no test to run.
        +  testing::GTEST_FLAG(filter) = "-*";
        +  Check(RunAllTests(env, NO_FAILURE) == 0,
        +        "RUN_ALL_TESTS() should return zero, as there is no test to run.");
        +  Check(!env->set_up_was_run(),
        +        "The global set-up should not run, as there is no test to run.");
        +  Check(!env->tear_down_was_run(),
        +        "The global tear-down should not run, "
        +        "as the global set-up was not run.");
        +
        +  printf("PASS\n");
        +  return 0;
        +}
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_filter_unittest.py b/lib/ann/fann/lib/googletest/test/gtest_filter_unittest.py
        new file mode 100755
        index 0000000..0d1a770
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_filter_unittest.py
        @@ -0,0 +1,633 @@
        +#!/usr/bin/env python
        +#
        +# Copyright 2005 Google Inc. All Rights Reserved.
        +#
        +# Redistribution and use in source and binary forms, with or without
        +# modification, are permitted provided that the following conditions are
        +# met:
        +#
        +#     * Redistributions of source code must retain the above copyright
        +# notice, this list of conditions and the following disclaimer.
        +#     * Redistributions in binary form must reproduce the above
        +# copyright notice, this list of conditions and the following disclaimer
        +# in the documentation and/or other materials provided with the
        +# distribution.
        +#     * Neither the name of Google Inc. nor the names of its
        +# contributors may be used to endorse or promote products derived from
        +# this software without specific prior written permission.
        +#
        +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +"""Unit test for Google Test test filters.
        +
        +A user can specify which test(s) in a Google Test program to run via either
        +the GTEST_FILTER environment variable or the --gtest_filter flag.
        +This script tests such functionality by invoking
        +gtest_filter_unittest_ (a program written with Google Test) with different
        +environments and command line flags.
        +
        +Note that test sharding may also influence which tests are filtered. Therefore,
        +we test that here also.
        +"""
        +
        +__author__ = 'wan@google.com (Zhanyong Wan)'
        +
        +import os
        +import re
        +import sets
        +import sys
        +
        +import gtest_test_utils
        +
        +# Constants.
        +
        +# Checks if this platform can pass empty environment variables to child
        +# processes.  We set an env variable to an empty string and invoke a python
        +# script in a subprocess to print whether the variable is STILL in
        +# os.environ.  We then use 'eval' to parse the child's output so that an
        +# exception is thrown if the input is anything other than 'True' nor 'False'.
        +os.environ['EMPTY_VAR'] = ''
        +child = gtest_test_utils.Subprocess(
        +    [sys.executable, '-c', 'import os; print \'EMPTY_VAR\' in os.environ'])
        +CAN_PASS_EMPTY_ENV = eval(child.output)
        +
        +
        +# Check if this platform can unset environment variables in child processes.
        +# We set an env variable to a non-empty string, unset it, and invoke
        +# a python script in a subprocess to print whether the variable
        +# is NO LONGER in os.environ.
        +# We use 'eval' to parse the child's output so that an exception
        +# is thrown if the input is neither 'True' nor 'False'.
        +os.environ['UNSET_VAR'] = 'X'
        +del os.environ['UNSET_VAR']
        +child = gtest_test_utils.Subprocess(
        +    [sys.executable, '-c', 'import os; print \'UNSET_VAR\' not in os.environ'])
        +CAN_UNSET_ENV = eval(child.output)
        +
        +
        +# Checks if we should test with an empty filter. This doesn't
        +# make sense on platforms that cannot pass empty env variables (Win32)
        +# and on platforms that cannot unset variables (since we cannot tell
        +# the difference between "" and NULL -- Borland and Solaris < 5.10)
        +CAN_TEST_EMPTY_FILTER = (CAN_PASS_EMPTY_ENV and CAN_UNSET_ENV)
        +
        +
        +# The environment variable for specifying the test filters.
        +FILTER_ENV_VAR = 'GTEST_FILTER'
        +
        +# The environment variables for test sharding.
        +TOTAL_SHARDS_ENV_VAR = 'GTEST_TOTAL_SHARDS'
        +SHARD_INDEX_ENV_VAR = 'GTEST_SHARD_INDEX'
        +SHARD_STATUS_FILE_ENV_VAR = 'GTEST_SHARD_STATUS_FILE'
        +
        +# The command line flag for specifying the test filters.
        +FILTER_FLAG = 'gtest_filter'
        +
        +# The command line flag for including disabled tests.
        +ALSO_RUN_DISABED_TESTS_FLAG = 'gtest_also_run_disabled_tests'
        +
        +# Command to run the gtest_filter_unittest_ program.
        +COMMAND = gtest_test_utils.GetTestExecutablePath('gtest_filter_unittest_')
        +
        +# Regex for determining whether parameterized tests are enabled in the binary.
        +PARAM_TEST_REGEX = re.compile(r'/ParamTest')
        +
        +# Regex for parsing test case names from Google Test's output.
        +TEST_CASE_REGEX = re.compile(r'^\[\-+\] \d+ tests? from (\w+(/\w+)?)')
        +
        +# Regex for parsing test names from Google Test's output.
        +TEST_REGEX = re.compile(r'^\[\s*RUN\s*\].*\.(\w+(/\w+)?)')
        +
        +# The command line flag to tell Google Test to output the list of tests it
        +# will run.
        +LIST_TESTS_FLAG = '--gtest_list_tests'
        +
        +# Indicates whether Google Test supports death tests.
        +SUPPORTS_DEATH_TESTS = 'HasDeathTest' in gtest_test_utils.Subprocess(
        +    [COMMAND, LIST_TESTS_FLAG]).output
        +
        +# Full names of all tests in gtest_filter_unittests_.
        +PARAM_TESTS = [
        +    'SeqP/ParamTest.TestX/0',
        +    'SeqP/ParamTest.TestX/1',
        +    'SeqP/ParamTest.TestY/0',
        +    'SeqP/ParamTest.TestY/1',
        +    'SeqQ/ParamTest.TestX/0',
        +    'SeqQ/ParamTest.TestX/1',
        +    'SeqQ/ParamTest.TestY/0',
        +    'SeqQ/ParamTest.TestY/1',
        +    ]
        +
        +DISABLED_TESTS = [
        +    'BarTest.DISABLED_TestFour',
        +    'BarTest.DISABLED_TestFive',
        +    'BazTest.DISABLED_TestC',
        +    'DISABLED_FoobarTest.Test1',
        +    'DISABLED_FoobarTest.DISABLED_Test2',
        +    'DISABLED_FoobarbazTest.TestA',
        +    ]
        +
        +if SUPPORTS_DEATH_TESTS:
        +  DEATH_TESTS = [
        +    'HasDeathTest.Test1',
        +    'HasDeathTest.Test2',
        +    ]
        +else:
        +  DEATH_TESTS = []
        +
        +# All the non-disabled tests.
        +ACTIVE_TESTS = [
        +    'FooTest.Abc',
        +    'FooTest.Xyz',
        +
        +    'BarTest.TestOne',
        +    'BarTest.TestTwo',
        +    'BarTest.TestThree',
        +
        +    'BazTest.TestOne',
        +    'BazTest.TestA',
        +    'BazTest.TestB',
        +    ] + DEATH_TESTS + PARAM_TESTS
        +
        +param_tests_present = None
        +
        +# Utilities.
        +
        +environ = os.environ.copy()
        +
        +
        +def SetEnvVar(env_var, value):
        +  """Sets the env variable to 'value'; unsets it when 'value' is None."""
        +
        +  if value is not None:
        +    environ[env_var] = value
        +  elif env_var in environ:
        +    del environ[env_var]
        +
        +
        +def RunAndReturnOutput(args = None):
        +  """Runs the test program and returns its output."""
        +
        +  return gtest_test_utils.Subprocess([COMMAND] + (args or []),
        +                                     env=environ).output
        +
        +
        +def RunAndExtractTestList(args = None):
        +  """Runs the test program and returns its exit code and a list of tests run."""
        +
        +  p = gtest_test_utils.Subprocess([COMMAND] + (args or []), env=environ)
        +  tests_run = []
        +  test_case = ''
        +  test = ''
        +  for line in p.output.split('\n'):
        +    match = TEST_CASE_REGEX.match(line)
        +    if match is not None:
        +      test_case = match.group(1)
        +    else:
        +      match = TEST_REGEX.match(line)
        +      if match is not None:
        +        test = match.group(1)
        +        tests_run.append(test_case + '.' + test)
        +  return (tests_run, p.exit_code)
        +
        +
        +def InvokeWithModifiedEnv(extra_env, function, *args, **kwargs):
        +  """Runs the given function and arguments in a modified environment."""
        +  try:
        +    original_env = environ.copy()
        +    environ.update(extra_env)
        +    return function(*args, **kwargs)
        +  finally:
        +    environ.clear()
        +    environ.update(original_env)
        +
        +
        +def RunWithSharding(total_shards, shard_index, command):
        +  """Runs a test program shard and returns exit code and a list of tests run."""
        +
        +  extra_env = {SHARD_INDEX_ENV_VAR: str(shard_index),
        +               TOTAL_SHARDS_ENV_VAR: str(total_shards)}
        +  return InvokeWithModifiedEnv(extra_env, RunAndExtractTestList, command)
        +
        +# The unit test.
        +
        +
        +class GTestFilterUnitTest(gtest_test_utils.TestCase):
        +  """Tests the env variable or the command line flag to filter tests."""
        +
        +  # Utilities.
        +
        +  def AssertSetEqual(self, lhs, rhs):
        +    """Asserts that two sets are equal."""
        +
        +    for elem in lhs:
        +      self.assert_(elem in rhs, '%s in %s' % (elem, rhs))
        +
        +    for elem in rhs:
        +      self.assert_(elem in lhs, '%s in %s' % (elem, lhs))
        +
        +  def AssertPartitionIsValid(self, set_var, list_of_sets):
        +    """Asserts that list_of_sets is a valid partition of set_var."""
        +
        +    full_partition = []
        +    for slice_var in list_of_sets:
        +      full_partition.extend(slice_var)
        +    self.assertEqual(len(set_var), len(full_partition))
        +    self.assertEqual(sets.Set(set_var), sets.Set(full_partition))
        +
        +  def AdjustForParameterizedTests(self, tests_to_run):
        +    """Adjust tests_to_run in case value parameterized tests are disabled."""
        +
        +    global param_tests_present
        +    if not param_tests_present:
        +      return list(sets.Set(tests_to_run) - sets.Set(PARAM_TESTS))
        +    else:
        +      return tests_to_run
        +
        +  def RunAndVerify(self, gtest_filter, tests_to_run):
        +    """Checks that the binary runs correct set of tests for a given filter."""
        +
        +    tests_to_run = self.AdjustForParameterizedTests(tests_to_run)
        +
        +    # First, tests using the environment variable.
        +
        +    # Windows removes empty variables from the environment when passing it
        +    # to a new process.  This means it is impossible to pass an empty filter
        +    # into a process using the environment variable.  However, we can still
        +    # test the case when the variable is not supplied (i.e., gtest_filter is
        +    # None).
        +    # pylint: disable-msg=C6403
        +    if CAN_TEST_EMPTY_FILTER or gtest_filter != '':
        +      SetEnvVar(FILTER_ENV_VAR, gtest_filter)
        +      tests_run = RunAndExtractTestList()[0]
        +      SetEnvVar(FILTER_ENV_VAR, None)
        +      self.AssertSetEqual(tests_run, tests_to_run)
        +    # pylint: enable-msg=C6403
        +
        +    # Next, tests using the command line flag.
        +
        +    if gtest_filter is None:
        +      args = []
        +    else:
        +      args = ['--%s=%s' % (FILTER_FLAG, gtest_filter)]
        +
        +    tests_run = RunAndExtractTestList(args)[0]
        +    self.AssertSetEqual(tests_run, tests_to_run)
        +
        +  def RunAndVerifyWithSharding(self, gtest_filter, total_shards, tests_to_run,
        +                               args=None, check_exit_0=False):
        +    """Checks that binary runs correct tests for the given filter and shard.
        +
        +    Runs all shards of gtest_filter_unittest_ with the given filter, and
        +    verifies that the right set of tests were run. The union of tests run
        +    on each shard should be identical to tests_to_run, without duplicates.
        +
        +    Args:
        +      gtest_filter: A filter to apply to the tests.
        +      total_shards: A total number of shards to split test run into.
        +      tests_to_run: A set of tests expected to run.
        +      args   :      Arguments to pass to the to the test binary.
        +      check_exit_0: When set to a true value, make sure that all shards
        +                    return 0.
        +    """
        +
        +    tests_to_run = self.AdjustForParameterizedTests(tests_to_run)
        +
        +    # Windows removes empty variables from the environment when passing it
        +    # to a new process.  This means it is impossible to pass an empty filter
        +    # into a process using the environment variable.  However, we can still
        +    # test the case when the variable is not supplied (i.e., gtest_filter is
        +    # None).
        +    # pylint: disable-msg=C6403
        +    if CAN_TEST_EMPTY_FILTER or gtest_filter != '':
        +      SetEnvVar(FILTER_ENV_VAR, gtest_filter)
        +      partition = []
        +      for i in range(0, total_shards):
        +        (tests_run, exit_code) = RunWithSharding(total_shards, i, args)
        +        if check_exit_0:
        +          self.assertEqual(0, exit_code)
        +        partition.append(tests_run)
        +
        +      self.AssertPartitionIsValid(tests_to_run, partition)
        +      SetEnvVar(FILTER_ENV_VAR, None)
        +    # pylint: enable-msg=C6403
        +
        +  def RunAndVerifyAllowingDisabled(self, gtest_filter, tests_to_run):
        +    """Checks that the binary runs correct set of tests for the given filter.
        +
        +    Runs gtest_filter_unittest_ with the given filter, and enables
        +    disabled tests. Verifies that the right set of tests were run.
        +
        +    Args:
        +      gtest_filter: A filter to apply to the tests.
        +      tests_to_run: A set of tests expected to run.
        +    """
        +
        +    tests_to_run = self.AdjustForParameterizedTests(tests_to_run)
        +
        +    # Construct the command line.
        +    args = ['--%s' % ALSO_RUN_DISABED_TESTS_FLAG]
        +    if gtest_filter is not None:
        +      args.append('--%s=%s' % (FILTER_FLAG, gtest_filter))
        +
        +    tests_run = RunAndExtractTestList(args)[0]
        +    self.AssertSetEqual(tests_run, tests_to_run)
        +
        +  def setUp(self):
        +    """Sets up test case.
        +
        +    Determines whether value-parameterized tests are enabled in the binary and
        +    sets the flags accordingly.
        +    """
        +
        +    global param_tests_present
        +    if param_tests_present is None:
        +      param_tests_present = PARAM_TEST_REGEX.search(
        +          RunAndReturnOutput()) is not None
        +
        +  def testDefaultBehavior(self):
        +    """Tests the behavior of not specifying the filter."""
        +
        +    self.RunAndVerify(None, ACTIVE_TESTS)
        +
        +  def testDefaultBehaviorWithShards(self):
        +    """Tests the behavior without the filter, with sharding enabled."""
        +
        +    self.RunAndVerifyWithSharding(None, 1, ACTIVE_TESTS)
        +    self.RunAndVerifyWithSharding(None, 2, ACTIVE_TESTS)
        +    self.RunAndVerifyWithSharding(None, len(ACTIVE_TESTS) - 1, ACTIVE_TESTS)
        +    self.RunAndVerifyWithSharding(None, len(ACTIVE_TESTS), ACTIVE_TESTS)
        +    self.RunAndVerifyWithSharding(None, len(ACTIVE_TESTS) + 1, ACTIVE_TESTS)
        +
        +  def testEmptyFilter(self):
        +    """Tests an empty filter."""
        +
        +    self.RunAndVerify('', [])
        +    self.RunAndVerifyWithSharding('', 1, [])
        +    self.RunAndVerifyWithSharding('', 2, [])
        +
        +  def testBadFilter(self):
        +    """Tests a filter that matches nothing."""
        +
        +    self.RunAndVerify('BadFilter', [])
        +    self.RunAndVerifyAllowingDisabled('BadFilter', [])
        +
        +  def testFullName(self):
        +    """Tests filtering by full name."""
        +
        +    self.RunAndVerify('FooTest.Xyz', ['FooTest.Xyz'])
        +    self.RunAndVerifyAllowingDisabled('FooTest.Xyz', ['FooTest.Xyz'])
        +    self.RunAndVerifyWithSharding('FooTest.Xyz', 5, ['FooTest.Xyz'])
        +
        +  def testUniversalFilters(self):
        +    """Tests filters that match everything."""
        +
        +    self.RunAndVerify('*', ACTIVE_TESTS)
        +    self.RunAndVerify('*.*', ACTIVE_TESTS)
        +    self.RunAndVerifyWithSharding('*.*', len(ACTIVE_TESTS) - 3, ACTIVE_TESTS)
        +    self.RunAndVerifyAllowingDisabled('*', ACTIVE_TESTS + DISABLED_TESTS)
        +    self.RunAndVerifyAllowingDisabled('*.*', ACTIVE_TESTS + DISABLED_TESTS)
        +
        +  def testFilterByTestCase(self):
        +    """Tests filtering by test case name."""
        +
        +    self.RunAndVerify('FooTest.*', ['FooTest.Abc', 'FooTest.Xyz'])
        +
        +    BAZ_TESTS = ['BazTest.TestOne', 'BazTest.TestA', 'BazTest.TestB']
        +    self.RunAndVerify('BazTest.*', BAZ_TESTS)
        +    self.RunAndVerifyAllowingDisabled('BazTest.*',
        +                                      BAZ_TESTS + ['BazTest.DISABLED_TestC'])
        +
        +  def testFilterByTest(self):
        +    """Tests filtering by test name."""
        +
        +    self.RunAndVerify('*.TestOne', ['BarTest.TestOne', 'BazTest.TestOne'])
        +
        +  def testFilterDisabledTests(self):
        +    """Select only the disabled tests to run."""
        +
        +    self.RunAndVerify('DISABLED_FoobarTest.Test1', [])
        +    self.RunAndVerifyAllowingDisabled('DISABLED_FoobarTest.Test1',
        +                                      ['DISABLED_FoobarTest.Test1'])
        +
        +    self.RunAndVerify('*DISABLED_*', [])
        +    self.RunAndVerifyAllowingDisabled('*DISABLED_*', DISABLED_TESTS)
        +
        +    self.RunAndVerify('*.DISABLED_*', [])
        +    self.RunAndVerifyAllowingDisabled('*.DISABLED_*', [
        +        'BarTest.DISABLED_TestFour',
        +        'BarTest.DISABLED_TestFive',
        +        'BazTest.DISABLED_TestC',
        +        'DISABLED_FoobarTest.DISABLED_Test2',
        +        ])
        +
        +    self.RunAndVerify('DISABLED_*', [])
        +    self.RunAndVerifyAllowingDisabled('DISABLED_*', [
        +        'DISABLED_FoobarTest.Test1',
        +        'DISABLED_FoobarTest.DISABLED_Test2',
        +        'DISABLED_FoobarbazTest.TestA',
        +        ])
        +
        +  def testWildcardInTestCaseName(self):
        +    """Tests using wildcard in the test case name."""
        +
        +    self.RunAndVerify('*a*.*', [
        +        'BarTest.TestOne',
        +        'BarTest.TestTwo',
        +        'BarTest.TestThree',
        +
        +        'BazTest.TestOne',
        +        'BazTest.TestA',
        +        'BazTest.TestB', ] + DEATH_TESTS + PARAM_TESTS)
        +
        +  def testWildcardInTestName(self):
        +    """Tests using wildcard in the test name."""
        +
        +    self.RunAndVerify('*.*A*', ['FooTest.Abc', 'BazTest.TestA'])
        +
        +  def testFilterWithoutDot(self):
        +    """Tests a filter that has no '.' in it."""
        +
        +    self.RunAndVerify('*z*', [
        +        'FooTest.Xyz',
        +
        +        'BazTest.TestOne',
        +        'BazTest.TestA',
        +        'BazTest.TestB',
        +        ])
        +
        +  def testTwoPatterns(self):
        +    """Tests filters that consist of two patterns."""
        +
        +    self.RunAndVerify('Foo*.*:*A*', [
        +        'FooTest.Abc',
        +        'FooTest.Xyz',
        +
        +        'BazTest.TestA',
        +        ])
        +
        +    # An empty pattern + a non-empty one
        +    self.RunAndVerify(':*A*', ['FooTest.Abc', 'BazTest.TestA'])
        +
        +  def testThreePatterns(self):
        +    """Tests filters that consist of three patterns."""
        +
        +    self.RunAndVerify('*oo*:*A*:*One', [
        +        'FooTest.Abc',
        +        'FooTest.Xyz',
        +
        +        'BarTest.TestOne',
        +
        +        'BazTest.TestOne',
        +        'BazTest.TestA',
        +        ])
        +
        +    # The 2nd pattern is empty.
        +    self.RunAndVerify('*oo*::*One', [
        +        'FooTest.Abc',
        +        'FooTest.Xyz',
        +
        +        'BarTest.TestOne',
        +
        +        'BazTest.TestOne',
        +        ])
        +
        +    # The last 2 patterns are empty.
        +    self.RunAndVerify('*oo*::', [
        +        'FooTest.Abc',
        +        'FooTest.Xyz',
        +        ])
        +
        +  def testNegativeFilters(self):
        +    self.RunAndVerify('*-BazTest.TestOne', [
        +        'FooTest.Abc',
        +        'FooTest.Xyz',
        +
        +        'BarTest.TestOne',
        +        'BarTest.TestTwo',
        +        'BarTest.TestThree',
        +
        +        'BazTest.TestA',
        +        'BazTest.TestB',
        +        ] + DEATH_TESTS + PARAM_TESTS)
        +
        +    self.RunAndVerify('*-FooTest.Abc:BazTest.*', [
        +        'FooTest.Xyz',
        +
        +        'BarTest.TestOne',
        +        'BarTest.TestTwo',
        +        'BarTest.TestThree',
        +        ] + DEATH_TESTS + PARAM_TESTS)
        +
        +    self.RunAndVerify('BarTest.*-BarTest.TestOne', [
        +        'BarTest.TestTwo',
        +        'BarTest.TestThree',
        +        ])
        +
        +    # Tests without leading '*'.
        +    self.RunAndVerify('-FooTest.Abc:FooTest.Xyz:BazTest.*', [
        +        'BarTest.TestOne',
        +        'BarTest.TestTwo',
        +        'BarTest.TestThree',
        +        ] + DEATH_TESTS + PARAM_TESTS)
        +
        +    # Value parameterized tests.
        +    self.RunAndVerify('*/*', PARAM_TESTS)
        +
        +    # Value parameterized tests filtering by the sequence name.
        +    self.RunAndVerify('SeqP/*', [
        +        'SeqP/ParamTest.TestX/0',
        +        'SeqP/ParamTest.TestX/1',
        +        'SeqP/ParamTest.TestY/0',
        +        'SeqP/ParamTest.TestY/1',
        +        ])
        +
        +    # Value parameterized tests filtering by the test name.
        +    self.RunAndVerify('*/0', [
        +        'SeqP/ParamTest.TestX/0',
        +        'SeqP/ParamTest.TestY/0',
        +        'SeqQ/ParamTest.TestX/0',
        +        'SeqQ/ParamTest.TestY/0',
        +        ])
        +
        +  def testFlagOverridesEnvVar(self):
        +    """Tests that the filter flag overrides the filtering env. variable."""
        +
        +    SetEnvVar(FILTER_ENV_VAR, 'Foo*')
        +    args = ['--%s=%s' % (FILTER_FLAG, '*One')]
        +    tests_run = RunAndExtractTestList(args)[0]
        +    SetEnvVar(FILTER_ENV_VAR, None)
        +
        +    self.AssertSetEqual(tests_run, ['BarTest.TestOne', 'BazTest.TestOne'])
        +
        +  def testShardStatusFileIsCreated(self):
        +    """Tests that the shard file is created if specified in the environment."""
        +
        +    shard_status_file = os.path.join(gtest_test_utils.GetTempDir(),
        +                                     'shard_status_file')
        +    self.assert_(not os.path.exists(shard_status_file))
        +
        +    extra_env = {SHARD_STATUS_FILE_ENV_VAR: shard_status_file}
        +    try:
        +      InvokeWithModifiedEnv(extra_env, RunAndReturnOutput)
        +    finally:
        +      self.assert_(os.path.exists(shard_status_file))
        +      os.remove(shard_status_file)
        +
        +  def testShardStatusFileIsCreatedWithListTests(self):
        +    """Tests that the shard file is created with the "list_tests" flag."""
        +
        +    shard_status_file = os.path.join(gtest_test_utils.GetTempDir(),
        +                                     'shard_status_file2')
        +    self.assert_(not os.path.exists(shard_status_file))
        +
        +    extra_env = {SHARD_STATUS_FILE_ENV_VAR: shard_status_file}
        +    try:
        +      output = InvokeWithModifiedEnv(extra_env,
        +                                     RunAndReturnOutput,
        +                                     [LIST_TESTS_FLAG])
        +    finally:
        +      # This assertion ensures that Google Test enumerated the tests as
        +      # opposed to running them.
        +      self.assert_('[==========]' not in output,
        +                   'Unexpected output during test enumeration.\n'
        +                   'Please ensure that LIST_TESTS_FLAG is assigned the\n'
        +                   'correct flag value for listing Google Test tests.')
        +
        +      self.assert_(os.path.exists(shard_status_file))
        +      os.remove(shard_status_file)
        +
        +  if SUPPORTS_DEATH_TESTS:
        +    def testShardingWorksWithDeathTests(self):
        +      """Tests integration with death tests and sharding."""
        +
        +      gtest_filter = 'HasDeathTest.*:SeqP/*'
        +      expected_tests = [
        +          'HasDeathTest.Test1',
        +          'HasDeathTest.Test2',
        +
        +          'SeqP/ParamTest.TestX/0',
        +          'SeqP/ParamTest.TestX/1',
        +          'SeqP/ParamTest.TestY/0',
        +          'SeqP/ParamTest.TestY/1',
        +          ]
        +
        +      for flag in ['--gtest_death_test_style=threadsafe',
        +                   '--gtest_death_test_style=fast']:
        +        self.RunAndVerifyWithSharding(gtest_filter, 3, expected_tests,
        +                                      check_exit_0=True, args=[flag])
        +        self.RunAndVerifyWithSharding(gtest_filter, 5, expected_tests,
        +                                      check_exit_0=True, args=[flag])
        +
        +if __name__ == '__main__':
        +  gtest_test_utils.Main()
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_filter_unittest_.cc b/lib/ann/fann/lib/googletest/test/gtest_filter_unittest_.cc
        new file mode 100644
        index 0000000..77deffc
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_filter_unittest_.cc
        @@ -0,0 +1,140 @@
        +// Copyright 2005, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +// Unit test for Google Test test filters.
        +//
        +// A user can specify which test(s) in a Google Test program to run via
        +// either the GTEST_FILTER environment variable or the --gtest_filter
        +// flag.  This is used for testing such functionality.
        +//
        +// The program will be invoked from a Python unit test.  Don't run it
        +// directly.
        +
        +#include "gtest/gtest.h"
        +
        +namespace {
        +
        +// Test case FooTest.
        +
        +class FooTest : public testing::Test {
        +};
        +
        +TEST_F(FooTest, Abc) {
        +}
        +
        +TEST_F(FooTest, Xyz) {
        +  FAIL() << "Expected failure.";
        +}
        +
        +// Test case BarTest.
        +
        +TEST(BarTest, TestOne) {
        +}
        +
        +TEST(BarTest, TestTwo) {
        +}
        +
        +TEST(BarTest, TestThree) {
        +}
        +
        +TEST(BarTest, DISABLED_TestFour) {
        +  FAIL() << "Expected failure.";
        +}
        +
        +TEST(BarTest, DISABLED_TestFive) {
        +  FAIL() << "Expected failure.";
        +}
        +
        +// Test case BazTest.
        +
        +TEST(BazTest, TestOne) {
        +  FAIL() << "Expected failure.";
        +}
        +
        +TEST(BazTest, TestA) {
        +}
        +
        +TEST(BazTest, TestB) {
        +}
        +
        +TEST(BazTest, DISABLED_TestC) {
        +  FAIL() << "Expected failure.";
        +}
        +
        +// Test case HasDeathTest
        +
        +TEST(HasDeathTest, Test1) {
        +  EXPECT_DEATH_IF_SUPPORTED(exit(1), ".*");
        +}
        +
        +// We need at least two death tests to make sure that the all death tests
        +// aren't on the first shard.
        +TEST(HasDeathTest, Test2) {
        +  EXPECT_DEATH_IF_SUPPORTED(exit(1), ".*");
        +}
        +
        +// Test case FoobarTest
        +
        +TEST(DISABLED_FoobarTest, Test1) {
        +  FAIL() << "Expected failure.";
        +}
        +
        +TEST(DISABLED_FoobarTest, DISABLED_Test2) {
        +  FAIL() << "Expected failure.";
        +}
        +
        +// Test case FoobarbazTest
        +
        +TEST(DISABLED_FoobarbazTest, TestA) {
        +  FAIL() << "Expected failure.";
        +}
        +
        +#if GTEST_HAS_PARAM_TEST
        +class ParamTest : public testing::TestWithParam<int> {
        +};
        +
        +TEST_P(ParamTest, TestX) {
        +}
        +
        +TEST_P(ParamTest, TestY) {
        +}
        +
        +INSTANTIATE_TEST_CASE_P(SeqP, ParamTest, testing::Values(1, 2));
        +INSTANTIATE_TEST_CASE_P(SeqQ, ParamTest, testing::Values(5, 6));
        +#endif  // GTEST_HAS_PARAM_TEST
        +
        +}  // namespace
        +
        +int main(int argc, char **argv) {
        +  ::testing::InitGoogleTest(&argc, argv);
        +
        +  return RUN_ALL_TESTS();
        +}
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_help_test.py b/lib/ann/fann/lib/googletest/test/gtest_help_test.py
        new file mode 100755
        index 0000000..093c838
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_help_test.py
        @@ -0,0 +1,172 @@
        +#!/usr/bin/env python
        +#
        +# Copyright 2009, Google Inc.
        +# All rights reserved.
        +#
        +# Redistribution and use in source and binary forms, with or without
        +# modification, are permitted provided that the following conditions are
        +# met:
        +#
        +#     * Redistributions of source code must retain the above copyright
        +# notice, this list of conditions and the following disclaimer.
        +#     * Redistributions in binary form must reproduce the above
        +# copyright notice, this list of conditions and the following disclaimer
        +# in the documentation and/or other materials provided with the
        +# distribution.
        +#     * Neither the name of Google Inc. nor the names of its
        +# contributors may be used to endorse or promote products derived from
        +# this software without specific prior written permission.
        +#
        +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +"""Tests the --help flag of Google C++ Testing Framework.
        +
        +SYNOPSIS
        +       gtest_help_test.py --build_dir=BUILD/DIR
        +         # where BUILD/DIR contains the built gtest_help_test_ file.
        +       gtest_help_test.py
        +"""
        +
        +__author__ = 'wan@google.com (Zhanyong Wan)'
        +
        +import os
        +import re
        +import gtest_test_utils
        +
        +
        +IS_LINUX = os.name == 'posix' and os.uname()[0] == 'Linux'
        +IS_WINDOWS = os.name == 'nt'
        +
        +PROGRAM_PATH = gtest_test_utils.GetTestExecutablePath('gtest_help_test_')
        +FLAG_PREFIX = '--gtest_'
        +DEATH_TEST_STYLE_FLAG = FLAG_PREFIX + 'death_test_style'
        +STREAM_RESULT_TO_FLAG = FLAG_PREFIX + 'stream_result_to'
        +UNKNOWN_FLAG = FLAG_PREFIX + 'unknown_flag_for_testing'
        +LIST_TESTS_FLAG = FLAG_PREFIX + 'list_tests'
        +INCORRECT_FLAG_VARIANTS = [re.sub('^--', '-', LIST_TESTS_FLAG),
        +                           re.sub('^--', '/', LIST_TESTS_FLAG),
        +                           re.sub('_', '-', LIST_TESTS_FLAG)]
        +INTERNAL_FLAG_FOR_TESTING = FLAG_PREFIX + 'internal_flag_for_testing'
        +
        +SUPPORTS_DEATH_TESTS = "DeathTest" in gtest_test_utils.Subprocess(
        +    [PROGRAM_PATH, LIST_TESTS_FLAG]).output
        +
        +# The help message must match this regex.
        +HELP_REGEX = re.compile(
        +    FLAG_PREFIX + r'list_tests.*' +
        +    FLAG_PREFIX + r'filter=.*' +
        +    FLAG_PREFIX + r'also_run_disabled_tests.*' +
        +    FLAG_PREFIX + r'repeat=.*' +
        +    FLAG_PREFIX + r'shuffle.*' +
        +    FLAG_PREFIX + r'random_seed=.*' +
        +    FLAG_PREFIX + r'color=.*' +
        +    FLAG_PREFIX + r'print_time.*' +
        +    FLAG_PREFIX + r'output=.*' +
        +    FLAG_PREFIX + r'break_on_failure.*' +
        +    FLAG_PREFIX + r'throw_on_failure.*' +
        +    FLAG_PREFIX + r'catch_exceptions=0.*',
        +    re.DOTALL)
        +
        +
        +def RunWithFlag(flag):
        +  """Runs gtest_help_test_ with the given flag.
        +
        +  Returns:
        +    the exit code and the text output as a tuple.
        +  Args:
        +    flag: the command-line flag to pass to gtest_help_test_, or None.
        +  """
        +
        +  if flag is None:
        +    command = [PROGRAM_PATH]
        +  else:
        +    command = [PROGRAM_PATH, flag]
        +  child = gtest_test_utils.Subprocess(command)
        +  return child.exit_code, child.output
        +
        +
        +class GTestHelpTest(gtest_test_utils.TestCase):
        +  """Tests the --help flag and its equivalent forms."""
        +
        +  def TestHelpFlag(self, flag):
        +    """Verifies correct behavior when help flag is specified.
        +
        +    The right message must be printed and the tests must
        +    skipped when the given flag is specified.
        +
        +    Args:
        +      flag:  A flag to pass to the binary or None.
        +    """
        +
        +    exit_code, output = RunWithFlag(flag)
        +    self.assertEquals(0, exit_code)
        +    self.assert_(HELP_REGEX.search(output), output)
        +
        +    if IS_LINUX:
        +      self.assert_(STREAM_RESULT_TO_FLAG in output, output)
        +    else:
        +      self.assert_(STREAM_RESULT_TO_FLAG not in output, output)
        +
        +    if SUPPORTS_DEATH_TESTS and not IS_WINDOWS:
        +      self.assert_(DEATH_TEST_STYLE_FLAG in output, output)
        +    else:
        +      self.assert_(DEATH_TEST_STYLE_FLAG not in output, output)
        +
        +  def TestNonHelpFlag(self, flag):
        +    """Verifies correct behavior when no help flag is specified.
        +
        +    Verifies that when no help flag is specified, the tests are run
        +    and the help message is not printed.
        +
        +    Args:
        +      flag:  A flag to pass to the binary or None.
        +    """
        +
        +    exit_code, output = RunWithFlag(flag)
        +    self.assert_(exit_code != 0)
        +    self.assert_(not HELP_REGEX.search(output), output)
        +
        +  def testPrintsHelpWithFullFlag(self):
        +    self.TestHelpFlag('--help')
        +
        +  def testPrintsHelpWithShortFlag(self):
        +    self.TestHelpFlag('-h')
        +
        +  def testPrintsHelpWithQuestionFlag(self):
        +    self.TestHelpFlag('-?')
        +
        +  def testPrintsHelpWithWindowsStyleQuestionFlag(self):
        +    self.TestHelpFlag('/?')
        +
        +  def testPrintsHelpWithUnrecognizedGoogleTestFlag(self):
        +    self.TestHelpFlag(UNKNOWN_FLAG)
        +
        +  def testPrintsHelpWithIncorrectFlagStyle(self):
        +    for incorrect_flag in INCORRECT_FLAG_VARIANTS:
        +      self.TestHelpFlag(incorrect_flag)
        +
        +  def testRunsTestsWithoutHelpFlag(self):
        +    """Verifies that when no help flag is specified, the tests are run
        +    and the help message is not printed."""
        +
        +    self.TestNonHelpFlag(None)
        +
        +  def testRunsTestsWithGtestInternalFlag(self):
        +    """Verifies that the tests are run and no help message is printed when
        +    a flag starting with Google Test prefix and 'internal_' is supplied."""
        +
        +    self.TestNonHelpFlag(INTERNAL_FLAG_FOR_TESTING)
        +
        +
        +if __name__ == '__main__':
        +  gtest_test_utils.Main()
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_help_test_.cc b/lib/ann/fann/lib/googletest/test/gtest_help_test_.cc
        new file mode 100644
        index 0000000..31f78c2
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_help_test_.cc
        @@ -0,0 +1,46 @@
        +// Copyright 2009, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +// This program is meant to be run by gtest_help_test.py.  Do not run
        +// it directly.
        +
        +#include "gtest/gtest.h"
        +
        +// When a help flag is specified, this program should skip the tests
        +// and exit with 0; otherwise the following test will be executed,
        +// causing this program to exit with a non-zero code.
        +TEST(HelpFlagTest, ShouldNotBeRun) {
        +  ASSERT_TRUE(false) << "Tests shouldn't be run when --help is specified.";
        +}
        +
        +#if GTEST_HAS_DEATH_TEST
        +TEST(DeathTest, UsedByPythonScriptToDetectSupportForDeathTestsInThisBinary) {}
        +#endif
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_list_tests_unittest.py b/lib/ann/fann/lib/googletest/test/gtest_list_tests_unittest.py
        new file mode 100755
        index 0000000..925b09d
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_list_tests_unittest.py
        @@ -0,0 +1,207 @@
        +#!/usr/bin/env python
        +#
        +# Copyright 2006, Google Inc.
        +# All rights reserved.
        +#
        +# Redistribution and use in source and binary forms, with or without
        +# modification, are permitted provided that the following conditions are
        +# met:
        +#
        +#     * Redistributions of source code must retain the above copyright
        +# notice, this list of conditions and the following disclaimer.
        +#     * Redistributions in binary form must reproduce the above
        +# copyright notice, this list of conditions and the following disclaimer
        +# in the documentation and/or other materials provided with the
        +# distribution.
        +#     * Neither the name of Google Inc. nor the names of its
        +# contributors may be used to endorse or promote products derived from
        +# this software without specific prior written permission.
        +#
        +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +"""Unit test for Google Test's --gtest_list_tests flag.
        +
        +A user can ask Google Test to list all tests by specifying the
        +--gtest_list_tests flag.  This script tests such functionality
        +by invoking gtest_list_tests_unittest_ (a program written with
        +Google Test) the command line flags.
        +"""
        +
        +__author__ = 'phanna@google.com (Patrick Hanna)'
        +
        +import gtest_test_utils
        +import re
        +
        +
        +# Constants.
        +
        +# The command line flag for enabling/disabling listing all tests.
        +LIST_TESTS_FLAG = 'gtest_list_tests'
        +
        +# Path to the gtest_list_tests_unittest_ program.
        +EXE_PATH = gtest_test_utils.GetTestExecutablePath('gtest_list_tests_unittest_')
        +
        +# The expected output when running gtest_list_tests_unittest_ with
        +# --gtest_list_tests
        +EXPECTED_OUTPUT_NO_FILTER_RE = re.compile(r"""FooDeathTest\.
        +  Test1
        +Foo\.
        +  Bar1
        +  Bar2
        +  DISABLED_Bar3
        +Abc\.
        +  Xyz
        +  Def
        +FooBar\.
        +  Baz
        +FooTest\.
        +  Test1
        +  DISABLED_Test2
        +  Test3
        +TypedTest/0\.  # TypeParam = (VeryLo{245}|class VeryLo{239})\.\.\.
        +  TestA
        +  TestB
        +TypedTest/1\.  # TypeParam = int\s*\*
        +  TestA
        +  TestB
        +TypedTest/2\.  # TypeParam = .*MyArray<bool,\s*42>
        +  TestA
        +  TestB
        +My/TypeParamTest/0\.  # TypeParam = (VeryLo{245}|class VeryLo{239})\.\.\.
        +  TestA
        +  TestB
        +My/TypeParamTest/1\.  # TypeParam = int\s*\*
        +  TestA
        +  TestB
        +My/TypeParamTest/2\.  # TypeParam = .*MyArray<bool,\s*42>
        +  TestA
        +  TestB
        +MyInstantiation/ValueParamTest\.
        +  TestA/0  # GetParam\(\) = one line
        +  TestA/1  # GetParam\(\) = two\\nlines
        +  TestA/2  # GetParam\(\) = a very\\nlo{241}\.\.\.
        +  TestB/0  # GetParam\(\) = one line
        +  TestB/1  # GetParam\(\) = two\\nlines
        +  TestB/2  # GetParam\(\) = a very\\nlo{241}\.\.\.
        +""")
        +
        +# The expected output when running gtest_list_tests_unittest_ with
        +# --gtest_list_tests and --gtest_filter=Foo*.
        +EXPECTED_OUTPUT_FILTER_FOO_RE = re.compile(r"""FooDeathTest\.
        +  Test1
        +Foo\.
        +  Bar1
        +  Bar2
        +  DISABLED_Bar3
        +FooBar\.
        +  Baz
        +FooTest\.
        +  Test1
        +  DISABLED_Test2
        +  Test3
        +""")
        +
        +# Utilities.
        +
        +
        +def Run(args):
        +  """Runs gtest_list_tests_unittest_ and returns the list of tests printed."""
        +
        +  return gtest_test_utils.Subprocess([EXE_PATH] + args,
        +                                     capture_stderr=False).output
        +
        +
        +# The unit test.
        +
        +class GTestListTestsUnitTest(gtest_test_utils.TestCase):
        +  """Tests using the --gtest_list_tests flag to list all tests."""
        +
        +  def RunAndVerify(self, flag_value, expected_output_re, other_flag):
        +    """Runs gtest_list_tests_unittest_ and verifies that it prints
        +    the correct tests.
        +
        +    Args:
        +      flag_value:         value of the --gtest_list_tests flag;
        +                          None if the flag should not be present.
        +      expected_output_re: regular expression that matches the expected
        +                          output after running command;
        +      other_flag:         a different flag to be passed to command
        +                          along with gtest_list_tests;
        +                          None if the flag should not be present.
        +    """
        +
        +    if flag_value is None:
        +      flag = ''
        +      flag_expression = 'not set'
        +    elif flag_value == '0':
        +      flag = '--%s=0' % LIST_TESTS_FLAG
        +      flag_expression = '0'
        +    else:
        +      flag = '--%s' % LIST_TESTS_FLAG
        +      flag_expression = '1'
        +
        +    args = [flag]
        +
        +    if other_flag is not None:
        +      args += [other_flag]
        +
        +    output = Run(args)
        +
        +    if expected_output_re:
        +      self.assert_(
        +          expected_output_re.match(output),
        +          ('when %s is %s, the output of "%s" is "%s",\n'
        +           'which does not match regex "%s"' %
        +           (LIST_TESTS_FLAG, flag_expression, ' '.join(args), output,
        +            expected_output_re.pattern)))
        +    else:
        +      self.assert_(
        +          not EXPECTED_OUTPUT_NO_FILTER_RE.match(output),
        +          ('when %s is %s, the output of "%s" is "%s"'%
        +           (LIST_TESTS_FLAG, flag_expression, ' '.join(args), output)))
        +
        +  def testDefaultBehavior(self):
        +    """Tests the behavior of the default mode."""
        +
        +    self.RunAndVerify(flag_value=None,
        +                      expected_output_re=None,
        +                      other_flag=None)
        +
        +  def testFlag(self):
        +    """Tests using the --gtest_list_tests flag."""
        +
        +    self.RunAndVerify(flag_value='0',
        +                      expected_output_re=None,
        +                      other_flag=None)
        +    self.RunAndVerify(flag_value='1',
        +                      expected_output_re=EXPECTED_OUTPUT_NO_FILTER_RE,
        +                      other_flag=None)
        +
        +  def testOverrideNonFilterFlags(self):
        +    """Tests that --gtest_list_tests overrides the non-filter flags."""
        +
        +    self.RunAndVerify(flag_value='1',
        +                      expected_output_re=EXPECTED_OUTPUT_NO_FILTER_RE,
        +                      other_flag='--gtest_break_on_failure')
        +
        +  def testWithFilterFlags(self):
        +    """Tests that --gtest_list_tests takes into account the
        +    --gtest_filter flag."""
        +
        +    self.RunAndVerify(flag_value='1',
        +                      expected_output_re=EXPECTED_OUTPUT_FILTER_FOO_RE,
        +                      other_flag='--gtest_filter=Foo*')
        +
        +
        +if __name__ == '__main__':
        +  gtest_test_utils.Main()
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_list_tests_unittest_.cc b/lib/ann/fann/lib/googletest/test/gtest_list_tests_unittest_.cc
        new file mode 100644
        index 0000000..907c176
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_list_tests_unittest_.cc
        @@ -0,0 +1,157 @@
        +// Copyright 2006, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: phanna@google.com (Patrick Hanna)
        +
        +// Unit test for Google Test's --gtest_list_tests flag.
        +//
        +// A user can ask Google Test to list all tests that will run
        +// so that when using a filter, a user will know what
        +// tests to look for. The tests will not be run after listing.
        +//
        +// This program will be invoked from a Python unit test.
        +// Don't run it directly.
        +
        +#include "gtest/gtest.h"
        +
        +// Several different test cases and tests that will be listed.
        +TEST(Foo, Bar1) {
        +}
        +
        +TEST(Foo, Bar2) {
        +}
        +
        +TEST(Foo, DISABLED_Bar3) {
        +}
        +
        +TEST(Abc, Xyz) {
        +}
        +
        +TEST(Abc, Def) {
        +}
        +
        +TEST(FooBar, Baz) {
        +}
        +
        +class FooTest : public testing::Test {
        +};
        +
        +TEST_F(FooTest, Test1) {
        +}
        +
        +TEST_F(FooTest, DISABLED_Test2) {
        +}
        +
        +TEST_F(FooTest, Test3) {
        +}
        +
        +TEST(FooDeathTest, Test1) {
        +}
        +
        +// A group of value-parameterized tests.
        +
        +class MyType {
        + public:
        +  explicit MyType(const std::string& a_value) : value_(a_value) {}
        +
        +  const std::string& value() const { return value_; }
        +
        + private:
        +  std::string value_;
        +};
        +
        +// Teaches Google Test how to print a MyType.
        +void PrintTo(const MyType& x, std::ostream* os) {
        +  *os << x.value();
        +}
        +
        +class ValueParamTest : public testing::TestWithParam<MyType> {
        +};
        +
        +TEST_P(ValueParamTest, TestA) {
        +}
        +
        +TEST_P(ValueParamTest, TestB) {
        +}
        +
        +INSTANTIATE_TEST_CASE_P(
        +    MyInstantiation, ValueParamTest,
        +    testing::Values(MyType("one line"),
        +                    MyType("two\nlines"),
        +                    MyType("a very\nloooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong line")));  // NOLINT
        +
        +// A group of typed tests.
        +
        +// A deliberately long type name for testing the line-truncating
        +// behavior when printing a type parameter.
        +class VeryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooogName {  // NOLINT
        +};
        +
        +template <typename T>
        +class TypedTest : public testing::Test {
        +};
        +
        +template <typename T, int kSize>
        +class MyArray {
        +};
        +
        +typedef testing::Types<VeryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooogName,  // NOLINT
        +                       int*, MyArray<bool, 42> > MyTypes;
        +
        +TYPED_TEST_CASE(TypedTest, MyTypes);
        +
        +TYPED_TEST(TypedTest, TestA) {
        +}
        +
        +TYPED_TEST(TypedTest, TestB) {
        +}
        +
        +// A group of type-parameterized tests.
        +
        +template <typename T>
        +class TypeParamTest : public testing::Test {
        +};
        +
        +TYPED_TEST_CASE_P(TypeParamTest);
        +
        +TYPED_TEST_P(TypeParamTest, TestA) {
        +}
        +
        +TYPED_TEST_P(TypeParamTest, TestB) {
        +}
        +
        +REGISTER_TYPED_TEST_CASE_P(TypeParamTest, TestA, TestB);
        +
        +INSTANTIATE_TYPED_TEST_CASE_P(My, TypeParamTest, MyTypes);
        +
        +int main(int argc, char **argv) {
        +  ::testing::InitGoogleTest(&argc, argv);
        +
        +  return RUN_ALL_TESTS();
        +}
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_main_unittest.cc b/lib/ann/fann/lib/googletest/test/gtest_main_unittest.cc
        new file mode 100644
        index 0000000..ecd9bb8
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_main_unittest.cc
        @@ -0,0 +1,45 @@
        +// Copyright 2006, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +#include "gtest/gtest.h"
        +
        +// Tests that we don't have to define main() when we link to
        +// gtest_main instead of gtest.
        +
        +namespace {
        +
        +TEST(GTestMainTest, ShouldSucceed) {
        +}
        +
        +}  // namespace
        +
        +// We are using the main() function defined in src/gtest_main.cc, so
        +// we don't define it here.
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_no_test_unittest.cc b/lib/ann/fann/lib/googletest/test/gtest_no_test_unittest.cc
        new file mode 100644
        index 0000000..292599a
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_no_test_unittest.cc
        @@ -0,0 +1,56 @@
        +// Copyright 2006, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +// Tests that a Google Test program that has no test defined can run
        +// successfully.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +#include "gtest/gtest.h"
        +
        +int main(int argc, char **argv) {
        +  testing::InitGoogleTest(&argc, argv);
        +
        +  // An ad-hoc assertion outside of all tests.
        +  //
        +  // This serves three purposes:
        +  //
        +  // 1. It verifies that an ad-hoc assertion can be executed even if
        +  //    no test is defined.
        +  // 2. It verifies that a failed ad-hoc assertion causes the test
        +  //    program to fail.
        +  // 3. We had a bug where the XML output won't be generated if an
        +  //    assertion is executed before RUN_ALL_TESTS() is called, even
        +  //    though --gtest_output=xml is specified.  This makes sure the
        +  //    bug is fixed and doesn't regress.
        +  EXPECT_EQ(1, 2);
        +
        +  // The above EXPECT_EQ() should cause RUN_ALL_TESTS() to return non-zero.
        +  return RUN_ALL_TESTS() ? 0 : 1;
        +}
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_output_test.py b/lib/ann/fann/lib/googletest/test/gtest_output_test.py
        new file mode 100755
        index 0000000..d5c637b
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_output_test.py
        @@ -0,0 +1,340 @@
        +#!/usr/bin/env python
        +#
        +# Copyright 2008, Google Inc.
        +# All rights reserved.
        +#
        +# Redistribution and use in source and binary forms, with or without
        +# modification, are permitted provided that the following conditions are
        +# met:
        +#
        +#     * Redistributions of source code must retain the above copyright
        +# notice, this list of conditions and the following disclaimer.
        +#     * Redistributions in binary form must reproduce the above
        +# copyright notice, this list of conditions and the following disclaimer
        +# in the documentation and/or other materials provided with the
        +# distribution.
        +#     * Neither the name of Google Inc. nor the names of its
        +# contributors may be used to endorse or promote products derived from
        +# this software without specific prior written permission.
        +#
        +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +"""Tests the text output of Google C++ Testing Framework.
        +
        +SYNOPSIS
        +       gtest_output_test.py --build_dir=BUILD/DIR --gengolden
        +         # where BUILD/DIR contains the built gtest_output_test_ file.
        +       gtest_output_test.py --gengolden
        +       gtest_output_test.py
        +"""
        +
        +__author__ = 'wan@google.com (Zhanyong Wan)'
        +
        +import difflib
        +import os
        +import re
        +import sys
        +import gtest_test_utils
        +
        +
        +# The flag for generating the golden file
        +GENGOLDEN_FLAG = '--gengolden'
        +CATCH_EXCEPTIONS_ENV_VAR_NAME = 'GTEST_CATCH_EXCEPTIONS'
        +
        +IS_WINDOWS = os.name == 'nt'
        +
        +# TODO(vladl@google.com): remove the _lin suffix.
        +GOLDEN_NAME = 'gtest_output_test_golden_lin.txt'
        +
        +PROGRAM_PATH = gtest_test_utils.GetTestExecutablePath('gtest_output_test_')
        +
        +# At least one command we exercise must not have the
        +# 'internal_skip_environment_and_ad_hoc_tests' argument.
        +COMMAND_LIST_TESTS = ({}, [PROGRAM_PATH, '--gtest_list_tests'])
        +COMMAND_WITH_COLOR = ({}, [PROGRAM_PATH, '--gtest_color=yes'])
        +COMMAND_WITH_TIME = ({}, [PROGRAM_PATH,
        +                          '--gtest_print_time',
        +                          'internal_skip_environment_and_ad_hoc_tests',
        +                          '--gtest_filter=FatalFailureTest.*:LoggingTest.*'])
        +COMMAND_WITH_DISABLED = (
        +    {}, [PROGRAM_PATH,
        +         '--gtest_also_run_disabled_tests',
        +         'internal_skip_environment_and_ad_hoc_tests',
        +         '--gtest_filter=*DISABLED_*'])
        +COMMAND_WITH_SHARDING = (
        +    {'GTEST_SHARD_INDEX': '1', 'GTEST_TOTAL_SHARDS': '2'},
        +    [PROGRAM_PATH,
        +     'internal_skip_environment_and_ad_hoc_tests',
        +     '--gtest_filter=PassingTest.*'])
        +
        +GOLDEN_PATH = os.path.join(gtest_test_utils.GetSourceDir(), GOLDEN_NAME)
        +
        +
        +def ToUnixLineEnding(s):
        +  """Changes all Windows/Mac line endings in s to UNIX line endings."""
        +
        +  return s.replace('\r\n', '\n').replace('\r', '\n')
        +
        +
        +def RemoveLocations(test_output):
        +  """Removes all file location info from a Google Test program's output.
        +
        +  Args:
        +       test_output:  the output of a Google Test program.
        +
        +  Returns:
        +       output with all file location info (in the form of
        +       'DIRECTORY/FILE_NAME:LINE_NUMBER: 'or
        +       'DIRECTORY\\FILE_NAME(LINE_NUMBER): ') replaced by
        +       'FILE_NAME:#: '.
        +  """
        +
        +  return re.sub(r'.*[/\\](.+)(\:\d+|\(\d+\))\: ', r'\1:#: ', test_output)
        +
        +
        +def RemoveStackTraceDetails(output):
        +  """Removes all stack traces from a Google Test program's output."""
        +
        +  # *? means "find the shortest string that matches".
        +  return re.sub(r'Stack trace:(.|\n)*?\n\n',
        +                'Stack trace: (omitted)\n\n', output)
        +
        +
        +def RemoveStackTraces(output):
        +  """Removes all traces of stack traces from a Google Test program's output."""
        +
        +  # *? means "find the shortest string that matches".
        +  return re.sub(r'Stack trace:(.|\n)*?\n\n', '', output)
        +
        +
        +def RemoveTime(output):
        +  """Removes all time information from a Google Test program's output."""
        +
        +  return re.sub(r'\(\d+ ms', '(? ms', output)
        +
        +
        +def RemoveTypeInfoDetails(test_output):
        +  """Removes compiler-specific type info from Google Test program's output.
        +
        +  Args:
        +       test_output:  the output of a Google Test program.
        +
        +  Returns:
        +       output with type information normalized to canonical form.
        +  """
        +
        +  # some compilers output the name of type 'unsigned int' as 'unsigned'
        +  return re.sub(r'unsigned int', 'unsigned', test_output)
        +
        +
        +def NormalizeToCurrentPlatform(test_output):
        +  """Normalizes platform specific output details for easier comparison."""
        +
        +  if IS_WINDOWS:
        +    # Removes the color information that is not present on Windows.
        +    test_output = re.sub('\x1b\\[(0;3\d)?m', '', test_output)
        +    # Changes failure message headers into the Windows format.
        +    test_output = re.sub(r': Failure\n', r': error: ', test_output)
        +    # Changes file(line_number) to file:line_number.
        +    test_output = re.sub(r'((\w|\.)+)\((\d+)\):', r'\1:\3:', test_output)
        +
        +  return test_output
        +
        +
        +def RemoveTestCounts(output):
        +  """Removes test counts from a Google Test program's output."""
        +
        +  output = re.sub(r'\d+ tests?, listed below',
        +                  '? tests, listed below', output)
        +  output = re.sub(r'\d+ FAILED TESTS',
        +                  '? FAILED TESTS', output)
        +  output = re.sub(r'\d+ tests? from \d+ test cases?',
        +                  '? tests from ? test cases', output)
        +  output = re.sub(r'\d+ tests? from ([a-zA-Z_])',
        +                  r'? tests from \1', output)
        +  return re.sub(r'\d+ tests?\.', '? tests.', output)
        +
        +
        +def RemoveMatchingTests(test_output, pattern):
        +  """Removes output of specified tests from a Google Test program's output.
        +
        +  This function strips not only the beginning and the end of a test but also
        +  all output in between.
        +
        +  Args:
        +    test_output:       A string containing the test output.
        +    pattern:           A regex string that matches names of test cases or
        +                       tests to remove.
        +
        +  Returns:
        +    Contents of test_output with tests whose names match pattern removed.
        +  """
        +
        +  test_output = re.sub(
        +      r'.*\[ RUN      \] .*%s(.|\n)*?\[(  FAILED  |       OK )\] .*%s.*\n' % (
        +          pattern, pattern),
        +      '',
        +      test_output)
        +  return re.sub(r'.*%s.*\n' % pattern, '', test_output)
        +
        +
        +def NormalizeOutput(output):
        +  """Normalizes output (the output of gtest_output_test_.exe)."""
        +
        +  output = ToUnixLineEnding(output)
        +  output = RemoveLocations(output)
        +  output = RemoveStackTraceDetails(output)
        +  output = RemoveTime(output)
        +  return output
        +
        +
        +def GetShellCommandOutput(env_cmd):
        +  """Runs a command in a sub-process, and returns its output in a string.
        +
        +  Args:
        +    env_cmd: The shell command. A 2-tuple where element 0 is a dict of extra
        +             environment variables to set, and element 1 is a string with
        +             the command and any flags.
        +
        +  Returns:
        +    A string with the command's combined standard and diagnostic output.
        +  """
        +
        +  # Spawns cmd in a sub-process, and gets its standard I/O file objects.
        +  # Set and save the environment properly.
        +  environ = os.environ.copy()
        +  environ.update(env_cmd[0])
        +  p = gtest_test_utils.Subprocess(env_cmd[1], env=environ)
        +
        +  return p.output
        +
        +
        +def GetCommandOutput(env_cmd):
        +  """Runs a command and returns its output with all file location
        +  info stripped off.
        +
        +  Args:
        +    env_cmd:  The shell command. A 2-tuple where element 0 is a dict of extra
        +              environment variables to set, and element 1 is a string with
        +              the command and any flags.
        +  """
        +
        +  # Disables exception pop-ups on Windows.
        +  environ, cmdline = env_cmd
        +  environ = dict(environ)  # Ensures we are modifying a copy.
        +  environ[CATCH_EXCEPTIONS_ENV_VAR_NAME] = '1'
        +  return NormalizeOutput(GetShellCommandOutput((environ, cmdline)))
        +
        +
        +def GetOutputOfAllCommands():
        +  """Returns concatenated output from several representative commands."""
        +
        +  return (GetCommandOutput(COMMAND_WITH_COLOR) +
        +          GetCommandOutput(COMMAND_WITH_TIME) +
        +          GetCommandOutput(COMMAND_WITH_DISABLED) +
        +          GetCommandOutput(COMMAND_WITH_SHARDING))
        +
        +
        +test_list = GetShellCommandOutput(COMMAND_LIST_TESTS)
        +SUPPORTS_DEATH_TESTS = 'DeathTest' in test_list
        +SUPPORTS_TYPED_TESTS = 'TypedTest' in test_list
        +SUPPORTS_THREADS = 'ExpectFailureWithThreadsTest' in test_list
        +SUPPORTS_STACK_TRACES = False
        +
        +CAN_GENERATE_GOLDEN_FILE = (SUPPORTS_DEATH_TESTS and
        +                            SUPPORTS_TYPED_TESTS and
        +                            SUPPORTS_THREADS and
        +                            not IS_WINDOWS)
        +
        +class GTestOutputTest(gtest_test_utils.TestCase):
        +  def RemoveUnsupportedTests(self, test_output):
        +    if not SUPPORTS_DEATH_TESTS:
        +      test_output = RemoveMatchingTests(test_output, 'DeathTest')
        +    if not SUPPORTS_TYPED_TESTS:
        +      test_output = RemoveMatchingTests(test_output, 'TypedTest')
        +      test_output = RemoveMatchingTests(test_output, 'TypedDeathTest')
        +      test_output = RemoveMatchingTests(test_output, 'TypeParamDeathTest')
        +    if not SUPPORTS_THREADS:
        +      test_output = RemoveMatchingTests(test_output,
        +                                        'ExpectFailureWithThreadsTest')
        +      test_output = RemoveMatchingTests(test_output,
        +                                        'ScopedFakeTestPartResultReporterTest')
        +      test_output = RemoveMatchingTests(test_output,
        +                                        'WorksConcurrently')
        +    if not SUPPORTS_STACK_TRACES:
        +      test_output = RemoveStackTraces(test_output)
        +
        +    return test_output
        +
        +  def testOutput(self):
        +    output = GetOutputOfAllCommands()
        +
        +    golden_file = open(GOLDEN_PATH, 'rb')
        +    # A mis-configured source control system can cause \r appear in EOL
        +    # sequences when we read the golden file irrespective of an operating
        +    # system used. Therefore, we need to strip those \r's from newlines
        +    # unconditionally.
        +    golden = ToUnixLineEnding(golden_file.read())
        +    golden_file.close()
        +
        +    # We want the test to pass regardless of certain features being
        +    # supported or not.
        +
        +    # We still have to remove type name specifics in all cases.
        +    normalized_actual = RemoveTypeInfoDetails(output)
        +    normalized_golden = RemoveTypeInfoDetails(golden)
        +
        +    if CAN_GENERATE_GOLDEN_FILE:
        +      self.assertEqual(normalized_golden, normalized_actual,
        +                       '\n'.join(difflib.unified_diff(
        +                           normalized_golden.split('\n'),
        +                           normalized_actual.split('\n'),
        +                           'golden', 'actual')))
        +    else:
        +      normalized_actual = NormalizeToCurrentPlatform(
        +          RemoveTestCounts(normalized_actual))
        +      normalized_golden = NormalizeToCurrentPlatform(
        +          RemoveTestCounts(self.RemoveUnsupportedTests(normalized_golden)))
        +
        +      # This code is very handy when debugging golden file differences:
        +      if os.getenv('DEBUG_GTEST_OUTPUT_TEST'):
        +        open(os.path.join(
        +            gtest_test_utils.GetSourceDir(),
        +            '_gtest_output_test_normalized_actual.txt'), 'wb').write(
        +                normalized_actual)
        +        open(os.path.join(
        +            gtest_test_utils.GetSourceDir(),
        +            '_gtest_output_test_normalized_golden.txt'), 'wb').write(
        +                normalized_golden)
        +
        +      self.assertEqual(normalized_golden, normalized_actual)
        +
        +
        +if __name__ == '__main__':
        +  if sys.argv[1:] == [GENGOLDEN_FLAG]:
        +    if CAN_GENERATE_GOLDEN_FILE:
        +      output = GetOutputOfAllCommands()
        +      golden_file = open(GOLDEN_PATH, 'wb')
        +      golden_file.write(output)
        +      golden_file.close()
        +    else:
        +      message = (
        +          """Unable to write a golden file when compiled in an environment
        +that does not support all the required features (death tests, typed tests,
        +and multiple threads).  Please generate the golden file using a binary built
        +with those features enabled.""")
        +
        +      sys.stderr.write(message)
        +      sys.exit(1)
        +  else:
        +    gtest_test_utils.Main()
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_output_test_.cc b/lib/ann/fann/lib/googletest/test/gtest_output_test_.cc
        new file mode 100644
        index 0000000..1070a9f
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_output_test_.cc
        @@ -0,0 +1,1062 @@
        +// Copyright 2005, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// The purpose of this file is to generate Google Test output under
        +// various conditions.  The output will then be verified by
        +// gtest_output_test.py to ensure that Google Test generates the
        +// desired messages.  Therefore, most tests in this file are MEANT TO
        +// FAIL.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +#include "gtest/gtest-spi.h"
        +#include "gtest/gtest.h"
        +
        +// Indicates that this translation unit is part of Google Test's
        +// implementation.  It must come before gtest-internal-inl.h is
        +// included, or there will be a compiler error.  This trick is to
        +// prevent a user from accidentally including gtest-internal-inl.h in
        +// his code.
        +#define GTEST_IMPLEMENTATION_ 1
        +#include "src/gtest-internal-inl.h"
        +#undef GTEST_IMPLEMENTATION_
        +
        +#include <stdlib.h>
        +
        +#if GTEST_IS_THREADSAFE
        +using testing::ScopedFakeTestPartResultReporter;
        +using testing::TestPartResultArray;
        +
        +using testing::internal::Notification;
        +using testing::internal::ThreadWithParam;
        +#endif
        +
        +namespace posix = ::testing::internal::posix;
        +
        +// Tests catching fatal failures.
        +
        +// A subroutine used by the following test.
        +void TestEq1(int x) {
        +  ASSERT_EQ(1, x);
        +}
        +
        +// This function calls a test subroutine, catches the fatal failure it
        +// generates, and then returns early.
        +void TryTestSubroutine() {
        +  // Calls a subrountine that yields a fatal failure.
        +  TestEq1(2);
        +
        +  // Catches the fatal failure and aborts the test.
        +  //
        +  // The testing::Test:: prefix is necessary when calling
        +  // HasFatalFailure() outside of a TEST, TEST_F, or test fixture.
        +  if (testing::Test::HasFatalFailure()) return;
        +
        +  // If we get here, something is wrong.
        +  FAIL() << "This should never be reached.";
        +}
        +
        +TEST(PassingTest, PassingTest1) {
        +}
        +
        +TEST(PassingTest, PassingTest2) {
        +}
        +
        +// Tests that parameters of failing parameterized tests are printed in the
        +// failing test summary.
        +class FailingParamTest : public testing::TestWithParam<int> {};
        +
        +TEST_P(FailingParamTest, Fails) {
        +  EXPECT_EQ(1, GetParam());
        +}
        +
        +// This generates a test which will fail. Google Test is expected to print
        +// its parameter when it outputs the list of all failed tests.
        +INSTANTIATE_TEST_CASE_P(PrintingFailingParams,
        +                        FailingParamTest,
        +                        testing::Values(2));
        +
        +static const char kGoldenString[] = "\"Line\0 1\"\nLine 2";
        +
        +TEST(NonfatalFailureTest, EscapesStringOperands) {
        +  std::string actual = "actual \"string\"";
        +  EXPECT_EQ(kGoldenString, actual);
        +
        +  const char* golden = kGoldenString;
        +  EXPECT_EQ(golden, actual);
        +}
        +
        +TEST(NonfatalFailureTest, DiffForLongStrings) {
        +  std::string golden_str(kGoldenString, sizeof(kGoldenString) - 1);
        +  EXPECT_EQ(golden_str, "Line 2");
        +}
        +
        +// Tests catching a fatal failure in a subroutine.
        +TEST(FatalFailureTest, FatalFailureInSubroutine) {
        +  printf("(expecting a failure that x should be 1)\n");
        +
        +  TryTestSubroutine();
        +}
        +
        +// Tests catching a fatal failure in a nested subroutine.
        +TEST(FatalFailureTest, FatalFailureInNestedSubroutine) {
        +  printf("(expecting a failure that x should be 1)\n");
        +
        +  // Calls a subrountine that yields a fatal failure.
        +  TryTestSubroutine();
        +
        +  // Catches the fatal failure and aborts the test.
        +  //
        +  // When calling HasFatalFailure() inside a TEST, TEST_F, or test
        +  // fixture, the testing::Test:: prefix is not needed.
        +  if (HasFatalFailure()) return;
        +
        +  // If we get here, something is wrong.
        +  FAIL() << "This should never be reached.";
        +}
        +
        +// Tests HasFatalFailure() after a failed EXPECT check.
        +TEST(FatalFailureTest, NonfatalFailureInSubroutine) {
        +  printf("(expecting a failure on false)\n");
        +  EXPECT_TRUE(false);  // Generates a nonfatal failure
        +  ASSERT_FALSE(HasFatalFailure());  // This should succeed.
        +}
        +
        +// Tests interleaving user logging and Google Test assertions.
        +TEST(LoggingTest, InterleavingLoggingAndAssertions) {
        +  static const int a[4] = {
        +    3, 9, 2, 6
        +  };
        +
        +  printf("(expecting 2 failures on (3) >= (a[i]))\n");
        +  for (int i = 0; i < static_cast<int>(sizeof(a)/sizeof(*a)); i++) {
        +    printf("i == %d\n", i);
        +    EXPECT_GE(3, a[i]);
        +  }
        +}
        +
        +// Tests the SCOPED_TRACE macro.
        +
        +// A helper function for testing SCOPED_TRACE.
        +void SubWithoutTrace(int n) {
        +  EXPECT_EQ(1, n);
        +  ASSERT_EQ(2, n);
        +}
        +
        +// Another helper function for testing SCOPED_TRACE.
        +void SubWithTrace(int n) {
        +  SCOPED_TRACE(testing::Message() << "n = " << n);
        +
        +  SubWithoutTrace(n);
        +}
        +
        +// Tests that SCOPED_TRACE() obeys lexical scopes.
        +TEST(SCOPED_TRACETest, ObeysScopes) {
        +  printf("(expected to fail)\n");
        +
        +  // There should be no trace before SCOPED_TRACE() is invoked.
        +  ADD_FAILURE() << "This failure is expected, and shouldn't have a trace.";
        +
        +  {
        +    SCOPED_TRACE("Expected trace");
        +    // After SCOPED_TRACE(), a failure in the current scope should contain
        +    // the trace.
        +    ADD_FAILURE() << "This failure is expected, and should have a trace.";
        +  }
        +
        +  // Once the control leaves the scope of the SCOPED_TRACE(), there
        +  // should be no trace again.
        +  ADD_FAILURE() << "This failure is expected, and shouldn't have a trace.";
        +}
        +
        +// Tests that SCOPED_TRACE works inside a loop.
        +TEST(SCOPED_TRACETest, WorksInLoop) {
        +  printf("(expected to fail)\n");
        +
        +  for (int i = 1; i <= 2; i++) {
        +    SCOPED_TRACE(testing::Message() << "i = " << i);
        +
        +    SubWithoutTrace(i);
        +  }
        +}
        +
        +// Tests that SCOPED_TRACE works in a subroutine.
        +TEST(SCOPED_TRACETest, WorksInSubroutine) {
        +  printf("(expected to fail)\n");
        +
        +  SubWithTrace(1);
        +  SubWithTrace(2);
        +}
        +
        +// Tests that SCOPED_TRACE can be nested.
        +TEST(SCOPED_TRACETest, CanBeNested) {
        +  printf("(expected to fail)\n");
        +
        +  SCOPED_TRACE("");  // A trace without a message.
        +
        +  SubWithTrace(2);
        +}
        +
        +// Tests that multiple SCOPED_TRACEs can be used in the same scope.
        +TEST(SCOPED_TRACETest, CanBeRepeated) {
        +  printf("(expected to fail)\n");
        +
        +  SCOPED_TRACE("A");
        +  ADD_FAILURE()
        +      << "This failure is expected, and should contain trace point A.";
        +
        +  SCOPED_TRACE("B");
        +  ADD_FAILURE()
        +      << "This failure is expected, and should contain trace point A and B.";
        +
        +  {
        +    SCOPED_TRACE("C");
        +    ADD_FAILURE() << "This failure is expected, and should "
        +                  << "contain trace point A, B, and C.";
        +  }
        +
        +  SCOPED_TRACE("D");
        +  ADD_FAILURE() << "This failure is expected, and should "
        +                << "contain trace point A, B, and D.";
        +}
        +
        +#if GTEST_IS_THREADSAFE
        +// Tests that SCOPED_TRACE()s can be used concurrently from multiple
        +// threads.  Namely, an assertion should be affected by
        +// SCOPED_TRACE()s in its own thread only.
        +
        +// Here's the sequence of actions that happen in the test:
        +//
        +//   Thread A (main)                | Thread B (spawned)
        +//   ===============================|================================
        +//   spawns thread B                |
        +//   -------------------------------+--------------------------------
        +//   waits for n1                   | SCOPED_TRACE("Trace B");
        +//                                  | generates failure #1
        +//                                  | notifies n1
        +//   -------------------------------+--------------------------------
        +//   SCOPED_TRACE("Trace A");       | waits for n2
        +//   generates failure #2           |
        +//   notifies n2                    |
        +//   -------------------------------|--------------------------------
        +//   waits for n3                   | generates failure #3
        +//                                  | trace B dies
        +//                                  | generates failure #4
        +//                                  | notifies n3
        +//   -------------------------------|--------------------------------
        +//   generates failure #5           | finishes
        +//   trace A dies                   |
        +//   generates failure #6           |
        +//   -------------------------------|--------------------------------
        +//   waits for thread B to finish   |
        +
        +struct CheckPoints {
        +  Notification n1;
        +  Notification n2;
        +  Notification n3;
        +};
        +
        +static void ThreadWithScopedTrace(CheckPoints* check_points) {
        +  {
        +    SCOPED_TRACE("Trace B");
        +    ADD_FAILURE()
        +        << "Expected failure #1 (in thread B, only trace B alive).";
        +    check_points->n1.Notify();
        +    check_points->n2.WaitForNotification();
        +
        +    ADD_FAILURE()
        +        << "Expected failure #3 (in thread B, trace A & B both alive).";
        +  }  // Trace B dies here.
        +  ADD_FAILURE()
        +      << "Expected failure #4 (in thread B, only trace A alive).";
        +  check_points->n3.Notify();
        +}
        +
        +TEST(SCOPED_TRACETest, WorksConcurrently) {
        +  printf("(expecting 6 failures)\n");
        +
        +  CheckPoints check_points;
        +  ThreadWithParam<CheckPoints*> thread(&ThreadWithScopedTrace,
        +                                       &check_points,
        +                                       NULL);
        +  check_points.n1.WaitForNotification();
        +
        +  {
        +    SCOPED_TRACE("Trace A");
        +    ADD_FAILURE()
        +        << "Expected failure #2 (in thread A, trace A & B both alive).";
        +    check_points.n2.Notify();
        +    check_points.n3.WaitForNotification();
        +
        +    ADD_FAILURE()
        +        << "Expected failure #5 (in thread A, only trace A alive).";
        +  }  // Trace A dies here.
        +  ADD_FAILURE()
        +      << "Expected failure #6 (in thread A, no trace alive).";
        +  thread.Join();
        +}
        +#endif  // GTEST_IS_THREADSAFE
        +
        +TEST(DisabledTestsWarningTest,
        +     DISABLED_AlsoRunDisabledTestsFlagSuppressesWarning) {
        +  // This test body is intentionally empty.  Its sole purpose is for
        +  // verifying that the --gtest_also_run_disabled_tests flag
        +  // suppresses the "YOU HAVE 12 DISABLED TESTS" warning at the end of
        +  // the test output.
        +}
        +
        +// Tests using assertions outside of TEST and TEST_F.
        +//
        +// This function creates two failures intentionally.
        +void AdHocTest() {
        +  printf("The non-test part of the code is expected to have 2 failures.\n\n");
        +  EXPECT_TRUE(false);
        +  EXPECT_EQ(2, 3);
        +}
        +
        +// Runs all TESTs, all TEST_Fs, and the ad hoc test.
        +int RunAllTests() {
        +  AdHocTest();
        +  return RUN_ALL_TESTS();
        +}
        +
        +// Tests non-fatal failures in the fixture constructor.
        +class NonFatalFailureInFixtureConstructorTest : public testing::Test {
        + protected:
        +  NonFatalFailureInFixtureConstructorTest() {
        +    printf("(expecting 5 failures)\n");
        +    ADD_FAILURE() << "Expected failure #1, in the test fixture c'tor.";
        +  }
        +
        +  ~NonFatalFailureInFixtureConstructorTest() {
        +    ADD_FAILURE() << "Expected failure #5, in the test fixture d'tor.";
        +  }
        +
        +  virtual void SetUp() {
        +    ADD_FAILURE() << "Expected failure #2, in SetUp().";
        +  }
        +
        +  virtual void TearDown() {
        +    ADD_FAILURE() << "Expected failure #4, in TearDown.";
        +  }
        +};
        +
        +TEST_F(NonFatalFailureInFixtureConstructorTest, FailureInConstructor) {
        +  ADD_FAILURE() << "Expected failure #3, in the test body.";
        +}
        +
        +// Tests fatal failures in the fixture constructor.
        +class FatalFailureInFixtureConstructorTest : public testing::Test {
        + protected:
        +  FatalFailureInFixtureConstructorTest() {
        +    printf("(expecting 2 failures)\n");
        +    Init();
        +  }
        +
        +  ~FatalFailureInFixtureConstructorTest() {
        +    ADD_FAILURE() << "Expected failure #2, in the test fixture d'tor.";
        +  }
        +
        +  virtual void SetUp() {
        +    ADD_FAILURE() << "UNEXPECTED failure in SetUp().  "
        +                  << "We should never get here, as the test fixture c'tor "
        +                  << "had a fatal failure.";
        +  }
        +
        +  virtual void TearDown() {
        +    ADD_FAILURE() << "UNEXPECTED failure in TearDown().  "
        +                  << "We should never get here, as the test fixture c'tor "
        +                  << "had a fatal failure.";
        +  }
        +
        + private:
        +  void Init() {
        +    FAIL() << "Expected failure #1, in the test fixture c'tor.";
        +  }
        +};
        +
        +TEST_F(FatalFailureInFixtureConstructorTest, FailureInConstructor) {
        +  ADD_FAILURE() << "UNEXPECTED failure in the test body.  "
        +                << "We should never get here, as the test fixture c'tor "
        +                << "had a fatal failure.";
        +}
        +
        +// Tests non-fatal failures in SetUp().
        +class NonFatalFailureInSetUpTest : public testing::Test {
        + protected:
        +  virtual ~NonFatalFailureInSetUpTest() {
        +    Deinit();
        +  }
        +
        +  virtual void SetUp() {
        +    printf("(expecting 4 failures)\n");
        +    ADD_FAILURE() << "Expected failure #1, in SetUp().";
        +  }
        +
        +  virtual void TearDown() {
        +    FAIL() << "Expected failure #3, in TearDown().";
        +  }
        + private:
        +  void Deinit() {
        +    FAIL() << "Expected failure #4, in the test fixture d'tor.";
        +  }
        +};
        +
        +TEST_F(NonFatalFailureInSetUpTest, FailureInSetUp) {
        +  FAIL() << "Expected failure #2, in the test function.";
        +}
        +
        +// Tests fatal failures in SetUp().
        +class FatalFailureInSetUpTest : public testing::Test {
        + protected:
        +  virtual ~FatalFailureInSetUpTest() {
        +    Deinit();
        +  }
        +
        +  virtual void SetUp() {
        +    printf("(expecting 3 failures)\n");
        +    FAIL() << "Expected failure #1, in SetUp().";
        +  }
        +
        +  virtual void TearDown() {
        +    FAIL() << "Expected failure #2, in TearDown().";
        +  }
        + private:
        +  void Deinit() {
        +    FAIL() << "Expected failure #3, in the test fixture d'tor.";
        +  }
        +};
        +
        +TEST_F(FatalFailureInSetUpTest, FailureInSetUp) {
        +  FAIL() << "UNEXPECTED failure in the test function.  "
        +         << "We should never get here, as SetUp() failed.";
        +}
        +
        +TEST(AddFailureAtTest, MessageContainsSpecifiedFileAndLineNumber) {
        +  ADD_FAILURE_AT("foo.cc", 42) << "Expected failure in foo.cc";
        +}
        +
        +#if GTEST_IS_THREADSAFE
        +
        +// A unary function that may die.
        +void DieIf(bool should_die) {
        +  GTEST_CHECK_(!should_die) << " - death inside DieIf().";
        +}
        +
        +// Tests running death tests in a multi-threaded context.
        +
        +// Used for coordination between the main and the spawn thread.
        +struct SpawnThreadNotifications {
        +  SpawnThreadNotifications() {}
        +
        +  Notification spawn_thread_started;
        +  Notification spawn_thread_ok_to_terminate;
        +
        + private:
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(SpawnThreadNotifications);
        +};
        +
        +// The function to be executed in the thread spawn by the
        +// MultipleThreads test (below).
        +static void ThreadRoutine(SpawnThreadNotifications* notifications) {
        +  // Signals the main thread that this thread has started.
        +  notifications->spawn_thread_started.Notify();
        +
        +  // Waits for permission to finish from the main thread.
        +  notifications->spawn_thread_ok_to_terminate.WaitForNotification();
        +}
        +
        +// This is a death-test test, but it's not named with a DeathTest
        +// suffix.  It starts threads which might interfere with later
        +// death tests, so it must run after all other death tests.
        +class DeathTestAndMultiThreadsTest : public testing::Test {
        + protected:
        +  // Starts a thread and waits for it to begin.
        +  virtual void SetUp() {
        +    thread_.reset(new ThreadWithParam<SpawnThreadNotifications*>(
        +        &ThreadRoutine, &notifications_, NULL));
        +    notifications_.spawn_thread_started.WaitForNotification();
        +  }
        +  // Tells the thread to finish, and reaps it.
        +  // Depending on the version of the thread library in use,
        +  // a manager thread might still be left running that will interfere
        +  // with later death tests.  This is unfortunate, but this class
        +  // cleans up after itself as best it can.
        +  virtual void TearDown() {
        +    notifications_.spawn_thread_ok_to_terminate.Notify();
        +  }
        +
        + private:
        +  SpawnThreadNotifications notifications_;
        +  testing::internal::scoped_ptr<ThreadWithParam<SpawnThreadNotifications*> >
        +      thread_;
        +};
        +
        +#endif  // GTEST_IS_THREADSAFE
        +
        +// The MixedUpTestCaseTest test case verifies that Google Test will fail a
        +// test if it uses a different fixture class than what other tests in
        +// the same test case use.  It deliberately contains two fixture
        +// classes with the same name but defined in different namespaces.
        +
        +// The MixedUpTestCaseWithSameTestNameTest test case verifies that
        +// when the user defines two tests with the same test case name AND
        +// same test name (but in different namespaces), the second test will
        +// fail.
        +
        +namespace foo {
        +
        +class MixedUpTestCaseTest : public testing::Test {
        +};
        +
        +TEST_F(MixedUpTestCaseTest, FirstTestFromNamespaceFoo) {}
        +TEST_F(MixedUpTestCaseTest, SecondTestFromNamespaceFoo) {}
        +
        +class MixedUpTestCaseWithSameTestNameTest : public testing::Test {
        +};
        +
        +TEST_F(MixedUpTestCaseWithSameTestNameTest,
        +       TheSecondTestWithThisNameShouldFail) {}
        +
        +}  // namespace foo
        +
        +namespace bar {
        +
        +class MixedUpTestCaseTest : public testing::Test {
        +};
        +
        +// The following two tests are expected to fail.  We rely on the
        +// golden file to check that Google Test generates the right error message.
        +TEST_F(MixedUpTestCaseTest, ThisShouldFail) {}
        +TEST_F(MixedUpTestCaseTest, ThisShouldFailToo) {}
        +
        +class MixedUpTestCaseWithSameTestNameTest : public testing::Test {
        +};
        +
        +// Expected to fail.  We rely on the golden file to check that Google Test
        +// generates the right error message.
        +TEST_F(MixedUpTestCaseWithSameTestNameTest,
        +       TheSecondTestWithThisNameShouldFail) {}
        +
        +}  // namespace bar
        +
        +// The following two test cases verify that Google Test catches the user
        +// error of mixing TEST and TEST_F in the same test case.  The first
        +// test case checks the scenario where TEST_F appears before TEST, and
        +// the second one checks where TEST appears before TEST_F.
        +
        +class TEST_F_before_TEST_in_same_test_case : public testing::Test {
        +};
        +
        +TEST_F(TEST_F_before_TEST_in_same_test_case, DefinedUsingTEST_F) {}
        +
        +// Expected to fail.  We rely on the golden file to check that Google Test
        +// generates the right error message.
        +TEST(TEST_F_before_TEST_in_same_test_case, DefinedUsingTESTAndShouldFail) {}
        +
        +class TEST_before_TEST_F_in_same_test_case : public testing::Test {
        +};
        +
        +TEST(TEST_before_TEST_F_in_same_test_case, DefinedUsingTEST) {}
        +
        +// Expected to fail.  We rely on the golden file to check that Google Test
        +// generates the right error message.
        +TEST_F(TEST_before_TEST_F_in_same_test_case, DefinedUsingTEST_FAndShouldFail) {
        +}
        +
        +// Used for testing EXPECT_NONFATAL_FAILURE() and EXPECT_FATAL_FAILURE().
        +int global_integer = 0;
        +
        +// Tests that EXPECT_NONFATAL_FAILURE() can reference global variables.
        +TEST(ExpectNonfatalFailureTest, CanReferenceGlobalVariables) {
        +  global_integer = 0;
        +  EXPECT_NONFATAL_FAILURE({
        +    EXPECT_EQ(1, global_integer) << "Expected non-fatal failure.";
        +  }, "Expected non-fatal failure.");
        +}
        +
        +// Tests that EXPECT_NONFATAL_FAILURE() can reference local variables
        +// (static or not).
        +TEST(ExpectNonfatalFailureTest, CanReferenceLocalVariables) {
        +  int m = 0;
        +  static int n;
        +  n = 1;
        +  EXPECT_NONFATAL_FAILURE({
        +    EXPECT_EQ(m, n) << "Expected non-fatal failure.";
        +  }, "Expected non-fatal failure.");
        +}
        +
        +// Tests that EXPECT_NONFATAL_FAILURE() succeeds when there is exactly
        +// one non-fatal failure and no fatal failure.
        +TEST(ExpectNonfatalFailureTest, SucceedsWhenThereIsOneNonfatalFailure) {
        +  EXPECT_NONFATAL_FAILURE({
        +    ADD_FAILURE() << "Expected non-fatal failure.";
        +  }, "Expected non-fatal failure.");
        +}
        +
        +// Tests that EXPECT_NONFATAL_FAILURE() fails when there is no
        +// non-fatal failure.
        +TEST(ExpectNonfatalFailureTest, FailsWhenThereIsNoNonfatalFailure) {
        +  printf("(expecting a failure)\n");
        +  EXPECT_NONFATAL_FAILURE({
        +  }, "");
        +}
        +
        +// Tests that EXPECT_NONFATAL_FAILURE() fails when there are two
        +// non-fatal failures.
        +TEST(ExpectNonfatalFailureTest, FailsWhenThereAreTwoNonfatalFailures) {
        +  printf("(expecting a failure)\n");
        +  EXPECT_NONFATAL_FAILURE({
        +    ADD_FAILURE() << "Expected non-fatal failure 1.";
        +    ADD_FAILURE() << "Expected non-fatal failure 2.";
        +  }, "");
        +}
        +
        +// Tests that EXPECT_NONFATAL_FAILURE() fails when there is one fatal
        +// failure.
        +TEST(ExpectNonfatalFailureTest, FailsWhenThereIsOneFatalFailure) {
        +  printf("(expecting a failure)\n");
        +  EXPECT_NONFATAL_FAILURE({
        +    FAIL() << "Expected fatal failure.";
        +  }, "");
        +}
        +
        +// Tests that EXPECT_NONFATAL_FAILURE() fails when the statement being
        +// tested returns.
        +TEST(ExpectNonfatalFailureTest, FailsWhenStatementReturns) {
        +  printf("(expecting a failure)\n");
        +  EXPECT_NONFATAL_FAILURE({
        +    return;
        +  }, "");
        +}
        +
        +#if GTEST_HAS_EXCEPTIONS
        +
        +// Tests that EXPECT_NONFATAL_FAILURE() fails when the statement being
        +// tested throws.
        +TEST(ExpectNonfatalFailureTest, FailsWhenStatementThrows) {
        +  printf("(expecting a failure)\n");
        +  try {
        +    EXPECT_NONFATAL_FAILURE({
        +      throw 0;
        +    }, "");
        +  } catch(int) {  // NOLINT
        +  }
        +}
        +
        +#endif  // GTEST_HAS_EXCEPTIONS
        +
        +// Tests that EXPECT_FATAL_FAILURE() can reference global variables.
        +TEST(ExpectFatalFailureTest, CanReferenceGlobalVariables) {
        +  global_integer = 0;
        +  EXPECT_FATAL_FAILURE({
        +    ASSERT_EQ(1, global_integer) << "Expected fatal failure.";
        +  }, "Expected fatal failure.");
        +}
        +
        +// Tests that EXPECT_FATAL_FAILURE() can reference local static
        +// variables.
        +TEST(ExpectFatalFailureTest, CanReferenceLocalStaticVariables) {
        +  static int n;
        +  n = 1;
        +  EXPECT_FATAL_FAILURE({
        +    ASSERT_EQ(0, n) << "Expected fatal failure.";
        +  }, "Expected fatal failure.");
        +}
        +
        +// Tests that EXPECT_FATAL_FAILURE() succeeds when there is exactly
        +// one fatal failure and no non-fatal failure.
        +TEST(ExpectFatalFailureTest, SucceedsWhenThereIsOneFatalFailure) {
        +  EXPECT_FATAL_FAILURE({
        +    FAIL() << "Expected fatal failure.";
        +  }, "Expected fatal failure.");
        +}
        +
        +// Tests that EXPECT_FATAL_FAILURE() fails when there is no fatal
        +// failure.
        +TEST(ExpectFatalFailureTest, FailsWhenThereIsNoFatalFailure) {
        +  printf("(expecting a failure)\n");
        +  EXPECT_FATAL_FAILURE({
        +  }, "");
        +}
        +
        +// A helper for generating a fatal failure.
        +void FatalFailure() {
        +  FAIL() << "Expected fatal failure.";
        +}
        +
        +// Tests that EXPECT_FATAL_FAILURE() fails when there are two
        +// fatal failures.
        +TEST(ExpectFatalFailureTest, FailsWhenThereAreTwoFatalFailures) {
        +  printf("(expecting a failure)\n");
        +  EXPECT_FATAL_FAILURE({
        +    FatalFailure();
        +    FatalFailure();
        +  }, "");
        +}
        +
        +// Tests that EXPECT_FATAL_FAILURE() fails when there is one non-fatal
        +// failure.
        +TEST(ExpectFatalFailureTest, FailsWhenThereIsOneNonfatalFailure) {
        +  printf("(expecting a failure)\n");
        +  EXPECT_FATAL_FAILURE({
        +    ADD_FAILURE() << "Expected non-fatal failure.";
        +  }, "");
        +}
        +
        +// Tests that EXPECT_FATAL_FAILURE() fails when the statement being
        +// tested returns.
        +TEST(ExpectFatalFailureTest, FailsWhenStatementReturns) {
        +  printf("(expecting a failure)\n");
        +  EXPECT_FATAL_FAILURE({
        +    return;
        +  }, "");
        +}
        +
        +#if GTEST_HAS_EXCEPTIONS
        +
        +// Tests that EXPECT_FATAL_FAILURE() fails when the statement being
        +// tested throws.
        +TEST(ExpectFatalFailureTest, FailsWhenStatementThrows) {
        +  printf("(expecting a failure)\n");
        +  try {
        +    EXPECT_FATAL_FAILURE({
        +      throw 0;
        +    }, "");
        +  } catch(int) {  // NOLINT
        +  }
        +}
        +
        +#endif  // GTEST_HAS_EXCEPTIONS
        +
        +// This #ifdef block tests the output of value-parameterized tests.
        +
        +#if GTEST_HAS_PARAM_TEST
        +
        +std::string ParamNameFunc(const testing::TestParamInfo<std::string>& info) {
        +  return info.param;
        +}
        +
        +class ParamTest : public testing::TestWithParam<std::string> {
        +};
        +
        +TEST_P(ParamTest, Success) {
        +  EXPECT_EQ("a", GetParam());
        +}
        +
        +TEST_P(ParamTest, Failure) {
        +  EXPECT_EQ("b", GetParam()) << "Expected failure";
        +}
        +
        +INSTANTIATE_TEST_CASE_P(PrintingStrings,
        +                        ParamTest,
        +                        testing::Values(std::string("a")),
        +                        ParamNameFunc);
        +
        +#endif  // GTEST_HAS_PARAM_TEST
        +
        +// This #ifdef block tests the output of typed tests.
        +#if GTEST_HAS_TYPED_TEST
        +
        +template <typename T>
        +class TypedTest : public testing::Test {
        +};
        +
        +TYPED_TEST_CASE(TypedTest, testing::Types<int>);
        +
        +TYPED_TEST(TypedTest, Success) {
        +  EXPECT_EQ(0, TypeParam());
        +}
        +
        +TYPED_TEST(TypedTest, Failure) {
        +  EXPECT_EQ(1, TypeParam()) << "Expected failure";
        +}
        +
        +#endif  // GTEST_HAS_TYPED_TEST
        +
        +// This #ifdef block tests the output of type-parameterized tests.
        +#if GTEST_HAS_TYPED_TEST_P
        +
        +template <typename T>
        +class TypedTestP : public testing::Test {
        +};
        +
        +TYPED_TEST_CASE_P(TypedTestP);
        +
        +TYPED_TEST_P(TypedTestP, Success) {
        +  EXPECT_EQ(0U, TypeParam());
        +}
        +
        +TYPED_TEST_P(TypedTestP, Failure) {
        +  EXPECT_EQ(1U, TypeParam()) << "Expected failure";
        +}
        +
        +REGISTER_TYPED_TEST_CASE_P(TypedTestP, Success, Failure);
        +
        +typedef testing::Types<unsigned char, unsigned int> UnsignedTypes;
        +INSTANTIATE_TYPED_TEST_CASE_P(Unsigned, TypedTestP, UnsignedTypes);
        +
        +#endif  // GTEST_HAS_TYPED_TEST_P
        +
        +#if GTEST_HAS_DEATH_TEST
        +
        +// We rely on the golden file to verify that tests whose test case
        +// name ends with DeathTest are run first.
        +
        +TEST(ADeathTest, ShouldRunFirst) {
        +}
        +
        +# if GTEST_HAS_TYPED_TEST
        +
        +// We rely on the golden file to verify that typed tests whose test
        +// case name ends with DeathTest are run first.
        +
        +template <typename T>
        +class ATypedDeathTest : public testing::Test {
        +};
        +
        +typedef testing::Types<int, double> NumericTypes;
        +TYPED_TEST_CASE(ATypedDeathTest, NumericTypes);
        +
        +TYPED_TEST(ATypedDeathTest, ShouldRunFirst) {
        +}
        +
        +# endif  // GTEST_HAS_TYPED_TEST
        +
        +# if GTEST_HAS_TYPED_TEST_P
        +
        +
        +// We rely on the golden file to verify that type-parameterized tests
        +// whose test case name ends with DeathTest are run first.
        +
        +template <typename T>
        +class ATypeParamDeathTest : public testing::Test {
        +};
        +
        +TYPED_TEST_CASE_P(ATypeParamDeathTest);
        +
        +TYPED_TEST_P(ATypeParamDeathTest, ShouldRunFirst) {
        +}
        +
        +REGISTER_TYPED_TEST_CASE_P(ATypeParamDeathTest, ShouldRunFirst);
        +
        +INSTANTIATE_TYPED_TEST_CASE_P(My, ATypeParamDeathTest, NumericTypes);
        +
        +# endif  // GTEST_HAS_TYPED_TEST_P
        +
        +#endif  // GTEST_HAS_DEATH_TEST
        +
        +// Tests various failure conditions of
        +// EXPECT_{,NON}FATAL_FAILURE{,_ON_ALL_THREADS}.
        +class ExpectFailureTest : public testing::Test {
        + public:  // Must be public and not protected due to a bug in g++ 3.4.2.
        +  enum FailureMode {
        +    FATAL_FAILURE,
        +    NONFATAL_FAILURE
        +  };
        +  static void AddFailure(FailureMode failure) {
        +    if (failure == FATAL_FAILURE) {
        +      FAIL() << "Expected fatal failure.";
        +    } else {
        +      ADD_FAILURE() << "Expected non-fatal failure.";
        +    }
        +  }
        +};
        +
        +TEST_F(ExpectFailureTest, ExpectFatalFailure) {
        +  // Expected fatal failure, but succeeds.
        +  printf("(expecting 1 failure)\n");
        +  EXPECT_FATAL_FAILURE(SUCCEED(), "Expected fatal failure.");
        +  // Expected fatal failure, but got a non-fatal failure.
        +  printf("(expecting 1 failure)\n");
        +  EXPECT_FATAL_FAILURE(AddFailure(NONFATAL_FAILURE), "Expected non-fatal "
        +                       "failure.");
        +  // Wrong message.
        +  printf("(expecting 1 failure)\n");
        +  EXPECT_FATAL_FAILURE(AddFailure(FATAL_FAILURE), "Some other fatal failure "
        +                       "expected.");
        +}
        +
        +TEST_F(ExpectFailureTest, ExpectNonFatalFailure) {
        +  // Expected non-fatal failure, but succeeds.
        +  printf("(expecting 1 failure)\n");
        +  EXPECT_NONFATAL_FAILURE(SUCCEED(), "Expected non-fatal failure.");
        +  // Expected non-fatal failure, but got a fatal failure.
        +  printf("(expecting 1 failure)\n");
        +  EXPECT_NONFATAL_FAILURE(AddFailure(FATAL_FAILURE), "Expected fatal failure.");
        +  // Wrong message.
        +  printf("(expecting 1 failure)\n");
        +  EXPECT_NONFATAL_FAILURE(AddFailure(NONFATAL_FAILURE), "Some other non-fatal "
        +                          "failure.");
        +}
        +
        +#if GTEST_IS_THREADSAFE
        +
        +class ExpectFailureWithThreadsTest : public ExpectFailureTest {
        + protected:
        +  static void AddFailureInOtherThread(FailureMode failure) {
        +    ThreadWithParam<FailureMode> thread(&AddFailure, failure, NULL);
        +    thread.Join();
        +  }
        +};
        +
        +TEST_F(ExpectFailureWithThreadsTest, ExpectFatalFailure) {
        +  // We only intercept the current thread.
        +  printf("(expecting 2 failures)\n");
        +  EXPECT_FATAL_FAILURE(AddFailureInOtherThread(FATAL_FAILURE),
        +                       "Expected fatal failure.");
        +}
        +
        +TEST_F(ExpectFailureWithThreadsTest, ExpectNonFatalFailure) {
        +  // We only intercept the current thread.
        +  printf("(expecting 2 failures)\n");
        +  EXPECT_NONFATAL_FAILURE(AddFailureInOtherThread(NONFATAL_FAILURE),
        +                          "Expected non-fatal failure.");
        +}
        +
        +typedef ExpectFailureWithThreadsTest ScopedFakeTestPartResultReporterTest;
        +
        +// Tests that the ScopedFakeTestPartResultReporter only catches failures from
        +// the current thread if it is instantiated with INTERCEPT_ONLY_CURRENT_THREAD.
        +TEST_F(ScopedFakeTestPartResultReporterTest, InterceptOnlyCurrentThread) {
        +  printf("(expecting 2 failures)\n");
        +  TestPartResultArray results;
        +  {
        +    ScopedFakeTestPartResultReporter reporter(
        +        ScopedFakeTestPartResultReporter::INTERCEPT_ONLY_CURRENT_THREAD,
        +        &results);
        +    AddFailureInOtherThread(FATAL_FAILURE);
        +    AddFailureInOtherThread(NONFATAL_FAILURE);
        +  }
        +  // The two failures should not have been intercepted.
        +  EXPECT_EQ(0, results.size()) << "This shouldn't fail.";
        +}
        +
        +#endif  // GTEST_IS_THREADSAFE
        +
        +TEST_F(ExpectFailureTest, ExpectFatalFailureOnAllThreads) {
        +  // Expected fatal failure, but succeeds.
        +  printf("(expecting 1 failure)\n");
        +  EXPECT_FATAL_FAILURE_ON_ALL_THREADS(SUCCEED(), "Expected fatal failure.");
        +  // Expected fatal failure, but got a non-fatal failure.
        +  printf("(expecting 1 failure)\n");
        +  EXPECT_FATAL_FAILURE_ON_ALL_THREADS(AddFailure(NONFATAL_FAILURE),
        +                                      "Expected non-fatal failure.");
        +  // Wrong message.
        +  printf("(expecting 1 failure)\n");
        +  EXPECT_FATAL_FAILURE_ON_ALL_THREADS(AddFailure(FATAL_FAILURE),
        +                                      "Some other fatal failure expected.");
        +}
        +
        +TEST_F(ExpectFailureTest, ExpectNonFatalFailureOnAllThreads) {
        +  // Expected non-fatal failure, but succeeds.
        +  printf("(expecting 1 failure)\n");
        +  EXPECT_NONFATAL_FAILURE_ON_ALL_THREADS(SUCCEED(), "Expected non-fatal "
        +                                         "failure.");
        +  // Expected non-fatal failure, but got a fatal failure.
        +  printf("(expecting 1 failure)\n");
        +  EXPECT_NONFATAL_FAILURE_ON_ALL_THREADS(AddFailure(FATAL_FAILURE),
        +                                         "Expected fatal failure.");
        +  // Wrong message.
        +  printf("(expecting 1 failure)\n");
        +  EXPECT_NONFATAL_FAILURE_ON_ALL_THREADS(AddFailure(NONFATAL_FAILURE),
        +                                         "Some other non-fatal failure.");
        +}
        +
        +
        +// Two test environments for testing testing::AddGlobalTestEnvironment().
        +
        +class FooEnvironment : public testing::Environment {
        + public:
        +  virtual void SetUp() {
        +    printf("%s", "FooEnvironment::SetUp() called.\n");
        +  }
        +
        +  virtual void TearDown() {
        +    printf("%s", "FooEnvironment::TearDown() called.\n");
        +    FAIL() << "Expected fatal failure.";
        +  }
        +};
        +
        +class BarEnvironment : public testing::Environment {
        + public:
        +  virtual void SetUp() {
        +    printf("%s", "BarEnvironment::SetUp() called.\n");
        +  }
        +
        +  virtual void TearDown() {
        +    printf("%s", "BarEnvironment::TearDown() called.\n");
        +    ADD_FAILURE() << "Expected non-fatal failure.";
        +  }
        +};
        +
        +// The main function.
        +//
        +// The idea is to use Google Test to run all the tests we have defined (some
        +// of them are intended to fail), and then compare the test results
        +// with the "golden" file.
        +int main(int argc, char **argv) {
        +  testing::GTEST_FLAG(print_time) = false;
        +
        +  // We just run the tests, knowing some of them are intended to fail.
        +  // We will use a separate Python script to compare the output of
        +  // this program with the golden file.
        +
        +  // It's hard to test InitGoogleTest() directly, as it has many
        +  // global side effects.  The following line serves as a sanity test
        +  // for it.
        +  testing::InitGoogleTest(&argc, argv);
        +  bool internal_skip_environment_and_ad_hoc_tests =
        +      std::count(argv, argv + argc,
        +                 std::string("internal_skip_environment_and_ad_hoc_tests")) > 0;
        +
        +#if GTEST_HAS_DEATH_TEST
        +  if (testing::internal::GTEST_FLAG(internal_run_death_test) != "") {
        +    // Skip the usual output capturing if we're running as the child
        +    // process of an threadsafe-style death test.
        +# if GTEST_OS_WINDOWS
        +    posix::FReopen("nul:", "w", stdout);
        +# else
        +    posix::FReopen("/dev/null", "w", stdout);
        +# endif  // GTEST_OS_WINDOWS
        +    return RUN_ALL_TESTS();
        +  }
        +#endif  // GTEST_HAS_DEATH_TEST
        +
        +  if (internal_skip_environment_and_ad_hoc_tests)
        +    return RUN_ALL_TESTS();
        +
        +  // Registers two global test environments.
        +  // The golden file verifies that they are set up in the order they
        +  // are registered, and torn down in the reverse order.
        +  testing::AddGlobalTestEnvironment(new FooEnvironment);
        +  testing::AddGlobalTestEnvironment(new BarEnvironment);
        +
        +  return RunAllTests();
        +}
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_output_test_golden_lin.txt b/lib/ann/fann/lib/googletest/test/gtest_output_test_golden_lin.txt
        new file mode 100644
        index 0000000..7fff853
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_output_test_golden_lin.txt
        @@ -0,0 +1,743 @@
        +The non-test part of the code is expected to have 2 failures.
        +
        +gtest_output_test_.cc:#: Failure
        +Value of: false
        +  Actual: false
        +Expected: true
        +gtest_output_test_.cc:#: Failure
        +Value of: 3
        +Expected: 2
        +[==========] Running 66 tests from 29 test cases.
        +[----------] Global test environment set-up.
        +FooEnvironment::SetUp() called.
        +BarEnvironment::SetUp() called.
        +[----------] 1 test from ADeathTest
        +[ RUN      ] ADeathTest.ShouldRunFirst
        +[       OK ] ADeathTest.ShouldRunFirst
        +[----------] 1 test from ATypedDeathTest/0, where TypeParam = int
        +[ RUN      ] ATypedDeathTest/0.ShouldRunFirst
        +[       OK ] ATypedDeathTest/0.ShouldRunFirst
        +[----------] 1 test from ATypedDeathTest/1, where TypeParam = double
        +[ RUN      ] ATypedDeathTest/1.ShouldRunFirst
        +[       OK ] ATypedDeathTest/1.ShouldRunFirst
        +[----------] 1 test from My/ATypeParamDeathTest/0, where TypeParam = int
        +[ RUN      ] My/ATypeParamDeathTest/0.ShouldRunFirst
        +[       OK ] My/ATypeParamDeathTest/0.ShouldRunFirst
        +[----------] 1 test from My/ATypeParamDeathTest/1, where TypeParam = double
        +[ RUN      ] My/ATypeParamDeathTest/1.ShouldRunFirst
        +[       OK ] My/ATypeParamDeathTest/1.ShouldRunFirst
        +[----------] 2 tests from PassingTest
        +[ RUN      ] PassingTest.PassingTest1
        +[       OK ] PassingTest.PassingTest1
        +[ RUN      ] PassingTest.PassingTest2
        +[       OK ] PassingTest.PassingTest2
        +[----------] 2 tests from NonfatalFailureTest
        +[ RUN      ] NonfatalFailureTest.EscapesStringOperands
        +gtest_output_test_.cc:#: Failure
        +Value of: actual
        +  Actual: "actual \"string\""
        +Expected: kGoldenString
        +Which is: "\"Line"
        +gtest_output_test_.cc:#: Failure
        +Value of: actual
        +  Actual: "actual \"string\""
        +Expected: golden
        +Which is: "\"Line"
        +[  FAILED  ] NonfatalFailureTest.EscapesStringOperands
        +[ RUN      ] NonfatalFailureTest.DiffForLongStrings
        +gtest_output_test_.cc:#: Failure
        +Value of: "Line 2"
        +Expected: golden_str
        +Which is: "\"Line\0 1\"\nLine 2"
        +With diff:
        +@@ -1,2 @@
        +-\"Line\0 1\"
        + Line 2
        +
        +[  FAILED  ] NonfatalFailureTest.DiffForLongStrings
        +[----------] 3 tests from FatalFailureTest
        +[ RUN      ] FatalFailureTest.FatalFailureInSubroutine
        +(expecting a failure that x should be 1)
        +gtest_output_test_.cc:#: Failure
        +Value of: x
        +  Actual: 2
        +Expected: 1
        +[  FAILED  ] FatalFailureTest.FatalFailureInSubroutine
        +[ RUN      ] FatalFailureTest.FatalFailureInNestedSubroutine
        +(expecting a failure that x should be 1)
        +gtest_output_test_.cc:#: Failure
        +Value of: x
        +  Actual: 2
        +Expected: 1
        +[  FAILED  ] FatalFailureTest.FatalFailureInNestedSubroutine
        +[ RUN      ] FatalFailureTest.NonfatalFailureInSubroutine
        +(expecting a failure on false)
        +gtest_output_test_.cc:#: Failure
        +Value of: false
        +  Actual: false
        +Expected: true
        +[  FAILED  ] FatalFailureTest.NonfatalFailureInSubroutine
        +[----------] 1 test from LoggingTest
        +[ RUN      ] LoggingTest.InterleavingLoggingAndAssertions
        +(expecting 2 failures on (3) >= (a[i]))
        +i == 0
        +i == 1
        +gtest_output_test_.cc:#: Failure
        +Expected: (3) >= (a[i]), actual: 3 vs 9
        +i == 2
        +i == 3
        +gtest_output_test_.cc:#: Failure
        +Expected: (3) >= (a[i]), actual: 3 vs 6
        +[  FAILED  ] LoggingTest.InterleavingLoggingAndAssertions
        +[----------] 6 tests from SCOPED_TRACETest
        +[ RUN      ] SCOPED_TRACETest.ObeysScopes
        +(expected to fail)
        +gtest_output_test_.cc:#: Failure
        +Failed
        +This failure is expected, and shouldn't have a trace.
        +gtest_output_test_.cc:#: Failure
        +Failed
        +This failure is expected, and should have a trace.
        +Google Test trace:
        +gtest_output_test_.cc:#: Expected trace
        +gtest_output_test_.cc:#: Failure
        +Failed
        +This failure is expected, and shouldn't have a trace.
        +[  FAILED  ] SCOPED_TRACETest.ObeysScopes
        +[ RUN      ] SCOPED_TRACETest.WorksInLoop
        +(expected to fail)
        +gtest_output_test_.cc:#: Failure
        +Value of: n
        +  Actual: 1
        +Expected: 2
        +Google Test trace:
        +gtest_output_test_.cc:#: i = 1
        +gtest_output_test_.cc:#: Failure
        +Value of: n
        +  Actual: 2
        +Expected: 1
        +Google Test trace:
        +gtest_output_test_.cc:#: i = 2
        +[  FAILED  ] SCOPED_TRACETest.WorksInLoop
        +[ RUN      ] SCOPED_TRACETest.WorksInSubroutine
        +(expected to fail)
        +gtest_output_test_.cc:#: Failure
        +Value of: n
        +  Actual: 1
        +Expected: 2
        +Google Test trace:
        +gtest_output_test_.cc:#: n = 1
        +gtest_output_test_.cc:#: Failure
        +Value of: n
        +  Actual: 2
        +Expected: 1
        +Google Test trace:
        +gtest_output_test_.cc:#: n = 2
        +[  FAILED  ] SCOPED_TRACETest.WorksInSubroutine
        +[ RUN      ] SCOPED_TRACETest.CanBeNested
        +(expected to fail)
        +gtest_output_test_.cc:#: Failure
        +Value of: n
        +  Actual: 2
        +Expected: 1
        +Google Test trace:
        +gtest_output_test_.cc:#: n = 2
        +gtest_output_test_.cc:#: 
        +[  FAILED  ] SCOPED_TRACETest.CanBeNested
        +[ RUN      ] SCOPED_TRACETest.CanBeRepeated
        +(expected to fail)
        +gtest_output_test_.cc:#: Failure
        +Failed
        +This failure is expected, and should contain trace point A.
        +Google Test trace:
        +gtest_output_test_.cc:#: A
        +gtest_output_test_.cc:#: Failure
        +Failed
        +This failure is expected, and should contain trace point A and B.
        +Google Test trace:
        +gtest_output_test_.cc:#: B
        +gtest_output_test_.cc:#: A
        +gtest_output_test_.cc:#: Failure
        +Failed
        +This failure is expected, and should contain trace point A, B, and C.
        +Google Test trace:
        +gtest_output_test_.cc:#: C
        +gtest_output_test_.cc:#: B
        +gtest_output_test_.cc:#: A
        +gtest_output_test_.cc:#: Failure
        +Failed
        +This failure is expected, and should contain trace point A, B, and D.
        +Google Test trace:
        +gtest_output_test_.cc:#: D
        +gtest_output_test_.cc:#: B
        +gtest_output_test_.cc:#: A
        +[  FAILED  ] SCOPED_TRACETest.CanBeRepeated
        +[ RUN      ] SCOPED_TRACETest.WorksConcurrently
        +(expecting 6 failures)
        +gtest_output_test_.cc:#: Failure
        +Failed
        +Expected failure #1 (in thread B, only trace B alive).
        +Google Test trace:
        +gtest_output_test_.cc:#: Trace B
        +gtest_output_test_.cc:#: Failure
        +Failed
        +Expected failure #2 (in thread A, trace A & B both alive).
        +Google Test trace:
        +gtest_output_test_.cc:#: Trace A
        +gtest_output_test_.cc:#: Failure
        +Failed
        +Expected failure #3 (in thread B, trace A & B both alive).
        +Google Test trace:
        +gtest_output_test_.cc:#: Trace B
        +gtest_output_test_.cc:#: Failure
        +Failed
        +Expected failure #4 (in thread B, only trace A alive).
        +gtest_output_test_.cc:#: Failure
        +Failed
        +Expected failure #5 (in thread A, only trace A alive).
        +Google Test trace:
        +gtest_output_test_.cc:#: Trace A
        +gtest_output_test_.cc:#: Failure
        +Failed
        +Expected failure #6 (in thread A, no trace alive).
        +[  FAILED  ] SCOPED_TRACETest.WorksConcurrently
        +[----------] 1 test from NonFatalFailureInFixtureConstructorTest
        +[ RUN      ] NonFatalFailureInFixtureConstructorTest.FailureInConstructor
        +(expecting 5 failures)
        +gtest_output_test_.cc:#: Failure
        +Failed
        +Expected failure #1, in the test fixture c'tor.
        +gtest_output_test_.cc:#: Failure
        +Failed
        +Expected failure #2, in SetUp().
        +gtest_output_test_.cc:#: Failure
        +Failed
        +Expected failure #3, in the test body.
        +gtest_output_test_.cc:#: Failure
        +Failed
        +Expected failure #4, in TearDown.
        +gtest_output_test_.cc:#: Failure
        +Failed
        +Expected failure #5, in the test fixture d'tor.
        +[  FAILED  ] NonFatalFailureInFixtureConstructorTest.FailureInConstructor
        +[----------] 1 test from FatalFailureInFixtureConstructorTest
        +[ RUN      ] FatalFailureInFixtureConstructorTest.FailureInConstructor
        +(expecting 2 failures)
        +gtest_output_test_.cc:#: Failure
        +Failed
        +Expected failure #1, in the test fixture c'tor.
        +gtest_output_test_.cc:#: Failure
        +Failed
        +Expected failure #2, in the test fixture d'tor.
        +[  FAILED  ] FatalFailureInFixtureConstructorTest.FailureInConstructor
        +[----------] 1 test from NonFatalFailureInSetUpTest
        +[ RUN      ] NonFatalFailureInSetUpTest.FailureInSetUp
        +(expecting 4 failures)
        +gtest_output_test_.cc:#: Failure
        +Failed
        +Expected failure #1, in SetUp().
        +gtest_output_test_.cc:#: Failure
        +Failed
        +Expected failure #2, in the test function.
        +gtest_output_test_.cc:#: Failure
        +Failed
        +Expected failure #3, in TearDown().
        +gtest_output_test_.cc:#: Failure
        +Failed
        +Expected failure #4, in the test fixture d'tor.
        +[  FAILED  ] NonFatalFailureInSetUpTest.FailureInSetUp
        +[----------] 1 test from FatalFailureInSetUpTest
        +[ RUN      ] FatalFailureInSetUpTest.FailureInSetUp
        +(expecting 3 failures)
        +gtest_output_test_.cc:#: Failure
        +Failed
        +Expected failure #1, in SetUp().
        +gtest_output_test_.cc:#: Failure
        +Failed
        +Expected failure #2, in TearDown().
        +gtest_output_test_.cc:#: Failure
        +Failed
        +Expected failure #3, in the test fixture d'tor.
        +[  FAILED  ] FatalFailureInSetUpTest.FailureInSetUp
        +[----------] 1 test from AddFailureAtTest
        +[ RUN      ] AddFailureAtTest.MessageContainsSpecifiedFileAndLineNumber
        +foo.cc:42: Failure
        +Failed
        +Expected failure in foo.cc
        +[  FAILED  ] AddFailureAtTest.MessageContainsSpecifiedFileAndLineNumber
        +[----------] 4 tests from MixedUpTestCaseTest
        +[ RUN      ] MixedUpTestCaseTest.FirstTestFromNamespaceFoo
        +[       OK ] MixedUpTestCaseTest.FirstTestFromNamespaceFoo
        +[ RUN      ] MixedUpTestCaseTest.SecondTestFromNamespaceFoo
        +[       OK ] MixedUpTestCaseTest.SecondTestFromNamespaceFoo
        +[ RUN      ] MixedUpTestCaseTest.ThisShouldFail
        +gtest.cc:#: Failure
        +Failed
        +All tests in the same test case must use the same test fixture
        +class.  However, in test case MixedUpTestCaseTest,
        +you defined test FirstTestFromNamespaceFoo and test ThisShouldFail
        +using two different test fixture classes.  This can happen if
        +the two classes are from different namespaces or translation
        +units and have the same name.  You should probably rename one
        +of the classes to put the tests into different test cases.
        +[  FAILED  ] MixedUpTestCaseTest.ThisShouldFail
        +[ RUN      ] MixedUpTestCaseTest.ThisShouldFailToo
        +gtest.cc:#: Failure
        +Failed
        +All tests in the same test case must use the same test fixture
        +class.  However, in test case MixedUpTestCaseTest,
        +you defined test FirstTestFromNamespaceFoo and test ThisShouldFailToo
        +using two different test fixture classes.  This can happen if
        +the two classes are from different namespaces or translation
        +units and have the same name.  You should probably rename one
        +of the classes to put the tests into different test cases.
        +[  FAILED  ] MixedUpTestCaseTest.ThisShouldFailToo
        +[----------] 2 tests from MixedUpTestCaseWithSameTestNameTest
        +[ RUN      ] MixedUpTestCaseWithSameTestNameTest.TheSecondTestWithThisNameShouldFail
        +[       OK ] MixedUpTestCaseWithSameTestNameTest.TheSecondTestWithThisNameShouldFail
        +[ RUN      ] MixedUpTestCaseWithSameTestNameTest.TheSecondTestWithThisNameShouldFail
        +gtest.cc:#: Failure
        +Failed
        +All tests in the same test case must use the same test fixture
        +class.  However, in test case MixedUpTestCaseWithSameTestNameTest,
        +you defined test TheSecondTestWithThisNameShouldFail and test TheSecondTestWithThisNameShouldFail
        +using two different test fixture classes.  This can happen if
        +the two classes are from different namespaces or translation
        +units and have the same name.  You should probably rename one
        +of the classes to put the tests into different test cases.
        +[  FAILED  ] MixedUpTestCaseWithSameTestNameTest.TheSecondTestWithThisNameShouldFail
        +[----------] 2 tests from TEST_F_before_TEST_in_same_test_case
        +[ RUN      ] TEST_F_before_TEST_in_same_test_case.DefinedUsingTEST_F
        +[       OK ] TEST_F_before_TEST_in_same_test_case.DefinedUsingTEST_F
        +[ RUN      ] TEST_F_before_TEST_in_same_test_case.DefinedUsingTESTAndShouldFail
        +gtest.cc:#: Failure
        +Failed
        +All tests in the same test case must use the same test fixture
        +class, so mixing TEST_F and TEST in the same test case is
        +illegal.  In test case TEST_F_before_TEST_in_same_test_case,
        +test DefinedUsingTEST_F is defined using TEST_F but
        +test DefinedUsingTESTAndShouldFail is defined using TEST.  You probably
        +want to change the TEST to TEST_F or move it to another test
        +case.
        +[  FAILED  ] TEST_F_before_TEST_in_same_test_case.DefinedUsingTESTAndShouldFail
        +[----------] 2 tests from TEST_before_TEST_F_in_same_test_case
        +[ RUN      ] TEST_before_TEST_F_in_same_test_case.DefinedUsingTEST
        +[       OK ] TEST_before_TEST_F_in_same_test_case.DefinedUsingTEST
        +[ RUN      ] TEST_before_TEST_F_in_same_test_case.DefinedUsingTEST_FAndShouldFail
        +gtest.cc:#: Failure
        +Failed
        +All tests in the same test case must use the same test fixture
        +class, so mixing TEST_F and TEST in the same test case is
        +illegal.  In test case TEST_before_TEST_F_in_same_test_case,
        +test DefinedUsingTEST_FAndShouldFail is defined using TEST_F but
        +test DefinedUsingTEST is defined using TEST.  You probably
        +want to change the TEST to TEST_F or move it to another test
        +case.
        +[  FAILED  ] TEST_before_TEST_F_in_same_test_case.DefinedUsingTEST_FAndShouldFail
        +[----------] 8 tests from ExpectNonfatalFailureTest
        +[ RUN      ] ExpectNonfatalFailureTest.CanReferenceGlobalVariables
        +[       OK ] ExpectNonfatalFailureTest.CanReferenceGlobalVariables
        +[ RUN      ] ExpectNonfatalFailureTest.CanReferenceLocalVariables
        +[       OK ] ExpectNonfatalFailureTest.CanReferenceLocalVariables
        +[ RUN      ] ExpectNonfatalFailureTest.SucceedsWhenThereIsOneNonfatalFailure
        +[       OK ] ExpectNonfatalFailureTest.SucceedsWhenThereIsOneNonfatalFailure
        +[ RUN      ] ExpectNonfatalFailureTest.FailsWhenThereIsNoNonfatalFailure
        +(expecting a failure)
        +gtest.cc:#: Failure
        +Expected: 1 non-fatal failure
        +  Actual: 0 failures
        +[  FAILED  ] ExpectNonfatalFailureTest.FailsWhenThereIsNoNonfatalFailure
        +[ RUN      ] ExpectNonfatalFailureTest.FailsWhenThereAreTwoNonfatalFailures
        +(expecting a failure)
        +gtest.cc:#: Failure
        +Expected: 1 non-fatal failure
        +  Actual: 2 failures
        +gtest_output_test_.cc:#: Non-fatal failure:
        +Failed
        +Expected non-fatal failure 1.
        +
        +gtest_output_test_.cc:#: Non-fatal failure:
        +Failed
        +Expected non-fatal failure 2.
        +
        +[  FAILED  ] ExpectNonfatalFailureTest.FailsWhenThereAreTwoNonfatalFailures
        +[ RUN      ] ExpectNonfatalFailureTest.FailsWhenThereIsOneFatalFailure
        +(expecting a failure)
        +gtest.cc:#: Failure
        +Expected: 1 non-fatal failure
        +  Actual:
        +gtest_output_test_.cc:#: Fatal failure:
        +Failed
        +Expected fatal failure.
        +
        +[  FAILED  ] ExpectNonfatalFailureTest.FailsWhenThereIsOneFatalFailure
        +[ RUN      ] ExpectNonfatalFailureTest.FailsWhenStatementReturns
        +(expecting a failure)
        +gtest.cc:#: Failure
        +Expected: 1 non-fatal failure
        +  Actual: 0 failures
        +[  FAILED  ] ExpectNonfatalFailureTest.FailsWhenStatementReturns
        +[ RUN      ] ExpectNonfatalFailureTest.FailsWhenStatementThrows
        +(expecting a failure)
        +gtest.cc:#: Failure
        +Expected: 1 non-fatal failure
        +  Actual: 0 failures
        +[  FAILED  ] ExpectNonfatalFailureTest.FailsWhenStatementThrows
        +[----------] 8 tests from ExpectFatalFailureTest
        +[ RUN      ] ExpectFatalFailureTest.CanReferenceGlobalVariables
        +[       OK ] ExpectFatalFailureTest.CanReferenceGlobalVariables
        +[ RUN      ] ExpectFatalFailureTest.CanReferenceLocalStaticVariables
        +[       OK ] ExpectFatalFailureTest.CanReferenceLocalStaticVariables
        +[ RUN      ] ExpectFatalFailureTest.SucceedsWhenThereIsOneFatalFailure
        +[       OK ] ExpectFatalFailureTest.SucceedsWhenThereIsOneFatalFailure
        +[ RUN      ] ExpectFatalFailureTest.FailsWhenThereIsNoFatalFailure
        +(expecting a failure)
        +gtest.cc:#: Failure
        +Expected: 1 fatal failure
        +  Actual: 0 failures
        +[  FAILED  ] ExpectFatalFailureTest.FailsWhenThereIsNoFatalFailure
        +[ RUN      ] ExpectFatalFailureTest.FailsWhenThereAreTwoFatalFailures
        +(expecting a failure)
        +gtest.cc:#: Failure
        +Expected: 1 fatal failure
        +  Actual: 2 failures
        +gtest_output_test_.cc:#: Fatal failure:
        +Failed
        +Expected fatal failure.
        +
        +gtest_output_test_.cc:#: Fatal failure:
        +Failed
        +Expected fatal failure.
        +
        +[  FAILED  ] ExpectFatalFailureTest.FailsWhenThereAreTwoFatalFailures
        +[ RUN      ] ExpectFatalFailureTest.FailsWhenThereIsOneNonfatalFailure
        +(expecting a failure)
        +gtest.cc:#: Failure
        +Expected: 1 fatal failure
        +  Actual:
        +gtest_output_test_.cc:#: Non-fatal failure:
        +Failed
        +Expected non-fatal failure.
        +
        +[  FAILED  ] ExpectFatalFailureTest.FailsWhenThereIsOneNonfatalFailure
        +[ RUN      ] ExpectFatalFailureTest.FailsWhenStatementReturns
        +(expecting a failure)
        +gtest.cc:#: Failure
        +Expected: 1 fatal failure
        +  Actual: 0 failures
        +[  FAILED  ] ExpectFatalFailureTest.FailsWhenStatementReturns
        +[ RUN      ] ExpectFatalFailureTest.FailsWhenStatementThrows
        +(expecting a failure)
        +gtest.cc:#: Failure
        +Expected: 1 fatal failure
        +  Actual: 0 failures
        +[  FAILED  ] ExpectFatalFailureTest.FailsWhenStatementThrows
        +[----------] 2 tests from TypedTest/0, where TypeParam = int
        +[ RUN      ] TypedTest/0.Success
        +[       OK ] TypedTest/0.Success
        +[ RUN      ] TypedTest/0.Failure
        +gtest_output_test_.cc:#: Failure
        +Value of: TypeParam()
        +  Actual: 0
        +Expected: 1
        +Expected failure
        +[  FAILED  ] TypedTest/0.Failure, where TypeParam = int
        +[----------] 2 tests from Unsigned/TypedTestP/0, where TypeParam = unsigned char
        +[ RUN      ] Unsigned/TypedTestP/0.Success
        +[       OK ] Unsigned/TypedTestP/0.Success
        +[ RUN      ] Unsigned/TypedTestP/0.Failure
        +gtest_output_test_.cc:#: Failure
        +Value of: TypeParam()
        +  Actual: '\0'
        +Expected: 1U
        +Which is: 1
        +Expected failure
        +[  FAILED  ] Unsigned/TypedTestP/0.Failure, where TypeParam = unsigned char
        +[----------] 2 tests from Unsigned/TypedTestP/1, where TypeParam = unsigned int
        +[ RUN      ] Unsigned/TypedTestP/1.Success
        +[       OK ] Unsigned/TypedTestP/1.Success
        +[ RUN      ] Unsigned/TypedTestP/1.Failure
        +gtest_output_test_.cc:#: Failure
        +Value of: TypeParam()
        +  Actual: 0
        +Expected: 1U
        +Which is: 1
        +Expected failure
        +[  FAILED  ] Unsigned/TypedTestP/1.Failure, where TypeParam = unsigned int
        +[----------] 4 tests from ExpectFailureTest
        +[ RUN      ] ExpectFailureTest.ExpectFatalFailure
        +(expecting 1 failure)
        +gtest.cc:#: Failure
        +Expected: 1 fatal failure
        +  Actual:
        +gtest_output_test_.cc:#: Success:
        +Succeeded
        +
        +(expecting 1 failure)
        +gtest.cc:#: Failure
        +Expected: 1 fatal failure
        +  Actual:
        +gtest_output_test_.cc:#: Non-fatal failure:
        +Failed
        +Expected non-fatal failure.
        +
        +(expecting 1 failure)
        +gtest.cc:#: Failure
        +Expected: 1 fatal failure containing "Some other fatal failure expected."
        +  Actual:
        +gtest_output_test_.cc:#: Fatal failure:
        +Failed
        +Expected fatal failure.
        +
        +[  FAILED  ] ExpectFailureTest.ExpectFatalFailure
        +[ RUN      ] ExpectFailureTest.ExpectNonFatalFailure
        +(expecting 1 failure)
        +gtest.cc:#: Failure
        +Expected: 1 non-fatal failure
        +  Actual:
        +gtest_output_test_.cc:#: Success:
        +Succeeded
        +
        +(expecting 1 failure)
        +gtest.cc:#: Failure
        +Expected: 1 non-fatal failure
        +  Actual:
        +gtest_output_test_.cc:#: Fatal failure:
        +Failed
        +Expected fatal failure.
        +
        +(expecting 1 failure)
        +gtest.cc:#: Failure
        +Expected: 1 non-fatal failure containing "Some other non-fatal failure."
        +  Actual:
        +gtest_output_test_.cc:#: Non-fatal failure:
        +Failed
        +Expected non-fatal failure.
        +
        +[  FAILED  ] ExpectFailureTest.ExpectNonFatalFailure
        +[ RUN      ] ExpectFailureTest.ExpectFatalFailureOnAllThreads
        +(expecting 1 failure)
        +gtest.cc:#: Failure
        +Expected: 1 fatal failure
        +  Actual:
        +gtest_output_test_.cc:#: Success:
        +Succeeded
        +
        +(expecting 1 failure)
        +gtest.cc:#: Failure
        +Expected: 1 fatal failure
        +  Actual:
        +gtest_output_test_.cc:#: Non-fatal failure:
        +Failed
        +Expected non-fatal failure.
        +
        +(expecting 1 failure)
        +gtest.cc:#: Failure
        +Expected: 1 fatal failure containing "Some other fatal failure expected."
        +  Actual:
        +gtest_output_test_.cc:#: Fatal failure:
        +Failed
        +Expected fatal failure.
        +
        +[  FAILED  ] ExpectFailureTest.ExpectFatalFailureOnAllThreads
        +[ RUN      ] ExpectFailureTest.ExpectNonFatalFailureOnAllThreads
        +(expecting 1 failure)
        +gtest.cc:#: Failure
        +Expected: 1 non-fatal failure
        +  Actual:
        +gtest_output_test_.cc:#: Success:
        +Succeeded
        +
        +(expecting 1 failure)
        +gtest.cc:#: Failure
        +Expected: 1 non-fatal failure
        +  Actual:
        +gtest_output_test_.cc:#: Fatal failure:
        +Failed
        +Expected fatal failure.
        +
        +(expecting 1 failure)
        +gtest.cc:#: Failure
        +Expected: 1 non-fatal failure containing "Some other non-fatal failure."
        +  Actual:
        +gtest_output_test_.cc:#: Non-fatal failure:
        +Failed
        +Expected non-fatal failure.
        +
        +[  FAILED  ] ExpectFailureTest.ExpectNonFatalFailureOnAllThreads
        +[----------] 2 tests from ExpectFailureWithThreadsTest
        +[ RUN      ] ExpectFailureWithThreadsTest.ExpectFatalFailure
        +(expecting 2 failures)
        +gtest_output_test_.cc:#: Failure
        +Failed
        +Expected fatal failure.
        +gtest.cc:#: Failure
        +Expected: 1 fatal failure
        +  Actual: 0 failures
        +[  FAILED  ] ExpectFailureWithThreadsTest.ExpectFatalFailure
        +[ RUN      ] ExpectFailureWithThreadsTest.ExpectNonFatalFailure
        +(expecting 2 failures)
        +gtest_output_test_.cc:#: Failure
        +Failed
        +Expected non-fatal failure.
        +gtest.cc:#: Failure
        +Expected: 1 non-fatal failure
        +  Actual: 0 failures
        +[  FAILED  ] ExpectFailureWithThreadsTest.ExpectNonFatalFailure
        +[----------] 1 test from ScopedFakeTestPartResultReporterTest
        +[ RUN      ] ScopedFakeTestPartResultReporterTest.InterceptOnlyCurrentThread
        +(expecting 2 failures)
        +gtest_output_test_.cc:#: Failure
        +Failed
        +Expected fatal failure.
        +gtest_output_test_.cc:#: Failure
        +Failed
        +Expected non-fatal failure.
        +[  FAILED  ] ScopedFakeTestPartResultReporterTest.InterceptOnlyCurrentThread
        +[----------] 1 test from PrintingFailingParams/FailingParamTest
        +[ RUN      ] PrintingFailingParams/FailingParamTest.Fails/0
        +gtest_output_test_.cc:#: Failure
        +Value of: GetParam()
        +  Actual: 2
        +Expected: 1
        +[  FAILED  ] PrintingFailingParams/FailingParamTest.Fails/0, where GetParam() = 2
        +[----------] 2 tests from PrintingStrings/ParamTest
        +[ RUN      ] PrintingStrings/ParamTest.Success/a
        +[       OK ] PrintingStrings/ParamTest.Success/a
        +[ RUN      ] PrintingStrings/ParamTest.Failure/a
        +gtest_output_test_.cc:#: Failure
        +Value of: GetParam()
        +  Actual: "a"
        +Expected: "b"
        +Expected failure
        +[  FAILED  ] PrintingStrings/ParamTest.Failure/a, where GetParam() = "a"
        +[----------] Global test environment tear-down
        +BarEnvironment::TearDown() called.
        +gtest_output_test_.cc:#: Failure
        +Failed
        +Expected non-fatal failure.
        +FooEnvironment::TearDown() called.
        +gtest_output_test_.cc:#: Failure
        +Failed
        +Expected fatal failure.
        +[==========] 66 tests from 29 test cases ran.
        +[  PASSED  ] 22 tests.
        +[  FAILED  ] 44 tests, listed below:
        +[  FAILED  ] NonfatalFailureTest.EscapesStringOperands
        +[  FAILED  ] NonfatalFailureTest.DiffForLongStrings
        +[  FAILED  ] FatalFailureTest.FatalFailureInSubroutine
        +[  FAILED  ] FatalFailureTest.FatalFailureInNestedSubroutine
        +[  FAILED  ] FatalFailureTest.NonfatalFailureInSubroutine
        +[  FAILED  ] LoggingTest.InterleavingLoggingAndAssertions
        +[  FAILED  ] SCOPED_TRACETest.ObeysScopes
        +[  FAILED  ] SCOPED_TRACETest.WorksInLoop
        +[  FAILED  ] SCOPED_TRACETest.WorksInSubroutine
        +[  FAILED  ] SCOPED_TRACETest.CanBeNested
        +[  FAILED  ] SCOPED_TRACETest.CanBeRepeated
        +[  FAILED  ] SCOPED_TRACETest.WorksConcurrently
        +[  FAILED  ] NonFatalFailureInFixtureConstructorTest.FailureInConstructor
        +[  FAILED  ] FatalFailureInFixtureConstructorTest.FailureInConstructor
        +[  FAILED  ] NonFatalFailureInSetUpTest.FailureInSetUp
        +[  FAILED  ] FatalFailureInSetUpTest.FailureInSetUp
        +[  FAILED  ] AddFailureAtTest.MessageContainsSpecifiedFileAndLineNumber
        +[  FAILED  ] MixedUpTestCaseTest.ThisShouldFail
        +[  FAILED  ] MixedUpTestCaseTest.ThisShouldFailToo
        +[  FAILED  ] MixedUpTestCaseWithSameTestNameTest.TheSecondTestWithThisNameShouldFail
        +[  FAILED  ] TEST_F_before_TEST_in_same_test_case.DefinedUsingTESTAndShouldFail
        +[  FAILED  ] TEST_before_TEST_F_in_same_test_case.DefinedUsingTEST_FAndShouldFail
        +[  FAILED  ] ExpectNonfatalFailureTest.FailsWhenThereIsNoNonfatalFailure
        +[  FAILED  ] ExpectNonfatalFailureTest.FailsWhenThereAreTwoNonfatalFailures
        +[  FAILED  ] ExpectNonfatalFailureTest.FailsWhenThereIsOneFatalFailure
        +[  FAILED  ] ExpectNonfatalFailureTest.FailsWhenStatementReturns
        +[  FAILED  ] ExpectNonfatalFailureTest.FailsWhenStatementThrows
        +[  FAILED  ] ExpectFatalFailureTest.FailsWhenThereIsNoFatalFailure
        +[  FAILED  ] ExpectFatalFailureTest.FailsWhenThereAreTwoFatalFailures
        +[  FAILED  ] ExpectFatalFailureTest.FailsWhenThereIsOneNonfatalFailure
        +[  FAILED  ] ExpectFatalFailureTest.FailsWhenStatementReturns
        +[  FAILED  ] ExpectFatalFailureTest.FailsWhenStatementThrows
        +[  FAILED  ] TypedTest/0.Failure, where TypeParam = int
        +[  FAILED  ] Unsigned/TypedTestP/0.Failure, where TypeParam = unsigned char
        +[  FAILED  ] Unsigned/TypedTestP/1.Failure, where TypeParam = unsigned int
        +[  FAILED  ] ExpectFailureTest.ExpectFatalFailure
        +[  FAILED  ] ExpectFailureTest.ExpectNonFatalFailure
        +[  FAILED  ] ExpectFailureTest.ExpectFatalFailureOnAllThreads
        +[  FAILED  ] ExpectFailureTest.ExpectNonFatalFailureOnAllThreads
        +[  FAILED  ] ExpectFailureWithThreadsTest.ExpectFatalFailure
        +[  FAILED  ] ExpectFailureWithThreadsTest.ExpectNonFatalFailure
        +[  FAILED  ] ScopedFakeTestPartResultReporterTest.InterceptOnlyCurrentThread
        +[  FAILED  ] PrintingFailingParams/FailingParamTest.Fails/0, where GetParam() = 2
        +[  FAILED  ] PrintingStrings/ParamTest.Failure/a, where GetParam() = "a"
        +
        +44 FAILED TESTS
        +  YOU HAVE 1 DISABLED TEST
        +
        +Note: Google Test filter = FatalFailureTest.*:LoggingTest.*
        +[==========] Running 4 tests from 2 test cases.
        +[----------] Global test environment set-up.
        +[----------] 3 tests from FatalFailureTest
        +[ RUN      ] FatalFailureTest.FatalFailureInSubroutine
        +(expecting a failure that x should be 1)
        +gtest_output_test_.cc:#: Failure
        +Value of: x
        +  Actual: 2
        +Expected: 1
        +[  FAILED  ] FatalFailureTest.FatalFailureInSubroutine (? ms)
        +[ RUN      ] FatalFailureTest.FatalFailureInNestedSubroutine
        +(expecting a failure that x should be 1)
        +gtest_output_test_.cc:#: Failure
        +Value of: x
        +  Actual: 2
        +Expected: 1
        +[  FAILED  ] FatalFailureTest.FatalFailureInNestedSubroutine (? ms)
        +[ RUN      ] FatalFailureTest.NonfatalFailureInSubroutine
        +(expecting a failure on false)
        +gtest_output_test_.cc:#: Failure
        +Value of: false
        +  Actual: false
        +Expected: true
        +[  FAILED  ] FatalFailureTest.NonfatalFailureInSubroutine (? ms)
        +[----------] 3 tests from FatalFailureTest (? ms total)
        +
        +[----------] 1 test from LoggingTest
        +[ RUN      ] LoggingTest.InterleavingLoggingAndAssertions
        +(expecting 2 failures on (3) >= (a[i]))
        +i == 0
        +i == 1
        +gtest_output_test_.cc:#: Failure
        +Expected: (3) >= (a[i]), actual: 3 vs 9
        +i == 2
        +i == 3
        +gtest_output_test_.cc:#: Failure
        +Expected: (3) >= (a[i]), actual: 3 vs 6
        +[  FAILED  ] LoggingTest.InterleavingLoggingAndAssertions (? ms)
        +[----------] 1 test from LoggingTest (? ms total)
        +
        +[----------] Global test environment tear-down
        +[==========] 4 tests from 2 test cases ran. (? ms total)
        +[  PASSED  ] 0 tests.
        +[  FAILED  ] 4 tests, listed below:
        +[  FAILED  ] FatalFailureTest.FatalFailureInSubroutine
        +[  FAILED  ] FatalFailureTest.FatalFailureInNestedSubroutine
        +[  FAILED  ] FatalFailureTest.NonfatalFailureInSubroutine
        +[  FAILED  ] LoggingTest.InterleavingLoggingAndAssertions
        +
        + 4 FAILED TESTS
        +Note: Google Test filter = *DISABLED_*
        +[==========] Running 1 test from 1 test case.
        +[----------] Global test environment set-up.
        +[----------] 1 test from DisabledTestsWarningTest
        +[ RUN      ] DisabledTestsWarningTest.DISABLED_AlsoRunDisabledTestsFlagSuppressesWarning
        +[       OK ] DisabledTestsWarningTest.DISABLED_AlsoRunDisabledTestsFlagSuppressesWarning
        +[----------] Global test environment tear-down
        +[==========] 1 test from 1 test case ran.
        +[  PASSED  ] 1 test.
        +Note: Google Test filter = PassingTest.*
        +Note: This is test shard 2 of 2.
        +[==========] Running 1 test from 1 test case.
        +[----------] Global test environment set-up.
        +[----------] 1 test from PassingTest
        +[ RUN      ] PassingTest.PassingTest2
        +[       OK ] PassingTest.PassingTest2
        +[----------] Global test environment tear-down
        +[==========] 1 test from 1 test case ran.
        +[  PASSED  ] 1 test.
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_pred_impl_unittest.cc b/lib/ann/fann/lib/googletest/test/gtest_pred_impl_unittest.cc
        new file mode 100644
        index 0000000..a84eff8
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_pred_impl_unittest.cc
        @@ -0,0 +1,2427 @@
        +// Copyright 2006, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +// This file is AUTOMATICALLY GENERATED on 10/31/2011 by command
        +// 'gen_gtest_pred_impl.py 5'.  DO NOT EDIT BY HAND!
        +
        +// Regression test for gtest_pred_impl.h
        +//
        +// This file is generated by a script and quite long.  If you intend to
        +// learn how Google Test works by reading its unit tests, read
        +// gtest_unittest.cc instead.
        +//
        +// This is intended as a regression test for the Google Test predicate
        +// assertions.  We compile it as part of the gtest_unittest target
        +// only to keep the implementation tidy and compact, as it is quite
        +// involved to set up the stage for testing Google Test using Google
        +// Test itself.
        +//
        +// Currently, gtest_unittest takes ~11 seconds to run in the testing
        +// daemon.  In the future, if it grows too large and needs much more
        +// time to finish, we should consider separating this file into a
        +// stand-alone regression test.
        +
        +#include <iostream>
        +
        +#include "gtest/gtest.h"
        +#include "gtest/gtest-spi.h"
        +
        +// A user-defined data type.
        +struct Bool {
        +  explicit Bool(int val) : value(val != 0) {}
        +
        +  bool operator>(int n) const { return value > Bool(n).value; }
        +
        +  Bool operator+(const Bool& rhs) const { return Bool(value + rhs.value); }
        +
        +  bool operator==(const Bool& rhs) const { return value == rhs.value; }
        +
        +  bool value;
        +};
        +
        +// Enables Bool to be used in assertions.
        +std::ostream& operator<<(std::ostream& os, const Bool& x) {
        +  return os << (x.value ? "true" : "false");
        +}
        +
        +// Sample functions/functors for testing unary predicate assertions.
        +
        +// A unary predicate function.
        +template <typename T1>
        +bool PredFunction1(T1 v1) {
        +  return v1 > 0;
        +}
        +
        +// The following two functions are needed to circumvent a bug in
        +// gcc 2.95.3, which sometimes has problem with the above template
        +// function.
        +bool PredFunction1Int(int v1) {
        +  return v1 > 0;
        +}
        +bool PredFunction1Bool(Bool v1) {
        +  return v1 > 0;
        +}
        +
        +// A unary predicate functor.
        +struct PredFunctor1 {
        +  template <typename T1>
        +  bool operator()(const T1& v1) {
        +    return v1 > 0;
        +  }
        +};
        +
        +// A unary predicate-formatter function.
        +template <typename T1>
        +testing::AssertionResult PredFormatFunction1(const char* e1,
        +                                             const T1& v1) {
        +  if (PredFunction1(v1))
        +    return testing::AssertionSuccess();
        +
        +  return testing::AssertionFailure()
        +      << e1
        +      << " is expected to be positive, but evaluates to "
        +      << v1 << ".";
        +}
        +
        +// A unary predicate-formatter functor.
        +struct PredFormatFunctor1 {
        +  template <typename T1>
        +  testing::AssertionResult operator()(const char* e1,
        +                                      const T1& v1) const {
        +    return PredFormatFunction1(e1, v1);
        +  }
        +};
        +
        +// Tests for {EXPECT|ASSERT}_PRED_FORMAT1.
        +
        +class Predicate1Test : public testing::Test {
        + protected:
        +  virtual void SetUp() {
        +    expected_to_finish_ = true;
        +    finished_ = false;
        +    n1_ = 0;
        +  }
        +
        +  virtual void TearDown() {
        +    // Verifies that each of the predicate's arguments was evaluated
        +    // exactly once.
        +    EXPECT_EQ(1, n1_) <<
        +        "The predicate assertion didn't evaluate argument 2 "
        +        "exactly once.";
        +
        +    // Verifies that the control flow in the test function is expected.
        +    if (expected_to_finish_ && !finished_) {
        +      FAIL() << "The predicate assertion unexpactedly aborted the test.";
        +    } else if (!expected_to_finish_ && finished_) {
        +      FAIL() << "The failed predicate assertion didn't abort the test "
        +                "as expected.";
        +    }
        +  }
        +
        +  // true iff the test function is expected to run to finish.
        +  static bool expected_to_finish_;
        +
        +  // true iff the test function did run to finish.
        +  static bool finished_;
        +
        +  static int n1_;
        +};
        +
        +bool Predicate1Test::expected_to_finish_;
        +bool Predicate1Test::finished_;
        +int Predicate1Test::n1_;
        +
        +typedef Predicate1Test EXPECT_PRED_FORMAT1Test;
        +typedef Predicate1Test ASSERT_PRED_FORMAT1Test;
        +typedef Predicate1Test EXPECT_PRED1Test;
        +typedef Predicate1Test ASSERT_PRED1Test;
        +
        +// Tests a successful EXPECT_PRED1 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(EXPECT_PRED1Test, FunctionOnBuiltInTypeSuccess) {
        +  EXPECT_PRED1(PredFunction1Int,
        +               ++n1_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful EXPECT_PRED1 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED1Test, FunctionOnUserTypeSuccess) {
        +  EXPECT_PRED1(PredFunction1Bool,
        +               Bool(++n1_));
        +  finished_ = true;
        +}
        +
        +// Tests a successful EXPECT_PRED1 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(EXPECT_PRED1Test, FunctorOnBuiltInTypeSuccess) {
        +  EXPECT_PRED1(PredFunctor1(),
        +               ++n1_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful EXPECT_PRED1 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED1Test, FunctorOnUserTypeSuccess) {
        +  EXPECT_PRED1(PredFunctor1(),
        +               Bool(++n1_));
        +  finished_ = true;
        +}
        +
        +// Tests a failed EXPECT_PRED1 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(EXPECT_PRED1Test, FunctionOnBuiltInTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED1(PredFunction1Int,
        +                 n1_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed EXPECT_PRED1 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED1Test, FunctionOnUserTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED1(PredFunction1Bool,
        +                 Bool(n1_++));
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed EXPECT_PRED1 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(EXPECT_PRED1Test, FunctorOnBuiltInTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED1(PredFunctor1(),
        +                 n1_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed EXPECT_PRED1 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED1Test, FunctorOnUserTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED1(PredFunctor1(),
        +                 Bool(n1_++));
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a successful ASSERT_PRED1 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(ASSERT_PRED1Test, FunctionOnBuiltInTypeSuccess) {
        +  ASSERT_PRED1(PredFunction1Int,
        +               ++n1_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful ASSERT_PRED1 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED1Test, FunctionOnUserTypeSuccess) {
        +  ASSERT_PRED1(PredFunction1Bool,
        +               Bool(++n1_));
        +  finished_ = true;
        +}
        +
        +// Tests a successful ASSERT_PRED1 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(ASSERT_PRED1Test, FunctorOnBuiltInTypeSuccess) {
        +  ASSERT_PRED1(PredFunctor1(),
        +               ++n1_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful ASSERT_PRED1 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED1Test, FunctorOnUserTypeSuccess) {
        +  ASSERT_PRED1(PredFunctor1(),
        +               Bool(++n1_));
        +  finished_ = true;
        +}
        +
        +// Tests a failed ASSERT_PRED1 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(ASSERT_PRED1Test, FunctionOnBuiltInTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED1(PredFunction1Int,
        +                 n1_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed ASSERT_PRED1 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED1Test, FunctionOnUserTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED1(PredFunction1Bool,
        +                 Bool(n1_++));
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed ASSERT_PRED1 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(ASSERT_PRED1Test, FunctorOnBuiltInTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED1(PredFunctor1(),
        +                 n1_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed ASSERT_PRED1 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED1Test, FunctorOnUserTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED1(PredFunctor1(),
        +                 Bool(n1_++));
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a successful EXPECT_PRED_FORMAT1 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(EXPECT_PRED_FORMAT1Test, FunctionOnBuiltInTypeSuccess) {
        +  EXPECT_PRED_FORMAT1(PredFormatFunction1,
        +                      ++n1_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful EXPECT_PRED_FORMAT1 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED_FORMAT1Test, FunctionOnUserTypeSuccess) {
        +  EXPECT_PRED_FORMAT1(PredFormatFunction1,
        +                      Bool(++n1_));
        +  finished_ = true;
        +}
        +
        +// Tests a successful EXPECT_PRED_FORMAT1 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(EXPECT_PRED_FORMAT1Test, FunctorOnBuiltInTypeSuccess) {
        +  EXPECT_PRED_FORMAT1(PredFormatFunctor1(),
        +                      ++n1_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful EXPECT_PRED_FORMAT1 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED_FORMAT1Test, FunctorOnUserTypeSuccess) {
        +  EXPECT_PRED_FORMAT1(PredFormatFunctor1(),
        +                      Bool(++n1_));
        +  finished_ = true;
        +}
        +
        +// Tests a failed EXPECT_PRED_FORMAT1 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(EXPECT_PRED_FORMAT1Test, FunctionOnBuiltInTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED_FORMAT1(PredFormatFunction1,
        +                        n1_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed EXPECT_PRED_FORMAT1 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED_FORMAT1Test, FunctionOnUserTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED_FORMAT1(PredFormatFunction1,
        +                        Bool(n1_++));
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed EXPECT_PRED_FORMAT1 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(EXPECT_PRED_FORMAT1Test, FunctorOnBuiltInTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED_FORMAT1(PredFormatFunctor1(),
        +                        n1_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed EXPECT_PRED_FORMAT1 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED_FORMAT1Test, FunctorOnUserTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED_FORMAT1(PredFormatFunctor1(),
        +                        Bool(n1_++));
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a successful ASSERT_PRED_FORMAT1 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(ASSERT_PRED_FORMAT1Test, FunctionOnBuiltInTypeSuccess) {
        +  ASSERT_PRED_FORMAT1(PredFormatFunction1,
        +                      ++n1_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful ASSERT_PRED_FORMAT1 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED_FORMAT1Test, FunctionOnUserTypeSuccess) {
        +  ASSERT_PRED_FORMAT1(PredFormatFunction1,
        +                      Bool(++n1_));
        +  finished_ = true;
        +}
        +
        +// Tests a successful ASSERT_PRED_FORMAT1 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(ASSERT_PRED_FORMAT1Test, FunctorOnBuiltInTypeSuccess) {
        +  ASSERT_PRED_FORMAT1(PredFormatFunctor1(),
        +                      ++n1_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful ASSERT_PRED_FORMAT1 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED_FORMAT1Test, FunctorOnUserTypeSuccess) {
        +  ASSERT_PRED_FORMAT1(PredFormatFunctor1(),
        +                      Bool(++n1_));
        +  finished_ = true;
        +}
        +
        +// Tests a failed ASSERT_PRED_FORMAT1 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(ASSERT_PRED_FORMAT1Test, FunctionOnBuiltInTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED_FORMAT1(PredFormatFunction1,
        +                        n1_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed ASSERT_PRED_FORMAT1 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED_FORMAT1Test, FunctionOnUserTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED_FORMAT1(PredFormatFunction1,
        +                        Bool(n1_++));
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed ASSERT_PRED_FORMAT1 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(ASSERT_PRED_FORMAT1Test, FunctorOnBuiltInTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED_FORMAT1(PredFormatFunctor1(),
        +                        n1_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed ASSERT_PRED_FORMAT1 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED_FORMAT1Test, FunctorOnUserTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED_FORMAT1(PredFormatFunctor1(),
        +                        Bool(n1_++));
        +    finished_ = true;
        +  }, "");
        +}
        +// Sample functions/functors for testing binary predicate assertions.
        +
        +// A binary predicate function.
        +template <typename T1, typename T2>
        +bool PredFunction2(T1 v1, T2 v2) {
        +  return v1 + v2 > 0;
        +}
        +
        +// The following two functions are needed to circumvent a bug in
        +// gcc 2.95.3, which sometimes has problem with the above template
        +// function.
        +bool PredFunction2Int(int v1, int v2) {
        +  return v1 + v2 > 0;
        +}
        +bool PredFunction2Bool(Bool v1, Bool v2) {
        +  return v1 + v2 > 0;
        +}
        +
        +// A binary predicate functor.
        +struct PredFunctor2 {
        +  template <typename T1, typename T2>
        +  bool operator()(const T1& v1,
        +                  const T2& v2) {
        +    return v1 + v2 > 0;
        +  }
        +};
        +
        +// A binary predicate-formatter function.
        +template <typename T1, typename T2>
        +testing::AssertionResult PredFormatFunction2(const char* e1,
        +                                             const char* e2,
        +                                             const T1& v1,
        +                                             const T2& v2) {
        +  if (PredFunction2(v1, v2))
        +    return testing::AssertionSuccess();
        +
        +  return testing::AssertionFailure()
        +      << e1 << " + " << e2
        +      << " is expected to be positive, but evaluates to "
        +      << v1 + v2 << ".";
        +}
        +
        +// A binary predicate-formatter functor.
        +struct PredFormatFunctor2 {
        +  template <typename T1, typename T2>
        +  testing::AssertionResult operator()(const char* e1,
        +                                      const char* e2,
        +                                      const T1& v1,
        +                                      const T2& v2) const {
        +    return PredFormatFunction2(e1, e2, v1, v2);
        +  }
        +};
        +
        +// Tests for {EXPECT|ASSERT}_PRED_FORMAT2.
        +
        +class Predicate2Test : public testing::Test {
        + protected:
        +  virtual void SetUp() {
        +    expected_to_finish_ = true;
        +    finished_ = false;
        +    n1_ = n2_ = 0;
        +  }
        +
        +  virtual void TearDown() {
        +    // Verifies that each of the predicate's arguments was evaluated
        +    // exactly once.
        +    EXPECT_EQ(1, n1_) <<
        +        "The predicate assertion didn't evaluate argument 2 "
        +        "exactly once.";
        +    EXPECT_EQ(1, n2_) <<
        +        "The predicate assertion didn't evaluate argument 3 "
        +        "exactly once.";
        +
        +    // Verifies that the control flow in the test function is expected.
        +    if (expected_to_finish_ && !finished_) {
        +      FAIL() << "The predicate assertion unexpactedly aborted the test.";
        +    } else if (!expected_to_finish_ && finished_) {
        +      FAIL() << "The failed predicate assertion didn't abort the test "
        +                "as expected.";
        +    }
        +  }
        +
        +  // true iff the test function is expected to run to finish.
        +  static bool expected_to_finish_;
        +
        +  // true iff the test function did run to finish.
        +  static bool finished_;
        +
        +  static int n1_;
        +  static int n2_;
        +};
        +
        +bool Predicate2Test::expected_to_finish_;
        +bool Predicate2Test::finished_;
        +int Predicate2Test::n1_;
        +int Predicate2Test::n2_;
        +
        +typedef Predicate2Test EXPECT_PRED_FORMAT2Test;
        +typedef Predicate2Test ASSERT_PRED_FORMAT2Test;
        +typedef Predicate2Test EXPECT_PRED2Test;
        +typedef Predicate2Test ASSERT_PRED2Test;
        +
        +// Tests a successful EXPECT_PRED2 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(EXPECT_PRED2Test, FunctionOnBuiltInTypeSuccess) {
        +  EXPECT_PRED2(PredFunction2Int,
        +               ++n1_,
        +               ++n2_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful EXPECT_PRED2 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED2Test, FunctionOnUserTypeSuccess) {
        +  EXPECT_PRED2(PredFunction2Bool,
        +               Bool(++n1_),
        +               Bool(++n2_));
        +  finished_ = true;
        +}
        +
        +// Tests a successful EXPECT_PRED2 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(EXPECT_PRED2Test, FunctorOnBuiltInTypeSuccess) {
        +  EXPECT_PRED2(PredFunctor2(),
        +               ++n1_,
        +               ++n2_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful EXPECT_PRED2 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED2Test, FunctorOnUserTypeSuccess) {
        +  EXPECT_PRED2(PredFunctor2(),
        +               Bool(++n1_),
        +               Bool(++n2_));
        +  finished_ = true;
        +}
        +
        +// Tests a failed EXPECT_PRED2 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(EXPECT_PRED2Test, FunctionOnBuiltInTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED2(PredFunction2Int,
        +                 n1_++,
        +                 n2_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed EXPECT_PRED2 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED2Test, FunctionOnUserTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED2(PredFunction2Bool,
        +                 Bool(n1_++),
        +                 Bool(n2_++));
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed EXPECT_PRED2 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(EXPECT_PRED2Test, FunctorOnBuiltInTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED2(PredFunctor2(),
        +                 n1_++,
        +                 n2_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed EXPECT_PRED2 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED2Test, FunctorOnUserTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED2(PredFunctor2(),
        +                 Bool(n1_++),
        +                 Bool(n2_++));
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a successful ASSERT_PRED2 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(ASSERT_PRED2Test, FunctionOnBuiltInTypeSuccess) {
        +  ASSERT_PRED2(PredFunction2Int,
        +               ++n1_,
        +               ++n2_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful ASSERT_PRED2 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED2Test, FunctionOnUserTypeSuccess) {
        +  ASSERT_PRED2(PredFunction2Bool,
        +               Bool(++n1_),
        +               Bool(++n2_));
        +  finished_ = true;
        +}
        +
        +// Tests a successful ASSERT_PRED2 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(ASSERT_PRED2Test, FunctorOnBuiltInTypeSuccess) {
        +  ASSERT_PRED2(PredFunctor2(),
        +               ++n1_,
        +               ++n2_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful ASSERT_PRED2 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED2Test, FunctorOnUserTypeSuccess) {
        +  ASSERT_PRED2(PredFunctor2(),
        +               Bool(++n1_),
        +               Bool(++n2_));
        +  finished_ = true;
        +}
        +
        +// Tests a failed ASSERT_PRED2 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(ASSERT_PRED2Test, FunctionOnBuiltInTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED2(PredFunction2Int,
        +                 n1_++,
        +                 n2_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed ASSERT_PRED2 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED2Test, FunctionOnUserTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED2(PredFunction2Bool,
        +                 Bool(n1_++),
        +                 Bool(n2_++));
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed ASSERT_PRED2 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(ASSERT_PRED2Test, FunctorOnBuiltInTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED2(PredFunctor2(),
        +                 n1_++,
        +                 n2_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed ASSERT_PRED2 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED2Test, FunctorOnUserTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED2(PredFunctor2(),
        +                 Bool(n1_++),
        +                 Bool(n2_++));
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a successful EXPECT_PRED_FORMAT2 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(EXPECT_PRED_FORMAT2Test, FunctionOnBuiltInTypeSuccess) {
        +  EXPECT_PRED_FORMAT2(PredFormatFunction2,
        +                      ++n1_,
        +                      ++n2_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful EXPECT_PRED_FORMAT2 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED_FORMAT2Test, FunctionOnUserTypeSuccess) {
        +  EXPECT_PRED_FORMAT2(PredFormatFunction2,
        +                      Bool(++n1_),
        +                      Bool(++n2_));
        +  finished_ = true;
        +}
        +
        +// Tests a successful EXPECT_PRED_FORMAT2 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(EXPECT_PRED_FORMAT2Test, FunctorOnBuiltInTypeSuccess) {
        +  EXPECT_PRED_FORMAT2(PredFormatFunctor2(),
        +                      ++n1_,
        +                      ++n2_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful EXPECT_PRED_FORMAT2 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED_FORMAT2Test, FunctorOnUserTypeSuccess) {
        +  EXPECT_PRED_FORMAT2(PredFormatFunctor2(),
        +                      Bool(++n1_),
        +                      Bool(++n2_));
        +  finished_ = true;
        +}
        +
        +// Tests a failed EXPECT_PRED_FORMAT2 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(EXPECT_PRED_FORMAT2Test, FunctionOnBuiltInTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED_FORMAT2(PredFormatFunction2,
        +                        n1_++,
        +                        n2_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed EXPECT_PRED_FORMAT2 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED_FORMAT2Test, FunctionOnUserTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED_FORMAT2(PredFormatFunction2,
        +                        Bool(n1_++),
        +                        Bool(n2_++));
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed EXPECT_PRED_FORMAT2 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(EXPECT_PRED_FORMAT2Test, FunctorOnBuiltInTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED_FORMAT2(PredFormatFunctor2(),
        +                        n1_++,
        +                        n2_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed EXPECT_PRED_FORMAT2 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED_FORMAT2Test, FunctorOnUserTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED_FORMAT2(PredFormatFunctor2(),
        +                        Bool(n1_++),
        +                        Bool(n2_++));
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a successful ASSERT_PRED_FORMAT2 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(ASSERT_PRED_FORMAT2Test, FunctionOnBuiltInTypeSuccess) {
        +  ASSERT_PRED_FORMAT2(PredFormatFunction2,
        +                      ++n1_,
        +                      ++n2_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful ASSERT_PRED_FORMAT2 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED_FORMAT2Test, FunctionOnUserTypeSuccess) {
        +  ASSERT_PRED_FORMAT2(PredFormatFunction2,
        +                      Bool(++n1_),
        +                      Bool(++n2_));
        +  finished_ = true;
        +}
        +
        +// Tests a successful ASSERT_PRED_FORMAT2 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(ASSERT_PRED_FORMAT2Test, FunctorOnBuiltInTypeSuccess) {
        +  ASSERT_PRED_FORMAT2(PredFormatFunctor2(),
        +                      ++n1_,
        +                      ++n2_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful ASSERT_PRED_FORMAT2 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED_FORMAT2Test, FunctorOnUserTypeSuccess) {
        +  ASSERT_PRED_FORMAT2(PredFormatFunctor2(),
        +                      Bool(++n1_),
        +                      Bool(++n2_));
        +  finished_ = true;
        +}
        +
        +// Tests a failed ASSERT_PRED_FORMAT2 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(ASSERT_PRED_FORMAT2Test, FunctionOnBuiltInTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED_FORMAT2(PredFormatFunction2,
        +                        n1_++,
        +                        n2_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed ASSERT_PRED_FORMAT2 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED_FORMAT2Test, FunctionOnUserTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED_FORMAT2(PredFormatFunction2,
        +                        Bool(n1_++),
        +                        Bool(n2_++));
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed ASSERT_PRED_FORMAT2 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(ASSERT_PRED_FORMAT2Test, FunctorOnBuiltInTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED_FORMAT2(PredFormatFunctor2(),
        +                        n1_++,
        +                        n2_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed ASSERT_PRED_FORMAT2 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED_FORMAT2Test, FunctorOnUserTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED_FORMAT2(PredFormatFunctor2(),
        +                        Bool(n1_++),
        +                        Bool(n2_++));
        +    finished_ = true;
        +  }, "");
        +}
        +// Sample functions/functors for testing ternary predicate assertions.
        +
        +// A ternary predicate function.
        +template <typename T1, typename T2, typename T3>
        +bool PredFunction3(T1 v1, T2 v2, T3 v3) {
        +  return v1 + v2 + v3 > 0;
        +}
        +
        +// The following two functions are needed to circumvent a bug in
        +// gcc 2.95.3, which sometimes has problem with the above template
        +// function.
        +bool PredFunction3Int(int v1, int v2, int v3) {
        +  return v1 + v2 + v3 > 0;
        +}
        +bool PredFunction3Bool(Bool v1, Bool v2, Bool v3) {
        +  return v1 + v2 + v3 > 0;
        +}
        +
        +// A ternary predicate functor.
        +struct PredFunctor3 {
        +  template <typename T1, typename T2, typename T3>
        +  bool operator()(const T1& v1,
        +                  const T2& v2,
        +                  const T3& v3) {
        +    return v1 + v2 + v3 > 0;
        +  }
        +};
        +
        +// A ternary predicate-formatter function.
        +template <typename T1, typename T2, typename T3>
        +testing::AssertionResult PredFormatFunction3(const char* e1,
        +                                             const char* e2,
        +                                             const char* e3,
        +                                             const T1& v1,
        +                                             const T2& v2,
        +                                             const T3& v3) {
        +  if (PredFunction3(v1, v2, v3))
        +    return testing::AssertionSuccess();
        +
        +  return testing::AssertionFailure()
        +      << e1 << " + " << e2 << " + " << e3
        +      << " is expected to be positive, but evaluates to "
        +      << v1 + v2 + v3 << ".";
        +}
        +
        +// A ternary predicate-formatter functor.
        +struct PredFormatFunctor3 {
        +  template <typename T1, typename T2, typename T3>
        +  testing::AssertionResult operator()(const char* e1,
        +                                      const char* e2,
        +                                      const char* e3,
        +                                      const T1& v1,
        +                                      const T2& v2,
        +                                      const T3& v3) const {
        +    return PredFormatFunction3(e1, e2, e3, v1, v2, v3);
        +  }
        +};
        +
        +// Tests for {EXPECT|ASSERT}_PRED_FORMAT3.
        +
        +class Predicate3Test : public testing::Test {
        + protected:
        +  virtual void SetUp() {
        +    expected_to_finish_ = true;
        +    finished_ = false;
        +    n1_ = n2_ = n3_ = 0;
        +  }
        +
        +  virtual void TearDown() {
        +    // Verifies that each of the predicate's arguments was evaluated
        +    // exactly once.
        +    EXPECT_EQ(1, n1_) <<
        +        "The predicate assertion didn't evaluate argument 2 "
        +        "exactly once.";
        +    EXPECT_EQ(1, n2_) <<
        +        "The predicate assertion didn't evaluate argument 3 "
        +        "exactly once.";
        +    EXPECT_EQ(1, n3_) <<
        +        "The predicate assertion didn't evaluate argument 4 "
        +        "exactly once.";
        +
        +    // Verifies that the control flow in the test function is expected.
        +    if (expected_to_finish_ && !finished_) {
        +      FAIL() << "The predicate assertion unexpactedly aborted the test.";
        +    } else if (!expected_to_finish_ && finished_) {
        +      FAIL() << "The failed predicate assertion didn't abort the test "
        +                "as expected.";
        +    }
        +  }
        +
        +  // true iff the test function is expected to run to finish.
        +  static bool expected_to_finish_;
        +
        +  // true iff the test function did run to finish.
        +  static bool finished_;
        +
        +  static int n1_;
        +  static int n2_;
        +  static int n3_;
        +};
        +
        +bool Predicate3Test::expected_to_finish_;
        +bool Predicate3Test::finished_;
        +int Predicate3Test::n1_;
        +int Predicate3Test::n2_;
        +int Predicate3Test::n3_;
        +
        +typedef Predicate3Test EXPECT_PRED_FORMAT3Test;
        +typedef Predicate3Test ASSERT_PRED_FORMAT3Test;
        +typedef Predicate3Test EXPECT_PRED3Test;
        +typedef Predicate3Test ASSERT_PRED3Test;
        +
        +// Tests a successful EXPECT_PRED3 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(EXPECT_PRED3Test, FunctionOnBuiltInTypeSuccess) {
        +  EXPECT_PRED3(PredFunction3Int,
        +               ++n1_,
        +               ++n2_,
        +               ++n3_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful EXPECT_PRED3 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED3Test, FunctionOnUserTypeSuccess) {
        +  EXPECT_PRED3(PredFunction3Bool,
        +               Bool(++n1_),
        +               Bool(++n2_),
        +               Bool(++n3_));
        +  finished_ = true;
        +}
        +
        +// Tests a successful EXPECT_PRED3 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(EXPECT_PRED3Test, FunctorOnBuiltInTypeSuccess) {
        +  EXPECT_PRED3(PredFunctor3(),
        +               ++n1_,
        +               ++n2_,
        +               ++n3_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful EXPECT_PRED3 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED3Test, FunctorOnUserTypeSuccess) {
        +  EXPECT_PRED3(PredFunctor3(),
        +               Bool(++n1_),
        +               Bool(++n2_),
        +               Bool(++n3_));
        +  finished_ = true;
        +}
        +
        +// Tests a failed EXPECT_PRED3 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(EXPECT_PRED3Test, FunctionOnBuiltInTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED3(PredFunction3Int,
        +                 n1_++,
        +                 n2_++,
        +                 n3_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed EXPECT_PRED3 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED3Test, FunctionOnUserTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED3(PredFunction3Bool,
        +                 Bool(n1_++),
        +                 Bool(n2_++),
        +                 Bool(n3_++));
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed EXPECT_PRED3 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(EXPECT_PRED3Test, FunctorOnBuiltInTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED3(PredFunctor3(),
        +                 n1_++,
        +                 n2_++,
        +                 n3_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed EXPECT_PRED3 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED3Test, FunctorOnUserTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED3(PredFunctor3(),
        +                 Bool(n1_++),
        +                 Bool(n2_++),
        +                 Bool(n3_++));
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a successful ASSERT_PRED3 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(ASSERT_PRED3Test, FunctionOnBuiltInTypeSuccess) {
        +  ASSERT_PRED3(PredFunction3Int,
        +               ++n1_,
        +               ++n2_,
        +               ++n3_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful ASSERT_PRED3 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED3Test, FunctionOnUserTypeSuccess) {
        +  ASSERT_PRED3(PredFunction3Bool,
        +               Bool(++n1_),
        +               Bool(++n2_),
        +               Bool(++n3_));
        +  finished_ = true;
        +}
        +
        +// Tests a successful ASSERT_PRED3 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(ASSERT_PRED3Test, FunctorOnBuiltInTypeSuccess) {
        +  ASSERT_PRED3(PredFunctor3(),
        +               ++n1_,
        +               ++n2_,
        +               ++n3_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful ASSERT_PRED3 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED3Test, FunctorOnUserTypeSuccess) {
        +  ASSERT_PRED3(PredFunctor3(),
        +               Bool(++n1_),
        +               Bool(++n2_),
        +               Bool(++n3_));
        +  finished_ = true;
        +}
        +
        +// Tests a failed ASSERT_PRED3 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(ASSERT_PRED3Test, FunctionOnBuiltInTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED3(PredFunction3Int,
        +                 n1_++,
        +                 n2_++,
        +                 n3_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed ASSERT_PRED3 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED3Test, FunctionOnUserTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED3(PredFunction3Bool,
        +                 Bool(n1_++),
        +                 Bool(n2_++),
        +                 Bool(n3_++));
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed ASSERT_PRED3 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(ASSERT_PRED3Test, FunctorOnBuiltInTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED3(PredFunctor3(),
        +                 n1_++,
        +                 n2_++,
        +                 n3_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed ASSERT_PRED3 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED3Test, FunctorOnUserTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED3(PredFunctor3(),
        +                 Bool(n1_++),
        +                 Bool(n2_++),
        +                 Bool(n3_++));
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a successful EXPECT_PRED_FORMAT3 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(EXPECT_PRED_FORMAT3Test, FunctionOnBuiltInTypeSuccess) {
        +  EXPECT_PRED_FORMAT3(PredFormatFunction3,
        +                      ++n1_,
        +                      ++n2_,
        +                      ++n3_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful EXPECT_PRED_FORMAT3 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED_FORMAT3Test, FunctionOnUserTypeSuccess) {
        +  EXPECT_PRED_FORMAT3(PredFormatFunction3,
        +                      Bool(++n1_),
        +                      Bool(++n2_),
        +                      Bool(++n3_));
        +  finished_ = true;
        +}
        +
        +// Tests a successful EXPECT_PRED_FORMAT3 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(EXPECT_PRED_FORMAT3Test, FunctorOnBuiltInTypeSuccess) {
        +  EXPECT_PRED_FORMAT3(PredFormatFunctor3(),
        +                      ++n1_,
        +                      ++n2_,
        +                      ++n3_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful EXPECT_PRED_FORMAT3 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED_FORMAT3Test, FunctorOnUserTypeSuccess) {
        +  EXPECT_PRED_FORMAT3(PredFormatFunctor3(),
        +                      Bool(++n1_),
        +                      Bool(++n2_),
        +                      Bool(++n3_));
        +  finished_ = true;
        +}
        +
        +// Tests a failed EXPECT_PRED_FORMAT3 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(EXPECT_PRED_FORMAT3Test, FunctionOnBuiltInTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED_FORMAT3(PredFormatFunction3,
        +                        n1_++,
        +                        n2_++,
        +                        n3_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed EXPECT_PRED_FORMAT3 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED_FORMAT3Test, FunctionOnUserTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED_FORMAT3(PredFormatFunction3,
        +                        Bool(n1_++),
        +                        Bool(n2_++),
        +                        Bool(n3_++));
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed EXPECT_PRED_FORMAT3 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(EXPECT_PRED_FORMAT3Test, FunctorOnBuiltInTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED_FORMAT3(PredFormatFunctor3(),
        +                        n1_++,
        +                        n2_++,
        +                        n3_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed EXPECT_PRED_FORMAT3 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED_FORMAT3Test, FunctorOnUserTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED_FORMAT3(PredFormatFunctor3(),
        +                        Bool(n1_++),
        +                        Bool(n2_++),
        +                        Bool(n3_++));
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a successful ASSERT_PRED_FORMAT3 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(ASSERT_PRED_FORMAT3Test, FunctionOnBuiltInTypeSuccess) {
        +  ASSERT_PRED_FORMAT3(PredFormatFunction3,
        +                      ++n1_,
        +                      ++n2_,
        +                      ++n3_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful ASSERT_PRED_FORMAT3 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED_FORMAT3Test, FunctionOnUserTypeSuccess) {
        +  ASSERT_PRED_FORMAT3(PredFormatFunction3,
        +                      Bool(++n1_),
        +                      Bool(++n2_),
        +                      Bool(++n3_));
        +  finished_ = true;
        +}
        +
        +// Tests a successful ASSERT_PRED_FORMAT3 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(ASSERT_PRED_FORMAT3Test, FunctorOnBuiltInTypeSuccess) {
        +  ASSERT_PRED_FORMAT3(PredFormatFunctor3(),
        +                      ++n1_,
        +                      ++n2_,
        +                      ++n3_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful ASSERT_PRED_FORMAT3 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED_FORMAT3Test, FunctorOnUserTypeSuccess) {
        +  ASSERT_PRED_FORMAT3(PredFormatFunctor3(),
        +                      Bool(++n1_),
        +                      Bool(++n2_),
        +                      Bool(++n3_));
        +  finished_ = true;
        +}
        +
        +// Tests a failed ASSERT_PRED_FORMAT3 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(ASSERT_PRED_FORMAT3Test, FunctionOnBuiltInTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED_FORMAT3(PredFormatFunction3,
        +                        n1_++,
        +                        n2_++,
        +                        n3_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed ASSERT_PRED_FORMAT3 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED_FORMAT3Test, FunctionOnUserTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED_FORMAT3(PredFormatFunction3,
        +                        Bool(n1_++),
        +                        Bool(n2_++),
        +                        Bool(n3_++));
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed ASSERT_PRED_FORMAT3 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(ASSERT_PRED_FORMAT3Test, FunctorOnBuiltInTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED_FORMAT3(PredFormatFunctor3(),
        +                        n1_++,
        +                        n2_++,
        +                        n3_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed ASSERT_PRED_FORMAT3 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED_FORMAT3Test, FunctorOnUserTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED_FORMAT3(PredFormatFunctor3(),
        +                        Bool(n1_++),
        +                        Bool(n2_++),
        +                        Bool(n3_++));
        +    finished_ = true;
        +  }, "");
        +}
        +// Sample functions/functors for testing 4-ary predicate assertions.
        +
        +// A 4-ary predicate function.
        +template <typename T1, typename T2, typename T3, typename T4>
        +bool PredFunction4(T1 v1, T2 v2, T3 v3, T4 v4) {
        +  return v1 + v2 + v3 + v4 > 0;
        +}
        +
        +// The following two functions are needed to circumvent a bug in
        +// gcc 2.95.3, which sometimes has problem with the above template
        +// function.
        +bool PredFunction4Int(int v1, int v2, int v3, int v4) {
        +  return v1 + v2 + v3 + v4 > 0;
        +}
        +bool PredFunction4Bool(Bool v1, Bool v2, Bool v3, Bool v4) {
        +  return v1 + v2 + v3 + v4 > 0;
        +}
        +
        +// A 4-ary predicate functor.
        +struct PredFunctor4 {
        +  template <typename T1, typename T2, typename T3, typename T4>
        +  bool operator()(const T1& v1,
        +                  const T2& v2,
        +                  const T3& v3,
        +                  const T4& v4) {
        +    return v1 + v2 + v3 + v4 > 0;
        +  }
        +};
        +
        +// A 4-ary predicate-formatter function.
        +template <typename T1, typename T2, typename T3, typename T4>
        +testing::AssertionResult PredFormatFunction4(const char* e1,
        +                                             const char* e2,
        +                                             const char* e3,
        +                                             const char* e4,
        +                                             const T1& v1,
        +                                             const T2& v2,
        +                                             const T3& v3,
        +                                             const T4& v4) {
        +  if (PredFunction4(v1, v2, v3, v4))
        +    return testing::AssertionSuccess();
        +
        +  return testing::AssertionFailure()
        +      << e1 << " + " << e2 << " + " << e3 << " + " << e4
        +      << " is expected to be positive, but evaluates to "
        +      << v1 + v2 + v3 + v4 << ".";
        +}
        +
        +// A 4-ary predicate-formatter functor.
        +struct PredFormatFunctor4 {
        +  template <typename T1, typename T2, typename T3, typename T4>
        +  testing::AssertionResult operator()(const char* e1,
        +                                      const char* e2,
        +                                      const char* e3,
        +                                      const char* e4,
        +                                      const T1& v1,
        +                                      const T2& v2,
        +                                      const T3& v3,
        +                                      const T4& v4) const {
        +    return PredFormatFunction4(e1, e2, e3, e4, v1, v2, v3, v4);
        +  }
        +};
        +
        +// Tests for {EXPECT|ASSERT}_PRED_FORMAT4.
        +
        +class Predicate4Test : public testing::Test {
        + protected:
        +  virtual void SetUp() {
        +    expected_to_finish_ = true;
        +    finished_ = false;
        +    n1_ = n2_ = n3_ = n4_ = 0;
        +  }
        +
        +  virtual void TearDown() {
        +    // Verifies that each of the predicate's arguments was evaluated
        +    // exactly once.
        +    EXPECT_EQ(1, n1_) <<
        +        "The predicate assertion didn't evaluate argument 2 "
        +        "exactly once.";
        +    EXPECT_EQ(1, n2_) <<
        +        "The predicate assertion didn't evaluate argument 3 "
        +        "exactly once.";
        +    EXPECT_EQ(1, n3_) <<
        +        "The predicate assertion didn't evaluate argument 4 "
        +        "exactly once.";
        +    EXPECT_EQ(1, n4_) <<
        +        "The predicate assertion didn't evaluate argument 5 "
        +        "exactly once.";
        +
        +    // Verifies that the control flow in the test function is expected.
        +    if (expected_to_finish_ && !finished_) {
        +      FAIL() << "The predicate assertion unexpactedly aborted the test.";
        +    } else if (!expected_to_finish_ && finished_) {
        +      FAIL() << "The failed predicate assertion didn't abort the test "
        +                "as expected.";
        +    }
        +  }
        +
        +  // true iff the test function is expected to run to finish.
        +  static bool expected_to_finish_;
        +
        +  // true iff the test function did run to finish.
        +  static bool finished_;
        +
        +  static int n1_;
        +  static int n2_;
        +  static int n3_;
        +  static int n4_;
        +};
        +
        +bool Predicate4Test::expected_to_finish_;
        +bool Predicate4Test::finished_;
        +int Predicate4Test::n1_;
        +int Predicate4Test::n2_;
        +int Predicate4Test::n3_;
        +int Predicate4Test::n4_;
        +
        +typedef Predicate4Test EXPECT_PRED_FORMAT4Test;
        +typedef Predicate4Test ASSERT_PRED_FORMAT4Test;
        +typedef Predicate4Test EXPECT_PRED4Test;
        +typedef Predicate4Test ASSERT_PRED4Test;
        +
        +// Tests a successful EXPECT_PRED4 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(EXPECT_PRED4Test, FunctionOnBuiltInTypeSuccess) {
        +  EXPECT_PRED4(PredFunction4Int,
        +               ++n1_,
        +               ++n2_,
        +               ++n3_,
        +               ++n4_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful EXPECT_PRED4 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED4Test, FunctionOnUserTypeSuccess) {
        +  EXPECT_PRED4(PredFunction4Bool,
        +               Bool(++n1_),
        +               Bool(++n2_),
        +               Bool(++n3_),
        +               Bool(++n4_));
        +  finished_ = true;
        +}
        +
        +// Tests a successful EXPECT_PRED4 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(EXPECT_PRED4Test, FunctorOnBuiltInTypeSuccess) {
        +  EXPECT_PRED4(PredFunctor4(),
        +               ++n1_,
        +               ++n2_,
        +               ++n3_,
        +               ++n4_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful EXPECT_PRED4 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED4Test, FunctorOnUserTypeSuccess) {
        +  EXPECT_PRED4(PredFunctor4(),
        +               Bool(++n1_),
        +               Bool(++n2_),
        +               Bool(++n3_),
        +               Bool(++n4_));
        +  finished_ = true;
        +}
        +
        +// Tests a failed EXPECT_PRED4 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(EXPECT_PRED4Test, FunctionOnBuiltInTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED4(PredFunction4Int,
        +                 n1_++,
        +                 n2_++,
        +                 n3_++,
        +                 n4_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed EXPECT_PRED4 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED4Test, FunctionOnUserTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED4(PredFunction4Bool,
        +                 Bool(n1_++),
        +                 Bool(n2_++),
        +                 Bool(n3_++),
        +                 Bool(n4_++));
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed EXPECT_PRED4 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(EXPECT_PRED4Test, FunctorOnBuiltInTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED4(PredFunctor4(),
        +                 n1_++,
        +                 n2_++,
        +                 n3_++,
        +                 n4_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed EXPECT_PRED4 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED4Test, FunctorOnUserTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED4(PredFunctor4(),
        +                 Bool(n1_++),
        +                 Bool(n2_++),
        +                 Bool(n3_++),
        +                 Bool(n4_++));
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a successful ASSERT_PRED4 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(ASSERT_PRED4Test, FunctionOnBuiltInTypeSuccess) {
        +  ASSERT_PRED4(PredFunction4Int,
        +               ++n1_,
        +               ++n2_,
        +               ++n3_,
        +               ++n4_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful ASSERT_PRED4 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED4Test, FunctionOnUserTypeSuccess) {
        +  ASSERT_PRED4(PredFunction4Bool,
        +               Bool(++n1_),
        +               Bool(++n2_),
        +               Bool(++n3_),
        +               Bool(++n4_));
        +  finished_ = true;
        +}
        +
        +// Tests a successful ASSERT_PRED4 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(ASSERT_PRED4Test, FunctorOnBuiltInTypeSuccess) {
        +  ASSERT_PRED4(PredFunctor4(),
        +               ++n1_,
        +               ++n2_,
        +               ++n3_,
        +               ++n4_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful ASSERT_PRED4 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED4Test, FunctorOnUserTypeSuccess) {
        +  ASSERT_PRED4(PredFunctor4(),
        +               Bool(++n1_),
        +               Bool(++n2_),
        +               Bool(++n3_),
        +               Bool(++n4_));
        +  finished_ = true;
        +}
        +
        +// Tests a failed ASSERT_PRED4 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(ASSERT_PRED4Test, FunctionOnBuiltInTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED4(PredFunction4Int,
        +                 n1_++,
        +                 n2_++,
        +                 n3_++,
        +                 n4_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed ASSERT_PRED4 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED4Test, FunctionOnUserTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED4(PredFunction4Bool,
        +                 Bool(n1_++),
        +                 Bool(n2_++),
        +                 Bool(n3_++),
        +                 Bool(n4_++));
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed ASSERT_PRED4 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(ASSERT_PRED4Test, FunctorOnBuiltInTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED4(PredFunctor4(),
        +                 n1_++,
        +                 n2_++,
        +                 n3_++,
        +                 n4_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed ASSERT_PRED4 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED4Test, FunctorOnUserTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED4(PredFunctor4(),
        +                 Bool(n1_++),
        +                 Bool(n2_++),
        +                 Bool(n3_++),
        +                 Bool(n4_++));
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a successful EXPECT_PRED_FORMAT4 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(EXPECT_PRED_FORMAT4Test, FunctionOnBuiltInTypeSuccess) {
        +  EXPECT_PRED_FORMAT4(PredFormatFunction4,
        +                      ++n1_,
        +                      ++n2_,
        +                      ++n3_,
        +                      ++n4_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful EXPECT_PRED_FORMAT4 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED_FORMAT4Test, FunctionOnUserTypeSuccess) {
        +  EXPECT_PRED_FORMAT4(PredFormatFunction4,
        +                      Bool(++n1_),
        +                      Bool(++n2_),
        +                      Bool(++n3_),
        +                      Bool(++n4_));
        +  finished_ = true;
        +}
        +
        +// Tests a successful EXPECT_PRED_FORMAT4 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(EXPECT_PRED_FORMAT4Test, FunctorOnBuiltInTypeSuccess) {
        +  EXPECT_PRED_FORMAT4(PredFormatFunctor4(),
        +                      ++n1_,
        +                      ++n2_,
        +                      ++n3_,
        +                      ++n4_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful EXPECT_PRED_FORMAT4 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED_FORMAT4Test, FunctorOnUserTypeSuccess) {
        +  EXPECT_PRED_FORMAT4(PredFormatFunctor4(),
        +                      Bool(++n1_),
        +                      Bool(++n2_),
        +                      Bool(++n3_),
        +                      Bool(++n4_));
        +  finished_ = true;
        +}
        +
        +// Tests a failed EXPECT_PRED_FORMAT4 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(EXPECT_PRED_FORMAT4Test, FunctionOnBuiltInTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED_FORMAT4(PredFormatFunction4,
        +                        n1_++,
        +                        n2_++,
        +                        n3_++,
        +                        n4_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed EXPECT_PRED_FORMAT4 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED_FORMAT4Test, FunctionOnUserTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED_FORMAT4(PredFormatFunction4,
        +                        Bool(n1_++),
        +                        Bool(n2_++),
        +                        Bool(n3_++),
        +                        Bool(n4_++));
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed EXPECT_PRED_FORMAT4 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(EXPECT_PRED_FORMAT4Test, FunctorOnBuiltInTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED_FORMAT4(PredFormatFunctor4(),
        +                        n1_++,
        +                        n2_++,
        +                        n3_++,
        +                        n4_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed EXPECT_PRED_FORMAT4 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED_FORMAT4Test, FunctorOnUserTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED_FORMAT4(PredFormatFunctor4(),
        +                        Bool(n1_++),
        +                        Bool(n2_++),
        +                        Bool(n3_++),
        +                        Bool(n4_++));
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a successful ASSERT_PRED_FORMAT4 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(ASSERT_PRED_FORMAT4Test, FunctionOnBuiltInTypeSuccess) {
        +  ASSERT_PRED_FORMAT4(PredFormatFunction4,
        +                      ++n1_,
        +                      ++n2_,
        +                      ++n3_,
        +                      ++n4_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful ASSERT_PRED_FORMAT4 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED_FORMAT4Test, FunctionOnUserTypeSuccess) {
        +  ASSERT_PRED_FORMAT4(PredFormatFunction4,
        +                      Bool(++n1_),
        +                      Bool(++n2_),
        +                      Bool(++n3_),
        +                      Bool(++n4_));
        +  finished_ = true;
        +}
        +
        +// Tests a successful ASSERT_PRED_FORMAT4 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(ASSERT_PRED_FORMAT4Test, FunctorOnBuiltInTypeSuccess) {
        +  ASSERT_PRED_FORMAT4(PredFormatFunctor4(),
        +                      ++n1_,
        +                      ++n2_,
        +                      ++n3_,
        +                      ++n4_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful ASSERT_PRED_FORMAT4 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED_FORMAT4Test, FunctorOnUserTypeSuccess) {
        +  ASSERT_PRED_FORMAT4(PredFormatFunctor4(),
        +                      Bool(++n1_),
        +                      Bool(++n2_),
        +                      Bool(++n3_),
        +                      Bool(++n4_));
        +  finished_ = true;
        +}
        +
        +// Tests a failed ASSERT_PRED_FORMAT4 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(ASSERT_PRED_FORMAT4Test, FunctionOnBuiltInTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED_FORMAT4(PredFormatFunction4,
        +                        n1_++,
        +                        n2_++,
        +                        n3_++,
        +                        n4_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed ASSERT_PRED_FORMAT4 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED_FORMAT4Test, FunctionOnUserTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED_FORMAT4(PredFormatFunction4,
        +                        Bool(n1_++),
        +                        Bool(n2_++),
        +                        Bool(n3_++),
        +                        Bool(n4_++));
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed ASSERT_PRED_FORMAT4 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(ASSERT_PRED_FORMAT4Test, FunctorOnBuiltInTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED_FORMAT4(PredFormatFunctor4(),
        +                        n1_++,
        +                        n2_++,
        +                        n3_++,
        +                        n4_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed ASSERT_PRED_FORMAT4 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED_FORMAT4Test, FunctorOnUserTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED_FORMAT4(PredFormatFunctor4(),
        +                        Bool(n1_++),
        +                        Bool(n2_++),
        +                        Bool(n3_++),
        +                        Bool(n4_++));
        +    finished_ = true;
        +  }, "");
        +}
        +// Sample functions/functors for testing 5-ary predicate assertions.
        +
        +// A 5-ary predicate function.
        +template <typename T1, typename T2, typename T3, typename T4, typename T5>
        +bool PredFunction5(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5) {
        +  return v1 + v2 + v3 + v4 + v5 > 0;
        +}
        +
        +// The following two functions are needed to circumvent a bug in
        +// gcc 2.95.3, which sometimes has problem with the above template
        +// function.
        +bool PredFunction5Int(int v1, int v2, int v3, int v4, int v5) {
        +  return v1 + v2 + v3 + v4 + v5 > 0;
        +}
        +bool PredFunction5Bool(Bool v1, Bool v2, Bool v3, Bool v4, Bool v5) {
        +  return v1 + v2 + v3 + v4 + v5 > 0;
        +}
        +
        +// A 5-ary predicate functor.
        +struct PredFunctor5 {
        +  template <typename T1, typename T2, typename T3, typename T4, typename T5>
        +  bool operator()(const T1& v1,
        +                  const T2& v2,
        +                  const T3& v3,
        +                  const T4& v4,
        +                  const T5& v5) {
        +    return v1 + v2 + v3 + v4 + v5 > 0;
        +  }
        +};
        +
        +// A 5-ary predicate-formatter function.
        +template <typename T1, typename T2, typename T3, typename T4, typename T5>
        +testing::AssertionResult PredFormatFunction5(const char* e1,
        +                                             const char* e2,
        +                                             const char* e3,
        +                                             const char* e4,
        +                                             const char* e5,
        +                                             const T1& v1,
        +                                             const T2& v2,
        +                                             const T3& v3,
        +                                             const T4& v4,
        +                                             const T5& v5) {
        +  if (PredFunction5(v1, v2, v3, v4, v5))
        +    return testing::AssertionSuccess();
        +
        +  return testing::AssertionFailure()
        +      << e1 << " + " << e2 << " + " << e3 << " + " << e4 << " + " << e5
        +      << " is expected to be positive, but evaluates to "
        +      << v1 + v2 + v3 + v4 + v5 << ".";
        +}
        +
        +// A 5-ary predicate-formatter functor.
        +struct PredFormatFunctor5 {
        +  template <typename T1, typename T2, typename T3, typename T4, typename T5>
        +  testing::AssertionResult operator()(const char* e1,
        +                                      const char* e2,
        +                                      const char* e3,
        +                                      const char* e4,
        +                                      const char* e5,
        +                                      const T1& v1,
        +                                      const T2& v2,
        +                                      const T3& v3,
        +                                      const T4& v4,
        +                                      const T5& v5) const {
        +    return PredFormatFunction5(e1, e2, e3, e4, e5, v1, v2, v3, v4, v5);
        +  }
        +};
        +
        +// Tests for {EXPECT|ASSERT}_PRED_FORMAT5.
        +
        +class Predicate5Test : public testing::Test {
        + protected:
        +  virtual void SetUp() {
        +    expected_to_finish_ = true;
        +    finished_ = false;
        +    n1_ = n2_ = n3_ = n4_ = n5_ = 0;
        +  }
        +
        +  virtual void TearDown() {
        +    // Verifies that each of the predicate's arguments was evaluated
        +    // exactly once.
        +    EXPECT_EQ(1, n1_) <<
        +        "The predicate assertion didn't evaluate argument 2 "
        +        "exactly once.";
        +    EXPECT_EQ(1, n2_) <<
        +        "The predicate assertion didn't evaluate argument 3 "
        +        "exactly once.";
        +    EXPECT_EQ(1, n3_) <<
        +        "The predicate assertion didn't evaluate argument 4 "
        +        "exactly once.";
        +    EXPECT_EQ(1, n4_) <<
        +        "The predicate assertion didn't evaluate argument 5 "
        +        "exactly once.";
        +    EXPECT_EQ(1, n5_) <<
        +        "The predicate assertion didn't evaluate argument 6 "
        +        "exactly once.";
        +
        +    // Verifies that the control flow in the test function is expected.
        +    if (expected_to_finish_ && !finished_) {
        +      FAIL() << "The predicate assertion unexpactedly aborted the test.";
        +    } else if (!expected_to_finish_ && finished_) {
        +      FAIL() << "The failed predicate assertion didn't abort the test "
        +                "as expected.";
        +    }
        +  }
        +
        +  // true iff the test function is expected to run to finish.
        +  static bool expected_to_finish_;
        +
        +  // true iff the test function did run to finish.
        +  static bool finished_;
        +
        +  static int n1_;
        +  static int n2_;
        +  static int n3_;
        +  static int n4_;
        +  static int n5_;
        +};
        +
        +bool Predicate5Test::expected_to_finish_;
        +bool Predicate5Test::finished_;
        +int Predicate5Test::n1_;
        +int Predicate5Test::n2_;
        +int Predicate5Test::n3_;
        +int Predicate5Test::n4_;
        +int Predicate5Test::n5_;
        +
        +typedef Predicate5Test EXPECT_PRED_FORMAT5Test;
        +typedef Predicate5Test ASSERT_PRED_FORMAT5Test;
        +typedef Predicate5Test EXPECT_PRED5Test;
        +typedef Predicate5Test ASSERT_PRED5Test;
        +
        +// Tests a successful EXPECT_PRED5 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(EXPECT_PRED5Test, FunctionOnBuiltInTypeSuccess) {
        +  EXPECT_PRED5(PredFunction5Int,
        +               ++n1_,
        +               ++n2_,
        +               ++n3_,
        +               ++n4_,
        +               ++n5_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful EXPECT_PRED5 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED5Test, FunctionOnUserTypeSuccess) {
        +  EXPECT_PRED5(PredFunction5Bool,
        +               Bool(++n1_),
        +               Bool(++n2_),
        +               Bool(++n3_),
        +               Bool(++n4_),
        +               Bool(++n5_));
        +  finished_ = true;
        +}
        +
        +// Tests a successful EXPECT_PRED5 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(EXPECT_PRED5Test, FunctorOnBuiltInTypeSuccess) {
        +  EXPECT_PRED5(PredFunctor5(),
        +               ++n1_,
        +               ++n2_,
        +               ++n3_,
        +               ++n4_,
        +               ++n5_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful EXPECT_PRED5 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED5Test, FunctorOnUserTypeSuccess) {
        +  EXPECT_PRED5(PredFunctor5(),
        +               Bool(++n1_),
        +               Bool(++n2_),
        +               Bool(++n3_),
        +               Bool(++n4_),
        +               Bool(++n5_));
        +  finished_ = true;
        +}
        +
        +// Tests a failed EXPECT_PRED5 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(EXPECT_PRED5Test, FunctionOnBuiltInTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED5(PredFunction5Int,
        +                 n1_++,
        +                 n2_++,
        +                 n3_++,
        +                 n4_++,
        +                 n5_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed EXPECT_PRED5 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED5Test, FunctionOnUserTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED5(PredFunction5Bool,
        +                 Bool(n1_++),
        +                 Bool(n2_++),
        +                 Bool(n3_++),
        +                 Bool(n4_++),
        +                 Bool(n5_++));
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed EXPECT_PRED5 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(EXPECT_PRED5Test, FunctorOnBuiltInTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED5(PredFunctor5(),
        +                 n1_++,
        +                 n2_++,
        +                 n3_++,
        +                 n4_++,
        +                 n5_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed EXPECT_PRED5 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED5Test, FunctorOnUserTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED5(PredFunctor5(),
        +                 Bool(n1_++),
        +                 Bool(n2_++),
        +                 Bool(n3_++),
        +                 Bool(n4_++),
        +                 Bool(n5_++));
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a successful ASSERT_PRED5 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(ASSERT_PRED5Test, FunctionOnBuiltInTypeSuccess) {
        +  ASSERT_PRED5(PredFunction5Int,
        +               ++n1_,
        +               ++n2_,
        +               ++n3_,
        +               ++n4_,
        +               ++n5_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful ASSERT_PRED5 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED5Test, FunctionOnUserTypeSuccess) {
        +  ASSERT_PRED5(PredFunction5Bool,
        +               Bool(++n1_),
        +               Bool(++n2_),
        +               Bool(++n3_),
        +               Bool(++n4_),
        +               Bool(++n5_));
        +  finished_ = true;
        +}
        +
        +// Tests a successful ASSERT_PRED5 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(ASSERT_PRED5Test, FunctorOnBuiltInTypeSuccess) {
        +  ASSERT_PRED5(PredFunctor5(),
        +               ++n1_,
        +               ++n2_,
        +               ++n3_,
        +               ++n4_,
        +               ++n5_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful ASSERT_PRED5 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED5Test, FunctorOnUserTypeSuccess) {
        +  ASSERT_PRED5(PredFunctor5(),
        +               Bool(++n1_),
        +               Bool(++n2_),
        +               Bool(++n3_),
        +               Bool(++n4_),
        +               Bool(++n5_));
        +  finished_ = true;
        +}
        +
        +// Tests a failed ASSERT_PRED5 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(ASSERT_PRED5Test, FunctionOnBuiltInTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED5(PredFunction5Int,
        +                 n1_++,
        +                 n2_++,
        +                 n3_++,
        +                 n4_++,
        +                 n5_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed ASSERT_PRED5 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED5Test, FunctionOnUserTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED5(PredFunction5Bool,
        +                 Bool(n1_++),
        +                 Bool(n2_++),
        +                 Bool(n3_++),
        +                 Bool(n4_++),
        +                 Bool(n5_++));
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed ASSERT_PRED5 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(ASSERT_PRED5Test, FunctorOnBuiltInTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED5(PredFunctor5(),
        +                 n1_++,
        +                 n2_++,
        +                 n3_++,
        +                 n4_++,
        +                 n5_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed ASSERT_PRED5 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED5Test, FunctorOnUserTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED5(PredFunctor5(),
        +                 Bool(n1_++),
        +                 Bool(n2_++),
        +                 Bool(n3_++),
        +                 Bool(n4_++),
        +                 Bool(n5_++));
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a successful EXPECT_PRED_FORMAT5 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(EXPECT_PRED_FORMAT5Test, FunctionOnBuiltInTypeSuccess) {
        +  EXPECT_PRED_FORMAT5(PredFormatFunction5,
        +                      ++n1_,
        +                      ++n2_,
        +                      ++n3_,
        +                      ++n4_,
        +                      ++n5_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful EXPECT_PRED_FORMAT5 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED_FORMAT5Test, FunctionOnUserTypeSuccess) {
        +  EXPECT_PRED_FORMAT5(PredFormatFunction5,
        +                      Bool(++n1_),
        +                      Bool(++n2_),
        +                      Bool(++n3_),
        +                      Bool(++n4_),
        +                      Bool(++n5_));
        +  finished_ = true;
        +}
        +
        +// Tests a successful EXPECT_PRED_FORMAT5 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(EXPECT_PRED_FORMAT5Test, FunctorOnBuiltInTypeSuccess) {
        +  EXPECT_PRED_FORMAT5(PredFormatFunctor5(),
        +                      ++n1_,
        +                      ++n2_,
        +                      ++n3_,
        +                      ++n4_,
        +                      ++n5_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful EXPECT_PRED_FORMAT5 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED_FORMAT5Test, FunctorOnUserTypeSuccess) {
        +  EXPECT_PRED_FORMAT5(PredFormatFunctor5(),
        +                      Bool(++n1_),
        +                      Bool(++n2_),
        +                      Bool(++n3_),
        +                      Bool(++n4_),
        +                      Bool(++n5_));
        +  finished_ = true;
        +}
        +
        +// Tests a failed EXPECT_PRED_FORMAT5 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(EXPECT_PRED_FORMAT5Test, FunctionOnBuiltInTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED_FORMAT5(PredFormatFunction5,
        +                        n1_++,
        +                        n2_++,
        +                        n3_++,
        +                        n4_++,
        +                        n5_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed EXPECT_PRED_FORMAT5 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED_FORMAT5Test, FunctionOnUserTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED_FORMAT5(PredFormatFunction5,
        +                        Bool(n1_++),
        +                        Bool(n2_++),
        +                        Bool(n3_++),
        +                        Bool(n4_++),
        +                        Bool(n5_++));
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed EXPECT_PRED_FORMAT5 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(EXPECT_PRED_FORMAT5Test, FunctorOnBuiltInTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED_FORMAT5(PredFormatFunctor5(),
        +                        n1_++,
        +                        n2_++,
        +                        n3_++,
        +                        n4_++,
        +                        n5_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed EXPECT_PRED_FORMAT5 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(EXPECT_PRED_FORMAT5Test, FunctorOnUserTypeFailure) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED_FORMAT5(PredFormatFunctor5(),
        +                        Bool(n1_++),
        +                        Bool(n2_++),
        +                        Bool(n3_++),
        +                        Bool(n4_++),
        +                        Bool(n5_++));
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a successful ASSERT_PRED_FORMAT5 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(ASSERT_PRED_FORMAT5Test, FunctionOnBuiltInTypeSuccess) {
        +  ASSERT_PRED_FORMAT5(PredFormatFunction5,
        +                      ++n1_,
        +                      ++n2_,
        +                      ++n3_,
        +                      ++n4_,
        +                      ++n5_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful ASSERT_PRED_FORMAT5 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED_FORMAT5Test, FunctionOnUserTypeSuccess) {
        +  ASSERT_PRED_FORMAT5(PredFormatFunction5,
        +                      Bool(++n1_),
        +                      Bool(++n2_),
        +                      Bool(++n3_),
        +                      Bool(++n4_),
        +                      Bool(++n5_));
        +  finished_ = true;
        +}
        +
        +// Tests a successful ASSERT_PRED_FORMAT5 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(ASSERT_PRED_FORMAT5Test, FunctorOnBuiltInTypeSuccess) {
        +  ASSERT_PRED_FORMAT5(PredFormatFunctor5(),
        +                      ++n1_,
        +                      ++n2_,
        +                      ++n3_,
        +                      ++n4_,
        +                      ++n5_);
        +  finished_ = true;
        +}
        +
        +// Tests a successful ASSERT_PRED_FORMAT5 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED_FORMAT5Test, FunctorOnUserTypeSuccess) {
        +  ASSERT_PRED_FORMAT5(PredFormatFunctor5(),
        +                      Bool(++n1_),
        +                      Bool(++n2_),
        +                      Bool(++n3_),
        +                      Bool(++n4_),
        +                      Bool(++n5_));
        +  finished_ = true;
        +}
        +
        +// Tests a failed ASSERT_PRED_FORMAT5 where the
        +// predicate-formatter is a function on a built-in type (int).
        +TEST_F(ASSERT_PRED_FORMAT5Test, FunctionOnBuiltInTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED_FORMAT5(PredFormatFunction5,
        +                        n1_++,
        +                        n2_++,
        +                        n3_++,
        +                        n4_++,
        +                        n5_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed ASSERT_PRED_FORMAT5 where the
        +// predicate-formatter is a function on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED_FORMAT5Test, FunctionOnUserTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED_FORMAT5(PredFormatFunction5,
        +                        Bool(n1_++),
        +                        Bool(n2_++),
        +                        Bool(n3_++),
        +                        Bool(n4_++),
        +                        Bool(n5_++));
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed ASSERT_PRED_FORMAT5 where the
        +// predicate-formatter is a functor on a built-in type (int).
        +TEST_F(ASSERT_PRED_FORMAT5Test, FunctorOnBuiltInTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED_FORMAT5(PredFormatFunctor5(),
        +                        n1_++,
        +                        n2_++,
        +                        n3_++,
        +                        n4_++,
        +                        n5_++);
        +    finished_ = true;
        +  }, "");
        +}
        +
        +// Tests a failed ASSERT_PRED_FORMAT5 where the
        +// predicate-formatter is a functor on a user-defined type (Bool).
        +TEST_F(ASSERT_PRED_FORMAT5Test, FunctorOnUserTypeFailure) {
        +  expected_to_finish_ = false;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED_FORMAT5(PredFormatFunctor5(),
        +                        Bool(n1_++),
        +                        Bool(n2_++),
        +                        Bool(n3_++),
        +                        Bool(n4_++),
        +                        Bool(n5_++));
        +    finished_ = true;
        +  }, "");
        +}
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_premature_exit_test.cc b/lib/ann/fann/lib/googletest/test/gtest_premature_exit_test.cc
        new file mode 100644
        index 0000000..3b4dc7d
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_premature_exit_test.cc
        @@ -0,0 +1,127 @@
        +// Copyright 2013, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +//
        +// Tests that Google Test manipulates the premature-exit-detection
        +// file correctly.
        +
        +#include <stdio.h>
        +
        +#include "gtest/gtest.h"
        +
        +using ::testing::InitGoogleTest;
        +using ::testing::Test;
        +using ::testing::internal::posix::GetEnv;
        +using ::testing::internal::posix::Stat;
        +using ::testing::internal::posix::StatStruct;
        +
        +namespace {
        +
        +class PrematureExitTest : public Test {
        + public:
        +  // Returns true iff the given file exists.
        +  static bool FileExists(const char* filepath) {
        +    StatStruct stat;
        +    return Stat(filepath, &stat) == 0;
        +  }
        +
        + protected:
        +  PrematureExitTest() {
        +    premature_exit_file_path_ = GetEnv("TEST_PREMATURE_EXIT_FILE");
        +
        +    // Normalize NULL to "" for ease of handling.
        +    if (premature_exit_file_path_ == NULL) {
        +      premature_exit_file_path_ = "";
        +    }
        +  }
        +
        +  // Returns true iff the premature-exit file exists.
        +  bool PrematureExitFileExists() const {
        +    return FileExists(premature_exit_file_path_);
        +  }
        +
        +  const char* premature_exit_file_path_;
        +};
        +
        +typedef PrematureExitTest PrematureExitDeathTest;
        +
        +// Tests that:
        +//   - the premature-exit file exists during the execution of a
        +//     death test (EXPECT_DEATH*), and
        +//   - a death test doesn't interfere with the main test process's
        +//     handling of the premature-exit file.
        +TEST_F(PrematureExitDeathTest, FileExistsDuringExecutionOfDeathTest) {
        +  if (*premature_exit_file_path_ == '\0') {
        +    return;
        +  }
        +
        +  EXPECT_DEATH_IF_SUPPORTED({
        +      // If the file exists, crash the process such that the main test
        +      // process will catch the (expected) crash and report a success;
        +      // otherwise don't crash, which will cause the main test process
        +      // to report that the death test has failed.
        +      if (PrematureExitFileExists()) {
        +        exit(1);
        +      }
        +    }, "");
        +}
        +
        +// Tests that the premature-exit file exists during the execution of a
        +// normal (non-death) test.
        +TEST_F(PrematureExitTest, PrematureExitFileExistsDuringTestExecution) {
        +  if (*premature_exit_file_path_ == '\0') {
        +    return;
        +  }
        +
        +  EXPECT_TRUE(PrematureExitFileExists())
        +      << " file " << premature_exit_file_path_
        +      << " should exist during test execution, but doesn't.";
        +}
        +
        +}  // namespace
        +
        +int main(int argc, char **argv) {
        +  InitGoogleTest(&argc, argv);
        +  const int exit_code = RUN_ALL_TESTS();
        +
        +  // Test that the premature-exit file is deleted upon return from
        +  // RUN_ALL_TESTS().
        +  const char* const filepath = GetEnv("TEST_PREMATURE_EXIT_FILE");
        +  if (filepath != NULL && *filepath != '\0') {
        +    if (PrematureExitTest::FileExists(filepath)) {
        +      printf(
        +          "File %s shouldn't exist after the test program finishes, but does.",
        +          filepath);
        +      return 1;
        +    }
        +  }
        +
        +  return exit_code;
        +}
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_prod_test.cc b/lib/ann/fann/lib/googletest/test/gtest_prod_test.cc
        new file mode 100644
        index 0000000..060abce
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_prod_test.cc
        @@ -0,0 +1,57 @@
        +// Copyright 2006, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +//
        +// Unit test for include/gtest/gtest_prod.h.
        +
        +#include "gtest/gtest.h"
        +#include "test/production.h"
        +
        +// Tests that private members can be accessed from a TEST declared as
        +// a friend of the class.
        +TEST(PrivateCodeTest, CanAccessPrivateMembers) {
        +  PrivateCode a;
        +  EXPECT_EQ(0, a.x_);
        +
        +  a.set_x(1);
        +  EXPECT_EQ(1, a.x_);
        +}
        +
        +typedef testing::Test PrivateCodeFixtureTest;
        +
        +// Tests that private members can be accessed from a TEST_F declared
        +// as a friend of the class.
        +TEST_F(PrivateCodeFixtureTest, CanAccessPrivateMembers) {
        +  PrivateCode a;
        +  EXPECT_EQ(0, a.x_);
        +
        +  a.set_x(2);
        +  EXPECT_EQ(2, a.x_);
        +}
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_repeat_test.cc b/lib/ann/fann/lib/googletest/test/gtest_repeat_test.cc
        new file mode 100644
        index 0000000..481012a
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_repeat_test.cc
        @@ -0,0 +1,253 @@
        +// Copyright 2008, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +// Tests the --gtest_repeat=number flag.
        +
        +#include <stdlib.h>
        +#include <iostream>
        +#include "gtest/gtest.h"
        +
        +// Indicates that this translation unit is part of Google Test's
        +// implementation.  It must come before gtest-internal-inl.h is
        +// included, or there will be a compiler error.  This trick is to
        +// prevent a user from accidentally including gtest-internal-inl.h in
        +// his code.
        +#define GTEST_IMPLEMENTATION_ 1
        +#include "src/gtest-internal-inl.h"
        +#undef GTEST_IMPLEMENTATION_
        +
        +namespace testing {
        +
        +GTEST_DECLARE_string_(death_test_style);
        +GTEST_DECLARE_string_(filter);
        +GTEST_DECLARE_int32_(repeat);
        +
        +}  // namespace testing
        +
        +using testing::GTEST_FLAG(death_test_style);
        +using testing::GTEST_FLAG(filter);
        +using testing::GTEST_FLAG(repeat);
        +
        +namespace {
        +
        +// We need this when we are testing Google Test itself and therefore
        +// cannot use Google Test assertions.
        +#define GTEST_CHECK_INT_EQ_(expected, actual) \
        +  do {\
        +    const int expected_val = (expected);\
        +    const int actual_val = (actual);\
        +    if (::testing::internal::IsTrue(expected_val != actual_val)) {\
        +      ::std::cout << "Value of: " #actual "\n"\
        +                  << "  Actual: " << actual_val << "\n"\
        +                  << "Expected: " #expected "\n"\
        +                  << "Which is: " << expected_val << "\n";\
        +      ::testing::internal::posix::Abort();\
        +    }\
        +  } while (::testing::internal::AlwaysFalse())
        +
        +
        +// Used for verifying that global environment set-up and tear-down are
        +// inside the gtest_repeat loop.
        +
        +int g_environment_set_up_count = 0;
        +int g_environment_tear_down_count = 0;
        +
        +class MyEnvironment : public testing::Environment {
        + public:
        +  MyEnvironment() {}
        +  virtual void SetUp() { g_environment_set_up_count++; }
        +  virtual void TearDown() { g_environment_tear_down_count++; }
        +};
        +
        +// A test that should fail.
        +
        +int g_should_fail_count = 0;
        +
        +TEST(FooTest, ShouldFail) {
        +  g_should_fail_count++;
        +  EXPECT_EQ(0, 1) << "Expected failure.";
        +}
        +
        +// A test that should pass.
        +
        +int g_should_pass_count = 0;
        +
        +TEST(FooTest, ShouldPass) {
        +  g_should_pass_count++;
        +}
        +
        +// A test that contains a thread-safe death test and a fast death
        +// test.  It should pass.
        +
        +int g_death_test_count = 0;
        +
        +TEST(BarDeathTest, ThreadSafeAndFast) {
        +  g_death_test_count++;
        +
        +  GTEST_FLAG(death_test_style) = "threadsafe";
        +  EXPECT_DEATH_IF_SUPPORTED(::testing::internal::posix::Abort(), "");
        +
        +  GTEST_FLAG(death_test_style) = "fast";
        +  EXPECT_DEATH_IF_SUPPORTED(::testing::internal::posix::Abort(), "");
        +}
        +
        +#if GTEST_HAS_PARAM_TEST
        +int g_param_test_count = 0;
        +
        +const int kNumberOfParamTests = 10;
        +
        +class MyParamTest : public testing::TestWithParam<int> {};
        +
        +TEST_P(MyParamTest, ShouldPass) {
        +  // TODO(vladl@google.com): Make parameter value checking robust
        +  //                         WRT order of tests.
        +  GTEST_CHECK_INT_EQ_(g_param_test_count % kNumberOfParamTests, GetParam());
        +  g_param_test_count++;
        +}
        +INSTANTIATE_TEST_CASE_P(MyParamSequence,
        +                        MyParamTest,
        +                        testing::Range(0, kNumberOfParamTests));
        +#endif  // GTEST_HAS_PARAM_TEST
        +
        +// Resets the count for each test.
        +void ResetCounts() {
        +  g_environment_set_up_count = 0;
        +  g_environment_tear_down_count = 0;
        +  g_should_fail_count = 0;
        +  g_should_pass_count = 0;
        +  g_death_test_count = 0;
        +#if GTEST_HAS_PARAM_TEST
        +  g_param_test_count = 0;
        +#endif  // GTEST_HAS_PARAM_TEST
        +}
        +
        +// Checks that the count for each test is expected.
        +void CheckCounts(int expected) {
        +  GTEST_CHECK_INT_EQ_(expected, g_environment_set_up_count);
        +  GTEST_CHECK_INT_EQ_(expected, g_environment_tear_down_count);
        +  GTEST_CHECK_INT_EQ_(expected, g_should_fail_count);
        +  GTEST_CHECK_INT_EQ_(expected, g_should_pass_count);
        +  GTEST_CHECK_INT_EQ_(expected, g_death_test_count);
        +#if GTEST_HAS_PARAM_TEST
        +  GTEST_CHECK_INT_EQ_(expected * kNumberOfParamTests, g_param_test_count);
        +#endif  // GTEST_HAS_PARAM_TEST
        +}
        +
        +// Tests the behavior of Google Test when --gtest_repeat is not specified.
        +void TestRepeatUnspecified() {
        +  ResetCounts();
        +  GTEST_CHECK_INT_EQ_(1, RUN_ALL_TESTS());
        +  CheckCounts(1);
        +}
        +
        +// Tests the behavior of Google Test when --gtest_repeat has the given value.
        +void TestRepeat(int repeat) {
        +  GTEST_FLAG(repeat) = repeat;
        +
        +  ResetCounts();
        +  GTEST_CHECK_INT_EQ_(repeat > 0 ? 1 : 0, RUN_ALL_TESTS());
        +  CheckCounts(repeat);
        +}
        +
        +// Tests using --gtest_repeat when --gtest_filter specifies an empty
        +// set of tests.
        +void TestRepeatWithEmptyFilter(int repeat) {
        +  GTEST_FLAG(repeat) = repeat;
        +  GTEST_FLAG(filter) = "None";
        +
        +  ResetCounts();
        +  GTEST_CHECK_INT_EQ_(0, RUN_ALL_TESTS());
        +  CheckCounts(0);
        +}
        +
        +// Tests using --gtest_repeat when --gtest_filter specifies a set of
        +// successful tests.
        +void TestRepeatWithFilterForSuccessfulTests(int repeat) {
        +  GTEST_FLAG(repeat) = repeat;
        +  GTEST_FLAG(filter) = "*-*ShouldFail";
        +
        +  ResetCounts();
        +  GTEST_CHECK_INT_EQ_(0, RUN_ALL_TESTS());
        +  GTEST_CHECK_INT_EQ_(repeat, g_environment_set_up_count);
        +  GTEST_CHECK_INT_EQ_(repeat, g_environment_tear_down_count);
        +  GTEST_CHECK_INT_EQ_(0, g_should_fail_count);
        +  GTEST_CHECK_INT_EQ_(repeat, g_should_pass_count);
        +  GTEST_CHECK_INT_EQ_(repeat, g_death_test_count);
        +#if GTEST_HAS_PARAM_TEST
        +  GTEST_CHECK_INT_EQ_(repeat * kNumberOfParamTests, g_param_test_count);
        +#endif  // GTEST_HAS_PARAM_TEST
        +}
        +
        +// Tests using --gtest_repeat when --gtest_filter specifies a set of
        +// failed tests.
        +void TestRepeatWithFilterForFailedTests(int repeat) {
        +  GTEST_FLAG(repeat) = repeat;
        +  GTEST_FLAG(filter) = "*ShouldFail";
        +
        +  ResetCounts();
        +  GTEST_CHECK_INT_EQ_(1, RUN_ALL_TESTS());
        +  GTEST_CHECK_INT_EQ_(repeat, g_environment_set_up_count);
        +  GTEST_CHECK_INT_EQ_(repeat, g_environment_tear_down_count);
        +  GTEST_CHECK_INT_EQ_(repeat, g_should_fail_count);
        +  GTEST_CHECK_INT_EQ_(0, g_should_pass_count);
        +  GTEST_CHECK_INT_EQ_(0, g_death_test_count);
        +#if GTEST_HAS_PARAM_TEST
        +  GTEST_CHECK_INT_EQ_(0, g_param_test_count);
        +#endif  // GTEST_HAS_PARAM_TEST
        +}
        +
        +}  // namespace
        +
        +int main(int argc, char **argv) {
        +  testing::InitGoogleTest(&argc, argv);
        +  testing::AddGlobalTestEnvironment(new MyEnvironment);
        +
        +  TestRepeatUnspecified();
        +  TestRepeat(0);
        +  TestRepeat(1);
        +  TestRepeat(5);
        +
        +  TestRepeatWithEmptyFilter(2);
        +  TestRepeatWithEmptyFilter(3);
        +
        +  TestRepeatWithFilterForSuccessfulTests(3);
        +
        +  TestRepeatWithFilterForFailedTests(4);
        +
        +  // It would be nice to verify that the tests indeed loop forever
        +  // when GTEST_FLAG(repeat) is negative, but this test will be quite
        +  // complicated to write.  Since this flag is for interactive
        +  // debugging only and doesn't affect the normal test result, such a
        +  // test would be an overkill.
        +
        +  printf("PASS\n");
        +  return 0;
        +}
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_shuffle_test.py b/lib/ann/fann/lib/googletest/test/gtest_shuffle_test.py
        new file mode 100755
        index 0000000..30d0303
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_shuffle_test.py
        @@ -0,0 +1,325 @@
        +#!/usr/bin/env python
        +#
        +# Copyright 2009 Google Inc. All Rights Reserved.
        +#
        +# Redistribution and use in source and binary forms, with or without
        +# modification, are permitted provided that the following conditions are
        +# met:
        +#
        +#     * Redistributions of source code must retain the above copyright
        +# notice, this list of conditions and the following disclaimer.
        +#     * Redistributions in binary form must reproduce the above
        +# copyright notice, this list of conditions and the following disclaimer
        +# in the documentation and/or other materials provided with the
        +# distribution.
        +#     * Neither the name of Google Inc. nor the names of its
        +# contributors may be used to endorse or promote products derived from
        +# this software without specific prior written permission.
        +#
        +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +"""Verifies that test shuffling works."""
        +
        +__author__ = 'wan@google.com (Zhanyong Wan)'
        +
        +import os
        +import gtest_test_utils
        +
        +# Command to run the gtest_shuffle_test_ program.
        +COMMAND = gtest_test_utils.GetTestExecutablePath('gtest_shuffle_test_')
        +
        +# The environment variables for test sharding.
        +TOTAL_SHARDS_ENV_VAR = 'GTEST_TOTAL_SHARDS'
        +SHARD_INDEX_ENV_VAR = 'GTEST_SHARD_INDEX'
        +
        +TEST_FILTER = 'A*.A:A*.B:C*'
        +
        +ALL_TESTS = []
        +ACTIVE_TESTS = []
        +FILTERED_TESTS = []
        +SHARDED_TESTS = []
        +
        +SHUFFLED_ALL_TESTS = []
        +SHUFFLED_ACTIVE_TESTS = []
        +SHUFFLED_FILTERED_TESTS = []
        +SHUFFLED_SHARDED_TESTS = []
        +
        +
        +def AlsoRunDisabledTestsFlag():
        +  return '--gtest_also_run_disabled_tests'
        +
        +
        +def FilterFlag(test_filter):
        +  return '--gtest_filter=%s' % (test_filter,)
        +
        +
        +def RepeatFlag(n):
        +  return '--gtest_repeat=%s' % (n,)
        +
        +
        +def ShuffleFlag():
        +  return '--gtest_shuffle'
        +
        +
        +def RandomSeedFlag(n):
        +  return '--gtest_random_seed=%s' % (n,)
        +
        +
        +def RunAndReturnOutput(extra_env, args):
        +  """Runs the test program and returns its output."""
        +
        +  environ_copy = os.environ.copy()
        +  environ_copy.update(extra_env)
        +
        +  return gtest_test_utils.Subprocess([COMMAND] + args, env=environ_copy).output
        +
        +
        +def GetTestsForAllIterations(extra_env, args):
        +  """Runs the test program and returns a list of test lists.
        +
        +  Args:
        +    extra_env: a map from environment variables to their values
        +    args: command line flags to pass to gtest_shuffle_test_
        +
        +  Returns:
        +    A list where the i-th element is the list of tests run in the i-th
        +    test iteration.
        +  """
        +
        +  test_iterations = []
        +  for line in RunAndReturnOutput(extra_env, args).split('\n'):
        +    if line.startswith('----'):
        +      tests = []
        +      test_iterations.append(tests)
        +    elif line.strip():
        +      tests.append(line.strip())  # 'TestCaseName.TestName'
        +
        +  return test_iterations
        +
        +
        +def GetTestCases(tests):
        +  """Returns a list of test cases in the given full test names.
        +
        +  Args:
        +    tests: a list of full test names
        +
        +  Returns:
        +    A list of test cases from 'tests', in their original order.
        +    Consecutive duplicates are removed.
        +  """
        +
        +  test_cases = []
        +  for test in tests:
        +    test_case = test.split('.')[0]
        +    if not test_case in test_cases:
        +      test_cases.append(test_case)
        +
        +  return test_cases
        +
        +
        +def CalculateTestLists():
        +  """Calculates the list of tests run under different flags."""
        +
        +  if not ALL_TESTS:
        +    ALL_TESTS.extend(
        +        GetTestsForAllIterations({}, [AlsoRunDisabledTestsFlag()])[0])
        +
        +  if not ACTIVE_TESTS:
        +    ACTIVE_TESTS.extend(GetTestsForAllIterations({}, [])[0])
        +
        +  if not FILTERED_TESTS:
        +    FILTERED_TESTS.extend(
        +        GetTestsForAllIterations({}, [FilterFlag(TEST_FILTER)])[0])
        +
        +  if not SHARDED_TESTS:
        +    SHARDED_TESTS.extend(
        +        GetTestsForAllIterations({TOTAL_SHARDS_ENV_VAR: '3',
        +                                  SHARD_INDEX_ENV_VAR: '1'},
        +                                 [])[0])
        +
        +  if not SHUFFLED_ALL_TESTS:
        +    SHUFFLED_ALL_TESTS.extend(GetTestsForAllIterations(
        +        {}, [AlsoRunDisabledTestsFlag(), ShuffleFlag(), RandomSeedFlag(1)])[0])
        +
        +  if not SHUFFLED_ACTIVE_TESTS:
        +    SHUFFLED_ACTIVE_TESTS.extend(GetTestsForAllIterations(
        +        {}, [ShuffleFlag(), RandomSeedFlag(1)])[0])
        +
        +  if not SHUFFLED_FILTERED_TESTS:
        +    SHUFFLED_FILTERED_TESTS.extend(GetTestsForAllIterations(
        +        {}, [ShuffleFlag(), RandomSeedFlag(1), FilterFlag(TEST_FILTER)])[0])
        +
        +  if not SHUFFLED_SHARDED_TESTS:
        +    SHUFFLED_SHARDED_TESTS.extend(
        +        GetTestsForAllIterations({TOTAL_SHARDS_ENV_VAR: '3',
        +                                  SHARD_INDEX_ENV_VAR: '1'},
        +                                 [ShuffleFlag(), RandomSeedFlag(1)])[0])
        +
        +
        +class GTestShuffleUnitTest(gtest_test_utils.TestCase):
        +  """Tests test shuffling."""
        +
        +  def setUp(self):
        +    CalculateTestLists()
        +
        +  def testShufflePreservesNumberOfTests(self):
        +    self.assertEqual(len(ALL_TESTS), len(SHUFFLED_ALL_TESTS))
        +    self.assertEqual(len(ACTIVE_TESTS), len(SHUFFLED_ACTIVE_TESTS))
        +    self.assertEqual(len(FILTERED_TESTS), len(SHUFFLED_FILTERED_TESTS))
        +    self.assertEqual(len(SHARDED_TESTS), len(SHUFFLED_SHARDED_TESTS))
        +
        +  def testShuffleChangesTestOrder(self):
        +    self.assert_(SHUFFLED_ALL_TESTS != ALL_TESTS, SHUFFLED_ALL_TESTS)
        +    self.assert_(SHUFFLED_ACTIVE_TESTS != ACTIVE_TESTS, SHUFFLED_ACTIVE_TESTS)
        +    self.assert_(SHUFFLED_FILTERED_TESTS != FILTERED_TESTS,
        +                 SHUFFLED_FILTERED_TESTS)
        +    self.assert_(SHUFFLED_SHARDED_TESTS != SHARDED_TESTS,
        +                 SHUFFLED_SHARDED_TESTS)
        +
        +  def testShuffleChangesTestCaseOrder(self):
        +    self.assert_(GetTestCases(SHUFFLED_ALL_TESTS) != GetTestCases(ALL_TESTS),
        +                 GetTestCases(SHUFFLED_ALL_TESTS))
        +    self.assert_(
        +        GetTestCases(SHUFFLED_ACTIVE_TESTS) != GetTestCases(ACTIVE_TESTS),
        +        GetTestCases(SHUFFLED_ACTIVE_TESTS))
        +    self.assert_(
        +        GetTestCases(SHUFFLED_FILTERED_TESTS) != GetTestCases(FILTERED_TESTS),
        +        GetTestCases(SHUFFLED_FILTERED_TESTS))
        +    self.assert_(
        +        GetTestCases(SHUFFLED_SHARDED_TESTS) != GetTestCases(SHARDED_TESTS),
        +        GetTestCases(SHUFFLED_SHARDED_TESTS))
        +
        +  def testShuffleDoesNotRepeatTest(self):
        +    for test in SHUFFLED_ALL_TESTS:
        +      self.assertEqual(1, SHUFFLED_ALL_TESTS.count(test),
        +                       '%s appears more than once' % (test,))
        +    for test in SHUFFLED_ACTIVE_TESTS:
        +      self.assertEqual(1, SHUFFLED_ACTIVE_TESTS.count(test),
        +                       '%s appears more than once' % (test,))
        +    for test in SHUFFLED_FILTERED_TESTS:
        +      self.assertEqual(1, SHUFFLED_FILTERED_TESTS.count(test),
        +                       '%s appears more than once' % (test,))
        +    for test in SHUFFLED_SHARDED_TESTS:
        +      self.assertEqual(1, SHUFFLED_SHARDED_TESTS.count(test),
        +                       '%s appears more than once' % (test,))
        +
        +  def testShuffleDoesNotCreateNewTest(self):
        +    for test in SHUFFLED_ALL_TESTS:
        +      self.assert_(test in ALL_TESTS, '%s is an invalid test' % (test,))
        +    for test in SHUFFLED_ACTIVE_TESTS:
        +      self.assert_(test in ACTIVE_TESTS, '%s is an invalid test' % (test,))
        +    for test in SHUFFLED_FILTERED_TESTS:
        +      self.assert_(test in FILTERED_TESTS, '%s is an invalid test' % (test,))
        +    for test in SHUFFLED_SHARDED_TESTS:
        +      self.assert_(test in SHARDED_TESTS, '%s is an invalid test' % (test,))
        +
        +  def testShuffleIncludesAllTests(self):
        +    for test in ALL_TESTS:
        +      self.assert_(test in SHUFFLED_ALL_TESTS, '%s is missing' % (test,))
        +    for test in ACTIVE_TESTS:
        +      self.assert_(test in SHUFFLED_ACTIVE_TESTS, '%s is missing' % (test,))
        +    for test in FILTERED_TESTS:
        +      self.assert_(test in SHUFFLED_FILTERED_TESTS, '%s is missing' % (test,))
        +    for test in SHARDED_TESTS:
        +      self.assert_(test in SHUFFLED_SHARDED_TESTS, '%s is missing' % (test,))
        +
        +  def testShuffleLeavesDeathTestsAtFront(self):
        +    non_death_test_found = False
        +    for test in SHUFFLED_ACTIVE_TESTS:
        +      if 'DeathTest.' in test:
        +        self.assert_(not non_death_test_found,
        +                     '%s appears after a non-death test' % (test,))
        +      else:
        +        non_death_test_found = True
        +
        +  def _VerifyTestCasesDoNotInterleave(self, tests):
        +    test_cases = []
        +    for test in tests:
        +      [test_case, _] = test.split('.')
        +      if test_cases and test_cases[-1] != test_case:
        +        test_cases.append(test_case)
        +        self.assertEqual(1, test_cases.count(test_case),
        +                         'Test case %s is not grouped together in %s' %
        +                         (test_case, tests))
        +
        +  def testShuffleDoesNotInterleaveTestCases(self):
        +    self._VerifyTestCasesDoNotInterleave(SHUFFLED_ALL_TESTS)
        +    self._VerifyTestCasesDoNotInterleave(SHUFFLED_ACTIVE_TESTS)
        +    self._VerifyTestCasesDoNotInterleave(SHUFFLED_FILTERED_TESTS)
        +    self._VerifyTestCasesDoNotInterleave(SHUFFLED_SHARDED_TESTS)
        +
        +  def testShuffleRestoresOrderAfterEachIteration(self):
        +    # Get the test lists in all 3 iterations, using random seed 1, 2,
        +    # and 3 respectively.  Google Test picks a different seed in each
        +    # iteration, and this test depends on the current implementation
        +    # picking successive numbers.  This dependency is not ideal, but
        +    # makes the test much easier to write.
        +    [tests_in_iteration1, tests_in_iteration2, tests_in_iteration3] = (
        +        GetTestsForAllIterations(
        +            {}, [ShuffleFlag(), RandomSeedFlag(1), RepeatFlag(3)]))
        +
        +    # Make sure running the tests with random seed 1 gets the same
        +    # order as in iteration 1 above.
        +    [tests_with_seed1] = GetTestsForAllIterations(
        +        {}, [ShuffleFlag(), RandomSeedFlag(1)])
        +    self.assertEqual(tests_in_iteration1, tests_with_seed1)
        +
        +    # Make sure running the tests with random seed 2 gets the same
        +    # order as in iteration 2 above.  Success means that Google Test
        +    # correctly restores the test order before re-shuffling at the
        +    # beginning of iteration 2.
        +    [tests_with_seed2] = GetTestsForAllIterations(
        +        {}, [ShuffleFlag(), RandomSeedFlag(2)])
        +    self.assertEqual(tests_in_iteration2, tests_with_seed2)
        +
        +    # Make sure running the tests with random seed 3 gets the same
        +    # order as in iteration 3 above.  Success means that Google Test
        +    # correctly restores the test order before re-shuffling at the
        +    # beginning of iteration 3.
        +    [tests_with_seed3] = GetTestsForAllIterations(
        +        {}, [ShuffleFlag(), RandomSeedFlag(3)])
        +    self.assertEqual(tests_in_iteration3, tests_with_seed3)
        +
        +  def testShuffleGeneratesNewOrderInEachIteration(self):
        +    [tests_in_iteration1, tests_in_iteration2, tests_in_iteration3] = (
        +        GetTestsForAllIterations(
        +            {}, [ShuffleFlag(), RandomSeedFlag(1), RepeatFlag(3)]))
        +
        +    self.assert_(tests_in_iteration1 != tests_in_iteration2,
        +                 tests_in_iteration1)
        +    self.assert_(tests_in_iteration1 != tests_in_iteration3,
        +                 tests_in_iteration1)
        +    self.assert_(tests_in_iteration2 != tests_in_iteration3,
        +                 tests_in_iteration2)
        +
        +  def testShuffleShardedTestsPreservesPartition(self):
        +    # If we run M tests on N shards, the same M tests should be run in
        +    # total, regardless of the random seeds used by the shards.
        +    [tests1] = GetTestsForAllIterations({TOTAL_SHARDS_ENV_VAR: '3',
        +                                         SHARD_INDEX_ENV_VAR: '0'},
        +                                        [ShuffleFlag(), RandomSeedFlag(1)])
        +    [tests2] = GetTestsForAllIterations({TOTAL_SHARDS_ENV_VAR: '3',
        +                                         SHARD_INDEX_ENV_VAR: '1'},
        +                                        [ShuffleFlag(), RandomSeedFlag(20)])
        +    [tests3] = GetTestsForAllIterations({TOTAL_SHARDS_ENV_VAR: '3',
        +                                         SHARD_INDEX_ENV_VAR: '2'},
        +                                        [ShuffleFlag(), RandomSeedFlag(25)])
        +    sorted_sharded_tests = tests1 + tests2 + tests3
        +    sorted_sharded_tests.sort()
        +    sorted_active_tests = []
        +    sorted_active_tests.extend(ACTIVE_TESTS)
        +    sorted_active_tests.sort()
        +    self.assertEqual(sorted_active_tests, sorted_sharded_tests)
        +
        +if __name__ == '__main__':
        +  gtest_test_utils.Main()
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_shuffle_test_.cc b/lib/ann/fann/lib/googletest/test/gtest_shuffle_test_.cc
        new file mode 100644
        index 0000000..6fb441b
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_shuffle_test_.cc
        @@ -0,0 +1,103 @@
        +// Copyright 2009, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +// Verifies that test shuffling works.
        +
        +#include "gtest/gtest.h"
        +
        +namespace {
        +
        +using ::testing::EmptyTestEventListener;
        +using ::testing::InitGoogleTest;
        +using ::testing::Message;
        +using ::testing::Test;
        +using ::testing::TestEventListeners;
        +using ::testing::TestInfo;
        +using ::testing::UnitTest;
        +using ::testing::internal::scoped_ptr;
        +
        +// The test methods are empty, as the sole purpose of this program is
        +// to print the test names before/after shuffling.
        +
        +class A : public Test {};
        +TEST_F(A, A) {}
        +TEST_F(A, B) {}
        +
        +TEST(ADeathTest, A) {}
        +TEST(ADeathTest, B) {}
        +TEST(ADeathTest, C) {}
        +
        +TEST(B, A) {}
        +TEST(B, B) {}
        +TEST(B, C) {}
        +TEST(B, DISABLED_D) {}
        +TEST(B, DISABLED_E) {}
        +
        +TEST(BDeathTest, A) {}
        +TEST(BDeathTest, B) {}
        +
        +TEST(C, A) {}
        +TEST(C, B) {}
        +TEST(C, C) {}
        +TEST(C, DISABLED_D) {}
        +
        +TEST(CDeathTest, A) {}
        +
        +TEST(DISABLED_D, A) {}
        +TEST(DISABLED_D, DISABLED_B) {}
        +
        +// This printer prints the full test names only, starting each test
        +// iteration with a "----" marker.
        +class TestNamePrinter : public EmptyTestEventListener {
        + public:
        +  virtual void OnTestIterationStart(const UnitTest& /* unit_test */,
        +                                    int /* iteration */) {
        +    printf("----\n");
        +  }
        +
        +  virtual void OnTestStart(const TestInfo& test_info) {
        +    printf("%s.%s\n", test_info.test_case_name(), test_info.name());
        +  }
        +};
        +
        +}  // namespace
        +
        +int main(int argc, char **argv) {
        +  InitGoogleTest(&argc, argv);
        +
        +  // Replaces the default printer with TestNamePrinter, which prints
        +  // the test name only.
        +  TestEventListeners& listeners = UnitTest::GetInstance()->listeners();
        +  delete listeners.Release(listeners.default_result_printer());
        +  listeners.Append(new TestNamePrinter);
        +
        +  return RUN_ALL_TESTS();
        +}
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_sole_header_test.cc b/lib/ann/fann/lib/googletest/test/gtest_sole_header_test.cc
        new file mode 100644
        index 0000000..ccd091a
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_sole_header_test.cc
        @@ -0,0 +1,57 @@
        +// Copyright 2008, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: mheule@google.com (Markus Heule)
        +//
        +// This test verifies that it's possible to use Google Test by including
        +// the gtest.h header file alone.
        +
        +#include "gtest/gtest.h"
        +
        +namespace {
        +
        +void Subroutine() {
        +  EXPECT_EQ(42, 42);
        +}
        +
        +TEST(NoFatalFailureTest, ExpectNoFatalFailure) {
        +  EXPECT_NO_FATAL_FAILURE(;);
        +  EXPECT_NO_FATAL_FAILURE(SUCCEED());
        +  EXPECT_NO_FATAL_FAILURE(Subroutine());
        +  EXPECT_NO_FATAL_FAILURE({ SUCCEED(); });
        +}
        +
        +TEST(NoFatalFailureTest, AssertNoFatalFailure) {
        +  ASSERT_NO_FATAL_FAILURE(;);
        +  ASSERT_NO_FATAL_FAILURE(SUCCEED());
        +  ASSERT_NO_FATAL_FAILURE(Subroutine());
        +  ASSERT_NO_FATAL_FAILURE({ SUCCEED(); });
        +}
        +
        +}  // namespace
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_stress_test.cc b/lib/ann/fann/lib/googletest/test/gtest_stress_test.cc
        new file mode 100644
        index 0000000..e7daa43
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_stress_test.cc
        @@ -0,0 +1,256 @@
        +// Copyright 2007, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +// Tests that SCOPED_TRACE() and various Google Test assertions can be
        +// used in a large number of threads concurrently.
        +
        +#include "gtest/gtest.h"
        +
        +#include <iostream>
        +#include <vector>
        +
        +// We must define this macro in order to #include
        +// gtest-internal-inl.h.  This is how Google Test prevents a user from
        +// accidentally depending on its internal implementation.
        +#define GTEST_IMPLEMENTATION_ 1
        +#include "src/gtest-internal-inl.h"
        +#undef GTEST_IMPLEMENTATION_
        +
        +#if GTEST_IS_THREADSAFE
        +
        +namespace testing {
        +namespace {
        +
        +using internal::Notification;
        +using internal::TestPropertyKeyIs;
        +using internal::ThreadWithParam;
        +using internal::scoped_ptr;
        +
        +// In order to run tests in this file, for platforms where Google Test is
        +// thread safe, implement ThreadWithParam. See the description of its API
        +// in gtest-port.h, where it is defined for already supported platforms.
        +
        +// How many threads to create?
        +const int kThreadCount = 50;
        +
        +std::string IdToKey(int id, const char* suffix) {
        +  Message key;
        +  key << "key_" << id << "_" << suffix;
        +  return key.GetString();
        +}
        +
        +std::string IdToString(int id) {
        +  Message id_message;
        +  id_message << id;
        +  return id_message.GetString();
        +}
        +
        +void ExpectKeyAndValueWereRecordedForId(
        +    const std::vector<TestProperty>& properties,
        +    int id, const char* suffix) {
        +  TestPropertyKeyIs matches_key(IdToKey(id, suffix).c_str());
        +  const std::vector<TestProperty>::const_iterator property =
        +      std::find_if(properties.begin(), properties.end(), matches_key);
        +  ASSERT_TRUE(property != properties.end())
        +      << "expecting " << suffix << " value for id " << id;
        +  EXPECT_STREQ(IdToString(id).c_str(), property->value());
        +}
        +
        +// Calls a large number of Google Test assertions, where exactly one of them
        +// will fail.
        +void ManyAsserts(int id) {
        +  GTEST_LOG_(INFO) << "Thread #" << id << " running...";
        +
        +  SCOPED_TRACE(Message() << "Thread #" << id);
        +
        +  for (int i = 0; i < kThreadCount; i++) {
        +    SCOPED_TRACE(Message() << "Iteration #" << i);
        +
        +    // A bunch of assertions that should succeed.
        +    EXPECT_TRUE(true);
        +    ASSERT_FALSE(false) << "This shouldn't fail.";
        +    EXPECT_STREQ("a", "a");
        +    ASSERT_LE(5, 6);
        +    EXPECT_EQ(i, i) << "This shouldn't fail.";
        +
        +    // RecordProperty() should interact safely with other threads as well.
        +    // The shared_key forces property updates.
        +    Test::RecordProperty(IdToKey(id, "string").c_str(), IdToString(id).c_str());
        +    Test::RecordProperty(IdToKey(id, "int").c_str(), id);
        +    Test::RecordProperty("shared_key", IdToString(id).c_str());
        +
        +    // This assertion should fail kThreadCount times per thread.  It
        +    // is for testing whether Google Test can handle failed assertions in a
        +    // multi-threaded context.
        +    EXPECT_LT(i, 0) << "This should always fail.";
        +  }
        +}
        +
        +void CheckTestFailureCount(int expected_failures) {
        +  const TestInfo* const info = UnitTest::GetInstance()->current_test_info();
        +  const TestResult* const result = info->result();
        +  GTEST_CHECK_(expected_failures == result->total_part_count())
        +      << "Logged " << result->total_part_count() << " failures "
        +      << " vs. " << expected_failures << " expected";
        +}
        +
        +// Tests using SCOPED_TRACE() and Google Test assertions in many threads
        +// concurrently.
        +TEST(StressTest, CanUseScopedTraceAndAssertionsInManyThreads) {
        +  {
        +    scoped_ptr<ThreadWithParam<int> > threads[kThreadCount];
        +    Notification threads_can_start;
        +    for (int i = 0; i != kThreadCount; i++)
        +      threads[i].reset(new ThreadWithParam<int>(&ManyAsserts,
        +                                                i,
        +                                                &threads_can_start));
        +
        +    threads_can_start.Notify();
        +
        +    // Blocks until all the threads are done.
        +    for (int i = 0; i != kThreadCount; i++)
        +      threads[i]->Join();
        +  }
        +
        +  // Ensures that kThreadCount*kThreadCount failures have been reported.
        +  const TestInfo* const info = UnitTest::GetInstance()->current_test_info();
        +  const TestResult* const result = info->result();
        +
        +  std::vector<TestProperty> properties;
        +  // We have no access to the TestResult's list of properties but we can
        +  // copy them one by one.
        +  for (int i = 0; i < result->test_property_count(); ++i)
        +    properties.push_back(result->GetTestProperty(i));
        +
        +  EXPECT_EQ(kThreadCount * 2 + 1, result->test_property_count())
        +      << "String and int values recorded on each thread, "
        +      << "as well as one shared_key";
        +  for (int i = 0; i < kThreadCount; ++i) {
        +    ExpectKeyAndValueWereRecordedForId(properties, i, "string");
        +    ExpectKeyAndValueWereRecordedForId(properties, i, "int");
        +  }
        +  CheckTestFailureCount(kThreadCount*kThreadCount);
        +}
        +
        +void FailingThread(bool is_fatal) {
        +  if (is_fatal)
        +    FAIL() << "Fatal failure in some other thread. "
        +           << "(This failure is expected.)";
        +  else
        +    ADD_FAILURE() << "Non-fatal failure in some other thread. "
        +                  << "(This failure is expected.)";
        +}
        +
        +void GenerateFatalFailureInAnotherThread(bool is_fatal) {
        +  ThreadWithParam<bool> thread(&FailingThread, is_fatal, NULL);
        +  thread.Join();
        +}
        +
        +TEST(NoFatalFailureTest, ExpectNoFatalFailureIgnoresFailuresInOtherThreads) {
        +  EXPECT_NO_FATAL_FAILURE(GenerateFatalFailureInAnotherThread(true));
        +  // We should only have one failure (the one from
        +  // GenerateFatalFailureInAnotherThread()), since the EXPECT_NO_FATAL_FAILURE
        +  // should succeed.
        +  CheckTestFailureCount(1);
        +}
        +
        +void AssertNoFatalFailureIgnoresFailuresInOtherThreads() {
        +  ASSERT_NO_FATAL_FAILURE(GenerateFatalFailureInAnotherThread(true));
        +}
        +TEST(NoFatalFailureTest, AssertNoFatalFailureIgnoresFailuresInOtherThreads) {
        +  // Using a subroutine, to make sure, that the test continues.
        +  AssertNoFatalFailureIgnoresFailuresInOtherThreads();
        +  // We should only have one failure (the one from
        +  // GenerateFatalFailureInAnotherThread()), since the EXPECT_NO_FATAL_FAILURE
        +  // should succeed.
        +  CheckTestFailureCount(1);
        +}
        +
        +TEST(FatalFailureTest, ExpectFatalFailureIgnoresFailuresInOtherThreads) {
        +  // This statement should fail, since the current thread doesn't generate a
        +  // fatal failure, only another one does.
        +  EXPECT_FATAL_FAILURE(GenerateFatalFailureInAnotherThread(true), "expected");
        +  CheckTestFailureCount(2);
        +}
        +
        +TEST(FatalFailureOnAllThreadsTest, ExpectFatalFailureOnAllThreads) {
        +  // This statement should succeed, because failures in all threads are
        +  // considered.
        +  EXPECT_FATAL_FAILURE_ON_ALL_THREADS(
        +      GenerateFatalFailureInAnotherThread(true), "expected");
        +  CheckTestFailureCount(0);
        +  // We need to add a failure, because main() checks that there are failures.
        +  // But when only this test is run, we shouldn't have any failures.
        +  ADD_FAILURE() << "This is an expected non-fatal failure.";
        +}
        +
        +TEST(NonFatalFailureTest, ExpectNonFatalFailureIgnoresFailuresInOtherThreads) {
        +  // This statement should fail, since the current thread doesn't generate a
        +  // fatal failure, only another one does.
        +  EXPECT_NONFATAL_FAILURE(GenerateFatalFailureInAnotherThread(false),
        +                          "expected");
        +  CheckTestFailureCount(2);
        +}
        +
        +TEST(NonFatalFailureOnAllThreadsTest, ExpectNonFatalFailureOnAllThreads) {
        +  // This statement should succeed, because failures in all threads are
        +  // considered.
        +  EXPECT_NONFATAL_FAILURE_ON_ALL_THREADS(
        +      GenerateFatalFailureInAnotherThread(false), "expected");
        +  CheckTestFailureCount(0);
        +  // We need to add a failure, because main() checks that there are failures,
        +  // But when only this test is run, we shouldn't have any failures.
        +  ADD_FAILURE() << "This is an expected non-fatal failure.";
        +}
        +
        +}  // namespace
        +}  // namespace testing
        +
        +int main(int argc, char **argv) {
        +  testing::InitGoogleTest(&argc, argv);
        +
        +  const int result = RUN_ALL_TESTS();  // Expected to fail.
        +  GTEST_CHECK_(result == 1) << "RUN_ALL_TESTS() did not fail as expected";
        +
        +  printf("\nPASS\n");
        +  return 0;
        +}
        +
        +#else
        +TEST(StressTest,
        +     DISABLED_ThreadSafetyTestsAreSkippedWhenGoogleTestIsNotThreadSafe) {
        +}
        +
        +int main(int argc, char **argv) {
        +  testing::InitGoogleTest(&argc, argv);
        +  return RUN_ALL_TESTS();
        +}
        +#endif  // GTEST_IS_THREADSAFE
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_test_utils.py b/lib/ann/fann/lib/googletest/test/gtest_test_utils.py
        new file mode 100755
        index 0000000..7e3cbca
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_test_utils.py
        @@ -0,0 +1,320 @@
        +#!/usr/bin/env python
        +#
        +# Copyright 2006, Google Inc.
        +# All rights reserved.
        +#
        +# Redistribution and use in source and binary forms, with or without
        +# modification, are permitted provided that the following conditions are
        +# met:
        +#
        +#     * Redistributions of source code must retain the above copyright
        +# notice, this list of conditions and the following disclaimer.
        +#     * Redistributions in binary form must reproduce the above
        +# copyright notice, this list of conditions and the following disclaimer
        +# in the documentation and/or other materials provided with the
        +# distribution.
        +#     * Neither the name of Google Inc. nor the names of its
        +# contributors may be used to endorse or promote products derived from
        +# this software without specific prior written permission.
        +#
        +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +"""Unit test utilities for Google C++ Testing Framework."""
        +
        +__author__ = 'wan@google.com (Zhanyong Wan)'
        +
        +import atexit
        +import os
        +import shutil
        +import sys
        +import tempfile
        +import unittest
        +_test_module = unittest
        +
        +# Suppresses the 'Import not at the top of the file' lint complaint.
        +# pylint: disable-msg=C6204
        +try:
        +  import subprocess
        +  _SUBPROCESS_MODULE_AVAILABLE = True
        +except:
        +  import popen2
        +  _SUBPROCESS_MODULE_AVAILABLE = False
        +# pylint: enable-msg=C6204
        +
        +GTEST_OUTPUT_VAR_NAME = 'GTEST_OUTPUT'
        +
        +IS_WINDOWS = os.name == 'nt'
        +IS_CYGWIN = os.name == 'posix' and 'CYGWIN' in os.uname()[0]
        +
        +# The environment variable for specifying the path to the premature-exit file.
        +PREMATURE_EXIT_FILE_ENV_VAR = 'TEST_PREMATURE_EXIT_FILE'
        +
        +environ = os.environ.copy()
        +
        +
        +def SetEnvVar(env_var, value):
        +  """Sets/unsets an environment variable to a given value."""
        +
        +  if value is not None:
        +    environ[env_var] = value
        +  elif env_var in environ:
        +    del environ[env_var]
        +
        +
        +# Here we expose a class from a particular module, depending on the
        +# environment. The comment suppresses the 'Invalid variable name' lint
        +# complaint.
        +TestCase = _test_module.TestCase  # pylint: disable-msg=C6409
        +
        +# Initially maps a flag to its default value. After
        +# _ParseAndStripGTestFlags() is called, maps a flag to its actual value.
        +_flag_map = {'source_dir': os.path.dirname(sys.argv[0]),
        +             'build_dir': os.path.dirname(sys.argv[0])}
        +_gtest_flags_are_parsed = False
        +
        +
        +def _ParseAndStripGTestFlags(argv):
        +  """Parses and strips Google Test flags from argv.  This is idempotent."""
        +
        +  # Suppresses the lint complaint about a global variable since we need it
        +  # here to maintain module-wide state.
        +  global _gtest_flags_are_parsed  # pylint: disable-msg=W0603
        +  if _gtest_flags_are_parsed:
        +    return
        +
        +  _gtest_flags_are_parsed = True
        +  for flag in _flag_map:
        +    # The environment variable overrides the default value.
        +    if flag.upper() in os.environ:
        +      _flag_map[flag] = os.environ[flag.upper()]
        +
        +    # The command line flag overrides the environment variable.
        +    i = 1  # Skips the program name.
        +    while i < len(argv):
        +      prefix = '--' + flag + '='
        +      if argv[i].startswith(prefix):
        +        _flag_map[flag] = argv[i][len(prefix):]
        +        del argv[i]
        +        break
        +      else:
        +        # We don't increment i in case we just found a --gtest_* flag
        +        # and removed it from argv.
        +        i += 1
        +
        +
        +def GetFlag(flag):
        +  """Returns the value of the given flag."""
        +
        +  # In case GetFlag() is called before Main(), we always call
        +  # _ParseAndStripGTestFlags() here to make sure the --gtest_* flags
        +  # are parsed.
        +  _ParseAndStripGTestFlags(sys.argv)
        +
        +  return _flag_map[flag]
        +
        +
        +def GetSourceDir():
        +  """Returns the absolute path of the directory where the .py files are."""
        +
        +  return os.path.abspath(GetFlag('source_dir'))
        +
        +
        +def GetBuildDir():
        +  """Returns the absolute path of the directory where the test binaries are."""
        +
        +  return os.path.abspath(GetFlag('build_dir'))
        +
        +
        +_temp_dir = None
        +
        +def _RemoveTempDir():
        +  if _temp_dir:
        +    shutil.rmtree(_temp_dir, ignore_errors=True)
        +
        +atexit.register(_RemoveTempDir)
        +
        +
        +def GetTempDir():
        +  """Returns a directory for temporary files."""
        +
        +  global _temp_dir
        +  if not _temp_dir:
        +    _temp_dir = tempfile.mkdtemp()
        +  return _temp_dir
        +
        +
        +def GetTestExecutablePath(executable_name, build_dir=None):
        +  """Returns the absolute path of the test binary given its name.
        +
        +  The function will print a message and abort the program if the resulting file
        +  doesn't exist.
        +
        +  Args:
        +    executable_name: name of the test binary that the test script runs.
        +    build_dir:       directory where to look for executables, by default
        +                     the result of GetBuildDir().
        +
        +  Returns:
        +    The absolute path of the test binary.
        +  """
        +
        +  path = os.path.abspath(os.path.join(build_dir or GetBuildDir(),
        +                                      executable_name))
        +  if (IS_WINDOWS or IS_CYGWIN) and not path.endswith('.exe'):
        +    path += '.exe'
        +
        +  if not os.path.exists(path):
        +    message = (
        +        'Unable to find the test binary "%s". Please make sure to provide\n'
        +        'a path to the binary via the --build_dir flag or the BUILD_DIR\n'
        +        'environment variable.' % path)
        +    print >> sys.stderr, message
        +    sys.exit(1)
        +
        +  return path
        +
        +
        +def GetExitStatus(exit_code):
        +  """Returns the argument to exit(), or -1 if exit() wasn't called.
        +
        +  Args:
        +    exit_code: the result value of os.system(command).
        +  """
        +
        +  if os.name == 'nt':
        +    # On Windows, os.WEXITSTATUS() doesn't work and os.system() returns
        +    # the argument to exit() directly.
        +    return exit_code
        +  else:
        +    # On Unix, os.WEXITSTATUS() must be used to extract the exit status
        +    # from the result of os.system().
        +    if os.WIFEXITED(exit_code):
        +      return os.WEXITSTATUS(exit_code)
        +    else:
        +      return -1
        +
        +
        +class Subprocess:
        +  def __init__(self, command, working_dir=None, capture_stderr=True, env=None):
        +    """Changes into a specified directory, if provided, and executes a command.
        +
        +    Restores the old directory afterwards.
        +
        +    Args:
        +      command:        The command to run, in the form of sys.argv.
        +      working_dir:    The directory to change into.
        +      capture_stderr: Determines whether to capture stderr in the output member
        +                      or to discard it.
        +      env:            Dictionary with environment to pass to the subprocess.
        +
        +    Returns:
        +      An object that represents outcome of the executed process. It has the
        +      following attributes:
        +        terminated_by_signal   True iff the child process has been terminated
        +                               by a signal.
        +        signal                 Sygnal that terminated the child process.
        +        exited                 True iff the child process exited normally.
        +        exit_code              The code with which the child process exited.
        +        output                 Child process's stdout and stderr output
        +                               combined in a string.
        +    """
        +
        +    # The subprocess module is the preferrable way of running programs
        +    # since it is available and behaves consistently on all platforms,
        +    # including Windows. But it is only available starting in python 2.4.
        +    # In earlier python versions, we revert to the popen2 module, which is
        +    # available in python 2.0 and later but doesn't provide required
        +    # functionality (Popen4) under Windows. This allows us to support Mac
        +    # OS X 10.4 Tiger, which has python 2.3 installed.
        +    if _SUBPROCESS_MODULE_AVAILABLE:
        +      if capture_stderr:
        +        stderr = subprocess.STDOUT
        +      else:
        +        stderr = subprocess.PIPE
        +
        +      p = subprocess.Popen(command,
        +                           stdout=subprocess.PIPE, stderr=stderr,
        +                           cwd=working_dir, universal_newlines=True, env=env)
        +      # communicate returns a tuple with the file obect for the child's
        +      # output.
        +      self.output = p.communicate()[0]
        +      self._return_code = p.returncode
        +    else:
        +      old_dir = os.getcwd()
        +
        +      def _ReplaceEnvDict(dest, src):
        +        # Changes made by os.environ.clear are not inheritable by child
        +        # processes until Python 2.6. To produce inheritable changes we have
        +        # to delete environment items with the del statement.
        +        for key in dest.keys():
        +          del dest[key]
        +        dest.update(src)
        +
        +      # When 'env' is not None, backup the environment variables and replace
        +      # them with the passed 'env'. When 'env' is None, we simply use the
        +      # current 'os.environ' for compatibility with the subprocess.Popen
        +      # semantics used above.
        +      if env is not None:
        +        old_environ = os.environ.copy()
        +        _ReplaceEnvDict(os.environ, env)
        +
        +      try:
        +        if working_dir is not None:
        +          os.chdir(working_dir)
        +        if capture_stderr:
        +          p = popen2.Popen4(command)
        +        else:
        +          p = popen2.Popen3(command)
        +        p.tochild.close()
        +        self.output = p.fromchild.read()
        +        ret_code = p.wait()
        +      finally:
        +        os.chdir(old_dir)
        +
        +        # Restore the old environment variables
        +        # if they were replaced.
        +        if env is not None:
        +          _ReplaceEnvDict(os.environ, old_environ)
        +
        +      # Converts ret_code to match the semantics of
        +      # subprocess.Popen.returncode.
        +      if os.WIFSIGNALED(ret_code):
        +        self._return_code = -os.WTERMSIG(ret_code)
        +      else:  # os.WIFEXITED(ret_code) should return True here.
        +        self._return_code = os.WEXITSTATUS(ret_code)
        +
        +    if self._return_code < 0:
        +      self.terminated_by_signal = True
        +      self.exited = False
        +      self.signal = -self._return_code
        +    else:
        +      self.terminated_by_signal = False
        +      self.exited = True
        +      self.exit_code = self._return_code
        +
        +
        +def Main():
        +  """Runs the unit test."""
        +
        +  # We must call _ParseAndStripGTestFlags() before calling
        +  # unittest.main().  Otherwise the latter will be confused by the
        +  # --gtest_* flags.
        +  _ParseAndStripGTestFlags(sys.argv)
        +  # The tested binaries should not be writing XML output files unless the
        +  # script explicitly instructs them to.
        +  # TODO(vladl@google.com): Move this into Subprocess when we implement
        +  # passing environment into it as a parameter.
        +  if GTEST_OUTPUT_VAR_NAME in os.environ:
        +    del os.environ[GTEST_OUTPUT_VAR_NAME]
        +
        +  _test_module.main()
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_throw_on_failure_ex_test.cc b/lib/ann/fann/lib/googletest/test/gtest_throw_on_failure_ex_test.cc
        new file mode 100644
        index 0000000..8d46c76
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_throw_on_failure_ex_test.cc
        @@ -0,0 +1,92 @@
        +// Copyright 2009, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +// Tests Google Test's throw-on-failure mode with exceptions enabled.
        +
        +#include "gtest/gtest.h"
        +
        +#include <stdlib.h>
        +#include <stdio.h>
        +#include <string.h>
        +#include <stdexcept>
        +
        +// Prints the given failure message and exits the program with
        +// non-zero.  We use this instead of a Google Test assertion to
        +// indicate a failure, as the latter is been tested and cannot be
        +// relied on.
        +void Fail(const char* msg) {
        +  printf("FAILURE: %s\n", msg);
        +  fflush(stdout);
        +  exit(1);
        +}
        +
        +// Tests that an assertion failure throws a subclass of
        +// std::runtime_error.
        +void TestFailureThrowsRuntimeError() {
        +  testing::GTEST_FLAG(throw_on_failure) = true;
        +
        +  // A successful assertion shouldn't throw.
        +  try {
        +    EXPECT_EQ(3, 3);
        +  } catch(...) {
        +    Fail("A successful assertion wrongfully threw.");
        +  }
        +
        +  // A failed assertion should throw a subclass of std::runtime_error.
        +  try {
        +    EXPECT_EQ(2, 3) << "Expected failure";
        +  } catch(const std::runtime_error& e) {
        +    if (strstr(e.what(), "Expected failure") != NULL)
        +      return;
        +
        +    printf("%s",
        +           "A failed assertion did throw an exception of the right type, "
        +           "but the message is incorrect.  Instead of containing \"Expected "
        +           "failure\", it is:\n");
        +    Fail(e.what());
        +  } catch(...) {
        +    Fail("A failed assertion threw the wrong type of exception.");
        +  }
        +  Fail("A failed assertion should've thrown but didn't.");
        +}
        +
        +int main(int argc, char** argv) {
        +  testing::InitGoogleTest(&argc, argv);
        +
        +  // We want to ensure that people can use Google Test assertions in
        +  // other testing frameworks, as long as they initialize Google Test
        +  // properly and set the thrown-on-failure mode.  Therefore, we don't
        +  // use Google Test's constructs for defining and running tests
        +  // (e.g. TEST and RUN_ALL_TESTS) here.
        +
        +  TestFailureThrowsRuntimeError();
        +  return 0;
        +}
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_throw_on_failure_test.py b/lib/ann/fann/lib/googletest/test/gtest_throw_on_failure_test.py
        new file mode 100755
        index 0000000..5678ffe
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_throw_on_failure_test.py
        @@ -0,0 +1,171 @@
        +#!/usr/bin/env python
        +#
        +# Copyright 2009, Google Inc.
        +# All rights reserved.
        +#
        +# Redistribution and use in source and binary forms, with or without
        +# modification, are permitted provided that the following conditions are
        +# met:
        +#
        +#     * Redistributions of source code must retain the above copyright
        +# notice, this list of conditions and the following disclaimer.
        +#     * Redistributions in binary form must reproduce the above
        +# copyright notice, this list of conditions and the following disclaimer
        +# in the documentation and/or other materials provided with the
        +# distribution.
        +#     * Neither the name of Google Inc. nor the names of its
        +# contributors may be used to endorse or promote products derived from
        +# this software without specific prior written permission.
        +#
        +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +"""Tests Google Test's throw-on-failure mode with exceptions disabled.
        +
        +This script invokes gtest_throw_on_failure_test_ (a program written with
        +Google Test) with different environments and command line flags.
        +"""
        +
        +__author__ = 'wan@google.com (Zhanyong Wan)'
        +
        +import os
        +import gtest_test_utils
        +
        +
        +# Constants.
        +
        +# The command line flag for enabling/disabling the throw-on-failure mode.
        +THROW_ON_FAILURE = 'gtest_throw_on_failure'
        +
        +# Path to the gtest_throw_on_failure_test_ program, compiled with
        +# exceptions disabled.
        +EXE_PATH = gtest_test_utils.GetTestExecutablePath(
        +    'gtest_throw_on_failure_test_')
        +
        +
        +# Utilities.
        +
        +
        +def SetEnvVar(env_var, value):
        +  """Sets an environment variable to a given value; unsets it when the
        +  given value is None.
        +  """
        +
        +  env_var = env_var.upper()
        +  if value is not None:
        +    os.environ[env_var] = value
        +  elif env_var in os.environ:
        +    del os.environ[env_var]
        +
        +
        +def Run(command):
        +  """Runs a command; returns True/False if its exit code is/isn't 0."""
        +
        +  print 'Running "%s". . .' % ' '.join(command)
        +  p = gtest_test_utils.Subprocess(command)
        +  return p.exited and p.exit_code == 0
        +
        +
        +# The tests.  TODO(wan@google.com): refactor the class to share common
        +# logic with code in gtest_break_on_failure_unittest.py.
        +class ThrowOnFailureTest(gtest_test_utils.TestCase):
        +  """Tests the throw-on-failure mode."""
        +
        +  def RunAndVerify(self, env_var_value, flag_value, should_fail):
        +    """Runs gtest_throw_on_failure_test_ and verifies that it does
        +    (or does not) exit with a non-zero code.
        +
        +    Args:
        +      env_var_value:    value of the GTEST_BREAK_ON_FAILURE environment
        +                        variable; None if the variable should be unset.
        +      flag_value:       value of the --gtest_break_on_failure flag;
        +                        None if the flag should not be present.
        +      should_fail:      True iff the program is expected to fail.
        +    """
        +
        +    SetEnvVar(THROW_ON_FAILURE, env_var_value)
        +
        +    if env_var_value is None:
        +      env_var_value_msg = ' is not set'
        +    else:
        +      env_var_value_msg = '=' + env_var_value
        +
        +    if flag_value is None:
        +      flag = ''
        +    elif flag_value == '0':
        +      flag = '--%s=0' % THROW_ON_FAILURE
        +    else:
        +      flag = '--%s' % THROW_ON_FAILURE
        +
        +    command = [EXE_PATH]
        +    if flag:
        +      command.append(flag)
        +
        +    if should_fail:
        +      should_or_not = 'should'
        +    else:
        +      should_or_not = 'should not'
        +
        +    failed = not Run(command)
        +
        +    SetEnvVar(THROW_ON_FAILURE, None)
        +
        +    msg = ('when %s%s, an assertion failure in "%s" %s cause a non-zero '
        +           'exit code.' %
        +           (THROW_ON_FAILURE, env_var_value_msg, ' '.join(command),
        +            should_or_not))
        +    self.assert_(failed == should_fail, msg)
        +
        +  def testDefaultBehavior(self):
        +    """Tests the behavior of the default mode."""
        +
        +    self.RunAndVerify(env_var_value=None, flag_value=None, should_fail=False)
        +
        +  def testThrowOnFailureEnvVar(self):
        +    """Tests using the GTEST_THROW_ON_FAILURE environment variable."""
        +
        +    self.RunAndVerify(env_var_value='0',
        +                      flag_value=None,
        +                      should_fail=False)
        +    self.RunAndVerify(env_var_value='1',
        +                      flag_value=None,
        +                      should_fail=True)
        +
        +  def testThrowOnFailureFlag(self):
        +    """Tests using the --gtest_throw_on_failure flag."""
        +
        +    self.RunAndVerify(env_var_value=None,
        +                      flag_value='0',
        +                      should_fail=False)
        +    self.RunAndVerify(env_var_value=None,
        +                      flag_value='1',
        +                      should_fail=True)
        +
        +  def testThrowOnFailureFlagOverridesEnvVar(self):
        +    """Tests that --gtest_throw_on_failure overrides GTEST_THROW_ON_FAILURE."""
        +
        +    self.RunAndVerify(env_var_value='0',
        +                      flag_value='0',
        +                      should_fail=False)
        +    self.RunAndVerify(env_var_value='0',
        +                      flag_value='1',
        +                      should_fail=True)
        +    self.RunAndVerify(env_var_value='1',
        +                      flag_value='0',
        +                      should_fail=False)
        +    self.RunAndVerify(env_var_value='1',
        +                      flag_value='1',
        +                      should_fail=True)
        +
        +
        +if __name__ == '__main__':
        +  gtest_test_utils.Main()
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_throw_on_failure_test_.cc b/lib/ann/fann/lib/googletest/test/gtest_throw_on_failure_test_.cc
        new file mode 100644
        index 0000000..2b88fe3
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_throw_on_failure_test_.cc
        @@ -0,0 +1,72 @@
        +// Copyright 2009, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +// Tests Google Test's throw-on-failure mode with exceptions disabled.
        +//
        +// This program must be compiled with exceptions disabled.  It will be
        +// invoked by gtest_throw_on_failure_test.py, and is expected to exit
        +// with non-zero in the throw-on-failure mode or 0 otherwise.
        +
        +#include "gtest/gtest.h"
        +
        +#include <stdio.h>                      // for fflush, fprintf, NULL, etc.
        +#include <stdlib.h>                     // for exit
        +#include <exception>                    // for set_terminate
        +
        +// This terminate handler aborts the program using exit() rather than abort().
        +// This avoids showing pop-ups on Windows systems and core dumps on Unix-like
        +// ones.
        +void TerminateHandler() {
        +  fprintf(stderr, "%s\n", "Unhandled C++ exception terminating the program.");
        +  fflush(NULL);
        +  exit(1);
        +}
        +
        +int main(int argc, char** argv) {
        +#if GTEST_HAS_EXCEPTIONS
        +  std::set_terminate(&TerminateHandler);
        +#endif
        +  testing::InitGoogleTest(&argc, argv);
        +
        +  // We want to ensure that people can use Google Test assertions in
        +  // other testing frameworks, as long as they initialize Google Test
        +  // properly and set the throw-on-failure mode.  Therefore, we don't
        +  // use Google Test's constructs for defining and running tests
        +  // (e.g. TEST and RUN_ALL_TESTS) here.
        +
        +  // In the throw-on-failure mode with exceptions disabled, this
        +  // assertion will cause the program to exit with a non-zero code.
        +  EXPECT_EQ(2, 3);
        +
        +  // When not in the throw-on-failure mode, the control will reach
        +  // here.
        +  return 0;
        +}
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_uninitialized_test.py b/lib/ann/fann/lib/googletest/test/gtest_uninitialized_test.py
        new file mode 100755
        index 0000000..6ae57ee
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_uninitialized_test.py
        @@ -0,0 +1,70 @@
        +#!/usr/bin/env python
        +#
        +# Copyright 2008, Google Inc.
        +# All rights reserved.
        +#
        +# Redistribution and use in source and binary forms, with or without
        +# modification, are permitted provided that the following conditions are
        +# met:
        +#
        +#     * Redistributions of source code must retain the above copyright
        +# notice, this list of conditions and the following disclaimer.
        +#     * Redistributions in binary form must reproduce the above
        +# copyright notice, this list of conditions and the following disclaimer
        +# in the documentation and/or other materials provided with the
        +# distribution.
        +#     * Neither the name of Google Inc. nor the names of its
        +# contributors may be used to endorse or promote products derived from
        +# this software without specific prior written permission.
        +#
        +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +"""Verifies that Google Test warns the user when not initialized properly."""
        +
        +__author__ = 'wan@google.com (Zhanyong Wan)'
        +
        +import gtest_test_utils
        +
        +
        +COMMAND = gtest_test_utils.GetTestExecutablePath('gtest_uninitialized_test_')
        +
        +
        +def Assert(condition):
        +  if not condition:
        +    raise AssertionError
        +
        +
        +def AssertEq(expected, actual):
        +  if expected != actual:
        +    print 'Expected: %s' % (expected,)
        +    print '  Actual: %s' % (actual,)
        +    raise AssertionError
        +
        +
        +def TestExitCodeAndOutput(command):
        +  """Runs the given command and verifies its exit code and output."""
        +
        +  # Verifies that 'command' exits with code 1.
        +  p = gtest_test_utils.Subprocess(command)
        +  Assert(p.exited)
        +  AssertEq(1, p.exit_code)
        +  Assert('InitGoogleTest' in p.output)
        +
        +
        +class GTestUninitializedTest(gtest_test_utils.TestCase):
        +  def testExitCodeAndOutput(self):
        +    TestExitCodeAndOutput(COMMAND)
        +
        +
        +if __name__ == '__main__':
        +  gtest_test_utils.Main()
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_uninitialized_test_.cc b/lib/ann/fann/lib/googletest/test/gtest_uninitialized_test_.cc
        new file mode 100644
        index 0000000..4431698
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_uninitialized_test_.cc
        @@ -0,0 +1,43 @@
        +// Copyright 2008, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +
        +#include "gtest/gtest.h"
        +
        +TEST(DummyTest, Dummy) {
        +  // This test doesn't verify anything.  We just need it to create a
        +  // realistic stage for testing the behavior of Google Test when
        +  // RUN_ALL_TESTS() is called without testing::InitGoogleTest() being
        +  // called first.
        +}
        +
        +int main() {
        +  return RUN_ALL_TESTS();
        +}
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_unittest.cc b/lib/ann/fann/lib/googletest/test/gtest_unittest.cc
        new file mode 100644
        index 0000000..60aed35
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_unittest.cc
        @@ -0,0 +1,7699 @@
        +// Copyright 2005, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +//
        +// Tests for Google Test itself.  This verifies that the basic constructs of
        +// Google Test work.
        +
        +#include "gtest/gtest.h"
        +
        +// Verifies that the command line flag variables can be accessed
        +// in code once <gtest/gtest.h> has been #included.
        +// Do not move it after other #includes.
        +TEST(CommandLineFlagsTest, CanBeAccessedInCodeOnceGTestHIsIncluded) {
        +  bool dummy = testing::GTEST_FLAG(also_run_disabled_tests)
        +      || testing::GTEST_FLAG(break_on_failure)
        +      || testing::GTEST_FLAG(catch_exceptions)
        +      || testing::GTEST_FLAG(color) != "unknown"
        +      || testing::GTEST_FLAG(filter) != "unknown"
        +      || testing::GTEST_FLAG(list_tests)
        +      || testing::GTEST_FLAG(output) != "unknown"
        +      || testing::GTEST_FLAG(print_time)
        +      || testing::GTEST_FLAG(random_seed)
        +      || testing::GTEST_FLAG(repeat) > 0
        +      || testing::GTEST_FLAG(show_internal_stack_frames)
        +      || testing::GTEST_FLAG(shuffle)
        +      || testing::GTEST_FLAG(stack_trace_depth) > 0
        +      || testing::GTEST_FLAG(stream_result_to) != "unknown"
        +      || testing::GTEST_FLAG(throw_on_failure);
        +  EXPECT_TRUE(dummy || !dummy);  // Suppresses warning that dummy is unused.
        +}
        +
        +#include <limits.h>  // For INT_MAX.
        +#include <stdlib.h>
        +#include <string.h>
        +#include <time.h>
        +
        +#include <map>
        +#include <vector>
        +#include <ostream>
        +
        +#include "gtest/gtest-spi.h"
        +
        +// Indicates that this translation unit is part of Google Test's
        +// implementation.  It must come before gtest-internal-inl.h is
        +// included, or there will be a compiler error.  This trick is to
        +// prevent a user from accidentally including gtest-internal-inl.h in
        +// his code.
        +#define GTEST_IMPLEMENTATION_ 1
        +#include "src/gtest-internal-inl.h"
        +#undef GTEST_IMPLEMENTATION_
        +
        +namespace testing {
        +namespace internal {
        +
        +#if GTEST_CAN_STREAM_RESULTS_
        +
        +class StreamingListenerTest : public Test {
        + public:
        +  class FakeSocketWriter : public StreamingListener::AbstractSocketWriter {
        +   public:
        +    // Sends a string to the socket.
        +    virtual void Send(const string& message) { output_ += message; }
        +
        +    string output_;
        +  };
        +
        +  StreamingListenerTest()
        +      : fake_sock_writer_(new FakeSocketWriter),
        +        streamer_(fake_sock_writer_),
        +        test_info_obj_("FooTest", "Bar", NULL, NULL,
        +                       CodeLocation(__FILE__, __LINE__), 0, NULL) {}
        +
        + protected:
        +  string* output() { return &(fake_sock_writer_->output_); }
        +
        +  FakeSocketWriter* const fake_sock_writer_;
        +  StreamingListener streamer_;
        +  UnitTest unit_test_;
        +  TestInfo test_info_obj_;  // The name test_info_ was taken by testing::Test.
        +};
        +
        +TEST_F(StreamingListenerTest, OnTestProgramEnd) {
        +  *output() = "";
        +  streamer_.OnTestProgramEnd(unit_test_);
        +  EXPECT_EQ("event=TestProgramEnd&passed=1\n", *output());
        +}
        +
        +TEST_F(StreamingListenerTest, OnTestIterationEnd) {
        +  *output() = "";
        +  streamer_.OnTestIterationEnd(unit_test_, 42);
        +  EXPECT_EQ("event=TestIterationEnd&passed=1&elapsed_time=0ms\n", *output());
        +}
        +
        +TEST_F(StreamingListenerTest, OnTestCaseStart) {
        +  *output() = "";
        +  streamer_.OnTestCaseStart(TestCase("FooTest", "Bar", NULL, NULL));
        +  EXPECT_EQ("event=TestCaseStart&name=FooTest\n", *output());
        +}
        +
        +TEST_F(StreamingListenerTest, OnTestCaseEnd) {
        +  *output() = "";
        +  streamer_.OnTestCaseEnd(TestCase("FooTest", "Bar", NULL, NULL));
        +  EXPECT_EQ("event=TestCaseEnd&passed=1&elapsed_time=0ms\n", *output());
        +}
        +
        +TEST_F(StreamingListenerTest, OnTestStart) {
        +  *output() = "";
        +  streamer_.OnTestStart(test_info_obj_);
        +  EXPECT_EQ("event=TestStart&name=Bar\n", *output());
        +}
        +
        +TEST_F(StreamingListenerTest, OnTestEnd) {
        +  *output() = "";
        +  streamer_.OnTestEnd(test_info_obj_);
        +  EXPECT_EQ("event=TestEnd&passed=1&elapsed_time=0ms\n", *output());
        +}
        +
        +TEST_F(StreamingListenerTest, OnTestPartResult) {
        +  *output() = "";
        +  streamer_.OnTestPartResult(TestPartResult(
        +      TestPartResult::kFatalFailure, "foo.cc", 42, "failed=\n&%"));
        +
        +  // Meta characters in the failure message should be properly escaped.
        +  EXPECT_EQ(
        +      "event=TestPartResult&file=foo.cc&line=42&message=failed%3D%0A%26%25\n",
        +      *output());
        +}
        +
        +#endif  // GTEST_CAN_STREAM_RESULTS_
        +
        +// Provides access to otherwise private parts of the TestEventListeners class
        +// that are needed to test it.
        +class TestEventListenersAccessor {
        + public:
        +  static TestEventListener* GetRepeater(TestEventListeners* listeners) {
        +    return listeners->repeater();
        +  }
        +
        +  static void SetDefaultResultPrinter(TestEventListeners* listeners,
        +                                      TestEventListener* listener) {
        +    listeners->SetDefaultResultPrinter(listener);
        +  }
        +  static void SetDefaultXmlGenerator(TestEventListeners* listeners,
        +                                     TestEventListener* listener) {
        +    listeners->SetDefaultXmlGenerator(listener);
        +  }
        +
        +  static bool EventForwardingEnabled(const TestEventListeners& listeners) {
        +    return listeners.EventForwardingEnabled();
        +  }
        +
        +  static void SuppressEventForwarding(TestEventListeners* listeners) {
        +    listeners->SuppressEventForwarding();
        +  }
        +};
        +
        +class UnitTestRecordPropertyTestHelper : public Test {
        + protected:
        +  UnitTestRecordPropertyTestHelper() {}
        +
        +  // Forwards to UnitTest::RecordProperty() to bypass access controls.
        +  void UnitTestRecordProperty(const char* key, const std::string& value) {
        +    unit_test_.RecordProperty(key, value);
        +  }
        +
        +  UnitTest unit_test_;
        +};
        +
        +}  // namespace internal
        +}  // namespace testing
        +
        +using testing::AssertionFailure;
        +using testing::AssertionResult;
        +using testing::AssertionSuccess;
        +using testing::DoubleLE;
        +using testing::EmptyTestEventListener;
        +using testing::Environment;
        +using testing::FloatLE;
        +using testing::GTEST_FLAG(also_run_disabled_tests);
        +using testing::GTEST_FLAG(break_on_failure);
        +using testing::GTEST_FLAG(catch_exceptions);
        +using testing::GTEST_FLAG(color);
        +using testing::GTEST_FLAG(death_test_use_fork);
        +using testing::GTEST_FLAG(filter);
        +using testing::GTEST_FLAG(list_tests);
        +using testing::GTEST_FLAG(output);
        +using testing::GTEST_FLAG(print_time);
        +using testing::GTEST_FLAG(random_seed);
        +using testing::GTEST_FLAG(repeat);
        +using testing::GTEST_FLAG(show_internal_stack_frames);
        +using testing::GTEST_FLAG(shuffle);
        +using testing::GTEST_FLAG(stack_trace_depth);
        +using testing::GTEST_FLAG(stream_result_to);
        +using testing::GTEST_FLAG(throw_on_failure);
        +using testing::IsNotSubstring;
        +using testing::IsSubstring;
        +using testing::Message;
        +using testing::ScopedFakeTestPartResultReporter;
        +using testing::StaticAssertTypeEq;
        +using testing::Test;
        +using testing::TestCase;
        +using testing::TestEventListeners;
        +using testing::TestInfo;
        +using testing::TestPartResult;
        +using testing::TestPartResultArray;
        +using testing::TestProperty;
        +using testing::TestResult;
        +using testing::TimeInMillis;
        +using testing::UnitTest;
        +using testing::internal::AddReference;
        +using testing::internal::AlwaysFalse;
        +using testing::internal::AlwaysTrue;
        +using testing::internal::AppendUserMessage;
        +using testing::internal::ArrayAwareFind;
        +using testing::internal::ArrayEq;
        +using testing::internal::CodePointToUtf8;
        +using testing::internal::CompileAssertTypesEqual;
        +using testing::internal::CopyArray;
        +using testing::internal::CountIf;
        +using testing::internal::EqFailure;
        +using testing::internal::FloatingPoint;
        +using testing::internal::ForEach;
        +using testing::internal::FormatEpochTimeInMillisAsIso8601;
        +using testing::internal::FormatTimeInMillisAsSeconds;
        +using testing::internal::GTestFlagSaver;
        +using testing::internal::GetCurrentOsStackTraceExceptTop;
        +using testing::internal::GetElementOr;
        +using testing::internal::GetNextRandomSeed;
        +using testing::internal::GetRandomSeedFromFlag;
        +using testing::internal::GetTestTypeId;
        +using testing::internal::GetTimeInMillis;
        +using testing::internal::GetTypeId;
        +using testing::internal::GetUnitTestImpl;
        +using testing::internal::ImplicitlyConvertible;
        +using testing::internal::Int32;
        +using testing::internal::Int32FromEnvOrDie;
        +using testing::internal::IsAProtocolMessage;
        +using testing::internal::IsContainer;
        +using testing::internal::IsContainerTest;
        +using testing::internal::IsNotContainer;
        +using testing::internal::NativeArray;
        +using testing::internal::ParseInt32Flag;
        +using testing::internal::RelationToSourceCopy;
        +using testing::internal::RelationToSourceReference;
        +using testing::internal::RemoveConst;
        +using testing::internal::RemoveReference;
        +using testing::internal::ShouldRunTestOnShard;
        +using testing::internal::ShouldShard;
        +using testing::internal::ShouldUseColor;
        +using testing::internal::Shuffle;
        +using testing::internal::ShuffleRange;
        +using testing::internal::SkipPrefix;
        +using testing::internal::StreamableToString;
        +using testing::internal::String;
        +using testing::internal::TestEventListenersAccessor;
        +using testing::internal::TestResultAccessor;
        +using testing::internal::UInt32;
        +using testing::internal::WideStringToUtf8;
        +using testing::internal::edit_distance::CalculateOptimalEdits;
        +using testing::internal::edit_distance::CreateUnifiedDiff;
        +using testing::internal::edit_distance::EditType;
        +using testing::internal::kMaxRandomSeed;
        +using testing::internal::kTestTypeIdInGoogleTest;
        +using testing::kMaxStackTraceDepth;
        +
        +#if GTEST_HAS_STREAM_REDIRECTION
        +using testing::internal::CaptureStdout;
        +using testing::internal::GetCapturedStdout;
        +#endif
        +
        +#if GTEST_IS_THREADSAFE
        +using testing::internal::ThreadWithParam;
        +#endif
        +
        +class TestingVector : public std::vector<int> {
        +};
        +
        +::std::ostream& operator<<(::std::ostream& os,
        +                           const TestingVector& vector) {
        +  os << "{ ";
        +  for (size_t i = 0; i < vector.size(); i++) {
        +    os << vector[i] << " ";
        +  }
        +  os << "}";
        +  return os;
        +}
        +
        +// This line tests that we can define tests in an unnamed namespace.
        +namespace {
        +
        +TEST(GetRandomSeedFromFlagTest, HandlesZero) {
        +  const int seed = GetRandomSeedFromFlag(0);
        +  EXPECT_LE(1, seed);
        +  EXPECT_LE(seed, static_cast<int>(kMaxRandomSeed));
        +}
        +
        +TEST(GetRandomSeedFromFlagTest, PreservesValidSeed) {
        +  EXPECT_EQ(1, GetRandomSeedFromFlag(1));
        +  EXPECT_EQ(2, GetRandomSeedFromFlag(2));
        +  EXPECT_EQ(kMaxRandomSeed - 1, GetRandomSeedFromFlag(kMaxRandomSeed - 1));
        +  EXPECT_EQ(static_cast<int>(kMaxRandomSeed),
        +            GetRandomSeedFromFlag(kMaxRandomSeed));
        +}
        +
        +TEST(GetRandomSeedFromFlagTest, NormalizesInvalidSeed) {
        +  const int seed1 = GetRandomSeedFromFlag(-1);
        +  EXPECT_LE(1, seed1);
        +  EXPECT_LE(seed1, static_cast<int>(kMaxRandomSeed));
        +
        +  const int seed2 = GetRandomSeedFromFlag(kMaxRandomSeed + 1);
        +  EXPECT_LE(1, seed2);
        +  EXPECT_LE(seed2, static_cast<int>(kMaxRandomSeed));
        +}
        +
        +TEST(GetNextRandomSeedTest, WorksForValidInput) {
        +  EXPECT_EQ(2, GetNextRandomSeed(1));
        +  EXPECT_EQ(3, GetNextRandomSeed(2));
        +  EXPECT_EQ(static_cast<int>(kMaxRandomSeed),
        +            GetNextRandomSeed(kMaxRandomSeed - 1));
        +  EXPECT_EQ(1, GetNextRandomSeed(kMaxRandomSeed));
        +
        +  // We deliberately don't test GetNextRandomSeed() with invalid
        +  // inputs, as that requires death tests, which are expensive.  This
        +  // is fine as GetNextRandomSeed() is internal and has a
        +  // straightforward definition.
        +}
        +
        +static void ClearCurrentTestPartResults() {
        +  TestResultAccessor::ClearTestPartResults(
        +      GetUnitTestImpl()->current_test_result());
        +}
        +
        +// Tests GetTypeId.
        +
        +TEST(GetTypeIdTest, ReturnsSameValueForSameType) {
        +  EXPECT_EQ(GetTypeId<int>(), GetTypeId<int>());
        +  EXPECT_EQ(GetTypeId<Test>(), GetTypeId<Test>());
        +}
        +
        +class SubClassOfTest : public Test {};
        +class AnotherSubClassOfTest : public Test {};
        +
        +TEST(GetTypeIdTest, ReturnsDifferentValuesForDifferentTypes) {
        +  EXPECT_NE(GetTypeId<int>(), GetTypeId<const int>());
        +  EXPECT_NE(GetTypeId<int>(), GetTypeId<char>());
        +  EXPECT_NE(GetTypeId<int>(), GetTestTypeId());
        +  EXPECT_NE(GetTypeId<SubClassOfTest>(), GetTestTypeId());
        +  EXPECT_NE(GetTypeId<AnotherSubClassOfTest>(), GetTestTypeId());
        +  EXPECT_NE(GetTypeId<AnotherSubClassOfTest>(), GetTypeId<SubClassOfTest>());
        +}
        +
        +// Verifies that GetTestTypeId() returns the same value, no matter it
        +// is called from inside Google Test or outside of it.
        +TEST(GetTestTypeIdTest, ReturnsTheSameValueInsideOrOutsideOfGoogleTest) {
        +  EXPECT_EQ(kTestTypeIdInGoogleTest, GetTestTypeId());
        +}
        +
        +// Tests FormatTimeInMillisAsSeconds().
        +
        +TEST(FormatTimeInMillisAsSecondsTest, FormatsZero) {
        +  EXPECT_EQ("0", FormatTimeInMillisAsSeconds(0));
        +}
        +
        +TEST(FormatTimeInMillisAsSecondsTest, FormatsPositiveNumber) {
        +  EXPECT_EQ("0.003", FormatTimeInMillisAsSeconds(3));
        +  EXPECT_EQ("0.01", FormatTimeInMillisAsSeconds(10));
        +  EXPECT_EQ("0.2", FormatTimeInMillisAsSeconds(200));
        +  EXPECT_EQ("1.2", FormatTimeInMillisAsSeconds(1200));
        +  EXPECT_EQ("3", FormatTimeInMillisAsSeconds(3000));
        +}
        +
        +TEST(FormatTimeInMillisAsSecondsTest, FormatsNegativeNumber) {
        +  EXPECT_EQ("-0.003", FormatTimeInMillisAsSeconds(-3));
        +  EXPECT_EQ("-0.01", FormatTimeInMillisAsSeconds(-10));
        +  EXPECT_EQ("-0.2", FormatTimeInMillisAsSeconds(-200));
        +  EXPECT_EQ("-1.2", FormatTimeInMillisAsSeconds(-1200));
        +  EXPECT_EQ("-3", FormatTimeInMillisAsSeconds(-3000));
        +}
        +
        +// Tests FormatEpochTimeInMillisAsIso8601().  The correctness of conversion
        +// for particular dates below was verified in Python using
        +// datetime.datetime.fromutctimestamp(<timetamp>/1000).
        +
        +// FormatEpochTimeInMillisAsIso8601 depends on the current timezone, so we
        +// have to set up a particular timezone to obtain predictable results.
        +class FormatEpochTimeInMillisAsIso8601Test : public Test {
        + public:
        +  // On Cygwin, GCC doesn't allow unqualified integer literals to exceed
        +  // 32 bits, even when 64-bit integer types are available.  We have to
        +  // force the constants to have a 64-bit type here.
        +  static const TimeInMillis kMillisPerSec = 1000;
        +
        + private:
        +  virtual void SetUp() {
        +    saved_tz_ = NULL;
        +
        +    GTEST_DISABLE_MSC_WARNINGS_PUSH_(4996 /* getenv, strdup: deprecated */)
        +    if (getenv("TZ"))
        +      saved_tz_ = strdup(getenv("TZ"));
        +    GTEST_DISABLE_MSC_WARNINGS_POP_()
        +
        +    // Set up the time zone for FormatEpochTimeInMillisAsIso8601 to use.  We
        +    // cannot use the local time zone because the function's output depends
        +    // on the time zone.
        +    SetTimeZone("UTC+00");
        +  }
        +
        +  virtual void TearDown() {
        +    SetTimeZone(saved_tz_);
        +    free(const_cast<char*>(saved_tz_));
        +    saved_tz_ = NULL;
        +  }
        +
        +  static void SetTimeZone(const char* time_zone) {
        +    // tzset() distinguishes between the TZ variable being present and empty
        +    // and not being present, so we have to consider the case of time_zone
        +    // being NULL.
        +#if _MSC_VER
        +    // ...Unless it's MSVC, whose standard library's _putenv doesn't
        +    // distinguish between an empty and a missing variable.
        +    const std::string env_var =
        +        std::string("TZ=") + (time_zone ? time_zone : "");
        +    _putenv(env_var.c_str());
        +    GTEST_DISABLE_MSC_WARNINGS_PUSH_(4996 /* deprecated function */)
        +    tzset();
        +    GTEST_DISABLE_MSC_WARNINGS_POP_()
        +#else
        +    if (time_zone) {
        +      setenv(("TZ"), time_zone, 1);
        +    } else {
        +      unsetenv("TZ");
        +    }
        +    tzset();
        +#endif
        +  }
        +
        +  const char* saved_tz_;
        +};
        +
        +const TimeInMillis FormatEpochTimeInMillisAsIso8601Test::kMillisPerSec;
        +
        +TEST_F(FormatEpochTimeInMillisAsIso8601Test, PrintsTwoDigitSegments) {
        +  EXPECT_EQ("2011-10-31T18:52:42",
        +            FormatEpochTimeInMillisAsIso8601(1320087162 * kMillisPerSec));
        +}
        +
        +TEST_F(FormatEpochTimeInMillisAsIso8601Test, MillisecondsDoNotAffectResult) {
        +  EXPECT_EQ(
        +      "2011-10-31T18:52:42",
        +      FormatEpochTimeInMillisAsIso8601(1320087162 * kMillisPerSec + 234));
        +}
        +
        +TEST_F(FormatEpochTimeInMillisAsIso8601Test, PrintsLeadingZeroes) {
        +  EXPECT_EQ("2011-09-03T05:07:02",
        +            FormatEpochTimeInMillisAsIso8601(1315026422 * kMillisPerSec));
        +}
        +
        +TEST_F(FormatEpochTimeInMillisAsIso8601Test, Prints24HourTime) {
        +  EXPECT_EQ("2011-09-28T17:08:22",
        +            FormatEpochTimeInMillisAsIso8601(1317229702 * kMillisPerSec));
        +}
        +
        +TEST_F(FormatEpochTimeInMillisAsIso8601Test, PrintsEpochStart) {
        +  EXPECT_EQ("1970-01-01T00:00:00", FormatEpochTimeInMillisAsIso8601(0));
        +}
        +
        +#if GTEST_CAN_COMPARE_NULL
        +
        +# ifdef __BORLANDC__
        +// Silences warnings: "Condition is always true", "Unreachable code"
        +#  pragma option push -w-ccc -w-rch
        +# endif
        +
        +// Tests that GTEST_IS_NULL_LITERAL_(x) is true when x is a null
        +// pointer literal.
        +TEST(NullLiteralTest, IsTrueForNullLiterals) {
        +  EXPECT_TRUE(GTEST_IS_NULL_LITERAL_(NULL));
        +  EXPECT_TRUE(GTEST_IS_NULL_LITERAL_(0));
        +  EXPECT_TRUE(GTEST_IS_NULL_LITERAL_(0U));
        +  EXPECT_TRUE(GTEST_IS_NULL_LITERAL_(0L));
        +}
        +
        +// Tests that GTEST_IS_NULL_LITERAL_(x) is false when x is not a null
        +// pointer literal.
        +TEST(NullLiteralTest, IsFalseForNonNullLiterals) {
        +  EXPECT_FALSE(GTEST_IS_NULL_LITERAL_(1));
        +  EXPECT_FALSE(GTEST_IS_NULL_LITERAL_(0.0));
        +  EXPECT_FALSE(GTEST_IS_NULL_LITERAL_('a'));
        +  EXPECT_FALSE(GTEST_IS_NULL_LITERAL_(static_cast<void*>(NULL)));
        +}
        +
        +# ifdef __BORLANDC__
        +// Restores warnings after previous "#pragma option push" suppressed them.
        +#  pragma option pop
        +# endif
        +
        +#endif  // GTEST_CAN_COMPARE_NULL
        +//
        +// Tests CodePointToUtf8().
        +
        +// Tests that the NUL character L'\0' is encoded correctly.
        +TEST(CodePointToUtf8Test, CanEncodeNul) {
        +  EXPECT_EQ("", CodePointToUtf8(L'\0'));
        +}
        +
        +// Tests that ASCII characters are encoded correctly.
        +TEST(CodePointToUtf8Test, CanEncodeAscii) {
        +  EXPECT_EQ("a", CodePointToUtf8(L'a'));
        +  EXPECT_EQ("Z", CodePointToUtf8(L'Z'));
        +  EXPECT_EQ("&", CodePointToUtf8(L'&'));
        +  EXPECT_EQ("\x7F", CodePointToUtf8(L'\x7F'));
        +}
        +
        +// Tests that Unicode code-points that have 8 to 11 bits are encoded
        +// as 110xxxxx 10xxxxxx.
        +TEST(CodePointToUtf8Test, CanEncode8To11Bits) {
        +  // 000 1101 0011 => 110-00011 10-010011
        +  EXPECT_EQ("\xC3\x93", CodePointToUtf8(L'\xD3'));
        +
        +  // 101 0111 0110 => 110-10101 10-110110
        +  // Some compilers (e.g., GCC on MinGW) cannot handle non-ASCII codepoints
        +  // in wide strings and wide chars. In order to accomodate them, we have to
        +  // introduce such character constants as integers.
        +  EXPECT_EQ("\xD5\xB6",
        +            CodePointToUtf8(static_cast<wchar_t>(0x576)));
        +}
        +
        +// Tests that Unicode code-points that have 12 to 16 bits are encoded
        +// as 1110xxxx 10xxxxxx 10xxxxxx.
        +TEST(CodePointToUtf8Test, CanEncode12To16Bits) {
        +  // 0000 1000 1101 0011 => 1110-0000 10-100011 10-010011
        +  EXPECT_EQ("\xE0\xA3\x93",
        +            CodePointToUtf8(static_cast<wchar_t>(0x8D3)));
        +
        +  // 1100 0111 0100 1101 => 1110-1100 10-011101 10-001101
        +  EXPECT_EQ("\xEC\x9D\x8D",
        +            CodePointToUtf8(static_cast<wchar_t>(0xC74D)));
        +}
        +
        +#if !GTEST_WIDE_STRING_USES_UTF16_
        +// Tests in this group require a wchar_t to hold > 16 bits, and thus
        +// are skipped on Windows, Cygwin, and Symbian, where a wchar_t is
        +// 16-bit wide. This code may not compile on those systems.
        +
        +// Tests that Unicode code-points that have 17 to 21 bits are encoded
        +// as 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx.
        +TEST(CodePointToUtf8Test, CanEncode17To21Bits) {
        +  // 0 0001 0000 1000 1101 0011 => 11110-000 10-010000 10-100011 10-010011
        +  EXPECT_EQ("\xF0\x90\xA3\x93", CodePointToUtf8(L'\x108D3'));
        +
        +  // 0 0001 0000 0100 0000 0000 => 11110-000 10-010000 10-010000 10-000000
        +  EXPECT_EQ("\xF0\x90\x90\x80", CodePointToUtf8(L'\x10400'));
        +
        +  // 1 0000 1000 0110 0011 0100 => 11110-100 10-001000 10-011000 10-110100
        +  EXPECT_EQ("\xF4\x88\x98\xB4", CodePointToUtf8(L'\x108634'));
        +}
        +
        +// Tests that encoding an invalid code-point generates the expected result.
        +TEST(CodePointToUtf8Test, CanEncodeInvalidCodePoint) {
        +  EXPECT_EQ("(Invalid Unicode 0x1234ABCD)", CodePointToUtf8(L'\x1234ABCD'));
        +}
        +
        +#endif  // !GTEST_WIDE_STRING_USES_UTF16_
        +
        +// Tests WideStringToUtf8().
        +
        +// Tests that the NUL character L'\0' is encoded correctly.
        +TEST(WideStringToUtf8Test, CanEncodeNul) {
        +  EXPECT_STREQ("", WideStringToUtf8(L"", 0).c_str());
        +  EXPECT_STREQ("", WideStringToUtf8(L"", -1).c_str());
        +}
        +
        +// Tests that ASCII strings are encoded correctly.
        +TEST(WideStringToUtf8Test, CanEncodeAscii) {
        +  EXPECT_STREQ("a", WideStringToUtf8(L"a", 1).c_str());
        +  EXPECT_STREQ("ab", WideStringToUtf8(L"ab", 2).c_str());
        +  EXPECT_STREQ("a", WideStringToUtf8(L"a", -1).c_str());
        +  EXPECT_STREQ("ab", WideStringToUtf8(L"ab", -1).c_str());
        +}
        +
        +// Tests that Unicode code-points that have 8 to 11 bits are encoded
        +// as 110xxxxx 10xxxxxx.
        +TEST(WideStringToUtf8Test, CanEncode8To11Bits) {
        +  // 000 1101 0011 => 110-00011 10-010011
        +  EXPECT_STREQ("\xC3\x93", WideStringToUtf8(L"\xD3", 1).c_str());
        +  EXPECT_STREQ("\xC3\x93", WideStringToUtf8(L"\xD3", -1).c_str());
        +
        +  // 101 0111 0110 => 110-10101 10-110110
        +  const wchar_t s[] = { 0x576, '\0' };
        +  EXPECT_STREQ("\xD5\xB6", WideStringToUtf8(s, 1).c_str());
        +  EXPECT_STREQ("\xD5\xB6", WideStringToUtf8(s, -1).c_str());
        +}
        +
        +// Tests that Unicode code-points that have 12 to 16 bits are encoded
        +// as 1110xxxx 10xxxxxx 10xxxxxx.
        +TEST(WideStringToUtf8Test, CanEncode12To16Bits) {
        +  // 0000 1000 1101 0011 => 1110-0000 10-100011 10-010011
        +  const wchar_t s1[] = { 0x8D3, '\0' };
        +  EXPECT_STREQ("\xE0\xA3\x93", WideStringToUtf8(s1, 1).c_str());
        +  EXPECT_STREQ("\xE0\xA3\x93", WideStringToUtf8(s1, -1).c_str());
        +
        +  // 1100 0111 0100 1101 => 1110-1100 10-011101 10-001101
        +  const wchar_t s2[] = { 0xC74D, '\0' };
        +  EXPECT_STREQ("\xEC\x9D\x8D", WideStringToUtf8(s2, 1).c_str());
        +  EXPECT_STREQ("\xEC\x9D\x8D", WideStringToUtf8(s2, -1).c_str());
        +}
        +
        +// Tests that the conversion stops when the function encounters \0 character.
        +TEST(WideStringToUtf8Test, StopsOnNulCharacter) {
        +  EXPECT_STREQ("ABC", WideStringToUtf8(L"ABC\0XYZ", 100).c_str());
        +}
        +
        +// Tests that the conversion stops when the function reaches the limit
        +// specified by the 'length' parameter.
        +TEST(WideStringToUtf8Test, StopsWhenLengthLimitReached) {
        +  EXPECT_STREQ("ABC", WideStringToUtf8(L"ABCDEF", 3).c_str());
        +}
        +
        +#if !GTEST_WIDE_STRING_USES_UTF16_
        +// Tests that Unicode code-points that have 17 to 21 bits are encoded
        +// as 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx. This code may not compile
        +// on the systems using UTF-16 encoding.
        +TEST(WideStringToUtf8Test, CanEncode17To21Bits) {
        +  // 0 0001 0000 1000 1101 0011 => 11110-000 10-010000 10-100011 10-010011
        +  EXPECT_STREQ("\xF0\x90\xA3\x93", WideStringToUtf8(L"\x108D3", 1).c_str());
        +  EXPECT_STREQ("\xF0\x90\xA3\x93", WideStringToUtf8(L"\x108D3", -1).c_str());
        +
        +  // 1 0000 1000 0110 0011 0100 => 11110-100 10-001000 10-011000 10-110100
        +  EXPECT_STREQ("\xF4\x88\x98\xB4", WideStringToUtf8(L"\x108634", 1).c_str());
        +  EXPECT_STREQ("\xF4\x88\x98\xB4", WideStringToUtf8(L"\x108634", -1).c_str());
        +}
        +
        +// Tests that encoding an invalid code-point generates the expected result.
        +TEST(WideStringToUtf8Test, CanEncodeInvalidCodePoint) {
        +  EXPECT_STREQ("(Invalid Unicode 0xABCDFF)",
        +               WideStringToUtf8(L"\xABCDFF", -1).c_str());
        +}
        +#else  // !GTEST_WIDE_STRING_USES_UTF16_
        +// Tests that surrogate pairs are encoded correctly on the systems using
        +// UTF-16 encoding in the wide strings.
        +TEST(WideStringToUtf8Test, CanEncodeValidUtf16SUrrogatePairs) {
        +  const wchar_t s[] = { 0xD801, 0xDC00, '\0' };
        +  EXPECT_STREQ("\xF0\x90\x90\x80", WideStringToUtf8(s, -1).c_str());
        +}
        +
        +// Tests that encoding an invalid UTF-16 surrogate pair
        +// generates the expected result.
        +TEST(WideStringToUtf8Test, CanEncodeInvalidUtf16SurrogatePair) {
        +  // Leading surrogate is at the end of the string.
        +  const wchar_t s1[] = { 0xD800, '\0' };
        +  EXPECT_STREQ("\xED\xA0\x80", WideStringToUtf8(s1, -1).c_str());
        +  // Leading surrogate is not followed by the trailing surrogate.
        +  const wchar_t s2[] = { 0xD800, 'M', '\0' };
        +  EXPECT_STREQ("\xED\xA0\x80M", WideStringToUtf8(s2, -1).c_str());
        +  // Trailing surrogate appearas without a leading surrogate.
        +  const wchar_t s3[] = { 0xDC00, 'P', 'Q', 'R', '\0' };
        +  EXPECT_STREQ("\xED\xB0\x80PQR", WideStringToUtf8(s3, -1).c_str());
        +}
        +#endif  // !GTEST_WIDE_STRING_USES_UTF16_
        +
        +// Tests that codepoint concatenation works correctly.
        +#if !GTEST_WIDE_STRING_USES_UTF16_
        +TEST(WideStringToUtf8Test, ConcatenatesCodepointsCorrectly) {
        +  const wchar_t s[] = { 0x108634, 0xC74D, '\n', 0x576, 0x8D3, 0x108634, '\0'};
        +  EXPECT_STREQ(
        +      "\xF4\x88\x98\xB4"
        +          "\xEC\x9D\x8D"
        +          "\n"
        +          "\xD5\xB6"
        +          "\xE0\xA3\x93"
        +          "\xF4\x88\x98\xB4",
        +      WideStringToUtf8(s, -1).c_str());
        +}
        +#else
        +TEST(WideStringToUtf8Test, ConcatenatesCodepointsCorrectly) {
        +  const wchar_t s[] = { 0xC74D, '\n', 0x576, 0x8D3, '\0'};
        +  EXPECT_STREQ(
        +      "\xEC\x9D\x8D" "\n" "\xD5\xB6" "\xE0\xA3\x93",
        +      WideStringToUtf8(s, -1).c_str());
        +}
        +#endif  // !GTEST_WIDE_STRING_USES_UTF16_
        +
        +// Tests the Random class.
        +
        +TEST(RandomDeathTest, GeneratesCrashesOnInvalidRange) {
        +  testing::internal::Random random(42);
        +  EXPECT_DEATH_IF_SUPPORTED(
        +      random.Generate(0),
        +      "Cannot generate a number in the range \\[0, 0\\)");
        +  EXPECT_DEATH_IF_SUPPORTED(
        +      random.Generate(testing::internal::Random::kMaxRange + 1),
        +      "Generation of a number in \\[0, 2147483649\\) was requested, "
        +      "but this can only generate numbers in \\[0, 2147483648\\)");
        +}
        +
        +TEST(RandomTest, GeneratesNumbersWithinRange) {
        +  const UInt32 kRange = 10000;
        +  testing::internal::Random random(12345);
        +  for (int i = 0; i < 10; i++) {
        +    EXPECT_LT(random.Generate(kRange), kRange) << " for iteration " << i;
        +  }
        +
        +  testing::internal::Random random2(testing::internal::Random::kMaxRange);
        +  for (int i = 0; i < 10; i++) {
        +    EXPECT_LT(random2.Generate(kRange), kRange) << " for iteration " << i;
        +  }
        +}
        +
        +TEST(RandomTest, RepeatsWhenReseeded) {
        +  const int kSeed = 123;
        +  const int kArraySize = 10;
        +  const UInt32 kRange = 10000;
        +  UInt32 values[kArraySize];
        +
        +  testing::internal::Random random(kSeed);
        +  for (int i = 0; i < kArraySize; i++) {
        +    values[i] = random.Generate(kRange);
        +  }
        +
        +  random.Reseed(kSeed);
        +  for (int i = 0; i < kArraySize; i++) {
        +    EXPECT_EQ(values[i], random.Generate(kRange)) << " for iteration " << i;
        +  }
        +}
        +
        +// Tests STL container utilities.
        +
        +// Tests CountIf().
        +
        +static bool IsPositive(int n) { return n > 0; }
        +
        +TEST(ContainerUtilityTest, CountIf) {
        +  std::vector<int> v;
        +  EXPECT_EQ(0, CountIf(v, IsPositive));  // Works for an empty container.
        +
        +  v.push_back(-1);
        +  v.push_back(0);
        +  EXPECT_EQ(0, CountIf(v, IsPositive));  // Works when no value satisfies.
        +
        +  v.push_back(2);
        +  v.push_back(-10);
        +  v.push_back(10);
        +  EXPECT_EQ(2, CountIf(v, IsPositive));
        +}
        +
        +// Tests ForEach().
        +
        +static int g_sum = 0;
        +static void Accumulate(int n) { g_sum += n; }
        +
        +TEST(ContainerUtilityTest, ForEach) {
        +  std::vector<int> v;
        +  g_sum = 0;
        +  ForEach(v, Accumulate);
        +  EXPECT_EQ(0, g_sum);  // Works for an empty container;
        +
        +  g_sum = 0;
        +  v.push_back(1);
        +  ForEach(v, Accumulate);
        +  EXPECT_EQ(1, g_sum);  // Works for a container with one element.
        +
        +  g_sum = 0;
        +  v.push_back(20);
        +  v.push_back(300);
        +  ForEach(v, Accumulate);
        +  EXPECT_EQ(321, g_sum);
        +}
        +
        +// Tests GetElementOr().
        +TEST(ContainerUtilityTest, GetElementOr) {
        +  std::vector<char> a;
        +  EXPECT_EQ('x', GetElementOr(a, 0, 'x'));
        +
        +  a.push_back('a');
        +  a.push_back('b');
        +  EXPECT_EQ('a', GetElementOr(a, 0, 'x'));
        +  EXPECT_EQ('b', GetElementOr(a, 1, 'x'));
        +  EXPECT_EQ('x', GetElementOr(a, -2, 'x'));
        +  EXPECT_EQ('x', GetElementOr(a, 2, 'x'));
        +}
        +
        +TEST(ContainerUtilityDeathTest, ShuffleRange) {
        +  std::vector<int> a;
        +  a.push_back(0);
        +  a.push_back(1);
        +  a.push_back(2);
        +  testing::internal::Random random(1);
        +
        +  EXPECT_DEATH_IF_SUPPORTED(
        +      ShuffleRange(&random, -1, 1, &a),
        +      "Invalid shuffle range start -1: must be in range \\[0, 3\\]");
        +  EXPECT_DEATH_IF_SUPPORTED(
        +      ShuffleRange(&random, 4, 4, &a),
        +      "Invalid shuffle range start 4: must be in range \\[0, 3\\]");
        +  EXPECT_DEATH_IF_SUPPORTED(
        +      ShuffleRange(&random, 3, 2, &a),
        +      "Invalid shuffle range finish 2: must be in range \\[3, 3\\]");
        +  EXPECT_DEATH_IF_SUPPORTED(
        +      ShuffleRange(&random, 3, 4, &a),
        +      "Invalid shuffle range finish 4: must be in range \\[3, 3\\]");
        +}
        +
        +class VectorShuffleTest : public Test {
        + protected:
        +  static const int kVectorSize = 20;
        +
        +  VectorShuffleTest() : random_(1) {
        +    for (int i = 0; i < kVectorSize; i++) {
        +      vector_.push_back(i);
        +    }
        +  }
        +
        +  static bool VectorIsCorrupt(const TestingVector& vector) {
        +    if (kVectorSize != static_cast<int>(vector.size())) {
        +      return true;
        +    }
        +
        +    bool found_in_vector[kVectorSize] = { false };
        +    for (size_t i = 0; i < vector.size(); i++) {
        +      const int e = vector[i];
        +      if (e < 0 || e >= kVectorSize || found_in_vector[e]) {
        +        return true;
        +      }
        +      found_in_vector[e] = true;
        +    }
        +
        +    // Vector size is correct, elements' range is correct, no
        +    // duplicate elements.  Therefore no corruption has occurred.
        +    return false;
        +  }
        +
        +  static bool VectorIsNotCorrupt(const TestingVector& vector) {
        +    return !VectorIsCorrupt(vector);
        +  }
        +
        +  static bool RangeIsShuffled(const TestingVector& vector, int begin, int end) {
        +    for (int i = begin; i < end; i++) {
        +      if (i != vector[i]) {
        +        return true;
        +      }
        +    }
        +    return false;
        +  }
        +
        +  static bool RangeIsUnshuffled(
        +      const TestingVector& vector, int begin, int end) {
        +    return !RangeIsShuffled(vector, begin, end);
        +  }
        +
        +  static bool VectorIsShuffled(const TestingVector& vector) {
        +    return RangeIsShuffled(vector, 0, static_cast<int>(vector.size()));
        +  }
        +
        +  static bool VectorIsUnshuffled(const TestingVector& vector) {
        +    return !VectorIsShuffled(vector);
        +  }
        +
        +  testing::internal::Random random_;
        +  TestingVector vector_;
        +};  // class VectorShuffleTest
        +
        +const int VectorShuffleTest::kVectorSize;
        +
        +TEST_F(VectorShuffleTest, HandlesEmptyRange) {
        +  // Tests an empty range at the beginning...
        +  ShuffleRange(&random_, 0, 0, &vector_);
        +  ASSERT_PRED1(VectorIsNotCorrupt, vector_);
        +  ASSERT_PRED1(VectorIsUnshuffled, vector_);
        +
        +  // ...in the middle...
        +  ShuffleRange(&random_, kVectorSize/2, kVectorSize/2, &vector_);
        +  ASSERT_PRED1(VectorIsNotCorrupt, vector_);
        +  ASSERT_PRED1(VectorIsUnshuffled, vector_);
        +
        +  // ...at the end...
        +  ShuffleRange(&random_, kVectorSize - 1, kVectorSize - 1, &vector_);
        +  ASSERT_PRED1(VectorIsNotCorrupt, vector_);
        +  ASSERT_PRED1(VectorIsUnshuffled, vector_);
        +
        +  // ...and past the end.
        +  ShuffleRange(&random_, kVectorSize, kVectorSize, &vector_);
        +  ASSERT_PRED1(VectorIsNotCorrupt, vector_);
        +  ASSERT_PRED1(VectorIsUnshuffled, vector_);
        +}
        +
        +TEST_F(VectorShuffleTest, HandlesRangeOfSizeOne) {
        +  // Tests a size one range at the beginning...
        +  ShuffleRange(&random_, 0, 1, &vector_);
        +  ASSERT_PRED1(VectorIsNotCorrupt, vector_);
        +  ASSERT_PRED1(VectorIsUnshuffled, vector_);
        +
        +  // ...in the middle...
        +  ShuffleRange(&random_, kVectorSize/2, kVectorSize/2 + 1, &vector_);
        +  ASSERT_PRED1(VectorIsNotCorrupt, vector_);
        +  ASSERT_PRED1(VectorIsUnshuffled, vector_);
        +
        +  // ...and at the end.
        +  ShuffleRange(&random_, kVectorSize - 1, kVectorSize, &vector_);
        +  ASSERT_PRED1(VectorIsNotCorrupt, vector_);
        +  ASSERT_PRED1(VectorIsUnshuffled, vector_);
        +}
        +
        +// Because we use our own random number generator and a fixed seed,
        +// we can guarantee that the following "random" tests will succeed.
        +
        +TEST_F(VectorShuffleTest, ShufflesEntireVector) {
        +  Shuffle(&random_, &vector_);
        +  ASSERT_PRED1(VectorIsNotCorrupt, vector_);
        +  EXPECT_FALSE(VectorIsUnshuffled(vector_)) << vector_;
        +
        +  // Tests the first and last elements in particular to ensure that
        +  // there are no off-by-one problems in our shuffle algorithm.
        +  EXPECT_NE(0, vector_[0]);
        +  EXPECT_NE(kVectorSize - 1, vector_[kVectorSize - 1]);
        +}
        +
        +TEST_F(VectorShuffleTest, ShufflesStartOfVector) {
        +  const int kRangeSize = kVectorSize/2;
        +
        +  ShuffleRange(&random_, 0, kRangeSize, &vector_);
        +
        +  ASSERT_PRED1(VectorIsNotCorrupt, vector_);
        +  EXPECT_PRED3(RangeIsShuffled, vector_, 0, kRangeSize);
        +  EXPECT_PRED3(RangeIsUnshuffled, vector_, kRangeSize, kVectorSize);
        +}
        +
        +TEST_F(VectorShuffleTest, ShufflesEndOfVector) {
        +  const int kRangeSize = kVectorSize / 2;
        +  ShuffleRange(&random_, kRangeSize, kVectorSize, &vector_);
        +
        +  ASSERT_PRED1(VectorIsNotCorrupt, vector_);
        +  EXPECT_PRED3(RangeIsUnshuffled, vector_, 0, kRangeSize);
        +  EXPECT_PRED3(RangeIsShuffled, vector_, kRangeSize, kVectorSize);
        +}
        +
        +TEST_F(VectorShuffleTest, ShufflesMiddleOfVector) {
        +  int kRangeSize = kVectorSize/3;
        +  ShuffleRange(&random_, kRangeSize, 2*kRangeSize, &vector_);
        +
        +  ASSERT_PRED1(VectorIsNotCorrupt, vector_);
        +  EXPECT_PRED3(RangeIsUnshuffled, vector_, 0, kRangeSize);
        +  EXPECT_PRED3(RangeIsShuffled, vector_, kRangeSize, 2*kRangeSize);
        +  EXPECT_PRED3(RangeIsUnshuffled, vector_, 2*kRangeSize, kVectorSize);
        +}
        +
        +TEST_F(VectorShuffleTest, ShufflesRepeatably) {
        +  TestingVector vector2;
        +  for (int i = 0; i < kVectorSize; i++) {
        +    vector2.push_back(i);
        +  }
        +
        +  random_.Reseed(1234);
        +  Shuffle(&random_, &vector_);
        +  random_.Reseed(1234);
        +  Shuffle(&random_, &vector2);
        +
        +  ASSERT_PRED1(VectorIsNotCorrupt, vector_);
        +  ASSERT_PRED1(VectorIsNotCorrupt, vector2);
        +
        +  for (int i = 0; i < kVectorSize; i++) {
        +    EXPECT_EQ(vector_[i], vector2[i]) << " where i is " << i;
        +  }
        +}
        +
        +// Tests the size of the AssertHelper class.
        +
        +TEST(AssertHelperTest, AssertHelperIsSmall) {
        +  // To avoid breaking clients that use lots of assertions in one
        +  // function, we cannot grow the size of AssertHelper.
        +  EXPECT_LE(sizeof(testing::internal::AssertHelper), sizeof(void*));
        +}
        +
        +// Tests String::EndsWithCaseInsensitive().
        +TEST(StringTest, EndsWithCaseInsensitive) {
        +  EXPECT_TRUE(String::EndsWithCaseInsensitive("foobar", "BAR"));
        +  EXPECT_TRUE(String::EndsWithCaseInsensitive("foobaR", "bar"));
        +  EXPECT_TRUE(String::EndsWithCaseInsensitive("foobar", ""));
        +  EXPECT_TRUE(String::EndsWithCaseInsensitive("", ""));
        +
        +  EXPECT_FALSE(String::EndsWithCaseInsensitive("Foobar", "foo"));
        +  EXPECT_FALSE(String::EndsWithCaseInsensitive("foobar", "Foo"));
        +  EXPECT_FALSE(String::EndsWithCaseInsensitive("", "foo"));
        +}
        +
        +// C++Builder's preprocessor is buggy; it fails to expand macros that
        +// appear in macro parameters after wide char literals.  Provide an alias
        +// for NULL as a workaround.
        +static const wchar_t* const kNull = NULL;
        +
        +// Tests String::CaseInsensitiveWideCStringEquals
        +TEST(StringTest, CaseInsensitiveWideCStringEquals) {
        +  EXPECT_TRUE(String::CaseInsensitiveWideCStringEquals(NULL, NULL));
        +  EXPECT_FALSE(String::CaseInsensitiveWideCStringEquals(kNull, L""));
        +  EXPECT_FALSE(String::CaseInsensitiveWideCStringEquals(L"", kNull));
        +  EXPECT_FALSE(String::CaseInsensitiveWideCStringEquals(kNull, L"foobar"));
        +  EXPECT_FALSE(String::CaseInsensitiveWideCStringEquals(L"foobar", kNull));
        +  EXPECT_TRUE(String::CaseInsensitiveWideCStringEquals(L"foobar", L"foobar"));
        +  EXPECT_TRUE(String::CaseInsensitiveWideCStringEquals(L"foobar", L"FOOBAR"));
        +  EXPECT_TRUE(String::CaseInsensitiveWideCStringEquals(L"FOOBAR", L"foobar"));
        +}
        +
        +#if GTEST_OS_WINDOWS
        +
        +// Tests String::ShowWideCString().
        +TEST(StringTest, ShowWideCString) {
        +  EXPECT_STREQ("(null)",
        +               String::ShowWideCString(NULL).c_str());
        +  EXPECT_STREQ("", String::ShowWideCString(L"").c_str());
        +  EXPECT_STREQ("foo", String::ShowWideCString(L"foo").c_str());
        +}
        +
        +# if GTEST_OS_WINDOWS_MOBILE
        +TEST(StringTest, AnsiAndUtf16Null) {
        +  EXPECT_EQ(NULL, String::AnsiToUtf16(NULL));
        +  EXPECT_EQ(NULL, String::Utf16ToAnsi(NULL));
        +}
        +
        +TEST(StringTest, AnsiAndUtf16ConvertBasic) {
        +  const char* ansi = String::Utf16ToAnsi(L"str");
        +  EXPECT_STREQ("str", ansi);
        +  delete [] ansi;
        +  const WCHAR* utf16 = String::AnsiToUtf16("str");
        +  EXPECT_EQ(0, wcsncmp(L"str", utf16, 3));
        +  delete [] utf16;
        +}
        +
        +TEST(StringTest, AnsiAndUtf16ConvertPathChars) {
        +  const char* ansi = String::Utf16ToAnsi(L".:\\ \"*?");
        +  EXPECT_STREQ(".:\\ \"*?", ansi);
        +  delete [] ansi;
        +  const WCHAR* utf16 = String::AnsiToUtf16(".:\\ \"*?");
        +  EXPECT_EQ(0, wcsncmp(L".:\\ \"*?", utf16, 3));
        +  delete [] utf16;
        +}
        +# endif  // GTEST_OS_WINDOWS_MOBILE
        +
        +#endif  // GTEST_OS_WINDOWS
        +
        +// Tests TestProperty construction.
        +TEST(TestPropertyTest, StringValue) {
        +  TestProperty property("key", "1");
        +  EXPECT_STREQ("key", property.key());
        +  EXPECT_STREQ("1", property.value());
        +}
        +
        +// Tests TestProperty replacing a value.
        +TEST(TestPropertyTest, ReplaceStringValue) {
        +  TestProperty property("key", "1");
        +  EXPECT_STREQ("1", property.value());
        +  property.SetValue("2");
        +  EXPECT_STREQ("2", property.value());
        +}
        +
        +// AddFatalFailure() and AddNonfatalFailure() must be stand-alone
        +// functions (i.e. their definitions cannot be inlined at the call
        +// sites), or C++Builder won't compile the code.
        +static void AddFatalFailure() {
        +  FAIL() << "Expected fatal failure.";
        +}
        +
        +static void AddNonfatalFailure() {
        +  ADD_FAILURE() << "Expected non-fatal failure.";
        +}
        +
        +class ScopedFakeTestPartResultReporterTest : public Test {
        + public:  // Must be public and not protected due to a bug in g++ 3.4.2.
        +  enum FailureMode {
        +    FATAL_FAILURE,
        +    NONFATAL_FAILURE
        +  };
        +  static void AddFailure(FailureMode failure) {
        +    if (failure == FATAL_FAILURE) {
        +      AddFatalFailure();
        +    } else {
        +      AddNonfatalFailure();
        +    }
        +  }
        +};
        +
        +// Tests that ScopedFakeTestPartResultReporter intercepts test
        +// failures.
        +TEST_F(ScopedFakeTestPartResultReporterTest, InterceptsTestFailures) {
        +  TestPartResultArray results;
        +  {
        +    ScopedFakeTestPartResultReporter reporter(
        +        ScopedFakeTestPartResultReporter::INTERCEPT_ONLY_CURRENT_THREAD,
        +        &results);
        +    AddFailure(NONFATAL_FAILURE);
        +    AddFailure(FATAL_FAILURE);
        +  }
        +
        +  EXPECT_EQ(2, results.size());
        +  EXPECT_TRUE(results.GetTestPartResult(0).nonfatally_failed());
        +  EXPECT_TRUE(results.GetTestPartResult(1).fatally_failed());
        +}
        +
        +TEST_F(ScopedFakeTestPartResultReporterTest, DeprecatedConstructor) {
        +  TestPartResultArray results;
        +  {
        +    // Tests, that the deprecated constructor still works.
        +    ScopedFakeTestPartResultReporter reporter(&results);
        +    AddFailure(NONFATAL_FAILURE);
        +  }
        +  EXPECT_EQ(1, results.size());
        +}
        +
        +#if GTEST_IS_THREADSAFE
        +
        +class ScopedFakeTestPartResultReporterWithThreadsTest
        +  : public ScopedFakeTestPartResultReporterTest {
        + protected:
        +  static void AddFailureInOtherThread(FailureMode failure) {
        +    ThreadWithParam<FailureMode> thread(&AddFailure, failure, NULL);
        +    thread.Join();
        +  }
        +};
        +
        +TEST_F(ScopedFakeTestPartResultReporterWithThreadsTest,
        +       InterceptsTestFailuresInAllThreads) {
        +  TestPartResultArray results;
        +  {
        +    ScopedFakeTestPartResultReporter reporter(
        +        ScopedFakeTestPartResultReporter::INTERCEPT_ALL_THREADS, &results);
        +    AddFailure(NONFATAL_FAILURE);
        +    AddFailure(FATAL_FAILURE);
        +    AddFailureInOtherThread(NONFATAL_FAILURE);
        +    AddFailureInOtherThread(FATAL_FAILURE);
        +  }
        +
        +  EXPECT_EQ(4, results.size());
        +  EXPECT_TRUE(results.GetTestPartResult(0).nonfatally_failed());
        +  EXPECT_TRUE(results.GetTestPartResult(1).fatally_failed());
        +  EXPECT_TRUE(results.GetTestPartResult(2).nonfatally_failed());
        +  EXPECT_TRUE(results.GetTestPartResult(3).fatally_failed());
        +}
        +
        +#endif  // GTEST_IS_THREADSAFE
        +
        +// Tests EXPECT_FATAL_FAILURE{,ON_ALL_THREADS}.  Makes sure that they
        +// work even if the failure is generated in a called function rather than
        +// the current context.
        +
        +typedef ScopedFakeTestPartResultReporterTest ExpectFatalFailureTest;
        +
        +TEST_F(ExpectFatalFailureTest, CatchesFatalFaliure) {
        +  EXPECT_FATAL_FAILURE(AddFatalFailure(), "Expected fatal failure.");
        +}
        +
        +#if GTEST_HAS_GLOBAL_STRING
        +TEST_F(ExpectFatalFailureTest, AcceptsStringObject) {
        +  EXPECT_FATAL_FAILURE(AddFatalFailure(), ::string("Expected fatal failure."));
        +}
        +#endif
        +
        +TEST_F(ExpectFatalFailureTest, AcceptsStdStringObject) {
        +  EXPECT_FATAL_FAILURE(AddFatalFailure(),
        +                       ::std::string("Expected fatal failure."));
        +}
        +
        +TEST_F(ExpectFatalFailureTest, CatchesFatalFailureOnAllThreads) {
        +  // We have another test below to verify that the macro catches fatal
        +  // failures generated on another thread.
        +  EXPECT_FATAL_FAILURE_ON_ALL_THREADS(AddFatalFailure(),
        +                                      "Expected fatal failure.");
        +}
        +
        +#ifdef __BORLANDC__
        +// Silences warnings: "Condition is always true"
        +# pragma option push -w-ccc
        +#endif
        +
        +// Tests that EXPECT_FATAL_FAILURE() can be used in a non-void
        +// function even when the statement in it contains ASSERT_*.
        +
        +int NonVoidFunction() {
        +  EXPECT_FATAL_FAILURE(ASSERT_TRUE(false), "");
        +  EXPECT_FATAL_FAILURE_ON_ALL_THREADS(FAIL(), "");
        +  return 0;
        +}
        +
        +TEST_F(ExpectFatalFailureTest, CanBeUsedInNonVoidFunction) {
        +  NonVoidFunction();
        +}
        +
        +// Tests that EXPECT_FATAL_FAILURE(statement, ...) doesn't abort the
        +// current function even though 'statement' generates a fatal failure.
        +
        +void DoesNotAbortHelper(bool* aborted) {
        +  EXPECT_FATAL_FAILURE(ASSERT_TRUE(false), "");
        +  EXPECT_FATAL_FAILURE_ON_ALL_THREADS(FAIL(), "");
        +
        +  *aborted = false;
        +}
        +
        +#ifdef __BORLANDC__
        +// Restores warnings after previous "#pragma option push" suppressed them.
        +# pragma option pop
        +#endif
        +
        +TEST_F(ExpectFatalFailureTest, DoesNotAbort) {
        +  bool aborted = true;
        +  DoesNotAbortHelper(&aborted);
        +  EXPECT_FALSE(aborted);
        +}
        +
        +// Tests that the EXPECT_FATAL_FAILURE{,_ON_ALL_THREADS} accepts a
        +// statement that contains a macro which expands to code containing an
        +// unprotected comma.
        +
        +static int global_var = 0;
        +#define GTEST_USE_UNPROTECTED_COMMA_ global_var++, global_var++
        +
        +TEST_F(ExpectFatalFailureTest, AcceptsMacroThatExpandsToUnprotectedComma) {
        +#ifndef __BORLANDC__
        +  // ICE's in C++Builder.
        +  EXPECT_FATAL_FAILURE({
        +    GTEST_USE_UNPROTECTED_COMMA_;
        +    AddFatalFailure();
        +  }, "");
        +#endif
        +
        +  EXPECT_FATAL_FAILURE_ON_ALL_THREADS({
        +    GTEST_USE_UNPROTECTED_COMMA_;
        +    AddFatalFailure();
        +  }, "");
        +}
        +
        +// Tests EXPECT_NONFATAL_FAILURE{,ON_ALL_THREADS}.
        +
        +typedef ScopedFakeTestPartResultReporterTest ExpectNonfatalFailureTest;
        +
        +TEST_F(ExpectNonfatalFailureTest, CatchesNonfatalFailure) {
        +  EXPECT_NONFATAL_FAILURE(AddNonfatalFailure(),
        +                          "Expected non-fatal failure.");
        +}
        +
        +#if GTEST_HAS_GLOBAL_STRING
        +TEST_F(ExpectNonfatalFailureTest, AcceptsStringObject) {
        +  EXPECT_NONFATAL_FAILURE(AddNonfatalFailure(),
        +                          ::string("Expected non-fatal failure."));
        +}
        +#endif
        +
        +TEST_F(ExpectNonfatalFailureTest, AcceptsStdStringObject) {
        +  EXPECT_NONFATAL_FAILURE(AddNonfatalFailure(),
        +                          ::std::string("Expected non-fatal failure."));
        +}
        +
        +TEST_F(ExpectNonfatalFailureTest, CatchesNonfatalFailureOnAllThreads) {
        +  // We have another test below to verify that the macro catches
        +  // non-fatal failures generated on another thread.
        +  EXPECT_NONFATAL_FAILURE_ON_ALL_THREADS(AddNonfatalFailure(),
        +                                         "Expected non-fatal failure.");
        +}
        +
        +// Tests that the EXPECT_NONFATAL_FAILURE{,_ON_ALL_THREADS} accepts a
        +// statement that contains a macro which expands to code containing an
        +// unprotected comma.
        +TEST_F(ExpectNonfatalFailureTest, AcceptsMacroThatExpandsToUnprotectedComma) {
        +  EXPECT_NONFATAL_FAILURE({
        +    GTEST_USE_UNPROTECTED_COMMA_;
        +    AddNonfatalFailure();
        +  }, "");
        +
        +  EXPECT_NONFATAL_FAILURE_ON_ALL_THREADS({
        +    GTEST_USE_UNPROTECTED_COMMA_;
        +    AddNonfatalFailure();
        +  }, "");
        +}
        +
        +#if GTEST_IS_THREADSAFE
        +
        +typedef ScopedFakeTestPartResultReporterWithThreadsTest
        +    ExpectFailureWithThreadsTest;
        +
        +TEST_F(ExpectFailureWithThreadsTest, ExpectFatalFailureOnAllThreads) {
        +  EXPECT_FATAL_FAILURE_ON_ALL_THREADS(AddFailureInOtherThread(FATAL_FAILURE),
        +                                      "Expected fatal failure.");
        +}
        +
        +TEST_F(ExpectFailureWithThreadsTest, ExpectNonFatalFailureOnAllThreads) {
        +  EXPECT_NONFATAL_FAILURE_ON_ALL_THREADS(
        +      AddFailureInOtherThread(NONFATAL_FAILURE), "Expected non-fatal failure.");
        +}
        +
        +#endif  // GTEST_IS_THREADSAFE
        +
        +// Tests the TestProperty class.
        +
        +TEST(TestPropertyTest, ConstructorWorks) {
        +  const TestProperty property("key", "value");
        +  EXPECT_STREQ("key", property.key());
        +  EXPECT_STREQ("value", property.value());
        +}
        +
        +TEST(TestPropertyTest, SetValue) {
        +  TestProperty property("key", "value_1");
        +  EXPECT_STREQ("key", property.key());
        +  property.SetValue("value_2");
        +  EXPECT_STREQ("key", property.key());
        +  EXPECT_STREQ("value_2", property.value());
        +}
        +
        +// Tests the TestResult class
        +
        +// The test fixture for testing TestResult.
        +class TestResultTest : public Test {
        + protected:
        +  typedef std::vector<TestPartResult> TPRVector;
        +
        +  // We make use of 2 TestPartResult objects,
        +  TestPartResult * pr1, * pr2;
        +
        +  // ... and 3 TestResult objects.
        +  TestResult * r0, * r1, * r2;
        +
        +  virtual void SetUp() {
        +    // pr1 is for success.
        +    pr1 = new TestPartResult(TestPartResult::kSuccess,
        +                             "foo/bar.cc",
        +                             10,
        +                             "Success!");
        +
        +    // pr2 is for fatal failure.
        +    pr2 = new TestPartResult(TestPartResult::kFatalFailure,
        +                             "foo/bar.cc",
        +                             -1,  // This line number means "unknown"
        +                             "Failure!");
        +
        +    // Creates the TestResult objects.
        +    r0 = new TestResult();
        +    r1 = new TestResult();
        +    r2 = new TestResult();
        +
        +    // In order to test TestResult, we need to modify its internal
        +    // state, in particular the TestPartResult vector it holds.
        +    // test_part_results() returns a const reference to this vector.
        +    // We cast it to a non-const object s.t. it can be modified (yes,
        +    // this is a hack).
        +    TPRVector* results1 = const_cast<TPRVector*>(
        +        &TestResultAccessor::test_part_results(*r1));
        +    TPRVector* results2 = const_cast<TPRVector*>(
        +        &TestResultAccessor::test_part_results(*r2));
        +
        +    // r0 is an empty TestResult.
        +
        +    // r1 contains a single SUCCESS TestPartResult.
        +    results1->push_back(*pr1);
        +
        +    // r2 contains a SUCCESS, and a FAILURE.
        +    results2->push_back(*pr1);
        +    results2->push_back(*pr2);
        +  }
        +
        +  virtual void TearDown() {
        +    delete pr1;
        +    delete pr2;
        +
        +    delete r0;
        +    delete r1;
        +    delete r2;
        +  }
        +
        +  // Helper that compares two two TestPartResults.
        +  static void CompareTestPartResult(const TestPartResult& expected,
        +                                    const TestPartResult& actual) {
        +    EXPECT_EQ(expected.type(), actual.type());
        +    EXPECT_STREQ(expected.file_name(), actual.file_name());
        +    EXPECT_EQ(expected.line_number(), actual.line_number());
        +    EXPECT_STREQ(expected.summary(), actual.summary());
        +    EXPECT_STREQ(expected.message(), actual.message());
        +    EXPECT_EQ(expected.passed(), actual.passed());
        +    EXPECT_EQ(expected.failed(), actual.failed());
        +    EXPECT_EQ(expected.nonfatally_failed(), actual.nonfatally_failed());
        +    EXPECT_EQ(expected.fatally_failed(), actual.fatally_failed());
        +  }
        +};
        +
        +// Tests TestResult::total_part_count().
        +TEST_F(TestResultTest, total_part_count) {
        +  ASSERT_EQ(0, r0->total_part_count());
        +  ASSERT_EQ(1, r1->total_part_count());
        +  ASSERT_EQ(2, r2->total_part_count());
        +}
        +
        +// Tests TestResult::Passed().
        +TEST_F(TestResultTest, Passed) {
        +  ASSERT_TRUE(r0->Passed());
        +  ASSERT_TRUE(r1->Passed());
        +  ASSERT_FALSE(r2->Passed());
        +}
        +
        +// Tests TestResult::Failed().
        +TEST_F(TestResultTest, Failed) {
        +  ASSERT_FALSE(r0->Failed());
        +  ASSERT_FALSE(r1->Failed());
        +  ASSERT_TRUE(r2->Failed());
        +}
        +
        +// Tests TestResult::GetTestPartResult().
        +
        +typedef TestResultTest TestResultDeathTest;
        +
        +TEST_F(TestResultDeathTest, GetTestPartResult) {
        +  CompareTestPartResult(*pr1, r2->GetTestPartResult(0));
        +  CompareTestPartResult(*pr2, r2->GetTestPartResult(1));
        +  EXPECT_DEATH_IF_SUPPORTED(r2->GetTestPartResult(2), "");
        +  EXPECT_DEATH_IF_SUPPORTED(r2->GetTestPartResult(-1), "");
        +}
        +
        +// Tests TestResult has no properties when none are added.
        +TEST(TestResultPropertyTest, NoPropertiesFoundWhenNoneAreAdded) {
        +  TestResult test_result;
        +  ASSERT_EQ(0, test_result.test_property_count());
        +}
        +
        +// Tests TestResult has the expected property when added.
        +TEST(TestResultPropertyTest, OnePropertyFoundWhenAdded) {
        +  TestResult test_result;
        +  TestProperty property("key_1", "1");
        +  TestResultAccessor::RecordProperty(&test_result, "testcase", property);
        +  ASSERT_EQ(1, test_result.test_property_count());
        +  const TestProperty& actual_property = test_result.GetTestProperty(0);
        +  EXPECT_STREQ("key_1", actual_property.key());
        +  EXPECT_STREQ("1", actual_property.value());
        +}
        +
        +// Tests TestResult has multiple properties when added.
        +TEST(TestResultPropertyTest, MultiplePropertiesFoundWhenAdded) {
        +  TestResult test_result;
        +  TestProperty property_1("key_1", "1");
        +  TestProperty property_2("key_2", "2");
        +  TestResultAccessor::RecordProperty(&test_result, "testcase", property_1);
        +  TestResultAccessor::RecordProperty(&test_result, "testcase", property_2);
        +  ASSERT_EQ(2, test_result.test_property_count());
        +  const TestProperty& actual_property_1 = test_result.GetTestProperty(0);
        +  EXPECT_STREQ("key_1", actual_property_1.key());
        +  EXPECT_STREQ("1", actual_property_1.value());
        +
        +  const TestProperty& actual_property_2 = test_result.GetTestProperty(1);
        +  EXPECT_STREQ("key_2", actual_property_2.key());
        +  EXPECT_STREQ("2", actual_property_2.value());
        +}
        +
        +// Tests TestResult::RecordProperty() overrides values for duplicate keys.
        +TEST(TestResultPropertyTest, OverridesValuesForDuplicateKeys) {
        +  TestResult test_result;
        +  TestProperty property_1_1("key_1", "1");
        +  TestProperty property_2_1("key_2", "2");
        +  TestProperty property_1_2("key_1", "12");
        +  TestProperty property_2_2("key_2", "22");
        +  TestResultAccessor::RecordProperty(&test_result, "testcase", property_1_1);
        +  TestResultAccessor::RecordProperty(&test_result, "testcase", property_2_1);
        +  TestResultAccessor::RecordProperty(&test_result, "testcase", property_1_2);
        +  TestResultAccessor::RecordProperty(&test_result, "testcase", property_2_2);
        +
        +  ASSERT_EQ(2, test_result.test_property_count());
        +  const TestProperty& actual_property_1 = test_result.GetTestProperty(0);
        +  EXPECT_STREQ("key_1", actual_property_1.key());
        +  EXPECT_STREQ("12", actual_property_1.value());
        +
        +  const TestProperty& actual_property_2 = test_result.GetTestProperty(1);
        +  EXPECT_STREQ("key_2", actual_property_2.key());
        +  EXPECT_STREQ("22", actual_property_2.value());
        +}
        +
        +// Tests TestResult::GetTestProperty().
        +TEST(TestResultPropertyTest, GetTestProperty) {
        +  TestResult test_result;
        +  TestProperty property_1("key_1", "1");
        +  TestProperty property_2("key_2", "2");
        +  TestProperty property_3("key_3", "3");
        +  TestResultAccessor::RecordProperty(&test_result, "testcase", property_1);
        +  TestResultAccessor::RecordProperty(&test_result, "testcase", property_2);
        +  TestResultAccessor::RecordProperty(&test_result, "testcase", property_3);
        +
        +  const TestProperty& fetched_property_1 = test_result.GetTestProperty(0);
        +  const TestProperty& fetched_property_2 = test_result.GetTestProperty(1);
        +  const TestProperty& fetched_property_3 = test_result.GetTestProperty(2);
        +
        +  EXPECT_STREQ("key_1", fetched_property_1.key());
        +  EXPECT_STREQ("1", fetched_property_1.value());
        +
        +  EXPECT_STREQ("key_2", fetched_property_2.key());
        +  EXPECT_STREQ("2", fetched_property_2.value());
        +
        +  EXPECT_STREQ("key_3", fetched_property_3.key());
        +  EXPECT_STREQ("3", fetched_property_3.value());
        +
        +  EXPECT_DEATH_IF_SUPPORTED(test_result.GetTestProperty(3), "");
        +  EXPECT_DEATH_IF_SUPPORTED(test_result.GetTestProperty(-1), "");
        +}
        +
        +// Tests the Test class.
        +//
        +// It's difficult to test every public method of this class (we are
        +// already stretching the limit of Google Test by using it to test itself!).
        +// Fortunately, we don't have to do that, as we are already testing
        +// the functionalities of the Test class extensively by using Google Test
        +// alone.
        +//
        +// Therefore, this section only contains one test.
        +
        +// Tests that GTestFlagSaver works on Windows and Mac.
        +
        +class GTestFlagSaverTest : public Test {
        + protected:
        +  // Saves the Google Test flags such that we can restore them later, and
        +  // then sets them to their default values.  This will be called
        +  // before the first test in this test case is run.
        +  static void SetUpTestCase() {
        +    saver_ = new GTestFlagSaver;
        +
        +    GTEST_FLAG(also_run_disabled_tests) = false;
        +    GTEST_FLAG(break_on_failure) = false;
        +    GTEST_FLAG(catch_exceptions) = false;
        +    GTEST_FLAG(death_test_use_fork) = false;
        +    GTEST_FLAG(color) = "auto";
        +    GTEST_FLAG(filter) = "";
        +    GTEST_FLAG(list_tests) = false;
        +    GTEST_FLAG(output) = "";
        +    GTEST_FLAG(print_time) = true;
        +    GTEST_FLAG(random_seed) = 0;
        +    GTEST_FLAG(repeat) = 1;
        +    GTEST_FLAG(shuffle) = false;
        +    GTEST_FLAG(stack_trace_depth) = kMaxStackTraceDepth;
        +    GTEST_FLAG(stream_result_to) = "";
        +    GTEST_FLAG(throw_on_failure) = false;
        +  }
        +
        +  // Restores the Google Test flags that the tests have modified.  This will
        +  // be called after the last test in this test case is run.
        +  static void TearDownTestCase() {
        +    delete saver_;
        +    saver_ = NULL;
        +  }
        +
        +  // Verifies that the Google Test flags have their default values, and then
        +  // modifies each of them.
        +  void VerifyAndModifyFlags() {
        +    EXPECT_FALSE(GTEST_FLAG(also_run_disabled_tests));
        +    EXPECT_FALSE(GTEST_FLAG(break_on_failure));
        +    EXPECT_FALSE(GTEST_FLAG(catch_exceptions));
        +    EXPECT_STREQ("auto", GTEST_FLAG(color).c_str());
        +    EXPECT_FALSE(GTEST_FLAG(death_test_use_fork));
        +    EXPECT_STREQ("", GTEST_FLAG(filter).c_str());
        +    EXPECT_FALSE(GTEST_FLAG(list_tests));
        +    EXPECT_STREQ("", GTEST_FLAG(output).c_str());
        +    EXPECT_TRUE(GTEST_FLAG(print_time));
        +    EXPECT_EQ(0, GTEST_FLAG(random_seed));
        +    EXPECT_EQ(1, GTEST_FLAG(repeat));
        +    EXPECT_FALSE(GTEST_FLAG(shuffle));
        +    EXPECT_EQ(kMaxStackTraceDepth, GTEST_FLAG(stack_trace_depth));
        +    EXPECT_STREQ("", GTEST_FLAG(stream_result_to).c_str());
        +    EXPECT_FALSE(GTEST_FLAG(throw_on_failure));
        +
        +    GTEST_FLAG(also_run_disabled_tests) = true;
        +    GTEST_FLAG(break_on_failure) = true;
        +    GTEST_FLAG(catch_exceptions) = true;
        +    GTEST_FLAG(color) = "no";
        +    GTEST_FLAG(death_test_use_fork) = true;
        +    GTEST_FLAG(filter) = "abc";
        +    GTEST_FLAG(list_tests) = true;
        +    GTEST_FLAG(output) = "xml:foo.xml";
        +    GTEST_FLAG(print_time) = false;
        +    GTEST_FLAG(random_seed) = 1;
        +    GTEST_FLAG(repeat) = 100;
        +    GTEST_FLAG(shuffle) = true;
        +    GTEST_FLAG(stack_trace_depth) = 1;
        +    GTEST_FLAG(stream_result_to) = "localhost:1234";
        +    GTEST_FLAG(throw_on_failure) = true;
        +  }
        +
        + private:
        +  // For saving Google Test flags during this test case.
        +  static GTestFlagSaver* saver_;
        +};
        +
        +GTestFlagSaver* GTestFlagSaverTest::saver_ = NULL;
        +
        +// Google Test doesn't guarantee the order of tests.  The following two
        +// tests are designed to work regardless of their order.
        +
        +// Modifies the Google Test flags in the test body.
        +TEST_F(GTestFlagSaverTest, ModifyGTestFlags) {
        +  VerifyAndModifyFlags();
        +}
        +
        +// Verifies that the Google Test flags in the body of the previous test were
        +// restored to their original values.
        +TEST_F(GTestFlagSaverTest, VerifyGTestFlags) {
        +  VerifyAndModifyFlags();
        +}
        +
        +// Sets an environment variable with the given name to the given
        +// value.  If the value argument is "", unsets the environment
        +// variable.  The caller must ensure that both arguments are not NULL.
        +static void SetEnv(const char* name, const char* value) {
        +#if GTEST_OS_WINDOWS_MOBILE
        +  // Environment variables are not supported on Windows CE.
        +  return;
        +#elif defined(__BORLANDC__) || defined(__SunOS_5_8) || defined(__SunOS_5_9)
        +  // C++Builder's putenv only stores a pointer to its parameter; we have to
        +  // ensure that the string remains valid as long as it might be needed.
        +  // We use an std::map to do so.
        +  static std::map<std::string, std::string*> added_env;
        +
        +  // Because putenv stores a pointer to the string buffer, we can't delete the
        +  // previous string (if present) until after it's replaced.
        +  std::string *prev_env = NULL;
        +  if (added_env.find(name) != added_env.end()) {
        +    prev_env = added_env[name];
        +  }
        +  added_env[name] = new std::string(
        +      (Message() << name << "=" << value).GetString());
        +
        +  // The standard signature of putenv accepts a 'char*' argument. Other
        +  // implementations, like C++Builder's, accept a 'const char*'.
        +  // We cast away the 'const' since that would work for both variants.
        +  putenv(const_cast<char*>(added_env[name]->c_str()));
        +  delete prev_env;
        +#elif GTEST_OS_WINDOWS  // If we are on Windows proper.
        +  _putenv((Message() << name << "=" << value).GetString().c_str());
        +#else
        +  if (*value == '\0') {
        +    unsetenv(name);
        +  } else {
        +    setenv(name, value, 1);
        +  }
        +#endif  // GTEST_OS_WINDOWS_MOBILE
        +}
        +
        +#if !GTEST_OS_WINDOWS_MOBILE
        +// Environment variables are not supported on Windows CE.
        +
        +using testing::internal::Int32FromGTestEnv;
        +
        +// Tests Int32FromGTestEnv().
        +
        +// Tests that Int32FromGTestEnv() returns the default value when the
        +// environment variable is not set.
        +TEST(Int32FromGTestEnvTest, ReturnsDefaultWhenVariableIsNotSet) {
        +  SetEnv(GTEST_FLAG_PREFIX_UPPER_ "TEMP", "");
        +  EXPECT_EQ(10, Int32FromGTestEnv("temp", 10));
        +}
        +
        +# if !defined(GTEST_GET_INT32_FROM_ENV_)
        +
        +// Tests that Int32FromGTestEnv() returns the default value when the
        +// environment variable overflows as an Int32.
        +TEST(Int32FromGTestEnvTest, ReturnsDefaultWhenValueOverflows) {
        +  printf("(expecting 2 warnings)\n");
        +
        +  SetEnv(GTEST_FLAG_PREFIX_UPPER_ "TEMP", "12345678987654321");
        +  EXPECT_EQ(20, Int32FromGTestEnv("temp", 20));
        +
        +  SetEnv(GTEST_FLAG_PREFIX_UPPER_ "TEMP", "-12345678987654321");
        +  EXPECT_EQ(30, Int32FromGTestEnv("temp", 30));
        +}
        +
        +// Tests that Int32FromGTestEnv() returns the default value when the
        +// environment variable does not represent a valid decimal integer.
        +TEST(Int32FromGTestEnvTest, ReturnsDefaultWhenValueIsInvalid) {
        +  printf("(expecting 2 warnings)\n");
        +
        +  SetEnv(GTEST_FLAG_PREFIX_UPPER_ "TEMP", "A1");
        +  EXPECT_EQ(40, Int32FromGTestEnv("temp", 40));
        +
        +  SetEnv(GTEST_FLAG_PREFIX_UPPER_ "TEMP", "12X");
        +  EXPECT_EQ(50, Int32FromGTestEnv("temp", 50));
        +}
        +
        +# endif  // !defined(GTEST_GET_INT32_FROM_ENV_)
        +
        +// Tests that Int32FromGTestEnv() parses and returns the value of the
        +// environment variable when it represents a valid decimal integer in
        +// the range of an Int32.
        +TEST(Int32FromGTestEnvTest, ParsesAndReturnsValidValue) {
        +  SetEnv(GTEST_FLAG_PREFIX_UPPER_ "TEMP", "123");
        +  EXPECT_EQ(123, Int32FromGTestEnv("temp", 0));
        +
        +  SetEnv(GTEST_FLAG_PREFIX_UPPER_ "TEMP", "-321");
        +  EXPECT_EQ(-321, Int32FromGTestEnv("temp", 0));
        +}
        +#endif  // !GTEST_OS_WINDOWS_MOBILE
        +
        +// Tests ParseInt32Flag().
        +
        +// Tests that ParseInt32Flag() returns false and doesn't change the
        +// output value when the flag has wrong format
        +TEST(ParseInt32FlagTest, ReturnsFalseForInvalidFlag) {
        +  Int32 value = 123;
        +  EXPECT_FALSE(ParseInt32Flag("--a=100", "b", &value));
        +  EXPECT_EQ(123, value);
        +
        +  EXPECT_FALSE(ParseInt32Flag("a=100", "a", &value));
        +  EXPECT_EQ(123, value);
        +}
        +
        +// Tests that ParseInt32Flag() returns false and doesn't change the
        +// output value when the flag overflows as an Int32.
        +TEST(ParseInt32FlagTest, ReturnsDefaultWhenValueOverflows) {
        +  printf("(expecting 2 warnings)\n");
        +
        +  Int32 value = 123;
        +  EXPECT_FALSE(ParseInt32Flag("--abc=12345678987654321", "abc", &value));
        +  EXPECT_EQ(123, value);
        +
        +  EXPECT_FALSE(ParseInt32Flag("--abc=-12345678987654321", "abc", &value));
        +  EXPECT_EQ(123, value);
        +}
        +
        +// Tests that ParseInt32Flag() returns false and doesn't change the
        +// output value when the flag does not represent a valid decimal
        +// integer.
        +TEST(ParseInt32FlagTest, ReturnsDefaultWhenValueIsInvalid) {
        +  printf("(expecting 2 warnings)\n");
        +
        +  Int32 value = 123;
        +  EXPECT_FALSE(ParseInt32Flag("--abc=A1", "abc", &value));
        +  EXPECT_EQ(123, value);
        +
        +  EXPECT_FALSE(ParseInt32Flag("--abc=12X", "abc", &value));
        +  EXPECT_EQ(123, value);
        +}
        +
        +// Tests that ParseInt32Flag() parses the value of the flag and
        +// returns true when the flag represents a valid decimal integer in
        +// the range of an Int32.
        +TEST(ParseInt32FlagTest, ParsesAndReturnsValidValue) {
        +  Int32 value = 123;
        +  EXPECT_TRUE(ParseInt32Flag("--" GTEST_FLAG_PREFIX_ "abc=456", "abc", &value));
        +  EXPECT_EQ(456, value);
        +
        +  EXPECT_TRUE(ParseInt32Flag("--" GTEST_FLAG_PREFIX_ "abc=-789",
        +                             "abc", &value));
        +  EXPECT_EQ(-789, value);
        +}
        +
        +// Tests that Int32FromEnvOrDie() parses the value of the var or
        +// returns the correct default.
        +// Environment variables are not supported on Windows CE.
        +#if !GTEST_OS_WINDOWS_MOBILE
        +TEST(Int32FromEnvOrDieTest, ParsesAndReturnsValidValue) {
        +  EXPECT_EQ(333, Int32FromEnvOrDie(GTEST_FLAG_PREFIX_UPPER_ "UnsetVar", 333));
        +  SetEnv(GTEST_FLAG_PREFIX_UPPER_ "UnsetVar", "123");
        +  EXPECT_EQ(123, Int32FromEnvOrDie(GTEST_FLAG_PREFIX_UPPER_ "UnsetVar", 333));
        +  SetEnv(GTEST_FLAG_PREFIX_UPPER_ "UnsetVar", "-123");
        +  EXPECT_EQ(-123, Int32FromEnvOrDie(GTEST_FLAG_PREFIX_UPPER_ "UnsetVar", 333));
        +}
        +#endif  // !GTEST_OS_WINDOWS_MOBILE
        +
        +// Tests that Int32FromEnvOrDie() aborts with an error message
        +// if the variable is not an Int32.
        +TEST(Int32FromEnvOrDieDeathTest, AbortsOnFailure) {
        +  SetEnv(GTEST_FLAG_PREFIX_UPPER_ "VAR", "xxx");
        +  EXPECT_DEATH_IF_SUPPORTED(
        +      Int32FromEnvOrDie(GTEST_FLAG_PREFIX_UPPER_ "VAR", 123),
        +      ".*");
        +}
        +
        +// Tests that Int32FromEnvOrDie() aborts with an error message
        +// if the variable cannot be represnted by an Int32.
        +TEST(Int32FromEnvOrDieDeathTest, AbortsOnInt32Overflow) {
        +  SetEnv(GTEST_FLAG_PREFIX_UPPER_ "VAR", "1234567891234567891234");
        +  EXPECT_DEATH_IF_SUPPORTED(
        +      Int32FromEnvOrDie(GTEST_FLAG_PREFIX_UPPER_ "VAR", 123),
        +      ".*");
        +}
        +
        +// Tests that ShouldRunTestOnShard() selects all tests
        +// where there is 1 shard.
        +TEST(ShouldRunTestOnShardTest, IsPartitionWhenThereIsOneShard) {
        +  EXPECT_TRUE(ShouldRunTestOnShard(1, 0, 0));
        +  EXPECT_TRUE(ShouldRunTestOnShard(1, 0, 1));
        +  EXPECT_TRUE(ShouldRunTestOnShard(1, 0, 2));
        +  EXPECT_TRUE(ShouldRunTestOnShard(1, 0, 3));
        +  EXPECT_TRUE(ShouldRunTestOnShard(1, 0, 4));
        +}
        +
        +class ShouldShardTest : public testing::Test {
        + protected:
        +  virtual void SetUp() {
        +    index_var_ = GTEST_FLAG_PREFIX_UPPER_ "INDEX";
        +    total_var_ = GTEST_FLAG_PREFIX_UPPER_ "TOTAL";
        +  }
        +
        +  virtual void TearDown() {
        +    SetEnv(index_var_, "");
        +    SetEnv(total_var_, "");
        +  }
        +
        +  const char* index_var_;
        +  const char* total_var_;
        +};
        +
        +// Tests that sharding is disabled if neither of the environment variables
        +// are set.
        +TEST_F(ShouldShardTest, ReturnsFalseWhenNeitherEnvVarIsSet) {
        +  SetEnv(index_var_, "");
        +  SetEnv(total_var_, "");
        +
        +  EXPECT_FALSE(ShouldShard(total_var_, index_var_, false));
        +  EXPECT_FALSE(ShouldShard(total_var_, index_var_, true));
        +}
        +
        +// Tests that sharding is not enabled if total_shards  == 1.
        +TEST_F(ShouldShardTest, ReturnsFalseWhenTotalShardIsOne) {
        +  SetEnv(index_var_, "0");
        +  SetEnv(total_var_, "1");
        +  EXPECT_FALSE(ShouldShard(total_var_, index_var_, false));
        +  EXPECT_FALSE(ShouldShard(total_var_, index_var_, true));
        +}
        +
        +// Tests that sharding is enabled if total_shards > 1 and
        +// we are not in a death test subprocess.
        +// Environment variables are not supported on Windows CE.
        +#if !GTEST_OS_WINDOWS_MOBILE
        +TEST_F(ShouldShardTest, WorksWhenShardEnvVarsAreValid) {
        +  SetEnv(index_var_, "4");
        +  SetEnv(total_var_, "22");
        +  EXPECT_TRUE(ShouldShard(total_var_, index_var_, false));
        +  EXPECT_FALSE(ShouldShard(total_var_, index_var_, true));
        +
        +  SetEnv(index_var_, "8");
        +  SetEnv(total_var_, "9");
        +  EXPECT_TRUE(ShouldShard(total_var_, index_var_, false));
        +  EXPECT_FALSE(ShouldShard(total_var_, index_var_, true));
        +
        +  SetEnv(index_var_, "0");
        +  SetEnv(total_var_, "9");
        +  EXPECT_TRUE(ShouldShard(total_var_, index_var_, false));
        +  EXPECT_FALSE(ShouldShard(total_var_, index_var_, true));
        +}
        +#endif  // !GTEST_OS_WINDOWS_MOBILE
        +
        +// Tests that we exit in error if the sharding values are not valid.
        +
        +typedef ShouldShardTest ShouldShardDeathTest;
        +
        +TEST_F(ShouldShardDeathTest, AbortsWhenShardingEnvVarsAreInvalid) {
        +  SetEnv(index_var_, "4");
        +  SetEnv(total_var_, "4");
        +  EXPECT_DEATH_IF_SUPPORTED(ShouldShard(total_var_, index_var_, false), ".*");
        +
        +  SetEnv(index_var_, "4");
        +  SetEnv(total_var_, "-2");
        +  EXPECT_DEATH_IF_SUPPORTED(ShouldShard(total_var_, index_var_, false), ".*");
        +
        +  SetEnv(index_var_, "5");
        +  SetEnv(total_var_, "");
        +  EXPECT_DEATH_IF_SUPPORTED(ShouldShard(total_var_, index_var_, false), ".*");
        +
        +  SetEnv(index_var_, "");
        +  SetEnv(total_var_, "5");
        +  EXPECT_DEATH_IF_SUPPORTED(ShouldShard(total_var_, index_var_, false), ".*");
        +}
        +
        +// Tests that ShouldRunTestOnShard is a partition when 5
        +// shards are used.
        +TEST(ShouldRunTestOnShardTest, IsPartitionWhenThereAreFiveShards) {
        +  // Choose an arbitrary number of tests and shards.
        +  const int num_tests = 17;
        +  const int num_shards = 5;
        +
        +  // Check partitioning: each test should be on exactly 1 shard.
        +  for (int test_id = 0; test_id < num_tests; test_id++) {
        +    int prev_selected_shard_index = -1;
        +    for (int shard_index = 0; shard_index < num_shards; shard_index++) {
        +      if (ShouldRunTestOnShard(num_shards, shard_index, test_id)) {
        +        if (prev_selected_shard_index < 0) {
        +          prev_selected_shard_index = shard_index;
        +        } else {
        +          ADD_FAILURE() << "Shard " << prev_selected_shard_index << " and "
        +            << shard_index << " are both selected to run test " << test_id;
        +        }
        +      }
        +    }
        +  }
        +
        +  // Check balance: This is not required by the sharding protocol, but is a
        +  // desirable property for performance.
        +  for (int shard_index = 0; shard_index < num_shards; shard_index++) {
        +    int num_tests_on_shard = 0;
        +    for (int test_id = 0; test_id < num_tests; test_id++) {
        +      num_tests_on_shard +=
        +        ShouldRunTestOnShard(num_shards, shard_index, test_id);
        +    }
        +    EXPECT_GE(num_tests_on_shard, num_tests / num_shards);
        +  }
        +}
        +
        +// For the same reason we are not explicitly testing everything in the
        +// Test class, there are no separate tests for the following classes
        +// (except for some trivial cases):
        +//
        +//   TestCase, UnitTest, UnitTestResultPrinter.
        +//
        +// Similarly, there are no separate tests for the following macros:
        +//
        +//   TEST, TEST_F, RUN_ALL_TESTS
        +
        +TEST(UnitTestTest, CanGetOriginalWorkingDir) {
        +  ASSERT_TRUE(UnitTest::GetInstance()->original_working_dir() != NULL);
        +  EXPECT_STRNE(UnitTest::GetInstance()->original_working_dir(), "");
        +}
        +
        +TEST(UnitTestTest, ReturnsPlausibleTimestamp) {
        +  EXPECT_LT(0, UnitTest::GetInstance()->start_timestamp());
        +  EXPECT_LE(UnitTest::GetInstance()->start_timestamp(), GetTimeInMillis());
        +}
        +
        +// When a property using a reserved key is supplied to this function, it
        +// tests that a non-fatal failure is added, a fatal failure is not added,
        +// and that the property is not recorded.
        +void ExpectNonFatalFailureRecordingPropertyWithReservedKey(
        +    const TestResult& test_result, const char* key) {
        +  EXPECT_NONFATAL_FAILURE(Test::RecordProperty(key, "1"), "Reserved key");
        +  ASSERT_EQ(0, test_result.test_property_count()) << "Property for key '" << key
        +                                                  << "' recorded unexpectedly.";
        +}
        +
        +void ExpectNonFatalFailureRecordingPropertyWithReservedKeyForCurrentTest(
        +    const char* key) {
        +  const TestInfo* test_info = UnitTest::GetInstance()->current_test_info();
        +  ASSERT_TRUE(test_info != NULL);
        +  ExpectNonFatalFailureRecordingPropertyWithReservedKey(*test_info->result(),
        +                                                        key);
        +}
        +
        +void ExpectNonFatalFailureRecordingPropertyWithReservedKeyForCurrentTestCase(
        +    const char* key) {
        +  const TestCase* test_case = UnitTest::GetInstance()->current_test_case();
        +  ASSERT_TRUE(test_case != NULL);
        +  ExpectNonFatalFailureRecordingPropertyWithReservedKey(
        +      test_case->ad_hoc_test_result(), key);
        +}
        +
        +void ExpectNonFatalFailureRecordingPropertyWithReservedKeyOutsideOfTestCase(
        +    const char* key) {
        +  ExpectNonFatalFailureRecordingPropertyWithReservedKey(
        +      UnitTest::GetInstance()->ad_hoc_test_result(), key);
        +}
        +
        +// Tests that property recording functions in UnitTest outside of tests
        +// functions correcly.  Creating a separate instance of UnitTest ensures it
        +// is in a state similar to the UnitTest's singleton's between tests.
        +class UnitTestRecordPropertyTest :
        +    public testing::internal::UnitTestRecordPropertyTestHelper {
        + public:
        +  static void SetUpTestCase() {
        +    ExpectNonFatalFailureRecordingPropertyWithReservedKeyForCurrentTestCase(
        +        "disabled");
        +    ExpectNonFatalFailureRecordingPropertyWithReservedKeyForCurrentTestCase(
        +        "errors");
        +    ExpectNonFatalFailureRecordingPropertyWithReservedKeyForCurrentTestCase(
        +        "failures");
        +    ExpectNonFatalFailureRecordingPropertyWithReservedKeyForCurrentTestCase(
        +        "name");
        +    ExpectNonFatalFailureRecordingPropertyWithReservedKeyForCurrentTestCase(
        +        "tests");
        +    ExpectNonFatalFailureRecordingPropertyWithReservedKeyForCurrentTestCase(
        +        "time");
        +
        +    Test::RecordProperty("test_case_key_1", "1");
        +    const TestCase* test_case = UnitTest::GetInstance()->current_test_case();
        +    ASSERT_TRUE(test_case != NULL);
        +
        +    ASSERT_EQ(1, test_case->ad_hoc_test_result().test_property_count());
        +    EXPECT_STREQ("test_case_key_1",
        +                 test_case->ad_hoc_test_result().GetTestProperty(0).key());
        +    EXPECT_STREQ("1",
        +                 test_case->ad_hoc_test_result().GetTestProperty(0).value());
        +  }
        +};
        +
        +// Tests TestResult has the expected property when added.
        +TEST_F(UnitTestRecordPropertyTest, OnePropertyFoundWhenAdded) {
        +  UnitTestRecordProperty("key_1", "1");
        +
        +  ASSERT_EQ(1, unit_test_.ad_hoc_test_result().test_property_count());
        +
        +  EXPECT_STREQ("key_1",
        +               unit_test_.ad_hoc_test_result().GetTestProperty(0).key());
        +  EXPECT_STREQ("1",
        +               unit_test_.ad_hoc_test_result().GetTestProperty(0).value());
        +}
        +
        +// Tests TestResult has multiple properties when added.
        +TEST_F(UnitTestRecordPropertyTest, MultiplePropertiesFoundWhenAdded) {
        +  UnitTestRecordProperty("key_1", "1");
        +  UnitTestRecordProperty("key_2", "2");
        +
        +  ASSERT_EQ(2, unit_test_.ad_hoc_test_result().test_property_count());
        +
        +  EXPECT_STREQ("key_1",
        +               unit_test_.ad_hoc_test_result().GetTestProperty(0).key());
        +  EXPECT_STREQ("1", unit_test_.ad_hoc_test_result().GetTestProperty(0).value());
        +
        +  EXPECT_STREQ("key_2",
        +               unit_test_.ad_hoc_test_result().GetTestProperty(1).key());
        +  EXPECT_STREQ("2", unit_test_.ad_hoc_test_result().GetTestProperty(1).value());
        +}
        +
        +// Tests TestResult::RecordProperty() overrides values for duplicate keys.
        +TEST_F(UnitTestRecordPropertyTest, OverridesValuesForDuplicateKeys) {
        +  UnitTestRecordProperty("key_1", "1");
        +  UnitTestRecordProperty("key_2", "2");
        +  UnitTestRecordProperty("key_1", "12");
        +  UnitTestRecordProperty("key_2", "22");
        +
        +  ASSERT_EQ(2, unit_test_.ad_hoc_test_result().test_property_count());
        +
        +  EXPECT_STREQ("key_1",
        +               unit_test_.ad_hoc_test_result().GetTestProperty(0).key());
        +  EXPECT_STREQ("12",
        +               unit_test_.ad_hoc_test_result().GetTestProperty(0).value());
        +
        +  EXPECT_STREQ("key_2",
        +               unit_test_.ad_hoc_test_result().GetTestProperty(1).key());
        +  EXPECT_STREQ("22",
        +               unit_test_.ad_hoc_test_result().GetTestProperty(1).value());
        +}
        +
        +TEST_F(UnitTestRecordPropertyTest,
        +       AddFailureInsideTestsWhenUsingTestCaseReservedKeys) {
        +  ExpectNonFatalFailureRecordingPropertyWithReservedKeyForCurrentTest(
        +      "name");
        +  ExpectNonFatalFailureRecordingPropertyWithReservedKeyForCurrentTest(
        +      "value_param");
        +  ExpectNonFatalFailureRecordingPropertyWithReservedKeyForCurrentTest(
        +      "type_param");
        +  ExpectNonFatalFailureRecordingPropertyWithReservedKeyForCurrentTest(
        +      "status");
        +  ExpectNonFatalFailureRecordingPropertyWithReservedKeyForCurrentTest(
        +      "time");
        +  ExpectNonFatalFailureRecordingPropertyWithReservedKeyForCurrentTest(
        +      "classname");
        +}
        +
        +TEST_F(UnitTestRecordPropertyTest,
        +       AddRecordWithReservedKeysGeneratesCorrectPropertyList) {
        +  EXPECT_NONFATAL_FAILURE(
        +      Test::RecordProperty("name", "1"),
        +      "'classname', 'name', 'status', 'time', 'type_param', and 'value_param'"
        +      " are reserved");
        +}
        +
        +class UnitTestRecordPropertyTestEnvironment : public Environment {
        + public:
        +  virtual void TearDown() {
        +    ExpectNonFatalFailureRecordingPropertyWithReservedKeyOutsideOfTestCase(
        +        "tests");
        +    ExpectNonFatalFailureRecordingPropertyWithReservedKeyOutsideOfTestCase(
        +        "failures");
        +    ExpectNonFatalFailureRecordingPropertyWithReservedKeyOutsideOfTestCase(
        +        "disabled");
        +    ExpectNonFatalFailureRecordingPropertyWithReservedKeyOutsideOfTestCase(
        +        "errors");
        +    ExpectNonFatalFailureRecordingPropertyWithReservedKeyOutsideOfTestCase(
        +        "name");
        +    ExpectNonFatalFailureRecordingPropertyWithReservedKeyOutsideOfTestCase(
        +        "timestamp");
        +    ExpectNonFatalFailureRecordingPropertyWithReservedKeyOutsideOfTestCase(
        +        "time");
        +    ExpectNonFatalFailureRecordingPropertyWithReservedKeyOutsideOfTestCase(
        +        "random_seed");
        +  }
        +};
        +
        +// This will test property recording outside of any test or test case.
        +static Environment* record_property_env =
        +    AddGlobalTestEnvironment(new UnitTestRecordPropertyTestEnvironment);
        +
        +// This group of tests is for predicate assertions (ASSERT_PRED*, etc)
        +// of various arities.  They do not attempt to be exhaustive.  Rather,
        +// view them as smoke tests that can be easily reviewed and verified.
        +// A more complete set of tests for predicate assertions can be found
        +// in gtest_pred_impl_unittest.cc.
        +
        +// First, some predicates and predicate-formatters needed by the tests.
        +
        +// Returns true iff the argument is an even number.
        +bool IsEven(int n) {
        +  return (n % 2) == 0;
        +}
        +
        +// A functor that returns true iff the argument is an even number.
        +struct IsEvenFunctor {
        +  bool operator()(int n) { return IsEven(n); }
        +};
        +
        +// A predicate-formatter function that asserts the argument is an even
        +// number.
        +AssertionResult AssertIsEven(const char* expr, int n) {
        +  if (IsEven(n)) {
        +    return AssertionSuccess();
        +  }
        +
        +  Message msg;
        +  msg << expr << " evaluates to " << n << ", which is not even.";
        +  return AssertionFailure(msg);
        +}
        +
        +// A predicate function that returns AssertionResult for use in
        +// EXPECT/ASSERT_TRUE/FALSE.
        +AssertionResult ResultIsEven(int n) {
        +  if (IsEven(n))
        +    return AssertionSuccess() << n << " is even";
        +  else
        +    return AssertionFailure() << n << " is odd";
        +}
        +
        +// A predicate function that returns AssertionResult but gives no
        +// explanation why it succeeds. Needed for testing that
        +// EXPECT/ASSERT_FALSE handles such functions correctly.
        +AssertionResult ResultIsEvenNoExplanation(int n) {
        +  if (IsEven(n))
        +    return AssertionSuccess();
        +  else
        +    return AssertionFailure() << n << " is odd";
        +}
        +
        +// A predicate-formatter functor that asserts the argument is an even
        +// number.
        +struct AssertIsEvenFunctor {
        +  AssertionResult operator()(const char* expr, int n) {
        +    return AssertIsEven(expr, n);
        +  }
        +};
        +
        +// Returns true iff the sum of the arguments is an even number.
        +bool SumIsEven2(int n1, int n2) {
        +  return IsEven(n1 + n2);
        +}
        +
        +// A functor that returns true iff the sum of the arguments is an even
        +// number.
        +struct SumIsEven3Functor {
        +  bool operator()(int n1, int n2, int n3) {
        +    return IsEven(n1 + n2 + n3);
        +  }
        +};
        +
        +// A predicate-formatter function that asserts the sum of the
        +// arguments is an even number.
        +AssertionResult AssertSumIsEven4(
        +    const char* e1, const char* e2, const char* e3, const char* e4,
        +    int n1, int n2, int n3, int n4) {
        +  const int sum = n1 + n2 + n3 + n4;
        +  if (IsEven(sum)) {
        +    return AssertionSuccess();
        +  }
        +
        +  Message msg;
        +  msg << e1 << " + " << e2 << " + " << e3 << " + " << e4
        +      << " (" << n1 << " + " << n2 << " + " << n3 << " + " << n4
        +      << ") evaluates to " << sum << ", which is not even.";
        +  return AssertionFailure(msg);
        +}
        +
        +// A predicate-formatter functor that asserts the sum of the arguments
        +// is an even number.
        +struct AssertSumIsEven5Functor {
        +  AssertionResult operator()(
        +      const char* e1, const char* e2, const char* e3, const char* e4,
        +      const char* e5, int n1, int n2, int n3, int n4, int n5) {
        +    const int sum = n1 + n2 + n3 + n4 + n5;
        +    if (IsEven(sum)) {
        +      return AssertionSuccess();
        +    }
        +
        +    Message msg;
        +    msg << e1 << " + " << e2 << " + " << e3 << " + " << e4 << " + " << e5
        +        << " ("
        +        << n1 << " + " << n2 << " + " << n3 << " + " << n4 << " + " << n5
        +        << ") evaluates to " << sum << ", which is not even.";
        +    return AssertionFailure(msg);
        +  }
        +};
        +
        +
        +// Tests unary predicate assertions.
        +
        +// Tests unary predicate assertions that don't use a custom formatter.
        +TEST(Pred1Test, WithoutFormat) {
        +  // Success cases.
        +  EXPECT_PRED1(IsEvenFunctor(), 2) << "This failure is UNEXPECTED!";
        +  ASSERT_PRED1(IsEven, 4);
        +
        +  // Failure cases.
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED1(IsEven, 5) << "This failure is expected.";
        +  }, "This failure is expected.");
        +  EXPECT_FATAL_FAILURE(ASSERT_PRED1(IsEvenFunctor(), 5),
        +                       "evaluates to false");
        +}
        +
        +// Tests unary predicate assertions that use a custom formatter.
        +TEST(Pred1Test, WithFormat) {
        +  // Success cases.
        +  EXPECT_PRED_FORMAT1(AssertIsEven, 2);
        +  ASSERT_PRED_FORMAT1(AssertIsEvenFunctor(), 4)
        +    << "This failure is UNEXPECTED!";
        +
        +  // Failure cases.
        +  const int n = 5;
        +  EXPECT_NONFATAL_FAILURE(EXPECT_PRED_FORMAT1(AssertIsEvenFunctor(), n),
        +                          "n evaluates to 5, which is not even.");
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED_FORMAT1(AssertIsEven, 5) << "This failure is expected.";
        +  }, "This failure is expected.");
        +}
        +
        +// Tests that unary predicate assertions evaluates their arguments
        +// exactly once.
        +TEST(Pred1Test, SingleEvaluationOnFailure) {
        +  // A success case.
        +  static int n = 0;
        +  EXPECT_PRED1(IsEven, n++);
        +  EXPECT_EQ(1, n) << "The argument is not evaluated exactly once.";
        +
        +  // A failure case.
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED_FORMAT1(AssertIsEvenFunctor(), n++)
        +        << "This failure is expected.";
        +  }, "This failure is expected.");
        +  EXPECT_EQ(2, n) << "The argument is not evaluated exactly once.";
        +}
        +
        +
        +// Tests predicate assertions whose arity is >= 2.
        +
        +// Tests predicate assertions that don't use a custom formatter.
        +TEST(PredTest, WithoutFormat) {
        +  // Success cases.
        +  ASSERT_PRED2(SumIsEven2, 2, 4) << "This failure is UNEXPECTED!";
        +  EXPECT_PRED3(SumIsEven3Functor(), 4, 6, 8);
        +
        +  // Failure cases.
        +  const int n1 = 1;
        +  const int n2 = 2;
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED2(SumIsEven2, n1, n2) << "This failure is expected.";
        +  }, "This failure is expected.");
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED3(SumIsEven3Functor(), 1, 2, 4);
        +  }, "evaluates to false");
        +}
        +
        +// Tests predicate assertions that use a custom formatter.
        +TEST(PredTest, WithFormat) {
        +  // Success cases.
        +  ASSERT_PRED_FORMAT4(AssertSumIsEven4, 4, 6, 8, 10) <<
        +    "This failure is UNEXPECTED!";
        +  EXPECT_PRED_FORMAT5(AssertSumIsEven5Functor(), 2, 4, 6, 8, 10);
        +
        +  // Failure cases.
        +  const int n1 = 1;
        +  const int n2 = 2;
        +  const int n3 = 4;
        +  const int n4 = 6;
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED_FORMAT4(AssertSumIsEven4, n1, n2, n3, n4);
        +  }, "evaluates to 13, which is not even.");
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED_FORMAT5(AssertSumIsEven5Functor(), 1, 2, 4, 6, 8)
        +        << "This failure is expected.";
        +  }, "This failure is expected.");
        +}
        +
        +// Tests that predicate assertions evaluates their arguments
        +// exactly once.
        +TEST(PredTest, SingleEvaluationOnFailure) {
        +  // A success case.
        +  int n1 = 0;
        +  int n2 = 0;
        +  EXPECT_PRED2(SumIsEven2, n1++, n2++);
        +  EXPECT_EQ(1, n1) << "Argument 1 is not evaluated exactly once.";
        +  EXPECT_EQ(1, n2) << "Argument 2 is not evaluated exactly once.";
        +
        +  // Another success case.
        +  n1 = n2 = 0;
        +  int n3 = 0;
        +  int n4 = 0;
        +  int n5 = 0;
        +  ASSERT_PRED_FORMAT5(AssertSumIsEven5Functor(),
        +                      n1++, n2++, n3++, n4++, n5++)
        +                        << "This failure is UNEXPECTED!";
        +  EXPECT_EQ(1, n1) << "Argument 1 is not evaluated exactly once.";
        +  EXPECT_EQ(1, n2) << "Argument 2 is not evaluated exactly once.";
        +  EXPECT_EQ(1, n3) << "Argument 3 is not evaluated exactly once.";
        +  EXPECT_EQ(1, n4) << "Argument 4 is not evaluated exactly once.";
        +  EXPECT_EQ(1, n5) << "Argument 5 is not evaluated exactly once.";
        +
        +  // A failure case.
        +  n1 = n2 = n3 = 0;
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED3(SumIsEven3Functor(), ++n1, n2++, n3++)
        +        << "This failure is expected.";
        +  }, "This failure is expected.");
        +  EXPECT_EQ(1, n1) << "Argument 1 is not evaluated exactly once.";
        +  EXPECT_EQ(1, n2) << "Argument 2 is not evaluated exactly once.";
        +  EXPECT_EQ(1, n3) << "Argument 3 is not evaluated exactly once.";
        +
        +  // Another failure case.
        +  n1 = n2 = n3 = n4 = 0;
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED_FORMAT4(AssertSumIsEven4, ++n1, n2++, n3++, n4++);
        +  }, "evaluates to 1, which is not even.");
        +  EXPECT_EQ(1, n1) << "Argument 1 is not evaluated exactly once.";
        +  EXPECT_EQ(1, n2) << "Argument 2 is not evaluated exactly once.";
        +  EXPECT_EQ(1, n3) << "Argument 3 is not evaluated exactly once.";
        +  EXPECT_EQ(1, n4) << "Argument 4 is not evaluated exactly once.";
        +}
        +
        +
        +// Some helper functions for testing using overloaded/template
        +// functions with ASSERT_PREDn and EXPECT_PREDn.
        +
        +bool IsPositive(double x) {
        +  return x > 0;
        +}
        +
        +template <typename T>
        +bool IsNegative(T x) {
        +  return x < 0;
        +}
        +
        +template <typename T1, typename T2>
        +bool GreaterThan(T1 x1, T2 x2) {
        +  return x1 > x2;
        +}
        +
        +// Tests that overloaded functions can be used in *_PRED* as long as
        +// their types are explicitly specified.
        +TEST(PredicateAssertionTest, AcceptsOverloadedFunction) {
        +  // C++Builder requires C-style casts rather than static_cast.
        +  EXPECT_PRED1((bool (*)(int))(IsPositive), 5);  // NOLINT
        +  ASSERT_PRED1((bool (*)(double))(IsPositive), 6.0);  // NOLINT
        +}
        +
        +// Tests that template functions can be used in *_PRED* as long as
        +// their types are explicitly specified.
        +TEST(PredicateAssertionTest, AcceptsTemplateFunction) {
        +  EXPECT_PRED1(IsNegative<int>, -5);
        +  // Makes sure that we can handle templates with more than one
        +  // parameter.
        +  ASSERT_PRED2((GreaterThan<int, int>), 5, 0);
        +}
        +
        +
        +// Some helper functions for testing using overloaded/template
        +// functions with ASSERT_PRED_FORMATn and EXPECT_PRED_FORMATn.
        +
        +AssertionResult IsPositiveFormat(const char* /* expr */, int n) {
        +  return n > 0 ? AssertionSuccess() :
        +      AssertionFailure(Message() << "Failure");
        +}
        +
        +AssertionResult IsPositiveFormat(const char* /* expr */, double x) {
        +  return x > 0 ? AssertionSuccess() :
        +      AssertionFailure(Message() << "Failure");
        +}
        +
        +template <typename T>
        +AssertionResult IsNegativeFormat(const char* /* expr */, T x) {
        +  return x < 0 ? AssertionSuccess() :
        +      AssertionFailure(Message() << "Failure");
        +}
        +
        +template <typename T1, typename T2>
        +AssertionResult EqualsFormat(const char* /* expr1 */, const char* /* expr2 */,
        +                             const T1& x1, const T2& x2) {
        +  return x1 == x2 ? AssertionSuccess() :
        +      AssertionFailure(Message() << "Failure");
        +}
        +
        +// Tests that overloaded functions can be used in *_PRED_FORMAT*
        +// without explicitly specifying their types.
        +TEST(PredicateFormatAssertionTest, AcceptsOverloadedFunction) {
        +  EXPECT_PRED_FORMAT1(IsPositiveFormat, 5);
        +  ASSERT_PRED_FORMAT1(IsPositiveFormat, 6.0);
        +}
        +
        +// Tests that template functions can be used in *_PRED_FORMAT* without
        +// explicitly specifying their types.
        +TEST(PredicateFormatAssertionTest, AcceptsTemplateFunction) {
        +  EXPECT_PRED_FORMAT1(IsNegativeFormat, -5);
        +  ASSERT_PRED_FORMAT2(EqualsFormat, 3, 3);
        +}
        +
        +
        +// Tests string assertions.
        +
        +// Tests ASSERT_STREQ with non-NULL arguments.
        +TEST(StringAssertionTest, ASSERT_STREQ) {
        +  const char * const p1 = "good";
        +  ASSERT_STREQ(p1, p1);
        +
        +  // Let p2 have the same content as p1, but be at a different address.
        +  const char p2[] = "good";
        +  ASSERT_STREQ(p1, p2);
        +
        +  EXPECT_FATAL_FAILURE(ASSERT_STREQ("bad", "good"),
        +                       "Expected: \"bad\"");
        +}
        +
        +// Tests ASSERT_STREQ with NULL arguments.
        +TEST(StringAssertionTest, ASSERT_STREQ_Null) {
        +  ASSERT_STREQ(static_cast<const char *>(NULL), NULL);
        +  EXPECT_FATAL_FAILURE(ASSERT_STREQ(NULL, "non-null"),
        +                       "non-null");
        +}
        +
        +// Tests ASSERT_STREQ with NULL arguments.
        +TEST(StringAssertionTest, ASSERT_STREQ_Null2) {
        +  EXPECT_FATAL_FAILURE(ASSERT_STREQ("non-null", NULL),
        +                       "non-null");
        +}
        +
        +// Tests ASSERT_STRNE.
        +TEST(StringAssertionTest, ASSERT_STRNE) {
        +  ASSERT_STRNE("hi", "Hi");
        +  ASSERT_STRNE("Hi", NULL);
        +  ASSERT_STRNE(NULL, "Hi");
        +  ASSERT_STRNE("", NULL);
        +  ASSERT_STRNE(NULL, "");
        +  ASSERT_STRNE("", "Hi");
        +  ASSERT_STRNE("Hi", "");
        +  EXPECT_FATAL_FAILURE(ASSERT_STRNE("Hi", "Hi"),
        +                       "\"Hi\" vs \"Hi\"");
        +}
        +
        +// Tests ASSERT_STRCASEEQ.
        +TEST(StringAssertionTest, ASSERT_STRCASEEQ) {
        +  ASSERT_STRCASEEQ("hi", "Hi");
        +  ASSERT_STRCASEEQ(static_cast<const char *>(NULL), NULL);
        +
        +  ASSERT_STRCASEEQ("", "");
        +  EXPECT_FATAL_FAILURE(ASSERT_STRCASEEQ("Hi", "hi2"),
        +                       "(ignoring case)");
        +}
        +
        +// Tests ASSERT_STRCASENE.
        +TEST(StringAssertionTest, ASSERT_STRCASENE) {
        +  ASSERT_STRCASENE("hi1", "Hi2");
        +  ASSERT_STRCASENE("Hi", NULL);
        +  ASSERT_STRCASENE(NULL, "Hi");
        +  ASSERT_STRCASENE("", NULL);
        +  ASSERT_STRCASENE(NULL, "");
        +  ASSERT_STRCASENE("", "Hi");
        +  ASSERT_STRCASENE("Hi", "");
        +  EXPECT_FATAL_FAILURE(ASSERT_STRCASENE("Hi", "hi"),
        +                       "(ignoring case)");
        +}
        +
        +// Tests *_STREQ on wide strings.
        +TEST(StringAssertionTest, STREQ_Wide) {
        +  // NULL strings.
        +  ASSERT_STREQ(static_cast<const wchar_t *>(NULL), NULL);
        +
        +  // Empty strings.
        +  ASSERT_STREQ(L"", L"");
        +
        +  // Non-null vs NULL.
        +  EXPECT_NONFATAL_FAILURE(EXPECT_STREQ(L"non-null", NULL),
        +                          "non-null");
        +
        +  // Equal strings.
        +  EXPECT_STREQ(L"Hi", L"Hi");
        +
        +  // Unequal strings.
        +  EXPECT_NONFATAL_FAILURE(EXPECT_STREQ(L"abc", L"Abc"),
        +                          "Abc");
        +
        +  // Strings containing wide characters.
        +  EXPECT_NONFATAL_FAILURE(EXPECT_STREQ(L"abc\x8119", L"abc\x8120"),
        +                          "abc");
        +
        +  // The streaming variation.
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_STREQ(L"abc\x8119", L"abc\x8121") << "Expected failure";
        +  }, "Expected failure");
        +}
        +
        +// Tests *_STRNE on wide strings.
        +TEST(StringAssertionTest, STRNE_Wide) {
        +  // NULL strings.
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_STRNE(static_cast<const wchar_t *>(NULL), NULL);
        +  }, "");
        +
        +  // Empty strings.
        +  EXPECT_NONFATAL_FAILURE(EXPECT_STRNE(L"", L""),
        +                          "L\"\"");
        +
        +  // Non-null vs NULL.
        +  ASSERT_STRNE(L"non-null", NULL);
        +
        +  // Equal strings.
        +  EXPECT_NONFATAL_FAILURE(EXPECT_STRNE(L"Hi", L"Hi"),
        +                          "L\"Hi\"");
        +
        +  // Unequal strings.
        +  EXPECT_STRNE(L"abc", L"Abc");
        +
        +  // Strings containing wide characters.
        +  EXPECT_NONFATAL_FAILURE(EXPECT_STRNE(L"abc\x8119", L"abc\x8119"),
        +                          "abc");
        +
        +  // The streaming variation.
        +  ASSERT_STRNE(L"abc\x8119", L"abc\x8120") << "This shouldn't happen";
        +}
        +
        +// Tests for ::testing::IsSubstring().
        +
        +// Tests that IsSubstring() returns the correct result when the input
        +// argument type is const char*.
        +TEST(IsSubstringTest, ReturnsCorrectResultForCString) {
        +  EXPECT_FALSE(IsSubstring("", "", NULL, "a"));
        +  EXPECT_FALSE(IsSubstring("", "", "b", NULL));
        +  EXPECT_FALSE(IsSubstring("", "", "needle", "haystack"));
        +
        +  EXPECT_TRUE(IsSubstring("", "", static_cast<const char*>(NULL), NULL));
        +  EXPECT_TRUE(IsSubstring("", "", "needle", "two needles"));
        +}
        +
        +// Tests that IsSubstring() returns the correct result when the input
        +// argument type is const wchar_t*.
        +TEST(IsSubstringTest, ReturnsCorrectResultForWideCString) {
        +  EXPECT_FALSE(IsSubstring("", "", kNull, L"a"));
        +  EXPECT_FALSE(IsSubstring("", "", L"b", kNull));
        +  EXPECT_FALSE(IsSubstring("", "", L"needle", L"haystack"));
        +
        +  EXPECT_TRUE(IsSubstring("", "", static_cast<const wchar_t*>(NULL), NULL));
        +  EXPECT_TRUE(IsSubstring("", "", L"needle", L"two needles"));
        +}
        +
        +// Tests that IsSubstring() generates the correct message when the input
        +// argument type is const char*.
        +TEST(IsSubstringTest, GeneratesCorrectMessageForCString) {
        +  EXPECT_STREQ("Value of: needle_expr\n"
        +               "  Actual: \"needle\"\n"
        +               "Expected: a substring of haystack_expr\n"
        +               "Which is: \"haystack\"",
        +               IsSubstring("needle_expr", "haystack_expr",
        +                           "needle", "haystack").failure_message());
        +}
        +
        +// Tests that IsSubstring returns the correct result when the input
        +// argument type is ::std::string.
        +TEST(IsSubstringTest, ReturnsCorrectResultsForStdString) {
        +  EXPECT_TRUE(IsSubstring("", "", std::string("hello"), "ahellob"));
        +  EXPECT_FALSE(IsSubstring("", "", "hello", std::string("world")));
        +}
        +
        +#if GTEST_HAS_STD_WSTRING
        +// Tests that IsSubstring returns the correct result when the input
        +// argument type is ::std::wstring.
        +TEST(IsSubstringTest, ReturnsCorrectResultForStdWstring) {
        +  EXPECT_TRUE(IsSubstring("", "", ::std::wstring(L"needle"), L"two needles"));
        +  EXPECT_FALSE(IsSubstring("", "", L"needle", ::std::wstring(L"haystack")));
        +}
        +
        +// Tests that IsSubstring() generates the correct message when the input
        +// argument type is ::std::wstring.
        +TEST(IsSubstringTest, GeneratesCorrectMessageForWstring) {
        +  EXPECT_STREQ("Value of: needle_expr\n"
        +               "  Actual: L\"needle\"\n"
        +               "Expected: a substring of haystack_expr\n"
        +               "Which is: L\"haystack\"",
        +               IsSubstring(
        +                   "needle_expr", "haystack_expr",
        +                   ::std::wstring(L"needle"), L"haystack").failure_message());
        +}
        +
        +#endif  // GTEST_HAS_STD_WSTRING
        +
        +// Tests for ::testing::IsNotSubstring().
        +
        +// Tests that IsNotSubstring() returns the correct result when the input
        +// argument type is const char*.
        +TEST(IsNotSubstringTest, ReturnsCorrectResultForCString) {
        +  EXPECT_TRUE(IsNotSubstring("", "", "needle", "haystack"));
        +  EXPECT_FALSE(IsNotSubstring("", "", "needle", "two needles"));
        +}
        +
        +// Tests that IsNotSubstring() returns the correct result when the input
        +// argument type is const wchar_t*.
        +TEST(IsNotSubstringTest, ReturnsCorrectResultForWideCString) {
        +  EXPECT_TRUE(IsNotSubstring("", "", L"needle", L"haystack"));
        +  EXPECT_FALSE(IsNotSubstring("", "", L"needle", L"two needles"));
        +}
        +
        +// Tests that IsNotSubstring() generates the correct message when the input
        +// argument type is const wchar_t*.
        +TEST(IsNotSubstringTest, GeneratesCorrectMessageForWideCString) {
        +  EXPECT_STREQ("Value of: needle_expr\n"
        +               "  Actual: L\"needle\"\n"
        +               "Expected: not a substring of haystack_expr\n"
        +               "Which is: L\"two needles\"",
        +               IsNotSubstring(
        +                   "needle_expr", "haystack_expr",
        +                   L"needle", L"two needles").failure_message());
        +}
        +
        +// Tests that IsNotSubstring returns the correct result when the input
        +// argument type is ::std::string.
        +TEST(IsNotSubstringTest, ReturnsCorrectResultsForStdString) {
        +  EXPECT_FALSE(IsNotSubstring("", "", std::string("hello"), "ahellob"));
        +  EXPECT_TRUE(IsNotSubstring("", "", "hello", std::string("world")));
        +}
        +
        +// Tests that IsNotSubstring() generates the correct message when the input
        +// argument type is ::std::string.
        +TEST(IsNotSubstringTest, GeneratesCorrectMessageForStdString) {
        +  EXPECT_STREQ("Value of: needle_expr\n"
        +               "  Actual: \"needle\"\n"
        +               "Expected: not a substring of haystack_expr\n"
        +               "Which is: \"two needles\"",
        +               IsNotSubstring(
        +                   "needle_expr", "haystack_expr",
        +                   ::std::string("needle"), "two needles").failure_message());
        +}
        +
        +#if GTEST_HAS_STD_WSTRING
        +
        +// Tests that IsNotSubstring returns the correct result when the input
        +// argument type is ::std::wstring.
        +TEST(IsNotSubstringTest, ReturnsCorrectResultForStdWstring) {
        +  EXPECT_FALSE(
        +      IsNotSubstring("", "", ::std::wstring(L"needle"), L"two needles"));
        +  EXPECT_TRUE(IsNotSubstring("", "", L"needle", ::std::wstring(L"haystack")));
        +}
        +
        +#endif  // GTEST_HAS_STD_WSTRING
        +
        +// Tests floating-point assertions.
        +
        +template <typename RawType>
        +class FloatingPointTest : public Test {
        + protected:
        +  // Pre-calculated numbers to be used by the tests.
        +  struct TestValues {
        +    RawType close_to_positive_zero;
        +    RawType close_to_negative_zero;
        +    RawType further_from_negative_zero;
        +
        +    RawType close_to_one;
        +    RawType further_from_one;
        +
        +    RawType infinity;
        +    RawType close_to_infinity;
        +    RawType further_from_infinity;
        +
        +    RawType nan1;
        +    RawType nan2;
        +  };
        +
        +  typedef typename testing::internal::FloatingPoint<RawType> Floating;
        +  typedef typename Floating::Bits Bits;
        +
        +  virtual void SetUp() {
        +    const size_t max_ulps = Floating::kMaxUlps;
        +
        +    // The bits that represent 0.0.
        +    const Bits zero_bits = Floating(0).bits();
        +
        +    // Makes some numbers close to 0.0.
        +    values_.close_to_positive_zero = Floating::ReinterpretBits(
        +        zero_bits + max_ulps/2);
        +    values_.close_to_negative_zero = -Floating::ReinterpretBits(
        +        zero_bits + max_ulps - max_ulps/2);
        +    values_.further_from_negative_zero = -Floating::ReinterpretBits(
        +        zero_bits + max_ulps + 1 - max_ulps/2);
        +
        +    // The bits that represent 1.0.
        +    const Bits one_bits = Floating(1).bits();
        +
        +    // Makes some numbers close to 1.0.
        +    values_.close_to_one = Floating::ReinterpretBits(one_bits + max_ulps);
        +    values_.further_from_one = Floating::ReinterpretBits(
        +        one_bits + max_ulps + 1);
        +
        +    // +infinity.
        +    values_.infinity = Floating::Infinity();
        +
        +    // The bits that represent +infinity.
        +    const Bits infinity_bits = Floating(values_.infinity).bits();
        +
        +    // Makes some numbers close to infinity.
        +    values_.close_to_infinity = Floating::ReinterpretBits(
        +        infinity_bits - max_ulps);
        +    values_.further_from_infinity = Floating::ReinterpretBits(
        +        infinity_bits - max_ulps - 1);
        +
        +    // Makes some NAN's.  Sets the most significant bit of the fraction so that
        +    // our NaN's are quiet; trying to process a signaling NaN would raise an
        +    // exception if our environment enables floating point exceptions.
        +    values_.nan1 = Floating::ReinterpretBits(Floating::kExponentBitMask
        +        | (static_cast<Bits>(1) << (Floating::kFractionBitCount - 1)) | 1);
        +    values_.nan2 = Floating::ReinterpretBits(Floating::kExponentBitMask
        +        | (static_cast<Bits>(1) << (Floating::kFractionBitCount - 1)) | 200);
        +  }
        +
        +  void TestSize() {
        +    EXPECT_EQ(sizeof(RawType), sizeof(Bits));
        +  }
        +
        +  static TestValues values_;
        +};
        +
        +template <typename RawType>
        +typename FloatingPointTest<RawType>::TestValues
        +    FloatingPointTest<RawType>::values_;
        +
        +// Instantiates FloatingPointTest for testing *_FLOAT_EQ.
        +typedef FloatingPointTest<float> FloatTest;
        +
        +// Tests that the size of Float::Bits matches the size of float.
        +TEST_F(FloatTest, Size) {
        +  TestSize();
        +}
        +
        +// Tests comparing with +0 and -0.
        +TEST_F(FloatTest, Zeros) {
        +  EXPECT_FLOAT_EQ(0.0, -0.0);
        +  EXPECT_NONFATAL_FAILURE(EXPECT_FLOAT_EQ(-0.0, 1.0),
        +                          "1.0");
        +  EXPECT_FATAL_FAILURE(ASSERT_FLOAT_EQ(0.0, 1.5),
        +                       "1.5");
        +}
        +
        +// Tests comparing numbers close to 0.
        +//
        +// This ensures that *_FLOAT_EQ handles the sign correctly and no
        +// overflow occurs when comparing numbers whose absolute value is very
        +// small.
        +TEST_F(FloatTest, AlmostZeros) {
        +  // In C++Builder, names within local classes (such as used by
        +  // EXPECT_FATAL_FAILURE) cannot be resolved against static members of the
        +  // scoping class.  Use a static local alias as a workaround.
        +  // We use the assignment syntax since some compilers, like Sun Studio,
        +  // don't allow initializing references using construction syntax
        +  // (parentheses).
        +  static const FloatTest::TestValues& v = this->values_;
        +
        +  EXPECT_FLOAT_EQ(0.0, v.close_to_positive_zero);
        +  EXPECT_FLOAT_EQ(-0.0, v.close_to_negative_zero);
        +  EXPECT_FLOAT_EQ(v.close_to_positive_zero, v.close_to_negative_zero);
        +
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_FLOAT_EQ(v.close_to_positive_zero,
        +                    v.further_from_negative_zero);
        +  }, "v.further_from_negative_zero");
        +}
        +
        +// Tests comparing numbers close to each other.
        +TEST_F(FloatTest, SmallDiff) {
        +  EXPECT_FLOAT_EQ(1.0, values_.close_to_one);
        +  EXPECT_NONFATAL_FAILURE(EXPECT_FLOAT_EQ(1.0, values_.further_from_one),
        +                          "values_.further_from_one");
        +}
        +
        +// Tests comparing numbers far apart.
        +TEST_F(FloatTest, LargeDiff) {
        +  EXPECT_NONFATAL_FAILURE(EXPECT_FLOAT_EQ(2.5, 3.0),
        +                          "3.0");
        +}
        +
        +// Tests comparing with infinity.
        +//
        +// This ensures that no overflow occurs when comparing numbers whose
        +// absolute value is very large.
        +TEST_F(FloatTest, Infinity) {
        +  EXPECT_FLOAT_EQ(values_.infinity, values_.close_to_infinity);
        +  EXPECT_FLOAT_EQ(-values_.infinity, -values_.close_to_infinity);
        +#if !GTEST_OS_SYMBIAN
        +  // Nokia's STLport crashes if we try to output infinity or NaN.
        +  EXPECT_NONFATAL_FAILURE(EXPECT_FLOAT_EQ(values_.infinity, -values_.infinity),
        +                          "-values_.infinity");
        +
        +  // This is interesting as the representations of infinity and nan1
        +  // are only 1 DLP apart.
        +  EXPECT_NONFATAL_FAILURE(EXPECT_FLOAT_EQ(values_.infinity, values_.nan1),
        +                          "values_.nan1");
        +#endif  // !GTEST_OS_SYMBIAN
        +}
        +
        +// Tests that comparing with NAN always returns false.
        +TEST_F(FloatTest, NaN) {
        +#if !GTEST_OS_SYMBIAN
        +// Nokia's STLport crashes if we try to output infinity or NaN.
        +
        +  // In C++Builder, names within local classes (such as used by
        +  // EXPECT_FATAL_FAILURE) cannot be resolved against static members of the
        +  // scoping class.  Use a static local alias as a workaround.
        +  // We use the assignment syntax since some compilers, like Sun Studio,
        +  // don't allow initializing references using construction syntax
        +  // (parentheses).
        +  static const FloatTest::TestValues& v = this->values_;
        +
        +  EXPECT_NONFATAL_FAILURE(EXPECT_FLOAT_EQ(v.nan1, v.nan1),
        +                          "v.nan1");
        +  EXPECT_NONFATAL_FAILURE(EXPECT_FLOAT_EQ(v.nan1, v.nan2),
        +                          "v.nan2");
        +  EXPECT_NONFATAL_FAILURE(EXPECT_FLOAT_EQ(1.0, v.nan1),
        +                          "v.nan1");
        +
        +  EXPECT_FATAL_FAILURE(ASSERT_FLOAT_EQ(v.nan1, v.infinity),
        +                       "v.infinity");
        +#endif  // !GTEST_OS_SYMBIAN
        +}
        +
        +// Tests that *_FLOAT_EQ are reflexive.
        +TEST_F(FloatTest, Reflexive) {
        +  EXPECT_FLOAT_EQ(0.0, 0.0);
        +  EXPECT_FLOAT_EQ(1.0, 1.0);
        +  ASSERT_FLOAT_EQ(values_.infinity, values_.infinity);
        +}
        +
        +// Tests that *_FLOAT_EQ are commutative.
        +TEST_F(FloatTest, Commutative) {
        +  // We already tested EXPECT_FLOAT_EQ(1.0, values_.close_to_one).
        +  EXPECT_FLOAT_EQ(values_.close_to_one, 1.0);
        +
        +  // We already tested EXPECT_FLOAT_EQ(1.0, values_.further_from_one).
        +  EXPECT_NONFATAL_FAILURE(EXPECT_FLOAT_EQ(values_.further_from_one, 1.0),
        +                          "1.0");
        +}
        +
        +// Tests EXPECT_NEAR.
        +TEST_F(FloatTest, EXPECT_NEAR) {
        +  EXPECT_NEAR(-1.0f, -1.1f, 0.2f);
        +  EXPECT_NEAR(2.0f, 3.0f, 1.0f);
        +  EXPECT_NONFATAL_FAILURE(EXPECT_NEAR(1.0f,1.5f, 0.25f),  // NOLINT
        +                          "The difference between 1.0f and 1.5f is 0.5, "
        +                          "which exceeds 0.25f");
        +  // To work around a bug in gcc 2.95.0, there is intentionally no
        +  // space after the first comma in the previous line.
        +}
        +
        +// Tests ASSERT_NEAR.
        +TEST_F(FloatTest, ASSERT_NEAR) {
        +  ASSERT_NEAR(-1.0f, -1.1f, 0.2f);
        +  ASSERT_NEAR(2.0f, 3.0f, 1.0f);
        +  EXPECT_FATAL_FAILURE(ASSERT_NEAR(1.0f,1.5f, 0.25f),  // NOLINT
        +                       "The difference between 1.0f and 1.5f is 0.5, "
        +                       "which exceeds 0.25f");
        +  // To work around a bug in gcc 2.95.0, there is intentionally no
        +  // space after the first comma in the previous line.
        +}
        +
        +// Tests the cases where FloatLE() should succeed.
        +TEST_F(FloatTest, FloatLESucceeds) {
        +  EXPECT_PRED_FORMAT2(FloatLE, 1.0f, 2.0f);  // When val1 < val2,
        +  ASSERT_PRED_FORMAT2(FloatLE, 1.0f, 1.0f);  // val1 == val2,
        +
        +  // or when val1 is greater than, but almost equals to, val2.
        +  EXPECT_PRED_FORMAT2(FloatLE, values_.close_to_positive_zero, 0.0f);
        +}
        +
        +// Tests the cases where FloatLE() should fail.
        +TEST_F(FloatTest, FloatLEFails) {
        +  // When val1 is greater than val2 by a large margin,
        +  EXPECT_NONFATAL_FAILURE(EXPECT_PRED_FORMAT2(FloatLE, 2.0f, 1.0f),
        +                          "(2.0f) <= (1.0f)");
        +
        +  // or by a small yet non-negligible margin,
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED_FORMAT2(FloatLE, values_.further_from_one, 1.0f);
        +  }, "(values_.further_from_one) <= (1.0f)");
        +
        +#if !GTEST_OS_SYMBIAN && !defined(__BORLANDC__)
        +  // Nokia's STLport crashes if we try to output infinity or NaN.
        +  // C++Builder gives bad results for ordered comparisons involving NaNs
        +  // due to compiler bugs.
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED_FORMAT2(FloatLE, values_.nan1, values_.infinity);
        +  }, "(values_.nan1) <= (values_.infinity)");
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED_FORMAT2(FloatLE, -values_.infinity, values_.nan1);
        +  }, "(-values_.infinity) <= (values_.nan1)");
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED_FORMAT2(FloatLE, values_.nan1, values_.nan1);
        +  }, "(values_.nan1) <= (values_.nan1)");
        +#endif  // !GTEST_OS_SYMBIAN && !defined(__BORLANDC__)
        +}
        +
        +// Instantiates FloatingPointTest for testing *_DOUBLE_EQ.
        +typedef FloatingPointTest<double> DoubleTest;
        +
        +// Tests that the size of Double::Bits matches the size of double.
        +TEST_F(DoubleTest, Size) {
        +  TestSize();
        +}
        +
        +// Tests comparing with +0 and -0.
        +TEST_F(DoubleTest, Zeros) {
        +  EXPECT_DOUBLE_EQ(0.0, -0.0);
        +  EXPECT_NONFATAL_FAILURE(EXPECT_DOUBLE_EQ(-0.0, 1.0),
        +                          "1.0");
        +  EXPECT_FATAL_FAILURE(ASSERT_DOUBLE_EQ(0.0, 1.0),
        +                       "1.0");
        +}
        +
        +// Tests comparing numbers close to 0.
        +//
        +// This ensures that *_DOUBLE_EQ handles the sign correctly and no
        +// overflow occurs when comparing numbers whose absolute value is very
        +// small.
        +TEST_F(DoubleTest, AlmostZeros) {
        +  // In C++Builder, names within local classes (such as used by
        +  // EXPECT_FATAL_FAILURE) cannot be resolved against static members of the
        +  // scoping class.  Use a static local alias as a workaround.
        +  // We use the assignment syntax since some compilers, like Sun Studio,
        +  // don't allow initializing references using construction syntax
        +  // (parentheses).
        +  static const DoubleTest::TestValues& v = this->values_;
        +
        +  EXPECT_DOUBLE_EQ(0.0, v.close_to_positive_zero);
        +  EXPECT_DOUBLE_EQ(-0.0, v.close_to_negative_zero);
        +  EXPECT_DOUBLE_EQ(v.close_to_positive_zero, v.close_to_negative_zero);
        +
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_DOUBLE_EQ(v.close_to_positive_zero,
        +                     v.further_from_negative_zero);
        +  }, "v.further_from_negative_zero");
        +}
        +
        +// Tests comparing numbers close to each other.
        +TEST_F(DoubleTest, SmallDiff) {
        +  EXPECT_DOUBLE_EQ(1.0, values_.close_to_one);
        +  EXPECT_NONFATAL_FAILURE(EXPECT_DOUBLE_EQ(1.0, values_.further_from_one),
        +                          "values_.further_from_one");
        +}
        +
        +// Tests comparing numbers far apart.
        +TEST_F(DoubleTest, LargeDiff) {
        +  EXPECT_NONFATAL_FAILURE(EXPECT_DOUBLE_EQ(2.0, 3.0),
        +                          "3.0");
        +}
        +
        +// Tests comparing with infinity.
        +//
        +// This ensures that no overflow occurs when comparing numbers whose
        +// absolute value is very large.
        +TEST_F(DoubleTest, Infinity) {
        +  EXPECT_DOUBLE_EQ(values_.infinity, values_.close_to_infinity);
        +  EXPECT_DOUBLE_EQ(-values_.infinity, -values_.close_to_infinity);
        +#if !GTEST_OS_SYMBIAN
        +  // Nokia's STLport crashes if we try to output infinity or NaN.
        +  EXPECT_NONFATAL_FAILURE(EXPECT_DOUBLE_EQ(values_.infinity, -values_.infinity),
        +                          "-values_.infinity");
        +
        +  // This is interesting as the representations of infinity_ and nan1_
        +  // are only 1 DLP apart.
        +  EXPECT_NONFATAL_FAILURE(EXPECT_DOUBLE_EQ(values_.infinity, values_.nan1),
        +                          "values_.nan1");
        +#endif  // !GTEST_OS_SYMBIAN
        +}
        +
        +// Tests that comparing with NAN always returns false.
        +TEST_F(DoubleTest, NaN) {
        +#if !GTEST_OS_SYMBIAN
        +  // In C++Builder, names within local classes (such as used by
        +  // EXPECT_FATAL_FAILURE) cannot be resolved against static members of the
        +  // scoping class.  Use a static local alias as a workaround.
        +  // We use the assignment syntax since some compilers, like Sun Studio,
        +  // don't allow initializing references using construction syntax
        +  // (parentheses).
        +  static const DoubleTest::TestValues& v = this->values_;
        +
        +  // Nokia's STLport crashes if we try to output infinity or NaN.
        +  EXPECT_NONFATAL_FAILURE(EXPECT_DOUBLE_EQ(v.nan1, v.nan1),
        +                          "v.nan1");
        +  EXPECT_NONFATAL_FAILURE(EXPECT_DOUBLE_EQ(v.nan1, v.nan2), "v.nan2");
        +  EXPECT_NONFATAL_FAILURE(EXPECT_DOUBLE_EQ(1.0, v.nan1), "v.nan1");
        +  EXPECT_FATAL_FAILURE(ASSERT_DOUBLE_EQ(v.nan1, v.infinity),
        +                       "v.infinity");
        +#endif  // !GTEST_OS_SYMBIAN
        +}
        +
        +// Tests that *_DOUBLE_EQ are reflexive.
        +TEST_F(DoubleTest, Reflexive) {
        +  EXPECT_DOUBLE_EQ(0.0, 0.0);
        +  EXPECT_DOUBLE_EQ(1.0, 1.0);
        +#if !GTEST_OS_SYMBIAN
        +  // Nokia's STLport crashes if we try to output infinity or NaN.
        +  ASSERT_DOUBLE_EQ(values_.infinity, values_.infinity);
        +#endif  // !GTEST_OS_SYMBIAN
        +}
        +
        +// Tests that *_DOUBLE_EQ are commutative.
        +TEST_F(DoubleTest, Commutative) {
        +  // We already tested EXPECT_DOUBLE_EQ(1.0, values_.close_to_one).
        +  EXPECT_DOUBLE_EQ(values_.close_to_one, 1.0);
        +
        +  // We already tested EXPECT_DOUBLE_EQ(1.0, values_.further_from_one).
        +  EXPECT_NONFATAL_FAILURE(EXPECT_DOUBLE_EQ(values_.further_from_one, 1.0),
        +                          "1.0");
        +}
        +
        +// Tests EXPECT_NEAR.
        +TEST_F(DoubleTest, EXPECT_NEAR) {
        +  EXPECT_NEAR(-1.0, -1.1, 0.2);
        +  EXPECT_NEAR(2.0, 3.0, 1.0);
        +  EXPECT_NONFATAL_FAILURE(EXPECT_NEAR(1.0, 1.5, 0.25),  // NOLINT
        +                          "The difference between 1.0 and 1.5 is 0.5, "
        +                          "which exceeds 0.25");
        +  // To work around a bug in gcc 2.95.0, there is intentionally no
        +  // space after the first comma in the previous statement.
        +}
        +
        +// Tests ASSERT_NEAR.
        +TEST_F(DoubleTest, ASSERT_NEAR) {
        +  ASSERT_NEAR(-1.0, -1.1, 0.2);
        +  ASSERT_NEAR(2.0, 3.0, 1.0);
        +  EXPECT_FATAL_FAILURE(ASSERT_NEAR(1.0, 1.5, 0.25),  // NOLINT
        +                       "The difference between 1.0 and 1.5 is 0.5, "
        +                       "which exceeds 0.25");
        +  // To work around a bug in gcc 2.95.0, there is intentionally no
        +  // space after the first comma in the previous statement.
        +}
        +
        +// Tests the cases where DoubleLE() should succeed.
        +TEST_F(DoubleTest, DoubleLESucceeds) {
        +  EXPECT_PRED_FORMAT2(DoubleLE, 1.0, 2.0);  // When val1 < val2,
        +  ASSERT_PRED_FORMAT2(DoubleLE, 1.0, 1.0);  // val1 == val2,
        +
        +  // or when val1 is greater than, but almost equals to, val2.
        +  EXPECT_PRED_FORMAT2(DoubleLE, values_.close_to_positive_zero, 0.0);
        +}
        +
        +// Tests the cases where DoubleLE() should fail.
        +TEST_F(DoubleTest, DoubleLEFails) {
        +  // When val1 is greater than val2 by a large margin,
        +  EXPECT_NONFATAL_FAILURE(EXPECT_PRED_FORMAT2(DoubleLE, 2.0, 1.0),
        +                          "(2.0) <= (1.0)");
        +
        +  // or by a small yet non-negligible margin,
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED_FORMAT2(DoubleLE, values_.further_from_one, 1.0);
        +  }, "(values_.further_from_one) <= (1.0)");
        +
        +#if !GTEST_OS_SYMBIAN && !defined(__BORLANDC__)
        +  // Nokia's STLport crashes if we try to output infinity or NaN.
        +  // C++Builder gives bad results for ordered comparisons involving NaNs
        +  // due to compiler bugs.
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED_FORMAT2(DoubleLE, values_.nan1, values_.infinity);
        +  }, "(values_.nan1) <= (values_.infinity)");
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_PRED_FORMAT2(DoubleLE, -values_.infinity, values_.nan1);
        +  }, " (-values_.infinity) <= (values_.nan1)");
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_PRED_FORMAT2(DoubleLE, values_.nan1, values_.nan1);
        +  }, "(values_.nan1) <= (values_.nan1)");
        +#endif  // !GTEST_OS_SYMBIAN && !defined(__BORLANDC__)
        +}
        +
        +
        +// Verifies that a test or test case whose name starts with DISABLED_ is
        +// not run.
        +
        +// A test whose name starts with DISABLED_.
        +// Should not run.
        +TEST(DisabledTest, DISABLED_TestShouldNotRun) {
        +  FAIL() << "Unexpected failure: Disabled test should not be run.";
        +}
        +
        +// A test whose name does not start with DISABLED_.
        +// Should run.
        +TEST(DisabledTest, NotDISABLED_TestShouldRun) {
        +  EXPECT_EQ(1, 1);
        +}
        +
        +// A test case whose name starts with DISABLED_.
        +// Should not run.
        +TEST(DISABLED_TestCase, TestShouldNotRun) {
        +  FAIL() << "Unexpected failure: Test in disabled test case should not be run.";
        +}
        +
        +// A test case and test whose names start with DISABLED_.
        +// Should not run.
        +TEST(DISABLED_TestCase, DISABLED_TestShouldNotRun) {
        +  FAIL() << "Unexpected failure: Test in disabled test case should not be run.";
        +}
        +
        +// Check that when all tests in a test case are disabled, SetupTestCase() and
        +// TearDownTestCase() are not called.
        +class DisabledTestsTest : public Test {
        + protected:
        +  static void SetUpTestCase() {
        +    FAIL() << "Unexpected failure: All tests disabled in test case. "
        +              "SetupTestCase() should not be called.";
        +  }
        +
        +  static void TearDownTestCase() {
        +    FAIL() << "Unexpected failure: All tests disabled in test case. "
        +              "TearDownTestCase() should not be called.";
        +  }
        +};
        +
        +TEST_F(DisabledTestsTest, DISABLED_TestShouldNotRun_1) {
        +  FAIL() << "Unexpected failure: Disabled test should not be run.";
        +}
        +
        +TEST_F(DisabledTestsTest, DISABLED_TestShouldNotRun_2) {
        +  FAIL() << "Unexpected failure: Disabled test should not be run.";
        +}
        +
        +// Tests that disabled typed tests aren't run.
        +
        +#if GTEST_HAS_TYPED_TEST
        +
        +template <typename T>
        +class TypedTest : public Test {
        +};
        +
        +typedef testing::Types<int, double> NumericTypes;
        +TYPED_TEST_CASE(TypedTest, NumericTypes);
        +
        +TYPED_TEST(TypedTest, DISABLED_ShouldNotRun) {
        +  FAIL() << "Unexpected failure: Disabled typed test should not run.";
        +}
        +
        +template <typename T>
        +class DISABLED_TypedTest : public Test {
        +};
        +
        +TYPED_TEST_CASE(DISABLED_TypedTest, NumericTypes);
        +
        +TYPED_TEST(DISABLED_TypedTest, ShouldNotRun) {
        +  FAIL() << "Unexpected failure: Disabled typed test should not run.";
        +}
        +
        +#endif  // GTEST_HAS_TYPED_TEST
        +
        +// Tests that disabled type-parameterized tests aren't run.
        +
        +#if GTEST_HAS_TYPED_TEST_P
        +
        +template <typename T>
        +class TypedTestP : public Test {
        +};
        +
        +TYPED_TEST_CASE_P(TypedTestP);
        +
        +TYPED_TEST_P(TypedTestP, DISABLED_ShouldNotRun) {
        +  FAIL() << "Unexpected failure: "
        +         << "Disabled type-parameterized test should not run.";
        +}
        +
        +REGISTER_TYPED_TEST_CASE_P(TypedTestP, DISABLED_ShouldNotRun);
        +
        +INSTANTIATE_TYPED_TEST_CASE_P(My, TypedTestP, NumericTypes);
        +
        +template <typename T>
        +class DISABLED_TypedTestP : public Test {
        +};
        +
        +TYPED_TEST_CASE_P(DISABLED_TypedTestP);
        +
        +TYPED_TEST_P(DISABLED_TypedTestP, ShouldNotRun) {
        +  FAIL() << "Unexpected failure: "
        +         << "Disabled type-parameterized test should not run.";
        +}
        +
        +REGISTER_TYPED_TEST_CASE_P(DISABLED_TypedTestP, ShouldNotRun);
        +
        +INSTANTIATE_TYPED_TEST_CASE_P(My, DISABLED_TypedTestP, NumericTypes);
        +
        +#endif  // GTEST_HAS_TYPED_TEST_P
        +
        +// Tests that assertion macros evaluate their arguments exactly once.
        +
        +class SingleEvaluationTest : public Test {
        + public:  // Must be public and not protected due to a bug in g++ 3.4.2.
        +  // This helper function is needed by the FailedASSERT_STREQ test
        +  // below.  It's public to work around C++Builder's bug with scoping local
        +  // classes.
        +  static void CompareAndIncrementCharPtrs() {
        +    ASSERT_STREQ(p1_++, p2_++);
        +  }
        +
        +  // This helper function is needed by the FailedASSERT_NE test below.  It's
        +  // public to work around C++Builder's bug with scoping local classes.
        +  static void CompareAndIncrementInts() {
        +    ASSERT_NE(a_++, b_++);
        +  }
        +
        + protected:
        +  SingleEvaluationTest() {
        +    p1_ = s1_;
        +    p2_ = s2_;
        +    a_ = 0;
        +    b_ = 0;
        +  }
        +
        +  static const char* const s1_;
        +  static const char* const s2_;
        +  static const char* p1_;
        +  static const char* p2_;
        +
        +  static int a_;
        +  static int b_;
        +};
        +
        +const char* const SingleEvaluationTest::s1_ = "01234";
        +const char* const SingleEvaluationTest::s2_ = "abcde";
        +const char* SingleEvaluationTest::p1_;
        +const char* SingleEvaluationTest::p2_;
        +int SingleEvaluationTest::a_;
        +int SingleEvaluationTest::b_;
        +
        +// Tests that when ASSERT_STREQ fails, it evaluates its arguments
        +// exactly once.
        +TEST_F(SingleEvaluationTest, FailedASSERT_STREQ) {
        +  EXPECT_FATAL_FAILURE(SingleEvaluationTest::CompareAndIncrementCharPtrs(),
        +                       "p2_++");
        +  EXPECT_EQ(s1_ + 1, p1_);
        +  EXPECT_EQ(s2_ + 1, p2_);
        +}
        +
        +// Tests that string assertion arguments are evaluated exactly once.
        +TEST_F(SingleEvaluationTest, ASSERT_STR) {
        +  // successful EXPECT_STRNE
        +  EXPECT_STRNE(p1_++, p2_++);
        +  EXPECT_EQ(s1_ + 1, p1_);
        +  EXPECT_EQ(s2_ + 1, p2_);
        +
        +  // failed EXPECT_STRCASEEQ
        +  EXPECT_NONFATAL_FAILURE(EXPECT_STRCASEEQ(p1_++, p2_++),
        +                          "ignoring case");
        +  EXPECT_EQ(s1_ + 2, p1_);
        +  EXPECT_EQ(s2_ + 2, p2_);
        +}
        +
        +// Tests that when ASSERT_NE fails, it evaluates its arguments exactly
        +// once.
        +TEST_F(SingleEvaluationTest, FailedASSERT_NE) {
        +  EXPECT_FATAL_FAILURE(SingleEvaluationTest::CompareAndIncrementInts(),
        +                       "(a_++) != (b_++)");
        +  EXPECT_EQ(1, a_);
        +  EXPECT_EQ(1, b_);
        +}
        +
        +// Tests that assertion arguments are evaluated exactly once.
        +TEST_F(SingleEvaluationTest, OtherCases) {
        +  // successful EXPECT_TRUE
        +  EXPECT_TRUE(0 == a_++);  // NOLINT
        +  EXPECT_EQ(1, a_);
        +
        +  // failed EXPECT_TRUE
        +  EXPECT_NONFATAL_FAILURE(EXPECT_TRUE(-1 == a_++), "-1 == a_++");
        +  EXPECT_EQ(2, a_);
        +
        +  // successful EXPECT_GT
        +  EXPECT_GT(a_++, b_++);
        +  EXPECT_EQ(3, a_);
        +  EXPECT_EQ(1, b_);
        +
        +  // failed EXPECT_LT
        +  EXPECT_NONFATAL_FAILURE(EXPECT_LT(a_++, b_++), "(a_++) < (b_++)");
        +  EXPECT_EQ(4, a_);
        +  EXPECT_EQ(2, b_);
        +
        +  // successful ASSERT_TRUE
        +  ASSERT_TRUE(0 < a_++);  // NOLINT
        +  EXPECT_EQ(5, a_);
        +
        +  // successful ASSERT_GT
        +  ASSERT_GT(a_++, b_++);
        +  EXPECT_EQ(6, a_);
        +  EXPECT_EQ(3, b_);
        +}
        +
        +#if GTEST_HAS_EXCEPTIONS
        +
        +void ThrowAnInteger() {
        +  throw 1;
        +}
        +
        +// Tests that assertion arguments are evaluated exactly once.
        +TEST_F(SingleEvaluationTest, ExceptionTests) {
        +  // successful EXPECT_THROW
        +  EXPECT_THROW({  // NOLINT
        +    a_++;
        +    ThrowAnInteger();
        +  }, int);
        +  EXPECT_EQ(1, a_);
        +
        +  // failed EXPECT_THROW, throws different
        +  EXPECT_NONFATAL_FAILURE(EXPECT_THROW({  // NOLINT
        +    a_++;
        +    ThrowAnInteger();
        +  }, bool), "throws a different type");
        +  EXPECT_EQ(2, a_);
        +
        +  // failed EXPECT_THROW, throws nothing
        +  EXPECT_NONFATAL_FAILURE(EXPECT_THROW(a_++, bool), "throws nothing");
        +  EXPECT_EQ(3, a_);
        +
        +  // successful EXPECT_NO_THROW
        +  EXPECT_NO_THROW(a_++);
        +  EXPECT_EQ(4, a_);
        +
        +  // failed EXPECT_NO_THROW
        +  EXPECT_NONFATAL_FAILURE(EXPECT_NO_THROW({  // NOLINT
        +    a_++;
        +    ThrowAnInteger();
        +  }), "it throws");
        +  EXPECT_EQ(5, a_);
        +
        +  // successful EXPECT_ANY_THROW
        +  EXPECT_ANY_THROW({  // NOLINT
        +    a_++;
        +    ThrowAnInteger();
        +  });
        +  EXPECT_EQ(6, a_);
        +
        +  // failed EXPECT_ANY_THROW
        +  EXPECT_NONFATAL_FAILURE(EXPECT_ANY_THROW(a_++), "it doesn't");
        +  EXPECT_EQ(7, a_);
        +}
        +
        +#endif  // GTEST_HAS_EXCEPTIONS
        +
        +// Tests {ASSERT|EXPECT}_NO_FATAL_FAILURE.
        +class NoFatalFailureTest : public Test {
        + protected:
        +  void Succeeds() {}
        +  void FailsNonFatal() {
        +    ADD_FAILURE() << "some non-fatal failure";
        +  }
        +  void Fails() {
        +    FAIL() << "some fatal failure";
        +  }
        +
        +  void DoAssertNoFatalFailureOnFails() {
        +    ASSERT_NO_FATAL_FAILURE(Fails());
        +    ADD_FAILURE() << "shold not reach here.";
        +  }
        +
        +  void DoExpectNoFatalFailureOnFails() {
        +    EXPECT_NO_FATAL_FAILURE(Fails());
        +    ADD_FAILURE() << "other failure";
        +  }
        +};
        +
        +TEST_F(NoFatalFailureTest, NoFailure) {
        +  EXPECT_NO_FATAL_FAILURE(Succeeds());
        +  ASSERT_NO_FATAL_FAILURE(Succeeds());
        +}
        +
        +TEST_F(NoFatalFailureTest, NonFatalIsNoFailure) {
        +  EXPECT_NONFATAL_FAILURE(
        +      EXPECT_NO_FATAL_FAILURE(FailsNonFatal()),
        +      "some non-fatal failure");
        +  EXPECT_NONFATAL_FAILURE(
        +      ASSERT_NO_FATAL_FAILURE(FailsNonFatal()),
        +      "some non-fatal failure");
        +}
        +
        +TEST_F(NoFatalFailureTest, AssertNoFatalFailureOnFatalFailure) {
        +  TestPartResultArray gtest_failures;
        +  {
        +    ScopedFakeTestPartResultReporter gtest_reporter(&gtest_failures);
        +    DoAssertNoFatalFailureOnFails();
        +  }
        +  ASSERT_EQ(2, gtest_failures.size());
        +  EXPECT_EQ(TestPartResult::kFatalFailure,
        +            gtest_failures.GetTestPartResult(0).type());
        +  EXPECT_EQ(TestPartResult::kFatalFailure,
        +            gtest_failures.GetTestPartResult(1).type());
        +  EXPECT_PRED_FORMAT2(testing::IsSubstring, "some fatal failure",
        +                      gtest_failures.GetTestPartResult(0).message());
        +  EXPECT_PRED_FORMAT2(testing::IsSubstring, "it does",
        +                      gtest_failures.GetTestPartResult(1).message());
        +}
        +
        +TEST_F(NoFatalFailureTest, ExpectNoFatalFailureOnFatalFailure) {
        +  TestPartResultArray gtest_failures;
        +  {
        +    ScopedFakeTestPartResultReporter gtest_reporter(&gtest_failures);
        +    DoExpectNoFatalFailureOnFails();
        +  }
        +  ASSERT_EQ(3, gtest_failures.size());
        +  EXPECT_EQ(TestPartResult::kFatalFailure,
        +            gtest_failures.GetTestPartResult(0).type());
        +  EXPECT_EQ(TestPartResult::kNonFatalFailure,
        +            gtest_failures.GetTestPartResult(1).type());
        +  EXPECT_EQ(TestPartResult::kNonFatalFailure,
        +            gtest_failures.GetTestPartResult(2).type());
        +  EXPECT_PRED_FORMAT2(testing::IsSubstring, "some fatal failure",
        +                      gtest_failures.GetTestPartResult(0).message());
        +  EXPECT_PRED_FORMAT2(testing::IsSubstring, "it does",
        +                      gtest_failures.GetTestPartResult(1).message());
        +  EXPECT_PRED_FORMAT2(testing::IsSubstring, "other failure",
        +                      gtest_failures.GetTestPartResult(2).message());
        +}
        +
        +TEST_F(NoFatalFailureTest, MessageIsStreamable) {
        +  TestPartResultArray gtest_failures;
        +  {
        +    ScopedFakeTestPartResultReporter gtest_reporter(&gtest_failures);
        +    EXPECT_NO_FATAL_FAILURE(FAIL() << "foo") << "my message";
        +  }
        +  ASSERT_EQ(2, gtest_failures.size());
        +  EXPECT_EQ(TestPartResult::kNonFatalFailure,
        +            gtest_failures.GetTestPartResult(0).type());
        +  EXPECT_EQ(TestPartResult::kNonFatalFailure,
        +            gtest_failures.GetTestPartResult(1).type());
        +  EXPECT_PRED_FORMAT2(testing::IsSubstring, "foo",
        +                      gtest_failures.GetTestPartResult(0).message());
        +  EXPECT_PRED_FORMAT2(testing::IsSubstring, "my message",
        +                      gtest_failures.GetTestPartResult(1).message());
        +}
        +
        +// Tests non-string assertions.
        +
        +std::string EditsToString(const std::vector<EditType>& edits) {
        +  std::string out;
        +  for (size_t i = 0; i < edits.size(); ++i) {
        +    static const char kEdits[] = " +-/";
        +    out.append(1, kEdits[edits[i]]);
        +  }
        +  return out;
        +}
        +
        +std::vector<size_t> CharsToIndices(const std::string& str) {
        +  std::vector<size_t> out;
        +  for (size_t i = 0; i < str.size(); ++i) {
        +    out.push_back(str[i]);
        +  }
        +  return out;
        +}
        +
        +std::vector<std::string> CharsToLines(const std::string& str) {
        +  std::vector<std::string> out;
        +  for (size_t i = 0; i < str.size(); ++i) {
        +    out.push_back(str.substr(i, 1));
        +  }
        +  return out;
        +}
        +
        +TEST(EditDistance, TestCases) {
        +  struct Case {
        +    int line;
        +    const char* left;
        +    const char* right;
        +    const char* expected_edits;
        +    const char* expected_diff;
        +  };
        +  static const Case kCases[] = {
        +      // No change.
        +      {__LINE__, "A", "A", " ", ""},
        +      {__LINE__, "ABCDE", "ABCDE", "     ", ""},
        +      // Simple adds.
        +      {__LINE__, "X", "XA", " +", "@@ +1,2 @@\n X\n+A\n"},
        +      {__LINE__, "X", "XABCD", " ++++", "@@ +1,5 @@\n X\n+A\n+B\n+C\n+D\n"},
        +      // Simple removes.
        +      {__LINE__, "XA", "X", " -", "@@ -1,2 @@\n X\n-A\n"},
        +      {__LINE__, "XABCD", "X", " ----", "@@ -1,5 @@\n X\n-A\n-B\n-C\n-D\n"},
        +      // Simple replaces.
        +      {__LINE__, "A", "a", "/", "@@ -1,1 +1,1 @@\n-A\n+a\n"},
        +      {__LINE__, "ABCD", "abcd", "////",
        +       "@@ -1,4 +1,4 @@\n-A\n-B\n-C\n-D\n+a\n+b\n+c\n+d\n"},
        +      // Path finding.
        +      {__LINE__, "ABCDEFGH", "ABXEGH1", "  -/ -  +",
        +       "@@ -1,8 +1,7 @@\n A\n B\n-C\n-D\n+X\n E\n-F\n G\n H\n+1\n"},
        +      {__LINE__, "AAAABCCCC", "ABABCDCDC", "- /   + / ",
        +       "@@ -1,9 +1,9 @@\n-A\n A\n-A\n+B\n A\n B\n C\n+D\n C\n-C\n+D\n C\n"},
        +      {__LINE__, "ABCDE", "BCDCD", "-   +/",
        +       "@@ -1,5 +1,5 @@\n-A\n B\n C\n D\n-E\n+C\n+D\n"},
        +      {__LINE__, "ABCDEFGHIJKL", "BCDCDEFGJKLJK", "- ++     --   ++",
        +       "@@ -1,4 +1,5 @@\n-A\n B\n+C\n+D\n C\n D\n"
        +       "@@ -6,7 +7,7 @@\n F\n G\n-H\n-I\n J\n K\n L\n+J\n+K\n"},
        +      {}};
        +  for (const Case* c = kCases; c->left; ++c) {
        +    EXPECT_TRUE(c->expected_edits ==
        +                EditsToString(CalculateOptimalEdits(CharsToIndices(c->left),
        +                                                    CharsToIndices(c->right))))
        +        << "Left <" << c->left << "> Right <" << c->right << "> Edits <"
        +        << EditsToString(CalculateOptimalEdits(
        +               CharsToIndices(c->left), CharsToIndices(c->right))) << ">";
        +    EXPECT_TRUE(c->expected_diff == CreateUnifiedDiff(CharsToLines(c->left),
        +                                                      CharsToLines(c->right)))
        +        << "Left <" << c->left << "> Right <" << c->right << "> Diff <"
        +        << CreateUnifiedDiff(CharsToLines(c->left), CharsToLines(c->right))
        +        << ">";
        +  }
        +}
        +
        +// Tests EqFailure(), used for implementing *EQ* assertions.
        +TEST(AssertionTest, EqFailure) {
        +  const std::string foo_val("5"), bar_val("6");
        +  const std::string msg1(
        +      EqFailure("foo", "bar", foo_val, bar_val, false)
        +      .failure_message());
        +  EXPECT_STREQ(
        +      "Value of: bar\n"
        +      "  Actual: 6\n"
        +      "Expected: foo\n"
        +      "Which is: 5",
        +      msg1.c_str());
        +
        +  const std::string msg2(
        +      EqFailure("foo", "6", foo_val, bar_val, false)
        +      .failure_message());
        +  EXPECT_STREQ(
        +      "Value of: 6\n"
        +      "Expected: foo\n"
        +      "Which is: 5",
        +      msg2.c_str());
        +
        +  const std::string msg3(
        +      EqFailure("5", "bar", foo_val, bar_val, false)
        +      .failure_message());
        +  EXPECT_STREQ(
        +      "Value of: bar\n"
        +      "  Actual: 6\n"
        +      "Expected: 5",
        +      msg3.c_str());
        +
        +  const std::string msg4(
        +      EqFailure("5", "6", foo_val, bar_val, false).failure_message());
        +  EXPECT_STREQ(
        +      "Value of: 6\n"
        +      "Expected: 5",
        +      msg4.c_str());
        +
        +  const std::string msg5(
        +      EqFailure("foo", "bar",
        +                std::string("\"x\""), std::string("\"y\""),
        +                true).failure_message());
        +  EXPECT_STREQ(
        +      "Value of: bar\n"
        +      "  Actual: \"y\"\n"
        +      "Expected: foo (ignoring case)\n"
        +      "Which is: \"x\"",
        +      msg5.c_str());
        +}
        +
        +TEST(AssertionTest, EqFailureWithDiff) {
        +  const std::string left(
        +      "1\\n2XXX\\n3\\n5\\n6\\n7\\n8\\n9\\n10\\n11\\n12XXX\\n13\\n14\\n15");
        +  const std::string right(
        +      "1\\n2\\n3\\n4\\n5\\n6\\n7\\n8\\n9\\n11\\n12\\n13\\n14");
        +  const std::string msg1(
        +      EqFailure("left", "right", left, right, false).failure_message());
        +  EXPECT_STREQ(
        +      "Value of: right\n"
        +      "  Actual: 1\\n2\\n3\\n4\\n5\\n6\\n7\\n8\\n9\\n11\\n12\\n13\\n14\n"
        +      "Expected: left\n"
        +      "Which is: "
        +      "1\\n2XXX\\n3\\n5\\n6\\n7\\n8\\n9\\n10\\n11\\n12XXX\\n13\\n14\\n15\n"
        +      "With diff:\n@@ -1,5 +1,6 @@\n 1\n-2XXX\n+2\n 3\n+4\n 5\n 6\n"
        +      "@@ -7,8 +8,6 @@\n 8\n 9\n-10\n 11\n-12XXX\n+12\n 13\n 14\n-15\n",
        +      msg1.c_str());
        +}
        +
        +// Tests AppendUserMessage(), used for implementing the *EQ* macros.
        +TEST(AssertionTest, AppendUserMessage) {
        +  const std::string foo("foo");
        +
        +  Message msg;
        +  EXPECT_STREQ("foo",
        +               AppendUserMessage(foo, msg).c_str());
        +
        +  msg << "bar";
        +  EXPECT_STREQ("foo\nbar",
        +               AppendUserMessage(foo, msg).c_str());
        +}
        +
        +#ifdef __BORLANDC__
        +// Silences warnings: "Condition is always true", "Unreachable code"
        +# pragma option push -w-ccc -w-rch
        +#endif
        +
        +// Tests ASSERT_TRUE.
        +TEST(AssertionTest, ASSERT_TRUE) {
        +  ASSERT_TRUE(2 > 1);  // NOLINT
        +  EXPECT_FATAL_FAILURE(ASSERT_TRUE(2 < 1),
        +                       "2 < 1");
        +}
        +
        +// Tests ASSERT_TRUE(predicate) for predicates returning AssertionResult.
        +TEST(AssertionTest, AssertTrueWithAssertionResult) {
        +  ASSERT_TRUE(ResultIsEven(2));
        +#ifndef __BORLANDC__
        +  // ICE's in C++Builder.
        +  EXPECT_FATAL_FAILURE(ASSERT_TRUE(ResultIsEven(3)),
        +                       "Value of: ResultIsEven(3)\n"
        +                       "  Actual: false (3 is odd)\n"
        +                       "Expected: true");
        +#endif
        +  ASSERT_TRUE(ResultIsEvenNoExplanation(2));
        +  EXPECT_FATAL_FAILURE(ASSERT_TRUE(ResultIsEvenNoExplanation(3)),
        +                       "Value of: ResultIsEvenNoExplanation(3)\n"
        +                       "  Actual: false (3 is odd)\n"
        +                       "Expected: true");
        +}
        +
        +// Tests ASSERT_FALSE.
        +TEST(AssertionTest, ASSERT_FALSE) {
        +  ASSERT_FALSE(2 < 1);  // NOLINT
        +  EXPECT_FATAL_FAILURE(ASSERT_FALSE(2 > 1),
        +                       "Value of: 2 > 1\n"
        +                       "  Actual: true\n"
        +                       "Expected: false");
        +}
        +
        +// Tests ASSERT_FALSE(predicate) for predicates returning AssertionResult.
        +TEST(AssertionTest, AssertFalseWithAssertionResult) {
        +  ASSERT_FALSE(ResultIsEven(3));
        +#ifndef __BORLANDC__
        +  // ICE's in C++Builder.
        +  EXPECT_FATAL_FAILURE(ASSERT_FALSE(ResultIsEven(2)),
        +                       "Value of: ResultIsEven(2)\n"
        +                       "  Actual: true (2 is even)\n"
        +                       "Expected: false");
        +#endif
        +  ASSERT_FALSE(ResultIsEvenNoExplanation(3));
        +  EXPECT_FATAL_FAILURE(ASSERT_FALSE(ResultIsEvenNoExplanation(2)),
        +                       "Value of: ResultIsEvenNoExplanation(2)\n"
        +                       "  Actual: true\n"
        +                       "Expected: false");
        +}
        +
        +#ifdef __BORLANDC__
        +// Restores warnings after previous "#pragma option push" supressed them
        +# pragma option pop
        +#endif
        +
        +// Tests using ASSERT_EQ on double values.  The purpose is to make
        +// sure that the specialization we did for integer and anonymous enums
        +// isn't used for double arguments.
        +TEST(ExpectTest, ASSERT_EQ_Double) {
        +  // A success.
        +  ASSERT_EQ(5.6, 5.6);
        +
        +  // A failure.
        +  EXPECT_FATAL_FAILURE(ASSERT_EQ(5.1, 5.2),
        +                       "5.1");
        +}
        +
        +// Tests ASSERT_EQ.
        +TEST(AssertionTest, ASSERT_EQ) {
        +  ASSERT_EQ(5, 2 + 3);
        +  EXPECT_FATAL_FAILURE(ASSERT_EQ(5, 2*3),
        +                       "Value of: 2*3\n"
        +                       "  Actual: 6\n"
        +                       "Expected: 5");
        +}
        +
        +// Tests ASSERT_EQ(NULL, pointer).
        +#if GTEST_CAN_COMPARE_NULL
        +TEST(AssertionTest, ASSERT_EQ_NULL) {
        +  // A success.
        +  const char* p = NULL;
        +  // Some older GCC versions may issue a spurious waring in this or the next
        +  // assertion statement. This warning should not be suppressed with
        +  // static_cast since the test verifies the ability to use bare NULL as the
        +  // expected parameter to the macro.
        +  ASSERT_EQ(NULL, p);
        +
        +  // A failure.
        +  static int n = 0;
        +  EXPECT_FATAL_FAILURE(ASSERT_EQ(NULL, &n),
        +                       "Value of: &n\n");
        +}
        +#endif  // GTEST_CAN_COMPARE_NULL
        +
        +// Tests ASSERT_EQ(0, non_pointer).  Since the literal 0 can be
        +// treated as a null pointer by the compiler, we need to make sure
        +// that ASSERT_EQ(0, non_pointer) isn't interpreted by Google Test as
        +// ASSERT_EQ(static_cast<void*>(NULL), non_pointer).
        +TEST(ExpectTest, ASSERT_EQ_0) {
        +  int n = 0;
        +
        +  // A success.
        +  ASSERT_EQ(0, n);
        +
        +  // A failure.
        +  EXPECT_FATAL_FAILURE(ASSERT_EQ(0, 5.6),
        +                       "Expected: 0");
        +}
        +
        +// Tests ASSERT_NE.
        +TEST(AssertionTest, ASSERT_NE) {
        +  ASSERT_NE(6, 7);
        +  EXPECT_FATAL_FAILURE(ASSERT_NE('a', 'a'),
        +                       "Expected: ('a') != ('a'), "
        +                       "actual: 'a' (97, 0x61) vs 'a' (97, 0x61)");
        +}
        +
        +// Tests ASSERT_LE.
        +TEST(AssertionTest, ASSERT_LE) {
        +  ASSERT_LE(2, 3);
        +  ASSERT_LE(2, 2);
        +  EXPECT_FATAL_FAILURE(ASSERT_LE(2, 0),
        +                       "Expected: (2) <= (0), actual: 2 vs 0");
        +}
        +
        +// Tests ASSERT_LT.
        +TEST(AssertionTest, ASSERT_LT) {
        +  ASSERT_LT(2, 3);
        +  EXPECT_FATAL_FAILURE(ASSERT_LT(2, 2),
        +                       "Expected: (2) < (2), actual: 2 vs 2");
        +}
        +
        +// Tests ASSERT_GE.
        +TEST(AssertionTest, ASSERT_GE) {
        +  ASSERT_GE(2, 1);
        +  ASSERT_GE(2, 2);
        +  EXPECT_FATAL_FAILURE(ASSERT_GE(2, 3),
        +                       "Expected: (2) >= (3), actual: 2 vs 3");
        +}
        +
        +// Tests ASSERT_GT.
        +TEST(AssertionTest, ASSERT_GT) {
        +  ASSERT_GT(2, 1);
        +  EXPECT_FATAL_FAILURE(ASSERT_GT(2, 2),
        +                       "Expected: (2) > (2), actual: 2 vs 2");
        +}
        +
        +#if GTEST_HAS_EXCEPTIONS
        +
        +void ThrowNothing() {}
        +
        +// Tests ASSERT_THROW.
        +TEST(AssertionTest, ASSERT_THROW) {
        +  ASSERT_THROW(ThrowAnInteger(), int);
        +
        +# ifndef __BORLANDC__
        +
        +  // ICE's in C++Builder 2007 and 2009.
        +  EXPECT_FATAL_FAILURE(
        +      ASSERT_THROW(ThrowAnInteger(), bool),
        +      "Expected: ThrowAnInteger() throws an exception of type bool.\n"
        +      "  Actual: it throws a different type.");
        +# endif
        +
        +  EXPECT_FATAL_FAILURE(
        +      ASSERT_THROW(ThrowNothing(), bool),
        +      "Expected: ThrowNothing() throws an exception of type bool.\n"
        +      "  Actual: it throws nothing.");
        +}
        +
        +// Tests ASSERT_NO_THROW.
        +TEST(AssertionTest, ASSERT_NO_THROW) {
        +  ASSERT_NO_THROW(ThrowNothing());
        +  EXPECT_FATAL_FAILURE(ASSERT_NO_THROW(ThrowAnInteger()),
        +                       "Expected: ThrowAnInteger() doesn't throw an exception."
        +                       "\n  Actual: it throws.");
        +}
        +
        +// Tests ASSERT_ANY_THROW.
        +TEST(AssertionTest, ASSERT_ANY_THROW) {
        +  ASSERT_ANY_THROW(ThrowAnInteger());
        +  EXPECT_FATAL_FAILURE(
        +      ASSERT_ANY_THROW(ThrowNothing()),
        +      "Expected: ThrowNothing() throws an exception.\n"
        +      "  Actual: it doesn't.");
        +}
        +
        +#endif  // GTEST_HAS_EXCEPTIONS
        +
        +// Makes sure we deal with the precedence of <<.  This test should
        +// compile.
        +TEST(AssertionTest, AssertPrecedence) {
        +  ASSERT_EQ(1 < 2, true);
        +  bool false_value = false;
        +  ASSERT_EQ(true && false_value, false);
        +}
        +
        +// A subroutine used by the following test.
        +void TestEq1(int x) {
        +  ASSERT_EQ(1, x);
        +}
        +
        +// Tests calling a test subroutine that's not part of a fixture.
        +TEST(AssertionTest, NonFixtureSubroutine) {
        +  EXPECT_FATAL_FAILURE(TestEq1(2),
        +                       "Value of: x");
        +}
        +
        +// An uncopyable class.
        +class Uncopyable {
        + public:
        +  explicit Uncopyable(int a_value) : value_(a_value) {}
        +
        +  int value() const { return value_; }
        +  bool operator==(const Uncopyable& rhs) const {
        +    return value() == rhs.value();
        +  }
        + private:
        +  // This constructor deliberately has no implementation, as we don't
        +  // want this class to be copyable.
        +  Uncopyable(const Uncopyable&);  // NOLINT
        +
        +  int value_;
        +};
        +
        +::std::ostream& operator<<(::std::ostream& os, const Uncopyable& value) {
        +  return os << value.value();
        +}
        +
        +
        +bool IsPositiveUncopyable(const Uncopyable& x) {
        +  return x.value() > 0;
        +}
        +
        +// A subroutine used by the following test.
        +void TestAssertNonPositive() {
        +  Uncopyable y(-1);
        +  ASSERT_PRED1(IsPositiveUncopyable, y);
        +}
        +// A subroutine used by the following test.
        +void TestAssertEqualsUncopyable() {
        +  Uncopyable x(5);
        +  Uncopyable y(-1);
        +  ASSERT_EQ(x, y);
        +}
        +
        +// Tests that uncopyable objects can be used in assertions.
        +TEST(AssertionTest, AssertWorksWithUncopyableObject) {
        +  Uncopyable x(5);
        +  ASSERT_PRED1(IsPositiveUncopyable, x);
        +  ASSERT_EQ(x, x);
        +  EXPECT_FATAL_FAILURE(TestAssertNonPositive(),
        +    "IsPositiveUncopyable(y) evaluates to false, where\ny evaluates to -1");
        +  EXPECT_FATAL_FAILURE(TestAssertEqualsUncopyable(),
        +    "Value of: y\n  Actual: -1\nExpected: x\nWhich is: 5");
        +}
        +
        +// Tests that uncopyable objects can be used in expects.
        +TEST(AssertionTest, ExpectWorksWithUncopyableObject) {
        +  Uncopyable x(5);
        +  EXPECT_PRED1(IsPositiveUncopyable, x);
        +  Uncopyable y(-1);
        +  EXPECT_NONFATAL_FAILURE(EXPECT_PRED1(IsPositiveUncopyable, y),
        +    "IsPositiveUncopyable(y) evaluates to false, where\ny evaluates to -1");
        +  EXPECT_EQ(x, x);
        +  EXPECT_NONFATAL_FAILURE(EXPECT_EQ(x, y),
        +    "Value of: y\n  Actual: -1\nExpected: x\nWhich is: 5");
        +}
        +
        +enum NamedEnum {
        +  kE1 = 0,
        +  kE2 = 1
        +};
        +
        +TEST(AssertionTest, NamedEnum) {
        +  EXPECT_EQ(kE1, kE1);
        +  EXPECT_LT(kE1, kE2);
        +  EXPECT_NONFATAL_FAILURE(EXPECT_EQ(kE1, kE2), "Which is: 0");
        +  EXPECT_NONFATAL_FAILURE(EXPECT_EQ(kE1, kE2), "Actual: 1");
        +}
        +
        +// The version of gcc used in XCode 2.2 has a bug and doesn't allow
        +// anonymous enums in assertions.  Therefore the following test is not
        +// done on Mac.
        +// Sun Studio and HP aCC also reject this code.
        +#if !GTEST_OS_MAC && !defined(__SUNPRO_CC) && !defined(__HP_aCC)
        +
        +// Tests using assertions with anonymous enums.
        +enum {
        +  kCaseA = -1,
        +
        +# if GTEST_OS_LINUX
        +
        +  // We want to test the case where the size of the anonymous enum is
        +  // larger than sizeof(int), to make sure our implementation of the
        +  // assertions doesn't truncate the enums.  However, MSVC
        +  // (incorrectly) doesn't allow an enum value to exceed the range of
        +  // an int, so this has to be conditionally compiled.
        +  //
        +  // On Linux, kCaseB and kCaseA have the same value when truncated to
        +  // int size.  We want to test whether this will confuse the
        +  // assertions.
        +  kCaseB = testing::internal::kMaxBiggestInt,
        +
        +# else
        +
        +  kCaseB = INT_MAX,
        +
        +# endif  // GTEST_OS_LINUX
        +
        +  kCaseC = 42
        +};
        +
        +TEST(AssertionTest, AnonymousEnum) {
        +# if GTEST_OS_LINUX
        +
        +  EXPECT_EQ(static_cast<int>(kCaseA), static_cast<int>(kCaseB));
        +
        +# endif  // GTEST_OS_LINUX
        +
        +  EXPECT_EQ(kCaseA, kCaseA);
        +  EXPECT_NE(kCaseA, kCaseB);
        +  EXPECT_LT(kCaseA, kCaseB);
        +  EXPECT_LE(kCaseA, kCaseB);
        +  EXPECT_GT(kCaseB, kCaseA);
        +  EXPECT_GE(kCaseA, kCaseA);
        +  EXPECT_NONFATAL_FAILURE(EXPECT_GE(kCaseA, kCaseB),
        +                          "(kCaseA) >= (kCaseB)");
        +  EXPECT_NONFATAL_FAILURE(EXPECT_GE(kCaseA, kCaseC),
        +                          "-1 vs 42");
        +
        +  ASSERT_EQ(kCaseA, kCaseA);
        +  ASSERT_NE(kCaseA, kCaseB);
        +  ASSERT_LT(kCaseA, kCaseB);
        +  ASSERT_LE(kCaseA, kCaseB);
        +  ASSERT_GT(kCaseB, kCaseA);
        +  ASSERT_GE(kCaseA, kCaseA);
        +
        +# ifndef __BORLANDC__
        +
        +  // ICE's in C++Builder.
        +  EXPECT_FATAL_FAILURE(ASSERT_EQ(kCaseA, kCaseB),
        +                       "Value of: kCaseB");
        +  EXPECT_FATAL_FAILURE(ASSERT_EQ(kCaseA, kCaseC),
        +                       "Actual: 42");
        +# endif
        +
        +  EXPECT_FATAL_FAILURE(ASSERT_EQ(kCaseA, kCaseC),
        +                       "Which is: -1");
        +}
        +
        +#endif  // !GTEST_OS_MAC && !defined(__SUNPRO_CC)
        +
        +#if GTEST_OS_WINDOWS
        +
        +static HRESULT UnexpectedHRESULTFailure() {
        +  return E_UNEXPECTED;
        +}
        +
        +static HRESULT OkHRESULTSuccess() {
        +  return S_OK;
        +}
        +
        +static HRESULT FalseHRESULTSuccess() {
        +  return S_FALSE;
        +}
        +
        +// HRESULT assertion tests test both zero and non-zero
        +// success codes as well as failure message for each.
        +//
        +// Windows CE doesn't support message texts.
        +TEST(HRESULTAssertionTest, EXPECT_HRESULT_SUCCEEDED) {
        +  EXPECT_HRESULT_SUCCEEDED(S_OK);
        +  EXPECT_HRESULT_SUCCEEDED(S_FALSE);
        +
        +  EXPECT_NONFATAL_FAILURE(EXPECT_HRESULT_SUCCEEDED(UnexpectedHRESULTFailure()),
        +    "Expected: (UnexpectedHRESULTFailure()) succeeds.\n"
        +    "  Actual: 0x8000FFFF");
        +}
        +
        +TEST(HRESULTAssertionTest, ASSERT_HRESULT_SUCCEEDED) {
        +  ASSERT_HRESULT_SUCCEEDED(S_OK);
        +  ASSERT_HRESULT_SUCCEEDED(S_FALSE);
        +
        +  EXPECT_FATAL_FAILURE(ASSERT_HRESULT_SUCCEEDED(UnexpectedHRESULTFailure()),
        +    "Expected: (UnexpectedHRESULTFailure()) succeeds.\n"
        +    "  Actual: 0x8000FFFF");
        +}
        +
        +TEST(HRESULTAssertionTest, EXPECT_HRESULT_FAILED) {
        +  EXPECT_HRESULT_FAILED(E_UNEXPECTED);
        +
        +  EXPECT_NONFATAL_FAILURE(EXPECT_HRESULT_FAILED(OkHRESULTSuccess()),
        +    "Expected: (OkHRESULTSuccess()) fails.\n"
        +    "  Actual: 0x0");
        +  EXPECT_NONFATAL_FAILURE(EXPECT_HRESULT_FAILED(FalseHRESULTSuccess()),
        +    "Expected: (FalseHRESULTSuccess()) fails.\n"
        +    "  Actual: 0x1");
        +}
        +
        +TEST(HRESULTAssertionTest, ASSERT_HRESULT_FAILED) {
        +  ASSERT_HRESULT_FAILED(E_UNEXPECTED);
        +
        +# ifndef __BORLANDC__
        +
        +  // ICE's in C++Builder 2007 and 2009.
        +  EXPECT_FATAL_FAILURE(ASSERT_HRESULT_FAILED(OkHRESULTSuccess()),
        +    "Expected: (OkHRESULTSuccess()) fails.\n"
        +    "  Actual: 0x0");
        +# endif
        +
        +  EXPECT_FATAL_FAILURE(ASSERT_HRESULT_FAILED(FalseHRESULTSuccess()),
        +    "Expected: (FalseHRESULTSuccess()) fails.\n"
        +    "  Actual: 0x1");
        +}
        +
        +// Tests that streaming to the HRESULT macros works.
        +TEST(HRESULTAssertionTest, Streaming) {
        +  EXPECT_HRESULT_SUCCEEDED(S_OK) << "unexpected failure";
        +  ASSERT_HRESULT_SUCCEEDED(S_OK) << "unexpected failure";
        +  EXPECT_HRESULT_FAILED(E_UNEXPECTED) << "unexpected failure";
        +  ASSERT_HRESULT_FAILED(E_UNEXPECTED) << "unexpected failure";
        +
        +  EXPECT_NONFATAL_FAILURE(
        +      EXPECT_HRESULT_SUCCEEDED(E_UNEXPECTED) << "expected failure",
        +      "expected failure");
        +
        +# ifndef __BORLANDC__
        +
        +  // ICE's in C++Builder 2007 and 2009.
        +  EXPECT_FATAL_FAILURE(
        +      ASSERT_HRESULT_SUCCEEDED(E_UNEXPECTED) << "expected failure",
        +      "expected failure");
        +# endif
        +
        +  EXPECT_NONFATAL_FAILURE(
        +      EXPECT_HRESULT_FAILED(S_OK) << "expected failure",
        +      "expected failure");
        +
        +  EXPECT_FATAL_FAILURE(
        +      ASSERT_HRESULT_FAILED(S_OK) << "expected failure",
        +      "expected failure");
        +}
        +
        +#endif  // GTEST_OS_WINDOWS
        +
        +#ifdef __BORLANDC__
        +// Silences warnings: "Condition is always true", "Unreachable code"
        +# pragma option push -w-ccc -w-rch
        +#endif
        +
        +// Tests that the assertion macros behave like single statements.
        +TEST(AssertionSyntaxTest, BasicAssertionsBehavesLikeSingleStatement) {
        +  if (AlwaysFalse())
        +    ASSERT_TRUE(false) << "This should never be executed; "
        +                          "It's a compilation test only.";
        +
        +  if (AlwaysTrue())
        +    EXPECT_FALSE(false);
        +  else
        +    ;  // NOLINT
        +
        +  if (AlwaysFalse())
        +    ASSERT_LT(1, 3);
        +
        +  if (AlwaysFalse())
        +    ;  // NOLINT
        +  else
        +    EXPECT_GT(3, 2) << "";
        +}
        +
        +#if GTEST_HAS_EXCEPTIONS
        +// Tests that the compiler will not complain about unreachable code in the
        +// EXPECT_THROW/EXPECT_ANY_THROW/EXPECT_NO_THROW macros.
        +TEST(ExpectThrowTest, DoesNotGenerateUnreachableCodeWarning) {
        +  int n = 0;
        +
        +  EXPECT_THROW(throw 1, int);
        +  EXPECT_NONFATAL_FAILURE(EXPECT_THROW(n++, int), "");
        +  EXPECT_NONFATAL_FAILURE(EXPECT_THROW(throw 1, const char*), "");
        +  EXPECT_NO_THROW(n++);
        +  EXPECT_NONFATAL_FAILURE(EXPECT_NO_THROW(throw 1), "");
        +  EXPECT_ANY_THROW(throw 1);
        +  EXPECT_NONFATAL_FAILURE(EXPECT_ANY_THROW(n++), "");
        +}
        +
        +TEST(AssertionSyntaxTest, ExceptionAssertionsBehavesLikeSingleStatement) {
        +  if (AlwaysFalse())
        +    EXPECT_THROW(ThrowNothing(), bool);
        +
        +  if (AlwaysTrue())
        +    EXPECT_THROW(ThrowAnInteger(), int);
        +  else
        +    ;  // NOLINT
        +
        +  if (AlwaysFalse())
        +    EXPECT_NO_THROW(ThrowAnInteger());
        +
        +  if (AlwaysTrue())
        +    EXPECT_NO_THROW(ThrowNothing());
        +  else
        +    ;  // NOLINT
        +
        +  if (AlwaysFalse())
        +    EXPECT_ANY_THROW(ThrowNothing());
        +
        +  if (AlwaysTrue())
        +    EXPECT_ANY_THROW(ThrowAnInteger());
        +  else
        +    ;  // NOLINT
        +}
        +#endif  // GTEST_HAS_EXCEPTIONS
        +
        +TEST(AssertionSyntaxTest, NoFatalFailureAssertionsBehavesLikeSingleStatement) {
        +  if (AlwaysFalse())
        +    EXPECT_NO_FATAL_FAILURE(FAIL()) << "This should never be executed. "
        +                                    << "It's a compilation test only.";
        +  else
        +    ;  // NOLINT
        +
        +  if (AlwaysFalse())
        +    ASSERT_NO_FATAL_FAILURE(FAIL()) << "";
        +  else
        +    ;  // NOLINT
        +
        +  if (AlwaysTrue())
        +    EXPECT_NO_FATAL_FAILURE(SUCCEED());
        +  else
        +    ;  // NOLINT
        +
        +  if (AlwaysFalse())
        +    ;  // NOLINT
        +  else
        +    ASSERT_NO_FATAL_FAILURE(SUCCEED());
        +}
        +
        +// Tests that the assertion macros work well with switch statements.
        +TEST(AssertionSyntaxTest, WorksWithSwitch) {
        +  switch (0) {
        +    case 1:
        +      break;
        +    default:
        +      ASSERT_TRUE(true);
        +  }
        +
        +  switch (0)
        +    case 0:
        +      EXPECT_FALSE(false) << "EXPECT_FALSE failed in switch case";
        +
        +  // Binary assertions are implemented using a different code path
        +  // than the Boolean assertions.  Hence we test them separately.
        +  switch (0) {
        +    case 1:
        +    default:
        +      ASSERT_EQ(1, 1) << "ASSERT_EQ failed in default switch handler";
        +  }
        +
        +  switch (0)
        +    case 0:
        +      EXPECT_NE(1, 2);
        +}
        +
        +#if GTEST_HAS_EXCEPTIONS
        +
        +void ThrowAString() {
        +    throw "std::string";
        +}
        +
        +// Test that the exception assertion macros compile and work with const
        +// type qualifier.
        +TEST(AssertionSyntaxTest, WorksWithConst) {
        +    ASSERT_THROW(ThrowAString(), const char*);
        +
        +    EXPECT_THROW(ThrowAString(), const char*);
        +}
        +
        +#endif  // GTEST_HAS_EXCEPTIONS
        +
        +}  // namespace
        +
        +namespace testing {
        +
        +// Tests that Google Test tracks SUCCEED*.
        +TEST(SuccessfulAssertionTest, SUCCEED) {
        +  SUCCEED();
        +  SUCCEED() << "OK";
        +  EXPECT_EQ(2, GetUnitTestImpl()->current_test_result()->total_part_count());
        +}
        +
        +// Tests that Google Test doesn't track successful EXPECT_*.
        +TEST(SuccessfulAssertionTest, EXPECT) {
        +  EXPECT_TRUE(true);
        +  EXPECT_EQ(0, GetUnitTestImpl()->current_test_result()->total_part_count());
        +}
        +
        +// Tests that Google Test doesn't track successful EXPECT_STR*.
        +TEST(SuccessfulAssertionTest, EXPECT_STR) {
        +  EXPECT_STREQ("", "");
        +  EXPECT_EQ(0, GetUnitTestImpl()->current_test_result()->total_part_count());
        +}
        +
        +// Tests that Google Test doesn't track successful ASSERT_*.
        +TEST(SuccessfulAssertionTest, ASSERT) {
        +  ASSERT_TRUE(true);
        +  EXPECT_EQ(0, GetUnitTestImpl()->current_test_result()->total_part_count());
        +}
        +
        +// Tests that Google Test doesn't track successful ASSERT_STR*.
        +TEST(SuccessfulAssertionTest, ASSERT_STR) {
        +  ASSERT_STREQ("", "");
        +  EXPECT_EQ(0, GetUnitTestImpl()->current_test_result()->total_part_count());
        +}
        +
        +}  // namespace testing
        +
        +namespace {
        +
        +// Tests the message streaming variation of assertions.
        +
        +TEST(AssertionWithMessageTest, EXPECT) {
        +  EXPECT_EQ(1, 1) << "This should succeed.";
        +  EXPECT_NONFATAL_FAILURE(EXPECT_NE(1, 1) << "Expected failure #1.",
        +                          "Expected failure #1");
        +  EXPECT_LE(1, 2) << "This should succeed.";
        +  EXPECT_NONFATAL_FAILURE(EXPECT_LT(1, 0) << "Expected failure #2.",
        +                          "Expected failure #2.");
        +  EXPECT_GE(1, 0) << "This should succeed.";
        +  EXPECT_NONFATAL_FAILURE(EXPECT_GT(1, 2) << "Expected failure #3.",
        +                          "Expected failure #3.");
        +
        +  EXPECT_STREQ("1", "1") << "This should succeed.";
        +  EXPECT_NONFATAL_FAILURE(EXPECT_STRNE("1", "1") << "Expected failure #4.",
        +                          "Expected failure #4.");
        +  EXPECT_STRCASEEQ("a", "A") << "This should succeed.";
        +  EXPECT_NONFATAL_FAILURE(EXPECT_STRCASENE("a", "A") << "Expected failure #5.",
        +                          "Expected failure #5.");
        +
        +  EXPECT_FLOAT_EQ(1, 1) << "This should succeed.";
        +  EXPECT_NONFATAL_FAILURE(EXPECT_DOUBLE_EQ(1, 1.2) << "Expected failure #6.",
        +                          "Expected failure #6.");
        +  EXPECT_NEAR(1, 1.1, 0.2) << "This should succeed.";
        +}
        +
        +TEST(AssertionWithMessageTest, ASSERT) {
        +  ASSERT_EQ(1, 1) << "This should succeed.";
        +  ASSERT_NE(1, 2) << "This should succeed.";
        +  ASSERT_LE(1, 2) << "This should succeed.";
        +  ASSERT_LT(1, 2) << "This should succeed.";
        +  ASSERT_GE(1, 0) << "This should succeed.";
        +  EXPECT_FATAL_FAILURE(ASSERT_GT(1, 2) << "Expected failure.",
        +                       "Expected failure.");
        +}
        +
        +TEST(AssertionWithMessageTest, ASSERT_STR) {
        +  ASSERT_STREQ("1", "1") << "This should succeed.";
        +  ASSERT_STRNE("1", "2") << "This should succeed.";
        +  ASSERT_STRCASEEQ("a", "A") << "This should succeed.";
        +  EXPECT_FATAL_FAILURE(ASSERT_STRCASENE("a", "A") << "Expected failure.",
        +                       "Expected failure.");
        +}
        +
        +TEST(AssertionWithMessageTest, ASSERT_FLOATING) {
        +  ASSERT_FLOAT_EQ(1, 1) << "This should succeed.";
        +  ASSERT_DOUBLE_EQ(1, 1) << "This should succeed.";
        +  EXPECT_FATAL_FAILURE(ASSERT_NEAR(1,1.2, 0.1) << "Expect failure.",  // NOLINT
        +                       "Expect failure.");
        +  // To work around a bug in gcc 2.95.0, there is intentionally no
        +  // space after the first comma in the previous statement.
        +}
        +
        +// Tests using ASSERT_FALSE with a streamed message.
        +TEST(AssertionWithMessageTest, ASSERT_FALSE) {
        +  ASSERT_FALSE(false) << "This shouldn't fail.";
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_FALSE(true) << "Expected failure: " << 2 << " > " << 1
        +                       << " evaluates to " << true;
        +  }, "Expected failure");
        +}
        +
        +// Tests using FAIL with a streamed message.
        +TEST(AssertionWithMessageTest, FAIL) {
        +  EXPECT_FATAL_FAILURE(FAIL() << 0,
        +                       "0");
        +}
        +
        +// Tests using SUCCEED with a streamed message.
        +TEST(AssertionWithMessageTest, SUCCEED) {
        +  SUCCEED() << "Success == " << 1;
        +}
        +
        +// Tests using ASSERT_TRUE with a streamed message.
        +TEST(AssertionWithMessageTest, ASSERT_TRUE) {
        +  ASSERT_TRUE(true) << "This should succeed.";
        +  ASSERT_TRUE(true) << true;
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_TRUE(false) << static_cast<const char *>(NULL)
        +                       << static_cast<char *>(NULL);
        +  }, "(null)(null)");
        +}
        +
        +#if GTEST_OS_WINDOWS
        +// Tests using wide strings in assertion messages.
        +TEST(AssertionWithMessageTest, WideStringMessage) {
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_TRUE(false) << L"This failure is expected.\x8119";
        +  }, "This failure is expected.");
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_EQ(1, 2) << "This failure is "
        +                    << L"expected too.\x8120";
        +  }, "This failure is expected too.");
        +}
        +#endif  // GTEST_OS_WINDOWS
        +
        +// Tests EXPECT_TRUE.
        +TEST(ExpectTest, EXPECT_TRUE) {
        +  EXPECT_TRUE(true) << "Intentional success";
        +  EXPECT_NONFATAL_FAILURE(EXPECT_TRUE(false) << "Intentional failure #1.",
        +                          "Intentional failure #1.");
        +  EXPECT_NONFATAL_FAILURE(EXPECT_TRUE(false) << "Intentional failure #2.",
        +                          "Intentional failure #2.");
        +  EXPECT_TRUE(2 > 1);  // NOLINT
        +  EXPECT_NONFATAL_FAILURE(EXPECT_TRUE(2 < 1),
        +                          "Value of: 2 < 1\n"
        +                          "  Actual: false\n"
        +                          "Expected: true");
        +  EXPECT_NONFATAL_FAILURE(EXPECT_TRUE(2 > 3),
        +                          "2 > 3");
        +}
        +
        +// Tests EXPECT_TRUE(predicate) for predicates returning AssertionResult.
        +TEST(ExpectTest, ExpectTrueWithAssertionResult) {
        +  EXPECT_TRUE(ResultIsEven(2));
        +  EXPECT_NONFATAL_FAILURE(EXPECT_TRUE(ResultIsEven(3)),
        +                          "Value of: ResultIsEven(3)\n"
        +                          "  Actual: false (3 is odd)\n"
        +                          "Expected: true");
        +  EXPECT_TRUE(ResultIsEvenNoExplanation(2));
        +  EXPECT_NONFATAL_FAILURE(EXPECT_TRUE(ResultIsEvenNoExplanation(3)),
        +                          "Value of: ResultIsEvenNoExplanation(3)\n"
        +                          "  Actual: false (3 is odd)\n"
        +                          "Expected: true");
        +}
        +
        +// Tests EXPECT_FALSE with a streamed message.
        +TEST(ExpectTest, EXPECT_FALSE) {
        +  EXPECT_FALSE(2 < 1);  // NOLINT
        +  EXPECT_FALSE(false) << "Intentional success";
        +  EXPECT_NONFATAL_FAILURE(EXPECT_FALSE(true) << "Intentional failure #1.",
        +                          "Intentional failure #1.");
        +  EXPECT_NONFATAL_FAILURE(EXPECT_FALSE(true) << "Intentional failure #2.",
        +                          "Intentional failure #2.");
        +  EXPECT_NONFATAL_FAILURE(EXPECT_FALSE(2 > 1),
        +                          "Value of: 2 > 1\n"
        +                          "  Actual: true\n"
        +                          "Expected: false");
        +  EXPECT_NONFATAL_FAILURE(EXPECT_FALSE(2 < 3),
        +                          "2 < 3");
        +}
        +
        +// Tests EXPECT_FALSE(predicate) for predicates returning AssertionResult.
        +TEST(ExpectTest, ExpectFalseWithAssertionResult) {
        +  EXPECT_FALSE(ResultIsEven(3));
        +  EXPECT_NONFATAL_FAILURE(EXPECT_FALSE(ResultIsEven(2)),
        +                          "Value of: ResultIsEven(2)\n"
        +                          "  Actual: true (2 is even)\n"
        +                          "Expected: false");
        +  EXPECT_FALSE(ResultIsEvenNoExplanation(3));
        +  EXPECT_NONFATAL_FAILURE(EXPECT_FALSE(ResultIsEvenNoExplanation(2)),
        +                          "Value of: ResultIsEvenNoExplanation(2)\n"
        +                          "  Actual: true\n"
        +                          "Expected: false");
        +}
        +
        +#ifdef __BORLANDC__
        +// Restores warnings after previous "#pragma option push" supressed them
        +# pragma option pop
        +#endif
        +
        +// Tests EXPECT_EQ.
        +TEST(ExpectTest, EXPECT_EQ) {
        +  EXPECT_EQ(5, 2 + 3);
        +  EXPECT_NONFATAL_FAILURE(EXPECT_EQ(5, 2*3),
        +                          "Value of: 2*3\n"
        +                          "  Actual: 6\n"
        +                          "Expected: 5");
        +  EXPECT_NONFATAL_FAILURE(EXPECT_EQ(5, 2 - 3),
        +                          "2 - 3");
        +}
        +
        +// Tests using EXPECT_EQ on double values.  The purpose is to make
        +// sure that the specialization we did for integer and anonymous enums
        +// isn't used for double arguments.
        +TEST(ExpectTest, EXPECT_EQ_Double) {
        +  // A success.
        +  EXPECT_EQ(5.6, 5.6);
        +
        +  // A failure.
        +  EXPECT_NONFATAL_FAILURE(EXPECT_EQ(5.1, 5.2),
        +                          "5.1");
        +}
        +
        +#if GTEST_CAN_COMPARE_NULL
        +// Tests EXPECT_EQ(NULL, pointer).
        +TEST(ExpectTest, EXPECT_EQ_NULL) {
        +  // A success.
        +  const char* p = NULL;
        +  // Some older GCC versions may issue a spurious warning in this or the next
        +  // assertion statement. This warning should not be suppressed with
        +  // static_cast since the test verifies the ability to use bare NULL as the
        +  // expected parameter to the macro.
        +  EXPECT_EQ(NULL, p);
        +
        +  // A failure.
        +  int n = 0;
        +  EXPECT_NONFATAL_FAILURE(EXPECT_EQ(NULL, &n),
        +                          "Value of: &n\n");
        +}
        +#endif  // GTEST_CAN_COMPARE_NULL
        +
        +// Tests EXPECT_EQ(0, non_pointer).  Since the literal 0 can be
        +// treated as a null pointer by the compiler, we need to make sure
        +// that EXPECT_EQ(0, non_pointer) isn't interpreted by Google Test as
        +// EXPECT_EQ(static_cast<void*>(NULL), non_pointer).
        +TEST(ExpectTest, EXPECT_EQ_0) {
        +  int n = 0;
        +
        +  // A success.
        +  EXPECT_EQ(0, n);
        +
        +  // A failure.
        +  EXPECT_NONFATAL_FAILURE(EXPECT_EQ(0, 5.6),
        +                          "Expected: 0");
        +}
        +
        +// Tests EXPECT_NE.
        +TEST(ExpectTest, EXPECT_NE) {
        +  EXPECT_NE(6, 7);
        +
        +  EXPECT_NONFATAL_FAILURE(EXPECT_NE('a', 'a'),
        +                          "Expected: ('a') != ('a'), "
        +                          "actual: 'a' (97, 0x61) vs 'a' (97, 0x61)");
        +  EXPECT_NONFATAL_FAILURE(EXPECT_NE(2, 2),
        +                          "2");
        +  char* const p0 = NULL;
        +  EXPECT_NONFATAL_FAILURE(EXPECT_NE(p0, p0),
        +                          "p0");
        +  // Only way to get the Nokia compiler to compile the cast
        +  // is to have a separate void* variable first. Putting
        +  // the two casts on the same line doesn't work, neither does
        +  // a direct C-style to char*.
        +  void* pv1 = (void*)0x1234;  // NOLINT
        +  char* const p1 = reinterpret_cast<char*>(pv1);
        +  EXPECT_NONFATAL_FAILURE(EXPECT_NE(p1, p1),
        +                          "p1");
        +}
        +
        +// Tests EXPECT_LE.
        +TEST(ExpectTest, EXPECT_LE) {
        +  EXPECT_LE(2, 3);
        +  EXPECT_LE(2, 2);
        +  EXPECT_NONFATAL_FAILURE(EXPECT_LE(2, 0),
        +                          "Expected: (2) <= (0), actual: 2 vs 0");
        +  EXPECT_NONFATAL_FAILURE(EXPECT_LE(1.1, 0.9),
        +                          "(1.1) <= (0.9)");
        +}
        +
        +// Tests EXPECT_LT.
        +TEST(ExpectTest, EXPECT_LT) {
        +  EXPECT_LT(2, 3);
        +  EXPECT_NONFATAL_FAILURE(EXPECT_LT(2, 2),
        +                          "Expected: (2) < (2), actual: 2 vs 2");
        +  EXPECT_NONFATAL_FAILURE(EXPECT_LT(2, 1),
        +                          "(2) < (1)");
        +}
        +
        +// Tests EXPECT_GE.
        +TEST(ExpectTest, EXPECT_GE) {
        +  EXPECT_GE(2, 1);
        +  EXPECT_GE(2, 2);
        +  EXPECT_NONFATAL_FAILURE(EXPECT_GE(2, 3),
        +                          "Expected: (2) >= (3), actual: 2 vs 3");
        +  EXPECT_NONFATAL_FAILURE(EXPECT_GE(0.9, 1.1),
        +                          "(0.9) >= (1.1)");
        +}
        +
        +// Tests EXPECT_GT.
        +TEST(ExpectTest, EXPECT_GT) {
        +  EXPECT_GT(2, 1);
        +  EXPECT_NONFATAL_FAILURE(EXPECT_GT(2, 2),
        +                          "Expected: (2) > (2), actual: 2 vs 2");
        +  EXPECT_NONFATAL_FAILURE(EXPECT_GT(2, 3),
        +                          "(2) > (3)");
        +}
        +
        +#if GTEST_HAS_EXCEPTIONS
        +
        +// Tests EXPECT_THROW.
        +TEST(ExpectTest, EXPECT_THROW) {
        +  EXPECT_THROW(ThrowAnInteger(), int);
        +  EXPECT_NONFATAL_FAILURE(EXPECT_THROW(ThrowAnInteger(), bool),
        +                          "Expected: ThrowAnInteger() throws an exception of "
        +                          "type bool.\n  Actual: it throws a different type.");
        +  EXPECT_NONFATAL_FAILURE(
        +      EXPECT_THROW(ThrowNothing(), bool),
        +      "Expected: ThrowNothing() throws an exception of type bool.\n"
        +      "  Actual: it throws nothing.");
        +}
        +
        +// Tests EXPECT_NO_THROW.
        +TEST(ExpectTest, EXPECT_NO_THROW) {
        +  EXPECT_NO_THROW(ThrowNothing());
        +  EXPECT_NONFATAL_FAILURE(EXPECT_NO_THROW(ThrowAnInteger()),
        +                          "Expected: ThrowAnInteger() doesn't throw an "
        +                          "exception.\n  Actual: it throws.");
        +}
        +
        +// Tests EXPECT_ANY_THROW.
        +TEST(ExpectTest, EXPECT_ANY_THROW) {
        +  EXPECT_ANY_THROW(ThrowAnInteger());
        +  EXPECT_NONFATAL_FAILURE(
        +      EXPECT_ANY_THROW(ThrowNothing()),
        +      "Expected: ThrowNothing() throws an exception.\n"
        +      "  Actual: it doesn't.");
        +}
        +
        +#endif  // GTEST_HAS_EXCEPTIONS
        +
        +// Make sure we deal with the precedence of <<.
        +TEST(ExpectTest, ExpectPrecedence) {
        +  EXPECT_EQ(1 < 2, true);
        +  EXPECT_NONFATAL_FAILURE(EXPECT_EQ(true, true && false),
        +                          "Value of: true && false");
        +}
        +
        +
        +// Tests the StreamableToString() function.
        +
        +// Tests using StreamableToString() on a scalar.
        +TEST(StreamableToStringTest, Scalar) {
        +  EXPECT_STREQ("5", StreamableToString(5).c_str());
        +}
        +
        +// Tests using StreamableToString() on a non-char pointer.
        +TEST(StreamableToStringTest, Pointer) {
        +  int n = 0;
        +  int* p = &n;
        +  EXPECT_STRNE("(null)", StreamableToString(p).c_str());
        +}
        +
        +// Tests using StreamableToString() on a NULL non-char pointer.
        +TEST(StreamableToStringTest, NullPointer) {
        +  int* p = NULL;
        +  EXPECT_STREQ("(null)", StreamableToString(p).c_str());
        +}
        +
        +// Tests using StreamableToString() on a C string.
        +TEST(StreamableToStringTest, CString) {
        +  EXPECT_STREQ("Foo", StreamableToString("Foo").c_str());
        +}
        +
        +// Tests using StreamableToString() on a NULL C string.
        +TEST(StreamableToStringTest, NullCString) {
        +  char* p = NULL;
        +  EXPECT_STREQ("(null)", StreamableToString(p).c_str());
        +}
        +
        +// Tests using streamable values as assertion messages.
        +
        +// Tests using std::string as an assertion message.
        +TEST(StreamableTest, string) {
        +  static const std::string str(
        +      "This failure message is a std::string, and is expected.");
        +  EXPECT_FATAL_FAILURE(FAIL() << str,
        +                       str.c_str());
        +}
        +
        +// Tests that we can output strings containing embedded NULs.
        +// Limited to Linux because we can only do this with std::string's.
        +TEST(StreamableTest, stringWithEmbeddedNUL) {
        +  static const char char_array_with_nul[] =
        +      "Here's a NUL\0 and some more string";
        +  static const std::string string_with_nul(char_array_with_nul,
        +                                           sizeof(char_array_with_nul)
        +                                           - 1);  // drops the trailing NUL
        +  EXPECT_FATAL_FAILURE(FAIL() << string_with_nul,
        +                       "Here's a NUL\\0 and some more string");
        +}
        +
        +// Tests that we can output a NUL char.
        +TEST(StreamableTest, NULChar) {
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    FAIL() << "A NUL" << '\0' << " and some more string";
        +  }, "A NUL\\0 and some more string");
        +}
        +
        +// Tests using int as an assertion message.
        +TEST(StreamableTest, int) {
        +  EXPECT_FATAL_FAILURE(FAIL() << 900913,
        +                       "900913");
        +}
        +
        +// Tests using NULL char pointer as an assertion message.
        +//
        +// In MSVC, streaming a NULL char * causes access violation.  Google Test
        +// implemented a workaround (substituting "(null)" for NULL).  This
        +// tests whether the workaround works.
        +TEST(StreamableTest, NullCharPtr) {
        +  EXPECT_FATAL_FAILURE(FAIL() << static_cast<const char*>(NULL),
        +                       "(null)");
        +}
        +
        +// Tests that basic IO manipulators (endl, ends, and flush) can be
        +// streamed to testing::Message.
        +TEST(StreamableTest, BasicIoManip) {
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    FAIL() << "Line 1." << std::endl
        +           << "A NUL char " << std::ends << std::flush << " in line 2.";
        +  }, "Line 1.\nA NUL char \\0 in line 2.");
        +}
        +
        +// Tests the macros that haven't been covered so far.
        +
        +void AddFailureHelper(bool* aborted) {
        +  *aborted = true;
        +  ADD_FAILURE() << "Intentional failure.";
        +  *aborted = false;
        +}
        +
        +// Tests ADD_FAILURE.
        +TEST(MacroTest, ADD_FAILURE) {
        +  bool aborted = true;
        +  EXPECT_NONFATAL_FAILURE(AddFailureHelper(&aborted),
        +                          "Intentional failure.");
        +  EXPECT_FALSE(aborted);
        +}
        +
        +// Tests ADD_FAILURE_AT.
        +TEST(MacroTest, ADD_FAILURE_AT) {
        +  // Verifies that ADD_FAILURE_AT does generate a nonfatal failure and
        +  // the failure message contains the user-streamed part.
        +  EXPECT_NONFATAL_FAILURE(ADD_FAILURE_AT("foo.cc", 42) << "Wrong!", "Wrong!");
        +
        +  // Verifies that the user-streamed part is optional.
        +  EXPECT_NONFATAL_FAILURE(ADD_FAILURE_AT("foo.cc", 42), "Failed");
        +
        +  // Unfortunately, we cannot verify that the failure message contains
        +  // the right file path and line number the same way, as
        +  // EXPECT_NONFATAL_FAILURE() doesn't get to see the file path and
        +  // line number.  Instead, we do that in gtest_output_test_.cc.
        +}
        +
        +// Tests FAIL.
        +TEST(MacroTest, FAIL) {
        +  EXPECT_FATAL_FAILURE(FAIL(),
        +                       "Failed");
        +  EXPECT_FATAL_FAILURE(FAIL() << "Intentional failure.",
        +                       "Intentional failure.");
        +}
        +
        +// Tests SUCCEED
        +TEST(MacroTest, SUCCEED) {
        +  SUCCEED();
        +  SUCCEED() << "Explicit success.";
        +}
        +
        +// Tests for EXPECT_EQ() and ASSERT_EQ().
        +//
        +// These tests fail *intentionally*, s.t. the failure messages can be
        +// generated and tested.
        +//
        +// We have different tests for different argument types.
        +
        +// Tests using bool values in {EXPECT|ASSERT}_EQ.
        +TEST(EqAssertionTest, Bool) {
        +  EXPECT_EQ(true,  true);
        +  EXPECT_FATAL_FAILURE({
        +      bool false_value = false;
        +      ASSERT_EQ(false_value, true);
        +    }, "Value of: true");
        +}
        +
        +// Tests using int values in {EXPECT|ASSERT}_EQ.
        +TEST(EqAssertionTest, Int) {
        +  ASSERT_EQ(32, 32);
        +  EXPECT_NONFATAL_FAILURE(EXPECT_EQ(32, 33),
        +                          "33");
        +}
        +
        +// Tests using time_t values in {EXPECT|ASSERT}_EQ.
        +TEST(EqAssertionTest, Time_T) {
        +  EXPECT_EQ(static_cast<time_t>(0),
        +            static_cast<time_t>(0));
        +  EXPECT_FATAL_FAILURE(ASSERT_EQ(static_cast<time_t>(0),
        +                                 static_cast<time_t>(1234)),
        +                       "1234");
        +}
        +
        +// Tests using char values in {EXPECT|ASSERT}_EQ.
        +TEST(EqAssertionTest, Char) {
        +  ASSERT_EQ('z', 'z');
        +  const char ch = 'b';
        +  EXPECT_NONFATAL_FAILURE(EXPECT_EQ('\0', ch),
        +                          "ch");
        +  EXPECT_NONFATAL_FAILURE(EXPECT_EQ('a', ch),
        +                          "ch");
        +}
        +
        +// Tests using wchar_t values in {EXPECT|ASSERT}_EQ.
        +TEST(EqAssertionTest, WideChar) {
        +  EXPECT_EQ(L'b', L'b');
        +
        +  EXPECT_NONFATAL_FAILURE(EXPECT_EQ(L'\0', L'x'),
        +                          "Value of: L'x'\n"
        +                          "  Actual: L'x' (120, 0x78)\n"
        +                          "Expected: L'\0'\n"
        +                          "Which is: L'\0' (0, 0x0)");
        +
        +  static wchar_t wchar;
        +  wchar = L'b';
        +  EXPECT_NONFATAL_FAILURE(EXPECT_EQ(L'a', wchar),
        +                          "wchar");
        +  wchar = 0x8119;
        +  EXPECT_FATAL_FAILURE(ASSERT_EQ(static_cast<wchar_t>(0x8120), wchar),
        +                       "Value of: wchar");
        +}
        +
        +// Tests using ::std::string values in {EXPECT|ASSERT}_EQ.
        +TEST(EqAssertionTest, StdString) {
        +  // Compares a const char* to an std::string that has identical
        +  // content.
        +  ASSERT_EQ("Test", ::std::string("Test"));
        +
        +  // Compares two identical std::strings.
        +  static const ::std::string str1("A * in the middle");
        +  static const ::std::string str2(str1);
        +  EXPECT_EQ(str1, str2);
        +
        +  // Compares a const char* to an std::string that has different
        +  // content
        +  EXPECT_NONFATAL_FAILURE(EXPECT_EQ("Test", ::std::string("test")),
        +                          "\"test\"");
        +
        +  // Compares an std::string to a char* that has different content.
        +  char* const p1 = const_cast<char*>("foo");
        +  EXPECT_NONFATAL_FAILURE(EXPECT_EQ(::std::string("bar"), p1),
        +                          "p1");
        +
        +  // Compares two std::strings that have different contents, one of
        +  // which having a NUL character in the middle.  This should fail.
        +  static ::std::string str3(str1);
        +  str3.at(2) = '\0';
        +  EXPECT_FATAL_FAILURE(ASSERT_EQ(str1, str3),
        +                       "Value of: str3\n"
        +                       "  Actual: \"A \\0 in the middle\"");
        +}
        +
        +#if GTEST_HAS_STD_WSTRING
        +
        +// Tests using ::std::wstring values in {EXPECT|ASSERT}_EQ.
        +TEST(EqAssertionTest, StdWideString) {
        +  // Compares two identical std::wstrings.
        +  const ::std::wstring wstr1(L"A * in the middle");
        +  const ::std::wstring wstr2(wstr1);
        +  ASSERT_EQ(wstr1, wstr2);
        +
        +  // Compares an std::wstring to a const wchar_t* that has identical
        +  // content.
        +  const wchar_t kTestX8119[] = { 'T', 'e', 's', 't', 0x8119, '\0' };
        +  EXPECT_EQ(::std::wstring(kTestX8119), kTestX8119);
        +
        +  // Compares an std::wstring to a const wchar_t* that has different
        +  // content.
        +  const wchar_t kTestX8120[] = { 'T', 'e', 's', 't', 0x8120, '\0' };
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_EQ(::std::wstring(kTestX8119), kTestX8120);
        +  }, "kTestX8120");
        +
        +  // Compares two std::wstrings that have different contents, one of
        +  // which having a NUL character in the middle.
        +  ::std::wstring wstr3(wstr1);
        +  wstr3.at(2) = L'\0';
        +  EXPECT_NONFATAL_FAILURE(EXPECT_EQ(wstr1, wstr3),
        +                          "wstr3");
        +
        +  // Compares a wchar_t* to an std::wstring that has different
        +  // content.
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_EQ(const_cast<wchar_t*>(L"foo"), ::std::wstring(L"bar"));
        +  }, "");
        +}
        +
        +#endif  // GTEST_HAS_STD_WSTRING
        +
        +#if GTEST_HAS_GLOBAL_STRING
        +// Tests using ::string values in {EXPECT|ASSERT}_EQ.
        +TEST(EqAssertionTest, GlobalString) {
        +  // Compares a const char* to a ::string that has identical content.
        +  EXPECT_EQ("Test", ::string("Test"));
        +
        +  // Compares two identical ::strings.
        +  const ::string str1("A * in the middle");
        +  const ::string str2(str1);
        +  ASSERT_EQ(str1, str2);
        +
        +  // Compares a ::string to a const char* that has different content.
        +  EXPECT_NONFATAL_FAILURE(EXPECT_EQ(::string("Test"), "test"),
        +                          "test");
        +
        +  // Compares two ::strings that have different contents, one of which
        +  // having a NUL character in the middle.
        +  ::string str3(str1);
        +  str3.at(2) = '\0';
        +  EXPECT_NONFATAL_FAILURE(EXPECT_EQ(str1, str3),
        +                          "str3");
        +
        +  // Compares a ::string to a char* that has different content.
        +  EXPECT_FATAL_FAILURE({  // NOLINT
        +    ASSERT_EQ(::string("bar"), const_cast<char*>("foo"));
        +  }, "");
        +}
        +
        +#endif  // GTEST_HAS_GLOBAL_STRING
        +
        +#if GTEST_HAS_GLOBAL_WSTRING
        +
        +// Tests using ::wstring values in {EXPECT|ASSERT}_EQ.
        +TEST(EqAssertionTest, GlobalWideString) {
        +  // Compares two identical ::wstrings.
        +  static const ::wstring wstr1(L"A * in the middle");
        +  static const ::wstring wstr2(wstr1);
        +  EXPECT_EQ(wstr1, wstr2);
        +
        +  // Compares a const wchar_t* to a ::wstring that has identical content.
        +  const wchar_t kTestX8119[] = { 'T', 'e', 's', 't', 0x8119, '\0' };
        +  ASSERT_EQ(kTestX8119, ::wstring(kTestX8119));
        +
        +  // Compares a const wchar_t* to a ::wstring that has different
        +  // content.
        +  const wchar_t kTestX8120[] = { 'T', 'e', 's', 't', 0x8120, '\0' };
        +  EXPECT_NONFATAL_FAILURE({  // NOLINT
        +    EXPECT_EQ(kTestX8120, ::wstring(kTestX8119));
        +  }, "Test\\x8119");
        +
        +  // Compares a wchar_t* to a ::wstring that has different content.
        +  wchar_t* const p1 = const_cast<wchar_t*>(L"foo");
        +  EXPECT_NONFATAL_FAILURE(EXPECT_EQ(p1, ::wstring(L"bar")),
        +                          "bar");
        +
        +  // Compares two ::wstrings that have different contents, one of which
        +  // having a NUL character in the middle.
        +  static ::wstring wstr3;
        +  wstr3 = wstr1;
        +  wstr3.at(2) = L'\0';
        +  EXPECT_FATAL_FAILURE(ASSERT_EQ(wstr1, wstr3),
        +                       "wstr3");
        +}
        +
        +#endif  // GTEST_HAS_GLOBAL_WSTRING
        +
        +// Tests using char pointers in {EXPECT|ASSERT}_EQ.
        +TEST(EqAssertionTest, CharPointer) {
        +  char* const p0 = NULL;
        +  // Only way to get the Nokia compiler to compile the cast
        +  // is to have a separate void* variable first. Putting
        +  // the two casts on the same line doesn't work, neither does
        +  // a direct C-style to char*.
        +  void* pv1 = (void*)0x1234;  // NOLINT
        +  void* pv2 = (void*)0xABC0;  // NOLINT
        +  char* const p1 = reinterpret_cast<char*>(pv1);
        +  char* const p2 = reinterpret_cast<char*>(pv2);
        +  ASSERT_EQ(p1, p1);
        +
        +  EXPECT_NONFATAL_FAILURE(EXPECT_EQ(p0, p2),
        +                          "Value of: p2");
        +  EXPECT_NONFATAL_FAILURE(EXPECT_EQ(p1, p2),
        +                          "p2");
        +  EXPECT_FATAL_FAILURE(ASSERT_EQ(reinterpret_cast<char*>(0x1234),
        +                                 reinterpret_cast<char*>(0xABC0)),
        +                       "ABC0");
        +}
        +
        +// Tests using wchar_t pointers in {EXPECT|ASSERT}_EQ.
        +TEST(EqAssertionTest, WideCharPointer) {
        +  wchar_t* const p0 = NULL;
        +  // Only way to get the Nokia compiler to compile the cast
        +  // is to have a separate void* variable first. Putting
        +  // the two casts on the same line doesn't work, neither does
        +  // a direct C-style to char*.
        +  void* pv1 = (void*)0x1234;  // NOLINT
        +  void* pv2 = (void*)0xABC0;  // NOLINT
        +  wchar_t* const p1 = reinterpret_cast<wchar_t*>(pv1);
        +  wchar_t* const p2 = reinterpret_cast<wchar_t*>(pv2);
        +  EXPECT_EQ(p0, p0);
        +
        +  EXPECT_NONFATAL_FAILURE(EXPECT_EQ(p0, p2),
        +                          "Value of: p2");
        +  EXPECT_NONFATAL_FAILURE(EXPECT_EQ(p1, p2),
        +                          "p2");
        +  void* pv3 = (void*)0x1234;  // NOLINT
        +  void* pv4 = (void*)0xABC0;  // NOLINT
        +  const wchar_t* p3 = reinterpret_cast<const wchar_t*>(pv3);
        +  const wchar_t* p4 = reinterpret_cast<const wchar_t*>(pv4);
        +  EXPECT_NONFATAL_FAILURE(EXPECT_EQ(p3, p4),
        +                          "p4");
        +}
        +
        +// Tests using other types of pointers in {EXPECT|ASSERT}_EQ.
        +TEST(EqAssertionTest, OtherPointer) {
        +  ASSERT_EQ(static_cast<const int*>(NULL),
        +            static_cast<const int*>(NULL));
        +  EXPECT_FATAL_FAILURE(ASSERT_EQ(static_cast<const int*>(NULL),
        +                                 reinterpret_cast<const int*>(0x1234)),
        +                       "0x1234");
        +}
        +
        +// A class that supports binary comparison operators but not streaming.
        +class UnprintableChar {
        + public:
        +  explicit UnprintableChar(char ch) : char_(ch) {}
        +
        +  bool operator==(const UnprintableChar& rhs) const {
        +    return char_ == rhs.char_;
        +  }
        +  bool operator!=(const UnprintableChar& rhs) const {
        +    return char_ != rhs.char_;
        +  }
        +  bool operator<(const UnprintableChar& rhs) const {
        +    return char_ < rhs.char_;
        +  }
        +  bool operator<=(const UnprintableChar& rhs) const {
        +    return char_ <= rhs.char_;
        +  }
        +  bool operator>(const UnprintableChar& rhs) const {
        +    return char_ > rhs.char_;
        +  }
        +  bool operator>=(const UnprintableChar& rhs) const {
        +    return char_ >= rhs.char_;
        +  }
        +
        + private:
        +  char char_;
        +};
        +
        +// Tests that ASSERT_EQ() and friends don't require the arguments to
        +// be printable.
        +TEST(ComparisonAssertionTest, AcceptsUnprintableArgs) {
        +  const UnprintableChar x('x'), y('y');
        +  ASSERT_EQ(x, x);
        +  EXPECT_NE(x, y);
        +  ASSERT_LT(x, y);
        +  EXPECT_LE(x, y);
        +  ASSERT_GT(y, x);
        +  EXPECT_GE(x, x);
        +
        +  EXPECT_NONFATAL_FAILURE(EXPECT_EQ(x, y), "1-byte object <78>");
        +  EXPECT_NONFATAL_FAILURE(EXPECT_EQ(x, y), "1-byte object <79>");
        +  EXPECT_NONFATAL_FAILURE(EXPECT_LT(y, y), "1-byte object <79>");
        +  EXPECT_NONFATAL_FAILURE(EXPECT_GT(x, y), "1-byte object <78>");
        +  EXPECT_NONFATAL_FAILURE(EXPECT_GT(x, y), "1-byte object <79>");
        +
        +  // Code tested by EXPECT_FATAL_FAILURE cannot reference local
        +  // variables, so we have to write UnprintableChar('x') instead of x.
        +#ifndef __BORLANDC__
        +  // ICE's in C++Builder.
        +  EXPECT_FATAL_FAILURE(ASSERT_NE(UnprintableChar('x'), UnprintableChar('x')),
        +                       "1-byte object <78>");
        +  EXPECT_FATAL_FAILURE(ASSERT_LE(UnprintableChar('y'), UnprintableChar('x')),
        +                       "1-byte object <78>");
        +#endif
        +  EXPECT_FATAL_FAILURE(ASSERT_LE(UnprintableChar('y'), UnprintableChar('x')),
        +                       "1-byte object <79>");
        +  EXPECT_FATAL_FAILURE(ASSERT_GE(UnprintableChar('x'), UnprintableChar('y')),
        +                       "1-byte object <78>");
        +  EXPECT_FATAL_FAILURE(ASSERT_GE(UnprintableChar('x'), UnprintableChar('y')),
        +                       "1-byte object <79>");
        +}
        +
        +// Tests the FRIEND_TEST macro.
        +
        +// This class has a private member we want to test.  We will test it
        +// both in a TEST and in a TEST_F.
        +class Foo {
        + public:
        +  Foo() {}
        +
        + private:
        +  int Bar() const { return 1; }
        +
        +  // Declares the friend tests that can access the private member
        +  // Bar().
        +  FRIEND_TEST(FRIEND_TEST_Test, TEST);
        +  FRIEND_TEST(FRIEND_TEST_Test2, TEST_F);
        +};
        +
        +// Tests that the FRIEND_TEST declaration allows a TEST to access a
        +// class's private members.  This should compile.
        +TEST(FRIEND_TEST_Test, TEST) {
        +  ASSERT_EQ(1, Foo().Bar());
        +}
        +
        +// The fixture needed to test using FRIEND_TEST with TEST_F.
        +class FRIEND_TEST_Test2 : public Test {
        + protected:
        +  Foo foo;
        +};
        +
        +// Tests that the FRIEND_TEST declaration allows a TEST_F to access a
        +// class's private members.  This should compile.
        +TEST_F(FRIEND_TEST_Test2, TEST_F) {
        +  ASSERT_EQ(1, foo.Bar());
        +}
        +
        +// Tests the life cycle of Test objects.
        +
        +// The test fixture for testing the life cycle of Test objects.
        +//
        +// This class counts the number of live test objects that uses this
        +// fixture.
        +class TestLifeCycleTest : public Test {
        + protected:
        +  // Constructor.  Increments the number of test objects that uses
        +  // this fixture.
        +  TestLifeCycleTest() { count_++; }
        +
        +  // Destructor.  Decrements the number of test objects that uses this
        +  // fixture.
        +  ~TestLifeCycleTest() { count_--; }
        +
        +  // Returns the number of live test objects that uses this fixture.
        +  int count() const { return count_; }
        +
        + private:
        +  static int count_;
        +};
        +
        +int TestLifeCycleTest::count_ = 0;
        +
        +// Tests the life cycle of test objects.
        +TEST_F(TestLifeCycleTest, Test1) {
        +  // There should be only one test object in this test case that's
        +  // currently alive.
        +  ASSERT_EQ(1, count());
        +}
        +
        +// Tests the life cycle of test objects.
        +TEST_F(TestLifeCycleTest, Test2) {
        +  // After Test1 is done and Test2 is started, there should still be
        +  // only one live test object, as the object for Test1 should've been
        +  // deleted.
        +  ASSERT_EQ(1, count());
        +}
        +
        +}  // namespace
        +
        +// Tests that the copy constructor works when it is NOT optimized away by
        +// the compiler.
        +TEST(AssertionResultTest, CopyConstructorWorksWhenNotOptimied) {
        +  // Checks that the copy constructor doesn't try to dereference NULL pointers
        +  // in the source object.
        +  AssertionResult r1 = AssertionSuccess();
        +  AssertionResult r2 = r1;
        +  // The following line is added to prevent the compiler from optimizing
        +  // away the constructor call.
        +  r1 << "abc";
        +
        +  AssertionResult r3 = r1;
        +  EXPECT_EQ(static_cast<bool>(r3), static_cast<bool>(r1));
        +  EXPECT_STREQ("abc", r1.message());
        +}
        +
        +// Tests that AssertionSuccess and AssertionFailure construct
        +// AssertionResult objects as expected.
        +TEST(AssertionResultTest, ConstructionWorks) {
        +  AssertionResult r1 = AssertionSuccess();
        +  EXPECT_TRUE(r1);
        +  EXPECT_STREQ("", r1.message());
        +
        +  AssertionResult r2 = AssertionSuccess() << "abc";
        +  EXPECT_TRUE(r2);
        +  EXPECT_STREQ("abc", r2.message());
        +
        +  AssertionResult r3 = AssertionFailure();
        +  EXPECT_FALSE(r3);
        +  EXPECT_STREQ("", r3.message());
        +
        +  AssertionResult r4 = AssertionFailure() << "def";
        +  EXPECT_FALSE(r4);
        +  EXPECT_STREQ("def", r4.message());
        +
        +  AssertionResult r5 = AssertionFailure(Message() << "ghi");
        +  EXPECT_FALSE(r5);
        +  EXPECT_STREQ("ghi", r5.message());
        +}
        +
        +// Tests that the negation flips the predicate result but keeps the message.
        +TEST(AssertionResultTest, NegationWorks) {
        +  AssertionResult r1 = AssertionSuccess() << "abc";
        +  EXPECT_FALSE(!r1);
        +  EXPECT_STREQ("abc", (!r1).message());
        +
        +  AssertionResult r2 = AssertionFailure() << "def";
        +  EXPECT_TRUE(!r2);
        +  EXPECT_STREQ("def", (!r2).message());
        +}
        +
        +TEST(AssertionResultTest, StreamingWorks) {
        +  AssertionResult r = AssertionSuccess();
        +  r << "abc" << 'd' << 0 << true;
        +  EXPECT_STREQ("abcd0true", r.message());
        +}
        +
        +TEST(AssertionResultTest, CanStreamOstreamManipulators) {
        +  AssertionResult r = AssertionSuccess();
        +  r << "Data" << std::endl << std::flush << std::ends << "Will be visible";
        +  EXPECT_STREQ("Data\n\\0Will be visible", r.message());
        +}
        +
        +// The next test uses explicit conversion operators -- a C++11 feature.
        +#if GTEST_LANG_CXX11
        +
        +TEST(AssertionResultTest, ConstructibleFromContextuallyConvertibleToBool) {
        +  struct ExplicitlyConvertibleToBool {
        +    explicit operator bool() const { return value; }
        +    bool value;
        +  };
        +  ExplicitlyConvertibleToBool v1 = {false};
        +  ExplicitlyConvertibleToBool v2 = {true};
        +  EXPECT_FALSE(v1);
        +  EXPECT_TRUE(v2);
        +}
        +
        +#endif  // GTEST_LANG_CXX11
        +
        +struct ConvertibleToAssertionResult {
        +  operator AssertionResult() const { return AssertionResult(true); }
        +};
        +
        +TEST(AssertionResultTest, ConstructibleFromImplicitlyConvertible) {
        +  ConvertibleToAssertionResult obj;
        +  EXPECT_TRUE(obj);
        +}
        +
        +// Tests streaming a user type whose definition and operator << are
        +// both in the global namespace.
        +class Base {
        + public:
        +  explicit Base(int an_x) : x_(an_x) {}
        +  int x() const { return x_; }
        + private:
        +  int x_;
        +};
        +std::ostream& operator<<(std::ostream& os,
        +                         const Base& val) {
        +  return os << val.x();
        +}
        +std::ostream& operator<<(std::ostream& os,
        +                         const Base* pointer) {
        +  return os << "(" << pointer->x() << ")";
        +}
        +
        +TEST(MessageTest, CanStreamUserTypeInGlobalNameSpace) {
        +  Message msg;
        +  Base a(1);
        +
        +  msg << a << &a;  // Uses ::operator<<.
        +  EXPECT_STREQ("1(1)", msg.GetString().c_str());
        +}
        +
        +// Tests streaming a user type whose definition and operator<< are
        +// both in an unnamed namespace.
        +namespace {
        +class MyTypeInUnnamedNameSpace : public Base {
        + public:
        +  explicit MyTypeInUnnamedNameSpace(int an_x): Base(an_x) {}
        +};
        +std::ostream& operator<<(std::ostream& os,
        +                         const MyTypeInUnnamedNameSpace& val) {
        +  return os << val.x();
        +}
        +std::ostream& operator<<(std::ostream& os,
        +                         const MyTypeInUnnamedNameSpace* pointer) {
        +  return os << "(" << pointer->x() << ")";
        +}
        +}  // namespace
        +
        +TEST(MessageTest, CanStreamUserTypeInUnnamedNameSpace) {
        +  Message msg;
        +  MyTypeInUnnamedNameSpace a(1);
        +
        +  msg << a << &a;  // Uses <unnamed_namespace>::operator<<.
        +  EXPECT_STREQ("1(1)", msg.GetString().c_str());
        +}
        +
        +// Tests streaming a user type whose definition and operator<< are
        +// both in a user namespace.
        +namespace namespace1 {
        +class MyTypeInNameSpace1 : public Base {
        + public:
        +  explicit MyTypeInNameSpace1(int an_x): Base(an_x) {}
        +};
        +std::ostream& operator<<(std::ostream& os,
        +                         const MyTypeInNameSpace1& val) {
        +  return os << val.x();
        +}
        +std::ostream& operator<<(std::ostream& os,
        +                         const MyTypeInNameSpace1* pointer) {
        +  return os << "(" << pointer->x() << ")";
        +}
        +}  // namespace namespace1
        +
        +TEST(MessageTest, CanStreamUserTypeInUserNameSpace) {
        +  Message msg;
        +  namespace1::MyTypeInNameSpace1 a(1);
        +
        +  msg << a << &a;  // Uses namespace1::operator<<.
        +  EXPECT_STREQ("1(1)", msg.GetString().c_str());
        +}
        +
        +// Tests streaming a user type whose definition is in a user namespace
        +// but whose operator<< is in the global namespace.
        +namespace namespace2 {
        +class MyTypeInNameSpace2 : public ::Base {
        + public:
        +  explicit MyTypeInNameSpace2(int an_x): Base(an_x) {}
        +};
        +}  // namespace namespace2
        +std::ostream& operator<<(std::ostream& os,
        +                         const namespace2::MyTypeInNameSpace2& val) {
        +  return os << val.x();
        +}
        +std::ostream& operator<<(std::ostream& os,
        +                         const namespace2::MyTypeInNameSpace2* pointer) {
        +  return os << "(" << pointer->x() << ")";
        +}
        +
        +TEST(MessageTest, CanStreamUserTypeInUserNameSpaceWithStreamOperatorInGlobal) {
        +  Message msg;
        +  namespace2::MyTypeInNameSpace2 a(1);
        +
        +  msg << a << &a;  // Uses ::operator<<.
        +  EXPECT_STREQ("1(1)", msg.GetString().c_str());
        +}
        +
        +// Tests streaming NULL pointers to testing::Message.
        +TEST(MessageTest, NullPointers) {
        +  Message msg;
        +  char* const p1 = NULL;
        +  unsigned char* const p2 = NULL;
        +  int* p3 = NULL;
        +  double* p4 = NULL;
        +  bool* p5 = NULL;
        +  Message* p6 = NULL;
        +
        +  msg << p1 << p2 << p3 << p4 << p5 << p6;
        +  ASSERT_STREQ("(null)(null)(null)(null)(null)(null)",
        +               msg.GetString().c_str());
        +}
        +
        +// Tests streaming wide strings to testing::Message.
        +TEST(MessageTest, WideStrings) {
        +  // Streams a NULL of type const wchar_t*.
        +  const wchar_t* const_wstr = NULL;
        +  EXPECT_STREQ("(null)",
        +               (Message() << const_wstr).GetString().c_str());
        +
        +  // Streams a NULL of type wchar_t*.
        +  wchar_t* wstr = NULL;
        +  EXPECT_STREQ("(null)",
        +               (Message() << wstr).GetString().c_str());
        +
        +  // Streams a non-NULL of type const wchar_t*.
        +  const_wstr = L"abc\x8119";
        +  EXPECT_STREQ("abc\xe8\x84\x99",
        +               (Message() << const_wstr).GetString().c_str());
        +
        +  // Streams a non-NULL of type wchar_t*.
        +  wstr = const_cast<wchar_t*>(const_wstr);
        +  EXPECT_STREQ("abc\xe8\x84\x99",
        +               (Message() << wstr).GetString().c_str());
        +}
        +
        +
        +// This line tests that we can define tests in the testing namespace.
        +namespace testing {
        +
        +// Tests the TestInfo class.
        +
        +class TestInfoTest : public Test {
        + protected:
        +  static const TestInfo* GetTestInfo(const char* test_name) {
        +    const TestCase* const test_case = GetUnitTestImpl()->
        +        GetTestCase("TestInfoTest", "", NULL, NULL);
        +
        +    for (int i = 0; i < test_case->total_test_count(); ++i) {
        +      const TestInfo* const test_info = test_case->GetTestInfo(i);
        +      if (strcmp(test_name, test_info->name()) == 0)
        +        return test_info;
        +    }
        +    return NULL;
        +  }
        +
        +  static const TestResult* GetTestResult(
        +      const TestInfo* test_info) {
        +    return test_info->result();
        +  }
        +};
        +
        +// Tests TestInfo::test_case_name() and TestInfo::name().
        +TEST_F(TestInfoTest, Names) {
        +  const TestInfo* const test_info = GetTestInfo("Names");
        +
        +  ASSERT_STREQ("TestInfoTest", test_info->test_case_name());
        +  ASSERT_STREQ("Names", test_info->name());
        +}
        +
        +// Tests TestInfo::result().
        +TEST_F(TestInfoTest, result) {
        +  const TestInfo* const test_info = GetTestInfo("result");
        +
        +  // Initially, there is no TestPartResult for this test.
        +  ASSERT_EQ(0, GetTestResult(test_info)->total_part_count());
        +
        +  // After the previous assertion, there is still none.
        +  ASSERT_EQ(0, GetTestResult(test_info)->total_part_count());
        +}
        +
        +#define VERIFY_CODE_LOCATION \
        +  const int expected_line = __LINE__ - 1; \
        +  const TestInfo* const test_info = GetUnitTestImpl()->current_test_info(); \
        +  ASSERT_TRUE(test_info); \
        +  EXPECT_STREQ(__FILE__, test_info->file()); \
        +  EXPECT_EQ(expected_line, test_info->line())
        +
        +TEST(CodeLocationForTEST, Verify) {
        +  VERIFY_CODE_LOCATION;
        +}
        +
        +class CodeLocationForTESTF : public Test {
        +};
        +
        +TEST_F(CodeLocationForTESTF, Verify) {
        +  VERIFY_CODE_LOCATION;
        +}
        +
        +class CodeLocationForTESTP : public TestWithParam<int> {
        +};
        +
        +TEST_P(CodeLocationForTESTP, Verify) {
        +  VERIFY_CODE_LOCATION;
        +}
        +
        +INSTANTIATE_TEST_CASE_P(, CodeLocationForTESTP, Values(0));
        +
        +template <typename T>
        +class CodeLocationForTYPEDTEST : public Test {
        +};
        +
        +TYPED_TEST_CASE(CodeLocationForTYPEDTEST, int);
        +
        +TYPED_TEST(CodeLocationForTYPEDTEST, Verify) {
        +  VERIFY_CODE_LOCATION;
        +}
        +
        +template <typename T>
        +class CodeLocationForTYPEDTESTP : public Test {
        +};
        +
        +TYPED_TEST_CASE_P(CodeLocationForTYPEDTESTP);
        +
        +TYPED_TEST_P(CodeLocationForTYPEDTESTP, Verify) {
        +  VERIFY_CODE_LOCATION;
        +}
        +
        +REGISTER_TYPED_TEST_CASE_P(CodeLocationForTYPEDTESTP, Verify);
        +
        +INSTANTIATE_TYPED_TEST_CASE_P(My, CodeLocationForTYPEDTESTP, int);
        +
        +#undef VERIFY_CODE_LOCATION
        +
        +// Tests setting up and tearing down a test case.
        +
        +class SetUpTestCaseTest : public Test {
        + protected:
        +  // This will be called once before the first test in this test case
        +  // is run.
        +  static void SetUpTestCase() {
        +    printf("Setting up the test case . . .\n");
        +
        +    // Initializes some shared resource.  In this simple example, we
        +    // just create a C string.  More complex stuff can be done if
        +    // desired.
        +    shared_resource_ = "123";
        +
        +    // Increments the number of test cases that have been set up.
        +    counter_++;
        +
        +    // SetUpTestCase() should be called only once.
        +    EXPECT_EQ(1, counter_);
        +  }
        +
        +  // This will be called once after the last test in this test case is
        +  // run.
        +  static void TearDownTestCase() {
        +    printf("Tearing down the test case . . .\n");
        +
        +    // Decrements the number of test cases that have been set up.
        +    counter_--;
        +
        +    // TearDownTestCase() should be called only once.
        +    EXPECT_EQ(0, counter_);
        +
        +    // Cleans up the shared resource.
        +    shared_resource_ = NULL;
        +  }
        +
        +  // This will be called before each test in this test case.
        +  virtual void SetUp() {
        +    // SetUpTestCase() should be called only once, so counter_ should
        +    // always be 1.
        +    EXPECT_EQ(1, counter_);
        +  }
        +
        +  // Number of test cases that have been set up.
        +  static int counter_;
        +
        +  // Some resource to be shared by all tests in this test case.
        +  static const char* shared_resource_;
        +};
        +
        +int SetUpTestCaseTest::counter_ = 0;
        +const char* SetUpTestCaseTest::shared_resource_ = NULL;
        +
        +// A test that uses the shared resource.
        +TEST_F(SetUpTestCaseTest, Test1) {
        +  EXPECT_STRNE(NULL, shared_resource_);
        +}
        +
        +// Another test that uses the shared resource.
        +TEST_F(SetUpTestCaseTest, Test2) {
        +  EXPECT_STREQ("123", shared_resource_);
        +}
        +
        +// The InitGoogleTestTest test case tests testing::InitGoogleTest().
        +
        +// The Flags struct stores a copy of all Google Test flags.
        +struct Flags {
        +  // Constructs a Flags struct where each flag has its default value.
        +  Flags() : also_run_disabled_tests(false),
        +            break_on_failure(false),
        +            catch_exceptions(false),
        +            death_test_use_fork(false),
        +            filter(""),
        +            list_tests(false),
        +            output(""),
        +            print_time(true),
        +            random_seed(0),
        +            repeat(1),
        +            shuffle(false),
        +            stack_trace_depth(kMaxStackTraceDepth),
        +            stream_result_to(""),
        +            throw_on_failure(false) {}
        +
        +  // Factory methods.
        +
        +  // Creates a Flags struct where the gtest_also_run_disabled_tests flag has
        +  // the given value.
        +  static Flags AlsoRunDisabledTests(bool also_run_disabled_tests) {
        +    Flags flags;
        +    flags.also_run_disabled_tests = also_run_disabled_tests;
        +    return flags;
        +  }
        +
        +  // Creates a Flags struct where the gtest_break_on_failure flag has
        +  // the given value.
        +  static Flags BreakOnFailure(bool break_on_failure) {
        +    Flags flags;
        +    flags.break_on_failure = break_on_failure;
        +    return flags;
        +  }
        +
        +  // Creates a Flags struct where the gtest_catch_exceptions flag has
        +  // the given value.
        +  static Flags CatchExceptions(bool catch_exceptions) {
        +    Flags flags;
        +    flags.catch_exceptions = catch_exceptions;
        +    return flags;
        +  }
        +
        +  // Creates a Flags struct where the gtest_death_test_use_fork flag has
        +  // the given value.
        +  static Flags DeathTestUseFork(bool death_test_use_fork) {
        +    Flags flags;
        +    flags.death_test_use_fork = death_test_use_fork;
        +    return flags;
        +  }
        +
        +  // Creates a Flags struct where the gtest_filter flag has the given
        +  // value.
        +  static Flags Filter(const char* filter) {
        +    Flags flags;
        +    flags.filter = filter;
        +    return flags;
        +  }
        +
        +  // Creates a Flags struct where the gtest_list_tests flag has the
        +  // given value.
        +  static Flags ListTests(bool list_tests) {
        +    Flags flags;
        +    flags.list_tests = list_tests;
        +    return flags;
        +  }
        +
        +  // Creates a Flags struct where the gtest_output flag has the given
        +  // value.
        +  static Flags Output(const char* output) {
        +    Flags flags;
        +    flags.output = output;
        +    return flags;
        +  }
        +
        +  // Creates a Flags struct where the gtest_print_time flag has the given
        +  // value.
        +  static Flags PrintTime(bool print_time) {
        +    Flags flags;
        +    flags.print_time = print_time;
        +    return flags;
        +  }
        +
        +  // Creates a Flags struct where the gtest_random_seed flag has
        +  // the given value.
        +  static Flags RandomSeed(Int32 random_seed) {
        +    Flags flags;
        +    flags.random_seed = random_seed;
        +    return flags;
        +  }
        +
        +  // Creates a Flags struct where the gtest_repeat flag has the given
        +  // value.
        +  static Flags Repeat(Int32 repeat) {
        +    Flags flags;
        +    flags.repeat = repeat;
        +    return flags;
        +  }
        +
        +  // Creates a Flags struct where the gtest_shuffle flag has
        +  // the given value.
        +  static Flags Shuffle(bool shuffle) {
        +    Flags flags;
        +    flags.shuffle = shuffle;
        +    return flags;
        +  }
        +
        +  // Creates a Flags struct where the GTEST_FLAG(stack_trace_depth) flag has
        +  // the given value.
        +  static Flags StackTraceDepth(Int32 stack_trace_depth) {
        +    Flags flags;
        +    flags.stack_trace_depth = stack_trace_depth;
        +    return flags;
        +  }
        +
        +  // Creates a Flags struct where the GTEST_FLAG(stream_result_to) flag has
        +  // the given value.
        +  static Flags StreamResultTo(const char* stream_result_to) {
        +    Flags flags;
        +    flags.stream_result_to = stream_result_to;
        +    return flags;
        +  }
        +
        +  // Creates a Flags struct where the gtest_throw_on_failure flag has
        +  // the given value.
        +  static Flags ThrowOnFailure(bool throw_on_failure) {
        +    Flags flags;
        +    flags.throw_on_failure = throw_on_failure;
        +    return flags;
        +  }
        +
        +  // These fields store the flag values.
        +  bool also_run_disabled_tests;
        +  bool break_on_failure;
        +  bool catch_exceptions;
        +  bool death_test_use_fork;
        +  const char* filter;
        +  bool list_tests;
        +  const char* output;
        +  bool print_time;
        +  Int32 random_seed;
        +  Int32 repeat;
        +  bool shuffle;
        +  Int32 stack_trace_depth;
        +  const char* stream_result_to;
        +  bool throw_on_failure;
        +};
        +
        +// Fixture for testing InitGoogleTest().
        +class InitGoogleTestTest : public Test {
        + protected:
        +  // Clears the flags before each test.
        +  virtual void SetUp() {
        +    GTEST_FLAG(also_run_disabled_tests) = false;
        +    GTEST_FLAG(break_on_failure) = false;
        +    GTEST_FLAG(catch_exceptions) = false;
        +    GTEST_FLAG(death_test_use_fork) = false;
        +    GTEST_FLAG(filter) = "";
        +    GTEST_FLAG(list_tests) = false;
        +    GTEST_FLAG(output) = "";
        +    GTEST_FLAG(print_time) = true;
        +    GTEST_FLAG(random_seed) = 0;
        +    GTEST_FLAG(repeat) = 1;
        +    GTEST_FLAG(shuffle) = false;
        +    GTEST_FLAG(stack_trace_depth) = kMaxStackTraceDepth;
        +    GTEST_FLAG(stream_result_to) = "";
        +    GTEST_FLAG(throw_on_failure) = false;
        +  }
        +
        +  // Asserts that two narrow or wide string arrays are equal.
        +  template <typename CharType>
        +  static void AssertStringArrayEq(size_t size1, CharType** array1,
        +                                  size_t size2, CharType** array2) {
        +    ASSERT_EQ(size1, size2) << " Array sizes different.";
        +
        +    for (size_t i = 0; i != size1; i++) {
        +      ASSERT_STREQ(array1[i], array2[i]) << " where i == " << i;
        +    }
        +  }
        +
        +  // Verifies that the flag values match the expected values.
        +  static void CheckFlags(const Flags& expected) {
        +    EXPECT_EQ(expected.also_run_disabled_tests,
        +              GTEST_FLAG(also_run_disabled_tests));
        +    EXPECT_EQ(expected.break_on_failure, GTEST_FLAG(break_on_failure));
        +    EXPECT_EQ(expected.catch_exceptions, GTEST_FLAG(catch_exceptions));
        +    EXPECT_EQ(expected.death_test_use_fork, GTEST_FLAG(death_test_use_fork));
        +    EXPECT_STREQ(expected.filter, GTEST_FLAG(filter).c_str());
        +    EXPECT_EQ(expected.list_tests, GTEST_FLAG(list_tests));
        +    EXPECT_STREQ(expected.output, GTEST_FLAG(output).c_str());
        +    EXPECT_EQ(expected.print_time, GTEST_FLAG(print_time));
        +    EXPECT_EQ(expected.random_seed, GTEST_FLAG(random_seed));
        +    EXPECT_EQ(expected.repeat, GTEST_FLAG(repeat));
        +    EXPECT_EQ(expected.shuffle, GTEST_FLAG(shuffle));
        +    EXPECT_EQ(expected.stack_trace_depth, GTEST_FLAG(stack_trace_depth));
        +    EXPECT_STREQ(expected.stream_result_to,
        +                 GTEST_FLAG(stream_result_to).c_str());
        +    EXPECT_EQ(expected.throw_on_failure, GTEST_FLAG(throw_on_failure));
        +  }
        +
        +  // Parses a command line (specified by argc1 and argv1), then
        +  // verifies that the flag values are expected and that the
        +  // recognized flags are removed from the command line.
        +  template <typename CharType>
        +  static void TestParsingFlags(int argc1, const CharType** argv1,
        +                               int argc2, const CharType** argv2,
        +                               const Flags& expected, bool should_print_help) {
        +    const bool saved_help_flag = ::testing::internal::g_help_flag;
        +    ::testing::internal::g_help_flag = false;
        +
        +#if GTEST_HAS_STREAM_REDIRECTION
        +    CaptureStdout();
        +#endif
        +
        +    // Parses the command line.
        +    internal::ParseGoogleTestFlagsOnly(&argc1, const_cast<CharType**>(argv1));
        +
        +#if GTEST_HAS_STREAM_REDIRECTION
        +    const std::string captured_stdout = GetCapturedStdout();
        +#endif
        +
        +    // Verifies the flag values.
        +    CheckFlags(expected);
        +
        +    // Verifies that the recognized flags are removed from the command
        +    // line.
        +    AssertStringArrayEq(argc1 + 1, argv1, argc2 + 1, argv2);
        +
        +    // ParseGoogleTestFlagsOnly should neither set g_help_flag nor print the
        +    // help message for the flags it recognizes.
        +    EXPECT_EQ(should_print_help, ::testing::internal::g_help_flag);
        +
        +#if GTEST_HAS_STREAM_REDIRECTION
        +    const char* const expected_help_fragment =
        +        "This program contains tests written using";
        +    if (should_print_help) {
        +      EXPECT_PRED_FORMAT2(IsSubstring, expected_help_fragment, captured_stdout);
        +    } else {
        +      EXPECT_PRED_FORMAT2(IsNotSubstring,
        +                          expected_help_fragment, captured_stdout);
        +    }
        +#endif  // GTEST_HAS_STREAM_REDIRECTION
        +
        +    ::testing::internal::g_help_flag = saved_help_flag;
        +  }
        +
        +  // This macro wraps TestParsingFlags s.t. the user doesn't need
        +  // to specify the array sizes.
        +
        +#define GTEST_TEST_PARSING_FLAGS_(argv1, argv2, expected, should_print_help) \
        +  TestParsingFlags(sizeof(argv1)/sizeof(*argv1) - 1, argv1, \
        +                   sizeof(argv2)/sizeof(*argv2) - 1, argv2, \
        +                   expected, should_print_help)
        +};
        +
        +// Tests parsing an empty command line.
        +TEST_F(InitGoogleTestTest, Empty) {
        +  const char* argv[] = {
        +    NULL
        +  };
        +
        +  const char* argv2[] = {
        +    NULL
        +  };
        +
        +  GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags(), false);
        +}
        +
        +// Tests parsing a command line that has no flag.
        +TEST_F(InitGoogleTestTest, NoFlag) {
        +  const char* argv[] = {
        +    "foo.exe",
        +    NULL
        +  };
        +
        +  const char* argv2[] = {
        +    "foo.exe",
        +    NULL
        +  };
        +
        +  GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags(), false);
        +}
        +
        +// Tests parsing a bad --gtest_filter flag.
        +TEST_F(InitGoogleTestTest, FilterBad) {
        +  const char* argv[] = {
        +    "foo.exe",
        +    "--gtest_filter",
        +    NULL
        +  };
        +
        +  const char* argv2[] = {
        +    "foo.exe",
        +    "--gtest_filter",
        +    NULL
        +  };
        +
        +  GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags::Filter(""), true);
        +}
        +
        +// Tests parsing an empty --gtest_filter flag.
        +TEST_F(InitGoogleTestTest, FilterEmpty) {
        +  const char* argv[] = {
        +    "foo.exe",
        +    "--gtest_filter=",
        +    NULL
        +  };
        +
        +  const char* argv2[] = {
        +    "foo.exe",
        +    NULL
        +  };
        +
        +  GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags::Filter(""), false);
        +}
        +
        +// Tests parsing a non-empty --gtest_filter flag.
        +TEST_F(InitGoogleTestTest, FilterNonEmpty) {
        +  const char* argv[] = {
        +    "foo.exe",
        +    "--gtest_filter=abc",
        +    NULL
        +  };
        +
        +  const char* argv2[] = {
        +    "foo.exe",
        +    NULL
        +  };
        +
        +  GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags::Filter("abc"), false);
        +}
        +
        +// Tests parsing --gtest_break_on_failure.
        +TEST_F(InitGoogleTestTest, BreakOnFailureWithoutValue) {
        +  const char* argv[] = {
        +    "foo.exe",
        +    "--gtest_break_on_failure",
        +    NULL
        +};
        +
        +  const char* argv2[] = {
        +    "foo.exe",
        +    NULL
        +  };
        +
        +  GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags::BreakOnFailure(true), false);
        +}
        +
        +// Tests parsing --gtest_break_on_failure=0.
        +TEST_F(InitGoogleTestTest, BreakOnFailureFalse_0) {
        +  const char* argv[] = {
        +    "foo.exe",
        +    "--gtest_break_on_failure=0",
        +    NULL
        +  };
        +
        +  const char* argv2[] = {
        +    "foo.exe",
        +    NULL
        +  };
        +
        +  GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags::BreakOnFailure(false), false);
        +}
        +
        +// Tests parsing --gtest_break_on_failure=f.
        +TEST_F(InitGoogleTestTest, BreakOnFailureFalse_f) {
        +  const char* argv[] = {
        +    "foo.exe",
        +    "--gtest_break_on_failure=f",
        +    NULL
        +  };
        +
        +  const char* argv2[] = {
        +    "foo.exe",
        +    NULL
        +  };
        +
        +  GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags::BreakOnFailure(false), false);
        +}
        +
        +// Tests parsing --gtest_break_on_failure=F.
        +TEST_F(InitGoogleTestTest, BreakOnFailureFalse_F) {
        +  const char* argv[] = {
        +    "foo.exe",
        +    "--gtest_break_on_failure=F",
        +    NULL
        +  };
        +
        +  const char* argv2[] = {
        +    "foo.exe",
        +    NULL
        +  };
        +
        +  GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags::BreakOnFailure(false), false);
        +}
        +
        +// Tests parsing a --gtest_break_on_failure flag that has a "true"
        +// definition.
        +TEST_F(InitGoogleTestTest, BreakOnFailureTrue) {
        +  const char* argv[] = {
        +    "foo.exe",
        +    "--gtest_break_on_failure=1",
        +    NULL
        +  };
        +
        +  const char* argv2[] = {
        +    "foo.exe",
        +    NULL
        +  };
        +
        +  GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags::BreakOnFailure(true), false);
        +}
        +
        +// Tests parsing --gtest_catch_exceptions.
        +TEST_F(InitGoogleTestTest, CatchExceptions) {
        +  const char* argv[] = {
        +    "foo.exe",
        +    "--gtest_catch_exceptions",
        +    NULL
        +  };
        +
        +  const char* argv2[] = {
        +    "foo.exe",
        +    NULL
        +  };
        +
        +  GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags::CatchExceptions(true), false);
        +}
        +
        +// Tests parsing --gtest_death_test_use_fork.
        +TEST_F(InitGoogleTestTest, DeathTestUseFork) {
        +  const char* argv[] = {
        +    "foo.exe",
        +    "--gtest_death_test_use_fork",
        +    NULL
        +  };
        +
        +  const char* argv2[] = {
        +    "foo.exe",
        +    NULL
        +  };
        +
        +  GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags::DeathTestUseFork(true), false);
        +}
        +
        +// Tests having the same flag twice with different values.  The
        +// expected behavior is that the one coming last takes precedence.
        +TEST_F(InitGoogleTestTest, DuplicatedFlags) {
        +  const char* argv[] = {
        +    "foo.exe",
        +    "--gtest_filter=a",
        +    "--gtest_filter=b",
        +    NULL
        +  };
        +
        +  const char* argv2[] = {
        +    "foo.exe",
        +    NULL
        +  };
        +
        +  GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags::Filter("b"), false);
        +}
        +
        +// Tests having an unrecognized flag on the command line.
        +TEST_F(InitGoogleTestTest, UnrecognizedFlag) {
        +  const char* argv[] = {
        +    "foo.exe",
        +    "--gtest_break_on_failure",
        +    "bar",  // Unrecognized by Google Test.
        +    "--gtest_filter=b",
        +    NULL
        +  };
        +
        +  const char* argv2[] = {
        +    "foo.exe",
        +    "bar",
        +    NULL
        +  };
        +
        +  Flags flags;
        +  flags.break_on_failure = true;
        +  flags.filter = "b";
        +  GTEST_TEST_PARSING_FLAGS_(argv, argv2, flags, false);
        +}
        +
        +// Tests having a --gtest_list_tests flag
        +TEST_F(InitGoogleTestTest, ListTestsFlag) {
        +    const char* argv[] = {
        +      "foo.exe",
        +      "--gtest_list_tests",
        +      NULL
        +    };
        +
        +    const char* argv2[] = {
        +      "foo.exe",
        +      NULL
        +    };
        +
        +    GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags::ListTests(true), false);
        +}
        +
        +// Tests having a --gtest_list_tests flag with a "true" value
        +TEST_F(InitGoogleTestTest, ListTestsTrue) {
        +    const char* argv[] = {
        +      "foo.exe",
        +      "--gtest_list_tests=1",
        +      NULL
        +    };
        +
        +    const char* argv2[] = {
        +      "foo.exe",
        +      NULL
        +    };
        +
        +    GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags::ListTests(true), false);
        +}
        +
        +// Tests having a --gtest_list_tests flag with a "false" value
        +TEST_F(InitGoogleTestTest, ListTestsFalse) {
        +    const char* argv[] = {
        +      "foo.exe",
        +      "--gtest_list_tests=0",
        +      NULL
        +    };
        +
        +    const char* argv2[] = {
        +      "foo.exe",
        +      NULL
        +    };
        +
        +    GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags::ListTests(false), false);
        +}
        +
        +// Tests parsing --gtest_list_tests=f.
        +TEST_F(InitGoogleTestTest, ListTestsFalse_f) {
        +  const char* argv[] = {
        +    "foo.exe",
        +    "--gtest_list_tests=f",
        +    NULL
        +  };
        +
        +  const char* argv2[] = {
        +    "foo.exe",
        +    NULL
        +  };
        +
        +  GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags::ListTests(false), false);
        +}
        +
        +// Tests parsing --gtest_list_tests=F.
        +TEST_F(InitGoogleTestTest, ListTestsFalse_F) {
        +  const char* argv[] = {
        +    "foo.exe",
        +    "--gtest_list_tests=F",
        +    NULL
        +  };
        +
        +  const char* argv2[] = {
        +    "foo.exe",
        +    NULL
        +  };
        +
        +  GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags::ListTests(false), false);
        +}
        +
        +// Tests parsing --gtest_output (invalid).
        +TEST_F(InitGoogleTestTest, OutputEmpty) {
        +  const char* argv[] = {
        +    "foo.exe",
        +    "--gtest_output",
        +    NULL
        +  };
        +
        +  const char* argv2[] = {
        +    "foo.exe",
        +    "--gtest_output",
        +    NULL
        +  };
        +
        +  GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags(), true);
        +}
        +
        +// Tests parsing --gtest_output=xml
        +TEST_F(InitGoogleTestTest, OutputXml) {
        +  const char* argv[] = {
        +    "foo.exe",
        +    "--gtest_output=xml",
        +    NULL
        +  };
        +
        +  const char* argv2[] = {
        +    "foo.exe",
        +    NULL
        +  };
        +
        +  GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags::Output("xml"), false);
        +}
        +
        +// Tests parsing --gtest_output=xml:file
        +TEST_F(InitGoogleTestTest, OutputXmlFile) {
        +  const char* argv[] = {
        +    "foo.exe",
        +    "--gtest_output=xml:file",
        +    NULL
        +  };
        +
        +  const char* argv2[] = {
        +    "foo.exe",
        +    NULL
        +  };
        +
        +  GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags::Output("xml:file"), false);
        +}
        +
        +// Tests parsing --gtest_output=xml:directory/path/
        +TEST_F(InitGoogleTestTest, OutputXmlDirectory) {
        +  const char* argv[] = {
        +    "foo.exe",
        +    "--gtest_output=xml:directory/path/",
        +    NULL
        +  };
        +
        +  const char* argv2[] = {
        +    "foo.exe",
        +    NULL
        +  };
        +
        +  GTEST_TEST_PARSING_FLAGS_(argv, argv2,
        +                            Flags::Output("xml:directory/path/"), false);
        +}
        +
        +// Tests having a --gtest_print_time flag
        +TEST_F(InitGoogleTestTest, PrintTimeFlag) {
        +    const char* argv[] = {
        +      "foo.exe",
        +      "--gtest_print_time",
        +      NULL
        +    };
        +
        +    const char* argv2[] = {
        +      "foo.exe",
        +      NULL
        +    };
        +
        +    GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags::PrintTime(true), false);
        +}
        +
        +// Tests having a --gtest_print_time flag with a "true" value
        +TEST_F(InitGoogleTestTest, PrintTimeTrue) {
        +    const char* argv[] = {
        +      "foo.exe",
        +      "--gtest_print_time=1",
        +      NULL
        +    };
        +
        +    const char* argv2[] = {
        +      "foo.exe",
        +      NULL
        +    };
        +
        +    GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags::PrintTime(true), false);
        +}
        +
        +// Tests having a --gtest_print_time flag with a "false" value
        +TEST_F(InitGoogleTestTest, PrintTimeFalse) {
        +    const char* argv[] = {
        +      "foo.exe",
        +      "--gtest_print_time=0",
        +      NULL
        +    };
        +
        +    const char* argv2[] = {
        +      "foo.exe",
        +      NULL
        +    };
        +
        +    GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags::PrintTime(false), false);
        +}
        +
        +// Tests parsing --gtest_print_time=f.
        +TEST_F(InitGoogleTestTest, PrintTimeFalse_f) {
        +  const char* argv[] = {
        +    "foo.exe",
        +    "--gtest_print_time=f",
        +    NULL
        +  };
        +
        +  const char* argv2[] = {
        +    "foo.exe",
        +    NULL
        +  };
        +
        +  GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags::PrintTime(false), false);
        +}
        +
        +// Tests parsing --gtest_print_time=F.
        +TEST_F(InitGoogleTestTest, PrintTimeFalse_F) {
        +  const char* argv[] = {
        +    "foo.exe",
        +    "--gtest_print_time=F",
        +    NULL
        +  };
        +
        +  const char* argv2[] = {
        +    "foo.exe",
        +    NULL
        +  };
        +
        +  GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags::PrintTime(false), false);
        +}
        +
        +// Tests parsing --gtest_random_seed=number
        +TEST_F(InitGoogleTestTest, RandomSeed) {
        +  const char* argv[] = {
        +    "foo.exe",
        +    "--gtest_random_seed=1000",
        +    NULL
        +  };
        +
        +  const char* argv2[] = {
        +    "foo.exe",
        +    NULL
        +  };
        +
        +  GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags::RandomSeed(1000), false);
        +}
        +
        +// Tests parsing --gtest_repeat=number
        +TEST_F(InitGoogleTestTest, Repeat) {
        +  const char* argv[] = {
        +    "foo.exe",
        +    "--gtest_repeat=1000",
        +    NULL
        +  };
        +
        +  const char* argv2[] = {
        +    "foo.exe",
        +    NULL
        +  };
        +
        +  GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags::Repeat(1000), false);
        +}
        +
        +// Tests having a --gtest_also_run_disabled_tests flag
        +TEST_F(InitGoogleTestTest, AlsoRunDisabledTestsFlag) {
        +    const char* argv[] = {
        +      "foo.exe",
        +      "--gtest_also_run_disabled_tests",
        +      NULL
        +    };
        +
        +    const char* argv2[] = {
        +      "foo.exe",
        +      NULL
        +    };
        +
        +    GTEST_TEST_PARSING_FLAGS_(argv, argv2,
        +                              Flags::AlsoRunDisabledTests(true), false);
        +}
        +
        +// Tests having a --gtest_also_run_disabled_tests flag with a "true" value
        +TEST_F(InitGoogleTestTest, AlsoRunDisabledTestsTrue) {
        +    const char* argv[] = {
        +      "foo.exe",
        +      "--gtest_also_run_disabled_tests=1",
        +      NULL
        +    };
        +
        +    const char* argv2[] = {
        +      "foo.exe",
        +      NULL
        +    };
        +
        +    GTEST_TEST_PARSING_FLAGS_(argv, argv2,
        +                              Flags::AlsoRunDisabledTests(true), false);
        +}
        +
        +// Tests having a --gtest_also_run_disabled_tests flag with a "false" value
        +TEST_F(InitGoogleTestTest, AlsoRunDisabledTestsFalse) {
        +    const char* argv[] = {
        +      "foo.exe",
        +      "--gtest_also_run_disabled_tests=0",
        +      NULL
        +    };
        +
        +    const char* argv2[] = {
        +      "foo.exe",
        +      NULL
        +    };
        +
        +    GTEST_TEST_PARSING_FLAGS_(argv, argv2,
        +                              Flags::AlsoRunDisabledTests(false), false);
        +}
        +
        +// Tests parsing --gtest_shuffle.
        +TEST_F(InitGoogleTestTest, ShuffleWithoutValue) {
        +  const char* argv[] = {
        +    "foo.exe",
        +    "--gtest_shuffle",
        +    NULL
        +};
        +
        +  const char* argv2[] = {
        +    "foo.exe",
        +    NULL
        +  };
        +
        +  GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags::Shuffle(true), false);
        +}
        +
        +// Tests parsing --gtest_shuffle=0.
        +TEST_F(InitGoogleTestTest, ShuffleFalse_0) {
        +  const char* argv[] = {
        +    "foo.exe",
        +    "--gtest_shuffle=0",
        +    NULL
        +  };
        +
        +  const char* argv2[] = {
        +    "foo.exe",
        +    NULL
        +  };
        +
        +  GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags::Shuffle(false), false);
        +}
        +
        +// Tests parsing a --gtest_shuffle flag that has a "true"
        +// definition.
        +TEST_F(InitGoogleTestTest, ShuffleTrue) {
        +  const char* argv[] = {
        +    "foo.exe",
        +    "--gtest_shuffle=1",
        +    NULL
        +  };
        +
        +  const char* argv2[] = {
        +    "foo.exe",
        +    NULL
        +  };
        +
        +  GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags::Shuffle(true), false);
        +}
        +
        +// Tests parsing --gtest_stack_trace_depth=number.
        +TEST_F(InitGoogleTestTest, StackTraceDepth) {
        +  const char* argv[] = {
        +    "foo.exe",
        +    "--gtest_stack_trace_depth=5",
        +    NULL
        +  };
        +
        +  const char* argv2[] = {
        +    "foo.exe",
        +    NULL
        +  };
        +
        +  GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags::StackTraceDepth(5), false);
        +}
        +
        +TEST_F(InitGoogleTestTest, StreamResultTo) {
        +  const char* argv[] = {
        +    "foo.exe",
        +    "--gtest_stream_result_to=localhost:1234",
        +    NULL
        +  };
        +
        +  const char* argv2[] = {
        +    "foo.exe",
        +    NULL
        +  };
        +
        +  GTEST_TEST_PARSING_FLAGS_(
        +      argv, argv2, Flags::StreamResultTo("localhost:1234"), false);
        +}
        +
        +// Tests parsing --gtest_throw_on_failure.
        +TEST_F(InitGoogleTestTest, ThrowOnFailureWithoutValue) {
        +  const char* argv[] = {
        +    "foo.exe",
        +    "--gtest_throw_on_failure",
        +    NULL
        +};
        +
        +  const char* argv2[] = {
        +    "foo.exe",
        +    NULL
        +  };
        +
        +  GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags::ThrowOnFailure(true), false);
        +}
        +
        +// Tests parsing --gtest_throw_on_failure=0.
        +TEST_F(InitGoogleTestTest, ThrowOnFailureFalse_0) {
        +  const char* argv[] = {
        +    "foo.exe",
        +    "--gtest_throw_on_failure=0",
        +    NULL
        +  };
        +
        +  const char* argv2[] = {
        +    "foo.exe",
        +    NULL
        +  };
        +
        +  GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags::ThrowOnFailure(false), false);
        +}
        +
        +// Tests parsing a --gtest_throw_on_failure flag that has a "true"
        +// definition.
        +TEST_F(InitGoogleTestTest, ThrowOnFailureTrue) {
        +  const char* argv[] = {
        +    "foo.exe",
        +    "--gtest_throw_on_failure=1",
        +    NULL
        +  };
        +
        +  const char* argv2[] = {
        +    "foo.exe",
        +    NULL
        +  };
        +
        +  GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags::ThrowOnFailure(true), false);
        +}
        +
        +#if GTEST_OS_WINDOWS
        +// Tests parsing wide strings.
        +TEST_F(InitGoogleTestTest, WideStrings) {
        +  const wchar_t* argv[] = {
        +    L"foo.exe",
        +    L"--gtest_filter=Foo*",
        +    L"--gtest_list_tests=1",
        +    L"--gtest_break_on_failure",
        +    L"--non_gtest_flag",
        +    NULL
        +  };
        +
        +  const wchar_t* argv2[] = {
        +    L"foo.exe",
        +    L"--non_gtest_flag",
        +    NULL
        +  };
        +
        +  Flags expected_flags;
        +  expected_flags.break_on_failure = true;
        +  expected_flags.filter = "Foo*";
        +  expected_flags.list_tests = true;
        +
        +  GTEST_TEST_PARSING_FLAGS_(argv, argv2, expected_flags, false);
        +}
        +# endif  // GTEST_OS_WINDOWS
        +
        +#if GTEST_USE_OWN_FLAGFILE_FLAG_
        +class FlagfileTest : public InitGoogleTestTest {
        + public:
        +  virtual void SetUp() {
        +    InitGoogleTestTest::SetUp();
        +
        +    testdata_path_.Set(internal::FilePath(
        +        internal::TempDir() + internal::GetCurrentExecutableName().string() +
        +        "_flagfile_test"));
        +    testing::internal::posix::RmDir(testdata_path_.c_str());
        +    EXPECT_TRUE(testdata_path_.CreateFolder());
        +  }
        +
        +  virtual void TearDown() {
        +    testing::internal::posix::RmDir(testdata_path_.c_str());
        +    InitGoogleTestTest::TearDown();
        +  }
        +
        +  internal::FilePath CreateFlagfile(const char* contents) {
        +    internal::FilePath file_path(internal::FilePath::GenerateUniqueFileName(
        +        testdata_path_, internal::FilePath("unique"), "txt"));
        +    FILE* f = testing::internal::posix::FOpen(file_path.c_str(), "w");
        +    fprintf(f, "%s", contents);
        +    fclose(f);
        +    return file_path;
        +  }
        +
        + private:
        +  internal::FilePath testdata_path_;
        +};
        +
        +// Tests an empty flagfile.
        +TEST_F(FlagfileTest, Empty) {
        +  internal::FilePath flagfile_path(CreateFlagfile(""));
        +  std::string flagfile_flag =
        +      std::string("--" GTEST_FLAG_PREFIX_ "flagfile=") + flagfile_path.c_str();
        +
        +  const char* argv[] = {
        +    "foo.exe",
        +    flagfile_flag.c_str(),
        +    NULL
        +  };
        +
        +  const char* argv2[] = {
        +    "foo.exe",
        +    NULL
        +  };
        +
        +  GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags(), false);
        +}
        +
        +// Tests passing a non-empty --gtest_filter flag via --gtest_flagfile.
        +TEST_F(FlagfileTest, FilterNonEmpty) {
        +  internal::FilePath flagfile_path(CreateFlagfile(
        +      "--"  GTEST_FLAG_PREFIX_  "filter=abc"));
        +  std::string flagfile_flag =
        +      std::string("--" GTEST_FLAG_PREFIX_ "flagfile=") + flagfile_path.c_str();
        +
        +  const char* argv[] = {
        +    "foo.exe",
        +    flagfile_flag.c_str(),
        +    NULL
        +  };
        +
        +  const char* argv2[] = {
        +    "foo.exe",
        +    NULL
        +  };
        +
        +  GTEST_TEST_PARSING_FLAGS_(argv, argv2, Flags::Filter("abc"), false);
        +}
        +
        +// Tests passing several flags via --gtest_flagfile.
        +TEST_F(FlagfileTest, SeveralFlags) {
        +  internal::FilePath flagfile_path(CreateFlagfile(
        +      "--"  GTEST_FLAG_PREFIX_  "filter=abc\n"
        +      "--"  GTEST_FLAG_PREFIX_  "break_on_failure\n"
        +      "--"  GTEST_FLAG_PREFIX_  "list_tests"));
        +  std::string flagfile_flag =
        +      std::string("--" GTEST_FLAG_PREFIX_ "flagfile=") + flagfile_path.c_str();
        +
        +  const char* argv[] = {
        +    "foo.exe",
        +    flagfile_flag.c_str(),
        +    NULL
        +  };
        +
        +  const char* argv2[] = {
        +    "foo.exe",
        +    NULL
        +  };
        +
        +  Flags expected_flags;
        +  expected_flags.break_on_failure = true;
        +  expected_flags.filter = "abc";
        +  expected_flags.list_tests = true;
        +
        +  GTEST_TEST_PARSING_FLAGS_(argv, argv2, expected_flags, false);
        +}
        +#endif  // GTEST_USE_OWN_FLAGFILE_FLAG_
        +
        +// Tests current_test_info() in UnitTest.
        +class CurrentTestInfoTest : public Test {
        + protected:
        +  // Tests that current_test_info() returns NULL before the first test in
        +  // the test case is run.
        +  static void SetUpTestCase() {
        +    // There should be no tests running at this point.
        +    const TestInfo* test_info =
        +      UnitTest::GetInstance()->current_test_info();
        +    EXPECT_TRUE(test_info == NULL)
        +        << "There should be no tests running at this point.";
        +  }
        +
        +  // Tests that current_test_info() returns NULL after the last test in
        +  // the test case has run.
        +  static void TearDownTestCase() {
        +    const TestInfo* test_info =
        +      UnitTest::GetInstance()->current_test_info();
        +    EXPECT_TRUE(test_info == NULL)
        +        << "There should be no tests running at this point.";
        +  }
        +};
        +
        +// Tests that current_test_info() returns TestInfo for currently running
        +// test by checking the expected test name against the actual one.
        +TEST_F(CurrentTestInfoTest, WorksForFirstTestInATestCase) {
        +  const TestInfo* test_info =
        +    UnitTest::GetInstance()->current_test_info();
        +  ASSERT_TRUE(NULL != test_info)
        +      << "There is a test running so we should have a valid TestInfo.";
        +  EXPECT_STREQ("CurrentTestInfoTest", test_info->test_case_name())
        +      << "Expected the name of the currently running test case.";
        +  EXPECT_STREQ("WorksForFirstTestInATestCase", test_info->name())
        +      << "Expected the name of the currently running test.";
        +}
        +
        +// Tests that current_test_info() returns TestInfo for currently running
        +// test by checking the expected test name against the actual one.  We
        +// use this test to see that the TestInfo object actually changed from
        +// the previous invocation.
        +TEST_F(CurrentTestInfoTest, WorksForSecondTestInATestCase) {
        +  const TestInfo* test_info =
        +    UnitTest::GetInstance()->current_test_info();
        +  ASSERT_TRUE(NULL != test_info)
        +      << "There is a test running so we should have a valid TestInfo.";
        +  EXPECT_STREQ("CurrentTestInfoTest", test_info->test_case_name())
        +      << "Expected the name of the currently running test case.";
        +  EXPECT_STREQ("WorksForSecondTestInATestCase", test_info->name())
        +      << "Expected the name of the currently running test.";
        +}
        +
        +}  // namespace testing
        +
        +// These two lines test that we can define tests in a namespace that
        +// has the name "testing" and is nested in another namespace.
        +namespace my_namespace {
        +namespace testing {
        +
        +// Makes sure that TEST knows to use ::testing::Test instead of
        +// ::my_namespace::testing::Test.
        +class Test {};
        +
        +// Makes sure that an assertion knows to use ::testing::Message instead of
        +// ::my_namespace::testing::Message.
        +class Message {};
        +
        +// Makes sure that an assertion knows to use
        +// ::testing::AssertionResult instead of
        +// ::my_namespace::testing::AssertionResult.
        +class AssertionResult {};
        +
        +// Tests that an assertion that should succeed works as expected.
        +TEST(NestedTestingNamespaceTest, Success) {
        +  EXPECT_EQ(1, 1) << "This shouldn't fail.";
        +}
        +
        +// Tests that an assertion that should fail works as expected.
        +TEST(NestedTestingNamespaceTest, Failure) {
        +  EXPECT_FATAL_FAILURE(FAIL() << "This failure is expected.",
        +                       "This failure is expected.");
        +}
        +
        +}  // namespace testing
        +}  // namespace my_namespace
        +
        +// Tests that one can call superclass SetUp and TearDown methods--
        +// that is, that they are not private.
        +// No tests are based on this fixture; the test "passes" if it compiles
        +// successfully.
        +class ProtectedFixtureMethodsTest : public Test {
        + protected:
        +  virtual void SetUp() {
        +    Test::SetUp();
        +  }
        +  virtual void TearDown() {
        +    Test::TearDown();
        +  }
        +};
        +
        +// StreamingAssertionsTest tests the streaming versions of a representative
        +// sample of assertions.
        +TEST(StreamingAssertionsTest, Unconditional) {
        +  SUCCEED() << "expected success";
        +  EXPECT_NONFATAL_FAILURE(ADD_FAILURE() << "expected failure",
        +                          "expected failure");
        +  EXPECT_FATAL_FAILURE(FAIL() << "expected failure",
        +                       "expected failure");
        +}
        +
        +#ifdef __BORLANDC__
        +// Silences warnings: "Condition is always true", "Unreachable code"
        +# pragma option push -w-ccc -w-rch
        +#endif
        +
        +TEST(StreamingAssertionsTest, Truth) {
        +  EXPECT_TRUE(true) << "unexpected failure";
        +  ASSERT_TRUE(true) << "unexpected failure";
        +  EXPECT_NONFATAL_FAILURE(EXPECT_TRUE(false) << "expected failure",
        +                          "expected failure");
        +  EXPECT_FATAL_FAILURE(ASSERT_TRUE(false) << "expected failure",
        +                       "expected failure");
        +}
        +
        +TEST(StreamingAssertionsTest, Truth2) {
        +  EXPECT_FALSE(false) << "unexpected failure";
        +  ASSERT_FALSE(false) << "unexpected failure";
        +  EXPECT_NONFATAL_FAILURE(EXPECT_FALSE(true) << "expected failure",
        +                          "expected failure");
        +  EXPECT_FATAL_FAILURE(ASSERT_FALSE(true) << "expected failure",
        +                       "expected failure");
        +}
        +
        +#ifdef __BORLANDC__
        +// Restores warnings after previous "#pragma option push" supressed them
        +# pragma option pop
        +#endif
        +
        +TEST(StreamingAssertionsTest, IntegerEquals) {
        +  EXPECT_EQ(1, 1) << "unexpected failure";
        +  ASSERT_EQ(1, 1) << "unexpected failure";
        +  EXPECT_NONFATAL_FAILURE(EXPECT_EQ(1, 2) << "expected failure",
        +                          "expected failure");
        +  EXPECT_FATAL_FAILURE(ASSERT_EQ(1, 2) << "expected failure",
        +                       "expected failure");
        +}
        +
        +TEST(StreamingAssertionsTest, IntegerLessThan) {
        +  EXPECT_LT(1, 2) << "unexpected failure";
        +  ASSERT_LT(1, 2) << "unexpected failure";
        +  EXPECT_NONFATAL_FAILURE(EXPECT_LT(2, 1) << "expected failure",
        +                          "expected failure");
        +  EXPECT_FATAL_FAILURE(ASSERT_LT(2, 1) << "expected failure",
        +                       "expected failure");
        +}
        +
        +TEST(StreamingAssertionsTest, StringsEqual) {
        +  EXPECT_STREQ("foo", "foo") << "unexpected failure";
        +  ASSERT_STREQ("foo", "foo") << "unexpected failure";
        +  EXPECT_NONFATAL_FAILURE(EXPECT_STREQ("foo", "bar") << "expected failure",
        +                          "expected failure");
        +  EXPECT_FATAL_FAILURE(ASSERT_STREQ("foo", "bar") << "expected failure",
        +                       "expected failure");
        +}
        +
        +TEST(StreamingAssertionsTest, StringsNotEqual) {
        +  EXPECT_STRNE("foo", "bar") << "unexpected failure";
        +  ASSERT_STRNE("foo", "bar") << "unexpected failure";
        +  EXPECT_NONFATAL_FAILURE(EXPECT_STRNE("foo", "foo") << "expected failure",
        +                          "expected failure");
        +  EXPECT_FATAL_FAILURE(ASSERT_STRNE("foo", "foo") << "expected failure",
        +                       "expected failure");
        +}
        +
        +TEST(StreamingAssertionsTest, StringsEqualIgnoringCase) {
        +  EXPECT_STRCASEEQ("foo", "FOO") << "unexpected failure";
        +  ASSERT_STRCASEEQ("foo", "FOO") << "unexpected failure";
        +  EXPECT_NONFATAL_FAILURE(EXPECT_STRCASEEQ("foo", "bar") << "expected failure",
        +                          "expected failure");
        +  EXPECT_FATAL_FAILURE(ASSERT_STRCASEEQ("foo", "bar") << "expected failure",
        +                       "expected failure");
        +}
        +
        +TEST(StreamingAssertionsTest, StringNotEqualIgnoringCase) {
        +  EXPECT_STRCASENE("foo", "bar") << "unexpected failure";
        +  ASSERT_STRCASENE("foo", "bar") << "unexpected failure";
        +  EXPECT_NONFATAL_FAILURE(EXPECT_STRCASENE("foo", "FOO") << "expected failure",
        +                          "expected failure");
        +  EXPECT_FATAL_FAILURE(ASSERT_STRCASENE("bar", "BAR") << "expected failure",
        +                       "expected failure");
        +}
        +
        +TEST(StreamingAssertionsTest, FloatingPointEquals) {
        +  EXPECT_FLOAT_EQ(1.0, 1.0) << "unexpected failure";
        +  ASSERT_FLOAT_EQ(1.0, 1.0) << "unexpected failure";
        +  EXPECT_NONFATAL_FAILURE(EXPECT_FLOAT_EQ(0.0, 1.0) << "expected failure",
        +                          "expected failure");
        +  EXPECT_FATAL_FAILURE(ASSERT_FLOAT_EQ(0.0, 1.0) << "expected failure",
        +                       "expected failure");
        +}
        +
        +#if GTEST_HAS_EXCEPTIONS
        +
        +TEST(StreamingAssertionsTest, Throw) {
        +  EXPECT_THROW(ThrowAnInteger(), int) << "unexpected failure";
        +  ASSERT_THROW(ThrowAnInteger(), int) << "unexpected failure";
        +  EXPECT_NONFATAL_FAILURE(EXPECT_THROW(ThrowAnInteger(), bool) <<
        +                          "expected failure", "expected failure");
        +  EXPECT_FATAL_FAILURE(ASSERT_THROW(ThrowAnInteger(), bool) <<
        +                       "expected failure", "expected failure");
        +}
        +
        +TEST(StreamingAssertionsTest, NoThrow) {
        +  EXPECT_NO_THROW(ThrowNothing()) << "unexpected failure";
        +  ASSERT_NO_THROW(ThrowNothing()) << "unexpected failure";
        +  EXPECT_NONFATAL_FAILURE(EXPECT_NO_THROW(ThrowAnInteger()) <<
        +                          "expected failure", "expected failure");
        +  EXPECT_FATAL_FAILURE(ASSERT_NO_THROW(ThrowAnInteger()) <<
        +                       "expected failure", "expected failure");
        +}
        +
        +TEST(StreamingAssertionsTest, AnyThrow) {
        +  EXPECT_ANY_THROW(ThrowAnInteger()) << "unexpected failure";
        +  ASSERT_ANY_THROW(ThrowAnInteger()) << "unexpected failure";
        +  EXPECT_NONFATAL_FAILURE(EXPECT_ANY_THROW(ThrowNothing()) <<
        +                          "expected failure", "expected failure");
        +  EXPECT_FATAL_FAILURE(ASSERT_ANY_THROW(ThrowNothing()) <<
        +                       "expected failure", "expected failure");
        +}
        +
        +#endif  // GTEST_HAS_EXCEPTIONS
        +
        +// Tests that Google Test correctly decides whether to use colors in the output.
        +
        +TEST(ColoredOutputTest, UsesColorsWhenGTestColorFlagIsYes) {
        +  GTEST_FLAG(color) = "yes";
        +
        +  SetEnv("TERM", "xterm");  // TERM supports colors.
        +  EXPECT_TRUE(ShouldUseColor(true));  // Stdout is a TTY.
        +  EXPECT_TRUE(ShouldUseColor(false));  // Stdout is not a TTY.
        +
        +  SetEnv("TERM", "dumb");  // TERM doesn't support colors.
        +  EXPECT_TRUE(ShouldUseColor(true));  // Stdout is a TTY.
        +  EXPECT_TRUE(ShouldUseColor(false));  // Stdout is not a TTY.
        +}
        +
        +TEST(ColoredOutputTest, UsesColorsWhenGTestColorFlagIsAliasOfYes) {
        +  SetEnv("TERM", "dumb");  // TERM doesn't support colors.
        +
        +  GTEST_FLAG(color) = "True";
        +  EXPECT_TRUE(ShouldUseColor(false));  // Stdout is not a TTY.
        +
        +  GTEST_FLAG(color) = "t";
        +  EXPECT_TRUE(ShouldUseColor(false));  // Stdout is not a TTY.
        +
        +  GTEST_FLAG(color) = "1";
        +  EXPECT_TRUE(ShouldUseColor(false));  // Stdout is not a TTY.
        +}
        +
        +TEST(ColoredOutputTest, UsesNoColorWhenGTestColorFlagIsNo) {
        +  GTEST_FLAG(color) = "no";
        +
        +  SetEnv("TERM", "xterm");  // TERM supports colors.
        +  EXPECT_FALSE(ShouldUseColor(true));  // Stdout is a TTY.
        +  EXPECT_FALSE(ShouldUseColor(false));  // Stdout is not a TTY.
        +
        +  SetEnv("TERM", "dumb");  // TERM doesn't support colors.
        +  EXPECT_FALSE(ShouldUseColor(true));  // Stdout is a TTY.
        +  EXPECT_FALSE(ShouldUseColor(false));  // Stdout is not a TTY.
        +}
        +
        +TEST(ColoredOutputTest, UsesNoColorWhenGTestColorFlagIsInvalid) {
        +  SetEnv("TERM", "xterm");  // TERM supports colors.
        +
        +  GTEST_FLAG(color) = "F";
        +  EXPECT_FALSE(ShouldUseColor(true));  // Stdout is a TTY.
        +
        +  GTEST_FLAG(color) = "0";
        +  EXPECT_FALSE(ShouldUseColor(true));  // Stdout is a TTY.
        +
        +  GTEST_FLAG(color) = "unknown";
        +  EXPECT_FALSE(ShouldUseColor(true));  // Stdout is a TTY.
        +}
        +
        +TEST(ColoredOutputTest, UsesColorsWhenStdoutIsTty) {
        +  GTEST_FLAG(color) = "auto";
        +
        +  SetEnv("TERM", "xterm");  // TERM supports colors.
        +  EXPECT_FALSE(ShouldUseColor(false));  // Stdout is not a TTY.
        +  EXPECT_TRUE(ShouldUseColor(true));    // Stdout is a TTY.
        +}
        +
        +TEST(ColoredOutputTest, UsesColorsWhenTermSupportsColors) {
        +  GTEST_FLAG(color) = "auto";
        +
        +#if GTEST_OS_WINDOWS
        +  // On Windows, we ignore the TERM variable as it's usually not set.
        +
        +  SetEnv("TERM", "dumb");
        +  EXPECT_TRUE(ShouldUseColor(true));  // Stdout is a TTY.
        +
        +  SetEnv("TERM", "");
        +  EXPECT_TRUE(ShouldUseColor(true));  // Stdout is a TTY.
        +
        +  SetEnv("TERM", "xterm");
        +  EXPECT_TRUE(ShouldUseColor(true));  // Stdout is a TTY.
        +#else
        +  // On non-Windows platforms, we rely on TERM to determine if the
        +  // terminal supports colors.
        +
        +  SetEnv("TERM", "dumb");  // TERM doesn't support colors.
        +  EXPECT_FALSE(ShouldUseColor(true));  // Stdout is a TTY.
        +
        +  SetEnv("TERM", "emacs");  // TERM doesn't support colors.
        +  EXPECT_FALSE(ShouldUseColor(true));  // Stdout is a TTY.
        +
        +  SetEnv("TERM", "vt100");  // TERM doesn't support colors.
        +  EXPECT_FALSE(ShouldUseColor(true));  // Stdout is a TTY.
        +
        +  SetEnv("TERM", "xterm-mono");  // TERM doesn't support colors.
        +  EXPECT_FALSE(ShouldUseColor(true));  // Stdout is a TTY.
        +
        +  SetEnv("TERM", "xterm");  // TERM supports colors.
        +  EXPECT_TRUE(ShouldUseColor(true));  // Stdout is a TTY.
        +
        +  SetEnv("TERM", "xterm-color");  // TERM supports colors.
        +  EXPECT_TRUE(ShouldUseColor(true));  // Stdout is a TTY.
        +
        +  SetEnv("TERM", "xterm-256color");  // TERM supports colors.
        +  EXPECT_TRUE(ShouldUseColor(true));  // Stdout is a TTY.
        +
        +  SetEnv("TERM", "screen");  // TERM supports colors.
        +  EXPECT_TRUE(ShouldUseColor(true));  // Stdout is a TTY.
        +
        +  SetEnv("TERM", "screen-256color");  // TERM supports colors.
        +  EXPECT_TRUE(ShouldUseColor(true));  // Stdout is a TTY.
        +
        +  SetEnv("TERM", "rxvt-unicode");  // TERM supports colors.
        +  EXPECT_TRUE(ShouldUseColor(true));  // Stdout is a TTY.
        +
        +  SetEnv("TERM", "rxvt-unicode-256color");  // TERM supports colors.
        +  EXPECT_TRUE(ShouldUseColor(true));  // Stdout is a TTY.
        +
        +  SetEnv("TERM", "linux");  // TERM supports colors.
        +  EXPECT_TRUE(ShouldUseColor(true));  // Stdout is a TTY.
        +
        +  SetEnv("TERM", "cygwin");  // TERM supports colors.
        +  EXPECT_TRUE(ShouldUseColor(true));  // Stdout is a TTY.
        +#endif  // GTEST_OS_WINDOWS
        +}
        +
        +// Verifies that StaticAssertTypeEq works in a namespace scope.
        +
        +static bool dummy1 GTEST_ATTRIBUTE_UNUSED_ = StaticAssertTypeEq<bool, bool>();
        +static bool dummy2 GTEST_ATTRIBUTE_UNUSED_ =
        +    StaticAssertTypeEq<const int, const int>();
        +
        +// Verifies that StaticAssertTypeEq works in a class.
        +
        +template <typename T>
        +class StaticAssertTypeEqTestHelper {
        + public:
        +  StaticAssertTypeEqTestHelper() { StaticAssertTypeEq<bool, T>(); }
        +};
        +
        +TEST(StaticAssertTypeEqTest, WorksInClass) {
        +  StaticAssertTypeEqTestHelper<bool>();
        +}
        +
        +// Verifies that StaticAssertTypeEq works inside a function.
        +
        +typedef int IntAlias;
        +
        +TEST(StaticAssertTypeEqTest, CompilesForEqualTypes) {
        +  StaticAssertTypeEq<int, IntAlias>();
        +  StaticAssertTypeEq<int*, IntAlias*>();
        +}
        +
        +TEST(GetCurrentOsStackTraceExceptTopTest, ReturnsTheStackTrace) {
        +  testing::UnitTest* const unit_test = testing::UnitTest::GetInstance();
        +
        +  // We don't have a stack walker in Google Test yet.
        +  EXPECT_STREQ("", GetCurrentOsStackTraceExceptTop(unit_test, 0).c_str());
        +  EXPECT_STREQ("", GetCurrentOsStackTraceExceptTop(unit_test, 1).c_str());
        +}
        +
        +TEST(HasNonfatalFailureTest, ReturnsFalseWhenThereIsNoFailure) {
        +  EXPECT_FALSE(HasNonfatalFailure());
        +}
        +
        +static void FailFatally() { FAIL(); }
        +
        +TEST(HasNonfatalFailureTest, ReturnsFalseWhenThereIsOnlyFatalFailure) {
        +  FailFatally();
        +  const bool has_nonfatal_failure = HasNonfatalFailure();
        +  ClearCurrentTestPartResults();
        +  EXPECT_FALSE(has_nonfatal_failure);
        +}
        +
        +TEST(HasNonfatalFailureTest, ReturnsTrueWhenThereIsNonfatalFailure) {
        +  ADD_FAILURE();
        +  const bool has_nonfatal_failure = HasNonfatalFailure();
        +  ClearCurrentTestPartResults();
        +  EXPECT_TRUE(has_nonfatal_failure);
        +}
        +
        +TEST(HasNonfatalFailureTest, ReturnsTrueWhenThereAreFatalAndNonfatalFailures) {
        +  FailFatally();
        +  ADD_FAILURE();
        +  const bool has_nonfatal_failure = HasNonfatalFailure();
        +  ClearCurrentTestPartResults();
        +  EXPECT_TRUE(has_nonfatal_failure);
        +}
        +
        +// A wrapper for calling HasNonfatalFailure outside of a test body.
        +static bool HasNonfatalFailureHelper() {
        +  return testing::Test::HasNonfatalFailure();
        +}
        +
        +TEST(HasNonfatalFailureTest, WorksOutsideOfTestBody) {
        +  EXPECT_FALSE(HasNonfatalFailureHelper());
        +}
        +
        +TEST(HasNonfatalFailureTest, WorksOutsideOfTestBody2) {
        +  ADD_FAILURE();
        +  const bool has_nonfatal_failure = HasNonfatalFailureHelper();
        +  ClearCurrentTestPartResults();
        +  EXPECT_TRUE(has_nonfatal_failure);
        +}
        +
        +TEST(HasFailureTest, ReturnsFalseWhenThereIsNoFailure) {
        +  EXPECT_FALSE(HasFailure());
        +}
        +
        +TEST(HasFailureTest, ReturnsTrueWhenThereIsFatalFailure) {
        +  FailFatally();
        +  const bool has_failure = HasFailure();
        +  ClearCurrentTestPartResults();
        +  EXPECT_TRUE(has_failure);
        +}
        +
        +TEST(HasFailureTest, ReturnsTrueWhenThereIsNonfatalFailure) {
        +  ADD_FAILURE();
        +  const bool has_failure = HasFailure();
        +  ClearCurrentTestPartResults();
        +  EXPECT_TRUE(has_failure);
        +}
        +
        +TEST(HasFailureTest, ReturnsTrueWhenThereAreFatalAndNonfatalFailures) {
        +  FailFatally();
        +  ADD_FAILURE();
        +  const bool has_failure = HasFailure();
        +  ClearCurrentTestPartResults();
        +  EXPECT_TRUE(has_failure);
        +}
        +
        +// A wrapper for calling HasFailure outside of a test body.
        +static bool HasFailureHelper() { return testing::Test::HasFailure(); }
        +
        +TEST(HasFailureTest, WorksOutsideOfTestBody) {
        +  EXPECT_FALSE(HasFailureHelper());
        +}
        +
        +TEST(HasFailureTest, WorksOutsideOfTestBody2) {
        +  ADD_FAILURE();
        +  const bool has_failure = HasFailureHelper();
        +  ClearCurrentTestPartResults();
        +  EXPECT_TRUE(has_failure);
        +}
        +
        +class TestListener : public EmptyTestEventListener {
        + public:
        +  TestListener() : on_start_counter_(NULL), is_destroyed_(NULL) {}
        +  TestListener(int* on_start_counter, bool* is_destroyed)
        +      : on_start_counter_(on_start_counter),
        +        is_destroyed_(is_destroyed) {}
        +
        +  virtual ~TestListener() {
        +    if (is_destroyed_)
        +      *is_destroyed_ = true;
        +  }
        +
        + protected:
        +  virtual void OnTestProgramStart(const UnitTest& /*unit_test*/) {
        +    if (on_start_counter_ != NULL)
        +      (*on_start_counter_)++;
        +  }
        +
        + private:
        +  int* on_start_counter_;
        +  bool* is_destroyed_;
        +};
        +
        +// Tests the constructor.
        +TEST(TestEventListenersTest, ConstructionWorks) {
        +  TestEventListeners listeners;
        +
        +  EXPECT_TRUE(TestEventListenersAccessor::GetRepeater(&listeners) != NULL);
        +  EXPECT_TRUE(listeners.default_result_printer() == NULL);
        +  EXPECT_TRUE(listeners.default_xml_generator() == NULL);
        +}
        +
        +// Tests that the TestEventListeners destructor deletes all the listeners it
        +// owns.
        +TEST(TestEventListenersTest, DestructionWorks) {
        +  bool default_result_printer_is_destroyed = false;
        +  bool default_xml_printer_is_destroyed = false;
        +  bool extra_listener_is_destroyed = false;
        +  TestListener* default_result_printer = new TestListener(
        +      NULL, &default_result_printer_is_destroyed);
        +  TestListener* default_xml_printer = new TestListener(
        +      NULL, &default_xml_printer_is_destroyed);
        +  TestListener* extra_listener = new TestListener(
        +      NULL, &extra_listener_is_destroyed);
        +
        +  {
        +    TestEventListeners listeners;
        +    TestEventListenersAccessor::SetDefaultResultPrinter(&listeners,
        +                                                        default_result_printer);
        +    TestEventListenersAccessor::SetDefaultXmlGenerator(&listeners,
        +                                                       default_xml_printer);
        +    listeners.Append(extra_listener);
        +  }
        +  EXPECT_TRUE(default_result_printer_is_destroyed);
        +  EXPECT_TRUE(default_xml_printer_is_destroyed);
        +  EXPECT_TRUE(extra_listener_is_destroyed);
        +}
        +
        +// Tests that a listener Append'ed to a TestEventListeners list starts
        +// receiving events.
        +TEST(TestEventListenersTest, Append) {
        +  int on_start_counter = 0;
        +  bool is_destroyed = false;
        +  TestListener* listener = new TestListener(&on_start_counter, &is_destroyed);
        +  {
        +    TestEventListeners listeners;
        +    listeners.Append(listener);
        +    TestEventListenersAccessor::GetRepeater(&listeners)->OnTestProgramStart(
        +        *UnitTest::GetInstance());
        +    EXPECT_EQ(1, on_start_counter);
        +  }
        +  EXPECT_TRUE(is_destroyed);
        +}
        +
        +// Tests that listeners receive events in the order they were appended to
        +// the list, except for *End requests, which must be received in the reverse
        +// order.
        +class SequenceTestingListener : public EmptyTestEventListener {
        + public:
        +  SequenceTestingListener(std::vector<std::string>* vector, const char* id)
        +      : vector_(vector), id_(id) {}
        +
        + protected:
        +  virtual void OnTestProgramStart(const UnitTest& /*unit_test*/) {
        +    vector_->push_back(GetEventDescription("OnTestProgramStart"));
        +  }
        +
        +  virtual void OnTestProgramEnd(const UnitTest& /*unit_test*/) {
        +    vector_->push_back(GetEventDescription("OnTestProgramEnd"));
        +  }
        +
        +  virtual void OnTestIterationStart(const UnitTest& /*unit_test*/,
        +                                    int /*iteration*/) {
        +    vector_->push_back(GetEventDescription("OnTestIterationStart"));
        +  }
        +
        +  virtual void OnTestIterationEnd(const UnitTest& /*unit_test*/,
        +                                  int /*iteration*/) {
        +    vector_->push_back(GetEventDescription("OnTestIterationEnd"));
        +  }
        +
        + private:
        +  std::string GetEventDescription(const char* method) {
        +    Message message;
        +    message << id_ << "." << method;
        +    return message.GetString();
        +  }
        +
        +  std::vector<std::string>* vector_;
        +  const char* const id_;
        +
        +  GTEST_DISALLOW_COPY_AND_ASSIGN_(SequenceTestingListener);
        +};
        +
        +TEST(EventListenerTest, AppendKeepsOrder) {
        +  std::vector<std::string> vec;
        +  TestEventListeners listeners;
        +  listeners.Append(new SequenceTestingListener(&vec, "1st"));
        +  listeners.Append(new SequenceTestingListener(&vec, "2nd"));
        +  listeners.Append(new SequenceTestingListener(&vec, "3rd"));
        +
        +  TestEventListenersAccessor::GetRepeater(&listeners)->OnTestProgramStart(
        +      *UnitTest::GetInstance());
        +  ASSERT_EQ(3U, vec.size());
        +  EXPECT_STREQ("1st.OnTestProgramStart", vec[0].c_str());
        +  EXPECT_STREQ("2nd.OnTestProgramStart", vec[1].c_str());
        +  EXPECT_STREQ("3rd.OnTestProgramStart", vec[2].c_str());
        +
        +  vec.clear();
        +  TestEventListenersAccessor::GetRepeater(&listeners)->OnTestProgramEnd(
        +      *UnitTest::GetInstance());
        +  ASSERT_EQ(3U, vec.size());
        +  EXPECT_STREQ("3rd.OnTestProgramEnd", vec[0].c_str());
        +  EXPECT_STREQ("2nd.OnTestProgramEnd", vec[1].c_str());
        +  EXPECT_STREQ("1st.OnTestProgramEnd", vec[2].c_str());
        +
        +  vec.clear();
        +  TestEventListenersAccessor::GetRepeater(&listeners)->OnTestIterationStart(
        +      *UnitTest::GetInstance(), 0);
        +  ASSERT_EQ(3U, vec.size());
        +  EXPECT_STREQ("1st.OnTestIterationStart", vec[0].c_str());
        +  EXPECT_STREQ("2nd.OnTestIterationStart", vec[1].c_str());
        +  EXPECT_STREQ("3rd.OnTestIterationStart", vec[2].c_str());
        +
        +  vec.clear();
        +  TestEventListenersAccessor::GetRepeater(&listeners)->OnTestIterationEnd(
        +      *UnitTest::GetInstance(), 0);
        +  ASSERT_EQ(3U, vec.size());
        +  EXPECT_STREQ("3rd.OnTestIterationEnd", vec[0].c_str());
        +  EXPECT_STREQ("2nd.OnTestIterationEnd", vec[1].c_str());
        +  EXPECT_STREQ("1st.OnTestIterationEnd", vec[2].c_str());
        +}
        +
        +// Tests that a listener removed from a TestEventListeners list stops receiving
        +// events and is not deleted when the list is destroyed.
        +TEST(TestEventListenersTest, Release) {
        +  int on_start_counter = 0;
        +  bool is_destroyed = false;
        +  // Although Append passes the ownership of this object to the list,
        +  // the following calls release it, and we need to delete it before the
        +  // test ends.
        +  TestListener* listener = new TestListener(&on_start_counter, &is_destroyed);
        +  {
        +    TestEventListeners listeners;
        +    listeners.Append(listener);
        +    EXPECT_EQ(listener, listeners.Release(listener));
        +    TestEventListenersAccessor::GetRepeater(&listeners)->OnTestProgramStart(
        +        *UnitTest::GetInstance());
        +    EXPECT_TRUE(listeners.Release(listener) == NULL);
        +  }
        +  EXPECT_EQ(0, on_start_counter);
        +  EXPECT_FALSE(is_destroyed);
        +  delete listener;
        +}
        +
        +// Tests that no events are forwarded when event forwarding is disabled.
        +TEST(EventListenerTest, SuppressEventForwarding) {
        +  int on_start_counter = 0;
        +  TestListener* listener = new TestListener(&on_start_counter, NULL);
        +
        +  TestEventListeners listeners;
        +  listeners.Append(listener);
        +  ASSERT_TRUE(TestEventListenersAccessor::EventForwardingEnabled(listeners));
        +  TestEventListenersAccessor::SuppressEventForwarding(&listeners);
        +  ASSERT_FALSE(TestEventListenersAccessor::EventForwardingEnabled(listeners));
        +  TestEventListenersAccessor::GetRepeater(&listeners)->OnTestProgramStart(
        +      *UnitTest::GetInstance());
        +  EXPECT_EQ(0, on_start_counter);
        +}
        +
        +// Tests that events generated by Google Test are not forwarded in
        +// death test subprocesses.
        +TEST(EventListenerDeathTest, EventsNotForwardedInDeathTestSubprecesses) {
        +  EXPECT_DEATH_IF_SUPPORTED({
        +      GTEST_CHECK_(TestEventListenersAccessor::EventForwardingEnabled(
        +          *GetUnitTestImpl()->listeners())) << "expected failure";},
        +      "expected failure");
        +}
        +
        +// Tests that a listener installed via SetDefaultResultPrinter() starts
        +// receiving events and is returned via default_result_printer() and that
        +// the previous default_result_printer is removed from the list and deleted.
        +TEST(EventListenerTest, default_result_printer) {
        +  int on_start_counter = 0;
        +  bool is_destroyed = false;
        +  TestListener* listener = new TestListener(&on_start_counter, &is_destroyed);
        +
        +  TestEventListeners listeners;
        +  TestEventListenersAccessor::SetDefaultResultPrinter(&listeners, listener);
        +
        +  EXPECT_EQ(listener, listeners.default_result_printer());
        +
        +  TestEventListenersAccessor::GetRepeater(&listeners)->OnTestProgramStart(
        +      *UnitTest::GetInstance());
        +
        +  EXPECT_EQ(1, on_start_counter);
        +
        +  // Replacing default_result_printer with something else should remove it
        +  // from the list and destroy it.
        +  TestEventListenersAccessor::SetDefaultResultPrinter(&listeners, NULL);
        +
        +  EXPECT_TRUE(listeners.default_result_printer() == NULL);
        +  EXPECT_TRUE(is_destroyed);
        +
        +  // After broadcasting an event the counter is still the same, indicating
        +  // the listener is not in the list anymore.
        +  TestEventListenersAccessor::GetRepeater(&listeners)->OnTestProgramStart(
        +      *UnitTest::GetInstance());
        +  EXPECT_EQ(1, on_start_counter);
        +}
        +
        +// Tests that the default_result_printer listener stops receiving events
        +// when removed via Release and that is not owned by the list anymore.
        +TEST(EventListenerTest, RemovingDefaultResultPrinterWorks) {
        +  int on_start_counter = 0;
        +  bool is_destroyed = false;
        +  // Although Append passes the ownership of this object to the list,
        +  // the following calls release it, and we need to delete it before the
        +  // test ends.
        +  TestListener* listener = new TestListener(&on_start_counter, &is_destroyed);
        +  {
        +    TestEventListeners listeners;
        +    TestEventListenersAccessor::SetDefaultResultPrinter(&listeners, listener);
        +
        +    EXPECT_EQ(listener, listeners.Release(listener));
        +    EXPECT_TRUE(listeners.default_result_printer() == NULL);
        +    EXPECT_FALSE(is_destroyed);
        +
        +    // Broadcasting events now should not affect default_result_printer.
        +    TestEventListenersAccessor::GetRepeater(&listeners)->OnTestProgramStart(
        +        *UnitTest::GetInstance());
        +    EXPECT_EQ(0, on_start_counter);
        +  }
        +  // Destroying the list should not affect the listener now, too.
        +  EXPECT_FALSE(is_destroyed);
        +  delete listener;
        +}
        +
        +// Tests that a listener installed via SetDefaultXmlGenerator() starts
        +// receiving events and is returned via default_xml_generator() and that
        +// the previous default_xml_generator is removed from the list and deleted.
        +TEST(EventListenerTest, default_xml_generator) {
        +  int on_start_counter = 0;
        +  bool is_destroyed = false;
        +  TestListener* listener = new TestListener(&on_start_counter, &is_destroyed);
        +
        +  TestEventListeners listeners;
        +  TestEventListenersAccessor::SetDefaultXmlGenerator(&listeners, listener);
        +
        +  EXPECT_EQ(listener, listeners.default_xml_generator());
        +
        +  TestEventListenersAccessor::GetRepeater(&listeners)->OnTestProgramStart(
        +      *UnitTest::GetInstance());
        +
        +  EXPECT_EQ(1, on_start_counter);
        +
        +  // Replacing default_xml_generator with something else should remove it
        +  // from the list and destroy it.
        +  TestEventListenersAccessor::SetDefaultXmlGenerator(&listeners, NULL);
        +
        +  EXPECT_TRUE(listeners.default_xml_generator() == NULL);
        +  EXPECT_TRUE(is_destroyed);
        +
        +  // After broadcasting an event the counter is still the same, indicating
        +  // the listener is not in the list anymore.
        +  TestEventListenersAccessor::GetRepeater(&listeners)->OnTestProgramStart(
        +      *UnitTest::GetInstance());
        +  EXPECT_EQ(1, on_start_counter);
        +}
        +
        +// Tests that the default_xml_generator listener stops receiving events
        +// when removed via Release and that is not owned by the list anymore.
        +TEST(EventListenerTest, RemovingDefaultXmlGeneratorWorks) {
        +  int on_start_counter = 0;
        +  bool is_destroyed = false;
        +  // Although Append passes the ownership of this object to the list,
        +  // the following calls release it, and we need to delete it before the
        +  // test ends.
        +  TestListener* listener = new TestListener(&on_start_counter, &is_destroyed);
        +  {
        +    TestEventListeners listeners;
        +    TestEventListenersAccessor::SetDefaultXmlGenerator(&listeners, listener);
        +
        +    EXPECT_EQ(listener, listeners.Release(listener));
        +    EXPECT_TRUE(listeners.default_xml_generator() == NULL);
        +    EXPECT_FALSE(is_destroyed);
        +
        +    // Broadcasting events now should not affect default_xml_generator.
        +    TestEventListenersAccessor::GetRepeater(&listeners)->OnTestProgramStart(
        +        *UnitTest::GetInstance());
        +    EXPECT_EQ(0, on_start_counter);
        +  }
        +  // Destroying the list should not affect the listener now, too.
        +  EXPECT_FALSE(is_destroyed);
        +  delete listener;
        +}
        +
        +// Sanity tests to ensure that the alternative, verbose spellings of
        +// some of the macros work.  We don't test them thoroughly as that
        +// would be quite involved.  Since their implementations are
        +// straightforward, and they are rarely used, we'll just rely on the
        +// users to tell us when they are broken.
        +GTEST_TEST(AlternativeNameTest, Works) {  // GTEST_TEST is the same as TEST.
        +  GTEST_SUCCEED() << "OK";  // GTEST_SUCCEED is the same as SUCCEED.
        +
        +  // GTEST_FAIL is the same as FAIL.
        +  EXPECT_FATAL_FAILURE(GTEST_FAIL() << "An expected failure",
        +                       "An expected failure");
        +
        +  // GTEST_ASSERT_XY is the same as ASSERT_XY.
        +
        +  GTEST_ASSERT_EQ(0, 0);
        +  EXPECT_FATAL_FAILURE(GTEST_ASSERT_EQ(0, 1) << "An expected failure",
        +                       "An expected failure");
        +  EXPECT_FATAL_FAILURE(GTEST_ASSERT_EQ(1, 0) << "An expected failure",
        +                       "An expected failure");
        +
        +  GTEST_ASSERT_NE(0, 1);
        +  GTEST_ASSERT_NE(1, 0);
        +  EXPECT_FATAL_FAILURE(GTEST_ASSERT_NE(0, 0) << "An expected failure",
        +                       "An expected failure");
        +
        +  GTEST_ASSERT_LE(0, 0);
        +  GTEST_ASSERT_LE(0, 1);
        +  EXPECT_FATAL_FAILURE(GTEST_ASSERT_LE(1, 0) << "An expected failure",
        +                       "An expected failure");
        +
        +  GTEST_ASSERT_LT(0, 1);
        +  EXPECT_FATAL_FAILURE(GTEST_ASSERT_LT(0, 0) << "An expected failure",
        +                       "An expected failure");
        +  EXPECT_FATAL_FAILURE(GTEST_ASSERT_LT(1, 0) << "An expected failure",
        +                       "An expected failure");
        +
        +  GTEST_ASSERT_GE(0, 0);
        +  GTEST_ASSERT_GE(1, 0);
        +  EXPECT_FATAL_FAILURE(GTEST_ASSERT_GE(0, 1) << "An expected failure",
        +                       "An expected failure");
        +
        +  GTEST_ASSERT_GT(1, 0);
        +  EXPECT_FATAL_FAILURE(GTEST_ASSERT_GT(0, 1) << "An expected failure",
        +                       "An expected failure");
        +  EXPECT_FATAL_FAILURE(GTEST_ASSERT_GT(1, 1) << "An expected failure",
        +                       "An expected failure");
        +}
        +
        +// Tests for internal utilities necessary for implementation of the universal
        +// printing.
        +// TODO(vladl@google.com): Find a better home for them.
        +
        +class ConversionHelperBase {};
        +class ConversionHelperDerived : public ConversionHelperBase {};
        +
        +// Tests that IsAProtocolMessage<T>::value is a compile-time constant.
        +TEST(IsAProtocolMessageTest, ValueIsCompileTimeConstant) {
        +  GTEST_COMPILE_ASSERT_(IsAProtocolMessage<ProtocolMessage>::value,
        +                        const_true);
        +  GTEST_COMPILE_ASSERT_(!IsAProtocolMessage<int>::value, const_false);
        +}
        +
        +// Tests that IsAProtocolMessage<T>::value is true when T is
        +// proto2::Message or a sub-class of it.
        +TEST(IsAProtocolMessageTest, ValueIsTrueWhenTypeIsAProtocolMessage) {
        +  EXPECT_TRUE(IsAProtocolMessage< ::proto2::Message>::value);
        +  EXPECT_TRUE(IsAProtocolMessage<ProtocolMessage>::value);
        +}
        +
        +// Tests that IsAProtocolMessage<T>::value is false when T is neither
        +// ProtocolMessage nor a sub-class of it.
        +TEST(IsAProtocolMessageTest, ValueIsFalseWhenTypeIsNotAProtocolMessage) {
        +  EXPECT_FALSE(IsAProtocolMessage<int>::value);
        +  EXPECT_FALSE(IsAProtocolMessage<const ConversionHelperBase>::value);
        +}
        +
        +// Tests that CompileAssertTypesEqual compiles when the type arguments are
        +// equal.
        +TEST(CompileAssertTypesEqual, CompilesWhenTypesAreEqual) {
        +  CompileAssertTypesEqual<void, void>();
        +  CompileAssertTypesEqual<int*, int*>();
        +}
        +
        +// Tests that RemoveReference does not affect non-reference types.
        +TEST(RemoveReferenceTest, DoesNotAffectNonReferenceType) {
        +  CompileAssertTypesEqual<int, RemoveReference<int>::type>();
        +  CompileAssertTypesEqual<const char, RemoveReference<const char>::type>();
        +}
        +
        +// Tests that RemoveReference removes reference from reference types.
        +TEST(RemoveReferenceTest, RemovesReference) {
        +  CompileAssertTypesEqual<int, RemoveReference<int&>::type>();
        +  CompileAssertTypesEqual<const char, RemoveReference<const char&>::type>();
        +}
        +
        +// Tests GTEST_REMOVE_REFERENCE_.
        +
        +template <typename T1, typename T2>
        +void TestGTestRemoveReference() {
        +  CompileAssertTypesEqual<T1, GTEST_REMOVE_REFERENCE_(T2)>();
        +}
        +
        +TEST(RemoveReferenceTest, MacroVersion) {
        +  TestGTestRemoveReference<int, int>();
        +  TestGTestRemoveReference<const char, const char&>();
        +}
        +
        +
        +// Tests that RemoveConst does not affect non-const types.
        +TEST(RemoveConstTest, DoesNotAffectNonConstType) {
        +  CompileAssertTypesEqual<int, RemoveConst<int>::type>();
        +  CompileAssertTypesEqual<char&, RemoveConst<char&>::type>();
        +}
        +
        +// Tests that RemoveConst removes const from const types.
        +TEST(RemoveConstTest, RemovesConst) {
        +  CompileAssertTypesEqual<int, RemoveConst<const int>::type>();
        +  CompileAssertTypesEqual<char[2], RemoveConst<const char[2]>::type>();
        +  CompileAssertTypesEqual<char[2][3], RemoveConst<const char[2][3]>::type>();
        +}
        +
        +// Tests GTEST_REMOVE_CONST_.
        +
        +template <typename T1, typename T2>
        +void TestGTestRemoveConst() {
        +  CompileAssertTypesEqual<T1, GTEST_REMOVE_CONST_(T2)>();
        +}
        +
        +TEST(RemoveConstTest, MacroVersion) {
        +  TestGTestRemoveConst<int, int>();
        +  TestGTestRemoveConst<double&, double&>();
        +  TestGTestRemoveConst<char, const char>();
        +}
        +
        +// Tests GTEST_REMOVE_REFERENCE_AND_CONST_.
        +
        +template <typename T1, typename T2>
        +void TestGTestRemoveReferenceAndConst() {
        +  CompileAssertTypesEqual<T1, GTEST_REMOVE_REFERENCE_AND_CONST_(T2)>();
        +}
        +
        +TEST(RemoveReferenceToConstTest, Works) {
        +  TestGTestRemoveReferenceAndConst<int, int>();
        +  TestGTestRemoveReferenceAndConst<double, double&>();
        +  TestGTestRemoveReferenceAndConst<char, const char>();
        +  TestGTestRemoveReferenceAndConst<char, const char&>();
        +  TestGTestRemoveReferenceAndConst<const char*, const char*>();
        +}
        +
        +// Tests that AddReference does not affect reference types.
        +TEST(AddReferenceTest, DoesNotAffectReferenceType) {
        +  CompileAssertTypesEqual<int&, AddReference<int&>::type>();
        +  CompileAssertTypesEqual<const char&, AddReference<const char&>::type>();
        +}
        +
        +// Tests that AddReference adds reference to non-reference types.
        +TEST(AddReferenceTest, AddsReference) {
        +  CompileAssertTypesEqual<int&, AddReference<int>::type>();
        +  CompileAssertTypesEqual<const char&, AddReference<const char>::type>();
        +}
        +
        +// Tests GTEST_ADD_REFERENCE_.
        +
        +template <typename T1, typename T2>
        +void TestGTestAddReference() {
        +  CompileAssertTypesEqual<T1, GTEST_ADD_REFERENCE_(T2)>();
        +}
        +
        +TEST(AddReferenceTest, MacroVersion) {
        +  TestGTestAddReference<int&, int>();
        +  TestGTestAddReference<const char&, const char&>();
        +}
        +
        +// Tests GTEST_REFERENCE_TO_CONST_.
        +
        +template <typename T1, typename T2>
        +void TestGTestReferenceToConst() {
        +  CompileAssertTypesEqual<T1, GTEST_REFERENCE_TO_CONST_(T2)>();
        +}
        +
        +TEST(GTestReferenceToConstTest, Works) {
        +  TestGTestReferenceToConst<const char&, char>();
        +  TestGTestReferenceToConst<const int&, const int>();
        +  TestGTestReferenceToConst<const double&, double>();
        +  TestGTestReferenceToConst<const std::string&, const std::string&>();
        +}
        +
        +// Tests that ImplicitlyConvertible<T1, T2>::value is a compile-time constant.
        +TEST(ImplicitlyConvertibleTest, ValueIsCompileTimeConstant) {
        +  GTEST_COMPILE_ASSERT_((ImplicitlyConvertible<int, int>::value), const_true);
        +  GTEST_COMPILE_ASSERT_((!ImplicitlyConvertible<void*, int*>::value),
        +                        const_false);
        +}
        +
        +// Tests that ImplicitlyConvertible<T1, T2>::value is true when T1 can
        +// be implicitly converted to T2.
        +TEST(ImplicitlyConvertibleTest, ValueIsTrueWhenConvertible) {
        +  EXPECT_TRUE((ImplicitlyConvertible<int, double>::value));
        +  EXPECT_TRUE((ImplicitlyConvertible<double, int>::value));
        +  EXPECT_TRUE((ImplicitlyConvertible<int*, void*>::value));
        +  EXPECT_TRUE((ImplicitlyConvertible<int*, const int*>::value));
        +  EXPECT_TRUE((ImplicitlyConvertible<ConversionHelperDerived&,
        +                                     const ConversionHelperBase&>::value));
        +  EXPECT_TRUE((ImplicitlyConvertible<const ConversionHelperBase,
        +                                     ConversionHelperBase>::value));
        +}
        +
        +// Tests that ImplicitlyConvertible<T1, T2>::value is false when T1
        +// cannot be implicitly converted to T2.
        +TEST(ImplicitlyConvertibleTest, ValueIsFalseWhenNotConvertible) {
        +  EXPECT_FALSE((ImplicitlyConvertible<double, int*>::value));
        +  EXPECT_FALSE((ImplicitlyConvertible<void*, int*>::value));
        +  EXPECT_FALSE((ImplicitlyConvertible<const int*, int*>::value));
        +  EXPECT_FALSE((ImplicitlyConvertible<ConversionHelperBase&,
        +                                      ConversionHelperDerived&>::value));
        +}
        +
        +// Tests IsContainerTest.
        +
        +class NonContainer {};
        +
        +TEST(IsContainerTestTest, WorksForNonContainer) {
        +  EXPECT_EQ(sizeof(IsNotContainer), sizeof(IsContainerTest<int>(0)));
        +  EXPECT_EQ(sizeof(IsNotContainer), sizeof(IsContainerTest<char[5]>(0)));
        +  EXPECT_EQ(sizeof(IsNotContainer), sizeof(IsContainerTest<NonContainer>(0)));
        +}
        +
        +TEST(IsContainerTestTest, WorksForContainer) {
        +  EXPECT_EQ(sizeof(IsContainer),
        +            sizeof(IsContainerTest<std::vector<bool> >(0)));
        +  EXPECT_EQ(sizeof(IsContainer),
        +            sizeof(IsContainerTest<std::map<int, double> >(0)));
        +}
        +
        +// Tests ArrayEq().
        +
        +TEST(ArrayEqTest, WorksForDegeneratedArrays) {
        +  EXPECT_TRUE(ArrayEq(5, 5L));
        +  EXPECT_FALSE(ArrayEq('a', 0));
        +}
        +
        +TEST(ArrayEqTest, WorksForOneDimensionalArrays) {
        +  // Note that a and b are distinct but compatible types.
        +  const int a[] = { 0, 1 };
        +  long b[] = { 0, 1 };
        +  EXPECT_TRUE(ArrayEq(a, b));
        +  EXPECT_TRUE(ArrayEq(a, 2, b));
        +
        +  b[0] = 2;
        +  EXPECT_FALSE(ArrayEq(a, b));
        +  EXPECT_FALSE(ArrayEq(a, 1, b));
        +}
        +
        +TEST(ArrayEqTest, WorksForTwoDimensionalArrays) {
        +  const char a[][3] = { "hi", "lo" };
        +  const char b[][3] = { "hi", "lo" };
        +  const char c[][3] = { "hi", "li" };
        +
        +  EXPECT_TRUE(ArrayEq(a, b));
        +  EXPECT_TRUE(ArrayEq(a, 2, b));
        +
        +  EXPECT_FALSE(ArrayEq(a, c));
        +  EXPECT_FALSE(ArrayEq(a, 2, c));
        +}
        +
        +// Tests ArrayAwareFind().
        +
        +TEST(ArrayAwareFindTest, WorksForOneDimensionalArray) {
        +  const char a[] = "hello";
        +  EXPECT_EQ(a + 4, ArrayAwareFind(a, a + 5, 'o'));
        +  EXPECT_EQ(a + 5, ArrayAwareFind(a, a + 5, 'x'));
        +}
        +
        +TEST(ArrayAwareFindTest, WorksForTwoDimensionalArray) {
        +  int a[][2] = { { 0, 1 }, { 2, 3 }, { 4, 5 } };
        +  const int b[2] = { 2, 3 };
        +  EXPECT_EQ(a + 1, ArrayAwareFind(a, a + 3, b));
        +
        +  const int c[2] = { 6, 7 };
        +  EXPECT_EQ(a + 3, ArrayAwareFind(a, a + 3, c));
        +}
        +
        +// Tests CopyArray().
        +
        +TEST(CopyArrayTest, WorksForDegeneratedArrays) {
        +  int n = 0;
        +  CopyArray('a', &n);
        +  EXPECT_EQ('a', n);
        +}
        +
        +TEST(CopyArrayTest, WorksForOneDimensionalArrays) {
        +  const char a[3] = "hi";
        +  int b[3];
        +#ifndef __BORLANDC__  // C++Builder cannot compile some array size deductions.
        +  CopyArray(a, &b);
        +  EXPECT_TRUE(ArrayEq(a, b));
        +#endif
        +
        +  int c[3];
        +  CopyArray(a, 3, c);
        +  EXPECT_TRUE(ArrayEq(a, c));
        +}
        +
        +TEST(CopyArrayTest, WorksForTwoDimensionalArrays) {
        +  const int a[2][3] = { { 0, 1, 2 }, { 3, 4, 5 } };
        +  int b[2][3];
        +#ifndef __BORLANDC__  // C++Builder cannot compile some array size deductions.
        +  CopyArray(a, &b);
        +  EXPECT_TRUE(ArrayEq(a, b));
        +#endif
        +
        +  int c[2][3];
        +  CopyArray(a, 2, c);
        +  EXPECT_TRUE(ArrayEq(a, c));
        +}
        +
        +// Tests NativeArray.
        +
        +TEST(NativeArrayTest, ConstructorFromArrayWorks) {
        +  const int a[3] = { 0, 1, 2 };
        +  NativeArray<int> na(a, 3, RelationToSourceReference());
        +  EXPECT_EQ(3U, na.size());
        +  EXPECT_EQ(a, na.begin());
        +}
        +
        +TEST(NativeArrayTest, CreatesAndDeletesCopyOfArrayWhenAskedTo) {
        +  typedef int Array[2];
        +  Array* a = new Array[1];
        +  (*a)[0] = 0;
        +  (*a)[1] = 1;
        +  NativeArray<int> na(*a, 2, RelationToSourceCopy());
        +  EXPECT_NE(*a, na.begin());
        +  delete[] a;
        +  EXPECT_EQ(0, na.begin()[0]);
        +  EXPECT_EQ(1, na.begin()[1]);
        +
        +  // We rely on the heap checker to verify that na deletes the copy of
        +  // array.
        +}
        +
        +TEST(NativeArrayTest, TypeMembersAreCorrect) {
        +  StaticAssertTypeEq<char, NativeArray<char>::value_type>();
        +  StaticAssertTypeEq<int[2], NativeArray<int[2]>::value_type>();
        +
        +  StaticAssertTypeEq<const char*, NativeArray<char>::const_iterator>();
        +  StaticAssertTypeEq<const bool(*)[2], NativeArray<bool[2]>::const_iterator>();
        +}
        +
        +TEST(NativeArrayTest, MethodsWork) {
        +  const int a[3] = { 0, 1, 2 };
        +  NativeArray<int> na(a, 3, RelationToSourceCopy());
        +  ASSERT_EQ(3U, na.size());
        +  EXPECT_EQ(3, na.end() - na.begin());
        +
        +  NativeArray<int>::const_iterator it = na.begin();
        +  EXPECT_EQ(0, *it);
        +  ++it;
        +  EXPECT_EQ(1, *it);
        +  it++;
        +  EXPECT_EQ(2, *it);
        +  ++it;
        +  EXPECT_EQ(na.end(), it);
        +
        +  EXPECT_TRUE(na == na);
        +
        +  NativeArray<int> na2(a, 3, RelationToSourceReference());
        +  EXPECT_TRUE(na == na2);
        +
        +  const int b1[3] = { 0, 1, 1 };
        +  const int b2[4] = { 0, 1, 2, 3 };
        +  EXPECT_FALSE(na == NativeArray<int>(b1, 3, RelationToSourceReference()));
        +  EXPECT_FALSE(na == NativeArray<int>(b2, 4, RelationToSourceCopy()));
        +}
        +
        +TEST(NativeArrayTest, WorksForTwoDimensionalArray) {
        +  const char a[2][3] = { "hi", "lo" };
        +  NativeArray<char[3]> na(a, 2, RelationToSourceReference());
        +  ASSERT_EQ(2U, na.size());
        +  EXPECT_EQ(a, na.begin());
        +}
        +
        +// Tests SkipPrefix().
        +
        +TEST(SkipPrefixTest, SkipsWhenPrefixMatches) {
        +  const char* const str = "hello";
        +
        +  const char* p = str;
        +  EXPECT_TRUE(SkipPrefix("", &p));
        +  EXPECT_EQ(str, p);
        +
        +  p = str;
        +  EXPECT_TRUE(SkipPrefix("hell", &p));
        +  EXPECT_EQ(str + 4, p);
        +}
        +
        +TEST(SkipPrefixTest, DoesNotSkipWhenPrefixDoesNotMatch) {
        +  const char* const str = "world";
        +
        +  const char* p = str;
        +  EXPECT_FALSE(SkipPrefix("W", &p));
        +  EXPECT_EQ(str, p);
        +
        +  p = str;
        +  EXPECT_FALSE(SkipPrefix("world!", &p));
        +  EXPECT_EQ(str, p);
        +}
        +
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_xml_outfile1_test_.cc b/lib/ann/fann/lib/googletest/test/gtest_xml_outfile1_test_.cc
        new file mode 100644
        index 0000000..531ced4
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_xml_outfile1_test_.cc
        @@ -0,0 +1,49 @@
        +// Copyright 2008, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: keith.ray@gmail.com (Keith Ray)
        +//
        +// gtest_xml_outfile1_test_ writes some xml via TestProperty used by
        +// gtest_xml_outfiles_test.py
        +
        +#include "gtest/gtest.h"
        +
        +class PropertyOne : public testing::Test {
        + protected:
        +  virtual void SetUp() {
        +    RecordProperty("SetUpProp", 1);
        +  }
        +  virtual void TearDown() {
        +    RecordProperty("TearDownProp", 1);
        +  }
        +};
        +
        +TEST_F(PropertyOne, TestSomeProperties) {
        +  RecordProperty("TestSomeProperty", 1);
        +}
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_xml_outfile2_test_.cc b/lib/ann/fann/lib/googletest/test/gtest_xml_outfile2_test_.cc
        new file mode 100644
        index 0000000..7b400b2
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_xml_outfile2_test_.cc
        @@ -0,0 +1,49 @@
        +// Copyright 2008, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: keith.ray@gmail.com (Keith Ray)
        +//
        +// gtest_xml_outfile2_test_ writes some xml via TestProperty used by
        +// gtest_xml_outfiles_test.py
        +
        +#include "gtest/gtest.h"
        +
        +class PropertyTwo : public testing::Test {
        + protected:
        +  virtual void SetUp() {
        +    RecordProperty("SetUpProp", 2);
        +  }
        +  virtual void TearDown() {
        +    RecordProperty("TearDownProp", 2);
        +  }
        +};
        +
        +TEST_F(PropertyTwo, TestSomeProperties) {
        +  RecordProperty("TestSomeProperty", 2);
        +}
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_xml_outfiles_test.py b/lib/ann/fann/lib/googletest/test/gtest_xml_outfiles_test.py
        new file mode 100755
        index 0000000..524e437
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_xml_outfiles_test.py
        @@ -0,0 +1,132 @@
        +#!/usr/bin/env python
        +#
        +# Copyright 2008, Google Inc.
        +# All rights reserved.
        +#
        +# Redistribution and use in source and binary forms, with or without
        +# modification, are permitted provided that the following conditions are
        +# met:
        +#
        +#     * Redistributions of source code must retain the above copyright
        +# notice, this list of conditions and the following disclaimer.
        +#     * Redistributions in binary form must reproduce the above
        +# copyright notice, this list of conditions and the following disclaimer
        +# in the documentation and/or other materials provided with the
        +# distribution.
        +#     * Neither the name of Google Inc. nor the names of its
        +# contributors may be used to endorse or promote products derived from
        +# this software without specific prior written permission.
        +#
        +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +"""Unit test for the gtest_xml_output module."""
        +
        +__author__ = "keith.ray@gmail.com (Keith Ray)"
        +
        +import os
        +from xml.dom import minidom, Node
        +
        +import gtest_test_utils
        +import gtest_xml_test_utils
        +
        +
        +GTEST_OUTPUT_SUBDIR = "xml_outfiles"
        +GTEST_OUTPUT_1_TEST = "gtest_xml_outfile1_test_"
        +GTEST_OUTPUT_2_TEST = "gtest_xml_outfile2_test_"
        +
        +EXPECTED_XML_1 = """<?xml version="1.0" encoding="UTF-8"?>
        +<testsuites tests="1" failures="0" disabled="0" errors="0" time="*" timestamp="*" name="AllTests">
        +  <testsuite name="PropertyOne" tests="1" failures="0" disabled="0" errors="0" time="*">
        +    <testcase name="TestSomeProperties" status="run" time="*" classname="PropertyOne" SetUpProp="1" TestSomeProperty="1" TearDownProp="1" />
        +  </testsuite>
        +</testsuites>
        +"""
        +
        +EXPECTED_XML_2 = """<?xml version="1.0" encoding="UTF-8"?>
        +<testsuites tests="1" failures="0" disabled="0" errors="0" time="*" timestamp="*" name="AllTests">
        +  <testsuite name="PropertyTwo" tests="1" failures="0" disabled="0" errors="0" time="*">
        +    <testcase name="TestSomeProperties" status="run" time="*" classname="PropertyTwo" SetUpProp="2" TestSomeProperty="2" TearDownProp="2" />
        +  </testsuite>
        +</testsuites>
        +"""
        +
        +
        +class GTestXMLOutFilesTest(gtest_xml_test_utils.GTestXMLTestCase):
        +  """Unit test for Google Test's XML output functionality."""
        +
        +  def setUp(self):
        +    # We want the trailing '/' that the last "" provides in os.path.join, for
        +    # telling Google Test to create an output directory instead of a single file
        +    # for xml output.
        +    self.output_dir_ = os.path.join(gtest_test_utils.GetTempDir(),
        +                                    GTEST_OUTPUT_SUBDIR, "")
        +    self.DeleteFilesAndDir()
        +
        +  def tearDown(self):
        +    self.DeleteFilesAndDir()
        +
        +  def DeleteFilesAndDir(self):
        +    try:
        +      os.remove(os.path.join(self.output_dir_, GTEST_OUTPUT_1_TEST + ".xml"))
        +    except os.error:
        +      pass
        +    try:
        +      os.remove(os.path.join(self.output_dir_, GTEST_OUTPUT_2_TEST + ".xml"))
        +    except os.error:
        +      pass
        +    try:
        +      os.rmdir(self.output_dir_)
        +    except os.error:
        +      pass
        +
        +  def testOutfile1(self):
        +    self._TestOutFile(GTEST_OUTPUT_1_TEST, EXPECTED_XML_1)
        +
        +  def testOutfile2(self):
        +    self._TestOutFile(GTEST_OUTPUT_2_TEST, EXPECTED_XML_2)
        +
        +  def _TestOutFile(self, test_name, expected_xml):
        +    gtest_prog_path = gtest_test_utils.GetTestExecutablePath(test_name)
        +    command = [gtest_prog_path, "--gtest_output=xml:%s" % self.output_dir_]
        +    p = gtest_test_utils.Subprocess(command,
        +                                    working_dir=gtest_test_utils.GetTempDir())
        +    self.assert_(p.exited)
        +    self.assertEquals(0, p.exit_code)
        +
        +    # TODO(wan@google.com): libtool causes the built test binary to be
        +    #   named lt-gtest_xml_outfiles_test_ instead of
        +    #   gtest_xml_outfiles_test_.  To account for this possibillity, we
        +    #   allow both names in the following code.  We should remove this
        +    #   hack when Chandler Carruth's libtool replacement tool is ready.
        +    output_file_name1 = test_name + ".xml"
        +    output_file1 = os.path.join(self.output_dir_, output_file_name1)
        +    output_file_name2 = 'lt-' + output_file_name1
        +    output_file2 = os.path.join(self.output_dir_, output_file_name2)
        +    self.assert_(os.path.isfile(output_file1) or os.path.isfile(output_file2),
        +                 output_file1)
        +
        +    expected = minidom.parseString(expected_xml)
        +    if os.path.isfile(output_file1):
        +      actual = minidom.parse(output_file1)
        +    else:
        +      actual = minidom.parse(output_file2)
        +    self.NormalizeXml(actual.documentElement)
        +    self.AssertEquivalentNodes(expected.documentElement,
        +                               actual.documentElement)
        +    expected.unlink()
        +    actual.unlink()
        +
        +
        +if __name__ == "__main__":
        +  os.environ["GTEST_STACK_TRACE_DEPTH"] = "0"
        +  gtest_test_utils.Main()
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_xml_output_unittest.py b/lib/ann/fann/lib/googletest/test/gtest_xml_output_unittest.py
        new file mode 100755
        index 0000000..f605d4e
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_xml_output_unittest.py
        @@ -0,0 +1,307 @@
        +#!/usr/bin/env python
        +#
        +# Copyright 2006, Google Inc.
        +# All rights reserved.
        +#
        +# Redistribution and use in source and binary forms, with or without
        +# modification, are permitted provided that the following conditions are
        +# met:
        +#
        +#     * Redistributions of source code must retain the above copyright
        +# notice, this list of conditions and the following disclaimer.
        +#     * Redistributions in binary form must reproduce the above
        +# copyright notice, this list of conditions and the following disclaimer
        +# in the documentation and/or other materials provided with the
        +# distribution.
        +#     * Neither the name of Google Inc. nor the names of its
        +# contributors may be used to endorse or promote products derived from
        +# this software without specific prior written permission.
        +#
        +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +"""Unit test for the gtest_xml_output module"""
        +
        +__author__ = 'eefacm@gmail.com (Sean Mcafee)'
        +
        +import datetime
        +import errno
        +import os
        +import re
        +import sys
        +from xml.dom import minidom, Node
        +
        +import gtest_test_utils
        +import gtest_xml_test_utils
        +
        +
        +GTEST_FILTER_FLAG = '--gtest_filter'
        +GTEST_LIST_TESTS_FLAG = '--gtest_list_tests'
        +GTEST_OUTPUT_FLAG         = "--gtest_output"
        +GTEST_DEFAULT_OUTPUT_FILE = "test_detail.xml"
        +GTEST_PROGRAM_NAME = "gtest_xml_output_unittest_"
        +
        +SUPPORTS_STACK_TRACES = False
        +
        +if SUPPORTS_STACK_TRACES:
        +  STACK_TRACE_TEMPLATE = '\nStack trace:\n*'
        +else:
        +  STACK_TRACE_TEMPLATE = ''
        +
        +EXPECTED_NON_EMPTY_XML = """<?xml version="1.0" encoding="UTF-8"?>
        +<testsuites tests="23" failures="4" disabled="2" errors="0" time="*" timestamp="*" name="AllTests" ad_hoc_property="42">
        +  <testsuite name="SuccessfulTest" tests="1" failures="0" disabled="0" errors="0" time="*">
        +    <testcase name="Succeeds" status="run" time="*" classname="SuccessfulTest"/>
        +  </testsuite>
        +  <testsuite name="FailedTest" tests="1" failures="1" disabled="0" errors="0" time="*">
        +    <testcase name="Fails" status="run" time="*" classname="FailedTest">
        +      <failure message="gtest_xml_output_unittest_.cc:*&#x0A;Value of: 2&#x0A;Expected: 1" type=""><![CDATA[gtest_xml_output_unittest_.cc:*
        +Value of: 2
        +Expected: 1%(stack)s]]></failure>
        +    </testcase>
        +  </testsuite>
        +  <testsuite name="MixedResultTest" tests="3" failures="1" disabled="1" errors="0" time="*">
        +    <testcase name="Succeeds" status="run" time="*" classname="MixedResultTest"/>
        +    <testcase name="Fails" status="run" time="*" classname="MixedResultTest">
        +      <failure message="gtest_xml_output_unittest_.cc:*&#x0A;Value of: 2&#x0A;Expected: 1" type=""><![CDATA[gtest_xml_output_unittest_.cc:*
        +Value of: 2
        +Expected: 1%(stack)s]]></failure>
        +      <failure message="gtest_xml_output_unittest_.cc:*&#x0A;Value of: 3&#x0A;Expected: 2" type=""><![CDATA[gtest_xml_output_unittest_.cc:*
        +Value of: 3
        +Expected: 2%(stack)s]]></failure>
        +    </testcase>
        +    <testcase name="DISABLED_test" status="notrun" time="*" classname="MixedResultTest"/>
        +  </testsuite>
        +  <testsuite name="XmlQuotingTest" tests="1" failures="1" disabled="0" errors="0" time="*">
        +    <testcase name="OutputsCData" status="run" time="*" classname="XmlQuotingTest">
        +      <failure message="gtest_xml_output_unittest_.cc:*&#x0A;Failed&#x0A;XML output: &lt;?xml encoding=&quot;utf-8&quot;&gt;&lt;top&gt;&lt;![CDATA[cdata text]]&gt;&lt;/top&gt;" type=""><![CDATA[gtest_xml_output_unittest_.cc:*
        +Failed
        +XML output: <?xml encoding="utf-8"><top><![CDATA[cdata text]]>]]&gt;<![CDATA[</top>%(stack)s]]></failure>
        +    </testcase>
        +  </testsuite>
        +  <testsuite name="InvalidCharactersTest" tests="1" failures="1" disabled="0" errors="0" time="*">
        +    <testcase name="InvalidCharactersInMessage" status="run" time="*" classname="InvalidCharactersTest">
        +      <failure message="gtest_xml_output_unittest_.cc:*&#x0A;Failed&#x0A;Invalid characters in brackets []" type=""><![CDATA[gtest_xml_output_unittest_.cc:*
        +Failed
        +Invalid characters in brackets []%(stack)s]]></failure>
        +    </testcase>
        +  </testsuite>
        +  <testsuite name="DisabledTest" tests="1" failures="0" disabled="1" errors="0" time="*">
        +    <testcase name="DISABLED_test_not_run" status="notrun" time="*" classname="DisabledTest"/>
        +  </testsuite>
        +  <testsuite name="PropertyRecordingTest" tests="4" failures="0" disabled="0" errors="0" time="*" SetUpTestCase="yes" TearDownTestCase="aye">
        +    <testcase name="OneProperty" status="run" time="*" classname="PropertyRecordingTest" key_1="1"/>
        +    <testcase name="IntValuedProperty" status="run" time="*" classname="PropertyRecordingTest" key_int="1"/>
        +    <testcase name="ThreeProperties" status="run" time="*" classname="PropertyRecordingTest" key_1="1" key_2="2" key_3="3"/>
        +    <testcase name="TwoValuesForOneKeyUsesLastValue" status="run" time="*" classname="PropertyRecordingTest" key_1="2"/>
        +  </testsuite>
        +  <testsuite name="NoFixtureTest" tests="3" failures="0" disabled="0" errors="0" time="*">
        +     <testcase name="RecordProperty" status="run" time="*" classname="NoFixtureTest" key="1"/>
        +     <testcase name="ExternalUtilityThatCallsRecordIntValuedProperty" status="run" time="*" classname="NoFixtureTest" key_for_utility_int="1"/>
        +     <testcase name="ExternalUtilityThatCallsRecordStringValuedProperty" status="run" time="*" classname="NoFixtureTest" key_for_utility_string="1"/>
        +  </testsuite>
        +  <testsuite name="Single/ValueParamTest" tests="4" failures="0" disabled="0" errors="0" time="*">
        +    <testcase name="HasValueParamAttribute/0" value_param="33" status="run" time="*" classname="Single/ValueParamTest" />
        +    <testcase name="HasValueParamAttribute/1" value_param="42" status="run" time="*" classname="Single/ValueParamTest" />
        +    <testcase name="AnotherTestThatHasValueParamAttribute/0" value_param="33" status="run" time="*" classname="Single/ValueParamTest" />
        +    <testcase name="AnotherTestThatHasValueParamAttribute/1" value_param="42" status="run" time="*" classname="Single/ValueParamTest" />
        +  </testsuite>
        +  <testsuite name="TypedTest/0" tests="1" failures="0" disabled="0" errors="0" time="*">
        +    <testcase name="HasTypeParamAttribute" type_param="*" status="run" time="*" classname="TypedTest/0" />
        +  </testsuite>
        +  <testsuite name="TypedTest/1" tests="1" failures="0" disabled="0" errors="0" time="*">
        +    <testcase name="HasTypeParamAttribute" type_param="*" status="run" time="*" classname="TypedTest/1" />
        +  </testsuite>
        +  <testsuite name="Single/TypeParameterizedTestCase/0" tests="1" failures="0" disabled="0" errors="0" time="*">
        +    <testcase name="HasTypeParamAttribute" type_param="*" status="run" time="*" classname="Single/TypeParameterizedTestCase/0" />
        +  </testsuite>
        +  <testsuite name="Single/TypeParameterizedTestCase/1" tests="1" failures="0" disabled="0" errors="0" time="*">
        +    <testcase name="HasTypeParamAttribute" type_param="*" status="run" time="*" classname="Single/TypeParameterizedTestCase/1" />
        +  </testsuite>
        +</testsuites>""" % {'stack': STACK_TRACE_TEMPLATE}
        +
        +EXPECTED_FILTERED_TEST_XML = """<?xml version="1.0" encoding="UTF-8"?>
        +<testsuites tests="1" failures="0" disabled="0" errors="0" time="*"
        +            timestamp="*" name="AllTests" ad_hoc_property="42">
        +  <testsuite name="SuccessfulTest" tests="1" failures="0" disabled="0"
        +             errors="0" time="*">
        +    <testcase name="Succeeds" status="run" time="*" classname="SuccessfulTest"/>
        +  </testsuite>
        +</testsuites>"""
        +
        +EXPECTED_EMPTY_XML = """<?xml version="1.0" encoding="UTF-8"?>
        +<testsuites tests="0" failures="0" disabled="0" errors="0" time="*"
        +            timestamp="*" name="AllTests">
        +</testsuites>"""
        +
        +GTEST_PROGRAM_PATH = gtest_test_utils.GetTestExecutablePath(GTEST_PROGRAM_NAME)
        +
        +SUPPORTS_TYPED_TESTS = 'TypedTest' in gtest_test_utils.Subprocess(
        +    [GTEST_PROGRAM_PATH, GTEST_LIST_TESTS_FLAG], capture_stderr=False).output
        +
        +
        +class GTestXMLOutputUnitTest(gtest_xml_test_utils.GTestXMLTestCase):
        +  """
        +  Unit test for Google Test's XML output functionality.
        +  """
        +
        +  # This test currently breaks on platforms that do not support typed and
        +  # type-parameterized tests, so we don't run it under them.
        +  if SUPPORTS_TYPED_TESTS:
        +    def testNonEmptyXmlOutput(self):
        +      """
        +      Runs a test program that generates a non-empty XML output, and
        +      tests that the XML output is expected.
        +      """
        +      self._TestXmlOutput(GTEST_PROGRAM_NAME, EXPECTED_NON_EMPTY_XML, 1)
        +
        +  def testEmptyXmlOutput(self):
        +    """Verifies XML output for a Google Test binary without actual tests.
        +
        +    Runs a test program that generates an empty XML output, and
        +    tests that the XML output is expected.
        +    """
        +
        +    self._TestXmlOutput('gtest_no_test_unittest', EXPECTED_EMPTY_XML, 0)
        +
        +  def testTimestampValue(self):
        +    """Checks whether the timestamp attribute in the XML output is valid.
        +
        +    Runs a test program that generates an empty XML output, and checks if
        +    the timestamp attribute in the testsuites tag is valid.
        +    """
        +    actual = self._GetXmlOutput('gtest_no_test_unittest', [], 0)
        +    date_time_str = actual.documentElement.getAttributeNode('timestamp').value
        +    # datetime.strptime() is only available in Python 2.5+ so we have to
        +    # parse the expected datetime manually.
        +    match = re.match(r'(\d+)-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d)', date_time_str)
        +    self.assertTrue(
        +        re.match,
        +        'XML datettime string %s has incorrect format' % date_time_str)
        +    date_time_from_xml = datetime.datetime(
        +        year=int(match.group(1)), month=int(match.group(2)),
        +        day=int(match.group(3)), hour=int(match.group(4)),
        +        minute=int(match.group(5)), second=int(match.group(6)))
        +
        +    time_delta = abs(datetime.datetime.now() - date_time_from_xml)
        +    # timestamp value should be near the current local time
        +    self.assertTrue(time_delta < datetime.timedelta(seconds=600),
        +                    'time_delta is %s' % time_delta)
        +    actual.unlink()
        +
        +  def testDefaultOutputFile(self):
        +    """
        +    Confirms that Google Test produces an XML output file with the expected
        +    default name if no name is explicitly specified.
        +    """
        +    output_file = os.path.join(gtest_test_utils.GetTempDir(),
        +                               GTEST_DEFAULT_OUTPUT_FILE)
        +    gtest_prog_path = gtest_test_utils.GetTestExecutablePath(
        +        'gtest_no_test_unittest')
        +    try:
        +      os.remove(output_file)
        +    except OSError, e:
        +      if e.errno != errno.ENOENT:
        +        raise
        +
        +    p = gtest_test_utils.Subprocess(
        +        [gtest_prog_path, '%s=xml' % GTEST_OUTPUT_FLAG],
        +        working_dir=gtest_test_utils.GetTempDir())
        +    self.assert_(p.exited)
        +    self.assertEquals(0, p.exit_code)
        +    self.assert_(os.path.isfile(output_file))
        +
        +  def testSuppressedXmlOutput(self):
        +    """
        +    Tests that no XML file is generated if the default XML listener is
        +    shut down before RUN_ALL_TESTS is invoked.
        +    """
        +
        +    xml_path = os.path.join(gtest_test_utils.GetTempDir(),
        +                            GTEST_PROGRAM_NAME + 'out.xml')
        +    if os.path.isfile(xml_path):
        +      os.remove(xml_path)
        +
        +    command = [GTEST_PROGRAM_PATH,
        +               '%s=xml:%s' % (GTEST_OUTPUT_FLAG, xml_path),
        +               '--shut_down_xml']
        +    p = gtest_test_utils.Subprocess(command)
        +    if p.terminated_by_signal:
        +      # p.signal is avalable only if p.terminated_by_signal is True.
        +      self.assertFalse(
        +          p.terminated_by_signal,
        +          '%s was killed by signal %d' % (GTEST_PROGRAM_NAME, p.signal))
        +    else:
        +      self.assert_(p.exited)
        +      self.assertEquals(1, p.exit_code,
        +                        "'%s' exited with code %s, which doesn't match "
        +                        'the expected exit code %s.'
        +                        % (command, p.exit_code, 1))
        +
        +    self.assert_(not os.path.isfile(xml_path))
        +
        +  def testFilteredTestXmlOutput(self):
        +    """Verifies XML output when a filter is applied.
        +
        +    Runs a test program that executes only some tests and verifies that
        +    non-selected tests do not show up in the XML output.
        +    """
        +
        +    self._TestXmlOutput(GTEST_PROGRAM_NAME, EXPECTED_FILTERED_TEST_XML, 0,
        +                        extra_args=['%s=SuccessfulTest.*' % GTEST_FILTER_FLAG])
        +
        +  def _GetXmlOutput(self, gtest_prog_name, extra_args, expected_exit_code):
        +    """
        +    Returns the xml output generated by running the program gtest_prog_name.
        +    Furthermore, the program's exit code must be expected_exit_code.
        +    """
        +    xml_path = os.path.join(gtest_test_utils.GetTempDir(),
        +                            gtest_prog_name + 'out.xml')
        +    gtest_prog_path = gtest_test_utils.GetTestExecutablePath(gtest_prog_name)
        +
        +    command = ([gtest_prog_path, '%s=xml:%s' % (GTEST_OUTPUT_FLAG, xml_path)] +
        +               extra_args)
        +    p = gtest_test_utils.Subprocess(command)
        +    if p.terminated_by_signal:
        +      self.assert_(False,
        +                   '%s was killed by signal %d' % (gtest_prog_name, p.signal))
        +    else:
        +      self.assert_(p.exited)
        +      self.assertEquals(expected_exit_code, p.exit_code,
        +                        "'%s' exited with code %s, which doesn't match "
        +                        'the expected exit code %s.'
        +                        % (command, p.exit_code, expected_exit_code))
        +    actual = minidom.parse(xml_path)
        +    return actual
        +
        +  def _TestXmlOutput(self, gtest_prog_name, expected_xml,
        +                     expected_exit_code, extra_args=None):
        +    """
        +    Asserts that the XML document generated by running the program
        +    gtest_prog_name matches expected_xml, a string containing another
        +    XML document.  Furthermore, the program's exit code must be
        +    expected_exit_code.
        +    """
        +
        +    actual = self._GetXmlOutput(gtest_prog_name, extra_args or [],
        +                                expected_exit_code)
        +    expected = minidom.parseString(expected_xml)
        +    self.NormalizeXml(actual.documentElement)
        +    self.AssertEquivalentNodes(expected.documentElement,
        +                               actual.documentElement)
        +    expected.unlink()
        +    actual.unlink()
        +
        +
        +if __name__ == '__main__':
        +  os.environ['GTEST_STACK_TRACE_DEPTH'] = '1'
        +  gtest_test_utils.Main()
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_xml_output_unittest_.cc b/lib/ann/fann/lib/googletest/test/gtest_xml_output_unittest_.cc
        new file mode 100644
        index 0000000..48b8771
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_xml_output_unittest_.cc
        @@ -0,0 +1,181 @@
        +// Copyright 2006, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +// Author: eefacm@gmail.com (Sean Mcafee)
        +
        +// Unit test for Google Test XML output.
        +//
        +// A user can specify XML output in a Google Test program to run via
        +// either the GTEST_OUTPUT environment variable or the --gtest_output
        +// flag.  This is used for testing such functionality.
        +//
        +// This program will be invoked from a Python unit test.  Don't run it
        +// directly.
        +
        +#include "gtest/gtest.h"
        +
        +using ::testing::InitGoogleTest;
        +using ::testing::TestEventListeners;
        +using ::testing::TestWithParam;
        +using ::testing::UnitTest;
        +using ::testing::Test;
        +using ::testing::Values;
        +
        +class SuccessfulTest : public Test {
        +};
        +
        +TEST_F(SuccessfulTest, Succeeds) {
        +  SUCCEED() << "This is a success.";
        +  ASSERT_EQ(1, 1);
        +}
        +
        +class FailedTest : public Test {
        +};
        +
        +TEST_F(FailedTest, Fails) {
        +  ASSERT_EQ(1, 2);
        +}
        +
        +class DisabledTest : public Test {
        +};
        +
        +TEST_F(DisabledTest, DISABLED_test_not_run) {
        +  FAIL() << "Unexpected failure: Disabled test should not be run";
        +}
        +
        +TEST(MixedResultTest, Succeeds) {
        +  EXPECT_EQ(1, 1);
        +  ASSERT_EQ(1, 1);
        +}
        +
        +TEST(MixedResultTest, Fails) {
        +  EXPECT_EQ(1, 2);
        +  ASSERT_EQ(2, 3);
        +}
        +
        +TEST(MixedResultTest, DISABLED_test) {
        +  FAIL() << "Unexpected failure: Disabled test should not be run";
        +}
        +
        +TEST(XmlQuotingTest, OutputsCData) {
        +  FAIL() << "XML output: "
        +            "<?xml encoding=\"utf-8\"><top><![CDATA[cdata text]]></top>";
        +}
        +
        +// Helps to test that invalid characters produced by test code do not make
        +// it into the XML file.
        +TEST(InvalidCharactersTest, InvalidCharactersInMessage) {
        +  FAIL() << "Invalid characters in brackets [\x1\x2]";
        +}
        +
        +class PropertyRecordingTest : public Test {
        + public:
        +  static void SetUpTestCase() { RecordProperty("SetUpTestCase", "yes"); }
        +  static void TearDownTestCase() { RecordProperty("TearDownTestCase", "aye"); }
        +};
        +
        +TEST_F(PropertyRecordingTest, OneProperty) {
        +  RecordProperty("key_1", "1");
        +}
        +
        +TEST_F(PropertyRecordingTest, IntValuedProperty) {
        +  RecordProperty("key_int", 1);
        +}
        +
        +TEST_F(PropertyRecordingTest, ThreeProperties) {
        +  RecordProperty("key_1", "1");
        +  RecordProperty("key_2", "2");
        +  RecordProperty("key_3", "3");
        +}
        +
        +TEST_F(PropertyRecordingTest, TwoValuesForOneKeyUsesLastValue) {
        +  RecordProperty("key_1", "1");
        +  RecordProperty("key_1", "2");
        +}
        +
        +TEST(NoFixtureTest, RecordProperty) {
        +  RecordProperty("key", "1");
        +}
        +
        +void ExternalUtilityThatCallsRecordProperty(const std::string& key, int value) {
        +  testing::Test::RecordProperty(key, value);
        +}
        +
        +void ExternalUtilityThatCallsRecordProperty(const std::string& key,
        +                                            const std::string& value) {
        +  testing::Test::RecordProperty(key, value);
        +}
        +
        +TEST(NoFixtureTest, ExternalUtilityThatCallsRecordIntValuedProperty) {
        +  ExternalUtilityThatCallsRecordProperty("key_for_utility_int", 1);
        +}
        +
        +TEST(NoFixtureTest, ExternalUtilityThatCallsRecordStringValuedProperty) {
        +  ExternalUtilityThatCallsRecordProperty("key_for_utility_string", "1");
        +}
        +
        +// Verifies that the test parameter value is output in the 'value_param'
        +// XML attribute for value-parameterized tests.
        +class ValueParamTest : public TestWithParam<int> {};
        +TEST_P(ValueParamTest, HasValueParamAttribute) {}
        +TEST_P(ValueParamTest, AnotherTestThatHasValueParamAttribute) {}
        +INSTANTIATE_TEST_CASE_P(Single, ValueParamTest, Values(33, 42));
        +
        +#if GTEST_HAS_TYPED_TEST
        +// Verifies that the type parameter name is output in the 'type_param'
        +// XML attribute for typed tests.
        +template <typename T> class TypedTest : public Test {};
        +typedef testing::Types<int, long> TypedTestTypes;
        +TYPED_TEST_CASE(TypedTest, TypedTestTypes);
        +TYPED_TEST(TypedTest, HasTypeParamAttribute) {}
        +#endif
        +
        +#if GTEST_HAS_TYPED_TEST_P
        +// Verifies that the type parameter name is output in the 'type_param'
        +// XML attribute for type-parameterized tests.
        +template <typename T> class TypeParameterizedTestCase : public Test {};
        +TYPED_TEST_CASE_P(TypeParameterizedTestCase);
        +TYPED_TEST_P(TypeParameterizedTestCase, HasTypeParamAttribute) {}
        +REGISTER_TYPED_TEST_CASE_P(TypeParameterizedTestCase, HasTypeParamAttribute);
        +typedef testing::Types<int, long> TypeParameterizedTestCaseTypes;
        +INSTANTIATE_TYPED_TEST_CASE_P(Single,
        +                              TypeParameterizedTestCase,
        +                              TypeParameterizedTestCaseTypes);
        +#endif
        +
        +int main(int argc, char** argv) {
        +  InitGoogleTest(&argc, argv);
        +
        +  if (argc > 1 && strcmp(argv[1], "--shut_down_xml") == 0) {
        +    TestEventListeners& listeners = UnitTest::GetInstance()->listeners();
        +    delete listeners.Release(listeners.default_xml_generator());
        +  }
        +  testing::Test::RecordProperty("ad_hoc_property", "42");
        +  return RUN_ALL_TESTS();
        +}
        diff --git a/lib/ann/fann/lib/googletest/test/gtest_xml_test_utils.py b/lib/ann/fann/lib/googletest/test/gtest_xml_test_utils.py
        new file mode 100755
        index 0000000..3d0c3b2
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/gtest_xml_test_utils.py
        @@ -0,0 +1,194 @@
        +#!/usr/bin/env python
        +#
        +# Copyright 2006, Google Inc.
        +# All rights reserved.
        +#
        +# Redistribution and use in source and binary forms, with or without
        +# modification, are permitted provided that the following conditions are
        +# met:
        +#
        +#     * Redistributions of source code must retain the above copyright
        +# notice, this list of conditions and the following disclaimer.
        +#     * Redistributions in binary form must reproduce the above
        +# copyright notice, this list of conditions and the following disclaimer
        +# in the documentation and/or other materials provided with the
        +# distribution.
        +#     * Neither the name of Google Inc. nor the names of its
        +# contributors may be used to endorse or promote products derived from
        +# this software without specific prior written permission.
        +#
        +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +"""Unit test utilities for gtest_xml_output"""
        +
        +__author__ = 'eefacm@gmail.com (Sean Mcafee)'
        +
        +import re
        +from xml.dom import minidom, Node
        +
        +import gtest_test_utils
        +
        +
        +GTEST_OUTPUT_FLAG         = '--gtest_output'
        +GTEST_DEFAULT_OUTPUT_FILE = 'test_detail.xml'
        +
        +class GTestXMLTestCase(gtest_test_utils.TestCase):
        +  """
        +  Base class for tests of Google Test's XML output functionality.
        +  """
        +
        +
        +  def AssertEquivalentNodes(self, expected_node, actual_node):
        +    """
        +    Asserts that actual_node (a DOM node object) is equivalent to
        +    expected_node (another DOM node object), in that either both of
        +    them are CDATA nodes and have the same value, or both are DOM
        +    elements and actual_node meets all of the following conditions:
        +
        +    *  It has the same tag name as expected_node.
        +    *  It has the same set of attributes as expected_node, each with
        +       the same value as the corresponding attribute of expected_node.
        +       Exceptions are any attribute named "time", which needs only be
        +       convertible to a floating-point number and any attribute named
        +       "type_param" which only has to be non-empty.
        +    *  It has an equivalent set of child nodes (including elements and
        +       CDATA sections) as expected_node.  Note that we ignore the
        +       order of the children as they are not guaranteed to be in any
        +       particular order.
        +    """
        +
        +    if expected_node.nodeType == Node.CDATA_SECTION_NODE:
        +      self.assertEquals(Node.CDATA_SECTION_NODE, actual_node.nodeType)
        +      self.assertEquals(expected_node.nodeValue, actual_node.nodeValue)
        +      return
        +
        +    self.assertEquals(Node.ELEMENT_NODE, actual_node.nodeType)
        +    self.assertEquals(Node.ELEMENT_NODE, expected_node.nodeType)
        +    self.assertEquals(expected_node.tagName, actual_node.tagName)
        +
        +    expected_attributes = expected_node.attributes
        +    actual_attributes   = actual_node  .attributes
        +    self.assertEquals(
        +        expected_attributes.length, actual_attributes.length,
        +        'attribute numbers differ in element %s:\nExpected: %r\nActual: %r' % (
        +            actual_node.tagName, expected_attributes.keys(),
        +            actual_attributes.keys()))
        +    for i in range(expected_attributes.length):
        +      expected_attr = expected_attributes.item(i)
        +      actual_attr   = actual_attributes.get(expected_attr.name)
        +      self.assert_(
        +          actual_attr is not None,
        +          'expected attribute %s not found in element %s' %
        +          (expected_attr.name, actual_node.tagName))
        +      self.assertEquals(
        +          expected_attr.value, actual_attr.value,
        +          ' values of attribute %s in element %s differ: %s vs %s' %
        +          (expected_attr.name, actual_node.tagName,
        +           expected_attr.value, actual_attr.value))
        +
        +    expected_children = self._GetChildren(expected_node)
        +    actual_children = self._GetChildren(actual_node)
        +    self.assertEquals(
        +        len(expected_children), len(actual_children),
        +        'number of child elements differ in element ' + actual_node.tagName)
        +    for child_id, child in expected_children.iteritems():
        +      self.assert_(child_id in actual_children,
        +                   '<%s> is not in <%s> (in element %s)' %
        +                   (child_id, actual_children, actual_node.tagName))
        +      self.AssertEquivalentNodes(child, actual_children[child_id])
        +
        +  identifying_attribute = {
        +    'testsuites': 'name',
        +    'testsuite': 'name',
        +    'testcase':  'name',
        +    'failure':   'message',
        +    }
        +
        +  def _GetChildren(self, element):
        +    """
        +    Fetches all of the child nodes of element, a DOM Element object.
        +    Returns them as the values of a dictionary keyed by the IDs of the
        +    children.  For <testsuites>, <testsuite> and <testcase> elements, the ID
        +    is the value of their "name" attribute; for <failure> elements, it is
        +    the value of the "message" attribute; CDATA sections and non-whitespace
        +    text nodes are concatenated into a single CDATA section with ID
        +    "detail".  An exception is raised if any element other than the above
        +    four is encountered, if two child elements with the same identifying
        +    attributes are encountered, or if any other type of node is encountered.
        +    """
        +
        +    children = {}
        +    for child in element.childNodes:
        +      if child.nodeType == Node.ELEMENT_NODE:
        +        self.assert_(child.tagName in self.identifying_attribute,
        +                     'Encountered unknown element <%s>' % child.tagName)
        +        childID = child.getAttribute(self.identifying_attribute[child.tagName])
        +        self.assert_(childID not in children)
        +        children[childID] = child
        +      elif child.nodeType in [Node.TEXT_NODE, Node.CDATA_SECTION_NODE]:
        +        if 'detail' not in children:
        +          if (child.nodeType == Node.CDATA_SECTION_NODE or
        +              not child.nodeValue.isspace()):
        +            children['detail'] = child.ownerDocument.createCDATASection(
        +                child.nodeValue)
        +        else:
        +          children['detail'].nodeValue += child.nodeValue
        +      else:
        +        self.fail('Encountered unexpected node type %d' % child.nodeType)
        +    return children
        +
        +  def NormalizeXml(self, element):
        +    """
        +    Normalizes Google Test's XML output to eliminate references to transient
        +    information that may change from run to run.
        +
        +    *  The "time" attribute of <testsuites>, <testsuite> and <testcase>
        +       elements is replaced with a single asterisk, if it contains
        +       only digit characters.
        +    *  The "timestamp" attribute of <testsuites> elements is replaced with a
        +       single asterisk, if it contains a valid ISO8601 datetime value.
        +    *  The "type_param" attribute of <testcase> elements is replaced with a
        +       single asterisk (if it sn non-empty) as it is the type name returned
        +       by the compiler and is platform dependent.
        +    *  The line info reported in the first line of the "message"
        +       attribute and CDATA section of <failure> elements is replaced with the
        +       file's basename and a single asterisk for the line number.
        +    *  The directory names in file paths are removed.
        +    *  The stack traces are removed.
        +    """
        +
        +    if element.tagName == 'testsuites':
        +      timestamp = element.getAttributeNode('timestamp')
        +      timestamp.value = re.sub(r'^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d$',
        +                               '*', timestamp.value)
        +    if element.tagName in ('testsuites', 'testsuite', 'testcase'):
        +      time = element.getAttributeNode('time')
        +      time.value = re.sub(r'^\d+(\.\d+)?$', '*', time.value)
        +      type_param = element.getAttributeNode('type_param')
        +      if type_param and type_param.value:
        +        type_param.value = '*'
        +    elif element.tagName == 'failure':
        +      source_line_pat = r'^.*[/\\](.*:)\d+\n'
        +      # Replaces the source line information with a normalized form.
        +      message = element.getAttributeNode('message')
        +      message.value = re.sub(source_line_pat, '\\1*\n', message.value)
        +      for child in element.childNodes:
        +        if child.nodeType == Node.CDATA_SECTION_NODE:
        +          # Replaces the source line information with a normalized form.
        +          cdata = re.sub(source_line_pat, '\\1*\n', child.nodeValue)
        +          # Removes the actual stack trace.
        +          child.nodeValue = re.sub(r'\nStack trace:\n(.|\n)*',
        +                                   '', cdata)
        +    for child in element.childNodes:
        +      if child.nodeType == Node.ELEMENT_NODE:
        +        self.NormalizeXml(child)
        diff --git a/lib/ann/fann/lib/googletest/test/production.cc b/lib/ann/fann/lib/googletest/test/production.cc
        new file mode 100644
        index 0000000..8b8a40b
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/production.cc
        @@ -0,0 +1,36 @@
        +// Copyright 2006, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +//
        +// This is part of the unit test for include/gtest/gtest_prod.h.
        +
        +#include "production.h"
        +
        +PrivateCode::PrivateCode() : x_(0) {}
        diff --git a/lib/ann/fann/lib/googletest/test/production.h b/lib/ann/fann/lib/googletest/test/production.h
        new file mode 100644
        index 0000000..98fd5e4
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/test/production.h
        @@ -0,0 +1,55 @@
        +// Copyright 2006, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: wan@google.com (Zhanyong Wan)
        +//
        +// This is part of the unit test for include/gtest/gtest_prod.h.
        +
        +#ifndef GTEST_TEST_PRODUCTION_H_
        +#define GTEST_TEST_PRODUCTION_H_
        +
        +#include "gtest/gtest_prod.h"
        +
        +class PrivateCode {
        + public:
        +  // Declares a friend test that does not use a fixture.
        +  FRIEND_TEST(PrivateCodeTest, CanAccessPrivateMembers);
        +
        +  // Declares a friend test that uses a fixture.
        +  FRIEND_TEST(PrivateCodeFixtureTest, CanAccessPrivateMembers);
        +
        +  PrivateCode();
        +
        +  int x() const { return x_; }
        + private:
        +  void set_x(int an_x) { x_ = an_x; }
        +  int x_;
        +};
        +
        +#endif  // GTEST_TEST_PRODUCTION_H_
        diff --git a/lib/ann/fann/lib/googletest/xcode/Config/DebugProject.xcconfig b/lib/ann/fann/lib/googletest/xcode/Config/DebugProject.xcconfig
        new file mode 100644
        index 0000000..3d68157
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/xcode/Config/DebugProject.xcconfig
        @@ -0,0 +1,30 @@
        +//
        +//  DebugProject.xcconfig
        +//
        +//  These are Debug Configuration project settings for the gtest framework and
        +//  examples. It is set in the "Based On:" dropdown in the "Project" info
        +//  dialog.
        +//  This file is based on the Xcode Configuration files in:
        +//  http://code.google.com/p/google-toolbox-for-mac/
        +// 
        +
        +#include "General.xcconfig"
        +
        +// No optimization
        +GCC_OPTIMIZATION_LEVEL = 0
        +
        +// Deployment postprocessing is what triggers Xcode to strip, turn it off
        +DEPLOYMENT_POSTPROCESSING = NO
        +
        +// Dead code stripping off
        +DEAD_CODE_STRIPPING = NO
        +
        +// Debug symbols should be on obviously
        +GCC_GENERATE_DEBUGGING_SYMBOLS = YES
        +
        +// Define the DEBUG macro in all debug builds
        +OTHER_CFLAGS = $(OTHER_CFLAGS) -DDEBUG=1
        +
        +// These are turned off to avoid STL incompatibilities with client code
        +// // Turns on special C++ STL checks to "encourage" good STL use
        +// GCC_PREPROCESSOR_DEFINITIONS = $(GCC_PREPROCESSOR_DEFINITIONS) _GLIBCXX_DEBUG_PEDANTIC _GLIBCXX_DEBUG _GLIBCPP_CONCEPT_CHECKS
        diff --git a/lib/ann/fann/lib/googletest/xcode/Config/FrameworkTarget.xcconfig b/lib/ann/fann/lib/googletest/xcode/Config/FrameworkTarget.xcconfig
        new file mode 100644
        index 0000000..357b1c8
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/xcode/Config/FrameworkTarget.xcconfig
        @@ -0,0 +1,17 @@
        +//
        +//  FrameworkTarget.xcconfig
        +//
        +//  These are Framework target settings for the gtest framework and examples. It
        +//  is set in the "Based On:" dropdown in the "Target" info dialog.
        +//  This file is based on the Xcode Configuration files in:
        +//  http://code.google.com/p/google-toolbox-for-mac/
        +// 
        +
        +// Dynamic libs need to be position independent
        +GCC_DYNAMIC_NO_PIC = NO
        +
        +// Dynamic libs should not have their external symbols stripped.
        +STRIP_STYLE = non-global
        +
        +// Let the user install by specifying the $DSTROOT with xcodebuild
        +SKIP_INSTALL = NO
        diff --git a/lib/ann/fann/lib/googletest/xcode/Config/General.xcconfig b/lib/ann/fann/lib/googletest/xcode/Config/General.xcconfig
        new file mode 100644
        index 0000000..f23e322
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/xcode/Config/General.xcconfig
        @@ -0,0 +1,41 @@
        +//
        +//  General.xcconfig
        +//
        +//  These are General configuration settings for the gtest framework and
        +//  examples.
        +//  This file is based on the Xcode Configuration files in:
        +//  http://code.google.com/p/google-toolbox-for-mac/
        +// 
        +
        +// Build for PPC and Intel, 32- and 64-bit
        +ARCHS = i386 x86_64 ppc ppc64
        +
        +// Zerolink prevents link warnings so turn it off
        +ZERO_LINK = NO
        +
        +// Prebinding considered unhelpful in 10.3 and later
        +PREBINDING = NO
        +
        +// Strictest warning policy
        +WARNING_CFLAGS = -Wall -Werror -Wendif-labels -Wnewline-eof -Wno-sign-compare -Wshadow
        +
        +// Work around Xcode bugs by using external strip. See:
        +// http://lists.apple.com/archives/Xcode-users/2006/Feb/msg00050.html
        +SEPARATE_STRIP = YES
        +
        +// Force C99 dialect
        +GCC_C_LANGUAGE_STANDARD = c99
        +
        +// not sure why apple defaults this on, but it's pretty risky
        +ALWAYS_SEARCH_USER_PATHS = NO
        +
        +// Turn on position dependent code for most cases (overridden where appropriate)
        +GCC_DYNAMIC_NO_PIC = YES
        +
        +// Default SDK and minimum OS version is 10.4
        +SDKROOT = $(DEVELOPER_SDK_DIR)/MacOSX10.4u.sdk
        +MACOSX_DEPLOYMENT_TARGET = 10.4
        +GCC_VERSION = 4.0
        +
        +// VERSIONING BUILD SETTINGS (used in Info.plist)
        +GTEST_VERSIONINFO_ABOUT =  © 2008 Google Inc.
        diff --git a/lib/ann/fann/lib/googletest/xcode/Config/ReleaseProject.xcconfig b/lib/ann/fann/lib/googletest/xcode/Config/ReleaseProject.xcconfig
        new file mode 100644
        index 0000000..5349f0a
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/xcode/Config/ReleaseProject.xcconfig
        @@ -0,0 +1,32 @@
        +//
        +//  ReleaseProject.xcconfig
        +//
        +//  These are Release Configuration project settings for the gtest framework
        +//  and examples. It is set in the "Based On:" dropdown in the "Project" info
        +//  dialog.
        +//  This file is based on the Xcode Configuration files in:
        +//  http://code.google.com/p/google-toolbox-for-mac/
        +// 
        +
        +#include "General.xcconfig"
        +
        +// subconfig/Release.xcconfig
        +
        +// Optimize for space and size (Apple recommendation)
        +GCC_OPTIMIZATION_LEVEL = s
        +
        +// Deploment postprocessing is what triggers Xcode to strip
        +DEPLOYMENT_POSTPROCESSING = YES
        +
        +// No symbols
        +GCC_GENERATE_DEBUGGING_SYMBOLS = NO
        +
        +// Dead code strip does not affect ObjC code but can help for C
        +DEAD_CODE_STRIPPING = YES
        +
        +// NDEBUG is used by things like assert.h, so define it for general compat.
        +// ASSERT going away in release tends to create unused vars.
        +OTHER_CFLAGS = $(OTHER_CFLAGS) -DNDEBUG=1 -Wno-unused-variable
        +
        +// When we strip we want to strip all symbols in release, but save externals.
        +STRIP_STYLE = all
        diff --git a/lib/ann/fann/lib/googletest/xcode/Config/StaticLibraryTarget.xcconfig b/lib/ann/fann/lib/googletest/xcode/Config/StaticLibraryTarget.xcconfig
        new file mode 100644
        index 0000000..3922fa5
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/xcode/Config/StaticLibraryTarget.xcconfig
        @@ -0,0 +1,18 @@
        +//
        +//  StaticLibraryTarget.xcconfig
        +//
        +//  These are static library target settings for libgtest.a. It
        +//  is set in the "Based On:" dropdown in the "Target" info dialog.
        +//  This file is based on the Xcode Configuration files in:
        +//  http://code.google.com/p/google-toolbox-for-mac/
        +// 
        +
        +// Static libs can be included in bundles so make them position independent
        +GCC_DYNAMIC_NO_PIC = NO
        +
        +// Static libs should not have their internal globals or external symbols
        +// stripped.
        +STRIP_STYLE = debugging
        +
        +// Let the user install by specifying the $DSTROOT with xcodebuild
        +SKIP_INSTALL = NO
        diff --git a/lib/ann/fann/lib/googletest/xcode/Config/TestTarget.xcconfig b/lib/ann/fann/lib/googletest/xcode/Config/TestTarget.xcconfig
        new file mode 100644
        index 0000000..e6652ba
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/xcode/Config/TestTarget.xcconfig
        @@ -0,0 +1,8 @@
        +//
        +//  TestTarget.xcconfig
        +//
        +//  These are Test target settings for the gtest framework and examples. It
        +//  is set in the "Based On:" dropdown in the "Target" info dialog.
        +
        +PRODUCT_NAME = $(TARGET_NAME)
        +HEADER_SEARCH_PATHS = ../include
        diff --git a/lib/ann/fann/lib/googletest/xcode/Resources/Info.plist b/lib/ann/fann/lib/googletest/xcode/Resources/Info.plist
        new file mode 100644
        index 0000000..9dd28ea
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/xcode/Resources/Info.plist
        @@ -0,0 +1,30 @@
        +<?xml version="1.0" encoding="UTF-8"?>
        +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
        +<plist version="1.0">
        +<dict>
        +	<key>CFBundleDevelopmentRegion</key>
        +	<string>English</string>
        +	<key>CFBundleExecutable</key>
        +	<string>${EXECUTABLE_NAME}</string>
        +	<key>CFBundleIconFile</key>
        +	<string></string>
        +	<key>CFBundleIdentifier</key>
        +	<string>com.google.${PRODUCT_NAME}</string>
        +	<key>CFBundleInfoDictionaryVersion</key>
        +	<string>6.0</string>
        +	<key>CFBundlePackageType</key>
        +	<string>FMWK</string>
        +	<key>CFBundleSignature</key>
        +	<string>????</string>
        +	<key>CFBundleVersion</key>
        +	<string>GTEST_VERSIONINFO_LONG</string>
        +	<key>CFBundleShortVersionString</key>
        +	<string>GTEST_VERSIONINFO_SHORT</string>
        +	<key>CFBundleGetInfoString</key>
        +	<string>${PRODUCT_NAME} GTEST_VERSIONINFO_LONG, ${GTEST_VERSIONINFO_ABOUT}</string>
        +	<key>NSHumanReadableCopyright</key>
        +	<string>${GTEST_VERSIONINFO_ABOUT}</string>
        +	<key>CSResourcesFileMapped</key>
        +	<true/>
        +</dict>
        +</plist>
        diff --git a/lib/ann/fann/lib/googletest/xcode/Samples/FrameworkSample/Info.plist b/lib/ann/fann/lib/googletest/xcode/Samples/FrameworkSample/Info.plist
        new file mode 100644
        index 0000000..f3852ed
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/xcode/Samples/FrameworkSample/Info.plist
        @@ -0,0 +1,28 @@
        +<?xml version="1.0" encoding="UTF-8"?>
        +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
        +<plist version="1.0">
        +<dict>
        +	<key>CFBundleDevelopmentRegion</key>
        +	<string>English</string>
        +	<key>CFBundleExecutable</key>
        +	<string>${EXECUTABLE_NAME}</string>
        +	<key>CFBundleIconFile</key>
        +	<string></string>
        +	<key>CFBundleIdentifier</key>
        +	<string>com.google.gtest.${PRODUCT_NAME:identifier}</string>
        +	<key>CFBundleInfoDictionaryVersion</key>
        +	<string>6.0</string>
        +	<key>CFBundleName</key>
        +	<string>${PRODUCT_NAME}</string>
        +	<key>CFBundlePackageType</key>
        +	<string>FMWK</string>
        +	<key>CFBundleShortVersionString</key>
        +	<string>1.0</string>
        +	<key>CFBundleSignature</key>
        +	<string>????</string>
        +	<key>CFBundleVersion</key>
        +	<string>1.0</string>
        +	<key>CSResourcesFileMapped</key>
        +	<true/>
        +</dict>
        +</plist>
        diff --git a/lib/ann/fann/lib/googletest/xcode/Samples/FrameworkSample/WidgetFramework.xcodeproj/project.pbxproj b/lib/ann/fann/lib/googletest/xcode/Samples/FrameworkSample/WidgetFramework.xcodeproj/project.pbxproj
        new file mode 100644
        index 0000000..497617e
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/xcode/Samples/FrameworkSample/WidgetFramework.xcodeproj/project.pbxproj
        @@ -0,0 +1,457 @@
        +// !$*UTF8*$!
        +{
        +	archiveVersion = 1;
        +	classes = {
        +	};
        +	objectVersion = 42;
        +	objects = {
        +
        +/* Begin PBXAggregateTarget section */
        +		4024D162113D7D2400C7059E /* Test */ = {
        +			isa = PBXAggregateTarget;
        +			buildConfigurationList = 4024D169113D7D4600C7059E /* Build configuration list for PBXAggregateTarget "Test" */;
        +			buildPhases = (
        +				4024D161113D7D2400C7059E /* ShellScript */,
        +			);
        +			dependencies = (
        +				4024D166113D7D3100C7059E /* PBXTargetDependency */,
        +			);
        +			name = Test;
        +			productName = TestAndBuild;
        +		};
        +		4024D1E9113D83FF00C7059E /* TestAndBuild */ = {
        +			isa = PBXAggregateTarget;
        +			buildConfigurationList = 4024D1F0113D842B00C7059E /* Build configuration list for PBXAggregateTarget "TestAndBuild" */;
        +			buildPhases = (
        +			);
        +			dependencies = (
        +				4024D1ED113D840900C7059E /* PBXTargetDependency */,
        +				4024D1EF113D840D00C7059E /* PBXTargetDependency */,
        +			);
        +			name = TestAndBuild;
        +			productName = TestAndBuild;
        +		};
        +/* End PBXAggregateTarget section */
        +
        +/* Begin PBXBuildFile section */
        +		3B7EB1250E5AEE3500C7F239 /* widget.cc in Sources */ = {isa = PBXBuildFile; fileRef = 3B7EB1230E5AEE3500C7F239 /* widget.cc */; };
        +		3B7EB1260E5AEE3500C7F239 /* widget.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B7EB1240E5AEE3500C7F239 /* widget.h */; settings = {ATTRIBUTES = (Public, ); }; };
        +		3B7EB1280E5AEE4600C7F239 /* widget_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 3B7EB1270E5AEE4600C7F239 /* widget_test.cc */; };
        +		3B7EB1480E5AF3B400C7F239 /* Widget.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8D07F2C80486CC7A007CD1D0 /* Widget.framework */; };
        +		4024D188113D7D7800C7059E /* libgtest.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4024D185113D7D5500C7059E /* libgtest.a */; };
        +		4024D189113D7D7A00C7059E /* libgtest_main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4024D183113D7D5500C7059E /* libgtest_main.a */; };
        +/* End PBXBuildFile section */
        +
        +/* Begin PBXContainerItemProxy section */
        +		3B07BDF00E3F3FAE00647869 /* PBXContainerItemProxy */ = {
        +			isa = PBXContainerItemProxy;
        +			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
        +			proxyType = 1;
        +			remoteGlobalIDString = 8D07F2BC0486CC7A007CD1D0;
        +			remoteInfo = gTestExample;
        +		};
        +		4024D165113D7D3100C7059E /* PBXContainerItemProxy */ = {
        +			isa = PBXContainerItemProxy;
        +			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
        +			proxyType = 1;
        +			remoteGlobalIDString = 3B07BDE90E3F3F9E00647869;
        +			remoteInfo = WidgetFrameworkTest;
        +		};
        +		4024D1EC113D840900C7059E /* PBXContainerItemProxy */ = {
        +			isa = PBXContainerItemProxy;
        +			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
        +			proxyType = 1;
        +			remoteGlobalIDString = 8D07F2BC0486CC7A007CD1D0;
        +			remoteInfo = WidgetFramework;
        +		};
        +		4024D1EE113D840D00C7059E /* PBXContainerItemProxy */ = {
        +			isa = PBXContainerItemProxy;
        +			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
        +			proxyType = 1;
        +			remoteGlobalIDString = 4024D162113D7D2400C7059E;
        +			remoteInfo = Test;
        +		};
        +/* End PBXContainerItemProxy section */
        +
        +/* Begin PBXFileReference section */
        +		3B07BDEA0E3F3F9E00647869 /* WidgetFrameworkTest */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = WidgetFrameworkTest; sourceTree = BUILT_PRODUCTS_DIR; };
        +		3B7EB1230E5AEE3500C7F239 /* widget.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = widget.cc; sourceTree = "<group>"; };
        +		3B7EB1240E5AEE3500C7F239 /* widget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = widget.h; sourceTree = "<group>"; };
        +		3B7EB1270E5AEE4600C7F239 /* widget_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = widget_test.cc; sourceTree = "<group>"; };
        +		4024D183113D7D5500C7059E /* libgtest_main.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libgtest_main.a; path = /usr/local/lib/libgtest_main.a; sourceTree = "<absolute>"; };
        +		4024D185113D7D5500C7059E /* libgtest.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libgtest.a; path = /usr/local/lib/libgtest.a; sourceTree = "<absolute>"; };
        +		4024D1E2113D838200C7059E /* runtests.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = runtests.sh; sourceTree = "<group>"; };
        +		8D07F2C70486CC7A007CD1D0 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
        +		8D07F2C80486CC7A007CD1D0 /* Widget.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Widget.framework; sourceTree = BUILT_PRODUCTS_DIR; };
        +/* End PBXFileReference section */
        +
        +/* Begin PBXFrameworksBuildPhase section */
        +		3B07BDE80E3F3F9E00647869 /* Frameworks */ = {
        +			isa = PBXFrameworksBuildPhase;
        +			buildActionMask = 2147483647;
        +			files = (
        +				4024D189113D7D7A00C7059E /* libgtest_main.a in Frameworks */,
        +				4024D188113D7D7800C7059E /* libgtest.a in Frameworks */,
        +				3B7EB1480E5AF3B400C7F239 /* Widget.framework in Frameworks */,
        +			);
        +			runOnlyForDeploymentPostprocessing = 0;
        +		};
        +		8D07F2C30486CC7A007CD1D0 /* Frameworks */ = {
        +			isa = PBXFrameworksBuildPhase;
        +			buildActionMask = 2147483647;
        +			files = (
        +			);
        +			runOnlyForDeploymentPostprocessing = 0;
        +		};
        +/* End PBXFrameworksBuildPhase section */
        +
        +/* Begin PBXGroup section */
        +		034768DDFF38A45A11DB9C8B /* Products */ = {
        +			isa = PBXGroup;
        +			children = (
        +				8D07F2C80486CC7A007CD1D0 /* Widget.framework */,
        +				3B07BDEA0E3F3F9E00647869 /* WidgetFrameworkTest */,
        +			);
        +			name = Products;
        +			sourceTree = "<group>";
        +		};
        +		0867D691FE84028FC02AAC07 /* gTestExample */ = {
        +			isa = PBXGroup;
        +			children = (
        +				4024D1E1113D836C00C7059E /* Scripts */,
        +				08FB77ACFE841707C02AAC07 /* Source */,
        +				089C1665FE841158C02AAC07 /* Resources */,
        +				3B07BE350E4094E400647869 /* Test */,
        +				0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */,
        +				034768DDFF38A45A11DB9C8B /* Products */,
        +			);
        +			name = gTestExample;
        +			sourceTree = "<group>";
        +		};
        +		0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */ = {
        +			isa = PBXGroup;
        +			children = (
        +				4024D183113D7D5500C7059E /* libgtest_main.a */,
        +				4024D185113D7D5500C7059E /* libgtest.a */,
        +			);
        +			name = "External Frameworks and Libraries";
        +			sourceTree = "<group>";
        +		};
        +		089C1665FE841158C02AAC07 /* Resources */ = {
        +			isa = PBXGroup;
        +			children = (
        +				8D07F2C70486CC7A007CD1D0 /* Info.plist */,
        +			);
        +			name = Resources;
        +			sourceTree = "<group>";
        +		};
        +		08FB77ACFE841707C02AAC07 /* Source */ = {
        +			isa = PBXGroup;
        +			children = (
        +				3B7EB1230E5AEE3500C7F239 /* widget.cc */,
        +				3B7EB1240E5AEE3500C7F239 /* widget.h */,
        +			);
        +			name = Source;
        +			sourceTree = "<group>";
        +		};
        +		3B07BE350E4094E400647869 /* Test */ = {
        +			isa = PBXGroup;
        +			children = (
        +				3B7EB1270E5AEE4600C7F239 /* widget_test.cc */,
        +			);
        +			name = Test;
        +			sourceTree = "<group>";
        +		};
        +		4024D1E1113D836C00C7059E /* Scripts */ = {
        +			isa = PBXGroup;
        +			children = (
        +				4024D1E2113D838200C7059E /* runtests.sh */,
        +			);
        +			name = Scripts;
        +			sourceTree = "<group>";
        +		};
        +/* End PBXGroup section */
        +
        +/* Begin PBXHeadersBuildPhase section */
        +		8D07F2BD0486CC7A007CD1D0 /* Headers */ = {
        +			isa = PBXHeadersBuildPhase;
        +			buildActionMask = 2147483647;
        +			files = (
        +				3B7EB1260E5AEE3500C7F239 /* widget.h in Headers */,
        +			);
        +			runOnlyForDeploymentPostprocessing = 0;
        +		};
        +/* End PBXHeadersBuildPhase section */
        +
        +/* Begin PBXNativeTarget section */
        +		3B07BDE90E3F3F9E00647869 /* WidgetFrameworkTest */ = {
        +			isa = PBXNativeTarget;
        +			buildConfigurationList = 3B07BDF40E3F3FB600647869 /* Build configuration list for PBXNativeTarget "WidgetFrameworkTest" */;
        +			buildPhases = (
        +				3B07BDE70E3F3F9E00647869 /* Sources */,
        +				3B07BDE80E3F3F9E00647869 /* Frameworks */,
        +			);
        +			buildRules = (
        +			);
        +			dependencies = (
        +				3B07BDF10E3F3FAE00647869 /* PBXTargetDependency */,
        +			);
        +			name = WidgetFrameworkTest;
        +			productName = gTestExampleTest;
        +			productReference = 3B07BDEA0E3F3F9E00647869 /* WidgetFrameworkTest */;
        +			productType = "com.apple.product-type.tool";
        +		};
        +		8D07F2BC0486CC7A007CD1D0 /* WidgetFramework */ = {
        +			isa = PBXNativeTarget;
        +			buildConfigurationList = 4FADC24208B4156D00ABE55E /* Build configuration list for PBXNativeTarget "WidgetFramework" */;
        +			buildPhases = (
        +				8D07F2C10486CC7A007CD1D0 /* Sources */,
        +				8D07F2C30486CC7A007CD1D0 /* Frameworks */,
        +				8D07F2BD0486CC7A007CD1D0 /* Headers */,
        +				8D07F2BF0486CC7A007CD1D0 /* Resources */,
        +				8D07F2C50486CC7A007CD1D0 /* Rez */,
        +			);
        +			buildRules = (
        +			);
        +			dependencies = (
        +			);
        +			name = WidgetFramework;
        +			productInstallPath = "$(HOME)/Library/Frameworks";
        +			productName = gTestExample;
        +			productReference = 8D07F2C80486CC7A007CD1D0 /* Widget.framework */;
        +			productType = "com.apple.product-type.framework";
        +		};
        +/* End PBXNativeTarget section */
        +
        +/* Begin PBXProject section */
        +		0867D690FE84028FC02AAC07 /* Project object */ = {
        +			isa = PBXProject;
        +			buildConfigurationList = 4FADC24608B4156D00ABE55E /* Build configuration list for PBXProject "WidgetFramework" */;
        +			compatibilityVersion = "Xcode 2.4";
        +			hasScannedForEncodings = 1;
        +			mainGroup = 0867D691FE84028FC02AAC07 /* gTestExample */;
        +			productRefGroup = 034768DDFF38A45A11DB9C8B /* Products */;
        +			projectDirPath = "";
        +			projectRoot = "";
        +			targets = (
        +				8D07F2BC0486CC7A007CD1D0 /* WidgetFramework */,
        +				3B07BDE90E3F3F9E00647869 /* WidgetFrameworkTest */,
        +				4024D162113D7D2400C7059E /* Test */,
        +				4024D1E9113D83FF00C7059E /* TestAndBuild */,
        +			);
        +		};
        +/* End PBXProject section */
        +
        +/* Begin PBXResourcesBuildPhase section */
        +		8D07F2BF0486CC7A007CD1D0 /* Resources */ = {
        +			isa = PBXResourcesBuildPhase;
        +			buildActionMask = 2147483647;
        +			files = (
        +			);
        +			runOnlyForDeploymentPostprocessing = 0;
        +		};
        +/* End PBXResourcesBuildPhase section */
        +
        +/* Begin PBXRezBuildPhase section */
        +		8D07F2C50486CC7A007CD1D0 /* Rez */ = {
        +			isa = PBXRezBuildPhase;
        +			buildActionMask = 2147483647;
        +			files = (
        +			);
        +			runOnlyForDeploymentPostprocessing = 0;
        +		};
        +/* End PBXRezBuildPhase section */
        +
        +/* Begin PBXShellScriptBuildPhase section */
        +		4024D161113D7D2400C7059E /* ShellScript */ = {
        +			isa = PBXShellScriptBuildPhase;
        +			buildActionMask = 2147483647;
        +			files = (
        +			);
        +			inputPaths = (
        +			);
        +			outputPaths = (
        +			);
        +			runOnlyForDeploymentPostprocessing = 0;
        +			shellPath = /bin/sh;
        +			shellScript = "/bin/bash $SRCROOT/runtests.sh $BUILT_PRODUCTS_DIR/WidgetFrameworkTest\n";
        +		};
        +/* End PBXShellScriptBuildPhase section */
        +
        +/* Begin PBXSourcesBuildPhase section */
        +		3B07BDE70E3F3F9E00647869 /* Sources */ = {
        +			isa = PBXSourcesBuildPhase;
        +			buildActionMask = 2147483647;
        +			files = (
        +				3B7EB1280E5AEE4600C7F239 /* widget_test.cc in Sources */,
        +			);
        +			runOnlyForDeploymentPostprocessing = 0;
        +		};
        +		8D07F2C10486CC7A007CD1D0 /* Sources */ = {
        +			isa = PBXSourcesBuildPhase;
        +			buildActionMask = 2147483647;
        +			files = (
        +				3B7EB1250E5AEE3500C7F239 /* widget.cc in Sources */,
        +			);
        +			runOnlyForDeploymentPostprocessing = 0;
        +		};
        +/* End PBXSourcesBuildPhase section */
        +
        +/* Begin PBXTargetDependency section */
        +		3B07BDF10E3F3FAE00647869 /* PBXTargetDependency */ = {
        +			isa = PBXTargetDependency;
        +			target = 8D07F2BC0486CC7A007CD1D0 /* WidgetFramework */;
        +			targetProxy = 3B07BDF00E3F3FAE00647869 /* PBXContainerItemProxy */;
        +		};
        +		4024D166113D7D3100C7059E /* PBXTargetDependency */ = {
        +			isa = PBXTargetDependency;
        +			target = 3B07BDE90E3F3F9E00647869 /* WidgetFrameworkTest */;
        +			targetProxy = 4024D165113D7D3100C7059E /* PBXContainerItemProxy */;
        +		};
        +		4024D1ED113D840900C7059E /* PBXTargetDependency */ = {
        +			isa = PBXTargetDependency;
        +			target = 8D07F2BC0486CC7A007CD1D0 /* WidgetFramework */;
        +			targetProxy = 4024D1EC113D840900C7059E /* PBXContainerItemProxy */;
        +		};
        +		4024D1EF113D840D00C7059E /* PBXTargetDependency */ = {
        +			isa = PBXTargetDependency;
        +			target = 4024D162113D7D2400C7059E /* Test */;
        +			targetProxy = 4024D1EE113D840D00C7059E /* PBXContainerItemProxy */;
        +		};
        +/* End PBXTargetDependency section */
        +
        +/* Begin XCBuildConfiguration section */
        +		3B07BDEC0E3F3F9F00647869 /* Debug */ = {
        +			isa = XCBuildConfiguration;
        +			buildSettings = {
        +				PRODUCT_NAME = WidgetFrameworkTest;
        +			};
        +			name = Debug;
        +		};
        +		3B07BDED0E3F3F9F00647869 /* Release */ = {
        +			isa = XCBuildConfiguration;
        +			buildSettings = {
        +				PRODUCT_NAME = WidgetFrameworkTest;
        +			};
        +			name = Release;
        +		};
        +		4024D163113D7D2400C7059E /* Debug */ = {
        +			isa = XCBuildConfiguration;
        +			buildSettings = {
        +				PRODUCT_NAME = TestAndBuild;
        +			};
        +			name = Debug;
        +		};
        +		4024D164113D7D2400C7059E /* Release */ = {
        +			isa = XCBuildConfiguration;
        +			buildSettings = {
        +				PRODUCT_NAME = TestAndBuild;
        +			};
        +			name = Release;
        +		};
        +		4024D1EA113D83FF00C7059E /* Debug */ = {
        +			isa = XCBuildConfiguration;
        +			buildSettings = {
        +				PRODUCT_NAME = TestAndBuild;
        +			};
        +			name = Debug;
        +		};
        +		4024D1EB113D83FF00C7059E /* Release */ = {
        +			isa = XCBuildConfiguration;
        +			buildSettings = {
        +				PRODUCT_NAME = TestAndBuild;
        +			};
        +			name = Release;
        +		};
        +		4FADC24308B4156D00ABE55E /* Debug */ = {
        +			isa = XCBuildConfiguration;
        +			buildSettings = {
        +				DYLIB_COMPATIBILITY_VERSION = 1;
        +				DYLIB_CURRENT_VERSION = 1;
        +				FRAMEWORK_VERSION = A;
        +				INFOPLIST_FILE = Info.plist;
        +				INSTALL_PATH = "@loader_path/../Frameworks";
        +				PRODUCT_NAME = Widget;
        +			};
        +			name = Debug;
        +		};
        +		4FADC24408B4156D00ABE55E /* Release */ = {
        +			isa = XCBuildConfiguration;
        +			buildSettings = {
        +				DYLIB_COMPATIBILITY_VERSION = 1;
        +				DYLIB_CURRENT_VERSION = 1;
        +				FRAMEWORK_VERSION = A;
        +				INFOPLIST_FILE = Info.plist;
        +				INSTALL_PATH = "@loader_path/../Frameworks";
        +				PRODUCT_NAME = Widget;
        +			};
        +			name = Release;
        +		};
        +		4FADC24708B4156D00ABE55E /* Debug */ = {
        +			isa = XCBuildConfiguration;
        +			buildSettings = {
        +				GCC_VERSION = 4.0;
        +				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
        +			};
        +			name = Debug;
        +		};
        +		4FADC24808B4156D00ABE55E /* Release */ = {
        +			isa = XCBuildConfiguration;
        +			buildSettings = {
        +				GCC_VERSION = 4.0;
        +				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
        +			};
        +			name = Release;
        +		};
        +/* End XCBuildConfiguration section */
        +
        +/* Begin XCConfigurationList section */
        +		3B07BDF40E3F3FB600647869 /* Build configuration list for PBXNativeTarget "WidgetFrameworkTest" */ = {
        +			isa = XCConfigurationList;
        +			buildConfigurations = (
        +				3B07BDEC0E3F3F9F00647869 /* Debug */,
        +				3B07BDED0E3F3F9F00647869 /* Release */,
        +			);
        +			defaultConfigurationIsVisible = 0;
        +			defaultConfigurationName = Release;
        +		};
        +		4024D169113D7D4600C7059E /* Build configuration list for PBXAggregateTarget "Test" */ = {
        +			isa = XCConfigurationList;
        +			buildConfigurations = (
        +				4024D163113D7D2400C7059E /* Debug */,
        +				4024D164113D7D2400C7059E /* Release */,
        +			);
        +			defaultConfigurationIsVisible = 0;
        +			defaultConfigurationName = Release;
        +		};
        +		4024D1F0113D842B00C7059E /* Build configuration list for PBXAggregateTarget "TestAndBuild" */ = {
        +			isa = XCConfigurationList;
        +			buildConfigurations = (
        +				4024D1EA113D83FF00C7059E /* Debug */,
        +				4024D1EB113D83FF00C7059E /* Release */,
        +			);
        +			defaultConfigurationIsVisible = 0;
        +			defaultConfigurationName = Release;
        +		};
        +		4FADC24208B4156D00ABE55E /* Build configuration list for PBXNativeTarget "WidgetFramework" */ = {
        +			isa = XCConfigurationList;
        +			buildConfigurations = (
        +				4FADC24308B4156D00ABE55E /* Debug */,
        +				4FADC24408B4156D00ABE55E /* Release */,
        +			);
        +			defaultConfigurationIsVisible = 0;
        +			defaultConfigurationName = Release;
        +		};
        +		4FADC24608B4156D00ABE55E /* Build configuration list for PBXProject "WidgetFramework" */ = {
        +			isa = XCConfigurationList;
        +			buildConfigurations = (
        +				4FADC24708B4156D00ABE55E /* Debug */,
        +				4FADC24808B4156D00ABE55E /* Release */,
        +			);
        +			defaultConfigurationIsVisible = 0;
        +			defaultConfigurationName = Release;
        +		};
        +/* End XCConfigurationList section */
        +	};
        +	rootObject = 0867D690FE84028FC02AAC07 /* Project object */;
        +}
        diff --git a/lib/ann/fann/lib/googletest/xcode/Samples/FrameworkSample/runtests.sh b/lib/ann/fann/lib/googletest/xcode/Samples/FrameworkSample/runtests.sh
        new file mode 100644
        index 0000000..4a0d413
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/xcode/Samples/FrameworkSample/runtests.sh
        @@ -0,0 +1,62 @@
        +#!/bin/bash
        +#
        +# Copyright 2008, Google Inc.
        +# All rights reserved.
        +#
        +# Redistribution and use in source and binary forms, with or without
        +# modification, are permitted provided that the following conditions are
        +# met:
        +#
        +#     * Redistributions of source code must retain the above copyright
        +# notice, this list of conditions and the following disclaimer.
        +#     * Redistributions in binary form must reproduce the above
        +# copyright notice, this list of conditions and the following disclaimer
        +# in the documentation and/or other materials provided with the
        +# distribution.
        +#     * Neither the name of Google Inc. nor the names of its
        +# contributors may be used to endorse or promote products derived from
        +# this software without specific prior written permission.
        +#
        +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +# Executes the samples and tests for the Google Test Framework.
        +
        +# Help the dynamic linker find the path to the libraries.
        +export DYLD_FRAMEWORK_PATH=$BUILT_PRODUCTS_DIR
        +export DYLD_LIBRARY_PATH=$BUILT_PRODUCTS_DIR
        +
        +# Create some executables.
        +test_executables=$@
        +
        +# Now execute each one in turn keeping track of how many succeeded and failed.
        +succeeded=0
        +failed=0
        +failed_list=()
        +for test in ${test_executables[*]}; do
        +  "$test"
        +  result=$?
        +  if [ $result -eq 0 ]; then
        +    succeeded=$(( $succeeded + 1 ))
        +  else
        +    failed=$(( failed + 1 ))
        +    failed_list="$failed_list $test"
        +  fi
        +done
        +
        +# Report the successes and failures to the console.
        +echo "Tests complete with $succeeded successes and $failed failures."
        +if [ $failed -ne 0 ]; then
        +  echo "The following tests failed:"
        +  echo $failed_list
        +fi
        +exit $failed
        diff --git a/lib/ann/fann/lib/googletest/xcode/Samples/FrameworkSample/widget.cc b/lib/ann/fann/lib/googletest/xcode/Samples/FrameworkSample/widget.cc
        new file mode 100644
        index 0000000..bfc4e7f
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/xcode/Samples/FrameworkSample/widget.cc
        @@ -0,0 +1,63 @@
        +// Copyright 2008, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: preston.a.jackson@gmail.com (Preston Jackson)
        +//
        +// Google Test - FrameworkSample
        +// widget.cc
        +//
        +
        +// Widget is a very simple class used for demonstrating the use of gtest
        +
        +#include "widget.h"
        +
        +Widget::Widget(int number, const std::string& name)
        +    : number_(number),
        +      name_(name) {}
        +
        +Widget::~Widget() {}
        +
        +float Widget::GetFloatValue() const {
        +  return number_;
        +}
        +
        +int Widget::GetIntValue() const {
        +  return static_cast<int>(number_);
        +}
        +
        +std::string Widget::GetStringValue() const {
        +  return name_;
        +}
        +
        +void Widget::GetCharPtrValue(char* buffer, size_t max_size) const {
        +  // Copy the char* representation of name_ into buffer, up to max_size.
        +  strncpy(buffer, name_.c_str(), max_size-1);
        +  buffer[max_size-1] = '\0';
        +  return;
        +}
        diff --git a/lib/ann/fann/lib/googletest/xcode/Samples/FrameworkSample/widget.h b/lib/ann/fann/lib/googletest/xcode/Samples/FrameworkSample/widget.h
        new file mode 100644
        index 0000000..0c55cdc
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/xcode/Samples/FrameworkSample/widget.h
        @@ -0,0 +1,59 @@
        +// Copyright 2008, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: preston.a.jackson@gmail.com (Preston Jackson)
        +//
        +// Google Test - FrameworkSample
        +// widget.h
        +//
        +
        +// Widget is a very simple class used for demonstrating the use of gtest. It
        +// simply stores two values a string and an integer, which are returned via
        +// public accessors in multiple forms.
        +
        +#import <string>
        +
        +class Widget {
        + public:
        +  Widget(int number, const std::string& name);
        +  ~Widget();
        +
        +  // Public accessors to number data
        +  float GetFloatValue() const;
        +  int GetIntValue() const;
        +
        +  // Public accessors to the string data
        +  std::string GetStringValue() const;
        +  void GetCharPtrValue(char* buffer, size_t max_size) const;
        +
        + private:
        +  // Data members
        +  float number_;
        +  std::string name_;
        +};
        diff --git a/lib/ann/fann/lib/googletest/xcode/Samples/FrameworkSample/widget_test.cc b/lib/ann/fann/lib/googletest/xcode/Samples/FrameworkSample/widget_test.cc
        new file mode 100644
        index 0000000..8725994
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/xcode/Samples/FrameworkSample/widget_test.cc
        @@ -0,0 +1,68 @@
        +// Copyright 2008, Google Inc.
        +// All rights reserved.
        +//
        +// Redistribution and use in source and binary forms, with or without
        +// modification, are permitted provided that the following conditions are
        +// met:
        +//
        +//     * Redistributions of source code must retain the above copyright
        +// notice, this list of conditions and the following disclaimer.
        +//     * Redistributions in binary form must reproduce the above
        +// copyright notice, this list of conditions and the following disclaimer
        +// in the documentation and/or other materials provided with the
        +// distribution.
        +//     * Neither the name of Google Inc. nor the names of its
        +// contributors may be used to endorse or promote products derived from
        +// this software without specific prior written permission.
        +//
        +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +//
        +// Author: preston.a.jackson@gmail.com (Preston Jackson)
        +//
        +// Google Test - FrameworkSample
        +// widget_test.cc
        +//
        +
        +// This is a simple test file for the Widget class in the Widget.framework
        +
        +#include <string>
        +#include "gtest/gtest.h"
        +
        +#include <Widget/widget.h>
        +
        +// This test verifies that the constructor sets the internal state of the
        +// Widget class correctly.
        +TEST(WidgetInitializerTest, TestConstructor) {
        +  Widget widget(1.0f, "name");
        +  EXPECT_FLOAT_EQ(1.0f, widget.GetFloatValue());
        +  EXPECT_EQ(std::string("name"), widget.GetStringValue());
        +}
        +
        +// This test verifies the conversion of the float and string values to int and
        +// char*, respectively.
        +TEST(WidgetInitializerTest, TestConversion) {
        +  Widget widget(1.0f, "name");
        +  EXPECT_EQ(1, widget.GetIntValue());
        +
        +  size_t max_size = 128;
        +  char buffer[max_size];
        +  widget.GetCharPtrValue(buffer, max_size);
        +  EXPECT_STREQ("name", buffer);
        +}
        +
        +// Use the Google Test main that is linked into the framework. It does something
        +// like this:
        +// int main(int argc, char** argv) {
        +//   testing::InitGoogleTest(&argc, argv);
        +//   return RUN_ALL_TESTS();
        +// }
        diff --git a/lib/ann/fann/lib/googletest/xcode/Scripts/runtests.sh b/lib/ann/fann/lib/googletest/xcode/Scripts/runtests.sh
        new file mode 100644
        index 0000000..3fc229f
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/xcode/Scripts/runtests.sh
        @@ -0,0 +1,65 @@
        +#!/bin/bash
        +#
        +# Copyright 2008, Google Inc.
        +# All rights reserved.
        +#
        +# Redistribution and use in source and binary forms, with or without
        +# modification, are permitted provided that the following conditions are
        +# met:
        +#
        +#     * Redistributions of source code must retain the above copyright
        +# notice, this list of conditions and the following disclaimer.
        +#     * Redistributions in binary form must reproduce the above
        +# copyright notice, this list of conditions and the following disclaimer
        +# in the documentation and/or other materials provided with the
        +# distribution.
        +#     * Neither the name of Google Inc. nor the names of its
        +# contributors may be used to endorse or promote products derived from
        +# this software without specific prior written permission.
        +#
        +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +# Executes the samples and tests for the Google Test Framework.
        +
        +# Help the dynamic linker find the path to the libraries.
        +export DYLD_FRAMEWORK_PATH=$BUILT_PRODUCTS_DIR
        +export DYLD_LIBRARY_PATH=$BUILT_PRODUCTS_DIR
        +
        +# Create some executables.
        +test_executables=("$BUILT_PRODUCTS_DIR/gtest_unittest-framework"
        +                  "$BUILT_PRODUCTS_DIR/gtest_unittest"
        +                  "$BUILT_PRODUCTS_DIR/sample1_unittest-framework"
        +                  "$BUILT_PRODUCTS_DIR/sample1_unittest-static")
        +
        +# Now execute each one in turn keeping track of how many succeeded and failed. 
        +succeeded=0
        +failed=0
        +failed_list=()
        +for test in ${test_executables[*]}; do
        +  "$test"
        +  result=$?
        +  if [ $result -eq 0 ]; then
        +    succeeded=$(( $succeeded + 1 ))
        +  else
        +    failed=$(( failed + 1 ))
        +    failed_list="$failed_list $test"
        +  fi
        +done
        +
        +# Report the successes and failures to the console.
        +echo "Tests complete with $succeeded successes and $failed failures."
        +if [ $failed -ne 0 ]; then
        +  echo "The following tests failed:"
        +  echo $failed_list
        +fi
        +exit $failed
        diff --git a/lib/ann/fann/lib/googletest/xcode/Scripts/versiongenerate.py b/lib/ann/fann/lib/googletest/xcode/Scripts/versiongenerate.py
        new file mode 100755
        index 0000000..81de8c9
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/xcode/Scripts/versiongenerate.py
        @@ -0,0 +1,100 @@
        +#!/usr/bin/env python
        +#
        +# Copyright 2008, Google Inc.
        +# All rights reserved.
        +#
        +# Redistribution and use in source and binary forms, with or without
        +# modification, are permitted provided that the following conditions are
        +# met:
        +#
        +#     * Redistributions of source code must retain the above copyright
        +# notice, this list of conditions and the following disclaimer.
        +#     * Redistributions in binary form must reproduce the above
        +# copyright notice, this list of conditions and the following disclaimer
        +# in the documentation and/or other materials provided with the
        +# distribution.
        +#     * Neither the name of Google Inc. nor the names of its
        +# contributors may be used to endorse or promote products derived from
        +# this software without specific prior written permission.
        +#
        +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        +
        +"""A script to prepare version informtion for use the gtest Info.plist file.
        +
        +  This script extracts the version information from the configure.ac file and
        +  uses it to generate a header file containing the same information. The
        +  #defines in this header file will be included in during the generation of
        +  the Info.plist of the framework, giving the correct value to the version
        +  shown in the Finder.
        +
        +  This script makes the following assumptions (these are faults of the script,
        +  not problems with the Autoconf):
        +    1. The AC_INIT macro will be contained within the first 1024 characters
        +       of configure.ac
        +    2. The version string will be 3 integers separated by periods and will be
        +       surrounded by squre brackets, "[" and "]" (e.g. [1.0.1]). The first
        +       segment represents the major version, the second represents the minor
        +       version and the third represents the fix version.
        +    3. No ")" character exists between the opening "(" and closing ")" of
        +       AC_INIT, including in comments and character strings.
        +"""
        +
        +import sys
        +import re
        +
        +# Read the command line argument (the output directory for Version.h)
        +if (len(sys.argv) < 3):
        +  print "Usage: versiongenerate.py input_dir output_dir"
        +  sys.exit(1)
        +else:
        +  input_dir = sys.argv[1]
        +  output_dir = sys.argv[2]
        +
        +# Read the first 1024 characters of the configure.ac file
        +config_file = open("%s/configure.ac" % input_dir, 'r')
        +buffer_size = 1024
        +opening_string = config_file.read(buffer_size)
        +config_file.close()
        +
        +# Extract the version string from the AC_INIT macro
        +#   The following init_expression means:
        +#     Extract three integers separated by periods and surrounded by squre
        +#     brackets(e.g. "[1.0.1]") between "AC_INIT(" and ")". Do not be greedy
        +#     (*? is the non-greedy flag) since that would pull in everything between
        +#     the first "(" and the last ")" in the file.
        +version_expression = re.compile(r"AC_INIT\(.*?\[(\d+)\.(\d+)\.(\d+)\].*?\)",
        +                                re.DOTALL)
        +version_values = version_expression.search(opening_string)
        +major_version = version_values.group(1)
        +minor_version = version_values.group(2)
        +fix_version = version_values.group(3)
        +
        +# Write the version information to a header file to be included in the
        +# Info.plist file.
        +file_data = """//
        +// DO NOT MODIFY THIS FILE (but you can delete it)
        +//
        +// This file is autogenerated by the versiongenerate.py script. This script
        +// is executed in a "Run Script" build phase when creating gtest.framework. This
        +// header file is not used during compilation of C-source. Rather, it simply
        +// defines some version strings for substitution in the Info.plist. Because of
        +// this, we are not not restricted to C-syntax nor are we using include guards.
        +//
        +
        +#define GTEST_VERSIONINFO_SHORT %s.%s
        +#define GTEST_VERSIONINFO_LONG %s.%s.%s
        +
        +""" % (major_version, minor_version, major_version, minor_version, fix_version)
        +version_file = open("%s/Version.h" % output_dir, 'w')
        +version_file.write(file_data)
        +version_file.close()
        diff --git a/lib/ann/fann/lib/googletest/xcode/gtest.xcodeproj/project.pbxproj b/lib/ann/fann/lib/googletest/xcode/gtest.xcodeproj/project.pbxproj
        new file mode 100644
        index 0000000..aefaa88
        --- /dev/null
        +++ b/lib/ann/fann/lib/googletest/xcode/gtest.xcodeproj/project.pbxproj
        @@ -0,0 +1,1135 @@
        +// !$*UTF8*$!
        +{
        +	archiveVersion = 1;
        +	classes = {
        +	};
        +	objectVersion = 46;
        +	objects = {
        +
        +/* Begin PBXAggregateTarget section */
        +		3B238F5F0E828B5400846E11 /* Check */ = {
        +			isa = PBXAggregateTarget;
        +			buildConfigurationList = 3B238FA30E828BB600846E11 /* Build configuration list for PBXAggregateTarget "Check" */;
        +			buildPhases = (
        +				3B238F5E0E828B5400846E11 /* ShellScript */,
        +			);
        +			dependencies = (
        +				40899F9D0FFA740F000B29AE /* PBXTargetDependency */,
        +				40C849F7101A43440083642A /* PBXTargetDependency */,
        +				4089A0980FFAD34A000B29AE /* PBXTargetDependency */,
        +				40C849F9101A43490083642A /* PBXTargetDependency */,
        +			);
        +			name = Check;
        +			productName = Check;
        +		};
        +		40C44ADC0E3798F4008FCC51 /* Version Info */ = {
        +			isa = PBXAggregateTarget;
        +			buildConfigurationList = 40C44AE40E379905008FCC51 /* Build configuration list for PBXAggregateTarget "Version Info" */;
        +			buildPhases = (
        +				40C44ADB0E3798F4008FCC51 /* Generate Version.h */,
        +			);
        +			comments = "The generation of Version.h must be performed in its own target. Since the Info.plist is preprocessed before any of the other build phases in gtest, the Version.h file would not be ready if included as a build phase of that target.";
        +			dependencies = (
        +			);
        +			name = "Version Info";
        +			productName = Version.h;
        +		};
        +/* End PBXAggregateTarget section */
        +
        +/* Begin PBXBuildFile section */
        +		224A12A30E9EADCC00BD17FD /* gtest-test-part.h in Headers */ = {isa = PBXBuildFile; fileRef = 224A12A20E9EADCC00BD17FD /* gtest-test-part.h */; settings = {ATTRIBUTES = (Public, ); }; };
        +		3BF6F2A00E79B5AD000F2EEE /* gtest-type-util.h in Copy Headers Internal */ = {isa = PBXBuildFile; fileRef = 3BF6F29F0E79B5AD000F2EEE /* gtest-type-util.h */; };
        +		3BF6F2A50E79B616000F2EEE /* gtest-typed-test.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BF6F2A40E79B616000F2EEE /* gtest-typed-test.h */; settings = {ATTRIBUTES = (Public, ); }; };
        +		404884380E2F799B00CF7658 /* gtest-death-test.h in Headers */ = {isa = PBXBuildFile; fileRef = 404883DB0E2F799B00CF7658 /* gtest-death-test.h */; settings = {ATTRIBUTES = (Public, ); }; };
        +		404884390E2F799B00CF7658 /* gtest-message.h in Headers */ = {isa = PBXBuildFile; fileRef = 404883DC0E2F799B00CF7658 /* gtest-message.h */; settings = {ATTRIBUTES = (Public, ); }; };
        +		4048843A0E2F799B00CF7658 /* gtest-spi.h in Headers */ = {isa = PBXBuildFile; fileRef = 404883DD0E2F799B00CF7658 /* gtest-spi.h */; settings = {ATTRIBUTES = (Public, ); }; };
        +		4048843B0E2F799B00CF7658 /* gtest.h in Headers */ = {isa = PBXBuildFile; fileRef = 404883DE0E2F799B00CF7658 /* gtest.h */; settings = {ATTRIBUTES = (Public, ); }; };
        +		4048843C0E2F799B00CF7658 /* gtest_pred_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 404883DF0E2F799B00CF7658 /* gtest_pred_impl.h */; settings = {ATTRIBUTES = (Public, ); }; };
        +		4048843D0E2F799B00CF7658 /* gtest_prod.h in Headers */ = {isa = PBXBuildFile; fileRef = 404883E00E2F799B00CF7658 /* gtest_prod.h */; settings = {ATTRIBUTES = (Public, ); }; };
        +		404884500E2F799B00CF7658 /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = 404883F60E2F799B00CF7658 /* README.md */; };
        +		404884A00E2F7BE600CF7658 /* gtest-death-test-internal.h in Copy Headers Internal */ = {isa = PBXBuildFile; fileRef = 404883E20E2F799B00CF7658 /* gtest-death-test-internal.h */; };
        +		404884A10E2F7BE600CF7658 /* gtest-filepath.h in Copy Headers Internal */ = {isa = PBXBuildFile; fileRef = 404883E30E2F799B00CF7658 /* gtest-filepath.h */; };
        +		404884A20E2F7BE600CF7658 /* gtest-internal.h in Copy Headers Internal */ = {isa = PBXBuildFile; fileRef = 404883E40E2F799B00CF7658 /* gtest-internal.h */; };
        +		404884A30E2F7BE600CF7658 /* gtest-port.h in Copy Headers Internal */ = {isa = PBXBuildFile; fileRef = 404883E50E2F799B00CF7658 /* gtest-port.h */; };
        +		404884A40E2F7BE600CF7658 /* gtest-string.h in Copy Headers Internal */ = {isa = PBXBuildFile; fileRef = 404883E60E2F799B00CF7658 /* gtest-string.h */; };
        +		404884AC0E2F7CD900CF7658 /* CHANGES in Resources */ = {isa = PBXBuildFile; fileRef = 404884A90E2F7CD900CF7658 /* CHANGES */; };
        +		404884AD0E2F7CD900CF7658 /* CONTRIBUTORS in Resources */ = {isa = PBXBuildFile; fileRef = 404884AA0E2F7CD900CF7658 /* CONTRIBUTORS */; };
        +		404884AE0E2F7CD900CF7658 /* LICENSE in Resources */ = {isa = PBXBuildFile; fileRef = 404884AB0E2F7CD900CF7658 /* LICENSE */; };
        +		40899F3A0FFA70D4000B29AE /* gtest-all.cc in Sources */ = {isa = PBXBuildFile; fileRef = 224A12A10E9EADA700BD17FD /* gtest-all.cc */; };
        +		40899F500FFA7281000B29AE /* gtest-tuple.h in Copy Headers Internal */ = {isa = PBXBuildFile; fileRef = 40899F4D0FFA7271000B29AE /* gtest-tuple.h */; };
        +		40899F530FFA72A0000B29AE /* gtest_unittest.cc in Sources */ = {isa = PBXBuildFile; fileRef = 3B238C120E7FE13C00846E11 /* gtest_unittest.cc */; };
        +		4089A0440FFAD1BE000B29AE /* sample1.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4089A02C0FFACF7F000B29AE /* sample1.cc */; };
        +		4089A0460FFAD1BE000B29AE /* sample1_unittest.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4089A02E0FFACF7F000B29AE /* sample1_unittest.cc */; };
        +		40C848FF101A21150083642A /* gtest-all.cc in Sources */ = {isa = PBXBuildFile; fileRef = 224A12A10E9EADA700BD17FD /* gtest-all.cc */; };
        +		40C84915101A21DF0083642A /* gtest_main.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4048840D0E2F799B00CF7658 /* gtest_main.cc */; };
        +		40C84916101A235B0083642A /* libgtest_main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 40C8490B101A217E0083642A /* libgtest_main.a */; };
        +		40C84921101A23AD0083642A /* libgtest_main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 40C8490B101A217E0083642A /* libgtest_main.a */; };
        +		40C84978101A36540083642A /* libgtest_main.a in Resources */ = {isa = PBXBuildFile; fileRef = 40C8490B101A217E0083642A /* libgtest_main.a */; };
        +		40C84980101A36850083642A /* gtest_unittest.cc in Sources */ = {isa = PBXBuildFile; fileRef = 3B238C120E7FE13C00846E11 /* gtest_unittest.cc */; };
        +		40C84982101A36850083642A /* libgtest.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 40C848FA101A209C0083642A /* libgtest.a */; };
        +		40C84983101A36850083642A /* libgtest_main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 40C8490B101A217E0083642A /* libgtest_main.a */; };
        +		40C8498F101A36A60083642A /* sample1.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4089A02C0FFACF7F000B29AE /* sample1.cc */; };
        +		40C84990101A36A60083642A /* sample1_unittest.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4089A02E0FFACF7F000B29AE /* sample1_unittest.cc */; };
        +		40C84992101A36A60083642A /* libgtest.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 40C848FA101A209C0083642A /* libgtest.a */; };
        +		40C84993101A36A60083642A /* libgtest_main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 40C8490B101A217E0083642A /* libgtest_main.a */; };
        +		40C849A2101A37050083642A /* gtest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4539C8FF0EC27F6400A70F4C /* gtest.framework */; };
        +		40C849A4101A37150083642A /* gtest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4539C8FF0EC27F6400A70F4C /* gtest.framework */; };
        +		4539C9340EC280AE00A70F4C /* gtest-param-test.h in Headers */ = {isa = PBXBuildFile; fileRef = 4539C9330EC280AE00A70F4C /* gtest-param-test.h */; settings = {ATTRIBUTES = (Public, ); }; };
        +		4539C9380EC280E200A70F4C /* gtest-linked_ptr.h in Copy Headers Internal */ = {isa = PBXBuildFile; fileRef = 4539C9350EC280E200A70F4C /* gtest-linked_ptr.h */; };
        +		4539C9390EC280E200A70F4C /* gtest-param-util-generated.h in Copy Headers Internal */ = {isa = PBXBuildFile; fileRef = 4539C9360EC280E200A70F4C /* gtest-param-util-generated.h */; };
        +		4539C93A0EC280E200A70F4C /* gtest-param-util.h in Copy Headers Internal */ = {isa = PBXBuildFile; fileRef = 4539C9370EC280E200A70F4C /* gtest-param-util.h */; };
        +		4567C8181264FF71007740BE /* gtest-printers.h in Headers */ = {isa = PBXBuildFile; fileRef = 4567C8171264FF71007740BE /* gtest-printers.h */; settings = {ATTRIBUTES = (Public, ); }; };
        +/* End PBXBuildFile section */
        +
        +/* Begin PBXContainerItemProxy section */
        +		40899F9C0FFA740F000B29AE /* PBXContainerItemProxy */ = {
        +			isa = PBXContainerItemProxy;
        +			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
        +			proxyType = 1;
        +			remoteGlobalIDString = 40899F420FFA7184000B29AE;
        +			remoteInfo = gtest_unittest;
        +		};
        +		4089A0970FFAD34A000B29AE /* PBXContainerItemProxy */ = {
        +			isa = PBXContainerItemProxy;
        +			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
        +			proxyType = 1;
        +			remoteGlobalIDString = 4089A0120FFACEFC000B29AE;
        +			remoteInfo = sample1_unittest;
        +		};
        +		408BEC0F1046CFE900DEF522 /* PBXContainerItemProxy */ = {
        +			isa = PBXContainerItemProxy;
        +			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
        +			proxyType = 1;
        +			remoteGlobalIDString = 40C848F9101A209C0083642A;
        +			remoteInfo = "gtest-static";
        +		};
        +		40C44AE50E379922008FCC51 /* PBXContainerItemProxy */ = {
        +			isa = PBXContainerItemProxy;
        +			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
        +			proxyType = 1;
        +			remoteGlobalIDString = 40C44ADC0E3798F4008FCC51;
        +			remoteInfo = Version.h;
        +		};
        +		40C8497C101A36850083642A /* PBXContainerItemProxy */ = {
        +			isa = PBXContainerItemProxy;
        +			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
        +			proxyType = 1;
        +			remoteGlobalIDString = 40C848F9101A209C0083642A;
        +			remoteInfo = "gtest-static";
        +		};
        +		40C8497E101A36850083642A /* PBXContainerItemProxy */ = {
        +			isa = PBXContainerItemProxy;
        +			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
        +			proxyType = 1;
        +			remoteGlobalIDString = 40C8490A101A217E0083642A;
        +			remoteInfo = "gtest_main-static";
        +		};
        +		40C8498B101A36A60083642A /* PBXContainerItemProxy */ = {
        +			isa = PBXContainerItemProxy;
        +			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
        +			proxyType = 1;
        +			remoteGlobalIDString = 40C848F9101A209C0083642A;
        +			remoteInfo = "gtest-static";
        +		};
        +		40C8498D101A36A60083642A /* PBXContainerItemProxy */ = {
        +			isa = PBXContainerItemProxy;
        +			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
        +			proxyType = 1;
        +			remoteGlobalIDString = 40C8490A101A217E0083642A;
        +			remoteInfo = "gtest_main-static";
        +		};
        +		40C8499B101A36DC0083642A /* PBXContainerItemProxy */ = {
        +			isa = PBXContainerItemProxy;
        +			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
        +			proxyType = 1;
        +			remoteGlobalIDString = 40C8490A101A217E0083642A;
        +			remoteInfo = "gtest_main-static";
        +		};
        +		40C8499D101A36E50083642A /* PBXContainerItemProxy */ = {
        +			isa = PBXContainerItemProxy;
        +			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
        +			proxyType = 1;
        +			remoteGlobalIDString = 8D07F2BC0486CC7A007CD1D0;
        +			remoteInfo = "gtest-framework";
        +		};
        +		40C8499F101A36F10083642A /* PBXContainerItemProxy */ = {
        +			isa = PBXContainerItemProxy;
        +			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
        +			proxyType = 1;
        +			remoteGlobalIDString = 8D07F2BC0486CC7A007CD1D0;
        +			remoteInfo = "gtest-framework";
        +		};
        +		40C849F6101A43440083642A /* PBXContainerItemProxy */ = {
        +			isa = PBXContainerItemProxy;
        +			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
        +			proxyType = 1;
        +			remoteGlobalIDString = 40C8497A101A36850083642A;
        +			remoteInfo = "gtest_unittest-static";
        +		};
        +		40C849F8101A43490083642A /* PBXContainerItemProxy */ = {
        +			isa = PBXContainerItemProxy;
        +			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
        +			proxyType = 1;
        +			remoteGlobalIDString = 40C84989101A36A60083642A;
        +			remoteInfo = "sample1_unittest-static";
        +		};
        +/* End PBXContainerItemProxy section */
        +
        +/* Begin PBXCopyFilesBuildPhase section */
        +		404884A50E2F7C0400CF7658 /* Copy Headers Internal */ = {
        +			isa = PBXCopyFilesBuildPhase;
        +			buildActionMask = 2147483647;
        +			dstPath = Headers/internal;
        +			dstSubfolderSpec = 6;
        +			files = (
        +				404884A00E2F7BE600CF7658 /* gtest-death-test-internal.h in Copy Headers Internal */,
        +				404884A10E2F7BE600CF7658 /* gtest-filepath.h in Copy Headers Internal */,
        +				404884A20E2F7BE600CF7658 /* gtest-internal.h in Copy Headers Internal */,
        +				4539C9380EC280E200A70F4C /* gtest-linked_ptr.h in Copy Headers Internal */,
        +				4539C9390EC280E200A70F4C /* gtest-param-util-generated.h in Copy Headers Internal */,
        +				4539C93A0EC280E200A70F4C /* gtest-param-util.h in Copy Headers Internal */,
        +				404884A30E2F7BE600CF7658 /* gtest-port.h in Copy Headers Internal */,
        +				404884A40E2F7BE600CF7658 /* gtest-string.h in Copy Headers Internal */,
        +				40899F500FFA7281000B29AE /* gtest-tuple.h in Copy Headers Internal */,
        +				3BF6F2A00E79B5AD000F2EEE /* gtest-type-util.h in Copy Headers Internal */,
        +			);
        +			name = "Copy Headers Internal";
        +			runOnlyForDeploymentPostprocessing = 0;
        +		};
        +/* End PBXCopyFilesBuildPhase section */
        +
        +/* Begin PBXFileReference section */
        +		224A12A10E9EADA700BD17FD /* gtest-all.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = "gtest-all.cc"; sourceTree = "<group>"; };
        +		224A12A20E9EADCC00BD17FD /* gtest-test-part.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = "gtest-test-part.h"; sourceTree = "<group>"; };
        +		3B238C120E7FE13C00846E11 /* gtest_unittest.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = gtest_unittest.cc; sourceTree = "<group>"; };
        +		3B87D2100E96B92E000D1852 /* runtests.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = runtests.sh; sourceTree = "<group>"; };
        +		3BF6F29F0E79B5AD000F2EEE /* gtest-type-util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "gtest-type-util.h"; sourceTree = "<group>"; };
        +		3BF6F2A40E79B616000F2EEE /* gtest-typed-test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "gtest-typed-test.h"; sourceTree = "<group>"; };
        +		403EE37C0E377822004BD1E2 /* versiongenerate.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = versiongenerate.py; sourceTree = "<group>"; };
        +		404883DB0E2F799B00CF7658 /* gtest-death-test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "gtest-death-test.h"; sourceTree = "<group>"; };
        +		404883DC0E2F799B00CF7658 /* gtest-message.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "gtest-message.h"; sourceTree = "<group>"; };
        +		404883DD0E2F799B00CF7658 /* gtest-spi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "gtest-spi.h"; sourceTree = "<group>"; };
        +		404883DE0E2F799B00CF7658 /* gtest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gtest.h; sourceTree = "<group>"; };
        +		404883DF0E2F799B00CF7658 /* gtest_pred_impl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gtest_pred_impl.h; sourceTree = "<group>"; };
        +		404883E00E2F799B00CF7658 /* gtest_prod.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gtest_prod.h; sourceTree = "<group>"; };
        +		404883E20E2F799B00CF7658 /* gtest-death-test-internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "gtest-death-test-internal.h"; sourceTree = "<group>"; };
        +		404883E30E2F799B00CF7658 /* gtest-filepath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "gtest-filepath.h"; sourceTree = "<group>"; };
        +		404883E40E2F799B00CF7658 /* gtest-internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "gtest-internal.h"; sourceTree = "<group>"; };
        +		404883E50E2F799B00CF7658 /* gtest-port.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "gtest-port.h"; sourceTree = "<group>"; };
        +		404883E60E2F799B00CF7658 /* gtest-string.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "gtest-string.h"; sourceTree = "<group>"; };
        +		404883F60E2F799B00CF7658 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = README.md; path = ../README.md; sourceTree = SOURCE_ROOT; };
        +		4048840D0E2F799B00CF7658 /* gtest_main.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = gtest_main.cc; sourceTree = "<group>"; };
        +		404884A90E2F7CD900CF7658 /* CHANGES */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = CHANGES; path = ../CHANGES; sourceTree = SOURCE_ROOT; };
        +		404884AA0E2F7CD900CF7658 /* CONTRIBUTORS */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = CONTRIBUTORS; path = ../CONTRIBUTORS; sourceTree = SOURCE_ROOT; };
        +		404884AB0E2F7CD900CF7658 /* LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = LICENSE; path = ../LICENSE; sourceTree = SOURCE_ROOT; };
        +		40899F430FFA7184000B29AE /* gtest_unittest-framework */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "gtest_unittest-framework"; sourceTree = BUILT_PRODUCTS_DIR; };
        +		40899F4D0FFA7271000B29AE /* gtest-tuple.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "gtest-tuple.h"; sourceTree = "<group>"; };
        +		40899FB30FFA7567000B29AE /* StaticLibraryTarget.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = StaticLibraryTarget.xcconfig; sourceTree = "<group>"; };
        +		4089A0130FFACEFC000B29AE /* sample1_unittest-framework */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "sample1_unittest-framework"; sourceTree = BUILT_PRODUCTS_DIR; };
        +		4089A02C0FFACF7F000B29AE /* sample1.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sample1.cc; sourceTree = "<group>"; };
        +		4089A02D0FFACF7F000B29AE /* sample1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sample1.h; sourceTree = "<group>"; };
        +		4089A02E0FFACF7F000B29AE /* sample1_unittest.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sample1_unittest.cc; sourceTree = "<group>"; };
        +		40C848FA101A209C0083642A /* libgtest.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libgtest.a; sourceTree = BUILT_PRODUCTS_DIR; };
        +		40C8490B101A217E0083642A /* libgtest_main.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libgtest_main.a; sourceTree = BUILT_PRODUCTS_DIR; };
        +		40C84987101A36850083642A /* gtest_unittest */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = gtest_unittest; sourceTree = BUILT_PRODUCTS_DIR; };
        +		40C84997101A36A60083642A /* sample1_unittest-static */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "sample1_unittest-static"; sourceTree = BUILT_PRODUCTS_DIR; };
        +		40D4CDF10E30E07400294801 /* DebugProject.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = DebugProject.xcconfig; sourceTree = "<group>"; };
        +		40D4CDF20E30E07400294801 /* FrameworkTarget.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = FrameworkTarget.xcconfig; sourceTree = "<group>"; };
        +		40D4CDF30E30E07400294801 /* General.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = General.xcconfig; sourceTree = "<group>"; };
        +		40D4CDF40E30E07400294801 /* ReleaseProject.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = ReleaseProject.xcconfig; sourceTree = "<group>"; };
        +		40D4CF510E30F5E200294801 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
        +		4539C8FF0EC27F6400A70F4C /* gtest.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = gtest.framework; sourceTree = BUILT_PRODUCTS_DIR; };
        +		4539C9330EC280AE00A70F4C /* gtest-param-test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "gtest-param-test.h"; sourceTree = "<group>"; };
        +		4539C9350EC280E200A70F4C /* gtest-linked_ptr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "gtest-linked_ptr.h"; sourceTree = "<group>"; };
        +		4539C9360EC280E200A70F4C /* gtest-param-util-generated.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "gtest-param-util-generated.h"; sourceTree = "<group>"; };
        +		4539C9370EC280E200A70F4C /* gtest-param-util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "gtest-param-util.h"; sourceTree = "<group>"; };
        +		4567C8171264FF71007740BE /* gtest-printers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "gtest-printers.h"; sourceTree = "<group>"; };
        +/* End PBXFileReference section */
        +
        +/* Begin PBXFrameworksBuildPhase section */
        +		40899F410FFA7184000B29AE /* Frameworks */ = {
        +			isa = PBXFrameworksBuildPhase;
        +			buildActionMask = 2147483647;
        +			files = (
        +				40C849A4101A37150083642A /* gtest.framework in Frameworks */,
        +				40C84916101A235B0083642A /* libgtest_main.a in Frameworks */,
        +			);
        +			runOnlyForDeploymentPostprocessing = 0;
        +		};
        +		4089A0110FFACEFC000B29AE /* Frameworks */ = {
        +			isa = PBXFrameworksBuildPhase;
        +			buildActionMask = 2147483647;
        +			files = (
        +				40C849A2101A37050083642A /* gtest.framework in Frameworks */,
        +				40C84921101A23AD0083642A /* libgtest_main.a in Frameworks */,
        +			);
        +			runOnlyForDeploymentPostprocessing = 0;
        +		};
        +		40C84981101A36850083642A /* Frameworks */ = {
        +			isa = PBXFrameworksBuildPhase;
        +			buildActionMask = 2147483647;
        +			files = (
        +				40C84982101A36850083642A /* libgtest.a in Frameworks */,
        +				40C84983101A36850083642A /* libgtest_main.a in Frameworks */,
        +			);
        +			runOnlyForDeploymentPostprocessing = 0;
        +		};
        +		40C84991101A36A60083642A /* Frameworks */ = {
        +			isa = PBXFrameworksBuildPhase;
        +			buildActionMask = 2147483647;
        +			files = (
        +				40C84992101A36A60083642A /* libgtest.a in Frameworks */,
        +				40C84993101A36A60083642A /* libgtest_main.a in Frameworks */,
        +			);
        +			runOnlyForDeploymentPostprocessing = 0;
        +		};
        +/* End PBXFrameworksBuildPhase section */
        +
        +/* Begin PBXGroup section */
        +		034768DDFF38A45A11DB9C8B /* Products */ = {
        +			isa = PBXGroup;
        +			children = (
        +				4539C8FF0EC27F6400A70F4C /* gtest.framework */,
        +				40C848FA101A209C0083642A /* libgtest.a */,
        +				40C8490B101A217E0083642A /* libgtest_main.a */,
        +				40899F430FFA7184000B29AE /* gtest_unittest-framework */,
        +				40C84987101A36850083642A /* gtest_unittest */,
        +				4089A0130FFACEFC000B29AE /* sample1_unittest-framework */,
        +				40C84997101A36A60083642A /* sample1_unittest-static */,
        +			);
        +			name = Products;
        +			sourceTree = "<group>";
        +		};
        +		0867D691FE84028FC02AAC07 /* gtest */ = {
        +			isa = PBXGroup;
        +			children = (
        +				40D4CDF00E30E07400294801 /* Config */,
        +				08FB77ACFE841707C02AAC07 /* Source */,
        +				40D4CF4E0E30F5E200294801 /* Resources */,
        +				403EE37B0E377822004BD1E2 /* Scripts */,
        +				034768DDFF38A45A11DB9C8B /* Products */,
        +			);
        +			name = gtest;
        +			sourceTree = "<group>";
        +		};
        +		08FB77ACFE841707C02AAC07 /* Source */ = {
        +			isa = PBXGroup;
        +			children = (
        +				404884A90E2F7CD900CF7658 /* CHANGES */,
        +				404884AA0E2F7CD900CF7658 /* CONTRIBUTORS */,
        +				404884AB0E2F7CD900CF7658 /* LICENSE */,
        +				404883F60E2F799B00CF7658 /* README.md */,
        +				404883D90E2F799B00CF7658 /* include */,
        +				4089A02F0FFACF84000B29AE /* samples */,
        +				404884070E2F799B00CF7658 /* src */,
        +				3B238BF00E7FE13B00846E11 /* test */,
        +			);
        +			name = Source;
        +			sourceTree = "<group>";
        +		};
        +		3B238BF00E7FE13B00846E11 /* test */ = {
        +			isa = PBXGroup;
        +			children = (
        +				3B238C120E7FE13C00846E11 /* gtest_unittest.cc */,
        +			);
        +			name = test;
        +			path = ../test;
        +			sourceTree = SOURCE_ROOT;
        +		};
        +		403EE37B0E377822004BD1E2 /* Scripts */ = {
        +			isa = PBXGroup;
        +			children = (
        +				403EE37C0E377822004BD1E2 /* versiongenerate.py */,
        +				3B87D2100E96B92E000D1852 /* runtests.sh */,
        +			);
        +			path = Scripts;
        +			sourceTree = "<group>";
        +		};
        +		404883D90E2F799B00CF7658 /* include */ = {
        +			isa = PBXGroup;
        +			children = (
        +				404883DA0E2F799B00CF7658 /* gtest */,
        +			);
        +			name = include;
        +			path = ../include;
        +			sourceTree = SOURCE_ROOT;
        +		};
        +		404883DA0E2F799B00CF7658 /* gtest */ = {
        +			isa = PBXGroup;
        +			children = (
        +				404883E10E2F799B00CF7658 /* internal */,
        +				224A12A20E9EADCC00BD17FD /* gtest-test-part.h */,
        +				404883DB0E2F799B00CF7658 /* gtest-death-test.h */,
        +				404883DC0E2F799B00CF7658 /* gtest-message.h */,
        +				4539C9330EC280AE00A70F4C /* gtest-param-test.h */,
        +				4567C8171264FF71007740BE /* gtest-printers.h */,
        +				404883DD0E2F799B00CF7658 /* gtest-spi.h */,
        +				404883DE0E2F799B00CF7658 /* gtest.h */,
        +				404883DF0E2F799B00CF7658 /* gtest_pred_impl.h */,
        +				404883E00E2F799B00CF7658 /* gtest_prod.h */,
        +				3BF6F2A40E79B616000F2EEE /* gtest-typed-test.h */,
        +			);
        +			path = gtest;
        +			sourceTree = "<group>";
        +		};
        +		404883E10E2F799B00CF7658 /* internal */ = {
        +			isa = PBXGroup;
        +			children = (
        +				404883E20E2F799B00CF7658 /* gtest-death-test-internal.h */,
        +				404883E30E2F799B00CF7658 /* gtest-filepath.h */,
        +				404883E40E2F799B00CF7658 /* gtest-internal.h */,
        +				4539C9350EC280E200A70F4C /* gtest-linked_ptr.h */,
        +				4539C9360EC280E200A70F4C /* gtest-param-util-generated.h */,
        +				4539C9370EC280E200A70F4C /* gtest-param-util.h */,
        +				404883E50E2F799B00CF7658 /* gtest-port.h */,
        +				404883E60E2F799B00CF7658 /* gtest-string.h */,
        +				40899F4D0FFA7271000B29AE /* gtest-tuple.h */,
        +				3BF6F29F0E79B5AD000F2EEE /* gtest-type-util.h */,
        +			);
        +			path = internal;
        +			sourceTree = "<group>";
        +		};
        +		404884070E2F799B00CF7658 /* src */ = {
        +			isa = PBXGroup;
        +			children = (
        +				224A12A10E9EADA700BD17FD /* gtest-all.cc */,
        +				4048840D0E2F799B00CF7658 /* gtest_main.cc */,
        +			);
        +			name = src;
        +			path = ../src;
        +			sourceTree = SOURCE_ROOT;
        +		};
        +		4089A02F0FFACF84000B29AE /* samples */ = {
        +			isa = PBXGroup;
        +			children = (
        +				4089A02C0FFACF7F000B29AE /* sample1.cc */,
        +				4089A02D0FFACF7F000B29AE /* sample1.h */,
        +				4089A02E0FFACF7F000B29AE /* sample1_unittest.cc */,
        +			);
        +			name = samples;
        +			path = ../samples;
        +			sourceTree = SOURCE_ROOT;
        +		};
        +		40D4CDF00E30E07400294801 /* Config */ = {
        +			isa = PBXGroup;
        +			children = (
        +				40D4CDF10E30E07400294801 /* DebugProject.xcconfig */,
        +				40D4CDF20E30E07400294801 /* FrameworkTarget.xcconfig */,
        +				40D4CDF30E30E07400294801 /* General.xcconfig */,
        +				40D4CDF40E30E07400294801 /* ReleaseProject.xcconfig */,
        +				40899FB30FFA7567000B29AE /* StaticLibraryTarget.xcconfig */,
        +			);
        +			path = Config;
        +			sourceTree = "<group>";
        +		};
        +		40D4CF4E0E30F5E200294801 /* Resources */ = {
        +			isa = PBXGroup;
        +			children = (
        +				40D4CF510E30F5E200294801 /* Info.plist */,
        +			);
        +			path = Resources;
        +			sourceTree = "<group>";
        +		};
        +/* End PBXGroup section */
        +
        +/* Begin PBXHeadersBuildPhase section */
        +		8D07F2BD0486CC7A007CD1D0 /* Headers */ = {
        +			isa = PBXHeadersBuildPhase;
        +			buildActionMask = 2147483647;
        +			files = (
        +				404884380E2F799B00CF7658 /* gtest-death-test.h in Headers */,
        +				404884390E2F799B00CF7658 /* gtest-message.h in Headers */,
        +				4539C9340EC280AE00A70F4C /* gtest-param-test.h in Headers */,
        +				4567C8181264FF71007740BE /* gtest-printers.h in Headers */,
        +				3BF6F2A50E79B616000F2EEE /* gtest-typed-test.h in Headers */,
        +				4048843A0E2F799B00CF7658 /* gtest-spi.h in Headers */,
        +				4048843B0E2F799B00CF7658 /* gtest.h in Headers */,
        +				4048843C0E2F799B00CF7658 /* gtest_pred_impl.h in Headers */,
        +				4048843D0E2F799B00CF7658 /* gtest_prod.h in Headers */,
        +				224A12A30E9EADCC00BD17FD /* gtest-test-part.h in Headers */,
        +			);
        +			runOnlyForDeploymentPostprocessing = 0;
        +		};
        +/* End PBXHeadersBuildPhase section */
        +
        +/* Begin PBXNativeTarget section */
        +		40899F420FFA7184000B29AE /* gtest_unittest-framework */ = {
        +			isa = PBXNativeTarget;
        +			buildConfigurationList = 40899F4A0FFA71BC000B29AE /* Build configuration list for PBXNativeTarget "gtest_unittest-framework" */;
        +			buildPhases = (
        +				40899F400FFA7184000B29AE /* Sources */,
        +				40899F410FFA7184000B29AE /* Frameworks */,
        +			);
        +			buildRules = (
        +			);
        +			dependencies = (
        +				40C849A0101A36F10083642A /* PBXTargetDependency */,
        +			);
        +			name = "gtest_unittest-framework";
        +			productName = gtest_unittest;
        +			productReference = 40899F430FFA7184000B29AE /* gtest_unittest-framework */;
        +			productType = "com.apple.product-type.tool";
        +		};
        +		4089A0120FFACEFC000B29AE /* sample1_unittest-framework */ = {
        +			isa = PBXNativeTarget;
        +			buildConfigurationList = 4089A0240FFACF01000B29AE /* Build configuration list for PBXNativeTarget "sample1_unittest-framework" */;
        +			buildPhases = (
        +				4089A0100FFACEFC000B29AE /* Sources */,
        +				4089A0110FFACEFC000B29AE /* Frameworks */,
        +			);
        +			buildRules = (
        +			);
        +			dependencies = (
        +				40C8499E101A36E50083642A /* PBXTargetDependency */,
        +			);
        +			name = "sample1_unittest-framework";
        +			productName = sample1_unittest;
        +			productReference = 4089A0130FFACEFC000B29AE /* sample1_unittest-framework */;
        +			productType = "com.apple.product-type.tool";
        +		};
        +		40C848F9101A209C0083642A /* gtest-static */ = {
        +			isa = PBXNativeTarget;
        +			buildConfigurationList = 40C84902101A212E0083642A /* Build configuration list for PBXNativeTarget "gtest-static" */;
        +			buildPhases = (
        +				40C848F7101A209C0083642A /* Sources */,
        +			);
        +			buildRules = (
        +			);
        +			dependencies = (
        +			);
        +			name = "gtest-static";
        +			productName = "gtest-static";
        +			productReference = 40C848FA101A209C0083642A /* libgtest.a */;
        +			productType = "com.apple.product-type.library.static";
        +		};
        +		40C8490A101A217E0083642A /* gtest_main-static */ = {
        +			isa = PBXNativeTarget;
        +			buildConfigurationList = 40C84912101A21D20083642A /* Build configuration list for PBXNativeTarget "gtest_main-static" */;
        +			buildPhases = (
        +				40C84908101A217E0083642A /* Sources */,
        +			);
        +			buildRules = (
        +			);
        +			dependencies = (
        +			);
        +			name = "gtest_main-static";
        +			productName = "gtest_main-static";
        +			productReference = 40C8490B101A217E0083642A /* libgtest_main.a */;
        +			productType = "com.apple.product-type.library.static";
        +		};
        +		40C8497A101A36850083642A /* gtest_unittest-static */ = {
        +			isa = PBXNativeTarget;
        +			buildConfigurationList = 40C84984101A36850083642A /* Build configuration list for PBXNativeTarget "gtest_unittest-static" */;
        +			buildPhases = (
        +				40C8497F101A36850083642A /* Sources */,
        +				40C84981101A36850083642A /* Frameworks */,
        +			);
        +			buildRules = (
        +			);
        +			dependencies = (
        +				40C8497B101A36850083642A /* PBXTargetDependency */,
        +				40C8497D101A36850083642A /* PBXTargetDependency */,
        +			);
        +			name = "gtest_unittest-static";
        +			productName = gtest_unittest;
        +			productReference = 40C84987101A36850083642A /* gtest_unittest */;
        +			productType = "com.apple.product-type.tool";
        +		};
        +		40C84989101A36A60083642A /* sample1_unittest-static */ = {
        +			isa = PBXNativeTarget;
        +			buildConfigurationList = 40C84994101A36A60083642A /* Build configuration list for PBXNativeTarget "sample1_unittest-static" */;
        +			buildPhases = (
        +				40C8498E101A36A60083642A /* Sources */,
        +				40C84991101A36A60083642A /* Frameworks */,
        +			);
        +			buildRules = (
        +			);
        +			dependencies = (
        +				40C8498A101A36A60083642A /* PBXTargetDependency */,
        +				40C8498C101A36A60083642A /* PBXTargetDependency */,
        +			);
        +			name = "sample1_unittest-static";
        +			productName = sample1_unittest;
        +			productReference = 40C84997101A36A60083642A /* sample1_unittest-static */;
        +			productType = "com.apple.product-type.tool";
        +		};
        +		8D07F2BC0486CC7A007CD1D0 /* gtest-framework */ = {
        +			isa = PBXNativeTarget;
        +			buildConfigurationList = 4FADC24208B4156D00ABE55E /* Build configuration list for PBXNativeTarget "gtest-framework" */;
        +			buildPhases = (
        +				8D07F2C10486CC7A007CD1D0 /* Sources */,
        +				8D07F2BD0486CC7A007CD1D0 /* Headers */,
        +				404884A50E2F7C0400CF7658 /* Copy Headers Internal */,
        +				8D07F2BF0486CC7A007CD1D0 /* Resources */,
        +			);
        +			buildRules = (
        +			);
        +			dependencies = (
        +				40C44AE60E379922008FCC51 /* PBXTargetDependency */,
        +				408BEC101046CFE900DEF522 /* PBXTargetDependency */,
        +				40C8499C101A36DC0083642A /* PBXTargetDependency */,
        +			);
        +			name = "gtest-framework";
        +			productInstallPath = "$(HOME)/Library/Frameworks";
        +			productName = gtest;
        +			productReference = 4539C8FF0EC27F6400A70F4C /* gtest.framework */;
        +			productType = "com.apple.product-type.framework";
        +		};
        +/* End PBXNativeTarget section */
        +
        +/* Begin PBXProject section */
        +		0867D690FE84028FC02AAC07 /* Project object */ = {
        +			isa = PBXProject;
        +			attributes = {
        +				LastUpgradeCheck = 0460;
        +			};
        +			buildConfigurationList = 4FADC24608B4156D00ABE55E /* Build configuration list for PBXProject "gtest" */;
        +			compatibilityVersion = "Xcode 3.2";
        +			developmentRegion = English;
        +			hasScannedForEncodings = 1;
        +			knownRegions = (
        +				English,
        +				Japanese,
        +				French,
        +				German,
        +				en,
        +			);
        +			mainGroup = 0867D691FE84028FC02AAC07 /* gtest */;
        +			productRefGroup = 034768DDFF38A45A11DB9C8B /* Products */;
        +			projectDirPath = "";
        +			projectRoot = "";
        +			targets = (
        +				8D07F2BC0486CC7A007CD1D0 /* gtest-framework */,
        +				40C848F9101A209C0083642A /* gtest-static */,
        +				40C8490A101A217E0083642A /* gtest_main-static */,
        +				40899F420FFA7184000B29AE /* gtest_unittest-framework */,
        +				40C8497A101A36850083642A /* gtest_unittest-static */,
        +				4089A0120FFACEFC000B29AE /* sample1_unittest-framework */,
        +				40C84989101A36A60083642A /* sample1_unittest-static */,
        +				3B238F5F0E828B5400846E11 /* Check */,
        +				40C44ADC0E3798F4008FCC51 /* Version Info */,
        +			);
        +		};
        +/* End PBXProject section */
        +
        +/* Begin PBXResourcesBuildPhase section */
        +		8D07F2BF0486CC7A007CD1D0 /* Resources */ = {
        +			isa = PBXResourcesBuildPhase;
        +			buildActionMask = 2147483647;
        +			files = (
        +				404884500E2F799B00CF7658 /* README.md in Resources */,
        +				404884AC0E2F7CD900CF7658 /* CHANGES in Resources */,
        +				404884AD0E2F7CD900CF7658 /* CONTRIBUTORS in Resources */,
        +				404884AE0E2F7CD900CF7658 /* LICENSE in Resources */,
        +				40C84978101A36540083642A /* libgtest_main.a in Resources */,
        +			);
        +			runOnlyForDeploymentPostprocessing = 0;
        +		};
        +/* End PBXResourcesBuildPhase section */
        +
        +/* Begin PBXShellScriptBuildPhase section */
        +		3B238F5E0E828B5400846E11 /* ShellScript */ = {
        +			isa = PBXShellScriptBuildPhase;
        +			buildActionMask = 2147483647;
        +			files = (
        +			);
        +			inputPaths = (
        +			);
        +			outputPaths = (
        +			);
        +			runOnlyForDeploymentPostprocessing = 0;
        +			shellPath = /bin/sh;
        +			shellScript = "# Remember, this \"Run Script\" build phase will be executed from $SRCROOT\n/bin/bash Scripts/runtests.sh";
        +		};
        +		40C44ADB0E3798F4008FCC51 /* Generate Version.h */ = {
        +			isa = PBXShellScriptBuildPhase;
        +			buildActionMask = 2147483647;
        +			files = (
        +			);
        +			inputPaths = (
        +				"$(SRCROOT)/Scripts/versiongenerate.py",
        +				"$(SRCROOT)/../configure.ac",
        +			);
        +			name = "Generate Version.h";
        +			outputPaths = (
        +				"$(PROJECT_TEMP_DIR)/Version.h",
        +			);
        +			runOnlyForDeploymentPostprocessing = 0;
        +			shellPath = /bin/sh;
        +			shellScript = "# Remember, this \"Run Script\" build phase will be executed from $SRCROOT\n/usr/bin/python Scripts/versiongenerate.py ../ $PROJECT_TEMP_DIR";
        +		};
        +/* End PBXShellScriptBuildPhase section */
        +
        +/* Begin PBXSourcesBuildPhase section */
        +		40899F400FFA7184000B29AE /* Sources */ = {
        +			isa = PBXSourcesBuildPhase;
        +			buildActionMask = 2147483647;
        +			files = (
        +				40899F530FFA72A0000B29AE /* gtest_unittest.cc in Sources */,
        +			);
        +			runOnlyForDeploymentPostprocessing = 0;
        +		};
        +		4089A0100FFACEFC000B29AE /* Sources */ = {
        +			isa = PBXSourcesBuildPhase;
        +			buildActionMask = 2147483647;
        +			files = (
        +				4089A0440FFAD1BE000B29AE /* sample1.cc in Sources */,
        +				4089A0460FFAD1BE000B29AE /* sample1_unittest.cc in Sources */,
        +			);
        +			runOnlyForDeploymentPostprocessing = 0;
        +		};
        +		40C848F7101A209C0083642A /* Sources */ = {
        +			isa = PBXSourcesBuildPhase;
        +			buildActionMask = 2147483647;
        +			files = (
        +				40C848FF101A21150083642A /* gtest-all.cc in Sources */,
        +			);
        +			runOnlyForDeploymentPostprocessing = 0;
        +		};
        +		40C84908101A217E0083642A /* Sources */ = {
        +			isa = PBXSourcesBuildPhase;
        +			buildActionMask = 2147483647;
        +			files = (
        +				40C84915101A21DF0083642A /* gtest_main.cc in Sources */,
        +			);
        +			runOnlyForDeploymentPostprocessing = 0;
        +		};
        +		40C8497F101A36850083642A /* Sources */ = {
        +			isa = PBXSourcesBuildPhase;
        +			buildActionMask = 2147483647;
        +			files = (
        +				40C84980101A36850083642A /* gtest_unittest.cc in Sources */,
        +			);
        +			runOnlyForDeploymentPostprocessing = 0;
        +		};
        +		40C8498E101A36A60083642A /* Sources */ = {
        +			isa = PBXSourcesBuildPhase;
        +			buildActionMask = 2147483647;
        +			files = (
        +				40C8498F101A36A60083642A /* sample1.cc in Sources */,
        +				40C84990101A36A60083642A /* sample1_unittest.cc in Sources */,
        +			);
        +			runOnlyForDeploymentPostprocessing = 0;
        +		};
        +		8D07F2C10486CC7A007CD1D0 /* Sources */ = {
        +			isa = PBXSourcesBuildPhase;
        +			buildActionMask = 2147483647;
        +			files = (
        +				40899F3A0FFA70D4000B29AE /* gtest-all.cc in Sources */,
        +			);
        +			runOnlyForDeploymentPostprocessing = 0;
        +		};
        +/* End PBXSourcesBuildPhase section */
        +
        +/* Begin PBXTargetDependency section */
        +		40899F9D0FFA740F000B29AE /* PBXTargetDependency */ = {
        +			isa = PBXTargetDependency;
        +			target = 40899F420FFA7184000B29AE /* gtest_unittest-framework */;
        +			targetProxy = 40899F9C0FFA740F000B29AE /* PBXContainerItemProxy */;
        +		};
        +		4089A0980FFAD34A000B29AE /* PBXTargetDependency */ = {
        +			isa = PBXTargetDependency;
        +			target = 4089A0120FFACEFC000B29AE /* sample1_unittest-framework */;
        +			targetProxy = 4089A0970FFAD34A000B29AE /* PBXContainerItemProxy */;
        +		};
        +		408BEC101046CFE900DEF522 /* PBXTargetDependency */ = {
        +			isa = PBXTargetDependency;
        +			target = 40C848F9101A209C0083642A /* gtest-static */;
        +			targetProxy = 408BEC0F1046CFE900DEF522 /* PBXContainerItemProxy */;
        +		};
        +		40C44AE60E379922008FCC51 /* PBXTargetDependency */ = {
        +			isa = PBXTargetDependency;
        +			target = 40C44ADC0E3798F4008FCC51 /* Version Info */;
        +			targetProxy = 40C44AE50E379922008FCC51 /* PBXContainerItemProxy */;
        +		};
        +		40C8497B101A36850083642A /* PBXTargetDependency */ = {
        +			isa = PBXTargetDependency;
        +			target = 40C848F9101A209C0083642A /* gtest-static */;
        +			targetProxy = 40C8497C101A36850083642A /* PBXContainerItemProxy */;
        +		};
        +		40C8497D101A36850083642A /* PBXTargetDependency */ = {
        +			isa = PBXTargetDependency;
        +			target = 40C8490A101A217E0083642A /* gtest_main-static */;
        +			targetProxy = 40C8497E101A36850083642A /* PBXContainerItemProxy */;
        +		};
        +		40C8498A101A36A60083642A /* PBXTargetDependency */ = {
        +			isa = PBXTargetDependency;
        +			target = 40C848F9101A209C0083642A /* gtest-static */;
        +			targetProxy = 40C8498B101A36A60083642A /* PBXContainerItemProxy */;
        +		};
        +		40C8498C101A36A60083642A /* PBXTargetDependency */ = {
        +			isa = PBXTargetDependency;
        +			target = 40C8490A101A217E0083642A /* gtest_main-static */;
        +			targetProxy = 40C8498D101A36A60083642A /* PBXContainerItemProxy */;
        +		};
        +		40C8499C101A36DC0083642A /* PBXTargetDependency */ = {
        +			isa = PBXTargetDependency;
        +			target = 40C8490A101A217E0083642A /* gtest_main-static */;
        +			targetProxy = 40C8499B101A36DC0083642A /* PBXContainerItemProxy */;
        +		};
        +		40C8499E101A36E50083642A /* PBXTargetDependency */ = {
        +			isa = PBXTargetDependency;
        +			target = 8D07F2BC0486CC7A007CD1D0 /* gtest-framework */;
        +			targetProxy = 40C8499D101A36E50083642A /* PBXContainerItemProxy */;
        +		};
        +		40C849A0101A36F10083642A /* PBXTargetDependency */ = {
        +			isa = PBXTargetDependency;
        +			target = 8D07F2BC0486CC7A007CD1D0 /* gtest-framework */;
        +			targetProxy = 40C8499F101A36F10083642A /* PBXContainerItemProxy */;
        +		};
        +		40C849F7101A43440083642A /* PBXTargetDependency */ = {
        +			isa = PBXTargetDependency;
        +			target = 40C8497A101A36850083642A /* gtest_unittest-static */;
        +			targetProxy = 40C849F6101A43440083642A /* PBXContainerItemProxy */;
        +		};
        +		40C849F9101A43490083642A /* PBXTargetDependency */ = {
        +			isa = PBXTargetDependency;
        +			target = 40C84989101A36A60083642A /* sample1_unittest-static */;
        +			targetProxy = 40C849F8101A43490083642A /* PBXContainerItemProxy */;
        +		};
        +/* End PBXTargetDependency section */
        +
        +/* Begin XCBuildConfiguration section */
        +		3B238F600E828B5400846E11 /* Debug */ = {
        +			isa = XCBuildConfiguration;
        +			buildSettings = {
        +				COMBINE_HIDPI_IMAGES = YES;
        +				COPY_PHASE_STRIP = NO;
        +				GCC_DYNAMIC_NO_PIC = NO;
        +				GCC_OPTIMIZATION_LEVEL = 0;
        +				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
        +				PRODUCT_NAME = Check;
        +				SDKROOT = macosx;
        +			};
        +			name = Debug;
        +		};
        +		3B238F610E828B5400846E11 /* Release */ = {
        +			isa = XCBuildConfiguration;
        +			buildSettings = {
        +				COMBINE_HIDPI_IMAGES = YES;
        +				COPY_PHASE_STRIP = YES;
        +				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
        +				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
        +				PRODUCT_NAME = Check;
        +				SDKROOT = macosx;
        +				ZERO_LINK = NO;
        +			};
        +			name = Release;
        +		};
        +		40899F450FFA7185000B29AE /* Debug */ = {
        +			isa = XCBuildConfiguration;
        +			buildSettings = {
        +				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
        +				HEADER_SEARCH_PATHS = ../;
        +				PRODUCT_NAME = "gtest_unittest-framework";
        +				SDKROOT = macosx;
        +			};
        +			name = Debug;
        +		};
        +		40899F460FFA7185000B29AE /* Release */ = {
        +			isa = XCBuildConfiguration;
        +			buildSettings = {
        +				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
        +				HEADER_SEARCH_PATHS = ../;
        +				PRODUCT_NAME = "gtest_unittest-framework";
        +				SDKROOT = macosx;
        +			};
        +			name = Release;
        +		};
        +		4089A0150FFACEFD000B29AE /* Debug */ = {
        +			isa = XCBuildConfiguration;
        +			buildSettings = {
        +				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
        +				PRODUCT_NAME = "sample1_unittest-framework";
        +				SDKROOT = macosx;
        +			};
        +			name = Debug;
        +		};
        +		4089A0160FFACEFD000B29AE /* Release */ = {
        +			isa = XCBuildConfiguration;
        +			buildSettings = {
        +				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
        +				PRODUCT_NAME = "sample1_unittest-framework";
        +				SDKROOT = macosx;
        +			};
        +			name = Release;
        +		};
        +		40C44ADF0E3798F4008FCC51 /* Debug */ = {
        +			isa = XCBuildConfiguration;
        +			buildSettings = {
        +				COMBINE_HIDPI_IMAGES = YES;
        +				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
        +				MACOSX_DEPLOYMENT_TARGET = 10.7;
        +				PRODUCT_NAME = gtest;
        +				SDKROOT = macosx;
        +				TARGET_NAME = gtest;
        +			};
        +			name = Debug;
        +		};
        +		40C44AE00E3798F4008FCC51 /* Release */ = {
        +			isa = XCBuildConfiguration;
        +			buildSettings = {
        +				COMBINE_HIDPI_IMAGES = YES;
        +				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
        +				MACOSX_DEPLOYMENT_TARGET = 10.7;
        +				PRODUCT_NAME = gtest;
        +				SDKROOT = macosx;
        +				TARGET_NAME = gtest;
        +			};
        +			name = Release;
        +		};
        +		40C848FB101A209D0083642A /* Debug */ = {
        +			isa = XCBuildConfiguration;
        +			baseConfigurationReference = 40899FB30FFA7567000B29AE /* StaticLibraryTarget.xcconfig */;
        +			buildSettings = {
        +				COMBINE_HIDPI_IMAGES = YES;
        +				GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
        +				GCC_SYMBOLS_PRIVATE_EXTERN = YES;
        +				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
        +				HEADER_SEARCH_PATHS = (
        +					../,
        +					../include/,
        +				);
        +				PRODUCT_NAME = gtest;
        +				SDKROOT = macosx;
        +			};
        +			name = Debug;
        +		};
        +		40C848FC101A209D0083642A /* Release */ = {
        +			isa = XCBuildConfiguration;
        +			baseConfigurationReference = 40899FB30FFA7567000B29AE /* StaticLibraryTarget.xcconfig */;
        +			buildSettings = {
        +				COMBINE_HIDPI_IMAGES = YES;
        +				GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
        +				GCC_SYMBOLS_PRIVATE_EXTERN = YES;
        +				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
        +				HEADER_SEARCH_PATHS = (
        +					../,
        +					../include/,
        +				);
        +				PRODUCT_NAME = gtest;
        +				SDKROOT = macosx;
        +			};
        +			name = Release;
        +		};
        +		40C8490E101A217F0083642A /* Debug */ = {
        +			isa = XCBuildConfiguration;
        +			baseConfigurationReference = 40899FB30FFA7567000B29AE /* StaticLibraryTarget.xcconfig */;
        +			buildSettings = {
        +				COMBINE_HIDPI_IMAGES = YES;
        +				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
        +				HEADER_SEARCH_PATHS = (
        +					../,
        +					../include/,
        +				);
        +				PRODUCT_NAME = gtest_main;
        +				SDKROOT = macosx;
        +			};
        +			name = Debug;
        +		};
        +		40C8490F101A217F0083642A /* Release */ = {
        +			isa = XCBuildConfiguration;
        +			baseConfigurationReference = 40899FB30FFA7567000B29AE /* StaticLibraryTarget.xcconfig */;
        +			buildSettings = {
        +				COMBINE_HIDPI_IMAGES = YES;
        +				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
        +				HEADER_SEARCH_PATHS = (
        +					../,
        +					../include/,
        +				);
        +				PRODUCT_NAME = gtest_main;
        +				SDKROOT = macosx;
        +			};
        +			name = Release;
        +		};
        +		40C84985101A36850083642A /* Debug */ = {
        +			isa = XCBuildConfiguration;
        +			buildSettings = {
        +				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
        +				HEADER_SEARCH_PATHS = ../;
        +				PRODUCT_NAME = gtest_unittest;
        +				SDKROOT = macosx;
        +			};
        +			name = Debug;
        +		};
        +		40C84986101A36850083642A /* Release */ = {
        +			isa = XCBuildConfiguration;
        +			buildSettings = {
        +				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
        +				HEADER_SEARCH_PATHS = ../;
        +				PRODUCT_NAME = gtest_unittest;
        +				SDKROOT = macosx;
        +			};
        +			name = Release;
        +		};
        +		40C84995101A36A60083642A /* Debug */ = {
        +			isa = XCBuildConfiguration;
        +			buildSettings = {
        +				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
        +				PRODUCT_NAME = "sample1_unittest-static";
        +				SDKROOT = macosx;
        +			};
        +			name = Debug;
        +		};
        +		40C84996101A36A60083642A /* Release */ = {
        +			isa = XCBuildConfiguration;
        +			buildSettings = {
        +				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
        +				PRODUCT_NAME = "sample1_unittest-static";
        +				SDKROOT = macosx;
        +			};
        +			name = Release;
        +		};
        +		4FADC24308B4156D00ABE55E /* Debug */ = {
        +			isa = XCBuildConfiguration;
        +			baseConfigurationReference = 40D4CDF20E30E07400294801 /* FrameworkTarget.xcconfig */;
        +			buildSettings = {
        +				COMBINE_HIDPI_IMAGES = YES;
        +				DYLIB_COMPATIBILITY_VERSION = 1;
        +				DYLIB_CURRENT_VERSION = 1;
        +				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
        +				HEADER_SEARCH_PATHS = (
        +					../,
        +					../include/,
        +				);
        +				INFOPLIST_FILE = Resources/Info.plist;
        +				INFOPLIST_PREFIX_HEADER = "$(PROJECT_TEMP_DIR)/Version.h";
        +				INFOPLIST_PREPROCESS = YES;
        +				PRODUCT_NAME = gtest;
        +				SDKROOT = macosx;
        +				VERSIONING_SYSTEM = "apple-generic";
        +			};
        +			name = Debug;
        +		};
        +		4FADC24408B4156D00ABE55E /* Release */ = {
        +			isa = XCBuildConfiguration;
        +			baseConfigurationReference = 40D4CDF20E30E07400294801 /* FrameworkTarget.xcconfig */;
        +			buildSettings = {
        +				COMBINE_HIDPI_IMAGES = YES;
        +				DYLIB_COMPATIBILITY_VERSION = 1;
        +				DYLIB_CURRENT_VERSION = 1;
        +				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
        +				HEADER_SEARCH_PATHS = (
        +					../,
        +					../include/,
        +				);
        +				INFOPLIST_FILE = Resources/Info.plist;
        +				INFOPLIST_PREFIX_HEADER = "$(PROJECT_TEMP_DIR)/Version.h";
        +				INFOPLIST_PREPROCESS = YES;
        +				PRODUCT_NAME = gtest;
        +				SDKROOT = macosx;
        +				VERSIONING_SYSTEM = "apple-generic";
        +			};
        +			name = Release;
        +		};
        +		4FADC24708B4156D00ABE55E /* Debug */ = {
        +			isa = XCBuildConfiguration;
        +			baseConfigurationReference = 40D4CDF10E30E07400294801 /* DebugProject.xcconfig */;
        +			buildSettings = {
        +			};
        +			name = Debug;
        +		};
        +		4FADC24808B4156D00ABE55E /* Release */ = {
        +			isa = XCBuildConfiguration;
        +			baseConfigurationReference = 40D4CDF40E30E07400294801 /* ReleaseProject.xcconfig */;
        +			buildSettings = {
        +			};
        +			name = Release;
        +		};
        +/* End XCBuildConfiguration section */
        +
        +/* Begin XCConfigurationList section */
        +		3B238FA30E828BB600846E11 /* Build configuration list for PBXAggregateTarget "Check" */ = {
        +			isa = XCConfigurationList;
        +			buildConfigurations = (
        +				3B238F600E828B5400846E11 /* Debug */,
        +				3B238F610E828B5400846E11 /* Release */,
        +			);
        +			defaultConfigurationIsVisible = 0;
        +			defaultConfigurationName = Release;
        +		};
        +		40899F4A0FFA71BC000B29AE /* Build configuration list for PBXNativeTarget "gtest_unittest-framework" */ = {
        +			isa = XCConfigurationList;
        +			buildConfigurations = (
        +				40899F450FFA7185000B29AE /* Debug */,
        +				40899F460FFA7185000B29AE /* Release */,
        +			);
        +			defaultConfigurationIsVisible = 0;
        +			defaultConfigurationName = Release;
        +		};
        +		4089A0240FFACF01000B29AE /* Build configuration list for PBXNativeTarget "sample1_unittest-framework" */ = {
        +			isa = XCConfigurationList;
        +			buildConfigurations = (
        +				4089A0150FFACEFD000B29AE /* Debug */,
        +				4089A0160FFACEFD000B29AE /* Release */,
        +			);
        +			defaultConfigurationIsVisible = 0;
        +			defaultConfigurationName = Release;
        +		};
        +		40C44AE40E379905008FCC51 /* Build configuration list for PBXAggregateTarget "Version Info" */ = {
        +			isa = XCConfigurationList;
        +			buildConfigurations = (
        +				40C44ADF0E3798F4008FCC51 /* Debug */,
        +				40C44AE00E3798F4008FCC51 /* Release */,
        +			);
        +			defaultConfigurationIsVisible = 0;
        +			defaultConfigurationName = Release;
        +		};
        +		40C84902101A212E0083642A /* Build configuration list for PBXNativeTarget "gtest-static" */ = {
        +			isa = XCConfigurationList;
        +			buildConfigurations = (
        +				40C848FB101A209D0083642A /* Debug */,
        +				40C848FC101A209D0083642A /* Release */,
        +			);
        +			defaultConfigurationIsVisible = 0;
        +			defaultConfigurationName = Release;
        +		};
        +		40C84912101A21D20083642A /* Build configuration list for PBXNativeTarget "gtest_main-static" */ = {
        +			isa = XCConfigurationList;
        +			buildConfigurations = (
        +				40C8490E101A217F0083642A /* Debug */,
        +				40C8490F101A217F0083642A /* Release */,
        +			);
        +			defaultConfigurationIsVisible = 0;
        +			defaultConfigurationName = Release;
        +		};
        +		40C84984101A36850083642A /* Build configuration list for PBXNativeTarget "gtest_unittest-static" */ = {
        +			isa = XCConfigurationList;
        +			buildConfigurations = (
        +				40C84985101A36850083642A /* Debug */,
        +				40C84986101A36850083642A /* Release */,
        +			);
        +			defaultConfigurationIsVisible = 0;
        +			defaultConfigurationName = Release;
        +		};
        +		40C84994101A36A60083642A /* Build configuration list for PBXNativeTarget "sample1_unittest-static" */ = {
        +			isa = XCConfigurationList;
        +			buildConfigurations = (
        +				40C84995101A36A60083642A /* Debug */,
        +				40C84996101A36A60083642A /* Release */,
        +			);
        +			defaultConfigurationIsVisible = 0;
        +			defaultConfigurationName = Release;
        +		};
        +		4FADC24208B4156D00ABE55E /* Build configuration list for PBXNativeTarget "gtest-framework" */ = {
        +			isa = XCConfigurationList;
        +			buildConfigurations = (
        +				4FADC24308B4156D00ABE55E /* Debug */,
        +				4FADC24408B4156D00ABE55E /* Release */,
        +			);
        +			defaultConfigurationIsVisible = 0;
        +			defaultConfigurationName = Release;
        +		};
        +		4FADC24608B4156D00ABE55E /* Build configuration list for PBXProject "gtest" */ = {
        +			isa = XCConfigurationList;
        +			buildConfigurations = (
        +				4FADC24708B4156D00ABE55E /* Debug */,
        +				4FADC24808B4156D00ABE55E /* Release */,
        +			);
        +			defaultConfigurationIsVisible = 0;
        +			defaultConfigurationName = Release;
        +		};
        +/* End XCConfigurationList section */
        +	};
        +	rootObject = 0867D690FE84028FC02AAC07 /* Project object */;
        +}
        diff --git a/lib/ann/fann/src/CMakeLists.txt b/lib/ann/fann/src/CMakeLists.txt
        new file mode 100644
        index 0000000..a590583
        --- /dev/null
        +++ b/lib/ann/fann/src/CMakeLists.txt
        @@ -0,0 +1,99 @@
        +FIND_PACKAGE(OpenMP)
        +IF(OPENMP_FOUND)
        +  OPTION(DISABLE_PARALLEL_FANN "Disable parallel fann functions" OFF)
        +ENDIF(OPENMP_FOUND)
        +
        +IF(NOT OPENMP_FOUND OR DISABLE_PARALLEL_FANN)
        +  ADD_DEFINITIONS(-DDISABLE_PARALLEL_FANN)
        +ELSE()
        +  SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
        +  SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
        +ENDIF(NOT OPENMP_FOUND OR DISABLE_PARALLEL_FANN)
        +
        +ADD_SUBDIRECTORY( include )
        +
        +INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src/include)
        +ADD_DEFINITIONS(-D_REENTRANT)
        +if (WIN32)
        +  ADD_DEFINITIONS(-DFANN_DLL_EXPORTS)
        +endif (WIN32)
        +########### next target ###############
        +
        +SET(floatfann_LIB_SRCS
        +        floatfann.c
        +        )
        +
        +ADD_LIBRARY(floatfann SHARED ${floatfann_LIB_SRCS})
        +ADD_LIBRARY(floatfann_static STATIC ${floatfann_LIB_SRCS})
        +
        +SET_TARGET_PROPERTIES(floatfann PROPERTIES VERSION ${FANN_VERSION_STRING} SOVERSION ${FANN_VERSION_MAJOR})
        +SET_TARGET_PROPERTIES(floatfann_static PROPERTIES VERSION ${FANN_VERSION_STRING} SOVERSION ${FANN_VERSION_MAJOR})
        +if (UNIX)
        +  SET_TARGET_PROPERTIES(floatfann_static PROPERTIES OUTPUT_NAME floatfann)
        +endif(UNIX)
        +INSTALL(TARGETS floatfann floatfann_static LIBRARY DESTINATION ${LIB_INSTALL_DIR}
        +        ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
        +        RUNTIME DESTINATION ${BIN_INSTALL_DIR} )
        +
        +
        +########### next target ###############
        +
        +SET(doublefann_LIB_SRCS
        +        doublefann.c
        +        )
        +
        +ADD_LIBRARY(doublefann SHARED ${doublefann_LIB_SRCS})
        +ADD_LIBRARY(doublefann_static STATIC ${doublefann_LIB_SRCS})
        +
        +SET_TARGET_PROPERTIES(doublefann PROPERTIES VERSION ${FANN_VERSION_STRING} SOVERSION ${FANN_VERSION_MAJOR})
        +SET_TARGET_PROPERTIES(doublefann_static PROPERTIES VERSION ${FANN_VERSION_STRING} SOVERSION ${FANN_VERSION_MAJOR})
        +if (UNIX)
        +  SET_TARGET_PROPERTIES(doublefann_static PROPERTIES OUTPUT_NAME doublefann)
        +endif(UNIX)
        +INSTALL(TARGETS doublefann doublefann_static LIBRARY DESTINATION ${LIB_INSTALL_DIR}
        +        ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
        +        RUNTIME DESTINATION ${BIN_INSTALL_DIR} )
        +
        +
        +########### next target ###############
        +
        +SET(fixedfann_LIB_SRCS
        +        fixedfann.c
        +        )
        +
        +ADD_LIBRARY(fixedfann SHARED ${fixedfann_LIB_SRCS})
        +ADD_LIBRARY(fixedfann_static STATIC ${fixedfann_LIB_SRCS})
        +
        +TARGET_LINK_LIBRARIES(fixedfann m)
        +TARGET_LINK_LIBRARIES(fixedfann_static m)
        +
        +SET_TARGET_PROPERTIES(fixedfann PROPERTIES VERSION ${FANN_VERSION_STRING} SOVERSION ${FANN_VERSION_MAJOR})
        +SET_TARGET_PROPERTIES(fixedfann_static PROPERTIES VERSION ${FANN_VERSION_STRING} SOVERSION ${FANN_VERSION_MAJOR})
        +if (UNIX)
        +  SET_TARGET_PROPERTIES(fixedfann_static PROPERTIES OUTPUT_NAME fixedfann)
        +endif(UNIX)
        +INSTALL(TARGETS fixedfann fixedfann_static LIBRARY DESTINATION ${LIB_INSTALL_DIR}
        +        ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
        +        RUNTIME DESTINATION ${BIN_INSTALL_DIR} )
        +
        +
        +########### next target ###############
        +
        +SET(fann_LIB_SRCS
        +        floatfann.c
        +        )
        +
        +ADD_LIBRARY(fann SHARED ${fann_LIB_SRCS})
        +ADD_LIBRARY(fann_static STATIC ${fann_LIB_SRCS})
        +
        +TARGET_LINK_LIBRARIES(fann m)
        +TARGET_LINK_LIBRARIES(fann_static m)
        +
        +SET_TARGET_PROPERTIES(fann PROPERTIES VERSION ${FANN_VERSION_STRING} SOVERSION ${FANN_VERSION_MAJOR})
        +SET_TARGET_PROPERTIES(fann_static PROPERTIES VERSION ${FANN_VERSION_STRING} SOVERSION ${FANN_VERSION_MAJOR})
        +if (UNIX)
        +  SET_TARGET_PROPERTIES(fann_static PROPERTIES OUTPUT_NAME fann)
        +endif(UNIX)
        +INSTALL(TARGETS fann fann_static LIBRARY DESTINATION ${LIB_INSTALL_DIR}
        +        ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
        +        RUNTIME DESTINATION ${BIN_INSTALL_DIR} )
        \ No newline at end of file
        diff --git a/lib/ann/fann/src/doublefann.c b/lib/ann/fann/src/doublefann.c
        new file mode 100644
        index 0000000..40f2238
        --- /dev/null
        +++ b/lib/ann/fann/src/doublefann.c
        @@ -0,0 +1,31 @@
        +/*
        +Fast Artificial Neural Network Library (fann)
        +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com)
        +
        +This library is free software; you can redistribute it and/or
        +modify it under the terms of the GNU Lesser General Public
        +License as published by the Free Software Foundation; either
        +version 2.1 of the License, or (at your option) any later version.
        +
        +This library is distributed in the hope that it will be useful,
        +but WITHOUT ANY WARRANTY; without even the implied warranty of
        +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
        +Lesser General Public License for more details.
        +
        +You should have received a copy of the GNU Lesser General Public
        +License along with this library; if not, write to the Free Software
        +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        +*/
        +
        +/* Easy way to allow for build of multiple binaries */
        +
        +#include "config.h"
        +#include "doublefann.h"
        +
        +#include "fann.c"
        +#include "fann_io.c"
        +#include "fann_train.c"
        +#include "fann_train_data.c"
        +#include "fann_error.c"
        +#include "fann_cascade.c"
        +#include "parallel_fann.c"
        diff --git a/lib/ann/fann/src/fann.c b/lib/ann/fann/src/fann.c
        new file mode 100644
        index 0000000..9af7e38
        --- /dev/null
        +++ b/lib/ann/fann/src/fann.c
        @@ -0,0 +1,1868 @@
        +/*
        +  Fast Artificial Neural Network Library (fann)
        +  Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com)
        +
        +  This library is free software; you can redistribute it and/or
        +  modify it under the terms of the GNU Lesser General Public
        +  License as published by the Free Software Foundation; either
        +  version 2.1 of the License, or (at your option) any later version.
        +
        +  This library is distributed in the hope that it will be useful,
        +  but WITHOUT ANY WARRANTY; without even the implied warranty of
        +  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
        +  Lesser General Public License for more details.
        +
        +  You should have received a copy of the GNU Lesser General Public
        +  License along with this library; if not, write to the Free Software
        +  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        +*/
        +
        +#include <stdio.h>
        +#include <stdlib.h>
        +#include <stdarg.h>
        +#include <string.h>
        +#include <time.h>
        +#include <math.h>
        +
        +#include "config.h"
        +#include "fann.h"
        +
        +/* #define FANN_NO_SEED */
        +
        +FANN_EXTERNAL struct fann *FANN_API fann_create_standard(unsigned int num_layers, ...)
        +{
        +	struct fann *ann;
        +	va_list layer_sizes;
        +	int i;
        +	int status;
        +	int arg;
        +	unsigned int *layers = (unsigned int *) calloc(num_layers, sizeof(unsigned int));
        +
        +	if(layers == NULL)
        +	{
        +		fann_error(NULL, FANN_E_CANT_ALLOCATE_MEM);
        +		return NULL;
        +	}
        +
        +	va_start(layer_sizes, num_layers);
        +	
        +	status = 1;
        +	for(i = 0; i < (int) num_layers; i++)
        +	{
        +		arg = va_arg(layer_sizes, unsigned int);
        +		if(arg < 0 || arg > 1000000)
        +			status = 0;
        +		layers[i] = arg;
        +	}
        +	va_end(layer_sizes);
        +
        +	if(!status)
        +	{
        +		fann_error(NULL, FANN_E_CANT_ALLOCATE_MEM);
        +		free(layers);
        +		return NULL;
        +	}
        +
        +	ann = fann_create_standard_array(num_layers, layers);
        +
        +	free(layers);
        +
        +	return ann;
        +}
        +
        +FANN_EXTERNAL struct fann *FANN_API fann_create_standard_array(unsigned int num_layers, 
        +															   const unsigned int *layers)
        +{
        +	return fann_create_sparse_array(1, num_layers, layers);	
        +}
        +
        +FANN_EXTERNAL struct fann *FANN_API fann_create_sparse(float connection_rate, 
        +													   unsigned int num_layers, ...)
        +{
        +	struct fann *ann;
        +	va_list layer_sizes;
        +	int i;
        +	int status;
        +	int arg;
        +	unsigned int *layers = (unsigned int *) calloc(num_layers, sizeof(unsigned int));
        +
        +	if(layers == NULL)
        +	{
        +		fann_error(NULL, FANN_E_CANT_ALLOCATE_MEM);
        +		return NULL;
        +	}
        +
        +	va_start(layer_sizes, num_layers);
        +	status = 1;
        +	for(i = 0; i < (int) num_layers; i++)
        +	{
        +		arg = va_arg(layer_sizes, unsigned int);
        +		if(arg < 0 || arg > 1000000)
        +			status = 0;
        +		layers[i] = arg;
        +	}
        +	va_end(layer_sizes);
        +
        +	if(!status)
        +	{
        +		fann_error(NULL, FANN_E_CANT_ALLOCATE_MEM);
        +		free(layers);
        +		return NULL;
        +	}
        +
        +	ann = fann_create_sparse_array(connection_rate, num_layers, layers);
        +	free(layers);
        +
        +	return ann;
        +}
        +
        +FANN_EXTERNAL struct fann *FANN_API fann_create_sparse_array(float connection_rate,
        +															 unsigned int num_layers,
        +															 const unsigned int *layers)
        +{
        +	struct fann_layer *layer_it, *last_layer, *prev_layer;
        +	struct fann *ann;
        +	struct fann_neuron *neuron_it, *last_neuron, *random_neuron, *bias_neuron;
        +#ifdef DEBUG
        +	unsigned int prev_layer_size;
        +#endif
        +	unsigned int num_neurons_in, num_neurons_out, i, j;
        +	unsigned int min_connections, max_connections, num_connections;
        +	unsigned int connections_per_neuron, allocated_connections;
        +	unsigned int random_number, found_connection, tmp_con;
        +
        +#ifdef FIXEDFANN
        +	unsigned int multiplier;
        +#endif
        +	if(connection_rate > 1)
        +	{
        +		connection_rate = 1;
        +	}
        +
        +	fann_seed_rand();
        +
        +	/* allocate the general structure */
        +	ann = fann_allocate_structure(num_layers);
        +	if(ann == NULL)
        +	{
        +		fann_error(NULL, FANN_E_CANT_ALLOCATE_MEM);
        +		return NULL;
        +	}
        +
        +	ann->connection_rate = connection_rate;
        +#ifdef FIXEDFANN
        +	multiplier = ann->multiplier;
        +	fann_update_stepwise(ann);
        +#endif
        +
        +	/* determine how many neurons there should be in each layer */
        +	i = 0;
        +	for(layer_it = ann->first_layer; layer_it != ann->last_layer; layer_it++)
        +	{
        +		/* we do not allocate room here, but we make sure that
        +		 * last_neuron - first_neuron is the number of neurons */
        +		layer_it->first_neuron = NULL;
        +		layer_it->last_neuron = layer_it->first_neuron + layers[i++] + 1;	/* +1 for bias */
        +		ann->total_neurons += (unsigned int)(layer_it->last_neuron - layer_it->first_neuron);
        +	}
        +
        +	ann->num_output = (unsigned int)((ann->last_layer - 1)->last_neuron - (ann->last_layer - 1)->first_neuron - 1);
        +	ann->num_input = (unsigned int)(ann->first_layer->last_neuron - ann->first_layer->first_neuron - 1);
        +
        +	/* allocate room for the actual neurons */
        +	fann_allocate_neurons(ann);
        +	if(ann->errno_f == FANN_E_CANT_ALLOCATE_MEM)
        +	{
        +		fann_destroy(ann);
        +		return NULL;
        +	}
        +
        +#ifdef DEBUG
        +	printf("creating network with connection rate %f\n", connection_rate);
        +	printf("input\n");
        +	printf("  layer       : %d neurons, 1 bias\n",
        +		   (int)(ann->first_layer->last_neuron - ann->first_layer->first_neuron - 1));
        +#endif
        +
        +	num_neurons_in = ann->num_input;
        +	for(layer_it = ann->first_layer + 1; layer_it != ann->last_layer; layer_it++)
        +	{
        +		num_neurons_out = (unsigned int)(layer_it->last_neuron - layer_it->first_neuron - 1);
        +		/*�if all neurons in each layer should be connected to at least one neuron
        +		 * in the previous layer, and one neuron in the next layer.
        +		 * and the bias node should be connected to the all neurons in the next layer.
        +		 * Then this is the minimum amount of neurons */
        +		min_connections = fann_max(num_neurons_in, num_neurons_out); /* not calculating bias */
        +		max_connections = num_neurons_in * num_neurons_out;	     /* not calculating bias */
        +		num_connections = fann_max(min_connections,
        +								   (unsigned int) (0.5 + (connection_rate * max_connections))) +
        +								   num_neurons_out;
        +
        +		connections_per_neuron = num_connections / num_neurons_out;
        +		allocated_connections = 0;
        +		/* Now split out the connections on the different neurons */
        +		for(i = 0; i != num_neurons_out; i++)
        +		{
        +			layer_it->first_neuron[i].first_con = ann->total_connections + allocated_connections;
        +			allocated_connections += connections_per_neuron;
        +			layer_it->first_neuron[i].last_con = ann->total_connections + allocated_connections;
        +
        +			layer_it->first_neuron[i].activation_function = FANN_SIGMOID_STEPWISE;
        +#ifdef FIXEDFANN
        +			layer_it->first_neuron[i].activation_steepness = ann->multiplier / 2;
        +#else
        +			layer_it->first_neuron[i].activation_steepness = 0.5;
        +#endif
        +
        +			if(allocated_connections < (num_connections * (i + 1)) / num_neurons_out)
        +			{
        +				layer_it->first_neuron[i].last_con++;
        +				allocated_connections++;
        +			}
        +		}
        +
        +		/* bias neuron also gets stuff */
        +		layer_it->first_neuron[i].first_con = ann->total_connections + allocated_connections;
        +		layer_it->first_neuron[i].last_con = ann->total_connections + allocated_connections;
        +
        +		ann->total_connections += num_connections;
        +
        +		/* used in the next run of the loop */
        +		num_neurons_in = num_neurons_out;
        +	}
        +
        +	fann_allocate_connections(ann);
        +	if(ann->errno_f == FANN_E_CANT_ALLOCATE_MEM)
        +	{
        +		fann_destroy(ann);
        +		return NULL;
        +	}
        +
        +	if(connection_rate >= 1)
        +	{
        +#ifdef DEBUG
        +		prev_layer_size = ann->num_input + 1;
        +#endif
        +		prev_layer = ann->first_layer;
        +		last_layer = ann->last_layer;
        +		for(layer_it = ann->first_layer + 1; layer_it != last_layer; layer_it++)
        +		{
        +			last_neuron = layer_it->last_neuron - 1;
        +			for(neuron_it = layer_it->first_neuron; neuron_it != last_neuron; neuron_it++)
        +			{
        +				tmp_con = neuron_it->last_con - 1;
        +				for(i = neuron_it->first_con; i != tmp_con; i++)
        +				{
        +					ann->weights[i] = (fann_type) fann_random_weight();
        +					/* these connections are still initialized for fully connected networks, to allow
        +					 * operations to work, that are not optimized for fully connected networks.
        +					 */
        +					ann->connections[i] = prev_layer->first_neuron + (i - neuron_it->first_con);
        +				}
        +
        +				/* bias weight */
        +				ann->weights[tmp_con] = (fann_type) fann_random_bias_weight();
        +				ann->connections[tmp_con] = prev_layer->first_neuron + (tmp_con - neuron_it->first_con);
        +			}
        +#ifdef DEBUG
        +			prev_layer_size = layer_it->last_neuron - layer_it->first_neuron;
        +#endif
        +			prev_layer = layer_it;
        +#ifdef DEBUG
        +			printf("  layer       : %d neurons, 1 bias\n", prev_layer_size - 1);
        +#endif
        +		}
        +	}
        +	else
        +	{
        +		/* make connections for a network, that are not fully connected */
        +
        +		/* generally, what we do is first to connect all the input
        +		 * neurons to a output neuron, respecting the number of
        +		 * available input neurons for each output neuron. Then
        +		 * we go through all the output neurons, and connect the
        +		 * rest of the connections to input neurons, that they are
        +		 * not allready connected to.
        +		 */
        +
        +		/* All the connections are cleared by calloc, because we want to
        +		 * be able to see which connections are allready connected */
        +
        +		for(layer_it = ann->first_layer + 1; layer_it != ann->last_layer; layer_it++)
        +		{
        +
        +			num_neurons_out = (unsigned int)(layer_it->last_neuron - layer_it->first_neuron - 1);
        +			num_neurons_in = (unsigned int)((layer_it - 1)->last_neuron - (layer_it - 1)->first_neuron - 1);
        +
        +			/* first connect the bias neuron */
        +			bias_neuron = (layer_it - 1)->last_neuron - 1;
        +			last_neuron = layer_it->last_neuron - 1;
        +			for(neuron_it = layer_it->first_neuron; neuron_it != last_neuron; neuron_it++)
        +			{
        +
        +				ann->connections[neuron_it->first_con] = bias_neuron;
        +				ann->weights[neuron_it->first_con] = (fann_type) fann_random_bias_weight();
        +			}
        +
        +			/* then connect all neurons in the input layer */
        +			last_neuron = (layer_it - 1)->last_neuron - 1;
        +			for(neuron_it = (layer_it - 1)->first_neuron; neuron_it != last_neuron; neuron_it++)
        +			{
        +
        +				/* random neuron in the output layer that has space
        +				 * for more connections */
        +				do
        +				{
        +					random_number = (int) (0.5 + fann_rand(0, num_neurons_out - 1));
        +					random_neuron = layer_it->first_neuron + random_number;
        +					/* checks the last space in the connections array for room */
        +				}
        +				while(ann->connections[random_neuron->last_con - 1]);
        +
        +				/* find an empty space in the connection array and connect */
        +				for(i = random_neuron->first_con; i < random_neuron->last_con; i++)
        +				{
        +					if(ann->connections[i] == NULL)
        +					{
        +						ann->connections[i] = neuron_it;
        +						ann->weights[i] = (fann_type) fann_random_weight();
        +						break;
        +					}
        +				}
        +			}
        +
        +			/* then connect the rest of the unconnected neurons */
        +			last_neuron = layer_it->last_neuron - 1;
        +			for(neuron_it = layer_it->first_neuron; neuron_it != last_neuron; neuron_it++)
        +			{
        +				/* find empty space in the connection array and connect */
        +				for(i = neuron_it->first_con; i < neuron_it->last_con; i++)
        +				{
        +					/* continue if allready connected */
        +					if(ann->connections[i] != NULL)
        +						continue;
        +
        +					do
        +					{
        +						found_connection = 0;
        +						random_number = (int) (0.5 + fann_rand(0, num_neurons_in - 1));
        +						random_neuron = (layer_it - 1)->first_neuron + random_number;
        +
        +						/* check to see if this connection is allready there */
        +						for(j = neuron_it->first_con; j < i; j++)
        +						{
        +							if(random_neuron == ann->connections[j])
        +							{
        +								found_connection = 1;
        +								break;
        +							}
        +						}
        +
        +					}
        +					while(found_connection);
        +
        +					/* we have found a neuron that is not allready
        +					 * connected to us, connect it */
        +					ann->connections[i] = random_neuron;
        +					ann->weights[i] = (fann_type) fann_random_weight();
        +				}
        +			}
        +
        +#ifdef DEBUG
        +			printf("  layer       : %d neurons, 1 bias\n", num_neurons_out);
        +#endif
        +		}
        +
        +		/* TODO it would be nice to have the randomly created
        +		 * connections sorted for smoother memory access.
        +		 */
        +	}
        +
        +#ifdef DEBUG
        +	printf("output\n");
        +#endif
        +
        +	return ann;
        +}
        +
        +
        +FANN_EXTERNAL struct fann *FANN_API fann_create_shortcut(unsigned int num_layers, ...)
        +{
        +	struct fann *ann;
        +	int i;
        +	int status;
        +	int arg;
        +	va_list layer_sizes;
        +	unsigned int *layers = (unsigned int *) calloc(num_layers, sizeof(unsigned int));
        +
        +	if(layers == NULL)
        +	{
        +		fann_error(NULL, FANN_E_CANT_ALLOCATE_MEM);
        +		return NULL;
        +	}
        +
        +	va_start(layer_sizes, num_layers);
        +	status = 1;
        +	for(i = 0; i < (int) num_layers; i++)
        +	{
        +		arg = va_arg(layer_sizes, unsigned int);
        +		if(arg < 0 || arg > 1000000)
        +			status = 0;
        +		layers[i] = arg;
        +	}
        +	va_end(layer_sizes);
        +
        +	if(!status)
        +	{
        +		fann_error(NULL, FANN_E_CANT_ALLOCATE_MEM);
        +		free(layers);
        +		return NULL;
        +	}
        +
        +	ann = fann_create_shortcut_array(num_layers, layers);
        +
        +	free(layers);
        +
        +	return ann;
        +}
        +
        +FANN_EXTERNAL struct fann *FANN_API fann_create_shortcut_array(unsigned int num_layers,
        +															   const unsigned int *layers)
        +{
        +	struct fann_layer *layer_it, *layer_it2, *last_layer;
        +	struct fann *ann;
        +	struct fann_neuron *neuron_it, *neuron_it2 = 0;
        +	unsigned int i;
        +	unsigned int num_neurons_in, num_neurons_out;
        +
        +#ifdef FIXEDFANN
        +	unsigned int multiplier;
        +#endif
        +	fann_seed_rand();
        +
        +	/* allocate the general structure */
        +	ann = fann_allocate_structure(num_layers);
        +	if(ann == NULL)
        +	{
        +		fann_error(NULL, FANN_E_CANT_ALLOCATE_MEM);
        +		return NULL;
        +	}
        +
        +	ann->connection_rate = 1;
        +	ann->network_type = FANN_NETTYPE_SHORTCUT;
        +#ifdef FIXEDFANN
        +	multiplier = ann->multiplier;
        +	fann_update_stepwise(ann);
        +#endif
        +
        +	/* determine how many neurons there should be in each layer */
        +	i = 0;
        +	for(layer_it = ann->first_layer; layer_it != ann->last_layer; layer_it++)
        +	{
        +		/* we do not allocate room here, but we make sure that
        +		 * last_neuron - first_neuron is the number of neurons */
        +		layer_it->first_neuron = NULL;
        +		layer_it->last_neuron = layer_it->first_neuron + layers[i++];
        +		if(layer_it == ann->first_layer)
        +		{
        +			/* there is a bias neuron in the first layer */
        +			layer_it->last_neuron++;
        +		}
        +
        +		ann->total_neurons += (unsigned int)(layer_it->last_neuron - layer_it->first_neuron);
        +	}
        +
        +	ann->num_output = (unsigned int)((ann->last_layer - 1)->last_neuron - (ann->last_layer - 1)->first_neuron);
        +	ann->num_input = (unsigned int)(ann->first_layer->last_neuron - ann->first_layer->first_neuron - 1);
        +
        +	/* allocate room for the actual neurons */
        +	fann_allocate_neurons(ann);
        +	if(ann->errno_f == FANN_E_CANT_ALLOCATE_MEM)
        +	{
        +		fann_destroy(ann);
        +		return NULL;
        +	}
        +
        +#ifdef DEBUG
        +	printf("creating fully shortcut connected network.\n");
        +	printf("input\n");
        +	printf("  layer       : %d neurons, 1 bias\n",
        +		   (int)(ann->first_layer->last_neuron - ann->first_layer->first_neuron - 1));
        +#endif
        +
        +	num_neurons_in = ann->num_input;
        +	last_layer = ann->last_layer;
        +	for(layer_it = ann->first_layer + 1; layer_it != last_layer; layer_it++)
        +	{
        +		num_neurons_out = (unsigned int)(layer_it->last_neuron - layer_it->first_neuron);
        +
        +		/* Now split out the connections on the different neurons */
        +		for(i = 0; i != num_neurons_out; i++)
        +		{
        +			layer_it->first_neuron[i].first_con = ann->total_connections;
        +			ann->total_connections += num_neurons_in + 1;
        +			layer_it->first_neuron[i].last_con = ann->total_connections;
        +
        +			layer_it->first_neuron[i].activation_function = FANN_SIGMOID_STEPWISE;
        +#ifdef FIXEDFANN
        +			layer_it->first_neuron[i].activation_steepness = ann->multiplier / 2;
        +#else
        +			layer_it->first_neuron[i].activation_steepness = 0.5;
        +#endif
        +		}
        +
        +#ifdef DEBUG
        +		printf("  layer       : %d neurons, 0 bias\n", num_neurons_out);
        +#endif
        +		/* used in the next run of the loop */
        +		num_neurons_in += num_neurons_out;
        +	}
        +
        +	fann_allocate_connections(ann);
        +	if(ann->errno_f == FANN_E_CANT_ALLOCATE_MEM)
        +	{
        +		fann_destroy(ann);
        +		return NULL;
        +	}
        +
        +	/* Connections are created from all neurons to all neurons in later layers
        +	 */
        +	num_neurons_in = ann->num_input + 1;
        +	for(layer_it = ann->first_layer + 1; layer_it != last_layer; layer_it++)
        +	{
        +		for(neuron_it = layer_it->first_neuron; neuron_it != layer_it->last_neuron; neuron_it++)
        +		{
        +
        +			i = neuron_it->first_con;
        +			for(layer_it2 = ann->first_layer; layer_it2 != layer_it; layer_it2++)
        +			{
        +				for(neuron_it2 = layer_it2->first_neuron; neuron_it2 != layer_it2->last_neuron;
        +					neuron_it2++)
        +				{
        +
        +					ann->weights[i] = (fann_type) fann_random_weight();
        +					ann->connections[i] = neuron_it2;
        +					i++;
        +				}
        +			}
        +		}
        +		num_neurons_in += (unsigned int)(layer_it->last_neuron - layer_it->first_neuron);
        +	}
        +
        +#ifdef DEBUG
        +	printf("output\n");
        +#endif
        +
        +	return ann;
        +}
        +
        +FANN_EXTERNAL fann_type *FANN_API fann_run(struct fann * ann, fann_type * input)
        +{
        +	struct fann_neuron *neuron_it, *last_neuron, *neurons, **neuron_pointers;
        +	unsigned int i, num_connections, num_input, num_output;
        +	fann_type neuron_sum, *output;
        +	fann_type *weights;
        +	struct fann_layer *layer_it, *last_layer;
        +	unsigned int activation_function;
        +	fann_type steepness;
        +
        +	/* store some variabels local for fast access */
        +	struct fann_neuron *first_neuron = ann->first_layer->first_neuron;
        +
        +#ifdef FIXEDFANN
        +	int multiplier = ann->multiplier;
        +	unsigned int decimal_point = ann->decimal_point;
        +
        +	/* values used for the stepwise linear sigmoid function */
        +	fann_type r1 = 0, r2 = 0, r3 = 0, r4 = 0, r5 = 0, r6 = 0;
        +	fann_type v1 = 0, v2 = 0, v3 = 0, v4 = 0, v5 = 0, v6 = 0;
        +
        +	fann_type last_steepness = 0;
        +	unsigned int last_activation_function = 0;
        +#else
        +	fann_type max_sum = 0;	
        +#endif
        +
        +	/* first set the input */
        +	num_input = ann->num_input;
        +	for(i = 0; i != num_input; i++)
        +	{
        +#ifdef FIXEDFANN
        +		if(fann_abs(input[i]) > multiplier)
        +		{
        +			printf
        +				("Warning input number %d is out of range -%d - %d with value %d, integer overflow may occur.\n",
        +				 i, multiplier, multiplier, input[i]);
        +		}
        +#endif
        +		first_neuron[i].value = input[i];
        +	}
        +	/* Set the bias neuron in the input layer */
        +#ifdef FIXEDFANN
        +	(ann->first_layer->last_neuron - 1)->value = multiplier;
        +#else
        +	(ann->first_layer->last_neuron - 1)->value = 1;
        +#endif
        +
        +	last_layer = ann->last_layer;
        +	for(layer_it = ann->first_layer + 1; layer_it != last_layer; layer_it++)
        +	{
        +		last_neuron = layer_it->last_neuron;
        +		for(neuron_it = layer_it->first_neuron; neuron_it != last_neuron; neuron_it++)
        +		{
        +			if(neuron_it->first_con == neuron_it->last_con)
        +			{
        +				/* bias neurons */
        +#ifdef FIXEDFANN
        +				neuron_it->value = multiplier;
        +#else
        +				neuron_it->value = 1;
        +#endif
        +				continue;
        +			}
        +
        +			activation_function = neuron_it->activation_function;
        +			steepness = neuron_it->activation_steepness;
        +
        +			neuron_sum = 0;
        +			num_connections = neuron_it->last_con - neuron_it->first_con;
        +			weights = ann->weights + neuron_it->first_con;
        +
        +			if(ann->connection_rate >= 1)
        +			{
        +				if(ann->network_type == FANN_NETTYPE_SHORTCUT)
        +				{
        +					neurons = ann->first_layer->first_neuron;
        +				}
        +				else
        +				{
        +					neurons = (layer_it - 1)->first_neuron;
        +				}
        +
        +
        +				/* unrolled loop start */
        +				i = num_connections & 3;	/* same as modulo 4 */
        +				switch (i)
        +				{
        +					case 3:
        +						neuron_sum += fann_mult(weights[2], neurons[2].value);
        +					case 2:
        +						neuron_sum += fann_mult(weights[1], neurons[1].value);
        +					case 1:
        +						neuron_sum += fann_mult(weights[0], neurons[0].value);
        +					case 0:
        +						break;
        +				}
        +
        +				for(; i != num_connections; i += 4)
        +				{
        +					neuron_sum +=
        +						fann_mult(weights[i], neurons[i].value) +
        +						fann_mult(weights[i + 1], neurons[i + 1].value) +
        +						fann_mult(weights[i + 2], neurons[i + 2].value) +
        +						fann_mult(weights[i + 3], neurons[i + 3].value);
        +				}
        +				/* unrolled loop end */
        +
        +				/*
        +				 * for(i = 0;i != num_connections; i++){
        +				 * printf("%f += %f*%f, ", neuron_sum, weights[i], neurons[i].value);
        +				 * neuron_sum += fann_mult(weights[i], neurons[i].value);
        +				 * }
        +				 */
        +			}
        +			else
        +			{
        +				neuron_pointers = ann->connections + neuron_it->first_con;
        +
        +				i = num_connections & 3;	/* same as modulo 4 */
        +				switch (i)
        +				{
        +					case 3:
        +						neuron_sum += fann_mult(weights[2], neuron_pointers[2]->value);
        +					case 2:
        +						neuron_sum += fann_mult(weights[1], neuron_pointers[1]->value);
        +					case 1:
        +						neuron_sum += fann_mult(weights[0], neuron_pointers[0]->value);
        +					case 0:
        +						break;
        +				}
        +
        +				for(; i != num_connections; i += 4)
        +				{
        +					neuron_sum +=
        +						fann_mult(weights[i], neuron_pointers[i]->value) +
        +						fann_mult(weights[i + 1], neuron_pointers[i + 1]->value) +
        +						fann_mult(weights[i + 2], neuron_pointers[i + 2]->value) +
        +						fann_mult(weights[i + 3], neuron_pointers[i + 3]->value);
        +				}
        +			}
        +
        +#ifdef FIXEDFANN
        +			neuron_it->sum = fann_mult(steepness, neuron_sum);
        +
        +			if(activation_function != last_activation_function || steepness != last_steepness)
        +			{
        +				switch (activation_function)
        +				{
        +					case FANN_SIGMOID:
        +					case FANN_SIGMOID_STEPWISE:
        +						r1 = ann->sigmoid_results[0];
        +						r2 = ann->sigmoid_results[1];
        +						r3 = ann->sigmoid_results[2];
        +						r4 = ann->sigmoid_results[3];
        +						r5 = ann->sigmoid_results[4];
        +						r6 = ann->sigmoid_results[5];
        +						v1 = ann->sigmoid_values[0] / steepness;
        +						v2 = ann->sigmoid_values[1] / steepness;
        +						v3 = ann->sigmoid_values[2] / steepness;
        +						v4 = ann->sigmoid_values[3] / steepness;
        +						v5 = ann->sigmoid_values[4] / steepness;
        +						v6 = ann->sigmoid_values[5] / steepness;
        +						break;
        +					case FANN_SIGMOID_SYMMETRIC:
        +					case FANN_SIGMOID_SYMMETRIC_STEPWISE:
        +						r1 = ann->sigmoid_symmetric_results[0];
        +						r2 = ann->sigmoid_symmetric_results[1];
        +						r3 = ann->sigmoid_symmetric_results[2];
        +						r4 = ann->sigmoid_symmetric_results[3];
        +						r5 = ann->sigmoid_symmetric_results[4];
        +						r6 = ann->sigmoid_symmetric_results[5];
        +						v1 = ann->sigmoid_symmetric_values[0] / steepness;
        +						v2 = ann->sigmoid_symmetric_values[1] / steepness;
        +						v3 = ann->sigmoid_symmetric_values[2] / steepness;
        +						v4 = ann->sigmoid_symmetric_values[3] / steepness;
        +						v5 = ann->sigmoid_symmetric_values[4] / steepness;
        +						v6 = ann->sigmoid_symmetric_values[5] / steepness;
        +						break;
        +					case FANN_THRESHOLD:
        +						break;
        +				}
        +			}
        +
        +			switch (activation_function)
        +			{
        +				case FANN_SIGMOID:
        +				case FANN_SIGMOID_STEPWISE:
        +					neuron_it->value =
        +						(fann_type) fann_stepwise(v1, v2, v3, v4, v5, v6, r1, r2, r3, r4, r5, r6, 0,
        +												  multiplier, neuron_sum);
        +					break;
        +				case FANN_SIGMOID_SYMMETRIC:
        +				case FANN_SIGMOID_SYMMETRIC_STEPWISE:
        +					neuron_it->value =
        +						(fann_type) fann_stepwise(v1, v2, v3, v4, v5, v6, r1, r2, r3, r4, r5, r6,
        +												  -multiplier, multiplier, neuron_sum);
        +					break;
        +				case FANN_THRESHOLD:
        +					neuron_it->value = (fann_type) ((neuron_sum < 0) ? 0 : multiplier);
        +					break;
        +				case FANN_THRESHOLD_SYMMETRIC:
        +					neuron_it->value = (fann_type) ((neuron_sum < 0) ? -multiplier : multiplier);
        +					break;
        +				case FANN_LINEAR:
        +					neuron_it->value = neuron_sum;
        +					break;
        +				case FANN_LINEAR_PIECE:
        +					neuron_it->value = (fann_type)((neuron_sum < 0) ? 0 : (neuron_sum > multiplier) ? multiplier : neuron_sum);
        +					break;
        +				case FANN_LINEAR_PIECE_SYMMETRIC:
        +					neuron_it->value = (fann_type)((neuron_sum < -multiplier) ? -multiplier : (neuron_sum > multiplier) ? multiplier : neuron_sum);
        +					break;
        +				case FANN_ELLIOT:
        +				case FANN_ELLIOT_SYMMETRIC:
        +				case FANN_GAUSSIAN:
        +				case FANN_GAUSSIAN_SYMMETRIC:
        +				case FANN_GAUSSIAN_STEPWISE:
        +				case FANN_SIN_SYMMETRIC:
        +				case FANN_COS_SYMMETRIC:
        +					fann_error((struct fann_error *) ann, FANN_E_CANT_USE_ACTIVATION);
        +					break;
        +			}
        +			last_steepness = steepness;
        +			last_activation_function = activation_function;
        +#else
        +			neuron_sum = fann_mult(steepness, neuron_sum);
        +			
        +			max_sum = 150/steepness;
        +			if(neuron_sum > max_sum)
        +				neuron_sum = max_sum;
        +			else if(neuron_sum < -max_sum)
        +				neuron_sum = -max_sum;
        +			
        +			neuron_it->sum = neuron_sum;
        +
        +			fann_activation_switch(activation_function, neuron_sum, neuron_it->value);
        +#endif
        +		}
        +	}
        +
        +	/* set the output */
        +	output = ann->output;
        +	num_output = ann->num_output;
        +	neurons = (ann->last_layer - 1)->first_neuron;
        +	for(i = 0; i != num_output; i++)
        +	{
        +		output[i] = neurons[i].value;
        +	}
        +	return ann->output;
        +}
        +
        +FANN_EXTERNAL void FANN_API fann_destroy(struct fann *ann)
        +{
        +	if(ann == NULL)
        +		return;
        +	fann_safe_free(ann->weights);
        +	fann_safe_free(ann->connections);
        +	fann_safe_free(ann->first_layer->first_neuron);
        +	fann_safe_free(ann->first_layer);
        +	fann_safe_free(ann->output);
        +	fann_safe_free(ann->train_errors);
        +	fann_safe_free(ann->train_slopes);
        +	fann_safe_free(ann->prev_train_slopes);
        +	fann_safe_free(ann->prev_steps);
        +	fann_safe_free(ann->prev_weights_deltas);
        +	fann_safe_free(ann->errstr);
        +	fann_safe_free(ann->cascade_activation_functions);
        +	fann_safe_free(ann->cascade_activation_steepnesses);
        +	fann_safe_free(ann->cascade_candidate_scores);
        +	
        +#ifndef FIXEDFANN
        +	fann_safe_free( ann->scale_mean_in );
        +	fann_safe_free( ann->scale_deviation_in );
        +	fann_safe_free( ann->scale_new_min_in );
        +	fann_safe_free( ann->scale_factor_in );
        +
        +	fann_safe_free( ann->scale_mean_out );
        +	fann_safe_free( ann->scale_deviation_out );
        +	fann_safe_free( ann->scale_new_min_out );
        +	fann_safe_free( ann->scale_factor_out );
        +#endif
        +	
        +	fann_safe_free(ann);
        +}
        +
        +FANN_EXTERNAL void FANN_API fann_randomize_weights(struct fann *ann, fann_type min_weight,
        +												   fann_type max_weight)
        +{
        +	fann_type *last_weight;
        +	fann_type *weights = ann->weights;
        +
        +	last_weight = weights + ann->total_connections;
        +	for(; weights != last_weight; weights++)
        +	{
        +		*weights = (fann_type) (fann_rand(min_weight, max_weight));
        +	}
        +
        +#ifndef FIXEDFANN
        +	if(ann->prev_train_slopes != NULL)
        +	{
        +		fann_clear_train_arrays(ann);
        +	}
        +#endif
        +}
        +
        +/* deep copy of the fann structure */
        +FANN_EXTERNAL struct fann* FANN_API fann_copy(struct fann* orig)
        +{
        +    struct fann* copy;
        +    unsigned int num_layers = (unsigned int)(orig->last_layer - orig->first_layer);
        +    struct fann_layer *orig_layer_it, *copy_layer_it;
        +    unsigned int layer_size;
        +    struct fann_neuron *last_neuron,*orig_neuron_it,*copy_neuron_it;
        +    unsigned int i;
        +    struct fann_neuron *orig_first_neuron,*copy_first_neuron;
        +    unsigned int input_neuron;
        +
        +    copy = fann_allocate_structure(num_layers);
        +    if (copy==NULL) {
        +        fann_error((struct fann_error*)orig, FANN_E_CANT_ALLOCATE_MEM);
        +        return NULL;
        +    }
        +    copy->errno_f = orig->errno_f;
        +    if (orig->errstr)
        +    {
        +        copy->errstr = (char *) malloc(FANN_ERRSTR_MAX);
        +        if (copy->errstr == NULL)
        +        {
        +            fann_destroy(copy);
        +            return NULL;
        +        }
        +        strcpy(copy->errstr,orig->errstr);
        +    }
        +    copy->error_log = orig->error_log;
        +
        +    copy->learning_rate = orig->learning_rate;
        +    copy->learning_momentum = orig->learning_momentum;
        +    copy->connection_rate = orig->connection_rate;
        +    copy->network_type = orig->network_type;
        +    copy->num_MSE = orig->num_MSE;
        +    copy->MSE_value = orig->MSE_value;
        +    copy->num_bit_fail = orig->num_bit_fail;
        +    copy->bit_fail_limit = orig->bit_fail_limit;
        +    copy->train_error_function = orig->train_error_function;
        +    copy->train_stop_function = orig->train_stop_function;
        +	copy->training_algorithm = orig->training_algorithm;
        +    copy->callback = orig->callback;
        +	copy->user_data = orig->user_data;
        +#ifndef FIXEDFANN
        +    copy->cascade_output_change_fraction = orig->cascade_output_change_fraction;
        +    copy->cascade_output_stagnation_epochs = orig->cascade_output_stagnation_epochs;
        +    copy->cascade_candidate_change_fraction = orig->cascade_candidate_change_fraction;
        +    copy->cascade_candidate_stagnation_epochs = orig->cascade_candidate_stagnation_epochs;
        +    copy->cascade_best_candidate = orig->cascade_best_candidate;
        +    copy->cascade_candidate_limit = orig->cascade_candidate_limit;
        +    copy->cascade_weight_multiplier = orig->cascade_weight_multiplier;
        +    copy->cascade_max_out_epochs = orig->cascade_max_out_epochs;
        +    copy->cascade_max_cand_epochs = orig->cascade_max_cand_epochs;
        +
        +   /* copy cascade activation functions */
        +    copy->cascade_activation_functions_count = orig->cascade_activation_functions_count;
        +    copy->cascade_activation_functions = (enum fann_activationfunc_enum *)realloc(copy->cascade_activation_functions,
        +        copy->cascade_activation_functions_count * sizeof(enum fann_activationfunc_enum));
        +    if(copy->cascade_activation_functions == NULL)
        +    {
        +        fann_error((struct fann_error*)orig, FANN_E_CANT_ALLOCATE_MEM);
        +        fann_destroy(copy);
        +        return NULL;
        +    }
        +    memcpy(copy->cascade_activation_functions,orig->cascade_activation_functions,
        +            copy->cascade_activation_functions_count * sizeof(enum fann_activationfunc_enum));
        +
        +    /* copy cascade activation steepnesses */
        +    copy->cascade_activation_steepnesses_count = orig->cascade_activation_steepnesses_count;
        +    copy->cascade_activation_steepnesses = (fann_type *)realloc(copy->cascade_activation_steepnesses, copy->cascade_activation_steepnesses_count * sizeof(fann_type));
        +    if(copy->cascade_activation_steepnesses == NULL)
        +    {
        +        fann_error((struct fann_error*)orig, FANN_E_CANT_ALLOCATE_MEM);
        +        fann_destroy(copy);
        +        return NULL;
        +    }
        +    memcpy(copy->cascade_activation_steepnesses,orig->cascade_activation_steepnesses,copy->cascade_activation_steepnesses_count * sizeof(fann_type));
        +
        +    copy->cascade_num_candidate_groups = orig->cascade_num_candidate_groups;
        +
        +    /* copy candidate scores, if used */
        +    if (orig->cascade_candidate_scores == NULL)
        +    {
        +        copy->cascade_candidate_scores = NULL;
        +    }
        +    else
        +    {
        +        copy->cascade_candidate_scores =
        +            (fann_type *) malloc(fann_get_cascade_num_candidates(copy) * sizeof(fann_type));
        +        if(copy->cascade_candidate_scores == NULL)
        +        {
        +            fann_error((struct fann_error *) orig, FANN_E_CANT_ALLOCATE_MEM);
        +            fann_destroy(copy);
        +            return NULL;
        +        }
        +        memcpy(copy->cascade_candidate_scores,orig->cascade_candidate_scores,fann_get_cascade_num_candidates(copy) * sizeof(fann_type));
        +    }
        +#endif /* FIXEDFANN */
        +
        +    copy->quickprop_decay = orig->quickprop_decay;
        +    copy->quickprop_mu = orig->quickprop_mu;
        +    copy->rprop_increase_factor = orig->rprop_increase_factor;
        +    copy->rprop_decrease_factor = orig->rprop_decrease_factor;
        +    copy->rprop_delta_min = orig->rprop_delta_min;
        +    copy->rprop_delta_max = orig->rprop_delta_max;
        +    copy->rprop_delta_zero = orig->rprop_delta_zero;
        +
        +    /* user_data is not deep copied.  user should use fann_copy_with_user_data() for that */
        +    copy->user_data = orig->user_data;
        +
        +#ifdef FIXEDFANN
        +    copy->decimal_point = orig->decimal_point;
        +    copy->multiplier = orig->multiplier;
        +    memcpy(copy->sigmoid_results,orig->sigmoid_results,6*sizeof(fann_type));
        +    memcpy(copy->sigmoid_values,orig->sigmoid_values,6*sizeof(fann_type));
        +    memcpy(copy->sigmoid_symmetric_results,orig->sigmoid_symmetric_results,6*sizeof(fann_type));
        +    memcpy(copy->sigmoid_symmetric_values,orig->sigmoid_symmetric_values,6*sizeof(fann_type));
        +#endif
        +
        +
        +    /* copy layer sizes, prepare for fann_allocate_neurons */
        +    for (orig_layer_it = orig->first_layer, copy_layer_it = copy->first_layer;
        +            orig_layer_it != orig->last_layer; orig_layer_it++, copy_layer_it++)
        +    {
        +        layer_size = (unsigned int)(orig_layer_it->last_neuron - orig_layer_it->first_neuron);
        +        copy_layer_it->first_neuron = NULL;
        +        copy_layer_it->last_neuron = copy_layer_it->first_neuron + layer_size;
        +        copy->total_neurons += layer_size;
        +    }
        +    copy->num_input = orig->num_input;
        +    copy->num_output = orig->num_output;
        +
        +
        +    /* copy scale parameters, when used */
        +#ifndef FIXEDFANN
        +    if (orig->scale_mean_in != NULL)
        +    {
        +        fann_allocate_scale(copy);
        +        for (i=0; i < orig->num_input ; i++) {
        +            copy->scale_mean_in[i] = orig->scale_mean_in[i];
        +            copy->scale_deviation_in[i] = orig->scale_deviation_in[i];
        +            copy->scale_new_min_in[i] = orig->scale_new_min_in[i];
        +            copy->scale_factor_in[i] = orig->scale_factor_in[i];
        +        }
        +        for (i=0; i < orig->num_output ; i++) {
        +            copy->scale_mean_out[i] = orig->scale_mean_out[i];
        +            copy->scale_deviation_out[i] = orig->scale_deviation_out[i];
        +            copy->scale_new_min_out[i] = orig->scale_new_min_out[i];
        +            copy->scale_factor_out[i] = orig->scale_factor_out[i];
        +        }
        +    }
        +#endif
        +
        +    /* copy the neurons */
        +    fann_allocate_neurons(copy);
        +    if (copy->errno_f == FANN_E_CANT_ALLOCATE_MEM)
        +    {
        +        fann_destroy(copy);
        +        return NULL;
        +    }
        +    layer_size = (unsigned int)((orig->last_layer-1)->last_neuron - (orig->last_layer-1)->first_neuron);
        +    memcpy(copy->output,orig->output, layer_size * sizeof(fann_type));
        +
        +    last_neuron = (orig->last_layer - 1)->last_neuron;
        +    for (orig_neuron_it = orig->first_layer->first_neuron, copy_neuron_it = copy->first_layer->first_neuron;
        +            orig_neuron_it != last_neuron; orig_neuron_it++, copy_neuron_it++)
        +    {
        +        memcpy(copy_neuron_it,orig_neuron_it,sizeof(struct fann_neuron));
        +    }
        + /* copy the connections */
        +    copy->total_connections = orig->total_connections;
        +    fann_allocate_connections(copy);
        +    if (copy->errno_f == FANN_E_CANT_ALLOCATE_MEM)
        +    {
        +        fann_destroy(copy);
        +        return NULL;
        +    }
        +
        +    orig_first_neuron = orig->first_layer->first_neuron;
        +    copy_first_neuron = copy->first_layer->first_neuron;
        +    for (i=0; i < orig->total_connections; i++)
        +    {
        +        copy->weights[i] = orig->weights[i];
        +        input_neuron = (unsigned int)(orig->connections[i] - orig_first_neuron);
        +        copy->connections[i] = copy_first_neuron + input_neuron;
        +    }
        +
        +    if (orig->train_slopes)
        +    {
        +        copy->train_slopes = (fann_type *) malloc(copy->total_connections_allocated * sizeof(fann_type));
        +        if (copy->train_slopes == NULL)
        +        {
        +            fann_error((struct fann_error *) orig, FANN_E_CANT_ALLOCATE_MEM);
        +            fann_destroy(copy);
        +            return NULL;
        +        }
        +        memcpy(copy->train_slopes,orig->train_slopes,copy->total_connections_allocated * sizeof(fann_type));
        +    }
        +
        +    if (orig->prev_steps)
        +    {
        +        copy->prev_steps = (fann_type *) malloc(copy->total_connections_allocated * sizeof(fann_type));
        +        if (copy->prev_steps == NULL)
        +        {
        +            fann_error((struct fann_error *) orig, FANN_E_CANT_ALLOCATE_MEM);
        +            fann_destroy(copy);
        +            return NULL;
        +        }
        +        memcpy(copy->prev_steps, orig->prev_steps, copy->total_connections_allocated * sizeof(fann_type));
        +    }
        +
        +    if (orig->prev_train_slopes)
        +    {
        +        copy->prev_train_slopes = (fann_type *) malloc(copy->total_connections_allocated * sizeof(fann_type));
        +        if (copy->prev_train_slopes == NULL)
        +        {
        +            fann_error((struct fann_error *) orig, FANN_E_CANT_ALLOCATE_MEM);
        +            fann_destroy(copy);
        +            return NULL;
        +        }
        +        memcpy(copy->prev_train_slopes,orig->prev_train_slopes, copy->total_connections_allocated * sizeof(fann_type));
        +    }
        +
        +    if (orig->prev_weights_deltas)
        +    {
        +        copy->prev_weights_deltas = (fann_type *) malloc(copy->total_connections_allocated * sizeof(fann_type));
        +        if(copy->prev_weights_deltas == NULL)
        +        {
        +            fann_error((struct fann_error *) orig, FANN_E_CANT_ALLOCATE_MEM);
        +            fann_destroy(copy);
        +            return NULL;
        +        }
        +        memcpy(copy->prev_weights_deltas, orig->prev_weights_deltas,copy->total_connections_allocated * sizeof(fann_type));
        +    }
        +
        +    return copy;
        +}
        +
        +FANN_EXTERNAL void FANN_API fann_print_connections(struct fann *ann)
        +{
        +	struct fann_layer *layer_it;
        +	struct fann_neuron *neuron_it;
        +	unsigned int i;
        +	int value;
        +	char *neurons;
        +	unsigned int num_neurons = fann_get_total_neurons(ann) - fann_get_num_output(ann);
        +
        +	neurons = (char *) malloc(num_neurons + 1);
        +	if(neurons == NULL)
        +	{
        +		fann_error(NULL, FANN_E_CANT_ALLOCATE_MEM);
        +		return;
        +	}
        +	neurons[num_neurons] = 0;
        +
        +	printf("Layer / Neuron ");
        +	for(i = 0; i < num_neurons; i++)
        +	{
        +		printf("%d", i % 10);
        +	}
        +	printf("\n");
        +
        +	for(layer_it = ann->first_layer + 1; layer_it != ann->last_layer; layer_it++)
        +	{
        +		for(neuron_it = layer_it->first_neuron; neuron_it != layer_it->last_neuron; neuron_it++)
        +		{
        +
        +			memset(neurons, (int) '.', num_neurons);
        +			for(i = neuron_it->first_con; i < neuron_it->last_con; i++)
        +			{
        +				if(ann->weights[i] < 0)
        +				{
        +#ifdef FIXEDFANN
        +					value = (int) ((ann->weights[i] / (double) ann->multiplier) - 0.5);
        +#else
        +					value = (int) ((ann->weights[i]) - 0.5);
        +#endif
        +					if(value < -25)
        +						value = -25;
        +					neurons[ann->connections[i] - ann->first_layer->first_neuron] = (char)('a' - value);
        +				}
        +				else
        +				{
        +#ifdef FIXEDFANN
        +					value = (int) ((ann->weights[i] / (double) ann->multiplier) + 0.5);
        +#else
        +					value = (int) ((ann->weights[i]) + 0.5);
        +#endif
        +					if(value > 25)
        +						value = 25;
        +					neurons[ann->connections[i] - ann->first_layer->first_neuron] = (char)('A' + value);
        +				}
        +			}
        +			printf("L %3d / N %4d %s\n", (int)(layer_it - ann->first_layer),
        +				   (int)(neuron_it - ann->first_layer->first_neuron), neurons);
        +		}
        +	}
        +
        +	free(neurons);
        +}
        +
        +/* Initialize the weights using Widrow + Nguyen's algorithm.
        +*/
        +FANN_EXTERNAL void FANN_API fann_init_weights(struct fann *ann, struct fann_train_data *train_data)
        +{
        +	fann_type smallest_inp, largest_inp;
        +	unsigned int dat = 0, elem, num_connect, num_hidden_neurons;
        +	struct fann_layer *layer_it;
        +	struct fann_neuron *neuron_it, *last_neuron, *bias_neuron;
        +
        +#ifdef FIXEDFANN
        +	unsigned int multiplier = ann->multiplier;
        +#endif
        +	float scale_factor;
        +
        +	for(smallest_inp = largest_inp = train_data->input[0][0]; dat < train_data->num_data; dat++)
        +	{
        +		for(elem = 0; elem < train_data->num_input; elem++)
        +		{
        +			if(train_data->input[dat][elem] < smallest_inp)
        +				smallest_inp = train_data->input[dat][elem];
        +			if(train_data->input[dat][elem] > largest_inp)
        +				largest_inp = train_data->input[dat][elem];
        +		}
        +	}
        +
        +	num_hidden_neurons = (unsigned int)(
        +		ann->total_neurons - (ann->num_input + ann->num_output +
        +							  (ann->last_layer - ann->first_layer)));
        +	scale_factor =
        +		(float) (pow
        +				 ((double) (0.7f * (double) num_hidden_neurons),
        +				  (double) (1.0f / (double) ann->num_input)) / (double) (largest_inp -
        +																		 smallest_inp));
        +
        +#ifdef DEBUG
        +	printf("Initializing weights with scale factor %f\n", scale_factor);
        +#endif
        +	bias_neuron = ann->first_layer->last_neuron - 1;
        +	for(layer_it = ann->first_layer + 1; layer_it != ann->last_layer; layer_it++)
        +	{
        +		last_neuron = layer_it->last_neuron;
        +
        +		if(ann->network_type == FANN_NETTYPE_LAYER)
        +		{
        +			bias_neuron = (layer_it - 1)->last_neuron - 1;
        +		}
        +
        +		for(neuron_it = layer_it->first_neuron; neuron_it != last_neuron; neuron_it++)
        +		{
        +			for(num_connect = neuron_it->first_con; num_connect < neuron_it->last_con;
        +				num_connect++)
        +			{
        +				if(bias_neuron == ann->connections[num_connect])
        +				{
        +#ifdef FIXEDFANN
        +					ann->weights[num_connect] =
        +						(fann_type) fann_rand(-scale_factor, scale_factor * multiplier);
        +#else
        +					ann->weights[num_connect] = (fann_type) fann_rand(-scale_factor, scale_factor);
        +#endif
        +				}
        +				else
        +				{
        +#ifdef FIXEDFANN
        +					ann->weights[num_connect] = (fann_type) fann_rand(0, scale_factor * multiplier);
        +#else
        +					ann->weights[num_connect] = (fann_type) fann_rand(0, scale_factor);
        +#endif
        +				}
        +			}
        +		}
        +	}
        +
        +#ifndef FIXEDFANN
        +	if(ann->prev_train_slopes != NULL)
        +	{
        +		fann_clear_train_arrays(ann);
        +	}
        +#endif
        +}
        +
        +FANN_EXTERNAL void FANN_API fann_print_parameters(struct fann *ann)
        +{
        +	struct fann_layer *layer_it;
        +#ifndef FIXEDFANN
        +	unsigned int i;
        +#endif
        +
        +	printf("Input layer                          :%4d neurons, 1 bias\n", ann->num_input);
        +	for(layer_it = ann->first_layer + 1; layer_it != ann->last_layer - 1; layer_it++)
        +	{
        +		if(ann->network_type == FANN_NETTYPE_SHORTCUT)
        +		{
        +			printf("  Hidden layer                       :%4d neurons, 0 bias\n",
        +				   (int)(layer_it->last_neuron - layer_it->first_neuron));
        +		}
        +		else
        +		{
        +			printf("  Hidden layer                       :%4d neurons, 1 bias\n",
        +				   (int)(layer_it->last_neuron - layer_it->first_neuron - 1));
        +		}
        +	}
        +	printf("Output layer                         :%4d neurons\n", ann->num_output);
        +	printf("Total neurons and biases             :%4d\n", fann_get_total_neurons(ann));
        +	printf("Total connections                    :%4d\n", ann->total_connections);
        +	printf("Connection rate                      :%8.3f\n", ann->connection_rate);
        +	printf("Network type                         :   %s\n", FANN_NETTYPE_NAMES[ann->network_type]);
        +#ifdef FIXEDFANN
        +	printf("Decimal point                        :%4d\n", ann->decimal_point);
        +	printf("Multiplier                           :%4d\n", ann->multiplier);
        +#else
        +	printf("Training algorithm                   :   %s\n", FANN_TRAIN_NAMES[ann->training_algorithm]);
        +	printf("Training error function              :   %s\n", FANN_ERRORFUNC_NAMES[ann->train_error_function]);
        +	printf("Training stop function               :   %s\n", FANN_STOPFUNC_NAMES[ann->train_stop_function]);
        +#endif
        +#ifdef FIXEDFANN
        +	printf("Bit fail limit                       :%4d\n", ann->bit_fail_limit);
        +#else
        +	printf("Bit fail limit                       :%8.3f\n", ann->bit_fail_limit);
        +	printf("Learning rate                        :%8.3f\n", ann->learning_rate);
        +	printf("Learning momentum                    :%8.3f\n", ann->learning_momentum);
        +	printf("Quickprop decay                      :%11.6f\n", ann->quickprop_decay);
        +	printf("Quickprop mu                         :%8.3f\n", ann->quickprop_mu);
        +	printf("RPROP increase factor                :%8.3f\n", ann->rprop_increase_factor);
        +	printf("RPROP decrease factor                :%8.3f\n", ann->rprop_decrease_factor);
        +	printf("RPROP delta min                      :%8.3f\n", ann->rprop_delta_min);
        +	printf("RPROP delta max                      :%8.3f\n", ann->rprop_delta_max);
        +	printf("Cascade output change fraction       :%11.6f\n", ann->cascade_output_change_fraction);
        +	printf("Cascade candidate change fraction    :%11.6f\n", ann->cascade_candidate_change_fraction);
        +	printf("Cascade output stagnation epochs     :%4d\n", ann->cascade_output_stagnation_epochs);
        +	printf("Cascade candidate stagnation epochs  :%4d\n", ann->cascade_candidate_stagnation_epochs);
        +	printf("Cascade max output epochs            :%4d\n", ann->cascade_max_out_epochs);
        +	printf("Cascade min output epochs            :%4d\n", ann->cascade_min_out_epochs);
        +	printf("Cascade max candidate epochs         :%4d\n", ann->cascade_max_cand_epochs);
        +	printf("Cascade min candidate epochs         :%4d\n", ann->cascade_min_cand_epochs);
        +	printf("Cascade weight multiplier            :%8.3f\n", ann->cascade_weight_multiplier);
        +	printf("Cascade candidate limit              :%8.3f\n", ann->cascade_candidate_limit);
        +	for(i = 0; i < ann->cascade_activation_functions_count; i++)
        +		printf("Cascade activation functions[%d]      :   %s\n", i,
        +			FANN_ACTIVATIONFUNC_NAMES[ann->cascade_activation_functions[i]]);
        +	for(i = 0; i < ann->cascade_activation_steepnesses_count; i++)
        +		printf("Cascade activation steepnesses[%d]    :%8.3f\n", i,
        +			ann->cascade_activation_steepnesses[i]);
        +		
        +	printf("Cascade candidate groups             :%4d\n", ann->cascade_num_candidate_groups);
        +	printf("Cascade no. of candidates            :%4d\n", fann_get_cascade_num_candidates(ann));
        +	
        +	/* TODO: dump scale parameters */
        +#endif
        +}
        +
        +FANN_GET(unsigned int, num_input)
        +FANN_GET(unsigned int, num_output)
        +
        +FANN_EXTERNAL unsigned int FANN_API fann_get_total_neurons(struct fann *ann)
        +{
        +	if(ann->network_type)
        +	{
        +		return ann->total_neurons;
        +	}
        +	else
        +	{
        +		/* -1, because there is always an unused bias neuron in the last layer */
        +		return ann->total_neurons - 1;
        +	}
        +}
        +
        +FANN_GET(unsigned int, total_connections)
        +
        +FANN_EXTERNAL enum fann_nettype_enum FANN_API fann_get_network_type(struct fann *ann)
        +{
        +    /* Currently two types: LAYER = 0, SHORTCUT = 1 */
        +    /* Enum network_types must be set to match the return values  */
        +    return ann->network_type;
        +}
        +
        +FANN_EXTERNAL float FANN_API fann_get_connection_rate(struct fann *ann)
        +{
        +    return ann->connection_rate;
        +}
        +
        +FANN_EXTERNAL unsigned int FANN_API fann_get_num_layers(struct fann *ann)
        +{
        +    return (unsigned int)(ann->last_layer - ann->first_layer);
        +}
        +
        +FANN_EXTERNAL void FANN_API fann_get_layer_array(struct fann *ann, unsigned int *layers)
        +{
        +    struct fann_layer *layer_it;
        +
        +    for (layer_it = ann->first_layer; layer_it != ann->last_layer; layer_it++) {
        +        unsigned int count = (unsigned int)(layer_it->last_neuron - layer_it->first_neuron);
        +        /* Remove the bias from the count of neurons. */
        +        switch (fann_get_network_type(ann)) {
        +            case FANN_NETTYPE_LAYER: {
        +                --count;
        +                break;
        +            }
        +            case FANN_NETTYPE_SHORTCUT: {
        +                /* The bias in the first layer is reused for all layers */
        +                if (layer_it == ann->first_layer)
        +                    --count;
        +                break;
        +            }
        +            default: {
        +                /* Unknown network type, assume no bias present  */
        +                break;
        +            }
        +        }
        +        *layers++ = count;
        +    }
        +}
        +
        +FANN_EXTERNAL void FANN_API fann_get_bias_array(struct fann *ann, unsigned int *bias)
        +{
        +    struct fann_layer *layer_it;
        +
        +    for (layer_it = ann->first_layer; layer_it != ann->last_layer; ++layer_it, ++bias) {
        +        switch (fann_get_network_type(ann)) {
        +            case FANN_NETTYPE_LAYER: {
        +                /* Report one bias in each layer except the last */
        +                if (layer_it != ann->last_layer-1)
        +                    *bias = 1;
        +                else
        +                    *bias = 0;
        +                break;
        +            }
        +            case FANN_NETTYPE_SHORTCUT: {
        +                /* The bias in the first layer is reused for all layers */
        +                if (layer_it == ann->first_layer)
        +                    *bias = 1;
        +                else
        +                    *bias = 0;
        +                break;
        +            }
        +            default: {
        +                /* Unknown network type, assume no bias present  */
        +                *bias = 0;
        +                break;
        +            }
        +        }
        +    }
        +}
        +
        +FANN_EXTERNAL void FANN_API fann_get_connection_array(struct fann *ann, struct fann_connection *connections)
        +{
        +    struct fann_neuron *first_neuron;
        +    struct fann_layer *layer_it;
        +    struct fann_neuron *neuron_it;
        +    unsigned int idx;
        +    unsigned int source_index;
        +    unsigned int destination_index;
        +
        +    first_neuron = ann->first_layer->first_neuron;
        +
        +    source_index = 0;
        +    destination_index = 0;
        +    
        +    /* The following assumes that the last unused bias has no connections */
        +
        +    /* for each layer */
        +    for(layer_it = ann->first_layer; layer_it != ann->last_layer; layer_it++){
        +        /* for each neuron */
        +        for(neuron_it = layer_it->first_neuron; neuron_it != layer_it->last_neuron; neuron_it++){
        +            /* for each connection */
        +            for (idx = neuron_it->first_con; idx < neuron_it->last_con; idx++){
        +                /* Assign the source, destination and weight */
        +                connections->from_neuron = (unsigned int)(ann->connections[source_index] - first_neuron);
        +                connections->to_neuron = destination_index;
        +                connections->weight = ann->weights[source_index];
        +
        +                connections++;
        +                source_index++;
        +            }
        +            destination_index++;
        +        }
        +    }
        +}
        +
        +FANN_EXTERNAL void FANN_API fann_set_weight_array(struct fann *ann,
        +    struct fann_connection *connections, unsigned int num_connections)
        +{
        +    unsigned int idx;
        +
        +    for (idx = 0; idx < num_connections; idx++) {
        +        fann_set_weight(ann, connections[idx].from_neuron,
        +            connections[idx].to_neuron, connections[idx].weight);
        +    }
        +}
        +
        +FANN_EXTERNAL void FANN_API fann_set_weight(struct fann *ann,
        +    unsigned int from_neuron, unsigned int to_neuron, fann_type weight)
        +{
        +    struct fann_neuron *first_neuron;
        +    struct fann_layer *layer_it;
        +    struct fann_neuron *neuron_it;
        +    unsigned int idx;
        +    unsigned int source_index;
        +    unsigned int destination_index;
        +
        +    first_neuron = ann->first_layer->first_neuron;
        +
        +    source_index = 0;
        +    destination_index = 0;
        +
        +    /* Find the connection, simple brute force search through the network
        +       for one or more connections that match to minimize datastructure dependencies.
        +       Nothing is done if the connection does not already exist in the network. */
        +
        +    /* for each layer */
        +    for(layer_it = ann->first_layer; layer_it != ann->last_layer; layer_it++){
        +        /* for each neuron */
        +        for(neuron_it = layer_it->first_neuron; neuron_it != layer_it->last_neuron; neuron_it++){
        +            /* for each connection */
        +            for (idx = neuron_it->first_con; idx < neuron_it->last_con; idx++){
        +                /* If the source and destination neurons match, assign the weight */
        +                if (((int)from_neuron == ann->connections[source_index] - first_neuron) &&
        +                    (to_neuron == destination_index))
        +                {
        +                    ann->weights[source_index] = weight;
        +                }
        +                source_index++;
        +            }
        +            destination_index++;
        +        }
        +    }
        +}
        +
        +FANN_EXTERNAL void FANN_API fann_get_weights(struct fann *ann, fann_type *weights)
        +{
        +	memcpy(weights, ann->weights, sizeof(fann_type)*ann->total_connections);
        +}
        +
        +FANN_EXTERNAL void FANN_API fann_set_weights(struct fann *ann, fann_type *weights)
        +{
        +	memcpy(ann->weights, weights, sizeof(fann_type)*ann->total_connections);
        +}
        +
        +FANN_GET_SET(void *, user_data)
        +
        +#ifdef FIXEDFANN
        +
        +FANN_GET(unsigned int, decimal_point)
        +FANN_GET(unsigned int, multiplier)
        +
        +/* INTERNAL FUNCTION
        +   Adjust the steepwise functions (if used)
        +*/
        +void fann_update_stepwise(struct fann *ann)
        +{
        +	unsigned int i = 0;
        +
        +	/* Calculate the parameters for the stepwise linear
        +	 * sigmoid function fixed point.
        +	 * Using a rewritten sigmoid function.
        +	 * results 0.005, 0.05, 0.25, 0.75, 0.95, 0.995
        +	 */
        +	ann->sigmoid_results[0] = fann_max((fann_type) (ann->multiplier / 200.0 + 0.5), 1);
        +	ann->sigmoid_results[1] = fann_max((fann_type) (ann->multiplier / 20.0 + 0.5), 1);
        +	ann->sigmoid_results[2] = fann_max((fann_type) (ann->multiplier / 4.0 + 0.5), 1);
        +	ann->sigmoid_results[3] = fann_min(ann->multiplier - (fann_type) (ann->multiplier / 4.0 + 0.5), ann->multiplier - 1);
        +	ann->sigmoid_results[4] = fann_min(ann->multiplier - (fann_type) (ann->multiplier / 20.0 + 0.5), ann->multiplier - 1);
        +	ann->sigmoid_results[5] = fann_min(ann->multiplier - (fann_type) (ann->multiplier / 200.0 + 0.5), ann->multiplier - 1);
        +
        +	ann->sigmoid_symmetric_results[0] = fann_max((fann_type) ((ann->multiplier / 100.0) - ann->multiplier - 0.5),
        +				                                 (fann_type) (1 - (fann_type) ann->multiplier));
        +	ann->sigmoid_symmetric_results[1] =	fann_max((fann_type) ((ann->multiplier / 10.0) - ann->multiplier - 0.5),
        +				                                 (fann_type) (1 - (fann_type) ann->multiplier));
        +	ann->sigmoid_symmetric_results[2] =	fann_max((fann_type) ((ann->multiplier / 2.0) - ann->multiplier - 0.5),
        +                                				 (fann_type) (1 - (fann_type) ann->multiplier));
        +	ann->sigmoid_symmetric_results[3] = fann_min(ann->multiplier - (fann_type) (ann->multiplier / 2.0 + 0.5),
        +				 							     ann->multiplier - 1);
        +	ann->sigmoid_symmetric_results[4] = fann_min(ann->multiplier - (fann_type) (ann->multiplier / 10.0 + 0.5),
        +				 							     ann->multiplier - 1);
        +	ann->sigmoid_symmetric_results[5] = fann_min(ann->multiplier - (fann_type) (ann->multiplier / 100.0 + 1.0),
        +				 							     ann->multiplier - 1);
        +
        +	for(i = 0; i < 6; i++)
        +	{
        +		ann->sigmoid_values[i] =
        +			(fann_type) (((log(ann->multiplier / (float) ann->sigmoid_results[i] - 1) *
        +						   (float) ann->multiplier) / -2.0) * (float) ann->multiplier);
        +		ann->sigmoid_symmetric_values[i] =
        +			(fann_type) (((log
        +						   ((ann->multiplier -
        +							 (float) ann->sigmoid_symmetric_results[i]) /
        +							((float) ann->sigmoid_symmetric_results[i] +
        +							 ann->multiplier)) * (float) ann->multiplier) / -2.0) *
        +						 (float) ann->multiplier);
        +	}
        +}
        +#endif
        +
        +
        +/* INTERNAL FUNCTION
        +   Allocates the main structure and sets some default values.
        + */
        +struct fann *fann_allocate_structure(unsigned int num_layers)
        +{
        +	struct fann *ann;
        +
        +	if(num_layers < 2)
        +	{
        +#ifdef DEBUG
        +		printf("less than 2 layers - ABORTING.\n");
        +#endif
        +		return NULL;
        +	}
        +
        +	/* allocate and initialize the main network structure */
        +	ann = (struct fann *) malloc(sizeof(struct fann));
        +	if(ann == NULL)
        +	{
        +		fann_error(NULL, FANN_E_CANT_ALLOCATE_MEM);
        +		return NULL;
        +	}
        +
        +	ann->errno_f = FANN_E_NO_ERROR;
        +	ann->error_log = fann_default_error_log;
        +	ann->errstr = NULL;
        +	ann->learning_rate = 0.7f;
        +	ann->learning_momentum = 0.0;
        +	ann->total_neurons = 0;
        +	ann->total_connections = 0;
        +	ann->num_input = 0;
        +	ann->num_output = 0;
        +	ann->train_errors = NULL;
        +	ann->train_slopes = NULL;
        +	ann->prev_steps = NULL;
        +	ann->prev_train_slopes = NULL;
        +	ann->prev_weights_deltas = NULL;
        +	ann->training_algorithm = FANN_TRAIN_RPROP;
        +	ann->num_MSE = 0;
        +	ann->MSE_value = 0;
        +	ann->num_bit_fail = 0;
        +	ann->bit_fail_limit = (fann_type)0.35;
        +	ann->network_type = FANN_NETTYPE_LAYER;
        +	ann->train_error_function = FANN_ERRORFUNC_TANH;
        +	ann->train_stop_function = FANN_STOPFUNC_MSE;
        +	ann->callback = NULL;
        +    ann->user_data = NULL; /* User is responsible for deallocation */
        +	ann->weights = NULL;
        +	ann->connections = NULL;
        +	ann->output = NULL;
        +#ifndef FIXEDFANN
        +	ann->scale_mean_in = NULL;
        +	ann->scale_deviation_in = NULL;
        +	ann->scale_new_min_in = NULL;
        +	ann->scale_factor_in = NULL;
        +	ann->scale_mean_out = NULL;
        +	ann->scale_deviation_out = NULL;
        +	ann->scale_new_min_out = NULL;
        +	ann->scale_factor_out = NULL;
        +#endif	
        +	
        +	/* variables used for cascade correlation (reasonable defaults) */
        +	ann->cascade_output_change_fraction = 0.01f;
        +	ann->cascade_candidate_change_fraction = 0.01f;
        +	ann->cascade_output_stagnation_epochs = 12;
        +	ann->cascade_candidate_stagnation_epochs = 12;
        +	ann->cascade_num_candidate_groups = 2;
        +	ann->cascade_weight_multiplier = (fann_type)0.4;
        +	ann->cascade_candidate_limit = (fann_type)1000.0;
        +	ann->cascade_max_out_epochs = 150;
        +	ann->cascade_max_cand_epochs = 150;
        +	ann->cascade_min_out_epochs = 50;
        +	ann->cascade_min_cand_epochs = 50;
        +	ann->cascade_candidate_scores = NULL;
        +	ann->cascade_activation_functions_count = 10;
        +	ann->cascade_activation_functions = 
        +		(enum fann_activationfunc_enum *)calloc(ann->cascade_activation_functions_count, 
        +							   sizeof(enum fann_activationfunc_enum));
        +	if(ann->cascade_activation_functions == NULL)
        +	{
        +		fann_error(NULL, FANN_E_CANT_ALLOCATE_MEM);
        +		free(ann);
        +		return NULL;
        +	}
        +							   
        +	ann->cascade_activation_functions[0] = FANN_SIGMOID;
        +	ann->cascade_activation_functions[1] = FANN_SIGMOID_SYMMETRIC;
        +	ann->cascade_activation_functions[2] = FANN_GAUSSIAN;
        +	ann->cascade_activation_functions[3] = FANN_GAUSSIAN_SYMMETRIC;
        +	ann->cascade_activation_functions[4] = FANN_ELLIOT;
        +	ann->cascade_activation_functions[5] = FANN_ELLIOT_SYMMETRIC;
        +	ann->cascade_activation_functions[6] = FANN_SIN_SYMMETRIC;
        +	ann->cascade_activation_functions[7] = FANN_COS_SYMMETRIC;
        +	ann->cascade_activation_functions[8] = FANN_SIN;
        +	ann->cascade_activation_functions[9] = FANN_COS;
        +
        +	ann->cascade_activation_steepnesses_count = 4;
        +	ann->cascade_activation_steepnesses = 
        +		(fann_type *)calloc(ann->cascade_activation_steepnesses_count, 
        +							   sizeof(fann_type));
        +	if(ann->cascade_activation_steepnesses == NULL)
        +	{
        +		fann_safe_free(ann->cascade_activation_functions);
        +		fann_error(NULL, FANN_E_CANT_ALLOCATE_MEM);
        +		free(ann);
        +		return NULL;
        +	}
        +	
        +	ann->cascade_activation_steepnesses[0] = (fann_type)0.25;
        +	ann->cascade_activation_steepnesses[1] = (fann_type)0.5;
        +	ann->cascade_activation_steepnesses[2] = (fann_type)0.75;
        +	ann->cascade_activation_steepnesses[3] = (fann_type)1.0;
        +
        +	/* Variables for use with with Quickprop training (reasonable defaults) */
        +	ann->quickprop_decay = -0.0001f;
        +	ann->quickprop_mu = 1.75;
        +
        +	/* Variables for use with with RPROP training (reasonable defaults) */
        +	ann->rprop_increase_factor = 1.2f;
        +	ann->rprop_decrease_factor = 0.5;
        +	ann->rprop_delta_min = 0.0;
        +	ann->rprop_delta_max = 50.0;
        +	ann->rprop_delta_zero = 0.1f;
        +	
        + 	/* Variables for use with SARPROP training (reasonable defaults) */
        + 	ann->sarprop_weight_decay_shift = -6.644f;
        + 	ann->sarprop_step_error_threshold_factor = 0.1f;
        + 	ann->sarprop_step_error_shift = 1.385f;
        + 	ann->sarprop_temperature = 0.015f;
        + 	ann->sarprop_epoch = 0;
        + 
        +	fann_init_error_data((struct fann_error *) ann);
        +
        +#ifdef FIXEDFANN
        +	/* these values are only boring defaults, and should really
        +	 * never be used, since the real values are always loaded from a file. */
        +	ann->decimal_point = 8;
        +	ann->multiplier = 256;
        +#endif
        +
        +	/* allocate room for the layers */
        +	ann->first_layer = (struct fann_layer *) calloc(num_layers, sizeof(struct fann_layer));
        +	if(ann->first_layer == NULL)
        +	{
        +		fann_error(NULL, FANN_E_CANT_ALLOCATE_MEM);
        +		free(ann);
        +		return NULL;
        +	}
        +
        +	ann->last_layer = ann->first_layer + num_layers;
        +
        +	return ann;
        +}
        +
        +/* INTERNAL FUNCTION
        +   Allocates room for the scaling parameters.
        + */
        +int fann_allocate_scale(struct fann *ann)
        +{
        +	/* todo this should only be allocated when needed */
        +#ifndef FIXEDFANN
        +	unsigned int i = 0;
        +#define SCALE_ALLOCATE( what, where, default_value )		    			\
        +		ann->what##_##where = (float *)calloc(								\
        +			ann->num_##where##put,											\
        +			sizeof( float )													\
        +			);																\
        +		if( ann->what##_##where == NULL )									\
        +		{																	\
        +			fann_error( NULL, FANN_E_CANT_ALLOCATE_MEM );					\
        +			fann_destroy( ann );                            				\
        +			return 1;														\
        +		}																	\
        +		for( i = 0; i < ann->num_##where##put; i++ )						\
        +			ann->what##_##where[ i ] = ( default_value );
        +
        +	SCALE_ALLOCATE( scale_mean,		in,		0.0 )
        +	SCALE_ALLOCATE( scale_deviation,	in,		1.0 )
        +	SCALE_ALLOCATE( scale_new_min,	in,		-1.0 )
        +	SCALE_ALLOCATE( scale_factor,		in,		1.0 )
        +
        +	SCALE_ALLOCATE( scale_mean,		out,	0.0 )
        +	SCALE_ALLOCATE( scale_deviation,	out,	1.0 )
        +	SCALE_ALLOCATE( scale_new_min,	out,	-1.0 )
        +	SCALE_ALLOCATE( scale_factor,		out,	1.0 )
        +#undef SCALE_ALLOCATE
        +#endif	
        +	return 0;
        +}
        +
        +/* INTERNAL FUNCTION
        +   Allocates room for the neurons.
        + */
        +void fann_allocate_neurons(struct fann *ann)
        +{
        +	struct fann_layer *layer_it;
        +	struct fann_neuron *neurons;
        +	unsigned int num_neurons_so_far = 0;
        +	unsigned int num_neurons = 0;
        +
        +	/* all the neurons is allocated in one long array (calloc clears mem) */
        +	neurons = (struct fann_neuron *) calloc(ann->total_neurons, sizeof(struct fann_neuron));
        +	ann->total_neurons_allocated = ann->total_neurons;
        +
        +	if(neurons == NULL)
        +	{
        +		fann_error((struct fann_error *) ann, FANN_E_CANT_ALLOCATE_MEM);
        +		return;
        +	}
        +
        +	for(layer_it = ann->first_layer; layer_it != ann->last_layer; layer_it++)
        +	{
        +		num_neurons = (unsigned int)(layer_it->last_neuron - layer_it->first_neuron);
        +		layer_it->first_neuron = neurons + num_neurons_so_far;
        +		layer_it->last_neuron = layer_it->first_neuron + num_neurons;
        +		num_neurons_so_far += num_neurons;
        +	}
        +
        +	ann->output = (fann_type *) calloc(num_neurons, sizeof(fann_type));
        +	if(ann->output == NULL)
        +	{
        +		fann_error((struct fann_error *) ann, FANN_E_CANT_ALLOCATE_MEM);
        +		return;
        +	}
        +}
        +
        +/* INTERNAL FUNCTION
        +   Allocate room for the connections.
        + */
        +void fann_allocate_connections(struct fann *ann)
        +{
        +	ann->weights = (fann_type *) calloc(ann->total_connections, sizeof(fann_type));
        +	if(ann->weights == NULL)
        +	{
        +		fann_error((struct fann_error *) ann, FANN_E_CANT_ALLOCATE_MEM);
        +		return;
        +	}
        +	ann->total_connections_allocated = ann->total_connections;
        +
        +	/* TODO make special cases for all places where the connections
        +	 * is used, so that it is not needed for fully connected networks.
        +	 */
        +	ann->connections =
        +		(struct fann_neuron **) calloc(ann->total_connections_allocated,
        +									   sizeof(struct fann_neuron *));
        +	if(ann->connections == NULL)
        +	{
        +		fann_error((struct fann_error *) ann, FANN_E_CANT_ALLOCATE_MEM);
        +		return;
        +	}
        +}
        +
        +#ifdef FANN_NO_SEED
        +int FANN_SEED_RAND = 0;
        +#else
        +int FANN_SEED_RAND = 1;
        +#endif
        +
        +FANN_EXTERNAL void FANN_API fann_disable_seed_rand()
        +{
        +    FANN_SEED_RAND = 0;
        +}
        +
        +FANN_EXTERNAL void FANN_API fann_enable_seed_rand()
        +{
        +    FANN_SEED_RAND = 1;
        +}
        +
        +/* INTERNAL FUNCTION
        +   Seed the random function.
        + */
        +void fann_seed_rand()
        +{
        +#ifndef _WIN32
        +	FILE *fp = fopen("/dev/urandom", "r");
        +	unsigned int foo;
        +	struct timeval t;
        +
        +	if(!fp)
        +	{
        +		gettimeofday(&t, NULL);
        +		foo = t.tv_usec;
        +#ifdef DEBUG
        +		printf("unable to open /dev/urandom\n");
        +#endif
        +	}
        +	else
        +	{
        +	        if(fread(&foo, sizeof(foo), 1, fp) != 1) 
        +	        {
        +  		       gettimeofday(&t, NULL);
        +		       foo = t.tv_usec;
        +#ifdef DEBUG
        +		       printf("unable to read from /dev/urandom\n");
        +#endif		      
        +		}
        +		fclose(fp);
        +	}
        +    if(FANN_SEED_RAND) {
        +        srand(foo);
        +    }
        +#else
        +	/* COMPAT_TIME REPLACEMENT */
        +    if(FANN_SEED_RAND) {
        +    	srand(GetTickCount());
        +    }
        +#endif
        +}
        +
        diff --git a/lib/ann/fann/src/fann_cascade.c b/lib/ann/fann/src/fann_cascade.c
        new file mode 100644
        index 0000000..5195490
        --- /dev/null
        +++ b/lib/ann/fann/src/fann_cascade.c
        @@ -0,0 +1,1047 @@
        +/*
        +  Fast Artificial Neural Network Library (fann)
        +  Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com)
        +  
        +  This library is free software; you can redistribute it and/or
        +  modify it under the terms of the GNU Lesser General Public
        +  License as published by the Free Software Foundation; either
        +  version 2.1 of the License, or (at your option) any later version.
        +  
        +  This library is distributed in the hope that it will be useful,
        +  but WITHOUT ANY WARRANTY; without even the implied warranty of
        +  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
        +  Lesser General Public License for more details.
        +  
        +  You should have received a copy of the GNU Lesser General Public
        +  License along with this library; if not, write to the Free Software
        +  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        +*/
        +
        +#include "config.h"
        +#include "fann.h"
        +#include "string.h"
        +
        +#ifndef FIXEDFANN
        +
        +/* #define CASCADE_DEBUG */
        +/* #define CASCADE_DEBUG_FULL */
        +
        +void fann_print_connections_raw(struct fann *ann)
        +{
        +	unsigned int i;
        +
        +	for(i = 0; i < ann->total_connections_allocated; i++)
        +	{
        +		if(i == ann->total_connections)
        +		{
        +			printf("* ");
        +		}
        +		printf("%f ", ann->weights[i]);
        +	}
        +	printf("\n\n");
        +}
        +
        +/* Cascade training directly on the training data.
        +   The connected_neurons pointers are not valid during training,
        +   but they will be again after training.
        + */
        +FANN_EXTERNAL void FANN_API fann_cascadetrain_on_data(struct fann *ann, struct fann_train_data *data,
        +										unsigned int max_neurons,
        +										unsigned int neurons_between_reports,
        +										float desired_error)
        +{
        +	float error;
        +	unsigned int i;
        +	unsigned int total_epochs = 0;
        +	int desired_error_reached;
        +
        +	if(neurons_between_reports && ann->callback == NULL)
        +	{
        +		printf("Max neurons %3d. Desired error: %.6f\n", max_neurons, desired_error);
        +	}
        +
        +	for(i = 1; i <= max_neurons; i++)
        +	{
        +		/* train output neurons */
        +		total_epochs += fann_train_outputs(ann, data, desired_error);
        +		error = fann_get_MSE(ann);
        +		desired_error_reached = fann_desired_error_reached(ann, desired_error);
        +
        +		/* print current error */
        +		if(neurons_between_reports &&
        +		   (i % neurons_between_reports == 0
        +			|| i == max_neurons || i == 1 || desired_error_reached == 0))
        +		{
        +			if(ann->callback == NULL)
        +			{
        +				printf
        +					("Neurons     %3d. Current error: %.6f. Total error:%8.4f. Epochs %5d. Bit fail %3d",
        +					 i-1, error, ann->MSE_value, total_epochs, ann->num_bit_fail);
        +				if((ann->last_layer-2) != ann->first_layer)
        +				{
        +					printf(". candidate steepness %.2f. function %s", 
        +					   (ann->last_layer-2)->first_neuron->activation_steepness,
        +					   FANN_ACTIVATIONFUNC_NAMES[(ann->last_layer-2)->first_neuron->activation_function]);
        +				}
        +				printf("\n");
        +			}
        +			else if((*ann->callback) (ann, data, max_neurons, 
        +				neurons_between_reports, desired_error, total_epochs) == -1) 
        +			{
        +				/* you can break the training by returning -1 */
        +				break;
        +			}					 
        +		}
        +
        +		if(desired_error_reached == 0)
        +			break;
        +
        +		if(fann_initialize_candidates(ann) == -1)
        +		{
        +			/* Unable to initialize room for candidates */
        +			break;
        +		}
        +
        +		/* train new candidates */
        +		total_epochs += fann_train_candidates(ann, data);
        +
        +		/* this installs the best candidate */
        +		fann_install_candidate(ann);
        +	}
        +
        +	/* Train outputs one last time but without any desired error */
        +	total_epochs += fann_train_outputs(ann, data, 0.0);
        +
        +	if(neurons_between_reports && ann->callback == NULL)
        +	{
        +		printf("Train outputs    Current error: %.6f. Epochs %6d\n", fann_get_MSE(ann),
        +			   total_epochs);
        +	}
        +
        +	/* Set pointers in connected_neurons
        +	 * This is ONLY done in the end of cascade training,
        +	 * since there is no need for them during training.
        +	 */
        +	fann_set_shortcut_connections(ann);
        +}
        +
        +FANN_EXTERNAL void FANN_API fann_cascadetrain_on_file(struct fann *ann, const char *filename,
        +													  unsigned int max_neurons,
        +													  unsigned int neurons_between_reports,
        +													  float desired_error)
        +{
        +	struct fann_train_data *data = fann_read_train_from_file(filename);
        +
        +	if(data == NULL)
        +	{
        +		return;
        +	}
        +	fann_cascadetrain_on_data(ann, data, max_neurons, neurons_between_reports, desired_error);
        +	fann_destroy_train(data);
        +}
        +
        +int fann_train_outputs(struct fann *ann, struct fann_train_data *data, float desired_error)
        +{
        +	float error, initial_error, error_improvement;
        +	float target_improvement = 0.0;
        +	float backslide_improvement = -1.0e20f;
        +	unsigned int i;
        +	unsigned int max_epochs = ann->cascade_max_out_epochs;
        +	unsigned int min_epochs = ann->cascade_min_out_epochs;
        +	unsigned int stagnation = max_epochs;
        +
        +	/* TODO should perhaps not clear all arrays */
        +	fann_clear_train_arrays(ann);
        +
        +	/* run an initial epoch to set the initital error */
        +	initial_error = fann_train_outputs_epoch(ann, data);
        +
        +	if(fann_desired_error_reached(ann, desired_error) == 0)
        +		return 1;
        +
        +	for(i = 1; i < max_epochs; i++)
        +	{
        +		error = fann_train_outputs_epoch(ann, data);
        +
        +		/*printf("Epoch %6d. Current error: %.6f. Bit fail %d.\n", i, error, ann->num_bit_fail); */
        +
        +		if(fann_desired_error_reached(ann, desired_error) == 0)
        +		{
        +#ifdef CASCADE_DEBUG
        +			printf("Error %f < %f\n", error, desired_error);
        +#endif
        +			return i + 1;
        +		}
        +
        +		/* Improvement since start of train */
        +		error_improvement = initial_error - error;
        +
        +		/* After any significant change, set a new goal and
        +		 * allow a new quota of epochs to reach it */
        +		
        +		if((target_improvement >= 0 &&
        +			(error_improvement > target_improvement || error_improvement < backslide_improvement)) ||
        +		(target_improvement < 0 &&
        +			(error_improvement < target_improvement || error_improvement > backslide_improvement)))
        +		{
        +			/*printf("error_improvement=%f, target_improvement=%f, backslide_improvement=%f, stagnation=%d\n", error_improvement, target_improvement, backslide_improvement, stagnation); */
        +
        +			target_improvement = error_improvement * (1.0f + ann->cascade_output_change_fraction);
        +			backslide_improvement = error_improvement * (1.0f - ann->cascade_output_change_fraction);
        +			stagnation = i + ann->cascade_output_stagnation_epochs;
        +		}
        +
        +		/* No improvement in allotted period, so quit */
        +		if(i >= stagnation && i >= min_epochs)
        +		{
        +			return i + 1;
        +		}
        +	}
        +
        +	return max_epochs;
        +}
        +
        +float fann_train_outputs_epoch(struct fann *ann, struct fann_train_data *data)
        +{
        +	unsigned int i;
        +	
        +	fann_reset_MSE(ann);
        +
        +	for(i = 0; i < data->num_data; i++)
        +	{
        +		fann_run(ann, data->input[i]);
        +		fann_compute_MSE(ann, data->output[i]);
        +		fann_update_slopes_batch(ann, ann->last_layer - 1, ann->last_layer - 1);
        +	}
        +
        +	switch (ann->training_algorithm)
        +	{
        +		case FANN_TRAIN_RPROP:
        +			fann_update_weights_irpropm(ann, (ann->last_layer - 1)->first_neuron->first_con,
        +										ann->total_connections);
        +			break;
        +		case FANN_TRAIN_SARPROP:
        +			fann_update_weights_sarprop(ann, ann->sarprop_epoch, (ann->last_layer - 1)->first_neuron->first_con,
        +										ann->total_connections);
        +			++(ann->sarprop_epoch);
        +			break;
        +		case FANN_TRAIN_QUICKPROP:
        +			fann_update_weights_quickprop(ann, data->num_data,
        +										  (ann->last_layer - 1)->first_neuron->first_con,
        +										  ann->total_connections);
        +			break;
        +		case FANN_TRAIN_BATCH:
        +		case FANN_TRAIN_INCREMENTAL:
        +			fann_error((struct fann_error *) ann, FANN_E_CANT_USE_TRAIN_ALG);
        +	}
        +
        +	return fann_get_MSE(ann);
        +}
        +
        +int fann_reallocate_connections(struct fann *ann, unsigned int total_connections)
        +{
        +	/* The connections are allocated, but the pointers inside are
        +	 * first moved in the end of the cascade training session.
        +	 */
        +
        +#ifdef CASCADE_DEBUG
        +	printf("realloc from %d to %d\n", ann->total_connections_allocated, total_connections);
        +#endif
        +	ann->connections =
        +		(struct fann_neuron **) realloc(ann->connections,
        +										total_connections * sizeof(struct fann_neuron *));
        +	if(ann->connections == NULL)
        +	{
        +		fann_error((struct fann_error *) ann, FANN_E_CANT_ALLOCATE_MEM);
        +		return -1;
        +	}
        +
        +	ann->weights = (fann_type *) realloc(ann->weights, total_connections * sizeof(fann_type));
        +	if(ann->weights == NULL)
        +	{
        +		fann_error((struct fann_error *) ann, FANN_E_CANT_ALLOCATE_MEM);
        +		return -1;
        +	}
        +
        +	ann->train_slopes =
        +		(fann_type *) realloc(ann->train_slopes, total_connections * sizeof(fann_type));
        +	if(ann->train_slopes == NULL)
        +	{
        +		fann_error((struct fann_error *) ann, FANN_E_CANT_ALLOCATE_MEM);
        +		return -1;
        +	}
        +
        +	ann->prev_steps = (fann_type *) realloc(ann->prev_steps, total_connections * sizeof(fann_type));
        +	if(ann->prev_steps == NULL)
        +	{
        +		fann_error((struct fann_error *) ann, FANN_E_CANT_ALLOCATE_MEM);
        +		return -1;
        +	}
        +
        +	ann->prev_train_slopes =
        +		(fann_type *) realloc(ann->prev_train_slopes, total_connections * sizeof(fann_type));
        +	if(ann->prev_train_slopes == NULL)
        +	{
        +		fann_error((struct fann_error *) ann, FANN_E_CANT_ALLOCATE_MEM);
        +		return -1;
        +	}
        +
        +	ann->total_connections_allocated = total_connections;
        +
        +	return 0;
        +}
        +
        +int fann_reallocate_neurons(struct fann *ann, unsigned int total_neurons)
        +{
        +	struct fann_layer *layer_it;
        +	struct fann_neuron *neurons;
        +	unsigned int num_neurons = 0;
        +	unsigned int num_neurons_so_far = 0;
        +
        +	neurons =
        +		(struct fann_neuron *) realloc(ann->first_layer->first_neuron,
        +									   total_neurons * sizeof(struct fann_neuron));
        +	ann->total_neurons_allocated = total_neurons;
        +
        +	if(neurons == NULL)
        +	{
        +		fann_error((struct fann_error *) ann, FANN_E_CANT_ALLOCATE_MEM);
        +		return -1;
        +	}
        +
        +	/* Also allocate room for more train_errors */
        +	ann->train_errors = (fann_type *) realloc(ann->train_errors, total_neurons * sizeof(fann_type));
        +	if(ann->train_errors == NULL)
        +	{
        +		fann_error((struct fann_error *) ann, FANN_E_CANT_ALLOCATE_MEM);
        +		return -1;
        +	}
        +
        +	if(neurons != ann->first_layer->first_neuron)
        +	{
        +		/* Then the memory has moved, also move the pointers */
        +
        +#ifdef CASCADE_DEBUG_FULL
        +		printf("Moving neuron pointers\n");
        +#endif
        +
        +		/* Move pointers from layers to neurons */
        +		for(layer_it = ann->first_layer; layer_it != ann->last_layer; layer_it++)
        +		{
        +			num_neurons = (unsigned int)(layer_it->last_neuron - layer_it->first_neuron);
        +			layer_it->first_neuron = neurons + num_neurons_so_far;
        +			layer_it->last_neuron = layer_it->first_neuron + num_neurons;
        +			num_neurons_so_far += num_neurons;
        +		}
        +	}
        +
        +	return 0;
        +}
        +
        +void initialize_candidate_weights(struct fann *ann, unsigned int first_con, unsigned int last_con, float scale_factor)
        +{
        +	fann_type prev_step;
        +	unsigned int i = 0;
        +	unsigned int bias_weight = (unsigned int)(first_con + (ann->first_layer->last_neuron - ann->first_layer->first_neuron) - 1);
        +
        +	if(ann->training_algorithm == FANN_TRAIN_RPROP)
        +		prev_step = ann->rprop_delta_zero;
        +	else
        +		prev_step = 0;
        +
        +	for(i = first_con; i < last_con; i++)
        +	{
        +		if(i == bias_weight) 
        +			ann->weights[i] = fann_rand(-scale_factor, scale_factor);
        +		else
        +			ann->weights[i] = fann_rand(0,scale_factor);
        +					
        +		ann->train_slopes[i] = 0;
        +		ann->prev_steps[i] = prev_step;
        +		ann->prev_train_slopes[i] = 0;
        +	}
        +}
        +
        +int fann_initialize_candidates(struct fann *ann)
        +{
        +	/* The candidates are allocated after the normal neurons and connections,
        +	 * but there is an empty place between the real neurons and the candidate neurons,
        +	 * so that it will be possible to make room when the chosen candidate are copied in
        +	 * on the desired place.
        +	 */
        +	unsigned int neurons_to_allocate, connections_to_allocate;
        +	unsigned int num_candidates = fann_get_cascade_num_candidates(ann);
        +	unsigned int num_neurons = ann->total_neurons + num_candidates + 1;
        +	unsigned int num_hidden_neurons = ann->total_neurons - ann->num_input - ann->num_output;
        +	unsigned int candidate_connections_in = ann->total_neurons - ann->num_output;
        +	unsigned int candidate_connections_out = ann->num_output;
        +
        +	/* the number of connections going into a and out of a candidate is
        +	 * ann->total_neurons */
        +	unsigned int num_connections =
        +		ann->total_connections + (ann->total_neurons * (num_candidates + 1));
        +	unsigned int first_candidate_connection = ann->total_connections + ann->total_neurons;
        +	unsigned int first_candidate_neuron = ann->total_neurons + 1;
        +	unsigned int connection_it, i, j, k, candidate_index;
        +	struct fann_neuron *neurons;
        +	float scale_factor;
        +	
        +	/* First make sure that there is enough room, and if not then allocate a
        +	 * bit more so that we do not need to allocate more room each time.
        +	 */
        +	if(num_neurons > ann->total_neurons_allocated)
        +	{
        +		/* Then we need to allocate more neurons
        +		 * Allocate half as many neurons as already exist (at least ten)
        +		 */
        +		neurons_to_allocate = num_neurons + num_neurons / 2;
        +		if(neurons_to_allocate < num_neurons + 10)
        +		{
        +			neurons_to_allocate = num_neurons + 10;
        +		}
        +
        +		if(fann_reallocate_neurons(ann, neurons_to_allocate) == -1)
        +		{
        +			return -1;
        +		}
        +	}
        +
        +	if(num_connections > ann->total_connections_allocated)
        +	{
        +		/* Then we need to allocate more connections
        +		 * Allocate half as many connections as already exist
        +		 * (at least enough for ten neurons)
        +		 */
        +		connections_to_allocate = num_connections + num_connections / 2;
        +		if(connections_to_allocate < num_connections + ann->total_neurons * 10)
        +		{
        +			connections_to_allocate = num_connections + ann->total_neurons * 10;
        +		}
        +
        +		if(fann_reallocate_connections(ann, connections_to_allocate) == -1)
        +		{
        +			return -1;
        +		}
        +	}
        +
        +	/* Some code to do semi Widrow + Nguyen initialization */
        +	scale_factor = (float) (2.0 * pow(0.7f * (float)num_hidden_neurons, 1.0f / (float) ann->num_input));
        +	if(scale_factor > 8)
        +		scale_factor = 8;
        +	else if(scale_factor < 0.5)
        +		scale_factor = 0.5;
        +
        +	/* Set the neurons.
        +	 */
        +	connection_it = first_candidate_connection;
        +	neurons = ann->first_layer->first_neuron;
        +	candidate_index = first_candidate_neuron;
        +
        +	for(i = 0; i < ann->cascade_activation_functions_count; i++)
        +	{
        +		for(j = 0; j < ann->cascade_activation_steepnesses_count; j++)
        +		{
        +			for(k = 0; k < ann->cascade_num_candidate_groups; k++)
        +			{
        +				/* TODO candidates should actually be created both in
        +				 * the last layer before the output layer, and in a new layer.
        +				 */
        +				neurons[candidate_index].value = 0;
        +				neurons[candidate_index].sum = 0;
        +				
        +				neurons[candidate_index].activation_function =
        +					ann->cascade_activation_functions[i];
        +				neurons[candidate_index].activation_steepness =
        +					ann->cascade_activation_steepnesses[j];
        +				
        +				neurons[candidate_index].first_con = connection_it;
        +				connection_it += candidate_connections_in;
        +				neurons[candidate_index].last_con = connection_it;
        +				/* We have no specific pointers to the output weights, but they are
        +				 * available after last_con */
        +				connection_it += candidate_connections_out;
        +				ann->train_errors[candidate_index] = 0;
        +				initialize_candidate_weights(ann, neurons[candidate_index].first_con, neurons[candidate_index].last_con+candidate_connections_out, scale_factor);
        +				candidate_index++;
        +			}
        +		}
        +	}
        +
        +	
        +	/* Now randomize the weights and zero out the arrays that needs zeroing out.
        +	 */
        +	 /*
        +#ifdef CASCADE_DEBUG_FULL
        +	printf("random cand weight [%d ... %d]\n", first_candidate_connection, num_connections - 1);
        +#endif
        +
        +	for(i = first_candidate_connection; i < num_connections; i++)
        +	{
        +		
        +		//ann->weights[i] = fann_random_weight();
        +		ann->weights[i] = fann_rand(-2.0,2.0);
        +		ann->train_slopes[i] = 0;
        +		ann->prev_steps[i] = 0;
        +		ann->prev_train_slopes[i] = initial_slope;
        +	}
        +	*/
        +
        +	return 0;
        +}
        +
        +int fann_train_candidates(struct fann *ann, struct fann_train_data *data)
        +{
        +	fann_type best_cand_score = 0.0;
        +	fann_type target_cand_score = 0.0;
        +	fann_type backslide_cand_score = -1.0e20f;
        +	unsigned int i;
        +	unsigned int max_epochs = ann->cascade_max_cand_epochs;
        +	unsigned int min_epochs = ann->cascade_min_cand_epochs;
        +	unsigned int stagnation = max_epochs;
        +
        +	if(ann->cascade_candidate_scores == NULL)
        +	{
        +		ann->cascade_candidate_scores =
        +			(fann_type *) malloc(fann_get_cascade_num_candidates(ann) * sizeof(fann_type));
        +		if(ann->cascade_candidate_scores == NULL)
        +		{
        +			fann_error((struct fann_error *) ann, FANN_E_CANT_ALLOCATE_MEM);
        +			return 0;
        +		}
        +	}
        +
        +	for(i = 0; i < max_epochs; i++)
        +	{
        +		best_cand_score = fann_train_candidates_epoch(ann, data);
        +
        +		if(best_cand_score / ann->MSE_value > ann->cascade_candidate_limit)
        +		{
        +#ifdef CASCADE_DEBUG
        +			printf("above candidate limit %f/%f > %f", best_cand_score, ann->MSE_value,
        +				   ann->cascade_candidate_limit);
        +#endif
        +			return i + 1;
        +		}
        +
        +		if((best_cand_score > target_cand_score) || (best_cand_score < backslide_cand_score))
        +		{
        +#ifdef CASCADE_DEBUG_FULL
        +			printf("Best candidate score %f, real score: %f\n", ann->MSE_value - best_cand_score,
        +				   best_cand_score);
        +			/* printf("best_cand_score=%f, target_cand_score=%f, backslide_cand_score=%f, stagnation=%d\n", best_cand_score, target_cand_score, backslide_cand_score, stagnation); */
        +#endif
        +
        +			target_cand_score = best_cand_score * (1.0f + ann->cascade_candidate_change_fraction);
        +			backslide_cand_score = best_cand_score * (1.0f - ann->cascade_candidate_change_fraction);
        +			stagnation = i + ann->cascade_candidate_stagnation_epochs;
        +		}
        +
        +		/* No improvement in allotted period, so quit */
        +		if(i >= stagnation && i >= min_epochs)
        +		{
        +#ifdef CASCADE_DEBUG
        +			printf("Stagnation with %d epochs, best candidate score %f, real score: %f\n", i + 1,
        +				   ann->MSE_value - best_cand_score, best_cand_score);
        +#endif
        +			return i + 1;
        +		}
        +	}
        +
        +#ifdef CASCADE_DEBUG
        +	printf("Max epochs %d reached, best candidate score %f, real score: %f\n", max_epochs,
        +		   ann->MSE_value - best_cand_score, best_cand_score);
        +#endif
        +	return max_epochs;
        +}
        +
        +void fann_update_candidate_slopes(struct fann *ann)
        +{
        +	struct fann_neuron *neurons = ann->first_layer->first_neuron;
        +	struct fann_neuron *first_cand = neurons + ann->total_neurons + 1;
        +	struct fann_neuron *last_cand = first_cand + fann_get_cascade_num_candidates(ann);
        +	struct fann_neuron *cand_it;
        +	unsigned int i, j, num_connections;
        +	unsigned int num_output = ann->num_output;
        +	fann_type max_sum, cand_sum, activation, derived, error_value, diff, cand_score;
        +	fann_type *weights, *cand_out_weights, *cand_slopes, *cand_out_slopes;
        +	fann_type *output_train_errors = ann->train_errors + (ann->total_neurons - ann->num_output);
        +
        +	for(cand_it = first_cand; cand_it < last_cand; cand_it++)
        +	{
        +		cand_score = ann->cascade_candidate_scores[cand_it - first_cand];
        +		error_value = 0.0;
        +
        +		/* code more or less stolen from fann_run to fast forward pass
        +		 */
        +		cand_sum = 0.0;
        +		num_connections = cand_it->last_con - cand_it->first_con;
        +		weights = ann->weights + cand_it->first_con;
        +
        +		/* unrolled loop start */
        +		i = num_connections & 3;	/* same as modulo 4 */
        +		switch (i)
        +		{
        +			case 3:
        +				cand_sum += weights[2] * neurons[2].value;
        +			case 2:
        +				cand_sum += weights[1] * neurons[1].value;
        +			case 1:
        +				cand_sum += weights[0] * neurons[0].value;
        +			case 0:
        +				break;
        +		}
        +
        +		for(; i != num_connections; i += 4)
        +		{
        +			cand_sum +=
        +				weights[i] * neurons[i].value +
        +				weights[i + 1] * neurons[i + 1].value +
        +				weights[i + 2] * neurons[i + 2].value + weights[i + 3] * neurons[i + 3].value;
        +		}
        +		/*
        +		 * for(i = 0; i < num_connections; i++){
        +		 * cand_sum += weights[i] * neurons[i].value;
        +		 * }
        +		 */
        +		/* unrolled loop end */
        +
        +		max_sum = 150/cand_it->activation_steepness;
        +		if(cand_sum > max_sum)
        +			cand_sum = max_sum;
        +		else if(cand_sum < -max_sum)
        +			cand_sum = -max_sum;
        +		
        +		activation =
        +			fann_activation(ann, cand_it->activation_function, cand_it->activation_steepness,
        +							cand_sum);
        +		/* printf("%f = sigmoid(%f);\n", activation, cand_sum); */
        +
        +		cand_it->sum = cand_sum;
        +		cand_it->value = activation;
        +
        +		derived = fann_activation_derived(cand_it->activation_function,
        +										  cand_it->activation_steepness, activation, cand_sum);
        +
        +		/* The output weights is located right after the input weights in
        +		 * the weight array.
        +		 */
        +		cand_out_weights = weights + num_connections;
        +
        +		cand_out_slopes = ann->train_slopes + cand_it->first_con + num_connections;
        +		for(j = 0; j < num_output; j++)
        +		{
        +			diff = (activation * cand_out_weights[j]) - output_train_errors[j];
        +#ifdef CASCADE_DEBUG_FULL
        +			/* printf("diff = %f = (%f * %f) - %f;\n", diff, activation, cand_out_weights[j], output_train_errors[j]); */
        +#endif
        +			cand_out_slopes[j] -= 2.0f * diff * activation;
        +#ifdef CASCADE_DEBUG_FULL
        +			/* printf("cand_out_slopes[%d] <= %f += %f * %f;\n", j, cand_out_slopes[j], diff, activation); */
        +#endif
        +			error_value += diff * cand_out_weights[j];
        +			cand_score -= (diff * diff);
        +#ifdef CASCADE_DEBUG_FULL
        +			/* printf("cand_score[%d][%d] = %f -= (%f * %f)\n", cand_it - first_cand, j, cand_score, diff, diff); */
        +
        +			printf("cand[%d]: error=%f, activation=%f, diff=%f, slope=%f\n", cand_it - first_cand,
        +				   output_train_errors[j], (activation * cand_out_weights[j]), diff,
        +				   -2.0 * diff * activation);
        +#endif
        +		}
        +
        +		ann->cascade_candidate_scores[cand_it - first_cand] = cand_score;
        +		error_value *= derived;
        +
        +		cand_slopes = ann->train_slopes + cand_it->first_con;
        +		for(i = 0; i < num_connections; i++)
        +		{
        +			cand_slopes[i] -= error_value * neurons[i].value;
        +		}
        +	}
        +}
        +
        +void fann_update_candidate_weights(struct fann *ann, unsigned int num_data)
        +{
        +	struct fann_neuron *first_cand = (ann->last_layer - 1)->last_neuron + 1;	/* there is an empty neuron between the actual neurons and the candidate neuron */
        +	struct fann_neuron *last_cand = first_cand + fann_get_cascade_num_candidates(ann) - 1;
        +
        +	switch (ann->training_algorithm)
        +	{
        +		case FANN_TRAIN_RPROP:
        +			fann_update_weights_irpropm(ann, first_cand->first_con,
        +										last_cand->last_con + ann->num_output);
        +			break;
        +		case FANN_TRAIN_SARPROP:
        +			/* TODO: increase epoch? */
        +			fann_update_weights_sarprop(ann, ann->sarprop_epoch, first_cand->first_con,
        +										last_cand->last_con + ann->num_output);
        +			break;
        +		case FANN_TRAIN_QUICKPROP:
        +			fann_update_weights_quickprop(ann, num_data, first_cand->first_con,
        +										  last_cand->last_con + ann->num_output);
        +			break;
        +		case FANN_TRAIN_BATCH:
        +		case FANN_TRAIN_INCREMENTAL:
        +			fann_error((struct fann_error *) ann, FANN_E_CANT_USE_TRAIN_ALG);
        +			break;
        +	}
        +}
        +
        +fann_type fann_train_candidates_epoch(struct fann *ann, struct fann_train_data *data)
        +{
        +	unsigned int i, j;
        +	unsigned int best_candidate;
        +	fann_type best_score;
        +	unsigned int num_cand = fann_get_cascade_num_candidates(ann);
        +	fann_type *output_train_errors = ann->train_errors + (ann->total_neurons - ann->num_output);
        +	struct fann_neuron *output_neurons = (ann->last_layer - 1)->first_neuron;
        +
        +	for(i = 0; i < num_cand; i++)
        +	{
        +		/* The ann->MSE_value is actually the sum squared error */
        +		ann->cascade_candidate_scores[i] = ann->MSE_value;
        +	}
        +	/*printf("start score: %f\n", ann->MSE_value); */
        +
        +	for(i = 0; i < data->num_data; i++)
        +	{
        +		fann_run(ann, data->input[i]);
        +
        +		for(j = 0; j < ann->num_output; j++)
        +		{
        +			/* TODO only debug, but the error is in opposite direction, this might be usefull info */
        +			/*          if(output_train_errors[j] != (ann->output[j] - data->output[i][j])){
        +			 * printf("difference in calculated error at %f != %f; %f = %f - %f;\n", output_train_errors[j], (ann->output[j] - data->output[i][j]), output_train_errors[j], ann->output[j], data->output[i][j]);
        +			 * } */
        +
        +			/*
        +			 * output_train_errors[j] = (data->output[i][j] - ann->output[j])/2;
        +			 * output_train_errors[j] = ann->output[j] - data->output[i][j];
        +			 */
        +
        +			output_train_errors[j] = (data->output[i][j] - ann->output[j]);
        +
        +			switch (output_neurons[j].activation_function)
        +			{
        +				case FANN_LINEAR_PIECE_SYMMETRIC:
        +				case FANN_SIGMOID_SYMMETRIC:
        +				case FANN_SIGMOID_SYMMETRIC_STEPWISE:
        +				case FANN_THRESHOLD_SYMMETRIC:
        +				case FANN_ELLIOT_SYMMETRIC:
        +				case FANN_GAUSSIAN_SYMMETRIC:
        +				case FANN_SIN_SYMMETRIC:
        +				case FANN_COS_SYMMETRIC:
        +					output_train_errors[j] /= 2.0;
        +					break;
        +				case FANN_LINEAR:
        +				case FANN_THRESHOLD:
        +				case FANN_SIGMOID:
        +				case FANN_SIGMOID_STEPWISE:
        +				case FANN_GAUSSIAN:
        +				case FANN_GAUSSIAN_STEPWISE:
        +				case FANN_ELLIOT:
        +				case FANN_LINEAR_PIECE:
        +				case FANN_SIN:
        +				case FANN_COS:
        +					break;
        +			}
        +		}
        +
        +		fann_update_candidate_slopes(ann);
        +	}
        +
        +	fann_update_candidate_weights(ann, data->num_data);
        +
        +	/* find the best candidate score */
        +	best_candidate = 0;
        +	best_score = ann->cascade_candidate_scores[best_candidate];
        +	for(i = 1; i < num_cand; i++)
        +	{
        +		/*struct fann_neuron *cand = ann->first_layer->first_neuron + ann->total_neurons + 1 + i;
        +		 * printf("candidate[%d] = activation: %s, steepness: %f, score: %f\n", 
        +		 * i, FANN_ACTIVATIONFUNC_NAMES[cand->activation_function], 
        +		 * cand->activation_steepness, ann->cascade_candidate_scores[i]); */
        +
        +		if(ann->cascade_candidate_scores[i] > best_score)
        +		{
        +			best_candidate = i;
        +			best_score = ann->cascade_candidate_scores[best_candidate];
        +		}
        +	}
        +
        +	ann->cascade_best_candidate = ann->total_neurons + best_candidate + 1;
        +#ifdef CASCADE_DEBUG
        +	printf("Best candidate[%d]: with score %f, real score: %f\n", best_candidate,
        +		   ann->MSE_value - best_score, best_score);
        +#endif
        +
        +	return best_score;
        +}
        +
        +/* add a layer at the position pointed to by *layer */
        +struct fann_layer *fann_add_layer(struct fann *ann, struct fann_layer *layer)
        +{
        +	int layer_pos = (int)(layer - ann->first_layer);
        +	int num_layers = (int)(ann->last_layer - ann->first_layer + 1);
        +	int i;
        +
        +	/* allocate the layer */
        +	struct fann_layer *layers =
        +		(struct fann_layer *) realloc(ann->first_layer, num_layers * sizeof(struct fann_layer));
        +	if(layers == NULL)
        +	{
        +		fann_error((struct fann_error *) ann, FANN_E_CANT_ALLOCATE_MEM);
        +		return NULL;
        +	}
        +
        +	/* copy layers so that the free space is at the right location */
        +	for(i = num_layers - 1; i >= layer_pos; i--)
        +	{
        +		layers[i] = layers[i - 1];
        +	}
        +
        +	/* the newly allocated layer is empty */
        +	layers[layer_pos].first_neuron = layers[layer_pos + 1].first_neuron;
        +	layers[layer_pos].last_neuron = layers[layer_pos + 1].first_neuron;
        +
        +	/* Set the ann pointers correctly */
        +	ann->first_layer = layers;
        +	ann->last_layer = layers + num_layers;
        +
        +#ifdef CASCADE_DEBUG_FULL
        +	printf("add layer at pos %d\n", layer_pos);
        +#endif
        +
        +	return layers + layer_pos;
        +}
        +
        +void fann_set_shortcut_connections(struct fann *ann)
        +{
        +	struct fann_layer *layer_it;
        +	struct fann_neuron *neuron_it, **neuron_pointers, *neurons;
        +	unsigned int num_connections = 0, i;
        +
        +	neuron_pointers = ann->connections;
        +	neurons = ann->first_layer->first_neuron;
        +
        +	for(layer_it = ann->first_layer + 1; layer_it != ann->last_layer; layer_it++)
        +	{
        +		for(neuron_it = layer_it->first_neuron; neuron_it != layer_it->last_neuron; neuron_it++)
        +		{
        +
        +			neuron_pointers += num_connections;
        +			num_connections = neuron_it->last_con - neuron_it->first_con;
        +
        +			for(i = 0; i != num_connections; i++)
        +			{
        +				neuron_pointers[i] = neurons + i;
        +			}
        +		}
        +	}
        +}
        +
        +void fann_add_candidate_neuron(struct fann *ann, struct fann_layer *layer)
        +{
        +	unsigned int num_connections_in = (unsigned int)(layer->first_neuron - ann->first_layer->first_neuron);
        +	unsigned int num_connections_out = (unsigned int)((ann->last_layer - 1)->last_neuron - (layer + 1)->first_neuron);
        +	unsigned int num_connections_move = num_connections_out + num_connections_in;
        +
        +	unsigned int candidate_con, candidate_output_weight;
        +	int i;
        +
        +	struct fann_layer *layer_it;
        +	struct fann_neuron *neuron_it, *neuron_place, *candidate;
        +
        +	/* We know that there is enough room for the new neuron
        +	 * (the candidates are in the same arrays), so move
        +	 * the last neurons to make room for this neuron.
        +	 */
        +
        +	/* first move the pointers to neurons in the layer structs */
        +	for(layer_it = ann->last_layer - 1; layer_it != layer; layer_it--)
        +	{
        +#ifdef CASCADE_DEBUG_FULL
        +		printf("move neuron pointers in layer %d, first(%d -> %d), last(%d -> %d)\n",
        +			   layer_it - ann->first_layer,
        +			   layer_it->first_neuron - ann->first_layer->first_neuron,
        +			   layer_it->first_neuron - ann->first_layer->first_neuron + 1,
        +			   layer_it->last_neuron - ann->first_layer->first_neuron,
        +			   layer_it->last_neuron - ann->first_layer->first_neuron + 1);
        +#endif
        +		layer_it->first_neuron++;
        +		layer_it->last_neuron++;
        +	}
        +
        +	/* also move the last neuron in the layer that needs the neuron added */
        +	layer->last_neuron++;
        +
        +	/* this is the place that should hold the new neuron */
        +	neuron_place = layer->last_neuron - 1;
        +
        +#ifdef CASCADE_DEBUG_FULL
        +	printf("num_connections_in=%d, num_connections_out=%d\n", num_connections_in,
        +		   num_connections_out);
        +#endif
        +
        +	candidate = ann->first_layer->first_neuron + ann->cascade_best_candidate;
        +
        +	/* the output weights for the candidates are located after the input weights */
        +	candidate_output_weight = candidate->last_con;
        +
        +	/* move the actual output neurons and the indexes to the connection arrays */
        +	for(neuron_it = (ann->last_layer - 1)->last_neuron - 1; neuron_it != neuron_place; neuron_it--)
        +	{
        +#ifdef CASCADE_DEBUG_FULL
        +		printf("move neuron %d -> %d\n", neuron_it - ann->first_layer->first_neuron - 1,
        +			   neuron_it - ann->first_layer->first_neuron);
        +#endif
        +		*neuron_it = *(neuron_it - 1);
        +
        +		/* move the weights */
        +#ifdef CASCADE_DEBUG_FULL
        +		printf("move weight[%d ... %d] -> weight[%d ... %d]\n", neuron_it->first_con,
        +			   neuron_it->last_con - 1, neuron_it->first_con + num_connections_move - 1,
        +			   neuron_it->last_con + num_connections_move - 2);
        +#endif
        +		for(i = neuron_it->last_con - 1; i >= (int)neuron_it->first_con; i--)
        +		{
        +#ifdef CASCADE_DEBUG_FULL
        +			printf("move weight[%d] = weight[%d]\n", i + num_connections_move - 1, i);
        +#endif
        +			ann->weights[i + num_connections_move - 1] = ann->weights[i];
        +		}
        +
        +		/* move the indexes to weights */
        +		neuron_it->last_con += num_connections_move;
        +		num_connections_move--;
        +		neuron_it->first_con += num_connections_move;
        +
        +		/* set the new weight to the newly allocated neuron */
        +		ann->weights[neuron_it->last_con - 1] =
        +			(ann->weights[candidate_output_weight]) * ann->cascade_weight_multiplier;
        +		candidate_output_weight++;
        +	}
        +
        +	/* Now inititalize the actual neuron */
        +	neuron_place->value = 0;
        +	neuron_place->sum = 0;
        +	neuron_place->activation_function = candidate->activation_function;
        +	neuron_place->activation_steepness = candidate->activation_steepness;
        +	neuron_place->last_con = (neuron_place + 1)->first_con;
        +	neuron_place->first_con = neuron_place->last_con - num_connections_in;
        +#ifdef CASCADE_DEBUG_FULL
        +	printf("neuron[%d] = weights[%d ... %d] activation: %s, steepness: %f\n",
        +		   neuron_place - ann->first_layer->first_neuron, neuron_place->first_con,
        +		   neuron_place->last_con - 1, FANN_ACTIVATIONFUNC_NAMES[neuron_place->activation_function],
        +		   neuron_place->activation_steepness);/* TODO remove */
        +#endif
        +
        +	candidate_con = candidate->first_con;
        +	/* initialize the input weights at random */
        +#ifdef CASCADE_DEBUG_FULL
        +	printf("move cand weights[%d ... %d] -> [%d ... %d]\n", candidate_con,
        +		   candidate_con + num_connections_in - 1, neuron_place->first_con,
        +		   neuron_place->last_con - 1);
        +#endif
        +
        +	for(i = 0; i < (int)num_connections_in; i++)
        +	{
        +		ann->weights[i + neuron_place->first_con] = ann->weights[i + candidate_con];
        +#ifdef CASCADE_DEBUG_FULL
        +		printf("move weights[%d] -> weights[%d] (%f)\n", i + candidate_con,
        +			   i + neuron_place->first_con, ann->weights[i + neuron_place->first_con]);
        +#endif
        +	}
        +
        +	/* Change some of main variables */
        +	ann->total_neurons++;
        +	ann->total_connections += num_connections_in + num_connections_out;
        +
        +	return;
        +}
        +
        +void fann_install_candidate(struct fann *ann)
        +{
        +	struct fann_layer *layer;
        +
        +	layer = fann_add_layer(ann, ann->last_layer - 1);
        +	fann_add_candidate_neuron(ann, layer);
        +	return;
        +}
        +
        +#endif /* FIXEDFANN */
        +
        +FANN_EXTERNAL unsigned int FANN_API fann_get_cascade_num_candidates(struct fann *ann)
        +{
        +	return ann->cascade_activation_functions_count *
        +		ann->cascade_activation_steepnesses_count *
        +		ann->cascade_num_candidate_groups;
        +}
        +
        +FANN_GET_SET(float, cascade_output_change_fraction)
        +FANN_GET_SET(unsigned int, cascade_output_stagnation_epochs)
        +FANN_GET_SET(float, cascade_candidate_change_fraction)
        +FANN_GET_SET(unsigned int, cascade_candidate_stagnation_epochs)
        +FANN_GET_SET(unsigned int, cascade_num_candidate_groups)
        +FANN_GET_SET(fann_type, cascade_weight_multiplier)
        +FANN_GET_SET(fann_type, cascade_candidate_limit)
        +FANN_GET_SET(unsigned int, cascade_max_out_epochs)
        +FANN_GET_SET(unsigned int, cascade_max_cand_epochs)
        +FANN_GET_SET(unsigned int, cascade_min_out_epochs)
        +FANN_GET_SET(unsigned int, cascade_min_cand_epochs)
        +
        +FANN_GET(unsigned int, cascade_activation_functions_count)
        +FANN_GET(enum fann_activationfunc_enum *, cascade_activation_functions)
        +
        +FANN_EXTERNAL void FANN_API fann_set_cascade_activation_functions(struct fann *ann,
        +														 enum fann_activationfunc_enum *
        +														 cascade_activation_functions,
        +														 unsigned int 
        +														 cascade_activation_functions_count)
        +{
        +	if(ann->cascade_activation_functions_count != cascade_activation_functions_count)
        +	{
        +		ann->cascade_activation_functions_count = cascade_activation_functions_count;
        +		
        +		/* reallocate mem */
        +		ann->cascade_activation_functions = 
        +			(enum fann_activationfunc_enum *)realloc(ann->cascade_activation_functions, 
        +			ann->cascade_activation_functions_count * sizeof(enum fann_activationfunc_enum));
        +		if(ann->cascade_activation_functions == NULL)
        +		{
        +			fann_error((struct fann_error*)ann, FANN_E_CANT_ALLOCATE_MEM);
        +			return;
        +		}
        +	}
        +	
        +	memmove(ann->cascade_activation_functions, cascade_activation_functions, 
        +		ann->cascade_activation_functions_count * sizeof(enum fann_activationfunc_enum));
        +}
        +
        +FANN_GET(unsigned int, cascade_activation_steepnesses_count)
        +FANN_GET(fann_type *, cascade_activation_steepnesses)
        +
        +FANN_EXTERNAL void FANN_API fann_set_cascade_activation_steepnesses(struct fann *ann,
        +														   fann_type *
        +														   cascade_activation_steepnesses,
        +														   unsigned int 
        +														   cascade_activation_steepnesses_count)
        +{
        +	if(ann->cascade_activation_steepnesses_count != cascade_activation_steepnesses_count)
        +	{
        +		ann->cascade_activation_steepnesses_count = cascade_activation_steepnesses_count;
        +		
        +		/* reallocate mem */
        +		ann->cascade_activation_steepnesses = 
        +			(fann_type *)realloc(ann->cascade_activation_steepnesses, 
        +			ann->cascade_activation_steepnesses_count * sizeof(fann_type));
        +		if(ann->cascade_activation_steepnesses == NULL)
        +		{
        +			fann_error((struct fann_error*)ann, FANN_E_CANT_ALLOCATE_MEM);
        +			return;
        +		}
        +	}
        +	
        +	memmove(ann->cascade_activation_steepnesses, cascade_activation_steepnesses, 
        +		ann->cascade_activation_steepnesses_count * sizeof(fann_type));
        +}
        diff --git a/lib/ann/fann/src/fann_error.c b/lib/ann/fann/src/fann_error.c
        new file mode 100644
        index 0000000..558cace
        --- /dev/null
        +++ b/lib/ann/fann/src/fann_error.c
        @@ -0,0 +1,227 @@
        +/*
        +  Fast Artificial Neural Network Library (fann)
        +  Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com)
        +  
        +  This library is free software; you can redistribute it and/or
        +  modify it under the terms of the GNU Lesser General Public
        +  License as published by the Free Software Foundation; either
        +  version 2.1 of the License, or (at your option) any later version.
        +  
        +  This library is distributed in the hope that it will be useful,
        +  but WITHOUT ANY WARRANTY; without even the implied warranty of
        +  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
        +  Lesser General Public License for more details.
        +  
        +  You should have received a copy of the GNU Lesser General Public
        +  License along with this library; if not, write to the Free Software
        +  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        +*/
        +
        +#include <stdio.h>
        +#include <stdlib.h>
        +#include <stdarg.h>
        +#include <string.h>
        +#include <limits.h>
        +
        +#include "config.h"
        +#include "fann.h"
        +
        +#ifdef _MSC_VER
        +#define vsnprintf _vsnprintf
        +#define snprintf _snprintf
        +#endif
        +
        +/* define path max if not defined */
        +#if defined(_WIN32) && !defined(__MINGW32__)
        +#define PATH_MAX _MAX_PATH
        +#endif
        +#ifndef PATH_MAX
        +#ifdef _POSIX_PATH_MAX
        +#define PATH_MAX _POSIX_PATH_MAX
        +#else
        +#define PATH_MAX 4096
        +#endif
        +#endif
        +
        +FANN_EXTERNAL FILE * FANN_API fann_default_error_log = (FILE *)-1;
        +
        +/* resets the last error number
        + */
        +FANN_EXTERNAL void FANN_API fann_reset_errno(struct fann_error *errdat)
        +{
        +	errdat->errno_f = FANN_E_NO_ERROR;
        +}
        +
        +/* resets the last errstr
        + */
        +FANN_EXTERNAL void FANN_API fann_reset_errstr(struct fann_error *errdat)
        +{
        +	if(errdat->errstr != NULL)
        +		free(errdat->errstr);
        +	errdat->errstr = NULL;
        +}
        +
        +/* returns the last error number
        + */
        +FANN_EXTERNAL enum fann_errno_enum FANN_API fann_get_errno(struct fann_error *errdat)
        +{
        +	return errdat->errno_f;
        +}
        +
        +/* returns the last errstr
        + */
        +FANN_EXTERNAL char *FANN_API fann_get_errstr(struct fann_error *errdat)
        +{
        +	char *errstr = errdat->errstr;
        +
        +	fann_reset_errno(errdat);
        +	fann_reset_errstr(errdat);
        +
        +	return errstr;
        +}
        +
        +/* change where errors are logged to
        + */
        +FANN_EXTERNAL void FANN_API fann_set_error_log(struct fann_error *errdat, FILE * log_file)
        +{
        +	if(errdat == NULL)
        +		fann_default_error_log = log_file;
        +	else
        +		errdat->error_log = log_file;
        +}
        +
        +/* prints the last error to stderr
        + */
        +FANN_EXTERNAL void FANN_API fann_print_error(struct fann_error *errdat)
        +{
        +	if(errdat->errno_f != FANN_E_NO_ERROR && errdat->errstr != NULL)
        +	{
        +		fprintf(stderr, "FANN Error %d: %s", errdat->errno_f, errdat->errstr);
        +	}
        +}
        +
        +/* INTERNAL FUNCTION
        +   Populate the error information
        + */
        +void fann_error(struct fann_error *errdat, const enum fann_errno_enum errno_f, ...)
        +{
        +	va_list ap;
        +	size_t errstr_max = FANN_ERRSTR_MAX + PATH_MAX - 1;
        +	char errstr[FANN_ERRSTR_MAX + PATH_MAX];
        +	FILE * error_log = fann_default_error_log;
        +
        +	if(errdat != NULL)
        +		errdat->errno_f = errno_f;
        +
        +	va_start(ap, errno_f);
        +	switch (errno_f)
        +	{
        +	case FANN_E_NO_ERROR:
        +		return;
        +	case FANN_E_CANT_OPEN_CONFIG_R:
        +		vsnprintf(errstr, errstr_max, "Unable to open configuration file \"%s\" for reading.\n", ap);
        +		break;
        +	case FANN_E_CANT_OPEN_CONFIG_W:
        +		vsnprintf(errstr, errstr_max, "Unable to open configuration file \"%s\" for writing.\n", ap);
        +		break;
        +	case FANN_E_WRONG_CONFIG_VERSION:
        +		vsnprintf(errstr, errstr_max,
        +				 "Wrong version of configuration file, aborting read of configuration file \"%s\".\n",
        +				 ap);
        +		break;
        +	case FANN_E_CANT_READ_CONFIG:
        +		vsnprintf(errstr, errstr_max, "Error reading \"%s\" from configuration file \"%s\".\n", ap);
        +		break;
        +	case FANN_E_CANT_READ_NEURON:
        +		vsnprintf(errstr, errstr_max, "Error reading neuron info from configuration file \"%s\".\n", ap);
        +		break;
        +	case FANN_E_CANT_READ_CONNECTIONS:
        +		vsnprintf(errstr, errstr_max, "Error reading connections from configuration file \"%s\".\n", ap);
        +		break;
        +	case FANN_E_WRONG_NUM_CONNECTIONS:
        +		vsnprintf(errstr, errstr_max, "ERROR connections_so_far=%d, total_connections=%d\n", ap);
        +		break;
        +	case FANN_E_CANT_OPEN_TD_W:
        +		vsnprintf(errstr, errstr_max, "Unable to open train data file \"%s\" for writing.\n", ap);
        +		break;
        +	case FANN_E_CANT_OPEN_TD_R:
        +		vsnprintf(errstr, errstr_max, "Unable to open train data file \"%s\" for writing.\n", ap);
        +		break;
        +	case FANN_E_CANT_READ_TD:
        +		vsnprintf(errstr, errstr_max, "Error reading info from train data file \"%s\", line: %d.\n", ap);
        +		break;
        +	case FANN_E_CANT_ALLOCATE_MEM:
        +		strcpy(errstr, "Unable to allocate memory.\n");
        +		break;
        +	case FANN_E_CANT_TRAIN_ACTIVATION:
        +		strcpy(errstr, "Unable to train with the selected activation function.\n");
        +		break;
        +	case FANN_E_CANT_USE_ACTIVATION:
        +		strcpy(errstr, "Unable to use the selected activation function.\n");
        +		break;
        +	case FANN_E_TRAIN_DATA_MISMATCH:
        +		strcpy(errstr, "Training data must be of equivalent structure.\n");
        +		break;
        +	case FANN_E_CANT_USE_TRAIN_ALG:
        +		strcpy(errstr, "Unable to use the selected training algorithm.\n");
        +		break;
        +	case FANN_E_TRAIN_DATA_SUBSET:
        +		vsnprintf(errstr, errstr_max, "Subset from %d of length %d not valid in training set of length %d.\n", ap);
        +		break;
        +	case FANN_E_INDEX_OUT_OF_BOUND:
        +		vsnprintf(errstr, errstr_max, "Index %d is out of bound.\n", ap);
        +		break;
        +	case FANN_E_SCALE_NOT_PRESENT: 
        +		strcpy(errstr, "Scaling parameters not present.\n");
        +		break;
        +    case FANN_E_INPUT_NO_MATCH:
        +		vsnprintf(errstr, errstr_max, "The number of input neurons in the ann (%d) and data (%d) don't match\n", ap);
        +    	break;
        +    case FANN_E_OUTPUT_NO_MATCH:
        +		vsnprintf(errstr, errstr_max, "The number of output neurons in the ann (%d) and data (%d) don't match\n", ap);
        +     	break; 
        +	case FANN_E_WRONG_PARAMETERS_FOR_CREATE: 
        +		strcpy(errstr, "The parameters for create_standard are wrong, either too few parameters provided or a negative/very high value provided.\n");
        +		break;
        +	}
        +	va_end(ap);
        +
        +	if(errdat != NULL)
        +	{
        +		if(errdat->errstr == NULL)
        +		{
        +			errdat->errstr = (char*)malloc(strlen(errstr) + 1);
        +		}
        +		else if(strlen(errdat->errstr) < strlen(errstr))
        +		{
        +			errdat->errstr = (char*)realloc(errdat->errstr, strlen(errstr) + 1);
        +		}
        +		/* allocation failed */
        +		if(errdat->errstr == NULL)
        +		{
        +			fprintf(stderr, "Unable to allocate memory.\n");
        +			return;
        +		}
        +		strcpy(errdat->errstr, errstr);
        +		error_log = errdat->error_log;
        +	}
        +
        +	if(error_log == (FILE *)-1) /* This is the default behavior and will give stderr */
        +	{
        +		fprintf(stderr, "FANN Error %d: %s", errno_f, errstr);
        +	}
        +	else if(error_log != NULL)
        +	{
        +		fprintf(error_log, "FANN Error %d: %s", errno_f, errstr);
        +	}
        +}
        +
        +/* INTERNAL FUNCTION
        +   Initialize an error data strcuture
        + */
        +void fann_init_error_data(struct fann_error *errdat)
        +{
        +	errdat->errstr = NULL;
        +	errdat->errno_f = FANN_E_NO_ERROR;
        +	errdat->error_log = fann_default_error_log;
        +}
        diff --git a/lib/ann/fann/src/fann_io.c b/lib/ann/fann/src/fann_io.c
        new file mode 100644
        index 0000000..f17667b
        --- /dev/null
        +++ b/lib/ann/fann/src/fann_io.c
        @@ -0,0 +1,803 @@
        +/*
        +  Fast Artificial Neural Network Library (fann)
        +  Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com)
        +  
        +  This library is free software; you can redistribute it and/or
        +  modify it under the terms of the GNU Lesser General Public
        +  License as published by the Free Software Foundation; either
        +  version 2.1 of the License, or (at your option) any later version.
        +  
        +  This library is distributed in the hope that it will be useful,
        +  but WITHOUT ANY WARRANTY; without even the implied warranty of
        +  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
        +  Lesser General Public License for more details.
        +  
        +  You should have received a copy of the GNU Lesser General Public
        +  License along with this library; if not, write to the Free Software
        +  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        +*/
        +
        +#include <stdio.h>
        +#include <stdlib.h>
        +#include <stdarg.h>
        +#include <string.h>
        +
        +#include "config.h"
        +#include "fann.h"
        +#include "fann_data.h"
        +
        +/* Create a network from a configuration file.
        + */
        +FANN_EXTERNAL struct fann *FANN_API fann_create_from_file(const char *configuration_file)
        +{
        +	struct fann *ann;
        +	FILE *conf = fopen(configuration_file, "r");
        +
        +	if(!conf)
        +	{
        +		fann_error(NULL, FANN_E_CANT_OPEN_CONFIG_R, configuration_file);
        +		return NULL;
        +	}
        +	ann = fann_create_from_fd(conf, configuration_file);
        +	fclose(conf);
        +	return ann;
        +}
        +
        +/* Save the network.
        + */
        +FANN_EXTERNAL int FANN_API fann_save(struct fann *ann, const char *configuration_file)
        +{
        +	return fann_save_internal(ann, configuration_file, 0);
        +}
        +
        +/* Save the network as fixed point data.
        + */
        +FANN_EXTERNAL int FANN_API fann_save_to_fixed(struct fann *ann, const char *configuration_file)
        +{
        +	return fann_save_internal(ann, configuration_file, 1);
        +}
        +
        +/* INTERNAL FUNCTION
        +   Used to save the network to a file.
        + */
        +int fann_save_internal(struct fann *ann, const char *configuration_file, unsigned int save_as_fixed)
        +{
        +	int retval;
        +	FILE *conf = fopen(configuration_file, "w+");
        +
        +	if(!conf)
        +	{
        +		fann_error((struct fann_error *) ann, FANN_E_CANT_OPEN_CONFIG_W, configuration_file);
        +		return -1;
        +	}
        +	retval = fann_save_internal_fd(ann, conf, configuration_file, save_as_fixed);
        +	fclose(conf);
        +	return retval;
        +}
        +
        +/* INTERNAL FUNCTION
        +   Used to save the network to a file descriptor.
        + */
        +int fann_save_internal_fd(struct fann *ann, FILE * conf, const char *configuration_file,
        +						  unsigned int save_as_fixed)
        +{
        +	struct fann_layer *layer_it;
        +	int calculated_decimal_point = 0;
        +	struct fann_neuron *neuron_it, *first_neuron;
        +	fann_type *weights;
        +	struct fann_neuron **connected_neurons;
        +	unsigned int i = 0;
        +
        +#ifndef FIXEDFANN
        +	/* variabels for use when saving floats as fixed point variabels */
        +	unsigned int decimal_point = 0;
        +	unsigned int fixed_multiplier = 0;
        +	fann_type max_possible_value = 0;
        +	unsigned int bits_used_for_max = 0;
        +	fann_type current_max_value = 0;
        +#endif
        +
        +#ifndef FIXEDFANN
        +	if(save_as_fixed)
        +	{
        +		/* save the version information */
        +		fprintf(conf, FANN_FIX_VERSION "\n");
        +	}
        +	else
        +	{
        +		/* save the version information */
        +		fprintf(conf, FANN_FLO_VERSION "\n");
        +	}
        +#else
        +	/* save the version information */
        +	fprintf(conf, FANN_FIX_VERSION "\n");
        +#endif
        +
        +#ifndef FIXEDFANN
        +	if(save_as_fixed)
        +	{
        +		/* calculate the maximal possible shift value */
        +
        +		for(layer_it = ann->first_layer + 1; layer_it != ann->last_layer; layer_it++)
        +		{
        +			for(neuron_it = layer_it->first_neuron; neuron_it != layer_it->last_neuron; neuron_it++)
        +			{
        +				/* look at all connections to each neurons, and see how high a value we can get */
        +				current_max_value = 0;
        +				for(i = neuron_it->first_con; i != neuron_it->last_con; i++)
        +				{
        +					current_max_value += fann_abs(ann->weights[i]);
        +				}
        +
        +				if(current_max_value > max_possible_value)
        +				{
        +					max_possible_value = current_max_value;
        +				}
        +			}
        +		}
        +
        +		for(bits_used_for_max = 0; max_possible_value >= 1; bits_used_for_max++)
        +		{
        +			max_possible_value /= 2.0;
        +		}
        +
        +		/* The maximum number of bits we shift the fix point, is the number
        +		 * of bits in a integer, minus one for the sign, one for the minus
        +		 * in stepwise, and minus the bits used for the maximum.
        +		 * This is devided by two, to allow multiplication of two fixed
        +		 * point numbers.
        +		 */
        +		calculated_decimal_point = (sizeof(int) * 8 - 2 - bits_used_for_max) / 2;
        +
        +		if(calculated_decimal_point < 0)
        +		{
        +			decimal_point = 0;
        +		}
        +		else
        +		{
        +			decimal_point = calculated_decimal_point;
        +		}
        +
        +		fixed_multiplier = 1 << decimal_point;
        +
        +#ifdef DEBUG
        +		printf("calculated_decimal_point=%d, decimal_point=%u, bits_used_for_max=%u\n",
        +			   calculated_decimal_point, decimal_point, bits_used_for_max);
        +#endif
        +
        +		/* save the decimal_point on a seperate line */
        +		fprintf(conf, "decimal_point=%u\n", decimal_point);
        +	}
        +#else
        +	/* save the decimal_point on a seperate line */
        +	fprintf(conf, "decimal_point=%u\n", ann->decimal_point);
        +
        +#endif
        +
        +	/* Save network parameters */
        +	fprintf(conf, "num_layers=%d\n", (int)(ann->last_layer - ann->first_layer));
        +	fprintf(conf, "learning_rate=%f\n", ann->learning_rate);
        +	fprintf(conf, "connection_rate=%f\n", ann->connection_rate);
        +	fprintf(conf, "network_type=%u\n", ann->network_type);
        +	
        +	fprintf(conf, "learning_momentum=%f\n", ann->learning_momentum);
        +	fprintf(conf, "training_algorithm=%u\n", ann->training_algorithm);
        +	fprintf(conf, "train_error_function=%u\n", ann->train_error_function);
        +	fprintf(conf, "train_stop_function=%u\n", ann->train_stop_function);
        +	fprintf(conf, "cascade_output_change_fraction=%f\n", ann->cascade_output_change_fraction);
        +	fprintf(conf, "quickprop_decay=%f\n", ann->quickprop_decay);
        +	fprintf(conf, "quickprop_mu=%f\n", ann->quickprop_mu);
        +	fprintf(conf, "rprop_increase_factor=%f\n", ann->rprop_increase_factor);
        +	fprintf(conf, "rprop_decrease_factor=%f\n", ann->rprop_decrease_factor);
        +	fprintf(conf, "rprop_delta_min=%f\n", ann->rprop_delta_min);
        +	fprintf(conf, "rprop_delta_max=%f\n", ann->rprop_delta_max);
        +	fprintf(conf, "rprop_delta_zero=%f\n", ann->rprop_delta_zero);
        +	fprintf(conf, "cascade_output_stagnation_epochs=%u\n", ann->cascade_output_stagnation_epochs);
        +	fprintf(conf, "cascade_candidate_change_fraction=%f\n", ann->cascade_candidate_change_fraction);
        +	fprintf(conf, "cascade_candidate_stagnation_epochs=%u\n", ann->cascade_candidate_stagnation_epochs);
        +	fprintf(conf, "cascade_max_out_epochs=%u\n", ann->cascade_max_out_epochs);
        +	fprintf(conf, "cascade_min_out_epochs=%u\n", ann->cascade_min_out_epochs);
        +	fprintf(conf, "cascade_max_cand_epochs=%u\n", ann->cascade_max_cand_epochs);	
        +	fprintf(conf, "cascade_min_cand_epochs=%u\n", ann->cascade_min_cand_epochs);	
        +	fprintf(conf, "cascade_num_candidate_groups=%u\n", ann->cascade_num_candidate_groups);
        +
        +#ifndef FIXEDFANN
        +	if(save_as_fixed)
        +	{
        +		fprintf(conf, "bit_fail_limit=%u\n", (int) floor((ann->bit_fail_limit * fixed_multiplier) + 0.5));
        +		fprintf(conf, "cascade_candidate_limit=%u\n", (int) floor((ann->cascade_candidate_limit * fixed_multiplier) + 0.5));
        +		fprintf(conf, "cascade_weight_multiplier=%u\n", (int) floor((ann->cascade_weight_multiplier * fixed_multiplier) + 0.5));
        +	}
        +	else
        +#endif	
        +	{
        +		fprintf(conf, "bit_fail_limit="FANNPRINTF"\n", ann->bit_fail_limit);
        +		fprintf(conf, "cascade_candidate_limit="FANNPRINTF"\n", ann->cascade_candidate_limit);
        +		fprintf(conf, "cascade_weight_multiplier="FANNPRINTF"\n", ann->cascade_weight_multiplier);
        +	}
        +
        +	fprintf(conf, "cascade_activation_functions_count=%u\n", ann->cascade_activation_functions_count);
        +	fprintf(conf, "cascade_activation_functions=");
        +	for(i = 0; i < ann->cascade_activation_functions_count; i++)
        +		fprintf(conf, "%u ", ann->cascade_activation_functions[i]);
        +	fprintf(conf, "\n");
        +	
        +	fprintf(conf, "cascade_activation_steepnesses_count=%u\n", ann->cascade_activation_steepnesses_count);
        +	fprintf(conf, "cascade_activation_steepnesses=");
        +	for(i = 0; i < ann->cascade_activation_steepnesses_count; i++)
        +	{
        +#ifndef FIXEDFANN
        +		if(save_as_fixed)
        +			fprintf(conf, "%u ", (int) floor((ann->cascade_activation_steepnesses[i] * fixed_multiplier) + 0.5));
        +		else
        +#endif	
        +			fprintf(conf, FANNPRINTF" ", ann->cascade_activation_steepnesses[i]);
        +	}
        +	fprintf(conf, "\n");
        +
        +	fprintf(conf, "layer_sizes=");
        +	for(layer_it = ann->first_layer; layer_it != ann->last_layer; layer_it++)
        +	{
        +		/* the number of neurons in the layers (in the last layer, there is always one too many neurons, because of an unused bias) */
        +		fprintf(conf, "%d ", (int)(layer_it->last_neuron - layer_it->first_neuron));
        +	}
        +	fprintf(conf, "\n");
        +
        +#ifndef FIXEDFANN
        +	/* 2.1 */
        +	#define SCALE_SAVE( what, where )										\
        +		fprintf( conf, #what "_" #where "=" );								\
        +		for( i = 0; i < ann->num_##where##put; i++ )						\
        +			fprintf( conf, "%f ", ann->what##_##where[ i ] );				\
        +		fprintf( conf, "\n" );
        +
        +	if(!save_as_fixed)
        +	{
        +		if(ann->scale_mean_in != NULL)
        +		{
        +			fprintf(conf, "scale_included=1\n");
        +			SCALE_SAVE( scale_mean,			in )
        +			SCALE_SAVE( scale_deviation,	in )
        +			SCALE_SAVE( scale_new_min,		in )
        +			SCALE_SAVE( scale_factor,		in )
        +		
        +			SCALE_SAVE( scale_mean,			out )
        +			SCALE_SAVE( scale_deviation,	out )
        +			SCALE_SAVE( scale_new_min,		out )
        +			SCALE_SAVE( scale_factor,		out )
        +		}
        +		else
        +			fprintf(conf, "scale_included=0\n");
        +	}
        +#undef SCALE_SAVE
        +#endif	
        +
        +	/* 2.0 */
        +	fprintf(conf, "neurons (num_inputs, activation_function, activation_steepness)=");
        +	for(layer_it = ann->first_layer; layer_it != ann->last_layer; layer_it++)
        +	{
        +		/* the neurons */
        +		for(neuron_it = layer_it->first_neuron; neuron_it != layer_it->last_neuron; neuron_it++)
        +		{
        +#ifndef FIXEDFANN
        +			if(save_as_fixed)
        +			{
        +				fprintf(conf, "(%u, %u, %u) ", neuron_it->last_con - neuron_it->first_con,
        +						neuron_it->activation_function,
        +						(int) floor((neuron_it->activation_steepness * fixed_multiplier) + 0.5));
        +			}
        +			else
        +			{
        +				fprintf(conf, "(%u, %u, " FANNPRINTF ") ", neuron_it->last_con - neuron_it->first_con,
        +						neuron_it->activation_function, neuron_it->activation_steepness);
        +			}
        +#else
        +			fprintf(conf, "(%u, %u, " FANNPRINTF ") ", neuron_it->last_con - neuron_it->first_con,
        +					neuron_it->activation_function, neuron_it->activation_steepness);
        +#endif
        +		}
        +	}
        +	fprintf(conf, "\n");
        +
        +	connected_neurons = ann->connections;
        +	weights = ann->weights;
        +	first_neuron = ann->first_layer->first_neuron;
        +
        +	/* Now save all the connections.
        +	 * We only need to save the source and the weight,
        +	 * since the destination is given by the order.
        +	 * 
        +	 * The weight is not saved binary due to differences
        +	 * in binary definition of floating point numbers.
        +	 * Especially an iPAQ does not use the same binary
        +	 * representation as an i386 machine.
        +	 */
        +	fprintf(conf, "connections (connected_to_neuron, weight)=");
        +	for(i = 0; i < ann->total_connections; i++)
        +	{
        +#ifndef FIXEDFANN
        +		if(save_as_fixed)
        +		{
        +			/* save the connection "(source weight) " */
        +			fprintf(conf, "(%d, %d) ",
        +					(int)(connected_neurons[i] - first_neuron),
        +					(int) floor((weights[i] * fixed_multiplier) + 0.5));
        +		}
        +		else
        +		{
        +			/* save the connection "(source weight) " */
        +			fprintf(conf, "(%d, " FANNPRINTF ") ", (int)(connected_neurons[i] - first_neuron), weights[i]);
        +		}
        +#else
        +		/* save the connection "(source weight) " */
        +		fprintf(conf, "(%d, " FANNPRINTF ") ", (int)(connected_neurons[i] - first_neuron), weights[i]);
        +#endif
        +
        +	}
        +	fprintf(conf, "\n");
        +
        +	return calculated_decimal_point;
        +}
        +
        +struct fann *fann_create_from_fd_1_1(FILE * conf, const char *configuration_file);
        +
        +#define fann_scanf(type, name, val) \
        +{ \
        +	if(fscanf(conf, name"="type"\n", val) != 1) \
        +	{ \
        +		fann_error(NULL, FANN_E_CANT_READ_CONFIG, name, configuration_file); \
        +		fann_destroy(ann); \
        +		return NULL; \
        +	} \
        +}
        +
        +#define fann_skip(name) \
        +{ \
        +	if(fscanf(conf, name) != 0) \
        +	{ \
        +		fann_error(NULL, FANN_E_CANT_READ_CONFIG, name, configuration_file); \
        +		fann_destroy(ann); \
        +		return NULL; \
        +	} \
        +}
        +
        +/* INTERNAL FUNCTION
        +   Create a network from a configuration file descriptor.
        + */
        +struct fann *fann_create_from_fd(FILE * conf, const char *configuration_file)
        +{
        +	unsigned int num_layers, layer_size, input_neuron, i, num_connections;
        +	unsigned int tmpVal;
        +#ifdef FIXEDFANN
        +	unsigned int decimal_point, multiplier;
        +#else
        +	unsigned int scale_included;
        +#endif
        +	struct fann_neuron *first_neuron, *neuron_it, *last_neuron, **connected_neurons;
        +	fann_type *weights;
        +	struct fann_layer *layer_it;
        +	struct fann *ann = NULL;
        +
        +	char *read_version;
        +
        +	read_version = (char *) calloc(strlen(FANN_CONF_VERSION "\n"), 1);
        +	if(read_version == NULL)
        +	{
        +		fann_error(NULL, FANN_E_CANT_ALLOCATE_MEM);
        +		return NULL;
        +	}
        +
        +	if(fread(read_version, 1, strlen(FANN_CONF_VERSION "\n"), conf) == 1)
        +	{
        +	        fann_error(NULL, FANN_E_CANT_READ_CONFIG, "FANN_VERSION", configuration_file);
        +		return NULL;
        +	}
        +
        +	/* compares the version information */
        +	if(strncmp(read_version, FANN_CONF_VERSION "\n", strlen(FANN_CONF_VERSION "\n")) != 0)
        +	{
        +#ifdef FIXEDFANN
        +		if(strncmp(read_version, "FANN_FIX_1.1\n", strlen("FANN_FIX_1.1\n")) == 0)
        +		{
        +#else
        +		if(strncmp(read_version, "FANN_FLO_1.1\n", strlen("FANN_FLO_1.1\n")) == 0)
        +		{
        +#endif
        +			free(read_version);
        +			return fann_create_from_fd_1_1(conf, configuration_file);
        +		}
        +
        +#ifndef FIXEDFANN
        +		/* Maintain compatibility with 2.0 version that doesnt have scale parameters. */
        +		if(strncmp(read_version, "FANN_FLO_2.0\n", strlen("FANN_FLO_2.0\n")) != 0 &&
        +		   strncmp(read_version, "FANN_FLO_2.1\n", strlen("FANN_FLO_2.1\n")) != 0)
        +#else
        +		if(strncmp(read_version, "FANN_FIX_2.0\n", strlen("FANN_FIX_2.0\n")) != 0 &&
        +		   strncmp(read_version, "FANN_FIX_2.1\n", strlen("FANN_FIX_2.1\n")) != 0)
        +#endif
        +		{
        +			free(read_version);
        +			fann_error(NULL, FANN_E_WRONG_CONFIG_VERSION, configuration_file);
        +
        +			return NULL;
        +		}
        +	}
        +
        +	free(read_version);
        +
        +#ifdef FIXEDFANN
        +	fann_scanf("%u", "decimal_point", &decimal_point);
        +	multiplier = 1 << decimal_point;
        +#endif
        +
        +	fann_scanf("%u", "num_layers", &num_layers);
        +
        +	ann = fann_allocate_structure(num_layers);
        +	if(ann == NULL)
        +	{
        +		return NULL;
        +	}
        +
        +	fann_scanf("%f", "learning_rate", &ann->learning_rate);
        +	fann_scanf("%f", "connection_rate", &ann->connection_rate);
        +	fann_scanf("%u", "network_type", &tmpVal);
        +	ann->network_type = (enum fann_nettype_enum)tmpVal;
        +	fann_scanf("%f", "learning_momentum", &ann->learning_momentum);
        +	fann_scanf("%u", "training_algorithm", &tmpVal);
        +	ann->training_algorithm = (enum fann_train_enum)tmpVal;
        +	fann_scanf("%u", "train_error_function", &tmpVal);
        +	ann->train_error_function = (enum fann_errorfunc_enum)tmpVal;
        +	fann_scanf("%u", "train_stop_function", &tmpVal);
        +	ann->train_stop_function = (enum fann_stopfunc_enum)tmpVal;
        +	fann_scanf("%f", "cascade_output_change_fraction", &ann->cascade_output_change_fraction);
        +	fann_scanf("%f", "quickprop_decay", &ann->quickprop_decay);
        +	fann_scanf("%f", "quickprop_mu", &ann->quickprop_mu);
        +	fann_scanf("%f", "rprop_increase_factor", &ann->rprop_increase_factor);
        +	fann_scanf("%f", "rprop_decrease_factor", &ann->rprop_decrease_factor);
        +	fann_scanf("%f", "rprop_delta_min", &ann->rprop_delta_min);
        +	fann_scanf("%f", "rprop_delta_max", &ann->rprop_delta_max);
        +	fann_scanf("%f", "rprop_delta_zero", &ann->rprop_delta_zero);
        +	fann_scanf("%u", "cascade_output_stagnation_epochs", &ann->cascade_output_stagnation_epochs);
        +	fann_scanf("%f", "cascade_candidate_change_fraction", &ann->cascade_candidate_change_fraction);
        +	fann_scanf("%u", "cascade_candidate_stagnation_epochs", &ann->cascade_candidate_stagnation_epochs);
        +	fann_scanf("%u", "cascade_max_out_epochs", &ann->cascade_max_out_epochs);
        +	fann_scanf("%u", "cascade_min_out_epochs", &ann->cascade_min_out_epochs);
        +	fann_scanf("%u", "cascade_max_cand_epochs", &ann->cascade_max_cand_epochs);	
        +	fann_scanf("%u", "cascade_min_cand_epochs", &ann->cascade_min_cand_epochs);	
        +	fann_scanf("%u", "cascade_num_candidate_groups", &ann->cascade_num_candidate_groups);
        +
        +	fann_scanf(FANNSCANF, "bit_fail_limit", &ann->bit_fail_limit);
        +	fann_scanf(FANNSCANF, "cascade_candidate_limit", &ann->cascade_candidate_limit);
        +	fann_scanf(FANNSCANF, "cascade_weight_multiplier", &ann->cascade_weight_multiplier);
        +
        +
        +	fann_scanf("%u", "cascade_activation_functions_count", &ann->cascade_activation_functions_count);
        +
        +	/* reallocate mem */
        +	ann->cascade_activation_functions = 
        +		(enum fann_activationfunc_enum *)realloc(ann->cascade_activation_functions, 
        +		ann->cascade_activation_functions_count * sizeof(enum fann_activationfunc_enum));
        +	if(ann->cascade_activation_functions == NULL)
        +	{
        +		fann_error((struct fann_error*)ann, FANN_E_CANT_ALLOCATE_MEM);
        +		fann_destroy(ann);
        +		return NULL;
        +	}
        +
        +
        +	fann_skip("cascade_activation_functions=");
        +	for(i = 0; i < ann->cascade_activation_functions_count; i++)
        +	{
        +		if(fscanf(conf, "%u ", &tmpVal) != 1)
        +		{
        +			fann_error(NULL, FANN_E_CANT_READ_CONFIG, "cascade_activation_functions", configuration_file);
        +			fann_destroy(ann);
        +			return NULL;
        +		}
        +		ann->cascade_activation_functions[i] = (enum fann_activationfunc_enum)tmpVal;
        +	}
        +
        +	fann_scanf("%u", "cascade_activation_steepnesses_count", &ann->cascade_activation_steepnesses_count);
        +
        +	/* reallocate mem */
        +	ann->cascade_activation_steepnesses = 
        +		(fann_type *)realloc(ann->cascade_activation_steepnesses, 
        +		ann->cascade_activation_steepnesses_count * sizeof(fann_type));
        +	if(ann->cascade_activation_steepnesses == NULL)
        +	{
        +		fann_error((struct fann_error*)ann, FANN_E_CANT_ALLOCATE_MEM);
        +		fann_destroy(ann);
        +		return NULL;
        +	}
        +
        +	fann_skip("cascade_activation_steepnesses=");
        +	for(i = 0; i < ann->cascade_activation_steepnesses_count; i++) 
        +	{
        +		if(fscanf(conf, FANNSCANF" ", &ann->cascade_activation_steepnesses[i]) != 1)
        +		{
        +			fann_error(NULL, FANN_E_CANT_READ_CONFIG, "cascade_activation_steepnesses", configuration_file);
        +			fann_destroy(ann);
        +			return NULL;
        +		}
        +	}
        +
        +#ifdef FIXEDFANN
        +	ann->decimal_point = decimal_point;
        +	ann->multiplier = multiplier;
        +#endif
        +
        +#ifdef FIXEDFANN
        +	fann_update_stepwise(ann);
        +#endif
        +
        +#ifdef DEBUG
        +	printf("creating network with %d layers\n", num_layers);
        +	printf("input\n");
        +#endif
        +
        +	fann_skip("layer_sizes=");
        +	/* determine how many neurons there should be in each layer */
        +	for(layer_it = ann->first_layer; layer_it != ann->last_layer; layer_it++)
        +	{
        +		if(fscanf(conf, "%u ", &layer_size) != 1)
        +		{
        +			fann_error((struct fann_error *) ann, FANN_E_CANT_READ_CONFIG, "layer_sizes", configuration_file);
        +			fann_destroy(ann);
        +			return NULL;
        +		}
        +		/* we do not allocate room here, but we make sure that
        +		 * last_neuron - first_neuron is the number of neurons */
        +		layer_it->first_neuron = NULL;
        +		layer_it->last_neuron = layer_it->first_neuron + layer_size;
        +		ann->total_neurons += layer_size;
        +#ifdef DEBUG
        +		if(ann->network_type == FANN_NETTYPE_SHORTCUT && layer_it != ann->first_layer)
        +		{
        +			printf("  layer       : %d neurons, 0 bias\n", layer_size);
        +		}
        +		else
        +		{
        +			printf("  layer       : %d neurons, 1 bias\n", layer_size - 1);
        +		}
        +#endif
        +	}
        +
        +	ann->num_input = (unsigned int)(ann->first_layer->last_neuron - ann->first_layer->first_neuron - 1);
        +	ann->num_output = (unsigned int)((ann->last_layer - 1)->last_neuron - (ann->last_layer - 1)->first_neuron);
        +	if(ann->network_type == FANN_NETTYPE_LAYER)
        +	{
        +		/* one too many (bias) in the output layer */
        +		ann->num_output--;
        +	}
        +
        +#ifndef FIXEDFANN
        +#define SCALE_LOAD( what, where )											\
        +	fann_skip( #what "_" #where "=" );									\
        +	for(i = 0; i < ann->num_##where##put; i++)								\
        +	{																		\
        +		if(fscanf( conf, "%f ", (float *)&ann->what##_##where[ i ] ) != 1)  \
        +		{																	\
        +			fann_error((struct fann_error *) ann, FANN_E_CANT_READ_CONFIG, #what "_" #where, configuration_file); \
        +			fann_destroy(ann); 												\
        +			return NULL;													\
        +		}																	\
        +	}
        +	
        +	if(fscanf(conf, "scale_included=%u\n", &scale_included) == 1 && scale_included == 1)
        +	{
        +		fann_allocate_scale(ann);
        +		SCALE_LOAD( scale_mean,			in )
        +		SCALE_LOAD( scale_deviation,	in )
        +		SCALE_LOAD( scale_new_min,		in )
        +		SCALE_LOAD( scale_factor,		in )
        +	
        +		SCALE_LOAD( scale_mean,			out )
        +		SCALE_LOAD( scale_deviation,	out )
        +		SCALE_LOAD( scale_new_min,		out )
        +		SCALE_LOAD( scale_factor,		out )
        +	}
        +#undef SCALE_LOAD
        +#endif
        +	
        +	/* allocate room for the actual neurons */
        +	fann_allocate_neurons(ann);
        +	if(ann->errno_f == FANN_E_CANT_ALLOCATE_MEM)
        +	{
        +		fann_destroy(ann);
        +		return NULL;
        +	}
        +
        +	last_neuron = (ann->last_layer - 1)->last_neuron;
        +	fann_skip("neurons (num_inputs, activation_function, activation_steepness)=");
        +	for(neuron_it = ann->first_layer->first_neuron; neuron_it != last_neuron; neuron_it++)
        +	{
        +		if(fscanf
        +		   (conf, "(%u, %u, " FANNSCANF ") ", &num_connections, &tmpVal,
        +			&neuron_it->activation_steepness) != 3)
        +		{
        +			fann_error((struct fann_error *) ann, FANN_E_CANT_READ_NEURON, configuration_file);
        +			fann_destroy(ann);
        +			return NULL;
        +		}
        +		neuron_it->activation_function = (enum fann_activationfunc_enum)tmpVal;
        +		neuron_it->first_con = ann->total_connections;
        +		ann->total_connections += num_connections;
        +		neuron_it->last_con = ann->total_connections;
        +	}
        +
        +	fann_allocate_connections(ann);
        +	if(ann->errno_f == FANN_E_CANT_ALLOCATE_MEM)
        +	{
        +		fann_destroy(ann);
        +		return NULL;
        +	}
        +
        +	connected_neurons = ann->connections;
        +	weights = ann->weights;
        +	first_neuron = ann->first_layer->first_neuron;
        +
        +	fann_skip("connections (connected_to_neuron, weight)=");
        +	for(i = 0; i < ann->total_connections; i++)
        +	{
        +		if(fscanf(conf, "(%u, " FANNSCANF ") ", &input_neuron, &weights[i]) != 2)
        +		{
        +			fann_error((struct fann_error *) ann, FANN_E_CANT_READ_CONNECTIONS, configuration_file);
        +			fann_destroy(ann);
        +			return NULL;
        +		}
        +		connected_neurons[i] = first_neuron + input_neuron;
        +	}
        +
        +#ifdef DEBUG
        +	printf("output\n");
        +#endif
        +	return ann;
        +}
        +
        +
        +/* INTERNAL FUNCTION
        +   Create a network from a configuration file descriptor. (backward compatible read of version 1.1 files)
        + */
        +struct fann *fann_create_from_fd_1_1(FILE * conf, const char *configuration_file)
        +{
        +	unsigned int num_layers, layer_size, input_neuron, i, network_type, num_connections;
        +	unsigned int activation_function_hidden, activation_function_output;
        +#ifdef FIXEDFANN
        +	unsigned int decimal_point, multiplier;
        +#endif
        +	fann_type activation_steepness_hidden, activation_steepness_output;
        +	float learning_rate, connection_rate;
        +	struct fann_neuron *first_neuron, *neuron_it, *last_neuron, **connected_neurons;
        +	fann_type *weights;
        +	struct fann_layer *layer_it;
        +	struct fann *ann;
        +
        +#ifdef FIXEDFANN
        +	if(fscanf(conf, "%u\n", &decimal_point) != 1)
        +	{
        +		fann_error(NULL, FANN_E_CANT_READ_CONFIG, "decimal_point", configuration_file);
        +		return NULL;
        +	}
        +	multiplier = 1 << decimal_point;
        +#endif
        +
        +	if(fscanf(conf, "%u %f %f %u %u %u " FANNSCANF " " FANNSCANF "\n", &num_layers, &learning_rate,
        +		&connection_rate, &network_type, &activation_function_hidden,
        +		&activation_function_output, &activation_steepness_hidden,
        +		&activation_steepness_output) != 8)
        +	{
        +		fann_error(NULL, FANN_E_CANT_READ_CONFIG, "parameters", configuration_file);
        +		return NULL;
        +	}
        +
        +	ann = fann_allocate_structure(num_layers);
        +	if(ann == NULL)
        +	{
        +		return NULL;
        +	}
        +	ann->connection_rate = connection_rate;
        +	ann->network_type = (enum fann_nettype_enum)network_type;
        +	ann->learning_rate = learning_rate;
        +
        +#ifdef FIXEDFANN
        +	ann->decimal_point = decimal_point;
        +	ann->multiplier = multiplier;
        +#endif
        +
        +#ifdef FIXEDFANN
        +	fann_update_stepwise(ann);
        +#endif
        +
        +#ifdef DEBUG
        +	printf("creating network with learning rate %f\n", learning_rate);
        +	printf("input\n");
        +#endif
        +
        +	/* determine how many neurons there should be in each layer */
        +	for(layer_it = ann->first_layer; layer_it != ann->last_layer; layer_it++)
        +	{
        +		if(fscanf(conf, "%u ", &layer_size) != 1)
        +		{
        +			fann_error((struct fann_error *) ann, FANN_E_CANT_READ_NEURON, configuration_file);
        +			fann_destroy(ann);
        +			return NULL;
        +		}
        +		/* we do not allocate room here, but we make sure that
        +		 * last_neuron - first_neuron is the number of neurons */
        +		layer_it->first_neuron = NULL;
        +		layer_it->last_neuron = layer_it->first_neuron + layer_size;
        +		ann->total_neurons += layer_size;
        +#ifdef DEBUG
        +		if(ann->network_type == FANN_NETTYPE_SHORTCUT && layer_it != ann->first_layer)
        +		{
        +			printf("  layer       : %d neurons, 0 bias\n", layer_size);
        +		}
        +		else
        +		{
        +			printf("  layer       : %d neurons, 1 bias\n", layer_size - 1);
        +		}
        +#endif
        +	}
        +
        +	ann->num_input = (unsigned int)(ann->first_layer->last_neuron - ann->first_layer->first_neuron - 1);
        +	ann->num_output = (unsigned int)((ann->last_layer - 1)->last_neuron - (ann->last_layer - 1)->first_neuron);
        +	if(ann->network_type == FANN_NETTYPE_LAYER)
        +	{
        +		/* one too many (bias) in the output layer */
        +		ann->num_output--;
        +	}
        +
        +	/* allocate room for the actual neurons */
        +	fann_allocate_neurons(ann);
        +	if(ann->errno_f == FANN_E_CANT_ALLOCATE_MEM)
        +	{
        +		fann_destroy(ann);
        +		return NULL;
        +	}
        +
        +	last_neuron = (ann->last_layer - 1)->last_neuron;
        +	for(neuron_it = ann->first_layer->first_neuron; neuron_it != last_neuron; neuron_it++)
        +	{
        +		if(fscanf(conf, "%u ", &num_connections) != 1)
        +		{
        +			fann_error((struct fann_error *) ann, FANN_E_CANT_READ_NEURON, configuration_file);
        +			fann_destroy(ann);
        +			return NULL;
        +		}
        +		neuron_it->first_con = ann->total_connections;
        +		ann->total_connections += num_connections;
        +		neuron_it->last_con = ann->total_connections;
        +	}
        +
        +	fann_allocate_connections(ann);
        +	if(ann->errno_f == FANN_E_CANT_ALLOCATE_MEM)
        +	{
        +		fann_destroy(ann);
        +		return NULL;
        +	}
        +
        +	connected_neurons = ann->connections;
        +	weights = ann->weights;
        +	first_neuron = ann->first_layer->first_neuron;
        +
        +	for(i = 0; i < ann->total_connections; i++)
        +	{
        +		if(fscanf(conf, "(%u " FANNSCANF ") ", &input_neuron, &weights[i]) != 2)
        +		{
        +			fann_error((struct fann_error *) ann, FANN_E_CANT_READ_CONNECTIONS, configuration_file);
        +			fann_destroy(ann);
        +			return NULL;
        +		}
        +		connected_neurons[i] = first_neuron + input_neuron;
        +	}
        +
        +	fann_set_activation_steepness_hidden(ann, activation_steepness_hidden);
        +	fann_set_activation_steepness_output(ann, activation_steepness_output);
        +	fann_set_activation_function_hidden(ann, (enum fann_activationfunc_enum)activation_function_hidden);
        +	fann_set_activation_function_output(ann, (enum fann_activationfunc_enum)activation_function_output);
        +
        +#ifdef DEBUG
        +	printf("output\n");
        +#endif
        +	return ann;
        +}
        diff --git a/lib/ann/fann/src/fann_train.c b/lib/ann/fann/src/fann_train.c
        new file mode 100644
        index 0000000..049e6de
        --- /dev/null
        +++ b/lib/ann/fann/src/fann_train.c
        @@ -0,0 +1,1047 @@
        +/*
        +  Fast Artificial Neural Network Library (fann)
        +  Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com)
        +  
        +  This library is free software; you can redistribute it and/or
        +  modify it under the terms of the GNU Lesser General Public
        +  License as published by the Free Software Foundation; either
        +  version 2.1 of the License, or (at your option) any later version.
        +  
        +  This library is distributed in the hope that it will be useful,
        +  but WITHOUT ANY WARRANTY; without even the implied warranty of
        +  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
        +  Lesser General Public License for more details.
        +  
        +  You should have received a copy of the GNU Lesser General Public
        +  License along with this library; if not, write to the Free Software
        +  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        +*/
        +
        +#include <stdio.h>
        +#include <stdlib.h>
        +#include <stdarg.h>
        +#include <string.h>
        +#include <math.h>
        +
        +#include "config.h"
        +#include "fann.h"
        +
        +/*#define DEBUGTRAIN*/
        +
        +#ifndef FIXEDFANN
        +/* INTERNAL FUNCTION
        +  Calculates the derived of a value, given an activation function
        +   and a steepness
        +*/
        +fann_type fann_activation_derived(unsigned int activation_function,
        +								  fann_type steepness, fann_type value, fann_type sum)
        +{
        +	switch (activation_function)
        +	{
        +		case FANN_LINEAR:
        +		case FANN_LINEAR_PIECE:
        +		case FANN_LINEAR_PIECE_SYMMETRIC:
        +			return (fann_type) fann_linear_derive(steepness, value);
        +		case FANN_SIGMOID:
        +		case FANN_SIGMOID_STEPWISE:
        +			value = fann_clip(value, 0.01f, 0.99f);
        +			return (fann_type) fann_sigmoid_derive(steepness, value);
        +		case FANN_SIGMOID_SYMMETRIC:
        +		case FANN_SIGMOID_SYMMETRIC_STEPWISE:
        +			value = fann_clip(value, -0.98f, 0.98f);
        +			return (fann_type) fann_sigmoid_symmetric_derive(steepness, value);
        +		case FANN_GAUSSIAN:
        +			/* value = fann_clip(value, 0.01f, 0.99f); */
        +			return (fann_type) fann_gaussian_derive(steepness, value, sum);
        +		case FANN_GAUSSIAN_SYMMETRIC:
        +			/* value = fann_clip(value, -0.98f, 0.98f); */
        +			return (fann_type) fann_gaussian_symmetric_derive(steepness, value, sum);
        +		case FANN_ELLIOT:
        +			value = fann_clip(value, 0.01f, 0.99f);
        +			return (fann_type) fann_elliot_derive(steepness, value, sum);
        +		case FANN_ELLIOT_SYMMETRIC:
        +			value = fann_clip(value, -0.98f, 0.98f);
        +			return (fann_type) fann_elliot_symmetric_derive(steepness, value, sum);
        +		case FANN_SIN_SYMMETRIC:
        +			return (fann_type) fann_sin_symmetric_derive(steepness, sum);
        +		case FANN_COS_SYMMETRIC:
        +			return (fann_type) fann_cos_symmetric_derive(steepness, sum);
        +		case FANN_SIN:
        +			return (fann_type) fann_sin_derive(steepness, sum);
        +		case FANN_COS:
        +			return (fann_type) fann_cos_derive(steepness, sum);
        +		case FANN_THRESHOLD:
        +			fann_error(NULL, FANN_E_CANT_TRAIN_ACTIVATION);
        +	}
        +	return 0;
        +}
        +
        +/* INTERNAL FUNCTION
        +  Calculates the activation of a value, given an activation function
        +   and a steepness
        +*/
        +fann_type fann_activation(struct fann * ann, unsigned int activation_function, fann_type steepness,
        +						  fann_type value)
        +{
        +	value = fann_mult(steepness, value);
        +	fann_activation_switch(activation_function, value, value);
        +	return value;
        +}
        +
        +/* Trains the network with the backpropagation algorithm.
        + */
        +FANN_EXTERNAL void FANN_API fann_train(struct fann *ann, fann_type * input,
        +									   fann_type * desired_output)
        +{
        +	fann_run(ann, input);
        +
        +	fann_compute_MSE(ann, desired_output);
        +
        +	fann_backpropagate_MSE(ann);
        +
        +	fann_update_weights(ann);
        +}
        +#endif
        +
        +
        +/* INTERNAL FUNCTION
        +   Helper function to update the MSE value and return a diff which takes symmetric functions into account
        +*/
        +fann_type fann_update_MSE(struct fann *ann, struct fann_neuron* neuron, fann_type neuron_diff)
        +{
        +	float neuron_diff2;
        +	
        +	switch (neuron->activation_function)
        +	{
        +		case FANN_LINEAR_PIECE_SYMMETRIC:
        +		case FANN_THRESHOLD_SYMMETRIC:
        +		case FANN_SIGMOID_SYMMETRIC:
        +		case FANN_SIGMOID_SYMMETRIC_STEPWISE:
        +		case FANN_ELLIOT_SYMMETRIC:
        +		case FANN_GAUSSIAN_SYMMETRIC:
        +		case FANN_SIN_SYMMETRIC:
        +		case FANN_COS_SYMMETRIC:
        +			neuron_diff /= (fann_type)2.0;
        +			break;
        +		case FANN_THRESHOLD:
        +		case FANN_LINEAR:
        +		case FANN_SIGMOID:
        +		case FANN_SIGMOID_STEPWISE:
        +		case FANN_GAUSSIAN:
        +		case FANN_GAUSSIAN_STEPWISE:
        +		case FANN_ELLIOT:
        +		case FANN_LINEAR_PIECE:
        +		case FANN_SIN:
        +		case FANN_COS:
        +			break;
        +	}
        +
        +#ifdef FIXEDFANN
        +		neuron_diff2 =
        +			(neuron_diff / (float) ann->multiplier) * (neuron_diff / (float) ann->multiplier);
        +#else
        +		neuron_diff2 = (float) (neuron_diff * neuron_diff);
        +#endif
        +
        +	ann->MSE_value += neuron_diff2;
        +
        +	/*printf("neuron_diff %f = (%f - %f)[/2], neuron_diff2=%f, sum=%f, MSE_value=%f, num_MSE=%d\n", neuron_diff, *desired_output, neuron_value, neuron_diff2, last_layer_begin->sum, ann->MSE_value, ann->num_MSE); */
        +	if(fann_abs(neuron_diff) >= ann->bit_fail_limit)
        +	{
        +		ann->num_bit_fail++;
        +	}
        +	
        +	return neuron_diff;
        +}
        +
        +/* Tests the network.
        + */
        +FANN_EXTERNAL fann_type *FANN_API fann_test(struct fann *ann, fann_type * input,
        +											fann_type * desired_output)
        +{
        +	fann_type neuron_value;
        +	fann_type *output_begin = fann_run(ann, input);
        +	fann_type *output_it;
        +	const fann_type *output_end = output_begin + ann->num_output;
        +	fann_type neuron_diff;
        +	struct fann_neuron *output_neuron = (ann->last_layer - 1)->first_neuron;
        +
        +	/* calculate the error */
        +	for(output_it = output_begin; output_it != output_end; output_it++)
        +	{
        +		neuron_value = *output_it;
        +
        +		neuron_diff = (*desired_output - neuron_value);
        +
        +		neuron_diff = fann_update_MSE(ann, output_neuron, neuron_diff);
        +		
        +		desired_output++;
        +		output_neuron++;
        +
        +		ann->num_MSE++;
        +	}
        +
        +	return output_begin;
        +}
        +
        +/* get the mean square error.
        + */
        +FANN_EXTERNAL float FANN_API fann_get_MSE(struct fann *ann)
        +{
        +	if(ann->num_MSE)
        +	{
        +		return ann->MSE_value / (float) ann->num_MSE;
        +	}
        +	else
        +	{
        +		return 0;
        +	}
        +}
        +
        +FANN_EXTERNAL unsigned int FANN_API fann_get_bit_fail(struct fann *ann)
        +{
        +	return ann->num_bit_fail;	
        +}
        +
        +/* reset the mean square error.
        + */
        +FANN_EXTERNAL void FANN_API fann_reset_MSE(struct fann *ann)
        +{
        +/*printf("resetMSE %d %f\n", ann->num_MSE, ann->MSE_value);*/
        +	ann->num_MSE = 0;
        +	ann->MSE_value = 0;
        +	ann->num_bit_fail = 0;
        +}
        +
        +#ifndef FIXEDFANN
        +
        +/* INTERNAL FUNCTION
        +    compute the error at the network output
        +	(usually, after forward propagation of a certain input vector, fann_run)
        +	the error is a sum of squares for all the output units
        +	also increments a counter because MSE is an average of such errors
        +
        +	After this train_errors in the output layer will be set to:
        +	neuron_value_derived * (desired_output - neuron_value)
        + */
        +void fann_compute_MSE(struct fann *ann, fann_type * desired_output)
        +{
        +	fann_type neuron_value, neuron_diff, *error_it = 0, *error_begin = 0;
        +	struct fann_neuron *last_layer_begin = (ann->last_layer - 1)->first_neuron;
        +	const struct fann_neuron *last_layer_end = last_layer_begin + ann->num_output;
        +	const struct fann_neuron *first_neuron = ann->first_layer->first_neuron;
        +
        +	/* if no room allocated for the error variabels, allocate it now */
        +	if(ann->train_errors == NULL)
        +	{
        +		ann->train_errors = (fann_type *) calloc(ann->total_neurons, sizeof(fann_type));
        +		if(ann->train_errors == NULL)
        +		{
        +			fann_error((struct fann_error *) ann, FANN_E_CANT_ALLOCATE_MEM);
        +			return;
        +		}
        +	}
        +	else
        +	{
        +		/* clear the error variabels */
        +		memset(ann->train_errors, 0, (ann->total_neurons) * sizeof(fann_type));
        +	}
        +	error_begin = ann->train_errors;
        +
        +#ifdef DEBUGTRAIN
        +	printf("\ncalculate errors\n");
        +#endif
        +	/* calculate the error and place it in the output layer */
        +	error_it = error_begin + (last_layer_begin - first_neuron);
        +
        +	for(; last_layer_begin != last_layer_end; last_layer_begin++)
        +	{
        +		neuron_value = last_layer_begin->value;
        +		neuron_diff = *desired_output - neuron_value;
        +
        +		neuron_diff = fann_update_MSE(ann, last_layer_begin, neuron_diff);
        +
        +		if(ann->train_error_function)
        +		{						/* TODO make switch when more functions */
        +			if(neuron_diff < -.9999999)
        +				neuron_diff = -17.0;
        +			else if(neuron_diff > .9999999)
        +				neuron_diff = 17.0;
        +			else
        +				neuron_diff = (fann_type) log((1.0 + neuron_diff) / (1.0 - neuron_diff));
        +		}
        +
        +		*error_it = fann_activation_derived(last_layer_begin->activation_function,
        +											last_layer_begin->activation_steepness, neuron_value,
        +											last_layer_begin->sum) * neuron_diff;
        +
        +		desired_output++;
        +		error_it++;
        +
        +		ann->num_MSE++;
        +	}
        +}
        +
        +/* INTERNAL FUNCTION
        +   Propagate the error backwards from the output layer.
        +
        +   After this the train_errors in the hidden layers will be:
        +   neuron_value_derived * sum(outgoing_weights * connected_neuron)
        +*/
        +void fann_backpropagate_MSE(struct fann *ann)
        +{
        +	fann_type tmp_error;
        +	unsigned int i;
        +	struct fann_layer *layer_it;
        +	struct fann_neuron *neuron_it, *last_neuron;
        +	struct fann_neuron **connections;
        +
        +	fann_type *error_begin = ann->train_errors;
        +	fann_type *error_prev_layer;
        +	fann_type *weights;
        +	const struct fann_neuron *first_neuron = ann->first_layer->first_neuron;
        +	const struct fann_layer *second_layer = ann->first_layer + 1;
        +	struct fann_layer *last_layer = ann->last_layer;
        +
        +	/* go through all the layers, from last to first.
        +	 * And propagate the error backwards */
        +	for(layer_it = last_layer - 1; layer_it > second_layer; --layer_it)
        +	{
        +		last_neuron = layer_it->last_neuron;
        +
        +		/* for each connection in this layer, propagate the error backwards */
        +		if(ann->connection_rate >= 1)
        +		{
        +			if(ann->network_type == FANN_NETTYPE_LAYER)
        +			{
        +				error_prev_layer = error_begin + ((layer_it - 1)->first_neuron - first_neuron);
        +			}
        +			else
        +			{
        +				error_prev_layer = error_begin;
        +			}
        +
        +			for(neuron_it = layer_it->first_neuron; neuron_it != last_neuron; neuron_it++)
        +			{
        +
        +				tmp_error = error_begin[neuron_it - first_neuron];
        +				weights = ann->weights + neuron_it->first_con;
        +				for(i = neuron_it->last_con - neuron_it->first_con; i--;)
        +				{
        +					/*printf("i = %d\n", i);
        +					 * printf("error_prev_layer[%d] = %f\n", i, error_prev_layer[i]);
        +					 * printf("weights[%d] = %f\n", i, weights[i]); */
        +					error_prev_layer[i] += tmp_error * weights[i];
        +				}
        +			}
        +		}
        +		else
        +		{
        +			for(neuron_it = layer_it->first_neuron; neuron_it != last_neuron; neuron_it++)
        +			{
        +
        +				tmp_error = error_begin[neuron_it - first_neuron];
        +				weights = ann->weights + neuron_it->first_con;
        +				connections = ann->connections + neuron_it->first_con;
        +				for(i = neuron_it->last_con - neuron_it->first_con; i--;)
        +				{
        +					error_begin[connections[i] - first_neuron] += tmp_error * weights[i];
        +				}
        +			}
        +		}
        +
        +		/* then calculate the actual errors in the previous layer */
        +		error_prev_layer = error_begin + ((layer_it - 1)->first_neuron - first_neuron);
        +		last_neuron = (layer_it - 1)->last_neuron;
        +
        +		for(neuron_it = (layer_it - 1)->first_neuron; neuron_it != last_neuron; neuron_it++)
        +		{
        +			*error_prev_layer *= fann_activation_derived(neuron_it->activation_function, 
        +				neuron_it->activation_steepness, neuron_it->value, neuron_it->sum);
        +			error_prev_layer++;
        +		}
        +		
        +	}
        +}
        +
        +/* INTERNAL FUNCTION
        +   Update weights for incremental training
        +*/
        +void fann_update_weights(struct fann *ann)
        +{
        +	struct fann_neuron *neuron_it, *last_neuron, *prev_neurons;
        +	fann_type tmp_error, delta_w, *weights;
        +	struct fann_layer *layer_it;
        +	unsigned int i;
        +	unsigned int num_connections;
        +
        +	/* store some variabels local for fast access */
        +	const float learning_rate = ann->learning_rate;
        +    const float learning_momentum = ann->learning_momentum;        
        +	struct fann_neuron *first_neuron = ann->first_layer->first_neuron;
        +	struct fann_layer *first_layer = ann->first_layer;
        +	const struct fann_layer *last_layer = ann->last_layer;
        +	fann_type *error_begin = ann->train_errors;
        +	fann_type *deltas_begin, *weights_deltas;
        +
        +	/* if no room allocated for the deltas, allocate it now */
        +	if(ann->prev_weights_deltas == NULL)
        +	{
        +		ann->prev_weights_deltas =
        +			(fann_type *) calloc(ann->total_connections_allocated, sizeof(fann_type));
        +		if(ann->prev_weights_deltas == NULL)
        +		{
        +			fann_error((struct fann_error *) ann, FANN_E_CANT_ALLOCATE_MEM);
        +			return;
        +		}		
        +	}
        +
        +#ifdef DEBUGTRAIN
        +	printf("\nupdate weights\n");
        +#endif
        +	deltas_begin = ann->prev_weights_deltas;
        +	prev_neurons = first_neuron;
        +	for(layer_it = (first_layer + 1); layer_it != last_layer; layer_it++)
        +	{
        +#ifdef DEBUGTRAIN
        +		printf("layer[%d]\n", layer_it - first_layer);
        +#endif
        +		last_neuron = layer_it->last_neuron;
        +		if(ann->connection_rate >= 1)
        +		{
        +			if(ann->network_type == FANN_NETTYPE_LAYER)
        +			{
        +				prev_neurons = (layer_it - 1)->first_neuron;
        +			}
        +			for(neuron_it = layer_it->first_neuron; neuron_it != last_neuron; neuron_it++)
        +			{
        +				tmp_error = error_begin[neuron_it - first_neuron] * learning_rate;
        +				num_connections = neuron_it->last_con - neuron_it->first_con;
        +				weights = ann->weights + neuron_it->first_con;
        +				weights_deltas = deltas_begin + neuron_it->first_con;
        +				for(i = 0; i != num_connections; i++)
        +				{
        +					delta_w = tmp_error * prev_neurons[i].value + learning_momentum * weights_deltas[i];
        +					weights[i] += delta_w ;
        +					weights_deltas[i] = delta_w;
        +				}
        +			}
        +		}
        +		else
        +		{
        +			for(neuron_it = layer_it->first_neuron; neuron_it != last_neuron; neuron_it++)
        +			{
        +				tmp_error = error_begin[neuron_it - first_neuron] * learning_rate;
        +				num_connections = neuron_it->last_con - neuron_it->first_con;
        +				weights = ann->weights + neuron_it->first_con;
        +				weights_deltas = deltas_begin + neuron_it->first_con;
        +				for(i = 0; i != num_connections; i++)
        +				{
        +					delta_w = tmp_error * prev_neurons[i].value + learning_momentum * weights_deltas[i];
        +					weights[i] += delta_w;
        +					weights_deltas[i] = delta_w;
        +				}
        +			}
        +		}
        +	}
        +}
        +
        +/* INTERNAL FUNCTION
        +   Update slopes for batch training
        +   layer_begin = ann->first_layer+1 and layer_end = ann->last_layer-1
        +   will update all slopes.
        +
        +*/
        +void fann_update_slopes_batch(struct fann *ann, struct fann_layer *layer_begin,
        +							  struct fann_layer *layer_end)
        +{
        +	struct fann_neuron *neuron_it, *last_neuron, *prev_neurons, **connections;
        +	fann_type tmp_error;
        +	unsigned int i, num_connections;
        +
        +	/* store some variabels local for fast access */
        +	struct fann_neuron *first_neuron = ann->first_layer->first_neuron;
        +	fann_type *error_begin = ann->train_errors;
        +	fann_type *slope_begin, *neuron_slope;
        +
        +	/* if no room allocated for the slope variabels, allocate it now */
        +	if(ann->train_slopes == NULL)
        +	{
        +		ann->train_slopes =
        +			(fann_type *) calloc(ann->total_connections_allocated, sizeof(fann_type));
        +		if(ann->train_slopes == NULL)
        +		{
        +			fann_error((struct fann_error *) ann, FANN_E_CANT_ALLOCATE_MEM);
        +			return;
        +		}
        +	}
        +
        +	if(layer_begin == NULL)
        +	{
        +		layer_begin = ann->first_layer + 1;
        +	}
        +
        +	if(layer_end == NULL)
        +	{
        +		layer_end = ann->last_layer - 1;
        +	}
        +
        +	slope_begin = ann->train_slopes;
        +
        +#ifdef DEBUGTRAIN
        +	printf("\nupdate slopes\n");
        +#endif
        +
        +	prev_neurons = first_neuron;
        +
        +	for(; layer_begin <= layer_end; layer_begin++)
        +	{
        +#ifdef DEBUGTRAIN
        +		printf("layer[%d]\n", layer_begin - ann->first_layer);
        +#endif
        +		last_neuron = layer_begin->last_neuron;
        +		if(ann->connection_rate >= 1)
        +		{
        +			if(ann->network_type == FANN_NETTYPE_LAYER)
        +			{
        +				prev_neurons = (layer_begin - 1)->first_neuron;
        +			}
        +
        +			for(neuron_it = layer_begin->first_neuron; neuron_it != last_neuron; neuron_it++)
        +			{
        +				tmp_error = error_begin[neuron_it - first_neuron];
        +				neuron_slope = slope_begin + neuron_it->first_con;
        +				num_connections = neuron_it->last_con - neuron_it->first_con;
        +				for(i = 0; i != num_connections; i++)
        +				{
        +					neuron_slope[i] += tmp_error * prev_neurons[i].value;
        +				}
        +			}
        +		}
        +		else
        +		{
        +			for(neuron_it = layer_begin->first_neuron; neuron_it != last_neuron; neuron_it++)
        +			{
        +				tmp_error = error_begin[neuron_it - first_neuron];
        +				neuron_slope = slope_begin + neuron_it->first_con;
        +				num_connections = neuron_it->last_con - neuron_it->first_con;
        +				connections = ann->connections + neuron_it->first_con;
        +				for(i = 0; i != num_connections; i++)
        +				{
        +					neuron_slope[i] += tmp_error * connections[i]->value;
        +				}
        +			}
        +		}
        +	}
        +}
        +
        +/* INTERNAL FUNCTION
        +   Clears arrays used for training before a new training session.
        +   Also creates the arrays that do not exist yet.
        + */
        +void fann_clear_train_arrays(struct fann *ann)
        +{
        +	unsigned int i;
        +	fann_type delta_zero;
        +
        +	/* if no room allocated for the slope variabels, allocate it now
        +	 * (calloc clears mem) */
        +	if(ann->train_slopes == NULL)
        +	{
        +		ann->train_slopes =
        +			(fann_type *) calloc(ann->total_connections_allocated, sizeof(fann_type));
        +		if(ann->train_slopes == NULL)
        +		{
        +			fann_error((struct fann_error *) ann, FANN_E_CANT_ALLOCATE_MEM);
        +			return;
        +		}
        +	}
        +	else
        +	{
        +		memset(ann->train_slopes, 0, (ann->total_connections_allocated) * sizeof(fann_type));
        +	}
        +
        +	/* if no room allocated for the variabels, allocate it now */
        +	if(ann->prev_steps == NULL)
        +	{
        +		ann->prev_steps = (fann_type *) malloc(ann->total_connections_allocated * sizeof(fann_type));
        +		if(ann->prev_steps == NULL)
        +		{
        +			fann_error((struct fann_error *) ann, FANN_E_CANT_ALLOCATE_MEM);
        +			return;
        +		}
        +	}
        +
        +	if(ann->training_algorithm == FANN_TRAIN_RPROP)
        +	{
        +		delta_zero = ann->rprop_delta_zero;
        +		
        +		for(i = 0; i < ann->total_connections_allocated; i++)
        +			ann->prev_steps[i] = delta_zero;
        +	}
        +	else
        +	{
        +		memset(ann->prev_steps, 0, (ann->total_connections_allocated) * sizeof(fann_type));
        +	}
        +
        +	/* if no room allocated for the variabels, allocate it now */
        +	if(ann->prev_train_slopes == NULL)
        +	{
        +		ann->prev_train_slopes =
        +			(fann_type *) calloc(ann->total_connections_allocated, sizeof(fann_type));
        +		if(ann->prev_train_slopes == NULL)
        +		{
        +			fann_error((struct fann_error *) ann, FANN_E_CANT_ALLOCATE_MEM);
        +			return;
        +		}
        +	}
        +	else
        +	{
        +		memset(ann->prev_train_slopes, 0, (ann->total_connections_allocated) * sizeof(fann_type));
        +	}
        +}
        +
        +/* INTERNAL FUNCTION
        +   Update weights for batch training
        + */
        +void fann_update_weights_batch(struct fann *ann, unsigned int num_data, unsigned int first_weight,
        +							   unsigned int past_end)
        +{
        +	fann_type *train_slopes = ann->train_slopes;
        +	fann_type *weights = ann->weights;
        +	const float epsilon = ann->learning_rate / num_data;
        +	unsigned int i = first_weight;
        +
        +	for(; i != past_end; i++)
        +	{
        +		weights[i] += train_slopes[i] * epsilon;
        +		train_slopes[i] = 0.0;
        +	}
        +}
        +
        +/* INTERNAL FUNCTION
        +   The quickprop training algorithm
        + */
        +void fann_update_weights_quickprop(struct fann *ann, unsigned int num_data,
        +								   unsigned int first_weight, unsigned int past_end)
        +{
        +	fann_type *train_slopes = ann->train_slopes;
        +	fann_type *weights = ann->weights;
        +	fann_type *prev_steps = ann->prev_steps;
        +	fann_type *prev_train_slopes = ann->prev_train_slopes;
        +
        +	fann_type w, prev_step, slope, prev_slope, next_step;
        +
        +	float epsilon = ann->learning_rate / num_data;
        +	float decay = ann->quickprop_decay;	/*-0.0001;*/
        +	float mu = ann->quickprop_mu;	/*1.75; */
        +	float shrink_factor = (float) (mu / (1.0 + mu));
        +	
        +	unsigned int i = first_weight;
        +
        +	for(; i != past_end; i++)
        +	{
        +		w = weights[i];
        +		prev_step = prev_steps[i];
        +		slope = train_slopes[i] + decay * w;
        +		prev_slope = prev_train_slopes[i];
        +		next_step = 0.0;
        +		
        +		/* The step must always be in direction opposite to the slope. */
        +		if(prev_step > 0.001)
        +		{
        +			/* If last step was positive...  */
        +			if(slope > 0.0) /*  Add in linear term if current slope is still positive. */
        +				next_step += epsilon * slope;
        +
        +			/*If current slope is close to or larger than prev slope...  */
        +			if(slope > (shrink_factor * prev_slope))
        +				next_step += mu * prev_step;	/* Take maximum size negative step. */
        +			else
        +				next_step += prev_step * slope / (prev_slope - slope);	/* Else, use quadratic estimate. */
        +		}
        +		else if(prev_step < -0.001)
        +		{
        +			/* If last step was negative...  */
        +			if(slope < 0.0) /*  Add in linear term if current slope is still negative. */
        +				next_step += epsilon * slope;
        +
        +			/* If current slope is close to or more neg than prev slope... */
        +			if(slope < (shrink_factor * prev_slope))
        +				next_step += mu * prev_step;	/* Take maximum size negative step. */
        +			else
        +				next_step += prev_step * slope / (prev_slope - slope);	/* Else, use quadratic estimate. */
        +		}
        +		else /* Last step was zero, so use only linear term. */
        +			next_step += epsilon * slope; 
        +
        +		/*
        +		if(next_step > 1000 || next_step < -1000)
        +		{
        +			printf("quickprop[%d] weight=%f, slope=%f, prev_slope=%f, next_step=%f, prev_step=%f\n",
        +				   i, weights[i], slope, prev_slope, next_step, prev_step);
        +			
        +			   if(next_step > 1000)
        +			   next_step = 1000;
        +			   else
        +			   next_step = -1000;
        +		}
        +    	*/
        +
        +		/* update global data arrays */
        +		prev_steps[i] = next_step;
        +
        +		w += next_step;
        +
        +		if(w > 1500)
        +			weights[i] = 1500;
        +		else if(w < -1500)
        +			weights[i] = -1500;
        +		else
        +			weights[i] = w;
        +
        +		/*weights[i] = w;*/
        +
        +		prev_train_slopes[i] = slope;
        +		train_slopes[i] = 0.0;
        +	}
        +}
        +
        +/* INTERNAL FUNCTION
        +   The iRprop- algorithm
        +*/
        +void fann_update_weights_irpropm(struct fann *ann, unsigned int first_weight, unsigned int past_end)
        +{
        +	fann_type *train_slopes = ann->train_slopes;
        +	fann_type *weights = ann->weights;
        +	fann_type *prev_steps = ann->prev_steps;
        +	fann_type *prev_train_slopes = ann->prev_train_slopes;
        +
        +	fann_type prev_step, slope, prev_slope, next_step, same_sign;
        +
        +	float increase_factor = ann->rprop_increase_factor;	/*1.2; */
        +	float decrease_factor = ann->rprop_decrease_factor;	/*0.5; */
        +	float delta_min = ann->rprop_delta_min;	/*0.0; */
        +	float delta_max = ann->rprop_delta_max;	/*50.0; */
        +
        +	unsigned int i = first_weight;
        +
        +	for(; i != past_end; i++)
        +	{
        +		prev_step = fann_max(prev_steps[i], (fann_type) 0.0001);	/* prev_step may not be zero because then the training will stop */
        +		slope = train_slopes[i];
        +		prev_slope = prev_train_slopes[i];
        +
        +		same_sign = prev_slope * slope;
        +
        +		if(same_sign >= 0.0)
        +			next_step = fann_min(prev_step * increase_factor, delta_max);
        +		else
        +		{
        +			next_step = fann_max(prev_step * decrease_factor, delta_min);
        +			slope = 0;
        +		}
        +
        +		if(slope < 0)
        +		{
        +			weights[i] -= next_step;
        +			if(weights[i] < -1500)
        +				weights[i] = -1500;
        +		}
        +		else
        +		{
        +			weights[i] += next_step;
        +			if(weights[i] > 1500)
        +				weights[i] = 1500;
        +		}
        +
        +		/*if(i == 2){
        +		 * printf("weight=%f, slope=%f, next_step=%f, prev_step=%f\n", weights[i], slope, next_step, prev_step);
        +		 * } */
        +
        +		/* update global data arrays */
        +		prev_steps[i] = next_step;
        +		prev_train_slopes[i] = slope;
        +		train_slopes[i] = 0.0;
        +	}
        +}
        +
        +/* INTERNAL FUNCTION
        +   The SARprop- algorithm
        +*/
        +void fann_update_weights_sarprop(struct fann *ann, unsigned int epoch, unsigned int first_weight, unsigned int past_end)
        +{
        +	fann_type *train_slopes = ann->train_slopes;
        +	fann_type *weights = ann->weights;
        +	fann_type *prev_steps = ann->prev_steps;
        +	fann_type *prev_train_slopes = ann->prev_train_slopes;
        +
        +	fann_type prev_step, slope, prev_slope, next_step = 0, same_sign;
        +
        +	/* These should be set from variables */
        +	float increase_factor = ann->rprop_increase_factor;	/*1.2; */
        +	float decrease_factor = ann->rprop_decrease_factor;	/*0.5; */
        +	/* TODO: why is delta_min 0.0 in iRprop? SARPROP uses 1x10^-6 (Braun and Riedmiller, 1993) */
        +	float delta_min = 0.000001f;
        +	float delta_max = ann->rprop_delta_max;	/*50.0; */
        +	float weight_decay_shift = ann->sarprop_weight_decay_shift; /* ld 0.01 = -6.644 */
        +	float step_error_threshold_factor = ann->sarprop_step_error_threshold_factor; /* 0.1 */
        +	float step_error_shift = ann->sarprop_step_error_shift; /* ld 3 = 1.585 */
        +	float T = ann->sarprop_temperature;
        +	float MSE = fann_get_MSE(ann);
        +	float RMSE = sqrtf(MSE);
        +
        +	unsigned int i = first_weight;
        +
        +
        +	/* for all weights; TODO: are biases included? */
        +	for(; i != past_end; i++)
        +	{
        +		/* TODO: confirm whether 1x10^-6 == delta_min is really better */
        +		prev_step = fann_max(prev_steps[i], (fann_type) 0.000001);	/* prev_step may not be zero because then the training will stop */
        +		/* calculate SARPROP slope; TODO: better as new error function? (see SARPROP paper)*/
        +		slope = -train_slopes[i] - weights[i] * (fann_type)fann_exp2(-T * epoch + weight_decay_shift);
        +
        +		/* TODO: is prev_train_slopes[i] 0.0 in the beginning? */
        +		prev_slope = prev_train_slopes[i];
        +
        +		same_sign = prev_slope * slope;
        +
        +		if(same_sign > 0.0)
        +		{
        +			next_step = fann_min(prev_step * increase_factor, delta_max);
        +			/* TODO: are the signs inverted? see differences between SARPROP paper and iRprop */
        +			if (slope < 0.0)
        +				weights[i] += next_step;
        +			else
        +				weights[i] -= next_step;
        +		}
        +		else if(same_sign < 0.0)
        +		{
        +			if(prev_step < step_error_threshold_factor * MSE)
        +				next_step = prev_step * decrease_factor + (float)rand() / RAND_MAX * RMSE * (fann_type)fann_exp2(-T * epoch + step_error_shift);
        +			else
        +				next_step = fann_max(prev_step * decrease_factor, delta_min);
        +
        +			slope = 0.0;
        +		}
        +		else
        +		{
        +			if(slope < 0.0)
        +				weights[i] += prev_step;
        +			else
        +				weights[i] -= prev_step;
        +		}
        +
        +
        +		/*if(i == 2){
        +		 * printf("weight=%f, slope=%f, next_step=%f, prev_step=%f\n", weights[i], slope, next_step, prev_step);
        +		 * } */
        +
        +		/* update global data arrays */
        +		prev_steps[i] = next_step;
        +		prev_train_slopes[i] = slope;
        +		train_slopes[i] = 0.0;
        +	}
        +}
        +
        +#endif
        +
        +FANN_GET_SET(enum fann_train_enum, training_algorithm)
        +FANN_GET_SET(float, learning_rate)
        +
        +FANN_EXTERNAL void FANN_API fann_set_activation_function_hidden(struct fann *ann,
        +																enum fann_activationfunc_enum activation_function)
        +{
        +	struct fann_neuron *last_neuron, *neuron_it;
        +	struct fann_layer *layer_it;
        +	struct fann_layer *last_layer = ann->last_layer - 1;	/* -1 to not update the output layer */
        +
        +	for(layer_it = ann->first_layer + 1; layer_it != last_layer; layer_it++)
        +	{
        +		last_neuron = layer_it->last_neuron;
        +		for(neuron_it = layer_it->first_neuron; neuron_it != last_neuron; neuron_it++)
        +		{
        +			neuron_it->activation_function = activation_function;
        +		}
        +	}
        +}
        +
        +FANN_EXTERNAL struct fann_layer* FANN_API fann_get_layer(struct fann *ann, int layer)
        +{
        +	if(layer <= 0 || layer >= (ann->last_layer - ann->first_layer))
        +	{
        +		fann_error((struct fann_error *) ann, FANN_E_INDEX_OUT_OF_BOUND, layer);
        +		return NULL;
        +	}
        +	
        +	return ann->first_layer + layer;	
        +}
        +
        +FANN_EXTERNAL struct fann_neuron* FANN_API fann_get_neuron_layer(struct fann *ann, struct fann_layer* layer, int neuron)
        +{
        +	if(neuron >= (layer->last_neuron - layer->first_neuron))
        +	{
        +		fann_error((struct fann_error *) ann, FANN_E_INDEX_OUT_OF_BOUND, neuron);
        +		return NULL;	
        +	}
        +	
        +	return layer->first_neuron + neuron;
        +}
        +
        +FANN_EXTERNAL struct fann_neuron* FANN_API fann_get_neuron(struct fann *ann, unsigned int layer, int neuron)
        +{
        +	struct fann_layer *layer_it = fann_get_layer(ann, layer);
        +	if(layer_it == NULL)
        +		return NULL;
        +	return fann_get_neuron_layer(ann, layer_it, neuron);
        +}
        +
        +FANN_EXTERNAL enum fann_activationfunc_enum FANN_API
        +    fann_get_activation_function(struct fann *ann, int layer, int neuron)
        +{
        +	struct fann_neuron* neuron_it = fann_get_neuron(ann, layer, neuron);
        +	if (neuron_it == NULL)
        +    {
        +		return (enum fann_activationfunc_enum)-1; /* layer or neuron out of bounds */
        +    }
        +    else
        +    {
        +	    return neuron_it->activation_function;
        +    }
        +}
        +
        +FANN_EXTERNAL void FANN_API fann_set_activation_function(struct fann *ann,
        +																enum fann_activationfunc_enum
        +																activation_function,
        +																int layer,
        +																int neuron)
        +{
        +	struct fann_neuron* neuron_it = fann_get_neuron(ann, layer, neuron);
        +	if(neuron_it == NULL)
        +		return;
        +
        +	neuron_it->activation_function = activation_function;
        +}
        +
        +FANN_EXTERNAL void FANN_API fann_set_activation_function_layer(struct fann *ann,
        +																enum fann_activationfunc_enum
        +																activation_function,
        +																int layer)
        +{
        +	struct fann_neuron *last_neuron, *neuron_it;
        +	struct fann_layer *layer_it = fann_get_layer(ann, layer);
        +	
        +	if(layer_it == NULL)
        +		return;
        +
        +	last_neuron = layer_it->last_neuron;
        +	for(neuron_it = layer_it->first_neuron; neuron_it != last_neuron; neuron_it++)
        +	{
        +		neuron_it->activation_function = activation_function;
        +	}
        +}
        +
        +
        +FANN_EXTERNAL void FANN_API fann_set_activation_function_output(struct fann *ann,
        +																enum fann_activationfunc_enum activation_function)
        +{
        +	struct fann_neuron *last_neuron, *neuron_it;
        +	struct fann_layer *last_layer = ann->last_layer - 1;
        +
        +	last_neuron = last_layer->last_neuron;
        +	for(neuron_it = last_layer->first_neuron; neuron_it != last_neuron; neuron_it++)
        +	{
        +		neuron_it->activation_function = activation_function;
        +	}
        +}
        +
        +FANN_EXTERNAL void FANN_API fann_set_activation_steepness_hidden(struct fann *ann,
        +																 fann_type steepness)
        +{
        +	struct fann_neuron *last_neuron, *neuron_it;
        +	struct fann_layer *layer_it;
        +	struct fann_layer *last_layer = ann->last_layer - 1;	/* -1 to not update the output layer */
        +
        +	for(layer_it = ann->first_layer + 1; layer_it != last_layer; layer_it++)
        +	{
        +		last_neuron = layer_it->last_neuron;
        +		for(neuron_it = layer_it->first_neuron; neuron_it != last_neuron; neuron_it++)
        +		{
        +			neuron_it->activation_steepness = steepness;
        +		}
        +	}
        +}
        +
        +FANN_EXTERNAL fann_type FANN_API
        +    fann_get_activation_steepness(struct fann *ann, int layer, int neuron)
        +{
        +	struct fann_neuron* neuron_it = fann_get_neuron(ann, layer, neuron);
        +	if(neuron_it == NULL)
        +    {
        +		return -1; /* layer or neuron out of bounds */
        +    }
        +    else
        +    {
        +        return neuron_it->activation_steepness;
        +    }
        +}
        +
        +FANN_EXTERNAL void FANN_API fann_set_activation_steepness(struct fann *ann,
        +																fann_type steepness,
        +																int layer,
        +																int neuron)
        +{
        +	struct fann_neuron* neuron_it = fann_get_neuron(ann, layer, neuron);
        +	if(neuron_it == NULL)
        +		return;
        +
        +	neuron_it->activation_steepness = steepness;
        +}
        +
        +FANN_EXTERNAL void FANN_API fann_set_activation_steepness_layer(struct fann *ann,
        +																fann_type steepness,
        +																int layer)
        +{
        +	struct fann_neuron *last_neuron, *neuron_it;
        +	struct fann_layer *layer_it = fann_get_layer(ann, layer);
        +	
        +	if(layer_it == NULL)
        +		return;
        +
        +	last_neuron = layer_it->last_neuron;
        +	for(neuron_it = layer_it->first_neuron; neuron_it != last_neuron; neuron_it++)
        +	{
        +		neuron_it->activation_steepness = steepness;
        +	}
        +}
        +
        +FANN_EXTERNAL void FANN_API fann_set_activation_steepness_output(struct fann *ann,
        +																 fann_type steepness)
        +{
        +	struct fann_neuron *last_neuron, *neuron_it;
        +	struct fann_layer *last_layer = ann->last_layer - 1;
        +
        +	last_neuron = last_layer->last_neuron;
        +	for(neuron_it = last_layer->first_neuron; neuron_it != last_neuron; neuron_it++)
        +	{
        +		neuron_it->activation_steepness = steepness;
        +	}
        +}
        +
        +FANN_GET_SET(enum fann_errorfunc_enum, train_error_function)
        +FANN_GET_SET(fann_callback_type, callback)
        +FANN_GET_SET(float, quickprop_decay)
        +FANN_GET_SET(float, quickprop_mu)
        +FANN_GET_SET(float, rprop_increase_factor)
        +FANN_GET_SET(float, rprop_decrease_factor)
        +FANN_GET_SET(float, rprop_delta_min)
        +FANN_GET_SET(float, rprop_delta_max)
        +FANN_GET_SET(float, rprop_delta_zero)
        +FANN_GET_SET(float, sarprop_weight_decay_shift)
        +FANN_GET_SET(float, sarprop_step_error_threshold_factor)
        +FANN_GET_SET(float, sarprop_step_error_shift)
        +FANN_GET_SET(float, sarprop_temperature)
        +FANN_GET_SET(enum fann_stopfunc_enum, train_stop_function)
        +FANN_GET_SET(fann_type, bit_fail_limit)
        +FANN_GET_SET(float, learning_momentum)
        diff --git a/lib/ann/fann/src/fann_train_data.c b/lib/ann/fann/src/fann_train_data.c
        new file mode 100644
        index 0000000..fd70673
        --- /dev/null
        +++ b/lib/ann/fann/src/fann_train_data.c
        @@ -0,0 +1,1341 @@
        +/*
        +  Fast Artificial Neural Network Library (fann)
        +  Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com)
        +
        +  This library is free software; you can redistribute it and/or
        +  modify it under the terms of the GNU Lesser General Public
        +  License as published by the Free Software Foundation; either
        +  version 2.1 of the License, or (at your option) any later version.
        +
        +  This library is distributed in the hope that it will be useful,
        +  but WITHOUT ANY WARRANTY; without even the implied warranty of
        +  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
        +  Lesser General Public License for more details.
        +
        +  You should have received a copy of the GNU Lesser General Public
        +  License along with this library; if not, write to the Free Software
        +  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        +*/
        +
        +#include <stdio.h>
        +#include <stdlib.h>
        +#include <stdarg.h>
        +#include <string.h>
        +
        +#include "config.h"
        +#include "fann.h"
        +
        +/*
        + * Reads training data from a file. 
        + */
        +FANN_EXTERNAL struct fann_train_data *FANN_API fann_read_train_from_file(const char *configuration_file)
        +{
        +	struct fann_train_data *data;
        +	FILE *file = fopen(configuration_file, "r");
        +
        +	if(!file)
        +	{
        +		fann_error(NULL, FANN_E_CANT_OPEN_CONFIG_R, configuration_file);
        +		return NULL;
        +	}
        +
        +	data = fann_read_train_from_fd(file, configuration_file);
        +	fclose(file);
        +	return data;
        +}
        +
        +/*
        + * Save training data to a file 
        + */
        +FANN_EXTERNAL int FANN_API fann_save_train(struct fann_train_data *data, const char *filename)
        +{
        +	return fann_save_train_internal(data, filename, 0, 0);
        +}
        +
        +/*
        + * Save training data to a file in fixed point algebra. (Good for testing
        + * a network in fixed point) 
        + */
        +FANN_EXTERNAL int FANN_API fann_save_train_to_fixed(struct fann_train_data *data, const char *filename,
        +													 unsigned int decimal_point)
        +{
        +	return fann_save_train_internal(data, filename, 1, decimal_point);
        +}
        +
        +/*
        + * deallocate the train data structure. 
        + */
        +FANN_EXTERNAL void FANN_API fann_destroy_train(struct fann_train_data *data)
        +{
        +	if(data == NULL)
        +		return;
        +	if(data->input != NULL)
        +		fann_safe_free(data->input[0]);
        +	if(data->output != NULL)
        +		fann_safe_free(data->output[0]);
        +	fann_safe_free(data->input);
        +	fann_safe_free(data->output);
        +	fann_safe_free(data);
        +}
        +
        +/*
        + * Test a set of training data and calculate the MSE 
        + */
        +FANN_EXTERNAL float FANN_API fann_test_data(struct fann *ann, struct fann_train_data *data)
        +{
        +	unsigned int i;
        +	if(fann_check_input_output_sizes(ann, data) == -1)
        +		return 0;
        +	
        +	fann_reset_MSE(ann);
        +
        +	for(i = 0; i != data->num_data; i++)
        +	{
        +		fann_test(ann, data->input[i], data->output[i]);
        +	}
        +
        +	return fann_get_MSE(ann);
        +}
        +
        +#ifndef FIXEDFANN
        +
        +/*
        + * Internal train function 
        + */
        +float fann_train_epoch_quickprop(struct fann *ann, struct fann_train_data *data)
        +{
        +	unsigned int i;
        +
        +	if(ann->prev_train_slopes == NULL)
        +	{
        +		fann_clear_train_arrays(ann);
        +	}
        +
        +	fann_reset_MSE(ann);
        +
        +	for(i = 0; i < data->num_data; i++)
        +	{
        +		fann_run(ann, data->input[i]);
        +		fann_compute_MSE(ann, data->output[i]);
        +		fann_backpropagate_MSE(ann);
        +		fann_update_slopes_batch(ann, ann->first_layer + 1, ann->last_layer - 1);
        +	}
        +	fann_update_weights_quickprop(ann, data->num_data, 0, ann->total_connections);
        +
        +	return fann_get_MSE(ann);
        +}
        +
        +/*
        + * Internal train function 
        + */
        +float fann_train_epoch_irpropm(struct fann *ann, struct fann_train_data *data)
        +{
        +	unsigned int i;
        +
        +	if(ann->prev_train_slopes == NULL)
        +	{
        +		fann_clear_train_arrays(ann);
        +	}
        +
        +	fann_reset_MSE(ann);
        +
        +	for(i = 0; i < data->num_data; i++)
        +	{
        +		fann_run(ann, data->input[i]);
        +		fann_compute_MSE(ann, data->output[i]);
        +		fann_backpropagate_MSE(ann);
        +		fann_update_slopes_batch(ann, ann->first_layer + 1, ann->last_layer - 1);
        +	}
        +
        +	fann_update_weights_irpropm(ann, 0, ann->total_connections);
        +
        +	return fann_get_MSE(ann);
        +}
        +
        +/*
        + * Internal train function 
        + */
        +float fann_train_epoch_sarprop(struct fann *ann, struct fann_train_data *data)
        +{
        +	unsigned int i;
        +
        +	if(ann->prev_train_slopes == NULL)
        +	{
        +		fann_clear_train_arrays(ann);
        +	}
        +
        +	fann_reset_MSE(ann);
        +
        +	for(i = 0; i < data->num_data; i++)
        +	{
        +		fann_run(ann, data->input[i]);
        +		fann_compute_MSE(ann, data->output[i]);
        +		fann_backpropagate_MSE(ann);
        +		fann_update_slopes_batch(ann, ann->first_layer + 1, ann->last_layer - 1);
        +	}
        +
        +	fann_update_weights_sarprop(ann, ann->sarprop_epoch, 0, ann->total_connections);
        +
        +	++(ann->sarprop_epoch);
        +
        +	return fann_get_MSE(ann);
        +}
        +
        +/*
        + * Internal train function 
        + */
        +float fann_train_epoch_batch(struct fann *ann, struct fann_train_data *data)
        +{
        +	unsigned int i;
        +
        +	fann_reset_MSE(ann);
        +
        +	for(i = 0; i < data->num_data; i++)
        +	{
        +		fann_run(ann, data->input[i]);
        +		fann_compute_MSE(ann, data->output[i]);
        +		fann_backpropagate_MSE(ann);
        +		fann_update_slopes_batch(ann, ann->first_layer + 1, ann->last_layer - 1);
        +	}
        +
        +	fann_update_weights_batch(ann, data->num_data, 0, ann->total_connections);
        +
        +	return fann_get_MSE(ann);
        +}
        +
        +/*
        + * Internal train function 
        + */
        +float fann_train_epoch_incremental(struct fann *ann, struct fann_train_data *data)
        +{
        +	unsigned int i;
        +
        +	fann_reset_MSE(ann);
        +
        +	for(i = 0; i != data->num_data; i++)
        +	{
        +		fann_train(ann, data->input[i], data->output[i]);
        +	}
        +
        +	return fann_get_MSE(ann);
        +}
        +
        +/*
        + * Train for one epoch with the selected training algorithm 
        + */
        +FANN_EXTERNAL float FANN_API fann_train_epoch(struct fann *ann, struct fann_train_data *data)
        +{
        +	if(fann_check_input_output_sizes(ann, data) == -1)
        +		return 0;
        +	
        +	switch (ann->training_algorithm)
        +	{
        +	case FANN_TRAIN_QUICKPROP:
        +		return fann_train_epoch_quickprop(ann, data);
        +	case FANN_TRAIN_RPROP:
        +		return fann_train_epoch_irpropm(ann, data);
        +	case FANN_TRAIN_SARPROP:
        +		return fann_train_epoch_sarprop(ann, data);
        +	case FANN_TRAIN_BATCH:
        +		return fann_train_epoch_batch(ann, data);
        +	case FANN_TRAIN_INCREMENTAL:
        +		return fann_train_epoch_incremental(ann, data);
        +	}
        +	return 0;
        +}
        +
        +FANN_EXTERNAL void FANN_API fann_train_on_data(struct fann *ann, struct fann_train_data *data,
        +											   unsigned int max_epochs,
        +											   unsigned int epochs_between_reports,
        +											   float desired_error)
        +{
        +	float error;
        +	unsigned int i;
        +	int desired_error_reached;
        +
        +#ifdef DEBUG
        +	printf("Training with %s\n", FANN_TRAIN_NAMES[ann->training_algorithm]);
        +#endif
        +
        +	if(epochs_between_reports && ann->callback == NULL)
        +	{
        +		printf("Max epochs %8d. Desired error: %.10f.\n", max_epochs, desired_error);
        +	}
        +
        +	for(i = 1; i <= max_epochs; i++)
        +	{
        +		/*
        +		 * train 
        +		 */
        +		error = fann_train_epoch(ann, data);
        +		desired_error_reached = fann_desired_error_reached(ann, desired_error);
        +
        +		/*
        +		 * print current output 
        +		 */
        +		if(epochs_between_reports &&
        +		   (i % epochs_between_reports == 0 || i == max_epochs || i == 1 ||
        +			desired_error_reached == 0))
        +		{
        +			if(ann->callback == NULL)
        +			{
        +				printf("Epochs     %8d. Current error: %.10f. Bit fail %d.\n", i, error,
        +					   ann->num_bit_fail);
        +			}
        +			else if(((*ann->callback)(ann, data, max_epochs, epochs_between_reports, 
        +									  desired_error, i)) == -1)
        +			{
        +				/*
        +				 * you can break the training by returning -1 
        +				 */
        +				break;
        +			}
        +		}
        +
        +		if(desired_error_reached == 0)
        +			break;
        +	}
        +}
        +
        +FANN_EXTERNAL void FANN_API fann_train_on_file(struct fann *ann, const char *filename,
        +											   unsigned int max_epochs,
        +											   unsigned int epochs_between_reports,
        +											   float desired_error)
        +{
        +	struct fann_train_data *data = fann_read_train_from_file(filename);
        +
        +	if(data == NULL)
        +	{
        +		return;
        +	}
        +	fann_train_on_data(ann, data, max_epochs, epochs_between_reports, desired_error);
        +	fann_destroy_train(data);
        +}
        +
        +#endif
        +
        +/*
        + * shuffles training data, randomizing the order 
        + */
        +FANN_EXTERNAL void FANN_API fann_shuffle_train_data(struct fann_train_data *train_data)
        +{
        +	unsigned int dat = 0, elem, swap;
        +	fann_type temp;
        +
        +	for(; dat < train_data->num_data; dat++)
        +	{
        +		swap = (unsigned int) (rand() % train_data->num_data);
        +		if(swap != dat)
        +		{
        +			for(elem = 0; elem < train_data->num_input; elem++)
        +			{
        +				temp = train_data->input[dat][elem];
        +				train_data->input[dat][elem] = train_data->input[swap][elem];
        +				train_data->input[swap][elem] = temp;
        +			}
        +			for(elem = 0; elem < train_data->num_output; elem++)
        +			{
        +				temp = train_data->output[dat][elem];
        +				train_data->output[dat][elem] = train_data->output[swap][elem];
        +				train_data->output[swap][elem] = temp;
        +			}
        +		}
        +	}
        +}
        +
        +/*
        + * INTERNAL FUNCTION calculates min and max of train data
        + */
        +void fann_get_min_max_data(fann_type ** data, unsigned int num_data, unsigned int num_elem, fann_type *min, fann_type *max)
        +{
        +	fann_type temp;
        +	unsigned int dat, elem;
        +	*min = *max = data[0][0];
        +
        +	for(dat = 0; dat < num_data; dat++)
        +	{
        +		for(elem = 0; elem < num_elem; elem++)
        +		{
        +			temp = data[dat][elem];
        +			if(temp < *min)
        +				*min = temp;
        +			else if(temp > *max)
        +				*max = temp;
        +		}
        +	}
        +}
        +
        +
        +FANN_EXTERNAL fann_type FANN_API fann_get_min_train_input(struct fann_train_data *train_data)
        +{
        +    fann_type min, max;
        +    fann_get_min_max_data(train_data->input, train_data->num_data, train_data->num_input, &min, &max);
        +    return min;
        +}
        +
        +FANN_EXTERNAL fann_type FANN_API fann_get_max_train_input(struct fann_train_data *train_data)
        +{
        +    fann_type min, max;
        +    fann_get_min_max_data(train_data->input, train_data->num_data, train_data->num_input, &min, &max);
        +    return max;
        +}
        +
        +FANN_EXTERNAL fann_type FANN_API fann_get_min_train_output(struct fann_train_data *train_data)
        +{
        +    fann_type min, max;
        +    fann_get_min_max_data(train_data->output, train_data->num_data, train_data->num_output, &min, &max);
        +    return min;
        +}
        +
        +FANN_EXTERNAL fann_type FANN_API fann_get_max_train_output(struct fann_train_data *train_data)
        +{
        +    fann_type min, max;
        +    fann_get_min_max_data(train_data->output, train_data->num_data, train_data->num_output, &min, &max);
        +    return max;
        +}
        +
        +/*
        + * INTERNAL FUNCTION Scales data to a specific range 
        + */
        +void fann_scale_data(fann_type ** data, unsigned int num_data, unsigned int num_elem,
        +					 fann_type new_min, fann_type new_max)
        +{
        +	fann_type old_min, old_max;
        +	fann_get_min_max_data(data, num_data, num_elem, &old_min, &old_max);
        +	fann_scale_data_to_range(data, num_data, num_elem, old_min, old_max, new_min, new_max);
        +}
        +
        +/*
        + * INTERNAL FUNCTION Scales data to a specific range 
        + */
        +FANN_EXTERNAL void FANN_API fann_scale_data_to_range(fann_type ** data, unsigned int num_data, unsigned int num_elem,
        +					 fann_type old_min, fann_type old_max, fann_type new_min, fann_type new_max)
        +{
        +	unsigned int dat, elem;
        +	fann_type temp, old_span, new_span, factor;
        +
        +	old_span = old_max - old_min;
        +	new_span = new_max - new_min;
        +	factor = new_span / old_span;
        +	/*printf("max %f, min %f, factor %f\n", old_max, old_min, factor);*/
        +
        +	for(dat = 0; dat < num_data; dat++)
        +	{
        +		for(elem = 0; elem < num_elem; elem++)
        +		{
        +			temp = (data[dat][elem] - old_min) * factor + new_min;
        +			if(temp < new_min)
        +			{
        +				data[dat][elem] = new_min;
        +				/*
        +				 * printf("error %f < %f\n", temp, new_min); 
        +				 */
        +			}
        +			else if(temp > new_max)
        +			{
        +				data[dat][elem] = new_max;
        +				/*
        +				 * printf("error %f > %f\n", temp, new_max); 
        +				 */
        +			}
        +			else
        +			{
        +				data[dat][elem] = temp;
        +			}
        +		}
        +	}
        +}
        +
        +
        +/*
        + * Scales the inputs in the training data to the specified range 
        + */
        +FANN_EXTERNAL void FANN_API fann_scale_input_train_data(struct fann_train_data *train_data,
        +														fann_type new_min, fann_type new_max)
        +{
        +	fann_scale_data(train_data->input, train_data->num_data, train_data->num_input, new_min,
        +					new_max);
        +}
        +
        +/*
        + * Scales the inputs in the training data to the specified range 
        + */
        +FANN_EXTERNAL void FANN_API fann_scale_output_train_data(struct fann_train_data *train_data,
        +														 fann_type new_min, fann_type new_max)
        +{
        +	fann_scale_data(train_data->output, train_data->num_data, train_data->num_output, new_min,
        +					new_max);
        +}
        +
        +/*
        + * Scales the inputs in the training data to the specified range 
        + */
        +FANN_EXTERNAL void FANN_API fann_scale_train_data(struct fann_train_data *train_data,
        +												  fann_type new_min, fann_type new_max)
        +{
        +	fann_scale_data(train_data->input, train_data->num_data, train_data->num_input, new_min,
        +					new_max);
        +	fann_scale_data(train_data->output, train_data->num_data, train_data->num_output, new_min,
        +					new_max);
        +}
        +
        +/*
        + * merges training data into a single struct. 
        + */
        +FANN_EXTERNAL struct fann_train_data *FANN_API fann_merge_train_data(struct fann_train_data *data1,
        +																	 struct fann_train_data *data2)
        +{
        +	unsigned int i;
        +	fann_type *data_input, *data_output;
        +	struct fann_train_data *dest =
        +		(struct fann_train_data *) malloc(sizeof(struct fann_train_data));
        +
        +	if(dest == NULL)
        +	{
        +		fann_error((struct fann_error*)data1, FANN_E_CANT_ALLOCATE_MEM);
        +		return NULL;
        +	}
        +
        +	if((data1->num_input != data2->num_input) || (data1->num_output != data2->num_output))
        +	{
        +		fann_error((struct fann_error*)data1, FANN_E_TRAIN_DATA_MISMATCH);
        +		return NULL;
        +	}
        +
        +	fann_init_error_data((struct fann_error *) dest);
        +	dest->error_log = data1->error_log;
        +
        +	dest->num_data = data1->num_data+data2->num_data;
        +	dest->num_input = data1->num_input;
        +	dest->num_output = data1->num_output;
        +	dest->input = (fann_type **) calloc(dest->num_data, sizeof(fann_type *));
        +	if(dest->input == NULL)
        +	{
        +		fann_error((struct fann_error*)data1, FANN_E_CANT_ALLOCATE_MEM);
        +		fann_destroy_train(dest);
        +		return NULL;
        +	}
        +
        +	dest->output = (fann_type **) calloc(dest->num_data, sizeof(fann_type *));
        +	if(dest->output == NULL)
        +	{
        +		fann_error((struct fann_error*)data1, FANN_E_CANT_ALLOCATE_MEM);
        +		fann_destroy_train(dest);
        +		return NULL;
        +	}
        +
        +	data_input = (fann_type *) calloc(dest->num_input * dest->num_data, sizeof(fann_type));
        +	if(data_input == NULL)
        +	{
        +		fann_error((struct fann_error*)data1, FANN_E_CANT_ALLOCATE_MEM);
        +		fann_destroy_train(dest);
        +		return NULL;
        +	}
        +	memcpy(data_input, data1->input[0], dest->num_input * data1->num_data * sizeof(fann_type));
        +	memcpy(data_input + (dest->num_input*data1->num_data), 
        +		data2->input[0], dest->num_input * data2->num_data * sizeof(fann_type));
        +
        +	data_output = (fann_type *) calloc(dest->num_output * dest->num_data, sizeof(fann_type));
        +	if(data_output == NULL)
        +	{
        +		fann_error((struct fann_error*)data1, FANN_E_CANT_ALLOCATE_MEM);
        +		fann_destroy_train(dest);
        +		return NULL;
        +	}
        +	memcpy(data_output, data1->output[0], dest->num_output * data1->num_data * sizeof(fann_type));
        +	memcpy(data_output + (dest->num_output*data1->num_data), 
        +		data2->output[0], dest->num_output * data2->num_data * sizeof(fann_type));
        +
        +	for(i = 0; i != dest->num_data; i++)
        +	{
        +		dest->input[i] = data_input;
        +		data_input += dest->num_input;
        +		dest->output[i] = data_output;
        +		data_output += dest->num_output;
        +	}
        +	return dest;
        +}
        +
        +/*
        + * return a copy of a fann_train_data struct 
        + */
        +FANN_EXTERNAL struct fann_train_data *FANN_API fann_duplicate_train_data(struct fann_train_data
        +																		 *data)
        +{
        +	unsigned int i;
        +	fann_type *data_input, *data_output;
        +	struct fann_train_data *dest =
        +		(struct fann_train_data *) malloc(sizeof(struct fann_train_data));
        +
        +	if(dest == NULL)
        +	{
        +		fann_error((struct fann_error*)data, FANN_E_CANT_ALLOCATE_MEM);
        +		return NULL;
        +	}
        +
        +	fann_init_error_data((struct fann_error *) dest);
        +	dest->error_log = data->error_log;
        +
        +	dest->num_data = data->num_data;
        +	dest->num_input = data->num_input;
        +	dest->num_output = data->num_output;
        +	dest->input = (fann_type **) calloc(dest->num_data, sizeof(fann_type *));
        +	if(dest->input == NULL)
        +	{
        +		fann_error((struct fann_error*)data, FANN_E_CANT_ALLOCATE_MEM);
        +		fann_destroy_train(dest);
        +		return NULL;
        +	}
        +
        +	dest->output = (fann_type **) calloc(dest->num_data, sizeof(fann_type *));
        +	if(dest->output == NULL)
        +	{
        +		fann_error((struct fann_error*)data, FANN_E_CANT_ALLOCATE_MEM);
        +		fann_destroy_train(dest);
        +		return NULL;
        +	}
        +
        +	data_input = (fann_type *) calloc(dest->num_input * dest->num_data, sizeof(fann_type));
        +	if(data_input == NULL)
        +	{
        +		fann_error((struct fann_error*)data, FANN_E_CANT_ALLOCATE_MEM);
        +		fann_destroy_train(dest);
        +		return NULL;
        +	}
        +	memcpy(data_input, data->input[0], dest->num_input * dest->num_data * sizeof(fann_type));
        +
        +	data_output = (fann_type *) calloc(dest->num_output * dest->num_data, sizeof(fann_type));
        +	if(data_output == NULL)
        +	{
        +		fann_error((struct fann_error*)data, FANN_E_CANT_ALLOCATE_MEM);
        +		fann_destroy_train(dest);
        +		return NULL;
        +	}
        +	memcpy(data_output, data->output[0], dest->num_output * dest->num_data * sizeof(fann_type));
        +
        +	for(i = 0; i != dest->num_data; i++)
        +	{
        +		dest->input[i] = data_input;
        +		data_input += dest->num_input;
        +		dest->output[i] = data_output;
        +		data_output += dest->num_output;
        +	}
        +	return dest;
        +}
        +
        +FANN_EXTERNAL struct fann_train_data *FANN_API fann_subset_train_data(struct fann_train_data
        +																		 *data, unsigned int pos,
        +																		 unsigned int length)
        +{
        +	unsigned int i;
        +	fann_type *data_input, *data_output;
        +	struct fann_train_data *dest =
        +		(struct fann_train_data *) malloc(sizeof(struct fann_train_data));
        +
        +	if(dest == NULL)
        +	{
        +		fann_error((struct fann_error*)data, FANN_E_CANT_ALLOCATE_MEM);
        +		return NULL;
        +	}
        +	
        +	if(pos > data->num_data || pos+length > data->num_data)
        +	{
        +		fann_error((struct fann_error*)data, FANN_E_TRAIN_DATA_SUBSET, pos, length, data->num_data);
        +		return NULL;
        +	}
        +
        +	fann_init_error_data((struct fann_error *) dest);
        +	dest->error_log = data->error_log;
        +
        +	dest->num_data = length;
        +	dest->num_input = data->num_input;
        +	dest->num_output = data->num_output;
        +	dest->input = (fann_type **) calloc(dest->num_data, sizeof(fann_type *));
        +	if(dest->input == NULL)
        +	{
        +		fann_error((struct fann_error*)data, FANN_E_CANT_ALLOCATE_MEM);
        +		fann_destroy_train(dest);
        +		return NULL;
        +	}
        +
        +	dest->output = (fann_type **) calloc(dest->num_data, sizeof(fann_type *));
        +	if(dest->output == NULL)
        +	{
        +		fann_error((struct fann_error*)data, FANN_E_CANT_ALLOCATE_MEM);
        +		fann_destroy_train(dest);
        +		return NULL;
        +	}
        +
        +	data_input = (fann_type *) calloc(dest->num_input * dest->num_data, sizeof(fann_type));
        +	if(data_input == NULL)
        +	{
        +		fann_error((struct fann_error*)data, FANN_E_CANT_ALLOCATE_MEM);
        +		fann_destroy_train(dest);
        +		return NULL;
        +	}
        +	memcpy(data_input, data->input[pos], dest->num_input * dest->num_data * sizeof(fann_type));
        +
        +	data_output = (fann_type *) calloc(dest->num_output * dest->num_data, sizeof(fann_type));
        +	if(data_output == NULL)
        +	{
        +		fann_error((struct fann_error*)data, FANN_E_CANT_ALLOCATE_MEM);
        +		fann_destroy_train(dest);
        +		return NULL;
        +	}
        +	memcpy(data_output, data->output[pos], dest->num_output * dest->num_data * sizeof(fann_type));
        +
        +	for(i = 0; i != dest->num_data; i++)
        +	{
        +		dest->input[i] = data_input;
        +		data_input += dest->num_input;
        +		dest->output[i] = data_output;
        +		data_output += dest->num_output;
        +	}
        +	return dest;
        +}
        +
        +FANN_EXTERNAL unsigned int FANN_API fann_length_train_data(struct fann_train_data *data)
        +{
        +	return data->num_data;
        +}
        +
        +FANN_EXTERNAL unsigned int FANN_API fann_num_input_train_data(struct fann_train_data *data)
        +{
        +	return data->num_input;
        +}
        +
        +FANN_EXTERNAL unsigned int FANN_API fann_num_output_train_data(struct fann_train_data *data)
        +{
        +	return data->num_output;
        +}
        +
        +/* INTERNAL FUNCTION
        +   Save the train data structure.
        + */
        +int fann_save_train_internal(struct fann_train_data *data, const char *filename,
        +							  unsigned int save_as_fixed, unsigned int decimal_point)
        +{
        +	int retval = 0;
        +	FILE *file = fopen(filename, "w");
        +
        +	if(!file)
        +	{
        +		fann_error((struct fann_error *) data, FANN_E_CANT_OPEN_TD_W, filename);
        +		return -1;
        +	}
        +	retval = fann_save_train_internal_fd(data, file, filename, save_as_fixed, decimal_point);
        +	fclose(file);
        +	
        +	return retval;
        +}
        +
        +/* INTERNAL FUNCTION
        +   Save the train data structure.
        + */
        +int fann_save_train_internal_fd(struct fann_train_data *data, FILE * file, const char *filename,
        +								 unsigned int save_as_fixed, unsigned int decimal_point)
        +{
        +	unsigned int num_data = data->num_data;
        +	unsigned int num_input = data->num_input;
        +	unsigned int num_output = data->num_output;
        +	unsigned int i, j;
        +	int retval = 0;
        +
        +#ifndef FIXEDFANN
        +	unsigned int multiplier = 1 << decimal_point;
        +#endif
        +
        +	fprintf(file, "%u %u %u\n", data->num_data, data->num_input, data->num_output);
        +
        +	for(i = 0; i < num_data; i++)
        +	{
        +		for(j = 0; j < num_input; j++)
        +		{
        +#ifndef FIXEDFANN
        +			if(save_as_fixed)
        +			{
        +				fprintf(file, "%d ", (int) (data->input[i][j] * multiplier));
        +			}
        +			else
        +			{
        +				if(((int) floor(data->input[i][j] + 0.5) * 1000000) ==
        +				   ((int) floor(data->input[i][j] * 1000000.0 + 0.5)))
        +				{
        +					fprintf(file, "%d ", (int) data->input[i][j]);
        +				}
        +				else
        +				{
        +					fprintf(file, "%f ", data->input[i][j]);
        +				}
        +			}
        +#else
        +			fprintf(file, FANNPRINTF " ", data->input[i][j]);
        +#endif
        +		}
        +		fprintf(file, "\n");
        +
        +		for(j = 0; j < num_output; j++)
        +		{
        +#ifndef FIXEDFANN
        +			if(save_as_fixed)
        +			{
        +				fprintf(file, "%d ", (int) (data->output[i][j] * multiplier));
        +			}
        +			else
        +			{
        +				if(((int) floor(data->output[i][j] + 0.5) * 1000000) ==
        +				   ((int) floor(data->output[i][j] * 1000000.0 + 0.5)))
        +				{
        +					fprintf(file, "%d ", (int) data->output[i][j]);
        +				}
        +				else
        +				{
        +					fprintf(file, "%f ", data->output[i][j]);
        +				}
        +			}
        +#else
        +			fprintf(file, FANNPRINTF " ", data->output[i][j]);
        +#endif
        +		}
        +		fprintf(file, "\n");
        +	}
        +	
        +	return retval;
        +}
        +
        +/*
        + * Creates an empty set of training data
        + */
        +FANN_EXTERNAL struct fann_train_data * FANN_API fann_create_train(unsigned int num_data, unsigned int num_input, unsigned int num_output)
        +{
        +	fann_type *data_input, *data_output;
        +	unsigned int i;
        +	struct fann_train_data *data =
        +		(struct fann_train_data *) malloc(sizeof(struct fann_train_data));
        +
        +	if(data == NULL)
        +	{
        +		fann_error(NULL, FANN_E_CANT_ALLOCATE_MEM);
        +		return NULL;
        +	}
        +	
        +	fann_init_error_data((struct fann_error *) data);
        +
        +	data->num_data = num_data;
        +	data->num_input = num_input;
        +	data->num_output = num_output;
        +	data->input = (fann_type **) calloc(num_data, sizeof(fann_type *));
        +	if(data->input == NULL)
        +	{
        +		fann_error(NULL, FANN_E_CANT_ALLOCATE_MEM);
        +		fann_destroy_train(data);
        +		return NULL;
        +	}
        +
        +	data->output = (fann_type **) calloc(num_data, sizeof(fann_type *));
        +	if(data->output == NULL)
        +	{
        +		fann_error(NULL, FANN_E_CANT_ALLOCATE_MEM);
        +		fann_destroy_train(data);
        +		return NULL;
        +	}
        +
        +	data_input = (fann_type *) calloc(num_input * num_data, sizeof(fann_type));
        +	if(data_input == NULL)
        +	{
        +		fann_error(NULL, FANN_E_CANT_ALLOCATE_MEM);
        +		fann_destroy_train(data);
        +		return NULL;
        +	}
        +
        +	data_output = (fann_type *) calloc(num_output * num_data, sizeof(fann_type));
        +	if(data_output == NULL)
        +	{
        +		fann_error(NULL, FANN_E_CANT_ALLOCATE_MEM);
        +		fann_destroy_train(data);
        +		return NULL;
        +	}
        +
        +	for(i = 0; i != num_data; i++)
        +	{
        +		data->input[i] = data_input;
        +		data_input += num_input;
        +		data->output[i] = data_output;
        +		data_output += num_output;
        +	}
        +	return data;
        +}
        +
        +FANN_EXTERNAL struct fann_train_data * FANN_API fann_create_train_pointer_array(unsigned int num_data, unsigned int num_input, fann_type **input, unsigned int num_output, fann_type **output)
        +{
        +	unsigned int i;
        +    struct fann_train_data *data;
        +	data = fann_create_train(num_data, num_input, num_output);
        +
        +	if(data == NULL)
        +		return NULL;
        +
        +    for (i = 0; i < num_data; ++i)
        +    {
        +		memcpy(data->input[i], input[i], num_input*sizeof(fann_type));
        +		memcpy(data->output[i], output[i], num_output*sizeof(fann_type));
        +    }
        +    
        +	return data;
        +}
        +
        +FANN_EXTERNAL struct fann_train_data * FANN_API fann_create_train_array(unsigned int num_data, unsigned int num_input, fann_type *input, unsigned int num_output, fann_type *output)
        +{
        +	unsigned int i;
        +    struct fann_train_data *data;
        +	data = fann_create_train(num_data, num_input, num_output);
        +
        +	if(data == NULL)
        +		return NULL;
        +
        +    for (i = 0; i < num_data; ++i)
        +    {
        +		memcpy(data->input[i], &input[i*num_input], num_input*sizeof(fann_type));
        +		memcpy(data->output[i], &output[i*num_output], num_output*sizeof(fann_type));
        +    }
        +    
        +	return data;
        +}
        +
        +
        +/*
        + * Creates training data from a callback function.
        + */
        +FANN_EXTERNAL struct fann_train_data * FANN_API fann_create_train_from_callback(unsigned int num_data,
        +                                          unsigned int num_input,
        +                                          unsigned int num_output,
        +                                          void (FANN_API *user_function)( unsigned int,
        +                                                                 unsigned int,
        +                                                                 unsigned int,
        +                                                                 fann_type * ,
        +                                                                 fann_type * ))
        +{
        +    unsigned int i;
        +	struct fann_train_data *data = fann_create_train(num_data, num_input, num_output);
        +	if(data == NULL)
        +	{
        +		return NULL;
        +	}
        +
        +    for( i = 0; i != num_data; i++)
        +    {
        +        (*user_function)(i, num_input, num_output, data->input[i], data->output[i]);
        +    }
        +
        +    return data;
        +} 
        +
        +FANN_EXTERNAL fann_type * FANN_API fann_get_train_input(struct fann_train_data * data, unsigned int position)
        +{
        +	if(position >= data->num_data)
        +		return NULL;
        +	return data->input[position];
        +}
        +
        +FANN_EXTERNAL fann_type * FANN_API fann_get_train_output(struct fann_train_data * data, unsigned int position)
        +{
        +	if(position >= data->num_data)
        +		return NULL;
        +	return data->output[position];
        +}
        +
        +
        +/*
        + * INTERNAL FUNCTION Reads training data from a file descriptor. 
        + */
        +struct fann_train_data *fann_read_train_from_fd(FILE * file, const char *filename)
        +{
        +	unsigned int num_input, num_output, num_data, i, j;
        +	unsigned int line = 1;
        +	struct fann_train_data *data;
        +
        +	if(fscanf(file, "%u %u %u\n", &num_data, &num_input, &num_output) != 3)
        +	{
        +		fann_error(NULL, FANN_E_CANT_READ_TD, filename, line);
        +		return NULL;
        +	}
        +	line++;
        +
        +	data = fann_create_train(num_data, num_input, num_output);
        +	if(data == NULL)
        +	{
        +		return NULL;
        +	}
        +
        +	for(i = 0; i != num_data; i++)
        +	{
        +		for(j = 0; j != num_input; j++)
        +		{
        +			if(fscanf(file, FANNSCANF " ", &data->input[i][j]) != 1)
        +			{
        +				fann_error(NULL, FANN_E_CANT_READ_TD, filename, line);
        +				fann_destroy_train(data);
        +				return NULL;
        +			}
        +		}
        +		line++;
        +
        +		for(j = 0; j != num_output; j++)
        +		{
        +			if(fscanf(file, FANNSCANF " ", &data->output[i][j]) != 1)
        +			{
        +				fann_error(NULL, FANN_E_CANT_READ_TD, filename, line);
        +				fann_destroy_train(data);
        +				return NULL;
        +			}
        +		}
        +		line++;
        +	}
        +	return data;
        +}
        +
        +/*
        + * INTERNAL FUNCTION returns 0 if the desired error is reached and -1 if it is not reached
        + */
        +int fann_desired_error_reached(struct fann *ann, float desired_error)
        +{
        +	switch (ann->train_stop_function)
        +	{
        +	case FANN_STOPFUNC_MSE:
        +		if(fann_get_MSE(ann) <= desired_error)
        +			return 0;
        +		break;
        +	case FANN_STOPFUNC_BIT:
        +		if(ann->num_bit_fail <= (unsigned int)desired_error)
        +			return 0;
        +		break;
        +	}
        +	return -1;
        +}
        +
        +#ifndef FIXEDFANN
        +/*
        + * Scale data in input vector before feed it to ann based on previously calculated parameters.
        + */
        +FANN_EXTERNAL void FANN_API fann_scale_input( struct fann *ann, fann_type *input_vector )
        +{
        +	unsigned cur_neuron;
        +	if(ann->scale_mean_in == NULL)
        +	{
        +		fann_error( (struct fann_error *) ann, FANN_E_SCALE_NOT_PRESENT );
        +		return;
        +	}
        +	
        +	for( cur_neuron = 0; cur_neuron < ann->num_input; cur_neuron++ )
        +		input_vector[ cur_neuron ] =
        +			(
        +				( input_vector[ cur_neuron ] - ann->scale_mean_in[ cur_neuron ] )
        +				/ ann->scale_deviation_in[ cur_neuron ]
        +				- ( (fann_type)-1.0 ) /* This is old_min */
        +			)
        +			* ann->scale_factor_in[ cur_neuron ]
        +			+ ann->scale_new_min_in[ cur_neuron ];
        +}
        +
        +/*
        + * Scale data in output vector before feed it to ann based on previously calculated parameters.
        + */
        +FANN_EXTERNAL void FANN_API fann_scale_output( struct fann *ann, fann_type *output_vector )
        +{
        +	unsigned cur_neuron;
        +	if(ann->scale_mean_in == NULL)
        +	{
        +		fann_error( (struct fann_error *) ann, FANN_E_SCALE_NOT_PRESENT );
        +		return;
        +	}
        +
        +	for( cur_neuron = 0; cur_neuron < ann->num_output; cur_neuron++ )
        +		output_vector[ cur_neuron ] =
        +			(
        +				( output_vector[ cur_neuron ] - ann->scale_mean_out[ cur_neuron ] )
        +				/ ann->scale_deviation_out[ cur_neuron ]
        +				- ( (fann_type)-1.0 ) /* This is old_min */
        +			)
        +			* ann->scale_factor_out[ cur_neuron ]
        +			+ ann->scale_new_min_out[ cur_neuron ];
        +}
        +
        +/*
        + * Descale data in input vector after based on previously calculated parameters.
        + */
        +FANN_EXTERNAL void FANN_API fann_descale_input( struct fann *ann, fann_type *input_vector )
        +{
        +	unsigned cur_neuron;
        +	if(ann->scale_mean_in == NULL)
        +	{
        +		fann_error( (struct fann_error *) ann, FANN_E_SCALE_NOT_PRESENT );
        +		return;
        +	}
        +
        +	for( cur_neuron = 0; cur_neuron < ann->num_input; cur_neuron++ )
        +		input_vector[ cur_neuron ] =
        +			(
        +				(
        +					input_vector[ cur_neuron ]
        +					- ann->scale_new_min_in[ cur_neuron ]
        +				)
        +				/ ann->scale_factor_in[ cur_neuron ]
        +				+ ( (fann_type)-1.0 ) /* This is old_min */
        +			)
        +			* ann->scale_deviation_in[ cur_neuron ]
        +			+ ann->scale_mean_in[ cur_neuron ];
        +}
        +
        +/*
        + * Descale data in output vector after get it from ann based on previously calculated parameters.
        + */
        +FANN_EXTERNAL void FANN_API fann_descale_output( struct fann *ann, fann_type *output_vector )
        +{
        +	unsigned cur_neuron;
        +	if(ann->scale_mean_in == NULL)
        +	{
        +		fann_error( (struct fann_error *) ann, FANN_E_SCALE_NOT_PRESENT );
        +		return;
        +	}
        +
        +	for( cur_neuron = 0; cur_neuron < ann->num_output; cur_neuron++ )
        +		output_vector[ cur_neuron ] =
        +			(
        +				(
        +					output_vector[ cur_neuron ]
        +					- ann->scale_new_min_out[ cur_neuron ]
        +				)
        +				/ ann->scale_factor_out[ cur_neuron ]
        +				+ ( (fann_type)-1.0 ) /* This is old_min */
        +			)
        +			* ann->scale_deviation_out[ cur_neuron ]
        +			+ ann->scale_mean_out[ cur_neuron ];
        +}
        +
        +/*
        + * Scale input and output data based on previously calculated parameters.
        + */
        +FANN_EXTERNAL void FANN_API fann_scale_train( struct fann *ann, struct fann_train_data *data )
        +{
        +	unsigned cur_sample;
        +	if(ann->scale_mean_in == NULL)
        +	{
        +		fann_error( (struct fann_error *) ann, FANN_E_SCALE_NOT_PRESENT );
        +		return;
        +	}
        +	/* Check that we have good training data. */
        +	if(fann_check_input_output_sizes(ann, data) == -1)
        +		return;
        +
        +	for( cur_sample = 0; cur_sample < data->num_data; cur_sample++ )
        +	{
        +		fann_scale_input( ann, data->input[ cur_sample ] );
        +		fann_scale_output( ann, data->output[ cur_sample ] );
        +	}
        +}
        +
        +/*
        + * Scale input and output data based on previously calculated parameters.
        + */
        +FANN_EXTERNAL void FANN_API fann_descale_train( struct fann *ann, struct fann_train_data *data )
        +{
        +	unsigned cur_sample;
        +	if(ann->scale_mean_in == NULL)
        +	{
        +		fann_error( (struct fann_error *) ann, FANN_E_SCALE_NOT_PRESENT );
        +		return;
        +	}
        +	/* Check that we have good training data. */
        +	if(fann_check_input_output_sizes(ann, data) == -1)
        +		return;
        +
        +	for( cur_sample = 0; cur_sample < data->num_data; cur_sample++ )
        +	{
        +		fann_descale_input( ann, data->input[ cur_sample ] );
        +		fann_descale_output( ann, data->output[ cur_sample ] );
        +	}
        +}
        +
        +#define SCALE_RESET( what, where, default_value )							\
        +	for( cur_neuron = 0; cur_neuron < ann->num_##where##put; cur_neuron++ )	\
        +		ann->what##_##where[ cur_neuron ] = ( default_value );
        +
        +#define SCALE_SET_PARAM( where )																		\
        +	/* Calculate mean: sum(x)/length */																	\
        +	for( cur_neuron = 0; cur_neuron < ann->num_##where##put; cur_neuron++ )								\
        +		ann->scale_mean_##where[ cur_neuron ] = 0.0f;													\
        +	for( cur_neuron = 0; cur_neuron < ann->num_##where##put; cur_neuron++ )								\
        +		for( cur_sample = 0; cur_sample < data->num_data; cur_sample++ )								\
        +			ann->scale_mean_##where[ cur_neuron ] += (float)data->where##put[ cur_sample ][ cur_neuron ];\
        +	for( cur_neuron = 0; cur_neuron < ann->num_##where##put; cur_neuron++ )								\
        +		ann->scale_mean_##where[ cur_neuron ] /= (float)data->num_data;									\
        +	/* Calculate deviation: sqrt(sum((x-mean)^2)/length) */												\
        +	for( cur_neuron = 0; cur_neuron < ann->num_##where##put; cur_neuron++ )								\
        +		ann->scale_deviation_##where[ cur_neuron ] = 0.0f; 												\
        +	for( cur_neuron = 0; cur_neuron < ann->num_##where##put; cur_neuron++ )								\
        +		for( cur_sample = 0; cur_sample < data->num_data; cur_sample++ )								\
        +			ann->scale_deviation_##where[ cur_neuron ] += 												\
        +				/* Another local variable in macro? Oh no! */											\
        +				( 																						\
        +					(float)data->where##put[ cur_sample ][ cur_neuron ] 								\
        +					- ann->scale_mean_##where[ cur_neuron ] 											\
        +				) 																						\
        +				*																						\
        +				( 																						\
        +					(float)data->where##put[ cur_sample ][ cur_neuron ] 								\
        +					- ann->scale_mean_##where[ cur_neuron ] 											\
        +				); 																						\
        +	for( cur_neuron = 0; cur_neuron < ann->num_##where##put; cur_neuron++ )								\
        +		ann->scale_deviation_##where[ cur_neuron ] =													\
        +			sqrtf( ann->scale_deviation_##where[ cur_neuron ] / (float)data->num_data ); 			\
        +	/* Calculate factor: (new_max-new_min)/(old_max(1)-old_min(-1)) */									\
        +	/* Looks like we dont need whole array of factors? */												\
        +	for( cur_neuron = 0; cur_neuron < ann->num_##where##put; cur_neuron++ )								\
        +		ann->scale_factor_##where[ cur_neuron ] =														\
        +			( new_##where##put_max - new_##where##put_min )												\
        +			/																							\
        +			( 1.0f - ( -1.0f ) );																		\
        +	/* Copy new minimum. */																				\
        +	/* Looks like we dont need whole array of new minimums? */											\
        +	for( cur_neuron = 0; cur_neuron < ann->num_##where##put; cur_neuron++ )								\
        +		ann->scale_new_min_##where[ cur_neuron ] = new_##where##put_min;
        +
        +FANN_EXTERNAL int FANN_API fann_set_input_scaling_params(
        +	struct fann *ann,
        +	const struct fann_train_data *data,
        +	float new_input_min,
        +	float new_input_max)
        +{
        +	unsigned cur_neuron, cur_sample;
        +
        +	/* Check that we have good training data. */
        +	/* No need for if( !params || !ann ) */
        +	if(data->num_input != ann->num_input
        +	   || data->num_output != ann->num_output)
        +	{
        +		fann_error( (struct fann_error *) ann, FANN_E_TRAIN_DATA_MISMATCH );
        +		return -1;
        +	}
        +
        +	if(ann->scale_mean_in == NULL)
        +		fann_allocate_scale(ann);
        +	
        +	if(ann->scale_mean_in == NULL)
        +		return -1;
        +		
        +	if( !data->num_data )
        +	{
        +		SCALE_RESET( scale_mean,		in,	0.0 )
        +		SCALE_RESET( scale_deviation,	in,	1.0 )
        +		SCALE_RESET( scale_new_min,		in,	-1.0 )
        +		SCALE_RESET( scale_factor,		in,	1.0 )
        +	}
        +	else
        +	{
        +		SCALE_SET_PARAM( in );
        +	}
        +
        +	return 0;
        +}
        +
        +FANN_EXTERNAL int FANN_API fann_set_output_scaling_params(
        +	struct fann *ann,
        +	const struct fann_train_data *data,
        +	float new_output_min,
        +	float new_output_max)
        +{
        +	unsigned cur_neuron, cur_sample;
        +
        +	/* Check that we have good training data. */
        +	/* No need for if( !params || !ann ) */
        +	if(data->num_input != ann->num_input
        +	   || data->num_output != ann->num_output)
        +	{
        +		fann_error( (struct fann_error *) ann, FANN_E_TRAIN_DATA_MISMATCH );
        +		return -1;
        +	}
        +
        +	if(ann->scale_mean_out == NULL)
        +		fann_allocate_scale(ann);
        +	
        +	if(ann->scale_mean_out == NULL)
        +		return -1;
        +		
        +	if( !data->num_data )
        +	{
        +		SCALE_RESET( scale_mean,		out,	0.0 )
        +		SCALE_RESET( scale_deviation,	out,	1.0 )
        +		SCALE_RESET( scale_new_min,		out,	-1.0 )
        +		SCALE_RESET( scale_factor,		out,	1.0 )
        +	}
        +	else
        +	{
        +		SCALE_SET_PARAM( out );
        +	}
        +
        +	return 0;
        +}
        +
        +/*
        + * Calculate scaling parameters for future use based on training data.
        + */
        +FANN_EXTERNAL int FANN_API fann_set_scaling_params(
        +	struct fann *ann,
        +	const struct fann_train_data *data,
        +	float new_input_min,
        +	float new_input_max,
        +	float new_output_min,
        +	float new_output_max)
        +{
        +	if(fann_set_input_scaling_params(ann, data, new_input_min, new_input_max) == 0)
        +		return fann_set_output_scaling_params(ann, data, new_output_min, new_output_max);
        +	else
        +		return -1;
        +}
        +
        +/*
        + * Clears scaling parameters.
        + */
        +FANN_EXTERNAL int FANN_API fann_clear_scaling_params(struct fann *ann)
        +{
        +	unsigned cur_neuron;
        +
        +	if(ann->scale_mean_out == NULL)
        +		fann_allocate_scale(ann);
        +	
        +	if(ann->scale_mean_out == NULL)
        +		return -1;
        +	
        +	SCALE_RESET( scale_mean,		in,	0.0 )
        +	SCALE_RESET( scale_deviation,	in,	1.0 )
        +	SCALE_RESET( scale_new_min,		in,	-1.0 )
        +	SCALE_RESET( scale_factor,		in,	1.0 )
        +
        +	SCALE_RESET( scale_mean,		out,	0.0 )
        +	SCALE_RESET( scale_deviation,	out,	1.0 )
        +	SCALE_RESET( scale_new_min,		out,	-1.0 )
        +	SCALE_RESET( scale_factor,		out,	1.0 )
        +	
        +	return 0;
        +}
        +
        +#endif
        +
        +int fann_check_input_output_sizes(struct fann *ann, struct fann_train_data *data)
        +{
        +	if(ann->num_input != data->num_input)
        +    {
        +    	fann_error((struct fann_error *) ann, FANN_E_INPUT_NO_MATCH,
        +        	ann->num_input, data->num_input);
        +        return -1;
        +    }
        +        
        +	if(ann->num_output != data->num_output)
        +	{
        +		fann_error((struct fann_error *) ann, FANN_E_OUTPUT_NO_MATCH,
        +					ann->num_output, data->num_output);
        +		return -1;
        +	}
        +	
        +	return 0;
        +}
        diff --git a/lib/ann/fann/src/fixedfann.c b/lib/ann/fann/src/fixedfann.c
        new file mode 100644
        index 0000000..a48cd08
        --- /dev/null
        +++ b/lib/ann/fann/src/fixedfann.c
        @@ -0,0 +1,30 @@
        +/*
        +Fast Artificial Neural Network Library (fann)
        +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com)
        +
        +This library is free software; you can redistribute it and/or
        +modify it under the terms of the GNU Lesser General Public
        +License as published by the Free Software Foundation; either
        +version 2.1 of the License, or (at your option) any later version.
        +
        +This library is distributed in the hope that it will be useful,
        +but WITHOUT ANY WARRANTY; without even the implied warranty of
        +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
        +Lesser General Public License for more details.
        +
        +You should have received a copy of the GNU Lesser General Public
        +License along with this library; if not, write to the Free Software
        +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        +*/
        +
        +/* Easy way to allow for build of multiple binaries */
        +
        +#include "config.h"
        +#include "fixedfann.h"
        +
        +#include "fann.c"
        +#include "fann_io.c"
        +#include "fann_train.c"
        +#include "fann_train_data.c"
        +#include "fann_error.c"
        +#include "fann_cascade.c"
        diff --git a/lib/ann/fann/src/floatfann.c b/lib/ann/fann/src/floatfann.c
        new file mode 100644
        index 0000000..b9ad0dd
        --- /dev/null
        +++ b/lib/ann/fann/src/floatfann.c
        @@ -0,0 +1,31 @@
        +/*
        +Fast Artificial Neural Network Library (fann)
        +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com)
        +
        +This library is free software; you can redistribute it and/or
        +modify it under the terms of the GNU Lesser General Public
        +License as published by the Free Software Foundation; either
        +version 2.1 of the License, or (at your option) any later version.
        +
        +This library is distributed in the hope that it will be useful,
        +but WITHOUT ANY WARRANTY; without even the implied warranty of
        +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
        +Lesser General Public License for more details.
        +
        +You should have received a copy of the GNU Lesser General Public
        +License along with this library; if not, write to the Free Software
        +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        +*/
        +
        +/* Easy way to allow for build of multiple binaries */
        +
        +#include "config.h"
        +#include "floatfann.h"
        +
        +#include "fann.c"
        +#include "fann_io.c"
        +#include "fann_train.c"
        +#include "fann_train_data.c"
        +#include "fann_error.c"
        +#include "fann_cascade.c"
        +#include "parallel_fann.c"
        diff --git a/lib/ann/fann/src/include/CMakeLists.txt b/lib/ann/fann/src/include/CMakeLists.txt
        new file mode 100644
        index 0000000..056868b
        --- /dev/null
        +++ b/lib/ann/fann/src/include/CMakeLists.txt
        @@ -0,0 +1,10 @@
        +########### install files ###############
        +
        +IF(NOT OPENMP_FOUND OR DISABLE_PARALLEL_FANN)
        +  SET(PARALLEL_INCLUDES "")
        +ELSE(NOT OPENMP_FOUND OR DISABLE_PARALLEL_FANN)
        +  SET(PARALLEL_INCLUDES parallel_fann.h parallel_fann.hpp)
        +ENDIF(NOT OPENMP_FOUND OR DISABLE_PARALLEL_FANN)
        +
        +install (FILES fann.h doublefann.h fann_internal.h floatfann.h fann_data.h fixedfann.h fann_activation.h fann_cascade.h fann_error.h fann_train.h fann_io.h fann_cpp.h fann_data_cpp.h fann_training_data_cpp.h ${PARALLEL_INCLUDES} DESTINATION ${INCLUDE_INSTALL_DIR})
        +
        diff --git a/lib/ann/fann/src/include/config.h b/lib/ann/fann/src/include/config.h
        new file mode 100644
        index 0000000..f2fb1c8
        --- /dev/null
        +++ b/lib/ann/fann/src/include/config.h
        @@ -0,0 +1,8 @@
        +/* Name of package */
        +/* #undef PACKAGE */
        +
        +/* Version number of package */
        +#define VERSION "2.2.0"
        +
        +/* Define for the x86_64 CPU famyly */
        +/* #undef X86_64 */
        diff --git a/lib/ann/fann/src/include/doublefann.h b/lib/ann/fann/src/include/doublefann.h
        new file mode 100644
        index 0000000..247779f
        --- /dev/null
        +++ b/lib/ann/fann/src/include/doublefann.h
        @@ -0,0 +1,33 @@
        +/*
        +Fast Artificial Neural Network Library (fann)
        +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com)
        +
        +This library is free software; you can redistribute it and/or
        +modify it under the terms of the GNU Lesser General Public
        +License as published by the Free Software Foundation; either
        +version 2.1 of the License, or (at your option) any later version.
        +
        +This library is distributed in the hope that it will be useful,
        +but WITHOUT ANY WARRANTY; without even the implied warranty of
        +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
        +Lesser General Public License for more details.
        +
        +You should have received a copy of the GNU Lesser General Public
        +License along with this library; if not, write to the Free Software
        +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        +*/
        +
        +#ifndef __doublefann_h__
        +#define __doublefann_h__
        +
        +typedef double fann_type;
        +
        +#undef DOUBLEFANN
        +#define DOUBLEFANN
        +#define FANNPRINTF "%.20e"
        +#define FANNSCANF "%le"
        +
        +#define FANN_INCLUDE
        +#include "fann.h"
        +
        +#endif
        diff --git a/lib/ann/fann/src/include/fann.h b/lib/ann/fann/src/include/fann.h
        new file mode 100644
        index 0000000..633aa02
        --- /dev/null
        +++ b/lib/ann/fann/src/include/fann.h
        @@ -0,0 +1,669 @@
        +/*
        +Fast Artificial Neural Network Library (fann)
        +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com)
        +
        +This library is free software; you can redistribute it and/or
        +modify it under the terms of the GNU Lesser General Public
        +License as published by the Free Software Foundation; either
        +version 2.1 of the License, or (at your option) any later version.
        +
        +This library is distributed in the hope that it will be useful,
        +but WITHOUT ANY WARRANTY; without even the implied warranty of
        +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
        +Lesser General Public License for more details.
        +
        +You should have received a copy of the GNU Lesser General Public
        +License along with this library; if not, write to the Free Software
        +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        +*/  
        +	
        +/* This file defines the user interface to the fann library.
        +   It is included from fixedfann.h, floatfann.h and doublefann.h and should
        +   NOT be included directly. If included directly it will react as if
        +   floatfann.h was included.
        +*/ 
        +
        +/* Section: FANN Creation/Execution
        +   
        +   The FANN library is designed to be very easy to use. 
        +   A feedforward ann can be created by a simple <fann_create_standard> function, while
        +   other ANNs can be created just as easily. The ANNs can be trained by <fann_train_on_file>
        +   and executed by <fann_run>.
        +   
        +   All of this can be done without much knowledge of the internals of ANNs, although the ANNs created will
        +   still be powerful and effective. If you have more knowledge about ANNs, and desire more control, almost
        +   every part of the ANNs can be parametrized to create specialized and highly optimal ANNs.
        + */
        +/* Group: Creation, Destruction & Execution */
        +	
        +#ifndef FANN_INCLUDE
        +/* just to allow for inclusion of fann.h in normal stuations where only floats are needed */ 
        +#ifdef FIXEDFANN
        +#include "fixedfann.h"
        +#else
        +#include "floatfann.h"
        +#endif	/* FIXEDFANN  */
        +	
        +#else
        +	
        +/* COMPAT_TIME REPLACEMENT */ 
        +#ifndef _WIN32
        +#include <sys/time.h>
        +#else	/* _WIN32 */
        +#if !defined(_MSC_EXTENSIONS) && !defined(_INC_WINDOWS)  
        +extern unsigned long __stdcall GetTickCount(void);
        +
        +#else	/* _MSC_EXTENSIONS */
        +#define WIN32_LEAN_AND_MEAN
        +#include <windows.h>
        +#endif	/* _MSC_EXTENSIONS */
        +#endif	/* _WIN32 */
        +		
        +#ifndef __fann_h__
        +#define __fann_h__
        +	
        +#ifdef __cplusplus
        +extern "C"
        +{
        +	
        +#ifndef __cplusplus
        +} /* to fool automatic indention engines */ 
        +#endif
        +#endif	/* __cplusplus */
        + 
        +#ifndef NULL
        +#define NULL 0
        +#endif	/* NULL */
        + 
        +/* ----- Macros used to define DLL external entrypoints ----- */ 
        +/*
        + DLL Export, import and calling convention for Windows.
        + Only defined for Microsoft VC++ FANN_EXTERNAL indicates
        + that a function will be exported/imported from a dll
        + FANN_API ensures that the DLL calling convention
        + will be used for  a function regardless of the calling convention
        + used when compiling.
        +
        + For a function to be exported from a DLL its prototype and
        + declaration must be like this:
        +    FANN_EXTERNAL void FANN_API function(char *argument)
        +
        + The following ifdef block is a way of creating macros which
        + make exporting from a DLL simple. All files within a DLL are
        + compiled with the FANN_DLL_EXPORTS symbol defined on the
        + command line. This symbol should not be defined on any project
        + that uses this DLL. This way any other project whose source
        + files include this file see FANN_EXTERNAL functions as being imported
        + from a DLL, whereas a DLL sees symbols defined with this
        + macro as being exported which makes calls more efficient.
        + The __stdcall calling convention is used for functions in a
        + windows DLL.
        +
        + The callback functions for fann_set_callback must be declared as FANN_API
        + so the DLL and the application program both use the same
        + calling convention.
        +*/ 
        + 
        +/*
        + The following sets the default for MSVC++ 2003 or later to use
        + the fann dll's. To use a lib or fixedfann.c, floatfann.c or doublefann.c
        + with those compilers FANN_NO_DLL has to be defined before
        + including the fann headers.
        + The default for previous MSVC compilers such as VC++ 6 is not
        + to use dll's. To use dll's FANN_USE_DLL has to be defined before
        + including the fann headers.
        +*/ 
        +#if (_MSC_VER > 1300)
        +#ifndef FANN_NO_DLL
        +#define FANN_USE_DLL
        +#endif	/* FANN_USE_LIB */
        +#endif	/* _MSC_VER */
        +#if defined(_MSC_VER) && (defined(FANN_USE_DLL) || defined(FANN_DLL_EXPORTS))
        +#ifdef FANN_DLL_EXPORTS
        +#define FANN_EXTERNAL __declspec(dllexport)
        +#else							/*  */
        +#define FANN_EXTERNAL __declspec(dllimport)
        +#endif	/* FANN_DLL_EXPORTS*/
        +#define FANN_API __stdcall
        +#else							/*  */
        +#define FANN_EXTERNAL
        +#define FANN_API
        +#endif	/* _MSC_VER */
        +/* ----- End of macros used to define DLL external entrypoints ----- */ 
        +
        +#include "fann_error.h"
        +#include "fann_activation.h"
        +#include "fann_data.h"
        +#include "fann_internal.h"
        +#include "fann_train.h"
        +#include "fann_cascade.h"
        +#include "fann_io.h"
        +
        +/* Function: fann_create_standard
        +	
        +	Creates a standard fully connected backpropagation neural network.
        +
        +	There will be a bias neuron in each layer (except the output layer),
        +	and this bias neuron will be connected to all neurons in the next layer.
        +	When running the network, the bias nodes always emits 1.
        +	
        +	To destroy a <struct fann> use the <fann_destroy> function.
        +
        +	Parameters:
        +		num_layers - The total number of layers including the input and the output layer.
        +		... - Integer values determining the number of neurons in each layer starting with the 
        +			input layer and ending with the output layer.
        +			
        +	Returns:
        +		A pointer to the newly created <struct fann>.
        +			
        +	Example:
        +		> // Creating an ANN with 2 input neurons, 1 output neuron, 
        +		> // and two hidden layers with 8 and 9 neurons
        +		> struct fann *ann = fann_create_standard(4, 2, 8, 9, 1);
        +		
        +	See also:
        +		<fann_create_standard_array>, <fann_create_sparse>, <fann_create_shortcut>		
        +		
        +	This function appears in FANN >= 2.0.0.
        +*/ 
        +FANN_EXTERNAL struct fann *FANN_API fann_create_standard(unsigned int num_layers, ...);
        +
        +/* Function: fann_create_standard_array
        +   Just like <fann_create_standard>, but with an array of layer sizes
        +   instead of individual parameters.
        +
        +	Example:
        +		> // Creating an ANN with 2 input neurons, 1 output neuron, 
        +		> // and two hidden layers with 8 and 9 neurons
        +		> unsigned int layers[4] = {2, 8, 9, 1};
        +		> struct fann *ann = fann_create_standard_array(4, layers);
        +
        +	See also:
        +		<fann_create_standard>, <fann_create_sparse>, <fann_create_shortcut>
        +
        +	This function appears in FANN >= 2.0.0.
        +*/ 
        +FANN_EXTERNAL struct fann *FANN_API fann_create_standard_array(unsigned int num_layers,
        +													           const unsigned int *layers);
        +
        +/* Function: fann_create_sparse
        +
        +	Creates a standard backpropagation neural network, which is not fully connected.
        +
        +	Parameters:
        +		connection_rate - The connection rate controls how many connections there will be in the
        +   			network. If the connection rate is set to 1, the network will be fully
        +   			connected, but if it is set to 0.5 only half of the connections will be set.
        +			A connection rate of 1 will yield the same result as <fann_create_standard>
        +		num_layers - The total number of layers including the input and the output layer.
        +		... - Integer values determining the number of neurons in each layer starting with the 
        +			input layer and ending with the output layer.
        +			
        +	Returns:
        +		A pointer to the newly created <struct fann>.
        +
        +	See also:
        +		<fann_create_sparse_array>, <fann_create_standard>, <fann_create_shortcut>
        +
        +	This function appears in FANN >= 2.0.0.
        +*/
        +FANN_EXTERNAL struct fann *FANN_API fann_create_sparse(float connection_rate, 
        +	                                                   unsigned int num_layers, ...);
        +
        +
        +/* Function: fann_create_sparse_array
        +   Just like <fann_create_sparse>, but with an array of layer sizes
        +   instead of individual parameters.
        +
        +	See <fann_create_standard_array> for a description of the parameters.
        +
        +	See also:
        +		<fann_create_sparse>, <fann_create_standard>, <fann_create_shortcut>
        +
        +	This function appears in FANN >= 2.0.0.
        +*/
        +FANN_EXTERNAL struct fann *FANN_API fann_create_sparse_array(float connection_rate, 
        +	                                                         unsigned int num_layers, 
        +															 const unsigned int *layers);
        +
        +/* Function: fann_create_shortcut
        +
        +	Creates a standard backpropagation neural network, which is fully connected and which
        +	also has shortcut connections.
        +
        + 	Shortcut connections are connections that skip layers. A fully connected network with shortcut 
        +	connections is a network where all neurons are connected to all neurons in later layers. 
        +	Including direct connections from the input layer to the output layer.
        +
        +	See <fann_create_standard> for a description of the parameters.
        +
        +	See also:
        +		<fann_create_shortcut_array>, <fann_create_standard>, <fann_create_sparse>, 
        +
        +	This function appears in FANN >= 2.0.0.
        +*/ 
        +FANN_EXTERNAL struct fann *FANN_API fann_create_shortcut(unsigned int num_layers, ...);
        +
        +/* Function: fann_create_shortcut_array
        +   Just like <fann_create_shortcut>, but with an array of layer sizes
        +   instead of individual parameters.
        +
        +	See <fann_create_standard_array> for a description of the parameters.
        +
        +	See also:
        +		<fann_create_shortcut>, <fann_create_standard>, <fann_create_sparse>
        +
        +	This function appears in FANN >= 2.0.0.
        +*/
        +FANN_EXTERNAL struct fann *FANN_API fann_create_shortcut_array(unsigned int num_layers,
        +															   const unsigned int *layers);
        +/* Function: fann_destroy
        +   Destroys the entire network, properly freeing all the associated memory.
        +
        +	This function appears in FANN >= 1.0.0.
        +*/ 
        +FANN_EXTERNAL void FANN_API fann_destroy(struct fann *ann);
        +
        +
        +/* Function: fann_copy
        +   Creates a copy of a fann structure. 
        +   
        +   Data in the user data <fann_set_user_data> is not copied, but the user data pointer is copied.
        +
        +	This function appears in FANN >= 2.2.0.
        +*/ 
        +FANN_EXTERNAL struct fann * FANN_API fann_copy(struct fann *ann);
        +
        +
        +/* Function: fann_run
        +	Will run input through the neural network, returning an array of outputs, the number of which being 
        +	equal to the number of neurons in the output layer.
        +
        +	See also:
        +		<fann_test>
        +
        +	This function appears in FANN >= 1.0.0.
        +*/ 
        +FANN_EXTERNAL fann_type * FANN_API fann_run(struct fann *ann, fann_type * input);
        +
        +/* Function: fann_randomize_weights
        +	Give each connection a random weight between *min_weight* and *max_weight*
        +   
        +	From the beginning the weights are random between -0.1 and 0.1.
        +
        +	See also:
        +		<fann_init_weights>
        +
        +	This function appears in FANN >= 1.0.0.
        +*/ 
        +FANN_EXTERNAL void FANN_API fann_randomize_weights(struct fann *ann, fann_type min_weight,
        +												   fann_type max_weight);
        +
        +/* Function: fann_init_weights
        +  	Initialize the weights using Widrow + Nguyen's algorithm.
        +	
        + 	This function behaves similarly to fann_randomize_weights. It will use the algorithm developed 
        +	by Derrick Nguyen and Bernard Widrow to set the weights in such a way 
        +	as to speed up training. This technique is not always successful, and in some cases can be less 
        +	efficient than a purely random initialization.
        +
        +	The algorithm requires access to the range of the input data (ie, largest and smallest input), 
        +	and therefore accepts a second argument, data, which is the training data that will be used to 
        +	train the network.
        +
        +	See also:
        +		<fann_randomize_weights>, <fann_read_train_from_file>
        +
        +	This function appears in FANN >= 1.1.0.
        +*/ 
        +FANN_EXTERNAL void FANN_API fann_init_weights(struct fann *ann, struct fann_train_data *train_data);
        +
        +/* Function: fann_print_connections
        +	Will print the connections of the ann in a compact matrix, for easy viewing of the internals 
        +	of the ann.
        +
        +	The output from fann_print_connections on a small (2 2 1) network trained on the xor problem
        +	>Layer / Neuron 012345
        +	>L   1 / N    3 BBa...
        +	>L   1 / N    4 BBA...
        +	>L   1 / N    5 ......
        +	>L   2 / N    6 ...BBA
        +	>L   2 / N    7 ......
        +		  
        +	This network has five real neurons and two bias neurons. This gives a total of seven neurons 
        +	named from 0 to 6. The connections between these neurons can be seen in the matrix. "." is a 
        +	place where there is no connection, while a character tells how strong the connection is on a 
        +	scale from a-z. The two real neurons in the hidden layer (neuron 3 and 4 in layer 1) have 
        +	connections from the three neurons in the previous layer as is visible in the first two lines. 
        +	The output neuron (6) has connections from the three neurons in the hidden layer 3 - 5 as is 
        +	visible in the fourth line.
        +
        +	To simplify the matrix output neurons are not visible as neurons that connections can come from, 
        +	and input and bias neurons are not visible as neurons that connections can go to.
        +
        +	This function appears in FANN >= 1.2.0.
        +*/ 
        +FANN_EXTERNAL void FANN_API fann_print_connections(struct fann *ann);
        +
        +/* Group: Parameters */
        +/* Function: fann_print_parameters
        +
        +  	Prints all of the parameters and options of the ANN 
        +
        +	This function appears in FANN >= 1.2.0.
        +*/ 
        +FANN_EXTERNAL void FANN_API fann_print_parameters(struct fann *ann);
        +
        +
        +/* Function: fann_get_num_input
        +
        +   Get the number of input neurons.
        +
        +	This function appears in FANN >= 1.0.0.
        +*/ 
        +FANN_EXTERNAL unsigned int FANN_API fann_get_num_input(struct fann *ann);
        +
        +
        +/* Function: fann_get_num_output
        +
        +   Get the number of output neurons.
        +
        +	This function appears in FANN >= 1.0.0.
        +*/ 
        +FANN_EXTERNAL unsigned int FANN_API fann_get_num_output(struct fann *ann);
        +
        +
        +/* Function: fann_get_total_neurons
        +
        +   Get the total number of neurons in the entire network. This number does also include the 
        +	bias neurons, so a 2-4-2 network has 2+4+2 +2(bias) = 10 neurons.
        +
        +	This function appears in FANN >= 1.0.0.
        +*/ 
        +FANN_EXTERNAL unsigned int FANN_API fann_get_total_neurons(struct fann *ann);
        +
        +
        +/* Function: fann_get_total_connections
        +
        +   Get the total number of connections in the entire network.
        +
        +	This function appears in FANN >= 1.0.0.
        +*/ 
        +FANN_EXTERNAL unsigned int FANN_API fann_get_total_connections(struct fann *ann);
        +
        +/* Function: fann_get_network_type
        +
        +    Get the type of neural network it was created as.
        +
        +    Parameters:
        +		ann - A previously created neural network structure of
        +            type <struct fann> pointer.
        +
        +	Returns:
        +        The neural network type from enum <fann_network_type_enum>
        +
        +    See Also:
        +        <fann_network_type_enum>
        +
        +   This function appears in FANN >= 2.1.0
        +*/
        +FANN_EXTERNAL enum fann_nettype_enum FANN_API fann_get_network_type(struct fann *ann);
        +
        +/* Function: fann_get_connection_rate
        +
        +    Get the connection rate used when the network was created
        +
        +    Parameters:
        +		ann - A previously created neural network structure of
        +            type <struct fann> pointer.
        +
        +	Returns:
        +        The connection rate
        +
        +   This function appears in FANN >= 2.1.0
        +*/
        +FANN_EXTERNAL float FANN_API fann_get_connection_rate(struct fann *ann);
        +
        +/* Function: fann_get_num_layers
        +
        +    Get the number of layers in the network
        +
        +    Parameters:
        +		ann - A previously created neural network structure of
        +            type <struct fann> pointer.
        +			
        +	Returns:
        +		The number of layers in the neural network
        +			
        +	Example:
        +		> // Obtain the number of layers in a neural network
        +		> struct fann *ann = fann_create_standard(4, 2, 8, 9, 1);
        +        > unsigned int num_layers = fann_get_num_layers(ann);
        +
        +   This function appears in FANN >= 2.1.0
        +*/
        +FANN_EXTERNAL unsigned int FANN_API fann_get_num_layers(struct fann *ann);
        +
        +/*Function: fann_get_layer_array
        +
        +    Get the number of neurons in each layer in the network.
        +
        +    Bias is not included so the layers match the fann_create functions.
        +
        +    Parameters:
        +		ann - A previously created neural network structure of
        +            type <struct fann> pointer.
        +
        +    The layers array must be preallocated to at least
        +    sizeof(unsigned int) * fann_num_layers() long.
        +
        +   This function appears in FANN >= 2.1.0
        +*/
        +FANN_EXTERNAL void FANN_API fann_get_layer_array(struct fann *ann, unsigned int *layers);
        +
        +/* Function: fann_get_bias_array
        +
        +    Get the number of bias in each layer in the network.
        +
        +    Parameters:
        +		ann - A previously created neural network structure of
        +            type <struct fann> pointer.
        +
        +    The bias array must be preallocated to at least
        +    sizeof(unsigned int) * fann_num_layers() long.
        +
        +   This function appears in FANN >= 2.1.0
        +*/
        +FANN_EXTERNAL void FANN_API fann_get_bias_array(struct fann *ann, unsigned int *bias);
        +
        +/* Function: fann_get_connection_array
        +
        +    Get the connections in the network.
        +
        +    Parameters:
        +		ann - A previously created neural network structure of
        +            type <struct fann> pointer.
        +
        +    The connections array must be preallocated to at least
        +    sizeof(struct fann_connection) * fann_get_total_connections() long.
        +
        +   This function appears in FANN >= 2.1.0
        +*/
        +FANN_EXTERNAL void FANN_API fann_get_connection_array(struct fann *ann,
        +    struct fann_connection *connections);
        +
        +/* Function: fann_set_weight_array
        +
        +    Set connections in the network.
        +
        +    Parameters:
        +		ann - A previously created neural network structure of
        +            type <struct fann> pointer.
        +
        +    Only the weights can be changed, connections and weights are ignored
        +    if they do not already exist in the network.
        +
        +    The array must have sizeof(struct fann_connection) * num_connections size.
        +
        +   This function appears in FANN >= 2.1.0
        +*/
        +FANN_EXTERNAL void FANN_API fann_set_weight_array(struct fann *ann,
        +    struct fann_connection *connections, unsigned int num_connections);
        +
        +/* Function: fann_set_weight
        +
        +    Set a connection in the network.
        +
        +    Parameters:
        +		ann - A previously created neural network structure of
        +            type <struct fann> pointer.
        +
        +    Only the weights can be changed. The connection/weight is
        +    ignored if it does not already exist in the network.
        +
        +   This function appears in FANN >= 2.1.0
        +*/
        +FANN_EXTERNAL void FANN_API fann_set_weight(struct fann *ann,
        +    unsigned int from_neuron, unsigned int to_neuron, fann_type weight);
        +
        +/* Function: fann_get_weights
        +
        +    Get all the network weights.
        +
        +    Parameters:
        +		ann - A previously created neural network structure of
        +            type <struct fann> pointer.
        +		weights - A fann_type pointer to user data. It is the responsibility
        +			of the user to allocate sufficient space to store all the weights.
        +
        +   This function appears in FANN >= x.y.z
        +*/
        +FANN_EXTERNAL void FANN_API fann_get_weights(struct fann *ann, fann_type *weights);
        +
        +
        +/* Function: fann_set_weights
        +
        +    Set network weights.
        +
        +    Parameters:
        +		ann - A previously created neural network structure of
        +            type <struct fann> pointer.
        +		weights - A fann_type pointer to user data. It is the responsibility
        +			of the user to make the weights array sufficient long 
        +			to store all the weights.
        +
        +   This function appears in FANN >= x.y.z
        +*/
        +FANN_EXTERNAL void FANN_API fann_set_weights(struct fann *ann, fann_type *weights);
        +
        +
        +/* Function: fann_set_user_data
        +
        +    Store a pointer to user defined data. The pointer can be
        +    retrieved with <fann_get_user_data> for example in a
        +    callback. It is the user's responsibility to allocate and
        +    deallocate any data that the pointer might point to.
        +
        +    Parameters:
        +		ann - A previously created neural network structure of
        +            type <struct fann> pointer.
        +		user_data - A void pointer to user defined data.
        +
        +   This function appears in FANN >= 2.1.0
        +*/
        +FANN_EXTERNAL void FANN_API fann_set_user_data(struct fann *ann, void *user_data);
        +
        +/* Function: fann_get_user_data
        +
        +    Get a pointer to user defined data that was previously set
        +    with <fann_set_user_data>. It is the user's responsibility to
        +    allocate and deallocate any data that the pointer might point to.
        +
        +    Parameters:
        +		ann - A previously created neural network structure of
        +            type <struct fann> pointer.
        +
        +    Returns:
        +        A void pointer to user defined data.
        +
        +   This function appears in FANN >= 2.1.0
        +*/
        +FANN_EXTERNAL void * FANN_API fann_get_user_data(struct fann *ann);
        +
        +/* Function: fann_disable_seed_rand
        +
        +   Disables the automatic random generator seeding that happens in FANN.
        +
        +   Per default FANN will always seed the random generator when creating a new network,
        +   unless FANN_NO_SEED is defined during compilation of the library. This method can
        +   disable this at runtime.
        +
        +   This function appears in FANN >= 2.3.0
        +*/
        +FANN_EXTERNAL void FANN_API fann_disable_seed_rand();
        +
        +/* Function: fann_enable_seed_rand
        +
        +   Enables the automatic random generator seeding that happens in FANN.
        +
        +   Per default FANN will always seed the random generator when creating a new network,
        +   unless FANN_NO_SEED is defined during compilation of the library. This method can
        +   disable this at runtime.
        +
        +   This function appears in FANN >= 2.3.0
        +*/
        +FANN_EXTERNAL void FANN_API fann_enable_seed_rand();
        +
        +
        +#ifdef FIXEDFANN
        +	
        +/* Function: fann_get_decimal_point
        +
        +	Returns the position of the decimal point in the ann.
        +
        +	This function is only available when the ANN is in fixed point mode.
        +
        +	The decimal point is described in greater detail in the tutorial <Fixed Point Usage>.
        +
        +	See also:
        +		<Fixed Point Usage>, <fann_get_multiplier>, <fann_save_to_fixed>, <fann_save_train_to_fixed>
        +
        +	This function appears in FANN >= 1.0.0.
        +*/ 
        +FANN_EXTERNAL unsigned int FANN_API fann_get_decimal_point(struct fann *ann);
        +
        +
        +/* Function: fann_get_multiplier
        +
        +    returns the multiplier that fix point data is multiplied with.
        +
        +	This function is only available when the ANN is in fixed point mode.
        +
        +	The multiplier is the used to convert between floating point and fixed point notation. 
        +	A floating point number is multiplied with the multiplier in order to get the fixed point
        +	number and visa versa.
        +
        +	The multiplier is described in greater detail in the tutorial <Fixed Point Usage>.
        +
        +	See also:
        +		<Fixed Point Usage>, <fann_get_decimal_point>, <fann_save_to_fixed>, <fann_save_train_to_fixed>
        +
        +	This function appears in FANN >= 1.0.0.
        +*/ 
        +FANN_EXTERNAL unsigned int FANN_API fann_get_multiplier(struct fann *ann);
        +
        +#endif	/* FIXEDFANN */
        +
        +#ifdef __cplusplus
        +#ifndef __cplusplus
        +/* to fool automatic indention engines */ 
        +{
        +	
        +#endif
        +} 
        +#endif	/* __cplusplus */
        +	
        +#endif	/* __fann_h__ */
        +	
        +#endif /* NOT FANN_INCLUDE */
        diff --git a/lib/ann/fann/src/include/fann_activation.h b/lib/ann/fann/src/include/fann_activation.h
        new file mode 100644
        index 0000000..3ab2193
        --- /dev/null
        +++ b/lib/ann/fann/src/include/fann_activation.h
        @@ -0,0 +1,144 @@
        +/*
        +Fast Artificial Neural Network Library (fann)
        +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com)
        +
        +This library is free software; you can redistribute it and/or
        +modify it under the terms of the GNU Lesser General Public
        +License as published by the Free Software Foundation; either
        +version 2.1 of the License, or (at your option) any later version.
        +
        +This library is distributed in the hope that it will be useful,
        +but WITHOUT ANY WARRANTY; without even the implied warranty of
        +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
        +Lesser General Public License for more details.
        +
        +You should have received a copy of the GNU Lesser General Public
        +License along with this library; if not, write to the Free Software
        +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        +*/
        +
        +#ifndef __fann_activation_h__
        +#define __fann_activation_h__
        +/* internal include file, not to be included directly
        + */
        +
        +/* Implementation of the activation functions
        + */
        +
        +/* stepwise linear functions used for some of the activation functions */
        +
        +/* defines used for the stepwise linear functions */
        +
        +#define fann_linear_func(v1, r1, v2, r2, sum) (((((r2)-(r1)) * ((sum)-(v1)))/((v2)-(v1))) + (r1))
        +#define fann_stepwise(v1, v2, v3, v4, v5, v6, r1, r2, r3, r4, r5, r6, min, max, sum) (sum < v5 ? (sum < v3 ? (sum < v2 ? (sum < v1 ? min : fann_linear_func(v1, r1, v2, r2, sum)) : fann_linear_func(v2, r2, v3, r3, sum)) : (sum < v4 ? fann_linear_func(v3, r3, v4, r4, sum) : fann_linear_func(v4, r4, v5, r5, sum))) : (sum < v6 ? fann_linear_func(v5, r5, v6, r6, sum) : max))
        +
        +/* FANN_LINEAR */
        +/* #define fann_linear(steepness, sum) fann_mult(steepness, sum) */
        +#define fann_linear_derive(steepness, value) (steepness)
        +
        +/* FANN_SIGMOID */
        +/* #define fann_sigmoid(steepness, sum) (1.0f/(1.0f + exp(-2.0f * steepness * sum))) */
        +#define fann_sigmoid_real(sum) (1.0f/(1.0f + exp(-2.0f * sum)))
        +#define fann_sigmoid_derive(steepness, value) (2.0f * steepness * value * (1.0f - value))
        +
        +/* FANN_SIGMOID_SYMMETRIC */
        +/* #define fann_sigmoid_symmetric(steepness, sum) (2.0f/(1.0f + exp(-2.0f * steepness * sum)) - 1.0f) */
        +#define fann_sigmoid_symmetric_real(sum) (2.0f/(1.0f + exp(-2.0f * sum)) - 1.0f)
        +#define fann_sigmoid_symmetric_derive(steepness, value) steepness * (1.0f - (value*value))
        +
        +/* FANN_GAUSSIAN */
        +/* #define fann_gaussian(steepness, sum) (exp(-sum * steepness * sum * steepness)) */
        +#define fann_gaussian_real(sum) (exp(-sum * sum))
        +#define fann_gaussian_derive(steepness, value, sum) (-2.0f * sum * value * steepness * steepness)
        +
        +/* FANN_GAUSSIAN_SYMMETRIC */
        +/* #define fann_gaussian_symmetric(steepness, sum) ((exp(-sum * steepness * sum * steepness)*2.0)-1.0) */
        +#define fann_gaussian_symmetric_real(sum) ((exp(-sum * sum)*2.0f)-1.0f)
        +#define fann_gaussian_symmetric_derive(steepness, value, sum) (-2.0f * sum * (value+1.0f) * steepness * steepness)
        +
        +/* FANN_ELLIOT */
        +/* #define fann_elliot(steepness, sum) (((sum * steepness) / 2.0f) / (1.0f + fann_abs(sum * steepness)) + 0.5f) */
        +#define fann_elliot_real(sum) (((sum) / 2.0f) / (1.0f + fann_abs(sum)) + 0.5f)
        +#define fann_elliot_derive(steepness, value, sum) (steepness * 1.0f / (2.0f * (1.0f + fann_abs(sum)) * (1.0f + fann_abs(sum))))
        +
        +/* FANN_ELLIOT_SYMMETRIC */
        +/* #define fann_elliot_symmetric(steepness, sum) ((sum * steepness) / (1.0f + fann_abs(sum * steepness)))*/
        +#define fann_elliot_symmetric_real(sum) ((sum) / (1.0f + fann_abs(sum)))
        +#define fann_elliot_symmetric_derive(steepness, value, sum) (steepness * 1.0f / ((1.0f + fann_abs(sum)) * (1.0f + fann_abs(sum))))
        +
        +/* FANN_SIN_SYMMETRIC */
        +#define fann_sin_symmetric_real(sum) (sin(sum))
        +#define fann_sin_symmetric_derive(steepness, sum) (steepness*cos(steepness*sum))
        +
        +/* FANN_COS_SYMMETRIC */
        +#define fann_cos_symmetric_real(sum) (cos(sum))
        +#define fann_cos_symmetric_derive(steepness, sum) (steepness*-sin(steepness*sum))
        +
        +/* FANN_SIN */
        +#define fann_sin_real(sum) (sin(sum)/2.0f+0.5f)
        +#define fann_sin_derive(steepness, sum) (steepness*cos(steepness*sum)/2.0f)
        +
        +/* FANN_COS */
        +#define fann_cos_real(sum) (cos(sum)/2.0f+0.5f)
        +#define fann_cos_derive(steepness, sum) (steepness*-sin(steepness*sum)/2.0f)
        +
        +#define fann_activation_switch(activation_function, value, result) \
        +switch(activation_function) \
        +{ \
        +	case FANN_LINEAR: \
        +		result = (fann_type)value; \
        +        break; \
        +	case FANN_LINEAR_PIECE: \
        +		result = (fann_type)((value < 0) ? 0 : (value > 1) ? 1 : value); \
        +        break; \
        +	case FANN_LINEAR_PIECE_SYMMETRIC: \
        +		result = (fann_type)((value < -1) ? -1 : (value > 1) ? 1 : value); \
        +        break; \
        +	case FANN_SIGMOID: \
        +		result = (fann_type)fann_sigmoid_real(value); \
        +        break; \
        +	case FANN_SIGMOID_SYMMETRIC: \
        +		result = (fann_type)fann_sigmoid_symmetric_real(value); \
        +        break; \
        +	case FANN_SIGMOID_SYMMETRIC_STEPWISE: \
        +		result = (fann_type)fann_stepwise(-2.64665293693542480469e+00, -1.47221934795379638672e+00, -5.49306154251098632812e-01, 5.49306154251098632812e-01, 1.47221934795379638672e+00, 2.64665293693542480469e+00, -9.90000009536743164062e-01, -8.99999976158142089844e-01, -5.00000000000000000000e-01, 5.00000000000000000000e-01, 8.99999976158142089844e-01, 9.90000009536743164062e-01, -1, 1, value); \
        +        break; \
        +	case FANN_SIGMOID_STEPWISE: \
        +		result = (fann_type)fann_stepwise(-2.64665246009826660156e+00, -1.47221946716308593750e+00, -5.49306154251098632812e-01, 5.49306154251098632812e-01, 1.47221934795379638672e+00, 2.64665293693542480469e+00, 4.99999988824129104614e-03, 5.00000007450580596924e-02, 2.50000000000000000000e-01, 7.50000000000000000000e-01, 9.49999988079071044922e-01, 9.95000004768371582031e-01, 0, 1, value); \
        +        break; \
        +	case FANN_THRESHOLD: \
        +		result = (fann_type)((value < 0) ? 0 : 1); \
        +        break; \
        +	case FANN_THRESHOLD_SYMMETRIC: \
        +		result = (fann_type)((value < 0) ? -1 : 1); \
        +        break; \
        +	case FANN_GAUSSIAN: \
        +		result = (fann_type)fann_gaussian_real(value); \
        +        break; \
        +	case FANN_GAUSSIAN_SYMMETRIC: \
        +		result = (fann_type)fann_gaussian_symmetric_real(value); \
        +        break; \
        +	case FANN_ELLIOT: \
        +		result = (fann_type)fann_elliot_real(value); \
        +	    break; \
        +	case FANN_ELLIOT_SYMMETRIC: \
        +		result = (fann_type)fann_elliot_symmetric_real(value); \
        +        break; \
        +	case FANN_SIN_SYMMETRIC: \
        +		result = (fann_type)fann_sin_symmetric_real(value); \
        +        break; \
        +	case FANN_COS_SYMMETRIC: \
        +		result = (fann_type)fann_cos_symmetric_real(value); \
        +        break; \
        +	case FANN_SIN: \
        +		result = (fann_type)fann_sin_real(value); \
        +        break; \
        +	case FANN_COS: \
        +		result = (fann_type)fann_cos_real(value); \
        +        break; \
        +	case FANN_GAUSSIAN_STEPWISE: \
        +        result = 0; \
        +        break; \
        +}
        +
        +#endif
        diff --git a/lib/ann/fann/src/include/fann_cascade.h b/lib/ann/fann/src/include/fann_cascade.h
        new file mode 100644
        index 0000000..71004ac
        --- /dev/null
        +++ b/lib/ann/fann/src/include/fann_cascade.h
        @@ -0,0 +1,561 @@
        +/*
        +Fast Artificial Neural Network Library (fann)
        +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com)
        +
        +This library is free software; you can redistribute it and/or
        +modify it under the terms of the GNU Lesser General Public
        +License as published by the Free Software Foundation; either
        +version 2.1 of the License, or (at your option) any later version.
        +
        +This library is distributed in the hope that it will be useful,
        +but WITHOUT ANY WARRANTY; without even the implied warranty of
        +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
        +Lesser General Public License for more details.
        +
        +You should have received a copy of the GNU Lesser General Public
        +License along with this library; if not, write to the Free Software
        +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        +*/
        +
        +#ifndef __fann_cascade_h__
        +#define __fann_cascade_h__
        +
        +/* Section: FANN Cascade Training
        +   Cascade training differs from ordinary training in the sense that it starts with an empty neural network
        +   and then adds neurons one by one, while it trains the neural network. The main benefit of this approach
        +   is that you do not have to guess the number of hidden layers and neurons prior to training, but cascade 
        +   training has also proved better at solving some problems.
        +   
        +   The basic idea of cascade training is that a number of candidate neurons are trained separate from the 
        +   real network, then the most promising of these candidate neurons is inserted into the neural network. 
        +   Then the output connections are trained and new candidate neurons are prepared. The candidate neurons are 
        +   created as shortcut connected neurons in a new hidden layer, which means that the final neural network
        +   will consist of a number of hidden layers with one shortcut connected neuron in each.
        +*/
        +
        +/* Group: Cascade Training */
        +
        +#ifndef FIXEDFANN
        +/* Function: fann_cascadetrain_on_data
        +
        +   Trains on an entire dataset, for a period of time using the Cascade2 training algorithm.
        +   This algorithm adds neurons to the neural network while training, which means that it
        +   needs to start with an ANN without any hidden layers. The neural network should also use
        +   shortcut connections, so <fann_create_shortcut> should be used to create the ANN like this:
        +   >struct fann *ann = fann_create_shortcut(2, fann_num_input_train_data(train_data), fann_num_output_train_data(train_data));
        +   
        +   This training uses the parameters set using the fann_set_cascade_..., but it also uses another
        +   training algorithm as it's internal training algorithm. This algorithm can be set to either
        +   FANN_TRAIN_RPROP or FANN_TRAIN_QUICKPROP by <fann_set_training_algorithm>, and the parameters 
        +   set for these training algorithms will also affect the cascade training.
        +   
        +   Parameters:
        +   		ann - The neural network
        +   		data - The data, which should be used during training
        +   		max_neuron - The maximum number of neurons to be added to neural network
        +   		neurons_between_reports - The number of neurons between printing a status report to stdout.
        +   			A value of zero means no reports should be printed.
        +   		desired_error - The desired <fann_get_MSE> or <fann_get_bit_fail>, depending on which stop function
        +   			is chosen by <fann_set_train_stop_function>.
        +
        +	Instead of printing out reports every neurons_between_reports, a callback function can be called 
        +	(see <fann_set_callback>).
        +	
        +	See also:
        +		<fann_train_on_data>, <fann_cascadetrain_on_file>, <Parameters>
        +
        +	This function appears in FANN >= 2.0.0. 
        +*/
        +FANN_EXTERNAL void FANN_API fann_cascadetrain_on_data(struct fann *ann,
        +													  struct fann_train_data *data,
        +													  unsigned int max_neurons,
        +													  unsigned int neurons_between_reports,
        +													  float desired_error);
        +
        +/* Function: fann_cascadetrain_on_file
        +   
        +   Does the same as <fann_cascadetrain_on_data>, but reads the training data directly from a file.
        +   
        +   See also:
        +   		<fann_cascadetrain_on_data>
        +
        +	This function appears in FANN >= 2.0.0.
        +*/ 
        +FANN_EXTERNAL void FANN_API fann_cascadetrain_on_file(struct fann *ann, const char *filename,
        +													  unsigned int max_neurons,
        +													  unsigned int neurons_between_reports,
        +													  float desired_error);
        +
        +/* Group: Parameters */
        +													  
        +/* Function: fann_get_cascade_output_change_fraction
        +
        +   The cascade output change fraction is a number between 0 and 1 determining how large a fraction
        +   the <fann_get_MSE> value should change within <fann_get_cascade_output_stagnation_epochs> during
        +   training of the output connections, in order for the training not to stagnate. If the training 
        +   stagnates, the training of the output connections will be ended and new candidates will be prepared.
        +   
        +   This means:
        +   If the MSE does not change by a fraction of <fann_get_cascade_output_change_fraction> during a 
        +   period of <fann_get_cascade_output_stagnation_epochs>, the training of the output connections
        +   is stopped because the training has stagnated.
        +
        +   If the cascade output change fraction is low, the output connections will be trained more and if the
        +   fraction is high they will be trained less.
        +   
        +   The default cascade output change fraction is 0.01, which is equivalent to a 1% change in MSE.
        +
        +   See also:
        +   		<fann_set_cascade_output_change_fraction>, <fann_get_MSE>, <fann_get_cascade_output_stagnation_epochs>
        +
        +	This function appears in FANN >= 2.0.0.
        + */
        +FANN_EXTERNAL float FANN_API fann_get_cascade_output_change_fraction(struct fann *ann);
        +
        +
        +/* Function: fann_set_cascade_output_change_fraction
        +
        +   Sets the cascade output change fraction.
        +   
        +   See also:
        +   		<fann_get_cascade_output_change_fraction>
        +
        +	This function appears in FANN >= 2.0.0.
        + */
        +FANN_EXTERNAL void FANN_API fann_set_cascade_output_change_fraction(struct fann *ann, 
        +															 float cascade_output_change_fraction);
        +
        +/* Function: fann_get_cascade_output_stagnation_epochs
        +
        +   The number of cascade output stagnation epochs determines the number of epochs training is allowed to
        +   continue without changing the MSE by a fraction of <fann_get_cascade_output_change_fraction>.
        +   
        +   See more info about this parameter in <fann_get_cascade_output_change_fraction>.
        +   
        +   The default number of cascade output stagnation epochs is 12.
        +
        +   See also:
        +   		<fann_set_cascade_output_stagnation_epochs>, <fann_get_cascade_output_change_fraction>
        +
        +	This function appears in FANN >= 2.0.0.
        + */
        +FANN_EXTERNAL unsigned int FANN_API fann_get_cascade_output_stagnation_epochs(struct fann *ann);
        +
        +
        +/* Function: fann_set_cascade_output_stagnation_epochs
        +
        +   Sets the number of cascade output stagnation epochs.
        +   
        +   See also:
        +   		<fann_get_cascade_output_stagnation_epochs>
        +
        +	This function appears in FANN >= 2.0.0.
        + */
        +FANN_EXTERNAL void FANN_API fann_set_cascade_output_stagnation_epochs(struct fann *ann, 
        +															 unsigned int cascade_output_stagnation_epochs);
        +
        +
        +/* Function: fann_get_cascade_candidate_change_fraction
        +
        +   The cascade candidate change fraction is a number between 0 and 1 determining how large a fraction
        +   the <fann_get_MSE> value should change within <fann_get_cascade_candidate_stagnation_epochs> during
        +   training of the candidate neurons, in order for the training not to stagnate. If the training 
        +   stagnates, the training of the candidate neurons will be ended and the best candidate will be selected.
        +   
        +   This means:
        +   If the MSE does not change by a fraction of <fann_get_cascade_candidate_change_fraction> during a 
        +   period of <fann_get_cascade_candidate_stagnation_epochs>, the training of the candidate neurons
        +   is stopped because the training has stagnated.
        +
        +   If the cascade candidate change fraction is low, the candidate neurons will be trained more and if the
        +   fraction is high they will be trained less.
        +   
        +   The default cascade candidate change fraction is 0.01, which is equivalent to a 1% change in MSE.
        +
        +   See also:
        +   		<fann_set_cascade_candidate_change_fraction>, <fann_get_MSE>, <fann_get_cascade_candidate_stagnation_epochs>
        +
        +	This function appears in FANN >= 2.0.0.
        + */
        +FANN_EXTERNAL float FANN_API fann_get_cascade_candidate_change_fraction(struct fann *ann);
        +
        +
        +/* Function: fann_set_cascade_candidate_change_fraction
        +
        +   Sets the cascade candidate change fraction.
        +   
        +   See also:
        +   		<fann_get_cascade_candidate_change_fraction>
        +
        +	This function appears in FANN >= 2.0.0.
        + */
        +FANN_EXTERNAL void FANN_API fann_set_cascade_candidate_change_fraction(struct fann *ann, 
        +															 float cascade_candidate_change_fraction);
        +
        +/* Function: fann_get_cascade_candidate_stagnation_epochs
        +
        +   The number of cascade candidate stagnation epochs determines the number of epochs training is allowed to
        +   continue without changing the MSE by a fraction of <fann_get_cascade_candidate_change_fraction>.
        +   
        +   See more info about this parameter in <fann_get_cascade_candidate_change_fraction>.
        +
        +   The default number of cascade candidate stagnation epochs is 12.
        +
        +   See also:
        +   		<fann_set_cascade_candidate_stagnation_epochs>, <fann_get_cascade_candidate_change_fraction>
        +
        +	This function appears in FANN >= 2.0.0.
        + */
        +FANN_EXTERNAL unsigned int FANN_API fann_get_cascade_candidate_stagnation_epochs(struct fann *ann);
        +
        +
        +/* Function: fann_set_cascade_candidate_stagnation_epochs
        +
        +   Sets the number of cascade candidate stagnation epochs.
        +   
        +   See also:
        +   		<fann_get_cascade_candidate_stagnation_epochs>
        +
        +	This function appears in FANN >= 2.0.0.
        + */
        +FANN_EXTERNAL void FANN_API fann_set_cascade_candidate_stagnation_epochs(struct fann *ann, 
        +															 unsigned int cascade_candidate_stagnation_epochs);
        +
        +
        +/* Function: fann_get_cascade_weight_multiplier
        +
        +   The weight multiplier is a parameter which is used to multiply the weights from the candidate neuron
        +   before adding the neuron to the neural network. This parameter is usually between 0 and 1, and is used
        +   to make the training a bit less aggressive.
        +
        +   The default weight multiplier is 0.4
        +
        +   See also:
        +   		<fann_set_cascade_weight_multiplier>
        +
        +	This function appears in FANN >= 2.0.0.
        + */
        +FANN_EXTERNAL fann_type FANN_API fann_get_cascade_weight_multiplier(struct fann *ann);
        +
        +
        +/* Function: fann_set_cascade_weight_multiplier
        +   
        +   Sets the weight multiplier.
        +   
        +   See also:
        +   		<fann_get_cascade_weight_multiplier>
        +
        +	This function appears in FANN >= 2.0.0.
        + */
        +FANN_EXTERNAL void FANN_API fann_set_cascade_weight_multiplier(struct fann *ann, 
        +															 fann_type cascade_weight_multiplier);
        +
        +
        +/* Function: fann_get_cascade_candidate_limit
        +
        +   The candidate limit is a limit for how much the candidate neuron may be trained.
        +   The limit is a limit on the proportion between the MSE and candidate score.
        +   
        +   Set this to a lower value to avoid overfitting and to a higher if overfitting is
        +   not a problem.
        +   
        +   The default candidate limit is 1000.0
        +
        +   See also:
        +   		<fann_set_cascade_candidate_limit>
        +
        +	This function appears in FANN >= 2.0.0.
        + */
        +FANN_EXTERNAL fann_type FANN_API fann_get_cascade_candidate_limit(struct fann *ann);
        +
        +
        +/* Function: fann_set_cascade_candidate_limit
        +
        +   Sets the candidate limit.
        +  
        +   See also:
        +   		<fann_get_cascade_candidate_limit>
        +
        +	This function appears in FANN >= 2.0.0.
        + */
        +FANN_EXTERNAL void FANN_API fann_set_cascade_candidate_limit(struct fann *ann, 
        +															 fann_type cascade_candidate_limit);
        +
        +
        +/* Function: fann_get_cascade_max_out_epochs
        +
        +   The maximum out epochs determines the maximum number of epochs the output connections
        +   may be trained after adding a new candidate neuron.
        +   
        +   The default max out epochs is 150
        +
        +   See also:
        +   		<fann_set_cascade_max_out_epochs>
        +
        +	This function appears in FANN >= 2.0.0.
        + */
        +FANN_EXTERNAL unsigned int FANN_API fann_get_cascade_max_out_epochs(struct fann *ann);
        +
        +
        +/* Function: fann_set_cascade_max_out_epochs
        +
        +   Sets the maximum out epochs.
        +
        +   See also:
        +   		<fann_get_cascade_max_out_epochs>
        +
        +	This function appears in FANN >= 2.0.0.
        + */
        +FANN_EXTERNAL void FANN_API fann_set_cascade_max_out_epochs(struct fann *ann, 
        +															 unsigned int cascade_max_out_epochs);
        +
        +
        +/* Function: fann_get_cascade_min_out_epochs
        +
        +   The minimum out epochs determines the minimum number of epochs the output connections
        +   must be trained after adding a new candidate neuron.
        +   
        +   The default min out epochs is 50
        +
        +   See also:
        +   		<fann_set_cascade_min_out_epochs>
        +
        +	This function appears in FANN >= 2.2.0.
        + */
        +FANN_EXTERNAL unsigned int FANN_API fann_get_cascade_min_out_epochs(struct fann *ann);
        +
        +
        +/* Function: fann_set_cascade_min_out_epochs
        +
        +   Sets the minimum out epochs.
        +
        +   See also:
        +   		<fann_get_cascade_min_out_epochs>
        +
        +	This function appears in FANN >= 2.2.0.
        + */
        +FANN_EXTERNAL void FANN_API fann_set_cascade_min_out_epochs(struct fann *ann, 
        +															 unsigned int cascade_min_out_epochs);
        +
        +/* Function: fann_get_cascade_max_cand_epochs
        +
        +   The maximum candidate epochs determines the maximum number of epochs the input 
        +   connections to the candidates may be trained before adding a new candidate neuron.
        +   
        +   The default max candidate epochs is 150
        +
        +   See also:
        +   		<fann_set_cascade_max_cand_epochs>
        +
        +	This function appears in FANN >= 2.0.0.
        + */
        +FANN_EXTERNAL unsigned int FANN_API fann_get_cascade_max_cand_epochs(struct fann *ann);
        +
        +
        +/* Function: fann_set_cascade_max_cand_epochs
        +
        +   Sets the max candidate epochs.
        +  
        +   See also:
        +   		<fann_get_cascade_max_cand_epochs>
        +
        +	This function appears in FANN >= 2.0.0.
        + */
        +FANN_EXTERNAL void FANN_API fann_set_cascade_max_cand_epochs(struct fann *ann, 
        +															 unsigned int cascade_max_cand_epochs);
        +
        +
        +/* Function: fann_get_cascade_min_cand_epochs
        +
        +   The minimum candidate epochs determines the minimum number of epochs the input 
        +   connections to the candidates may be trained before adding a new candidate neuron.
        +   
        +   The default min candidate epochs is 50
        +
        +   See also:
        +   		<fann_set_cascade_min_cand_epochs>
        +
        +	This function appears in FANN >= 2.2.0.
        + */
        +FANN_EXTERNAL unsigned int FANN_API fann_get_cascade_min_cand_epochs(struct fann *ann);
        +
        +
        +/* Function: fann_set_cascade_min_cand_epochs
        +
        +   Sets the min candidate epochs.
        +  
        +   See also:
        +   		<fann_get_cascade_min_cand_epochs>
        +
        +	This function appears in FANN >= 2.2.0.
        + */
        +FANN_EXTERNAL void FANN_API fann_set_cascade_min_cand_epochs(struct fann *ann, 
        +															 unsigned int cascade_min_cand_epochs);
        +
        +/* Function: fann_get_cascade_num_candidates
        +
        +   The number of candidates used during training (calculated by multiplying <fann_get_cascade_activation_functions_count>,
        +   <fann_get_cascade_activation_steepnesses_count> and <fann_get_cascade_num_candidate_groups>). 
        +
        +   The actual candidates is defined by the <fann_get_cascade_activation_functions> and 
        +   <fann_get_cascade_activation_steepnesses> arrays. These arrays define the activation functions 
        +   and activation steepnesses used for the candidate neurons. If there are 2 activation functions
        +   in the activation function array and 3 steepnesses in the steepness array, then there will be 
        +   2x3=6 different candidates which will be trained. These 6 different candidates can be copied into
        +   several candidate groups, where the only difference between these groups is the initial weights.
        +   If the number of groups is set to 2, then the number of candidate neurons will be 2x3x2=12. The 
        +   number of candidate groups is defined by <fann_set_cascade_num_candidate_groups>.
        +
        +   The default number of candidates is 6x4x2 = 48
        +
        +   See also:
        +   		<fann_get_cascade_activation_functions>, <fann_get_cascade_activation_functions_count>, 
        +   		<fann_get_cascade_activation_steepnesses>, <fann_get_cascade_activation_steepnesses_count>,
        +   		<fann_get_cascade_num_candidate_groups>
        +
        +	This function appears in FANN >= 2.0.0.
        + */ 
        +FANN_EXTERNAL unsigned int FANN_API fann_get_cascade_num_candidates(struct fann *ann);
        +
        +/* Function: fann_get_cascade_activation_functions_count
        +
        +   The number of activation functions in the <fann_get_cascade_activation_functions> array.
        +
        +   The default number of activation functions is 10.
        +
        +   See also:
        +   		<fann_get_cascade_activation_functions>, <fann_set_cascade_activation_functions>
        +
        +	This function appears in FANN >= 2.0.0.
        + */
        +FANN_EXTERNAL unsigned int FANN_API fann_get_cascade_activation_functions_count(struct fann *ann);
        +
        +
        +/* Function: fann_get_cascade_activation_functions
        +
        +   The cascade activation functions array is an array of the different activation functions used by
        +   the candidates. 
        +   
        +   See <fann_get_cascade_num_candidates> for a description of which candidate neurons will be 
        +   generated by this array.
        +   
        +   The default activation functions are {FANN_SIGMOID, FANN_SIGMOID_SYMMETRIC, FANN_GAUSSIAN,
        +   FANN_GAUSSIAN_SYMMETRIC, FANN_ELLIOT, FANN_ELLIOT_SYMMETRIC, FANN_SIN_SYMMETRIC,
        +   FANN_COS_SYMMETRIC, FANN_SIN, FANN_COS}
        +
        +   See also:
        +   		<fann_get_cascade_activation_functions_count>, <fann_set_cascade_activation_functions>,
        +   		<fann_activationfunc_enum>
        +
        +	This function appears in FANN >= 2.0.0.
        + */
        +FANN_EXTERNAL enum fann_activationfunc_enum * FANN_API fann_get_cascade_activation_functions(
        +															struct fann *ann);
        +
        +
        +/* Function: fann_set_cascade_activation_functions
        +
        +   Sets the array of cascade candidate activation functions. The array must be just as long
        +   as defined by the count.
        +
        +   See <fann_get_cascade_num_candidates> for a description of which candidate neurons will be 
        +   generated by this array.
        +
        +   See also:
        +   		<fann_get_cascade_activation_steepnesses_count>, <fann_get_cascade_activation_steepnesses>
        +
        +	This function appears in FANN >= 2.0.0.
        + */
        +FANN_EXTERNAL void FANN_API fann_set_cascade_activation_functions(struct fann *ann,
        +														 enum fann_activationfunc_enum *
        +														 cascade_activation_functions,
        +														 unsigned int 
        +														 cascade_activation_functions_count);
        +
        +
        +/* Function: fann_get_cascade_activation_steepnesses_count
        +
        +   The number of activation steepnesses in the <fann_get_cascade_activation_functions> array.
        +
        +   The default number of activation steepnesses is 4.
        +
        +   See also:
        +   		<fann_get_cascade_activation_steepnesses>, <fann_set_cascade_activation_functions>
        +
        +	This function appears in FANN >= 2.0.0.
        + */
        +FANN_EXTERNAL unsigned int FANN_API fann_get_cascade_activation_steepnesses_count(struct fann *ann);
        +
        +
        +/* Function: fann_get_cascade_activation_steepnesses
        +
        +   The cascade activation steepnesses array is an array of the different activation functions used by
        +   the candidates.
        +
        +   See <fann_get_cascade_num_candidates> for a description of which candidate neurons will be 
        +   generated by this array.
        +
        +   The default activation steepnesses is {0.25, 0.50, 0.75, 1.00}
        +
        +   See also:
        +   		<fann_set_cascade_activation_steepnesses>, <fann_get_cascade_activation_steepnesses_count>
        +
        +	This function appears in FANN >= 2.0.0.
        + */
        +FANN_EXTERNAL fann_type * FANN_API fann_get_cascade_activation_steepnesses(struct fann *ann);
        +																
        +
        +/* Function: fann_set_cascade_activation_steepnesses
        +
        +   Sets the array of cascade candidate activation steepnesses. The array must be just as long
        +   as defined by the count.
        +
        +   See <fann_get_cascade_num_candidates> for a description of which candidate neurons will be 
        +   generated by this array.
        +
        +   See also:
        +   		<fann_get_cascade_activation_steepnesses>, <fann_get_cascade_activation_steepnesses_count>
        +
        +	This function appears in FANN >= 2.0.0.
        + */
        +FANN_EXTERNAL void FANN_API fann_set_cascade_activation_steepnesses(struct fann *ann,
        +														   fann_type *
        +														   cascade_activation_steepnesses,
        +														   unsigned int 
        +														   cascade_activation_steepnesses_count);
        +
        +/* Function: fann_get_cascade_num_candidate_groups
        +
        +   The number of candidate groups is the number of groups of identical candidates which will be used
        +   during training.
        +   
        +   This number can be used to have more candidates without having to define new parameters for the candidates.
        +   
        +   See <fann_get_cascade_num_candidates> for a description of which candidate neurons will be 
        +   generated by this parameter.
        +   
        +   The default number of candidate groups is 2
        +
        +   See also:
        +   		<fann_set_cascade_num_candidate_groups>
        +
        +	This function appears in FANN >= 2.0.0.
        + */
        +FANN_EXTERNAL unsigned int FANN_API fann_get_cascade_num_candidate_groups(struct fann *ann);
        +
        +
        +/* Function: fann_set_cascade_num_candidate_groups
        +
        +   Sets the number of candidate groups.
        +
        +   See also:
        +   		<fann_get_cascade_num_candidate_groups>
        +
        +	This function appears in FANN >= 2.0.0.
        + */
        +FANN_EXTERNAL void FANN_API fann_set_cascade_num_candidate_groups(struct fann *ann, 
        +															 unsigned int cascade_num_candidate_groups);
        +
        +#endif  /* FIXEDFANN */
        +
        +#endif
        diff --git a/lib/ann/fann/src/include/fann_cpp.h b/lib/ann/fann/src/include/fann_cpp.h
        new file mode 100644
        index 0000000..6f54b34
        --- /dev/null
        +++ b/lib/ann/fann/src/include/fann_cpp.h
        @@ -0,0 +1,2946 @@
        +#ifndef FANN_CPP_H_INCLUDED
        +#define FANN_CPP_H_INCLUDED
        +
        +#include <memory>
        +#include <iterator>
        +/*
        + *  Fast Artificial Neural Network (fann) C++ Wrapper
        + *  Copyright (C) 2004-2006 created by freegoldbar (at) yahoo dot com
        + *
        + *  This wrapper is free software; you can redistribute it and/or
        + *  modify it under the terms of the GNU Lesser General Public
        + *  License as published by the Free Software Foundation; either
        + *  version 2.1 of the License, or (at your option) any later version.
        + *
        + *  This wrapper is distributed in the hope that it will be useful,
        + *  but WITHOUT ANY WARRANTY; without even the implied warranty of
        + *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
        + *  Lesser General Public License for more details.
        + *
        + *  You should have received a copy of the GNU Lesser General Public
        + *  License along with this library; if not, write to the Free Software
        + *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        + *
        + */
        +
        +/*
        + *  Title: FANN C++ Wrapper
        + *
        + *  Overview:
        + *
        + *  The Fann Wrapper for C++ provides two classes: <neural_net>
        + *  and <training_data>. To use the wrapper include
        + *  doublefann.h, floatfann.h or fixedfann.h before the
        + *  fann_cpp.h header file.
        + *
        + *  To get started see xor_sample.cpp in the examples directory.
        + *  The license is LGPL. Copyright (C) 2004-2006 created by <freegoldbar@yahoo.com>.
        + *
        + *
        + *  Note:  Notes and differences from C API
        + *
        + *  -  The Fann Wrapper for C++ is a minimal wrapper without use of
        + *       templates or exception handling for efficient use in any environment.
        + *       Benefits include stricter type checking, simpler memory
        + *       management and possibly code completion in program editor.
        + *  -  Method names are the same as the function names in the C
        + *       API except the fann_ prefix has been removed. Enums in the
        + *       namespace are similarly defined without the FANN_ prefix.
        + *  -  The arguments to the methods are the same as the C API
        + *       except that the struct fann *ann/struct fann_train_data *data
        + *       arguments are encapsulated so they are not present in the
        + *       method signatures or are translated into class references.
        + *  -  C++ style constructors have been implemented to make network creation
        + *       easier
        + *  -  The neural network and training data is automatically cleaned
        + *       up in the destructors
        + *  -  To make the destructors virtual define USE_VIRTUAL_DESTRUCTOR
        + *       before including the header file.
        + *  -  Additional methods are available on the training_data class to
        + *       give access to the underlying training data. They are get_input,
        + *       get_output and set_train_data. Finally fann_duplicate_train_data
        + *       has been replaced by a copy constructor.
        + *
        + */
        +
        +#include <assert.h>
        +#include <stdarg.h>
        +#include <string>
        +#include "fann_data_cpp.h"
        +#include "fann_training_data_cpp.h"
        +
        +/* Namespace: FANN
        +    The FANN namespace groups the C++ wrapper definitions */
        +namespace FANN {
        +    /* Class: neural_net
        +        <neural_net> is the main neural network class used for both training and execution
        +
        +        Encapsulation of a neural network <struct fann> and
        +        associated C API functions.
        +    */
        +    class neural_net {
        +    public:
        +        /* Constructor: neural_net(network_type_enum net_type, unsigned int num_layers, const unsigned int *layers)
        +
        +            Creates a neural network of the desired <network_type_enum> net_type, based on array of layers.
        +
        +            Parameters:
        +                net_type - The desired network type of the neural network
        +                num_layers - The total number of layers including the input and the output layer.
        +                layers - array of the layer sizes
        +
        +            NOTE: if layers does not have the same size as num_layers, the result is undefined
        +
        +            Example:
        +              >FANN::neural_net net(LAYER, 3, (unsigned int[]) {2, 3, 1});
        +
        +            This function appears in FANN >= 2.3.0.
        +         */
        +        neural_net(network_type_enum net_type, unsigned int num_layers, const unsigned int *layers) {
        +            switch (net_type){
        +                case LAYER:
        +                    ann = fann_create_standard_array(num_layers, layers);
        +                    break;
        +                case SHORTCUT:
        +                    ann = fann_create_shortcut_array(num_layers, layers);
        +                    break;
        +            }
        +            assert(ann != NULL);
        +        }
        +
        +        /* Constructor: neural_net(network_type_enum net_type, InputIterator layersBeginIterator, InputIterator layersEndIterator)
        +
        +            Creates a neural network of the desired <network_type_enum> net_type, based on iterator to the layers.
        +
        +            Parameters:
        +                net_type - The desired network type of the neural network
        +                layersBeginIterator - begin iterator to the collection of unsigned int layers
        +                layersEndIterator - end iterator to the collection of unsigned int layers
        +
        +            Example:
        +              >vector<unsigned int> layers{2, 3, 4, 5};
        +              >neural_net net(LAYER, layers.begin(), layers.end());
        +
        +            This function appears in FANN >= 2.3.0.
        +         */
        +        template <class InputIterator>
        +        neural_net(network_type_enum net_type, InputIterator layersBeginIterator, InputIterator layersEndIterator) {
        +            unsigned int num_layers = static_cast<unsigned int>(std::distance(layersBeginIterator, layersEndIterator));
        +            unsigned int *layers = new unsigned int[num_layers];
        +            std::copy(layersBeginIterator, layersEndIterator, layers);
        +
        +            switch (net_type){
        +                case LAYER:
        +                    ann = fann_create_standard_array(num_layers, layers);
        +                    break;
        +                case SHORTCUT:
        +                    ann = fann_create_shortcut_array(num_layers, layers);
        +                    break;
        +            }
        +            delete[] layers;
        +            assert(ann != NULL);
        +        }
        +
        +        /* Constructor: neural_net(network_type_enum net_type, unsigned int num_layers, ...)
        +
        +	        Creates a neural network of the desired <network_type_enum> net_type.
        +
        +	        Parameters:
        +		        num_layers - The total number of layers including the input and the output layer.
        +		        ... - Integer values determining the number of neurons in each layer starting with the
        +			        input layer and ending with the output layer.
        +
        +            Example:
        +                >const unsigned int num_layers = 3;
        +                >const unsigned int num_input = 2;
        +                >const unsigned int num_hidden = 3;
        +                >const unsigned int num_output = 1;
        +                >
        +                >FANN::neural_net net(num_layers, num_input, num_hidden, num_output);
        +
        +	        This function appears in FANN >= 2.3.0.
        +        */
        +        neural_net(network_type_enum net_type, unsigned int num_layers, ...) {
        +            std::unique_ptr<unsigned int[]> data(new unsigned int[num_layers]);
        +
        +            va_list layers;
        +            va_start(layers, num_layers);
        +            for (unsigned int i = 0; i < num_layers; i++)
        +                data.get()[i] = va_arg(layers, unsigned
        +                        int);
        +            va_end(layers);
        +
        +            switch (net_type){
        +                case LAYER:
        +                    ann = fann_create_standard_array(num_layers, data.get());
        +                    break;
        +                case SHORTCUT:
        +                    ann = fann_create_shortcut_array(num_layers, data.get());
        +                    break;
        +            }
        +            assert(ann != NULL);
        +        }
        +
        +
        +        /* Constructor: neural_net(float connection_rate, unsigned int num_layers, ...)
        +
        +	        Creates a standard backpropagation neural network, which is sparsely connected, this will default the <network_type_enum> to <LAYER>
        +
        +	        Parameters:
        +		        connection_rate - The connection rate controls how many connections there will be in the
        +   			        network. If the connection rate is set to 1, the network will be fully
        +   			        connected, but if it is set to 0.5 only half of the connections will be set.
        +			        A connection rate of 1 will yield the same result as <fann_create_standard>
        +		        num_layers - The total number of layers including the input and the output layer.
        +		        ... - Integer values determining the number of neurons in each layer starting with the
        +			        input layer and ending with the output layer.
        +
        +	        This function appears in FANN >= 2.3.0.
        +        */
        +        neural_net(float connection_rate, unsigned int num_layers, ...) {
        +            std::unique_ptr<unsigned int[]> data(new unsigned int[num_layers]);
        +
        +            va_list layers;
        +            va_start(layers, num_layers);
        +            for (unsigned int i = 0; i < num_layers; i++)
        +                data.get()[i] = va_arg(layers, unsigned int);
        +            va_end(layers);
        +
        +            ann = fann_create_sparse_array(connection_rate, num_layers, data.get());
        +            assert(ann != NULL);
        +        }
        +
        +        /* Constructor: neural_net(float connection_rate, unsigned int num_layers, const unsigned int *layers)
        +
        +	        Creates a standard backpropagation neural network, which is sparsely connected, this will default the <network_type_enum> to <LAYER>
        +
        +	        Parameters:
        +		        connection_rate - The connection rate controls how many connections there will be in the
        +   			        network. If the connection rate is set to 1, the network will be fully
        +   			        connected, but if it is set to 0.5 only half of the connections will be set.
        +			        A connection rate of 1 will yield the same result as <fann_create_standard>
        +		        num_layers - The total number of layers including the input and the output layer.
        +		        layers - Integer values determining the number of neurons in each layer starting with the
        +			        input layer and ending with the output layer.
        +
        +	        This function appears in FANN >= 2.3.0.
        +        */
        +        neural_net(float connection_rate, unsigned int num_layers, const unsigned int *layers) {
        +            ann = fann_create_sparse_array(connection_rate, num_layers, layers);
        +            assert(ann != NULL);
        +        }
        +
        +
        +        /* Constructor: neural_net(const std::string &configuration_file)
        +
        +           Constructs a backpropagation neural network from a configuration file,
        +           which have been saved by <save>.
        +
        +           See also:
        +   	        <save>, <save_to_fixed>
        +
        +           This function appears in FANN >= 2.3.0.
        +         */
        +        neural_net(const std::string &configuration_file) {
        +            ann = fann_create_from_file(configuration_file.c_str());
        +            assert(ann != NULL);
        +        }
        +
        +        /* Constructor neural_net(const neural_net &other)
        +
        +            Creates a copy the other neural_net.
        +            */
        +        neural_net(const neural_net &other) : ann(NULL) {
        +            copy_from_struct_fann(other.ann);
        +        }
        +
        +        /* Constructor: neural_net(struct fann *other)
        +
        +           Creates a copy the other neural_net.
        +            */
        +        neural_net(struct fann *other) {
        +            copy_from_struct_fann(other);
        +        }
        +
        +        /* Constructor: neural_net() - DEPRECATED
        +
        +            Creates an empty neural net.
        +            Use one of the create functions to create the neural network.
        +
        +           NOTE: As of version 2.3.0 it recommended to create neural networks using the constructors instead of creating
        +           an empty network and setting the internal structure of that. This method is hence discouraged and will be deprecated later on.
        +
        +            See also:
        +		        <create_standard>, <create_sparse>, <create_shortcut>,
        +		        <create_standard_array>, <create_sparse_array>, <create_shortcut_array>
        +        */
        +        neural_net() : ann(NULL) {
        +        }
        +
        +        /* Method: copy_from_struct_fann - DEPRECATED
        +
        +           Set the internal fann struct to a copy of other
        +
        +           NOTE: As of version 2.3.0 it recommended to create neural networks using the constructors instead of creating
        +           an empty network and setting the internal structure of that. This method is hence discouraged and will be deprecated later on.
        +        */
        +        void copy_from_struct_fann(struct fann *other) {
        +            destroy();
        +            if (other != NULL)
        +                ann = fann_copy(other);
        +        }
        +
        +        /* Destructor: ~neural_net
        +
        +            Provides automatic cleanup of data.
        +            Define USE_VIRTUAL_DESTRUCTOR if you need the destructor to be virtual.
        +
        +            See also:
        +                <destroy>
        +        */
        +#ifdef USE_VIRTUAL_DESTRUCTOR
        +        virtual
        +#endif
        +
        +        ~neural_net() {
        +            destroy();
        +        }
        +
        +        /* Method: destroy
        +        
        +            Destructs the entire network. Called automatically by the destructor.
        +
        +            See also:
        +                <~neural_net>
        +        */
        +        void destroy() {
        +            if (ann != NULL) {
        +                user_context *user_data = static_cast<user_context *>(fann_get_user_data(ann));
        +                if (user_data != NULL)
        +                    delete user_data;
        +
        +                fann_destroy(ann);
        +                ann = NULL;
        +            }
        +        }
        +
        +        /* Method: create_standard - DEPRECATED
        +        	
        +	        Creates a standard fully connected backpropagation neural network.
        +
        +	        There will be a bias neuron in each layer (except the output layer),
        +	        and this bias neuron will be connected to all neurons in the next layer.
        +	        When running the network, the bias nodes always emits 1.
        +        	
        +	        Parameters:
        +		        num_layers - The total number of layers including the input and the output layer.
        +		        ... - Integer values determining the number of neurons in each layer starting with the 
        +			        input layer and ending with the output layer.
        +        			
        +	        Returns:
        +		        Boolean true if the network was created, false otherwise.
        +
        +            Example:
        +                >const unsigned int num_layers = 3;
        +                >const unsigned int num_input = 2;
        +                >const unsigned int num_hidden = 3;
        +                >const unsigned int num_output = 1;
        +                >
        +                >FANN::neural_net net;
        +                >net.create_standard(num_layers, num_input, num_hidden, num_output);
        +
        +           NOTE: As of version 2.3.0 it recommended to create neural networks using the constructors instead of creating
        +           an empty network and setting the internal structure of that. This method is hence discouraged and will be deprecated later on.
        +
        +	        See also:
        +		        <create_standard_array>, <create_sparse>, <create_shortcut>,
        +		        <fann_create_standard_array>
        +
        +	        This function appears in FANN >= 2.0.0.
        +        */
        +        bool create_standard(unsigned int num_layers, ...) {
        +            std::unique_ptr<unsigned int[]> data(new unsigned int[num_layers]);
        +
        +            va_list layers;
        +            va_start(layers, num_layers);
        +            for (unsigned int i = 0; i < num_layers; i++)
        +                data.get()[i] = va_arg(layers, unsigned
        +                        int);
        +            va_end(layers);
        +
        +            bool status = create_standard_array(num_layers, data.get());
        +            return status;
        +        }
        +
        +        /* Method: create_standard_array - DEPRECATED
        +
        +           Just like <create_standard>, but with an array of layer sizes
        +           instead of individual parameters.
        +
        +           NOTE: As of version 2.3.0 it recommended to create neural networks using the constructors instead of creating
        +           an empty network and setting the internal structure of that. This method is hence discouraged and will be deprecated later on.
        +
        +	        See also:
        +		        <create_standard>, <create_sparse>, <create_shortcut>,
        +		        <fann_create_standard>
        +
        +	        This function appears in FANN >= 2.0.0.
        +        */
        +        bool create_standard_array(unsigned int num_layers, const unsigned int *layers) {
        +            destroy();
        +            ann = fann_create_standard_array(num_layers, layers);
        +            return (ann != NULL);
        +        }
        +
        +        /* Method: create_sparse - DEPRECATED
        +
        +	        Creates a standard backpropagation neural network, which is not fully connected.
        +
        +	        Parameters:
        +		        connection_rate - The connection rate controls how many connections there will be in the
        +   			        network. If the connection rate is set to 1, the network will be fully
        +   			        connected, but if it is set to 0.5 only half of the connections will be set.
        +			        A connection rate of 1 will yield the same result as <fann_create_standard>
        +		        num_layers - The total number of layers including the input and the output layer.
        +		        ... - Integer values determining the number of neurons in each layer starting with the 
        +			        input layer and ending with the output layer.
        +        			
        +	        Returns:
        +		        Boolean true if the network was created, false otherwise.
        +
        +           NOTE: As of version 2.3.0 it recommended to create neural networks using the constructors instead of creating
        +           an empty network and setting the internal structure of that. This method is hence discouraged and will be deprecated later on.
        +
        +	        See also:
        +		        <create_standard>, <create_sparse_array>, <create_shortcut>,
        +		        <fann_create_sparse>
        +
        +	        This function appears in FANN >= 2.0.0.
        +        */
        +        bool create_sparse(float connection_rate, unsigned int num_layers, ...) {
        +            std::unique_ptr<unsigned int[]> data(new unsigned int[num_layers]);
        +
        +            va_list layers;
        +            va_start(layers, num_layers);
        +            for (unsigned int i = 0; i < num_layers; i++)
        +                data.get()[i] = va_arg(layers, unsigned
        +                        int);
        +            va_end(layers);
        +
        +            bool status = create_sparse_array(connection_rate, num_layers,
        +                                              data.get());
        +            return status;
        +        }
        +
        +        /* Method: create_sparse_array - DEPRECATED
        +           Just like <create_sparse>, but with an array of layer sizes
        +           instead of individual parameters.
        +
        +           See <create_sparse> for a description of the parameters.
        +
        +           NOTE: As of version 2.3.0 it recommended to create neural networks using the constructors instead of creating
        +           an empty network and setting the internal structure of that. This method is hence discouraged and will be deprecated later on.
        +
        +           See also:
        +		        <create_standard>, <create_sparse>, <create_shortcut>,
        +		        <fann_create_sparse_array>
        +
        +	        This function appears in FANN >= 2.0.0.
        +        */
        +        bool create_sparse_array(float connection_rate,
        +                                 unsigned int num_layers, const unsigned int *layers) {
        +            destroy();
        +            ann = fann_create_sparse_array(connection_rate, num_layers, layers);
        +            return (ann != NULL);
        +        }
        +
        +        /* Method: create_shortcut - DEPRECATED
        +
        +	        Creates a standard backpropagation neural network, which is fully connected and which
        +	        also has shortcut connections.
        +
        + 	        Shortcut connections are connections that skip layers. A fully connected network with shortcut 
        +	        connections, is a network where all neurons are connected to all neurons in later layers. 
        +	        Including direct connections from the input layer to the output layer.
        +
        +	        See <create_standard> for a description of the parameters.
        +
        +            NOTE: As of version 2.3.0 it recommended to create neural networks using the constructors instead of creating
        +            an empty network and setting the internal structure of that. This method is hence discouraged and will be deprecated later on.
        +
        +	        See also:
        +		        <create_standard>, <create_sparse>, <create_shortcut_array>,
        +		        <fann_create_shortcut>
        +
        +	        This function appears in FANN >= 2.0.0.
        +        */
        +        bool create_shortcut(unsigned int num_layers, ...) {
        +            std::unique_ptr<unsigned int[]> data(new unsigned int[num_layers]);
        +
        +            va_list layers;
        +            va_start(layers, num_layers);
        +            for (unsigned int i = 0; i < num_layers; i++)
        +                data.get()[i] = va_arg(layers, unsigned
        +                        int);
        +            va_end(layers);
        +
        +            bool status = create_shortcut_array(num_layers, data.get());
        +            return status;
        +        }
        +
        +        /* Method: create_shortcut_array - DEPRECATED
        +
        +           Just like <create_shortcut>, but with an array of layer sizes
        +           instead of individual parameters.
        +
        +	        See <create_standard_array> for a description of the parameters.
        +
        +            NOTE: As of version 2.3.0 it recommended to create neural networks using the constructors instead of creating
        +            an empty network and setting the internal structure of that. This method is hence discouraged and will be deprecated later on.
        +
        + 	        See also:
        +		        <create_standard>, <create_sparse>, <create_shortcut>,
        +		        <fann_create_shortcut_array>
        +
        +	        This function appears in FANN >= 2.0.0.
        +        */
        +        bool create_shortcut_array(unsigned int num_layers,
        +                                   const unsigned int *layers) {
        +            destroy();
        +            ann = fann_create_shortcut_array(num_layers, layers);
        +            return (ann != NULL);
        +        }
        +
        +        /* Method: run
        +
        +	        Will run input through the neural network, returning an array of outputs, the number of which being 
        +	        equal to the number of neurons in the output layer.
        +
        +	        See also:
        +		        <test>, <fann_run>
        +
        +	        This function appears in FANN >= 1.0.0.
        +        */
        +        fann_type *run(fann_type *input) {
        +            if (ann == NULL) {
        +                return NULL;
        +            }
        +            return fann_run(ann, input);
        +        }
        +
        +        /* Method: randomize_weights
        +
        +	        Give each connection a random weight between *min_weight* and *max_weight*
        +           
        +	        From the beginning the weights are random between -0.1 and 0.1.
        +
        +	        See also:
        +		        <init_weights>, <fann_randomize_weights>
        +
        +	        This function appears in FANN >= 1.0.0.
        +        */
        +        void randomize_weights(fann_type min_weight, fann_type max_weight) {
        +            if (ann != NULL) {
        +                fann_randomize_weights(ann, min_weight, max_weight);
        +            }
        +        }
        +
        +        /* Method: init_weights
        +
        +  	        Initialize the weights using Widrow + Nguyen's algorithm.
        +        	
        + 	        This function behaves similarly to fann_randomize_weights. It will use the algorithm developed 
        +	        by Derrick Nguyen and Bernard Widrow to set the weights in such a way 
        +	        as to speed up training. This technique is not always successful, and in some cases can be less 
        +	        efficient than a purely random initialization.
        +
        +	        The algorithm requires access to the range of the input data (ie, largest and smallest input), 
        +	        and therefore accepts a second argument, data, which is the training data that will be used to 
        +	        train the network.
        +
        +	        See also:
        +		        <randomize_weights>, <training_data::read_train_from_file>,
        +                <fann_init_weights>
        +
        +	        This function appears in FANN >= 1.1.0.
        +        */
        +        void init_weights(const training_data &data) {
        +            if ((ann != NULL) && (data.train_data != NULL)) {
        +                fann_init_weights(ann, data.train_data);
        +            }
        +        }
        +
        +        /* Method: print_connections
        +
        +	        Will print the connections of the ann in a compact matrix, for easy viewing of the internals 
        +	        of the ann.
        +
        +	        The output from fann_print_connections on a small (2 2 1) network trained on the xor problem
        +	        >Layer / Neuron 012345
        +	        >L   1 / N    3 BBa...
        +	        >L   1 / N    4 BBA...
        +	        >L   1 / N    5 ......
        +	        >L   2 / N    6 ...BBA
        +	        >L   2 / N    7 ......
        +        		  
        +	        This network have five real neurons and two bias neurons. This gives a total of seven neurons 
        +	        named from 0 to 6. The connections between these neurons can be seen in the matrix. "." is a 
        +	        place where there is no connection, while a character tells how strong the connection is on a 
        +	        scale from a-z. The two real neurons in the hidden layer (neuron 3 and 4 in layer 1) has 
        +	        connection from the three neurons in the previous layer as is visible in the first two lines. 
        +	        The output neuron (6) has connections form the three neurons in the hidden layer 3 - 5 as is 
        +	        visible in the fourth line.
        +
        +	        To simplify the matrix output neurons is not visible as neurons that connections can come from, 
        +	        and input and bias neurons are not visible as neurons that connections can go to.
        +
        +	        This function appears in FANN >= 1.2.0.
        +        */
        +        void print_connections() {
        +            if (ann != NULL) {
        +                fann_print_connections(ann);
        +            }
        +        }
        +
        +        /* Method: create_from_file - DEPRECATED
        +           
        +           Constructs a backpropagation neural network from a configuration file,
        +           which have been saved by <save>.
        +
        +           NOTE: As of version 2.3.0 it recommended to create neural networks using the constructors instead of creating
        +           an empty network and setting the internal structure of that. This method is hence discouraged and will be deprecated later on.
        +
        +           See also:
        +   	        <save>, <save_to_fixed>, <fann_create_from_file>
        +           	
        +           This function appears in FANN >= 1.0.0.
        +         */
        +        bool create_from_file(const std::string &configuration_file) {
        +            destroy();
        +            ann = fann_create_from_file(configuration_file.c_str());
        +            return (ann != NULL);
        +        }
        +
        +        /* Method: save
        +
        +           Save the entire network to a configuration file.
        +           
        +           The configuration file contains all information about the neural network and enables 
        +           <create_from_file> to create an exact copy of the neural network and all of the
        +           parameters associated with the neural network.
        +           
        +           These two parameters (<set_callback>, <set_error_log>) are *NOT* saved 
        +           to the file because they cannot safely be ported to a different location. Also temporary
        +           parameters generated during training like <get_MSE> is not saved.
        +           
        +           Return:
        +           The function returns 0 on success and -1 on failure.
        +           
        +           See also:
        +            <create_from_file>, <save_to_fixed>, <fann_save>
        +
        +           This function appears in FANN >= 1.0.0.
        +         */
        +        bool save(const std::string &configuration_file) {
        +            if (ann == NULL) {
        +                return false;
        +            }
        +            if (fann_save(ann, configuration_file.c_str()) == -1) {
        +                return false;
        +            }
        +            return true;
        +        }
        +
        +        /* Method: save_to_fixed
        +
        +           Saves the entire network to a configuration file.
        +           But it is saved in fixed point format no matter which
        +           format it is currently in.
        +
        +           This is useful for training a network in floating points,
        +           and then later executing it in fixed point.
        +
        +           The function returns the bit position of the fix point, which
        +           can be used to find out how accurate the fixed point network will be.
        +           A high value indicates high precision, and a low value indicates low
        +           precision.
        +
        +           A negative value indicates very low precision, and a very
        +           strong possibility for overflow.
        +           (the actual fix point will be set to 0, since a negative
        +           fix point does not make sence).
        +
        +           Generally, a fix point lower than 6 is bad, and should be avoided.
        +           The best way to avoid this, is to have less connections to each neuron,
        +           or just less neurons in each layer.
        +
        +           The fixed point use of this network is only intended for use on machines that
        +           have no floating point processor, like an iPAQ. On normal computers the floating
        +           point version is actually faster.
        +
        +           See also:
        +            <create_from_file>, <save>, <fann_save_to_fixed>
        +
        +           This function appears in FANN >= 1.0.0.
        +        */
        +        int save_to_fixed(const std::string &configuration_file) {
        +            int fixpoint = 0;
        +            if (ann != NULL) {
        +                fixpoint = fann_save_to_fixed(ann, configuration_file.c_str());
        +            }
        +            return fixpoint;
        +        }
        +
        +#ifndef FIXEDFANN
        +
        +        /* Method: train
        +
        +           Train one iteration with a set of inputs, and a set of desired outputs.
        +           This training is always incremental training (see <FANN::training_algorithm_enum>),
        +           since only one pattern is presented.
        +           
        +           Parameters:
        +   	        ann - The neural network structure
        +   	        input - an array of inputs. This array must be exactly <fann_get_num_input> long.
        +   	        desired_output - an array of desired outputs. This array must be exactly <fann_get_num_output> long.
        +           	
        +   	        See also:
        +   		        <train_on_data>, <train_epoch>, <fann_train>
        +           	
        +   	        This function appears in FANN >= 1.0.0.
        +         */
        +        void train(fann_type *input, fann_type *desired_output) {
        +            if (ann != NULL) {
        +                fann_train(ann, input, desired_output);
        +            }
        +        }
        +
        +        /* Method: train_epoch
        +            Train one epoch with a set of training data.
        +           
        +            Train one epoch with the training data stored in data. One epoch is where all of 
        +            the training data is considered exactly once.
        +
        +	        This function returns the MSE error as it is calculated either before or during 
        +	        the actual training. This is not the actual MSE after the training epoch, but since 
        +	        calculating this will require to go through the entire training set once more, it is 
        +	        more than adequate to use this value during training.
        +
        +	        The training algorithm used by this function is chosen by the <fann_set_training_algorithm> 
        +	        function.
        +        	
        +	        See also:
        +		        <train_on_data>, <test_data>, <fann_train_epoch>
        +        		
        +	        This function appears in FANN >= 1.2.0.
        +         */
        +        float train_epoch(const training_data &data) {
        +            float mse = 0.0f;
        +            if ((ann != NULL) && (data.train_data != NULL)) {
        +                mse = fann_train_epoch(ann, data.train_data);
        +            }
        +            return mse;
        +        }
        +
        +        /* Method: train_on_data
        +
        +           Trains on an entire dataset, for a period of time. 
        +           
        +           This training uses the training algorithm chosen by <set_training_algorithm>,
        +           and the parameters set for these training algorithms.
        +           
        +           Parameters:
        +   		        ann - The neural network
        +   		        data - The data, which should be used during training
        +   		        max_epochs - The maximum number of epochs the training should continue
        +   		        epochs_between_reports - The number of epochs between printing a status report to stdout.
        +   			        A value of zero means no reports should be printed.
        +   		        desired_error - The desired <get_MSE> or <get_bit_fail>, depending on which stop function
        +   			        is chosen by <set_train_stop_function>.
        +
        +	        Instead of printing out reports every epochs_between_reports, a callback function can be called 
        +	        (see <set_callback>).
        +        	
        +	        See also:
        +		        <train_on_file>, <train_epoch>, <fann_train_on_data>
        +
        +	        This function appears in FANN >= 1.0.0.
        +        */
        +        void train_on_data(const training_data &data, unsigned int max_epochs,
        +                           unsigned int epochs_between_reports, float desired_error) {
        +            if ((ann != NULL) && (data.train_data != NULL)) {
        +                fann_train_on_data(ann, data.train_data, max_epochs,
        +                                   epochs_between_reports, desired_error);
        +            }
        +        }
        +
        +        /* Method: train_on_file
        +           
        +           Does the same as <train_on_data>, but reads the training data directly from a file.
        +           
        +           See also:
        +   		        <train_on_data>, <fann_train_on_file>
        +
        +	        This function appears in FANN >= 1.0.0.
        +        */
        +        void train_on_file(const std::string &filename, unsigned int max_epochs,
        +                           unsigned int epochs_between_reports, float desired_error) {
        +            if (ann != NULL) {
        +                fann_train_on_file(ann, filename.c_str(),
        +                                   max_epochs, epochs_between_reports, desired_error);
        +            }
        +        }
        +
        +#endif /* NOT FIXEDFANN */
        +
        +        /* Method: test
        +
        +           Test with a set of inputs, and a set of desired outputs.
        +           This operation updates the mean square error, but does not
        +           change the network in any way.
        +           
        +           See also:
        +   		        <test_data>, <train>, <fann_test>
        +           
        +           This function appears in FANN >= 1.0.0.
        +        */
        +        fann_type *test(fann_type *input, fann_type *desired_output) {
        +            fann_type *output = NULL;
        +            if (ann != NULL) {
        +                output = fann_test(ann, input, desired_output);
        +            }
        +            return output;
        +        }
        +
        +        /* Method: test_data
        +          
        +           Test a set of training data and calculates the MSE for the training data. 
        +           
        +           This function updates the MSE and the bit fail values.
        +           
        +           See also:
        + 	        <test>, <get_MSE>, <get_bit_fail>, <fann_test_data>
        +
        +	        This function appears in FANN >= 1.2.0.
        +         */
        +        float test_data(const training_data &data) {
        +            float mse = 0.0f;
        +            if ((ann != NULL) && (data.train_data != NULL)) {
        +                mse = fann_test_data(ann, data.train_data);
        +            }
        +            return mse;
        +        }
        +
        +        /* Method: get_MSE
        +           Reads the mean square error from the network.
        +           
        +           Reads the mean square error from the network. This value is calculated during 
        +           training or testing, and can therefore sometimes be a bit off if the weights 
        +           have been changed since the last calculation of the value.
        +           
        +           See also:
        +   	        <test_data>, <fann_get_MSE>
        +
        +	        This function appears in FANN >= 1.1.0.
        +         */
        +        float get_MSE() {
        +            float mse = 0.0f;
        +            if (ann != NULL) {
        +                mse = fann_get_MSE(ann);
        +            }
        +            return mse;
        +        }
        +
        +        /* Method: reset_MSE
        +
        +           Resets the mean square error from the network.
        +   
        +           This function also resets the number of bits that fail.
        +           
        +           See also:
        +   	        <get_MSE>, <get_bit_fail_limit>, <fann_reset_MSE>
        +           
        +            This function appears in FANN >= 1.1.0
        +         */
        +        void reset_MSE() {
        +            if (ann != NULL) {
        +                fann_reset_MSE(ann);
        +            }
        +        }
        +
        +#ifndef FIXEDFANN
        +
        +        /* Method: set_callback
        +           
        +           Sets the callback function for use during training. The user_data is passed to
        +           the callback. It can point to arbitrary data that the callback might require and
        +           can be NULL if it is not used.
        +         	
        +           See <FANN::callback_type> for more information about the callback function.
        +           
        +           The default callback function simply prints out some status information.
        +
        +           This function appears in FANN >= 2.0.0.
        +         */
        +        void set_callback(callback_type callback, void *user_data) {
        +            if (ann != NULL) {
        +                // Allocated data is also deleted in the destroy method called by the destructor
        +                user_context *user_instance = static_cast<user_context *>(fann_get_user_data(ann));
        +                if (user_instance != NULL)
        +                    delete user_instance;
        +
        +                user_instance = new user_context();
        +                user_instance->user_callback = callback;
        +                user_instance->user_data = user_data;
        +                user_instance->net = this;
        +                fann_set_user_data(ann, user_instance);
        +
        +                if (callback != NULL)
        +                    fann_set_callback(ann, &FANN::neural_net::internal_callback);
        +                else
        +                    fann_set_callback(ann, NULL);
        +            }
        +        }
        +
        +#endif  /* NOT FIXEDFANN */
        +
        +        /* Method: print_parameters
        +
        +  	        Prints all of the parameters and options of the neural network
        +
        +            See also:
        +                <fann_print_parameters>
        +
        +	        This function appears in FANN >= 1.2.0.
        +        */
        +        void print_parameters() {
        +            if (ann != NULL) {
        +                fann_print_parameters(ann);
        +            }
        +        }
        +
        +        /* Method: get_training_algorithm
        +
        +           Return the training algorithm as described by <FANN::training_algorithm_enum>.
        +           This training algorithm is used by <train_on_data> and associated functions.
        +           
        +           Note that this algorithm is also used during <cascadetrain_on_data>, although only
        +           FANN::TRAIN_RPROP and FANN::TRAIN_QUICKPROP is allowed during cascade training.
        +           
        +           The default training algorithm is FANN::TRAIN_RPROP.
        +           
        +           See also:
        +            <set_training_algorithm>, <FANN::training_algorithm_enum>,
        +            <fann_get_training_algorithm>
        +
        +           This function appears in FANN >= 1.0.0.   	
        +         */
        +        training_algorithm_enum get_training_algorithm() {
        +            fann_train_enum training_algorithm = FANN_TRAIN_INCREMENTAL;
        +            if (ann != NULL) {
        +                training_algorithm = fann_get_training_algorithm(ann);
        +            }
        +            return static_cast<training_algorithm_enum>(training_algorithm);
        +        }
        +
        +        /* Method: set_training_algorithm
        +
        +           Set the training algorithm.
        +           
        +           More info available in <get_training_algorithm>
        +
        +           This function appears in FANN >= 1.0.0.   	
        +         */
        +        void set_training_algorithm(training_algorithm_enum training_algorithm) {
        +            if (ann != NULL) {
        +                fann_set_training_algorithm(ann,
        +                                            static_cast<fann_train_enum>(training_algorithm));
        +            }
        +        }
        +
        +        /* Method: get_learning_rate
        +
        +           Return the learning rate.
        +           
        +           The learning rate is used to determine how aggressive training should be for some of the
        +           training algorithms (FANN::TRAIN_INCREMENTAL, FANN::TRAIN_BATCH, FANN::TRAIN_QUICKPROP).
        +           Do however note that it is not used in FANN::TRAIN_RPROP.
        +           
        +           The default learning rate is 0.7.
        +           
        +           See also:
        +   	        <set_learning_rate>, <set_training_algorithm>,
        +            <fann_get_learning_rate>
        +           
        +           This function appears in FANN >= 1.0.0.   	
        +         */
        +        float get_learning_rate() {
        +            float learning_rate = 0.0f;
        +            if (ann != NULL) {
        +                learning_rate = fann_get_learning_rate(ann);
        +            }
        +            return learning_rate;
        +        }
        +
        +        /* Method: set_learning_rate
        +
        +           Set the learning rate.
        +           
        +           More info available in <get_learning_rate>
        +
        +           This function appears in FANN >= 1.0.0.   	
        +         */
        +        void set_learning_rate(float learning_rate) {
        +            if (ann != NULL) {
        +                fann_set_learning_rate(ann, learning_rate);
        +            }
        +        }
        +
        +        /*************************************************************************************************************/
        +
        +        /* Method: get_activation_function
        +
        +           Get the activation function for neuron number *neuron* in layer number *layer*, 
        +           counting the input layer as layer 0. 
        +           
        +           It is not possible to get activation functions for the neurons in the input layer.
        +           
        +           Information about the individual activation functions is available at <FANN::activation_function_enum>.
        +
        +           Returns:
        +            The activation function for the neuron or -1 if the neuron is not defined in the neural network.
        +           
        +           See also:
        +   	        <set_activation_function_layer>, <set_activation_function_hidden>,
        +   	        <set_activation_function_output>, <set_activation_steepness>,
        +            <set_activation_function>, <fann_get_activation_function>
        +
        +           This function appears in FANN >= 2.1.0
        +         */
        +        activation_function_enum get_activation_function(int layer, int neuron) {
        +            unsigned int activation_function = 0;
        +            if (ann != NULL) {
        +                activation_function = fann_get_activation_function(ann, layer, neuron);
        +            }
        +            return static_cast<activation_function_enum>(activation_function);
        +        }
        +
        +        /* Method: set_activation_function
        +
        +           Set the activation function for neuron number *neuron* in layer number *layer*, 
        +           counting the input layer as layer 0. 
        +           
        +           It is not possible to set activation functions for the neurons in the input layer.
        +           
        +           When choosing an activation function it is important to note that the activation 
        +           functions have different range. FANN::SIGMOID is e.g. in the 0 - 1 range while 
        +           FANN::SIGMOID_SYMMETRIC is in the -1 - 1 range and FANN::LINEAR is unbounded.
        +           
        +           Information about the individual activation functions is available at <FANN::activation_function_enum>.
        +           
        +           The default activation function is FANN::SIGMOID_STEPWISE.
        +           
        +           See also:
        +   	        <set_activation_function_layer>, <set_activation_function_hidden>,
        +   	        <set_activation_function_output>, <set_activation_steepness>,
        +            <get_activation_function>, <fann_set_activation_function>
        +
        +           This function appears in FANN >= 2.0.0.
        +         */
        +        void set_activation_function(activation_function_enum activation_function, int layer, int neuron) {
        +            if (ann != NULL) {
        +                fann_set_activation_function(ann,
        +                                             static_cast<fann_activationfunc_enum>(activation_function), layer, neuron);
        +            }
        +        }
        +
        +        /* Method: set_activation_function_layer
        +
        +           Set the activation function for all the neurons in the layer number *layer*, 
        +           counting the input layer as layer 0. 
        +           
        +           It is not possible to set activation functions for the neurons in the input layer.
        +
        +           See also:
        +   	        <set_activation_function>, <set_activation_function_hidden>,
        +   	        <set_activation_function_output>, <set_activation_steepness_layer>,
        +            <fann_set_activation_function_layer>
        +
        +           This function appears in FANN >= 2.0.0.
        +         */
        +        void set_activation_function_layer(activation_function_enum activation_function, int layer) {
        +            if (ann != NULL) {
        +                fann_set_activation_function_layer(ann,
        +                                                   static_cast<fann_activationfunc_enum>(activation_function), layer);
        +            }
        +        }
        +
        +        /* Method: set_activation_function_hidden
        +
        +           Set the activation function for all of the hidden layers.
        +
        +           See also:
        +   	        <set_activation_function>, <set_activation_function_layer>,
        +   	        <set_activation_function_output>, <set_activation_steepness_hidden>,
        +            <fann_set_activation_function_hidden>
        +
        +           This function appears in FANN >= 1.0.0.
        +         */
        +        void set_activation_function_hidden(activation_function_enum activation_function) {
        +            if (ann != NULL) {
        +                fann_set_activation_function_hidden(ann,
        +                                                    static_cast<fann_activationfunc_enum>(activation_function));
        +            }
        +        }
        +
        +        /* Method: set_activation_function_output
        +
        +           Set the activation function for the output layer.
        +
        +           See also:
        +   	        <set_activation_function>, <set_activation_function_layer>,
        +   	        <set_activation_function_hidden>, <set_activation_steepness_output>,
        +            <fann_set_activation_function_output>
        +
        +           This function appears in FANN >= 1.0.0.
        +         */
        +        void set_activation_function_output(activation_function_enum activation_function) {
        +            if (ann != NULL) {
        +                fann_set_activation_function_output(ann,
        +                                                    static_cast<fann_activationfunc_enum>(activation_function));
        +            }
        +        }
        +
        +        /* Method: get_activation_steepness
        +
        +           Get the activation steepness for neuron number *neuron* in layer number *layer*, 
        +           counting the input layer as layer 0. 
        +           
        +           It is not possible to get activation steepness for the neurons in the input layer.
        +           
        +           The steepness of an activation function says something about how fast the activation function 
        +           goes from the minimum to the maximum. A high value for the activation function will also
        +           give a more aggressive training.
        +           
        +           When training neural networks where the output values should be at the extremes (usually 0 and 1, 
        +           depending on the activation function), a steep activation function can be used (e.g. 1.0).
        +           
        +           The default activation steepness is 0.5.
        +           
        +           Returns:
        +            The activation steepness for the neuron or -1 if the neuron is not defined in the neural network.
        +           
        +           See also:
        +   	        <set_activation_steepness_layer>, <set_activation_steepness_hidden>,
        +   	        <set_activation_steepness_output>, <set_activation_function>,
        +            <set_activation_steepness>, <fann_get_activation_steepness>
        +
        +           This function appears in FANN >= 2.1.0
        +         */
        +        fann_type get_activation_steepness(int layer, int neuron) {
        +            fann_type activation_steepness = 0;
        +            if (ann != NULL) {
        +                activation_steepness = fann_get_activation_steepness(ann, layer, neuron);
        +            }
        +            return activation_steepness;
        +        }
        +
        +        /* Method: set_activation_steepness
        +
        +           Set the activation steepness for neuron number *neuron* in layer number *layer*, 
        +           counting the input layer as layer 0. 
        +           
        +           It is not possible to set activation steepness for the neurons in the input layer.
        +           
        +           The steepness of an activation function says something about how fast the activation function 
        +           goes from the minimum to the maximum. A high value for the activation function will also
        +           give a more aggressive training.
        +           
        +           When training neural networks where the output values should be at the extremes (usually 0 and 1, 
        +           depending on the activation function), a steep activation function can be used (e.g. 1.0).
        +           
        +           The default activation steepness is 0.5.
        +           
        +           See also:
        +   	        <set_activation_steepness_layer>, <set_activation_steepness_hidden>,
        +   	        <set_activation_steepness_output>, <set_activation_function>,
        +            <get_activation_steepness>, <fann_set_activation_steepness>
        +
        +           This function appears in FANN >= 2.0.0.
        +         */
        +        void set_activation_steepness(fann_type steepness, int layer, int neuron) {
        +            if (ann != NULL) {
        +                fann_set_activation_steepness(ann, steepness, layer, neuron);
        +            }
        +        }
        +
        +        /* Method: set_activation_steepness_layer
        +
        +           Set the activation steepness all of the neurons in layer number *layer*, 
        +           counting the input layer as layer 0. 
        +           
        +           It is not possible to set activation steepness for the neurons in the input layer.
        +           
        +           See also:
        +   	        <set_activation_steepness>, <set_activation_steepness_hidden>,
        +   	        <set_activation_steepness_output>, <set_activation_function_layer>,
        +            <fann_set_activation_steepness_layer>
        +
        +           This function appears in FANN >= 2.0.0.
        +         */
        +        void set_activation_steepness_layer(fann_type steepness, int layer) {
        +            if (ann != NULL) {
        +                fann_set_activation_steepness_layer(ann, steepness, layer);
        +            }
        +        }
        +
        +        /* Method: set_activation_steepness_hidden
        +
        +           Set the steepness of the activation steepness in all of the hidden layers.
        +
        +           See also:
        +   	        <set_activation_steepness>, <set_activation_steepness_layer>,
        +   	        <set_activation_steepness_output>, <set_activation_function_hidden>,
        +            <fann_set_activation_steepness_hidden>
        +
        +           This function appears in FANN >= 1.2.0.
        +         */
        +        void set_activation_steepness_hidden(fann_type steepness) {
        +            if (ann != NULL) {
        +                fann_set_activation_steepness_hidden(ann, steepness);
        +            }
        +        }
        +
        +        /* Method: set_activation_steepness_output
        +
        +           Set the steepness of the activation steepness in the output layer.
        +
        +           See also:
        +   	        <set_activation_steepness>, <set_activation_steepness_layer>,
        +   	        <set_activation_steepness_hidden>, <set_activation_function_output>,
        +            <fann_set_activation_steepness_output>
        +
        +           This function appears in FANN >= 1.2.0.
        +         */
        +        void set_activation_steepness_output(fann_type steepness) {
        +            if (ann != NULL) {
        +                fann_set_activation_steepness_output(ann, steepness);
        +            }
        +        }
        +
        +        /*************************************************************************************************************/
        +
        +        /* Method: get_train_error_function
        +
        +           Returns the error function used during training.
        +
        +           The error functions is described further in <FANN::error_function_enum>
        +           
        +           The default error function is FANN::ERRORFUNC_TANH
        +           
        +           See also:
        +   	        <set_train_error_function>, <fann_get_train_error_function>
        +              
        +           This function appears in FANN >= 1.2.0.
        +          */
        +        error_function_enum get_train_error_function() {
        +            fann_errorfunc_enum train_error_function = FANN_ERRORFUNC_LINEAR;
        +            if (ann != NULL) {
        +                train_error_function = fann_get_train_error_function(ann);
        +            }
        +            return static_cast<error_function_enum>(train_error_function);
        +        }
        +
        +        /* Method: set_train_error_function
        +
        +           Set the error function used during training.
        +           
        +           The error functions is described further in <FANN::error_function_enum>
        +           
        +           See also:
        +   	        <get_train_error_function>, <fann_set_train_error_function>
        +              
        +           This function appears in FANN >= 1.2.0.
        +         */
        +        void set_train_error_function(error_function_enum train_error_function) {
        +            if (ann != NULL) {
        +                fann_set_train_error_function(ann,
        +                                              static_cast<fann_errorfunc_enum>(train_error_function));
        +            }
        +        }
        +
        +        /* Method: get_quickprop_decay
        +
        +           The decay is a small negative valued number which is the factor that the weights 
        +           should become smaller in each iteration during quickprop training. This is used 
        +           to make sure that the weights do not become too high during training.
        +           
        +           The default decay is -0.0001.
        +           
        +           See also:
        +   	        <set_quickprop_decay>, <fann_get_quickprop_decay>
        +
        +           This function appears in FANN >= 1.2.0.
        +         */
        +        float get_quickprop_decay() {
        +            float quickprop_decay = 0.0f;
        +            if (ann != NULL) {
        +                quickprop_decay = fann_get_quickprop_decay(ann);
        +            }
        +            return quickprop_decay;
        +        }
        +
        +        /* Method: set_quickprop_decay
        +           
        +           Sets the quickprop decay factor.
        +           
        +           See also:
        +   	        <get_quickprop_decay>, <fann_set_quickprop_decay>
        +
        +           This function appears in FANN >= 1.2.0.
        +        */
        +        void set_quickprop_decay(float quickprop_decay) {
        +            if (ann != NULL) {
        +                fann_set_quickprop_decay(ann, quickprop_decay);
        +            }
        +        }
        +
        +        /* Method: get_quickprop_mu
        +
        +           The mu factor is used to increase and decrease the step-size during quickprop training. 
        +           The mu factor should always be above 1, since it would otherwise decrease the step-size 
        +           when it was suppose to increase it.
        +           
        +           The default mu factor is 1.75. 
        +           
        +           See also:
        +   	        <set_quickprop_mu>, <fann_get_quickprop_mu>
        +
        +           This function appears in FANN >= 1.2.0.
        +        */
        +        float get_quickprop_mu() {
        +            float quickprop_mu = 0.0f;
        +            if (ann != NULL) {
        +                quickprop_mu = fann_get_quickprop_mu(ann);
        +            }
        +            return quickprop_mu;
        +        }
        +
        +        /* Method: set_quickprop_mu
        +
        +            Sets the quickprop mu factor.
        +           
        +           See also:
        +   	        <get_quickprop_mu>, <fann_set_quickprop_mu>
        +
        +           This function appears in FANN >= 1.2.0.
        +        */
        +        void set_quickprop_mu(float quickprop_mu) {
        +            if (ann != NULL) {
        +                fann_set_quickprop_mu(ann, quickprop_mu);
        +            }
        +        }
        +
        +        /* Method: get_rprop_increase_factor
        +
        +           The increase factor is a value larger than 1, which is used to 
        +           increase the step-size during RPROP training.
        +
        +           The default increase factor is 1.2.
        +           
        +           See also:
        +   	        <set_rprop_increase_factor>, <fann_get_rprop_increase_factor>
        +
        +           This function appears in FANN >= 1.2.0.
        +        */
        +        float get_rprop_increase_factor() {
        +            float factor = 0.0f;
        +            if (ann != NULL) {
        +                factor = fann_get_rprop_increase_factor(ann);
        +            }
        +            return factor;
        +        }
        +
        +        /* Method: set_rprop_increase_factor
        +
        +           The increase factor used during RPROP training.
        +
        +           See also:
        +   	        <get_rprop_increase_factor>, <fann_set_rprop_increase_factor>
        +
        +           This function appears in FANN >= 1.2.0.
        +        */
        +        void set_rprop_increase_factor(float rprop_increase_factor) {
        +            if (ann != NULL) {
        +                fann_set_rprop_increase_factor(ann, rprop_increase_factor);
        +            }
        +        }
        +
        +        /* Method: get_rprop_decrease_factor
        +
        +           The decrease factor is a value smaller than 1, which is used to decrease the step-size during RPROP training.
        +
        +           The default decrease factor is 0.5.
        +
        +           See also:
        +            <set_rprop_decrease_factor>, <fann_get_rprop_decrease_factor>
        +
        +           This function appears in FANN >= 1.2.0.
        +        */
        +        float get_rprop_decrease_factor() {
        +            float factor = 0.0f;
        +            if (ann != NULL) {
        +                factor = fann_get_rprop_decrease_factor(ann);
        +            }
        +            return factor;
        +        }
        +
        +        /* Method: set_rprop_decrease_factor
        +
        +           The decrease factor is a value smaller than 1, which is used to decrease the step-size during RPROP training.
        +
        +           See also:
        +            <get_rprop_decrease_factor>, <fann_set_rprop_decrease_factor>
        +
        +           This function appears in FANN >= 1.2.0.
        +        */
        +        void set_rprop_decrease_factor(float rprop_decrease_factor) {
        +            if (ann != NULL) {
        +                fann_set_rprop_decrease_factor(ann, rprop_decrease_factor);
        +            }
        +        }
        +
        +        /* Method: get_rprop_delta_zero
        +
        +           The initial step-size is a small positive number determining how small the initial step-size may be.
        +
        +           The default value delta zero is 0.1.
        +
        +           See also:
        +   	        <set_rprop_delta_zero>, <fann_get_rprop_delta_zero>
        +           	
        +           This function appears in FANN >= 2.1.0.
        +        */
        +        float get_rprop_delta_zero() {
        +            float delta = 0.0f;
        +            if (ann != NULL) {
        +                delta = fann_get_rprop_delta_zero(ann);
        +            }
        +            return delta;
        +        }
        +
        +        /* Method: set_rprop_delta_zero
        +
        +           The initial step-size is a small positive number determining how small the initial step-size may be.
        +
        +           See also:
        +   	        <get_rprop_delta_zero>, <fann_set_rprop_delta_zero>
        +           	
        +           This function appears in FANN >= 2.1.0.
        +        */
        +        void set_rprop_delta_zero(float rprop_delta_zero) {
        +            if (ann != NULL) {
        +                fann_set_rprop_delta_zero(ann, rprop_delta_zero);
        +            }
        +        }
        +
        +        /* Method: get_rprop_delta_min
        +
        +           The minimum step-size is a small positive number determining how small the minimum step-size may be.
        +
        +           The default value delta min is 0.0.
        +
        +           See also:
        +   	        <set_rprop_delta_min>, <fann_get_rprop_delta_min>
        +           	
        +           This function appears in FANN >= 1.2.0.
        +        */
        +        float get_rprop_delta_min() {
        +            float delta = 0.0f;
        +            if (ann != NULL) {
        +                delta = fann_get_rprop_delta_min(ann);
        +            }
        +            return delta;
        +        }
        +
        +        /* Method: set_rprop_delta_min
        +
        +           The minimum step-size is a small positive number determining how small the minimum step-size may be.
        +
        +           See also:
        +   	        <get_rprop_delta_min>, <fann_set_rprop_delta_min>
        +           	
        +           This function appears in FANN >= 1.2.0.
        +        */
        +        void set_rprop_delta_min(float rprop_delta_min) {
        +            if (ann != NULL) {
        +                fann_set_rprop_delta_min(ann, rprop_delta_min);
        +            }
        +        }
        +
        +        /* Method: get_rprop_delta_max
        +
        +           The maximum step-size is a positive number determining how large the maximum step-size may be.
        +
        +           The default delta max is 50.0.
        +
        +           See also:
        +   	        <set_rprop_delta_max>, <get_rprop_delta_min>, <fann_get_rprop_delta_max>
        +
        +           This function appears in FANN >= 1.2.0.
        +        */
        +        float get_rprop_delta_max() {
        +            float delta = 0.0f;
        +            if (ann != NULL) {
        +                delta = fann_get_rprop_delta_max(ann);
        +            }
        +            return delta;
        +        }
        +
        +        /* Method: set_rprop_delta_max
        +
        +           The maximum step-size is a positive number determining how large the maximum step-size may be.
        +
        +           See also:
        +   	        <get_rprop_delta_max>, <get_rprop_delta_min>, <fann_set_rprop_delta_max>
        +
        +           This function appears in FANN >= 1.2.0.
        +        */
        +        void set_rprop_delta_max(float rprop_delta_max) {
        +            if (ann != NULL) {
        +                fann_set_rprop_delta_max(ann, rprop_delta_max);
        +            }
        +        }
        +
        +        /* Method: get_sarprop_weight_decay_shift
        +
        +           The sarprop weight decay shift.
        +
        +           The default delta max is -6.644.
        +
        +           See also:
        +   	        <set_sarprop_weight_decay_shift>, <fann get_sarprop_weight_decay_shift>
        +
        +           This function appears in FANN >= 2.1.0.
        +        */
        +        float get_sarprop_weight_decay_shift() {
        +            float res = 0.0f;
        +            if (ann != NULL) {
        +                res = fann_get_rprop_delta_max(ann);
        +            }
        +            return res;
        +        }
        +
        +        /* Method: set_sarprop_weight_decay_shift
        +
        +           Set the sarprop weight decay shift.
        +
        +	        This function appears in FANN >= 2.1.0.
        +           
        +	    See also:
        +   	        <get_sarprop_weight_decay_shift>, <fann_set_sarprop_weight_decay_shift>
        +        */
        +        void set_sarprop_weight_decay_shift(float sarprop_weight_decay_shift) {
        +            if (ann != NULL) {
        +                fann_set_sarprop_weight_decay_shift(ann, sarprop_weight_decay_shift);
        +            }
        +        }
        +
        +        /* Method: get_sarprop_step_error_threshold_factor
        +
        +           The sarprop step error threshold factor.
        +
        +           The default delta max is 0.1.
        +
        +           See also:
        +   	        <set_sarprop_step_error_threshold_factor>, <fann get_sarprop_step_error_threshold_factor>
        +
        +           This function appears in FANN >= 2.1.0.
        +        */
        +        float get_sarprop_step_error_threshold_factor() {
        +            float res = 0.0f;
        +            if (ann != NULL) {
        +                res = fann_get_rprop_delta_max(ann);
        +            }
        +            return res;
        +        }
        +
        +        /* Method: set_sarprop_step_error_threshold_factor
        +
        +           Set the sarprop step error threshold factor.
        +
        +	        This function appears in FANN >= 2.1.0.
        +           
        +	    See also:
        +   	        <get_sarprop_step_error_threshold_factor>, <fann_set_sarprop_step_error_threshold_factor>
        +        */
        +        void set_sarprop_step_error_threshold_factor(float sarprop_step_error_threshold_factor) {
        +            if (ann != NULL) {
        +                fann_set_sarprop_step_error_threshold_factor(ann, sarprop_step_error_threshold_factor);
        +            }
        +        }
        +
        +        /* Method: get_sarprop_step_error_shift
        +
        +           The get sarprop step error shift.
        +
        +           The default delta max is 1.385.
        +
        +           See also:
        +   	        <set_sarprop_step_error_shift>, <fann get_sarprop_step_error_shift>
        +
        +           This function appears in FANN >= 2.1.0.
        +        */
        +        float get_sarprop_step_error_shift() {
        +            float res = 0.0f;
        +            if (ann != NULL) {
        +                res = fann_get_rprop_delta_max(ann);
        +            }
        +            return res;
        +        }
        +
        +        /* Method: set_sarprop_step_error_shift
        +
        +           Set the sarprop step error shift.
        +
        +	        This function appears in FANN >= 2.1.0.
        +           
        +	    See also:
        +   	        <get_sarprop_step_error_shift>, <fann_set_sarprop_step_error_shift>
        +        */
        +        void set_sarprop_step_error_shift(float sarprop_step_error_shift) {
        +            if (ann != NULL) {
        +                fann_set_sarprop_step_error_shift(ann, sarprop_step_error_shift);
        +            }
        +        }
        +
        +        /* Method: get_sarprop_temperature
        +
        +               The sarprop weight decay shift.
        +
        +               The default delta max is 0.015.
        +
        +               See also:
        +                   <set_sarprop_temperature>, <fann get_sarprop_temperature>
        +
        +               This function appears in FANN >= 2.1.0.
        +            */
        +        float get_sarprop_temperature() {
        +            float res = 0.0f;
        +            if (ann != NULL) {
        +                res = fann_get_rprop_delta_max(ann);
        +            }
        +            return res;
        +        }
        +
        +        /* Method: set_sarprop_temperature
        +
        +           Set the sarprop_temperature.
        +
        +	        This function appears in FANN >= 2.1.0.
        +           
        +	    See also:
        +   	        <get_sarprop_temperature>, <fann_set_sarprop_temperature>
        +        */
        +        void set_sarprop_temperature(float sarprop_temperature) {
        +            if (ann != NULL) {
        +                fann_set_sarprop_temperature(ann, sarprop_temperature);
        +            }
        +        }
        +
        +
        +        /* Method: get_num_input
        +
        +           Get the number of input neurons.
        +
        +	        This function appears in FANN >= 1.0.0.
        +        */
        +        unsigned int get_num_input() {
        +            unsigned int num_input = 0;
        +            if (ann != NULL) {
        +                num_input = fann_get_num_input(ann);
        +            }
        +            return num_input;
        +        }
        +
        +        /* Method: get_num_output
        +
        +           Get the number of output neurons.
        +
        +	        This function appears in FANN >= 1.0.0.
        +        */
        +        unsigned int get_num_output() {
        +            unsigned int num_output = 0;
        +            if (ann != NULL) {
        +                num_output = fann_get_num_output(ann);
        +            }
        +            return num_output;
        +        }
        +
        +        /* Method: get_total_neurons
        +
        +           Get the total number of neurons in the entire network. This number does also include the 
        +	        bias neurons, so a 2-4-2 network has 2+4+2 +2(bias) = 10 neurons.
        +
        +	        This function appears in FANN >= 1.0.0.
        +        */
        +        unsigned int get_total_neurons() {
        +            if (ann == NULL) {
        +                return 0;
        +            }
        +            return fann_get_total_neurons(ann);
        +        }
        +
        +        /* Method: get_total_connections
        +
        +           Get the total number of connections in the entire network.
        +
        +	        This function appears in FANN >= 1.0.0.
        +        */
        +        unsigned int get_total_connections() {
        +            if (ann == NULL) {
        +                return 0;
        +            }
        +            return fann_get_total_connections(ann);
        +        }
        +
        +#ifdef FIXEDFANN
        +        /* Method: get_decimal_point
        +
        +            Returns the position of the decimal point in the ann.
        +
        +            This function is only available when the ANN is in fixed point mode.
        +
        +            The decimal point is described in greater detail in the tutorial <Fixed Point Usage>.
        +
        +            See also:
        +                <Fixed Point Usage>, <get_multiplier>, <save_to_fixed>,
        +                <training_data::save_train_to_fixed>, <fann_get_decimal_point>
        +
        +            This function appears in FANN >= 1.0.0.
        +        */
        +        unsigned int get_decimal_point()
        +        {
        +            if (ann == NULL)
        +            {
        +                return 0;
        +            }
        +            return fann_get_decimal_point(ann);
        +        }
        +
        +        /* Method: get_multiplier
        +
        +            Returns the multiplier that fix point data is multiplied with.
        +
        +            This function is only available when the ANN is in fixed point mode.
        +
        +            The multiplier is the used to convert between floating point and fixed point notation.
        +            A floating point number is multiplied with the multiplier in order to get the fixed point
        +            number and visa versa.
        +
        +            The multiplier is described in greater detail in the tutorial <Fixed Point Usage>.
        +
        +            See also:
        +                <Fixed Point Usage>, <get_decimal_point>, <save_to_fixed>,
        +                <training_data::save_train_to_fixed>, <fann_get_multiplier>
        +
        +            This function appears in FANN >= 1.0.0.
        +        */ 
        +        unsigned int get_multiplier()
        +        {
        +            if (ann == NULL)
        +            {
        +                return 0;
        +            }
        +            return fann_get_multiplier(ann);
        +        }
        +#endif /* FIXEDFANN */
        +
        +        /*********************************************************************/
        +
        +        /* Method: get_network_type
        +
        +            Get the type of neural network it was created as.
        +
        +	        Returns:
        +                The neural network type from enum <FANN::network_type_enum>
        +
        +            See Also:
        +                <fann_get_network_type>
        +
        +           This function appears in FANN >= 2.1.0
        +        */
        +        network_type_enum get_network_type() {
        +            fann_nettype_enum network_type = FANN_NETTYPE_LAYER;
        +            if (ann != NULL) {
        +                network_type = fann_get_network_type(ann);
        +            }
        +            return static_cast<network_type_enum>(network_type);
        +        }
        +
        +        /* Method: get_connection_rate
        +
        +            Get the connection rate used when the network was created
        +
        +	        Returns:
        +                The connection rate
        +
        +            See also:
        +                <fann_get_connection_rate>
        +
        +           This function appears in FANN >= 2.1.0
        +        */
        +        float get_connection_rate() {
        +            if (ann == NULL) {
        +                return 0;
        +            }
        +            return fann_get_connection_rate(ann);
        +        }
        +
        +        /* Method: get_num_layers
        +
        +            Get the number of layers in the network
        +
        +	        Returns:
        +		        The number of layers in the neural network
        +
        +            See also:
        +                <fann_get_num_layers>
        +
        +           This function appears in FANN >= 2.1.0
        +        */
        +        unsigned int get_num_layers() {
        +            if (ann == NULL) {
        +                return 0;
        +            }
        +            return fann_get_num_layers(ann);
        +        }
        +
        +        /* Method: get_layer_array
        +
        +            Get the number of neurons in each layer in the network.
        +
        +            Bias is not included so the layers match the create methods.
        +
        +            The layers array must be preallocated to at least
        +            sizeof(unsigned int) * get_num_layers() long.
        +
        +            See also:
        +                <fann_get_layer_array>
        +
        +           This function appears in FANN >= 2.1.0
        +        */
        +        void get_layer_array(unsigned int *layers) {
        +            if (ann != NULL) {
        +                fann_get_layer_array(ann, layers);
        +            }
        +        }
        +
        +        /* Method: get_bias_array
        +
        +            Get the number of bias in each layer in the network.
        +
        +            The bias array must be preallocated to at least
        +            sizeof(unsigned int) * get_num_layers() long.
        +
        +            See also:
        +                <fann_get_bias_array>
        +
        +            This function appears in FANN >= 2.1.0
        +        */
        +        void get_bias_array(unsigned int *bias) {
        +            if (ann != NULL) {
        +                fann_get_bias_array(ann, bias);
        +            }
        +        }
        +
        +        /* Method: get_connection_array
        +
        +            Get the connections in the network.
        +
        +            The connections array must be preallocated to at least
        +            sizeof(struct fann_connection) * get_total_connections() long.
        +
        +            See also:
        +                <fann_get_connection_array>
        +
        +           This function appears in FANN >= 2.1.0
        +        */
        +        void get_connection_array(connection *connections) {
        +            if (ann != NULL) {
        +                fann_get_connection_array(ann, connections);
        +            }
        +        }
        +
        +        /* Method: set_weight_array
        +
        +            Set connections in the network.
        +
        +            Only the weights can be changed, connections and weights are ignored
        +            if they do not already exist in the network.
        +
        +            The array must have sizeof(struct fann_connection) * num_connections size.
        +
        +            See also:
        +                <fann_set_weight_array>
        +
        +           This function appears in FANN >= 2.1.0
        +        */
        +        void set_weight_array(connection *connections, unsigned int num_connections) {
        +            if (ann != NULL) {
        +                fann_set_weight_array(ann, connections, num_connections);
        +            }
        +        }
        +
        +        /* Method: set_weight
        +
        +            Set a connection in the network.
        +
        +            Only the weights can be changed. The connection/weight is
        +            ignored if it does not already exist in the network.
        +
        +            See also:
        +                <fann_set_weight>
        +
        +           This function appears in FANN >= 2.1.0
        +        */
        +        void set_weight(unsigned int from_neuron, unsigned int to_neuron, fann_type weight) {
        +            if (ann != NULL) {
        +                fann_set_weight(ann, from_neuron, to_neuron, weight);
        +            }
        +        }
        +
        +        /*********************************************************************/
        +
        +        /* Method: get_learning_momentum
        +
        +           Get the learning momentum.
        +           
        +           The learning momentum can be used to speed up FANN::TRAIN_INCREMENTAL training.
        +           A too high momentum will however not benefit training. Setting momentum to 0 will
        +           be the same as not using the momentum parameter. The recommended value of this parameter
        +           is between 0.0 and 1.0.
        +
        +           The default momentum is 0.
        +           
        +           See also:
        +           <set_learning_momentum>, <set_training_algorithm>
        +
        +           This function appears in FANN >= 2.0.0.   	
        +         */
        +        float get_learning_momentum() {
        +            float learning_momentum = 0.0f;
        +            if (ann != NULL) {
        +                learning_momentum = fann_get_learning_momentum(ann);
        +            }
        +            return learning_momentum;
        +        }
        +
        +        /* Method: set_learning_momentum
        +
        +           Set the learning momentum.
        +
        +           More info available in <get_learning_momentum>
        +
        +           This function appears in FANN >= 2.0.0.   	
        +         */
        +        void set_learning_momentum(float learning_momentum) {
        +            if (ann != NULL) {
        +                fann_set_learning_momentum(ann, learning_momentum);
        +            }
        +        }
        +
        +        /* Method: get_train_stop_function
        +
        +           Returns the the stop function used during training.
        +           
        +           The stop function is described further in <FANN::stop_function_enum>
        +           
        +           The default stop function is FANN::STOPFUNC_MSE
        +           
        +           See also:
        +   	        <get_train_stop_function>, <get_bit_fail_limit>
        +              
        +           This function appears in FANN >= 2.0.0.
        +         */
        +        stop_function_enum get_train_stop_function() {
        +            enum fann_stopfunc_enum stopfunc = FANN_STOPFUNC_MSE;
        +            if (ann != NULL) {
        +                stopfunc = fann_get_train_stop_function(ann);
        +            }
        +            return static_cast<stop_function_enum>(stopfunc);
        +        }
        +
        +        /* Method: set_train_stop_function
        +
        +           Set the stop function used during training.
        +
        +           The stop function is described further in <FANN::stop_function_enum>
        +           
        +           See also:
        +   	        <get_train_stop_function>
        +              
        +           This function appears in FANN >= 2.0.0.
        +         */
        +        void set_train_stop_function(stop_function_enum train_stop_function) {
        +            if (ann != NULL) {
        +                fann_set_train_stop_function(ann,
        +                                             static_cast<enum fann_stopfunc_enum>(train_stop_function));
        +            }
        +        }
        +
        +        /* Method: get_bit_fail_limit
        +
        +           Returns the bit fail limit used during training.
        +           
        +           The bit fail limit is used during training when the <FANN::stop_function_enum> is set to FANN_STOPFUNC_BIT.
        +
        +           The limit is the maximum accepted difference between the desired output and the actual output during
        +           training. Each output that diverges more than this limit is counted as an error bit.
        +           This difference is divided by two when dealing with symmetric activation functions,
        +           so that symmetric and not symmetric activation functions can use the same limit.
        +           
        +           The default bit fail limit is 0.35.
        +           
        +           See also:
        +   	        <set_bit_fail_limit>
        +           
        +           This function appears in FANN >= 2.0.0.
        +         */
        +        fann_type get_bit_fail_limit() {
        +            fann_type bit_fail_limit = 0.0f;
        +
        +            if (ann != NULL) {
        +                bit_fail_limit = fann_get_bit_fail_limit(ann);
        +            }
        +            return bit_fail_limit;
        +        }
        +
        +        /* Method: set_bit_fail_limit
        +
        +           Set the bit fail limit used during training.
        +          
        +           See also:
        +   	        <get_bit_fail_limit>
        +           
        +           This function appears in FANN >= 2.0.0.
        +         */
        +        void set_bit_fail_limit(fann_type bit_fail_limit) {
        +            if (ann != NULL) {
        +                fann_set_bit_fail_limit(ann, bit_fail_limit);
        +            }
        +        }
        +
        +        /* Method: get_bit_fail
        +        	
        +	        The number of fail bits; means the number of output neurons which differ more 
        +	        than the bit fail limit (see <get_bit_fail_limit>, <set_bit_fail_limit>). 
        +	        The bits are counted in all of the training data, so this number can be higher than
        +	        the number of training data.
        +        	
        +	        This value is reset by <reset_MSE> and updated by all the same functions which also
        +	        updates the MSE value (e.g. <test_data>, <train_epoch>)
        +        	
        +	        See also:
        +		        <FANN::stop_function_enum>, <get_MSE>
        +
        +	        This function appears in FANN >= 2.0.0
        +        */
        +        unsigned int get_bit_fail() {
        +            unsigned int bit_fail = 0;
        +            if (ann != NULL) {
        +                bit_fail = fann_get_bit_fail(ann);
        +            }
        +            return bit_fail;
        +        }
        +
        +#ifndef FIXEDFANN
        +        /*********************************************************************/
        +
        +        /* Method: cascadetrain_on_data
        +
        +           Trains on an entire dataset, for a period of time using the Cascade2 training algorithm.
        +           This algorithm adds neurons to the neural network while training, which means that it
        +           needs to start with an ANN without any hidden layers. The neural network should also use
        +           shortcut connections, so <create_shortcut> should be used to create the ANN like this:
        +           >net.create_shortcut(2, train_data.num_input_train_data(), train_data.num_output_train_data());
        +           
        +           This training uses the parameters set using the set_cascade_..., but it also uses another
        +           training algorithm as it's internal training algorithm. This algorithm can be set to either
        +           FANN::TRAIN_RPROP or FANN::TRAIN_QUICKPROP by <set_training_algorithm>, and the parameters 
        +           set for these training algorithms will also affect the cascade training.
        +           
        +           Parameters:
        +   		        data - The data, which should be used during training
        +   		        max_neuron - The maximum number of neurons to be added to neural network
        +   		        neurons_between_reports - The number of neurons between printing a status report to stdout.
        +   			        A value of zero means no reports should be printed.
        +   		        desired_error - The desired <fann_get_MSE> or <fann_get_bit_fail>, depending on which stop function
        +   			        is chosen by <fann_set_train_stop_function>.
        +
        +	        Instead of printing out reports every neurons_between_reports, a callback function can be called 
        +	        (see <set_callback>).
        +        	
        +	        See also:
        +		        <train_on_data>, <cascadetrain_on_file>, <fann_cascadetrain_on_data>
        +
        +	        This function appears in FANN >= 2.0.0. 
        +        */
        +        void cascadetrain_on_data(const training_data &data, unsigned int max_neurons,
        +                                  unsigned int neurons_between_reports, float desired_error) {
        +            if ((ann != NULL) && (data.train_data != NULL)) {
        +                fann_cascadetrain_on_data(ann, data.train_data, max_neurons,
        +                                          neurons_between_reports, desired_error);
        +            }
        +        }
        +
        +        /* Method: cascadetrain_on_file
        +           
        +           Does the same as <cascadetrain_on_data>, but reads the training data directly from a file.
        +           
        +           See also:
        +   		        <fann_cascadetrain_on_data>, <fann_cascadetrain_on_file>
        +
        +	        This function appears in FANN >= 2.0.0.
        +        */
        +        void cascadetrain_on_file(const std::string &filename, unsigned int max_neurons,
        +                                  unsigned int neurons_between_reports, float desired_error) {
        +            if (ann != NULL) {
        +                fann_cascadetrain_on_file(ann, filename.c_str(),
        +                                          max_neurons, neurons_between_reports, desired_error);
        +            }
        +        }
        +
        +        /* Method: get_cascade_output_change_fraction
        +
        +           The cascade output change fraction is a number between 0 and 1 determining how large a fraction
        +           the <get_MSE> value should change within <get_cascade_output_stagnation_epochs> during
        +           training of the output connections, in order for the training not to stagnate. If the training 
        +           stagnates, the training of the output connections will be ended and new candidates will be prepared.
        +           
        +           This means:
        +           If the MSE does not change by a fraction of <get_cascade_output_change_fraction> during a 
        +           period of <get_cascade_output_stagnation_epochs>, the training of the output connections
        +           is stopped because the training has stagnated.
        +
        +           If the cascade output change fraction is low, the output connections will be trained more and if the
        +           fraction is high they will be trained less.
        +           
        +           The default cascade output change fraction is 0.01, which is equalent to a 1% change in MSE.
        +
        +           See also:
        +   		        <set_cascade_output_change_fraction>, <get_MSE>,
        +                <get_cascade_output_stagnation_epochs>, <fann_get_cascade_output_change_fraction>
        +
        +	        This function appears in FANN >= 2.0.0.
        +         */
        +        float get_cascade_output_change_fraction() {
        +            float change_fraction = 0.0f;
        +            if (ann != NULL) {
        +                change_fraction = fann_get_cascade_output_change_fraction(ann);
        +            }
        +            return change_fraction;
        +        }
        +
        +        /* Method: set_cascade_output_change_fraction
        +
        +           Sets the cascade output change fraction.
        +           
        +           See also:
        +   		        <get_cascade_output_change_fraction>, <fann_set_cascade_output_change_fraction>
        +
        +	        This function appears in FANN >= 2.0.0.
        +         */
        +        void set_cascade_output_change_fraction(float cascade_output_change_fraction) {
        +            if (ann != NULL) {
        +                fann_set_cascade_output_change_fraction(ann, cascade_output_change_fraction);
        +            }
        +        }
        +
        +        /* Method: get_cascade_output_stagnation_epochs
        +
        +           The number of cascade output stagnation epochs determines the number of epochs training is allowed to
        +           continue without changing the MSE by a fraction of <get_cascade_output_change_fraction>.
        +           
        +           See more info about this parameter in <get_cascade_output_change_fraction>.
        +           
        +           The default number of cascade output stagnation epochs is 12.
        +
        +           See also:
        +   		        <set_cascade_output_stagnation_epochs>, <get_cascade_output_change_fraction>,
        +                <fann_get_cascade_output_stagnation_epochs>
        +
        +	        This function appears in FANN >= 2.0.0.
        +         */
        +        unsigned int get_cascade_output_stagnation_epochs() {
        +            unsigned int stagnation_epochs = 0;
        +            if (ann != NULL) {
        +                stagnation_epochs = fann_get_cascade_output_stagnation_epochs(ann);
        +            }
        +            return stagnation_epochs;
        +        }
        +
        +        /* Method: set_cascade_output_stagnation_epochs
        +
        +           Sets the number of cascade output stagnation epochs.
        +           
        +           See also:
        +   		        <get_cascade_output_stagnation_epochs>, <fann_set_cascade_output_stagnation_epochs>
        +
        +	        This function appears in FANN >= 2.0.0.
        +         */
        +        void set_cascade_output_stagnation_epochs(unsigned int cascade_output_stagnation_epochs) {
        +            if (ann != NULL) {
        +                fann_set_cascade_output_stagnation_epochs(ann, cascade_output_stagnation_epochs);
        +            }
        +        }
        +
        +        /* Method: get_cascade_candidate_change_fraction
        +
        +           The cascade candidate change fraction is a number between 0 and 1 determining how large a fraction
        +           the <get_MSE> value should change within <get_cascade_candidate_stagnation_epochs> during
        +           training of the candidate neurons, in order for the training not to stagnate. If the training 
        +           stagnates, the training of the candidate neurons will be ended and the best candidate will be selected.
        +           
        +           This means:
        +           If the MSE does not change by a fraction of <get_cascade_candidate_change_fraction> during a 
        +           period of <get_cascade_candidate_stagnation_epochs>, the training of the candidate neurons
        +           is stopped because the training has stagnated.
        +
        +           If the cascade candidate change fraction is low, the candidate neurons will be trained more and if the
        +           fraction is high they will be trained less.
        +           
        +           The default cascade candidate change fraction is 0.01, which is equalent to a 1% change in MSE.
        +
        +           See also:
        +   		        <set_cascade_candidate_change_fraction>, <get_MSE>,
        +                <get_cascade_candidate_stagnation_epochs>, <fann_get_cascade_candidate_change_fraction>
        +
        +	        This function appears in FANN >= 2.0.0.
        +         */
        +        float get_cascade_candidate_change_fraction() {
        +            float change_fraction = 0.0f;
        +            if (ann != NULL) {
        +                change_fraction = fann_get_cascade_candidate_change_fraction(ann);
        +            }
        +            return change_fraction;
        +        }
        +
        +        /* Method: set_cascade_candidate_change_fraction
        +
        +           Sets the cascade candidate change fraction.
        +           
        +           See also:
        +   		        <get_cascade_candidate_change_fraction>,
        +                <fann_set_cascade_candidate_change_fraction>
        +
        +	        This function appears in FANN >= 2.0.0.
        +         */
        +        void set_cascade_candidate_change_fraction(float cascade_candidate_change_fraction) {
        +            if (ann != NULL) {
        +                fann_set_cascade_candidate_change_fraction(ann, cascade_candidate_change_fraction);
        +            }
        +        }
        +
        +        /* Method: get_cascade_candidate_stagnation_epochs
        +
        +           The number of cascade candidate stagnation epochs determines the number of epochs training is allowed to
        +           continue without changing the MSE by a fraction of <get_cascade_candidate_change_fraction>.
        +           
        +           See more info about this parameter in <get_cascade_candidate_change_fraction>.
        +
        +           The default number of cascade candidate stagnation epochs is 12.
        +
        +           See also:
        +   		        <set_cascade_candidate_stagnation_epochs>, <get_cascade_candidate_change_fraction>,
        +                <fann_get_cascade_candidate_stagnation_epochs>
        +
        +	        This function appears in FANN >= 2.0.0.
        +         */
        +        unsigned int get_cascade_candidate_stagnation_epochs() {
        +            unsigned int stagnation_epochs = 0;
        +            if (ann != NULL) {
        +                stagnation_epochs = fann_get_cascade_candidate_stagnation_epochs(ann);
        +            }
        +            return stagnation_epochs;
        +        }
        +
        +        /* Method: set_cascade_candidate_stagnation_epochs
        +
        +           Sets the number of cascade candidate stagnation epochs.
        +           
        +           See also:
        +   		        <get_cascade_candidate_stagnation_epochs>,
        +                <fann_set_cascade_candidate_stagnation_epochs>
        +
        +	        This function appears in FANN >= 2.0.0.
        +         */
        +        void set_cascade_candidate_stagnation_epochs(unsigned int cascade_candidate_stagnation_epochs) {
        +            if (ann != NULL) {
        +                fann_set_cascade_candidate_stagnation_epochs(ann, cascade_candidate_stagnation_epochs);
        +            }
        +        }
        +
        +        /* Method: get_cascade_weight_multiplier
        +
        +           The weight multiplier is a parameter which is used to multiply the weights from the candidate neuron
        +           before adding the neuron to the neural network. This parameter is usually between 0 and 1, and is used
        +           to make the training a bit less aggressive.
        +
        +           The default weight multiplier is 0.4
        +
        +           See also:
        +   		        <set_cascade_weight_multiplier>, <fann_get_cascade_weight_multiplier>
        +
        +	        This function appears in FANN >= 2.0.0.
        +         */
        +        fann_type get_cascade_weight_multiplier() {
        +            fann_type weight_multiplier = 0;
        +            if (ann != NULL) {
        +                weight_multiplier = fann_get_cascade_weight_multiplier(ann);
        +            }
        +            return weight_multiplier;
        +        }
        +
        +        /* Method: set_cascade_weight_multiplier
        +           
        +           Sets the weight multiplier.
        +           
        +           See also:
        +   		        <get_cascade_weight_multiplier>, <fann_set_cascade_weight_multiplier>
        +
        +	        This function appears in FANN >= 2.0.0.
        +         */
        +        void set_cascade_weight_multiplier(fann_type cascade_weight_multiplier) {
        +            if (ann != NULL) {
        +                fann_set_cascade_weight_multiplier(ann, cascade_weight_multiplier);
        +            }
        +        }
        +
        +        /* Method: get_cascade_candidate_limit
        +
        +           The candidate limit is a limit for how much the candidate neuron may be trained.
        +           The limit is a limit on the proportion between the MSE and candidate score.
        +           
        +           Set this to a lower value to avoid overfitting and to a higher if overfitting is
        +           not a problem.
        +           
        +           The default candidate limit is 1000.0
        +
        +           See also:
        +   		        <set_cascade_candidate_limit>, <fann_get_cascade_candidate_limit>
        +
        +	        This function appears in FANN >= 2.0.0.
        +         */
        +        fann_type get_cascade_candidate_limit() {
        +            fann_type candidate_limit = 0;
        +            if (ann != NULL) {
        +                candidate_limit = fann_get_cascade_candidate_limit(ann);
        +            }
        +            return candidate_limit;
        +        }
        +
        +        /* Method: set_cascade_candidate_limit
        +
        +           Sets the candidate limit.
        +          
        +           See also:
        +   		        <get_cascade_candidate_limit>, <fann_set_cascade_candidate_limit>
        +
        +	        This function appears in FANN >= 2.0.0.
        +         */
        +        void set_cascade_candidate_limit(fann_type cascade_candidate_limit) {
        +            if (ann != NULL) {
        +                fann_set_cascade_candidate_limit(ann, cascade_candidate_limit);
        +            }
        +        }
        +
        +        /* Method: get_cascade_max_out_epochs
        +
        +           The maximum out epochs determines the maximum number of epochs the output connections
        +           may be trained after adding a new candidate neuron.
        +           
        +           The default max out epochs is 150
        +
        +           See also:
        +   		        <set_cascade_max_out_epochs>, <fann_get_cascade_max_out_epochs>
        +
        +	        This function appears in FANN >= 2.0.0.
        +         */
        +        unsigned int get_cascade_max_out_epochs() {
        +            unsigned int max_out_epochs = 0;
        +            if (ann != NULL) {
        +                max_out_epochs = fann_get_cascade_max_out_epochs(ann);
        +            }
        +            return max_out_epochs;
        +        }
        +
        +        /* Method: set_cascade_max_out_epochs
        +
        +           Sets the maximum out epochs.
        +
        +           See also:
        +   		        <get_cascade_max_out_epochs>, <fann_set_cascade_max_out_epochs>
        +
        +	        This function appears in FANN >= 2.0.0.
        +         */
        +        void set_cascade_max_out_epochs(unsigned int cascade_max_out_epochs) {
        +            if (ann != NULL) {
        +                fann_set_cascade_max_out_epochs(ann, cascade_max_out_epochs);
        +            }
        +        }
        +
        +        /* Method: get_cascade_max_cand_epochs
        +
        +           The maximum candidate epochs determines the maximum number of epochs the input 
        +           connections to the candidates may be trained before adding a new candidate neuron.
        +           
        +           The default max candidate epochs is 150
        +
        +           See also:
        +   		        <set_cascade_max_cand_epochs>, <fann_get_cascade_max_cand_epochs>
        +
        +	        This function appears in FANN >= 2.0.0.
        +         */
        +        unsigned int get_cascade_max_cand_epochs() {
        +            unsigned int max_cand_epochs = 0;
        +            if (ann != NULL) {
        +                max_cand_epochs = fann_get_cascade_max_cand_epochs(ann);
        +            }
        +            return max_cand_epochs;
        +        }
        +
        +        /* Method: set_cascade_max_cand_epochs
        +
        +           Sets the max candidate epochs.
        +          
        +           See also:
        +   		        <get_cascade_max_cand_epochs>, <fann_set_cascade_max_cand_epochs>
        +
        +	        This function appears in FANN >= 2.0.0.
        +         */
        +        void set_cascade_max_cand_epochs(unsigned int cascade_max_cand_epochs) {
        +            if (ann != NULL) {
        +                fann_set_cascade_max_cand_epochs(ann, cascade_max_cand_epochs);
        +            }
        +        }
        +
        +        /* Method: get_cascade_num_candidates
        +
        +           The number of candidates used during training (calculated by multiplying <get_cascade_activation_functions_count>,
        +           <get_cascade_activation_steepnesses_count> and <get_cascade_num_candidate_groups>). 
        +
        +           The actual candidates is defined by the <get_cascade_activation_functions> and 
        +           <get_cascade_activation_steepnesses> arrays. These arrays define the activation functions 
        +           and activation steepnesses used for the candidate neurons. If there are 2 activation functions
        +           in the activation function array and 3 steepnesses in the steepness array, then there will be 
        +           2x3=6 different candidates which will be trained. These 6 different candidates can be copied into
        +           several candidate groups, where the only difference between these groups is the initial weights.
        +           If the number of groups is set to 2, then the number of candidate neurons will be 2x3x2=12. The 
        +           number of candidate groups is defined by <set_cascade_num_candidate_groups>.
        +
        +           The default number of candidates is 6x4x2 = 48
        +
        +           See also:
        +   		        <get_cascade_activation_functions>, <get_cascade_activation_functions_count>, 
        +   		        <get_cascade_activation_steepnesses>, <get_cascade_activation_steepnesses_count>,
        +   		        <get_cascade_num_candidate_groups>, <fann_get_cascade_num_candidates>
        +
        +	        This function appears in FANN >= 2.0.0.
        +         */
        +        unsigned int get_cascade_num_candidates() {
        +            unsigned int num_candidates = 0;
        +            if (ann != NULL) {
        +                num_candidates = fann_get_cascade_num_candidates(ann);
        +            }
        +            return num_candidates;
        +        }
        +
        +        /* Method: get_cascade_activation_functions_count
        +
        +           The number of activation functions in the <get_cascade_activation_functions> array.
        +
        +           The default number of activation functions is 10.
        +
        +           See also:
        +   		        <get_cascade_activation_functions>, <set_cascade_activation_functions>,
        +                <fann_get_cascade_activation_functions_count>
        +
        +	        This function appears in FANN >= 2.0.0.
        +         */
        +        unsigned int get_cascade_activation_functions_count() {
        +            unsigned int activation_functions_count = 0;
        +            if (ann != NULL) {
        +                activation_functions_count = fann_get_cascade_activation_functions_count(ann);
        +            }
        +            return activation_functions_count;
        +        }
        +
        +        /* Method: get_cascade_activation_functions
        +
        +           The cascade activation functions array is an array of the different activation functions used by
        +           the candidates. 
        +           
        +           See <get_cascade_num_candidates> for a description of which candidate neurons will be 
        +           generated by this array.
        +           
        +           See also:
        +   		        <get_cascade_activation_functions_count>, <set_cascade_activation_functions>,
        +   		        <FANN::activation_function_enum>
        +
        +	        This function appears in FANN >= 2.0.0.
        +         */
        +        activation_function_enum *get_cascade_activation_functions() {
        +            enum fann_activationfunc_enum *activation_functions = NULL;
        +            if (ann != NULL) {
        +                activation_functions = fann_get_cascade_activation_functions(ann);
        +            }
        +            return reinterpret_cast<activation_function_enum *>(activation_functions);
        +        }
        +
        +        /* Method: set_cascade_activation_functions
        +
        +           Sets the array of cascade candidate activation functions. The array must be just as long
        +           as defined by the count.
        +
        +           See <get_cascade_num_candidates> for a description of which candidate neurons will be 
        +           generated by this array.
        +
        +           See also:
        +   		        <get_cascade_activation_steepnesses_count>, <get_cascade_activation_steepnesses>,
        +                <fann_set_cascade_activation_functions>
        +
        +	        This function appears in FANN >= 2.0.0.
        +         */
        +        void set_cascade_activation_functions(activation_function_enum *cascade_activation_functions,
        +                                              unsigned int cascade_activation_functions_count) {
        +            if (ann != NULL) {
        +                fann_set_cascade_activation_functions(ann,
        +                                                      reinterpret_cast<enum fann_activationfunc_enum *>(cascade_activation_functions),
        +                                                      cascade_activation_functions_count);
        +            }
        +        }
        +
        +        /* Method: get_cascade_activation_steepnesses_count
        +
        +           The number of activation steepnesses in the <get_cascade_activation_functions> array.
        +
        +           The default number of activation steepnesses is 4.
        +
        +           See also:
        +   		        <get_cascade_activation_steepnesses>, <set_cascade_activation_functions>,
        +                <fann_get_cascade_activation_steepnesses_count>
        +
        +	        This function appears in FANN >= 2.0.0.
        +         */
        +        unsigned int get_cascade_activation_steepnesses_count() {
        +            unsigned int activation_steepness_count = 0;
        +            if (ann != NULL) {
        +                activation_steepness_count = fann_get_cascade_activation_steepnesses_count(ann);
        +            }
        +            return activation_steepness_count;
        +        }
        +
        +        /* Method: get_cascade_activation_steepnesses
        +
        +           The cascade activation steepnesses array is an array of the different activation functions used by
        +           the candidates.
        +
        +           See <get_cascade_num_candidates> for a description of which candidate neurons will be 
        +           generated by this array.
        +
        +           The default activation steepnesses is {0.25, 0.50, 0.75, 1.00}
        +
        +           See also:
        +   		        <set_cascade_activation_steepnesses>, <get_cascade_activation_steepnesses_count>,
        +                <fann_get_cascade_activation_steepnesses>
        +
        +	        This function appears in FANN >= 2.0.0.
        +         */
        +        fann_type *get_cascade_activation_steepnesses() {
        +            fann_type *activation_steepnesses = NULL;
        +            if (ann != NULL) {
        +                activation_steepnesses = fann_get_cascade_activation_steepnesses(ann);
        +            }
        +            return activation_steepnesses;
        +        }
        +
        +        /* Method: set_cascade_activation_steepnesses
        +
        +           Sets the array of cascade candidate activation steepnesses. The array must be just as long
        +           as defined by the count.
        +
        +           See <get_cascade_num_candidates> for a description of which candidate neurons will be 
        +           generated by this array.
        +
        +           See also:
        +   		        <get_cascade_activation_steepnesses>, <get_cascade_activation_steepnesses_count>,
        +                <fann_set_cascade_activation_steepnesses>
        +
        +	        This function appears in FANN >= 2.0.0.
        +         */
        +        void set_cascade_activation_steepnesses(fann_type *cascade_activation_steepnesses,
        +                                                unsigned int cascade_activation_steepnesses_count) {
        +            if (ann != NULL) {
        +                fann_set_cascade_activation_steepnesses(ann,
        +                                                        cascade_activation_steepnesses,
        +                                                        cascade_activation_steepnesses_count);
        +            }
        +        }
        +
        +        /* Method: get_cascade_num_candidate_groups
        +
        +           The number of candidate groups is the number of groups of identical candidates which will be used
        +           during training.
        +           
        +           This number can be used to have more candidates without having to define new parameters for the candidates.
        +           
        +           See <get_cascade_num_candidates> for a description of which candidate neurons will be 
        +           generated by this parameter.
        +           
        +           The default number of candidate groups is 2
        +
        +           See also:
        +   		        <set_cascade_num_candidate_groups>, <fann_get_cascade_num_candidate_groups>
        +
        +	        This function appears in FANN >= 2.0.0.
        +         */
        +        unsigned int get_cascade_num_candidate_groups() {
        +            unsigned int num_candidate_groups = 0;
        +            if (ann != NULL) {
        +                num_candidate_groups = fann_get_cascade_num_candidate_groups(ann);
        +            }
        +            return num_candidate_groups;
        +        }
        +
        +        /* Method: set_cascade_num_candidate_groups
        +
        +           Sets the number of candidate groups.
        +
        +           See also:
        +   		        <get_cascade_num_candidate_groups>, <fann_set_cascade_num_candidate_groups>
        +
        +	        This function appears in FANN >= 2.0.0.
        +         */
        +        void set_cascade_num_candidate_groups(unsigned int cascade_num_candidate_groups) {
        +            if (ann != NULL) {
        +                fann_set_cascade_num_candidate_groups(ann, cascade_num_candidate_groups);
        +            }
        +        }
        +
        +        /*********************************************************************/
        +
        +
        +        /* Method: scale_train
        +
        +           Scale input and output data based on previously calculated parameters.
        +
        +           See also:
        +   		        <descale_train>, <fann_scale_train>
        +
        +	        This function appears in FANN >= 2.1.0.
        +         */
        +        void scale_train(training_data &data) {
        +            if (ann != NULL) {
        +                fann_scale_train(ann, data.train_data);
        +            }
        +        }
        +
        +        /* Method: descale_train
        +
        +           Descale input and output data based on previously calculated parameters.
        +
        +           See also:
        +   		        <scale_train>, <fann_descale_train>
        +
        +	        This function appears in FANN >= 2.1.0.
        +         */
        +        void descale_train(training_data &data) {
        +            if (ann != NULL) {
        +                fann_descale_train(ann, data.train_data);
        +            }
        +        }
        +
        +        /* Method: set_input_scaling_params
        +
        +           Calculate scaling parameters for future use based on training data.
        +
        +           See also:
        +   		        <set_output_scaling_params>, <fann_set_input_scaling_params>
        +
        +	        This function appears in FANN >= 2.1.0.
        +         */
        +        bool set_input_scaling_params(const training_data &data, float new_input_min, float new_input_max) {
        +            bool status = false;
        +            if (ann != NULL) {
        +                status = (fann_set_input_scaling_params(ann, data.train_data, new_input_min, new_input_max) != -1);
        +            }
        +            return status;
        +        }
        +
        +        /* Method: set_output_scaling_params
        +
        +           Calculate scaling parameters for future use based on training data.
        +
        +           See also:
        +   		        <set_input_scaling_params>, <fann_set_output_scaling_params>
        +
        +	        This function appears in FANN >= 2.1.0.
        +         */
        +        bool set_output_scaling_params(const training_data &data, float new_output_min, float new_output_max) {
        +            bool status = false;
        +            if (ann != NULL) {
        +                status = (fann_set_output_scaling_params(ann, data.train_data, new_output_min, new_output_max) != -1);
        +            }
        +            return status;
        +        }
        +
        +        /* Method: set_scaling_params
        +
        +           Calculate scaling parameters for future use based on training data.
        +
        +           See also:
        +   		        <clear_scaling_params>, <fann_set_scaling_params>
        +
        +	        This function appears in FANN >= 2.1.0.
        +         */
        +        bool set_scaling_params(const training_data &data,
        +                                float new_input_min, float new_input_max, float new_output_min, float new_output_max) {
        +            bool status = false;
        +            if (ann != NULL) {
        +                status = (fann_set_scaling_params(ann, data.train_data,
        +                                                  new_input_min, new_input_max, new_output_min, new_output_max) != -1);
        +            }
        +            return status;
        +        }
        +
        +        /* Method: clear_scaling_params
        +
        +           Clears scaling parameters.
        +
        +           See also:
        +   		        <set_scaling_params>, <fann_clear_scaling_params>
        +
        +	        This function appears in FANN >= 2.1.0.
        +         */
        +        bool clear_scaling_params() {
        +            bool status = false;
        +            if (ann != NULL) {
        +                status = (fann_clear_scaling_params(ann) != -1);
        +            }
        +            return status;
        +        }
        +
        +        /* Method: scale_input
        +
        +           Scale data in input vector before feed it to ann based on previously calculated parameters.
        +
        +           See also:
        +   		        <descale_input>, <scale_output>, <fann_scale_input>
        +
        +	        This function appears in FANN >= 2.1.0.
        +         */
        +        void scale_input(fann_type *input_vector) {
        +            if (ann != NULL) {
        +                fann_scale_input(ann, input_vector);
        +            }
        +        }
        +
        +        /* Method: scale_output
        +
        +           Scale data in output vector before feed it to ann based on previously calculated parameters.
        +
        +           See also:
        +   		        <descale_output>, <scale_input>, <fann_scale_output>
        +
        +	        This function appears in FANN >= 2.1.0.
        +         */
        +        void scale_output(fann_type *output_vector) {
        +            if (ann != NULL) {
        +                fann_scale_output(ann, output_vector);
        +            }
        +        }
        +
        +        /* Method: descale_input
        +
        +           Scale data in input vector after get it from ann based on previously calculated parameters.
        +
        +           See also:
        +   		        <scale_input>, <descale_output>, <fann_descale_input>
        +
        +	        This function appears in FANN >= 2.1.0.
        +         */
        +        void descale_input(fann_type *input_vector) {
        +            if (ann != NULL) {
        +                fann_descale_input(ann, input_vector);
        +            }
        +        }
        +
        +        /* Method: descale_output
        +
        +           Scale data in output vector after get it from ann based on previously calculated parameters.
        +
        +           See also:
        +   		        <scale_output>, <descale_input>, <fann_descale_output>
        +
        +	        This function appears in FANN >= 2.1.0.
        +         */
        +        void descale_output(fann_type *output_vector) {
        +            if (ann != NULL) {
        +                fann_descale_output(ann, output_vector);
        +            }
        +        }
        +
        +#endif /* FIXEDFANN */
        +
        +        /*********************************************************************/
        +
        +        /* Method: set_error_log
        +
        +           Change where errors are logged to.
        +           
        +           If log_file is NULL, no errors will be printed.
        +           
        +           If neural_net is empty i.e. ann is NULL, the default log will be set.
        +           The default log is the log used when creating a neural_net.
        +           This default log will also be the default for all new structs
        +           that are created.
        +           
        +           The default behavior is to log them to stderr.
        +           
        +           See also:
        +                <struct fann_error>, <fann_set_error_log>
        +           
        +           This function appears in FANN >= 1.1.0.   
        +         */
        +        void set_error_log(FILE *log_file) {
        +            fann_set_error_log(reinterpret_cast<struct fann_error *>(ann), log_file);
        +        }
        +
        +        /* Method: get_errno
        +
        +           Returns the last error number.
        +           
        +           See also:
        +            <fann_errno_enum>, <fann_reset_errno>, <fann_get_errno>
        +            
        +           This function appears in FANN >= 1.1.0.   
        +         */
        +        unsigned int get_errno() {
        +            return fann_get_errno(reinterpret_cast<struct fann_error *>(ann));
        +        }
        +
        +        /* Method: reset_errno
        +
        +           Resets the last error number.
        +           
        +           This function appears in FANN >= 1.1.0.   
        +         */
        +        void reset_errno() {
        +            fann_reset_errno(reinterpret_cast<struct fann_error *>(ann));
        +        }
        +
        +        /* Method: reset_errstr
        +
        +           Resets the last error string.
        +
        +           This function appears in FANN >= 1.1.0.   
        +         */
        +        void reset_errstr() {
        +            fann_reset_errstr(reinterpret_cast<struct fann_error *>(ann));
        +        }
        +
        +        /* Method: get_errstr
        +
        +           Returns the last errstr.
        +          
        +           This function calls <fann_reset_errno> and <fann_reset_errstr>
        +
        +           This function appears in FANN >= 1.1.0.   
        +         */
        +        std::string get_errstr() {
        +            return std::string(fann_get_errstr(reinterpret_cast<struct fann_error *>(ann)));
        +        }
        +
        +        /* Method: print_error
        +
        +           Prints the last error to stderr.
        +
        +           This function appears in FANN >= 1.1.0.   
        +         */
        +        void print_error() {
        +            fann_print_error(reinterpret_cast<struct fann_error *>(ann));
        +        }
        +
        +        /* Function: disable_seed_rand
        +
        +           Disables the automatic random generator seeding that happens in FANN.
        +
        +           Per default FANN will always seed the random generator when creating a new network,
        +           unless FANN_NO_SEED is defined during compilation of the library. This method can
        +           disable this at runtime.
        +
        +           This function appears in FANN >= 2.3.0
        +        */
        +        void disable_seed_rand() {
        +            fann_disable_seed_rand();
        +        }
        +
        +        /* Function: enable_seed_rand
        +
        +           Enables the automatic random generator seeding that happens in FANN.
        +
        +           Per default FANN will always seed the random generator when creating a new network,
        +           unless FANN_NO_SEED is defined during compilation of the library. This method can
        +           disable this at runtime.
        +
        +           This function appears in FANN >= 2.3.0
        +        */
        +        void enable_seed_rand() {
        +            fann_enable_seed_rand();
        +        }
        +
        +        /*********************************************************************/
        +
        +    private:
        +        // Structure used by set_callback to hold information about a user callback
        +        typedef struct user_context_type {
        +            callback_type user_callback; // Pointer to user callback function
        +            void *user_data; // Arbitrary data pointer passed to the callback
        +            neural_net *net; // This pointer for the neural network
        +        } user_context;
        +
        +#ifndef FIXEDFANN
        +
        +        // Internal callback used to convert from pointers to class references
        +        static int FANN_API internal_callback(struct fann *ann, struct fann_train_data *train,
        +                                              unsigned int max_epochs, unsigned int epochs_between_reports,
        +                                              float desired_error, unsigned int epochs) {
        +            user_context *user_data = static_cast<user_context *>(fann_get_user_data(ann));
        +            if (user_data != NULL) {
        +                FANN::training_data data;
        +                data.train_data = train;
        +
        +                int result = (*user_data->user_callback)(*user_data->net,
        +                                                         data, max_epochs, epochs_between_reports, desired_error,
        +                                                         epochs, user_data->user_data);
        +
        +                data.train_data = NULL; // Prevent automatic cleanup
        +                return result;
        +            }
        +            else {
        +                return -1; // This should not occur except if out of memory
        +            }
        +        }
        +
        +#endif  /* NOT FIXEDFANN */
        +
        +    protected:
        +        // Pointer the encapsulated fann neural net structure
        +        struct fann *ann;
        +    };
        +
        +    /*************************************************************************/
        +}
        +
        +#endif /* FANN_CPP_H_INCLUDED */
        diff --git a/lib/ann/fann/src/include/fann_data.h b/lib/ann/fann/src/include/fann_data.h
        new file mode 100644
        index 0000000..99f42c7
        --- /dev/null
        +++ b/lib/ann/fann/src/include/fann_data.h
        @@ -0,0 +1,826 @@
        +/*
        +Fast Artificial Neural Network Library (fann)
        +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com)
        +
        +This library is free software; you can redistribute it and/or
        +modify it under the terms of the GNU Lesser General Public
        +License as published by the Free Software Foundation; either
        +version 2.1 of the License, or (at your option) any later version.
        +
        +This library is distributed in the hope that it will be useful,
        +but WITHOUT ANY WARRANTY; without even the implied warranty of
        +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
        +Lesser General Public License for more details.
        +
        +You should have received a copy of the GNU Lesser General Public
        +License along with this library; if not, write to the Free Software
        +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        +*/
        +
        +#ifndef __fann_data_h__
        +#define __fann_data_h__
        +
        +#include <stdio.h>
        +
        +/* Section: FANN Datatypes
        +
        +   The two main datatypes used in the fann library are <struct fann>, 
        +   which represents an artificial neural network, and <struct fann_train_data>,
        +   which represents training data.
        + */
        +
        +
        +/* Type: fann_type
        +   fann_type is the type used for the weights, inputs and outputs of the neural network.
        +   
        +	fann_type is defined as a:
        +	float - if you include fann.h or floatfann.h
        +	double - if you include doublefann.h
        +	int - if you include fixedfann.h (please be aware that fixed point usage is 
        +			only to be used during execution, and not during training).
        +*/
        +
        +/* Enum: fann_train_enum
        +	The Training algorithms used when training on <struct fann_train_data> with functions like
        +	<fann_train_on_data> or <fann_train_on_file>. The incremental training alters the weights
        +	after each time it is presented an input pattern, while batch only alters the weights once after
        +	it has been presented to all the patterns.
        +
        +	FANN_TRAIN_INCREMENTAL -  Standard backpropagation algorithm, where the weights are 
        +		updated after each training pattern. This means that the weights are updated many 
        +		times during a single epoch. For this reason some problems will train very fast with 
        +		this algorithm, while other more advanced problems will not train very well.
        +	FANN_TRAIN_BATCH -  Standard backpropagation algorithm, where the weights are updated after 
        +		calculating the mean square error for the whole training set. This means that the weights 
        +		are only updated once during an epoch. For this reason some problems will train slower with 
        +		this algorithm. But since the mean square error is calculated more correctly than in 
        +		incremental training, some problems will reach better solutions with this algorithm.
        +	FANN_TRAIN_RPROP - A more advanced batch training algorithm which achieves good results 
        +		for many problems. The RPROP training algorithm is adaptive, and does therefore not 
        +		use the learning_rate. Some other parameters can however be set to change the way the 
        +		RPROP algorithm works, but it is only recommended for users with insight in how the RPROP 
        +		training algorithm works. The RPROP training algorithm is described by 
        +		[Riedmiller and Braun, 1993], but the actual learning algorithm used here is the 
        +		iRPROP- training algorithm which is described by [Igel and Husken, 2000] which 
        +		is a variant of the standard RPROP training algorithm.
        +	FANN_TRAIN_QUICKPROP - A more advanced batch training algorithm which achieves good results 
        +		for many problems. The quickprop training algorithm uses the learning_rate parameter 
        +		along with other more advanced parameters, but it is only recommended to change these 
        +		advanced parameters, for users with insight in how the quickprop training algorithm works.
        +		The quickprop training algorithm is described by [Fahlman, 1988].
        +	FANN_TRAIN_SARPROP - THE SARPROP ALGORITHM: A SIMULATED ANNEALING ENHANCEMENT TO RESILIENT BACK PROPAGATION
        +    http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.47.8197&rep=rep1&type=pdf
        +	
        +	See also:
        +		<fann_set_training_algorithm>, <fann_get_training_algorithm>
        +*/
        +enum fann_train_enum
        +{
        +	FANN_TRAIN_INCREMENTAL = 0,
        +	FANN_TRAIN_BATCH,
        +	FANN_TRAIN_RPROP,
        +	FANN_TRAIN_QUICKPROP,
        +	FANN_TRAIN_SARPROP
        +};
        +
        +/* Constant: FANN_TRAIN_NAMES
        +   
        +   Constant array consisting of the names for the training algorithms, so that the name of an
        +   training function can be received by:
        +   (code)
        +   char *name = FANN_TRAIN_NAMES[train_function];
        +   (end)
        +
        +   See Also:
        +      <fann_train_enum>
        +*/
        +static char const *const FANN_TRAIN_NAMES[] = {
        +	"FANN_TRAIN_INCREMENTAL",
        +	"FANN_TRAIN_BATCH",
        +	"FANN_TRAIN_RPROP",
        +	"FANN_TRAIN_QUICKPROP",
        +	"FANN_TRAIN_SARPROP"
        +};
        +
        +/* Enums: fann_activationfunc_enum
        +   
        +	The activation functions used for the neurons during training. The activation functions
        +	can either be defined for a group of neurons by <fann_set_activation_function_hidden> and
        +	<fann_set_activation_function_output> or it can be defined for a single neuron by <fann_set_activation_function>.
        +
        +	The steepness of an activation function is defined in the same way by 
        +	<fann_set_activation_steepness_hidden>, <fann_set_activation_steepness_output> and <fann_set_activation_steepness>.
        +   
        +   The functions are described with functions where:
        +   * x is the input to the activation function,
        +   * y is the output,
        +   * s is the steepness and
        +   * d is the derivation.
        +
        +   FANN_LINEAR - Linear activation function. 
        +     * span: -inf < y < inf
        +	 * y = x*s, d = 1*s
        +	 * Can NOT be used in fixed point.
        +
        +   FANN_THRESHOLD - Threshold activation function.
        +	 * x < 0 -> y = 0, x >= 0 -> y = 1
        +	 * Can NOT be used during training.
        +
        +   FANN_THRESHOLD_SYMMETRIC - Threshold activation function.
        +	 * x < 0 -> y = -1, x >= 0 -> y = 1
        +	 * Can NOT be used during training.
        +
        +   FANN_SIGMOID - Sigmoid activation function.
        +	 * One of the most used activation functions.
        +	 * span: 0 < y < 1
        +	 * y = 1/(1 + exp(-2*s*x))
        +	 * d = 2*s*y*(1 - y)
        +
        +   FANN_SIGMOID_STEPWISE - Stepwise linear approximation to sigmoid.
        +	 * Faster than sigmoid but a bit less precise.
        +
        +   FANN_SIGMOID_SYMMETRIC - Symmetric sigmoid activation function, aka. tanh.
        +	 * One of the most used activation functions.
        +	 * span: -1 < y < 1
        +	 * y = tanh(s*x) = 2/(1 + exp(-2*s*x)) - 1
        +	 * d = s*(1-(y*y))
        +
        +   FANN_SIGMOID_SYMMETRIC_STEPWISE - Stepwise linear approximation to symmetric sigmoid.
        +	 * Faster than symmetric sigmoid but a bit less precise.
        +
        +   FANN_GAUSSIAN - Gaussian activation function.
        +	 * 0 when x = -inf, 1 when x = 0 and 0 when x = inf
        +	 * span: 0 < y < 1
        +	 * y = exp(-x*s*x*s)
        +	 * d = -2*x*s*y*s
        +
        +   FANN_GAUSSIAN_SYMMETRIC - Symmetric gaussian activation function.
        +	 * -1 when x = -inf, 1 when x = 0 and 0 when x = inf
        +	 * span: -1 < y < 1
        +	 * y = exp(-x*s*x*s)*2-1
        +	 * d = -2*x*s*(y+1)*s
        +	 
        +   FANN_ELLIOT - Fast (sigmoid like) activation function defined by David Elliott
        +	 * span: 0 < y < 1
        +	 * y = ((x*s) / 2) / (1 + |x*s|) + 0.5
        +	 * d = s*1/(2*(1+|x*s|)*(1+|x*s|))
        +	 
        +   FANN_ELLIOT_SYMMETRIC - Fast (symmetric sigmoid like) activation function defined by David Elliott
        +	 * span: -1 < y < 1   
        +	 * y = (x*s) / (1 + |x*s|)
        +	 * d = s*1/((1+|x*s|)*(1+|x*s|))
        +
        +	FANN_LINEAR_PIECE - Bounded linear activation function.
        +	 * span: 0 <= y <= 1
        +	 * y = x*s, d = 1*s
        +	 
        +	FANN_LINEAR_PIECE_SYMMETRIC - Bounded linear activation function.
        +	 * span: -1 <= y <= 1
        +	 * y = x*s, d = 1*s
        +	
        +	FANN_SIN_SYMMETRIC - Periodical sinus activation function.
        +	 * span: -1 <= y <= 1
        +	 * y = sin(x*s)
        +	 * d = s*cos(x*s)
        +	 
        +	FANN_COS_SYMMETRIC - Periodical cosinus activation function.
        +	 * span: -1 <= y <= 1
        +	 * y = cos(x*s)
        +	 * d = s*-sin(x*s)
        +	 
        +	FANN_SIN - Periodical sinus activation function.
        +	 * span: 0 <= y <= 1
        +	 * y = sin(x*s)/2+0.5
        +	 * d = s*cos(x*s)/2
        +	 
        +	FANN_COS - Periodical cosinus activation function.
        +	 * span: 0 <= y <= 1
        +	 * y = cos(x*s)/2+0.5
        +	 * d = s*-sin(x*s)/2
        +	 
        +	See also:
        +   	<fann_set_activation_function_layer>, <fann_set_activation_function_hidden>,
        +   	<fann_set_activation_function_output>, <fann_set_activation_steepness>,
        +    <fann_set_activation_function>
        +*/
        +enum fann_activationfunc_enum
        +{
        +	FANN_LINEAR = 0,
        +	FANN_THRESHOLD,
        +	FANN_THRESHOLD_SYMMETRIC,
        +	FANN_SIGMOID,
        +	FANN_SIGMOID_STEPWISE,
        +	FANN_SIGMOID_SYMMETRIC,
        +	FANN_SIGMOID_SYMMETRIC_STEPWISE,
        +	FANN_GAUSSIAN,
        +	FANN_GAUSSIAN_SYMMETRIC,
        +	/* Stepwise linear approximation to gaussian.
        +	 * Faster than gaussian but a bit less precise.
        +	 * NOT implemented yet.
        +	 */
        +	FANN_GAUSSIAN_STEPWISE,
        +	FANN_ELLIOT,
        +	FANN_ELLIOT_SYMMETRIC,
        +	FANN_LINEAR_PIECE,
        +	FANN_LINEAR_PIECE_SYMMETRIC,
        +	FANN_SIN_SYMMETRIC,
        +	FANN_COS_SYMMETRIC,
        +	FANN_SIN,
        +	FANN_COS
        +};
        +
        +/* Constant: FANN_ACTIVATIONFUNC_NAMES
        +   
        +   Constant array consisting of the names for the activation function, so that the name of an
        +   activation function can be received by:
        +   (code)
        +   char *name = FANN_ACTIVATIONFUNC_NAMES[activation_function];
        +   (end)
        +
        +   See Also:
        +      <fann_activationfunc_enum>
        +*/
        +static char const *const FANN_ACTIVATIONFUNC_NAMES[] = {
        +	"FANN_LINEAR",
        +	"FANN_THRESHOLD",
        +	"FANN_THRESHOLD_SYMMETRIC",
        +	"FANN_SIGMOID",
        +	"FANN_SIGMOID_STEPWISE",
        +	"FANN_SIGMOID_SYMMETRIC",
        +	"FANN_SIGMOID_SYMMETRIC_STEPWISE",
        +	"FANN_GAUSSIAN",
        +	"FANN_GAUSSIAN_SYMMETRIC",
        +	"FANN_GAUSSIAN_STEPWISE",
        +	"FANN_ELLIOT",
        +	"FANN_ELLIOT_SYMMETRIC",
        +	"FANN_LINEAR_PIECE",
        +	"FANN_LINEAR_PIECE_SYMMETRIC",
        +	"FANN_SIN_SYMMETRIC",
        +	"FANN_COS_SYMMETRIC",
        +	"FANN_SIN",
        +	"FANN_COS"
        +};
        +
        +/* Enum: fann_errorfunc_enum
        +	Error function used during training.
        +	
        +	FANN_ERRORFUNC_LINEAR - Standard linear error function.
        +	FANN_ERRORFUNC_TANH - Tanh error function, usually better 
        +		but can require a lower learning rate. This error function aggressively targets outputs that
        +		differ much from the desired, while not targeting outputs that only differ a little that much.
        +		This activation function is not recommended for cascade training and incremental training.
        +
        +	See also:
        +		<fann_set_train_error_function>, <fann_get_train_error_function>
        +*/
        +enum fann_errorfunc_enum
        +{
        +	FANN_ERRORFUNC_LINEAR = 0,
        +	FANN_ERRORFUNC_TANH
        +};
        +
        +/* Constant: FANN_ERRORFUNC_NAMES
        +   
        +   Constant array consisting of the names for the training error functions, so that the name of an
        +   error function can be received by:
        +   (code)
        +   char *name = FANN_ERRORFUNC_NAMES[error_function];
        +   (end)
        +
        +   See Also:
        +      <fann_errorfunc_enum>
        +*/
        +static char const *const FANN_ERRORFUNC_NAMES[] = {
        +	"FANN_ERRORFUNC_LINEAR",
        +	"FANN_ERRORFUNC_TANH"
        +};
        +
        +/* Enum: fann_stopfunc_enum
        +	Stop criteria used during training.
        +
        +	FANN_STOPFUNC_MSE - Stop criterion is Mean Square Error (MSE) value.
        +	FANN_STOPFUNC_BIT - Stop criterion is number of bits that fail. The number of bits; means the
        +		number of output neurons which differ more than the bit fail limit 
        +		(see <fann_get_bit_fail_limit>, <fann_set_bit_fail_limit>). 
        +		The bits are counted in all of the training data, so this number can be higher than
        +		the number of training data.
        +
        +	See also:
        +		<fann_set_train_stop_function>, <fann_get_train_stop_function>
        +*/
        +enum fann_stopfunc_enum
        +{
        +	FANN_STOPFUNC_MSE = 0,
        +	FANN_STOPFUNC_BIT
        +};
        +
        +/* Constant: FANN_STOPFUNC_NAMES
        +   
        +   Constant array consisting of the names for the training stop functions, so that the name of a
        +   stop function can be received by:
        +   (code)
        +   char *name = FANN_STOPFUNC_NAMES[stop_function];
        +   (end)
        +
        +   See Also:
        +      <fann_stopfunc_enum>
        +*/
        +static char const *const FANN_STOPFUNC_NAMES[] = {
        +	"FANN_STOPFUNC_MSE",
        +	"FANN_STOPFUNC_BIT"
        +};
        +
        +/* Enum: fann_network_type_enum
        +
        +    Definition of network types used by <fann_get_network_type>
        +
        +    FANN_NETTYPE_LAYER - Each layer only has connections to the next layer
        +    FANN_NETTYPE_SHORTCUT - Each layer has connections to all following layers
        +
        +   See Also:
        +      <fann_get_network_type>
        +
        +   This enumeration appears in FANN >= 2.1.0
        +*/
        +enum fann_nettype_enum
        +{
        +    FANN_NETTYPE_LAYER = 0, /* Each layer only has connections to the next layer */
        +    FANN_NETTYPE_SHORTCUT /* Each layer has connections to all following layers */
        +};
        +
        +/* Constant: FANN_NETWORK_TYPE_NAMES
        +   
        +   Constant array consisting of the names for the network types, so that the name of an
        +   network type can be received by:
        +   (code)
        +   char *network_type_name = FANN_NETWORK_TYPE_NAMES[fann_get_network_type(ann)];
        +   (end)
        +
        +   See Also:
        +      <fann_get_network_type>
        +
        +   This constant appears in FANN >= 2.1.0
        +*/
        +static char const *const FANN_NETTYPE_NAMES[] = {
        +	"FANN_NETTYPE_LAYER",
        +	"FANN_NETTYPE_SHORTCUT"
        +};
        +
        +
        +/* forward declarations for use with the callback */
        +struct fann;
        +struct fann_train_data;
        +/* Type: fann_callback_type
        +   This callback function can be called during training when using <fann_train_on_data>, 
        +   <fann_train_on_file> or <fann_cascadetrain_on_data>.
        +	
        +	>typedef int (FANN_API * fann_callback_type) (struct fann *ann, struct fann_train_data *train, 
        +	>											  unsigned int max_epochs, 
        +	>                                             unsigned int epochs_between_reports, 
        +	>                                             float desired_error, unsigned int epochs);
        +	
        +	The callback can be set by using <fann_set_callback> and is very useful for doing custom 
        +	things during training. It is recommended to use this function when implementing custom 
        +	training procedures, or when visualizing the training in a GUI etc. The parameters which the
        +	callback function takes are the parameters given to <fann_train_on_data>, plus an epochs
        +	parameter which tells how many epochs the training has taken so far.
        +	
        +	The callback function should return an integer, if the callback function returns -1, the training
        +	will terminate.
        +	
        +	Example of a callback function:
        +		>int FANN_API test_callback(struct fann *ann, struct fann_train_data *train,
        +		>				            unsigned int max_epochs, unsigned int epochs_between_reports, 
        +		>				            float desired_error, unsigned int epochs)
        +		>{
        +		>	printf("Epochs     %8d. MSE: %.5f. Desired-MSE: %.5f\n", epochs, fann_get_MSE(ann), desired_error);
        +		>	return 0;
        +		>}
        +	
        +	See also:
        +		<fann_set_callback>, <fann_train_on_data>
        + */ 
        +FANN_EXTERNAL typedef int (FANN_API * fann_callback_type) (struct fann *ann, struct fann_train_data *train, 
        +														   unsigned int max_epochs, 
        +														   unsigned int epochs_between_reports, 
        +														   float desired_error, unsigned int epochs);
        +
        +
        +/* ----- Data structures -----
        + * No data within these structures should be altered directly by the user.
        + */
        +
        +struct fann_neuron
        +{
        +	/* Index to the first and last connection
        +	 * (actually the last is a past end index)
        +	 */
        +	unsigned int first_con;
        +	unsigned int last_con;
        +	/* The sum of the inputs multiplied with the weights */
        +	fann_type sum;
        +	/* The value of the activation function applied to the sum */
        +	fann_type value;
        +	/* The steepness of the activation function */
        +	fann_type activation_steepness;
        +	/* Used to choose which activation function to use */
        +	enum fann_activationfunc_enum activation_function;
        +#ifdef __GNUC__
        +} __attribute__ ((packed));
        +#else
        +};
        +#endif
        +
        +/* A single layer in the neural network.
        + */
        +struct fann_layer
        +{
        +	/* A pointer to the first neuron in the layer 
        +	 * When allocated, all the neurons in all the layers are actually
        +	 * in one long array, this is because we want to easily clear all
        +	 * the neurons at once.
        +	 */
        +	struct fann_neuron *first_neuron;
        +
        +	/* A pointer to the neuron past the last neuron in the layer */
        +	/* the number of neurons is last_neuron - first_neuron */
        +	struct fann_neuron *last_neuron;
        +};
        +
        +/* Struct: struct fann_error
        +   
        +	Structure used to store error-related information, both
        +	<struct fann> and <struct fann_train_data> can be casted to this type.
        +	
        +	See also:
        +		<fann_set_error_log>, <fann_get_errno>
        +*/
        +struct fann_error
        +{
        +	enum fann_errno_enum errno_f;
        +	FILE *error_log;
        +	char *errstr;
        +};
        +
        +
        +/* 	Struct: struct fann
        +	The fast artificial neural network (fann) structure.
        +
        +	Data within this structure should never be accessed directly, but only by using the
        +	*fann_get_...* and *fann_set_...* functions.
        +
        +	The fann structure is created using one of the *fann_create_...* functions and each of
        +	the functions which operates on the structure takes *struct fann * ann* as the first parameter.
        +
        +	See also:
        +		<fann_create_standard>, <fann_destroy>
        + */
        +struct fann
        +{
        +	/* The type of error that last occured. */
        +	enum fann_errno_enum errno_f;
        +
        +	/* Where to log error messages. */
        +	FILE *error_log;
        +
        +	/* A string representation of the last error. */
        +	char *errstr;
        +
        +	/* the learning rate of the network */
        +	float learning_rate;
        +
        +	/* The learning momentum used for backpropagation algorithm. */
        +	float learning_momentum;
        +
        +	/* the connection rate of the network
        +	 * between 0 and 1, 1 meaning fully connected
        +	 */
        +	float connection_rate;
        +
        +	/* is 1 if shortcut connections are used in the ann otherwise 0
        +	 * Shortcut connections are connections that skip layers.
        +	 * A fully connected ann with shortcut connections are a ann where
        +	 * neurons have connections to all neurons in all later layers.
        +	 */
        +	enum fann_nettype_enum network_type;
        +
        +	/* pointer to the first layer (input layer) in an array af all the layers,
        +	 * including the input and outputlayers 
        +	 */
        +	struct fann_layer *first_layer;
        +
        +	/* pointer to the layer past the last layer in an array af all the layers,
        +	 * including the input and outputlayers 
        +	 */
        +	struct fann_layer *last_layer;
        +
        +	/* Total number of neurons.
        +	 * very useful, because the actual neurons are allocated in one long array
        +	 */
        +	unsigned int total_neurons;
        +
        +	/* Number of input neurons (not calculating bias) */
        +	unsigned int num_input;
        +
        +	/* Number of output neurons (not calculating bias) */
        +	unsigned int num_output;
        +
        +	/* The weight array */
        +	fann_type *weights;
        +
        +	/* The connection array */
        +	struct fann_neuron **connections;
        +
        +	/* Used to contain the errors used during training
        +	 * Is allocated during first training session,
        +	 * which means that if we do not train, it is never allocated.
        +	 */
        +	fann_type *train_errors;
        +
        +	/* Training algorithm used when calling fann_train_on_..
        +	 */
        +	enum fann_train_enum training_algorithm;
        +
        +#ifdef FIXEDFANN
        +	/* the decimal_point, used for shifting the fix point
        +	 * in fixed point integer operatons.
        +	 */
        +	unsigned int decimal_point;
        +
        +	/* the multiplier, used for multiplying the fix point
        +	 * in fixed point integer operatons.
        +	 * Only used in special cases, since the decimal_point is much faster.
        +	 */
        +	unsigned int multiplier;
        +
        +	/* When in choosen (or in fixed point), the sigmoid function is
        +	 * calculated as a stepwise linear function. In the
        +	 * activation_results array, the result is saved, and in the
        +	 * two values arrays, the values that gives the results are saved.
        +	 */
        +	fann_type sigmoid_results[6];
        +	fann_type sigmoid_values[6];
        +	fann_type sigmoid_symmetric_results[6];
        +	fann_type sigmoid_symmetric_values[6];
        +#endif
        +
        +	/* Total number of connections.
        +	 * very useful, because the actual connections
        +	 * are allocated in one long array
        +	 */
        +	unsigned int total_connections;
        +
        +	/* used to store outputs in */
        +	fann_type *output;
        +
        +	/* the number of data used to calculate the mean square error.
        +	 */
        +	unsigned int num_MSE;
        +
        +	/* the total error value.
        +	 * the real mean square error is MSE_value/num_MSE
        +	 */
        +	float MSE_value;
        +
        +	/* The number of outputs which would fail (only valid for classification problems)
        +	 */
        +	unsigned int num_bit_fail;
        +
        +	/* The maximum difference between the actual output and the expected output 
        +	 * which is accepted when counting the bit fails.
        +	 * This difference is multiplied by two when dealing with symmetric activation functions,
        +	 * so that symmetric and not symmetric activation functions can use the same limit.
        +	 */
        +	fann_type bit_fail_limit;
        +
        +	/* The error function used during training. (default FANN_ERRORFUNC_TANH)
        +	 */
        +	enum fann_errorfunc_enum train_error_function;
        +	
        +	/* The stop function used during training. (default FANN_STOPFUNC_MSE)
        +	*/
        +	enum fann_stopfunc_enum train_stop_function;
        +
        +	/* The callback function used during training. (default NULL)
        +	*/
        +	fann_callback_type callback;
        +
        +    /* A pointer to user defined data. (default NULL)
        +    */
        +    void *user_data;
        +
        +    /* Variables for use with Cascade Correlation */
        +
        +	/* The error must change by at least this
        +	 * fraction of its old value to count as a
        +	 * significant change.
        +	 */
        +	float cascade_output_change_fraction;
        +
        +	/* No change in this number of epochs will cause
        +	 * stagnation.
        +	 */
        +	unsigned int cascade_output_stagnation_epochs;
        +
        +	/* The error must change by at least this
        +	 * fraction of its old value to count as a
        +	 * significant change.
        +	 */
        +	float cascade_candidate_change_fraction;
        +
        +	/* No change in this number of epochs will cause
        +	 * stagnation.
        +	 */
        +	unsigned int cascade_candidate_stagnation_epochs;
        +
        +	/* The current best candidate, which will be installed.
        +	 */
        +	unsigned int cascade_best_candidate;
        +
        +	/* The upper limit for a candidate score
        +	 */
        +	fann_type cascade_candidate_limit;
        +
        +	/* Scale of copied candidate output weights
        +	 */
        +	fann_type cascade_weight_multiplier;
        +	
        +	/* Maximum epochs to train the output neurons during cascade training
        +	 */
        +	unsigned int cascade_max_out_epochs;
        +	
        +	/* Maximum epochs to train the candidate neurons during cascade training
        +	 */
        +	unsigned int cascade_max_cand_epochs;	
        +
        +	/* Minimum epochs to train the output neurons during cascade training
        +	 */
        +	unsigned int cascade_min_out_epochs;
        +	
        +	/* Minimum epochs to train the candidate neurons during cascade training
        +	 */
        +	unsigned int cascade_min_cand_epochs;	
        +
        +	/* An array consisting of the activation functions used when doing
        +	 * cascade training.
        +	 */
        +	enum fann_activationfunc_enum *cascade_activation_functions;
        +	
        +	/* The number of elements in the cascade_activation_functions array.
        +	*/
        +	unsigned int cascade_activation_functions_count;
        +	
        +	/* An array consisting of the steepnesses used during cascade training.
        +	*/
        +	fann_type *cascade_activation_steepnesses;
        +
        +	/* The number of elements in the cascade_activation_steepnesses array.
        +	*/
        +	unsigned int cascade_activation_steepnesses_count;
        +	
        +	/* The number of candidates of each type that will be present.
        +	 * The actual number of candidates is then 
        +	 * cascade_activation_functions_count * 
        +	 * cascade_activation_steepnesses_count *
        +	 * cascade_num_candidate_groups
        +	*/
        +	unsigned int cascade_num_candidate_groups;
        +	
        +	/* An array consisting of the score of the individual candidates,
        +	 * which is used to decide which candidate is the best
        +	 */
        +	fann_type *cascade_candidate_scores;
        +	
        +	/* The number of allocated neurons during cascade correlation algorithms.
        +	 * This number might be higher than the actual number of neurons to avoid
        +	 * allocating new space too often.
        +	 */
        +	unsigned int total_neurons_allocated;
        +
        +	/* The number of allocated connections during cascade correlation algorithms.
        +	 * This number might be higher than the actual number of neurons to avoid
        +	 * allocating new space too often.
        +	 */
        +	unsigned int total_connections_allocated;
        +
        +	/* Variables for use with Quickprop training */
        +
        +	/* Decay is used to make the weights not go so high */
        +	float quickprop_decay;
        +
        +	/* Mu is a factor used to increase and decrease the stepsize */
        +	float quickprop_mu;
        +
        +	/* Variables for use with with RPROP training */
        +
        +	/* Tells how much the stepsize should increase during learning */
        +	float rprop_increase_factor;
        +
        +	/* Tells how much the stepsize should decrease during learning */
        +	float rprop_decrease_factor;
        +
        +	/* The minimum stepsize */
        +	float rprop_delta_min;
        +
        +	/* The maximum stepsize */
        +	float rprop_delta_max;
        +
        +	/* The initial stepsize */
        +	float rprop_delta_zero;
        +        
        +	/* Defines how much the weights are constrained to smaller values at the beginning */
        +	float sarprop_weight_decay_shift;
        +
        +	/* Decides if the stepsize is too big with regard to the error */
        +	float sarprop_step_error_threshold_factor;
        +
        +	/* Defines how much the stepsize is influenced by the error */
        +	float sarprop_step_error_shift;
        +
        +	/* Defines how much the epoch influences weight decay and noise */
        +	float sarprop_temperature;
        +
        +	/* Current training epoch */
        +	unsigned int sarprop_epoch;
        +
        +	/* Used to contain the slope errors used during batch training
        +	 * Is allocated during first training session,
        +	 * which means that if we do not train, it is never allocated.
        +	 */
        +	fann_type *train_slopes;
        +
        +	/* The previous step taken by the quickprop/rprop procedures.
        +	 * Not allocated if not used.
        +	 */
        +	fann_type *prev_steps;
        +
        +	/* The slope values used by the quickprop/rprop procedures.
        +	 * Not allocated if not used.
        +	 */
        +	fann_type *prev_train_slopes;
        +        
        +	/* The last delta applied to a connection weight.
        +	 * This is used for the momentum term in the backpropagation algorithm.
        +	 * Not allocated if not used.	 
        +	 */
        +	fann_type *prev_weights_deltas;
        +	
        +#ifndef FIXEDFANN
        +	/* Arithmetic mean used to remove steady component in input data.  */
        +	float *scale_mean_in;
        +
        +	/* Standart deviation used to normalize input data (mostly to [-1;1]). */
        +	float *scale_deviation_in;
        +
        +	/* User-defined new minimum for input data.
        +	 * Resulting data values may be less than user-defined minimum. 
        +	 */
        +	float *scale_new_min_in;
        +
        +	/* Used to scale data to user-defined new maximum for input data.
        +	 * Resulting data values may be greater than user-defined maximum. 
        +	 */
        +	float *scale_factor_in;
        +	
        +	/* Arithmetic mean used to remove steady component in output data.  */
        +	float *scale_mean_out;
        +
        +	/* Standart deviation used to normalize output data (mostly to [-1;1]). */
        +	float *scale_deviation_out;
        +
        +	/* User-defined new minimum for output data.
        +	 * Resulting data values may be less than user-defined minimum. 
        +	 */
        +	float *scale_new_min_out;
        +
        +	/* Used to scale data to user-defined new maximum for output data.
        +	 * Resulting data values may be greater than user-defined maximum. 
        +	 */
        +	float *scale_factor_out;
        +#endif
        +};
        +
        +/* Type: fann_connection
        +
        +    Describes a connection between two neurons and its weight
        +
        +    from_neuron - Unique number used to identify source neuron
        +    to_neuron - Unique number used to identify destination neuron
        +    weight - The numerical value of the weight
        +
        +    See Also:
        +        <fann_get_connection_array>, <fann_set_weight_array>
        +
        +   This structure appears in FANN >= 2.1.0
        +*/
        +struct fann_connection
        +{
        +    /* Unique number used to identify source neuron */
        +    unsigned int from_neuron;
        +    /* Unique number used to identify destination neuron */
        +    unsigned int to_neuron;
        +    /* The numerical value of the weight */
        +    fann_type weight;
        +};
        +
        +#endif
        diff --git a/lib/ann/fann/src/include/fann_data_cpp.h b/lib/ann/fann/src/include/fann_data_cpp.h
        new file mode 100644
        index 0000000..5b378bb
        --- /dev/null
        +++ b/lib/ann/fann/src/include/fann_data_cpp.h
        @@ -0,0 +1,303 @@
        +/*
        +Fast Artificial Neural Network Library (fann)
        +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com)
        +
        +This library is free software; you can redistribute it and/or
        +modify it under the terms of the GNU Lesser General Public
        +License as published by the Free Software Foundation; either
        +version 2.1 of the License, or (at your option) any later version.
        +
        +This library is distributed in the hope that it will be useful,
        +but WITHOUT ANY WARRANTY; without even the implied warranty of
        +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
        +Lesser General Public License for more details.
        +
        +You should have received a copy of the GNU Lesser General Public
        +License along with this library; if not, write to the Free Software
        +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        +*/
        +
        +#ifndef FANN_FANN_DATA_CPP_H_H
        +#define FANN_FANN_DATA_CPP_H_H
        +
        +#include <stdarg.h>
        +#include <string>
        +
        +/* Section: FANN C++ Datatypes
        +   This section includes enums and helper data types used by the two main classes <neural_net> and <training_data>
        + */
        +
        +
        +/* Type: fann_type
        +   fann_type is the type used for the weights, inputs and outputs of the neural network.
        +
        +	fann_type is defined as a:
        +	float - if you include fann.h or floatfann.h
        +	double - if you include doublefann.h
        +	int - if you include fixedfann.h (please be aware that fixed point usage is
        +			only to be used during execution, and not during training).
        +*/
        +
        +namespace FANN {
        +    /* Enum: error_function_enum
        +	    Error function used during training.
        +
        +	    ERRORFUNC_LINEAR - Standard linear error function.
        +	    ERRORFUNC_TANH - Tanh error function, usually better
        +		    but can require a lower learning rate. This error function aggressively targets outputs that
        +		    differ much from the desired, while not targeting outputs that only differ a little that much.
        +		    This activation function is not recommended for cascade training and incremental training.
        +
        +	    See also:
        +		    <neural_net::set_train_error_function>, <neural_net::get_train_error_function>
        +    */
        +    enum error_function_enum {
        +        ERRORFUNC_LINEAR = FANN_ERRORFUNC_LINEAR,
        +        ERRORFUNC_TANH
        +    };
        +
        +    /* Enum: stop_function_enum
        +	    Stop criteria used during training.
        +
        +	    STOPFUNC_MSE - Stop criteria is Mean Square Error (MSE) value.
        +	    STOPFUNC_BIT - Stop criteria is number of bits that fail. The number of bits; means the
        +		    number of output neurons which differ more than the bit fail limit
        +		    (see <neural_net::get_bit_fail_limit>, <neural_net::set_bit_fail_limit>).
        +		    The bits are counted in all of the training data, so this number can be higher than
        +		    the number of training data.
        +
        +	    See also:
        +		    <neural_net::set_train_stop_function>, <neural_net::get_train_stop_function>
        +    */
        +    enum stop_function_enum {
        +        STOPFUNC_MSE = FANN_STOPFUNC_MSE,
        +        STOPFUNC_BIT
        +    };
        +
        +    /* Enum: training_algorithm_enum
        +	    The Training algorithms used when training on <training_data> with functions like
        +	    <neural_net::train_on_data> or <neural_net::train_on_file>. The incremental training
        +        looks alters the weights after each time it is presented an input pattern, while batch
        +        only alters the weights once after it has been presented to all the patterns.
        +
        +	    TRAIN_INCREMENTAL -  Standard backpropagation algorithm, where the weights are
        +		    updated after each training pattern. This means that the weights are updated many
        +		    times during a single epoch. For this reason some problems, will train very fast with
        +		    this algorithm, while other more advanced problems will not train very well.
        +	    TRAIN_BATCH -  Standard backpropagation algorithm, where the weights are updated after
        +		    calculating the mean square error for the whole training set. This means that the weights
        +		    are only updated once during an epoch. For this reason some problems, will train slower with
        +		    this algorithm. But since the mean square error is calculated more correctly than in
        +		    incremental training, some problems will reach a better solutions with this algorithm.
        +	    TRAIN_RPROP - A more advanced batch training algorithm which achieves good results
        +		    for many problems. The RPROP training algorithm is adaptive, and does therefore not
        +		    use the learning_rate. Some other parameters can however be set to change the way the
        +		    RPROP algorithm works, but it is only recommended for users with insight in how the RPROP
        +		    training algorithm works. The RPROP training algorithm is described by
        +		    [Riedmiller and Braun, 1993], but the actual learning algorithm used here is the
        +		    iRPROP- training algorithm which is described by [Igel and Husken, 2000] which
        +		    is a variant of the standard RPROP training algorithm.
        +	    TRAIN_QUICKPROP - A more advanced batch training algorithm which achieves good results
        +		    for many problems. The quickprop training algorithm uses the learning_rate parameter
        +		    along with other more advanced parameters, but it is only recommended to change these
        +		    advanced parameters, for users with insight in how the quickprop training algorithm works.
        +		    The quickprop training algorithm is described by [Fahlman, 1988].
        +		FANN_TRAIN_SARPROP - THE SARPROP ALGORITHM: A SIMULATED ANNEALING ENHANCEMENT TO RESILIENT BACK PROPAGATION
        +            http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.47.8197&rep=rep1&type=pdf
        +
        +
        +	    See also:
        +		    <neural_net::set_training_algorithm>, <neural_net::get_training_algorithm>
        +    */
        +    enum training_algorithm_enum {
        +        TRAIN_INCREMENTAL = FANN_TRAIN_INCREMENTAL,
        +        TRAIN_BATCH,
        +        TRAIN_RPROP,
        +        TRAIN_QUICKPROP,
        +        TRAIN_SARPROP
        +    };
        +
        +    /* Enum: activation_function_enum
        +
        +	    The activation functions used for the neurons during training. The activation functions
        +	    can either be defined for a group of neurons by <neural_net::set_activation_function_hidden>
        +        and <neural_net::set_activation_function_output> or it can be defined for a single neuron by
        +        <neural_net::set_activation_function>.
        +
        +	    The steepness of an activation function is defined in the same way by
        +	    <neural_net::set_activation_steepness_hidden>, <neural_net::set_activation_steepness_output>
        +        and <neural_net::set_activation_steepness>.
        +
        +       The functions are described with functions where:
        +       * x is the input to the activation function,
        +       * y is the output,
        +       * s is the steepness and
        +       * d is the derivation.
        +
        +       FANN_LINEAR - Linear activation function.
        +         * span: -inf < y < inf
        +	     * y = x*s, d = 1*s
        +	     * Can NOT be used in fixed point.
        +
        +       FANN_THRESHOLD - Threshold activation function.
        +	     * x < 0 -> y = 0, x >= 0 -> y = 1
        +	     * Can NOT be used during training.
        +
        +       FANN_THRESHOLD_SYMMETRIC - Threshold activation function.
        +	     * x < 0 -> y = 0, x >= 0 -> y = 1
        +	     * Can NOT be used during training.
        +
        +       FANN_SIGMOID - Sigmoid activation function.
        +	     * One of the most used activation functions.
        +	     * span: 0 < y < 1
        +	     * y = 1/(1 + exp(-2*s*x))
        +	     * d = 2*s*y*(1 - y)
        +
        +       FANN_SIGMOID_STEPWISE - Stepwise linear approximation to sigmoid.
        +	     * Faster than sigmoid but a bit less precise.
        +
        +       FANN_SIGMOID_SYMMETRIC - Symmetric sigmoid activation function, aka. tanh.
        +	     * One of the most used activation functions.
        +	     * span: -1 < y < 1
        +	     * y = tanh(s*x) = 2/(1 + exp(-2*s*x)) - 1
        +	     * d = s*(1-(y*y))
        +
        +       FANN_SIGMOID_SYMMETRIC - Stepwise linear approximation to symmetric sigmoid.
        +	     * Faster than symmetric sigmoid but a bit less precise.
        +
        +       FANN_GAUSSIAN - Gaussian activation function.
        +	     * 0 when x = -inf, 1 when x = 0 and 0 when x = inf
        +	     * span: 0 < y < 1
        +	     * y = exp(-x*s*x*s)
        +	     * d = -2*x*s*y*s
        +
        +       FANN_GAUSSIAN_SYMMETRIC - Symmetric gaussian activation function.
        +	     * -1 when x = -inf, 1 when x = 0 and 0 when x = inf
        +	     * span: -1 < y < 1
        +	     * y = exp(-x*s*x*s)*2-1
        +	     * d = -2*x*s*(y+1)*s
        +
        +       FANN_ELLIOT - Fast (sigmoid like) activation function defined by David Elliott
        +	     * span: 0 < y < 1
        +	     * y = ((x*s) / 2) / (1 + |x*s|) + 0.5
        +	     * d = s*1/(2*(1+|x*s|)*(1+|x*s|))
        +
        +       FANN_ELLIOT_SYMMETRIC - Fast (symmetric sigmoid like) activation function defined by David Elliott
        +	     * span: -1 < y < 1
        +	     * y = (x*s) / (1 + |x*s|)
        +	     * d = s*1/((1+|x*s|)*(1+|x*s|))
        +
        +	    FANN_LINEAR_PIECE - Bounded linear activation function.
        +	     * span: 0 < y < 1
        +	     * y = x*s, d = 1*s
        +
        +	    FANN_LINEAR_PIECE_SYMMETRIC - Bounded Linear activation function.
        +	     * span: -1 < y < 1
        +	     * y = x*s, d = 1*s
        +
        +        FANN_SIN_SYMMETRIC - Periodical sinus activation function.
        +         * span: -1 <= y <= 1
        +         * y = sin(x*s)
        +         * d = s*cos(x*s)
        +
        +        FANN_COS_SYMMETRIC - Periodical cosinus activation function.
        +         * span: -1 <= y <= 1
        +         * y = cos(x*s)
        +         * d = s*-sin(x*s)
        +
        +	    See also:
        +		    <neural_net::set_activation_function_hidden>,
        +		    <neural_net::set_activation_function_output>
        +    */
        +    enum activation_function_enum {
        +        LINEAR = FANN_LINEAR,
        +        THRESHOLD,
        +        THRESHOLD_SYMMETRIC,
        +        SIGMOID,
        +        SIGMOID_STEPWISE,
        +        SIGMOID_SYMMETRIC,
        +        SIGMOID_SYMMETRIC_STEPWISE,
        +        GAUSSIAN,
        +        GAUSSIAN_SYMMETRIC,
        +        GAUSSIAN_STEPWISE,
        +        ELLIOT,
        +        ELLIOT_SYMMETRIC,
        +        LINEAR_PIECE,
        +        LINEAR_PIECE_SYMMETRIC,
        +        SIN_SYMMETRIC,
        +        COS_SYMMETRIC
        +    };
        +
        +    /* Enum: network_type_enum
        +
        +        Definition of network types used by <neural_net::get_network_type>
        +
        +        LAYER - Each layer only has connections to the next layer
        +        SHORTCUT - Each layer has connections to all following layers
        +
        +       See Also:
        +          <neural_net::get_network_type>, <fann_get_network_type>
        +
        +       This enumeration appears in FANN >= 2.1.0
        +    */
        +    enum network_type_enum {
        +        LAYER = FANN_NETTYPE_LAYER,
        +        SHORTCUT
        +    };
        +
        +    /* Type: connection
        +
        +        Describes a connection between two neurons and its weight
        +
        +        from_neuron - Unique number used to identify source neuron
        +        to_neuron - Unique number used to identify destination neuron
        +        weight - The numerical value of the weight
        +
        +        See Also:
        +            <neural_net::get_connection_array>, <neural_net::set_weight_array>
        +
        +       This structure appears in FANN >= 2.1.0
        +    */
        +    typedef struct fann_connection connection;
        +
        +    /* Forward declaration of class neural_net and training_data */
        +    class neural_net;
        +
        +    class training_data;
        +
        +    /* Type: callback_type
        +       This callback function can be called during training when using <neural_net::train_on_data>,
        +       <neural_net::train_on_file> or <neural_net::cascadetrain_on_data>.
        +
        +        >typedef int (*callback_type) (neural_net &net, training_data &train,
        +        >    unsigned int max_epochs, unsigned int epochs_between_reports,
        +        >    float desired_error, unsigned int epochs, void *user_data);
        +
        +	    The callback can be set by using <neural_net::set_callback> and is very useful for doing custom
        +	    things during training. It is recommended to use this function when implementing custom
        +	    training procedures, or when visualizing the training in a GUI etc. The parameters which the
        +	    callback function takes is the parameters given to the <neural_net::train_on_data>, plus an epochs
        +	    parameter which tells how many epochs the training have taken so far.
        +
        +	    The callback function should return an integer, if the callback function returns -1, the training
        +	    will terminate.
        +
        +	    Example of a callback function that prints information to cout:
        +            >int print_callback(FANN::neural_net &net, FANN::training_data &train,
        +            >    unsigned int max_epochs, unsigned int epochs_between_reports,
        +            >    float desired_error, unsigned int epochs, void *user_data)
        +            >{
        +            >    cout << "Epochs     " << setw(8) << epochs << ". "
        +            >         << "Current Error: " << left << net.get_MSE() << right << endl;
        +            >    return 0;
        +            >}
        +
        +	    See also:
        +		    <neural_net::set_callback>, <fann_callback_type>
        +     */
        +    typedef int (*callback_type)(neural_net &net, training_data &train,
        +                                 unsigned int max_epochs, unsigned int epochs_between_reports,
        +                                 float desired_error, unsigned int epochs, void *user_data);
        +}
        +
        +#endif //FANN_FANN_DATA_CPP_H_H
        diff --git a/lib/ann/fann/src/include/fann_error.h b/lib/ann/fann/src/include/fann_error.h
        new file mode 100644
        index 0000000..69877f7
        --- /dev/null
        +++ b/lib/ann/fann/src/include/fann_error.h
        @@ -0,0 +1,167 @@
        +/*
        +Fast Artificial Neural Network Library (fann)
        +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com)
        +
        +This library is free software; you can redistribute it and/or
        +modify it under the terms of the GNU Lesser General Public
        +License as published by the Free Software Foundation; either
        +version 2.1 of the License, or (at your option) any later version.
        +
        +This library is distributed in the hope that it will be useful,
        +but WITHOUT ANY WARRANTY; without even the implied warranty of
        +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
        +Lesser General Public License for more details.
        +
        +You should have received a copy of the GNU Lesser General Public
        +License along with this library; if not, write to the Free Software
        +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        +*/
        +
        +#ifndef __fann_error_h__
        +#define __fann_error_h__
        +
        +#include <stdio.h>
        +
        +#define FANN_ERRSTR_MAX 128
        +struct fann_error;
        +
        +/* Section: FANN Error Handling
        +
        +   Errors from the fann library are usually reported on stderr. 
        +   It is however possible to redirect these error messages to a file, 
        +   or completely ignore them by the <fann_set_error_log> function.
        +   
        +   It is also possible to inspect the last error message by using the
        +   <fann_get_errno> and <fann_get_errstr> functions.
        + */
        +
        +/* Enum: fann_errno_enum
        +	Used to define error events on <struct fann> and <struct fann_train_data>. 
        +
        +	See also:
        +		<fann_get_errno>, <fann_reset_errno>, <fann_get_errstr>
        +
        +	FANN_E_NO_ERROR - No error 
        +	FANN_E_CANT_OPEN_CONFIG_R - Unable to open configuration file for reading 
        +	FANN_E_CANT_OPEN_CONFIG_W - Unable to open configuration file for writing
        +	FANN_E_WRONG_CONFIG_VERSION - Wrong version of configuration file 
        +	FANN_E_CANT_READ_CONFIG - Error reading info from configuration file
        +	FANN_E_CANT_READ_NEURON - Error reading neuron info from configuration file
        +	FANN_E_CANT_READ_CONNECTIONS - Error reading connections from configuration file
        +	FANN_E_WRONG_NUM_CONNECTIONS - Number of connections not equal to the number expected
        +	FANN_E_CANT_OPEN_TD_W - Unable to open train data file for writing
        +	FANN_E_CANT_OPEN_TD_R - Unable to open train data file for reading
        +	FANN_E_CANT_READ_TD - Error reading training data from file
        +	FANN_E_CANT_ALLOCATE_MEM - Unable to allocate memory
        +	FANN_E_CANT_TRAIN_ACTIVATION - Unable to train with the selected activation function
        +	FANN_E_CANT_USE_ACTIVATION - Unable to use the selected activation function
        +	FANN_E_TRAIN_DATA_MISMATCH - Irreconcilable differences between two <struct fann_train_data> structures
        +	FANN_E_CANT_USE_TRAIN_ALG - Unable to use the selected training algorithm
        +	FANN_E_TRAIN_DATA_SUBSET - Trying to take subset which is not within the training set
        +	FANN_E_INDEX_OUT_OF_BOUND - Index is out of bound
        +	FANN_E_SCALE_NOT_PRESENT - Scaling parameters not present
        +    FANN_E_INPUT_NO_MATCH - The number of input neurons in the ann and data don't match
        +    FANN_E_OUTPUT_NO_MATCH - The number of output neurons in the ann and data don't match
        +	FANN_E_WRONG_PARAMETERS_FOR_CREATE - The parameters for create_standard are wrong, either too few parameters provided or a negative/very high value provided
        +*/
        +enum fann_errno_enum
        +{
        +	FANN_E_NO_ERROR = 0,
        +	FANN_E_CANT_OPEN_CONFIG_R,
        +	FANN_E_CANT_OPEN_CONFIG_W,
        +	FANN_E_WRONG_CONFIG_VERSION,
        +	FANN_E_CANT_READ_CONFIG,
        +	FANN_E_CANT_READ_NEURON,
        +	FANN_E_CANT_READ_CONNECTIONS,
        +	FANN_E_WRONG_NUM_CONNECTIONS,
        +	FANN_E_CANT_OPEN_TD_W,
        +	FANN_E_CANT_OPEN_TD_R,
        +	FANN_E_CANT_READ_TD,
        +	FANN_E_CANT_ALLOCATE_MEM,
        +	FANN_E_CANT_TRAIN_ACTIVATION,
        +	FANN_E_CANT_USE_ACTIVATION,
        +	FANN_E_TRAIN_DATA_MISMATCH,
        +	FANN_E_CANT_USE_TRAIN_ALG,
        +	FANN_E_TRAIN_DATA_SUBSET,
        +	FANN_E_INDEX_OUT_OF_BOUND,
        +	FANN_E_SCALE_NOT_PRESENT,
        +	FANN_E_INPUT_NO_MATCH,
        +	FANN_E_OUTPUT_NO_MATCH,
        +	FANN_E_WRONG_PARAMETERS_FOR_CREATE
        +};
        +
        +/* Group: Error Handling */
        +	
        +/* Function: fann_set_error_log
        +
        +   Change where errors are logged to. Both <struct fann> and <struct fann_data> can be 
        +   casted to <struct fann_error>, so this function can be used to set either of these.
        +   
        +   If log_file is NULL, no errors will be printed.
        +   
        +   If errdat is NULL, the default log will be set. The default log is the log used when creating 
        +   <struct fann> and <struct fann_data>. This default log will also be the default for all new structs
        +   that are created.
        +   
        +   The default behavior is to log them to stderr.
        +   
        +   See also:
        +    <struct fann_error>
        +   
        +   This function appears in FANN >= 1.1.0.   
        + */ 
        +FANN_EXTERNAL void FANN_API fann_set_error_log(struct fann_error *errdat, FILE * log_file);
        +
        +
        +/* Function: fann_get_errno
        +
        +   Returns the last error number.
        +   
        +   See also:
        +    <fann_errno_enum>, <fann_reset_errno>
        +    
        +   This function appears in FANN >= 1.1.0.   
        + */ 
        +FANN_EXTERNAL enum fann_errno_enum FANN_API fann_get_errno(struct fann_error *errdat);
        +
        +
        +/* Function: fann_reset_errno
        +
        +   Resets the last error number.
        +   
        +   This function appears in FANN >= 1.1.0.   
        + */ 
        +FANN_EXTERNAL void FANN_API fann_reset_errno(struct fann_error *errdat);
        +
        +
        +/* Function: fann_reset_errstr
        +
        +   Resets the last error string.
        +
        +   This function appears in FANN >= 1.1.0.   
        + */ 
        +FANN_EXTERNAL void FANN_API fann_reset_errstr(struct fann_error *errdat);
        +
        +
        +/* Function: fann_get_errstr
        +
        +   Returns the last errstr.
        +  
        +   This function calls <fann_reset_errno> and <fann_reset_errstr>
        +
        +   This function appears in FANN >= 1.1.0.   
        + */ 
        +FANN_EXTERNAL char *FANN_API fann_get_errstr(struct fann_error *errdat);
        +
        +
        +/* Function: fann_print_error
        +
        +   Prints the last error to stderr.
        +
        +   This function appears in FANN >= 1.1.0.   
        + */ 
        +FANN_EXTERNAL void FANN_API fann_print_error(struct fann_error *errdat);
        +
        +FANN_EXTERNAL extern FILE * fann_default_error_log;
        +
        +#endif
        diff --git a/lib/ann/fann/src/include/fann_internal.h b/lib/ann/fann/src/include/fann_internal.h
        new file mode 100644
        index 0000000..81787b3
        --- /dev/null
        +++ b/lib/ann/fann/src/include/fann_internal.h
        @@ -0,0 +1,155 @@
        +/*
        +Fast Artificial Neural Network Library (fann)
        +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com)
        +
        +This library is free software; you can redistribute it and/or
        +modify it under the terms of the GNU Lesser General Public
        +License as published by the Free Software Foundation; either
        +version 2.1 of the License, or (at your option) any later version.
        +
        +This library is distributed in the hope that it will be useful,
        +but WITHOUT ANY WARRANTY; without even the implied warranty of
        +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
        +Lesser General Public License for more details.
        +
        +You should have received a copy of the GNU Lesser General Public
        +License along with this library; if not, write to the Free Software
        +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        +*/
        +
        +#ifndef __fann_internal_h__
        +#define __fann_internal_h__
        +/* internal include file, not to be included directly
        + */
        +
        +#include <math.h>
        +#include <stdio.h>
        +#include <stdlib.h>
        +#include "fann_data.h"
        +
        +#define FANN_FIX_VERSION "FANN_FIX_2.0"
        +#define FANN_FLO_VERSION "FANN_FLO_2.1"
        +
        +#ifdef FIXEDFANN
        +#define FANN_CONF_VERSION FANN_FIX_VERSION
        +#else
        +#define FANN_CONF_VERSION FANN_FLO_VERSION
        +#endif
        +
        +#define FANN_GET(type, name) \
        +FANN_EXTERNAL type FANN_API fann_get_ ## name(struct fann *ann) \
        +{ \
        +	return ann->name; \
        +}
        +
        +#define FANN_SET(type, name) \
        +FANN_EXTERNAL void FANN_API fann_set_ ## name(struct fann *ann, type value) \
        +{ \
        +	ann->name = value; \
        +}
        +
        +#define FANN_GET_SET(type, name) \
        +FANN_GET(type, name) \
        +FANN_SET(type, name)
        +
        +
        +struct fann_train_data;
        +
        +struct fann *fann_allocate_structure(unsigned int num_layers);
        +void fann_allocate_neurons(struct fann *ann);
        +
        +void fann_allocate_connections(struct fann *ann);
        +
        +int fann_save_internal(struct fann *ann, const char *configuration_file,
        +					   unsigned int save_as_fixed);
        +int fann_save_internal_fd(struct fann *ann, FILE * conf, const char *configuration_file,
        +						  unsigned int save_as_fixed);
        +int fann_save_train_internal(struct fann_train_data *data, const char *filename,
        +							  unsigned int save_as_fixed, unsigned int decimal_point);
        +int fann_save_train_internal_fd(struct fann_train_data *data, FILE * file, const char *filename,
        +								 unsigned int save_as_fixed, unsigned int decimal_point);
        +
        +void fann_update_stepwise(struct fann *ann);
        +void fann_seed_rand();
        +
        +void fann_error(struct fann_error *errdat, const enum fann_errno_enum errno_f, ...);
        +void fann_init_error_data(struct fann_error *errdat);
        +
        +struct fann *fann_create_from_fd(FILE * conf, const char *configuration_file);
        +struct fann_train_data *fann_read_train_from_fd(FILE * file, const char *filename);
        +
        +void fann_compute_MSE(struct fann *ann, fann_type * desired_output);
        +void fann_update_output_weights(struct fann *ann);
        +void fann_backpropagate_MSE(struct fann *ann);
        +void fann_update_weights(struct fann *ann);
        +void fann_update_slopes_batch(struct fann *ann, struct fann_layer *layer_begin,
        +							  struct fann_layer *layer_end);
        +void fann_update_weights_quickprop(struct fann *ann, unsigned int num_data,
        +								   unsigned int first_weight, unsigned int past_end);
        +void fann_update_weights_batch(struct fann *ann, unsigned int num_data, unsigned int first_weight,
        +							   unsigned int past_end);
        +void fann_update_weights_irpropm(struct fann *ann, unsigned int first_weight,
        +								 unsigned int past_end);
        +void fann_update_weights_sarprop(struct fann *ann, unsigned int epoch, unsigned int first_weight,
        +								unsigned int past_end);
        +
        +void fann_clear_train_arrays(struct fann *ann);
        +
        +fann_type fann_activation(struct fann * ann, unsigned int activation_function, fann_type steepness,
        +						  fann_type value);
        +
        +fann_type fann_activation_derived(unsigned int activation_function,
        +								  fann_type steepness, fann_type value, fann_type sum);
        +
        +int fann_desired_error_reached(struct fann *ann, float desired_error);
        +
        +/* Some functions for cascade */
        +int fann_train_outputs(struct fann *ann, struct fann_train_data *data, float desired_error);
        +
        +float fann_train_outputs_epoch(struct fann *ann, struct fann_train_data *data);
        +
        +int fann_train_candidates(struct fann *ann, struct fann_train_data *data);
        +
        +fann_type fann_train_candidates_epoch(struct fann *ann, struct fann_train_data *data);
        +
        +void fann_install_candidate(struct fann *ann);
        +int fann_check_input_output_sizes(struct fann *ann, struct fann_train_data *data);
        +
        +int fann_initialize_candidates(struct fann *ann);
        +
        +void fann_set_shortcut_connections(struct fann *ann);
        +
        +int fann_allocate_scale(struct fann *ann);
        +
        +FANN_EXTERNAL void FANN_API fann_scale_data_to_range(fann_type ** data, unsigned int num_data, unsigned int num_elem,
        +					 fann_type old_min, fann_type old_max, fann_type new_min, fann_type new_max);
        +
        +/* called fann_max, in order to not interferre with predefined versions of max */
        +#define fann_max(x, y) (((x) > (y)) ? (x) : (y))
        +#define fann_min(x, y) (((x) < (y)) ? (x) : (y))
        +#define fann_safe_free(x) {if(x) { free(x); x = NULL; }}
        +#define fann_clip(x, lo, hi) (((x) < (lo)) ? (lo) : (((x) > (hi)) ? (hi) : (x)))
        +#define fann_exp2(x) exp(0.69314718055994530942*(x))
        +/*#define fann_clip(x, lo, hi) (x)*/
        +
        +#define fann_rand(min_value, max_value) (((float)(min_value))+(((float)(max_value)-((float)(min_value)))*rand()/(RAND_MAX+1.0f)))
        +
        +#define fann_abs(value) (((value) > 0) ? (value) : -(value))
        +
        +#ifdef FIXEDFANN
        +
        +#define fann_mult(x,y) ((x*y) >> decimal_point)
        +#define fann_div(x,y) (((x) << decimal_point)/y)
        +#define fann_random_weight() (fann_type)(fann_rand(0,multiplier/10))
        +#define fann_random_bias_weight() (fann_type)(fann_rand((0-multiplier)/10,multiplier/10))
        +
        +#else
        +
        +#define fann_mult(x,y) (x*y)
        +#define fann_div(x,y) (x/y)
        +#define fann_random_weight() (fann_rand(-0.1f,0.1f))
        +#define fann_random_bias_weight() (fann_rand(-0.1f,0.1f))
        +
        +#endif
        +
        +#endif
        diff --git a/lib/ann/fann/src/include/fann_io.h b/lib/ann/fann/src/include/fann_io.h
        new file mode 100644
        index 0000000..ad29c8d
        --- /dev/null
        +++ b/lib/ann/fann/src/include/fann_io.h
        @@ -0,0 +1,100 @@
        +/*
        +Fast Artificial Neural Network Library (fann)
        +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com)
        +
        +This library is free software; you can redistribute it and/or
        +modify it under the terms of the GNU Lesser General Public
        +License as published by the Free Software Foundation; either
        +version 2.1 of the License, or (at your option) any later version.
        +
        +This library is distributed in the hope that it will be useful,
        +but WITHOUT ANY WARRANTY; without even the implied warranty of
        +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
        +Lesser General Public License for more details.
        +
        +You should have received a copy of the GNU Lesser General Public
        +License along with this library; if not, write to the Free Software
        +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        +*/
        +
        +#ifndef __fann_io_h__
        +#define __fann_io_h__
        +	
        +/* Section: FANN File Input/Output 
        +   
        +   It is possible to save an entire ann to a file with <fann_save> for future loading with <fann_create_from_file>.
        + */	
        +
        +/* Group: File Input and Output */	
        +
        +/* Function: fann_create_from_file
        +   
        +   Constructs a backpropagation neural network from a configuration file, which has been saved by <fann_save>.
        +   
        +   See also:
        +   	<fann_save>, <fann_save_to_fixed>
        +   	
        +   This function appears in FANN >= 1.0.0.
        + */
        +FANN_EXTERNAL struct fann *FANN_API fann_create_from_file(const char *configuration_file);
        +
        +
        +/* Function: fann_save
        +
        +   Save the entire network to a configuration file.
        +   
        +   The configuration file contains all information about the neural network and enables 
        +   <fann_create_from_file> to create an exact copy of the neural network and all of the
        +   parameters associated with the neural network.
        +   
        +   These three parameters (<fann_set_callback>, <fann_set_error_log>,
        +   <fann_set_user_data>) are *NOT* saved to the file because they cannot safely be
        +   ported to a different location. Also temporary parameters generated during training
        +   like <fann_get_MSE> are not saved.
        +   
        +   Return:
        +   The function returns 0 on success and -1 on failure.
        +   
        +   See also:
        +    <fann_create_from_file>, <fann_save_to_fixed>
        +
        +   This function appears in FANN >= 1.0.0.
        + */
        +FANN_EXTERNAL int FANN_API fann_save(struct fann *ann, const char *configuration_file);
        +
        +
        +/* Function: fann_save_to_fixed
        +
        +   Saves the entire network to a configuration file.
        +   But it is saved in fixed point format no matter which
        +   format it is currently in.
        +
        +   This is useful for training a network in floating points,
        +   and then later executing it in fixed point.
        +
        +   The function returns the bit position of the fix point, which
        +   can be used to find out how accurate the fixed point network will be.
        +   A high value indicates high precision, and a low value indicates low
        +   precision.
        +
        +   A negative value indicates very low precision, and a very
        +   strong possibility for overflow.
        +   (the actual fix point will be set to 0, since a negative
        +   fix point does not make sense).
        +
        +   Generally, a fix point lower than 6 is bad, and should be avoided.
        +   The best way to avoid this, is to have less connections to each neuron,
        +   or just less neurons in each layer.
        +
        +   The fixed point use of this network is only intended for use on machines that
        +   have no floating point processor, like an iPAQ. On normal computers the floating
        +   point version is actually faster.
        +
        +   See also:
        +    <fann_create_from_file>, <fann_save>
        +
        +   This function appears in FANN >= 1.0.0.
        +*/ 
        +FANN_EXTERNAL int FANN_API fann_save_to_fixed(struct fann *ann, const char *configuration_file);
        +	
        +#endif
        diff --git a/lib/ann/fann/src/include/fann_train.h b/lib/ann/fann/src/include/fann_train.h
        new file mode 100644
        index 0000000..ae377d9
        --- /dev/null
        +++ b/lib/ann/fann/src/include/fann_train.h
        @@ -0,0 +1,1425 @@
        +/*
        +Fast Artificial Neural Network Library (fann)
        +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com)
        +
        +This library is free software; you can redistribute it and/or
        +modify it under the terms of the GNU Lesser General Public
        +License as published by the Free Software Foundation; either
        +version 2.1 of the License, or (at your option) any later version.
        +
        +This library is distributed in the hope that it will be useful,
        +but WITHOUT ANY WARRANTY; without even the implied warranty of
        +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
        +Lesser General Public License for more details.
        +
        +You should have received a copy of the GNU Lesser General Public
        +License along with this library; if not, write to the Free Software
        +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        +*/
        +
        +#ifndef __fann_train_h__
        +#define __fann_train_h__
        +
        +/* Section: FANN Training 
        + 
        + 	There are many different ways of training neural networks and the FANN library supports
        + 	a number of different approaches. 
        + 	
        + 	Two fundamentally different approaches are the most commonly used:
        + 	
        + 		Fixed topology training - The size and topology of the ANN is determined in advance
        + 			and the training alters the weights in order to minimize the difference between
        + 			the desired output values and the actual output values. This kind of training is 
        + 			supported by <fann_train_on_data>.
        + 			
        + 		Evolving topology training - The training start out with an empty ANN, only consisting
        + 			of input and output neurons. Hidden neurons and connections are added during training,
        + 			in order to reach the same goal as for fixed topology training. This kind of training
        + 			is supported by <FANN Cascade Training>.
        + */
        +
        +/* Struct: struct fann_train_data
        +	Structure used to store data, for use with training.
        +	
        +	The data inside this structure should never be manipulated directly, but should use some 
        +	of the supplied functions in <Training Data Manipulation>.
        +	
        +	The training data structure is very usefull for storing data during training and testing of a
        +	neural network.
        +   
        +	See also:
        +	<fann_read_train_from_file>, <fann_train_on_data>, <fann_destroy_train>
        +*/
        +struct fann_train_data
        +{
        +	enum fann_errno_enum errno_f;
        +	FILE *error_log;
        +	char *errstr;
        +
        +	unsigned int num_data;
        +	unsigned int num_input;
        +	unsigned int num_output;
        +	fann_type **input;
        +	fann_type **output;
        +};
        +
        +/* Section: FANN Training */
        +
        +/* Group: Training */
        +
        +#ifndef FIXEDFANN
        +/* Function: fann_train
        +
        +   Train one iteration with a set of inputs, and a set of desired outputs.
        +   This training is always incremental training (see <fann_train_enum>), since
        +   only one pattern is presented.
        +   
        +   Parameters:
        +   	ann - The neural network structure
        +   	input - an array of inputs. This array must be exactly <fann_get_num_input> long.
        +   	desired_output - an array of desired outputs. This array must be exactly <fann_get_num_output> long.
        +   	
        +   	See also:
        +   		<fann_train_on_data>, <fann_train_epoch>
        +   	
        +   	This function appears in FANN >= 1.0.0.
        + */ 
        +FANN_EXTERNAL void FANN_API fann_train(struct fann *ann, fann_type * input,
        +									   fann_type * desired_output);
        +
        +#endif	/* NOT FIXEDFANN */
        +	
        +/* Function: fann_test
        +   Test with a set of inputs, and a set of desired outputs.
        +   This operation updates the mean square error, but does not
        +   change the network in any way.
        +   
        +   See also:
        +   		<fann_test_data>, <fann_train>
        +   
        +   This function appears in FANN >= 1.0.0.
        +*/ 
        +FANN_EXTERNAL fann_type * FANN_API fann_test(struct fann *ann, fann_type * input,
        +												 fann_type * desired_output);
        +
        +/* Function: fann_get_MSE
        +   Reads the mean square error from the network.
        +   
        +   Reads the mean square error from the network. This value is calculated during 
        +   training or testing, and can therefore sometimes be a bit off if the weights 
        +   have been changed since the last calculation of the value.
        +   
        +   See also:
        +   	<fann_test_data>
        +
        +	This function appears in FANN >= 1.1.0.
        + */ 
        +FANN_EXTERNAL float FANN_API fann_get_MSE(struct fann *ann);
        +
        +/* Function: fann_get_bit_fail
        +	
        +	The number of fail bits; means the number of output neurons which differ more 
        +	than the bit fail limit (see <fann_get_bit_fail_limit>, <fann_set_bit_fail_limit>). 
        +	The bits are counted in all of the training data, so this number can be higher than
        +	the number of training data.
        +	
        +	This value is reset by <fann_reset_MSE> and updated by all the same functions which also
        +	update the MSE value (e.g. <fann_test_data>, <fann_train_epoch>)
        +	
        +	See also:
        +		<fann_stopfunc_enum>, <fann_get_MSE>
        +
        +	This function appears in FANN >= 2.0.0
        +*/
        +FANN_EXTERNAL unsigned int FANN_API fann_get_bit_fail(struct fann *ann);
        +
        +/* Function: fann_reset_MSE
        +   Resets the mean square error from the network.
        +   
        +   This function also resets the number of bits that fail.
        +   
        +   See also:
        +   	<fann_get_MSE>, <fann_get_bit_fail_limit>
        +   
        +    This function appears in FANN >= 1.1.0
        + */ 
        +FANN_EXTERNAL void FANN_API fann_reset_MSE(struct fann *ann);
        +
        +/* Group: Training Data Training */
        +
        +#ifndef FIXEDFANN
        +	
        +/* Function: fann_train_on_data
        +
        +   Trains on an entire dataset, for a period of time. 
        +   
        +   This training uses the training algorithm chosen by <fann_set_training_algorithm>,
        +   and the parameters set for these training algorithms.
        +   
        +   Parameters:
        +   		ann - The neural network
        +   		data - The data, which should be used during training
        +   		max_epochs - The maximum number of epochs the training should continue
        +   		epochs_between_reports - The number of epochs between printing a status report to stdout.
        +   			A value of zero means no reports should be printed.
        +   		desired_error - The desired <fann_get_MSE> or <fann_get_bit_fail>, depending on which stop function
        +   			is chosen by <fann_set_train_stop_function>.
        +
        +	Instead of printing out reports every epochs_between_reports, a callback function can be called 
        +	(see <fann_set_callback>).
        +	
        +	See also:
        +		<fann_train_on_file>, <fann_train_epoch>, <Parameters>
        +
        +	This function appears in FANN >= 1.0.0.
        +*/ 
        +FANN_EXTERNAL void FANN_API fann_train_on_data(struct fann *ann, struct fann_train_data *data,
        +											   unsigned int max_epochs,
        +											   unsigned int epochs_between_reports,
        +											   float desired_error);
        +
        +/* Function: fann_train_on_file
        +   
        +   Does the same as <fann_train_on_data>, but reads the training data directly from a file.
        +   
        +   See also:
        +   		<fann_train_on_data>
        +
        +	This function appears in FANN >= 1.0.0.
        +*/ 
        +FANN_EXTERNAL void FANN_API fann_train_on_file(struct fann *ann, const char *filename,
        +											   unsigned int max_epochs,
        +											   unsigned int epochs_between_reports,
        +											   float desired_error);
        +
        +/* Function: fann_train_epoch
        +   Train one epoch with a set of training data.
        +   
        +    Train one epoch with the training data stored in data. One epoch is where all of 
        +    the training data is considered exactly once.
        +
        +	This function returns the MSE error as it is calculated either before or during 
        +	the actual training. This is not the actual MSE after the training epoch, but since 
        +	calculating this will require to go through the entire training set once more, it is 
        +	more than adequate to use this value during training.
        +
        +	The training algorithm used by this function is chosen by the <fann_set_training_algorithm> 
        +	function.
        +	
        +	See also:
        +		<fann_train_on_data>, <fann_test_data>
        +		
        +	This function appears in FANN >= 1.2.0.
        + */ 
        +FANN_EXTERNAL float FANN_API fann_train_epoch(struct fann *ann, struct fann_train_data *data);
        +#endif	/* NOT FIXEDFANN */
        +
        +/* Function: fann_test_data
        +  
        +   Test a set of training data and calculates the MSE for the training data. 
        +   
        +   This function updates the MSE and the bit fail values.
        +   
        +   See also:
        + 	<fann_test>, <fann_get_MSE>, <fann_get_bit_fail>
        +
        +	This function appears in FANN >= 1.2.0.
        + */ 
        +FANN_EXTERNAL float FANN_API fann_test_data(struct fann *ann, struct fann_train_data *data);
        +
        +/* Group: Training Data Manipulation */
        +
        +/* Function: fann_read_train_from_file
        +   Reads a file that stores training data.
        +   
        +   The file must be formatted like:
        +   >num_train_data num_input num_output
        +   >inputdata separated by space
        +   >outputdata separated by space
        +   >
        +   >.
        +   >.
        +   >.
        +   >
        +   >inputdata separated by space
        +   >outputdata separated by space
        +   
        +   See also:
        +   	<fann_train_on_data>, <fann_destroy_train>, <fann_save_train>
        +
        +    This function appears in FANN >= 1.0.0
        +*/ 
        +FANN_EXTERNAL struct fann_train_data *FANN_API fann_read_train_from_file(const char *filename);
        +
        +
        +/* Function: fann_create_train
        +   Creates an empty training data struct.
        +  
        +   See also:
        +     <fann_read_train_from_file>, <fann_train_on_data>, <fann_destroy_train>,
        +     <fann_save_train>, <fann_create_train_array>
        +
        +    This function appears in FANN >= 2.2.0
        +*/ 
        +FANN_EXTERNAL struct fann_train_data * FANN_API fann_create_train(unsigned int num_data, unsigned int num_input, unsigned int num_output);
        +
        +/* Function: fann_create_train_pointer_array
        +   Creates an training data struct and fills it with data from provided arrays of pointer.
        +  
        +   A copy of the data is made so there are no restrictions on the
        +   allocation of the input/output data and the caller is responsible
        +   for the deallocation of the data pointed to by input and output.
        +
        +   See also:
        +     <fann_read_train_from_file>, <fann_train_on_data>, <fann_destroy_train>,
        +     <fann_save_train>, <fann_create_train>, <fann_create_train_array>
        +
        +    This function appears in FANN >= 2.3.0
        +*/ 
        +FANN_EXTERNAL struct fann_train_data * FANN_API fann_create_train_pointer_array(unsigned int num_data, unsigned int num_input, fann_type **input, unsigned int num_output, fann_type **output);
        +
        +/* Function: fann_create_train_array
        +   Creates an training data struct and fills it with data from provided arrays, where the arrays must have the dimensions:
        +   input[num_data*num_input]
        +   output[num_data*num_output]
        +
        +   A copy of the data is made so there are no restrictions on the
        +   allocation of the input/output data and the caller is responsible
        +   for the deallocation of the data pointed to by input and output.
        +
        +   See also:
        +     <fann_read_train_from_file>, <fann_train_on_data>, <fann_destroy_train>,
        +     <fann_save_train>, <fann_create_train>, <fann_create_train_pointer_array>
        +
        +    This function appears in FANN >= 2.3.0
        +*/ 
        +FANN_EXTERNAL struct fann_train_data * FANN_API fann_create_train_array(unsigned int num_data, unsigned int num_input, fann_type *input, unsigned int num_output, fann_type *output);
        +
        +/* Function: fann_create_train_from_callback
        +   Creates the training data struct from a user supplied function.
        +   As the training data are numerable (data 1, data 2...), the user must write
        +   a function that receives the number of the training data set (input,output)
        +   and returns the set.  fann_create_train_from_callback will call the user
        +   supplied function 'num_data' times, one input-output pair each time. Each
        +   time the user supplied function is called, the time of the call will be passed
        +   as the 'num' parameter and the user supplied function must write the input
        +   and output to the corresponding parameters.
        +   
        +
        +   Parameters:
        +     num_data      - The number of training data
        +     num_input     - The number of inputs per training data
        +     num_output    - The number of ouputs per training data
        +     user_function - The user supplied function
        +
        +   Parameters for the user function:
        +     num        - The number of the training data set
        +     num_input  - The number of inputs per training data
        +     num_output - The number of ouputs per training data
        +     input      - The set of inputs
        +     output     - The set of desired outputs
        +  
        +   See also:
        +     <fann_read_train_from_file>, <fann_train_on_data>, <fann_destroy_train>,
        +     <fann_save_train>
        +
        +    This function appears in FANN >= 2.1.0
        +*/ 
        +FANN_EXTERNAL struct fann_train_data * FANN_API fann_create_train_from_callback(unsigned int num_data,
        +                                          unsigned int num_input,
        +                                          unsigned int num_output,
        +                                          void (FANN_API *user_function)( unsigned int,
        +                                                                 unsigned int,
        +                                                                 unsigned int,
        +                                                                 fann_type * ,
        +                                                                 fann_type * ));
        +
        +/* Function: fann_destroy_train
        +   Destructs the training data and properly deallocates all of the associated data.
        +   Be sure to call this function when finished using the training data.
        +
        +    This function appears in FANN >= 1.0.0
        + */ 
        +FANN_EXTERNAL void FANN_API fann_destroy_train(struct fann_train_data *train_data);
        +
        +/* Function: fann_get_train_input
        +   Gets the training input data at the given position
        +
        +   See also:
        +     <fann_get_train_output>
        +
        +   This function appears in FANN >= 2.3.0
        + */ 
        +FANN_EXTERNAL fann_type * FANN_API fann_get_train_input(struct fann_train_data * data, unsigned int position);
        +
        +/* Function: fann_get_train_output
        +   Gets the training output data at the given position
        +
        +   See also:
        +     <fann_get_train_output>
        +
        +   This function appears in FANN >= 2.3.0
        + */ 
        +FANN_EXTERNAL fann_type * FANN_API fann_get_train_output(struct fann_train_data * data, unsigned int position);
        +
        +
        +/* Function: fann_shuffle_train_data
        +   
        +   Shuffles training data, randomizing the order. 
        +   This is recommended for incremental training, while it has no influence during batch training.
        +   
        +   This function appears in FANN >= 1.1.0.
        + */ 
        +FANN_EXTERNAL void FANN_API fann_shuffle_train_data(struct fann_train_data *train_data);
        +
        +#ifndef FIXEDFANN
        +
        +/* Function: fann_get_min_train_input
        +
        +   Get the minimum value of all in the input data
        +
        +   This function appears in FANN >= 2.3.0
        +*/
        +FANN_EXTERNAL fann_type FANN_API fann_get_min_train_input(struct fann_train_data *train_data);
        +
        +/* Function: fann_get_max_train_input
        +
        +   Get the maximum value of all in the input data
        +
        +   This function appears in FANN >= 2.3.0
        +*/
        +FANN_EXTERNAL fann_type FANN_API fann_get_max_train_input(struct fann_train_data *train_data);
        +
        +/* Function: fann_get_min_train_output
        +
        +   Get the minimum value of all in the output data
        +
        +   This function appears in FANN >= 2.3.0
        +*/
        +FANN_EXTERNAL fann_type FANN_API fann_get_min_train_output(struct fann_train_data *train_data);
        +
        +/* Function: fann_get_max_train_output
        +
        +   Get the maximum value of all in the output data
        +
        +   This function appears in FANN >= 2.3.0
        +*/
        +FANN_EXTERNAL fann_type FANN_API fann_get_max_train_output(struct fann_train_data *train_data);
        +
        +
        +/* Function: fann_scale_train
        +
        +   Scale input and output data based on previously calculated parameters.
        +   
        +   Parameters:
        +     ann      - ann for which trained parameters were calculated before
        +     data     - training data that needs to be scaled
        +     
        +   See also:
        +   	<fann_descale_train>, <fann_set_scaling_params>
        +
        +    This function appears in FANN >= 2.1.0
        +*/
        +FANN_EXTERNAL void FANN_API fann_scale_train( struct fann *ann, struct fann_train_data *data );
        +
        +/* Function: fann_descale_train
        +
        +   Descale input and output data based on previously calculated parameters.
        +   
        +   Parameters:
        +     ann      - ann for which trained parameters were calculated before
        +     data     - training data that needs to be descaled
        +     
        +   See also:
        +   	<fann_scale_train>, <fann_set_scaling_params>
        +
        +    This function appears in FANN >= 2.1.0
        + */
        +FANN_EXTERNAL void FANN_API fann_descale_train( struct fann *ann, struct fann_train_data *data );
        +
        +/* Function: fann_set_input_scaling_params
        +
        +   Calculate input scaling parameters for future use based on training data.
        +   
        +   Parameters:
        +   	 ann           - ann for which parameters need to be calculated
        +   	 data          - training data that will be used to calculate scaling parameters
        +   	 new_input_min - desired lower bound in input data after scaling (not strictly followed)
        +   	 new_input_max - desired upper bound in input data after scaling (not strictly followed)
        +   	 
        +   See also:
        +   	 <fann_set_output_scaling_params>
        +
        +    This function appears in FANN >= 2.1.0
        + */
        +FANN_EXTERNAL int FANN_API fann_set_input_scaling_params(
        +	struct fann *ann,
        +	const struct fann_train_data *data,
        +	float new_input_min,
        +	float new_input_max);
        +
        +/* Function: fann_set_output_scaling_params
        +
        +   Calculate output scaling parameters for future use based on training data.
        +   
        +   Parameters:
        +   	 ann            - ann for which parameters need to be calculated
        +   	 data           - training data that will be used to calculate scaling parameters
        +   	 new_output_min - desired lower bound in output data after scaling (not strictly followed)
        +   	 new_output_max - desired upper bound in output data after scaling (not strictly followed)
        +   	 
        +   See also:
        +   	 <fann_set_input_scaling_params>
        +
        +    This function appears in FANN >= 2.1.0
        + */
        +FANN_EXTERNAL int FANN_API fann_set_output_scaling_params(
        +	struct fann *ann,
        +	const struct fann_train_data *data,
        +	float new_output_min,
        +	float new_output_max);
        +
        +/* Function: fann_set_scaling_params
        +
        +   Calculate input and output scaling parameters for future use based on training data.
        +
        +   Parameters:
        +   	 ann            - ann for which parameters need to be calculated
        +   	 data           - training data that will be used to calculate scaling parameters
        +   	 new_input_min  - desired lower bound in input data after scaling (not strictly followed)
        +   	 new_input_max  - desired upper bound in input data after scaling (not strictly followed)
        +   	 new_output_min - desired lower bound in output data after scaling (not strictly followed)
        +   	 new_output_max - desired upper bound in output data after scaling (not strictly followed)
        +   	 
        +   See also:
        +   	 <fann_set_input_scaling_params>, <fann_set_output_scaling_params>
        +
        +    This function appears in FANN >= 2.1.0
        + */
        +FANN_EXTERNAL int FANN_API fann_set_scaling_params(
        +	struct fann *ann,
        +	const struct fann_train_data *data,
        +	float new_input_min,
        +	float new_input_max,
        +	float new_output_min,
        +	float new_output_max);
        +
        +/* Function: fann_clear_scaling_params
        +
        +   Clears scaling parameters.
        +   
        +   Parameters:
        +     ann - ann for which to clear scaling parameters
        +
        +    This function appears in FANN >= 2.1.0
        + */
        +FANN_EXTERNAL int FANN_API fann_clear_scaling_params(struct fann *ann);
        +
        +/* Function: fann_scale_input
        +
        +   Scale data in input vector before feeding it to ann based on previously calculated parameters.
        +   
        +   Parameters:
        +     ann          - for which scaling parameters were calculated
        +     input_vector - input vector that will be scaled
        +   
        +   See also:
        +     <fann_descale_input>, <fann_scale_output>
        +
        +    This function appears in FANN >= 2.1.0
        +*/
        +FANN_EXTERNAL void FANN_API fann_scale_input( struct fann *ann, fann_type *input_vector );
        +
        +/* Function: fann_scale_output
        +
        +   Scale data in output vector before feeding it to ann based on previously calculated parameters.
        +   
        +   Parameters:
        +     ann           - for which scaling parameters were calculated
        +     output_vector - output vector that will be scaled
        +   
        +   See also:
        +     <fann_descale_output>, <fann_scale_input>
        +
        +    This function appears in FANN >= 2.1.0
        + */
        +FANN_EXTERNAL void FANN_API fann_scale_output( struct fann *ann, fann_type *output_vector );
        +
        +/* Function: fann_descale_input
        +
        +   Scale data in input vector after getting it from ann based on previously calculated parameters.
        +   
        +   Parameters:
        +     ann          - for which scaling parameters were calculated
        +     input_vector - input vector that will be descaled
        +   
        +   See also:
        +     <fann_scale_input>, <fann_descale_output>
        +
        +    This function appears in FANN >= 2.1.0
        + */
        +FANN_EXTERNAL void FANN_API fann_descale_input( struct fann *ann, fann_type *input_vector );
        +
        +/* Function: fann_descale_output
        +
        +   Scale data in output vector after getting it from ann based on previously calculated parameters.
        +   
        +   Parameters:
        +     ann           - for which scaling parameters were calculated
        +     output_vector - output vector that will be descaled
        +   
        +   See also:
        +     <fann_scale_output>, <fann_descale_input>
        +
        +    This function appears in FANN >= 2.1.0
        + */
        +FANN_EXTERNAL void FANN_API fann_descale_output( struct fann *ann, fann_type *output_vector );
        +
        +#endif
        +
        +/* Function: fann_scale_input_train_data
        +   
        +   Scales the inputs in the training data to the specified range.
        +
        +   A simplified scaling method, which is mostly useful in examples where it's known that all the
        +   data will be in one range and it should be transformed to another range.
        +
        +   It is not recommended to use this on subsets of data as the complete input range might not be
        +   available in that subset.
        +
        +   For more powerful scaling, please consider <fann_scale_train>
        +
        +   See also:
        +   	<fann_scale_output_train_data>, <fann_scale_train_data>, <fann_scala_input>
        +
        +   This function appears in FANN >= 2.0.0.
        + */ 
        +FANN_EXTERNAL void FANN_API fann_scale_input_train_data(struct fann_train_data *train_data,
        +														fann_type new_min, fann_type new_max);
        +
        +
        +/* Function: fann_scale_output_train_data
        +   
        +   Scales the outputs in the training data to the specified range.
        +
        +   A simplified scaling method, which is mostly useful in examples where it's known that all the
        +   data will be in one range and it should be transformed to another range.
        +
        +   It is not recommended to use this on subsets of data as the complete input range might not be
        +   available in that subset.
        +
        +   For more powerful scaling, please consider <fann_scale_train>
        +
        +   See also:
        +   	<fann_scale_input_train_data>, <fann_scale_train_data>
        +
        +   This function appears in FANN >= 2.0.0.
        + */ 
        +FANN_EXTERNAL void FANN_API fann_scale_output_train_data(struct fann_train_data *train_data,
        +														 fann_type new_min, fann_type new_max);
        +
        +
        +/* Function: fann_scale_train_data
        +   
        +   Scales the inputs and outputs in the training data to the specified range.
        +
        +   A simplified scaling method, which is mostly useful in examples where it's known that all the
        +   data will be in one range and it should be transformed to another range.
        +
        +   It is not recommended to use this on subsets of data as the complete input range might not be
        +   available in that subset.
        +
        +   For more powerful scaling, please consider <fann_scale_train>
        +
        +   See also:
        +   	<fann_scale_output_train_data>, <fann_scale_input_train_data>
        +
        +   This function appears in FANN >= 2.0.0.
        + */ 
        +FANN_EXTERNAL void FANN_API fann_scale_train_data(struct fann_train_data *train_data,
        +												  fann_type new_min, fann_type new_max);
        +
        +
        +/* Function: fann_merge_train_data
        +   
        +   Merges the data from *data1* and *data2* into a new <struct fann_train_data>.
        +   
        +   This function appears in FANN >= 1.1.0.
        + */ 
        +FANN_EXTERNAL struct fann_train_data *FANN_API fann_merge_train_data(struct fann_train_data *data1,
        +																	 struct fann_train_data *data2);
        +
        +
        +/* Function: fann_duplicate_train_data
        +   
        +   Returns an exact copy of a <struct fann_train_data>.
        +
        +   This function appears in FANN >= 1.1.0.
        + */ 
        +FANN_EXTERNAL struct fann_train_data *FANN_API fann_duplicate_train_data(struct fann_train_data
        +																		 *data);
        +	
        +/* Function: fann_subset_train_data
        +   
        +   Returns an copy of a subset of the <struct fann_train_data>, starting at position *pos* 
        +   and *length* elements forward.
        +   
        +   >fann_subset_train_data(train_data, 0, fann_length_train_data(train_data))
        +   
        +   Will do the same as <fann_duplicate_train_data>.
        +   
        +   See also:
        +   	<fann_length_train_data>
        +
        +   This function appears in FANN >= 2.0.0.
        + */ 
        +FANN_EXTERNAL struct fann_train_data *FANN_API fann_subset_train_data(struct fann_train_data
        +																		 *data, unsigned int pos,
        +																		 unsigned int length);
        +	
        +/* Function: fann_length_train_data
        +   
        +   Returns the number of training patterns in the <struct fann_train_data>.
        +
        +   This function appears in FANN >= 2.0.0.
        + */ 
        +FANN_EXTERNAL unsigned int FANN_API fann_length_train_data(struct fann_train_data *data);
        +	
        +/* Function: fann_num_input_train_data
        +   
        +   Returns the number of inputs in each of the training patterns in the <struct fann_train_data>.
        +   
        +   See also:
        +   	<fann_num_train_data>, <fann_num_output_train_data>
        +
        +   This function appears in FANN >= 2.0.0.
        + */ 
        +FANN_EXTERNAL unsigned int FANN_API fann_num_input_train_data(struct fann_train_data *data);
        +	
        +/* Function: fann_num_output_train_data
        +   
        +   Returns the number of outputs in each of the training patterns in the <struct fann_train_data>.
        +   
        +   See also:
        +   	<fann_num_train_data>, <fann_num_input_train_data>
        +
        +   This function appears in FANN >= 2.0.0.
        + */ 
        +FANN_EXTERNAL unsigned int FANN_API fann_num_output_train_data(struct fann_train_data *data);
        +	
        +/* Function: fann_save_train
        +   
        +   Save the training structure to a file, with the format as specified in <fann_read_train_from_file>
        +
        +   Return:
        +   The function returns 0 on success and -1 on failure.
        +      
        +   See also:
        +   	<fann_read_train_from_file>, <fann_save_train_to_fixed>
        +	
        +   This function appears in FANN >= 1.0.0.   	
        + */ 
        +FANN_EXTERNAL int FANN_API fann_save_train(struct fann_train_data *data, const char *filename);
        +
        +
        +/* Function: fann_save_train_to_fixed
        +   
        +   Saves the training structure to a fixed point data file.
        + 
        +   This function is very useful for testing the quality of a fixed point network.
        +   
        +   Return:
        +   The function returns 0 on success and -1 on failure.
        +   
        +   See also:
        +   	<fann_save_train>
        +
        +   This function appears in FANN >= 1.0.0.   	
        + */ 
        +FANN_EXTERNAL int FANN_API fann_save_train_to_fixed(struct fann_train_data *data, const char *filename,
        +													 unsigned int decimal_point);
        +
        +
        +/* Group: Parameters */
        +
        +/* Function: fann_get_training_algorithm
        +
        +   Return the training algorithm as described by <fann_train_enum>. This training algorithm
        +   is used by <fann_train_on_data> and associated functions.
        +   
        +   Note that this algorithm is also used during <fann_cascadetrain_on_data>, although only
        +   FANN_TRAIN_RPROP and FANN_TRAIN_QUICKPROP is allowed during cascade training.
        +   
        +   The default training algorithm is FANN_TRAIN_RPROP.
        +   
        +   See also:
        +    <fann_set_training_algorithm>, <fann_train_enum>
        +
        +   This function appears in FANN >= 1.0.0.   	
        + */ 
        +FANN_EXTERNAL enum fann_train_enum FANN_API fann_get_training_algorithm(struct fann *ann);
        +
        +
        +/* Function: fann_set_training_algorithm
        +
        +   Set the training algorithm.
        +   
        +   More info available in <fann_get_training_algorithm>
        +
        +   This function appears in FANN >= 1.0.0.   	
        + */ 
        +FANN_EXTERNAL void FANN_API fann_set_training_algorithm(struct fann *ann,
        +														enum fann_train_enum training_algorithm);
        +
        +
        +/* Function: fann_get_learning_rate
        +
        +   Return the learning rate.
        +   
        +   The learning rate is used to determine how aggressive training should be for some of the
        +   training algorithms (FANN_TRAIN_INCREMENTAL, FANN_TRAIN_BATCH, FANN_TRAIN_QUICKPROP).
        +   Do however note that it is not used in FANN_TRAIN_RPROP.
        +   
        +   The default learning rate is 0.7.
        +   
        +   See also:
        +   	<fann_set_learning_rate>, <fann_set_training_algorithm>
        +   
        +   This function appears in FANN >= 1.0.0.   	
        + */ 
        +FANN_EXTERNAL float FANN_API fann_get_learning_rate(struct fann *ann);
        +
        +
        +/* Function: fann_set_learning_rate
        +
        +   Set the learning rate.
        +   
        +   More info available in <fann_get_learning_rate>
        +
        +   This function appears in FANN >= 1.0.0.   	
        + */ 
        +FANN_EXTERNAL void FANN_API fann_set_learning_rate(struct fann *ann, float learning_rate);
        +
        +/* Function: fann_get_learning_momentum
        +
        +   Get the learning momentum.
        +   
        +   The learning momentum can be used to speed up FANN_TRAIN_INCREMENTAL training.
        +   A too high momentum will however not benefit training. Setting momentum to 0 will
        +   be the same as not using the momentum parameter. The recommended value of this parameter
        +   is between 0.0 and 1.0.
        +
        +   The default momentum is 0.
        +   
        +   See also:
        +   <fann_set_learning_momentum>, <fann_set_training_algorithm>
        +
        +   This function appears in FANN >= 2.0.0.   	
        + */ 
        +FANN_EXTERNAL float FANN_API fann_get_learning_momentum(struct fann *ann);
        +
        +
        +/* Function: fann_set_learning_momentum
        +
        +   Set the learning momentum.
        +
        +   More info available in <fann_get_learning_momentum>
        +
        +   This function appears in FANN >= 2.0.0.   	
        + */ 
        +FANN_EXTERNAL void FANN_API fann_set_learning_momentum(struct fann *ann, float learning_momentum);
        +
        +
        +/* Function: fann_get_activation_function
        +
        +   Get the activation function for neuron number *neuron* in layer number *layer*, 
        +   counting the input layer as layer 0. 
        +   
        +   It is not possible to get activation functions for the neurons in the input layer.
        +   
        +   Information about the individual activation functions is available at <fann_activationfunc_enum>.
        +
        +   Returns:
        +    The activation function for the neuron or -1 if the neuron is not defined in the neural network.
        +   
        +   See also:
        +   	<fann_set_activation_function_layer>, <fann_set_activation_function_hidden>,
        +   	<fann_set_activation_function_output>, <fann_set_activation_steepness>,
        +    <fann_set_activation_function>
        +
        +   This function appears in FANN >= 2.1.0
        + */ 
        +FANN_EXTERNAL enum fann_activationfunc_enum FANN_API fann_get_activation_function(struct fann *ann,
        +																int layer,
        +																int neuron);
        +
        +/* Function: fann_set_activation_function
        +
        +   Set the activation function for neuron number *neuron* in layer number *layer*, 
        +   counting the input layer as layer 0. 
        +   
        +   It is not possible to set activation functions for the neurons in the input layer.
        +   
        +   When choosing an activation function it is important to note that the activation 
        +   functions have different range. FANN_SIGMOID is e.g. in the 0 - 1 range while 
        +   FANN_SIGMOID_SYMMETRIC is in the -1 - 1 range and FANN_LINEAR is unbounded.
        +   
        +   Information about the individual activation functions is available at <fann_activationfunc_enum>.
        +   
        +   The default activation function is FANN_SIGMOID_STEPWISE.
        +   
        +   See also:
        +   	<fann_set_activation_function_layer>, <fann_set_activation_function_hidden>,
        +   	<fann_set_activation_function_output>, <fann_set_activation_steepness>,
        +    <fann_get_activation_function>
        +
        +   This function appears in FANN >= 2.0.0.
        + */ 
        +FANN_EXTERNAL void FANN_API fann_set_activation_function(struct fann *ann,
        +																enum fann_activationfunc_enum
        +																activation_function,
        +																int layer,
        +																int neuron);
        +
        +/* Function: fann_set_activation_function_layer
        +
        +   Set the activation function for all the neurons in the layer number *layer*, 
        +   counting the input layer as layer 0. 
        +   
        +   It is not possible to set activation functions for the neurons in the input layer.
        +
        +   See also:
        +   	<fann_set_activation_function>, <fann_set_activation_function_hidden>,
        +   	<fann_set_activation_function_output>, <fann_set_activation_steepness_layer>
        +
        +   This function appears in FANN >= 2.0.0.
        + */ 
        +FANN_EXTERNAL void FANN_API fann_set_activation_function_layer(struct fann *ann,
        +																enum fann_activationfunc_enum
        +																activation_function,
        +																int layer);
        +
        +/* Function: fann_set_activation_function_hidden
        +
        +   Set the activation function for all of the hidden layers.
        +
        +   See also:
        +   	<fann_set_activation_function>, <fann_set_activation_function_layer>,
        +   	<fann_set_activation_function_output>, <fann_set_activation_steepness_hidden>
        +
        +   This function appears in FANN >= 1.0.0.
        + */ 
        +FANN_EXTERNAL void FANN_API fann_set_activation_function_hidden(struct fann *ann,
        +																enum fann_activationfunc_enum
        +																activation_function);
        +
        +
        +/* Function: fann_set_activation_function_output
        +
        +   Set the activation function for the output layer.
        +
        +   See also:
        +   	<fann_set_activation_function>, <fann_set_activation_function_layer>,
        +   	<fann_set_activation_function_hidden>, <fann_set_activation_steepness_output>
        +
        +   This function appears in FANN >= 1.0.0.
        + */ 
        +FANN_EXTERNAL void FANN_API fann_set_activation_function_output(struct fann *ann,
        +																enum fann_activationfunc_enum
        +																activation_function);
        +
        +/* Function: fann_get_activation_steepness
        +
        +   Get the activation steepness for neuron number *neuron* in layer number *layer*, 
        +   counting the input layer as layer 0. 
        +   
        +   It is not possible to get activation steepness for the neurons in the input layer.
        +   
        +   The steepness of an activation function says something about how fast the activation function 
        +   goes from the minimum to the maximum. A high value for the activation function will also
        +   give a more aggressive training.
        +   
        +   When training neural networks where the output values should be at the extremes (usually 0 and 1, 
        +   depending on the activation function), a steep activation function can be used (e.g. 1.0).
        +   
        +   The default activation steepness is 0.5.
        +   
        +   Returns:
        +    The activation steepness for the neuron or -1 if the neuron is not defined in the neural network.
        +   
        +   See also:
        +   	<fann_set_activation_steepness_layer>, <fann_set_activation_steepness_hidden>,
        +   	<fann_set_activation_steepness_output>, <fann_set_activation_function>,
        +    <fann_set_activation_steepness>
        +
        +   This function appears in FANN >= 2.1.0
        + */ 
        +FANN_EXTERNAL fann_type FANN_API fann_get_activation_steepness(struct fann *ann,
        +																int layer,
        +																int neuron);
        +
        +/* Function: fann_set_activation_steepness
        +
        +   Set the activation steepness for neuron number *neuron* in layer number *layer*, 
        +   counting the input layer as layer 0. 
        +   
        +   It is not possible to set activation steepness for the neurons in the input layer.
        +   
        +   The steepness of an activation function says something about how fast the activation function 
        +   goes from the minimum to the maximum. A high value for the activation function will also
        +   give a more aggressive training.
        +   
        +   When training neural networks where the output values should be at the extremes (usually 0 and 1, 
        +   depending on the activation function), a steep activation function can be used (e.g. 1.0).
        +   
        +   The default activation steepness is 0.5.
        +   
        +   See also:
        +   	<fann_set_activation_steepness_layer>, <fann_set_activation_steepness_hidden>,
        +   	<fann_set_activation_steepness_output>, <fann_set_activation_function>,
        +    <fann_get_activation_steepness>
        +
        +   This function appears in FANN >= 2.0.0.
        + */ 
        +FANN_EXTERNAL void FANN_API fann_set_activation_steepness(struct fann *ann,
        +																fann_type steepness,
        +																int layer,
        +																int neuron);
        +
        +/* Function: fann_set_activation_steepness_layer
        +
        +   Set the activation steepness for all of the neurons in layer number *layer*, 
        +   counting the input layer as layer 0. 
        +   
        +   It is not possible to set activation steepness for the neurons in the input layer.
        +   
        +   See also:
        +   	<fann_set_activation_steepness>, <fann_set_activation_steepness_hidden>,
        +   	<fann_set_activation_steepness_output>, <fann_set_activation_function_layer>
        +
        +   This function appears in FANN >= 2.0.0.
        + */ 
        +FANN_EXTERNAL void FANN_API fann_set_activation_steepness_layer(struct fann *ann,
        +																fann_type steepness,
        +																int layer);
        +
        +/* Function: fann_set_activation_steepness_hidden
        +
        +   Set the steepness of the activation steepness in all of the hidden layers.
        +
        +   See also:
        +   	<fann_set_activation_steepness>, <fann_set_activation_steepness_layer>,
        +   	<fann_set_activation_steepness_output>, <fann_set_activation_function_hidden>
        +
        +   This function appears in FANN >= 1.2.0.
        + */ 
        +FANN_EXTERNAL void FANN_API fann_set_activation_steepness_hidden(struct fann *ann,
        +																 fann_type steepness);
        +
        +
        +/* Function: fann_set_activation_steepness_output
        +
        +   Set the steepness of the activation steepness in the output layer.
        +
        +   See also:
        +   	<fann_set_activation_steepness>, <fann_set_activation_steepness_layer>,
        +   	<fann_set_activation_steepness_hidden>, <fann_set_activation_function_output>
        +
        +   This function appears in FANN >= 1.2.0.
        + */ 
        +FANN_EXTERNAL void FANN_API fann_set_activation_steepness_output(struct fann *ann,
        +																 fann_type steepness);
        +
        +
        +/* Function: fann_get_train_error_function
        +
        +   Returns the error function used during training.
        +
        +   The error functions are described further in <fann_errorfunc_enum>
        +   
        +   The default error function is FANN_ERRORFUNC_TANH
        +   
        +   See also:
        +   	<fann_set_train_error_function>
        +      
        +   This function appears in FANN >= 1.2.0.
        +  */ 
        +FANN_EXTERNAL enum fann_errorfunc_enum FANN_API fann_get_train_error_function(struct fann *ann);
        +
        +
        +/* Function: fann_set_train_error_function
        +
        +   Set the error function used during training.
        +   
        +   The error functions are described further in <fann_errorfunc_enum>
        +   
        +   See also:
        +   	<fann_get_train_error_function>
        +      
        +   This function appears in FANN >= 1.2.0.
        + */ 
        +FANN_EXTERNAL void FANN_API fann_set_train_error_function(struct fann *ann,
        +														  enum fann_errorfunc_enum 
        +														  train_error_function);
        +
        +
        +/* Function: fann_get_train_stop_function
        +
        +   Returns the the stop function used during training.
        +   
        +   The stop function is described further in <fann_stopfunc_enum>
        +   
        +   The default stop function is FANN_STOPFUNC_MSE
        +   
        +   See also:
        +   	<fann_get_train_stop_function>, <fann_get_bit_fail_limit>
        +      
        +   This function appears in FANN >= 2.0.0.
        + */ 
        +FANN_EXTERNAL enum fann_stopfunc_enum FANN_API fann_get_train_stop_function(struct fann *ann);
        +
        +
        +/* Function: fann_set_train_stop_function
        +
        +   Set the stop function used during training.
        +
        +   Returns the the stop function used during training.
        +   
        +   The stop function is described further in <fann_stopfunc_enum>
        +   
        +   See also:
        +   	<fann_get_train_stop_function>
        +      
        +   This function appears in FANN >= 2.0.0.
        + */ 
        +FANN_EXTERNAL void FANN_API fann_set_train_stop_function(struct fann *ann,
        +														 enum fann_stopfunc_enum train_stop_function);
        +
        +
        +/* Function: fann_get_bit_fail_limit
        +
        +   Returns the bit fail limit used during training.
        +   
        +   The bit fail limit is used during training where the <fann_stopfunc_enum> is set to FANN_STOPFUNC_BIT.
        +
        +   The limit is the maximum accepted difference between the desired output and the actual output during
        +   training. Each output that diverges more than this limit is counted as an error bit.
        +   This difference is divided by two when dealing with symmetric activation functions,
        +   so that symmetric and not symmetric activation functions can use the same limit.
        +   
        +   The default bit fail limit is 0.35.
        +   
        +   See also:
        +   	<fann_set_bit_fail_limit>
        +   
        +   This function appears in FANN >= 2.0.0.
        + */ 
        +FANN_EXTERNAL fann_type FANN_API fann_get_bit_fail_limit(struct fann *ann);
        +
        +/* Function: fann_set_bit_fail_limit
        +
        +   Set the bit fail limit used during training.
        +  
        +   See also:
        +   	<fann_get_bit_fail_limit>
        +   
        +   This function appears in FANN >= 2.0.0.
        + */ 
        +FANN_EXTERNAL void FANN_API fann_set_bit_fail_limit(struct fann *ann, fann_type bit_fail_limit);
        +
        +/* Function: fann_set_callback
        +   
        +   Sets the callback function for use during training.
        + 	
        +   See <fann_callback_type> for more information about the callback function.
        +   
        +   The default callback function simply prints out some status information.
        +
        +   This function appears in FANN >= 2.0.0.
        + */
        +FANN_EXTERNAL void FANN_API fann_set_callback(struct fann *ann, fann_callback_type callback);
        +
        +/* Function: fann_get_quickprop_decay
        +
        +   The decay is a small negative valued number which is the factor that the weights 
        +   should become smaller in each iteration during quickprop training. This is used 
        +   to make sure that the weights do not become too high during training.
        +   
        +   The default decay is -0.0001.
        +   
        +   See also:
        +   	<fann_set_quickprop_decay>
        +
        +   This function appears in FANN >= 1.2.0.
        + */
        +FANN_EXTERNAL float FANN_API fann_get_quickprop_decay(struct fann *ann);
        +
        +
        +/* Function: fann_set_quickprop_decay
        +   
        +   Sets the quickprop decay factor.
        +   
        +   See also:
        +   	<fann_get_quickprop_decay>
        +
        +   This function appears in FANN >= 1.2.0.
        +*/ 
        +FANN_EXTERNAL void FANN_API fann_set_quickprop_decay(struct fann *ann, float quickprop_decay);
        +
        +
        +/* Function: fann_get_quickprop_mu
        +
        +   The mu factor is used to increase and decrease the step-size during quickprop training. 
        +   The mu factor should always be above 1, since it would otherwise decrease the step-size 
        +   when it was supposed to increase it.
        +   
        +   The default mu factor is 1.75. 
        +   
        +   See also:
        +   	<fann_set_quickprop_mu>
        +
        +   This function appears in FANN >= 1.2.0.
        +*/ 
        +FANN_EXTERNAL float FANN_API fann_get_quickprop_mu(struct fann *ann);
        +
        +
        +/* Function: fann_set_quickprop_mu
        +
        +    Sets the quickprop mu factor.
        +   
        +   See also:
        +   	<fann_get_quickprop_mu>
        +
        +   This function appears in FANN >= 1.2.0.
        +*/ 
        +FANN_EXTERNAL void FANN_API fann_set_quickprop_mu(struct fann *ann, float quickprop_mu);
        +
        +
        +/* Function: fann_get_rprop_increase_factor
        +
        +   The increase factor is a value larger than 1, which is used to 
        +   increase the step-size during RPROP training.
        +
        +   The default increase factor is 1.2.
        +   
        +   See also:
        +   	<fann_set_rprop_increase_factor>
        +
        +   This function appears in FANN >= 1.2.0.
        +*/ 
        +FANN_EXTERNAL float FANN_API fann_get_rprop_increase_factor(struct fann *ann);
        +
        +
        +/* Function: fann_set_rprop_increase_factor
        +
        +   The increase factor used during RPROP training.
        +
        +   See also:
        +   	<fann_get_rprop_increase_factor>
        +
        +   This function appears in FANN >= 1.2.0.
        +*/ 
        +FANN_EXTERNAL void FANN_API fann_set_rprop_increase_factor(struct fann *ann,
        +														   float rprop_increase_factor);
        +
        +
        +/* Function: fann_get_rprop_decrease_factor
        +
        +   The decrease factor is a value smaller than 1, which is used to decrease the step-size during RPROP training.
        +
        +   The default decrease factor is 0.5.
        +
        +   See also:
        +    <fann_set_rprop_decrease_factor>
        +
        +   This function appears in FANN >= 1.2.0.
        +*/ 
        +FANN_EXTERNAL float FANN_API fann_get_rprop_decrease_factor(struct fann *ann);
        +
        +
        +/* Function: fann_set_rprop_decrease_factor
        +
        +   The decrease factor is a value smaller than 1, which is used to decrease the step-size during RPROP training.
        +
        +   See also:
        +    <fann_get_rprop_decrease_factor>
        +
        +   This function appears in FANN >= 1.2.0.
        +*/
        +FANN_EXTERNAL void FANN_API fann_set_rprop_decrease_factor(struct fann *ann,
        +														   float rprop_decrease_factor);
        +
        +
        +/* Function: fann_get_rprop_delta_min
        +
        +   The minimum step-size is a small positive number determining how small the minimum step-size may be.
        +
        +   The default value delta min is 0.0.
        +
        +   See also:
        +   	<fann_set_rprop_delta_min>
        +   	
        +   This function appears in FANN >= 1.2.0.
        +*/ 
        +FANN_EXTERNAL float FANN_API fann_get_rprop_delta_min(struct fann *ann);
        +
        +
        +/* Function: fann_set_rprop_delta_min
        +
        +   The minimum step-size is a small positive number determining how small the minimum step-size may be.
        +
        +   See also:
        +   	<fann_get_rprop_delta_min>
        +   	
        +   This function appears in FANN >= 1.2.0.
        +*/ 
        +FANN_EXTERNAL void FANN_API fann_set_rprop_delta_min(struct fann *ann, float rprop_delta_min);
        +
        +
        +/* Function: fann_get_rprop_delta_max
        +
        +   The maximum step-size is a positive number determining how large the maximum step-size may be.
        +
        +   The default delta max is 50.0.
        +
        +   See also:
        +   	<fann_set_rprop_delta_max>, <fann_get_rprop_delta_min>
        +
        +   This function appears in FANN >= 1.2.0.
        +*/ 
        +FANN_EXTERNAL float FANN_API fann_get_rprop_delta_max(struct fann *ann);
        +
        +
        +/* Function: fann_set_rprop_delta_max
        +
        +   The maximum step-size is a positive number determining how large the maximum step-size may be.
        +
        +   See also:
        +   	<fann_get_rprop_delta_max>, <fann_get_rprop_delta_min>
        +
        +   This function appears in FANN >= 1.2.0.
        +*/
        +FANN_EXTERNAL void FANN_API fann_set_rprop_delta_max(struct fann *ann, float rprop_delta_max);
        +
        +/* Function: fann_get_rprop_delta_zero
        +
        +   The initial step-size is a positive number determining the initial step size.
        +
        +   The default delta zero is 0.1.
        +
        +   See also:
        +   	<fann_set_rprop_delta_zero>, <fann_get_rprop_delta_min>, <fann_get_rprop_delta_max>
        +
        +   This function appears in FANN >= 2.1.0.
        +*/ 
        +FANN_EXTERNAL float FANN_API fann_get_rprop_delta_zero(struct fann *ann);
        +
        +
        +/* Function: fann_set_rprop_delta_zero
        +
        +   The initial step-size is a positive number determining the initial step size.
        +
        +   See also:
        +   	<fann_get_rprop_delta_zero>, <fann_get_rprop_delta_zero>
        +
        +   This function appears in FANN >= 2.1.0.
        +*/
        +FANN_EXTERNAL void FANN_API fann_set_rprop_delta_zero(struct fann *ann, float rprop_delta_max);
        +
        +/* Method: fann_get_sarprop_weight_decay_shift
        +
        +   The sarprop weight decay shift.
        +
        +   The default delta max is -6.644.
        +
        +   See also:
        +   <fann fann_set_sarprop_weight_decay_shift>
        +
        +   This function appears in FANN >= 2.1.0.
        +   */ 
        +FANN_EXTERNAL float FANN_API fann_get_sarprop_weight_decay_shift(struct fann *ann);
        +
        +/* Method: fann_set_sarprop_weight_decay_shift
        +
        +   Set the sarprop weight decay shift.
        +
        +   This function appears in FANN >= 2.1.0.
        +
        +   See also:
        +   <fann_set_sarprop_weight_decay_shift>
        +   */ 
        +FANN_EXTERNAL void FANN_API fann_set_sarprop_weight_decay_shift(struct fann *ann, float sarprop_weight_decay_shift);
        +
        +/* Method: fann_get_sarprop_step_error_threshold_factor
        +
        +   The sarprop step error threshold factor.
        +
        +   The default delta max is 0.1.
        +
        +   See also:
        +   <fann fann_get_sarprop_step_error_threshold_factor>
        +
        +   This function appears in FANN >= 2.1.0.
        +   */ 
        +FANN_EXTERNAL float FANN_API fann_get_sarprop_step_error_threshold_factor(struct fann *ann);
        +
        +/* Method: fann_set_sarprop_step_error_threshold_factor
        +
        +   Set the sarprop step error threshold factor.
        +
        +   This function appears in FANN >= 2.1.0.
        +
        +   See also:
        +   <fann_get_sarprop_step_error_threshold_factor>
        +   */ 
        +FANN_EXTERNAL void FANN_API fann_set_sarprop_step_error_threshold_factor(struct fann *ann, float sarprop_step_error_threshold_factor);
        +
        +/* Method: fann_get_sarprop_step_error_shift
        +
        +   The get sarprop step error shift.
        +
        +   The default delta max is 1.385.
        +
        +   See also:
        +   <fann_set_sarprop_step_error_shift>
        +
        +   This function appears in FANN >= 2.1.0.
        +   */ 
        +FANN_EXTERNAL float FANN_API fann_get_sarprop_step_error_shift(struct fann *ann);
        +
        +/* Method: fann_set_sarprop_step_error_shift
        +
        +   Set the sarprop step error shift.
        +
        +   This function appears in FANN >= 2.1.0.
        +
        +   See also:
        +   <fann_get_sarprop_step_error_shift>
        +   */ 
        +FANN_EXTERNAL void FANN_API fann_set_sarprop_step_error_shift(struct fann *ann, float sarprop_step_error_shift);
        +
        +/* Method: fann_get_sarprop_temperature
        +
        +   The sarprop weight decay shift.
        +
        +   The default delta max is 0.015.
        +
        +   See also:
        +   <fann_set_sarprop_temperature>
        +
        +   This function appears in FANN >= 2.1.0.
        +   */ 
        +FANN_EXTERNAL float FANN_API fann_get_sarprop_temperature(struct fann *ann);
        +
        +/* Method: fann_set_sarprop_temperature
        +
        +   Set the sarprop_temperature.
        +
        +   This function appears in FANN >= 2.1.0.
        +
        +   See also:
        +   <fann_get_sarprop_temperature>
        +   */ 
        +FANN_EXTERNAL void FANN_API fann_set_sarprop_temperature(struct fann *ann, float sarprop_temperature);
        +
        +#endif
        diff --git a/lib/ann/fann/src/include/fann_training_data_cpp.h b/lib/ann/fann/src/include/fann_training_data_cpp.h
        new file mode 100644
        index 0000000..b85d055
        --- /dev/null
        +++ b/lib/ann/fann/src/include/fann_training_data_cpp.h
        @@ -0,0 +1,561 @@
        +/*
        +Fast Artificial Neural Network Library (fann)
        +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com)
        +
        +This library is free software; you can redistribute it and/or
        +modify it under the terms of the GNU Lesser General Public
        +License as published by the Free Software Foundation; either
        +version 2.1 of the License, or (at your option) any later version.
        +
        +This library is distributed in the hope that it will be useful,
        +but WITHOUT ANY WARRANTY; without even the implied warranty of
        +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
        +Lesser General Public License for more details.
        +
        +You should have received a copy of the GNU Lesser General Public
        +License along with this library; if not, write to the Free Software
        +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        +*/
        +
        +#ifndef FANN_FANN_TRAINING_DATA_CPP_H
        +#define FANN_FANN_TRAINING_DATA_CPP_H
        +
        +#include <stdarg.h>
        +#include <string>
        +
        +namespace FANN {
        +
        +    /* Section: FANN C++ Training Data
        +    */
        +
        +    /* Class: training_data
        +
        +    <training_data> is used to create and manipulate training data used by the <neural_net>
        +
        +    Encapsulation of a training data set <struct fann_train_data> and
        +    associated C API functions.
        +    */
        +    class training_data {
        +    public:
        +        /* Constructor: training_data
        +
        +            Default constructor creates an empty training data.
        +            Use <read_train_from_file>, <set_train_data> or <create_train_from_callback> to initialize.
        +        */
        +        training_data() : train_data(NULL) {
        +        }
        +
        +        /* Constructor: training_data
        +
        +            Copy constructor constructs a copy of the training data.
        +            Corresponds to the C API <fann_duplicate_train_data> function.
        +        */
        +        training_data(const training_data &data) {
        +            train_data = fann_duplicate_train_data(data.train_data);
        +        }
        +
        +        /* Destructor: ~training_data
        +
        +            Provides automatic cleanup of data.
        +            Define USE_VIRTUAL_DESTRUCTOR if you need the destructor to be virtual.
        +
        +            See also:
        +                <destroy>
        +        */
        +#ifdef USE_VIRTUAL_DESTRUCTOR
        +        virtual
        +#endif
        +
        +        ~training_data() {
        +            destroy_train();
        +        }
        +
        +        /* Method: destroy
        +
        +            Destructs the training data. Called automatically by the destructor.
        +
        +            See also:
        +                <~training_data>
        +        */
        +        void destroy_train() {
        +            if (train_data != NULL) {
        +                fann_destroy_train(train_data);
        +                train_data = NULL;
        +            }
        +        }
        +
        +        /* Method: read_train_from_file
        +           Reads a file that stores training data.
        +
        +           The file must be formatted like:
        +           >num_train_data num_input num_output
        +           >inputdata seperated by space
        +           >outputdata seperated by space
        +           >
        +           >.
        +           >.
        +           >.
        +           >
        +           >inputdata seperated by space
        +           >outputdata seperated by space
        +
        +           See also:
        +   	        <neural_net::train_on_data>, <save_train>, <fann_read_train_from_file>
        +
        +            This function appears in FANN >= 1.0.0
        +        */
        +        bool read_train_from_file(const std::string &filename) {
        +            destroy_train();
        +            train_data = fann_read_train_from_file(filename.c_str());
        +            return (train_data != NULL);
        +        }
        +
        +        /* Method: save_train
        +
        +           Save the training structure to a file, with the format as specified in <read_train_from_file>
        +
        +           Return:
        +           The function returns true on success and false on failure.
        +
        +           See also:
        +   	        <read_train_from_file>, <save_train_to_fixed>, <fann_save_train>
        +
        +           This function appears in FANN >= 1.0.0.
        +         */
        +        bool save_train(const std::string &filename) {
        +            if (train_data == NULL) {
        +                return false;
        +            }
        +            if (fann_save_train(train_data, filename.c_str()) == -1) {
        +                return false;
        +            }
        +            return true;
        +        }
        +
        +        /* Method: save_train_to_fixed
        +
        +           Saves the training structure to a fixed point data file.
        +
        +           This function is very useful for testing the quality of a fixed point network.
        +
        +           Return:
        +           The function returns true on success and false on failure.
        +
        +           See also:
        +   	        <save_train>, <fann_save_train_to_fixed>
        +
        +           This function appears in FANN >= 1.0.0.
        +         */
        +        bool save_train_to_fixed(const std::string &filename, unsigned int decimal_point) {
        +            if (train_data == NULL) {
        +                return false;
        +            }
        +            if (fann_save_train_to_fixed(train_data, filename.c_str(), decimal_point) == -1) {
        +                return false;
        +            }
        +            return true;
        +        }
        +
        +        /* Method: shuffle_train_data
        +
        +           Shuffles training data, randomizing the order.
        +           This is recommended for incremental training, while it have no influence during batch training.
        +
        +           This function appears in FANN >= 1.1.0.
        +         */
        +        void shuffle_train_data() {
        +            if (train_data != NULL) {
        +                fann_shuffle_train_data(train_data);
        +            }
        +        }
        +
        +        /* Method: merge_train_data
        +
        +           Merges the data into the data contained in the <training_data>.
        +
        +           This function appears in FANN >= 1.1.0.
        +         */
        +        void merge_train_data(const training_data &data) {
        +            fann_train_data *new_data = fann_merge_train_data(train_data, data.train_data);
        +            if (new_data != NULL) {
        +                destroy_train();
        +                train_data = new_data;
        +            }
        +        }
        +
        +        /* Method: length_train_data
        +
        +           Returns the number of training patterns in the <training_data>.
        +
        +           See also:
        +           <num_input_train_data>, <num_output_train_data>, <fann_length_train_data>
        +
        +           This function appears in FANN >= 2.0.0.
        +         */
        +        unsigned int length_train_data() {
        +            if (train_data == NULL) {
        +                return 0;
        +            }
        +            else {
        +                return fann_length_train_data(train_data);
        +            }
        +        }
        +
        +        /* Method: num_input_train_data
        +
        +           Returns the number of inputs in each of the training patterns in the <training_data>.
        +
        +           See also:
        +           <num_output_train_data>, <length_train_data>, <fann_num_input_train_data>
        +
        +           This function appears in FANN >= 2.0.0.
        +         */
        +        unsigned int num_input_train_data() {
        +            if (train_data == NULL) {
        +                return 0;
        +            }
        +            else {
        +                return fann_num_input_train_data(train_data);
        +            }
        +        }
        +
        +        /* Method: num_output_train_data
        +
        +           Returns the number of outputs in each of the training patterns in the <struct fann_train_data>.
        +
        +           See also:
        +           <num_input_train_data>, <length_train_data>, <fann_num_output_train_data>
        +
        +           This function appears in FANN >= 2.0.0.
        +         */
        +        unsigned int num_output_train_data() {
        +            if (train_data == NULL) {
        +                return 0;
        +            }
        +            else {
        +                return fann_num_output_train_data(train_data);
        +            }
        +        }
        +
        +        /* Method: get_input
        +            Grant access to the encapsulated data since many situations
        +            and applications creates the data from sources other than files
        +            or uses the training data for testing and related functions
        +
        +            Returns:
        +                A pointer to the array of input training data
        +
        +            See also:
        +                <get_output>, <set_train_data>
        +
        +           This function appears in FANN >= 2.0.0.
        +        */
        +        fann_type **get_input() {
        +            if (train_data == NULL) {
        +                return NULL;
        +            }
        +            else {
        +                return train_data->input;
        +            }
        +        }
        +
        +        /* Method: get_output
        +
        +            Grant access to the encapsulated data since many situations
        +            and applications creates the data from sources other than files
        +            or uses the training data for testing and related functions
        +
        +            Returns:
        +                A pointer to the array of output training data
        +
        +            See also:
        +                <get_input>, <set_train_data>
        +
        +           This function appears in FANN >= 2.0.0.
        +        */
        +        fann_type **get_output() {
        +            if (train_data == NULL) {
        +                return NULL;
        +            }
        +            else {
        +                return train_data->output;
        +            }
        +        }
        +
        +        /* Method: get_train_input
        +            Gets the training input data at the given position
        +
        +            Returns:
        +                A pointer to the array of input training data at the given position
        +
        +            See also:
        +                <get_train_output>, <set_train_data>
        +
        +           This function appears in FANN >= 2.3.0.
        +        */
        +        fann_type *get_train_input(unsigned int position) {
        +            return fann_get_train_input(train_data, position);
        +        }
        +
        +        /* Method: get_train_output
        +            Gets the training output data at the given position
        +
        +            Returns:
        +                A pointer to the array of output training data at the given position
        +
        +            See also:
        +                <get_train_input>
        +
        +           This function appears in FANN >= 2.3.0.
        +        */
        +        fann_type *get_train_output(unsigned int position) {
        +            return fann_get_train_output(train_data, position);
        +        }
        +
        +        /* Method: set_train_data
        +
        +            Set the training data to the input and output data provided.
        +
        +            A copy of the data is made so there are no restrictions on the
        +            allocation of the input/output data and the caller is responsible
        +            for the deallocation of the data pointed to by input and output.
        +
        +           Parameters:
        +             num_data      - The number of training data
        +             num_input     - The number of inputs per training data
        +             num_output    - The number of ouputs per training data
        +             input      - The set of inputs (a pointer to an array of pointers to arrays of floating point data)
        +             output     - The set of desired outputs (a pointer to an array of pointers to arrays of floating point data)
        +
        +            See also:
        +                <get_input>, <get_output>
        +        */
        +        void set_train_data(unsigned int num_data,
        +                            unsigned int num_input, fann_type **input,
        +                            unsigned int num_output, fann_type **output) {
        +            set_train_data(fann_create_train_pointer_array(num_data, num_input, input, num_output, output));
        +        }
        +
        +        /* Method: set_train_data
        +
        +            Set the training data to the input and output data provided.
        +
        +            A copy of the data is made so there are no restrictions on the
        +            allocation of the input/output data and the caller is responsible
        +            for the deallocation of the data pointed to by input and output.
        +
        +           Parameters:
        +             num_data      - The number of training data
        +             num_input     - The number of inputs per training data
        +             num_output    - The number of ouputs per training data
        +             input      - The set of inputs (an array with the dimension num_data*num_input)
        +             output     - The set of desired outputs (an array with the dimension num_data*num_output)
        +
        +            See also:
        +                <get_input>, <get_output>
        +        */
        +        void set_train_data(unsigned int num_data,
        +                            unsigned int num_input, fann_type *input,
        +                            unsigned int num_output, fann_type *output) {
        +            set_train_data(fann_create_train_array(num_data, num_input, input, num_output, output));
        +        }
        +
        +    private:
        +        /* Set the training data to the struct fann_training_data pointer.
        +            The struct has to be allocated with malloc to be compatible
        +            with fann_destroy. */
        +        void set_train_data(struct fann_train_data *data) {
        +            destroy_train();
        +            train_data = data;
        +        }
        +
        +    public:
        +        /*********************************************************************/
        +
        +        /* Method: create_train_from_callback
        +           Creates the training data struct from a user supplied function.
        +           As the training data are numerable (data 1, data 2...), the user must write
        +           a function that receives the number of the training data set (input,output)
        +           and returns the set.
        +
        +           Parameters:
        +             num_data      - The number of training data
        +             num_input     - The number of inputs per training data
        +             num_output    - The number of ouputs per training data
        +             user_function - The user suplied function
        +
        +           Parameters for the user function:
        +             num        - The number of the training data set
        +             num_input  - The number of inputs per training data
        +             num_output - The number of ouputs per training data
        +             input      - The set of inputs
        +             output     - The set of desired outputs
        +
        +           See also:
        +             <training_data::read_train_from_file>, <neural_net::train_on_data>,
        +             <fann_create_train_from_callback>
        +
        +            This function appears in FANN >= 2.1.0
        +        */
        +        void create_train_from_callback(unsigned int num_data,
        +                                        unsigned int num_input,
        +                                        unsigned int num_output,
        +                                        void (FANN_API *user_function)(unsigned int,
        +                                                                       unsigned int,
        +                                                                       unsigned int,
        +                                                                       fann_type *,
        +                                                                       fann_type *)) {
        +            destroy_train();
        +            train_data = fann_create_train_from_callback(num_data, num_input, num_output, user_function);
        +        }
        +
        +#ifndef FIXEDFANN
        +        /* Function: get_min_input
        +
        +           Get the minimum value of all in the input data
        +
        +           This function appears in FANN >= 2.3.0
        +        */
        +        fann_type get_min_input() {
        +            return fann_get_min_train_input(train_data);
        +        }
        +
        +        /* Function: get_max_input
        +
        +           Get the maximum value of all in the input data
        +
        +           This function appears in FANN >= 2.3.0
        +        */
        +        fann_type get_max_input() {
        +            return fann_get_max_train_input(train_data);
        +        }
        +
        +        /* Function: get_min_output
        +
        +           Get the minimum value of all in the output data
        +
        +           This function appears in FANN >= 2.3.0
        +        */
        +        fann_type get_min_output() {
        +            return fann_get_min_train_output(train_data);
        +        }
        +
        +        /* Function: get_max_output
        +
        +           Get the maximum value of all in the output data
        +
        +           This function appears in FANN >= 2.3.0
        +        */
        +        fann_type get_max_output() {
        +            return fann_get_max_train_output(train_data);
        +        }
        +#endif /* FIXEDFANN */
        +
        +        /* Method: scale_input_train_data
        +
        +           Scales the inputs in the training data to the specified range.
        +
        +           A simplified scaling method, which is mostly useful in examples where it's known that all the
        +           data will be in one range and it should be transformed to another range.
        +
        +           It is not recommended to use this on subsets of data as the complete input range might not be
        +           available in that subset.
        +
        +           For more powerful scaling, please consider <neural_net::scale_train>
        +
        +           See also:
        +   	        <scale_output_train_data>, <scale_train_data>, <fann_scale_input_train_data>
        +
        +           This function appears in FANN >= 2.0.0.
        +         */
        +        void scale_input_train_data(fann_type new_min, fann_type new_max) {
        +            if (train_data != NULL) {
        +                fann_scale_input_train_data(train_data, new_min, new_max);
        +            }
        +        }
        +
        +        /* Method: scale_output_train_data
        +
        +           Scales the outputs in the training data to the specified range.
        +
        +           A simplified scaling method, which is mostly useful in examples where it's known that all the
        +           data will be in one range and it should be transformed to another range.
        +
        +           It is not recommended to use this on subsets of data as the complete input range might not be
        +           available in that subset.
        +
        +           For more powerful scaling, please consider <neural_net::scale_train>
        +
        +           See also:
        +   	        <scale_input_train_data>, <scale_train_data>, <fann_scale_output_train_data>
        +
        +           This function appears in FANN >= 2.0.0.
        +         */
        +        void scale_output_train_data(fann_type new_min, fann_type new_max) {
        +            if (train_data != NULL) {
        +                fann_scale_output_train_data(train_data, new_min, new_max);
        +            }
        +        }
        +
        +        /* Method: scale_train_data
        +
        +           Scales the inputs and outputs in the training data to the specified range.
        +
        +           A simplified scaling method, which is mostly useful in examples where it's known that all the
        +           data will be in one range and it should be transformed to another range.
        +
        +           It is not recommended to use this on subsets of data as the complete input range might not be
        +           available in that subset.
        +
        +           For more powerful scaling, please consider <neural_net::scale_train>
        +
        +           See also:
        +   	        <scale_output_train_data>, <scale_input_train_data>, <fann_scale_train_data>
        +
        +           This function appears in FANN >= 2.0.0.
        +         */
        +        void scale_train_data(fann_type new_min, fann_type new_max) {
        +            if (train_data != NULL) {
        +                fann_scale_train_data(train_data, new_min, new_max);
        +            }
        +        }
        +
        +        /* Method: subset_train_data
        +
        +           Changes the training data to a subset, starting at position *pos*
        +           and *length* elements forward. Use the copy constructor to work
        +           on a new copy of the training data.
        +
        +            >FANN::training_data full_data_set;
        +            >full_data_set.read_train_from_file("somefile.train");
        +            >FANN::training_data *small_data_set = new FANN::training_data(full_data_set);
        +            >small_data_set->subset_train_data(0, 2); // Only use first two
        +            >// Use small_data_set ...
        +            >delete small_data_set;
        +
        +           See also:
        +   	        <fann_subset_train_data>
        +
        +           This function appears in FANN >= 2.0.0.
        +         */
        +        void subset_train_data(unsigned int pos, unsigned int length) {
        +            if (train_data != NULL) {
        +                struct fann_train_data *temp = fann_subset_train_data(train_data, pos, length);
        +                destroy_train();
        +                train_data = temp;
        +            }
        +        }
        +
        +        /*********************************************************************/
        +
        +    protected:
        +        /* The neural_net class has direct access to the training data */
        +        friend class neural_net;
        +
        +        /* Pointer to the encapsulated training data */
        +        struct fann_train_data *train_data;
        +    };
        +
        +}
        +
        +#endif //FANN_FANN_TRAINING_DATA_CPP_H
        diff --git a/lib/ann/fann/src/include/fixedfann.h b/lib/ann/fann/src/include/fixedfann.h
        new file mode 100644
        index 0000000..df3bcd4
        --- /dev/null
        +++ b/lib/ann/fann/src/include/fixedfann.h
        @@ -0,0 +1,33 @@
        +/*
        +Fast Artificial Neural Network Library (fann)
        +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com)
        +
        +This library is free software; you can redistribute it and/or
        +modify it under the terms of the GNU Lesser General Public
        +License as published by the Free Software Foundation; either
        +version 2.1 of the License, or (at your option) any later version.
        +
        +This library is distributed in the hope that it will be useful,
        +but WITHOUT ANY WARRANTY; without even the implied warranty of
        +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
        +Lesser General Public License for more details.
        +
        +You should have received a copy of the GNU Lesser General Public
        +License along with this library; if not, write to the Free Software
        +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        +*/
        +
        +#ifndef __fixedfann_h__
        +#define __fixedfann_h__
        +
        +typedef int fann_type;
        +
        +#undef FIXEDFANN
        +#define FIXEDFANN
        +#define FANNPRINTF "%d"
        +#define FANNSCANF "%d"
        +
        +#define FANN_INCLUDE
        +#include "fann.h"
        +
        +#endif
        diff --git a/lib/ann/fann/src/include/floatfann.h b/lib/ann/fann/src/include/floatfann.h
        new file mode 100644
        index 0000000..ab876ca
        --- /dev/null
        +++ b/lib/ann/fann/src/include/floatfann.h
        @@ -0,0 +1,33 @@
        +/*
        +Fast Artificial Neural Network Library (fann)
        +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com)
        +
        +This library is free software; you can redistribute it and/or
        +modify it under the terms of the GNU Lesser General Public
        +License as published by the Free Software Foundation; either
        +version 2.1 of the License, or (at your option) any later version.
        +
        +This library is distributed in the hope that it will be useful,
        +but WITHOUT ANY WARRANTY; without even the implied warranty of
        +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
        +Lesser General Public License for more details.
        +
        +You should have received a copy of the GNU Lesser General Public
        +License along with this library; if not, write to the Free Software
        +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        +*/
        +
        +#ifndef __floatfann_h__
        +#define __floatfann_h__
        +
        +typedef float fann_type;
        +
        +#undef FLOATFANN
        +#define FLOATFANN
        +#define FANNPRINTF "%.20e"
        +#define FANNSCANF "%f"
        +
        +#define FANN_INCLUDE
        +#include "fann.h"
        +
        +#endif
        diff --git a/lib/ann/fann/src/include/parallel_fann.h b/lib/ann/fann/src/include/parallel_fann.h
        new file mode 100644
        index 0000000..07f381b
        --- /dev/null
        +++ b/lib/ann/fann/src/include/parallel_fann.h
        @@ -0,0 +1,45 @@
        +/*
        + * parallel_FANN.h
        + *
        + *     Author: Alessandro Pietro Bardelli
        + */
        +#ifndef DISABLE_PARALLEL_FANN
        +#ifndef PARALLEL_FANN_H_
        +#define PARALLEL_FANN_H_
        +
        +#include "fann.h"
        +
        +#ifdef __cplusplus
        +extern "C"
        +{
        +	
        +#ifndef __cplusplus
        +} /* to fool automatic indention engines */ 
        +#endif
        +#endif	/* __cplusplus */
        +
        +#ifndef FIXEDFANN
        +FANN_EXTERNAL float FANN_API fann_train_epoch_batch_parallel(struct fann *ann, struct fann_train_data *data, const unsigned int threadnumb);
        +
        +FANN_EXTERNAL float FANN_API fann_train_epoch_irpropm_parallel(struct fann *ann, struct fann_train_data *data, const unsigned int threadnumb);
        +
        +FANN_EXTERNAL float FANN_API fann_train_epoch_quickprop_parallel(struct fann *ann, struct fann_train_data *data, const unsigned int threadnumb);
        +
        +FANN_EXTERNAL float FANN_API fann_train_epoch_sarprop_parallel(struct fann *ann, struct fann_train_data *data, const unsigned int threadnumb);
        +
        +FANN_EXTERNAL float FANN_API fann_train_epoch_incremental_mod(struct fann *ann, struct fann_train_data *data);
        +
        +FANN_EXTERNAL float FANN_API fann_test_data_parallel(struct fann *ann, struct fann_train_data *data, const unsigned int threadnumb);
        +#endif /* FIXEDFANN */
        +
        +#ifdef __cplusplus
        +#ifndef __cplusplus
        +/* to fool automatic indention engines */ 
        +{
        +	
        +#endif
        +} 
        +#endif	/* __cplusplus */
        +
        +#endif /* PARALLEL_FANN_H_ */
        +#endif /* DISABLE_PARALLEL_FANN */
        diff --git a/lib/ann/fann/src/include/parallel_fann.hpp b/lib/ann/fann/src/include/parallel_fann.hpp
        new file mode 100644
        index 0000000..c95aebd
        --- /dev/null
        +++ b/lib/ann/fann/src/include/parallel_fann.hpp
        @@ -0,0 +1,39 @@
        +/*
        + * parallel_FANN.hpp
        + *     Author: Alessandro Pietro Bardelli
        + */
        +#ifndef DISABLE_PARALLEL_FANN
        +#ifndef PARALLEL_FANN_HPP_
        +#define PARALLEL_FANN_HPP_
        +#include <omp.h>
        +#include <vector>
        +#include "fann.h"
        +
        +#ifndef FIXEDFANN
        +namespace parallel_fann {
        +float train_epoch_batch_parallel(struct fann *ann, struct fann_train_data *data, const unsigned int threadnumb);
        +
        +float train_epoch_irpropm_parallel(struct fann *ann, struct fann_train_data *data, const unsigned int threadnumb);
        +
        +float train_epoch_quickprop_parallel(struct fann *ann, struct fann_train_data *data, const unsigned int threadnumb);
        +
        +float train_epoch_sarprop_parallel(struct fann *ann, struct fann_train_data *data, const unsigned int threadnumb);
        +
        +float train_epoch_incremental_mod(struct fann *ann, struct fann_train_data *data);
        +
        +float train_epoch_batch_parallel(struct fann *ann, struct fann_train_data *data, const unsigned int threadnumb,std::vector< std::vector<fann_type> >& predicted_outputs);
        +
        +float train_epoch_irpropm_parallel(struct fann *ann, struct fann_train_data *data, const unsigned int threadnumb, std::vector< std::vector<fann_type> >& predicted_outputs);
        +
        +float train_epoch_quickprop_parallel(struct fann *ann, struct fann_train_data *data, const unsigned int threadnumb, std::vector< std::vector<fann_type> >& predicted_outputs);
        +
        +float train_epoch_sarprop_parallel(struct fann *ann, struct fann_train_data *data, const unsigned int threadnumb, std::vector< std::vector<fann_type> >& predicted_outputs);
        +
        +float train_epoch_incremental_mod(struct fann *ann, struct fann_train_data *data, std::vector< std::vector<fann_type> >& predicted_outputs);
        +
        +float test_data_parallel(struct fann *ann, struct fann_train_data *data, const unsigned int threadnumb);
        +float test_data_parallel(struct fann *ann, struct fann_train_data *data, const unsigned int threadnumb, std::vector< std::vector<fann_type> >& predicted_outputs);
        +}
        +#endif /* FIXEDFANN */
        +#endif /* PARALLEL_FANN_HPP_ */
        +#endif /* DISABLE_PARALLEL_FANN */
        diff --git a/lib/ann/fann/src/parallel_doublefann_cpp.cpp b/lib/ann/fann/src/parallel_doublefann_cpp.cpp
        new file mode 100644
        index 0000000..806ac22
        --- /dev/null
        +++ b/lib/ann/fann/src/parallel_doublefann_cpp.cpp
        @@ -0,0 +1,27 @@
        +/*
        +Fast Artificial Neural Network Library (fann)
        +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com)
        +
        +This library is free software; you can redistribute it and/or
        +modify it under the terms of the GNU Lesser General Public
        +License as published by the Free Software Foundation; either
        +version 2.1 of the License, or (at your option) any later version.
        +
        +This library is distributed in the hope that it will be useful,
        +but WITHOUT ANY WARRANTY; without even the implied warranty of
        +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
        +Lesser General Public License for more details.
        +
        +You should have received a copy of the GNU Lesser General Public
        +License along with this library; if not, write to the Free Software
        +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        +*/
        +
        +/* Easy way to allow for build of multiple binaries */
        +
        +#ifndef DISABLE_PARALLEL_FANN
        +#include "config.h"
        +#include "doublefann.h"
        +
        +#include "parallel_fann_cpp.cpp"
        +#endif /* DISABLE_PARALLEL_FANN */
        diff --git a/lib/ann/fann/src/parallel_fann.c b/lib/ann/fann/src/parallel_fann.c
        new file mode 100644
        index 0000000..7278563
        --- /dev/null
        +++ b/lib/ann/fann/src/parallel_fann.c
        @@ -0,0 +1,511 @@
        +/*
        + * parallel_FANN.c
        + *     Author: Alessandro Pietro Bardelli
        + */
        +#ifndef DISABLE_PARALLEL_FANN
        +#include <omp.h>
        +#include "parallel_fann.h"
        +#include "config.h"
        +#include "fann.h"
        +
        +FANN_EXTERNAL float FANN_API fann_train_epoch_batch_parallel(struct fann *ann, struct fann_train_data *data, const unsigned int threadnumb)
        +{
        +	/*vector<struct fann *> ann_vect(threadnumb);*/
        +	struct fann** ann_vect= (struct fann**) malloc(threadnumb * sizeof(struct fann*));
        +	int i=0,j=0;
        +	fann_reset_MSE(ann);
        +
        +	//generate copies of the ann
        +	omp_set_dynamic(0);
        +	omp_set_num_threads(threadnumb);
        +	#pragma omp parallel private(j)
        +	{
        +
        +		#pragma omp for schedule(static)
        +		for(i=0; i<(int)threadnumb; i++)
        +		{
        +			ann_vect[i]=fann_copy(ann);
        +		}
        +
        +    //parallel computing of the updates
        +
        +        #pragma omp for schedule(static)
        +		for(i = 0; i < (int)data->num_data; i++)
        +		{
        +			j=omp_get_thread_num();
        +			fann_run(ann_vect[j], data->input[i]);
        +			fann_compute_MSE(ann_vect[j], data->output[i]);
        +			fann_backpropagate_MSE(ann_vect[j]);
        +			fann_update_slopes_batch(ann_vect[j], ann_vect[j]->first_layer + 1, ann_vect[j]->last_layer - 1);
        +		}
        +	}
        +
        +    //parallel update of the weights
        +	{
        +		const unsigned int num_data=data->num_data;
        +		const unsigned int first_weight=0;
        +		const unsigned int past_end=ann->total_connections;
        +		fann_type *weights = ann->weights;
        +		const fann_type epsilon = ann->learning_rate / num_data;
        +		omp_set_dynamic(0);
        +		omp_set_num_threads(threadnumb);
        +		#pragma omp parallel
        +		{
        +			#pragma omp for schedule(static)
        +				for(i=first_weight; i < (int)past_end; i++)
        +				{
        +					fann_type temp_slopes=0.0;
        +					unsigned int k;
        +					fann_type *train_slopes;
        +					for(k=0;k<threadnumb;++k)
        +					{
        +						train_slopes=ann_vect[k]->train_slopes;
        +						temp_slopes+= train_slopes[i];
        +						train_slopes[i]=0.0;
        +					}
        +					weights[i] += temp_slopes*epsilon;
        +				}
        +			}
        +	}
        +	//merge of MSEs
        +	for(i=0;i<(int)threadnumb;++i)
        +	{
        +		ann->MSE_value+= ann_vect[i]->MSE_value;
        +		ann->num_MSE+=ann_vect[i]->num_MSE;
        +		fann_destroy(ann_vect[i]);
        +	}
        +	free(ann_vect);
        +	return fann_get_MSE(ann);
        +}
        +
        +
        +FANN_EXTERNAL float FANN_API fann_train_epoch_irpropm_parallel(struct fann *ann, struct fann_train_data *data, const unsigned int threadnumb)
        +{
        +	struct fann** ann_vect= (struct fann**) malloc(threadnumb * sizeof(struct fann*));
        +	int i=0,j=0;
        +
        +	if(ann->prev_train_slopes == NULL)
        +	{
        +		fann_clear_train_arrays(ann);
        +	}
        +
        +	//#define THREADNUM 1
        +	fann_reset_MSE(ann);
        +
        +	/*vector<struct fann *> ann_vect(threadnumb);*/
        +
        +	//generate copies of the ann
        +	omp_set_dynamic(0);
        +	omp_set_num_threads(threadnumb);
        +	#pragma omp parallel private(j)
        +	{
        +
        +		#pragma omp for schedule(static)
        +		for(i=0; i<(int)threadnumb; i++)
        +		{
        +			ann_vect[i]=fann_copy(ann);
        +		}
        +
        +    //parallel computing of the updates
        +
        +
        +        #pragma omp for schedule(static)
        +		for(i = 0; i < (int)data->num_data; i++)
        +		{
        +			j=omp_get_thread_num();
        +			fann_run(ann_vect[j], data->input[i]);
        +			fann_compute_MSE(ann_vect[j], data->output[i]);
        +			fann_backpropagate_MSE(ann_vect[j]);
        +			fann_update_slopes_batch(ann_vect[j], ann_vect[j]->first_layer + 1, ann_vect[j]->last_layer - 1);
        +		}
        +	}
        +
        +	{
        +    	fann_type *weights = ann->weights;
        +    	fann_type *prev_steps = ann->prev_steps;
        +    	fann_type *prev_train_slopes = ann->prev_train_slopes;
        +
        +    	fann_type next_step;
        +
        +    	const float increase_factor = ann->rprop_increase_factor;	//1.2;
        +    	const float decrease_factor = ann->rprop_decrease_factor;	//0.5;
        +    	const float delta_min = ann->rprop_delta_min;	//0.0;
        +    	const float delta_max = ann->rprop_delta_max;	//50.0;
        +		const unsigned int first_weight=0;
        +		const unsigned int past_end=ann->total_connections;
        +
        +		omp_set_dynamic(0);
        +		omp_set_num_threads(threadnumb);
        +		#pragma omp parallel private(next_step)
        +		{
        +			#pragma omp for schedule(static)
        +				for(i=first_weight; i < (int)past_end; i++)
        +				{
        +					fann_type prev_slope, same_sign;
        +		    		const fann_type prev_step = fann_max(prev_steps[i], (fann_type) 0.0001);	// prev_step may not be zero because then the training will stop
        +
        +		    		fann_type temp_slopes=0.0;
        +					unsigned int k;
        +					fann_type *train_slopes;
        +					for(k=0;k<threadnumb;++k)
        +					{
        +						train_slopes=ann_vect[k]->train_slopes;
        +						temp_slopes+= train_slopes[i];
        +						train_slopes[i]=0.0;
        +					}
        +
        +		    		prev_slope = prev_train_slopes[i];
        +
        +		    		same_sign = prev_slope * temp_slopes;
        +
        +		    		if(same_sign >= 0.0)
        +		    			next_step = fann_min(prev_step * increase_factor, delta_max);
        +		    		else
        +		    		{
        +		    			next_step = fann_max(prev_step * decrease_factor, delta_min);
        +		    			temp_slopes = 0;
        +		    		}
        +
        +		    		if(temp_slopes < 0)
        +		    		{
        +		    			weights[i] -= next_step;
        +		    			if(weights[i] < -1500)
        +		    				weights[i] = -1500;
        +		    		}
        +		    		else
        +		    		{
        +		    			weights[i] += next_step;
        +		    			if(weights[i] > 1500)
        +		    				weights[i] = 1500;
        +		    		}
        +
        +		    		// update global data arrays
        +		    		prev_steps[i] = next_step;
        +		    		prev_train_slopes[i] = temp_slopes;
        +
        +				}
        +			}
        +	}
        +
        +	//merge of MSEs
        +	for(i=0;i<(int)threadnumb;++i)
        +	{
        +		ann->MSE_value+= ann_vect[i]->MSE_value;
        +		ann->num_MSE+=ann_vect[i]->num_MSE;
        +		fann_destroy(ann_vect[i]);
        +	}
        +	free(ann_vect);
        +	return fann_get_MSE(ann);
        +}
        +
        +
        +FANN_EXTERNAL float FANN_API fann_train_epoch_quickprop_parallel(struct fann *ann, struct fann_train_data *data, const unsigned int threadnumb)
        +{
        +	struct fann** ann_vect= (struct fann**) malloc(threadnumb * sizeof(struct fann*));
        +	int i=0,j=0;
        +
        +	if(ann->prev_train_slopes == NULL)
        +	{
        +		fann_clear_train_arrays(ann);
        +	}
        +
        +	//#define THREADNUM 1
        +	fann_reset_MSE(ann);
        +
        +	/*vector<struct fann *> ann_vect(threadnumb);*/
        +
        +	//generate copies of the ann
        +	omp_set_dynamic(0);
        +	omp_set_num_threads(threadnumb);
        +	#pragma omp parallel private(j)
        +	{
        +
        +		#pragma omp for schedule(static)
        +		for(i=0; i<(int)threadnumb; i++)
        +		{
        +			ann_vect[i]=fann_copy(ann);
        +		}
        +
        +    //parallel computing of the updates
        +
        +        #pragma omp for schedule(static)
        +		for(i = 0; i < (int)data->num_data; i++)
        +		{
        +			j=omp_get_thread_num();
        +			fann_run(ann_vect[j], data->input[i]);
        +			fann_compute_MSE(ann_vect[j], data->output[i]);
        +			fann_backpropagate_MSE(ann_vect[j]);
        +			fann_update_slopes_batch(ann_vect[j], ann_vect[j]->first_layer + 1, ann_vect[j]->last_layer - 1);
        +		}
        +	}
        +
        +    {
        +    	fann_type *weights = ann->weights;
        +    	fann_type *prev_steps = ann->prev_steps;
        +    	fann_type *prev_train_slopes = ann->prev_train_slopes;
        +		const unsigned int first_weight=0;
        +		const unsigned int past_end=ann->total_connections;
        +
        +    	fann_type w=0.0, next_step;
        +
        +    	const float epsilon = ann->learning_rate / data->num_data;
        +    	const float decay = ann->quickprop_decay;	/*-0.0001;*/
        +    	const float mu = ann->quickprop_mu;	/*1.75; */
        +    	const float shrink_factor = (float) (mu / (1.0 + mu));
        +
        +		omp_set_dynamic(0);
        +		omp_set_num_threads(threadnumb);
        +		#pragma omp parallel private(w, next_step)
        +		{
        +			#pragma omp for schedule(static)
        +				for(i=first_weight; i < (int)past_end; i++)
        +				{
        +					fann_type temp_slopes=0.0;
        +					unsigned int k;
        +					fann_type *train_slopes;
        +					fann_type prev_step, prev_slope;
        +
        +					w = weights[i];
        +					for(k=0;k<threadnumb;++k)
        +					{
        +						train_slopes=ann_vect[k]->train_slopes;
        +						temp_slopes+= train_slopes[i];
        +						train_slopes[i]=0.0;
        +					}
        +					temp_slopes+= decay * w;
        +
        +					prev_step = prev_steps[i];
        +					prev_slope = prev_train_slopes[i];
        +
        +					next_step = 0.0;
        +
        +
        +					/* The step must always be in direction opposite to the slope. */
        +					if(prev_step > 0.001)
        +					{
        +						/* If last step was positive...  */
        +						if(temp_slopes > 0.0) /*  Add in linear term if current slope is still positive. */
        +							next_step += epsilon * temp_slopes;
        +
        +						/*If current slope is close to or larger than prev slope...  */
        +						if(temp_slopes > (shrink_factor * prev_slope))
        +							next_step += mu * prev_step;	/* Take maximum size negative step. */
        +						else
        +							next_step += prev_step * temp_slopes / (prev_slope - temp_slopes);	/* Else, use quadratic estimate. */
        +					}
        +					else if(prev_step < -0.001)
        +					{
        +						/* If last step was negative...  */
        +						if(temp_slopes < 0.0) /*  Add in linear term if current slope is still negative. */
        +							next_step += epsilon * temp_slopes;
        +
        +						/* If current slope is close to or more neg than prev slope... */
        +						if(temp_slopes < (shrink_factor * prev_slope))
        +							next_step += mu * prev_step;	/* Take maximum size negative step. */
        +						else
        +							next_step += prev_step * temp_slopes / (prev_slope - temp_slopes);	/* Else, use quadratic estimate. */
        +					}
        +					else /* Last step was zero, so use only linear term. */
        +						next_step += epsilon * temp_slopes;
        +
        +					/* update global data arrays */
        +					prev_steps[i] = next_step;
        +					prev_train_slopes[i] = temp_slopes;
        +
        +					w += next_step;
        +
        +					if(w > 1500)
        +						weights[i] = 1500;
        +					else if(w < -1500)
        +						weights[i] = -1500;
        +					else
        +						weights[i] = w;
        +				}
        +		}
        +	}
        +	//merge of MSEs
        +	for(i=0;i<(int)threadnumb;++i)
        +	{
        +		ann->MSE_value+= ann_vect[i]->MSE_value;
        +		ann->num_MSE+=ann_vect[i]->num_MSE;
        +		fann_destroy(ann_vect[i]);
        +	}
        +	free(ann_vect);
        +	return fann_get_MSE(ann);
        +}
        +
        +
        +FANN_EXTERNAL float FANN_API fann_train_epoch_sarprop_parallel(struct fann *ann, struct fann_train_data *data, const unsigned int threadnumb)
        +{
        +	struct fann** ann_vect= (struct fann**) malloc(threadnumb * sizeof(struct fann*));
        +	int i=0,j=0;
        +
        +	if(ann->prev_train_slopes == NULL)
        +	{
        +		fann_clear_train_arrays(ann);
        +	}
        +
        +	//#define THREADNUM 1
        +	fann_reset_MSE(ann);
        +
        +	/*vector<struct fann *> ann_vect(threadnumb);*/
        +
        +	//generate copies of the ann
        +	omp_set_dynamic(0);
        +	omp_set_num_threads(threadnumb);
        +	#pragma omp parallel private(j)
        +	{
        +
        +		#pragma omp for schedule(static)
        +		for(i=0; i<(int)threadnumb; i++)
        +		{
        +			ann_vect[i]=fann_copy(ann);
        +		}
        +
        +    //parallel computing of the updates
        +
        +        #pragma omp for schedule(static)
        +		for(i = 0; i < (int)data->num_data; i++)
        +		{
        +			j=omp_get_thread_num();
        +			fann_run(ann_vect[j], data->input[i]);
        +			fann_compute_MSE(ann_vect[j], data->output[i]);
        +			fann_backpropagate_MSE(ann_vect[j]);
        +			fann_update_slopes_batch(ann_vect[j], ann_vect[j]->first_layer + 1, ann_vect[j]->last_layer - 1);
        +		}
        +	}
        +
        +    {
        +    	fann_type *weights = ann->weights;
        +    	fann_type *prev_steps = ann->prev_steps;
        +    	fann_type *prev_train_slopes = ann->prev_train_slopes;
        +		const unsigned int first_weight=0;
        +		const unsigned int past_end=ann->total_connections;
        +		const unsigned int epoch=ann->sarprop_epoch;
        +
        +    	fann_type next_step;
        +
        +    	/* These should be set from variables */
        +    	const float increase_factor = ann->rprop_increase_factor;	/*1.2; */
        +    	const float decrease_factor = ann->rprop_decrease_factor;	/*0.5; */
        +    	/* TODO: why is delta_min 0.0 in iRprop? SARPROP uses 1x10^-6 (Braun and Riedmiller, 1993) */
        +    	const float delta_min = 0.000001f;
        +    	const float delta_max = ann->rprop_delta_max;	/*50.0; */
        +    	const float weight_decay_shift = ann->sarprop_weight_decay_shift; /* ld 0.01 = -6.644 */
        +    	const float step_error_threshold_factor = ann->sarprop_step_error_threshold_factor; /* 0.1 */
        +    	const float step_error_shift = ann->sarprop_step_error_shift; /* ld 3 = 1.585 */
        +    	const float T = ann->sarprop_temperature;
        +		float MSE, RMSE;
        +
        +
        +    	//merge of MSEs
        +    	for(i=0;i<(int)threadnumb;++i)
        +    	{
        +    		ann->MSE_value+= ann_vect[i]->MSE_value;
        +    		ann->num_MSE+=ann_vect[i]->num_MSE;
        +    	}
        +
        +    	MSE = fann_get_MSE(ann);
        +    	RMSE = sqrtf(MSE);
        +
        +    	/* for all weights; TODO: are biases included? */
        +		omp_set_dynamic(0);
        +		omp_set_num_threads(threadnumb);
        +		#pragma omp parallel private(next_step)
        +		{
        +			#pragma omp for schedule(static)
        +				for(i=first_weight; i < (int)past_end; i++)
        +				{
        +					/* TODO: confirm whether 1x10^-6 == delta_min is really better */
        +					const fann_type prev_step  = fann_max(prev_steps[i], (fann_type) 0.000001);	/* prev_step may not be zero because then the training will stop */
        +
        +					/* calculate SARPROP slope; TODO: better as new error function? (see SARPROP paper)*/
        +					fann_type prev_slope, same_sign;
        +					fann_type temp_slopes=0.0;
        +					unsigned int k;
        +					fann_type *train_slopes;
        +					for(k=0;k<threadnumb;++k)
        +					{
        +						train_slopes=ann_vect[k]->train_slopes;
        +						temp_slopes+= train_slopes[i];
        +						train_slopes[i]=0.0;
        +					}
        +					temp_slopes= -temp_slopes - weights[i] * (fann_type)fann_exp2(-T * epoch + weight_decay_shift);
        +
        +					next_step=0.0;
        +
        +					/* TODO: is prev_train_slopes[i] 0.0 in the beginning? */
        +					prev_slope = prev_train_slopes[i];
        +
        +					same_sign = prev_slope * temp_slopes;
        +
        +					if(same_sign > 0.0)
        +					{
        +						next_step = fann_min(prev_step * increase_factor, delta_max);
        +						/* TODO: are the signs inverted? see differences between SARPROP paper and iRprop */
        +						if (temp_slopes < 0.0)
        +							weights[i] += next_step;
        +						else
        +							weights[i] -= next_step;
        +					}
        +					else if(same_sign < 0.0)
        +					{
        +						#ifndef RAND_MAX
        +						#define	RAND_MAX	0x7fffffff
        +						#endif
        +						if(prev_step < step_error_threshold_factor * MSE)
        +							next_step = prev_step * decrease_factor + (float)rand() / RAND_MAX * RMSE * (fann_type)fann_exp2(-T * epoch + step_error_shift);
        +						else
        +							next_step = fann_max(prev_step * decrease_factor, delta_min);
        +
        +						temp_slopes = 0.0;
        +					}
        +					else
        +					{
        +						if(temp_slopes < 0.0)
        +							weights[i] += prev_step;
        +						else
        +							weights[i] -= prev_step;
        +					}
        +
        +					/* update global data arrays */
        +					prev_steps[i] = next_step;
        +					prev_train_slopes[i] = temp_slopes;
        +
        +				}
        +		}
        +    }
        +
        +	++(ann->sarprop_epoch);
        +
        +	//already computed before
        +	/*//merge of MSEs
        +	for(i=0;i<threadnumb;++i)
        +	{
        +		ann->MSE_value+= ann_vect[i]->MSE_value;
        +		ann->num_MSE+=ann_vect[i]->num_MSE;
        +	}*/
        +	//destroy the copies of the ann
        +	for(i=0; i<(int)threadnumb; i++)
        +	{
        +		fann_destroy(ann_vect[i]);
        +	}
        +	free(ann_vect);
        +	return fann_get_MSE(ann);
        +}
        +
        +FANN_EXTERNAL float FANN_API fann_train_epoch_incremental_mod(struct fann *ann, struct fann_train_data *data)
        +{
        +	unsigned int i;
        +
        +	fann_reset_MSE(ann);
        +
        +	for(i = 0; i != data->num_data; i++)
        +	{
        +		fann_train(ann, data->input[i], data->output[i]);
        +	}
        +
        +	return fann_get_MSE(ann);
        +}
        +
        +#endif /* DISABLE_PARALLEL_FANN */
        diff --git a/lib/ann/fann/src/parallel_fann_cpp.cpp b/lib/ann/fann/src/parallel_fann_cpp.cpp
        new file mode 100644
        index 0000000..a1c80af
        --- /dev/null
        +++ b/lib/ann/fann/src/parallel_fann_cpp.cpp
        @@ -0,0 +1,1113 @@
        +/*
        + * parallel_FANN.cpp
        + *     Author: Alessandro Pietro Bardelli
        + */
        +#ifndef DISABLE_PARALLEL_FANN
        +#include "parallel_fann.hpp"
        +#include <omp.h>
        +using namespace std;
        +namespace parallel_fann {
        +// TODO rewrite all these functions in c++ using fann_cpp interface
        +
        +float train_epoch_batch_parallel(struct fann *ann, struct fann_train_data *data, const unsigned int threadnumb)
        +{
        +	fann_reset_MSE(ann);
        +	vector<struct fann *> ann_vect(threadnumb);
        +	int i=0,j=0;
        +
        +	//generate copies of the ann
        +	omp_set_dynamic(0);
        +	omp_set_num_threads(threadnumb);
        +	#pragma omp parallel private(j)
        +	{
        +
        +		#pragma omp for schedule(static)
        +		for(i=0; i<(int)threadnumb; i++)
        +		{
        +			ann_vect[i]=fann_copy(ann);
        +		}
        +
        +    //parallel computing of the updates
        +
        +        #pragma omp for schedule(static)
        +		for(i = 0; i < (int)data->num_data; i++)
        +		{
        +			j=omp_get_thread_num();
        +			fann_run(ann_vect[j], data->input[i]);
        +			fann_compute_MSE(ann_vect[j], data->output[i]);
        +			fann_backpropagate_MSE(ann_vect[j]);
        +			fann_update_slopes_batch(ann_vect[j], ann_vect[j]->first_layer + 1, ann_vect[j]->last_layer - 1);
        +		}
        +	}
        +
        +    //parallel update of the weights
        +	{
        +		const unsigned int num_data=data->num_data;
        +		const unsigned int first_weight=0;
        +		const unsigned int past_end=ann->total_connections;
        +		fann_type *weights = ann->weights;
        +		const fann_type epsilon = ann->learning_rate / num_data;
        +		omp_set_dynamic(0);
        +		omp_set_num_threads(threadnumb);
        +		#pragma omp parallel
        +		{
        +			#pragma omp for schedule(static)
        +				for(i=first_weight; i < (int)past_end; i++)
        +				{
        +					fann_type temp_slopes=0.0;
        +					unsigned int k;
        +					fann_type *train_slopes;
        +					for(k=0;k<threadnumb;++k)
        +					{
        +						train_slopes=ann_vect[k]->train_slopes;
        +						temp_slopes+= train_slopes[i];
        +						train_slopes[i]=0.0;
        +					}
        +					weights[i] += temp_slopes*epsilon;
        +				}
        +			}
        +	}
        +	//merge of MSEs
        +	for(i=0;i<(int)threadnumb;++i)
        +	{
        +		ann->MSE_value+= ann_vect[i]->MSE_value;
        +		ann->num_MSE+=ann_vect[i]->num_MSE;
        +		fann_destroy(ann_vect[i]);
        +	}
        +	return fann_get_MSE(ann);
        +}
        +
        +
        +float train_epoch_irpropm_parallel(struct fann *ann, struct fann_train_data *data, const unsigned int threadnumb)
        +{
        +
        +	if(ann->prev_train_slopes == NULL)
        +	{
        +		fann_clear_train_arrays(ann);
        +	}
        +
        +	//#define THREADNUM 1
        +	fann_reset_MSE(ann);
        +
        +	vector<struct fann *> ann_vect(threadnumb);
        +	int i=0,j=0;
        +
        +	//generate copies of the ann
        +	omp_set_dynamic(0);
        +	omp_set_num_threads(threadnumb);
        +	#pragma omp parallel private(j)
        +	{
        +
        +		#pragma omp for schedule(static)
        +		for(i=0; i<(int)threadnumb; i++)
        +		{
        +			ann_vect[i]=fann_copy(ann);
        +		}
        +
        +    //parallel computing of the updates
        +
        +
        +        #pragma omp for schedule(static)
        +		for(i = 0; i < (int)data->num_data; i++)
        +		{
        +			j=omp_get_thread_num();
        +			fann_run(ann_vect[j], data->input[i]);
        +			fann_compute_MSE(ann_vect[j], data->output[i]);
        +			fann_backpropagate_MSE(ann_vect[j]);
        +			fann_update_slopes_batch(ann_vect[j], ann_vect[j]->first_layer + 1, ann_vect[j]->last_layer - 1);
        +		}
        +	}
        +
        +	{
        +    	fann_type *weights = ann->weights;
        +    	fann_type *prev_steps = ann->prev_steps;
        +    	fann_type *prev_train_slopes = ann->prev_train_slopes;
        +
        +    	fann_type next_step;
        +
        +    	const float increase_factor = ann->rprop_increase_factor;	//1.2;
        +    	const float decrease_factor = ann->rprop_decrease_factor;	//0.5;
        +    	const float delta_min = ann->rprop_delta_min;	//0.0;
        +    	const float delta_max = ann->rprop_delta_max;	//50.0;
        +		const unsigned int first_weight=0;
        +		const unsigned int past_end=ann->total_connections;
        +
        +		omp_set_dynamic(0);
        +		omp_set_num_threads(threadnumb);
        +		#pragma omp parallel private(next_step)
        +		{
        +			#pragma omp for schedule(static)
        +				for(i=first_weight; i < (int)past_end; i++)
        +				{
        +
        +		    		const fann_type prev_step = fann_max(prev_steps[i], (fann_type) 0.0001);	// prev_step may not be zero because then the training will stop
        +
        +		    		fann_type temp_slopes=0.0;
        +					unsigned int k;
        +					fann_type *train_slopes;
        +					for(k=0;k<threadnumb;++k)
        +					{
        +						train_slopes=ann_vect[k]->train_slopes;
        +						temp_slopes+= train_slopes[i];
        +						train_slopes[i]=0.0;
        +					}
        +
        +		    		const fann_type prev_slope = prev_train_slopes[i];
        +
        +		    		const fann_type same_sign = prev_slope * temp_slopes;
        +
        +		    		if(same_sign >= 0.0)
        +		    			next_step = fann_min(prev_step * increase_factor, delta_max);
        +		    		else
        +		    		{
        +		    			next_step = fann_max(prev_step * decrease_factor, delta_min);
        +		    			temp_slopes = 0;
        +		    		}
        +
        +		    		if(temp_slopes < 0)
        +		    		{
        +		    			weights[i] -= next_step;
        +		    			if(weights[i] < -1500)
        +		    				weights[i] = -1500;
        +		    		}
        +		    		else
        +		    		{
        +		    			weights[i] += next_step;
        +		    			if(weights[i] > 1500)
        +		    				weights[i] = 1500;
        +		    		}
        +
        +		    		// update global data arrays
        +		    		prev_steps[i] = next_step;
        +		    		prev_train_slopes[i] = temp_slopes;
        +
        +				}
        +			}
        +	}
        +
        +	//merge of MSEs
        +	for(i=0;i<(int)threadnumb;++i)
        +	{
        +		ann->MSE_value+= ann_vect[i]->MSE_value;
        +		ann->num_MSE+=ann_vect[i]->num_MSE;
        +		fann_destroy(ann_vect[i]);
        +	}
        +	return fann_get_MSE(ann);
        +}
        +
        +
        +float train_epoch_quickprop_parallel(struct fann *ann, struct fann_train_data *data, const unsigned int threadnumb)
        +{
        +
        +	if(ann->prev_train_slopes == NULL)
        +	{
        +		fann_clear_train_arrays(ann);
        +	}
        +
        +	//#define THREADNUM 1
        +	fann_reset_MSE(ann);
        +
        +	vector<struct fann *> ann_vect(threadnumb);
        +	int i=0,j=0;
        +
        +	//generate copies of the ann
        +	omp_set_dynamic(0);
        +	omp_set_num_threads(threadnumb);
        +	#pragma omp parallel private(j)
        +	{
        +
        +		#pragma omp for schedule(static)
        +		for(i=0; i<(int)threadnumb; i++)
        +		{
        +			ann_vect[i]=fann_copy(ann);
        +		}
        +
        +    //parallel computing of the updates
        +
        +        #pragma omp for schedule(static)
        +		for(i = 0; i < (int)data->num_data; i++)
        +		{
        +			j=omp_get_thread_num();
        +			fann_run(ann_vect[j], data->input[i]);
        +			fann_compute_MSE(ann_vect[j], data->output[i]);
        +			fann_backpropagate_MSE(ann_vect[j]);
        +			fann_update_slopes_batch(ann_vect[j], ann_vect[j]->first_layer + 1, ann_vect[j]->last_layer - 1);
        +		}
        +	}
        +
        +    {
        +    	fann_type *weights = ann->weights;
        +    	fann_type *prev_steps = ann->prev_steps;
        +    	fann_type *prev_train_slopes = ann->prev_train_slopes;
        +		const unsigned int first_weight=0;
        +		const unsigned int past_end=ann->total_connections;
        +
        +    	fann_type w=0.0, next_step;
        +
        +    	const float epsilon = ann->learning_rate / data->num_data;
        +    	const float decay = ann->quickprop_decay;	/*-0.0001;*/
        +    	const float mu = ann->quickprop_mu;	/*1.75; */
        +    	const float shrink_factor = (float) (mu / (1.0 + mu));
        +
        +		omp_set_dynamic(0);
        +		omp_set_num_threads(threadnumb);
        +		#pragma omp parallel private(w, next_step)
        +		{
        +			#pragma omp for schedule(static)
        +				for(i=first_weight; i < (int)past_end; i++)
        +				{
        +
        +					w = weights[i];
        +
        +					fann_type temp_slopes=0.0;
        +					unsigned int k;
        +					fann_type *train_slopes;
        +					for(k=0;k<threadnumb;++k)
        +					{
        +						train_slopes=ann_vect[k]->train_slopes;
        +						temp_slopes+= train_slopes[i];
        +						train_slopes[i]=0.0;
        +					}
        +					temp_slopes+= decay * w;
        +
        +					const fann_type prev_step = prev_steps[i];
        +					const fann_type prev_slope = prev_train_slopes[i];
        +
        +					next_step = 0.0;
        +
        +
        +					/* The step must always be in direction opposite to the slope. */
        +					if(prev_step > 0.001)
        +					{
        +						/* If last step was positive...  */
        +						if(temp_slopes > 0.0) /*  Add in linear term if current slope is still positive. */
        +							next_step += epsilon * temp_slopes;
        +
        +						/*If current slope is close to or larger than prev slope...  */
        +						if(temp_slopes > (shrink_factor * prev_slope))
        +							next_step += mu * prev_step;	/* Take maximum size negative step. */
        +						else
        +							next_step += prev_step * temp_slopes / (prev_slope - temp_slopes);	/* Else, use quadratic estimate. */
        +					}
        +					else if(prev_step < -0.001)
        +					{
        +						/* If last step was negative...  */
        +						if(temp_slopes < 0.0) /*  Add in linear term if current slope is still negative. */
        +							next_step += epsilon * temp_slopes;
        +
        +						/* If current slope is close to or more neg than prev slope... */
        +						if(temp_slopes < (shrink_factor * prev_slope))
        +							next_step += mu * prev_step;	/* Take maximum size negative step. */
        +						else
        +							next_step += prev_step * temp_slopes / (prev_slope - temp_slopes);	/* Else, use quadratic estimate. */
        +					}
        +					else /* Last step was zero, so use only linear term. */
        +						next_step += epsilon * temp_slopes;
        +
        +					/* update global data arrays */
        +					prev_steps[i] = next_step;
        +					prev_train_slopes[i] = temp_slopes;
        +
        +					w += next_step;
        +
        +					if(w > 1500)
        +						weights[i] = 1500;
        +					else if(w < -1500)
        +						weights[i] = -1500;
        +					else
        +						weights[i] = w;
        +				}
        +		}
        +	}
        +	//merge of MSEs
        +	for(i=0;i<(int)threadnumb;++i)
        +	{
        +		ann->MSE_value+= ann_vect[i]->MSE_value;
        +		ann->num_MSE+=ann_vect[i]->num_MSE;
        +		fann_destroy(ann_vect[i]);
        +	}
        +	return fann_get_MSE(ann);
        +}
        +
        +
        +float train_epoch_sarprop_parallel(struct fann *ann, struct fann_train_data *data, const unsigned int threadnumb)
        +{
        +	if(ann->prev_train_slopes == NULL)
        +	{
        +		fann_clear_train_arrays(ann);
        +	}
        +
        +	//#define THREADNUM 1
        +	fann_reset_MSE(ann);
        +
        +	vector<struct fann *> ann_vect(threadnumb);
        +	int i=0,j=0;
        +
        +	//generate copies of the ann
        +	omp_set_dynamic(0);
        +	omp_set_num_threads(threadnumb);
        +	#pragma omp parallel private(j)
        +	{
        +
        +		#pragma omp for schedule(static)
        +		for(i=0; i<(int)threadnumb; i++)
        +		{
        +			ann_vect[i]=fann_copy(ann);
        +		}
        +
        +    //parallel computing of the updates
        +
        +        #pragma omp for schedule(static)
        +		for(i = 0; i < (int)data->num_data; i++)
        +		{
        +			j=omp_get_thread_num();
        +			fann_run(ann_vect[j], data->input[i]);
        +			fann_compute_MSE(ann_vect[j], data->output[i]);
        +			fann_backpropagate_MSE(ann_vect[j]);
        +			fann_update_slopes_batch(ann_vect[j], ann_vect[j]->first_layer + 1, ann_vect[j]->last_layer - 1);
        +		}
        +	}
        +
        +    {
        +    	fann_type *weights = ann->weights;
        +    	fann_type *prev_steps = ann->prev_steps;
        +    	fann_type *prev_train_slopes = ann->prev_train_slopes;
        +		const unsigned int first_weight=0;
        +		const unsigned int past_end=ann->total_connections;
        +		const unsigned int epoch=ann->sarprop_epoch;
        +
        +    	fann_type next_step;
        +
        +    	/* These should be set from variables */
        +    	const float increase_factor = ann->rprop_increase_factor;	/*1.2; */
        +    	const float decrease_factor = ann->rprop_decrease_factor;	/*0.5; */
        +    	/* TODO: why is delta_min 0.0 in iRprop? SARPROP uses 1x10^-6 (Braun and Riedmiller, 1993) */
        +    	const float delta_min = 0.000001f;
        +    	const float delta_max = ann->rprop_delta_max;	/*50.0; */
        +    	const float weight_decay_shift = ann->sarprop_weight_decay_shift; /* ld 0.01 = -6.644 */
        +    	const float step_error_threshold_factor = ann->sarprop_step_error_threshold_factor; /* 0.1 */
        +    	const float step_error_shift = ann->sarprop_step_error_shift; /* ld 3 = 1.585 */
        +    	const float T = ann->sarprop_temperature;
        +
        +
        +    	//merge of MSEs
        +    	for(i=0;i<(int)threadnumb;++i)
        +    	{
        +    		ann->MSE_value+= ann_vect[i]->MSE_value;
        +    		ann->num_MSE+=ann_vect[i]->num_MSE;
        +    	}
        +
        +    	const float MSE = fann_get_MSE(ann);
        +    	const float RMSE = sqrtf(MSE);
        +
        +    	/* for all weights; TODO: are biases included? */
        +		omp_set_dynamic(0);
        +		omp_set_num_threads(threadnumb);
        +		#pragma omp parallel private(next_step)
        +		{
        +			#pragma omp for schedule(static)
        +				for(i=first_weight; i < (int)past_end; i++)
        +				{
        +					/* TODO: confirm whether 1x10^-6 == delta_min is really better */
        +					const fann_type prev_step  = fann_max(prev_steps[i], (fann_type) 0.000001);	/* prev_step may not be zero because then the training will stop */
        +
        +					/* calculate SARPROP slope; TODO: better as new error function? (see SARPROP paper)*/
        +
        +					fann_type temp_slopes=0.0;
        +					unsigned int k;
        +					fann_type *train_slopes;
        +					for(k=0;k<threadnumb;++k)
        +					{
        +						train_slopes=ann_vect[k]->train_slopes;
        +						temp_slopes+= train_slopes[i];
        +						train_slopes[i]=0.0;
        +					}
        +					temp_slopes= -temp_slopes - weights[i] * (fann_type)fann_exp2(-T * epoch + weight_decay_shift);
        +
        +					next_step=0.0;
        +
        +					/* TODO: is prev_train_slopes[i] 0.0 in the beginning? */
        +					const fann_type prev_slope = prev_train_slopes[i];
        +
        +					const fann_type same_sign = prev_slope * temp_slopes;
        +
        +					if(same_sign > 0.0)
        +					{
        +						next_step = fann_min(prev_step * increase_factor, delta_max);
        +						/* TODO: are the signs inverted? see differences between SARPROP paper and iRprop */
        +						if (temp_slopes < 0.0)
        +							weights[i] += next_step;
        +						else
        +							weights[i] -= next_step;
        +					}
        +					else if(same_sign < 0.0)
        +					{
        +						#ifndef RAND_MAX
        +						#define	RAND_MAX	0x7fffffff
        +						#endif
        +						if(prev_step < step_error_threshold_factor * MSE)
        +							next_step = prev_step * decrease_factor + (float)rand() / RAND_MAX * RMSE * (fann_type)fann_exp2(-T * epoch + step_error_shift);
        +						else
        +							next_step = fann_max(prev_step * decrease_factor, delta_min);
        +
        +						temp_slopes = 0.0;
        +					}
        +					else
        +					{
        +						if(temp_slopes < 0.0)
        +							weights[i] += prev_step;
        +						else
        +							weights[i] -= prev_step;
        +					}
        +
        +					/* update global data arrays */
        +					prev_steps[i] = next_step;
        +					prev_train_slopes[i] = temp_slopes;
        +
        +				}
        +		}
        +    }
        +
        +	++(ann->sarprop_epoch);
        +
        +	//already computed before
        +	/*//merge of MSEs
        +	for(i=0;i<threadnumb;++i)
        +	{
        +		ann->MSE_value+= ann_vect[i]->MSE_value;
        +		ann->num_MSE+=ann_vect[i]->num_MSE;
        +	}*/
        +	//destroy the copies of the ann
        +	for(i=0; i<(int)threadnumb; i++)
        +	{
        +		fann_destroy(ann_vect[i]);
        +	}
        +	return fann_get_MSE(ann);
        +}
        +
        +float train_epoch_incremental_mod(struct fann *ann, struct fann_train_data *data)
        +{
        +	unsigned int i;
        +
        +	fann_reset_MSE(ann);
        +
        +	for(i = 0; i != data->num_data; i++)
        +	{
        +		fann_train(ann, data->input[i], data->output[i]);
        +	}
        +
        +	return fann_get_MSE(ann);
        +}
        +
        +//the following versions returns also the outputs via the predicted_outputs parameter
        +
        +float train_epoch_batch_parallel(struct fann *ann, struct fann_train_data *data, const unsigned int threadnumb,vector< vector<fann_type> >& predicted_outputs)
        +{
        +	fann_reset_MSE(ann);
        +	predicted_outputs.resize(data->num_data,vector<fann_type> (data->num_output));
        +	vector<struct fann *> ann_vect(threadnumb);
        +	int i=0,j=0;
        +
        +	//generate copies of the ann
        +	omp_set_dynamic(0);
        +	omp_set_num_threads(threadnumb);
        +	#pragma omp parallel private(j)
        +	{
        +
        +		#pragma omp for schedule(static)
        +		for(i=0; i<(int)threadnumb; i++)
        +		{
        +			ann_vect[i]=fann_copy(ann);
        +		}
        +
        +    //parallel computing of the updates
        +
        +        #pragma omp for schedule(static)
        +		for(i = 0; i < (int)data->num_data; i++)
        +		{
        +			j=omp_get_thread_num();
        +
        +			fann_type* temp_predicted_output=fann_run(ann_vect[j], data->input[i]);
        +			for(unsigned int k=0;k<data->num_output;++k)
        +			{
        +				predicted_outputs[i][k]=temp_predicted_output[k];
        +			}
        +
        +			fann_compute_MSE(ann_vect[j], data->output[i]);
        +			fann_backpropagate_MSE(ann_vect[j]);
        +			fann_update_slopes_batch(ann_vect[j], ann_vect[j]->first_layer + 1, ann_vect[j]->last_layer - 1);
        +		}
        +	}
        +
        +    //parallel update of the weights
        +	{
        +		const unsigned int num_data=data->num_data;
        +		const unsigned int first_weight=0;
        +		const unsigned int past_end=ann->total_connections;
        +		fann_type *weights = ann->weights;
        +		const fann_type epsilon = ann->learning_rate / num_data;
        +		omp_set_dynamic(0);
        +		omp_set_num_threads(threadnumb);
        +		#pragma omp parallel
        +		{
        +			#pragma omp for schedule(static)
        +				for(i=first_weight; i < (int)past_end; i++)
        +				{
        +					fann_type temp_slopes=0.0;
        +					unsigned int k;
        +					fann_type *train_slopes;
        +					for(k=0;k<threadnumb;++k)
        +					{
        +						train_slopes=ann_vect[k]->train_slopes;
        +						temp_slopes+= train_slopes[i];
        +						train_slopes[i]=0.0;
        +					}
        +					weights[i] += temp_slopes*epsilon;
        +				}
        +			}
        +	}
        +	//merge of MSEs
        +	for(i=0;i<(int)threadnumb;++i)
        +	{
        +		ann->MSE_value+= ann_vect[i]->MSE_value;
        +		ann->num_MSE+=ann_vect[i]->num_MSE;
        +		fann_destroy(ann_vect[i]);
        +	}
        +	return fann_get_MSE(ann);
        +}
        +
        +
        +float train_epoch_irpropm_parallel(struct fann *ann, struct fann_train_data *data, const unsigned int threadnumb, vector< vector<fann_type> >& predicted_outputs)
        +{
        +
        +	if(ann->prev_train_slopes == NULL)
        +	{
        +		fann_clear_train_arrays(ann);
        +	}
        +
        +
        +		fann_reset_MSE(ann);
        +		predicted_outputs.resize(data->num_data,vector<fann_type> (data->num_output));
        +		vector<struct fann *> ann_vect(threadnumb);
        +		int i=0,j=0;
        +
        +		//generate copies of the ann
        +		omp_set_dynamic(0);
        +		omp_set_num_threads(threadnumb);
        +		#pragma omp parallel private(j)
        +		{
        +
        +			#pragma omp for schedule(static)
        +			for(i=0; i<(int)threadnumb; i++)
        +			{
        +				ann_vect[i]=fann_copy(ann);
        +			}
        +
        +	    //parallel computing of the updates
        +
        +	        #pragma omp for schedule(static)
        +			for(i = 0; i < (int)data->num_data; i++)
        +			{
        +				j=omp_get_thread_num();
        +
        +				fann_type* temp_predicted_output=fann_run(ann_vect[j], data->input[i]);
        +				for(unsigned int k=0;k<data->num_output;++k)
        +				{
        +					predicted_outputs[i][k]=temp_predicted_output[k];
        +				}
        +				fann_compute_MSE(ann_vect[j], data->output[i]);
        +				fann_backpropagate_MSE(ann_vect[j]);
        +				fann_update_slopes_batch(ann_vect[j], ann_vect[j]->first_layer + 1, ann_vect[j]->last_layer - 1);
        +			}
        +	}
        +
        +	{
        +    	fann_type *weights = ann->weights;
        +    	fann_type *prev_steps = ann->prev_steps;
        +    	fann_type *prev_train_slopes = ann->prev_train_slopes;
        +
        +    	fann_type next_step;
        +
        +    	const float increase_factor = ann->rprop_increase_factor;	//1.2;
        +    	const float decrease_factor = ann->rprop_decrease_factor;	//0.5;
        +    	const float delta_min = ann->rprop_delta_min;	//0.0;
        +    	const float delta_max = ann->rprop_delta_max;	//50.0;
        +		const unsigned int first_weight=0;
        +		const unsigned int past_end=ann->total_connections;
        +
        +		omp_set_dynamic(0);
        +		omp_set_num_threads(threadnumb);
        +		#pragma omp parallel private(next_step)
        +		{
        +			#pragma omp for schedule(static)
        +				for(i=first_weight; i < (int)past_end; i++)
        +				{
        +
        +		    		const fann_type prev_step = fann_max(prev_steps[i], (fann_type) 0.0001);	// prev_step may not be zero because then the training will stop
        +
        +		    		fann_type temp_slopes=0.0;
        +					unsigned int k;
        +					fann_type *train_slopes;
        +					for(k=0;k<threadnumb;++k)
        +					{
        +						train_slopes=ann_vect[k]->train_slopes;
        +						temp_slopes+= train_slopes[i];
        +						train_slopes[i]=0.0;
        +					}
        +
        +		    		const fann_type prev_slope = prev_train_slopes[i];
        +
        +		    		const fann_type same_sign = prev_slope * temp_slopes;
        +
        +		    		if(same_sign >= 0.0)
        +		    			next_step = fann_min(prev_step * increase_factor, delta_max);
        +		    		else
        +		    		{
        +		    			next_step = fann_max(prev_step * decrease_factor, delta_min);
        +		    			temp_slopes = 0;
        +		    		}
        +
        +		    		if(temp_slopes < 0)
        +		    		{
        +		    			weights[i] -= next_step;
        +		    			if(weights[i] < -1500)
        +		    				weights[i] = -1500;
        +		    		}
        +		    		else
        +		    		{
        +		    			weights[i] += next_step;
        +		    			if(weights[i] > 1500)
        +		    				weights[i] = 1500;
        +		    		}
        +
        +		    		// update global data arrays
        +		    		prev_steps[i] = next_step;
        +		    		prev_train_slopes[i] = temp_slopes;
        +
        +				}
        +			}
        +	}
        +
        +	//merge of MSEs
        +	for(i=0;i<(int)threadnumb;++i)
        +	{
        +		ann->MSE_value+= ann_vect[i]->MSE_value;
        +		ann->num_MSE+=ann_vect[i]->num_MSE;
        +		fann_destroy(ann_vect[i]);
        +	}
        +	return fann_get_MSE(ann);
        +}
        +
        +
        +float train_epoch_quickprop_parallel(struct fann *ann, struct fann_train_data *data, const unsigned int threadnumb, vector< vector<fann_type> >& predicted_outputs)
        +{
        +
        +	if(ann->prev_train_slopes == NULL)
        +	{
        +		fann_clear_train_arrays(ann);
        +	}
        +
        +
        +		fann_reset_MSE(ann);
        +		predicted_outputs.resize(data->num_data,vector<fann_type> (data->num_output));
        +		vector<struct fann *> ann_vect(threadnumb);
        +		int i=0,j=0;
        +
        +		//generate copies of the ann
        +		omp_set_dynamic(0);
        +		omp_set_num_threads(threadnumb);
        +		#pragma omp parallel private(j)
        +		{
        +
        +			#pragma omp for schedule(static)
        +			for(i=0; i<(int)threadnumb; i++)
        +			{
        +				ann_vect[i]=fann_copy(ann);
        +			}
        +
        +	    //parallel computing of the updates
        +
        +	        #pragma omp for schedule(static)
        +			for(i = 0; i < (int)data->num_data; i++)
        +			{
        +				j=omp_get_thread_num();
        +
        +				fann_type* temp_predicted_output=fann_run(ann_vect[j], data->input[i]);
        +				for(unsigned int k=0;k<data->num_output;++k)
        +				{
        +					predicted_outputs[i][k]=temp_predicted_output[k];
        +				}
        +			fann_compute_MSE(ann_vect[j], data->output[i]);
        +			fann_backpropagate_MSE(ann_vect[j]);
        +			fann_update_slopes_batch(ann_vect[j], ann_vect[j]->first_layer + 1, ann_vect[j]->last_layer - 1);
        +		}
        +	}
        +
        +    {
        +    	fann_type *weights = ann->weights;
        +    	fann_type *prev_steps = ann->prev_steps;
        +    	fann_type *prev_train_slopes = ann->prev_train_slopes;
        +		const unsigned int first_weight=0;
        +		const unsigned int past_end=ann->total_connections;
        +
        +    	fann_type w=0.0, next_step;
        +
        +    	const float epsilon = ann->learning_rate / data->num_data;
        +    	const float decay = ann->quickprop_decay;	/*-0.0001;*/
        +    	const float mu = ann->quickprop_mu;	/*1.75; */
        +    	const float shrink_factor = (float) (mu / (1.0 + mu));
        +
        +		omp_set_dynamic(0);
        +		omp_set_num_threads(threadnumb);
        +		#pragma omp parallel private(w, next_step)
        +		{
        +			#pragma omp for schedule(static)
        +				for(i=first_weight; i < (int)past_end; i++)
        +				{
        +
        +					w = weights[i];
        +
        +					fann_type temp_slopes=0.0;
        +					unsigned int k;
        +					fann_type *train_slopes;
        +					for(k=0;k<threadnumb;++k)
        +					{
        +						train_slopes=ann_vect[k]->train_slopes;
        +						temp_slopes+= train_slopes[i];
        +						train_slopes[i]=0.0;
        +					}
        +					temp_slopes+= decay * w;
        +
        +					const fann_type prev_step = prev_steps[i];
        +					const fann_type prev_slope = prev_train_slopes[i];
        +
        +					next_step = 0.0;
        +
        +
        +					/* The step must always be in direction opposite to the slope. */
        +					if(prev_step > 0.001)
        +					{
        +						/* If last step was positive...  */
        +						if(temp_slopes > 0.0) /*  Add in linear term if current slope is still positive. */
        +							next_step += epsilon * temp_slopes;
        +
        +						/*If current slope is close to or larger than prev slope...  */
        +						if(temp_slopes > (shrink_factor * prev_slope))
        +							next_step += mu * prev_step;	/* Take maximum size negative step. */
        +						else
        +							next_step += prev_step * temp_slopes / (prev_slope - temp_slopes);	/* Else, use quadratic estimate. */
        +					}
        +					else if(prev_step < -0.001)
        +					{
        +						/* If last step was negative...  */
        +						if(temp_slopes < 0.0) /*  Add in linear term if current slope is still negative. */
        +							next_step += epsilon * temp_slopes;
        +
        +						/* If current slope is close to or more neg than prev slope... */
        +						if(temp_slopes < (shrink_factor * prev_slope))
        +							next_step += mu * prev_step;	/* Take maximum size negative step. */
        +						else
        +							next_step += prev_step * temp_slopes / (prev_slope - temp_slopes);	/* Else, use quadratic estimate. */
        +					}
        +					else /* Last step was zero, so use only linear term. */
        +						next_step += epsilon * temp_slopes;
        +
        +					/* update global data arrays */
        +					prev_steps[i] = next_step;
        +					prev_train_slopes[i] = temp_slopes;
        +
        +					w += next_step;
        +
        +					if(w > 1500)
        +						weights[i] = 1500;
        +					else if(w < -1500)
        +						weights[i] = -1500;
        +					else
        +						weights[i] = w;
        +				}
        +		}
        +	}
        +	//merge of MSEs
        +	for(i=0;i<(int)threadnumb;++i)
        +	{
        +		ann->MSE_value+= ann_vect[i]->MSE_value;
        +		ann->num_MSE+=ann_vect[i]->num_MSE;
        +		fann_destroy(ann_vect[i]);
        +	}
        +	return fann_get_MSE(ann);
        +}
        +
        +
        +float train_epoch_sarprop_parallel(struct fann *ann, struct fann_train_data *data, const unsigned int threadnumb, vector< vector<fann_type> >& predicted_outputs)
        +{
        +
        +	if(ann->prev_train_slopes == NULL)
        +	{
        +		fann_clear_train_arrays(ann);
        +	}
        +
        +
        +		fann_reset_MSE(ann);
        +		predicted_outputs.resize(data->num_data,vector<fann_type> (data->num_output));
        +		vector<struct fann *> ann_vect(threadnumb);
        +		int i=0,j=0;
        +
        +		//generate copies of the ann
        +		omp_set_dynamic(0);
        +		omp_set_num_threads(threadnumb);
        +		#pragma omp parallel private(j)
        +		{
        +
        +			#pragma omp for schedule(static)
        +			for(i=0; i<(int)threadnumb; i++)
        +			{
        +				ann_vect[i]=fann_copy(ann);
        +			}
        +
        +	    //parallel computing of the updates
        +
        +	        #pragma omp for schedule(static)
        +			for(i = 0; i < (int)data->num_data; i++)
        +			{
        +				j=omp_get_thread_num();
        +
        +				fann_type* temp_predicted_output=fann_run(ann_vect[j], data->input[i]);
        +				for(unsigned int k=0;k<data->num_output;++k)
        +				{
        +					predicted_outputs[i][k]=temp_predicted_output[k];
        +				}
        +			fann_compute_MSE(ann_vect[j], data->output[i]);
        +			fann_backpropagate_MSE(ann_vect[j]);
        +			fann_update_slopes_batch(ann_vect[j], ann_vect[j]->first_layer + 1, ann_vect[j]->last_layer - 1);
        +		}
        +	}
        +
        +    {
        +    	fann_type *weights = ann->weights;
        +    	fann_type *prev_steps = ann->prev_steps;
        +    	fann_type *prev_train_slopes = ann->prev_train_slopes;
        +		const unsigned int first_weight=0;
        +		const unsigned int past_end=ann->total_connections;
        +		const unsigned int epoch=ann->sarprop_epoch;
        +
        +    	fann_type next_step;
        +
        +    	/* These should be set from variables */
        +    	const float increase_factor = ann->rprop_increase_factor;	/*1.2; */
        +    	const float decrease_factor = ann->rprop_decrease_factor;	/*0.5; */
        +    	/* TODO: why is delta_min 0.0 in iRprop? SARPROP uses 1x10^-6 (Braun and Riedmiller, 1993) */
        +    	const float delta_min = 0.000001f;
        +    	const float delta_max = ann->rprop_delta_max;	/*50.0; */
        +    	const float weight_decay_shift = ann->sarprop_weight_decay_shift; /* ld 0.01 = -6.644 */
        +    	const float step_error_threshold_factor = ann->sarprop_step_error_threshold_factor; /* 0.1 */
        +    	const float step_error_shift = ann->sarprop_step_error_shift; /* ld 3 = 1.585 */
        +    	const float T = ann->sarprop_temperature;
        +
        +
        +    	//merge of MSEs
        +    	for(i=0;i<(int)threadnumb;++i)
        +    	{
        +    		ann->MSE_value+= ann_vect[i]->MSE_value;
        +    		ann->num_MSE+=ann_vect[i]->num_MSE;
        +    	}
        +
        +    	const float MSE = fann_get_MSE(ann);
        +    	const float RMSE = (float)sqrt(MSE);
        +
        +    	/* for all weights; TODO: are biases included? */
        +		omp_set_dynamic(0);
        +		omp_set_num_threads(threadnumb);
        +		#pragma omp parallel private(next_step)
        +		{
        +			#pragma omp for schedule(static)
        +				for(i=first_weight; i < (int)past_end; i++)
        +				{
        +					/* TODO: confirm whether 1x10^-6 == delta_min is really better */
        +					const fann_type prev_step  = fann_max(prev_steps[i], (fann_type) 0.000001);	/* prev_step may not be zero because then the training will stop */
        +
        +					/* calculate SARPROP slope; TODO: better as new error function? (see SARPROP paper)*/
        +
        +					fann_type temp_slopes=0.0;
        +					unsigned int k;
        +					fann_type *train_slopes;
        +					for(k=0;k<threadnumb;++k)
        +					{
        +						train_slopes=ann_vect[k]->train_slopes;
        +						temp_slopes+= train_slopes[i];
        +						train_slopes[i]=0.0;
        +					}
        +					temp_slopes= -temp_slopes - weights[i] * (fann_type)fann_exp2(-T * epoch + weight_decay_shift);
        +
        +					next_step=0.0;
        +
        +					/* TODO: is prev_train_slopes[i] 0.0 in the beginning? */
        +					const fann_type prev_slope = prev_train_slopes[i];
        +
        +					const fann_type same_sign = prev_slope * temp_slopes;
        +
        +					if(same_sign > 0.0)
        +					{
        +						next_step = fann_min(prev_step * increase_factor, delta_max);
        +						/* TODO: are the signs inverted? see differences between SARPROP paper and iRprop */
        +						if (temp_slopes < 0.0)
        +							weights[i] += next_step;
        +						else
        +							weights[i] -= next_step;
        +					}
        +					else if(same_sign < 0.0)
        +					{
        +						#ifndef RAND_MAX
        +						#define	RAND_MAX	0x7fffffff
        +						#endif
        +						if(prev_step < step_error_threshold_factor * MSE)
        +							next_step = prev_step * decrease_factor + (float)rand() / RAND_MAX * RMSE * (fann_type)fann_exp2(-T * epoch + step_error_shift);
        +						else
        +							next_step = fann_max(prev_step * decrease_factor, delta_min);
        +
        +						temp_slopes = 0.0;
        +					}
        +					else
        +					{
        +						if(temp_slopes < 0.0)
        +							weights[i] += prev_step;
        +						else
        +							weights[i] -= prev_step;
        +					}
        +
        +					/* update global data arrays */
        +					prev_steps[i] = next_step;
        +					prev_train_slopes[i] = temp_slopes;
        +
        +				}
        +		}
        +    }
        +
        +	++(ann->sarprop_epoch);
        +
        +	//already computed before
        +	/*//merge of MSEs
        +	for(i=0;i<threadnumb;++i)
        +	{
        +		ann->MSE_value+= ann_vect[i]->MSE_value;
        +		ann->num_MSE+=ann_vect[i]->num_MSE;
        +	}*/
        +	//destroy the copies of the ann
        +	for(i=0; i<(int)threadnumb; i++)
        +	{
        +		fann_destroy(ann_vect[i]);
        +	}
        +	return fann_get_MSE(ann);
        +}
        +
        +
        +float train_epoch_incremental_mod(struct fann *ann, struct fann_train_data *data, vector< vector<fann_type> >& predicted_outputs)
        +{
        +
        +	predicted_outputs.resize(data->num_data,vector<fann_type> (data->num_output));
        +	fann_reset_MSE(ann);
        +
        +	for(unsigned int i = 0; i < data->num_data; ++i)
        +	{
        +		fann_type* temp_predicted_output=fann_run(ann, data->input[i]);
        +		for(unsigned int k=0;k<data->num_output;++k)
        +		{
        +			predicted_outputs[i][k]=temp_predicted_output[k];
        +		}
        +
        +		fann_compute_MSE(ann, data->output[i]);
        +
        +		fann_backpropagate_MSE(ann);
        +
        +		fann_update_weights(ann);
        +	}
        +
        +	return fann_get_MSE(ann);
        +}
        +
        +float test_data_parallel(struct fann *ann, struct fann_train_data *data, const unsigned int threadnumb)
        +{
        +	if(fann_check_input_output_sizes(ann, data) == -1)
        +		return 0;
        +
        +	fann_reset_MSE(ann);
        +	vector<struct fann *> ann_vect(threadnumb);
        +	int i=0,j=0;
        +
        +		//generate copies of the ann
        +		omp_set_dynamic(0);
        +		omp_set_num_threads(threadnumb);
        +		#pragma omp parallel private(j)
        +		{
        +
        +			#pragma omp for schedule(static)
        +			for(i=0; i<(int)threadnumb; i++)
        +			{
        +				ann_vect[i]=fann_copy(ann);
        +			}
        +
        +			//parallel computing of the updates
        +
        +	        #pragma omp for schedule(static)
        +			for(i = 0; i < (int)data->num_data; ++i)
        +			{
        +				j=omp_get_thread_num();
        +				fann_test(ann_vect[j], data->input[i],data->output[i]);
        +			}
        +		}
        +	//merge of MSEs
        +	for(i=0;i<(int)threadnumb;++i)
        +	{
        +		ann->MSE_value+= ann_vect[i]->MSE_value;
        +		ann->num_MSE+=ann_vect[i]->num_MSE;
        +		fann_destroy(ann_vect[i]);
        +	}
        +	return fann_get_MSE(ann);
        +}
        +
        +float test_data_parallel(struct fann *ann, struct fann_train_data *data, const unsigned int threadnumb, vector< vector<fann_type> >& predicted_outputs)
        +{
        +	if(fann_check_input_output_sizes(ann, data) == -1)
        +		return 0;
        +	predicted_outputs.resize(data->num_data,vector<fann_type> (data->num_output));
        +	fann_reset_MSE(ann);
        +	vector<struct fann *> ann_vect(threadnumb);
        +	int i=0,j=0;
        +
        +		//generate copies of the ann
        +		omp_set_dynamic(0);
        +		omp_set_num_threads(threadnumb);
        +		#pragma omp parallel private(j)
        +		{
        +
        +			#pragma omp for schedule(static)
        +			for(i=0; i<(int)threadnumb; i++)
        +			{
        +				ann_vect[i]=fann_copy(ann);
        +			}
        +
        +			//parallel computing of the updates
        +
        +	        #pragma omp for schedule(static)
        +			for(i = 0; i < (int)data->num_data; ++i)
        +			{
        +				j=omp_get_thread_num();
        +
        +				fann_type* temp_predicted_output=fann_test(ann_vect[j], data->input[i],data->output[i]);
        +				for(unsigned int k=0;k<data->num_output;++k)
        +				{
        +					predicted_outputs[i][k]=temp_predicted_output[k];
        +				}
        +
        +			}
        +		}
        +	//merge of MSEs
        +	for(i=0;i<(int)threadnumb;++i)
        +	{
        +		ann->MSE_value+= ann_vect[i]->MSE_value;
        +		ann->num_MSE+=ann_vect[i]->num_MSE;
        +		fann_destroy(ann_vect[i]);
        +	}
        +	return fann_get_MSE(ann);
        +}
        +}
        +#endif /* DISABLE_PARALLEL_FANN */
        \ No newline at end of file
        diff --git a/lib/ann/fann/src/parallel_floatfann_cpp.cpp b/lib/ann/fann/src/parallel_floatfann_cpp.cpp
        new file mode 100644
        index 0000000..4321e14
        --- /dev/null
        +++ b/lib/ann/fann/src/parallel_floatfann_cpp.cpp
        @@ -0,0 +1,27 @@
        +/*
        +Fast Artificial Neural Network Library (fann)
        +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com)
        +
        +This library is free software; you can redistribute it and/or
        +modify it under the terms of the GNU Lesser General Public
        +License as published by the Free Software Foundation; either
        +version 2.1 of the License, or (at your option) any later version.
        +
        +This library is distributed in the hope that it will be useful,
        +but WITHOUT ANY WARRANTY; without even the implied warranty of
        +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
        +Lesser General Public License for more details.
        +
        +You should have received a copy of the GNU Lesser General Public
        +License along with this library; if not, write to the Free Software
        +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        +*/
        +
        +/* Easy way to allow for build of multiple binaries */
        +
        +#ifndef DISABLE_PARALLEL_FANN
        +#include "config.h"
        +#include "floatfann.h"
        +
        +#include "parallel_fann_cpp.cpp"
        +#endif /* DISABLE_PARALLEL_FANN */
        diff --git a/lib/ann/fann/tests/CMakeLists.txt b/lib/ann/fann/tests/CMakeLists.txt
        new file mode 100644
        index 0000000..c79d4a7
        --- /dev/null
        +++ b/lib/ann/fann/tests/CMakeLists.txt
        @@ -0,0 +1,25 @@
        +project (fann_tests)
        +include(CheckCXXCompilerFlag)
        +
        +INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src/include)
        +INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/lib/googletest/include)
        +
        +CHECK_CXX_COMPILER_FLAG("-std=c++14" COMPILER_SUPPORTS_CXX14)
        +CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
        +CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
        +if(COMPILER_SUPPORTS_CXX14)
        +    message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has C++14 support.")
        +    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
        +elseif(COMPILER_SUPPORTS_CXX11)
        +    message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has C++11 support.")
        +    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
        +elseif(COMPILER_SUPPORTS_CXX0X)
        +    message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has C++0x support.")
        +    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
        +else()
        +    message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++0x, C++11 or C++14 support. FANN will still work with no problem, but the tests will not be able to compile.")
        +    return()
        +endif()
        +
        +ADD_EXECUTABLE(fann_tests main.cpp fann_test.cpp fann_test_data.cpp fann_test_train.cpp)
        +target_link_libraries(fann_tests gtest doublefann)
        diff --git a/lib/ann/fann/tests/fann_test.cpp b/lib/ann/fann/tests/fann_test.cpp
        new file mode 100644
        index 0000000..10c9235
        --- /dev/null
        +++ b/lib/ann/fann/tests/fann_test.cpp
        @@ -0,0 +1,168 @@
        +#include <vector>
        +#include "fann_test.h"
        +
        +using namespace std;
        +
        +void FannTest::SetUp() {
        +    //ensure random generator is seeded at a known value to ensure reproducible results
        +    srand(0);
        +    fann_disable_seed_rand();
        +}
        +
        +void FannTest::TearDown() {
        +    net.destroy();
        +    data.destroy_train();
        +}
        +
        +void FannTest::AssertCreate(neural_net &net, unsigned int numLayers, const unsigned int *layers,
        +                            unsigned int neurons, unsigned int connections) {
        +    EXPECT_EQ(numLayers, net.get_num_layers());
        +    EXPECT_EQ(layers[0], net.get_num_input());
        +    EXPECT_EQ(layers[numLayers - 1], net.get_num_output());
        +    unsigned int *layers_res = new unsigned int[numLayers];
        +    net.get_layer_array(layers_res);
        +    for (unsigned int i = 0; i < numLayers; i++) {
        +        EXPECT_EQ(layers[i], layers_res[i]);
        +    }
        +    delete layers_res;
        +
        +    EXPECT_EQ(neurons, net.get_total_neurons());
        +    EXPECT_EQ(connections, net.get_total_connections());
        +
        +    AssertWeights(net, -0.09, 0.09, 0.0);
        +}
        +
        +void FannTest::AssertCreateAndCopy(neural_net &net, unsigned int numLayers, const unsigned int *layers, unsigned int neurons,
        +                                   unsigned int connections) {
        +    AssertCreate(net, numLayers, layers, neurons, connections);
        +    neural_net net_copy(net);
        +    AssertCreate(net_copy, numLayers, layers, neurons, connections);
        +}
        +
        +void FannTest::AssertWeights(neural_net &net, fann_type min, fann_type max, fann_type avg) {
        +    connection *connections = new connection[net.get_total_connections()];
        +    net.get_connection_array(connections);
        +
        +    fann_type minWeight = connections[0].weight;
        +    fann_type maxWeight = connections[0].weight;
        +    fann_type totalWeight = 0.0;
        +    for (int i = 1; i < net.get_total_connections(); ++i) {
        +        if (connections[i].weight < minWeight)
        +            minWeight = connections[i].weight;
        +        if (connections[i].weight > maxWeight)
        +            maxWeight = connections[i].weight;
        +        totalWeight += connections[i].weight;
        +    }
        +
        +    EXPECT_NEAR(min, minWeight, 0.05);
        +    EXPECT_NEAR(max, maxWeight, 0.05);
        +    EXPECT_NEAR(avg, totalWeight / (fann_type) net.get_total_connections(), 0.5);
        +}
        +
        +TEST_F(FannTest, CreateStandardThreeLayers) {
        +    neural_net net(LAYER, 3, 2, 3, 4);
        +    AssertCreateAndCopy(net, 3, (const unsigned int[]) {2, 3, 4}, 11, 25);
        +}
        +
        +TEST_F(FannTest, CreateStandardThreeLayersUsingCreateMethod) {
        +    ASSERT_TRUE(net.create_standard(3, 2, 3, 4));
        +    unsigned int layers[] = {2, 3, 4};
        +    AssertCreateAndCopy(net, 3, layers, 11, 25);
        +}
        +
        +TEST_F(FannTest, CreateStandardFourLayersArray) {
        +    unsigned int layers[] = {2, 3, 4, 5};
        +    neural_net net(LAYER, 4, layers);
        +    AssertCreateAndCopy(net, 4, layers, 17, 50);
        +}
        +
        +TEST_F(FannTest, CreateStandardFourLayersArrayUsingCreateMethod) {
        +    unsigned int layers[] = {2, 3, 4, 5};
        +    ASSERT_TRUE(net.create_standard_array(4, layers));
        +    AssertCreateAndCopy(net, 4, layers, 17, 50);
        +}
        +
        +TEST_F(FannTest, CreateStandardFourLayersVector) {
        +    vector<unsigned int> layers{2, 3, 4, 5};
        +    neural_net net(LAYER, layers.begin(), layers.end());
        +    AssertCreateAndCopy(net, 4, layers.data(), 17, 50);
        +}
        +
        +TEST_F(FannTest, CreateSparseFourLayers) {
        +    neural_net net(0.5, 4, 2, 3, 4, 5);
        +    AssertCreateAndCopy(net, 4, (const unsigned int[]){2, 3, 4, 5}, 17, 31);
        +}
        +
        +TEST_F(FannTest, CreateSparseFourLayersUsingCreateMethod) {
        +    ASSERT_TRUE(net.create_sparse(0.5f, 4, 2, 3, 4, 5));
        +    AssertCreateAndCopy(net, 4, (const unsigned int[]){2, 3, 4, 5}, 17, 31);
        +}
        +
        +TEST_F(FannTest, CreateSparseArrayFourLayers) {
        +    unsigned int layers[] = {2, 3, 4, 5};
        +    neural_net net(0.5f, 4, layers);
        +    AssertCreateAndCopy(net, 4, layers, 17, 31);
        +}
        +
        +TEST_F(FannTest, CreateSparseArrayFourLayersUsingCreateMethod) {
        +    unsigned int layers[] = {2, 3, 4, 5};
        +    ASSERT_TRUE(net.create_sparse_array(0.5f, 4, layers));
        +    AssertCreateAndCopy(net, 4, layers, 17, 31);
        +}
        +
        +TEST_F(FannTest, CreateSparseArrayWithMinimalConnectivity) {
        +    unsigned int layers[] = {2, 2, 2};
        +    neural_net net(0.01f, 3, layers);
        +    AssertCreateAndCopy(net, 3, layers, 8, 8);
        +}
        +
        +TEST_F(FannTest, CreateShortcutFourLayers) {
        +    neural_net net(SHORTCUT, 4, 2, 3, 4, 5);
        +    AssertCreateAndCopy(net, 4, (const unsigned int[]){2, 3, 4, 5}, 15, 83);
        +    EXPECT_EQ(SHORTCUT, net.get_network_type());
        +}
        +
        +TEST_F(FannTest, CreateShortcutFourLayersUsingCreateMethod) {
        +    ASSERT_TRUE(net.create_shortcut(4, 2, 3, 4, 5));
        +    AssertCreateAndCopy(net, 4, (const unsigned int[]){2, 3, 4, 5}, 15, 83);
        +    EXPECT_EQ(SHORTCUT, net.get_network_type());
        +}
        +
        +TEST_F(FannTest, CreateShortcutArrayFourLayers) {
        +    unsigned int layers[] = {2, 3, 4, 5};
        +    neural_net net(SHORTCUT, 4, layers);
        +    AssertCreateAndCopy(net, 4, layers, 15, 83);
        +    EXPECT_EQ(SHORTCUT, net.get_network_type());
        +}
        +
        +TEST_F(FannTest, CreateShortcutArrayFourLayersUsingCreateMethod) {
        +    unsigned int layers[] = {2, 3, 4, 5};
        +    ASSERT_TRUE(net.create_shortcut_array(4, layers));
        +    AssertCreateAndCopy(net, 4, layers, 15, 83);
        +    EXPECT_EQ(SHORTCUT, net.get_network_type());
        +}
        +
        +TEST_F(FannTest, CreateFromFile) {
        +    ASSERT_TRUE(net.create_standard(3, 2, 3, 4));
        +    neural_net netToBeSaved(LAYER, 3, 2, 3, 4);
        +    ASSERT_TRUE(netToBeSaved.save("tmpfile"));
        +
        +    neural_net netToBeLoaded("tmpfile");
        +    AssertCreateAndCopy(netToBeLoaded, 3, (const unsigned int[]){2, 3, 4}, 11, 25);
        +}
        +
        +TEST_F(FannTest, CreateFromFileUsingCreateMethod) {
        +    ASSERT_TRUE(net.create_standard(3, 2, 3, 4));
        +    neural_net inputNet(LAYER, 3, 2, 3, 4);
        +    ASSERT_TRUE(inputNet.save("tmpfile"));
        +
        +    ASSERT_TRUE(net.create_from_file("tmpfile"));
        +
        +    AssertCreateAndCopy(net, 3, (const unsigned int[]){2, 3, 4}, 11, 25);
        +}
        +
        +TEST_F(FannTest, RandomizeWeights) {
        +    neural_net net(LAYER, 2, 20, 10);
        +    net.randomize_weights(-1.0, 1.0);
        +    AssertWeights(net, -1.0, 1.0, 0);
        +}
        diff --git a/lib/ann/fann/tests/fann_test.h b/lib/ann/fann/tests/fann_test.h
        new file mode 100644
        index 0000000..d4e9d74
        --- /dev/null
        +++ b/lib/ann/fann/tests/fann_test.h
        @@ -0,0 +1,29 @@
        +#ifndef FANN_FANN_TEST_H
        +#define FANN_FANN_TEST_H
        +
        +#include "gtest/gtest.h"
        +
        +#include "doublefann.h"
        +#include "fann_cpp.h"
        +
        +using namespace FANN;
        +
        +class FannTest : public testing::Test {
        +protected:
        +    neural_net net;
        +    training_data data;
        +
        +    void AssertCreateAndCopy(neural_net &net, unsigned int numLayers, const unsigned int *layers, unsigned int neurons,
        +                             unsigned int connections);
        +
        +    void AssertCreate(neural_net &net, unsigned int numLayers, const unsigned int *layers,
        +                      unsigned int neurons, unsigned int connections);
        +
        +    void AssertWeights(neural_net &net, fann_type min, fann_type max, fann_type avg);
        +
        +    virtual void SetUp();
        +
        +    virtual void TearDown();
        +};
        +
        +#endif
        diff --git a/lib/ann/fann/tests/fann_test_data.cpp b/lib/ann/fann/tests/fann_test_data.cpp
        new file mode 100644
        index 0000000..ac3d132
        --- /dev/null
        +++ b/lib/ann/fann/tests/fann_test_data.cpp
        @@ -0,0 +1,166 @@
        +#include "fann_test_data.h"
        +
        +void FannTestData::SetUp() {
        +    FannTest::SetUp();
        +
        +    numData = 2;
        +    numInput = 3;
        +    numOutput = 1;
        +    inputValue = 1.1;
        +    outputValue = 2.2;
        +
        +    inputData = new fann_type *[numData];
        +    outputData = new fann_type *[numData];
        +
        +    InitializeTrainDataStructure(numData, numInput, numOutput, inputValue, outputValue, inputData, outputData);
        +}
        +
        +void FannTestData::TearDown() {
        +    FannTest::TearDown();
        +    delete(inputData);
        +    delete(outputData);
        +}
        +
        +void FannTestData::InitializeTrainDataStructure(unsigned int numData,
        +                                                unsigned int numInput,
        +                                                unsigned int numOutput,
        +                                                fann_type inputValue, fann_type outputValue,
        +                                                fann_type **inputData,
        +                                                fann_type **outputData) {
        +    for (unsigned int i = 0; i < numData; i++) {
        +        inputData[i] = new fann_type[numInput];
        +        outputData[i] = new fann_type[numOutput];
        +        for (unsigned int j = 0; j < numInput; j++)
        +            inputData[i][j] = inputValue;
        +        for (unsigned int j = 0; j < numOutput; j++)
        +            outputData[i][j] = outputValue;
        +    }
        +}
        +
        +void FannTestData::AssertTrainData(training_data &trainingData, unsigned int numData, unsigned int numInput,
        +                                   unsigned int numOutput, fann_type inputValue, fann_type outputValue) {
        +    EXPECT_EQ(numData, trainingData.length_train_data());
        +    EXPECT_EQ(numInput, trainingData.num_input_train_data());
        +    EXPECT_EQ(numOutput, trainingData.num_output_train_data());
        +
        +    for (int i = 0; i < numData; i++) {
        +        for (int j = 0; j < numInput; j++)
        +                EXPECT_DOUBLE_EQ(inputValue, trainingData.get_input()[i][j]);
        +        for (int j = 0; j < numOutput; j++)
        +                EXPECT_DOUBLE_EQ(outputValue, trainingData.get_output()[i][j]);
        +    }
        +}
        +
        +
        +TEST_F(FannTestData, CreateTrainDataFromPointerArrays) {
        +    data.set_train_data(numData, numInput, inputData, numOutput, outputData);
        +
        +    AssertTrainData(data, numData, numInput, numOutput, inputValue, outputValue);
        +}
        +
        +TEST_F(FannTestData, CreateTrainDataFromArrays) {
        +    fann_type input[] = {inputValue, inputValue, inputValue, inputValue, inputValue, inputValue};
        +    fann_type output[] = {outputValue, outputValue};
        +    data.set_train_data(numData, numInput, input, numOutput, output);
        +
        +    AssertTrainData(data, numData, numInput, numOutput, inputValue, outputValue);
        +}
        +
        +TEST_F(FannTestData, CreateTrainDataFromCopy) {
        +    data.set_train_data(numData, numInput, inputData, numOutput, outputData);
        +    training_data dataCopy(data);
        +
        +    AssertTrainData(dataCopy, numData, numInput, numOutput, inputValue, outputValue);
        +}
        +
        +TEST_F(FannTestData, CreateTrainDataFromFile) {
        +    data.set_train_data(numData, numInput, inputData, numOutput, outputData);
        +    data.save_train("tmpFile");
        +    training_data dataCopy;
        +    dataCopy.read_train_from_file("tmpFile");
        +
        +    AssertTrainData(dataCopy, numData, numInput, numOutput, inputValue, outputValue);
        +}
        +
        +void callBack(unsigned int pos, unsigned int numInput, unsigned int numOutput, fann_type *input, fann_type *output) {
        +    for(unsigned int i = 0; i < numInput; i++)
        +        input[i] = (fann_type) 1.2;
        +    for(unsigned int i = 0; i < numOutput; i++)
        +        output[i] = (fann_type) 2.3;
        +}
        +
        +TEST_F(FannTestData, CreateTrainDataFromCallback) {
        +    data.create_train_from_callback(numData, numInput, numOutput, callBack);
        +    AssertTrainData(data, numData, numInput, numOutput, 1.2, 2.3);
        +}
        +
        +TEST_F(FannTestData, ShuffleTrainData) {
        +    //only really ensures that the data doesn't get corrupted, a more complete test would need to check
        +    //that this was indeed a permutation of the original data
        +    data.set_train_data(numData, numInput, inputData, numOutput, outputData);
        +    data.shuffle_train_data();
        +    AssertTrainData(data, numData, numInput, numOutput, inputValue, outputValue);
        +}
        +
        +TEST_F(FannTestData, MergeTrainData) {
        +    data.set_train_data(numData, numInput, inputData, numOutput, outputData);
        +    training_data dataCopy(data);
        +    data.merge_train_data(dataCopy);
        +    AssertTrainData(data, numData*2, numInput, numOutput, inputValue, outputValue);
        +}
        +
        +TEST_F(FannTestData, SubsetTrainData) {
        +    data.set_train_data(numData, numInput, inputData, numOutput, outputData);
        +    //call merge 2 times to get 8 data samples
        +    data.merge_train_data(data);
        +    data.merge_train_data(data);
        +
        +    data.subset_train_data(2, 5);
        +
        +    AssertTrainData(data, 5, numInput, numOutput, inputValue, outputValue);
        +}
        +
        +TEST_F(FannTestData, ScaleOutputData) {
        +    fann_type input[] = {0.0, 1.0, 0.5, 0.0, 1.0, 0.5};
        +    fann_type output[] = {0.0, 1.0};
        +    data.set_train_data(2, 3, input, 1, output);
        +
        +    data.scale_output_train_data(-1.0, 2.0);
        +
        +    EXPECT_DOUBLE_EQ(0.0, data.get_min_input());
        +    EXPECT_DOUBLE_EQ(1.0, data.get_max_input());
        +    EXPECT_DOUBLE_EQ(-1.0, data.get_min_output());
        +    EXPECT_DOUBLE_EQ(2.0, data.get_max_output());
        +}
        +
        +TEST_F(FannTestData, ScaleInputData) {
        +    fann_type input[] = {0.0, 1.0, 0.5, 0.0, 1.0, 0.5};
        +    fann_type output[] = {0.0, 1.0};
        +    data.set_train_data(2, 3, input, 1, output);
        +
        +    data.scale_input_train_data(-1.0, 2.0);
        +    EXPECT_DOUBLE_EQ(-1.0, data.get_min_input());
        +    EXPECT_DOUBLE_EQ(2.0, data.get_max_input());
        +    EXPECT_DOUBLE_EQ(0.0, data.get_min_output());
        +    EXPECT_DOUBLE_EQ(1.0, data.get_max_output());
        +}
        +
        +TEST_F(FannTestData, ScaleData) {
        +    fann_type input[] = {0.0, 1.0, 0.5, 0.0, 1.0, 0.5};
        +    fann_type output[] = {0.0, 1.0};
        +    data.set_train_data(2, 3, input, 1, output);
        +
        +    data.scale_train_data(-1.0, 2.0);
        +
        +    for(unsigned int i = 0; i < 2; i++) {
        +        fann_type *train_input = data.get_train_input(i);
        +        EXPECT_DOUBLE_EQ(-1.0, train_input[0]);
        +        EXPECT_DOUBLE_EQ(2.0, train_input[1]);
        +        EXPECT_DOUBLE_EQ(0.5, train_input[2]);
        +    }
        +
        +    EXPECT_DOUBLE_EQ(-1.0, data.get_train_output(0)[0]);
        +    EXPECT_DOUBLE_EQ(2.0, data.get_train_output(0)[1]);
        +
        +}
        +
        diff --git a/lib/ann/fann/tests/fann_test_data.h b/lib/ann/fann/tests/fann_test_data.h
        new file mode 100644
        index 0000000..97e19a3
        --- /dev/null
        +++ b/lib/ann/fann/tests/fann_test_data.h
        @@ -0,0 +1,34 @@
        +#ifndef FANN_FANN_TEST_DATA_H
        +#define FANN_FANN_TEST_DATA_H
        +
        +#include "gtest/gtest.h"
        +
        +#include "doublefann.h"
        +#include "fann_cpp.h"
        +#include "fann_test.h"
        +
        +class FannTestData : public FannTest {
        +protected:
        +    unsigned int numData;
        +    unsigned int numInput;
        +    unsigned int numOutput;
        +    fann_type inputValue;
        +    fann_type outputValue;
        +
        +    fann_type **inputData;
        +    fann_type **outputData;
        +
        +    virtual void SetUp();
        +
        +    virtual void TearDown();
        +
        +    void AssertTrainData(FANN::training_data &trainingData, unsigned int numData, unsigned int numInput,
        +                         unsigned int numOutput, fann_type inputValue, fann_type outputValue);
        +
        +
        +    void InitializeTrainDataStructure(unsigned int numData, unsigned int numInput, unsigned int numOutput,
        +                                      fann_type inputValue, fann_type outputValue, fann_type **inputData,
        +                                      fann_type **outputData);
        +};
        +
        +#endif
        diff --git a/lib/ann/fann/tests/fann_test_train.cpp b/lib/ann/fann/tests/fann_test_train.cpp
        new file mode 100644
        index 0000000..c68b334
        --- /dev/null
        +++ b/lib/ann/fann/tests/fann_test_train.cpp
        @@ -0,0 +1,35 @@
        +#include "fann_test_train.h"
        +
        +using namespace std;
        +
        +void FannTestTrain::SetUp() {
        +    FannTest::SetUp();
        +}
        +
        +void FannTestTrain::TearDown() {
        +    FannTest::TearDown();
        +
        +}
        +
        +TEST_F(FannTestTrain, TrainOnDateSimpleXor) {
        +    neural_net net(LAYER, 3, 2, 3, 1);
        +
        +    data.set_train_data(4, 2, xorInput, 1, xorOutput);
        +    net.train_on_data(data, 100, 100, 0.001);
        +
        +    EXPECT_LT(net.get_MSE(), 0.001);
        +    EXPECT_LT(net.test_data(data), 0.001);
        +}
        +
        +TEST_F(FannTestTrain, TrainSimpleIncrementalXor) {
        +    neural_net net(LAYER, 3, 2, 3, 1);
        +
        +    for(int i = 0; i < 100000; i++) {
        +        net.train((fann_type*) (const fann_type[]) {0.0, 0.0}, (fann_type*) (const fann_type[]) {0.0});
        +        net.train((fann_type*) (const fann_type[]) {1.0, 0.0}, (fann_type*) (const fann_type[]) {1.0});
        +        net.train((fann_type*) (const fann_type[]) {0.0, 1.0}, (fann_type*) (const fann_type[]) {1.0});
        +        net.train((fann_type*) (const fann_type[]) {1.0, 1.0}, (fann_type*) (const fann_type[]) {0.0});
        +    }
        +
        +    EXPECT_LT(net.get_MSE(), 0.01);
        +}
        diff --git a/lib/ann/fann/tests/fann_test_train.h b/lib/ann/fann/tests/fann_test_train.h
        new file mode 100644
        index 0000000..4f2e397
        --- /dev/null
        +++ b/lib/ann/fann/tests/fann_test_train.h
        @@ -0,0 +1,24 @@
        +#ifndef FANN_FANN_TEST_TRAIN_H
        +#define FANN_FANN_TEST_TRAIN_H
        +
        +#include "fann_test.h"
        +
        +class FannTestTrain : public FannTest {
        +protected:
        +    fann_type xorInput[8] = {
        +            0.0, 0.0,
        +            0.0, 1.0,
        +            1.0, 0.0,
        +            1.0, 1.0};
        +    fann_type xorOutput[4] = {
        +            0.0,
        +            1.0,
        +            1.0,
        +            0.0};
        +
        +    virtual void SetUp();
        +
        +    virtual void TearDown();
        +};
        +
        +#endif
        diff --git a/lib/ann/fann/tests/main.cpp b/lib/ann/fann/tests/main.cpp
        new file mode 100644
        index 0000000..1659be8
        --- /dev/null
        +++ b/lib/ann/fann/tests/main.cpp
        @@ -0,0 +1,6 @@
        +#include "gtest/gtest.h"
        +
        +int main(int argc, char **argv) {
        +  ::testing::InitGoogleTest(&argc, argv);
        +  return RUN_ALL_TESTS();
        +}
        \ No newline at end of file
        diff --git a/lib/ann/lfann.h b/lib/ann/lfann.h
        new file mode 100644
        index 0000000..f6c801e
        --- /dev/null
        +++ b/lib/ann/lfann.h
        @@ -0,0 +1,48 @@
        +/*
        +    This file is part of lfann.
        +
        +    lfann is free software: you can redistribute it and/or modify
        +    it under the terms of the GNU Lesser General Public License as published by
        +    the Free Software Foundation, either version 3 of the License, or
        +    (at your option) any later version.
        +
        +    lfann is distributed in the hope that it will be useful,
        +    but WITHOUT ANY WARRANTY; without even the implied warranty of
        +    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        +    GNU Lesser General Public License for more details.
        +
        +    You should have received a copy of the GNU Lesser General Public License
        +    along with lfann.  If not, see <http://www.gnu.org/licenses/>.
        +
        +    Copyright (C) 2009 - 2013 Lucas Hermann Negri
        +*/
        +
        +/* C */
        +#define luaL_reg luaL_Reg
        +#include <string.h>
        +
        +/* Lua */
        +#include <lua.h>
        +#include <lauxlib.h>
        +
        +/* FANN */
        +#include <doublefann.h>
        +
        +#include "../lualib.h"
        +#include "../../lua-api.h"
        +
        +#define LIB_NAME "ann"
        +
        +typedef struct
        +{
        +    void* pointer;
        +} Object;
        +
        +typedef struct
        +{
        +    lua_State* L;
        +    int function_ref;
        +    int ud_ref;
        +} CallbackInfo;
        +
        +struct fann_error err_handler;
        diff --git a/lib/ann/net.c b/lib/ann/net.c
        new file mode 100644
        index 0000000..d9ebf0c
        --- /dev/null
        +++ b/lib/ann/net.c
        @@ -0,0 +1,1833 @@
        +/*
        +    This file is part of lfann.
        +
        +    lfann is free software: you can redistribute it and/or modify
        +    it under the terms of the GNU Lesser General Public License as published by
        +    the Free Software Foundation, either version 3 of the License, or
        +    (at your option) any later version.
        +
        +    lfann is distributed in the hope that it will be useful,
        +    but WITHOUT ANY WARRANTY; without even the implied warranty of
        +    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        +    GNU Lesser General Public License for more details.
        +
        +    You should have received a copy of the GNU Lesser General Public License
        +    along with lfann.  If not, see <http://www.gnu.org/licenses/>.
        +
        +    Copyright (C) 2009 - 2013 Lucas Hermann Negri
        +*/
        +
        +static void priv_push_net(lua_State* L, struct fann* ptr)
        +{
        +    if(ptr)
        +    {
        +        Object* obj = lua_newuserdata(L, sizeof(Object));
        +        obj->pointer = ptr;
        +    
        +        luaL_getmetatable(L, "lfannNeT");
        +        lua_setmetatable(L, -2);
        +        fann_set_error_log((struct fann_error *) ptr, NULL);
        +    }
        +    else
        +        lua_pushnil(L);
        +}
        +
        +static int FANN_API priv_callback_handle(struct fann* ann, struct fann_train_data* train,
        +    unsigned int max_epochs, unsigned int epochs_between_reports, 
        +    float desired_error, unsigned int epochs)
        +{
        +    CallbackInfo* ptr = fann_get_user_data(ann);
        +    int ret = 0;
        +    
        +    if(ptr)
        +    {
        +        lua_State* L = ptr->L;
        +        int top = lua_gettop(L);
        +        
        +        lua_rawgeti(L, LUA_REGISTRYINDEX, ptr->function_ref);
        +        lua_rawgeti(L, LUA_REGISTRYINDEX, ptr->ud_ref);
        +        
        +        lua_pushinteger(L, max_epochs);
        +        lua_pushinteger(L, epochs_between_reports);
        +        lua_pushnumber(L, desired_error);
        +        lua_pushinteger(L, epochs);
        +        
        +        lua_call(L, 5, 1);
        +        ret = lua_tointeger(L, -1);
        +        lua_settop(L, top);
        +    }
        +    
        +    return ret;
        +}
        +
        +/* Shared code between network constructors. If anything wrong occours, it
        + * thows an error.
        + * The returned array is always valid, and need to be released by the caller. */
        +static void priv_create_array(lua_State* L, int tbl_index, 
        +    unsigned int* ret_n_layers, unsigned int** ret_arr)
        +{
        +    size_t n_layers;
        +    unsigned int* arr;
        +    size_t i;
        +
        +    #ifdef IDEBUG
        +    fprintf(stderr, "Creating a new Neural Network\n");
        +    #endif
        +
        +    luaL_checktype(L, tbl_index, LUA_TTABLE);
        +    n_layers = lua_objlen(L, tbl_index);
        +    if(n_layers <= 1) luaL_error(L, "Can't create a Neural Network with less than two layers");
        +    
        +    /* Allocated the temp array and get the neurons of each layer */
        +    arr = malloc(sizeof(unsigned int) * n_layers);
        +    if(!arr) luaL_error(L, "Couldn't allocate the array");
        +    
        +    for(i = 1; i <= n_layers; ++i)
        +    {
        +        lua_pushinteger(L, i);
        +        lua_rawget(L, tbl_index);
        +        
        +        if(lua_type(L, -1) == LUA_TNUMBER)
        +        {
        +            arr[i - 1] = lua_tonumber(L, -1);
        +            lua_pop(L, 1);
        +        }
        +        else
        +        {
        +            free(arr);
        +            luaL_error(L, "The number of neurons must be a number");
        +        }
        +    }
        +    
        +    /* Return */
        +    *ret_n_layers = n_layers;
        +    *ret_arr = arr;
        +}
        +
        +static int lfann_net_create_standard(lua_State* L)
        +{
        +    struct fann* ptr;
        +
        +    unsigned int n_layers, *arr;
        +    priv_create_array(L, 1, &n_layers, &arr);
        +    ptr = fann_create_standard_array(n_layers, arr);
        +    free(arr);
        +    priv_push_net(L, ptr);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_create_sparse(lua_State* L)
        +{
        +    struct fann* ptr;
        +
        +    unsigned int n_layers, *arr;
        +    priv_create_array(L, 2, &n_layers, &arr);
        +    ptr = fann_create_sparse_array(lua_tonumber(L, 1), n_layers, arr);
        +    free(arr);
        +    priv_push_net(L, ptr);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_create_shortcut(lua_State* L)
        +{
        +    unsigned int n_layers, *arr;
        +    struct fann* ptr;
        +
        +    priv_create_array(L, 1, &n_layers, &arr);
        +    ptr = fann_create_shortcut_array(n_layers, arr);
        +    free(arr);
        +    priv_push_net(L, ptr);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_copy(lua_State* L)
        +{
        +    struct fann* ptr;
        +    Object* obj;
        +    
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    obj = lua_touserdata(L, 1);
        +    
        +    ptr = fann_copy(obj->pointer);
        +    fann_set_user_data(ptr, NULL);
        +    priv_push_net(L, ptr);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_create_from_file(lua_State* L)
        +{
        +    struct fann* ptr;
        +
        +    luaL_checktype(L, 1, LUA_TSTRING);
        +    
        +    ptr = fann_create_from_file(lua_tostring(L, 1));
        +    priv_push_net(L, ptr);
        +        
        +    return 1;
        +}
        +
        +static int lfann_net_tostring(lua_State* L)
        +{
        +    Object* obj = lua_touserdata(L, 1);
        +
        +    char name[41];
        +#ifndef _MSC_VER
        +    snprintf(name, 40, "Neural Network: %p", obj->pointer);
        +#else
        +    _snprintf(name, 40, "Neural Network: %p", obj->pointer);
        +#endif
        +    lua_pushstring(L, name);
        +
        +    return 1;
        +}
        +
        +static void priv_free_callback(lua_State* L, Object* obj)
        +{
        +    CallbackInfo* info;
        +    info = fann_get_user_data(obj->pointer);
        +    if(!info) return;
        +    
        +    luaL_unref(L, LUA_REGISTRYINDEX, info->function_ref);
        +    luaL_unref(L, LUA_REGISTRYINDEX, info->ud_ref);
        +    free(info);
        +    fann_set_user_data(obj->pointer, NULL);
        +}
        +
        +static int lfann_net_gc(lua_State* L)
        +{
        +    #ifdef IDEBUG
        +    fprintf(stderr, "Garbage collecting a Neural Network\n");
        +    #endif
        +    
        +    Object* obj = lua_touserdata(L, 1);
        +    
        +    /* Release the callback if present */
        +    priv_free_callback(L, obj);
        +    
        +    /* Destroy the network */
        +    fann_destroy(obj->pointer);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_print_connections(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_print_connections(obj->pointer);
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_train_on_file(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TSTRING);
        +    luaL_checktype(L, 3, LUA_TNUMBER);
        +    luaL_checktype(L, 4, LUA_TNUMBER);
        +    luaL_checktype(L, 5, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_train_on_file(obj->pointer, lua_tostring(L, 2), lua_tointeger(L, 3),
        +        lua_tointeger(L, 4), lua_tonumber(L, 5));
        +        
        +    return 0;
        +}
        +
        +static int lfann_net_train_on_data(lua_State* L)
        +{
        +    Object* obj1;
        +    Object* obj2;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TUSERDATA);
        +    luaL_checktype(L, 3, LUA_TNUMBER);
        +    luaL_checktype(L, 4, LUA_TNUMBER);
        +    luaL_checktype(L, 5, LUA_TNUMBER);
        +    
        +    obj1 = lua_touserdata(L, 1);
        +    obj2 = lua_touserdata(L, 2);
        +    
        +    fann_train_on_data(obj1->pointer, obj2->pointer, lua_tointeger(L, 3),
        +        lua_tointeger(L, 4), lua_tonumber(L, 5));
        +        
        +    return 0;
        +}
        +
        +static int lfann_net_train_epoch(lua_State* L)
        +{
        +    Object* obj1;
        +    Object* obj2;
        +    float res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TUSERDATA);
        +    
        +    obj1 = lua_touserdata(L, 1);
        +    obj2 = lua_touserdata(L, 2);
        +    
        +    res = fann_train_epoch(obj1->pointer, obj2->pointer);
        +    lua_pushnumber(L, res);
        +        
        +    return 1;
        +}
        +
        +static int lfann_net_save(lua_State* L)
        +{
        +    Object* obj;
        +    int res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TSTRING);
        +    
        +    obj = lua_touserdata(L, 1);
        +    res = fann_save(obj->pointer, lua_tostring(L, 2));
        +    lua_pushinteger(L, res);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_save_to_fixed(lua_State* L)
        +{
        +    Object* obj;
        +    int res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TSTRING);
        +    
        +    obj = lua_touserdata(L, 1);
        +    res = fann_save_to_fixed(obj->pointer, lua_tostring(L, 2));
        +    lua_pushinteger(L, res);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_run(lua_State* L)
        +{
        +    Object* obj;
        +    int n_in;
        +    int n_out;
        +    int i;
        +    fann_type* input;
        +    fann_type* output;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TTABLE);
        +    
        +    obj = lua_touserdata(L, 1);
        +    n_in = fann_get_num_input(obj->pointer);
        +    n_out = fann_get_num_output(obj->pointer);
        +    
        +    /* Get the input array */
        +    input = malloc(sizeof(fann_type) * n_in);
        +    if(!input) luaL_error(L, "Couldn't allocate the structure");
        +    
        +    for(i = 1; i <= n_in; ++i)
        +    {
        +        lua_pushinteger(L, i); 
        +        lua_gettable(L, 2);
        +        
        +        if(lua_type(L, -1) == LUA_TNUMBER) {
        +            input[i - 1] = lua_tonumber(L, -1);
        +                 lua_pop(L, 1);
        +           }
        +        else
        +        {
        +            free(input);
        +            luaL_error(L, "The input must be a number");
        +        }
        +    }
        +    
        +    /* Run and release the input array */
        +    output = fann_run(obj->pointer, input);
        +    free(input);
        +    
        +    /* Push the result into a table */
        +    lua_newtable(L);
        +    
        +    for(i = 1; i <= n_out; ++i)
        +    {
        +        lua_pushinteger(L, i);
        +        lua_pushnumber(L, output[i - 1]);
        +        lua_rawset(L, -3);
        +    }
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_init_weights(lua_State* L)
        +{
        +    Object* obj1;
        +    Object* obj2;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TUSERDATA);
        +    
        +    obj1 = lua_touserdata(L, 1);
        +    obj2 = lua_touserdata(L, 2);
        +    fann_init_weights(obj1->pointer, obj2->pointer);
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_randomize_weights(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    luaL_checktype(L, 3, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_randomize_weights(obj->pointer, lua_tonumber(L, 2), lua_tonumber(L, 3));
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_set_weight(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    luaL_checktype(L, 3, LUA_TNUMBER);
        +    luaL_checktype(L, 4, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_set_weight(obj->pointer, lua_tointeger(L, 2) - 1, lua_tointeger(L, 3) - 1,
        +        lua_tonumber(L, 4));
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_get_MSE(lua_State* L)
        +{
        +    Object* obj;
        +    float mse;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    obj = lua_touserdata(L, 1);
        +    
        +    mse = fann_get_MSE(obj->pointer);
        +    lua_pushnumber(L, mse);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_get_bit_fail(lua_State* L)
        +{
        +    Object* obj;
        +    unsigned int bit;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    
        +    obj = lua_touserdata(L, 1);
        +    bit = fann_get_bit_fail(obj->pointer);
        +    lua_pushinteger(L, bit);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_reset_MSE(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_reset_MSE(obj->pointer);
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_set_callback(lua_State* L)
        +{
        +    Object* obj;
        +    CallbackInfo* info;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    obj = lua_touserdata(L, 1);
        +    priv_free_callback(L, obj);
        +    
        +    if(lua_type(L, 2) == LUA_TFUNCTION)
        +    {
        +        /* User passed the function to call */
        +        luaL_checktype(L, 2, LUA_TFUNCTION);
        +    
        +        info = malloc(sizeof(CallbackInfo));
        +        if(!info) luaL_error(L, "Couldn't allocate the structure");
        +        info->L = L;
        +        
        +        /* Reference the function */
        +        lua_pushvalue(L, 2);
        +        info->function_ref = luaL_ref(L, LUA_REGISTRYINDEX);
        +        
        +        /* Reference the userdata */
        +        lua_pushvalue(L, 3);
        +        info->ud_ref = luaL_ref(L, LUA_REGISTRYINDEX);
        +        
        +        fann_set_user_data(obj->pointer, info);
        +    }
        +    
        +    fann_set_callback(obj->pointer, priv_callback_handle);
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_test_data(lua_State* L)
        +{
        +    Object* obj1;
        +    Object* obj2;
        +    float mse;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TUSERDATA);
        +    
        +    obj1 = lua_touserdata(L, 1);
        +    obj2 = lua_touserdata(L, 2);
        +    
        +    mse = fann_test_data(obj1->pointer, obj2->pointer);
        +    lua_pushnumber(L, mse);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_get_layer_array(lua_State* L)
        +{
        +    Object* obj;
        +    unsigned int n_layers;
        +    unsigned int* layers;
        +    unsigned int i;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    obj = lua_touserdata(L, 1);
        +    
        +    n_layers = fann_get_num_layers(obj->pointer);
        +    layers = malloc(sizeof(unsigned int) * n_layers);
        +    if(!layers) luaL_error(L, "Couldn't allocate the structure");
        +    
        +    fann_get_layer_array(obj->pointer, layers);
        +    
        +    lua_newtable(L);
        +    
        +    for(i = 1; i <= n_layers; ++i)
        +    {
        +        lua_pushinteger(L, layers[i - 1]);
        +        lua_rawseti(L, -2, i);
        +    }
        +        
        +    free(layers);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_get_bias_array(lua_State* L)
        +{
        +    Object* obj;
        +    unsigned int n_layers;
        +    unsigned int* layers;
        +    unsigned int i;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    obj = lua_touserdata(L, 1);
        +    
        +    n_layers = fann_get_num_layers(obj->pointer);
        +    layers = malloc(sizeof(unsigned int) * n_layers);
        +    if(!layers) luaL_error(L, "Couldn't allocate the structure");
        +    fann_get_bias_array(obj->pointer, layers);
        +    
        +    lua_newtable(L);
        +    
        +    for(i = 1; i <= n_layers; ++i)
        +    {
        +        lua_pushinteger(L, layers[i - 1]);
        +        lua_rawseti(L, -2, i);
        +    }
        +        
        +    free(layers);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_get_connection_array(lua_State* L)
        +{
        +    Object* obj;
        +    unsigned int n_conn;
        +    struct fann_connection* conn;
        +    fann_type min_w = 32000, max_w = -32000;
        +    unsigned int i;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    obj = lua_touserdata(L, 1);
        +    
        +    n_conn = fann_get_total_connections(obj->pointer);
        +    conn = malloc(sizeof(struct fann_connection) * n_conn);
        +    if(!conn) luaL_error(L, "Couldn't allocate the structure");
        +
        +    fann_get_connection_array(obj->pointer, conn);
        +    
        +    /* get the min and max weights too. evil */
        +    
        +    /* build a graph in the form graph[from][to] = [weight] */
        +    lua_newtable(L);
        +    
        +    for(i = 0; i < n_conn; ++i)
        +    {
        +        lua_pushinteger(L, conn[i].from_neuron + 1);
        +        lua_rawget(L, -2);
        +        
        +        if(lua_isnil(L, -1))
        +        {
        +            /* First connection of the neuron */
        +            lua_pop(L, 1); /* pop the nil */
        +            lua_newtable(L);
        +            
        +            /* Set in the main table */
        +            lua_pushinteger(L, conn[i].from_neuron + 1);
        +            lua_pushvalue(L, -2);
        +            lua_rawset(L, -4);
        +        }
        +        
        +        lua_pushinteger(L, conn[i].to_neuron + 1);
        +        lua_pushnumber(L, conn[i].weight);
        +        lua_rawset(L, -3);
        +        lua_pop(L, 1); /* Pop the neuron table */
        +        
        +        if(conn[i].weight < min_w ) min_w = conn[i].weight;
        +        if(conn[i].weight > max_w) max_w = conn[i].weight;
        +    }
        +    
        +    free(conn);
        +    lua_pushnumber(L, min_w);
        +    lua_pushnumber(L, max_w);
        +    
        +    return 3;
        +}
        +
        +/* parameters */
        +
        +static int lfann_net_set_training_algorithm(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_set_training_algorithm(obj->pointer, lua_tointeger(L, 2));
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_get_training_algorithm(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    
        +    obj = lua_touserdata(L, 1);
        +    lua_pushinteger(L, fann_get_training_algorithm(obj->pointer));
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_set_learning_rate(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_set_learning_rate(obj->pointer, lua_tonumber(L, 2));
        +
        +    return 0;
        +}
        +
        +static int lfann_net_get_learning_rate(lua_State* L)
        +{
        +    Object* obj;
        +    float res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    
        +    obj = lua_touserdata(L, 1);
        +    res = fann_get_learning_rate(obj->pointer);
        +    lua_pushnumber(L, res);
        +
        +    return 1;
        +}
        +
        +static int lfann_net_set_learning_momentum(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_set_learning_momentum(obj->pointer, lua_tonumber(L, 2));
        +
        +    return 0;
        +}
        +
        +static int lfann_net_get_learning_momentum(lua_State* L)
        +{
        +    Object* obj;
        +    float res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    
        +    obj = lua_touserdata(L, 1);
        +    res = fann_get_learning_momentum(obj->pointer);
        +    lua_pushnumber(L, res);
        +
        +    return 1;
        +}
        +
        +static int lfann_net_set_activation_function(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    luaL_checktype(L, 3, LUA_TNUMBER);
        +    luaL_checktype(L, 4, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_set_activation_function(obj->pointer, lua_tointeger(L, 2),
        +        lua_tointeger(L, 3) - 1, lua_tointeger(L, 4) - 1);
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_get_activation_function(lua_State* L)
        +{
        +    Object* obj;
        +    int res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    luaL_checktype(L, 3, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    res = fann_get_activation_function(obj->pointer, lua_tointeger(L, 2) - 1,
        +        lua_tointeger(L, 3) - 1);
        +    lua_pushinteger(L, res);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_set_activation_function_layer(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    luaL_checktype(L, 3, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_set_activation_function_layer(obj->pointer, lua_tointeger(L, 2),
        +        lua_tointeger(L, 3) - 1);
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_set_activation_function_hidden(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_set_activation_function_hidden(obj->pointer, lua_tointeger(L, 2));
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_set_activation_function_output(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_set_activation_function_output(obj->pointer, lua_tointeger(L, 2));
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_set_activation_steepness(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    luaL_checktype(L, 3, LUA_TNUMBER);
        +    luaL_checktype(L, 4, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_set_activation_steepness(obj->pointer, lua_tonumber(L, 2),
        +        lua_tointeger(L, 3) - 1, lua_tointeger(L, 4) - 1);
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_get_activation_steepness(lua_State* L)
        +{
        +    Object* obj;
        +    fann_type res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    luaL_checktype(L, 3, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    res = fann_get_activation_steepness(obj->pointer, lua_tointeger(L, 2) - 1,
        +        lua_tointeger(L, 3) - 1);
        +    lua_pushnumber(L, res);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_set_activation_steepness_layer(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    luaL_checktype(L, 3, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_set_activation_steepness_layer(obj->pointer, lua_tonumber(L, 2),
        +        lua_tointeger(L, 3) - 1);
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_set_activation_steepness_hidden(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_set_activation_steepness_hidden(obj->pointer, lua_tonumber(L, 2));
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_set_activation_steepness_output(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_set_activation_steepness_output(obj->pointer, lua_tonumber(L, 2));
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_set_train_error_function(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_set_train_error_function(obj->pointer, lua_tointeger(L, 2));
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_get_train_error_function(lua_State* L)
        +{
        +    Object* obj;
        +    int func;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    
        +    obj = lua_touserdata(L, 1);
        +    func = fann_get_train_error_function(obj->pointer);
        +    lua_pushinteger(L, func);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_set_train_stop_function(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_set_train_stop_function(obj->pointer, lua_tointeger(L, 2));
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_get_train_stop_function(lua_State* L)
        +{
        +    Object* obj;
        +    int func;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    
        +    obj = lua_touserdata(L, 1);
        +    func = fann_get_train_stop_function(obj->pointer);
        +    lua_pushinteger(L, func);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_get_bit_fail_limit(lua_State* L)
        +{
        +    Object* obj;
        +    fann_type bit;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    
        +    obj = lua_touserdata(L, 1);
        +    bit = fann_get_bit_fail_limit(obj->pointer);
        +    lua_pushnumber(L, bit);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_set_bit_fail_limit(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_set_bit_fail_limit(obj->pointer, lua_tonumber(L, 2));
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_get_quickprop_decay(lua_State* L)
        +{
        +    Object* obj;
        +    float bit;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    
        +    obj = lua_touserdata(L, 1);
        +    bit = fann_get_quickprop_decay(obj->pointer);
        +    lua_pushnumber(L, bit);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_set_quickprop_decay(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_set_quickprop_decay(obj->pointer, lua_tonumber(L, 2));
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_get_quickprop_mu(lua_State* L)
        +{
        +    Object* obj;
        +    float res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    
        +    obj = lua_touserdata(L, 1);
        +    res = fann_get_quickprop_mu(obj->pointer);
        +    lua_pushnumber(L, res);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_set_quickprop_mu(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_set_quickprop_mu(obj->pointer, lua_tonumber(L, 2));
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_get_rprop_increase_factor(lua_State* L)
        +{
        +    Object* obj;
        +    float res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    
        +    obj = lua_touserdata(L, 1);
        +    res = fann_get_rprop_increase_factor(obj->pointer);
        +    lua_pushnumber(L, res);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_set_rprop_increase_factor(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_set_rprop_increase_factor(obj->pointer, lua_tonumber(L, 2));
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_get_rprop_decrease_factor(lua_State* L)
        +{
        +    Object* obj;
        +    float res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    
        +    obj = lua_touserdata(L, 1);
        +    res = fann_get_rprop_decrease_factor(obj->pointer);
        +    lua_pushnumber(L, res);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_set_rprop_decrease_factor(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_set_rprop_decrease_factor(obj->pointer, lua_tonumber(L, 2));
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_get_rprop_delta_min(lua_State* L)
        +{
        +    Object* obj;
        +    float res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    
        +    obj = lua_touserdata(L, 1);
        +    res = fann_get_rprop_delta_min(obj->pointer);
        +    lua_pushnumber(L, res);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_set_rprop_delta_min(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_set_rprop_delta_min(obj->pointer, lua_tonumber(L, 2));
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_get_rprop_delta_max(lua_State* L)
        +{
        +    Object* obj;
        +    float res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    
        +    obj = lua_touserdata(L, 1);
        +    res = fann_get_rprop_delta_max(obj->pointer);
        +    lua_pushnumber(L, res);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_set_rprop_delta_max(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_set_rprop_delta_max(obj->pointer, lua_tonumber(L, 2));
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_get_rprop_delta_zero(lua_State* L)
        +{
        +    Object* obj;
        +    float res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    
        +    obj = lua_touserdata(L, 1);
        +    res = fann_get_rprop_delta_zero(obj->pointer);
        +    lua_pushnumber(L, res);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_set_rprop_delta_zero(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_set_rprop_delta_zero(obj->pointer, lua_tonumber(L, 2));
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_print_parameters(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_print_parameters(obj->pointer);
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_get_num_input(lua_State* L)
        +{
        +    Object* obj;
        +    int res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    obj = lua_touserdata(L, 1);
        +    
        +    res = fann_get_num_input(obj->pointer);
        +    lua_pushinteger(L, res);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_get_num_output(lua_State* L)
        +{
        +    Object* obj;
        +    int res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    obj = lua_touserdata(L, 1);
        +    
        +    res = fann_get_num_output(obj->pointer);
        +    lua_pushinteger(L, res);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_get_total_neurons(lua_State* L)
        +{
        +    Object* obj;
        +    int res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    obj = lua_touserdata(L, 1);
        +    
        +    res = fann_get_total_neurons(obj->pointer);
        +    lua_pushinteger(L, res);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_get_total_connections(lua_State* L)
        +{
        +    Object* obj;
        +    int res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    obj = lua_touserdata(L, 1);
        +    
        +    res = fann_get_total_connections(obj->pointer);
        +    lua_pushinteger(L, res);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_get_network_type(lua_State* L)
        +{
        +    Object* obj;
        +    int res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    obj = lua_touserdata(L, 1);
        +    
        +    res = fann_get_network_type(obj->pointer);
        +    lua_pushinteger(L, res);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_get_connection_rate(lua_State* L)
        +{
        +    Object* obj;
        +    float res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    obj = lua_touserdata(L, 1);
        +    
        +    res = fann_get_connection_rate(obj->pointer);
        +    lua_pushnumber(L, res);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_get_num_layers(lua_State* L)
        +{
        +    Object* obj;
        +    int res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    obj = lua_touserdata(L, 1);
        +    
        +    res = fann_get_num_layers(obj->pointer);
        +    lua_pushinteger(L, res);
        +    
        +    return 1;
        +}
        +
        +/* cascade */
        +
        +static int lfann_net_cascade_train_on_data(lua_State* L)
        +{
        +    Object* obj1;
        +    Object* obj2;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TUSERDATA);
        +    luaL_checktype(L, 3, LUA_TNUMBER);
        +    luaL_checktype(L, 4, LUA_TNUMBER);
        +    luaL_checktype(L, 5, LUA_TNUMBER);
        +    
        +    obj1 = lua_touserdata(L, 1);
        +    obj2 = lua_touserdata(L, 2);
        +    
        +    fann_cascadetrain_on_data(obj1->pointer, obj2->pointer, lua_tointeger(L, 3),
        +        lua_tointeger(L, 4), lua_tonumber(L, 5));
        +        
        +    return 0;
        +}
        +
        +static int lfann_net_cascade_train_on_file(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TSTRING);
        +    luaL_checktype(L, 3, LUA_TNUMBER);
        +    luaL_checktype(L, 4, LUA_TNUMBER);
        +    luaL_checktype(L, 5, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_cascadetrain_on_file(obj->pointer, lua_tostring(L, 2), lua_tointeger(L, 3),
        +        lua_tointeger(L, 4), lua_tonumber(L, 5));
        +    
        +    return 0;   
        +}
        +
        +static int lfann_net_get_cascade_output_change_fraction(lua_State* L)
        +{
        +    Object* obj;
        +    float res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    obj = lua_touserdata(L, 1);
        +    
        +    res = fann_get_cascade_output_change_fraction(obj->pointer);
        +    lua_pushnumber(L, res);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_set_cascade_output_change_fraction(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_set_cascade_output_change_fraction(obj->pointer, lua_tonumber(L, 2));
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_get_cascade_output_stagnation_epochs(lua_State* L)
        +{
        +    Object* obj;
        +    unsigned int res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    obj = lua_touserdata(L, 1);
        +    
        +    res = fann_get_cascade_output_stagnation_epochs(obj->pointer);
        +    lua_pushinteger(L, res);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_set_cascade_output_stagnation_epochs(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_set_cascade_output_stagnation_epochs(obj->pointer, lua_tointeger(L, 2));
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_get_cascade_candidate_stagnation_epochs(lua_State* L)
        +{
        +    Object* obj;
        +    unsigned int res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    obj = lua_touserdata(L, 1);
        +    
        +    res = fann_get_cascade_candidate_stagnation_epochs(obj->pointer);
        +    lua_pushinteger(L, res);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_set_cascade_candidate_stagnation_epochs(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_set_cascade_candidate_stagnation_epochs(obj->pointer, lua_tointeger(L, 2));
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_get_cascade_candidate_change_fraction(lua_State* L)
        +{
        +    Object* obj;
        +    float res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    obj = lua_touserdata(L, 1);
        +    
        +    res = fann_get_cascade_candidate_change_fraction(obj->pointer);
        +    lua_pushnumber(L, res);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_set_cascade_candidate_change_fraction(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_set_cascade_candidate_change_fraction(obj->pointer, lua_tonumber(L, 2));
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_get_cascade_weight_multiplier(lua_State* L)
        +{
        +    Object* obj;
        +    fann_type res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    obj = lua_touserdata(L, 1);
        +    
        +    res = fann_get_cascade_weight_multiplier(obj->pointer);
        +    lua_pushnumber(L, res);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_set_cascade_weight_multiplier(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_set_cascade_weight_multiplier(obj->pointer, lua_tonumber(L, 2));
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_get_cascade_candidate_limit(lua_State* L)
        +{
        +    Object* obj;
        +    fann_type res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    obj = lua_touserdata(L, 1);
        +    
        +    res = fann_get_cascade_candidate_limit(obj->pointer);
        +    lua_pushnumber(L, res);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_set_cascade_candidate_limit(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_set_cascade_candidate_limit(obj->pointer, lua_tonumber(L, 2));
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_get_cascade_max_out_epochs(lua_State* L)
        +{
        +    Object* obj;
        +    unsigned int res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    obj = lua_touserdata(L, 1);
        +    
        +    res = fann_get_cascade_max_out_epochs(obj->pointer);
        +    lua_pushinteger(L, res);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_set_cascade_max_out_epochs(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_set_cascade_max_out_epochs(obj->pointer, lua_tointeger(L, 2));
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_get_cascade_max_cand_epochs(lua_State* L)
        +{
        +    Object* obj;
        +    unsigned int res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    obj = lua_touserdata(L, 1);
        +    
        +    res = fann_get_cascade_max_cand_epochs(obj->pointer);
        +    lua_pushinteger(L, res);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_set_cascade_max_cand_epochs(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_set_cascade_max_cand_epochs(obj->pointer, lua_tointeger(L, 2));
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_get_cascade_num_candidates(lua_State* L)
        +{
        +    Object* obj;
        +    unsigned int res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    obj = lua_touserdata(L, 1);
        +    
        +    res = fann_get_cascade_num_candidates(obj->pointer);
        +    lua_pushinteger(L, res);
        +    
        +    return  1;
        +}
        +
        +static int lfann_net_get_cascade_activation_functions_count(lua_State* L)
        +{
        +    Object* obj;
        +    unsigned int res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    obj = lua_touserdata(L, 1);
        +    
        +    res = fann_get_cascade_activation_functions_count(obj->pointer);
        +    lua_pushinteger(L, res);
        +    
        +    return  1;
        +}
        +
        +static int lfann_net_get_cascade_activation_functions(lua_State* L)
        +{
        +    Object* obj;
        +    int num;
        +    int* res;
        +    int i;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    obj = lua_touserdata(L, 1);
        +    
        +    num = fann_get_cascade_activation_functions_count(obj->pointer);
        +    res = (int*)fann_get_cascade_activation_functions(obj->pointer);
        +    
        +    lua_newtable(L);
        +    
        +    for(i = 0; i < num; ++i)
        +    {
        +        lua_pushinteger(L, i + 1);
        +        lua_pushinteger(L, res[i]);
        +        lua_rawset(L, -3);
        +    }
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_set_cascade_activation_functions(lua_State* L)
        +{
        +    Object* obj;
        +    int count, i;
        +    int* funcs;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TTABLE);
        +    
        +    obj = lua_touserdata(L, 1);
        +    count = lua_objlen(L, 2);
        +    funcs = malloc(sizeof(int) * count);
        +    if(!funcs) luaL_error(L, "Couldn't allocate the structure");
        +
        +    for(i = 1; i <= count; ++i)
        +    {
        +        lua_pushinteger(L, i);
        +        lua_rawget(L, 2);
        +        
        +        if(lua_type(L, -1) == LUA_TNUMBER)
        +        {
        +            funcs[i - 1] = lua_tointeger(L, -1);
        +            lua_pop(L, 1);
        +        }
        +        else
        +        {
        +            free(funcs);
        +            luaL_error(L, "The table values must be numbers");
        +        }
        +    }
        +    
        +    fann_set_cascade_activation_functions(obj->pointer, (void*)funcs, count);
        +    free(funcs);
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_get_cascade_num_candidate_groups(lua_State* L)
        +{
        +    Object* obj;
        +    unsigned int res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    obj = lua_touserdata(L, 1);
        +    
        +    res = fann_get_cascade_num_candidate_groups(obj->pointer);
        +    lua_pushinteger(L, res);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_set_cascade_num_candidate_groups(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_set_cascade_num_candidate_groups(obj->pointer, lua_tointeger(L, 2));
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_get_cascade_activation_steepnesses(lua_State* L)
        +{
        +    Object* obj;
        +    int num;
        +    fann_type* res;
        +    int i;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    obj = lua_touserdata(L, 1);
        +    
        +    num = fann_get_cascade_activation_steepnesses_count(obj->pointer);
        +    res = fann_get_cascade_activation_steepnesses(obj->pointer);
        +    
        +    lua_newtable(L);
        +    
        +    for(i = 0; i < num; ++i)
        +    {
        +        lua_pushinteger(L, i + 1);
        +        lua_pushnumber(L, res[i]);
        +        lua_rawset(L, -3);
        +    }
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_set_cascade_activation_steepnesses(lua_State* L)
        +{
        +    Object* obj;
        +    int count, i;
        +    fann_type* res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TTABLE);
        +    
        +    obj = lua_touserdata(L, 1);
        +    count = lua_objlen(L, 2), i;
        +    res = malloc(sizeof(fann_type) * count);
        +    if(!res) luaL_error(L, "Couldn't allocate the structure");
        +
        +    for(i = 1; i <= count; ++i)
        +    {
        +        lua_pushinteger(L, i);
        +        lua_rawget(L, 2);
        +        
        +        if(lua_type(L, -1) == LUA_TNUMBER)
        +        {
        +            res[i - 1] = lua_tonumber(L, -1);
        +            lua_pop(L, 1);
        +        }
        +        else
        +        {
        +            free(res);
        +            luaL_error(L, "The table values must be numbers");
        +        }
        +    }
        +    
        +    fann_set_cascade_activation_steepnesses(obj->pointer, res, count);
        +    free(res);
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_get_cascade_activation_steepnesses_count(lua_State* L)
        +{
        +    Object* obj;
        +    unsigned int res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    obj = lua_touserdata(L, 1);
        +    
        +    res = fann_get_cascade_activation_steepnesses_count(obj->pointer);
        +    lua_pushinteger(L, res);
        +    
        +    return  1;
        +}
        +
        +static int lfann_net_get_cascade_min_out_epochs(lua_State* L)
        +{
        +    Object* obj;
        +    unsigned int res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    obj = lua_touserdata(L, 1);
        +    
        +    res = fann_get_cascade_min_out_epochs(obj->pointer);
        +    lua_pushinteger(L, res);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_set_cascade_min_out_epochs(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_set_cascade_min_out_epochs(obj->pointer, lua_tointeger(L, 2));
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_get_cascade_min_cand_epochs(lua_State* L)
        +{
        +    Object* obj;
        +    unsigned int res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    obj = lua_touserdata(L, 1);
        +    
        +    res = fann_get_cascade_min_cand_epochs(obj->pointer);
        +    lua_pushinteger(L, res);
        +    
        +    return 1;
        +}
        +
        +static int lfann_net_set_cascade_min_cand_epochs(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_set_cascade_min_cand_epochs(obj->pointer, lua_tointeger(L, 2));
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_get_sarprop_weight_decay_shift(lua_State* L)
        +{
        +    Object* obj;
        +    double res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    obj = lua_touserdata(L, 1);
        +    
        +    res = fann_get_sarprop_weight_decay_shift(obj->pointer);
        +    lua_pushnumber(L, res);
        +    
        +    return  1;
        +}
        +
        +static int lfann_net_set_sarprop_weight_decay_shift(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_set_sarprop_weight_decay_shift(obj->pointer, lua_tonumber(L, 2));
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_get_sarprop_step_error_threshold_factor(lua_State* L)
        +{
        +    Object* obj;
        +    double res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    obj = lua_touserdata(L, 1);
        +    
        +    res = fann_get_sarprop_step_error_threshold_factor(obj->pointer);
        +    lua_pushnumber(L, res);
        +    
        +    return  1;
        +}
        +
        +static int lfann_net_set_sarprop_step_error_threshold_factor(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_set_sarprop_step_error_threshold_factor(obj->pointer, lua_tonumber(L, 2));
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_get_sarprop_step_error_shift(lua_State* L)
        +{
        +    Object* obj;
        +    double res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    obj = lua_touserdata(L, 1);
        +    
        +    res = fann_get_sarprop_step_error_shift(obj->pointer);
        +    lua_pushnumber(L, res);
        +    
        +    return  1;
        +}
        +
        +static int lfann_net_set_sarprop_step_error_shift(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_set_sarprop_step_error_shift(obj->pointer, lua_tonumber(L, 2));
        +    
        +    return 0;
        +}
        +
        +static int lfann_net_get_sarprop_temperature(lua_State* L)
        +{
        +    Object* obj;
        +    double res;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    obj = lua_touserdata(L, 1);
        +    
        +    res = fann_get_sarprop_temperature(obj->pointer);
        +    lua_pushnumber(L, res);
        +    
        +    return  1;
        +}
        +
        +static int lfann_net_set_sarprop_temperature(lua_State* L)
        +{
        +    Object* obj;
        +
        +    luaL_checktype(L, 1, LUA_TUSERDATA);
        +    luaL_checktype(L, 2, LUA_TNUMBER);
        +    
        +    obj = lua_touserdata(L, 1);
        +    fann_set_sarprop_temperature(obj->pointer, lua_tonumber(L, 2));
        +    
        +    return 0;
        +}
        diff --git a/lib/ann/tests/callback.lua b/lib/ann/tests/callback.lua
        new file mode 100755
        index 0000000..37761dc
        --- /dev/null
        +++ b/lib/ann/tests/callback.lua
        @@ -0,0 +1,30 @@
        +#! /usr/bin/env lua
        +
        +require("lfann")
        +
        +function eq(x, y)
        +	return math.abs(x - y) < 0.00001
        +end
        +
        +local num = 1
        +
        +function callback(ud, nData, nIn, nOut)
        +	assert(ud == "Hi!")
        +	return 1 * nData, 2 * nData, 3 * nData, 4 * nData, 5 * nData, 6 * nData, 7 * nData
        +end
        +
        +local data = fann.Data.create_from_callback(num, 2, 5, callback, "Hi!")
        +
        +for i = 1, num do
        +	local row = data:get_row(i)
        +
        +	for j, k in ipairs(row) do
        +		assert(k == i * j) 
        +	end
        +end
        +
        +print("End.")
        +
        +if arg[1] == "mem" then
        +	io.read("*n")
        +end
        diff --git a/lib/ann/tests/cascade.lua b/lib/ann/tests/cascade.lua
        new file mode 100755
        index 0000000..7c40bc5
        --- /dev/null
        +++ b/lib/ann/tests/cascade.lua
        @@ -0,0 +1,64 @@
        +#! /usr/bin/env lua
        +
        +require("lfann")
        +
        +function eq(x, y)
        +	return math.abs(x - y) < 0.00001
        +end
        +
        +local net = fann.Net.create_shortcut{2, 1}
        +net:set_callback() -- Disable logging
        +
        +net:set_cascade_candidate_change_fraction(0.1)
        +assert(eq(net:get_cascade_candidate_change_fraction(), 0.1))
        +
        +net:set_cascade_candidate_stagnation_epochs(5)
        +assert(net:get_cascade_candidate_stagnation_epochs(5) == 5)
        +
        +net:set_cascade_output_change_fraction(0.2)
        +assert(eq(net:get_cascade_output_change_fraction(), 0.2))
        +
        +net:set_cascade_output_stagnation_epochs(10)
        +assert(net:get_cascade_output_stagnation_epochs(10) == 10)
        +
        +net:set_cascade_weight_multiplier(0.359)
        +assert(eq(net:get_cascade_weight_multiplier(), 0.359))
        +
        +net:set_cascade_candidate_limit(800)
        +assert(eq(net:get_cascade_candidate_limit(), 800))
        +
        +net:set_cascade_max_cand_epochs(100)
        +assert(net:get_cascade_max_cand_epochs() == 100)
        +
        +net:set_cascade_max_out_epochs(120)
        +assert(net:get_cascade_max_out_epochs() == 120)
        +
        +net:set_cascade_min_out_epochs(20)
        +assert(net:get_cascade_min_out_epochs() == 20)
        +
        +net:set_cascade_min_cand_epochs(30)
        +assert(net:get_cascade_min_cand_epochs() == 30)
        +
        +net:set_cascade_activation_functions{fann.SIGMOID, fann.GAUSSIAN}
        +local funcs = net:get_cascade_activation_functions()
        +assert(funcs[1] == fann.SIGMOID)
        +assert(funcs[2] == fann.GAUSSIAN)
        +assert(#funcs == net:get_cascade_activation_functions_count())
        +
        +net:set_cascade_num_candidate_groups(3)
        +assert(net:get_cascade_num_candidate_groups(), 3)
        +
        +net:set_cascade_activation_steepnesses{0.5, 0.25, 0.75}
        +local steps = net:get_cascade_activation_steepnesses()
        +assert(eq(steps[1], 0.5), steps[1])
        +assert(eq(steps[2], 0.25))
        +assert(eq(steps[3], 0.75))
        +assert(#steps == net:get_cascade_activation_steepnesses_count())
        +
        +net:cascade_train_on_file("train.data", 10, 1, 0.1)
        +
        +print("End.")
        +
        +if arg[1] == "mem" then
        +	io.read("*n")
        +end
        diff --git a/lib/ann/tests/creation.lua b/lib/ann/tests/creation.lua
        new file mode 100755
        index 0000000..b469231
        --- /dev/null
        +++ b/lib/ann/tests/creation.lua
        @@ -0,0 +1,72 @@
        +#! /usr/bin/env lua
        +
        +require("lfann")
        +
        +function eq(x, y)
        +    return math.abs(x - y) < 0.00001
        +end
        +
        +for i = 1, 300 do
        +    local net = fann.Net.create_standard({2, 3, 2})
        +    
        +    local layers = net:get_layer_array()
        +    assert(#layers == 3)
        +    assert(layers[1] == 2)
        +    assert(layers[2] == 3)
        +    assert(layers[3] == 2)
        +    
        +    local layers = net:get_bias_array()
        +    assert(#layers == 3)
        +    assert(layers[1] == 1)
        +    assert(layers[2] == 1)
        +    assert(layers[3] == 0)
        +    
        +    net:set_weight(2, 6, 0.67)
        +    net:set_weight(3, 6, 0.89)
        +    
        +    local conn = net:get_connection_array()
        +    assert(#conn == 7)
        +    assert(eq(conn[2][6], 0.67))
        +    assert(eq(conn[3][6], 0.89))
        +    
        +    net = fann.Net.create_sparse(0.5, {2, 3, 2})
        +    local layers = net:get_layer_array()
        +    assert(#layers == 3)
        +    assert(layers[1] == 2)
        +    assert(layers[2] == 3)
        +    assert(layers[3] == 2)
        +    
        +    net = fann.Net.create_shortcut({2, 3, 2})
        +    local layers = net:get_layer_array()
        +    assert(#layers == 3)
        +    assert(layers[1] == 2)
        +    assert(layers[2] == 3)
        +    assert(layers[3] == 2)
        +    
        +    net = fann.Net.create_from_file("xor.test")
        +    
        +    local layers = net:get_layer_array()
        +    assert(#layers == 3)
        +    assert(layers[1] == 2)
        +    assert(layers[2] == 3)
        +    assert(layers[3] == 1)
        +    
        +    net = net:copy()
        +    local layers = net:get_layer_array()
        +    assert(#layers == 3)
        +    assert(layers[1] == 2)
        +    assert(layers[2] == 3)
        +    assert(layers[3] == 1)
        +    
        +    for c = 1, 300 do
        +        net:set_callback( function() end, 100 )
        +    end
        +    
        +    collectgarbage()
        +end
        +
        +print("End.")
        +
        +if arg[1] == "mem" then
        +    io.read("*n")
        +end
        diff --git a/lib/ann/tests/data.lua b/lib/ann/tests/data.lua
        new file mode 100755
        index 0000000..af0b413
        --- /dev/null
        +++ b/lib/ann/tests/data.lua
        @@ -0,0 +1,64 @@
        +#! /usr/bin/env lua
        +
        +require("lfann")
        +
        +for i = 1, 1000 do
        +    local data = fann.Data.read_from_file("train.data")
        +    assert(data:length() == 4)
        +    local data2 = data:subset(0, data:length() - 1)
        +    assert(data2:length() == 3)
        +    local data3 = data:merge(data2)
        +    assert(data3:length() == data:length() + data2:length())
        +    assert(data:num_input() == 2)
        +    assert(data:num_output() == 1)
        +    assert(data2:num_input() == 2)
        +    assert(data2:num_output() == 1)
        +    assert(data3:num_input() == 2)
        +    assert(data3:num_output() == 1)
        +
        +    local row = data:get_row(1)
        +    assert(row[1] == 1 and row[2] == 1 and row[3] == -1)
        +    row = data:get_row(2)
        +    assert(row[1] == 1 and row[2] == 0 and row[3] == 1)
        +    row = data:get_row(3)
        +    assert(row[1] == 0 and row[2] == 1 and row[3] == 1)
        +    row = data:get_row(4)
        +    assert(row[1] == 0 and row[2] == 0 and row[3] == -1)
        +
        +    local n_rows, n_inp, n_out = 50, 10, 20
        +    local data = fann.Data.create_from_callback(n_rows, n_inp, n_out,
        +        function(ud, line, n_inp, n_out)
        +            local out = {}
        +            
        +            for i = 1, n_inp do
        +                table.insert(out, line + i)
        +            end
        +            
        +            for i = 1, n_out do
        +                table.insert(out, line * 2 - i)
        +            end
        +            
        +            return unpack(out)
        +        end
        +    )
        +
        +    for r = 1, n_rows do
        +        local row = data:get_row(r)
        +        
        +        for i = 1, n_inp do
        +            assert(row[i] == r + i)
        +        end
        +            
        +        for i = 1, n_out do
        +            assert(row[i + n_inp] == r * 2 - i)
        +        end
        +    end
        +    
        +    collectgarbage("collect")
        +end
        +
        +print("End.")
        +
        +if arg[1] == "mem" then
        +	io.read("*n")
        +end
        diff --git a/lib/ann/tests/params.lua b/lib/ann/tests/params.lua
        new file mode 100755
        index 0000000..8a02253
        --- /dev/null
        +++ b/lib/ann/tests/params.lua
        @@ -0,0 +1,44 @@
        +#! /usr/bin/env lua
        +
        +require("lfann")
        +
        +function eq(x, y)
        +	return math.abs(x - y) < 0.00001
        +end
        +
        +local neurons = {4, 2, 2, 5, 4}
        +local net = fann.Net.create_standard(neurons)
        +assert(eq(net:get_connection_rate(), 1))
        +
        +net:set_learning_rate(0.65)
        +assert(eq(net:get_learning_rate(), 0.65))
        +
        +net:set_bit_fail_limit(2)
        +assert(eq(net:get_bit_fail_limit(), 2))
        +
        +local n = #neurons - 1
        +for i, j in pairs(neurons) do n = n + j end
        +assert(net:get_total_neurons() == n)
        +
        +net:set_activation_steepness(0.345, 2, 1)
        +assert(eq(net:get_activation_steepness(2, 1), 0.345))
        +
        +net:set_activation_steepness_hidden(0.32)
        +assert(eq(net:get_activation_steepness(2, 1), 0.32))
        +assert(eq(net:get_activation_steepness(3, 2), 0.32))
        +
        +net:set_activation_steepness_output(0.8)
        +assert(eq(net:get_activation_steepness(5, 1), 0.8))
        +assert(eq(net:get_activation_steepness(5, 4), 0.8))
        +
        +local n = 0
        +for i = 1, #neurons - 1 do
        +	n = n + neurons[i] * neurons[i + 1] + neurons[i + 1]
        +end
        +assert(net:get_total_connections() == n)
        +
        +print("End.")
        +
        +if arg[1] == "mem" then
        +	io.read("*n")
        +end
        diff --git a/lib/ann/tests/run.lua b/lib/ann/tests/run.lua
        new file mode 100755
        index 0000000..1908e4a
        --- /dev/null
        +++ b/lib/ann/tests/run.lua
        @@ -0,0 +1,17 @@
        +#! /usr/bin/env lua
        +
        +require("lfann")
        +
        +local m = 400000
        +local net = fann.Net.create_from_file("xor.test")
        +
        +for i = 1, m do
        +	local out = net:run{i % 1000, i > (m / 2) and 1 or 0}
        +	assert(out[1] >= -1 and out[1] <= 1)
        +end
        +
        +print("End.")
        +
        +if arg[1] == "mem" then
        +	io.read("*n")
        +end
        diff --git a/lib/ann/tests/scale.lua b/lib/ann/tests/scale.lua
        new file mode 100755
        index 0000000..88f4145
        --- /dev/null
        +++ b/lib/ann/tests/scale.lua
        @@ -0,0 +1,59 @@
        +#! /usr/bin/env lua
        +
        +require("lfann")
        +
        +function eq(x, y)
        +	return math.abs(x - y) < 0.00001
        +end
        +
        +local vals = {-1, 10, 20, 0, -10, 5, -1, 1, 30}
        +
        +local function create_callback()
        +	return unpack(vals)
        +end
        +
        +local data = fann.Data.create_from_callback(1, 4, 5, create_callback)
        +
        +local rmin, rmax = data:get_bounds()
        +assert( eq(rmin, -10) and eq(rmax, 30) )
        +
        +local rmin, rmax = data:get_bounds_input()
        +assert( eq(rmin, -1) and eq(rmax, 20) )
        +
        +local rmin, rmax = data:get_bounds_output()
        +assert( eq(rmin, -10) and eq(rmax, 30) )
        +
        +data:scale(-10, 30)
        +
        +local rmin, rmax = data:get_bounds()
        +assert( eq(rmin, -10) and eq(rmax, 30) )
        +
        +for i, j in ipairs(data:get_row(1)) do
        +	assert( eq(j, vals[i]) )
        +end
        +
        +data:scale_input(-1, 1)
        +
        +local rmin, rmax = data:get_bounds()
        +assert( eq(rmin, -10) and eq(rmax, 30) )
        +
        +local row = data:get_row(1)
        +assert( eq(row[3], 1) )
        +assert( not eq(row[5], -1) )
        +assert( not eq(row[9], 1) )
        +
        +data:scale(-1, 1)
        +
        +local rmin, rmax = data:get_bounds()
        +assert( eq(rmin, -1) and eq(rmax, 1) )
        +
        +local row = data:get_row(1)
        +assert( not eq(row[3], 1) )
        +assert( eq(row[5], -1) )
        +assert( eq(row[9], 1) )
        +
        +print("End.")
        +
        +if arg[1] == "mem" then
        +	io.read("*n")
        +end
        diff --git a/lib/ann/tests/train.data b/lib/ann/tests/train.data
        new file mode 100644
        index 0000000..b9528d4
        --- /dev/null
        +++ b/lib/ann/tests/train.data
        @@ -0,0 +1,9 @@
        +4 2 1
        +1 1
        +-1
        +1 0
        +1
        +0 1
        +1
        +0 0
        +-1
        diff --git a/lib/ann/tests/xor.net b/lib/ann/tests/xor.net
        new file mode 100644
        index 0000000..361338f
        --- /dev/null
        +++ b/lib/ann/tests/xor.net
        @@ -0,0 +1,36 @@
        +FANN_FLO_2.1
        +num_layers=3
        +learning_rate=0.700000
        +connection_rate=1.000000
        +network_type=0
        +learning_momentum=0.000000
        +training_algorithm=2
        +train_error_function=1
        +train_stop_function=0
        +cascade_output_change_fraction=0.010000
        +quickprop_decay=-0.000100
        +quickprop_mu=1.750000
        +rprop_increase_factor=1.200000
        +rprop_decrease_factor=0.500000
        +rprop_delta_min=0.000000
        +rprop_delta_max=50.000000
        +rprop_delta_zero=0.100000
        +cascade_output_stagnation_epochs=12
        +cascade_candidate_change_fraction=0.010000
        +cascade_candidate_stagnation_epochs=12
        +cascade_max_out_epochs=150
        +cascade_min_out_epochs=50
        +cascade_max_cand_epochs=150
        +cascade_min_cand_epochs=50
        +cascade_num_candidate_groups=2
        +bit_fail_limit=3.49999999999999977796e-01
        +cascade_candidate_limit=1.00000000000000000000e+03
        +cascade_weight_multiplier=4.00000000000000022204e-01
        +cascade_activation_functions_count=10
        +cascade_activation_functions=3 5 7 8 10 11 14 15 16 17 
        +cascade_activation_steepnesses_count=4
        +cascade_activation_steepnesses=2.50000000000000000000e-01 5.00000000000000000000e-01 7.50000000000000000000e-01 1.00000000000000000000e+00 
        +layer_sizes=3 4 2 
        +scale_included=0
        +neurons (num_inputs, activation_function, activation_steepness)=(0, 0, 0.00000000000000000000e+00) (0, 0, 0.00000000000000000000e+00) (0, 0, 0.00000000000000000000e+00) (3, 8, 5.00000000000000000000e-01) (3, 8, 5.00000000000000000000e-01) (3, 8, 5.00000000000000000000e-01) (0, 8, 0.00000000000000000000e+00) (4, 8, 5.00000000000000000000e-01) (0, 8, 0.00000000000000000000e+00) 
        +connections (connected_to_neuron, weight)=(0, 2.80526386706506980495e-01) (1, -6.32915057544128911715e-01) (2, 2.43256971299247087837e-01) (0, 1.07956202553892222085e+00) (1, -1.57046491452944914080e+00) (2, 3.60570095466195006395e-01) (0, -3.03603668158796224930e+00) (1, 3.25717842790857625701e+00) (2, 3.21682713436011402663e-01) (3, -4.83919214899166116872e-01) (4, -2.23388962577329319714e+00) (5, -1.97655141071750106718e+00) (6, -5.13441786611898431936e-01) 
        diff --git a/lib/ann/tests/xor.test b/lib/ann/tests/xor.test
        new file mode 100644
        index 0000000..fcf576f
        --- /dev/null
        +++ b/lib/ann/tests/xor.test
        @@ -0,0 +1,36 @@
        +FANN_FLO_2.1
        +num_layers=3
        +learning_rate=0.700000
        +connection_rate=1.000000
        +network_type=0
        +learning_momentum=0.000000
        +training_algorithm=2
        +train_error_function=1
        +train_stop_function=0
        +cascade_output_change_fraction=0.010000
        +quickprop_decay=-0.000100
        +quickprop_mu=1.750000
        +rprop_increase_factor=1.200000
        +rprop_decrease_factor=0.500000
        +rprop_delta_min=0.000000
        +rprop_delta_max=50.000000
        +rprop_delta_zero=0.100000
        +cascade_output_stagnation_epochs=12
        +cascade_candidate_change_fraction=0.010000
        +cascade_candidate_stagnation_epochs=12
        +cascade_max_out_epochs=150
        +cascade_min_out_epochs=50
        +cascade_max_cand_epochs=150
        +cascade_min_cand_epochs=50
        +cascade_num_candidate_groups=2
        +bit_fail_limit=3.49999999999999977796e-01
        +cascade_candidate_limit=1.00000000000000000000e+03
        +cascade_weight_multiplier=4.00000000000000022204e-01
        +cascade_activation_functions_count=10
        +cascade_activation_functions=3 5 7 8 10 11 14 15 16 17 
        +cascade_activation_steepnesses_count=4
        +cascade_activation_steepnesses=2.50000000000000000000e-01 5.00000000000000000000e-01 7.50000000000000000000e-01 1.00000000000000000000e+00 
        +layer_sizes=3 4 2 
        +scale_included=0
        +neurons (num_inputs, activation_function, activation_steepness)=(0, 0, 0.00000000000000000000e+00) (0, 0, 0.00000000000000000000e+00) (0, 0, 0.00000000000000000000e+00) (3, 8, 5.00000000000000000000e-01) (3, 8, 5.00000000000000000000e-01) (3, 8, 5.00000000000000000000e-01) (0, 8, 0.00000000000000000000e+00) (4, 8, 5.00000000000000000000e-01) (0, 8, 0.00000000000000000000e+00) 
        +connections (connected_to_neuron, weight)=(0, 3.33489874939374764118e-01) (1, -3.63063380595726348243e-01) (2, 8.42711779204087380046e-02) (0, -1.04596746931312378770e+00) (1, 9.60473346716757214736e-01) (2, 7.86632414989053563303e-02) (0, 1.19807412288840020587e+00) (1, -9.30247929134354722969e-01) (2, 4.15395392027860382855e-02) (3, -6.28203027065782459992e-01) (4, -1.84799059663882059290e+00) (5, -1.74061332936564361340e+00) (6, -6.26874907503542244669e-01) 
        diff --git a/lib/curl b/lib/curl
        new file mode 100755
        index 0000000..a85ae96
        Binary files /dev/null and b/lib/curl differ
        diff --git a/lib/lualib.h b/lib/lualib.h
        new file mode 100644
        index 0000000..eefb4ba
        --- /dev/null
        +++ b/lib/lualib.h
        @@ -0,0 +1,14 @@
        +#ifndef LUALIB_H
        +#define LUALIB_H
        +#include <stdio.h>
        +#include <stdarg.h>
        +#include <unistd.h>
        +#include <strings.h>
        +#include <string.h>
        +#include <stdlib.h>
        +
        +#include "lua.h"
        +#include "lauxlib.h"
        +#include "lualib.h"
        +
        +#endif
        \ No newline at end of file
        diff --git a/lib/pibot/Makefile b/lib/pibot/Makefile
        new file mode 100644
        index 0000000..7c5ee2a
        --- /dev/null
        +++ b/lib/pibot/Makefile
        @@ -0,0 +1,6 @@
        +include ../../../../var.mk
        +
        +LIB_NAME=pibot.$(LIB_EXT)
        +LIB_OBJ=  pibot.o 
        +
        +include ../../lib.mk
        \ No newline at end of file
        diff --git a/lib/pibot/pibot.c b/lib/pibot/pibot.c
        new file mode 100644
        index 0000000..f9bdda9
        --- /dev/null
        +++ b/lib/pibot/pibot.c
        @@ -0,0 +1,260 @@
        +
        +#include "../lualib.h"
        +#include "../../lua-api.h"
        +#include "utils.h"
        +
        +
        +#include <stdint.h>
        +#include <unistd.h>
        +#include <stdio.h>
        +#include <stdlib.h>
        +#include <getopt.h>
        +#include <fcntl.h>
        +#include <sys/ioctl.h>
        +#include <linux/types.h>
        +#include <linux/spi/spidev.h>
        +
        +#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
        +
        +static const char *device = "/dev/spidev0.0";
        +static uint8_t mode;
        +static uint8_t bits = 8;
        +static uint32_t speed = 500000;
        +static uint16_t delay = 110;
        +
        +static int fd_spi = -1;
        +
        +int spi_open()
        +{
        +    int ret;
        +    int fd = open(device, O_RDWR);
        +	if (fd < 0)
        +	{
        +		perror("can't open device \n");
        +		return -1;
        +	}
        +	/*
        +	 * spi mode
        +	 */
        +	ret = ioctl(fd, SPI_IOC_WR_MODE, &mode);
        +	if (ret == -1)
        +	{
        +	    perror("can't set spi mode \n");
        +	    return -1;
        +	}
        +
        +	ret = ioctl(fd, SPI_IOC_RD_MODE, &mode);
        +	if (ret == -1)
        +	{
        +		perror("can't get spi mode \n");
        +		return -1;
        +	}
        +	/*
        +	 * bits per word
        +	 */
        +	ret = ioctl(fd, SPI_IOC_WR_BITS_PER_WORD, &bits);
        +	if (ret == -1)
        +	{
        +		perror("can't set bits per word \n");
        +		return -1;
        +	}
        +
        +	ret = ioctl(fd, SPI_IOC_RD_BITS_PER_WORD, &bits);
        +	if (ret == -1)
        +	{
        +	    perror("can't get bits per word");
        +	    return -1;
        +	}
        +	/*
        +	 * max speed hz
        +	 */
        +	ret = ioctl(fd, SPI_IOC_WR_MAX_SPEED_HZ, &speed);
        +	if (ret == -1)
        +	{
        +	    perror("can't set max speed hz");
        +	    return -1;
        +	}
        +	ret = ioctl(fd, SPI_IOC_RD_MAX_SPEED_HZ, &speed);
        +	if (ret == -1)
        +	{
        +		perror("can't get max speed hz");
        +		return -1;
        +	}
        +
        +	printf("spi mode: %d\n", mode);
        +	printf("bits per word: %d\n", bits);
        +	printf("max speed: %d Hz (%d KHz)\n", speed, speed/1000);
        +	
        +	return fd;
        +}
        +
        +int spi_send_cmd(int fd, uint8_t cmd, uint8_t idx, uint8_t value)
        +{
        +    int ret;
        +    uint8_t tx[3]; 
        +    uint8_t rx[3] = {0, };
        +	struct spi_ioc_transfer tr = {
        +		.tx_buf = (unsigned long)tx,
        +		.rx_buf = (unsigned long)rx,
        +		.len = 3,
        +		.delay_usecs = delay,
        +		.speed_hz = speed,
        +		.bits_per_word = bits
        +	};
        +	tx[0] = cmd;
        +	tx[1] = idx;
        +	tx[2] = value;
        +	ret = ioctl(fd, SPI_IOC_MESSAGE(1), &tr);
        +    if (ret < 1)
        +    {
        +        perror("can't send spi message");
        +    	return -1;
        +    }
        +    //if(cmd == 255)
        +    // printf("RX %d %d %d \n", rx[0], rx[1], rx[2]);
        +    return (int) rx[0];
        +}
        +
        +int spi_set(int fd,uint8_t idx, uint8_t v)
        +{
        +    return spi_send_cmd(fd,1, idx, v);
        +}
        +
        +int spi_get(int fd,uint8_t idx)
        +{
        +    // send command
        +    int ret;
        +    ret = spi_send_cmd(fd,0,idx,0);
        +    if(ret == -1) return -1;
        +    // read back
        +    return spi_send_cmd(fd,255,255,255);
        +}
        +
        +void spi_read_buff(int fd,uint8_t* buf, int size)
        +{
        +    int ret;
        +    uint8_t tx[size];
        +	struct spi_ioc_transfer tr = {
        +		.tx_buf = (unsigned long)tx,
        +		.rx_buf = (unsigned long)buf,
        +		.len = size,
        +		.delay_usecs = delay,
        +		.speed_hz = speed,
        +		.bits_per_word = bits
        +	};
        +	spi_send_cmd(fd,2,0,size);
        +	ret = ioctl(fd, SPI_IOC_MESSAGE(1), &tr);
        +    if (ret < 1)
        +    {
        +        perror("can't send spi message");
        +    	return;
        +    }
        +}
        +
        +void spi_write_buff(int fd, uint8_t* buf, int size)
        +{
        +    int i;
        +    for(i=0; i < size; i++)
        +        spi_set(fd,i,buf[i]);
        +    
        +}
        +
        +static int l_init(lua_State* L)
        +{
        +    fd_spi = spi_open();
        +    if(fd_spi == -1)
        +        lua_pushboolean(L,0);
        +    else
        +        lua_pushboolean(L,1);
        +    return 1;
        +}
        +
        +static int l_release(lua_State* L)
        +{
        +    if(fd_spi > 0)
        +        close(fd_spi);
        +    fd_spi = -1;
        +    lua_pushboolean(L,1);
        +    return 1;
        +}
        +
        +static int l_read(lua_State* L)
        +{
        +    int size = luaL_checknumber(L,1);
        +    unsigned char data_buf[size];
        +    if(fd_spi == -1)
        +    {
        +        lua_pushnil(L);
        +        return 1;
        +    }
        +    // request data
        +	spi_read_buff(fd_spi,data_buf,size);
        +    
        +    lua_newtable(L);
        +    
        +    int i;
        +    for(i =0; i < size; i++)
        +    {
        +        lua_pushnumber(L,i);
        +	    lua_pushnumber(L,data_buf[i]);
        +	    lua_settable(L,-3);
        +    }
        +    return 1;
        +}
        +
        +static int l_write(lua_State* L)
        +{
        +    /* 1st argument must be a table (t) */
        +    byte_array_t* data_buf = l_check_barray(L, 1);
        +    if(fd_spi == -1)
        +    {
        +        lua_pushboolean(L,0);
        +        return 1;
        +    }
        +    spi_write_buff(fd_spi,data_buf->data, data_buf->size);
        +    lua_pushboolean(L,1);
        +    return 1;
        +}
        +
        +static int l_set(lua_State* L)
        +{
        +    int idx = luaL_checknumber(L,1);
        +    int val = luaL_checknumber(L,2);
        +    if(fd_spi == -1)
        +    {
        +        lua_pushboolean(L,0);
        +        return 1;
        +    }
        +    spi_set(fd_spi,idx,val);
        +    lua_pushboolean(L,1);
        +    return 1;
        +}
        +
        +static int l_get(lua_State* L)
        +{
        +    int idx = luaL_checknumber(L,1);
        +    if(fd_spi == -1)
        +    {
        +        lua_pushboolean(L,0);
        +        return 1;
        +    }
        +    spi_get(fd_spi,idx);
        +    lua_pushboolean(L,1);
        +    return 1;
        +}
        +
        +static const struct luaL_Reg _lib [] = {
        +	{"init", l_init},
        +	{"release",l_release},
        +	{"read",l_read},
        +	{"write",l_write},
        +	{"set",l_set},
        +	{"get",l_get},
        +	{NULL,NULL}
        +};
        +
        +int luaopen_pibot(lua_State *L)
        +{
        +	luaL_newlib(L, _lib);
        +	return 1;
        +}
        diff --git a/lib/stmr/Makefile b/lib/stmr/Makefile
        new file mode 100644
        index 0000000..f910c4d
        --- /dev/null
        +++ b/lib/stmr/Makefile
        @@ -0,0 +1,7 @@
        +include ../../../../var.mk
        +
        +LIB_NAME=stmr.$(LIB_EXT)
        +LIB_OBJ= stmr.o
        +
        +
        +include ../../lib.mk
        diff --git a/lib/stmr/stmr.c b/lib/stmr/stmr.c
        new file mode 100644
        index 0000000..ab2bc9c
        --- /dev/null
        +++ b/lib/stmr/stmr.c
        @@ -0,0 +1,704 @@
        +/* This is the Porter stemming algorithm, coded up in ANSI C by the
        + * author. It may be be regarded as canonical, in that it follows the
        + * algorithm presented in
        + *
        + * Porter, 1980, An algorithm for suffix stripping, Program, Vol. 14,
        + * no. 3, pp 130-137,
        + *
        + * only differing from it at the points marked --DEPARTURE-- below.
        + *
        + * See also http://www.tartarus.org/~martin/PorterStemmer
        + *
        + * The algorithm as described in the paper could be exactly replicated
        + * by adjusting the points of DEPARTURE, but this is barely necessary,
        + * because (a) the points of DEPARTURE are definitely improvements, and
        + * (b) no encoding of the Porter stemmer I have seen is anything like
        + * as exact as this version, even with the points of DEPARTURE!
        + *
        + * You can compile it on Unix with 'gcc -O3 -o stem stem.c' after which
        + * 'stem' takes a list of inputs and sends the stemmed equivalent to
        + * stdout.
        + *
        + * The algorithm as encoded here is particularly fast.
        + *
        + * Release 1: was many years ago
        + * Release 2: 11 Apr 2013
        + *     fixes a bug noted by Matt Patenaude <matt@mattpatenaude.com>,
        + *
        + *     case 'o': if (ends("\03" "ion") && (b[j] == 's' || b[j] == 't')) break;
        + *         ==>
        + *     case 'o': if (ends("\03" "ion") && j >= k0 && (b[j] == 's' || b[j] == 't')) break;
        + *
        + *     to avoid accessing b[k0-1] when the word in b is "ion".
        + * Release 3: 25 Mar 2014
        + *     fixes a similar bug noted by Klemens Baum <klemensbaum@gmail.com>,
        + *     that if step1ab leaves a one letter result (ied -> i, aing -> a etc),
        + *     step2 and step4 access the byte before the first letter. So we skip
        + *     steps after step1ab unless k > k0. */
        +#include <string.h>
        +#include "../lualib.h"
        +#define TRUE 1
        +#define FALSE 0
        +
        +/* The main part of the stemming algorithm starts here. b is a buffer
        + * holding a word to be stemmed. The letters are in b[k0], b[k0+1] ...
        + * ending at b[k]. In fact k0 = 0 in this demo program. k is readjusted
        + * downwards as the stemming progresses. Zero termination is not in fact
        + * used in the algorithm.
        + *
        + * Note that only lower case sequences are stemmed. Forcing to lower case
        + * should be done before stem(...) is called. */
        +
        +/* buffer for word to be stemmed */
        +static char *b;
        +
        +static int k;
        +static int k0;
        +
        +/* j is a general offset into the string */
        +static int j;
        +
        +/**
        + * TRUE when `b[i]` is a consonant.
        + */
        +
        +static int
        +isConsonant(int index) {
        +  switch (b[index]) {
        +    case 'a':
        +    case 'e':
        +    case 'i':
        +    case 'o':
        +    case 'u':
        +      return FALSE;
        +    case 'y':
        +      return (index == k0) ? TRUE : !isConsonant(index - 1);
        +    default:
        +      return TRUE;
        +  }
        +}
        +
        +/* Measure the number of consonant sequences between
        + * `k0` and `j`.  If C is a consonant sequence and V
        + * a vowel sequence, and <..> indicates arbitrary
        + * presence:
        + *
        + *   <C><V>       gives 0
        + *   <C>VC<V>     gives 1
        + *   <C>VCVC<V>   gives 2
        + *   <C>VCVCVC<V> gives 3
        + *   ....
        + */
        +static int
        +getMeasure() {
        +  int position;
        +  int index;
        +
        +  position = 0;
        +  index = k0;
        +
        +  while (TRUE) {
        +    if (index > j) {
        +      return position;
        +    }
        +
        +    if (!isConsonant(index)) {
        +      break;
        +    }
        +
        +    index++;
        +  }
        +
        +  index++;
        +
        +  while (TRUE) {
        +    while (TRUE) {
        +      if (index > j) {
        +        return position;
        +      }
        +
        +      if (isConsonant(index)) {
        +        break;
        +      }
        +
        +      index++;
        +    }
        +
        +    index++;
        +    position++;
        +
        +    while (TRUE) {
        +      if (index > j) {
        +        return position;
        +      }
        +
        +      if (!isConsonant(index)) {
        +        break;
        +      }
        +
        +      index++;
        +    }
        +
        +    index++;
        +  }
        +}
        +
        +/* `TRUE` when `k0, ... j` contains a vowel. */
        +static int
        +vowelInStem() {
        +  int index;
        +
        +  index = k0 - 1;
        +
        +  while (++index <= j) {
        +    if (!isConsonant(index)) {
        +      return TRUE;
        +    }
        +  }
        +
        +  return FALSE;
        +}
        +
        +/* `TRUE` when `j` and `(j-1)` are the same consonant. */
        +static int
        +isDoubleConsonant(int index) {
        +  if (b[index] != b[index - 1]) {
        +    return FALSE;
        +  }
        +
        +  return isConsonant(index);
        +}
        +
        +/* `TRUE` when `i - 2, i - 1, i` has the form
        + * `consonant - vowel - consonant` and also if the second
        + * C is not `"w"`, `"x"`, or `"y"`. this is used when
        + * trying to restore an `e` at the end of a short word.
        + *
        + * Such as:
        + *
        + * `cav(e)`, `lov(e)`, `hop(e)`, `crim(e)`, but `snow`,
        + * `box`, `tray`.
        + */
        +static int
        +cvc(int index) {
        +  int character;
        +
        +  if (index < k0 + 2 || !isConsonant(index) || isConsonant(index - 1) || !isConsonant(index - 2)) {
        +    return FALSE;
        +  }
        +
        +  character = b[index];
        +
        +  if (character == 'w' || character == 'x' || character == 'y') {
        +    return FALSE;
        +  }
        +
        +  return TRUE;
        +}
        +
        +/* `ends(s)` is `TRUE` when `k0, ...k` ends with `value`. */
        +static int
        +ends(const char *value) {
        +  int length = value[0];
        +
        +  /* Tiny speed-up. */
        +  if (value[length] != b[k]) {
        +    return FALSE;
        +  }
        +
        +  if (length > k - k0 + 1) {
        +    return FALSE;
        +  }
        +
        +  if (memcmp(b + k - length + 1, value + 1, length) != 0) {
        +    return FALSE;
        +  }
        +
        +  j = k - length;
        +
        +  return TRUE;
        +}
        +
        +/* `setTo(value)` sets `(j + 1), ...k` to the characters in
        + * `value`, readjusting `k`. */
        +static void
        +setTo(const char *value) {
        +  int length = value[0];
        +
        +  memmove(b + j + 1, value + 1, length);
        +
        +  k = j + length;
        +}
        +
        +/* Set string. */
        +static void
        +replace(const char *value) {
        +  if (getMeasure() > 0) {
        +    setTo(value);
        +  }
        +}
        +
        +/* `step1ab()` gets rid of plurals, `-ed`, `-ing`.
        + *
        + * Such as:
        + *
        + *   caresses  ->  caress
        + *   ponies    ->  poni
        + *   ties      ->  ti
        + *   caress    ->  caress
        + *   cats      ->  cat
        + *
        + *   feed      ->  feed
        + *   agreed    ->  agree
        + *   disabled  ->  disable
        + *
        + *   matting   ->  mat
        + *   mating    ->  mate
        + *   meeting   ->  meet
        + *   milling   ->  mill
        + *   messing   ->  mess
        + *
        + *   meetings  ->  meet
        + */
        +static void
        +step1ab() {
        +  int character;
        +
        +  if (b[k] == 's') {
        +    if (ends("\04" "sses")) {
        +      k -= 2;
        +    } else if (ends("\03" "ies")) {
        +      setTo("\01" "i");
        +    } else if (b[k - 1] != 's') {
        +      k--;
        +    }
        +  }
        +
        +  if (ends("\03" "eed")) {
        +    if (getMeasure() > 0) {
        +      k--;
        +    }
        +  } else if ((ends("\02" "ed") || ends("\03" "ing")) && vowelInStem()) {
        +    k = j;
        +
        +    if (ends("\02" "at")) {
        +      setTo("\03" "ate");
        +    } else if (ends("\02" "bl")) {
        +      setTo("\03" "ble");
        +    } else if (ends("\02" "iz")) {
        +      setTo("\03" "ize");
        +    } else if (isDoubleConsonant(k)) {
        +      k--;
        +
        +      character = b[k];
        +
        +      if (character == 'l' || character == 's' || character == 'z') {
        +        k++;
        +      }
        +    } else if (getMeasure() == 1 && cvc(k)) {
        +      setTo("\01" "e");
        +    }
        +  }
        +}
        +
        +/* `step1c()` turns terminal `"y"` to `"i"` when there
        + * is another vowel in the stem. */
        +static void
        +step1c() {
        +  if (ends("\01" "y") && vowelInStem()) {
        +    b[k] = 'i';
        +  }
        +}
        +
        +/* `step2()` maps double suffices to single ones.
        + * so -ization ( = -ize plus -ation) maps to -ize etc.
        + * note that the string before the suffix must give
        + * getMeasure() > 0. */
        +static void
        +step2() {
        +  switch (b[k - 1]) {
        +    case 'a':
        +      if (ends("\07" "ational")) {
        +        replace("\03" "ate");
        +        break;
        +      }
        +
        +      if (ends("\06" "tional")) {
        +        replace("\04" "tion");
        +        break;
        +      }
        +
        +      break;
        +    case 'c':
        +      if (ends("\04" "enci")) {
        +        replace("\04" "ence");
        +        break;
        +      }
        +
        +      if (ends("\04" "anci")) {
        +        replace("\04" "ance");
        +        break;
        +      }
        +
        +      break;
        +    case 'e':
        +      if (ends("\04" "izer")) {
        +        replace("\03" "ize");
        +        break;
        +      }
        +
        +      break;
        +    case 'l':
        +      /* --DEPARTURE--: To match the published algorithm,
        +       * replace this line with:
        +       *
        +       * ```
        +       * if (ends("\04" "abli")) {
        +       *     replace("\04" "able");
        +       *
        +       *     break;
        +       * }
        +       * ```
        +       */
        +      if (ends("\03" "bli")) {
        +        replace("\03" "ble");
        +        break;
        +      }
        +
        +      if (ends("\04" "alli")) {
        +        replace("\02" "al");
        +        break;
        +      }
        +
        +      if (ends("\05" "entli")) {
        +        replace("\03" "ent");
        +        break;
        +      }
        +
        +      if (ends("\03" "eli")) {
        +        replace("\01" "e");
        +        break;
        +      }
        +
        +      if (ends("\05" "ousli")) {
        +        replace("\03" "ous");
        +        break;
        +      }
        +
        +      break;
        +    case 'o':
        +      if (ends("\07" "ization")) {
        +        replace("\03" "ize");
        +        break;
        +      }
        +
        +      if (ends("\05" "ation")) {
        +        replace("\03" "ate");
        +        break;
        +      }
        +
        +      if (ends("\04" "ator")) {
        +        replace("\03" "ate");
        +        break;
        +      }
        +
        +      break;
        +    case 's':
        +      if (ends("\05" "alism")) {
        +        replace("\02" "al");
        +        break;
        +      }
        +
        +      if (ends("\07" "iveness")) {
        +        replace("\03" "ive");
        +        break;
        +      }
        +
        +      if (ends("\07" "fulness")) {
        +        replace("\03" "ful");
        +        break;
        +      }
        +
        +      if (ends("\07" "ousness")) {
        +        replace("\03" "ous");
        +        break;
        +      }
        +
        +      break;
        +    case 't':
        +      if (ends("\05" "aliti")) {
        +        replace("\02" "al");
        +        break;
        +      }
        +
        +      if (ends("\05" "iviti")) {
        +        replace("\03" "ive");
        +        break;
        +      }
        +
        +      if (ends("\06" "biliti")) {
        +        replace("\03" "ble");
        +        break;
        +      }
        +
        +      break;
        +    /* --DEPARTURE--: To match the published algorithm, delete this line. */
        +    case 'g':
        +      if (ends("\04" "logi")) {
        +        replace("\03" "log");
        +        break;
        +      }
        +  }
        +}
        +
        +/* `step3()` deals with -ic-, -full, -ness etc.
        + * similar strategy to step2. */
        +static void
        +step3() {
        +  switch (b[k]) {
        +    case 'e':
        +      if (ends("\05" "icate")) {
        +        replace("\02" "ic");
        +        break;
        +      }
        +
        +      if (ends("\05" "ative")) {
        +        replace("\00" "");
        +        break;
        +      }
        +
        +      if (ends("\05" "alize")) {
        +        replace("\02" "al");
        +        break;
        +      }
        +
        +      break;
        +    case 'i':
        +      if (ends("\05" "iciti")) {
        +        replace("\02" "ic");
        +        break;
        +      }
        +
        +      break;
        +    case 'l':
        +      if (ends("\04" "ical")) {
        +        replace("\02" "ic");
        +        break;
        +      }
        +
        +      if (ends("\03" "ful")) {
        +        replace("\00" "");
        +        break;
        +      }
        +
        +      break;
        +    case 's':
        +      if (ends("\04" "ness")) {
        +        replace("\00" "");
        +        break;
        +      }
        +
        +      break;
        +  }
        +}
        +
        +/* `step4()` takes off -ant, -ence etc., in
        + * context <c>vcvc<v>. */
        +static void
        +step4() {
        +  switch (b[k - 1]) {
        +    case 'a':
        +      if (ends("\02" "al")) {
        +        break;
        +      }
        +
        +      return;
        +    case 'c':
        +      if (ends("\04" "ance")) {
        +        break;
        +      }
        +
        +      if (ends("\04" "ence")) {
        +        break;
        +      }
        +
        +      return;
        +    case 'e':
        +      if (ends("\02" "er")) {
        +        break;
        +      }
        +
        +      return;
        +    case 'i':
        +      if (ends("\02" "ic")) {
        +        break;
        +      }
        +
        +      return;
        +    case 'l':
        +      if (ends("\04" "able")) {
        +        break;
        +      }
        +
        +      if (ends("\04" "ible")) {
        +        break;
        +      }
        +
        +      return;
        +    case 'n':
        +      if (ends("\03" "ant")) {
        +        break;
        +      }
        +
        +      if (ends("\05" "ement")) {
        +        break;
        +      }
        +
        +      if (ends("\04" "ment")) {
        +        break;
        +      }
        +
        +      if (ends("\03" "ent")) {
        +        break;
        +      }
        +
        +      return;
        +    case 'o':
        +      if (ends("\03" "ion") && j >= k0 && (b[j] == 's' || b[j] == 't')) {
        +        break;
        +      }
        +
        +      /* takes care of -ous */
        +      if (ends("\02" "ou")) {
        +        break;
        +      }
        +
        +      return;
        +    case 's':
        +      if (ends("\03" "ism")) {
        +        break;
        +      }
        +
        +      return;
        +    case 't':
        +      if (ends("\03" "ate")) {
        +        break;
        +      }
        +
        +      if (ends("\03" "iti")) {
        +        break;
        +      }
        +
        +      return;
        +    case 'u':
        +      if (ends("\03" "ous")) {
        +        break;
        +      }
        +
        +      return;
        +    case 'v':
        +      if (ends("\03" "ive")) {
        +        break;
        +      }
        +
        +      return;
        +    case 'z':
        +      if (ends("\03" "ize")) {
        +        break;
        +      }
        +
        +      return;
        +    default:
        +      return;
        +  }
        +
        +  if (getMeasure() > 1) {
        +    k = j;
        +  }
        +}
        +
        +/* `step5()` removes a final `-e` if `getMeasure()` is
        + * greater than `1`, and changes `-ll` to `-l` if
        + * `getMeasure()` is greater than `1`. */
        +static void
        +step5() {
        +  int a;
        +
        +  j = k;
        +
        +  if (b[k] == 'e') {
        +    a = getMeasure();
        +
        +    if (a > 1 || (a == 1 && !cvc(k - 1))) {
        +      k--;
        +    }
        +  }
        +
        +  if (b[k] == 'l' && isDoubleConsonant(k) && getMeasure() > 1) {
        +    k--;
        +  }
        +}
        +
        +/* In `stem(p, i, j)`, `p` is a `char` pointer, and the
        + * string to be stemmed is from `p[i]` to
        + * `p[j]` (inclusive).
        + *
        + * Typically, `i` is zero and `j` is the offset to the
        + * last character of a string, `(p[j + 1] == '\0')`.
        + * The stemmer adjusts the characters `p[i]` ... `p[j]`
        + * and returns the new end-point of the string, `k`.
        + *
        + * Stemming never increases word length, so `i <= k <= j`.
        + *
        + * To turn the stemmer into a module, declare 'stem' as
        + * extern, and delete the remainder of this file. */
        +int
        +stem(char *p, int index, int position) {
        +  /* Copy the parameters into statics. */
        +  b = p;
        +  k = position;
        +  k0 = index;
        +
        +  if (k <= k0 + 1) {
        +    return k; /* --DEPARTURE-- */
        +  }
        +
        +  /* With this line, strings of length 1 or 2 don't
        +   * go through the stemming process, although no
        +   * mention is made of this in the published
        +   * algorithm. Remove the line to match the published
        +   * algorithm. */
        +  step1ab();
        +
        +  if (k > k0) {
        +    step1c();
        +    step2();
        +    step3();
        +    step4();
        +    step5();
        +  }
        +
        +  return k;
        +}
        +
        +
        +static int l_stmr(lua_State* L)
        +{
        +  char* word = strdup(luaL_checkstring(L,1));
        +  int end = stem(word, 0, strlen(word) - 1);
        +  word[end + 1] = 0;
        +  lua_pushstring(L, word);
        +  free(word);
        +  return 1;
        +}
        +
        +static const struct luaL_Reg _lib [] = {
        +	{"stmr", l_stmr},
        +	{NULL,NULL}
        +};
        +
        +int luaopen_stmr(lua_State *L)
        +{
        +	luaL_newlib(L, _lib);
        +	return 1;
        +}
        \ No newline at end of file
        diff --git a/lib/ulib/3rd/zip/main.c b/lib/ulib/3rd/zip/main.c
        new file mode 100644
        index 0000000..6cd3112
        --- /dev/null
        +++ b/lib/ulib/3rd/zip/main.c
        @@ -0,0 +1,50 @@
        +#include <stdio.h>
        +#include <string.h>
        +
        +#include "zip.h"
        +
        +// callback function
        +int on_extract_entry(const char *filename, void *arg) {
        +    static int i = 0;
        +    int n = *(int *)arg;
        +    printf("Extracted: %s (%d of %d)\n", filename, ++i, n); 
        +
        +    return 0;
        +}
        +
        +int main(int argc, const char** argv) {
        +    /* 
        +       Create a new zip archive with default compression level (6)     
        +    */
        +	/*
        +    struct zip_t *zip = zip_open("foo.zip", ZIP_DEFAULT_COMPRESSION_LEVEL, 0);
        +    // we should check if zip is NULL
        +    {
        +        zip_entry_open(zip, "foo-1.txt");
        +        {
        +            char *buf = "Some data here...";
        +            zip_entry_write(zip, buf, strlen(buf));
        +        }
        +        zip_entry_close(zip);
        +
        +        zip_entry_open(zip, "foo-2.txt");
        +        {
        +            // merge 3 files into one entry and compress them on-the-fly.
        +            zip_entry_fwrite(zip, "foo-2.1.txt");
        +            zip_entry_fwrite(zip, "foo-2.2.txt");
        +            zip_entry_fwrite(zip, "foo-2.3.txt");
        +        }
        +        zip_entry_close(zip);       
        +    }
        +    // always remember to close and release resources
        +    zip_close(zip);
        +	*/
        +
        +    /*
        +        Extract a zip archive into /tmp folder
        +    */
        +    int arg = 5;
        +    zip_extract(argv[1], "/Users/mrsang/Downloads/zip-master/src/tmp", on_extract_entry, &arg);
        +
        +    return 0;
        +}
        \ No newline at end of file
        diff --git a/lib/ulib/3rd/zip/miniz.c b/lib/ulib/3rd/zip/miniz.c
        new file mode 100755
        index 0000000..358143a
        --- /dev/null
        +++ b/lib/ulib/3rd/zip/miniz.c
        @@ -0,0 +1,4916 @@
        +/* miniz.c v1.15 - public domain deflate/inflate, zlib-subset, ZIP reading/writing/appending, PNG writing
        +   See "unlicense" statement at the end of this file.
        +   Rich Geldreich <richgel99@gmail.com>, last updated Oct. 13, 2013
        +   Implements RFC 1950: http://www.ietf.org/rfc/rfc1950.txt and RFC 1951: http://www.ietf.org/rfc/rfc1951.txt
        +
        +   Most API's defined in miniz.c are optional. For example, to disable the archive related functions just define
        +   MINIZ_NO_ARCHIVE_APIS, or to get rid of all stdio usage define MINIZ_NO_STDIO (see the list below for more macros).
        +
        +   * Change History
        +     10/13/13 v1.15 r4 - Interim bugfix release while I work on the next major release with Zip64 support (almost there!):
        +       - Critical fix for the MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY bug (thanks kahmyong.moon@hp.com) which could cause locate files to not find files. This bug
        +        would only have occured in earlier versions if you explicitly used this flag, OR if you used mz_zip_extract_archive_file_to_heap() or mz_zip_add_mem_to_archive_file_in_place()
        +        (which used this flag). If you can't switch to v1.15 but want to fix this bug, just remove the uses of this flag from both helper funcs (and of course don't use the flag).
        +       - Bugfix in mz_zip_reader_extract_to_mem_no_alloc() from kymoon when pUser_read_buf is not NULL and compressed size is > uncompressed size
        +       - Fixing mz_zip_reader_extract_*() funcs so they don't try to extract compressed data from directory entries, to account for weird zipfiles which contain zero-size compressed data on dir entries.
        +         Hopefully this fix won't cause any issues on weird zip archives, because it assumes the low 16-bits of zip external attributes are DOS attributes (which I believe they always are in practice).
        +       - Fixing mz_zip_reader_is_file_a_directory() so it doesn't check the internal attributes, just the filename and external attributes
        +       - mz_zip_reader_init_file() - missing MZ_FCLOSE() call if the seek failed
        +       - Added cmake support for Linux builds which builds all the examples, tested with clang v3.3 and gcc v4.6.
        +       - Clang fix for tdefl_write_image_to_png_file_in_memory() from toffaletti
        +       - Merged MZ_FORCEINLINE fix from hdeanclark
        +       - Fix <time.h> include before config #ifdef, thanks emil.brink
        +       - Added tdefl_write_image_to_png_file_in_memory_ex(): supports Y flipping (super useful for OpenGL apps), and explicit control over the compression level (so you can
        +        set it to 1 for real-time compression).
        +       - Merged in some compiler fixes from paulharris's github repro.
        +       - Retested this build under Windows (VS 2010, including static analysis), tcc  0.9.26, gcc v4.6 and clang v3.3.
        +       - Added example6.c, which dumps an image of the mandelbrot set to a PNG file.
        +       - Modified example2 to help test the MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY flag more.
        +       - In r3: Bugfix to mz_zip_writer_add_file() found during merge: Fix possible src file fclose() leak if alignment bytes+local header file write faiiled
        +		 - In r4: Minor bugfix to mz_zip_writer_add_from_zip_reader(): Was pushing the wrong central dir header offset, appears harmless in this release, but it became a problem in the zip64 branch
        +     5/20/12 v1.14 - MinGW32/64 GCC 4.6.1 compiler fixes: added MZ_FORCEINLINE, #include <time.h> (thanks fermtect).
        +     5/19/12 v1.13 - From jason@cornsyrup.org and kelwert@mtu.edu - Fix mz_crc32() so it doesn't compute the wrong CRC-32's when mz_ulong is 64-bit.
        +       - Temporarily/locally slammed in "typedef unsigned long mz_ulong" and re-ran a randomized regression test on ~500k files.
        +       - Eliminated a bunch of warnings when compiling with GCC 32-bit/64.
        +       - Ran all examples, miniz.c, and tinfl.c through MSVC 2008's /analyze (static analysis) option and fixed all warnings (except for the silly
        +        "Use of the comma-operator in a tested expression.." analysis warning, which I purposely use to work around a MSVC compiler warning).
        +       - Created 32-bit and 64-bit Codeblocks projects/workspace. Built and tested Linux executables. The codeblocks workspace is compatible with Linux+Win32/x64.
        +       - Added miniz_tester solution/project, which is a useful little app derived from LZHAM's tester app that I use as part of the regression test.
        +       - Ran miniz.c and tinfl.c through another series of regression testing on ~500,000 files and archives.
        +       - Modified example5.c so it purposely disables a bunch of high-level functionality (MINIZ_NO_STDIO, etc.). (Thanks to corysama for the MINIZ_NO_STDIO bug report.)
        +       - Fix ftell() usage in examples so they exit with an error on files which are too large (a limitation of the examples, not miniz itself).
        +     4/12/12 v1.12 - More comments, added low-level example5.c, fixed a couple minor level_and_flags issues in the archive API's.
        +      level_and_flags can now be set to MZ_DEFAULT_COMPRESSION. Thanks to Bruce Dawson <bruced@valvesoftware.com> for the feedback/bug report.
        +     5/28/11 v1.11 - Added statement from unlicense.org
        +     5/27/11 v1.10 - Substantial compressor optimizations:
        +      - Level 1 is now ~4x faster than before. The L1 compressor's throughput now varies between 70-110MB/sec. on a
        +      - Core i7 (actual throughput varies depending on the type of data, and x64 vs. x86).
        +      - Improved baseline L2-L9 compression perf. Also, greatly improved compression perf. issues on some file types.
        +      - Refactored the compression code for better readability and maintainability.
        +      - Added level 10 compression level (L10 has slightly better ratio than level 9, but could have a potentially large
        +       drop in throughput on some files).
        +     5/15/11 v1.09 - Initial stable release.
        +
        +   * Low-level Deflate/Inflate implementation notes:
        +
        +     Compression: Use the "tdefl" API's. The compressor supports raw, static, and dynamic blocks, lazy or
        +     greedy parsing, match length filtering, RLE-only, and Huffman-only streams. It performs and compresses
        +     approximately as well as zlib.
        +
        +     Decompression: Use the "tinfl" API's. The entire decompressor is implemented as a single function
        +     coroutine: see tinfl_decompress(). It supports decompression into a 32KB (or larger power of 2) wrapping buffer, or into a memory
        +     block large enough to hold the entire file.
        +
        +     The low-level tdefl/tinfl API's do not make any use of dynamic memory allocation.
        +
        +   * zlib-style API notes:
        +
        +     miniz.c implements a fairly large subset of zlib. There's enough functionality present for it to be a drop-in
        +     zlib replacement in many apps:
        +        The z_stream struct, optional memory allocation callbacks
        +        deflateInit/deflateInit2/deflate/deflateReset/deflateEnd/deflateBound
        +        inflateInit/inflateInit2/inflate/inflateEnd
        +        compress, compress2, compressBound, uncompress
        +        CRC-32, Adler-32 - Using modern, minimal code size, CPU cache friendly routines.
        +        Supports raw deflate streams or standard zlib streams with adler-32 checking.
        +
        +     Limitations:
        +      The callback API's are not implemented yet. No support for gzip headers or zlib static dictionaries.
        +      I've tried to closely emulate zlib's various flavors of stream flushing and return status codes, but
        +      there are no guarantees that miniz.c pulls this off perfectly.
        +
        +   * PNG writing: See the tdefl_write_image_to_png_file_in_memory() function, originally written by
        +     Alex Evans. Supports 1-4 bytes/pixel images.
        +
        +   * ZIP archive API notes:
        +
        +     The ZIP archive API's where designed with simplicity and efficiency in mind, with just enough abstraction to
        +     get the job done with minimal fuss. There are simple API's to retrieve file information, read files from
        +     existing archives, create new archives, append new files to existing archives, or clone archive data from
        +     one archive to another. It supports archives located in memory or the heap, on disk (using stdio.h),
        +     or you can specify custom file read/write callbacks.
        +
        +     - Archive reading: Just call this function to read a single file from a disk archive:
        +
        +      void *mz_zip_extract_archive_file_to_heap(const char *pZip_filename, const char *pArchive_name,
        +        size_t *pSize, mz_uint zip_flags);
        +
        +     For more complex cases, use the "mz_zip_reader" functions. Upon opening an archive, the entire central
        +     directory is located and read as-is into memory, and subsequent file access only occurs when reading individual files.
        +
        +     - Archives file scanning: The simple way is to use this function to scan a loaded archive for a specific file:
        +
        +     int mz_zip_reader_locate_file(mz_zip_archive *pZip, const char *pName, const char *pComment, mz_uint flags);
        +
        +     The locate operation can optionally check file comments too, which (as one example) can be used to identify
        +     multiple versions of the same file in an archive. This function uses a simple linear search through the central
        +     directory, so it's not very fast.
        +
        +     Alternately, you can iterate through all the files in an archive (using mz_zip_reader_get_num_files()) and
        +     retrieve detailed info on each file by calling mz_zip_reader_file_stat().
        +
        +     - Archive creation: Use the "mz_zip_writer" functions. The ZIP writer immediately writes compressed file data
        +     to disk and builds an exact image of the central directory in memory. The central directory image is written
        +     all at once at the end of the archive file when the archive is finalized.
        +
        +     The archive writer can optionally align each file's local header and file data to any power of 2 alignment,
        +     which can be useful when the archive will be read from optical media. Also, the writer supports placing
        +     arbitrary data blobs at the very beginning of ZIP archives. Archives written using either feature are still
        +     readable by any ZIP tool.
        +
        +     - Archive appending: The simple way to add a single file to an archive is to call this function:
        +
        +      mz_bool mz_zip_add_mem_to_archive_file_in_place(const char *pZip_filename, const char *pArchive_name,
        +        const void *pBuf, size_t buf_size, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags);
        +
        +     The archive will be created if it doesn't already exist, otherwise it'll be appended to.
        +     Note the appending is done in-place and is not an atomic operation, so if something goes wrong
        +     during the operation it's possible the archive could be left without a central directory (although the local
        +     file headers and file data will be fine, so the archive will be recoverable).
        +
        +     For more complex archive modification scenarios:
        +     1. The safest way is to use a mz_zip_reader to read the existing archive, cloning only those bits you want to
        +     preserve into a new archive using using the mz_zip_writer_add_from_zip_reader() function (which compiles the
        +     compressed file data as-is). When you're done, delete the old archive and rename the newly written archive, and
        +     you're done. This is safe but requires a bunch of temporary disk space or heap memory.
        +
        +     2. Or, you can convert an mz_zip_reader in-place to an mz_zip_writer using mz_zip_writer_init_from_reader(),
        +     append new files as needed, then finalize the archive which will write an updated central directory to the
        +     original archive. (This is basically what mz_zip_add_mem_to_archive_file_in_place() does.) There's a
        +     possibility that the archive's central directory could be lost with this method if anything goes wrong, though.
        +
        +     - ZIP archive support limitations:
        +     No zip64 or spanning support. Extraction functions can only handle unencrypted, stored or deflated files.
        +     Requires streams capable of seeking.
        +
        +   * This is a header file library, like stb_image.c. To get only a header file, either cut and paste the
        +     below header, or create miniz.h, #define MINIZ_HEADER_FILE_ONLY, and then include miniz.c from it.
        +
        +   * Important: For best perf. be sure to customize the below macros for your target platform:
        +     #define MINIZ_USE_UNALIGNED_LOADS_AND_STORES 1
        +     #define MINIZ_LITTLE_ENDIAN 1
        +     #define MINIZ_HAS_64BIT_REGISTERS 1
        +
        +   * On platforms using glibc, Be sure to "#define _LARGEFILE64_SOURCE 1" before including miniz.c to ensure miniz
        +     uses the 64-bit variants: fopen64(), stat64(), etc. Otherwise you won't be able to process large files
        +     (i.e. 32-bit stat() fails for me on files > 0x7FFFFFFF bytes).
        +*/
        +
        +#ifndef MINIZ_HEADER_INCLUDED
        +#define MINIZ_HEADER_INCLUDED
        +
        +#include <stdlib.h>
        +
        +// Defines to completely disable specific portions of miniz.c:
        +// If all macros here are defined the only functionality remaining will be CRC-32, adler-32, tinfl, and tdefl.
        +
        +// Define MINIZ_NO_STDIO to disable all usage and any functions which rely on stdio for file I/O.
        +//#define MINIZ_NO_STDIO
        +
        +// If MINIZ_NO_TIME is specified then the ZIP archive functions will not be able to get the current time, or
        +// get/set file times, and the C run-time funcs that get/set times won't be called.
        +// The current downside is the times written to your archives will be from 1979.
        +//#define MINIZ_NO_TIME
        +
        +// Define MINIZ_NO_ARCHIVE_APIS to disable all ZIP archive API's.
        +//#define MINIZ_NO_ARCHIVE_APIS
        +
        +// Define MINIZ_NO_ARCHIVE_APIS to disable all writing related ZIP archive API's.
        +//#define MINIZ_NO_ARCHIVE_WRITING_APIS
        +
        +// Define MINIZ_NO_ZLIB_APIS to remove all ZLIB-style compression/decompression API's.
        +//#define MINIZ_NO_ZLIB_APIS
        +
        +// Define MINIZ_NO_ZLIB_COMPATIBLE_NAME to disable zlib names, to prevent conflicts against stock zlib.
        +//#define MINIZ_NO_ZLIB_COMPATIBLE_NAMES
        +
        +// Define MINIZ_NO_MALLOC to disable all calls to malloc, free, and realloc.
        +// Note if MINIZ_NO_MALLOC is defined then the user must always provide custom user alloc/free/realloc
        +// callbacks to the zlib and archive API's, and a few stand-alone helper API's which don't provide custom user
        +// functions (such as tdefl_compress_mem_to_heap() and tinfl_decompress_mem_to_heap()) won't work.
        +//#define MINIZ_NO_MALLOC
        +
        +#if defined(__TINYC__) && (defined(__linux) || defined(__linux__))
        +  // TODO: Work around "error: include file 'sys\utime.h' when compiling with tcc on Linux
        +  #define MINIZ_NO_TIME
        +#endif
        +
        +#if !defined(MINIZ_NO_TIME) && !defined(MINIZ_NO_ARCHIVE_APIS)
        +  #include <time.h>
        +#endif
        +
        +#if defined(_M_IX86) || defined(_M_X64) || defined(__i386__) || defined(__i386) || defined(__i486__) || defined(__i486) || defined(i386) || defined(__ia64__) || defined(__x86_64__)
        +// MINIZ_X86_OR_X64_CPU is only used to help set the below macros.
        +#define MINIZ_X86_OR_X64_CPU 1
        +#endif
        +
        +#if (__BYTE_ORDER__==__ORDER_LITTLE_ENDIAN__) || MINIZ_X86_OR_X64_CPU
        +// Set MINIZ_LITTLE_ENDIAN to 1 if the processor is little endian.
        +#define MINIZ_LITTLE_ENDIAN 1
        +#endif
        +
        +#if MINIZ_X86_OR_X64_CPU
        +// Set MINIZ_USE_UNALIGNED_LOADS_AND_STORES to 1 on CPU's that permit efficient integer loads and stores from unaligned addresses.
        +#define MINIZ_USE_UNALIGNED_LOADS_AND_STORES 1
        +#endif
        +
        +#if defined(_M_X64) || defined(_WIN64) || defined(__MINGW64__) || defined(_LP64) || defined(__LP64__) || defined(__ia64__) || defined(__x86_64__)
        +// Set MINIZ_HAS_64BIT_REGISTERS to 1 if operations on 64-bit integers are reasonably fast (and don't involve compiler generated calls to helper functions).
        +#define MINIZ_HAS_64BIT_REGISTERS 1
        +#endif
        +
        +#ifdef __cplusplus
        +extern "C" {
        +#endif
        +
        +// ------------------- zlib-style API Definitions.
        +
        +// For more compatibility with zlib, miniz.c uses unsigned long for some parameters/struct members. Beware: mz_ulong can be either 32 or 64-bits!
        +typedef unsigned long mz_ulong;
        +
        +// mz_free() internally uses the MZ_FREE() macro (which by default calls free() unless you've modified the MZ_MALLOC macro) to release a block allocated from the heap.
        +void mz_free(void *p);
        +
        +#define MZ_ADLER32_INIT (1)
        +// mz_adler32() returns the initial adler-32 value to use when called with ptr==NULL.
        +mz_ulong mz_adler32(mz_ulong adler, const unsigned char *ptr, size_t buf_len);
        +
        +#define MZ_CRC32_INIT (0)
        +// mz_crc32() returns the initial CRC-32 value to use when called with ptr==NULL.
        +mz_ulong mz_crc32(mz_ulong crc, const unsigned char *ptr, size_t buf_len);
        +
        +// Compression strategies.
        +enum { MZ_DEFAULT_STRATEGY = 0, MZ_FILTERED = 1, MZ_HUFFMAN_ONLY = 2, MZ_RLE = 3, MZ_FIXED = 4 };
        +
        +// Method
        +#define MZ_DEFLATED 8
        +
        +#ifndef MINIZ_NO_ZLIB_APIS
        +
        +// Heap allocation callbacks.
        +// Note that mz_alloc_func parameter types purpsosely differ from zlib's: items/size is size_t, not unsigned long.
        +typedef void *(*mz_alloc_func)(void *opaque, size_t items, size_t size);
        +typedef void (*mz_free_func)(void *opaque, void *address);
        +typedef void *(*mz_realloc_func)(void *opaque, void *address, size_t items, size_t size);
        +
        +#define MZ_VERSION          "9.1.15"
        +#define MZ_VERNUM           0x91F0
        +#define MZ_VER_MAJOR        9
        +#define MZ_VER_MINOR        1
        +#define MZ_VER_REVISION     15
        +#define MZ_VER_SUBREVISION  0
        +
        +// Flush values. For typical usage you only need MZ_NO_FLUSH and MZ_FINISH. The other values are for advanced use (refer to the zlib docs).
        +enum { MZ_NO_FLUSH = 0, MZ_PARTIAL_FLUSH = 1, MZ_SYNC_FLUSH = 2, MZ_FULL_FLUSH = 3, MZ_FINISH = 4, MZ_BLOCK = 5 };
        +
        +// Return status codes. MZ_PARAM_ERROR is non-standard.
        +enum { MZ_OK = 0, MZ_STREAM_END = 1, MZ_NEED_DICT = 2, MZ_ERRNO = -1, MZ_STREAM_ERROR = -2, MZ_DATA_ERROR = -3, MZ_MEM_ERROR = -4, MZ_BUF_ERROR = -5, MZ_VERSION_ERROR = -6, MZ_PARAM_ERROR = -10000 };
        +
        +// Compression levels: 0-9 are the standard zlib-style levels, 10 is best possible compression (not zlib compatible, and may be very slow), MZ_DEFAULT_COMPRESSION=MZ_DEFAULT_LEVEL.
        +enum { MZ_NO_COMPRESSION = 0, MZ_BEST_SPEED = 1, MZ_BEST_COMPRESSION = 9, MZ_UBER_COMPRESSION = 10, MZ_DEFAULT_LEVEL = 6, MZ_DEFAULT_COMPRESSION = -1 };
        +
        +// Window bits
        +#define MZ_DEFAULT_WINDOW_BITS 15
        +
        +struct mz_internal_state;
        +
        +// Compression/decompression stream struct.
        +typedef struct mz_stream_s
        +{
        +  const unsigned char *next_in;     // pointer to next byte to read
        +  unsigned int avail_in;            // number of bytes available at next_in
        +  mz_ulong total_in;                // total number of bytes consumed so far
        +
        +  unsigned char *next_out;          // pointer to next byte to write
        +  unsigned int avail_out;           // number of bytes that can be written to next_out
        +  mz_ulong total_out;               // total number of bytes produced so far
        +
        +  char *msg;                        // error msg (unused)
        +  struct mz_internal_state *state;  // internal state, allocated by zalloc/zfree
        +
        +  mz_alloc_func zalloc;             // optional heap allocation function (defaults to malloc)
        +  mz_free_func zfree;               // optional heap free function (defaults to free)
        +  void *opaque;                     // heap alloc function user pointer
        +
        +  int data_type;                    // data_type (unused)
        +  mz_ulong adler;                   // adler32 of the source or uncompressed data
        +  mz_ulong reserved;                // not used
        +} mz_stream;
        +
        +typedef mz_stream *mz_streamp;
        +
        +// Returns the version string of miniz.c.
        +const char *mz_version(void);
        +
        +// mz_deflateInit() initializes a compressor with default options:
        +// Parameters:
        +//  pStream must point to an initialized mz_stream struct.
        +//  level must be between [MZ_NO_COMPRESSION, MZ_BEST_COMPRESSION].
        +//  level 1 enables a specially optimized compression function that's been optimized purely for performance, not ratio.
        +//  (This special func. is currently only enabled when MINIZ_USE_UNALIGNED_LOADS_AND_STORES and MINIZ_LITTLE_ENDIAN are defined.)
        +// Return values:
        +//  MZ_OK on success.
        +//  MZ_STREAM_ERROR if the stream is bogus.
        +//  MZ_PARAM_ERROR if the input parameters are bogus.
        +//  MZ_MEM_ERROR on out of memory.
        +int mz_deflateInit(mz_streamp pStream, int level);
        +
        +// mz_deflateInit2() is like mz_deflate(), except with more control:
        +// Additional parameters:
        +//   method must be MZ_DEFLATED
        +//   window_bits must be MZ_DEFAULT_WINDOW_BITS (to wrap the deflate stream with zlib header/adler-32 footer) or -MZ_DEFAULT_WINDOW_BITS (raw deflate/no header or footer)
        +//   mem_level must be between [1, 9] (it's checked but ignored by miniz.c)
        +int mz_deflateInit2(mz_streamp pStream, int level, int method, int window_bits, int mem_level, int strategy);
        +
        +// Quickly resets a compressor without having to reallocate anything. Same as calling mz_deflateEnd() followed by mz_deflateInit()/mz_deflateInit2().
        +int mz_deflateReset(mz_streamp pStream);
        +
        +// mz_deflate() compresses the input to output, consuming as much of the input and producing as much output as possible.
        +// Parameters:
        +//   pStream is the stream to read from and write to. You must initialize/update the next_in, avail_in, next_out, and avail_out members.
        +//   flush may be MZ_NO_FLUSH, MZ_PARTIAL_FLUSH/MZ_SYNC_FLUSH, MZ_FULL_FLUSH, or MZ_FINISH.
        +// Return values:
        +//   MZ_OK on success (when flushing, or if more input is needed but not available, and/or there's more output to be written but the output buffer is full).
        +//   MZ_STREAM_END if all input has been consumed and all output bytes have been written. Don't call mz_deflate() on the stream anymore.
        +//   MZ_STREAM_ERROR if the stream is bogus.
        +//   MZ_PARAM_ERROR if one of the parameters is invalid.
        +//   MZ_BUF_ERROR if no forward progress is possible because the input and/or output buffers are empty. (Fill up the input buffer or free up some output space and try again.)
        +int mz_deflate(mz_streamp pStream, int flush);
        +
        +// mz_deflateEnd() deinitializes a compressor:
        +// Return values:
        +//  MZ_OK on success.
        +//  MZ_STREAM_ERROR if the stream is bogus.
        +int mz_deflateEnd(mz_streamp pStream);
        +
        +// mz_deflateBound() returns a (very) conservative upper bound on the amount of data that could be generated by deflate(), assuming flush is set to only MZ_NO_FLUSH or MZ_FINISH.
        +mz_ulong mz_deflateBound(mz_streamp pStream, mz_ulong source_len);
        +
        +// Single-call compression functions mz_compress() and mz_compress2():
        +// Returns MZ_OK on success, or one of the error codes from mz_deflate() on failure.
        +int mz_compress(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource, mz_ulong source_len);
        +int mz_compress2(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource, mz_ulong source_len, int level);
        +
        +// mz_compressBound() returns a (very) conservative upper bound on the amount of data that could be generated by calling mz_compress().
        +mz_ulong mz_compressBound(mz_ulong source_len);
        +
        +// Initializes a decompressor.
        +int mz_inflateInit(mz_streamp pStream);
        +
        +// mz_inflateInit2() is like mz_inflateInit() with an additional option that controls the window size and whether or not the stream has been wrapped with a zlib header/footer:
        +// window_bits must be MZ_DEFAULT_WINDOW_BITS (to parse zlib header/footer) or -MZ_DEFAULT_WINDOW_BITS (raw deflate).
        +int mz_inflateInit2(mz_streamp pStream, int window_bits);
        +
        +// Decompresses the input stream to the output, consuming only as much of the input as needed, and writing as much to the output as possible.
        +// Parameters:
        +//   pStream is the stream to read from and write to. You must initialize/update the next_in, avail_in, next_out, and avail_out members.
        +//   flush may be MZ_NO_FLUSH, MZ_SYNC_FLUSH, or MZ_FINISH.
        +//   On the first call, if flush is MZ_FINISH it's assumed the input and output buffers are both sized large enough to decompress the entire stream in a single call (this is slightly faster).
        +//   MZ_FINISH implies that there are no more source bytes available beside what's already in the input buffer, and that the output buffer is large enough to hold the rest of the decompressed data.
        +// Return values:
        +//   MZ_OK on success. Either more input is needed but not available, and/or there's more output to be written but the output buffer is full.
        +//   MZ_STREAM_END if all needed input has been consumed and all output bytes have been written. For zlib streams, the adler-32 of the decompressed data has also been verified.
        +//   MZ_STREAM_ERROR if the stream is bogus.
        +//   MZ_DATA_ERROR if the deflate stream is invalid.
        +//   MZ_PARAM_ERROR if one of the parameters is invalid.
        +//   MZ_BUF_ERROR if no forward progress is possible because the input buffer is empty but the inflater needs more input to continue, or if the output buffer is not large enough. Call mz_inflate() again
        +//   with more input data, or with more room in the output buffer (except when using single call decompression, described above).
        +int mz_inflate(mz_streamp pStream, int flush);
        +
        +// Deinitializes a decompressor.
        +int mz_inflateEnd(mz_streamp pStream);
        +
        +// Single-call decompression.
        +// Returns MZ_OK on success, or one of the error codes from mz_inflate() on failure.
        +int mz_uncompress(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource, mz_ulong source_len);
        +
        +// Returns a string description of the specified error code, or NULL if the error code is invalid.
        +const char *mz_error(int err);
        +
        +// Redefine zlib-compatible names to miniz equivalents, so miniz.c can be used as a drop-in replacement for the subset of zlib that miniz.c supports.
        +// Define MINIZ_NO_ZLIB_COMPATIBLE_NAMES to disable zlib-compatibility if you use zlib in the same project.
        +#ifndef MINIZ_NO_ZLIB_COMPATIBLE_NAMES
        +  typedef unsigned char Byte;
        +  typedef unsigned int uInt;
        +  typedef mz_ulong uLong;
        +  typedef Byte Bytef;
        +  typedef uInt uIntf;
        +  typedef char charf;
        +  typedef int intf;
        +  typedef void *voidpf;
        +  typedef uLong uLongf;
        +  typedef void *voidp;
        +  typedef void *const voidpc;
        +  #define Z_NULL                0
        +  #define Z_NO_FLUSH            MZ_NO_FLUSH
        +  #define Z_PARTIAL_FLUSH       MZ_PARTIAL_FLUSH
        +  #define Z_SYNC_FLUSH          MZ_SYNC_FLUSH
        +  #define Z_FULL_FLUSH          MZ_FULL_FLUSH
        +  #define Z_FINISH              MZ_FINISH
        +  #define Z_BLOCK               MZ_BLOCK
        +  #define Z_OK                  MZ_OK
        +  #define Z_STREAM_END          MZ_STREAM_END
        +  #define Z_NEED_DICT           MZ_NEED_DICT
        +  #define Z_ERRNO               MZ_ERRNO
        +  #define Z_STREAM_ERROR        MZ_STREAM_ERROR
        +  #define Z_DATA_ERROR          MZ_DATA_ERROR
        +  #define Z_MEM_ERROR           MZ_MEM_ERROR
        +  #define Z_BUF_ERROR           MZ_BUF_ERROR
        +  #define Z_VERSION_ERROR       MZ_VERSION_ERROR
        +  #define Z_PARAM_ERROR         MZ_PARAM_ERROR
        +  #define Z_NO_COMPRESSION      MZ_NO_COMPRESSION
        +  #define Z_BEST_SPEED          MZ_BEST_SPEED
        +  #define Z_BEST_COMPRESSION    MZ_BEST_COMPRESSION
        +  #define Z_DEFAULT_COMPRESSION MZ_DEFAULT_COMPRESSION
        +  #define Z_DEFAULT_STRATEGY    MZ_DEFAULT_STRATEGY
        +  #define Z_FILTERED            MZ_FILTERED
        +  #define Z_HUFFMAN_ONLY        MZ_HUFFMAN_ONLY
        +  #define Z_RLE                 MZ_RLE
        +  #define Z_FIXED               MZ_FIXED
        +  #define Z_DEFLATED            MZ_DEFLATED
        +  #define Z_DEFAULT_WINDOW_BITS MZ_DEFAULT_WINDOW_BITS
        +  #define alloc_func            mz_alloc_func
        +  #define free_func             mz_free_func
        +  #define internal_state        mz_internal_state
        +  #define z_stream              mz_stream
        +  #define deflateInit           mz_deflateInit
        +  #define deflateInit2          mz_deflateInit2
        +  #define deflateReset          mz_deflateReset
        +  #define deflate               mz_deflate
        +  #define deflateEnd            mz_deflateEnd
        +  #define deflateBound          mz_deflateBound
        +  #define compress              mz_compress
        +  #define compress2             mz_compress2
        +  #define compressBound         mz_compressBound
        +  #define inflateInit           mz_inflateInit
        +  #define inflateInit2          mz_inflateInit2
        +  #define inflate               mz_inflate
        +  #define inflateEnd            mz_inflateEnd
        +  #define uncompress            mz_uncompress
        +  #define crc32                 mz_crc32
        +  #define adler32               mz_adler32
        +  #define MAX_WBITS             15
        +  #define MAX_MEM_LEVEL         9
        +  #define zError                mz_error
        +  #define ZLIB_VERSION          MZ_VERSION
        +  #define ZLIB_VERNUM           MZ_VERNUM
        +  #define ZLIB_VER_MAJOR        MZ_VER_MAJOR
        +  #define ZLIB_VER_MINOR        MZ_VER_MINOR
        +  #define ZLIB_VER_REVISION     MZ_VER_REVISION
        +  #define ZLIB_VER_SUBREVISION  MZ_VER_SUBREVISION
        +  #define zlibVersion           mz_version
        +  #define zlib_version          mz_version()
        +#endif // #ifndef MINIZ_NO_ZLIB_COMPATIBLE_NAMES
        +
        +#endif // MINIZ_NO_ZLIB_APIS
        +
        +// ------------------- Types and macros
        +
        +typedef unsigned char mz_uint8;
        +typedef signed short mz_int16;
        +typedef unsigned short mz_uint16;
        +typedef unsigned int mz_uint32;
        +typedef unsigned int mz_uint;
        +typedef long long mz_int64;
        +typedef unsigned long long mz_uint64;
        +typedef int mz_bool;
        +
        +#define MZ_FALSE (0)
        +#define MZ_TRUE (1)
        +
        +// An attempt to work around MSVC's spammy "warning C4127: conditional expression is constant" message.
        +#ifdef _MSC_VER
        +   #define MZ_MACRO_END while (0, 0)
        +#else
        +   #define MZ_MACRO_END while (0)
        +#endif
        +
        +// ------------------- ZIP archive reading/writing
        +
        +#ifndef MINIZ_NO_ARCHIVE_APIS
        +
        +enum
        +{
        +  MZ_ZIP_MAX_IO_BUF_SIZE = 64*1024,
        +  MZ_ZIP_MAX_ARCHIVE_FILENAME_SIZE = 260,
        +  MZ_ZIP_MAX_ARCHIVE_FILE_COMMENT_SIZE = 256
        +};
        +
        +typedef struct
        +{
        +  mz_uint32 m_file_index;
        +  mz_uint32 m_central_dir_ofs;
        +  mz_uint16 m_version_made_by;
        +  mz_uint16 m_version_needed;
        +  mz_uint16 m_bit_flag;
        +  mz_uint16 m_method;
        +#ifndef MINIZ_NO_TIME
        +  time_t m_time;
        +#endif
        +  mz_uint32 m_crc32;
        +  mz_uint64 m_comp_size;
        +  mz_uint64 m_uncomp_size;
        +  mz_uint16 m_internal_attr;
        +  mz_uint32 m_external_attr;
        +  mz_uint64 m_local_header_ofs;
        +  mz_uint32 m_comment_size;
        +  char m_filename[MZ_ZIP_MAX_ARCHIVE_FILENAME_SIZE];
        +  char m_comment[MZ_ZIP_MAX_ARCHIVE_FILE_COMMENT_SIZE];
        +} mz_zip_archive_file_stat;
        +
        +typedef size_t (*mz_file_read_func)(void *pOpaque, mz_uint64 file_ofs, void *pBuf, size_t n);
        +typedef size_t (*mz_file_write_func)(void *pOpaque, mz_uint64 file_ofs, const void *pBuf, size_t n);
        +
        +struct mz_zip_internal_state_tag;
        +typedef struct mz_zip_internal_state_tag mz_zip_internal_state;
        +
        +typedef enum
        +{
        +  MZ_ZIP_MODE_INVALID = 0,
        +  MZ_ZIP_MODE_READING = 1,
        +  MZ_ZIP_MODE_WRITING = 2,
        +  MZ_ZIP_MODE_WRITING_HAS_BEEN_FINALIZED = 3
        +} mz_zip_mode;
        +
        +typedef struct mz_zip_archive_tag
        +{
        +  mz_uint64 m_archive_size;
        +  mz_uint64 m_central_directory_file_ofs;
        +  mz_uint m_total_files;
        +  mz_zip_mode m_zip_mode;
        +
        +  mz_uint m_file_offset_alignment;
        +
        +  mz_alloc_func m_pAlloc;
        +  mz_free_func m_pFree;
        +  mz_realloc_func m_pRealloc;
        +  void *m_pAlloc_opaque;
        +
        +  mz_file_read_func m_pRead;
        +  mz_file_write_func m_pWrite;
        +  void *m_pIO_opaque;
        +
        +  mz_zip_internal_state *m_pState;
        +
        +} mz_zip_archive;
        +
        +typedef enum
        +{
        +  MZ_ZIP_FLAG_CASE_SENSITIVE                = 0x0100,
        +  MZ_ZIP_FLAG_IGNORE_PATH                   = 0x0200,
        +  MZ_ZIP_FLAG_COMPRESSED_DATA               = 0x0400,
        +  MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY = 0x0800
        +} mz_zip_flags;
        +
        +// ZIP archive reading
        +
        +// Inits a ZIP archive reader.
        +// These functions read and validate the archive's central directory.
        +mz_bool mz_zip_reader_init(mz_zip_archive *pZip, mz_uint64 size, mz_uint32 flags);
        +mz_bool mz_zip_reader_init_mem(mz_zip_archive *pZip, const void *pMem, size_t size, mz_uint32 flags);
        +
        +#ifndef MINIZ_NO_STDIO
        +mz_bool mz_zip_reader_init_file(mz_zip_archive *pZip, const char *pFilename, mz_uint32 flags);
        +#endif
        +
        +// Returns the total number of files in the archive.
        +mz_uint mz_zip_reader_get_num_files(mz_zip_archive *pZip);
        +
        +// Returns detailed information about an archive file entry.
        +mz_bool mz_zip_reader_file_stat(mz_zip_archive *pZip, mz_uint file_index, mz_zip_archive_file_stat *pStat);
        +
        +// Determines if an archive file entry is a directory entry.
        +mz_bool mz_zip_reader_is_file_a_directory(mz_zip_archive *pZip, mz_uint file_index);
        +mz_bool mz_zip_reader_is_file_encrypted(mz_zip_archive *pZip, mz_uint file_index);
        +
        +// Retrieves the filename of an archive file entry.
        +// Returns the number of bytes written to pFilename, or if filename_buf_size is 0 this function returns the number of bytes needed to fully store the filename.
        +mz_uint mz_zip_reader_get_filename(mz_zip_archive *pZip, mz_uint file_index, char *pFilename, mz_uint filename_buf_size);
        +
        +// Attempts to locates a file in the archive's central directory.
        +// Valid flags: MZ_ZIP_FLAG_CASE_SENSITIVE, MZ_ZIP_FLAG_IGNORE_PATH
        +// Returns -1 if the file cannot be found.
        +int mz_zip_reader_locate_file(mz_zip_archive *pZip, const char *pName, const char *pComment, mz_uint flags);
        +
        +// Extracts a archive file to a memory buffer using no memory allocation.
        +mz_bool mz_zip_reader_extract_to_mem_no_alloc(mz_zip_archive *pZip, mz_uint file_index, void *pBuf, size_t buf_size, mz_uint flags, void *pUser_read_buf, size_t user_read_buf_size);
        +mz_bool mz_zip_reader_extract_file_to_mem_no_alloc(mz_zip_archive *pZip, const char *pFilename, void *pBuf, size_t buf_size, mz_uint flags, void *pUser_read_buf, size_t user_read_buf_size);
        +
        +// Extracts a archive file to a memory buffer.
        +mz_bool mz_zip_reader_extract_to_mem(mz_zip_archive *pZip, mz_uint file_index, void *pBuf, size_t buf_size, mz_uint flags);
        +mz_bool mz_zip_reader_extract_file_to_mem(mz_zip_archive *pZip, const char *pFilename, void *pBuf, size_t buf_size, mz_uint flags);
        +
        +// Extracts a archive file to a dynamically allocated heap buffer.
        +void *mz_zip_reader_extract_to_heap(mz_zip_archive *pZip, mz_uint file_index, size_t *pSize, mz_uint flags);
        +void *mz_zip_reader_extract_file_to_heap(mz_zip_archive *pZip, const char *pFilename, size_t *pSize, mz_uint flags);
        +
        +// Extracts a archive file using a callback function to output the file's data.
        +mz_bool mz_zip_reader_extract_to_callback(mz_zip_archive *pZip, mz_uint file_index, mz_file_write_func pCallback, void *pOpaque, mz_uint flags);
        +mz_bool mz_zip_reader_extract_file_to_callback(mz_zip_archive *pZip, const char *pFilename, mz_file_write_func pCallback, void *pOpaque, mz_uint flags);
        +
        +#ifndef MINIZ_NO_STDIO
        +// Extracts a archive file to a disk file and sets its last accessed and modified times.
        +// This function only extracts files, not archive directory records.
        +mz_bool mz_zip_reader_extract_to_file(mz_zip_archive *pZip, mz_uint file_index, const char *pDst_filename, mz_uint flags);
        +mz_bool mz_zip_reader_extract_file_to_file(mz_zip_archive *pZip, const char *pArchive_filename, const char *pDst_filename, mz_uint flags);
        +#endif
        +
        +// Ends archive reading, freeing all allocations, and closing the input archive file if mz_zip_reader_init_file() was used.
        +mz_bool mz_zip_reader_end(mz_zip_archive *pZip);
        +
        +// ZIP archive writing
        +
        +#ifndef MINIZ_NO_ARCHIVE_WRITING_APIS
        +
        +// Inits a ZIP archive writer.
        +mz_bool mz_zip_writer_init(mz_zip_archive *pZip, mz_uint64 existing_size);
        +mz_bool mz_zip_writer_init_heap(mz_zip_archive *pZip, size_t size_to_reserve_at_beginning, size_t initial_allocation_size);
        +
        +#ifndef MINIZ_NO_STDIO
        +mz_bool mz_zip_writer_init_file(mz_zip_archive *pZip, const char *pFilename, mz_uint64 size_to_reserve_at_beginning);
        +#endif
        +
        +// Converts a ZIP archive reader object into a writer object, to allow efficient in-place file appends to occur on an existing archive.
        +// For archives opened using mz_zip_reader_init_file, pFilename must be the archive's filename so it can be reopened for writing. If the file can't be reopened, mz_zip_reader_end() will be called.
        +// For archives opened using mz_zip_reader_init_mem, the memory block must be growable using the realloc callback (which defaults to realloc unless you've overridden it).
        +// Finally, for archives opened using mz_zip_reader_init, the mz_zip_archive's user provided m_pWrite function cannot be NULL.
        +// Note: In-place archive modification is not recommended unless you know what you're doing, because if execution stops or something goes wrong before
        +// the archive is finalized the file's central directory will be hosed.
        +mz_bool mz_zip_writer_init_from_reader(mz_zip_archive *pZip, const char *pFilename);
        +
        +// Adds the contents of a memory buffer to an archive. These functions record the current local time into the archive.
        +// To add a directory entry, call this method with an archive name ending in a forwardslash with empty buffer.
        +// level_and_flags - compression level (0-10, see MZ_BEST_SPEED, MZ_BEST_COMPRESSION, etc.) logically OR'd with zero or more mz_zip_flags, or just set to MZ_DEFAULT_COMPRESSION.
        +mz_bool mz_zip_writer_add_mem(mz_zip_archive *pZip, const char *pArchive_name, const void *pBuf, size_t buf_size, mz_uint level_and_flags);
        +mz_bool mz_zip_writer_add_mem_ex(mz_zip_archive *pZip, const char *pArchive_name, const void *pBuf, size_t buf_size, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags, mz_uint64 uncomp_size, mz_uint32 uncomp_crc32);
        +
        +#ifndef MINIZ_NO_STDIO
        +// Adds the contents of a disk file to an archive. This function also records the disk file's modified time into the archive.
        +// level_and_flags - compression level (0-10, see MZ_BEST_SPEED, MZ_BEST_COMPRESSION, etc.) logically OR'd with zero or more mz_zip_flags, or just set to MZ_DEFAULT_COMPRESSION.
        +mz_bool mz_zip_writer_add_file(mz_zip_archive *pZip, const char *pArchive_name, const char *pSrc_filename, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags);
        +#endif
        +
        +// Adds a file to an archive by fully cloning the data from another archive.
        +// This function fully clones the source file's compressed data (no recompression), along with its full filename, extra data, and comment fields.
        +mz_bool mz_zip_writer_add_from_zip_reader(mz_zip_archive *pZip, mz_zip_archive *pSource_zip, mz_uint file_index);
        +
        +// Finalizes the archive by writing the central directory records followed by the end of central directory record.
        +// After an archive is finalized, the only valid call on the mz_zip_archive struct is mz_zip_writer_end().
        +// An archive must be manually finalized by calling this function for it to be valid.
        +mz_bool mz_zip_writer_finalize_archive(mz_zip_archive *pZip);
        +mz_bool mz_zip_writer_finalize_heap_archive(mz_zip_archive *pZip, void **pBuf, size_t *pSize);
        +
        +// Ends archive writing, freeing all allocations, and closing the output file if mz_zip_writer_init_file() was used.
        +// Note for the archive to be valid, it must have been finalized before ending.
        +mz_bool mz_zip_writer_end(mz_zip_archive *pZip);
        +
        +// Misc. high-level helper functions:
        +
        +// mz_zip_add_mem_to_archive_file_in_place() efficiently (but not atomically) appends a memory blob to a ZIP archive.
        +// level_and_flags - compression level (0-10, see MZ_BEST_SPEED, MZ_BEST_COMPRESSION, etc.) logically OR'd with zero or more mz_zip_flags, or just set to MZ_DEFAULT_COMPRESSION.
        +mz_bool mz_zip_add_mem_to_archive_file_in_place(const char *pZip_filename, const char *pArchive_name, const void *pBuf, size_t buf_size, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags);
        +
        +// Reads a single file from an archive into a heap block.
        +// Returns NULL on failure.
        +void *mz_zip_extract_archive_file_to_heap(const char *pZip_filename, const char *pArchive_name, size_t *pSize, mz_uint zip_flags);
        +
        +#endif // #ifndef MINIZ_NO_ARCHIVE_WRITING_APIS
        +
        +#endif // #ifndef MINIZ_NO_ARCHIVE_APIS
        +
        +// ------------------- Low-level Decompression API Definitions
        +
        +// Decompression flags used by tinfl_decompress().
        +// TINFL_FLAG_PARSE_ZLIB_HEADER: If set, the input has a valid zlib header and ends with an adler32 checksum (it's a valid zlib stream). Otherwise, the input is a raw deflate stream.
        +// TINFL_FLAG_HAS_MORE_INPUT: If set, there are more input bytes available beyond the end of the supplied input buffer. If clear, the input buffer contains all remaining input.
        +// TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF: If set, the output buffer is large enough to hold the entire decompressed stream. If clear, the output buffer is at least the size of the dictionary (typically 32KB).
        +// TINFL_FLAG_COMPUTE_ADLER32: Force adler-32 checksum computation of the decompressed bytes.
        +enum
        +{
        +  TINFL_FLAG_PARSE_ZLIB_HEADER = 1,
        +  TINFL_FLAG_HAS_MORE_INPUT = 2,
        +  TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF = 4,
        +  TINFL_FLAG_COMPUTE_ADLER32 = 8
        +};
        +
        +// High level decompression functions:
        +// tinfl_decompress_mem_to_heap() decompresses a block in memory to a heap block allocated via malloc().
        +// On entry:
        +//  pSrc_buf, src_buf_len: Pointer and size of the Deflate or zlib source data to decompress.
        +// On return:
        +//  Function returns a pointer to the decompressed data, or NULL on failure.
        +//  *pOut_len will be set to the decompressed data's size, which could be larger than src_buf_len on uncompressible data.
        +//  The caller must call mz_free() on the returned block when it's no longer needed.
        +void *tinfl_decompress_mem_to_heap(const void *pSrc_buf, size_t src_buf_len, size_t *pOut_len, int flags);
        +
        +// tinfl_decompress_mem_to_mem() decompresses a block in memory to another block in memory.
        +// Returns TINFL_DECOMPRESS_MEM_TO_MEM_FAILED on failure, or the number of bytes written on success.
        +#define TINFL_DECOMPRESS_MEM_TO_MEM_FAILED ((size_t)(-1))
        +size_t tinfl_decompress_mem_to_mem(void *pOut_buf, size_t out_buf_len, const void *pSrc_buf, size_t src_buf_len, int flags);
        +
        +// tinfl_decompress_mem_to_callback() decompresses a block in memory to an internal 32KB buffer, and a user provided callback function will be called to flush the buffer.
        +// Returns 1 on success or 0 on failure.
        +typedef int (*tinfl_put_buf_func_ptr)(const void* pBuf, int len, void *pUser);
        +int tinfl_decompress_mem_to_callback(const void *pIn_buf, size_t *pIn_buf_size, tinfl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags);
        +
        +struct tinfl_decompressor_tag; typedef struct tinfl_decompressor_tag tinfl_decompressor;
        +
        +// Max size of LZ dictionary.
        +#define TINFL_LZ_DICT_SIZE 32768
        +
        +// Return status.
        +typedef enum
        +{
        +  TINFL_STATUS_BAD_PARAM = -3,
        +  TINFL_STATUS_ADLER32_MISMATCH = -2,
        +  TINFL_STATUS_FAILED = -1,
        +  TINFL_STATUS_DONE = 0,
        +  TINFL_STATUS_NEEDS_MORE_INPUT = 1,
        +  TINFL_STATUS_HAS_MORE_OUTPUT = 2
        +} tinfl_status;
        +
        +// Initializes the decompressor to its initial state.
        +#define tinfl_init(r) do { (r)->m_state = 0; } MZ_MACRO_END
        +#define tinfl_get_adler32(r) (r)->m_check_adler32
        +
        +// Main low-level decompressor coroutine function. This is the only function actually needed for decompression. All the other functions are just high-level helpers for improved usability.
        +// This is a universal API, i.e. it can be used as a building block to build any desired higher level decompression API. In the limit case, it can be called once per every byte input or output.
        +tinfl_status tinfl_decompress(tinfl_decompressor *r, const mz_uint8 *pIn_buf_next, size_t *pIn_buf_size, mz_uint8 *pOut_buf_start, mz_uint8 *pOut_buf_next, size_t *pOut_buf_size, const mz_uint32 decomp_flags);
        +
        +// Internal/private bits follow.
        +enum
        +{
        +  TINFL_MAX_HUFF_TABLES = 3, TINFL_MAX_HUFF_SYMBOLS_0 = 288, TINFL_MAX_HUFF_SYMBOLS_1 = 32, TINFL_MAX_HUFF_SYMBOLS_2 = 19,
        +  TINFL_FAST_LOOKUP_BITS = 10, TINFL_FAST_LOOKUP_SIZE = 1 << TINFL_FAST_LOOKUP_BITS
        +};
        +
        +typedef struct
        +{
        +  mz_uint8 m_code_size[TINFL_MAX_HUFF_SYMBOLS_0];
        +  mz_int16 m_look_up[TINFL_FAST_LOOKUP_SIZE], m_tree[TINFL_MAX_HUFF_SYMBOLS_0 * 2];
        +} tinfl_huff_table;
        +
        +#if MINIZ_HAS_64BIT_REGISTERS
        +  #define TINFL_USE_64BIT_BITBUF 1
        +#endif
        +
        +#if TINFL_USE_64BIT_BITBUF
        +  typedef mz_uint64 tinfl_bit_buf_t;
        +  #define TINFL_BITBUF_SIZE (64)
        +#else
        +  typedef mz_uint32 tinfl_bit_buf_t;
        +  #define TINFL_BITBUF_SIZE (32)
        +#endif
        +
        +struct tinfl_decompressor_tag
        +{
        +  mz_uint32 m_state, m_num_bits, m_zhdr0, m_zhdr1, m_z_adler32, m_final, m_type, m_check_adler32, m_dist, m_counter, m_num_extra, m_table_sizes[TINFL_MAX_HUFF_TABLES];
        +  tinfl_bit_buf_t m_bit_buf;
        +  size_t m_dist_from_out_buf_start;
        +  tinfl_huff_table m_tables[TINFL_MAX_HUFF_TABLES];
        +  mz_uint8 m_raw_header[4], m_len_codes[TINFL_MAX_HUFF_SYMBOLS_0 + TINFL_MAX_HUFF_SYMBOLS_1 + 137];
        +};
        +
        +// ------------------- Low-level Compression API Definitions
        +
        +// Set TDEFL_LESS_MEMORY to 1 to use less memory (compression will be slightly slower, and raw/dynamic blocks will be output more frequently).
        +#define TDEFL_LESS_MEMORY 0
        +
        +// tdefl_init() compression flags logically OR'd together (low 12 bits contain the max. number of probes per dictionary search):
        +// TDEFL_DEFAULT_MAX_PROBES: The compressor defaults to 128 dictionary probes per dictionary search. 0=Huffman only, 1=Huffman+LZ (fastest/crap compression), 4095=Huffman+LZ (slowest/best compression).
        +enum
        +{
        +  TDEFL_HUFFMAN_ONLY = 0, TDEFL_DEFAULT_MAX_PROBES = 128, TDEFL_MAX_PROBES_MASK = 0xFFF
        +};
        +
        +// TDEFL_WRITE_ZLIB_HEADER: If set, the compressor outputs a zlib header before the deflate data, and the Adler-32 of the source data at the end. Otherwise, you'll get raw deflate data.
        +// TDEFL_COMPUTE_ADLER32: Always compute the adler-32 of the input data (even when not writing zlib headers).
        +// TDEFL_GREEDY_PARSING_FLAG: Set to use faster greedy parsing, instead of more efficient lazy parsing.
        +// TDEFL_NONDETERMINISTIC_PARSING_FLAG: Enable to decrease the compressor's initialization time to the minimum, but the output may vary from run to run given the same input (depending on the contents of memory).
        +// TDEFL_RLE_MATCHES: Only look for RLE matches (matches with a distance of 1)
        +// TDEFL_FILTER_MATCHES: Discards matches <= 5 chars if enabled.
        +// TDEFL_FORCE_ALL_STATIC_BLOCKS: Disable usage of optimized Huffman tables.
        +// TDEFL_FORCE_ALL_RAW_BLOCKS: Only use raw (uncompressed) deflate blocks.
        +// The low 12 bits are reserved to control the max # of hash probes per dictionary lookup (see TDEFL_MAX_PROBES_MASK).
        +enum
        +{
        +  TDEFL_WRITE_ZLIB_HEADER             = 0x01000,
        +  TDEFL_COMPUTE_ADLER32               = 0x02000,
        +  TDEFL_GREEDY_PARSING_FLAG           = 0x04000,
        +  TDEFL_NONDETERMINISTIC_PARSING_FLAG = 0x08000,
        +  TDEFL_RLE_MATCHES                   = 0x10000,
        +  TDEFL_FILTER_MATCHES                = 0x20000,
        +  TDEFL_FORCE_ALL_STATIC_BLOCKS       = 0x40000,
        +  TDEFL_FORCE_ALL_RAW_BLOCKS          = 0x80000
        +};
        +
        +// High level compression functions:
        +// tdefl_compress_mem_to_heap() compresses a block in memory to a heap block allocated via malloc().
        +// On entry:
        +//  pSrc_buf, src_buf_len: Pointer and size of source block to compress.
        +//  flags: The max match finder probes (default is 128) logically OR'd against the above flags. Higher probes are slower but improve compression.
        +// On return:
        +//  Function returns a pointer to the compressed data, or NULL on failure.
        +//  *pOut_len will be set to the compressed data's size, which could be larger than src_buf_len on uncompressible data.
        +//  The caller must free() the returned block when it's no longer needed.
        +void *tdefl_compress_mem_to_heap(const void *pSrc_buf, size_t src_buf_len, size_t *pOut_len, int flags);
        +
        +// tdefl_compress_mem_to_mem() compresses a block in memory to another block in memory.
        +// Returns 0 on failure.
        +size_t tdefl_compress_mem_to_mem(void *pOut_buf, size_t out_buf_len, const void *pSrc_buf, size_t src_buf_len, int flags);
        +
        +// Compresses an image to a compressed PNG file in memory.
        +// On entry:
        +//  pImage, w, h, and num_chans describe the image to compress. num_chans may be 1, 2, 3, or 4. 
        +//  The image pitch in bytes per scanline will be w*num_chans. The leftmost pixel on the top scanline is stored first in memory.
        +//  level may range from [0,10], use MZ_NO_COMPRESSION, MZ_BEST_SPEED, MZ_BEST_COMPRESSION, etc. or a decent default is MZ_DEFAULT_LEVEL
        +//  If flip is true, the image will be flipped on the Y axis (useful for OpenGL apps).
        +// On return:
        +//  Function returns a pointer to the compressed data, or NULL on failure.
        +//  *pLen_out will be set to the size of the PNG image file.
        +//  The caller must mz_free() the returned heap block (which will typically be larger than *pLen_out) when it's no longer needed.
        +void *tdefl_write_image_to_png_file_in_memory_ex(const void *pImage, int w, int h, int num_chans, size_t *pLen_out, mz_uint level, mz_bool flip);
        +void *tdefl_write_image_to_png_file_in_memory(const void *pImage, int w, int h, int num_chans, size_t *pLen_out);
        +
        +// Output stream interface. The compressor uses this interface to write compressed data. It'll typically be called TDEFL_OUT_BUF_SIZE at a time.
        +typedef mz_bool (*tdefl_put_buf_func_ptr)(const void* pBuf, int len, void *pUser);
        +
        +// tdefl_compress_mem_to_output() compresses a block to an output stream. The above helpers use this function internally.
        +mz_bool tdefl_compress_mem_to_output(const void *pBuf, size_t buf_len, tdefl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags);
        +
        +enum { TDEFL_MAX_HUFF_TABLES = 3, TDEFL_MAX_HUFF_SYMBOLS_0 = 288, TDEFL_MAX_HUFF_SYMBOLS_1 = 32, TDEFL_MAX_HUFF_SYMBOLS_2 = 19, TDEFL_LZ_DICT_SIZE = 32768, TDEFL_LZ_DICT_SIZE_MASK = TDEFL_LZ_DICT_SIZE - 1, TDEFL_MIN_MATCH_LEN = 3, TDEFL_MAX_MATCH_LEN = 258 };
        +
        +// TDEFL_OUT_BUF_SIZE MUST be large enough to hold a single entire compressed output block (using static/fixed Huffman codes).
        +#if TDEFL_LESS_MEMORY
        +enum { TDEFL_LZ_CODE_BUF_SIZE = 24 * 1024, TDEFL_OUT_BUF_SIZE = (TDEFL_LZ_CODE_BUF_SIZE * 13 ) / 10, TDEFL_MAX_HUFF_SYMBOLS = 288, TDEFL_LZ_HASH_BITS = 12, TDEFL_LEVEL1_HASH_SIZE_MASK = 4095, TDEFL_LZ_HASH_SHIFT = (TDEFL_LZ_HASH_BITS + 2) / 3, TDEFL_LZ_HASH_SIZE = 1 << TDEFL_LZ_HASH_BITS };
        +#else
        +enum { TDEFL_LZ_CODE_BUF_SIZE = 64 * 1024, TDEFL_OUT_BUF_SIZE = (TDEFL_LZ_CODE_BUF_SIZE * 13 ) / 10, TDEFL_MAX_HUFF_SYMBOLS = 288, TDEFL_LZ_HASH_BITS = 15, TDEFL_LEVEL1_HASH_SIZE_MASK = 4095, TDEFL_LZ_HASH_SHIFT = (TDEFL_LZ_HASH_BITS + 2) / 3, TDEFL_LZ_HASH_SIZE = 1 << TDEFL_LZ_HASH_BITS };
        +#endif
        +
        +// The low-level tdefl functions below may be used directly if the above helper functions aren't flexible enough. The low-level functions don't make any heap allocations, unlike the above helper functions.
        +typedef enum
        +{
        +  TDEFL_STATUS_BAD_PARAM = -2,
        +  TDEFL_STATUS_PUT_BUF_FAILED = -1,
        +  TDEFL_STATUS_OKAY = 0,
        +  TDEFL_STATUS_DONE = 1,
        +} tdefl_status;
        +
        +// Must map to MZ_NO_FLUSH, MZ_SYNC_FLUSH, etc. enums
        +typedef enum
        +{
        +  TDEFL_NO_FLUSH = 0,
        +  TDEFL_SYNC_FLUSH = 2,
        +  TDEFL_FULL_FLUSH = 3,
        +  TDEFL_FINISH = 4
        +} tdefl_flush;
        +
        +// tdefl's compression state structure.
        +typedef struct
        +{
        +  tdefl_put_buf_func_ptr m_pPut_buf_func;
        +  void *m_pPut_buf_user;
        +  mz_uint m_flags, m_max_probes[2];
        +  int m_greedy_parsing;
        +  mz_uint m_adler32, m_lookahead_pos, m_lookahead_size, m_dict_size;
        +  mz_uint8 *m_pLZ_code_buf, *m_pLZ_flags, *m_pOutput_buf, *m_pOutput_buf_end;
        +  mz_uint m_num_flags_left, m_total_lz_bytes, m_lz_code_buf_dict_pos, m_bits_in, m_bit_buffer;
        +  mz_uint m_saved_match_dist, m_saved_match_len, m_saved_lit, m_output_flush_ofs, m_output_flush_remaining, m_finished, m_block_index, m_wants_to_finish;
        +  tdefl_status m_prev_return_status;
        +  const void *m_pIn_buf;
        +  void *m_pOut_buf;
        +  size_t *m_pIn_buf_size, *m_pOut_buf_size;
        +  tdefl_flush m_flush;
        +  const mz_uint8 *m_pSrc;
        +  size_t m_src_buf_left, m_out_buf_ofs;
        +  mz_uint8 m_dict[TDEFL_LZ_DICT_SIZE + TDEFL_MAX_MATCH_LEN - 1];
        +  mz_uint16 m_huff_count[TDEFL_MAX_HUFF_TABLES][TDEFL_MAX_HUFF_SYMBOLS];
        +  mz_uint16 m_huff_codes[TDEFL_MAX_HUFF_TABLES][TDEFL_MAX_HUFF_SYMBOLS];
        +  mz_uint8 m_huff_code_sizes[TDEFL_MAX_HUFF_TABLES][TDEFL_MAX_HUFF_SYMBOLS];
        +  mz_uint8 m_lz_code_buf[TDEFL_LZ_CODE_BUF_SIZE];
        +  mz_uint16 m_next[TDEFL_LZ_DICT_SIZE];
        +  mz_uint16 m_hash[TDEFL_LZ_HASH_SIZE];
        +  mz_uint8 m_output_buf[TDEFL_OUT_BUF_SIZE];
        +} tdefl_compressor;
        +
        +// Initializes the compressor.
        +// There is no corresponding deinit() function because the tdefl API's do not dynamically allocate memory.
        +// pBut_buf_func: If NULL, output data will be supplied to the specified callback. In this case, the user should call the tdefl_compress_buffer() API for compression.
        +// If pBut_buf_func is NULL the user should always call the tdefl_compress() API.
        +// flags: See the above enums (TDEFL_HUFFMAN_ONLY, TDEFL_WRITE_ZLIB_HEADER, etc.)
        +tdefl_status tdefl_init(tdefl_compressor *d, tdefl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags);
        +
        +// Compresses a block of data, consuming as much of the specified input buffer as possible, and writing as much compressed data to the specified output buffer as possible.
        +tdefl_status tdefl_compress(tdefl_compressor *d, const void *pIn_buf, size_t *pIn_buf_size, void *pOut_buf, size_t *pOut_buf_size, tdefl_flush flush);
        +
        +// tdefl_compress_buffer() is only usable when the tdefl_init() is called with a non-NULL tdefl_put_buf_func_ptr.
        +// tdefl_compress_buffer() always consumes the entire input buffer.
        +tdefl_status tdefl_compress_buffer(tdefl_compressor *d, const void *pIn_buf, size_t in_buf_size, tdefl_flush flush);
        +
        +tdefl_status tdefl_get_prev_return_status(tdefl_compressor *d);
        +mz_uint32 tdefl_get_adler32(tdefl_compressor *d);
        +
        +// Can't use tdefl_create_comp_flags_from_zip_params if MINIZ_NO_ZLIB_APIS isn't defined, because it uses some of its macros.
        +#ifndef MINIZ_NO_ZLIB_APIS
        +// Create tdefl_compress() flags given zlib-style compression parameters.
        +// level may range from [0,10] (where 10 is absolute max compression, but may be much slower on some files)
        +// window_bits may be -15 (raw deflate) or 15 (zlib)
        +// strategy may be either MZ_DEFAULT_STRATEGY, MZ_FILTERED, MZ_HUFFMAN_ONLY, MZ_RLE, or MZ_FIXED
        +mz_uint tdefl_create_comp_flags_from_zip_params(int level, int window_bits, int strategy);
        +#endif // #ifndef MINIZ_NO_ZLIB_APIS
        +
        +#ifdef __cplusplus
        +}
        +#endif
        +
        +#endif // MINIZ_HEADER_INCLUDED
        +
        +// ------------------- End of Header: Implementation follows. (If you only want the header, define MINIZ_HEADER_FILE_ONLY.)
        +
        +#ifndef MINIZ_HEADER_FILE_ONLY
        +
        +typedef unsigned char mz_validate_uint16[sizeof(mz_uint16)==2 ? 1 : -1];
        +typedef unsigned char mz_validate_uint32[sizeof(mz_uint32)==4 ? 1 : -1];
        +typedef unsigned char mz_validate_uint64[sizeof(mz_uint64)==8 ? 1 : -1];
        +
        +#include <string.h>
        +#include <assert.h>
        +
        +#define MZ_ASSERT(x) assert(x)
        +
        +#ifdef MINIZ_NO_MALLOC
        +  #define MZ_MALLOC(x) NULL
        +  #define MZ_FREE(x) (void)x, ((void)0)
        +  #define MZ_REALLOC(p, x) NULL
        +#else
        +  #define MZ_MALLOC(x) malloc(x)
        +  #define MZ_FREE(x) free(x)
        +  #define MZ_REALLOC(p, x) realloc(p, x)
        +#endif
        +
        +#define MZ_MAX(a,b) (((a)>(b))?(a):(b))
        +#define MZ_MIN(a,b) (((a)<(b))?(a):(b))
        +#define MZ_CLEAR_OBJ(obj) memset(&(obj), 0, sizeof(obj))
        +
        +#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN
        +  #define MZ_READ_LE16(p) *((const mz_uint16 *)(p))
        +  #define MZ_READ_LE32(p) *((const mz_uint32 *)(p))
        +#else
        +  #define MZ_READ_LE16(p) ((mz_uint32)(((const mz_uint8 *)(p))[0]) | ((mz_uint32)(((const mz_uint8 *)(p))[1]) << 8U))
        +  #define MZ_READ_LE32(p) ((mz_uint32)(((const mz_uint8 *)(p))[0]) | ((mz_uint32)(((const mz_uint8 *)(p))[1]) << 8U) | ((mz_uint32)(((const mz_uint8 *)(p))[2]) << 16U) | ((mz_uint32)(((const mz_uint8 *)(p))[3]) << 24U))
        +#endif
        +
        +#ifdef _MSC_VER
        +  #define MZ_FORCEINLINE __forceinline
        +#elif defined(__GNUC__)
        +  #define MZ_FORCEINLINE inline __attribute__((__always_inline__))
        +#else
        +  #define MZ_FORCEINLINE inline
        +#endif
        +
        +#ifdef __cplusplus
        +  extern "C" {
        +#endif
        +
        +// ------------------- zlib-style API's
        +
        +mz_ulong mz_adler32(mz_ulong adler, const unsigned char *ptr, size_t buf_len)
        +{
        +  mz_uint32 i, s1 = (mz_uint32)(adler & 0xffff), s2 = (mz_uint32)(adler >> 16); size_t block_len = buf_len % 5552;
        +  if (!ptr) return MZ_ADLER32_INIT;
        +  while (buf_len) {
        +    for (i = 0; i + 7 < block_len; i += 8, ptr += 8) {
        +      s1 += ptr[0], s2 += s1; s1 += ptr[1], s2 += s1; s1 += ptr[2], s2 += s1; s1 += ptr[3], s2 += s1;
        +      s1 += ptr[4], s2 += s1; s1 += ptr[5], s2 += s1; s1 += ptr[6], s2 += s1; s1 += ptr[7], s2 += s1;
        +    }
        +    for ( ; i < block_len; ++i) s1 += *ptr++, s2 += s1;
        +    s1 %= 65521U, s2 %= 65521U; buf_len -= block_len; block_len = 5552;
        +  }
        +  return (s2 << 16) + s1;
        +}
        +
        +// Karl Malbrain's compact CRC-32. See "A compact CCITT crc16 and crc32 C implementation that balances processor cache usage against speed": http://www.geocities.com/malbrain/
        +mz_ulong mz_crc32(mz_ulong crc, const mz_uint8 *ptr, size_t buf_len)
        +{
        +  static const mz_uint32 s_crc32[16] = { 0, 0x1db71064, 0x3b6e20c8, 0x26d930ac, 0x76dc4190, 0x6b6b51f4, 0x4db26158, 0x5005713c,
        +    0xedb88320, 0xf00f9344, 0xd6d6a3e8, 0xcb61b38c, 0x9b64c2b0, 0x86d3d2d4, 0xa00ae278, 0xbdbdf21c };
        +  mz_uint32 crcu32 = (mz_uint32)crc;
        +  if (!ptr) return MZ_CRC32_INIT;
        +  crcu32 = ~crcu32; while (buf_len--) { mz_uint8 b = *ptr++; crcu32 = (crcu32 >> 4) ^ s_crc32[(crcu32 & 0xF) ^ (b & 0xF)]; crcu32 = (crcu32 >> 4) ^ s_crc32[(crcu32 & 0xF) ^ (b >> 4)]; }
        +  return ~crcu32;
        +}
        +
        +void mz_free(void *p)
        +{
        +  MZ_FREE(p);
        +}
        +
        +#ifndef MINIZ_NO_ZLIB_APIS
        +
        +static void *def_alloc_func(void *opaque, size_t items, size_t size) { (void)opaque, (void)items, (void)size; return MZ_MALLOC(items * size); }
        +static void def_free_func(void *opaque, void *address) { (void)opaque, (void)address; MZ_FREE(address); }
        +static void *def_realloc_func(void *opaque, void *address, size_t items, size_t size) { (void)opaque, (void)address, (void)items, (void)size; return MZ_REALLOC(address, items * size); }
        +
        +const char *mz_version(void)
        +{
        +  return MZ_VERSION;
        +}
        +
        +int mz_deflateInit(mz_streamp pStream, int level)
        +{
        +  return mz_deflateInit2(pStream, level, MZ_DEFLATED, MZ_DEFAULT_WINDOW_BITS, 9, MZ_DEFAULT_STRATEGY);
        +}
        +
        +int mz_deflateInit2(mz_streamp pStream, int level, int method, int window_bits, int mem_level, int strategy)
        +{
        +  tdefl_compressor *pComp;
        +  mz_uint comp_flags = TDEFL_COMPUTE_ADLER32 | tdefl_create_comp_flags_from_zip_params(level, window_bits, strategy);
        +
        +  if (!pStream) return MZ_STREAM_ERROR;
        +  if ((method != MZ_DEFLATED) || ((mem_level < 1) || (mem_level > 9)) || ((window_bits != MZ_DEFAULT_WINDOW_BITS) && (-window_bits != MZ_DEFAULT_WINDOW_BITS))) return MZ_PARAM_ERROR;
        +
        +  pStream->data_type = 0;
        +  pStream->adler = MZ_ADLER32_INIT;
        +  pStream->msg = NULL;
        +  pStream->reserved = 0;
        +  pStream->total_in = 0;
        +  pStream->total_out = 0;
        +  if (!pStream->zalloc) pStream->zalloc = def_alloc_func;
        +  if (!pStream->zfree) pStream->zfree = def_free_func;
        +
        +  pComp = (tdefl_compressor *)pStream->zalloc(pStream->opaque, 1, sizeof(tdefl_compressor));
        +  if (!pComp)
        +    return MZ_MEM_ERROR;
        +
        +  pStream->state = (struct mz_internal_state *)pComp;
        +
        +  if (tdefl_init(pComp, NULL, NULL, comp_flags) != TDEFL_STATUS_OKAY)
        +  {
        +    mz_deflateEnd(pStream);
        +    return MZ_PARAM_ERROR;
        +  }
        +
        +  return MZ_OK;
        +}
        +
        +int mz_deflateReset(mz_streamp pStream)
        +{
        +  if ((!pStream) || (!pStream->state) || (!pStream->zalloc) || (!pStream->zfree)) return MZ_STREAM_ERROR;
        +  pStream->total_in = pStream->total_out = 0;
        +  tdefl_init((tdefl_compressor*)pStream->state, NULL, NULL, ((tdefl_compressor*)pStream->state)->m_flags);
        +  return MZ_OK;
        +}
        +
        +int mz_deflate(mz_streamp pStream, int flush)
        +{
        +  size_t in_bytes, out_bytes;
        +  mz_ulong orig_total_in, orig_total_out;
        +  int mz_status = MZ_OK;
        +
        +  if ((!pStream) || (!pStream->state) || (flush < 0) || (flush > MZ_FINISH) || (!pStream->next_out)) return MZ_STREAM_ERROR;
        +  if (!pStream->avail_out) return MZ_BUF_ERROR;
        +
        +  if (flush == MZ_PARTIAL_FLUSH) flush = MZ_SYNC_FLUSH;
        +
        +  if (((tdefl_compressor*)pStream->state)->m_prev_return_status == TDEFL_STATUS_DONE)
        +    return (flush == MZ_FINISH) ? MZ_STREAM_END : MZ_BUF_ERROR;
        +
        +  orig_total_in = pStream->total_in; orig_total_out = pStream->total_out;
        +  for ( ; ; )
        +  {
        +    tdefl_status defl_status;
        +    in_bytes = pStream->avail_in; out_bytes = pStream->avail_out;
        +
        +    defl_status = tdefl_compress((tdefl_compressor*)pStream->state, pStream->next_in, &in_bytes, pStream->next_out, &out_bytes, (tdefl_flush)flush);
        +    pStream->next_in += (mz_uint)in_bytes; pStream->avail_in -= (mz_uint)in_bytes;
        +    pStream->total_in += (mz_uint)in_bytes; pStream->adler = tdefl_get_adler32((tdefl_compressor*)pStream->state);
        +
        +    pStream->next_out += (mz_uint)out_bytes; pStream->avail_out -= (mz_uint)out_bytes;
        +    pStream->total_out += (mz_uint)out_bytes;
        +
        +    if (defl_status < 0)
        +    {
        +      mz_status = MZ_STREAM_ERROR;
        +      break;
        +    }
        +    else if (defl_status == TDEFL_STATUS_DONE)
        +    {
        +      mz_status = MZ_STREAM_END;
        +      break;
        +    }
        +    else if (!pStream->avail_out)
        +      break;
        +    else if ((!pStream->avail_in) && (flush != MZ_FINISH))
        +    {
        +      if ((flush) || (pStream->total_in != orig_total_in) || (pStream->total_out != orig_total_out))
        +        break;
        +      return MZ_BUF_ERROR; // Can't make forward progress without some input.
        +    }
        +  }
        +  return mz_status;
        +}
        +
        +int mz_deflateEnd(mz_streamp pStream)
        +{
        +  if (!pStream) return MZ_STREAM_ERROR;
        +  if (pStream->state)
        +  {
        +    pStream->zfree(pStream->opaque, pStream->state);
        +    pStream->state = NULL;
        +  }
        +  return MZ_OK;
        +}
        +
        +mz_ulong mz_deflateBound(mz_streamp pStream, mz_ulong source_len)
        +{
        +  (void)pStream;
        +  // This is really over conservative. (And lame, but it's actually pretty tricky to compute a true upper bound given the way tdefl's blocking works.)
        +  return MZ_MAX(128 + (source_len * 110) / 100, 128 + source_len + ((source_len / (31 * 1024)) + 1) * 5);
        +}
        +
        +int mz_compress2(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource, mz_ulong source_len, int level)
        +{
        +  int status;
        +  mz_stream stream;
        +  memset(&stream, 0, sizeof(stream));
        +
        +  // In case mz_ulong is 64-bits (argh I hate longs).
        +  if ((source_len | *pDest_len) > 0xFFFFFFFFU) return MZ_PARAM_ERROR;
        +
        +  stream.next_in = pSource;
        +  stream.avail_in = (mz_uint32)source_len;
        +  stream.next_out = pDest;
        +  stream.avail_out = (mz_uint32)*pDest_len;
        +
        +  status = mz_deflateInit(&stream, level);
        +  if (status != MZ_OK) return status;
        +
        +  status = mz_deflate(&stream, MZ_FINISH);
        +  if (status != MZ_STREAM_END)
        +  {
        +    mz_deflateEnd(&stream);
        +    return (status == MZ_OK) ? MZ_BUF_ERROR : status;
        +  }
        +
        +  *pDest_len = stream.total_out;
        +  return mz_deflateEnd(&stream);
        +}
        +
        +int mz_compress(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource, mz_ulong source_len)
        +{
        +  return mz_compress2(pDest, pDest_len, pSource, source_len, MZ_DEFAULT_COMPRESSION);
        +}
        +
        +mz_ulong mz_compressBound(mz_ulong source_len)
        +{
        +  return mz_deflateBound(NULL, source_len);
        +}
        +
        +typedef struct
        +{
        +  tinfl_decompressor m_decomp;
        +  mz_uint m_dict_ofs, m_dict_avail, m_first_call, m_has_flushed; int m_window_bits;
        +  mz_uint8 m_dict[TINFL_LZ_DICT_SIZE];
        +  tinfl_status m_last_status;
        +} inflate_state;
        +
        +int mz_inflateInit2(mz_streamp pStream, int window_bits)
        +{
        +  inflate_state *pDecomp;
        +  if (!pStream) return MZ_STREAM_ERROR;
        +  if ((window_bits != MZ_DEFAULT_WINDOW_BITS) && (-window_bits != MZ_DEFAULT_WINDOW_BITS)) return MZ_PARAM_ERROR;
        +
        +  pStream->data_type = 0;
        +  pStream->adler = 0;
        +  pStream->msg = NULL;
        +  pStream->total_in = 0;
        +  pStream->total_out = 0;
        +  pStream->reserved = 0;
        +  if (!pStream->zalloc) pStream->zalloc = def_alloc_func;
        +  if (!pStream->zfree) pStream->zfree = def_free_func;
        +
        +  pDecomp = (inflate_state*)pStream->zalloc(pStream->opaque, 1, sizeof(inflate_state));
        +  if (!pDecomp) return MZ_MEM_ERROR;
        +
        +  pStream->state = (struct mz_internal_state *)pDecomp;
        +
        +  tinfl_init(&pDecomp->m_decomp);
        +  pDecomp->m_dict_ofs = 0;
        +  pDecomp->m_dict_avail = 0;
        +  pDecomp->m_last_status = TINFL_STATUS_NEEDS_MORE_INPUT;
        +  pDecomp->m_first_call = 1;
        +  pDecomp->m_has_flushed = 0;
        +  pDecomp->m_window_bits = window_bits;
        +
        +  return MZ_OK;
        +}
        +
        +int mz_inflateInit(mz_streamp pStream)
        +{
        +   return mz_inflateInit2(pStream, MZ_DEFAULT_WINDOW_BITS);
        +}
        +
        +int mz_inflate(mz_streamp pStream, int flush)
        +{
        +  inflate_state* pState;
        +  mz_uint n, first_call, decomp_flags = TINFL_FLAG_COMPUTE_ADLER32;
        +  size_t in_bytes, out_bytes, orig_avail_in;
        +  tinfl_status status;
        +
        +  if ((!pStream) || (!pStream->state)) return MZ_STREAM_ERROR;
        +  if (flush == MZ_PARTIAL_FLUSH) flush = MZ_SYNC_FLUSH;
        +  if ((flush) && (flush != MZ_SYNC_FLUSH) && (flush != MZ_FINISH)) return MZ_STREAM_ERROR;
        +
        +  pState = (inflate_state*)pStream->state;
        +  if (pState->m_window_bits > 0) decomp_flags |= TINFL_FLAG_PARSE_ZLIB_HEADER;
        +  orig_avail_in = pStream->avail_in;
        +
        +  first_call = pState->m_first_call; pState->m_first_call = 0;
        +  if (pState->m_last_status < 0) return MZ_DATA_ERROR;
        +
        +  if (pState->m_has_flushed && (flush != MZ_FINISH)) return MZ_STREAM_ERROR;
        +  pState->m_has_flushed |= (flush == MZ_FINISH);
        +
        +  if ((flush == MZ_FINISH) && (first_call))
        +  {
        +    // MZ_FINISH on the first call implies that the input and output buffers are large enough to hold the entire compressed/decompressed file.
        +    decomp_flags |= TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF;
        +    in_bytes = pStream->avail_in; out_bytes = pStream->avail_out;
        +    status = tinfl_decompress(&pState->m_decomp, pStream->next_in, &in_bytes, pStream->next_out, pStream->next_out, &out_bytes, decomp_flags);
        +    pState->m_last_status = status;
        +    pStream->next_in += (mz_uint)in_bytes; pStream->avail_in -= (mz_uint)in_bytes; pStream->total_in += (mz_uint)in_bytes;
        +    pStream->adler = tinfl_get_adler32(&pState->m_decomp);
        +    pStream->next_out += (mz_uint)out_bytes; pStream->avail_out -= (mz_uint)out_bytes; pStream->total_out += (mz_uint)out_bytes;
        +
        +    if (status < 0)
        +      return MZ_DATA_ERROR;
        +    else if (status != TINFL_STATUS_DONE)
        +    {
        +      pState->m_last_status = TINFL_STATUS_FAILED;
        +      return MZ_BUF_ERROR;
        +    }
        +    return MZ_STREAM_END;
        +  }
        +  // flush != MZ_FINISH then we must assume there's more input.
        +  if (flush != MZ_FINISH) decomp_flags |= TINFL_FLAG_HAS_MORE_INPUT;
        +
        +  if (pState->m_dict_avail)
        +  {
        +    n = MZ_MIN(pState->m_dict_avail, pStream->avail_out);
        +    memcpy(pStream->next_out, pState->m_dict + pState->m_dict_ofs, n);
        +    pStream->next_out += n; pStream->avail_out -= n; pStream->total_out += n;
        +    pState->m_dict_avail -= n; pState->m_dict_ofs = (pState->m_dict_ofs + n) & (TINFL_LZ_DICT_SIZE - 1);
        +    return ((pState->m_last_status == TINFL_STATUS_DONE) && (!pState->m_dict_avail)) ? MZ_STREAM_END : MZ_OK;
        +  }
        +
        +  for ( ; ; )
        +  {
        +    in_bytes = pStream->avail_in;
        +    out_bytes = TINFL_LZ_DICT_SIZE - pState->m_dict_ofs;
        +
        +    status = tinfl_decompress(&pState->m_decomp, pStream->next_in, &in_bytes, pState->m_dict, pState->m_dict + pState->m_dict_ofs, &out_bytes, decomp_flags);
        +    pState->m_last_status = status;
        +
        +    pStream->next_in += (mz_uint)in_bytes; pStream->avail_in -= (mz_uint)in_bytes;
        +    pStream->total_in += (mz_uint)in_bytes; pStream->adler = tinfl_get_adler32(&pState->m_decomp);
        +
        +    pState->m_dict_avail = (mz_uint)out_bytes;
        +
        +    n = MZ_MIN(pState->m_dict_avail, pStream->avail_out);
        +    memcpy(pStream->next_out, pState->m_dict + pState->m_dict_ofs, n);
        +    pStream->next_out += n; pStream->avail_out -= n; pStream->total_out += n;
        +    pState->m_dict_avail -= n; pState->m_dict_ofs = (pState->m_dict_ofs + n) & (TINFL_LZ_DICT_SIZE - 1);
        +
        +    if (status < 0)
        +       return MZ_DATA_ERROR; // Stream is corrupted (there could be some uncompressed data left in the output dictionary - oh well).
        +    else if ((status == TINFL_STATUS_NEEDS_MORE_INPUT) && (!orig_avail_in))
        +      return MZ_BUF_ERROR; // Signal caller that we can't make forward progress without supplying more input or by setting flush to MZ_FINISH.
        +    else if (flush == MZ_FINISH)
        +    {
        +       // The output buffer MUST be large to hold the remaining uncompressed data when flush==MZ_FINISH.
        +       if (status == TINFL_STATUS_DONE)
        +          return pState->m_dict_avail ? MZ_BUF_ERROR : MZ_STREAM_END;
        +       // status here must be TINFL_STATUS_HAS_MORE_OUTPUT, which means there's at least 1 more byte on the way. If there's no more room left in the output buffer then something is wrong.
        +       else if (!pStream->avail_out)
        +          return MZ_BUF_ERROR;
        +    }
        +    else if ((status == TINFL_STATUS_DONE) || (!pStream->avail_in) || (!pStream->avail_out) || (pState->m_dict_avail))
        +      break;
        +  }
        +
        +  return ((status == TINFL_STATUS_DONE) && (!pState->m_dict_avail)) ? MZ_STREAM_END : MZ_OK;
        +}
        +
        +int mz_inflateEnd(mz_streamp pStream)
        +{
        +  if (!pStream)
        +    return MZ_STREAM_ERROR;
        +  if (pStream->state)
        +  {
        +    pStream->zfree(pStream->opaque, pStream->state);
        +    pStream->state = NULL;
        +  }
        +  return MZ_OK;
        +}
        +
        +int mz_uncompress(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource, mz_ulong source_len)
        +{
        +  mz_stream stream;
        +  int status;
        +  memset(&stream, 0, sizeof(stream));
        +
        +  // In case mz_ulong is 64-bits (argh I hate longs).
        +  if ((source_len | *pDest_len) > 0xFFFFFFFFU) return MZ_PARAM_ERROR;
        +
        +  stream.next_in = pSource;
        +  stream.avail_in = (mz_uint32)source_len;
        +  stream.next_out = pDest;
        +  stream.avail_out = (mz_uint32)*pDest_len;
        +
        +  status = mz_inflateInit(&stream);
        +  if (status != MZ_OK)
        +    return status;
        +
        +  status = mz_inflate(&stream, MZ_FINISH);
        +  if (status != MZ_STREAM_END)
        +  {
        +    mz_inflateEnd(&stream);
        +    return ((status == MZ_BUF_ERROR) && (!stream.avail_in)) ? MZ_DATA_ERROR : status;
        +  }
        +  *pDest_len = stream.total_out;
        +
        +  return mz_inflateEnd(&stream);
        +}
        +
        +const char *mz_error(int err)
        +{
        +  static struct { int m_err; const char *m_pDesc; } s_error_descs[] =
        +  {
        +    { MZ_OK, "" }, { MZ_STREAM_END, "stream end" }, { MZ_NEED_DICT, "need dictionary" }, { MZ_ERRNO, "file error" }, { MZ_STREAM_ERROR, "stream error" },
        +    { MZ_DATA_ERROR, "data error" }, { MZ_MEM_ERROR, "out of memory" }, { MZ_BUF_ERROR, "buf error" }, { MZ_VERSION_ERROR, "version error" }, { MZ_PARAM_ERROR, "parameter error" }
        +  };
        +  mz_uint i; for (i = 0; i < sizeof(s_error_descs) / sizeof(s_error_descs[0]); ++i) if (s_error_descs[i].m_err == err) return s_error_descs[i].m_pDesc;
        +  return NULL;
        +}
        +
        +#endif //MINIZ_NO_ZLIB_APIS
        +
        +// ------------------- Low-level Decompression (completely independent from all compression API's)
        +
        +#define TINFL_MEMCPY(d, s, l) memcpy(d, s, l)
        +#define TINFL_MEMSET(p, c, l) memset(p, c, l)
        +
        +#define TINFL_CR_BEGIN switch(r->m_state) { case 0:
        +#define TINFL_CR_RETURN(state_index, result) do { status = result; r->m_state = state_index; goto common_exit; case state_index:; } MZ_MACRO_END
        +#define TINFL_CR_RETURN_FOREVER(state_index, result) do { for ( ; ; ) { TINFL_CR_RETURN(state_index, result); } } MZ_MACRO_END
        +#define TINFL_CR_FINISH }
        +
        +// TODO: If the caller has indicated that there's no more input, and we attempt to read beyond the input buf, then something is wrong with the input because the inflator never
        +// reads ahead more than it needs to. Currently TINFL_GET_BYTE() pads the end of the stream with 0's in this scenario.
        +#define TINFL_GET_BYTE(state_index, c) do { \
        +  if (pIn_buf_cur >= pIn_buf_end) { \
        +    for ( ; ; ) { \
        +      if (decomp_flags & TINFL_FLAG_HAS_MORE_INPUT) { \
        +        TINFL_CR_RETURN(state_index, TINFL_STATUS_NEEDS_MORE_INPUT); \
        +        if (pIn_buf_cur < pIn_buf_end) { \
        +          c = *pIn_buf_cur++; \
        +          break; \
        +        } \
        +      } else { \
        +        c = 0; \
        +        break; \
        +      } \
        +    } \
        +  } else c = *pIn_buf_cur++; } MZ_MACRO_END
        +
        +#define TINFL_NEED_BITS(state_index, n) do { mz_uint c; TINFL_GET_BYTE(state_index, c); bit_buf |= (((tinfl_bit_buf_t)c) << num_bits); num_bits += 8; } while (num_bits < (mz_uint)(n))
        +#define TINFL_SKIP_BITS(state_index, n) do { if (num_bits < (mz_uint)(n)) { TINFL_NEED_BITS(state_index, n); } bit_buf >>= (n); num_bits -= (n); } MZ_MACRO_END
        +#define TINFL_GET_BITS(state_index, b, n) do { if (num_bits < (mz_uint)(n)) { TINFL_NEED_BITS(state_index, n); } b = bit_buf & ((1 << (n)) - 1); bit_buf >>= (n); num_bits -= (n); } MZ_MACRO_END
        +
        +// TINFL_HUFF_BITBUF_FILL() is only used rarely, when the number of bytes remaining in the input buffer falls below 2.
        +// It reads just enough bytes from the input stream that are needed to decode the next Huffman code (and absolutely no more). It works by trying to fully decode a
        +// Huffman code by using whatever bits are currently present in the bit buffer. If this fails, it reads another byte, and tries again until it succeeds or until the
        +// bit buffer contains >=15 bits (deflate's max. Huffman code size).
        +#define TINFL_HUFF_BITBUF_FILL(state_index, pHuff) \
        +  do { \
        +    temp = (pHuff)->m_look_up[bit_buf & (TINFL_FAST_LOOKUP_SIZE - 1)]; \
        +    if (temp >= 0) { \
        +      code_len = temp >> 9; \
        +      if ((code_len) && (num_bits >= code_len)) \
        +      break; \
        +    } else if (num_bits > TINFL_FAST_LOOKUP_BITS) { \
        +       code_len = TINFL_FAST_LOOKUP_BITS; \
        +       do { \
        +          temp = (pHuff)->m_tree[~temp + ((bit_buf >> code_len++) & 1)]; \
        +       } while ((temp < 0) && (num_bits >= (code_len + 1))); if (temp >= 0) break; \
        +    } TINFL_GET_BYTE(state_index, c); bit_buf |= (((tinfl_bit_buf_t)c) << num_bits); num_bits += 8; \
        +  } while (num_bits < 15);
        +
        +// TINFL_HUFF_DECODE() decodes the next Huffman coded symbol. It's more complex than you would initially expect because the zlib API expects the decompressor to never read
        +// beyond the final byte of the deflate stream. (In other words, when this macro wants to read another byte from the input, it REALLY needs another byte in order to fully
        +// decode the next Huffman code.) Handling this properly is particularly important on raw deflate (non-zlib) streams, which aren't followed by a byte aligned adler-32.
        +// The slow path is only executed at the very end of the input buffer.
        +#define TINFL_HUFF_DECODE(state_index, sym, pHuff) do { \
        +  int temp; mz_uint code_len, c; \
        +  if (num_bits < 15) { \
        +    if ((pIn_buf_end - pIn_buf_cur) < 2) { \
        +       TINFL_HUFF_BITBUF_FILL(state_index, pHuff); \
        +    } else { \
        +       bit_buf |= (((tinfl_bit_buf_t)pIn_buf_cur[0]) << num_bits) | (((tinfl_bit_buf_t)pIn_buf_cur[1]) << (num_bits + 8)); pIn_buf_cur += 2; num_bits += 16; \
        +    } \
        +  } \
        +  if ((temp = (pHuff)->m_look_up[bit_buf & (TINFL_FAST_LOOKUP_SIZE - 1)]) >= 0) \
        +    code_len = temp >> 9, temp &= 511; \
        +  else { \
        +    code_len = TINFL_FAST_LOOKUP_BITS; do { temp = (pHuff)->m_tree[~temp + ((bit_buf >> code_len++) & 1)]; } while (temp < 0); \
        +  } sym = temp; bit_buf >>= code_len; num_bits -= code_len; } MZ_MACRO_END
        +
        +tinfl_status tinfl_decompress(tinfl_decompressor *r, const mz_uint8 *pIn_buf_next, size_t *pIn_buf_size, mz_uint8 *pOut_buf_start, mz_uint8 *pOut_buf_next, size_t *pOut_buf_size, const mz_uint32 decomp_flags)
        +{
        +  static const int s_length_base[31] = { 3,4,5,6,7,8,9,10,11,13, 15,17,19,23,27,31,35,43,51,59, 67,83,99,115,131,163,195,227,258,0,0 };
        +  static const int s_length_extra[31]= { 0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0 };
        +  static const int s_dist_base[32] = { 1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193, 257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0};
        +  static const int s_dist_extra[32] = { 0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13};
        +  static const mz_uint8 s_length_dezigzag[19] = { 16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15 };
        +  static const int s_min_table_sizes[3] = { 257, 1, 4 };
        +
        +  tinfl_status status = TINFL_STATUS_FAILED; mz_uint32 num_bits, dist, counter, num_extra; tinfl_bit_buf_t bit_buf;
        +  const mz_uint8 *pIn_buf_cur = pIn_buf_next, *const pIn_buf_end = pIn_buf_next + *pIn_buf_size;
        +  mz_uint8 *pOut_buf_cur = pOut_buf_next, *const pOut_buf_end = pOut_buf_next + *pOut_buf_size;
        +  size_t out_buf_size_mask = (decomp_flags & TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF) ? (size_t)-1 : ((pOut_buf_next - pOut_buf_start) + *pOut_buf_size) - 1, dist_from_out_buf_start;
        +
        +  // Ensure the output buffer's size is a power of 2, unless the output buffer is large enough to hold the entire output file (in which case it doesn't matter).
        +  if (((out_buf_size_mask + 1) & out_buf_size_mask) || (pOut_buf_next < pOut_buf_start)) { *pIn_buf_size = *pOut_buf_size = 0; return TINFL_STATUS_BAD_PARAM; }
        +
        +  num_bits = r->m_num_bits; bit_buf = r->m_bit_buf; dist = r->m_dist; counter = r->m_counter; num_extra = r->m_num_extra; dist_from_out_buf_start = r->m_dist_from_out_buf_start;
        +  TINFL_CR_BEGIN
        +
        +  bit_buf = num_bits = dist = counter = num_extra = r->m_zhdr0 = r->m_zhdr1 = 0; r->m_z_adler32 = r->m_check_adler32 = 1;
        +  if (decomp_flags & TINFL_FLAG_PARSE_ZLIB_HEADER)
        +  {
        +    TINFL_GET_BYTE(1, r->m_zhdr0); TINFL_GET_BYTE(2, r->m_zhdr1);
        +    counter = (((r->m_zhdr0 * 256 + r->m_zhdr1) % 31 != 0) || (r->m_zhdr1 & 32) || ((r->m_zhdr0 & 15) != 8));
        +    if (!(decomp_flags & TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF)) counter |= (((1U << (8U + (r->m_zhdr0 >> 4))) > 32768U) || ((out_buf_size_mask + 1) < (size_t)(1U << (8U + (r->m_zhdr0 >> 4)))));
        +    if (counter) { TINFL_CR_RETURN_FOREVER(36, TINFL_STATUS_FAILED); }
        +  }
        +
        +  do
        +  {
        +    TINFL_GET_BITS(3, r->m_final, 3); r->m_type = r->m_final >> 1;
        +    if (r->m_type == 0)
        +    {
        +      TINFL_SKIP_BITS(5, num_bits & 7);
        +      for (counter = 0; counter < 4; ++counter) { if (num_bits) TINFL_GET_BITS(6, r->m_raw_header[counter], 8); else TINFL_GET_BYTE(7, r->m_raw_header[counter]); }
        +      if ((counter = (r->m_raw_header[0] | (r->m_raw_header[1] << 8))) != (mz_uint)(0xFFFF ^ (r->m_raw_header[2] | (r->m_raw_header[3] << 8)))) { TINFL_CR_RETURN_FOREVER(39, TINFL_STATUS_FAILED); }
        +      while ((counter) && (num_bits))
        +      {
        +        TINFL_GET_BITS(51, dist, 8);
        +        while (pOut_buf_cur >= pOut_buf_end) { TINFL_CR_RETURN(52, TINFL_STATUS_HAS_MORE_OUTPUT); }
        +        *pOut_buf_cur++ = (mz_uint8)dist;
        +        counter--;
        +      }
        +      while (counter)
        +      {
        +        size_t n; while (pOut_buf_cur >= pOut_buf_end) { TINFL_CR_RETURN(9, TINFL_STATUS_HAS_MORE_OUTPUT); }
        +        while (pIn_buf_cur >= pIn_buf_end)
        +        {
        +          if (decomp_flags & TINFL_FLAG_HAS_MORE_INPUT)
        +          {
        +            TINFL_CR_RETURN(38, TINFL_STATUS_NEEDS_MORE_INPUT);
        +          }
        +          else
        +          {
        +            TINFL_CR_RETURN_FOREVER(40, TINFL_STATUS_FAILED);
        +          }
        +        }
        +        n = MZ_MIN(MZ_MIN((size_t)(pOut_buf_end - pOut_buf_cur), (size_t)(pIn_buf_end - pIn_buf_cur)), counter);
        +        TINFL_MEMCPY(pOut_buf_cur, pIn_buf_cur, n); pIn_buf_cur += n; pOut_buf_cur += n; counter -= (mz_uint)n;
        +      }
        +    }
        +    else if (r->m_type == 3)
        +    {
        +      TINFL_CR_RETURN_FOREVER(10, TINFL_STATUS_FAILED);
        +    }
        +    else
        +    {
        +      if (r->m_type == 1)
        +      {
        +        mz_uint8 *p = r->m_tables[0].m_code_size; mz_uint i;
        +        r->m_table_sizes[0] = 288; r->m_table_sizes[1] = 32; TINFL_MEMSET(r->m_tables[1].m_code_size, 5, 32);
        +        for ( i = 0; i <= 143; ++i) *p++ = 8; for ( ; i <= 255; ++i) *p++ = 9; for ( ; i <= 279; ++i) *p++ = 7; for ( ; i <= 287; ++i) *p++ = 8;
        +      }
        +      else
        +      {
        +        for (counter = 0; counter < 3; counter++) { TINFL_GET_BITS(11, r->m_table_sizes[counter], "\05\05\04"[counter]); r->m_table_sizes[counter] += s_min_table_sizes[counter]; }
        +        MZ_CLEAR_OBJ(r->m_tables[2].m_code_size); for (counter = 0; counter < r->m_table_sizes[2]; counter++) { mz_uint s; TINFL_GET_BITS(14, s, 3); r->m_tables[2].m_code_size[s_length_dezigzag[counter]] = (mz_uint8)s; }
        +        r->m_table_sizes[2] = 19;
        +      }
        +      for ( ; (int)r->m_type >= 0; r->m_type--)
        +      {
        +        int tree_next, tree_cur; tinfl_huff_table *pTable;
        +        mz_uint i, j, used_syms, total, sym_index, next_code[17], total_syms[16]; pTable = &r->m_tables[r->m_type]; MZ_CLEAR_OBJ(total_syms); MZ_CLEAR_OBJ(pTable->m_look_up); MZ_CLEAR_OBJ(pTable->m_tree);
        +        for (i = 0; i < r->m_table_sizes[r->m_type]; ++i) total_syms[pTable->m_code_size[i]]++;
        +        used_syms = 0, total = 0; next_code[0] = next_code[1] = 0;
        +        for (i = 1; i <= 15; ++i) { used_syms += total_syms[i]; next_code[i + 1] = (total = ((total + total_syms[i]) << 1)); }
        +        if ((65536 != total) && (used_syms > 1))
        +        {
        +          TINFL_CR_RETURN_FOREVER(35, TINFL_STATUS_FAILED);
        +        }
        +        for (tree_next = -1, sym_index = 0; sym_index < r->m_table_sizes[r->m_type]; ++sym_index)
        +        {
        +          mz_uint rev_code = 0, l, cur_code, code_size = pTable->m_code_size[sym_index]; if (!code_size) continue;
        +          cur_code = next_code[code_size]++; for (l = code_size; l > 0; l--, cur_code >>= 1) rev_code = (rev_code << 1) | (cur_code & 1);
        +          if (code_size <= TINFL_FAST_LOOKUP_BITS) { mz_int16 k = (mz_int16)((code_size << 9) | sym_index); while (rev_code < TINFL_FAST_LOOKUP_SIZE) { pTable->m_look_up[rev_code] = k; rev_code += (1 << code_size); } continue; }
        +          if (0 == (tree_cur = pTable->m_look_up[rev_code & (TINFL_FAST_LOOKUP_SIZE - 1)])) { pTable->m_look_up[rev_code & (TINFL_FAST_LOOKUP_SIZE - 1)] = (mz_int16)tree_next; tree_cur = tree_next; tree_next -= 2; }
        +          rev_code >>= (TINFL_FAST_LOOKUP_BITS - 1);
        +          for (j = code_size; j > (TINFL_FAST_LOOKUP_BITS + 1); j--)
        +          {
        +            tree_cur -= ((rev_code >>= 1) & 1);
        +            if (!pTable->m_tree[-tree_cur - 1]) { pTable->m_tree[-tree_cur - 1] = (mz_int16)tree_next; tree_cur = tree_next; tree_next -= 2; } else tree_cur = pTable->m_tree[-tree_cur - 1];
        +          }
        +          tree_cur -= ((rev_code >>= 1) & 1); pTable->m_tree[-tree_cur - 1] = (mz_int16)sym_index;
        +        }
        +        if (r->m_type == 2)
        +        {
        +          for (counter = 0; counter < (r->m_table_sizes[0] + r->m_table_sizes[1]); )
        +          {
        +            mz_uint s; TINFL_HUFF_DECODE(16, dist, &r->m_tables[2]); if (dist < 16) { r->m_len_codes[counter++] = (mz_uint8)dist; continue; }
        +            if ((dist == 16) && (!counter))
        +            {
        +              TINFL_CR_RETURN_FOREVER(17, TINFL_STATUS_FAILED);
        +            }
        +            num_extra = "\02\03\07"[dist - 16]; TINFL_GET_BITS(18, s, num_extra); s += "\03\03\013"[dist - 16];
        +            TINFL_MEMSET(r->m_len_codes + counter, (dist == 16) ? r->m_len_codes[counter - 1] : 0, s); counter += s;
        +          }
        +          if ((r->m_table_sizes[0] + r->m_table_sizes[1]) != counter)
        +          {
        +            TINFL_CR_RETURN_FOREVER(21, TINFL_STATUS_FAILED);
        +          }
        +          TINFL_MEMCPY(r->m_tables[0].m_code_size, r->m_len_codes, r->m_table_sizes[0]); TINFL_MEMCPY(r->m_tables[1].m_code_size, r->m_len_codes + r->m_table_sizes[0], r->m_table_sizes[1]);
        +        }
        +      }
        +      for ( ; ; )
        +      {
        +        mz_uint8 *pSrc;
        +        for ( ; ; )
        +        {
        +          if (((pIn_buf_end - pIn_buf_cur) < 4) || ((pOut_buf_end - pOut_buf_cur) < 2))
        +          {
        +            TINFL_HUFF_DECODE(23, counter, &r->m_tables[0]);
        +            if (counter >= 256)
        +              break;
        +            while (pOut_buf_cur >= pOut_buf_end) { TINFL_CR_RETURN(24, TINFL_STATUS_HAS_MORE_OUTPUT); }
        +            *pOut_buf_cur++ = (mz_uint8)counter;
        +          }
        +          else
        +          {
        +            int sym2; mz_uint code_len;
        +#if TINFL_USE_64BIT_BITBUF
        +            if (num_bits < 30) { bit_buf |= (((tinfl_bit_buf_t)MZ_READ_LE32(pIn_buf_cur)) << num_bits); pIn_buf_cur += 4; num_bits += 32; }
        +#else
        +            if (num_bits < 15) { bit_buf |= (((tinfl_bit_buf_t)MZ_READ_LE16(pIn_buf_cur)) << num_bits); pIn_buf_cur += 2; num_bits += 16; }
        +#endif
        +            if ((sym2 = r->m_tables[0].m_look_up[bit_buf & (TINFL_FAST_LOOKUP_SIZE - 1)]) >= 0)
        +              code_len = sym2 >> 9;
        +            else
        +            {
        +              code_len = TINFL_FAST_LOOKUP_BITS; do { sym2 = r->m_tables[0].m_tree[~sym2 + ((bit_buf >> code_len++) & 1)]; } while (sym2 < 0);
        +            }
        +            counter = sym2; bit_buf >>= code_len; num_bits -= code_len;
        +            if (counter & 256)
        +              break;
        +
        +#if !TINFL_USE_64BIT_BITBUF
        +            if (num_bits < 15) { bit_buf |= (((tinfl_bit_buf_t)MZ_READ_LE16(pIn_buf_cur)) << num_bits); pIn_buf_cur += 2; num_bits += 16; }
        +#endif
        +            if ((sym2 = r->m_tables[0].m_look_up[bit_buf & (TINFL_FAST_LOOKUP_SIZE - 1)]) >= 0)
        +              code_len = sym2 >> 9;
        +            else
        +            {
        +              code_len = TINFL_FAST_LOOKUP_BITS; do { sym2 = r->m_tables[0].m_tree[~sym2 + ((bit_buf >> code_len++) & 1)]; } while (sym2 < 0);
        +            }
        +            bit_buf >>= code_len; num_bits -= code_len;
        +
        +            pOut_buf_cur[0] = (mz_uint8)counter;
        +            if (sym2 & 256)
        +            {
        +              pOut_buf_cur++;
        +              counter = sym2;
        +              break;
        +            }
        +            pOut_buf_cur[1] = (mz_uint8)sym2;
        +            pOut_buf_cur += 2;
        +          }
        +        }
        +        if ((counter &= 511) == 256) break;
        +
        +        num_extra = s_length_extra[counter - 257]; counter = s_length_base[counter - 257];
        +        if (num_extra) { mz_uint extra_bits; TINFL_GET_BITS(25, extra_bits, num_extra); counter += extra_bits; }
        +
        +        TINFL_HUFF_DECODE(26, dist, &r->m_tables[1]);
        +        num_extra = s_dist_extra[dist]; dist = s_dist_base[dist];
        +        if (num_extra) { mz_uint extra_bits; TINFL_GET_BITS(27, extra_bits, num_extra); dist += extra_bits; }
        +
        +        dist_from_out_buf_start = pOut_buf_cur - pOut_buf_start;
        +        if ((dist > dist_from_out_buf_start) && (decomp_flags & TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF))
        +        {
        +          TINFL_CR_RETURN_FOREVER(37, TINFL_STATUS_FAILED);
        +        }
        +
        +        pSrc = pOut_buf_start + ((dist_from_out_buf_start - dist) & out_buf_size_mask);
        +
        +        if ((MZ_MAX(pOut_buf_cur, pSrc) + counter) > pOut_buf_end)
        +        {
        +          while (counter--)
        +          {
        +            while (pOut_buf_cur >= pOut_buf_end) { TINFL_CR_RETURN(53, TINFL_STATUS_HAS_MORE_OUTPUT); }
        +            *pOut_buf_cur++ = pOut_buf_start[(dist_from_out_buf_start++ - dist) & out_buf_size_mask];
        +          }
        +          continue;
        +        }
        +#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES
        +        else if ((counter >= 9) && (counter <= dist))
        +        {
        +          const mz_uint8 *pSrc_end = pSrc + (counter & ~7);
        +          do
        +          {
        +            ((mz_uint32 *)pOut_buf_cur)[0] = ((const mz_uint32 *)pSrc)[0];
        +            ((mz_uint32 *)pOut_buf_cur)[1] = ((const mz_uint32 *)pSrc)[1];
        +            pOut_buf_cur += 8;
        +          } while ((pSrc += 8) < pSrc_end);
        +          if ((counter &= 7) < 3)
        +          {
        +            if (counter)
        +            {
        +              pOut_buf_cur[0] = pSrc[0];
        +              if (counter > 1)
        +                pOut_buf_cur[1] = pSrc[1];
        +              pOut_buf_cur += counter;
        +            }
        +            continue;
        +          }
        +        }
        +#endif
        +        do
        +        {
        +          pOut_buf_cur[0] = pSrc[0];
        +          pOut_buf_cur[1] = pSrc[1];
        +          pOut_buf_cur[2] = pSrc[2];
        +          pOut_buf_cur += 3; pSrc += 3;
        +        } while ((int)(counter -= 3) > 2);
        +        if ((int)counter > 0)
        +        {
        +          pOut_buf_cur[0] = pSrc[0];
        +          if ((int)counter > 1)
        +            pOut_buf_cur[1] = pSrc[1];
        +          pOut_buf_cur += counter;
        +        }
        +      }
        +    }
        +  } while (!(r->m_final & 1));
        +  if (decomp_flags & TINFL_FLAG_PARSE_ZLIB_HEADER)
        +  {
        +    TINFL_SKIP_BITS(32, num_bits & 7); for (counter = 0; counter < 4; ++counter) { mz_uint s; if (num_bits) TINFL_GET_BITS(41, s, 8); else TINFL_GET_BYTE(42, s); r->m_z_adler32 = (r->m_z_adler32 << 8) | s; }
        +  }
        +  TINFL_CR_RETURN_FOREVER(34, TINFL_STATUS_DONE);
        +  TINFL_CR_FINISH
        +
        +common_exit:
        +  r->m_num_bits = num_bits; r->m_bit_buf = bit_buf; r->m_dist = dist; r->m_counter = counter; r->m_num_extra = num_extra; r->m_dist_from_out_buf_start = dist_from_out_buf_start;
        +  *pIn_buf_size = pIn_buf_cur - pIn_buf_next; *pOut_buf_size = pOut_buf_cur - pOut_buf_next;
        +  if ((decomp_flags & (TINFL_FLAG_PARSE_ZLIB_HEADER | TINFL_FLAG_COMPUTE_ADLER32)) && (status >= 0))
        +  {
        +    const mz_uint8 *ptr = pOut_buf_next; size_t buf_len = *pOut_buf_size;
        +    mz_uint32 i, s1 = r->m_check_adler32 & 0xffff, s2 = r->m_check_adler32 >> 16; size_t block_len = buf_len % 5552;
        +    while (buf_len)
        +    {
        +      for (i = 0; i + 7 < block_len; i += 8, ptr += 8)
        +      {
        +        s1 += ptr[0], s2 += s1; s1 += ptr[1], s2 += s1; s1 += ptr[2], s2 += s1; s1 += ptr[3], s2 += s1;
        +        s1 += ptr[4], s2 += s1; s1 += ptr[5], s2 += s1; s1 += ptr[6], s2 += s1; s1 += ptr[7], s2 += s1;
        +      }
        +      for ( ; i < block_len; ++i) s1 += *ptr++, s2 += s1;
        +      s1 %= 65521U, s2 %= 65521U; buf_len -= block_len; block_len = 5552;
        +    }
        +    r->m_check_adler32 = (s2 << 16) + s1; if ((status == TINFL_STATUS_DONE) && (decomp_flags & TINFL_FLAG_PARSE_ZLIB_HEADER) && (r->m_check_adler32 != r->m_z_adler32)) status = TINFL_STATUS_ADLER32_MISMATCH;
        +  }
        +  return status;
        +}
        +
        +// Higher level helper functions.
        +void *tinfl_decompress_mem_to_heap(const void *pSrc_buf, size_t src_buf_len, size_t *pOut_len, int flags)
        +{
        +  tinfl_decompressor decomp; void *pBuf = NULL, *pNew_buf; size_t src_buf_ofs = 0, out_buf_capacity = 0;
        +  *pOut_len = 0;
        +  tinfl_init(&decomp);
        +  for ( ; ; )
        +  {
        +    size_t src_buf_size = src_buf_len - src_buf_ofs, dst_buf_size = out_buf_capacity - *pOut_len, new_out_buf_capacity;
        +    tinfl_status status = tinfl_decompress(&decomp, (const mz_uint8*)pSrc_buf + src_buf_ofs, &src_buf_size, (mz_uint8*)pBuf, pBuf ? (mz_uint8*)pBuf + *pOut_len : NULL, &dst_buf_size,
        +      (flags & ~TINFL_FLAG_HAS_MORE_INPUT) | TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF);
        +    if ((status < 0) || (status == TINFL_STATUS_NEEDS_MORE_INPUT))
        +    {
        +      MZ_FREE(pBuf); *pOut_len = 0; return NULL;
        +    }
        +    src_buf_ofs += src_buf_size;
        +    *pOut_len += dst_buf_size;
        +    if (status == TINFL_STATUS_DONE) break;
        +    new_out_buf_capacity = out_buf_capacity * 2; if (new_out_buf_capacity < 128) new_out_buf_capacity = 128;
        +    pNew_buf = MZ_REALLOC(pBuf, new_out_buf_capacity);
        +    if (!pNew_buf)
        +    {
        +      MZ_FREE(pBuf); *pOut_len = 0; return NULL;
        +    }
        +    pBuf = pNew_buf; out_buf_capacity = new_out_buf_capacity;
        +  }
        +  return pBuf;
        +}
        +
        +size_t tinfl_decompress_mem_to_mem(void *pOut_buf, size_t out_buf_len, const void *pSrc_buf, size_t src_buf_len, int flags)
        +{
        +  tinfl_decompressor decomp; tinfl_status status; tinfl_init(&decomp);
        +  status = tinfl_decompress(&decomp, (const mz_uint8*)pSrc_buf, &src_buf_len, (mz_uint8*)pOut_buf, (mz_uint8*)pOut_buf, &out_buf_len, (flags & ~TINFL_FLAG_HAS_MORE_INPUT) | TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF);
        +  return (status != TINFL_STATUS_DONE) ? TINFL_DECOMPRESS_MEM_TO_MEM_FAILED : out_buf_len;
        +}
        +
        +int tinfl_decompress_mem_to_callback(const void *pIn_buf, size_t *pIn_buf_size, tinfl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags)
        +{
        +  int result = 0;
        +  tinfl_decompressor decomp;
        +  mz_uint8 *pDict = (mz_uint8*)MZ_MALLOC(TINFL_LZ_DICT_SIZE); size_t in_buf_ofs = 0, dict_ofs = 0;
        +  if (!pDict)
        +    return TINFL_STATUS_FAILED;
        +  tinfl_init(&decomp);
        +  for ( ; ; )
        +  {
        +    size_t in_buf_size = *pIn_buf_size - in_buf_ofs, dst_buf_size = TINFL_LZ_DICT_SIZE - dict_ofs;
        +    tinfl_status status = tinfl_decompress(&decomp, (const mz_uint8*)pIn_buf + in_buf_ofs, &in_buf_size, pDict, pDict + dict_ofs, &dst_buf_size,
        +      (flags & ~(TINFL_FLAG_HAS_MORE_INPUT | TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF)));
        +    in_buf_ofs += in_buf_size;
        +    if ((dst_buf_size) && (!(*pPut_buf_func)(pDict + dict_ofs, (int)dst_buf_size, pPut_buf_user)))
        +      break;
        +    if (status != TINFL_STATUS_HAS_MORE_OUTPUT)
        +    {
        +      result = (status == TINFL_STATUS_DONE);
        +      break;
        +    }
        +    dict_ofs = (dict_ofs + dst_buf_size) & (TINFL_LZ_DICT_SIZE - 1);
        +  }
        +  MZ_FREE(pDict);
        +  *pIn_buf_size = in_buf_ofs;
        +  return result;
        +}
        +
        +// ------------------- Low-level Compression (independent from all decompression API's)
        +
        +// Purposely making these tables static for faster init and thread safety.
        +static const mz_uint16 s_tdefl_len_sym[256] = {
        +  257,258,259,260,261,262,263,264,265,265,266,266,267,267,268,268,269,269,269,269,270,270,270,270,271,271,271,271,272,272,272,272,
        +  273,273,273,273,273,273,273,273,274,274,274,274,274,274,274,274,275,275,275,275,275,275,275,275,276,276,276,276,276,276,276,276,
        +  277,277,277,277,277,277,277,277,277,277,277,277,277,277,277,277,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,
        +  279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,
        +  281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,
        +  282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,
        +  283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,
        +  284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,285 };
        +
        +static const mz_uint8 s_tdefl_len_extra[256] = {
        +  0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
        +  4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
        +  5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
        +  5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0 };
        +
        +static const mz_uint8 s_tdefl_small_dist_sym[512] = {
        +  0,1,2,3,4,4,5,5,6,6,6,6,7,7,7,7,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,
        +  11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,
        +  13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,14,14,14,14,14,14,14,14,14,14,14,14,
        +  14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,
        +  14,14,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
        +  15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,16,16,16,16,16,16,16,16,16,16,16,16,16,
        +  16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
        +  16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
        +  16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,17,17,17,17,17,17,17,17,17,17,17,17,17,
        +  17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,
        +  17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,
        +  17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17 };
        +
        +static const mz_uint8 s_tdefl_small_dist_extra[512] = {
        +  0,0,0,0,1,1,1,1,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,
        +  5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
        +  6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
        +  6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
        +  7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
        +  7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
        +  7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
        +  7,7,7,7,7,7,7,7 };
        +
        +static const mz_uint8 s_tdefl_large_dist_sym[128] = {
        +  0,0,18,19,20,20,21,21,22,22,22,22,23,23,23,23,24,24,24,24,24,24,24,24,25,25,25,25,25,25,25,25,26,26,26,26,26,26,26,26,26,26,26,26,
        +  26,26,26,26,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,
        +  28,28,28,28,28,28,28,28,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29 };
        +
        +static const mz_uint8 s_tdefl_large_dist_extra[128] = {
        +  0,0,8,8,9,9,9,9,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
        +  12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
        +  13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13 };
        +
        +// Radix sorts tdefl_sym_freq[] array by 16-bit key m_key. Returns ptr to sorted values.
        +typedef struct { mz_uint16 m_key, m_sym_index; } tdefl_sym_freq;
        +static tdefl_sym_freq* tdefl_radix_sort_syms(mz_uint num_syms, tdefl_sym_freq* pSyms0, tdefl_sym_freq* pSyms1)
        +{
        +  mz_uint32 total_passes = 2, pass_shift, pass, i, hist[256 * 2]; tdefl_sym_freq* pCur_syms = pSyms0, *pNew_syms = pSyms1; MZ_CLEAR_OBJ(hist);
        +  for (i = 0; i < num_syms; i++) { mz_uint freq = pSyms0[i].m_key; hist[freq & 0xFF]++; hist[256 + ((freq >> 8) & 0xFF)]++; }
        +  while ((total_passes > 1) && (num_syms == hist[(total_passes - 1) * 256])) total_passes--;
        +  for (pass_shift = 0, pass = 0; pass < total_passes; pass++, pass_shift += 8)
        +  {
        +    const mz_uint32* pHist = &hist[pass << 8];
        +    mz_uint offsets[256], cur_ofs = 0;
        +    for (i = 0; i < 256; i++) { offsets[i] = cur_ofs; cur_ofs += pHist[i]; }
        +    for (i = 0; i < num_syms; i++) pNew_syms[offsets[(pCur_syms[i].m_key >> pass_shift) & 0xFF]++] = pCur_syms[i];
        +    { tdefl_sym_freq* t = pCur_syms; pCur_syms = pNew_syms; pNew_syms = t; }
        +  }
        +  return pCur_syms;
        +}
        +
        +// tdefl_calculate_minimum_redundancy() originally written by: Alistair Moffat, alistair@cs.mu.oz.au, Jyrki Katajainen, jyrki@diku.dk, November 1996.
        +static void tdefl_calculate_minimum_redundancy(tdefl_sym_freq *A, int n)
        +{
        +  int root, leaf, next, avbl, used, dpth;
        +  if (n==0) return; else if (n==1) { A[0].m_key = 1; return; }
        +  A[0].m_key += A[1].m_key; root = 0; leaf = 2;
        +  for (next=1; next < n-1; next++)
        +  {
        +    if (leaf>=n || A[root].m_key<A[leaf].m_key) { A[next].m_key = A[root].m_key; A[root++].m_key = (mz_uint16)next; } else A[next].m_key = A[leaf++].m_key;
        +    if (leaf>=n || (root<next && A[root].m_key<A[leaf].m_key)) { A[next].m_key = (mz_uint16)(A[next].m_key + A[root].m_key); A[root++].m_key = (mz_uint16)next; } else A[next].m_key = (mz_uint16)(A[next].m_key + A[leaf++].m_key);
        +  }
        +  A[n-2].m_key = 0; for (next=n-3; next>=0; next--) A[next].m_key = A[A[next].m_key].m_key+1;
        +  avbl = 1; used = dpth = 0; root = n-2; next = n-1;
        +  while (avbl>0)
        +  {
        +    while (root>=0 && (int)A[root].m_key==dpth) { used++; root--; }
        +    while (avbl>used) { A[next--].m_key = (mz_uint16)(dpth); avbl--; }
        +    avbl = 2*used; dpth++; used = 0;
        +  }
        +}
        +
        +// Limits canonical Huffman code table's max code size.
        +enum { TDEFL_MAX_SUPPORTED_HUFF_CODESIZE = 32 };
        +static void tdefl_huffman_enforce_max_code_size(int *pNum_codes, int code_list_len, int max_code_size)
        +{
        +  int i; mz_uint32 total = 0; if (code_list_len <= 1) return;
        +  for (i = max_code_size + 1; i <= TDEFL_MAX_SUPPORTED_HUFF_CODESIZE; i++) pNum_codes[max_code_size] += pNum_codes[i];
        +  for (i = max_code_size; i > 0; i--) total += (((mz_uint32)pNum_codes[i]) << (max_code_size - i));
        +  while (total != (1UL << max_code_size))
        +  {
        +    pNum_codes[max_code_size]--;
        +    for (i = max_code_size - 1; i > 0; i--) if (pNum_codes[i]) { pNum_codes[i]--; pNum_codes[i + 1] += 2; break; }
        +    total--;
        +  }
        +}
        +
        +static void tdefl_optimize_huffman_table(tdefl_compressor *d, int table_num, int table_len, int code_size_limit, int static_table)
        +{
        +  int i, j, l, num_codes[1 + TDEFL_MAX_SUPPORTED_HUFF_CODESIZE]; mz_uint next_code[TDEFL_MAX_SUPPORTED_HUFF_CODESIZE + 1]; MZ_CLEAR_OBJ(num_codes);
        +  if (static_table)
        +  {
        +    for (i = 0; i < table_len; i++) num_codes[d->m_huff_code_sizes[table_num][i]]++;
        +  }
        +  else
        +  {
        +    tdefl_sym_freq syms0[TDEFL_MAX_HUFF_SYMBOLS], syms1[TDEFL_MAX_HUFF_SYMBOLS], *pSyms;
        +    int num_used_syms = 0;
        +    const mz_uint16 *pSym_count = &d->m_huff_count[table_num][0];
        +    for (i = 0; i < table_len; i++) if (pSym_count[i]) { syms0[num_used_syms].m_key = (mz_uint16)pSym_count[i]; syms0[num_used_syms++].m_sym_index = (mz_uint16)i; }
        +
        +    pSyms = tdefl_radix_sort_syms(num_used_syms, syms0, syms1); tdefl_calculate_minimum_redundancy(pSyms, num_used_syms);
        +
        +    for (i = 0; i < num_used_syms; i++) num_codes[pSyms[i].m_key]++;
        +
        +    tdefl_huffman_enforce_max_code_size(num_codes, num_used_syms, code_size_limit);
        +
        +    MZ_CLEAR_OBJ(d->m_huff_code_sizes[table_num]); MZ_CLEAR_OBJ(d->m_huff_codes[table_num]);
        +    for (i = 1, j = num_used_syms; i <= code_size_limit; i++)
        +      for (l = num_codes[i]; l > 0; l--) d->m_huff_code_sizes[table_num][pSyms[--j].m_sym_index] = (mz_uint8)(i);
        +  }
        +
        +  next_code[1] = 0; for (j = 0, i = 2; i <= code_size_limit; i++) next_code[i] = j = ((j + num_codes[i - 1]) << 1);
        +
        +  for (i = 0; i < table_len; i++)
        +  {
        +    mz_uint rev_code = 0, code, code_size; if ((code_size = d->m_huff_code_sizes[table_num][i]) == 0) continue;
        +    code = next_code[code_size]++; for (l = code_size; l > 0; l--, code >>= 1) rev_code = (rev_code << 1) | (code & 1);
        +    d->m_huff_codes[table_num][i] = (mz_uint16)rev_code;
        +  }
        +}
        +
        +#define TDEFL_PUT_BITS(b, l) do { \
        +  mz_uint bits = b; mz_uint len = l; MZ_ASSERT(bits <= ((1U << len) - 1U)); \
        +  d->m_bit_buffer |= (bits << d->m_bits_in); d->m_bits_in += len; \
        +  while (d->m_bits_in >= 8) { \
        +    if (d->m_pOutput_buf < d->m_pOutput_buf_end) \
        +      *d->m_pOutput_buf++ = (mz_uint8)(d->m_bit_buffer); \
        +      d->m_bit_buffer >>= 8; \
        +      d->m_bits_in -= 8; \
        +  } \
        +} MZ_MACRO_END
        +
        +#define TDEFL_RLE_PREV_CODE_SIZE() { if (rle_repeat_count) { \
        +  if (rle_repeat_count < 3) { \
        +    d->m_huff_count[2][prev_code_size] = (mz_uint16)(d->m_huff_count[2][prev_code_size] + rle_repeat_count); \
        +    while (rle_repeat_count--) packed_code_sizes[num_packed_code_sizes++] = prev_code_size; \
        +  } else { \
        +    d->m_huff_count[2][16] = (mz_uint16)(d->m_huff_count[2][16] + 1); packed_code_sizes[num_packed_code_sizes++] = 16; packed_code_sizes[num_packed_code_sizes++] = (mz_uint8)(rle_repeat_count - 3); \
        +} rle_repeat_count = 0; } }
        +
        +#define TDEFL_RLE_ZERO_CODE_SIZE() { if (rle_z_count) { \
        +  if (rle_z_count < 3) { \
        +    d->m_huff_count[2][0] = (mz_uint16)(d->m_huff_count[2][0] + rle_z_count); while (rle_z_count--) packed_code_sizes[num_packed_code_sizes++] = 0; \
        +  } else if (rle_z_count <= 10) { \
        +    d->m_huff_count[2][17] = (mz_uint16)(d->m_huff_count[2][17] + 1); packed_code_sizes[num_packed_code_sizes++] = 17; packed_code_sizes[num_packed_code_sizes++] = (mz_uint8)(rle_z_count - 3); \
        +  } else { \
        +    d->m_huff_count[2][18] = (mz_uint16)(d->m_huff_count[2][18] + 1); packed_code_sizes[num_packed_code_sizes++] = 18; packed_code_sizes[num_packed_code_sizes++] = (mz_uint8)(rle_z_count - 11); \
        +} rle_z_count = 0; } }
        +
        +static mz_uint8 s_tdefl_packed_code_size_syms_swizzle[] = { 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 };
        +
        +static void tdefl_start_dynamic_block(tdefl_compressor *d)
        +{
        +  int num_lit_codes, num_dist_codes, num_bit_lengths; mz_uint i, total_code_sizes_to_pack, num_packed_code_sizes, rle_z_count, rle_repeat_count, packed_code_sizes_index;
        +  mz_uint8 code_sizes_to_pack[TDEFL_MAX_HUFF_SYMBOLS_0 + TDEFL_MAX_HUFF_SYMBOLS_1], packed_code_sizes[TDEFL_MAX_HUFF_SYMBOLS_0 + TDEFL_MAX_HUFF_SYMBOLS_1], prev_code_size = 0xFF;
        +
        +  d->m_huff_count[0][256] = 1;
        +
        +  tdefl_optimize_huffman_table(d, 0, TDEFL_MAX_HUFF_SYMBOLS_0, 15, MZ_FALSE);
        +  tdefl_optimize_huffman_table(d, 1, TDEFL_MAX_HUFF_SYMBOLS_1, 15, MZ_FALSE);
        +
        +  for (num_lit_codes = 286; num_lit_codes > 257; num_lit_codes--) if (d->m_huff_code_sizes[0][num_lit_codes - 1]) break;
        +  for (num_dist_codes = 30; num_dist_codes > 1; num_dist_codes--) if (d->m_huff_code_sizes[1][num_dist_codes - 1]) break;
        +
        +  memcpy(code_sizes_to_pack, &d->m_huff_code_sizes[0][0], num_lit_codes);
        +  memcpy(code_sizes_to_pack + num_lit_codes, &d->m_huff_code_sizes[1][0], num_dist_codes);
        +  total_code_sizes_to_pack = num_lit_codes + num_dist_codes; num_packed_code_sizes = 0; rle_z_count = 0; rle_repeat_count = 0;
        +
        +  memset(&d->m_huff_count[2][0], 0, sizeof(d->m_huff_count[2][0]) * TDEFL_MAX_HUFF_SYMBOLS_2);
        +  for (i = 0; i < total_code_sizes_to_pack; i++)
        +  {
        +    mz_uint8 code_size = code_sizes_to_pack[i];
        +    if (!code_size)
        +    {
        +      TDEFL_RLE_PREV_CODE_SIZE();
        +      if (++rle_z_count == 138) { TDEFL_RLE_ZERO_CODE_SIZE(); }
        +    }
        +    else
        +    {
        +      TDEFL_RLE_ZERO_CODE_SIZE();
        +      if (code_size != prev_code_size)
        +      {
        +        TDEFL_RLE_PREV_CODE_SIZE();
        +        d->m_huff_count[2][code_size] = (mz_uint16)(d->m_huff_count[2][code_size] + 1); packed_code_sizes[num_packed_code_sizes++] = code_size;
        +      }
        +      else if (++rle_repeat_count == 6)
        +      {
        +        TDEFL_RLE_PREV_CODE_SIZE();
        +      }
        +    }
        +    prev_code_size = code_size;
        +  }
        +  if (rle_repeat_count) { TDEFL_RLE_PREV_CODE_SIZE(); } else { TDEFL_RLE_ZERO_CODE_SIZE(); }
        +
        +  tdefl_optimize_huffman_table(d, 2, TDEFL_MAX_HUFF_SYMBOLS_2, 7, MZ_FALSE);
        +
        +  TDEFL_PUT_BITS(2, 2);
        +
        +  TDEFL_PUT_BITS(num_lit_codes - 257, 5);
        +  TDEFL_PUT_BITS(num_dist_codes - 1, 5);
        +
        +  for (num_bit_lengths = 18; num_bit_lengths >= 0; num_bit_lengths--) if (d->m_huff_code_sizes[2][s_tdefl_packed_code_size_syms_swizzle[num_bit_lengths]]) break;
        +  num_bit_lengths = MZ_MAX(4, (num_bit_lengths + 1)); TDEFL_PUT_BITS(num_bit_lengths - 4, 4);
        +  for (i = 0; (int)i < num_bit_lengths; i++) TDEFL_PUT_BITS(d->m_huff_code_sizes[2][s_tdefl_packed_code_size_syms_swizzle[i]], 3);
        +
        +  for (packed_code_sizes_index = 0; packed_code_sizes_index < num_packed_code_sizes; )
        +  {
        +    mz_uint code = packed_code_sizes[packed_code_sizes_index++]; MZ_ASSERT(code < TDEFL_MAX_HUFF_SYMBOLS_2);
        +    TDEFL_PUT_BITS(d->m_huff_codes[2][code], d->m_huff_code_sizes[2][code]);
        +    if (code >= 16) TDEFL_PUT_BITS(packed_code_sizes[packed_code_sizes_index++], "\02\03\07"[code - 16]);
        +  }
        +}
        +
        +static void tdefl_start_static_block(tdefl_compressor *d)
        +{
        +  mz_uint i;
        +  mz_uint8 *p = &d->m_huff_code_sizes[0][0];
        +
        +  for (i = 0; i <= 143; ++i) *p++ = 8;
        +  for ( ; i <= 255; ++i) *p++ = 9;
        +  for ( ; i <= 279; ++i) *p++ = 7;
        +  for ( ; i <= 287; ++i) *p++ = 8;
        +
        +  memset(d->m_huff_code_sizes[1], 5, 32);
        +
        +  tdefl_optimize_huffman_table(d, 0, 288, 15, MZ_TRUE);
        +  tdefl_optimize_huffman_table(d, 1, 32, 15, MZ_TRUE);
        +
        +  TDEFL_PUT_BITS(1, 2);
        +}
        +
        +static const mz_uint mz_bitmasks[17] = { 0x0000, 0x0001, 0x0003, 0x0007, 0x000F, 0x001F, 0x003F, 0x007F, 0x00FF, 0x01FF, 0x03FF, 0x07FF, 0x0FFF, 0x1FFF, 0x3FFF, 0x7FFF, 0xFFFF };
        +
        +#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN && MINIZ_HAS_64BIT_REGISTERS
        +static mz_bool tdefl_compress_lz_codes(tdefl_compressor *d)
        +{
        +  mz_uint flags;
        +  mz_uint8 *pLZ_codes;
        +  mz_uint8 *pOutput_buf = d->m_pOutput_buf;
        +  mz_uint8 *pLZ_code_buf_end = d->m_pLZ_code_buf;
        +  mz_uint64 bit_buffer = d->m_bit_buffer;
        +  mz_uint bits_in = d->m_bits_in;
        +
        +#define TDEFL_PUT_BITS_FAST(b, l) { bit_buffer |= (((mz_uint64)(b)) << bits_in); bits_in += (l); }
        +
        +  flags = 1;
        +  for (pLZ_codes = d->m_lz_code_buf; pLZ_codes < pLZ_code_buf_end; flags >>= 1)
        +  {
        +    if (flags == 1)
        +      flags = *pLZ_codes++ | 0x100;
        +
        +    if (flags & 1)
        +    {
        +      mz_uint s0, s1, n0, n1, sym, num_extra_bits;
        +      mz_uint match_len = pLZ_codes[0], match_dist = *(const mz_uint16 *)(pLZ_codes + 1); pLZ_codes += 3;
        +
        +      MZ_ASSERT(d->m_huff_code_sizes[0][s_tdefl_len_sym[match_len]]);
        +      TDEFL_PUT_BITS_FAST(d->m_huff_codes[0][s_tdefl_len_sym[match_len]], d->m_huff_code_sizes[0][s_tdefl_len_sym[match_len]]);
        +      TDEFL_PUT_BITS_FAST(match_len & mz_bitmasks[s_tdefl_len_extra[match_len]], s_tdefl_len_extra[match_len]);
        +
        +      // This sequence coaxes MSVC into using cmov's vs. jmp's.
        +      s0 = s_tdefl_small_dist_sym[match_dist & 511];
        +      n0 = s_tdefl_small_dist_extra[match_dist & 511];
        +      s1 = s_tdefl_large_dist_sym[match_dist >> 8];
        +      n1 = s_tdefl_large_dist_extra[match_dist >> 8];
        +      sym = (match_dist < 512) ? s0 : s1;
        +      num_extra_bits = (match_dist < 512) ? n0 : n1;
        +
        +      MZ_ASSERT(d->m_huff_code_sizes[1][sym]);
        +      TDEFL_PUT_BITS_FAST(d->m_huff_codes[1][sym], d->m_huff_code_sizes[1][sym]);
        +      TDEFL_PUT_BITS_FAST(match_dist & mz_bitmasks[num_extra_bits], num_extra_bits);
        +    }
        +    else
        +    {
        +      mz_uint lit = *pLZ_codes++;
        +      MZ_ASSERT(d->m_huff_code_sizes[0][lit]);
        +      TDEFL_PUT_BITS_FAST(d->m_huff_codes[0][lit], d->m_huff_code_sizes[0][lit]);
        +
        +      if (((flags & 2) == 0) && (pLZ_codes < pLZ_code_buf_end))
        +      {
        +        flags >>= 1;
        +        lit = *pLZ_codes++;
        +        MZ_ASSERT(d->m_huff_code_sizes[0][lit]);
        +        TDEFL_PUT_BITS_FAST(d->m_huff_codes[0][lit], d->m_huff_code_sizes[0][lit]);
        +
        +        if (((flags & 2) == 0) && (pLZ_codes < pLZ_code_buf_end))
        +        {
        +          flags >>= 1;
        +          lit = *pLZ_codes++;
        +          MZ_ASSERT(d->m_huff_code_sizes[0][lit]);
        +          TDEFL_PUT_BITS_FAST(d->m_huff_codes[0][lit], d->m_huff_code_sizes[0][lit]);
        +        }
        +      }
        +    }
        +
        +    if (pOutput_buf >= d->m_pOutput_buf_end)
        +      return MZ_FALSE;
        +
        +    *(mz_uint64*)pOutput_buf = bit_buffer;
        +    pOutput_buf += (bits_in >> 3);
        +    bit_buffer >>= (bits_in & ~7);
        +    bits_in &= 7;
        +  }
        +
        +#undef TDEFL_PUT_BITS_FAST
        +
        +  d->m_pOutput_buf = pOutput_buf;
        +  d->m_bits_in = 0;
        +  d->m_bit_buffer = 0;
        +
        +  while (bits_in)
        +  {
        +    mz_uint32 n = MZ_MIN(bits_in, 16);
        +    TDEFL_PUT_BITS((mz_uint)bit_buffer & mz_bitmasks[n], n);
        +    bit_buffer >>= n;
        +    bits_in -= n;
        +  }
        +
        +  TDEFL_PUT_BITS(d->m_huff_codes[0][256], d->m_huff_code_sizes[0][256]);
        +
        +  return (d->m_pOutput_buf < d->m_pOutput_buf_end);
        +}
        +#else
        +static mz_bool tdefl_compress_lz_codes(tdefl_compressor *d)
        +{
        +  mz_uint flags;
        +  mz_uint8 *pLZ_codes;
        +
        +  flags = 1;
        +  for (pLZ_codes = d->m_lz_code_buf; pLZ_codes < d->m_pLZ_code_buf; flags >>= 1)
        +  {
        +    if (flags == 1)
        +      flags = *pLZ_codes++ | 0x100;
        +    if (flags & 1)
        +    {
        +      mz_uint sym, num_extra_bits;
        +      mz_uint match_len = pLZ_codes[0], match_dist = (pLZ_codes[1] | (pLZ_codes[2] << 8)); pLZ_codes += 3;
        +
        +      MZ_ASSERT(d->m_huff_code_sizes[0][s_tdefl_len_sym[match_len]]);
        +      TDEFL_PUT_BITS(d->m_huff_codes[0][s_tdefl_len_sym[match_len]], d->m_huff_code_sizes[0][s_tdefl_len_sym[match_len]]);
        +      TDEFL_PUT_BITS(match_len & mz_bitmasks[s_tdefl_len_extra[match_len]], s_tdefl_len_extra[match_len]);
        +
        +      if (match_dist < 512)
        +      {
        +        sym = s_tdefl_small_dist_sym[match_dist]; num_extra_bits = s_tdefl_small_dist_extra[match_dist];
        +      }
        +      else
        +      {
        +        sym = s_tdefl_large_dist_sym[match_dist >> 8]; num_extra_bits = s_tdefl_large_dist_extra[match_dist >> 8];
        +      }
        +      MZ_ASSERT(d->m_huff_code_sizes[1][sym]);
        +      TDEFL_PUT_BITS(d->m_huff_codes[1][sym], d->m_huff_code_sizes[1][sym]);
        +      TDEFL_PUT_BITS(match_dist & mz_bitmasks[num_extra_bits], num_extra_bits);
        +    }
        +    else
        +    {
        +      mz_uint lit = *pLZ_codes++;
        +      MZ_ASSERT(d->m_huff_code_sizes[0][lit]);
        +      TDEFL_PUT_BITS(d->m_huff_codes[0][lit], d->m_huff_code_sizes[0][lit]);
        +    }
        +  }
        +
        +  TDEFL_PUT_BITS(d->m_huff_codes[0][256], d->m_huff_code_sizes[0][256]);
        +
        +  return (d->m_pOutput_buf < d->m_pOutput_buf_end);
        +}
        +#endif // MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN && MINIZ_HAS_64BIT_REGISTERS
        +
        +static mz_bool tdefl_compress_block(tdefl_compressor *d, mz_bool static_block)
        +{
        +  if (static_block)
        +    tdefl_start_static_block(d);
        +  else
        +    tdefl_start_dynamic_block(d);
        +  return tdefl_compress_lz_codes(d);
        +}
        +
        +static int tdefl_flush_block(tdefl_compressor *d, int flush)
        +{
        +  mz_uint saved_bit_buf, saved_bits_in;
        +  mz_uint8 *pSaved_output_buf;
        +  mz_bool comp_block_succeeded = MZ_FALSE;
        +  int n, use_raw_block = ((d->m_flags & TDEFL_FORCE_ALL_RAW_BLOCKS) != 0) && (d->m_lookahead_pos - d->m_lz_code_buf_dict_pos) <= d->m_dict_size;
        +  mz_uint8 *pOutput_buf_start = ((d->m_pPut_buf_func == NULL) && ((*d->m_pOut_buf_size - d->m_out_buf_ofs) >= TDEFL_OUT_BUF_SIZE)) ? ((mz_uint8 *)d->m_pOut_buf + d->m_out_buf_ofs) : d->m_output_buf;
        +
        +  d->m_pOutput_buf = pOutput_buf_start;
        +  d->m_pOutput_buf_end = d->m_pOutput_buf + TDEFL_OUT_BUF_SIZE - 16;
        +
        +  MZ_ASSERT(!d->m_output_flush_remaining);
        +  d->m_output_flush_ofs = 0;
        +  d->m_output_flush_remaining = 0;
        +
        +  *d->m_pLZ_flags = (mz_uint8)(*d->m_pLZ_flags >> d->m_num_flags_left);
        +  d->m_pLZ_code_buf -= (d->m_num_flags_left == 8);
        +
        +  if ((d->m_flags & TDEFL_WRITE_ZLIB_HEADER) && (!d->m_block_index))
        +  {
        +    TDEFL_PUT_BITS(0x78, 8); TDEFL_PUT_BITS(0x01, 8);
        +  }
        +
        +  TDEFL_PUT_BITS(flush == TDEFL_FINISH, 1);
        +
        +  pSaved_output_buf = d->m_pOutput_buf; saved_bit_buf = d->m_bit_buffer; saved_bits_in = d->m_bits_in;
        +
        +  if (!use_raw_block)
        +    comp_block_succeeded = tdefl_compress_block(d, (d->m_flags & TDEFL_FORCE_ALL_STATIC_BLOCKS) || (d->m_total_lz_bytes < 48));
        +
        +  // If the block gets expanded, forget the current contents of the output buffer and send a raw block instead.
        +  if ( ((use_raw_block) || ((d->m_total_lz_bytes) && ((d->m_pOutput_buf - pSaved_output_buf + 1U) >= d->m_total_lz_bytes))) &&
        +       ((d->m_lookahead_pos - d->m_lz_code_buf_dict_pos) <= d->m_dict_size) )
        +  {
        +    mz_uint i; d->m_pOutput_buf = pSaved_output_buf; d->m_bit_buffer = saved_bit_buf, d->m_bits_in = saved_bits_in;
        +    TDEFL_PUT_BITS(0, 2);
        +    if (d->m_bits_in) { TDEFL_PUT_BITS(0, 8 - d->m_bits_in); }
        +    for (i = 2; i; --i, d->m_total_lz_bytes ^= 0xFFFF)
        +    {
        +      TDEFL_PUT_BITS(d->m_total_lz_bytes & 0xFFFF, 16);
        +    }
        +    for (i = 0; i < d->m_total_lz_bytes; ++i)
        +    {
        +      TDEFL_PUT_BITS(d->m_dict[(d->m_lz_code_buf_dict_pos + i) & TDEFL_LZ_DICT_SIZE_MASK], 8);
        +    }
        +  }
        +  // Check for the extremely unlikely (if not impossible) case of the compressed block not fitting into the output buffer when using dynamic codes.
        +  else if (!comp_block_succeeded)
        +  {
        +    d->m_pOutput_buf = pSaved_output_buf; d->m_bit_buffer = saved_bit_buf, d->m_bits_in = saved_bits_in;
        +    tdefl_compress_block(d, MZ_TRUE);
        +  }
        +
        +  if (flush)
        +  {
        +    if (flush == TDEFL_FINISH)
        +    {
        +      if (d->m_bits_in) { TDEFL_PUT_BITS(0, 8 - d->m_bits_in); }
        +      if (d->m_flags & TDEFL_WRITE_ZLIB_HEADER) { mz_uint i, a = d->m_adler32; for (i = 0; i < 4; i++) { TDEFL_PUT_BITS((a >> 24) & 0xFF, 8); a <<= 8; } }
        +    }
        +    else
        +    {
        +      mz_uint i, z = 0; TDEFL_PUT_BITS(0, 3); if (d->m_bits_in) { TDEFL_PUT_BITS(0, 8 - d->m_bits_in); } for (i = 2; i; --i, z ^= 0xFFFF) { TDEFL_PUT_BITS(z & 0xFFFF, 16); }
        +    }
        +  }
        +
        +  MZ_ASSERT(d->m_pOutput_buf < d->m_pOutput_buf_end);
        +
        +  memset(&d->m_huff_count[0][0], 0, sizeof(d->m_huff_count[0][0]) * TDEFL_MAX_HUFF_SYMBOLS_0);
        +  memset(&d->m_huff_count[1][0], 0, sizeof(d->m_huff_count[1][0]) * TDEFL_MAX_HUFF_SYMBOLS_1);
        +
        +  d->m_pLZ_code_buf = d->m_lz_code_buf + 1; d->m_pLZ_flags = d->m_lz_code_buf; d->m_num_flags_left = 8; d->m_lz_code_buf_dict_pos += d->m_total_lz_bytes; d->m_total_lz_bytes = 0; d->m_block_index++;
        +
        +  if ((n = (int)(d->m_pOutput_buf - pOutput_buf_start)) != 0)
        +  {
        +    if (d->m_pPut_buf_func)
        +    {
        +      *d->m_pIn_buf_size = d->m_pSrc - (const mz_uint8 *)d->m_pIn_buf;
        +      if (!(*d->m_pPut_buf_func)(d->m_output_buf, n, d->m_pPut_buf_user))
        +        return (d->m_prev_return_status = TDEFL_STATUS_PUT_BUF_FAILED);
        +    }
        +    else if (pOutput_buf_start == d->m_output_buf)
        +    {
        +      int bytes_to_copy = (int)MZ_MIN((size_t)n, (size_t)(*d->m_pOut_buf_size - d->m_out_buf_ofs));
        +      memcpy((mz_uint8 *)d->m_pOut_buf + d->m_out_buf_ofs, d->m_output_buf, bytes_to_copy);
        +      d->m_out_buf_ofs += bytes_to_copy;
        +      if ((n -= bytes_to_copy) != 0)
        +      {
        +        d->m_output_flush_ofs = bytes_to_copy;
        +        d->m_output_flush_remaining = n;
        +      }
        +    }
        +    else
        +    {
        +      d->m_out_buf_ofs += n;
        +    }
        +  }
        +
        +  return d->m_output_flush_remaining;
        +}
        +
        +#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES
        +#define TDEFL_READ_UNALIGNED_WORD(p) *(const mz_uint16*)(p)
        +static MZ_FORCEINLINE void tdefl_find_match(tdefl_compressor *d, mz_uint lookahead_pos, mz_uint max_dist, mz_uint max_match_len, mz_uint *pMatch_dist, mz_uint *pMatch_len)
        +{
        +  mz_uint dist, pos = lookahead_pos & TDEFL_LZ_DICT_SIZE_MASK, match_len = *pMatch_len, probe_pos = pos, next_probe_pos, probe_len;
        +  mz_uint num_probes_left = d->m_max_probes[match_len >= 32];
        +  const mz_uint16 *s = (const mz_uint16*)(d->m_dict + pos), *p, *q;
        +  mz_uint16 c01 = TDEFL_READ_UNALIGNED_WORD(&d->m_dict[pos + match_len - 1]), s01 = TDEFL_READ_UNALIGNED_WORD(s);
        +  MZ_ASSERT(max_match_len <= TDEFL_MAX_MATCH_LEN); if (max_match_len <= match_len) return;
        +  for ( ; ; )
        +  {
        +    for ( ; ; )
        +    {
        +      if (--num_probes_left == 0) return;
        +      #define TDEFL_PROBE \
        +        next_probe_pos = d->m_next[probe_pos]; \
        +        if ((!next_probe_pos) || ((dist = (mz_uint16)(lookahead_pos - next_probe_pos)) > max_dist)) return; \
        +        probe_pos = next_probe_pos & TDEFL_LZ_DICT_SIZE_MASK; \
        +        if (TDEFL_READ_UNALIGNED_WORD(&d->m_dict[probe_pos + match_len - 1]) == c01) break;
        +      TDEFL_PROBE; TDEFL_PROBE; TDEFL_PROBE;
        +    }
        +    if (!dist) break; q = (const mz_uint16*)(d->m_dict + probe_pos); if (TDEFL_READ_UNALIGNED_WORD(q) != s01) continue; p = s; probe_len = 32;
        +    do { } while ( (TDEFL_READ_UNALIGNED_WORD(++p) == TDEFL_READ_UNALIGNED_WORD(++q)) && (TDEFL_READ_UNALIGNED_WORD(++p) == TDEFL_READ_UNALIGNED_WORD(++q)) &&
        +                   (TDEFL_READ_UNALIGNED_WORD(++p) == TDEFL_READ_UNALIGNED_WORD(++q)) && (TDEFL_READ_UNALIGNED_WORD(++p) == TDEFL_READ_UNALIGNED_WORD(++q)) && (--probe_len > 0) );
        +    if (!probe_len)
        +    {
        +      *pMatch_dist = dist; *pMatch_len = MZ_MIN(max_match_len, TDEFL_MAX_MATCH_LEN); break;
        +    }
        +    else if ((probe_len = ((mz_uint)(p - s) * 2) + (mz_uint)(*(const mz_uint8*)p == *(const mz_uint8*)q)) > match_len)
        +    {
        +      *pMatch_dist = dist; if ((*pMatch_len = match_len = MZ_MIN(max_match_len, probe_len)) == max_match_len) break;
        +      c01 = TDEFL_READ_UNALIGNED_WORD(&d->m_dict[pos + match_len - 1]);
        +    }
        +  }
        +}
        +#else
        +static MZ_FORCEINLINE void tdefl_find_match(tdefl_compressor *d, mz_uint lookahead_pos, mz_uint max_dist, mz_uint max_match_len, mz_uint *pMatch_dist, mz_uint *pMatch_len)
        +{
        +  mz_uint dist, pos = lookahead_pos & TDEFL_LZ_DICT_SIZE_MASK, match_len = *pMatch_len, probe_pos = pos, next_probe_pos, probe_len;
        +  mz_uint num_probes_left = d->m_max_probes[match_len >= 32];
        +  const mz_uint8 *s = d->m_dict + pos, *p, *q;
        +  mz_uint8 c0 = d->m_dict[pos + match_len], c1 = d->m_dict[pos + match_len - 1];
        +  MZ_ASSERT(max_match_len <= TDEFL_MAX_MATCH_LEN); if (max_match_len <= match_len) return;
        +  for ( ; ; )
        +  {
        +    for ( ; ; )
        +    {
        +      if (--num_probes_left == 0) return;
        +      #define TDEFL_PROBE \
        +        next_probe_pos = d->m_next[probe_pos]; \
        +        if ((!next_probe_pos) || ((dist = (mz_uint16)(lookahead_pos - next_probe_pos)) > max_dist)) return; \
        +        probe_pos = next_probe_pos & TDEFL_LZ_DICT_SIZE_MASK; \
        +        if ((d->m_dict[probe_pos + match_len] == c0) && (d->m_dict[probe_pos + match_len - 1] == c1)) break;
        +      TDEFL_PROBE; TDEFL_PROBE; TDEFL_PROBE;
        +    }
        +    if (!dist) break; p = s; q = d->m_dict + probe_pos; for (probe_len = 0; probe_len < max_match_len; probe_len++) if (*p++ != *q++) break;
        +    if (probe_len > match_len)
        +    {
        +      *pMatch_dist = dist; if ((*pMatch_len = match_len = probe_len) == max_match_len) return;
        +      c0 = d->m_dict[pos + match_len]; c1 = d->m_dict[pos + match_len - 1];
        +    }
        +  }
        +}
        +#endif // #if MINIZ_USE_UNALIGNED_LOADS_AND_STORES
        +
        +#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN
        +static mz_bool tdefl_compress_fast(tdefl_compressor *d)
        +{
        +  // Faster, minimally featured LZRW1-style match+parse loop with better register utilization. Intended for applications where raw throughput is valued more highly than ratio.
        +  mz_uint lookahead_pos = d->m_lookahead_pos, lookahead_size = d->m_lookahead_size, dict_size = d->m_dict_size, total_lz_bytes = d->m_total_lz_bytes, num_flags_left = d->m_num_flags_left;
        +  mz_uint8 *pLZ_code_buf = d->m_pLZ_code_buf, *pLZ_flags = d->m_pLZ_flags;
        +  mz_uint cur_pos = lookahead_pos & TDEFL_LZ_DICT_SIZE_MASK;
        +
        +  while ((d->m_src_buf_left) || ((d->m_flush) && (lookahead_size)))
        +  {
        +    const mz_uint TDEFL_COMP_FAST_LOOKAHEAD_SIZE = 4096;
        +    mz_uint dst_pos = (lookahead_pos + lookahead_size) & TDEFL_LZ_DICT_SIZE_MASK;
        +    mz_uint num_bytes_to_process = (mz_uint)MZ_MIN(d->m_src_buf_left, TDEFL_COMP_FAST_LOOKAHEAD_SIZE - lookahead_size);
        +    d->m_src_buf_left -= num_bytes_to_process;
        +    lookahead_size += num_bytes_to_process;
        +
        +    while (num_bytes_to_process)
        +    {
        +      mz_uint32 n = MZ_MIN(TDEFL_LZ_DICT_SIZE - dst_pos, num_bytes_to_process);
        +      memcpy(d->m_dict + dst_pos, d->m_pSrc, n);
        +      if (dst_pos < (TDEFL_MAX_MATCH_LEN - 1))
        +        memcpy(d->m_dict + TDEFL_LZ_DICT_SIZE + dst_pos, d->m_pSrc, MZ_MIN(n, (TDEFL_MAX_MATCH_LEN - 1) - dst_pos));
        +      d->m_pSrc += n;
        +      dst_pos = (dst_pos + n) & TDEFL_LZ_DICT_SIZE_MASK;
        +      num_bytes_to_process -= n;
        +    }
        +
        +    dict_size = MZ_MIN(TDEFL_LZ_DICT_SIZE - lookahead_size, dict_size);
        +    if ((!d->m_flush) && (lookahead_size < TDEFL_COMP_FAST_LOOKAHEAD_SIZE)) break;
        +
        +    while (lookahead_size >= 4)
        +    {
        +      mz_uint cur_match_dist, cur_match_len = 1;
        +      mz_uint8 *pCur_dict = d->m_dict + cur_pos;
        +      mz_uint first_trigram = (*(const mz_uint32 *)pCur_dict) & 0xFFFFFF;
        +      mz_uint hash = (first_trigram ^ (first_trigram >> (24 - (TDEFL_LZ_HASH_BITS - 8)))) & TDEFL_LEVEL1_HASH_SIZE_MASK;
        +      mz_uint probe_pos = d->m_hash[hash];
        +      d->m_hash[hash] = (mz_uint16)lookahead_pos;
        +
        +      if (((cur_match_dist = (mz_uint16)(lookahead_pos - probe_pos)) <= dict_size) && ((*(const mz_uint32 *)(d->m_dict + (probe_pos &= TDEFL_LZ_DICT_SIZE_MASK)) & 0xFFFFFF) == first_trigram))
        +      {
        +        const mz_uint16 *p = (const mz_uint16 *)pCur_dict;
        +        const mz_uint16 *q = (const mz_uint16 *)(d->m_dict + probe_pos);
        +        mz_uint32 probe_len = 32;
        +        do { } while ( (TDEFL_READ_UNALIGNED_WORD(++p) == TDEFL_READ_UNALIGNED_WORD(++q)) && (TDEFL_READ_UNALIGNED_WORD(++p) == TDEFL_READ_UNALIGNED_WORD(++q)) &&
        +          (TDEFL_READ_UNALIGNED_WORD(++p) == TDEFL_READ_UNALIGNED_WORD(++q)) && (TDEFL_READ_UNALIGNED_WORD(++p) == TDEFL_READ_UNALIGNED_WORD(++q)) && (--probe_len > 0) );
        +        cur_match_len = ((mz_uint)(p - (const mz_uint16 *)pCur_dict) * 2) + (mz_uint)(*(const mz_uint8 *)p == *(const mz_uint8 *)q);
        +        if (!probe_len)
        +          cur_match_len = cur_match_dist ? TDEFL_MAX_MATCH_LEN : 0;
        +
        +        if ((cur_match_len < TDEFL_MIN_MATCH_LEN) || ((cur_match_len == TDEFL_MIN_MATCH_LEN) && (cur_match_dist >= 8U*1024U)))
        +        {
        +          cur_match_len = 1;
        +          *pLZ_code_buf++ = (mz_uint8)first_trigram;
        +          *pLZ_flags = (mz_uint8)(*pLZ_flags >> 1);
        +          d->m_huff_count[0][(mz_uint8)first_trigram]++;
        +        }
        +        else
        +        {
        +          mz_uint32 s0, s1;
        +          cur_match_len = MZ_MIN(cur_match_len, lookahead_size);
        +
        +          MZ_ASSERT((cur_match_len >= TDEFL_MIN_MATCH_LEN) && (cur_match_dist >= 1) && (cur_match_dist <= TDEFL_LZ_DICT_SIZE));
        +
        +          cur_match_dist--;
        +
        +          pLZ_code_buf[0] = (mz_uint8)(cur_match_len - TDEFL_MIN_MATCH_LEN);
        +          *(mz_uint16 *)(&pLZ_code_buf[1]) = (mz_uint16)cur_match_dist;
        +          pLZ_code_buf += 3;
        +          *pLZ_flags = (mz_uint8)((*pLZ_flags >> 1) | 0x80);
        +
        +          s0 = s_tdefl_small_dist_sym[cur_match_dist & 511];
        +          s1 = s_tdefl_large_dist_sym[cur_match_dist >> 8];
        +          d->m_huff_count[1][(cur_match_dist < 512) ? s0 : s1]++;
        +
        +          d->m_huff_count[0][s_tdefl_len_sym[cur_match_len - TDEFL_MIN_MATCH_LEN]]++;
        +        }
        +      }
        +      else
        +      {
        +        *pLZ_code_buf++ = (mz_uint8)first_trigram;
        +        *pLZ_flags = (mz_uint8)(*pLZ_flags >> 1);
        +        d->m_huff_count[0][(mz_uint8)first_trigram]++;
        +      }
        +
        +      if (--num_flags_left == 0) { num_flags_left = 8; pLZ_flags = pLZ_code_buf++; }
        +
        +      total_lz_bytes += cur_match_len;
        +      lookahead_pos += cur_match_len;
        +      dict_size = MZ_MIN(dict_size + cur_match_len, TDEFL_LZ_DICT_SIZE);
        +      cur_pos = (cur_pos + cur_match_len) & TDEFL_LZ_DICT_SIZE_MASK;
        +      MZ_ASSERT(lookahead_size >= cur_match_len);
        +      lookahead_size -= cur_match_len;
        +
        +      if (pLZ_code_buf > &d->m_lz_code_buf[TDEFL_LZ_CODE_BUF_SIZE - 8])
        +      {
        +        int n;
        +        d->m_lookahead_pos = lookahead_pos; d->m_lookahead_size = lookahead_size; d->m_dict_size = dict_size;
        +        d->m_total_lz_bytes = total_lz_bytes; d->m_pLZ_code_buf = pLZ_code_buf; d->m_pLZ_flags = pLZ_flags; d->m_num_flags_left = num_flags_left;
        +        if ((n = tdefl_flush_block(d, 0)) != 0)
        +          return (n < 0) ? MZ_FALSE : MZ_TRUE;
        +        total_lz_bytes = d->m_total_lz_bytes; pLZ_code_buf = d->m_pLZ_code_buf; pLZ_flags = d->m_pLZ_flags; num_flags_left = d->m_num_flags_left;
        +      }
        +    }
        +
        +    while (lookahead_size)
        +    {
        +      mz_uint8 lit = d->m_dict[cur_pos];
        +
        +      total_lz_bytes++;
        +      *pLZ_code_buf++ = lit;
        +      *pLZ_flags = (mz_uint8)(*pLZ_flags >> 1);
        +      if (--num_flags_left == 0) { num_flags_left = 8; pLZ_flags = pLZ_code_buf++; }
        +
        +      d->m_huff_count[0][lit]++;
        +
        +      lookahead_pos++;
        +      dict_size = MZ_MIN(dict_size + 1, TDEFL_LZ_DICT_SIZE);
        +      cur_pos = (cur_pos + 1) & TDEFL_LZ_DICT_SIZE_MASK;
        +      lookahead_size--;
        +
        +      if (pLZ_code_buf > &d->m_lz_code_buf[TDEFL_LZ_CODE_BUF_SIZE - 8])
        +      {
        +        int n;
        +        d->m_lookahead_pos = lookahead_pos; d->m_lookahead_size = lookahead_size; d->m_dict_size = dict_size;
        +        d->m_total_lz_bytes = total_lz_bytes; d->m_pLZ_code_buf = pLZ_code_buf; d->m_pLZ_flags = pLZ_flags; d->m_num_flags_left = num_flags_left;
        +        if ((n = tdefl_flush_block(d, 0)) != 0)
        +          return (n < 0) ? MZ_FALSE : MZ_TRUE;
        +        total_lz_bytes = d->m_total_lz_bytes; pLZ_code_buf = d->m_pLZ_code_buf; pLZ_flags = d->m_pLZ_flags; num_flags_left = d->m_num_flags_left;
        +      }
        +    }
        +  }
        +
        +  d->m_lookahead_pos = lookahead_pos; d->m_lookahead_size = lookahead_size; d->m_dict_size = dict_size;
        +  d->m_total_lz_bytes = total_lz_bytes; d->m_pLZ_code_buf = pLZ_code_buf; d->m_pLZ_flags = pLZ_flags; d->m_num_flags_left = num_flags_left;
        +  return MZ_TRUE;
        +}
        +#endif // MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN
        +
        +static MZ_FORCEINLINE void tdefl_record_literal(tdefl_compressor *d, mz_uint8 lit)
        +{
        +  d->m_total_lz_bytes++;
        +  *d->m_pLZ_code_buf++ = lit;
        +  *d->m_pLZ_flags = (mz_uint8)(*d->m_pLZ_flags >> 1); if (--d->m_num_flags_left == 0) { d->m_num_flags_left = 8; d->m_pLZ_flags = d->m_pLZ_code_buf++; }
        +  d->m_huff_count[0][lit]++;
        +}
        +
        +static MZ_FORCEINLINE void tdefl_record_match(tdefl_compressor *d, mz_uint match_len, mz_uint match_dist)
        +{
        +  mz_uint32 s0, s1;
        +
        +  MZ_ASSERT((match_len >= TDEFL_MIN_MATCH_LEN) && (match_dist >= 1) && (match_dist <= TDEFL_LZ_DICT_SIZE));
        +
        +  d->m_total_lz_bytes += match_len;
        +
        +  d->m_pLZ_code_buf[0] = (mz_uint8)(match_len - TDEFL_MIN_MATCH_LEN);
        +
        +  match_dist -= 1;
        +  d->m_pLZ_code_buf[1] = (mz_uint8)(match_dist & 0xFF);
        +  d->m_pLZ_code_buf[2] = (mz_uint8)(match_dist >> 8); d->m_pLZ_code_buf += 3;
        +
        +  *d->m_pLZ_flags = (mz_uint8)((*d->m_pLZ_flags >> 1) | 0x80); if (--d->m_num_flags_left == 0) { d->m_num_flags_left = 8; d->m_pLZ_flags = d->m_pLZ_code_buf++; }
        +
        +  s0 = s_tdefl_small_dist_sym[match_dist & 511]; s1 = s_tdefl_large_dist_sym[(match_dist >> 8) & 127];
        +  d->m_huff_count[1][(match_dist < 512) ? s0 : s1]++;
        +
        +  if (match_len >= TDEFL_MIN_MATCH_LEN) d->m_huff_count[0][s_tdefl_len_sym[match_len - TDEFL_MIN_MATCH_LEN]]++;
        +}
        +
        +static mz_bool tdefl_compress_normal(tdefl_compressor *d)
        +{
        +  const mz_uint8 *pSrc = d->m_pSrc; size_t src_buf_left = d->m_src_buf_left;
        +  tdefl_flush flush = d->m_flush;
        +
        +  while ((src_buf_left) || ((flush) && (d->m_lookahead_size)))
        +  {
        +    mz_uint len_to_move, cur_match_dist, cur_match_len, cur_pos;
        +    // Update dictionary and hash chains. Keeps the lookahead size equal to TDEFL_MAX_MATCH_LEN.
        +    if ((d->m_lookahead_size + d->m_dict_size) >= (TDEFL_MIN_MATCH_LEN - 1))
        +    {
        +      mz_uint dst_pos = (d->m_lookahead_pos + d->m_lookahead_size) & TDEFL_LZ_DICT_SIZE_MASK, ins_pos = d->m_lookahead_pos + d->m_lookahead_size - 2;
        +      mz_uint hash = (d->m_dict[ins_pos & TDEFL_LZ_DICT_SIZE_MASK] << TDEFL_LZ_HASH_SHIFT) ^ d->m_dict[(ins_pos + 1) & TDEFL_LZ_DICT_SIZE_MASK];
        +      mz_uint num_bytes_to_process = (mz_uint)MZ_MIN(src_buf_left, TDEFL_MAX_MATCH_LEN - d->m_lookahead_size);
        +      const mz_uint8 *pSrc_end = pSrc + num_bytes_to_process;
        +      src_buf_left -= num_bytes_to_process;
        +      d->m_lookahead_size += num_bytes_to_process;
        +      while (pSrc != pSrc_end)
        +      {
        +        mz_uint8 c = *pSrc++; d->m_dict[dst_pos] = c; if (dst_pos < (TDEFL_MAX_MATCH_LEN - 1)) d->m_dict[TDEFL_LZ_DICT_SIZE + dst_pos] = c;
        +        hash = ((hash << TDEFL_LZ_HASH_SHIFT) ^ c) & (TDEFL_LZ_HASH_SIZE - 1);
        +        d->m_next[ins_pos & TDEFL_LZ_DICT_SIZE_MASK] = d->m_hash[hash]; d->m_hash[hash] = (mz_uint16)(ins_pos);
        +        dst_pos = (dst_pos + 1) & TDEFL_LZ_DICT_SIZE_MASK; ins_pos++;
        +      }
        +    }
        +    else
        +    {
        +      while ((src_buf_left) && (d->m_lookahead_size < TDEFL_MAX_MATCH_LEN))
        +      {
        +        mz_uint8 c = *pSrc++;
        +        mz_uint dst_pos = (d->m_lookahead_pos + d->m_lookahead_size) & TDEFL_LZ_DICT_SIZE_MASK;
        +        src_buf_left--;
        +        d->m_dict[dst_pos] = c;
        +        if (dst_pos < (TDEFL_MAX_MATCH_LEN - 1))
        +          d->m_dict[TDEFL_LZ_DICT_SIZE + dst_pos] = c;
        +        if ((++d->m_lookahead_size + d->m_dict_size) >= TDEFL_MIN_MATCH_LEN)
        +        {
        +          mz_uint ins_pos = d->m_lookahead_pos + (d->m_lookahead_size - 1) - 2;
        +          mz_uint hash = ((d->m_dict[ins_pos & TDEFL_LZ_DICT_SIZE_MASK] << (TDEFL_LZ_HASH_SHIFT * 2)) ^ (d->m_dict[(ins_pos + 1) & TDEFL_LZ_DICT_SIZE_MASK] << TDEFL_LZ_HASH_SHIFT) ^ c) & (TDEFL_LZ_HASH_SIZE - 1);
        +          d->m_next[ins_pos & TDEFL_LZ_DICT_SIZE_MASK] = d->m_hash[hash]; d->m_hash[hash] = (mz_uint16)(ins_pos);
        +        }
        +      }
        +    }
        +    d->m_dict_size = MZ_MIN(TDEFL_LZ_DICT_SIZE - d->m_lookahead_size, d->m_dict_size);
        +    if ((!flush) && (d->m_lookahead_size < TDEFL_MAX_MATCH_LEN))
        +      break;
        +
        +    // Simple lazy/greedy parsing state machine.
        +    len_to_move = 1; cur_match_dist = 0; cur_match_len = d->m_saved_match_len ? d->m_saved_match_len : (TDEFL_MIN_MATCH_LEN - 1); cur_pos = d->m_lookahead_pos & TDEFL_LZ_DICT_SIZE_MASK;
        +    if (d->m_flags & (TDEFL_RLE_MATCHES | TDEFL_FORCE_ALL_RAW_BLOCKS))
        +    {
        +      if ((d->m_dict_size) && (!(d->m_flags & TDEFL_FORCE_ALL_RAW_BLOCKS)))
        +      {
        +        mz_uint8 c = d->m_dict[(cur_pos - 1) & TDEFL_LZ_DICT_SIZE_MASK];
        +        cur_match_len = 0; while (cur_match_len < d->m_lookahead_size) { if (d->m_dict[cur_pos + cur_match_len] != c) break; cur_match_len++; }
        +        if (cur_match_len < TDEFL_MIN_MATCH_LEN) cur_match_len = 0; else cur_match_dist = 1;
        +      }
        +    }
        +    else
        +    {
        +      tdefl_find_match(d, d->m_lookahead_pos, d->m_dict_size, d->m_lookahead_size, &cur_match_dist, &cur_match_len);
        +    }
        +    if (((cur_match_len == TDEFL_MIN_MATCH_LEN) && (cur_match_dist >= 8U*1024U)) || (cur_pos == cur_match_dist) || ((d->m_flags & TDEFL_FILTER_MATCHES) && (cur_match_len <= 5)))
        +    {
        +      cur_match_dist = cur_match_len = 0;
        +    }
        +    if (d->m_saved_match_len)
        +    {
        +      if (cur_match_len > d->m_saved_match_len)
        +      {
        +        tdefl_record_literal(d, (mz_uint8)d->m_saved_lit);
        +        if (cur_match_len >= 128)
        +        {
        +          tdefl_record_match(d, cur_match_len, cur_match_dist);
        +          d->m_saved_match_len = 0; len_to_move = cur_match_len;
        +        }
        +        else
        +        {
        +          d->m_saved_lit = d->m_dict[cur_pos]; d->m_saved_match_dist = cur_match_dist; d->m_saved_match_len = cur_match_len;
        +        }
        +      }
        +      else
        +      {
        +        tdefl_record_match(d, d->m_saved_match_len, d->m_saved_match_dist);
        +        len_to_move = d->m_saved_match_len - 1; d->m_saved_match_len = 0;
        +      }
        +    }
        +    else if (!cur_match_dist)
        +      tdefl_record_literal(d, d->m_dict[MZ_MIN(cur_pos, sizeof(d->m_dict) - 1)]);
        +    else if ((d->m_greedy_parsing) || (d->m_flags & TDEFL_RLE_MATCHES) || (cur_match_len >= 128))
        +    {
        +      tdefl_record_match(d, cur_match_len, cur_match_dist);
        +      len_to_move = cur_match_len;
        +    }
        +    else
        +    {
        +      d->m_saved_lit = d->m_dict[MZ_MIN(cur_pos, sizeof(d->m_dict) - 1)]; d->m_saved_match_dist = cur_match_dist; d->m_saved_match_len = cur_match_len;
        +    }
        +    // Move the lookahead forward by len_to_move bytes.
        +    d->m_lookahead_pos += len_to_move;
        +    MZ_ASSERT(d->m_lookahead_size >= len_to_move);
        +    d->m_lookahead_size -= len_to_move;
        +    d->m_dict_size = MZ_MIN(d->m_dict_size + len_to_move, TDEFL_LZ_DICT_SIZE);
        +    // Check if it's time to flush the current LZ codes to the internal output buffer.
        +    if ( (d->m_pLZ_code_buf > &d->m_lz_code_buf[TDEFL_LZ_CODE_BUF_SIZE - 8]) ||
        +         ( (d->m_total_lz_bytes > 31*1024) && (((((mz_uint)(d->m_pLZ_code_buf - d->m_lz_code_buf) * 115) >> 7) >= d->m_total_lz_bytes) || (d->m_flags & TDEFL_FORCE_ALL_RAW_BLOCKS))) )
        +    {
        +      int n;
        +      d->m_pSrc = pSrc; d->m_src_buf_left = src_buf_left;
        +      if ((n = tdefl_flush_block(d, 0)) != 0)
        +        return (n < 0) ? MZ_FALSE : MZ_TRUE;
        +    }
        +  }
        +
        +  d->m_pSrc = pSrc; d->m_src_buf_left = src_buf_left;
        +  return MZ_TRUE;
        +}
        +
        +static tdefl_status tdefl_flush_output_buffer(tdefl_compressor *d)
        +{
        +  if (d->m_pIn_buf_size)
        +  {
        +    *d->m_pIn_buf_size = d->m_pSrc - (const mz_uint8 *)d->m_pIn_buf;
        +  }
        +
        +  if (d->m_pOut_buf_size)
        +  {
        +    size_t n = MZ_MIN(*d->m_pOut_buf_size - d->m_out_buf_ofs, d->m_output_flush_remaining);
        +    memcpy((mz_uint8 *)d->m_pOut_buf + d->m_out_buf_ofs, d->m_output_buf + d->m_output_flush_ofs, n);
        +    d->m_output_flush_ofs += (mz_uint)n;
        +    d->m_output_flush_remaining -= (mz_uint)n;
        +    d->m_out_buf_ofs += n;
        +
        +    *d->m_pOut_buf_size = d->m_out_buf_ofs;
        +  }
        +
        +  return (d->m_finished && !d->m_output_flush_remaining) ? TDEFL_STATUS_DONE : TDEFL_STATUS_OKAY;
        +}
        +
        +tdefl_status tdefl_compress(tdefl_compressor *d, const void *pIn_buf, size_t *pIn_buf_size, void *pOut_buf, size_t *pOut_buf_size, tdefl_flush flush)
        +{
        +  if (!d)
        +  {
        +    if (pIn_buf_size) *pIn_buf_size = 0;
        +    if (pOut_buf_size) *pOut_buf_size = 0;
        +    return TDEFL_STATUS_BAD_PARAM;
        +  }
        +
        +  d->m_pIn_buf = pIn_buf; d->m_pIn_buf_size = pIn_buf_size;
        +  d->m_pOut_buf = pOut_buf; d->m_pOut_buf_size = pOut_buf_size;
        +  d->m_pSrc = (const mz_uint8 *)(pIn_buf); d->m_src_buf_left = pIn_buf_size ? *pIn_buf_size : 0;
        +  d->m_out_buf_ofs = 0;
        +  d->m_flush = flush;
        +
        +  if ( ((d->m_pPut_buf_func != NULL) == ((pOut_buf != NULL) || (pOut_buf_size != NULL))) || (d->m_prev_return_status != TDEFL_STATUS_OKAY) ||
        +        (d->m_wants_to_finish && (flush != TDEFL_FINISH)) || (pIn_buf_size && *pIn_buf_size && !pIn_buf) || (pOut_buf_size && *pOut_buf_size && !pOut_buf) )
        +  {
        +    if (pIn_buf_size) *pIn_buf_size = 0;
        +    if (pOut_buf_size) *pOut_buf_size = 0;
        +    return (d->m_prev_return_status = TDEFL_STATUS_BAD_PARAM);
        +  }
        +  d->m_wants_to_finish |= (flush == TDEFL_FINISH);
        +
        +  if ((d->m_output_flush_remaining) || (d->m_finished))
        +    return (d->m_prev_return_status = tdefl_flush_output_buffer(d));
        +
        +#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN
        +  if (((d->m_flags & TDEFL_MAX_PROBES_MASK) == 1) &&
        +      ((d->m_flags & TDEFL_GREEDY_PARSING_FLAG) != 0) &&
        +      ((d->m_flags & (TDEFL_FILTER_MATCHES | TDEFL_FORCE_ALL_RAW_BLOCKS | TDEFL_RLE_MATCHES)) == 0))
        +  {
        +    if (!tdefl_compress_fast(d))
        +      return d->m_prev_return_status;
        +  }
        +  else
        +#endif // #if MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN
        +  {
        +    if (!tdefl_compress_normal(d))
        +      return d->m_prev_return_status;
        +  }
        +
        +  if ((d->m_flags & (TDEFL_WRITE_ZLIB_HEADER | TDEFL_COMPUTE_ADLER32)) && (pIn_buf))
        +    d->m_adler32 = (mz_uint32)mz_adler32(d->m_adler32, (const mz_uint8 *)pIn_buf, d->m_pSrc - (const mz_uint8 *)pIn_buf);
        +
        +  if ((flush) && (!d->m_lookahead_size) && (!d->m_src_buf_left) && (!d->m_output_flush_remaining))
        +  {
        +    if (tdefl_flush_block(d, flush) < 0)
        +      return d->m_prev_return_status;
        +    d->m_finished = (flush == TDEFL_FINISH);
        +    if (flush == TDEFL_FULL_FLUSH) { MZ_CLEAR_OBJ(d->m_hash); MZ_CLEAR_OBJ(d->m_next); d->m_dict_size = 0; }
        +  }
        +
        +  return (d->m_prev_return_status = tdefl_flush_output_buffer(d));
        +}
        +
        +tdefl_status tdefl_compress_buffer(tdefl_compressor *d, const void *pIn_buf, size_t in_buf_size, tdefl_flush flush)
        +{
        +  MZ_ASSERT(d->m_pPut_buf_func); return tdefl_compress(d, pIn_buf, &in_buf_size, NULL, NULL, flush);
        +}
        +
        +tdefl_status tdefl_init(tdefl_compressor *d, tdefl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags)
        +{
        +  d->m_pPut_buf_func = pPut_buf_func; d->m_pPut_buf_user = pPut_buf_user;
        +  d->m_flags = (mz_uint)(flags); d->m_max_probes[0] = 1 + ((flags & 0xFFF) + 2) / 3; d->m_greedy_parsing = (flags & TDEFL_GREEDY_PARSING_FLAG) != 0;
        +  d->m_max_probes[1] = 1 + (((flags & 0xFFF) >> 2) + 2) / 3;
        +  if (!(flags & TDEFL_NONDETERMINISTIC_PARSING_FLAG)) MZ_CLEAR_OBJ(d->m_hash);
        +  d->m_lookahead_pos = d->m_lookahead_size = d->m_dict_size = d->m_total_lz_bytes = d->m_lz_code_buf_dict_pos = d->m_bits_in = 0;
        +  d->m_output_flush_ofs = d->m_output_flush_remaining = d->m_finished = d->m_block_index = d->m_bit_buffer = d->m_wants_to_finish = 0;
        +  d->m_pLZ_code_buf = d->m_lz_code_buf + 1; d->m_pLZ_flags = d->m_lz_code_buf; d->m_num_flags_left = 8;
        +  d->m_pOutput_buf = d->m_output_buf; d->m_pOutput_buf_end = d->m_output_buf; d->m_prev_return_status = TDEFL_STATUS_OKAY;
        +  d->m_saved_match_dist = d->m_saved_match_len = d->m_saved_lit = 0; d->m_adler32 = 1;
        +  d->m_pIn_buf = NULL; d->m_pOut_buf = NULL;
        +  d->m_pIn_buf_size = NULL; d->m_pOut_buf_size = NULL;
        +  d->m_flush = TDEFL_NO_FLUSH; d->m_pSrc = NULL; d->m_src_buf_left = 0; d->m_out_buf_ofs = 0;
        +  memset(&d->m_huff_count[0][0], 0, sizeof(d->m_huff_count[0][0]) * TDEFL_MAX_HUFF_SYMBOLS_0);
        +  memset(&d->m_huff_count[1][0], 0, sizeof(d->m_huff_count[1][0]) * TDEFL_MAX_HUFF_SYMBOLS_1);
        +  return TDEFL_STATUS_OKAY;
        +}
        +
        +tdefl_status tdefl_get_prev_return_status(tdefl_compressor *d)
        +{
        +  return d->m_prev_return_status;
        +}
        +
        +mz_uint32 tdefl_get_adler32(tdefl_compressor *d)
        +{
        +  return d->m_adler32;
        +}
        +
        +mz_bool tdefl_compress_mem_to_output(const void *pBuf, size_t buf_len, tdefl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags)
        +{
        +  tdefl_compressor *pComp; mz_bool succeeded; if (((buf_len) && (!pBuf)) || (!pPut_buf_func)) return MZ_FALSE;
        +  pComp = (tdefl_compressor*)MZ_MALLOC(sizeof(tdefl_compressor)); if (!pComp) return MZ_FALSE;
        +  succeeded = (tdefl_init(pComp, pPut_buf_func, pPut_buf_user, flags) == TDEFL_STATUS_OKAY);
        +  succeeded = succeeded && (tdefl_compress_buffer(pComp, pBuf, buf_len, TDEFL_FINISH) == TDEFL_STATUS_DONE);
        +  MZ_FREE(pComp); return succeeded;
        +}
        +
        +typedef struct
        +{
        +  size_t m_size, m_capacity;
        +  mz_uint8 *m_pBuf;
        +  mz_bool m_expandable;
        +} tdefl_output_buffer;
        +
        +static mz_bool tdefl_output_buffer_putter(const void *pBuf, int len, void *pUser)
        +{
        +  tdefl_output_buffer *p = (tdefl_output_buffer *)pUser;
        +  size_t new_size = p->m_size + len;
        +  if (new_size > p->m_capacity)
        +  {
        +    size_t new_capacity = p->m_capacity; mz_uint8 *pNew_buf; if (!p->m_expandable) return MZ_FALSE;
        +    do { new_capacity = MZ_MAX(128U, new_capacity << 1U); } while (new_size > new_capacity);
        +    pNew_buf = (mz_uint8*)MZ_REALLOC(p->m_pBuf, new_capacity); if (!pNew_buf) return MZ_FALSE;
        +    p->m_pBuf = pNew_buf; p->m_capacity = new_capacity;
        +  }
        +  memcpy((mz_uint8*)p->m_pBuf + p->m_size, pBuf, len); p->m_size = new_size;
        +  return MZ_TRUE;
        +}
        +
        +void *tdefl_compress_mem_to_heap(const void *pSrc_buf, size_t src_buf_len, size_t *pOut_len, int flags)
        +{
        +  tdefl_output_buffer out_buf; MZ_CLEAR_OBJ(out_buf);
        +  if (!pOut_len) return MZ_FALSE; else *pOut_len = 0;
        +  out_buf.m_expandable = MZ_TRUE;
        +  if (!tdefl_compress_mem_to_output(pSrc_buf, src_buf_len, tdefl_output_buffer_putter, &out_buf, flags)) return NULL;
        +  *pOut_len = out_buf.m_size; return out_buf.m_pBuf;
        +}
        +
        +size_t tdefl_compress_mem_to_mem(void *pOut_buf, size_t out_buf_len, const void *pSrc_buf, size_t src_buf_len, int flags)
        +{
        +  tdefl_output_buffer out_buf; MZ_CLEAR_OBJ(out_buf);
        +  if (!pOut_buf) return 0;
        +  out_buf.m_pBuf = (mz_uint8*)pOut_buf; out_buf.m_capacity = out_buf_len;
        +  if (!tdefl_compress_mem_to_output(pSrc_buf, src_buf_len, tdefl_output_buffer_putter, &out_buf, flags)) return 0;
        +  return out_buf.m_size;
        +}
        +
        +#ifndef MINIZ_NO_ZLIB_APIS
        +static const mz_uint s_tdefl_num_probes[11] = { 0, 1, 6, 32,  16, 32, 128, 256,  512, 768, 1500 };
        +
        +// level may actually range from [0,10] (10 is a "hidden" max level, where we want a bit more compression and it's fine if throughput to fall off a cliff on some files).
        +mz_uint tdefl_create_comp_flags_from_zip_params(int level, int window_bits, int strategy)
        +{
        +  mz_uint comp_flags = s_tdefl_num_probes[(level >= 0) ? MZ_MIN(10, level) : MZ_DEFAULT_LEVEL] | ((level <= 3) ? TDEFL_GREEDY_PARSING_FLAG : 0);
        +  if (window_bits > 0) comp_flags |= TDEFL_WRITE_ZLIB_HEADER;
        +
        +  if (!level) comp_flags |= TDEFL_FORCE_ALL_RAW_BLOCKS;
        +  else if (strategy == MZ_FILTERED) comp_flags |= TDEFL_FILTER_MATCHES;
        +  else if (strategy == MZ_HUFFMAN_ONLY) comp_flags &= ~TDEFL_MAX_PROBES_MASK;
        +  else if (strategy == MZ_FIXED) comp_flags |= TDEFL_FORCE_ALL_STATIC_BLOCKS;
        +  else if (strategy == MZ_RLE) comp_flags |= TDEFL_RLE_MATCHES;
        +
        +  return comp_flags;
        +}
        +#endif //MINIZ_NO_ZLIB_APIS
        +
        +#ifdef _MSC_VER
        +#pragma warning (push)
        +#pragma warning (disable:4204) // nonstandard extension used : non-constant aggregate initializer (also supported by GNU C and C99, so no big deal)
        +#endif
        +
        +// Simple PNG writer function by Alex Evans, 2011. Released into the public domain: https://gist.github.com/908299, more context at
        +// http://altdevblogaday.org/2011/04/06/a-smaller-jpg-encoder/.
        +// This is actually a modification of Alex's original code so PNG files generated by this function pass pngcheck.
        +void *tdefl_write_image_to_png_file_in_memory_ex(const void *pImage, int w, int h, int num_chans, size_t *pLen_out, mz_uint level, mz_bool flip)
        +{
        +  // Using a local copy of this array here in case MINIZ_NO_ZLIB_APIS was defined.
        +  static const mz_uint s_tdefl_png_num_probes[11] = { 0, 1, 6, 32,  16, 32, 128, 256,  512, 768, 1500 };
        +  tdefl_compressor *pComp = (tdefl_compressor *)MZ_MALLOC(sizeof(tdefl_compressor)); tdefl_output_buffer out_buf; int i, bpl = w * num_chans, y, z; mz_uint32 c; *pLen_out = 0;
        +  if (!pComp) return NULL;
        +  MZ_CLEAR_OBJ(out_buf); out_buf.m_expandable = MZ_TRUE; out_buf.m_capacity = 57+MZ_MAX(64, (1+bpl)*h); if (NULL == (out_buf.m_pBuf = (mz_uint8*)MZ_MALLOC(out_buf.m_capacity))) { MZ_FREE(pComp); return NULL; }
        +  // write dummy header
        +  for (z = 41; z; --z) tdefl_output_buffer_putter(&z, 1, &out_buf);
        +  // compress image data
        +  tdefl_init(pComp, tdefl_output_buffer_putter, &out_buf, s_tdefl_png_num_probes[MZ_MIN(10, level)] | TDEFL_WRITE_ZLIB_HEADER);
        +  for (y = 0; y < h; ++y) { tdefl_compress_buffer(pComp, &z, 1, TDEFL_NO_FLUSH); tdefl_compress_buffer(pComp, (mz_uint8*)pImage + (flip ? (h - 1 - y) : y) * bpl, bpl, TDEFL_NO_FLUSH); }
        +  if (tdefl_compress_buffer(pComp, NULL, 0, TDEFL_FINISH) != TDEFL_STATUS_DONE) { MZ_FREE(pComp); MZ_FREE(out_buf.m_pBuf); return NULL; }
        +  // write real header
        +  *pLen_out = out_buf.m_size-41;
        +  {
        +    static const mz_uint8 chans[] = {0x00, 0x00, 0x04, 0x02, 0x06};
        +    mz_uint8 pnghdr[41]={0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a,0x00,0x00,0x00,0x0d,0x49,0x48,0x44,0x52,
        +      0,0,(mz_uint8)(w>>8),(mz_uint8)w,0,0,(mz_uint8)(h>>8),(mz_uint8)h,8,chans[num_chans],0,0,0,0,0,0,0,
        +      (mz_uint8)(*pLen_out>>24),(mz_uint8)(*pLen_out>>16),(mz_uint8)(*pLen_out>>8),(mz_uint8)*pLen_out,0x49,0x44,0x41,0x54};
        +    c=(mz_uint32)mz_crc32(MZ_CRC32_INIT,pnghdr+12,17); for (i=0; i<4; ++i, c<<=8) ((mz_uint8*)(pnghdr+29))[i]=(mz_uint8)(c>>24);
        +    memcpy(out_buf.m_pBuf, pnghdr, 41);
        +  }
        +  // write footer (IDAT CRC-32, followed by IEND chunk)
        +  if (!tdefl_output_buffer_putter("\0\0\0\0\0\0\0\0\x49\x45\x4e\x44\xae\x42\x60\x82", 16, &out_buf)) { *pLen_out = 0; MZ_FREE(pComp); MZ_FREE(out_buf.m_pBuf); return NULL; }
        +  c = (mz_uint32)mz_crc32(MZ_CRC32_INIT,out_buf.m_pBuf+41-4, *pLen_out+4); for (i=0; i<4; ++i, c<<=8) (out_buf.m_pBuf+out_buf.m_size-16)[i] = (mz_uint8)(c >> 24);
        +  // compute final size of file, grab compressed data buffer and return
        +  *pLen_out += 57; MZ_FREE(pComp); return out_buf.m_pBuf;
        +}
        +void *tdefl_write_image_to_png_file_in_memory(const void *pImage, int w, int h, int num_chans, size_t *pLen_out)
        +{
        +  // Level 6 corresponds to TDEFL_DEFAULT_MAX_PROBES or MZ_DEFAULT_LEVEL (but we can't depend on MZ_DEFAULT_LEVEL being available in case the zlib API's where #defined out)
        +  return tdefl_write_image_to_png_file_in_memory_ex(pImage, w, h, num_chans, pLen_out, 6, MZ_FALSE);
        +}
        +
        +#ifdef _MSC_VER
        +#pragma warning (pop)
        +#endif
        +
        +// ------------------- .ZIP archive reading
        +
        +#ifndef MINIZ_NO_ARCHIVE_APIS
        +
        +#ifdef MINIZ_NO_STDIO
        +  #define MZ_FILE void *
        +#else
        +  #include <stdio.h>
        +  #include <sys/stat.h>
        +
        +  #if defined(_MSC_VER) || defined(__MINGW64__)
        +    static FILE *mz_fopen(const char *pFilename, const char *pMode)
        +    {
        +      FILE* pFile = NULL;
        +      fopen_s(&pFile, pFilename, pMode);
        +      return pFile;
        +    }
        +    static FILE *mz_freopen(const char *pPath, const char *pMode, FILE *pStream)
        +    {
        +      FILE* pFile = NULL;
        +      if (freopen_s(&pFile, pPath, pMode, pStream))
        +        return NULL;
        +      return pFile;
        +    }
        +    #ifndef MINIZ_NO_TIME
        +      #include <sys/utime.h>
        +    #endif
        +    #define MZ_FILE FILE
        +    #define MZ_FOPEN mz_fopen
        +    #define MZ_FCLOSE fclose
        +    #define MZ_FREAD fread
        +    #define MZ_FWRITE fwrite
        +    #define MZ_FTELL64 _ftelli64
        +    #define MZ_FSEEK64 _fseeki64
        +    #define MZ_FILE_STAT_STRUCT _stat
        +    #define MZ_FILE_STAT _stat
        +    #define MZ_FFLUSH fflush
        +    #define MZ_FREOPEN mz_freopen
        +    #define MZ_DELETE_FILE remove
        +  #elif defined(__MINGW32__)
        +    #ifndef MINIZ_NO_TIME
        +      #include <sys/utime.h>
        +    #endif
        +    #define MZ_FILE FILE
        +    #define MZ_FOPEN(f, m) fopen(f, m)
        +    #define MZ_FCLOSE fclose
        +    #define MZ_FREAD fread
        +    #define MZ_FWRITE fwrite
        +    #define MZ_FTELL64 ftello64
        +    #define MZ_FSEEK64 fseeko64
        +    #define MZ_FILE_STAT_STRUCT _stat
        +    #define MZ_FILE_STAT _stat
        +    #define MZ_FFLUSH fflush
        +    #define MZ_FREOPEN(f, m, s) freopen(f, m, s)
        +    #define MZ_DELETE_FILE remove
        +  #elif defined(__TINYC__)
        +    #ifndef MINIZ_NO_TIME
        +      #include <sys/utime.h>
        +    #endif
        +    #define MZ_FILE FILE
        +    #define MZ_FOPEN(f, m) fopen(f, m)
        +    #define MZ_FCLOSE fclose
        +    #define MZ_FREAD fread
        +    #define MZ_FWRITE fwrite
        +    #define MZ_FTELL64 ftell
        +    #define MZ_FSEEK64 fseek
        +    #define MZ_FILE_STAT_STRUCT stat
        +    #define MZ_FILE_STAT stat
        +    #define MZ_FFLUSH fflush
        +    #define MZ_FREOPEN(f, m, s) freopen(f, m, s)
        +    #define MZ_DELETE_FILE remove
        +  #elif defined(__GNUC__) && _LARGEFILE64_SOURCE
        +    #ifndef MINIZ_NO_TIME
        +      #include <utime.h>
        +    #endif
        +    #define MZ_FILE FILE
        +    #define MZ_FOPEN(f, m) fopen64(f, m)
        +    #define MZ_FCLOSE fclose
        +    #define MZ_FREAD fread
        +    #define MZ_FWRITE fwrite
        +    #define MZ_FTELL64 ftello64
        +    #define MZ_FSEEK64 fseeko64
        +    #define MZ_FILE_STAT_STRUCT stat64
        +    #define MZ_FILE_STAT stat64
        +    #define MZ_FFLUSH fflush
        +    #define MZ_FREOPEN(p, m, s) freopen64(p, m, s)
        +    #define MZ_DELETE_FILE remove
        +  #else
        +    #ifndef MINIZ_NO_TIME
        +      #include <utime.h>
        +    #endif
        +    #define MZ_FILE FILE
        +    #define MZ_FOPEN(f, m) fopen(f, m)
        +    #define MZ_FCLOSE fclose
        +    #define MZ_FREAD fread
        +    #define MZ_FWRITE fwrite
        +    #define MZ_FTELL64 ftello
        +    #define MZ_FSEEK64 fseeko
        +    #define MZ_FILE_STAT_STRUCT stat
        +    #define MZ_FILE_STAT stat
        +    #define MZ_FFLUSH fflush
        +    #define MZ_FREOPEN(f, m, s) freopen(f, m, s)
        +    #define MZ_DELETE_FILE remove
        +  #endif // #ifdef _MSC_VER
        +#endif // #ifdef MINIZ_NO_STDIO
        +
        +#define MZ_TOLOWER(c) ((((c) >= 'A') && ((c) <= 'Z')) ? ((c) - 'A' + 'a') : (c))
        +
        +// Various ZIP archive enums. To completely avoid cross platform compiler alignment and platform endian issues, miniz.c doesn't use structs for any of this stuff.
        +enum
        +{
        +  // ZIP archive identifiers and record sizes
        +  MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIG = 0x06054b50, MZ_ZIP_CENTRAL_DIR_HEADER_SIG = 0x02014b50, MZ_ZIP_LOCAL_DIR_HEADER_SIG = 0x04034b50,
        +  MZ_ZIP_LOCAL_DIR_HEADER_SIZE = 30, MZ_ZIP_CENTRAL_DIR_HEADER_SIZE = 46, MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE = 22,
        +  // Central directory header record offsets
        +  MZ_ZIP_CDH_SIG_OFS = 0, MZ_ZIP_CDH_VERSION_MADE_BY_OFS = 4, MZ_ZIP_CDH_VERSION_NEEDED_OFS = 6, MZ_ZIP_CDH_BIT_FLAG_OFS = 8,
        +  MZ_ZIP_CDH_METHOD_OFS = 10, MZ_ZIP_CDH_FILE_TIME_OFS = 12, MZ_ZIP_CDH_FILE_DATE_OFS = 14, MZ_ZIP_CDH_CRC32_OFS = 16,
        +  MZ_ZIP_CDH_COMPRESSED_SIZE_OFS = 20, MZ_ZIP_CDH_DECOMPRESSED_SIZE_OFS = 24, MZ_ZIP_CDH_FILENAME_LEN_OFS = 28, MZ_ZIP_CDH_EXTRA_LEN_OFS = 30,
        +  MZ_ZIP_CDH_COMMENT_LEN_OFS = 32, MZ_ZIP_CDH_DISK_START_OFS = 34, MZ_ZIP_CDH_INTERNAL_ATTR_OFS = 36, MZ_ZIP_CDH_EXTERNAL_ATTR_OFS = 38, MZ_ZIP_CDH_LOCAL_HEADER_OFS = 42,
        +  // Local directory header offsets
        +  MZ_ZIP_LDH_SIG_OFS = 0, MZ_ZIP_LDH_VERSION_NEEDED_OFS = 4, MZ_ZIP_LDH_BIT_FLAG_OFS = 6, MZ_ZIP_LDH_METHOD_OFS = 8, MZ_ZIP_LDH_FILE_TIME_OFS = 10,
        +  MZ_ZIP_LDH_FILE_DATE_OFS = 12, MZ_ZIP_LDH_CRC32_OFS = 14, MZ_ZIP_LDH_COMPRESSED_SIZE_OFS = 18, MZ_ZIP_LDH_DECOMPRESSED_SIZE_OFS = 22,
        +  MZ_ZIP_LDH_FILENAME_LEN_OFS = 26, MZ_ZIP_LDH_EXTRA_LEN_OFS = 28,
        +  // End of central directory offsets
        +  MZ_ZIP_ECDH_SIG_OFS = 0, MZ_ZIP_ECDH_NUM_THIS_DISK_OFS = 4, MZ_ZIP_ECDH_NUM_DISK_CDIR_OFS = 6, MZ_ZIP_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS = 8,
        +  MZ_ZIP_ECDH_CDIR_TOTAL_ENTRIES_OFS = 10, MZ_ZIP_ECDH_CDIR_SIZE_OFS = 12, MZ_ZIP_ECDH_CDIR_OFS_OFS = 16, MZ_ZIP_ECDH_COMMENT_SIZE_OFS = 20,
        +};
        +
        +typedef struct
        +{
        +  void *m_p;
        +  size_t m_size, m_capacity;
        +  mz_uint m_element_size;
        +} mz_zip_array;
        +
        +struct mz_zip_internal_state_tag
        +{
        +  mz_zip_array m_central_dir;
        +  mz_zip_array m_central_dir_offsets;
        +  mz_zip_array m_sorted_central_dir_offsets;
        +  MZ_FILE *m_pFile;
        +  void *m_pMem;
        +  size_t m_mem_size;
        +  size_t m_mem_capacity;
        +};
        +
        +#define MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(array_ptr, element_size) (array_ptr)->m_element_size = element_size
        +#define MZ_ZIP_ARRAY_ELEMENT(array_ptr, element_type, index) ((element_type *)((array_ptr)->m_p))[index]
        +
        +static MZ_FORCEINLINE void mz_zip_array_clear(mz_zip_archive *pZip, mz_zip_array *pArray)
        +{
        +  pZip->m_pFree(pZip->m_pAlloc_opaque, pArray->m_p);
        +  memset(pArray, 0, sizeof(mz_zip_array));
        +}
        +
        +static mz_bool mz_zip_array_ensure_capacity(mz_zip_archive *pZip, mz_zip_array *pArray, size_t min_new_capacity, mz_uint growing)
        +{
        +  void *pNew_p; size_t new_capacity = min_new_capacity; MZ_ASSERT(pArray->m_element_size); if (pArray->m_capacity >= min_new_capacity) return MZ_TRUE;
        +  if (growing) { new_capacity = MZ_MAX(1, pArray->m_capacity); while (new_capacity < min_new_capacity) new_capacity *= 2; }
        +  if (NULL == (pNew_p = pZip->m_pRealloc(pZip->m_pAlloc_opaque, pArray->m_p, pArray->m_element_size, new_capacity))) return MZ_FALSE;
        +  pArray->m_p = pNew_p; pArray->m_capacity = new_capacity;
        +  return MZ_TRUE;
        +}
        +
        +static MZ_FORCEINLINE mz_bool mz_zip_array_reserve(mz_zip_archive *pZip, mz_zip_array *pArray, size_t new_capacity, mz_uint growing)
        +{
        +  if (new_capacity > pArray->m_capacity) { if (!mz_zip_array_ensure_capacity(pZip, pArray, new_capacity, growing)) return MZ_FALSE; }
        +  return MZ_TRUE;
        +}
        +
        +static MZ_FORCEINLINE mz_bool mz_zip_array_resize(mz_zip_archive *pZip, mz_zip_array *pArray, size_t new_size, mz_uint growing)
        +{
        +  if (new_size > pArray->m_capacity) { if (!mz_zip_array_ensure_capacity(pZip, pArray, new_size, growing)) return MZ_FALSE; }
        +  pArray->m_size = new_size;
        +  return MZ_TRUE;
        +}
        +
        +static MZ_FORCEINLINE mz_bool mz_zip_array_ensure_room(mz_zip_archive *pZip, mz_zip_array *pArray, size_t n)
        +{
        +  return mz_zip_array_reserve(pZip, pArray, pArray->m_size + n, MZ_TRUE);
        +}
        +
        +static MZ_FORCEINLINE mz_bool mz_zip_array_push_back(mz_zip_archive *pZip, mz_zip_array *pArray, const void *pElements, size_t n)
        +{
        +  size_t orig_size = pArray->m_size; if (!mz_zip_array_resize(pZip, pArray, orig_size + n, MZ_TRUE)) return MZ_FALSE;
        +  memcpy((mz_uint8*)pArray->m_p + orig_size * pArray->m_element_size, pElements, n * pArray->m_element_size);
        +  return MZ_TRUE;
        +}
        +
        +#ifndef MINIZ_NO_TIME
        +static time_t mz_zip_dos_to_time_t(int dos_time, int dos_date)
        +{
        +  struct tm tm;
        +  memset(&tm, 0, sizeof(tm)); tm.tm_isdst = -1;
        +  tm.tm_year = ((dos_date >> 9) & 127) + 1980 - 1900; tm.tm_mon = ((dos_date >> 5) & 15) - 1; tm.tm_mday = dos_date & 31;
        +  tm.tm_hour = (dos_time >> 11) & 31; tm.tm_min = (dos_time >> 5) & 63; tm.tm_sec = (dos_time << 1) & 62;
        +  return mktime(&tm);
        +}
        +
        +static void mz_zip_time_to_dos_time(time_t time, mz_uint16 *pDOS_time, mz_uint16 *pDOS_date)
        +{
        +#ifdef _MSC_VER
        +  struct tm tm_struct;
        +  struct tm *tm = &tm_struct;
        +  errno_t err = localtime_s(tm, &time);
        +  if (err)
        +  {
        +    *pDOS_date = 0; *pDOS_time = 0;
        +    return;
        +  }
        +#else
        +  struct tm *tm = localtime(&time);
        +#endif
        +  *pDOS_time = (mz_uint16)(((tm->tm_hour) << 11) + ((tm->tm_min) << 5) + ((tm->tm_sec) >> 1));
        +  *pDOS_date = (mz_uint16)(((tm->tm_year + 1900 - 1980) << 9) + ((tm->tm_mon + 1) << 5) + tm->tm_mday);
        +}
        +#endif
        +
        +#ifndef MINIZ_NO_STDIO
        +static mz_bool mz_zip_get_file_modified_time(const char *pFilename, mz_uint16 *pDOS_time, mz_uint16 *pDOS_date)
        +{
        +#ifdef MINIZ_NO_TIME
        +  (void)pFilename; *pDOS_date = *pDOS_time = 0;
        +#else
        +  struct MZ_FILE_STAT_STRUCT file_stat;
        +  // On Linux with x86 glibc, this call will fail on large files (>= 0x80000000 bytes) unless you compiled with _LARGEFILE64_SOURCE. Argh.
        +  if (MZ_FILE_STAT(pFilename, &file_stat) != 0)
        +    return MZ_FALSE;
        +  mz_zip_time_to_dos_time(file_stat.st_mtime, pDOS_time, pDOS_date);
        +#endif // #ifdef MINIZ_NO_TIME
        +  return MZ_TRUE;
        +}
        +
        +#ifndef MINIZ_NO_TIME
        +static mz_bool mz_zip_set_file_times(const char *pFilename, time_t access_time, time_t modified_time)
        +{
        +  struct utimbuf t; t.actime = access_time; t.modtime = modified_time;
        +  return !utime(pFilename, &t);
        +}
        +#endif // #ifndef MINIZ_NO_TIME
        +#endif // #ifndef MINIZ_NO_STDIO
        +
        +static mz_bool mz_zip_reader_init_internal(mz_zip_archive *pZip, mz_uint32 flags)
        +{
        +  (void)flags;
        +  if ((!pZip) || (pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_INVALID))
        +    return MZ_FALSE;
        +
        +  if (!pZip->m_pAlloc) pZip->m_pAlloc = def_alloc_func;
        +  if (!pZip->m_pFree) pZip->m_pFree = def_free_func;
        +  if (!pZip->m_pRealloc) pZip->m_pRealloc = def_realloc_func;
        +
        +  pZip->m_zip_mode = MZ_ZIP_MODE_READING;
        +  pZip->m_archive_size = 0;
        +  pZip->m_central_directory_file_ofs = 0;
        +  pZip->m_total_files = 0;
        +
        +  if (NULL == (pZip->m_pState = (mz_zip_internal_state *)pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, sizeof(mz_zip_internal_state))))
        +    return MZ_FALSE;
        +  memset(pZip->m_pState, 0, sizeof(mz_zip_internal_state));
        +  MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_central_dir, sizeof(mz_uint8));
        +  MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_central_dir_offsets, sizeof(mz_uint32));
        +  MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_sorted_central_dir_offsets, sizeof(mz_uint32));
        +  return MZ_TRUE;
        +}
        +
        +static MZ_FORCEINLINE mz_bool mz_zip_reader_filename_less(const mz_zip_array *pCentral_dir_array, const mz_zip_array *pCentral_dir_offsets, mz_uint l_index, mz_uint r_index)
        +{
        +  const mz_uint8 *pL = &MZ_ZIP_ARRAY_ELEMENT(pCentral_dir_array, mz_uint8, MZ_ZIP_ARRAY_ELEMENT(pCentral_dir_offsets, mz_uint32, l_index)), *pE;
        +  const mz_uint8 *pR = &MZ_ZIP_ARRAY_ELEMENT(pCentral_dir_array, mz_uint8, MZ_ZIP_ARRAY_ELEMENT(pCentral_dir_offsets, mz_uint32, r_index));
        +  mz_uint l_len = MZ_READ_LE16(pL + MZ_ZIP_CDH_FILENAME_LEN_OFS), r_len = MZ_READ_LE16(pR + MZ_ZIP_CDH_FILENAME_LEN_OFS);
        +  mz_uint8 l = 0, r = 0;
        +  pL += MZ_ZIP_CENTRAL_DIR_HEADER_SIZE; pR += MZ_ZIP_CENTRAL_DIR_HEADER_SIZE;
        +  pE = pL + MZ_MIN(l_len, r_len);
        +  while (pL < pE)
        +  {
        +    if ((l = MZ_TOLOWER(*pL)) != (r = MZ_TOLOWER(*pR)))
        +      break;
        +    pL++; pR++;
        +  }
        +  return (pL == pE) ? (l_len < r_len) : (l < r);
        +}
        +
        +#define MZ_SWAP_UINT32(a, b) do { mz_uint32 t = a; a = b; b = t; } MZ_MACRO_END
        +
        +// Heap sort of lowercased filenames, used to help accelerate plain central directory searches by mz_zip_reader_locate_file(). (Could also use qsort(), but it could allocate memory.)
        +static void mz_zip_reader_sort_central_dir_offsets_by_filename(mz_zip_archive *pZip)
        +{
        +  mz_zip_internal_state *pState = pZip->m_pState;
        +  const mz_zip_array *pCentral_dir_offsets = &pState->m_central_dir_offsets;
        +  const mz_zip_array *pCentral_dir = &pState->m_central_dir;
        +  mz_uint32 *pIndices = &MZ_ZIP_ARRAY_ELEMENT(&pState->m_sorted_central_dir_offsets, mz_uint32, 0);
        +  const int size = pZip->m_total_files;
        +  int start = (size - 2) >> 1, end;
        +  while (start >= 0)
        +  {
        +    int child, root = start;
        +    for ( ; ; )
        +    {
        +      if ((child = (root << 1) + 1) >= size)
        +        break;
        +      child += (((child + 1) < size) && (mz_zip_reader_filename_less(pCentral_dir, pCentral_dir_offsets, pIndices[child], pIndices[child + 1])));
        +      if (!mz_zip_reader_filename_less(pCentral_dir, pCentral_dir_offsets, pIndices[root], pIndices[child]))
        +        break;
        +      MZ_SWAP_UINT32(pIndices[root], pIndices[child]); root = child;
        +    }
        +    start--;
        +  }
        +
        +  end = size - 1;
        +  while (end > 0)
        +  {
        +    int child, root = 0;
        +    MZ_SWAP_UINT32(pIndices[end], pIndices[0]);
        +    for ( ; ; )
        +    {
        +      if ((child = (root << 1) + 1) >= end)
        +        break;
        +      child += (((child + 1) < end) && mz_zip_reader_filename_less(pCentral_dir, pCentral_dir_offsets, pIndices[child], pIndices[child + 1]));
        +      if (!mz_zip_reader_filename_less(pCentral_dir, pCentral_dir_offsets, pIndices[root], pIndices[child]))
        +        break;
        +      MZ_SWAP_UINT32(pIndices[root], pIndices[child]); root = child;
        +    }
        +    end--;
        +  }
        +}
        +
        +static mz_bool mz_zip_reader_read_central_dir(mz_zip_archive *pZip, mz_uint32 flags)
        +{
        +  mz_uint cdir_size, num_this_disk, cdir_disk_index;
        +  mz_uint64 cdir_ofs;
        +  mz_int64 cur_file_ofs;
        +  const mz_uint8 *p;
        +  mz_uint32 buf_u32[4096 / sizeof(mz_uint32)]; mz_uint8 *pBuf = (mz_uint8 *)buf_u32;
        +  mz_bool sort_central_dir = ((flags & MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY) == 0);
        +  // Basic sanity checks - reject files which are too small, and check the first 4 bytes of the file to make sure a local header is there.
        +  if (pZip->m_archive_size < MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE)
        +    return MZ_FALSE;
        +  // Find the end of central directory record by scanning the file from the end towards the beginning.
        +  cur_file_ofs = MZ_MAX((mz_int64)pZip->m_archive_size - (mz_int64)sizeof(buf_u32), 0);
        +  for ( ; ; )
        +  {
        +    int i, n = (int)MZ_MIN(sizeof(buf_u32), pZip->m_archive_size - cur_file_ofs);
        +    if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pBuf, n) != (mz_uint)n)
        +      return MZ_FALSE;
        +    for (i = n - 4; i >= 0; --i)
        +      if (MZ_READ_LE32(pBuf + i) == MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIG)
        +        break;
        +    if (i >= 0)
        +    {
        +      cur_file_ofs += i;
        +      break;
        +    }
        +    if ((!cur_file_ofs) || ((pZip->m_archive_size - cur_file_ofs) >= (0xFFFF + MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE)))
        +      return MZ_FALSE;
        +    cur_file_ofs = MZ_MAX(cur_file_ofs - (sizeof(buf_u32) - 3), 0);
        +  }
        +  // Read and verify the end of central directory record.
        +  if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pBuf, MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) != MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE)
        +    return MZ_FALSE;
        +  if ((MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_SIG_OFS) != MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIG) ||
        +      ((pZip->m_total_files = MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_CDIR_TOTAL_ENTRIES_OFS)) != MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS)))
        +    return MZ_FALSE;
        +
        +  num_this_disk = MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_NUM_THIS_DISK_OFS);
        +  cdir_disk_index = MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_NUM_DISK_CDIR_OFS);
        +  if (((num_this_disk | cdir_disk_index) != 0) && ((num_this_disk != 1) || (cdir_disk_index != 1)))
        +    return MZ_FALSE;
        +
        +  if ((cdir_size = MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_CDIR_SIZE_OFS)) < pZip->m_total_files * MZ_ZIP_CENTRAL_DIR_HEADER_SIZE)
        +    return MZ_FALSE;
        +
        +  cdir_ofs = MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_CDIR_OFS_OFS);
        +  if ((cdir_ofs + (mz_uint64)cdir_size) > pZip->m_archive_size)
        +    return MZ_FALSE;
        +
        +  pZip->m_central_directory_file_ofs = cdir_ofs;
        +
        +  if (pZip->m_total_files)
        +  {
        +     mz_uint i, n;
        +
        +    // Read the entire central directory into a heap block, and allocate another heap block to hold the unsorted central dir file record offsets, and another to hold the sorted indices.
        +    if ((!mz_zip_array_resize(pZip, &pZip->m_pState->m_central_dir, cdir_size, MZ_FALSE)) ||
        +        (!mz_zip_array_resize(pZip, &pZip->m_pState->m_central_dir_offsets, pZip->m_total_files, MZ_FALSE)))
        +      return MZ_FALSE;
        +
        +    if (sort_central_dir)
        +    {
        +      if (!mz_zip_array_resize(pZip, &pZip->m_pState->m_sorted_central_dir_offsets, pZip->m_total_files, MZ_FALSE))
        +        return MZ_FALSE;
        +    }
        +
        +    if (pZip->m_pRead(pZip->m_pIO_opaque, cdir_ofs, pZip->m_pState->m_central_dir.m_p, cdir_size) != cdir_size)
        +      return MZ_FALSE;
        +
        +    // Now create an index into the central directory file records, do some basic sanity checking on each record, and check for zip64 entries (which are not yet supported).
        +    p = (const mz_uint8 *)pZip->m_pState->m_central_dir.m_p;
        +    for (n = cdir_size, i = 0; i < pZip->m_total_files; ++i)
        +    {
        +      mz_uint total_header_size, comp_size, decomp_size, disk_index;
        +      if ((n < MZ_ZIP_CENTRAL_DIR_HEADER_SIZE) || (MZ_READ_LE32(p) != MZ_ZIP_CENTRAL_DIR_HEADER_SIG))
        +        return MZ_FALSE;
        +      MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir_offsets, mz_uint32, i) = (mz_uint32)(p - (const mz_uint8 *)pZip->m_pState->m_central_dir.m_p);
        +      if (sort_central_dir)
        +        MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_sorted_central_dir_offsets, mz_uint32, i) = i;
        +      comp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_COMPRESSED_SIZE_OFS);
        +      decomp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_DECOMPRESSED_SIZE_OFS);
        +      if (((!MZ_READ_LE32(p + MZ_ZIP_CDH_METHOD_OFS)) && (decomp_size != comp_size)) || (decomp_size && !comp_size) || (decomp_size == 0xFFFFFFFF) || (comp_size == 0xFFFFFFFF))
        +        return MZ_FALSE;
        +      disk_index = MZ_READ_LE16(p + MZ_ZIP_CDH_DISK_START_OFS);
        +      if ((disk_index != num_this_disk) && (disk_index != 1))
        +        return MZ_FALSE;
        +      if (((mz_uint64)MZ_READ_LE32(p + MZ_ZIP_CDH_LOCAL_HEADER_OFS) + MZ_ZIP_LOCAL_DIR_HEADER_SIZE + comp_size) > pZip->m_archive_size)
        +        return MZ_FALSE;
        +      if ((total_header_size = MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS) + MZ_READ_LE16(p + MZ_ZIP_CDH_EXTRA_LEN_OFS) + MZ_READ_LE16(p + MZ_ZIP_CDH_COMMENT_LEN_OFS)) > n)
        +        return MZ_FALSE;
        +      n -= total_header_size; p += total_header_size;
        +    }
        +  }
        +
        +  if (sort_central_dir)
        +    mz_zip_reader_sort_central_dir_offsets_by_filename(pZip);
        +
        +  return MZ_TRUE;
        +}
        +
        +mz_bool mz_zip_reader_init(mz_zip_archive *pZip, mz_uint64 size, mz_uint32 flags)
        +{
        +  if ((!pZip) || (!pZip->m_pRead))
        +    return MZ_FALSE;
        +  if (!mz_zip_reader_init_internal(pZip, flags))
        +    return MZ_FALSE;
        +  pZip->m_archive_size = size;
        +  if (!mz_zip_reader_read_central_dir(pZip, flags))
        +  {
        +    mz_zip_reader_end(pZip);
        +    return MZ_FALSE;
        +  }
        +  return MZ_TRUE;
        +}
        +
        +static size_t mz_zip_mem_read_func(void *pOpaque, mz_uint64 file_ofs, void *pBuf, size_t n)
        +{
        +  mz_zip_archive *pZip = (mz_zip_archive *)pOpaque;
        +  size_t s = (file_ofs >= pZip->m_archive_size) ? 0 : (size_t)MZ_MIN(pZip->m_archive_size - file_ofs, n);
        +  memcpy(pBuf, (const mz_uint8 *)pZip->m_pState->m_pMem + file_ofs, s);
        +  return s;
        +}
        +
        +mz_bool mz_zip_reader_init_mem(mz_zip_archive *pZip, const void *pMem, size_t size, mz_uint32 flags)
        +{
        +  if (!mz_zip_reader_init_internal(pZip, flags))
        +    return MZ_FALSE;
        +  pZip->m_archive_size = size;
        +  pZip->m_pRead = mz_zip_mem_read_func;
        +  pZip->m_pIO_opaque = pZip;
        +#ifdef __cplusplus
        +  pZip->m_pState->m_pMem = const_cast<void *>(pMem);
        +#else
        +  pZip->m_pState->m_pMem = (void *)pMem;
        +#endif
        +  pZip->m_pState->m_mem_size = size;
        +  if (!mz_zip_reader_read_central_dir(pZip, flags))
        +  {
        +    mz_zip_reader_end(pZip);
        +    return MZ_FALSE;
        +  }
        +  return MZ_TRUE;
        +}
        +
        +#ifndef MINIZ_NO_STDIO
        +static size_t mz_zip_file_read_func(void *pOpaque, mz_uint64 file_ofs, void *pBuf, size_t n)
        +{
        +  mz_zip_archive *pZip = (mz_zip_archive *)pOpaque;
        +  mz_int64 cur_ofs = MZ_FTELL64(pZip->m_pState->m_pFile);
        +  if (((mz_int64)file_ofs < 0) || (((cur_ofs != (mz_int64)file_ofs)) && (MZ_FSEEK64(pZip->m_pState->m_pFile, (mz_int64)file_ofs, SEEK_SET))))
        +    return 0;
        +  return MZ_FREAD(pBuf, 1, n, pZip->m_pState->m_pFile);
        +}
        +
        +mz_bool mz_zip_reader_init_file(mz_zip_archive *pZip, const char *pFilename, mz_uint32 flags)
        +{
        +  mz_uint64 file_size;
        +  MZ_FILE *pFile = MZ_FOPEN(pFilename, "rb");
        +  if (!pFile)
        +    return MZ_FALSE;
        +  if (MZ_FSEEK64(pFile, 0, SEEK_END))
        +  {
        +    MZ_FCLOSE(pFile);
        +    return MZ_FALSE;
        +  }
        +  file_size = MZ_FTELL64(pFile);
        +  if (!mz_zip_reader_init_internal(pZip, flags))
        +  {
        +    MZ_FCLOSE(pFile);
        +    return MZ_FALSE;
        +  }
        +  pZip->m_pRead = mz_zip_file_read_func;
        +  pZip->m_pIO_opaque = pZip;
        +  pZip->m_pState->m_pFile = pFile;
        +  pZip->m_archive_size = file_size;
        +  if (!mz_zip_reader_read_central_dir(pZip, flags))
        +  {
        +    mz_zip_reader_end(pZip);
        +    return MZ_FALSE;
        +  }
        +  return MZ_TRUE;
        +}
        +#endif // #ifndef MINIZ_NO_STDIO
        +
        +mz_uint mz_zip_reader_get_num_files(mz_zip_archive *pZip)
        +{
        +  return pZip ? pZip->m_total_files : 0;
        +}
        +
        +static MZ_FORCEINLINE const mz_uint8 *mz_zip_reader_get_cdh(mz_zip_archive *pZip, mz_uint file_index)
        +{
        +  if ((!pZip) || (!pZip->m_pState) || (file_index >= pZip->m_total_files) || (pZip->m_zip_mode != MZ_ZIP_MODE_READING))
        +    return NULL;
        +  return &MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir, mz_uint8, MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir_offsets, mz_uint32, file_index));
        +}
        +
        +mz_bool mz_zip_reader_is_file_encrypted(mz_zip_archive *pZip, mz_uint file_index)
        +{
        +  mz_uint m_bit_flag;
        +  const mz_uint8 *p = mz_zip_reader_get_cdh(pZip, file_index);
        +  if (!p)
        +    return MZ_FALSE;
        +  m_bit_flag = MZ_READ_LE16(p + MZ_ZIP_CDH_BIT_FLAG_OFS);
        +  return (m_bit_flag & 1);
        +}
        +
        +mz_bool mz_zip_reader_is_file_a_directory(mz_zip_archive *pZip, mz_uint file_index)
        +{
        +  mz_uint filename_len, external_attr;
        +  const mz_uint8 *p = mz_zip_reader_get_cdh(pZip, file_index);
        +  if (!p)
        +    return MZ_FALSE;
        +
        +  // First see if the filename ends with a '/' character.
        +  filename_len = MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS);
        +  if (filename_len)
        +  {
        +    if (*(p + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + filename_len - 1) == '/')
        +      return MZ_TRUE;
        +  }
        +
        +  // Bugfix: This code was also checking if the internal attribute was non-zero, which wasn't correct.
        +  // Most/all zip writers (hopefully) set DOS file/directory attributes in the low 16-bits, so check for the DOS directory flag and ignore the source OS ID in the created by field.
        +  // FIXME: Remove this check? Is it necessary - we already check the filename.
        +  external_attr = MZ_READ_LE32(p + MZ_ZIP_CDH_EXTERNAL_ATTR_OFS);
        +  if ((external_attr & 0x10) != 0)
        +    return MZ_TRUE;
        +
        +  return MZ_FALSE;
        +}
        +
        +mz_bool mz_zip_reader_file_stat(mz_zip_archive *pZip, mz_uint file_index, mz_zip_archive_file_stat *pStat)
        +{
        +  mz_uint n;
        +  const mz_uint8 *p = mz_zip_reader_get_cdh(pZip, file_index);
        +  if ((!p) || (!pStat))
        +    return MZ_FALSE;
        +
        +  // Unpack the central directory record.
        +  pStat->m_file_index = file_index;
        +  pStat->m_central_dir_ofs = MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir_offsets, mz_uint32, file_index);
        +  pStat->m_version_made_by = MZ_READ_LE16(p + MZ_ZIP_CDH_VERSION_MADE_BY_OFS);
        +  pStat->m_version_needed = MZ_READ_LE16(p + MZ_ZIP_CDH_VERSION_NEEDED_OFS);
        +  pStat->m_bit_flag = MZ_READ_LE16(p + MZ_ZIP_CDH_BIT_FLAG_OFS);
        +  pStat->m_method = MZ_READ_LE16(p + MZ_ZIP_CDH_METHOD_OFS);
        +#ifndef MINIZ_NO_TIME
        +  pStat->m_time = mz_zip_dos_to_time_t(MZ_READ_LE16(p + MZ_ZIP_CDH_FILE_TIME_OFS), MZ_READ_LE16(p + MZ_ZIP_CDH_FILE_DATE_OFS));
        +#endif
        +  pStat->m_crc32 = MZ_READ_LE32(p + MZ_ZIP_CDH_CRC32_OFS);
        +  pStat->m_comp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_COMPRESSED_SIZE_OFS);
        +  pStat->m_uncomp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_DECOMPRESSED_SIZE_OFS);
        +  pStat->m_internal_attr = MZ_READ_LE16(p + MZ_ZIP_CDH_INTERNAL_ATTR_OFS);
        +  pStat->m_external_attr = MZ_READ_LE32(p + MZ_ZIP_CDH_EXTERNAL_ATTR_OFS);
        +  pStat->m_local_header_ofs = MZ_READ_LE32(p + MZ_ZIP_CDH_LOCAL_HEADER_OFS);
        +
        +  // Copy as much of the filename and comment as possible.
        +  n = MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS); n = MZ_MIN(n, MZ_ZIP_MAX_ARCHIVE_FILENAME_SIZE - 1);
        +  memcpy(pStat->m_filename, p + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE, n); pStat->m_filename[n] = '\0';
        +
        +  n = MZ_READ_LE16(p + MZ_ZIP_CDH_COMMENT_LEN_OFS); n = MZ_MIN(n, MZ_ZIP_MAX_ARCHIVE_FILE_COMMENT_SIZE - 1);
        +  pStat->m_comment_size = n;
        +  memcpy(pStat->m_comment, p + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS) + MZ_READ_LE16(p + MZ_ZIP_CDH_EXTRA_LEN_OFS), n); pStat->m_comment[n] = '\0';
        +
        +  return MZ_TRUE;
        +}
        +
        +mz_uint mz_zip_reader_get_filename(mz_zip_archive *pZip, mz_uint file_index, char *pFilename, mz_uint filename_buf_size)
        +{
        +  mz_uint n;
        +  const mz_uint8 *p = mz_zip_reader_get_cdh(pZip, file_index);
        +  if (!p) { if (filename_buf_size) pFilename[0] = '\0'; return 0; }
        +  n = MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS);
        +  if (filename_buf_size)
        +  {
        +    n = MZ_MIN(n, filename_buf_size - 1);
        +    memcpy(pFilename, p + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE, n);
        +    pFilename[n] = '\0';
        +  }
        +  return n + 1;
        +}
        +
        +static MZ_FORCEINLINE mz_bool mz_zip_reader_string_equal(const char *pA, const char *pB, mz_uint len, mz_uint flags)
        +{
        +  mz_uint i;
        +  if (flags & MZ_ZIP_FLAG_CASE_SENSITIVE)
        +    return 0 == memcmp(pA, pB, len);
        +  for (i = 0; i < len; ++i)
        +    if (MZ_TOLOWER(pA[i]) != MZ_TOLOWER(pB[i]))
        +      return MZ_FALSE;
        +  return MZ_TRUE;
        +}
        +
        +static MZ_FORCEINLINE int mz_zip_reader_filename_compare(const mz_zip_array *pCentral_dir_array, const mz_zip_array *pCentral_dir_offsets, mz_uint l_index, const char *pR, mz_uint r_len)
        +{
        +  const mz_uint8 *pL = &MZ_ZIP_ARRAY_ELEMENT(pCentral_dir_array, mz_uint8, MZ_ZIP_ARRAY_ELEMENT(pCentral_dir_offsets, mz_uint32, l_index)), *pE;
        +  mz_uint l_len = MZ_READ_LE16(pL + MZ_ZIP_CDH_FILENAME_LEN_OFS);
        +  mz_uint8 l = 0, r = 0;
        +  pL += MZ_ZIP_CENTRAL_DIR_HEADER_SIZE;
        +  pE = pL + MZ_MIN(l_len, r_len);
        +  while (pL < pE)
        +  {
        +    if ((l = MZ_TOLOWER(*pL)) != (r = MZ_TOLOWER(*pR)))
        +      break;
        +    pL++; pR++;
        +  }
        +  return (pL == pE) ? (int)(l_len - r_len) : (l - r);
        +}
        +
        +static int mz_zip_reader_locate_file_binary_search(mz_zip_archive *pZip, const char *pFilename)
        +{
        +  mz_zip_internal_state *pState = pZip->m_pState;
        +  const mz_zip_array *pCentral_dir_offsets = &pState->m_central_dir_offsets;
        +  const mz_zip_array *pCentral_dir = &pState->m_central_dir;
        +  mz_uint32 *pIndices = &MZ_ZIP_ARRAY_ELEMENT(&pState->m_sorted_central_dir_offsets, mz_uint32, 0);
        +  const int size = pZip->m_total_files;
        +  const mz_uint filename_len = (mz_uint)strlen(pFilename);
        +  int l = 0, h = size - 1;
        +  while (l <= h)
        +  {
        +    int m = (l + h) >> 1, file_index = pIndices[m], comp = mz_zip_reader_filename_compare(pCentral_dir, pCentral_dir_offsets, file_index, pFilename, filename_len);
        +    if (!comp)
        +      return file_index;
        +    else if (comp < 0)
        +      l = m + 1;
        +    else
        +      h = m - 1;
        +  }
        +  return -1;
        +}
        +
        +int mz_zip_reader_locate_file(mz_zip_archive *pZip, const char *pName, const char *pComment, mz_uint flags)
        +{
        +  mz_uint file_index; size_t name_len, comment_len;
        +  if ((!pZip) || (!pZip->m_pState) || (!pName) || (pZip->m_zip_mode != MZ_ZIP_MODE_READING))
        +    return -1;
        +  if (((flags & (MZ_ZIP_FLAG_IGNORE_PATH | MZ_ZIP_FLAG_CASE_SENSITIVE)) == 0) && (!pComment) && (pZip->m_pState->m_sorted_central_dir_offsets.m_size))
        +    return mz_zip_reader_locate_file_binary_search(pZip, pName);
        +  name_len = strlen(pName); if (name_len > 0xFFFF) return -1;
        +  comment_len = pComment ? strlen(pComment) : 0; if (comment_len > 0xFFFF) return -1;
        +  for (file_index = 0; file_index < pZip->m_total_files; file_index++)
        +  {
        +    const mz_uint8 *pHeader = &MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir, mz_uint8, MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir_offsets, mz_uint32, file_index));
        +    mz_uint filename_len = MZ_READ_LE16(pHeader + MZ_ZIP_CDH_FILENAME_LEN_OFS);
        +    const char *pFilename = (const char *)pHeader + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE;
        +    if (filename_len < name_len)
        +      continue;
        +    if (comment_len)
        +    {
        +      mz_uint file_extra_len = MZ_READ_LE16(pHeader + MZ_ZIP_CDH_EXTRA_LEN_OFS), file_comment_len = MZ_READ_LE16(pHeader + MZ_ZIP_CDH_COMMENT_LEN_OFS);
        +      const char *pFile_comment = pFilename + filename_len + file_extra_len;
        +      if ((file_comment_len != comment_len) || (!mz_zip_reader_string_equal(pComment, pFile_comment, file_comment_len, flags)))
        +        continue;
        +    }
        +    if ((flags & MZ_ZIP_FLAG_IGNORE_PATH) && (filename_len))
        +    {
        +      int ofs = filename_len - 1;
        +      do
        +      {
        +        if ((pFilename[ofs] == '/') || (pFilename[ofs] == '\\') || (pFilename[ofs] == ':'))
        +          break;
        +      } while (--ofs >= 0);
        +      ofs++;
        +      pFilename += ofs; filename_len -= ofs;
        +    }
        +    if ((filename_len == name_len) && (mz_zip_reader_string_equal(pName, pFilename, filename_len, flags)))
        +      return file_index;
        +  }
        +  return -1;
        +}
        +
        +mz_bool mz_zip_reader_extract_to_mem_no_alloc(mz_zip_archive *pZip, mz_uint file_index, void *pBuf, size_t buf_size, mz_uint flags, void *pUser_read_buf, size_t user_read_buf_size)
        +{
        +  int status = TINFL_STATUS_DONE;
        +  mz_uint64 needed_size, cur_file_ofs, comp_remaining, out_buf_ofs = 0, read_buf_size, read_buf_ofs = 0, read_buf_avail;
        +  mz_zip_archive_file_stat file_stat;
        +  void *pRead_buf;
        +  mz_uint32 local_header_u32[(MZ_ZIP_LOCAL_DIR_HEADER_SIZE + sizeof(mz_uint32) - 1) / sizeof(mz_uint32)]; mz_uint8 *pLocal_header = (mz_uint8 *)local_header_u32;
        +  tinfl_decompressor inflator;
        +
        +  if ((buf_size) && (!pBuf))
        +    return MZ_FALSE;
        +
        +  if (!mz_zip_reader_file_stat(pZip, file_index, &file_stat))
        +    return MZ_FALSE;
        +
        +  // Empty file, or a directory (but not always a directory - I've seen odd zips with directories that have compressed data which inflates to 0 bytes)
        +  if (!file_stat.m_comp_size)
        +    return MZ_TRUE;
        +
        +  // Entry is a subdirectory (I've seen old zips with dir entries which have compressed deflate data which inflates to 0 bytes, but these entries claim to uncompress to 512 bytes in the headers).
        +  // I'm torn how to handle this case - should it fail instead?
        +  if (mz_zip_reader_is_file_a_directory(pZip, file_index))
        +    return MZ_TRUE;
        +
        +  // Encryption and patch files are not supported.
        +  if (file_stat.m_bit_flag & (1 | 32))
        +    return MZ_FALSE;
        +
        +  // This function only supports stored and deflate.
        +  if ((!(flags & MZ_ZIP_FLAG_COMPRESSED_DATA)) && (file_stat.m_method != 0) && (file_stat.m_method != MZ_DEFLATED))
        +    return MZ_FALSE;
        +
        +  // Ensure supplied output buffer is large enough.
        +  needed_size = (flags & MZ_ZIP_FLAG_COMPRESSED_DATA) ? file_stat.m_comp_size : file_stat.m_uncomp_size;
        +  if (buf_size < needed_size)
        +    return MZ_FALSE;
        +
        +  // Read and parse the local directory entry.
        +  cur_file_ofs = file_stat.m_local_header_ofs;
        +  if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pLocal_header, MZ_ZIP_LOCAL_DIR_HEADER_SIZE) != MZ_ZIP_LOCAL_DIR_HEADER_SIZE)
        +    return MZ_FALSE;
        +  if (MZ_READ_LE32(pLocal_header) != MZ_ZIP_LOCAL_DIR_HEADER_SIG)
        +    return MZ_FALSE;
        +
        +  cur_file_ofs += MZ_ZIP_LOCAL_DIR_HEADER_SIZE + MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_FILENAME_LEN_OFS) + MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_EXTRA_LEN_OFS);
        +  if ((cur_file_ofs + file_stat.m_comp_size) > pZip->m_archive_size)
        +    return MZ_FALSE;
        +
        +  if ((flags & MZ_ZIP_FLAG_COMPRESSED_DATA) || (!file_stat.m_method))
        +  {
        +    // The file is stored or the caller has requested the compressed data.
        +    if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pBuf, (size_t)needed_size) != needed_size)
        +      return MZ_FALSE;
        +    return ((flags & MZ_ZIP_FLAG_COMPRESSED_DATA) != 0) || (mz_crc32(MZ_CRC32_INIT, (const mz_uint8 *)pBuf, (size_t)file_stat.m_uncomp_size) == file_stat.m_crc32);
        +  }
        +
        +  // Decompress the file either directly from memory or from a file input buffer.
        +  tinfl_init(&inflator);
        +
        +  if (pZip->m_pState->m_pMem)
        +  {
        +    // Read directly from the archive in memory.
        +    pRead_buf = (mz_uint8 *)pZip->m_pState->m_pMem + cur_file_ofs;
        +    read_buf_size = read_buf_avail = file_stat.m_comp_size;
        +    comp_remaining = 0;
        +  }
        +  else if (pUser_read_buf)
        +  {
        +    // Use a user provided read buffer.
        +    if (!user_read_buf_size)
        +      return MZ_FALSE;
        +    pRead_buf = (mz_uint8 *)pUser_read_buf;
        +    read_buf_size = user_read_buf_size;
        +    read_buf_avail = 0;
        +    comp_remaining = file_stat.m_comp_size;
        +  }
        +  else
        +  {
        +    // Temporarily allocate a read buffer.
        +    read_buf_size = MZ_MIN(file_stat.m_comp_size, MZ_ZIP_MAX_IO_BUF_SIZE);
        +#ifdef _MSC_VER
        +    if (((0, sizeof(size_t) == sizeof(mz_uint32))) && (read_buf_size > 0x7FFFFFFF))
        +#else
        +    if (((sizeof(size_t) == sizeof(mz_uint32))) && (read_buf_size > 0x7FFFFFFF))
        +#endif
        +      return MZ_FALSE;
        +    if (NULL == (pRead_buf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, (size_t)read_buf_size)))
        +      return MZ_FALSE;
        +    read_buf_avail = 0;
        +    comp_remaining = file_stat.m_comp_size;
        +  }
        +
        +  do
        +  {
        +    size_t in_buf_size, out_buf_size = (size_t)(file_stat.m_uncomp_size - out_buf_ofs);
        +    if ((!read_buf_avail) && (!pZip->m_pState->m_pMem))
        +    {
        +      read_buf_avail = MZ_MIN(read_buf_size, comp_remaining);
        +      if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pRead_buf, (size_t)read_buf_avail) != read_buf_avail)
        +      {
        +        status = TINFL_STATUS_FAILED;
        +        break;
        +      }
        +      cur_file_ofs += read_buf_avail;
        +      comp_remaining -= read_buf_avail;
        +      read_buf_ofs = 0;
        +    }
        +    in_buf_size = (size_t)read_buf_avail;
        +    status = tinfl_decompress(&inflator, (mz_uint8 *)pRead_buf + read_buf_ofs, &in_buf_size, (mz_uint8 *)pBuf, (mz_uint8 *)pBuf + out_buf_ofs, &out_buf_size, TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF | (comp_remaining ? TINFL_FLAG_HAS_MORE_INPUT : 0));
        +    read_buf_avail -= in_buf_size;
        +    read_buf_ofs += in_buf_size;
        +    out_buf_ofs += out_buf_size;
        +  } while (status == TINFL_STATUS_NEEDS_MORE_INPUT);
        +
        +  if (status == TINFL_STATUS_DONE)
        +  {
        +    // Make sure the entire file was decompressed, and check its CRC.
        +    if ((out_buf_ofs != file_stat.m_uncomp_size) || (mz_crc32(MZ_CRC32_INIT, (const mz_uint8 *)pBuf, (size_t)file_stat.m_uncomp_size) != file_stat.m_crc32))
        +      status = TINFL_STATUS_FAILED;
        +  }
        +
        +  if ((!pZip->m_pState->m_pMem) && (!pUser_read_buf))
        +    pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf);
        +
        +  return status == TINFL_STATUS_DONE;
        +}
        +
        +mz_bool mz_zip_reader_extract_file_to_mem_no_alloc(mz_zip_archive *pZip, const char *pFilename, void *pBuf, size_t buf_size, mz_uint flags, void *pUser_read_buf, size_t user_read_buf_size)
        +{
        +  int file_index = mz_zip_reader_locate_file(pZip, pFilename, NULL, flags);
        +  if (file_index < 0)
        +    return MZ_FALSE;
        +  return mz_zip_reader_extract_to_mem_no_alloc(pZip, file_index, pBuf, buf_size, flags, pUser_read_buf, user_read_buf_size);
        +}
        +
        +mz_bool mz_zip_reader_extract_to_mem(mz_zip_archive *pZip, mz_uint file_index, void *pBuf, size_t buf_size, mz_uint flags)
        +{
        +  return mz_zip_reader_extract_to_mem_no_alloc(pZip, file_index, pBuf, buf_size, flags, NULL, 0);
        +}
        +
        +mz_bool mz_zip_reader_extract_file_to_mem(mz_zip_archive *pZip, const char *pFilename, void *pBuf, size_t buf_size, mz_uint flags)
        +{
        +  return mz_zip_reader_extract_file_to_mem_no_alloc(pZip, pFilename, pBuf, buf_size, flags, NULL, 0);
        +}
        +
        +void *mz_zip_reader_extract_to_heap(mz_zip_archive *pZip, mz_uint file_index, size_t *pSize, mz_uint flags)
        +{
        +  mz_uint64 comp_size, uncomp_size, alloc_size;
        +  const mz_uint8 *p = mz_zip_reader_get_cdh(pZip, file_index);
        +  void *pBuf;
        +
        +  if (pSize)
        +    *pSize = 0;
        +  if (!p)
        +    return NULL;
        +
        +  comp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_COMPRESSED_SIZE_OFS);
        +  uncomp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_DECOMPRESSED_SIZE_OFS);
        +
        +  alloc_size = (flags & MZ_ZIP_FLAG_COMPRESSED_DATA) ? comp_size : uncomp_size;
        +#ifdef _MSC_VER
        +  if (((0, sizeof(size_t) == sizeof(mz_uint32))) && (alloc_size > 0x7FFFFFFF))
        +#else
        +  if (((sizeof(size_t) == sizeof(mz_uint32))) && (alloc_size > 0x7FFFFFFF))
        +#endif
        +    return NULL;
        +  if (NULL == (pBuf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, (size_t)alloc_size)))
        +    return NULL;
        +
        +  if (!mz_zip_reader_extract_to_mem(pZip, file_index, pBuf, (size_t)alloc_size, flags))
        +  {
        +    pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf);
        +    return NULL;
        +  }
        +
        +  if (pSize) *pSize = (size_t)alloc_size;
        +  return pBuf;
        +}
        +
        +void *mz_zip_reader_extract_file_to_heap(mz_zip_archive *pZip, const char *pFilename, size_t *pSize, mz_uint flags)
        +{
        +  int file_index = mz_zip_reader_locate_file(pZip, pFilename, NULL, flags);
        +  if (file_index < 0)
        +  {
        +    if (pSize) *pSize = 0;
        +    return MZ_FALSE;
        +  }
        +  return mz_zip_reader_extract_to_heap(pZip, file_index, pSize, flags);
        +}
        +
        +mz_bool mz_zip_reader_extract_to_callback(mz_zip_archive *pZip, mz_uint file_index, mz_file_write_func pCallback, void *pOpaque, mz_uint flags)
        +{
        +  int status = TINFL_STATUS_DONE; mz_uint file_crc32 = MZ_CRC32_INIT;
        +  mz_uint64 read_buf_size, read_buf_ofs = 0, read_buf_avail, comp_remaining, out_buf_ofs = 0, cur_file_ofs;
        +  mz_zip_archive_file_stat file_stat;
        +  void *pRead_buf = NULL; void *pWrite_buf = NULL;
        +  mz_uint32 local_header_u32[(MZ_ZIP_LOCAL_DIR_HEADER_SIZE + sizeof(mz_uint32) - 1) / sizeof(mz_uint32)]; mz_uint8 *pLocal_header = (mz_uint8 *)local_header_u32;
        +
        +  if (!mz_zip_reader_file_stat(pZip, file_index, &file_stat))
        +    return MZ_FALSE;
        +
        +  // Empty file, or a directory (but not always a directory - I've seen odd zips with directories that have compressed data which inflates to 0 bytes)
        +  if (!file_stat.m_comp_size)
        +    return MZ_TRUE;
        +
        +  // Entry is a subdirectory (I've seen old zips with dir entries which have compressed deflate data which inflates to 0 bytes, but these entries claim to uncompress to 512 bytes in the headers).
        +  // I'm torn how to handle this case - should it fail instead?
        +  if (mz_zip_reader_is_file_a_directory(pZip, file_index))
        +    return MZ_TRUE;
        +
        +  // Encryption and patch files are not supported.
        +  if (file_stat.m_bit_flag & (1 | 32))
        +    return MZ_FALSE;
        +
        +  // This function only supports stored and deflate.
        +  if ((!(flags & MZ_ZIP_FLAG_COMPRESSED_DATA)) && (file_stat.m_method != 0) && (file_stat.m_method != MZ_DEFLATED))
        +    return MZ_FALSE;
        +
        +  // Read and parse the local directory entry.
        +  cur_file_ofs = file_stat.m_local_header_ofs;
        +  if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pLocal_header, MZ_ZIP_LOCAL_DIR_HEADER_SIZE) != MZ_ZIP_LOCAL_DIR_HEADER_SIZE)
        +    return MZ_FALSE;
        +  if (MZ_READ_LE32(pLocal_header) != MZ_ZIP_LOCAL_DIR_HEADER_SIG)
        +    return MZ_FALSE;
        +
        +  cur_file_ofs += MZ_ZIP_LOCAL_DIR_HEADER_SIZE + MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_FILENAME_LEN_OFS) + MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_EXTRA_LEN_OFS);
        +  if ((cur_file_ofs + file_stat.m_comp_size) > pZip->m_archive_size)
        +    return MZ_FALSE;
        +
        +  // Decompress the file either directly from memory or from a file input buffer.
        +  if (pZip->m_pState->m_pMem)
        +  {
        +    pRead_buf = (mz_uint8 *)pZip->m_pState->m_pMem + cur_file_ofs;
        +    read_buf_size = read_buf_avail = file_stat.m_comp_size;
        +    comp_remaining = 0;
        +  }
        +  else
        +  {
        +    read_buf_size = MZ_MIN(file_stat.m_comp_size, MZ_ZIP_MAX_IO_BUF_SIZE);
        +    if (NULL == (pRead_buf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, (size_t)read_buf_size)))
        +      return MZ_FALSE;
        +    read_buf_avail = 0;
        +    comp_remaining = file_stat.m_comp_size;
        +  }
        +
        +  if ((flags & MZ_ZIP_FLAG_COMPRESSED_DATA) || (!file_stat.m_method))
        +  {
        +    // The file is stored or the caller has requested the compressed data.
        +    if (pZip->m_pState->m_pMem)
        +    {
        +#ifdef _MSC_VER
        +      if (((0, sizeof(size_t) == sizeof(mz_uint32))) && (file_stat.m_comp_size > 0xFFFFFFFF))
        +#else
        +      if (((sizeof(size_t) == sizeof(mz_uint32))) && (file_stat.m_comp_size > 0xFFFFFFFF))
        +#endif
        +        return MZ_FALSE;
        +      if (pCallback(pOpaque, out_buf_ofs, pRead_buf, (size_t)file_stat.m_comp_size) != file_stat.m_comp_size)
        +        status = TINFL_STATUS_FAILED;
        +      else if (!(flags & MZ_ZIP_FLAG_COMPRESSED_DATA))
        +        file_crc32 = (mz_uint32)mz_crc32(file_crc32, (const mz_uint8 *)pRead_buf, (size_t)file_stat.m_comp_size);
        +      cur_file_ofs += file_stat.m_comp_size;
        +      out_buf_ofs += file_stat.m_comp_size;
        +      comp_remaining = 0;
        +    }
        +    else
        +    {
        +      while (comp_remaining)
        +      {
        +        read_buf_avail = MZ_MIN(read_buf_size, comp_remaining);
        +        if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pRead_buf, (size_t)read_buf_avail) != read_buf_avail)
        +        {
        +          status = TINFL_STATUS_FAILED;
        +          break;
        +        }
        +
        +        if (!(flags & MZ_ZIP_FLAG_COMPRESSED_DATA))
        +          file_crc32 = (mz_uint32)mz_crc32(file_crc32, (const mz_uint8 *)pRead_buf, (size_t)read_buf_avail);
        +
        +        if (pCallback(pOpaque, out_buf_ofs, pRead_buf, (size_t)read_buf_avail) != read_buf_avail)
        +        {
        +          status = TINFL_STATUS_FAILED;
        +          break;
        +        }
        +        cur_file_ofs += read_buf_avail;
        +        out_buf_ofs += read_buf_avail;
        +        comp_remaining -= read_buf_avail;
        +      }
        +    }
        +  }
        +  else
        +  {
        +    tinfl_decompressor inflator;
        +    tinfl_init(&inflator);
        +
        +    if (NULL == (pWrite_buf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, TINFL_LZ_DICT_SIZE)))
        +      status = TINFL_STATUS_FAILED;
        +    else
        +    {
        +      do
        +      {
        +        mz_uint8 *pWrite_buf_cur = (mz_uint8 *)pWrite_buf + (out_buf_ofs & (TINFL_LZ_DICT_SIZE - 1));
        +        size_t in_buf_size, out_buf_size = TINFL_LZ_DICT_SIZE - (out_buf_ofs & (TINFL_LZ_DICT_SIZE - 1));
        +        if ((!read_buf_avail) && (!pZip->m_pState->m_pMem))
        +        {
        +          read_buf_avail = MZ_MIN(read_buf_size, comp_remaining);
        +          if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pRead_buf, (size_t)read_buf_avail) != read_buf_avail)
        +          {
        +            status = TINFL_STATUS_FAILED;
        +            break;
        +          }
        +          cur_file_ofs += read_buf_avail;
        +          comp_remaining -= read_buf_avail;
        +          read_buf_ofs = 0;
        +        }
        +
        +        in_buf_size = (size_t)read_buf_avail;
        +        status = tinfl_decompress(&inflator, (const mz_uint8 *)pRead_buf + read_buf_ofs, &in_buf_size, (mz_uint8 *)pWrite_buf, pWrite_buf_cur, &out_buf_size, comp_remaining ? TINFL_FLAG_HAS_MORE_INPUT : 0);
        +        read_buf_avail -= in_buf_size;
        +        read_buf_ofs += in_buf_size;
        +
        +        if (out_buf_size)
        +        {
        +          if (pCallback(pOpaque, out_buf_ofs, pWrite_buf_cur, out_buf_size) != out_buf_size)
        +          {
        +            status = TINFL_STATUS_FAILED;
        +            break;
        +          }
        +          file_crc32 = (mz_uint32)mz_crc32(file_crc32, pWrite_buf_cur, out_buf_size);
        +          if ((out_buf_ofs += out_buf_size) > file_stat.m_uncomp_size)
        +          {
        +            status = TINFL_STATUS_FAILED;
        +            break;
        +          }
        +        }
        +      } while ((status == TINFL_STATUS_NEEDS_MORE_INPUT) || (status == TINFL_STATUS_HAS_MORE_OUTPUT));
        +    }
        +  }
        +
        +  if ((status == TINFL_STATUS_DONE) && (!(flags & MZ_ZIP_FLAG_COMPRESSED_DATA)))
        +  {
        +    // Make sure the entire file was decompressed, and check its CRC.
        +    if ((out_buf_ofs != file_stat.m_uncomp_size) || (file_crc32 != file_stat.m_crc32))
        +      status = TINFL_STATUS_FAILED;
        +  }
        +
        +  if (!pZip->m_pState->m_pMem)
        +    pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf);
        +  if (pWrite_buf)
        +    pZip->m_pFree(pZip->m_pAlloc_opaque, pWrite_buf);
        +
        +  return status == TINFL_STATUS_DONE;
        +}
        +
        +mz_bool mz_zip_reader_extract_file_to_callback(mz_zip_archive *pZip, const char *pFilename, mz_file_write_func pCallback, void *pOpaque, mz_uint flags)
        +{
        +  int file_index = mz_zip_reader_locate_file(pZip, pFilename, NULL, flags);
        +  if (file_index < 0)
        +    return MZ_FALSE;
        +  return mz_zip_reader_extract_to_callback(pZip, file_index, pCallback, pOpaque, flags);
        +}
        +
        +#ifndef MINIZ_NO_STDIO
        +static size_t mz_zip_file_write_callback(void *pOpaque, mz_uint64 ofs, const void *pBuf, size_t n)
        +{
        +  (void)ofs; return MZ_FWRITE(pBuf, 1, n, (MZ_FILE*)pOpaque);
        +}
        +
        +mz_bool mz_zip_reader_extract_to_file(mz_zip_archive *pZip, mz_uint file_index, const char *pDst_filename, mz_uint flags)
        +{
        +  mz_bool status;
        +  mz_zip_archive_file_stat file_stat;
        +  MZ_FILE *pFile;
        +  if (!mz_zip_reader_file_stat(pZip, file_index, &file_stat))
        +    return MZ_FALSE;
        +  pFile = MZ_FOPEN(pDst_filename, "wb");
        +  if (!pFile)
        +    return MZ_FALSE;
        +  status = mz_zip_reader_extract_to_callback(pZip, file_index, mz_zip_file_write_callback, pFile, flags);
        +  if (MZ_FCLOSE(pFile) == EOF)
        +    return MZ_FALSE;
        +#ifndef MINIZ_NO_TIME
        +  if (status)
        +    mz_zip_set_file_times(pDst_filename, file_stat.m_time, file_stat.m_time);
        +#endif
        +  return status;
        +}
        +#endif // #ifndef MINIZ_NO_STDIO
        +
        +mz_bool mz_zip_reader_end(mz_zip_archive *pZip)
        +{
        +  if ((!pZip) || (!pZip->m_pState) || (!pZip->m_pAlloc) || (!pZip->m_pFree) || (pZip->m_zip_mode != MZ_ZIP_MODE_READING))
        +    return MZ_FALSE;
        +
        +  if (pZip->m_pState)
        +  {
        +    mz_zip_internal_state *pState = pZip->m_pState; pZip->m_pState = NULL;
        +    mz_zip_array_clear(pZip, &pState->m_central_dir);
        +    mz_zip_array_clear(pZip, &pState->m_central_dir_offsets);
        +    mz_zip_array_clear(pZip, &pState->m_sorted_central_dir_offsets);
        +
        +#ifndef MINIZ_NO_STDIO
        +    if (pState->m_pFile)
        +    {
        +      MZ_FCLOSE(pState->m_pFile);
        +      pState->m_pFile = NULL;
        +    }
        +#endif // #ifndef MINIZ_NO_STDIO
        +
        +    pZip->m_pFree(pZip->m_pAlloc_opaque, pState);
        +  }
        +  pZip->m_zip_mode = MZ_ZIP_MODE_INVALID;
        +
        +  return MZ_TRUE;
        +}
        +
        +#ifndef MINIZ_NO_STDIO
        +mz_bool mz_zip_reader_extract_file_to_file(mz_zip_archive *pZip, const char *pArchive_filename, const char *pDst_filename, mz_uint flags)
        +{
        +  int file_index = mz_zip_reader_locate_file(pZip, pArchive_filename, NULL, flags);
        +  if (file_index < 0)
        +    return MZ_FALSE;
        +  return mz_zip_reader_extract_to_file(pZip, file_index, pDst_filename, flags);
        +}
        +#endif
        +
        +// ------------------- .ZIP archive writing
        +
        +#ifndef MINIZ_NO_ARCHIVE_WRITING_APIS
        +
        +static void mz_write_le16(mz_uint8 *p, mz_uint16 v) { p[0] = (mz_uint8)v; p[1] = (mz_uint8)(v >> 8); }
        +static void mz_write_le32(mz_uint8 *p, mz_uint32 v) { p[0] = (mz_uint8)v; p[1] = (mz_uint8)(v >> 8); p[2] = (mz_uint8)(v >> 16); p[3] = (mz_uint8)(v >> 24); }
        +#define MZ_WRITE_LE16(p, v) mz_write_le16((mz_uint8 *)(p), (mz_uint16)(v))
        +#define MZ_WRITE_LE32(p, v) mz_write_le32((mz_uint8 *)(p), (mz_uint32)(v))
        +
        +mz_bool mz_zip_writer_init(mz_zip_archive *pZip, mz_uint64 existing_size)
        +{
        +  if ((!pZip) || (pZip->m_pState) || (!pZip->m_pWrite) || (pZip->m_zip_mode != MZ_ZIP_MODE_INVALID))
        +    return MZ_FALSE;
        +
        +  if (pZip->m_file_offset_alignment)
        +  {
        +    // Ensure user specified file offset alignment is a power of 2.
        +    if (pZip->m_file_offset_alignment & (pZip->m_file_offset_alignment - 1))
        +      return MZ_FALSE;
        +  }
        +
        +  if (!pZip->m_pAlloc) pZip->m_pAlloc = def_alloc_func;
        +  if (!pZip->m_pFree) pZip->m_pFree = def_free_func;
        +  if (!pZip->m_pRealloc) pZip->m_pRealloc = def_realloc_func;
        +
        +  pZip->m_zip_mode = MZ_ZIP_MODE_WRITING;
        +  pZip->m_archive_size = existing_size;
        +  pZip->m_central_directory_file_ofs = 0;
        +  pZip->m_total_files = 0;
        +
        +  if (NULL == (pZip->m_pState = (mz_zip_internal_state *)pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, sizeof(mz_zip_internal_state))))
        +    return MZ_FALSE;
        +  memset(pZip->m_pState, 0, sizeof(mz_zip_internal_state));
        +  MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_central_dir, sizeof(mz_uint8));
        +  MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_central_dir_offsets, sizeof(mz_uint32));
        +  MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_sorted_central_dir_offsets, sizeof(mz_uint32));
        +  return MZ_TRUE;
        +}
        +
        +static size_t mz_zip_heap_write_func(void *pOpaque, mz_uint64 file_ofs, const void *pBuf, size_t n)
        +{
        +  mz_zip_archive *pZip = (mz_zip_archive *)pOpaque;
        +  mz_zip_internal_state *pState = pZip->m_pState;
        +  mz_uint64 new_size = MZ_MAX(file_ofs + n, pState->m_mem_size);
        +#ifdef _MSC_VER
        +  if ((!n) || ((0, sizeof(size_t) == sizeof(mz_uint32)) && (new_size > 0x7FFFFFFF)))
        +#else
        +  if ((!n) || ((sizeof(size_t) == sizeof(mz_uint32)) && (new_size > 0x7FFFFFFF)))
        +#endif
        +    return 0;
        +  if (new_size > pState->m_mem_capacity)
        +  {
        +    void *pNew_block;
        +    size_t new_capacity = MZ_MAX(64, pState->m_mem_capacity); while (new_capacity < new_size) new_capacity *= 2;
        +    if (NULL == (pNew_block = pZip->m_pRealloc(pZip->m_pAlloc_opaque, pState->m_pMem, 1, new_capacity)))
        +      return 0;
        +    pState->m_pMem = pNew_block; pState->m_mem_capacity = new_capacity;
        +  }
        +  memcpy((mz_uint8 *)pState->m_pMem + file_ofs, pBuf, n);
        +  pState->m_mem_size = (size_t)new_size;
        +  return n;
        +}
        +
        +mz_bool mz_zip_writer_init_heap(mz_zip_archive *pZip, size_t size_to_reserve_at_beginning, size_t initial_allocation_size)
        +{
        +  pZip->m_pWrite = mz_zip_heap_write_func;
        +  pZip->m_pIO_opaque = pZip;
        +  if (!mz_zip_writer_init(pZip, size_to_reserve_at_beginning))
        +    return MZ_FALSE;
        +  if (0 != (initial_allocation_size = MZ_MAX(initial_allocation_size, size_to_reserve_at_beginning)))
        +  {
        +    if (NULL == (pZip->m_pState->m_pMem = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, initial_allocation_size)))
        +    {
        +      mz_zip_writer_end(pZip);
        +      return MZ_FALSE;
        +    }
        +    pZip->m_pState->m_mem_capacity = initial_allocation_size;
        +  }
        +  return MZ_TRUE;
        +}
        +
        +#ifndef MINIZ_NO_STDIO
        +static size_t mz_zip_file_write_func(void *pOpaque, mz_uint64 file_ofs, const void *pBuf, size_t n)
        +{
        +  mz_zip_archive *pZip = (mz_zip_archive *)pOpaque;
        +  mz_int64 cur_ofs = MZ_FTELL64(pZip->m_pState->m_pFile);
        +  if (((mz_int64)file_ofs < 0) || (((cur_ofs != (mz_int64)file_ofs)) && (MZ_FSEEK64(pZip->m_pState->m_pFile, (mz_int64)file_ofs, SEEK_SET))))
        +    return 0;
        +  return MZ_FWRITE(pBuf, 1, n, pZip->m_pState->m_pFile);
        +}
        +
        +mz_bool mz_zip_writer_init_file(mz_zip_archive *pZip, const char *pFilename, mz_uint64 size_to_reserve_at_beginning)
        +{
        +  MZ_FILE *pFile;
        +  pZip->m_pWrite = mz_zip_file_write_func;
        +  pZip->m_pIO_opaque = pZip;
        +  if (!mz_zip_writer_init(pZip, size_to_reserve_at_beginning))
        +    return MZ_FALSE;
        +  if (NULL == (pFile = MZ_FOPEN(pFilename, "wb")))
        +  {
        +    mz_zip_writer_end(pZip);
        +    return MZ_FALSE;
        +  }
        +  pZip->m_pState->m_pFile = pFile;
        +  if (size_to_reserve_at_beginning)
        +  {
        +    mz_uint64 cur_ofs = 0; char buf[4096]; MZ_CLEAR_OBJ(buf);
        +    do
        +    {
        +      size_t n = (size_t)MZ_MIN(sizeof(buf), size_to_reserve_at_beginning);
        +      if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_ofs, buf, n) != n)
        +      {
        +        mz_zip_writer_end(pZip);
        +        return MZ_FALSE;
        +      }
        +      cur_ofs += n; size_to_reserve_at_beginning -= n;
        +    } while (size_to_reserve_at_beginning);
        +  }
        +  return MZ_TRUE;
        +}
        +#endif // #ifndef MINIZ_NO_STDIO
        +
        +mz_bool mz_zip_writer_init_from_reader(mz_zip_archive *pZip, const char *pFilename)
        +{
        +  mz_zip_internal_state *pState;
        +  if ((!pZip) || (!pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_READING))
        +    return MZ_FALSE;
        +  // No sense in trying to write to an archive that's already at the support max size
        +  if ((pZip->m_total_files == 0xFFFF) || ((pZip->m_archive_size + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + MZ_ZIP_LOCAL_DIR_HEADER_SIZE) > 0xFFFFFFFF))
        +    return MZ_FALSE;
        +
        +  pState = pZip->m_pState;
        +
        +  if (pState->m_pFile)
        +  {
        +#ifdef MINIZ_NO_STDIO
        +    pFilename; return MZ_FALSE;
        +#else
        +    // Archive is being read from stdio - try to reopen as writable.
        +    if (pZip->m_pIO_opaque != pZip)
        +      return MZ_FALSE;
        +    if (!pFilename)
        +      return MZ_FALSE;
        +    pZip->m_pWrite = mz_zip_file_write_func;
        +    if (NULL == (pState->m_pFile = MZ_FREOPEN(pFilename, "r+b", pState->m_pFile)))
        +    {
        +      // The mz_zip_archive is now in a bogus state because pState->m_pFile is NULL, so just close it.
        +      mz_zip_reader_end(pZip);
        +      return MZ_FALSE;
        +    }
        +#endif // #ifdef MINIZ_NO_STDIO
        +  }
        +  else if (pState->m_pMem)
        +  {
        +    // Archive lives in a memory block. Assume it's from the heap that we can resize using the realloc callback.
        +    if (pZip->m_pIO_opaque != pZip)
        +      return MZ_FALSE;
        +    pState->m_mem_capacity = pState->m_mem_size;
        +    pZip->m_pWrite = mz_zip_heap_write_func;
        +  }
        +  // Archive is being read via a user provided read function - make sure the user has specified a write function too.
        +  else if (!pZip->m_pWrite)
        +    return MZ_FALSE;
        +
        +  // Start writing new files at the archive's current central directory location.
        +  pZip->m_archive_size = pZip->m_central_directory_file_ofs;
        +  pZip->m_zip_mode = MZ_ZIP_MODE_WRITING;
        +  pZip->m_central_directory_file_ofs = 0;
        +
        +  return MZ_TRUE;
        +}
        +
        +mz_bool mz_zip_writer_add_mem(mz_zip_archive *pZip, const char *pArchive_name, const void *pBuf, size_t buf_size, mz_uint level_and_flags)
        +{
        +  return mz_zip_writer_add_mem_ex(pZip, pArchive_name, pBuf, buf_size, NULL, 0, level_and_flags, 0, 0);
        +}
        +
        +typedef struct
        +{
        +  mz_zip_archive *m_pZip;
        +  mz_uint64 m_cur_archive_file_ofs;
        +  mz_uint64 m_comp_size;
        +} mz_zip_writer_add_state;
        +
        +static mz_bool mz_zip_writer_add_put_buf_callback(const void* pBuf, int len, void *pUser)
        +{
        +  mz_zip_writer_add_state *pState = (mz_zip_writer_add_state *)pUser;
        +  if ((int)pState->m_pZip->m_pWrite(pState->m_pZip->m_pIO_opaque, pState->m_cur_archive_file_ofs, pBuf, len) != len)
        +    return MZ_FALSE;
        +  pState->m_cur_archive_file_ofs += len;
        +  pState->m_comp_size += len;
        +  return MZ_TRUE;
        +}
        +
        +static mz_bool mz_zip_writer_create_local_dir_header(mz_zip_archive *pZip, mz_uint8 *pDst, mz_uint16 filename_size, mz_uint16 extra_size, mz_uint64 uncomp_size, mz_uint64 comp_size, mz_uint32 uncomp_crc32, mz_uint16 method, mz_uint16 bit_flags, mz_uint16 dos_time, mz_uint16 dos_date)
        +{
        +  (void)pZip;
        +  memset(pDst, 0, MZ_ZIP_LOCAL_DIR_HEADER_SIZE);
        +  MZ_WRITE_LE32(pDst + MZ_ZIP_LDH_SIG_OFS, MZ_ZIP_LOCAL_DIR_HEADER_SIG);
        +  MZ_WRITE_LE16(pDst + MZ_ZIP_LDH_VERSION_NEEDED_OFS, method ? 20 : 0);
        +  MZ_WRITE_LE16(pDst + MZ_ZIP_LDH_BIT_FLAG_OFS, bit_flags);
        +  MZ_WRITE_LE16(pDst + MZ_ZIP_LDH_METHOD_OFS, method);
        +  MZ_WRITE_LE16(pDst + MZ_ZIP_LDH_FILE_TIME_OFS, dos_time);
        +  MZ_WRITE_LE16(pDst + MZ_ZIP_LDH_FILE_DATE_OFS, dos_date);
        +  MZ_WRITE_LE32(pDst + MZ_ZIP_LDH_CRC32_OFS, uncomp_crc32);
        +  MZ_WRITE_LE32(pDst + MZ_ZIP_LDH_COMPRESSED_SIZE_OFS, comp_size);
        +  MZ_WRITE_LE32(pDst + MZ_ZIP_LDH_DECOMPRESSED_SIZE_OFS, uncomp_size);
        +  MZ_WRITE_LE16(pDst + MZ_ZIP_LDH_FILENAME_LEN_OFS, filename_size);
        +  MZ_WRITE_LE16(pDst + MZ_ZIP_LDH_EXTRA_LEN_OFS, extra_size);
        +  return MZ_TRUE;
        +}
        +
        +static mz_bool mz_zip_writer_create_central_dir_header(mz_zip_archive *pZip, mz_uint8 *pDst, mz_uint16 filename_size, mz_uint16 extra_size, mz_uint16 comment_size, mz_uint64 uncomp_size, mz_uint64 comp_size, mz_uint32 uncomp_crc32, mz_uint16 method, mz_uint16 bit_flags, mz_uint16 dos_time, mz_uint16 dos_date, mz_uint64 local_header_ofs, mz_uint32 ext_attributes)
        +{
        +  (void)pZip;
        +  memset(pDst, 0, MZ_ZIP_CENTRAL_DIR_HEADER_SIZE);
        +  MZ_WRITE_LE32(pDst + MZ_ZIP_CDH_SIG_OFS, MZ_ZIP_CENTRAL_DIR_HEADER_SIG);
        +  MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_VERSION_NEEDED_OFS, method ? 20 : 0);
        +  MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_BIT_FLAG_OFS, bit_flags);
        +  MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_METHOD_OFS, method);
        +  MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_FILE_TIME_OFS, dos_time);
        +  MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_FILE_DATE_OFS, dos_date);
        +  MZ_WRITE_LE32(pDst + MZ_ZIP_CDH_CRC32_OFS, uncomp_crc32);
        +  MZ_WRITE_LE32(pDst + MZ_ZIP_CDH_COMPRESSED_SIZE_OFS, comp_size);
        +  MZ_WRITE_LE32(pDst + MZ_ZIP_CDH_DECOMPRESSED_SIZE_OFS, uncomp_size);
        +  MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_FILENAME_LEN_OFS, filename_size);
        +  MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_EXTRA_LEN_OFS, extra_size);
        +  MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_COMMENT_LEN_OFS, comment_size);
        +  MZ_WRITE_LE32(pDst + MZ_ZIP_CDH_EXTERNAL_ATTR_OFS, ext_attributes);
        +  MZ_WRITE_LE32(pDst + MZ_ZIP_CDH_LOCAL_HEADER_OFS, local_header_ofs);
        +  return MZ_TRUE;
        +}
        +
        +static mz_bool mz_zip_writer_add_to_central_dir(mz_zip_archive *pZip, const char *pFilename, mz_uint16 filename_size, const void *pExtra, mz_uint16 extra_size, const void *pComment, mz_uint16 comment_size, mz_uint64 uncomp_size, mz_uint64 comp_size, mz_uint32 uncomp_crc32, mz_uint16 method, mz_uint16 bit_flags, mz_uint16 dos_time, mz_uint16 dos_date, mz_uint64 local_header_ofs, mz_uint32 ext_attributes)
        +{
        +  mz_zip_internal_state *pState = pZip->m_pState;
        +  mz_uint32 central_dir_ofs = (mz_uint32)pState->m_central_dir.m_size;
        +  size_t orig_central_dir_size = pState->m_central_dir.m_size;
        +  mz_uint8 central_dir_header[MZ_ZIP_CENTRAL_DIR_HEADER_SIZE];
        +
        +  // No zip64 support yet
        +  if ((local_header_ofs > 0xFFFFFFFF) || (((mz_uint64)pState->m_central_dir.m_size + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + filename_size + extra_size + comment_size) > 0xFFFFFFFF))
        +    return MZ_FALSE;
        +
        +  if (!mz_zip_writer_create_central_dir_header(pZip, central_dir_header, filename_size, extra_size, comment_size, uncomp_size, comp_size, uncomp_crc32, method, bit_flags, dos_time, dos_date, local_header_ofs, ext_attributes))
        +    return MZ_FALSE;
        +
        +  if ((!mz_zip_array_push_back(pZip, &pState->m_central_dir, central_dir_header, MZ_ZIP_CENTRAL_DIR_HEADER_SIZE)) ||
        +      (!mz_zip_array_push_back(pZip, &pState->m_central_dir, pFilename, filename_size)) ||
        +      (!mz_zip_array_push_back(pZip, &pState->m_central_dir, pExtra, extra_size)) ||
        +      (!mz_zip_array_push_back(pZip, &pState->m_central_dir, pComment, comment_size)) ||
        +      (!mz_zip_array_push_back(pZip, &pState->m_central_dir_offsets, &central_dir_ofs, 1)))
        +  {
        +    // Try to push the central directory array back into its original state.
        +    mz_zip_array_resize(pZip, &pState->m_central_dir, orig_central_dir_size, MZ_FALSE);
        +    return MZ_FALSE;
        +  }
        +
        +  return MZ_TRUE;
        +}
        +
        +static mz_bool mz_zip_writer_validate_archive_name(const char *pArchive_name)
        +{
        +  // Basic ZIP archive filename validity checks: Valid filenames cannot start with a forward slash, cannot contain a drive letter, and cannot use DOS-style backward slashes.
        +  if (*pArchive_name == '/')
        +    return MZ_FALSE;
        +  while (*pArchive_name)
        +  {
        +    if ((*pArchive_name == '\\') || (*pArchive_name == ':'))
        +      return MZ_FALSE;
        +    pArchive_name++;
        +  }
        +  return MZ_TRUE;
        +}
        +
        +static mz_uint mz_zip_writer_compute_padding_needed_for_file_alignment(mz_zip_archive *pZip)
        +{
        +  mz_uint32 n;
        +  if (!pZip->m_file_offset_alignment)
        +    return 0;
        +  n = (mz_uint32)(pZip->m_archive_size & (pZip->m_file_offset_alignment - 1));
        +  return (pZip->m_file_offset_alignment - n) & (pZip->m_file_offset_alignment - 1);
        +}
        +
        +static mz_bool mz_zip_writer_write_zeros(mz_zip_archive *pZip, mz_uint64 cur_file_ofs, mz_uint32 n)
        +{
        +  char buf[4096];
        +  memset(buf, 0, MZ_MIN(sizeof(buf), n));
        +  while (n)
        +  {
        +    mz_uint32 s = MZ_MIN(sizeof(buf), n);
        +    if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_file_ofs, buf, s) != s)
        +      return MZ_FALSE;
        +    cur_file_ofs += s; n -= s;
        +  }
        +  return MZ_TRUE;
        +}
        +
        +mz_bool mz_zip_writer_add_mem_ex(mz_zip_archive *pZip, const char *pArchive_name, const void *pBuf, size_t buf_size, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags, mz_uint64 uncomp_size, mz_uint32 uncomp_crc32)
        +{
        +  mz_uint16 method = 0, dos_time = 0, dos_date = 0;
        +  mz_uint level, ext_attributes = 0, num_alignment_padding_bytes;
        +  mz_uint64 local_dir_header_ofs = pZip->m_archive_size, cur_archive_file_ofs = pZip->m_archive_size, comp_size = 0;
        +  size_t archive_name_size;
        +  mz_uint8 local_dir_header[MZ_ZIP_LOCAL_DIR_HEADER_SIZE];
        +  tdefl_compressor *pComp = NULL;
        +  mz_bool store_data_uncompressed;
        +  mz_zip_internal_state *pState;
        +
        +  if ((int)level_and_flags < 0)
        +    level_and_flags = MZ_DEFAULT_LEVEL;
        +  level = level_and_flags & 0xF;
        +  store_data_uncompressed = ((!level) || (level_and_flags & MZ_ZIP_FLAG_COMPRESSED_DATA));
        +
        +  if ((!pZip) || (!pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_WRITING) || ((buf_size) && (!pBuf)) || (!pArchive_name) || ((comment_size) && (!pComment)) || (pZip->m_total_files == 0xFFFF) || (level > MZ_UBER_COMPRESSION))
        +    return MZ_FALSE;
        +
        +  pState = pZip->m_pState;
        +
        +  if ((!(level_and_flags & MZ_ZIP_FLAG_COMPRESSED_DATA)) && (uncomp_size))
        +    return MZ_FALSE;
        +  // No zip64 support yet
        +  if ((buf_size > 0xFFFFFFFF) || (uncomp_size > 0xFFFFFFFF))
        +    return MZ_FALSE;
        +  if (!mz_zip_writer_validate_archive_name(pArchive_name))
        +    return MZ_FALSE;
        +
        +#ifndef MINIZ_NO_TIME
        +  {
        +    time_t cur_time; time(&cur_time);
        +    mz_zip_time_to_dos_time(cur_time, &dos_time, &dos_date);
        +  }
        +#endif // #ifndef MINIZ_NO_TIME
        +
        +  archive_name_size = strlen(pArchive_name);
        +  if (archive_name_size > 0xFFFF)
        +    return MZ_FALSE;
        +
        +  num_alignment_padding_bytes = mz_zip_writer_compute_padding_needed_for_file_alignment(pZip);
        +
        +  // no zip64 support yet
        +  if ((pZip->m_total_files == 0xFFFF) || ((pZip->m_archive_size + num_alignment_padding_bytes + MZ_ZIP_LOCAL_DIR_HEADER_SIZE + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + comment_size + archive_name_size) > 0xFFFFFFFF))
        +    return MZ_FALSE;
        +
        +  if ((archive_name_size) && (pArchive_name[archive_name_size - 1] == '/'))
        +  {
        +    // Set DOS Subdirectory attribute bit.
        +    ext_attributes |= 0x10;
        +    // Subdirectories cannot contain data.
        +    if ((buf_size) || (uncomp_size))
        +      return MZ_FALSE;
        +  }
        +
        +  // Try to do any allocations before writing to the archive, so if an allocation fails the file remains unmodified. (A good idea if we're doing an in-place modification.)
        +  if ((!mz_zip_array_ensure_room(pZip, &pState->m_central_dir, MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + archive_name_size + comment_size)) || (!mz_zip_array_ensure_room(pZip, &pState->m_central_dir_offsets, 1)))
        +    return MZ_FALSE;
        +
        +  if ((!store_data_uncompressed) && (buf_size))
        +  {
        +    if (NULL == (pComp = (tdefl_compressor *)pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, sizeof(tdefl_compressor))))
        +      return MZ_FALSE;
        +  }
        +
        +  if (!mz_zip_writer_write_zeros(pZip, cur_archive_file_ofs, num_alignment_padding_bytes + sizeof(local_dir_header)))
        +  {
        +    pZip->m_pFree(pZip->m_pAlloc_opaque, pComp);
        +    return MZ_FALSE;
        +  }
        +  local_dir_header_ofs += num_alignment_padding_bytes;
        +  if (pZip->m_file_offset_alignment) { MZ_ASSERT((local_dir_header_ofs & (pZip->m_file_offset_alignment - 1)) == 0); }
        +  cur_archive_file_ofs += num_alignment_padding_bytes + sizeof(local_dir_header);
        +
        +  MZ_CLEAR_OBJ(local_dir_header);
        +  if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, pArchive_name, archive_name_size) != archive_name_size)
        +  {
        +    pZip->m_pFree(pZip->m_pAlloc_opaque, pComp);
        +    return MZ_FALSE;
        +  }
        +  cur_archive_file_ofs += archive_name_size;
        +
        +  if (!(level_and_flags & MZ_ZIP_FLAG_COMPRESSED_DATA))
        +  {
        +    uncomp_crc32 = (mz_uint32)mz_crc32(MZ_CRC32_INIT, (const mz_uint8*)pBuf, buf_size);
        +    uncomp_size = buf_size;
        +    if (uncomp_size <= 3)
        +    {
        +      level = 0;
        +      store_data_uncompressed = MZ_TRUE;
        +    }
        +  }
        +
        +  if (store_data_uncompressed)
        +  {
        +    if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, pBuf, buf_size) != buf_size)
        +    {
        +      pZip->m_pFree(pZip->m_pAlloc_opaque, pComp);
        +      return MZ_FALSE;
        +    }
        +
        +    cur_archive_file_ofs += buf_size;
        +    comp_size = buf_size;
        +
        +    if (level_and_flags & MZ_ZIP_FLAG_COMPRESSED_DATA)
        +      method = MZ_DEFLATED;
        +  }
        +  else if (buf_size)
        +  {
        +    mz_zip_writer_add_state state;
        +
        +    state.m_pZip = pZip;
        +    state.m_cur_archive_file_ofs = cur_archive_file_ofs;
        +    state.m_comp_size = 0;
        +
        +    if ((tdefl_init(pComp, mz_zip_writer_add_put_buf_callback, &state, tdefl_create_comp_flags_from_zip_params(level, -15, MZ_DEFAULT_STRATEGY)) != TDEFL_STATUS_OKAY) ||
        +        (tdefl_compress_buffer(pComp, pBuf, buf_size, TDEFL_FINISH) != TDEFL_STATUS_DONE))
        +    {
        +      pZip->m_pFree(pZip->m_pAlloc_opaque, pComp);
        +      return MZ_FALSE;
        +    }
        +
        +    comp_size = state.m_comp_size;
        +    cur_archive_file_ofs = state.m_cur_archive_file_ofs;
        +
        +    method = MZ_DEFLATED;
        +  }
        +
        +  pZip->m_pFree(pZip->m_pAlloc_opaque, pComp);
        +  pComp = NULL;
        +
        +  // no zip64 support yet
        +  if ((comp_size > 0xFFFFFFFF) || (cur_archive_file_ofs > 0xFFFFFFFF))
        +    return MZ_FALSE;
        +
        +  if (!mz_zip_writer_create_local_dir_header(pZip, local_dir_header, (mz_uint16)archive_name_size, 0, uncomp_size, comp_size, uncomp_crc32, method, 0, dos_time, dos_date))
        +    return MZ_FALSE;
        +
        +  if (pZip->m_pWrite(pZip->m_pIO_opaque, local_dir_header_ofs, local_dir_header, sizeof(local_dir_header)) != sizeof(local_dir_header))
        +    return MZ_FALSE;
        +
        +  if (!mz_zip_writer_add_to_central_dir(pZip, pArchive_name, (mz_uint16)archive_name_size, NULL, 0, pComment, comment_size, uncomp_size, comp_size, uncomp_crc32, method, 0, dos_time, dos_date, local_dir_header_ofs, ext_attributes))
        +    return MZ_FALSE;
        +
        +  pZip->m_total_files++;
        +  pZip->m_archive_size = cur_archive_file_ofs;
        +
        +  return MZ_TRUE;
        +}
        +
        +#ifndef MINIZ_NO_STDIO
        +mz_bool mz_zip_writer_add_file(mz_zip_archive *pZip, const char *pArchive_name, const char *pSrc_filename, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags)
        +{
        +  mz_uint uncomp_crc32 = MZ_CRC32_INIT, level, num_alignment_padding_bytes;
        +  mz_uint16 method = 0, dos_time = 0, dos_date = 0, ext_attributes = 0;
        +  mz_uint64 local_dir_header_ofs = pZip->m_archive_size, cur_archive_file_ofs = pZip->m_archive_size, uncomp_size = 0, comp_size = 0;
        +  size_t archive_name_size;
        +  mz_uint8 local_dir_header[MZ_ZIP_LOCAL_DIR_HEADER_SIZE];
        +  MZ_FILE *pSrc_file = NULL;
        +
        +  if ((int)level_and_flags < 0)
        +    level_and_flags = MZ_DEFAULT_LEVEL;
        +  level = level_and_flags & 0xF;
        +
        +  if ((!pZip) || (!pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_WRITING) || (!pArchive_name) || ((comment_size) && (!pComment)) || (level > MZ_UBER_COMPRESSION))
        +    return MZ_FALSE;
        +  if (level_and_flags & MZ_ZIP_FLAG_COMPRESSED_DATA)
        +    return MZ_FALSE;
        +  if (!mz_zip_writer_validate_archive_name(pArchive_name))
        +    return MZ_FALSE;
        +
        +  archive_name_size = strlen(pArchive_name);
        +  if (archive_name_size > 0xFFFF)
        +    return MZ_FALSE;
        +
        +  num_alignment_padding_bytes = mz_zip_writer_compute_padding_needed_for_file_alignment(pZip);
        +
        +  // no zip64 support yet
        +  if ((pZip->m_total_files == 0xFFFF) || ((pZip->m_archive_size + num_alignment_padding_bytes + MZ_ZIP_LOCAL_DIR_HEADER_SIZE + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + comment_size + archive_name_size) > 0xFFFFFFFF))
        +    return MZ_FALSE;
        +
        +  if (!mz_zip_get_file_modified_time(pSrc_filename, &dos_time, &dos_date))
        +    return MZ_FALSE;
        +    
        +  pSrc_file = MZ_FOPEN(pSrc_filename, "rb");
        +  if (!pSrc_file)
        +    return MZ_FALSE;
        +  MZ_FSEEK64(pSrc_file, 0, SEEK_END);
        +  uncomp_size = MZ_FTELL64(pSrc_file);
        +  MZ_FSEEK64(pSrc_file, 0, SEEK_SET);
        +
        +  if (uncomp_size > 0xFFFFFFFF)
        +  {
        +    // No zip64 support yet
        +    MZ_FCLOSE(pSrc_file);
        +    return MZ_FALSE;
        +  }
        +  if (uncomp_size <= 3)
        +    level = 0;
        +
        +  if (!mz_zip_writer_write_zeros(pZip, cur_archive_file_ofs, num_alignment_padding_bytes + sizeof(local_dir_header)))
        +  {
        +    MZ_FCLOSE(pSrc_file);
        +    return MZ_FALSE;
        +  }
        +  local_dir_header_ofs += num_alignment_padding_bytes;
        +  if (pZip->m_file_offset_alignment) { MZ_ASSERT((local_dir_header_ofs & (pZip->m_file_offset_alignment - 1)) == 0); }
        +  cur_archive_file_ofs += num_alignment_padding_bytes + sizeof(local_dir_header);
        +
        +  MZ_CLEAR_OBJ(local_dir_header);
        +  if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, pArchive_name, archive_name_size) != archive_name_size)
        +  {
        +    MZ_FCLOSE(pSrc_file);
        +    return MZ_FALSE;
        +  }
        +  cur_archive_file_ofs += archive_name_size;
        +
        +  if (uncomp_size)
        +  {
        +    mz_uint64 uncomp_remaining = uncomp_size;
        +    void *pRead_buf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, MZ_ZIP_MAX_IO_BUF_SIZE);
        +    if (!pRead_buf)
        +    {
        +      MZ_FCLOSE(pSrc_file);
        +      return MZ_FALSE;
        +    }
        +
        +    if (!level)
        +    {
        +      while (uncomp_remaining)
        +      {
        +        mz_uint n = (mz_uint)MZ_MIN(MZ_ZIP_MAX_IO_BUF_SIZE, uncomp_remaining);
        +        if ((MZ_FREAD(pRead_buf, 1, n, pSrc_file) != n) || (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, pRead_buf, n) != n))
        +        {
        +          pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf);
        +          MZ_FCLOSE(pSrc_file);
        +          return MZ_FALSE;
        +        }
        +        uncomp_crc32 = (mz_uint32)mz_crc32(uncomp_crc32, (const mz_uint8 *)pRead_buf, n);
        +        uncomp_remaining -= n;
        +        cur_archive_file_ofs += n;
        +      }
        +      comp_size = uncomp_size;
        +    }
        +    else
        +    {
        +      mz_bool result = MZ_FALSE;
        +      mz_zip_writer_add_state state;
        +      tdefl_compressor *pComp = (tdefl_compressor *)pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, sizeof(tdefl_compressor));
        +      if (!pComp)
        +      {
        +        pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf);
        +        MZ_FCLOSE(pSrc_file);
        +        return MZ_FALSE;
        +      }
        +
        +      state.m_pZip = pZip;
        +      state.m_cur_archive_file_ofs = cur_archive_file_ofs;
        +      state.m_comp_size = 0;
        +
        +      if (tdefl_init(pComp, mz_zip_writer_add_put_buf_callback, &state, tdefl_create_comp_flags_from_zip_params(level, -15, MZ_DEFAULT_STRATEGY)) != TDEFL_STATUS_OKAY)
        +      {
        +        pZip->m_pFree(pZip->m_pAlloc_opaque, pComp);
        +        pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf);
        +        MZ_FCLOSE(pSrc_file);
        +        return MZ_FALSE;
        +      }
        +
        +      for ( ; ; )
        +      {
        +        size_t in_buf_size = (mz_uint32)MZ_MIN(uncomp_remaining, MZ_ZIP_MAX_IO_BUF_SIZE);
        +        tdefl_status status;
        +
        +        if (MZ_FREAD(pRead_buf, 1, in_buf_size, pSrc_file) != in_buf_size)
        +          break;
        +
        +        uncomp_crc32 = (mz_uint32)mz_crc32(uncomp_crc32, (const mz_uint8 *)pRead_buf, in_buf_size);
        +        uncomp_remaining -= in_buf_size;
        +
        +        status = tdefl_compress_buffer(pComp, pRead_buf, in_buf_size, uncomp_remaining ? TDEFL_NO_FLUSH : TDEFL_FINISH);
        +        if (status == TDEFL_STATUS_DONE)
        +        {
        +          result = MZ_TRUE;
        +          break;
        +        }
        +        else if (status != TDEFL_STATUS_OKAY)
        +          break;
        +      }
        +
        +      pZip->m_pFree(pZip->m_pAlloc_opaque, pComp);
        +
        +      if (!result)
        +      {
        +        pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf);
        +        MZ_FCLOSE(pSrc_file);
        +        return MZ_FALSE;
        +      }
        +
        +      comp_size = state.m_comp_size;
        +      cur_archive_file_ofs = state.m_cur_archive_file_ofs;
        +
        +      method = MZ_DEFLATED;
        +    }
        +
        +    pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf);
        +  }
        +
        +  MZ_FCLOSE(pSrc_file); pSrc_file = NULL;
        +
        +  // no zip64 support yet
        +  if ((comp_size > 0xFFFFFFFF) || (cur_archive_file_ofs > 0xFFFFFFFF))
        +    return MZ_FALSE;
        +
        +  if (!mz_zip_writer_create_local_dir_header(pZip, local_dir_header, (mz_uint16)archive_name_size, 0, uncomp_size, comp_size, uncomp_crc32, method, 0, dos_time, dos_date))
        +    return MZ_FALSE;
        +
        +  if (pZip->m_pWrite(pZip->m_pIO_opaque, local_dir_header_ofs, local_dir_header, sizeof(local_dir_header)) != sizeof(local_dir_header))
        +    return MZ_FALSE;
        +
        +  if (!mz_zip_writer_add_to_central_dir(pZip, pArchive_name, (mz_uint16)archive_name_size, NULL, 0, pComment, comment_size, uncomp_size, comp_size, uncomp_crc32, method, 0, dos_time, dos_date, local_dir_header_ofs, ext_attributes))
        +    return MZ_FALSE;
        +
        +  pZip->m_total_files++;
        +  pZip->m_archive_size = cur_archive_file_ofs;
        +
        +  return MZ_TRUE;
        +}
        +#endif // #ifndef MINIZ_NO_STDIO
        +
        +mz_bool mz_zip_writer_add_from_zip_reader(mz_zip_archive *pZip, mz_zip_archive *pSource_zip, mz_uint file_index)
        +{
        +  mz_uint n, bit_flags, num_alignment_padding_bytes;
        +  mz_uint64 comp_bytes_remaining, local_dir_header_ofs;
        +  mz_uint64 cur_src_file_ofs, cur_dst_file_ofs;
        +  mz_uint32 local_header_u32[(MZ_ZIP_LOCAL_DIR_HEADER_SIZE + sizeof(mz_uint32) - 1) / sizeof(mz_uint32)]; mz_uint8 *pLocal_header = (mz_uint8 *)local_header_u32;
        +  mz_uint8 central_header[MZ_ZIP_CENTRAL_DIR_HEADER_SIZE];
        +  size_t orig_central_dir_size;
        +  mz_zip_internal_state *pState;
        +  void *pBuf; const mz_uint8 *pSrc_central_header;
        +
        +  if ((!pZip) || (!pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_WRITING))
        +    return MZ_FALSE;
        +  if (NULL == (pSrc_central_header = mz_zip_reader_get_cdh(pSource_zip, file_index)))
        +    return MZ_FALSE;
        +  pState = pZip->m_pState;
        +
        +  num_alignment_padding_bytes = mz_zip_writer_compute_padding_needed_for_file_alignment(pZip);
        +
        +  // no zip64 support yet
        +  if ((pZip->m_total_files == 0xFFFF) || ((pZip->m_archive_size + num_alignment_padding_bytes + MZ_ZIP_LOCAL_DIR_HEADER_SIZE + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE) > 0xFFFFFFFF))
        +    return MZ_FALSE;
        +
        +  cur_src_file_ofs = MZ_READ_LE32(pSrc_central_header + MZ_ZIP_CDH_LOCAL_HEADER_OFS);
        +  cur_dst_file_ofs = pZip->m_archive_size;
        +
        +  if (pSource_zip->m_pRead(pSource_zip->m_pIO_opaque, cur_src_file_ofs, pLocal_header, MZ_ZIP_LOCAL_DIR_HEADER_SIZE) != MZ_ZIP_LOCAL_DIR_HEADER_SIZE)
        +    return MZ_FALSE;
        +  if (MZ_READ_LE32(pLocal_header) != MZ_ZIP_LOCAL_DIR_HEADER_SIG)
        +    return MZ_FALSE;
        +  cur_src_file_ofs += MZ_ZIP_LOCAL_DIR_HEADER_SIZE;
        +
        +  if (!mz_zip_writer_write_zeros(pZip, cur_dst_file_ofs, num_alignment_padding_bytes))
        +    return MZ_FALSE;
        +  cur_dst_file_ofs += num_alignment_padding_bytes;
        +  local_dir_header_ofs = cur_dst_file_ofs;
        +  if (pZip->m_file_offset_alignment) { MZ_ASSERT((local_dir_header_ofs & (pZip->m_file_offset_alignment - 1)) == 0); }
        +
        +  if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_dst_file_ofs, pLocal_header, MZ_ZIP_LOCAL_DIR_HEADER_SIZE) != MZ_ZIP_LOCAL_DIR_HEADER_SIZE)
        +    return MZ_FALSE;
        +  cur_dst_file_ofs += MZ_ZIP_LOCAL_DIR_HEADER_SIZE;
        +
        +  n = MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_FILENAME_LEN_OFS) + MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_EXTRA_LEN_OFS);
        +  comp_bytes_remaining = n + MZ_READ_LE32(pSrc_central_header + MZ_ZIP_CDH_COMPRESSED_SIZE_OFS);
        +
        +  if (NULL == (pBuf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, (size_t)MZ_MAX(sizeof(mz_uint32) * 4, MZ_MIN(MZ_ZIP_MAX_IO_BUF_SIZE, comp_bytes_remaining)))))
        +    return MZ_FALSE;
        +
        +  while (comp_bytes_remaining)
        +  {
        +    n = (mz_uint)MZ_MIN(MZ_ZIP_MAX_IO_BUF_SIZE, comp_bytes_remaining);
        +    if (pSource_zip->m_pRead(pSource_zip->m_pIO_opaque, cur_src_file_ofs, pBuf, n) != n)
        +    {
        +      pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf);
        +      return MZ_FALSE;
        +    }
        +    cur_src_file_ofs += n;
        +
        +    if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_dst_file_ofs, pBuf, n) != n)
        +    {
        +      pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf);
        +      return MZ_FALSE;
        +    }
        +    cur_dst_file_ofs += n;
        +
        +    comp_bytes_remaining -= n;
        +  }
        +
        +  bit_flags = MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_BIT_FLAG_OFS);
        +  if (bit_flags & 8)
        +  {
        +    // Copy data descriptor
        +    if (pSource_zip->m_pRead(pSource_zip->m_pIO_opaque, cur_src_file_ofs, pBuf, sizeof(mz_uint32) * 4) != sizeof(mz_uint32) * 4)
        +    {
        +      pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf);
        +      return MZ_FALSE;
        +    }
        +
        +    n = sizeof(mz_uint32) * ((MZ_READ_LE32(pBuf) == 0x08074b50) ? 4 : 3);
        +    if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_dst_file_ofs, pBuf, n) != n)
        +    {
        +      pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf);
        +      return MZ_FALSE;
        +    }
        +
        +    cur_src_file_ofs += n;
        +    cur_dst_file_ofs += n;
        +  }
        +  pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf);
        +
        +  // no zip64 support yet
        +  if (cur_dst_file_ofs > 0xFFFFFFFF)
        +    return MZ_FALSE;
        +
        +  orig_central_dir_size = pState->m_central_dir.m_size;
        +
        +  memcpy(central_header, pSrc_central_header, MZ_ZIP_CENTRAL_DIR_HEADER_SIZE);
        +  MZ_WRITE_LE32(central_header + MZ_ZIP_CDH_LOCAL_HEADER_OFS, local_dir_header_ofs);
        +  if (!mz_zip_array_push_back(pZip, &pState->m_central_dir, central_header, MZ_ZIP_CENTRAL_DIR_HEADER_SIZE))
        +    return MZ_FALSE;
        +
        +  n = MZ_READ_LE16(pSrc_central_header + MZ_ZIP_CDH_FILENAME_LEN_OFS) + MZ_READ_LE16(pSrc_central_header + MZ_ZIP_CDH_EXTRA_LEN_OFS) + MZ_READ_LE16(pSrc_central_header + MZ_ZIP_CDH_COMMENT_LEN_OFS);
        +  if (!mz_zip_array_push_back(pZip, &pState->m_central_dir, pSrc_central_header + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE, n))
        +  {
        +    mz_zip_array_resize(pZip, &pState->m_central_dir, orig_central_dir_size, MZ_FALSE);
        +    return MZ_FALSE;
        +  }
        +
        +  if (pState->m_central_dir.m_size > 0xFFFFFFFF)
        +    return MZ_FALSE;
        +  n = (mz_uint32)orig_central_dir_size;
        +  if (!mz_zip_array_push_back(pZip, &pState->m_central_dir_offsets, &n, 1))
        +  {
        +    mz_zip_array_resize(pZip, &pState->m_central_dir, orig_central_dir_size, MZ_FALSE);
        +    return MZ_FALSE;
        +  }
        +
        +  pZip->m_total_files++;
        +  pZip->m_archive_size = cur_dst_file_ofs;
        +
        +  return MZ_TRUE;
        +}
        +
        +mz_bool mz_zip_writer_finalize_archive(mz_zip_archive *pZip)
        +{
        +  mz_zip_internal_state *pState;
        +  mz_uint64 central_dir_ofs, central_dir_size;
        +  mz_uint8 hdr[MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE];
        +
        +  if ((!pZip) || (!pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_WRITING))
        +    return MZ_FALSE;
        +
        +  pState = pZip->m_pState;
        +
        +  // no zip64 support yet
        +  if ((pZip->m_total_files > 0xFFFF) || ((pZip->m_archive_size + pState->m_central_dir.m_size + MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) > 0xFFFFFFFF))
        +    return MZ_FALSE;
        +
        +  central_dir_ofs = 0;
        +  central_dir_size = 0;
        +  if (pZip->m_total_files)
        +  {
        +    // Write central directory
        +    central_dir_ofs = pZip->m_archive_size;
        +    central_dir_size = pState->m_central_dir.m_size;
        +    pZip->m_central_directory_file_ofs = central_dir_ofs;
        +    if (pZip->m_pWrite(pZip->m_pIO_opaque, central_dir_ofs, pState->m_central_dir.m_p, (size_t)central_dir_size) != central_dir_size)
        +      return MZ_FALSE;
        +    pZip->m_archive_size += central_dir_size;
        +  }
        +
        +  // Write end of central directory record
        +  MZ_CLEAR_OBJ(hdr);
        +  MZ_WRITE_LE32(hdr + MZ_ZIP_ECDH_SIG_OFS, MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIG);
        +  MZ_WRITE_LE16(hdr + MZ_ZIP_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS, pZip->m_total_files);
        +  MZ_WRITE_LE16(hdr + MZ_ZIP_ECDH_CDIR_TOTAL_ENTRIES_OFS, pZip->m_total_files);
        +  MZ_WRITE_LE32(hdr + MZ_ZIP_ECDH_CDIR_SIZE_OFS, central_dir_size);
        +  MZ_WRITE_LE32(hdr + MZ_ZIP_ECDH_CDIR_OFS_OFS, central_dir_ofs);
        +
        +  if (pZip->m_pWrite(pZip->m_pIO_opaque, pZip->m_archive_size, hdr, sizeof(hdr)) != sizeof(hdr))
        +    return MZ_FALSE;
        +#ifndef MINIZ_NO_STDIO
        +  if ((pState->m_pFile) && (MZ_FFLUSH(pState->m_pFile) == EOF))
        +    return MZ_FALSE;
        +#endif // #ifndef MINIZ_NO_STDIO
        +
        +  pZip->m_archive_size += sizeof(hdr);
        +
        +  pZip->m_zip_mode = MZ_ZIP_MODE_WRITING_HAS_BEEN_FINALIZED;
        +  return MZ_TRUE;
        +}
        +
        +mz_bool mz_zip_writer_finalize_heap_archive(mz_zip_archive *pZip, void **pBuf, size_t *pSize)
        +{
        +  if ((!pZip) || (!pZip->m_pState) || (!pBuf) || (!pSize))
        +    return MZ_FALSE;
        +  if (pZip->m_pWrite != mz_zip_heap_write_func)
        +    return MZ_FALSE;
        +  if (!mz_zip_writer_finalize_archive(pZip))
        +    return MZ_FALSE;
        +
        +  *pBuf = pZip->m_pState->m_pMem;
        +  *pSize = pZip->m_pState->m_mem_size;
        +  pZip->m_pState->m_pMem = NULL;
        +  pZip->m_pState->m_mem_size = pZip->m_pState->m_mem_capacity = 0;
        +  return MZ_TRUE;
        +}
        +
        +mz_bool mz_zip_writer_end(mz_zip_archive *pZip)
        +{
        +  mz_zip_internal_state *pState;
        +  mz_bool status = MZ_TRUE;
        +  if ((!pZip) || (!pZip->m_pState) || (!pZip->m_pAlloc) || (!pZip->m_pFree) || ((pZip->m_zip_mode != MZ_ZIP_MODE_WRITING) && (pZip->m_zip_mode != MZ_ZIP_MODE_WRITING_HAS_BEEN_FINALIZED)))
        +    return MZ_FALSE;
        +
        +  pState = pZip->m_pState;
        +  pZip->m_pState = NULL;
        +  mz_zip_array_clear(pZip, &pState->m_central_dir);
        +  mz_zip_array_clear(pZip, &pState->m_central_dir_offsets);
        +  mz_zip_array_clear(pZip, &pState->m_sorted_central_dir_offsets);
        +
        +#ifndef MINIZ_NO_STDIO
        +  if (pState->m_pFile)
        +  {
        +    MZ_FCLOSE(pState->m_pFile);
        +    pState->m_pFile = NULL;
        +  }
        +#endif // #ifndef MINIZ_NO_STDIO
        +
        +  if ((pZip->m_pWrite == mz_zip_heap_write_func) && (pState->m_pMem))
        +  {
        +    pZip->m_pFree(pZip->m_pAlloc_opaque, pState->m_pMem);
        +    pState->m_pMem = NULL;
        +  }
        +
        +  pZip->m_pFree(pZip->m_pAlloc_opaque, pState);
        +  pZip->m_zip_mode = MZ_ZIP_MODE_INVALID;
        +  return status;
        +}
        +
        +#ifndef MINIZ_NO_STDIO
        +mz_bool mz_zip_add_mem_to_archive_file_in_place(const char *pZip_filename, const char *pArchive_name, const void *pBuf, size_t buf_size, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags)
        +{
        +  mz_bool status, created_new_archive = MZ_FALSE;
        +  mz_zip_archive zip_archive;
        +  struct MZ_FILE_STAT_STRUCT file_stat;
        +  MZ_CLEAR_OBJ(zip_archive);
        +  if ((int)level_and_flags < 0)
        +     level_and_flags = MZ_DEFAULT_LEVEL;
        +  if ((!pZip_filename) || (!pArchive_name) || ((buf_size) && (!pBuf)) || ((comment_size) && (!pComment)) || ((level_and_flags & 0xF) > MZ_UBER_COMPRESSION))
        +    return MZ_FALSE;
        +  if (!mz_zip_writer_validate_archive_name(pArchive_name))
        +    return MZ_FALSE;
        +  if (MZ_FILE_STAT(pZip_filename, &file_stat) != 0)
        +  {
        +    // Create a new archive.
        +    if (!mz_zip_writer_init_file(&zip_archive, pZip_filename, 0))
        +      return MZ_FALSE;
        +    created_new_archive = MZ_TRUE;
        +  }
        +  else
        +  {
        +    // Append to an existing archive.
        +    if (!mz_zip_reader_init_file(&zip_archive, pZip_filename, level_and_flags | MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY))
        +      return MZ_FALSE;
        +    if (!mz_zip_writer_init_from_reader(&zip_archive, pZip_filename))
        +    {
        +      mz_zip_reader_end(&zip_archive);
        +      return MZ_FALSE;
        +    }
        +  }
        +  status = mz_zip_writer_add_mem_ex(&zip_archive, pArchive_name, pBuf, buf_size, pComment, comment_size, level_and_flags, 0, 0);
        +  // Always finalize, even if adding failed for some reason, so we have a valid central directory. (This may not always succeed, but we can try.)
        +  if (!mz_zip_writer_finalize_archive(&zip_archive))
        +    status = MZ_FALSE;
        +  if (!mz_zip_writer_end(&zip_archive))
        +    status = MZ_FALSE;
        +  if ((!status) && (created_new_archive))
        +  {
        +    // It's a new archive and something went wrong, so just delete it.
        +    int ignoredStatus = MZ_DELETE_FILE(pZip_filename);
        +    (void)ignoredStatus;
        +  }
        +  return status;
        +}
        +
        +void *mz_zip_extract_archive_file_to_heap(const char *pZip_filename, const char *pArchive_name, size_t *pSize, mz_uint flags)
        +{
        +  int file_index;
        +  mz_zip_archive zip_archive;
        +  void *p = NULL;
        +
        +  if (pSize)
        +    *pSize = 0;
        +
        +  if ((!pZip_filename) || (!pArchive_name))
        +    return NULL;
        +
        +  MZ_CLEAR_OBJ(zip_archive);
        +  if (!mz_zip_reader_init_file(&zip_archive, pZip_filename, flags | MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY))
        +    return NULL;
        +
        +  if ((file_index = mz_zip_reader_locate_file(&zip_archive, pArchive_name, NULL, flags)) >= 0)
        +    p = mz_zip_reader_extract_to_heap(&zip_archive, file_index, pSize, flags);
        +
        +  mz_zip_reader_end(&zip_archive);
        +  return p;
        +}
        +
        +#endif // #ifndef MINIZ_NO_STDIO
        +
        +#endif // #ifndef MINIZ_NO_ARCHIVE_WRITING_APIS
        +
        +#endif // #ifndef MINIZ_NO_ARCHIVE_APIS
        +
        +#ifdef __cplusplus
        +}
        +#endif
        +
        +#endif // MINIZ_HEADER_FILE_ONLY
        +
        +/*
        +  This is free and unencumbered software released into the public domain.
        +
        +  Anyone is free to copy, modify, publish, use, compile, sell, or
        +  distribute this software, either in source code form or as a compiled
        +  binary, for any purpose, commercial or non-commercial, and by any
        +  means.
        +
        +  In jurisdictions that recognize copyright laws, the author or authors
        +  of this software dedicate any and all copyright interest in the
        +  software to the public domain. We make this dedication for the benefit
        +  of the public at large and to the detriment of our heirs and
        +  successors. We intend this dedication to be an overt act of
        +  relinquishment in perpetuity of all present and future rights to this
        +  software under copyright law.
        +
        +  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
        +  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
        +  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
        +  IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
        +  OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
        +  ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
        +  OTHER DEALINGS IN THE SOFTWARE.
        +
        +  For more information, please refer to <http://unlicense.org/>
        +*/
        diff --git a/lib/ulib/3rd/zip/zip.c b/lib/ulib/3rd/zip/zip.c
        new file mode 100755
        index 0000000..565eb30
        --- /dev/null
        +++ b/lib/ulib/3rd/zip/zip.c
        @@ -0,0 +1,471 @@
        +/*
        +  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
        +  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
        +  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
        +  IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
        +  OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
        +  ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
        +  OTHER DEALINGS IN THE SOFTWARE.
        +*/
        +#include <sys/stat.h>
        +#include <errno.h>
        +
        +#include "miniz.c"
        +#include "zip.h"
        +
        +#if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__
        +/* Win32, OS/2, DOS */
        +#define HAS_DEVICE(P) ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) && (P)[1] == ':')
        +#define FILESYSTEM_PREFIX_LEN(P) (HAS_DEVICE (P) ? 2 : 0)
        +#define ISSLASH(C) ((C) == '/' || (C) == '\\')
        +#endif
        +
        +#ifndef FILESYSTEM_PREFIX_LEN
        +#define FILESYSTEM_PREFIX_LEN(P) 0
        +#endif
        +
        +#ifndef ISSLASH
        +#define ISSLASH(C) ((C) == '/')
        +#endif
        +
        +#define cleanup(ptr)    do { if (ptr) { free((void *)ptr); ptr = NULL; } } while (0)
        +#define strclone(ptr)   ((ptr) ? strdup(ptr) : NULL)
        +
        +char *basename(const char *name) {
        +    char const *p;
        +    char const *base = name += FILESYSTEM_PREFIX_LEN (name);
        +    int all_slashes = 1;
        +
        +    for (p = name; *p; p++) {
        +        if (ISSLASH(*p))
        +            base = p + 1;
        +        else
        +            all_slashes = 0;
        +    }
        +
        +    /* If NAME is all slashes, arrange to return `/'. */
        +    if (*base == '\0' && ISSLASH(*name) && all_slashes)
        +        --base;
        +
        +    return (char *)base;
        +}
        +
        +static int mkpath(const char *path) {
        +    const int mode = 0755;
        +    char const *p;
        +    char npath[MAX_PATH + 1] = { 0 };
        +    int len = 0;
        +
        +    for (p = path; *p && len < MAX_PATH; p++) {
        +        if (ISSLASH(*p) && len > 0) {
        +            if (mkdir(npath, mode) == -1)
        +                if (errno != EEXIST)  return -1;
        +        }
        +        npath[len++] = *p;
        +    }
        +
        +    return 0;
        +}
        +
        +struct zip_entry_t {
        +    const char              *name;
        +    mz_uint64               uncomp_size;
        +    mz_uint64               comp_size;
        +    mz_uint32               uncomp_crc32;
        +    mz_uint64               offset;
        +    mz_uint8                header[MZ_ZIP_LOCAL_DIR_HEADER_SIZE];
        +    mz_uint64               header_offset;
        +    mz_uint16               method;
        +    mz_zip_writer_add_state state;
        +    tdefl_compressor        comp;
        +};
        +
        +struct zip_t {
        +    mz_zip_archive      archive;
        +    mz_uint             level;
        +    struct zip_entry_t  entry;
        +};
        +
        +struct zip_t *zip_open(const char *zipname, int level, int append) {
        +	struct zip_t *zip = NULL;
        +	struct MZ_FILE_STAT_STRUCT fstat;
        +
        +    if (!zipname || strlen(zipname) < 1) {
        +        // zip_t archive name is empty or NULL
        +        return NULL;
        +    }
        +
        +    if (level < 0) level = MZ_DEFAULT_LEVEL;
        +    if ((level & 0xF) > MZ_UBER_COMPRESSION) {
        +        // Wrong compression level
        +        return NULL;
        +    }
        +
        +    zip = (struct zip_t *)calloc((size_t)1, sizeof(struct zip_t));
        +    if (zip) {
        +        zip->level = level;
        +
        +        if (append && MZ_FILE_STAT(zipname, &fstat) == 0) {
        +            // Append to an existing archive.
        +            if (!mz_zip_reader_init_file(&(zip->archive), zipname, level | MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY)) {
        +                cleanup(zip);
        +                return NULL;
        +            }
        +
        +            if (!mz_zip_writer_init_from_reader(&(zip->archive), zipname)) {
        +                mz_zip_reader_end(&(zip->archive));
        +                cleanup(zip);
        +                return NULL;
        +            }
        +        } else {
        +            // Create a new archive.
        +            if (!mz_zip_writer_init_file(&(zip->archive), zipname, 0)) {
        +                // Cannot initialize zip_archive writer
        +                cleanup(zip);
        +                return NULL;
        +            }
        +        }
        +    }
        +
        +    return zip;
        +}
        +
        +void zip_close(struct zip_t *zip) {
        +    if (zip) {
        +        // Always finalize, even if adding failed for some reason, so we have a valid central directory.
        +        mz_zip_writer_finalize_archive(&(zip->archive));
        +        mz_zip_writer_end(&(zip->archive));
        +
        +        cleanup(zip);
        +    }
        +}
        +
        +int zip_entry_open(struct zip_t *zip, const char *entryname) {
        +    size_t entrylen = 0;
        +	mz_zip_archive *pzip = NULL;
        +	mz_uint num_alignment_padding_bytes, level;
        +
        +	if (!zip || !entryname) {
        +        return -1;
        +    }
        +
        +    entrylen = strlen(entryname);
        +    if (entrylen < 1) {
        +        return -1;
        +    }
        +
        +    zip->entry.name = strclone(entryname);
        +    if (!zip->entry.name) {
        +        // Cannot parse zip entry name
        +        return -1;
        +    }
        +
        +    zip->entry.comp_size = 0;
        +    zip->entry.uncomp_size = 0;
        +    zip->entry.uncomp_crc32 = MZ_CRC32_INIT;
        +    zip->entry.offset = zip->archive.m_archive_size;
        +    zip->entry.header_offset = zip->archive.m_archive_size;
        +    memset(zip->entry.header, 0, MZ_ZIP_LOCAL_DIR_HEADER_SIZE * sizeof(mz_uint8));
        +    zip->entry.method = 0;
        +
        +    pzip = &(zip->archive);
        +    num_alignment_padding_bytes = mz_zip_writer_compute_padding_needed_for_file_alignment(pzip);
        +
        +    if (!pzip->m_pState || (pzip->m_zip_mode != MZ_ZIP_MODE_WRITING)) {
        +        // Wrong zip mode
        +        return -1;
        +    }
        +    if (zip->level & MZ_ZIP_FLAG_COMPRESSED_DATA) {
        +        // Wrong zip compression level
        +        return -1;
        +    }
        +    // no zip64 support yet
        +    if ((pzip->m_total_files == 0xFFFF) || ((pzip->m_archive_size + num_alignment_padding_bytes + MZ_ZIP_LOCAL_DIR_HEADER_SIZE + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + entrylen) > 0xFFFFFFFF)) {
        +        // No zip64 support yet
        +        return -1;
        +    }
        +    if (!mz_zip_writer_write_zeros(pzip, zip->entry.offset, num_alignment_padding_bytes + sizeof(zip->entry.header))) {
        +        // Cannot memset zip entry header
        +        return -1;
        +    }
        +
        +    zip->entry.header_offset += num_alignment_padding_bytes;
        +    if (pzip->m_file_offset_alignment) { MZ_ASSERT((zip->entry.header_offset & (pzip->m_file_offset_alignment - 1)) == 0); }
        +    zip->entry.offset += num_alignment_padding_bytes + sizeof(zip->entry.header);
        +
        +    if (pzip->m_pWrite(pzip->m_pIO_opaque, zip->entry.offset, zip->entry.name, entrylen) != entrylen) {
        +        // Cannot write data to zip entry
        +        return -1;
        +    }
        +
        +    zip->entry.offset += entrylen;
        +    level = zip->level & 0xF;
        +    if (level) {
        +        zip->entry.state.m_pZip = pzip;
        +        zip->entry.state.m_cur_archive_file_ofs = zip->entry.offset;
        +        zip->entry.state.m_comp_size = 0;
        +
        +        if (tdefl_init(&(zip->entry.comp), mz_zip_writer_add_put_buf_callback, &(zip->entry.state), tdefl_create_comp_flags_from_zip_params(level, -15, MZ_DEFAULT_STRATEGY)) != TDEFL_STATUS_OKAY) {
        +            // Cannot initialize the zip compressor
        +            return -1;
        +        }
        +    }
        +
        +    return 0;
        +}
        +
        +int zip_entry_close(struct zip_t *zip) {
        +	mz_zip_archive *pzip = NULL;
        +	mz_uint level;
        +	tdefl_status done;
        +	mz_uint16 entrylen;
        +    time_t t;
        +    struct tm *tm;
        +    mz_uint16 dos_time, dos_date;
        +
        +    if (!zip) {
        +        // zip_t handler is not initialized
        +        return -1;
        +    }
        +
        +    pzip = &(zip->archive);
        +    level = zip->level & 0xF;
        +    if (level) {
        +        done = tdefl_compress_buffer(&(zip->entry.comp), "", 0, TDEFL_FINISH);
        +        if (done != TDEFL_STATUS_DONE && done != TDEFL_STATUS_OKAY) {
        +            // Cannot flush compressed buffer
        +            cleanup(zip->entry.name);
        +            return -1;
        +        }
        +        zip->entry.comp_size = zip->entry.state.m_comp_size;
        +        zip->entry.offset = zip->entry.state.m_cur_archive_file_ofs;
        +        zip->entry.method = MZ_DEFLATED;
        +    }
        +
        +    entrylen = (mz_uint16)strlen(zip->entry.name);
        +    t = time(NULL);
        +    tm = localtime(&t);
        +    dos_time = (mz_uint16)(((tm->tm_hour) << 11) + ((tm->tm_min) << 5) + ((tm->tm_sec) >> 1));
        +    dos_date = (mz_uint16)(((tm->tm_year + 1900 - 1980) << 9) + ((tm->tm_mon + 1) << 5) + tm->tm_mday);
        +
        +    // no zip64 support yet
        +    if ((zip->entry.comp_size > 0xFFFFFFFF) || (zip->entry.offset > 0xFFFFFFFF)) {
        +        // No zip64 support, yet
        +        cleanup(zip->entry.name);
        +        return -1;
        +    }
        +
        +    if (!mz_zip_writer_create_local_dir_header(pzip, zip->entry.header, entrylen, 0, zip->entry.uncomp_size, zip->entry.comp_size, zip->entry.uncomp_crc32, zip->entry.method, 0, dos_time, dos_date)) {
        +        // Cannot create zip entry header
        +        cleanup(zip->entry.name);
        +        return -1;
        +    }
        +
        +    if (pzip->m_pWrite(pzip->m_pIO_opaque, zip->entry.header_offset, zip->entry.header, sizeof(zip->entry.header)) != sizeof(zip->entry.header)) {
        +        // Cannot write zip entry header
        +        cleanup(zip->entry.name);
        +        return -1;
        +    }
        +
        +    if (!mz_zip_writer_add_to_central_dir(pzip, zip->entry.name, entrylen, NULL, 0, "", 0, zip->entry.uncomp_size, zip->entry.comp_size, zip->entry.uncomp_crc32, zip->entry.method, 0, dos_time, dos_date, zip->entry.header_offset, 0)) {
        +        // Cannot write to zip central dir
        +        cleanup(zip->entry.name);
        +        return -1;
        +    }
        +
        +    pzip->m_total_files++;
        +    pzip->m_archive_size = zip->entry.offset;
        +
        +    cleanup(zip->entry.name);
        +    return 0;
        +}
        +
        +int zip_entry_write(struct zip_t *zip, const void *buf, size_t bufsize) {
        +	mz_uint level;
        +	mz_zip_archive *pzip = NULL;
        +	tdefl_status status;
        +
        +    if (!zip) {
        +        // zip_t handler is not initialized
        +        return -1;
        +    }
        +
        +    pzip = &(zip->archive);
        +    if (buf && bufsize > 0) {
        +        zip->entry.uncomp_size += bufsize;
        +        zip->entry.uncomp_crc32 = (mz_uint32)mz_crc32(zip->entry.uncomp_crc32, (const mz_uint8 *)buf, bufsize);
        +
        +       level = zip->level & 0xF;
        +        if (!level) {
        +            if ((pzip->m_pWrite(pzip->m_pIO_opaque, zip->entry.offset, buf, bufsize) != bufsize)) {
        +                // Cannot write buffer
        +                return -1;
        +            }
        +            zip->entry.offset += bufsize;
        +            zip->entry.comp_size += bufsize;
        +        } else {
        +             status = tdefl_compress_buffer(&(zip->entry.comp), buf, bufsize, TDEFL_NO_FLUSH);
        +            if (status != TDEFL_STATUS_DONE && status != TDEFL_STATUS_OKAY) {
        +                // Cannot compress buffer
        +                return -1;
        +            }
        +        }
        +    }
        +
        +    return 0;
        +}
        +
        +int zip_entry_fwrite(struct zip_t *zip, const char *filename) {
        +	int status = 0;
        +    size_t n = 0;
        +	FILE *stream = NULL;
        +	mz_uint8 buf[MZ_ZIP_MAX_IO_BUF_SIZE] = { 0 };
        +
        +    if (!zip) {
        +        // zip_t handler is not initialized
        +        return -1;
        +    }
        +
        +    stream = fopen(filename, "rb");
        +    if (!stream) {
        +        // Cannot open filename
        +        return -1;
        +    }
        +
        +    while((n = fread(buf, sizeof(mz_uint8), MZ_ZIP_MAX_IO_BUF_SIZE, stream)) > 0) {
        +        if (zip_entry_write(zip, buf, n) < 0) {
        +            status = -1;
        +            break;
        +        }
        +    }
        +    fclose(stream);
        +
        +    return status;
        +}
        +
        +int zip_create(const char *zipname, const char *filenames[], size_t len) {
        +	int status = 0;
        +	size_t i;
        +	mz_zip_archive  zip_archive;
        +
        +    if (!zipname || strlen(zipname) < 1) {
        +        // zip_t archive name is empty or NULL
        +        return -1;
        +    }
        +
        +    // Create a new archive.
        +    if (!memset(&(zip_archive), 0, sizeof(zip_archive))) {
        +        // Cannot memset zip archive
        +        return -1;
        +    }
        +
        +    if (!mz_zip_writer_init_file(&zip_archive, zipname, 0)) {
        +        // Cannot initialize zip_archive writer
        +        return -1;
        +    }
        +
        +    for (i = 0; i < len; ++i) {
        +        const char *name = filenames[i];
        +        if (!name) {
        +            status = -1;
        +            break;
        +        }
        +
        +        if (!mz_zip_writer_add_file(&zip_archive, basename(name), name, "", 0, ZIP_DEFAULT_COMPRESSION_LEVEL)) {
        +            // Cannot add file to zip_archive
        +            status = -1;
        +            break;
        +        }
        +    }
        +
        +    mz_zip_writer_finalize_archive(&zip_archive);
        +    mz_zip_writer_end(&zip_archive);
        +    return status;
        +}
        +
        +int zip_extract(const char *zipname, const char *dir, int (* on_extract)(const char *filename, void *arg), void *arg) {
        +    int status = 0;
        +    mz_uint i, n;
        +    char path[MAX_PATH + 1] = { 0 };
        +	mz_zip_archive zip_archive;
        +	mz_zip_archive_file_stat info;
        +    size_t dirlen = 0;
        +
        +    if (!memset(&(zip_archive), 0, sizeof(zip_archive))) {
        +        // Cannot memset zip archive
        +        return -1;
        +    }
        +
        +    if (!zipname || !dir) {
        +        // Cannot parse zip archive name
        +        return -1;
        +    }
        +
        +	dirlen = strlen(dir);
        +    if (dirlen + 1 > MAX_PATH) {
        +        return -1;
        +    }
        +
        +    // Now try to open the archive.
        +    if (!mz_zip_reader_init_file(&zip_archive, zipname, 0)) {
        +        // Cannot initialize zip_archive reader
        +        status = -1;
        +        goto finally;
        +    }
        +
        +    strcpy(path, dir);
        +    if (!ISSLASH(path[dirlen -1])) {
        +#if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__
        +        path[dirlen] = '\\';
        +#else
        +        path[dirlen] = '/';
        +#endif
        +        ++dirlen;
        +    }
        +
        +    // Get and print information about each file in the archive.
        +    n = mz_zip_reader_get_num_files(&zip_archive);
        +    for (i = 0; i < n; ++i) {
        +        if (!mz_zip_reader_file_stat(&zip_archive, i, &info)) {
        +            // Cannot get information about zip archive;
        +			//printf("Cant get information about fimes");
        +            status = -1;
        +            break;
        +        }
        +
        +        strncpy(&path[dirlen], info.m_filename, MAX_PATH - dirlen);
        +        if (mkpath(path) < 0) {
        +            // Cannot make a path
        +			//printf("Cant create path\n");
        +            status = -1;
        +            break;
        +        }
        +
        +		// verify if the path is directory first
        +		// issue fixed by xsang.le@gmail.com
        +		struct stat path_stat;
        +		if(stat(path, &path_stat) != 0 || !(path_stat.st_mode & S_IFDIR))
        +        	if (!mz_zip_reader_extract_to_file(&zip_archive, i, path, 0)) {
        +            // Cannot extract zip archive to file
        +				//printf("Cant extract %s\n", path);
        +				status = -1;
        +				break;
        +        	}
        +
        +        if (on_extract) {
        +            if (on_extract(path, arg) < 0) {
        +                status = -1;
        +                break;
        +            }
        +        }
        +    }
        +
        +    // Close the archive, freeing any resources it was using
        +    if (!mz_zip_reader_end(&zip_archive)) {
        +        // Cannot end zip reader
        +        status = -1;
        +    }
        +
        +    finally:
        +    return status;
        +}
        diff --git a/lib/ulib/3rd/zip/zip.h b/lib/ulib/3rd/zip/zip.h
        new file mode 100755
        index 0000000..2bddc02
        --- /dev/null
        +++ b/lib/ulib/3rd/zip/zip.h
        @@ -0,0 +1,90 @@
        +/*
        +  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
        +  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
        +  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
        +  IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
        +  OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
        +  ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
        +  OTHER DEALINGS IN THE SOFTWARE.
        +*/
        +
        +#pragma once
        +#ifndef	ZIP_H
        +#define ZIP_H
        +
        +#include <string.h>
        +
        +#ifdef __cplusplus
        +extern "C" {
        +#endif
        +
        +#ifndef MAX_PATH
        +#define MAX_PATH    32767    /* # chars in a path name including NULL */
        +#endif
        +
        +#define ZIP_DEFAULT_COMPRESSION_LEVEL   6
        +
        +/* This data structure is used throughout the library to represent zip archive - forward declaration. */
        +struct zip_t;
        +
        +/*
        +  Opens zip archive with compression level.
        +  If append is 0 then new archive will be created, otherwise function will try to append to the specified zip archive,
        +  instead of creating a new one.
        +  Compression levels: 0-9 are the standard zlib-style levels.
        +  Returns pointer to zip_t structure or NULL on error.
        +*/
        +struct zip_t *zip_open(const char *zipname, int level, int append);
        +
        +/* Closes zip archive, releases resources - always finalize. */
        +void zip_close(struct zip_t *zip);
        +
        +/*
        +  Opens a new entry for writing in a zip archive.
        +  Returns negative number (< 0) on error, 0 on success.
        +*/
        +int zip_entry_open(struct zip_t *zip, const char *entryname);
        +
        +/*
        +  Closes zip entry, flushes buffer and releases resources.
        +  Returns negative number (< 0) on error, 0 on success.
        +*/
        +int zip_entry_close(struct zip_t *zip);
        +
        +/*
        +  Compresses an input buffer for the current zip entry.
        +  Returns negative number (< 0) on error, 0 on success.
        +*/
        +int zip_entry_write(struct zip_t *zip, const void *buf, size_t bufsize);
        +
        +/*
        +  Compresses a file for the current zip entry.
        +  Returns negative number (< 0) on error, 0 on success.
        +*/
        +int zip_entry_fwrite(struct zip_t *zip, const char *filename);
        +
        +/*
        +  Creates a new archive and puts len files into a single zip archive
        +  Returns negative number (< 0) on error, 0 on success.
        +*/
        +int zip_create(const char *zipname, const char *filenames[], size_t len);
        +
        +/*
        +  Extracts a zip archive file into dir.
        +  If on_extract_entry is not NULL, the callback will be called after successfully extracted each zip entry.
        +  Returning a negative value from the callback will cause abort the extract and return an error.
        +
        +  The last argument (void *arg) is optional, which you can use to pass some data to the on_extract_entry callback.
        +
        +  Returns negative number (< 0) on error, 0 on success.
        +*/
        +int zip_extract(const char *zipname, const char *dir, int (* on_extract_entry)(const char *filename, void *arg), void *arg);
        +
        +#ifdef __cplusplus
        +}
        +#endif
        +
        +#endif
        +
        +
        +
        diff --git a/lib/ulib/Makefile b/lib/ulib/Makefile
        new file mode 100644
        index 0000000..d6158b8
        --- /dev/null
        +++ b/lib/ulib/Makefile
        @@ -0,0 +1,7 @@
        +include ../../../../var.mk
        +
        +LIB_NAME=ulib.$(LIB_EXT)
        +LIB_OBJ=  ulib.o 3rd/zip/zip.o
        +
        +
        +include ../../lib.mk
        diff --git a/lib/ulib/ulib.c b/lib/ulib/ulib.c
        new file mode 100644
        index 0000000..86b636b
        --- /dev/null
        +++ b/lib/ulib/ulib.c
        @@ -0,0 +1,631 @@
        +#ifdef LINUX
        + #include <unistd.h>
        + #include <limits.h>
        + #include <pwd.h>
        + #include <shadow.h>
        +#endif
        +#include <stdint.h>
        +#include <stdio.h>
        +#include <stdlib.h>
        +#include <time.h>
        +#include <sys/stat.h>
        +#include <sys/types.h>
        +#include <errno.h>
        +#include <pwd.h>
        +#include <grp.h>
        +#include <ctype.h>
        +#include "../lualib.h"
        +#include "utils.h"
        +// zip library
        +#include "3rd/zip/zip.h"
        +
        +static int l_check_login (lua_State *L) {
        +#ifdef LINUX
        +	const char* username = luaL_checkstring(L,1);
        +	const char* password = luaL_checkstring(L,2);
        +	
        +    char *encrypted;
        +    struct passwd *pwd;
        +    struct spwd *spwd;
        +   /* Look up password and shadow password records for username */
        +    pwd = getpwnam(username);
        +    if (pwd == NULL)
        +    {
        +    	lua_pushboolean(L,0);
        +		printf("Cannot find pwd record of %s\n", username );
        +		return 1;
        +    }
        +    spwd = getspnam(username);
        +    if (spwd == NULL)
        +	{
        +		lua_pushboolean(L,0);
        +        printf("no permission to read shadow password file\n");
        +		return 1;
        +	}
        +
        +    if (spwd != NULL)           /* If there is a shadow password record */
        +	{
        +        pwd->pw_passwd = spwd->sp_pwdp;     /* Use the shadow password */
        +	}
        +	else
        +	{
        +    	lua_pushboolean(L,0);
        +		printf("shadow record is null \n" );
        +		return 1;
        +	}
        +    /* Encrypt password and erase cleartext version immediately */
        +    encrypted = crypt(password, pwd->pw_passwd);
        +    if (encrypted == NULL)
        +	{
        +    	lua_pushboolean(L,0);
        +		printf("Cant crypt \n" );
        +		return 1;
        +	}
        +    if(strcmp(encrypted, pwd->pw_passwd) == 0)
        +	{
        +    	lua_pushboolean(L,1);
        +		printf("%s\n","Successful login" );
        +		return 1;
        +	} else
        +	{
        +    	lua_pushboolean(L,0);
        +		printf("Password incorrect \n" );
        +		return 1;
        +    }
        +#else
        +	// macos
        +	// just pass the check, for test only
        +	lua_pushboolean(L,1);
        +	printf("%s\n","Successful login" );
        +	return 1;
        +#endif
        +}
        +static void get_userId(const char* name, uid_t* uid,gid_t* gid )
        +{
        +    struct passwd *pwd;
        +    uid_t u;
        +    char *endptr;
        +	if (name == NULL || *name == '\0')
        +	{
        +		*uid = -1; *gid=-1;
        +		return;
        +	}
        +	u = strtol(name, &endptr, 10);
        +	if (*endptr == '\0')
        +	{
        +		*uid = u;
        +		*gid = -1;
        +		return;
        +	}
        +	pwd = getpwnam(name);
        +	if (pwd == NULL)
        +	{
        +		*uid = -1; *gid=-1;
        +		return;
        +	}
        +	 *uid = pwd->pw_uid;
        +	 *gid = pwd->pw_gid;
        +}
        +static int l_fork(lua_State* L)
        +{
        +	int pid = fork();
        +	lua_pushnumber(L, pid);
        +	return 1;
        +}
        +static int l_waitpid(lua_State* L)
        +{
        +	int pid = luaL_checknumber(L,1);
        +	int status;
        +    waitpid(pid, &status, 0);
        +	lua_pushnumber(L, status);
        +}
        +static int l_setuid(lua_State* L)
        +{
        +	uid_t uid = (uid_t) luaL_checknumber(L,1);
        +	if((int)uid != -1)
        +	{
        +		if(seteuid(uid) < 0)
        +		{
        +			printf("UID set problem: %s\n", strerror(errno));
        +			lua_pushboolean(L,0);
        +		}
        +		else
        +		{
        +			//printf("UID set\n");
        +			lua_pushboolean(L,1);
        +		}
        +	}
        +	else
        +		lua_pushboolean(L,0);
        +	return 1;
        +}
        +static int l_setgid(lua_State* L)
        +{
        +	uid_t gid = (uid_t) luaL_checknumber(L,1);
        +	if((int)gid != -1)
        +	{
        +		if(setegid(gid) < 0)
        +		{
        +			printf("GID set problem: %s\n", strerror(errno));
        +			lua_pushboolean(L,0);
        +		}
        +		else
        +		{
        +			//printf("GID set\n");
        +			lua_pushboolean(L,1);
        +		}
        +	}
        +	else
        +		lua_pushboolean(L,0);
        +	return 1;
        +}
        +static int l_getuid(lua_State* L)
        +{
        +	const char* name = luaL_checkstring(L,1);
        +	uid_t uid = -1;
        +	uid_t gid = -1;
        +	get_userId(name,&uid,&gid);
        +	lua_newtable(L);
        +	
        +	lua_pushstring(L,"id");
        +	lua_pushnumber(L,uid);
        +	lua_settable(L,-3);
        +	
        +	lua_pushstring(L,"gid");
        +	lua_pushnumber(L,gid);
        +	lua_settable(L,-3);
        +
        +	int j, ngroups = 30; //only first 10 group
        +    gid_t *groups;
        +	struct group *gr;
        +	// find all the groups
        +	if((int)uid != -1 && (int)gid != -1)
        +	{
        +		 /* Retrieve group list */
        +		groups = malloc(ngroups * sizeof (gid_t));
        +           if (groups == NULL) {
        +               LOG("malloc eror \n");
        +               return 1;
        +           }
        +		if (getgrouplist(name, gid, groups, &ngroups) == -1) {
        +			free(groups);
        +			LOG("getgrouplist() returned -1; ngroups = %d\n", ngroups);
        +			return 1;
        +		}
        +		/* retrieved groups, along with group names */
        +		lua_pushstring(L,"groups");
        +		lua_newtable(L);
        +
        +		for (j = 0; j < ngroups; j++) {
        +			gr = getgrgid(groups[j]);
        +			if (gr != NULL)
        +			{
        +				//printf("%d: (%s)\n", groups[j],gr->gr_name);
        +				lua_pushnumber(L, groups[j]);
        +				lua_pushstring(L, gr->gr_name);
        +				lua_settable(L,-3);
        +			}
        +		}
        +		lua_settable(L, -3);
        +		free(groups);
        +	}
        +	return 1;
        +}
        +
        +
        +static int l_file_stat(lua_State* L, const char* path)
        +{
        +	//const char* path = luaL_checkstring(L,-1);
        +	//printf("PATH %s\n", path);
        +	//lua_pop(L,1);
        +	char date[64];
        +	struct stat st;
        +	if( stat(path, &st) == 0 )
        +	{
        +		// recore for file
        +		lua_newtable(L);
        +		
        +		//type
        +		lua_pushstring(L,"type");
        +		if(S_ISDIR(st.st_mode))
        +			lua_pushstring(L,"dir");
        +		else
        +			lua_pushstring(L,"file");
        +		lua_settable(L,-3);
        +		
        +		//ctime
        +		lua_pushstring(L,"ctime");
        +		strftime(date, sizeof(date), "%Y-%m-%dT%H:%M:%S", localtime(&(st.st_ctime)));
        +		lua_pushstring(L,date);
        +		lua_settable(L,-3);
        +		//mtime
        +		
        +		lua_pushstring(L,"mtime");
        +		strftime(date, sizeof(date), "%Y-%m-%dT%H:%M:%S", localtime(&(st.st_mtime)));
        +		lua_pushstring(L,date);
        +		lua_settable(L,-3);
        +		
        +		//size
        +		lua_pushstring(L,"size");
        +		lua_pushnumber(L,st.st_size);
        +		lua_settable(L,-3);
        +		//mime
        +		if(S_ISDIR(st.st_mode))
        +		{
        +			lua_pushstring(L,"mime");
        +			lua_pushstring(L, "dir");
        +			lua_settable(L,-3);
        +		}
        +		else
        +		{
        +			lua_pushstring(L,"mime");
        +			lua_pushstring(L, mime(path));
        +			lua_settable(L,-3);
        +		}
        +		
        +		// uid
        +		lua_pushstring(L,"uid");
        +		lua_pushnumber(L,st.st_uid);
        +		lua_settable(L,-3);
        +		// gid
        +		lua_pushstring(L,"gid");
        +		lua_pushnumber(L,st.st_gid);
        +		lua_settable(L,-3);
        +		
        +		lua_pushstring(L,"permissions");
        +		sprintf(date," (%3o)", st.st_mode&0777);
        +		lua_pushstring(L,date);
        +		lua_settable(L,-3);
        +		
        +		// permission
        +		lua_pushstring(L,"perm");
        +		lua_newtable(L);
        +		
        +		lua_pushstring(L,"owner");
        +		lua_newtable(L);
        +		lua_pushstring(L,"read");
        +		lua_pushboolean(L, (st.st_mode & S_IRUSR)==0?0:1);
        +		lua_settable(L,-3);
        +		lua_pushstring(L,"write");
        +		lua_pushboolean(L, (st.st_mode & S_IWUSR)==0?0:1);
        +		lua_settable(L,-3);
        +		lua_pushstring(L,"exec");
        +		lua_pushboolean(L, (st.st_mode & S_IXUSR)==0?0:1);
        +		lua_settable(L,-3);
        +		//end owner
        +		lua_settable(L,-3);
        +		
        +		lua_pushstring(L,"group");
        +		lua_newtable(L);
        +		lua_pushstring(L,"read");
        +		lua_pushboolean(L, (st.st_mode & S_IRGRP)==0?0:1);
        +		lua_settable(L,-3);
        +		lua_pushstring(L,"write");
        +		lua_pushboolean(L, (st.st_mode & S_IWGRP)==0?0:1);
        +		lua_settable(L,-3);
        +		lua_pushstring(L,"exec");
        +		lua_pushboolean(L, (st.st_mode & S_IXGRP)==0?0:1);
        +		lua_settable(L,-3);
        +		//end owner
        +		lua_settable(L,-3);
        +		
        +		lua_pushstring(L,"other");
        +		lua_newtable(L);
        +		lua_pushstring(L,"read");
        +		lua_pushboolean(L, (st.st_mode & S_IROTH)==0?0:1);
        +		lua_settable(L,-3);
        +		lua_pushstring(L,"write");
        +		lua_pushboolean(L, (st.st_mode & S_IWOTH)==0?0:1);
        +		lua_settable(L,-3);
        +		lua_pushstring(L,"exec");
        +		lua_pushboolean(L, (st.st_mode & S_IXOTH)==0?0:1);
        +		lua_settable(L,-3);
        +		//end owner
        +		lua_settable(L,-3);
        +		
        +		// end permission
        +		lua_settable(L,-3);
        +	}
        +	else
        +	{
        +		lua_newtable(L);
        +	}
        +	return 1;
        +}
        +
        +static int l_file_info(lua_State* L)
        +{
        +	const char* path = luaL_checkstring(L,1);
        +	l_file_stat(L,path);
        +	return 1;
        +}
        +
        +static int l_file_move(lua_State* L)
        +{
        +	const char* old = luaL_checkstring(L,1);
        +	const char* new = luaL_checkstring(L,2);
        +	//printf("MOVE  %s to %s\n",old,new);
        +	lua_pushboolean(L, rename(old,new)==0);
        +	return 1;
        +}
        +
        +static int l_read_dir(lua_State* L)
        +{
        +	const char* path = luaL_checkstring(L,1);
        +	const char* prefix = luaL_checkstring(L,2);
        +	DIR           *d;
        +  	struct dirent *dir;
        +	d = opendir(path);
        +	char buff[1024];
        +	lua_newtable(L);
        +  	if (d)
        +  	{
        +		int id=0;
        +   		while ((dir = readdir(d)) != NULL)
        +    	{
        +    		//ignore curent directory, parent directory 
        +    		if(strcmp(dir->d_name,".") == 0 || 
        +    			strcmp(dir->d_name,"..")==0/*|| *(dir->d_name)=='.'*/) continue;
        +			sprintf(buff,"%s/%s",path,dir->d_name);
        +			lua_pushnumber(L,id);
        +			//lua_pushstring(L,buff);
        +			l_file_stat(L,buff);
        +			
        +			lua_pushstring(L,"filename");
        +			lua_pushstring(L,dir->d_name);
        +			lua_settable(L,-3);
        +			
        +			sprintf(buff,"%s/%s",prefix,dir->d_name);
        +			//printf("FILE %s\n",buff );
        +			lua_pushstring(L,"path");
        +			lua_pushstring(L,buff);
        +			lua_settable(L,-3);
        +			
        +			lua_settable(L,-3);
        +			
        +      		id++;
        +    	}
        +    	closedir(d);
        +	}
        +	else
        +	{
        +		lua_pushstring(L,"error");
        +		lua_pushstring(L,"Resource not found");
        +		lua_settable(L,-3);
        +	}
        +	return 1;
        +}
        +
        +static int l_chown(lua_State* L)
        +{
        +	const char* path = luaL_checkstring(L,1);
        +	int id = luaL_checknumber(L,2);
        +	int gid = luaL_checknumber(L,3);
        +	lua_pushboolean(L, chown(path,id,gid) == 0);
        +	return 1;
        +}
        +
        +static int l_mkdir(lua_State* L)
        +{
        +	const char* path = luaL_checkstring(L,1);
        +	lua_pushboolean(L, mkdir(path, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH) == 0);
        +	return 1;
        +}
        +static int l_exist(lua_State* L)
        +{
        +	const char* path = luaL_checkstring(L,1);
        +	lua_pushboolean(L,access( path, F_OK ) != -1 );
        +	return 1;
        +}
        +static int _recursive_delete(const char* path)
        +{
        +	if(is_dir(path) == 1)
        +	{
        +		DIR           *d;
        +	  	struct dirent *dir;
        +		d = opendir(path);
        +		char buff[1024];
        +	  	if (d)
        +	  	{
        +	   		while ((dir = readdir(d)) != NULL)
        +	    	{
        +	    		//ignore current & parent dir
        +	    		if(strcmp(dir->d_name,".") == 0 || strcmp(dir->d_name,"..")==0) continue;
        +				// get the file
        +				sprintf(buff,"%s/%s",path,dir->d_name);
        +				if(_recursive_delete(buff) == -1) return -1;
        +			}
        +			closedir(d);
        +			// remove dir
        +			if(rmdir(path) != 0) return -1;
        +		} else return -1;
        +	}
        +	else
        +	{
        +		// file remove
        +		if(remove(path) != 0) return -1;
        +	}
        +	return 0;
        +}
        +static int l_delete(lua_State* L)
        +{
        +	const char* f = luaL_checkstring(L,1);
        +	lua_pushboolean(L,_recursive_delete(f) == 0);
        +	return 1;
        +}
        +/*
        +* Only use this for simple command
        +* Be careful to expose this function
        +* to user. This can cause a serious 
        +* security problem
        +*/
        +static int l_cmd_open(lua_State* L)
        +{
        +	  FILE *fp;
        +	  const char* cmd = luaL_checkstring(L,1);
        +
        +	  /* Open the command for reading. */
        +	  fp = popen(cmd, "r");
        +	  if (fp == NULL) {
        +	  	lua_pushnil(L);
        +		return 1;
        +	  }
        +	  /*return the fd to lua
        +	  * user can use this to 
        +	  read the output data*/
        +	  intptr_t pt = (intptr_t)fp;
        +	  lua_pushnumber(L, pt);
        +	  return 1;
        +}
        +static int l_cmd_read(lua_State* L)
        +{
        +  	/* Read the output a line at a time - output it.
        +		read user defined data of std
        +	 */
        +	FILE * fd;
        +	intptr_t pt = (intptr_t)luaL_checknumber(L, 1);
        +	fd = (FILE*)pt;
        +	if(fd == NULL)
        +	{
        +		lua_pushnil(L);
        +		return 1;
        +	}
        +	char buff[1024];
        +  	if(fgets(buff, sizeof(buff)-1, fd) != NULL) {
        +    	lua_pushstring(L,buff);
        +  	} else
        +	{
        +		lua_pushnil(L);
        +	}
        +  /* close */
        +  //pclose(fp);
        +
        +  return 1;
        +}
        +static int l_cmd_close(lua_State* L)
        +{
        +  	/* Read the output a line at a time - output it.
        +		read user defined data of std
        +	 */
        +	FILE * fd;
        +	intptr_t pt = (intptr_t)luaL_checknumber(L, 1);
        +	fd = (FILE*)pt;
        +	if(fd == NULL)
        +	{
        +		pclose(fd);
        +	}
        +	return 0;
        +}
        +/*zip file handler 
        +* using miniz to compress and uncompress zip file
        +*/
        +
        +static int l_unzip(lua_State* L)
        +{
        +	const char* src = luaL_checkstring(L,1);
        +	const char* dest = luaL_checkstring(L,2);
        +	
        +	if(zip_extract(src, dest, NULL, NULL) == -1)
        +	{
        +		lua_pushboolean(L,0);
        +		return 1;
        +	}
        +	lua_pushboolean(L,1);
        +	return 1;
        +}
        +
        +static int _add_to_zip(struct zip_t * zip, const char* path, const char* root)
        +{
        +	int st = is_dir(path);
        +	if(st == -1) return -1;
        +	if(st)
        +	{
        +		// read directory
        +		DIR           *d;
        +	  	struct dirent *dir;
        +	  	//struct stat st;
        +	  	d = opendir(path);
        +	  	if (d)
        +	  	{
        +	   		while ((dir = readdir(d)) != NULL)
        +	    	{
        +	    		//ignore curent directory, parent directory 
        +	    		if(strcmp(dir->d_name,".") == 0 || strcmp(dir->d_name,"..")==0) continue;
        +				// add file to zip
        +				char* p1 = __s("%s/%s", path, dir->d_name);
        +				char* p2 =  __s("%s/%s",root,dir->d_name);
        +				if(_add_to_zip(zip,p1,p2) == -1)
        +				{
        +					free(p1);
        +					free(p2);
        +					return -1;
        +				}
        +				free(p1);
        +				free(p2);
        +			}
        +			closedir(d);
        +		}
        +	}
        +	else
        +	{
        +		// if it is a file
        +		// add it to zip
        +	    if(zip_entry_open(zip, root) == -1) return -1;
        +	    if(zip_entry_fwrite(zip, path) == -1) return -1;
        +	    zip_entry_close(zip);
        +	}
        +	return 0;
        +}
        +
        +static int l_zip(lua_State* L)
        +{
        +	const char* src = luaL_checkstring(L,1);
        +	const char* dest = luaL_checkstring(L,2);
        +	
        +	// create a zip handler
        +    struct zip_t *zip = zip_open(dest, ZIP_DEFAULT_COMPRESSION_LEVEL, 0);
        +    
        +	if(zip == NULL) goto pfalse;
        +
        +    if(_add_to_zip(zip,src,"") == -1) goto pfalse;
        +	       
        +    zip_close(zip);
        +	
        +	lua_pushboolean(L,1);
        +	return 1;
        +	
        +	// return false
        +	pfalse:
        +	// TODO remove if filed is created
        +	if(zip) zip_close(zip);
        +	lua_pushboolean(L,0);
        +	return 1;
        +}
        +
        +static const struct luaL_Reg _lib [] = {
        +	{"auth", l_check_login},
        +	{"read_dir",l_read_dir},
        +	{"file_stat",l_file_info},
        +	{"uid",l_getuid},
        +	{"setuid", l_setuid},
        +	{"setgid", l_setgid},
        +	{"fork", l_fork},
        +	{"waitpid", l_waitpid},
        +	{"chown",l_chown},
        +	{"delete", l_delete},
        +	{"exists",l_exist},
        +	{"mkdir",l_mkdir},
        +	{"cmdopen",l_cmd_open},
        +	{"cmdread",l_cmd_read},
        +	{"cmdclose",l_cmd_close},
        +	{"move",l_file_move},
        +	{"unzip",l_unzip},
        +	{"zip",l_zip},
        +	{NULL,NULL}
        +};
        +
        +int luaopen_ulib(lua_State *L)
        +{
        +	luaL_newlib(L, _lib);
        +	return 1;
        +}
        diff --git a/lib/wurl/Makefile b/lib/wurl/Makefile
        new file mode 100644
        index 0000000..9a66ab0
        --- /dev/null
        +++ b/lib/wurl/Makefile
        @@ -0,0 +1,8 @@
        +include ../../../../var.mk
        +
        +LIB_NAME=wurl.$(LIB_EXT)
        +LIB_OBJ= wurl.o
        +
        + 
        +
        +include ../../lib.mk
        \ No newline at end of file
        diff --git a/lib/wurl/test.c b/lib/wurl/test.c
        new file mode 100644
        index 0000000..f78274f
        --- /dev/null
        +++ b/lib/wurl/test.c
        @@ -0,0 +1,539 @@
        +#include<stdio.h> //printf
        +#include<string.h> //memset
        +#include<stdlib.h> //for exit(0);
        +#include<errno.h> //For errno - the error number
        +#include<netdb.h> //hostent
        +#include <netinet/in.h>
        +#include <arpa/inet.h>
        +//#include <signal.h>
        +#include <dirent.h>
        +#include <errno.h>
        +#include <sys/socket.h>
        +#include <resolv.h>
        +#include <errno.h>
        +#include <ifaddrs.h>
        +#include <sys/stat.h>
        +#include <libgen.h>
        +	
        +#define CLIENT_NAME "wurl"
        +#define CLIENT_HOST "192.168.9.249"
        +#define CONN_TIME_OUT_S 3
        +#define MAX_BUFF 1024
        +#define REQUEST_BOUNDARY "------wURLFormBoundaryVo4QYVaSVseFNpeK"
        +#define GET 0
        +#define POST 1
        +typedef struct{
        +	int type; 		// POST(1) or GET(0)
        +	char* resource;	// path
        +	char* ctype;	// content type, used by POST
        +	int clen;		// content length, used by POST
        +	unsigned char* data ;
        +} wurl_header_t;
        +
        +/*get the ip by hostname*/
        +int wurl_ip_from_hostname(const char * hostname , char* ip)
        +{
        +    struct hostent *he;
        +    struct in_addr **addr_list;
        +    int i;    
        +    if ( (he = gethostbyname( hostname ) ) == NULL) 
        +    {
        +        // get the host info
        +        herror("gethostbyname");
        +        return -1;
        +    }
        +    addr_list = (struct in_addr **) he->h_addr_list;
        +     
        +    for(i = 0; addr_list[i] != NULL; i++) 
        +    {
        +        //Return the first one;
        +        strcpy(ip , inet_ntoa(*addr_list[i]) );
        +        return 0;
        +    }
        +    return -1;
        +}
        +
        +/*
        +send a request
        +*/
        +int wurl_request_socket(const char* ip, int port)
        +{
        +	int sockfd, bytes_read;
        +	struct sockaddr_in dest;
        +	
        +	// time out setting
        +	struct timeval timeout;      
        +	timeout.tv_sec = CONN_TIME_OUT_S;
        +	timeout.tv_usec = 0;
        +	if ( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0 )
        +	{
        +		perror("Socket");
        +		return -1;
        +	}
        +	if (setsockopt (sockfd, SOL_SOCKET, SO_RCVTIMEO, (char *)&timeout,sizeof(timeout)) < 0)
        +	        perror("setsockopt failed\n");
        +
        +    if (setsockopt (sockfd, SOL_SOCKET, SO_SNDTIMEO, (char *)&timeout,sizeof(timeout)) < 0)
        +        perror("setsockopt failed\n");
        +	
        +    bzero(&dest, sizeof(dest));
        +    dest.sin_family = AF_INET;
        +    dest.sin_port = htons(port);
        +    if ( inet_aton(ip, &dest.sin_addr.s_addr) == 0 )
        +    {
        +		perror(ip);
        +		close(sockfd);
        +		return -1;
        +    }
        +	if ( connect(sockfd, (struct sockaddr*)&dest, sizeof(dest)) != 0 )
        +	{
        +		close(sockfd);
        +		perror("Connect");
        +		return -1;
        +	}
        +	return sockfd;
        +}
        +/*
        +POST %s HTTP/1.0\r\n
        +Host: %s\r\n
        +User-Agent: %s\r\n
        +Content-Type: %s\r\n
        +Content-Length: %d\r\n\r\n"
        +
        +maybe cookie support? this can cause security problem
        +
        +GET %s HTTP/1.0\r\n
        +Host: %s\r\n
        +User-Agent: %s\r\n\r\n"
        +
        +multipart
        +POST %s HTTP/1.1
        +Host: %s
        +User-Agent: %s
        +Content-Type: multipart/form-data; boundary=----------287032381131322
        +Content-Length: %d
        +
        +------------287032381131322
        +Content-Disposition: form-data; name="datafile1"; filename="r.gif"
        +Content-Type: image/gif
        +
        +GIF87a.............,...........D..;
        +------------287032381131322
        +Content-Disposition: form-data; name="datafile2"; filename="g.gif"
        +Content-Type: image/gif
        +
        +GIF87a.............,...........D..;
        +------------287032381131322
        +Content-Disposition: form-data; name="datafile3"; filename="b.gif"
        +Content-Type: image/gif
        +
        +GIF87a.............,...........D..;
        +------------287032381131322--
        +*/
        +
        +int wurl_header(int sockfd, wurl_header_t rq)
        +{	
        +	char buff[MAX_BUFF];
        +	if(sockfd < 0) return -1;
        +	
        +	if(rq.type == GET)  // GET
        +	{
        +		send(sockfd,"GET ",4,0);
        +		send(sockfd,rq.resource, strlen(rq.resource),0);
        +		send(sockfd," HTTP/1.0\r\n",11,0);
        +	}
        +	else
        +	{
        +		send(sockfd,"POST ",5, 0);
        +		send(sockfd,rq.resource, strlen(rq.resource),0);
        +		send(sockfd," HTTP/1.0\r\n",11,0);
        +		sprintf(buff,"Content-Type: %s\r\n", rq.ctype);
        +		send(sockfd,buff,strlen(buff),0);
        +		sprintf(buff,"Content-Length: %d\r\n", rq.clen);
        +		send(sockfd,buff,strlen(buff),0);
        +	}
        +	// host dont need to send the host
        +	//sprintf(buff,"Host: %s\r\n",CLIENT_HOST);
        +	//send(sockfd,buff,strlen(buff),0);
        +	// user agent
        +	sprintf(buff,"User-Agent: %s\r\n",CLIENT_NAME);
        +	send(sockfd,buff,strlen(buff),0);
        +	// terminate  request
        +	send(sockfd,"\r\n",2,0);
        +
        +	// if there is data, send out
        +	if(rq.type == POST && rq.data)
        +	{
        +		send(sockfd,rq.data,rq.clen,0);
        +	}
        +	return 0;
        +}
        +
        +
        +// this will be removed
        +#define IEQU(a,b) (strcasecmp(a,b) == 0)
        +#define LOG(x) printf(x)
        +/**
        + * Trim a string by a character on both ends
        + * @param str   The target string
        + * @param delim the delim
        + */
        +void trim(char* str, const char delim)
        +{
        +    char * p = str;
        +    int l = strlen(p);
        +
        +    while(p[l - 1] == delim) p[--l] = 0;
        +    while(* p && (* p) == delim ) ++p, --l;
        +    memmove(str, p, l + 1);
        +}
        +/**
        + * Get extension of a file name
        + * @param  file The file name
        + * @return      the extension
        + */
        +char* ext(const char* file)
        +{
        +	char* token,*ltoken = "";
        +	if(file == NULL) return NULL;
        +	char* str_cpy = strdup(file);
        +	if(strstr(str_cpy,".")<= 0) return "";
        +	if(*file == '.')
        +		file++;
        +
        +	while((token = strsep(&str_cpy,".")) && strlen(token)>0) {ltoken = token;}
        +	free(str_cpy);
        +	return ltoken;
        +
        +}
        +/**
        + * Get correct HTTP mime type of a file
        + * This is a minimalistic mime type list supported
        + * by the server
        + * @param  file File name
        + * @return      The HTTP Mime Type
        + */
        +char* mime(const char* file)
        +{
        +	char * ex = ext(file);
        +	if(IEQU(ex,"bmp"))
        +		return "image/bmp";
        +	else if(IEQU(ex,"jpg") || IEQU(ex,"jpeg"))
        +		return "image/jpeg";
        +	else if(IEQU(ex,"css"))
        +		return "text/css";
        +	else if(IEQU(ex,"csv"))
        +		return "text/csv";
        +	else if(IEQU(ex,"pdf"))
        +		return "application/pdf";
        +	else if(IEQU(ex,"gif"))
        +		return "image/gif";
        +	else if(IEQU(ex,"html")||(IEQU(ex,"htm")))
        +		return "text/html";
        +	else if(IEQU(ex,"json"))
        +		return "application/json";
        +	else if(IEQU(ex,"js"))
        +		return "application/javascript";
        +	else if(IEQU(ex,"png"))
        +		return "image/png";
        +	else if(IEQU(ex,"ppm"))
        +		return "image/x-portable-pixmap";
        +	else if(IEQU(ex,"rar"))
        +		return "application/x-rar-compressed";
        +	else if(IEQU(ex,"tiff"))
        +		return "image/tiff";
        +	else if(IEQU(ex,"tar"))
        +		return "application/x-tar";
        +	else if(IEQU(ex,"txt"))
        +		return "text/plain";
        +	else if(IEQU(ex,"ttf"))
        +		return "application/x-font-ttf";
        +	else if(IEQU(ex,"xhtml"))
        +		return "application/xhtml+xml";
        +	else if(IEQU(ex,"xml"))
        +		return "application/xml";
        +	else if(IEQU(ex,"zip"))
        +		return "application/zip";
        +	else if(IEQU(ex,"svg"))
        +		return "image/svg+xml";
        +	else if(IEQU(ex,"eot"))
        +		return "application/vnd.ms-fontobject";
        +	else if(IEQU(ex,"woff") || IEQU(ex,"woff2"))
        +		return "application/x-font-woff";
        +	else if(IEQU(ex,"otf"))
        +		return "application/x-font-otf";
        +	//audio
        +	else if(IEQU(ex,"mp3"))
        +		return "audio/mpeg";
        +	else 
        +		// The other type will be undestant as binary
        +		return "application/octet-stream";
        +}
        +
        +void wurl_send_files(int sockfd,char* resource, int n, char* name [], char* files[])
        +{
        +	char buff[MAX_BUFF];
        +	wurl_header_t rq;
        +	rq.type = POST;
        +	rq.resource = resource;
        +	// get the total size of data
        +	int totalsize = 0;
        +	FILE* fd;
        +	struct stat st;
        +	for(int i = 0; i < n; ++i)
        +	{
        +		if(stat(files[i], &st) != 0) continue;
        +		totalsize += st.st_size;
        +	}
        +	rq.clen = totalsize;
        +	sprintf(buff,"%s; boundary=%s","multipart/form-data",REQUEST_BOUNDARY);
        +	rq.ctype = buff;
        +	
        +	// now send the header
        +	wurl_header(sockfd,rq);
        +	// now send the files
        +	size_t size;
        +	for(int i = 0; i < n; ++i)
        +	{
        +		fd = fopen(files[i],"rb");
        +		if(!fd) continue;
        +		// first send the boundary
        +		sprintf(buff,"%s\r\n",REQUEST_BOUNDARY);
        +		send(sockfd, buff, strlen(buff),0);
        +		// content disposition
        +		sprintf(buff,"Content-Disposition: form-data; name=\"%s\"; filename=\"%s\"\r\n",
        +					name[i],basename(files[i]));
        +		send(sockfd,buff, strlen(buff),0);
        +		// content type
        +		sprintf(buff,"Content-Type: %s\r\n\r\n",mime(files[i]));
        +		send(sockfd,buff, strlen(buff),0);
        +		// now send the file
        +		while(!feof(fd))
        +		{
        +			size = fread(buff,1,MAX_BUFF,fd);
        +			send(sockfd,buff,size,0);
        +			//if(!__b(client,buffer,size)) return;
        +		}
        +		fclose(fd);
        +		send(sockfd,"\r\n",2,0);
        +	}
        +	//end the boudary
        +	sprintf(buff,"%s--\n",REQUEST_BOUNDARY);
        +	send(sockfd,buff,strlen(buff),0);
        +}
        +
        +/**
        + * Read the socket request in to a buffer or size
        + * The data is read until the buffer is full or
        + * there are a carrier return character
        + * @param  sock socket
        + * @param  buf  buffer
        + * @param  size size of buffer
        + * @return      number of bytes read
        + */
        +int wurl_read_buf(int sock, char*buf,int size)
        +{
        +	int i = 0;
        +	char c = '\0';
        +	int n;
        +	while ((i < size - 1) && (c != '\n'))
        +	{
        +		n = recv(sock, &c, 1, 0);
        +		if (n > 0)
        +		{
        +			buf[i] = c;
        +			i++;
        +		}
        +		else
        +			c = '\n';
        +	}
        +	buf[i] = '\0';
        +	return i;
        +}
        +/*
        +	POST example
        +	wurl_header_t rq;
        +	rq.resource = path;
        +	rq.type = POST;
        +	rq.data = "s=a&q=b#test";//"{\"name\":\"sang\"}";
        +	rq.clen =  strlen(rq.data);
        +	rq.ctype = "application/x-www-form-urlencoded";//"application/json";
        +	
        +	if(wurl_request(hostname,port,&rq,1) == 0)
        +	{
        +		printf(rq.data);
        +	}
        +	else
        +	{
        +		printf("Cannot connect to host\n");
        +	}
        +	
        +	DOWNLOAD
        +	wurl_header_t rq;
        +	rq.resource = path;
        +	rq.type = GET;
        +	
        +	if(wurl_download(hostname,port,&rq,file) == 0)
        +	{
        +		printf("Download sucess ful\n");
        +	}
        +	else
        +	{
        +		printf("Cannot connect to host\n");
        +	}
        +
        +	
        +	upload example
        +		// send files
        +		char * names[2];
        +		names[0] = "zip";
        +		names[1] = "text";
        +		char* files[2];
        +		files[0] = "/Users/mrsang/tmp/Archive.zip";
        +		files[1] = "/Users/mrsang/tmp/test.py";
        +		
        +		wurl_send_files(sock,path,2,names, files);
        +		printf("RETURN:\n");
        +		size = wurl_read_buf(sock,buff, MAX_BUFF);
        +		while(size > 0)
        +		{
        +			printf("%s", buff);
        +			size = wurl_read_buf(sock,buff, MAX_BUFF);
        +		}
        +		close(sock);
        +*/
        +
        +/*
        +	hostname
        +	port
        +	header for request and respond
        +	lazy : 	if 1, all data is read to the header
        +			if 0, user has the responsibility to handler it
        +*/
        +int wurl_request(const char* hostname, int port, wurl_header_t* header, int lazy)
        +{
        +	char ip[100];
        +	char buff[MAX_BUFF];
        +	wurl_ip_from_hostname(hostname ,ip);
        +	int sock = wurl_request_socket(ip, port);
        +	
        +	if(sock <= 0) return -1;
        +	// send header
        +	wurl_header(sock,*header);
        +	// read respond header
        +	int size  = wurl_read_buf(sock,buff,MAX_BUFF);
        +	char* token;
        +	while (size > 0 && strcmp("\r\n",buff))
        +	{
        +		char* line = strdup(buff);
        +		token = strsep(&line,":");
        +		trim(token,' ');
        +		if(token != NULL &&strcasecmp(token,"Content-Type") == 0)
        +		{
        +			header->ctype = strsep(&line,":");
        +			trim(header->ctype,' ');
        +			trim(header->ctype,'\n');
        +			trim(header->ctype,'\r');
        +		} else if(token != NULL &&strcasecmp(token,"Content-Length") == 0)
        +		{
        +			token = strsep(&line,":");
        +			trim(token,' ');
        +			header->clen = atoi(token);
        +		}
        +		//if(line) free(line);
        +		size  = wurl_read_buf(sock,buff,MAX_BUFF);
        +	}
        +	if(header->ctype == NULL || header->clen == -1)
        +	{
        +		LOG("Bad data\n");
        +		return -1;
        +	}
        +	
        +	// read data if lazy
        +	if(lazy)
        +	{
        +		// read line by line, ignore content length
        +		int total_length = 0;
        +		char* tmp = NULL;
        +		int CHUNK = 512;
        +		header->data = (unsigned char*) malloc(CHUNK);
        +		int cursize = CHUNK;
        +		int size = wurl_read_buf(sock,buff,MAX_BUFF);
        +		while(size > 0)
        +		{
        +			if(total_length+size > cursize)
        +			{
        +				tmp = (unsigned char*) realloc(header->data,total_length + size);
        +				if(!tmp) 
        +				{
        +					if(header->data) free(header->data);
        +					break;
        +				}
        +				header->data = tmp;
        +			}
        +			memcpy(header->data+total_length,buff,size);
        +			total_length += size;
        +			size = wurl_read_buf(sock,buff,MAX_BUFF);
        +		}
        +		header->clen = total_length;
        +		close(sock);
        +		return 0;
        +	} 	
        +	return sock;
        +}
        +
        +int wurl_download(const char* hostname, int port, wurl_header_t* h, const char* to)
        +{
        +	// we will handler the data reading
        +	int sock = wurl_request(hostname, port,h,0);
        +	unsigned char buff[MAX_BUFF];
        +	if(sock < 0) return -1;
        +	
        +	FILE* fp =  fopen(to,"wb");
        +	int size;
        +	if(fp)
        +	{
        +		while((size = wurl_read_buf(sock,buff, MAX_BUFF)) > 0)
        +		{
        +			fwrite(buff, size, 1, fp);
        +		}
        +		fclose(fp);
        +	}
        +	else
        +	{
        +		close(sock);
        +		return -1;
        +	}
        +	close(sock);
        +	return 0;
        +}
        +
        +int main (int argc, char const *argv[])
        +{
        +	if(argc < 4)
        +	{
        +	        printf("wurl [host] [port] [path]\n");
        +	        exit(1);
        +	}
        +     
        +	char *hostname = argv[1];
        +	char* path = argv[3];	
        +	int port = atoi(argv[2]);
        +	char*file = argv[4];
        +	wurl_header_t rq;
        +	rq.resource = path;
        +	rq.type = POST;
        +	rq.data = "s=a&q=b#test";//"{\"name\":\"sang\"}";
        +	rq.clen =  strlen(rq.data);
        +	rq.ctype = "application/x-www-form-urlencoded";//"application/json";
        +	
        +	if(wurl_download(hostname,port,&rq,file) == 0)
        +	{
        +		printf("Download sucess ful\n");
        +	}
        +	else
        +	{
        +		printf("Cannot connect to host\n");
        +	}
        +	return 0;
        +}
        \ No newline at end of file
        diff --git a/lib/wurl/wurl.c b/lib/wurl/wurl.c
        new file mode 100644
        index 0000000..728bd95
        --- /dev/null
        +++ b/lib/wurl/wurl.c
        @@ -0,0 +1,627 @@
        +#include<stdio.h> //printf
        +#include<string.h> //memset
        +#include<stdlib.h> //for exit(0);
        +#include<errno.h> //For errno - the error number
        +#include<netdb.h> //hostent
        +#include <netinet/in.h>
        +#include <arpa/inet.h>
        +//#include <signal.h>
        +#include <dirent.h>
        +#include <errno.h>
        +#include <sys/socket.h>
        +#include <resolv.h>
        +#include <errno.h>
        +#include <ifaddrs.h>
        +#include <sys/stat.h>
        +#include <libgen.h>
        +
        +#include "../lualib.h"
        +#include "utils.h"
        +	
        +#define CLIENT_NAME "wurl"
        +#define CLIENT_HOST "192.168.9.249"
        +#define CONN_TIME_OUT_S 3
        +#define MAX_BUFF 1024
        +#define REQUEST_BOUNDARY "------wURLFormBoundaryVo4QYVaSVseFNpeK"
        +#define GET 0
        +#define POST 1
        +typedef struct{
        +	int type; 		// POST(1) or GET(0)
        +	char* resource;	// path
        +	char* ctype;	// content type, used by POST
        +	int clen;		// content length, used by POST
        +	unsigned char* data ;
        +} wurl_header_t;
        +
        +/*get the ip by hostname*/
        +int wurl_ip_from_hostname(const char * hostname , char* ip)
        +{
        +    struct hostent *he;
        +    struct in_addr **addr_list;
        +    int i;    
        +    if ( (he = gethostbyname( hostname ) ) == NULL) 
        +    {
        +        // get the host info
        +        herror("gethostbyname");
        +        return -1;
        +    }
        +    addr_list = (struct in_addr **) he->h_addr_list;
        +     
        +    for(i = 0; addr_list[i] != NULL; i++) 
        +    {
        +        //Return the first one;
        +        strcpy(ip , inet_ntoa(*addr_list[i]) );
        +        return 0;
        +    }
        +    return -1;
        +}
        +
        +/*
        +send a request
        +*/
        +int wurl_request_socket(const char* ip, int port)
        +{
        +	int sockfd, bytes_read;
        +	struct sockaddr_in dest;
        +	
        +	// time out setting
        +	struct timeval timeout;      
        +	timeout.tv_sec = CONN_TIME_OUT_S;
        +	timeout.tv_usec = 0;
        +	if ( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0 )
        +	{
        +		perror("Socket");
        +		return -1;
        +	}
        +	if (setsockopt (sockfd, SOL_SOCKET, SO_RCVTIMEO, (char *)&timeout,sizeof(timeout)) < 0)
        +	        perror("setsockopt failed\n");
        +
        +    if (setsockopt (sockfd, SOL_SOCKET, SO_SNDTIMEO, (char *)&timeout,sizeof(timeout)) < 0)
        +        perror("setsockopt failed\n");
        +	
        +    bzero(&dest, sizeof(dest));
        +    dest.sin_family = AF_INET;
        +    dest.sin_port = htons(port);
        +    if ( inet_aton(ip, &dest.sin_addr.s_addr) == 0 )
        +    {
        +		perror(ip);
        +		close(sockfd);
        +		return -1;
        +    }
        +	if ( connect(sockfd, (struct sockaddr*)&dest, sizeof(dest)) != 0 )
        +	{
        +		close(sockfd);
        +		perror("Connect");
        +		return -1;
        +	}
        +	return sockfd;
        +}
        +/*
        +POST %s HTTP/1.0\r\n
        +Host: %s\r\n
        +User-Agent: %s\r\n
        +Content-Type: %s\r\n
        +Content-Length: %d\r\n\r\n"
        +
        +maybe cookie support? this can cause security problem
        +
        +GET %s HTTP/1.0\r\n
        +Host: %s\r\n
        +User-Agent: %s\r\n\r\n"
        +
        +multipart
        +POST %s HTTP/1.1
        +Host: %s
        +User-Agent: %s
        +Content-Type: multipart/form-data; boundary=----------287032381131322
        +Content-Length: %d
        +
        +------------287032381131322
        +Content-Disposition: form-data; name="datafile1"; filename="r.gif"
        +Content-Type: image/gif
        +
        +GIF87a.............,...........D..;
        +------------287032381131322
        +Content-Disposition: form-data; name="datafile2"; filename="g.gif"
        +Content-Type: image/gif
        +
        +GIF87a.............,...........D..;
        +------------287032381131322
        +Content-Disposition: form-data; name="datafile3"; filename="b.gif"
        +Content-Type: image/gif
        +
        +GIF87a.............,...........D..;
        +------------287032381131322--
        +*/
        +
        +int wurl_header(int sockfd, wurl_header_t rq)
        +{	
        +	char buff[MAX_BUFF];
        +	if(sockfd < 0) return -1;
        +	
        +	if(rq.type == GET)  // GET
        +	{
        +		send(sockfd,"GET ",4,0);
        +		send(sockfd,rq.resource, strlen(rq.resource),0);
        +		send(sockfd," HTTP/1.0\r\n",11,0);
        +	}
        +	else
        +	{
        +		send(sockfd,"POST ",5, 0);
        +		send(sockfd,rq.resource, strlen(rq.resource),0);
        +		send(sockfd," HTTP/1.0\r\n",11,0);
        +		sprintf(buff,"Content-Type: %s\r\n", rq.ctype);
        +		send(sockfd,buff,strlen(buff),0);
        +		sprintf(buff,"Content-Length: %d\r\n", rq.clen);
        +		send(sockfd,buff,strlen(buff),0);
        +	}
        +	// host dont need to send the host
        +	//sprintf(buff,"Host: %s\r\n",CLIENT_HOST);
        +	//send(sockfd,buff,strlen(buff),0);
        +	// user agent
        +	sprintf(buff,"User-Agent: %s\r\n",CLIENT_NAME);
        +	send(sockfd,buff,strlen(buff),0);
        +	// terminate  request
        +	send(sockfd,"\r\n",2,0);
        +
        +	// if there is data, send out
        +	if(rq.type == POST && rq.data)
        +	{
        +		send(sockfd,rq.data,rq.clen,0);
        +	}
        +	return 0;
        +}
        +
        +/*
        +	send multiple files to server
        +	using multipart/form-data
        +*/
        +
        +void wurl_send_files(int sockfd,char* resource, int n, char* name [], char* files[])
        +{
        +	char buff[MAX_BUFF];
        +	wurl_header_t rq;
        +	rq.type = POST;
        +	rq.resource = resource;
        +	// get the total size of data
        +	int totalsize = 0;
        +	FILE* fd;
        +	struct stat st;
        +	for(int i = 0; i < n; ++i)
        +	{
        +		if(stat(files[i], &st) != 0) continue;
        +		totalsize += st.st_size;
        +	}
        +	rq.clen = totalsize;
        +	sprintf(buff,"%s; boundary=%s","multipart/form-data",REQUEST_BOUNDARY);
        +	rq.ctype = buff;
        +	
        +	// now send the header
        +	wurl_header(sockfd,rq);
        +	// now send the files
        +	size_t size;
        +	for(int i = 0; i < n; ++i)
        +	{
        +		fd = fopen(files[i],"rb");
        +		if(!fd) continue;
        +		// first send the boundary
        +		//printf("sending file %s name:%s\n", files[i],name[i]);
        +		sprintf(buff,"%s\r\n",REQUEST_BOUNDARY);
        +		send(sockfd, buff, strlen(buff),0);
        +		// content disposition
        +		sprintf(buff,"Content-Disposition: form-data; name=\"%s\"; filename=\"%s\"\r\n",
        +					name[i],basename(files[i]));
        +		send(sockfd,buff, strlen(buff),0);
        +		// content type
        +		sprintf(buff,"Content-Type: %s\r\n\r\n",mime(files[i]));
        +		send(sockfd,buff, strlen(buff),0);
        +		// now send the file
        +		while(!feof(fd))
        +		{
        +			size = fread(buff,1,MAX_BUFF,fd);
        +			send(sockfd,buff,size,0);
        +			//if(!__b(client,buffer,size)) return;
        +		}
        +		fclose(fd);
        +		send(sockfd,"\r\n",2,0);
        +	}
        +	//end the boudary
        +	sprintf(buff,"%s--\r\n",REQUEST_BOUNDARY);
        +	send(sockfd,buff,strlen(buff),0);
        +}
        +
        +/**
        + * Read the socket request in to a buffer or size
        + * The data is read until the buffer is full or
        + * there are a carrier return character
        + * @param  sock socket
        + * @param  buf  buffer
        + * @param  size size of buffer
        + * @return      number of bytes read
        + */
        +int wurl_read_buf(int sock, char*buf,int size)
        +{
        +	int i = 0;
        +	char c = '\0';
        +	int n;
        +	while ((i < size - 1) && (c != '\n'))
        +	{
        +		n = recv(sock, &c, 1, 0);
        +		if (n > 0)
        +		{
        +			buf[i] = c;
        +			i++;
        +		}
        +		else
        +			c = '\n';
        +	}
        +	buf[i] = '\0';
        +	return i;
        +}
        +/*
        +	POST example
        +	wurl_header_t rq;
        +	rq.resource = path;
        +	rq.type = POST;
        +	rq.data = "s=a&q=b#test";//"{\"name\":\"sang\"}";
        +	rq.clen =  strlen(rq.data);
        +	rq.ctype = "application/x-www-form-urlencoded";//"application/json";
        +	
        +	if(wurl_request(hostname,port,&rq,1) == 0)
        +	{
        +		printf(rq.data);
        +	}
        +	else
        +	{
        +		printf("Cannot connect to host\n");
        +	}
        +	
        +	DOWNLOAD
        +	wurl_header_t rq;
        +	rq.resource = path;
        +	rq.type = GET;
        +	
        +	if(wurl_download(hostname,port,&rq,file) == 0)
        +	{
        +		printf("Download sucess ful\n");
        +	}
        +	else
        +	{
        +		printf("Cannot connect to host\n");
        +	}
        +
        +	
        +	upload example
        +		// send files
        +		char * names[2];
        +		names[0] = "zip";
        +		names[1] = "text";
        +		char* files[2];
        +		files[0] = "/Users/mrsang/tmp/Archive.zip";
        +		files[1] = "/Users/mrsang/tmp/test.py";
        +		
        +		wurl_send_files(sock,path,2,names, files);
        +		printf("RETURN:\n");
        +		size = wurl_read_buf(sock,buff, MAX_BUFF);
        +		while(size > 0)
        +		{
        +			printf("%s", buff);
        +			size = wurl_read_buf(sock,buff, MAX_BUFF);
        +		}
        +		close(sock);
        +*/
        +void wurl_response_header(int sock, wurl_header_t* header)
        +{
        +	char buff[MAX_BUFF];
        +	int size  = wurl_read_buf(sock,buff,MAX_BUFF);
        +	char* token;
        +	while (size > 0 && strcmp("\r\n",buff))
        +	{
        +		char* line = strdup(buff);
        +		//printf("LINE %s\n", line);
        +		token = strsep(&line,":");
        +		trim(token,' ');
        +		if(token != NULL &&strcasecmp(token,"Content-Type") == 0)
        +		{
        +			header->ctype = strsep(&line,":");
        +			trim(header->ctype,' ');
        +			trim(header->ctype,'\n');
        +			trim(header->ctype,'\r');
        +		} else if(token != NULL &&strcasecmp(token,"Content-Length") == 0)
        +		{
        +			token = strsep(&line,":");
        +			trim(token,' ');
        +			header->clen = atoi(token);
        +		}
        +		//if(line) free(line);
        +		size  = wurl_read_buf(sock,buff,MAX_BUFF);
        +	}
        +}
        +int wurl_read_data(int sock,char** din)
        +{
        +	// read line by line, ignore content length
        +	int total_length = 0;
        +	char* tmp = NULL;
        +	int CHUNK = 512;
        +	char buff[MAX_BUFF];
        +	char * data = (unsigned char*) malloc(CHUNK);
        +	int cursize = CHUNK;
        +	int size = wurl_read_buf(sock,buff,MAX_BUFF);
        +	while(size > 0)
        +	{
        +		if(total_length+size > cursize)
        +		{
        +			tmp = (unsigned char*) realloc(data,total_length + size+ CHUNK );
        +			
        +			if(!tmp) 
        +			{
        +				if(data) free(data);
        +				break;
        +			}
        +			cursize = total_length + size+ CHUNK;
        +			data = tmp;
        +		}
        +		memcpy(data+total_length,buff,size);
        +		total_length += size;
        +		size = wurl_read_buf(sock,buff,MAX_BUFF);
        +	}
        +	data[total_length] = '\0';
        +	close(sock);
        +	*din = data;
        +	return total_length;
        +}
        +/*
        +	hostname
        +	port
        +	header for request and respond
        +	lazy : 	if 1, all data is read to the header
        +			if 0, user has the responsibility to handler it
        +*/
        +int wurl_request(const char* hostname, int port, wurl_header_t* header, int lazy)
        +{
        +	char ip[100];
        +	char buff[MAX_BUFF];
        +	wurl_ip_from_hostname(hostname ,ip);
        +	int sock = wurl_request_socket(ip, port);
        +	
        +	if(sock <= 0) return -1;
        +	// send header
        +	wurl_header(sock,*header);
        +	// read respond header
        +	wurl_response_header(sock,header);
        +	
        +	if(header->ctype == NULL || header->clen == -1)
        +	{
        +		LOG("Bad data\n");
        +		return -1;
        +	}
        +	
        +	// read data if lazy
        +	if(lazy)
        +	{
        +		// read line by line, ignore content length
        +		char * d;
        +		header->clen = wurl_read_data(sock,&header->data);
        +		return 0;
        +	} 	
        +	return sock;
        +}
        +
        +int wurl_download(const char* hostname, int port, wurl_header_t* h, const char* to)
        +{
        +	// we will handler the data reading
        +	int sock = wurl_request(hostname, port,h,0);
        +	unsigned char buff[MAX_BUFF];
        +	if(sock < 0) return -1;
        +	
        +	FILE* fp =  fopen(to,"wb");
        +	int size;
        +	if(fp)
        +	{
        +		while((size = wurl_read_buf(sock,buff, MAX_BUFF)) > 0)
        +		{
        +			fwrite(buff, size, 1, fp);
        +		}
        +		fclose(fp);
        +	}
        +	else
        +	{
        +		close(sock);
        +		return -1;
        +	}
        +	close(sock);
        +	return 0;
        +}
        +
        +/*
        +int main (int argc, char const *argv[])
        +{
        +	if(argc < 4)
        +	{
        +	        printf("wurl [host] [port] [path]\n");
        +	        exit(1);
        +	}
        +     
        +	char *hostname = argv[1];
        +	char* path = argv[3];	
        +	int port = atoi(argv[2]);
        +	char*file = argv[4];
        +	wurl_header_t rq;
        +	rq.resource = path;
        +	rq.type = POST;
        +	rq.data = "s=a&q=b#test";//"{\"name\":\"sang\"}";
        +	rq.clen =  strlen(rq.data);
        +	rq.ctype = "application/x-www-form-urlencoded";//"application/json";
        +	
        +	if(wurl_download(hostname,port,&rq,file) == 0)
        +	{
        +		printf("Download sucess ful\n");
        +	}
        +	else
        +	{
        +		printf("Cannot connect to host\n");
        +	}
        +	return 0;
        +}*/
        +
        +static int l_get(lua_State *L)
        +{
        +	const char* host = luaL_checkstring(L,1);
        +	int port = luaL_checknumber(L,2);
        +	const char* resource = luaL_checkstring(L,3);
        +	
        +	wurl_header_t rq;
        +	rq.resource = resource;
        +	rq.type = GET;
        +	
        +	if(wurl_request(host,port,&rq,1) == 0)
        +	{
        +		//printf("Content type is %s\n", rq.ctype);
        +		mime_t m = mime_from_type(rq.ctype);
        +		lua_newtable(L);
        +		lua_pushstring(L,"contentType");
        +		lua_pushstring(L,rq.ctype);
        +		lua_settable(L,-3);
        +		
        +		lua_pushstring(L,"binary");
        +		lua_pushboolean(L,m.bin);
        +		lua_settable(L,-3);
        +		
        +		lua_pushstring(L,"data");
        +		if(m.bin)
        +		{
        +			//printf("Data is binary, encode as base64 %s\n", rq.ctype);
        +			char* dst = (char*) malloc(3*rq.clen/2);
        +			Base64encode(dst, rq.data,rq.clen);
        +			lua_pushstring(L,dst);
        +			free(dst);
        +		} else
        +			lua_pushstring(L,rq.data);
        +		free(rq.data); // be careful
        +		lua_settable(L,-3);
        +		return 1;
        +	}
        +	else
        +	{
        +		lua_pushnil(L);
        +		return 1;
        +	}
        +}
        +static int l_post(lua_State *L)
        +{
        +	const char* host = luaL_checkstring(L,1); // host
        +	int port = luaL_checknumber(L,2); // port
        +	const char* res = luaL_checkstring(L,3); // resource
        +	const char* ctype = luaL_checkstring(L,4); // content type
        +	const char* data = luaL_checkstring(L,5); // post data
        +	wurl_header_t rq;
        +	rq.resource = res;
        +	rq.type = POST;
        +	rq.ctype = ctype;
        +	rq.clen = strlen(data);
        +	rq.data = data;
        +	
        +	if(wurl_request(host,port,&rq,1) == 0)
        +	{
        +		
        +		//printf("Content type is %s\n", rq.ctype);
        +		mime_t m = mime_from_type(rq.ctype);
        +		lua_newtable(L);
        +		lua_pushstring(L,"contentType");
        +		lua_pushstring(L,rq.ctype);
        +		lua_settable(L,-3);
        +		
        +		lua_pushstring(L,"binary");
        +		lua_pushboolean(L,m.bin);
        +		lua_settable(L,-3);
        +		
        +		lua_pushstring(L,"data");
        +		if(m.bin)
        +		{
        +			//printf("Data is binary, encode as base64 %s\n", rq.ctype);
        +			char* dst = (char*) malloc(3*rq.clen/2);
        +			Base64encode(dst, rq.data,rq.clen);
        +			lua_pushstring(L,dst);
        +			free(dst);
        +		} else
        +			lua_pushstring(L,rq.data);
        +		free(rq.data); // be careful
        +		lua_settable(L,-3);
        +		return 1;
        +	}
        +	else
        +	{
        +		lua_pushnil(L);
        +		return 1;
        +	}
        +	
        +}
        +static int l_download(lua_State* L)
        +{
        +	// we user only GET for down load and POST for upload
        +	const char* host = luaL_checkstring(L,1); // host
        +	int port = luaL_checknumber(L,2); // port
        +	const char* res = luaL_checkstring(L,3); // resource
        +	const char* file = luaL_checkstring(L,4); // file 
        +	wurl_header_t rq;
        +	rq.resource = res;
        +	rq.type = GET;
        +	if(wurl_download(host,port,&rq,file) == 0)
        +		lua_pushboolean(L, true);
        +	else
        +		lua_pushboolean(L,false);
        +	return 1;
        +}
        +static int l_upload(lua_State* L)
        +{
        +	const char* host = luaL_checkstring(L,1);
        +	int port = luaL_checknumber(L,2);
        +	const char* resource = luaL_checkstring(L,3);
        +	const char* name = luaL_checkstring(L,4);
        +	const char* file = luaL_checkstring(L,5);
        +	
        +	if(!_exist(file)) goto fail;
        +	
        +	// request socket
        +	char ip[100];
        +	wurl_ip_from_hostname(host ,ip);
        +	int sock = wurl_request_socket(ip, port);
        +	
        +	if(sock <= 0) goto fail;
        +	
        +	char * names[2];
        +	names[0] = name;
        +	char* files[2];
        +	//files[0] = "/Users/mrsang/tmp/Archive.zip";
        +	files[0] = file;
        +	
        +	//printf("SENDIND DILE\n");
        +	wurl_send_files(sock, resource,1,names,files);
        +	wurl_header_t header;
        +	//printf("READ HEADER\n");
        +	wurl_response_header(sock, &header);
        +	//printf("read data\n");
        +	wurl_read_data(sock,&header.data);
        +	if(header.ctype != NULL && header.data)
        +	{
        +		lua_pushstring(L,header.data);
        +		free(header.data);
        +		return 1;
        +	}
        +	fail:
        +		lua_pushnil(L);
        +		return 1;
        +}
        +static const struct luaL_Reg _lib [] = {
        +	{"_get",l_get},
        +	{"_post",l_post},
        +	{"_download",l_download},
        +	{"_upload",l_upload},
        +	{NULL,NULL}
        +};
        +
        +int luaopen_wurl(lua_State *L)
        +{
        +	luaL_newlib(L, _lib);
        +	return 1;
        +}
        \ No newline at end of file
        diff --git a/lua-api.c b/lua-api.c
        new file mode 100644
        index 0000000..aa62ad8
        --- /dev/null
        +++ b/lua-api.c
        @@ -0,0 +1,121 @@
        +#include "lua-api.h"
        +
        +void init();
        +call __init__ = init;
        +static const struct luaL_Reg modules [] = {
        +#ifdef USE_DB
        +       {"sqlite", luaopen_sqlite},
        +#endif
        +	   {"std", luaopen_standard},
        +	   {"JSON", luaopen_json},
        +	   {"bytes",luaopen_barray},
        +	   {"array",luaopen_array},
        +	   {NULL,NULL}  
        +};
        +
        +void init()
        +{
        +	//signal(SIGPIPE, SIG_IGN);
        +	//signal(SIGABRT, SIG_IGN);
        +	// init the plugin here
        +	LOG("%s \n","INIT LUA HANDLER");
        +}
        +/**
        +
        +* Plugin handler, reads request from the server and processes it
        +* 
        +*/
        +static void push_dict_to_lua(lua_State* L, dictionary d)
        +{
        +	lua_newtable(L);
        +	
        +	association as;
        +	if(d)
        +		for_each_assoc(as, d)
        +		{
        +			lua_pushstring(L,as->key);
        +			//printf("KEY %s\n", as->key);
        +			if(EQU(as->key,"cookie") || EQU(as->key,"__xheader__"))
        +				push_dict_to_lua(L, (dictionary)as->value);
        +			else
        +			{
        +				lua_pushstring(L,as->value);
        +				//printf("VALUE : %s\n",as->value );
        +			}
        +			lua_settable(L, -3);
        +		}
        +}
        +void handle(void* client, const char* method, const char* path, dictionary rq)
        +{
        +	lua_State* L = NULL;
        +	//char * index = __s("%s/%s",__plugin__.htdocs,"router.lua");
        +	char* cnf = config_dir();
        +	char * apis = __s("%s/%s",cnf,"api.lua");
        +	L = luaL_newstate();
        +	luaL_openlibs(L);
        +	//module loader
        +	luaL_newlib(L, modules);
        +	lua_setglobal(L, "modules");
        +	// set up global variable
        +	// API header
        +	lua_newtable(L);
        +	lua_pushstring(L,"name");
        +	lua_pushstring(L, __plugin__.name);
        +	lua_settable(L,-3);
        +	
        +	lua_pushstring(L,"root");
        +	lua_pushstring(L, __plugin__.htdocs);
        +	lua_settable(L,-3);
        +	
        +	lua_pushstring(L,"apiroot");
        +	lua_pushstring(L, cnf);
        +	lua_settable(L,-3);
        +	
        +	lua_setglobal(L, "__api__");
        +	
        +	// Request
        +	lua_newtable(L);
        +	lua_pushstring(L,"id");
        +	lua_pushlightuserdata(L, client);
        +	//lua_pushnumber(L,client);
        +	lua_settable(L, -3);
        +	
        +	lua_pushstring(L,"method");
        +	lua_pushstring(L,method);
        +	lua_settable(L, -3);
        +	
        +	lua_pushstring(L,"path");
        +	lua_pushstring(L,path);
        +	lua_settable(L, -3);
        +	
        +	lua_pushstring(L,"query");
        +	push_dict_to_lua(L,rq);
        +	lua_settable(L, -3);
        +	lua_setglobal(L, "REQUEST");
        +	
        +	// load major apis
        +	if(is_file(apis))
        +		if (luaL_loadfile(L, apis) || lua_pcall(L, 0, 0, 0))
        +		{
        +			LOG( "cannot run apis. file: %s\n", lua_tostring(L, -1));
        +		}
        +	
        +	/*if (luaL_loadfile(L, index) || lua_pcall(L, 0, 0, 0))
        +	{
        +		text(client);
        +		__t(client, "Cannot run router: %s", lua_tostring(L, -1));
        +	}
        +	free(index);*/
        +	// clear request
        +	if(L)
        +		lua_close(L);
        +	if(cnf)
        +		free(cnf);
        +	if(apis)
        +		free(apis);
        +	//lua_close(L);
        +}
        +void pexit()
        +{
        +	LOG("%s \n","Exit LUA Handler");
        +}
        diff --git a/lua-api.h b/lua-api.h
        new file mode 100644
        index 0000000..3d55a6a
        --- /dev/null
        +++ b/lua-api.h
        @@ -0,0 +1,33 @@
        +#ifndef LUA_API_H
        +#define LUA_API_H
        +#include "plugin.h"
        +#include "3rd/lua-5.3.4/lua.h"
        +#include "3rd/lua-5.3.4/lauxlib.h"
        +#include "3rd/lua-5.3.4/lualib.h"
        +
        +#define ARRAY "modules.array"
        +#define BYTEARRAY "modules.bytes"
        +// add byte array support
        + typedef struct{
        +	 int size;
        +	 unsigned char data[1];
        + } byte_array_t;
        + 
        +typedef struct{
        +	int size;
        +	double data[1];
        +} array_t;
        +// new byte array
        +void lua_new_byte_array(lua_State*L, int n);
        +byte_array_t *l_check_barray(lua_State *L, int idx);
        +// new array
        +void lua_new_array(lua_State*L, int n);
        +array_t *l_check_array(lua_State *L, int idx);
        +	
        +int luaopen_standard(lua_State *L);
        +int luaopen_sqlite(lua_State *L);
        +int luaopen_json(lua_State *L);
        +int luaopen_array (lua_State *L);
        +int luaopen_barray (lua_State *L);
        +
        +#endif
        \ No newline at end of file
        diff --git a/plugin-wrapper.c b/plugin-wrapper.c
        new file mode 100644
        index 0000000..5477a7b
        --- /dev/null
        +++ b/plugin-wrapper.c
        @@ -0,0 +1,526 @@
        +#include "lua-api.h"
        +
        +//void header(int,const char*);
        +static int l_header (lua_State *L) {
        +	//int client = (int)luaL_checknumber(L, 1);
        +	void* client = lua_touserdata (L, 1);
        +	const char* s = luaL_checkstring(L,2);
        +	ctype(client,s);
        +	return 0;  /* number of results */
        +}
        +
        +//void redirect(int,const char*);
        +static int l_redirect (lua_State *L) {
        +	void* client = lua_touserdata (L, 1);
        +	const char* s = luaL_checkstring(L,2);
        +	redirect(client,s);
        +	return 0;  /* number of results */
        +}
        +
        +//void html(int);
        +static int l_html (lua_State *L) {
        +	void* client = lua_touserdata (L, 1);
        +	html(client);
        +	return 0;  /* number of results */
        +}
        +
        +//void text(int);
        +static int l_text (lua_State *L) {
        +	void* client = lua_touserdata (L, 1);
        +	text(client);
        +	return 0;  /* number of results */
        +}
        +
        +//void json(int);
        +static int l_json (lua_State *L) {
        +	void* client = lua_touserdata (L, 1);
        +	json(client);
        +	return 0;  /* number of results */
        +}
        +
        +//void jpeg(int);
        +static int l_jpeg (lua_State *L) {
        +	void* client = lua_touserdata (L, 1);
        +	jpeg(client);
        +	return 0;  /* number of results */
        +}
        +
        +//void octstream(int, char*);
        +static int l_octstream (lua_State *L) {
        +	void* client = lua_touserdata (L, 1);
        +	const char* s = luaL_checkstring(L,2);
        +	octstream(client,s);
        +	return 0;  /* number of results */
        +}
        +
        +//void textstream(int);
        +static int l_textstream (lua_State *L) {
        +	void* client = lua_touserdata (L, 1);
        +	textstream(client);
        +	return 0;  /* number of results */
        +}
        +// int mime
        +static int l_mime(lua_State* L)
        +{
        +	const char* file = luaL_checkstring(L,1);
        +	lua_pushstring(L,mime(file));
        +	return 1;
        +}
        +// int mime
        +static int l_ext(lua_State* L)
        +{
        +	const char* file = luaL_checkstring(L,1);
        +	char* e = ext(file);
        +	lua_pushstring(L,e);
        +	if(e)
        +		free(e);
        +	return 1;
        +}
        +static int l_is_bin(lua_State* L)
        +{
        +	const char* file = luaL_checkstring(L,1);
        +	lua_pushboolean(L, is_bin(file));
        +	return 1;
        +}
        +//int __ti(int,int);
        +static int l_ti (lua_State *L) {
        +	void* client = lua_touserdata (L, 1);
        +	int v = (int)luaL_checknumber(L, 2);
        +	lua_pushnumber(L, __ti(client,v));
        +	return 1;  /* number of results */
        +}
        +
        +//int __t(int, const char*,...);
        +static int l_t (lua_State *L) {
        +	void* client = lua_touserdata (L, 1);
        +	const char*  v = luaL_checkstring(L, 2);
        +	lua_pushnumber(L, __t(client,v));
        +	return 1;  /* number of results */
        +}
        +
        +//int __b(int, const unsigned char*, int);
        +//static int l_b (lua_State *L) {
        +//}
        +
        +//int __f(int, const char*);
        +static int l_f (lua_State *L) {
        +	void* client = lua_touserdata (L, 1);
        +	const char*  v = luaL_checkstring(L, 2);
        +	lua_pushnumber(L, __f(client,v));
        +	return 1;
        +}
        +
        +//int __fb(int, const char*);
        +static int l_fb (lua_State *L) {
        +	void* client = lua_touserdata (L, 1);
        +	const char*  v = luaL_checkstring(L, 2);
        +	lua_pushnumber(L, __fb(client,v));
        +	return 1;
        +}
        +
        +//int upload(const char*, const char*);
        +static int l_upload (lua_State *L) {
        +	const char* s = luaL_checkstring(L, 1);
        +	const char* d = luaL_checkstring(L, 2);
        +	lua_pushnumber(L, upload(s,d));
        +	return 1;
        +}
        +
        +//char* route(const char*);
        +static int l_route (lua_State *L) {
        +	const char* s = luaL_checkstring(L, 1);
        +	lua_pushstring(L, route(s));
        +	return 1;
        +}
        +
        +//char* htdocs(const char*);
        +#ifdef USE_DB
        +//sqldb getdb();
        +#endif
        +//void set_cookie(int,dictionary);
        +
        +//void unknow(int);
        +static int l_unknow (lua_State *L) {
        +	void* client = lua_touserdata (L, 1);
        +	unknow(client);
        +	return 0;
        +}
        +
        +static int l_log(lua_State *L)
        +{
        +	const char* s = luaL_checkstring(L,1);
        +	LOG("%s",s);
        +	return 0;
        +}
        +
        +dictionary iterate_lua_table(lua_State *L, int index)
        +{
        +    // Push another reference to the table on top of the stack (so we know
        +    // where it is, and this function can work for negative, positive and
        +    // pseudo indices
        +	dictionary dic = dict();
        +    lua_pushvalue(L, index);
        +    // stack now contains: -1 => table
        +    lua_pushnil(L);
        +    // stack now contains: -1 => nil; -2 => table
        +    while (lua_next(L, -2))
        +    {
        +        // stack now contains: -1 => value; -2 => key; -3 => table
        +        // copy the key so that lua_tostring does not modify the original
        +        lua_pushvalue(L, -2);
        +        // stack now contains: -1 => key; -2 => value; -3 => key; -4 => table
        +        const char *key = lua_tostring(L, -1);
        +        if(lua_istable(L,-2))
        +        {
        +			// the element is a table
        +			// create new dictionary
        +			dictionary cdic = iterate_lua_table(L,-2);
        +			dput(dic,key, cdic);
        +		}
        +		else
        +		{
        +			// other value is converted to string
        +			const char *value = lua_tostring(L, -2);
        +			//LOG("%s=%s\n", key, value);
        +			dput(dic,key, strdup(value));
        +		}
        +        
        +        // pop value + copy of key, leaving original key
        +        lua_pop(L, 2);
        +        // stack now contains: -1 => key; -2 => table
        +    }
        +    // stack now contains: -1 => table (when lua_next returns 0 it pops the key
        +    // but does not push anything.)
        +    // Pop table
        +    lua_pop(L, 1);
        +    // Stack is now the same as it was on entry to this function
        +	return dic;
        +}
        +
        +static int l_set_cookie(lua_State* L)
        +{
        +	if (lua_istable(L, 3))
        +	{
        +		dictionary d = iterate_lua_table(L,-2);
        +		if(d)
        +		{
        +			void* client = lua_touserdata (L, 1);
        +			const char* type = luaL_checkstring(L,2);
        +			const char* path = luaL_checkstring(L,4);
        +			set_cookie(client, type,d,path);
        +			freedict(d);
        +		}
        +	}
        +	return 0;
        +}
        +static int l_simple_hash(lua_State* L)
        +{
        +	const char* s = luaL_checkstring(L,1);
        +	lua_pushnumber(L, simple_hash(s));
        +	return 1;
        +}
        +static int l_md5(lua_State* L)
        +{
        +	const char* s = luaL_checkstring(L,1);
        +	int len = strlen(s);
        +	char buff[256];
        +	md5(s,len,buff);
        +	lua_pushstring(L,buff);
        +	return 1;	
        +}
        +static int l_sha1(lua_State *L )
        +{
        +	const char* s = luaL_checkstring(L,1);
        +	char buff[80];
        +	sha1(s,buff);
        +	lua_pushstring(L,buff);
        +	return 1;
        +}
        +static int l_base64_encode(lua_State *L)
        +{
        +	const char* s;
        +	int len;
        +	char* dst;
        +	byte_array_t *arr = NULL;
        +	if(lua_isstring(L,1))
        +	{
        +		s= luaL_checkstring(L,1);
        +		len = strlen(s);
        +	}
        +	else
        +	{
        +		// this may be an bytearray
        +		arr = l_check_barray(L,1);
        +		s = arr->data;
        +		len = arr->size;
        +	}
        +	if(len == 0)
        +	{
        +		lua_pushstring(L,"");
        +		return 1;
        +	}
        +	dst = (char*) malloc( ((len * 4) / 3) + (len / 96) + 6 );//(((4 * len / 3) + 3) & ~3)+1
        +	Base64encode(dst, s,len);
        +	lua_pushstring(L,dst);
        +	free(dst);
        +	return 1;
        +}
        +static int l_base64_decode(lua_State *L)
        +{
        +	const char* s = luaL_checkstring(L,1);
        +	int len = Base64decode_len(s);
        +	// decode data to a byte array
        +	lua_new_byte_array(L,len);
        +	byte_array_t * arr = NULL;
        +	arr = l_check_barray(L,2);
        +	Base64decode(arr->data, s);
        +	//lua_pushstring(L,dst);
        +	//free(dst);
        +	return 1;
        +}
        +/*
        +* web socket handle for lua
        +*/
        +static int l_ws_read_header(lua_State *L)
        +{
        +	void* client = lua_touserdata (L, 1);
        +	ws_msg_header_t * header = ws_read_header(client);
        +	if(!header)
        +	{
        +		lua_pushnil(L);
        +		return 1;
        +	}
        +	else
        +	{
        +		// create newtable
        +		lua_newtable(L);
        +		
        +		lua_pushstring(L,"fin");
        +		lua_pushnumber(L,(int)header->fin);
        +		lua_settable(L,-3);
        +		
        +		lua_pushstring(L,"opcode");
        +		lua_pushnumber(L,(int)header->opcode);
        +		lua_settable(L,-3);
        +		
        +		lua_pushstring(L,"plen");
        +		lua_pushnumber(L,(int)header->plen);
        +		lua_settable(L,-3);
        +		
        +		lua_pushstring(L,"mask");
        +		lua_pushnumber(L,(int)header->mask);
        +		lua_settable(L,-3);
        +		
        +		lua_pushstring(L,"mask_key");
        +		lua_newtable(L);
        +		
        +		lua_pushnumber(L,0);
        +		lua_pushnumber(L,(int)header->mask_key[0]);
        +		lua_settable(L,-3);
        +		
        +		lua_pushnumber(L,1);
        +		lua_pushnumber(L,(int)header->mask_key[1]);
        +		lua_settable(L,-3);
        +		
        +		lua_pushnumber(L,2);
        +		lua_pushnumber(L,(int)header->mask_key[2]);
        +		lua_settable(L,-3);
        +		
        +		lua_pushnumber(L,3);
        +		lua_pushnumber(L,(int)header->mask_key[3]);
        +		lua_settable(L,-3);
        +		
        +		lua_settable(L,-3);
        +		
        +		free(header);
        +		return 1;
        +	}
        +}
        +
        +/*
        + * Read socket data given the header
        + */
        + static int l_ws_read_data(lua_State *L)
        + {
        +	 void* client = lua_touserdata (L, 1);
        +	 if(!lua_istable(L,2))
        +	 {
        +		 ws_close(client,1011);
        +		 lua_pushnil(L);
        +		 return 1;
        +	 }
        +	 dictionary dic = iterate_lua_table(L,2);
        +	 if(dic)
        +	 {
        +		 // convert dictionary to header
        +		 ws_msg_header_t * header =  (ws_msg_header_t*) malloc(sizeof(*header));
        +		 header->fin = (uint8_t)(R_INT(dic,"fin"));
        +		 header->opcode = (uint8_t)(R_INT(dic,"opcode"));
        +		 header->mask = 1;
        +		 header->plen = R_INT(dic,"plen");
        +		 dictionary d1 = (dictionary)dvalue(dic,"mask_key");
        +		 if(d1)
        +		 {
        +			 header->mask_key[0] = (uint8_t)(R_INT(d1,"0"));
        +			 header->mask_key[1] = (uint8_t)(R_INT(d1,"1"));
        +			 header->mask_key[2] = (uint8_t)(R_INT(d1,"2"));
        +			 header->mask_key[3] = (uint8_t)(R_INT(d1,"3"));
        +			 freedict(d1);
        +			 dput(dic,"mask_key", NULL);
        +		 }
        +		 freedict(dic);
        +		
        +		// read data 
        +		// This return max 1024 bytes data, 
        +		//user should handle consecutive read 
        +		// by examining the header (FIN bit and plen)
        +		uint8_t* data = (uint8_t*) malloc(header->plen+1);
        +		int size = ws_read_data(client, header, header->plen, data);
        +		if(size < 0)
        +		{
        +			lua_pushnil(L);
        +			free(header);
        +			if(data) free(data);
        +			return 1;
        +		}
        +		
        +		if(header->opcode == WS_TEXT)
        +		{
        +			data[size] = '\0';
        +			lua_pushstring(L, (char*)data);
        +		}
        +		else
        +		{
        +			// binary data as byte array
        +			// this is not an optimal way to store byte array
        +			// TODO: we may need a dedicated byte array type
        +			// for it
        +			lua_new_byte_array(L,size);
        +			byte_array_t * arr = NULL;
        +			arr = l_check_barray(L,3);
        +			memcpy(arr->data,data,size);
        +			/*lua_newtable(L);
        +			for (int i = 0; i < size; i++)
        +			{
        +				lua_pushnumber(L,i);
        +				lua_pushnumber(L,(int)(data[i]));
        +				lua_settable(L,-3);
        +			}*/
        +			
        +		}
        +		if(data)
        +			free(data);
        +		free(header);
        +	 }
        +	 else
        +	 {
        +		 lua_pushnil(L);
        +	 }
        +	 return 1;
        + }
        + /*
        +  * Send a text to web socket
        +  */
        +static int l_ws_t(lua_State*L)
        +{
        +	void* client = lua_touserdata (L, 1);
        +	char* str = luaL_checkstring(L,2);
        +	ws_t(client,str);
        +	return 1;
        +}
        +static int l_status(lua_State*L)
        +{
        +	void* client = lua_touserdata (L, 1);
        +	int code = (int) luaL_checknumber(L,2);
        +	const char* msg = luaL_checkstring(L,3);
        +	set_status(client,code,msg);
        +	return 1;
        +}
        +/*
        + * send a file as binary data
        + */
        + static int l_ws_f(lua_State*L)
        + {
        +	void* client = lua_touserdata (L, 1);
        +	char* str = luaL_checkstring(L,2);
        +	ws_f(client,str);
        +	return 1;
        + }
        + static int l_ws_bin(lua_State*L)
        + {
        +	byte_array_t * arr = NULL;
        +	void* client = lua_touserdata (L, 1);
        +	arr = l_check_barray(L,2);
        +	ws_b(client, arr->data, arr->size);
        +	return 1;
        + }
        + static int l_ws_close(lua_State *L)
        + {
        +	 void* client = lua_touserdata (L, 1);
        +	 int status = (int) luaL_checknumber(L,2);
        +	 ws_close(client,status);
        +	 return 1;
        + }
        +
        + static int l_trim(lua_State* L)
        + {
        +	 const char* str = strdup((char*)luaL_checkstring(L,1));
        +	 const char* tok = luaL_checkstring(L,2);
        +	 
        +	 trim(str,tok[0]);
        +	 lua_pushstring(L,(const char*)str);
        +	 free(str);
        +	 return 1;
        + }
        + 
        + static int l_is_dir(lua_State* L)
        + {
        +	 const char* file = (char*)luaL_checkstring(L,1);
        +	 lua_pushboolean(L,is_dir(file) == 1);
        +	 return 1;
        + }
        +
        +
        +static const struct luaL_Reg standard [] = {
        +       {"_header", l_header},
        +	   {"_redirect", l_redirect},
        +	   {"_html", l_html},
        +	   {"_text", l_text},
        +	   {"_json", l_json},
        +	   {"_jpeg", l_jpeg},
        +	   {"b64encode", l_base64_encode},
        +	   {"b64decode", l_base64_decode},
        +	   {"_octstream", l_octstream} ,
        +	   {"_textstream", l_textstream} ,
        +	   {"_ti", l_ti} ,
        +	   {"_t", l_t} ,
        +	   {"_f", l_f} ,
        +	   {"_fb", l_fb} ,
        +	   {"trim", l_trim},
        +	   {"upload", l_upload} ,
        +	   {"route", l_route} ,
        +	   {"mime", l_mime} ,
        +	   {"is_bin", l_is_bin} ,
        +	   {"_unknow", l_unknow} ,
        +	   {"_status", l_status},
        +	   {"console", l_log} ,
        +	   {"_setCookie", l_set_cookie},
        +	   {"hash",l_simple_hash},
        +	   {"md5",l_md5},
        +	   {"sha1",l_sha1},
        +	   {"ext",l_ext},
        +	   {"ws_header",l_ws_read_header},
        +	   {"ws_read",l_ws_read_data},
        +	   {"ws_f",l_ws_f},
        +	   {"ws_t", l_ws_t},
        +	   {"ws_b", l_ws_bin},
        +	   {"ws_close", l_ws_close},
        +	   {"is_dir", l_is_dir},
        +	   {NULL,NULL}  
        +};
        +
        +int luaopen_standard(lua_State *L)
        +{
        +	luaL_newlib(L, standard);
        +	return 1;
        +}